|
|
1.1 ! root 1: .lg 0 ! 2: .ds sd /usr/lib/tmac ! 3: .\" RT - reset everything to normal state ! 4: .de RT ! 5: .if \\n(CS \{\ ! 6: .SR 1 ! 7: .BG\} ! 8: .if !\\n(1T .BG ! 9: .ce 0 ! 10: .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .if !\\n(FT .di ! 11: .ul 0 ! 12: .if \\n(QP \{\ ! 13: . ll +\\n(QIu ! 14: . in -\\n(QIu ! 15: . nr QP -1\} ! 16: .if \\n(NX<=1 .if \\n(AJ=0 .if \\n(FT=0 .ll \\n(LLu ! 17: .if !\\n(IF \{\ ! 18: . ps \\n(PS ! 19: . ie \\n(VS>=41 .vs \\n(VSu ! 20: . el .vs \\n(VSp\} ! 21: .ie \\n(IP \{\ ! 22: . in \\n(I\\n(IRu ! 23: . nr IP -1\} ! 24: .el .if !\\n(IR \{\ ! 25: . nr I1 \\n(PIu ! 26: . nr I2 0 ! 27: . nr I3 0 ! 28: . nr I4 0 ! 29: . nr I5 0\} ! 30: .ft 1 ! 31: .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n ! 32: .hy \\n(HY ! 33: .fi ! 34: .. ! 35: . \"IZ - initialization ! 36: .de IZ ! 37: .so \\*(sd/tmac.sdisp ! 38: .nr TN 0 ! 39: .em EM ! 40: . \" ACCENTS say \*'e or \*`e to get e acute or e grave both were 4/10 ! 41: .ds ' \h'\w'e'u*1/10'\z\(aa\h'-\w'e'u*1/10' ! 42: .ds ` \h'\w'e'u*2/10'\z\(ga\h'-\w'e'u*2/10' ! 43: . \" UMLAUT \*:u, etc. ! 44: .if t .ds : \\v'-0.6m'\\h'(1u-(\\\\n(.fu%2u))*0.13m+0.00m'\\z.\\h'0.2m'\\z.\\h'-((1u-(\\\\n(.fu%2u))*0.13m+0.20m)'\\v'0.6m' ! 45: .if n .ds : \z" ! 46: . \" TILDE and CIRCUMFLEX ! 47: .ds ^ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z^\\h'|\\\\n:u' ! 48: .ds ~ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z~\\h'|\\\\n:u' ! 49: . \" czech v symbol ! 50: .ds v \\\\k:\\\\h'+\\\\w'e'u/4u'\\\\v'-0.6m'\\\\s6v\\\\s0\\\\v'0.6m'\\\\h'|\\\\n:u' ! 51: . \" cedilla ! 52: .ds , \\\\k:\\\\h'\\\\w'c'u*0.4u'\\\\z,\\\\h'|\\\\n:u' ! 53: .so \\*(sd/tmac.srefs ! 54: .ch FO \\n(YYu ! 55: .if !\\n(FM .nr FM 1i ! 56: .nr YY -\\n(FMu ! 57: .nr XX 0 1 ! 58: .nr IP 0 ! 59: .nr PI 5n ! 60: .nr QI 5n ! 61: .nr I0 \\n(PIu ! 62: .nr PS 10 ! 63: .nr VS 12 ! 64: .nr HY 14 ! 65: .ie n \{\ ! 66: . if !\\n(PD .nr PD 1v ! 67: . nr DV 1v\} ! 68: .el \{\ ! 69: . if !\\n(PD .nr PD 0.3v ! 70: . nr DV .5v\} ! 71: .nr ML 3v ! 72: .ps \\n(PS ! 73: .ie \\n(VS>=41 .vs \\n(VSu ! 74: .el .vs \\n(VSp ! 75: .nr IR 0 ! 76: .nr I0 0 ! 77: .nr I1 \\n(PIu ! 78: .nr TB 0 ! 79: .nr SJ \\n(.j ! 80: .nr LL 6i ! 81: .ll \\n(LLu ! 82: .nr LT \\n(.l ! 83: .lt \\n(LTu ! 84: .ev 1 ! 85: .if !\\n(FL .nr FL \\n(LLu*11u/12u ! 86: .ll \\n(FLu ! 87: .ps 8 ! 88: .vs 10p ! 89: .ev ! 90: .if \\*(CH .ds CH "\(hy \\\\n(PN \(hy ! 91: .wh 0 NP ! 92: .wh -\\n(FMu FO ! 93: .ch FO 16i ! 94: .wh -\\n(FMu FX ! 95: .ch FO -\\n(FMu ! 96: .if t .wh -\\n(FMu/2u BT ! 97: .if n .wh -\\n(FMu/2u-1v BT ! 98: .nr CW 0-1 ! 99: .nr GW 0-1 ! 100: .. ! 101: .de TM ! 102: .if !\\n(IM .if !\\n(MN .pn 0 ! 103: .so \\*(sd/tmac.scover ! 104: .if !\\n(IM .if !\\n(MN .rm IM MF MR ! 105: .if n .if !\\n(.T .pi /usr/bin/col ! 106: .nr ST 1 ! 107: .ds QF TECHNICAL MEMORANDUM ! 108: .br ! 109: .ds MN \\$1 ! 110: .if !"\\$1"" .nr MM 1 ! 111: .if !"\\$2"" .nr MC 1 ! 112: .if !"\\$3"" .nr MG 1 ! 113: .nr TN 1 ! 114: .if \\n(.$-1 .ds CA \\$2 ! 115: .if \\n(.$-2 .ds CC \\$3 ! 116: .rm RP S0 S2 AX ! 117: .. ! 118: . \" IM - internal memorandum ! 119: .de IM ! 120: .nr IM 1 ! 121: .TM "\\$1" "\\$2" "\\$3" ! 122: .rm QF ! 123: .RA ! 124: .rm RA RP MF MR ! 125: .. ! 126: . \" MF - memorandum for file. ! 127: .de MF ! 128: .nr MN 1 ! 129: .TM "\\$1" "\\$2" "\\$3" ! 130: .rm MR ! 131: .rm IM ! 132: .RA ! 133: .rm RA RP TM ! 134: .. ! 135: . \" MR - memo for record ! 136: .de MR ! 137: .nr MN 2 ! 138: .TM "\\$1" "\\$2" "\\$3" ! 139: .ds QF MEMORANDUM FOR RECORD ! 140: .rm MF ! 141: .RA ! 142: .rm RA RP IM TM ! 143: .. ! 144: . \" LT - letter ! 145: .de LT ! 146: .if !\\n(PO .ie n .nr PO 1.1i ! 147: .el .nr PO 1.1i ! 148: .po \\n(POu ! 149: .LP ! 150: .rs ! 151: .if !"\\$1"" \{\ ! 152: . vs -2p ! 153: . ta 4.9i 5.45i ! 154: . sp .2i ! 155: . nf ! 156: \s36\(L1\s0 \s18\f(HB\v'-1'A\h'-.1'T\h'-.1'&\h'-.1'T\v'1'\s0 ! 157: . br ! 158: \s7\l'7i'\s0 ! 159: . br ! 160: \s8\f(HBAT&T Bell Laboratories\fP \fH600 Mountain Avenue ! 161: . br ! 162: Murray Hill, NJ 07974-2070 ! 163: . br ! 164: 201-582-3000\f1\s0 ! 165: . sp -.75i ! 166: . vs ! 167: . fi \} ! 168: .if n \{\ ! 169: . sp 1i ! 170: . in 4.55i\} ! 171: .if t \{\ ! 172: . sp 1.10i ! 173: . in 4.85i\} ! 174: .ll 8i ! 175: \\*(DY ! 176: .ll ! 177: .in 0 ! 178: .br ! 179: .if t .sp 3 ! 180: .if n \{\ ! 181: . sp ! 182: . na\} ! 183: .nf ! 184: .rm CF ! 185: .de SG \" nested defn ! 186: .sp 2 ! 187: .ta 3.5i ! 188: Sincerely, ! 189: .sp 3 ! 190: \\\\$1 ! 191: .ds CH ! 192: \\.. ! 193: .. ! 194: .de OK ! 195: .br ! 196: .di ! 197: .di OD ! 198: .. ! 199: .de RP \" released paper ! 200: .nr ST 2 ! 201: .pn 0 ! 202: .rm SG CS TM QF IM MR MF EG ! 203: .br ! 204: .. ! 205: .de TR \" Comp. Sci. Tech Rept series. ! 206: .nr ST 3 ! 207: .pn 0 ! 208: .ds MN \\$1 ! 209: .rm SG CS TM QF IM MR M EG ! 210: .br ! 211: .. ! 212: . \"FP - font position for a family ! 213: .de FP ! 214: .ds TF \\$1 ! 215: .if '\\$1'palatino'\{\ ! 216: . fp 1 PA ! 217: . fp 2 PI ! 218: . fp 3 PB ! 219: . fp 4 PX\} ! 220: .if '\\$1'century'\{\ ! 221: . ie '\\*(.T'202'\{\ ! 222: . fp 1 NR Centsb ! 223: . fp 2 NI CentI ! 224: . fp 3 NB CentB ! 225: . fp 4 NX CentBI\} ! 226: . el \{\ ! 227: . fp 1 NR ! 228: . fp 2 NI ! 229: . fp 3 NB ! 230: . fp 4 NX\}\} ! 231: .if '\\$1'helvetica'\{\ ! 232: . fp 1 H ! 233: . fp 2 HI ! 234: . fp 3 HB ! 235: . fp 4 HX\} ! 236: .if '\\$1'bembo'\{\ ! 237: . ie '\\*(.T'202'\{\ ! 238: . fp 1 B1 Bembo ! 239: . fp 2 B2 BemboI ! 240: . fp 3 B3 BemboB ! 241: . fp 4 B4 BemboBI\} ! 242: . el \{\ ! 243: . fp 1 B1 ! 244: . fp 2 B2 ! 245: . fp 3 B3 ! 246: . fp 4 B4\}\} ! 247: .if '\\$1'optima'\{\ ! 248: . fp 1 R Optima ! 249: . fp 2 I OptimaI ! 250: . fp 3 B OptimaB ! 251: . fp 4 BI OptimaBI\} ! 252: .if '\\$1'souvenir'\{\ ! 253: . fp 1 R Souvenir ! 254: . fp 2 I SouvenirI ! 255: . fp 3 B SouvenirB ! 256: . fp 4 BI SouvenirBI\} ! 257: .if '\\$1'melior'\{\ ! 258: . fp 1 R Melior ! 259: . fp 2 I MeliorI ! 260: . fp 3 B MeliorB ! 261: . fp 4 BI MeliorBI\} ! 262: .if '\\$1'times'\{\ ! 263: . fp 1 R ! 264: . fp 2 I ! 265: . fp 3 B ! 266: . fp 4 BI\} ! 267: .. ! 268: . \"TL - title and initialization ! 269: .de TL ! 270: .br ! 271: .nr TV 1 ! 272: .if \\n(IM .rm CS ! 273: .if \\n(MN .rm CS ! 274: .ME ! 275: .rm ME ! 276: .di WT ! 277: .na ! 278: .fi ! 279: .ll 5.0i ! 280: .if n .if \\n(TN .ll 29 ! 281: .if t .if \\n(TN .ll 3.5i ! 282: .ft 3 ! 283: .ps \\n(PS ! 284: .if !\\n(TN \{\ ! 285: . ps +2 ! 286: . vs \\n(.s+2 ! 287: . rm CS\} ! 288: .hy 0 ! 289: .. ! 290: .de TX ! 291: .rs ! 292: .sp .5i ! 293: .ce 1000 ! 294: .if n .ul 1000 ! 295: .ps 12 ! 296: .ft 3 ! 297: .vs 15p ! 298: .ne 4 ! 299: .hy 0 ! 300: .WT ! 301: .hy \\n(HY ! 302: .ce 0 ! 303: .ul 0 ! 304: .. ! 305: . \" AU - author(s) ! 306: .de AU ! 307: .nr AV 1 ! 308: .ad \\n(SJ ! 309: .br ! 310: .di ! 311: .br ! 312: .nf ! 313: .nr NA +1 ! 314: .ds R\\n(NA \\$1 ! 315: .ds E\\n(NA \\$2 ! 316: .di A\\n(NA ! 317: .ll \\n(LLu ! 318: .ie t \{\ ! 319: . ie !\\n(TN .ft 2 ! 320: . el \{\ ! 321: . ft 3 ! 322: . ll 1.4i\}\} ! 323: .el \{\ ! 324: . ie !\\n(TN .ft 1 ! 325: . el \{\ ! 326: . ft 3 ! 327: . ll 16\}\} ! 328: .ps \\n(PS ! 329: .. ! 330: .de AX ! 331: .ft 1 ! 332: .rs ! 333: .ce 1000 ! 334: .if n .ul 0 ! 335: .ps \\n(PS ! 336: .ie \\n(VS>=41 .vs \\n(VSu ! 337: .el .vs \\n(VSp ! 338: .if t \{\ ! 339: . sp ! 340: . A1 ! 341: . sp 0.5 ! 342: . ns ! 343: . I1 ! 344: . if \\n(NA-1 .sp ! 345: . A2 ! 346: . if \\n(NA-1 .sp 0.5 ! 347: . ns ! 348: . I2 ! 349: . if \\n(NA-2 .sp ! 350: . A3 ! 351: . if \\n(NA-2 .sp 0.5 ! 352: . ns ! 353: . I3 ! 354: . if \\n(NA-3 .sp ! 355: . A4 ! 356: . if \\n(NA-3 .sp 0.5 ! 357: . ns ! 358: . I4 ! 359: . if \\n(NA-4 .sp ! 360: . A5 ! 361: . if \\n(NA-4 .sp 0.5 ! 362: . ns ! 363: . I5 ! 364: . if \\n(NA-5 .sp ! 365: . A6 ! 366: . if \\n(NA-5 .sp 0.5 ! 367: . ns ! 368: . I6 ! 369: . if \\n(NA-6 .sp ! 370: . A7 ! 371: . if \\n(NA-6 .sp 0.5 ! 372: . ns ! 373: . I7 ! 374: . if \\n(NA-7 .sp ! 375: . A8 ! 376: . if \\n(NA-7 .sp 0.5 ! 377: . ns ! 378: . I8 ! 379: . if \\n(NA-8 .sp ! 380: . A9 ! 381: . if \\n(NA-8 .sp 0.5 ! 382: . ns ! 383: . I9\} ! 384: .if n \{\ ! 385: . sp 2 ! 386: . A1 ! 387: . sp ! 388: . ns ! 389: . I1 ! 390: . if \\n(NA-1 .sp 2 ! 391: . A2 ! 392: . if \\n(NA-1 .sp ! 393: . ns ! 394: . I2 ! 395: . if \\n(NA-2 .sp 2 ! 396: . A3 ! 397: . if \\n(NA-2 .sp ! 398: . ns ! 399: . I3 ! 400: . if \\n(NA-3 .sp 2 ! 401: . A4 ! 402: . if \\n(NA-3 .sp ! 403: . ns ! 404: . I4 ! 405: . if \\n(NA-4 .sp 2 ! 406: . A5 ! 407: . if \\n(NA-4 .sp ! 408: . ns ! 409: . I5 ! 410: . if \\n(NA-5 .sp 2 ! 411: . A6 ! 412: . if \\n(NA-5 .sp ! 413: . ns ! 414: . I6 ! 415: . if \\n(NA-6 .sp 2 ! 416: . A7 ! 417: . if \\n(NA-6 .sp ! 418: . ns ! 419: . I7 ! 420: . if \\n(NA-7 .sp 2 ! 421: . A8 ! 422: . if \\n(NA-7 .sp ! 423: . ns ! 424: . I8 ! 425: . if \\n(NA-8 .sp 2 ! 426: . A9 ! 427: . if \\n(NA-8 .sp ! 428: . ns ! 429: . I9\} ! 430: .. ! 431: . \"AI - authors institution ! 432: .de AI ! 433: .br ! 434: .ft 1 ! 435: .di ! 436: .di I\\n(NA ! 437: .nf ! 438: .. ! 439: . \"AB - begin an abstract ! 440: .de AB ! 441: .br ! 442: .di ! 443: .ul 0 ! 444: .ce 0 ! 445: .nr 1T 1 ! 446: .nr IK 1 ! 447: .nr KI 1 ! 448: .di WB ! 449: .rs ! 450: .nr AJ 1 ! 451: .ce 1 ! 452: .ft 2 ! 453: .if n .ul ! 454: .ll \\n(LLu ! 455: .ie \\n(.$ \{\ ! 456: . if !"\\$1"-" .if !"\\$1"no" \\$1 ! 457: . if !"\\$1"-" .if !"\\$1"no" .sp\} ! 458: .el \{\ ! 459: ABSTRACT ! 460: .sp\} ! 461: .hy \\n(HY ! 462: .ul 0 ! 463: .ce 0 ! 464: .fi ! 465: .ft 1 ! 466: .nr OJ \\n(.i ! 467: .in +\\n(.lu/12u ! 468: .ll -\\n(.lu/12u ! 469: .br ! 470: .ps \\n(PS ! 471: .ie \\n(VS>=41 .vs \\n(VSu ! 472: .el .vs \\n(VSp ! 473: .ti +\\n(PIu ! 474: .. ! 475: . \"AE - end of an abstract ! 476: .de AE ! 477: .br ! 478: .di ! 479: .ll \\n(LLu ! 480: .ps \\n(PS ! 481: .ie \\n(VS>=41 .vs \\n(VSu ! 482: .el .vs \\n(VSp ! 483: .nr 1T 0 ! 484: .nr IK 0 ! 485: .in \\n(OJu ! 486: .nr AJ 0 ! 487: .di ! 488: .ce 0 ! 489: .if \\n(ST=2 .SY ! 490: .if \\n(ST<3 .rm SY ! 491: .. ! 492: . \"S2 - release paper style ! 493: . \"SY - cover sheet of released paper ! 494: .de SY ! 495: .ll \\n(LLu ! 496: .ns ! 497: .if \\n(TV .TX ! 498: .if \\n(AV .AX ! 499: .rs ! 500: .ce 0 ! 501: .nf ! 502: .sp 3 ! 503: .ls 1 ! 504: .pn 2 ! 505: .WB ! 506: .ls ! 507: .sp 3v ! 508: \\*(DY ! 509: .sp |9i ! 510: .if \\n(FP .FA ! 511: .FG ! 512: .if \\n(GA=1 .nr GA 2 ! 513: .fi ! 514: .. ! 515: . \"S2 - first text page, released paper format ! 516: .de S2 ! 517: .ce 0 ! 518: .br ! 519: .SY ! 520: .rm SY ! 521: .bp 1 ! 522: .if \\n(TV .TX ! 523: .if \\n(AV .AX ! 524: .rs ! 525: .ce 0 ! 526: .ft 1 ! 527: .ad \\n(SJ ! 528: .. ! 529: . \"S0- mike lesk conserve paper style ! 530: .de S0 ! 531: .ce 0 ! 532: .br ! 533: .ll \\n(LLu ! 534: .if \\n(TV+\\n(AV .ns ! 535: .if \\n(TV .TX ! 536: .if \\n(AV .AX ! 537: .if \\n(TV+\\n(AV .rs ! 538: .ce 0 ! 539: .if \\n(TV .sp 2 ! 540: .ls 1 ! 541: .if \\n(FP \{\ ! 542: . FJ ! 543: . nf ! 544: . FG ! 545: . fi ! 546: . FK ! 547: . nr FP 0\} ! 548: .nf ! 549: .WB ! 550: .ls ! 551: .fi ! 552: .ad \\n(SJ ! 553: .. ! 554: . \"S3 - CSTR style ! 555: .de S3 ! 556: .rs ! 557: .sp |2.25i ! 558: .ce 1000 ! 559: .I1 ! 560: .if \\n(NA>1 \{\ ! 561: . sp .5 ! 562: . I2\} ! 563: .if \\n(NA>2 \{\ ! 564: . sp .5 ! 565: . I3\} ! 566: .if \\n(NA>3 \{\ ! 567: . sp .5 ! 568: . I4\} ! 569: .if \\n(NA>4 \{\ ! 570: . sp .5 ! 571: . I5\} ! 572: .if \\n(NA>5 \{\ ! 573: . sp .5 ! 574: . I6\} ! 575: .if \\n(NA>6 \{\ ! 576: . sp .5 ! 577: . I7\} ! 578: .if \\n(NA>7 \{\ ! 579: . sp .5 ! 580: . I8\} ! 581: .if \\n(NA>8 \{\ ! 582: . sp .5 ! 583: . I9\} ! 584: .sp |4i ! 585: . \"check how long title is: can space extra .25 inch if short ! 586: .di EZ ! 587: .WT ! 588: .di ! 589: .if \\n(dn<1.5v .if \\n(NA=1 .sp .25i ! 590: .ft 1 ! 591: Computing Science Technical Report No. \\*(MN ! 592: .sp ! 593: .if t .ft 3 ! 594: .if n .ul 100 ! 595: .ps 12 ! 596: .vs 15p ! 597: .hy 0 ! 598: .WT ! 599: .hy \\n(HY ! 600: .ft 1 ! 601: .if n .ul 0 ! 602: .ps 10 ! 603: .vs 12p ! 604: .sp ! 605: .ft 1 ! 606: .A1 ! 607: .A2 ! 608: .A3 ! 609: .A4 ! 610: .A5 ! 611: .A6 ! 612: .A7 ! 613: .A8 ! 614: .A9 ! 615: .ce 0 ! 616: .sp |8.5i ! 617: .ce 0 ! 618: \\*(DY ! 619: .DZ ! 620: .bp 0 ! 621: .ft 1 ! 622: .S2 ! 623: .. ! 624: . \"SG - signature ! 625: .de SG ! 626: .br ! 627: .KS ! 628: .in +2u*\\n(.lu/3u ! 629: .sp 4 ! 630: .A1 ! 631: .if \\n(NA-1 .sp 4 ! 632: .A2 ! 633: .if \\n(NA-2 .sp 4 ! 634: .A3 ! 635: .if \\n(NA-3 .sp 4 ! 636: .A4 ! 637: .if \\n(NA-4 .sp 4 ! 638: .A5 ! 639: .if \\n(NA>5 .sp 4 ! 640: .A6 ! 641: .if \\n(NA>6 .sp 4 ! 642: .A7 ! 643: .if \\n(NA>7 .sp 4 ! 644: .A8 ! 645: .if \\n(NA>8 .sp 4 ! 646: .A9 ! 647: .in ! 648: .nf ! 649: .if \\n(.$<1 .G9 ! 650: .sp -1 ! 651: .if \\n(.$>=1 \\$1 ! 652: .if \\n(.$>=2 \\$2 ! 653: .if \\n(.$>=3 \\$3 ! 654: .if \\n(.$>=4 \\$4 ! 655: .if \\n(.$>=5 \\$5 ! 656: .if \\n(.$>=6 \\$6 ! 657: .if \\n(.$>=7 \\$7 ! 658: .if \\n(.$>=8 \\$8 ! 659: .if \\n(.$>=9 \\$9 ! 660: .fi ! 661: .br ! 662: .KE ! 663: .. ! 664: . \"Tables. TS - table start, TE - table end ! 665: .de TS ! 666: .br ! 667: .if !\\n(1T .RT ! 668: .ul 0 ! 669: .ti \\n(.iu ! 670: .if t .sp 0.5 ! 671: .if n .sp ! 672: .if \\$1H .TQ ! 673: .nr IX 1 ! 674: .. ! 675: .de TQ ! 676: .di TT ! 677: .nr IT 1 ! 678: .. ! 679: .de TH ! 680: .if \\n(.d>0.5v \{\ ! 681: . nr T. 0 ! 682: . T# 0\} ! 683: .di ! 684: .nr TQ \\n(.i ! 685: .nr HT 1 ! 686: .in 0 ! 687: .mk #a ! 688: .mk #b ! 689: .mk #c ! 690: .mk #d ! 691: .mk #e ! 692: .mk #f ! 693: .TT ! 694: .in \\n(TQu ! 695: .mk #T ! 696: .. ! 697: .de TE ! 698: .nr IX 0 ! 699: .if \\n(IT .if !\\n(HT \{\ ! 700: . di ! 701: . nr EF \\n(.u ! 702: . nf ! 703: . TT ! 704: . if \\n(EF .fi\} ! 705: .nr IT 0 ! 706: .nr HT 0 ! 707: .if n .sp 1 ! 708: .if t .sp 0.5 ! 709: .rm a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ n+ m+ ! 710: .rr 32 33 34 35 36 37 38 40 79 80 81 82 ! 711: .rr a| b| c| d| e| f| g| h| i| j| k| l| m| ! 712: .rr a- b- c- d- e- f- g- h- i- j- k- l- m- ! 713: .. ! 714: .so \*(sd/tmac.skeep ! 715: .de EQ \"equation, breakout and display ! 716: .nr EF \\n(.u ! 717: .rm EE ! 718: .nr LE 1 \" 1 is center ! 719: .ds EL \\$1 ! 720: .if "\\$1"L" \{\ ! 721: . ds EL \\$2 ! 722: . nr LE 0\} ! 723: .if "\\$1"C" .ds EL \\$2 ! 724: .if "\\$1"R" \{\ ! 725: . ds EL \\$2 \" 2 is right adjust ! 726: . nr LE 2\} ! 727: .if "\\$1"I" \{\ ! 728: . nr LE 0 ! 729: . if "\\$3"" .ds EE \\h'|10n' ! 730: . el .ds EE \\h'\\$3' ! 731: . ds EL \\$2\} ! 732: .if \\n(YE .nf ! 733: .di EZ ! 734: .. ! 735: .de EN \" end of a displayed equation ! 736: .br ! 737: .di ! 738: .rm EZ ! 739: .nr ZN \\n(dn ! 740: .if \\n(ZN .if !\\n(YE .LP ! 741: .if !\\n(ZN .if !"\\*(EL"" .nr ZN 1 ! 742: .if \\n(ZN \{\ ! 743: . ie "\\n(.z"" \{\ ! 744: . if t .if !\\n(nl=\\n(PE .sp .5 ! 745: . if n .if !\\n(nl=\\n(PE .sp 1\} ! 746: . el \{\ ! 747: . if t .if !\\n(.d=\\n(PE .sp .5 ! 748: . if n .if !\\n(.d=\\n(PE .sp 1\}\} ! 749: 'pc ! 750: .if \\n(BD .nr LE 0 \" don't center if block display or mark/lineup ! 751: .if \\n(MK \{\ ! 752: . if \\n(LE=1 .ds EE \\h'|10n' ! 753: . nr LE 0\} ! 754: 'lt \\n(.lu ! 755: .if !\\n(EP .if \\n(ZN \{\ ! 756: . if \\n(LE=1 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts ! 757: . if \\n(LE=2 .tl \(ts\(ts\(ts\\*(10\\*(EL\(ts ! 758: . if !\\n(LE \{\ ! 759: . if !\\n(BD .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts ! 760: . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts ! 761: . if \\n(BD \!\\*(10\\t\\*(EL\}\} ! 762: .if \\n(EP .if \\n(ZN \{\ ! 763: . if \\n(LE=1 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts ! 764: . if \\n(LE=2 .tl \(ts\\*(EL\(ts\(ts\\*(10\(ts ! 765: . if !\\n(LE \{\ ! 766: . if !\\n(BD .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts ! 767: . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts ! 768: . if \\n(BD \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10\}\} ! 769: 'lt \\n(LLu ! 770: 'pc % ! 771: .if \\n(YE .if \\n(EF .fi ! 772: .if t .if \\n(ZN .sp .5 ! 773: .if n .if \\n(ZN .sp ! 774: .ie "\\n(.z"" .nr PE \\n(nl ! 775: .el .nr PE \\n(.d ! 776: .. ! 777: .de PS \" start picture ! 778: . \" $1 is height, $2 is width, both in inches ! 779: .if \\$1>0 .sp .35 ! 780: .ie \\$1>0 .nr $1 \\$1 ! 781: .el .nr $1 0 ! 782: .in (\\n(.lu-\\$2)/2u ! 783: .ne \\$1 ! 784: .. ! 785: .de PE \" end of picture ! 786: .in ! 787: .if \\n($1>0 .sp .65 ! 788: .. ! 789: . \" .P1/.P2 macros for programs ! 790: . ! 791: .nr XP 1 \" delta point size for program ! 792: .nr XV 1p \" delta vertical for programs ! 793: .nr XT 8 \" delta tab stop for programs ! 794: .nr DV .5v \" space before start of program ! 795: . ! 796: .de P1 ! 797: .nr P1 .4i \" program indent in .P1 ! 798: .nr OI .4i ! 799: .if \\n(.$ .nr P1 \\$1 ! 800: .br ! 801: .nr v \\n(.v ! 802: .di p1 ! 803: .in \\n(P1u ! 804: .nf ! 805: .ps -\\n(XP ! 806: .vs -\\n(XVu ! 807: .ft CW ! 808: .nr t \\n(XT*\\w'x'u ! 809: .ta 1u*\\ntu 2u*\\ntu 3u*\\ntu 4u*\\ntu 5u*\\ntu 6u*\\ntu 7u*\\ntu 8u*\\ntu 9u*\\ntu 10u*\\ntu 11u*\\ntu 12u*\\ntu 13u*\\ntu 14u*\\ntu ! 810: .. ! 811: . ! 812: .de P2 ! 813: .br ! 814: .ps \\n(PS ! 815: .vs \\n(VSp ! 816: .vs \\nvu ! 817: .ft 1 ! 818: .in ! 819: .di ! 820: .br ! 821: .sp \\n(DVu ! 822: .br ! 823: .if \\n(.$=0 .ne \\n(dnu \" -\\n(DVu ! 824: .nf ! 825: .p1 ! 826: .sp \\n(DVu ! 827: .br ! 828: .fi ! 829: .. ! 830: . ! 831: .de ME ! 832: .nr SJ \\n(.j ! 833: .if \\n(LL .nr LT \\n(LL ! 834: .nr YE 1 ! 835: .if !\\n(PO .nr PO \\n(.o ! 836: .if \\n(mo-0 .ds MO January ! 837: .if \\n(mo-1 .ds MO February ! 838: .if \\n(mo-2 .ds MO March ! 839: .if \\n(mo-3 .ds MO April ! 840: .if \\n(mo-4 .ds MO May ! 841: .if \\n(mo-5 .ds MO June ! 842: .if \\n(mo-6 .ds MO July ! 843: .if \\n(mo-7 .ds MO August ! 844: .if \\n(mo-8 .ds MO September ! 845: .if \\n(mo-9 .ds MO October ! 846: .if \\n(mo-10 .ds MO November ! 847: .if \\n(mo-11 .ds MO December ! 848: .if \\n(dw-0 .ds DW Sunday ! 849: .if \\n(dw-1 .ds DW Monday ! 850: .if \\n(dw-2 .ds DW Tuesday ! 851: .if \\n(dw-3 .ds DW Wednesday ! 852: .if \\n(dw-4 .ds DW Thursday ! 853: .if \\n(dw-5 .ds DW Friday ! 854: .if \\n(dw-6 .ds DW Saturday ! 855: .if "\\*(DY"" .ds DY \\*(MO \\n(dy, 19\\n(yr ! 856: .if "\\*(CF"" .if n .ds CF "\\*(DY ! 857: .. ! 858: . \"EM end up macro - process left over keep-release ! 859: .de EM ! 860: .br ! 861: .if \\n(AJ .tm Syntax error: no .AE ! 862: .if \\n(IF .ab Missing .FE somewhere ! 863: .if t .if \\n(TB=0 .wh -1p CM ! 864: .if \\n(TB \{\&\c ! 865: ' bp ! 866: . NP ! 867: . ch CM 160\} ! 868: .. ! 869: . \"NP new page ! 870: .de NP ! 871: .rr PE ! 872: .if \\n(FM+\\n(HM>=\\n(.p \{\ ! 873: . tm Margins bigger than page length. ! 874: . ab ! 875: . ex\} ! 876: .if t .CM ! 877: .if !\\n(HM .nr HM 1i ! 878: 'sp \\n(HMu/2u ! 879: .ev 1 ! 880: .nr PX \\n(.s ! 881: .nr PF \\n(.f ! 882: .nr PV \\n(.v ! 883: .lt \\n(LTu ! 884: .ps \\n(PS ! 885: .vs \\n(PS+2 ! 886: .ft 1 ! 887: .if \\n(PO .po \\n(POu ! 888: .PT ! 889: .ps \\n(PX ! 890: .vs \\n(PVu ! 891: .ft \\n(PF ! 892: .ev ! 893: 'sp |\\n(HMu ! 894: .nr XX 0 1 ! 895: .nr YY 0-\\n(FMu ! 896: .ch FO 16i ! 897: .ch FX 17i ! 898: .ch FO \\n(.pu-\\n(FMu ! 899: .ch FX \\n(.pu-\\n(FMu ! 900: .if \\n(MF .FV ! 901: .nr MF 0 ! 902: .mk ! 903: .os ! 904: .ev 1 ! 905: .if !\\n(TD .if \\n(TC<5 .XK ! 906: .nr TC 0 ! 907: .ns ! 908: .ev ! 909: .nr TQ \\n(.i ! 910: .nr TK \\n(.u ! 911: .if \\n(IT \{\ ! 912: . in 0 ! 913: . nf ! 914: . TT ! 915: . in \\n(TQu ! 916: . if \\n(TK .fi\ ! 917: \} ! 918: .mk #T ! 919: ....if t .if \\n(.o+\\n(LL>7.75i .tm Offset + line length exceeds 7.75 inches, too wide ! 920: .. ! 921: .de XK ! 922: .nr TD 1 ! 923: .nf ! 924: .ls 1 ! 925: .in 0 ! 926: .rn KJ KL ! 927: .KL ! 928: .rm KL ! 929: .if "\\n(.z"KJ" .di ! 930: .nr TB 0 ! 931: .if "\\n(.z"KJ" .nr TB 1 ! 932: .br ! 933: .in ! 934: .ls ! 935: .fi ! 936: .if (\\n(nl+1v)>(\\n(.p-\\n(FM) \{\ ! 937: . if \\n(NX>1 .RC ! 938: . if \\n(NX<1 .bp\} ! 939: .nr TD 0 ! 940: .. ! 941: .de KD ! 942: .nr KM 0 ! 943: .if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM \{\ ! 944: . if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ \" full page figure must have new page ! 945: . sp 15i\} ! 946: .if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i ! 947: .if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps ! 948: .if \\n(KM>0 \!.KD \\$1 \\$2 ! 949: .nr KR \\n(.t ! 950: .if \\n(nl<=\\n(HM .nr KR 32767 ! 951: .if \\n(KM=0 \{\ ! 952: . if \\n(KR<\\$1 \{\ ! 953: . di KJ ! 954: . nr KM 1\} ! 955: . if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i\} ! 956: .rs ! 957: .if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u ! 958: .. ! 959: .de PT ! 960: .lt \\n(LLu ! 961: .pc % ! 962: .nr PN \\n% ! 963: .lt \\n(.lu ! 964: .. ! 965: . \"FO - footer of page ! 966: .de FO ! 967: .rn FO FZ ! 968: .if \\n(IT>0 \{\ ! 969: . nr T. 1 ! 970: . if \\n(FC=0 .T# 1 ! 971: . br\} ! 972: .nr FC +1 ! 973: .if \\n(NX<2 .nr WF 0 ! 974: .nr dn 0 ! 975: .if \\n(FC<=1 .if \\n(XX .XF ! 976: .rn FZ FO ! 977: .nr MF 0 ! 978: .if \\n(dn .nr MF 1 ! 979: .if !\\n(WF \{\ ! 980: . nr YY 0-\\n(FMu ! 981: . ch FO \\n(YYu\} ! 982: .if !\\n(dn .nr WF 0 ! 983: .if \\n(FC<=1 .if \\n(XX=0 \{\ ! 984: . if \\n(NX>1 .RC ! 985: . if \\n(NX<1 'bp\} ! 986: .nr FC -1 ! 987: .if \\n(ML>0 .ne \\n(MLu ! 988: .. ! 989: . \"2C - begin double column ! 990: .de 2C ! 991: .MC \" default MC is double column ! 992: .. ! 993: .de MC \" multiple columns- arg is line length ! 994: .nr L1 \\n(LL*7/15 ! 995: .if \\n(CW>=0 .nr L1 \\n(CWu ! 996: .if \\n(.$ .nr L1 \\$1n ! 997: .if \\n(GW>=0 .nr GW \\n(GWu ! 998: .if \\n(.$>1 .nr GW \\$2n ! 999: .nr NQ \\n(LL/\\n(L1 ! 1000: .if \\n(NQ<1 .nr NQ 1 ! 1001: .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1 ! 1002: .if !\\n(1T \{\ ! 1003: . BG ! 1004: . if n .sp 4 ! 1005: . if t .sp 2\} ! 1006: .if \\n(NX=0 .nr NX 1 ! 1007: .if !\\n(NX=\\n(NQ \{\ ! 1008: . RT ! 1009: . if \\n(NX>1 .bp ! 1010: . mk ! 1011: . nr NC 1 ! 1012: . po \\n(POu\} ! 1013: .if \\n(NQ>1 .hy \\n(HY ! 1014: .nr NX \\n(NQ ! 1015: .if \\n(NX>1 .nr CW \\n(L1 ! 1016: .ll \\n(L1u ! 1017: .nr FL \\n(L1u*11u/12u ! 1018: .if \\n(NX>1 .if \\n(GW<0 .nr GW (\\n(LL-(\\n(NX*\\n(L1))/(\\n(NX-1) ! 1019: .nr RO \\n(L1+\\n(GW ! 1020: .ns ! 1021: .. ! 1022: .de RC ! 1023: .ie \\n(NC>=\\n(NX .C2 ! 1024: .el .C1 ! 1025: .. ! 1026: .de C1 ! 1027: .rt ! 1028: .po +\\n(ROu ! 1029: .nr NC +1 ! 1030: .if \\n(NC>\\n(NX .nr NC 1 ! 1031: .nr XX 0 1 ! 1032: .nr YY 0-\\n(FMu ! 1033: .if \\n(MF .FV ! 1034: .ch FX \\n(.pu-\\n(FMu ! 1035: .ev 1 ! 1036: .if \\n(TB .XK ! 1037: .nr TC 0 ! 1038: .ev ! 1039: .nr TQ \\n(.i ! 1040: .if \\n(IT \{\ ! 1041: . in 0 ! 1042: . TT ! 1043: . in \\n(TQu\} ! 1044: .mk #T ! 1045: .ns ! 1046: .. ! 1047: .de C2 ! 1048: .po \\n(POu ! 1049: .nr NC +1 ! 1050: .if \\n(NC>\\n(NX .nr NC 1 ! 1051: 'bp ! 1052: .. ! 1053: . \"1C - return to single column format ! 1054: .de 1C ! 1055: .MC \\n(LLu ! 1056: .hy \\n(HY ! 1057: .. ! 1058: .de MH ! 1059: AT&T Bell Laboratories ! 1060: Murray Hill, New Jersey 07974 ! 1061: .. ! 1062: .de PY ! 1063: AT&T Bell Laboratories ! 1064: Piscataway, New Jersey 08854 ! 1065: .. ! 1066: .de BT ! 1067: .nr PX \\n(.s ! 1068: .nr PF \\n(.f ! 1069: .ft 1 ! 1070: .ps \\n(PS ! 1071: 'lt \\n(LTu ! 1072: .po \\n(POu ! 1073: .if o .tl Research Tenth Edition% ! 1074: .ife .tl %U\s-2NIX\s0 Programmer's Manual ! 1075: .ft \\n(PF ! 1076: .ps \\n(PX ! 1077: .. ! 1078: . \"PP - paragraph ! 1079: .de PP ! 1080: .RT ! 1081: .if \\n(1T .sp \\n(PDu ! 1082: .ti +\\n(PIu ! 1083: .. ! 1084: . \"SH - (unnumbered) section heading ! 1085: .de SH ! 1086: .ti \\n(.iu ! 1087: .RT ! 1088: .ie \\n(1T .sp 1 ! 1089: .el .BG ! 1090: .RT ! 1091: .ne 4 ! 1092: .ft 3 ! 1093: .if n .ul 1000 ! 1094: .. ! 1095: . \"NH - numbered heading ! 1096: .de NH ! 1097: .RT ! 1098: .ie \\n(1T .sp 1 ! 1099: .el .BG ! 1100: .RT ! 1101: .ne 4 ! 1102: .ft 3 ! 1103: .if n .ul 1000 ! 1104: .nr NS \\$1 ! 1105: .if !\\n(.$ .nr NS 1 ! 1106: .if !\\n(NS .nr NS 1 ! 1107: .nr H\\n(NS +1 ! 1108: .if !\\n(NS-4 .nr H5 0 ! 1109: .if !\\n(NS-3 .nr H4 0 ! 1110: .if !\\n(NS-2 .nr H3 0 ! 1111: .if !\\n(NS-1 .nr H2 0 ! 1112: .if !\\$1 .if \\n(.$ .nr H1 1 ! 1113: .ds SN \\n(H1. ! 1114: .ti \\n(.iu ! 1115: .if \\n(NS-1 .as SN \\n(H2. ! 1116: .if \\n(NS-2 .as SN \\n(H3. ! 1117: .if \\n(NS-3 .as SN \\n(H4. ! 1118: .if \\n(NS-4 .as SN \\n(H5. ! 1119: \\*(SN ! 1120: .. ! 1121: . \"BG - begin, execute at first PP ! 1122: .de BG ! 1123: .br ! 1124: .ME ! 1125: .rm ME ! 1126: .di ! 1127: .ce 0 ! 1128: .nr KI 0 ! 1129: .hy \\n(HY ! 1130: .nr 1T 1 ! 1131: .nr CS 0 ! 1132: .S\\n(ST ! 1133: .rm S0 S1 S2 S3 OD OK TX AX WT CS TM IM MF MR RP I1 I2 I3 I4 I5 CB E1 E2 ! 1134: .de TL ! 1135: .ft 3 ! 1136: .sp ! 1137: .if n .ul 100 ! 1138: .ce 100 ! 1139: .ps +2 ! 1140: \\.. ! 1141: .de AU ! 1142: .ft 2 ! 1143: .if n .ul 0 ! 1144: .ce 100 ! 1145: .sp ! 1146: .NL ! 1147: \\.. ! 1148: .de AI ! 1149: .ft 1 ! 1150: .ce 100 ! 1151: .if n .ul 0 ! 1152: .if n .sp ! 1153: .if t .sp .5 ! 1154: .NL ! 1155: \\.. ! 1156: .RA ! 1157: .rm RA ! 1158: .rn FJ FS ! 1159: .rn FK FE ! 1160: .nf ! 1161: .ev 1 ! 1162: .ps \\n(PS-2 ! 1163: .vs \\n(.s+2p ! 1164: .ev ! 1165: .if !\\n(KG .nr FP 0 ! 1166: .if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged. ! 1167: .nr KG 0 ! 1168: .if \\n(FP \{\ ! 1169: . FS ! 1170: . FG ! 1171: . FE\} ! 1172: .br ! 1173: .if n .if \\n(TV .sp 2 ! 1174: .if t .if \\n(TV .sp 1 ! 1175: .fi ! 1176: .ll \\n(LLu ! 1177: .ev 1 ! 1178: .if !\\n(FL .nr FL \\n(LLu*11u/12u ! 1179: .ll \\n(FLu ! 1180: .ev ! 1181: .. ! 1182: .de RA \"redefine abstract macros ! 1183: .de AB ! 1184: .br ! 1185: .if !\\n(1T .BG ! 1186: .ce 1 ! 1187: .sp 1 ! 1188: .ie \\n(.$ \{\ ! 1189: . if !"\\$1"-" .if !"\\$1"no" \{\ ! 1190: \\$1 ! 1191: .sp\}\} ! 1192: .el \{\ ! 1193: ABSTRACT ! 1194: .sp\} ! 1195: .sp 1 ! 1196: .nr AJ 1 ! 1197: .in +\\n(.lu/12u ! 1198: .ll -\\n(.lu/12u ! 1199: .RT ! 1200: \\.. ! 1201: .de AE ! 1202: .nr AJ 0 ! 1203: .br ! 1204: .in 0 ! 1205: .ll \\n(LLu ! 1206: .ie \\n(VS>=41 .vs \\n(VSu ! 1207: .el .vs \\n(VSp ! 1208: \\.. ! 1209: .. ! 1210: . \"IP - indented paragraph ! 1211: .de IP ! 1212: .RT ! 1213: .if !\\n(IP .nr IP +1 ! 1214: .ie \\n(ID>0 .sp \\n(IDu ! 1215: .el .sp \\n(PDu ! 1216: .nr IU \\n(IR+1 ! 1217: .if \\n(.$>1 .nr I\\n(IU \\$2n+\\n(I\\n(IRu ! 1218: .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu ! 1219: .in \\n(I\\n(IUu ! 1220: .nr TY \\n(TZ-\\n(.i ! 1221: .nr JQ \\n(I\\n(IU-\\n(I\\n(IR ! 1222: .ta \\n(JQu \\n(TYuR ! 1223: .if \\n(.$ \{\ ! 1224: .ti \\n(I\\n(IRu ! 1225: \&\\$1\t\c\} ! 1226: .. ! 1227: . \"LP - left aligned (block) paragraph ! 1228: .de LP ! 1229: .ti \\n(.iu ! 1230: .RT ! 1231: .if \\n(1T .sp \\n(PDu ! 1232: .. ! 1233: .de QP ! 1234: .ti \\n(.iu ! 1235: .RT ! 1236: .if \\n(1T .sp \\n(PDu ! 1237: .ne 1.1 ! 1238: .nr QP 1 ! 1239: .in +\\n(QIu ! 1240: .ll -\\n(QIu ! 1241: .ti \\n(.iu ! 1242: .. ! 1243: . \"IE - synonym for .LP ! 1244: .de IE ! 1245: .LP ! 1246: .. ! 1247: . \"RS - prepare for double indenting ! 1248: .de RS ! 1249: .nr IS \\n(IP ! 1250: .RT ! 1251: .nr IP \\n(IS ! 1252: .nr IU \\n(IR ! 1253: .nr IR +1 ! 1254: .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu ! 1255: .in \\n(I\\n(IRu ! 1256: .nr TY \\n(TZ-\\n(.i ! 1257: .ta \\n(TYuR ! 1258: .. ! 1259: . \"RE - retreat to the left ! 1260: .de RE ! 1261: .nr IS \\n(IP ! 1262: .RT ! 1263: .nr IP \\n(IS ! 1264: .if \\n(IR>0 .nr IR -1 ! 1265: .in \\n(I\\n(IRu ! 1266: .. ! 1267: .de TC ! 1268: .nr TZ \\n(.lu ! 1269: .if \\n(.$ .nr TZ \\$1n ! 1270: .ta \\n(TZuR ! 1271: .. ! 1272: .de TD ! 1273: .LP ! 1274: .nr TZ 0 ! 1275: .. ! 1276: . \"CM - cut mark ! 1277: .de CM ! 1278: .po 0 ! 1279: .lt 7.6i ! 1280: .ft 1 ! 1281: .ps 10 ! 1282: .vs 4p ! 1283: .if "\\*(.T"aps" .tl '--''--' ! 1284: .po ! 1285: .vs ! 1286: .lt ! 1287: .ps ! 1288: .ft ! 1289: .. ! 1290: . \" fontname(CW) fontstr(\f(CW) first_arg goes_after goes_before ! 1291: .de OF ! 1292: .nr PQ \\n(.f ! 1293: .hy 0 ! 1294: .if t .if "\\$3"" .ft \\$1 ! 1295: .if t .if !"\\$3"" \{\ ! 1296: \&\\$5\\$2\\$3\\f\\n(PQ\\$4 ! 1297: .hy \\n(HY\} ! 1298: .if n \{\ ! 1299: . if \\n(.=5 \&\\$5 ! 1300: . ie "\\$3"" .ul 1000 ! 1301: . el .ul 1 ! 1302: . if \\n(.$=3 \&\\$3 ! 1303: . if \\n(.$>3 \&\\$3\\c ! 1304: . if \\n(.$>3 \&\\$4 ! 1305: . hy \\n(HY\} ! 1306: .. ! 1307: . \"B - bold font ! 1308: .de B ! 1309: .OF 3 \\f3 "\\$1" "\\$2" "\\$3" ! 1310: .. ! 1311: .de BI \" bold italic -- only on 202 ! 1312: .OF 4 \\f4 "\\$1" "\\$2" "\\$3" ! 1313: .. ! 1314: . \"R - Roman font ! 1315: .de R ! 1316: .nr PQ \\n(.f ! 1317: .ft 1 ! 1318: .ie \\n(.$>0 \&\\$1\f\\n(PQ\\$2 ! 1319: .el .if n .ul 0 ! 1320: .. ! 1321: . \"I - italic font ! 1322: .de I ! 1323: .OF 2 \\f2 "\\$1" "\\$2" "\\$3" ! 1324: .. ! 1325: . \"CW - constant width font ! 1326: .de CW ! 1327: .OF CW \\f(CW "\\$1" "\\$2" "\\$3" ! 1328: .. ! 1329: . \"TA - tabs set in ens or chars ! 1330: .de TA ! 1331: .ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n ! 1332: .. ! 1333: . \"SM - make smaller size ! 1334: .de SM ! 1335: .ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2 ! 1336: .el .ps -2 ! 1337: .. ! 1338: . \"LG - make larger size ! 1339: .de LG ! 1340: .ps +2 ! 1341: .. ! 1342: . \"NL - return to normal size ! 1343: .de NL ! 1344: .ps \\n(PS ! 1345: .. ! 1346: . \"DA - force date; ND - no date or new date. ! 1347: .de DA ! 1348: .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4 ! 1349: .ds CF \\*(DY ! 1350: .. ! 1351: .de ND ! 1352: .ME ! 1353: .rm ME ! 1354: .ds DY \\$1 \\$2 \\$3 \\$4 ! 1355: .rm CF ! 1356: .. ! 1357: .de FN ! 1358: .FS ! 1359: .. ! 1360: . \"FS - begin footnote ! 1361: .de FJ ! 1362: 'ce 0 ! 1363: .nr IA \\n(IP ! 1364: .nr IB \\n(.i ! 1365: .ev1 ! 1366: .ll \\n(FLu ! 1367: .da FF ! 1368: .br ! 1369: .if \\n(IF \{\ ! 1370: . tm Footnote within footnote-illegal. ! 1371: . ab\} ! 1372: .nr IF 1 ! 1373: .if !\\n+(XX-1 .FA ! 1374: .. ! 1375: . \"FE - footnote end ! 1376: .de FK ! 1377: .br ! 1378: .in 0 ! 1379: .nr IF 0 ! 1380: .di ! 1381: .ev ! 1382: .if !\\n(XX-1 .nr dn +\\n(.v ! 1383: .nr YY -\\n(dn ! 1384: .if !\\n(NX .nr WF 1 ! 1385: .if \\n(dl>\\n(CW .nr WF 1 ! 1386: .ie (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu ! 1387: .el \{\ ! 1388: . if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu ! 1389: . if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v ! 1390: . if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)\} ! 1391: .nr IP \\n(IA ! 1392: 'in \\n(IBu ! 1393: .. ! 1394: .\" First page footer. ! 1395: .de FS ! 1396: .ev1 ! 1397: .br ! 1398: .ll \\n(FLu ! 1399: .da FG ! 1400: .. ! 1401: .de FE ! 1402: .br ! 1403: .di ! 1404: .nr FP \\n(dn ! 1405: .if !\\n(1T .nr KG 1 \"not in abstract repeat next page. ! 1406: .if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat. ! 1407: .ev ! 1408: .. ! 1409: .de FA ! 1410: .if n __________________________ ! 1411: .if t \l'1i' ! 1412: .br ! 1413: .. ! 1414: .de FV ! 1415: .FS ! 1416: .nf ! 1417: .ls 1 ! 1418: .FY ! 1419: .ls ! 1420: .fi ! 1421: .FE ! 1422: .. ! 1423: .de FX ! 1424: .if \\n(XX \{\ ! 1425: . di FY ! 1426: . ns\} ! 1427: .. ! 1428: .de XF ! 1429: .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v ! 1430: .ev1 ! 1431: .nf ! 1432: .ls 1 ! 1433: .FF ! 1434: .rm FF ! 1435: .nr XX 0 1 ! 1436: .br ! 1437: .ls ! 1438: .di ! 1439: .fi ! 1440: .ev ! 1441: .. ! 1442: .de FL ! 1443: .ev1 ! 1444: .nr FL \\$1n ! 1445: .ll \\$1 ! 1446: .ev ! 1447: .. ! 1448: .de HO ! 1449: AT&T Bell Laboratories ! 1450: Holmdel, New Jersey 07733 ! 1451: .. ! 1452: .de WH ! 1453: AT&T Bell Laboratories ! 1454: Whippany, New Jersey 07981 ! 1455: .. ! 1456: .de IH ! 1457: AT&T Bell Laboratories ! 1458: Naperville, Illinois 60540 ! 1459: .. ! 1460: .de UL \" underline argument, don't italicize ! 1461: .ie t \\$1\l'|0\(ul'\\$2 ! 1462: .el .I "\\$1" "\\$2" ! 1463: .. ! 1464: .de UX ! 1465: .ie \\n(GA \\$2\s-1UNIX\s0\\$1 ! 1466: .el \{\ ! 1467: .ie n \{\\$2UNIX\\$1* ! 1468: .FS ! 1469: * UNIX is a ! 1470: .ie \\$3=1 Footnote ! 1471: .el registered trademark ! 1472: of AT&T. ! 1473: .FE\} ! 1474: .el \\$2\s-1UNIX\\s0\\$1\\f1\(rg\\fP ! 1475: .nr GA 1\} ! 1476: .. ! 1477: .de US ! 1478: the ! 1479: .UX ! 1480: operating system\\$1 ! 1481: .. ! 1482: .de QS ! 1483: .br ! 1484: .LP ! 1485: .in +\\n(QIu ! 1486: .ll -\\n(QIu ! 1487: .. ! 1488: .de QE ! 1489: .br ! 1490: .ll +\\n(QIu ! 1491: .in -\\n(QIu ! 1492: .LP ! 1493: .. ! 1494: .de B1 \" begin boxed stuff ! 1495: .br ! 1496: .di BB ! 1497: .nr BC 0 ! 1498: .if "\\$1"C" .nr BC 1 ! 1499: .nr BE 1 ! 1500: .. ! 1501: .de B2 \" end boxed stuff ! 1502: .br ! 1503: .nr BI 1n ! 1504: .if \\n(.$>0 .nr BI \\$1n ! 1505: .di ! 1506: .nr BE 0 ! 1507: .nr BW \\n(dl ! 1508: .nr BH \\n(dn ! 1509: .ne \\n(BHu+\\n(.Vu ! 1510: .nr BQ \\n(.j ! 1511: .nf ! 1512: .ti 0 ! 1513: .if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u ! 1514: .in +\\n(BIu ! 1515: .ls 1 ! 1516: .BB ! 1517: .ls ! 1518: .in -\\n(BIu ! 1519: .nr BW +2*\\n(BI ! 1520: .sp -1 ! 1521: \l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu' ! 1522: .nr BW -2*\\n(BI ! 1523: .if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u ! 1524: .if \\n(BQ .fi ! 1525: .br ! 1526: .. ! 1527: .de AT ! 1528: .nf ! 1529: .sp ! 1530: .ne 2 ! 1531: Attached: ! 1532: .. ! 1533: .de CT ! 1534: .nf ! 1535: .sp ! 1536: .ne 2 ! 1537: .ie \\n(.$ Copy to \\$1: ! 1538: .el Copy to: ! 1539: .. ! 1540: .de BX ! 1541: .ie t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul' ! 1542: .el \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu' ! 1543: .. ! 1544: .IZ ! 1545: .rm IZ ! 1546: .de [ ! 1547: [ ! 1548: .. ! 1549: .de ] ! 1550: ] ! 1551: ..
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.