Small-C 2.1 (UK) (128K) (Face 3A) (1985) [Original] [UTILITAIRE].dsk
HexaDumpAscii only
000000:  45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B    EXTENDED CPC DSK
000010:  20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F     File..Disk-Info
000020:  0D 0A 53 41 4D 64 69 73 6B 31 35 30 37 30 38 00    ..SAMdisk150708.
000030:  2A 01 00 00 13 13 13 13 13 13 13 13 13 13 13 13    *...............
000040:  13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13    ................
000050:  13 13 13 13 13 13 13 13 13 13 13 13 02 00 00 00    ................
000060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0000F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000100:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
000110:  00 00 01 00 02 09 52 E5 00 00 41 02 00 00 00 02    ......R...A.....
000120:  00 00 46 02 00 00 00 02 00 00 42 02 00 00 00 02    ..F.......B.....
000130:  00 00 47 02 00 00 00 02 00 00 43 02 00 00 00 02    ..G.......C.....
000140:  00 00 48 02 00 00 00 02 00 00 44 02 00 00 00 02    ..H.......D.....
000150:  00 00 49 02 00 00 00 02 00 00 45 02 00 00 00 02    ..I.......E.....
000160:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000170:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000180:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000190:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0001F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000200:  60 69 E5 11 00 A8 01 33 00 ED B0 E1 11 00 A7 01    `i.....3........
000210:  33 00 ED B0 21 00 A0 22 04 A7 21 35 01 11 00 10    3...!.."..!5....
000220:  01 47 00 ED B0 0E 00 CD 1B A8 F3 D9 CB C9 CB 81    .G..............
000230:  D9 FB C3 00 10 01 00 A0 11 14 00 3E 1C CD 1C 10    ...........>....
000240:  01 00 01 11 08 00 3E 0C CD 1C 10 01 00 A7 C3 00    ......>.........
000250:  01 32 3C 10 D5 C5 01 00 00 CD 1E A8 C1 CD 24 A8    .2<...........$.
000260:  21 80 00 09 E3 44 4D CD 21 A8 C5 CD 27 A8 E1 23    !....DM.!...'..#
000270:  3E 0C BD 28 05 E3 44 4D 18 E3 C1 C9 60 69 11 00    >..(..DM....`i..
000280:  05 01 33 00 ED B0 0E 42 11 00 00 21 00 03 CD 89    ..3....B...!....
000290:  BE 30 06 CD 50 01 C3 03 05 CD 59 02 0D 0A 46 61    .0..P.....Y...Fa
0002A0:  69 6C 65 64 20 74 6F 20 6C 6F 61 64 20 74 68 65    iled to load the
0002B0:  20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 73     configuration s
0002C0:  65 63 74 6F 72 0D 0A 0A 24 C3 03 05 CD 59 02 04    ector...$....Y..
0002D0:  02 24 2A 00 03 11 CB ED 19 7C B5 28 26 CD 59 02    .$*......|.(&.Y.
0002E0:  0D 0A 49 6C 6C 65 67 61 6C 20 63 6F 6E 66 69 67    ..Illegal config
0002F0:  75 72 61 74 69 6F 6E 20 73 65 63 74 6F 72 0D 0A    uration sector..
000300:  0A 24 C9 2A 02 03 22 3D 02 2A 04 03 22 3F 02 3A    .$.*.."=.*.."?.:
000310:  06 03 32 43 02 21 3D 02 CD 83 BE 3A 07 03 32 03    ..2C.!=....:..2.
000320:  00 3A 08 03 CD 80 BE 3A 09 03 CD 9E BE 21 0A 03    .:.....:.....!..
000330:  CD A1 BE 21 64 03 CD 5F 02 7E 23 B7 28 0C 47 4E    ...!d.._.~#.(.GN
000340:  23 E5 C5 CD 0F 05 C1 E1 10 F5 EB 21 27 BB CD 46    #..........!'..F
000350:  02 21 2D BB CD 46 02 21 33 BB CD 46 02 EB 7E 23    .!-..F.!3..F..~#
000360:  B7 28 50 57 46 23 4E 23 E5 D5 C5 CD 0F BB C1 D1    .(PWF#N#........
000370:  E1 38 3A CD 59 02 0D 0A 45 78 70 61 6E 73 69 6F    .8:.Y...Expansio
000380:  6E 20 62 75 66 66 65 72 20 66 75 6C 6C 20 6F 72    n buffer full or
000390:  20 69 6C 6C 65 67 61 6C 20 74 6F 6B 65 6E 20 73     illegal token s
0003A0:  70 65 63 69 66 69 65 64 0D 0A 0A 24 C9 06 00 09    pecified...$....
0003B0:  15 20 B1 3A 16 03 C3 A4 BE 00 00 00 00 AF 1E 00    . .:............
0003C0:  01 03 1A 4F 13 B7 C8 1A 47 13 1A 13 E5 CD 6C 02    ...O....G.....l.
0003D0:  E1 0D 20 F3 C9 E3 CD 5F 02 E3 C9 7E 23 FE 24 C8    .. ...._...~#.$.
0003E0:  4F E5 CD 0C 05 E1 18 F3 E9 CF CF CF CF CF CF CF    O...............
0003F0:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000400:  31 00 A0 0E 00 CD 1B A8 11 0A 00 19 5E 23 56 EB    1...........^#V.
000410:  11 F1 A1 01 0E 00 ED B0 21 00 00 ED 5B F1 A1 ED    ........!...[...
000420:  4B FE A1 03 0B 78 B1 28 03 19 18 F8 22 EF A1 CD    K....x.(...."...
000430:  70 A1 79 32 ED A1 01 80 00 CD 24 A8 11 80 00 ED    p.y2......$.....
000440:  53 E5 A1 ED 4B FE A1 ED 43 E7 A1 CD 1E A8 0E 00    S...K...C.......
000450:  C5 CD 21 A8 CD 27 A8 C1 CD 4B A1 38 3A 2A E5 A1    ..!..'...K.8:*..
000460:  11 04 00 B7 ED 52 22 E5 A1 28 10 38 0E 0C 3A F1    .....R"..(.8..:.
000470:  A1 B9 20 DC ED 4B E7 A1 03 18 CC 21 93 A1 CD 87    .. ..K.....!....
000480:  A1 CD 09 A8 CD 9B BE 9E BE 21 D4 A1 CD D4 BC 18    .........!......
000490:  EA AF B8 20 0E 18 26 11 10 00 19 11 01 A2 D5 06    ... ..&.........
0004A0:  10 0E 00 3A F7 A1 16 00 5E 05 23 B7 28 03 56 05    ...:....^.#.(.V.
0004B0:  23 0C E3 73 23 72 23 E3 7A B3 20 D5 0D D1 79 B7    #..s#r#.z. ...y.
0004C0:  CA 7B A0 32 00 A2 21 01 A2 E5 01 80 00 ED 43 EB    .{.2..!.......C.
0004D0:  A1 E1 5E 23 56 23 E5 CD E4 A0 21 00 A2 35 20 F1    ..^#V#....!..5 .
0004E0:  E1 C3 00 01 EB 3A F3 A1 29 3D 20 FC ED 5B EF A1    .....:..)= ..[..
0004F0:  19 ED 5B F1 A1 AF ED 52 3C 28 04 30 F9 19 3D 2B    ..[....R<(.0..=+
000500:  22 E9 A1 6F 26 00 22 E7 A1 4D 44 CD 1E A8 3A F4    "..o&."..MD...:.
000510:  A1 3C 47 C5 3A F1 A1 47 3A E9 A1 3C B8 20 0D ED    .<G.:..G:..<. ..
000520:  4B E7 A1 03 ED 43 E7 A1 CD 1E A8 AF 32 E9 A1 4F    K....C......2..O
000530:  06 00 CD 21 A8 2A EB A1 11 80 00 19 22 EB A1 E5    ...!.*......"...
000540:  C1 CD 24 A8 CD 27 A8 C1 10 C9 C9 C5 06 04 21 80    ..$..'........!.
000550:  00 E5 11 D9 A1 C5 06 0C 1A BE 20 09 23 13 10 F8    .......... .#...
000560:  C1 E1 C1 37 C9 C1 E1 11 20 00 19 10 E4 C1 B7 C9    ...7.... .......
000570:  3A FA A1 CD 7B A1 3A FB A1 18 02 0E 00 06 08 CB    :...{.:.........
000580:  17 30 01 0C 10 F9 C9 7E B7 C8 23 E5 4F CD 0C A8    .0.....~..#.O...
000590:  E1 18 F4 24 4F 53 43 2E 53 59 53 20 77 75 72 64    ...$OSC.SYS wurd
0005A0:  65 20 6E 69 63 68 74 20 67 65 66 75 6E 64 65 6E    e nicht gefunden
0005B0:  2E 0D 0A 42 41 53 49 43 3D 69 72 67 65 6E 64 65    ...BASIC=irgende
0005C0:  69 6E 65 20 54 61 73 74 65 20 64 72 75 65 63 6B    ine Taste drueck
0005D0:  65 6E 20 00 42 41 53 49 C3 00 24 4F 53 43 20 20    en .BASI..$OSC  
0005E0:  20 20 53 59 53 00 00 00 00 00 00 00 00 00 00 00      SYS...........
0005F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000600:  35 12 32 00 FA 00 0C 81 00 00 44 6A E1 44 6A E1    5.2.......Dj.Dj.
000610:  0D 00 0D 00 0D 00 00 00 00 00 00 00 00 00 00 00    ................
000620:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000630:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000640:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000650:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000660:  00 00 00 00 24 00 00 00 00 00 00 40 1D 77 77 43    ....$......@.wwC
000670:  50 2F 4D 20 32 2E 32 20 2D 20 41 6D 73 74 72 61    P/M 2.2 - Amstra
000680:  64 20 43 6F 6E 73 75 6D 65 72 20 45 6C 65 63 74    d Consumer Elect
000690:  72 6F 6E 69 63 73 20 70 6C 63 0A 0D 24 00 00 00    ronics plc..$...
0006A0:  00 00 00 00 08 08 09 01 0A 02 07 1B 42 7F 10 08    ............B...
0006B0:  4F 0B 00 08 08 09 01 0A 02 07 1B 42 7F 10 08 4F    O..........B...O
0006C0:  0B 00 08 08 09 01 0A 02 00 00 31 31 31 31 31 31    ..........111111
0006D0:  31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31    1111111111111111
0006E0:  31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31    1111111111111111
0006F0:  31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31    1111111111111111
000700:  31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31    1111111111111111
000710:  31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31    1111111111111111
000720:  31 31 31 31 31 31 31 31 31 31 01 66 32 32 32 32    1111111111.f2222
000730:  32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32    2222222222222222
000740:  32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32    2222222222222222
000750:  32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32    2222222222222222
000760:  32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32    2222222222222222
000770:  32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32    2222222222222222
000780:  32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32    2222222222222222
000790:  32 32 03 1C 33 33 33 33 33 33 33 33 33 33 33 33    22..333333333333
0007A0:  33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33    3333333333333333
0007B0:  34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    4...............
0007C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0007D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0007E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0007F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 E5 E5    ................
000800:  A3 1E FE 0F C2 8A 06 CD CF 15 01 06 1E CD 20 12    £............. .
000810:  3A A9 1E D6 01 C6 FF 9F F5 3A A8 1E D6 3D C6 FF    :........:...=..
000820:  9F C1 48 B1 1F D2 AE 06 01 9D 04 CD AF 09 21 A7    ..H...........!.
000830:  1F 36 01 3A A7 1F 1F D2 BE 07 3A C0 1E 32 C1 1E    .6.:......:..2..
000840:  01 06 1E CD 20 12 21 04 1E 36 00 3A A9 1E D6 02    .... .!..6.:....
000850:  D6 01 9F F5 3A F5 1D 2F C1 48 A1 1F D2 ED 06 CD    ....:../.H......
000860:  88 1C CD BE 18 21 A8 1E 36 FF C3 13 07 3A A9 1E    .....!..6....:..
000870:  D6 03 C6 FF 9F F5 3E 0A 21 A8 1E 96 9F 2F F5 3E    ......>.!..../.>
000880:  05 96 9F C1 48 A1 C1 48 B1 1F D2 13 07 01 B0 04    ....H..H........
000890:  CD AF 09 3A 04 1E 21 5E 1F B6 77 3A A8 1E 3C 32    ...:..!^..w:..<2
0008A0:  A4 1E 3A A8 1E FE 13 C2 30 07 CD CF 15 C3 7D 07    ..:.....0.....}.
0008B0:  3A A8 1E FE 14 C2 40 07 0E 1A CD 45 0E C3 7D 07    :.....@....E..}.
0008C0:  3A A8 1E D6 05 9F 21 05 1E A6 1F D2 53 07 21 57    :.....!.....S.!W
0008D0:  1F 36 01 3A A3 1E FE 0A C2 7A 07 21 5D 1F 36 01    .6.:£....z.!].6.
0008E0:  3A 63 1F FE 00 C2 6D 07 21 63 1F 36 08 3A 5F 1F    :c....m.!c.6.:_.
0008F0:  FE 00 C2 7A 07 21 5F 1F 36 01 CD 6C 1A CD 12 19    ...z.!_.6..l....
000900:  01 06 1E CD 20 12 3A A9 1E D6 01 C6 FF 9F F5 3A    .... .:........:
000910:  A8 1E D6 2C C6 FF 9F F5 3A A8 1E D6 0D C6 FF 9F    ...,....:.......
000920:  C1 48 A1 C1 48 B1 1F D2 B0 07 01 BC 04 CD AF 09    .H..H...........
000930:  3A A8 1E D6 0D C6 FF 9F 32 A7 1F C3 B3 06 3A A3    :.......2.....:£
000940:  1E FE 0F C2 CE 07 0E 1A CD 45 0E CD CF 15 3A A3    .........E....:£
000950:  1E FE 00 C2 DB 07 0E 00 CD 31 19 3A A5 1E 32 CC    .........1.:..2.
000960:  1E C3 14 05 FB 76 21 F2 1D 71 21 F2 07 E5 2A 38    .....v!..q!...*8
000970:  02 E9 C9 21 FB 07 E5 2A 36 02 E9 3A 09 01 C9 3E    ...!...*6..:...>
000980:  FA CD A6 1D 3E FA CD A6 1D C9 11 00 00 0E 03 CD    ....>...........
000990:  05 00 C9 11 00 00 0E 01 CD 05 00 C9 21 AB 1E 71    ............!..q
0009A0:  3A AB 1E E6 7F 5F 16 00 0E 02 CD 05 00 C9 0E 0D    :...._..........
0009B0:  CD 1C 08 0E 0A CD 1C 08 C9 21 AD 1E 70 2B 71 CD    .........!..p+q.
0009C0:  2E 08 2A AC 1E EB 0E 09 CD 05 00 C9 11 00 00 0E    ..*.............
0009D0:  0C CD 05 00 C9 11 00 00 0E 0D CD 05 00 C9 21 AF    ..............!.
0009E0:  1E 71 2A AF 1E 26 00 EB 0E 0E CD 05 00 C9 21 B1    .q*..&........!.
0009F0:  1E 70 2B 71 2A B0 1E EB 0E 0F CD 05 00 32 AE 1E    .p+q*........2..
000A00:  60 69 11 00 05 01 33 00 ED B0 0E 42 11 00 00 21    `i....3....B...!
000A10:  00 03 CD 89 BE 30 06 CD 50 01 C3 03 05 CD 59 02    .....0..P.....Y.
000A20:  0D 0A 46 61 69 6C 65 64 20 74 6F 20 6C 6F 61 64    ..Failed to load
000A30:  20 74 68 65 20 63 6F 6E 66 69 67 75 72 61 74 69     the configurati
000A40:  6F 6E 20 73 65 63 74 6F 72 0D 0A 0A 24 C3 03 05    on sector...$...
000A50:  CD 59 02 04 02 24 2A 00 03 11 CB ED 19 7C B5 28    .Y...$*......|.(
000A60:  26 CD 59 02 0D 0A 49 6C 6C 65 67 61 6C 20 63 6F    &.Y...Illegal co
000A70:  6E 66 69 67 75 72 61 74 69 6F 6E 20 73 65 63 74    nfiguration sect
000A80:  6F 72 0D 0A 0A 24 C9 2A 02 03 22 3D 02 2A 04 03    or...$.*.."=.*..
000A90:  22 3F 02 3A 06 03 32 43 02 21 3D 02 CD 83 BE 3A    "?.:..2C.!=....:
000AA0:  07 03 32 03 00 3A 08 03 CD 80 BE 3A 09 03 CD 9E    ..2..:.....:....
000AB0:  BE 21 0A 03 CD A1 BE 21 64 03 CD 5F 02 7E 23 B7    .!.....!d.._.~#.
000AC0:  28 0C 47 4E 23 E5 C5 CD 0F 05 C1 E1 10 F5 EB 21    (.GN#..........!
000AD0:  27 BB CD 46 02 21 2D BB CD 46 02 21 33 BB CD 46    '..F.!-..F.!3..F
000AE0:  02 EB 7E 23 B7 28 50 57 46 23 4E 23 E5 D5 C5 CD    ..~#.(PWF#N#....
000AF0:  0F BB C1 D1 E1 38 3A CD 59 02 0D 0A 45 78 70 61    .....8:.Y...Expa
000B00:  6E 73 69 6F 6E 20 62 75 66 66 65 72 20 66 75 6C    nsion buffer ful
000B10:  6C 20 6F 72 20 69 6C 6C 65 67 61 6C 20 74 6F 6B    l or illegal tok
000B20:  65 6E 20 73 70 65 63 69 66 69 65 64 0D 0A 0A 24    en specified...$
000B30:  C9 06 00 09 15 20 B1 3A 16 03 C3 A4 BE 00 00 00    ..... .:........
000B40:  00 AF 1E 00 01 03 1A 4F 13 B7 C8 1A 47 13 1A 13    .......O....G...
000B50:  E5 CD 6C 02 E1 0D 20 F3 C9 E3 CD 5F 02 E3 C9 7E    ..l... ...._...~
000B60:  23 FE 24 C8 4F E5 CD 0C 05 E1 18 F3 E9 CF CF CF    #.$.O...........
000B70:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000B80:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000B90:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000BA0:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000BB0:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000BC0:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000BD0:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000BE0:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000BF0:  CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF    ................
000C00:  C3 5C E1 C3 58 E1 7F 00 20 20 20 20 20 20 20 20    .\..X...        
000C10:  20 20 20 20 20 20 20 20 43 4F 50 59 52 49 47 48            COPYRIGH
000C20:  54 20 28 43 29 20 31 39 37 39 2C 20 44 49 47 49    T (C) 1979, DIGI
000C30:  54 41 4C 20 52 45 53 45 41 52 43 48 20 20 00 00    TAL RESEARCH  ..
000C40:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000C50:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000C60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000C70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000C80:  00 00 00 00 00 00 00 00 08 DE 00 00 5F 0E 02 C3    ............_...
000C90:  05 00 C5 CD 8C DE C1 C9 3E 0D CD 92 DE 3E 0A C3    ........>....>..
000CA0:  92 DE 3E 20 C3 92 DE C5 CD 98 DE E1 7E B7 C8 23    ..> ........~..#
000CB0:  E5 CD 8C DE E1 C3 AC DE 0E 0D C3 05 00 5F 0E 0E    ............._..
000CC0:  C3 05 00 CD 05 00 32 EE E5 3C C9 0E 0F C3 C3 DE    ......2..<......
000CD0:  AF 32 ED E5 11 CD E5 C3 CB DE 0E 10 C3 C3 DE 0E    .2..............
000CE0:  11 C3 C3 DE 0E 12 C3 C3 DE 11 CD E5 C3 DF DE 0E    ................
000CF0:  13 C3 05 00 CD 05 00 B7 C9 0E 14 C3 F4 DE 11 CD    ................
000D00:  E5 C3 F9 DE 0E 15 C3 F4 DE 0E 16 C3 C3 DE 0E 17    ................
000D10:  C3 05 00 1E FF 0E 20 C3 05 00 CD 13 DF 87 87 87    ...... .........
000D20:  87 21 EF E5 B6 32 04 00 C9 3A EF E5 32 04 00 C9    .!...2...:..2...
000D30:  FE 61 D8 FE 7B D0 E6 5F C9 3A AB E5 B7 CA 96 DF    .a..{.._.:......
000D40:  3A EF E5 B7 3E 00 C4 BD DE 11 AC E5 CD CB DE CA    :...>...........
000D50:  96 DF 3A BB E5 3D 32 CC E5 11 AC E5 CD F9 DE C2    ..:..=2.........
000D60:  96 DF 11 07 DE 21 80 00 06 80 CD 42 E2 21 BA E5    .....!.....B.!..
000D70:  36 00 23 35 11 AC E5 CD DA DE CA 96 DF 3A EF E5    6.#5.........:..
000D80:  B7 C4 BD DE 21 08 DE CD AC DE CD C2 DF CA A7 DF    ....!...........
000D90:  CD DD DF C3 82 E1 CD DD DF CD 1A DF 0E 0A 11 06    ................
000DA0:  DE CD 05 00 CD 29 DF 21 07 DE 46 23 78 B7 CA BA    .....).!..F#x...
000DB0:  DF 7E CD 30 DF 77 05 C3 AB DF 77 21 08 DE 22 88    .~.0.w....w!..".
000DC0:  DE C9 0E 0B CD 05 00 B7 C8 0E 01 CD 05 00 B7 C9    ................
000DD0:  0E 19 C3 05 00 11 80 00 0E 1A C3 05 00 21 AB E5    .............!..
000DE0:  7E B7 C8 36 00 AF CD BD DE 11 AC E5 CD EF DE 3A    ~..6...........:
000DF0:  EF E5 C3 BD DE 11 28 E1 21 00 E6 06 06 1A BE C2    ......(.!.......
000E00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000E90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000EA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000EB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000EC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000ED0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000EE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000EF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000F90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000FA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000FB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000FC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000FD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000FE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
000FF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001000:  CF E1 13 23 05 C2 FD DF C9 CD 98 DE 2A 8A DE 7E    ...#........*..~
001010:  FE 20 CA 22 E0 B7 CA 22 E0 E5 CD 8C DE E1 23 C3    . ."..."......#.
001020:  0F E0 3E 3F CD 8C DE CD 98 DE CD DD DF C3 82 E1    ..>?............
001030:  1A B7 C8 FE 20 DA 09 E0 C8 FE 3D C8 FE 5F C8 FE    .... .....=.._..
001040:  2E C8 FE 3A C8 FE 3B C8 FE 3C C8 FE 3E C8 C9 1A    ...:..;..<..>...
001050:  B7 C8 FE 20 C0 13 C3 4F E0 85 6F D0 24 C9 3E 00    ... ...O..o.$.>.
001060:  21 CD E5 CD 59 E0 E5 E5 AF 32 F0 E5 2A 88 DE EB    !...Y....2..*...
001070:  CD 4F E0 EB 22 8A DE EB E1 1A B7 CA 89 E0 DE 40    .O.."..........@
001080:  47 13 1A FE 3A CA 90 E0 1B 3A EF E5 77 C3 96 E0    G...:....:..w...
001090:  78 32 F0 E5 70 13 06 08 CD 30 E0 CA B9 E0 23 FE    x2..p....0....#.
0010A0:  2A C2 A9 E0 36 3F C3 AB E0 77 13 05 C2 98 E0 CD    *...6?...w......
0010B0:  30 E0 CA C0 E0 13 C3 AF E0 23 36 20 05 C2 B9 E0    0........#6 ....
0010C0:  06 03 FE 2E C2 E9 E0 13 CD 30 E0 CA E9 E0 23 FE    .........0....#.
0010D0:  2A C2 D9 E0 36 3F C3 DB E0 77 13 05 C2 C8 E0 CD    *...6?...w......
0010E0:  30 E0 CA F0 E0 13 C3 DF E0 23 36 20 05 C2 E9 E0    0........#6 ....
0010F0:  06 03 23 36 00 05 C2 F2 E0 EB 22 88 DE E1 01 0B    ..#6......".....
001100:  00 23 7E FE 3F C2 09 E1 04 0D C2 01 E1 78 B7 C9    .#~.?........x..
001110:  44 49 52 20 45 52 41 20 54 59 50 45 53 41 56 45    DIR ERA TYPESAVE
001120:  52 45 4E 20 55 53 45 52 D0 16 04 00 00 00 21 10    REN USER......!.
001130:  E1 0E 00 79 FE 06 D0 11 CE E5 06 04 1A BE C2 4F    ...y...........O
001140:  E1 13 23 05 C2 3C E1 1A FE 20 C2 54 E1 79 C9 23    ..#..<... .T.y.#
001150:  05 C2 4F E1 0C C3 33 E1 AF 32 07 DE 31 AB E5 C5    ..O...3..2..1...
001160:  79 1F 1F 1F 1F E6 0F 5F CD 15 DF CD B8 DE 32 AB    y......_......2.
001170:  E5 C1 79 E6 0F 32 EF E5 CD BD DE 3A 07 DE B7 C2    ..y..2.....:....
001180:  98 E1 31 AB E5 CD 98 DE CD D0 DF C6 41 CD 8C DE    ..1.........A...
001190:  3E 3E CD 8C DE CD 39 DF 11 80 00 CD D8 DF CD D0    >>....9.........
0011A0:  DF 32 EF E5 CD 5E E0 C4 09 E0 3A F0 E5 B7 C2 A5    .2...^....:.....
0011B0:  E4 CD 2E E1 21 C1 E1 5F 16 00 19 19 7E 23 66 6F    ....!.._....~#fo
0011C0:  E9 77 E2 1F E3 5D E3 AD E3 10 E4 8E E4 A5 E4 21    .w...].........!
0011D0:  F3 76 22 00 DE 21 00 DE E9 01 DF E1 C3 A7 DE 52    .v"..!.........R
0011E0:  45 41 44 20 45 52 52 4F 52 00 01 F0 E1 C3 A7 DE    EAD ERROR.......
0011F0:  4E 4F 20 46 49 4C 45 00 CD 5E E0 3A F0 E5 B7 C2    NO FILE..^.:....
001200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0012A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0012B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0012C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0012D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0012E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0012F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0013A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0013B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0013C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0013D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0013E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0013F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
001400:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
001410:  01 00 01 00 02 09 52 E5 01 00 41 02 00 00 00 02    ......R...A.....
001420:  01 00 46 02 00 00 00 02 01 00 42 02 00 00 00 02    ..F.......B.....
001430:  01 00 47 02 00 00 00 02 01 00 43 02 00 00 00 02    ..G.......C.....
001440:  01 00 48 02 00 00 00 02 01 00 44 02 00 00 00 02    ..H.......D.....
001450:  01 00 49 02 00 00 00 02 01 00 45 02 00 00 00 02    ..I.......E.....
001460:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001470:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001480:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001490:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0014F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001500:  09 E0 21 CE E5 01 0B 00 7E FE 20 CA 33 E2 23 D6    ..!.....~. .3.#.
001510:  30 FE 0A D2 09 E0 57 78 E6 E0 C2 09 E0 78 07 07    0.....Wx.....x..
001520:  07 80 DA 09 E0 80 DA 09 E0 82 DA 09 E0 47 0D C2    .............G..
001530:  08 E2 C9 7E FE 20 C2 09 E0 23 0D C2 33 E2 78 C9    ...~. ...#..3.x.
001540:  06 03 7E 12 23 13 05 C2 42 E2 C9 21 80 00 81 CD    ..~.#...B..!....
001550:  59 E0 7E C9 AF 32 CD E5 3A F0 E5 B7 C8 3D 21 EF    Y.~..2..:....=!.
001560:  E5 BE C8 C3 BD DE 3A F0 E5 B7 C8 3D 21 EF E5 BE    ......:....=!...
001570:  C8 3A EF E5 C3 BD DE CD 5E E0 CD 54 E2 21 CE E5    .:......^..T.!..
001580:  7E FE 20 C2 8F E2 06 0B 36 3F 23 05 C2 88 E2 1E    ~. .....6?#.....
001590:  00 D5 CD E9 DE CC EA E1 CA 1B E3 3A EE E5 0F 0F    ...........:....
0015A0:  0F E6 60 4F 3E 0A CD 4B E2 17 DA 0F E3 D1 7B 1C    ..`O>..K......{.
0015B0:  D5 E6 03 F5 C2 CC E2 CD 98 DE C5 CD D0 DF C1 C6    ................
0015C0:  41 CD 92 DE 3E 3A CD 92 DE C3 D4 E2 CD A2 DE 3E    A...>:.........>
0015D0:  3A CD 92 DE CD A2 DE 06 01 78 CD 4B E2 E6 7F FE    :........x.K....
0015E0:  20 C2 F9 E2 F1 F5 FE 03 C2 F7 E2 3E 09 CD 4B E2     ..........>..K.
0015F0:  E6 7F FE 20 CA 0E E3 3E 20 CD 92 DE 04 78 FE 0C    ... ...> ....x..
001600:  D2 0E E3 FE 09 C2 D9 E2 CD A2 DE C3 D9 E2 F1 CD    ................
001610:  C2 DF C2 1B E3 CD E4 DE C3 98 E2 D1 C3 86 E5 CD    ................
001620:  5E E0 FE 0B C2 42 E3 01 52 E3 CD A7 DE CD 39 DF    ^....B..R.....9.
001630:  21 07 DE 35 C2 82 E1 23 7E FE 59 C2 82 E1 23 22    !..5...#~.Y...#"
001640:  88 DE CD 54 E2 11 CD E5 CD EF DE 3C CC EA E1 C3    ...T.......<....
001650:  86 E5 41 4C 4C 20 28 59 2F 4E 29 3F 00 CD 5E E0    ..ALL (Y/N)?..^.
001660:  C2 09 E0 CD 54 E2 CD D0 DE CA A7 E3 CD 98 DE 21    ....T..........!
001670:  F1 E5 36 FF 21 F1 E5 7E FE 80 DA 87 E3 E5 CD FE    ..6.!..~........
001680:  DE E1 C2 A0 E3 AF 77 34 21 80 00 CD 59 E0 7E FE    ......w4!...Y.~.
001690:  1A CA 86 E5 CD 8C DE CD C2 DF C2 86 E5 C3 74 E3    ..............t.
0016A0:  3D CA 86 E5 CD D9 E1 CD 66 E2 C3 09 E0 CD F8 E1    =.......f.......
0016B0:  F5 CD 5E E0 C2 09 E0 CD 54 E2 11 CD E5 D5 CD EF    ..^.....T.......
0016C0:  DE D1 CD 09 DF CA FB E3 AF 32 ED E5 F1 6F 26 00    .........2...o&.
0016D0:  29 11 00 01 7C B5 CA F1 E3 2B E5 21 80 00 19 E5    )...|....+.!....
0016E0:  CD D8 DF 11 CD E5 CD 04 DF D1 E1 C2 FB E3 C3 D4    ................
0016F0:  E3 11 CD E5 CD DA DE 3C C2 01 E4 01 07 E4 CD A7    .......<........
001700:  FF 22 EA F3 C9 2A C8 F3 EB 2A EA F3 23 22 EA F3    ."...*...*..#"..
001710:  CD 95 EB D2 19 EC C3 FE EB 3A EA F3 E6 03 06 05    .........:......
001720:  87 05 C2 20 EC 32 E9 F3 B7 C0 C5 CD C3 E9 CD D4    ... .2..........
001730:  EB C1 C3 9E EB 79 E6 07 3C 5F 57 79 0F 0F 0F E6    .....y..<_Wy....
001740:  1F 4F 78 87 87 87 87 87 B1 4F 78 0F 0F 0F E6 1F    .Ox......Ox.....
001750:  47 2A BF F3 09 7E 07 1D C2 56 EC C9 D5 CD 35 EC    G*...~...V....5.
001760:  E6 FE C1 B1 0F 15 C2 64 EC 77 C9 CD 5E EB 11 10    .......d.w..^...
001770:  00 19 C5 0E 11 D1 0D C8 D5 3A DD F3 B7 CA 88 EC    .........:......
001780:  C5 E5 4E 06 00 C3 8E EC 0D C5 4E 23 46 E5 79 B0    ..N.......N#F.y.
001790:  CA 9D EC 2A C6 F3 7D 91 7C 98 D4 5C EC E1 23 C1    ...*..}.|..\..#.
0017A0:  C3 75 EC 2A C6 F3 0E 03 CD EA EA 23 44 4D 2A BF    .u.*.......#DM*.
0017B0:  F3 36 00 23 0B 78 B1 C2 B1 EC 2A CA F3 EB 2A BF    .6.#.x....*...*.
0017C0:  F3 73 23 72 CD A1 E9 2A B3 F3 36 03 23 36 00 CD    .s#r...*..6.#6..
0017D0:  FE EB 0E FF CD 05 EC CD F5 EB C8 CD 5E EB 3E E5    ............^.>.
0017E0:  BE CA D2 EC 3A 41 E9 BE C2 F6 EC 23 7E D6 24 C2    ....:A.....#~.$.
0017F0:  F6 EC 3D 32 45 E9 0E 01 CD 6B EC CD 8C EB C3 D2    ..=2E....k......
001800:  EC 3A D4 F3 C3 01 E9 C5 F5 3A C5 F3 2F 47 79 A0    .:.......:../Gy.
001810:  4F F1 A0 91 E6 1F C1 C9 3E FF 32 D4 F3 21 D8 F3    O.......>.2..!..
001820:  71 2A 43 E9 22 D9 F3 CD FE EB CD A1 E9 0E 00 CD    q*C."...........
001830:  05 EC CD F5 EB CA 94 ED 2A D9 F3 EB 1A FE E5 CA    ........*.......
001840:  4A ED D5 CD 7F EB D1 D2 94 ED CD 5E EB 3A D8 F3    J..........^.:..
001850:  4F 06 00 79 B7 CA 83 ED 1A FE 3F CA 7C ED 78 FE    O..y......?.|.x.
001860:  0D CA 7C ED FE 0C 1A CA 73 ED 96 E6 7F C2 2D ED    ..|.....s.....-.
001870:  C3 7C ED C5 4E CD 07 ED C1 C2 2D ED 13 23 04 0D    .|..N.....-..#..
001880:  C3 53 ED 3A EA F3 E6 03 32 45 E9 21 D4 F3 7E 17    .S.:....2E.!..~.
001890:  D0 AF 77 C9 CD FE EB 3E FF C3 01 E9 CD 54 EB 0E    ..w....>.....T..
0018A0:  0C CD 18 ED CD F5 EB C8 CD 44 EB CD 5E EB 36 E5    .........D..^.6.
0018B0:  0E 00 CD 6B EC CD C6 EB CD 2D ED C3 A4 ED 50 59    ...k.....-....PY
0018C0:  79 B0 CA D1 ED 0B D5 C5 CD 35 EC 1F D2 EC ED C1    y........5......
0018D0:  D1 2A C6 F3 7B 95 7A 9C D2 F4 ED 13 C5 D5 42 4B    .*..{.z.......BK
0018E0:  CD 35 EC 1F D2 EC ED D1 C1 C3 C0 ED 17 3C CD 64    .5...........<.d
0018F0:  EC E1 D1 C9 79 B0 C2 C0 ED 21 00 00 C9 0E 00 1E    ....y....!......
001900:  DE CD D5 DF C3 86 E5 4E 4F 20 53 50 41 43 45 00    .......NO SPACE.
001910:  CD 5E E0 C2 09 E0 3A F0 E5 F5 CD 54 E2 CD E9 DE    .^....:....T....
001920:  C2 79 E4 21 CD E5 11 DD E5 06 10 CD 42 E2 2A 88    .y.!........B.*.
001930:  DE EB CD 4F E0 FE 3D CA 3F E4 FE 5F C2 73 E4 EB    ...O..=.?.._.s..
001940:  23 22 88 DE CD 5E E0 C2 73 E4 F1 47 21 F0 E5 7E    #"...^..s..G!..~
001950:  B7 CA 59 E4 B8 70 C2 73 E4 70 AF 32 CD E5 CD E9    ..Y..p.s.p.2....
001960:  DE CA 6D E4 11 CD E5 CD 0E DF C3 86 E5 CD EA E1    ..m.............
001970:  C3 86 E5 CD 66 E2 C3 09 E0 01 82 E4 CD A7 DE C3    ....f...........
001980:  86 E5 46 49 4C 45 20 45 58 49 53 54 53 00 CD F8    ..FILE EXISTS...
001990:  E1 FE 10 D2 09 E0 5F 3A CE E5 FE 20 CA 09 E0 CD    ......_:... ....
0019A0:  15 DF C3 89 E5 CD F5 DF 3A CE E5 FE 20 C2 C4 E4    ........:... ...
0019B0:  3A F0 E5 B7 CA 89 E5 3D 32 EF E5 CD 29 DF CD BD    :......=2...)...
0019C0:  DE C3 89 E5 11 D6 E5 1A FE 20 C2 09 E0 D5 CD 54    ......... .....T
0019D0:  E2 D1 21 83 E5 CD 40 E2 CD D0 DE CA 6B E5 21 00    ..!...@.....k.!.
0019E0:  01 E5 EB CD D8 DF 11 CD E5 CD F9 DE C2 01 E5 E1    ................
0019F0:  11 80 00 19 11 00 DE 7D 93 7C 9A D2 71 E5 C3 E1    .......}.|..q...
001A00:  E4 E1 3D C2 71 E5 CD 66 E2 CD 5E E0 21 F0 E5 E5    ..=.q..f..^.!...
001A10:  7E 32 CD E5 3E 10 CD 60 E0 E1 7E 32 DD E5 AF 32    ~2..>..`..~2...2
001A20:  ED E5 11 5C 00 21 CD E5 06 21 CD 42 E2 21 08 DE    ...\.!...!.B.!..
001A30:  7E B7 CA 3E E5 FE 20 CA 3E E5 23 C3 30 E5 06 00    ~..>.. .>.#.0...
001A40:  11 81 00 7E 12 B7 CA 4F E5 04 23 13 C3 43 E5 78    ...~...O..#..C.x
001A50:  32 80 00 CD 98 DE CD D5 DF CD 1A DF CD 00 01 31    2..............1
001A60:  AB E5 CD 29 DF CD BD DE C3 82 E1 CD 66 E2 C3 09    ...)........f...
001A70:  E0 01 7A E5 CD A7 DE C3 86 E5 42 41 44 20 4C 4F    ..z.......BAD LO
001A80:  41 44 00 43 4F 4D CD 66 E2 CD 5E E0 3A CE E5 D6    AD.COM.f..^.:...
001A90:  20 21 F0 E5 B6 C2 09 E0 C3 82 E1 00 00 00 00 00     !..............
001AA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 24 24 24    .............$$$
001AB0:  20 20 20 20 20 53 55 42 00 00 00 00 00 00 00 00         SUB........
001AC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001AD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001AE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001AF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
001B00:  20 D5 06 00 2A 43 E9 09 EB CD 5E EB C1 CD 4F E9     ...*C....^...O.
001B10:  CD C3 E9 C3 C6 EB CD 54 EB 0E 0C CD 18 ED 2A 43    .......T......*C
001B20:  E9 7E 11 10 00 19 77 CD F5 EB C8 CD 44 EB 0E 10    .~....w.....D...
001B30:  1E 0C CD 01 EE CD 2D ED C3 27 EE 0E 0C CD 18 ED    ......-..'......
001B40:  CD F5 EB C8 0E 00 1E 0C CD 01 EE CD 2D ED C3 40    ............-..@
001B50:  EE 0E 0F CD 18 ED CD F5 EB C8 CD A6 EA 7E F5 E5    .............~..
001B60:  CD 5E EB EB 2A 43 E9 0E 20 D5 CD 4F E9 CD 78 EB    .^..*C.. ..O..x.
001B70:  D1 21 0C 00 19 4E 21 0F 00 19 46 E1 F1 77 79 BE    .!...N!...F..wy.
001B80:  78 CA 8B EE 3E 00 DA 8B EE 3E 80 2A 43 E9 11 0F    x...>....>.*C...
001B90:  00 19 77 C9 7E 23 B6 2B C0 1A 77 13 23 1A 77 1B    ..w.~#.+..w.#.w.
001BA0:  2B C9 AF 32 45 E9 32 EA F3 32 EB F3 CD 1E EB C0    +..2E.2..2......
001BB0:  CD 69 EB E6 80 C0 0E 0F CD 18 ED CD F5 EB C8 01    .i..............
001BC0:  10 00 CD 5E EB 09 EB 2A 43 E9 09 0E 10 3A DD F3    ...^...*C....:..
001BD0:  B7 CA E8 EE 7E B7 1A C2 DB EE 77 B7 C2 E1 EE 7E    ....~.....w....~
001BE0:  12 BE C2 1F EF C3 FD EE CD 94 EE EB CD 94 EE EB    ................
001BF0:  1A BE C2 1F EF 13 23 1A BE C2 1F EF 0D 13 23 0D    ......#.......#.
001C00:  C2 CD EE 01 EC FF 09 EB 09 1A BE DA 17 EF 77 01    ..............w.
001C10:  03 00 09 EB 09 7E 12 3E FF 32 D2 F3 C3 10 EE 21    .....~.>.2.....!
001C20:  45 E9 35 C9 CD 54 EB 2A 43 E9 E5 21 AC F3 22 43    E.5..T.*C..!.."C
001C30:  E9 0E 01 CD 18 ED CD F5 EB E1 22 43 E9 C8 EB 21    .........."C...!
001C40:  0F 00 19 0E 11 AF 77 23 0D C2 46 EF 21 0D 00 19    ......w#..F.!...
001C50:  77 CD 8C EB CD FD ED C3 78 EB AF 32 D2 F3 CD A2    w.......x..2....
001C60:  EE CD F5 EB C8 2A 43 E9 01 0C 00 09 7E 3C E6 1F    .....*C.....~<..
001C70:  77 CA 83 EF 47 3A C5 F3 A0 21 D2 F3 A6 CA 8E EF    w...G:...!......
001C80:  C3 AC EF 01 02 00 09 34 7E E6 0F CA B6 EF 0E 0F    .......4~.......
001C90:  CD 18 ED CD F5 EB C2 AC EF 3A D3 F3 3C CA B6 EF    .........:..<...
001CA0:  CD 24 EF CD F5 EB CA B6 EF C3 AF EF CD 5A EE CD    .$...........Z..
001CB0:  BB EA AF C3 01 E9 CD 05 E9 C3 78 EB 3E 01 32 D5    ..........x.>.2.
001CC0:  F3 3E FF 32 D3 F3 CD BB EA 3A E3 F3 21 E1 F3 BE    .>.2.....:..!...
001CD0:  DA E6 EF FE 80 C2 FB EF CD 5A EF AF 32 E3 F3 3A    .........Z..2..:
001CE0:  45 E9 B7 C2 FB EF CD 77 EA CD 84 EA CA FB EF CD    E......w........
001CF0:  8A EA CD D1 E9 CD B2 E9 C3 D2 EA C3 05 E9 3E 01    ..............>.
001D00:  D0 16 04 00 00 00 C3 11 E6 99 E6 A5 E6 AB E6 B1    ................
001D10:  E6 EB 22 43 E9 EB 7B 32 D6 F3 21 00 00 22 45 E9    .."C..{2..!.."E.
001D20:  39 22 0F E9 31 41 E9 AF 32 E0 F3 32 DE F3 21 74    9"..1A..2..2..!t
001D30:  F3 E5 79 FE 29 D0 4B 21 47 E6 5F 16 00 19 19 5E    ..y.).K!G._....^
001D40:  23 56 2A 43 E9 EB E9 03 F4 C8 E8 90 E7 CE E8 12    #V*C............
001D50:  F4 0F F4 D4 E8 ED E8 F3 E8 F8 E8 E1 E7 FE E8 7E    ...............~
001D60:  F2 83 F2 45 F2 9C F2 A5 F2 AB F2 C8 F2 D7 F2 E0    ...E............
001D70:  F2 E6 F2 EC F2 F5 F2 FE F2 04 F3 0A F3 11 F3 2C    ...............,
001D80:  EB 17 F3 1D F3 26 F3 2D F3 41 F3 47 F3 4D F3 0E    .....&.-.A.G.M..
001D90:  F2 53 F3 04 E9 04 E9 9B F3 21 CA E6 CD E5 E6 FE    .S.......!......
001DA0:  03 CA 00 00 C9 21 D5 E6 C3 B4 E6 21 E1 E6 C3 B4    .....!.....!....
001DB0:  E6 21 DC E6 CD E5 E6 C3 00 00 42 64 6F 73 20 45    .!........Bdos E
001DC0:  72 72 20 4F 6E 20 20 3A 20 24 42 61 64 20 53 65    rr On  : $Bad Se
001DD0:  63 74 6F 72 24 53 65 6C 65 63 74 24 46 69 6C 65    ctor$Select$File
001DE0:  20 52 2F 4F 24 E5 CD C9 E7 3A 42 E9 C6 41 32 C6     R/O$....:B..A2.
001DF0:  E6 01 BA E6 CD D3 E7 C1 CD D3 E7 21 0E E9 7E 36    ...........!..~6
001E00:  00 B7 C0 C3 09 F4 CD FB E6 CD 14 E7 D8 F5 4F CD    ..............O.
001E10:  90 E7 F1 C9 FE 0D C8 FE 0A C8 FE 09 C8 FE 08 C8    ................
001E20:  FE 20 C9 3A 0E E9 B7 C2 45 E7 CD 06 F4 E6 01 C8    . .:....E.......
001E30:  CD 09 F4 FE 13 C2 42 E7 CD 09 F4 FE 03 CA 00 00    ......B.........
001E40:  AF C9 32 0E E9 3E 01 C9 3A 0A E9 B7 C2 62 E7 C5    ..2..>..:....b..
001E50:  CD 2A E7 C1 C5 CD 0C F4 C1 C5 3A 0D E9 B7 C4 0F    .*........:.....
001E60:  F4 C1 79 21 0C E9 FE 7F C8 34 FE 20 D0 35 7E B7    ..y!.....4. .5~.
001E70:  C8 79 FE 08 C2 79 E7 35 C9 FE 0A C0 36 00 C9 79    .y...y.5....6..y
001E80:  CD 14 E7 D2 90 E7 F5 0E 5E CD 48 E7 F1 F6 40 4F    ........^.H...@O
001E90:  79 FE 09 C2 48 E7 0E 20 CD 48 E7 3A 0C E9 E6 07    y...H.. .H.:....
001EA0:  C2 96 E7 C9 CD AC E7 0E 20 CD 0C F4 0E 08 C3 0C    ........ .......
001EB0:  F4 0E 23 CD 48 E7 CD C9 E7 3A 0C E9 21 0B E9 BE    ..#.H....:..!...
001EC0:  D0 0E 20 CD 48 E7 C3 B9 E7 0E 0D CD 48 E7 0E 0A    .. .H.......H...
001ED0:  C3 48 E7 0A FE 24 C8 03 C5 4F CD 90 E7 C1 C3 D3    .H...$...O......
001EE0:  E7 3A 0C E9 32 0B E9 2A 43 E9 4E 23 E5 06 00 C5    .:..2..*C.N#....
001EF0:  E5 CD FB E6 E6 7F E1 C1 FE 0D CA C1 E8 FE 0A CA    ................
001F00:  32 D5 F3 3E 00 32 D3 F3 CD 54 EB 2A 43 E9 CD 47    2..>.2...T.*C..G
001F10:  EB CD BB EA 3A E3 F3 FE 80 D2 05 E9 CD 77 EA CD    ....:........w..
001F20:  84 EA 0E 00 C2 6E F0 CD 3E EA 32 D7 F3 01 00 00    .....n..>.2.....
001F30:  B7 CA 3B F0 4F 0B CD 5E EA 44 4D CD BE ED 7D B4    ..;.O..^.DM...}.
001F40:  C2 48 F0 3E 02 C3 01 E9 22 E5 F3 EB 2A 43 E9 01    .H.>...."...*C..
001F50:  10 00 09 3A DD F3 B7 3A D7 F3 CA 64 F0 CD 64 EB    ...:...:...d..d.
001F60:  73 C3 6C F0 4F 06 00 09 09 73 23 72 0E 02 3A 45    s.l.O....s#r..:E
001F70:  E9 B7 C0 C5 CD 8A EA 3A D5 F3 3D 3D C2 BB F0 C1    .......:..==....
001F80:  C5 79 3D 3D C2 BB F0 E5 2A B9 F3 57 77 23 14 F2    .y==....*..Ww#..
001F90:  8C F0 CD E0 EB 2A E7 F3 0E 02 22 E5 F3 C5 CD D1    .....*....".....
001FA0:  E9 C1 CD B8 E9 2A E5 F3 0E 00 3A C4 F3 47 A5 B8    .....*....:..G..
001FB0:  23 C2 9A F0 E1 22 E5 F3 CD DA EB CD D1 E9 C1 C5    #...."..........
001FC0:  CD B8 E9 C1 3A E3 F3 21 E1 F3 BE DA D2 F0 77 34    ....:..!......w4
001FD0:  0E 02 00 00 21 00 DE F5 CD 69 EB E6 7F 77 F1 FE    ....!....i...w..
001FE0:  7F C2 00 F1 3A D5 F3 FE 01 C2 00 F1 CD D2 EA CD    ....:...........
001FF0:  5A EF 21 45 E9 7E B7 C2 FE F0 3D 32 E3 F3 36 00    Z.!E.~....=2..6.
002000:  C3 D2 EA AF 32 D5 F3 C5 2A 43 E9 EB 21 21 00 19    ....2...*C..!!..
002010:  7E E6 7F F5 7E 17 23 7E 17 E6 1F 4F 7E 1F 1F 1F    ~...~.#~...O~...
002020:  1F E6 0F 47 F1 23 6E 2C 2D 2E 06 C2 8B F1 21 20    ...G.#n,-.....! 
002030:  00 19 77 21 0C 00 19 79 96 C2 47 F1 21 0E 00 19    ..w!...y..G.!...
002040:  78 96 E6 7F CA 7F F1 C5 D5 CD A2 EE D1 C1 2E 03    x...............
002050:  3A 45 E9 3C CA 84 F1 21 0C 00 19 71 21 0E 00 19    :E.<...!...q!...
002060:  70 CD 51 EE 3A 45 E9 3C C2 7F F1 C1 C5 2E 04 0C    p.Q.:E.<........
002070:  CA 84 F1 CD 24 EF 2E 05 3A 45 E9 3C CA 84 F1 C1    ....$...:E.<....
002080:  AF C3 01 E9 E5 CD 69 EB 36 C0 E1 C1 7D 32 45 E9    ......i.6...}2E.
002090:  C3 78 EB 0E FF CD 03 F1 CC C1 EF C9 0E 00 CD 03    .x..............
0020A0:  F1 CC 03 F0 C9 EB 19 4E 06 00 21 0C 00 19 7E 0F    .......N..!...~.
0020B0:  E6 80 81 4F 3E 00 88 47 7E 0F E6 0F 80 47 21 0E    ...O>..G~....G!.
0020C0:  00 19 7E 87 87 87 87 F5 80 47 F5 E1 7D E1 B5 E6    ..~......G..}...
0020D0:  01 C9 0E 0C CD 18 ED 2A 43 E9 11 21 00 19 E5 72    .......*C..!...r
0020E0:  23 72 23 72 CD F5 EB CA 0C F2 CD 5E EB 11 0F 00    #r#r.......^....
0020F0:  CD A5 F1 E1 E5 5F 79 96 23 78 9E 23 7B 9E DA 06    ....._y.#x.#{...
002100:  C1 E8 FE 08 C2 16 E8 78 B7 CA EF E7 05 3A 0C E9    .......x.....:..
002110:  32 0A E9 C3 70 E8 FE 7F C2 26 E8 3E 08 C3 07 E8    2...p....&.>....
002120:  7E 05 2B C3 A9 E8 FE 05 C2 37 E8 C5 E5 CD C9 E7    ~.+......7......
002130:  AF 32 0B E9 C3 F1 E7 FE 10 C2 48 E8 E5 21 0D E9    .2........H..!..
002140:  3E 01 96 77 E1 C3 EF E7 FE 18 C2 5F E8 E1 3A 0B    >..w......._..:.
002150:  E9 21 0C E9 BE D2 E1 E7 35 CD A4 E7 C3 4E E8 FE    .!......5....N..
002160:  15 C2 6B E8 CD B1 E7 E1 C3 E1 E7 FE 12 C2 A6 E8    ..k.............
002170:  C5 CD B1 E7 C1 E1 E5 C5 78 B7 CA 8A E8 23 4E 05    ........x....#N.
002180:  C5 E5 CD 7F E7 E1 C1 C3 78 E8 E5 3A 0A E9 B7 CA    ........x..:....
002190:  F1 E7 21 0C E9 96 32 0A E9 CD A4 E7 21 0A E9 35    ..!...2.....!..5
0021A0:  C2 99 E8 C3 F1 E7 23 77 04 C5 E5 4F CD 7F E7 E1    ......#w...O....
0021B0:  C1 7E FE 03 78 C2 BD E8 FE 01 CA 00 00 B9 DA EF    .~..x...........
0021C0:  E7 E1 70 0E 0D C3 48 E7 CD 06 E7 C3 01 E9 CD 15    ..p...H.........
0021D0:  F4 C3 01 E9 79 3C CA E0 E8 3C CA 06 F4 C3 0C F4    ....y<...<......
0021E0:  CD 06 F4 B7 CA 91 F3 CD 09 F4 C3 01 E9 3A 03 00    .............:..
0021F0:  C3 01 E9 21 03 00 71 C9 EB 4D 44 C3 D3 E7 CD 23    ...!..q..MD....#
002200:  E7 32 45 E9 C9 3E 01 C3 01 E9 00 00 00 00 00 00    .2E..>..........
002210:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002220:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002230:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002240:  00 00 00 00 00 00 00 21 0B E6 5E 23 56 EB E9 0C    .......!..^#V...
002250:  0D C8 1A 77 13 23 C3 50 E9 3A 42 E9 4F CD 1B F4    ...w.#.P.:B.O...
002260:  7C B5 C8 5E 23 56 23 22 B3 F3 23 23 22 B5 F3 23    |..^#V#"..##"..#
002270:  23 22 B7 F3 23 23 EB 22 D0 F3 21 B9 F3 0E 08 CD    #"..##."..!.....
002280:  4F E9 2A BB F3 EB 21 C1 F3 0E 0F CD 4F E9 2A C6    O.*...!.....O.*.
002290:  F3 7C 21 DD F3 36 FF B7 CA 9D E9 36 00 3E FF B7    .|!..6.....6.>..
0022A0:  C9 CD 18 F4 AF 2A B5 F3 77 23 77 2A B7 F3 77 23    .....*..w#w*..w#
0022B0:  77 C9 CD 27 F4 C3 BB E9 CD 2A F4 B7 C8 21 09 E6    w..'.....*...!..
0022C0:  C3 4A E9 2A EA F3 0E 02 CD EA EA 22 E5 F3 22 EC    .J.*......."..".
0022D0:  F3 21 E5 F3 4E 23 46 2A B7 F3 5E 23 56 2A B5 F3    .!..N#F*..^#V*..
0022E0:  7E 23 66 6F 79 93 78 9A D2 FA E9 E5 2A C1 F3 7B    ~#foy.x.....*..{
0022F0:  95 5F 7A 9C 57 E1 2B C3 E4 E9 E5 2A C1 F3 19 DA    ._z.W.+....*....
002300:  F2 73 2B 70 2B 71 CD 2D ED C3 E4 F1 E1 C9 2A 43    .s+p+q.-......*C
002310:  E9 11 20 00 CD A5 F1 21 21 00 19 71 23 70 23 77    .. ....!!..q#p#w
002320:  C9 2A AF F3 3A 42 E9 4F CD EA EA E5 EB CD 59 E9    .*..:B.O......Y.
002330:  E1 CC 47 E9 7D 1F D8 2A AF F3 4D 44 CD 0B EB 22    ..G.}..*..MD..."
002340:  AF F3 C3 A3 EC 3A D6 F3 21 42 E9 BE C8 77 C3 21    ...£.:..!B...w.!
002350:  F2 3E FF 32 DE F3 2A 43 E9 7E E6 1F 3D 32 D6 F3    .>.2..*C.~..=2..
002360:  FE 1E D2 75 F2 3A 42 E9 32 DF F3 7E 32 E0 F3 E6    ...u.:B.2..~2...
002370:  E0 77 CD 45 F2 3A 41 E9 2A 43 E9 B6 77 C9 3E 22    .w.E.:A.*C..w.>"
002380:  C3 01 E9 21 00 00 22 AD F3 22 AF F3 AF 32 42 E9    ...!..".."...2B.
002390:  21 80 00 22 B1 F3 CD DA EB C3 21 F2 CD 72 EB CD    !.."......!..r..
0023A0:  51 F2 C3 51 EE CD 51 F2 C3 A2 EE 0E 00 EB 7E FE    Q..Q..Q.......~.
0023B0:  3F CA C2 F2 CD A6 EA 7E FE 3F C4 72 EB CD 51 F2    ?......~.?.r..Q.
0023C0:  0E 0F CD 18 ED C3 E9 EB 2A D9 F3 22 43 E9 CD 51    ........*.."C..Q
0023D0:  F2 CD 2D ED C3 E9 EB CD 51 F2 CD 9C ED C3 01 ED    ..-.....Q.......
0023E0:  CD 51 F2 C3 BC EF CD 51 F2 C3 FE EF CD 72 EB CD    .Q.....Q.....r..
0023F0:  51 F2 C3 24 EF CD 51 F2 CD 16 EE C3 01 ED 2A AF    Q..$..Q.......*.
002400:  F3 C3 29 F3 3A 42 E9 C3 01 E9 EB 22 B1 F3 C3 DA    ..).:B....."....
002410:  EB 2A BF F3 C3 29 F3 2A AD F3 C3 29 F3 CD 51 F2    .*...).*...)..Q.
002420:  CD 3B EE C3 01 ED 2A BB F3 22 45 E9 C9 3A D6 F3    .;....*.."E..:..
002430:  FE FF C2 3B F3 3A 41 E9 C3 01 E9 E6 1F 32 41 E9    ...;.:A......2A.
002440:  C9 CD 51 F2 C3 93 F1 CD 51 F2 C3 9C F1 CD 51 F2    ..Q.....Q.....Q.
002450:  C3 D2 F1 2A 43 E9 7D 2F 5F 7C 2F 2A AF F3 A4 57    ...*C.}/_|/*...W
002460:  7D A3 5F 2A AD F3 EB 22 AF F3 7D A3 6F 7C A2 67    }£_*..."..}£o|.g
002470:  22 AD F3 C9 3A DE F3 B7 CA 91 F3 2A 43 E9 36 00    "...:......*C.6.
002480:  3A E0 F3 B7 CA 91 F3 77 3A DF F3 32 D6 F3 CD 45    :......w:..2...E
002490:  F2 2A 0F E9 F9 2A 45 E9 7D 44 C9 CD 51 F2 3E 02    .*...*E.}D..Q.>.
0024A0:  32 D5 F3 0E 00 CD 07 F1 CC 03 F0 C9 E5 00 00 00    2...............
0024B0:  00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0024C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0024D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0024E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0024F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002500:  0F EA 79 95 78 9C DA 0F EA EB E1 23 C3 FA E9 E1    ..y.x......#....
002510:  C5 D5 E5 EB 2A CE F3 19 44 4D CD 1E F4 D1 2A B5    ....*...DM....*.
002520:  F3 73 23 72 D1 2A B7 F3 73 23 72 C1 79 93 4F 78    .s#r.*..s#r.y.Ox
002530:  9A 47 2A D0 F3 EB CD 30 F4 4D 44 C3 21 F4 21 C3    .G*....0.MD.!.!.
002540:  F3 4E 3A E3 F3 B7 1F 0D C2 45 EA 47 3E 08 96 4F    .N:......E.G>..O
002550:  3A E2 F3 0D CA 5C EA B7 17 C3 53 EA 80 C9 2A 43    :....\....S...*C
002560:  E9 11 10 00 19 09 3A DD F3 B7 CA 71 EA 6E 26 00    ......:....q.n&.
002570:  C9 09 5E 23 56 EB C9 CD 3E EA 4F 06 00 CD 5E EA    ..^#V...>.O...^.
002580:  22 E5 F3 C9 2A E5 F3 7D B4 C9 3A C3 F3 2A E5 F3    "...*..}..:..*..
002590:  29 3D C2 90 EA 22 E7 F3 3A C4 F3 4F 3A E3 F3 A1    )=..."..:..O:...
0025A0:  B5 6F 22 E5 F3 C9 2A 43 E9 11 0C 00 19 C9 2A 43    .o"...*C......*C
0025B0:  E9 11 0F 00 19 EB 21 11 00 19 C9 CD AE EA 7E 32    ......!.......~2
0025C0:  E3 F3 EB 7E 32 E1 F3 CD A6 EA 3A C5 F3 A6 32 E2    ...~2.....:...2.
0025D0:  F3 C9 CD AE EA 3A D5 F3 FE 02 C2 DE EA AF 4F 3A    .....:........O:
0025E0:  E3 F3 81 77 EB 3A E1 F3 77 C9 0C 0D C8 7C B7 1F    ...w.:..w....|..
0025F0:  67 7D 1F 6F C3 EB EA 0E 80 2A B9 F3 AF 86 23 0D    g}.o.....*....#.
002600:  C2 FD EA C9 0C 0D C8 29 C3 05 EB C5 3A 42 E9 4F    .......)....:B.O
002610:  21 01 00 CD 04 EB C1 79 B5 6F 78 B4 67 C9 2A AD    !......y.ox.g.*.
002620:  F3 3A 42 E9 4F CD EA EA 7D E6 01 C9 21 AD F3 4E    .:B.O...}...!..N
002630:  23 46 CD 0B EB 22 AD F3 2A C8 F3 23 EB 2A B3 F3    #F..."..*..#.*..
002640:  73 23 72 C9 CD 5E EB 11 09 00 19 7E 17 D0 21 0F    s#r..^.....~..!.
002650:  E6 C3 4A E9 CD 1E EB C8 21 0D E6 C3 4A E9 2A B9    ..J.....!...J.*.
002660:  F3 3A E9 F3 85 6F D0 24 C9 2A 43 E9 11 0E 00 19    .:...o.$.*C.....
002670:  7E C9 CD 69 EB 36 00 C9 CD 69 EB F6 80 77 C9 2A    ~..i.6...i...w.*
002680:  EA F3 EB 2A B3 F3 7B 96 23 7A 9E C9 CD 7F EB D8    ...*..{.#z......
002690:  13 72 2B 73 C9 7B 95 6F 7A 9C 67 C9 0E FF 2A EC    .r+s.{.oz.g...*.
0026A0:  F3 EB 2A CC F3 CD 95 EB D0 C5 CD F7 EA 2A BD F3    ..*..........*..
0026B0:  EB 2A EC F3 19 C1 0C CA C4 EB BE C8 CD 7F EB D0    .*..............
0026C0:  CD 2C EB C9 77 C9 CD 9C EB CD E0 EB 0E 01 CD B8    .,..w...........
0026D0:  E9 C3 DA EB CD E0 EB CD B2 E9 21 B1 F3 C3 E3 EB    ..........!.....
0026E0:  21 B9 F3 4E 23 46 C3 24 F4 2A B9 F3 EB 2A B1 F3    !..N#F.$.*...*..
0026F0:  0E 80 C3 4F E9 21 EA F3 7E 23 BE C0 3C C9 21 FF    ...O.!..~#..<.!.
002700:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
002710:  02 00 01 00 02 09 52 E5 02 00 41 02 00 00 00 02    ......R...A.....
002720:  02 00 46 02 00 00 00 02 02 00 42 02 00 00 00 02    ..F.......B.....
002730:  02 00 47 02 00 00 00 02 02 00 43 02 00 00 00 02    ..G.......C.....
002740:  02 00 48 02 00 00 00 02 02 00 44 02 00 00 00 02    ..H.......D.....
002750:  02 00 49 02 00 00 00 02 02 00 45 02 00 00 00 02    ..I.......E.....
002760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0027F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002800:  E5 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A    .PIP     COM...:
002810:  02 03 04 05 06 07 08 09 00 00 00 00 00 00 00 00    ................
002820:  00 50 52 4F 4F 46 20 20 20 53 55 42 00 00 00 02    .PROOF   SUB....
002830:  0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002840:  00 44 49 43 54 20 20 20 20 20 20 20 00 00 00 80    .DICT       ....
002850:  0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A    ................
002860:  00 44 49 43 54 20 20 20 20 20 20 20 01 00 00 5B    .DICT       ...[
002870:  1B 1C 1D 1E 1F 20 21 22 23 24 25 26 00 00 00 00    ..... !"#$%&....
002880:  00 48 49 53 54 4F 52 59 20 20 20 20 00 00 00 13    .HISTORY    ....
002890:  27 28 29 00 00 00 00 00 00 00 00 00 00 00 00 00    '().............
0028A0:  00 53 54 44 49 4F 20 20 20 48 20 20 00 00 00 04    .STDIO   H  ....
0028B0:  2A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    *...............
0028C0:  00 54 4F 4F 4C 53 20 20 20 48 20 20 00 00 00 0C    .TOOLS   H  ....
0028D0:  2B 2C 00 00 00 00 00 00 00 00 00 00 00 00 00 00    +,..............
0028E0:  00 42 55 46 20 20 20 20 20 43 20 20 00 00 00 16    .BUF     C  ....
0028F0:  2D 2E 2F 00 00 00 00 00 00 00 00 00 00 00 00 00    -./.............
002900:  00 43 41 4E 54 20 20 20 20 43 20 20 00 00 00 02    .CANT    C  ....
002910:  30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    0...............
002920:  00 43 41 54 53 55 42 20 20 43 20 20 00 00 00 04    .CATSUB  C  ....
002930:  31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    1...............
002940:  00 43 48 47 20 20 20 20 20 43 20 20 00 00 00 0E    .CHG     C  ....
002950:  32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00    23..............
002960:  00 43 50 59 20 20 20 20 20 43 20 20 00 00 00 1B    .CPY     C  ....
002970:  34 35 36 37 00 00 00 00 00 00 00 00 00 00 00 00    4567............
002980:  00 43 4E 54 20 20 20 20 20 43 20 20 00 00 00 0B    .CNT     C  ....
002990:  38 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00    89..............
0029A0:  00 43 50 54 20 20 20 20 20 43 20 20 00 00 00 06    .CPT     C  ....
0029B0:  3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    :...............
0029C0:  00 44 54 42 20 20 20 20 20 43 20 20 00 00 00 07    .DTB     C  ....
0029D0:  3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ;...............
0029E0:  00 44 49 47 49 54 20 20 20 43 20 20 00 00 00 04    .DIGIT   C  ....
0029F0:  3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    <...............
002A00:  41 42 4F 52 54 45 44 24 42 41 44 20 50 41 52 41    ABORTED$BAD PARA
002A10:  4D 45 54 45 52 24 49 4E 56 41 4C 49 44 20 55 53    METER$INVALID US
002A20:  45 52 20 4E 55 4D 42 45 52 24 52 45 43 4F 52 44    ER NUMBER$RECORD
002A30:  20 54 4F 4F 20 4C 4F 4E 47 24 49 4E 56 41 4C 49     TOO LONG$INVALI
002A40:  44 20 44 49 47 49 54 24 45 4E 44 20 4F 46 20 46    D DIGIT$END OF F
002A50:  49 4C 45 2C 20 43 54 4C 2D 5A 3F 24 43 48 45 43    ILE, CTL-Z?$CHEC
002A60:  4B 53 55 4D 20 45 52 52 4F 52 24 43 4F 52 52 45    KSUM ERROR$CORRE
002A70:  43 54 20 45 52 52 4F 52 2C 20 54 59 50 45 20 52    CT ERROR, TYPE R
002A80:  45 54 55 52 4E 20 4F 52 20 43 54 4C 2D 5A 24 49    ETURN OR CTL-Z$I
002A90:  4E 56 41 4C 49 44 20 46 4F 52 4D 41 54 24 48 45    NVALID FORMAT$HE
002AA0:  58 24 24 24 24 4E 4F 20 44 49 52 45 43 54 4F 52    X$$$$NO DIRECTOR
002AB0:  59 20 53 50 41 43 45 24 4E 4F 20 46 49 4C 45 24    Y SPACE$NO FILE$
002AC0:  43 4F 4D 24 53 54 41 52 54 20 4E 4F 54 20 46 4F    COM$START NOT FO
002AD0:  55 4E 44 24 51 55 49 54 20 4E 4F 54 20 46 4F 55    UND$QUIT NOT FOU
002AE0:  4E 44 24 43 41 4E 4E 4F 54 20 43 4C 4F 53 45 20    ND$CANNOT CLOSE 
002AF0:  44 45 53 54 49 4E 41 54 49 4F 4E 20 46 49 4C 45    DESTINATION FILE
002B00:  24 44 45 53 54 49 4E 41 54 49 4F 4E 20 49 53 20    $DESTINATION IS 
002B10:  52 2F 4F 2C 20 44 45 4C 45 54 45 20 28 59 2F 4E    R/O, DELETE (Y/N
002B20:  29 3F 24 2A 2A 4E 4F 54 20 44 45 4C 45 54 45 44    )?$**NOT DELETED
002B30:  2A 2A 24 24 24 24 24 24 24 4E 4F 54 20 46 4F 55    **$$$$$$$NOT FOU
002B40:  4E 44 24 43 4F 50 59 49 4E 47 20 2D 24 52 45 51    ND$COPYING -$REQ
002B50:  55 49 52 45 53 20 43 50 2F 4D 20 32 2E 30 20 4F    UIRES CP/M 2.0 O
002B60:  52 20 4E 45 57 45 52 20 46 4F 52 20 4F 50 45 52    R NEWER FOR OPER
002B70:  41 54 49 4F 4E 2E 24 55 4E 52 45 43 4F 47 4E 49    ATION.$UNRECOGNI
002B80:  5A 45 44 20 44 45 53 54 49 4E 41 54 49 4F 4E 24    ZED DESTINATION$
002B90:  43 41 4E 4E 4F 54 20 57 52 49 54 45 24 49 4E 56    CANNOT WRITE$INV
002BA0:  41 4C 49 44 20 50 49 50 20 46 4F 52 4D 41 54 24    ALID PIP FORMAT$
002BB0:  43 41 4E 4E 4F 54 20 52 45 41 44 24 49 4E 56 41    CANNOT READ$INVA
002BC0:  4C 49 44 20 53 45 50 41 52 41 54 4F 52 24 31 F2    LID SEPARATOR$1.
002BD0:  1D 01 80 00 C5 1E 80 01 CC 1E CD 18 0A 3A CC 1E    .............:..
002BE0:  D6 00 D6 01 9F 32 A5 1E CD 4C 08 EB 3E 20 CD 84    .....2...L..> ..
002BF0:  1D D2 FD 04 01 4D 04 CD 39 08 CD 00 00 CD 16 09    .....M..9.......
002C00:  00 45 44 54 20 20 20 20 20 43 20 20 00 00 00 4A    .EDT     C  ...J
002C10:  3D 3E 3F 40 41 42 43 44 45 46 00 00 00 00 00 00    =>?@ABCDEF......
002C20:  00 45 44 54 32 20 20 20 20 43 20 20 00 00 00 42    .EDT2    C  ...B
002C30:  47 48 49 4A 4B 4C 4D 4E 4F 00 00 00 00 00 00 00    GHIJKLMNO.......
002C40:  00 45 54 42 20 20 20 20 20 43 20 20 00 00 00 09    .ETB     C  ....
002C50:  50 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00    PQ..............
002C60:  00 45 52 52 4F 52 20 20 20 43 20 20 00 00 00 04    .ERROR   C  ....
002C70:  52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    R...............
002C80:  00 46 4E 44 20 20 20 20 20 43 20 20 00 00 00 08    .FND     C  ....
002C90:  53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    S...............
002CA0:  00 46 4E 54 20 20 20 20 20 43 20 20 00 00 00 17    .FNT     C  ....
002CB0:  54 55 56 00 00 00 00 00 00 00 00 00 00 00 00 00    TUV.............
002CC0:  00 46 4D 54 20 20 20 20 20 43 20 20 00 00 00 5D    .FMT     C  ...]
002CD0:  57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 00 00 00 00    WXYZ[\]^_`ab....
002CE0:  00 46 4D 54 32 20 20 20 20 43 20 20 00 00 00 13    .FMT2    C  ....
002CF0:  63 64 65 00 00 00 00 00 00 00 00 00 00 00 00 00    cde.............
002D00:  00 46 4D 54 33 20 20 20 20 43 20 20 00 00 00 6D    .FMT3    C  ...m
002D10:  66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 00 00    fghijklmnopqrs..
002D20:  00 47 45 54 57 52 44 20 20 43 20 20 00 00 00 03    .GETWRD  C  ....
002D30:  74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    t...............
002D40:  00 49 4E 44 45 58 20 20 20 43 20 20 00 00 00 04    .INDEX   C  ....
002D50:  75 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    u...............
002D60:  00 4C 53 54 20 20 20 20 20 43 20 20 00 00 00 1E    .LST     C  ....
002D70:  76 77 78 79 00 00 00 00 00 00 00 00 00 00 00 00    vwxy............
002D80:  00 4D 41 4B 53 45 54 20 20 43 20 20 00 00 00 04    .MAKSET  C  ....
002D90:  7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    z...............
002DA0:  00 4D 41 4B 53 55 42 20 20 43 20 20 00 00 00 04    .MAKSUB  C  ....
002DB0:  7B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    {...............
002DC0:  00 4D 52 47 20 20 20 20 20 43 20 20 00 00 00 12    .MRG     C  ....
002DD0:  7C 7D 7E 00 00 00 00 00 00 00 00 00 00 00 00 00    |}~.............
002DE0:  00 4F 55 54 20 20 20 20 20 43 20 20 00 00 00 04    .OUT     C  ....
002DF0:  7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
002E00:  32 C0 1E 11 00 00 0E 19 CD 05 00 32 FC 1D 31 F2    2..........2..1.
002E10:  1D CD 40 1A 3A C0 1E 32 C1 1E 21 6F 1F 36 00 2B    ..@.:..2..!o.6.+
002E20:  36 00 2B 36 00 21 A6 1E 36 01 23 36 00 21 F3 1D    6.+6.!..6.#6.!..
002E30:  36 00 23 36 FE 3A A5 1E 1F D2 47 05 0E 2A CD 1C    6.#6.:....G..*..
002E40:  08 CD 6F 09 CD 2E 08 21 4E 1F 36 FF 3A CC 1E FE    ..o....!N.6.:...
002E50:  00 C2 5E 05 2A FC 1D 4D CD 5E 08 CD 00 00 21 4B    ..^.*..M.^....!K
002E60:  1E 36 00 21 03 1E 36 00 21 A4 1E 36 00 2B 36 00    .6.!..6.!..6.+6.
002E70:  01 27 1E CD 20 12 3A A9 1E FE 03 C2 81 05 C3 24    .'.. .:........$
002E80:  06 3A A9 1E FE 04 C2 C3 05 3A 94 1F 3D 32 4B 1E    .:.......:..=2K.
002E90:  CD 0C 1D 01 06 1E CD 20 12 3A A9 1E FE 02 CA A4    ....... .:......
002EA0:  05 CD 5C 18 3A F5 1D 1F D2 B7 05 01 5C 00 CD EE    ..\.:.......\...
002EB0:  1C CD 78 1B C3 C0 05 01 27 1E CD EE 1C CD B2 1A    ..x.....'.......
002EC0:  C3 DB 07 3A A9 1E D6 02 C6 FF 9F 21 F5 1D B6 1F    ...:.......!....
002ED0:  D2 D6 05 CD 5C 18 CD A2 1C CD 0C 1D 01 06 1E CD    ....\...........
002EE0:  20 12 3A A9 1E FE 04 C2 05 06 CD 88 1C CD C6 1C     .:.............
002EF0:  01 27 1E C5 1E 21 01 06 1E CD 18 0A CD DF 1C CD    .'...!..........
002F00:  B2 1A C3 DB 07 3A A9 1E FE 02 C2 24 06 CD 11 12    .....:.....$....
002F10:  3A A8 1E FE 0D CA 1B 06 C3 24 06 CD 88 1C CD B2    :........$......
002F20:  1A C3 DB 07 21 4E 1F 36 FF 01 27 1E CD 20 12 3A    ....!N.6..'.. .:
002F30:  A9 1E D6 02 9F 21 F5 1D B6 1F D2 43 06 01 77 04    .....!.....C..w.
002F40:  CD AF 09 21 05 1E 36 00 3A A9 1E FE 02 C2 5E 06    ...!..6.:.....^.
002F50:  CD A2 1C CD 63 18 21 A8 1E 36 FF C3 7B 06 3A A8    ....c.!..6..{.:.
002F60:  1E D6 13 9F 2F F5 3E 05 21 A8 1E 96 9F 2F C1 48    ..../.>.!..../.H
002F70:  B1 1F D2 7B 06 01 90 04 CD AF 09 3A A8 1E 3C 32    ...{.......:..<2
002F80:  A3 1E FE 0F C2 8A 06 CD CF 15 01 06 1E CD 20 12    £............. .
002F90:  3A A9 1E D6 01 C6 FF 9F F5 3A A8 1E D6 3D C6 FF    :........:...=..
002FA0:  9F C1 48 B1 1F D2 AE 06 01 9D 04 CD AF 09 21 A7    ..H...........!.
002FB0:  1F 36 01 3A A7 1F 1F D2 BE 07 3A C0 1E 32 C1 1E    .6.:......:..2..
002FC0:  01 06 1E CD 20 12 21 04 1E 36 00 3A A9 1E D6 02    .... .!..6.:....
002FD0:  D6 01 9F F5 3A F5 1D 2F C1 48 A1 1F D2 ED 06 CD    ....:../.H......
002FE0:  88 1C CD BE 18 21 A8 1E 36 FF C3 13 07 3A A9 1E    .....!..6....:..
002FF0:  D6 03 C6 FF 9F F5 3E 0A 21 A8 1E 96 9F 2F F5 3E    ......>.!..../.>
003000:  00 50 41 47 45 20 20 20 20 43 20 20 00 00 00 04    .PAGE    C  ....
003010:  80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003020:  00 50 41 54 20 20 20 20 20 43 20 20 00 00 00 34    .PAT     C  ...4
003030:  81 82 83 84 85 86 87 00 00 00 00 00 00 00 00 00    ................
003040:  00 50 52 54 20 20 20 20 20 43 20 20 00 00 00 21    .PRT     C  ...!
003050:  88 89 8A 8B 8C 00 00 00 00 00 00 00 00 00 00 00    ................
003060:  00 50 52 49 4E 54 46 20 20 43 20 20 00 00 00 0C    .PRINTF  C  ....
003070:  8D 8E 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003080:  00 53 41 4D 45 20 20 20 20 43 20 20 00 00 00 04    .SAME    C  ....
003090:  8F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0030A0:  00 53 43 4F 50 59 20 20 20 43 20 20 00 00 00 04    .SCOPY   C  ....
0030B0:  90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0030C0:  00 53 45 54 54 41 42 20 20 43 20 20 00 00 00 07    .SETTAB  C  ....
0030D0:  91 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0030E0:  00 53 54 50 20 20 20 20 20 43 20 20 00 00 00 0F    .STP     C  ....
0030F0:  92 93 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003100:  00 53 52 54 20 20 20 20 20 43 20 20 00 00 00 44    .SRT     C  ...D
003110:  94 95 96 97 98 99 9A 9B 9C 00 00 00 00 00 00 00    ................
003120:  00 53 54 52 49 50 20 20 20 43 20 20 00 00 00 02    .STRIP   C  ....
003130:  9D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003140:  00 54 41 42 50 4F 53 20 20 43 20 20 00 00 00 04    .TABPOS  C  ....
003150:  9E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003160:  00 54 52 4E 20 20 20 20 20 43 20 20 00 00 00 0F    .TRN     C  ....
003170:  9F A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003180:  00 54 52 49 4D 20 20 20 20 43 20 20 00 00 00 02    .TRIM    C  ....
003190:  A1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0031A0:  00 58 49 4E 44 45 58 20 20 43 20 20 00 00 00 04    .XINDEX  C  ....
0031B0:  A2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0031C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0031D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0031E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0031F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003200:  05 96 9F C1 48 A1 C1 48 B1 1F D2 13 07 01 B0 04    ....H..H........
003210:  CD AF 09 3A 5E 1F 21 04 1E B6 77 3A A8 1E 3C 32    ...:^.!...w:..<2
003220:  A4 1E 3A A8 1E FE 13 C2 30 07 CD CF 15 C3 7D 07    ..:.....0.....}.
003230:  3A A8 1E FE 14 C2 40 07 0E 1A CD 45 0E C3 7D 07    :.....@....E..}.
003240:  3A A8 1E D6 05 9F 21 05 1E A6 1F D2 53 07 21 57    :.....!.....S.!W
003250:  1F 36 01 3A A3 1E FE 0A C2 7A 07 21 5D 1F 36 01    .6.:£....z.!].6.
003260:  3A 63 1F FE 00 C2 6D 07 21 63 1F 36 08 3A 5F 1F    :c....m.!c.6.:_.
003270:  FE 00 C2 7A 07 21 5F 1F 36 01 CD 6C 1A CD 12 19    ...z.!_.6..l....
003280:  01 06 1E CD 20 12 3A A9 1E D6 01 C6 FF 9F F5 3A    .... .:........:
003290:  A8 1E D6 2C C6 FF 9F F5 3A A8 1E D6 0D C6 FF 9F    ...,....:.......
0032A0:  C1 48 A1 C1 48 B1 1F D2 B0 07 01 BC 04 CD AF 09    .H..H...........
0032B0:  3A A8 1E D6 0D C6 FF 9F 32 A7 1F C3 B3 06 3A A3    :.......2.....:£
0032C0:  1E FE 0F C2 CE 07 0E 1A CD 45 0E CD CF 15 3A A3    .........E....:£
0032D0:  1E FE 00 C2 DB 07 0E 00 CD 31 19 3A A5 1E 32 CC    .........1.:..2.
0032E0:  1E C3 14 05 FB 76 21 F2 1D 71 21 F2 07 E5 2A 38    .....v!..q!...*8
0032F0:  02 E9 C9 21 FB 07 E5 2A 36 02 E9 3A 09 01 C9 3E    ...!...*6..:...>
003300:  FA CD A6 1D 3E FA CD A6 1D C9 11 00 00 0E 03 CD    ....>...........
003310:  05 00 C9 11 00 00 0E 01 CD 05 00 C9 21 AB 1E 71    ............!..q
003320:  3A AB 1E E6 7F 5F 16 00 0E 02 CD 05 00 C9 0E 0D    :...._..........
003330:  CD 1C 08 0E 0A CD 1C 08 C9 21 AD 1E 70 2B 71 CD    .........!..p+q.
003340:  2E 08 2A AC 1E EB 0E 09 CD 05 00 C9 11 00 00 0E    ..*.............
003350:  0C CD 05 00 C9 11 00 00 0E 0D CD 05 00 C9 21 AF    ..............!.
003360:  1E 71 2A AF 1E 26 00 EB 0E 0E CD 05 00 C9 21 B1    .q*..&........!.
003370:  1E 70 2B 71 2A B0 1E EB 0E 0F CD 05 00 32 AE 1E    .p+q*........2..
003380:  C9 21 B3 1E 70 2B 71 2A B2 1E EB 0E 10 CD 05 00    .!..p+q*........
003390:  32 AE 1E C9 21 B5 1E 70 2B 71 2A B4 1E EB 0E 11    2...!..p+q*.....
0033A0:  CD 05 00 32 AE 1E C9 11 00 00 0E 12 CD 05 00 32    ...2...........2
0033B0:  AE 1E C9 21 B7 1E 70 2B 71 2A B6 1E EB 0E 13 CD    ...!..p+q*......
0033C0:  05 00 C9 21 B9 1E 70 2B 71 2A B8 1E EB 0E 14 CD    ...!..p+q*......
0033D0:  05 00 C9 21 BB 1E 70 2B 71 2A BA 1E EB 0E 15 CD    ...!..p+q*......
0033E0:  05 00 C9 21 BD 1E 70 2B 71 2A BC 1E EB 0E 16 CD    ...!..p+q*......
0033F0:  05 00 32 AE 1E C9 21 BF 1E 70 2B 71 2A BE 1E EB    ..2...!..p+q*...
003400:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003410:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003420:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003430:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003440:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003450:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003460:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003470:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003480:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003490:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0034A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0034B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0034C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0034D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0034E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0034F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003500:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003510:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003520:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003530:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003540:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003550:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003560:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003570:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003580:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003590:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0035A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0035B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0035C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0035D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0035E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0035F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
003600:  0E 17 CD 05 00 C9 21 C3 1E 70 2B 71 2A C2 1E EB    ......!..p+q*...
003610:  0E 1E CD 05 00 C9 11 FF 00 0E 20 CD 05 00 C9 21    .......... ....!
003620:  C4 1E 71 2A C4 1E 26 00 EB 0E 20 CD 05 00 C9 2A    ..q*..&... ....*
003630:  C0 1E 4D CD 1F 09 C9 2A C1 1E 4D CD 1F 09 C9 21    ..M....*..M....!
003640:  C6 1E 70 2B 71 2A C5 1E EB 0E 21 CD 05 00 C9 21    ..p+q*....!....!
003650:  C8 1E 70 2B 71 2A C7 1E EB 0E 22 CD 05 00 C9 21    ..p+q*...."....!
003660:  CA 1E 70 2B 71 2A C9 1E EB 0E 24 CD 05 00 C9 21    ..p+q*....$....!
003670:  CB 1E 36 80 11 CB 1E 0E 0A CD 05 00 C9 11 00 00    ..6.............
003680:  0E 0B CD 05 00 C9 21 6B 1F 70 2B 71 2A 6A 1F EB    ......!k.p+q*j..
003690:  0E 1A CD 05 00 C9 3E 0C D3 01 3E 08 D3 01 DB 01    ......>...>.....
0036A0:  07 07 07 1F DA AA 09 C3 9E 09 DB 03 E6 7F C9 21    ...............!
0036B0:  71 1F 70 2B 71 CD 2F 09 2A 70 1F 44 4D CD 39 08    q.p+q./.*p.DM.9.
0036C0:  0E 3A CD 1C 08 0E 20 CD 1C 08 3A 4D 1F 32 72 1F    .:.... ...:M.2r.
0036D0:  3A 4E 1F 21 72 1F BE DA F8 09 21 CC 1E 3A 72 1F    :N.!r.....!..:r.
0036E0:  BE D2 F1 09 2A 72 1F 26 00 01 CD 1E 09 4E CD 1C    ....*r.&.....N..
0036F0:  08 21 72 1F 34 C2 D0 09 21 CC 1E 36 00 01 3A 02    .!r.4...!..6..:.
003700:  CD 94 08 3A AE 1E FE FF CA 11 0A 01 3A 02 CD B3    ...:........:...
003710:  08 CD 2E 08 C3 0E 05 C9 21 77 1F 73 2B 70 2B 71    ........!w.s+p+q
003720:  2B D1 C1 70 2B 71 D5 3A 77 1F 3D 32 77 1F FE FF    +..p+q.:w.=2w...
003730:  CA 4E 0A 2A 73 1F E5 2A 75 1F C1 0A 77 2A 73 1F    .N.*s..*u...w*s.
003740:  23 22 73 1F 2A 75 1F 23 22 75 1F C3 27 0A C9 21    #"s.*u.#"u..'..!
003750:  00 00 22 9D 1E 2A 03 1E 4D CD 5E 08 CD 37 09 21    .."..*..M.^..7.!
003760:  78 1F 36 00 3A FB 1D 21 78 1F BE DA BE 0A 2A 9D    x.6.:..!x.....*.
003770:  1E EB 2A 01 1E 19 44 4D CD 86 09 01 06 1E CD C3    ..*...DM........
003780:  08 32 79 1F FE 00 CA AD 0A 3A 79 1F FE 01 CA 97    .2y......:y.....
003790:  0A 01 94 02 CD AF 09 2A 9D 1E 22 9F 1E EB 2A 01    .......*.."...*.
0037A0:  1E 19 36 1A 3A FB 1D 32 78 1F C3 B7 0A 11 80 00    ..6.:..2x.......
0037B0:  2A 9D 1E 19 22 9D 1E 21 78 1F 34 C2 64 0A 21 00    *..."..!x.4.d.!.
0037C0:  00 22 9D 1E CD 2F 09 C9 0E 07 21 A1 1E CD 6A 1D    .".../....!...j.
0037D0:  7D 3D 32 7C 1F FE FF C2 DB 0A C9 21 00 00 22 A1    }=2|.......!..".
0037E0:  1E 2A 4B 1E 4D CD 5E 08 01 27 1E CD 5F 09 21 7A    .*K.M.^..'.._.!z
0037F0:  1F 36 00 3A 7C 1F 21 7A 1F BE DA 31 0B 2A A1 1E    .6.:|.!z...1.*..
003800:  C3 CE 04 C9 00 00 C9 00 00 1A 00 00 00 00 00 00    ................
003810:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003820:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003830:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003840:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003850:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003860:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003870:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003880:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003890:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
0038A0:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
0038B0:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
0038C0:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
0038D0:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
0038E0:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
0038F0:  28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29    (INP:/OUT:SPACE)
003900:  20 20 20 43 4F 50 59 52 49 47 48 54 20 28 43 29       COPYRIGHT (C)
003910:  20 31 39 37 39 2C 20 44 49 47 49 54 41 4C 20 52     1979, DIGITAL R
003920:  45 53 45 41 52 43 48 2C 20 20 50 49 50 20 56 45    ESEARCH,  PIP VE
003930:  52 53 20 31 2E 35 03 01 06 01 00 24 24 24 20 20    RS 1.5.....$$$  
003940:  20 20 20 53 55 42 00 00 00 20 3D 2E 3A 2C 3C 3E       SUB... =.:,<>
003950:  0D 5F 5B 5D 49 4E 50 49 52 44 50 54 52 55 52 31    ._[]INPIRDPTRUR1
003960:  55 52 32 52 44 52 4F 55 54 4C 50 54 55 4C 31 50    UR2RDROUTLPTUL1P
003970:  52 4E 4C 53 54 50 54 50 55 50 31 55 50 32 50 55    RNLSTPTPUP1UP2PU
003980:  4E 54 54 59 43 52 54 55 43 31 43 4F 4E 4E 55 4C    NTTYCRTUC1CONNUL
003990:  45 4F 46 00 44 49 53 4B 20 52 45 41 44 20 45 52    EOF.DISK READ ER
0039A0:  52 4F 52 24 44 49 53 4B 20 57 52 49 54 45 20 45    ROR$DISK WRITE E
0039B0:  52 52 4F 52 24 56 45 52 49 46 59 20 45 52 52 4F    RROR$VERIFY ERRO
0039C0:  52 24 4E 4F 54 20 41 20 43 48 41 52 41 43 54 45    R$NOT A CHARACTE
0039D0:  52 20 53 49 4E 4B 24 52 45 41 44 45 52 20 53 54    R SINK$READER ST
0039E0:  4F 50 50 49 4E 47 0D 0A 24 4E 4F 54 20 41 20 43    OPPING..$NOT A C
0039F0:  48 41 52 41 43 54 45 52 20 53 4F 55 52 43 45 24    HARACTER SOURCE$
003A00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
003A10:  03 00 01 00 02 09 52 E5 03 00 41 02 00 00 00 02    ......R...A.....
003A20:  03 00 46 02 00 00 00 02 03 00 42 02 00 00 00 02    ..F.......B.....
003A30:  03 00 47 02 00 00 00 02 03 00 43 02 00 00 00 02    ..G.......C.....
003A40:  03 00 48 02 00 00 00 02 03 00 44 02 00 00 00 02    ..H.......D.....
003A50:  03 00 49 02 00 00 00 02 03 00 45 02 00 00 00 02    ..I.......E.....
003A60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003A70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003A80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003A90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003AF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
003B00:  01 CA 1F 09 22 7D 1F 2A 7D 1F 44 4D CD 86 09 01    ...."}.*}.DM....
003B10:  27 1E CD D3 08 FE 00 CA 20 0B 01 A4 02 CD AF 09    '....... .......
003B20:  11 80 00 2A A1 1E 19 22 A1 1E 21 7A 1F 34 C2 F3    ...*..."..!z.4..
003B30:  0A 3A 65 1F 1F D2 C9 0B 21 00 00 22 A1 1E 01 80    .:e.....!.."....
003B40:  00 CD 86 09 21 7A 1F 36 00 3A 7C 1F 21 7A 1F BE    ....!z.6.:|.!z..
003B50:  DA C0 0B 01 27 1E CD 3F 09 D6 00 D6 01 9F 32 7F    ....'..?......2.
003B60:  1F 2A 48 1E 23 22 48 1E 21 7B 1F 36 00 3A 7B 1F    .*H.#"H.!{.6.:{.
003B70:  D6 80 9F 21 7F 1F A6 1F D2 A2 0B 2A 7B 1F 26 00    ...!.......*{.&.
003B80:  01 80 00 09 3A 7B 1F 11 A1 1E E5 CD 34 1D 01 CA    ....:{......4...
003B90:  1F 09 C1 0A 96 D6 01 9F 32 7F 1F 21 7B 1F 34 C3    ........2..!{.4.
003BA0:  6D 0B 11 80 00 2A A1 1E 19 22 A1 1E 3A 7F 1F 1F    m....*..."..:...
003BB0:  DA B9 0B 01 B5 02 CD AF 09 21 7A 1F 34 C2 49 0B    .........!z.4.I.
003BC0:  01 27 1E CD D3 08 32 7F 1F 21 00 00 22 A1 1E C9    .'....2..!.."...
003BD0:  21 80 1F 71 3A 80 1F FE 20 DA F4 0B 21 F3 1D 34    !..q:... ...!..4
003BE0:  3E 00 21 53 1F BE D2 F4 0B 3A 53 1F 21 F3 1D BE    >.!S.....:S.!...
003BF0:  D2 F4 0B C9 3A 03 00 32 81 1F 2A A3 1E 4D 06 00    ....:..2..*£.M..
003C00:  21 DD 0C 09 09 5E 23 56 EB E9 01 FF 1D 11 A1 1E    !....^#V........
003C10:  CD 8E 1D DA 19 0C CD C8 0A 2A A1 1E 01 CA 1F 09    .........*......
003C20:  3A 80 1F 77 2A A1 1E 23 22 A1 1E C3 05 0D C3 3D    :..w*..#"......=
003C30:  0C C3 3D 0C C3 3D 0C C3 3D 0C C3 3D 0C 01 C2 02    ..=..=..=..=....
003C40:  CD AF 09 C3 05 0D 2A 80 1F 4D CD E6 07 C3 05 0D    ......*..M......
003C50:  21 03 00 36 80 C3 71 0C C3 05 0D 21 03 00 36 C0    !..6..q....!..6.
003C60:  C3 71 0C C3 05 0D 21 03 00 36 80 C3 71 0C C3 05    .q....!..6..q...
003C70:  0D 2A 80 1F 26 00 EB 0E 05 CD 05 00 C3 05 0D 21    .*..&..........!
003C80:  03 00 36 10 C3 A0 0C C3 05 0D 21 03 00 36 20 C3    ..6.......!..6 .
003C90:  A0 0C C3 05 0D 21 03 00 36 30 C3 A0 0C C3 05 0D    .....!..60......
003CA0:  2A 80 1F 26 00 EB 0E 04 CD 05 00 C3 05 0D 21 03    *..&..........!.
003CB0:  00 36 00 C3 CF 0C C3 05 0D 21 03 00 36 01 C3 CF    .6.......!..6...
003CC0:  0C C3 05 0D 21 03 00 36 03 C3 CF 0C C3 05 0D 2A    ....!..6.......*
003CD0:  80 1F 26 00 EB 0E 02 CD 05 00 C3 05 0D 0A 0C 2E    ..&.............
003CE0:  0C 31 0C 34 0C 37 0C 3A 0C 3D 0C 46 0C 50 0C 5B    .1.4.7.:.=.F.P.[
003CF0:  0C 66 0C 71 0C 7F 0C 8A 0C 95 0C A0 0C AE 0C B9    .f.q............
003D00:  C3 B7 15 3A A8 1E D6 53 D6 01 9F F5 3A A8 1E D6    ...:...S....:...
003D10:  51 D6 01 9F C1 48 B1 1F D2 49 15 3A 4E 1F 3C 32    Q....H...I.:N.<2
003D20:  9F 1F CD F2 11 32 A8 1E D6 1A D6 01 9F F5 3A A8    .....2........:.
003D30:  1E D6 0D D6 01 9F C1 48 B1 1F DA 40 15 C3 22 15    .......H...@..".
003D40:  CD F2 11 32 A8 1E C3 8D 15 CD F2 11 32 A8 1E D6    ...2........2...
003D50:  30 32 9F 1F 4F 3E 09 B9 D2 63 15 21 9F 1F 36 01    02..O>...c.!..6.
003D60:  C3 8D 15 CD F2 11 32 A8 1E D6 30 32 99 1F 4F 3E    ......2...02..O>
003D70:  09 B9 DA 8D 15 2A 9F 1F 26 00 CD 4F 1D E5 2A 99    .....*..&..O..*.
003D80:  1F 26 00 C1 09 EB 21 9F 1F 73 C3 63 15 2A 9E 1F    .&....!..s.c.*..
003D90:  26 00 01 50 1F 09 3A 9F 1F 77 3A 9E 1F FE 06 C2    &..P..:..w:.....
003DA0:  B7 15 3E 1F 21 9F 1F BE D2 B1 15 01 16 03 CD AF    ..>.!...........
003DB0:  09 3A 9F 1F 32 C1 1E C3 C2 14 CD F2 11 32 A8 1E    .:..2........2..
003DC0:  C9 3A A8 1E FE 5F C2 CE 15 21 A8 1E 36 3D C9 21    .:..._...!..6=.!
003DD0:  A3 1F 36 00 3E 27 21 A3 1F BE DA E9 15 0E 00 CD    £.6.>'!£........
003DE0:  45 0E 21 A3 1F 34 C2 D4 15 C9 21 A9 1F 70 2B 71    E.!£.4....!..p+q
003DF0:  2A A8 1F E5 1E 03 01 30 1E CD 18 0A C9 21 AD 1F    *......0.....!..
003E00:  72 2B 73 2B 70 2B 71 2A AC 1F 7E FE 24 CA 37 16    r+s+p+q*..~.$.7.
003E10:  2A AC 1F 3E 7F A6 2A AA 1F F5 3E 7F A6 C1 48 B9    *..>..*...>...H.
003E20:  CA 26 16 3E 00 C9 2A AA 1F 23 22 AA 1F 2A AC 1F    .&.>..*..#"..*..
003E30:  23 22 AC 1F C3 07 16 3E 01 C9 CD 0D 11 32 A8 1E    #".....>.....2..
003E40:  3A 04 1E 1F D2 52 16 01 9D 1E 11 9F 1E CD 8E 1D    :....R..........
003E50:  9F C9 3A A8 1E D6 1A D6 01 9F C9 21 AF 1F 36 01    ..:........!..6.
003E60:  21 9C 1E 36 00 CD 3D 17 32 B5 1F FE 3A CA 99 16    !..6..=.2...:...
003E70:  21 9C 1E 36 00 3A B5 1F FE 1A C2 93 16 01 48 03    !..6.:........H.
003E80:  CD 39 08 CD 13 08 FE 1A C2 8E 16 3E 01 C9 21 9C    .9.........>..!.
003E90:  1E 36 00 CD 2D 17 C3 65 16 21 B5 1F 36 00 CD BB    .6..-..e.!..6...
003EA0:  17 32 B4 1F FE 00 C2 C7 16 CD 3D 17 32 B4 1F FE    .2........=.2...
003EB0:  1A CA BA 16 CD 2D 17 C3 A9 16 3A AF 1F 1F D2 C4    .....-....:.....
003EC0:  16 3E 01 C9 3E 02 C9 CD C4 17 22 B7 1F CD BB 17    .>..>.....".....
003ED0:  32 B6 1F 3A B4 1F D6 00 C6 FF 9F 21 AF 1F A6 1F    2..:.......!....
003EE0:  D2 F0 16 21 B4 1F 35 CD BB 17 32 B3 1F C3 D3 16    ...!..5...2.....
003EF0:  CD AC 17 21 B5 1F 86 FE 00 CA 02 17 01 5C 03 CD    ...!.........\..
003F00:  0C C4 0C CF 0C 3A 81 1F 32 03 00 C9 21 82 1F 71    .....:..2...!..q
003F10:  3A 82 1F FE 09 CA 22 0D 2A 82 1F 4D CD D0 0B C3    :.....".*..M....
003F20:  6E 0D 3A 63 1F FE 00 C2 34 0D 2A 82 1F 4D CD D0    n.:c....4.*..M..
003F30:  0B C3 6E 0D 3A F3 1D 32 83 1F 21 63 1F 3A 83 1F    ..n.:..2..!c.:..
003F40:  BE DA 51 0D 21 63 1F 3A 83 1F 96 32 83 1F C3 3A    ..Q.!c.:...2...:
003F50:  0D 21 83 1F 3A 63 1F 96 77 3E 00 21 83 1F BE D2    .!..:c..w>.!....
003F60:  6E 0D 21 83 1F 35 0E 20 CD D0 0B C3 59 0D 3A 82    n.!..5. ....Y.:.
003F70:  1F FE 0D C2 7B 0D 21 F3 1D 36 00 C9 21 84 1F 71    ....{.!..6..!..q
003F80:  3A 84 1F D6 00 D6 01 9F 21 6C 1F A6 77 1F D2 99    :.......!l..w...
003F90:  0D 0E 20 CD 0C 0D C3 A2 0D 3A 84 1F C6 30 4F CD    .. ......:...0O.
003FA0:  0C 0D C9 21 85 1F 71 3A 85 1F E6 F8 1F 1F 1F 1F    ...!..q:........
003FB0:  4F CD 7C 0D 3A 85 1F E6 0F 4F CD 7C 0D C9 21 86    O.|.:....O.|..!.
003FC0:  1F 36 01 3A 5D 1F D6 01 D6 01 9F 32 6C 1F 3A 6F    .6.:]......2l.:o
003FD0:  1F 86 27 32 6F 1F 3A 6E 1F CE 00 27 32 6E 1F 3A    ..'2o.:n...'2n.:
003FE0:  6D 1F CE 00 27 32 6D 1F 2A 6D 1F 4D CD A3 0D 2A    m...'2m.*m.M.£.*
003FF0:  6E 1F 4D CD A3 0D 2A 6F 1F 4D CD A3 0D 3A 5D 1F    n.M.£.*o.M.£.:].
004000:  FE 01 C2 12 0E 0E 3A CD 0C 0D 0E 20 CD 0C 0D C3    ......:.... ....
004010:  17 0E 0E 09 CD 0C 0D C9 2A A1 1E 7D E6 7F 32 89    ........*..}..2.
004020:  1F 11 80 FF CD 44 1D 22 87 1F CD C8 0A 2A 87 1F    .....D.".....*..
004030:  01 CA 1F 09 E5 2A 89 1F EB CD 18 0A 2A 89 1F 26    .....*......*..&
004040:  00 22 A1 1E C9 21 8A 1F 71 3A 55 1F 1F D2 59 0E    ."...!..q:U...Y.
004050:  3A 8A 1F FE 0C C2 59 0E C9 3A A6 1E 1F D2 A9 0E    :.....Y..:......
004060:  3A 8A 1F FE 0C CA A9 0E 3A 5F 1F 32 8B 1F FE 00    :.......:_.2....
004070:  CA 98 0E 3A 8B 1F FE 01 C2 80 0E 21 8B 1F 36 3C    ...:.......!..6<
004080:  3A F4 1D 3C 32 F4 1D 21 8B 1F BE DA 98 0E 21 F4    :..<2..!......!.
004090:  1D 36 00 0E 0C CD 0C 0D 3E 00 21 5D 1F BE D2 A4    .6......>.!]....
0040A0:  0E CD BE 0D 21 A6 1E 36 00 3A 51 1F 1F D2 CC 0E    ....!..6.:Q.....
0040B0:  3A 8A 1F D6 13 D6 01 9F F5 3A A3 1E D6 00 D6 01    :........:£.....
0040C0:  9F C1 48 A1 1F D2 CC 0E CD 18 0E C9 3A 8A 1F FE    ..H.........:...
0040D0:  0C C2 D9 0E 21 F4 1D 36 00 2A 8A 1F 4D CD 0C 0D    ....!..6.*..M...
0040E0:  3A 8A 1F FE 0A C2 ED 0E 21 A6 1E 36 01 C9 21 8C    :.......!..6..!.
0040F0:  1F 71 3A 8C 1F D6 61 9F 2F F5 3E 7A 21 8C 1F 96    .q:...a./.>z!...
004100:  12 17 CD 2D 17 3A AF 1F 1F D2 0F 17 3E 00 C9 3E    ...-.:......>..>
004110:  02 C9 21 B1 1F 70 2B 71 3A AF 1F 1F D2 2C 17 21    ..!..p+q:....,.!
004120:  AF 1F 36 00 2A B0 1F 44 4D CD 39 08 C9 3A AE 1F    ..6.*..DM.9..:..
004130:  1F D2 3C 17 21 AE 1F 36 00 CD 18 0E C9 3A AF 1F    ..<.!..6.....:..
004140:  1F D2 7A 17 CD 0D 11 32 B2 1F FE 13 C2 57 17 21    ..z....2.....W.!
004150:  AE 1F 36 01 C3 44 17 2A 9C 1E 26 00 01 4C 1E 09    ..6..D.*..&..L..
004160:  3A B2 1F 77 3A 9C 1E 3C 32 9C 1E FE 4F DA 76 17    :..w:..<2...O.v.
004170:  01 2A 03 CD 12 17 3A B2 1F C9 3E 1A C9 CD 3D 17    .*....:...>...=.
004180:  32 B9 1F D6 30 4F 3E 09 B9 DA 92 17 3A B9 1F D6    2...0O>.....:...
004190:  30 C9 3A B9 1F D6 41 4F 3E 05 B9 D2 A4 17 01 3A    0.:...AO>......:
0041A0:  03 CD 12 17 3A B9 1F D6 41 C6 0A C9 CD 7D 17 87    ....:...A....}..
0041B0:  87 87 87 F5 CD 7D 17 C1 48 B1 C9 CD AC 17 21 B5    .....}..H.....!.
0041C0:  1F 86 77 C9 CD BB 17 4F 06 00 60 69 0E 08 CD 64    ..w....O..`i...d
0041D0:  1D E5 CD BB 17 E1 CD 56 1D C9 CD 5B 16 32 BA 1F    .......V...[.2..
0041E0:  4F 3E 01 B9 DA 32 18 3A BA 1F D6 01 D6 01 9F 21    O>...2.:.......!
0041F0:  58 1F A6 1F DA 1C 18 21 BB 1F 36 01 3A 9C 1E 21    X......!..6.:..!
004200:  BB 1F BE DA 1C 18 3A BB 1F 3D 4F 06 00 21 4C 1E    ......:..=O..!L.
004210:  09 4E CD 45 0E 21 BB 1F 34 C2 FC 17 0E 0D CD 45    .N.E.!..4......E
004220:  0E 0E 0A CD 45 0E 3A BA 1F FE 01 C2 2F 18 C9 C3    ....E.:...../...
004230:  DA 17 CD 2E 08 2A 9C 1E 26 00 01 4C 1E 09 36 24    .....*..&..L..6$
004240:  01 4C 1E CD 39 08 01 6B 03 CD 39 08 CD 2E 08 CD    .L..9..k..9.....
004250:  13 08 FE 1A C2 58 18 C9 C3 DA 17 C9 01 8F 03 CD    .....X..........
004260:  AF 09 C9 2A 4B 1E 4D CD 5E 08 11 9E 03 01 30 1E    ...*K.M.^.....0.
004270:  CD FD 15 32 05 1E 01 30 1E C5 1E 03 01 A4 1F CD    ...2...0........
004280:  18 0A 3A 30 1E E6 7F 32 30 1E 3A 31 1E E6 7F 32    ..:0...20.:1...2
004290:  31 1E 01 A2 03 CD EA 15 01 27 1E CD B3 08 01 27    1........'.....'
0042A0:  1E CD E3 08 3A AE 1E FE FF C2 B2 18 01 A5 03 CD    ....:...........
0042B0:  AF 09 21 47 1E 36 00 21 00 00 22 A1 1E C9 21 FF    ..!G.6.!.."...!.
0042C0:  FF 22 9F 1E CD 37 09 2A 03 1E 4D CD 5E 08 01 06    ."...7.*..M.^...
0042D0:  1E CD 6E 08 CD 2F 09 3A 61 1F 2F F5 3A 10 1E 07    ..n../.:a./.:...
0042E0:  C1 48 A1 1F D2 EC 18 21 AE 1E 36 FF 3A AE 1E FE    .H.....!..6.:...
0042F0:  FF C2 FA 18 01 B8 03 CD AF 09 21 26 1E 36 00 11    ..........!&.6..
004300:  9F 2F C1 48 A1 1F D2 11 0F 3A 8C 1F E6 5F 32 8C    ./.H.....:..._2.
004310:  1F 3A 8C 1F C9 21 8D 1F 71 3A 8D 1F D6 41 9F 2F    .:...!..q:...A./
004320:  F5 3E 5A 21 8D 1F 96 9F 2F C1 48 A1 1F D2 38 0F    .>Z!..../.H...8.
004330:  3A 8D 1F F6 20 32 8D 1F 3A 8D 1F C9 3A A4 1E 3D    :... 2..:...:..=
004340:  4F 3E 05 B9 DA 6D 0F 3A 57 1F 21 51 1F B6 F5 CD    O>...m.:W.!Q....
004350:  7D 09 C1 48 A1 1F D2 6D 0F CD 13 08 FE 1A C2 64    }..H...m.......d
004360:  0F 3E 1A C9 01 D7 02 CD 39 08 3E 13 C9 21 90 1F    .>......9.>..!..
004370:  36 01 3A 03 00 32 8E 1F 2A A4 1E 4D 06 00 21 45    6.:..2..*..M..!E
004380:  10 09 09 5E 23 56 EB E9 01 FD 1D 11 9D 1E CD 8E    ...^#V..........
004390:  1D DA 97 0F CD 4F 0A 2A 9D 1E EB 2A 01 1E 19 7E    .....O.*...*...~
0043A0:  32 8F 1F 2A 9D 1E 23 22 9D 1E C3 6D 10 CD F3 07    2..*..#"...m....
0043B0:  32 8F 1F C3 6D 10 CD 96 09 32 8F 1F C3 6D 10 21    2...m....2...m.!
0043C0:  03 00 36 04 C3 E0 0F C3 6D 10 21 03 00 36 08 C3    ..6.....m.!..6..
0043D0:  E0 0F C3 6D 10 21 03 00 36 0C C3 E0 0F C3 6D 10    ...m.!..6.....m.
0043E0:  11 00 00 0E 03 CD 05 00 E6 7F 32 8F 1F C3 6D 10    ..........2...m.
0043F0:  C3 08 10 C3 08 10 C3 08 10 C3 08 10 C3 08 10 C3    ................
004400:  08 10 C3 08 10 C3 08 10 01 E9 02 CD AF 09 C3 6D    ...............m
004410:  10 21 03 00 36 00 C3 32 10 C3 6D 10 21 03 00 36    .!..6..2..m.!..6
004420:  01 C3 32 10 C3 6D 10 21 03 00 36 03 C3 32 10 C3    ..2..m.!..6..2..
004430:  6D 10 21 90 1F 36 00 11 00 00 0E 01 CD 05 00 32    m.!..6.........2
004440:  8F 1F C3 6D 10 88 0F AD 0F B6 0F BF 0F CA 0F D5    ...m............
004450:  0F E0 0F F0 0F F3 0F F6 0F F9 0F FC 0F FF 0F 02    ................
004460:  10 05 10 08 10 11 10 1C 10 27 10 32 10 3A 8E 1F    .........'.2.:..
004470:  32 03 00 3A 54 1F 1F D2 92 10 3A A3 1E 32 8E 1F    2..:T.....:£.2..
004480:  21 A3 1E 36 13 2A 8F 1F 4D CD 45 0E 3A 8E 1F 32    !£.6.*..M.E.:..2
004490:  A3 1E 3A 90 1F 1F D2 DC 10 3A 04 1E 1F D2 B2 10    £.:......:......
0044A0:  3A A7 1E 3C 32 A7 1E D6 00 D6 01 9F 32 90 1F C3    :..<2.......2...
0044B0:  BD 10 3A 8F 1F D6 0A D6 01 9F 32 90 1F 3A 90 1F    ..:.......2..:..
0044C0:  1F D2 DC 10 CD 7D 09 1F D2 DC 10 CD 13 08 FE 1A    .....}..........
0044D0:  C2 D6 10 3E 1A C9 01 00 03 CD AF 09 3A 69 1F 1F    ...>........:i..
0044E0:  D2 EB 10 3A 8F 1F E6 7F 32 8F 1F 3A 64 1F 1F D2    ...:....2..:d...
0044F0:  FA 10 2A 8F 1F 4D CD EE 0E C9 3A 5B 1F 1F D2 09    ..*..M....:[....
004500:  C0 03 01 0F 1E CD FD 15 32 04 1E 2A FD 1D 22 9D    ........2..*..".
004510:  1E C9 3E 00 21 62 1F BE D2 21 19 01 C4 03 CD AF    ..>.!b...!......
004520:  09 3E 00 21 60 1F BE D2 30 19 01 D4 03 CD AF 09    .>.!`...0.......
004530:  C9 21 BC 1F 71 3A BC 1F 1F D2 45 19 3A 13 1E 32    .!..q:....E.:..2
004540:  34 1E C3 4A 19 21 34 1E 36 00 2A A1 1E 7D E6 7F    4..J.!4.6.*..}..
004550:  FE 00 CA 61 19 21 34 1E 34 0E 1A CD 45 0E C3 4A    ...a.!4.4...E..J
004560:  19 CD 12 19 CD C8 0A 2A 4B 1E 4D CD 5E 08 01 27    .......*K.M.^..'
004570:  1E CD 81 08 3A AE 1E FE FF C2 82 19 01 E3 03 CD    ....:...........
004580:  AF 09 01 A4 1F CD EA 15 21 33 1E 36 00 01 27 1E    ........!3.6..'.
004590:  CD 6E 08 3A AE 1E FE FF CA E9 19 3A 30 1E 07 1F    .n.:.......:0...
0045A0:  D2 E3 19 3A 66 1F 1F DA D5 19 01 01 04 CD 39 08    ...:f.........9.
0045B0:  CD 13 08 4F CD EE 0E FE 59 CA D2 19 01 23 04 CD    ...O....Y....#..
0045C0:  39 08 CD 2E 08 01 33 04 CD EA 15 01 27 1E CD B3    9.....3.....'...
0045D0:  08 C9 CD 2E 08 3A 30 1E E6 7F 32 30 1E 01 27 1E    .....:0...20..'.
0045E0:  CD 06 09 01 27 1E CD B3 08 01 27 1E C5 1E 10 01    ....'.....'.....
0045F0:  37 1E CD 18 0A 01 36 04 CD EA 15 01 27 1E CD F6    7.....6.....'...
004600:  08 C9 0E 07 21 FF 1D CD 6A 1D 3E FF CD 41 1D 2B    ....!...j.>..A.+
004610:  EB 21 FB 1D 73 C9 21 CA 1F 22 01 1E 01 00 40 11    .!..s.!.."....@.
004620:  FF 1D CD 93 1D DA 31 1A 21 80 7F 22 FF 1D C3 3C    ......1.!.."...<
004630:  1A 2A FD 1D EB 2A FF 1D 19 22 FF 1D CD 02 1A C9    .*...*..."......
004640:  01 CA 1F 11 06 00 CD 93 1D 0E 01 E5 CD 6E 1D 01    .............n..
004650:  CA 1F 09 22 01 1E 11 00 FF E1 CD 44 1D 0E 01 CD    ...".......D....
004660:  6E 1D 22 FD 1D 22 FF 1D CD 02 1A C9 3A A4 1E D6    n.".."......:...
004670:  00 C6 FF 9F 21 51 1F A6 32 BD 1F 1F D2 82 1A CD    ....!Q..2.......
004680:  16 1A 3A 58 1F 21 57 1F B6 1F D2 93 1A CD DA 17    ..:X.!W.........
004690:  C3 A4 1A CD 3A 16 1F DA A4 1A 2A A8 1E 4D CD 45    ....:.....*..M.E
0046A0:  0E C3 93 1A 3A BD 1F 1F D2 B1 1A CD 18 0E CD 40    ....:..........@
0046B0:  1A C9 CD 40 1A 3A 4F 1F 32 4D 1F CD 63 18 CD BE    ...@.:O.2M..c...
0046C0:  18 21 BE 1F 36 01 23 36 00 3E 19 21 BF 1F BE DA    .!..6.#6.>.!....
0046D0:  29 1B 2A BF 1F 26 00 01 50 1F 09 7E FE 00 CA 22    ).*..&..P..~..."
0046E0:  1B 3A BF 1F D6 06 D6 01 9F F5 3A BF 1F D6 0E D6    .:........:.....
0046F0:  01 9F C1 48 B1 F5 3A BF 1F D6 11 D6 01 9F C1 48    ...H..:........H
004700:  11 2A 8F 1F 4D CD 15 0F C9 3A 8F 1F C9 3E 00 21    .*..M....:...>.!
004710:  FA 1D BE D2 28 11 3A FA 1D 3D 32 FA 1D FE 01 C2    ....(.:..=2.....
004720:  25 11 3E 0A C9 3E 1A C9 3E 00 21 F8 1D BE D2 46    %.>..>..>.!....F
004730:  11 21 F8 1D 35 2B 4E 06 00 21 CD 1E 09 7E 32 91    .!..5+N..!...~2.
004740:  1F 21 F7 1D 34 C9 CD 3C 0F 32 91 1F FE 1A C2 54    .!..4..<.2.....T
004750:  11 3E 1A C9 3E 00 21 62 1F BE D2 7D 11 2A 62 1F    .>..>.!b...}.*b.
004760:  4D CD AD 11 1F D2 7A 11 3A 62 1F 32 F7 1D 21 62    M.....z.:b.2..!b
004770:  1F 36 00 3A F9 1D 3C 32 F8 1D C3 A9 11 3E 00 21    .6.:..<2.....>.!
004780:  60 1F BE D2 A5 11 2A 60 1F 4D CD AD 11 1F D2 9E    `.....*`.M......
004790:  11 21 60 1F 36 00 21 FA 1D 36 02 3E 0D C9 3A 91    .!`.6.!..6.>..:.
0047A0:  1F C9 C3 A9 11 3A 91 1F C9 C3 28 11 C9 21 92 1F    .....:....(..!..
0047B0:  71 3A F9 1D 21 92 1F 86 77 4F 06 00 21 CD 1E 09    q:..!...wO..!...
0047C0:  7E 32 93 1F FE 1A C2 D9 11 2A 92 1F 26 00 01 CD    ~2.......*..&...
0047D0:  1E 09 3A 91 1F 77 3E 01 C9 21 91 1F 3A 93 1F BE    ..:..w>..!..:...
0047E0:  C2 EA 11 21 F9 1D 34 C3 EF 11 21 F9 1D 36 00 3E    ...!..4...!..6.>
0047F0:  00 C9 3A 4E 1F 3C 32 4E 1F 21 CC 1E BE DA 03 12    ..:N.<2N.!......
004800:  3E 0D C9 2A 4E 1F 26 00 01 CD 1E 09 4E CD EE 0E    >..*N.&.....N...
004810:  C9 CD F2 11 32 A8 1E FE 20 C2 1F 12 C3 11 12 C9    ....2... .......
004820:  21 96 1F 70 2B 71 21 F5 1D 36 00 21 A9 1E 36 00    !..p+q!..6.!..6.
004830:  2B 36 20 21 AA 1E 36 00 3A AA 1E FE 20 D2 53 12    +6 !..6.:... .S.
004840:  3A AA 1E FE 0B C2 4D 12 21 A8 1E 36 00 CD 67 14    :.....M.!..6..g.
004850:  C3 38 12 CD 11 12 3A 4E 1F 32 4D 1F 2A A8 1E 4D    .8....:N.2M.*..M
004860:  CD 38 14 1F D2 70 12 CD C1 15 21 A9 1E 36 01 C9    .8...p....!..6..
004870:  21 94 1F 36 00 21 97 1F 36 00 3E 19 21 97 1F BE    !..6.!..6.>.!...
004880:  DA 95 12 2A 97 1F 26 00 01 50 1F 09 36 00 21 97    ...*..&..P..6.!.
004890:  1F 34 C2 7A 12 21 F6 1D 36 00 21 F8 1D 36 00 23    .4.z.!..6.!..6.#
0048A0:  36 00 23 36 00 21 AA 1E 36 00 2A A8 1E 4D CD 38    6.#6.!..6.*..M.8
0048B0:  14 1F DA DA 12 3A AA 1E FE 08 DA BE 12 C9 3A A8    .....:........:.
0048C0:  1E FE 2A C2 CE 12 0E 08 CD 87 14 C3 D1 12 CD 67    ..*............g
0048D0:  14 CD F2 11 32 A8 1E C3 AA 12 3A A8 1E FE 3A C2    ....2.....:...:.
0048E0:  BF 13 3A 94 1F FE 00 CA EB 12 C9 3A AA 1E FE 01    ..:........:....
0048F0:  C2 2C 13 0E 01 CD A1 14 D6 41 3C 32 94 1F 4F 3E    .,.......A<2..O>
004900:  B1 F5 3A BF 1F D6 15 D6 01 9F C1 48 B1 F5 3A BF    ..:........H..:.
004910:  1F D6 16 D6 01 9F C1 48 B1 1F DA 22 1B 21 BE 1F    .......H...".!..
004920:  36 00 21 BF 1F 34 C2 C9 1A 3A BE 1F 1F D2 5F 1B    6.!..4...:...._.
004930:  CD 16 1A CD 6A 1B 1F DA 59 1B CD 4F 0A CD 6A 1B    ....j...Y..O..j.
004940:  1F D2 4D 1B 2A 9F 1E 22 A1 1E C3 53 1B 2A FF 1D    ..M.*.."...S.*..
004950:  22 A1 1E CD C8 0A C3 33 1B CD 40 1A C3 62 1B CD    "......3..@..b..
004960:  6C 1A 2A BE 1F 4D CD 31 19 C9 01 FF FF 11 9F 1E    l.*..M.1........
004970:  CD 93 1D B5 C6 FF 9F C9 21 00 00 22 C0 1F 22 C4    ........!.."..".
004980:  1F CD 37 09 2A 03 1E 4D CD 5E 08 01 80 00 CD 86    ..7.*..M.^......
004990:  09 01 5C 00 CD 94 08 21 00 00 22 C2 1F 3A AE 1E    ..\....!.."..:..
0049A0:  D6 FF C6 FF 9F 01 C0 1F 11 C2 1F F5 CD 8E 1D 9F    ................
0049B0:  C1 48 A1 1F D2 C4 1B 2A C2 1F 23 22 C2 1F CD A7    .H.....*..#"....
0049C0:  08 C3 9D 1B CD 2F 09 3A AE 1E FE FF C2 E5 1B 3E    ...../.:.......>
0049D0:  00 11 C4 1F CD 9B 1D B5 C2 E1 1B 01 39 04 CD AF    ............9...
0049E0:  09 CD 2E 08 C9 2A C2 1F 23 22 C0 1F 3A AE 1E E6    .....*..#"..:...
0049F0:  03 87 87 87 87 87 5F 16 00 21 80 00 19 E5 1E 10    ......_..!......
004A00:  01 27 1E CD 18 0A 21 27 1E 36 00 21 33 1E 36 00    .'....!'.6.!3.6.
004A10:  01 27 1E C5 1E 10 01 06 1E CD 18 0A 3A 31 1E 07    .'..........:1..
004A20:  2F 21 61 1F B6 1F D2 45 1C 2A C4 1F 23 22 C4 1F    /!a....E.*..#"..
004A30:  3E 01 CD 7A 1D B5 C2 3F 1C 01 43 04 CD 39 08 CD    >..z...?..C..9..
004A40:  49 1C CD B2 1A C3 81 1B C9 CD 2E 08 21 C6 1F 36    I...........!..6
004A50:  01 3E 0B 21 C6 1F BE DA 87 1C 2A C6 1F 26 00 01    .>.!......*..&..
004A60:  27 1E 09 7E 32 C7 1F FE 20 CA 80 1C 3A C6 1F FE    '..~2... ...:...
004A70:  09 C2 79 1C 0E 2E CD 1C 08 2A C7 1F 4D CD 1C 08    ..y......*..M...
004A80:  21 C6 1F 34 C2 51 1C C9 3E 00 21 94 1F BE D2 9B    !..4.Q..>.!.....
004A90:  1C 3A 94 1F 3D 32 03 1E C3 A1 1C 3A FC 1D 32 03    .:..=2.....:..2.
004AA0:  1E C9 3A F6 1D 1F D2 AC 1C CD 5C 18 3E 00 21 94    ..:.......\.>.!.
004AB0:  1F BE D2 BF 1C 3A 94 1F 3D 32 4B 1E C3 C5 1C 3A    .....:..=2K....:
004AC0:  FC 1D 32 4B 1E C9 21 C0 1E 3A C1 1E BE CA D1 1C    ..2K..!..:......
004AD0:  C9 21 03 1E 3A 4B 1E BE C2 DE 1C CD 5C 18 C9 CD    .!..:K......\...
004AE0:  11 12 3A A8 1E FE 0D CA ED 1C CD 5C 18 C9 21 C9    ..:........\..!.
004AF0:  1F 70 2B 71 CD 88 1C CD DF 1C 01 06 1E C5 2A C8    .p+q..........*.
004B00:  1A B9 D2 06 13 C9 CD 11 12 2A A8 1E 4D CD 38 14    .........*..M.8.
004B10:  1F D2 29 13 3A A8 1E FE 5B C2 1F 13 CD B1 14 21    ..).:...[......!
004B20:  4E 1F 35 21 A9 1E 36 04 C9 C3 B1 13 3A AA 1E FE    N.5!..6.....:...
004B30:  03 CA 35 13 C9 21 A1 1F 36 FF 23 36 00 3E 14 21    ..5..!..6.#6.>.!
004B40:  A2 1F BE DA B0 13 21 A0 1F 36 00 3A A0 1F 3C 32    ......!..6.:..<2
004B50:  A0 1F 4F 3E 03 91 9F 2F F5 3A A0 1F 21 A1 1F 86    ..O>.../.:..!...
004B60:  4F 06 00 21 54 02 09 E5 2A A0 1F 4D CD A1 14 E1    O..!T...*..M....
004B70:  96 D6 01 9F C1 48 A1 1F D2 7E 13 C3 4B 13 3A A0    .....H...~..K.:.
004B80:  1F FE 04 C2 A1 13 21 A9 1E 36 03 CD F2 11 FE 5B    ......!..6.....[
004B90:  C2 96 13 CD B1 14 21 4E 1F 35 3A A2 1F 32 A8 1E    ......!N.5:..2..
004BA0:  C9 3A A1 1F C6 03 32 A1 1F 21 A2 1F 34 C2 3D 13    .:....2..!..4.=.
004BB0:  C9 3A A8 1E FE 5B C2 BC 13 CD B1 14 C3 34 14 3A    .:...[.......4.:
004BC0:  AA 1E FE 00 C2 C8 13 C9 21 AA 1E 36 08 3A A8 1E    ........!..6.:..
004BD0:  FE 2E C2 02 14 CD F2 11 32 A8 1E 4F CD 38 14 1F    ........2..O.8..
004BE0:  DA 02 14 3A AA 1E FE 0B DA EC 13 C9 3A A8 1E FE    ...:........:...
004BF0:  2A C2 FC 13 0E 0B CD 87 14 C3 FF 13 CD 67 14 C3    *............g..
004C00:  D5 13 3A A8 1E FE 5B C2 0D 14 CD B1 14 21 4E 1F    ..:...[......!N.
004C10:  35 21 A9 1E 36 02 3A 94 1F FE 00 C2 25 14 3A FC    5!..6.:.....%.:.
004C20:  1D 3C 32 94 1F 2A 95 1F 36 00 01 20 00 2A 95 1F    .<2..*..6.. .*..
004C30:  09 36 00 C9 C3 A5 12 C9 21 9A 1F 71 21 9B 1F 36    .6......!..q!..6
004C40:  00 3E 0A 21 9B 1F BE DA 64 14 2A 9B 1F 26 00 01    .>.!....d.*..&..
004C50:  49 02 09 3A 9A 1F BE C2 5D 14 3E 01 C9 21 9B 1F    I..:....].>..!..
004C60:  34 C2 41 14 3E 00 C9 3A AA 1E 3C 32 AA 1E 4F 06    4.A.>..:..<2..O.
004C70:  00 2A 95 1F 09 3A A8 1E 77 3A A8 1E FE 3F C2 86    .*...:..w:...?..
004C80:  14 21 F5 1D 36 01 C9 21 9C 1F 71 21 A8 1E 36 3F    .!..6..!..q!..6?
004C90:  21 9C 1F 3A AA 1E BE D2 A0 14 CD 67 14 C3 90 14    !..:.......g....
004CA0:  C9 21 9D 1F 71 2A 9D 1F 26 00 EB 2A 95 1F 19 7E    .!..q*..&..*...~
004CB0:  C9 21 F6 1D 36 01 3A C0 1E 32 C1 1E CD F2 11 32    .!..6.:..2.....2
004CC0:  A8 1E 3A A8 1E D6 0D D6 01 9F F5 3A A8 1E D6 5D    ..:........:...]
004CD0:  D6 01 9F C1 48 B1 1F DA BA 15 3A A8 1E D6 41 32    ....H.....:...A2
004CE0:  9E 1F 4F 3E 19 B9 D2 03 15 3A A8 1E FE 20 C2 FA    ..O>.....:... ..
004CF0:  14 CD F2 11 32 A8 1E C3 00 15 01 08 03 CD AF 09    ....2...........
004D00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
004D10:  04 00 01 00 02 09 52 E5 04 00 41 02 00 00 00 02    ......R...A.....
004D20:  04 00 46 02 00 00 00 02 04 00 42 02 00 00 00 02    ..F.......B.....
004D30:  04 00 47 02 00 00 00 02 04 00 43 02 00 00 00 02    ..G.......C.....
004D40:  04 00 48 02 00 00 00 02 04 00 44 02 00 00 00 02    ..H.......D.....
004D50:  04 00 49 02 00 00 00 02 04 00 45 02 00 00 00 02    ..I.......E.....
004D60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004D70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004D80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004D90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004DF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004E00:  1F 44 4D 1E 21 CD 18 0A CD C6 1C C9 01 06 1E CD    .DM.!...........
004E10:  20 12 3A A9 1E D6 01 D6 01 9F F5 3A A8 1E D6 3D     .:........:...=
004E20:  D6 01 9F C1 48 A1 1F DA 2D 1D CD 5C 18 3A 4E 1F    ....H...-..\.:N.
004E30:  32 4F 1F C9 EB 5F 16 00 EB 1A 85 6F 13 1A 8C 67    2O..._.....o...g
004E40:  C9 5F 16 00 7B A5 6F 7A A4 67 C9 5E 23 56 EB 29    ._..{.oz.g.^#V.)
004E50:  E5 29 29 C1 09 C9 5F 16 00 7B B5 6F 7A B4 67 C9    .))..._..{.oz.g.
004E60:  5E 23 56 EB 29 0D C2 64 1D C9 5E 23 56 EB 7C B7    ^#V.)..d..^#V.|.
004E70:  1F 67 7D 1F 6F 0D C2 6E 1D C9 5F 16 00 7B 95 6F    .g}.o..n.._..{.o
004E80:  7A 9C 67 C9 4F 06 00 7B 91 6F 7A 98 67 C9 69 60    z.g.O..{.oz.g.i`
004E90:  4E 23 46 1A 91 6F 13 1A 98 67 C9 6F 26 00 1A 95    N#F..o...g.o&...
004EA0:  6F 13 1A 9C 67 C9 06 0C 48 0D C2 A9 1D 3D C2 A8    o...g...H....=..
004EB0:  1D C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004EC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004ED0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004EE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004EF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
004F00:  01 27 1E CD 18 0A 21 27 1E 36 00 21 33 1E 36 00    .'....!'.6.!3.6.
004F10:  01 27 1E C5 1E 10 01 06 1E CD 18 0A 3A 31 1E 07    .'..........:1..
004F20:  2F 21 61 1F B6 1F D2 45 1C 2A C4 1F 23 22 C4 1F    /!a....E.*..#"..
004F30:  3E 01 CD 7A 1D B5 C2 3F 1C 01 43 04 CD 39 08 CD    >..z...?..C..9..
004F40:  49 1C CD B2 1A C3 81 1B C9 CD 2E 08 21 C6 1F 36    I...........!..6
004F50:  01 3E 0B 21 C6 1F BE DA 87 1C 2A C6 1F 26 00 01    .>.!......*..&..
004F60:  27 1E 09 7E 32 C7 1F FE 20 CA 80 1C 3A C6 1F FE    '..~2... ...:...
004F70:  09 C2 79 1C 0E 2E CD 1C 08 2A C7 1F 4D CD 1C 08    ..y......*..M...
004F80:  21 C6 1F 34 C2 51 1C C9 3E 00 21 94 1F BE D2 9B    !..4.Q..>.!.....
004F90:  1C 3A 94 1F 3D 32 03 1E C3 A1 1C 3A FC 1D 32 03    .:..=2.....:..2.
004FA0:  1E C9 3A F6 1D 1F D2 AC 1C CD 5C 18 3E 00 21 94    ..:.......\.>.!.
004FB0:  1F BE D2 BF 1C 3A 94 1F 3D 32 4B 1E C3 C5 1C 3A    .....:..=2K....:
004FC0:  FC 1D 32 4B 1E C9 21 C0 1E 3A C1 1E BE CA D1 1C    ..2K..!..:......
004FD0:  C9 21 03 1E 3A 4B 1E BE C2 DE 1C CD 5C 18 C9 CD    .!..:K......\...
004FE0:  11 12 3A A8 1E FE 0D CA ED 1C CD 5C 18 C9 21 C9    ..:........\..!.
004FF0:  1F 70 2B 71 CD 88 1C CD DF 1C 01 06 1E C5 2A C8    .p+q..........*.
005000:  0D 0A 61 64 61 70 74 69 6E 67 0D 0A 61 64 64 0D    ..adapting..add.
005010:  0A 61 64 64 65 64 0D 0A 61 64 64 69 6E 67 0D 0A    .added..adding..
005020:  61 64 64 69 74 69 6F 6E 0D 0A 61 64 64 69 74 69    addition..additi
005030:  6F 6E 61 6C 0D 0A 61 64 64 69 74 69 6F 6E 73 0D    onal..additions.
005040:  0A 61 64 64 72 65 73 73 0D 0A 61 64 64 72 65 73    .address..addres
005050:  73 65 64 0D 0A 61 64 64 72 65 73 73 65 73 0D 0A    sed..addresses..
005060:  61 64 64 72 65 73 73 69 6E 67 0D 0A 61 64 64 73    addressing..adds
005070:  0D 0A 61 64 65 71 75 61 74 65 0D 0A 61 64 68 65    ..adequate..adhe
005080:  72 65 0D 0A 61 64 6A 75 73 74 0D 0A 61 64 6A 75    re..adjust..adju
005090:  73 74 65 64 0D 0A 61 64 6A 75 73 74 69 6E 67 0D    sted..adjusting.
0050A0:  0A 61 64 6A 75 73 74 73 0D 0A 61 64 6D 69 6E 69    .adjusts..admini
0050B0:  73 74 72 61 74 69 76 65 0D 0A 61 64 76 61 6E 74    strative..advant
0050C0:  61 67 65 0D 0A 61 64 76 61 6E 74 61 67 65 73 0D    age..advantages.
0050D0:  0A 61 64 76 69 63 65 0D 0A 61 66 66 65 63 74 0D    .advice..affect.
0050E0:  0A 61 66 66 65 63 74 65 64 0D 0A 61 66 66 65 63    .affected..affec
0050F0:  74 69 6E 67 0D 0A 61 66 66 65 63 74 73 0D 0A 61    ting..affects..a
005100:  66 72 61 69 64 0D 0A 61 66 74 65 72 0D 0A 61 67    fraid..after..ag
005110:  61 69 6E 0D 0A 61 67 61 69 6E 73 74 0D 0A 61 67    ain..against..ag
005120:  65 0D 0A 61 68 65 61 64 0D 0A 61 69 64 0D 0A 61    e..ahead..aid..a
005130:  6C 61 72 6D 0D 0A 61 6C 67 6F 72 69 74 68 6D 0D    larm..algorithm.
005140:  0A 61 6C 69 61 73 0D 0A 61 6C 69 67 6E 73 0D 0A    .alias..aligns..
005150:  61 6C 6C 0D 0A 61 6C 6C 6F 63 61 74 65 0D 0A 61    all..allocate..a
005160:  6C 6C 6F 63 61 74 65 64 0D 0A 61 6C 6C 6F 63 61    llocated..alloca
005170:  74 65 73 0D 0A 61 6C 6C 6F 63 61 74 69 6E 67 0D    tes..allocating.
005180:  0A 61 6C 6C 6F 63 61 74 69 6F 6E 0D 0A 61 6C 6C    .allocation..all
005190:  6F 63 61 74 69 6F 6E 73 0D 0A 61 6C 6C 6F 77 0D    ocations..allow.
0051A0:  0A 61 6C 6C 6F 77 65 64 0D 0A 61 6C 6C 6F 77 69    .allowed..allowi
0051B0:  6E 67 0D 0A 61 6C 6C 6F 77 73 0D 0A 61 6C 6F 6E    ng..allows..alon
0051C0:  65 0D 0A 61 6C 6F 6E 67 0D 0A 61 6C 70 68 61 62    e..along..alphab
0051D0:  65 74 0D 0A 61 6C 70 68 61 62 65 74 69 63 0D 0A    et..alphabetic..
0051E0:  61 6C 70 68 61 62 65 74 69 63 73 0D 0A 61 6C 72    alphabetics..alr
0051F0:  65 61 64 79 0D 0A 61 6C 73 6F 0D 0A 61 6C 74 65    eady..also..alte
005200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0052A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0052B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0052C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0052D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0052E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0052F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0053A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0053B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0053C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0053D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0053E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0053F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005400:  72 0D 0A 61 6C 74 65 72 65 64 0D 0A 61 6C 74 65    r..altered..alte
005410:  72 69 6E 67 0D 0A 61 6C 74 65 72 6E 61 74 65 0D    ring..alternate.
005420:  0A 61 6C 74 65 72 6E 61 74 65 6C 79 0D 0A 61 6C    .alternately..al
005430:  74 65 72 6E 61 74 69 76 65 0D 0A 61 6C 74 65 72    ternative..alter
005440:  73 0D 0A 61 6C 74 68 6F 75 67 68 0D 0A 61 6C 74    s..although..alt
005450:  6F 67 65 74 68 65 72 0D 0A 61 6C 77 61 79 73 0D    ogether..always.
005460:  0A 61 6D 0D 0A 61 6D 65 72 69 63 61 6E 0D 0A 61    .am..american..a
005470:  6D 6F 6E 67 0D 0A 61 6D 6F 75 6E 74 0D 0A 61 6D    mong..amount..am
005480:  6F 75 6E 74 73 0D 0A 61 6E 0D 0A 61 6E 61 6C 6F    ounts..an..analo
005490:  67 6F 75 73 0D 0A 61 6E 61 6C 79 7A 65 72 0D 0A    gous..analyzer..
0054A0:  61 6E 64 0D 0A 61 6E 6E 6F 75 6E 63 65 0D 0A 61    and..announce..a
0054B0:  6E 6E 6F 75 6E 63 65 6D 65 6E 74 0D 0A 61 6E 6E    nnouncement..ann
0054C0:  6F 75 6E 63 65 6D 65 6E 74 73 0D 0A 61 6E 6F 74    ouncements..anot
0054D0:  68 65 72 0D 0A 61 6E 73 77 65 72 0D 0A 61 6E 73    her..answer..ans
0054E0:  77 65 72 69 6E 67 0D 0A 61 6E 74 69 63 69 70 61    wering..anticipa
0054F0:  74 65 0D 0A 61 6E 74 69 63 69 70 61 74 65 73 0D    te..anticipates.
005500:  0A 61 6E 78 69 6F 75 73 0D 0A 61 6E 79 0D 0A 61    .anxious..any..a
005510:  6E 79 6F 6E 65 0D 0A 61 6E 79 74 68 69 6E 67 0D    nyone..anything.
005520:  0A 61 6E 79 77 61 79 0D 0A 61 6E 79 77 68 65 72    .anyway..anywher
005530:  65 0D 0A 61 70 61 72 74 0D 0A 61 70 6F 73 74 72    e..apart..apostr
005540:  6F 70 68 65 0D 0A 61 70 70 61 72 65 6E 74 0D 0A    ophe..apparent..
005550:  61 70 70 65 61 6C 69 6E 67 0D 0A 61 70 70 65 61    appealing..appea
005560:  72 0D 0A 61 70 70 65 61 72 61 6E 63 65 0D 0A 61    r..appearance..a
005570:  70 70 65 61 72 65 64 0D 0A 61 70 70 65 61 72 69    ppeared..appeari
005580:  6E 67 0D 0A 61 70 70 65 61 72 73 0D 0A 61 70 70    ng..appears..app
005590:  65 6E 64 0D 0A 61 70 70 65 6E 64 65 64 0D 0A 61    end..appended..a
0055A0:  70 70 65 6E 64 69 63 65 73 0D 0A 61 70 70 65 6E    ppendices..appen
0055B0:  64 69 78 0D 0A 61 70 70 65 6E 64 73 0D 0A 61 70    dix..appends..ap
0055C0:  70 6C 69 63 61 62 6C 65 0D 0A 61 70 70 6C 69 63    plicable..applic
0055D0:  61 74 69 6F 6E 0D 0A 61 70 70 6C 69 63 61 74 69    ation..applicati
0055E0:  6F 6E 73 0D 0A 61 70 70 6C 69 65 64 0D 0A 61 70    ons..applied..ap
0055F0:  70 6C 79 0D 0A 61 70 70 6C 79 69 6E 67 0D 0A 61    ply..applying..a
005600:  42 3A 0D 0A 41 3A 54 52 4E 20 3C 24 31 20 20 20    B:..A:TRN <$1   
005610:  20 20 20 20 20 20 3E 50 52 4F 4F 46 31 2E 54 4D          >PROOF1.TM
005620:  50 20 7E 61 2D 7A 41 2D 5A 3A 2D 3A 27 20 3A 6E    P ~a-zA-Z:-:' :n
005630:  0D 0A 41 3A 53 52 54 20 3C 50 52 4F 4F 46 31 2E    ..A:SRT <PROOF1.
005640:  54 4D 50 20 3E 50 52 4F 4F 46 32 2E 54 4D 50 20    TMP >PROOF2.TMP 
005650:  2D 55 0D 0A 45 52 41 20 20 20 20 50 52 4F 4F 46    -U..ERA    PROOF
005660:  31 2E 54 4D 50 0D 0A 41 3A 4D 52 47 20 20 50 52    1.TMP..A:MRG  PR
005670:  4F 4F 46 32 2E 54 4D 50 20 41 3A 44 49 43 54 20    OOF2.TMP A:DICT 
005680:  2D 31 20 3E 50 52 4F 4F 46 33 2E 54 4D 50 0D 0A    -1 >PROOF3.TMP..
005690:  45 52 41 20 20 20 20 50 52 4F 4F 46 32 2E 54 4D    ERA    PROOF2.TM
0056A0:  50 0D 0A 41 3A 45 44 54 20 20 50 52 4F 4F 46 33    P..A:EDT  PROOF3
0056B0:  2E 54 4D 50 0D 0A 41 3A 4D 52 47 20 20 50 52 4F    .TMP..A:MRG  PRO
0056C0:  4F 46 33 2E 54 4D 50 20 41 3A 44 49 43 54 20 20    OF3.TMP A:DICT  
0056D0:  20 20 3E 41 3A 44 49 43 54 2E 4E 45 57 0D 0A 45      >A:DICT.NEW..E
0056E0:  52 41 20 20 20 20 50 52 4F 4F 46 33 2E 54 4D 50    RA    PROOF3.TMP
0056F0:  0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
005700:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005710:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005720:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005730:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005740:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005750:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0057A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0057B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0057C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0057D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0057E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0057F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
005800:  70 70 72 65 63 69 61 74 65 0D 0A 61 70 70 72 6F    ppreciate..appro
005810:  61 63 68 0D 0A 61 70 70 72 6F 61 63 68 65 73 0D    ach..approaches.
005820:  0A 61 70 70 72 6F 70 72 69 61 74 65 0D 0A 61 70    .appropriate..ap
005830:  70 72 6F 70 72 69 61 74 65 6C 79 0D 0A 61 70 70    propriately..app
005840:  72 6F 78 69 6D 61 74 65 64 0D 0A 61 70 70 72 6F    roximated..appro
005850:  78 69 6D 61 74 65 6C 79 0D 0A 61 72 62 69 74 72    ximately..arbitr
005860:  61 72 69 6C 79 0D 0A 61 72 62 69 74 72 61 72 79    arily..arbitrary
005870:  0D 0A 61 72 63 68 69 74 65 63 74 75 72 65 0D 0A    ..architecture..
005880:  61 72 65 0D 0A 61 72 65 61 0D 0A 61 72 65 61 73    are..area..areas
005890:  0D 0A 61 72 67 75 6D 65 6E 74 0D 0A 61 72 67 75    ..argument..argu
0058A0:  6D 65 6E 74 73 0D 0A 61 72 69 73 65 73 0D 0A 61    ments..arises..a
0058B0:  72 69 74 68 6D 65 74 69 63 0D 0A 61 72 6F 75 6E    rithmetic..aroun
0058C0:  64 0D 0A 61 72 72 61 6E 67 65 6D 65 6E 74 0D 0A    d..arrangement..
0058D0:  61 72 72 61 6E 67 65 73 0D 0A 61 72 72 61 6E 67    arranges..arrang
0058E0:  69 6E 67 0D 0A 61 72 72 61 79 0D 0A 61 72 72 61    ing..array..arra
0058F0:  79 73 0D 0A 61 72 72 69 76 65 0D 0A 61 72 74 69    ys..arrive..arti
005900:  63 6C 65 0D 0A 61 72 74 69 63 6C 65 73 0D 0A 61    cle..articles..a
005910:  73 0D 0A 61 73 63 65 6E 64 69 6E 67 0D 0A 61 73    s..ascending..as
005920:  63 65 72 74 61 69 6E 0D 0A 61 73 69 64 65 0D 0A    certain..aside..
005930:  61 73 6B 65 64 0D 0A 61 73 6B 69 6E 67 0D 0A 61    asked..asking..a
005940:  73 70 65 63 74 73 0D 0A 61 73 73 65 6D 62 6C 65    spects..assemble
005950:  0D 0A 61 73 73 65 6D 62 6C 65 64 0D 0A 61 73 73    ..assembled..ass
005960:  65 6D 62 6C 65 72 0D 0A 61 73 73 65 6D 62 6C 65    embler..assemble
005970:  72 73 0D 0A 61 73 73 65 6D 62 6C 65 73 0D 0A 61    rs..assembles..a
005980:  73 73 65 6D 62 6C 69 6E 67 0D 0A 61 73 73 65 6D    ssembling..assem
005990:  62 6C 79 0D 0A 61 73 73 65 73 73 65 64 0D 0A 61    bly..assessed..a
0059A0:  73 73 69 67 6E 0D 0A 61 73 73 69 67 6E 65 64 0D    ssign..assigned.
0059B0:  0A 61 73 73 69 67 6E 6D 65 6E 74 0D 0A 61 73 73    .assignment..ass
0059C0:  69 67 6E 6D 65 6E 74 73 0D 0A 61 73 73 69 67 6E    ignments..assign
0059D0:  73 0D 0A 61 73 73 69 73 74 0D 0A 61 73 73 69 73    s..assist..assis
0059E0:  74 65 64 0D 0A 61 73 73 6F 63 69 61 74 65 0D 0A    ted..associate..
0059F0:  61 73 73 6F 63 69 61 74 65 64 0D 0A 61 73 73 6F    associated..asso
005A00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005A90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005AA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005AB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005AC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005AD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005AE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005AF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005B90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005BA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005BB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005BC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005BD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005BE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005BF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
005C00:  63 69 61 74 65 73 0D 0A 61 73 73 75 6D 65 0D 0A    ciates..assume..
005C10:  61 73 73 75 6D 65 64 0D 0A 61 73 73 75 6D 65 73    assumed..assumes
005C20:  0D 0A 61 73 73 75 6D 69 6E 67 0D 0A 61 73 73 75    ..assuming..assu
005C30:  6D 70 74 69 6F 6E 0D 0A 61 73 73 75 6D 70 74 69    mption..assumpti
005C40:  6F 6E 73 0D 0A 61 73 74 65 72 69 73 6B 0D 0A 61    ons..asterisk..a
005C50:  74 0D 0A 61 74 74 61 63 68 65 64 0D 0A 61 74 74    t..attached..att
005C60:  65 6D 70 74 0D 0A 61 74 74 65 6D 70 74 69 6E 67    empt..attempting
005C70:  0D 0A 61 74 74 65 6D 70 74 73 0D 0A 61 74 74 65    ..attempts..atte
005C80:  6E 74 69 6F 6E 0D 0A 61 75 64 69 62 6C 65 0D 0A    ntion..audible..
005C90:  61 75 67 6D 65 6E 74 65 64 0D 0A 61 75 74 68 6F    augmented..autho
005CA0:  72 0D 0A 61 75 74 6F 0D 0A 61 75 74 6F 6D 61 74    r..auto..automat
005CB0:  69 63 0D 0A 61 75 74 6F 6D 61 74 69 63 61 6C 6C    ic..automaticall
005CC0:  79 0D 0A 61 75 78 69 6C 69 61 72 79 0D 0A 61 76    y..auxiliary..av
005CD0:  61 69 6C 61 62 69 6C 69 74 79 0D 0A 61 76 61 69    ailability..avai
005CE0:  6C 61 62 6C 65 0D 0A 61 76 6F 69 64 0D 0A 61 76    lable..avoid..av
005CF0:  6F 69 64 65 64 0D 0A 61 76 6F 69 64 69 6E 67 0D    oided..avoiding.
005D00:  0A 61 77 61 69 74 0D 0A 61 77 61 72 65 0D 0A 61    .await..aware..a
005D10:  77 61 79 0D 0A 61 77 6B 77 61 72 64 0D 0A 62 0D    way..awkward..b.
005D20:  0A 62 61 63 6B 0D 0A 62 61 63 6B 67 72 6F 75 6E    .back..backgroun
005D30:  64 0D 0A 62 61 63 6B 69 6E 67 0D 0A 62 61 63 6B    d..backing..back
005D40:  73 6C 61 73 68 65 73 0D 0A 62 61 63 6B 73 70 61    slashes..backspa
005D50:  63 65 0D 0A 62 61 63 6B 73 70 61 63 65 73 0D 0A    ce..backspaces..
005D60:  62 61 63 6B 75 70 0D 0A 62 61 64 6C 79 0D 0A 62    backup..badly..b
005D70:  61 72 0D 0A 62 61 72 65 0D 0A 62 61 72 72 69 65    ar..bare..barrie
005D80:  72 0D 0A 62 61 73 65 0D 0A 62 61 73 65 64 0D 0A    r..base..based..
005D90:  62 61 73 69 63 0D 0A 62 65 0D 0A 62 65 61 72 73    basic..be..bears
005DA0:  0D 0A 62 65 63 61 6D 65 0D 0A 62 65 63 61 75 73    ..became..becaus
005DB0:  65 0D 0A 62 65 63 6F 6D 65 0D 0A 62 65 63 6F 6D    e..become..becom
005DC0:  65 73 0D 0A 62 65 65 6E 0D 0A 62 65 66 6F 72 65    es..been..before
005DD0:  0D 0A 62 65 66 6F 72 65 68 61 6E 64 0D 0A 62 65    ..beforehand..be
005DE0:  67 61 6E 0D 0A 62 65 67 69 6E 0D 0A 62 65 67 69    gan..begin..begi
005DF0:  6E 6E 69 6E 67 0D 0A 62 65 67 69 6E 73 0D 0A 62    nning..begins..b
005E00:  0D 0A 2D 0D 0A 2D 2D 0D 0A 61 0D 0A 61 62 62 72    ..-..--..a..abbr
005E10:  65 76 69 61 74 65 64 0D 0A 61 62 69 6C 69 74 79    eviated..ability
005E20:  0D 0A 61 62 6C 65 0D 0A 61 62 6E 6F 72 6D 61 6C    ..able..abnormal
005E30:  0D 0A 61 62 6F 72 74 0D 0A 61 62 6F 72 74 65 64    ..abort..aborted
005E40:  0D 0A 61 62 6F 72 74 69 6E 67 0D 0A 61 62 6F 72    ..aborting..abor
005E50:  74 73 0D 0A 61 62 6F 75 74 0D 0A 61 62 6F 76 65    ts..about..above
005E60:  0D 0A 61 62 73 65 6E 63 65 0D 0A 61 62 73 6F 6C    ..absence..absol
005E70:  75 74 65 0D 0A 61 62 73 6F 6C 75 74 65 6C 79 0D    ute..absolutely.
005E80:  0A 61 62 75 73 65 0D 0A 61 63 63 65 6E 74 0D 0A    .abuse..accent..
005E90:  61 63 63 65 70 74 0D 0A 61 63 63 65 70 74 61 62    accept..acceptab
005EA0:  6C 65 0D 0A 61 63 63 65 70 74 61 6E 63 65 0D 0A    le..acceptance..
005EB0:  61 63 63 65 70 74 65 64 0D 0A 61 63 63 65 70 74    accepted..accept
005EC0:  69 6E 67 0D 0A 61 63 63 65 70 74 73 0D 0A 61 63    ing..accepts..ac
005ED0:  63 65 73 73 0D 0A 61 63 63 65 73 73 65 64 0D 0A    cess..accessed..
005EE0:  61 63 63 65 73 73 65 73 0D 0A 61 63 63 65 73 73    accesses..access
005EF0:  69 6E 67 0D 0A 61 63 63 69 64 65 6E 74 61 6C 0D    ing..accidental.
005F00:  0A 61 63 63 69 64 65 6E 74 61 6C 6C 79 0D 0A 61    .accidentally..a
005F10:  63 63 6F 6D 6D 6F 64 61 74 65 0D 0A 61 63 63 6F    ccommodate..acco
005F20:  6D 70 61 6E 69 65 73 0D 0A 61 63 63 6F 6D 70 6C    mpanies..accompl
005F30:  69 73 68 65 64 0D 0A 61 63 63 6F 6D 70 6C 69 73    ished..accomplis
005F40:  68 65 73 0D 0A 61 63 63 6F 72 64 69 6E 67 0D 0A    hes..according..
005F50:  61 63 63 6F 72 64 69 6E 67 6C 79 0D 0A 61 63 63    accordingly..acc
005F60:  6F 75 6E 74 0D 0A 61 63 63 75 6D 75 6C 61 74 6F    ount..accumulato
005F70:  72 0D 0A 61 63 63 75 72 61 63 79 0D 0A 61 63 68    r..accuracy..ach
005F80:  69 65 76 65 0D 0A 61 63 68 69 65 76 65 64 0D 0A    ieve..achieved..
005F90:  61 63 68 69 65 76 69 6E 67 0D 0A 61 63 71 75 69    achieving..acqui
005FA0:  72 65 64 0D 0A 61 63 72 6F 6E 79 6D 73 0D 0A 61    red..acronyms..a
005FB0:  63 72 6F 73 73 0D 0A 61 63 74 69 6F 6E 0D 0A 61    cross..action..a
005FC0:  63 74 69 6F 6E 73 0D 0A 61 63 74 69 76 61 74 65    ctions..activate
005FD0:  73 0D 0A 61 63 74 69 76 69 74 69 65 73 0D 0A 61    s..activities..a
005FE0:  63 74 69 76 69 74 79 0D 0A 61 63 74 75 61 6C 0D    ctivity..actual.
005FF0:  0A 61 63 74 75 61 6C 6C 79 0D 0A 61 64 61 70 74    .actually..adapt
006000:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
006010:  05 00 01 00 02 09 52 E5 05 00 41 02 00 00 00 02    ......R...A.....
006020:  05 00 46 02 00 00 00 02 05 00 42 02 00 00 00 02    ..F.......B.....
006030:  05 00 47 02 00 00 00 02 05 00 43 02 00 00 00 02    ..G.......C.....
006040:  05 00 48 02 00 00 00 02 05 00 44 02 00 00 00 02    ..H.......D.....
006050:  05 00 49 02 00 00 00 02 05 00 45 02 00 00 00 02    ..I.......E.....
006060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0060F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
006100:  65 67 75 6E 0D 0A 62 65 68 61 76 69 6F 72 0D 0A    egun..behavior..
006110:  62 65 68 69 6E 64 0D 0A 62 65 69 6E 67 0D 0A 62    behind..being..b
006120:  65 6C 6C 0D 0A 62 65 6C 6C 73 0D 0A 62 65 6C 6F    ell..bells..belo
006130:  77 0D 0A 62 65 6E 63 68 6D 61 72 6B 0D 0A 62 65    w..benchmark..be
006140:  6E 65 66 69 74 73 0D 0A 62 65 72 73 65 72 6B 0D    nefits..berserk.
006150:  0A 62 65 73 69 64 65 73 0D 0A 62 65 73 74 0D 0A    .besides..best..
006160:  62 65 74 74 65 72 0D 0A 62 65 74 77 65 65 6E 0D    better..between.
006170:  0A 62 65 79 6F 6E 64 0D 0A 62 69 6E 61 72 79 0D    .beyond..binary.
006180:  0A 62 69 6E 64 69 6E 67 0D 0A 62 69 74 0D 0A 62    .binding..bit..b
006190:  69 74 73 0D 0A 62 6C 61 6E 6B 0D 0A 62 6C 61 6E    its..blank..blan
0061A0:  6B 73 0D 0A 62 6C 6F 63 6B 0D 0A 62 6C 6F 63 6B    ks..block..block
0061B0:  69 6E 67 0D 0A 62 6C 6F 63 6B 73 0D 0A 62 6C 6F    ing..blocks..blo
0061C0:  77 73 0D 0A 62 6F 64 79 0D 0A 62 6F 6E 65 73 0D    ws..body..bones.
0061D0:  0A 62 6F 6F 6B 0D 0A 62 6F 6F 6B 73 0D 0A 62 6F    .book..books..bo
0061E0:  6F 6D 69 6E 67 0D 0A 62 6F 6F 74 0D 0A 62 6F 6F    oming..boot..boo
0061F0:  74 69 6E 67 0D 0A 62 6F 72 72 6F 77 0D 0A 62 6F    ting..borrow..bo
006200:  74 68 0D 0A 62 6F 74 68 65 72 0D 0A 62 6F 74 74    th..bother..bott
006210:  6F 6D 0D 0A 62 6F 75 6E 64 73 0D 0A 62 6F 78 0D    om..bounds..box.
006220:  0A 62 72 61 63 65 73 0D 0A 62 72 61 63 6B 65 74    .braces..bracket
006230:  0D 0A 62 72 61 63 6B 65 74 73 0D 0A 62 72 61 6E    ..brackets..bran
006240:  63 68 0D 0A 62 72 65 61 6B 0D 0A 62 72 65 61 6B    ch..break..break
006250:  73 0D 0A 62 72 65 76 69 74 79 0D 0A 62 72 69 65    s..brevity..brie
006260:  66 0D 0A 62 72 69 65 66 6C 79 0D 0A 62 72 69 6E    f..briefly..brin
006270:  67 73 0D 0A 62 72 6F 6B 65 6E 0D 0A 62 72 6F 75    gs..broken..brou
006280:  67 68 74 0D 0A 62 72 6F 77 73 65 0D 0A 62 75 66    ght..browse..buf
006290:  66 65 72 0D 0A 62 75 66 66 65 72 69 6E 67 0D 0A    fer..buffering..
0062A0:  62 75 66 66 65 72 73 0D 0A 62 75 67 0D 0A 62 75    buffers..bug..bu
0062B0:  67 73 0D 0A 62 75 69 6C 64 0D 0A 62 75 69 6C 64    gs..build..build
0062C0:  69 6E 67 0D 0A 62 75 69 6C 64 73 0D 0A 62 75 69    ing..builds..bui
0062D0:  6C 74 0D 0A 62 75 73 69 6E 65 73 73 0D 0A 62 75    lt..business..bu
0062E0:  74 0D 0A 62 75 74 74 6F 6E 0D 0A 62 75 79 0D 0A    t..button..buy..
0062F0:  62 75 79 65 72 0D 0A 62 79 0D 0A 62 79 65 0D 0A    buyer..by..bye..
006300:  75 74 69 6E 67 0D 0A 63 6F 6E 73 74 72 61 69 6E    uting..constrain
006310:  74 0D 0A 63 6F 6E 74 61 69 6E 0D 0A 63 6F 6E 74    t..contain..cont
006320:  61 69 6E 65 64 0D 0A 63 6F 6E 74 61 69 6E 69 6E    ained..containin
006330:  67 0D 0A 63 6F 6E 74 61 69 6E 73 0D 0A 63 6F 6E    g..contains..con
006340:  74 65 6E 64 0D 0A 63 6F 6E 74 65 6E 74 0D 0A 63    tend..content..c
006350:  6F 6E 74 65 6E 74 73 0D 0A 63 6F 6E 74 65 78 74    ontents..context
006360:  0D 0A 63 6F 6E 74 65 78 74 73 0D 0A 63 6F 6E 74    ..contexts..cont
006370:  69 67 75 6F 75 73 0D 0A 63 6F 6E 74 69 6E 75 61    iguous..continua
006380:  62 6C 65 0D 0A 63 6F 6E 74 69 6E 75 65 0D 0A 63    ble..continue..c
006390:  6F 6E 74 69 6E 75 65 64 0D 0A 63 6F 6E 74 69 6E    ontinued..contin
0063A0:  75 65 73 0D 0A 63 6F 6E 74 69 6E 75 69 6E 67 0D    ues..continuing.
0063B0:  0A 63 6F 6E 74 69 6E 75 6F 75 73 0D 0A 63 6F 6E    .continuous..con
0063C0:  74 72 6F 6C 0D 0A 63 6F 6E 74 72 6F 6C 6C 65 64    trol..controlled
0063D0:  0D 0A 63 6F 6E 74 72 6F 6C 6C 65 72 0D 0A 63 6F    ..controller..co
0063E0:  6E 74 72 6F 6C 6C 69 6E 67 0D 0A 63 6F 6E 74 72    ntrolling..contr
0063F0:  6F 6C 73 0D 0A 63 6F 6E 76 65 6E 69 65 6E 74 0D    ols..convenient.
006400:  0A 63 6F 6E 76 65 6E 74 69 6F 6E 0D 0A 63 6F 6E    .convention..con
006410:  76 65 6E 74 69 6F 6E 61 6C 0D 0A 63 6F 6E 76 65    ventional..conve
006420:  6E 74 69 6F 6E 73 0D 0A 63 6F 6E 76 65 72 73 69    ntions..conversi
006430:  6E 67 0D 0A 63 6F 6E 76 65 72 73 69 6F 6E 0D 0A    ng..conversion..
006440:  63 6F 6E 76 65 72 74 0D 0A 63 6F 6E 76 65 72 74    convert..convert
006450:  65 64 0D 0A 63 6F 6E 76 65 72 74 69 6E 67 0D 0A    ed..converting..
006460:  63 6F 6E 76 65 72 74 73 0D 0A 63 6F 6E 76 69 6E    converts..convin
006470:  63 65 64 0D 0A 63 6F 6F 70 65 72 61 74 65 0D 0A    ced..cooperate..
006480:  63 6F 6F 70 65 72 61 74 69 6F 6E 0D 0A 63 6F 70    cooperation..cop
006490:  69 65 64 0D 0A 63 6F 70 69 65 73 0D 0A 63 6F 70    ied..copies..cop
0064A0:  79 0D 0A 63 6F 70 79 69 6E 67 0D 0A 63 6F 70 79    y..copying..copy
0064B0:  72 69 67 68 74 0D 0A 63 6F 70 79 72 69 67 68 74    right..copyright
0064C0:  65 64 0D 0A 63 6F 72 65 0D 0A 63 6F 72 72 65 63    ed..core..correc
0064D0:  74 0D 0A 63 6F 72 72 65 63 74 65 64 0D 0A 63 6F    t..corrected..co
0064E0:  72 72 65 63 74 69 6F 6E 0D 0A 63 6F 72 72 65 63    rrection..correc
0064F0:  74 69 6F 6E 73 0D 0A 63 6F 72 72 65 63 74 6C 79    tions..correctly
006500:  62 79 70 61 73 73 0D 0A 62 79 74 65 0D 0A 62 79    bypass..byte..by
006510:  74 65 73 0D 0A 63 0D 0A 63 61 6C 63 75 6C 61 74    tes..c..calculat
006520:  65 64 0D 0A 63 61 6C 63 75 6C 61 74 65 73 0D 0A    ed..calculates..
006530:  63 61 6C 63 75 6C 61 74 69 6F 6E 73 0D 0A 63 61    calculations..ca
006540:  6C 6C 0D 0A 63 61 6C 6C 65 64 0D 0A 63 61 6C 6C    ll..called..call
006550:  65 72 0D 0A 63 61 6C 6C 65 72 27 73 0D 0A 63 61    er..caller's..ca
006560:  6C 6C 69 6E 67 0D 0A 63 61 6C 6C 73 0D 0A 63 61    lling..calls..ca
006570:  6D 65 0D 0A 63 61 6D 6F 75 66 6C 61 67 65 73 0D    me..camouflages.
006580:  0A 63 61 6E 0D 0A 63 61 6E 27 74 0D 0A 63 61 6E    .can..can't..can
006590:  63 65 6C 0D 0A 63 61 6E 63 65 6C 73 0D 0A 63 61    cel..cancels..ca
0065A0:  6E 6E 6F 74 0D 0A 63 61 70 61 62 69 6C 69 74 69    nnot..capabiliti
0065B0:  65 73 0D 0A 63 61 70 61 62 69 6C 69 74 79 0D 0A    es..capability..
0065C0:  63 61 70 61 62 6C 65 0D 0A 63 61 70 61 63 69 74    capable..capacit
0065D0:  79 0D 0A 63 61 70 69 74 61 6C 69 7A 69 6E 67 0D    y..capitalizing.
0065E0:  0A 63 61 70 73 0D 0A 63 61 70 74 75 72 65 0D 0A    .caps..capture..
0065F0:  63 61 72 65 0D 0A 63 61 72 65 66 75 6C 0D 0A 63    care..careful..c
006600:  61 72 72 69 61 67 65 0D 0A 63 61 72 72 79 0D 0A    arriage..carry..
006610:  63 61 73 63 61 64 65 0D 0A 63 61 73 65 0D 0A 63    cascade..case..c
006620:  61 73 65 73 0D 0A 63 61 75 67 68 74 0D 0A 63 61    ases..caught..ca
006630:  75 73 65 0D 0A 63 61 75 73 65 64 0D 0A 63 61 75    use..caused..cau
006640:  73 65 73 0D 0A 63 61 75 73 69 6E 67 0D 0A 63 65    ses..causing..ce
006650:  61 73 65 73 0D 0A 63 65 6E 74 65 72 0D 0A 63 65    ases..center..ce
006660:  6E 74 65 72 65 64 0D 0A 63 65 6E 74 65 72 69 6E    ntered..centerin
006670:  67 0D 0A 63 65 6E 74 65 72 73 0D 0A 63 65 72 74    g..centers..cert
006680:  61 69 6E 0D 0A 63 65 73 73 61 74 69 6F 6E 0D 0A    ain..cessation..
006690:  63 68 61 69 6E 0D 0A 63 68 61 69 6E 73 0D 0A 63    chain..chains..c
0066A0:  68 61 6E 63 65 0D 0A 63 68 61 6E 67 65 0D 0A 63    hance..change..c
0066B0:  68 61 6E 67 65 64 0D 0A 63 68 61 6E 67 65 73 0D    hanged..changes.
0066C0:  0A 63 68 61 6E 67 69 6E 67 0D 0A 63 68 61 70 74    .changing..chapt
0066D0:  65 72 0D 0A 63 68 61 70 74 65 72 73 0D 0A 63 68    er..chapters..ch
0066E0:  61 72 61 63 74 65 72 0D 0A 63 68 61 72 61 63 74    aracter..charact
0066F0:  65 72 73 0D 0A 63 68 61 72 74 0D 0A 63 68 65 63    ers..chart..chec
006700:  0D 0A 63 6F 72 72 65 73 70 6F 6E 64 0D 0A 63 6F    ..correspond..co
006710:  72 72 65 73 70 6F 6E 64 65 64 0D 0A 63 6F 72 72    rresponded..corr
006720:  65 73 70 6F 6E 64 69 6E 67 0D 0A 63 6F 72 72 65    esponding..corre
006730:  73 70 6F 6E 64 73 0D 0A 63 6F 72 72 75 70 74 65    sponds..corrupte
006740:  64 0D 0A 63 6F 72 72 75 70 74 69 6E 67 0D 0A 63    d..corrupting..c
006750:  6F 73 74 0D 0A 63 6F 73 74 73 0D 0A 63 6F 75 6C    ost..costs..coul
006760:  64 0D 0A 63 6F 75 6C 64 6E 27 74 0D 0A 63 6F 75    d..couldn't..cou
006770:  6E 74 0D 0A 63 6F 75 6E 74 65 64 0D 0A 63 6F 75    nt..counted..cou
006780:  6E 74 65 72 0D 0A 63 6F 75 6E 74 65 72 70 61 72    nter..counterpar
006790:  74 73 0D 0A 63 6F 75 6E 74 69 6E 67 0D 0A 63 6F    ts..counting..co
0067A0:  75 6E 74 73 0D 0A 63 6F 75 72 73 65 0D 0A 63 6F    unts..course..co
0067B0:  76 65 72 65 64 0D 0A 63 6F 76 65 72 73 0D 0A 63    vered..covers..c
0067C0:  72 65 61 74 65 0D 0A 63 72 65 61 74 65 64 0D 0A    reate..created..
0067D0:  63 72 65 61 74 65 73 0D 0A 63 72 65 61 74 69 6E    creates..creatin
0067E0:  67 0D 0A 63 72 65 61 74 69 6F 6E 0D 0A 63 72 65    g..creation..cre
0067F0:  64 69 74 65 64 0D 0A 63 72 69 74 69 63 61 6C 0D    dited..critical.
006800:  0A 63 72 79 70 74 0D 0A 63 72 79 70 74 69 63 0D    .crypt..cryptic.
006810:  0A 63 75 6D 75 6C 61 74 69 76 65 0D 0A 63 75 72    .cumulative..cur
006820:  72 65 6E 74 0D 0A 63 75 72 72 65 6E 74 6C 79 0D    rent..currently.
006830:  0A 63 75 72 73 6F 72 79 0D 0A 63 75 73 74 6F 6D    .cursory..custom
006840:  0D 0A 63 75 73 74 6F 6D 61 72 79 0D 0A 63 75 73    ..customary..cus
006850:  74 6F 6D 69 7A 65 0D 0A 63 75 73 74 6F 6D 69 7A    tomize..customiz
006860:  65 64 0D 0A 63 75 74 0D 0A 63 79 63 6C 69 63 0D    ed..cut..cyclic.
006870:  0A 64 0D 0A 64 61 69 6C 79 0D 0A 64 61 6D 61 67    .d..daily..damag
006880:  65 64 0D 0A 64 61 6E 67 65 72 0D 0A 64 61 74 61    ed..danger..data
006890:  0D 0A 64 61 74 65 0D 0A 64 65 2D 61 6C 6C 6F 63    ..date..de-alloc
0068A0:  61 74 65 64 0D 0A 64 65 61 64 0D 0A 64 65 61 64    ated..dead..dead
0068B0:  6C 69 6E 65 0D 0A 64 65 61 6C 0D 0A 64 65 61 6C    line..deal..deal
0068C0:  69 6E 67 0D 0A 64 65 61 6C 73 0D 0A 64 65 61 6C    ing..deals..deal
0068D0:  74 0D 0A 64 65 61 72 0D 0A 64 65 62 6C 6F 63 6B    t..dear..deblock
0068E0:  69 6E 67 0D 0A 64 65 62 74 0D 0A 64 65 62 75 67    ing..debt..debug
0068F0:  67 65 72 0D 0A 64 65 62 75 67 67 69 6E 67 0D 0A    ger..debugging..
006900:  6B 0D 0A 63 68 65 63 6B 65 64 0D 0A 63 68 65 63    k..checked..chec
006910:  6B 65 72 0D 0A 63 68 65 63 6B 69 6E 67 0D 0A 63    ker..checking..c
006920:  68 65 63 6B 73 0D 0A 63 68 69 65 66 0D 0A 63 68    hecks..chief..ch
006930:  69 70 0D 0A 63 68 6F 69 63 65 0D 0A 63 68 6F 69    ip..choice..choi
006940:  63 65 73 0D 0A 63 68 6F 6B 65 73 0D 0A 63 68 6F    ces..chokes..cho
006950:  6F 73 65 0D 0A 63 68 6F 6F 73 69 6E 67 0D 0A 63    ose..choosing..c
006960:  68 6F 72 65 0D 0A 63 68 6F 73 65 0D 0A 63 68 6F    hore..chose..cho
006970:  73 65 6E 0D 0A 63 69 72 63 75 6D 66 6C 65 78 0D    sen..circumflex.
006980:  0A 63 69 72 63 75 6D 73 74 61 6E 63 65 73 0D 0A    .circumstances..
006990:  63 69 74 65 0D 0A 63 6C 61 69 6D 65 64 0D 0A 63    cite..claimed..c
0069A0:  6C 61 72 69 74 79 0D 0A 63 6C 61 73 73 0D 0A 63    larity..class..c
0069B0:  6C 65 61 6E 0D 0A 63 6C 65 61 72 0D 0A 63 6C 65    lean..clear..cle
0069C0:  61 72 65 64 0D 0A 63 6C 65 61 72 69 6E 67 0D 0A    ared..clearing..
0069D0:  63 6C 65 61 72 6C 79 0D 0A 63 6C 65 61 72 73 0D    clearly..clears.
0069E0:  0A 63 6C 6F 73 65 0D 0A 63 6C 6F 73 65 64 0D 0A    .close..closed..
0069F0:  63 6C 6F 73 65 6C 79 0D 0A 63 6C 6F 73 65 73 0D    closely..closes.
006A00:  0A 63 6C 6F 73 69 6E 67 0D 0A 63 6F 64 65 0D 0A    .closing..code..
006A10:  63 6F 64 65 64 0D 0A 63 6F 64 65 73 0D 0A 63 6F    coded..codes..co
006A20:  65 78 69 73 74 0D 0A 63 6F 6C 6C 61 62 6F 72 61    exist..collabora
006A30:  74 69 6F 6E 0D 0A 63 6F 6C 6C 61 70 73 65 0D 0A    tion..collapse..
006A40:  63 6F 6C 6C 61 70 73 65 64 0D 0A 63 6F 6C 6C 61    collapsed..colla
006A50:  70 73 65 73 0D 0A 63 6F 6C 6C 61 70 73 69 6E 67    pses..collapsing
006A60:  0D 0A 63 6F 6C 6C 65 63 74 69 6F 6E 0D 0A 63 6F    ..collection..co
006A70:  6C 6F 6E 0D 0A 63 6F 6C 6F 6E 73 0D 0A 63 6F 6C    lon..colons..col
006A80:  75 6D 6E 0D 0A 63 6F 6C 75 6D 6E 73 0D 0A 63 6F    umn..columns..co
006A90:  6D 62 69 6E 61 74 69 6F 6E 0D 0A 63 6F 6D 62 69    mbination..combi
006AA0:  6E 61 74 69 6F 6E 73 0D 0A 63 6F 6D 62 69 6E 65    nations..combine
006AB0:  0D 0A 63 6F 6D 62 69 6E 65 64 0D 0A 63 6F 6D 62    ..combined..comb
006AC0:  69 6E 65 73 0D 0A 63 6F 6D 62 69 6E 69 6E 67 0D    ines..combining.
006AD0:  0A 63 6F 6D 65 0D 0A 63 6F 6D 65 73 0D 0A 63 6F    .come..comes..co
006AE0:  6D 66 6F 72 74 61 62 6C 65 0D 0A 63 6F 6D 69 6E    mfortable..comin
006AF0:  67 0D 0A 63 6F 6D 6D 61 0D 0A 63 6F 6D 6D 61 6E    g..comma..comman
006B00:  64 65 63 65 6D 62 65 72 0D 0A 64 65 63 69 64 65    december..decide
006B10:  0D 0A 64 65 63 69 64 65 64 0D 0A 64 65 63 69 64    ..decided..decid
006B20:  65 73 0D 0A 64 65 63 69 6D 61 6C 0D 0A 64 65 63    es..decimal..dec
006B30:  69 70 68 65 72 0D 0A 64 65 63 69 73 69 6F 6E 73    ipher..decisions
006B40:  0D 0A 64 65 63 6C 61 72 61 74 69 6F 6E 0D 0A 64    ..declaration..d
006B50:  65 63 6C 61 72 61 74 69 6F 6E 73 0D 0A 64 65 63    eclarations..dec
006B60:  6C 61 72 65 0D 0A 64 65 63 6C 61 72 65 64 0D 0A    lare..declared..
006B70:  64 65 63 6C 61 72 65 73 0D 0A 64 65 63 72 65 61    declares..decrea
006B80:  73 65 0D 0A 64 65 63 72 65 61 73 65 64 0D 0A 64    se..decreased..d
006B90:  65 63 72 65 61 73 65 73 0D 0A 64 65 63 72 65 6D    ecreases..decrem
006BA0:  65 6E 74 0D 0A 64 65 63 72 65 6D 65 6E 74 73 0D    ent..decrements.
006BB0:  0A 64 65 64 69 63 61 74 65 64 0D 0A 64 65 66 61    .dedicated..defa
006BC0:  75 6C 74 0D 0A 64 65 66 61 75 6C 74 73 0D 0A 64    ult..defaults..d
006BD0:  65 66 69 6E 65 0D 0A 64 65 66 69 6E 65 64 0D 0A    efine..defined..
006BE0:  64 65 66 69 6E 65 73 0D 0A 64 65 66 69 6E 69 6E    defines..definin
006BF0:  67 0D 0A 64 65 66 69 6E 69 74 69 6F 6E 0D 0A 64    g..definition..d
006C00:  65 66 69 6E 69 74 69 6F 6E 73 0D 0A 64 65 66 69    efinitions..defi
006C10:  6E 69 74 69 76 65 0D 0A 64 65 6C 61 79 0D 0A 64    nitive..delay..d
006C20:  65 6C 65 74 65 0D 0A 64 65 6C 65 74 65 64 0D 0A    elete..deleted..
006C30:  64 65 6C 65 74 65 73 0D 0A 64 65 6C 65 74 69 6E    deletes..deletin
006C40:  67 0D 0A 64 65 6C 69 67 68 74 0D 0A 64 65 6C 69    g..delight..deli
006C50:  6D 69 74 0D 0A 64 65 6C 69 6D 69 74 65 64 0D 0A    mit..delimited..
006C60:  64 65 6C 69 6D 69 74 65 72 0D 0A 64 65 6C 69 6D    delimiter..delim
006C70:  69 74 65 72 73 0D 0A 64 65 6C 69 6D 69 74 73 0D    iters..delimits.
006C80:  0A 64 65 6C 69 76 65 72 65 64 0D 0A 64 65 6D 61    .delivered..dema
006C90:  6E 64 69 6E 67 0D 0A 64 65 6D 6F 6E 73 74 72 61    nding..demonstra
006CA0:  74 65 64 0D 0A 64 65 6E 69 65 64 0D 0A 64 65 6E    ted..denied..den
006CB0:  69 65 73 0D 0A 64 65 6E 73 65 72 0D 0A 64 65 6E    ies..denser..den
006CC0:  73 69 74 79 0D 0A 64 65 6E 79 0D 0A 64 65 70 65    sity..deny..depe
006CD0:  6E 64 0D 0A 64 65 70 65 6E 64 65 6E 63 65 0D 0A    nd..dependence..
006CE0:  64 65 70 65 6E 64 65 6E 74 0D 0A 64 65 70 65 6E    dependent..depen
006CF0:  64 69 6E 67 0D 0A 64 65 70 65 6E 64 73 0D 0A 64    ding..depends..d
006D00:  64 0D 0A 63 6F 6D 6D 61 6E 64 73 0D 0A 63 6F 6D    d..commands..com
006D10:  6D 61 73 0D 0A 63 6F 6D 6D 65 6E 63 65 0D 0A 63    mas..commence..c
006D20:  6F 6D 6D 65 6E 63 65 73 0D 0A 63 6F 6D 6D 65 6E    ommences..commen
006D30:  63 69 6E 67 0D 0A 63 6F 6D 6D 65 6E 74 0D 0A 63    cing..comment..c
006D40:  6F 6D 6D 65 6E 74 73 0D 0A 63 6F 6D 6D 65 72 63    omments..commerc
006D50:  69 61 6C 0D 0A 63 6F 6D 6D 6F 6E 0D 0A 63 6F 6D    ial..common..com
006D60:  6D 6F 6E 6C 79 0D 0A 63 6F 6D 6D 75 6E 69 63 61    monly..communica
006D70:  74 69 6F 6E 73 0D 0A 63 6F 6D 70 61 63 74 0D 0A    tions..compact..
006D80:  63 6F 6D 70 61 72 65 0D 0A 63 6F 6D 70 61 72 65    compare..compare
006D90:  64 0D 0A 63 6F 6D 70 61 72 65 73 0D 0A 63 6F 6D    d..compares..com
006DA0:  70 61 72 69 6E 67 0D 0A 63 6F 6D 70 61 72 69 73    paring..comparis
006DB0:  6F 6E 0D 0A 63 6F 6D 70 61 72 69 73 6F 6E 73 0D    on..comparisons.
006DC0:  0A 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 0D 0A    .compatibility..
006DD0:  63 6F 6D 70 61 74 69 62 6C 65 0D 0A 63 6F 6D 70    compatible..comp
006DE0:  65 6C 6C 69 6E 67 0D 0A 63 6F 6D 70 69 6C 61 74    elling..compilat
006DF0:  69 6F 6E 0D 0A 63 6F 6D 70 69 6C 65 0D 0A 63 6F    ion..compile..co
006E00:  6D 70 69 6C 65 64 0D 0A 63 6F 6D 70 69 6C 65 72    mpiled..compiler
006E10:  0D 0A 63 6F 6D 70 69 6C 65 72 27 73 0D 0A 63 6F    ..compiler's..co
006E20:  6D 70 69 6C 65 72 73 0D 0A 63 6F 6D 70 69 6C 65    mpilers..compile
006E30:  73 0D 0A 63 6F 6D 70 69 6C 69 6E 67 0D 0A 63 6F    s..compiling..co
006E40:  6D 70 6C 65 6D 65 6E 74 0D 0A 63 6F 6D 70 6C 65    mplement..comple
006E50:  6D 65 6E 74 73 0D 0A 63 6F 6D 70 6C 65 74 65 0D    ments..complete.
006E60:  0A 63 6F 6D 70 6C 65 74 65 6C 79 0D 0A 63 6F 6D    .completely..com
006E70:  70 6C 65 74 65 6E 65 73 73 0D 0A 63 6F 6D 70 6C    pleteness..compl
006E80:  65 74 69 6F 6E 0D 0A 63 6F 6D 70 6C 65 78 0D 0A    etion..complex..
006E90:  63 6F 6D 70 6C 69 63 61 74 65 64 0D 0A 63 6F 6D    complicated..com
006EA0:  70 6C 69 63 61 74 69 6F 6E 0D 0A 63 6F 6D 70 6F    plication..compo
006EB0:  6E 65 6E 74 0D 0A 63 6F 6D 70 6F 6E 65 6E 74 73    nent..components
006EC0:  0D 0A 63 6F 6D 70 6F 73 65 64 0D 0A 63 6F 6D 70    ..composed..comp
006ED0:  6F 73 69 6E 67 0D 0A 63 6F 6D 70 6F 75 6E 64 0D    osing..compound.
006EE0:  0A 63 6F 6D 70 72 65 68 65 6E 73 69 76 65 0D 0A    .comprehensive..
006EF0:  63 6F 6D 70 72 65 73 73 0D 0A 63 6F 6D 70 72 65    compress..compre
006F00:  65 72 69 76 65 0D 0A 64 65 72 69 76 65 73 0D 0A    erive..derives..
006F10:  64 65 73 63 65 6E 64 69 6E 67 0D 0A 64 65 73 63    descending..desc
006F20:  72 69 62 65 0D 0A 64 65 73 63 72 69 62 65 64 0D    ribe..described.
006F30:  0A 64 65 73 63 72 69 62 65 73 0D 0A 64 65 73 63    .describes..desc
006F40:  72 69 62 69 6E 67 0D 0A 64 65 73 63 72 69 70 74    ribing..descript
006F50:  69 6F 6E 0D 0A 64 65 73 63 72 69 70 74 69 6F 6E    ion..description
006F60:  73 0D 0A 64 65 73 63 72 69 70 74 69 76 65 0D 0A    s..descriptive..
006F70:  64 65 73 63 72 69 70 74 6F 72 0D 0A 64 65 73 63    descriptor..desc
006F80:  72 69 70 74 6F 72 73 0D 0A 64 65 73 69 67 6E 0D    riptors..design.
006F90:  0A 64 65 73 69 67 6E 61 74 65 0D 0A 64 65 73 69    .designate..desi
006FA0:  67 6E 61 74 65 64 0D 0A 64 65 73 69 67 6E 61 74    gnated..designat
006FB0:  65 73 0D 0A 64 65 73 69 67 6E 61 74 69 6F 6E 0D    es..designation.
006FC0:  0A 64 65 73 69 67 6E 61 74 6F 72 0D 0A 64 65 73    .designator..des
006FD0:  69 67 6E 65 64 0D 0A 64 65 73 69 67 6E 69 6E 67    igned..designing
006FE0:  0D 0A 64 65 73 69 72 61 62 6C 65 0D 0A 64 65 73    ..desirable..des
006FF0:  69 72 65 64 0D 0A 64 65 73 69 72 65 73 0D 0A 64    ired..desires..d
007000:  65 73 74 69 6E 61 74 69 6F 6E 0D 0A 64 65 73 74    estination..dest
007010:  72 6F 79 0D 0A 64 65 74 61 69 6C 0D 0A 64 65 74    roy..detail..det
007020:  61 69 6C 73 0D 0A 64 65 74 65 63 74 0D 0A 64 65    ails..detect..de
007030:  74 65 63 74 65 64 0D 0A 64 65 74 65 72 6D 69 6E    tected..determin
007040:  65 0D 0A 64 65 74 65 72 6D 69 6E 65 64 0D 0A 64    e..determined..d
007050:  65 74 65 72 6D 69 6E 65 73 0D 0A 64 65 76 65 6C    etermines..devel
007060:  6F 70 0D 0A 64 65 76 65 6C 6F 70 65 64 0D 0A 64    op..developed..d
007070:  65 76 65 6C 6F 70 69 6E 67 0D 0A 64 65 76 65 6C    eveloping..devel
007080:  6F 70 6D 65 6E 74 0D 0A 64 65 76 69 63 65 0D 0A    opment..device..
007090:  64 65 76 69 63 65 73 0D 0A 64 65 76 6F 74 65 64    devices..devoted
0070A0:  0D 0A 64 69 61 67 6E 6F 73 74 69 63 0D 0A 64 69    ..diagnostic..di
0070B0:  61 67 72 61 6D 0D 0A 64 69 63 74 69 6F 6E 61 72    agram..dictionar
0070C0:  79 0D 0A 64 69 64 0D 0A 64 69 64 6E 27 74 0D 0A    y..did..didn't..
0070D0:  64 69 66 66 65 72 0D 0A 64 69 66 66 65 72 65 6E    differ..differen
0070E0:  63 65 0D 0A 64 69 66 66 65 72 65 6E 63 65 73 0D    ce..differences.
0070F0:  0A 64 69 66 66 65 72 65 6E 74 0D 0A 64 69 66 66    .different..diff
007100:  73 73 65 64 0D 0A 63 6F 6D 70 72 69 73 65 64 0D    ssed..comprised.
007110:  0A 63 6F 6D 70 72 69 73 69 6E 67 0D 0A 63 6F 6D    .comprising..com
007120:  70 75 74 65 72 0D 0A 63 6F 6D 70 75 74 65 72 73    puter..computers
007130:  0D 0A 63 6F 6E 63 61 74 65 6E 61 74 65 64 0D 0A    ..concatenated..
007140:  63 6F 6E 63 61 74 65 6E 61 74 69 6E 67 0D 0A 63    concatenating..c
007150:  6F 6E 63 65 69 76 65 64 0D 0A 63 6F 6E 63 65 70    onceived..concep
007160:  74 0D 0A 63 6F 6E 63 65 70 74 73 0D 0A 63 6F 6E    t..concepts..con
007170:  63 65 70 74 75 61 6C 0D 0A 63 6F 6E 63 65 72 6E    ceptual..concern
007180:  0D 0A 63 6F 6E 63 65 72 6E 65 64 0D 0A 63 6F 6E    ..concerned..con
007190:  63 65 72 6E 69 6E 67 0D 0A 63 6F 6E 63 65 72 6E    cerning..concern
0071A0:  73 0D 0A 63 6F 6E 63 65 72 74 0D 0A 63 6F 6E 63    s..concert..conc
0071B0:  69 73 65 0D 0A 63 6F 6E 63 69 73 65 6C 79 0D 0A    ise..concisely..
0071C0:  63 6F 6E 64 69 74 69 6F 6E 0D 0A 63 6F 6E 64 69    condition..condi
0071D0:  74 69 6F 6E 61 6C 0D 0A 63 6F 6E 64 69 74 69 6F    tional..conditio
0071E0:  6E 73 0D 0A 63 6F 6E 66 69 67 75 72 65 64 0D 0A    ns..configured..
0071F0:  63 6F 6E 66 6C 69 63 74 0D 0A 63 6F 6E 66 6F 72    conflict..confor
007200:  6D 0D 0A 63 6F 6E 66 6F 72 6D 69 6E 67 0D 0A 63    m..conforming..c
007210:  6F 6E 6A 75 6E 63 74 69 6F 6E 0D 0A 63 6F 6E 6E    onjunction..conn
007220:  65 63 74 65 64 0D 0A 63 6F 6E 73 65 63 75 74 69    ected..consecuti
007230:  76 65 0D 0A 63 6F 6E 73 65 72 76 65 73 0D 0A 63    ve..conserves..c
007240:  6F 6E 73 69 64 65 72 0D 0A 63 6F 6E 73 69 64 65    onsider..conside
007250:  72 61 62 6C 65 0D 0A 63 6F 6E 73 69 64 65 72 61    rable..considera
007260:  74 69 6F 6E 73 0D 0A 63 6F 6E 73 69 64 65 72 65    tions..considere
007270:  64 0D 0A 63 6F 6E 73 69 64 65 72 69 6E 67 0D 0A    d..considering..
007280:  63 6F 6E 73 69 64 65 72 73 0D 0A 63 6F 6E 73 69    considers..consi
007290:  73 74 0D 0A 63 6F 6E 73 69 73 74 65 6E 74 0D 0A    st..consistent..
0072A0:  63 6F 6E 73 69 73 74 69 6E 67 0D 0A 63 6F 6E 73    consisting..cons
0072B0:  69 73 74 73 0D 0A 63 6F 6E 73 6F 6C 65 0D 0A 63    ists..console..c
0072C0:  6F 6E 73 74 61 6E 74 0D 0A 63 6F 6E 73 74 61 6E    onstant..constan
0072D0:  74 6C 79 0D 0A 63 6F 6E 73 74 61 6E 74 73 0D 0A    tly..constants..
0072E0:  63 6F 6E 73 74 69 74 75 74 65 0D 0A 63 6F 6E 73    constitute..cons
0072F0:  74 69 74 75 74 65 73 0D 0A 63 6F 6E 73 74 69 74    titutes..constit
007300:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
007310:  06 00 01 00 02 09 52 E5 06 00 41 02 00 00 00 02    ......R...A.....
007320:  06 00 46 02 00 00 00 02 06 00 42 02 00 00 00 02    ..F.......B.....
007330:  06 00 47 02 00 00 00 02 06 00 43 02 00 00 00 02    ..G.......C.....
007340:  06 00 48 02 00 00 00 02 06 00 44 02 00 00 00 02    ..H.......D.....
007350:  06 00 49 02 00 00 00 02 06 00 45 02 00 00 00 02    ..I.......E.....
007360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0073F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
007400:  65 72 73 0D 0A 64 69 66 66 69 63 75 6C 74 0D 0A    ers..difficult..
007410:  64 69 66 66 69 63 75 6C 74 79 0D 0A 64 69 67 69    difficulty..digi
007420:  74 0D 0A 64 69 67 69 74 73 0D 0A 64 69 6C 65 6D    t..digits..dilem
007430:  6D 61 0D 0A 64 69 6D 65 6E 73 69 6F 6E 0D 0A 64    ma..dimension..d
007440:  69 6D 65 6E 73 69 6F 6E 73 0D 0A 64 69 72 65 63    imensions..direc
007450:  74 0D 0A 64 69 72 65 63 74 65 64 0D 0A 64 69 72    t..directed..dir
007460:  65 63 74 69 6E 67 0D 0A 64 69 72 65 63 74 69 6F    ecting..directio
007470:  6E 0D 0A 64 69 72 65 63 74 69 76 65 0D 0A 64 69    n..directive..di
007480:  72 65 63 74 69 76 65 73 0D 0A 64 69 72 65 63 74    rectives..direct
007490:  6C 79 0D 0A 64 69 72 65 63 74 6F 72 79 0D 0A 64    ly..directory..d
0074A0:  69 73 61 62 6C 65 0D 0A 64 69 73 61 62 6C 65 64    isable..disabled
0074B0:  0D 0A 64 69 73 61 62 6C 65 73 0D 0A 64 69 73 61    ..disables..disa
0074C0:  64 76 61 6E 74 61 67 65 0D 0A 64 69 73 61 70 70    dvantage..disapp
0074D0:  65 61 72 61 6E 63 65 0D 0A 64 69 73 63 61 72 64    earance..discard
0074E0:  0D 0A 64 69 73 63 61 72 64 65 64 0D 0A 64 69 73    ..discarded..dis
0074F0:  63 6F 6E 74 69 6E 75 65 0D 0A 64 69 73 63 6F 6E    continue..discon
007500:  74 69 6E 75 65 64 0D 0A 64 69 73 63 6F 75 6E 74    tinued..discount
007510:  73 0D 0A 64 69 73 63 6F 76 65 72 0D 0A 64 69 73    s..discover..dis
007520:  63 75 73 73 0D 0A 64 69 73 63 75 73 73 65 64 0D    cuss..discussed.
007530:  0A 64 69 73 63 75 73 73 69 6F 6E 0D 0A 64 69 73    .discussion..dis
007540:  6B 0D 0A 64 69 73 6B 65 74 74 65 0D 0A 64 69 73    k..diskette..dis
007550:  6B 65 74 74 65 73 0D 0A 64 69 73 6B 73 0D 0A 64    kettes..disks..d
007560:  69 73 70 61 74 63 68 65 73 0D 0A 64 69 73 70 6C    ispatches..displ
007570:  61 63 65 0D 0A 64 69 73 70 6C 61 63 65 6D 65 6E    ace..displacemen
007580:  74 0D 0A 64 69 73 70 6C 61 63 65 6D 65 6E 74 73    t..displacements
007590:  0D 0A 64 69 73 70 6C 61 79 0D 0A 64 69 73 70 6C    ..display..displ
0075A0:  61 79 61 62 6C 65 0D 0A 64 69 73 70 6C 61 79 65    ayable..displaye
0075B0:  64 0D 0A 64 69 73 70 6C 61 79 69 6E 67 0D 0A 64    d..displaying..d
0075C0:  69 73 70 6C 61 79 73 0D 0A 64 69 73 74 69 6E 67    isplays..disting
0075D0:  75 69 73 68 0D 0A 64 69 73 74 72 69 62 75 74 65    uish..distribute
0075E0:  64 0D 0A 64 69 73 74 72 69 62 75 74 69 6F 6E 0D    d..distribution.
0075F0:  0A 64 69 76 65 72 74 73 0D 0A 64 69 76 69 64 65    .diverts..divide
007600:  6C 0D 0A 66 61 69 6C 65 64 0D 0A 66 61 69 6C 69    l..failed..faili
007610:  6E 67 0D 0A 66 61 69 6C 73 0D 0A 66 61 69 6C 75    ng..fails..failu
007620:  72 65 0D 0A 66 61 69 72 6C 79 0D 0A 66 61 69 74    re..fairly..fait
007630:  68 66 75 6C 0D 0A 66 61 6C 6C 0D 0A 66 61 6C 6C    hful..fall..fall
007640:  69 6E 67 0D 0A 66 61 6C 6C 73 0D 0A 66 61 6C 73    ing..falls..fals
007650:  65 0D 0A 66 61 6D 69 6C 69 61 72 0D 0A 66 61 6D    e..familiar..fam
007660:  69 6C 69 61 72 69 74 79 0D 0A 66 61 72 0D 0A 66    iliarity..far..f
007670:  61 73 68 69 6F 6E 0D 0A 66 61 73 74 0D 0A 66 61    ashion..fast..fa
007680:  73 74 65 72 0D 0A 66 61 74 0D 0A 66 65 61 74 75    ster..fat..featu
007690:  72 65 0D 0A 66 65 61 74 75 72 65 73 0D 0A 66 65    re..features..fe
0076A0:  62 72 75 61 72 79 0D 0A 66 65 65 64 0D 0A 66 65    bruary..feed..fe
0076B0:  65 6C 0D 0A 66 65 65 74 0D 0A 66 65 6E 63 65 0D    el..feet..fence.
0076C0:  0A 66 65 74 63 68 0D 0A 66 65 74 63 68 65 64 0D    .fetch..fetched.
0076D0:  0A 66 65 74 63 68 65 73 0D 0A 66 65 77 0D 0A 66    .fetches..few..f
0076E0:  65 77 65 73 74 0D 0A 66 69 65 6C 64 0D 0A 66 69    ewest..field..fi
0076F0:  65 6C 64 73 0D 0A 66 69 66 74 68 0D 0A 66 69 67    elds..fifth..fig
007700:  75 72 65 0D 0A 66 69 6C 65 0D 0A 66 69 6C 65 27    ure..file..file'
007710:  73 0D 0A 66 69 6C 65 73 0D 0A 66 69 6C 6C 0D 0A    s..files..fill..
007720:  66 69 6C 6C 65 64 0D 0A 66 69 6C 6C 69 6E 67 0D    filled..filling.
007730:  0A 66 69 6C 6C 73 0D 0A 66 69 6E 61 6C 0D 0A 66    .fills..final..f
007740:  69 6E 61 6C 6C 79 0D 0A 66 69 6E 64 0D 0A 66 69    inally..find..fi
007750:  6E 64 69 6E 67 0D 0A 66 69 6E 64 69 6E 67 73 0D    nding..findings.
007760:  0A 66 69 6E 64 73 0D 0A 66 69 6E 65 0D 0A 66 69    .finds..fine..fi
007770:  6E 69 73 68 0D 0A 66 69 6E 69 73 68 65 64 0D 0A    nish..finished..
007780:  66 69 72 73 74 0D 0A 66 69 74 0D 0A 66 69 76 65    first..fit..five
007790:  0D 0A 66 69 78 0D 0A 66 69 78 65 64 0D 0A 66 69    ..fix..fixed..fi
0077A0:  78 65 73 0D 0A 66 6C 61 67 0D 0A 66 6C 61 67 67    xes..flag..flagg
0077B0:  69 6E 67 0D 0A 66 6C 61 67 73 0D 0A 66 6C 61 77    ing..flags..flaw
0077C0:  0D 0A 66 6C 65 78 69 62 69 6C 69 74 79 0D 0A 66    ..flexibility..f
0077D0:  6C 65 78 69 62 6C 65 0D 0A 66 6C 69 70 0D 0A 66    lexible..flip..f
0077E0:  6C 6F 70 0D 0A 66 6C 6F 70 70 79 0D 0A 66 6C 6F    lop..floppy..flo
0077F0:  77 0D 0A 66 6C 75 73 68 0D 0A 66 6C 75 73 68 65    w..flush..flushe
007800:  64 0D 0A 64 69 76 69 64 65 73 0D 0A 64 6F 0D 0A    d..divides..do..
007810:  64 6F 63 74 6F 72 0D 0A 64 6F 63 75 6D 65 6E 74    doctor..document
007820:  0D 0A 64 6F 63 75 6D 65 6E 74 61 72 79 0D 0A 64    ..documentary..d
007830:  6F 63 75 6D 65 6E 74 61 74 69 6F 6E 0D 0A 64 6F    ocumentation..do
007840:  63 75 6D 65 6E 74 65 64 0D 0A 64 6F 63 75 6D 65    cumented..docume
007850:  6E 74 73 0D 0A 64 6F 65 73 0D 0A 64 6F 65 73 6E    nts..does..doesn
007860:  27 74 0D 0A 64 6F 69 6E 67 0D 0A 64 6F 6C 6C 61    't..doing..dolla
007870:  72 0D 0A 64 6F 6D 61 69 6E 0D 0A 64 6F 6E 65 0D    r..domain..done.
007880:  0A 64 6F 75 62 6C 65 0D 0A 64 6F 75 62 6C 65 64    .double..doubled
007890:  0D 0A 64 6F 75 62 6C 65 73 0D 0A 64 6F 75 62 74    ..doubles..doubt
0078A0:  0D 0A 64 6F 75 62 74 66 75 6C 0D 0A 64 6F 77 6E    ..doubtful..down
0078B0:  0D 0A 64 72 61 77 62 61 63 6B 0D 0A 64 72 69 76    ..drawback..driv
0078C0:  65 0D 0A 64 72 69 76 65 72 0D 0A 64 72 69 76 65    e..driver..drive
0078D0:  72 73 0D 0A 64 72 69 76 65 73 0D 0A 64 72 6F 70    rs..drives..drop
0078E0:  0D 0A 64 72 6F 70 70 65 64 0D 0A 64 72 6F 70 73    ..dropped..drops
0078F0:  0D 0A 64 75 62 62 65 64 0D 0A 64 75 6D 6D 79 0D    ..dubbed..dummy.
007900:  0A 64 75 6D 70 0D 0A 64 75 6D 70 65 64 0D 0A 64    .dump..dumped..d
007910:  75 70 6C 69 63 61 74 65 0D 0A 64 75 70 6C 69 63    uplicate..duplic
007920:  61 74 65 64 0D 0A 64 75 70 6C 69 63 61 74 65 73    ated..duplicates
007930:  0D 0A 64 75 72 69 6E 67 0D 0A 64 75 74 79 0D 0A    ..during..duty..
007940:  64 79 6E 61 6D 69 63 0D 0A 64 79 6E 61 6D 69 63    dynamic..dynamic
007950:  61 6C 6C 79 0D 0A 65 0D 0A 65 61 63 68 0D 0A 65    ally..e..each..e
007960:  61 72 6C 69 65 72 0D 0A 65 61 72 6C 79 0D 0A 65    arlier..early..e
007970:  61 73 65 0D 0A 65 61 73 69 65 72 0D 0A 65 61 73    ase..easier..eas
007980:  69 6C 79 0D 0A 65 61 73 79 0D 0A 65 63 68 6F 65    ily..easy..echoe
007990:  64 0D 0A 65 63 68 6F 65 73 0D 0A 65 63 68 6F 69    d..echoes..echoi
0079A0:  6E 67 0D 0A 65 64 67 65 0D 0A 65 64 69 74 0D 0A    ng..edge..edit..
0079B0:  65 64 69 74 65 64 0D 0A 65 64 69 74 69 6E 67 0D    edited..editing.
0079C0:  0A 65 64 69 74 6F 72 0D 0A 65 64 69 74 6F 72 73    .editor..editors
0079D0:  0D 0A 65 66 66 65 63 74 0D 0A 65 66 66 65 63 74    ..effect..effect
0079E0:  69 76 65 0D 0A 65 66 66 65 63 74 69 76 65 6C 79    ive..effectively
0079F0:  0D 0A 65 66 66 65 63 74 73 0D 0A 65 66 66 69 63    ..effects..effic
007A00:  64 0D 0A 66 6C 75 73 68 65 73 0D 0A 66 6C 75 73    d..flushes..flus
007A10:  68 69 6E 67 0D 0A 66 6F 6C 64 65 64 0D 0A 66 6F    hing..folded..fo
007A20:  6C 64 73 0D 0A 66 6F 6C 6C 6F 77 0D 0A 66 6F 6C    lds..follow..fol
007A30:  6C 6F 77 65 64 0D 0A 66 6F 6C 6C 6F 77 69 6E 67    lowed..following
007A40:  0D 0A 66 6F 6C 6C 6F 77 73 0D 0A 66 6F 6F 6C 0D    ..follows..fool.
007A50:  0A 66 6F 6F 6C 70 72 6F 6F 66 0D 0A 66 6F 6F 74    .foolproof..foot
007A60:  0D 0A 66 6F 72 0D 0A 66 6F 72 63 65 0D 0A 66 6F    ..for..force..fo
007A70:  72 63 65 64 0D 0A 66 6F 72 63 65 73 0D 0A 66 6F    rced..forces..fo
007A80:  72 63 69 6E 67 0D 0A 66 6F 72 65 69 67 6E 0D 0A    rcing..foreign..
007A90:  66 6F 72 67 65 74 0D 0A 66 6F 72 6D 0D 0A 66 6F    forget..form..fo
007AA0:  72 6D 61 74 0D 0A 66 6F 72 6D 61 74 73 0D 0A 66    rmat..formats..f
007AB0:  6F 72 6D 61 74 74 65 64 0D 0A 66 6F 72 6D 61 74    ormatted..format
007AC0:  74 65 72 0D 0A 66 6F 72 6D 61 74 74 65 72 73 0D    ter..formatters.
007AD0:  0A 66 6F 72 6D 61 74 74 69 6E 67 0D 0A 66 6F 72    .formatting..for
007AE0:  6D 65 64 0D 0A 66 6F 72 6D 65 72 0D 0A 66 6F 72    med..former..for
007AF0:  6D 69 6E 67 0D 0A 66 6F 72 6D 73 0D 0A 66 6F 72    ming..forms..for
007B00:  77 61 72 64 0D 0A 66 6F 75 6E 64 0D 0A 66 6F 75    ward..found..fou
007B10:  6E 64 61 74 69 6F 6E 0D 0A 66 6F 75 6E 74 61 69    ndation..fountai
007B20:  6E 0D 0A 66 6F 75 72 0D 0A 66 6F 75 72 74 68 0D    n..four..fourth.
007B30:  0A 66 72 65 65 0D 0A 66 72 65 65 64 0D 0A 66 72    .free..freed..fr
007B40:  65 65 69 6E 67 0D 0A 66 72 65 65 6C 79 0D 0A 66    eeing..freely..f
007B50:  72 65 71 75 65 6E 74 6C 79 0D 0A 66 72 65 73 68    requently..fresh
007B60:  0D 0A 66 72 69 65 6E 64 6C 79 0D 0A 66 72 69 6C    ..friendly..fril
007B70:  6C 73 0D 0A 66 72 6F 67 0D 0A 66 72 6F 6D 0D 0A    ls..frog..from..
007B80:  66 72 6F 6E 74 0D 0A 66 75 6C 6C 0D 0A 66 75 6C    front..full..ful
007B90:  6C 79 0D 0A 66 75 6E 63 74 69 6F 6E 0D 0A 66 75    ly..function..fu
007BA0:  6E 63 74 69 6F 6E 61 6C 0D 0A 66 75 6E 63 74 69    nctional..functi
007BB0:  6F 6E 73 0D 0A 66 75 72 74 68 65 72 0D 0A 66 75    ons..further..fu
007BC0:  74 75 72 65 0D 0A 67 0D 0A 67 61 70 0D 0A 67 61    ture..g..gap..ga
007BD0:  70 73 0D 0A 67 61 72 62 61 67 65 0D 0A 67 61 72    ps..garbage..gar
007BE0:  62 6C 65 64 0D 0A 67 61 74 68 65 72 65 64 0D 0A    bled..gathered..
007BF0:  67 61 74 68 65 72 69 6E 67 0D 0A 67 65 6E 65 72    gathering..gener
007C00:  69 65 6E 63 79 0D 0A 65 66 66 69 63 69 65 6E 74    iency..efficient
007C10:  0D 0A 65 66 66 6F 72 74 0D 0A 65 69 67 68 74 0D    ..effort..eight.
007C20:  0A 65 69 74 68 65 72 0D 0A 65 6C 65 6D 65 6E 74    .either..element
007C30:  0D 0A 65 6C 65 6D 65 6E 74 73 0D 0A 65 6C 65 76    ..elements..elev
007C40:  65 6E 0D 0A 65 6C 69 6D 69 6E 61 74 65 0D 0A 65    en..eliminate..e
007C50:  6C 69 6D 69 6E 61 74 65 64 0D 0A 65 6C 69 6D 69    liminated..elimi
007C60:  6E 61 74 65 73 0D 0A 65 6C 69 6D 69 6E 61 74 69    nates..eliminati
007C70:  6E 67 0D 0A 65 6C 6C 69 70 73 69 73 0D 0A 65 6C    ng..ellipsis..el
007C80:  73 65 0D 0A 65 6D 62 65 64 64 65 64 0D 0A 65 6D    se..embedded..em
007C90:  70 68 61 73 69 73 0D 0A 65 6D 70 68 61 73 69 7A    phasis..emphasiz
007CA0:  65 73 0D 0A 65 6D 70 6C 6F 79 0D 0A 65 6D 70 6C    es..employ..empl
007CB0:  6F 79 65 64 0D 0A 65 6D 70 6C 6F 79 73 0D 0A 65    oyed..employs..e
007CC0:  6D 70 74 79 0D 0A 65 6E 61 62 6C 65 0D 0A 65 6E    mpty..enable..en
007CD0:  61 62 6C 65 64 0D 0A 65 6E 61 62 6C 65 73 0D 0A    abled..enables..
007CE0:  65 6E 61 62 6C 69 6E 67 0D 0A 65 6E 63 6C 6F 73    enabling..enclos
007CF0:  65 0D 0A 65 6E 63 6C 6F 73 65 64 0D 0A 65 6E 63    e..enclosed..enc
007D00:  6F 75 6E 74 65 72 0D 0A 65 6E 63 6F 75 6E 74 65    ounter..encounte
007D10:  72 65 64 0D 0A 65 6E 63 6F 75 6E 74 65 72 73 0D    red..encounters.
007D20:  0A 65 6E 63 6F 75 72 61 67 65 64 0D 0A 65 6E 63    .encouraged..enc
007D30:  6F 75 72 61 67 65 6D 65 6E 74 0D 0A 65 6E 63 72    ouragement..encr
007D40:  79 70 74 69 6F 6E 0D 0A 65 6E 64 0D 0A 65 6E 64    yption..end..end
007D50:  2D 6F 66 2D 66 69 6C 65 0D 0A 65 6E 64 65 64 0D    -of-file..ended.
007D60:  0A 65 6E 64 73 0D 0A 65 6E 66 6F 72 63 65 0D 0A    .ends..enforce..
007D70:  65 6E 67 69 6E 65 65 72 69 6E 67 0D 0A 65 6E 68    engineering..enh
007D80:  61 6E 63 65 64 0D 0A 65 6E 68 61 6E 63 65 6D 65    anced..enhanceme
007D90:  6E 74 0D 0A 65 6E 68 61 6E 63 65 6D 65 6E 74 73    nt..enhancements
007DA0:  0D 0A 65 6E 68 61 6E 63 65 73 0D 0A 65 6E 6C 61    ..enhances..enla
007DB0:  72 67 65 0D 0A 65 6E 6F 75 67 68 0D 0A 65 6E 73    rge..enough..ens
007DC0:  75 72 65 0D 0A 65 6E 74 65 72 0D 0A 65 6E 74 65    ure..enter..ente
007DD0:  72 65 64 0D 0A 65 6E 74 65 72 69 6E 67 0D 0A 65    red..entering..e
007DE0:  6E 74 68 75 73 69 61 73 74 69 63 0D 0A 65 6E 74    nthusiastic..ent
007DF0:  69 72 65 0D 0A 65 6E 74 69 72 65 6C 79 0D 0A 65    ire..entirely..e
007E00:  61 6C 0D 0A 67 65 6E 65 72 61 6C 6C 79 0D 0A 67    al..generally..g
007E10:  65 6E 65 72 61 74 65 0D 0A 67 65 6E 65 72 61 74    enerate..generat
007E20:  65 64 0D 0A 67 65 6E 65 72 61 74 65 73 0D 0A 67    ed..generates..g
007E30:  65 6E 65 72 61 74 69 6E 67 0D 0A 67 65 6E 65 72    enerating..gener
007E40:  61 74 69 6F 6E 0D 0A 67 65 6E 65 72 61 74 69 76    ation..generativ
007E50:  65 0D 0A 67 65 6E 65 72 69 63 0D 0A 67 65 74 0D    e..generic..get.
007E60:  0A 67 65 74 73 0D 0A 67 65 74 74 69 6E 67 0D 0A    .gets..getting..
007E70:  67 69 76 65 0D 0A 67 69 76 65 6E 0D 0A 67 69 76    give..given..giv
007E80:  65 73 0D 0A 67 69 76 69 6E 67 0D 0A 67 6C 6F 62    es..giving..glob
007E90:  61 6C 0D 0A 67 6F 0D 0A 67 6F 61 6C 0D 0A 67 6F    al..go..goal..go
007EA0:  65 73 0D 0A 67 6F 69 6E 67 0D 0A 67 6F 6E 65 0D    es..going..gone.
007EB0:  0A 67 6F 6F 64 0D 0A 67 72 61 63 65 66 75 6C 6C    .good..gracefull
007EC0:  79 0D 0A 67 72 61 63 69 6F 75 73 6C 79 0D 0A 67    y..graciously..g
007ED0:  72 61 76 65 0D 0A 67 72 65 61 74 0D 0A 67 72 65    rave..great..gre
007EE0:  61 74 65 72 0D 0A 67 72 65 61 74 6C 79 0D 0A 67    ater..greatly..g
007EF0:  72 6F 75 70 0D 0A 67 72 6F 75 70 73 0D 0A 67 72    roup..groups..gr
007F00:  6F 77 0D 0A 67 72 6F 77 69 6E 67 0D 0A 67 72 6F    ow..growing..gro
007F10:  77 73 0D 0A 67 75 61 72 61 6E 74 65 65 0D 0A 67    ws..guarantee..g
007F20:  75 61 72 61 6E 74 65 65 64 0D 0A 67 75 61 72 61    uaranteed..guara
007F30:  6E 74 65 65 73 0D 0A 67 75 69 64 61 6E 63 65 0D    ntees..guidance.
007F40:  0A 67 75 69 64 65 0D 0A 67 75 69 6E 65 61 0D 0A    .guide..guinea..
007F50:  67 75 6C 70 0D 0A 68 0D 0A 68 61 64 0D 0A 68 61    gulp..h..had..ha
007F60:  6C 66 0D 0A 68 61 6C 6C 0D 0A 68 61 6C 74 0D 0A    lf..hall..halt..
007F70:  68 61 6C 74 65 64 0D 0A 68 61 6C 74 69 6E 67 0D    halted..halting.
007F80:  0A 68 61 6C 74 73 0D 0A 68 61 6E 64 0D 0A 68 61    .halts..hand..ha
007F90:  6E 64 62 6F 6F 6B 0D 0A 68 61 6E 64 6C 65 0D 0A    ndbook..handle..
007FA0:  68 61 6E 64 6C 65 64 0D 0A 68 61 6E 64 6C 65 73    handled..handles
007FB0:  0D 0A 68 61 6E 64 6C 69 6E 67 0D 0A 68 61 6E 64    ..handling..hand
007FC0:  79 0D 0A 68 61 70 70 65 6E 0D 0A 68 61 70 70 65    y..happen..happe
007FD0:  6E 69 6E 67 73 0D 0A 68 61 70 70 65 6E 73 0D 0A    nings..happens..
007FE0:  68 61 70 70 79 0D 0A 68 61 72 64 0D 0A 68 61 72    happy..hard..har
007FF0:  64 65 72 0D 0A 68 61 72 64 77 61 72 65 0D 0A 68    der..hardware..h
008000:  6E 74 69 74 6C 65 64 0D 0A 65 6E 74 72 69 65 73    ntitled..entries
008010:  0D 0A 65 6E 74 72 79 0D 0A 65 6E 76 65 6C 6F 70    ..entry..envelop
008020:  65 73 0D 0A 65 6E 76 69 72 6F 6E 6D 65 6E 74 0D    es..environment.
008030:  0A 65 6E 76 69 72 6F 6E 6D 65 6E 74 73 0D 0A 65    .environments..e
008040:  71 75 61 6C 0D 0A 65 71 75 61 6C 69 74 79 0D 0A    qual..equality..
008050:  65 71 75 61 6C 69 7A 65 64 0D 0A 65 71 75 61 6C    equalized..equal
008060:  6C 79 0D 0A 65 71 75 61 74 65 0D 0A 65 71 75 61    ly..equate..equa
008070:  74 65 64 0D 0A 65 71 75 61 74 65 73 0D 0A 65 71    ted..equates..eq
008080:  75 69 76 61 6C 65 6E 74 0D 0A 65 72 61 73 65 64    uivalent..erased
008090:  0D 0A 65 72 61 73 75 72 65 0D 0A 65 72 72 6F 6E    ..erasure..erron
0080A0:  65 6F 75 73 0D 0A 65 72 72 6F 72 0D 0A 65 72 72    eous..error..err
0080B0:  6F 72 63 6F 64 65 0D 0A 65 72 72 6F 72 73 0D 0A    orcode..errors..
0080C0:  65 73 63 61 70 65 0D 0A 65 73 63 61 70 65 64 0D    escape..escaped.
0080D0:  0A 65 73 70 65 63 69 61 6C 6C 79 0D 0A 65 73 73    .especially..ess
0080E0:  65 6E 74 69 61 6C 6C 79 0D 0A 65 73 74 61 62 6C    entially..establ
0080F0:  69 73 68 0D 0A 65 73 74 61 62 6C 69 73 68 65 73    ish..establishes
008100:  0D 0A 65 73 74 61 62 6C 69 73 68 69 6E 67 0D 0A    ..establishing..
008110:  65 73 74 69 6D 61 74 65 0D 0A 65 74 63 0D 0A 65    estimate..etc..e
008120:  76 61 6C 75 61 74 65 0D 0A 65 76 61 6C 75 61 74    valuate..evaluat
008130:  65 64 0D 0A 65 76 65 6E 0D 0A 65 76 65 6E 74 75    ed..even..eventu
008140:  61 6C 6C 79 0D 0A 65 76 65 72 0D 0A 65 76 65 72    ally..ever..ever
008150:  79 0D 0A 65 76 65 72 79 6F 6E 65 0D 0A 65 76 65    y..everyone..eve
008160:  72 79 74 68 69 6E 67 0D 0A 65 78 61 63 74 6C 79    rything..exactly
008170:  0D 0A 65 78 61 6D 69 6E 61 74 69 6F 6E 0D 0A 65    ..examination..e
008180:  78 61 6D 69 6E 69 6E 67 0D 0A 65 78 61 6D 70 6C    xamining..exampl
008190:  65 0D 0A 65 78 61 6D 70 6C 65 73 0D 0A 65 78 63    e..examples..exc
0081A0:  65 6C 6C 65 6E 74 0D 0A 65 78 63 65 70 74 0D 0A    ellent..except..
0081B0:  65 78 63 65 70 74 69 6F 6E 0D 0A 65 78 63 65 70    exception..excep
0081C0:  74 69 6F 6E 61 6C 0D 0A 65 78 63 65 70 74 69 6F    tional..exceptio
0081D0:  6E 73 0D 0A 65 78 63 65 73 73 0D 0A 65 78 63 68    ns..excess..exch
0081E0:  61 6E 67 65 0D 0A 65 78 63 68 61 6E 67 65 64 0D    ange..exchanged.
0081F0:  0A 65 78 63 68 61 6E 67 65 73 0D 0A 65 78 63 6C    .exchanges..excl
008200:  61 72 6D 6F 6E 79 0D 0A 68 61 73 0D 0A 68 61 73    armony..has..has
008210:  68 0D 0A 68 61 76 65 0D 0A 68 61 76 69 6E 67 0D    h..have..having.
008220:  0A 68 65 0D 0A 68 65 61 64 0D 0A 68 65 61 64 65    .he..head..heade
008230:  72 0D 0A 68 65 61 64 65 72 73 0D 0A 68 65 61 64    r..headers..head
008240:  69 6E 67 0D 0A 68 65 61 64 69 6E 67 73 0D 0A 68    ing..headings..h
008250:  65 61 72 0D 0A 68 65 61 72 73 0D 0A 68 65 6C 64    ear..hears..held
008260:  0D 0A 68 65 6C 70 0D 0A 68 65 6C 70 66 75 6C 0D    ..help..helpful.
008270:  0A 68 65 6C 70 73 0D 0A 68 65 6E 63 65 0D 0A 68    .helps..hence..h
008280:  65 72 65 0D 0A 68 65 72 65 74 6F 66 6F 72 65 0D    ere..heretofore.
008290:  0A 68 65 78 0D 0A 68 65 78 61 64 65 63 69 6D 61    .hex..hexadecima
0082A0:  6C 0D 0A 68 69 67 68 0D 0A 68 69 67 68 2D 6C 65    l..high..high-le
0082B0:  76 65 6C 0D 0A 68 69 67 68 2D 6F 72 64 65 72 0D    vel..high-order.
0082C0:  0A 68 69 67 68 65 72 0D 0A 68 69 67 68 65 73 74    .higher..highest
0082D0:  0D 0A 68 69 67 68 6C 79 0D 0A 68 69 6D 0D 0A 68    ..highly..him..h
0082E0:  69 73 0D 0A 68 69 74 73 0D 0A 68 69 74 74 69 6E    is..hits..hittin
0082F0:  67 0D 0A 68 6F 62 62 69 65 73 0D 0A 68 6F 6C 64    g..hobbies..hold
008300:  0D 0A 68 6F 6C 64 69 6E 67 0D 0A 68 6F 6C 64 73    ..holding..holds
008310:  0D 0A 68 6F 6D 65 0D 0A 68 6F 6E 6F 72 0D 0A 68    ..home..honor..h
008320:  6F 6E 6F 72 65 64 0D 0A 68 6F 6E 6F 72 69 6E 67    onored..honoring
008330:  0D 0A 68 6F 6F 6B 65 64 0D 0A 68 6F 70 65 0D 0A    ..hooked..hope..
008340:  68 6F 72 69 7A 6F 6E 0D 0A 68 6F 72 69 7A 6F 6E    horizon..horizon
008350:  74 61 6C 0D 0A 68 6F 73 74 0D 0A 68 6F 75 72 73    tal..host..hours
008360:  0D 0A 68 6F 75 73 65 6B 65 65 70 69 6E 67 0D 0A    ..housekeeping..
008370:  68 6F 77 0D 0A 68 6F 77 65 76 65 72 0D 0A 68 75    how..however..hu
008380:  6D 61 6E 73 0D 0A 68 79 62 72 69 64 0D 0A 68 79    mans..hybrid..hy
008390:  70 68 65 6E 0D 0A 68 79 70 68 65 6E 73 0D 0A 69    phen..hyphens..i
0083A0:  0D 0A 69 27 6C 6C 0D 0A 69 64 65 61 0D 0A 69 64    ..i'll..idea..id
0083B0:  65 61 6C 0D 0A 69 64 65 61 73 0D 0A 69 64 65 6E    eal..ideas..iden
0083C0:  74 69 63 61 6C 0D 0A 69 64 65 6E 74 69 66 69 63    tical..identific
0083D0:  61 74 69 6F 6E 0D 0A 69 64 65 6E 74 69 66 69 65    ation..identifie
0083E0:  64 0D 0A 69 64 65 6E 74 69 66 69 65 73 0D 0A 69    d..identifies..i
0083F0:  64 65 6E 74 69 66 79 0D 0A 69 66 0D 0A 69 67 6E    dentify..if..ign
008400:  75 64 65 0D 0A 65 78 63 6C 75 64 65 64 0D 0A 65    ude..excluded..e
008410:  78 63 6C 75 73 69 76 65 0D 0A 65 78 65 63 75 74    xclusive..execut
008420:  61 62 6C 65 0D 0A 65 78 65 63 75 74 65 0D 0A 65    able..execute..e
008430:  78 65 63 75 74 65 64 0D 0A 65 78 65 63 75 74 65    xecuted..execute
008440:  73 0D 0A 65 78 65 63 75 74 69 6E 67 0D 0A 65 78    s..executing..ex
008450:  65 63 75 74 69 6F 6E 0D 0A 65 78 68 61 75 73 74    ecution..exhaust
008460:  65 64 0D 0A 65 78 69 73 74 0D 0A 65 78 69 73 74    ed..exist..exist
008470:  65 64 0D 0A 65 78 69 73 74 65 6E 63 65 0D 0A 65    ed..existence..e
008480:  78 69 73 74 69 6E 67 0D 0A 65 78 69 73 74 73 0D    xisting..exists.
008490:  0A 65 78 69 74 0D 0A 65 78 69 74 65 64 0D 0A 65    .exit..exited..e
0084A0:  78 69 74 69 6E 67 0D 0A 65 78 70 61 6E 64 0D 0A    xiting..expand..
0084B0:  65 78 70 61 6E 64 65 64 0D 0A 65 78 70 61 6E 64    expanded..expand
0084C0:  73 0D 0A 65 78 70 61 6E 73 69 6F 6E 0D 0A 65 78    s..expansion..ex
0084D0:  70 65 63 74 0D 0A 65 78 70 65 63 74 65 64 0D 0A    pect..expected..
0084E0:  65 78 70 65 63 74 69 6E 67 0D 0A 65 78 70 65 63    expecting..expec
0084F0:  74 73 0D 0A 65 78 70 65 6E 73 65 0D 0A 65 78 70    ts..expense..exp
008500:  65 72 69 65 6E 63 65 0D 0A 65 78 70 65 72 69 65    erience..experie
008510:  6E 63 65 64 0D 0A 65 78 70 6C 61 69 6E 65 64 0D    nced..explained.
008520:  0A 65 78 70 6C 61 69 6E 73 0D 0A 65 78 70 6C 69    .explains..expli
008530:  63 69 74 0D 0A 65 78 70 6C 69 63 69 74 6C 79 0D    cit..explicitly.
008540:  0A 65 78 70 6C 6F 69 74 0D 0A 65 78 70 72 65 73    .exploit..expres
008550:  73 0D 0A 65 78 70 72 65 73 73 65 64 0D 0A 65 78    s..expressed..ex
008560:  70 72 65 73 73 69 6F 6E 0D 0A 65 78 70 72 65 73    pression..expres
008570:  73 69 6F 6E 73 0D 0A 65 78 74 65 6E 64 0D 0A 65    sions..extend..e
008580:  78 74 65 6E 64 65 64 0D 0A 65 78 74 65 6E 64 73    xtended..extends
008590:  0D 0A 65 78 74 65 6E 73 69 6F 6E 0D 0A 65 78 74    ..extension..ext
0085A0:  65 6E 73 69 6F 6E 73 0D 0A 65 78 74 65 6E 73 69    ensions..extensi
0085B0:  76 65 0D 0A 65 78 74 65 6E 74 0D 0A 65 78 74 65    ve..extent..exte
0085C0:  72 6E 61 6C 0D 0A 65 78 74 72 61 0D 0A 66 0D 0A    rnal..extra..f..
0085D0:  66 61 63 69 6C 69 74 61 74 65 0D 0A 66 61 63 69    facilitate..faci
0085E0:  6C 69 74 69 65 73 0D 0A 66 61 63 74 0D 0A 66 61    lities..fact..fa
0085F0:  63 74 6F 72 0D 0A 66 61 63 74 73 0D 0A 66 61 69    ctor..facts..fai
008600:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
008610:  07 00 01 00 02 09 52 E5 07 00 41 02 00 00 00 02    ......R...A.....
008620:  07 00 46 02 00 00 00 02 07 00 42 02 00 00 00 02    ..F.......B.....
008630:  07 00 47 02 00 00 00 02 07 00 43 02 00 00 00 02    ..G.......C.....
008640:  07 00 48 02 00 00 00 02 07 00 44 02 00 00 00 02    ..H.......D.....
008650:  07 00 49 02 00 00 00 02 07 00 45 02 00 00 00 02    ..I.......E.....
008660:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008670:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008680:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008690:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0086F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
008700:  6F 72 65 0D 0A 69 67 6E 6F 72 65 64 0D 0A 69 67    ore..ignored..ig
008710:  6E 6F 72 65 73 0D 0A 69 6C 6C 65 67 61 6C 0D 0A    nores..illegal..
008720:  69 6C 6C 75 73 74 72 61 74 65 0D 0A 69 6C 6C 75    illustrate..illu
008730:  73 74 72 61 74 65 64 0D 0A 69 6C 6C 75 73 74 72    strated..illustr
008740:  61 74 65 73 0D 0A 69 6D 61 67 65 0D 0A 69 6D 61    ates..image..ima
008750:  67 69 6E 61 74 69 6F 6E 0D 0A 69 6D 61 67 69 6E    gination..imagin
008760:  65 0D 0A 69 6D 6D 61 74 65 72 69 61 6C 0D 0A 69    e..immaterial..i
008770:  6D 6D 65 64 69 61 74 65 0D 0A 69 6D 6D 65 64 69    mmediate..immedi
008780:  61 74 65 6C 79 0D 0A 69 6D 70 61 63 74 0D 0A 69    ately..impact..i
008790:  6D 70 6C 65 6D 65 6E 74 0D 0A 69 6D 70 6C 65 6D    mplement..implem
0087A0:  65 6E 74 61 74 69 6F 6E 0D 0A 69 6D 70 6C 65 6D    entation..implem
0087B0:  65 6E 74 61 74 69 6F 6E 73 0D 0A 69 6D 70 6C 65    entations..imple
0087C0:  6D 65 6E 74 65 64 0D 0A 69 6D 70 6C 65 6D 65 6E    mented..implemen
0087D0:  74 69 6E 67 0D 0A 69 6D 70 6C 65 6D 65 6E 74 73    ting..implements
0087E0:  0D 0A 69 6D 70 6C 69 63 69 74 0D 0A 69 6D 70 6C    ..implicit..impl
0087F0:  69 63 69 74 65 6C 79 0D 0A 69 6D 70 6C 69 65 64    icitely..implied
008800:  0D 0A 69 6D 70 6C 69 65 73 0D 0A 69 6D 70 6C 79    ..implies..imply
008810:  0D 0A 69 6D 70 6F 72 74 61 6E 63 65 0D 0A 69 6D    ..importance..im
008820:  70 6F 72 74 61 6E 74 0D 0A 69 6D 70 6F 73 65 0D    portant..impose.
008830:  0A 69 6D 70 6F 73 65 64 0D 0A 69 6D 70 6F 73 73    .imposed..imposs
008840:  69 62 6C 65 0D 0A 69 6D 70 72 6F 76 65 0D 0A 69    ible..improve..i
008850:  6D 70 72 6F 76 65 64 0D 0A 69 6D 70 72 6F 76 65    mproved..improve
008860:  6D 65 6E 74 0D 0A 69 6D 70 72 6F 76 65 6D 65 6E    ment..improvemen
008870:  74 73 0D 0A 69 6E 0D 0A 69 6E 61 70 70 72 6F 70    ts..in..inapprop
008880:  72 69 61 74 65 0D 0A 69 6E 63 6C 75 64 65 0D 0A    riate..include..
008890:  69 6E 63 6C 75 64 65 64 0D 0A 69 6E 63 6C 75 64    included..includ
0088A0:  65 73 0D 0A 69 6E 63 6C 75 64 69 6E 67 0D 0A 69    es..including..i
0088B0:  6E 63 6C 75 73 69 6F 6E 0D 0A 69 6E 63 6C 75 73    nclusion..inclus
0088C0:  69 76 65 0D 0A 69 6E 63 6F 6D 69 6E 67 0D 0A 69    ive..incoming..i
0088D0:  6E 63 6F 6E 73 69 73 74 65 6E 74 0D 0A 69 6E 63    nconsistent..inc
0088E0:  72 65 61 73 65 0D 0A 69 6E 63 72 65 61 73 65 64    rease..increased
0088F0:  0D 0A 69 6E 63 72 65 61 73 69 6E 67 0D 0A 69 6E    ..increasing..in
008900:  6B 61 67 65 0D 0A 6C 69 6E 6B 65 64 0D 0A 6C 69    kage..linked..li
008910:  6E 6B 69 6E 67 0D 0A 6C 69 6E 6B 73 0D 0A 6C 69    nking..links..li
008920:  73 70 0D 0A 6C 69 73 74 0D 0A 6C 69 73 74 65 64    sp..list..listed
008930:  0D 0A 6C 69 73 74 69 6E 67 0D 0A 6C 69 73 74 69    ..listing..listi
008940:  6E 67 73 0D 0A 6C 69 73 74 73 0D 0A 6C 69 74 65    ngs..lists..lite
008950:  72 61 6C 0D 0A 6C 69 74 65 72 61 6C 6C 79 0D 0A    ral..literally..
008960:  6C 69 74 65 72 61 6C 73 0D 0A 6C 69 74 74 6C 65    literals..little
008970:  0D 0A 6C 6F 61 64 0D 0A 6C 6F 61 64 65 64 0D 0A    ..load..loaded..
008980:  6C 6F 61 64 65 72 0D 0A 6C 6F 61 64 65 72 73 0D    loader..loaders.
008990:  0A 6C 6F 61 64 69 6E 67 0D 0A 6C 6F 61 64 73 0D    .loading..loads.
0089A0:  0A 6C 6F 63 61 6C 0D 0A 6C 6F 63 61 74 65 0D 0A    .local..locate..
0089B0:  6C 6F 63 61 74 65 64 0D 0A 6C 6F 63 61 74 65 73    located..locates
0089C0:  0D 0A 6C 6F 63 61 74 69 6E 67 0D 0A 6C 6F 63 61    ..locating..loca
0089D0:  74 69 6F 6E 0D 0A 6C 6F 63 61 74 69 6F 6E 73 0D    tion..locations.
0089E0:  0A 6C 6F 67 69 63 0D 0A 6C 6F 67 69 63 61 6C 0D    .logic..logical.
0089F0:  0A 6C 6F 67 69 63 61 6C 6C 79 0D 0A 6C 6F 6E 67    .logically..long
008A00:  0D 0A 6C 6F 6E 67 65 72 0D 0A 6C 6F 6F 6B 0D 0A    ..longer..look..
008A10:  6C 6F 6F 6B 65 64 0D 0A 6C 6F 6F 6B 69 6E 67 0D    looked..looking.
008A20:  0A 6C 6F 6F 6B 73 0D 0A 6C 6F 6F 70 0D 0A 6C 6F    .looks..loop..lo
008A30:  73 65 0D 0A 6C 6F 73 65 73 0D 0A 6C 6F 73 73 0D    se..loses..loss.
008A40:  0A 6C 6F 73 74 0D 0A 6C 6F 74 0D 0A 6C 6F 74 73    .lost..lot..lots
008A50:  0D 0A 6C 6F 76 65 0D 0A 6C 6F 77 0D 0A 6C 6F 77    ..love..low..low
008A60:  2D 6C 65 76 65 6C 0D 0A 6C 6F 77 2D 6F 72 64 65    -level..low-orde
008A70:  72 0D 0A 6C 6F 77 65 72 0D 0A 6C 6F 77 65 73 74    r..lower..lowest
008A80:  0D 0A 6D 0D 0A 6D 61 63 68 69 6E 65 0D 0A 6D 61    ..m..machine..ma
008A90:  63 68 69 6E 65 73 0D 0A 6D 61 63 72 6F 0D 0A 6D    chines..macro..m
008AA0:  61 64 65 0D 0A 6D 61 67 6E 69 74 75 64 65 0D 0A    ade..magnitude..
008AB0:  6D 61 69 6C 0D 0A 6D 61 69 6C 69 6E 67 0D 0A 6D    mail..mailing..m
008AC0:  61 69 6E 0D 0A 6D 61 69 6E 66 72 61 6D 65 73 0D    ain..mainframes.
008AD0:  0A 6D 61 69 6E 74 61 69 6E 69 6E 67 0D 0A 6D 61    .maintaining..ma
008AE0:  69 6E 74 61 69 6E 73 0D 0A 6D 61 69 6E 74 65 6E    intains..mainten
008AF0:  61 6E 63 65 0D 0A 6D 61 6A 6F 72 0D 0A 6D 61 6B    ance..major..mak
008B00:  63 72 65 6D 65 6E 74 0D 0A 69 6E 63 72 65 6D 65    crement..increme
008B10:  6E 74 61 6C 0D 0A 69 6E 63 72 65 6D 65 6E 74 65    ntal..incremente
008B20:  64 0D 0A 69 6E 63 72 65 6D 65 6E 74 69 6E 67 0D    d..incrementing.
008B30:  0A 69 6E 63 72 65 6D 65 6E 74 73 0D 0A 69 6E 64    .increments..ind
008B40:  65 65 64 0D 0A 69 6E 64 65 66 69 6E 69 74 65 0D    eed..indefinite.
008B50:  0A 69 6E 64 65 6E 74 0D 0A 69 6E 64 65 6E 74 65    .indent..indente
008B60:  64 0D 0A 69 6E 64 65 6E 74 69 6E 67 0D 0A 69 6E    d..indenting..in
008B70:  64 65 6E 74 69 6F 6E 0D 0A 69 6E 64 65 70 65 6E    dention..indepen
008B80:  64 65 6E 63 65 0D 0A 69 6E 64 65 70 65 6E 64 65    dence..independe
008B90:  6E 74 0D 0A 69 6E 64 65 70 65 6E 64 65 6E 74 6C    nt..independentl
008BA0:  79 0D 0A 69 6E 64 65 78 0D 0A 69 6E 64 69 63 61    y..index..indica
008BB0:  74 65 0D 0A 69 6E 64 69 63 61 74 65 64 0D 0A 69    te..indicated..i
008BC0:  6E 64 69 63 61 74 65 73 0D 0A 69 6E 64 69 63 61    ndicates..indica
008BD0:  74 69 6E 67 0D 0A 69 6E 64 69 63 61 74 6F 72 0D    ting..indicator.
008BE0:  0A 69 6E 64 69 72 65 63 74 0D 0A 69 6E 64 69 72    .indirect..indir
008BF0:  65 63 74 6C 79 0D 0A 69 6E 64 69 76 69 64 75 61    ectly..individua
008C00:  6C 0D 0A 69 6E 64 69 76 69 64 75 61 6C 6C 79 0D    l..individually.
008C10:  0A 69 6E 65 66 66 69 63 69 65 6E 63 69 65 73 0D    .inefficiencies.
008C20:  0A 69 6E 65 71 75 61 6C 69 74 79 0D 0A 69 6E 65    .inequality..ine
008C30:  78 70 65 6E 73 69 76 65 0D 0A 69 6E 66 6F 72 6D    xpensive..inform
008C40:  61 74 69 6F 6E 0D 0A 69 6E 66 6F 72 6D 73 0D 0A    ation..informs..
008C50:  69 6E 66 72 69 6E 67 65 73 0D 0A 69 6E 69 74 69    infringes..initi
008C60:  61 6C 0D 0A 69 6E 69 74 69 61 6C 69 7A 61 74 69    al..initializati
008C70:  6F 6E 0D 0A 69 6E 69 74 69 61 6C 69 7A 65 0D 0A    on..initialize..
008C80:  69 6E 69 74 69 61 6C 69 7A 65 64 0D 0A 69 6E 69    initialized..ini
008C90:  74 69 61 6C 6C 79 0D 0A 69 6E 69 74 69 61 74 65    tially..initiate
008CA0:  0D 0A 69 6E 69 74 69 61 74 65 64 0D 0A 69 6E 69    ..initiated..ini
008CB0:  74 69 61 74 65 73 0D 0A 69 6E 6E 65 72 0D 0A 69    tiates..inner..i
008CC0:  6E 70 75 74 0D 0A 69 6E 70 75 74 73 0D 0A 69 6E    nput..inputs..in
008CD0:  73 65 72 74 0D 0A 69 6E 73 65 72 74 65 64 0D 0A    sert..inserted..
008CE0:  69 6E 73 65 72 74 69 6E 67 0D 0A 69 6E 73 65 72    inserting..inser
008CF0:  74 73 0D 0A 69 6E 73 69 64 65 0D 0A 69 6E 73 69    ts..inside..insi
008D00:  65 0D 0A 6D 61 6B 65 73 0D 0A 6D 61 6B 69 6E 67    e..makes..making
008D10:  0D 0A 6D 61 6E 0D 0A 6D 61 6E 61 67 65 6D 65 6E    ..man..managemen
008D20:  74 0D 0A 6D 61 6E 69 70 75 6C 61 74 65 0D 0A 6D    t..manipulate..m
008D30:  61 6E 69 70 75 6C 61 74 65 64 0D 0A 6D 61 6E 69    anipulated..mani
008D40:  70 75 6C 61 74 69 6F 6E 0D 0A 6D 61 6E 69 70 75    pulation..manipu
008D50:  6C 61 74 69 6F 6E 73 0D 0A 6D 61 6E 6E 65 72 0D    lations..manner.
008D60:  0A 6D 61 6E 75 61 6C 0D 0A 6D 61 6E 75 61 6C 6C    .manual..manuall
008D70:  79 0D 0A 6D 61 6E 79 0D 0A 6D 61 70 0D 0A 6D 61    y..many..map..ma
008D80:  72 67 69 6E 0D 0A 6D 61 72 67 69 6E 73 0D 0A 6D    rgin..margins..m
008D90:  61 72 6B 0D 0A 6D 61 72 6B 73 0D 0A 6D 61 74 63    ark..marks..matc
008DA0:  68 0D 0A 6D 61 74 63 68 65 64 0D 0A 6D 61 74 63    h..matched..matc
008DB0:  68 65 73 0D 0A 6D 61 74 63 68 69 6E 67 0D 0A 6D    hes..matching..m
008DC0:  61 74 65 72 69 61 6C 0D 0A 6D 61 74 72 69 78 0D    aterial..matrix.
008DD0:  0A 6D 61 74 74 65 72 0D 0A 6D 61 78 69 6D 75 6D    .matter..maximum
008DE0:  0D 0A 6D 61 79 0D 0A 6D 65 0D 0A 6D 65 61 6E 0D    ..may..me..mean.
008DF0:  0A 6D 65 61 6E 69 6E 67 0D 0A 6D 65 61 6E 69 6E    .meaning..meanin
008E00:  67 73 0D 0A 6D 65 61 6E 73 0D 0A 6D 65 63 68 61    gs..means..mecha
008E10:  6E 69 73 6D 0D 0A 6D 65 65 74 0D 0A 6D 65 65 74    nism..meet..meet
008E20:  69 6E 67 0D 0A 6D 65 6D 6F 72 79 0D 0A 6D 65 6E    ing..memory..men
008E30:  74 69 6F 6E 65 64 0D 0A 6D 65 6E 74 69 6F 6E 73    tioned..mentions
008E40:  0D 0A 6D 65 72 65 6C 79 0D 0A 6D 65 72 67 65 0D    ..merely..merge.
008E50:  0A 6D 65 72 67 65 64 0D 0A 6D 65 72 67 65 73 0D    .merged..merges.
008E60:  0A 6D 65 72 67 69 6E 67 0D 0A 6D 65 73 73 61 67    .merging..messag
008E70:  65 0D 0A 6D 65 73 73 61 67 65 73 0D 0A 6D 65 74    e..messages..met
008E80:  61 63 68 61 72 61 63 74 65 72 73 0D 0A 6D 65 74    acharacters..met
008E90:  68 6F 64 0D 0A 6D 65 74 68 6F 64 73 0D 0A 6D 69    hod..methods..mi
008EA0:  63 72 6F 0D 0A 6D 69 63 72 6F 63 6F 6D 70 75 74    cro..microcomput
008EB0:  65 72 0D 0A 6D 69 63 72 6F 63 6F 6D 70 75 74 65    er..microcompute
008EC0:  72 73 0D 0A 6D 69 63 72 6F 73 0D 0A 6D 69 64 64    rs..micros..midd
008ED0:  6C 65 0D 0A 6D 69 67 68 74 0D 0A 6D 69 67 72 61    le..might..migra
008EE0:  74 69 6F 6E 0D 0A 6D 69 6E 64 0D 0A 6D 69 6E 69    tion..mind..mini
008EF0:  6D 69 7A 65 0D 0A 6D 69 6E 69 6D 75 6D 0D 0A 6D    mize..minimum..m
008F00:  64 69 6F 75 73 0D 0A 69 6E 73 70 69 72 61 74 69    dious..inspirati
008F10:  6F 6E 0D 0A 69 6E 73 70 69 72 65 64 0D 0A 69 6E    on..inspired..in
008F20:  73 74 61 6C 6C 0D 0A 69 6E 73 74 61 6C 6C 61 74    stall..installat
008F30:  69 6F 6E 0D 0A 69 6E 73 74 61 6C 6C 65 64 0D 0A    ion..installed..
008F40:  69 6E 73 74 61 6C 6C 69 6E 67 0D 0A 69 6E 73 74    installing..inst
008F50:  61 6E 63 65 0D 0A 69 6E 73 74 61 6E 63 65 73 0D    ance..instances.
008F60:  0A 69 6E 73 74 65 61 64 0D 0A 69 6E 73 74 72 75    .instead..instru
008F70:  63 74 0D 0A 69 6E 73 74 72 75 63 74 69 6E 67 0D    ct..instructing.
008F80:  0A 69 6E 73 74 72 75 63 74 69 6F 6E 0D 0A 69 6E    .instruction..in
008F90:  73 74 72 75 63 74 69 6F 6E 73 0D 0A 69 6E 73 74    structions..inst
008FA0:  72 75 63 74 73 0D 0A 69 6E 73 75 66 66 69 63 69    ructs..insuffici
008FB0:  65 6E 74 0D 0A 69 6E 74 61 63 74 0D 0A 69 6E 74    ent..intact..int
008FC0:  65 67 65 72 0D 0A 69 6E 74 65 67 65 72 73 0D 0A    eger..integers..
008FD0:  69 6E 74 65 67 72 69 74 79 0D 0A 69 6E 74 65 6C    integrity..intel
008FE0:  6C 69 67 65 6E 74 0D 0A 69 6E 74 65 6E 64 0D 0A    ligent..intend..
008FF0:  69 6E 74 65 6E 64 65 64 0D 0A 69 6E 74 65 6E 74    intended..intent
009000:  0D 0A 69 6E 74 65 72 61 63 74 69 6F 6E 0D 0A 69    ..interaction..i
009010:  6E 74 65 72 63 65 70 74 0D 0A 69 6E 74 65 72 63    ntercept..interc
009020:  65 70 74 73 0D 0A 69 6E 74 65 72 65 73 74 0D 0A    epts..interest..
009030:  69 6E 74 65 72 65 73 74 65 64 0D 0A 69 6E 74 65    interested..inte
009040:  72 65 73 74 69 6E 67 0D 0A 69 6E 74 65 72 66 61    resting..interfa
009050:  63 65 0D 0A 69 6E 74 65 72 66 61 63 65 73 0D 0A    ce..interfaces..
009060:  69 6E 74 65 72 66 65 72 65 0D 0A 69 6E 74 65 72    interfere..inter
009070:  66 65 72 69 6E 67 0D 0A 69 6E 74 65 72 6E 61 6C    fering..internal
009080:  73 0D 0A 69 6E 74 65 72 70 72 65 74 61 74 69 6F    s..interpretatio
009090:  6E 0D 0A 69 6E 74 65 72 70 72 65 74 65 64 0D 0A    n..interpreted..
0090A0:  69 6E 74 65 72 72 75 70 74 0D 0A 69 6E 74 65 72    interrupt..inter
0090B0:  72 75 70 74 65 64 0D 0A 69 6E 74 65 72 72 75 70    rupted..interrup
0090C0:  74 69 6E 67 0D 0A 69 6E 74 65 72 72 75 70 74 69    ting..interrupti
0090D0:  6F 6E 0D 0A 69 6E 74 65 72 72 75 70 74 69 6F 6E    on..interruption
0090E0:  73 0D 0A 69 6E 74 65 72 72 75 70 74 73 0D 0A 69    s..interrupts..i
0090F0:  6E 74 65 72 73 70 65 72 73 65 64 0D 0A 69 6E 74    nterspersed..int
009100:  69 6E 6F 72 0D 0A 6D 69 6E 75 73 0D 0A 6D 69 6E    inor..minus..min
009110:  75 74 65 0D 0A 6D 69 6E 75 74 65 73 0D 0A 6D 69    ute..minutes..mi
009120:  72 72 6F 72 0D 0A 6D 69 73 63 65 6C 6C 61 6E 65    rror..miscellane
009130:  6F 75 73 0D 0A 6D 69 73 73 69 6E 67 0D 0A 6D 69    ous..missing..mi
009140:  73 73 69 73 73 69 70 70 69 0D 0A 6D 69 73 73 70    ssissippi..missp
009150:  65 6C 6C 65 64 0D 0A 6D 69 73 73 70 65 6C 6C 69    elled..misspelli
009160:  6E 67 73 0D 0A 6D 69 73 74 61 6B 65 0D 0A 6D 69    ngs..mistake..mi
009170:  78 65 64 0D 0A 6D 69 78 69 6E 67 0D 0A 6D 6E 65    xed..mixing..mne
009180:  6D 6F 6E 69 63 0D 0A 6D 6E 65 6D 6F 6E 69 63 73    monic..mnemonics
009190:  0D 0A 6D 6F 64 65 0D 0A 6D 6F 64 65 73 0D 0A 6D    ..mode..modes..m
0091A0:  6F 64 65 73 74 0D 0A 6D 6F 64 69 66 69 63 61 74    odest..modificat
0091B0:  69 6F 6E 0D 0A 6D 6F 64 69 66 69 63 61 74 69 6F    ion..modificatio
0091C0:  6E 73 0D 0A 6D 6F 64 69 66 69 65 64 0D 0A 6D 6F    ns..modified..mo
0091D0:  64 69 66 69 65 72 73 0D 0A 6D 6F 64 69 66 79 0D    difiers..modify.
0091E0:  0A 6D 6F 64 69 66 79 69 6E 67 0D 0A 6D 6F 64 75    .modifying..modu
0091F0:  6C 65 0D 0A 6D 6F 64 75 6C 65 73 0D 0A 6D 6F 6E    le..modules..mon
009200:  69 74 6F 72 0D 0A 6D 6F 6E 69 74 6F 72 65 64 0D    itor..monitored.
009210:  0A 6D 6F 6E 69 74 6F 72 73 0D 0A 6D 6F 72 65 0D    .monitors..more.
009220:  0A 6D 6F 73 74 0D 0A 6D 6F 75 6E 74 0D 0A 6D 6F    .most..mount..mo
009230:  75 6E 74 65 64 0D 0A 6D 6F 76 65 0D 0A 6D 6F 76    unted..move..mov
009240:  65 64 0D 0A 6D 6F 76 65 73 0D 0A 6D 72 0D 0A 6D    ed..moves..mr..m
009250:  75 63 68 0D 0A 6D 75 6C 74 69 70 6C 65 0D 0A 6D    uch..multiple..m
009260:  75 6C 74 69 70 6C 69 65 73 0D 0A 6D 75 6C 74 69    ultiplies..multi
009270:  70 6C 79 0D 0A 6D 75 73 74 0D 0A 6D 75 74 75 61    ply..must..mutua
009280:  6C 6C 79 0D 0A 6D 79 0D 0A 6D 79 73 74 65 72 69    lly..my..mysteri
009290:  6F 75 73 0D 0A 6E 0D 0A 6E 61 6D 65 0D 0A 6E 61    ous..n..name..na
0092A0:  6D 65 64 0D 0A 6E 61 6D 65 73 0D 0A 6E 61 6D 69    med..names..nami
0092B0:  6E 67 0D 0A 6E 61 74 75 72 61 6C 0D 0A 6E 61 74    ng..natural..nat
0092C0:  75 72 61 6C 6C 79 0D 0A 6E 61 74 75 72 65 0D 0A    urally..nature..
0092D0:  6E 65 61 72 0D 0A 6E 65 61 72 6C 79 0D 0A 6E 65    near..nearly..ne
0092E0:  61 74 0D 0A 6E 65 63 65 73 73 61 72 69 6C 79 0D    at..necessarily.
0092F0:  0A 6E 65 63 65 73 73 61 72 79 0D 0A 6E 65 65 64    .necessary..need
009300:  65 72 76 65 6E 69 6E 67 0D 0A 69 6E 74 6F 0D 0A    ervening..into..
009310:  69 6E 74 72 6F 64 75 63 65 0D 0A 69 6E 74 72 6F    introduce..intro
009320:  64 75 63 65 64 0D 0A 69 6E 74 72 6F 64 75 63 65    duced..introduce
009330:  73 0D 0A 69 6E 74 72 6F 64 75 63 74 69 6F 6E 0D    s..introduction.
009340:  0A 69 6E 74 72 6F 64 75 63 74 6F 72 79 0D 0A 69    .introductory..i
009350:  6E 76 61 6C 69 64 0D 0A 69 6E 76 61 6C 69 64 61    nvalid..invalida
009360:  74 65 64 0D 0A 69 6E 76 61 6C 69 64 61 74 69 6E    ted..invalidatin
009370:  67 0D 0A 69 6E 76 61 6C 75 61 62 6C 65 0D 0A 69    g..invaluable..i
009380:  6E 76 6F 6B 65 0D 0A 69 6E 76 6F 6B 65 64 0D 0A    nvoke..invoked..
009390:  69 6E 76 6F 6B 65 73 0D 0A 69 6E 76 6F 6B 69 6E    invokes..invokin
0093A0:  67 0D 0A 69 6E 76 6F 6C 76 65 0D 0A 69 6E 76 6F    g..involve..invo
0093B0:  6C 76 65 64 0D 0A 69 6E 76 6F 6C 76 65 73 0D 0A    lved..involves..
0093C0:  69 6E 76 6F 6C 76 69 6E 67 0D 0A 69 6E 77 61 72    involving..inwar
0093D0:  64 0D 0A 69 72 6F 6E 69 63 61 6C 6C 79 0D 0A 69    d..ironically..i
0093E0:  72 72 69 74 61 6E 74 73 0D 0A 69 73 0D 0A 69 73    rritants..is..is
0093F0:  6F 6C 61 74 65 64 0D 0A 69 73 6F 6C 61 74 69 6E    olated..isolatin
009400:  67 0D 0A 69 73 73 75 65 0D 0A 69 73 73 75 65 64    g..issue..issued
009410:  0D 0A 69 73 73 75 69 6E 67 0D 0A 69 74 0D 0A 69    ..issuing..it..i
009420:  74 27 73 0D 0A 69 74 65 6D 0D 0A 69 74 65 72 61    t's..item..itera
009430:  74 69 6F 6E 0D 0A 69 74 73 0D 0A 69 74 73 65 6C    tion..its..itsel
009440:  66 0D 0A 6A 0D 0A 6A 61 6E 75 61 72 79 0D 0A 6A    f..j..january..j
009450:  6F 62 0D 0A 6A 6F 69 6E 0D 0A 6A 6F 69 6E 65 64    ob..join..joined
009460:  0D 0A 6A 6F 75 72 6E 61 6C 0D 0A 6A 75 64 67 65    ..journal..judge
009470:  64 0D 0A 6A 75 64 69 63 69 6F 75 73 0D 0A 6A 75    d..judicious..ju
009480:  64 69 63 69 6F 75 73 6C 79 0D 0A 6A 75 6D 70 0D    diciously..jump.
009490:  0A 6A 75 6D 70 73 0D 0A 6A 75 73 74 0D 0A 6A 75    .jumps..just..ju
0094A0:  73 74 69 66 69 63 61 74 69 6F 6E 0D 0A 6A 75 73    stification..jus
0094B0:  74 69 66 69 65 64 0D 0A 6A 75 73 74 69 66 79 0D    tified..justify.
0094C0:  0A 6A 75 73 74 69 66 79 69 6E 67 0D 0A 6B 0D 0A    .justifying..k..
0094D0:  6B 65 65 70 0D 0A 6B 65 65 70 69 6E 67 0D 0A 6B    keep..keeping..k
0094E0:  65 65 70 73 0D 0A 6B 65 70 74 0D 0A 6B 65 79 0D    eeps..kept..key.
0094F0:  0A 6B 65 79 62 6F 61 72 64 0D 0A 6B 65 79 73 0D    .keyboard..keys.
009500:  0D 0A 6E 65 65 64 65 64 0D 0A 6E 65 65 64 73 0D    ..needed..needs.
009510:  0A 6E 65 67 61 74 65 0D 0A 6E 65 67 61 74 65 73    .negate..negates
009520:  0D 0A 6E 65 67 61 74 69 76 65 0D 0A 6E 65 67 6C    ..negative..negl
009530:  65 63 74 65 64 0D 0A 6E 65 73 74 65 64 0D 0A 6E    ected..nested..n
009540:  65 73 74 69 6E 67 0D 0A 6E 65 76 65 72 0D 0A 6E    esting..never..n
009550:  65 76 65 72 74 68 65 6C 65 73 73 0D 0A 6E 65 77    evertheless..new
009560:  0D 0A 6E 65 78 74 0D 0A 6E 69 62 62 6C 65 0D 0A    ..next..nibble..
009570:  6E 69 62 62 6C 65 73 0D 0A 6E 6F 0D 0A 6E 6F 6D    nibbles..no..nom
009580:  69 6E 61 6C 0D 0A 6E 6F 6E 2D 7A 65 72 6F 0D 0A    inal..non-zero..
009590:  6E 6F 6E 63 6F 6D 6D 65 72 63 69 61 6C 0D 0A 6E    noncommercial..n
0095A0:  6F 6E 65 0D 0A 6E 6F 72 0D 0A 6E 6F 72 6D 61 6C    one..nor..normal
0095B0:  0D 0A 6E 6F 72 6D 61 6C 6C 79 0D 0A 6E 6F 72 74    ..normally..nort
0095C0:  68 0D 0A 6E 6F 74 0D 0A 6E 6F 74 61 74 69 6F 6E    h..not..notation
0095D0:  0D 0A 6E 6F 74 65 0D 0A 6E 6F 74 65 73 0D 0A 6E    ..note..notes..n
0095E0:  6F 74 68 69 6E 67 0D 0A 6E 6F 74 69 63 65 0D 0A    othing..notice..
0095F0:  6E 6F 76 65 6D 62 65 72 0D 0A 6E 6F 77 0D 0A 6E    november..now..n
009600:  75 63 6C 65 75 73 0D 0A 6E 75 69 73 61 6E 63 65    ucleus..nuisance
009610:  0D 0A 6E 75 6C 6C 0D 0A 6E 75 6D 62 65 72 0D 0A    ..null..number..
009620:  6E 75 6D 62 65 72 65 64 0D 0A 6E 75 6D 62 65 72    numbered..number
009630:  69 6E 67 0D 0A 6E 75 6D 62 65 72 73 0D 0A 6E 75    ing..numbers..nu
009640:  6D 65 72 69 63 0D 0A 6E 75 6D 65 72 69 63 61 6C    meric..numerical
009650:  0D 0A 6E 75 6D 65 72 69 63 61 6C 6C 79 0D 0A 6F    ..numerically..o
009660:  0D 0A 6F 62 65 79 0D 0A 6F 62 6A 65 63 74 0D 0A    ..obey..object..
009670:  6F 62 6A 65 63 74 69 76 65 73 0D 0A 6F 62 6A 65    objectives..obje
009680:  63 74 73 0D 0A 6F 62 73 65 72 76 65 0D 0A 6F 62    cts..observe..ob
009690:  73 65 72 76 69 6E 67 0D 0A 6F 62 74 61 69 6E 0D    serving..obtain.
0096A0:  0A 6F 62 74 61 69 6E 65 64 0D 0A 6F 62 74 61 69    .obtained..obtai
0096B0:  6E 69 6E 67 0D 0A 6F 62 74 61 69 6E 73 0D 0A 6F    ning..obtains..o
0096C0:  62 76 69 6F 75 73 0D 0A 6F 63 63 61 73 69 6F 6E    bvious..occasion
0096D0:  61 6C 0D 0A 6F 63 63 61 73 69 6F 6E 61 6C 6C 79    al..occasionally
0096E0:  0D 0A 6F 63 63 61 73 69 6F 6E 73 0D 0A 6F 63 63    ..occasions..occ
0096F0:  75 70 69 65 64 0D 0A 6F 63 63 75 70 69 65 73 0D    upied..occupies.
009700:  0A 6B 65 79 77 6F 72 64 0D 0A 6B 69 6E 64 0D 0A    .keyword..kind..
009710:  6B 69 6E 64 73 0D 0A 6B 6E 6F 77 0D 0A 6B 6E 6F    kinds..know..kno
009720:  77 69 6E 67 0D 0A 6B 6E 6F 77 6C 65 64 67 65 61    wing..knowledgea
009730:  62 6C 65 0D 0A 6B 6E 6F 77 6E 0D 0A 6B 6E 6F 77    ble..known..know
009740:  73 0D 0A 6C 0D 0A 6C 61 62 65 6C 0D 0A 6C 61 62    s..l..label..lab
009750:  65 6C 73 0D 0A 6C 61 62 6F 72 61 74 6F 72 69 65    els..laboratorie
009760:  73 0D 0A 6C 61 62 6F 72 61 74 6F 72 79 0D 0A 6C    s..laboratory..l
009770:  61 62 73 0D 0A 6C 61 63 6B 0D 0A 6C 61 67 0D 0A    abs..lack..lag..
009780:  6C 61 6E 67 75 61 67 65 0D 0A 6C 61 6E 67 75 61    language..langua
009790:  67 65 73 0D 0A 6C 61 72 67 65 0D 0A 6C 61 72 67    ges..large..larg
0097A0:  65 6C 79 0D 0A 6C 61 72 67 65 72 0D 0A 6C 61 73    ely..larger..las
0097B0:  74 0D 0A 6C 61 74 65 72 0D 0A 6C 61 74 65 73 74    t..later..latest
0097C0:  0D 0A 6C 61 74 74 65 72 0D 0A 6C 61 79 0D 0A 6C    ..latter..lay..l
0097D0:  61 79 6F 75 74 0D 0A 6C 65 61 64 69 6E 67 0D 0A    ayout..leading..
0097E0:  6C 65 61 70 0D 0A 6C 65 61 72 6E 0D 0A 6C 65 61    leap..learn..lea
0097F0:  72 6E 65 64 0D 0A 6C 65 61 72 6E 69 6E 67 0D 0A    rned..learning..
009800:  6C 65 61 72 6E 73 0D 0A 6C 65 61 73 74 0D 0A 6C    learns..least..l
009810:  65 61 76 65 0D 0A 6C 65 61 76 65 73 0D 0A 6C 65    eave..leaves..le
009820:  61 76 69 6E 67 0D 0A 6C 65 66 74 0D 0A 6C 65 66    aving..left..lef
009830:  74 6D 6F 73 74 0D 0A 6C 65 67 61 6C 0D 0A 6C 65    tmost..legal..le
009840:  6E 67 74 68 0D 0A 6C 65 6E 67 74 68 73 0D 0A 6C    ngth..lengths..l
009850:  65 73 73 0D 0A 6C 65 74 0D 0A 6C 65 74 73 0D 0A    ess..let..lets..
009860:  6C 65 74 74 65 72 0D 0A 6C 65 74 74 65 72 73 0D    letter..letters.
009870:  0A 6C 65 76 65 6C 0D 0A 6C 65 76 65 6C 73 0D 0A    .level..levels..
009880:  6C 69 62 72 61 72 69 65 73 0D 0A 6C 69 62 72 61    libraries..libra
009890:  72 79 0D 0A 6C 69 63 65 6E 73 65 65 0D 0A 6C 69    ry..licensee..li
0098A0:  6B 65 0D 0A 6C 69 6B 65 6C 69 68 6F 6F 64 0D 0A    ke..likelihood..
0098B0:  6C 69 6B 65 6C 79 0D 0A 6C 69 6B 65 77 69 73 65    likely..likewise
0098C0:  0D 0A 6C 69 6D 69 74 61 74 69 6F 6E 73 0D 0A 6C    ..limitations..l
0098D0:  69 6D 69 74 65 64 0D 0A 6C 69 6D 69 74 69 6E 67    imited..limiting
0098E0:  0D 0A 6C 69 6D 69 74 73 0D 0A 6C 69 6E 65 0D 0A    ..limits..line..
0098F0:  6C 69 6E 65 73 0D 0A 6C 69 6E 6B 0D 0A 6C 69 6E    lines..link..lin
009900:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
009910:  08 00 01 00 02 09 52 E5 08 00 41 02 00 00 00 02    ......R...A.....
009920:  08 00 46 02 00 00 00 02 08 00 42 02 00 00 00 02    ..F.......B.....
009930:  08 00 47 02 00 00 00 02 08 00 43 02 00 00 00 02    ..G.......C.....
009940:  08 00 48 02 00 00 00 02 08 00 44 02 00 00 00 02    ..H.......D.....
009950:  08 00 49 02 00 00 00 02 08 00 45 02 00 00 00 02    ..I.......E.....
009960:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009970:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009980:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009990:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0099F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
009A00:  0A 6F 63 63 75 70 79 0D 0A 6F 63 63 75 70 79 69    .occupy..occupyi
009A10:  6E 67 0D 0A 6F 63 63 75 72 0D 0A 6F 63 63 75 72    ng..occur..occur
009A20:  72 65 64 0D 0A 6F 63 63 75 72 72 65 6E 63 65 0D    red..occurrence.
009A30:  0A 6F 63 63 75 72 72 65 6E 63 65 73 0D 0A 6F 63    .occurrences..oc
009A40:  63 75 72 72 69 6E 67 0D 0A 6F 63 63 75 72 73 0D    curring..occurs.
009A50:  0A 6F 64 64 0D 0A 6F 66 0D 0A 6F 66 66 0D 0A 6F    .odd..of..off..o
009A60:  66 66 65 72 0D 0A 6F 66 66 65 72 73 0D 0A 6F 66    ffer..offers..of
009A70:  66 73 65 74 0D 0A 6F 66 66 73 65 74 73 0D 0A 6F    fset..offsets..o
009A80:  66 74 65 6E 0D 0A 6F 68 0D 0A 6F 6C 64 0D 0A 6F    ften..oh..old..o
009A90:  6D 69 74 74 65 64 0D 0A 6F 6E 0D 0A 6F 6E 63 65    mitted..on..once
009AA0:  0D 0A 6F 6E 65 0D 0A 6F 6E 65 27 73 0D 0A 6F 6E    ..one..one's..on
009AB0:  65 73 0D 0A 6F 6E 6C 79 0D 0A 6F 6E 74 6F 0D 0A    es..only..onto..
009AC0:  6F 70 65 6E 0D 0A 6F 70 65 6E 65 64 0D 0A 6F 70    open..opened..op
009AD0:  65 6E 69 6E 67 0D 0A 6F 70 65 72 61 6E 64 0D 0A    ening..operand..
009AE0:  6F 70 65 72 61 6E 64 73 0D 0A 6F 70 65 72 61 74    operands..operat
009AF0:  65 0D 0A 6F 70 65 72 61 74 65 64 0D 0A 6F 70 65    e..operated..ope
009B00:  72 61 74 65 73 0D 0A 6F 70 65 72 61 74 69 6E 67    rates..operating
009B10:  0D 0A 6F 70 65 72 61 74 69 6F 6E 0D 0A 6F 70 65    ..operation..ope
009B20:  72 61 74 69 6F 6E 73 0D 0A 6F 70 65 72 61 74 6F    rations..operato
009B30:  72 0D 0A 6F 70 65 72 61 74 6F 72 73 0D 0A 6F 70    r..operators..op
009B40:  70 6F 72 74 75 6E 69 74 79 0D 0A 6F 70 70 6F 73    portunity..oppos
009B50:  65 64 0D 0A 6F 70 70 6F 73 69 74 65 0D 0A 6F 70    ed..opposite..op
009B60:  74 69 6D 69 73 74 69 63 0D 0A 6F 70 74 69 6D 69    timistic..optimi
009B70:  7A 61 74 69 6F 6E 0D 0A 6F 70 74 69 6D 69 7A 65    zation..optimize
009B80:  0D 0A 6F 70 74 69 6D 69 7A 65 64 0D 0A 6F 70 74    ..optimized..opt
009B90:  69 6D 69 7A 65 72 0D 0A 6F 70 74 69 6D 69 7A 69    imizer..optimizi
009BA0:  6E 67 0D 0A 6F 70 74 69 6F 6E 0D 0A 6F 70 74 69    ng..option..opti
009BB0:  6F 6E 61 6C 0D 0A 6F 70 74 69 6F 6E 61 6C 6C 79    onal..optionally
009BC0:  0D 0A 6F 70 74 69 6F 6E 73 0D 0A 6F 72 0D 0A 6F    ..options..or..o
009BD0:  72 64 65 72 0D 0A 6F 72 64 69 6E 61 72 69 6C 79    rder..ordinarily
009BE0:  0D 0A 6F 72 64 69 6E 61 72 79 0D 0A 6F 72 67 61    ..ordinary..orga
009BF0:  6E 69 7A 61 74 69 6F 6E 0D 0A 6F 72 67 61 6E 69    nization..organi
009C00:  0A 70 72 69 76 61 74 65 0D 0A 70 72 69 76 69 6C    .private..privil
009C10:  65 67 65 0D 0A 70 72 6F 62 61 62 6C 65 0D 0A 70    ege..probable..p
009C20:  72 6F 62 61 62 6C 79 0D 0A 70 72 6F 62 6C 65 6D    robably..problem
009C30:  0D 0A 70 72 6F 62 6C 65 6D 73 0D 0A 70 72 6F 63    ..problems..proc
009C40:  65 64 75 72 65 0D 0A 70 72 6F 63 65 64 75 72 65    edure..procedure
009C50:  73 0D 0A 70 72 6F 63 65 65 64 0D 0A 70 72 6F 63    s..proceed..proc
009C60:  65 65 64 69 6E 67 0D 0A 70 72 6F 63 65 65 64 73    eeding..proceeds
009C70:  0D 0A 70 72 6F 63 65 73 73 0D 0A 70 72 6F 63 65    ..process..proce
009C80:  73 73 65 64 0D 0A 70 72 6F 63 65 73 73 65 73 0D    ssed..processes.
009C90:  0A 70 72 6F 63 65 73 73 69 6E 67 0D 0A 70 72 6F    .processing..pro
009CA0:  63 65 73 73 6F 72 0D 0A 70 72 6F 63 65 73 73 6F    cessor..processo
009CB0:  72 73 0D 0A 70 72 6F 64 75 63 65 0D 0A 70 72 6F    rs..produce..pro
009CC0:  64 75 63 65 64 0D 0A 70 72 6F 64 75 63 65 73 0D    duced..produces.
009CD0:  0A 70 72 6F 64 75 63 69 6E 67 0D 0A 70 72 6F 64    .producing..prod
009CE0:  75 63 74 0D 0A 70 72 6F 64 75 63 74 69 76 65 0D    uct..productive.
009CF0:  0A 70 72 6F 64 75 63 74 69 76 69 74 79 0D 0A 70    .productivity..p
009D00:  72 6F 66 65 73 73 69 6F 6E 61 6C 6C 79 0D 0A 70    rofessionally..p
009D10:  72 6F 66 65 73 73 6F 72 73 0D 0A 70 72 6F 67 72    rofessors..progr
009D20:  61 6D 0D 0A 70 72 6F 67 72 61 6D 27 73 0D 0A 70    am..program's..p
009D30:  72 6F 67 72 61 6D 6D 65 72 0D 0A 70 72 6F 67 72    rogrammer..progr
009D40:  61 6D 6D 65 72 27 73 0D 0A 70 72 6F 67 72 61 6D    ammer's..program
009D50:  6D 65 72 73 0D 0A 70 72 6F 67 72 61 6D 6D 69 6E    mers..programmin
009D60:  67 0D 0A 70 72 6F 67 72 61 6D 73 0D 0A 70 72 6F    g..programs..pro
009D70:  67 72 65 73 73 0D 0A 70 72 6F 6A 65 63 74 0D 0A    gress..project..
009D80:  70 72 6F 6A 65 63 74 73 0D 0A 70 72 6F 6D 69 73    projects..promis
009D90:  65 64 0D 0A 70 72 6F 6D 70 74 0D 0A 70 72 6F 6D    ed..prompt..prom
009DA0:  70 74 65 64 0D 0A 70 72 6F 6D 70 74 69 6E 67 0D    pted..prompting.
009DB0:  0A 70 72 6F 6D 70 74 73 0D 0A 70 72 6F 6F 66 0D    .prompts..proof.
009DC0:  0A 70 72 6F 6F 66 69 6E 67 0D 0A 70 72 6F 6F 66    .proofing..proof
009DD0:  72 65 61 64 69 6E 67 0D 0A 70 72 6F 6F 66 73 0D    reading..proofs.
009DE0:  0A 70 72 6F 70 65 72 0D 0A 70 72 6F 70 65 72 6C    .proper..properl
009DF0:  79 0D 0A 70 72 6F 70 65 72 74 69 65 73 0D 0A 70    y..properties..p
009E00:  7A 61 74 69 6F 6E 61 6C 0D 0A 6F 72 67 61 6E 69    zational..organi
009E10:  7A 65 0D 0A 6F 72 67 61 6E 69 7A 65 64 0D 0A 6F    ze..organized..o
009E20:  72 69 65 6E 74 65 64 0D 0A 6F 72 69 67 69 6E 0D    riented..origin.
009E30:  0A 6F 72 69 67 69 6E 61 6C 0D 0A 6F 72 69 67 69    .original..origi
009E40:  6E 61 6C 6C 79 0D 0A 6F 74 68 65 72 0D 0A 6F 74    nally..other..ot
009E50:  68 65 72 73 0D 0A 6F 74 68 65 72 77 69 73 65 0D    hers..otherwise.
009E60:  0A 6F 75 72 0D 0A 6F 75 74 0D 0A 6F 75 74 63 6F    .our..out..outco
009E70:  6D 65 0D 0A 6F 75 74 65 72 0D 0A 6F 75 74 6C 69    me..outer..outli
009E80:  6E 65 0D 0A 6F 75 74 6C 69 6E 65 64 0D 0A 6F 75    ne..outlined..ou
009E90:  74 70 75 74 0D 0A 6F 75 74 70 75 74 73 0D 0A 6F    tput..outputs..o
009EA0:  75 74 73 69 64 65 0D 0A 6F 76 65 72 0D 0A 6F 76    utside..over..ov
009EB0:  65 72 63 6F 6D 65 73 0D 0A 6F 76 65 72 66 6C 6F    ercomes..overflo
009EC0:  77 0D 0A 6F 76 65 72 68 65 61 64 0D 0A 6F 76 65    w..overhead..ove
009ED0:  72 6C 61 69 64 0D 0A 6F 76 65 72 6C 61 70 0D 0A    rlaid..overlap..
009EE0:  6F 76 65 72 6C 61 70 73 0D 0A 6F 76 65 72 6C 61    overlaps..overla
009EF0:  79 73 0D 0A 6F 76 65 72 72 69 64 64 65 6E 0D 0A    ys..overridden..
009F00:  6F 76 65 72 72 69 64 65 0D 0A 6F 76 65 72 72 69    override..overri
009F10:  64 65 73 0D 0A 6F 76 65 72 76 69 65 77 0D 0A 6F    des..overview..o
009F20:  76 65 72 77 72 69 74 74 65 6E 0D 0A 6F 77 6E 0D    verwritten..own.
009F30:  0A 70 0D 0A 70 61 63 6B 61 67 65 0D 0A 70 61 63    .p..package..pac
009F40:  6B 61 67 65 73 0D 0A 70 61 64 64 65 64 0D 0A 70    kages..padded..p
009F50:  61 67 65 0D 0A 70 61 67 65 73 0D 0A 70 61 69 64    age..pages..paid
009F60:  0D 0A 70 61 69 72 0D 0A 70 61 69 72 73 0D 0A 70    ..pair..pairs..p
009F70:  61 6C 61 74 61 62 6C 65 0D 0A 70 61 70 65 72 0D    alatable..paper.
009F80:  0A 70 61 72 61 67 72 61 70 68 0D 0A 70 61 72 61    .paragraph..para
009F90:  67 72 61 70 68 73 0D 0A 70 61 72 61 6C 6C 65 6C    graphs..parallel
009FA0:  0D 0A 70 61 72 61 6C 6C 65 6C 73 0D 0A 70 61 72    ..parallels..par
009FB0:  61 6D 65 74 65 72 0D 0A 70 61 72 61 6D 65 74 65    ameter..paramete
009FC0:  72 73 0D 0A 70 61 72 65 6E 74 68 65 73 65 73 0D    rs..parentheses.
009FD0:  0A 70 61 72 69 74 79 0D 0A 70 61 72 6B 0D 0A 70    .parity..park..p
009FE0:  61 72 74 0D 0A 70 61 72 74 69 61 6C 0D 0A 70 61    art..partial..pa
009FF0:  72 74 69 63 75 6C 61 72 0D 0A 70 61 72 74 69 63    rticular..partic
00A000:  72 6F 74 65 63 74 69 6F 6E 0D 0A 70 72 6F 74 6F    rotection..proto
00A010:  74 79 70 65 0D 0A 70 72 6F 76 65 0D 0A 70 72 6F    type..prove..pro
00A020:  76 65 73 0D 0A 70 72 6F 76 69 64 65 0D 0A 70 72    ves..provide..pr
00A030:  6F 76 69 64 65 64 0D 0A 70 72 6F 76 69 64 65 73    ovided..provides
00A040:  0D 0A 70 72 6F 76 69 64 69 6E 67 0D 0A 70 72 6F    ..providing..pro
00A050:  76 69 73 69 6F 6E 0D 0A 70 72 6F 78 69 6D 69 74    vision..proximit
00A060:  79 0D 0A 70 73 65 75 64 6F 0D 0A 70 75 62 6C 69    y..pseudo..publi
00A070:  63 0D 0A 70 75 62 6C 69 73 68 65 64 0D 0A 70 75    c..published..pu
00A080:  62 6C 69 73 68 65 72 0D 0A 70 75 6E 63 68 65 64    blisher..punched
00A090:  0D 0A 70 75 6E 63 74 75 61 74 69 6F 6E 0D 0A 70    ..punctuation..p
00A0A0:  75 72 63 68 61 73 65 64 0D 0A 70 75 72 67 65 0D    urchased..purge.
00A0B0:  0A 70 75 72 70 6F 73 65 0D 0A 70 75 72 70 6F 73    .purpose..purpos
00A0C0:  65 73 0D 0A 70 75 72 73 75 65 0D 0A 70 75 73 68    es..pursue..push
00A0D0:  0D 0A 70 75 73 68 65 64 0D 0A 70 75 73 68 65 73    ..pushed..pushes
00A0E0:  0D 0A 70 75 73 68 69 6E 67 0D 0A 70 75 74 0D 0A    ..pushing..put..
00A0F0:  70 75 74 73 0D 0A 70 75 74 74 69 6E 67 0D 0A 71    puts..putting..q
00A100:  0D 0A 71 75 61 64 0D 0A 71 75 61 6C 69 74 79 0D    ..quad..quality.
00A110:  0A 71 75 65 73 74 69 6F 6E 0D 0A 71 75 65 73 74    .question..quest
00A120:  69 6F 6E 61 62 6C 65 0D 0A 71 75 65 73 74 69 6F    ionable..questio
00A130:  6E 73 0D 0A 71 75 65 75 65 0D 0A 71 75 69 63 6B    ns..queue..quick
00A140:  0D 0A 71 75 69 74 0D 0A 71 75 69 74 65 0D 0A 71    ..quit..quite..q
00A150:  75 6F 74 61 74 69 6F 6E 0D 0A 71 75 6F 74 65 64    uotation..quoted
00A160:  0D 0A 71 75 6F 74 65 73 0D 0A 71 75 6F 74 69 65    ..quotes..quotie
00A170:  6E 74 0D 0A 72 0D 0A 72 61 67 67 65 64 0D 0A 72    nt..r..ragged..r
00A180:  61 6E 0D 0A 72 61 6E 64 6F 6D 0D 0A 72 61 6E 64    an..random..rand
00A190:  6F 6D 6C 79 0D 0A 72 61 6E 67 65 0D 0A 72 61 74    omly..range..rat
00A1A0:  65 0D 0A 72 61 74 68 65 72 0D 0A 72 65 2D 65 6E    e..rather..re-en
00A1B0:  74 65 72 69 6E 67 0D 0A 72 65 2D 65 6E 74 65 72    tering..re-enter
00A1C0:  73 0D 0A 72 65 61 63 68 65 64 0D 0A 72 65 61 63    s..reached..reac
00A1D0:  68 65 73 0D 0A 72 65 61 64 0D 0A 72 65 61 64 61    hes..read..reada
00A1E0:  62 6C 65 0D 0A 72 65 61 64 65 72 0D 0A 72 65 61    ble..reader..rea
00A1F0:  64 65 72 73 0D 0A 72 65 61 64 69 6E 67 0D 0A 72    ders..reading..r
00A200:  75 6C 61 72 73 0D 0A 70 61 72 74 69 74 69 6F 6E    ulars..partition
00A210:  65 64 0D 0A 70 61 72 74 73 0D 0A 70 61 73 73 0D    ed..parts..pass.
00A220:  0A 70 61 73 73 65 64 0D 0A 70 61 73 73 65 73 0D    .passed..passes.
00A230:  0A 70 61 73 73 69 6E 67 0D 0A 70 61 73 74 0D 0A    .passing..past..
00A240:  70 61 74 0D 0A 70 61 74 63 68 0D 0A 70 61 74 63    pat..patch..patc
00A250:  68 65 73 0D 0A 70 61 74 63 68 69 6E 67 0D 0A 70    hes..patching..p
00A260:  61 74 69 65 6E 74 6C 79 0D 0A 70 61 74 74 65 72    atiently..patter
00A270:  6E 0D 0A 70 61 74 74 65 72 6E 73 0D 0A 70 61 75    n..patterns..pau
00A280:  73 65 0D 0A 70 61 75 73 65 64 0D 0A 70 61 75 73    se..paused..paus
00A290:  65 73 0D 0A 70 61 75 73 69 6E 67 0D 0A 70 61 79    es..pausing..pay
00A2A0:  0D 0A 70 65 6E 64 69 6E 67 0D 0A 70 65 6E 65 74    ..pending..penet
00A2B0:  72 61 74 69 6F 6E 0D 0A 70 65 6F 70 6C 65 0D 0A    ration..people..
00A2C0:  70 65 72 0D 0A 70 65 72 63 65 6E 74 0D 0A 70 65    per..percent..pe
00A2D0:  72 66 65 63 74 6C 79 0D 0A 70 65 72 66 6F 72 61    rfectly..perfora
00A2E0:  74 69 6F 6E 73 0D 0A 70 65 72 66 6F 72 6D 0D 0A    tions..perform..
00A2F0:  70 65 72 66 6F 72 6D 61 6E 63 65 0D 0A 70 65 72    performance..per
00A300:  66 6F 72 6D 65 64 0D 0A 70 65 72 66 6F 72 6D 69    formed..performi
00A310:  6E 67 0D 0A 70 65 72 66 6F 72 6D 73 0D 0A 70 65    ng..performs..pe
00A320:  72 69 6F 64 0D 0A 70 65 72 69 6F 64 69 63 0D 0A    riod..periodic..
00A330:  70 65 72 69 6F 64 69 63 61 6C 6C 79 0D 0A 70 65    periodically..pe
00A340:  72 69 70 68 65 72 61 6C 0D 0A 70 65 72 6D 69 73    ripheral..permis
00A350:  73 69 6F 6E 0D 0A 70 65 72 6D 69 74 0D 0A 70 65    sion..permit..pe
00A360:  72 6D 69 74 73 0D 0A 70 65 72 6D 69 74 74 65 64    rmits..permitted
00A370:  0D 0A 70 65 72 6D 69 74 74 69 6E 67 0D 0A 70 65    ..permitting..pe
00A380:  72 73 6F 6E 0D 0A 70 65 72 73 6F 6E 61 6C 69 7A    rson..personaliz
00A390:  65 0D 0A 70 65 72 73 6F 6E 61 6C 69 7A 65 64 0D    e..personalized.
00A3A0:  0A 70 65 72 74 61 69 6E 69 6E 67 0D 0A 70 65 72    .pertaining..per
00A3B0:  74 61 69 6E 73 0D 0A 70 68 61 73 65 0D 0A 70 68    tains..phase..ph
00A3C0:  61 73 65 73 0D 0A 70 68 69 6C 6F 73 6F 70 68 79    ases..philosophy
00A3D0:  0D 0A 70 68 6F 6E 65 74 69 63 0D 0A 70 68 79 73    ..phonetic..phys
00A3E0:  69 63 61 6C 0D 0A 70 68 79 73 69 63 61 6C 6C 79    ical..physically
00A3F0:  0D 0A 70 69 63 6B 0D 0A 70 69 63 6B 65 64 0D 0A    ..pick..picked..
00A400:  65 61 64 73 0D 0A 72 65 61 64 79 0D 0A 72 65 61    eads..ready..rea
00A410:  6C 0D 0A 72 65 61 6C 69 7A 65 0D 0A 72 65 61 6C    l..realize..real
00A420:  69 7A 65 64 0D 0A 72 65 61 6C 6C 79 0D 0A 72 65    ized..really..re
00A430:  61 73 6F 6E 0D 0A 72 65 61 73 6F 6E 61 62 6C 79    ason..reasonably
00A440:  0D 0A 72 65 61 73 6F 6E 65 64 0D 0A 72 65 61 73    ..reasoned..reas
00A450:  6F 6E 73 0D 0A 72 65 61 73 73 65 6D 62 6C 65 64    ons..reassembled
00A460:  0D 0A 72 65 61 73 73 65 6D 62 6C 69 6E 67 0D 0A    ..reassembling..
00A470:  72 65 63 61 6C 63 75 6C 61 74 65 0D 0A 72 65 63    recalculate..rec
00A480:  61 6C 6C 0D 0A 72 65 63 61 6C 6C 65 64 0D 0A 72    all..recalled..r
00A490:  65 63 61 70 74 75 72 65 0D 0A 72 65 63 65 69 76    ecapture..receiv
00A4A0:  65 64 0D 0A 72 65 63 65 69 76 65 73 0D 0A 72 65    ed..receives..re
00A4B0:  63 65 69 76 69 6E 67 0D 0A 72 65 63 65 6E 74 0D    ceiving..recent.
00A4C0:  0A 72 65 63 65 6E 74 6C 79 0D 0A 72 65 63 6F 67    .recently..recog
00A4D0:  6E 69 7A 65 0D 0A 72 65 63 6F 67 6E 69 7A 65 64    nize..recognized
00A4E0:  0D 0A 72 65 63 6F 67 6E 69 7A 69 6E 67 0D 0A 72    ..recognizing..r
00A4F0:  65 63 6F 6D 6D 65 6E 64 65 64 0D 0A 72 65 63 6F    ecommended..reco
00A500:  6D 70 69 6C 65 64 0D 0A 72 65 63 6F 6D 70 69 6C    mpiled..recompil
00A510:  69 6E 67 0D 0A 72 65 63 6F 72 64 0D 0A 72 65 63    ing..record..rec
00A520:  6F 72 64 73 0D 0A 72 65 64 65 66 69 6E 65 64 0D    ords..redefined.
00A530:  0A 72 65 64 65 66 69 6E 65 73 0D 0A 72 65 64 69    .redefines..redi
00A540:  72 65 63 74 0D 0A 72 65 64 69 72 65 63 74 61 62    rect..redirectab
00A550:  6C 65 0D 0A 72 65 64 69 72 65 63 74 65 64 0D 0A    le..redirected..
00A560:  72 65 64 69 72 65 63 74 69 6E 67 0D 0A 72 65 64    redirecting..red
00A570:  69 72 65 63 74 69 6F 6E 0D 0A 72 65 64 69 73 70    irection..redisp
00A580:  6C 61 79 0D 0A 72 65 64 75 63 65 0D 0A 72 65 64    lay..reduce..red
00A590:  75 63 65 64 0D 0A 72 65 64 75 63 65 73 0D 0A 72    uced..reduces..r
00A5A0:  65 64 75 63 69 6E 67 0D 0A 72 65 64 75 6E 64 61    educing..redunda
00A5B0:  6E 63 79 0D 0A 72 65 66 65 72 0D 0A 72 65 66 65    ncy..refer..refe
00A5C0:  72 65 6E 63 65 0D 0A 72 65 66 65 72 65 6E 63 65    rence..reference
00A5D0:  64 0D 0A 72 65 66 65 72 65 6E 63 65 73 0D 0A 72    d..references..r
00A5E0:  65 66 65 72 65 6E 63 69 6E 67 0D 0A 72 65 66 65    eferencing..refe
00A5F0:  72 72 65 64 0D 0A 72 65 66 65 72 72 69 6E 67 0D    rred..referring.
00A600:  70 69 65 63 65 0D 0A 70 69 67 0D 0A 70 69 67 67    piece..pig..pigg
00A610:  79 62 61 63 6B 0D 0A 70 69 6C 65 0D 0A 70 6C 61    yback..pile..pla
00A620:  63 65 0D 0A 70 6C 61 63 65 64 0D 0A 70 6C 61 63    ce..placed..plac
00A630:  65 6D 65 6E 74 0D 0A 70 6C 61 63 65 73 0D 0A 70    ement..places..p
00A640:  6C 61 63 69 6E 67 0D 0A 70 6C 61 6E 73 0D 0A 70    lacing..plans..p
00A650:  6C 65 61 73 61 6E 74 0D 0A 70 6C 65 61 73 65 0D    leasant..please.
00A660:  0A 70 6C 65 61 73 65 64 0D 0A 70 6C 75 73 0D 0A    .pleased..plus..
00A670:  70 6F 69 6E 74 0D 0A 70 6F 69 6E 74 65 64 0D 0A    point..pointed..
00A680:  70 6F 69 6E 74 65 72 0D 0A 70 6F 69 6E 74 65 72    pointer..pointer
00A690:  73 0D 0A 70 6F 69 6E 74 69 6E 67 0D 0A 70 6F 69    s..pointing..poi
00A6A0:  6E 74 73 0D 0A 70 6F 6C 6C 0D 0A 70 6F 6C 6C 69    nts..poll..polli
00A6B0:  6E 67 0D 0A 70 6F 6F 72 6C 79 0D 0A 70 6F 70 0D    ng..poorly..pop.
00A6C0:  0A 70 6F 70 70 65 64 0D 0A 70 6F 70 73 0D 0A 70    .popped..pops..p
00A6D0:  6F 70 75 6C 61 72 0D 0A 70 6F 70 75 6C 61 72 69    opular..populari
00A6E0:  74 79 0D 0A 70 6F 72 74 0D 0A 70 6F 72 74 61 62    ty..port..portab
00A6F0:  69 6C 69 74 79 0D 0A 70 6F 72 74 61 62 6C 65 0D    ility..portable.
00A700:  0A 70 6F 72 74 65 64 0D 0A 70 6F 72 74 69 6E 67    .ported..porting
00A710:  0D 0A 70 6F 72 74 69 6F 6E 0D 0A 70 6F 72 74 73    ..portion..ports
00A720:  0D 0A 70 6F 73 65 0D 0A 70 6F 73 65 64 0D 0A 70    ..pose..posed..p
00A730:  6F 73 69 74 69 6F 6E 0D 0A 70 6F 73 69 74 69 6F    osition..positio
00A740:  6E 61 6C 0D 0A 70 6F 73 69 74 69 6F 6E 73 0D 0A    nal..positions..
00A750:  70 6F 73 69 74 69 76 65 0D 0A 70 6F 73 73 69 62    positive..possib
00A760:  69 6C 69 74 69 65 73 0D 0A 70 6F 73 73 69 62 69    ilities..possibi
00A770:  6C 69 74 79 0D 0A 70 6F 73 73 69 62 6C 65 0D 0A    lity..possible..
00A780:  70 6F 73 73 69 62 6C 79 0D 0A 70 6F 73 74 61 67    possibly..postag
00A790:  65 0D 0A 70 6F 77 65 72 0D 0A 70 6F 77 65 72 66    e..power..powerf
00A7A0:  75 6C 0D 0A 70 72 61 63 74 69 63 61 6C 0D 0A 70    ul..practical..p
00A7B0:  72 61 63 74 69 63 65 0D 0A 70 72 65 2D 61 6C 6C    ractice..pre-all
00A7C0:  6F 63 61 74 69 6E 67 0D 0A 70 72 65 63 61 75 74    ocating..precaut
00A7D0:  69 6F 6E 0D 0A 70 72 65 63 61 75 74 69 6F 6E 61    ion..precautiona
00A7E0:  72 79 0D 0A 70 72 65 63 65 64 65 0D 0A 70 72 65    ry..precede..pre
00A7F0:  63 65 64 65 64 0D 0A 70 72 65 63 65 64 65 73 0D    ceded..precedes.
00A800:  0A 72 65 66 65 72 73 0D 0A 72 65 66 6C 65 63 74    .refers..reflect
00A810:  0D 0A 72 65 66 6C 65 63 74 73 0D 0A 72 65 66 75    ..reflects..refu
00A820:  73 65 73 0D 0A 72 65 67 61 69 6E 73 0D 0A 72 65    ses..regains..re
00A830:  67 61 72 64 6C 65 73 73 0D 0A 72 65 67 69 73 74    gardless..regist
00A840:  65 72 0D 0A 72 65 67 69 73 74 65 72 73 0D 0A 72    er..registers..r
00A850:  65 67 75 6C 61 72 0D 0A 72 65 69 6E 73 74 61 74    egular..reinstat
00A860:  65 0D 0A 72 65 69 6E 73 74 61 74 65 64 0D 0A 72    e..reinstated..r
00A870:  65 6A 65 63 74 65 64 0D 0A 72 65 6C 61 74 69 6E    ejected..relatin
00A880:  67 0D 0A 72 65 6C 61 74 69 6F 6E 73 68 69 70 0D    g..relationship.
00A890:  0A 72 65 6C 61 74 69 76 65 0D 0A 72 65 6C 61 74    .relative..relat
00A8A0:  69 76 65 6C 79 0D 0A 72 65 6C 65 61 73 65 0D 0A    ively..release..
00A8B0:  72 65 6C 65 61 73 65 73 0D 0A 72 65 6C 69 65 66    releases..relief
00A8C0:  0D 0A 72 65 6C 69 6E 71 75 69 73 68 0D 0A 72 65    ..relinquish..re
00A8D0:  6C 6F 61 64 65 64 0D 0A 72 65 6C 6F 61 64 69 6E    loaded..reloadin
00A8E0:  67 0D 0A 72 65 6C 6F 63 61 74 61 62 6C 65 0D 0A    g..relocatable..
00A8F0:  72 65 6C 6F 63 61 74 65 0D 0A 72 65 6C 6F 63 61    relocate..reloca
00A900:  74 65 64 0D 0A 72 65 6C 6F 63 61 74 65 73 0D 0A    ted..relocates..
00A910:  72 65 6C 6F 63 61 74 69 6E 67 0D 0A 72 65 6C 75    relocating..relu
00A920:  63 74 61 6E 63 65 0D 0A 72 65 6C 75 63 74 61 6E    ctance..reluctan
00A930:  74 0D 0A 72 65 6D 61 69 6E 0D 0A 72 65 6D 61 69    t..remain..remai
00A940:  6E 64 65 72 0D 0A 72 65 6D 61 69 6E 69 6E 67 0D    nder..remaining.
00A950:  0A 72 65 6D 61 69 6E 73 0D 0A 72 65 6D 61 6E 69    .remains..remani
00A960:  6E 69 67 0D 0A 72 65 6D 65 6D 62 65 72 0D 0A 72    nig..remember..r
00A970:  65 6D 65 6D 62 65 72 65 64 0D 0A 72 65 6D 65 6D    emembered..remem
00A980:  62 65 72 69 6E 67 0D 0A 72 65 6D 65 6D 62 65 72    bering..remember
00A990:  73 0D 0A 72 65 6D 6F 76 65 0D 0A 72 65 6D 6F 76    s..remove..remov
00A9A0:  65 64 0D 0A 72 65 6D 6F 76 65 73 0D 0A 72 65 6D    ed..removes..rem
00A9B0:  6F 76 69 6E 67 0D 0A 72 65 6E 61 6D 65 0D 0A 72    oving..rename..r
00A9C0:  65 6E 6F 77 6E 65 64 0D 0A 72 65 6E 75 6D 62 65    enowned..renumbe
00A9D0:  72 0D 0A 72 65 6E 75 6D 62 65 72 65 64 0D 0A 72    r..renumbered..r
00A9E0:  65 6E 75 6D 62 65 72 69 6E 67 0D 0A 72 65 6F 72    enumbering..reor
00A9F0:  67 61 6E 69 7A 65 64 0D 0A 72 65 70 65 61 74 0D    ganized..repeat.
00AA00:  0A 70 72 65 63 65 64 69 6E 67 0D 0A 70 72 65 63    .preceding..prec
00AA10:  69 73 69 6F 6E 0D 0A 70 72 65 63 6C 75 64 65 0D    ision..preclude.
00AA20:  0A 70 72 65 66 61 63 65 0D 0A 70 72 65 66 65 72    .preface..prefer
00AA30:  0D 0A 70 72 65 66 69 78 0D 0A 70 72 65 66 69 78    ..prefix..prefix
00AA40:  65 64 0D 0A 70 72 65 66 69 78 65 73 0D 0A 70 72    ed..prefixes..pr
00AA50:  65 66 69 78 69 6E 67 0D 0A 70 72 65 70 61 72 61    efixing..prepara
00AA60:  74 69 6F 6E 0D 0A 70 72 65 70 61 72 65 0D 0A 70    tion..prepare..p
00AA70:  72 65 70 61 72 65 64 0D 0A 70 72 65 70 61 72 69    repared..prepari
00AA80:  6E 67 0D 0A 70 72 65 72 65 71 75 69 73 69 74 65    ng..prerequisite
00AA90:  0D 0A 70 72 65 72 6F 67 61 74 69 76 65 0D 0A 70    ..prerogative..p
00AAA0:  72 65 73 63 72 69 62 65 73 0D 0A 70 72 65 73 65    rescribes..prese
00AAB0:  6E 63 65 0D 0A 70 72 65 73 65 6E 74 0D 0A 70 72    nce..present..pr
00AAC0:  65 73 65 6E 74 61 74 69 6F 6E 0D 0A 70 72 65 73    esentation..pres
00AAD0:  65 6E 74 65 64 0D 0A 70 72 65 73 65 6E 74 69 6E    ented..presentin
00AAE0:  67 0D 0A 70 72 65 73 65 6E 74 6C 79 0D 0A 70 72    g..presently..pr
00AAF0:  65 73 65 6E 74 73 0D 0A 70 72 65 73 65 72 76 65    esents..preserve
00AB00:  0D 0A 70 72 65 73 65 72 76 65 64 0D 0A 70 72 65    ..preserved..pre
00AB10:  73 73 0D 0A 70 72 65 73 73 65 64 0D 0A 70 72 65    ss..pressed..pre
00AB20:  73 73 69 6E 67 0D 0A 70 72 65 73 75 6D 61 62 6C    ssing..presumabl
00AB30:  79 0D 0A 70 72 65 74 74 79 0D 0A 70 72 65 76 65    y..pretty..preve
00AB40:  6E 74 0D 0A 70 72 65 76 65 6E 74 65 64 0D 0A 70    nt..prevented..p
00AB50:  72 65 76 65 6E 74 69 6E 67 0D 0A 70 72 65 76 65    reventing..preve
00AB60:  6E 74 73 0D 0A 70 72 65 76 69 65 77 69 6E 67 0D    nts..previewing.
00AB70:  0A 70 72 65 76 69 6F 75 73 0D 0A 70 72 65 76 69    .previous..previ
00AB80:  6F 75 73 6C 79 0D 0A 70 72 65 77 72 69 74 74 65    ously..prewritte
00AB90:  6E 0D 0A 70 72 69 63 65 0D 0A 70 72 69 6D 61 72    n..price..primar
00ABA0:  69 6C 79 0D 0A 70 72 69 6D 61 72 79 0D 0A 70 72    ily..primary..pr
00ABB0:  69 6D 69 74 69 76 65 73 0D 0A 70 72 69 6E 74 0D    imitives..print.
00ABC0:  0A 70 72 69 6E 74 61 62 6C 65 0D 0A 70 72 69 6E    .printable..prin
00ABD0:  74 65 64 0D 0A 70 72 69 6E 74 65 72 0D 0A 70 72    ted..printer..pr
00ABE0:  69 6E 74 69 6E 67 0D 0A 70 72 69 6E 74 73 0D 0A    inting..prints..
00ABF0:  70 72 69 6F 72 0D 0A 70 72 69 6F 72 69 74 79 0D    prior..priority.
00AC00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00AC10:  09 00 01 00 02 09 52 E5 09 00 41 02 00 00 00 02    ......R...A.....
00AC20:  09 00 46 02 00 00 00 02 09 00 42 02 00 00 00 02    ..F.......B.....
00AC30:  09 00 47 02 00 00 00 02 09 00 43 02 00 00 00 02    ..G.......C.....
00AC40:  09 00 48 02 00 00 00 02 09 00 44 02 00 00 00 02    ..H.......D.....
00AC50:  09 00 49 02 00 00 00 02 09 00 45 02 00 00 00 02    ..I.......E.....
00AC60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AC70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AC80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AC90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ACF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00AD00:  0A 72 65 70 65 61 74 65 64 6C 79 0D 0A 72 65 70    .repeatedly..rep
00AD10:  65 61 74 69 6E 67 0D 0A 72 65 70 65 74 69 74 69    eating..repetiti
00AD20:  76 65 0D 0A 72 65 70 6C 61 63 65 0D 0A 72 65 70    ve..replace..rep
00AD30:  6C 61 63 65 64 0D 0A 72 65 70 6C 61 63 65 6D 65    laced..replaceme
00AD40:  6E 74 0D 0A 72 65 70 6C 61 63 65 73 0D 0A 72 65    nt..replaces..re
00AD50:  70 6C 61 63 69 6E 67 0D 0A 72 65 70 6F 72 74 0D    placing..report.
00AD60:  0A 72 65 70 6F 72 74 65 64 0D 0A 72 65 70 6F 72    .reported..repor
00AD70:  74 69 6E 67 0D 0A 72 65 70 6F 72 74 73 0D 0A 72    ting..reports..r
00AD80:  65 70 72 65 73 65 6E 74 0D 0A 72 65 70 72 65 73    epresent..repres
00AD90:  65 6E 74 61 74 69 6F 6E 0D 0A 72 65 70 72 65 73    entation..repres
00ADA0:  65 6E 74 61 74 69 6F 6E 73 0D 0A 72 65 70 72 65    entations..repre
00ADB0:  73 65 6E 74 65 64 0D 0A 72 65 70 72 65 73 65 6E    sented..represen
00ADC0:  74 69 6E 67 0D 0A 72 65 70 72 65 73 65 6E 74 73    ting..represents
00ADD0:  0D 0A 72 65 70 72 69 6E 74 0D 0A 72 65 71 75 65    ..reprint..reque
00ADE0:  73 74 0D 0A 72 65 71 75 65 73 74 65 64 0D 0A 72    st..requested..r
00ADF0:  65 71 75 65 73 74 73 0D 0A 72 65 71 75 69 72 65    equests..require
00AE00:  0D 0A 72 65 71 75 69 72 65 64 0D 0A 72 65 71 75    ..required..requ
00AE10:  69 72 65 6D 65 6E 74 0D 0A 72 65 71 75 69 72 65    irement..require
00AE20:  6D 65 6E 74 73 0D 0A 72 65 71 75 69 72 65 73 0D    ments..requires.
00AE30:  0A 72 65 71 75 69 72 69 6E 67 0D 0A 72 65 71 75    .requiring..requ
00AE40:  69 73 69 74 65 0D 0A 72 65 73 65 6D 62 6C 65 0D    isite..resemble.
00AE50:  0A 72 65 73 65 6D 62 6C 69 6E 67 0D 0A 72 65 73    .resembling..res
00AE60:  65 72 76 65 0D 0A 72 65 73 65 72 76 65 64 0D 0A    erve..reserved..
00AE70:  72 65 73 65 72 76 65 73 0D 0A 72 65 73 65 72 76    reserves..reserv
00AE80:  69 6E 67 0D 0A 72 65 73 65 74 0D 0A 72 65 73 69    ing..reset..resi
00AE90:  64 65 0D 0A 72 65 73 69 64 65 6E 74 0D 0A 72 65    de..resident..re
00AEA0:  73 69 64 65 73 0D 0A 72 65 73 69 64 69 6E 67 0D    sides..residing.
00AEB0:  0A 72 65 73 69 7A 65 64 0D 0A 72 65 73 6F 6C 76    .resized..resolv
00AEC0:  65 0D 0A 72 65 73 6F 72 74 0D 0A 72 65 73 6F 75    e..resort..resou
00AED0:  72 63 65 0D 0A 72 65 73 6F 75 72 63 65 73 0D 0A    rce..resources..
00AEE0:  72 65 73 70 65 63 74 0D 0A 72 65 73 70 65 63 74    respect..respect
00AEF0:  61 62 6C 65 0D 0A 72 65 73 70 65 63 74 69 76 65    able..respective
00AF00:  6F 6C 75 74 69 6F 6E 0D 0A 73 6F 6C 76 65 64 0D    olution..solved.
00AF10:  0A 73 6F 6C 76 69 6E 67 0D 0A 73 6F 6D 65 0D 0A    .solving..some..
00AF20:  73 6F 6D 65 74 68 69 6E 67 0D 0A 73 6F 6D 65 74    something..somet
00AF30:  69 6D 65 73 0D 0A 73 6F 6D 65 77 68 61 74 0D 0A    imes..somewhat..
00AF40:  73 6F 6D 65 77 68 65 72 65 0D 0A 73 6F 6F 6E 0D    somewhere..soon.
00AF50:  0A 73 6F 6F 6E 65 72 0D 0A 73 6F 72 74 0D 0A 73    .sooner..sort..s
00AF60:  6F 72 74 65 64 0D 0A 73 6F 72 74 69 6E 67 0D 0A    orted..sorting..
00AF70:  73 6F 72 74 73 0D 0A 73 6F 75 67 68 74 0D 0A 73    sorts..sought..s
00AF80:  6F 75 6E 64 0D 0A 73 6F 75 6E 64 65 64 0D 0A 73    ound..sounded..s
00AF90:  6F 75 6E 64 73 0D 0A 73 6F 75 72 63 65 0D 0A 73    ounds..source..s
00AFA0:  6F 75 72 63 65 73 0D 0A 73 70 61 63 65 0D 0A 73    ources..space..s
00AFB0:  70 61 63 65 64 0D 0A 73 70 61 63 65 73 0D 0A 73    paced..spaces..s
00AFC0:  70 61 63 69 6E 67 0D 0A 73 70 61 6E 0D 0A 73 70    pacing..span..sp
00AFD0:  65 63 69 61 6C 0D 0A 73 70 65 63 69 61 6C 6C 79    ecial..specially
00AFE0:  0D 0A 73 70 65 63 69 66 69 63 0D 0A 73 70 65 63    ..specific..spec
00AFF0:  69 66 69 63 61 6C 6C 79 0D 0A 73 70 65 63 69 66    ifically..specif
00B000:  69 63 61 74 69 6F 6E 0D 0A 73 70 65 63 69 66 69    ication..specifi
00B010:  63 61 74 69 6F 6E 73 0D 0A 73 70 65 63 69 66 69    cations..specifi
00B020:  65 64 0D 0A 73 70 65 63 69 66 69 65 73 0D 0A 73    ed..specifies..s
00B030:  70 65 63 69 66 79 0D 0A 73 70 65 63 69 66 79 69    pecify..specifyi
00B040:  6E 67 0D 0A 73 70 65 65 64 0D 0A 73 70 65 6C 6C    ng..speed..spell
00B050:  69 6E 67 0D 0A 73 70 65 6E 74 0D 0A 73 70 69 6C    ing..spent..spil
00B060:  6C 69 6E 67 0D 0A 73 70 69 72 69 74 0D 0A 73 70    ling..spirit..sp
00B070:  6C 69 74 0D 0A 73 70 6C 69 74 73 0D 0A 73 70 6C    lit..splits..spl
00B080:  69 74 74 69 6E 67 0D 0A 73 70 72 65 61 64 0D 0A    itting..spread..
00B090:  73 70 72 65 61 64 69 6E 67 0D 0A 73 70 75 72 69    spreading..spuri
00B0A0:  6F 75 73 0D 0A 73 71 75 61 72 65 0D 0A 73 71 75    ous..square..squ
00B0B0:  65 65 7A 65 0D 0A 73 71 75 65 65 7A 65 64 0D 0A    eeze..squeezed..
00B0C0:  73 71 75 65 65 7A 69 6E 67 0D 0A 73 74 61 63 6B    squeezing..stack
00B0D0:  0D 0A 73 74 61 67 69 6E 67 0D 0A 73 74 61 6E 64    ..staging..stand
00B0E0:  0D 0A 73 74 61 6E 64 61 72 64 0D 0A 73 74 61 6E    ..standard..stan
00B0F0:  64 61 72 64 69 7A 65 0D 0A 73 74 61 6E 64 69 6E    dardize..standin
00B100:  6C 79 0D 0A 72 65 73 70 65 63 74 73 0D 0A 72 65    ly..respects..re
00B110:  73 70 6F 6E 64 73 0D 0A 72 65 73 70 6F 6E 73 65    sponds..response
00B120:  0D 0A 72 65 73 70 6F 6E 73 65 73 0D 0A 72 65 73    ..responses..res
00B130:  70 6F 6E 73 69 62 69 6C 69 74 79 0D 0A 72 65 73    ponsibility..res
00B140:  74 0D 0A 72 65 73 74 61 72 74 0D 0A 72 65 73 74    t..restart..rest
00B150:  61 72 74 65 64 0D 0A 72 65 73 74 61 72 74 69 6E    arted..restartin
00B160:  67 0D 0A 72 65 73 74 61 72 74 73 0D 0A 72 65 73    g..restarts..res
00B170:  74 6F 72 65 73 0D 0A 72 65 73 74 6F 72 69 6E 67    tores..restoring
00B180:  0D 0A 72 65 73 74 72 69 63 74 0D 0A 72 65 73 74    ..restrict..rest
00B190:  72 69 63 74 65 64 0D 0A 72 65 73 74 72 69 63 74    ricted..restrict
00B1A0:  69 6F 6E 0D 0A 72 65 73 74 72 69 63 74 69 6F 6E    ion..restriction
00B1B0:  73 0D 0A 72 65 73 75 6C 74 0D 0A 72 65 73 75 6C    s..result..resul
00B1C0:  74 65 64 0D 0A 72 65 73 75 6C 74 69 6E 67 0D 0A    ted..resulting..
00B1D0:  72 65 73 75 6C 74 73 0D 0A 72 65 73 75 6D 65 0D    results..resume.
00B1E0:  0A 72 65 73 75 6D 65 64 0D 0A 72 65 73 75 6D 65    .resumed..resume
00B1F0:  73 0D 0A 72 65 73 75 6D 69 6E 67 0D 0A 72 65 73    s..resuming..res
00B200:  75 6D 70 74 69 6F 6E 0D 0A 72 65 74 61 69 6E 0D    umption..retain.
00B210:  0A 72 65 74 61 69 6E 65 64 0D 0A 72 65 74 61 69    .retained..retai
00B220:  6E 73 0D 0A 72 65 74 72 61 69 6E 69 6E 67 0D 0A    ns..retraining..
00B230:  72 65 74 75 72 6E 0D 0A 72 65 74 75 72 6E 65 64    return..returned
00B240:  0D 0A 72 65 74 75 72 6E 69 6E 67 0D 0A 72 65 74    ..returning..ret
00B250:  75 72 6E 73 0D 0A 72 65 75 73 61 62 6C 65 0D 0A    urns..reusable..
00B260:  72 65 75 73 65 0D 0A 72 65 75 73 65 64 0D 0A 72    reuse..reused..r
00B270:  65 75 73 69 6E 67 0D 0A 72 65 76 65 72 73 65 0D    eusing..reverse.
00B280:  0A 72 65 76 65 72 73 65 64 0D 0A 72 65 76 65 72    .reversed..rever
00B290:  73 65 73 0D 0A 72 65 76 69 65 77 0D 0A 72 65 76    ses..review..rev
00B2A0:  69 73 65 64 0D 0A 72 65 76 69 73 69 6E 67 0D 0A    ised..revising..
00B2B0:  72 65 76 69 73 69 6F 6E 0D 0A 72 65 77 72 69 74    revision..rewrit
00B2C0:  65 0D 0A 72 65 77 72 69 74 69 6E 67 0D 0A 72 65    e..rewriting..re
00B2D0:  77 72 69 74 74 65 6E 0D 0A 72 69 63 68 0D 0A 72    written..rich..r
00B2E0:  69 67 68 74 0D 0A 72 69 67 68 74 6D 6F 73 74 0D    ight..rightmost.
00B2F0:  0A 72 69 67 68 74 73 0D 0A 72 6F 61 64 0D 0A 72    .rights..road..r
00B300:  67 0D 0A 73 74 61 6E 64 73 0D 0A 73 74 61 72 0D    g..stands..star.
00B310:  0A 73 74 61 72 74 0D 0A 73 74 61 72 74 65 64 0D    .start..started.
00B320:  0A 73 74 61 72 74 69 6E 67 0D 0A 73 74 61 72 74    .starting..start
00B330:  73 0D 0A 73 74 61 74 65 0D 0A 73 74 61 74 65 64    s..state..stated
00B340:  0D 0A 73 74 61 74 65 6D 65 6E 74 0D 0A 73 74 61    ..statement..sta
00B350:  74 65 6D 65 6E 74 73 0D 0A 73 74 61 74 75 73 0D    tements..status.
00B360:  0A 73 74 61 79 0D 0A 73 74 65 61 6C 73 0D 0A 73    .stay..steals..s
00B370:  74 65 65 70 0D 0A 73 74 65 70 0D 0A 73 74 65 70    teep..step..step
00B380:  73 0D 0A 73 74 69 63 6B 0D 0A 73 74 69 6C 6C 0D    s..stick..still.
00B390:  0A 73 74 6F 70 0D 0A 73 74 6F 70 70 69 6E 67 0D    .stop..stopping.
00B3A0:  0A 73 74 6F 70 73 0D 0A 73 74 6F 72 61 67 65 0D    .stops..storage.
00B3B0:  0A 73 74 6F 72 65 64 0D 0A 73 74 6F 72 65 73 0D    .stored..stores.
00B3C0:  0A 73 74 72 61 69 67 68 74 0D 0A 73 74 72 61 6E    .straight..stran
00B3D0:  67 65 0D 0A 73 74 72 65 61 6D 0D 0A 73 74 72 69    ge..stream..stri
00B3E0:  63 74 0D 0A 73 74 72 69 63 74 6C 79 0D 0A 73 74    ct..strictly..st
00B3F0:  72 69 6B 65 73 0D 0A 73 74 72 69 6E 67 0D 0A 73    rikes..string..s
00B400:  74 72 69 6E 67 73 0D 0A 73 74 72 69 70 70 65 64    trings..stripped
00B410:  0D 0A 73 74 72 6F 6B 65 73 0D 0A 73 74 72 75 63    ..strokes..struc
00B420:  74 75 72 65 0D 0A 73 74 72 75 63 74 75 72 65 64    ture..structured
00B430:  0D 0A 73 74 72 75 63 74 75 72 65 73 0D 0A 73 74    ..structures..st
00B440:  75 64 65 6E 74 73 0D 0A 73 74 75 64 69 65 64 0D    udents..studied.
00B450:  0A 73 74 75 64 79 0D 0A 73 74 79 6C 65 64 0D 0A    .study..styled..
00B460:  73 75 62 6A 65 63 74 0D 0A 73 75 62 6D 69 74 74    subject..submitt
00B470:  65 64 0D 0A 73 75 62 6F 72 64 69 6E 61 74 65 0D    ed..subordinate.
00B480:  0A 73 75 62 70 72 6F 67 72 61 6D 73 0D 0A 73 75    .subprograms..su
00B490:  62 72 6F 75 74 69 6E 65 0D 0A 73 75 62 72 6F 75    broutine..subrou
00B4A0:  74 69 6E 65 73 0D 0A 73 75 62 73 63 72 69 70 74    tines..subscript
00B4B0:  65 64 0D 0A 73 75 62 73 63 72 69 70 74 73 0D 0A    ed..subscripts..
00B4C0:  73 75 62 73 65 63 74 69 6F 6E 0D 0A 73 75 62 73    subsection..subs
00B4D0:  65 63 74 69 6F 6E 73 0D 0A 73 75 62 73 65 71 75    ections..subsequ
00B4E0:  65 6E 74 0D 0A 73 75 62 73 65 74 0D 0A 73 75 62    ent..subset..sub
00B4F0:  73 74 61 6E 74 69 61 6C 6C 79 0D 0A 73 75 62 73    stantially..subs
00B500:  6F 63 6B 0D 0A 72 6F 6F 6D 0D 0A 72 6F 74 61 74    ock..room..rotat
00B510:  65 0D 0A 72 6F 74 61 74 65 73 0D 0A 72 6F 75 6E    e..rotates..roun
00B520:  64 0D 0A 72 6F 75 6E 64 65 64 0D 0A 72 6F 75 74    d..rounded..rout
00B530:  65 0D 0A 72 6F 75 74 69 6E 65 0D 0A 72 6F 75 74    e..routine..rout
00B540:  69 6E 65 73 0D 0A 72 75 62 0D 0A 72 75 62 62 65    ines..rub..rubbe
00B550:  64 0D 0A 72 75 6C 65 0D 0A 72 75 6C 65 73 0D 0A    d..rule..rules..
00B560:  72 75 6E 0D 0A 72 75 6E 6E 69 6E 67 0D 0A 72 75    run..running..ru
00B570:  6E 73 0D 0A 73 0D 0A 73 61 66 65 0D 0A 73 61 66    ns..s..safe..saf
00B580:  65 67 75 61 72 64 0D 0A 73 61 69 64 0D 0A 73 61    eguard..said..sa
00B590:  6B 65 0D 0A 73 61 6D 65 0D 0A 73 61 6D 70 6C 65    ke..same..sample
00B5A0:  0D 0A 73 61 6E 64 77 69 63 68 65 64 0D 0A 73 61    ..sandwiched..sa
00B5B0:  76 65 0D 0A 73 61 76 65 64 0D 0A 73 61 76 65 73    ve..saved..saves
00B5C0:  0D 0A 73 61 76 69 6E 67 0D 0A 73 61 79 0D 0A 73    ..saving..say..s
00B5D0:  61 79 73 0D 0A 73 63 61 6C 65 0D 0A 73 63 61 6C    ays..scale..scal
00B5E0:  65 64 0D 0A 73 63 61 6E 0D 0A 73 63 61 6E 73 0D    ed..scan..scans.
00B5F0:  0A 73 63 68 65 6D 65 0D 0A 73 63 69 65 6E 63 65    .scheme..science
00B600:  0D 0A 73 63 69 65 6E 74 69 66 69 63 0D 0A 73 63    ..scientific..sc
00B610:  6F 72 65 0D 0A 73 63 72 65 61 6D 0D 0A 73 63 72    ore..scream..scr
00B620:  65 65 6E 0D 0A 73 63 72 6F 6C 6C 65 64 0D 0A 73    een..scrolled..s
00B630:  63 72 6F 6C 6C 69 6E 67 0D 0A 73 63 72 6F 6C 6C    crolling..scroll
00B640:  73 0D 0A 73 65 61 72 63 68 0D 0A 73 65 61 72 63    s..search..searc
00B650:  68 65 64 0D 0A 73 65 61 72 63 68 65 73 0D 0A 73    hed..searches..s
00B660:  65 61 72 63 68 69 6E 67 0D 0A 73 65 63 6F 6E 64    earching..second
00B670:  0D 0A 73 65 63 6F 6E 64 61 72 79 0D 0A 73 65 63    ..secondary..sec
00B680:  74 69 6F 6E 0D 0A 73 65 63 74 69 6F 6E 73 0D 0A    tion..sections..
00B690:  73 65 63 74 6F 72 0D 0A 73 65 63 74 6F 72 73 0D    sector..sectors.
00B6A0:  0A 73 65 63 75 72 65 0D 0A 73 65 63 75 72 69 74    .secure..securit
00B6B0:  79 0D 0A 73 65 65 0D 0A 73 65 65 6B 0D 0A 73 65    y..see..seek..se
00B6C0:  65 6B 69 6E 67 0D 0A 73 65 65 6B 73 0D 0A 73 65    eking..seeks..se
00B6D0:  65 6D 0D 0A 73 65 65 6D 65 64 0D 0A 73 65 65 6D    em..seemed..seem
00B6E0:  73 0D 0A 73 65 65 6E 0D 0A 73 65 65 73 0D 0A 73    s..seen..sees..s
00B6F0:  65 67 6D 65 6E 74 65 64 0D 0A 73 65 67 6D 65 6E    egmented..segmen
00B700:  74 69 74 75 74 65 0D 0A 73 75 62 73 74 69 74 75    titute..substitu
00B710:  74 65 64 0D 0A 73 75 62 73 74 69 74 75 74 65 73    ted..substitutes
00B720:  0D 0A 73 75 62 73 74 69 74 75 74 69 6F 6E 0D 0A    ..substitution..
00B730:  73 75 62 73 74 69 74 75 74 69 6F 6E 73 0D 0A 73    substitutions..s
00B740:  75 62 74 72 61 63 74 0D 0A 73 75 62 74 72 61 63    ubtract..subtrac
00B750:  74 65 64 0D 0A 73 75 62 74 72 61 63 74 69 6E 67    ted..subtracting
00B760:  0D 0A 73 75 62 74 72 61 63 74 73 0D 0A 73 75 63    ..subtracts..suc
00B770:  63 65 65 64 0D 0A 73 75 63 63 65 73 73 0D 0A 73    ceed..success..s
00B780:  75 63 63 65 73 73 66 75 6C 0D 0A 73 75 63 63 65    uccessful..succe
00B790:  73 73 66 75 6C 6C 79 0D 0A 73 75 63 63 65 73 73    ssfully..success
00B7A0:  69 76 65 0D 0A 73 75 63 63 65 73 73 69 76 65 6C    ive..successivel
00B7B0:  79 0D 0A 73 75 63 68 0D 0A 73 75 66 66 65 72 0D    y..such..suffer.
00B7C0:  0A 73 75 66 66 69 63 65 0D 0A 73 75 66 66 69 78    .suffice..suffix
00B7D0:  0D 0A 73 75 66 66 69 78 65 73 0D 0A 73 75 67 67    ..suffixes..sugg
00B7E0:  65 73 74 0D 0A 73 75 67 67 65 73 74 65 64 0D 0A    est..suggested..
00B7F0:  73 75 67 67 65 73 74 69 6F 6E 0D 0A 73 75 67 67    suggestion..sugg
00B800:  65 73 74 69 6F 6E 73 0D 0A 73 75 67 67 65 73 74    estions..suggest
00B810:  73 0D 0A 73 75 69 74 0D 0A 73 75 69 74 61 62 6C    s..suit..suitabl
00B820:  65 0D 0A 73 75 69 74 65 64 0D 0A 73 75 6D 0D 0A    e..suited..sum..
00B830:  73 75 6D 6D 61 72 79 0D 0A 73 75 70 65 72 66 6C    summary..superfl
00B840:  75 6F 75 73 0D 0A 73 75 70 65 72 69 6F 72 0D 0A    uous..superior..
00B850:  73 75 70 70 6C 65 6D 65 6E 74 0D 0A 73 75 70 70    supplement..supp
00B860:  6C 69 65 64 0D 0A 73 75 70 70 6C 69 65 73 0D 0A    lied..supplies..
00B870:  73 75 70 70 6C 79 0D 0A 73 75 70 70 6C 79 69 6E    supply..supplyin
00B880:  67 0D 0A 73 75 70 70 6F 72 74 0D 0A 73 75 70 70    g..support..supp
00B890:  6F 72 74 65 64 0D 0A 73 75 70 70 6F 72 74 73 0D    orted..supports.
00B8A0:  0A 73 75 70 70 6F 73 65 0D 0A 73 75 70 70 72 65    .suppose..suppre
00B8B0:  73 73 0D 0A 73 75 70 70 72 65 73 73 65 64 0D 0A    ss..suppressed..
00B8C0:  73 75 72 65 0D 0A 73 75 72 66 61 63 65 0D 0A 73    sure..surface..s
00B8D0:  75 72 70 72 69 73 65 0D 0A 73 75 72 72 6F 75 6E    urprise..surroun
00B8E0:  64 65 64 0D 0A 73 75 72 72 6F 75 6E 64 69 6E 67    ded..surrounding
00B8F0:  0D 0A 73 75 72 76 69 76 65 0D 0A 73 75 73 70 69    ..survive..suspi
00B900:  74 73 0D 0A 73 65 6C 64 6F 6D 0D 0A 73 65 6C 65    ts..seldom..sele
00B910:  63 74 65 64 0D 0A 73 65 6C 65 63 74 69 6F 6E 0D    cted..selection.
00B920:  0A 73 65 6C 65 63 74 73 0D 0A 73 65 6C 66 0D 0A    .selects..self..
00B930:  73 65 6C 66 2D 63 6F 6E 74 61 69 6E 65 64 0D 0A    self-contained..
00B940:  73 65 6D 69 63 6F 6C 6F 6E 0D 0A 73 65 6D 69 63    semicolon..semic
00B950:  6F 6C 6F 6E 73 0D 0A 73 65 6E 64 0D 0A 73 65 6E    olons..send..sen
00B960:  64 69 6E 67 0D 0A 73 65 6E 64 73 0D 0A 73 65 6E    ding..sends..sen
00B970:  69 6F 72 0D 0A 73 65 6E 73 69 74 69 76 65 0D 0A    ior..sensitive..
00B980:  73 65 6E 74 0D 0A 73 65 6E 74 65 6E 63 65 0D 0A    sent..sentence..
00B990:  73 65 70 61 72 61 74 65 0D 0A 73 65 70 61 72 61    separate..separa
00B9A0:  74 65 64 0D 0A 73 65 70 61 72 61 74 65 6C 79 0D    ted..separately.
00B9B0:  0A 73 65 70 61 72 61 74 65 73 0D 0A 73 65 70 61    .separates..sepa
00B9C0:  72 61 74 6F 72 0D 0A 73 65 70 74 65 6D 62 65 72    rator..september
00B9D0:  0D 0A 73 65 71 75 65 6E 63 65 0D 0A 73 65 71 75    ..sequence..sequ
00B9E0:  65 6E 63 65 73 0D 0A 73 65 71 75 65 6E 74 69 61    ences..sequentia
00B9F0:  6C 0D 0A 73 65 71 75 65 6E 74 69 61 6C 6C 79 0D    l..sequentially.
00BA00:  0A 73 65 72 69 61 6C 0D 0A 73 65 72 69 61 6C 6C    .serial..seriall
00BA10:  79 0D 0A 73 65 72 69 65 73 0D 0A 73 65 72 76 65    y..series..serve
00BA20:  0D 0A 73 65 72 76 65 73 0D 0A 73 65 72 76 69 63    ..serves..servic
00BA30:  65 0D 0A 73 65 72 76 69 63 65 73 0D 0A 73 65 74    e..services..set
00BA40:  0D 0A 73 65 74 73 0D 0A 73 65 74 74 69 6E 67 0D    ..sets..setting.
00BA50:  0A 73 65 74 74 69 6E 67 73 0D 0A 73 65 74 75 70    .settings..setup
00BA60:  0D 0A 73 65 76 65 72 61 6C 0D 0A 73 68 61 72 65    ..several..share
00BA70:  64 0D 0A 73 68 61 72 70 0D 0A 73 68 65 65 74 0D    d..sharp..sheet.
00BA80:  0A 73 68 65 65 74 73 0D 0A 73 68 65 6C 6C 0D 0A    .sheets..shell..
00BA90:  73 68 69 66 74 0D 0A 73 68 69 66 74 65 64 0D 0A    shift..shifted..
00BAA0:  73 68 69 66 74 73 0D 0A 73 68 69 70 70 69 6E 67    shifts..shipping
00BAB0:  0D 0A 73 68 6F 72 74 0D 0A 73 68 6F 72 74 61 67    ..short..shortag
00BAC0:  65 0D 0A 73 68 6F 72 74 65 72 0D 0A 73 68 6F 72    e..shorter..shor
00BAD0:  74 68 61 6E 64 0D 0A 73 68 6F 75 6C 64 0D 0A 73    thand..should..s
00BAE0:  68 6F 75 6C 64 6E 27 74 0D 0A 73 68 6F 77 0D 0A    houldn't..show..
00BAF0:  73 68 6F 77 69 6E 67 0D 0A 73 68 6F 77 6E 0D 0A    showing..shown..
00BB00:  63 69 6F 75 73 0D 0A 73 77 61 70 0D 0A 73 77 61    cious..swap..swa
00BB10:  70 73 0D 0A 73 77 69 74 63 68 0D 0A 73 77 69 74    ps..switch..swit
00BB20:  63 68 65 73 0D 0A 73 77 69 74 63 68 69 6E 67 0D    ches..switching.
00BB30:  0A 73 79 6D 62 6F 6C 0D 0A 73 79 6D 62 6F 6C 69    .symbol..symboli
00BB40:  63 0D 0A 73 79 6D 62 6F 6C 69 63 61 6C 6C 79 0D    c..symbolically.
00BB50:  0A 73 79 6D 62 6F 6C 73 0D 0A 73 79 6E 6F 6E 79    .symbols..synony
00BB60:  6D 73 0D 0A 73 79 6E 74 61 78 0D 0A 73 79 73 74    ms..syntax..syst
00BB70:  65 6D 0D 0A 73 79 73 74 65 6D 73 0D 0A 74 0D 0A    em..systems..t..
00BB80:  74 61 62 0D 0A 74 61 62 6C 65 0D 0A 74 61 62 6C    tab..table..tabl
00BB90:  65 73 0D 0A 74 61 62 73 0D 0A 74 61 69 6C 0D 0A    es..tabs..tail..
00BBA0:  74 61 6B 65 0D 0A 74 61 6B 65 6E 0D 0A 74 61 6B    take..taken..tak
00BBB0:  65 73 0D 0A 74 61 6B 69 6E 67 0D 0A 74 61 70 65    es..taking..tape
00BBC0:  73 0D 0A 74 61 72 67 65 74 0D 0A 74 61 73 6B 0D    s..target..task.
00BBD0:  0A 74 61 73 6B 73 0D 0A 74 65 63 68 6E 69 71 75    .tasks..techniqu
00BBE0:  65 0D 0A 74 65 63 68 6E 69 71 75 65 73 0D 0A 74    e..techniques..t
00BBF0:  65 64 69 6F 75 73 0D 0A 74 65 6C 65 70 68 6F 6E    edious..telephon
00BC00:  65 0D 0A 74 65 6C 6C 0D 0A 74 65 6C 6C 69 6E 67    e..tell..telling
00BC10:  0D 0A 74 65 6C 6C 73 0D 0A 74 65 6D 70 6F 72 61    ..tells..tempora
00BC20:  72 69 6C 79 0D 0A 74 65 6D 70 6F 72 61 72 79 0D    rily..temporary.
00BC30:  0A 74 65 6D 70 74 65 64 0D 0A 74 65 6E 64 0D 0A    .tempted..tend..
00BC40:  74 65 6E 64 65 6E 63 69 65 73 0D 0A 74 65 6E 64    tendencies..tend
00BC50:  73 0D 0A 74 65 72 6D 0D 0A 74 65 72 6D 69 6E 61    s..term..termina
00BC60:  74 65 0D 0A 74 65 72 6D 69 6E 61 74 65 64 0D 0A    te..terminated..
00BC70:  74 65 72 6D 69 6E 61 74 65 73 0D 0A 74 65 72 6D    terminates..term
00BC80:  69 6E 61 74 69 6E 67 0D 0A 74 65 72 6D 69 6E 61    inating..termina
00BC90:  74 69 6F 6E 0D 0A 74 65 72 6D 69 6E 61 74 6F 72    tion..terminator
00BCA0:  0D 0A 74 65 72 6D 69 6E 6F 6C 6F 67 79 0D 0A 74    ..terminology..t
00BCB0:  65 72 6D 73 0D 0A 74 65 73 74 0D 0A 74 65 73 74    erms..test..test
00BCC0:  65 64 0D 0A 74 65 73 74 69 6E 67 0D 0A 74 65 73    ed..testing..tes
00BCD0:  74 73 0D 0A 74 65 78 74 0D 0A 74 65 78 74 75 61    ts..text..textua
00BCE0:  6C 0D 0A 74 68 61 6E 0D 0A 74 68 61 6E 6B 73 0D    l..than..thanks.
00BCF0:  0A 74 68 61 74 0D 0A 74 68 61 74 27 73 0D 0A 74    .that..that's..t
00BD00:  73 68 6F 77 73 0D 0A 73 68 75 64 64 65 72 0D 0A    shows..shudder..
00BD10:  73 68 75 66 66 6C 69 6E 67 0D 0A 73 69 64 65 0D    shuffling..side.
00BD20:  0A 73 69 64 65 64 0D 0A 73 69 64 65 73 0D 0A 73    .sided..sides..s
00BD30:  69 64 65 73 74 65 70 70 65 64 0D 0A 73 69 67 6E    idestepped..sign
00BD40:  0D 0A 73 69 67 6E 61 6C 0D 0A 73 69 67 6E 61 6C    ..signal..signal
00BD50:  69 6E 67 0D 0A 73 69 67 6E 61 6C 73 0D 0A 73 69    ing..signals..si
00BD60:  67 6E 65 64 0D 0A 73 69 67 6E 69 66 69 63 61 6E    gned..significan
00BD70:  63 65 0D 0A 73 69 67 6E 69 66 69 63 61 6E 74 0D    ce..significant.
00BD80:  0A 73 69 67 6E 69 66 69 63 61 6E 74 6C 79 0D 0A    .significantly..
00BD90:  73 69 67 6E 69 66 79 69 6E 67 0D 0A 73 69 67 6E    signifying..sign
00BDA0:  73 0D 0A 73 69 6C 65 6E 63 65 64 0D 0A 73 69 6C    s..silenced..sil
00BDB0:  65 6E 74 6C 79 0D 0A 73 69 6D 69 6C 61 72 0D 0A    ently..similar..
00BDC0:  73 69 6D 69 6C 61 72 6C 79 0D 0A 73 69 6D 70 6C    similarly..simpl
00BDD0:  65 0D 0A 73 69 6D 70 6C 65 72 0D 0A 73 69 6D 70    e..simpler..simp
00BDE0:  6C 65 73 74 0D 0A 73 69 6D 70 6C 69 63 69 74 79    lest..simplicity
00BDF0:  0D 0A 73 69 6D 70 6C 79 0D 0A 73 69 6D 75 6C 61    ..simply..simula
00BE00:  74 69 6F 6E 0D 0A 73 69 6D 75 6C 74 61 6E 65 6F    tion..simultaneo
00BE10:  75 73 6C 79 0D 0A 73 69 6E 63 65 0D 0A 73 69 6E    usly..since..sin
00BE20:  63 65 72 65 0D 0A 73 69 6E 63 65 72 65 6C 79 0D    cere..sincerely.
00BE30:  0A 73 69 6E 67 6C 65 0D 0A 73 69 74 73 0D 0A 73    .single..sits..s
00BE40:  69 74 74 69 6E 67 0D 0A 73 69 74 75 61 74 69 6F    itting..situatio
00BE50:  6E 0D 0A 73 69 74 75 61 74 69 6F 6E 73 0D 0A 73    n..situations..s
00BE60:  69 78 0D 0A 73 69 7A 65 0D 0A 73 69 7A 65 73 0D    ix..size..sizes.
00BE70:  0A 73 69 7A 69 6E 67 0D 0A 73 6B 69 70 0D 0A 73    .sizing..skip..s
00BE80:  6B 69 70 70 65 64 0D 0A 73 6B 69 70 70 69 6E 67    kipped..skipping
00BE90:  0D 0A 73 6B 69 70 73 0D 0A 73 6C 61 73 68 0D 0A    ..skips..slash..
00BEA0:  73 6C 61 73 68 65 73 0D 0A 73 6C 65 65 70 0D 0A    slashes..sleep..
00BEB0:  73 6C 69 67 68 74 0D 0A 73 6C 69 67 68 74 6C 79    slight..slightly
00BEC0:  0D 0A 73 6C 6F 77 65 72 0D 0A 73 6D 61 6C 6C 0D    ..slower..small.
00BED0:  0A 73 6D 61 6C 6C 65 72 0D 0A 73 6E 61 70 0D 0A    .smaller..snap..
00BEE0:  73 6E 75 66 66 0D 0A 73 6E 75 66 66 69 6E 67 0D    snuff..snuffing.
00BEF0:  0A 73 6F 0D 0A 73 6F 66 74 77 61 72 65 0D 0A 73    .so..software..s
00BF00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00BF10:  0A 00 01 00 02 09 52 E5 0A 00 41 02 00 00 00 02    ......R...A.....
00BF20:  0A 00 46 02 00 00 00 02 0A 00 42 02 00 00 00 02    ..F.......B.....
00BF30:  0A 00 47 02 00 00 00 02 0A 00 43 02 00 00 00 02    ..G.......C.....
00BF40:  0A 00 48 02 00 00 00 02 0A 00 44 02 00 00 00 02    ..H.......D.....
00BF50:  0A 00 49 02 00 00 00 02 0A 00 45 02 00 00 00 02    ..I.......E.....
00BF60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BF70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BF80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BF90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00BFF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00C000:  68 65 0D 0A 74 68 65 69 72 0D 0A 74 68 65 6D 0D    he..their..them.
00C010:  0A 74 68 65 6D 73 65 6C 76 65 73 0D 0A 74 68 65    .themselves..the
00C020:  6E 0D 0A 74 68 65 6F 72 65 74 69 63 61 6C 6C 79    n..theoretically
00C030:  0D 0A 74 68 65 6F 72 79 0D 0A 74 68 65 72 65 0D    ..theory..there.
00C040:  0A 74 68 65 72 65 61 66 74 65 72 0D 0A 74 68 65    .thereafter..the
00C050:  72 65 66 6F 72 65 0D 0A 74 68 65 73 65 0D 0A 74    refore..these..t
00C060:  68 65 79 0D 0A 74 68 69 6E 67 0D 0A 74 68 69 6E    hey..thing..thin
00C070:  6B 0D 0A 74 68 69 6E 6B 69 6E 67 0D 0A 74 68 69    k..thinking..thi
00C080:  72 64 0D 0A 74 68 69 73 0D 0A 74 68 6F 72 6F 75    rd..this..thorou
00C090:  67 68 0D 0A 74 68 6F 73 65 0D 0A 74 68 6F 75 67    gh..those..thoug
00C0A0:  68 0D 0A 74 68 6F 75 67 68 74 0D 0A 74 68 72 65    h..thought..thre
00C0B0:  65 0D 0A 74 68 72 6F 75 67 68 0D 0A 74 68 72 6F    e..through..thro
00C0C0:  75 67 68 6F 75 74 0D 0A 74 68 75 73 0D 0A 74 69    ughout..thus..ti
00C0D0:  65 64 0D 0A 74 69 67 68 74 0D 0A 74 69 6D 65 0D    ed..tight..time.
00C0E0:  0A 74 69 6D 65 73 0D 0A 74 6F 0D 0A 74 6F 67 65    .times..to..toge
00C0F0:  74 68 65 72 0D 0A 74 6F 67 67 6C 65 0D 0A 74 6F    ther..toggle..to
00C100:  67 67 6C 65 73 0D 0A 74 6F 6C 64 0D 0A 74 6F 6F    ggles..told..too
00C110:  0D 0A 74 6F 6F 6C 0D 0A 74 6F 6F 6C 73 0D 0A 74    ..tool..tools..t
00C120:  6F 70 0D 0A 74 6F 70 69 63 0D 0A 74 6F 74 61 6C    op..topic..total
00C130:  6C 79 0D 0A 74 6F 77 61 72 64 0D 0A 74 72 61 63    ly..toward..trac
00C140:  65 0D 0A 74 72 61 63 6B 0D 0A 74 72 61 63 6B 73    e..track..tracks
00C150:  0D 0A 74 72 61 64 65 0D 0A 74 72 61 64 65 6D 61    ..trade..tradema
00C160:  72 6B 0D 0A 74 72 61 69 6C 65 72 0D 0A 74 72 61    rk..trailer..tra
00C170:  69 6C 69 6E 67 0D 0A 74 72 61 6E 73 61 63 74 69    iling..transacti
00C180:  6F 6E 0D 0A 74 72 61 6E 73 61 63 74 69 6F 6E 73    on..transactions
00C190:  0D 0A 74 72 61 6E 73 66 65 72 0D 0A 74 72 61 6E    ..transfer..tran
00C1A0:  73 66 65 72 72 65 64 0D 0A 74 72 61 6E 73 66 65    sferred..transfe
00C1B0:  72 72 69 6E 67 0D 0A 74 72 61 6E 73 66 65 72 73    rring..transfers
00C1C0:  0D 0A 74 72 61 6E 73 66 6F 72 6D 65 64 0D 0A 74    ..transformed..t
00C1D0:  72 61 6E 73 6C 61 74 65 0D 0A 74 72 61 6E 73 6C    ranslate..transl
00C1E0:  61 74 65 64 0D 0A 74 72 61 6E 73 6C 61 74 69 6E    ated..translatin
00C1F0:  67 0D 0A 74 72 61 6E 73 6C 61 74 69 6F 6E 0D 0A    g..translation..
00C200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C2A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C2B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C2C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C2D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C2E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C2F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C3A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C3B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C3C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C3D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C3E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C3F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00C400:  74 72 61 6E 73 6C 61 74 6F 72 0D 0A 74 72 61 6E    translator..tran
00C410:  73 6C 61 74 6F 72 73 0D 0A 74 72 61 6E 73 6C 69    slators..transli
00C420:  74 65 72 61 74 65 0D 0A 74 72 61 6E 73 6C 69 74    terate..translit
00C430:  65 72 61 74 69 6E 67 0D 0A 74 72 61 76 65 72 73    erating..travers
00C440:  65 64 0D 0A 74 72 65 61 74 0D 0A 74 72 65 61 74    ed..treat..treat
00C450:  65 64 0D 0A 74 72 65 6D 65 6E 64 6F 75 73 0D 0A    ed..tremendous..
00C460:  74 72 69 61 6C 0D 0A 74 72 69 63 6B 0D 0A 74 72    trial..trick..tr
00C470:  69 76 69 61 6C 0D 0A 74 72 75 65 0D 0A 74 72 75    ivial..true..tru
00C480:  6C 79 0D 0A 74 72 75 6E 63 61 74 65 64 0D 0A 74    ly..truncated..t
00C490:  72 79 69 6E 67 0D 0A 74 75 72 6E 0D 0A 74 75 72    rying..turn..tur
00C4A0:  6E 65 64 0D 0A 74 75 72 6E 6B 65 79 0D 0A 74 75    ned..turnkey..tu
00C4B0:  72 6E 73 0D 0A 74 77 6F 0D 0A 74 79 70 65 0D 0A    rns..two..type..
00C4C0:  74 79 70 65 64 0D 0A 74 79 70 65 73 0D 0A 74 79    typed..types..ty
00C4D0:  70 69 63 61 6C 6C 79 0D 0A 74 79 70 69 6E 67 0D    pically..typing.
00C4E0:  0A 74 79 70 6F 67 72 61 70 68 69 63 61 6C 0D 0A    .typographical..
00C4F0:  75 0D 0A 75 6E 61 63 63 65 70 74 61 62 6C 65 0D    u..unacceptable.
00C500:  0A 75 6E 61 66 66 65 63 74 65 64 0D 0A 75 6E 61    .unaffected..una
00C510:  6C 74 65 72 65 64 0D 0A 75 6E 61 6E 74 69 63 69    ltered..unantici
00C520:  70 61 74 65 64 0D 0A 75 6E 63 68 61 6E 67 65 64    pated..unchanged
00C530:  0D 0A 75 6E 63 6F 6D 66 6F 72 74 61 62 6C 65 0D    ..uncomfortable.
00C540:  0A 75 6E 63 6F 6E 64 69 74 69 6F 6E 61 6C 0D 0A    .unconditional..
00C550:  75 6E 64 65 66 69 6E 65 64 0D 0A 75 6E 64 65 72    undefined..under
00C560:  0D 0A 75 6E 64 65 72 6C 69 6E 65 0D 0A 75 6E 64    ..underline..und
00C570:  65 72 6C 69 6E 65 64 0D 0A 75 6E 64 65 72 6C 69    erlined..underli
00C580:  6E 69 6E 67 0D 0A 75 6E 64 65 72 6C 79 69 6E 67    ning..underlying
00C590:  0D 0A 75 6E 64 65 72 73 63 6F 72 65 0D 0A 75 6E    ..underscore..un
00C5A0:  64 65 72 73 63 6F 72 65 73 0D 0A 75 6E 64 65 72    derscores..under
00C5B0:  73 74 61 6E 64 0D 0A 75 6E 64 65 72 73 74 61 6E    stand..understan
00C5C0:  64 69 6E 67 0D 0A 75 6E 64 65 72 73 74 6F 6F 64    ding..understood
00C5D0:  0D 0A 75 6E 65 71 75 61 6C 0D 0A 75 6E 66 6F 72    ..unequal..unfor
00C5E0:  74 75 6E 61 74 65 6C 79 0D 0A 75 6E 69 6E 74 65    tunately..uninte
00C5F0:  72 72 75 70 74 61 62 6C 65 0D 0A 75 6E 69 6E 74    rruptable..unint
00C600:  53 6D 61 6C 6C 2D 54 6F 6F 6C 73 20 52 65 76 69    Small-Tools Revi
00C610:  73 69 6F 6E 20 48 69 73 74 6F 72 79 0D 0A 0D 0A    sion History....
00C620:  2D 2D 20 69 6E 63 6C 75 64 65 64 20 69 6E 20 76    -- included in v
00C630:  65 72 73 69 6F 6E 20 31 2E 31 0D 0A 0D 0A 2D 2D    ersion 1.1....--
00C640:  2D 20 65 64 74 20 63 68 61 6E 67 65 73 0D 0A 20    - edt changes.. 
00C650:  31 2E 20 44 6F 20 6E 6F 74 20 61 62 6F 72 74 20    1. Do not abort 
00C660:  72 75 6E 20 6F 6E 20 65 72 72 6F 72 20 6C 6F 61    run on error loa
00C670:  64 69 6E 67 20 66 69 6C 65 20 6E 61 6D 65 64 20    ding file named 
00C680:  69 6E 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 2E    in command line.
00C690:  0D 0A 20 32 2E 20 52 65 6E 61 6D 65 20 6F 72 69    .. 2. Rename ori
00C6A0:  67 69 6E 61 6C 20 66 69 6C 65 20 74 6F 20 2E 24    ginal file to .$
00C6B0:  24 24 20 65 78 74 65 6E 73 69 6F 6E 20 62 65 66    $$ extension bef
00C6C0:  6F 72 65 20 77 72 69 74 69 6E 67 20 69 74 20 61    ore writing it a
00C6D0:  6E 65 77 2E 0D 0A 20 20 20 20 44 65 6C 65 74 65    new...    Delete
00C6E0:  20 2E 24 24 24 20 66 69 6C 65 20 69 66 20 73 75     .$$$ file if su
00C6F0:  63 63 65 73 73 66 75 6C 2E 0D 0A 20 33 2E 20 41    ccessful... 3. A
00C700:  64 64 20 22 7A 22 20 63 6F 6D 6D 61 6E 64 20 74    dd "z" command t
00C710:  6F 20 22 7A 69 70 22 20 74 68 72 6F 75 67 68 20    o "zip" through 
00C720:  74 68 65 20 62 75 66 66 65 72 20 66 72 6F 6D 20    the buffer from 
00C730:  74 68 65 20 63 75 72 72 65 6E 74 20 6C 69 6E 65    the current line
00C740:  0D 0A 20 20 20 20 75 6E 74 69 6C 20 69 6E 74 65    ..    until inte
00C750:  72 72 75 70 74 65 64 20 62 79 20 61 6E 79 20 69    rrupted by any i
00C760:  6E 70 75 74 2E 0D 0A 20 34 2E 20 41 62 6F 72 74    nput... 4. Abort
00C770:  20 69 74 65 72 61 74 69 76 65 20 63 6F 6D 6D 61     iterative comma
00C780:  6E 64 73 20 6F 6E 20 45 53 43 20 66 72 6F 6D 20    nds on ESC from 
00C790:  63 6F 6E 73 6F 6C 65 2E 0D 0A 20 20 20 20 41 62    console...    Ab
00C7A0:  6F 72 74 20 22 70 72 69 6E 74 22 20 61 6E 64 20    ort "print" and 
00C7B0:  22 7A 69 70 22 20 63 6F 6D 6D 61 6E 64 73 20 6F    "zip" commands o
00C7C0:  6E 20 61 6E 79 20 69 6E 70 75 74 2E 0D 0A 0D 0A    n any input.....
00C7D0:  2D 2D 2D 20 66 6D 74 20 63 68 61 6E 67 65 73 0D    --- fmt changes.
00C7E0:  0A 20 35 2E 20 61 64 64 20 2E 62 66 20 63 6F 6D    . 5. add .bf com
00C7F0:  6D 61 6E 64 20 66 6F 72 20 62 6F 6C 64 66 61 63    mand for boldfac
00C800:  65 72 72 75 70 74 65 64 0D 0A 75 6E 69 71 75 65    errupted..unique
00C810:  0D 0A 75 6E 69 71 75 65 6E 65 73 73 0D 0A 75 6E    ..uniqueness..un
00C820:  69 74 0D 0A 75 6E 69 74 73 0D 0A 75 6E 69 76 65    it..units..unive
00C830:  72 73 69 74 79 0D 0A 75 6E 6B 6E 6F 77 6E 0D 0A    rsity..unknown..
00C840:  75 6E 6C 65 73 73 0D 0A 75 6E 6C 69 6B 65 0D 0A    unless..unlike..
00C850:  75 6E 6C 69 6E 6B 0D 0A 75 6E 6D 61 74 63 68 65    unlink..unmatche
00C860:  64 0D 0A 75 6E 6D 65 6E 74 69 6F 6E 65 64 0D 0A    d..unmentioned..
00C870:  75 6E 6D 6F 64 69 66 69 65 64 0D 0A 75 6E 6E 65    unmodified..unne
00C880:  63 65 73 73 61 72 69 6C 79 0D 0A 75 6E 6E 65 63    cessarily..unnec
00C890:  65 73 73 61 72 79 0D 0A 75 6E 70 72 65 64 69 63    essary..unpredic
00C8A0:  74 61 62 6C 65 0D 0A 75 6E 72 65 63 6F 67 6E 69    table..unrecogni
00C8B0:  7A 61 62 6C 65 0D 0A 75 6E 72 65 73 74 72 69 63    zable..unrestric
00C8C0:  74 65 64 0D 0A 75 6E 73 69 67 6E 65 64 0D 0A 75    ted..unsigned..u
00C8D0:  6E 73 6F 63 69 61 6C 0D 0A 75 6E 73 6F 6C 69 63    nsocial..unsolic
00C8E0:  69 74 65 64 0D 0A 75 6E 73 75 63 63 65 73 73 66    ited..unsuccessf
00C8F0:  75 6C 6C 79 0D 0A 75 6E 74 69 6C 0D 0A 75 6E 74    ully..until..unt
00C900:  6F 75 63 68 65 64 0D 0A 75 6E 75 73 65 64 0D 0A    ouched..unused..
00C910:  75 6E 75 73 75 61 6C 0D 0A 75 6E 77 61 6E 74 65    unusual..unwante
00C920:  64 0D 0A 75 70 0D 0A 75 70 64 61 74 65 0D 0A 75    d..up..update..u
00C930:  70 64 61 74 65 64 0D 0A 75 70 64 61 74 65 73 0D    pdated..updates.
00C940:  0A 75 70 64 61 74 69 6E 67 0D 0A 75 70 6F 6E 0D    .updating..upon.
00C950:  0A 75 70 70 65 72 0D 0A 75 70 70 65 72 63 61 73    .upper..uppercas
00C960:  65 0D 0A 75 70 77 61 72 64 0D 0A 75 73 61 62 6C    e..upward..usabl
00C970:  65 0D 0A 75 73 61 67 65 0D 0A 75 73 65 0D 0A 75    e..usage..use..u
00C980:  73 65 64 0D 0A 75 73 65 66 75 6C 0D 0A 75 73 65    sed..useful..use
00C990:  72 0D 0A 75 73 65 72 27 73 0D 0A 75 73 65 72 73    r..user's..users
00C9A0:  0D 0A 75 73 65 73 0D 0A 75 73 69 6E 67 0D 0A 75    ..uses..using..u
00C9B0:  73 75 61 6C 0D 0A 75 73 75 61 6C 6C 79 0D 0A 75    sual..usually..u
00C9C0:  73 75 72 70 0D 0A 75 73 75 72 70 73 0D 0A 75 74    surp..usurps..ut
00C9D0:  69 6C 69 74 79 0D 0A 75 74 69 6C 69 7A 61 74 69    ility..utilizati
00C9E0:  6F 6E 0D 0A 76 0D 0A 76 61 6C 69 64 0D 0A 76 61    on..v..valid..va
00C9F0:  6C 69 64 61 74 65 64 0D 0A 76 61 6C 69 64 61 74    lidated..validat
00CA00:  65 2E 0D 0A 20 36 2E 20 61 64 64 20 2D 62 73 23    e... 6. add -bs#
00CA10:  20 73 77 69 74 63 68 20 66 6F 72 20 6E 75 6D 62     switch for numb
00CA20:  65 72 20 6F 66 20 62 6F 6C 64 66 61 63 65 20 73    er of boldface s
00CA30:  74 72 69 6B 65 73 2E 0D 0A 20 37 2E 20 61 64 64    trikes... 7. add
00CA40:  20 2D 73 20 73 77 69 74 63 68 20 74 6F 20 73 68     -s switch to sh
00CA50:  6F 77 20 73 6F 75 72 63 65 20 66 69 6C 65 73 2E    ow source files.
00CA60:  0D 0A 20 38 2E 20 75 73 65 20 73 77 69 74 63 68    .. 8. use switch
00CA70:  20 73 74 61 74 65 6D 65 6E 74 2E 0D 0A 20 39 2E     statement... 9.
00CA80:  20 66 69 78 20 62 75 67 20 63 61 75 73 69 6E 67     fix bug causing
00CA90:  20 74 68 65 20 70 72 69 6E 74 69 6E 67 20 6F 66     the printing of
00CAA0:  20 70 61 67 65 73 20 77 69 74 68 20 6F 6E 6C 79     pages with only
00CAB0:  20 61 20 68 65 61 64 69 6E 67 2F 66 6F 6F 74 69     a heading/footi
00CAC0:  6E 67 2E 0D 0A 31 30 2E 20 61 64 64 20 45 50 53    ng...10. add EPS
00CAD0:  4F 4E 20 6D 6F 64 65 20 66 6F 72 20 75 6E 64 65    ON mode for unde
00CAE0:  72 6C 69 6E 65 73 20 61 6E 64 20 62 6F 6C 64 66    rlines and boldf
00CAF0:  61 63 65 2E 0D 0A 20 20 20 20 2D 62 73 23 20 73    ace...    -bs# s
00CB00:  77 69 74 63 68 20 69 73 20 65 66 66 65 63 74 69    witch is effecti
00CB10:  76 65 20 6F 6E 6C 79 20 69 6E 20 54 54 59 20 6D    ve only in TTY m
00CB20:  6F 64 65 2E 0D 0A 31 31 2E 20 61 64 64 20 2D 74    ode...11. add -t
00CB30:  20 73 77 69 74 63 68 20 74 6F 20 73 65 74 20 54     switch to set T
00CB40:  54 59 20 6D 6F 64 65 2E 0D 0A 31 32 20 20 61 64    TY mode...12  ad
00CB50:  64 20 2E 69 74 20 63 6F 6D 6D 61 6E 64 20 66 6F    d .it command fo
00CB60:  72 20 69 74 61 6C 69 63 73 20 69 6E 20 45 50 53    r italics in EPS
00CB70:  4F 4E 20 6D 6F 64 65 2E 0D 0A 31 33 2E 20 61 64    ON mode...13. ad
00CB80:  64 20 2D 69 20 73 77 69 74 63 68 20 74 6F 20 73    d -i switch to s
00CB90:  75 62 73 74 69 74 75 74 65 20 69 74 61 6C 69 63    ubstitute italic
00CBA0:  73 20 66 6F 72 20 75 6E 64 65 72 6C 69 6E 65 73    s for underlines
00CBB0:  2E 0D 0A 31 34 2E 20 61 64 64 20 2D 75 20 73 77    ...14. add -u sw
00CBC0:  69 74 63 68 20 74 6F 20 73 75 62 73 74 69 74 75    itch to substitu
00CBD0:  74 65 20 75 6E 64 65 72 6C 69 6E 65 73 20 66 6F    te underlines fo
00CBE0:  72 20 69 74 61 6C 69 63 73 2E 0D 0A 31 35 2E 20    r italics...15. 
00CBF0:  6D 61 6B 65 20 62 6F 6C 64 66 61 63 65 20 61 6C    make boldface al
00CC00:  65 73 0D 0A 76 61 6C 6C 65 79 0D 0A 76 61 6C 75    es..valley..valu
00CC10:  61 62 6C 65 0D 0A 76 61 6C 75 65 0D 0A 76 61 6C    able..value..val
00CC20:  75 65 64 0D 0A 76 61 6C 75 65 73 0D 0A 76 61 72    ued..values..var
00CC30:  69 61 62 6C 65 0D 0A 76 61 72 69 61 62 6C 65 73    iable..variables
00CC40:  0D 0A 76 61 72 69 65 73 0D 0A 76 61 72 69 65 74    ..varies..variet
00CC50:  79 0D 0A 76 61 72 69 6F 75 73 0D 0A 76 61 72 79    y..various..vary
00CC60:  0D 0A 76 61 72 79 69 6E 67 0D 0A 76 61 73 74 6C    ..varying..vastl
00CC70:  79 0D 0A 76 65 63 74 6F 72 0D 0A 76 65 72 62 0D    y..vector..verb.
00CC80:  0A 76 65 72 69 66 69 65 73 0D 0A 76 65 72 69 66    .verifies..verif
00CC90:  79 0D 0A 76 65 72 73 61 0D 0A 76 65 72 73 69 6F    y..versa..versio
00CCA0:  6E 0D 0A 76 65 72 73 69 6F 6E 73 0D 0A 76 65 72    n..versions..ver
00CCB0:  74 69 63 61 6C 0D 0A 76 65 72 79 0D 0A 76 69 63    tical..very..vic
00CCC0:  65 0D 0A 76 69 64 65 6F 0D 0A 76 69 65 77 0D 0A    e..video..view..
00CCD0:  76 69 65 77 65 64 0D 0A 76 69 65 77 69 6E 67 0D    viewed..viewing.
00CCE0:  0A 76 69 65 77 73 0D 0A 76 69 6F 6C 61 74 65 64    .views..violated
00CCF0:  0D 0A 76 69 6F 6C 61 74 65 73 0D 0A 76 69 72 74    ..violates..virt
00CD00:  75 61 6C 0D 0A 76 69 72 74 75 61 6C 6C 79 0D 0A    ual..virtually..
00CD10:  76 6F 6C 75 6D 65 0D 0A 77 0D 0A 77 61 69 74 65    volume..w..waite
00CD20:  64 0D 0A 77 61 69 74 69 6E 67 0D 0A 77 61 69 74    d..waiting..wait
00CD30:  73 0D 0A 77 61 6E 74 0D 0A 77 61 6E 74 65 64 0D    s..want..wanted.
00CD40:  0A 77 61 6E 74 73 0D 0A 77 61 72 6E 69 6E 67 0D    .wants..warning.
00CD50:  0A 77 61 73 0D 0A 77 61 73 74 65 64 0D 0A 77 61    .was..wasted..wa
00CD60:  79 0D 0A 77 61 79 73 0D 0A 77 65 0D 0A 77 65 27    y..ways..we..we'
00CD70:  6C 6C 0D 0A 77 65 65 64 0D 0A 77 65 6C 6C 0D 0A    ll..weed..well..
00CD80:  77 65 72 65 0D 0A 77 68 61 74 0D 0A 77 68 61 74    were..what..what
00CD90:  65 76 65 72 0D 0A 77 68 65 6E 0D 0A 77 68 65 6E    ever..when..when
00CDA0:  65 76 65 72 0D 0A 77 68 65 72 65 0D 0A 77 68 65    ever..where..whe
00CDB0:  72 65 76 65 72 0D 0A 77 68 65 74 68 65 72 0D 0A    rever..whether..
00CDC0:  77 68 69 63 68 0D 0A 77 68 69 63 68 65 76 65 72    which..whichever
00CDD0:  0D 0A 77 68 69 6C 65 0D 0A 77 68 69 73 74 6C 65    ..while..whistle
00CDE0:  73 0D 0A 77 68 69 74 65 0D 0A 77 68 6F 0D 0A 77    s..white..who..w
00CDF0:  68 6F 6C 65 0D 0A 77 68 6F 73 65 0D 0A 77 68 79    hole..whose..why
00CE00:  73 6F 20 64 6F 75 62 6C 65 20 73 74 72 69 6B 65    so double strike
00CE10:  2E 0D 0A 31 36 2E 20 65 6E 68 61 6E 63 65 20 69    ...16. enhance i
00CE20:  74 61 6C 69 63 73 2E 0D 0A 31 37 2E 20 75 73 65    talics...17. use
00CE30:  20 22 73 77 69 74 63 68 22 20 69 6E 20 63 6F 6D     "switch" in com
00CE40:  74 79 70 28 29 0D 0A 31 38 2E 20 6B 65 65 70 20    typ()..18. keep 
00CE50:  62 6F 6C 64 2F 69 74 61 6C 69 63 73 2F 75 6E 64    bold/italics/und
00CE60:  65 72 6C 69 6E 65 20 6F 75 74 20 6F 66 20 68 65    erline out of he
00CE70:  61 64 69 6E 67 73 2F 66 6F 6F 74 65 72 73 2E 0D    adings/footers..
00CE80:  0A 31 39 2E 20 64 6F 6E 27 74 20 6F 62 73 63 75    .19. don't obscu
00CE90:  72 65 20 62 6C 61 6E 6B 20 6C 69 6E 65 73 20 77    re blank lines w
00CEA0:  69 74 68 20 2E 75 6C 2C 20 2E 62 66 2C 20 2E 69    ith .ul, .bf, .i
00CEB0:  74 2E 0D 0A 32 30 2E 20 70 72 65 76 65 6E 74 20    t...20. prevent 
00CEC0:  62 6C 61 6E 6B 20 70 61 67 65 73 20 6F 6E 20 2E    blank pages on .
00CED0:  62 70 20 61 74 20 6C 61 73 74 20 6C 69 6E 65 20    bp at last line 
00CEE0:  6F 66 20 61 20 70 61 67 65 2E 0D 0A 32 31 2E 20    of a page...21. 
00CEF0:  61 64 64 20 2D 6E 72 20 73 77 69 74 63 68 20 74    add -nr switch t
00CF00:  6F 20 6E 65 67 61 74 65 20 22 72 65 61 64 79 20    o negate "ready 
00CF10:  70 72 69 6E 74 65 72 2E 2E 2E 22 20 70 72 6F 6D    printer..." prom
00CF20:  70 74 2E 0D 0A 32 32 2E 20 6D 61 6B 65 20 22 2E    pt...22. make ".
00CF30:  6D 70 20 23 22 20 61 6C 67 6F 72 69 74 68 6D 20    mp #" algorithm 
00CF40:  77 61 69 74 20 23 20 6C 69 6E 65 73 20 62 65 66    wait # lines bef
00CF50:  6F 72 65 20 66 6F 72 63 69 6E 67 20 61 6E 6F 74    ore forcing anot
00CF60:  68 65 72 20 70 61 67 65 20 62 72 65 61 6B 2E 0D    her page break..
00CF70:  0A 32 33 2E 20 6D 61 6B 65 20 2D 65 63 23 20 70    .23. make -ec# p
00CF80:  72 69 6E 74 20 6D 75 6C 74 69 70 6C 65 20 63 6F    rint multiple co
00CF90:  70 69 65 73 20 65 76 65 6E 20 77 2F 6F 20 6D 65    pies even w/o me
00CFA0:  72 67 65 66 69 6C 65 2E 0D 0A 32 34 2E 20 61 64    rgefile...24. ad
00CFB0:  64 20 22 2E 64 77 20 23 22 20 63 6F 6D 6D 61 6E    d ".dw #" comman
00CFC0:  64 20 66 6F 72 20 6E 6F 6E 74 74 79 20 6D 6F 64    d for nontty mod
00CFD0:  65 20 64 6F 75 62 6C 65 20 77 69 64 65 20 70 72    e double wide pr
00CFE0:  69 6E 74 2E 0D 0A 0D 0A 2D 2D 2D 20 6C 73 74 20    int.....--- lst 
00CFF0:  63 68 61 6E 67 65 73 0D 0A 32 35 2E 20 61 6C 6C    changes..25. all
00D000:  0D 0A 77 69 64 65 0D 0A 77 69 64 65 73 70 72 65    ..wide..widespre
00D010:  61 64 0D 0A 77 69 64 6F 77 0D 0A 77 69 64 74 68    ad..widow..width
00D020:  0D 0A 77 69 66 65 0D 0A 77 69 6C 6C 0D 0A 77 69    ..wife..will..wi
00D030:  70 65 0D 0A 77 69 73 68 0D 0A 77 69 73 68 65 73    pe..wish..wishes
00D040:  0D 0A 77 69 74 68 0D 0A 77 69 74 68 69 6E 0D 0A    ..with..within..
00D050:  77 69 74 68 6F 75 74 0D 0A 77 6F 72 64 0D 0A 77    without..word..w
00D060:  6F 72 64 73 0D 0A 77 6F 72 6B 0D 0A 77 6F 72 6B    ords..work..work
00D070:  69 6E 67 0D 0A 77 6F 72 6B 69 6E 67 73 0D 0A 77    ing..workings..w
00D080:  6F 72 6B 73 0D 0A 77 6F 72 6C 64 0D 0A 77 6F 72    orks..world..wor
00D090:  74 68 0D 0A 77 6F 72 74 68 69 6E 65 73 73 0D 0A    th..worthiness..
00D0A0:  77 6F 75 6C 64 0D 0A 77 6F 75 6C 64 6E 27 74 0D    would..wouldn't.
00D0B0:  0A 77 72 61 70 73 0D 0A 77 72 69 74 65 0D 0A 77    .wraps..write..w
00D0C0:  72 69 74 65 72 0D 0A 77 72 69 74 65 73 0D 0A 77    riter..writes..w
00D0D0:  72 69 74 69 6E 67 0D 0A 77 72 69 74 74 65 6E 0D    riting..written.
00D0E0:  0A 77 72 6F 6E 67 0D 0A 77 72 6F 74 65 0D 0A 78    .wrong..wrote..x
00D0F0:  0D 0A 79 0D 0A 79 65 61 72 0D 0A 79 65 74 0D 0A    ..y..year..yet..
00D100:  79 69 65 6C 64 0D 0A 79 69 65 6C 64 69 6E 67 0D    yield..yielding.
00D110:  0A 79 69 65 6C 64 73 0D 0A 79 6F 75 0D 0A 79 6F    .yields..you..yo
00D120:  75 72 0D 0A 79 6F 75 72 73 0D 0A 7A 0D 0A 7A 65    ur..yours..z..ze
00D130:  62 72 61 0D 0A 7A 65 72 6F 0D 0A 7A 65 72 6F 65    bra..zero..zeroe
00D140:  64 0D 0A 7A 65 72 6F 65 73 0D 0A 0D 0A 1A 1A 1A    d..zeroes.......
00D150:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D160:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D170:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D180:  77 65 72 65 0D 0A 77 68 61 74 0D 0A 77 68 61 74    were..what..what
00D190:  65 76 65 72 0D 0A 77 68 65 6E 0D 0A 77 68 65 6E    ever..when..when
00D1A0:  65 76 65 72 0D 0A 77 68 65 72 65 0D 0A 77 68 65    ever..where..whe
00D1B0:  72 65 76 65 72 0D 0A 77 68 65 74 68 65 72 0D 0A    rever..whether..
00D1C0:  77 68 69 63 68 0D 0A 77 68 69 63 68 65 76 65 72    which..whichever
00D1D0:  0D 0A 77 68 69 6C 65 0D 0A 77 68 69 73 74 6C 65    ..while..whistle
00D1E0:  73 0D 0A 77 68 69 74 65 0D 0A 77 68 6F 0D 0A 77    s..white..who..w
00D1F0:  68 6F 6C 65 0D 0A 77 68 6F 73 65 0D 0A 77 68 79    hole..whose..why
00D200:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00D210:  0B 00 01 00 02 09 52 E5 0B 00 41 02 00 00 00 02    ......R...A.....
00D220:  0B 00 46 02 00 00 00 02 0B 00 42 02 00 00 00 02    ..F.......B.....
00D230:  0B 00 47 02 00 00 00 02 0B 00 43 02 00 00 00 02    ..G.......C.....
00D240:  0B 00 48 02 00 00 00 02 0B 00 44 02 00 00 00 02    ..H.......D.....
00D250:  0B 00 49 02 00 00 00 02 0B 00 45 02 00 00 00 02    ..I.......E.....
00D260:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D270:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D280:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D290:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D2F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00D300:  6F 77 20 62 61 72 65 20 66 69 6C 65 6E 61 6D 65    ow bare filename
00D310:  20 69 6E 20 6C 65 75 20 6F 66 20 72 65 64 69 72     in leu of redir
00D320:  65 63 74 69 6F 6E 20 73 70 65 63 20 66 6F 72 20    ection spec for 
00D330:  73 74 64 69 6E 20 69 6E 20 74 68 65 0D 0A 20 20    stdin in the..  
00D340:  20 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 2E 0D      command line..
00D350:  0A 0D 0A 2D 2D 2D 20 6D 72 67 20 63 68 61 6E 67    ...--- mrg chang
00D360:  65 73 0D 0A 32 36 2E 20 4D 65 72 67 65 20 62 61    es..26. Merge ba
00D370:  73 65 64 20 6F 6E 20 61 20 6C 65 78 69 63 6F 67    sed on a lexicog
00D380:  72 61 70 68 69 63 61 6C 20 6F 72 64 65 72 69 6E    raphical orderin
00D390:  67 20 72 61 74 68 65 72 20 74 68 61 6E 20 74 68    g rather than th
00D3A0:  65 20 73 74 72 61 69 67 68 74 0D 0A 20 20 20 20    e straight..    
00D3B0:  41 53 43 49 49 20 63 6F 6C 61 74 69 6E 67 20 73    ASCII colating s
00D3C0:  65 71 75 65 6E 63 65 2E 0D 0A 0D 0A 2D 2D 2D 20    equence.....--- 
00D3D0:  70 72 74 20 63 68 61 6E 67 65 73 0D 0A 32 37 2E    prt changes..27.
00D3E0:  20 46 6F 72 63 65 20 6F 75 74 70 75 74 20 74 6F     Force output to
00D3F0:  20 4C 53 54 3A 20 75 6E 6C 65 73 73 20 73 74 64     LST: unless std
00D400:  6F 75 74 20 69 73 20 72 65 64 69 72 65 63 74 65    out is redirecte
00D410:  64 20 61 77 61 79 20 66 72 6F 6D 20 74 68 65 20    d away from the 
00D420:  63 6F 6E 73 6F 6C 65 2E 0D 0A 0D 0A 2D 2D 2D 20    console.....--- 
00D430:  73 72 74 20 63 68 61 6E 67 65 73 0D 0A 32 38 2E    srt changes..28.
00D440:  20 75 6E 6C 65 73 73 20 73 70 65 63 69 66 69 65     unless specifie
00D450:  64 20 6F 74 68 65 72 77 69 73 65 20 77 69 74 68    d otherwise with
00D460:  20 74 68 65 20 2D 74 20 73 77 69 74 63 68 2C 20     the -t switch, 
00D470:  74 65 6D 70 6F 72 61 72 79 20 66 69 6C 65 73 20    temporary files 
00D480:  67 6F 20 74 6F 0D 0A 20 20 20 20 74 68 65 20 64    go to..    the d
00D490:  65 66 61 75 6C 74 20 64 72 69 76 65 2E 0D 0A 0D    efault drive....
00D4A0:  0A 2D 2D 20 69 6E 63 6C 75 64 65 64 20 69 6E 20    .-- included in 
00D4B0:  76 65 72 73 69 6F 6E 20 31 2E 32 0D 0A 0D 0A 2D    version 1.2....-
00D4C0:  2D 2D 20 66 6D 74 20 63 68 61 6E 67 65 73 0D 0A    -- fmt changes..
00D4D0:  32 39 2E 20 73 75 62 73 63 72 69 70 74 20 66 72    29. subscript fr
00D4E0:  6F 6D 20 2F 2F 20 74 6F 20 5C 5C 20 6F 72 20 77    om // to \\ or w
00D4F0:  68 69 74 65 20 73 70 61 63 65 2C 20 61 6E 64 0D    hite space, and.
00D500:  2F 2A 0D 0A 2A 2A 20 53 6D 61 6C 6C 2D 54 6F 6F    /*..** Small-Too
00D510:  6C 73 20 64 65 66 69 6E 69 74 69 6F 6E 73 2E 0D    ls definitions..
00D520:  0A 2A 2A 0D 0A 2A 2A 20 54 68 65 20 6D 65 74 61    .**..** The meta
00D530:  63 68 61 72 61 63 74 65 72 20 64 65 66 69 6E 69    character defini
00D540:  74 69 6F 6E 73 20 64 6F 20 6E 6F 74 20 63 6F 6D    tions do not com
00D550:  70 6C 65 74 65 6C 79 0D 0A 2A 2A 20 66 6F 6C 6C    pletely..** foll
00D560:  6F 77 20 55 4E 49 58 20 6F 72 20 74 68 65 20 53    ow UNIX or the S
00D570:  6F 66 74 77 61 72 65 2D 54 6F 6F 6C 73 20 64 65    oftware-Tools de
00D580:  66 69 6E 69 74 69 6F 6E 73 2E 0D 0A 2A 2A 0D 0A    finitions...**..
00D590:  2A 2A 20 59 6F 75 20 6D 61 79 20 63 68 61 6E 67    ** You may chang
00D5A0:  65 20 61 6E 79 74 68 69 6E 67 20 74 6F 20 73 75    e anything to su
00D5B0:  69 74 20 79 6F 75 72 20 70 72 65 66 65 72 65 6E    it your preferen
00D5C0:  63 65 73 2E 0D 0A 2A 2F 0D 0A 23 64 65 66 69 6E    ces...*/..#defin
00D5D0:  65 20 4D 41 58 46 4E 20 20 20 20 20 20 31 35 20    e MAXFN      15 
00D5E0:  20 2F 2A 20 6D 61 78 20 66 69 6C 65 20 6E 61 6D     /* max file nam
00D5F0:  65 20 73 70 61 63 65 20 2A 2F 0D 0A 23 64 65 66    e space */..#def
00D600:  69 6E 65 20 45 58 54 4D 41 52 4B 20 20 20 20 27    ine EXTMARK    '
00D610:  2E 27 20 2F 2A 20 66 69 6C 65 20 65 78 74 65 6E    .' /* file exten
00D620:  73 69 6F 6E 20 6D 61 72 6B 20 2A 2F 0D 0A 23 64    sion mark */..#d
00D630:  65 66 69 6E 65 20 4D 41 58 4C 49 4E 45 20 20 20    efine MAXLINE   
00D640:  31 39 32 20 20 2F 2A 20 6D 61 78 20 74 65 78 74    192  /* max text
00D650:  20 6C 69 6E 65 20 73 70 61 63 65 20 2A 2F 0D 0A     line space */..
00D660:  0D 0A 20 20 20 20 20 20 20 20 2F 2A 20 57 59 2D    ..        /* WY-
00D670:  35 30 2C 20 54 56 2D 39 32 30 2C 20 48 5A 2D 31    50, TV-920, HZ-1
00D680:  35 30 30 2C 20 41 44 2D 56 50 20 2A 2F 0D 0A 23    500, AD-VP */..#
00D690:  64 65 66 69 6E 65 20 43 4C 45 41 52 20 22 5C 33    define CLEAR "\3
00D6A0:  33 5C 35 33 22 20 2F 2A 20 73 63 72 65 65 6E 20    3\53" /* screen 
00D6B0:  65 72 61 73 65 20 2A 2F 0D 0A 23 64 65 66 69 6E    erase */..#defin
00D6C0:  65 20 43 52 54 57 49 44 45 20 20 20 20 38 30 20    e CRTWIDE    80 
00D6D0:  20 2F 2A 20 73 63 72 65 65 6E 20 77 69 64 74 68     /* screen width
00D6E0:  20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 43 52 54     */..#define CRT
00D6F0:  48 49 47 48 20 20 20 20 32 34 20 20 2F 2A 20 73    HIGH    24  /* s
00D700:  0A 20 20 20 20 73 75 70 65 72 73 63 72 69 70 74    .    superscript
00D710:  20 66 72 6F 6D 20 5C 5C 20 74 6F 20 2F 2F 20 6F     from \\ to // o
00D720:  72 20 77 68 69 74 65 20 73 70 61 63 65 2E 0D 0A    r white space...
00D730:  0D 0A 2D 2D 2D 20 73 72 74 20 63 68 61 6E 67 65    ..--- srt change
00D740:  73 0D 0A 33 30 2E 20 66 69 78 20 69 6D 70 72 6F    s..30. fix impro
00D750:  70 65 72 20 63 6C 6F 73 69 6E 67 20 6F 66 20 74    per closing of t
00D760:  65 6D 70 20 66 69 6C 65 73 2E 0D 0A 33 31 2E 20    emp files...31. 
00D770:  6D 61 6B 65 20 64 75 70 74 65 73 74 28 29 20 63    make duptest() c
00D780:  68 65 63 6B 20 2D 75 20 73 77 69 74 63 68 20 69    heck -u switch i
00D790:  6E 73 74 65 61 64 20 6F 66 20 61 73 73 75 6D 69    nstead of assumi
00D7A0:  6E 67 20 69 74 20 69 73 20 73 65 74 2E 0D 0A 33    ng it is set...3
00D7B0:  32 2E 20 66 69 78 20 70 6F 74 65 6E 74 69 61 6C    2. fix potential
00D7C0:  20 70 72 6F 62 6C 65 6D 20 69 6E 20 6D 65 72 67     problem in merg
00D7D0:  65 28 29 20 69 66 20 69 6E 70 75 74 20 74 65 6D    e() if input tem
00D7E0:  70 20 66 69 6C 65 20 69 73 20 6E 75 6C 6C 2E 0D    p file is null..
00D7F0:  0A 33 33 2E 20 66 69 78 20 74 65 73 74 20 66 6F    .33. fix test fo
00D800:  72 20 65 73 63 61 70 65 20 66 72 6F 6D 20 6D 65    r escape from me
00D810:  72 67 65 20 6C 6F 6F 70 2E 0D 0A 1A 1A 1A 1A 1A    rge loop........
00D820:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D830:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D840:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D850:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D860:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D870:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00D880:  67 6F 20 74 6F 0D 0A 20 20 20 20 74 68 65 20 64    go to..    the d
00D890:  65 66 61 75 6C 74 20 64 72 69 76 65 2E 0D 0A 0D    efault drive....
00D8A0:  0A 2D 2D 20 69 6E 63 6C 75 64 65 64 20 69 6E 20    .-- included in 
00D8B0:  76 65 72 73 69 6F 6E 20 31 2E 32 0D 0A 0D 0A 2D    version 1.2....-
00D8C0:  2D 2D 20 66 6D 74 20 63 68 61 6E 67 65 73 0D 0A    -- fmt changes..
00D8D0:  32 39 2E 20 73 75 62 73 63 72 69 70 74 20 66 72    29. subscript fr
00D8E0:  6F 6D 20 2F 2F 20 74 6F 20 5C 5C 20 6F 72 20 77    om // to \\ or w
00D8F0:  68 69 74 65 20 73 70 61 63 65 2C 20 61 6E 64 0D    hite space, and.
00D900:  63 72 65 65 6E 20 68 65 69 67 68 74 20 2A 2F 0D    creen height */.
00D910:  0A 0D 0A 23 64 65 66 69 6E 65 20 50 54 52 57 49    ...#define PTRWI
00D920:  44 45 20 20 20 20 38 30 20 20 2F 2A 20 70 61 67    DE    80  /* pag
00D930:  65 20 77 69 64 74 68 20 2A 2F 0D 0A 23 64 65 66    e width */..#def
00D940:  69 6E 65 20 50 54 52 48 49 47 48 20 20 20 20 36    ine PTRHIGH    6
00D950:  36 20 20 2F 2A 20 70 61 67 65 20 68 65 69 67 68    6  /* page heigh
00D960:  74 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 50 54    t */..#define PT
00D970:  52 53 4B 49 50 20 20 20 20 20 38 20 20 2F 2A 20    RSKIP     8  /* 
00D980:  70 61 67 65 20 70 65 72 66 6F 72 61 74 69 6F 6E    page perforation
00D990:  20 73 6B 69 70 73 20 2A 2F 0D 0A 23 64 65 66 69     skips */..#defi
00D9A0:  6E 65 20 50 54 52 48 44 52 20 20 20 20 20 20 32    ne PTRHDR      2
00D9B0:  20 20 2F 2A 20 70 61 67 65 20 68 65 61 64 65 72      /* page header
00D9C0:  20 6C 69 6E 65 73 20 2A 2F 0D 0A 0D 0A 23 64 65     lines */....#de
00D9D0:  66 69 6E 65 20 4D 41 58 50 41 54 20 20 20 20 32    fine MAXPAT    2
00D9E0:  35 37 20 20 2F 2A 20 6D 61 78 20 70 61 74 74 65    57  /* max patte
00D9F0:  72 6E 20 69 6E 20 69 6E 74 65 72 6E 61 6C 20 66    rn in internal f
00DA00:  6F 72 6D 61 74 20 2A 2F 0D 0A 23 64 65 66 69 6E    ormat */..#defin
00DA10:  65 20 43 48 41 52 20 20 20 20 20 20 20 27 63 27    e CHAR       'c'
00DA20:  20 2F 2A 20 69 64 65 6E 74 69 66 69 65 73 20 61     /* identifies a
00DA30:  20 63 68 61 72 61 63 74 65 72 20 2A 2F 0D 0A 23     character */..#
00DA40:  64 65 66 69 6E 65 20 42 4F 4C 20 20 20 20 20 20    define BOL      
00DA50:  20 20 27 60 27 20 2F 2A 20 62 65 67 69 6E 6E 69      '`' /* beginni
00DA60:  6E 67 20 6F 66 20 6C 69 6E 65 20 2A 2F 0D 0A 23    ng of line */..#
00DA70:  64 65 66 69 6E 65 20 45 4F 4C 20 20 20 20 20 20    define EOL      
00DA80:  20 27 5C 27 27 20 2F 2A 20 65 6E 64 20 6F 66 20     '\'' /* end of 
00DA90:  6C 69 6E 65 20 2A 2F 0D 0A 23 64 65 66 69 6E 65    line */..#define
00DAA0:  20 41 4E 59 20 20 20 20 20 20 20 20 27 3F 27 20     ANY        '?' 
00DAB0:  2F 2A 20 61 6E 79 20 63 68 61 72 61 63 74 65 72    /* any character
00DAC0:  20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 43 43 4C     */..#define CCL
00DAD0:  20 20 20 20 20 20 20 20 27 5B 27 20 2F 2A 20 62            '[' /* b
00DAE0:  65 67 69 6E 20 63 68 61 72 61 63 74 65 72 20 63    egin character c
00DAF0:  6C 61 73 73 20 2A 2F 0D 0A 23 64 65 66 69 6E 65    lass */..#define
00DB00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DB90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DBA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DBB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DBC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DBD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DBE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DBF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DC90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DCA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DCB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DCC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DCD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DCE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DCF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00DD00:  20 4E 43 43 4C 20 20 20 20 20 20 20 27 7E 27 20     NCCL       '~' 
00DD10:  2F 2A 20 6E 65 67 61 74 69 6F 6E 20 6F 66 20 63    /* negation of c
00DD20:  68 61 72 61 63 74 65 72 20 63 6C 61 73 73 20 2A    haracter class *
00DD30:  2F 0D 0A 23 64 65 66 69 6E 65 20 43 43 4C 45 4E    /..#define CCLEN
00DD40:  44 20 20 20 20 20 27 5D 27 20 2F 2A 20 65 6E 64    D     ']' /* end
00DD50:  20 6F 66 20 63 68 61 72 61 63 74 65 72 20 63 6C     of character cl
00DD60:  61 73 73 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20    ass */..#define 
00DD70:  43 4C 4F 53 55 52 45 20 20 20 20 27 2A 27 20 2F    CLOSURE    '*' /
00DD80:  2A 20 7A 65 72 6F 20 6F 72 20 6D 6F 72 65 20 6F    * zero or more o
00DD90:  63 63 75 72 72 65 6E 63 65 73 20 2A 2F 0D 0A 23    ccurrences */..#
00DDA0:  64 65 66 69 6E 65 20 44 49 54 54 4F 20 20 20 20    define DITTO    
00DDB0:  20 20 27 5E 27 20 2F 2A 20 77 68 61 74 65 76 65      '^' /* whateve
00DDC0:  72 20 73 74 72 69 6E 67 20 6D 61 74 63 68 65 73    r string matches
00DDD0:  20 70 61 74 74 65 72 6E 20 2A 2F 0D 0A 23 64 65     pattern */..#de
00DDE0:  66 69 6E 65 20 45 53 43 41 50 45 20 20 20 20 20    fine ESCAPE     
00DDF0:  27 3A 27 20 2F 2A 20 65 73 63 61 70 65 20 63 68    ':' /* escape ch
00DE00:  61 72 61 63 74 65 72 20 2A 2F 0D 0A 23 64 65 66    aracter */..#def
00DE10:  69 6E 65 20 4E 4F 54 20 20 20 20 20 20 20 20 27    ine NOT        '
00DE20:  7E 27 20 2F 2A 20 6E 65 67 61 74 69 6F 6E 20 63    ~' /* negation c
00DE30:  68 61 72 61 63 74 65 72 20 2A 2F 0D 0A 0D 0A 23    haracter */....#
00DE40:  64 65 66 69 6E 65 20 44 49 54 43 4F 44 45 20 20    define DITCODE  
00DE50:  20 20 2D 33 20 20 0D 0A 23 64 65 66 69 6E 65 20      -3  ..#define 
00DE60:  43 4F 55 4E 54 20 20 20 20 20 20 20 31 0D 0A 23    COUNT       1..#
00DE70:  64 65 66 69 6E 65 20 50 52 45 56 43 4C 20 20 20    define PREVCL   
00DE80:  20 20 20 32 0D 0A 23 64 65 66 69 6E 65 20 53 54       2..#define ST
00DE90:  41 52 54 20 20 20 20 20 20 20 33 0D 0A 23 64 65    ART       3..#de
00DEA0:  66 69 6E 65 20 43 4C 4F 53 49 5A 45 20 20 20 20    fine CLOSIZE    
00DEB0:  20 34 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A     4..............
00DEC0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00DED0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00DEE0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00DEF0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00DF00:  2F 2A 0D 0A 2A 2A 20 53 54 44 49 4F 2E 48 20 2D    /*..** STDIO.H -
00DF10:  2D 20 53 74 61 6E 64 61 72 64 20 53 6D 61 6C 6C    - Standard Small
00DF20:  2D 43 20 44 65 66 69 6E 69 74 69 6F 6E 73 0D 0A    -C Definitions..
00DF30:  2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74    **..** Copyright
00DF40:  20 31 39 38 33 20 20 4C 2E 20 45 2E 20 50 61 79     1983  L. E. Pay
00DF50:  6E 65 20 61 6E 64 20 4A 2E 20 45 2E 20 48 65 6E    ne and J. E. Hen
00DF60:  64 72 69 78 0D 0A 2A 2F 0D 0A 23 64 65 66 69 6E    drix..*/..#defin
00DF70:  65 20 73 74 64 69 6E 20 20 20 20 30 0D 0A 23 64    e stdin    0..#d
00DF80:  65 66 69 6E 65 20 73 74 64 6F 75 74 20 20 20 31    efine stdout   1
00DF90:  0D 0A 23 64 65 66 69 6E 65 20 73 74 64 65 72 72    ..#define stderr
00DFA0:  20 20 20 32 0D 0A 23 64 65 66 69 6E 65 20 45 52       2..#define ER
00DFB0:  52 20 20 20 28 2D 32 29 0D 0A 23 64 65 66 69 6E    R   (-2)..#defin
00DFC0:  65 20 45 4F 46 20 20 20 28 2D 31 29 0D 0A 23 64    e EOF   (-1)..#d
00DFD0:  65 66 69 6E 65 20 59 45 53 20 20 20 20 20 20 31    efine YES      1
00DFE0:  0D 0A 23 64 65 66 69 6E 65 20 4E 4F 20 20 20 20    ..#define NO    
00DFF0:  20 20 20 30 0D 0A 23 64 65 66 69 6E 65 20 4E 55       0..#define NU
00E000:  4C 4C 20 20 20 20 20 30 0D 0A 23 64 65 66 69 6E    LL     0..#defin
00E010:  65 20 43 52 20 20 20 20 20 20 31 33 0D 0A 23 64    e CR      13..#d
00E020:  65 66 69 6E 65 20 4C 46 20 20 20 20 20 20 31 30    efine LF      10
00E030:  0D 0A 23 64 65 66 69 6E 65 20 42 45 4C 4C 20 20    ..#define BELL  
00E040:  20 20 20 37 0D 0A 23 64 65 66 69 6E 65 20 53 50       7..#define SP
00E050:  41 43 45 20 20 27 20 27 0D 0A 23 64 65 66 69 6E    ACE  ' '..#defin
00E060:  65 20 4E 45 57 4C 49 4E 45 20 4C 46 20 20 20 20    e NEWLINE LF    
00E070:  20 20 2F 2A 32 33 2A 2F 20 2F 2A 34 35 2A 2F 0D      /*23*/ /*45*/.
00E080:  0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E090:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E0A0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E0B0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E0C0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E0D0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E0E0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E0F0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E1A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E1B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E1C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E1D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E1E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E1F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E2A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E2B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E2C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E2D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E2E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E2F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E3A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E3B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E3C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E3D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E3E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E3F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E400:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E410:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E420:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E430:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E440:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E450:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E460:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E470:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E480:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E490:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E4A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E4B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E4C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E4D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E4E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E4F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00E500:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00E510:  0C 00 01 00 02 09 52 E5 0C 00 41 02 00 00 00 02    ......R...A.....
00E520:  0C 00 46 02 00 00 00 02 0C 00 42 02 00 00 00 02    ..F.......B.....
00E530:  0C 00 47 02 00 00 00 02 0C 00 43 02 00 00 00 02    ..G.......C.....
00E540:  0C 00 48 02 00 00 00 02 0C 00 44 02 00 00 00 02    ..H.......D.....
00E550:  0C 00 49 02 00 00 00 02 0C 00 45 02 00 00 00 02    ..I.......E.....
00E560:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E570:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E580:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E590:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E5F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00E600:  0D 0A 2F 2A 0D 0A 2A 2A 20 62 75 66 2E 63 20 2D    ../*..** buf.c -
00E610:  2D 20 62 75 66 66 65 72 20 6D 61 6E 69 70 75 6C    - buffer manipul
00E620:  61 74 69 6F 6E 20 66 75 6E 63 74 69 6F 6E 73 20    ation functions 
00E630:  28 6D 65 6D 6F 72 79 20 76 65 72 73 69 6F 6E 29    (memory version)
00E640:  0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 67 6F 74 6C    ..*/....int gotl
00E650:  69 6E 65 2C 20 67 6F 74 69 6E 64 3B 0D 0A 63 68    ine, gotind;..ch
00E660:  61 72 20 2A 62 75 66 70 74 72 3B 0D 0A 0D 0A 2F    ar *bufptr;..../
00E670:  2A 0D 0A 2A 2A 20 63 6C 72 62 75 66 20 2D 2D 20    *..** clrbuf -- 
00E680:  69 6E 69 74 69 61 6C 69 7A 65 20 66 6F 72 20 6E    initialize for n
00E690:  65 77 20 66 69 6C 65 20 28 73 74 75 62 29 0D 0A    ew file (stub)..
00E6A0:  2A 2F 0D 0A 63 6C 72 62 75 66 28 29 20 7B 0D 0A    */..clrbuf() {..
00E6B0:  20 20 72 65 74 75 72 6E 3B 0D 0A 20 20 7D 0D 0A      return;..  }..
00E6C0:  0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 69 6E 64 20    ../*..** getind 
00E6D0:  2D 2D 20 6C 6F 63 61 74 65 20 6C 69 6E 65 20 69    -- locate line i
00E6E0:  6E 64 65 78 20 69 6E 20 62 75 66 0D 0A 2A 2F 0D    ndex in buf..*/.
00E6F0:  0A 67 65 74 69 6E 64 28 6C 6E 29 20 69 6E 74 20    .getind(ln) int 
00E700:  6C 6E 3B 20 7B 0D 0A 20 20 69 6E 74 20 6A 3B 0D    ln; {..  int j;.
00E710:  0A 20 20 69 66 28 28 6A 3D 6C 6E 2D 67 6F 74 6C    .  if((j=ln-gotl
00E720:  69 6E 65 29 20 3E 20 30 29 0D 0A 20 20 20 20 77    ine) > 0)..    w
00E730:  68 69 6C 65 28 6A 2D 2D 29 20 67 65 74 69 6E 74    hile(j--) getint
00E740:  28 67 6F 74 69 6E 64 2B 4E 45 58 54 2C 20 26 67    (gotind+NEXT, &g
00E750:  6F 74 69 6E 64 2C 20 49 4E 54 45 47 45 52 29 3B    otind, INTEGER);
00E760:  0D 0A 20 20 65 6C 73 65 20 69 66 28 6A 20 3C 20    ..  else if(j < 
00E770:  30 29 0D 0A 20 20 20 20 77 68 69 6C 65 28 6A 2B    0)..    while(j+
00E780:  2B 29 20 67 65 74 69 6E 74 28 67 6F 74 69 6E 64    +) getint(gotind
00E790:  2B 50 52 45 56 2C 20 26 67 6F 74 69 6E 64 2C 20    +PREV, &gotind, 
00E7A0:  49 4E 54 45 47 45 52 29 3B 0D 0A 20 20 67 6F 74    INTEGER);..  got
00E7B0:  6C 69 6E 65 3D 6C 6E 3B 0D 0A 20 20 72 65 74 75    line=ln;..  retu
00E7C0:  72 6E 20 67 6F 74 69 6E 64 3B 0D 0A 20 20 7D 0D    rn gotind;..  }.
00E7D0:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 69 6E 74    .../*..** getint
00E7E0:  20 2D 2D 20 6F 62 74 61 69 6E 20 69 6E 74 65 67     -- obtain integ
00E7F0:  65 72 20 6F 72 20 6C 6F 6E 67 20 66 72 6F 6D 20    er or long from 
00E800:  7B 0D 0A 20 20 72 65 6C 69 6E 6B 28 4C 49 4E 45    {..  relink(LINE
00E810:  30 2C 20 4C 49 4E 45 30 2C 20 4C 49 4E 45 30 2C    0, LINE0, LINE0,
00E820:  20 4C 49 4E 45 30 29 3B 0D 0A 20 20 6C 61 73 74     LINE0);..  last
00E830:  62 66 3D 4C 49 4E 45 30 2B 54 45 58 54 3B 0D 0A    bf=LINE0+TEXT;..
00E840:  20 20 61 64 64 73 65 74 28 4E 55 4C 4C 2C 20 62      addset(NULL, b
00E850:  75 66 2C 20 26 6C 61 73 74 62 66 2C 20 6D 61 78    uf, &lastbf, max
00E860:  62 75 66 29 3B 0D 0A 20 20 67 6F 74 6C 69 6E 65    buf);..  gotline
00E870:  3D 63 75 72 6C 6E 3D 6C 61 73 74 6C 6E 3D 30 3B    =curln=lastln=0;
00E880:  0D 0A 20 20 67 6F 74 69 6E 64 3D 4C 49 4E 45 30    ..  gotind=LINE0
00E890:  3B 0D 0A 20 20 7D 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A    ;..  }..........
00E8A0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E8B0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E8C0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E8D0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E8E0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E8F0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00E900:  3B 0D 0A 20 20 2B 2B 6C 61 73 74 6C 6E 3B 0D 0A    ;..  ++lastln;..
00E910:  20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 72 65      }..../*..** re
00E920:  6C 69 6E 6B 20 2D 2D 20 72 65 77 72 69 74 65 20    link -- rewrite 
00E930:  74 77 6F 20 68 61 6C 66 20 6C 69 6E 6B 73 0D 0A    two half links..
00E940:  2A 2F 0D 0A 72 65 6C 69 6E 6B 28 61 2C 20 78 2C    */..relink(a, x,
00E950:  20 79 2C 20 62 29 20 69 6E 74 20 61 2C 20 78 2C     y, b) int a, x,
00E960:  20 79 2C 20 62 3B 20 7B 0D 0A 20 20 70 75 74 69     y, b; {..  puti
00E970:  6E 74 28 78 2B 50 52 45 56 2C 20 26 61 2C 20 49    nt(x+PREV, &a, I
00E980:  4E 54 45 47 45 52 29 3B 0D 0A 20 20 70 75 74 69    NTEGER);..  puti
00E990:  6E 74 28 79 2B 4E 45 58 54 2C 20 26 62 2C 20 49    nt(y+NEXT, &b, I
00E9A0:  4E 54 45 47 45 52 29 3B 0D 0A 20 20 75 70 64 74    NTEGER);..  updt
00E9B0:  66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 7D 0D 0A    flag=YES;..  }..
00E9C0:  0D 0A 2F 2A 0D 0A 2A 2A 20 73 65 74 62 75 66 20    ../*..** setbuf 
00E9D0:  2D 2D 20 69 6E 69 74 69 61 6C 69 7A 65 20 6C 69    -- initialize li
00E9E0:  6E 65 20 73 74 6F 72 61 67 65 20 62 75 66 66 65    ne storage buffe
00E9F0:  72 0D 0A 2A 2F 0D 0A 73 65 74 62 75 66 28 29 20    r..*/..setbuf() 
00EA00:  62 75 66 20 61 74 20 6F 66 66 73 65 74 0D 0A 2A    buf at offset..*
00EA10:  2F 0D 0A 67 65 74 69 6E 74 28 6F 66 66 73 65 74    /..getint(offset
00EA20:  2C 20 64 65 73 74 2C 20 6C 65 6E 67 74 68 29 20    , dest, length) 
00EA30:  69 6E 74 20 6F 66 66 73 65 74 2C 20 6C 65 6E 67    int offset, leng
00EA40:  74 68 3B 20 63 68 61 72 20 2A 64 65 73 74 3B 20    th; char *dest; 
00EA50:  7B 0D 0A 20 20 62 75 66 70 74 72 3D 62 75 66 2B    {..  bufptr=buf+
00EA60:  6F 66 66 73 65 74 3B 0D 0A 20 20 77 68 69 6C 65    offset;..  while
00EA70:  28 6C 65 6E 67 74 68 2D 2D 29 20 20 2A 64 65 73    (length--)  *des
00EA80:  74 2B 2B 20 3D 20 2A 62 75 66 70 74 72 2B 2B 3B    t++ = *bufptr++;
00EA90:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
00EAA0:  70 75 74 69 6E 74 20 2D 2D 20 70 6C 61 63 65 20    putint -- place 
00EAB0:  69 6E 74 65 67 65 72 20 6F 72 20 6C 6F 6E 67 20    integer or long 
00EAC0:  69 6E 74 6F 20 62 75 66 20 61 74 20 6F 66 66 73    into buf at offs
00EAD0:  65 74 0D 0A 2A 2F 0D 0A 70 75 74 69 6E 74 28 6F    et..*/..putint(o
00EAE0:  66 66 73 65 74 2C 20 73 6F 75 72 63 65 2C 20 6C    ffset, source, l
00EAF0:  65 6E 67 74 68 29 20 69 6E 74 20 6F 66 66 73 65    ength) int offse
00EB00:  74 2C 20 6C 65 6E 67 74 68 3B 20 63 68 61 72 20    t, length; char 
00EB10:  2A 73 6F 75 72 63 65 3B 20 7B 0D 0A 20 20 62 75    *source; {..  bu
00EB20:  66 70 74 72 3D 62 75 66 2B 6F 66 66 73 65 74 3B    fptr=buf+offset;
00EB30:  0D 0A 20 20 77 68 69 6C 65 28 6C 65 6E 67 74 68    ..  while(length
00EB40:  2D 2D 29 20 2A 62 75 66 70 74 72 2B 2B 20 3D 20    --) *bufptr++ = 
00EB50:  2A 73 6F 75 72 63 65 2B 2B 3B 0D 0A 20 20 7D 0D    *source++;..  }.
00EB60:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 74 78 74    .../*..** gettxt
00EB70:  20 2D 2D 20 6C 6F 63 61 74 65 20 74 65 78 74 20     -- locate text 
00EB80:  66 6F 72 20 6C 69 6E 65 20 61 6E 64 20 6D 61 6B    for line and mak
00EB90:  65 20 61 76 61 69 6C 61 62 6C 65 0D 0A 2A 2F 0D    e available..*/.
00EBA0:  0A 67 65 74 74 78 74 28 6C 69 6E 65 29 20 69 6E    .gettxt(line) in
00EBB0:  74 20 6C 69 6E 65 3B 20 7B 0D 0A 20 20 69 6E 74    t line; {..  int
00EBC0:  20 69 2C 20 6A 2C 20 6B 3B 0D 0A 20 20 69 3D 28     i, j, k;..  i=(
00EBD0:  6B 3D 67 65 74 69 6E 64 28 6C 69 6E 65 29 29 20    k=getind(line)) 
00EBE0:  2B 20 54 45 58 54 3B 0D 0A 20 20 6A 3D 30 3B 0D    + TEXT;..  j=0;.
00EBF0:  0A 20 20 77 68 69 6C 65 28 74 78 74 5B 6A 2B 2B    .  while(txt[j++
00EC00:  0D 0A 2F 2A 0D 0A 2A 2A 20 63 61 6E 74 2E 63 20    ../*..** cant.c 
00EC10:  2D 2D 20 61 62 6F 72 74 20 77 69 74 68 20 22 6E    -- abort with "n
00EC20:  61 6D 65 3A 20 63 61 6E 27 74 20 6F 70 65 6E 22    ame: can't open"
00EC30:  20 6D 65 73 73 61 67 65 0D 0A 2A 2F 0D 0A 63 61     message..*/..ca
00EC40:  6E 74 28 73 74 72 29 20 63 68 61 72 20 2A 73 74    nt(str) char *st
00EC50:  72 3B 20 7B 0D 0A 20 20 66 70 75 74 73 28 73 74    r; {..  fputs(st
00EC60:  72 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 66    r, stderr);..  f
00EC70:  70 75 74 73 28 22 3A 20 63 61 6E 27 74 20 6F 70    puts(": can't op
00EC80:  65 6E 5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D    en\n", stderr);.
00EC90:  0A 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20    .  abort(7);..  
00ECA0:  7D 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    }...............
00ECB0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00ECC0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00ECD0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00ECE0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00ECF0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
00ED00:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED10:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED20:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED30:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED40:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED50:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00ED90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00EDA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00EDB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00EDC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00EDD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00EDE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00EDF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00EE00:  5D 3D 62 75 66 5B 69 2B 2B 5D 29 3B 0D 0A 20 20    ]=buf[i++]);..  
00EE10:  72 65 74 75 72 6E 20 6B 3B 0D 0A 20 20 7D 0D 0A    return k;..  }..
00EE20:  0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 70 75 74 20 2D    ../*..** input -
00EE30:  2D 20 69 6E 70 75 74 20 74 65 78 74 20 66 72 6F    - input text fro
00EE40:  6D 20 66 64 20 69 6E 74 6F 20 62 75 66 0D 0A 2A    m fd into buf..*
00EE50:  2F 0D 0A 69 6E 70 75 74 28 66 64 29 20 69 6E 74    /..input(fd) int
00EE60:  20 66 64 3B 20 7B 0D 0A 20 20 69 6E 74 20 6B 33     fd; {..  int k3
00EE70:  3B 0D 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20    ;..  while(YES) 
00EE80:  7B 0D 0A 20 20 20 20 69 66 28 70 6F 6C 6C 28 59    {..    if(poll(Y
00EE90:  45 53 29 3D 3D 45 53 43 29 20 72 65 74 75 72 6E    ES)==ESC) return
00EEA0:  20 45 52 52 3B 0D 0A 20 20 20 20 6B 33 3D 6C 61     ERR;..    k3=la
00EEB0:  73 74 62 66 3B 0D 0A 20 20 20 20 69 66 28 66 67    stbf;..    if(fg
00EEC0:  65 74 73 28 62 75 66 20 2B 20 28 6C 61 73 74 62    ets(buf + (lastb
00EED0:  66 20 2B 3D 20 54 45 58 54 29 2C 20 4D 41 58 4C    f += TEXT), MAXL
00EEE0:  49 4E 45 2C 20 66 64 29 29 20 7B 0D 0A 20 20 20    INE, fd)) {..   
00EEF0:  20 20 20 6C 61 73 74 62 66 20 2B 3D 20 74 72 69       lastbf += tri
00EF00:  6D 28 62 75 66 2B 6C 61 73 74 62 66 29 20 2B 20    m(buf+lastbf) + 
00EF10:  31 3B 0D 0A 20 20 20 20 20 20 69 6E 6C 69 6E 6B    1;..      inlink
00EF20:  28 6B 33 29 3B 0D 0A 20 20 20 20 20 20 69 66 28    (k3);..      if(
00EF30:  28 6C 61 73 74 62 66 2B 4D 41 58 4C 49 4E 45 29    (lastbf+MAXLINE)
00EF40:  20 3E 20 6D 61 78 62 75 66 29 20 7B 0D 0A 20 20     > maxbuf) {..  
00EF50:  20 20 20 20 20 20 66 70 75 74 73 28 22 6D 65 6D          fputs("mem
00EF60:  6F 72 79 20 6F 76 65 72 66 6C 6F 77 20 22 2C 20    ory overflow ", 
00EF70:  73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20 20    stderr);..      
00EF80:  20 20 72 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20      return ERR;.. 
00EF90:  20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20           }..      
00EFA0:  7D 0D 0A 20 20 20 20 65 6C 73 65 20 62 72 65 61    }..    else brea
00EFB0:  6B 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 6C 61 73    k;..    }..  las
00EFC0:  74 62 66 20 2D 3D 20 54 45 58 54 3B 0D 0A 20 20    tbf -= TEXT;..  
00EFD0:  72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D    return OK;..  }.
00EFE0:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 6A 65 63 74    .../*..** inject
00EFF0:  20 2D 2D 20 70 75 74 20 74 65 78 74 20 66 72 6F     -- put text fro
00F000:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F010:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F020:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F030:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F040:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F050:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F060:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F070:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F080:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F090:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F0A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F0B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F0C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F0D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F0E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F0F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F1A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F1B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F1C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F1D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F1E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F1F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F200:  6D 20 6C 69 6E 20 61 66 74 65 72 20 63 75 72 6C    m lin after curl
00F210:  6E 0D 0A 2A 2F 0D 0A 69 6E 6A 65 63 74 28 6C 69    n..*/..inject(li
00F220:  6E 29 20 63 68 61 72 20 6C 69 6E 5B 5D 3B 20 7B    n) char lin[]; {
00F230:  0D 0A 20 20 69 6E 74 20 69 2C 20 6B 33 3B 0D 0A    ..  int i, k3;..
00F240:  20 20 69 66 28 2A 6C 69 6E 3D 3D 4E 55 4C 4C 29      if(*lin==NULL)
00F250:  20 7B 0D 0A 20 20 20 20 2A 6C 69 6E 3D 27 5C 6E     {..    *lin='\n
00F260:  27 3B 0D 0A 20 20 20 20 2A 28 6C 69 6E 2B 31 29    ';..    *(lin+1)
00F270:  3D 4E 55 4C 4C 3B 0D 0A 20 20 20 20 7D 0D 0A 20    =NULL;..    }.. 
00F280:  20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 6C     i=0;..  while(l
00F290:  69 6E 5B 69 5D 21 3D 4E 55 4C 4C 29 20 7B 0D 0A    in[i]!=NULL) {..
00F2A0:  20 20 20 20 6B 33 3D 6C 61 73 74 62 66 3B 0D 0A        k3=lastbf;..
00F2B0:  20 20 20 20 6C 61 73 74 62 66 3D 6C 61 73 74 62        lastbf=lastb
00F2C0:  66 2B 54 45 58 54 3B 0D 0A 20 20 20 20 77 68 69    f+TEXT;..    whi
00F2D0:  6C 65 28 6C 69 6E 5B 69 5D 21 3D 4E 55 4C 4C 29    le(lin[i]!=NULL)
00F2E0:  20 7B 0D 0A 20 20 20 20 20 20 69 66 28 6C 69 6E     {..      if(lin
00F2F0:  5B 69 5D 3D 3D 27 5C 6E 27 29 20 7B 0D 0A 20 20    [i]=='\n') {..  
00F300:  20 20 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20          ++i;..    
00F310:  20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20        break;..    
00F320:  20 20 20 20 7D 0D 0A 20 20 20 20 20 20 61 64 64        }..      add
00F330:  73 65 74 28 6C 69 6E 5B 69 2B 2B 5D 2C 20 62 75    set(lin[i++], bu
00F340:  66 2C 20 26 6C 61 73 74 62 66 2C 20 6D 61 78 62    f, &lastbf, maxb
00F350:  75 66 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    uf);..      }.. 
00F360:  20 20 20 69 66 28 61 64 64 73 65 74 28 4E 55 4C       if(addset(NUL
00F370:  4C 2C 20 62 75 66 2C 20 26 6C 61 73 74 62 66 2C    L, buf, &lastbf,
00F380:  20 6D 61 78 62 75 66 29 3D 3D 4E 4F 29 20 7B 0D     maxbuf)==NO) {.
00F390:  0A 20 20 20 20 20 20 66 70 75 74 73 28 22 6D 65    .      fputs("me
00F3A0:  6D 6F 72 79 20 6F 76 65 72 66 6C 6F 77 20 22 2C    mory overflow ",
00F3B0:  20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20     stderr);..     
00F3C0:  20 72 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20     return ERR;..  
00F3D0:  20 20 20 20 7D 0D 0A 20 20 20 20 69 6E 6C 69 6E        }..    inlin
00F3E0:  6B 28 6B 33 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20    k(k3);..    }.. 
00F3F0:  20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D     return OK;..  }
00F400:  0D 0A 2F 2A 0D 0A 2A 2A 20 63 61 74 73 75 62 2E    ../*..** catsub.
00F410:  63 20 2D 2D 20 61 64 64 20 72 65 70 6C 61 63 65    c -- add replace
00F420:  6D 65 6E 74 20 74 65 78 74 20 74 6F 20 65 6E 64    ment text to end
00F430:  20 6F 66 20 6E 65 77 0D 0A 2A 2F 0D 0A 63 61 74     of new..*/..cat
00F440:  73 75 62 28 6C 69 6E 2C 20 66 72 6F 6D 2C 20 74    sub(lin, from, t
00F450:  6F 2C 20 73 75 62 2C 20 6E 65 77 2C 20 6B 2C 20    o, sub, new, k, 
00F460:  6D 61 78 6E 65 77 29 0D 0A 20 20 63 68 61 72 20    maxnew)..  char 
00F470:  6C 69 6E 5B 5D 2C 20 6E 65 77 5B 5D 2C 20 73 75    lin[], new[], su
00F480:  62 5B 5D 3B 0D 0A 20 20 69 6E 74 20 66 72 6F 6D    b[];..  int from
00F490:  2C 20 74 6F 2C 20 2A 6B 2C 20 6D 61 78 6E 65 77    , to, *k, maxnew
00F4A0:  3B 20 7B 0D 0A 0D 0A 20 20 69 6E 74 20 69 2C 20    ; {....  int i, 
00F4B0:  6A 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68    j;..  i=0;..  wh
00F4C0:  69 6C 65 28 73 75 62 5B 69 5D 21 3D 4E 55 4C 4C    ile(sub[i]!=NULL
00F4D0:  29 20 7B 0D 0A 20 20 20 20 69 66 28 73 75 62 5B    ) {..    if(sub[
00F4E0:  69 5D 3D 3D 44 49 54 43 4F 44 45 29 20 7B 0D 0A    i]==DITCODE) {..
00F4F0:  20 20 20 20 20 20 6A 3D 66 72 6F 6D 3B 0D 0A 20          j=from;.. 
00F500:  20 20 20 20 20 77 68 69 6C 65 28 6A 20 3C 20 74         while(j < t
00F510:  6F 29 20 61 64 64 73 65 74 28 6C 69 6E 5B 6A 2B    o) addset(lin[j+
00F520:  2B 5D 2C 20 6E 65 77 2C 20 6B 2C 20 6D 61 78 6E    +], new, k, maxn
00F530:  65 77 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    ew);..      }.. 
00F540:  20 20 20 65 6C 73 65 20 61 64 64 73 65 74 28 73       else addset(s
00F550:  75 62 5B 69 5D 2C 20 6E 65 77 2C 20 6B 2C 20 6D    ub[i], new, k, m
00F560:  61 78 6E 65 77 29 3B 0D 0A 20 20 20 20 2B 2B 69    axnew);..    ++i
00F570:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 1A    ;..    }..  }...
00F580:  2F 0D 0A 20 20 69 66 28 61 64 64 73 65 74 28 4E    /..  if(addset(N
00F590:  55 4C 4C 2C 20 73 75 62 2C 20 26 6A 2C 20 4D 41    ULL, sub, &j, MA
00F5A0:  58 50 41 54 29 3D 3D 4E 4F 29 20 72 65 74 75 72    XPAT)==NO) retur
00F5B0:  6E 20 45 52 52 3B 20 2F 2A 2A 20 6E 6F 20 72 6F    n ERR; /** no ro
00F5C0:  6F 6D 20 2A 2A 2F 0D 0A 20 20 72 65 74 75 72 6E    om **/..  return
00F5D0:  20 69 3B 0D 0A 20 20 7D 0D 0A 1A 41 54 5D 2C 20     i;..  }...AT], 
00F5E0:  73 75 62 5B 4D 41 58 50 41 54 5D 3B 0D 0A 63 68    sub[MAXPAT];..ch
00F5F0:  61 72 20 61 72 67 5B 4D 41 58 41 52 47 5D 3B 0D    ar arg[MAXARG];.
00F600:  0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 6C 69 6E    ..../*..** inlin
00F610:  6B 20 2D 2D 20 6C 69 6E 6B 20 69 6E 6A 65 63 74    k -- link inject
00F620:  65 64 20 6C 69 6E 65 0D 0A 2A 2F 0D 0A 69 6E 6C    ed line..*/..inl
00F630:  69 6E 6B 28 6B 33 29 20 69 6E 74 20 6B 33 3B 20    ink(k3) int k3; 
00F640:  7B 0D 0A 20 20 69 6E 74 20 6B 31 2C 20 6B 32 3B    {..  int k1, k2;
00F650:  0D 0A 20 20 6B 31 3D 67 65 74 69 6E 64 28 63 75    ..  k1=getind(cu
00F660:  72 6C 6E 29 3B 0D 0A 20 20 2F 2A 2A 20 6C 65 61    rln);..  /** lea
00F670:  76 65 73 20 67 6F 74 6C 69 6E 65 20 26 20 67 6F    ves gotline & go
00F680:  74 69 6E 64 20 62 65 66 6F 72 65 20 61 66 66 65    tind before affe
00F690:  63 74 65 64 20 61 72 65 61 20 2A 2A 2F 0D 0A 20    cted area **/.. 
00F6A0:  20 67 65 74 69 6E 74 28 6B 31 2B 4E 45 58 54 2C     getint(k1+NEXT,
00F6B0:  20 26 6B 32 2C 20 49 4E 54 45 47 45 52 29 3B 0D     &k2, INTEGER);.
00F6C0:  0A 20 20 72 65 6C 69 6E 6B 28 6B 31 2C 20 6B 33    .  relink(k1, k3
00F6D0:  2C 20 6B 33 2C 20 6B 32 29 3B 0D 0A 20 20 72 65    , k3, k2);..  re
00F6E0:  6C 69 6E 6B 28 6B 33 2C 20 6B 32 2C 20 6B 31 2C    link(k3, k2, k1,
00F6F0:  20 6B 33 29 3B 0D 0A 20 20 2B 2B 63 75 72 6C 6E     k3);..  ++curln
00F700:  3B 0D 0A 20 20 2B 2B 6C 61 73 74 6C 6E 3B 0D 0A    ;..  ++lastln;..
00F710:  20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 72 65      }..../*..** re
00F720:  6C 69 6E 6B 20 2D 2D 20 72 65 77 72 69 74 65 20    link -- rewrite 
00F730:  74 77 6F 20 68 61 6C 66 20 6C 69 6E 6B 73 0D 0A    two half links..
00F740:  2A 2F 0D 0A 72 65 6C 69 6E 6B 28 61 2C 20 78 2C    */..relink(a, x,
00F750:  20 79 2C 20 62 29 20 69 6E 74 20 61 2C 20 78 2C     y, b) int a, x,
00F760:  20 79 2C 20 62 3B 20 7B 0D 0A 20 20 70 75 74 69     y, b; {..  puti
00F770:  6E 74 28 78 2B 50 52 45 56 2C 20 26 61 2C 20 49    nt(x+PREV, &a, I
00F780:  4E 54 45 47 45 52 29 3B 0D 0A 20 20 70 75 74 69    NTEGER);..  puti
00F790:  6E 74 28 79 2B 4E 45 58 54 2C 20 26 62 2C 20 49    nt(y+NEXT, &b, I
00F7A0:  4E 54 45 47 45 52 29 3B 0D 0A 20 20 75 70 64 74    NTEGER);..  updt
00F7B0:  66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 7D 0D 0A    flag=YES;..  }..
00F7C0:  0D 0A 2F 2A 0D 0A 2A 2A 20 73 65 74 62 75 66 20    ../*..** setbuf 
00F7D0:  2D 2D 20 69 6E 69 74 69 61 6C 69 7A 65 20 6C 69    -- initialize li
00F7E0:  6E 65 20 73 74 6F 72 61 67 65 20 62 75 66 66 65    ne storage buffe
00F7F0:  72 0D 0A 2A 2F 0D 0A 73 65 74 62 75 66 28 29 20    r..*/..setbuf() 
00F800:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
00F810:  0D 00 01 00 02 09 52 E5 0D 00 41 02 00 00 00 02    ......R...A.....
00F820:  0D 00 46 02 00 00 00 02 0D 00 42 02 00 00 00 02    ..F.......B.....
00F830:  0D 00 47 02 00 00 00 02 0D 00 43 02 00 00 00 02    ..G.......C.....
00F840:  0D 00 48 02 00 00 00 02 0D 00 44 02 00 00 00 02    ..H.......D.....
00F850:  0D 00 49 02 00 00 00 02 0D 00 45 02 00 00 00 02    ..I.......E.....
00F860:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F870:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F880:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F890:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F8F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00F900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F9A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F9B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F9C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F9D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F9E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00F9F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FA90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FAA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FAB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FAC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FAD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FAE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FAF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
00FB00:  0D 0A 2F 2A 0D 0A 2A 2A 20 63 70 79 2E 63 20 2D    ../*..** cpy.c -
00FB10:  2D 20 63 6F 70 79 20 6E 61 6D 65 64 20 66 69 6C    - copy named fil
00FB20:  65 73 20 74 6F 20 73 74 61 6E 64 61 72 64 20 6F    es to standard o
00FB30:  75 74 70 75 74 0D 0A 2A 2A 0D 0A 2A 2A 20 43 6F    utput..**..** Co
00FB40:  70 79 72 69 67 68 74 20 31 39 38 32 20 4A 2E 20    pyright 1982 J. 
00FB50:  45 2E 20 48 65 6E 64 72 69 78 2E 20 20 41 6C 6C    E. Hendrix.  All
00FB60:  20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64     rights reserved
00FB70:  2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20    ...*/..#include 
00FB80:  3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C    <stdio.h>..#incl
00FB90:  75 64 65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23    ude "tools.h"..#
00FBA0:  64 65 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D    define NOCCARGC.
00FBB0:  0A 23 64 65 66 69 6E 65 20 4D 41 58 41 52 47 20    .#define MAXARG 
00FBC0:  31 32 0D 0A 69 6E 74 20 66 69 6E 2C 20 69 2C 20    12..int fin, i, 
00FBD0:  6A 3B 0D 0A 69 6E 74 20 73 74 61 74 75 73 3B 0D    j;..int status;.
00FBE0:  0A 69 6E 74 20 62 69 6E 61 72 79 2C 20 73 74 72    .int binary, str
00FBF0:  69 70 6C 66 2C 20 73 74 72 69 70 63 72 2C 20 66    iplf, stripcr, f
00FC00:  72 6F 6D 2C 20 74 6F 3B 0D 0A 63 68 61 72 20 6E    rom, to;..char n
00FC10:  61 6D 65 5B 4D 41 58 46 4E 5D 2C 20 69 6E 63 6C    ame[MAXFN], incl
00FC20:  65 78 74 5B 4D 41 58 46 4E 5D 3B 0D 0A 6D 61 69    ext[MAXFN];..mai
00FC30:  6E 28 61 72 67 63 2C 20 61 72 67 76 29 20 69 6E    n(argc, argv) in
00FC40:  74 20 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B    t argc, *argv; {
00FC50:  0D 0A 20 20 61 75 78 62 75 66 28 73 74 64 6F 75    ..  auxbuf(stdou
00FC60:  74 2C 20 34 30 39 36 29 3B 0D 0A 20 20 64 6F 61    t, 4096);..  doa
00FC70:  72 67 73 28 61 72 67 63 2C 20 61 72 67 76 29 3B    rgs(argc, argv);
00FC80:  0D 0A 20 20 69 66 28 28 62 69 6E 61 72 79 3D 3D    ..  if((binary==
00FC90:  59 45 53 29 26 28 69 6E 63 6C 65 78 74 5B 30 5D    YES)&(inclext[0]
00FCA0:  21 3D 4E 55 4C 4C 29 29 20 7B 0D 0A 20 20 20 20    !=NULL)) {..    
00FCB0:  66 70 75 74 73 28 22 63 61 6E 6E 6F 74 20 69 6E    fputs("cannot in
00FCC0:  63 6C 75 64 65 20 66 69 6C 65 73 20 64 75 72 69    clude files duri
00FCD0:  6E 67 20 62 69 6E 61 72 79 20 63 6F 70 79 22 2C    ng binary copy",
00FCE0:  20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 61     stderr);..    a
00FCF0:  62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D    bort(7);..    }.
00FD00:  0D 0A 2F 2A 0D 0A 2A 2A 20 63 68 67 2E 63 20 2D    ../*..** chg.c -
00FD10:  2D 20 63 68 61 6E 67 65 20 6F 63 63 75 72 72 65    - change occurre
00FD20:  6E 63 65 73 20 6F 66 20 22 66 72 6F 6D 22 20 74    nces of "from" t
00FD30:  6F 20 22 74 6F 22 0D 0A 2A 2A 0D 0A 2A 2A 20 43    o "to"..**..** C
00FD40:  6F 70 79 72 69 67 68 74 20 31 39 38 32 20 4A 2E    opyright 1982 J.
00FD50:  20 45 2E 20 48 65 6E 64 72 69 78 2E 20 20 41 6C     E. Hendrix.  Al
00FD60:  6C 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65    l rights reserve
00FD70:  64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65    d...*/..#include
00FD80:  20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63     <stdio.h>..#inc
00FD90:  6C 75 64 65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A    lude "tools.h"..
00FDA0:  23 64 65 66 69 6E 65 20 4E 4F 43 43 41 52 47 43    #define NOCCARGC
00FDB0:  0D 0A 23 64 65 66 69 6E 65 20 4D 41 58 41 52 47    ..#define MAXARG
00FDC0:  20 34 39 0D 0A 23 64 65 66 69 6E 65 20 4D 41 58     49..#define MAX
00FDD0:  4C 49 4E 31 20 28 4D 41 58 4C 49 4E 45 2B 31 29    LIN1 (MAXLINE+1)
00FDE0:  0D 0A 63 68 61 72 20 6C 69 6E 5B 4D 41 58 4C 49    ..char lin[MAXLI
00FDF0:  4E 31 5D 2C 20 6E 65 77 5B 4D 41 58 4C 49 4E 31    N1], new[MAXLIN1
00FE00:  5D 2C 20 70 61 74 5B 4D 41 58 50 41 54 5D 2C 20    ], pat[MAXPAT], 
00FE10:  73 75 62 5B 4D 41 58 50 41 54 5D 3B 0D 0A 63 68    sub[MAXPAT];..ch
00FE20:  61 72 20 61 72 67 5B 4D 41 58 41 52 47 5D 3B 0D    ar arg[MAXARG];.
00FE30:  0A 69 6E 74 20 69 2C 20 6B 2C 20 6C 61 73 74 6E    .int i, k, lastn
00FE40:  2C 20 6E 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C    , n;..main(argc,
00FE50:  20 61 72 67 76 29 20 69 6E 74 20 61 72 67 63 2C     argv) int argc,
00FE60:  20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 69 66 28     *argv; {..  if(
00FE70:  28 67 65 74 61 72 67 28 31 2C 20 61 72 67 2C 20    (getarg(1, arg, 
00FE80:  4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 72    MAXARG, argc, ar
00FE90:  67 76 29 3D 3D 45 4F 46 29 0D 0A 20 20 20 20 7C    gv)==EOF)..    |
00FEA0:  28 28 61 72 67 5B 30 5D 3D 3D 27 2D 27 29 26 28    ((arg[0]=='-')&(
00FEB0:  61 72 67 5B 31 5D 3D 3D 30 29 29 29 0D 0A 20 20    arg[1]==0)))..  
00FEC0:  20 20 65 72 72 6F 72 28 22 75 73 61 67 65 3A 20      error("usage: 
00FED0:  43 48 47 20 70 61 74 74 65 72 6E 20 5B 72 65 70    CHG pattern [rep
00FEE0:  6C 61 63 65 6D 65 6E 74 5D 5C 6E 22 29 3B 0D 0A    lacement]\n");..
00FEF0:  20 20 69 66 28 6D 61 6B 70 61 74 28 61 72 67 2C      if(makpat(arg,
00FF00:  0A 20 20 66 69 6E 3D 39 39 3B 0D 0A 20 20 69 3D    .  fin=99;..  i=
00FF10:  30 3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61    0;..  while(geta
00FF20:  72 67 28 2B 2B 69 2C 20 6E 61 6D 65 2C 20 4D 41    rg(++i, name, MA
00FF30:  58 46 4E 2C 20 61 72 67 63 2C 20 61 72 67 76 29    XFN, argc, argv)
00FF40:  21 3D 45 4F 46 29 20 7B 0D 0A 20 20 20 20 69 66    !=EOF) {..    if
00FF50:  28 28 6E 61 6D 65 5B 30 5D 3D 3D 27 2D 27 29 7C    ((name[0]=='-')|
00FF60:  28 6E 61 6D 65 5B 30 5D 3D 3D 45 58 54 4D 41 52    (name[0]==EXTMAR
00FF70:  4B 29 29 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20    K)) continue;.. 
00FF80:  20 20 20 69 66 28 28 66 69 6E 3D 66 6F 70 65 6E       if((fin=fopen
00FF90:  28 6E 61 6D 65 2C 20 22 72 22 29 29 3D 3D 4E 55    (name, "r"))==NU
00FFA0:  4C 4C 29 20 63 61 6E 74 28 6E 61 6D 65 29 3B 0D    LL) cant(name);.
00FFB0:  0A 20 20 20 20 69 66 28 62 69 6E 61 72 79 29 20    .    if(binary) 
00FFC0:  62 63 6F 70 79 28 66 69 6E 2C 20 73 74 64 6F 75    bcopy(fin, stdou
00FFD0:  74 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 20 20    t);..    else   
00FFE0:  20 20 20 20 66 63 6F 70 79 28 66 69 6E 2C 20 73        fcopy(fin, s
00FFF0:  74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 63 6C    tdout);..    fcl
010000:  6F 73 65 28 66 69 6E 29 3B 0D 0A 20 20 20 20 7D    ose(fin);..    }
010010:  0D 0A 20 20 69 66 28 66 69 6E 3D 3D 39 39 29 20    ..  if(fin==99) 
010020:  7B 0D 0A 20 20 20 20 69 66 28 62 69 6E 61 72 79    {..    if(binary
010030:  29 20 62 63 6F 70 79 28 73 74 64 69 6E 2C 20 73    ) bcopy(stdin, s
010040:  74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 65 6C 73    tdout);..    els
010050:  65 20 20 20 20 20 20 20 66 63 6F 70 79 28 73 74    e       fcopy(st
010060:  64 69 6E 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20    din, stdout);.. 
010070:  20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 65 28 73       }..  fclose(s
010080:  74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A    tdout);..  }....
010090:  64 6F 61 72 67 73 28 61 72 67 63 2C 20 61 72 67    doargs(argc, arg
0100A0:  76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72    v) int argc, *ar
0100B0:  67 76 3B 20 7B 0D 0A 20 20 69 6E 74 20 6C 65 6E    gv; {..  int len
0100C0:  3B 0D 0A 20 20 63 68 61 72 20 61 72 67 5B 4D 41    ;..  char arg[MA
0100D0:  58 41 52 47 5D 2C 20 65 72 72 6F 72 3B 0D 0A 20    XARG], error;.. 
0100E0:  20 69 6E 63 6C 65 78 74 5B 30 5D 3D 66 72 6F 6D     inclext[0]=from
0100F0:  3D 74 6F 3D 4E 55 4C 4C 3B 0D 0A 20 20 62 69 6E    =to=NULL;..  bin
010100:  20 30 2C 20 4E 55 4C 4C 2C 20 70 61 74 29 3D 3D     0, NULL, pat)==
010110:  45 52 52 29 0D 0A 20 20 20 20 65 72 72 6F 72 28    ERR)..    error(
010120:  22 70 61 74 74 65 72 6E 20 74 6F 6F 20 6C 6F 6E    "pattern too lon
010130:  67 5C 6E 22 29 3B 0D 0A 20 20 69 66 28 67 65 74    g\n");..  if(get
010140:  61 72 67 28 32 2C 20 61 72 67 2C 20 4D 41 58 41    arg(2, arg, MAXA
010150:  52 47 2C 20 61 72 67 63 2C 20 61 72 67 76 29 3D    RG, argc, argv)=
010160:  3D 45 4F 46 29 0D 0A 20 20 20 20 61 72 67 5B 30    =EOF)..    arg[0
010170:  5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 69 66 28 6D 61    ]=NULL;..  if(ma
010180:  6B 73 75 62 28 61 72 67 2C 20 30 2C 20 4E 55 4C    ksub(arg, 0, NUL
010190:  4C 2C 20 73 75 62 29 3D 3D 45 52 52 29 0D 0A 20    L, sub)==ERR).. 
0101A0:  20 20 20 65 72 72 6F 72 28 22 72 65 70 6C 61 63       error("replac
0101B0:  65 6D 65 6E 74 20 74 6F 6F 20 6C 6F 6E 67 5C 6E    ement too long\n
0101C0:  22 29 3B 0D 0A 20 20 61 75 78 62 75 66 28 73 74    ");..  auxbuf(st
0101D0:  64 69 6E 2C 20 34 30 39 36 29 3B 20 20 2F 2A 2A    din, 4096);  /**
0101E0:  20 61 6C 6C 6F 63 20 61 75 78 20 62 75 66 66 65     alloc aux buffe
0101F0:  72 20 74 6F 20 73 74 64 69 6E 20 2A 2A 2F 0D 0A    r to stdin **/..
010200:  20 20 77 68 69 6C 65 28 66 67 65 74 73 28 6C 69      while(fgets(li
010210:  6E 2C 20 4D 41 58 4C 49 4E 31 2C 20 73 74 64 69    n, MAXLIN1, stdi
010220:  6E 29 21 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20    n)!=NULL) {..   
010230:  20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 20     poll(YES);..   
010240:  20 6C 61 73 74 6E 20 3D 20 2D 31 3B 0D 0A 20 20     lastn = -1;..  
010250:  20 20 69 3D 30 3B 20 20 6B 3D 30 3B 0D 0A 20 20      i=0;  k=0;..  
010260:  20 20 74 72 69 6D 28 6C 69 6E 29 3B 0D 0A 20 20      trim(lin);..  
010270:  20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A      while(YES) {..
010280:  20 20 20 20 20 20 6E 3D 61 6D 61 74 63 68 28 6C          n=amatch(l
010290:  69 6E 2C 20 69 2C 20 70 61 74 29 3B 0D 0A 20 20    in, i, pat);..  
0102A0:  20 20 20 20 69 66 28 28 6E 3E 3D 30 29 26 28 6C        if((n>=0)&(l
0102B0:  61 73 74 6E 21 3D 6E 29 29 20 7B 20 20 20 2F 2A    astn!=n)) {   /*
0102C0:  2A 20 72 65 70 6C 61 63 65 20 6D 61 74 63 68 65    * replace matche
0102D0:  64 20 74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20    d text **/..    
0102E0:  20 20 20 20 63 61 74 73 75 62 28 6C 69 6E 2C 20        catsub(lin, 
0102F0:  69 2C 20 6E 2C 20 73 75 62 2C 20 6E 65 77 2C 20    i, n, sub, new, 
010300:  61 72 79 3D 73 74 72 69 70 6C 66 3D 73 74 72 69    ary=striplf=stri
010310:  70 63 72 3D 65 72 72 6F 72 3D 4E 4F 3B 0D 0A 20    pcr=error=NO;.. 
010320:  20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 67     i=0;..  while(g
010330:  65 74 61 72 67 28 2B 2B 69 2C 20 61 72 67 2C 20    etarg(++i, arg, 
010340:  4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 72    MAXARG, argc, ar
010350:  67 76 29 21 3D 45 4F 46 29 20 7B 0D 0A 20 20 20    gv)!=EOF) {..   
010360:  20 69 66 28 61 72 67 5B 30 5D 3D 3D 45 58 54 4D     if(arg[0]==EXTM
010370:  41 52 4B 29 20 7B 0D 0A 20 20 20 20 20 20 6A 3D    ARK) {..      j=
010380:  30 3B 0D 0A 20 20 20 20 20 20 77 68 69 6C 65 28    0;..      while(
010390:  69 6E 63 6C 65 78 74 5B 6A 5D 3D 61 72 67 5B 6A    inclext[j]=arg[j
0103A0:  5D 29 20 2B 2B 6A 3B 0D 0A 20 20 20 20 20 20 63    ]) ++j;..      c
0103B0:  6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20    ontinue;..      
0103C0:  7D 0D 0A 20 20 20 20 69 66 28 61 72 67 5B 30 5D    }..    if(arg[0]
0103D0:  21 3D 27 2D 27 29 20 63 6F 6E 74 69 6E 75 65 3B    !='-') continue;
0103E0:  0D 0A 20 20 20 20 69 66 28 61 72 67 5B 32 5D 3D    ..    if(arg[2]=
0103F0:  3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 20 20    =NULL) {..      
010400:  69 66 28 73 61 6D 65 28 61 72 67 5B 31 5D 2C 20    if(same(arg[1], 
010410:  27 62 27 29 29 20 62 69 6E 61 72 79 3D 59 45 53    'b')) binary=YES
010420:  3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 65 72    ;..      else er
010430:  72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20    ror=YES;..      
010440:  7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 61    }..    else if(a
010450:  72 67 5B 34 5D 3D 3D 4E 55 4C 4C 29 20 7B 0D 0A    rg[4]==NULL) {..
010460:  20 20 20 20 20 20 69 66 28 73 61 6D 65 28 61 72          if(same(ar
010470:  67 5B 31 5D 2C 20 27 6E 27 29 29 20 7B 0D 0A 20    g[1], 'n')) {.. 
010480:  20 20 20 20 20 20 20 69 66 28 73 61 6D 65 28 61           if(same(a
010490:  72 67 5B 32 5D 2C 20 27 63 27 29 20 26 20 73 61    rg[2], 'c') & sa
0104A0:  6D 65 28 61 72 67 5B 33 5D 2C 20 27 72 27 29 29    me(arg[3], 'r'))
0104B0:  0D 0A 20 20 20 20 20 20 20 20 20 20 73 74 72 69    ..          stri
0104C0:  70 63 72 3D 62 69 6E 61 72 79 3D 59 45 53 3B 0D    pcr=binary=YES;.
0104D0:  0A 20 20 20 20 20 20 20 20 65 6C 73 65 20 69 66    .        else if
0104E0:  28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27 6C    (same(arg[2], 'l
0104F0:  27 29 20 26 20 73 61 6D 65 28 61 72 67 5B 33 5D    ') & same(arg[3]
010500:  26 6B 2C 20 4D 41 58 4C 49 4E 31 29 3B 0D 0A 20    &k, MAXLIN1);.. 
010510:  20 20 20 20 20 20 20 6C 61 73 74 6E 3D 6E 3B 0D           lastn=n;.
010520:  0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    .        }..    
010530:  20 20 69 66 28 6C 69 6E 5B 69 5D 3D 3D 4E 55 4C      if(lin[i]==NUL
010540:  4C 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20    L) break;..     
010550:  20 69 66 28 28 6E 3D 3D 2D 31 29 7C 28 6E 3D 3D     if((n==-1)|(n==
010560:  69 29 29 20 7B 20 20 20 20 20 20 2F 2A 2A 20 6E    i)) {      /** n
010570:  6F 20 6D 61 74 63 68 20 6F 72 20 6E 75 6C 6C 20    o match or null 
010580:  6D 61 74 63 68 20 2A 2A 2F 0D 0A 20 20 20 20 20    match **/..     
010590:  20 20 20 61 64 64 73 65 74 28 6C 69 6E 5B 69 5D       addset(lin[i]
0105A0:  2C 20 6E 65 77 2C 20 26 6B 2C 20 4D 41 58 4C 49    , new, &k, MAXLI
0105B0:  4E 31 29 3B 0D 0A 20 20 20 20 20 20 20 20 2B 2B    N1);..        ++
0105C0:  69 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20    i;..        }.. 
0105D0:  20 20 20 20 20 65 6C 73 65 20 69 3D 6E 3B 20 20         else i=n;  
0105E0:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2F                   /
0105F0:  2A 2A 20 73 6B 69 70 20 6D 61 74 63 68 65 64 20    ** skip matched 
010600:  74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20 20 20    text **/..      
010610:  7D 0D 0A 20 20 20 20 69 66 28 61 64 64 73 65 74    }..    if(addset
010620:  28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C 20    (NULL, new, &k, 
010630:  4D 41 58 4C 49 4E 31 29 3D 3D 4E 4F 29 20 7B 0D    MAXLIN1)==NO) {.
010640:  0A 20 20 20 20 20 20 6B 3D 4D 41 58 4C 49 4E 31    .      k=MAXLIN1
010650:  2D 31 3B 0D 0A 20 20 20 20 20 20 61 64 64 73 65    -1;..      addse
010660:  74 28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C    t(NULL, new, &k,
010670:  20 4D 41 58 4C 49 4E 31 29 3B 0D 0A 20 20 20 20     MAXLIN1);..    
010680:  20 20 73 6F 75 74 28 22 5C 37 6C 69 6E 65 20 74      sout("\7line t
010690:  72 75 6E 63 61 74 65 64 3A 20 22 2C 20 73 74 64    runcated: ", std
0106A0:  65 72 72 29 3B 0D 0A 20 20 20 20 20 20 6C 6F 75    err);..      lou
0106B0:  74 28 6E 65 77 2C 20 73 74 64 65 72 72 29 3B 0D    t(new, stderr);.
0106C0:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 6C 6F    .      }..    lo
0106D0:  75 74 28 6E 65 77 2C 20 73 74 64 6F 75 74 29 3B    ut(new, stdout);
0106E0:  0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73    ..    }..  fclos
0106F0:  65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D    e(stdout);..  }.
010700:  2C 20 27 66 27 29 29 0D 0A 20 20 20 20 20 20 20    , 'f'))..       
010710:  20 20 20 73 74 72 69 70 6C 66 3D 62 69 6E 61 72       striplf=binar
010720:  79 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 20 20    y=YES;..        
010730:  65 6C 73 65 20 65 72 72 6F 72 3D 59 45 53 3B 0D    else error=YES;.
010740:  0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    .        }..    
010750:  20 20 65 6C 73 65 20 65 72 72 6F 72 3D 59 45 53      else error=YES
010760:  3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    ;..      }..    
010770:  65 6C 73 65 20 69 66 28 73 61 6D 65 28 61 72 67    else if(same(arg
010780:  5B 31 5D 2C 20 27 74 27 29 29 20 7B 0D 0A 20 20    [1], 't')) {..  
010790:  20 20 20 20 62 69 6E 61 72 79 3D 59 45 53 3B 0D        binary=YES;.
0107A0:  0A 20 20 20 20 20 20 6C 65 6E 3D 75 74 6F 69 28    .      len=utoi(
0107B0:  61 72 67 2B 32 2C 20 26 66 72 6F 6D 29 3B 0D 0A    arg+2, &from);..
0107C0:  20 20 20 20 20 20 69 66 28 28 6C 65 6E 3C 31 29          if((len<1)
0107D0:  7C 28 61 72 67 5B 6C 65 6E 2B 32 5D 21 3D 27 2C    |(arg[len+2]!=',
0107E0:  27 29 29 20 65 72 72 6F 72 3D 59 45 53 3B 0D 0A    ')) error=YES;..
0107F0:  20 20 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20          else {..  
010800:  20 20 20 20 20 20 6A 3D 6C 65 6E 2B 33 3B 0D 0A          j=len+3;..
010810:  20 20 20 20 20 20 20 20 6C 65 6E 3D 75 74 6F 69            len=utoi
010820:  28 61 72 67 2B 6A 2C 20 26 74 6F 29 3B 0D 0A 20    (arg+j, &to);.. 
010830:  20 20 20 20 20 20 20 69 66 28 28 6C 65 6E 3C 31           if((len<1
010840:  29 7C 28 61 72 67 5B 6C 65 6E 2B 6A 5D 21 3D 4E    )|(arg[len+j]!=N
010850:  55 4C 4C 29 29 20 65 72 72 6F 72 3D 59 45 53 3B    ULL)) error=YES;
010860:  0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20    ..        }..   
010870:  20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 65       }..    else e
010880:  72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 69    rror=YES;..    i
010890:  66 28 65 72 72 6F 72 29 20 7B 0D 0A 20 20 20 20    f(error) {..    
0108A0:  20 20 66 70 75 74 73 28 22 75 73 61 67 65 3A 20      fputs("usage: 
0108B0:  43 50 59 20 5B 66 69 6C 65 5D 2E 2E 2E 20 5B 2E    CPY [file]... [.
0108C0:  3F 5D 20 5B 2D 42 5D 20 5B 2D 4E 43 52 5D 20 5B    ?] [-B] [-NCR] [
0108D0:  2D 4E 4C 46 5D 20 5B 2D 54 23 2C 23 5D 5C 6E 22    -NLF] [-T#,#]\n"
0108E0:  2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20    , stderr);..    
0108F0:  20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20      abort(7);..   
010900:  0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 70 61 74    ...#include "pat
010910:  2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 6D    .c"..#include "m
010920:  61 6B 73 75 62 2E 63 22 0D 0A 23 69 6E 63 6C 75    aksub.c"..#inclu
010930:  64 65 20 22 63 61 74 73 75 62 2E 63 22 0D 0A 23    de "catsub.c"..#
010940:  69 6E 63 6C 75 64 65 20 22 69 6E 64 65 78 2E 63    include "index.c
010950:  22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 65 72 72    "..#include "err
010960:  6F 72 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20    or.c"..#include 
010970:  22 6F 75 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64    "out.c"..#includ
010980:  65 20 22 74 72 69 6D 2E 63 22 0D 0A 0D 0A 1A 1A    e "trim.c"......
010990:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0109A0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0109B0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0109C0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0109D0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0109E0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0109F0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
010A00:  74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20 20 20    text **/..      
010A10:  7D 0D 0A 20 20 20 20 69 66 28 61 64 64 73 65 74    }..    if(addset
010A20:  28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C 20    (NULL, new, &k, 
010A30:  4D 41 58 4C 49 4E 31 29 3D 3D 4E 4F 29 20 7B 0D    MAXLIN1)==NO) {.
010A40:  0A 20 20 20 20 20 20 6B 3D 4D 41 58 4C 49 4E 31    .      k=MAXLIN1
010A50:  2D 31 3B 0D 0A 20 20 20 20 20 20 61 64 64 73 65    -1;..      addse
010A60:  74 28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C    t(NULL, new, &k,
010A70:  20 4D 41 58 4C 49 4E 31 29 3B 0D 0A 20 20 20 20     MAXLIN1);..    
010A80:  20 20 73 6F 75 74 28 22 5C 37 6C 69 6E 65 20 74      sout("\7line t
010A90:  72 75 6E 63 61 74 65 64 3A 20 22 2C 20 73 74 64    runcated: ", std
010AA0:  65 72 72 29 3B 0D 0A 20 20 20 20 20 20 6C 6F 75    err);..      lou
010AB0:  74 28 6E 65 77 2C 20 73 74 64 65 72 72 29 3B 0D    t(new, stderr);.
010AC0:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 6C 6F    .      }..    lo
010AD0:  75 74 28 6E 65 77 2C 20 73 74 64 6F 75 74 29 3B    ut(new, stdout);
010AE0:  0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73    ..    }..  fclos
010AF0:  65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D    e(stdout);..  }.
010B00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
010B10:  0E 00 01 00 02 09 52 E5 0E 00 41 02 00 00 00 02    ......R...A.....
010B20:  0E 00 46 02 00 00 00 02 0E 00 42 02 00 00 00 02    ..F.......B.....
010B30:  0E 00 47 02 00 00 00 02 0E 00 43 02 00 00 00 02    ..G.......C.....
010B40:  0E 00 48 02 00 00 00 02 0E 00 44 02 00 00 00 02    ..H.......D.....
010B50:  0E 00 49 02 00 00 00 02 0E 00 45 02 00 00 00 02    ..I.......E.....
010B60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010B70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010B80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010B90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010BF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
010C00:  20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D       }..    }..  }
010C10:  0D 0A 0D 0A 62 63 6F 70 79 28 69 6E 2C 20 6F 75    ....bcopy(in, ou
010C20:  74 29 20 69 6E 74 20 69 6E 2C 20 6F 75 74 3B 20    t) int in, out; 
010C30:  7B 0D 0A 20 20 63 68 61 72 20 63 5B 31 5D 3B 0D    {..  char c[1];.
010C40:  0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D    .  while(YES) {.
010C50:  0A 20 20 20 20 73 74 61 74 75 73 3D 72 65 61 64    .    status=read
010C60:  28 69 6E 2C 20 63 2C 20 31 29 3B 0D 0A 20 20 20    (in, c, 1);..   
010C70:  20 69 66 28 73 74 61 74 75 73 3D 3D 30 29 20 62     if(status==0) b
010C80:  72 65 61 6B 3B 0D 0A 20 20 20 20 69 66 28 69 73    reak;..    if(is
010C90:  61 74 74 79 28 69 6E 29 26 28 63 5B 30 5D 3D 3D    atty(in)&(c[0]==
010CA0:  34 29 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20    4)) break;..    
010CB0:  69 66 28 73 74 61 74 75 73 20 3C 20 31 29 20 7B    if(status < 1) {
010CC0:  0D 0A 20 20 20 20 20 20 66 70 75 74 73 28 22 69    ..      fputs("i
010CD0:  6E 70 75 74 20 65 72 72 6F 72 5C 6E 22 2C 20 73    nput error\n", s
010CE0:  74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 66    tderr);..      f
010CF0:  63 6C 6F 73 65 28 6F 75 74 29 3B 0D 0A 20 20 20    close(out);..   
010D00:  20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20       abort(7);..  
010D10:  20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 28 63        }..    if((c
010D20:  5B 30 5D 3D 3D 43 52 29 26 28 73 74 72 69 70 63    [0]==CR)&(stripc
010D30:  72 29 29 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20    r)) continue;.. 
010D40:  20 20 20 69 66 28 28 63 5B 30 5D 3D 3D 4C 46 29       if((c[0]==LF)
010D50:  26 28 73 74 72 69 70 6C 66 29 29 20 63 6F 6E 74    &(striplf)) cont
010D60:  69 6E 75 65 3B 0D 0A 20 20 20 20 69 66 28 28 66    inue;..    if((f
010D70:  72 6F 6D 21 3D 74 6F 29 26 28 28 63 5B 30 5D 26    rom!=to)&((c[0]&
010D80:  32 35 35 29 3D 3D 66 72 6F 6D 29 29 20 63 5B 30    255)==from)) c[0
010D90:  5D 3D 74 6F 3B 0D 0A 20 20 20 20 73 74 61 74 75    ]=to;..    statu
010DA0:  73 3D 77 72 69 74 65 28 6F 75 74 2C 20 63 2C 20    s=write(out, c, 
010DB0:  31 29 3B 0D 0A 20 20 20 20 69 66 28 73 74 61 74    1);..    if(stat
010DC0:  75 73 20 3C 20 31 29 20 7B 0D 0A 20 20 20 20 20    us < 1) {..     
010DD0:  20 66 70 75 74 73 28 22 6F 75 74 70 75 74 20 65     fputs("output e
010DE0:  72 72 6F 72 5C 6E 22 2C 20 73 74 64 65 72 72 29    rror\n", stderr)
010DF0:  3B 0D 0A 20 20 20 20 20 20 66 63 6C 6F 73 65 28    ;..      fclose(
010E00:  72 28 61 72 67 5B 31 5D 29 29 20 7B 0D 0A 20 20    r(arg[1])) {..  
010E10:  20 20 20 20 63 61 73 65 20 27 63 27 3A 20 63 61        case 'c': ca
010E20:  73 65 20 27 77 27 3A 20 63 61 73 65 20 27 6C 27    se 'w': case 'l'
010E30:  3A 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20    : continue;..   
010E40:  20 20 20 64 65 66 61 75 6C 74 3A 0D 0A 20 20 20       default:..   
010E50:  20 20 20 20 20 66 70 75 74 73 28 22 75 73 61 67         fputs("usag
010E60:  65 3A 20 43 4E 54 20 5B 66 69 6C 65 5D 20 5B 2D    e: CNT [file] [-
010E70:  43 7C 2D 57 7C 2D 4C 5D 5C 6E 22 2C 20 73 74 64    C|-W|-L]\n", std
010E80:  65 72 72 29 3B 0D 0A 20 20 20 20 20 20 20 20 61    err);..        a
010E90:  62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 20 20    bort(7);..      
010EA0:  7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 6E 63 3D 6E    }..    }..  nc=n
010EB0:  6C 3D 6E 77 3D 30 3B 0D 0A 20 20 69 6E 77 6F 72    l=nw=0;..  inwor
010EC0:  64 3D 4E 4F 3B 0D 0A 20 20 77 68 69 6C 65 28 28    d=NO;..  while((
010ED0:  63 3D 66 67 65 74 63 28 66 64 29 29 21 3D 45 4F    c=fgetc(fd))!=EO
010EE0:  46 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59    F) {..    poll(Y
010EF0:  45 53 29 3B 0D 0A 20 20 20 20 69 66 28 63 3D 3D    ES);..    if(c==
010F00:  27 5C 6E 27 29 20 7B 0D 0A 20 20 20 20 20 20 2B    '\n') {..      +
010F10:  2B 6E 6C 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    +nl;..      }.. 
010F20:  20 20 20 65 6C 73 65 20 2B 2B 6E 63 3B 0D 0A 20       else ++nc;.. 
010F30:  20 20 20 69 66 28 69 73 73 70 61 63 65 28 63 29       if(isspace(c)
010F40:  29 20 69 6E 77 6F 72 64 3D 4E 4F 3B 0D 0A 20 20    ) inword=NO;..  
010F50:  20 20 65 6C 73 65 20 69 66 28 69 6E 77 6F 72 64      else if(inword
010F60:  3D 3D 4E 4F 29 20 7B 0D 0A 20 20 20 20 20 20 69    ==NO) {..      i
010F70:  6E 77 6F 72 64 3D 59 45 53 3B 0D 0A 20 20 20 20    nword=YES;..    
010F80:  20 20 2B 2B 6E 77 3B 0D 0A 20 20 20 20 20 20 7D      ++nw;..      }
010F90:  0D 0A 20 20 20 20 7D 0D 0A 20 20 69 74 6F 75 28    ..    }..  itou(
010FA0:  6E 63 2C 20 73 74 72 63 2C 20 36 29 3B 0D 0A 20    nc, strc, 6);.. 
010FB0:  20 69 74 6F 75 28 6E 77 2C 20 73 74 72 77 2C 20     itou(nw, strw, 
010FC0:  36 29 3B 0D 0A 20 20 69 74 6F 75 28 6E 6C 2C 20    6);..  itou(nl, 
010FD0:  73 74 72 6C 2C 20 36 29 3B 0D 0A 20 20 73 77 69    strl, 6);..  swi
010FE0:  74 63 68 28 66 29 20 7B 0D 0A 20 20 20 20 63 61    tch(f) {..    ca
010FF0:  73 65 20 27 63 27 3A 20 6C 6F 75 74 28 73 74 72    se 'c': lout(str
011000:  6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 61 62 6F    out);..      abo
011010:  72 74 28 37 29 3B 0D 0A 20 20 20 20 20 20 7D 0D    rt(7);..      }.
011020:  0A 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D    .    poll(YES);.
011030:  0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 66    .    }..  }....f
011040:  63 6F 70 79 28 69 6E 2C 20 6F 75 74 29 20 69 6E    copy(in, out) in
011050:  74 20 69 6E 2C 20 6F 75 74 3B 20 7B 0D 0A 20 20    t in, out; {..  
011060:  69 6E 74 20 69 2C 20 6C 6F 63 2C 20 69 6E 32 3B    int i, loc, in2;
011070:  0D 0A 20 20 63 68 61 72 20 62 75 66 5B 4D 41 58    ..  char buf[MAX
011080:  4C 49 4E 45 2B 31 5D 2C 20 73 74 72 5B 4D 41 58    LINE+1], str[MAX
011090:  4C 49 4E 45 2B 31 5D 3B 0D 0A 20 20 77 68 69 6C    LINE+1];..  whil
0110A0:  65 28 66 67 65 74 73 28 62 75 66 2C 20 4D 41 58    e(fgets(buf, MAX
0110B0:  4C 49 4E 45 2B 31 2C 20 69 6E 29 21 3D 4E 55 4C    LINE+1, in)!=NUL
0110C0:  4C 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59    L) {..    poll(Y
0110D0:  45 53 29 3B 0D 0A 20 20 20 20 69 66 28 69 6E 63    ES);..    if(inc
0110E0:  6C 65 78 74 5B 30 5D 3D 3D 4E 55 4C 4C 29 20 7B    lext[0]==NULL) {
0110F0:  0D 0A 20 20 20 20 20 20 73 6F 75 74 28 62 75 66    ..      sout(buf
011100:  2C 20 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 63    , out);..      c
011110:  6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20    ontinue;..      
011120:  7D 0D 0A 20 20 20 20 6C 6F 63 3D 30 3B 0D 0A 20    }..    loc=0;.. 
011130:  20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20 26       getwrd(buf, &
011140:  6C 6F 63 2C 20 73 74 72 29 3B 0D 0A 20 20 20 20    loc, str);..    
011150:  69 66 28 28 6C 65 78 63 6D 70 28 73 74 72 2C 20    if((lexcmp(str, 
011160:  22 23 69 6E 63 6C 75 64 65 22 29 21 3D 30 29 20    "#include")!=0) 
011170:  26 26 0D 0A 20 20 20 20 20 20 20 28 6C 65 78 63    &&..       (lexc
011180:  6D 70 28 73 74 72 2C 20 22 2E 73 6F 22 29 21 3D    mp(str, ".so")!=
011190:  30 29 29 20 7B 0D 0A 20 20 20 20 20 20 73 6F 75    0)) {..      sou
0111A0:  74 28 62 75 66 2C 20 6F 75 74 29 3B 0D 0A 20 20    t(buf, out);..  
0111B0:  20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20        continue;.. 
0111C0:  20 20 20 20 20 7D 0D 0A 20 20 20 20 67 65 74 77         }..    getw
0111D0:  72 64 28 62 75 66 2C 20 26 6C 6F 63 2C 20 73 74    rd(buf, &loc, st
0111E0:  72 29 3B 0D 0A 20 20 20 20 73 74 72 69 70 28 73    r);..    strip(s
0111F0:  74 72 29 3B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A    tr);..    i=0;..
011200:  63 2C 20 73 74 64 6F 75 74 29 3B 20 62 72 65 61    c, stdout); brea
011210:  6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 27 77 27    k;..    case 'w'
011220:  3A 20 6C 6F 75 74 28 73 74 72 77 2C 20 73 74 64    : lout(strw, std
011230:  6F 75 74 29 3B 20 62 72 65 61 6B 3B 0D 0A 20 20    out); break;..  
011240:  20 20 63 61 73 65 20 27 6C 27 3A 20 6C 6F 75 74      case 'l': lout
011250:  28 73 74 72 6C 2C 20 73 74 64 6F 75 74 29 3B 20    (strl, stdout); 
011260:  62 72 65 61 6B 3B 0D 0A 20 20 20 20 64 65 66 61    break;..    defa
011270:  75 6C 74 3A 0D 0A 20 20 20 20 20 20 73 6F 75 74    ult:..      sout
011280:  28 73 74 72 63 2C 20 73 74 64 6F 75 74 29 3B 20    (strc, stdout); 
011290:  6C 6F 75 74 28 22 20 63 68 61 72 61 63 74 65 72    lout(" character
0112A0:  73 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20    s", stdout);..  
0112B0:  20 20 20 20 73 6F 75 74 28 73 74 72 77 2C 20 73        sout(strw, s
0112C0:  74 64 6F 75 74 29 3B 20 6C 6F 75 74 28 22 20 77    tdout); lout(" w
0112D0:  6F 72 64 73 22 2C 20 73 74 64 6F 75 74 29 3B 0D    ords", stdout);.
0112E0:  0A 20 20 20 20 20 20 73 6F 75 74 28 73 74 72 6C    .      sout(strl
0112F0:  2C 20 73 74 64 6F 75 74 29 3B 20 6C 6F 75 74 28    , stdout); lout(
011300:  22 20 6C 69 6E 65 73 22 2C 20 73 74 64 6F 75 74    " lines", stdout
011310:  29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C    );..    }..  fcl
011320:  6F 73 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20    ose(stdout);..  
011330:  7D 0D 0A 23 69 6E 63 6C 75 64 65 20 22 63 61 6E    }..#include "can
011340:  74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22    t.c"..#include "
011350:  6F 75 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A    out.c"..........
011360:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
011370:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
011380:  20 20 2B 2B 6E 77 3B 0D 0A 20 20 20 20 20 20 7D      ++nw;..      }
011390:  0D 0A 20 20 20 20 7D 0D 0A 20 20 69 74 6F 75 28    ..    }..  itou(
0113A0:  6E 63 2C 20 73 74 72 63 2C 20 36 29 3B 0D 0A 20    nc, strc, 6);.. 
0113B0:  20 69 74 6F 75 28 6E 77 2C 20 73 74 72 77 2C 20     itou(nw, strw, 
0113C0:  36 29 3B 0D 0A 20 20 69 74 6F 75 28 6E 6C 2C 20    6);..  itou(nl, 
0113D0:  73 74 72 6C 2C 20 36 29 3B 0D 0A 20 20 73 77 69    strl, 6);..  swi
0113E0:  74 63 68 28 66 29 20 7B 0D 0A 20 20 20 20 63 61    tch(f) {..    ca
0113F0:  73 65 20 27 63 27 3A 20 6C 6F 75 74 28 73 74 72    se 'c': lout(str
011400:  20 20 20 20 77 68 69 6C 65 28 28 73 74 72 5B 69        while((str[i
011410:  5D 21 3D 45 58 54 4D 41 52 4B 29 20 26 26 20 73    ]!=EXTMARK) && s
011420:  74 72 5B 69 5D 29 20 2B 2B 69 3B 0D 0A 20 20 20    tr[i]) ++i;..   
011430:  20 69 66 28 69 6E 63 6C 65 78 74 5B 31 5D 20 26     if(inclext[1] &
011440:  26 20 6C 65 78 63 6D 70 28 73 74 72 2B 69 2C 20    & lexcmp(str+i, 
011450:  69 6E 63 6C 65 78 74 29 29 20 7B 0D 0A 20 20 20    inclext)) {..   
011460:  20 20 20 73 6F 75 74 28 62 75 66 2C 20 6F 75 74       sout(buf, out
011470:  29 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E    );..      contin
011480:  75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ue;..      }..  
011490:  20 20 69 66 28 28 69 6E 32 3D 66 6F 70 65 6E 28      if((in2=fopen(
0114A0:  73 74 72 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C    str, "r"))==NULL
0114B0:  29 20 63 61 6E 74 28 73 74 72 29 3B 0D 0A 20 20    ) cant(str);..  
0114C0:  20 20 66 63 6F 70 79 28 69 6E 32 2C 20 6F 75 74      fcopy(in2, out
0114D0:  29 3B 0D 0A 20 20 20 20 66 63 6C 6F 73 65 28 69    );..    fclose(i
0114E0:  6E 32 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D    n2);..    }..  }
0114F0:  0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 6F 75    ....#include "ou
011500:  74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22    t.c"..#include "
011510:  63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64    cant.c"..#includ
011520:  65 20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63    e "same.c"..#inc
011530:  6C 75 64 65 20 22 73 74 72 69 70 2E 63 22 0D 0A    lude "strip.c"..
011540:  23 69 6E 63 6C 75 64 65 20 22 67 65 74 77 72 64    #include "getwrd
011550:  2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A    .c".............
011560:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
011570:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
011580:  6D 70 28 73 74 72 2C 20 22 2E 73 6F 22 29 21 3D    mp(str, ".so")!=
011590:  30 29 29 20 7B 0D 0A 20 20 20 20 20 20 73 6F 75    0)) {..      sou
0115A0:  74 28 62 75 66 2C 20 6F 75 74 29 3B 0D 0A 20 20    t(buf, out);..  
0115B0:  20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20        continue;.. 
0115C0:  20 20 20 20 20 7D 0D 0A 20 20 20 20 67 65 74 77         }..    getw
0115D0:  72 64 28 62 75 66 2C 20 26 6C 6F 63 2C 20 73 74    rd(buf, &loc, st
0115E0:  72 29 3B 0D 0A 20 20 20 20 73 74 72 69 70 28 73    r);..    strip(s
0115F0:  74 72 29 3B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A    tr);..    i=0;..
011600:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011610:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011620:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011630:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011640:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011650:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011660:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011670:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011680:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011690:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0116A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0116B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0116C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0116D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0116E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0116F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011700:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011710:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011720:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011730:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011740:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011750:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011760:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011770:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011780:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011790:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0117A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0117B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0117C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0117D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0117E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0117F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011800:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011810:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011820:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011830:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011840:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011850:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011860:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011870:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011880:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011890:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0118A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0118B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0118C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0118D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0118E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0118F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0119A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0119B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0119C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0119D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0119E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0119F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
011A00:  2F 2A 0D 0A 2A 2A 20 63 70 74 2E 63 20 2D 2D 20    /*..** cpt.c -- 
011A10:  65 6E 63 72 79 70 74 20 6F 72 20 64 65 63 72 79    encrypt or decry
011A20:  70 74 20 41 53 43 49 49 20 6F 72 20 62 69 6E 61    pt ASCII or bina
011A30:  72 79 20 66 69 6C 65 73 0D 0A 2A 2A 0D 0A 2A 2A    ry files..**..**
011A40:  20 43 6F 70 79 72 69 67 68 74 20 31 39 38 32 20     Copyright 1982 
011A50:  4A 2E 20 45 2E 20 48 65 6E 64 72 69 78 2E 20 20    J. E. Hendrix.  
011A60:  41 6C 6C 20 72 69 67 68 74 73 20 72 65 73 65 72    All rights reser
011A70:  76 65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75    ved...*/..#inclu
011A80:  64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 64    de <stdio.h>..#d
011A90:  65 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A    efine NOCCARGC..
011AA0:  23 64 65 66 69 6E 65 20 4D 41 58 4B 45 59 20 38    #define MAXKEY 8
011AB0:  31 0D 0A 23 64 65 66 69 6E 65 20 43 54 4C 5A 20    1..#define CTLZ 
011AC0:  20 20 32 36 0D 0A 6D 61 69 6E 28 61 72 67 63 2C      26..main(argc,
011AD0:  20 61 72 67 76 29 20 69 6E 74 20 61 72 67 63 2C     argv) int argc,
011AE0:  20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 63 68 61     *argv; {..  cha
011AF0:  72 20 63 2C 20 6B 65 79 5B 4D 41 58 4B 45 59 5D    r c, key[MAXKEY]
011B00:  3B 0D 0A 20 20 69 6E 74 20 69 2C 20 6B 65 79 6C    ;..  int i, keyl
011B10:  65 6E 3B 0D 0A 20 20 61 75 78 62 75 66 28 73 74    en;..  auxbuf(st
011B20:  64 69 6E 2C 20 34 30 39 36 29 3B 0D 0A 20 20 6B    din, 4096);..  k
011B30:  65 79 6C 65 6E 3D 67 65 74 61 72 67 28 31 2C 20    eylen=getarg(1, 
011B40:  6B 65 79 2C 20 4D 41 58 4B 45 59 2C 20 61 72 67    key, MAXKEY, arg
011B50:  63 2C 20 61 72 67 76 29 3B 0D 0A 20 20 69 66 28    c, argv);..  if(
011B60:  28 6B 65 79 6C 65 6E 3D 3D 45 4F 46 29 7C 28 6B    (keylen==EOF)|(k
011B70:  65 79 5B 30 5D 3D 3D 27 2D 27 29 29 20 7B 0D 0A    ey[0]=='-')) {..
011B80:  20 20 20 20 66 70 75 74 73 28 22 75 73 61 67 65        fputs("usage
011B90:  3A 20 43 50 54 20 6B 65 79 5C 6E 22 2C 20 73 74    : CPT key\n", st
011BA0:  64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72    derr);..    abor
011BB0:  74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20    t(7);..    }..  
011BC0:  69 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28 72 65    i=1;..  while(re
011BD0:  61 64 28 73 74 64 69 6E 2C 20 26 63 2C 20 31 29    ad(stdin, &c, 1)
011BE0:  20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 70 6F 6C     > 0) {..    pol
011BF0:  6C 28 59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28    l(YES);..    if(
011C00:  0D 0A 2F 2A 0D 0A 2A 2A 20 63 6E 74 2E 63 20 2D    ../*..** cnt.c -
011C10:  2D 20 63 6F 75 6E 74 20 63 68 61 72 61 63 74 65    - count characte
011C20:  72 73 2C 20 77 6F 72 64 73 2C 20 61 6E 64 2F 6F    rs, words, and/o
011C30:  72 20 6C 69 6E 65 73 0D 0A 2A 2A 0D 0A 2A 2A 20    r lines..**..** 
011C40:  43 6F 70 79 72 69 67 68 74 20 31 39 38 32 20 4A    Copyright 1982 J
011C50:  2E 20 45 2E 20 48 65 6E 64 72 69 78 2E 20 20 41    . E. Hendrix.  A
011C60:  6C 6C 20 72 69 67 68 74 73 20 72 65 73 65 72 76    ll rights reserv
011C70:  65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64    ed...*/..#includ
011C80:  65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E    e <stdio.h>..#in
011C90:  63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E 68 22 0D    clude "tools.h".
011CA0:  0A 23 64 65 66 69 6E 65 20 4E 4F 43 43 41 52 47    .#define NOCCARG
011CB0:  43 0D 0A 63 68 61 72 20 73 74 72 63 5B 36 5D 2C    C..char strc[6],
011CC0:  20 73 74 72 77 5B 36 5D 2C 20 73 74 72 6C 5B 36     strw[6], strl[6
011CD0:  5D 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61    ];..main(argc, a
011CE0:  72 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A    rgv) int argc, *
011CF0:  61 72 67 76 3B 20 7B 0D 0A 20 20 63 68 61 72 20    argv; {..  char 
011D00:  61 72 67 5B 4D 41 58 46 4E 5D 2C 20 2A 6E 63 2C    arg[MAXFN], *nc,
011D10:  20 2A 6E 6C 2C 20 2A 6E 77 3B 0D 0A 20 20 69 6E     *nl, *nw;..  in
011D20:  74 20 63 2C 20 66 2C 20 69 2C 20 66 64 2C 20 69    t c, f, i, fd, i
011D30:  6E 77 6F 72 64 3B 0D 0A 20 20 66 64 3D 73 74 64    nword;..  fd=std
011D40:  69 6E 3B 0D 0A 20 20 69 3D 66 3D 30 3B 0D 0A 20    in;..  i=f=0;.. 
011D50:  20 77 68 69 6C 65 28 67 65 74 61 72 67 28 2B 2B     while(getarg(++
011D60:  69 2C 20 61 72 67 2C 20 4D 41 58 46 4E 2C 20 61    i, arg, MAXFN, a
011D70:  72 67 63 2C 20 61 72 67 76 29 20 21 3D 20 45 4F    rgc, argv) != EO
011D80:  46 29 20 7B 0D 0A 20 20 20 20 69 66 28 61 72 67    F) {..    if(arg
011D90:  5B 30 5D 20 21 3D 20 27 2D 27 29 20 7B 0D 0A 20    [0] != '-') {.. 
011DA0:  20 20 20 20 20 69 66 28 28 66 64 20 3D 20 66 6F         if((fd = fo
011DB0:  70 65 6E 28 61 72 67 2C 20 22 72 22 29 29 20 3D    pen(arg, "r")) =
011DC0:  3D 20 30 29 20 63 61 6E 74 28 61 72 67 29 3B 0D    = 0) cant(arg);.
011DD0:  0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B    .      continue;
011DE0:  0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 73    ..      }..    s
011DF0:  77 69 74 63 68 28 66 20 3D 20 74 6F 6C 6F 77 65    witch(f = tolowe
011E00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
011E10:  0F 00 01 00 02 09 52 E5 0F 00 41 02 00 00 00 02    ......R...A.....
011E20:  0F 00 46 02 00 00 00 02 0F 00 42 02 00 00 00 02    ..F.......B.....
011E30:  0F 00 47 02 00 00 00 02 0F 00 43 02 00 00 00 02    ..G.......C.....
011E40:  0F 00 48 02 00 00 00 02 0F 00 44 02 00 00 00 02    ..H.......D.....
011E50:  0F 00 49 02 00 00 00 02 0F 00 45 02 00 00 00 02    ..I.......E.....
011E60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011E70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011E80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011E90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011ED0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011EF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
011F00:  69 73 61 74 74 79 28 73 74 64 69 6E 29 20 26 26    isatty(stdin) &&
011F10:  20 28 63 3D 3D 43 54 4C 5A 29 29 20 62 72 65 61     (c==CTLZ)) brea
011F20:  6B 3B 0D 0A 20 20 20 20 63 3D 63 5E 6B 65 79 5B    k;..    c=c^key[
011F30:  69 2D 31 5D 3B 0D 0A 20 20 20 20 69 66 28 77 72    i-1];..    if(wr
011F40:  69 74 65 28 73 74 64 6F 75 74 2C 20 26 63 2C 20    ite(stdout, &c, 
011F50:  31 29 20 21 3D 31 20 29 20 7B 0D 0A 20 20 20 20    1) !=1 ) {..    
011F60:  20 20 66 70 75 74 73 28 22 6F 75 74 70 75 74 20      fputs("output 
011F70:  65 72 72 6F 72 5C 6E 22 2C 20 73 74 64 65 72 72    error\n", stderr
011F80:  29 3B 0D 0A 20 20 20 20 20 20 61 62 6F 72 74 28    );..      abort(
011F90:  37 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    7);..      }..  
011FA0:  20 20 69 3D 28 69 25 6B 65 79 6C 65 6E 29 2B 31      i=(i%keylen)+1
011FB0:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D    ;..    }..  }...
011FC0:  0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
011FD0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
011FE0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
011FF0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
012000:  3B 0D 0A 20 20 69 6E 74 20 69 2C 20 6B 65 79 6C    ;..  int i, keyl
012010:  65 6E 3B 0D 0A 20 20 61 75 78 62 75 66 28 73 74    en;..  auxbuf(st
012020:  64 69 6E 2C 20 34 30 39 36 29 3B 0D 0A 20 20 6B    din, 4096);..  k
012030:  65 79 6C 65 6E 3D 67 65 74 61 72 67 28 31 2C 20    eylen=getarg(1, 
012040:  6B 65 79 2C 20 4D 41 58 4B 45 59 2C 20 61 72 67    key, MAXKEY, arg
012050:  63 2C 20 61 72 67 76 29 3B 0D 0A 20 20 69 66 28    c, argv);..  if(
012060:  28 6B 65 79 6C 65 6E 3D 3D 45 4F 46 29 7C 28 6B    (keylen==EOF)|(k
012070:  65 79 5B 30 5D 3D 3D 27 2D 27 29 29 20 7B 0D 0A    ey[0]=='-')) {..
012080:  20 20 20 20 66 70 75 74 73 28 22 75 73 61 67 65        fputs("usage
012090:  3A 20 43 50 54 20 6B 65 79 5C 6E 22 2C 20 73 74    : CPT key\n", st
0120A0:  64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72    derr);..    abor
0120B0:  74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20    t(7);..    }..  
0120C0:  69 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28 72 65    i=1;..  while(re
0120D0:  61 64 28 73 74 64 69 6E 2C 20 26 63 2C 20 31 29    ad(stdin, &c, 1)
0120E0:  20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 70 6F 6C     > 0) {..    pol
0120F0:  6C 28 59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28    l(YES);..    if(
012100:  2F 2A 0D 0A 2A 2A 20 65 64 74 2E 63 20 2D 2D 20    /*..** edt.c -- 
012110:  65 64 69 74 20 74 65 78 74 0D 0A 2A 2A 0D 0A 2A    edit text..**..*
012120:  2A 20 43 6F 70 79 72 69 67 68 74 20 31 39 38 32    * Copyright 1982
012130:  20 4A 2E 20 45 2E 20 48 65 6E 64 72 69 78 2E 20     J. E. Hendrix. 
012140:  20 41 6C 6C 20 72 69 67 68 74 73 20 72 65 73 65     All rights rese
012150:  72 76 65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C    rved...*/..#incl
012160:  75 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23    ude <stdio.h>..#
012170:  69 6E 63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E 68    include "tools.h
012180:  22 0D 0A 23 64 65 66 69 6E 65 20 4E 4F 43 43 41    "..#define NOCCA
012190:  52 47 43 0D 0A 23 64 65 66 69 6E 65 20 4F 4B 20    RGC..#define OK 
0121A0:  31 0D 0A 23 64 65 66 69 6E 65 20 52 45 53 45 52    1..#define RESER
0121B0:  56 45 20 36 30 30 0D 0A 23 64 65 66 69 6E 65 20    VE 600..#define 
0121C0:  50 52 45 56 20 30 0D 0A 23 64 65 66 69 6E 65 20    PREV 0..#define 
0121D0:  4E 45 58 54 20 32 0D 0A 23 64 65 66 69 6E 65 20    NEXT 2..#define 
0121E0:  4D 41 52 4B 20 34 0D 0A 23 64 65 66 69 6E 65 20    MARK 4..#define 
0121F0:  54 45 58 54 20 35 0D 0A 23 64 65 66 69 6E 65 20    TEXT 5..#define 
012200:  49 4E 54 45 47 45 52 20 32 0D 0A 23 64 65 66 69    INTEGER 2..#defi
012210:  6E 65 20 4C 4F 4E 47 20 34 0D 0A 23 64 65 66 69    ne LONG 4..#defi
012220:  6E 65 20 4C 49 4E 45 30 20 30 0D 0A 23 64 65 66    ne LINE0 0..#def
012230:  69 6E 65 20 4E 4F 53 54 41 54 55 53 20 30 0D 0A    ine NOSTATUS 0..
012240:  23 64 65 66 69 6E 65 20 43 55 52 4C 49 4E 45 20    #define CURLINE 
012250:  27 2E 27 0D 0A 23 64 65 66 69 6E 65 20 4C 41 53    '.'..#define LAS
012260:  54 4C 49 4E 45 20 27 7C 27 0D 0A 23 64 65 66 69    TLINE '|'..#defi
012270:  6E 65 20 53 43 41 4E 20 27 2F 27 0D 0A 23 64 65    ne SCAN '/'..#de
012280:  66 69 6E 65 20 42 41 43 4B 53 43 41 4E 20 27 5C    fine BACKSCAN '\
012290:  5C 27 0D 0A 23 64 65 66 69 6E 65 20 46 4F 52 57    \'..#define FORW
0122A0:  41 52 44 20 31 0D 0A 23 64 65 66 69 6E 65 20 42    ARD 1..#define B
0122B0:  41 43 4B 57 41 52 44 20 30 0D 0A 23 64 65 66 69    ACKWARD 0..#defi
0122C0:  6E 65 20 50 45 52 49 4F 44 20 27 2E 27 0D 0A 23    ne PERIOD '.'..#
0122D0:  64 65 66 69 6E 65 20 43 4F 4D 4D 41 20 27 2C 27    define COMMA ','
0122E0:  0D 0A 23 64 65 66 69 6E 65 20 53 45 4D 49 43 4F    ..#define SEMICO
0122F0:  4C 20 27 3B 27 0D 0A 23 64 65 66 69 6E 65 20 50    L ';'..#define P
012300:  0D 0A 2F 2A 0D 0A 2A 2A 20 64 74 62 2E 63 20 2D    ../*..** dtb.c -
012310:  2D 20 63 6F 6E 76 65 72 74 20 74 61 62 73 20 74    - convert tabs t
012320:  6F 20 65 71 75 69 76 61 6C 65 6E 74 20 62 6C 61    o equivalent bla
012330:  6E 6B 73 0D 0A 2A 2A 0D 0A 2A 2A 20 43 6F 70 79    nks..**..** Copy
012340:  72 69 67 68 74 20 31 39 38 32 20 4A 2E 20 45 2E    right 1982 J. E.
012350:  20 48 65 6E 64 72 69 78 2E 20 20 41 6C 6C 20 72     Hendrix.  All r
012360:  69 67 68 74 73 20 72 65 73 65 72 76 65 64 2E 0D    ights reserved..
012370:  0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73    .*/..#include <s
012380:  74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64    tdio.h>..#includ
012390:  65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65    e "tools.h"..#de
0123A0:  66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 23    fine NOCCARGC..#
0123B0:  64 65 66 69 6E 65 20 4D 41 58 4C 49 4E 31 20 28    define MAXLIN1 (
0123C0:  4D 41 58 4C 49 4E 45 2B 31 29 0D 0A 6D 61 69 6E    MAXLINE+1)..main
0123D0:  28 61 72 67 63 2C 61 72 67 76 29 20 69 6E 74 20    (argc,argv) int 
0123E0:  61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A    argc, *argv; {..
0123F0:  20 20 63 68 61 72 20 63 2C 20 74 61 62 73 5B 4D      char c, tabs[M
012400:  41 58 4C 49 4E 31 5D 3B 0D 0A 20 20 69 6E 74 20    AXLIN1];..  int 
012410:  63 6F 6C 2C 20 69 3B 0D 0A 20 20 61 75 78 62 75    col, i;..  auxbu
012420:  66 28 73 74 64 69 6E 2C 20 34 30 39 36 29 3B 0D    f(stdin, 4096);.
012430:  0A 20 20 69 66 28 73 65 74 74 61 62 28 74 61 62    .  if(settab(tab
012440:  73 2C 20 61 72 67 63 2C 20 61 72 67 76 29 3D 3D    s, argc, argv)==
012450:  45 52 52 29 20 7B 0D 0A 20 20 20 20 66 70 75 74    ERR) {..    fput
012460:  73 28 22 75 73 61 67 65 3A 20 44 54 42 20 5B 23    s("usage: DTB [#
012470:  5D 2E 2E 2E 20 5B 2B 23 5D 5C 6E 22 2C 20 73 74    ]... [+#]\n", st
012480:  64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72    derr);..    abor
012490:  74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20    t(7);..    }..  
0124A0:  63 6F 6C 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28    col=1;..  while(
0124B0:  28 63 3D 67 65 74 63 68 61 72 28 29 29 21 3D 45    (c=getchar())!=E
0124C0:  4F 46 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28    OF) {..    poll(
0124D0:  59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 63 3D    YES);..    if(c=
0124E0:  3D 27 5C 74 27 29 0D 0A 20 20 20 20 20 20 77 68    ='\t')..      wh
0124F0:  69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20 20 20    ile(YES) {..    
012500:  4C 55 53 20 27 2B 27 0D 0A 23 64 65 66 69 6E 65    LUS '+'..#define
012510:  20 4D 49 4E 55 53 20 27 2D 27 0D 0A 23 64 65 66     MINUS '-'..#def
012520:  69 6E 65 20 42 4C 41 4E 4B 20 27 20 27 0D 0A 23    ine BLANK ' '..#
012530:  64 65 66 69 6E 65 20 54 41 42 20 27 5C 74 27 0D    define TAB '\t'.
012540:  0A 23 64 65 66 69 6E 65 20 45 53 43 20 32 37 0D    .#define ESC 27.
012550:  0A 23 64 65 66 69 6E 65 20 50 52 4F 4D 50 54 20    .#define PROMPT 
012560:  27 23 27 0D 0A 23 64 65 66 69 6E 65 20 43 4C 46    '#'..#define CLF
012570:  4C 41 47 20 27 2A 27 0D 0A 0D 0A 23 64 65 66 69    LAG '*'....#defi
012580:  6E 65 20 50 52 49 4E 54 20 27 70 27 0D 0A 23 64    ne PRINT 'p'..#d
012590:  65 66 69 6E 65 20 4C 49 4E 45 20 27 6C 27 0D 0A    efine LINE 'l'..
0125A0:  23 64 65 66 69 6E 65 20 47 4C 4F 42 41 4C 20 27    #define GLOBAL '
0125B0:  67 27 0D 0A 23 64 65 66 69 6E 65 20 45 58 43 4C    g'..#define EXCL
0125C0:  55 44 45 20 27 78 27 0D 0A 23 64 65 66 69 6E 65    UDE 'x'..#define
0125D0:  20 41 50 50 45 4E 44 20 27 61 27 0D 0A 23 64 65     APPEND 'a'..#de
0125E0:  66 69 6E 65 20 43 48 41 4E 47 45 20 27 63 27 0D    fine CHANGE 'c'.
0125F0:  0A 23 64 65 66 69 6E 65 20 44 45 4C 45 54 45 20    .#define DELETE 
012600:  27 64 27 0D 0A 23 64 65 66 69 6E 65 20 49 4E 53    'd'..#define INS
012610:  45 52 54 20 27 69 27 0D 0A 23 64 65 66 69 6E 65    ERT 'i'..#define
012620:  20 4A 4F 49 4E 20 27 6A 27 0D 0A 23 64 65 66 69     JOIN 'j'..#defi
012630:  6E 65 20 4D 4F 56 45 20 27 6D 27 0D 0A 23 64 65    ne MOVE 'm'..#de
012640:  66 69 6E 65 20 53 55 42 53 54 49 54 55 54 45 20    fine SUBSTITUTE 
012650:  27 73 27 0D 0A 23 64 65 66 69 6E 65 20 45 4E 54    's'..#define ENT
012660:  45 52 20 27 65 27 0D 0A 23 64 65 66 69 6E 65 20    ER 'e'..#define 
012670:  46 49 4C 45 20 27 66 27 0D 0A 23 64 65 66 69 6E    FILE 'f'..#defin
012680:  65 20 52 45 41 44 20 27 72 27 0D 0A 23 64 65 66    e READ 'r'..#def
012690:  69 6E 65 20 57 52 49 54 45 20 27 77 27 0D 0A 23    ine WRITE 'w'..#
0126A0:  64 65 66 69 6E 65 20 51 55 49 54 20 27 71 27 0D    define QUIT 'q'.
0126B0:  0A 23 64 65 66 69 6E 65 20 56 49 45 57 20 27 76    .#define VIEW 'v
0126C0:  27 0D 0A 23 64 65 66 69 6E 65 20 5A 49 50 20 27    '..#define ZIP '
0126D0:  7A 27 0D 0A 0D 0A 69 6E 74 0D 0A 20 20 6C 69 6E    z'....int..  lin
0126E0:  65 31 2C 20 20 20 2F 2A 20 66 69 72 73 74 20 6C    e1,   /* first l
0126F0:  69 6E 65 20 6E 75 6D 62 65 72 20 2A 2F 0D 0A 20    ine number */.. 
012700:  20 20 20 20 63 6F 75 74 28 27 20 27 2C 20 73 74        cout(' ', st
012710:  64 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 20 20    dout);..        
012720:  2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 20 20 20    ++col;..        
012730:  69 66 28 74 61 62 70 6F 73 28 63 6F 6C 2C 20 74    if(tabpos(col, t
012740:  61 62 73 29 3D 3D 59 45 53 29 20 62 72 65 61 6B    abs)==YES) break
012750:  3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20    ;..        }..  
012760:  20 20 65 6C 73 65 20 69 66 28 63 3D 3D 27 5C 6E      else if(c=='\n
012770:  27 29 20 7B 0D 0A 20 20 20 20 20 20 63 6F 75 74    ') {..      cout
012780:  28 27 5C 6E 27 2C 20 73 74 64 6F 75 74 29 3B 0D    ('\n', stdout);.
012790:  0A 20 20 20 20 20 20 63 6F 6C 3D 31 3B 0D 0A 20    .      col=1;.. 
0127A0:  20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65         }..    else
0127B0:  20 7B 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 63     {..      cout(c
0127C0:  2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20    , stdout);..    
0127D0:  20 20 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 20      ++col;..      
0127E0:  7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C 6F    }..    }..  fclo
0127F0:  73 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D    se(stdout);..  }
012800:  0D 0A 23 69 6E 63 6C 75 64 65 20 22 73 65 74 74    ..#include "sett
012810:  61 62 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20    ab.c"..#include 
012820:  22 74 61 62 70 6F 73 2E 63 22 0D 0A 23 69 6E 63    "tabpos.c"..#inc
012830:  6C 75 64 65 20 22 6F 75 74 2E 63 22 0D 0A 0D 0A    lude "out.c"....
012840:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
012850:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
012860:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
012870:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
012880:  64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72    derr);..    abor
012890:  74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20    t(7);..    }..  
0128A0:  63 6F 6C 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28    col=1;..  while(
0128B0:  28 63 3D 67 65 74 63 68 61 72 28 29 29 21 3D 45    (c=getchar())!=E
0128C0:  4F 46 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28    OF) {..    poll(
0128D0:  59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 63 3D    YES);..    if(c=
0128E0:  3D 27 5C 74 27 29 0D 0A 20 20 20 20 20 20 77 68    ='\t')..      wh
0128F0:  69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20 20 20    ile(YES) {..    
012900:  20 6C 69 6E 65 32 2C 20 20 20 2F 2A 20 73 65 63     line2,   /* sec
012910:  6F 6E 64 20 6C 69 6E 65 20 6E 75 6D 62 65 72 20    ond line number 
012920:  2A 2F 0D 0A 20 20 6E 6C 69 6E 65 73 2C 20 20 2F    */..  nlines,  /
012930:  2A 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 6E 65    * number of line
012940:  20 6E 75 6D 62 65 72 73 20 67 69 76 65 6E 20 2A     numbers given *
012950:  2F 0D 0A 20 20 63 75 72 6C 6E 2C 20 20 20 2F 2A    /..  curln,   /*
012960:  20 63 75 72 72 65 6E 74 20 6C 69 6E 65 20 28 76     current line (v
012970:  61 6C 75 65 20 6F 66 20 64 6F 74 29 20 2A 2F 0D    alue of dot) */.
012980:  0A 20 20 6C 61 73 74 6C 6E 3B 20 20 2F 2A 20 6C    .  lastln;  /* l
012990:  61 73 74 20 6C 69 6E 65 20 28 76 61 6C 75 65 20    ast line (value 
0129A0:  6F 66 20 24 29 20 2A 2F 0D 0A 0D 0A 63 68 61 72    of $) */....char
0129B0:  20 2A 62 75 66 3B 20 20 20 20 2F 2A 20 62 75 66     *buf;    /* buf
0129C0:  66 65 72 20 66 6F 72 20 70 6F 69 6E 74 65 72 73    fer for pointers
0129D0:  20 61 6E 64 20 74 65 78 74 20 2A 2F 0D 0A 2F 2A     and text */../*
0129E0:  0D 0A 2A 2A 20 62 75 66 5B 6B 2B 30 5D 20 50 52    ..** buf[k+0] PR
0129F0:  45 56 20 20 20 20 20 28 32 20 62 79 74 65 73 29    EV     (2 bytes)
012A00:  20 20 70 72 65 76 69 6F 75 73 20 6C 69 6E 65 0D      previous line.
012A10:  0A 2A 2A 20 62 75 66 5B 6B 2B 32 5D 20 4E 45 58    .** buf[k+2] NEX
012A20:  54 20 20 20 20 20 28 32 20 62 79 74 65 73 29 20    T     (2 bytes) 
012A30:  20 6E 65 78 74 20 6C 69 6E 65 0D 0A 2A 2A 20 62     next line..** b
012A40:  75 66 5B 6B 2B 34 5D 20 4D 41 52 4B 20 20 20 20    uf[k+4] MARK    
012A50:  20 28 31 20 62 79 74 65 29 20 20 20 6D 61 72 6B     (1 byte)   mark
012A60:  20 66 6F 72 20 67 6C 6F 62 61 6C 20 63 6F 6D 6D     for global comm
012A70:  61 6E 64 73 0D 0A 2A 2A 20 62 75 66 5B 6B 2B 35    ands..** buf[k+5
012A80:  5D 20 54 45 58 54 0D 0A 2A 2F 0D 0A 69 6E 74 20    ] TEXT..*/..int 
012A90:  20 6C 61 73 74 62 66 3B 20 20 2F 2A 20 6C 61 73     lastbf;  /* las
012AA0:  74 20 65 6C 65 6D 65 6E 74 20 75 73 65 64 20 69    t element used i
012AB0:  6E 20 62 75 66 20 2A 2F 0D 0A 63 68 61 72 20 2A    n buf */..char *
012AC0:  74 78 74 2C 20 20 20 20 2F 2A 20 74 65 78 74 20    txt,    /* text 
012AD0:  6C 69 6E 65 20 66 6F 72 20 6D 61 74 63 68 69 6E    line for matchin
012AE0:  67 20 61 6E 64 20 6F 75 74 70 75 74 20 2A 2F 0D    g and output */.
012AF0:  0A 20 20 20 20 20 2A 73 61 76 66 69 6C 2C 20 2F    .     *savfil, /
012B00:  0D 0A 2F 2A 0D 0A 2A 2A 20 64 69 67 69 74 2E 63    ../*..** digit.c
012B10:  20 2D 2D 20 72 65 74 75 72 6E 20 59 45 53 20 69     -- return YES i
012B20:  66 20 63 20 69 73 20 61 20 64 65 63 69 6D 61 6C    f c is a decimal
012B30:  20 64 69 67 69 74 2C 20 65 6C 73 65 20 4E 4F 0D     digit, else NO.
012B40:  0A 2A 2F 0D 0A 64 69 67 69 74 28 63 29 20 63 68    .*/..digit(c) ch
012B50:  61 72 20 63 3B 20 7B 0D 0A 20 20 69 66 28 28 63    ar c; {..  if((c
012B60:  3E 3D 27 30 27 29 26 28 63 3C 3D 27 39 27 29 29    >='0')&(c<='9'))
012B70:  20 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20     return YES;..  
012B80:  72 65 74 75 72 6E 20 4E 4F 3B 0D 0A 20 20 7D 0D    return NO;..  }.
012B90:  0A 1A 1A 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012BA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012BB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012BC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012BD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012BE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012BF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C00:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C10:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C20:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C30:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C40:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C50:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012C90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012CA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012CB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012CC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012CD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012CE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012CF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
012D00:  2A 20 72 65 6D 65 6D 62 65 72 65 64 20 66 69 6C    * remembered fil
012D10:  65 20 6E 61 6D 65 20 2A 2F 0D 0A 20 20 20 20 20    e name */..     
012D20:  2A 66 69 6C 65 3B 0D 0A 69 6E 74 0D 0A 20 20 73    *file;..int..  s
012D30:  63 72 2C 20 20 20 20 20 20 20 20 2F 2A 20 73 63    cr,        /* sc
012D40:  72 61 74 63 68 20 66 69 6C 65 20 69 64 20 2A 2F    ratch file id */
012D50:  0D 0A 20 20 73 63 72 65 6E 64 5B 32 5D 3B 20 20    ..  scrend[2];  
012D60:  2F 2A 20 65 6E 64 20 6F 66 20 69 6E 66 6F 20 6F    /* end of info o
012D70:  6E 20 73 63 72 61 74 63 68 20 66 69 6C 65 20 2A    n scratch file *
012D80:  2F 0D 0A 63 68 61 72 20 2A 6C 69 6E 2C 20 2A 70    /..char *lin, *p
012D90:  61 74 2C 20 2A 73 75 62 2C 20 75 70 64 74 66 6C    at, *sub, updtfl
012DA0:  61 67 2C 20 6E 62 72 73 74 72 5B 37 5D 3B 0D 0A    ag, nbrstr[7];..
012DB0:  69 6E 74 20 63 75 72 73 61 76 2C 20 69 2C 20 73    int cursav, i, s
012DC0:  74 61 74 75 73 2C 20 6D 61 78 62 75 66 2C 20 63    tatus, maxbuf, c
012DD0:  6F 6E 74 65 78 74 2C 20 76 69 65 77 3B 0D 0A 0D    ontext, view;...
012DE0:  0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76    .main(argc, argv
012DF0:  29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67    ) int argc, *arg
012E00:  76 3B 20 7B 0D 0A 20 20 69 66 28 69 73 61 74 74    v; {..  if(isatt
012E10:  79 28 73 74 64 69 6E 29 29 20 76 69 65 77 3D 31    y(stdin)) view=1
012E20:  3B 20 65 6C 73 65 20 76 69 65 77 3D 30 3B 0D 0A    ; else view=0;..
012E30:  20 20 74 78 74 3D 6D 61 6C 6C 6F 63 28 4D 41 58      txt=malloc(MAX
012E40:  4C 49 4E 45 29 3B 0D 0A 20 20 6C 69 6E 3D 6D 61    LINE);..  lin=ma
012E50:  6C 6C 6F 63 28 4D 41 58 4C 49 4E 45 29 3B 0D 0A    lloc(MAXLINE);..
012E60:  20 20 70 61 74 3D 6D 61 6C 6C 6F 63 28 4D 41 58      pat=malloc(MAX
012E70:  50 41 54 29 3B 0D 0A 20 20 73 75 62 3D 6D 61 6C    PAT);..  sub=mal
012E80:  6C 6F 63 28 4D 41 58 50 41 54 29 3B 0D 0A 20 20    loc(MAXPAT);..  
012E90:  66 69 6C 65 3D 6D 61 6C 6C 6F 63 28 4D 41 58 46    file=malloc(MAXF
012EA0:  4E 29 3B 0D 0A 20 20 73 61 76 66 69 6C 3D 6D 61    N);..  savfil=ma
012EB0:  6C 6C 6F 63 28 4D 41 58 46 4E 29 3B 0D 0A 20 20    lloc(MAXFN);..  
012EC0:  6D 61 78 62 75 66 3D 61 76 61 69 6C 28 59 45 53    maxbuf=avail(YES
012ED0:  29 2D 52 45 53 45 52 56 45 3B 0D 0A 20 20 69 66    )-RESERVE;..  if
012EE0:  28 6D 61 78 62 75 66 20 3C 20 30 29 20 6D 61 78    (maxbuf < 0) max
012EF0:  62 75 66 3D 33 32 37 36 37 3B 0D 0A 20 20 62 75    buf=32767;..  bu
012F00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012F90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012FA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012FB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012FC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012FD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012FE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
012FF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013000:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013010:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013020:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013030:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013040:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013050:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013060:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013070:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013080:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013090:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0130A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0130B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0130C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0130D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0130E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0130F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
013100:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
013110:  10 00 01 00 02 09 52 E5 10 00 41 02 00 00 00 02    ......R...A.....
013120:  10 00 46 02 00 00 00 02 10 00 42 02 00 00 00 02    ..F.......B.....
013130:  10 00 47 02 00 00 00 02 10 00 43 02 00 00 00 02    ..G.......C.....
013140:  10 00 48 02 00 00 00 02 10 00 44 02 00 00 00 02    ..H.......D.....
013150:  10 00 49 02 00 00 00 02 10 00 45 02 00 00 00 02    ..I.......E.....
013160:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013170:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013180:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013190:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0131F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
013200:  66 3D 6D 61 6C 6C 6F 63 28 6D 61 78 62 75 66 29    f=malloc(maxbuf)
013210:  3B 0D 0A 20 20 73 65 74 62 75 66 28 29 3B 0D 0A    ;..  setbuf();..
013220:  20 20 75 70 64 74 66 6C 61 67 3D 4E 4F 3B 0D 0A      updtflag=NO;..
013230:  20 20 70 61 74 5B 30 5D 3D 73 61 76 66 69 6C 5B      pat[0]=savfil[
013240:  30 5D 3D 6E 62 72 73 74 72 5B 36 5D 3D 4E 55 4C    0]=nbrstr[6]=NUL
013250:  4C 3B 0D 0A 20 20 63 6F 6E 74 65 78 74 3D 37 3B    L;..  context=7;
013260:  0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C    ..  i=0;..  whil
013270:  65 28 67 65 74 61 72 67 28 2B 2B 69 2C 20 74 78    e(getarg(++i, tx
013280:  74 2C 20 4D 41 58 46 4E 2C 20 61 72 67 63 2C 20    t, MAXFN, argc, 
013290:  61 72 67 76 29 21 3D 45 4F 46 29 20 7B 0D 0A 20    argv)!=EOF) {.. 
0132A0:  20 20 20 69 66 28 74 78 74 5B 30 5D 3D 3D 27 2D       if(txt[0]=='-
0132B0:  27 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73    ') {..      if(s
0132C0:  61 6D 65 28 74 78 74 5B 31 5D 2C 20 27 76 27 29    ame(txt[1], 'v')
0132D0:  26 28 74 78 74 5B 32 5D 3D 3D 4E 55 4C 4C 29 29    &(txt[2]==NULL))
0132E0:  20 76 69 65 77 20 3D 20 31 20 2D 20 76 69 65 77     view = 1 - view
0132F0:  3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 7B 0D    ;..      else {.
013300:  0A 20 20 20 20 20 20 20 20 66 70 75 74 73 28 22    .        fputs("
013310:  75 73 61 67 65 3A 20 45 44 54 20 5B 66 69 6C 65    usage: EDT [file
013320:  5D 20 5B 2D 56 5D 5C 6E 22 2C 20 73 74 64 65 72    ] [-V]\n", stder
013330:  72 29 3B 0D 0A 20 20 20 20 20 20 20 20 61 62 6F    r);..        abo
013340:  72 74 28 37 29 3B 0D 0A 20 20 20 20 20 20 20 20    rt(7);..        
013350:  7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    }..      }..    
013360:  65 6C 73 65 20 73 63 6F 70 79 28 74 78 74 2C 20    else scopy(txt, 
013370:  30 2C 20 73 61 76 66 69 6C 2C 20 30 29 3B 0D 0A    0, savfil, 0);..
013380:  20 20 20 20 7D 0D 0A 20 20 69 66 28 2A 73 61 76        }..  if(*sav
013390:  66 69 6C 29 20 7B 0D 0A 20 20 20 20 69 66 28 65    fil) {..    if(e
0133A0:  6E 74 65 72 28 73 61 76 66 69 6C 29 3D 3D 45 52    nter(savfil)==ER
0133B0:  52 29 20 7B 0D 0A 20 20 20 20 20 20 66 70 75 74    R) {..      fput
0133C0:  73 28 22 65 72 72 6F 72 5C 6E 22 2C 20 73 74 64    s("error\n", std
0133D0:  65 72 72 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    err);..      }..
0133E0:  20 20 20 20 7D 0D 0A 20 20 69 66 28 69 73 61 74        }..  if(isat
0133F0:  74 79 28 73 74 64 69 6E 29 29 0D 0A 20 20 20 20    ty(stdin))..    
013400:  20 20 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A      }..        }..
013410:  20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20          break;..  
013420:  20 20 63 61 73 65 20 53 55 42 53 54 49 54 55 54      case SUBSTITUT
013430:  45 3A 0D 0A 20 20 20 20 20 20 2B 2B 69 3B 0D 0A    E:..      ++i;..
013440:  20 20 20 20 20 20 69 66 28 6F 70 74 70 61 74 28          if(optpat(
013450:  29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20    )==OK) {..      
013460:  20 20 69 66 28 67 65 74 72 68 73 28 6C 69 6E 2C      if(getrhs(lin,
013470:  20 26 69 2C 20 73 75 62 2C 20 26 67 66 6C 61 67     &i, sub, &gflag
013480:  29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20    )==OK) {..      
013490:  20 20 20 20 69 66 28 63 6B 70 28 6C 69 6E 2C 20        if(ckp(lin, 
0134A0:  69 2B 31 2C 20 26 70 66 6C 61 67 29 3D 3D 4F 4B    i+1, &pflag)==OK
0134B0:  29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 20    ) {..           
0134C0:  20 69 66 28 64 65 66 61 6C 74 28 63 75 72 6C 6E     if(defalt(curln
0134D0:  2C 20 63 75 72 6C 6E 29 3D 3D 4F 4B 29 0D 0A 20    , curln)==OK).. 
0134E0:  20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61                 sta
0134F0:  74 75 73 3D 73 75 62 73 74 28 73 75 62 2C 20 67    tus=subst(sub, g
013500:  66 6C 61 67 29 3B 0D 0A 20 20 20 20 20 20 20 20    flag);..        
013510:  20 20 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 20        }..         
013520:  20 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20     }..        }.. 
013530:  20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20         break;..   
013540:  20 63 61 73 65 20 45 4E 54 45 52 3A 0D 0A 20 20     case ENTER:..  
013550:  20 20 20 20 69 66 28 63 68 6B 75 70 64 74 28 29        if(chkupdt()
013560:  3D 3D 45 52 52 29 20 73 74 61 74 75 73 3D 4F 4B    ==ERR) status=OK
013570:  3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 69 66    ;..      else if
013580:  28 6E 6C 69 6E 65 73 3D 3D 30 29 20 7B 0D 0A 20    (nlines==0) {.. 
013590:  20 20 20 20 20 20 20 69 66 28 67 65 74 66 6E 28           if(getfn(
0135A0:  6C 69 6E 2C 20 69 2C 20 66 69 6C 65 2C 20 4D 41    lin, i, file, MA
0135B0:  58 46 4E 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20    XFN)==OK) {..   
0135C0:  20 20 20 20 20 20 20 73 63 6F 70 79 28 66 69 6C           scopy(fil
0135D0:  65 2C 20 30 2C 20 73 61 76 66 69 6C 2C 20 30 29    e, 0, savfil, 0)
0135E0:  3B 0D 0A 20 20 20 20 20 20 20 20 20 20 63 6C 72    ;..          clr
0135F0:  62 75 66 28 29 3B 0D 0A 20 20 20 20 20 20 20 20    buf();..        
013600:  66 70 75 74 63 28 50 52 4F 4D 50 54 2C 20 73 74    fputc(PROMPT, st
013610:  64 65 72 72 29 3B 0D 0A 20 20 77 68 69 6C 65 28    derr);..  while(
013620:  66 67 65 74 73 28 6C 69 6E 2C 20 4D 41 58 4C 49    fgets(lin, MAXLI
013630:  4E 45 2C 20 73 74 64 69 6E 29 21 3D 4E 55 4C 4C    NE, stdin)!=NULL
013640:  29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 45    ) {..    poll(YE
013650:  53 29 3B 0D 0A 20 20 20 20 74 72 69 6D 28 6C 69    S);..    trim(li
013660:  6E 29 3B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A 20    n);..    i=0;.. 
013670:  20 20 20 63 75 72 73 61 76 3D 63 75 72 6C 6E 3B       cursav=curln;
013680:  0D 0A 20 20 20 20 69 66 28 67 65 74 6C 73 74 28    ..    if(getlst(
013690:  29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20    )==OK) {..      
0136A0:  69 66 28 63 6B 67 6C 6F 62 28 29 3D 3D 4F 4B 29    if(ckglob()==OK)
0136B0:  0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75 73    ..        status
0136C0:  3D 64 6F 67 6C 6F 62 28 29 3B 0D 0A 20 20 20 20    =doglob();..    
0136D0:  20 20 65 6C 73 65 20 69 66 28 73 74 61 74 75 73      else if(status
0136E0:  21 3D 20 45 52 52 29 0D 0A 20 20 20 20 20 20 20    != ERR)..       
0136F0:  20 73 74 61 74 75 73 3D 64 6F 63 6D 64 28 4E 4F     status=docmd(NO
013700:  29 3B 0D 0A 20 20 20 20 20 20 2F 2A 20 65 6C 73    );..      /* els
013710:  65 20 65 72 72 6F 72 2C 20 64 6F 20 6E 6F 74 68    e error, do noth
013720:  69 6E 67 20 2A 2F 0D 0A 20 20 20 20 20 20 7D 0D    ing */..      }.
013730:  0A 20 20 20 20 69 66 28 73 74 61 74 75 73 3D 3D    .    if(status==
013740:  45 52 52 29 20 7B 0D 0A 20 20 20 20 20 20 66 70    ERR) {..      fp
013750:  75 74 73 28 22 5C 37 65 72 72 6F 72 5C 6E 22 2C    uts("\7error\n",
013760:  20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20     stderr);..     
013770:  20 63 75 72 6C 6E 3D 63 75 72 73 61 76 3B 0D 0A     curln=cursav;..
013780:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73          }..    els
013790:  65 20 69 66 28 73 74 61 74 75 73 3D 3D 45 4F 46    e if(status==EOF
0137A0:  29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 2F 2A    ) break;..    /*
0137B0:  20 65 6C 73 65 20 4F 4B 2C 20 74 68 65 6E 20 6C     else OK, then l
0137C0:  6F 6F 70 20 2A 2F 0D 0A 20 20 20 20 69 66 28 69    oop */..    if(i
0137D0:  73 61 74 74 79 28 73 74 64 69 6E 29 29 20 66 70    satty(stdin)) fp
0137E0:  75 74 63 28 50 52 4F 4D 50 54 2C 20 73 74 64 65    utc(PROMPT, stde
0137F0:  72 72 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D    rr);..    }..  }
013800:  20 20 73 65 74 62 75 66 28 29 3B 0D 0A 20 20 20      setbuf();..   
013810:  20 20 20 20 20 20 20 73 74 61 74 75 73 3D 65 6E           status=en
013820:  74 65 72 28 66 69 6C 65 29 3B 0D 0A 20 20 20 20    ter(file);..    
013830:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 20          }..       
013840:  20 7D 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B     }..      break;
013850:  0D 0A 20 20 20 20 63 61 73 65 20 46 49 4C 45 3A    ..    case FILE:
013860:  0D 0A 20 20 20 20 20 20 69 66 28 6E 6C 69 6E 65    ..      if(nline
013870:  73 3D 3D 30 29 20 7B 0D 0A 20 20 20 20 20 20 20    s==0) {..       
013880:  20 69 66 28 67 65 74 66 6E 28 6C 69 6E 2C 20 69     if(getfn(lin, i
013890:  2C 20 66 69 6C 65 2C 20 4D 41 58 46 4E 29 3D 3D    , file, MAXFN)==
0138A0:  4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20    OK) {..         
0138B0:  20 73 63 6F 70 79 28 66 69 6C 65 2C 20 30 2C 20     scopy(file, 0, 
0138C0:  73 61 76 66 69 6C 2C 20 30 29 3B 0D 0A 20 20 20    savfil, 0);..   
0138D0:  20 20 20 20 20 20 20 70 75 74 73 28 73 61 76 66           puts(savf
0138E0:  69 6C 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 20    il);..          
0138F0:  7D 0D 0A 20 20 20 20 20 20 20 20 69 74 6F 75 28    }..        itou(
013900:  6D 61 78 62 75 66 2D 6C 61 73 74 62 66 2C 20 6E    maxbuf-lastbf, n
013910:  62 72 73 74 72 2C 20 36 29 3B 0D 0A 20 20 20 20    brstr, 6);..    
013920:  20 20 20 20 70 75 74 73 28 6E 62 72 73 74 72 29        puts(nbrstr)
013930:  3B 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75    ;..        statu
013940:  73 3D 4F 4B 3B 0D 0A 20 20 20 20 20 20 20 20 7D    s=OK;..        }
013950:  0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A    ..      break;..
013960:  20 20 20 20 63 61 73 65 20 52 45 41 44 3A 0D 0A        case READ:..
013970:  20 20 20 20 20 20 69 66 28 67 65 74 66 6E 28 6C          if(getfn(l
013980:  69 6E 2C 20 69 2C 20 66 69 6C 65 2C 20 4D 41 58    in, i, file, MAX
013990:  46 4E 29 3D 3D 4F 4B 29 0D 0A 20 20 20 20 20 20    FN)==OK)..      
0139A0:  20 20 73 74 61 74 75 73 3D 64 6F 72 65 61 64 28      status=doread(
0139B0:  6C 69 6E 65 32 2C 20 66 69 6C 65 29 3B 0D 0A 20    line2, file);.. 
0139C0:  20 20 20 20 20 70 66 6C 61 67 3D 76 69 65 77 3B         pflag=view;
0139D0:  0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A    ..      break;..
0139E0:  20 20 20 20 63 61 73 65 20 57 52 49 54 45 3A 0D        case WRITE:.
0139F0:  0A 20 20 20 20 20 20 69 66 28 67 65 74 66 6E 28    .      if(getfn(
013A00:  0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 63 6D 64    ..../*..** docmd
013A10:  20 2D 2D 20 68 61 6E 64 6C 65 20 61 6C 6C 20 63     -- handle all c
013A20:  6F 6D 6D 61 6E 64 73 20 65 78 63 65 70 74 20 67    ommands except g
013A30:  6C 6F 62 61 6C 73 0D 0A 2A 2F 0D 0A 64 6F 63 6D    lobals..*/..docm
013A40:  64 28 67 6C 6F 62 29 20 69 6E 74 20 67 6C 6F 62    d(glob) int glob
013A50:  3B 20 7B 0D 0A 20 20 69 6E 74 20 67 66 6C 61 67    ; {..  int gflag
013A60:  2C 20 6C 69 6E 65 33 2C 20 70 66 6C 61 67 3B 0D    , line3, pflag;.
013A70:  0A 20 20 70 66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20    .  pflag=NO;..  
013A80:  73 74 61 74 75 73 3D 45 52 52 3B 0D 0A 20 20 73    status=ERR;..  s
013A90:  77 69 74 63 68 28 74 6F 6C 6F 77 65 72 28 6C 69    witch(tolower(li
013AA0:  6E 5B 69 5D 29 29 20 7B 0D 0A 20 20 20 20 63 61    n[i])) {..    ca
013AB0:  73 65 20 41 50 50 45 4E 44 3A 0D 0A 20 20 20 20    se APPEND:..    
013AC0:  20 20 69 66 28 63 6B 70 28 6C 69 6E 2C 20 69 2B      if(ckp(lin, i+
013AD0:  31 2C 20 26 70 66 6C 61 67 29 3D 3D 4F 4B 29 0D    1, &pflag)==OK).
013AE0:  0A 20 20 20 20 20 20 20 20 73 74 61 74 75 73 3D    .        status=
013AF0:  61 70 70 65 6E 64 28 6C 69 6E 65 32 2C 20 67 6C    append(line2, gl
013B00:  6F 62 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61    ob);..      brea
013B10:  6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 43 48 41    k;..    case CHA
013B20:  4E 47 45 3A 0D 0A 20 20 20 20 20 20 69 66 28 63    NGE:..      if(c
013B30:  6B 70 28 6C 69 6E 2C 20 69 2B 31 2C 20 26 70 66    kp(lin, i+1, &pf
013B40:  6C 61 67 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20    lag)==OK) {..   
013B50:  20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28 63         if(defalt(c
013B60:  75 72 6C 6E 2C 20 63 75 72 6C 6E 29 3D 3D 4F 4B    urln, curln)==OK
013B70:  29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 69    ) {..          i
013B80:  66 28 28 73 74 61 74 75 73 3D 61 70 70 65 6E 64    f((status=append
013B90:  28 6C 69 6E 65 32 2C 20 67 6C 6F 62 29 29 21 3D    (line2, glob))!=
013BA0:  45 52 52 29 20 7B 0D 0A 20 20 20 20 20 20 20 20    ERR) {..        
013BB0:  20 20 20 20 6B 69 6C 6C 28 6C 69 6E 65 31 2C 20        kill(line1, 
013BC0:  6C 69 6E 65 32 29 3B 0D 0A 20 20 20 20 20 20 20    line2);..       
013BD0:  20 20 20 20 20 2B 2B 63 75 72 6C 6E 3B 0D 0A 20         ++curln;.. 
013BE0:  20 20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20               }..  
013BF0:  20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20            }..     
013C00:  6C 69 6E 2C 20 69 2C 20 66 69 6C 65 2C 20 4D 41    lin, i, file, MA
013C10:  58 46 4E 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20    XFN)==OK) {..   
013C20:  20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28 31         if(defalt(1
013C30:  2C 20 6C 61 73 74 6C 6E 29 3D 3D 4F 4B 29 0D 0A    , lastln)==OK)..
013C40:  20 20 20 20 20 20 20 20 20 20 73 74 61 74 75 73              status
013C50:  3D 64 6F 77 72 69 74 28 6C 69 6E 65 31 2C 20 6C    =dowrit(line1, l
013C60:  69 6E 65 32 2C 20 66 69 6C 65 29 3B 0D 0A 20 20    ine2, file);..  
013C70:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 62          }..      b
013C80:  72 65 61 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20    reak;..    case 
013C90:  5A 49 50 3A 0D 0A 20 20 20 20 20 20 69 66 28 64    ZIP:..      if(d
013CA0:  65 66 61 6C 74 28 63 75 72 6C 6E 2C 20 6C 61 73    efalt(curln, las
013CB0:  74 6C 6E 29 3D 3D 4F 4B 29 0D 0A 20 20 20 20 20    tln)==OK)..     
013CC0:  20 20 20 73 74 61 74 75 73 3D 64 6F 70 72 6E 74       status=doprnt
013CD0:  28 6C 69 6E 65 31 2C 20 6C 69 6E 65 32 2C 20 67    (line1, line2, g
013CE0:  6C 6F 62 29 3B 0D 0A 20 20 20 20 20 20 62 72 65    lob);..      bre
013CF0:  61 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 50 52    ak;..    case PR
013D00:  49 4E 54 3A 0D 0A 20 20 20 20 20 20 69 66 28 64    INT:..      if(d
013D10:  65 66 61 6C 74 28 63 75 72 6C 6E 2C 20 63 75 72    efalt(curln, cur
013D20:  6C 6E 29 3D 3D 4F 4B 29 0D 0A 20 20 20 20 20 20    ln)==OK)..      
013D30:  20 20 73 74 61 74 75 73 3D 64 6F 70 72 6E 74 28      status=doprnt(
013D40:  6C 69 6E 65 31 2C 20 6C 69 6E 65 32 2C 20 67 6C    line1, line2, gl
013D50:  6F 62 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61    ob);..      brea
013D60:  6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 4E 55 4C    k;..    case NUL
013D70:  4C 3A 0D 0A 20 20 20 20 20 20 69 66 28 28 6E 6C    L:..      if((nl
013D80:  69 6E 65 73 3D 3D 30 29 26 28 67 6C 6F 62 3D 3D    ines==0)&(glob==
013D90:  4E 4F 29 29 20 6C 69 6E 65 32 3D 6E 65 78 74 6C    NO)) line2=nextl
013DA0:  6E 28 63 75 72 6C 6E 29 3B 0D 0A 20 20 20 20 20    n(curln);..     
013DB0:  20 69 66 28 76 69 65 77 29 20 73 74 61 74 75 73     if(view) status
013DC0:  3D 64 6F 70 72 6E 74 28 6C 69 6E 65 32 2C 20 6C    =doprnt(line2, l
013DD0:  69 6E 65 32 2C 20 67 6C 6F 62 29 3B 0D 0A 20 20    ine2, glob);..  
013DE0:  20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20        else {..    
013DF0:  20 20 20 20 63 75 72 6C 6E 3D 6C 69 6E 65 32 3B        curln=line2;
013E00:  20 20 20 7D 0D 0A 20 20 20 20 20 20 62 72 65 61       }..      brea
013E10:  6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 44 45 4C    k;..    case DEL
013E20:  45 54 45 3A 0D 0A 20 20 20 20 20 20 69 66 28 63    ETE:..      if(c
013E30:  6B 70 28 6C 69 6E 2C 20 69 2B 31 2C 20 26 70 66    kp(lin, i+1, &pf
013E40:  6C 61 67 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20    lag)==OK) {..   
013E50:  20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28 63         if(defalt(c
013E60:  75 72 6C 6E 2C 20 63 75 72 6C 6E 29 3D 3D 4F 4B    urln, curln)==OK
013E70:  29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 6B    ) {..          k
013E80:  69 6C 6C 28 6C 69 6E 65 31 2C 20 6C 69 6E 65 32    ill(line1, line2
013E90:  29 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66    );..          if
013EA0:  28 63 75 72 6C 6E 20 3C 20 6C 61 73 74 6C 6E 29    (curln < lastln)
013EB0:  20 63 75 72 6C 6E 3D 6E 65 78 74 6C 6E 28 63 75     curln=nextln(cu
013EC0:  72 6C 6E 29 3B 0D 0A 20 20 20 20 20 20 20 20 20    rln);..         
013ED0:  20 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20     }..        }.. 
013EE0:  20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20         break;..   
013EF0:  20 63 61 73 65 20 49 4E 53 45 52 54 3A 0D 0A 20     case INSERT:.. 
013F00:  20 20 20 20 20 69 66 28 63 6B 70 28 6C 69 6E 2C         if(ckp(lin,
013F10:  20 69 2B 31 2C 20 26 70 66 6C 61 67 29 3D 3D 4F     i+1, &pflag)==O
013F20:  4B 29 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74    K)..        stat
013F30:  75 73 3D 61 70 70 65 6E 64 28 70 72 65 76 6C 6E    us=append(prevln
013F40:  28 6C 69 6E 65 32 29 2C 20 67 6C 6F 62 29 3B 0D    (line2), glob);.
013F50:  0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20    .      break;.. 
013F60:  20 20 20 63 61 73 65 20 4C 49 4E 45 3A 0D 0A 20       case LINE:.. 
013F70:  20 20 20 20 20 69 66 28 6C 69 6E 5B 69 2B 31 5D         if(lin[i+1]
013F80:  3D 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 20    ==NULL) {..     
013F90:  20 20 20 69 74 6F 75 28 63 75 72 6C 6E 2C 20 6E       itou(curln, n
013FA0:  62 72 73 74 72 2C 20 36 29 3B 0D 0A 20 20 20 20    brstr, 6);..    
013FB0:  20 20 20 20 70 75 74 73 28 6E 62 72 73 74 72 29        puts(nbrstr)
013FC0:  3B 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75    ;..        statu
013FD0:  73 3D 4F 4B 3B 0D 0A 20 20 20 20 20 20 20 20 7D    s=OK;..        }
013FE0:  0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A    ..      break;..
013FF0:  20 20 20 20 63 61 73 65 20 4A 4F 49 4E 3A 0D 0A        case JOIN:..
014000:  0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75 73    ..        status
014010:  3D 4F 4B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D    =OK;..        }.
014020:  0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20    .      break;.. 
014030:  20 20 20 63 61 73 65 20 51 55 49 54 3A 0D 0A 20       case QUIT:.. 
014040:  20 20 20 20 20 69 66 28 28 6C 69 6E 5B 69 2B 31         if((lin[i+1
014050:  5D 3D 3D 4E 55 4C 4C 29 26 28 6E 6C 69 6E 65 73    ]==NULL)&(nlines
014060:  3D 3D 30 29 26 28 67 6C 6F 62 3D 3D 4E 4F 29 29    ==0)&(glob==NO))
014070:  20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66 28 63     {..        if(c
014080:  68 6B 75 70 64 74 28 29 3D 3D 45 52 52 29 20 73    hkupdt()==ERR) s
014090:  74 61 74 75 73 3D 4F 4B 3B 0D 0A 20 20 20 20 20    tatus=OK;..     
0140A0:  20 20 20 65 6C 73 65 20 73 74 61 74 75 73 3D 45       else status=E
0140B0:  4F 46 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A    OF;..        }..
0140C0:  20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20          break;..  
0140D0:  20 20 63 61 73 65 20 56 49 45 57 3A 0D 0A 20 20      case VIEW:..  
0140E0:  20 20 20 20 76 69 65 77 3D 31 2D 76 69 65 77 3B        view=1-view;
0140F0:  0D 0A 20 20 20 20 20 20 73 74 61 74 75 73 3D 4F    ..      status=O
014100:  4B 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 2F 2A 20    K;..    }..  /* 
014110:  65 6C 73 65 20 73 74 61 74 75 73 20 69 73 20 45    else status is E
014120:  52 52 20 2A 2F 0D 0A 20 20 69 66 28 63 75 72 6C    RR */..  if(curl
014130:  6E 20 3C 20 31 29 20 63 75 72 6C 6E 20 3D 20 6E    n < 1) curln = n
014140:  65 78 74 6C 6E 28 30 29 3B 0D 0A 20 20 69 66 28    extln(0);..  if(
014150:  28 73 74 61 74 75 73 3D 3D 4F 4B 29 26 28 70 66    (status==OK)&(pf
014160:  6C 61 67 3D 3D 59 45 53 29 29 0D 0A 20 20 20 20    lag==YES))..    
014170:  73 74 61 74 75 73 3D 64 6F 70 72 6E 74 28 63 75    status=doprnt(cu
014180:  72 6C 6E 2C 20 63 75 72 6C 6E 2C 20 67 6C 6F 62    rln, curln, glob
014190:  29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 73 74 61    );..  return sta
0141A0:  74 75 73 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D    tus;..  }..../*.
0141B0:  0A 2A 2A 20 63 68 6B 75 70 64 74 20 2D 2D 20 77    .** chkupdt -- w
0141C0:  61 72 6E 20 69 66 20 75 70 64 61 74 65 20 6E 6F    arn if update no
0141D0:  74 20 77 72 69 74 74 65 6E 20 74 6F 20 64 69 73    t written to dis
0141E0:  6B 0D 0A 2A 2F 0D 0A 63 68 6B 75 70 64 74 28 29    k..*/..chkupdt()
0141F0:  20 7B 0D 0A 20 20 69 66 28 75 70 64 74 66 6C 61     {..  if(updtfla
014200:  20 20 20 20 20 20 69 66 28 63 6B 70 28 6C 69 6E          if(ckp(lin
014210:  2C 20 69 2B 31 2C 20 26 70 66 6C 61 67 29 3D 3D    , i+1, &pflag)==
014220:  4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69    OK) {..        i
014230:  66 28 64 65 66 61 6C 74 28 63 75 72 6C 6E 2C 20    f(defalt(curln, 
014240:  63 75 72 6C 6E 2B 31 29 3D 3D 4F 4B 29 20 7B 0D    curln+1)==OK) {.
014250:  0A 20 20 20 20 20 20 20 20 20 20 69 66 28 28 73    .          if((s
014260:  74 61 74 75 73 3D 6A 6F 69 6E 28 6C 69 6E 65 31    tatus=join(line1
014270:  2C 20 6C 69 6E 65 32 29 29 3D 3D 4F 4B 29 20 7B    , line2))==OK) {
014280:  0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 63 75    ..            cu
014290:  72 6C 6E 3D 6C 69 6E 65 32 3B 0D 0A 20 20 20 20    rln=line2;..    
0142A0:  20 20 20 20 20 20 20 20 69 66 28 28 73 74 61 74            if((stat
0142B0:  75 73 3D 69 6E 6A 65 63 74 28 74 78 74 29 29 3D    us=inject(txt))=
0142C0:  3D 4F 4B 29 0D 0A 20 20 20 20 20 20 20 20 20 20    =OK)..          
0142D0:  20 20 20 20 6B 69 6C 6C 28 6C 69 6E 65 31 2C 20        kill(line1, 
0142E0:  6C 69 6E 65 32 29 3B 0D 0A 20 20 20 20 20 20 20    line2);..       
0142F0:  20 20 20 20 20 20 20 2B 2B 63 75 72 6C 6E 3B 0D           ++curln;.
014300:  0A 20 20 20 20 20 20 20 20 20 20 20 20 7D 0D 0A    .            }..
014310:  20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20              }..   
014320:  20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 62 72         }..      br
014330:  65 61 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 4D    eak;..    case M
014340:  4F 56 45 3A 0D 0A 20 20 20 20 20 20 2B 2B 69 3B    OVE:..      ++i;
014350:  0D 0A 20 20 20 20 20 20 69 66 28 67 65 74 6F 6E    ..      if(geton
014360:  65 28 26 6C 69 6E 65 33 29 3D 3D 45 4F 46 29 20    e(&line3)==EOF) 
014370:  73 74 61 74 75 73 3D 45 52 52 3B 0D 0A 20 20 20    status=ERR;..   
014380:  20 20 20 69 66 28 73 74 61 74 75 73 3D 3D 4F 4B       if(status==OK
014390:  29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66 28    ) {..        if(
0143A0:  63 6B 70 28 6C 69 6E 2C 20 69 2C 20 26 70 66 6C    ckp(lin, i, &pfl
0143B0:  61 67 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20    ag)==OK) {..    
0143C0:  20 20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28          if(defalt(
0143D0:  63 75 72 6C 6E 2C 20 63 75 72 6C 6E 29 3D 3D 4F    curln, curln)==O
0143E0:  4B 29 20 73 74 61 74 75 73 3D 6D 6F 76 65 28 6C    K) status=move(l
0143F0:  69 6E 65 33 29 3B 0D 0A 20 20 20 20 20 20 20 20    ine3);..        
014400:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
014410:  11 00 01 00 02 09 52 E5 11 00 41 02 00 00 00 02    ......R...A.....
014420:  11 00 46 02 00 00 00 02 11 00 42 02 00 00 00 02    ..F.......B.....
014430:  11 00 47 02 00 00 00 02 11 00 43 02 00 00 00 02    ..G.......C.....
014440:  11 00 48 02 00 00 00 02 11 00 44 02 00 00 00 02    ..H.......D.....
014450:  11 00 49 02 00 00 00 02 11 00 45 02 00 00 00 02    ..I.......E.....
014460:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014470:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014480:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014490:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0144F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
014500:  67 29 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28    g) {..    fputs(
014510:  22 64 69 64 6E 27 74 20 77 72 69 74 65 20 74 6F    "didn't write to
014520:  20 64 69 73 6B 21 5C 6E 22 2C 20 73 74 64 65 72     disk!\n", stder
014530:  72 29 3B 0D 0A 20 20 20 20 75 70 64 74 66 6C 61    r);..    updtfla
014540:  67 3D 4E 4F 3B 0D 0A 20 20 20 20 72 65 74 75 72    g=NO;..    retur
014550:  6E 20 45 52 52 3B 0D 0A 20 20 20 20 7D 0D 0A 20    n ERR;..    }.. 
014560:  20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D     return OK;..  }
014570:  0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 63 74 6F 69 20    ..../*..** ctoi 
014580:  2D 2D 20 63 6F 6E 76 65 72 74 20 73 74 72 69 6E    -- convert strin
014590:  67 20 61 74 20 69 6E 5B 2A 69 5D 20 74 6F 20 69    g at in[*i] to i
0145A0:  6E 74 65 67 65 72 2C 20 62 75 6D 70 20 2A 69 0D    nteger, bump *i.
0145B0:  0A 2A 2F 0D 0A 63 74 6F 69 28 69 6E 2C 20 69 29    .*/..ctoi(in, i)
0145C0:  20 63 68 61 72 20 69 6E 5B 5D 3B 20 69 6E 74 20     char in[]; int 
0145D0:  2A 69 3B 20 7B 0D 0A 20 20 69 6E 74 20 64 64 2C    *i; {..  int dd,
0145E0:  20 6E 75 6D 3B 0D 0A 20 20 63 68 61 72 20 2A 64     num;..  char *d
0145F0:  69 67 69 74 73 3B 0D 0A 20 20 64 69 67 69 74 73    igits;..  digits
014600:  3D 22 30 31 32 33 34 35 36 37 38 39 22 3B 0D 0A    ="0123456789";..
014610:  20 20 77 68 69 6C 65 28 28 69 6E 5B 2A 69 5D 3D      while((in[*i]=
014620:  3D 42 4C 41 4E 4B 29 7C 28 69 6E 5B 2A 69 5D 3D    =BLANK)|(in[*i]=
014630:  3D 54 41 42 29 29 20 2A 69 20 3D 20 2A 69 20 2B    =TAB)) *i = *i +
014640:  20 31 3B 0D 0A 20 20 6E 75 6D 3D 30 3B 0D 0A 20     1;..  num=0;.. 
014650:  20 77 68 69 6C 65 28 69 6E 5B 2A 69 5D 21 3D 4E     while(in[*i]!=N
014660:  55 4C 4C 29 20 7B 0D 0A 20 20 20 20 64 64 3D 69    ULL) {..    dd=i
014670:  6E 64 65 78 28 64 69 67 69 74 73 2C 20 69 6E 5B    ndex(digits, in[
014680:  2A 69 5D 29 3B 0D 0A 20 20 20 20 69 66 28 64 64    *i]);..    if(dd
014690:  20 3C 20 30 29 20 62 72 65 61 6B 3B 0D 0A 20 20     < 0) break;..  
0146A0:  20 20 6E 75 6D 20 3D 20 31 30 2A 6E 75 6D 20 2B      num = 10*num +
0146B0:  20 64 64 3B 0D 0A 20 20 20 20 2A 69 20 3D 20 2A     dd;..    *i = *
0146C0:  69 20 2B 20 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20    i + 1;..    }.. 
0146D0:  20 72 65 74 75 72 6E 20 6E 75 6D 3B 0D 0A 20 20     return num;..  
0146E0:  7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73 6B 69 70    }..../*..** skip
0146F0:  62 6C 20 2D 2D 20 73 6B 69 70 20 62 6C 61 6E 6B    bl -- skip blank
014700:  65 64 74 32 2E 63 22 0D 0A 23 69 6E 63 6C 75 64    edt2.c"..#includ
014710:  65 20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63    e "same.c"..#inc
014720:  6C 75 64 65 20 22 70 61 74 2E 63 22 0D 0A 23 69    lude "pat.c"..#i
014730:  6E 63 6C 75 64 65 20 22 62 75 66 2E 63 22 0D 0A    nclude "buf.c"..
014740:  23 69 6E 63 6C 75 64 65 20 22 65 72 72 6F 72 2E    #include "error.
014750:  63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 69 6E    c"..#include "in
014760:  64 65 78 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65    dex.c"..#include
014770:  20 22 6D 61 6B 73 75 62 2E 63 22 0D 0A 23 69 6E     "maksub.c"..#in
014780:  63 6C 75 64 65 20 22 63 61 74 73 75 62 2E 63 22    clude "catsub.c"
014790:  0D 0A 23 69 6E 63 6C 75 64 65 20 22 73 63 6F 70    ..#include "scop
0147A0:  79 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22    y.c"..#include "
0147B0:  74 72 69 6D 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A    trim.c".........
0147C0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0147D0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0147E0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0147F0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
014800:  0A 20 20 20 20 20 20 67 65 74 6E 75 6D 28 26 70    .      getnum(&p
014810:  6E 75 6D 29 3B 0D 0A 20 20 20 20 20 20 2A 6E 75    num);..      *nu
014820:  6D 20 3D 20 2A 6E 75 6D 20 2B 20 6D 75 6C 2A 70    m = *num + mul*p
014830:  6E 75 6D 3B 0D 0A 20 20 20 20 20 20 69 66 28 73    num;..      if(s
014840:  74 61 74 75 73 3D 3D 45 4F 46 29 20 73 74 61 74    tatus==EOF) stat
014850:  75 73 3D 45 52 52 3B 0D 0A 20 20 20 20 20 20 69    us=ERR;..      i
014860:  66 28 73 74 61 74 75 73 21 3D 4F 4B 29 20 62 72    f(status!=OK) br
014870:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    eak;..      }.. 
014880:  20 69 66 28 28 2A 6E 75 6D 3C 30 29 7C 28 2A 6E     if((*num<0)|(*n
014890:  75 6D 3E 6C 61 73 74 6C 6E 29 29 20 72 65 74 75    um>lastln)) retu
0148A0:  72 6E 20 28 73 74 61 74 75 73 3D 45 52 52 29 3B    rn (status=ERR);
0148B0:  0D 0A 20 20 69 66 28 69 3C 3D 69 73 74 61 72 74    ..  if(i<=istart
0148C0:  29 20 72 65 74 75 72 6E 20 28 73 74 61 74 75 73    ) return (status
0148D0:  3D 45 4F 46 29 3B 0D 0A 20 20 72 65 74 75 72 6E    =EOF);..  return
0148E0:  20 28 73 74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20     (status=OK);.. 
0148F0:  20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22     }....#include "
014900:  73 20 61 6E 64 20 74 61 62 73 0D 0A 2A 2F 0D 0A    s and tabs..*/..
014910:  73 6B 69 70 62 6C 28 6C 69 6E 2C 20 69 29 20 63    skipbl(lin, i) c
014920:  68 61 72 20 6C 69 6E 5B 5D 3B 20 69 6E 74 20 2A    har lin[]; int *
014930:  69 3B 20 7B 0D 0A 20 20 77 68 69 6C 65 28 28 6C    i; {..  while((l
014940:  69 6E 5B 2A 69 5D 3D 3D 27 20 27 29 7C 28 6C 69    in[*i]==' ')|(li
014950:  6E 5B 2A 69 5D 3D 3D 27 5C 74 27 29 29 20 2A 69    n[*i]=='\t')) *i
014960:  20 3D 20 2A 69 20 2B 20 31 3B 0D 0A 20 20 7D 0D     = *i + 1;..  }.
014970:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6E 65 78 74 6C 6E    .../*..** nextln
014980:  20 2D 2D 20 67 65 74 20 6C 69 6E 65 20 61 66 74     -- get line aft
014990:  65 72 20 6C 6E 0D 0A 2A 2F 0D 0A 6E 65 78 74 6C    er ln..*/..nextl
0149A0:  6E 28 6C 6E 29 20 69 6E 74 20 6C 6E 3B 20 7B 0D    n(ln) int ln; {.
0149B0:  0A 20 20 69 66 28 2B 2B 6C 6E 20 3E 20 6C 61 73    .  if(++ln > las
0149C0:  74 6C 6E 29 20 72 65 74 75 72 6E 20 30 3B 0D 0A    tln) return 0;..
0149D0:  20 20 72 65 74 75 72 6E 20 6C 6E 3B 0D 0A 20 20      return ln;..  
0149E0:  7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 70 72 65 76    }..../*..** prev
0149F0:  6C 6E 20 2D 2D 20 67 65 74 20 6C 69 6E 65 20 62    ln -- get line b
014A00:  65 66 6F 72 65 20 6C 6E 0D 0A 2A 2F 0D 0A 70 72    efore ln..*/..pr
014A10:  65 76 6C 6E 28 6C 6E 29 20 69 6E 74 20 6C 6E 3B    evln(ln) int ln;
014A20:  20 7B 0D 0A 20 20 69 66 28 2D 2D 6C 6E 20 3C 20     {..  if(--ln < 
014A30:  30 29 20 72 65 74 75 72 6E 20 6C 61 73 74 6C 6E    0) return lastln
014A40:  3B 0D 0A 20 20 72 65 74 75 72 6E 20 6C 6E 3B 0D    ;..  return ln;.
014A50:  0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6A    .  }..../*..** j
014A60:  6F 69 6E 20 2D 2D 20 70 75 74 20 6C 69 6E 65 31    oin -- put line1
014A70:  20 74 68 72 75 20 6C 69 6E 65 32 20 74 6F 67 65     thru line2 toge
014A80:  74 68 65 72 20 69 6E 74 6F 20 74 78 74 0D 0A 2A    ther into txt..*
014A90:  2F 0D 0A 6A 6F 69 6E 28 6C 6E 31 2C 20 6C 6E 32    /..join(ln1, ln2
014AA0:  29 20 69 6E 74 20 6C 6E 31 2C 20 6C 6E 32 3B 20    ) int ln1, ln2; 
014AB0:  7B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A    {..  int i, j;..
014AC0:  20 20 6A 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28      j=0;..  while(
014AD0:  6C 6E 31 20 3C 3D 20 6C 6E 32 29 20 7B 0D 0A 20    ln1 <= ln2) {.. 
014AE0:  20 20 20 69 3D 67 65 74 69 6E 64 28 6C 6E 31 2B       i=getind(ln1+
014AF0:  2B 29 2B 54 45 58 54 3B 0D 0A 20 20 20 20 77 68    +)+TEXT;..    wh
014B00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014B90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014BA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014BB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014BC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014BD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014BE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014BF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014C90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014CA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014CB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014CC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014CD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014CE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014CF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
014D00:  69 6C 65 28 74 78 74 5B 6A 2B 2B 5D 3D 62 75 66    ile(txt[j++]=buf
014D10:  5B 69 2B 2B 5D 29 0D 0A 20 20 20 20 20 20 69 66    [i++])..      if
014D20:  28 6A 20 3E 3D 20 4D 41 58 4C 49 4E 45 29 20 72    (j >= MAXLINE) r
014D30:  65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 20 20    eturn ERR;..    
014D40:  2D 2D 6A 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72    --j;..    }..  r
014D50:  65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D 0A    eturn OK;..  }..
014D60:  0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 72 65 61 64 20    ../*..** doread 
014D70:  2D 2D 20 72 65 61 64 20 22 66 69 6C 65 22 20 61    -- read "file" a
014D80:  66 74 65 72 20 22 6C 69 6E 65 22 0D 0A 2A 2F 0D    fter "line"..*/.
014D90:  0A 64 6F 72 65 61 64 28 6C 69 6E 65 2C 20 66 69    .doread(line, fi
014DA0:  6C 65 29 20 69 6E 74 20 6C 69 6E 65 3B 20 63 68    le) int line; ch
014DB0:  61 72 20 66 69 6C 65 5B 5D 3B 20 7B 0D 0A 20 20    ar file[]; {..  
014DC0:  69 6E 74 20 66 64 2C 20 73 74 61 74 3B 0D 0A 20    int fd, stat;.. 
014DD0:  20 69 66 28 28 66 64 3D 66 6F 70 65 6E 28 66 69     if((fd=fopen(fi
014DE0:  6C 65 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C 29    le, "r"))==NULL)
014DF0:  20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 6F     {..    fputs("o
014E00:  70 65 6E 20 22 2C 20 73 74 64 65 72 72 29 3B 0D    pen ", stderr);.
014E10:  0A 20 20 20 20 72 65 74 75 72 6E 20 45 52 52 3B    .    return ERR;
014E20:  0D 0A 20 20 20 20 7D 0D 0A 20 20 63 75 72 6C 6E    ..    }..  curln
014E30:  3D 6C 69 6E 65 3B 0D 0A 20 20 73 74 61 74 3D 69    =line;..  stat=i
014E40:  6E 70 75 74 28 66 64 29 3B 0D 0A 20 20 66 63 6C    nput(fd);..  fcl
014E50:  6F 73 65 28 66 64 29 3B 0D 0A 20 20 72 65 74 75    ose(fd);..  retu
014E60:  72 6E 20 73 74 61 74 3B 0D 0A 20 20 7D 0D 0A 0D    rn stat;..  }...
014E70:  0A 2F 2A 0D 0A 2A 2A 20 67 65 74 6C 73 74 20 2D    ./*..** getlst -
014E80:  2D 20 63 6F 6C 6C 65 63 74 20 6C 69 6E 65 20 6E    - collect line n
014E90:  75 6D 62 65 72 73 20 28 69 66 20 61 6E 79 29 20    umbers (if any) 
014EA0:  61 74 20 6C 69 6E 5B 69 5D 2C 20 62 75 6D 70 20    at lin[i], bump 
014EB0:  69 0D 0A 2A 2F 0D 0A 67 65 74 6C 73 74 28 29 20    i..*/..getlst() 
014EC0:  7B 0D 0A 20 20 69 6E 74 20 6E 75 6D 3B 0D 0A 20    {..  int num;.. 
014ED0:  20 6C 69 6E 65 32 3D 30 3B 0D 0A 20 20 6E 6C 69     line2=0;..  nli
014EE0:  6E 65 73 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28    nes=0;..  while(
014EF0:  67 65 74 6F 6E 65 28 26 6E 75 6D 29 3D 3D 4F 4B    getone(&num)==OK
014F00:  0D 0A 2F 2A 0D 0A 2A 2A 20 65 64 74 32 2E 63 20    ../*..** edt2.c 
014F10:  2D 2D 20 65 64 69 74 20 70 61 72 74 20 32 0D 0A    -- edit part 2..
014F20:  2A 2F 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74    */..../*..** get
014F30:  6E 75 6D 20 2D 2D 20 63 6F 6E 76 65 72 74 20 6F    num -- convert o
014F40:  6E 65 20 74 65 72 6D 20 74 6F 20 61 20 6C 69 6E    ne term to a lin
014F50:  65 20 6E 75 6D 62 65 72 0D 0A 2A 2F 0D 0A 67 65    e number..*/..ge
014F60:  74 6E 75 6D 28 70 6E 75 6D 29 20 69 6E 74 20 2A    tnum(pnum) int *
014F70:  70 6E 75 6D 3B 20 7B 0D 0A 20 20 69 6E 74 20 73    pnum; {..  int s
014F80:  74 61 74 3B 0D 0A 20 20 63 68 61 72 20 2A 64 69    tat;..  char *di
014F90:  67 69 74 73 3B 0D 0A 20 20 64 69 67 69 74 73 3D    gits;..  digits=
014FA0:  22 30 31 32 33 34 35 36 37 38 39 22 3B 0D 0A 20    "0123456789";.. 
014FB0:  20 73 74 61 74 3D 4F 4B 3B 0D 0A 20 20 69 66 28     stat=OK;..  if(
014FC0:  69 6E 64 65 78 28 64 69 67 69 74 73 2C 20 6C 69    index(digits, li
014FD0:  6E 5B 69 5D 29 20 3E 3D 20 30 29 20 7B 0D 0A 20    n[i]) >= 0) {.. 
014FE0:  20 20 20 2A 70 6E 75 6D 3D 63 74 6F 69 28 6C 69       *pnum=ctoi(li
014FF0:  6E 2C 20 26 69 29 3B 0D 0A 20 20 20 20 2D 2D 69    n, &i);..    --i
015000:  3B 20 20 2F 2A 2A 20 62 61 63 6B 75 70 20 74 68    ;  /** backup th
015010:  65 6E 20 62 75 6D 70 20 61 74 20 65 6E 64 20 2A    en bump at end *
015020:  2A 2F 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73    */..    }..  els
015030:  65 20 69 66 28 6C 69 6E 5B 69 5D 3D 3D 43 55 52    e if(lin[i]==CUR
015040:  4C 49 4E 45 29 20 2A 70 6E 75 6D 3D 63 75 72 6C    LINE) *pnum=curl
015050:  6E 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 6C 69    n;..  else if(li
015060:  6E 5B 69 5D 3D 3D 4C 41 53 54 4C 49 4E 45 29 20    n[i]==LASTLINE) 
015070:  2A 70 6E 75 6D 3D 6C 61 73 74 6C 6E 3B 0D 0A 20    *pnum=lastln;.. 
015080:  20 65 6C 73 65 20 69 66 28 28 6C 69 6E 5B 69 5D     else if((lin[i]
015090:  3D 3D 53 43 41 4E 29 7C 28 6C 69 6E 5B 69 5D 3D    ==SCAN)|(lin[i]=
0150A0:  3D 42 41 43 4B 53 43 41 4E 29 29 20 7B 0D 0A 20    =BACKSCAN)) {.. 
0150B0:  20 20 20 69 66 28 6F 70 74 70 61 74 28 29 3D 3D       if(optpat()==
0150C0:  45 52 52 29 20 73 74 61 74 3D 45 52 52 3B 0D 0A    ERR) stat=ERR;..
0150D0:  20 20 20 20 65 6C 73 65 20 69 66 28 6C 69 6E 5B        else if(lin[
0150E0:  69 5D 3D 3D 53 43 41 4E 29 20 73 74 61 74 3D 70    i]==SCAN) stat=p
0150F0:  74 73 63 61 6E 28 46 4F 52 57 41 52 44 2C 20 70    tscan(FORWARD, p
015100:  29 20 7B 0D 0A 20 20 20 20 6C 69 6E 65 31 3D 6C    ) {..    line1=l
015110:  69 6E 65 32 3B 0D 0A 20 20 20 20 6C 69 6E 65 32    ine2;..    line2
015120:  3D 6E 75 6D 3B 0D 0A 20 20 20 20 2B 2B 6E 6C 69    =num;..    ++nli
015130:  6E 65 73 3B 0D 0A 20 20 20 20 69 66 28 28 6C 69    nes;..    if((li
015140:  6E 5B 69 5D 21 3D 43 4F 4D 4D 41 29 26 28 6C 69    n[i]!=COMMA)&(li
015150:  6E 5B 69 5D 21 3D 53 45 4D 49 43 4F 4C 29 29 20    n[i]!=SEMICOL)) 
015160:  62 72 65 61 6B 3B 0D 0A 20 20 20 20 69 66 28 6C    break;..    if(l
015170:  69 6E 5B 69 5D 3D 3D 53 45 4D 49 43 4F 4C 29 20    in[i]==SEMICOL) 
015180:  63 75 72 6C 6E 3D 6E 75 6D 3B 0D 0A 20 20 20 20    curln=num;..    
015190:  2B 2B 69 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69    ++i;..    }..  i
0151A0:  66 28 6E 6C 69 6E 65 73 3E 32 29 20 6E 6C 69 6E    f(nlines>2) nlin
0151B0:  65 73 3D 32 3B 0D 0A 20 20 69 66 28 6E 6C 69 6E    es=2;..  if(nlin
0151C0:  65 73 3D 3D 30 29 20 6C 69 6E 65 32 3D 63 75 72    es==0) line2=cur
0151D0:  6C 6E 3B 0D 0A 20 20 69 66 28 6E 6C 69 6E 65 73    ln;..  if(nlines
0151E0:  3C 3D 31 29 20 6C 69 6E 65 31 3D 6C 69 6E 65 32    <=1) line1=line2
0151F0:  3B 0D 0A 20 20 69 66 28 73 74 61 74 75 73 21 3D    ;..  if(status!=
015200:  45 52 52 29 20 73 74 61 74 75 73 3D 4F 4B 3B 0D    ERR) status=OK;.
015210:  0A 20 20 72 65 74 75 72 6E 20 73 74 61 74 75 73    .  return status
015220:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A    ;..  }..../*..**
015230:  20 67 65 74 6F 6E 65 20 2D 2D 20 65 76 61 6C 75     getone -- evalu
015240:  61 74 65 20 6F 6E 65 20 6C 69 6E 65 20 6E 75 6D    ate one line num
015250:  62 65 72 20 65 78 70 72 65 73 73 69 6F 6E 0D 0A    ber expression..
015260:  2A 2F 0D 0A 67 65 74 6F 6E 65 28 6E 75 6D 29 20    */..getone(num) 
015270:  69 6E 74 20 2A 6E 75 6D 3B 20 7B 0D 0A 20 20 69    int *num; {..  i
015280:  6E 74 20 69 73 74 61 72 74 2C 20 6D 75 6C 2C 20    nt istart, mul, 
015290:  70 6E 75 6D 3B 0D 0A 20 20 73 6B 69 70 62 6C 28    pnum;..  skipbl(
0152A0:  6C 69 6E 2C 20 26 69 29 3B 0D 0A 20 20 69 73 74    lin, &i);..  ist
0152B0:  61 72 74 3D 69 3B 0D 0A 20 20 69 66 28 28 6C 69    art=i;..  if((li
0152C0:  6E 5B 69 5D 3D 3D 50 4C 55 53 29 7C 28 6C 69 6E    n[i]==PLUS)|(lin
0152D0:  5B 69 5D 3D 3D 4D 49 4E 55 53 29 29 20 2A 6E 75    [i]==MINUS)) *nu
0152E0:  6D 3D 63 75 72 6C 6E 3B 0D 0A 20 20 65 6C 73 65    m=curln;..  else
0152F0:  20 2A 6E 75 6D 3D 30 3B 0D 0A 20 20 69 66 28 67     *num=0;..  if(g
015300:  6E 75 6D 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20    num);..    else 
015310:  73 74 61 74 3D 70 74 73 63 61 6E 28 42 41 43 4B    stat=ptscan(BACK
015320:  57 41 52 44 2C 20 70 6E 75 6D 29 3B 0D 0A 20 20    WARD, pnum);..  
015330:  20 20 7D 0D 0A 20 20 65 6C 73 65 20 69 66 28 28      }..  else if((
015340:  6C 69 6E 5B 69 5D 3D 3D 50 4C 55 53 29 7C 28 6C    lin[i]==PLUS)|(l
015350:  69 6E 5B 69 5D 3D 3D 4D 49 4E 55 53 29 29 20 2D    in[i]==MINUS)) -
015360:  2D 69 3B 0D 0A 20 20 65 6C 73 65 20 73 74 61 74    -i;..  else stat
015370:  3D 45 4F 46 3B 0D 0A 20 20 69 66 28 73 74 61 74    =EOF;..  if(stat
015380:  3D 3D 4F 4B 29 20 2B 2B 69 3B 0D 0A 20 20 72 65    ==OK) ++i;..  re
015390:  74 75 72 6E 20 28 73 74 61 74 75 73 3D 73 74 61    turn (status=sta
0153A0:  74 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A    t);..  }..../*..
0153B0:  2A 2A 20 6F 70 74 70 61 74 20 2D 2D 20 6D 61 6B    ** optpat -- mak
0153C0:  65 20 70 61 74 74 65 72 6E 20 69 66 20 73 70 65    e pattern if spe
0153D0:  63 69 66 69 65 64 20 61 74 20 6C 69 6E 5B 69 5D    cified at lin[i]
0153E0:  0D 0A 2A 2F 0D 0A 6F 70 74 70 61 74 28 29 20 7B    ..*/..optpat() {
0153F0:  0D 0A 20 20 69 66 28 6C 69 6E 5B 69 5D 3D 3D 4E    ..  if(lin[i]==N
015400:  55 4C 4C 29 20 69 20 3D 20 45 52 52 3B 0D 0A 20    ULL) i = ERR;.. 
015410:  20 65 6C 73 65 20 69 66 28 6C 69 6E 5B 69 2B 31     else if(lin[i+1
015420:  5D 3D 3D 4E 55 4C 4C 29 20 69 20 3D 20 45 52 52    ]==NULL) i = ERR
015430:  3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 6C 69 6E    ;..  else if(lin
015440:  5B 69 2B 31 5D 3D 3D 6C 69 6E 5B 69 5D 29 20 2B    [i+1]==lin[i]) +
015450:  2B 69 3B 0D 0A 20 20 65 6C 73 65 20 69 20 3D 20    +i;..  else i = 
015460:  6D 61 6B 70 61 74 28 6C 69 6E 2C 20 69 2B 31 2C    makpat(lin, i+1,
015470:  20 6C 69 6E 5B 69 5D 2C 20 70 61 74 29 3B 0D 0A     lin[i], pat);..
015480:  20 20 69 66 28 70 61 74 5B 30 5D 3D 3D 4E 55 4C      if(pat[0]==NUL
015490:  4C 29 20 69 20 3D 20 45 52 52 3B 0D 0A 20 20 69    L) i = ERR;..  i
0154A0:  66 28 69 3D 3D 45 52 52 29 20 7B 0D 0A 20 20 20    f(i==ERR) {..   
0154B0:  20 70 61 74 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20     pat[0]=NULL;.. 
0154C0:  20 20 20 72 65 74 75 72 6E 20 45 52 52 3B 0D 0A       return ERR;..
0154D0:  20 20 20 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20        }..  return 
0154E0:  4F 4B 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A    OK;..  }..../*..
0154F0:  2A 2A 20 70 74 73 63 61 6E 20 2D 2D 20 73 63 61    ** ptscan -- sca
015500:  65 74 6E 75 6D 28 6E 75 6D 29 3D 3D 4F 4B 29 0D    etnum(num)==OK).
015510:  0A 20 20 20 20 77 68 69 6C 65 28 59 45 53 29 20    .    while(YES) 
015520:  7B 0D 0A 20 20 20 20 20 20 73 6B 69 70 62 6C 28    {..      skipbl(
015530:  6C 69 6E 2C 20 26 69 29 3B 0D 0A 20 20 20 20 20    lin, &i);..     
015540:  20 69 66 28 28 6C 69 6E 5B 69 5D 21 3D 50 4C 55     if((lin[i]!=PLU
015550:  53 29 26 28 6C 69 6E 5B 69 5D 21 3D 4D 49 4E 55    S)&(lin[i]!=MINU
015560:  53 29 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 73    S)) {..        s
015570:  74 61 74 75 73 3D 45 4F 46 3B 0D 0A 20 20 20 20    tatus=EOF;..    
015580:  20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20        break;..    
015590:  20 20 20 20 7D 0D 0A 20 20 20 20 20 20 69 66 28        }..      if(
0155A0:  6C 69 6E 5B 69 5D 3D 3D 50 4C 55 53 29 20 6D 75    lin[i]==PLUS) mu
0155B0:  6C 20 3D 20 31 3B 0D 0A 20 20 20 20 20 20 65 6C    l = 1;..      el
0155C0:  73 65 20 6D 75 6C 20 3D 20 2D 31 3B 0D 0A 20 20    se mul = -1;..  
0155D0:  20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 20 20        ++i;..      
0155E0:  73 6B 69 70 62 6C 28 6C 69 6E 2C 20 26 69 29 3B    skipbl(lin, &i);
0155F0:  0D 0A 20 20 20 20 20 20 70 6E 75 6D 3D 31 3B 0D    ..      pnum=1;.
015600:  0A 20 20 20 20 20 20 67 65 74 6E 75 6D 28 26 70    .      getnum(&p
015610:  6E 75 6D 29 3B 0D 0A 20 20 20 20 20 20 2A 6E 75    num);..      *nu
015620:  6D 20 3D 20 2A 6E 75 6D 20 2B 20 6D 75 6C 2A 70    m = *num + mul*p
015630:  6E 75 6D 3B 0D 0A 20 20 20 20 20 20 69 66 28 73    num;..      if(s
015640:  74 61 74 75 73 3D 3D 45 4F 46 29 20 73 74 61 74    tatus==EOF) stat
015650:  75 73 3D 45 52 52 3B 0D 0A 20 20 20 20 20 20 69    us=ERR;..      i
015660:  66 28 73 74 61 74 75 73 21 3D 4F 4B 29 20 62 72    f(status!=OK) br
015670:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    eak;..      }.. 
015680:  20 69 66 28 28 2A 6E 75 6D 3C 30 29 7C 28 2A 6E     if((*num<0)|(*n
015690:  75 6D 3E 6C 61 73 74 6C 6E 29 29 20 72 65 74 75    um>lastln)) retu
0156A0:  72 6E 20 28 73 74 61 74 75 73 3D 45 52 52 29 3B    rn (status=ERR);
0156B0:  0D 0A 20 20 69 66 28 69 3C 3D 69 73 74 61 72 74    ..  if(i<=istart
0156C0:  29 20 72 65 74 75 72 6E 20 28 73 74 61 74 75 73    ) return (status
0156D0:  3D 45 4F 46 29 3B 0D 0A 20 20 72 65 74 75 72 6E    =EOF);..  return
0156E0:  20 28 73 74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20     (status=OK);.. 
0156F0:  20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22     }....#include "
015700:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
015710:  12 00 01 00 02 09 52 E5 12 00 41 02 00 00 00 02    ......R...A.....
015720:  12 00 46 02 00 00 00 02 12 00 42 02 00 00 00 02    ..F.......B.....
015730:  12 00 47 02 00 00 00 02 12 00 43 02 00 00 00 02    ..G.......C.....
015740:  12 00 48 02 00 00 00 02 12 00 44 02 00 00 00 02    ..H.......D.....
015750:  12 00 49 02 00 00 00 02 12 00 45 02 00 00 00 02    ..I.......E.....
015760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0157F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
015800:  6E 20 66 6F 72 20 6E 65 78 74 20 6F 63 63 75 72    n for next occur
015810:  72 65 6E 63 65 20 6F 66 20 70 61 74 74 65 72 6E    rence of pattern
015820:  0D 0A 2A 2F 0D 0A 70 74 73 63 61 6E 28 77 61 79    ..*/..ptscan(way
015830:  2C 20 6E 75 6D 29 20 69 6E 74 20 77 61 79 2C 20    , num) int way, 
015840:  2A 6E 75 6D 3B 20 7B 0D 0A 20 20 2A 6E 75 6D 3D    *num; {..  *num=
015850:  63 75 72 6C 6E 3B 0D 0A 20 20 77 68 69 6C 65 28    curln;..  while(
015860:  59 45 53 29 20 7B 0D 0A 20 20 20 20 69 66 28 70    YES) {..    if(p
015870:  6F 6C 6C 28 59 45 53 29 3D 3D 45 53 43 29 20 72    oll(YES)==ESC) r
015880:  65 74 75 72 6E 20 28 45 52 52 29 3B 0D 0A 20 20    eturn (ERR);..  
015890:  20 20 69 66 28 77 61 79 3D 3D 46 4F 52 57 41 52      if(way==FORWAR
0158A0:  44 29 20 2A 6E 75 6D 3D 6E 65 78 74 6C 6E 28 2A    D) *num=nextln(*
0158B0:  6E 75 6D 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20    num);..    else 
0158C0:  2A 6E 75 6D 3D 70 72 65 76 6C 6E 28 2A 6E 75 6D    *num=prevln(*num
0158D0:  29 3B 0D 0A 20 20 20 20 69 66 28 6D 61 74 63 68    );..    if(match
0158E0:  28 62 75 66 2B 67 65 74 69 6E 64 28 2A 6E 75 6D    (buf+getind(*num
0158F0:  29 2B 54 45 58 54 2C 20 70 61 74 29 3D 3D 59 45    )+TEXT, pat)==YE
015900:  53 29 20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20    S) return OK;.. 
015910:  20 20 20 69 66 28 2A 6E 75 6D 3D 3D 63 75 72 6C       if(*num==curl
015920:  6E 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 7D    n) break;..    }
015930:  0D 0A 20 20 72 65 74 75 72 6E 20 45 52 52 3B 0D    ..  return ERR;.
015940:  0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 63    .  }..../*..** c
015950:  6B 67 6C 6F 62 20 2D 2D 20 69 66 20 67 6C 6F 62    kglob -- if glob
015960:  61 6C 20 70 72 65 66 69 78 2C 20 6D 61 72 6B 20    al prefix, mark 
015970:  6C 69 6E 65 73 20 74 6F 20 62 65 20 61 66 66 65    lines to be affe
015980:  63 74 65 64 0D 0A 2A 2F 0D 0A 63 6B 67 6C 6F 62    cted..*/..ckglob
015990:  28 29 20 7B 0D 0A 20 20 69 6E 74 20 67 66 6C 61    () {..  int gfla
0159A0:  67 2C 20 6B 2C 20 6C 69 6E 65 3B 0D 0A 20 20 69    g, k, line;..  i
0159B0:  66 28 28 73 61 6D 65 28 6C 69 6E 5B 69 5D 2C 20    f((same(lin[i], 
0159C0:  47 4C 4F 42 41 4C 29 3D 3D 4E 4F 29 26 28 73 61    GLOBAL)==NO)&(sa
0159D0:  6D 65 28 6C 69 6E 5B 69 5D 2C 20 45 58 43 4C 55    me(lin[i], EXCLU
0159E0:  44 45 29 3D 3D 4E 4F 29 29 0D 0A 20 20 20 20 72    DE)==NO))..    r
0159F0:  65 74 75 72 6E 20 28 73 74 61 74 75 73 3D 45 4F    eturn (status=EO
015A00:  2F 2A 2A 20 6C 65 61 76 65 73 20 67 6F 74 6C 69    /** leaves gotli
015A10:  6E 65 20 26 20 67 6F 74 69 6E 64 20 62 65 6C 6F    ne & gotind belo
015A20:  77 20 61 66 66 65 63 74 65 64 20 61 72 65 61 20    w affected area 
015A30:  2A 2A 2F 0D 0A 20 20 6C 61 73 74 6C 6E 3D 6C 61    **/..  lastln=la
015A40:  73 74 6C 6E 2D 28 74 6F 2D 66 72 6F 6D 2B 31 29    stln-(to-from+1)
015A50:  3B 0D 0A 20 20 63 75 72 6C 6E 3D 70 72 65 76 6C    ;..  curln=prevl
015A60:  6E 28 66 72 6F 6D 29 3B 0D 0A 20 20 72 65 6C 69    n(from);..  reli
015A70:  6E 6B 28 6B 31 2C 20 6B 32 2C 20 6B 31 2C 20 6B    nk(k1, k2, k1, k
015A80:  32 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 28 73    2);..  return (s
015A90:  74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 20 7D 0D    tatus=OK);..  }.
015AA0:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 63 6B 70 20 2D 2D    .../*..** ckp --
015AB0:  20 63 68 65 63 6B 20 66 6F 72 20 22 70 22 20 61     check for "p" a
015AC0:  66 74 65 72 20 63 6F 6D 6D 61 6E 64 0D 0A 2A 2F    fter command..*/
015AD0:  0D 0A 63 6B 70 28 6C 69 6E 2C 20 69 2C 20 70 66    ..ckp(lin, i, pf
015AE0:  6C 61 67 29 20 63 68 61 72 20 6C 69 6E 5B 5D 3B    lag) char lin[];
015AF0:  20 69 6E 74 20 69 2C 20 2A 70 66 6C 61 67 3B 20     int i, *pflag; 
015B00:  7B 0D 0A 20 20 69 66 28 73 61 6D 65 28 6C 69 6E    {..  if(same(lin
015B10:  5B 69 5D 2C 20 50 52 49 4E 54 29 29 20 7B 0D 0A    [i], PRINT)) {..
015B20:  20 20 20 20 2A 70 66 6C 61 67 3D 59 45 53 3B 0D        *pflag=YES;.
015B30:  0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 7D    .    ++i;..    }
015B40:  0D 0A 20 20 65 6C 73 65 20 2A 70 66 6C 61 67 3D    ..  else *pflag=
015B50:  4E 4F 3B 0D 0A 20 20 69 66 28 76 69 65 77 29 20    NO;..  if(view) 
015B60:  2A 70 66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 69    *pflag=YES;..  i
015B70:  66 28 6C 69 6E 5B 69 5D 3D 3D 4E 55 4C 4C 29 20    f(lin[i]==NULL) 
015B80:  73 74 61 74 75 73 3D 4F 4B 3B 0D 0A 20 20 65 6C    status=OK;..  el
015B90:  73 65 20 73 74 61 74 75 73 3D 45 52 52 3B 0D 0A    se status=ERR;..
015BA0:  20 20 72 65 74 75 72 6E 20 73 74 61 74 75 73 3B      return status;
015BB0:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
015BC0:  6D 6F 76 65 20 2D 2D 20 6D 6F 76 65 20 6C 69 6E    move -- move lin
015BD0:  65 31 20 74 68 72 6F 75 67 68 20 6C 69 6E 65 32    e1 through line2
015BE0:  20 61 66 74 65 72 20 6C 69 6E 65 33 0D 0A 2A 2F     after line3..*/
015BF0:  0D 0A 6D 6F 76 65 28 6C 69 6E 65 33 29 20 69 6E    ..move(line3) in
015C00:  46 29 3B 0D 0A 20 20 69 66 28 73 61 6D 65 28 6C    F);..  if(same(l
015C10:  69 6E 5B 69 5D 2C 20 47 4C 4F 42 41 4C 29 29 20    in[i], GLOBAL)) 
015C20:  67 66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 65 6C    gflag=YES;..  el
015C30:  73 65 20 67 66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20    se gflag=NO;..  
015C40:  2B 2B 69 3B 0D 0A 20 20 69 66 28 28 6F 70 74 70    ++i;..  if((optp
015C50:  61 74 28 29 3D 3D 45 52 52 29 7C 28 64 65 66 61    at()==ERR)|(defa
015C60:  6C 74 28 31 2C 20 6C 61 73 74 6C 6E 29 3D 3D 45    lt(1, lastln)==E
015C70:  52 52 29 29 0D 0A 20 20 20 20 72 65 74 75 72 6E    RR))..    return
015C80:  20 28 73 74 61 74 75 73 3D 45 52 52 29 3B 0D 0A     (status=ERR);..
015C90:  20 20 2B 2B 69 3B 0D 0A 20 20 6C 69 6E 65 3D 6C      ++i;..  line=l
015CA0:  69 6E 65 31 3B 0D 0A 20 20 77 68 69 6C 65 28 6C    ine1;..  while(l
015CB0:  69 6E 65 3C 3D 6C 69 6E 65 32 29 20 7B 0D 0A 20    ine<=line2) {.. 
015CC0:  20 20 20 69 66 28 70 6F 6C 6C 28 59 45 53 29 3D       if(poll(YES)=
015CD0:  3D 45 53 43 29 20 72 65 74 75 72 6E 20 28 73 74    =ESC) return (st
015CE0:  61 74 75 73 3D 45 52 52 29 3B 0D 0A 20 20 20 20    atus=ERR);..    
015CF0:  6B 3D 67 65 74 74 78 74 28 6C 69 6E 65 2B 2B 29    k=gettxt(line++)
015D00:  3B 0D 0A 20 20 20 20 69 66 28 6D 61 74 63 68 28    ;..    if(match(
015D10:  74 78 74 2C 20 70 61 74 29 3D 3D 67 66 6C 61 67    txt, pat)==gflag
015D20:  29 20 62 75 66 5B 6B 2B 4D 41 52 4B 5D 3D 59 45    ) buf[k+MARK]=YE
015D30:  53 3B 0D 0A 20 20 20 20 65 6C 73 65 20 62 75 66    S;..    else buf
015D40:  5B 6B 2B 4D 41 52 4B 5D 3D 4E 4F 3B 0D 0A 20 20    [k+MARK]=NO;..  
015D50:  20 20 7D 0D 0A 20 20 6C 69 6E 65 3D 6E 65 78 74      }..  line=next
015D60:  6C 6E 28 6C 69 6E 65 32 29 3B 0D 0A 20 20 77 68    ln(line2);..  wh
015D70:  69 6C 65 28 6C 69 6E 65 21 3D 6C 69 6E 65 31 29    ile(line!=line1)
015D80:  20 7B 0D 0A 20 20 20 20 69 66 28 70 6F 6C 6C 28     {..    if(poll(
015D90:  59 45 53 29 3D 3D 45 53 43 29 20 72 65 74 75 72    YES)==ESC) retur
015DA0:  6E 20 28 73 74 61 74 75 73 3D 45 52 52 29 3B 0D    n (status=ERR);.
015DB0:  0A 20 20 20 20 6B 3D 67 65 74 69 6E 64 28 6C 69    .    k=getind(li
015DC0:  6E 65 29 3B 0D 0A 20 20 20 20 62 75 66 5B 6B 2B    ne);..    buf[k+
015DD0:  4D 41 52 4B 5D 3D 4E 4F 3B 0D 0A 20 20 20 20 6C    MARK]=NO;..    l
015DE0:  69 6E 65 3D 6E 65 78 74 6C 6E 28 6C 69 6E 65 29    ine=nextln(line)
015DF0:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65 74 75    ;..    }..  retu
015E00:  74 20 6C 69 6E 65 33 3B 20 7B 0D 0A 20 20 69 6E    t line3; {..  in
015E10:  74 20 6B 30 2C 20 6B 31 2C 20 6B 32 2C 20 6B 33    t k0, k1, k2, k3
015E20:  2C 20 6B 34 2C 20 6B 35 3B 0D 0A 20 20 69 66 28    , k4, k5;..  if(
015E30:  28 6C 69 6E 65 31 3C 3D 30 29 7C 28 28 6C 69 6E    (line1<=0)|((lin
015E40:  65 31 3C 3D 6C 69 6E 65 33 29 26 28 6C 69 6E 65    e1<=line3)&(line
015E50:  33 3C 3D 6C 69 6E 65 32 29 29 29 20 72 65 74 75    3<=line2))) retu
015E60:  72 6E 20 45 52 52 3B 0D 0A 20 20 6B 31 3D 67 65    rn ERR;..  k1=ge
015E70:  74 69 6E 64 28 6C 69 6E 65 31 29 3B 0D 0A 20 20    tind(line1);..  
015E80:  6B 32 3D 67 65 74 69 6E 64 28 6C 69 6E 65 32 29    k2=getind(line2)
015E90:  3B 0D 0A 20 20 6B 33 3D 67 65 74 69 6E 64 28 6E    ;..  k3=getind(n
015EA0:  65 78 74 6C 6E 28 6C 69 6E 65 32 29 29 3B 0D 0A    extln(line2));..
015EB0:  20 20 6B 30 3D 67 65 74 69 6E 64 28 70 72 65 76      k0=getind(prev
015EC0:  6C 6E 28 6C 69 6E 65 31 29 29 3B 0D 0A 20 20 2F    ln(line1));..  /
015ED0:  2A 2A 20 6C 65 61 76 65 73 20 67 6F 74 6C 69 6E    ** leaves gotlin
015EE0:  65 20 26 20 67 6F 74 69 6E 64 20 62 65 6C 6F 77    e & gotind below
015EF0:  20 61 66 66 65 63 74 65 64 20 61 72 65 61 20 2A     affected area *
015F00:  2A 2F 0D 0A 20 20 72 65 6C 69 6E 6B 28 6B 30 2C    */..  relink(k0,
015F10:  20 6B 33 2C 20 6B 30 2C 20 6B 33 29 3B 0D 0A 20     k3, k0, k3);.. 
015F20:  20 69 66 28 6C 69 6E 65 33 3E 6C 69 6E 65 31 29     if(line3>line1)
015F30:  20 7B 0D 0A 20 20 20 20 63 75 72 6C 6E 3D 6C 69     {..    curln=li
015F40:  6E 65 33 3B 0D 0A 20 20 20 20 6C 69 6E 65 33 3D    ne3;..    line3=
015F50:  6C 69 6E 65 33 2D 28 6C 69 6E 65 32 2D 6C 69 6E    line3-(line2-lin
015F60:  65 31 2B 31 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20    e1+1);..    }.. 
015F70:  20 65 6C 73 65 20 63 75 72 6C 6E 3D 6C 69 6E 65     else curln=line
015F80:  33 2B 28 6C 69 6E 65 32 2D 6C 69 6E 65 31 2B 31    3+(line2-line1+1
015F90:  29 3B 0D 0A 20 20 6B 35 3D 67 65 74 69 6E 64 28    );..  k5=getind(
015FA0:  6E 65 78 74 6C 6E 28 6C 69 6E 65 33 29 29 3B 0D    nextln(line3));.
015FB0:  0A 20 20 6B 34 3D 67 65 74 69 6E 64 28 6C 69 6E    .  k4=getind(lin
015FC0:  65 33 29 3B 0D 0A 20 20 2F 2A 2A 20 6C 65 61 76    e3);..  /** leav
015FD0:  65 73 20 67 6F 74 6C 69 6E 65 20 26 20 67 6F 74    es gotline & got
015FE0:  69 6E 64 20 62 65 6C 6F 77 20 61 66 66 65 63 74    ind below affect
015FF0:  65 64 20 61 72 65 61 20 2A 2A 2F 0D 0A 20 20 72    ed area **/..  r
016000:  72 6E 20 28 73 74 61 74 75 73 3D 4F 4B 29 3B 0D    rn (status=OK);.
016010:  0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 64    .  }..../*..** d
016020:  65 66 61 6C 74 20 2D 2D 20 73 65 74 20 64 65 66    efalt -- set def
016030:  61 75 6C 74 65 64 20 6C 69 6E 65 20 6E 75 6D 62    aulted line numb
016040:  65 72 73 0D 0A 2A 2F 0D 0A 64 65 66 61 6C 74 28    ers..*/..defalt(
016050:  64 65 66 31 2C 20 64 65 66 32 29 20 69 6E 74 20    def1, def2) int 
016060:  64 65 66 31 2C 20 64 65 66 32 3B 20 7B 0D 0A 20    def1, def2; {.. 
016070:  20 69 66 28 6E 6C 69 6E 65 73 3D 3D 30 29 20 7B     if(nlines==0) {
016080:  0D 0A 20 20 20 20 6C 69 6E 65 31 3D 64 65 66 31    ..    line1=def1
016090:  3B 0D 0A 20 20 20 20 6C 69 6E 65 32 3D 64 65 66    ;..    line2=def
0160A0:  32 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28    2;..    }..  if(
0160B0:  28 6C 69 6E 65 31 3E 6C 69 6E 65 32 29 7C 28 6C    (line1>line2)|(l
0160C0:  69 6E 65 31 3C 3D 30 29 7C 28 6C 69 6E 65 32 3E    ine1<=0)|(line2>
0160D0:  6C 61 73 74 6C 6E 29 29 0D 0A 20 20 20 20 72 65    lastln))..    re
0160E0:  74 75 72 6E 20 28 73 74 61 74 75 73 3D 45 52 52    turn (status=ERR
0160F0:  29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 28 73 74    );..  return (st
016100:  61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 20 7D 0D 0A    atus=OK);..  }..
016110:  0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 67 6C 6F 62 20    ../*..** doglob 
016120:  2D 2D 20 64 6F 20 63 6F 6D 6D 61 6E 64 20 61 74    -- do command at
016130:  20 6C 69 6E 5B 69 5D 20 6F 6E 20 61 6C 6C 20 6D     lin[i] on all m
016140:  61 72 6B 65 64 20 6C 69 6E 65 73 0D 0A 2A 2F 0D    arked lines..*/.
016150:  0A 64 6F 67 6C 6F 62 28 29 20 7B 0D 0A 20 20 69    .doglob() {..  i
016160:  6E 74 20 63 6F 75 6E 74 2C 20 69 73 74 61 72 74    nt count, istart
016170:  2C 20 6B 2C 20 6C 69 6E 65 3B 0D 0A 20 20 73 74    , k, line;..  st
016180:  61 74 75 73 3D 4F 4B 3B 0D 0A 20 20 63 6F 75 6E    atus=OK;..  coun
016190:  74 3D 30 3B 0D 0A 20 20 6C 69 6E 65 3D 6C 69 6E    t=0;..  line=lin
0161A0:  65 31 3B 0D 0A 20 20 69 73 74 61 72 74 3D 69 3B    e1;..  istart=i;
0161B0:  0D 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B    ..  while(YES) {
0161C0:  0D 0A 20 20 20 20 69 66 28 70 6F 6C 6C 28 59 45    ..    if(poll(YE
0161D0:  53 29 3D 3D 45 53 43 29 20 72 65 74 75 72 6E 20    S)==ESC) return 
0161E0:  28 73 74 61 74 75 73 3D 45 52 52 29 3B 0D 0A 20    (status=ERR);.. 
0161F0:  20 20 20 6B 3D 67 65 74 69 6E 64 28 6C 69 6E 65       k=getind(line
016200:  65 6C 69 6E 6B 28 6B 34 2C 20 6B 31 2C 20 6B 32    elink(k4, k1, k2
016210:  2C 20 6B 35 29 3B 0D 0A 20 20 72 65 6C 69 6E 6B    , k5);..  relink
016220:  28 6B 32 2C 20 6B 35 2C 20 6B 34 2C 20 6B 31 29    (k2, k5, k4, k1)
016230:  3B 0D 0A 20 20 72 65 74 75 72 6E 20 4F 4B 3B 0D    ;..  return OK;.
016240:  0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67    .  }..../*..** g
016250:  65 74 72 68 73 20 2D 2D 20 67 65 74 20 73 75 62    etrhs -- get sub
016260:  73 74 69 74 75 74 69 6F 6E 20 73 74 72 69 6E 67    stitution string
016270:  20 66 6F 72 20 22 73 22 20 63 6F 6D 6D 61 6E 64     for "s" command
016280:  0D 0A 2A 2F 0D 0A 67 65 74 72 68 73 28 6C 69 6E    ..*/..getrhs(lin
016290:  2C 20 69 2C 20 73 75 62 2C 20 67 66 6C 61 67 29    , i, sub, gflag)
0162A0:  20 63 68 61 72 20 6C 69 6E 5B 5D 2C 20 73 75 62     char lin[], sub
0162B0:  5B 5D 3B 20 69 6E 74 20 2A 69 2C 20 2A 67 66 6C    []; int *i, *gfl
0162C0:  61 67 3B 20 7B 0D 0A 20 20 69 66 28 6C 69 6E 5B    ag; {..  if(lin[
0162D0:  2A 69 5D 3D 3D 4E 55 4C 4C 29 20 72 65 74 75 72    *i]==NULL) retur
0162E0:  6E 20 45 52 52 3B 0D 0A 20 20 69 66 28 6C 69 6E    n ERR;..  if(lin
0162F0:  5B 2A 69 2B 31 5D 3D 3D 4E 55 4C 4C 29 20 72 65    [*i+1]==NULL) re
016300:  74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 2A 69 3D    turn ERR;..  *i=
016310:  6D 61 6B 73 75 62 28 6C 69 6E 2C 20 2A 69 2B 31    maksub(lin, *i+1
016320:  2C 20 6C 69 6E 5B 2A 69 5D 2C 20 73 75 62 29 3B    , lin[*i], sub);
016330:  0D 0A 20 20 69 66 28 2A 69 3D 3D 45 52 52 29 20    ..  if(*i==ERR) 
016340:  72 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 69    return ERR;..  i
016350:  66 28 73 61 6D 65 28 6C 69 6E 5B 2A 69 2B 31 5D    f(same(lin[*i+1]
016360:  2C 20 47 4C 4F 42 41 4C 29 29 20 7B 0D 0A 20 20    , GLOBAL)) {..  
016370:  20 20 2A 69 20 3D 20 2A 69 20 2B 20 31 3B 0D 0A      *i = *i + 1;..
016380:  20 20 20 20 2A 67 66 6C 61 67 3D 59 45 53 3B 0D        *gflag=YES;.
016390:  0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 2A    .    }..  else *
0163A0:  67 66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20 72 65 74    gflag=NO;..  ret
0163B0:  75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D 0A 0D 0A    urn OK;..  }....
0163C0:  2F 2A 0D 0A 2A 2A 20 73 75 62 73 74 20 2D 2D 20    /*..** subst -- 
0163D0:  73 75 62 73 74 69 74 75 74 65 20 22 73 75 62 22    substitute "sub"
0163E0:  20 66 6F 72 20 6F 63 63 75 72 72 65 6E 63 65 73     for occurrences
0163F0:  20 6F 66 20 70 61 74 74 65 72 6E 0D 0A 2A 2F 0D     of pattern..*/.
016400:  29 3B 0D 0A 20 20 20 20 69 66 28 62 75 66 5B 6B    );..    if(buf[k
016410:  2B 4D 41 52 4B 5D 3D 3D 59 45 53 29 20 7B 0D 0A    +MARK]==YES) {..
016420:  20 20 20 20 20 20 62 75 66 5B 6B 2B 4D 41 52 4B          buf[k+MARK
016430:  5D 3D 4E 4F 3B 0D 0A 20 20 20 20 20 20 63 75 72    ]=NO;..      cur
016440:  73 61 76 3D 63 75 72 6C 6E 3D 6C 69 6E 65 3B 0D    sav=curln=line;.
016450:  0A 20 20 20 20 20 20 69 3D 69 73 74 61 72 74 3B    .      i=istart;
016460:  0D 0A 20 20 20 20 20 20 69 66 28 67 65 74 6C 73    ..      if(getls
016470:  74 28 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20    t()==OK) {..    
016480:  20 20 20 20 69 66 28 64 6F 63 6D 64 28 59 45 53        if(docmd(YES
016490:  29 3D 3D 4F 4B 29 20 63 6F 75 6E 74 3D 30 3B 0D    )==OK) count=0;.
0164A0:  0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    .        }..    
0164B0:  20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 7B 0D      }..    else {.
0164C0:  0A 20 20 20 20 20 20 6C 69 6E 65 3D 6E 65 78 74    .      line=next
0164D0:  6C 6E 28 6C 69 6E 65 29 3B 0D 0A 20 20 20 20 20    ln(line);..     
0164E0:  20 2B 2B 63 6F 75 6E 74 3B 0D 0A 20 20 20 20 20     ++count;..     
0164F0:  20 7D 0D 0A 20 20 20 20 69 66 28 28 63 6F 75 6E     }..    if((coun
016500:  74 3E 6C 61 73 74 6C 6E 29 7C 28 73 74 61 74 75    t>lastln)|(statu
016510:  73 21 3D 4F 4B 29 29 20 62 72 65 61 6B 3B 0D 0A    s!=OK)) break;..
016520:  20 20 20 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20        }..  return 
016530:  73 74 61 74 75 73 3B 0D 0A 20 20 7D 0D 0A 0D 0A    status;..  }....
016540:  2F 2A 0D 0A 2A 2A 20 61 70 70 65 6E 64 20 2D 2D    /*..** append --
016550:  20 61 70 70 65 6E 64 20 6C 69 6E 65 73 20 61 66     append lines af
016560:  74 65 72 20 6C 6E 0D 0A 2A 2F 0D 0A 61 70 70 65    ter ln..*/..appe
016570:  6E 64 28 6C 6E 2C 20 67 6C 6F 62 29 20 69 6E 74    nd(ln, glob) int
016580:  20 6C 6E 2C 20 67 6C 6F 62 3B 20 7B 0D 0A 20 20     ln, glob; {..  
016590:  69 6E 74 20 73 74 61 74 3B 0D 0A 20 20 69 66 28    int stat;..  if(
0165A0:  67 6C 6F 62 3D 3D 59 45 53 29 20 72 65 74 75 72    glob==YES) retur
0165B0:  6E 20 45 52 52 3B 0D 0A 20 20 63 75 72 6C 6E 3D    n ERR;..  curln=
0165C0:  6C 6E 3B 0D 0A 20 20 73 74 61 74 3D 4E 4F 53 54    ln;..  stat=NOST
0165D0:  41 54 55 53 3B 0D 0A 20 20 77 68 69 6C 65 28 73    ATUS;..  while(s
0165E0:  74 61 74 3D 3D 4E 4F 53 54 41 54 55 53 29 20 7B    tat==NOSTATUS) {
0165F0:  0D 0A 20 20 20 20 66 70 75 74 63 28 27 20 27 2C    ..    fputc(' ',
016600:  0A 73 75 62 73 74 28 73 75 62 2C 20 67 66 6C 61    .subst(sub, gfla
016610:  67 29 20 63 68 61 72 20 73 75 62 5B 5D 3B 20 69    g) char sub[]; i
016620:  6E 74 20 67 66 6C 61 67 3B 20 7B 0D 0A 20 20 63    nt gflag; {..  c
016630:  68 61 72 20 6E 65 77 5B 4D 41 58 4C 49 4E 45 5D    har new[MAXLINE]
016640:  3B 0D 0A 20 20 69 6E 74 20 6A 2C 20 6B 2C 20 6C    ;..  int j, k, l
016650:  61 73 74 6E 2C 20 6C 69 6E 65 2C 20 6E 2C 20 73    astn, line, n, s
016660:  75 62 62 65 64 3B 0D 0A 20 20 69 66 28 6C 69 6E    ubbed;..  if(lin
016670:  65 31 3C 3D 30 29 20 72 65 74 75 72 6E 20 45 52    e1<=0) return ER
016680:  52 3B 0D 0A 20 20 6C 69 6E 65 3D 6C 69 6E 65 31    R;..  line=line1
016690:  3B 0D 0A 20 20 77 68 69 6C 65 28 6C 69 6E 65 3C    ;..  while(line<
0166A0:  3D 6C 69 6E 65 32 29 20 7B 0D 0A 20 20 20 20 69    =line2) {..    i
0166B0:  66 28 70 6F 6C 6C 28 59 45 53 29 3D 3D 45 53 43    f(poll(YES)==ESC
0166C0:  29 20 72 65 74 75 72 6E 20 28 45 52 52 29 3B 0D    ) return (ERR);.
0166D0:  0A 20 20 20 20 6A 3D 30 3B 0D 0A 20 20 20 20 73    .    j=0;..    s
0166E0:  75 62 62 65 64 3D 4E 4F 3B 0D 0A 20 20 20 20 67    ubbed=NO;..    g
0166F0:  65 74 74 78 74 28 6C 69 6E 65 29 3B 0D 0A 20 20    ettxt(line);..  
016700:  20 20 6C 61 73 74 6E 3D 2D 31 3B 0D 0A 20 20 20      lastn=-1;..   
016710:  20 6B 3D 30 3B 0D 0A 20 20 20 20 77 68 69 6C 65     k=0;..    while
016720:  28 59 45 53 29 20 7B 0D 0A 20 20 20 20 20 20 69    (YES) {..      i
016730:  66 28 28 67 66 6C 61 67 3D 3D 59 45 53 29 7C 28    f((gflag==YES)|(
016740:  73 75 62 62 65 64 3D 3D 4E 4F 29 29 20 6E 3D 61    subbed==NO)) n=a
016750:  6D 61 74 63 68 28 74 78 74 2C 20 6B 2C 20 70 61    match(txt, k, pa
016760:  74 29 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20    t);..      else 
016770:  6E 3D 2D 31 3B 0D 0A 20 20 20 20 20 20 69 66 28    n=-1;..      if(
016780:  28 6E 3E 3D 30 29 26 28 6C 61 73 74 6E 21 3D 6E    (n>=0)&(lastn!=n
016790:  29 29 20 7B 20 20 20 20 2F 2A 2A 20 72 65 70 6C    )) {    /** repl
0167A0:  61 63 65 20 6D 61 74 63 68 65 64 20 74 65 78 74    ace matched text
0167B0:  20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 73 75     **/..        su
0167C0:  62 62 65 64 3D 59 45 53 3B 0D 0A 20 20 20 20 20    bbed=YES;..     
0167D0:  20 20 20 63 61 74 73 75 62 28 74 78 74 2C 20 6B       catsub(txt, k
0167E0:  2C 20 6E 2C 20 73 75 62 2C 20 6E 65 77 2C 20 26    , n, sub, new, &
0167F0:  6A 2C 20 4D 41 58 4C 49 4E 45 29 3B 0D 0A 20 20    j, MAXLINE);..  
016800:  20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 69     stderr);..    i
016810:  66 28 66 67 65 74 73 28 6C 69 6E 2C 20 4D 41 58    f(fgets(lin, MAX
016820:  4C 49 4E 45 2C 20 73 74 64 69 6E 29 3D 3D 4E 55    LINE, stdin)==NU
016830:  4C 4C 29 20 73 74 61 74 3D 45 4F 46 3B 0D 0A 20    LL) stat=EOF;.. 
016840:  20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 20       else {..     
016850:  20 74 72 69 6D 28 6C 69 6E 29 3B 0D 0A 20 20 20     trim(lin);..   
016860:  20 20 20 69 66 28 28 6C 69 6E 5B 30 5D 3D 3D 50       if((lin[0]==P
016870:  45 52 49 4F 44 29 26 28 6C 69 6E 5B 31 5D 3D 3D    ERIOD)&(lin[1]==
016880:  4E 55 4C 4C 29 29 20 73 74 61 74 3D 4F 4B 3B 0D    NULL)) stat=OK;.
016890:  0A 20 20 20 20 20 20 65 6C 73 65 20 69 66 28 69    .      else if(i
0168A0:  6E 6A 65 63 74 28 6C 69 6E 29 3D 3D 45 52 52 29    nject(lin)==ERR)
0168B0:  20 73 74 61 74 3D 45 52 52 3B 0D 0A 20 20 20 20     stat=ERR;..    
0168C0:  20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65      }..    }..  re
0168D0:  74 75 72 6E 20 73 74 61 74 3B 0D 0A 20 20 7D 0D    turn stat;..  }.
0168E0:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6B 69 6C 6C 20 2D    .../*..** kill -
0168F0:  2D 20 64 65 6C 65 74 65 20 6C 69 6E 65 73 20 66    - delete lines f
016900:  72 6F 6D 20 74 68 72 6F 75 67 68 20 74 6F 0D 0A    rom through to..
016910:  2A 2F 0D 0A 6B 69 6C 6C 28 66 72 6F 6D 2C 20 74    */..kill(from, t
016920:  6F 29 20 69 6E 74 20 66 72 6F 6D 2C 20 74 6F 3B    o) int from, to;
016930:  20 7B 0D 0A 20 20 69 6E 74 20 6B 31 2C 20 6B 32     {..  int k1, k2
016940:  3B 0D 0A 20 20 69 66 28 28 66 72 6F 6D 3D 3D 31    ;..  if((from==1
016950:  29 26 28 74 6F 3D 3D 6C 61 73 74 6C 6E 29 29 20    )&(to==lastln)) 
016960:  7B 0D 0A 20 20 20 20 73 65 74 62 75 66 28 29 3B    {..    setbuf();
016970:  0D 0A 20 20 20 20 75 70 64 74 66 6C 61 67 3D 4E    ..    updtflag=N
016980:  4F 3B 0D 0A 20 20 20 20 72 65 74 75 72 6E 20 28    O;..    return (
016990:  73 74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 20 20    status=OK);..   
0169A0:  20 7D 0D 0A 20 20 69 66 28 66 72 6F 6D 3C 3D 30     }..  if(from<=0
0169B0:  29 20 72 65 74 75 72 6E 20 28 73 74 61 74 75 73    ) return (status
0169C0:  3D 45 52 52 29 3B 0D 0A 20 20 6B 32 3D 67 65 74    =ERR);..  k2=get
0169D0:  69 6E 64 28 6E 65 78 74 6C 6E 28 74 6F 29 29 3B    ind(nextln(to));
0169E0:  0D 0A 20 20 6B 31 3D 67 65 74 69 6E 64 28 70 72    ..  k1=getind(pr
0169F0:  65 76 6C 6E 28 66 72 6F 6D 29 29 3B 0D 0A 20 20    evln(from));..  
016A00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
016A10:  13 00 01 00 02 09 52 E5 13 00 41 02 00 00 00 02    ......R...A.....
016A20:  13 00 46 02 00 00 00 02 13 00 42 02 00 00 00 02    ..F.......B.....
016A30:  13 00 47 02 00 00 00 02 13 00 43 02 00 00 00 02    ..G.......C.....
016A40:  13 00 48 02 00 00 00 02 13 00 44 02 00 00 00 02    ..H.......D.....
016A50:  13 00 49 02 00 00 00 02 13 00 45 02 00 00 00 02    ..I.......E.....
016A60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016A70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016A80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016A90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016AF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
016B00:  20 20 20 20 20 20 6C 61 73 74 6E 3D 6E 3B 0D 0A          lastn=n;..
016B10:  20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20            }..     
016B20:  20 69 66 28 74 78 74 5B 6B 5D 3D 3D 4E 55 4C 4C     if(txt[k]==NULL
016B30:  29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20    ) break;..      
016B40:  69 66 28 28 6E 3D 3D 2D 31 29 7C 28 6E 3D 3D 6B    if((n==-1)|(n==k
016B50:  29 29 20 7B 20 20 20 20 20 20 20 2F 2A 2A 20 6E    )) {       /** n
016B60:  6F 20 6D 61 74 63 68 20 6F 72 20 6E 75 6C 6C 20    o match or null 
016B70:  6D 61 74 63 68 20 2A 2A 2F 0D 0A 20 20 20 20 20    match **/..     
016B80:  20 20 20 61 64 64 73 65 74 28 74 78 74 5B 6B 5D       addset(txt[k]
016B90:  2C 20 6E 65 77 2C 20 26 6A 2C 20 4D 41 58 4C 49    , new, &j, MAXLI
016BA0:  4E 45 29 3B 0D 0A 20 20 20 20 20 20 20 20 2B 2B    NE);..        ++
016BB0:  6B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20    k;..        }.. 
016BC0:  20 20 20 20 20 65 6C 73 65 20 6B 3D 6E 3B 20 20         else k=n;  
016BD0:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                    
016BE0:  2F 2A 2A 20 73 6B 69 70 20 6D 61 74 63 68 65 64    /** skip matched
016BF0:  20 74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20 20     text **/..     
016C00:  20 7D 0D 0A 20 20 20 20 69 66 28 73 75 62 62 65     }..    if(subbe
016C10:  64 3D 3D 59 45 53 29 20 7B 0D 0A 20 20 20 20 20    d==YES) {..     
016C20:  20 69 66 28 61 64 64 73 65 74 28 4E 55 4C 4C 2C     if(addset(NULL,
016C30:  20 6E 65 77 2C 20 26 6A 2C 20 4D 41 58 4C 49 4E     new, &j, MAXLIN
016C40:  45 29 3D 3D 4E 4F 29 20 72 65 74 75 72 6E 20 45    E)==NO) return E
016C50:  52 52 3B 0D 0A 20 20 20 20 20 20 63 75 72 6C 6E    RR;..      curln
016C60:  3D 70 72 65 76 6C 6E 28 6C 69 6E 65 29 3B 0D 0A    =prevln(line);..
016C70:  20 20 20 20 20 20 69 66 28 69 6E 6A 65 63 74 28          if(inject(
016C80:  6E 65 77 29 3D 3D 45 52 52 29 20 7B 0D 0A 20 20    new)==ERR) {..  
016C90:  20 20 20 20 20 20 63 75 72 6C 6E 3D 6C 69 6E 65          curln=line
016CA0:  3B 0D 0A 20 20 20 20 20 20 20 20 72 65 74 75 72    ;..        retur
016CB0:  6E 20 45 52 52 3B 0D 0A 20 20 20 20 20 20 20 20    n ERR;..        
016CC0:  7D 0D 0A 20 20 20 20 20 20 6B 69 6C 6C 28 63 75    }..      kill(cu
016CD0:  72 6C 6E 2B 31 2C 20 63 75 72 6C 6E 2B 31 29 3B    rln+1, curln+1);
016CE0:  0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2B    ..      }..    +
016CF0:  2B 6C 69 6E 65 3B 0D 0A 20 20 20 20 7D 0D 0A 20    +line;..    }.. 
016D00:  3B 0D 0A 20 20 72 65 74 75 72 6E 20 4F 4B 3B 0D    ;..  return OK;.
016D10:  0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 65    .  }..../*..** e
016D20:  6E 74 65 72 20 2D 2D 20 65 6E 74 65 72 20 61 20    nter -- enter a 
016D30:  6E 65 77 20 66 69 6C 65 0D 0A 2A 2F 0D 0A 65 6E    new file..*/..en
016D40:  74 65 72 28 6E 61 6D 65 29 20 63 68 61 72 20 6E    ter(name) char n
016D50:  61 6D 65 5B 5D 3B 20 7B 0D 0A 20 20 69 6E 74 20    ame[]; {..  int 
016D60:  65 72 72 3B 0D 0A 20 20 65 72 72 3D 64 6F 72 65    err;..  err=dore
016D70:  61 64 28 30 2C 20 6E 61 6D 65 29 3B 0D 0A 20 20    ad(0, name);..  
016D80:  69 66 28 76 69 65 77 29 20 64 6F 70 72 6E 74 28    if(view) doprnt(
016D90:  31 2C 20 31 2C 20 4E 4F 29 3B 0D 0A 20 20 63 75    1, 1, NO);..  cu
016DA0:  72 6C 6E 3D 31 3B 0D 0A 20 20 75 70 64 74 66 6C    rln=1;..  updtfl
016DB0:  61 67 3D 4E 4F 3B 0D 0A 20 20 72 65 74 75 72 6E    ag=NO;..  return
016DC0:  20 65 72 72 3B 0D 0A 20 20 7D 0D 0A 0D 0A 1A 1A     err;..  }......
016DD0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
016DE0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
016DF0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
016E00:  66 6C 6F 77 20 68 61 6E 64 6C 65 64 20 69 6E 20    flow handled in 
016E10:  64 6F 63 6D 64 28 29 20 2A 2F 0D 0A 20 20 20 20    docmd() */..    
016E20:  20 20 63 75 72 6C 6E 20 3D 20 6A 20 2D 20 63 6F      curln = j - co
016E30:  6E 74 65 78 74 3B 0D 0A 20 20 20 20 20 20 72 65    ntext;..      re
016E40:  74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 20 20 20 20    turn OK;..      
016E50:  7D 0D 0A 20 20 20 20 69 66 28 28 6A 3D 3D 74 6F    }..    if((j==to
016E60:  29 26 28 67 6C 6F 62 3D 3D 4E 4F 29 29 20 70 72    )&(glob==NO)) pr
016E70:  65 66 3D 43 4C 46 4C 41 47 3B 0D 0A 20 20 20 20    ef=CLFLAG;..    
016E80:  65 6C 73 65 20 70 72 65 66 3D 27 20 27 3B 0D 0A    else pref=' ';..
016E90:  20 20 20 20 67 65 74 74 78 74 28 6A 2B 2B 29 3B        gettxt(j++);
016EA0:  0D 0A 20 20 20 20 66 70 75 74 63 28 70 72 65 66    ..    fputc(pref
016EB0:  2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20    , stdout);..    
016EC0:  66 70 75 74 73 28 74 78 74 2C 20 73 74 64 6F 75    fputs(txt, stdou
016ED0:  74 29 3B 0D 0A 20 20 20 20 66 70 75 74 63 28 27    t);..    fputc('
016EE0:  5C 6E 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20    \n', stdout);.. 
016EF0:  20 20 20 7D 0D 0A 20 20 63 75 72 6C 6E 3D 74 6F       }..  curln=to
016F00:  20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D     return OK;..  }
016F10:  0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 66 6E    ..../*..** getfn
016F20:  20 2D 2D 20 67 65 74 20 66 69 6C 65 20 6E 61 6D     -- get file nam
016F30:  65 20 66 72 6F 6D 20 6C 69 6E 5B 69 5D 0D 0A 2A    e from lin[i]..*
016F40:  2F 0D 0A 67 65 74 66 6E 28 6C 69 6E 2C 20 69 2C    /..getfn(lin, i,
016F50:  20 66 69 6C 65 2C 20 6D 61 78 29 20 63 68 61 72     file, max) char
016F60:  20 6C 69 6E 5B 5D 2C 20 66 69 6C 65 5B 5D 3B 20     lin[], file[]; 
016F70:  69 6E 74 20 69 2C 20 6D 61 78 3B 20 7B 0D 0A 20    int i, max; {.. 
016F80:  20 69 6E 74 20 6A 2C 20 6B 2C 20 73 74 61 74 3B     int j, k, stat;
016F90:  0D 0A 20 20 73 74 61 74 3D 45 52 52 3B 0D 0A 20    ..  stat=ERR;.. 
016FA0:  20 69 66 28 6C 69 6E 5B 69 2B 31 5D 3D 3D 42 4C     if(lin[i+1]==BL
016FB0:  41 4E 4B 29 20 7B 0D 0A 20 20 20 20 6A 3D 69 2B    ANK) {..    j=i+
016FC0:  32 3B 20 20 2F 2A 2A 20 67 65 74 20 6E 65 77 20    2;  /** get new 
016FD0:  66 69 6C 65 20 6E 61 6D 65 20 2A 2A 2F 0D 0A 20    file name **/.. 
016FE0:  20 20 20 73 6B 69 70 62 6C 28 6C 69 6E 2C 20 26       skipbl(lin, &
016FF0:  6A 29 3B 0D 0A 20 20 20 20 6B 3D 30 3B 0D 0A 20    j);..    k=0;.. 
017000:  20 20 20 77 68 69 6C 65 28 66 69 6C 65 5B 6B 2B       while(file[k+
017010:  2B 5D 3D 6C 69 6E 5B 6A 2B 2B 5D 29 20 69 66 28    +]=lin[j++]) if(
017020:  2D 2D 6D 61 78 20 3C 20 31 29 20 62 72 65 61 6B    --max < 1) break
017030:  3B 0D 0A 20 20 20 20 69 66 28 28 6B 20 3E 20 31    ;..    if((k > 1
017040:  29 26 28 6D 61 78 20 3E 20 30 29 29 20 73 74 61    )&(max > 0)) sta
017050:  74 3D 4F 4B 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20    t=OK;..    }..  
017060:  65 6C 73 65 20 69 66 28 28 6C 69 6E 5B 69 2B 31    else if((lin[i+1
017070:  5D 3D 3D 4E 55 4C 4C 29 26 28 73 61 76 66 69 6C    ]==NULL)&(savfil
017080:  5B 30 5D 21 3D 4E 55 4C 4C 29 29 20 7B 0D 0A 20    [0]!=NULL)) {.. 
017090:  20 20 20 73 63 6F 70 79 28 73 61 76 66 69 6C 2C       scopy(savfil,
0170A0:  20 30 2C 20 66 69 6C 65 2C 20 30 29 3B 0D 0A 20     0, file, 0);.. 
0170B0:  20 20 20 73 74 61 74 3D 4F 4B 3B 0D 0A 20 20 20       stat=OK;..   
0170C0:  20 7D 0D 0A 20 20 69 66 28 28 73 74 61 74 3D 3D     }..  if((stat==
0170D0:  4F 4B 29 26 28 73 61 76 66 69 6C 5B 30 5D 3D 3D    OK)&(savfil[0]==
0170E0:  4E 55 4C 4C 29 29 0D 0A 20 20 20 20 73 63 6F 70    NULL))..    scop
0170F0:  79 28 66 69 6C 65 2C 20 30 2C 20 73 61 76 66 69    y(file, 0, savfi
017100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0171A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0171B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0171C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0171D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0171E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0171F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0172A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0172B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0172C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0172D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0172E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0172F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
017300:  6C 2C 20 30 29 3B 20 20 2F 2A 2A 20 73 61 76 65    l, 0);  /** save
017310:  20 69 66 20 6E 6F 20 6F 6C 64 20 6F 6E 65 20 2A     if no old one *
017320:  2A 2F 0D 0A 20 20 72 65 74 75 72 6E 20 73 74 61    */..  return sta
017330:  74 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A    t;..  }..../*..*
017340:  2A 20 64 6F 77 72 69 74 20 2D 2D 20 77 72 69 74    * dowrit -- writ
017350:  65 20 22 66 72 6F 6D 22 20 74 68 72 6F 75 67 68    e "from" through
017360:  20 22 74 6F 22 20 69 6E 74 6F 20 66 69 6C 65 0D     "to" into file.
017370:  0A 2A 2F 0D 0A 64 6F 77 72 69 74 28 66 72 6F 6D    .*/..dowrit(from
017380:  2C 20 74 6F 2C 20 66 69 6C 65 29 20 69 6E 74 20    , to, file) int 
017390:  66 72 6F 6D 2C 20 74 6F 3B 20 63 68 61 72 20 66    from, to; char f
0173A0:  69 6C 65 5B 5D 3B 20 7B 0D 0A 20 20 63 68 61 72    ile[]; {..  char
0173B0:  20 74 6D 70 5B 4D 41 58 46 4E 5D 2C 20 2A 70 74     tmp[MAXFN], *pt
0173C0:  72 3B 0D 0A 20 20 69 6E 74 20 66 64 2C 20 6C 69    r;..  int fd, li
0173D0:  6E 65 3B 0D 0A 0D 0A 20 20 73 74 72 63 70 79 28    ne;....  strcpy(
0173E0:  74 6D 70 2C 20 66 69 6C 65 29 3B 0D 0A 20 20 69    tmp, file);..  i
0173F0:  66 28 28 70 74 72 20 3D 20 73 74 72 63 68 72 28    f((ptr = strchr(
017400:  74 6D 70 2C 20 27 2E 27 29 29 20 3D 3D 20 30 29    tmp, '.')) == 0)
017410:  20 70 74 72 20 3D 20 74 6D 70 20 2B 20 73 74 72     ptr = tmp + str
017420:  6C 65 6E 28 74 6D 70 29 3B 0D 0A 20 20 73 74 72    len(tmp);..  str
017430:  63 70 79 28 70 74 72 2C 20 22 2E 24 24 24 22 29    cpy(ptr, ".$$$")
017440:  3B 0D 0A 20 20 72 65 6E 61 6D 65 28 66 69 6C 65    ;..  rename(file
017450:  2C 20 74 6D 70 29 3B 0D 0A 0D 0A 20 20 69 66 28    , tmp);....  if(
017460:  28 66 64 3D 66 6F 70 65 6E 28 66 69 6C 65 2C 20    (fd=fopen(file, 
017470:  22 77 22 29 29 3D 3D 4E 55 4C 4C 29 20 72 65 74    "w"))==NULL) ret
017480:  75 72 6E 20 45 52 52 3B 0D 0A 20 20 6C 69 6E 65    urn ERR;..  line
017490:  3D 66 72 6F 6D 3B 0D 0A 20 20 77 68 69 6C 65 28    =from;..  while(
0174A0:  6C 69 6E 65 3C 3D 74 6F 29 20 7B 0D 0A 20 20 20    line<=to) {..   
0174B0:  20 66 70 75 74 73 28 62 75 66 2B 67 65 74 69 6E     fputs(buf+getin
0174C0:  64 28 6C 69 6E 65 2B 2B 29 2B 54 45 58 54 2C 20    d(line++)+TEXT, 
0174D0:  66 64 29 3B 0D 0A 20 20 20 20 69 66 28 66 70 75    fd);..    if(fpu
0174E0:  74 63 28 27 5C 6E 27 2C 20 66 64 29 3D 3D 45 4F    tc('\n', fd)==EO
0174F0:  46 29 20 7B 0D 0A 20 20 20 20 20 20 66 70 75 74    F) {..      fput
017500:  2F 2A 0D 0A 2A 2A 20 65 74 62 2E 63 20 2D 2D 20    /*..** etb.c -- 
017510:  72 65 70 6C 61 63 65 20 62 6C 61 6E 6B 73 20 77    replace blanks w
017520:  69 74 68 20 74 61 62 73 20 61 6E 64 20 62 6C 61    ith tabs and bla
017530:  6E 6B 73 0D 0A 2A 2A 0D 0A 2A 2A 20 43 6F 70 79    nks..**..** Copy
017540:  72 69 67 68 74 20 31 39 38 32 20 4A 2E 20 45 2E    right 1982 J. E.
017550:  20 48 65 6E 64 72 69 78 2E 20 20 41 6C 6C 20 72     Hendrix.  All r
017560:  69 67 68 74 73 20 72 65 73 65 72 76 65 64 2E 0D    ights reserved..
017570:  0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73    .*/..#include <s
017580:  74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64    tdio.h>..#includ
017590:  65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65    e "tools.h"..#de
0175A0:  66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 23    fine NOCCARGC..#
0175B0:  64 65 66 69 6E 65 20 4D 41 58 4C 49 4E 31 20 28    define MAXLIN1 (
0175C0:  4D 41 58 4C 49 4E 45 2B 31 29 0D 0A 6D 61 69 6E    MAXLINE+1)..main
0175D0:  28 61 72 67 63 2C 20 61 72 67 76 29 20 69 6E 74    (argc, argv) int
0175E0:  20 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D     argc, *argv; {.
0175F0:  0A 20 20 63 68 61 72 20 63 2C 20 74 61 62 73 5B    .  char c, tabs[
017600:  4D 41 58 4C 49 4E 31 5D 3B 0D 0A 20 20 69 6E 74    MAXLIN1];..  int
017610:  20 63 6F 6C 2C 20 6E 65 77 63 6F 6C 3B 0D 0A 20     col, newcol;.. 
017620:  20 61 75 78 62 75 66 28 73 74 64 69 6E 2C 20 34     auxbuf(stdin, 4
017630:  30 39 36 29 3B 0D 0A 20 20 69 66 28 73 65 74 74    096);..  if(sett
017640:  61 62 28 74 61 62 73 2C 20 61 72 67 63 2C 20 61    ab(tabs, argc, a
017650:  72 67 76 29 3D 3D 45 52 52 29 20 7B 0D 0A 20 20    rgv)==ERR) {..  
017660:  20 20 66 70 75 74 73 28 22 75 73 61 67 65 3A 20      fputs("usage: 
017670:  45 54 42 20 5B 23 5D 2E 2E 2E 20 5B 2B 23 5D 5C    ETB [#]... [+#]\
017680:  6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20    n", stderr);..  
017690:  20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20      abort(7);..   
0176A0:  20 7D 0D 0A 20 20 63 6F 6C 3D 31 3B 0D 0A 20 20     }..  col=1;..  
0176B0:  77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20    while(YES) {..  
0176C0:  20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20      poll(YES);..  
0176D0:  20 20 6E 65 77 63 6F 6C 3D 63 6F 6C 3B 0D 0A 20      newcol=col;.. 
0176E0:  20 20 20 77 68 69 6C 65 28 28 63 3D 67 65 74 63       while((c=getc
0176F0:  68 61 72 28 29 29 3D 3D 27 20 27 29 20 7B 0D 0A    har())==' ') {..
017700:  73 28 22 77 72 69 74 65 20 22 2C 20 73 74 64 65    s("write ", stde
017710:  72 72 29 3B 0D 0A 20 20 20 20 20 20 66 63 6C 6F    rr);..      fclo
017720:  73 65 28 66 64 29 3B 0D 0A 20 20 20 20 20 20 72    se(fd);..      r
017730:  65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 20 20    eturn ERR;..    
017740:  20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66      }..    }..  if
017750:  28 66 63 6C 6F 73 65 28 66 64 29 29 20 72 65 74    (fclose(fd)) ret
017760:  75 72 6E 20 45 52 52 3B 0D 0A 20 20 75 6E 6C 69    urn ERR;..  unli
017770:  6E 6B 28 74 6D 70 29 3B 0D 0A 20 20 75 70 64 74    nk(tmp);..  updt
017780:  66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20 72 65 74 75    flag=NO;..  retu
017790:  72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F    rn OK;..  }..../
0177A0:  2A 0D 0A 2A 2A 20 64 6F 70 72 6E 74 20 2D 2D 20    *..** doprnt -- 
0177B0:  70 72 69 6E 74 20 6C 69 6E 65 73 20 66 72 6F 6D    print lines from
0177C0:  20 74 68 72 6F 75 67 68 20 74 6F 0D 0A 2A 2F 0D     through to..*/.
0177D0:  0A 64 6F 70 72 6E 74 28 66 72 6F 6D 2C 20 74 6F    .doprnt(from, to
0177E0:  2C 20 67 6C 6F 62 29 20 69 6E 74 20 66 72 6F 6D    , glob) int from
0177F0:  2C 20 74 6F 2C 20 67 6C 6F 62 3B 20 7B 0D 0A 20    , to, glob; {.. 
017800:  20 69 6E 74 20 6A 2C 20 6B 3B 0D 0A 20 20 63 68     int j, k;..  ch
017810:  61 72 20 70 72 65 66 3B 0D 0A 20 20 69 66 28 66    ar pref;..  if(f
017820:  72 6F 6D 3C 3D 30 29 20 72 65 74 75 72 6E 20 4F    rom<=0) return O
017830:  4B 3B 0D 0A 20 20 69 66 28 73 61 6D 65 28 6C 69    K;..  if(same(li
017840:  6E 5B 69 5D 2C 20 50 52 49 4E 54 29 29 20 7B 0D    n[i], PRINT)) {.
017850:  0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 69    .    ++i;..    i
017860:  66 28 28 6C 69 6E 5B 69 5D 3E 3D 27 30 27 29 26    f((lin[i]>='0')&
017870:  28 6C 69 6E 5B 69 5D 3C 3D 27 39 27 29 29 20 7B    (lin[i]<='9')) {
017880:  0D 0A 20 20 20 20 20 20 69 66 28 6C 69 6E 5B 69    ..      if(lin[i
017890:  2B 31 5D 3D 3D 4E 55 4C 4C 29 20 63 6F 6E 74 65    +1]==NULL) conte
0178A0:  78 74 3D 6C 69 6E 5B 69 5D 2D 27 30 27 3B 0D 0A    xt=lin[i]-'0';..
0178B0:  20 20 20 20 20 20 65 6C 73 65 20 72 65 74 75 72          else retur
0178C0:  6E 20 45 52 52 3B 0D 0A 20 20 20 20 20 20 7D 0D    n ERR;..      }.
0178D0:  0A 20 20 20 20 65 6C 73 65 20 69 66 28 6C 69 6E    .    else if(lin
0178E0:  5B 69 5D 21 3D 4E 55 4C 4C 29 20 72 65 74 75 72    [i]!=NULL) retur
0178F0:  6E 20 45 52 52 3B 0D 0A 20 20 20 20 7D 0D 0A 20    n ERR;..    }.. 
017900:  20 20 20 20 20 20 2B 2B 6E 65 77 63 6F 6C 3B 0D          ++newcol;.
017910:  0A 20 20 20 20 20 20 69 66 28 74 61 62 70 6F 73    .      if(tabpos
017920:  28 6E 65 77 63 6F 6C 2C 20 74 61 62 73 29 3D 3D    (newcol, tabs)==
017930:  59 45 53 29 20 7B 0D 0A 20 20 20 20 20 20 20 20    YES) {..        
017940:  63 6F 75 74 28 27 5C 74 27 2C 20 73 74 64 6F 75    cout('\t', stdou
017950:  74 29 3B 0D 0A 20 20 20 20 20 20 20 20 63 6F 6C    t);..        col
017960:  3D 6E 65 77 63 6F 6C 3B 0D 0A 20 20 20 20 20 20    =newcol;..      
017970:  20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20      }..      }..  
017980:  20 20 69 66 28 63 3D 3D 27 5C 74 27 29 20 7B 0D      if(c=='\t') {.
017990:  0A 20 20 20 20 20 20 77 68 69 6C 65 28 74 61 62    .      while(tab
0179A0:  70 6F 73 28 6E 65 77 63 6F 6C 2C 20 74 61 62 73    pos(newcol, tabs
0179B0:  29 3D 3D 4E 4F 29 20 2B 2B 6E 65 77 63 6F 6C 3B    )==NO) ++newcol;
0179C0:  0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 5C 74    ..      cout('\t
0179D0:  27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20    ', stdout);..   
0179E0:  20 20 20 63 6F 6C 3D 6E 65 77 63 6F 6C 3B 0D 0A       col=newcol;..
0179F0:  20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D          continue;.
017A00:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 77 68    .      }..    wh
017A10:  69 6C 65 28 63 6F 6C 3C 6E 65 77 63 6F 6C 29 20    ile(col<newcol) 
017A20:  7B 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 20    {..      cout(' 
017A30:  27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20    ', stdout);..   
017A40:  20 20 20 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20       ++col;..     
017A50:  20 7D 0D 0A 20 20 20 20 69 66 28 63 3D 3D 45 4F     }..    if(c==EO
017A60:  46 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 63    F) break;..    c
017A70:  6F 75 74 28 63 2C 20 73 74 64 6F 75 74 29 3B 0D    out(c, stdout);.
017A80:  0A 20 20 20 20 69 66 28 63 3D 3D 27 5C 6E 27 29    .    if(c=='\n')
017A90:  20 63 6F 6C 3D 31 3B 0D 0A 20 20 20 20 65 6C 73     col=1;..    els
017AA0:  65 20 69 66 28 63 3D 3D 27 5C 62 27 29 20 2D 2D    e if(c=='\b') --
017AB0:  63 6F 6C 3B 20 2F 2A 20 6F 6B 20 69 66 20 69 74    col; /* ok if it
017AC0:  20 67 6F 65 73 20 6E 65 67 20 2A 2F 0D 0A 20 20     goes neg */..  
017AD0:  20 20 65 6C 73 65 20 2B 2B 63 6F 6C 3B 0D 0A 20      else ++col;.. 
017AE0:  20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 65 28 73       }..  fclose(s
017AF0:  74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 23 69    tdout);..  }..#i
017B00:  20 69 66 28 28 66 72 6F 6D 3D 3D 74 6F 29 26 28     if((from==to)&(
017B10:  67 6C 6F 62 3D 3D 4E 4F 29 29 20 7B 0D 0A 20 20    glob==NO)) {..  
017B20:  20 20 6A 3D 66 72 6F 6D 2D 63 6F 6E 74 65 78 74      j=from-context
017B30:  3B 0D 0A 20 20 20 20 6B 3D 74 6F 2B 63 6F 6E 74    ;..    k=to+cont
017B40:  65 78 74 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65    ext;..    }..  e
017B50:  6C 73 65 20 7B 0D 0A 20 20 20 20 6A 3D 66 72 6F    lse {..    j=fro
017B60:  6D 3B 0D 0A 20 20 20 20 6B 3D 74 6F 3B 0D 0A 20    m;..    k=to;.. 
017B70:  20 20 20 7D 0D 0A 20 20 69 66 28 6A 20 3C 20 31       }..  if(j < 1
017B80:  29 20 6A 3D 31 3B 0D 0A 20 20 69 66 28 6B 20 3E    ) j=1;..  if(k >
017B90:  20 6C 61 73 74 6C 6E 29 20 6B 3D 6C 61 73 74 6C     lastln) k=lastl
017BA0:  6E 3B 0D 0A 20 20 69 66 28 67 6C 6F 62 3D 3D 4E    n;..  if(glob==N
017BB0:  4F 29 20 66 70 75 74 73 28 43 4C 45 41 52 2C 20    O) fputs(CLEAR, 
017BC0:  73 74 64 6F 75 74 29 3B 0D 0A 20 20 77 68 69 6C    stdout);..  whil
017BD0:  65 28 6A 20 3C 3D 20 6B 29 20 7B 0D 0A 20 20 20    e(j <= k) {..   
017BE0:  20 69 66 28 70 6F 6C 6C 28 59 45 53 29 29 20 7B     if(poll(YES)) {
017BF0:  0D 0A 20 20 20 20 20 20 2F 2A 20 75 6E 64 65 72    ..      /* under
017C00:  66 6C 6F 77 20 68 61 6E 64 6C 65 64 20 69 6E 20    flow handled in 
017C10:  64 6F 63 6D 64 28 29 20 2A 2F 0D 0A 20 20 20 20    docmd() */..    
017C20:  20 20 63 75 72 6C 6E 20 3D 20 6A 20 2D 20 63 6F      curln = j - co
017C30:  6E 74 65 78 74 3B 0D 0A 20 20 20 20 20 20 72 65    ntext;..      re
017C40:  74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 20 20 20 20    turn OK;..      
017C50:  7D 0D 0A 20 20 20 20 69 66 28 28 6A 3D 3D 74 6F    }..    if((j==to
017C60:  29 26 28 67 6C 6F 62 3D 3D 4E 4F 29 29 20 70 72    )&(glob==NO)) pr
017C70:  65 66 3D 43 4C 46 4C 41 47 3B 0D 0A 20 20 20 20    ef=CLFLAG;..    
017C80:  65 6C 73 65 20 70 72 65 66 3D 27 20 27 3B 0D 0A    else pref=' ';..
017C90:  20 20 20 20 67 65 74 74 78 74 28 6A 2B 2B 29 3B        gettxt(j++);
017CA0:  0D 0A 20 20 20 20 66 70 75 74 63 28 70 72 65 66    ..    fputc(pref
017CB0:  2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20    , stdout);..    
017CC0:  66 70 75 74 73 28 74 78 74 2C 20 73 74 64 6F 75    fputs(txt, stdou
017CD0:  74 29 3B 0D 0A 20 20 20 20 66 70 75 74 63 28 27    t);..    fputc('
017CE0:  5C 6E 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20    \n', stdout);.. 
017CF0:  20 20 20 7D 0D 0A 20 20 63 75 72 6C 6E 3D 74 6F       }..  curln=to
017D00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
017D10:  14 00 01 00 02 09 52 E5 14 00 41 02 00 00 00 02    ......R...A.....
017D20:  14 00 46 02 00 00 00 02 14 00 42 02 00 00 00 02    ..F.......B.....
017D30:  14 00 47 02 00 00 00 02 14 00 43 02 00 00 00 02    ..G.......C.....
017D40:  14 00 48 02 00 00 00 02 14 00 44 02 00 00 00 02    ..H.......D.....
017D50:  14 00 49 02 00 00 00 02 14 00 45 02 00 00 00 02    ..I.......E.....
017D60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017D70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017D80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017D90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017DF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
017E00:  6E 63 6C 75 64 65 20 22 73 65 74 74 61 62 2E 63    nclude "settab.c
017E10:  22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 61 62    "..#include "tab
017E20:  70 6F 73 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65    pos.c"..#include
017E30:  20 22 6F 75 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A     "out.c"........
017E40:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
017E50:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
017E60:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
017E70:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
017E80:  20 20 69 66 28 63 3D 3D 27 5C 74 27 29 20 7B 0D      if(c=='\t') {.
017E90:  0A 20 20 20 20 20 20 77 68 69 6C 65 28 74 61 62    .      while(tab
017EA0:  70 6F 73 28 6E 65 77 63 6F 6C 2C 20 74 61 62 73    pos(newcol, tabs
017EB0:  29 3D 3D 4E 4F 29 20 2B 2B 6E 65 77 63 6F 6C 3B    )==NO) ++newcol;
017EC0:  0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 5C 74    ..      cout('\t
017ED0:  27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20    ', stdout);..   
017EE0:  20 20 20 63 6F 6C 3D 6E 65 77 63 6F 6C 3B 0D 0A       col=newcol;..
017EF0:  20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D          continue;.
017F00:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 77 68    .      }..    wh
017F10:  69 6C 65 28 63 6F 6C 3C 6E 65 77 63 6F 6C 29 20    ile(col<newcol) 
017F20:  7B 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 20    {..      cout(' 
017F30:  27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20    ', stdout);..   
017F40:  20 20 20 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20       ++col;..     
017F50:  20 7D 0D 0A 20 20 20 20 69 66 28 63 3D 3D 45 4F     }..    if(c==EO
017F60:  46 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 63    F) break;..    c
017F70:  6F 75 74 28 63 2C 20 73 74 64 6F 75 74 29 3B 0D    out(c, stdout);.
017F80:  0A 20 20 20 20 69 66 28 63 3D 3D 27 5C 6E 27 29    .    if(c=='\n')
017F90:  20 63 6F 6C 3D 31 3B 0D 0A 20 20 20 20 65 6C 73     col=1;..    els
017FA0:  65 20 69 66 28 63 3D 3D 27 5C 62 27 29 20 2D 2D    e if(c=='\b') --
017FB0:  63 6F 6C 3B 20 2F 2A 20 6F 6B 20 69 66 20 69 74    col; /* ok if it
017FC0:  20 67 6F 65 73 20 6E 65 67 20 2A 2F 0D 0A 20 20     goes neg */..  
017FD0:  20 20 65 6C 73 65 20 2B 2B 63 6F 6C 3B 0D 0A 20      else ++col;.. 
017FE0:  20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 65 28 73       }..  fclose(s
017FF0:  74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 23 69    tdout);..  }..#i
018000:  70 61 74 29 3D 3D 45 52 52 29 20 65 72 72 6F 72    pat)==ERR) error
018010:  28 22 70 61 74 74 65 72 6E 20 74 6F 6F 20 6C 6F    ("pattern too lo
018020:  6E 67 5C 6E 22 29 3B 0D 0A 20 20 77 68 69 6C 65    ng\n");..  while
018030:  28 66 67 65 74 73 28 6C 69 6E 2C 20 4D 41 58 4C    (fgets(lin, MAXL
018040:  49 4E 31 2C 20 73 74 64 69 6E 29 21 3D 4E 55 4C    IN1, stdin)!=NUL
018050:  4C 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59    L) {..    poll(Y
018060:  45 53 29 3B 0D 0A 20 20 20 20 74 72 69 6D 28 6C    ES);..    trim(l
018070:  69 6E 29 3B 0D 0A 20 20 20 20 69 66 28 6D 61 74    in);..    if(mat
018080:  63 68 28 6C 69 6E 2C 20 70 61 74 29 29 20 7B 0D    ch(lin, pat)) {.
018090:  0A 20 20 20 20 20 20 69 66 28 61 72 67 69 3D 3D    .      if(argi==
0180A0:  30 29 20 6C 6F 75 74 28 6C 69 6E 2C 20 73 74 64    0) lout(lin, std
0180B0:  6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    out);..      }..
0180C0:  20 20 20 20 65 6C 73 65 20 69 66 28 61 72 67 69        else if(argi
0180D0:  3D 3D 31 29 20 6C 6F 75 74 28 6C 69 6E 2C 20 73    ==1) lout(lin, s
0180E0:  74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 7D 0D 0A    tdout);..    }..
0180F0:  20 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29      fclose(stdout)
018100:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 67 65 74 70 61 74    ;..  }....getpat
018110:  28 61 72 67 2C 20 70 61 74 29 20 63 68 61 72 20    (arg, pat) char 
018120:  61 72 67 5B 5D 2C 20 70 61 74 5B 5D 3B 20 7B 0D    arg[], pat[]; {.
018130:  0A 20 20 72 65 74 75 72 6E 28 6D 61 6B 70 61 74    .  return(makpat
018140:  28 61 72 67 2C 20 30 2C 20 4E 55 4C 4C 2C 20 70    (arg, 0, NULL, p
018150:  61 74 29 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 23 69    at));..  }....#i
018160:  6E 63 6C 75 64 65 20 22 70 61 74 2E 63 22 0D 0A    nclude "pat.c"..
018170:  23 69 6E 63 6C 75 64 65 20 22 65 72 72 6F 72 2E    #include "error.
018180:  63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 69 6E    c"..#include "in
018190:  64 65 78 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65    dex.c"..#include
0181A0:  20 22 6F 75 74 2E 63 22 0D 0A 23 69 6E 63 6C 75     "out.c"..#inclu
0181B0:  64 65 20 22 74 72 69 6D 2E 63 22 0D 0A 0D 0A 1A    de "trim.c".....
0181C0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0181D0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0181E0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0181F0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
018200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0182A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0182B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0182C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0182D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0182E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0182F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0183A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0183B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0183C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0183D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0183E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0183F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018400:  2F 2A 0D 0A 2A 2A 20 66 6E 74 2E 63 20 2D 2D 20    /*..** fnt.c -- 
018410:  63 68 6F 6F 73 65 20 46 58 20 70 72 69 6E 74 65    choose FX printe
018420:  72 20 66 6F 6E 74 0D 0A 2A 2F 0D 0A 23 69 6E 63    r font..*/..#inc
018430:  6C 75 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A    lude <stdio.h>..
018440:  23 69 6E 63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E    #include "tools.
018450:  68 22 0D 0A 23 64 65 66 69 6E 65 20 4E 4F 43 43    h"..#define NOCC
018460:  41 52 47 43 0D 0A 63 68 61 72 0D 0A 20 20 20 63    ARGC..char..   c
018470:  6F 6E 64 65 6E 73 65 64 5B 5D 3D 7B 32 37 2C 20    ondensed[]={27, 
018480:  31 35 2C 20 30 7D 2C 0D 0A 20 20 78 63 6F 6E 64    15, 0},..  xcond
018490:  65 6E 73 65 64 5B 5D 3D 7B 20 20 20 20 31 38 2C    ensed[]={    18,
0184A0:  20 30 7D 2C 0D 0A 20 20 20 64 6F 75 62 6C 65 5B     0},..   double[
0184B0:  5D 3D 7B 32 37 2C 20 27 47 27 2C 20 30 7D 2C 0D    ]={27, 'G', 0},.
0184C0:  0A 20 20 78 64 6F 75 62 6C 65 5B 5D 3D 7B 32 37    .  xdouble[]={27
0184D0:  2C 20 27 48 27 2C 20 30 7D 2C 0D 0A 20 20 20 65    , 'H', 0},..   e
0184E0:  6C 69 74 65 5B 5D 3D 7B 32 37 2C 20 27 4D 27 2C    lite[]={27, 'M',
0184F0:  20 30 7D 2C 0D 0A 20 20 78 65 6C 69 74 65 5B 5D     0},..  xelite[]
018500:  3D 7B 32 37 2C 20 27 50 27 2C 20 30 7D 2C 0D 0A    ={27, 'P', 0},..
018510:  20 20 20 65 6D 70 68 61 73 69 7A 65 64 5B 5D 3D       emphasized[]=
018520:  7B 32 37 2C 20 27 45 27 2C 20 30 7D 2C 0D 0A 20    {27, 'E', 0},.. 
018530:  20 78 65 6D 70 68 61 73 69 7A 65 64 5B 5D 3D 7B     xemphasized[]={
018540:  32 37 2C 20 27 46 27 2C 20 30 7D 2C 0D 0A 20 20    27, 'F', 0},..  
018550:  20 65 6E 6C 61 72 67 65 64 5B 5D 3D 7B 32 37 2C     enlarged[]={27,
018560:  20 27 57 27 2C 20 34 39 2C 20 30 7D 2C 0D 0A 20     'W', 49, 0},.. 
018570:  20 78 65 6E 6C 61 72 67 65 64 5B 5D 3D 7B 32 37     xenlarged[]={27
018580:  2C 20 27 57 27 2C 20 34 38 2C 20 30 7D 2C 0D 0A    , 'W', 48, 0},..
018590:  20 20 20 69 74 61 6C 69 63 73 5B 5D 3D 7B 32 37       italics[]={27
0185A0:  2C 20 27 34 27 2C 20 30 7D 2C 0D 0A 20 20 78 69    , '4', 0},..  xi
0185B0:  74 61 6C 69 63 73 5B 5D 3D 7B 32 37 2C 20 27 35    talics[]={27, '5
0185C0:  27 2C 20 30 7D 2C 0D 0A 20 20 20 70 69 63 61 5B    ', 0},..   pica[
0185D0:  5D 3D 7B 32 37 2C 20 27 50 27 2C 20 30 7D 2C 0D    ]={27, 'P', 0},.
0185E0:  0A 20 20 78 70 69 63 61 5B 5D 3D 7B 32 37 2C 20    .  xpica[]={27, 
0185F0:  27 4D 27 2C 20 30 7D 2C 0D 0A 20 20 20 73 75 62    'M', 0},..   sub
018600:  0D 0A 2F 2A 0D 0A 2A 2A 20 65 72 72 6F 72 2E 63    ../*..** error.c
018610:  20 2D 2D 20 64 69 73 70 6C 61 79 20 6D 65 73 73     -- display mess
018620:  61 67 65 20 73 74 72 20 61 6E 64 20 61 62 6F 72    age str and abor
018630:  74 0D 0A 2A 2F 0D 0A 65 72 72 6F 72 28 73 74 72    t..*/..error(str
018640:  29 20 63 68 61 72 20 2A 73 74 72 3B 20 7B 0D 0A    ) char *str; {..
018650:  20 20 66 70 75 74 73 28 73 74 72 2C 20 73 74 64      fputs(str, std
018660:  65 72 72 29 3B 0D 0A 20 20 66 70 75 74 63 28 27    err);..  fputc('
018670:  5C 6E 27 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20    \n', stderr);.. 
018680:  20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 7D 0D     abort(7);..  }.
018690:  0A 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0186A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0186B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0186C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0186D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0186E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0186F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018700:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018710:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018720:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018730:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018740:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018750:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0187A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0187B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0187C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0187D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0187E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0187F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
018800:  73 63 72 69 70 74 5B 5D 3D 7B 32 37 2C 20 27 53    script[]={27, 'S
018810:  27 2C 20 34 39 2C 20 30 7D 2C 0D 0A 20 20 78 73    ', 49, 0},..  xs
018820:  75 62 73 63 72 69 70 74 5B 5D 3D 7B 32 37 2C 20    ubscript[]={27, 
018830:  27 54 27 2C 20 30 7D 2C 0D 0A 20 20 20 73 75 70    'T', 0},..   sup
018840:  65 72 73 63 72 69 70 74 5B 5D 3D 7B 32 37 2C 20    erscript[]={27, 
018850:  27 53 27 2C 20 34 38 2C 20 30 7D 2C 0D 0A 20 20    'S', 48, 0},..  
018860:  78 73 75 70 65 72 73 63 72 69 70 74 5B 5D 3D 7B    xsuperscript[]={
018870:  32 37 2C 20 27 54 27 2C 20 30 7D 2C 0D 0A 20 20    27, 'T', 0},..  
018880:  20 70 72 6F 70 6F 72 74 69 6F 6E 61 6C 5B 5D 3D     proportional[]=
018890:  7B 32 37 2C 20 27 70 27 2C 20 34 39 2C 20 30 7D    {27, 'p', 49, 0}
0188A0:  2C 0D 0A 20 20 78 70 72 6F 70 6F 72 74 69 6F 6E    ,..  xproportion
0188B0:  61 6C 5B 5D 3D 7B 32 37 2C 20 27 70 27 2C 20 34    al[]={27, 'p', 4
0188C0:  38 2C 20 30 7D 3B 0D 0A 63 68 61 72 20 73 74 72    8, 0};..char str
0188D0:  5B 31 35 5D 2C 20 2A 70 74 72 3D 22 4C 53 54 3A    [15], *ptr="LST:
0188E0:  22 3B 0D 0A 69 6E 74 20 69 2C 20 66 64 3B 0D 0A    ";..int i, fd;..
0188F0:  6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76 29    main(argc, argv)
018900:  20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67 76     int argc, *argv
018910:  3B 20 7B 0D 0A 20 20 69 66 28 67 65 74 61 72 67    ; {..  if(getarg
018920:  28 31 2C 20 73 74 72 2C 20 31 35 2C 20 61 72 67    (1, str, 15, arg
018930:  63 2C 20 61 72 67 76 29 20 21 3D 20 45 4F 46 29    c, argv) != EOF)
018940:  20 70 74 72 20 3D 20 73 74 72 3B 0D 0A 20 20 69     ptr = str;..  i
018950:  66 28 2A 73 74 72 20 3D 3D 20 27 2D 27 29 20 7B    f(*str == '-') {
018960:  0D 0A 20 20 20 20 66 70 75 74 73 28 22 75 73 61    ..    fputs("usa
018970:  67 65 3A 20 46 4E 54 20 5B 64 65 76 69 63 65 5D    ge: FNT [device]
018980:  22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20    ", stderr);..   
018990:  20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20     abort(7);..    
0189A0:  7D 0D 0A 20 20 69 66 28 28 66 64 3D 66 6F 70 65    }..  if((fd=fope
0189B0:  6E 28 70 74 72 2C 20 22 77 22 29 29 20 3D 3D 20    n(ptr, "w")) == 
0189C0:  30 29 20 63 61 6E 74 28 70 74 72 29 3B 0D 0A 20    0) cant(ptr);.. 
0189D0:  20 64 6F 20 7B 0D 0A 20 20 20 20 66 70 75 74 73     do {..    fputs
0189E0:  28 43 4C 45 41 52 2C 20 73 74 64 6F 75 74 29 3B    (CLEAR, stdout);
0189F0:  0D 0A 20 20 20 20 66 70 75 74 73 28 22 20 20 20    ..    fputs("   
018A00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018A90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018AA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018AB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018AC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018AD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018AE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018AF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018B90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018BA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018BB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018BC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018BD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018BE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018BF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
018C00:  20 53 65 6C 65 63 74 20 45 70 73 6F 6E 20 46 58     Select Epson FX
018C10:  20 4F 70 74 69 6F 6E 20 28 52 45 54 55 52 4E 20     Option (RETURN 
018C20:  74 6F 20 65 78 69 74 29 5C 6E 5C 6E 22 2C 20 73    to exit)\n\n", s
018C30:  74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70 75    tdout);..    fpu
018C40:  74 73 28 22 73 65 74 20 20 63 6C 65 61 72 20 20    ts("set  clear  
018C50:  20 6D 6F 64 65 5C 6E 5C 6E 22 2C 20 73 74 64 6F     mode\n\n", stdo
018C60:  75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28    ut);..    fputs(
018C70:  22 20 31 20 20 20 20 20 32 20 20 20 20 20 63 6F    " 1     2     co
018C80:  6E 64 65 6E 73 65 64 20 20 20 20 5C 6E 22 2C 20    ndensed    \n", 
018C90:  73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70    stdout);..    fp
018CA0:  75 74 73 28 22 20 33 20 20 20 20 20 34 20 20 20    uts(" 3     4   
018CB0:  20 20 64 6F 75 62 6C 65 20 73 74 72 69 6B 65 5C      double strike\
018CC0:  6E 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20    n", stdout);..  
018CD0:  20 20 66 70 75 74 73 28 22 20 35 20 20 20 20 20      fputs(" 5     
018CE0:  36 20 20 20 20 20 65 6C 69 74 65 5C 6E 22 2C 20    6     elite\n", 
018CF0:  73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70    stdout);..    fp
018D00:  75 74 73 28 22 20 37 20 20 20 20 20 38 20 20 20    uts(" 7     8   
018D10:  20 20 65 6D 70 68 61 73 69 7A 65 64 20 20 20 5C      emphasized   \
018D20:  6E 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20    n", stdout);..  
018D30:  20 20 66 70 75 74 73 28 22 20 39 20 20 20 20 31      fputs(" 9    1
018D40:  30 20 20 20 20 20 65 6E 6C 61 72 67 65 64 5C 6E    0     enlarged\n
018D50:  22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20    ", stdout);..   
018D60:  20 66 70 75 74 73 28 22 31 31 20 20 20 20 31 32     fputs("11    12
018D70:  20 20 20 20 20 69 74 61 6C 69 63 73 5C 6E 22 2C         italics\n",
018D80:  20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66     stdout);..    f
018D90:  70 75 74 73 28 22 31 33 20 20 20 20 31 34 20 20    puts("13    14  
018DA0:  20 20 20 70 69 63 61 5C 6E 22 2C 20 73 74 64 6F       pica\n", stdo
018DB0:  75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28    ut);..    fputs(
018DC0:  22 31 35 20 20 20 20 31 36 20 20 20 20 20 73 75    "15    16     su
018DD0:  62 73 63 72 69 70 74 5C 6E 22 2C 20 73 74 64 6F    bscript\n", stdo
018DE0:  75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28    ut);..    fputs(
018DF0:  22 31 37 20 20 20 20 31 38 20 20 20 20 20 73 75    "17    18     su
018E00:  2F 2A 0D 0A 2A 2A 20 66 6E 64 2E 63 20 2D 2D 20    /*..** fnd.c -- 
018E10:  66 69 6E 64 20 70 61 74 74 65 72 6E 73 20 69 6E    find patterns in
018E20:  20 74 65 78 74 20 66 69 6C 65 0D 0A 2A 2A 0D 0A     text file..**..
018E30:  2A 2A 20 43 6F 70 79 72 69 67 68 74 20 31 39 38    ** Copyright 198
018E40:  32 20 4A 2E 20 45 2E 20 48 65 6E 64 72 69 78 2E    2 J. E. Hendrix.
018E50:  20 20 41 6C 6C 20 72 69 67 68 74 73 20 72 65 73      All rights res
018E60:  65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63    erved...*/..#inc
018E70:  6C 75 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A    lude <stdio.h>..
018E80:  23 69 6E 63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E    #include "tools.
018E90:  68 22 0D 0A 23 64 65 66 69 6E 65 20 4E 4F 43 43    h"..#define NOCC
018EA0:  41 52 47 43 0D 0A 23 64 65 66 69 6E 65 20 4D 41    ARGC..#define MA
018EB0:  58 41 52 47 20 34 39 0D 0A 23 64 65 66 69 6E 65    XARG 49..#define
018EC0:  20 4D 41 58 4C 49 4E 31 20 28 4D 41 58 4C 49 4E     MAXLIN1 (MAXLIN
018ED0:  45 2B 31 29 0D 0A 63 68 61 72 20 61 72 67 5B 4D    E+1)..char arg[M
018EE0:  41 58 41 52 47 5D 2C 20 6C 69 6E 5B 4D 41 58 4C    AXARG], lin[MAXL
018EF0:  49 4E 31 5D 2C 20 70 61 74 5B 4D 41 58 50 41 54    IN1], pat[MAXPAT
018F00:  5D 3B 0D 0A 69 6E 74 20 65 72 72 2C 20 61 72 67    ];..int err, arg
018F10:  69 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61    i;..main(argc, a
018F20:  72 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A    rgv) int argc, *
018F30:  61 72 67 76 3B 20 7B 0D 0A 20 20 61 75 78 62 75    argv; {..  auxbu
018F40:  66 28 73 74 64 69 6E 2C 20 34 30 39 36 29 3B 0D    f(stdin, 4096);.
018F50:  0A 20 20 65 72 72 3D 4E 4F 3B 0D 0A 20 20 69 66    .  err=NO;..  if
018F60:  28 28 67 65 74 61 72 67 28 31 2C 20 61 72 67 2C    ((getarg(1, arg,
018F70:  20 4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61     MAXARG, argc, a
018F80:  72 67 76 29 3D 3D 45 4F 46 29 7C 28 61 72 67 5B    rgv)==EOF)|(arg[
018F90:  30 5D 3D 3D 27 2D 27 29 29 0D 0A 20 20 20 20 65    0]=='-'))..    e
018FA0:  72 72 6F 72 28 22 75 73 61 67 65 3A 20 46 4E 44    rror("usage: FND
018FB0:  20 5B 7E 5D 70 61 74 74 65 72 6E 5C 6E 22 29 3B     [~]pattern\n");
018FC0:  0D 0A 20 20 69 66 28 61 72 67 5B 30 5D 3D 3D 4E    ..  if(arg[0]==N
018FD0:  4F 54 29 20 61 72 67 69 3D 31 3B 20 65 6C 73 65    OT) argi=1; else
018FE0:  20 61 72 67 69 3D 30 3B 0D 0A 20 20 69 66 28 67     argi=0;..  if(g
018FF0:  65 74 70 61 74 28 61 72 67 2B 61 72 67 69 2C 20    etpat(arg+argi, 
019000:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
019010:  15 00 01 00 02 09 52 E5 15 00 41 02 00 00 00 02    ......R...A.....
019020:  15 00 46 02 00 00 00 02 15 00 42 02 00 00 00 02    ..F.......B.....
019030:  15 00 47 02 00 00 00 02 15 00 43 02 00 00 00 02    ..G.......C.....
019040:  15 00 48 02 00 00 00 02 15 00 44 02 00 00 00 02    ..H.......D.....
019050:  15 00 49 02 00 00 00 02 15 00 45 02 00 00 00 02    ..I.......E.....
019060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0190F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
019100:  70 65 72 73 63 72 69 70 74 5C 6E 22 2C 20 73 74    perscript\n", st
019110:  64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74    dout);..    fput
019120:  73 28 22 31 39 20 20 20 20 32 30 20 20 20 20 20    s("19    20     
019130:  70 72 6F 70 6F 72 74 69 6F 6E 61 6C 5C 6E 22 2C    proportional\n",
019140:  20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66     stdout);..    f
019150:  70 75 74 73 28 22 5C 6E 73 65 6C 65 63 74 2E 2E    puts("\nselect..
019160:  2E 20 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20    . ", stdout);.. 
019170:  20 20 20 66 67 65 74 73 28 73 74 72 2C 20 31 30       fgets(str, 10
019180:  2C 20 73 74 64 69 6E 29 3B 0D 0A 20 20 20 20 70    , stdin);..    p
019190:  74 72 20 3D 20 73 74 72 3B 0D 0A 20 20 20 20 77    tr = str;..    w
0191A0:  68 69 6C 65 28 2A 70 74 72 29 20 7B 0D 0A 20 20    hile(*ptr) {..  
0191B0:  20 20 20 20 69 66 28 2A 70 74 72 20 3D 3D 20 27        if(*ptr == '
0191C0:  5C 6E 27 29 20 2A 70 74 72 3D 4E 55 4C 4C 3B 0D    \n') *ptr=NULL;.
0191D0:  0A 20 20 20 20 20 20 2B 2B 70 74 72 3B 0D 0A 20    .      ++ptr;.. 
0191E0:  20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 75         }..    if(u
0191F0:  74 6F 69 28 73 74 72 2C 20 26 69 29 29 20 7B 0D    toi(str, &i)) {.
019200:  0A 20 20 20 20 20 20 73 77 69 74 63 68 28 69 29    .      switch(i)
019210:  20 7B 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65     {..        case
019220:  20 20 31 3A 20 7B 66 70 75 74 73 28 20 63 6F 6E      1: {fputs( con
019230:  64 65 6E 73 65 64 2C 20 66 64 29 3B 20 62 72 65    densed, fd); bre
019240:  61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61    ak;}..        ca
019250:  73 65 20 20 32 3A 20 7B 66 70 75 74 73 28 78 63    se  2: {fputs(xc
019260:  6F 6E 64 65 6E 73 65 64 2C 20 66 64 29 3B 20 62    ondensed, fd); b
019270:  72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20    reak;}..        
019280:  63 61 73 65 20 20 33 3A 20 7B 66 70 75 74 73 28    case  3: {fputs(
019290:  20 64 6F 75 62 6C 65 2C 20 66 64 29 3B 20 62 72     double, fd); br
0192A0:  65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63    eak;}..        c
0192B0:  61 73 65 20 20 34 3A 20 7B 66 70 75 74 73 28 78    ase  4: {fputs(x
0192C0:  64 6F 75 62 6C 65 2C 20 66 64 29 3B 20 62 72 65    double, fd); bre
0192D0:  61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61    ak;}..        ca
0192E0:  73 65 20 20 35 3A 20 7B 66 70 75 74 73 28 20 65    se  5: {fputs( e
0192F0:  6C 69 74 65 2C 20 66 64 29 3B 20 62 72 65 61 6B    lite, fd); break
019300:  61 67 65 20 6F 66 66 73 65 74 20 73 70 65 63 69    age offset speci
019310:  66 69 63 61 74 69 6F 6E 20 2A 2F 0D 0A 20 20 70    fication */..  p
019320:  6F 76 61 6C 2C 20 20 20 2F 2A 20 70 61 67 65 20    oval,   /* page 
019330:  6F 66 66 73 65 74 20 66 6F 72 20 63 75 72 72 65    offset for curre
019340:  6E 74 20 70 61 67 65 20 2A 2F 0D 0A 20 20 74 69    nt page */..  ti
019350:  76 61 6C 2C 20 20 20 2F 2A 20 74 65 6D 70 6F 72    val,   /* tempor
019360:  61 72 79 20 69 6E 64 65 6E 74 20 2A 2F 0D 0A 20    ary indent */.. 
019370:  20 63 65 76 61 6C 2C 20 20 20 2F 2A 20 6E 75 6D     ceval,   /* num
019380:  62 65 72 20 6F 66 20 6C 69 6E 65 73 20 74 6F 20    ber of lines to 
019390:  63 65 6E 74 65 72 20 2A 2F 0D 0A 20 20 75 6C 76    center */..  ulv
0193A0:  61 6C 2C 20 20 20 2F 2A 20 6E 75 6D 62 65 72 20    al,   /* number 
0193B0:  6F 66 20 6C 69 6E 65 73 20 74 6F 20 75 6E 64 65    of lines to unde
0193C0:  72 6C 69 6E 65 20 2A 2F 0D 0A 20 20 62 66 76 61    rline */..  bfva
0193D0:  6C 2C 20 20 20 2F 2A 20 6E 75 6D 62 65 72 20 6F    l,   /* number o
0193E0:  66 20 6C 69 6E 65 73 20 74 6F 20 62 6F 6C 64 66    f lines to boldf
0193F0:  61 63 65 20 2A 2F 0D 0A 20 20 69 74 76 61 6C 2C    ace */..  itval,
019400:  20 20 20 2F 2A 20 6E 75 6D 62 65 72 20 6F 66 20       /* number of 
019410:  6C 69 6E 65 73 20 74 6F 20 69 74 61 6C 69 63 69    lines to italici
019420:  7A 65 20 2A 2F 0D 0A 20 20 64 77 76 61 6C 2C 20    ze */..  dwval, 
019430:  20 20 2F 2A 20 6E 75 6D 62 65 72 20 6F 66 20 6C      /* number of l
019440:  69 6E 65 73 20 74 6F 20 64 6F 75 62 6C 65 2D 77    ines to double-w
019450:  69 64 65 20 2A 2F 0D 0A 20 20 64 77 61 63 74 2C    ide */..  dwact,
019460:  20 20 20 2F 2A 20 64 6F 75 62 6C 65 2D 77 69 64       /* double-wid
019470:  65 20 69 73 20 61 63 74 69 76 65 20 2A 2F 0D 0A    e is active */..
019480:  20 20 62 66 73 74 72 69 6B 65 73 2C 20 20 2F 2A      bfstrikes,  /*
019490:  20 6E 75 6D 62 65 72 20 6F 66 20 62 6F 6C 64 66     number of boldf
0194A0:  61 63 65 20 73 74 72 69 6B 65 73 20 2A 2F 0D 0A    ace strikes */..
0194B0:  20 20 63 75 61 63 74 2C 20 20 20 2F 2A 20 63 6F      cuact,   /* co
0194C0:  6E 74 69 6E 75 6F 75 73 20 75 6E 64 65 72 6C 69    ntinuous underli
0194D0:  6E 65 20 61 63 74 69 76 65 20 69 66 20 3E 20 30    ne active if > 0
0194E0:  20 2A 2F 0D 0A 20 20 6D 70 63 6E 74 2C 20 20 20     */..  mpcnt,   
0194F0:  2F 2A 20 6C 69 6E 65 73 20 70 72 69 6E 74 65 64    /* lines printed
019500:  3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65    ;}..        case
019510:  20 20 36 3A 20 7B 66 70 75 74 73 28 78 65 6C 69      6: {fputs(xeli
019520:  74 65 2C 20 66 64 29 3B 20 62 72 65 61 6B 3B 7D    te, fd); break;}
019530:  0D 0A 20 20 20 20 20 20 20 20 63 61 73 65 20 20    ..        case  
019540:  37 3A 20 7B 66 70 75 74 73 28 20 65 6D 70 68 61    7: {fputs( empha
019550:  73 69 7A 65 64 2C 20 66 64 29 3B 20 62 72 65 61    sized, fd); brea
019560:  6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73    k;}..        cas
019570:  65 20 20 38 3A 20 7B 66 70 75 74 73 28 78 65 6D    e  8: {fputs(xem
019580:  70 68 61 73 69 7A 65 64 2C 20 66 64 29 3B 20 62    phasized, fd); b
019590:  72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20    reak;}..        
0195A0:  63 61 73 65 20 20 39 3A 20 7B 66 70 75 74 73 28    case  9: {fputs(
0195B0:  20 65 6E 6C 61 72 67 65 64 2C 20 66 64 29 3B 20     enlarged, fd); 
0195C0:  62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20    break;}..       
0195D0:  20 63 61 73 65 20 31 30 3A 20 7B 66 70 75 74 73     case 10: {fputs
0195E0:  28 78 65 6E 6C 61 72 67 65 64 2C 20 66 64 29 3B    (xenlarged, fd);
0195F0:  20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20     break;}..      
019600:  20 20 63 61 73 65 20 31 31 3A 20 7B 66 70 75 74      case 11: {fput
019610:  73 28 20 69 74 61 6C 69 63 73 2C 20 66 64 29 3B    s( italics, fd);
019620:  20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20     break;}..      
019630:  20 20 63 61 73 65 20 31 32 3A 20 7B 66 70 75 74      case 12: {fput
019640:  73 28 78 69 74 61 6C 69 63 73 2C 20 66 64 29 3B    s(xitalics, fd);
019650:  20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20     break;}..      
019660:  20 20 63 61 73 65 20 31 33 3A 20 7B 66 70 75 74      case 13: {fput
019670:  73 28 20 70 69 63 61 2C 20 66 64 29 3B 20 62 72    s( pica, fd); br
019680:  65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63    eak;}..        c
019690:  61 73 65 20 31 34 3A 20 7B 66 70 75 74 73 28 78    ase 14: {fputs(x
0196A0:  70 69 63 61 2C 20 66 64 29 3B 20 62 72 65 61 6B    pica, fd); break
0196B0:  3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65    ;}..        case
0196C0:  20 31 35 3A 20 7B 66 70 75 74 73 28 20 73 75 62     15: {fputs( sub
0196D0:  73 63 72 69 70 74 2C 20 66 64 29 3B 20 62 72 65    script, fd); bre
0196E0:  61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61    ak;}..        ca
0196F0:  73 65 20 31 36 3A 20 7B 66 70 75 74 73 28 78 73    se 16: {fputs(xs
019700:  20 73 69 6E 63 65 20 6C 61 73 74 20 2E 6D 70 20     since last .mp 
019710:  70 61 67 65 20 62 72 65 61 6B 20 2A 2F 0D 0A 20    page break */.. 
019720:  20 6D 70 76 61 6C 2C 20 20 20 2F 2A 20 6D 69 6E     mpval,   /* min
019730:  69 6D 75 6D 20 6C 69 6E 65 73 20 72 65 71 75 69    imum lines requi
019740:  72 65 64 20 66 6F 72 20 70 61 72 61 67 72 61 70    red for paragrap
019750:  68 73 20 2A 2F 0D 0A 20 20 73 71 76 61 6C 2C 20    hs */..  sqval, 
019760:  20 20 2F 2A 20 73 71 75 65 65 7A 65 20 69 6E 64      /* squeeze ind
019770:  65 6E 74 73 20 2A 2F 0D 0A 20 20 62 6C 69 6E 65    ents */..  bline
019780:  2C 20 20 20 2F 2A 20 62 6C 61 6E 6B 20 6C 69 6E    ,   /* blank lin
019790:  65 20 66 6C 61 67 20 2A 2F 0D 0A 20 20 63 75 72    e flag */..  cur
0197A0:  70 61 67 2C 20 20 2F 2A 20 63 75 72 72 65 6E 74    pag,  /* current
0197B0:  20 70 61 67 65 20 6E 75 6D 62 65 72 20 2A 2F 0D     page number */.
0197C0:  0A 20 20 6E 65 77 70 61 67 2C 20 20 2F 2A 20 6E    .  newpag,  /* n
0197D0:  65 78 74 20 70 61 67 65 20 6E 75 6D 62 65 72 20    ext page number 
0197E0:  2A 2F 0D 0A 20 20 6C 69 6E 65 6E 6F 2C 20 20 2F    */..  lineno,  /
0197F0:  2A 20 6E 65 78 74 20 6C 69 6E 65 20 74 6F 20 62    * next line to b
019800:  65 20 70 72 69 6E 74 65 64 20 2A 2F 0D 0A 20 20    e printed */..  
019810:  70 6C 76 61 6C 2C 20 20 20 2F 2A 20 70 61 67 65    plval,   /* page
019820:  20 6C 65 6E 67 74 68 20 69 6E 20 6C 69 6E 65 73     length in lines
019830:  20 2A 2F 0D 0A 20 20 6D 31 76 61 6C 2C 20 20 20     */..  m1val,   
019840:  2F 2A 20 6D 61 72 67 69 6E 20 62 65 66 6F 72 65    /* margin before
019850:  20 61 6E 64 20 69 6E 63 6C 75 64 69 6E 67 20 68     and including h
019860:  65 61 64 65 72 20 2A 2F 0D 0A 20 20 6D 32 76 61    eader */..  m2va
019870:  6C 2C 20 20 20 2F 2A 20 6D 61 72 67 69 6E 20 61    l,   /* margin a
019880:  66 74 65 72 20 68 65 61 64 65 72 20 2A 2F 0D 0A    fter header */..
019890:  20 20 6D 33 76 61 6C 2C 20 20 20 2F 2A 20 6D 61      m3val,   /* ma
0198A0:  72 67 69 6E 20 61 66 74 65 72 20 6C 61 73 74 20    rgin after last 
0198B0:  74 65 78 74 20 6C 69 6E 65 20 2A 2F 0D 0A 20 20    text line */..  
0198C0:  6D 34 76 61 6C 2C 20 20 20 2F 2A 20 62 6F 74 74    m4val,   /* bott
0198D0:  6F 6D 20 6D 61 72 67 69 6E 20 69 6E 63 6C 75 64    om margin includ
0198E0:  69 6E 67 20 66 6F 6F 74 65 72 20 2A 2F 0D 0A 20    ing footer */.. 
0198F0:  20 62 6F 74 74 6F 6D 2C 20 20 2F 2A 20 6C 61 73     bottom,  /* las
019900:  75 62 73 63 72 69 70 74 2C 20 66 64 29 3B 20 62    ubscript, fd); b
019910:  72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20    reak;}..        
019920:  63 61 73 65 20 31 37 3A 20 7B 66 70 75 74 73 28    case 17: {fputs(
019930:  20 73 75 70 65 72 73 63 72 69 70 74 2C 20 66 64     superscript, fd
019940:  29 3B 20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20    ); break;}..    
019950:  20 20 20 20 63 61 73 65 20 31 38 3A 20 7B 66 70        case 18: {fp
019960:  75 74 73 28 78 73 75 70 65 72 73 63 72 69 70 74    uts(xsuperscript
019970:  2C 20 66 64 29 3B 20 62 72 65 61 6B 3B 7D 0D 0A    , fd); break;}..
019980:  20 20 20 20 20 20 20 20 63 61 73 65 20 31 39 3A            case 19:
019990:  20 7B 66 70 75 74 73 28 20 70 72 6F 70 6F 72 74     {fputs( proport
0199A0:  69 6F 6E 61 6C 2C 20 66 64 29 3B 20 62 72 65 61    ional, fd); brea
0199B0:  6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73    k;}..        cas
0199C0:  65 20 32 30 3A 20 7B 66 70 75 74 73 28 78 70 72    e 20: {fputs(xpr
0199D0:  6F 70 6F 72 74 69 6F 6E 61 6C 2C 20 66 64 29 3B    oportional, fd);
0199E0:  20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20     break;}..      
0199F0:  20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20      }..      }..  
019A00:  20 20 7D 20 77 68 69 6C 65 20 28 2A 73 74 72 29      } while (*str)
019A10:  3B 0D 0A 20 20 7D 0D 0A 23 69 6E 63 6C 75 64 65    ;..  }..#include
019A20:  20 22 63 61 6E 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A     "cant.c".......
019A30:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
019A40:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
019A50:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
019A60:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
019A70:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
019A80:  65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63    eak;}..        c
019A90:  61 73 65 20 31 34 3A 20 7B 66 70 75 74 73 28 78    ase 14: {fputs(x
019AA0:  70 69 63 61 2C 20 66 64 29 3B 20 62 72 65 61 6B    pica, fd); break
019AB0:  3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65    ;}..        case
019AC0:  20 31 35 3A 20 7B 66 70 75 74 73 28 20 73 75 62     15: {fputs( sub
019AD0:  73 63 72 69 70 74 2C 20 66 64 29 3B 20 62 72 65    script, fd); bre
019AE0:  61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61    ak;}..        ca
019AF0:  73 65 20 31 36 3A 20 7B 66 70 75 74 73 28 78 73    se 16: {fputs(xs
019B00:  74 20 6C 69 76 65 20 6C 69 6E 65 20 6F 6E 20 70    t live line on p
019B10:  61 67 65 20 2A 2F 0D 0A 20 20 6F 75 74 70 2C 20    age */..  outp, 
019B20:  20 20 20 2F 2A 20 6C 61 73 74 20 63 68 61 72 61       /* last chara
019B30:  63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 69 6E    cter position in
019B40:  20 6F 75 74 62 75 66 20 2A 2F 0D 0A 20 20 6F 75     outbuf */..  ou
019B50:  74 77 2C 20 20 20 20 2F 2A 20 77 69 64 74 68 20    tw,    /* width 
019B60:  6F 66 20 74 65 78 74 20 69 6E 20 6F 75 74 62 75    of text in outbu
019B70:  66 20 2A 2F 0D 0A 20 20 6F 75 74 77 64 73 2C 20    f */..  outwds, 
019B80:  20 2F 2A 20 6E 75 6D 62 65 72 20 6F 66 20 77 6F     /* number of wo
019B90:  72 64 73 20 69 6E 20 6F 75 74 62 75 66 20 2A 2F    rds in outbuf */
019BA0:  0D 0A 20 20 70 61 75 73 65 2C 20 20 20 2F 2A 20    ..  pause,   /* 
019BB0:  70 61 75 73 65 20 6F 6E 20 70 61 67 65 20 62 72    pause on page br
019BC0:  65 61 6B 73 20 69 66 20 59 45 53 20 2A 2F 0D 0A    eaks if YES */..
019BD0:  20 20 72 65 61 64 79 2C 20 20 20 2F 2A 20 70 72      ready,   /* pr
019BE0:  6F 6D 70 74 20 22 72 65 61 64 79 20 70 72 69 6E    ompt "ready prin
019BF0:  74 65 72 2E 2E 2E 22 20 69 66 20 59 45 53 20 2A    ter..." if YES *
019C00:  2F 0D 0A 20 20 73 68 6F 77 2C 20 20 20 20 2F 2A    /..  show,    /*
019C10:  20 73 68 6F 77 20 73 6F 75 72 63 65 20 66 69 6C     show source fil
019C20:  65 20 6E 61 6D 65 73 20 2A 2F 0D 0A 20 20 62 65    e names */..  be
019C30:  67 69 6E 2C 20 20 20 2F 2A 20 62 65 67 69 6E 6E    gin,   /* beginn
019C40:  69 6E 67 20 70 61 67 65 20 74 6F 20 70 72 69 6E    ing page to prin
019C50:  74 20 2A 2F 0D 0A 20 20 65 6E 64 2C 20 20 20 20    t */..  end,    
019C60:  20 2F 2A 20 65 6E 64 69 6E 67 20 70 61 67 65 20     /* ending page 
019C70:  74 6F 20 70 72 69 6E 74 20 2A 2F 0D 0A 20 20 62    to print */..  b
019C80:  63 6F 70 79 2C 20 20 20 2F 2A 20 62 65 67 69 6E    copy,   /* begin
019C90:  6E 69 6E 67 20 63 6F 70 79 20 2A 2F 0D 0A 20 20    ning copy */..  
019CA0:  65 63 6F 70 79 2C 20 20 20 2F 2A 20 65 6E 64 69    ecopy,   /* endi
019CB0:  6E 67 20 63 6F 70 79 20 2A 2F 0D 0A 20 20 6D 72    ng copy */..  mr
019CC0:  67 66 64 2C 20 20 20 2F 2A 20 6D 65 72 67 65 20    gfd,   /* merge 
019CD0:  66 69 6C 65 20 66 64 20 2A 2F 0D 0A 20 20 73 65    file fd */..  se
019CE0:  6E 74 65 6E 64 2C 20 2F 2A 20 59 45 53 20 66 6F    ntend, /* YES fo
019CF0:  72 20 70 6C 61 75 73 69 62 6C 65 20 65 6E 64 20    r plausible end 
019D00:  2F 2A 0D 0A 2A 2A 20 66 6D 74 2E 63 20 2D 2D 20    /*..** fmt.c -- 
019D10:  74 65 78 74 20 66 6F 72 6D 61 74 74 65 72 0D 0A    text formatter..
019D20:  2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 6E 74    **..** Copyrignt
019D30:  20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64     1982 J. E. Hend
019D40:  72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73    rix.  All rights
019D50:  20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A     reserved...*/..
019D60:  0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69    ..#include <stdi
019D70:  6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22    o.h>..#include "
019D80:  74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E    tools.h"..#defin
019D90:  65 20 4E 4F 43 43 41 52 47 43 0D 0A 23 64 65 66    e NOCCARGC..#def
019DA0:  69 6E 65 20 4B 49 4C 4C 20 31 34 20 20 2F 2A 20    ine KILL 14  /* 
019DB0:  63 6F 6E 74 72 6F 6C 2D 4E 20 2A 2F 0D 0A 23 64    control-N */..#d
019DC0:  65 66 69 6E 65 20 49 4E 53 49 5A 45 20 33 39 36    efine INSIZE 396
019DD0:  0D 0A 23 64 65 66 69 6E 65 20 4D 41 58 4F 55 54    ..#define MAXOUT
019DE0:  20 35 37 39 0D 0A 23 64 65 66 69 6E 65 20 43 4F     579..#define CO
019DF0:  4D 4D 41 4E 44 20 27 2E 27 0D 0A 23 64 65 66 69    MMAND '.'..#defi
019E00:  6E 65 20 50 41 47 45 4E 55 4D 20 27 23 27 0D 0A    ne PAGENUM '#'..
019E10:  23 64 65 66 69 6E 65 20 54 54 4C 44 45 4C 49 4D    #define TTLDELIM
019E20:  20 27 2F 27 0D 0A 23 64 65 66 69 6E 65 20 4D 52     '/'..#define MR
019E30:  47 43 48 41 52 20 27 7C 27 0D 0A 23 64 65 66 69    GCHAR '|'..#defi
019E40:  6E 65 20 53 55 42 43 48 41 52 20 27 2F 27 0D 0A    ne SUBCHAR '/'..
019E50:  23 64 65 66 69 6E 65 20 53 55 50 43 48 41 52 20    #define SUPCHAR 
019E60:  27 5C 5C 27 0D 0A 23 64 65 66 69 6E 65 20 42 4C    '\\'..#define BL
019E70:  41 4E 4B 20 27 7E 27 0D 0A 23 64 65 66 69 6E 65    ANK '~'..#define
019E80:  20 44 45 46 4D 31 20 31 0D 0A 23 64 65 66 69 6E     DEFM1 1..#defin
019E90:  65 20 44 45 46 4D 32 20 32 0D 0A 23 64 65 66 69    e DEFM2 2..#defi
019EA0:  6E 65 20 44 45 46 4D 33 20 32 0D 0A 23 64 65 66    ne DEFM3 2..#def
019EB0:  69 6E 65 20 44 45 46 4D 34 20 39 0D 0A 2F 2A 2A    ine DEFM4 9../**
019EC0:  2A 2A 20 4C 4D 20 69 73 20 65 66 66 65 63 74 69    ** LM is effecti
019ED0:  76 65 6C 79 20 6F 6E 65 20 67 72 65 61 74 65 72    vely one greater
019EE0:  20 2A 2A 2A 2A 2F 0D 0A 23 64 65 66 69 6E 65 20     ****/..#define 
019EF0:  44 45 46 4C 4D 20 39 0D 0A 23 64 65 66 69 6E 65    DEFLM 9..#define
019F00:  6F 66 20 73 65 6E 74 65 6E 63 65 20 2A 2F 0D 0A    of sentence */..
019F10:  20 20 64 69 72 3B 20 20 20 20 20 2F 2A 20 64 69      dir;     /* di
019F20:  72 65 63 74 69 6F 6E 20 66 6F 72 20 73 70 72 65    rection for spre
019F30:  61 64 69 6E 67 20 62 6C 61 6E 6B 73 20 2A 2F 0D    ading blanks */.
019F40:  0A 0D 0A 63 68 61 72 0D 0A 20 20 20 20 20 20 20    ...char..       
019F50:  73 62 70 72 65 66 5B 5D 3D 7B 32 37 2C 27 53 27    sbpref[]={27,'S'
019F60:  2C 34 39 2C 31 7D 2C 20 20 2F 2A 20 6E 6F 6E 74    ,49,1},  /* nont
019F70:  74 79 20 73 75 62 73 63 72 69 70 74 20 70 72 65    ty subscript pre
019F80:  66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 73    fix */..       s
019F90:  62 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 54 27 2C    bsuff[]={27,'T',
019FA0:  20 31 2C 30 7D 2C 20 20 2F 2A 20 6E 6F 6E 74 74     1,0},  /* nontt
019FB0:  79 20 73 75 62 73 63 72 69 70 74 20 73 75 66 66    y subscript suff
019FC0:  69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 73 70    ix */..       sp
019FD0:  70 72 65 66 5B 5D 3D 7B 32 37 2C 27 53 27 2C 34    pref[]={27,'S',4
019FE0:  38 2C 31 7D 2C 20 20 2F 2A 20 6E 6F 6E 74 74 79    8,1},  /* nontty
019FF0:  20 73 75 70 65 72 73 63 72 69 70 74 20 70 72 65     superscript pre
01A000:  66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 73    fix */..       s
01A010:  70 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 54 27 2C    psuff[]={27,'T',
01A020:  20 31 2C 30 7D 2C 20 20 2F 2A 20 6E 6F 6E 74 74     1,0},  /* nontt
01A030:  79 20 73 75 70 65 72 73 63 72 69 70 74 20 73 75    y superscript su
01A040:  66 66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 2A    ffix */..      *
01A050:  75 6C 6F 6E 2C 20 2A 75 6C 6F 66 66 2C 0D 0A 20    ulon, *uloff,.. 
01A060:  20 20 20 20 20 20 75 6C 70 72 65 66 5B 5D 3D 7B          ulpref[]={
01A070:  32 37 2C 27 2D 27 2C 34 39 2C 31 7D 2C 20 20 2F    27,'-',49,1},  /
01A080:  2A 20 6E 6F 6E 74 74 79 20 75 6E 64 65 72 6C 69    * nontty underli
01A090:  6E 65 20 70 72 65 66 69 78 20 2A 2F 0D 0A 20 20    ne prefix */..  
01A0A0:  20 20 20 20 20 75 6C 73 75 66 66 5B 5D 3D 7B 32         ulsuff[]={2
01A0B0:  37 2C 27 2D 27 2C 34 38 2C 31 7D 2C 20 20 2F 2A    7,'-',48,1},  /*
01A0C0:  20 6E 6F 6E 74 74 79 20 75 6E 64 65 72 6C 69 6E     nontty underlin
01A0D0:  65 20 73 75 66 66 69 78 20 2A 2F 0D 0A 20 20 20    e suffix */..   
01A0E0:  20 20 20 2A 62 66 6F 6E 2C 20 2A 62 66 6F 66 66       *bfon, *bfoff
01A0F0:  2C 0D 0A 20 20 20 20 20 20 20 62 66 70 72 65 66    ,..       bfpref
01A100:  20 44 45 46 52 4D 20 37 33 0D 0A 23 64 65 66 69     DEFRM 73..#defi
01A110:  6E 65 20 44 45 46 4D 50 20 32 0D 0A 23 64 65 66    ne DEFMP 2..#def
01A120:  69 6E 65 20 50 41 47 45 4C 45 4E 20 36 36 0D 0A    ine PAGELEN 66..
01A130:  23 64 65 66 69 6E 65 20 48 55 47 45 20 33 32 30    #define HUGE 320
01A140:  30 30 0D 0A 23 64 65 66 69 6E 65 20 4E 44 49 4D    00..#define NDIM
01A150:  20 35 0D 0A 23 64 65 66 69 6E 65 20 4E 57 49 44     5..#define NWID
01A160:  54 48 20 34 0D 0A 0D 0A 69 6E 74 0D 0A 20 20 74    TH 4....int..  t
01A170:  74 79 6D 6F 64 65 2C 20 2F 2A 20 74 74 79 20 6D    tymode, /* tty m
01A180:  6F 64 65 20 69 66 20 59 45 53 20 2A 2F 0D 0A 20    ode if YES */.. 
01A190:  20 69 74 73 75 62 2C 20 20 20 2F 2A 20 69 74 61     itsub,   /* ita
01A1A0:  6C 69 63 20 73 75 62 73 20 66 6F 72 20 75 6E 64    lic subs for und
01A1B0:  65 72 6C 69 6E 65 73 20 2A 2F 0D 0A 20 20 75 6C    erlines */..  ul
01A1C0:  73 75 62 2C 20 20 20 2F 2A 20 75 6E 64 65 72 6C    sub,   /* underl
01A1D0:  69 6E 65 20 73 75 62 73 20 66 6F 72 20 69 74 61    ine subs for ita
01A1E0:  6C 69 63 73 20 2A 2F 0D 0A 20 20 70 61 73 73 2C    lics */..  pass,
01A1F0:  20 20 20 20 2F 2A 20 70 61 73 73 20 63 6F 75 6E        /* pass coun
01A200:  74 65 72 20 2A 2F 0D 0A 20 20 66 69 6C 6C 2C 20    ter */..  fill, 
01A210:  20 20 20 2F 2A 20 66 69 6C 6C 20 69 66 20 59 45       /* fill if YE
01A220:  53 20 2A 2F 0D 0A 20 20 6A 75 73 74 2C 20 20 20    S */..  just,   
01A230:  20 2F 2A 20 6A 75 73 74 69 66 79 20 69 66 20 59     /* justify if Y
01A240:  45 53 20 2A 2F 0D 0A 20 20 6C 73 76 61 6C 2C 20    ES */..  lsval, 
01A250:  20 20 2F 2A 20 6C 69 6E 65 20 73 70 61 63 69 6E      /* line spacin
01A260:  67 20 2A 2F 0D 0A 20 20 69 6E 76 61 6C 2C 20 20    g */..  inval,  
01A270:  20 2F 2A 20 69 6E 64 65 6E 74 20 76 61 6C 75 65     /* indent value
01A280:  20 2A 2F 0D 0A 20 20 6C 6D 76 61 6C 2C 20 20 20     */..  lmval,   
01A290:  2F 2A 20 6C 65 66 74 20 6D 61 72 67 69 6E 20 76    /* left margin v
01A2A0:  61 6C 75 65 20 2A 2F 0D 0A 20 20 72 6D 76 61 6C    alue */..  rmval
01A2B0:  2C 20 20 20 2F 2A 20 72 69 67 68 74 20 6D 61 72    ,   /* right mar
01A2C0:  67 69 6E 20 76 61 6C 75 65 20 2A 2F 0D 0A 20 20    gin value */..  
01A2D0:  70 61 67 65 6B 69 6C 6C 2C 2F 2A 20 6B 69 6C 6C    pagekill,/* kill
01A2E0:  20 70 61 67 65 20 69 66 20 59 45 53 20 2A 2F 0D     page if YES */.
01A2F0:  0A 20 20 70 6F 73 70 65 63 2C 20 20 2F 2A 20 70    .  pospec,  /* p
01A300:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01A310:  16 00 01 00 02 09 52 E5 16 00 41 02 00 00 00 02    ......R...A.....
01A320:  16 00 46 02 00 00 00 02 16 00 42 02 00 00 00 02    ..F.......B.....
01A330:  16 00 47 02 00 00 00 02 16 00 43 02 00 00 00 02    ..G.......C.....
01A340:  16 00 48 02 00 00 00 02 16 00 44 02 00 00 00 02    ..H.......D.....
01A350:  16 00 49 02 00 00 00 02 16 00 45 02 00 00 00 02    ..I.......E.....
01A360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A3F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01A400:  5B 5D 3D 7B 32 37 2C 27 45 27 2C 31 2C 30 7D 2C    []={27,'E',1,0},
01A410:  20 20 20 2F 2A 20 6E 6F 6E 74 74 79 20 62 6F 6C       /* nontty bol
01A420:  64 66 61 63 65 20 70 72 65 66 69 78 20 2A 2F 0D    dface prefix */.
01A430:  0A 20 20 20 20 20 20 20 62 66 73 75 66 66 5B 5D    .       bfsuff[]
01A440:  3D 7B 32 37 2C 27 46 27 2C 31 2C 30 7D 2C 20 20    ={27,'F',1,0},  
01A450:  20 2F 2A 20 6E 6F 6E 74 74 79 20 62 6F 6C 64 66     /* nontty boldf
01A460:  61 63 65 20 73 75 66 66 69 78 20 2A 2F 0D 0A 20    ace suffix */.. 
01A470:  20 20 20 20 20 2A 64 73 6F 6E 2C 20 2A 64 73 6F         *dson, *dso
01A480:  66 66 2C 0D 0A 20 20 20 20 20 20 20 64 73 70 72    ff,..       dspr
01A490:  65 66 5B 5D 3D 7B 32 37 2C 27 47 27 2C 31 2C 30    ef[]={27,'G',1,0
01A4A0:  7D 2C 20 20 20 2F 2A 20 6E 6F 6E 74 74 79 20 64    },   /* nontty d
01A4B0:  62 6C 20 73 74 72 69 6B 65 20 70 72 65 66 69 78    bl strike prefix
01A4C0:  20 2A 2F 0D 0A 20 20 20 20 20 20 20 64 73 73 75     */..       dssu
01A4D0:  66 66 5B 5D 3D 7B 32 37 2C 27 48 27 2C 31 2C 30    ff[]={27,'H',1,0
01A4E0:  7D 2C 20 20 20 2F 2A 20 6E 6F 6E 74 74 79 20 64    },   /* nontty d
01A4F0:  62 6C 20 73 74 72 69 6B 65 20 73 75 66 66 69 78    bl strike suffix
01A500:  20 2A 2F 0D 0A 20 20 20 20 20 20 2A 69 74 6F 6E     */..      *iton
01A510:  2C 20 2A 69 74 6F 66 66 2C 0D 0A 20 20 20 20 20    , *itoff,..     
01A520:  20 20 69 74 70 72 65 66 5B 5D 3D 7B 32 37 2C 27      itpref[]={27,'
01A530:  34 27 2C 31 2C 30 7D 2C 20 20 20 2F 2A 20 6E 6F    4',1,0},   /* no
01A540:  6E 74 74 79 20 69 74 61 6C 69 63 73 20 70 72 65    ntty italics pre
01A550:  66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 69    fix */..       i
01A560:  74 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 35 27 2C    tsuff[]={27,'5',
01A570:  31 2C 30 7D 2C 20 20 20 2F 2A 20 6E 6F 6E 74 74    1,0},   /* nontt
01A580:  79 20 69 74 61 6C 69 63 73 20 73 75 66 66 69 78    y italics suffix
01A590:  20 2A 2F 0D 0A 20 20 20 20 20 20 2A 64 77 6F 6E     */..      *dwon
01A5A0:  2C 20 2A 64 77 6F 66 66 2C 0D 0A 20 20 20 20 20    , *dwoff,..     
01A5B0:  20 20 64 77 70 72 65 66 5B 5D 3D 7B 32 37 2C 27      dwpref[]={27,'
01A5C0:  57 27 2C 34 39 2C 31 7D 2C 20 20 2F 2A 20 6E 6F    W',49,1},  /* no
01A5D0:  6E 74 74 79 20 64 62 6C 20 77 69 64 65 20 70 72    ntty dbl wide pr
01A5E0:  65 66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20    efix */..       
01A5F0:  64 77 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 57 27    dwsuff[]={27,'W'
01A600:  0A 20 20 20 20 20 20 72 65 74 75 72 6E 3B 0D 0A    .      return;..
01A610:  20 20 20 20 69 66 28 69 6E 62 75 66 5B 30 5D 3D        if(inbuf[0]=
01A620:  3D 63 6D 64 29 20 63 6F 6D 6D 61 6E 64 28 69 6E    =cmd) command(in
01A630:  62 75 66 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20    buf);..    else 
01A640:  7B 0D 0A 20 20 20 20 20 20 69 66 28 6D 65 72 67    {..      if(merg
01A650:  65 28 29 3D 3D 4E 4F 29 20 63 6F 6E 74 69 6E 75    e()==NO) continu
01A660:  65 3B 0D 0A 20 20 20 20 20 20 74 65 78 74 28 69    e;..      text(i
01A670:  6E 62 75 66 29 3B 0D 0A 20 20 20 20 20 20 7D 0D    nbuf);..      }.
01A680:  0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 2F    .    }..  }..../
01A690:  2A 0D 0A 2A 2A 20 69 6E 63 6C 75 64 65 20 2D 2D    *..** include --
01A6A0:  20 70 72 6F 63 65 73 73 20 69 6E 63 6C 75 64 65     process include
01A6B0:  64 20 74 65 78 74 20 28 6E 65 78 74 69 6E 67 20    d text (nexting 
01A6C0:  61 6C 6C 6F 77 65 64 29 0D 0A 2A 2F 0D 0A 69 6E    allowed)..*/..in
01A6D0:  63 6C 75 64 65 28 29 20 7B 0D 0A 20 20 69 6E 74    clude() {..  int
01A6E0:  20 69 2C 20 66 64 3B 0D 0A 20 20 63 68 61 72 20     i, fd;..  char 
01A6F0:  66 6E 61 6D 65 5B 49 4E 53 49 5A 45 5D 3B 0D 0A    fname[INSIZE];..
01A700:  20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28      i=0;..  while(
01A710:  28 69 6E 62 75 66 5B 69 5D 21 3D 27 20 27 29 26    (inbuf[i]!=' ')&
01A720:  28 69 6E 62 75 66 5B 69 5D 21 3D 4E 55 4C 4C 29    (inbuf[i]!=NULL)
01A730:  29 20 2B 2B 69 3B 0D 0A 20 20 67 65 74 77 72 64    ) ++i;..  getwrd
01A740:  28 69 6E 62 75 66 2C 20 26 69 2C 20 66 6E 61 6D    (inbuf, &i, fnam
01A750:  65 29 3B 0D 0A 20 20 69 66 28 28 66 64 3D 66 6F    e);..  if((fd=fo
01A760:  70 65 6E 28 66 6E 61 6D 65 2C 20 22 72 22 29 29    pen(fname, "r"))
01A770:  3D 3D 4E 55 4C 4C 29 20 63 61 6E 74 28 66 6E 61    ==NULL) cant(fna
01A780:  6D 65 29 3B 0D 0A 20 20 6C 6F 75 74 28 66 6E 61    me);..  lout(fna
01A790:  6D 65 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20    me, stderr);..  
01A7A0:  69 66 28 73 68 6F 77 29 20 7B 0D 0A 20 20 20 20    if(show) {..    
01A7B0:  62 72 6B 28 29 3B 0D 0A 20 20 20 20 70 75 74 28    brk();..    put(
01A7C0:  66 6E 61 6D 65 29 3B 0D 0A 20 20 20 20 62 72 6B    fname);..    brk
01A7D0:  28 29 3B 0D 0A 20 20 20 7D 0D 0A 20 20 70 72 6F    ();..   }..  pro
01A7E0:  63 65 73 73 28 66 64 29 3B 0D 0A 20 20 66 63 6C    cess(fd);..  fcl
01A7F0:  6F 73 65 28 66 64 29 3B 0D 0A 20 20 7D 0D 0A 0D    ose(fd);..  }...
01A800:  2C 34 38 2C 31 7D 3B 20 20 2F 2A 20 6E 6F 6E 74    ,48,1};  /* nont
01A810:  74 79 20 64 62 6C 20 77 69 64 65 20 73 75 66 66    ty dbl wide suff
01A820:  69 78 20 2A 2F 0D 0A 0D 0A 63 68 61 72 0D 0A 20    ix */....char.. 
01A830:  20 20 63 6D 64 2C 20 20 20 20 20 20 2F 2A 20 63      cmd,      /* c
01A840:  6F 6D 6D 61 6E 64 20 63 68 61 72 61 63 74 65 72    ommand character
01A850:  20 2A 2F 0D 0A 20 20 20 6D 72 67 2C 20 20 20 20     */..   mrg,    
01A860:  20 20 2F 2A 20 6D 65 72 67 65 20 66 69 65 6C 64      /* merge field
01A870:  20 64 65 6C 69 6D 69 74 65 72 20 2A 2F 0D 0A 20     delimiter */.. 
01A880:  20 20 62 6C 61 6E 6B 2C 20 20 20 20 2F 2A 20 6C      blank,    /* l
01A890:  69 74 65 72 61 6C 20 62 6C 61 6E 6B 20 63 68 61    iteral blank cha
01A8A0:  72 61 63 74 65 72 20 2A 2F 0D 0A 20 20 2A 75 6C    racter */..  *ul
01A8B0:  73 6B 69 70 73 2C 20 20 2F 2A 20 73 70 65 63 69    skips,  /* speci
01A8C0:  66 69 63 20 63 68 61 72 61 63 74 65 72 73 20 74    fic characters t
01A8D0:  6F 20 73 6B 69 70 20 75 6E 64 65 72 6C 69 6E 69    o skip underlini
01A8E0:  6E 67 20 2A 2F 0D 0A 20 20 2A 6F 68 65 61 64 65    ng */..  *oheade
01A8F0:  72 2C 20 20 2F 2A 20 6F 64 64 20 70 61 67 65 20    r,  /* odd page 
01A900:  68 65 61 64 65 72 20 2A 2F 0D 0A 20 20 2A 65 68    header */..  *eh
01A910:  65 61 64 65 72 2C 20 20 2F 2A 20 65 76 65 6E 20    eader,  /* even 
01A920:  70 61 67 65 20 68 65 61 64 65 72 20 2A 2F 0D 0A    page header */..
01A930:  20 20 2A 6F 66 6F 6F 74 65 72 2C 20 20 2F 2A 20      *ofooter,  /* 
01A940:  6F 64 64 20 70 61 67 65 20 66 6F 6F 74 65 72 20    odd page footer 
01A950:  2A 2F 0D 0A 20 20 2A 65 66 6F 6F 74 65 72 2C 20    */..  *efooter, 
01A960:  20 2F 2A 20 65 76 65 6E 20 70 61 67 65 20 66 6F     /* even page fo
01A970:  6F 74 65 72 20 2A 2F 0D 0A 20 20 2A 6F 75 74 62    oter */..  *outb
01A980:  75 66 2C 20 20 20 2F 2A 20 6F 75 74 70 75 74 20    uf,   /* output 
01A990:  62 75 66 66 65 72 20 2A 2F 0D 0A 20 20 2A 74 74    buffer */..  *tt
01A9A0:  6C 62 75 66 2C 20 20 20 2F 2A 20 62 75 66 66 65    lbuf,   /* buffe
01A9B0:  72 20 66 6F 72 20 74 69 74 6C 65 73 20 2A 2F 0D    r for titles */.
01A9C0:  0A 20 20 2A 6D 72 67 62 75 66 2C 20 20 20 2F 2A    .  *mrgbuf,   /*
01A9D0:  20 62 75 66 66 65 72 20 66 6F 72 20 6D 65 72 67     buffer for merg
01A9E0:  65 64 20 74 65 78 74 20 2A 2F 0D 0A 20 20 2A 69    ed text */..  *i
01A9F0:  6E 62 75 66 2C 20 20 20 20 2F 2A 20 69 6E 70 75    nbuf,    /* inpu
01AA00:  0A 2F 2A 0D 0A 2A 2A 20 70 72 6F 6D 70 74 20 2D    ./*..** prompt -
01AA10:  2D 20 70 72 6F 6D 70 74 20 6F 70 65 72 61 74 6F    - prompt operato
01AA20:  72 20 66 6F 72 20 69 6E 70 75 74 0D 0A 2A 2F 0D    r for input..*/.
01AA30:  0A 70 72 6F 6D 70 74 28 29 20 7B 0D 0A 20 20 66    .prompt() {..  f
01AA40:  70 75 74 73 28 22 5C 37 65 6E 74 65 72 3A 20 22    puts("\7enter: "
01AA50:  2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 66 70    , stderr);..  fp
01AA60:  75 74 73 28 69 6E 62 75 66 2B 33 2C 20 73 74 64    uts(inbuf+3, std
01AA70:  65 72 72 29 3B 0D 0A 20 20 66 70 75 74 63 28 27    err);..  fputc('
01AA80:  5C 6E 27 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20    \n', stderr);.. 
01AA90:  20 70 72 6F 63 65 73 73 28 73 74 64 65 72 72 29     process(stderr)
01AAA0:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A    ;..  }..../*..**
01AAB0:  20 69 6E 69 74 20 2D 2D 20 69 6E 69 74 69 61 6C     init -- initial
01AAC0:  69 7A 65 20 70 61 72 61 6D 65 74 65 72 73 0D 0A    ize parameters..
01AAD0:  2A 2F 0D 0A 69 6E 69 74 28 29 20 7B 0D 0A 20 20    */..init() {..  
01AAE0:  63 6D 64 3D 43 4F 4D 4D 41 4E 44 3B 0D 0A 20 20    cmd=COMMAND;..  
01AAF0:  6D 72 67 3D 4D 52 47 43 48 41 52 3B 0D 0A 20 20    mrg=MRGCHAR;..  
01AB00:  62 6C 61 6E 6B 3D 42 4C 41 4E 4B 3B 0D 0A 20 20    blank=BLANK;..  
01AB10:  73 65 6E 74 65 6E 64 3D 4E 4F 3B 0D 0A 20 20 66    sentend=NO;..  f
01AB20:  69 6C 6C 3D 6A 75 73 74 3D 59 45 53 3B 0D 0A 20    ill=just=YES;.. 
01AB30:  20 6C 73 76 61 6C 3D 31 3B 0D 0A 20 20 69 6E 76     lsval=1;..  inv
01AB40:  61 6C 3D 74 69 76 61 6C 3D 73 71 76 61 6C 3D 30    al=tival=sqval=0
01AB50:  3B 0D 0A 20 20 6C 6D 76 61 6C 3D 44 45 46 4C 4D    ;..  lmval=DEFLM
01AB60:  3B 0D 0A 20 20 72 6D 76 61 6C 3D 44 45 46 52 4D    ;..  rmval=DEFRM
01AB70:  3B 0D 0A 20 20 62 66 76 61 6C 3D 69 74 76 61 6C    ;..  bfval=itval
01AB80:  3D 63 65 76 61 6C 3D 75 6C 76 61 6C 3D 63 75 61    =ceval=ulval=cua
01AB90:  63 74 3D 30 3B 0D 0A 20 20 63 75 72 70 61 67 3D    ct=0;..  curpag=
01ABA0:  30 3B 0D 0A 20 20 6E 65 77 70 61 67 3D 31 3B 0D    0;..  newpag=1;.
01ABB0:  0A 20 20 6C 69 6E 65 6E 6F 3D 30 3B 0D 0A 20 20    .  lineno=0;..  
01ABC0:  6D 70 76 61 6C 3D 44 45 46 4D 50 3B 0D 0A 20 20    mpval=DEFMP;..  
01ABD0:  62 6C 69 6E 65 3D 4E 4F 3B 20 2F 2A 2A 20 70 72    bline=NO; /** pr
01ABE0:  65 76 65 6E 74 73 20 61 20 62 6C 61 6E 6B 20 66    events a blank f
01ABF0:  69 72 73 74 20 70 61 67 65 20 2A 2A 2F 0D 0A 20    irst page **/.. 
01AC00:  74 20 62 75 66 66 65 72 20 2A 2F 0D 0A 20 20 2A    t buffer */..  *
01AC10:  77 72 64 62 75 66 2C 20 20 20 2F 2A 20 73 70 61    wrdbuf,   /* spa
01AC20:  63 65 20 66 6F 72 20 6F 6E 65 20 77 6F 72 64 20    ce for one word 
01AC30:  2A 2F 0D 0A 20 20 2A 6E 62 72 73 74 72 3B 20 20    */..  *nbrstr;  
01AC40:  20 2F 2A 20 6E 75 6D 62 65 72 20 73 74 72 69 6E     /* number strin
01AC50:  67 20 2A 2F 0D 0A 0D 0A 6D 61 69 6E 28 61 72 67    g */....main(arg
01AC60:  63 2C 20 61 72 67 76 29 20 69 6E 74 20 61 72 67    c, argv) int arg
01AC70:  63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 6F    c, *argv; {..  o
01AC80:  68 65 61 64 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D    header=malloc((M
01AC90:  41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 65    AXLINE+1));..  e
01ACA0:  68 65 61 64 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D    header=malloc((M
01ACB0:  41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6F    AXLINE+1));..  o
01ACC0:  66 6F 6F 74 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D    footer=malloc((M
01ACD0:  41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 65    AXLINE+1));..  e
01ACE0:  66 6F 6F 74 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D    footer=malloc((M
01ACF0:  41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6D    AXLINE+1));..  m
01AD00:  72 67 62 75 66 3D 6D 61 6C 6C 6F 63 28 28 4D 41    rgbuf=malloc((MA
01AD10:  58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6F 75    XLINE+1));..  ou
01AD20:  74 62 75 66 3D 6D 61 6C 6C 6F 63 28 4D 41 58 4F    tbuf=malloc(MAXO
01AD30:  55 54 29 3B 0D 0A 20 20 74 74 6C 62 75 66 3D 6D    UT);..  ttlbuf=m
01AD40:  61 6C 6C 6F 63 28 4D 41 58 4F 55 54 29 3B 0D 0A    alloc(MAXOUT);..
01AD50:  20 20 77 72 64 62 75 66 3D 6D 61 6C 6C 6F 63 28      wrdbuf=malloc(
01AD60:  4D 41 58 4F 55 54 29 3B 0D 0A 20 20 69 6E 62 75    MAXOUT);..  inbu
01AD70:  66 3D 6D 61 6C 6C 6F 63 28 49 4E 53 49 5A 45 29    f=malloc(INSIZE)
01AD80:  3B 0D 0A 20 20 6E 62 72 73 74 72 3D 6D 61 6C 6C    ;..  nbrstr=mall
01AD90:  6F 63 28 4E 44 49 4D 29 3B 0D 0A 20 20 6E 62 72    oc(NDIM);..  nbr
01ADA0:  73 74 72 5B 4E 57 49 44 54 48 5D 3D 4E 55 4C 4C    str[NWIDTH]=NULL
01ADB0:  3B 0D 0A 20 20 64 6F 61 72 67 73 28 61 72 67 63    ;..  doargs(argc
01ADC0:  2C 20 61 72 67 76 29 3B 0D 0A 20 20 6D 70 63 6E    , argv);..  mpcn
01ADD0:  74 3D 39 39 3B 0D 0A 20 20 70 61 73 73 3D 30 3B    t=99;..  pass=0;
01ADE0:  0D 0A 20 20 69 66 28 6D 72 67 66 64 29 20 7B 0D    ..  if(mrgfd) {.
01ADF0:  0A 20 20 20 20 77 68 69 6C 65 28 66 67 65 74 73    .    while(fgets
01AE00:  20 70 6C 76 61 6C 3D 50 41 47 45 4C 45 4E 3B 0D     plval=PAGELEN;.
01AE10:  0A 20 20 6D 31 76 61 6C 3D 44 45 46 4D 31 3B 0D    .  m1val=DEFM1;.
01AE20:  0A 20 20 6D 32 76 61 6C 3D 44 45 46 4D 32 3B 0D    .  m2val=DEFM2;.
01AE30:  0A 20 20 6D 33 76 61 6C 3D 44 45 46 4D 33 3B 0D    .  m3val=DEFM3;.
01AE40:  0A 20 20 6D 34 76 61 6C 3D 44 45 46 4D 34 3B 0D    .  m4val=DEFM4;.
01AE50:  0A 20 20 62 6F 74 74 6F 6D 3D 70 6C 76 61 6C 2D    .  bottom=plval-
01AE60:  6D 33 76 61 6C 2D 6D 34 76 61 6C 3B 0D 0A 20 20    m3val-m4val;..  
01AE70:  6F 68 65 61 64 65 72 5B 30 5D 3D 65 68 65 61 64    oheader[0]=ehead
01AE80:  65 72 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 6F    er[0]=NULL;..  o
01AE90:  66 6F 6F 74 65 72 5B 30 5D 3D 65 66 6F 6F 74 65    footer[0]=efoote
01AEA0:  72 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 6F 75    r[0]=NULL;..  ou
01AEB0:  74 70 3D 2D 31 3B 0D 0A 20 20 6F 75 74 77 3D 6F    tp=-1;..  outw=o
01AEC0:  75 74 77 64 73 3D 30 3B 0D 0A 20 20 64 69 72 3D    utwds=0;..  dir=
01AED0:  30 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A    0;..  }..../*..*
01AEE0:  2A 20 63 6F 6D 6D 61 6E 64 20 2D 2D 20 70 72 6F    * command -- pro
01AEF0:  63 65 73 73 20 63 6F 6D 6D 61 6E 64 73 0D 0A 2A    cess commands..*
01AF00:  2F 0D 0A 63 6F 6D 6D 61 6E 64 28 62 75 66 29 20    /..command(buf) 
01AF10:  63 68 61 72 20 62 75 66 5B 5D 3B 20 7B 0D 0A 20    char buf[]; {.. 
01AF20:  20 69 6E 74 20 61 72 67 74 79 70 2C 20 73 70 76     int argtyp, spv
01AF30:  61 6C 2C 20 76 61 6C 3B 0D 0A 20 20 69 66 28 62    al, val;..  if(b
01AF40:  75 66 5B 31 5D 20 3D 3D 20 63 6D 64 29 20 72 65    uf[1] == cmd) re
01AF50:  74 75 72 6E 3B 20 20 20 2F 2A 20 63 6F 6D 6D 65    turn;   /* comme
01AF60:  6E 74 20 2A 2F 0D 0A 20 20 76 61 6C 3D 67 65 74    nt */..  val=get
01AF70:  76 61 6C 28 62 75 66 2C 20 26 61 72 67 74 79 70    val(buf, &argtyp
01AF80:  29 3B 0D 0A 20 20 73 77 69 74 63 68 28 28 74 6F    );..  switch((to
01AF90:  75 70 70 65 72 28 62 75 66 5B 31 5D 29 20 3C 3C    upper(buf[1]) <<
01AFA0:  20 38 29 20 2B 20 74 6F 75 70 70 65 72 28 62 75     8) + toupper(bu
01AFB0:  66 5B 32 5D 29 29 20 7B 0D 0A 20 20 20 20 64 65    f[2])) {..    de
01AFC0:  66 61 75 6C 74 3A 20 7B 0D 0A 20 20 20 20 20 20    fault: {..      
01AFD0:  66 70 75 74 73 28 22 5C 37 6E 6F 74 65 3A 20 22    fputs("\7note: "
01AFE0:  2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20    , stderr);..    
01AFF0:  20 20 66 70 75 74 73 28 62 75 66 2C 20 73 74 64      fputs(buf, std
01B000:  28 6D 72 67 62 75 66 2C 20 28 4D 41 58 4C 49 4E    (mrgbuf, (MAXLIN
01B010:  45 2B 31 29 2C 20 6D 72 67 66 64 29 20 26 26 20    E+1), mrgfd) && 
01B020:  28 70 61 73 73 20 3C 20 65 63 6F 70 79 29 29 20    (pass < ecopy)) 
01B030:  7B 0D 0A 20 20 20 20 20 20 69 66 28 2B 2B 70 61    {..      if(++pa
01B040:  73 73 20 3C 20 62 63 6F 70 79 29 20 63 6F 6E 74    ss < bcopy) cont
01B050:  69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 74 72 69    inue;..      tri
01B060:  6D 28 6D 72 67 62 75 66 29 3B 0D 0A 20 20 20 20    m(mrgbuf);..    
01B070:  20 20 6E 65 78 74 70 61 73 73 28 29 3B 0D 0A 20      nextpass();.. 
01B080:  20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20         }..    }.. 
01B090:  20 65 6C 73 65 20 69 66 28 65 63 6F 70 79 20 3D     else if(ecopy =
01B0A0:  3D 20 48 55 47 45 29 20 6E 65 78 74 70 61 73 73    = HUGE) nextpass
01B0B0:  28 29 3B 0D 0A 20 20 65 6C 73 65 20 66 6F 72 28    ();..  else for(
01B0C0:  70 61 73 73 20 3D 20 62 63 6F 70 79 3B 20 70 61    pass = bcopy; pa
01B0D0:  73 73 20 3C 3D 20 65 63 6F 70 79 3B 20 2B 2B 70    ss <= ecopy; ++p
01B0E0:  61 73 73 29 20 6E 65 78 74 70 61 73 73 28 29 3B    ass) nextpass();
01B0F0:  0D 0A 20 20 66 63 6C 6F 73 65 28 73 74 64 6F 75    ..  fclose(stdou
01B100:  74 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A    t);..  }..../*..
01B110:  2A 2A 20 6E 65 78 74 70 61 73 73 20 2D 2D 20 6D    ** nextpass -- m
01B120:  61 6B 65 20 6E 65 78 74 20 70 61 73 73 20 6F 6E    ake next pass on
01B130:  20 73 74 64 69 6E 20 74 65 78 74 0D 0A 2A 2F 0D     stdin text..*/.
01B140:  0A 6E 65 78 74 70 61 73 73 28 29 20 7B 0D 0A 20    .nextpass() {.. 
01B150:  20 63 68 61 72 20 63 2C 20 73 74 72 5B 36 5D 3B     char c, str[6];
01B160:  0D 0A 20 20 69 6E 69 74 28 29 3B 0D 0A 20 20 69    ..  init();..  i
01B170:  66 28 6D 72 67 66 64 20 7C 7C 20 65 63 6F 70 79    f(mrgfd || ecopy
01B180:  20 21 3D 20 48 55 47 45 29 20 7B 0D 0A 20 20 20     != HUGE) {..   
01B190:  20 63 73 65 65 6B 28 73 74 64 69 6E 2C 20 30 2C     cseek(stdin, 0,
01B1A0:  20 30 29 3B 0D 0A 20 20 20 20 6C 65 66 74 28 69     0);..    left(i
01B1B0:  74 6F 64 28 70 61 73 73 2C 20 73 74 72 2C 20 36    tod(pass, str, 6
01B1C0:  29 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 22    ));..    fputs("
01B1D0:  63 6F 70 79 20 22 2C 20 73 74 64 65 72 72 29 3B    copy ", stderr);
01B1E0:  0D 0A 20 20 20 20 66 70 75 74 73 28 73 74 72 2C    ..    fputs(str,
01B1F0:  20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 66     stderr);..    f
01B200:  65 72 72 29 3B 0D 0A 20 20 20 20 20 20 66 70 75    err);..      fpu
01B210:  74 63 28 27 5C 6E 27 2C 20 73 74 64 65 72 72 29    tc('\n', stderr)
01B220:  3B 0D 0A 20 20 20 20 20 20 72 65 74 75 72 6E 3B    ;..      return;
01B230:  0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63    ..      }..    c
01B240:  61 73 65 20 27 46 49 27 3A 20 7B 0D 0A 20 20 20    ase 'FI': {..   
01B250:  20 20 20 62 72 6B 28 29 3B 0D 0A 20 20 20 20 20       brk();..     
01B260:  20 66 69 6C 6C 3D 59 45 53 3B 0D 0A 20 20 20 20     fill=YES;..    
01B270:  20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20      break;..      
01B280:  7D 0D 0A 20 20 20 20 63 61 73 65 20 27 4E 46 27    }..    case 'NF'
01B290:  3A 20 7B 0D 0A 20 20 20 20 20 20 62 72 6B 28 29    : {..      brk()
01B2A0:  3B 0D 0A 20 20 20 20 20 20 66 69 6C 6C 3D 4E 4F    ;..      fill=NO
01B2B0:  3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D    ;..      break;.
01B2C0:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61    .      }..    ca
01B2D0:  73 65 20 27 4A 55 27 3A 20 7B 0D 0A 20 20 20 20    se 'JU': {..    
01B2E0:  20 20 62 72 6B 28 29 3B 0D 0A 20 20 20 20 20 20      brk();..      
01B2F0:  6A 75 73 74 3D 59 45 53 3B 0D 0A 20 20 20 20 20    just=YES;..     
01B300:  20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D     break;..      }
01B310:  0D 0A 20 20 20 20 63 61 73 65 20 27 4E 4A 27 3A    ..    case 'NJ':
01B320:  20 7B 0D 0A 20 20 20 20 20 20 62 72 6B 28 29 3B     {..      brk();
01B330:  0D 0A 20 20 20 20 20 20 6A 75 73 74 3D 4E 4F 3B    ..      just=NO;
01B340:  0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A    ..      break;..
01B350:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73          }..    cas
01B360:  65 20 27 42 52 27 3A 7B 0D 0A 20 20 20 20 20 20    e 'BR':{..      
01B370:  62 72 6B 28 29 3B 0D 0A 20 20 20 20 20 20 62 72    brk();..      br
01B380:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    eak;..      }.. 
01B390:  20 20 20 63 61 73 65 20 27 4C 53 27 3A 20 7B 0D       case 'LS': {.
01B3A0:  0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28    .      setvalue(
01B3B0:  26 6C 73 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67    &lsval, val, arg
01B3C0:  74 79 70 2C 20 31 2C 20 31 2C 20 48 55 47 45 29    typ, 1, 1, HUGE)
01B3D0:  3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D    ;..      break;.
01B3E0:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61    .      }..    ca
01B3F0:  73 65 20 27 48 45 27 3A 20 7B 0D 0A 20 20 20 20    se 'HE': {..    
01B400:  70 75 74 73 28 22 20 20 20 22 2C 20 73 74 64 65    puts("   ", stde
01B410:  72 72 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 63    rr);..    }..  c
01B420:  3D 4E 55 4C 4C 3B 0D 0A 20 20 69 66 28 28 28 70    =NULL;..  if(((p
01B430:  61 73 73 20 3C 3D 20 62 63 6F 70 79 29 20 7C 7C    ass <= bcopy) ||
01B440:  20 28 70 61 75 73 65 3D 3D 59 45 53 29 29 20 26     (pause==YES)) &
01B450:  26 0D 0A 20 20 20 20 20 72 65 61 64 79 20 26 26    &..     ready &&
01B460:  20 69 73 61 74 74 79 28 73 74 64 6F 75 74 29 29     isatty(stdout))
01B470:  20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 72     {..    fputs("r
01B480:  65 61 64 79 20 70 72 69 6E 74 65 72 2E 2E 2E 20    eady printer... 
01B490:  22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20    ", stderr);..   
01B4A0:  20 63 3D 66 67 65 74 63 28 73 74 64 65 72 72 29     c=fgetc(stderr)
01B4B0:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 63    ;..    }..  if(c
01B4C0:  21 3D 4B 49 4C 4C 29 20 7B 0D 0A 20 20 20 20 70    !=KILL) {..    p
01B4D0:  72 6F 63 65 73 73 28 73 74 64 69 6E 29 3B 0D 0A    rocess(stdin);..
01B4E0:  20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 20 3E        if((lineno >
01B4F0:  20 30 29 7C 28 6F 75 74 70 20 3E 20 2D 31 29 29     0)|(outp > -1))
01B500:  20 73 70 61 63 65 28 48 55 47 45 29 3B 0D 0A 20     space(HUGE);.. 
01B510:  20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 66 70 75       }..  else fpu
01B520:  74 63 28 27 5C 6E 27 2C 20 73 74 64 65 72 72 29    tc('\n', stderr)
01B530:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A    ;..  }..../*..**
01B540:  20 70 72 6F 63 65 73 73 20 2D 2D 20 70 72 6F 63     process -- proc
01B550:  65 73 73 20 74 65 78 74 20 66 72 6F 6D 20 66 64    ess text from fd
01B560:  0D 0A 2A 2F 0D 0A 70 72 6F 63 65 73 73 28 66 64    ..*/..process(fd
01B570:  29 20 69 6E 74 20 66 64 3B 20 7B 0D 0A 20 20 77    ) int fd; {..  w
01B580:  68 69 6C 65 28 66 67 65 74 73 28 69 6E 62 75 66    hile(fgets(inbuf
01B590:  2C 20 49 4E 53 49 5A 45 2C 20 66 64 29 21 3D 4E    , INSIZE, fd)!=N
01B5A0:  55 4C 4C 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C    ULL) {..    poll
01B5B0:  28 59 45 53 29 3B 0D 0A 20 20 20 20 74 72 69 6D    (YES);..    trim
01B5C0:  28 69 6E 62 75 66 29 3B 0D 0A 20 20 20 20 69 66    (inbuf);..    if
01B5D0:  28 28 66 64 3D 3D 73 74 64 65 72 72 29 26 28 69    ((fd==stderr)&(i
01B5E0:  6E 62 75 66 5B 30 5D 3D 3D 63 6D 64 29 26 28 69    nbuf[0]==cmd)&(i
01B5F0:  6E 62 75 66 5B 31 5D 3D 3D 4E 55 4C 4C 29 29 0D    nbuf[1]==NULL)).
01B600:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01B610:  17 00 01 00 02 09 52 E5 17 00 41 02 00 00 00 02    ......R...A.....
01B620:  17 00 46 02 00 00 00 02 17 00 42 02 00 00 00 02    ..F.......B.....
01B630:  17 00 47 02 00 00 00 02 17 00 43 02 00 00 00 02    ..G.......C.....
01B640:  17 00 48 02 00 00 00 02 17 00 44 02 00 00 00 02    ..H.......D.....
01B650:  17 00 49 02 00 00 00 02 17 00 45 02 00 00 00 02    ..I.......E.....
01B660:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B670:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B680:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B690:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B6F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01B700:  20 20 67 65 74 74 6C 28 62 75 66 2C 20 6F 68 65      gettl(buf, ohe
01B710:  61 64 65 72 29 3B 0D 0A 20 20 20 20 20 20 67 65    ader);..      ge
01B720:  74 74 6C 28 62 75 66 2C 20 65 68 65 61 64 65 72    ttl(buf, eheader
01B730:  29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B    );..      break;
01B740:  0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63    ..      }..    c
01B750:  61 73 65 20 27 4F 48 27 3A 20 7B 0D 0A 20 20 20    ase 'OH': {..   
01B760:  20 20 20 67 65 74 74 6C 28 62 75 66 2C 20 6F 68       gettl(buf, oh
01B770:  65 61 64 65 72 29 3B 0D 0A 20 20 20 20 20 20 62    eader);..      b
01B780:  72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    reak;..      }..
01B790:  20 20 20 20 63 61 73 65 20 27 45 48 27 3A 20 7B        case 'EH': {
01B7A0:  0D 0A 20 20 20 20 20 20 67 65 74 74 6C 28 62 75    ..      gettl(bu
01B7B0:  66 2C 20 65 68 65 61 64 65 72 29 3B 0D 0A 20 20    f, eheader);..  
01B7C0:  20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20        break;..    
01B7D0:  20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 46      }..    case 'F
01B7E0:  4F 27 3A 20 7B 0D 0A 20 20 20 20 20 20 67 65 74    O': {..      get
01B7F0:  74 6C 28 62 75 66 2C 20 6F 66 6F 6F 74 65 72 29    tl(buf, ofooter)
01B800:  3B 0D 0A 20 20 20 20 20 20 67 65 74 74 6C 28 62    ;..      gettl(b
01B810:  75 66 2C 20 65 66 6F 6F 74 65 72 29 3B 0D 0A 20    uf, efooter);.. 
01B820:  20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20         break;..   
01B830:  20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27       }..    case '
01B840:  4F 46 27 3A 20 7B 0D 0A 20 20 20 20 20 20 67 65    OF': {..      ge
01B850:  74 74 6C 28 62 75 66 2C 20 6F 66 6F 6F 74 65 72    ttl(buf, ofooter
01B860:  29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B    );..      break;
01B870:  0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63    ..      }..    c
01B880:  61 73 65 20 27 45 46 27 3A 20 7B 0D 0A 20 20 20    ase 'EF': {..   
01B890:  20 20 20 67 65 74 74 6C 28 62 75 66 2C 20 65 66       gettl(buf, ef
01B8A0:  6F 6F 74 65 72 29 3B 0D 0A 20 20 20 20 20 20 62    ooter);..      b
01B8B0:  72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    reak;..      }..
01B8C0:  20 20 20 20 63 61 73 65 20 27 53 50 27 3A 20 7B        case 'SP': {
01B8D0:  0D 0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65    ..      setvalue
01B8E0:  28 26 73 70 76 61 6C 2C 20 76 61 6C 2C 20 61 72    (&spval, val, ar
01B8F0:  67 74 79 70 2C 20 31 2C 20 30 2C 20 48 55 47 45    gtyp, 1, 0, HUGE
01B900:  20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 4E 45     }..    case 'NE
01B910:  27 3A 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28    ': {..      if((
01B920:  28 62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E 6F 29 20    (bottom-lineno) 
01B930:  3C 20 76 61 6C 29 20 26 20 28 6C 69 6E 65 6E 6F    < val) & (lineno
01B940:  20 3E 20 30 29 29 0D 0A 20 20 20 20 20 20 20 20     > 0))..        
01B950:  73 70 61 63 65 28 48 55 47 45 29 3B 0D 0A 20 20    space(HUGE);..  
01B960:  20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20        break;..    
01B970:  20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 52      }..    case 'R
01B980:  53 27 3A 20 7B 0D 0A 20 20 20 20 20 20 69 66 28    S': {..      if(
01B990:  28 28 62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E 6F 29    ((bottom-lineno)
01B9A0:  20 3C 20 76 61 6C 29 20 26 20 28 6C 69 6E 65 6E     < val) & (linen
01B9B0:  6F 20 3E 20 30 29 29 0D 0A 20 20 20 20 20 20 20    o > 0))..       
01B9C0:  20 73 70 61 63 65 28 48 55 47 45 29 3B 0D 0A 20     space(HUGE);.. 
01B9D0:  20 20 20 20 20 73 70 61 63 65 28 76 61 6C 29 3B         space(val);
01B9E0:  0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A    ..      break;..
01B9F0:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73          }..    cas
01BA00:  65 20 27 53 4F 27 3A 20 7B 0D 0A 20 20 20 20 20    e 'SO': {..     
01BA10:  20 69 6E 63 6C 75 64 65 28 29 3B 0D 0A 20 20 20     include();..   
01BA20:  20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20       break;..     
01BA30:  20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 50 52     }..    case 'PR
01BA40:  27 3A 20 7B 0D 0A 20 20 20 20 20 20 70 72 6F 6D    ': {..      prom
01BA50:  70 74 28 29 3B 0D 0A 20 20 20 20 20 20 62 72 65    pt();..      bre
01BA60:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01BA70:  20 20 63 61 73 65 20 27 43 43 27 3A 20 7B 0D 0A      case 'CC': {..
01BA80:  20 20 20 20 20 20 76 61 6C 3D 30 3B 0D 0A 20 20          val=0;..  
01BA90:  20 20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20        getwrd(buf, 
01BAA0:  26 76 61 6C 2C 20 77 72 64 62 75 66 29 3B 0D 0A    &val, wrdbuf);..
01BAB0:  20 20 20 20 20 20 69 66 28 67 65 74 77 72 64 28          if(getwrd(
01BAC0:  62 75 66 2C 20 26 76 61 6C 2C 20 77 72 64 62 75    buf, &val, wrdbu
01BAD0:  66 29 3D 3D 31 29 20 63 6D 64 3D 77 72 64 62 75    f)==1) cmd=wrdbu
01BAE0:  66 5B 30 5D 3B 0D 0A 20 20 20 20 20 20 62 72 65    f[0];..      bre
01BAF0:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01BB00:  29 3B 0D 0A 20 20 20 20 20 20 73 70 61 63 65 28    );..      space(
01BB10:  73 70 76 61 6C 29 3B 0D 0A 20 20 20 20 20 20 62    spval);..      b
01BB20:  6C 69 6E 65 3D 59 45 53 3B 0D 0A 20 20 20 20 20    line=YES;..     
01BB30:  20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D     break;..      }
01BB40:  0D 0A 20 20 20 20 63 61 73 65 20 27 42 50 27 3A    ..    case 'BP':
01BB50:  20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28 6C 69     {..      if((li
01BB60:  6E 65 6E 6F 20 3E 20 30 29 7C 28 6F 75 74 70 20    neno > 0)|(outp 
01BB70:  3E 20 2D 31 29 29 20 73 70 61 63 65 28 48 55 47    > -1)) space(HUG
01BB80:  45 29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76 61    E);..      setva
01BB90:  6C 75 65 28 26 63 75 72 70 61 67 2C 20 76 61 6C    lue(&curpag, val
01BBA0:  2C 20 61 72 67 74 79 70 2C 20 6E 65 77 70 61 67    , argtyp, newpag
01BBB0:  2C 20 2D 48 55 47 45 2C 20 48 55 47 45 29 3B 0D    , -HUGE, HUGE);.
01BBC0:  0A 20 20 20 20 20 20 6E 65 77 70 61 67 3D 63 75    .      newpag=cu
01BBD0:  72 70 61 67 3B 0D 0A 20 20 20 20 20 20 62 72 65    rpag;..      bre
01BBE0:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01BBF0:  20 20 63 61 73 65 20 27 50 4C 27 3A 20 7B 0D 0A      case 'PL': {..
01BC00:  20 20 20 20 20 20 69 66 28 76 61 6C 3D 3D 30 29          if(val==0)
01BC10:  20 7B 0D 0A 20 20 20 20 20 20 20 20 6C 69 6E 65     {..        line
01BC20:  6E 6F 3D 31 3B 0D 0A 20 20 20 20 20 20 20 20 70    no=1;..        p
01BC30:  6C 76 61 6C 3D 30 3B 0D 0A 20 20 20 20 20 20 20    lval=0;..       
01BC40:  20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 7B     }..      else {
01BC50:  0D 0A 20 20 20 20 20 20 20 20 73 65 74 76 61 6C    ..        setval
01BC60:  75 65 28 26 70 6C 76 61 6C 2C 20 76 61 6C 2C 20    ue(&plval, val, 
01BC70:  61 72 67 74 79 70 2C 0D 0A 20 20 20 20 20 20 20    argtyp,..       
01BC80:  20 20 20 20 20 50 41 47 45 4C 45 4E 2C 20 6D 31         PAGELEN, m1
01BC90:  76 61 6C 2B 6D 32 76 61 6C 2B 6D 33 76 61 6C 2B    val+m2val+m3val+
01BCA0:  6D 34 76 61 6C 2B 31 2C 20 48 55 47 45 29 3B 0D    m4val+1, HUGE);.
01BCB0:  0A 20 20 20 20 20 20 20 20 62 6F 74 74 6F 6D 3D    .        bottom=
01BCC0:  70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D 34 76 61    plval-m3val-m4va
01BCD0:  6C 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20    l;..        }.. 
01BCE0:  20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20         break;..   
01BCF0:  20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27       }..    case '
01BD00:  20 20 63 61 73 65 20 27 4D 43 27 3A 20 7B 0D 0A      case 'MC': {..
01BD10:  20 20 20 20 20 20 76 61 6C 3D 30 3B 0D 0A 20 20          val=0;..  
01BD20:  20 20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20        getwrd(buf, 
01BD30:  26 76 61 6C 2C 20 77 72 64 62 75 66 29 3B 0D 0A    &val, wrdbuf);..
01BD40:  20 20 20 20 20 20 69 66 28 67 65 74 77 72 64 28          if(getwrd(
01BD50:  62 75 66 2C 20 26 76 61 6C 2C 20 77 72 64 62 75    buf, &val, wrdbu
01BD60:  66 29 3D 3D 31 29 20 6D 72 67 3D 77 72 64 62 75    f)==1) mrg=wrdbu
01BD70:  66 5B 30 5D 3B 0D 0A 20 20 20 20 20 20 62 72 65    f[0];..      bre
01BD80:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01BD90:  20 20 63 61 73 65 20 27 42 43 27 3A 20 7B 0D 0A      case 'BC': {..
01BDA0:  20 20 20 20 20 20 76 61 6C 3D 30 3B 0D 0A 20 20          val=0;..  
01BDB0:  20 20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20        getwrd(buf, 
01BDC0:  26 76 61 6C 2C 20 77 72 64 62 75 66 29 3B 0D 0A    &val, wrdbuf);..
01BDD0:  20 20 20 20 20 20 69 66 28 67 65 74 77 72 64 28          if(getwrd(
01BDE0:  62 75 66 2C 20 26 76 61 6C 2C 20 77 72 64 62 75    buf, &val, wrdbu
01BDF0:  66 29 3D 3D 31 29 20 62 6C 61 6E 6B 3D 77 72 64    f)==1) blank=wrd
01BE00:  62 75 66 5B 30 5D 3B 0D 0A 20 20 20 20 20 20 62    buf[0];..      b
01BE10:  72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    reak;..      }..
01BE20:  20 20 20 20 63 61 73 65 20 27 4D 31 27 3A 20 7B        case 'M1': {
01BE30:  0D 0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65    ..      setvalue
01BE40:  28 26 6D 31 76 61 6C 2C 20 76 61 6C 2C 20 61 72    (&m1val, val, ar
01BE50:  67 74 79 70 2C 20 44 45 46 4D 31 2C 20 30 2C 20    gtyp, DEFM1, 0, 
01BE60:  48 55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72    HUGE);..      br
01BE70:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    eak;..      }.. 
01BE80:  20 20 20 63 61 73 65 20 27 4D 32 27 3A 20 7B 0D       case 'M2': {.
01BE90:  0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28    .      setvalue(
01BEA0:  26 6D 32 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67    &m2val, val, arg
01BEB0:  74 79 70 2C 20 44 45 46 4D 32 2C 20 30 2C 20 48    typ, DEFM2, 0, H
01BEC0:  55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72 65    UGE);..      bre
01BED0:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01BEE0:  20 20 63 61 73 65 20 27 4D 33 27 3A 20 7B 0D 0A      case 'M3': {..
01BEF0:  20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26          setvalue(&
01BF00:  49 4E 27 3A 20 7B 0D 0A 20 20 20 20 20 20 62 72    IN': {..      br
01BF10:  6B 28 29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76    k();..      setv
01BF20:  61 6C 75 65 28 26 69 6E 76 61 6C 2C 20 76 61 6C    alue(&inval, val
01BF30:  2C 20 61 72 67 74 79 70 2C 20 30 2C 20 2D 6C 6D    , argtyp, 0, -lm
01BF40:  76 61 6C 2C 20 72 6D 76 61 6C 2D 6C 6D 76 61 6C    val, rmval-lmval
01BF50:  2D 31 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61    -1);..      brea
01BF60:  6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    k;..      }..   
01BF70:  20 63 61 73 65 20 27 4C 4D 27 3A 20 7B 0D 0A 20     case 'LM': {.. 
01BF80:  20 20 20 20 20 62 72 6B 28 29 3B 0D 0A 20 20 20         brk();..   
01BF90:  20 20 20 73 65 74 76 61 6C 75 65 28 26 6C 6D 76       setvalue(&lmv
01BFA0:  61 6C 2C 20 76 61 6C 2D 31 2C 20 61 72 67 74 79    al, val-1, argty
01BFB0:  70 2C 20 44 45 46 4C 4D 2C 20 30 2C 20 72 6D 76    p, DEFLM, 0, rmv
01BFC0:  61 6C 2D 31 29 3B 0D 0A 20 20 20 20 20 20 62 72    al-1);..      br
01BFD0:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    eak;..      }.. 
01BFE0:  20 20 20 63 61 73 65 20 27 52 4D 27 3A 20 7B 0D       case 'RM': {.
01BFF0:  0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28    .      setvalue(
01C000:  26 72 6D 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67    &rmval, val, arg
01C010:  74 79 70 2C 20 44 45 46 52 4D 2C 20 6C 6D 76 61    typ, DEFRM, lmva
01C020:  6C 2B 31 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20    l+1, HUGE);..   
01C030:  20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20       break;..     
01C040:  20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 54 49     }..    case 'TI
01C050:  27 3A 20 7B 0D 0A 20 20 20 20 20 20 62 72 6B 28    ': {..      brk(
01C060:  29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76 61 6C    );..      setval
01C070:  75 65 28 26 74 69 76 61 6C 2C 20 76 61 6C 2C 20    ue(&tival, val, 
01C080:  61 72 67 74 79 70 2C 20 30 2C 0D 0A 20 20 20 20    argtyp, 0,..    
01C090:  20 20 20 20 20 20 2D 28 6C 6D 76 61 6C 2B 69 6E          -(lmval+in
01C0A0:  76 61 6C 29 2C 20 72 6D 76 61 6C 2D 28 6C 6D 76    val), rmval-(lmv
01C0B0:  61 6C 2B 69 6E 76 61 6C 29 2D 31 29 3B 0D 0A 20    al+inval)-1);.. 
01C0C0:  20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20         break;..   
01C0D0:  20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27       }..    case '
01C0E0:  53 51 27 3A 20 7B 0D 0A 20 20 20 20 20 20 62 72    SQ': {..      br
01C0F0:  6B 28 29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76    k();..      setv
01C100:  6D 33 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74    m3val, val, argt
01C110:  79 70 2C 20 44 45 46 4D 33 2C 20 30 2C 20 48 55    yp, DEFM3, 0, HU
01C120:  47 45 29 3B 0D 0A 20 20 20 20 20 20 62 6F 74 74    GE);..      bott
01C130:  6F 6D 3D 70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D    om=plval-m3val-m
01C140:  34 76 61 6C 3B 0D 0A 20 20 20 20 20 20 62 72 65    4val;..      bre
01C150:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01C160:  20 20 63 61 73 65 20 27 4D 34 27 3A 20 7B 0D 0A      case 'M4': {..
01C170:  20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26          setvalue(&
01C180:  6D 34 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74    m4val, val, argt
01C190:  79 70 2C 20 44 45 46 4D 34 2C 20 30 2C 20 48 55    yp, DEFM4, 0, HU
01C1A0:  47 45 29 3B 0D 0A 20 20 20 20 20 20 62 6F 74 74    GE);..      bott
01C1B0:  6F 6D 3D 70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D    om=plval-m3val-m
01C1C0:  34 76 61 6C 3B 0D 0A 20 20 20 20 20 20 62 72 65    4val;..      bre
01C1D0:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01C1E0:  20 20 63 61 73 65 20 27 50 4F 27 3A 20 7B 0D 0A      case 'PO': {..
01C1F0:  20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26          setvalue(&
01C200:  70 6F 73 70 65 63 2C 20 76 61 6C 2C 20 61 72 67    pospec, val, arg
01C210:  74 79 70 2C 20 30 2C 20 30 2C 20 48 55 47 45 29    typ, 0, 0, HUGE)
01C220:  3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D    ;..      break;.
01C230:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D    .      }..    }.
01C240:  0A 20 20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65    .  }....#include
01C250:  20 22 66 6D 74 32 2E 63 22 0D 0A 23 69 6E 63 6C     "fmt2.c"..#incl
01C260:  75 64 65 20 22 66 6D 74 33 2E 63 22 0D 0A 23 69    ude "fmt3.c"..#i
01C270:  6E 63 6C 75 64 65 20 22 73 63 6F 70 79 2E 63 22    nclude "scopy.c"
01C280:  0D 0A 23 69 6E 63 6C 75 64 65 20 22 67 65 74 77    ..#include "getw
01C290:  72 64 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20    rd.c"..#include 
01C2A0:  22 63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75    "cant.c"..#inclu
01C2B0:  64 65 20 22 70 61 67 65 2E 63 22 0D 0A 23 69 6E    de "page.c"..#in
01C2C0:  63 6C 75 64 65 20 22 69 6E 64 65 78 2E 63 22 0D    clude "index.c".
01C2D0:  0A 23 69 6E 63 6C 75 64 65 20 22 73 61 6D 65 2E    .#include "same.
01C2E0:  63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 72    c"..#include "tr
01C2F0:  69 6D 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20    im.c"..#include 
01C300:  61 6C 75 65 28 26 73 71 76 61 6C 2C 20 76 61 6C    alue(&sqval, val
01C310:  2C 20 61 72 67 74 79 70 2C 20 30 2C 20 30 2C 20    , argtyp, 0, 0, 
01C320:  48 55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72    HUGE);..      br
01C330:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    eak;..      }.. 
01C340:  20 20 20 63 61 73 65 20 27 43 45 27 3A 20 7B 0D       case 'CE': {.
01C350:  0A 20 20 20 20 20 20 62 72 6B 28 29 3B 0D 0A 20    .      brk();.. 
01C360:  20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 63         setvalue(&c
01C370:  65 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 79    eval, val, argty
01C380:  70 2C 20 31 2C 20 30 2C 20 48 55 47 45 29 3B 0D    p, 1, 0, HUGE);.
01C390:  0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20    .      break;.. 
01C3A0:  20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65         }..    case
01C3B0:  20 27 42 46 27 3A 20 7B 0D 0A 20 20 20 20 20 20     'BF': {..      
01C3C0:  73 65 74 76 61 6C 75 65 28 26 62 66 76 61 6C 2C    setvalue(&bfval,
01C3D0:  20 76 61 6C 2C 20 61 72 67 74 79 70 2C 20 31 2C     val, argtyp, 1,
01C3E0:  20 30 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20 20     0, HUGE);..    
01C3F0:  20 20 75 6C 76 61 6C 3D 30 3B 0D 0A 20 20 20 20      ulval=0;..    
01C400:  20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20      break;..      
01C410:  7D 0D 0A 20 20 20 20 63 61 73 65 20 27 49 54 27    }..    case 'IT'
01C420:  3A 20 7B 0D 0A 20 20 20 20 20 20 73 65 74 76 61    : {..      setva
01C430:  6C 75 65 28 26 69 74 76 61 6C 2C 20 76 61 6C 2C    lue(&itval, val,
01C440:  20 61 72 67 74 79 70 2C 20 31 2C 20 30 2C 20 48     argtyp, 1, 0, H
01C450:  55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72 65    UGE);..      bre
01C460:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01C470:  20 20 63 61 73 65 20 27 44 57 27 3A 20 7B 0D 0A      case 'DW': {..
01C480:  20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26          setvalue(&
01C490:  64 77 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74    dwval, val, argt
01C4A0:  79 70 2C 20 31 2C 20 30 2C 20 48 55 47 45 29 3B    yp, 1, 0, HUGE);
01C4B0:  0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A    ..      break;..
01C4C0:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73          }..    cas
01C4D0:  65 20 27 55 4C 27 3A 20 7B 0D 0A 20 20 20 20 20    e 'UL': {..     
01C4E0:  20 73 65 74 76 61 6C 75 65 28 26 75 6C 76 61 6C     setvalue(&ulval
01C4F0:  2C 20 76 61 6C 2C 20 61 72 67 74 79 70 2C 20 31    , val, argtyp, 1
01C500:  22 6F 75 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A    "out.c".........
01C510:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01C520:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01C530:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01C540:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01C550:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01C560:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01C570:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01C580:  6D 34 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74    m4val, val, argt
01C590:  79 70 2C 20 44 45 46 4D 34 2C 20 30 2C 20 48 55    yp, DEFM4, 0, HU
01C5A0:  47 45 29 3B 0D 0A 20 20 20 20 20 20 62 6F 74 74    GE);..      bott
01C5B0:  6F 6D 3D 70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D    om=plval-m3val-m
01C5C0:  34 76 61 6C 3B 0D 0A 20 20 20 20 20 20 62 72 65    4val;..      bre
01C5D0:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
01C5E0:  20 20 63 61 73 65 20 27 50 4F 27 3A 20 7B 0D 0A      case 'PO': {..
01C5F0:  20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26          setvalue(&
01C600:  70 6F 73 70 65 63 2C 20 76 61 6C 2C 20 61 72 67    pospec, val, arg
01C610:  74 79 70 2C 20 30 2C 20 30 2C 20 48 55 47 45 29    typ, 0, 0, HUGE)
01C620:  3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D    ;..      break;.
01C630:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D    .      }..    }.
01C640:  0A 20 20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65    .  }....#include
01C650:  20 22 66 6D 74 32 2E 63 22 0D 0A 23 69 6E 63 6C     "fmt2.c"..#incl
01C660:  75 64 65 20 22 66 6D 74 33 2E 63 22 0D 0A 23 69    ude "fmt3.c"..#i
01C670:  6E 63 6C 75 64 65 20 22 73 63 6F 70 79 2E 63 22    nclude "scopy.c"
01C680:  0D 0A 23 69 6E 63 6C 75 64 65 20 22 67 65 74 77    ..#include "getw
01C690:  72 64 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20    rd.c"..#include 
01C6A0:  22 63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75    "cant.c"..#inclu
01C6B0:  64 65 20 22 70 61 67 65 2E 63 22 0D 0A 23 69 6E    de "page.c"..#in
01C6C0:  63 6C 75 64 65 20 22 69 6E 64 65 78 2E 63 22 0D    clude "index.c".
01C6D0:  0A 23 69 6E 63 6C 75 64 65 20 22 73 61 6D 65 2E    .#include "same.
01C6E0:  63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 72    c"..#include "tr
01C6F0:  69 6D 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20    im.c"..#include 
01C700:  2C 20 30 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20    , 0, HUGE);..   
01C710:  20 20 20 63 75 61 63 74 3D 30 3B 0D 0A 20 20 20       cuact=0;..   
01C720:  20 20 20 75 6C 73 6B 69 70 73 3D 22 20 28 29 5B       ulskips=" ()[
01C730:  5D 7B 7D 5C 74 5C 62 2C 2E 3B 3A 3F 21 5F 27 5C    ]{}\t\b,.;:?!_'\
01C740:  22 22 3B 0D 0A 20 20 20 20 20 20 62 66 76 61 6C    "";..      bfval
01C750:  3D 30 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B    =0;..      break
01C760:  3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    ;..      }..    
01C770:  63 61 73 65 20 27 43 55 27 3A 20 7B 0D 0A 20 20    case 'CU': {..  
01C780:  20 20 20 20 73 65 74 76 61 6C 75 65 28 26 75 6C        setvalue(&ul
01C790:  76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 79 70    val, val, argtyp
01C7A0:  2C 20 31 2C 20 30 2C 20 48 55 47 45 29 3B 0D 0A    , 1, 0, HUGE);..
01C7B0:  20 20 20 20 20 20 69 66 28 75 6C 76 61 6C 3D 3D          if(ulval==
01C7C0:  30 29 20 63 75 61 63 74 3D 30 3B 0D 0A 20 20 20    0) cuact=0;..   
01C7D0:  20 20 20 65 6C 73 65 20 63 75 61 63 74 3D 31 3B       else cuact=1;
01C7E0:  20 20 20 20 2F 2A 20 62 65 63 6F 6D 65 73 20 32        /* becomes 2
01C7F0:  20 61 66 74 65 72 20 6E 65 78 74 20 70 75 74 77     after next putw
01C800:  72 64 20 2A 2F 0D 0A 20 20 20 20 20 20 69 66 28    rd */..      if(
01C810:  74 74 79 6D 6F 64 65 29 20 75 6C 73 6B 69 70 73    ttymode) ulskips
01C820:  3D 22 20 5C 74 5C 62 22 3B 0D 0A 20 20 20 20 20    =" \t\b";..     
01C830:  20 65 6C 73 65 20 20 20 20 20 20 20 20 75 6C 73     else        uls
01C840:  6B 69 70 73 3D 20 22 5C 74 5C 62 22 3B 0D 0A 20    kips= "\t\b";.. 
01C850:  20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20         break;..   
01C860:  20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27       }..    case '
01C870:  4E 55 27 3A 20 7B 0D 0A 20 20 20 20 20 20 75 6C    NU': {..      ul
01C880:  76 61 6C 3D 63 75 61 63 74 3D 30 3B 0D 0A 20 20    val=cuact=0;..  
01C890:  20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20        break;..    
01C8A0:  20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 4D      }..    case 'M
01C8B0:  50 27 3A 20 7B 0D 0A 20 20 20 20 20 20 73 65 74    P': {..      set
01C8C0:  76 61 6C 75 65 28 26 6D 70 76 61 6C 2C 20 76 61    value(&mpval, va
01C8D0:  6C 2C 20 61 72 67 74 79 70 2C 20 44 45 46 4D 50    l, argtyp, DEFMP
01C8E0:  2C 20 30 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20    , 0, HUGE);..   
01C8F0:  20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20       break;..     
01C900:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01C910:  18 00 01 00 02 09 52 E5 18 00 41 02 00 00 00 02    ......R...A.....
01C920:  18 00 46 02 00 00 00 02 18 00 42 02 00 00 00 02    ..F.......B.....
01C930:  18 00 47 02 00 00 00 02 18 00 43 02 00 00 00 02    ..G.......C.....
01C940:  18 00 48 02 00 00 00 02 18 00 44 02 00 00 00 02    ..H.......D.....
01C950:  18 00 49 02 00 00 00 02 18 00 45 02 00 00 00 02    ..I.......E.....
01C960:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C970:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C980:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C990:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01C9F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01CA00:  2F 2A 0D 0A 2A 2A 20 66 6D 74 32 2E 63 20 2D 2D    /*..** fmt2.c --
01CA10:  20 74 65 78 74 20 66 6F 72 6D 61 74 74 65 72 20     text formatter 
01CA20:  70 61 72 74 20 32 0D 0A 2A 2F 0D 0A 0D 0A 2F 2A    part 2..*/..../*
01CA30:  0D 0A 2A 2A 20 67 65 74 76 61 6C 20 2D 2D 20 65    ..** getval -- e
01CA40:  76 61 6C 75 61 74 65 20 6F 70 74 69 6F 6E 61 6C    valuate optional
01CA50:  20 6E 75 6D 65 72 69 63 20 61 72 67 75 6D 65 6E     numeric argumen
01CA60:  74 0D 0A 2A 2F 0D 0A 67 65 74 76 61 6C 28 62 75    t..*/..getval(bu
01CA70:  66 2C 20 61 72 67 74 79 70 29 20 63 68 61 72 20    f, argtyp) char 
01CA80:  62 75 66 5B 5D 3B 20 69 6E 74 20 2A 61 72 67 74    buf[]; int *argt
01CA90:  79 70 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D    yp; {..  int i;.
01CAA0:  0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65    .  i=0;..  while
01CAB0:  28 28 62 75 66 5B 69 5D 21 3D 27 20 27 29 26 28    ((buf[i]!=' ')&(
01CAC0:  62 75 66 5B 69 5D 21 3D 27 5C 74 27 29 26 28 62    buf[i]!='\t')&(b
01CAD0:  75 66 5B 69 5D 21 3D 4E 55 4C 4C 29 29 20 2B 2B    uf[i]!=NULL)) ++
01CAE0:  69 3B 0D 0A 20 20 73 6B 69 70 62 6C 28 62 75 66    i;..  skipbl(buf
01CAF0:  2C 20 26 69 29 3B 0D 0A 20 20 2A 61 72 67 74 79    , &i);..  *argty
01CB00:  70 3D 62 75 66 5B 69 5D 3B 0D 0A 20 20 69 66 28    p=buf[i];..  if(
01CB10:  28 2A 61 72 67 74 79 70 3D 3D 27 2B 27 29 7C 28    (*argtyp=='+')|(
01CB20:  2A 61 72 67 74 79 70 3D 3D 27 2D 27 29 29 20 2B    *argtyp=='-')) +
01CB30:  2B 69 3B 0D 0A 20 20 69 66 28 75 74 6F 69 28 62    +i;..  if(utoi(b
01CB40:  75 66 2B 69 2C 20 26 69 29 20 3C 20 30 29 20 7B    uf+i, &i) < 0) {
01CB50:  0D 0A 20 20 20 20 66 70 75 74 73 28 22 5C 37 65    ..    fputs("\7e
01CB60:  72 72 6F 72 3A 20 22 2C 20 73 74 64 65 72 72 29    rror: ", stderr)
01CB70:  3B 0D 0A 20 20 20 20 66 70 75 74 73 28 69 6E 62    ;..    fputs(inb
01CB80:  75 66 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20    uf, stderr);..  
01CB90:  20 20 66 70 75 74 63 28 27 5C 6E 27 2C 20 73 74      fputc('\n', st
01CBA0:  64 65 72 72 29 3B 0D 0A 20 20 20 20 72 65 74 75    derr);..    retu
01CBB0:  72 6E 20 30 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20    rn 0;..    }..  
01CBC0:  72 65 74 75 72 6E 20 69 3B 0D 0A 20 20 7D 0D 0A    return i;..  }..
01CBD0:  0D 0A 2F 2A 0D 0A 2A 2A 20 73 6B 69 70 62 6C 20    ../*..** skipbl 
01CBE0:  2D 2D 20 73 6B 69 70 20 62 6C 61 6E 6B 73 20 61    -- skip blanks a
01CBF0:  6E 64 20 74 61 62 73 0D 0A 2A 2F 0D 0A 73 6B 69    nd tabs..*/..ski
01CC00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CC90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CCA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CCB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CCC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CCD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CCE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CCF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CD90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CDA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CDB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CDC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CDD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CDE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CDF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
01CE00:  70 62 6C 28 6C 69 6E 2C 20 69 29 20 63 68 61 72    pbl(lin, i) char
01CE10:  20 6C 69 6E 5B 5D 3B 20 69 6E 74 20 2A 69 3B 20     lin[]; int *i; 
01CE20:  7B 0D 0A 20 20 77 68 69 6C 65 28 28 6C 69 6E 5B    {..  while((lin[
01CE30:  2A 69 5D 3D 3D 27 20 27 29 7C 28 6C 69 6E 5B 2A    *i]==' ')|(lin[*
01CE40:  69 5D 3D 3D 27 5C 74 27 29 29 20 2A 69 20 3D 20    i]=='\t')) *i = 
01CE50:  2A 69 20 2B 20 31 3B 0D 0A 20 20 7D 0D 0A 0D 0A    *i + 1;..  }....
01CE60:  2F 2A 0D 0A 2A 2A 20 73 65 74 76 61 6C 75 65 20    /*..** setvalue 
01CE70:  2D 2D 20 73 65 74 20 70 61 72 61 6D 65 74 65 72    -- set parameter
01CE80:  20 61 6E 64 20 63 68 65 63 6B 20 72 61 6E 67 65     and check range
01CE90:  0D 0A 2A 2F 0D 0A 73 65 74 76 61 6C 75 65 28 70    ..*/..setvalue(p
01CEA0:  61 72 61 6D 2C 20 76 61 6C 2C 20 61 72 67 74 79    aram, val, argty
01CEB0:  70 2C 20 64 65 66 76 61 6C 2C 20 6D 69 6E 76 61    p, defval, minva
01CEC0:  6C 2C 20 6D 61 78 76 61 6C 29 0D 0A 20 20 69 6E    l, maxval)..  in
01CED0:  74 20 2A 70 61 72 61 6D 2C 20 76 61 6C 2C 20 61    t *param, val, a
01CEE0:  72 67 74 79 70 2C 20 64 65 66 76 61 6C 2C 20 6D    rgtyp, defval, m
01CEF0:  69 6E 76 61 6C 2C 20 6D 61 78 76 61 6C 3B 20 7B    inval, maxval; {
01CF00:  0D 0A 20 20 69 66 28 61 72 67 74 79 70 3D 3D 4E    ..  if(argtyp==N
01CF10:  55 4C 4C 29 20 2A 70 61 72 61 6D 3D 64 65 66 76    ULL) *param=defv
01CF20:  61 6C 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 61    al;..  else if(a
01CF30:  72 67 74 79 70 3D 3D 27 2B 27 29 20 2A 70 61 72    rgtyp=='+') *par
01CF40:  61 6D 3D 2A 70 61 72 61 6D 2B 76 61 6C 3B 0D 0A    am=*param+val;..
01CF50:  20 20 65 6C 73 65 20 69 66 28 61 72 67 74 79 70      else if(argtyp
01CF60:  3D 3D 27 2D 27 29 20 2A 70 61 72 61 6D 3D 2A 70    =='-') *param=*p
01CF70:  61 72 61 6D 2D 76 61 6C 3B 0D 0A 20 20 65 6C 73    aram-val;..  els
01CF80:  65 20 2A 70 61 72 61 6D 3D 76 61 6C 3B 0D 0A 20    e *param=val;.. 
01CF90:  20 69 66 28 2A 70 61 72 61 6D 20 3E 20 6D 61 78     if(*param > max
01CFA0:  76 61 6C 29 20 2A 70 61 72 61 6D 3D 6D 61 78 76    val) *param=maxv
01CFB0:  61 6C 3B 0D 0A 20 20 69 66 28 2A 70 61 72 61 6D    al;..  if(*param
01CFC0:  20 3C 20 6D 69 6E 76 61 6C 29 20 2A 70 61 72 61     < minval) *para
01CFD0:  6D 3D 6D 69 6E 76 61 6C 3B 0D 0A 20 20 7D 0D 0A    m=minval;..  }..
01CFE0:  0D 0A 2F 2A 0D 0A 2A 2A 20 74 65 78 74 20 2D 2D    ../*..** text --
01CFF0:  20 70 72 6F 63 65 73 73 20 74 65 78 74 20 6C 69     process text li
01D000:  2F 2A 0D 0A 2A 2A 20 66 6D 74 33 2E 63 20 2D 2D    /*..** fmt3.c --
01D010:  20 74 65 78 74 20 66 6F 72 6D 61 74 74 65 72 20     text formatter 
01D020:  70 61 72 74 20 33 0D 0A 2A 2F 0D 0A 0D 0A 2F 2A    part 3..*/..../*
01D030:  0D 0A 2A 2A 20 70 75 74 20 2D 2D 20 70 75 74 20    ..** put -- put 
01D040:  6F 75 74 20 6C 69 6E 65 20 77 69 74 68 20 70 72    out line with pr
01D050:  6F 70 65 72 20 73 70 61 63 69 6E 67 20 61 6E 64    oper spacing and
01D060:  20 69 6E 64 65 6E 74 69 6E 67 0D 0A 2A 2F 0D 0A     indenting..*/..
01D070:  70 75 74 28 62 75 66 29 20 63 68 61 72 20 62 75    put(buf) char bu
01D080:  66 5B 5D 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B    f[]; {..  int i;
01D090:  0D 0A 20 20 69 66 28 28 62 75 66 5B 30 5D 3D 3D    ..  if((buf[0]==
01D0A0:  4E 55 4C 4C 29 7C 28 62 75 66 5B 30 5D 3D 3D 27    NULL)|(buf[0]=='
01D0B0:  20 27 29 29 20 62 6C 69 6E 65 3D 59 45 53 3B 0D     ')) bline=YES;.
01D0C0:  0A 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 69    .  else {..    i
01D0D0:  66 28 28 28 62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E    f(((bottom-linen
01D0E0:  6F 2B 31 29 20 3C 20 28 6D 70 76 61 6C 2A 6C 73    o+1) < (mpval*ls
01D0F0:  76 61 6C 29 29 20 26 26 0D 0A 20 20 20 20 20 20    val)) &&..      
01D100:  20 28 62 6C 69 6E 65 3D 3D 59 45 53 29 20 26 26     (bline==YES) &&
01D110:  0D 0A 20 20 20 20 20 20 20 28 6D 70 63 6E 74 20    ..       (mpcnt 
01D120:  3E 3D 20 6D 70 76 61 6C 29 29 20 7B 0D 0A 20 20    >= mpval)) {..  
01D130:  20 20 20 20 6D 70 63 6E 74 3D 30 3B 0D 0A 20 20        mpcnt=0;..  
01D140:  20 20 20 20 73 6B 69 70 28 62 6F 74 74 6F 6D 2D        skip(bottom-
01D150:  6C 69 6E 65 6E 6F 2B 31 29 3B 0D 0A 20 20 20 20    lineno+1);..    
01D160:  20 20 6C 69 6E 65 6E 6F 3D 62 6F 74 74 6F 6D 2B      lineno=bottom+
01D170:  31 3B 20 20 20 2F 2A 20 66 6F 72 63 65 20 66 6F    1;   /* force fo
01D180:  6F 74 69 6E 67 20 2A 2F 0D 0A 20 20 20 20 20 20    oting */..      
01D190:  7D 0D 0A 20 20 20 20 62 6C 69 6E 65 3D 4E 4F 3B    }..    bline=NO;
01D1A0:  0D 0A 20 20 20 20 7D 0D 0A 20 20 2B 2B 6D 70 63    ..    }..  ++mpc
01D1B0:  6E 74 3B 0D 0A 20 20 69 66 28 6C 69 6E 65 6E 6F    nt;..  if(lineno
01D1C0:  3E 62 6F 74 74 6F 6D 29 20 70 66 6F 6F 74 28 29    >bottom) pfoot()
01D1D0:  3B 0D 0A 20 20 69 66 28 6C 69 6E 65 6E 6F 3D 3D    ;..  if(lineno==
01D1E0:  30 29 20 70 68 65 61 64 28 29 3B 0D 0A 20 20 69    0) phead();..  i
01D1F0:  3D 70 6F 76 61 6C 3B 20 20 2F 2A 2A 20 6D 69 6E    =poval;  /** min
01D200:  6E 65 73 0D 0A 2A 2F 0D 0A 74 65 78 74 28 69 6E    nes..*/..text(in
01D210:  62 75 66 29 20 63 68 61 72 20 69 6E 62 75 66 5B    buf) char inbuf[
01D220:  5D 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D 0A    ]; {..  int i;..
01D230:  20 20 63 68 61 72 20 63 31 2C 20 63 32 3B 0D 0A      char c1, c2;..
01D240:  20 20 69 66 28 28 69 6E 62 75 66 5B 30 5D 3D 3D      if((inbuf[0]==
01D250:  27 20 27 29 7C 28 69 6E 62 75 66 5B 30 5D 3D 3D    ' ')|(inbuf[0]==
01D260:  4E 55 4C 4C 29 29 20 6C 65 61 64 62 6C 28 69 6E    NULL)) leadbl(in
01D270:  62 75 66 29 3B 0D 0A 20 20 69 66 28 62 66 76 61    buf);..  if(bfva
01D280:  6C 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 62 6F    l > 0) {..    bo
01D290:  6C 64 28 69 6E 62 75 66 2C 20 77 72 64 62 75 66    ld(inbuf, wrdbuf
01D2A0:  2C 20 49 4E 53 49 5A 45 29 3B 0D 0A 20 20 20 20    , INSIZE);..    
01D2B0:  2D 2D 62 66 76 61 6C 3B 0D 0A 20 20 20 20 7D 0D    --bfval;..    }.
01D2C0:  0A 20 20 64 77 61 63 74 20 3D 20 4E 4F 3B 0D 0A    .  dwact = NO;..
01D2D0:  20 20 69 66 28 64 77 76 61 6C 20 3E 20 30 29 20      if(dwval > 0) 
01D2E0:  7B 0D 0A 20 20 20 20 69 66 28 21 74 74 79 6D 6F    {..    if(!ttymo
01D2F0:  64 65 29 20 7B 0D 0A 20 20 20 20 20 20 64 77 61    de) {..      dwa
01D300:  63 74 20 3D 20 59 45 53 3B 0D 0A 20 20 20 20 20    ct = YES;..     
01D310:  20 64 6F 75 62 6C 65 28 69 6E 62 75 66 2C 20 77     double(inbuf, w
01D320:  72 64 62 75 66 2C 20 49 4E 53 49 5A 45 29 3B 0D    rdbuf, INSIZE);.
01D330:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2D 2D    .      }..    --
01D340:  64 77 76 61 6C 3B 0D 0A 20 20 20 20 7D 0D 0A 20    dwval;..    }.. 
01D350:  20 69 66 28 75 6C 76 61 6C 20 3E 20 30 29 20 7B     if(ulval > 0) {
01D360:  0D 0A 20 20 20 20 69 66 28 69 74 73 75 62 29 20    ..    if(itsub) 
01D370:  69 74 61 6C 69 63 28 69 6E 62 75 66 2C 20 77 72    italic(inbuf, wr
01D380:  64 62 75 66 2C 20 49 4E 53 49 5A 45 29 3B 0D 0A    dbuf, INSIZE);..
01D390:  20 20 20 20 65 6C 73 65 20 20 20 20 20 20 75 6E        else      un
01D3A0:  64 65 72 6C 28 69 6E 62 75 66 2C 20 77 72 64 62    derl(inbuf, wrdb
01D3B0:  75 66 2C 20 49 4E 53 49 5A 45 29 3B 0D 0A 20 20    uf, INSIZE);..  
01D3C0:  20 20 2D 2D 75 6C 76 61 6C 3B 0D 0A 20 20 20 20      --ulval;..    
01D3D0:  7D 0D 0A 20 20 69 66 28 69 74 76 61 6C 20 3E 20    }..  if(itval > 
01D3E0:  30 29 20 7B 0D 0A 20 20 20 20 69 66 28 75 6C 73    0) {..    if(uls
01D3F0:  75 62 29 20 75 6E 64 65 72 6C 28 69 6E 62 75 66    ub) underl(inbuf
01D400:  75 73 20 6F 6E 20 6F 64 64 20 70 61 67 65 73 20    us on odd pages 
01D410:  2A 2A 2F 0D 0A 20 20 77 68 69 6C 65 28 2B 2B 69    **/..  while(++i
01D420:  20 3C 3D 20 28 6C 6D 76 61 6C 2B 74 69 76 61 6C     <= (lmval+tival
01D430:  2B 69 6E 76 61 6C 2B 73 71 76 61 6C 29 29 0D 0A    +inval+sqval))..
01D440:  20 20 20 20 70 72 69 6E 74 28 22 20 22 2C 20 4E        print(" ", N
01D450:  4F 29 3B 0D 0A 20 20 74 69 76 61 6C 3D 30 3B 0D    O);..  tival=0;.
01D460:  0A 20 20 70 72 69 6E 74 28 62 75 66 2C 20 4E 4F    .  print(buf, NO
01D470:  29 3B 0D 0A 20 20 69 66 28 28 6C 73 76 61 6C 2D    );..  if((lsval-
01D480:  31 29 20 3C 20 28 62 6F 74 74 6F 6D 2D 6C 69 6E    1) < (bottom-lin
01D490:  65 6E 6F 29 29 20 73 6B 69 70 28 6C 73 76 61 6C    eno)) skip(lsval
01D4A0:  29 3B 0D 0A 20 20 65 6C 73 65 20 73 6B 69 70 28    );..  else skip(
01D4B0:  62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E 6F 2B 31 29    bottom-lineno+1)
01D4C0:  3B 0D 0A 20 20 69 66 28 70 6C 76 61 6C 20 3E 20    ;..  if(plval > 
01D4D0:  30 29 20 6C 69 6E 65 6E 6F 3D 6C 69 6E 65 6E 6F    0) lineno=lineno
01D4E0:  2B 6C 73 76 61 6C 3B 0D 0A 20 20 69 66 28 6C 69    +lsval;..  if(li
01D4F0:  6E 65 6E 6F 20 3E 20 62 6F 74 74 6F 6D 29 20 70    neno > bottom) p
01D500:  66 6F 6F 74 28 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A    foot();..  }....
01D510:  2F 2A 0D 0A 2A 2A 20 70 72 69 6E 74 20 2D 2D 20    /*..** print -- 
01D520:  70 72 69 6E 74 20 6F 75 74 70 75 74 20 74 6F 20    print output to 
01D530:  73 74 64 6F 75 74 20 69 66 20 6E 6F 74 20 73 6B    stdout if not sk
01D540:  69 70 70 69 6E 67 20 70 61 67 65 73 0D 0A 2A 2F    ipping pages..*/
01D550:  0D 0A 70 72 69 6E 74 28 73 74 72 2C 20 74 69 74    ..print(str, tit
01D560:  6C 65 29 20 63 68 61 72 20 2A 73 74 72 3B 20 69    le) char *str; i
01D570:  6E 74 20 74 69 74 6C 65 3B 20 7B 0D 0A 20 20 77    nt title; {..  w
01D580:  68 69 6C 65 28 2A 73 74 72 29 20 7B 0D 0A 20 20    hile(*str) {..  
01D590:  20 20 69 66 28 2A 73 74 72 20 3D 3D 20 31 29 20      if(*str == 1) 
01D5A0:  7B 0D 0A 20 20 20 20 20 20 69 66 28 21 74 69 74    {..      if(!tit
01D5B0:  6C 65 29 20 6F 6E 6F 66 66 28 2A 28 73 74 72 2D    le) onoff(*(str-
01D5C0:  31 29 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    1));..      }.. 
01D5D0:  20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 20       else {..     
01D5E0:  20 2F 2A 20 73 6B 69 70 20 6F 75 74 70 75 74 20     /* skip output 
01D5F0:  6F 66 20 63 6F 6E 74 72 6F 6C 20 73 65 71 75 65    of control seque
01D600:  2C 20 77 72 64 62 75 66 2C 20 49 4E 53 49 5A 45    , wrdbuf, INSIZE
01D610:  29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 20 20 20    );..    else    
01D620:  20 20 69 74 61 6C 69 63 28 69 6E 62 75 66 2C 20      italic(inbuf, 
01D630:  77 72 64 62 75 66 2C 20 49 4E 53 49 5A 45 29 3B    wrdbuf, INSIZE);
01D640:  0D 0A 20 20 20 20 2D 2D 69 74 76 61 6C 3B 0D 0A    ..    --itval;..
01D650:  20 20 20 20 7D 0D 0A 20 20 73 75 70 65 72 73 75        }..  supersu
01D660:  62 28 69 6E 62 75 66 2C 20 77 72 64 62 75 66 2C    b(inbuf, wrdbuf,
01D670:  20 49 4E 53 49 5A 45 29 3B 0D 0A 20 20 69 66 28     INSIZE);..  if(
01D680:  63 65 76 61 6C 20 3E 20 30 29 20 7B 0D 0A 20 20    ceval > 0) {..  
01D690:  20 20 63 65 6E 74 65 72 28 69 6E 62 75 66 29 3B      center(inbuf);
01D6A0:  0D 0A 20 20 20 20 70 75 74 28 69 6E 62 75 66 29    ..    put(inbuf)
01D6B0:  3B 0D 0A 20 20 20 20 2D 2D 63 65 76 61 6C 3B 0D    ;..    --ceval;.
01D6C0:  0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 69    .    }..  else i
01D6D0:  66 28 69 6E 62 75 66 5B 30 5D 3D 3D 4E 55 4C 4C    f(inbuf[0]==NULL
01D6E0:  29 20 70 75 74 28 69 6E 62 75 66 29 3B 0D 0A 20    ) put(inbuf);.. 
01D6F0:  20 65 6C 73 65 20 69 66 28 66 69 6C 6C 3D 3D 4E     else if(fill==N
01D700:  4F 29 20 70 75 74 28 69 6E 62 75 66 29 3B 0D 0A    O) put(inbuf);..
01D710:  20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 69 3D      else {..    i=
01D720:  30 3B 0D 0A 20 20 20 20 77 72 64 62 75 66 5B 30    0;..    wrdbuf[0
01D730:  5D 3D 27 20 27 3B 0D 0A 20 20 20 20 77 68 69 6C    ]=' ';..    whil
01D740:  65 28 67 65 74 77 72 64 28 69 6E 62 75 66 2C 20    e(getwrd(inbuf, 
01D750:  26 69 2C 20 77 72 64 62 75 66 2B 31 29 20 3E 20    &i, wrdbuf+1) > 
01D760:  30 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28    0) {..      if((
01D770:  73 65 6E 74 65 6E 64 3D 3D 59 45 53 29 26 28 69    sentend==YES)&(i
01D780:  73 75 70 70 65 72 28 77 72 64 62 75 66 5B 31 5D    supper(wrdbuf[1]
01D790:  29 3D 3D 59 45 53 29 26 28 77 72 64 62 75 66 5B    )==YES)&(wrdbuf[
01D7A0:  32 5D 21 3D 27 2E 27 29 29 0D 0A 20 20 20 20 20    2]!='.'))..     
01D7B0:  20 20 20 70 75 74 77 72 64 28 77 72 64 62 75 66       putwrd(wrdbuf
01D7C0:  29 3B 20 20 2F 2A 2A 20 6C 65 61 64 69 6E 67 20    );  /** leading 
01D7D0:  73 70 61 63 65 20 2A 2A 2F 0D 0A 20 20 20 20 20    space **/..     
01D7E0:  20 65 6C 73 65 20 70 75 74 77 72 64 28 77 72 64     else putwrd(wrd
01D7F0:  62 75 66 2B 31 29 3B 0D 0A 20 20 20 20 20 20 69    buf+1);..      i
01D800:  6E 63 65 20 74 65 72 6D 69 6E 61 74 6F 72 20 2A    nce terminator *
01D810:  2F 0D 0A 20 20 20 20 20 20 69 66 28 28 70 6C 76    /..      if((plv
01D820:  61 6C 3D 3D 30 29 7C 28 28 63 75 72 70 61 67 20    al==0)|((curpag 
01D830:  3E 3D 20 62 65 67 69 6E 29 26 28 70 61 67 65 6B    >= begin)&(pagek
01D840:  69 6C 6C 3D 3D 4E 4F 29 29 29 20 7B 0D 0A 20 20    ill==NO))) {..  
01D850:  20 20 20 20 20 20 62 65 67 69 6E 3D 31 3B 20 20          begin=1;  
01D860:  2F 2A 2A 20 66 75 74 75 72 65 20 63 6F 70 69 65    /** future copie
01D870:  73 20 62 65 67 69 6E 20 6F 6E 20 70 61 67 65 20    s begin on page 
01D880:  31 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 69    1 **/..        i
01D890:  66 28 2A 73 74 72 20 21 3D 20 62 6C 61 6E 6B 29    f(*str != blank)
01D8A0:  20 63 6F 75 74 28 2A 73 74 72 2C 20 73 74 64 6F     cout(*str, stdo
01D8B0:  75 74 29 3B 0D 0A 20 20 20 20 20 20 20 20 65 6C    ut);..        el
01D8C0:  73 65 20 63 6F 75 74 28 27 20 27 2C 20 73 74 64    se cout(' ', std
01D8D0:  6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 20 20 7D    out);..        }
01D8E0:  0D 0A 20 20 20 20 20 20 65 6C 73 65 20 69 66 28    ..      else if(
01D8F0:  2A 73 74 72 20 3D 3D 20 32 37 29 20 7B 0D 0A 20    *str == 27) {.. 
01D900:  20 20 20 20 20 20 20 77 68 69 6C 65 28 2A 73 74           while(*st
01D910:  72 20 21 3D 20 31 29 20 63 6F 75 74 28 2A 73 74    r != 1) cout(*st
01D920:  72 2B 2B 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20    r++, stdout);.. 
01D930:  20 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B           continue;
01D940:  0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20    ..        }..   
01D950:  20 20 20 7D 0D 0A 20 20 20 20 2B 2B 73 74 72 3B       }..    ++str;
01D960:  0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A    ..    }..  }....
01D970:  2F 2A 0D 0A 2A 2A 20 6F 6E 6F 66 66 20 2D 2D 20    /*..** onoff -- 
01D980:  73 65 74 20 61 6E 64 20 63 6C 65 61 72 20 78 78    set and clear xx
01D990:  6F 6E 20 61 6E 64 20 78 78 6F 66 66 20 70 6F 69    on and xxoff poi
01D9A0:  6E 74 65 72 73 0D 0A 2A 2F 0D 0A 6F 6E 6F 66 66    nters..*/..onoff
01D9B0:  28 63 68 29 20 69 6E 74 20 63 68 3B 20 7B 0D 0A    (ch) int ch; {..
01D9C0:  20 20 20 20 20 20 20 69 66 28 63 68 20 3D 3D 20           if(ch == 
01D9D0:  75 6C 70 72 65 66 5B 32 5D 29 20 7B 75 6C 6F 6E    ulpref[2]) {ulon
01D9E0:  3D 75 6C 70 72 65 66 3B 20 75 6C 6F 66 66 3D 75    =ulpref; uloff=u
01D9F0:  6C 73 75 66 66 3B 7D 0D 0A 20 20 65 6C 73 65 20    lsuff;}..  else 
01DA00:  66 28 69 6E 62 75 66 5B 69 2D 31 5D 3D 3D 27 22    f(inbuf[i-1]=='"
01DA10:  27 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 63 31    ') {..        c1
01DA20:  3D 69 6E 62 75 66 5B 69 2D 33 5D 3B 0D 0A 20 20    =inbuf[i-3];..  
01DA30:  20 20 20 20 20 20 63 32 3D 69 6E 62 75 66 5B 69          c2=inbuf[i
01DA40:  2D 32 5D 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D    -2];..        }.
01DA50:  0A 20 20 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20    .      else {.. 
01DA60:  20 20 20 20 20 20 20 63 31 3D 69 6E 62 75 66 5B           c1=inbuf[
01DA70:  69 2D 32 5D 3B 0D 0A 20 20 20 20 20 20 20 20 63    i-2];..        c
01DA80:  32 3D 69 6E 62 75 66 5B 69 2D 31 5D 3B 0D 0A 20    2=inbuf[i-1];.. 
01DA90:  20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20           }..      
01DAA0:  69 66 28 28 69 6E 62 75 66 5B 69 5D 21 3D 27 5C    if((inbuf[i]!='\
01DAB0:  74 27 29 26 28 69 73 75 70 70 65 72 28 63 31 29    t')&(isupper(c1)
01DAC0:  3D 3D 4E 4F 29 26 0D 0A 20 20 20 20 20 20 20 20    ==NO)&..        
01DAD0:  20 28 28 63 32 3D 3D 27 2E 27 29 7C 28 63 32 3D     ((c2=='.')|(c2=
01DAE0:  3D 27 3F 27 29 7C 28 63 32 3D 3D 27 21 27 29 29    ='?')|(c2=='!'))
01DAF0:  29 20 73 65 6E 74 65 6E 64 3D 59 45 53 3B 0D 0A    ) sentend=YES;..
01DB00:  20 20 20 20 20 20 65 6C 73 65 20 73 65 6E 74 65          else sente
01DB10:  6E 64 3D 4E 4F 3B 0D 0A 20 20 20 20 20 20 7D 0D    nd=NO;..      }.
01DB20:  0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 75 6C 76    .    }..  if(ulv
01DB30:  61 6C 3D 3D 30 29 20 63 75 61 63 74 3D 30 3B 0D    al==0) cuact=0;.
01DB40:  0A 20 20 7D 0D 0A 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A    .  }............
01DB50:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01DB60:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01DB70:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
01DB80:  73 75 70 70 65 72 28 77 72 64 62 75 66 5B 31 5D    supper(wrdbuf[1]
01DB90:  29 3D 3D 59 45 53 29 26 28 77 72 64 62 75 66 5B    )==YES)&(wrdbuf[
01DBA0:  32 5D 21 3D 27 2E 27 29 29 0D 0A 20 20 20 20 20    2]!='.'))..     
01DBB0:  20 20 20 70 75 74 77 72 64 28 77 72 64 62 75 66       putwrd(wrdbuf
01DBC0:  29 3B 20 20 2F 2A 2A 20 6C 65 61 64 69 6E 67 20    );  /** leading 
01DBD0:  73 70 61 63 65 20 2A 2A 2F 0D 0A 20 20 20 20 20    space **/..     
01DBE0:  20 65 6C 73 65 20 70 75 74 77 72 64 28 77 72 64     else putwrd(wrd
01DBF0:  62 75 66 2B 31 29 3B 0D 0A 20 20 20 20 20 20 69    buf+1);..      i
01DC00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01DC10:  19 00 01 00 02 09 52 E5 19 00 41 02 00 00 00 02    ......R...A.....
01DC20:  19 00 46 02 00 00 00 02 19 00 42 02 00 00 00 02    ..F.......B.....
01DC30:  19 00 47 02 00 00 00 02 19 00 43 02 00 00 00 02    ..G.......C.....
01DC40:  19 00 48 02 00 00 00 02 19 00 44 02 00 00 00 02    ..H.......D.....
01DC50:  19 00 49 02 00 00 00 02 19 00 45 02 00 00 00 02    ..I.......E.....
01DC60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DC70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DC80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DC90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DCF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01DD00:  69 66 28 63 68 20 3D 3D 20 75 6C 73 75 66 66 5B    if(ch == ulsuff[
01DD10:  32 5D 29 20 75 6C 6F 6E 3D 75 6C 6F 66 66 3D 30    2]) ulon=uloff=0
01DD20:  3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 63 68 20    ;..  else if(ch 
01DD30:  3D 3D 20 62 66 70 72 65 66 5B 31 5D 29 20 7B 62    == bfpref[1]) {b
01DD40:  66 6F 6E 3D 62 66 70 72 65 66 3B 20 62 66 6F 66    fon=bfpref; bfof
01DD50:  66 3D 62 66 73 75 66 66 3B 7D 0D 0A 20 20 65 6C    f=bfsuff;}..  el
01DD60:  73 65 20 69 66 28 63 68 20 3D 3D 20 62 66 73 75    se if(ch == bfsu
01DD70:  66 66 5B 31 5D 29 20 62 66 6F 6E 3D 62 66 6F 66    ff[1]) bfon=bfof
01DD80:  66 3D 30 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28    f=0;..  else if(
01DD90:  63 68 20 3D 3D 20 64 73 70 72 65 66 5B 31 5D 29    ch == dspref[1])
01DDA0:  20 7B 64 73 6F 6E 3D 64 73 70 72 65 66 3B 20 64     {dson=dspref; d
01DDB0:  73 6F 66 66 3D 64 73 73 75 66 66 3B 7D 0D 0A 20    soff=dssuff;}.. 
01DDC0:  20 65 6C 73 65 20 69 66 28 63 68 20 3D 3D 20 64     else if(ch == d
01DDD0:  73 73 75 66 66 5B 31 5D 29 20 64 73 6F 6E 3D 64    ssuff[1]) dson=d
01DDE0:  73 6F 66 66 3D 30 3B 0D 0A 20 20 65 6C 73 65 20    soff=0;..  else 
01DDF0:  69 66 28 63 68 20 3D 3D 20 69 74 70 72 65 66 5B    if(ch == itpref[
01DE00:  31 5D 29 20 7B 69 74 6F 6E 3D 69 74 70 72 65 66    1]) {iton=itpref
01DE10:  3B 20 69 74 6F 66 66 3D 69 74 73 75 66 66 3B 7D    ; itoff=itsuff;}
01DE20:  0D 0A 20 20 65 6C 73 65 20 69 66 28 63 68 20 3D    ..  else if(ch =
01DE30:  3D 20 69 74 73 75 66 66 5B 31 5D 29 20 69 74 6F    = itsuff[1]) ito
01DE40:  6E 3D 69 74 6F 66 66 3D 30 3B 0D 0A 20 20 65 6C    n=itoff=0;..  el
01DE50:  73 65 20 69 66 28 63 68 20 3D 3D 20 64 77 70 72    se if(ch == dwpr
01DE60:  65 66 5B 31 5D 29 20 7B 64 77 6F 6E 3D 64 77 70    ef[1]) {dwon=dwp
01DE70:  72 65 66 3B 20 64 77 6F 66 66 3D 64 77 73 75 66    ref; dwoff=dwsuf
01DE80:  66 3B 7D 0D 0A 20 20 65 6C 73 65 20 69 66 28 63    f;}..  else if(c
01DE90:  68 20 3D 3D 20 64 77 73 75 66 66 5B 31 5D 29 20    h == dwsuff[1]) 
01DEA0:  64 77 6F 6E 3D 64 77 6F 66 66 3D 30 3B 0D 0A 20    dwon=dwoff=0;.. 
01DEB0:  20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73 6B 69     }..../*..** ski
01DEC0:  70 20 2D 2D 20 6F 75 74 70 75 74 20 6E 20 62 6C    p -- output n bl
01DED0:  61 6E 6B 20 6C 69 6E 65 73 0D 0A 2A 2F 0D 0A 73    ank lines..*/..s
01DEE0:  6B 69 70 28 6E 29 20 69 6E 74 20 6E 3B 20 7B 0D    kip(n) int n; {.
01DEF0:  0A 20 20 77 68 69 6C 65 28 28 6E 2D 2D 29 20 3E    .  while((n--) >
01DF00:  3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69    ;..  i=0;..  whi
01DF10:  6C 65 28 28 62 75 66 5B 69 5D 21 3D 27 20 27 29    le((buf[i]!=' ')
01DF20:  26 28 62 75 66 5B 69 5D 21 3D 27 5C 74 27 29 26    &(buf[i]!='\t')&
01DF30:  28 62 75 66 5B 69 5D 21 3D 4E 55 4C 4C 29 29 20    (buf[i]!=NULL)) 
01DF40:  2B 2B 69 3B 0D 0A 20 20 73 6B 69 70 62 6C 28 62    ++i;..  skipbl(b
01DF50:  75 66 2C 20 26 69 29 3B 0D 0A 20 20 69 66 28 28    uf, &i);..  if((
01DF60:  62 75 66 5B 69 5D 3D 3D 27 5C 27 27 29 7C 28 62    buf[i]=='\'')|(b
01DF70:  75 66 5B 69 5D 3D 3D 27 22 27 29 29 20 2B 2B 69    uf[i]=='"')) ++i
01DF80:  3B 20 2F 2A 2A 20 73 74 72 69 70 20 6C 65 61 64    ; /** strip lead
01DF90:  69 6E 67 20 71 75 6F 74 65 20 2A 2A 2F 0D 0A 20    ing quote **/.. 
01DFA0:  20 62 75 66 3D 62 75 66 2B 69 3B 0D 0A 20 20 77     buf=buf+i;..  w
01DFB0:  68 69 6C 65 28 2A 74 74 6C 2B 2B 20 3D 20 2A 62    hile(*ttl++ = *b
01DFC0:  75 66 2B 2B 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F    uf++);..  }..../
01DFD0:  2A 0D 0A 2A 2A 20 73 70 61 63 65 20 2D 2D 20 73    *..** space -- s
01DFE0:  70 61 63 65 20 6E 20 6C 69 6E 65 73 20 6F 72 20    pace n lines or 
01DFF0:  74 6F 20 62 6F 74 74 6F 6D 0D 0A 2A 2F 0D 0A 73    to bottom..*/..s
01E000:  70 61 63 65 28 6E 29 20 69 6E 74 20 6E 3B 20 7B    pace(n) int n; {
01E010:  0D 0A 20 20 62 72 6B 28 29 3B 0D 0A 20 20 69 66    ..  brk();..  if
01E020:  28 6C 69 6E 65 6E 6F 20 3E 20 62 6F 74 74 6F 6D    (lineno > bottom
01E030:  29 20 72 65 74 75 72 6E 3B 0D 0A 20 20 69 66 28    ) return;..  if(
01E040:  6C 69 6E 65 6E 6F 3D 3D 30 29 20 7B 0D 0A 20 20    lineno==0) {..  
01E050:  20 20 70 68 65 61 64 28 29 3B 0D 0A 20 20 20 20      phead();..    
01E060:  69 66 28 6E 3D 3D 48 55 47 45 29 20 72 65 74 75    if(n==HUGE) retu
01E070:  72 6E 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66    rn;..    }..  if
01E080:  28 6E 20 3C 20 28 62 6F 74 74 6F 6D 2B 31 2D 6C    (n < (bottom+1-l
01E090:  69 6E 65 6E 6F 29 29 20 73 6B 69 70 28 6E 29 3B    ineno)) skip(n);
01E0A0:  0D 0A 20 20 65 6C 73 65 20 73 6B 69 70 28 62 6F    ..  else skip(bo
01E0B0:  74 74 6F 6D 2B 31 2D 6C 69 6E 65 6E 6F 29 3B 0D    ttom+1-lineno);.
01E0C0:  0A 20 20 69 66 28 70 6C 76 61 6C 20 3E 20 30 29    .  if(plval > 0)
01E0D0:  20 6C 69 6E 65 6E 6F 3D 6C 69 6E 65 6E 6F 2B 6E     lineno=lineno+n
01E0E0:  3B 0D 0A 20 20 69 66 28 6C 69 6E 65 6E 6F 20 3E    ;..  if(lineno >
01E0F0:  20 62 6F 74 74 6F 6D 29 20 70 66 6F 6F 74 28 29     bottom) pfoot()
01E100:  20 30 29 20 70 72 69 6E 74 28 22 5C 6E 22 2C 20     0) print("\n", 
01E110:  4E 4F 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D    NO);..  }..../*.
01E120:  0A 2A 2A 20 70 68 65 61 64 20 2D 2D 20 70 75 74    .** phead -- put
01E130:  20 6F 75 74 20 68 65 61 64 65 72 0D 0A 2A 2F 0D     out header..*/.
01E140:  0A 70 68 65 61 64 28 29 20 7B 0D 0A 20 20 70 61    .phead() {..  pa
01E150:  67 65 6B 69 6C 6C 3D 4E 4F 3B 0D 0A 20 20 69 66    gekill=NO;..  if
01E160:  28 28 63 75 72 70 61 67 3D 6E 65 77 70 61 67 2B    ((curpag=newpag+
01E170:  2B 29 20 3E 3D 20 62 65 67 69 6E 29 20 7B 0D 0A    +) >= begin) {..
01E180:  20 20 20 20 69 66 28 70 61 67 65 28 63 75 72 70        if(page(curp
01E190:  61 67 2C 20 70 61 75 73 65 2C 20 73 74 64 6F 75    ag, pause, stdou
01E1A0:  74 29 3D 3D 4B 49 4C 4C 29 20 7B 0D 0A 20 20 20    t)==KILL) {..   
01E1B0:  20 20 20 70 61 67 65 6B 69 6C 6C 3D 59 45 53 3B       pagekill=YES;
01E1C0:  0D 0A 20 20 20 20 20 20 66 70 75 74 63 28 27 5C    ..      fputc('\
01E1D0:  6E 27 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20    n', stderr);..  
01E1E0:  20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20        }..    }..  
01E1F0:  69 66 28 63 75 72 70 61 67 25 32 29 20 70 6F 76    if(curpag%2) pov
01E200:  61 6C 20 3D 20 2D 70 6F 73 70 65 63 3B 0D 0A 20    al = -pospec;.. 
01E210:  20 65 6C 73 65 20 70 6F 76 61 6C 20 3D 20 70 6F     else poval = po
01E220:  73 70 65 63 3B 0D 0A 20 20 69 66 28 6D 31 76 61    spec;..  if(m1va
01E230:  6C 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 73 6B    l > 0) {..    sk
01E240:  69 70 28 6D 31 76 61 6C 2D 31 29 3B 0D 0A 20 20    ip(m1val-1);..  
01E250:  20 20 69 66 28 63 75 72 70 61 67 25 32 29 20 70      if(curpag%2) p
01E260:  75 74 74 6C 28 6F 68 65 61 64 65 72 2C 20 63 75    uttl(oheader, cu
01E270:  72 70 61 67 29 3B 0D 0A 20 20 20 20 65 6C 73 65    rpag);..    else
01E280:  20 70 75 74 74 6C 28 65 68 65 61 64 65 72 2C 20     puttl(eheader, 
01E290:  63 75 72 70 61 67 29 3B 0D 0A 20 20 20 20 7D 0D    curpag);..    }.
01E2A0:  0A 20 20 73 6B 69 70 28 6D 32 76 61 6C 29 3B 0D    .  skip(m2val);.
01E2B0:  0A 20 20 6C 69 6E 65 6E 6F 3D 6D 31 76 61 6C 2B    .  lineno=m1val+
01E2C0:  6D 32 76 61 6C 2B 31 3B 0D 0A 20 20 7D 0D 0A 0D    m2val+1;..  }...
01E2D0:  0A 2F 2A 0D 0A 2A 2A 20 70 66 6F 6F 74 20 2D 2D    ./*..** pfoot --
01E2E0:  20 70 75 74 20 6F 75 74 20 66 6F 6F 74 65 72 0D     put out footer.
01E2F0:  0A 2A 2F 0D 0A 70 66 6F 6F 74 28 29 20 7B 0D 0A    .*/..pfoot() {..
01E300:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A    ;..  }..../*..**
01E310:  20 6C 65 61 64 62 6C 20 2D 2D 20 64 65 6C 65 74     leadbl -- delet
01E320:  65 20 6C 65 61 64 69 6E 67 20 62 6C 61 6E 6B 73    e leading blanks
01E330:  2C 20 73 65 74 20 74 69 76 61 6C 0D 0A 2A 2F 0D    , set tival..*/.
01E340:  0A 6C 65 61 64 62 6C 28 62 75 66 29 20 63 68 61    .leadbl(buf) cha
01E350:  72 20 62 75 66 5B 5D 3B 20 7B 0D 0A 20 20 69 6E    r buf[]; {..  in
01E360:  74 20 69 2C 20 6A 3B 0D 0A 20 20 62 72 6B 28 29    t i, j;..  brk()
01E370:  3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69    ;..  i=0;..  whi
01E380:  6C 65 28 62 75 66 5B 69 5D 3D 3D 27 20 27 29 20    le(buf[i]==' ') 
01E390:  2B 2B 69 3B 0D 0A 20 20 69 66 28 62 75 66 5B 69    ++i;..  if(buf[i
01E3A0:  5D 21 3D 4E 55 4C 4C 29 20 74 69 76 61 6C 20 3D    ]!=NULL) tival =
01E3B0:  20 74 69 76 61 6C 20 2B 20 69 3B 0D 0A 20 20 6A     tival + i;..  j
01E3C0:  3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 62 75 66    =0;..  while(buf
01E3D0:  5B 6A 2B 2B 5D 3D 62 75 66 5B 69 2B 2B 5D 29 3B    [j++]=buf[i++]);
01E3E0:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
01E3F0:  77 69 64 74 68 20 2D 2D 20 63 6F 6D 70 75 74 65    width -- compute
01E400:  20 77 69 64 74 68 20 6F 66 20 63 68 61 72 61 63     width of charac
01E410:  74 65 72 20 73 74 72 69 6E 67 0D 0A 2A 2F 0D 0A    ter string..*/..
01E420:  77 69 64 74 68 28 62 75 66 29 20 63 68 61 72 20    width(buf) char 
01E430:  2A 62 75 66 3B 20 7B 0D 0A 20 20 69 6E 74 20 77    *buf; {..  int w
01E440:  69 64 65 3B 0D 0A 20 20 77 69 64 65 3D 30 3B 0D    ide;..  wide=0;.
01E450:  0A 20 20 77 68 69 6C 65 28 2A 62 75 66 29 20 7B    .  while(*buf) {
01E460:  0D 0A 20 20 20 20 69 66 28 2A 62 75 66 3D 3D 32    ..    if(*buf==2
01E470:  37 29 20 7B 0D 0A 20 20 20 20 20 20 77 68 69 6C    7) {..      whil
01E480:  65 28 2A 62 75 66 2B 2B 20 21 3D 20 31 29 20 3B    e(*buf++ != 1) ;
01E490:  0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65    ..      continue
01E4A0:  3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    ;..      }..    
01E4B0:  69 66 28 2A 62 75 66 20 3D 3D 20 27 5C 62 27 29    if(*buf == '\b')
01E4C0:  20 2D 2D 77 69 64 65 3B 0D 0A 20 20 20 20 65 6C     --wide;..    el
01E4D0:  73 65 20 69 66 28 2A 62 75 66 20 21 3D 20 27 5C    se if(*buf != '\
01E4E0:  6E 27 29 20 7B 0D 0A 20 20 20 20 20 20 2B 2B 77    n') {..      ++w
01E4F0:  69 64 65 3B 0D 0A 20 20 20 20 20 20 69 66 28 64    ide;..      if(d
01E500:  20 20 73 6B 69 70 28 6D 33 76 61 6C 29 3B 0D 0A      skip(m3val);..
01E510:  20 20 69 66 28 6D 34 76 61 6C 20 3E 20 30 29 20      if(m4val > 0) 
01E520:  7B 0D 0A 20 20 20 20 69 66 28 63 75 72 70 61 67    {..    if(curpag
01E530:  25 32 29 20 70 75 74 74 6C 28 6F 66 6F 6F 74 65    %2) puttl(ofoote
01E540:  72 2C 20 63 75 72 70 61 67 29 3B 0D 0A 20 20 20    r, curpag);..   
01E550:  20 65 6C 73 65 20 70 75 74 74 6C 28 65 66 6F 6F     else puttl(efoo
01E560:  74 65 72 2C 20 63 75 72 70 61 67 29 3B 0D 0A 20    ter, curpag);.. 
01E570:  20 20 20 7D 0D 0A 20 20 69 66 28 28 63 75 72 70       }..  if((curp
01E580:  61 67 20 3E 3D 20 65 6E 64 29 26 28 28 65 63 6F    ag >= end)&((eco
01E590:  70 79 3D 3D 48 55 47 45 29 7C 28 65 63 6F 70 79    py==HUGE)|(ecopy
01E5A0:  3D 3D 70 61 73 73 29 29 29 20 7B 0D 0A 20 20 20    ==pass))) {..   
01E5B0:  20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29 3B     fclose(stdout);
01E5C0:  0D 0A 20 20 20 20 65 78 69 74 28 30 29 3B 0D 0A    ..    exit(0);..
01E5D0:  20 20 20 20 7D 0D 0A 20 20 69 66 28 70 61 75 73        }..  if(paus
01E5E0:  65 3D 3D 4E 4F 29 20 73 6B 69 70 28 6D 34 76 61    e==NO) skip(m4va
01E5F0:  6C 2D 31 29 3B 0D 0A 20 20 6C 69 6E 65 6E 6F 3D    l-1);..  lineno=
01E600:  30 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A    0;..  }..../*..*
01E610:  2A 20 70 75 74 74 6C 20 2D 2D 20 70 75 74 20 6F    * puttl -- put o
01E620:  75 74 20 74 69 74 6C 65 20 6C 69 6E 65 20 77 69    ut title line wi
01E630:  74 68 20 6F 70 74 69 6F 6E 61 6C 20 70 61 67 65    th optional page
01E640:  20 6E 75 6D 62 65 72 0D 0A 2A 2F 0D 0A 70 75 74     number..*/..put
01E650:  74 6C 28 62 75 66 2C 20 70 61 67 65 6E 6F 29 20    tl(buf, pageno) 
01E660:  63 68 61 72 20 62 75 66 5B 5D 3B 20 69 6E 74 20    char buf[]; int 
01E670:  70 61 67 65 6E 6F 3B 20 7B 0D 0A 20 20 63 68 61    pageno; {..  cha
01E680:  72 20 73 74 72 5B 32 5D 3B 0D 0A 20 20 69 6E 74    r str[2];..  int
01E690:  20 69 2C 20 6A 2C 20 6B 20 2C 70 61 72 74 73 3B     i, j, k ,parts;
01E6A0:  0D 0A 20 20 73 74 72 5B 31 5D 3D 4E 55 4C 4C 3B    ..  str[1]=NULL;
01E6B0:  0D 0A 20 20 69 3D 70 6F 76 61 6C 3B 20 20 2F 2A    ..  i=poval;  /*
01E6C0:  2A 20 6D 69 6E 75 73 20 6F 6E 20 6F 64 64 20 70    * minus on odd p
01E6D0:  61 67 65 73 20 2A 2A 2F 0D 0A 20 20 77 68 69 6C    ages **/..  whil
01E6E0:  65 28 2B 2B 69 20 3C 3D 20 6C 6D 76 61 6C 29 20    e(++i <= lmval) 
01E6F0:  70 72 69 6E 74 28 22 20 22 2C 20 59 45 53 29 3B    print(" ", YES);
01E700:  77 61 63 74 20 26 26 20 21 69 73 73 70 61 63 65    wact && !isspace
01E710:  28 2A 62 75 66 29 29 20 2B 2B 77 69 64 65 3B 0D    (*buf)) ++wide;.
01E720:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2B 2B    .      }..    ++
01E730:  62 75 66 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72    buf;..    }..  r
01E740:  65 74 75 72 6E 20 28 77 69 64 65 29 3B 0D 0A 20    eturn (wide);.. 
01E750:  20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 62 72 6B     }..../*..** brk
01E760:  20 2D 2D 20 65 6E 64 20 63 75 72 72 65 6E 74 20     -- end current 
01E770:  66 69 6C 6C 65 64 20 6C 69 6E 65 0D 0A 2A 2F 0D    filled line..*/.
01E780:  0A 62 72 6B 28 29 20 7B 0D 0A 20 20 69 66 28 6F    .brk() {..  if(o
01E790:  75 74 70 20 3E 20 2D 31 29 20 7B 0D 0A 20 20 20    utp > -1) {..   
01E7A0:  20 6F 75 74 62 75 66 5B 6F 75 74 70 5D 3D 4E 55     outbuf[outp]=NU
01E7B0:  4C 4C 3B 0D 0A 20 20 20 20 6F 75 74 70 3D 2D 31    LL;..    outp=-1
01E7C0:  3B 0D 0A 20 20 20 20 70 75 74 28 6F 75 74 62 75    ;..    put(outbu
01E7D0:  66 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 6F 75    f);..    }..  ou
01E7E0:  74 77 3D 6F 75 74 77 64 73 3D 30 3B 0D 0A 20 20    tw=outwds=0;..  
01E7F0:  7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 70 75 74 77    }..../*..** putw
01E800:  72 64 20 2D 2D 20 70 75 74 20 61 20 77 6F 72 64    rd -- put a word
01E810:  20 69 6E 20 6F 75 74 62 75 66 20 28 64 6F 65 73     in outbuf (does
01E820:  20 6D 61 72 67 69 6E 20 6A 75 73 74 69 66 69 63     margin justific
01E830:  61 74 69 6F 6E 29 0D 0A 2A 2F 0D 0A 70 75 74 77    ation)..*/..putw
01E840:  72 64 28 77 72 64 62 75 66 29 20 63 68 61 72 20    rd(wrdbuf) char 
01E850:  77 72 64 62 75 66 5B 5D 3B 20 7B 0D 0A 20 20 69    wrdbuf[]; {..  i
01E860:  6E 74 20 6C 61 73 74 2C 20 6C 6C 76 61 6C 2C 20    nt last, llval, 
01E870:  6E 65 78 74 72 61 2C 20 77 2C 20 69 3B 0D 0A 20    nextra, w, i;.. 
01E880:  20 77 3D 77 69 64 74 68 28 77 72 64 62 75 66 29     w=width(wrdbuf)
01E890:  3B 0D 0A 20 20 6C 61 73 74 3D 73 74 72 6C 65 6E    ;..  last=strlen
01E8A0:  28 77 72 64 62 75 66 29 2B 6F 75 74 70 2B 31 3B    (wrdbuf)+outp+1;
01E8B0:  0D 0A 20 20 6C 6C 76 61 6C 3D 72 6D 76 61 6C 2D    ..  llval=rmval-
01E8C0:  6C 6D 76 61 6C 2D 74 69 76 61 6C 2D 69 6E 76 61    lmval-tival-inva
01E8D0:  6C 2D 28 73 71 76 61 6C 3C 3C 31 29 3B 0D 0A 20    l-(sqval<<1);.. 
01E8E0:  20 69 66 28 28 6F 75 74 70 20 3E 20 2D 31 29 26     if((outp > -1)&
01E8F0:  28 28 6F 75 74 77 2B 77 20 3E 20 6C 6C 76 61 6C    ((outw+w > llval
01E900:  0D 0A 20 20 70 61 72 74 73 3D 31 3B 0D 0A 20 20    ..  parts=1;..  
01E910:  69 3D 6B 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28    i=k=0;..  while(
01E920:  62 75 66 5B 69 5D 21 3D 4E 55 4C 4C 29 20 7B 0D    buf[i]!=NULL) {.
01E930:  0A 20 20 20 20 69 66 28 62 75 66 5B 69 5D 3D 3D    .    if(buf[i]==
01E940:  50 41 47 45 4E 55 4D 29 20 7B 0D 0A 20 20 20 20    PAGENUM) {..    
01E950:  20 20 69 74 6F 64 28 70 61 67 65 6E 6F 2C 20 6E      itod(pageno, n
01E960:  62 72 73 74 72 2C 20 2D 20 4E 57 49 44 54 48 29    brstr, - NWIDTH)
01E970:  3B 0D 0A 20 20 20 20 20 20 6A 3D 30 3B 0D 0A 20    ;..      j=0;.. 
01E980:  20 20 20 20 20 77 68 69 6C 65 28 6E 62 72 73 74         while(nbrst
01E990:  72 5B 6A 5D 3D 3D 27 20 27 29 20 2B 2B 6A 3B 0D    r[j]==' ') ++j;.
01E9A0:  0A 20 20 20 20 20 20 77 68 69 6C 65 28 6A 20 3C    .      while(j <
01E9B0:  20 4E 57 49 44 54 48 29 20 7B 0D 0A 20 20 20 20     NWIDTH) {..    
01E9C0:  20 20 20 20 69 66 28 6B 20 3C 20 28 4D 41 58 4F        if(k < (MAXO
01E9D0:  55 54 2D 31 29 29 20 74 74 6C 62 75 66 5B 6B 2B    UT-1)) ttlbuf[k+
01E9E0:  2B 5D 3D 6E 62 72 73 74 72 5B 6A 5D 3B 0D 0A 20    +]=nbrstr[j];.. 
01E9F0:  20 20 20 20 20 20 20 2B 2B 6A 3B 0D 0A 20 20 20           ++j;..   
01EA00:  20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D         }..      }.
01EA10:  0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20    .    else {..   
01EA20:  20 20 20 69 66 28 62 75 66 5B 69 5D 3D 3D 54 54       if(buf[i]==TT
01EA30:  4C 44 45 4C 49 4D 29 20 2B 2B 70 61 72 74 73 3B    LDELIM) ++parts;
01EA40:  0D 0A 20 20 20 20 20 20 69 66 28 6B 20 3C 20 28    ..      if(k < (
01EA50:  4D 41 58 4F 55 54 2D 31 29 29 20 74 74 6C 62 75    MAXOUT-1)) ttlbu
01EA60:  66 5B 6B 2B 2B 5D 3D 62 75 66 5B 69 5D 3B 0D 0A    f[k++]=buf[i];..
01EA70:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2B 2B 69          }..    ++i
01EA80:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 74 74 6C 62    ;..    }..  ttlb
01EA90:  75 66 5B 6B 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 73    uf[k]=NULL;..  s
01EAA0:  70 72 65 61 64 28 74 74 6C 62 75 66 2C 20 6B 2B    pread(ttlbuf, k+
01EAB0:  31 2C 20 4D 41 58 4F 55 54 2C 20 72 6D 76 61 6C    1, MAXOUT, rmval
01EAC0:  2D 6C 6D 76 61 6C 2D 6B 2C 20 70 61 72 74 73 2C    -lmval-k, parts,
01EAD0:  20 54 54 4C 44 45 4C 49 4D 29 3B 0D 0A 20 20 2F     TTLDELIM);..  /
01EAE0:  2A 20 64 69 73 61 62 6C 65 20 72 75 6E 6E 69 6E    * disable runnin
01EAF0:  67 20 75 6C 2C 20 69 74 2C 20 64 77 2C 20 64 73    g ul, it, dw, ds
01EB00:  29 7C 28 6C 61 73 74 20 3E 3D 20 4D 41 58 4F 55    )|(last >= MAXOU
01EB10:  54 29 29 29 20 7B 0D 0A 20 20 20 20 6C 61 73 74    T))) {..    last
01EB20:  3D 6C 61 73 74 2D 6F 75 74 70 2D 31 3B 0D 0A 20    =last-outp-1;.. 
01EB30:  20 20 20 69 66 28 6A 75 73 74 21 3D 59 45 53 29       if(just!=YES)
01EB40:  20 6E 65 78 74 72 61 3D 30 3B 0D 0A 20 20 20 20     nextra=0;..    
01EB50:  65 6C 73 65 20 6E 65 78 74 72 61 3D 6C 6C 76 61    else nextra=llva
01EB60:  6C 2D 6F 75 74 77 2B 31 3B 0D 0A 20 20 20 20 73    l-outw+1;..    s
01EB70:  70 72 65 61 64 28 6F 75 74 62 75 66 2C 20 6F 75    pread(outbuf, ou
01EB80:  74 70 2C 20 4D 41 58 4F 55 54 2C 20 6E 65 78 74    tp, MAXOUT, next
01EB90:  72 61 2C 20 6F 75 74 77 64 73 2C 20 27 20 27 29    ra, outwds, ' ')
01EBA0:  3B 0D 0A 20 20 20 20 69 66 28 28 6E 65 78 74 72    ;..    if((nextr
01EBB0:  61 20 3E 20 30 29 26 28 6F 75 74 77 64 73 20 3E    a > 0)&(outwds >
01EBC0:  20 31 29 29 20 6F 75 74 70 3D 6F 75 74 70 2B 6E     1)) outp=outp+n
01EBD0:  65 78 74 72 61 3B 0D 0A 20 20 20 20 62 72 6B 28    extra;..    brk(
01EBE0:  29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28    );..    }..  if(
01EBF0:  6F 75 74 70 20 3E 20 30 20 26 26 20 63 75 61 63    outp > 0 && cuac
01EC00:  74 20 3E 20 31 20 26 26 20 21 69 74 73 75 62 20    t > 1 && !itsub 
01EC10:  26 26 20 74 74 79 6D 6F 64 65 29 0D 0A 20 20 20    && ttymode)..   
01EC20:  20 6F 75 74 62 75 66 5B 6F 75 74 70 5D 3D 27 5F     outbuf[outp]='_
01EC30:  27 3B 0D 0A 20 20 65 6C 73 65 20 7B 0D 0A 20 20    ';..  else {..  
01EC40:  20 20 2B 2B 6F 75 74 77 64 73 3B 0D 0A 20 20 20      ++outwds;..   
01EC50:  20 69 66 28 63 75 61 63 74 3D 3D 31 29 20 63 75     if(cuact==1) cu
01EC60:  61 63 74 3D 32 3B 0D 0A 20 20 20 20 7D 0D 0A 20    act=2;..    }.. 
01EC70:  20 69 66 28 28 6F 75 74 70 20 3C 20 30 29 26 28     if((outp < 0)&(
01EC80:  77 72 64 62 75 66 5B 30 5D 3D 3D 27 20 27 29 29    wrdbuf[0]==' '))
01EC90:  20 69 3D 31 3B 20 65 6C 73 65 20 69 3D 30 3B 0D     i=1; else i=0;.
01ECA0:  0A 20 20 73 63 6F 70 79 28 77 72 64 62 75 66 2B    .  scopy(wrdbuf+
01ECB0:  69 2C 20 30 2C 20 6F 75 74 62 75 66 2C 20 6F 75    i, 0, outbuf, ou
01ECC0:  74 70 2B 31 29 3B 0D 0A 20 20 6F 75 74 70 3D 6C    tp+1);..  outp=l
01ECD0:  61 73 74 2D 69 3B 0D 0A 20 20 6F 75 74 62 75 66    ast-i;..  outbuf
01ECE0:  5B 6F 75 74 70 5D 3D 27 20 27 3B 0D 0A 20 20 6F    [outp]=' ';..  o
01ECF0:  75 74 77 3D 6F 75 74 77 2B 77 2B 31 2D 69 3B 0D    utw=outw+w+1-i;.
01ED00:  2C 20 6F 72 20 62 66 20 2A 2F 0D 0A 20 20 69 66    , or bf */..  if
01ED10:  28 75 6C 6F 66 66 29 20 70 72 69 6E 74 28 75 6C    (uloff) print(ul
01ED20:  6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66    off, YES);..  if
01ED30:  28 69 74 6F 66 66 29 20 70 72 69 6E 74 28 69 74    (itoff) print(it
01ED40:  6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66    off, YES);..  if
01ED50:  28 64 73 6F 66 66 29 20 70 72 69 6E 74 28 64 73    (dsoff) print(ds
01ED60:  6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66    off, YES);..  if
01ED70:  28 62 66 6F 66 66 29 20 70 72 69 6E 74 28 62 66    (bfoff) print(bf
01ED80:  6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66    off, YES);..  if
01ED90:  28 64 77 6F 66 66 29 20 70 72 69 6E 74 28 64 77    (dwoff) print(dw
01EDA0:  6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 70 72    off, YES);..  pr
01EDB0:  69 6E 74 28 74 74 6C 62 75 66 2C 20 59 45 53 29    int(ttlbuf, YES)
01EDC0:  3B 0D 0A 20 20 2F 2A 20 72 65 65 6E 61 62 6C 65    ;..  /* reenable
01EDD0:  20 72 75 6E 6E 69 6E 67 20 75 6C 2C 20 69 74 2C     running ul, it,
01EDE0:  20 64 77 2C 20 64 73 2C 20 6F 72 20 62 66 20 2A     dw, ds, or bf *
01EDF0:  2F 0D 0A 20 20 69 66 28 75 6C 6F 6E 29 20 70 72    /..  if(ulon) pr
01EE00:  69 6E 74 28 75 6C 6F 6E 2C 20 59 45 53 29 3B 0D    int(ulon, YES);.
01EE10:  0A 20 20 69 66 28 69 74 6F 6E 29 20 70 72 69 6E    .  if(iton) prin
01EE20:  74 28 69 74 6F 6E 2C 20 59 45 53 29 3B 0D 0A 20    t(iton, YES);.. 
01EE30:  20 69 66 28 64 73 6F 6E 29 20 70 72 69 6E 74 28     if(dson) print(
01EE40:  64 73 6F 6E 2C 20 59 45 53 29 3B 0D 0A 20 20 69    dson, YES);..  i
01EE50:  66 28 62 66 6F 6E 29 20 70 72 69 6E 74 28 62 66    f(bfon) print(bf
01EE60:  6F 6E 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66 28    on, YES);..  if(
01EE70:  64 77 6F 6E 29 20 70 72 69 6E 74 28 64 77 6F 6E    dwon) print(dwon
01EE80:  2C 20 59 45 53 29 3B 0D 0A 20 20 70 72 69 6E 74    , YES);..  print
01EE90:  28 22 5C 6E 22 2C 20 59 45 53 29 3B 0D 0A 20 20    ("\n", YES);..  
01EEA0:  7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 74    }..../*..** gett
01EEB0:  6C 20 2D 2D 20 63 6F 70 79 20 74 69 74 6C 65 20    l -- copy title 
01EEC0:  66 72 6F 6D 20 62 75 66 20 74 6F 20 74 74 6C 0D    from buf to ttl.
01EED0:  0A 2A 2F 0D 0A 67 65 74 74 6C 28 62 75 66 2C 20    .*/..gettl(buf, 
01EEE0:  74 74 6C 29 20 63 68 61 72 20 2A 62 75 66 2C 20    ttl) char *buf, 
01EEF0:  2A 74 74 6C 3B 20 7B 0D 0A 20 20 69 6E 74 20 69    *ttl; {..  int i
01EF00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
01EF10:  1A 00 01 00 02 09 52 E5 1A 00 41 02 00 00 00 02    ......R...A.....
01EF20:  1A 00 46 02 00 00 00 02 1A 00 42 02 00 00 00 02    ..F.......B.....
01EF30:  1A 00 47 02 00 00 00 02 1A 00 43 02 00 00 00 02    ..G.......C.....
01EF40:  1A 00 48 02 00 00 00 02 1A 00 44 02 00 00 00 02    ..H.......D.....
01EF50:  1A 00 49 02 00 00 00 02 1A 00 45 02 00 00 00 02    ..I.......E.....
01EF60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EF70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EF80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EF90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01EFF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
01F000:  0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73    .  }..../*..** s
01F010:  70 72 65 61 64 20 2D 2D 20 73 70 72 65 61 64 20    pread -- spread 
01F020:  77 6F 72 64 73 20 74 6F 20 6A 75 73 74 69 66 79    words to justify
01F030:  20 72 69 67 68 74 20 6D 61 72 67 69 6E 0D 0A 2A     right margin..*
01F040:  2F 0D 0A 73 70 72 65 61 64 28 62 75 66 2C 20 6F    /..spread(buf, o
01F050:  75 74 70 2C 20 6D 61 78 2C 20 6E 65 78 74 72 61    utp, max, nextra
01F060:  2C 20 6F 75 74 77 64 73 2C 20 67 61 70 69 64 29    , outwds, gapid)
01F070:  0D 0A 20 20 63 68 61 72 20 62 75 66 5B 5D 2C 20    ..  char buf[], 
01F080:  67 61 70 69 64 3B 20 69 6E 74 20 6F 75 74 70 2C    gapid; int outp,
01F090:  20 6D 61 78 2C 20 6E 65 78 74 72 61 2C 20 6F 75     max, nextra, ou
01F0A0:  74 77 64 73 3B 20 7B 0D 0A 20 20 69 6E 74 20 69    twds; {..  int i
01F0B0:  2C 20 6A 2C 20 6E 62 2C 20 6E 65 2C 20 6E 68 6F    , j, nb, ne, nho
01F0C0:  6C 65 73 3B 0D 0A 20 20 69 66 28 28 6E 65 78 74    les;..  if((next
01F0D0:  72 61 20 3C 3D 20 30 29 7C 28 6F 75 74 77 64 73    ra <= 0)|(outwds
01F0E0:  20 3C 3D 20 31 29 29 20 72 65 74 75 72 6E 3B 0D     <= 1)) return;.
01F0F0:  0A 20 20 64 69 72 3D 31 2D 64 69 72 3B 20 2F 2A    .  dir=1-dir; /*
01F100:  20 72 65 76 65 72 73 65 20 70 72 65 76 20 64 69     reverse prev di
01F110:  72 65 63 74 69 6F 6E 20 2A 2F 0D 0A 20 20 6E 65    rection */..  ne
01F120:  3D 6E 65 78 74 72 61 3B 0D 0A 20 20 6E 68 6F 6C    =nextra;..  nhol
01F130:  65 73 3D 6F 75 74 77 64 73 2D 31 3B 0D 0A 20 20    es=outwds-1;..  
01F140:  69 3D 6F 75 74 70 2D 31 3B 0D 0A 20 20 69 66 28    i=outp-1;..  if(
01F150:  28 6D 61 78 2D 32 29 20 3C 20 28 69 2B 6E 65 29    (max-2) < (i+ne)
01F160:  29 20 6A 3D 6D 61 78 2D 32 3B 0D 0A 20 20 65 6C    ) j=max-2;..  el
01F170:  73 65 20 6A 3D 69 2B 6E 65 3B 0D 0A 20 20 77 68    se j=i+ne;..  wh
01F180:  69 6C 65 28 69 20 3C 20 6A 29 20 7B 0D 0A 20 20    ile(i < j) {..  
01F190:  20 20 69 66 28 62 75 66 5B 69 5D 3D 3D 67 61 70      if(buf[i]==gap
01F1A0:  69 64 29 20 7B 0D 0A 20 20 20 20 20 20 62 75 66    id) {..      buf
01F1B0:  5B 6A 5D 3D 27 20 27 3B 0D 0A 20 20 20 20 20 20    [j]=' ';..      
01F1C0:  69 66 28 64 69 72 3D 3D 30 29 20 6E 62 3D 28 6E    if(dir==0) nb=(n
01F1D0:  65 2D 31 29 2F 6E 68 6F 6C 65 73 20 2B 20 31 3B    e-1)/nholes + 1;
01F1E0:  0D 0A 20 20 20 20 20 20 65 6C 73 65 20 6E 62 3D    ..      else nb=
01F1F0:  6E 65 2F 6E 68 6F 6C 65 73 3B 0D 0A 20 20 20 20    ne/nholes;..    
01F200:  20 6C 69 6E 65 0D 0A 2A 2F 0D 0A 69 74 61 6C 69     line..*/..itali
01F210:  63 28 62 75 66 2C 20 74 62 75 66 2C 20 73 69 7A    c(buf, tbuf, siz
01F220:  65 29 20 63 68 61 72 20 62 75 66 5B 5D 2C 20 74    e) char buf[], t
01F230:  62 75 66 5B 5D 3B 20 69 6E 74 20 73 69 7A 65 3B    buf[]; int size;
01F240:  20 7B 0D 0A 20 20 63 68 61 72 20 2A 70 74 72 3B     {..  char *ptr;
01F250:  0D 0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A 20    ..  int i, j;.. 
01F260:  20 69 66 28 2A 62 75 66 20 3D 3D 20 30 29 20 72     if(*buf == 0) r
01F270:  65 74 75 72 6E 3B 0D 0A 20 20 69 66 28 74 74 79    eturn;..  if(tty
01F280:  6D 6F 64 65 29 20 72 65 74 75 72 6E 3B 0D 0A 20    mode) return;.. 
01F290:  20 69 3D 6A 3D 30 3B 0D 0A 20 20 70 74 72 3D 69     i=j=0;..  ptr=i
01F2A0:  74 70 72 65 66 3B 0D 0A 20 20 77 68 69 6C 65 28    tpref;..  while(
01F2B0:  28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B    (tbuf[j++]=*ptr+
01F2C0:  2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 70 74    +) != 1) ;..  pt
01F2D0:  72 3D 62 66 70 72 65 66 3B 0D 0A 20 20 77 68 69    r=bfpref;..  whi
01F2E0:  6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70    le((tbuf[j++]=*p
01F2F0:  74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20    tr++) != 1) ;.. 
01F300:  20 77 68 69 6C 65 28 28 62 75 66 5B 69 5D 21 3D     while((buf[i]!=
01F310:  4E 55 4C 4C 29 26 28 6A 3C 28 73 69 7A 65 2D 32    NULL)&(j<(size-2
01F320:  29 29 29 20 20 74 62 75 66 5B 6A 2B 2B 5D 3D 62    )))  tbuf[j++]=b
01F330:  75 66 5B 69 2B 2B 5D 3B 0D 0A 20 20 70 74 72 3D    uf[i++];..  ptr=
01F340:  69 74 73 75 66 66 3B 0D 0A 20 20 77 68 69 6C 65    itsuff;..  while
01F350:  28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72    ((tbuf[j++]=*ptr
01F360:  2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 70    ++) != 1) ;..  p
01F370:  74 72 3D 62 66 73 75 66 66 3B 0D 0A 20 20 77 68    tr=bfsuff;..  wh
01F380:  69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A    ile((tbuf[j++]=*
01F390:  70 74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A    ptr++) != 1) ;..
01F3A0:  20 20 74 62 75 66 5B 6A 5D 3D 4E 55 4C 4C 3B 0D      tbuf[j]=NULL;.
01F3B0:  0A 20 20 73 63 6F 70 79 28 74 62 75 66 2C 20 30    .  scopy(tbuf, 0
01F3C0:  2C 20 62 75 66 2C 20 30 29 3B 0D 0A 20 20 7D 0D    , buf, 0);..  }.
01F3D0:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 75 62 6C 65    .../*..** double
01F3E0:  20 2D 2D 20 64 6F 75 62 6C 65 2D 77 69 64 65 20     -- double-wide 
01F3F0:  61 20 6C 69 6E 65 20 28 6E 6F 6E 74 74 79 20 6D    a line (nontty m
01F400:  20 20 6E 65 3D 6E 65 2D 6E 62 3B 0D 0A 20 20 20      ne=ne-nb;..   
01F410:  20 20 20 6E 68 6F 6C 65 73 3D 6E 68 6F 6C 65 73       nholes=nholes
01F420:  2D 31 3B 0D 0A 20 20 20 20 20 20 77 68 69 6C 65    -1;..      while
01F430:  28 28 6E 62 2D 2D 29 20 3E 20 30 29 0D 0A 20 20    ((nb--) > 0)..  
01F440:  20 20 20 20 20 20 62 75 66 5B 2D 2D 6A 5D 3D 27          buf[--j]='
01F450:  20 27 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20     ';..      }..  
01F460:  20 20 65 6C 73 65 20 62 75 66 5B 6A 5D 3D 62 75      else buf[j]=bu
01F470:  66 5B 69 5D 3B 0D 0A 20 20 20 20 2D 2D 69 3B 0D    f[i];..    --i;.
01F480:  0A 20 20 20 20 2D 2D 6A 3B 0D 0A 20 20 20 20 7D    .    --j;..    }
01F490:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
01F4A0:  63 65 6E 74 65 72 20 2D 2D 20 63 65 6E 74 65 72    center -- center
01F4B0:  20 61 20 6C 69 6E 65 20 62 79 20 73 65 74 74 69     a line by setti
01F4C0:  6E 67 20 74 69 76 61 6C 0D 0A 2A 2F 0D 0A 63 65    ng tival..*/..ce
01F4D0:  6E 74 65 72 28 62 75 66 29 20 63 68 61 72 20 62    nter(buf) char b
01F4E0:  75 66 5B 5D 3B 20 7B 0D 0A 20 20 69 6E 74 20 69    uf[]; {..  int i
01F4F0:  2C 20 6A 3B 0D 0A 20 20 6A 20 3D 20 2D 6C 6D 76    , j;..  j = -lmv
01F500:  61 6C 20 2D 20 69 6E 76 61 6C 20 2D 20 73 71 76    al - inval - sqv
01F510:  61 6C 3B 0D 0A 20 20 69 66 28 28 69 3D 28 28 72    al;..  if((i=((r
01F520:  6D 76 61 6C 2D 6C 6D 76 61 6C 2D 77 69 64 74 68    mval-lmval-width
01F530:  28 62 75 66 29 29 2F 32 29 2D 69 6E 76 61 6C 2D    (buf))/2)-inval-
01F540:  73 71 76 61 6C 29 20 3C 20 6A 29 0D 0A 20 20 20    sqval) < j)..   
01F550:  20 20 20 20 74 69 76 61 6C 20 3D 20 6A 3B 0D 0A        tival = j;..
01F560:  20 20 65 6C 73 65 20 74 69 76 61 6C 20 3D 20 69      else tival = i
01F570:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A    ;..  }..../*..**
01F580:  20 75 6E 64 65 72 6C 20 2D 2D 20 75 6E 64 65 72     underl -- under
01F590:  6C 69 6E 65 20 61 20 6C 69 6E 65 0D 0A 2A 2F 0D    line a line..*/.
01F5A0:  0A 75 6E 64 65 72 6C 28 62 75 66 2C 20 74 62 75    .underl(buf, tbu
01F5B0:  66 2C 20 73 69 7A 65 29 20 63 68 61 72 20 62 75    f, size) char bu
01F5C0:  66 5B 5D 2C 20 74 62 75 66 5B 5D 3B 20 69 6E 74    f[], tbuf[]; int
01F5D0:  20 73 69 7A 65 3B 20 7B 0D 0A 20 20 63 68 61 72     size; {..  char
01F5E0:  20 63 2C 20 2A 70 74 72 3B 0D 0A 20 20 69 6E 74     c, *ptr;..  int
01F5F0:  20 70 72 65 66 69 78 65 64 2C 20 69 2C 20 6A 3B     prefixed, i, j;
01F600:  6F 64 65 20 6F 6E 6C 79 29 0D 0A 2A 2F 0D 0A 64    ode only)..*/..d
01F610:  6F 75 62 6C 65 28 62 75 66 2C 20 74 62 75 66 2C    ouble(buf, tbuf,
01F620:  20 73 69 7A 65 29 20 63 68 61 72 20 62 75 66 5B     size) char buf[
01F630:  5D 2C 20 74 62 75 66 5B 5D 3B 20 69 6E 74 20 73    ], tbuf[]; int s
01F640:  69 7A 65 3B 20 7B 0D 0A 20 20 63 68 61 72 20 2A    ize; {..  char *
01F650:  70 74 72 3B 0D 0A 20 20 69 6E 74 20 73 70 61 63    ptr;..  int spac
01F660:  65 2C 20 69 2C 20 6A 3B 0D 0A 20 20 69 66 28 21    e, i, j;..  if(!
01F670:  2A 62 75 66 20 7C 7C 20 74 74 79 6D 6F 64 65 29    *buf || ttymode)
01F680:  20 72 65 74 75 72 6E 3B 0D 0A 20 20 73 70 61 63     return;..  spac
01F690:  65 20 3D 20 59 45 53 3B 0D 0A 20 20 69 20 3D 20    e = YES;..  i = 
01F6A0:  6A 20 3D 20 30 3B 0D 0A 20 20 77 68 69 6C 65 28    j = 0;..  while(
01F6B0:  62 75 66 5B 69 5D 20 26 26 20 6A 20 3C 20 28 73    buf[i] && j < (s
01F6C0:  69 7A 65 2D 33 29 29 20 7B 0D 0A 20 20 20 20 69    ize-3)) {..    i
01F6D0:  66 28 69 73 73 70 61 63 65 28 62 75 66 5B 69 5D    f(isspace(buf[i]
01F6E0:  29 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 21    )) {..      if(!
01F6F0:  73 70 61 63 65 29 20 7B 0D 0A 20 20 20 20 20 20    space) {..      
01F700:  20 20 70 74 72 3D 64 77 73 75 66 66 3B 0D 0A 20      ptr=dwsuff;.. 
01F710:  20 20 20 20 20 20 20 77 68 69 6C 65 28 28 74 62           while((tb
01F720:  75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29 20    uf[j++]=*ptr++) 
01F730:  21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 20 20 20    != 1) ;..       
01F740:  20 7D 0D 0A 20 20 20 20 20 20 73 70 61 63 65 20     }..      space 
01F750:  3D 20 59 45 53 3B 0D 0A 20 20 20 20 20 20 7D 0D    = YES;..      }.
01F760:  0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20    .    else {..   
01F770:  20 20 20 69 66 28 73 70 61 63 65 29 20 7B 0D 0A       if(space) {..
01F780:  20 20 20 20 20 20 20 20 70 74 72 3D 64 77 70 72            ptr=dwpr
01F790:  65 66 3B 0D 0A 20 20 20 20 20 20 20 20 77 68 69    ef;..        whi
01F7A0:  6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70    le((tbuf[j++]=*p
01F7B0:  74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20    tr++) != 1) ;.. 
01F7C0:  20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20           }..      
01F7D0:  73 70 61 63 65 20 3D 20 4E 4F 3B 0D 0A 20 20 20    space = NO;..   
01F7E0:  20 20 20 7D 0D 0A 20 20 20 20 74 62 75 66 5B 6A       }..    tbuf[j
01F7F0:  2B 2B 5D 3D 62 75 66 5B 69 2B 2B 5D 3B 0D 0A 20    ++]=buf[i++];.. 
01F800:  0D 0A 20 20 69 66 28 2A 62 75 66 20 3D 3D 20 30    ..  if(*buf == 0
01F810:  29 20 72 65 74 75 72 6E 3B 0D 0A 20 20 69 66 28    ) return;..  if(
01F820:  21 74 74 79 6D 6F 64 65 29 20 70 72 65 66 69 78    !ttymode) prefix
01F830:  65 64 3D 4E 4F 3B 0D 0A 20 20 65 6C 73 65 20 70    ed=NO;..  else p
01F840:  72 65 66 69 78 65 64 3D 39 3B 20 20 2F 2A 20 6E    refixed=9;  /* n
01F850:  65 69 74 68 65 72 20 59 45 53 20 6E 6F 72 20 4E    either YES nor N
01F860:  4F 20 2A 2F 0D 0A 20 20 69 3D 6A 3D 30 3B 0D 0A    O */..  i=j=0;..
01F870:  20 20 77 68 69 6C 65 28 28 62 75 66 5B 69 5D 21      while((buf[i]!
01F880:  3D 4E 55 4C 4C 29 26 28 6A 3C 28 73 69 7A 65 2D    =NULL)&(j<(size-
01F890:  32 29 29 29 20 7B 0D 0A 20 20 20 20 63 3D 62 75    2))) {..    c=bu
01F8A0:  66 5B 69 2B 2B 5D 3B 0D 0A 20 20 20 20 69 66 28    f[i++];..    if(
01F8B0:  69 6E 64 65 78 28 75 6C 73 6B 69 70 73 2C 20 63    index(ulskips, c
01F8C0:  29 20 3C 20 30 29 20 7B 0D 0A 20 20 20 20 20 20    ) < 0) {..      
01F8D0:  69 66 28 70 72 65 66 69 78 65 64 3D 3D 4E 4F 29    if(prefixed==NO)
01F8E0:  20 7B 0D 0A 20 20 20 20 20 20 20 20 70 72 65 66     {..        pref
01F8F0:  69 78 65 64 3D 59 45 53 3B 0D 0A 20 20 20 20 20    ixed=YES;..     
01F900:  20 20 20 70 74 72 3D 75 6C 70 72 65 66 3B 0D 0A       ptr=ulpref;..
01F910:  20 20 20 20 20 20 20 20 77 68 69 6C 65 28 28 74            while((t
01F920:  62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29    buf[j++]=*ptr++)
01F930:  20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 20 20     != 1) ;..      
01F940:  20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 20      }..      else 
01F950:  69 66 28 74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20    if(ttymode) {.. 
01F960:  20 20 20 20 20 20 20 74 62 75 66 5B 6A 2B 2B 5D           tbuf[j++]
01F970:  3D 27 5F 27 3B 0D 0A 20 20 20 20 20 20 20 20 74    ='_';..        t
01F980:  62 75 66 5B 6A 2B 2B 5D 3D 27 5C 62 27 3B 0D 0A    buf[j++]='\b';..
01F990:  20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20            }..     
01F9A0:  20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A     }..    else {..
01F9B0:  20 20 20 20 20 20 69 66 28 70 72 65 66 69 78 65          if(prefixe
01F9C0:  64 3D 3D 59 45 53 29 20 7B 0D 0A 20 20 20 20 20    d==YES) {..     
01F9D0:  20 20 20 70 72 65 66 69 78 65 64 3D 4E 4F 3B 0D       prefixed=NO;.
01F9E0:  0A 20 20 20 20 20 20 20 20 70 74 72 3D 75 6C 73    .        ptr=uls
01F9F0:  75 66 66 3B 0D 0A 20 20 20 20 20 20 20 20 77 68    uff;..        wh
01FA00:  20 20 20 7D 0D 0A 20 20 69 66 28 21 73 70 61 63       }..  if(!spac
01FA10:  65 29 20 7B 0D 0A 20 20 20 20 70 74 72 3D 64 77    e) {..    ptr=dw
01FA20:  73 75 66 66 3B 0D 0A 20 20 20 20 77 68 69 6C 65    suff;..    while
01FA30:  28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72    ((tbuf[j++]=*ptr
01FA40:  2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20    ++) != 1) ;..   
01FA50:  20 7D 0D 0A 20 20 74 62 75 66 5B 6A 5D 3D 4E 55     }..  tbuf[j]=NU
01FA60:  4C 4C 3B 0D 0A 20 20 73 63 6F 70 79 28 74 62 75    LL;..  scopy(tbu
01FA70:  66 2C 20 30 2C 20 62 75 66 2C 20 30 29 3B 0D 0A    f, 0, buf, 0);..
01FA80:  20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73 75      }..../*..** su
01FA90:  70 65 72 73 75 62 20 2D 2D 20 70 72 6F 63 65 73    persub -- proces
01FAA0:  73 20 73 75 70 65 72 2D 20 26 20 73 75 62 2D 73    s super- & sub-s
01FAB0:  63 72 69 70 74 73 0D 0A 2A 2F 0D 0A 73 75 70 65    cripts..*/..supe
01FAC0:  72 73 75 62 28 62 75 66 2C 20 74 62 75 66 2C 20    rsub(buf, tbuf, 
01FAD0:  73 69 7A 65 29 20 63 68 61 72 20 62 75 66 5B 5D    size) char buf[]
01FAE0:  2C 20 74 62 75 66 5B 5D 3B 20 69 6E 74 20 73 69    , tbuf[]; int si
01FAF0:  7A 65 3B 20 7B 0D 0A 20 20 63 68 61 72 20 2A 70    ze; {..  char *p
01FB00:  72 65 66 2C 20 2A 73 75 66 66 2C 20 2A 70 74 72    ref, *suff, *ptr
01FB10:  3B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A    ;..  int i, j;..
01FB20:  20 20 69 66 28 21 2A 62 75 66 29 20 72 65 74 75      if(!*buf) retu
01FB30:  72 6E 3B 0D 0A 20 20 69 20 3D 20 6A 20 3D 20 73    rn;..  i = j = s
01FB40:  75 66 66 20 3D 20 30 3B 0D 0A 20 20 77 68 69 6C    uff = 0;..  whil
01FB50:  65 28 62 75 66 5B 69 5D 20 26 26 20 6A 20 3C 20    e(buf[i] && j < 
01FB60:  28 73 69 7A 65 2D 33 29 29 20 7B 0D 0A 20 20 20    (size-3)) {..   
01FB70:  20 69 66 28 69 73 73 70 61 63 65 28 62 75 66 5B     if(isspace(buf[
01FB80:  69 5D 29 20 26 26 20 73 75 66 66 29 20 7B 0D 0A    i]) && suff) {..
01FB90:  20 20 20 20 20 20 77 68 69 6C 65 28 28 74 62 75          while((tbu
01FBA0:  66 5B 6A 2B 2B 5D 20 3D 20 2A 73 75 66 66 2B 2B    f[j++] = *suff++
01FBB0:  29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 20    ) != 1) ;..     
01FBC0:  20 73 75 66 66 20 3D 20 30 3B 0D 0A 20 20 20 20     suff = 0;..    
01FBD0:  20 20 7D 0D 0A 20 20 20 20 69 66 28 62 75 66 5B      }..    if(buf[
01FBE0:  69 5D 20 3D 3D 20 53 55 42 43 48 41 52 20 26 26    i] == SUBCHAR &&
01FBF0:  20 62 75 66 5B 69 2B 31 5D 20 3D 3D 20 53 55 42     buf[i+1] == SUB
01FC00:  69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A    ile((tbuf[j++]=*
01FC10:  70 74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A    ptr++) != 1) ;..
01FC20:  20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20            }..     
01FC30:  20 69 66 28 63 75 61 63 74 3E 30 20 26 26 20 66     if(cuact>0 && f
01FC40:  69 6C 6C 3D 3D 4E 4F 20 26 26 20 63 3D 3D 27 20    ill==NO && c==' 
01FC50:  27 20 26 26 20 74 74 79 6D 6F 64 65 29 20 63 3D    ' && ttymode) c=
01FC60:  27 5F 27 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    '_';..      }.. 
01FC70:  20 20 20 74 62 75 66 5B 6A 2B 2B 5D 3D 63 3B 0D       tbuf[j++]=c;.
01FC80:  0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 70 72 65    .    }..  if(pre
01FC90:  66 69 78 65 64 3D 3D 59 45 53 29 20 7B 0D 0A 20    fixed==YES) {.. 
01FCA0:  20 20 20 70 74 72 3D 75 6C 73 75 66 66 3B 0D 0A       ptr=ulsuff;..
01FCB0:  20 20 20 20 77 68 69 6C 65 28 28 74 62 75 66 5B        while((tbuf[
01FCC0:  6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29 20 21 3D 20    j++]=*ptr++) != 
01FCD0:  31 29 20 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 74    1) ;..    }..  t
01FCE0:  62 75 66 5B 6A 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20    buf[j]=NULL;..  
01FCF0:  73 63 6F 70 79 28 74 62 75 66 2C 20 30 2C 20 62    scopy(tbuf, 0, b
01FD00:  75 66 2C 20 30 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A    uf, 0);..  }....
01FD10:  2F 2A 0D 0A 2A 2A 20 62 6F 6C 64 20 2D 2D 20 62    /*..** bold -- b
01FD20:  6F 6C 64 66 61 63 65 20 61 20 6C 69 6E 65 0D 0A    oldface a line..
01FD30:  2A 2F 0D 0A 62 6F 6C 64 28 62 75 66 2C 20 74 62    */..bold(buf, tb
01FD40:  75 66 2C 20 73 69 7A 65 29 20 63 68 61 72 20 62    uf, size) char b
01FD50:  75 66 5B 5D 2C 20 74 62 75 66 5B 5D 3B 20 69 6E    uf[], tbuf[]; in
01FD60:  74 20 73 69 7A 65 3B 20 7B 0D 0A 20 20 63 68 61    t size; {..  cha
01FD70:  72 20 2A 70 74 72 3B 0D 0A 20 20 69 6E 74 20 63    r *ptr;..  int c
01FD80:  2C 20 69 2C 20 6A 3B 0D 0A 20 20 69 66 28 2A 62    , i, j;..  if(*b
01FD90:  75 66 20 3D 3D 20 30 29 20 72 65 74 75 72 6E 3B    uf == 0) return;
01FDA0:  0D 0A 20 20 69 3D 6A 3D 30 3B 0D 0A 20 20 69 66    ..  i=j=0;..  if
01FDB0:  28 21 74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20 20    (!ttymode) {..  
01FDC0:  20 20 70 74 72 3D 62 66 70 72 65 66 3B 0D 0A 20      ptr=bfpref;.. 
01FDD0:  20 20 20 77 68 69 6C 65 28 28 74 62 75 66 5B 6A       while((tbuf[j
01FDE0:  2B 2B 5D 3D 2A 70 74 72 2B 2B 29 20 21 3D 20 31    ++]=*ptr++) != 1
01FDF0:  29 20 3B 0D 0A 20 20 20 20 70 74 72 3D 64 73 70    ) ;..    ptr=dsp
01FE00:  43 48 41 52 29 20 7B 0D 0A 20 20 20 20 20 20 69    CHAR) {..      i
01FE10:  66 28 21 74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20    f(!ttymode) {.. 
01FE20:  20 20 20 20 20 20 20 69 66 28 73 75 66 66 29 20           if(suff) 
01FE30:  7B 70 74 72 20 3D 20 73 75 66 66 3B 20 20 20 73    {ptr = suff;   s
01FE40:  75 66 66 20 3D 20 30 3B 7D 0D 0A 20 20 20 20 20    uff = 0;}..     
01FE50:  20 20 20 65 6C 73 65 20 20 20 20 20 7B 70 74 72       else     {ptr
01FE60:  20 3D 20 73 62 70 72 65 66 3B 20 73 75 66 66 20     = sbpref; suff 
01FE70:  3D 20 73 62 73 75 66 66 3B 7D 0D 0A 20 20 20 20    = sbsuff;}..    
01FE80:  20 20 20 20 77 68 69 6C 65 28 28 74 62 75 66 5B        while((tbuf[
01FE90:  6A 2B 2B 5D 20 3D 20 2A 70 74 72 2B 2B 29 20 21    j++] = *ptr++) !
01FEA0:  3D 20 31 29 20 3B 0D 0A 20 20 20 20 20 20 20 20    = 1) ;..        
01FEB0:  7D 0D 0A 20 20 20 20 20 20 69 20 2B 3D 20 32 3B    }..      i += 2;
01FEC0:  0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65    ..      }..    e
01FED0:  6C 73 65 20 69 66 28 62 75 66 5B 69 5D 20 3D 3D    lse if(buf[i] ==
01FEE0:  20 53 55 50 43 48 41 52 20 26 26 20 62 75 66 5B     SUPCHAR && buf[
01FEF0:  69 2B 31 5D 20 3D 3D 20 53 55 50 43 48 41 52 29    i+1] == SUPCHAR)
01FF00:  20 7B 0D 0A 20 20 20 20 20 20 69 66 28 21 74 74     {..      if(!tt
01FF10:  79 6D 6F 64 65 29 20 7B 0D 0A 20 20 20 20 20 20    ymode) {..      
01FF20:  20 20 69 66 28 73 75 66 66 29 20 7B 70 74 72 20      if(suff) {ptr 
01FF30:  3D 20 73 75 66 66 3B 20 20 20 73 75 66 66 20 3D    = suff;   suff =
01FF40:  20 30 3B 7D 0D 0A 20 20 20 20 20 20 20 20 65 6C     0;}..        el
01FF50:  73 65 20 20 20 20 20 7B 70 74 72 20 3D 20 73 70    se     {ptr = sp
01FF60:  70 72 65 66 3B 20 73 75 66 66 20 3D 20 73 70 73    pref; suff = sps
01FF70:  75 66 66 3B 7D 0D 0A 20 20 20 20 20 20 20 20 77    uff;}..        w
01FF80:  68 69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 20    hile((tbuf[j++] 
01FF90:  3D 20 2A 70 74 72 2B 2B 29 20 21 3D 20 31 29 20    = *ptr++) != 1) 
01FFA0:  3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20    ;..        }..  
01FFB0:  20 20 20 20 69 20 2B 3D 20 32 3B 0D 0A 20 20 20        i += 2;..   
01FFC0:  20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 74       }..    else t
01FFD0:  62 75 66 5B 6A 2B 2B 5D 20 3D 20 62 75 66 5B 69    buf[j++] = buf[i
01FFE0:  2B 2B 5D 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69    ++];..    }..  i
01FFF0:  66 28 73 75 66 66 29 20 77 68 69 6C 65 28 28 74    f(suff) while((t
020000:  72 65 66 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28    ref;..    while(
020010:  28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B    (tbuf[j++]=*ptr+
020020:  2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20    +) != 1) ;..    
020030:  7D 0D 0A 20 20 77 68 69 6C 65 28 28 62 75 66 5B    }..  while((buf[
020040:  69 5D 21 3D 4E 55 4C 4C 29 26 28 6A 3C 28 73 69    i]!=NULL)&(j<(si
020050:  7A 65 2D 32 29 29 29 20 7B 0D 0A 20 20 20 20 63    ze-2))) {..    c
020060:  3D 74 62 75 66 5B 6A 2B 2B 5D 3D 62 75 66 5B 69    =tbuf[j++]=buf[i
020070:  2B 2B 5D 26 32 35 35 3B 0D 0A 20 20 20 20 69 66    ++]&255;..    if
020080:  28 74 74 79 6D 6F 64 65 20 26 26 20 28 63 20 3E    (ttymode && (c >
020090:  20 27 20 27 29 20 26 26 20 28 63 20 3C 20 31 32     ' ') && (c < 12
0200A0:  37 29 29 20 7B 0D 0A 20 20 20 20 20 20 69 6E 74    7)) {..      int
0200B0:  20 69 3B 0D 0A 20 20 20 20 20 20 69 20 3D 20 62     i;..      i = b
0200C0:  66 73 74 72 69 6B 65 73 3B 0D 0A 20 20 20 20 20    fstrikes;..     
0200D0:  20 77 68 69 6C 65 20 28 2D 2D 69 29 20 7B 0D 0A     while (--i) {..
0200E0:  20 20 20 20 20 20 20 20 74 62 75 66 5B 6A 2B 2B            tbuf[j++
0200F0:  5D 3D 27 5C 62 27 3B 0D 0A 20 20 20 20 20 20 20    ]='\b';..       
020100:  20 74 62 75 66 5B 6A 2B 2B 5D 3D 63 3B 0D 0A 20     tbuf[j++]=c;.. 
020110:  20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20           }..      
020120:  7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 21    }..    }..  if(!
020130:  74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20 20 20 20    ttymode) {..    
020140:  70 74 72 3D 62 66 73 75 66 66 3B 0D 0A 20 20 20    ptr=bfsuff;..   
020150:  20 77 68 69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B     while((tbuf[j++
020160:  5D 3D 2A 70 74 72 2B 2B 29 20 21 3D 20 31 29 20    ]=*ptr++) != 1) 
020170:  3B 0D 0A 20 20 20 20 70 74 72 3D 64 73 73 75 66    ;..    ptr=dssuf
020180:  66 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28 28 74    f;..    while((t
020190:  62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29    buf[j++]=*ptr++)
0201A0:  20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 7D 0D     != 1) ;..    }.
0201B0:  0A 20 20 74 62 75 66 5B 6A 5D 3D 4E 55 4C 4C 3B    .  tbuf[j]=NULL;
0201C0:  0D 0A 20 20 73 63 6F 70 79 28 74 62 75 66 2C 20    ..  scopy(tbuf, 
0201D0:  30 2C 20 62 75 66 2C 20 30 29 3B 0D 0A 20 20 7D    0, buf, 0);..  }
0201E0:  0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 69 74 61 6C 69    ..../*..** itali
0201F0:  63 20 2D 2D 20 69 74 61 6C 69 63 69 7A 65 20 61    c -- italicize a
020200:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
020210:  1B 00 01 00 02 09 52 E5 1B 00 41 02 00 00 00 02    ......R...A.....
020220:  1B 00 46 02 00 00 00 02 1B 00 42 02 00 00 00 02    ..F.......B.....
020230:  1B 00 47 02 00 00 00 02 1B 00 43 02 00 00 00 02    ..G.......C.....
020240:  1B 00 48 02 00 00 00 02 1B 00 44 02 00 00 00 02    ..H.......D.....
020250:  1B 00 49 02 00 00 00 02 1B 00 45 02 00 00 00 02    ..I.......E.....
020260:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020270:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020280:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020290:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0202F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020300:  62 75 66 5B 6A 2B 2B 5D 20 3D 20 2A 73 75 66 66    buf[j++] = *suff
020310:  2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 74    ++) != 1) ;..  t
020320:  62 75 66 5B 6A 5D 20 3D 20 4E 55 4C 4C 3B 0D 0A    buf[j] = NULL;..
020330:  20 20 73 63 6F 70 79 28 74 62 75 66 2C 20 30 2C      scopy(tbuf, 0,
020340:  20 62 75 66 2C 20 30 29 3B 0D 0A 20 20 7D 0D 0A     buf, 0);..  }..
020350:  0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 61 72 67 73 20    ../*..** doargs 
020360:  2D 2D 20 70 72 6F 63 65 73 73 20 63 6F 6D 6D 61    -- process comma
020370:  6E 64 20 6C 69 6E 65 20 61 72 67 75 6D 65 6E 74    nd line argument
020380:  73 0D 0A 2A 2F 0D 0A 64 6F 61 72 67 73 28 61 72    s..*/..doargs(ar
020390:  67 63 2C 20 61 72 67 76 29 20 69 6E 74 20 61 72    gc, argv) int ar
0203A0:  67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20    gc, *argv; {..  
0203B0:  63 68 61 72 20 61 72 67 5B 4D 41 58 46 4E 5D 3B    char arg[MAXFN];
0203C0:  0D 0A 20 20 69 6E 74 20 69 2C 20 65 72 72 3B 0D    ..  int i, err;.
0203D0:  0A 20 20 73 68 6F 77 3D 65 72 72 3D 74 74 79 6D    .  show=err=ttym
0203E0:  6F 64 65 3D 69 74 73 75 62 3D 75 6C 73 75 62 3D    ode=itsub=ulsub=
0203F0:  4E 4F 3B 0D 0A 20 20 70 61 75 73 65 3D 72 65 61    NO;..  pause=rea
020400:  64 79 3D 59 45 53 3B 0D 0A 20 20 62 66 73 74 72    dy=YES;..  bfstr
020410:  69 6B 65 73 3D 33 3B 0D 0A 20 20 70 6F 73 70 65    ikes=3;..  pospe
020420:  63 3D 6D 72 67 66 64 3D 30 3B 0D 0A 20 20 6D 72    c=mrgfd=0;..  mr
020430:  67 62 75 66 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20    gbuf[0]=NULL;.. 
020440:  20 62 65 67 69 6E 3D 62 63 6F 70 79 3D 31 3B 0D     begin=bcopy=1;.
020450:  0A 20 20 65 6E 64 3D 65 63 6F 70 79 3D 48 55 47    .  end=ecopy=HUG
020460:  45 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68    E;..  i=0;..  wh
020470:  69 6C 65 28 67 65 74 61 72 67 28 2B 2B 69 2C 20    ile(getarg(++i, 
020480:  61 72 67 2C 20 4D 41 58 46 4E 2C 20 61 72 67 63    arg, MAXFN, argc
020490:  2C 20 61 72 67 76 29 21 3D 45 4F 46 29 20 7B 0D    , argv)!=EOF) {.
0204A0:  0A 20 20 20 20 69 66 28 61 72 67 5B 30 5D 3D 3D    .    if(arg[0]==
0204B0:  27 2D 27 29 20 7B 0D 0A 20 20 20 20 20 20 69 66    '-') {..      if
0204C0:  28 73 61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 6E    (same(arg[1], 'n
0204D0:  27 29 20 26 20 73 61 6D 65 28 61 72 67 5B 32 5D    ') & same(arg[2]
0204E0:  2C 20 27 70 27 29 29 20 7B 0D 0A 20 20 20 20 20    , 'p')) {..     
0204F0:  20 20 20 70 61 75 73 65 3D 4E 4F 3B 0D 0A 20 20       pause=NO;..  
020500:  0A 20 20 20 20 20 20 69 66 28 28 6C 3D 75 74 6F    .      if((l=uto
020510:  69 28 74 74 6C 62 75 66 2B 6A 2C 20 26 6B 29 29    i(ttlbuf+j, &k))
020520:  20 3C 20 31 29 20 63 6F 6E 74 69 6E 75 65 3B 0D     < 1) continue;.
020530:  0A 20 20 20 20 20 20 69 66 28 74 74 6C 62 75 66    .      if(ttlbuf
020540:  5B 6A 2B 6C 5D 21 3D 6D 72 67 29 20 63 6F 6E 74    [j+l]!=mrg) cont
020550:  69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 2D 2D 69    inue;..      --i
020560:  3B 0D 0A 20 20 20 20 20 20 6A 3D 6A 2B 6C 2B 31    ;..      j=j+l+1
020570:  3B 0D 0A 20 20 20 20 20 20 6D 3D 30 3B 0D 0A 20    ;..      m=0;.. 
020580:  20 20 20 20 20 77 68 69 6C 65 28 2D 2D 6B 29 20         while(--k) 
020590:  7B 0D 0A 20 20 20 20 20 20 20 20 77 68 69 6C 65    {..        while
0205A0:  28 6D 72 67 62 75 66 5B 6D 5D 29 20 7B 0D 0A 20    (mrgbuf[m]) {.. 
0205B0:  20 20 20 20 20 20 20 20 20 69 66 28 6D 72 67 62             if(mrgb
0205C0:  75 66 5B 6D 2B 2B 5D 3D 3D 6D 72 67 29 20 62 72    uf[m++]==mrg) br
0205D0:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 20 20    eak;..          
0205E0:  7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20    }..        }..  
0205F0:  20 20 20 20 77 68 69 6C 65 28 28 6D 72 67 62 75        while((mrgbu
020600:  66 5B 6D 5D 21 3D 4E 55 4C 4C 29 26 28 6D 72 67    f[m]!=NULL)&(mrg
020610:  62 75 66 5B 6D 5D 21 3D 6D 72 67 29 29 20 7B 0D    buf[m]!=mrg)) {.
020620:  0A 20 20 20 20 20 20 20 20 69 6E 62 75 66 5B 69    .        inbuf[i
020630:  2B 2B 5D 3D 6D 72 67 62 75 66 5B 6D 2B 2B 5D 3B    ++]=mrgbuf[m++];
020640:  0D 0A 20 20 20 20 20 20 20 20 69 66 28 69 20 3E    ..        if(i >
020650:  3D 20 28 49 4E 53 49 5A 45 2D 31 29 29 20 62 72    = (INSIZE-1)) br
020660:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D    eak;..        }.
020670:  0A 20 20 20 20 20 20 6D 65 72 67 65 64 3D 59 45    .      merged=YE
020680:  53 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    S;..      }..   
020690:  20 7D 0D 0A 20 20 69 66 28 6D 65 72 67 65 64 3D     }..  if(merged=
0206A0:  3D 4E 4F 29 20 72 65 74 75 72 6E 20 59 45 53 3B    =NO) return YES;
0206B0:  0D 0A 20 20 69 20 3D 20 2D 31 3B 0D 0A 20 20 77    ..  i = -1;..  w
0206C0:  68 69 6C 65 28 69 6E 62 75 66 5B 2B 2B 69 5D 29    hile(inbuf[++i])
0206D0:  20 7B 0D 0A 20 20 20 20 69 66 28 28 69 6E 62 75     {..    if((inbu
0206E0:  66 5B 69 5D 21 3D 27 20 27 29 26 28 69 6E 62 75    f[i]!=' ')&(inbu
0206F0:  66 5B 69 5D 21 3D 27 5C 74 27 29 29 20 72 65 74    f[i]!='\t')) ret
020700:  20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D          continue;.
020710:  0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    .        }..    
020720:  20 20 69 66 28 73 61 6D 65 28 61 72 67 5B 31 5D      if(same(arg[1]
020730:  2C 20 27 6E 27 29 20 26 20 73 61 6D 65 28 61 72    , 'n') & same(ar
020740:  67 5B 32 5D 2C 20 27 72 27 29 29 20 7B 0D 0A 20    g[2], 'r')) {.. 
020750:  20 20 20 20 20 20 20 72 65 61 64 79 3D 4E 4F 3B           ready=NO;
020760:  0D 0A 20 20 20 20 20 20 20 20 63 6F 6E 74 69 6E    ..        contin
020770:  75 65 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A    ue;..        }..
020780:  20 20 20 20 20 20 69 66 28 73 61 6D 65 28 61 72          if(same(ar
020790:  67 5B 31 5D 2C 20 27 73 27 29 20 26 20 61 72 67    g[1], 's') & arg
0207A0:  5B 32 5D 20 3D 3D 20 4E 55 4C 4C 29 20 7B 0D 0A    [2] == NULL) {..
0207B0:  20 20 20 20 20 20 20 20 73 68 6F 77 20 3D 20 59            show = Y
0207C0:  45 53 3B 0D 0A 20 20 20 20 20 20 20 20 63 6F 6E    ES;..        con
0207D0:  74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20    tinue;..        
0207E0:  7D 0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65    }..      if(same
0207F0:  28 61 72 67 5B 31 5D 2C 20 27 74 27 29 20 26 20    (arg[1], 't') & 
020800:  61 72 67 5B 32 5D 3D 3D 4E 55 4C 4C 29 20 7B 20    arg[2]==NULL) { 
020810:  2F 2A 2A 20 74 74 79 20 6D 6F 64 65 20 2A 2A 2F    /** tty mode **/
020820:  0D 0A 20 20 20 20 20 20 20 20 74 74 79 6D 6F 64    ..        ttymod
020830:  65 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 20 20    e=YES;..        
020840:  63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20    continue;..     
020850:  20 20 20 7D 0D 0A 20 20 20 20 20 20 69 66 28 73       }..      if(s
020860:  61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 69 27 29    ame(arg[1], 'i')
020870:  20 26 20 61 72 67 5B 32 5D 20 3D 3D 20 4E 55 4C     & arg[2] == NUL
020880:  4C 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 2F 2A    L) {..        /*
020890:  20 69 74 61 6C 69 63 73 20 72 65 70 6C 61 63 65     italics replace
0208A0:  20 75 6E 64 65 72 6C 69 6E 65 73 20 2A 2F 0D 0A     underlines */..
0208B0:  20 20 20 20 20 20 20 20 69 74 73 75 62 3D 59 45            itsub=YE
0208C0:  53 3B 0D 0A 20 20 20 20 20 20 20 20 63 6F 6E 74    S;..        cont
0208D0:  69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 7D    inue;..        }
0208E0:  0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65 28    ..      if(same(
0208F0:  61 72 67 5B 31 5D 2C 20 27 75 27 29 20 26 20 61    arg[1], 'u') & a
020900:  75 72 6E 20 59 45 53 3B 0D 0A 20 20 20 20 7D 0D    urn YES;..    }.
020910:  0A 20 20 72 65 74 75 72 6E 20 4E 4F 3B 0D 0A 20    .  return NO;.. 
020920:  20 7D 0D 0A 1A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A     }..............
020930:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020940:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020950:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020960:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020970:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020980:  20 20 20 20 20 77 68 69 6C 65 28 2D 2D 6B 29 20         while(--k) 
020990:  7B 0D 0A 20 20 20 20 20 20 20 20 77 68 69 6C 65    {..        while
0209A0:  28 6D 72 67 62 75 66 5B 6D 5D 29 20 7B 0D 0A 20    (mrgbuf[m]) {.. 
0209B0:  20 20 20 20 20 20 20 20 20 69 66 28 6D 72 67 62             if(mrgb
0209C0:  75 66 5B 6D 2B 2B 5D 3D 3D 6D 72 67 29 20 62 72    uf[m++]==mrg) br
0209D0:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 20 20    eak;..          
0209E0:  7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20    }..        }..  
0209F0:  20 20 20 20 77 68 69 6C 65 28 28 6D 72 67 62 75        while((mrgbu
020A00:  66 5B 6D 5D 21 3D 4E 55 4C 4C 29 26 28 6D 72 67    f[m]!=NULL)&(mrg
020A10:  62 75 66 5B 6D 5D 21 3D 6D 72 67 29 29 20 7B 0D    buf[m]!=mrg)) {.
020A20:  0A 20 20 20 20 20 20 20 20 69 6E 62 75 66 5B 69    .        inbuf[i
020A30:  2B 2B 5D 3D 6D 72 67 62 75 66 5B 6D 2B 2B 5D 3B    ++]=mrgbuf[m++];
020A40:  0D 0A 20 20 20 20 20 20 20 20 69 66 28 69 20 3E    ..        if(i >
020A50:  3D 20 28 49 4E 53 49 5A 45 2D 31 29 29 20 62 72    = (INSIZE-1)) br
020A60:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D    eak;..        }.
020A70:  0A 20 20 20 20 20 20 6D 65 72 67 65 64 3D 59 45    .      merged=YE
020A80:  53 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    S;..      }..   
020A90:  20 7D 0D 0A 20 20 69 66 28 6D 65 72 67 65 64 3D     }..  if(merged=
020AA0:  3D 4E 4F 29 20 72 65 74 75 72 6E 20 59 45 53 3B    =NO) return YES;
020AB0:  0D 0A 20 20 69 20 3D 20 2D 31 3B 0D 0A 20 20 77    ..  i = -1;..  w
020AC0:  68 69 6C 65 28 69 6E 62 75 66 5B 2B 2B 69 5D 29    hile(inbuf[++i])
020AD0:  20 7B 0D 0A 20 20 20 20 69 66 28 28 69 6E 62 75     {..    if((inbu
020AE0:  66 5B 69 5D 21 3D 27 20 27 29 26 28 69 6E 62 75    f[i]!=' ')&(inbu
020AF0:  66 5B 69 5D 21 3D 27 5C 74 27 29 29 20 72 65 74    f[i]!='\t')) ret
020B00:  72 67 5B 32 5D 20 3D 3D 20 4E 55 4C 4C 29 20 7B    rg[2] == NULL) {
020B10:  0D 0A 20 20 20 20 20 20 20 20 2F 2A 20 75 6E 64    ..        /* und
020B20:  65 72 6C 69 6E 65 73 20 72 65 70 6C 61 63 65 20    erlines replace 
020B30:  69 74 61 6C 69 63 73 20 2A 2F 0D 0A 20 20 20 20    italics */..    
020B40:  20 20 20 20 75 6C 73 75 62 3D 59 45 53 3B 0D 0A        ulsub=YES;..
020B50:  20 20 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65            continue
020B60:  3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20    ;..        }..  
020B70:  20 20 20 20 69 66 28 73 61 6D 65 28 61 72 67 5B        if(same(arg[
020B80:  31 5D 2C 20 27 62 27 29 29 20 7B 0D 0A 20 20 20    1], 'b')) {..   
020B90:  20 20 20 20 20 69 66 28 73 61 6D 65 28 61 72 67         if(same(arg
020BA0:  5B 32 5D 2C 20 27 70 27 29 29 20 7B 20 20 2F 2A    [2], 'p')) {  /*
020BB0:  2A 20 62 65 67 69 6E 20 70 61 67 65 20 23 20 2A    * begin page # *
020BC0:  2A 2F 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66    */..          if
020BD0:  28 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 62 65    (utoi(arg+3, &be
020BE0:  67 69 6E 29 20 3E 20 30 29 20 63 6F 6E 74 69 6E    gin) > 0) contin
020BF0:  75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 7D    ue;..          }
020C00:  0D 0A 20 20 20 20 20 20 20 20 65 6C 73 65 20 69    ..        else i
020C10:  66 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27    f(same(arg[2], '
020C20:  63 27 29 29 20 7B 20 20 2F 2A 2A 20 63 6F 70 79    c')) {  /** copy
020C30:  20 23 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20     # **/..        
020C40:  20 20 69 66 28 75 74 6F 69 28 61 72 67 2B 33 2C      if(utoi(arg+3,
020C50:  20 26 62 63 6F 70 79 29 20 3E 20 30 29 20 63 6F     &bcopy) > 0) co
020C60:  6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20    ntinue;..       
020C70:  20 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 65 6C       }..        el
020C80:  73 65 20 69 66 28 73 61 6D 65 28 61 72 67 5B 32    se if(same(arg[2
020C90:  5D 2C 20 27 73 27 29 29 20 7B 20 20 2F 2A 2A 20    ], 's')) {  /** 
020CA0:  62 6F 6C 64 66 61 63 65 20 73 74 72 69 6B 65 73    boldface strikes
020CB0:  20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 20 20     **/..          
020CC0:  69 66 28 75 74 6F 69 28 61 72 67 2B 33 2C 20 26    if(utoi(arg+3, &
020CD0:  62 66 73 74 72 69 6B 65 73 29 20 3E 20 30 29 20    bfstrikes) > 0) 
020CE0:  63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20    continue;..     
020CF0:  20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 20 20         }..        
020D00:  0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 77 72 64 2E    ../*..** getwrd.
020D10:  63 20 2D 2D 20 67 65 74 20 6E 6F 6E 2D 62 6C 61    c -- get non-bla
020D20:  6E 6B 20 77 6F 72 64 20 66 72 6F 6D 20 69 6E 5B    nk word from in[
020D30:  69 5D 20 69 6E 74 6F 20 6F 75 74 2C 20 69 6E 63    i] into out, inc
020D40:  72 20 69 0D 0A 2A 2F 0D 0A 67 65 74 77 72 64 28    r i..*/..getwrd(
020D50:  69 6E 2C 20 69 2C 20 6F 75 74 29 20 63 68 61 72    in, i, out) char
020D60:  20 69 6E 5B 5D 2C 20 6F 75 74 5B 5D 3B 20 69 6E     in[], out[]; in
020D70:  74 20 2A 69 3B 20 7B 0D 0A 20 20 63 68 61 72 20    t *i; {..  char 
020D80:  63 3B 20 20 69 6E 74 20 6A 3B 0D 0A 20 20 77 68    c;  int j;..  wh
020D90:  69 6C 65 28 69 73 73 70 61 63 65 28 69 6E 5B 2A    ile(isspace(in[*
020DA0:  69 5D 29 29 20 2B 2B 2A 69 3B 0D 0A 20 20 6A 3D    i])) ++*i;..  j=
020DB0:  30 3B 0D 0A 20 20 77 68 69 6C 65 28 63 3D 69 6E    0;..  while(c=in
020DC0:  5B 2A 69 5D 29 20 7B 0D 0A 20 20 20 20 69 66 28    [*i]) {..    if(
020DD0:  69 73 73 70 61 63 65 28 63 29 29 20 62 72 65 61    isspace(c)) brea
020DE0:  6B 3B 0D 0A 20 20 20 20 6F 75 74 5B 6A 2B 2B 5D    k;..    out[j++]
020DF0:  3D 63 3B 0D 0A 20 20 20 20 2B 2B 2A 69 3B 0D 0A    =c;..    ++*i;..
020E00:  20 20 20 20 7D 0D 0A 20 20 6F 75 74 5B 6A 5D 3D        }..  out[j]=
020E10:  4E 55 4C 4C 3B 0D 0A 20 20 72 65 74 75 72 6E 20    NULL;..  return 
020E20:  6A 3B 0D 0A 20 20 7D 0D 0A 1A 1A 1A 1A 1A 1A 1A    j;..  }.........
020E30:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020E40:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020E50:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020E60:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020E70:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
020E80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020E90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020EA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020EB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020EC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020ED0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020EE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020EF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
020F00:  7D 0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65    }..      if(same
020F10:  28 61 72 67 5B 31 5D 2C 20 27 65 27 29 29 20 7B    (arg[1], 'e')) {
020F20:  20 20 20 2F 2A 2A 20 65 6E 64 20 20 2A 2A 2F 0D       /** end  **/.
020F30:  0A 20 20 20 20 20 20 20 20 69 66 28 73 61 6D 65    .        if(same
020F40:  28 61 72 67 5B 32 5D 2C 20 27 70 27 29 29 20 7B    (arg[2], 'p')) {
020F50:  20 20 2F 2A 2A 20 70 61 67 65 20 23 20 2A 2A 2F      /** page # **/
020F60:  0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 28 75    ..          if(u
020F70:  74 6F 69 28 61 72 67 2B 33 2C 20 26 65 6E 64 29    toi(arg+3, &end)
020F80:  20 3E 20 30 29 20 63 6F 6E 74 69 6E 75 65 3B 0D     > 0) continue;.
020F90:  0A 20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20    .          }..  
020FA0:  20 20 20 20 20 20 65 6C 73 65 20 69 66 28 73 61          else if(sa
020FB0:  6D 65 28 61 72 67 5B 32 5D 2C 20 27 63 27 29 29    me(arg[2], 'c'))
020FC0:  20 7B 20 20 2F 2A 2A 20 63 6F 70 79 20 23 20 2A     {  /** copy # *
020FD0:  2A 2F 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66    */..          if
020FE0:  28 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 65 63    (utoi(arg+3, &ec
020FF0:  6F 70 79 29 20 3E 20 30 29 20 63 6F 6E 74 69 6E    opy) > 0) contin
021000:  75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 7D    ue;..          }
021010:  0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20    ..        }..   
021020:  20 20 20 69 66 28 73 61 6D 65 28 61 72 67 5B 31       if(same(arg[1
021030:  5D 2C 20 27 70 27 29 20 26 20 73 61 6D 65 28 61    ], 'p') & same(a
021040:  72 67 5B 32 5D 2C 20 27 6F 27 29 29 20 7B 20 20    rg[2], 'o')) {  
021050:  2F 2A 2A 20 70 61 67 65 20 6F 66 66 73 65 74 20    /** page offset 
021060:  2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 69 66 28    **/..        if(
021070:  75 74 6F 69 28 61 72 67 2B 33 2C 20 26 70 6F 73    utoi(arg+3, &pos
021080:  70 65 63 29 20 3E 20 30 29 20 63 6F 6E 74 69 6E    pec) > 0) contin
021090:  75 65 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A    ue;..        }..
0210A0:  20 20 20 20 20 20 65 72 72 3D 59 45 53 3B 0D 0A          err=YES;..
0210B0:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73          }..    els
0210C0:  65 20 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28    e  {..      if((
0210D0:  6D 72 67 66 64 3D 66 6F 70 65 6E 28 61 72 67 2C    mrgfd=fopen(arg,
0210E0:  20 22 72 22 29 29 3D 3D 4E 55 4C 4C 29 20 63 61     "r"))==NULL) ca
0210F0:  6E 74 28 61 72 67 29 3B 0D 0A 20 20 20 20 20 20    nt(arg);..      
021100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0211A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0211B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0211C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0211D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0211E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0211F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0212A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0212B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0212C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0212D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0212E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0212F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021300:  63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20    continue;..     
021310:  20 7D 0D 0A 20 20 20 20 65 72 72 3D 59 45 53 3B     }..    err=YES;
021320:  0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 65 72    ..    }..  if(er
021330:  72 3D 3D 59 45 53 29 20 7B 0D 0A 20 20 20 20 66    r==YES) {..    f
021340:  70 75 74 73 28 22 75 73 61 67 65 3A 20 46 4D 54    puts("usage: FMT
021350:  20 5B 6D 65 72 67 65 66 69 6C 65 5D 20 5B 2D 42     [mergefile] [-B
021360:  43 23 5D 20 5B 2D 45 43 23 5D 5C 6E 22 2C 73 74    C#] [-EC#]\n",st
021370:  64 65 72 72 29 3B 0D 0A 20 20 20 20 66 70 75 74    derr);..    fput
021380:  73 28 22 20 20 20 20 5B 2D 42 50 23 5D 20 5B 2D    s("    [-BP#] [-
021390:  45 50 23 5D 20 5B 2D 50 4F 23 5D 20 5B 2D 4E 50    EP#] [-PO#] [-NP
0213A0:  5D 20 5B 2D 4E 52 5D 5C 6E 22 2C 73 74 64 65 72    ] [-NR]\n",stder
0213B0:  72 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 22    r);..    fputs("
0213C0:  20 20 20 20 5B 2D 54 5D 20 5B 2D 49 5D 20 5B 2D        [-T] [-I] [-
0213D0:  55 5D 20 5B 2D 53 5D 20 5B 2D 42 53 23 5D 5C 6E    U] [-S] [-BS#]\n
0213E0:  22 2C 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20    ",stderr);..    
0213F0:  61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 7D    abort(7);..    }
021400:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
021410:  6D 65 72 67 65 20 2D 2D 20 6D 65 72 67 65 20 66    merge -- merge f
021420:  69 65 6C 64 73 20 66 72 6F 6D 20 6D 72 67 62 75    ields from mrgbu
021430:  66 20 69 6E 74 6F 20 69 6E 62 75 66 0D 0A 2A 2F    f into inbuf..*/
021440:  0D 0A 6D 65 72 67 65 28 29 20 7B 0D 0A 20 20 69    ..merge() {..  i
021450:  6E 74 20 69 2C 20 6A 2C 20 6B 2C 20 6C 2C 20 6D    nt i, j, k, l, m
021460:  2C 20 6D 65 72 67 65 64 3B 0D 0A 20 20 69 66 28    , merged;..  if(
021470:  6D 72 67 62 75 66 5B 30 5D 3D 3D 4E 55 4C 4C 29    mrgbuf[0]==NULL)
021480:  20 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20     return YES;..  
021490:  73 63 6F 70 79 28 69 6E 62 75 66 2C 20 30 2C 20    scopy(inbuf, 0, 
0214A0:  74 74 6C 62 75 66 2C 20 30 29 3B 0D 0A 20 20 6D    ttlbuf, 0);..  m
0214B0:  65 72 67 65 64 3D 4E 4F 3B 0D 0A 20 20 69 3D 6A    erged=NO;..  i=j
0214C0:  3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 69 6E 62    =0;..  while(inb
0214D0:  75 66 5B 69 5D 3D 74 74 6C 62 75 66 5B 6A 2B 2B    uf[i]=ttlbuf[j++
0214E0:  5D 29 20 7B 0D 0A 20 20 20 20 69 66 28 69 6E 62    ]) {..    if(inb
0214F0:  75 66 5B 69 2B 2B 5D 3D 3D 6D 72 67 29 20 7B 0D    uf[i++]==mrg) {.
021500:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
021510:  1C 00 01 00 02 09 52 E5 1C 00 41 02 00 00 00 02    ......R...A.....
021520:  1C 00 46 02 00 00 00 02 1C 00 42 02 00 00 00 02    ..F.......B.....
021530:  1C 00 47 02 00 00 00 02 1C 00 43 02 00 00 00 02    ..G.......C.....
021540:  1C 00 48 02 00 00 00 02 1C 00 44 02 00 00 00 02    ..H.......D.....
021550:  1C 00 49 02 00 00 00 02 1C 00 45 02 00 00 00 02    ..I.......E.....
021560:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021570:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021580:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021590:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0215F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
021600:  0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 64 65 78 2E 63    ../*..** index.c
021610:  20 2D 2D 20 66 69 6E 64 20 63 68 61 72 61 63 74     -- find charact
021620:  65 72 20 63 20 69 6E 20 73 74 72 69 6E 67 20 73    er c in string s
021630:  74 72 0D 0A 2A 2F 0D 0A 69 6E 64 65 78 28 73 74    tr..*/..index(st
021640:  72 2C 20 63 29 20 63 68 61 72 20 73 74 72 5B 5D    r, c) char str[]
021650:  2C 20 63 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B    , c; {..  int i;
021660:  0D 0A 20 20 69 3D 2D 31 3B 0D 0A 20 20 77 68 69    ..  i=-1;..  whi
021670:  6C 65 28 73 74 72 5B 2B 2B 69 5D 21 3D 4E 55 4C    le(str[++i]!=NUL
021680:  4C 29 20 69 66 28 73 74 72 5B 69 5D 3D 3D 63 29    L) if(str[i]==c)
021690:  20 72 65 74 75 72 6E 20 69 3B 0D 0A 20 20 72 65     return i;..  re
0216A0:  74 75 72 6E 20 2D 31 3B 0D 0A 20 20 7D 0D 0A 1A    turn -1;..  }...
0216B0:  0A 1A 0A 1A 1A 0D 0A 1A 0D 0A 1A 0B 30 7C B5 CA    ............0|..
0216C0:  D1 39 21 00 00 39 E5 21 30 00 D1 CD D0 2F C3 DD    .9!..9.!0..../..
0216D0:  39 21 00 00 39 E5 21 37 00 D1 CD D0 2F 21 08 00    9!..9.!7..../!..
0216E0:  39 CD C8 2F E5 21 08 00 39 E5 CD C8 2F 2B D1 CD    9../.!..9.../+..
0216F0:  D0 2F D1 19 E5 21 04 00 39 CD C8 2F E5 21 04 00    ./...!..9../.!..
021700:  AA CD C8 2F D1 19 D1 CD CD 2F 21 0A 00 39 CD C8    .../...../!..9..
021710:  2F E5 21 00 00 D1 CD EB 2F 7C B5 CA 21 3A C3 24    /.!...../|..!:.$
021720:  3A C3 67 39 21 06 00 39 CD C8 2F 7C B5 CA 52 3A    :.g9!..9../|..R:
021730:  21 08 00 39 CD C8 2F E5 21 08 00 39 E5 CD C8 2F    !..9../.!..9.../
021740:  2B D1 CD D0 2F D1 19 E5 21 20 00 D1 CD CD 2F C3    +.../...! ..../.
021750:  24 3A C1 C1 C9 C5 C5 C5 C5 C5 C5 C5 C5 3B 3B EB    $:...........;;.
021760:  21 F9 1A 39 F9 EB C5 3B 21 03 00 39 E5 21 06 00    !..9...;!..9.!..
021770:  D1 19 E5 21 00 00 D1 CD CD 2F 21 1E 00 39 E5 21    ...!...../!..9.!
021780:  20 00 39 E5 21 02 00 E5 21 24 00 39 CD C8 2F D1     .9.!...!$.9../.
021790:  CD 6F 30 D1 19 D1 CD D0 2F 21 0E 00 39 E5 21 20    .o0...../!..9.! 
0217A0:  00 39 CD C8 2F E5 21 02 00 D1 19 CD C8 2F D1 CD    .9../.!....../..
0217B0:  D0 2F 21 0E 00 39 CD C8 2F CD C2 2F E5 21 3F 00    ./!..9../../.!?.
0217C0:  D1 CD EB 2F 7C B5 CA E5 3A 21 10 00 39 E5 21 02    .../|...:!..9.!.
0217D0:  00 D1 CD D0 2F 21 0E 00 39 E5 CD C8 2F 23 D1 CD    ..../!..9.../#..
0217E0:  D0 2F C3 F1 3A 21 10 00 39 E5 21 01 00 D1 CD D0    ./..:!..9.!.....
0217F0:  2F 21 0B 00 39 E5 21 10 00 39 E5 CD C8 2F 23 D1    /!..9.!..9.../#.
021800:  74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D    tinue;..      }.
021810:  0A 20 20 20 20 69 66 28 73 61 6D 65 28 61 72 67    .    if(same(arg
021820:  5B 31 5D 2C 20 27 6E 27 29 29 20 7B 0D 0A 20 20    [1], 'n')) {..  
021830:  20 20 20 20 69 66 28 61 72 67 5B 33 5D 20 3C 3D        if(arg[3] <=
021840:  20 27 20 27 29 20 7B 0D 0A 20 20 20 20 20 20 20     ' ') {..       
021850:  20 69 66 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C     if(same(arg[2],
021860:  20 27 62 27 29 29 20 7B 0D 0A 20 20 20 20 20 20     'b')) {..      
021870:  20 20 20 20 62 6C 61 6E 6B 73 3D 4E 4F 3B 0D 0A        blanks=NO;..
021880:  20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69 6E              contin
021890:  75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 7D    ue;..          }
0218A0:  0D 0A 20 20 20 20 20 20 20 20 69 66 28 73 61 6D    ..        if(sam
0218B0:  65 28 61 72 67 5B 32 5D 2C 20 27 70 27 29 29 20    e(arg[2], 'p')) 
0218C0:  7B 0D 0A 20 20 20 20 20 20 20 20 20 20 70 61 75    {..          pau
0218D0:  73 65 3D 4E 4F 3B 0D 0A 20 20 20 20 20 20 20 20    se=NO;..        
0218E0:  20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20      continue;..   
0218F0:  20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20           }..      
021900:  20 20 69 66 28 73 61 6D 65 28 61 72 67 5B 32 5D      if(same(arg[2]
021910:  2C 20 27 6E 27 29 29 20 7B 0D 0A 20 20 20 20 20    , 'n')) {..     
021920:  20 20 20 20 20 6E 75 6D 62 65 72 73 3D 30 3B 0D         numbers=0;.
021930:  0A 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69    .          conti
021940:  6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20    nue;..          
021950:  7D 0D 0A 20 20 20 20 20 20 20 20 65 72 72 3D 59    }..        err=Y
021960:  45 53 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A    ES;..        }..
021970:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28          }..    if(
021980:  73 61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 70 27    same(arg[1], 'p'
021990:  29 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28    )) {..      if((
0219A0:  6A 3D 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 6B    j=utoi(arg+3, &k
0219B0:  29 29 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 20    )) > 0) {..     
0219C0:  20 20 20 69 66 28 28 6B 20 3E 20 30 29 26 28 61       if((k > 0)&(a
0219D0:  72 67 5B 6A 2B 33 5D 20 3C 3D 20 27 20 27 29 29    rg[j+3] <= ' '))
0219E0:  20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66     {..          if
0219F0:  28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27 6C    (same(arg[2], 'l
021A00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021A90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021AA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021AB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021AC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021AD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021AE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021AF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021B90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021BA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021BB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021BC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021BD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021BE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021BF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
021C00:  27 29 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20    ')) {..         
021C10:  20 20 20 70 6C 65 6E 67 74 68 3D 6B 3B 0D 0A 20       plength=k;.. 
021C20:  20 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69               conti
021C30:  6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20    nue;..          
021C40:  20 20 7D 0D 0A 20 20 20 20 20 20 20 20 20 20 69      }..          i
021C50:  66 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27    f(same(arg[2], '
021C60:  77 27 29 29 20 7B 0D 0A 20 20 20 20 20 20 20 20    w')) {..        
021C70:  20 20 20 20 70 77 69 64 74 68 3D 6B 3B 0D 0A 20        pwidth=k;.. 
021C80:  20 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69               conti
021C90:  6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20    nue;..          
021CA0:  20 20 7D 0D 0A 20 20 20 20 20 20 20 20 20 20 7D      }..          }
021CB0:  0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20    ..        }..   
021CC0:  20 20 20 7D 0D 0A 20 20 20 20 65 72 72 3D 59 45       }..    err=YE
021CD0:  53 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28    S;..    }..  if(
021CE0:  65 72 72 29 20 7B 0D 0A 20 20 20 20 66 70 75 74    err) {..    fput
021CF0:  73 28 22 75 73 61 67 65 3A 20 4C 53 54 20 5B 66    s("usage: LST [f
021D00:  69 6C 65 5D 20 5B 2D 43 23 5D 20 5B 2D 50 57 23    ile] [-C#] [-PW#
021D10:  5D 20 5B 2D 50 4C 23 5D 20 5B 2D 4E 42 5D 20 5B    ] [-PL#] [-NB] [
021D20:  2D 4E 4E 5D 20 5B 2D 4E 50 5D 5C 6E 22 2C 0D 0A    -NN] [-NP]\n",..
021D30:  20 20 20 20 20 20 20 20 20 20 73 74 64 65 72 72              stderr
021D40:  29 3B 0D 0A 20 20 20 20 61 62 6F 72 74 28 37 29    );..    abort(7)
021D50:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 63    ;..    }..  }..c
021D60:  6F 6C 75 6D 6E 28 69 6E 2C 20 6F 75 74 2C 20 63    olumn(in, out, c
021D70:  77 69 64 74 68 2C 20 63 6F 6C 73 2C 20 70 6C 65    width, cols, ple
021D80:  6E 67 74 68 2C 20 6E 75 6D 62 65 72 29 0D 0A 20    ngth, number).. 
021D90:  20 20 69 6E 74 20 69 6E 2C 20 6F 75 74 2C 20 63      int in, out, c
021DA0:  77 69 64 74 68 2C 20 63 6F 6C 73 2C 20 70 6C 65    width, cols, ple
021DB0:  6E 67 74 68 2C 20 2A 6E 75 6D 62 65 72 3B 20 7B    ngth, *number; {
021DC0:  0D 0A 20 20 20 69 6E 74 20 65 6F 66 2C 20 6C 69    ..   int eof, li
021DD0:  6E 65 73 2C 20 63 6F 6C 63 6E 74 2C 20 6C 77 69    nes, colcnt, lwi
021DE0:  64 74 68 2C 20 69 2C 20 62 75 66 73 7A 2C 20 6C    dth, i, bufsz, l
021DF0:  69 6E 65 63 6E 74 3B 0D 0A 20 20 63 68 61 72 20    inecnt;..  char 
021E00:  2F 2A 0D 0A 2A 2A 20 6C 73 74 2E 63 20 2D 2D 20    /*..** lst.c -- 
021E10:  6C 69 73 74 20 74 65 78 74 20 69 6E 20 63 6F 6C    list text in col
021E20:  75 6D 6E 73 20 6F 6E 20 70 61 67 65 73 0D 0A 2A    umns on pages..*
021E30:  2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74 20    *..** Copyright 
021E40:  31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64 72    1982 J. E. Hendr
021E50:  69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73 20    ix.  All rights 
021E60:  72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A 23    reserved...*/..#
021E70:  69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E 68    include <stdio.h
021E80:  3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 6F 6F    >..#include "too
021E90:  6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E 65 20 4E    ls.h"..#define N
021EA0:  4F 43 43 41 52 47 43 0D 0A 69 6E 74 0D 0A 20 20    OCCARGC..int..  
021EB0:  66 64 2C 20 20 20 20 20 2F 2A 20 66 69 6C 65 20    fd,     /* file 
021EC0:  64 65 73 63 72 69 70 74 6F 72 20 66 6F 72 20 69    descriptor for i
021ED0:  6E 70 75 74 20 2A 2F 0D 0A 20 20 65 6F 66 2C 20    nput */..  eof, 
021EE0:  20 20 20 2F 2A 20 65 6E 64 20 6F 66 20 66 69 6C       /* end of fil
021EF0:  65 20 69 66 20 59 45 53 20 2A 2F 0D 0A 20 20 63    e if YES */..  c
021F00:  6F 6C 73 2C 20 20 20 2F 2A 20 6E 75 6D 62 65 72    ols,   /* number
021F10:  20 6F 66 20 63 6F 6C 73 20 2A 2F 0D 0A 20 20 63     of cols */..  c
021F20:  77 69 64 74 68 2C 20 2F 2A 20 63 6F 6C 20 77 69    width, /* col wi
021F30:  64 74 68 20 2A 2F 0D 0A 20 20 70 77 69 64 74 68    dth */..  pwidth
021F40:  2C 20 2F 2A 20 70 61 67 65 20 77 69 64 74 68 20    , /* page width 
021F50:  2A 2F 0D 0A 20 20 70 6C 65 6E 67 74 68 2C 2F 2A    */..  plength,/*
021F60:  20 70 61 67 65 20 6C 65 6E 67 74 68 20 2A 2F 0D     page length */.
021F70:  0A 20 20 62 6C 61 6E 6B 73 2C 20 2F 2A 20 62 6C    .  blanks, /* bl
021F80:  61 6E 6B 20 6C 69 6E 65 73 20 70 72 6F 63 65 73    ank lines proces
021F90:  73 65 64 20 69 66 20 59 45 53 20 2A 2F 0D 0A 20    sed if YES */.. 
021FA0:  20 6E 75 6D 62 65 72 73 2C 2F 2A 20 6E 75 6D 62     numbers,/* numb
021FB0:  65 72 20 6C 69 6E 65 73 20 69 66 20 3E 20 30 20    er lines if > 0 
021FC0:  2A 2F 0D 0A 20 20 70 61 75 73 65 3B 20 20 2F 2A    */..  pause;  /*
021FD0:  20 70 61 75 73 65 20 62 65 66 6F 72 65 20 65 61     pause before ea
021FE0:  63 68 20 70 61 67 65 20 69 66 20 59 45 53 20 2A    ch page if YES *
021FF0:  2F 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72    /..main(argc, ar
022000:  2A 70 74 72 2C 20 2A 73 74 6F 70 2C 20 2A 65 70    *ptr, *stop, *ep
022010:  74 72 2C 20 2A 6E 65 78 74 65 70 74 72 2C 20 2A    tr, *nexteptr, *
022020:  62 75 66 2C 20 2A 62 65 6E 64 3B 0D 0A 20 20 62    buf, *bend;..  b
022030:  75 66 73 7A 3D 63 6F 6C 73 2A 28 63 77 69 64 74    ufsz=cols*(cwidt
022040:  68 2B 31 29 2A 70 6C 65 6E 67 74 68 3B 0D 0A 20    h+1)*plength;.. 
022050:  20 70 74 72 3D 62 75 66 3D 6D 61 6C 6C 6F 63 28     ptr=buf=malloc(
022060:  62 75 66 73 7A 29 3B 0D 0A 20 20 62 65 6E 64 3D    bufsz);..  bend=
022070:  62 75 66 2B 62 75 66 73 7A 3B 0D 0A 20 20 65 6F    buf+bufsz;..  eo
022080:  66 3D 4E 4F 3B 0D 0A 20 20 77 68 69 6C 65 28 70    f=NO;..  while(p
022090:  74 72 20 3C 20 62 65 6E 64 29 20 7B 0D 0A 20 20    tr < bend) {..  
0220A0:  20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20      poll(YES);..  
0220B0:  20 20 69 66 28 2A 6E 75 6D 62 65 72 29 20 7B 0D      if(*number) {.
0220C0:  0A 20 20 20 20 20 20 69 3D 34 3B 0D 0A 20 20 20    .      i=4;..   
0220D0:  20 20 20 69 74 6F 75 28 2A 6E 75 6D 62 65 72 2C       itou(*number,
0220E0:  20 70 74 72 2C 20 2D 69 29 3B 0D 0A 20 20 20 20     ptr, -i);..    
0220F0:  20 20 70 74 72 5B 69 2B 2B 5D 3D 27 20 27 3B 0D      ptr[i++]=' ';.
022100:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C    .      }..    el
022110:  73 65 20 69 3D 30 3B 0D 0A 20 20 20 20 69 66 28    se i=0;..    if(
022120:  66 67 65 74 73 28 70 74 72 2B 69 2C 20 63 77 69    fgets(ptr+i, cwi
022130:  64 74 68 2B 31 2D 69 2C 20 69 6E 29 3D 3D 4E 55    dth+1-i, in)==NU
022140:  4C 4C 29 20 7B 0D 0A 20 20 20 20 20 20 65 6F 66    LL) {..      eof
022150:  3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 62 72 65    =YES;..      bre
022160:  61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20    ak;..      }..  
022170:  20 20 74 72 69 6D 28 70 74 72 2B 69 29 3B 0D 0A      trim(ptr+i);..
022180:  20 20 20 20 69 66 28 28 62 6C 61 6E 6B 73 3D 3D        if((blanks==
022190:  4E 4F 29 20 26 26 20 28 70 74 72 5B 69 5D 3D 3D    NO) && (ptr[i]==
0221A0:  4E 55 4C 4C 29 29 20 63 6F 6E 74 69 6E 75 65 3B    NULL)) continue;
0221B0:  0D 0A 20 20 20 20 69 66 28 2A 6E 75 6D 62 65 72    ..    if(*number
0221C0:  29 20 2B 2B 28 2A 6E 75 6D 62 65 72 29 3B 0D 0A    ) ++(*number);..
0221D0:  20 20 20 20 70 74 72 3D 70 74 72 2B 63 77 69 64        ptr=ptr+cwid
0221E0:  74 68 2B 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20    th+1;..    }..  
0221F0:  73 74 6F 70 3D 70 74 72 3B 0D 0A 20 20 70 74 72    stop=ptr;..  ptr
022200:  67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61    gv) int argc, *a
022210:  72 67 76 3B 20 7B 0D 0A 20 20 69 66 28 21 69 73    rgv; {..  if(!is
022220:  61 74 74 79 28 73 74 64 6F 75 74 29 29 20 7B 20    atty(stdout)) { 
022230:  20 20 20 20 20 20 20 2F 2A 20 73 65 74 20 64 65           /* set de
022240:  66 61 75 6C 74 20 64 69 6D 65 6E 73 69 6F 6E 73    fault dimensions
022250:  20 2A 2F 0D 0A 20 20 20 20 70 61 75 73 65 3D 4E     */..    pause=N
022260:  4F 3B 0D 0A 20 20 20 20 70 77 69 64 74 68 3D 50    O;..    pwidth=P
022270:  54 52 57 49 44 45 2D 31 3B 0D 0A 20 20 20 20 70    TRWIDE-1;..    p
022280:  6C 65 6E 67 74 68 3D 50 54 52 48 49 47 48 2D 50    length=PTRHIGH-P
022290:  54 52 53 4B 49 50 2D 50 54 52 48 44 52 3B 20 20    TRSKIP-PTRHDR;  
0222A0:  2F 2A 20 70 61 67 65 20 62 6F 64 79 20 68 65 69    /* page body hei
0222B0:  67 68 74 20 2A 2F 0D 0A 20 20 20 20 7D 0D 0A 20    ght */..    }.. 
0222C0:  20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 70 61 75     else {..    pau
0222D0:  73 65 3D 59 45 53 3B 0D 0A 20 20 20 20 70 77 69    se=YES;..    pwi
0222E0:  64 74 68 3D 43 52 54 57 49 44 45 2D 31 3B 0D 0A    dth=CRTWIDE-1;..
0222F0:  20 20 20 20 70 6C 65 6E 67 74 68 3D 43 52 54 48        plength=CRTH
022300:  49 47 48 2D 31 3B 20 20 20 20 20 20 20 20 20 20    IGH-1;          
022310:  20 20 20 20 20 2F 2A 20 61 6C 6C 6F 77 20 66 6F         /* allow fo
022320:  72 20 70 72 6F 6D 70 74 73 20 2A 2F 0D 0A 20 20    r prompts */..  
022330:  20 20 7D 0D 0A 20 20 62 6C 61 6E 6B 73 3D 59 45      }..  blanks=YE
022340:  53 3B 0D 0A 20 20 65 6F 66 3D 4E 4F 3B 0D 0A 20    S;..  eof=NO;.. 
022350:  20 63 6F 6C 73 3D 31 3B 0D 0A 20 20 6E 75 6D 62     cols=1;..  numb
022360:  65 72 73 3D 31 3B 0D 0A 20 20 66 64 3D 73 74 64    ers=1;..  fd=std
022370:  69 6E 3B 0D 0A 20 20 64 6F 61 72 67 73 28 61 72    in;..  doargs(ar
022380:  67 63 2C 20 61 72 67 76 29 3B 0D 0A 20 20 63 77    gc, argv);..  cw
022390:  69 64 74 68 3D 70 77 69 64 74 68 2F 63 6F 6C 73    idth=pwidth/cols
0223A0:  3B 0D 0A 20 20 77 68 69 6C 65 28 65 6F 66 3D 3D    ;..  while(eof==
0223B0:  4E 4F 29 20 7B 0D 0A 20 20 20 20 69 66 28 70 61    NO) {..    if(pa
0223C0:  75 73 65 29 20 7B 0D 0A 20 20 20 20 20 20 66 70    use) {..      fp
0223D0:  75 74 73 28 22 77 61 69 74 69 6E 67 2E 2E 2E 20    uts("waiting... 
0223E0:  22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20    ", stderr);..   
0223F0:  20 20 20 66 67 65 74 63 28 73 74 64 65 72 72 29       fgetc(stderr)
022400:  3D 62 75 66 3B 0D 0A 20 20 6C 77 69 64 74 68 3D    =buf;..  lwidth=
022410:  63 6F 6C 73 2A 28 63 77 69 64 74 68 2B 31 29 3B    cols*(cwidth+1);
022420:  0D 0A 20 20 6C 69 6E 65 73 3D 28 73 74 6F 70 2D    ..  lines=(stop-
022430:  62 75 66 29 2F 6C 77 69 64 74 68 3B 0D 0A 20 20    buf)/lwidth;..  
022440:  69 66 28 28 73 74 6F 70 2D 62 75 66 29 25 6C 77    if((stop-buf)%lw
022450:  69 64 74 68 29 20 2B 2B 6C 69 6E 65 73 3B 0D 0A    idth) ++lines;..
022460:  20 20 69 66 28 6C 69 6E 65 73 3D 3D 30 29 20 72      if(lines==0) r
022470:  65 74 75 72 6E 20 65 6F 66 3B 0D 0A 20 20 6C 69    eturn eof;..  li
022480:  6E 65 63 6E 74 3D 6C 69 6E 65 73 3B 0D 0A 20 20    necnt=lines;..  
022490:  77 68 69 6C 65 28 6C 69 6E 65 63 6E 74 2D 2D 29    while(linecnt--)
0224A0:  20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 45 53     {..    poll(YES
0224B0:  29 3B 0D 0A 20 20 20 20 65 70 74 72 3D 70 74 72    );..    eptr=ptr
0224C0:  3B 0D 0A 20 20 20 20 63 6F 6C 63 6E 74 3D 63 6F    ;..    colcnt=co
0224D0:  6C 73 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28 63    ls;..    while(c
0224E0:  6F 6C 63 6E 74 2D 2D 29 20 7B 0D 0A 20 20 20 20    olcnt--) {..    
0224F0:  20 20 73 6F 75 74 28 65 70 74 72 2C 20 6F 75 74      sout(eptr, out
022500:  29 3B 0D 0A 20 20 20 20 20 20 69 66 28 28 6E 65    );..      if((ne
022510:  78 74 65 70 74 72 3D 65 70 74 72 2B 28 6C 69 6E    xteptr=eptr+(lin
022520:  65 73 2A 28 63 77 69 64 74 68 2B 31 29 29 29 20    es*(cwidth+1))) 
022530:  3E 3D 20 73 74 6F 70 29 20 62 72 65 61 6B 3B 0D    >= stop) break;.
022540:  0A 20 20 20 20 20 20 69 66 28 63 6F 6C 63 6E 74    .      if(colcnt
022550:  20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 20 20 20     > 0) {..       
022560:  20 69 66 28 28 69 3D 73 74 72 6C 65 6E 28 65 70     if((i=strlen(ep
022570:  74 72 29 29 20 3C 20 63 77 69 64 74 68 29 20 7B    tr)) < cwidth) {
022580:  0D 0A 20 20 20 20 20 20 20 20 20 20 69 3D 63 77    ..          i=cw
022590:  69 64 74 68 2D 69 3B 0D 0A 20 20 20 20 20 20 20    idth-i;..       
0225A0:  20 20 20 77 68 69 6C 65 28 69 2D 2D 29 20 63 6F       while(i--) co
0225B0:  75 74 28 27 20 27 2C 20 6F 75 74 29 3B 0D 0A 20    ut(' ', out);.. 
0225C0:  20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20             }..    
0225D0:  20 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 70 74        }..      ept
0225E0:  72 3D 6E 65 78 74 65 70 74 72 3B 0D 0A 20 20 20    r=nexteptr;..   
0225F0:  20 20 20 7D 0D 0A 20 20 20 20 63 6F 75 74 28 27       }..    cout('
022600:  3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    ;..      }..    
022610:  65 6F 66 3D 63 6F 6C 75 6D 6E 28 66 64 2C 20 73    eof=column(fd, s
022620:  74 64 6F 75 74 2C 20 63 77 69 64 74 68 2C 20 63    tdout, cwidth, c
022630:  6F 6C 73 2C 20 70 6C 65 6E 67 74 68 2C 20 26 6E    ols, plength, &n
022640:  75 6D 62 65 72 73 29 3B 0D 0A 20 20 20 20 7D 0D    umbers);..    }.
022650:  0A 20 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74    .  fclose(stdout
022660:  29 3B 0D 0A 20 20 7D 0D 0A 64 6F 61 72 67 73 28    );..  }..doargs(
022670:  61 72 67 63 2C 20 61 72 67 76 29 20 69 6E 74 20    argc, argv) int 
022680:  61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A    argc, *argv; {..
022690:  20 20 69 6E 74 20 69 2C 20 6A 2C 20 6B 2C 20 65      int i, j, k, e
0226A0:  72 72 3B 0D 0A 20 20 63 68 61 72 20 61 72 67 5B    rr;..  char arg[
0226B0:  4D 41 58 46 4E 5D 3B 0D 0A 20 20 65 72 72 3D 4E    MAXFN];..  err=N
0226C0:  4F 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68    O;..  i=0;..  wh
0226D0:  69 6C 65 28 67 65 74 61 72 67 28 2B 2B 69 2C 20    ile(getarg(++i, 
0226E0:  61 72 67 2C 20 4D 41 58 46 4E 2C 20 61 72 67 63    arg, MAXFN, argc
0226F0:  2C 20 61 72 67 76 29 20 21 3D 20 45 4F 46 29 20    , argv) != EOF) 
022700:  7B 0D 0A 20 20 20 20 69 66 28 61 72 67 5B 30 5D    {..    if(arg[0]
022710:  20 21 3D 20 27 2D 27 29 20 7B 0D 0A 20 20 20 20     != '-') {..    
022720:  20 20 69 66 28 21 28 66 64 3D 66 6F 70 65 6E 28      if(!(fd=fopen(
022730:  61 72 67 2C 20 22 72 22 29 29 29 20 7B 65 72 72    arg, "r"))) {err
022740:  3D 59 45 53 3B 20 62 72 65 61 6B 3B 7D 0D 0A 20    =YES; break;}.. 
022750:  20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A         continue;..
022760:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28          }..    if(
022770:  73 61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 63 27    same(arg[1], 'c'
022780:  29 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28    )) {..      if((
022790:  6A 3D 75 74 6F 69 28 61 72 67 2B 32 2C 20 26 63    j=utoi(arg+2, &c
0227A0:  6F 6C 73 29 29 20 3C 20 31 29 20 7B 65 72 72 3D    ols)) < 1) {err=
0227B0:  59 45 53 3B 20 62 72 65 61 6B 3B 7D 0D 0A 20 20    YES; break;}..  
0227C0:  20 20 20 20 69 66 28 28 63 6F 6C 73 20 3C 20 31        if((cols < 1
0227D0:  29 7C 28 61 72 67 5B 6A 2B 32 5D 20 3E 20 27 20    )|(arg[j+2] > ' 
0227E0:  27 29 29 20 7B 65 72 72 3D 59 45 53 3B 20 62 72    ')) {err=YES; br
0227F0:  65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 63 6F 6E    eak;}..      con
022800:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
022810:  1D 00 01 00 02 09 52 E5 1D 00 41 02 00 00 00 02    ......R...A.....
022820:  1D 00 46 02 00 00 00 02 1D 00 42 02 00 00 00 02    ..F.......B.....
022830:  1D 00 47 02 00 00 00 02 1D 00 43 02 00 00 00 02    ..G.......C.....
022840:  1D 00 48 02 00 00 00 02 1D 00 44 02 00 00 00 02    ..H.......D.....
022850:  1D 00 49 02 00 00 00 02 1D 00 45 02 00 00 00 02    ..I.......E.....
022860:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022870:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022880:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022890:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0228F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
022900:  5C 6E 27 2C 20 6F 75 74 29 3B 0D 0A 20 20 20 20    \n', out);..    
022910:  70 74 72 3D 70 74 72 2B 63 77 69 64 74 68 2B 31    ptr=ptr+cwidth+1
022920:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 72 65 65    ;..    }..  free
022930:  28 62 75 66 29 3B 0D 0A 20 20 72 65 74 75 72 6E    (buf);..  return
022940:  20 65 6F 66 3B 0D 0A 20 20 7D 0D 0A 23 69 6E 63     eof;..  }..#inc
022950:  6C 75 64 65 20 22 6F 75 74 2E 63 22 0D 0A 23 69    lude "out.c"..#i
022960:  6E 63 6C 75 64 65 20 22 73 61 6D 65 2E 63 22 0D    nclude "same.c".
022970:  0A 23 69 6E 63 6C 75 64 65 20 22 74 72 69 6D 2E    .#include "trim.
022980:  63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    c"..............
022990:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0229A0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0229B0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0229C0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0229D0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0229E0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
0229F0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
022A00:  29 3B 0D 0A 20 20 20 20 20 20 69 66 28 28 6E 65    );..      if((ne
022A10:  78 74 65 70 74 72 3D 65 70 74 72 2B 28 6C 69 6E    xteptr=eptr+(lin
022A20:  65 73 2A 28 63 77 69 64 74 68 2B 31 29 29 29 20    es*(cwidth+1))) 
022A30:  3E 3D 20 73 74 6F 70 29 20 62 72 65 61 6B 3B 0D    >= stop) break;.
022A40:  0A 20 20 20 20 20 20 69 66 28 63 6F 6C 63 6E 74    .      if(colcnt
022A50:  20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 20 20 20     > 0) {..       
022A60:  20 69 66 28 28 69 3D 73 74 72 6C 65 6E 28 65 70     if((i=strlen(ep
022A70:  74 72 29 29 20 3C 20 63 77 69 64 74 68 29 20 7B    tr)) < cwidth) {
022A80:  0D 0A 20 20 20 20 20 20 20 20 20 20 69 3D 63 77    ..          i=cw
022A90:  69 64 74 68 2D 69 3B 0D 0A 20 20 20 20 20 20 20    idth-i;..       
022AA0:  20 20 20 77 68 69 6C 65 28 69 2D 2D 29 20 63 6F       while(i--) co
022AB0:  75 74 28 27 20 27 2C 20 6F 75 74 29 3B 0D 0A 20    ut(' ', out);.. 
022AC0:  20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20             }..    
022AD0:  20 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 70 74        }..      ept
022AE0:  72 3D 6E 65 78 74 65 70 74 72 3B 0D 0A 20 20 20    r=nexteptr;..   
022AF0:  20 20 20 7D 0D 0A 20 20 20 20 63 6F 75 74 28 27       }..    cout('
022B00:  2F 2A 0D 0A 2A 2A 20 6D 72 67 2E 63 20 2D 2D 20    /*..** mrg.c -- 
022B10:  63 6F 6D 70 61 72 65 73 20 74 77 6F 20 73 6F 72    compares two sor
022B20:  74 65 64 20 74 65 78 74 20 66 69 6C 65 73 0D 0A    ted text files..
022B30:  2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74    **..** Copyright
022B40:  20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 64 6E     1982 J. E. Hedn
022B50:  72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73    rix.  All rights
022B60:  20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2A 0D 0A     reserved...**..
022B70:  2A 2A 20 73 77 69 74 63 68 20 31 20 3D 20 6C 69    ** switch 1 = li
022B80:  6E 65 73 20 69 6E 20 66 69 72 73 74 20 66 69 6C    nes in first fil
022B90:  65 20 6F 6E 6C 79 0D 0A 2A 2A 20 73 77 69 74 63    e only..** switc
022BA0:  68 20 32 20 3D 20 6C 69 6E 65 73 20 69 6E 20 73    h 2 = lines in s
022BB0:  65 63 6F 6E 64 20 66 69 6C 65 20 6F 6E 6C 79 0D    econd file only.
022BC0:  0A 2A 2A 20 73 77 69 74 63 68 20 33 20 3D 20 6C    .** switch 3 = l
022BD0:  69 6E 65 73 20 69 6E 20 62 6F 74 68 20 66 69 6C    ines in both fil
022BE0:  65 73 0D 0A 2A 2A 20 73 77 69 74 63 68 20 66 20    es..** switch f 
022BF0:  3D 20 6C 69 6E 65 73 20 69 6E 20 62 6F 74 68 20    = lines in both 
022C00:  66 69 6C 65 73 20 66 6F 72 6D 61 74 74 65 64 0D    files formatted.
022C10:  0A 2A 2A 0D 0A 2A 2A 20 20 20 20 20 20 20 20 20    .**..**         
022C20:  20 73 74 64 69 6E 20 64 65 66 61 75 6C 74 73 20     stdin defaults 
022C30:  66 6F 72 20 73 65 63 6F 6E 64 20 66 69 6C 65 0D    for second file.
022C40:  0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73    .*/..#include <s
022C50:  74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64    tdio.h>..#includ
022C60:  65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65    e "tools.h"..#de
022C70:  66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 69    fine NOCCARGC..i
022C80:  6E 74 20 63 6D 70 72 2C 20 66 64 31 2C 20 66 64    nt cmpr, fd1, fd
022C90:  32 2C 20 69 3B 0D 0A 63 68 61 72 20 2A 6C 69 6E    2, i;..char *lin
022CA0:  65 31 2C 20 2A 6C 69 6E 65 32 2C 20 63 6F 6C 75    e1, *line2, colu
022CB0:  6D 6E 2C 20 61 72 67 5B 4D 41 58 46 4E 5D 3B 0D    mn, arg[MAXFN];.
022CC0:  0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76    .main(argc, argv
022CD0:  29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67    ) int argc, *arg
022CE0:  76 3B 20 7B 0D 0A 20 20 69 6E 74 20 65 72 72 6F    v; {..  int erro
022CF0:  72 3B 0D 0A 20 20 63 6F 6C 75 6D 6E 3D 27 30 27    r;..  column='0'
022D00:  0D 0A 2F 2A 0D 0A 2A 2A 20 6D 61 6B 73 65 74 2E    ../*..** makset.
022D10:  63 20 2D 2D 20 6D 61 6B 65 20 61 72 72 61 79 20    c -- make array 
022D20:  69 6E 74 6F 20 61 20 73 65 74 0D 0A 2A 2F 0D 0A    into a set..*/..
022D30:  6D 61 6B 73 65 74 28 61 72 72 61 79 2C 20 6B 2C    makset(array, k,
022D40:  20 73 65 74 2C 20 73 69 7A 65 29 20 63 68 61 72     set, size) char
022D50:  20 61 72 72 61 79 5B 5D 2C 20 73 65 74 5B 5D 3B     array[], set[];
022D60:  20 69 6E 74 20 6B 2C 20 73 69 7A 65 3B 20 7B 0D     int k, size; {.
022D70:  0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A 20 20    .  int i, j;..  
022D80:  69 3D 6B 3B 0D 0A 20 20 6A 3D 30 3B 0D 0A 20 20    i=k;..  j=0;..  
022D90:  66 69 6C 73 65 74 28 4E 55 4C 4C 2C 20 61 72 72    filset(NULL, arr
022DA0:  61 79 2C 20 26 69 2C 20 73 65 74 2C 20 26 6A 2C    ay, &i, set, &j,
022DB0:  20 73 69 7A 65 29 3B 0D 0A 20 20 72 65 74 75 72     size);..  retur
022DC0:  6E 20 61 64 64 73 65 74 28 4E 55 4C 4C 2C 20 73    n addset(NULL, s
022DD0:  65 74 2C 20 26 6A 2C 20 73 69 7A 65 29 3B 0D 0A    et, &j, size);..
022DE0:  20 20 7D 0D 0A 1A 20 72 65 74 75 72 6E 20 61 64      }... return ad
022DF0:  64 73 65 74 28 4E 55 4C 4C 2C 20 73 65 74 2C 20    dset(NULL, set, 
022E00:  26 6A 2C 20 73 69 7A 65 29 3B 0D 0A 20 20 7D 0D    &j, size);..  }.
022E10:  0A 1A 45 54 5D 2C 20 74 6F 5B 44 49 4D 53 45 54    ..ET], to[DIMSET
022E20:  5D 3B 0D 0A 20 20 69 6E 74 20 61 6C 6C 62 75 74    ];..  int allbut
022E30:  2C 20 63 6F 6C 6C 61 70 2C 20 69 2C 20 6C 61 73    , collap, i, las
022E40:  74 74 6F 3B 0D 0A 20 20 69 66 28 67 65 74 61 72    tto;..  if(getar
022E50:  67 28 31 2C 20 61 72 67 2C 20 4D 41 58 41 52 52    g(1, arg, MAXARR
022E60:  2C 20 61 72 67 63 2C 20 61 72 67 76 29 3D 3D 45    , argc, argv)==E
022E70:  4F 46 29 20 7B 0D 0A 20 20 20 20 67 65 74 61 72    OF) {..    getar
022E80:  67 28 30 2C 20 61 72 67 2C 20 4D 41 58 41 52 52    g(0, arg, MAXARR
022E90:  2C 20 61 72 67 63 2C 20 61 72 67 76 29 3B 0D 0A    , argc, argv);..
022EA0:  20 20 20 20 70 72 69 6E 74 66 28 22 3F 55 73 61        printf("?Usa
022EB0:  67 65 3A 20 25 73 20 70 61 74 74 65 72 6E 66 72    ge: %s patternfr
022EC0:  6F 6D 20 5B 70 61 74 74 65 72 6E 74 6F 5D 5C 6E    om [patternto]\n
022ED0:  22 2C 20 61 72 67 2C 20 31 29 3B 0D 0A 20 20 20    ", arg, 1);..   
022EE0:  20 61 62 6F 72 74 28 30 29 3B 0D 0A 20 20 20 20     abort(0);..    
022EF0:  7D 0D 0A 20 20 65 6C 73 65 20 69 66 28 61 72 67    }..  else if(arg
022F00:  3B 0D 0A 20 20 66 64 31 3D 66 64 32 3D 73 74 64    ;..  fd1=fd2=std
022F10:  69 6E 3B 0D 0A 20 20 6C 69 6E 65 31 3D 6D 61 6C    in;..  line1=mal
022F20:  6C 6F 63 28 4D 41 58 4C 49 4E 45 2B 31 29 3B 0D    loc(MAXLINE+1);.
022F30:  0A 20 20 6C 69 6E 65 32 3D 6D 61 6C 6C 6F 63 28    .  line2=malloc(
022F40:  4D 41 58 4C 49 4E 45 2B 31 29 3B 0D 0A 20 20 65    MAXLINE+1);..  e
022F50:  72 72 6F 72 3D 4E 4F 3B 0D 0A 20 20 69 3D 30 3B    rror=NO;..  i=0;
022F60:  0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 72 67    ..  while(getarg
022F70:  28 2B 2B 69 2C 20 61 72 67 2C 20 4D 41 58 46 4E    (++i, arg, MAXFN
022F80:  2C 20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45    , argc, argv)!=E
022F90:  4F 46 29 20 7B 0D 0A 20 20 20 20 69 66 28 61 72    OF) {..    if(ar
022FA0:  67 5B 30 5D 21 3D 27 2D 27 29 20 7B 0D 0A 20 20    g[0]!='-') {..  
022FB0:  20 20 20 20 69 66 28 66 64 31 3D 3D 73 74 64 69        if(fd1==stdi
022FC0:  6E 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66    n) {..        if
022FD0:  28 28 66 64 31 3D 66 6F 70 65 6E 28 61 72 67 2C    ((fd1=fopen(arg,
022FE0:  20 22 72 22 29 29 3D 3D 4E 55 4C 4C 29 20 63 61     "r"))==NULL) ca
022FF0:  6E 74 28 61 72 67 29 3B 0D 0A 20 20 20 20 20 20    nt(arg);..      
023000:  20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 20      }..      else 
023010:  69 66 28 66 64 32 3D 3D 73 74 64 69 6E 29 20 7B    if(fd2==stdin) {
023020:  0D 0A 20 20 20 20 20 20 20 20 69 66 28 28 66 64    ..        if((fd
023030:  32 3D 66 6F 70 65 6E 28 61 72 67 2C 20 22 72 22    2=fopen(arg, "r"
023040:  29 29 3D 3D 4E 55 4C 4C 29 20 63 61 6E 74 28 61    ))==NULL) cant(a
023050:  72 67 29 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D    rg);..        }.
023060:  0A 20 20 20 20 20 20 65 6C 73 65 20 65 72 72 6F    .      else erro
023070:  72 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 7D 0D    r=YES;..      }.
023080:  0A 20 20 20 20 65 6C 73 65 20 69 66 28 28 28 61    .    else if(((a
023090:  72 67 5B 31 5D 20 3E 20 27 30 27 29 26 28 61 72    rg[1] > '0')&(ar
0230A0:  67 5B 31 5D 20 3C 20 27 34 27 29 29 0D 0A 20 20    g[1] < '4'))..  
0230B0:  20 20 20 20 20 20 20 20 20 20 7C 28 73 61 6D 65              |(same
0230C0:  28 61 72 67 5B 31 5D 2C 20 27 66 27 29 29 29 0D    (arg[1], 'f'))).
0230D0:  0A 20 20 20 20 20 20 63 6F 6C 75 6D 6E 3D 61 72    .      column=ar
0230E0:  67 5B 31 5D 3B 0D 0A 20 20 20 20 65 6C 73 65 20    g[1];..    else 
0230F0:  65 72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20    error=YES;..    
023100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0231A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0231B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0231C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0231D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0231E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0231F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0232A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0232B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0232C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0232D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0232E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0232F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023300:  7D 0D 0A 20 20 69 66 28 28 65 72 72 6F 72 29 7C    }..  if((error)|
023310:  28 66 64 31 3D 3D 73 74 64 69 6E 29 29 20 7B 0D    (fd1==stdin)) {.
023320:  0A 20 20 20 20 66 70 75 74 73 28 22 75 73 61 67    .    fputs("usag
023330:  65 3A 20 4D 52 47 20 66 69 6C 65 20 5B 66 69 6C    e: MRG file [fil
023340:  65 5D 20 5B 2D 31 7C 2D 32 7C 2D 33 7C 2D 46 5D    e] [-1|-2|-3|-F]
023350:  5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20    \n", stderr);.. 
023360:  20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20       abort(7);..  
023370:  20 20 7D 0D 0A 20 20 61 75 78 62 75 66 28 66 64      }..  auxbuf(fd
023380:  31 2C 20 34 30 39 36 29 3B 0D 0A 20 20 61 75 78    1, 4096);..  aux
023390:  62 75 66 28 66 64 32 2C 20 34 30 39 36 29 3B 0D    buf(fd2, 4096);.
0233A0:  0A 20 20 67 65 74 6C 69 6E 65 28 6C 69 6E 65 31    .  getline(line1
0233B0:  2C 20 66 64 31 29 3B 0D 0A 20 20 67 65 74 6C 69    , fd1);..  getli
0233C0:  6E 65 28 6C 69 6E 65 32 2C 20 66 64 32 29 3B 0D    ne(line2, fd2);.
0233D0:  0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D    .  while(YES) {.
0233E0:  0A 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D    .    poll(YES);.
0233F0:  0A 20 20 20 20 63 6D 70 72 3D 6C 65 78 63 6D 70    .    cmpr=lexcmp
023400:  28 6C 69 6E 65 31 2C 20 6C 69 6E 65 32 29 3B 0D    (line1, line2);.
023410:  0A 20 20 20 20 69 66 28 63 6D 70 72 20 3C 20 30    .    if(cmpr < 0
023420:  29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73 61    ) {..      if(sa
023430:  6D 65 28 63 6F 6C 75 6D 6E 2C 20 27 66 27 29 29    me(column, 'f'))
023440:  20 66 6F 75 74 28 22 31 29 20 22 2C 20 6C 69 6E     fout("1) ", lin
023450:  65 31 29 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65    e1);..      else
023460:  20 69 66 28 28 63 6F 6C 75 6D 6E 3D 3D 27 30 27     if((column=='0'
023470:  29 7C 28 63 6F 6C 75 6D 6E 3D 3D 27 31 27 29 29    )|(column=='1'))
023480:  20 73 6F 75 74 28 6C 69 6E 65 31 2C 20 73 74 64     sout(line1, std
023490:  6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 67 65 74    out);..      get
0234A0:  6C 69 6E 65 28 6C 69 6E 65 31 2C 20 66 64 31 29    line(line1, fd1)
0234B0:  3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75    ;..      continu
0234C0:  65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    e;..      }..   
0234D0:  20 65 6C 73 65 20 69 66 28 63 6D 70 72 20 3E 20     else if(cmpr > 
0234E0:  30 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73    0) {..      if(s
0234F0:  61 6D 65 28 63 6F 6C 75 6D 6E 2C 20 27 66 27 29    ame(column, 'f')
023500:  0D 0A 2F 2A 0D 0A 2A 2A 20 6D 61 6B 73 75 62 2E    ../*..** maksub.
023510:  63 20 2D 2D 20 6D 61 6B 65 20 73 75 62 73 74 69    c -- make substi
023520:  74 75 74 69 6F 6E 20 73 74 72 69 6E 67 20 69 6E    tution string in
023530:  20 73 75 62 0D 0A 2A 2F 0D 0A 6D 61 6B 73 75 62     sub..*/..maksub
023540:  28 61 72 67 2C 20 66 72 6F 6D 2C 20 64 65 6C 69    (arg, from, deli
023550:  6D 2C 20 73 75 62 29 20 63 68 61 72 20 61 72 67    m, sub) char arg
023560:  5B 5D 2C 20 73 75 62 5B 5D 2C 20 64 65 6C 69 6D    [], sub[], delim
023570:  3B 20 69 6E 74 20 66 72 6F 6D 3B 20 7B 0D 0A 20    ; int from; {.. 
023580:  20 69 6E 74 20 69 2C 20 6A 3B 0D 0A 20 20 6A 3D     int i, j;..  j=
023590:  30 3B 0D 0A 20 20 69 3D 66 72 6F 6D 3B 0D 0A 20    0;..  i=from;.. 
0235A0:  20 77 68 69 6C 65 28 28 61 72 67 5B 69 5D 21 3D     while((arg[i]!=
0235B0:  64 65 6C 69 6D 29 26 28 61 72 67 5B 69 5D 21 3D    delim)&(arg[i]!=
0235C0:  4E 55 4C 4C 29 29 20 7B 0D 0A 20 20 20 20 69 66    NULL)) {..    if
0235D0:  28 61 72 67 5B 69 5D 3D 3D 44 49 54 54 4F 29 20    (arg[i]==DITTO) 
0235E0:  61 64 64 73 65 74 28 44 49 54 43 4F 44 45 2C 20    addset(DITCODE, 
0235F0:  73 75 62 2C 20 26 6A 2C 20 4D 41 58 50 41 54 29    sub, &j, MAXPAT)
023600:  3B 0D 0A 20 20 20 20 65 6C 73 65 20 61 64 64 73    ;..    else adds
023610:  65 74 28 65 73 63 28 61 72 67 2C 20 26 69 29 2C    et(esc(arg, &i),
023620:  20 73 75 62 2C 20 26 6A 2C 20 4D 41 58 50 41 54     sub, &j, MAXPAT
023630:  29 3B 0D 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20    );..    ++i;..  
023640:  20 20 7D 0D 0A 20 20 69 66 28 61 72 67 5B 69 5D      }..  if(arg[i]
023650:  21 3D 64 65 6C 69 6D 29 20 72 65 74 75 72 6E 20    !=delim) return 
023660:  45 52 52 3B 20 2F 2A 2A 2A 2A 20 6D 69 73 73 69    ERR; /**** missi
023670:  6E 67 20 64 65 6C 69 6D 69 74 65 72 20 2A 2A 2A    ng delimiter ***
023680:  2A 2F 0D 0A 20 20 69 66 28 61 64 64 73 65 74 28    */..  if(addset(
023690:  4E 55 4C 4C 2C 20 73 75 62 2C 20 26 6A 2C 20 4D    NULL, sub, &j, M
0236A0:  41 58 50 41 54 29 3D 3D 4E 4F 29 20 72 65 74 75    AXPAT)==NO) retu
0236B0:  72 6E 20 45 52 52 3B 20 2F 2A 2A 20 6E 6F 20 72    rn ERR; /** no r
0236C0:  6F 6F 6D 20 2A 2A 2F 0D 0A 20 20 72 65 74 75 72    oom **/..  retur
0236D0:  6E 20 69 3B 0D 0A 20 20 7D 0D 0A 1A 54 5D 2C 20    n i;..  }...T], 
0236E0:  73 75 62 5B 4D 41 58 50 41 54 5D 3B 0D 0A 63 68    sub[MAXPAT];..ch
0236F0:  61 72 20 61 72 67 5B 4D 41 58 41 52 47 5D 3B 0D    ar arg[MAXARG];.
023700:  29 20 66 6F 75 74 28 22 20 20 32 29 20 22 2C 20    ) fout("  2) ", 
023710:  6C 69 6E 65 32 29 3B 0D 0A 20 20 20 20 20 20 65    line2);..      e
023720:  6C 73 65 20 69 66 28 28 63 6F 6C 75 6D 6E 3D 3D    lse if((column==
023730:  27 30 27 29 7C 28 63 6F 6C 75 6D 6E 3D 3D 27 32    '0')|(column=='2
023740:  27 29 29 20 73 6F 75 74 28 6C 69 6E 65 32 2C 20    ')) sout(line2, 
023750:  73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20    stdout);..      
023760:  67 65 74 6C 69 6E 65 28 6C 69 6E 65 32 2C 20 66    getline(line2, f
023770:  64 32 29 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74    d2);..      cont
023780:  69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    inue;..      }..
023790:  20 20 20 20 69 66 28 6C 69 6E 65 31 5B 30 5D 20        if(line1[0] 
0237A0:  3D 3D 20 31 32 37 29 20 62 72 65 61 6B 3B 0D 0A    == 127) break;..
0237B0:  20 20 20 20 69 66 28 73 61 6D 65 28 63 6F 6C 75        if(same(colu
0237C0:  6D 6E 2C 20 27 66 27 29 29 20 20 20 66 6F 75 74    mn, 'f'))   fout
0237D0:  28 22 20 20 20 20 33 29 20 22 2C 20 6C 69 6E 65    ("    3) ", line
0237E0:  31 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66    1);..    else if
0237F0:  28 28 63 6F 6C 75 6D 6E 3D 3D 27 30 27 29 7C 28    ((column=='0')|(
023800:  63 6F 6C 75 6D 6E 3D 3D 27 33 27 29 29 20 73 6F    column=='3')) so
023810:  75 74 28 6C 69 6E 65 31 2C 20 73 74 64 6F 75 74    ut(line1, stdout
023820:  29 3B 0D 0A 20 20 20 20 67 65 74 6C 69 6E 65 28    );..    getline(
023830:  6C 69 6E 65 31 2C 20 66 64 31 29 3B 0D 0A 20 20    line1, fd1);..  
023840:  20 20 67 65 74 6C 69 6E 65 28 6C 69 6E 65 32 2C      getline(line2,
023850:  20 66 64 32 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20     fd2);..    }.. 
023860:  20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29 3B     fclose(stdout);
023870:  0D 0A 20 20 7D 0D 0A 0D 0A 67 65 74 6C 69 6E 65    ..  }....getline
023880:  28 6C 69 6E 65 2C 20 66 64 29 20 63 68 61 72 20    (line, fd) char 
023890:  2A 6C 69 6E 65 3B 20 69 6E 74 20 66 64 3B 20 7B    *line; int fd; {
0238A0:  0D 0A 20 20 69 66 28 66 67 65 74 73 28 6C 69 6E    ..  if(fgets(lin
0238B0:  65 2C 20 4D 41 58 4C 49 4E 45 2B 31 2C 20 66 64    e, MAXLINE+1, fd
0238C0:  29 3D 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20    )==NULL) {..    
0238D0:  6C 69 6E 65 5B 30 5D 20 3D 20 31 32 37 3B 0D 0A    line[0] = 127;..
0238E0:  20 20 20 20 6C 69 6E 65 5B 31 5D 20 3D 20 4E 55        line[1] = NU
0238F0:  4C 4C 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D    LL;..    }..  }.
023900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0239A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0239B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0239C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0239D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0239E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0239F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023A90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023AA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023AB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023AC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023AD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023AE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023AF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023B00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
023B10:  1E 00 01 00 02 09 52 E5 1E 00 41 02 00 00 00 02    ......R...A.....
023B20:  1E 00 46 02 00 00 00 02 1E 00 42 02 00 00 00 02    ..F.......B.....
023B30:  1E 00 47 02 00 00 00 02 1E 00 43 02 00 00 00 02    ..G.......C.....
023B40:  1E 00 48 02 00 00 00 02 1E 00 44 02 00 00 00 02    ..H.......D.....
023B50:  1E 00 49 02 00 00 00 02 1E 00 45 02 00 00 00 02    ..I.......E.....
023B60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023B70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023B80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023B90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023BF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
023C00:  0A 0D 0A 2F 2A 0D 0A 2A 2A 20 66 6F 75 74 20 2D    .../*..** fout -
023C10:  2D 20 66 6F 72 6D 61 74 74 65 64 20 6F 75 74 70    - formatted outp
023C20:  75 74 20 6F 66 20 61 20 6C 69 6E 65 0D 0A 2A 2F    ut of a line..*/
023C30:  0D 0A 66 6F 75 74 28 68 65 61 64 65 72 2C 20 64    ..fout(header, d
023C40:  61 74 61 29 20 63 68 61 72 20 2A 68 65 61 64 65    ata) char *heade
023C50:  72 2C 20 2A 64 61 74 61 3B 20 7B 0D 0A 20 20 73    r, *data; {..  s
023C60:  6F 75 74 28 68 65 61 64 65 72 2C 20 73 74 64 6F    out(header, stdo
023C70:  75 74 29 3B 0D 0A 20 20 73 6F 75 74 28 64 61 74    ut);..  sout(dat
023C80:  61 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D    a, stdout);..  }
023C90:  0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 6F 75    ....#include "ou
023CA0:  74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22    t.c"..#include "
023CB0:  63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64    cant.c"..#includ
023CC0:  65 20 22 73 61 6D 65 2E 63 22 0D 0A 0D 0A 1A 1A    e "same.c"......
023CD0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
023CE0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
023CF0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
023D00:  63 6F 6C 75 6D 6E 3D 3D 27 33 27 29 29 20 73 6F    column=='3')) so
023D10:  75 74 28 6C 69 6E 65 31 2C 20 73 74 64 6F 75 74    ut(line1, stdout
023D20:  29 3B 0D 0A 20 20 20 20 67 65 74 6C 69 6E 65 28    );..    getline(
023D30:  6C 69 6E 65 31 2C 20 66 64 31 29 3B 0D 0A 20 20    line1, fd1);..  
023D40:  20 20 67 65 74 6C 69 6E 65 28 6C 69 6E 65 32 2C      getline(line2,
023D50:  20 66 64 32 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20     fd2);..    }.. 
023D60:  20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29 3B     fclose(stdout);
023D70:  0D 0A 20 20 7D 0D 0A 0D 0A 67 65 74 6C 69 6E 65    ..  }....getline
023D80:  28 6C 69 6E 65 2C 20 66 64 29 20 63 68 61 72 20    (line, fd) char 
023D90:  2A 6C 69 6E 65 3B 20 69 6E 74 20 66 64 3B 20 7B    *line; int fd; {
023DA0:  0D 0A 20 20 69 66 28 66 67 65 74 73 28 6C 69 6E    ..  if(fgets(lin
023DB0:  65 2C 20 4D 41 58 4C 49 4E 45 2B 31 2C 20 66 64    e, MAXLINE+1, fd
023DC0:  29 3D 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20    )==NULL) {..    
023DD0:  6C 69 6E 65 5B 30 5D 20 3D 20 31 32 37 3B 0D 0A    line[0] = 127;..
023DE0:  20 20 20 20 6C 69 6E 65 5B 31 5D 20 3D 20 4E 55        line[1] = NU
023DF0:  4C 4C 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D    LL;..    }..  }.
023E00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023E90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023EA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023EB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023EC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023ED0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023EE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023EF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023F90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023FA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023FB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023FC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023FD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023FE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
023FF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024000:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024010:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024020:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024030:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024040:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024050:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024060:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024070:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024080:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024090:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0240A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0240B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0240C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0240D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0240E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0240F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0241A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0241B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0241C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0241D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0241E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0241F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024200:  0D 0A 2F 2A 0D 0A 2A 2A 20 70 61 74 2E 63 20 2D    ../*..** pat.c -
024210:  2D 20 70 61 74 74 65 72 6E 20 6D 61 6B 69 6E 67    - pattern making
024220:  20 61 6E 64 20 6D 61 74 63 68 69 6E 67 20 66 75     and matching fu
024230:  6E 63 74 69 6F 6E 73 0D 0A 2A 2F 0D 0A 0D 0A 2F    nctions..*/..../
024240:  2A 0D 0A 2A 2A 20 61 64 64 73 65 74 20 2D 2D 20    *..** addset -- 
024250:  70 75 74 20 63 20 69 6E 20 73 65 74 20 26 20 69    put c in set & i
024260:  6E 63 72 65 6D 65 6E 74 20 6A 0D 0A 2A 2F 0D 0A    ncrement j..*/..
024270:  61 64 64 73 65 74 28 63 2C 20 73 65 74 2C 20 6A    addset(c, set, j
024280:  2C 20 6D 61 78 73 69 7A 29 20 63 68 61 72 20 63    , maxsiz) char c
024290:  2C 20 73 65 74 5B 5D 3B 20 69 6E 74 20 2A 6A 2C    , set[]; int *j,
0242A0:  20 6D 61 78 73 69 7A 3B 20 7B 0D 0A 20 20 69 66     maxsiz; {..  if
0242B0:  28 2A 6A 20 3E 3D 20 6D 61 78 73 69 7A 29 20 72    (*j >= maxsiz) r
0242C0:  65 74 75 72 6E 20 4E 4F 3B 0D 0A 20 20 73 65 74    eturn NO;..  set
0242D0:  5B 2A 6A 5D 3D 63 3B 0D 0A 20 20 2A 6A 20 3D 20    [*j]=c;..  *j = 
0242E0:  2A 6A 20 2B 20 31 3B 0D 0A 20 20 72 65 74 75 72    *j + 1;..  retur
0242F0:  6E 20 59 45 53 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F    n YES;..  }..../
024300:  2A 0D 0A 2A 2A 20 61 6D 61 74 63 68 20 2D 2D 20    *..** amatch -- 
024310:  6C 6F 6F 6B 20 66 6F 72 20 6D 61 74 63 68 20 73    look for match s
024320:  74 61 72 74 69 6E 67 20 61 74 20 6C 69 6E 5B 66    tarting at lin[f
024330:  72 6F 6D 5D 0D 0A 2A 2F 0D 0A 61 6D 61 74 63 68    rom]..*/..amatch
024340:  28 6C 69 6E 2C 20 66 72 6F 6D 2C 20 70 61 74 29    (lin, from, pat)
024350:  20 63 68 61 72 20 6C 69 6E 5B 5D 2C 20 70 61 74     char lin[], pat
024360:  5B 5D 3B 20 69 6E 74 20 66 72 6F 6D 3B 20 7B 0D    []; int from; {.
024370:  0A 20 20 69 6E 74 20 69 2C 20 6A 2C 20 6F 66 66    .  int i, j, off
024380:  73 65 74 2C 20 73 74 61 63 6B 3B 0D 0A 20 20 73    set, stack;..  s
024390:  74 61 63 6B 20 3D 20 2D 31 3B 0D 0A 20 20 6F 66    tack = -1;..  of
0243A0:  66 73 65 74 3D 66 72 6F 6D 3B 0D 0A 20 20 6A 3D    fset=from;..  j=
0243B0:  30 3B 0D 0A 20 20 77 68 69 6C 65 28 70 61 74 5B    0;..  while(pat[
0243C0:  6A 5D 21 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20    j]!=NULL) {..   
0243D0:  20 69 66 28 70 61 74 5B 6A 5D 3D 3D 43 4C 4F 53     if(pat[j]==CLOS
0243E0:  55 52 45 29 20 7B 0D 0A 20 20 20 20 20 20 73 74    URE) {..      st
0243F0:  61 63 6B 3D 6A 3B 0D 0A 20 20 20 20 20 20 6A 3D    ack=j;..      j=
024400:  0D 0A 2F 2A 0D 0A 2A 2A 20 6F 75 74 2E 63 20 2D    ../*..** out.c -
024410:  2D 20 6F 75 74 70 75 74 20 74 6F 20 66 64 20 63    - output to fd c
024420:  68 65 63 6B 69 6E 67 20 66 6F 72 20 65 72 72 6F    hecking for erro
024430:  72 73 0D 0A 2A 2F 0D 0A 63 6F 75 74 28 63 2C 20    rs..*/..cout(c, 
024440:  66 64 29 20 63 68 61 72 20 63 3B 20 69 6E 74 20    fd) char c; int 
024450:  66 64 3B 20 7B 0D 0A 20 20 69 66 28 66 70 75 74    fd; {..  if(fput
024460:  63 28 63 2C 20 66 64 29 3D 3D 45 4F 46 29 20 78    c(c, fd)==EOF) x
024470:  6F 75 74 28 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 73    out();..  }....s
024480:  6F 75 74 28 73 74 72 69 6E 67 2C 20 66 64 29 20    out(string, fd) 
024490:  63 68 61 72 20 2A 73 74 72 69 6E 67 3B 20 69 6E    char *string; in
0244A0:  74 20 66 64 3B 20 7B 0D 0A 20 20 69 66 28 66 70    t fd; {..  if(fp
0244B0:  75 74 73 28 73 74 72 69 6E 67 2C 20 66 64 29 3D    uts(string, fd)=
0244C0:  3D 45 4F 46 29 20 78 6F 75 74 28 29 3B 0D 0A 20    =EOF) xout();.. 
0244D0:  20 7D 0D 0A 0D 0A 6C 6F 75 74 28 6C 69 6E 65 2C     }....lout(line,
0244E0:  20 66 64 29 20 63 68 61 72 20 2A 6C 69 6E 65 3B     fd) char *line;
0244F0:  20 69 6E 74 20 66 64 3B 20 7B 0D 0A 20 20 73 6F     int fd; {..  so
024500:  75 74 28 6C 69 6E 65 2C 20 66 64 29 3B 0D 0A 20    ut(line, fd);.. 
024510:  20 63 6F 75 74 28 27 5C 6E 27 2C 20 66 64 29 3B     cout('\n', fd);
024520:  0D 0A 20 20 7D 0D 0A 0D 0A 78 6F 75 74 28 29 20    ..  }....xout() 
024530:  7B 0D 0A 20 20 66 70 75 74 73 28 22 6F 75 74 70    {..  fputs("outp
024540:  75 74 20 65 72 72 6F 72 5C 6E 22 2C 20 73 74 64    ut error\n", std
024550:  65 72 72 29 3B 0D 0A 20 20 61 62 6F 72 74 28 37    err);..  abort(7
024560:  29 3B 0D 0A 20 20 7D 0D 0A 1A 1A 00 00 00 00 00    );..  }.........
024570:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024580:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024590:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0245A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0245B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0245C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0245D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0245E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0245F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024600:  6A 2B 43 4C 4F 53 49 5A 45 3B 0D 0A 20 20 20 20    j+CLOSIZE;..    
024610:  20 20 69 3D 6F 66 66 73 65 74 3B 0D 0A 20 20 20      i=offset;..   
024620:  20 20 20 77 68 69 6C 65 28 6C 69 6E 5B 69 5D 21       while(lin[i]!
024630:  3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 20 20    =NULL) {..      
024640:  20 20 69 66 28 6F 6D 61 74 63 68 28 6C 69 6E 2C      if(omatch(lin,
024650:  20 26 69 2C 20 70 61 74 2C 20 6A 29 3D 3D 4E 4F     &i, pat, j)==NO
024660:  29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20    ) break;..      
024670:  20 20 7D 0D 0A 20 20 20 20 20 20 70 61 74 5B 73      }..      pat[s
024680:  74 61 63 6B 2B 43 4F 55 4E 54 5D 3D 69 2D 6F 66    tack+COUNT]=i-of
024690:  66 73 65 74 3B 0D 0A 20 20 20 20 20 20 70 61 74    fset;..      pat
0246A0:  5B 73 74 61 63 6B 2B 53 54 41 52 54 5D 3D 6F 66    [stack+START]=of
0246B0:  66 73 65 74 3B 0D 0A 20 20 20 20 20 20 6F 66 66    fset;..      off
0246C0:  73 65 74 3D 69 3B 0D 0A 20 20 20 20 20 20 7D 0D    set=i;..      }.
0246D0:  0A 20 20 20 20 65 6C 73 65 20 69 66 28 6F 6D 61    .    else if(oma
0246E0:  74 63 68 28 6C 69 6E 2C 20 26 6F 66 66 73 65 74    tch(lin, &offset
0246F0:  2C 20 70 61 74 2C 20 6A 29 3D 3D 4E 4F 29 20 7B    , pat, j)==NO) {
024700:  0D 0A 20 20 20 20 20 20 77 68 69 6C 65 28 73 74    ..      while(st
024710:  61 63 6B 20 3E 3D 20 30 29 20 7B 0D 0A 20 20 20    ack >= 0) {..   
024720:  20 20 20 20 20 69 66 28 70 61 74 5B 73 74 61 63         if(pat[stac
024730:  6B 2B 43 4F 55 4E 54 5D 20 3E 20 30 29 20 62 72    k+COUNT] > 0) br
024740:  65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 73 74    eak;..        st
024750:  61 63 6B 3D 70 61 74 5B 73 74 61 63 6B 2B 50 52    ack=pat[stack+PR
024760:  45 56 43 4C 5D 3B 0D 0A 20 20 20 20 20 20 20 20    EVCL];..        
024770:  7D 0D 0A 20 20 20 20 20 20 69 66 28 73 74 61 63    }..      if(stac
024780:  6B 20 3C 20 30 29 20 72 65 74 75 72 6E 20 2D 31    k < 0) return -1
024790:  3B 0D 0A 20 20 20 20 20 20 70 61 74 5B 73 74 61    ;..      pat[sta
0247A0:  63 6B 2B 43 4F 55 4E 54 5D 3D 70 61 74 5B 73 74    ck+COUNT]=pat[st
0247B0:  61 63 6B 2B 43 4F 55 4E 54 5D 2D 31 3B 0D 0A 20    ack+COUNT]-1;.. 
0247C0:  20 20 20 20 20 6A 3D 73 74 61 63 6B 2B 43 4C 4F         j=stack+CLO
0247D0:  53 49 5A 45 3B 0D 0A 20 20 20 20 20 20 6F 66 66    SIZE;..      off
0247E0:  73 65 74 3D 70 61 74 5B 73 74 61 63 6B 2B 53 54    set=pat[stack+ST
0247F0:  41 52 54 5D 2B 70 61 74 5B 73 74 61 63 6B 2B 43    ART]+pat[stack+C
024800:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024810:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024820:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024830:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024840:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024850:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024860:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024870:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024880:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024890:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0248A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0248B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0248C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0248D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0248E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0248F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0249A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0249B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0249C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0249D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0249E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0249F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
024A00:  4F 55 4E 54 5D 3B 0D 0A 20 20 20 20 20 20 7D 0D    OUNT];..      }.
024A10:  0A 20 20 20 20 6A 3D 6A 2B 70 61 74 73 69 7A 28    .    j=j+patsiz(
024A20:  70 61 74 2C 20 6A 29 3B 0D 0A 20 20 20 20 7D 0D    pat, j);..    }.
024A30:  0A 20 20 72 65 74 75 72 6E 20 6F 66 66 73 65 74    .  return offset
024A40:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A    ;..  }..../*..**
024A50:  20 64 6F 64 61 73 68 20 2D 2D 20 65 78 70 61 6E     dodash -- expan
024A60:  64 20 61 72 72 61 79 5B 69 2D 31 5D 20 2D 20 61    d array[i-1] - a
024A70:  72 72 61 79 5B 69 2B 31 5D 20 69 6E 74 6F 20 73    rray[i+1] into s
024A80:  65 74 5B 6A 5D 2E 2E 2E 0D 0A 2A 2F 0D 0A 64 6F    et[j].....*/..do
024A90:  64 61 73 68 28 76 61 6C 69 64 2C 20 61 72 72 61    dash(valid, arra
024AA0:  79 2C 20 69 2C 20 73 65 74 2C 20 6A 2C 20 6D 61    y, i, set, j, ma
024AB0:  78 73 65 74 29 0D 0A 20 20 63 68 61 72 20 76 61    xset)..  char va
024AC0:  6C 69 64 5B 5D 2C 20 73 65 74 5B 5D 2C 20 61 72    lid[], set[], ar
024AD0:  72 61 79 5B 5D 3B 20 69 6E 74 20 2A 69 2C 20 2A    ray[]; int *i, *
024AE0:  6A 2C 20 6D 61 78 73 65 74 3B 20 7B 0D 0A 20 20    j, maxset; {..  
024AF0:  69 6E 74 20 6B 2C 20 6C 69 6D 69 74 3B 0D 0A 20    int k, limit;.. 
024B00:  20 2A 69 20 3D 20 31 20 2B 20 2A 69 3B 0D 0A 20     *i = 1 + *i;.. 
024B10:  20 2A 6A 20 3D 20 2D 31 20 2B 20 2A 6A 3B 0D 0A     *j = -1 + *j;..
024B20:  20 20 6C 69 6D 69 74 3D 69 6E 64 65 78 28 76 61      limit=index(va
024B30:  6C 69 64 2C 20 65 73 63 28 61 72 72 61 79 2C 20    lid, esc(array, 
024B40:  69 29 29 3B 0D 0A 20 20 6B 3D 69 6E 64 65 78 28    i));..  k=index(
024B50:  76 61 6C 69 64 2C 20 73 65 74 5B 2A 6A 5D 29 3B    valid, set[*j]);
024B60:  0D 0A 20 20 77 68 69 6C 65 28 6B 20 3C 3D 20 6C    ..  while(k <= l
024B70:  69 6D 69 74 29 0D 0A 20 20 20 20 61 64 64 73 65    imit)..    addse
024B80:  74 28 76 61 6C 69 64 5B 6B 2B 2B 5D 2C 20 73 65    t(valid[k++], se
024B90:  74 2C 20 6A 2C 20 6D 61 78 73 65 74 29 3B 0D 0A    t, j, maxset);..
024BA0:  20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 65 73      }..../*..** es
024BB0:  63 20 2D 2D 20 6D 61 70 20 61 72 72 61 79 5B 69    c -- map array[i
024BC0:  5D 20 69 6E 74 6F 20 65 73 63 61 70 65 64 20 63    ] into escaped c
024BD0:  68 61 72 20 69 66 20 61 70 70 72 6F 70 72 69 61    har if appropria
024BE0:  74 65 0D 0A 2A 2F 0D 0A 65 73 63 28 61 72 72 61    te..*/..esc(arra
024BF0:  79 2C 20 69 29 20 63 68 61 72 20 61 72 72 61 79    y, i) char array
024C00:  0D 0A 2F 2A 0D 0A 2A 2A 20 70 61 67 65 2E 63 20    ../*..** page.c 
024C10:  2D 2D 20 74 65 6C 6C 20 73 74 64 65 72 72 20 6F    -- tell stderr o
024C20:  66 20 6E 65 77 20 70 61 67 65 20 61 6E 64 20 70    f new page and p
024C30:  6F 73 73 69 62 6C 79 20 70 61 75 73 65 0D 0A 2A    ossibly pause..*
024C40:  2F 0D 0A 70 61 67 65 28 70 61 67 65 6E 6F 2C 20    /..page(pageno, 
024C50:  70 61 75 73 65 2C 20 66 64 29 20 69 6E 74 20 70    pause, fd) int p
024C60:  61 67 65 6E 6F 2C 20 70 61 75 73 65 2C 20 66 64    ageno, pause, fd
024C70:  3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D 0A 20    ; {..  int i;.. 
024C80:  20 63 68 61 72 20 73 74 72 5B 36 5D 3B 0D 0A 20     char str[6];.. 
024C90:  20 73 74 72 5B 35 5D 3D 4E 55 4C 4C 3B 0D 0A 20     str[5]=NULL;.. 
024CA0:  20 69 74 6F 64 28 70 61 67 65 6E 6F 2C 20 73 74     itod(pageno, st
024CB0:  72 2C 20 35 29 3B 0D 0A 20 20 69 3D 30 3B 0D 0A    r, 5);..  i=0;..
024CC0:  20 20 77 68 69 6C 65 28 73 74 72 5B 69 5D 3D 3D      while(str[i]==
024CD0:  27 20 27 29 20 2B 2B 69 3B 0D 0A 20 20 69 66 28    ' ') ++i;..  if(
024CE0:  28 70 61 75 73 65 3D 3D 59 45 53 29 26 26 28 70    (pause==YES)&&(p
024CF0:  61 67 65 6E 6F 3E 31 29 26 26 69 73 61 74 74 79    ageno>1)&&isatty
024D00:  28 66 64 29 29 20 7B 0D 0A 20 20 20 20 66 70 75    (fd)) {..    fpu
024D10:  74 73 28 22 5C 37 73 65 74 20 70 61 67 65 20 22    ts("\7set page "
024D20:  2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20    , stderr);..    
024D30:  66 70 75 74 73 28 73 74 72 2B 69 2C 20 73 74 64    fputs(str+i, std
024D40:  65 72 72 29 3B 0D 0A 20 20 20 20 66 70 75 74 73    err);..    fputs
024D50:  28 22 2E 2E 2E 20 22 2C 20 73 74 64 65 72 72 29    ("... ", stderr)
024D60:  3B 0D 0A 20 20 20 20 72 65 74 75 72 6E 20 66 67    ;..    return fg
024D70:  65 74 63 28 73 74 64 65 72 72 29 3B 0D 0A 20 20    etc(stderr);..  
024D80:  20 20 7D 0D 0A 20 20 65 6C 73 65 20 7B 0D 0A 20      }..  else {.. 
024D90:  20 20 20 66 70 75 74 73 28 22 70 61 67 65 20 22       fputs("page "
024DA0:  2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20    , stderr);..    
024DB0:  66 70 75 74 73 28 73 74 72 2B 69 2C 20 73 74 64    fputs(str+i, std
024DC0:  65 72 72 29 3B 0D 0A 20 20 20 20 66 70 75 74 63    err);..    fputc
024DD0:  28 27 5C 6E 27 2C 20 73 74 64 65 72 72 29 3B 0D    ('\n', stderr);.
024DE0:  0A 20 20 20 20 72 65 74 75 72 6E 20 4E 55 4C 4C    .    return NULL
024DF0:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 1A    ;..    }..  }...
024E00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
024E10:  1F 00 01 00 02 09 52 E5 1F 00 41 02 00 00 00 02    ......R...A.....
024E20:  1F 00 46 02 00 00 00 02 1F 00 42 02 00 00 00 02    ..F.......B.....
024E30:  1F 00 47 02 00 00 00 02 1F 00 43 02 00 00 00 02    ..G.......C.....
024E40:  1F 00 48 02 00 00 00 02 1F 00 44 02 00 00 00 02    ..H.......D.....
024E50:  1F 00 49 02 00 00 00 02 1F 00 45 02 00 00 00 02    ..I.......E.....
024E60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024E70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024E80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024E90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024ED0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024EF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
024F00:  5B 5D 3B 20 69 6E 74 20 2A 69 3B 20 7B 0D 0A 20    []; int *i; {.. 
024F10:  20 69 66 28 61 72 72 61 79 5B 2A 69 5D 21 3D 45     if(array[*i]!=E
024F20:  53 43 41 50 45 29 20 72 65 74 75 72 6E 20 61 72    SCAPE) return ar
024F30:  72 61 79 5B 2A 69 5D 3B 0D 0A 20 20 65 6C 73 65    ray[*i];..  else
024F40:  20 69 66 28 61 72 72 61 79 5B 20 2A 69 20 2B 20     if(array[ *i + 
024F50:  31 5D 3D 3D 4E 55 4C 4C 29 20 20 20 20 2F 2A 20    1]==NULL)    /* 
024F60:  65 73 63 20 6E 6F 74 20 73 70 65 63 69 61 6C 20    esc not special 
024F70:  61 74 20 65 6E 64 20 2A 2F 0D 0A 20 20 20 20 72    at end */..    r
024F80:  65 74 75 72 6E 20 45 53 43 41 50 45 3B 0D 0A 20    eturn ESCAPE;.. 
024F90:  20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 2A 69 3D     else {..    *i=
024FA0:  20 2A 69 20 2B 20 31 3B 0D 0A 20 20 20 20 69 66     *i + 1;..    if
024FB0:  28 61 72 72 61 79 5B 2A 69 5D 3D 3D 27 6E 27 29    (array[*i]=='n')
024FC0:  20 72 65 74 75 72 6E 20 27 5C 6E 27 3B 0D 0A 20     return '\n';.. 
024FD0:  20 20 20 65 6C 73 65 20 69 66 28 61 72 72 61 79       else if(array
024FE0:  5B 2A 69 5D 3D 3D 27 74 27 29 20 72 65 74 75 72    [*i]=='t') retur
024FF0:  6E 20 27 5C 74 27 3B 0D 0A 20 20 20 20 65 6C 73    n '\t';..    els
025000:  65 20 69 66 28 61 72 72 61 79 5B 2A 69 5D 3D 3D    e if(array[*i]==
025010:  27 62 27 29 20 72 65 74 75 72 6E 20 27 5C 62 27    'b') return '\b'
025020:  3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 61    ;..    else if(a
025030:  72 72 61 79 5B 2A 69 5D 3D 3D 27 73 27 29 20 72    rray[*i]=='s') r
025040:  65 74 75 72 6E 20 27 20 27 3B 0D 0A 20 20 20 20    eturn ' ';..    
025050:  65 6C 73 65 20 72 65 74 75 72 6E 20 61 72 72 61    else return arra
025060:  79 5B 2A 69 5D 3B 0D 0A 20 20 20 20 7D 0D 0A 20    y[*i];..    }.. 
025070:  20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 66 69 6C     }..../*..** fil
025080:  73 65 74 20 2D 2D 20 65 78 70 61 6E 64 20 73 65    set -- expand se
025090:  74 20 69 6E 20 61 72 72 61 79 20 69 6E 74 6F 20    t in array into 
0250A0:  73 65 74 20 73 74 6F 70 70 69 6E 67 20 61 74 20    set stopping at 
0250B0:  64 65 6C 69 6D 0D 0A 2A 2F 0D 0A 66 69 6C 73 65    delim..*/..filse
0250C0:  74 28 64 65 6C 69 6D 2C 20 61 72 72 61 79 2C 20    t(delim, array, 
0250D0:  69 2C 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65    i, set, j, maxse
0250E0:  74 29 0D 0A 20 20 63 68 61 72 20 64 65 6C 69 6D    t)..  char delim
0250F0:  2C 20 61 72 72 61 79 5B 5D 2C 20 73 65 74 5B 5D    , array[], set[]
025100:  20 61 64 64 73 65 74 28 45 4F 4C 2C 20 70 61 74     addset(EOL, pat
025110:  2C 20 26 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A    , &j, MAXPAT);..
025120:  20 20 20 20 65 6C 73 65 20 69 66 28 61 72 67 5B        else if(arg[
025130:  69 5D 3D 3D 43 43 4C 29 20 7B 0D 0A 20 20 20 20    i]==CCL) {..    
025140:  20 20 69 66 28 67 65 74 63 63 6C 28 61 72 67 2C      if(getccl(arg,
025150:  20 26 69 2C 20 70 61 74 2C 20 26 6A 29 3D 3D 45     &i, pat, &j)==E
025160:  52 52 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20    RR) break;..    
025170:  20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66      }..    else if
025180:  28 28 61 72 67 5B 69 5D 3D 3D 43 4C 4F 53 55 52    ((arg[i]==CLOSUR
025190:  45 29 26 28 69 3E 66 72 6F 6D 29 29 20 7B 0D 0A    E)&(i>from)) {..
0251A0:  20 20 20 20 20 20 6C 6A 3D 6C 61 73 74 6A 3B 0D          lj=lastj;.
0251B0:  0A 20 20 20 20 20 20 69 66 28 28 70 61 74 5B 6C    .      if((pat[l
0251C0:  6A 5D 3D 3D 42 4F 4C 29 7C 28 70 61 74 5B 6C 6A    j]==BOL)|(pat[lj
0251D0:  5D 3D 3D 45 4F 4C 29 7C 28 70 61 74 5B 6C 6A 5D    ]==EOL)|(pat[lj]
0251E0:  3D 3D 43 4C 4F 53 55 52 45 29 29 20 62 72 65 61    ==CLOSURE)) brea
0251F0:  6B 3B 0D 0A 20 20 20 20 20 20 6C 61 73 74 63 6C    k;..      lastcl
025200:  3D 73 74 63 6C 6F 73 28 70 61 74 2C 20 26 6A 2C    =stclos(pat, &j,
025210:  20 26 6C 61 73 74 6A 2C 20 6C 61 73 74 63 6C 29     &lastj, lastcl)
025220:  3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    ;..      }..    
025230:  65 6C 73 65 20 7B 0D 0A 20 20 20 20 20 20 61 64    else {..      ad
025240:  64 73 65 74 28 43 48 41 52 2C 20 70 61 74 2C 20    dset(CHAR, pat, 
025250:  26 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A 20 20    &j, MAXPAT);..  
025260:  20 20 20 20 61 64 64 73 65 74 28 65 73 63 28 61        addset(esc(a
025270:  72 67 2C 20 26 69 29 2C 20 70 61 74 2C 20 26 6A    rg, &i), pat, &j
025280:  2C 20 4D 41 58 50 41 54 29 3B 0D 0A 20 20 20 20    , MAXPAT);..    
025290:  20 20 7D 0D 0A 20 20 20 20 6C 61 73 74 6A 3D 6C      }..    lastj=l
0252A0:  6A 3B 0D 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20    j;..    ++i;..  
0252B0:  20 20 7D 0D 0A 20 20 69 66 28 28 61 72 67 5B 69      }..  if((arg[i
0252C0:  5D 21 3D 64 65 6C 69 6D 29 7C 28 61 64 64 73 65    ]!=delim)|(addse
0252D0:  74 28 4E 55 4C 4C 2C 20 70 61 74 2C 20 26 6A 2C    t(NULL, pat, &j,
0252E0:  20 4D 41 58 50 41 54 29 3D 3D 4E 4F 29 29 20 72     MAXPAT)==NO)) r
0252F0:  65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 72 65    eturn ERR;..  re
025300:  3B 20 69 6E 74 20 2A 69 2C 20 2A 6A 2C 20 6D 61    ; int *i, *j, ma
025310:  78 73 65 74 3B 20 7B 0D 0A 20 20 63 68 61 72 20    xset; {..  char 
025320:  2A 64 69 67 69 74 73 2C 20 2A 6C 6F 77 61 6C 66    *digits, *lowalf
025330:  2C 20 2A 75 70 61 6C 66 3B 0D 0A 20 20 64 69 67    , *upalf;..  dig
025340:  69 74 73 3D 22 30 31 32 33 34 35 36 37 38 39 22    its="0123456789"
025350:  3B 0D 0A 20 20 6C 6F 77 61 6C 66 3D 22 61 62 63    ;..  lowalf="abc
025360:  64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73    defghijklmnopqrs
025370:  74 75 76 77 78 79 7A 22 3B 0D 0A 20 20 75 70 61    tuvwxyz";..  upa
025380:  6C 66 3D 22 41 42 43 44 45 46 47 48 49 4A 4B 4C    lf="ABCDEFGHIJKL
025390:  4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 22 3B    MNOPQRSTUVWXYZ";
0253A0:  0D 0A 20 20 77 68 69 6C 65 28 28 61 72 72 61 79    ..  while((array
0253B0:  5B 2A 69 5D 21 3D 64 65 6C 69 6D 29 26 28 61 72    [*i]!=delim)&(ar
0253C0:  72 61 79 5B 2A 69 5D 21 3D 4E 55 4C 4C 29 29 20    ray[*i]!=NULL)) 
0253D0:  7B 0D 0A 20 20 20 20 69 66 28 61 72 72 61 79 5B    {..    if(array[
0253E0:  2A 69 5D 3D 3D 45 53 43 41 50 45 29 0D 0A 20 20    *i]==ESCAPE)..  
0253F0:  20 20 20 20 61 64 64 73 65 74 28 65 73 63 28 61        addset(esc(a
025400:  72 72 61 79 2C 20 69 29 2C 20 73 65 74 2C 20 6A    rray, i), set, j
025410:  2C 20 6D 61 78 73 65 74 29 3B 0D 0A 20 20 20 20    , maxset);..    
025420:  65 6C 73 65 20 69 66 28 61 72 72 61 79 5B 2A 69    else if(array[*i
025430:  5D 21 3D 27 2D 27 29 0D 0A 20 20 20 20 20 20 61    ]!='-')..      a
025440:  64 64 73 65 74 28 61 72 72 61 79 5B 2A 69 5D 2C    ddset(array[*i],
025450:  20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 74 29     set, j, maxset)
025460:  3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 28    ;..    else if((
025470:  6A 20 3C 3D 20 30 29 7C 28 61 72 72 61 79 5B 2A    j <= 0)|(array[*
025480:  69 2B 31 5D 3D 3D 4E 55 4C 4C 29 29 20 20 20 20    i+1]==NULL))    
025490:  2F 2A 20 6C 69 74 65 72 61 6C 20 2D 20 2A 2F 0D    /* literal - */.
0254A0:  0A 20 20 20 20 20 20 61 64 64 73 65 74 28 27 2D    .      addset('-
0254B0:  27 2C 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65    ', set, j, maxse
0254C0:  74 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66    t);..    else if
0254D0:  28 69 6E 64 65 78 28 64 69 67 69 74 73 2C 20 73    (index(digits, s
0254E0:  65 74 5B 2A 6A 20 2D 31 5D 29 20 3E 20 2D 31 29    et[*j -1]) > -1)
0254F0:  0D 0A 20 20 20 20 20 20 64 6F 64 61 73 68 28 64    ..      dodash(d
025500:  74 75 72 6E 20 69 3B 0D 0A 20 20 7D 0D 0A 0D 0A    turn i;..  }....
025510:  2F 2A 0D 0A 2A 2A 20 6D 61 74 63 68 20 2D 2D 20    /*..** match -- 
025520:  66 69 6E 64 20 6D 61 74 63 68 20 61 6E 79 77 68    find match anywh
025530:  65 72 65 20 69 6E 20 6C 69 6E 65 0D 0A 2A 2F 0D    ere in line..*/.
025540:  0A 6D 61 74 63 68 28 6C 69 6E 65 2C 20 70 61 74    .match(line, pat
025550:  74 65 72 6E 29 20 63 68 61 72 20 6C 69 6E 65 5B    tern) char line[
025560:  5D 2C 20 70 61 74 74 65 72 6E 5B 5D 3B 20 7B 0D    ], pattern[]; {.
025570:  0A 20 20 69 6E 74 20 69 3B 0D 0A 20 20 69 3D 30    .  int i;..  i=0
025580:  3B 0D 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20    ;..  while(YES) 
025590:  7B 0D 0A 20 20 20 20 69 66 28 61 6D 61 74 63 68    {..    if(amatch
0255A0:  28 6C 69 6E 65 2C 20 69 2C 20 70 61 74 74 65 72    (line, i, patter
0255B0:  6E 29 20 3E 3D 20 30 29 20 72 65 74 75 72 6E 20    n) >= 0) return 
0255C0:  59 45 53 3B 0D 0A 20 20 20 20 69 66 28 6C 69 6E    YES;..    if(lin
0255D0:  65 5B 69 2B 2B 5D 3D 3D 4E 55 4C 4C 29 20 72 65    e[i++]==NULL) re
0255E0:  74 75 72 6E 20 4E 4F 3B 0D 0A 20 20 20 20 7D 0D    turn NO;..    }.
0255F0:  0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6F    .  }..../*..** o
025600:  6D 61 74 63 68 20 2D 2D 20 74 72 79 20 74 6F 20    match -- try to 
025610:  6D 61 74 63 68 20 61 20 73 69 6E 67 6C 65 20 70    match a single p
025620:  61 74 74 65 72 6E 20 61 74 20 70 61 74 5B 6A 5D    attern at pat[j]
025630:  0D 0A 2A 2F 0D 0A 6F 6D 61 74 63 68 28 6C 69 6E    ..*/..omatch(lin
025640:  2C 20 69 2C 20 70 61 74 2C 20 6A 29 20 63 68 61    , i, pat, j) cha
025650:  72 20 6C 69 6E 5B 5D 2C 20 70 61 74 5B 5D 3B 20    r lin[], pat[]; 
025660:  69 6E 74 20 2A 69 2C 20 6A 3B 20 7B 0D 0A 20 20    int *i, j; {..  
025670:  69 6E 74 20 62 75 6D 70 3B 0D 0A 20 20 62 75 6D    int bump;..  bum
025680:  70 20 3D 20 2D 31 3B 0D 0A 20 20 69 66 28 70 61    p = -1;..  if(pa
025690:  74 5B 6A 5D 3D 3D 42 4F 4C 29 20 7B 0D 0A 20 20    t[j]==BOL) {..  
0256A0:  20 20 69 66 28 2A 69 3D 3D 30 29 20 62 75 6D 70      if(*i==0) bump
0256B0:  3D 30 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 6C    =0;..    }..  el
0256C0:  73 65 20 69 66 28 70 61 74 5B 6A 5D 3D 3D 45 4F    se if(pat[j]==EO
0256D0:  4C 29 20 7B 0D 0A 20 20 20 20 69 66 28 6C 69 6E    L) {..    if(lin
0256E0:  5B 2A 69 5D 3D 3D 4E 55 4C 4C 29 20 62 75 6D 70    [*i]==NULL) bump
0256F0:  3D 30 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 6C    =0;..    }..  el
025700:  69 67 69 74 73 2C 20 61 72 72 61 79 2C 20 69 2C    igits, array, i,
025710:  20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 74 29     set, j, maxset)
025720:  3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 69    ;..    else if(i
025730:  6E 64 65 78 28 6C 6F 77 61 6C 66 2C 20 73 65 74    ndex(lowalf, set
025740:  5B 2A 6A 20 2D 31 5D 29 20 3E 20 2D 31 29 0D 0A    [*j -1]) > -1)..
025750:  20 20 20 20 20 20 64 6F 64 61 73 68 28 6C 6F 77          dodash(low
025760:  61 6C 66 2C 20 61 72 72 61 79 2C 20 69 2C 20 73    alf, array, i, s
025770:  65 74 2C 20 6A 2C 20 6D 61 78 73 65 74 29 3B 0D    et, j, maxset);.
025780:  0A 20 20 20 20 65 6C 73 65 20 69 66 28 69 6E 64    .    else if(ind
025790:  65 78 28 75 70 61 6C 66 2C 20 73 65 74 5B 2A 6A    ex(upalf, set[*j
0257A0:  20 2D 31 5D 29 20 3E 20 2D 31 29 0D 0A 20 20 20     -1]) > -1)..   
0257B0:  20 20 20 64 6F 64 61 73 68 28 75 70 61 6C 66 2C       dodash(upalf,
0257C0:  20 61 72 72 61 79 2C 20 69 2C 20 73 65 74 2C 20     array, i, set, 
0257D0:  6A 2C 20 6D 61 78 73 65 74 29 3B 0D 0A 20 20 20    j, maxset);..   
0257E0:  20 65 6C 73 65 20 61 64 64 73 65 74 28 27 2D 27     else addset('-'
0257F0:  2C 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 74    , set, j, maxset
025800:  29 3B 0D 0A 20 20 20 20 2A 69 20 3D 20 2A 69 20    );..    *i = *i 
025810:  2B 20 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D    + 1;..    }..  }
025820:  0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 63 63    ..../*..** getcc
025830:  6C 20 2D 2D 20 65 78 70 61 6E 64 20 63 68 61 72    l -- expand char
025840:  20 63 6C 61 73 73 20 61 74 20 61 72 67 5B 69 5D     class at arg[i]
025850:  20 69 6E 74 6F 20 70 61 74 5B 6A 5D 0D 0A 2A 2F     into pat[j]..*/
025860:  0D 0A 67 65 74 63 63 6C 28 61 72 67 2C 20 69 2C    ..getccl(arg, i,
025870:  20 70 61 74 2C 20 6A 29 20 63 68 61 72 20 61 72     pat, j) char ar
025880:  67 5B 5D 2C 20 70 61 74 5B 5D 3B 20 69 6E 74 20    g[], pat[]; int 
025890:  2A 69 2C 20 2A 6A 3B 20 7B 0D 0A 20 20 69 6E 74    *i, *j; {..  int
0258A0:  20 6A 73 74 61 72 74 3B 0D 0A 20 20 2A 69 20 3D     jstart;..  *i =
0258B0:  20 2A 69 20 2B 20 31 3B 20 20 2F 2A 2A 2A 2A 20     *i + 1;  /**** 
0258C0:  73 6B 69 70 20 6F 76 65 72 20 27 5B 27 20 69 6E    skip over '[' in
0258D0:  20 61 72 67 20 2A 2A 2A 2A 2F 0D 0A 20 20 69 66     arg ****/..  if
0258E0:  28 61 72 67 5B 2A 69 5D 3D 3D 4E 4F 54 29 20 7B    (arg[*i]==NOT) {
0258F0:  0D 0A 20 20 20 20 61 64 64 73 65 74 28 4E 43 43    ..    addset(NCC
025900:  73 65 20 69 66 28 6C 69 6E 5B 2A 69 5D 3D 3D 4E    se if(lin[*i]==N
025910:  55 4C 4C 29 20 72 65 74 75 72 6E 20 4E 4F 3B 0D    ULL) return NO;.
025920:  0A 20 20 65 6C 73 65 20 69 66 28 70 61 74 5B 6A    .  else if(pat[j
025930:  5D 3D 3D 43 48 41 52 29 20 7B 0D 0A 20 20 20 20    ]==CHAR) {..    
025940:  69 66 28 6C 69 6E 5B 2A 69 5D 3D 3D 70 61 74 5B    if(lin[*i]==pat[
025950:  6A 2B 31 5D 29 20 62 75 6D 70 3D 31 3B 0D 0A 20    j+1]) bump=1;.. 
025960:  20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 69 66 28       }..  else if(
025970:  70 61 74 5B 6A 5D 3D 3D 41 4E 59 29 20 62 75 6D    pat[j]==ANY) bum
025980:  70 3D 31 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28    p=1;..  else if(
025990:  70 61 74 5B 6A 5D 3D 3D 43 43 4C 29 20 7B 0D 0A    pat[j]==CCL) {..
0259A0:  20 20 20 20 69 66 28 6C 6F 63 61 74 65 28 6C 69        if(locate(li
0259B0:  6E 5B 2A 69 5D 2C 20 70 61 74 2C 20 6A 2B 31 29    n[*i], pat, j+1)
0259C0:  3D 3D 59 45 53 29 20 62 75 6D 70 3D 31 3B 0D 0A    ==YES) bump=1;..
0259D0:  20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 69 66        }..  else if
0259E0:  28 70 61 74 5B 6A 5D 3D 3D 4E 43 43 4C 29 20 7B    (pat[j]==NCCL) {
0259F0:  0D 0A 20 20 20 20 69 66 28 6C 6F 63 61 74 65 28    ..    if(locate(
025A00:  6C 69 6E 5B 2A 69 5D 2C 20 70 61 74 2C 20 6A 2B    lin[*i], pat, j+
025A10:  31 29 3D 3D 4E 4F 29 20 62 75 6D 70 3D 31 3B 0D    1)==NO) bump=1;.
025A20:  0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 65    .    }..  else e
025A30:  72 72 6F 72 28 22 69 6E 20 6F 6D 61 74 63 68 3A    rror("in omatch:
025A40:  20 63 61 6E 27 74 20 68 61 70 70 65 6E 5C 6E 22     can't happen\n"
025A50:  29 3B 0D 0A 20 20 69 66 28 62 75 6D 70 20 3E 3D    );..  if(bump >=
025A60:  20 30 29 20 7B 0D 0A 20 20 20 20 2A 69 20 3D 20     0) {..    *i = 
025A70:  2A 69 20 2B 20 62 75 6D 70 3B 0D 0A 20 20 20 20    *i + bump;..    
025A80:  72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20    return YES;..   
025A90:  20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 4E 4F 3B     }..  return NO;
025AA0:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
025AB0:  70 61 74 73 69 7A 20 2D 2D 20 72 65 74 75 72 6E    patsiz -- return
025AC0:  73 20 73 69 7A 65 20 6F 66 20 65 6E 74 72 79 20    s size of entry 
025AD0:  61 74 20 70 61 74 5B 6E 5D 0D 0A 2A 2F 0D 0A 70    at pat[n]..*/..p
025AE0:  61 74 73 69 7A 28 70 61 74 2C 20 6E 29 20 63 68    atsiz(pat, n) ch
025AF0:  61 72 20 2A 70 61 74 3B 20 69 6E 74 20 6E 3B 20    ar *pat; int n; 
025B00:  4C 2C 20 70 61 74 2C 20 6A 2C 20 4D 41 58 50 41    L, pat, j, MAXPA
025B10:  54 29 3B 0D 0A 20 20 20 20 2A 69 20 3D 20 2A 69    T);..    *i = *i
025B20:  20 2B 20 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20     + 1;..    }..  
025B30:  65 6C 73 65 20 61 64 64 73 65 74 28 43 43 4C 2C    else addset(CCL,
025B40:  20 70 61 74 2C 20 6A 2C 20 4D 41 58 50 41 54 29     pat, j, MAXPAT)
025B50:  3B 0D 0A 20 20 6A 73 74 61 72 74 20 3D 20 2A 6A    ;..  jstart = *j
025B60:  3B 0D 0A 20 20 61 64 64 73 65 74 28 30 2C 20 70    ;..  addset(0, p
025B70:  61 74 2C 20 6A 2C 20 4D 41 58 50 41 54 29 3B 20    at, j, MAXPAT); 
025B80:  20 2F 2A 2A 2A 2A 20 6C 65 61 76 65 20 72 6F 6F     /**** leave roo
025B90:  6D 20 66 6F 72 20 63 6F 75 6E 74 20 2A 2A 2A 2A    m for count ****
025BA0:  2F 0D 0A 20 20 66 69 6C 73 65 74 28 43 43 4C 45    /..  filset(CCLE
025BB0:  4E 44 2C 20 61 72 67 2C 20 69 2C 20 70 61 74 2C    ND, arg, i, pat,
025BC0:  20 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A 20 20     j, MAXPAT);..  
025BD0:  70 61 74 5B 6A 73 74 61 72 74 5D 20 3D 20 2A 6A    pat[jstart] = *j
025BE0:  20 2D 20 6A 73 74 61 72 74 20 2D 20 31 3B 0D 0A     - jstart - 1;..
025BF0:  20 20 69 66 28 61 72 67 5B 2A 69 5D 3D 3D 43 43      if(arg[*i]==CC
025C00:  4C 45 4E 44 29 20 72 65 74 75 72 6E 20 59 45 53    LEND) return YES
025C10:  3B 0D 0A 20 20 72 65 74 75 72 6E 20 45 52 52 3B    ;..  return ERR;
025C20:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
025C30:  6C 6F 63 61 74 65 20 2D 2D 20 6C 6F 6F 6B 20 66    locate -- look f
025C40:  6F 72 20 63 20 69 6E 20 63 68 61 72 20 63 6C 61    or c in char cla
025C50:  73 73 20 61 74 20 70 61 74 5B 6F 66 66 73 65 74    ss at pat[offset
025C60:  5D 0D 0A 2A 2F 0D 0A 6C 6F 63 61 74 65 28 63 2C    ]..*/..locate(c,
025C70:  20 70 61 74 2C 20 6F 66 66 73 65 74 29 20 63 68     pat, offset) ch
025C80:  61 72 20 63 2C 20 70 61 74 5B 5D 3B 20 69 6E 74    ar c, pat[]; int
025C90:  20 6F 66 66 73 65 74 3B 20 7B 0D 0A 20 20 69 6E     offset; {..  in
025CA0:  74 20 69 3B 0D 0A 20 20 2F 2A 0D 0A 20 20 2A 2A    t i;..  /*..  **
025CB0:  20 73 69 7A 65 20 6F 66 20 63 6C 61 73 73 20 69     size of class i
025CC0:  73 20 61 74 20 70 61 74 5B 6F 66 66 73 65 74 5D    s at pat[offset]
025CD0:  2C 20 63 68 61 72 61 63 74 65 72 73 20 66 6F 6C    , characters fol
025CE0:  6C 6F 77 0D 0A 20 20 2A 2F 0D 0A 20 20 69 3D 6F    low..  */..  i=o
025CF0:  66 66 73 65 74 2B 70 61 74 5B 6F 66 66 73 65 74    ffset+pat[offset
025D00:  7B 0D 0A 20 20 70 61 74 3D 70 61 74 2B 6E 3B 0D    {..  pat=pat+n;.
025D10:  0A 20 20 69 66 28 2A 70 61 74 3D 3D 43 48 41 52    .  if(*pat==CHAR
025D20:  29 20 72 65 74 75 72 6E 20 32 3B 0D 0A 20 20 65    ) return 2;..  e
025D30:  6C 73 65 20 69 66 28 28 2A 70 61 74 3D 3D 42 4F    lse if((*pat==BO
025D40:  4C 29 7C 28 2A 70 61 74 3D 3D 45 4F 4C 29 7C 28    L)|(*pat==EOL)|(
025D50:  2A 70 61 74 3D 3D 41 4E 59 29 29 20 72 65 74 75    *pat==ANY)) retu
025D60:  72 6E 20 31 3B 0D 0A 20 20 65 6C 73 65 20 69 66    rn 1;..  else if
025D70:  28 28 2A 70 61 74 3D 3D 43 43 4C 29 7C 28 2A 70    ((*pat==CCL)|(*p
025D80:  61 74 3D 3D 4E 43 43 4C 29 29 20 72 65 74 75 72    at==NCCL)) retur
025D90:  6E 20 28 2A 28 2B 2B 70 61 74 29 2B 32 29 3B 0D    n (*(++pat)+2);.
025DA0:  0A 20 20 65 6C 73 65 20 69 66 28 2A 70 61 74 3D    .  else if(*pat=
025DB0:  3D 43 4C 4F 53 55 52 45 29 20 72 65 74 75 72 6E    =CLOSURE) return
025DC0:  20 43 4C 4F 53 49 5A 45 3B 0D 0A 20 20 65 6C 73     CLOSIZE;..  els
025DD0:  65 20 65 72 72 6F 72 28 22 69 6E 20 70 61 74 73    e error("in pats
025DE0:  69 7A 3A 20 63 61 6E 27 74 20 68 61 70 70 65 6E    iz: can't happen
025DF0:  5C 6E 22 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A    \n");..  }..../*
025E00:  0D 0A 2A 2A 20 73 74 63 6C 6F 73 20 2D 2D 20 69    ..** stclos -- i
025E10:  6E 73 65 72 74 20 63 6C 6F 73 75 72 65 20 65 6E    nsert closure en
025E20:  74 72 79 20 61 74 20 70 61 74 5B 6A 5D 0D 0A 2A    try at pat[j]..*
025E30:  2F 0D 0A 73 74 63 6C 6F 73 28 70 61 74 2C 20 6A    /..stclos(pat, j
025E40:  2C 20 6C 61 73 74 6A 2C 20 6C 61 73 74 63 6C 29    , lastj, lastcl)
025E50:  20 63 68 61 72 20 70 61 74 5B 5D 3B 20 69 6E 74     char pat[]; int
025E60:  20 2A 6A 2C 20 2A 6C 61 73 74 6A 2C 20 6C 61 73     *j, *lastj, las
025E70:  74 63 6C 3B 20 7B 0D 0A 20 20 69 6E 74 20 6A 70    tcl; {..  int jp
025E80:  2C 20 6A 74 3B 0D 0A 20 20 6A 70 20 3D 20 2A 6A    , jt;..  jp = *j
025E90:  20 2D 20 31 3B 0D 0A 20 20 77 68 69 6C 65 28 6A     - 1;..  while(j
025EA0:  70 20 3E 3D 20 2A 6C 61 73 74 6A 29 20 7B 20 20    p >= *lastj) {  
025EB0:  20 2F 2A 2A 2A 2A 20 6D 61 6B 65 20 68 6F 6C 65     /**** make hole
025EC0:  20 66 6F 72 20 63 6C 6F 73 75 72 65 20 2A 2A 2A     for closure ***
025ED0:  2A 2F 0D 0A 20 20 20 20 6A 74 20 3D 20 6A 70 20    */..    jt = jp 
025EE0:  2B 20 43 4C 4F 53 49 5A 45 3B 0D 0A 20 20 20 20    + CLOSIZE;..    
025EF0:  61 64 64 73 65 74 28 70 61 74 5B 6A 70 2D 2D 5D    addset(pat[jp--]
025F00:  5D 3B 0D 0A 20 20 77 68 69 6C 65 28 20 69 20 3E    ];..  while( i >
025F10:  20 6F 66 66 73 65 74 29 20 7B 0D 0A 20 20 20 20     offset) {..    
025F20:  69 66 28 63 3D 3D 70 61 74 5B 69 2D 2D 5D 29 20    if(c==pat[i--]) 
025F30:  72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20    return YES;..   
025F40:  20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 4E 4F 3B     }..  return NO;
025F50:  0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20    ..  }..../*..** 
025F60:  6D 61 6B 70 61 74 20 2D 2D 20 6D 61 6B 65 20 70    makpat -- make p
025F70:  61 74 74 65 72 6E 20 66 72 6F 6D 20 61 72 67 5B    attern from arg[
025F80:  66 72 6F 6D 5D 2C 20 65 6E 64 20 61 74 20 64 65    from], end at de
025F90:  6C 69 6D 0D 0A 2A 2F 0D 0A 6D 61 6B 70 61 74 28    lim..*/..makpat(
025FA0:  61 72 67 2C 20 66 72 6F 6D 2C 20 64 65 6C 69 6D    arg, from, delim
025FB0:  2C 20 70 61 74 29 20 63 68 61 72 20 61 72 67 5B    , pat) char arg[
025FC0:  5D 2C 20 64 65 6C 69 6D 2C 20 70 61 74 5B 5D 3B    ], delim, pat[];
025FD0:  20 69 6E 74 20 66 72 6F 6D 3B 20 7B 0D 0A 20 20     int from; {..  
025FE0:  69 6E 74 20 69 2C 20 6A 2C 20 6C 61 73 74 63 6C    int i, j, lastcl
025FF0:  2C 20 6C 61 73 74 6A 2C 20 6C 6A 3B 0D 0A 20 20    , lastj, lj;..  
026000:  6A 3D 6C 61 73 74 6A 3D 30 3B 0D 0A 20 20 6C 61    j=lastj=0;..  la
026010:  73 74 63 6C 20 3D 20 2D 31 3B 0D 0A 20 20 69 3D    stcl = -1;..  i=
026020:  66 72 6F 6D 3B 0D 0A 20 20 77 68 69 6C 65 28 28    from;..  while((
026030:  61 72 67 5B 69 5D 21 3D 64 65 6C 69 6D 29 26 28    arg[i]!=delim)&(
026040:  61 72 67 5B 69 5D 21 3D 4E 55 4C 4C 29 29 20 7B    arg[i]!=NULL)) {
026050:  0D 0A 20 20 20 20 6C 6A 3D 6A 3B 0D 0A 20 20 20    ..    lj=j;..   
026060:  20 69 66 28 61 72 67 5B 69 5D 3D 3D 41 4E 59 29     if(arg[i]==ANY)
026070:  20 61 64 64 73 65 74 28 41 4E 59 2C 20 70 61 74     addset(ANY, pat
026080:  2C 20 26 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A    , &j, MAXPAT);..
026090:  20 20 20 20 65 6C 73 65 20 69 66 28 28 61 72 67        else if((arg
0260A0:  5B 69 5D 3D 3D 42 4F 4C 29 26 28 69 3D 3D 66 72    [i]==BOL)&(i==fr
0260B0:  6F 6D 29 29 20 61 64 64 73 65 74 28 42 4F 4C 2C    om)) addset(BOL,
0260C0:  20 70 61 74 2C 20 26 6A 2C 20 4D 41 58 50 41 54     pat, &j, MAXPAT
0260D0:  29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28    );..    else if(
0260E0:  28 61 72 67 5B 69 5D 3D 3D 45 4F 4C 29 26 28 61    (arg[i]==EOL)&(a
0260F0:  72 67 5B 69 2B 31 5D 3D 3D 64 65 6C 69 6D 29 29    rg[i+1]==delim))
026100:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
026110:  20 00 01 00 02 09 52 E5 20 00 41 02 00 00 00 02     .....R. .A.....
026120:  20 00 46 02 00 00 00 02 20 00 42 02 00 00 00 02     .F..... .B.....
026130:  20 00 47 02 00 00 00 02 20 00 43 02 00 00 00 02     .G..... .C.....
026140:  20 00 48 02 00 00 00 02 20 00 44 02 00 00 00 02     .H..... .D.....
026150:  20 00 49 02 00 00 00 02 20 00 45 02 00 00 00 02     .I..... .E.....
026160:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026170:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026180:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026190:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0261F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026200:  2C 20 70 61 74 2C 20 26 6A 74 2C 20 4D 41 58 50    , pat, &jt, MAXP
026210:  41 54 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 2A    AT);..    }..  *
026220:  6A 20 3D 20 2A 6A 20 2B 20 43 4C 4F 53 49 5A 45    j = *j + CLOSIZE
026230:  3B 0D 0A 20 20 6A 70 20 3D 20 2A 6C 61 73 74 6A    ;..  jp = *lastj
026240:  3B 0D 0A 20 20 61 64 64 73 65 74 28 43 4C 4F 53    ;..  addset(CLOS
026250:  55 52 45 2C 20 70 61 74 2C 20 6C 61 73 74 6A 2C    URE, pat, lastj,
026260:  20 4D 41 58 50 41 54 29 3B 20 20 2F 2A 2A 20 43     MAXPAT);  /** C
026270:  4C 4F 53 55 52 45 20 2A 2A 2F 0D 0A 20 20 61 64    LOSURE **/..  ad
026280:  64 73 65 74 28 30 2C 20 70 61 74 2C 20 6C 61 73    dset(0, pat, las
026290:  74 6A 2C 20 4D 41 58 50 41 54 29 3B 20 20 20 20    tj, MAXPAT);    
0262A0:  20 20 20 20 2F 2A 2A 20 43 4F 55 4E 54 20 2A 2A        /** COUNT **
0262B0:  2F 0D 0A 20 20 61 64 64 73 65 74 28 6C 61 73 74    /..  addset(last
0262C0:  63 6C 2C 20 70 61 74 2C 20 6C 61 73 74 6A 2C 20    cl, pat, lastj, 
0262D0:  4D 41 58 50 41 54 29 3B 20 20 20 2F 2A 2A 20 50    MAXPAT);   /** P
0262E0:  52 45 56 43 4C 20 2A 2A 2F 0D 0A 20 20 61 64 64    REVCL **/..  add
0262F0:  73 65 74 28 30 2C 20 70 61 74 2C 20 6C 61 73 74    set(0, pat, last
026300:  6A 2C 20 4D 41 58 50 41 54 29 3B 20 20 20 20 20    j, MAXPAT);     
026310:  20 20 20 2F 2A 2A 20 53 54 41 52 54 20 2A 2A 2F       /** START **/
026320:  0D 0A 20 20 72 65 74 75 72 6E 20 6A 70 3B 0D 0A    ..  return jp;..
026330:  20 20 7D 0D 0A 1A 1A 00 00 00 00 00 00 00 00 00      }.............
026340:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026350:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0263A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0263B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0263C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0263D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0263E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0263F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
026400:  20 20 20 20 20 75 74 6F 69 28 6E 61 6D 65 2B 33         utoi(name+3
026410:  2C 20 26 62 65 67 69 6E 29 3B 0D 0A 20 20 20 20    , &begin);..    
026420:  20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20      continue;..   
026430:  20 20 20 7D 0D 0A 20 20 20 20 69 66 28 28 73 61       }..    if((sa
026440:  6D 65 28 6E 61 6D 65 5B 31 5D 2C 20 27 65 27 29    me(name[1], 'e')
026450:  29 26 28 73 61 6D 65 28 6E 61 6D 65 5B 32 5D 2C    )&(same(name[2],
026460:  20 27 70 27 29 29 29 20 7B 0D 0A 20 20 20 20 20     'p'))) {..     
026470:  20 75 74 6F 69 28 6E 61 6D 65 2B 33 2C 20 26 65     utoi(name+3, &e
026480:  6E 64 29 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74    nd);..      cont
026490:  69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    inue;..      }..
0264A0:  20 20 20 20 69 66 28 28 73 61 6D 65 28 6E 61 6D        if((same(nam
0264B0:  65 5B 31 5D 2C 20 27 6C 27 29 29 26 28 73 61 6D    e[1], 'l'))&(sam
0264C0:  65 28 6E 61 6D 65 5B 32 5D 2C 20 27 6D 27 29 29    e(name[2], 'm'))
0264D0:  29 20 7B 0D 0A 20 20 20 20 20 20 75 74 6F 69 28    ) {..      utoi(
0264E0:  6E 61 6D 65 2B 33 2C 20 26 6D 61 72 67 69 6E 29    name+3, &margin)
0264F0:  3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75    ;..      continu
026500:  65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    e;..      }..   
026510:  20 69 66 28 28 73 61 6D 65 28 6E 61 6D 65 5B 31     if((same(name[1
026520:  5D 2C 20 27 6E 27 29 29 26 28 73 61 6D 65 28 6E    ], 'n'))&(same(n
026530:  61 6D 65 5B 32 5D 2C 20 27 72 27 29 29 29 20 7B    ame[2], 'r'))) {
026540:  0D 0A 20 20 20 20 20 20 72 65 61 64 79 3D 4E 4F    ..      ready=NO
026550:  3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75    ;..      continu
026560:  65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    e;..      }..   
026570:  20 69 66 28 73 61 6D 65 28 6E 61 6D 65 5B 31 5D     if(same(name[1]
026580:  2C 20 27 70 27 29 29 20 7B 0D 0A 20 20 20 20 20    , 'p')) {..     
026590:  20 70 61 75 73 65 3D 59 45 53 3B 0D 0A 20 20 20     pause=YES;..   
0265A0:  20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20       continue;..  
0265B0:  20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 73 61        }..    if(sa
0265C0:  6D 65 28 6E 61 6D 65 5B 31 5D 2C 20 27 6E 27 29    me(name[1], 'n')
0265D0:  29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73 61    ) {..      if(sa
0265E0:  6D 65 28 6E 61 6D 65 5B 32 5D 2C 20 27 68 27 29    me(name[2], 'h')
0265F0:  29 20 7B 68 65 61 64 69 6E 67 73 3D 4E 4F 3B 20    ) {headings=NO; 
026600:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026610:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026620:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026630:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026640:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026650:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026660:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026670:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026680:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026690:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0266A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0266B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0266C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0266D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0266E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0266F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026700:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026710:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026720:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026730:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026740:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026750:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026760:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026770:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026780:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026790:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0267A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0267B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0267C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0267D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0267E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0267F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
026800:  63 6F 6E 74 69 6E 75 65 3B 7D 0D 0A 20 20 20 20    continue;}..    
026810:  20 20 69 66 28 73 61 6D 65 28 6E 61 6D 65 5B 32      if(same(name[2
026820:  5D 2C 20 27 73 27 29 29 20 7B 20 20 20 73 6B 69    ], 's')) {   ski
026830:  70 73 3D 4E 4F 3B 20 63 6F 6E 74 69 6E 75 65 3B    ps=NO; continue;
026840:  7D 0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65    }..      if(same
026850:  28 6E 61 6D 65 5B 32 5D 2C 20 27 6E 27 29 29 20    (name[2], 'n')) 
026860:  7B 20 6E 75 6D 62 65 72 73 3D 4E 4F 3B 20 63 6F    { numbers=NO; co
026870:  6E 74 69 6E 75 65 3B 7D 0D 0A 20 20 20 20 20 20    ntinue;}..      
026880:  7D 0D 0A 20 20 20 20 66 70 75 74 73 28 22 75 73    }..    fputs("us
026890:  61 67 65 3A 20 50 52 54 20 5B 66 69 6C 65 5D 2E    age: PRT [file].
0268A0:  2E 2E 20 5B 2E 3F 5D 20 5B 2D 4E 4E 5D 20 5B 2D    .. [.?] [-NN] [-
0268B0:  4E 48 7C 2D 4E 53 5D 5C 6E 22 2C 0D 0A 20 20 20    NH|-NS]\n",..   
0268C0:  20 20 20 20 20 20 20 73 74 64 65 72 72 29 3B 0D           stderr);.
0268D0:  0A 20 20 20 20 66 70 75 74 73 28 22 20 20 20 20    .    fputs("    
0268E0:  20 5B 2D 4C 4D 23 5D 20 5B 2D 42 50 23 5D 20 5B     [-LM#] [-BP#] [
0268F0:  2D 45 50 23 5D 20 5B 2D 50 5D 20 5B 2D 4E 52 5D    -EP#] [-P] [-NR]
026900:  5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20    \n", stderr);.. 
026910:  20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20       abort(7);..  
026920:  20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 66 70 72 6E      }..  }....fprn
026930:  74 28 6E 61 6D 65 2C 20 66 69 6E 29 0D 0A 20 20    t(name, fin)..  
026940:  63 68 61 72 20 6E 61 6D 65 5B 5D 3B 20 69 6E 74    char name[]; int
026950:  20 66 69 6E 3B 20 7B 0D 0A 20 20 63 68 61 72 20     fin; {..  char 
026960:  6C 69 6E 65 5B 4D 41 58 4C 49 4E 45 2B 31 5D 2C    line[MAXLINE+1],
026970:  20 77 6F 72 64 5B 4D 41 58 4C 49 4E 45 2B 31 5D     word[MAXLINE+1]
026980:  3B 0D 0A 20 20 69 6E 74 20 74 65 78 74 6C 69 6E    ;..  int textlin
026990:  65 2C 20 66 69 6E 32 2C 20 69 2C 20 74 65 6D 70    e, fin2, i, temp
0269A0:  3B 0D 0A 20 20 74 65 78 74 6C 69 6E 65 3D 30 3B    ;..  textline=0;
0269B0:  0D 0A 20 20 77 68 69 6C 65 28 66 67 65 74 73 28    ..  while(fgets(
0269C0:  6C 69 6E 65 2C 20 4D 41 58 4C 49 4E 45 2B 31 2C    line, MAXLINE+1,
0269D0:  20 66 69 6E 29 21 3D 4E 55 4C 4C 29 20 7B 0D 0A     fin)!=NULL) {..
0269E0:  20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A        poll(YES);..
0269F0:  20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 3D 3D        if((lineno==
026A00:  2F 2A 0D 0A 2A 2A 20 70 72 74 2E 63 20 2D 2D 20    /*..** prt.c -- 
026A10:  70 72 69 6E 74 20 66 69 6C 65 73 20 77 69 74 68    print files with
026A20:  20 6F 70 74 69 6F 6E 61 6C 20 70 61 67 65 20 73     optional page s
026A30:  6B 69 70 73 2C 20 68 65 61 64 69 6E 67 73 2C 0D    kips, headings,.
026A40:  0A 2A 2A 20 20 20 20 20 20 20 20 20 20 61 6E 64    .**          and
026A50:  20 6C 69 6E 65 20 6E 75 6D 62 65 72 73 2E 0D 0A     line numbers...
026A60:  2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74    **..** Copyright
026A70:  20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64     1982 J. E. Hend
026A80:  72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73    rix.  All rights
026A90:  20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A     reserved...*/..
026AA0:  23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E    #include <stdio.
026AB0:  68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 6F    h>..#include "to
026AC0:  6F 6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E 65 20    ols.h"..#define 
026AD0:  4D 41 52 47 49 4E 31 20 30 0D 0A 23 64 65 66 69    MARGIN1 0..#defi
026AE0:  6E 65 20 4D 41 52 47 49 4E 32 20 31 0D 0A 63 68    ne MARGIN2 1..ch
026AF0:  61 72 20 6E 61 6D 65 5B 4D 41 58 46 4E 5D 2C 20    ar name[MAXFN], 
026B00:  69 6E 63 6C 65 78 74 5B 4D 41 58 46 4E 5D 3B 0D    inclext[MAXFN];.
026B10:  0A 69 6E 74 0D 0A 20 20 69 2C 0D 0A 20 20 66 69    .int..  i,..  fi
026B20:  6E 2C 0D 0A 20 20 66 69 6C 65 73 2C 0D 0A 20 20    n,..  files,..  
026B30:  68 65 61 64 69 6E 67 73 2C 0D 0A 20 20 73 6B 69    headings,..  ski
026B40:  70 73 2C 0D 0A 20 20 6E 75 6D 62 65 72 73 2C 0D    ps,..  numbers,.
026B50:  0A 20 20 62 65 67 69 6E 2C 0D 0A 20 20 65 6E 64    .  begin,..  end
026B60:  2C 0D 0A 20 20 72 65 61 64 79 2C 0D 0A 20 20 70    ,..  ready,..  p
026B70:  61 75 73 65 3B 0D 0A 69 6E 74 20 6C 69 6E 65 6E    ause;..int linen
026B80:  6F 2C 20 70 61 67 65 6E 6F 2C 20 6D 61 72 67 69    o, pageno, margi
026B90:  6E 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61    n;..main(argc, a
026BA0:  72 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A    rgv) int argc, *
026BB0:  61 72 67 76 3B 20 7B 0D 0A 20 20 68 65 61 64 69    argv; {..  headi
026BC0:  6E 67 73 3D 73 6B 69 70 73 3D 6E 75 6D 62 65 72    ngs=skips=number
026BD0:  73 3D 59 45 53 3B 0D 0A 20 20 64 6F 61 72 67 73    s=YES;..  doargs
026BE0:  28 61 72 67 63 2C 20 61 72 67 76 29 3B 0D 0A 20    (argc, argv);.. 
026BF0:  20 69 66 28 69 73 63 6F 6E 73 28 73 74 64 6F 75     if(iscons(stdou
026C00:  30 29 26 28 73 6B 69 70 73 29 29 20 7B 0D 0A 20    0)&(skips)) {.. 
026C10:  20 20 20 20 20 69 66 28 2B 2B 70 61 67 65 6E 6F         if(++pageno
026C20:  20 3E 20 65 6E 64 29 20 65 78 69 74 28 30 29 3B     > end) exit(0);
026C30:  0D 0A 20 20 20 20 20 20 69 66 28 70 61 67 65 6E    ..      if(pagen
026C40:  6F 20 3E 3D 20 62 65 67 69 6E 29 20 7B 0D 0A 20    o >= begin) {.. 
026C50:  20 20 20 20 20 20 20 70 61 67 65 28 70 61 67 65           page(page
026C60:  6E 6F 2C 20 70 61 75 73 65 2C 20 73 74 64 6F 75    no, pause, stdou
026C70:  74 29 3B 0D 0A 20 20 20 20 20 20 20 20 73 6B 69    t);..        ski
026C80:  70 28 4D 41 52 47 49 4E 31 29 3B 0D 0A 20 20 20    p(MARGIN1);..   
026C90:  20 20 20 20 20 69 66 28 68 65 61 64 69 6E 67 73         if(headings
026CA0:  29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 74    ) {..          t
026CB0:  65 6D 70 3D 6D 61 72 67 69 6E 3B 0D 0A 20 20 20    emp=margin;..   
026CC0:  20 20 20 20 20 20 20 77 68 69 6C 65 28 74 65 6D           while(tem
026CD0:  70 2D 2D 29 20 70 72 69 6E 74 66 28 22 20 22 2C    p--) printf(" ",
026CE0:  20 30 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 20     0);..          
026CF0:  69 66 28 6E 75 6D 62 65 72 73 29 20 70 72 69 6E    if(numbers) prin
026D00:  74 66 28 22 20 20 20 20 20 20 22 2C 20 30 29 3B    tf("      ", 0);
026D10:  0D 0A 20 20 20 20 20 20 20 20 20 20 70 72 69 6E    ..          prin
026D20:  74 66 28 22 46 69 6C 65 3A 20 25 73 20 20 20 20    tf("File: %s    
026D30:  50 61 67 65 3A 20 25 64 5C 6E 22 2C 20 6E 61 6D    Page: %d\n", nam
026D40:  65 2C 20 70 61 67 65 6E 6F 2C 20 32 29 3B 0D 0A    e, pageno, 2);..
026D50:  20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20              }..   
026D60:  20 20 20 20 20 65 6C 73 65 20 70 72 69 6E 74 66         else printf
026D70:  28 22 5C 6E 22 2C 30 29 3B 0D 0A 20 20 20 20 20    ("\n",0);..     
026D80:  20 20 20 2B 2B 6C 69 6E 65 6E 6F 3B 0D 0A 20 20       ++lineno;..  
026D90:  20 20 20 20 20 20 73 6B 69 70 28 4D 41 52 47 49          skip(MARGI
026DA0:  4E 32 29 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D    N2);..        }.
026DB0:  0A 20 20 20 20 20 20 6C 69 6E 65 6E 6F 3D 6C 69    .      lineno=li
026DC0:  6E 65 6E 6F 2B 4D 41 52 47 49 4E 31 2B 4D 41 52    neno+MARGIN1+MAR
026DD0:  47 49 4E 32 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    GIN2;..      }..
026DE0:  20 20 20 20 2B 2B 74 65 78 74 6C 69 6E 65 3B 0D        ++textline;.
026DF0:  0A 20 20 20 20 2B 2B 6C 69 6E 65 6E 6F 3B 0D 0A    .    ++lineno;..
026E00:  74 29 29 20 66 72 65 6F 70 65 6E 28 22 4C 53 54    t)) freopen("LST
026E10:  3A 22 2C 20 22 77 22 2C 20 73 74 64 6F 75 74 29    :", "w", stdout)
026E20:  3B 0D 0A 20 20 69 66 28 72 65 61 64 79 20 26 26    ;..  if(ready &&
026E30:  20 69 73 61 74 74 79 28 73 74 64 6F 75 74 29 29     isatty(stdout))
026E40:  20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 72     {..    fputs("r
026E50:  65 61 64 79 20 70 72 69 6E 74 65 72 2E 2E 2E 20    eady printer... 
026E60:  22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20    ", stderr);..   
026E70:  20 66 67 65 74 63 28 73 74 64 65 72 72 29 3B 0D     fgetc(stderr);.
026E80:  0A 20 20 20 20 7D 0D 0A 20 20 66 69 6C 65 73 3D    .    }..  files=
026E90:  4E 4F 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77    NO;..  i=0;..  w
026EA0:  68 69 6C 65 28 67 65 74 61 72 67 28 2B 2B 69 2C    hile(getarg(++i,
026EB0:  20 6E 61 6D 65 2C 20 4D 41 58 46 4E 2C 20 61 72     name, MAXFN, ar
026EC0:  67 63 2C 20 61 72 67 76 29 21 3D 45 4F 46 29 20    gc, argv)!=EOF) 
026ED0:  7B 0D 0A 20 20 20 20 69 66 28 28 6E 61 6D 65 5B    {..    if((name[
026EE0:  30 5D 3D 3D 27 2D 27 29 7C 28 6E 61 6D 65 5B 30    0]=='-')|(name[0
026EF0:  5D 3D 3D 45 58 54 4D 41 52 4B 29 29 20 63 6F 6E    ]==EXTMARK)) con
026F00:  74 69 6E 75 65 3B 0D 0A 20 20 20 20 66 69 6C 65    tinue;..    file
026F10:  73 3D 59 45 53 3B 0D 0A 20 20 20 20 66 69 6E 3D    s=YES;..    fin=
026F20:  66 6F 70 65 6E 28 6E 61 6D 65 2C 20 22 72 22 29    fopen(name, "r")
026F30:  3B 0D 0A 20 20 20 20 69 66 28 66 69 6E 3D 3D 30    ;..    if(fin==0
026F40:  29 20 63 61 6E 74 28 6E 61 6D 65 29 3B 0D 0A 20    ) cant(name);.. 
026F50:  20 20 20 70 61 67 65 6E 6F 3D 6C 69 6E 65 6E 6F       pageno=lineno
026F60:  3D 30 3B 0D 0A 20 20 20 20 66 70 72 6E 74 28 6E    =0;..    fprnt(n
026F70:  61 6D 65 2C 20 66 69 6E 29 3B 0D 0A 20 20 20 20    ame, fin);..    
026F80:  66 63 6C 6F 73 65 28 66 69 6E 29 3B 0D 0A 20 20    fclose(fin);..  
026F90:  20 20 69 66 28 28 6C 69 6E 65 6E 6F 20 3E 20 30      if((lineno > 0
026FA0:  29 26 28 73 6B 69 70 73 29 29 20 73 6B 69 70 28    )&(skips)) skip(
026FB0:  50 54 52 48 49 47 48 2D 6C 69 6E 65 6E 6F 29 3B    PTRHIGH-lineno);
026FC0:  0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 66 69    ..    }..  if(fi
026FD0:  6C 65 73 3D 3D 4E 4F 29 20 7B 0D 0A 20 20 20 20    les==NO) {..    
026FE0:  70 61 67 65 6E 6F 3D 6C 69 6E 65 6E 6F 3D 30 3B    pageno=lineno=0;
026FF0:  0D 0A 20 20 20 20 66 70 72 6E 74 28 22 3C 73 74    ..    fprnt("<st
027000:  20 20 20 20 69 66 28 70 61 67 65 6E 6F 20 3E 3D        if(pageno >=
027010:  20 62 65 67 69 6E 29 20 7B 0D 0A 20 20 20 20 20     begin) {..     
027020:  20 74 65 6D 70 3D 6D 61 72 67 69 6E 3B 0D 0A 20     temp=margin;.. 
027030:  20 20 20 20 20 77 68 69 6C 65 28 74 65 6D 70 2D         while(temp-
027040:  2D 29 20 70 72 69 6E 74 66 28 22 20 22 2C 20 30    -) printf(" ", 0
027050:  29 3B 0D 0A 20 20 20 20 20 20 69 66 28 6E 75 6D    );..      if(num
027060:  62 65 72 73 29 0D 0A 20 20 20 20 20 20 20 20 70    bers)..        p
027070:  72 69 6E 74 66 28 22 25 35 64 20 25 73 22 2C 20    rintf("%5d %s", 
027080:  74 65 78 74 6C 69 6E 65 2C 20 6C 69 6E 65 2C 20    textline, line, 
027090:  32 29 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20    2);..      else 
0270A0:  70 72 69 6E 74 66 28 22 25 73 22 2C 20 6C 69 6E    printf("%s", lin
0270B0:  65 2C 20 31 29 3B 0D 0A 20 20 20 20 20 20 7D 0D    e, 1);..      }.
0270C0:  0A 20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 20    .    if((lineno 
0270D0:  3E 3D 20 28 50 54 52 48 49 47 48 2D 50 54 52 53    >= (PTRHIGH-PTRS
0270E0:  4B 49 50 29 29 26 28 73 6B 69 70 73 29 29 20 7B    KIP))&(skips)) {
0270F0:  0D 0A 20 20 20 20 20 20 73 6B 69 70 28 50 54 52    ..      skip(PTR
027100:  48 49 47 48 2D 6C 69 6E 65 6E 6F 29 3B 0D 0A 20    HIGH-lineno);.. 
027110:  20 20 20 20 20 6C 69 6E 65 6E 6F 3D 30 3B 0D 0A         lineno=0;..
027120:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28          }..    if(
027130:  69 6E 63 6C 65 78 74 5B 30 5D 21 3D 45 58 54 4D    inclext[0]!=EXTM
027140:  41 52 4B 29 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A    ARK) continue;..
027150:  20 20 20 20 69 3D 30 3B 0D 0A 20 20 20 20 67 65        i=0;..    ge
027160:  74 77 72 64 28 6C 69 6E 65 2C 20 26 69 2C 20 77    twrd(line, &i, w
027170:  6F 72 64 29 3B 0D 0A 20 20 20 20 69 66 28 28 6C    ord);..    if((l
027180:  65 78 63 6D 70 28 77 6F 72 64 2C 20 22 23 69 6E    excmp(word, "#in
027190:  63 6C 75 64 65 22 29 3D 3D 30 29 20 7C 7C 0D 0A    clude")==0) ||..
0271A0:  20 20 20 20 20 20 20 28 6C 65 78 63 6D 70 28 77           (lexcmp(w
0271B0:  6F 72 64 2C 20 22 2E 73 6F 22 29 3D 3D 30 29 29    ord, ".so")==0))
0271C0:  20 7B 0D 0A 20 20 20 20 20 20 69 66 28 67 65 74     {..      if(get
0271D0:  77 72 64 28 6C 69 6E 65 2C 20 26 69 2C 20 77 6F    wrd(line, &i, wo
0271E0:  72 64 29 20 3E 3D 20 4D 41 58 46 4E 29 20 63 61    rd) >= MAXFN) ca
0271F0:  6E 74 28 77 6F 72 64 29 3B 0D 0A 20 20 20 20 20    nt(word);..     
027200:  64 69 6E 3E 22 2C 20 73 74 64 69 6E 29 3B 0D 0A    din>", stdin);..
027210:  20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 20 3E        if((lineno >
027220:  20 30 29 26 28 73 6B 69 70 73 29 29 20 73 6B 69     0)&(skips)) ski
027230:  70 28 50 54 52 48 49 47 48 2D 6C 69 6E 65 6E 6F    p(PTRHIGH-lineno
027240:  29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C    );..    }..  fcl
027250:  6F 73 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20    ose(stdout);..  
027260:  65 78 69 74 28 30 29 3B 0D 0A 20 20 7D 0D 0A 0D    exit(0);..  }...
027270:  0A 64 6F 61 72 67 73 28 61 72 67 63 2C 20 61 72    .doargs(argc, ar
027280:  67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61    gv) int argc, *a
027290:  72 67 76 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 2C    rgv; {..  int i,
0272A0:  20 6A 3B 0D 0A 20 20 69 6E 63 6C 65 78 74 5B 30     j;..  inclext[0
0272B0:  5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 62 65 67 69 6E    ]=NULL;..  begin
0272C0:  3D 30 3B 0D 0A 20 20 65 6E 64 3D 33 32 37 36 37    =0;..  end=32767
0272D0:  3B 0D 0A 20 20 72 65 61 64 79 3D 59 45 53 3B 0D    ;..  ready=YES;.
0272E0:  0A 20 20 70 61 75 73 65 3D 4E 4F 3B 0D 0A 20 20    .  pause=NO;..  
0272F0:  6D 61 72 67 69 6E 3D 30 3B 0D 0A 20 20 69 3D 30    margin=0;..  i=0
027300:  3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 72    ;..  while(getar
027310:  67 28 2B 2B 69 2C 20 6E 61 6D 65 2C 20 4D 41 58    g(++i, name, MAX
027320:  46 4E 2C 20 61 72 67 63 2C 20 61 72 67 76 29 21    FN, argc, argv)!
027330:  3D 45 4F 46 29 20 7B 0D 0A 20 20 20 20 69 66 28    =EOF) {..    if(
027340:  6E 61 6D 65 5B 30 5D 3D 3D 45 58 54 4D 41 52 4B    name[0]==EXTMARK
027350:  29 20 7B 0D 0A 20 20 20 20 20 20 6A 3D 30 3B 0D    ) {..      j=0;.
027360:  0A 20 20 20 20 20 20 77 68 69 6C 65 28 69 6E 63    .      while(inc
027370:  6C 65 78 74 5B 6A 5D 3D 74 6F 75 70 70 65 72 28    lext[j]=toupper(
027380:  6E 61 6D 65 5B 6A 5D 29 29 20 2B 2B 6A 3B 0D 0A    name[j])) ++j;..
027390:  20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D          continue;.
0273A0:  0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66    .      }..    if
0273B0:  28 6E 61 6D 65 5B 30 5D 21 3D 27 2D 27 29 20 63    (name[0]!='-') c
0273C0:  6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 69 66    ontinue;..    if
0273D0:  28 28 73 61 6D 65 28 6E 61 6D 65 5B 31 5D 2C 20    ((same(name[1], 
0273E0:  27 62 27 29 29 26 28 73 61 6D 65 28 6E 61 6D 65    'b'))&(same(name
0273F0:  5B 32 5D 2C 20 27 70 27 29 29 29 20 7B 0D 0A 20    [2], 'p'))) {.. 
027400:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
027410:  21 00 01 00 02 09 52 E5 21 00 41 02 00 00 00 02    !.....R.!.A.....
027420:  21 00 46 02 00 00 00 02 21 00 42 02 00 00 00 02    !.F.....!.B.....
027430:  21 00 47 02 00 00 00 02 21 00 43 02 00 00 00 02    !.G.....!.C.....
027440:  21 00 48 02 00 00 00 02 21 00 44 02 00 00 00 02    !.H.....!.D.....
027450:  21 00 49 02 00 00 00 02 21 00 45 02 00 00 00 02    !.I.....!.E.....
027460:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027470:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027480:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027490:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0274F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027500:  20 73 74 72 69 70 28 77 6F 72 64 29 3B 0D 0A 20     strip(word);.. 
027510:  20 20 20 20 20 69 3D 30 3B 0D 0A 20 20 20 20 20         i=0;..     
027520:  20 77 68 69 6C 65 28 28 77 6F 72 64 5B 69 5D 21     while((word[i]!
027530:  3D 45 58 54 4D 41 52 4B 29 20 26 26 20 28 77 6F    =EXTMARK) && (wo
027540:  72 64 5B 69 5D 29 29 20 2B 2B 69 3B 0D 0A 20 20    rd[i])) ++i;..  
027550:  20 20 20 20 69 66 28 28 69 6E 63 6C 65 78 74 5B        if((inclext[
027560:  31 5D 29 20 26 26 0D 0A 20 20 20 20 20 20 20 20    1]) &&..        
027570:  20 28 6C 65 78 63 6D 70 28 77 6F 72 64 2B 69 2C     (lexcmp(word+i,
027580:  20 69 6E 63 6C 65 78 74 29 21 3D 30 29 29 20 63     inclext)!=0)) c
027590:  6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20    ontinue;..      
0275A0:  69 66 28 28 66 69 6E 32 3D 66 6F 70 65 6E 28 77    if((fin2=fopen(w
0275B0:  6F 72 64 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C    ord, "r"))==NULL
0275C0:  29 20 63 61 6E 74 28 77 6F 72 64 29 3B 0D 0A 20    ) cant(word);.. 
0275D0:  20 20 20 20 20 66 70 72 6E 74 28 6E 61 6D 65 2C         fprnt(name,
0275E0:  20 66 69 6E 32 29 3B 0D 0A 20 20 20 20 20 20 66     fin2);..      f
0275F0:  63 6C 6F 73 65 28 66 69 6E 32 29 3B 0D 0A 20 20    close(fin2);..  
027600:  20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20        }..    }..  
027610:  7D 0D 0A 0D 0A 73 6B 69 70 28 6E 29 20 69 6E 74    }....skip(n) int
027620:  20 6E 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D     n; {..  int i;.
027630:  0A 20 20 69 66 28 70 61 67 65 6E 6F 20 3C 20 62    .  if(pageno < b
027640:  65 67 69 6E 29 20 72 65 74 75 72 6E 3B 0D 0A 20    egin) return;.. 
027650:  20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 2B     i=0;..  while(+
027660:  2B 69 20 3C 3D 20 6E 29 20 7B 0D 0A 20 20 20 20    +i <= n) {..    
027670:  70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 20 20    poll(YES);..    
027680:  66 70 75 74 63 28 27 5C 6E 27 2C 20 73 74 64 6F    fputc('\n', stdo
027690:  75 74 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D    ut);..    }..  }
0276A0:  0D 0A 23 69 6E 63 6C 75 64 65 20 22 63 61 6E 74    ..#include "cant
0276B0:  2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 70    .c"..#include "p
0276C0:  61 67 65 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65    age.c"..#include
0276D0:  20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63 6C     "same.c"..#incl
0276E0:  75 64 65 20 22 73 74 72 69 70 2E 63 22 0D 0A 23    ude "strip.c"..#
0276F0:  69 6E 63 6C 75 64 65 20 22 67 65 74 77 72 64 2E    include "getwrd.
027700:  3D 27 75 27 29 20 69 74 6F 75 28 69 2C 20 73 74    ='u') itou(i, st
027710:  72 2C 20 37 29 3B 0D 0A 20 20 20 20 65 6C 73 65    r, 7);..    else
027720:  20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20     continue;..    
027730:  63 74 6C 3D 63 78 3B 20 2F 2A 20 61 63 63 65 70    ctl=cx; /* accep
027740:  74 20 63 6F 6E 76 65 72 73 69 6F 6E 20 73 70 65    t conversion spe
027750:  63 20 2A 2F 0D 0A 20 20 20 20 69 66 28 63 21 3D    c */..    if(c!=
027760:  27 73 27 29 20 77 68 69 6C 65 28 2A 73 70 74 72    's') while(*sptr
027770:  3D 3D 27 20 27 29 20 2B 2B 73 70 74 72 3B 0D 0A    ==' ') ++sptr;..
027780:  20 20 20 20 6C 65 6E 3D 2D 31 3B 20 77 68 69 6C        len=-1; whil
027790:  65 28 73 70 74 72 5B 2B 2B 6C 65 6E 5D 29 3B 20    e(sptr[++len]); 
0277A0:  2F 2A 20 67 65 74 20 6C 65 6E 67 74 68 20 2A 2F    /* get length */
0277B0:  0D 0A 20 20 20 20 69 66 28 28 63 3D 3D 27 73 27    ..    if((c=='s'
0277C0:  29 26 28 6C 65 6E 3E 70 72 65 63 29 26 28 70 72    )&(len>prec)&(pr
0277D0:  65 63 6C 65 6E 3E 30 29 29 20 6C 65 6E 3D 70 72    eclen>0)) len=pr
0277E0:  65 63 3B 0D 0A 20 20 20 20 69 66 28 72 69 67 68    ec;..    if(righ
0277F0:  74 29 20 77 68 69 6C 65 28 28 28 77 69 64 74 68    t) while(((width
027800:  2D 2D 29 2D 6C 65 6E 29 3E 30 29 20 63 6F 75 74    --)-len)>0) cout
027810:  28 70 61 64 2C 20 73 74 64 6F 75 74 29 3B 0D 0A    (pad, stdout);..
027820:  20 20 20 20 77 68 69 6C 65 28 6C 65 6E 29 20 7B        while(len) {
027830:  63 6F 75 74 28 2A 73 70 74 72 2B 2B 2C 20 73 74    cout(*sptr++, st
027840:  64 6F 75 74 29 3B 20 2D 2D 6C 65 6E 3B 20 2D 2D    dout); --len; --
027850:  77 69 64 74 68 3B 7D 0D 0A 20 20 20 20 77 68 69    width;}..    whi
027860:  6C 65 28 28 28 77 69 64 74 68 2D 2D 29 2D 6C 65    le(((width--)-le
027870:  6E 29 3E 30 29 20 63 6F 75 74 28 70 61 64 2C 20    n)>0) cout(pad, 
027880:  73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 7D 0D    stdout);..    }.
027890:  0A 20 20 7D 0D 0A 1A 00 00 00 00 00 00 00 00 00    .  }............
0278A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0278B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0278C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0278D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0278E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0278F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027900:  63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    c"..............
027910:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
027920:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
027930:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
027940:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
027950:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
027960:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
027970:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
027980:  20 69 6E 63 6C 65 78 74 29 21 3D 30 29 29 20 63     inclext)!=0)) c
027990:  6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20    ontinue;..      
0279A0:  69 66 28 28 66 69 6E 32 3D 66 6F 70 65 6E 28 77    if((fin2=fopen(w
0279B0:  6F 72 64 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C    ord, "r"))==NULL
0279C0:  29 20 63 61 6E 74 28 77 6F 72 64 29 3B 0D 0A 20    ) cant(word);.. 
0279D0:  20 20 20 20 20 66 70 72 6E 74 28 6E 61 6D 65 2C         fprnt(name,
0279E0:  20 66 69 6E 32 29 3B 0D 0A 20 20 20 20 20 20 66     fin2);..      f
0279F0:  63 6C 6F 73 65 28 66 69 6E 32 29 3B 0D 0A 20 20    close(fin2);..  
027A00:  20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20        }..    }..  
027A10:  7D 0D 0A 0D 0A 73 6B 69 70 28 6E 29 20 69 6E 74    }....skip(n) int
027A20:  20 6E 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D     n; {..  int i;.
027A30:  0A 20 20 69 66 28 70 61 67 65 6E 6F 20 3C 20 62    .  if(pageno < b
027A40:  65 67 69 6E 29 20 72 65 74 75 72 6E 3B 0D 0A 20    egin) return;.. 
027A50:  20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 2B     i=0;..  while(+
027A60:  2B 69 20 3C 3D 20 6E 29 20 7B 0D 0A 20 20 20 20    +i <= n) {..    
027A70:  70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 20 20    poll(YES);..    
027A80:  66 70 75 74 63 28 27 5C 6E 27 2C 20 73 74 64 6F    fputc('\n', stdo
027A90:  75 74 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D    ut);..    }..  }
027AA0:  0D 0A 23 69 6E 63 6C 75 64 65 20 22 63 61 6E 74    ..#include "cant
027AB0:  2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 70    .c"..#include "p
027AC0:  61 67 65 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65    age.c"..#include
027AD0:  20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63 6C     "same.c"..#incl
027AE0:  75 64 65 20 22 73 74 72 69 70 2E 63 22 0D 0A 23    ude "strip.c"..#
027AF0:  69 6E 63 6C 75 64 65 20 22 67 65 74 77 72 64 2E    include "getwrd.
027B00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027B90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027BA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027BB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027BC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027BD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027BE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027BF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027C90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027CA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027CB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027CC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027CD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027CE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027CF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027D90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027DA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027DB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027DC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027DD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027DE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027DF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027E90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027EA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027EB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027EC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027ED0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027EE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027EF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
027F00:  0D 0A 2F 2A 0D 0A 2A 2A 20 73 61 6D 65 20 2D 2D    ../*..** same --
027F10:  20 59 45 53 20 69 66 20 63 20 73 61 6D 65 20 61     YES if c same a
027F20:  73 20 6C 6F 77 65 72 20 63 61 73 65 20 6C 63 2C    s lower case lc,
027F30:  20 65 6C 73 65 20 4E 4F 0D 0A 2A 2A 20 20 20 20     else NO..**    
027F40:  20 20 20 20 20 63 20 6D 61 79 20 62 65 20 75 70         c may be up
027F50:  70 65 72 20 6F 72 20 6C 6F 77 65 72 20 63 61 73    per or lower cas
027F60:  65 0D 0A 2A 2F 0D 0A 73 61 6D 65 28 63 2C 20 6C    e..*/..same(c, l
027F70:  63 29 20 63 68 61 72 20 63 2C 20 6C 63 3B 20 7B    c) char c, lc; {
027F80:  0D 0A 20 20 69 66 28 28 63 20 3E 3D 20 27 41 27    ..  if((c >= 'A'
027F90:  29 26 28 63 20 3C 3D 20 27 5A 27 29 29 20 63 20    )&(c <= 'Z')) c 
027FA0:  3D 20 63 20 2B 20 33 32 3B 0D 0A 20 20 69 66 20    = c + 32;..  if 
027FB0:  28 63 20 3D 3D 20 6C 63 29 20 72 65 74 75 72 6E    (c == lc) return
027FC0:  20 59 45 53 3B 0D 0A 20 20 72 65 74 75 72 6E 20     YES;..  return 
027FD0:  4E 4F 3B 0D 0A 20 20 7D 0D 0A 1A 00 00 00 00 00    NO;..  }........
027FE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
027FF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028000:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028010:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028020:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028030:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028040:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028050:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0280A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0280B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0280C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0280D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0280E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0280F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028100:  0D 0A 2F 2A 0D 0A 2A 2A 20 70 72 69 6E 74 66 28    ../*..** printf(
028110:  63 6F 6E 74 72 6F 6C 73 74 72 69 6E 67 2C 20 61    controlstring, a
028120:  72 67 2C 20 61 72 67 2C 20 2E 2E 2E 29 20 2D 2D    rg, arg, ...) --
028130:  20 66 6F 72 6D 61 74 74 65 64 20 70 72 69 6E 74     formatted print
028140:  0D 0A 2A 2A 20 20 20 20 20 20 20 20 6F 70 65 72    ..**        oper
028150:  61 74 65 73 20 61 73 20 64 65 73 63 72 69 62 65    ates as describe
028160:  64 20 62 79 20 4B 65 72 6E 69 67 68 61 6E 20 26    d by Kernighan &
028170:  20 52 69 74 63 68 69 65 0D 0A 2A 2A 20 20 20 20     Ritchie..**    
028180:  20 20 20 20 6F 6E 6C 79 20 64 2C 20 78 2C 20 63        only d, x, c
028190:  2C 20 73 2C 20 61 6E 64 20 75 20 73 70 65 63 73    , s, and u specs
0281A0:  20 61 72 65 20 73 75 70 70 6F 72 74 65 64 2E 0D     are supported..
0281B0:  0A 2A 2F 0D 0A 70 72 69 6E 74 66 28 61 72 67 63    .*/..printf(argc
0281C0:  29 20 69 6E 74 20 61 72 67 63 3B 20 7B 0D 0A 20    ) int argc; {.. 
0281D0:  20 69 6E 74 20 69 2C 20 77 69 64 74 68 2C 20 70     int i, width, p
0281E0:  72 65 63 2C 20 70 72 65 63 6C 65 6E 2C 20 6C 65    rec, preclen, le
0281F0:  6E 2C 20 2A 6E 78 74 61 72 67 3B 0D 0A 20 20 63    n, *nxtarg;..  c
028200:  68 61 72 20 2A 63 74 6C 2C 20 2A 63 78 2C 20 63    har *ctl, *cx, c
028210:  2C 20 72 69 67 68 74 2C 20 73 74 72 5B 37 5D 2C    , right, str[7],
028220:  20 2A 73 70 74 72 2C 20 70 61 64 3B 0D 0A 20 20     *sptr, pad;..  
028230:  69 20 3D 20 43 43 41 52 47 43 28 29 3B 20 20 20    i = CCARGC();   
028240:  2F 2A 20 66 65 74 63 68 20 61 72 67 20 63 6F 75    /* fetch arg cou
028250:  6E 74 20 66 72 6F 6D 20 41 20 72 65 67 20 66 69    nt from A reg fi
028260:  72 73 74 20 2A 2F 0D 0A 20 20 6E 78 74 61 72 67    rst */..  nxtarg
028270:  20 3D 20 26 61 72 67 63 20 2B 20 69 20 2D 20 31     = &argc + i - 1
028280:  3B 0D 0A 20 20 63 74 6C 20 3D 20 2A 6E 78 74 61    ;..  ctl = *nxta
028290:  72 67 3B 0D 0A 20 20 77 68 69 6C 65 28 63 3D 2A    rg;..  while(c=*
0282A0:  63 74 6C 2B 2B 29 20 7B 0D 0A 20 20 20 20 69 66    ctl++) {..    if
0282B0:  28 63 21 3D 27 25 27 29 20 7B 63 6F 75 74 28 63    (c!='%') {cout(c
0282C0:  2C 20 73 74 64 6F 75 74 29 3B 20 63 6F 6E 74 69    , stdout); conti
0282D0:  6E 75 65 3B 7D 0D 0A 20 20 20 20 69 66 28 2A 63    nue;}..    if(*c
0282E0:  74 6C 3D 3D 27 25 27 29 20 7B 63 6F 75 74 28 2A    tl=='%') {cout(*
0282F0:  63 74 6C 2B 2B 2C 20 73 74 64 6F 75 74 29 3B 20    ctl++, stdout); 
028300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0283A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0283B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0283C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0283D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0283E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0283F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028400:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028410:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028420:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028430:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028440:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028450:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028460:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028470:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028480:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028490:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0284A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0284B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0284C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0284D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0284E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
0284F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028500:  63 6F 6E 74 69 6E 75 65 3B 7D 0D 0A 20 20 20 20    continue;}..    
028510:  63 78 3D 63 74 6C 3B 0D 0A 20 20 20 20 69 66 28    cx=ctl;..    if(
028520:  2A 63 78 3D 3D 27 2D 27 29 20 7B 72 69 67 68 74    *cx=='-') {right
028530:  3D 30 3B 20 2B 2B 63 78 3B 7D 20 65 6C 73 65 20    =0; ++cx;} else 
028540:  72 69 67 68 74 3D 31 3B 0D 0A 20 20 20 20 69 66    right=1;..    if
028550:  28 2A 63 78 3D 3D 27 30 27 29 20 7B 70 61 64 3D    (*cx=='0') {pad=
028560:  27 30 27 3B 20 2B 2B 63 78 3B 7D 20 65 6C 73 65    '0'; ++cx;} else
028570:  20 70 61 64 3D 27 20 27 3B 0D 0A 20 20 20 20 69     pad=' ';..    i
028580:  66 28 28 69 3D 75 74 6F 69 28 63 78 2C 20 26 77    f((i=utoi(cx, &w
028590:  69 64 74 68 29 29 20 3E 3D 20 30 29 20 63 78 3D    idth)) >= 0) cx=
0285A0:  63 78 2B 69 3B 20 65 6C 73 65 20 63 6F 6E 74 69    cx+i; else conti
0285B0:  6E 75 65 3B 0D 0A 20 20 20 20 69 66 28 2A 63 78    nue;..    if(*cx
0285C0:  3D 3D 27 2E 27 29 20 7B 0D 0A 20 20 20 20 20 20    =='.') {..      
0285D0:  69 66 28 28 70 72 65 63 6C 65 6E 3D 75 74 6F 69    if((preclen=utoi
0285E0:  28 2B 2B 63 78 2C 20 26 70 72 65 63 29 29 20 3E    (++cx, &prec)) >
0285F0:  3D 20 30 29 20 63 78 3D 63 78 2B 70 72 65 63 6C    = 0) cx=cx+precl
028600:  65 6E 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20    en;..      else 
028610:  63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20    continue;..     
028620:  20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 70 72 65     }..    else pre
028630:  63 6C 65 6E 3D 30 3B 0D 0A 20 20 20 20 73 70 74    clen=0;..    spt
028640:  72 3D 73 74 72 3B 20 63 3D 2A 63 78 2B 2B 3B 20    r=str; c=*cx++; 
028650:  69 3D 2A 28 2D 2D 6E 78 74 61 72 67 29 3B 0D 0A    i=*(--nxtarg);..
028660:  20 20 20 20 69 66 28 63 3D 3D 27 64 27 29 20 69        if(c=='d') i
028670:  74 6F 64 28 69 2C 20 73 74 72 2C 20 37 29 3B 0D    tod(i, str, 7);.
028680:  0A 20 20 20 20 65 6C 73 65 20 69 66 28 63 3D 3D    .    else if(c==
028690:  27 78 27 29 20 69 74 6F 78 28 69 2C 20 73 74 72    'x') itox(i, str
0286A0:  2C 20 37 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20    , 7);..    else 
0286B0:  69 66 28 63 3D 3D 27 63 27 29 20 7B 73 74 72 5B    if(c=='c') {str[
0286C0:  30 5D 3D 69 3B 20 73 74 72 5B 31 5D 3D 4E 55 4C    0]=i; str[1]=NUL
0286D0:  4C 3B 7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66    L;}..    else if
0286E0:  28 63 3D 3D 27 73 27 29 20 73 70 74 72 3D 69 3B    (c=='s') sptr=i;
0286F0:  0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 63 3D    ..    else if(c=
028700:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
028710:  22 00 01 00 02 09 52 E5 22 00 41 02 00 00 00 02    ".....R.".A.....
028720:  22 00 46 02 00 00 00 02 22 00 42 02 00 00 00 02    ".F.....".B.....
028730:  22 00 47 02 00 00 00 02 22 00 43 02 00 00 00 02    ".G.....".C.....
028740:  22 00 48 02 00 00 00 02 22 00 44 02 00 00 00 02    ".H.....".D.....
028750:  22 00 49 02 00 00 00 02 22 00 45 02 00 00 00 02    ".I.....".E.....
028760:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028770:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028780:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028790:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0287F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028800:  0D 0A 2F 2A 0D 0A 2A 2A 20 73 63 6F 70 79 20 2D    ../*..** scopy -
028810:  2D 20 63 6F 70 79 20 66 72 6F 6D 5B 69 5D 20 74    - copy from[i] t
028820:  6F 20 74 6F 5B 6A 5D 0D 0A 2A 2F 0D 0A 73 63 6F    o to[j]..*/..sco
028830:  70 79 28 66 72 6F 6D 2C 20 69 2C 20 74 6F 2C 20    py(from, i, to, 
028840:  6A 29 20 63 68 61 72 20 2A 66 72 6F 6D 2C 20 2A    j) char *from, *
028850:  74 6F 3B 20 69 6E 74 20 69 2C 20 6A 3B 20 7B 0D    to; int i, j; {.
028860:  0A 20 20 66 72 6F 6D 3D 66 72 6F 6D 2B 69 3B 0D    .  from=from+i;.
028870:  0A 20 20 74 6F 3D 74 6F 2B 6A 3B 0D 0A 20 20 77    .  to=to+j;..  w
028880:  68 69 6C 65 28 2A 74 6F 2B 2B 20 3D 20 2A 66 72    hile(*to++ = *fr
028890:  6F 6D 2B 2B 29 3B 0D 0A 20 20 7D 0D 0A 1A 00 00    om++);..  }.....
0288A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0288B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0288C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0288D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0288E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0288F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028900:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028910:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028920:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028930:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028940:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028950:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028960:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028970:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028980:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028990:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0289A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0289B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0289C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0289D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0289E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0289F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
028A00:  20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20            }..     
028A10:  20 69 66 28 74 6F 6C 6F 77 65 72 28 6C 6E 5B 31     if(tolower(ln[1
028A20:  5D 29 20 3D 3D 20 27 64 27 29 20 7B 09 2F 2A 20    ]) == 'd') {./* 
028A30:  64 65 62 75 67 20 6D 6F 64 65 20 2D 20 6F 6E 6C    debug mode - onl
028A40:  79 20 73 68 6F 77 20 6F 75 74 70 75 74 20 2A 2F    y show output */
028A50:  0D 0A 20 20 20 20 20 20 20 20 64 65 62 75 67 20    ..        debug 
028A60:  3D 20 59 45 53 3B 0D 0A 20 20 20 20 20 20 20 20    = YES;..        
028A70:  63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20    continue;..     
028A80:  20 20 20 7D 0D 0A 20 20 20 20 20 20 62 72 65 61       }..      brea
028A90:  6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    k;..      }..   
028AA0:  20 66 70 75 74 73 28 22 75 73 61 67 65 3A 20 53     fputs("usage: S
028AB0:  54 50 20 5B 2D 56 5D 20 5B 2D 44 5D 22 2C 20 73    TP [-V] [-D]", s
028AC0:  74 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F    tderr);..    abo
028AD0:  72 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20    rt(7);..    }.. 
028AE0:  20 77 68 69 6C 65 28 66 67 65 74 73 28 6C 6E 2C     while(fgets(ln,
028AF0:  20 4C 49 4E 45 53 5A 2C 20 73 74 64 69 6E 29 29     LINESZ, stdin))
028B00:  20 7B 0D 0A 20 20 20 20 6C 6E 70 74 72 20 3D 20     {..    lnptr = 
028B10:  6C 6E 3B 0D 0A 20 20 20 20 65 72 72 6F 72 20 3D    ln;..    error =
028B20:  20 4E 4F 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28     NO;..    while(
028B30:  2A 6C 6E 70 74 72 20 26 26 20 2A 6C 6E 70 74 72    *lnptr && *lnptr
028B40:  20 21 3D 20 46 45 4E 43 45 20 26 26 20 2A 6C 6E     != FENCE && *ln
028B50:  70 74 72 20 21 3D 20 27 5C 6E 27 29 20 7B 0D 0A    ptr != '\n') {..
028B60:  20 20 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B          poll(YES);
028B70:  0D 0A 20 20 20 20 20 20 69 66 28 2A 6C 6E 70 74    ..      if(*lnpt
028B80:  72 20 3D 3D 20 51 55 4F 54 45 29 20 64 6F 73 74    r == QUOTE) dost
028B90:  72 69 6E 67 28 29 3B 20 65 6C 73 65 20 64 6F 68    ring(); else doh
028BA0:  65 78 28 29 3B 0D 0A 20 20 20 20 20 20 77 68 69    ex();..      whi
028BB0:  6C 65 28 69 73 73 70 61 63 65 28 2A 2B 2B 6C 6E    le(isspace(*++ln
028BC0:  70 74 72 29 29 20 3B 0D 0A 20 20 20 20 20 20 7D    ptr)) ;..      }
028BD0:  0D 0A 20 20 20 20 69 66 28 64 65 62 75 67 29 20    ..    if(debug) 
028BE0:  66 70 75 74 73 28 22 5C 6E 22 2C 20 73 74 64 65    fputs("\n", stde
028BF0:  72 72 29 3B 0D 0A 20 20 20 20 69 66 28 76 69 65    rr);..    if(vie
028C00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028C90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028CA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028CB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028CC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028CD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028CE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028CF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028D90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028DA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028DB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028DC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028DD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028DE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028DF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
028E00:  77 20 7C 7C 20 65 72 72 6F 72 29 20 66 70 75 74    w || error) fput
028E10:  73 28 6C 6E 2C 20 73 74 64 65 72 72 29 3B 0D 0A    s(ln, stderr);..
028E20:  20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 64 6F        }..  }....do
028E30:  73 74 72 69 6E 67 28 29 20 7B 0D 0A 20 20 2B 2B    string() {..  ++
028E40:  6C 6E 70 74 72 3B 0D 0A 20 20 77 68 69 6C 65 28    lnptr;..  while(
028E50:  2A 6C 6E 70 74 72 20 3E 3D 20 27 20 27 29 20 7B    *lnptr >= ' ') {
028E60:  0D 0A 20 20 20 20 69 66 28 2A 6C 6E 70 74 72 20    ..    if(*lnptr 
028E70:  3D 3D 20 51 55 4F 54 45 29 20 7B 0D 0A 20 20 20    == QUOTE) {..   
028E80:  20 20 20 2B 2B 6C 6E 70 74 72 3B 0D 0A 20 20 20       ++lnptr;..   
028E90:  20 20 20 69 66 28 2A 6C 6E 70 74 72 20 21 3D 20       if(*lnptr != 
028EA0:  51 55 4F 54 45 29 20 72 65 74 75 72 6E 3B 0D 0A    QUOTE) return;..
028EB0:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 73 65 6E          }..    sen
028EC0:  64 28 6C 6E 70 74 72 2B 2B 29 3B 0D 0A 20 20 20    d(lnptr++);..   
028ED0:  20 7D 0D 0A 20 20 66 70 75 74 73 28 22 5C 37 5C     }..  fputs("\7\
028EE0:  6E 2D 20 75 6E 74 65 72 6D 69 6E 61 74 65 64 20    n- unterminated 
028EF0:  73 74 72 69 6E 67 20 69 6E 20 66 6F 6C 6C 6F 77    string in follow
028F00:  69 6E 67 20 6C 69 6E 65 5C 6E 22 2C 20 73 74 64    ing line\n", std
028F10:  65 72 72 29 3B 0D 0A 20 20 65 72 72 6F 72 20 3D    err);..  error =
028F20:  20 59 45 53 3B 0D 0A 20 20 7D 0D 0A 0D 0A 64 6F     YES;..  }....do
028F30:  68 65 78 28 29 20 7B 0D 0A 20 20 69 6E 74 20 69    hex() {..  int i
028F40:  2C 20 68 65 78 3B 0D 0A 20 20 63 68 61 72 20 63    , hex;..  char c
028F50:  68 3B 0D 0A 20 20 69 20 3D 20 78 74 6F 69 28 6C    h;..  i = xtoi(l
028F60:  6E 70 74 72 2C 20 26 68 65 78 29 3B 0D 0A 20 20    nptr, &hex);..  
028F70:  69 66 28 69 20 3C 20 31 20 7C 7C 20 69 20 3E 20    if(i < 1 || i > 
028F80:  32 20 7C 7C 20 21 69 73 73 70 61 63 65 28 6C 6E    2 || !isspace(ln
028F90:  70 74 72 5B 69 5D 29 29 20 69 20 3D 20 30 3B 0D    ptr[i])) i = 0;.
028FA0:  0A 20 20 77 68 69 6C 65 28 21 69 73 73 70 61 63    .  while(!isspac
028FB0:  65 28 2A 6C 6E 70 74 72 29 29 20 2B 2B 6C 6E 70    e(*lnptr)) ++lnp
028FC0:  74 72 3B 0D 0A 20 20 69 66 28 69 20 3D 3D 20 30    tr;..  if(i == 0
028FD0:  29 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22    ) {..    fputs("
028FE0:  5C 37 5C 6E 2D 20 62 61 64 20 68 65 78 20 62 79    \7\n- bad hex by
028FF0:  74 65 20 69 6E 20 66 6F 6C 6C 6F 77 69 6E 67 20    te in following 
029000:  0D 0A 2F 2A 0D 0A 2A 2A 20 73 65 74 74 61 62 2E    ../*..** settab.
029010:  63 20 2D 2D 20 73 65 61 72 63 68 20 63 6F 6D 6D    c -- search comm
029020:  61 6E 64 20 6C 69 6E 65 20 66 6F 72 20 74 61 62    and line for tab
029030:  20 6C 69 73 74 20 70 6F 73 73 69 62 6C 79 0D 0A     list possibly..
029040:  2A 2A 20 20 20 20 20 20 20 20 20 20 20 20 20 74    **             t
029050:  65 72 6D 69 6E 61 74 65 64 20 77 69 74 68 20 61    erminated with a
029060:  6E 20 69 6E 74 65 72 76 61 6C 20 28 2B 6E 29 20    n interval (+n) 
029070:  61 6E 64 20 73 65 74 20 75 70 0D 0A 2A 2A 20 20    and set up..**  
029080:  20 20 20 20 20 20 20 20 20 20 20 74 61 62 73 5B               tabs[
029090:  4D 41 58 4C 49 4E 45 2B 31 5D 0D 0A 2A 2F 0D 0A    MAXLINE+1]..*/..
0290A0:  23 64 65 66 69 6E 65 20 44 45 46 54 41 42 20 38    #define DEFTAB 8
0290B0:  0D 0A 73 65 74 74 61 62 28 74 61 62 73 2C 20 61    ..settab(tabs, a
0290C0:  72 67 63 2C 20 61 72 67 76 29 20 63 68 61 72 20    rgc, argv) char 
0290D0:  74 61 62 73 5B 5D 3B 20 69 6E 74 20 61 72 67 63    tabs[]; int argc
0290E0:  2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 69 6E    , *argv; {..  in
0290F0:  74 20 69 2C 20 6A 2C 20 6B 3B 0D 0A 20 20 63 68    t i, j, k;..  ch
029100:  61 72 20 70 61 72 6D 5B 39 5D 3B 0D 0A 20 20 69    ar parm[9];..  i
029110:  3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 2B 2B 69    =0;..  while(++i
029120:  3C 4D 41 58 4C 49 4E 45 29 20 74 61 62 73 5B 69    <MAXLINE) tabs[i
029130:  5D 3D 4E 4F 3B 0D 0A 20 20 69 66 28 28 67 65 74    ]=NO;..  if((get
029140:  61 72 67 28 31 2C 20 70 61 72 6D 2C 20 39 2C 20    arg(1, parm, 9, 
029150:  61 72 67 63 2C 20 61 72 67 76 29 29 3D 3D 45 4F    argc, argv))==EO
029160:  46 29 20 7B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A    F) {..    i=0;..
029170:  20 20 20 20 77 68 69 6C 65 28 2B 2B 69 3C 4D 41        while(++i<MA
029180:  58 4C 49 4E 45 29 0D 0A 20 20 20 20 69 66 28 28    XLINE)..    if((
029190:  69 25 44 45 46 54 41 42 29 3D 3D 31 29 20 74 61    i%DEFTAB)==1) ta
0291A0:  62 73 5B 69 5D 3D 59 45 53 3B 0D 0A 20 20 20 20    bs[i]=YES;..    
0291B0:  72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20    return YES;..   
0291C0:  20 7D 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 6A 3D     }..  i=0;..  j=
0291D0:  31 3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61    1;..  while(geta
0291E0:  72 67 28 2B 2B 69 2C 20 70 61 72 6D 2C 20 39 2C    rg(++i, parm, 9,
0291F0:  20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45 4F     argc, argv)!=EO
029200:  6C 69 6E 65 5C 6E 22 2C 20 73 74 64 65 72 72 29    line\n", stderr)
029210:  3B 0D 0A 20 20 20 20 65 72 72 6F 72 20 3D 20 59    ;..    error = Y
029220:  45 53 3B 0D 0A 20 20 20 20 72 65 74 75 72 6E 3B    ES;..    return;
029230:  0D 0A 20 20 20 20 7D 0D 0A 20 20 63 68 20 3D 20    ..    }..  ch = 
029240:  68 65 78 3B 0D 0A 20 20 73 65 6E 64 28 26 63 68    hex;..  send(&ch
029250:  29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 73 65 6E 64 28    );..  }....send(
029260:  70 74 72 29 20 63 68 61 72 20 2A 70 74 72 3B 20    ptr) char *ptr; 
029270:  7B 0D 0A 20 20 69 66 28 64 65 62 75 67 29 20 7B    {..  if(debug) {
029280:  0D 0A 20 20 20 20 69 6E 74 20 69 3B 0D 0A 20 20    ..    int i;..  
029290:  20 20 63 68 61 72 20 73 74 72 5B 33 5D 3B 0D 0A      char str[3];..
0292A0:  20 20 20 20 69 20 3D 20 2A 70 74 72 20 26 20 32        i = *ptr & 2
0292B0:  35 35 3B 0D 0A 20 20 20 20 69 74 6F 78 28 69 2C    55;..    itox(i,
0292C0:  20 73 74 72 2C 20 33 29 3B 0D 0A 20 20 20 20 66     str, 3);..    f
0292D0:  70 75 74 73 28 73 74 72 2C 20 73 74 64 65 72 72    puts(str, stderr
0292E0:  29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 20    );..    fputs(" 
0292F0:  22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20    ", stderr);..   
029300:  20 7D 0D 0A 20 20 65 6C 73 65 20 77 72 69 74 65     }..  else write
029310:  28 73 74 64 6F 75 74 2C 20 70 74 72 2C 20 31 29    (stdout, ptr, 1)
029320:  3B 0D 0A 20 20 7D 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A    ;..  }..........
029330:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
029340:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
029350:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
029360:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
029370:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
029380:  32 20 7C 7C 20 21 69 73 73 70 61 63 65 28 6C 6E    2 || !isspace(ln
029390:  70 74 72 5B 69 5D 29 29 20 69 20 3D 20 30 3B 0D    ptr[i])) i = 0;.
0293A0:  0A 20 20 77 68 69 6C 65 28 21 69 73 73 70 61 63    .  while(!isspac
0293B0:  65 28 2A 6C 6E 70 74 72 29 29 20 2B 2B 6C 6E 70    e(*lnptr)) ++lnp
0293C0:  74 72 3B 0D 0A 20 20 69 66 28 69 20 3D 3D 20 30    tr;..  if(i == 0
0293D0:  29 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22    ) {..    fputs("
0293E0:  5C 37 5C 6E 2D 20 62 61 64 20 68 65 78 20 62 79    \7\n- bad hex by
0293F0:  74 65 20 69 6E 20 66 6F 6C 6C 6F 77 69 6E 67 20    te in following 
029400:  46 29 20 7B 0D 0A 20 20 20 20 69 66 28 75 74 6F    F) {..    if(uto
029410:  69 28 70 61 72 6D 2C 20 26 6B 29 29 20 7B 0D 0A    i(parm, &k)) {..
029420:  20 20 20 20 20 20 69 66 28 6B 3C 3D 4D 41 58 4C          if(k<=MAXL
029430:  49 4E 45 29 20 7B 0D 0A 20 20 20 20 20 20 20 20    INE) {..        
029440:  74 61 62 73 5B 6B 5D 3D 59 45 53 3B 0D 0A 20 20    tabs[k]=YES;..  
029450:  20 20 20 20 20 20 6A 3D 6B 3B 0D 0A 20 20 20 20          j=k;..    
029460:  20 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73        }..      els
029470:  65 20 7B 0D 0A 20 20 20 20 20 20 20 20 66 70 75    e {..        fpu
029480:  74 73 28 22 74 61 62 20 73 74 6F 70 20 62 65 79    ts("tab stop bey
029490:  6F 6E 64 20 6D 61 78 20 6C 69 6E 65 20 6C 65 6E    ond max line len
0294A0:  67 74 68 5C 6E 22 2C 20 73 74 64 65 72 72 29 3B    gth\n", stderr);
0294B0:  0D 0A 20 20 20 20 20 20 20 20 72 65 74 75 72 6E    ..        return
0294C0:  20 45 52 52 3B 0D 0A 20 20 20 20 20 20 20 20 7D     ERR;..        }
0294D0:  0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65    ..      }..    e
0294E0:  6C 73 65 20 69 66 28 70 61 72 6D 5B 30 5D 3D 3D    lse if(parm[0]==
0294F0:  27 2B 27 29 20 7B 0D 0A 20 20 20 20 20 20 69 66    '+') {..      if
029500:  28 75 74 6F 69 28 28 70 61 72 6D 2B 31 29 2C 20    (utoi((parm+1), 
029510:  26 6B 29 29 0D 0A 20 20 20 20 20 20 20 20 77 68    &k))..        wh
029520:  69 6C 65 28 28 6A 3D 6A 2B 6B 29 3C 3D 4D 41 58    ile((j=j+k)<=MAX
029530:  4C 49 4E 45 29 20 74 61 62 73 5B 6A 5D 3D 59 45    LINE) tabs[j]=YE
029540:  53 3B 20 20 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    S;  ..      }.. 
029550:  20 20 20 65 6C 73 65 20 72 65 74 75 72 6E 20 45       else return E
029560:  52 52 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65    RR;..    }..  re
029570:  74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 7D 0D 0A    turn YES;..  }..
029580:  58 4C 49 4E 45 29 0D 0A 20 20 20 20 69 66 28 28    XLINE)..    if((
029590:  69 25 44 45 46 54 41 42 29 3D 3D 31 29 20 74 61    i%DEFTAB)==1) ta
0295A0:  62 73 5B 69 5D 3D 59 45 53 3B 0D 0A 20 20 20 20    bs[i]=YES;..    
0295B0:  72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20    return YES;..   
0295C0:  20 7D 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 6A 3D     }..  i=0;..  j=
0295D0:  31 3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61    1;..  while(geta
0295E0:  72 67 28 2B 2B 69 2C 20 70 61 72 6D 2C 20 39 2C    rg(++i, parm, 9,
0295F0:  20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45 4F     argc, argv)!=EO
029600:  2F 2A 0D 0A 2A 2A 20 73 72 74 2E 63 20 2D 2D 20    /*..** srt.c -- 
029610:  73 6F 72 74 20 74 65 78 74 20 6C 69 6E 65 73 0D    sort text lines.
029620:  0A 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68    .**..** Copyrigh
029630:  74 20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E    t 1982 J. E. Hen
029640:  64 72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74    drix.  All right
029650:  73 20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2A 0D    s reserved...**.
029660:  0A 2A 2A 20 45 61 63 68 20 6C 69 6E 65 20 69 6E    .** Each line in
029670:  20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 70     the buffer is p
029680:  72 65 63 65 65 64 65 64 20 62 79 20 61 20 31 2D    receeded by a 1-
029690:  62 79 74 65 20 6F 66 66 73 65 74 20 74 6F 0D 0A    byte offset to..
0296A0:  2A 2A 20 74 68 65 20 73 6F 72 74 20 6B 65 79 2E    ** the sort key.
0296B0:  20 20 4C 69 6E 65 20 70 6F 69 6E 74 65 72 73 20      Line pointers 
0296C0:  64 65 73 69 67 6E 61 74 65 20 74 68 65 20 66 69    designate the fi
0296D0:  72 73 74 20 64 61 74 61 20 62 79 74 65 2E 0D 0A    rst data byte...
0296E0:  2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74    */..#include <st
0296F0:  64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65    dio.h>..#include
029700:  20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65 66     "tools.h"..#def
029710:  69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 23 64    ine NOCCARGC..#d
029720:  65 66 69 6E 65 20 53 48 45 4C 4C 20 31 0D 0A 23    efine SHELL 1..#
029730:  64 65 66 69 6E 65 20 51 55 49 43 4B 20 32 0D 0A    define QUICK 2..
029740:  23 64 65 66 69 6E 65 20 57 52 54 4D 4F 44 45 20    #define WRTMODE 
029750:  32 0D 0A 23 64 65 66 69 6E 65 20 4D 41 58 52 55    2..#define MAXRU
029760:  4E 53 20 39 39 0D 0A 23 64 65 66 69 6E 65 20 4C    NS 99..#define L
029770:  4F 47 50 54 52 20 32 30 0D 0A 23 64 65 66 69 6E    OGPTR 20..#defin
029780:  65 20 41 56 47 4C 49 4E 20 32 38 0D 0A 23 64 65    e AVGLIN 28..#de
029790:  66 69 6E 65 20 52 45 53 45 52 56 45 20 32 30 30    fine RESERVE 200
0297A0:  30 0D 0A 23 64 65 66 69 6E 65 20 4D 45 52 47 45    0..#define MERGE
0297B0:  4F 52 44 45 52 20 35 0D 0A 63 68 61 72 20 2A 6C    ORDER 5..char *l
0297C0:  69 6E 62 75 66 2C 20 6F 75 74 6E 61 6D 5B 4D 41    inbuf, outnam[MA
0297D0:  58 46 4E 5D 2C 20 74 6D 70 64 72 76 3B 0D 0A 63    XFN], tmpdrv;..c
0297E0:  68 61 72 20 6C 61 73 74 6C 69 6E 65 5B 4D 41 58    har lastline[MAX
0297F0:  4C 49 4E 45 2B 31 5D 3B 0D 0A 63 68 61 72 20 2A    LINE+1];..char *
029800:  2F 2A 0D 0A 2A 2A 20 73 74 70 2E 63 20 2D 2D 20    /*..** stp.c -- 
029810:  73 65 74 75 70 20 61 20 64 65 76 69 63 65 20 63    setup a device c
029820:  6F 6E 66 69 67 75 72 61 74 69 6F 6E 0D 0A 2A 2F    onfiguration..*/
029830:  0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69    ..#include <stdi
029840:  6F 2E 68 3E 0D 0A 23 64 65 66 69 6E 65 20 4C 49    o.h>..#define LI
029850:  4E 45 53 5A 20 20 20 31 33 33 09 09 2F 2A 20 6D    NESZ   133../* m
029860:  61 78 69 6D 75 6D 20 69 6E 70 75 74 20 6C 69 6E    aximum input lin
029870:  65 20 73 69 7A 65 20 2A 2F 0D 0A 23 64 65 66 69    e size */..#defi
029880:  6E 65 20 46 45 4E 43 45 20 20 20 20 27 7C 27 09    ne FENCE    '|'.
029890:  09 2F 2A 20 63 6F 6D 6D 65 6E 74 20 70 72 65 66    ./* comment pref
0298A0:  69 78 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 51    ix */..#define Q
0298B0:  55 4F 54 45 20 20 20 20 27 22 27 09 09 2F 2A 20    UOTE    '"'../* 
0298C0:  71 75 6F 74 65 20 66 6F 72 20 73 74 72 69 6E 67    quote for string
0298D0:  73 20 2A 2F 0D 0A 63 68 61 72 20 6C 6E 5B 4C 49    s */..char ln[LI
0298E0:  4E 45 53 5A 5D 2C 20 2A 6C 6E 70 74 72 3B 0D 0A    NESZ], *lnptr;..
0298F0:  69 6E 74 20 76 69 65 77 2C 20 64 65 62 75 67 2C    int view, debug,
029900:  20 65 72 72 6F 72 3B 0D 0A 6D 61 69 6E 28 61 72     error;..main(ar
029910:  67 63 2C 20 61 72 67 76 29 20 69 6E 74 20 61 72    gc, argv) int ar
029920:  67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20    gc, *argv; {..  
029930:  69 6E 74 20 69 3B 0D 0A 20 20 76 69 65 77 20 3D    int i;..  view =
029940:  20 64 65 62 75 67 20 3D 20 4E 4F 3B 0D 0A 20 20     debug = NO;..  
029950:  69 20 3D 20 30 3B 0D 0A 20 20 77 68 69 6C 65 28    i = 0;..  while(
029960:  67 65 74 61 72 67 28 2B 2B 69 2C 20 6C 6E 2C 20    getarg(++i, ln, 
029970:  31 35 2C 20 61 72 67 63 2C 20 61 72 67 76 29 20    15, argc, argv) 
029980:  21 3D 20 45 4F 46 29 20 7B 0D 0A 20 20 20 20 69    != EOF) {..    i
029990:  66 28 2A 6C 6E 20 3D 3D 20 27 2D 27 29 20 7B 0D    f(*ln == '-') {.
0299A0:  0A 20 20 20 20 20 20 69 66 28 74 6F 6C 6F 77 65    .      if(tolowe
0299B0:  72 28 6C 6E 5B 31 5D 29 20 3D 3D 20 27 76 27 29    r(ln[1]) == 'v')
0299C0:  20 7B 09 2F 2A 20 76 69 65 77 20 61 63 74 69 76     {./* view activ
0299D0:  69 74 79 20 2A 2F 0D 0A 20 20 20 20 20 20 20 20    ity */..        
0299E0:  76 69 65 77 20 3D 20 59 45 53 3B 0D 0A 20 20 20    view = YES;..   
0299F0:  20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A         continue;..
029A00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
029A10:  23 00 01 00 02 09 52 E5 23 00 41 02 00 00 00 02    #.....R.#.A.....
029A20:  23 00 46 02 00 00 00 02 23 00 42 02 00 00 00 02    #.F.....#.B.....
029A30:  23 00 47 02 00 00 00 02 23 00 43 02 00 00 00 02    #.G.....#.C.....
029A40:  23 00 48 02 00 00 00 02 23 00 44 02 00 00 00 02    #.H.....#.D.....
029A50:  23 00 49 02 00 00 00 02 23 00 45 02 00 00 00 02    #.I.....#.E.....
029A60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029A70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029A80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029A90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029AF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
029B00:  6D 61 78 62 75 66 2C 20 2A 6D 61 78 6C 69 6E 3B    maxbuf, *maxlin;
029B10:  20 20 2F 2A 2A 2A 2A 20 66 61 6B 65 20 75 6E 73      /**** fake uns
029B20:  69 67 6E 65 64 20 69 6E 74 20 2A 2A 2A 2A 2F 0D    igned int ****/.
029B30:  0A 63 68 61 72 20 74 6D 70 6F 75 74 5B 5D 3D 22    .char tmpout[]="
029B40:  58 3A 73 6F 72 74 30 30 2E 24 24 24 22 3B 0D 0A    X:sort00.$$$";..
029B50:  63 68 61 72 20 74 6D 70 69 6E 70 5B 5D 3D 22 58    char tmpinp[]="X
029B60:  3A 73 6F 72 74 30 30 2E 24 24 24 22 3B 0D 0A 63    :sort00.$$$";..c
029B70:  68 61 72 20 74 6D 70 64 65 6C 5B 5D 3D 22 58 3A    har tmpdel[]="X:
029B80:  73 6F 72 74 30 30 2E 24 24 24 22 3B 0D 0A 63 68    sort00.$$$";..ch
029B90:  61 72 20 64 65 6C 69 6D 3B 0D 0A 69 6E 74 20 20    ar delim;..int  
029BA0:  66 69 65 6C 64 3B 0D 0A 69 6E 74 20 74 6D 70 66    field;..int tmpf
029BB0:  64 5B 4D 45 52 47 45 4F 52 44 45 52 5D 2C 20 2A    d[MERGEORDER], *
029BC0:  6C 69 6E 70 74 72 2C 20 6E 6C 69 6E 65 73 3B 0D    linptr, nlines;.
029BD0:  0A 69 6E 74 20 6C 6F 77 2C 20 6C 69 6D 2C 20 68    .int low, lim, h
029BE0:  69 67 68 2C 20 6F 75 74 66 69 6C 2C 20 6F 75 74    igh, outfil, out
029BF0:  70 75 74 2C 20 74 2C 20 6F 72 64 65 72 2C 20 75    put, t, order, u
029C00:  6E 69 71 75 65 2C 20 74 79 70 65 73 6F 72 74 3B    nique, typesort;
029C10:  0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67    ..main(argc, arg
029C20:  76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72    v) int argc, *ar
029C30:  67 76 3B 20 7B 0D 0A 20 20 6C 61 73 74 6C 69 6E    gv; {..  lastlin
029C40:  65 5B 30 5D 3D 6F 75 74 6E 61 6D 5B 30 5D 3D 30    e[0]=outnam[0]=0
029C50:  3B 0D 0A 20 20 74 6D 70 64 72 76 3D 27 58 27 3B    ;..  tmpdrv='X';
029C60:  0D 0A 20 20 64 6F 61 72 67 73 28 61 72 67 63 2C    ..  doargs(argc,
029C70:  20 61 72 67 76 29 3B 0D 0A 20 20 69 66 28 74 6D     argv);..  if(tm
029C80:  70 64 72 76 20 3D 3D 20 27 58 27 29 20 7B 0D 0A    pdrv == 'X') {..
029C90:  20 20 20 20 73 74 72 63 70 79 28 74 6D 70 6F 75        strcpy(tmpou
029CA0:  74 2C 20 74 6D 70 6F 75 74 2B 32 29 3B 0D 0A 20    t, tmpout+2);.. 
029CB0:  20 20 20 73 74 72 63 70 79 28 74 6D 70 69 6E 70       strcpy(tmpinp
029CC0:  2C 20 74 6D 70 69 6E 70 2B 32 29 3B 0D 0A 20 20    , tmpinp+2);..  
029CD0:  20 20 73 74 72 63 70 79 28 74 6D 70 64 65 6C 2C      strcpy(tmpdel,
029CE0:  20 74 6D 70 64 65 6C 2B 32 29 3B 0D 0A 20 20 20     tmpdel+2);..   
029CF0:  20 7D 0D 0A 20 20 65 6C 73 65 20 74 6D 70 6F 75     }..  else tmpou
029D00:  20 27 41 27 29 20 26 26 0D 0A 20 20 20 20 20 20     'A') &&..      
029D10:  20 20 20 20 20 28 74 6F 75 70 70 65 72 28 61 72         (toupper(ar
029D20:  67 5B 32 5D 29 20 3C 20 27 47 27 29 20 26 26 0D    g[2]) < 'G') &&.
029D30:  0A 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67    .           (arg
029D40:  5B 33 5D 3D 3D 4E 55 4C 4C 29 29 0D 0A 20 20 20    [3]==NULL))..   
029D50:  20 20 20 20 20 20 20 20 74 6D 70 64 72 76 3D 61            tmpdrv=a
029D60:  72 67 5B 32 5D 3B 0D 0A 20 20 20 20 65 6C 73 65    rg[2];..    else
029D70:  20 69 66 28 73 61 6D 65 28 63 2C 20 27 63 27 29     if(same(c, 'c')
029D80:  29 20 7B 0D 0A 20 20 20 20 20 20 64 65 6C 69 6D    ) {..      delim
029D90:  3D 4E 55 4C 4C 3B 0D 0A 20 20 20 20 20 20 69 66    =NULL;..      if
029DA0:  28 61 72 67 5B 75 74 6F 69 28 61 72 67 2B 32 2C    (arg[utoi(arg+2,
029DB0:  20 26 66 69 65 6C 64 29 2B 32 5D 20 21 3D 20 4E     &field)+2] != N
029DC0:  55 4C 4C 29 20 65 72 72 6F 72 3D 59 45 53 3B 0D    ULL) error=YES;.
029DD0:  0A 20 20 20 20 20 20 69 66 28 66 69 65 6C 64 29    .      if(field)
029DE0:  20 2D 2D 66 69 65 6C 64 3B 0D 0A 20 20 20 20 20     --field;..     
029DF0:  20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28     }..    else if(
029E00:  73 61 6D 65 28 63 2C 20 27 66 27 29 29 20 7B 0D    same(c, 'f')) {.
029E10:  0A 20 20 20 20 20 20 69 66 28 61 72 67 5B 28 6C    .      if(arg[(l
029E20:  65 6E 3D 75 74 6F 69 28 61 72 67 2B 32 2C 20 26    en=utoi(arg+2, &
029E30:  66 69 65 6C 64 29 29 2B 32 5D 20 3E 20 27 20 27    field))+2] > ' '
029E40:  29 20 7B 0D 0A 20 20 20 20 20 20 20 20 64 65 6C    ) {..        del
029E50:  69 6D 3D 61 72 67 5B 6C 65 6E 2B 32 5D 3B 0D 0A    im=arg[len+2];..
029E60:  20 20 20 20 20 20 20 20 69 66 28 61 72 67 5B 6C            if(arg[l
029E70:  65 6E 2B 33 5D 20 21 3D 20 4E 55 4C 4C 29 20 65    en+3] != NULL) e
029E80:  72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 20    rror=YES;..     
029E90:  20 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65       }..      else
029EA0:  20 64 65 6C 69 6D 3D 27 20 27 3B 0D 0A 20 20 20     delim=' ';..   
029EB0:  20 20 20 69 66 28 66 69 65 6C 64 29 20 2D 2D 66       if(field) --f
029EC0:  69 65 6C 64 3B 0D 0A 20 20 20 20 20 20 66 69 65    ield;..      fie
029ED0:  6C 64 20 3D 20 2D 66 69 65 6C 64 3B 0D 0A 20 20    ld = -field;..  
029EE0:  20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20        }..    else 
029EF0:  69 66 28 61 72 67 5B 32 5D 21 3D 4E 55 4C 4C 29    if(arg[2]!=NULL)
029F00:  74 5B 30 5D 3D 74 6D 70 69 6E 70 5B 30 5D 3D 74    t[0]=tmpinp[0]=t
029F10:  6D 70 64 65 6C 5B 30 5D 3D 74 6D 70 64 72 76 3B    mpdel[0]=tmpdrv;
029F20:  0D 0A 20 20 6F 75 74 70 75 74 3D 73 74 64 6F 75    ..  output=stdou
029F30:  74 3B 0D 0A 20 20 69 66 28 28 6C 69 6D 3D 61 76    t;..  if((lim=av
029F40:  61 69 6C 28 59 45 53 29 29 3C 30 29 20 6C 69 6D    ail(YES))<0) lim
029F50:  3D 33 32 37 36 37 3B 0D 0A 20 20 6D 61 78 6C 69    =32767;..  maxli
029F60:  6E 3D 28 6C 69 6D 2D 52 45 53 45 52 56 45 29 2F    n=(lim-RESERVE)/
029F70:  28 32 2B 41 56 47 4C 49 4E 29 3B 0D 0A 20 20 6C    (2+AVGLIN);..  l
029F80:  69 6E 70 74 72 3D 6D 61 6C 6C 6F 63 28 32 2A 6D    inptr=malloc(2*m
029F90:  61 78 6C 69 6E 29 3B 0D 0A 20 20 69 66 28 28 6C    axlin);..  if((l
029FA0:  69 6D 3D 61 76 61 69 6C 28 59 45 53 29 29 3C 30    im=avail(YES))<0
029FB0:  29 20 6C 69 6D 3D 33 32 37 36 37 3B 0D 0A 20 20    ) lim=32767;..  
029FC0:  6D 61 78 62 75 66 3D 6C 69 6D 20 2D 20 52 45 53    maxbuf=lim - RES
029FD0:  45 52 56 45 3B 0D 0A 20 20 6C 69 6E 62 75 66 3D    ERVE;..  linbuf=
029FE0:  6D 61 6C 6C 6F 63 28 6D 61 78 62 75 66 29 3B 0D    malloc(maxbuf);.
029FF0:  0A 0D 0A 20 20 68 69 67 68 3D 30 3B 0D 0A 20 20    ...  high=0;..  
02A000:  77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20    while(YES) {..  
02A010:  20 20 69 66 28 2B 2B 68 69 67 68 20 3E 3D 20 4D      if(++high >= M
02A020:  41 58 52 55 4E 53 29 20 7B 0D 0A 20 20 20 20 20    AXRUNS) {..     
02A030:  20 66 70 75 74 73 28 22 66 69 6C 65 20 74 6F 6F     fputs("file too
02A040:  20 6C 61 72 67 65 5C 6E 22 2C 20 73 74 64 65 72     large\n", stder
02A050:  72 29 3B 0D 0A 20 20 20 20 20 20 61 62 6F 72 74    r);..      abort
02A060:  28 37 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20    (7);..      }.. 
02A070:  20 20 20 74 3D 67 74 65 78 74 28 29 3B 0D 0A 0D       t=gtext();...
02A080:  0A 20 20 20 20 73 6F 72 74 28 30 2C 20 6E 6C 69    .    sort(0, nli
02A090:  6E 65 73 2D 31 29 3B 0D 0A 0D 0A 20 20 20 20 69    nes-1);....    i
02A0A0:  66 28 68 69 67 68 3D 3D 31 29 20 7B 0D 0A 20 20    f(high==1) {..  
02A0B0:  20 20 20 20 69 66 28 74 3D 3D 4E 55 4C 4C 29 20        if(t==NULL) 
02A0C0:  7B 0D 0A 20 20 20 20 20 20 20 20 6F 75 74 66 69    {..        outfi
02A0D0:  6C 3D 6F 75 74 70 75 74 3B 0D 0A 20 20 20 20 20    l=output;..     
02A0E0:  20 20 20 70 74 65 78 74 28 29 3B 0D 0A 20 20 20       ptext();..   
02A0F0:  20 20 20 20 20 66 63 6C 6F 73 65 28 6F 75 74 66         fclose(outf
02A100:  20 65 72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20     error=YES;..   
02A110:  20 65 6C 73 65 20 69 66 28 73 61 6D 65 28 63 2C     else if(same(c,
02A120:  20 27 64 27 29 29 20 6F 72 64 65 72 3D 2D 31 3B     'd')) order=-1;
02A130:  0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 73 61    ..    else if(sa
02A140:  6D 65 28 63 2C 20 27 75 27 29 29 20 75 6E 69 71    me(c, 'u')) uniq
02A150:  75 65 3D 59 45 53 3B 0D 0A 20 20 20 20 65 6C 73    ue=YES;..    els
02A160:  65 20 69 66 28 73 61 6D 65 28 63 2C 20 27 71 27    e if(same(c, 'q'
02A170:  29 29 20 74 79 70 65 73 6F 72 74 3D 51 55 49 43    )) typesort=QUIC
02A180:  4B 3B 0D 0A 20 20 20 20 65 6C 73 65 20 65 72 72    K;..    else err
02A190:  6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 69 66 28    or=YES;..    if(
02A1A0:  65 72 72 6F 72 29 20 7B 0D 0A 20 20 20 20 20 20    error) {..      
02A1B0:  66 70 75 74 73 28 22 75 73 61 67 65 3A 20 53 52    fputs("usage: SR
02A1C0:  54 20 5B 2D 43 23 7C 2D 46 23 3F 5D 20 5B 2D 44    T [-C#|-F#?] [-D
02A1D0:  5D 20 5B 2D 55 5D 20 5B 2D 54 78 5D 20 5B 2D 51    ] [-U] [-Tx] [-Q
02A1E0:  5D 5C 6E 22 2C 0D 0A 20 20 20 20 20 20 20 20 20    ]\n",..         
02A1F0:  20 20 20 20 73 74 64 65 72 72 29 3B 0D 0A 20 20        stderr);..  
02A200:  20 20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20        abort(7);.. 
02A210:  20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20         }..    }.. 
02A220:  20 7D 0D 0A 0D 0A 67 74 65 78 74 28 29 20 7B 0D     }....gtext() {.
02A230:  0A 20 20 69 6E 74 20 6C 65 6E 3B 0D 0A 20 20 63    .  int len;..  c
02A240:  68 61 72 20 2A 6C 62 70 3B 0D 0A 20 20 6C 62 70    har *lbp;..  lbp
02A250:  3D 31 3B 20 2F 2A 2A 20 6C 65 61 76 65 20 73 70    =1; /** leave sp
02A260:  61 63 65 20 66 6F 72 20 66 69 72 73 74 20 73 6F    ace for first so
02A270:  72 74 20 6B 65 79 20 6F 66 66 73 65 74 20 2A 2A    rt key offset **
02A280:  2F 0D 0A 20 20 6E 6C 69 6E 65 73 3D 30 3B 0D 0A    /..  nlines=0;..
02A290:  20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A      while(YES) {..
02A2A0:  20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A        poll(YES);..
02A2B0:  20 20 20 20 69 66 28 28 6C 65 6E 3D 72 65 61 64        if((len=read
02A2C0:  6C 69 6E 65 28 6C 69 6E 62 75 66 2B 6C 62 70 2C    line(linbuf+lbp,
02A2D0:  20 73 74 64 69 6E 29 29 3D 3D 4E 55 4C 4C 29 20     stdin))==NULL) 
02A2E0:  62 72 65 61 6B 3B 0D 0A 20 20 20 20 6C 69 6E 70    break;..    linp
02A2F0:  74 72 5B 6E 6C 69 6E 65 73 2B 2B 5D 3D 6C 62 70    tr[nlines++]=lbp
02A300:  69 6C 29 3B 0D 0A 20 20 20 20 20 20 20 20 65 78    il);..        ex
02A310:  69 74 28 30 29 3B 0D 0A 20 20 20 20 20 20 20 20    it(0);..        
02A320:  7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20    }..      }..    
02A330:  6D 61 6B 65 74 6D 70 28 29 3B 0D 0A 20 20 20 20    maketmp();..    
02A340:  70 74 65 78 74 28 29 3B 0D 0A 20 20 20 20 66 63    ptext();..    fc
02A350:  6C 6F 73 65 28 6F 75 74 66 69 6C 29 3B 0D 0A 20    lose(outfil);.. 
02A360:  20 20 20 69 66 28 74 3D 3D 4E 55 4C 4C 29 20 62       if(t==NULL) b
02A370:  72 65 61 6B 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A    reak;..    }....
02A380:  0D 0A 2F 2A 0D 0A 2A 2A 20 4D 75 73 74 20 64 65    ../*..** Must de
02A390:  61 6C 6C 6F 63 61 74 65 20 69 6E 20 72 65 76 65    allocate in reve
02A3A0:  72 73 65 20 6F 72 64 65 72 20 66 72 6F 6D 20 61    rse order from a
02A3B0:  6C 6C 6F 63 61 74 69 6F 6E 2E 0D 0A 2A 2A 20 57    llocation...** W
02A3C0:  69 6C 6C 20 61 6C 6C 6F 63 61 74 65 20 69 6E 70    ill allocate inp
02A3D0:  75 74 20 74 6D 70 20 66 69 6C 65 20 62 75 66 66    ut tmp file buff
02A3E0:  65 72 73 2F 46 43 42 73 20 6F 76 65 72 20 74 68    ers/FCBs over th
02A3F0:  69 73 20 73 70 61 63 65 3B 0D 0A 2A 2A 20 74 68    is space;..** th
02A400:  65 73 65 20 6D 75 73 74 20 6E 6F 74 20 72 65 61    ese must not rea
02A410:  63 68 20 65 6E 64 20 6F 66 20 6C 69 6E 62 75 66    ch end of linbuf
02A420:  20 77 68 65 72 65 20 6F 75 74 70 75 74 20 74 6D     where output tm
02A430:  70 20 66 69 6C 65 0D 0A 2A 2A 20 73 70 61 63 65    p file..** space
02A440:  20 77 61 73 20 61 6C 6C 6F 63 61 74 65 64 2C 20     was allocated, 
02A450:  73 69 6E 63 65 20 74 68 61 74 20 73 70 61 63 65    since that space
02A460:  20 73 74 61 79 73 20 77 69 74 68 20 74 68 61 74     stays with that
02A470:  20 66 64 2E 0D 0A 2A 2F 0D 0A 20 20 66 72 65 65     fd...*/..  free
02A480:  28 6C 69 6E 62 75 66 29 3B 0D 0A 20 20 66 72 65    (linbuf);..  fre
02A490:  65 28 6C 69 6E 70 74 72 29 3B 0D 0A 0D 0A 20 20    e(linptr);....  
02A4A0:  6C 69 6E 70 74 72 3D 6D 61 6C 6C 6F 63 28 32 2A    linptr=malloc(2*
02A4B0:  28 4D 45 52 47 45 4F 52 44 45 52 2B 31 29 29 3B    (MERGEORDER+1));
02A4C0:  0D 0A 20 20 6C 69 6E 62 75 66 3D 6D 61 6C 6C 6F    ..  linbuf=mallo
02A4D0:  63 28 4D 45 52 47 45 4F 52 44 45 52 2A 28 4D 41    c(MERGEORDER*(MA
02A4E0:  58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6C 61    XLINE+1));..  la
02A4F0:  73 74 6C 69 6E 65 5B 30 5D 3D 30 3B 0D 0A 20 20    stline[0]=0;..  
02A500:  3B 0D 0A 20 20 20 20 6C 62 70 3D 6C 62 70 2B 6C    ;..    lbp=lbp+l
02A510:  65 6E 3B 20 20 2F 2A 2A 20 68 61 73 20 32 20 62    en;  /** has 2 b
02A520:  79 74 65 73 20 66 6F 72 20 4E 55 4C 4C 20 61 6E    ytes for NULL an
02A530:  64 20 6E 65 78 74 20 6F 66 66 73 65 74 20 2A 2A    d next offset **
02A540:  2F 0D 0A 20 20 20 20 69 66 28 28 28 6C 62 70 2B    /..    if(((lbp+
02A550:  31 29 20 3E 3D 20 28 6D 61 78 62 75 66 2D 28 4D    1) >= (maxbuf-(M
02A560:  41 58 4C 49 4E 45 2B 31 29 29 29 7C 7C 28 6E 6C    AXLINE+1)))||(nl
02A570:  69 6E 65 73 20 3E 3D 20 6D 61 78 6C 69 6E 29 29    ines >= maxlin))
02A580:  0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A    ..      break;..
02A590:  20 20 20 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20        }..  return 
02A5A0:  6C 65 6E 3B 0D 0A 20 20 7D 0D 0A 0D 0A 70 74 65    len;..  }....pte
02A5B0:  78 74 28 29 20 7B 0D 0A 20 20 69 6E 74 20 69 3B    xt() {..  int i;
02A5C0:  0D 0A 20 20 63 68 61 72 20 2A 6C 62 70 3B 0D 0A    ..  char *lbp;..
02A5D0:  20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28      i=0;..  while(
02A5E0:  69 20 3C 20 6E 6C 69 6E 65 73 29 20 7B 0D 0A 20    i < nlines) {.. 
02A5F0:  20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20       poll(YES);.. 
02A600:  20 20 20 6C 62 70 3D 6C 69 6E 62 75 66 2B 6C 69       lbp=linbuf+li
02A610:  6E 70 74 72 5B 69 2B 2B 5D 3B 0D 0A 20 20 20 20    nptr[i++];..    
02A620:  69 66 28 64 75 70 74 65 73 74 28 6C 62 70 29 29    if(duptest(lbp))
02A630:  20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20     continue;..    
02A640:  73 6F 75 74 28 6C 62 70 2C 20 6F 75 74 66 69 6C    sout(lbp, outfil
02A650:  29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A    );..    }..  }..
02A660:  0D 0A 64 75 70 74 65 73 74 28 6C 69 6E 65 29 20    ..duptest(line) 
02A670:  63 68 61 72 20 2A 6C 69 6E 65 3B 20 7B 0D 0A 20    char *line; {.. 
02A680:  20 69 6E 74 20 64 69 66 66 3B 0D 0A 20 20 69 66     int diff;..  if
02A690:  28 21 75 6E 69 71 75 65 29 20 72 65 74 75 72 6E    (!unique) return
02A6A0:  20 28 4E 4F 29 3B 20 20 20 20 20 20 20 20 20 20     (NO);          
02A6B0:  20 2F 2A 30 33 2A 2F 0D 0A 20 20 64 69 66 66 20     /*03*/..  diff 
02A6C0:  3D 20 6C 65 78 63 6D 70 28 6C 61 73 74 6C 69 6E    = lexcmp(lastlin
02A6D0:  65 2C 20 6C 69 6E 65 29 3B 0D 0A 20 20 73 74 72    e, line);..  str
02A6E0:  63 70 79 28 6C 61 73 74 6C 69 6E 65 2C 20 6C 69    cpy(lastline, li
02A6F0:  6E 65 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 28    ne);..  return (
02A700:  6C 6F 77 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28    low=1;..  while(
02A710:  6C 6F 77 20 3C 20 68 69 67 68 29 20 7B 20 20 20    low < high) {   
02A720:  20 20 20 20 20 20 20 20 20 20 20 20 2F 2A 30 35                /*05
02A730:  2A 2F 0D 0A 20 20 20 20 6C 69 6D 3D 6C 6F 77 2B    */..    lim=low+
02A740:  4D 45 52 47 45 4F 52 44 45 52 2D 31 3B 0D 0A 20    MERGEORDER-1;.. 
02A750:  20 20 20 69 66 28 68 69 67 68 20 3C 20 6C 69 6D       if(high < lim
02A760:  29 20 6C 69 6D 3D 68 69 67 68 3B 0D 0A 20 20 20    ) lim=high;..   
02A770:  20 74 3D 30 3B 0D 0A 20 20 20 20 77 68 69 6C 65     t=0;..    while
02A780:  28 74 20 3C 3D 20 28 6C 69 6D 2D 6C 6F 77 29 29    (t <= (lim-low))
02A790:  20 7B 0D 0A 20 20 20 20 20 20 62 75 6D 70 74 6D     {..      bumptm
02A7A0:  70 28 74 6D 70 69 6E 70 29 3B 0D 0A 20 20 20 20    p(tmpinp);..    
02A7B0:  20 20 69 66 28 28 74 6D 70 66 64 5B 74 5D 3D 66      if((tmpfd[t]=f
02A7C0:  6F 70 65 6E 28 74 6D 70 69 6E 70 2C 20 22 72 22    open(tmpinp, "r"
02A7D0:  29 29 3D 3D 4E 55 4C 4C 29 20 63 61 6E 74 28 74    ))==NULL) cant(t
02A7E0:  6D 70 69 6E 70 29 3B 0D 0A 20 20 20 20 20 20 61    mpinp);..      a
02A7F0:  75 78 62 75 66 28 74 6D 70 66 64 5B 74 2B 2B 5D    uxbuf(tmpfd[t++]
02A800:  2C 20 32 30 34 38 29 3B 20 2F 2A 20 72 65 64 75    , 2048); /* redu
02A810:  6E 64 61 6E 74 20 63 61 6C 6C 73 20 69 67 6E 6F    ndant calls igno
02A820:  72 65 64 20 2A 2F 0D 0A 20 20 20 20 20 20 7D 0D    red */..      }.
02A830:  0A 20 20 20 20 69 66 28 6C 69 6D 3D 3D 68 69 67    .    if(lim==hig
02A840:  68 29 20 6F 75 74 66 69 6C 3D 6F 75 74 70 75 74    h) outfil=output
02A850:  3B 0D 0A 20 20 20 20 65 6C 73 65 20 6D 61 6B 65    ;..    else make
02A860:  74 6D 70 28 29 3B 0D 0A 20 20 20 20 69 66 28 2B    tmp();..    if(+
02A870:  2B 68 69 67 68 20 3E 3D 20 4D 41 58 52 55 4E 53    +high >= MAXRUNS
02A880:  29 20 7B 0D 0A 20 20 20 20 20 20 66 70 75 74 73    ) {..      fputs
02A890:  28 22 66 69 6C 65 20 74 6F 6F 20 6C 61 72 67 65    ("file too large
02A8A0:  5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20    \n", stderr);.. 
02A8B0:  20 20 20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A         abort(7);..
02A8C0:  20 20 20 20 20 20 7D 0D 0A 20 20 20 20 6D 65 72          }..    mer
02A8D0:  67 65 28 6C 69 6D 2D 6C 6F 77 2B 31 29 3B 0D 0A    ge(lim-low+1);..
02A8E0:  20 20 20 20 66 63 6C 6F 73 65 28 6F 75 74 66 69        fclose(outfi
02A8F0:  6C 29 3B 0D 0A 20 20 20 20 74 3D 30 3B 0D 0A 20    l);..    t=0;.. 
02A900:  21 64 69 66 66 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A    !diff);..  }....
02A910:  62 75 6D 70 74 6D 70 28 74 6D 70 6E 61 6D 65 29    bumptmp(tmpname)
02A920:  20 63 68 61 72 20 74 6D 70 6E 61 6D 65 5B 5D 3B     char tmpname[];
02A930:  20 7B 0D 0A 20 20 63 68 61 72 20 2A 64 69 67 69     {..  char *digi
02A940:  74 3B 0D 0A 20 20 64 69 67 69 74 20 3D 20 73 74    t;..  digit = st
02A950:  72 63 68 72 28 74 6D 70 6E 61 6D 65 2C 20 27 2E    rchr(tmpname, '.
02A960:  27 29 20 2D 20 31 3B 0D 0A 20 20 69 66 28 2A 64    ') - 1;..  if(*d
02A970:  69 67 69 74 20 3D 3D 20 27 39 27 29 20 7B 2A 64    igit == '9') {*d
02A980:  69 67 69 74 20 3D 20 27 30 27 3B 20 2D 2D 64 69    igit = '0'; --di
02A990:  67 69 74 3B 7D 0D 0A 20 20 2B 2B 2A 64 69 67 69    git;}..  ++*digi
02A9A0:  74 3B 0D 0A 20 20 7D 0D 0A 0D 0A 6D 61 6B 65 74    t;..  }....maket
02A9B0:  6D 70 28 29 20 7B 0D 0A 20 20 62 75 6D 70 74 6D    mp() {..  bumptm
02A9C0:  70 28 74 6D 70 6F 75 74 29 3B 0D 0A 20 20 69 66    p(tmpout);..  if
02A9D0:  28 28 6F 75 74 66 69 6C 3D 66 6F 70 65 6E 28 74    ((outfil=fopen(t
02A9E0:  6D 70 6F 75 74 2C 22 77 22 29 29 3D 3D 4E 55 4C    mpout,"w"))==NUL
02A9F0:  4C 29 20 63 61 6E 74 28 74 6D 70 6F 75 74 29 3B    L) cant(tmpout);
02AA00:  0D 0A 20 20 7D 0D 0A 0D 0A 6B 69 6C 6C 74 6D 70    ..  }....killtmp
02AA10:  28 29 20 7B 0D 0A 20 20 62 75 6D 70 74 6D 70 28    () {..  bumptmp(
02AA20:  74 6D 70 64 65 6C 29 3B 0D 0A 20 20 75 6E 6C 69    tmpdel);..  unli
02AA30:  6E 6B 28 74 6D 70 64 65 6C 29 3B 0D 0A 20 20 7D    nk(tmpdel);..  }
02AA40:  0D 0A 0D 0A 73 6F 72 74 28 6C 76 2C 20 75 76 29    ....sort(lv, uv)
02AA50:  20 69 6E 74 20 6C 76 2C 20 75 76 3B 20 7B 0D 0A     int lv, uv; {..
02AA60:  20 20 69 66 28 74 79 70 65 73 6F 72 74 3D 3D 51      if(typesort==Q
02AA70:  55 49 43 4B 29 20 71 75 69 63 6B 28 6C 76 2C 20    UICK) quick(lv, 
02AA80:  75 76 29 3B 0D 0A 20 20 65 6C 73 65 20 20 20 20    uv);..  else    
02AA90:  20 20 20 20 20 20 20 20 20 20 20 20 73 68 65 6C                shel
02AAA0:  6C 28 6C 76 2C 20 75 76 29 3B 0D 0A 20 20 7D 0D    l(lv, uv);..  }.
02AAB0:  0A 0D 0A 73 68 65 6C 6C 28 6C 76 2C 20 75 76 29    ...shell(lv, uv)
02AAC0:  20 69 6E 74 20 6C 76 2C 20 75 76 3B 20 7B 0D 0A     int lv, uv; {..
02AAD0:  20 20 69 6E 74 20 67 61 70 2C 20 69 2C 20 6A 2C      int gap, i, j,
02AAE0:  20 6A 67 3B 0D 0A 20 20 67 61 70 20 3D 20 28 75     jg;..  gap = (u
02AAF0:  76 2D 6C 76 2B 31 29 20 3E 3E 20 31 3B 20 2F 2A    v-lv+1) >> 1; /*
02AB00:  20 20 20 77 68 69 6C 65 28 74 20 3C 3D 20 28 6C       while(t <= (l
02AB10:  69 6D 2D 6C 6F 77 29 29 20 7B 0D 0A 20 20 20 20    im-low)) {..    
02AB20:  20 20 66 63 6C 6F 73 65 28 74 6D 70 66 64 5B 74      fclose(tmpfd[t
02AB30:  2B 2B 5D 29 3B 20 20 20 20 20 20 20 20 20 20 20    ++]);           
02AB40:  2F 2A 30 32 2A 2F 0D 0A 20 20 20 20 20 20 6B 69    /*02*/..      ki
02AB50:  6C 6C 74 6D 70 28 29 3B 0D 0A 20 20 20 20 20 20    lltmp();..      
02AB60:  7D 0D 0A 20 20 20 20 6C 6F 77 3D 6C 6F 77 2B 4D    }..    low=low+M
02AB70:  45 52 47 45 4F 52 44 45 52 3B 0D 0A 20 20 20 20    ERGEORDER;..    
02AB80:  7D 0D 0A 20 20 7D 0D 0A 0D 0A 64 6F 61 72 67 73    }..  }....doargs
02AB90:  28 61 72 67 63 2C 20 61 72 67 76 29 20 20 69 6E    (argc, argv)  in
02ABA0:  74 20 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 20    t argc, *argv;  
02ABB0:  7B 0D 0A 20 20 63 68 61 72 20 61 72 67 5B 4D 41    {..  char arg[MA
02ABC0:  58 46 4E 5D 2C 20 63 3B 0D 0A 20 20 69 6E 74 20    XFN], c;..  int 
02ABD0:  69 2C 20 65 72 72 6F 72 2C 20 6C 65 6E 3B 0D 0A    i, error, len;..
02ABE0:  20 20 66 69 65 6C 64 3D 30 3B 0D 0A 20 20 64 65      field=0;..  de
02ABF0:  6C 69 6D 3D 4E 55 4C 4C 3B 20 20 20 20 2F 2A 2A    lim=NULL;    /**
02AC00:  20 69 6E 64 69 63 61 74 65 73 20 63 6F 6C 75 6D     indicates colum
02AC10:  6E 20 6E 75 6D 62 65 72 20 69 6E 20 66 69 65 6C    n number in fiel
02AC20:  64 20 2A 2A 2F 0D 0A 20 20 6F 72 64 65 72 3D 31    d **/..  order=1
02AC30:  3B 0D 0A 20 20 74 79 70 65 73 6F 72 74 3D 53 48    ;..  typesort=SH
02AC40:  45 4C 4C 3B 0D 0A 20 20 75 6E 69 71 75 65 3D 65    ELL;..  unique=e
02AC50:  72 72 6F 72 3D 4E 4F 3B 0D 0A 20 20 69 3D 30 3B    rror=NO;..  i=0;
02AC60:  0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 72 67    ..  while(getarg
02AC70:  28 2B 2B 69 2C 20 61 72 67 2C 20 4D 41 58 46 4E    (++i, arg, MAXFN
02AC80:  2C 20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45    , argc, argv)!=E
02AC90:  4F 46 29 20 7B 0D 0A 20 20 20 20 63 3D 61 72 67    OF) {..    c=arg
02ACA0:  5B 31 5D 3B 0D 0A 20 20 20 20 69 66 28 61 72 67    [1];..    if(arg
02ACB0:  5B 30 5D 21 3D 27 2D 27 29 20 65 72 72 6F 72 3D    [0]!='-') error=
02ACC0:  59 45 53 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69    YES;..    else i
02ACD0:  66 28 73 61 6D 65 28 63 2C 20 27 74 27 29 20 26    f(same(c, 't') &
02ACE0:  26 0D 0A 20 20 20 20 20 20 20 20 20 20 20 28 74    &..           (t
02ACF0:  6F 75 70 70 65 72 28 61 72 67 5B 32 5D 29 20 3E    oupper(arg[2]) >
02AD00:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02AD10:  24 00 01 00 02 09 52 E5 24 00 41 02 00 00 00 02    $.....R.$.A.....
02AD20:  24 00 46 02 00 00 00 02 24 00 42 02 00 00 00 02    $.F.....$.B.....
02AD30:  24 00 47 02 00 00 00 02 24 00 43 02 00 00 00 02    $.G.....$.C.....
02AD40:  24 00 48 02 00 00 00 02 24 00 44 02 00 00 00 02    $.H.....$.D.....
02AD50:  24 00 49 02 00 00 00 02 24 00 45 02 00 00 00 02    $.I.....$.E.....
02AD60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AD70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AD80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AD90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02ADF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02AE00:  2A 20 64 69 76 69 64 65 20 62 79 20 32 20 2A 2A    * divide by 2 **
02AE10:  2F 0D 0A 20 20 77 68 69 6C 65 28 67 61 70 20 3E    /..  while(gap >
02AE20:  20 30 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28     0) {..    poll(
02AE30:  59 45 53 29 3B 0D 0A 20 20 20 20 69 20 3D 20 67    YES);..    i = g
02AE40:  61 70 20 2B 20 6C 76 3B 0D 0A 20 20 20 20 77 68    ap + lv;..    wh
02AE50:  69 6C 65 28 69 20 3C 3D 20 75 76 29 20 7B 0D 0A    ile(i <= uv) {..
02AE60:  20 20 20 20 20 20 6A 20 3D 20 69 2B 2B 20 2D 20          j = i++ - 
02AE70:  67 61 70 3B 0D 0A 20 20 20 20 20 20 77 68 69 6C    gap;..      whil
02AE80:  65 28 6A 20 3E 3D 20 6C 76 29 20 7B 0D 0A 20 20    e(j >= lv) {..  
02AE90:  20 20 20 20 20 20 6A 67 20 3D 20 6A 20 2B 20 67          jg = j + g
02AEA0:  61 70 3B 0D 0A 20 20 20 20 20 20 20 20 69 66 28    ap;..        if(
02AEB0:  63 6F 6D 70 61 72 65 28 6C 69 6E 70 74 72 5B 6A    compare(linptr[j
02AEC0:  5D 2C 20 6C 69 6E 70 74 72 5B 6A 67 5D 29 20 3C    ], linptr[jg]) <
02AED0:  3D 20 30 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20    = 0) break;..   
02AEE0:  20 20 20 20 20 65 78 63 68 61 6E 67 65 28 6A 2C         exchange(j,
02AEF0:  20 6A 67 29 3B 0D 0A 20 20 20 20 20 20 20 20 6A     jg);..        j
02AF00:  20 3D 20 6A 20 2D 20 67 61 70 3B 0D 0A 20 20 20     = j - gap;..   
02AF10:  20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D         }..      }.
02AF20:  0A 20 20 20 20 67 61 70 20 3D 20 67 61 70 3E 3E    .    gap = gap>>
02AF30:  31 3B 20 2F 2A 2A 20 64 69 76 69 64 65 20 62 79    1; /** divide by
02AF40:  20 32 20 2A 2A 2F 0D 0A 20 20 20 20 7D 0D 0A 20     2 **/..    }.. 
02AF50:  20 7D 0D 0A 0D 0A 71 75 69 63 6B 28 6C 76 2C 20     }....quick(lv, 
02AF60:  75 76 29 20 69 6E 74 20 6C 76 2C 20 75 76 3B 20    uv) int lv, uv; 
02AF70:  7B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A 2C 20 70    {..  int i, j, p
02AF80:  69 76 6C 69 6E 3B 0D 0A 20 20 61 76 61 69 6C 28    ivlin;..  avail(
02AF90:  59 45 53 29 3B 0D 0A 20 20 70 6F 6C 6C 28 59 45    YES);..  poll(YE
02AFA0:  53 29 3B 0D 0A 20 20 69 66 28 6C 76 20 3E 3D 20    S);..  if(lv >= 
02AFB0:  75 76 29 20 72 65 74 75 72 6E 3B 20 20 2F 2A 2A    uv) return;  /**
02AFC0:  20 6F 6E 6C 79 20 6F 6E 65 20 65 6C 65 6D 65 6E     only one elemen
02AFD0:  74 20 2A 2A 2F 0D 0A 20 20 69 3D 6C 76 2D 31 3B    t **/..  i=lv-1;
02AFE0:  0D 0A 20 20 6A 3D 75 76 3B 0D 0A 20 20 70 69 76    ..  j=uv;..  piv
02AFF0:  6C 69 6E 3D 6C 69 6E 70 74 72 5B 6A 5D 3B 0D 0A    lin=linptr[j];..
02B000:  20 20 20 20 20 61 6E 64 20 72 65 74 75 72 6E 20         and return 
02B010:  69 74 73 20 6C 65 6E 67 74 68 0D 0A 2A 2F 0D 0A    its length..*/..
02B020:  72 65 61 64 6C 69 6E 65 28 73 74 72 2C 20 66 64    readline(str, fd
02B030:  29 20 63 68 61 72 20 2A 73 74 72 3B 20 69 6E 74    ) char *str; int
02B040:  20 66 64 3B 20 7B 0D 0A 20 20 69 6E 74 20 66 6C     fd; {..  int fl
02B050:  64 3B 0D 0A 20 20 63 68 61 72 20 2A 70 74 72 2C    d;..  char *ptr,
02B060:  20 2A 6F 66 66 73 65 74 3B 0D 0A 20 20 69 66 28     *offset;..  if(
02B070:  66 67 65 74 73 28 73 74 72 2C 20 4D 41 58 4C 49    fgets(str, MAXLI
02B080:  4E 45 2B 31 2C 20 66 64 29 3D 3D 4E 55 4C 4C 29    NE+1, fd)==NULL)
02B090:  20 72 65 74 75 72 6E 20 4E 55 4C 4C 3B 0D 0A 20     return NULL;.. 
02B0A0:  20 70 74 72 3D 6F 66 66 73 65 74 3D 73 74 72 2D     ptr=offset=str-
02B0B0:  31 3B 20 20 20 20 20 2F 2A 2A 20 6C 6F 63 61 74    1;     /** locat
02B0C0:  69 6F 6E 20 6F 66 20 6F 66 66 73 65 74 20 66 69    ion of offset fi
02B0D0:  65 6C 64 20 2A 2A 2F 0D 0A 20 20 66 6C 64 3D 66    eld **/..  fld=f
02B0E0:  69 65 6C 64 3B 0D 0A 20 20 69 66 28 64 65 6C 69    ield;..  if(deli
02B0F0:  6D 29 20 7B 20 20 20 20 20 20 20 20 20 20 20 2F    m) {           /
02B100:  2A 2A 20 6D 75 73 74 20 73 65 61 72 63 68 20 66    ** must search f
02B110:  6F 72 20 66 69 65 6C 64 27 74 68 20 66 69 65 6C    or field'th fiel
02B120:  64 20 2A 2A 2F 0D 0A 20 20 20 20 2A 6F 66 66 73    d **/..    *offs
02B130:  65 74 20 3D 20 2D 31 3B 0D 0A 20 20 20 20 77 68    et = -1;..    wh
02B140:  69 6C 65 28 2A 28 2B 2B 70 74 72 29 29 20 7B 0D    ile(*(++ptr)) {.
02B150:  0A 20 20 20 20 20 20 69 66 28 66 6C 64 20 3C 20    .      if(fld < 
02B160:  30 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66    0) {..        if
02B170:  28 64 65 6C 69 6D 20 3D 3D 20 27 20 27 29 20 7B    (delim == ' ') {
02B180:  0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 28 28    ..          if((
02B190:  2A 70 74 72 20 3E 20 27 20 27 29 26 28 2A 28 70    *ptr > ' ')&(*(p
02B1A0:  74 72 2B 31 29 20 3C 3D 20 27 20 27 29 29 20 2B    tr+1) <= ' ')) +
02B1B0:  2B 66 6C 64 3B 0D 0A 20 20 20 20 20 20 20 20 20    +fld;..         
02B1C0:  20 7D 0D 0A 20 20 20 20 20 20 20 20 65 6C 73 65     }..        else
02B1D0:  20 69 66 28 2A 70 74 72 20 3D 3D 20 64 65 6C 69     if(*ptr == deli
02B1E0:  6D 29 20 2B 2B 66 6C 64 3B 0D 0A 20 20 20 20 20    m) ++fld;..     
02B1F0:  20 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65       }..      else
02B200:  20 20 77 68 69 6C 65 28 69 20 3C 20 6A 29 20 7B      while(i < j) {
02B210:  0D 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20    ..    ++i;..    
02B220:  77 68 69 6C 65 28 63 6F 6D 70 61 72 65 28 6C 69    while(compare(li
02B230:  6E 70 74 72 5B 69 5D 2C 20 70 69 76 6C 69 6E 29    nptr[i], pivlin)
02B240:  20 3C 20 30 29 20 2B 2B 69 3B 0D 0A 20 20 20 20     < 0) ++i;..    
02B250:  2D 2D 6A 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28    --j;..    while(
02B260:  69 20 3C 20 6A 29 20 7B 0D 0A 20 20 20 20 20 20    i < j) {..      
02B270:  69 66 28 63 6F 6D 70 61 72 65 28 6C 69 6E 70 74    if(compare(linpt
02B280:  72 5B 6A 5D 2C 20 70 69 76 6C 69 6E 29 20 3E 20    r[j], pivlin) > 
02B290:  30 29 20 2D 2D 6A 3B 0D 0A 20 20 20 20 20 20 65    0) --j;..      e
02B2A0:  6C 73 65 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20    lse break;..    
02B2B0:  20 20 7D 0D 0A 20 20 20 20 69 66 28 69 20 3C 20      }..    if(i < 
02B2C0:  6A 29 20 65 78 63 68 61 6E 67 65 28 69 2C 20 6A    j) exchange(i, j
02B2D0:  29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 6A 3D 75    );..    }..  j=u
02B2E0:  76 3B 0D 0A 20 20 65 78 63 68 61 6E 67 65 28 69    v;..  exchange(i
02B2F0:  2C 20 6A 29 3B 0D 0A 20 20 69 66 28 28 69 2D 6C    , j);..  if((i-l
02B300:  76 29 20 3C 20 28 75 76 2D 69 29 29 20 7B 0D 0A    v) < (uv-i)) {..
02B310:  20 20 20 20 71 75 69 63 6B 28 6C 76 2C 20 69 2D        quick(lv, i-
02B320:  31 29 3B 0D 0A 20 20 20 20 71 75 69 63 6B 28 69    1);..    quick(i
02B330:  2B 31 2C 20 75 76 29 3B 0D 0A 20 20 20 20 7D 0D    +1, uv);..    }.
02B340:  0A 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 71    .  else {..    q
02B350:  75 69 63 6B 28 69 2B 31 2C 20 75 76 29 3B 0D 0A    uick(i+1, uv);..
02B360:  20 20 20 20 71 75 69 63 6B 28 6C 76 2C 20 69 2D        quick(lv, i-
02B370:  31 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D    1);..    }..  }.
02B380:  0A 0D 0A 63 6F 6D 70 61 72 65 28 70 31 2C 20 70    ...compare(p1, p
02B390:  32 29 20 69 6E 74 20 70 31 2C 20 70 32 3B 20 7B    2) int p1, p2; {
02B3A0:  0D 0A 20 20 63 68 61 72 20 2A 70 74 72 31 2C 20    ..  char *ptr1, 
02B3B0:  2A 70 74 72 32 3B 0D 0A 20 20 70 74 72 31 20 3D    *ptr2;..  ptr1 =
02B3C0:  20 6C 69 6E 62 75 66 20 2B 20 28 70 31 20 2D 20     linbuf + (p1 - 
02B3D0:  31 29 3B 20 70 74 72 31 20 3D 20 70 74 72 31 20    1); ptr1 = ptr1 
02B3E0:  2B 20 2A 70 74 72 31 3B 0D 0A 20 20 70 74 72 32    + *ptr1;..  ptr2
02B3F0:  20 3D 20 6C 69 6E 62 75 66 20 2B 20 28 70 32 20     = linbuf + (p2 
02B400:  20 69 66 28 28 66 6C 64 20 3D 3D 20 30 29 26 28     if((fld == 0)&(
02B410:  28 64 65 6C 69 6D 20 21 3D 20 27 20 27 29 7C 28    (delim != ' ')|(
02B420:  2A 70 74 72 20 3E 20 27 20 27 29 29 29 20 7B 0D    *ptr > ' '))) {.
02B430:  0A 20 20 20 20 20 20 20 20 2A 6F 66 66 73 65 74    .        *offset
02B440:  3D 28 70 74 72 2D 73 74 72 29 3B 0D 0A 20 20 20    =(ptr-str);..   
02B450:  20 20 20 20 20 66 6C 64 3D 31 3B 0D 0A 20 20 20         fld=1;..   
02B460:  20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D         }..      }.
02B470:  0A 20 20 20 20 69 66 20 28 2A 6F 66 66 73 65 74    .    if (*offset
02B480:  20 3D 3D 20 2D 31 29 20 2A 6F 66 66 73 65 74 3D     == -1) *offset=
02B490:  28 70 74 72 2D 73 74 72 29 3B 20 2F 2A 2A 20 65    (ptr-str); /** e
02B4A0:  6E 64 20 6F 66 20 6C 69 6E 65 20 2A 2A 2F 0D 0A    nd of line **/..
02B4B0:  20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 7B 20        }..  else { 
02B4C0:  20 2F 2A 2A 20 66 69 65 6C 64 20 69 73 20 74 68     /** field is th
02B4D0:  65 20 63 6F 6C 75 6D 6E 20 6E 75 6D 62 65 72 20    e column number 
02B4E0:  6F 66 20 74 68 65 20 73 6F 72 74 20 6B 65 79 20    of the sort key 
02B4F0:  2A 2A 2F 0D 0A 20 20 20 20 77 68 69 6C 65 28 2A    **/..    while(*
02B500:  28 2B 2B 70 74 72 29 29 3B 0D 0A 20 20 20 20 69    (++ptr));..    i
02B510:  66 28 66 69 65 6C 64 20 3C 20 28 70 74 72 2D 73    f(field < (ptr-s
02B520:  74 72 29 29 20 2A 6F 66 66 73 65 74 3D 66 69 65    tr)) *offset=fie
02B530:  6C 64 3B 0D 0A 20 20 20 20 65 6C 73 65 20 20 20    ld;..    else   
02B540:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2A                   *
02B550:  6F 66 66 73 65 74 3D 28 70 74 72 2D 73 74 72 29    offset=(ptr-str)
02B560:  3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65 74 75    ;..    }..  retu
02B570:  72 6E 20 28 70 74 72 2D 73 74 72 2B 32 29 3B 20    rn (ptr-str+2); 
02B580:  2F 2A 2A 20 69 6E 63 6C 75 64 65 73 20 4E 55 4C    /** includes NUL
02B590:  4C 20 61 6E 64 20 6E 65 78 74 20 6F 66 66 73 65    L and next offse
02B5A0:  74 20 2A 2A 2F 0D 0A 20 20 7D 0D 0A 0D 0A 23 69    t **/..  }....#i
02B5B0:  6E 63 6C 75 64 65 20 22 6F 75 74 2E 63 22 0D 0A    nclude "out.c"..
02B5C0:  23 69 6E 63 6C 75 64 65 20 22 63 61 6E 74 2E 63    #include "cant.c
02B5D0:  22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 73 61 6D    "..#include "sam
02B5E0:  65 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A    e.c"............
02B5F0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02B600:  2D 20 31 29 3B 20 70 74 72 32 20 3D 20 70 74 72    - 1); ptr2 = ptr
02B610:  32 20 2B 20 2A 70 74 72 32 3B 0D 0A 20 20 77 68    2 + *ptr2;..  wh
02B620:  69 6C 65 28 6C 65 78 6F 72 64 65 72 28 2A 2B 2B    ile(lexorder(*++
02B630:  70 74 72 31 2C 20 2A 2B 2B 70 74 72 32 29 20 3D    ptr1, *++ptr2) =
02B640:  3D 20 30 29 0D 0A 20 20 20 20 69 66 28 28 2A 70    = 0)..    if((*p
02B650:  74 72 31 20 3D 3D 20 4E 55 4C 4C 29 7C 7C 28 64    tr1 == NULL)||(d
02B660:  65 6C 69 6D 69 74 28 2A 70 74 72 31 29 29 29 20    elimit(*ptr1))) 
02B670:  72 65 74 75 72 6E 20 30 3B 0D 0A 20 20 69 66 28    return 0;..  if(
02B680:  64 65 6C 69 6D 69 74 28 2A 70 74 72 31 29 29 20    delimit(*ptr1)) 
02B690:  72 65 74 75 72 6E 20 2D 6F 72 64 65 72 3B 0D 0A    return -order;..
02B6A0:  20 20 69 66 28 64 65 6C 69 6D 69 74 28 2A 70 74      if(delimit(*pt
02B6B0:  72 32 29 29 20 72 65 74 75 72 6E 20 20 6F 72 64    r2)) return  ord
02B6C0:  65 72 3B 0D 0A 20 20 69 66 28 6C 65 78 6F 72 64    er;..  if(lexord
02B6D0:  65 72 28 2A 70 74 72 31 2C 20 2A 70 74 72 32 29    er(*ptr1, *ptr2)
02B6E0:  20 3E 20 30 29 20 72 65 74 75 72 6E 20 6F 72 64     > 0) return ord
02B6F0:  65 72 3B 0D 0A 20 20 72 65 74 75 72 6E 20 2D 6F    er;..  return -o
02B700:  72 64 65 72 3B 0D 0A 20 20 7D 0D 0A 0D 0A 64 65    rder;..  }....de
02B710:  6C 69 6D 69 74 28 63 29 20 63 68 61 72 20 63 3B    limit(c) char c;
02B720:  20 7B 0D 0A 20 20 69 66 28 63 20 3E 20 64 65 6C     {..  if(c > del
02B730:  69 6D 29 20 20 20 20 72 65 74 75 72 6E 20 4E 4F    im)    return NO
02B740:  3B 0D 0A 20 20 69 66 28 64 65 6C 69 6D 20 3D 3D    ;..  if(delim ==
02B750:  20 27 20 27 29 20 72 65 74 75 72 6E 20 59 45 53     ' ') return YES
02B760:  3B 0D 0A 20 20 69 66 28 63 20 3C 20 64 65 6C 69    ;..  if(c < deli
02B770:  6D 29 20 20 20 20 72 65 74 75 72 6E 20 4E 4F 3B    m)    return NO;
02B780:  0D 0A 20 20 72 65 74 75 72 6E 20 59 45 53 3B 0D    ..  return YES;.
02B790:  0A 20 20 7D 0D 0A 0D 0A 65 78 63 68 61 6E 67 65    .  }....exchange
02B7A0:  28 69 2C 20 6A 29 20 69 6E 74 20 69 2C 20 6A 3B    (i, j) int i, j;
02B7B0:  20 7B 0D 0A 20 20 69 6E 74 20 6B 3B 0D 0A 20 20     {..  int k;..  
02B7C0:  6B 3D 6C 69 6E 70 74 72 5B 69 5D 3B 20 6C 69 6E    k=linptr[i]; lin
02B7D0:  70 74 72 5B 69 5D 3D 6C 69 6E 70 74 72 5B 6A 5D    ptr[i]=linptr[j]
02B7E0:  3B 20 6C 69 6E 70 74 72 5B 6A 5D 3D 6B 3B 0D 0A    ; linptr[j]=k;..
02B7F0:  20 20 7D 0D 0A 0D 0A 6D 65 72 67 65 28 6E 66 69      }....merge(nfi
02B800:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B810:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B820:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B830:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B840:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B850:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B860:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B870:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B880:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B890:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B8A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B8B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B8C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B8D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B8E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B8F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B9A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B9B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B9C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B9D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B9E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02B9F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02BA00:  6C 65 73 29 20 69 6E 74 20 6E 66 69 6C 65 73 3B    les) int nfiles;
02BA10:  20 7B 0D 0A 20 20 69 6E 74 20 69 2C 20 69 6E 66     {..  int i, inf
02BA20:  2C 20 6C 62 70 2C 20 6C 70 31 2C 20 6E 66 3B 0D    , lbp, lp1, nf;.
02BA30:  0A 20 20 63 68 61 72 20 2A 70 74 72 3B 0D 0A 20    .  char *ptr;.. 
02BA40:  20 6C 62 70 3D 31 3B 20 2F 2A 20 6C 65 61 76 65     lbp=1; /* leave
02BA50:  20 73 70 61 63 65 20 66 6F 72 20 66 69 72 73 74     space for first
02BA60:  20 73 6F 72 74 20 6B 65 79 20 6F 66 66 73 65 74     sort key offset
02BA70:  20 2A 2A 2F 0D 0A 20 20 6E 66 3D 69 3D 30 3B 0D     **/..  nf=i=0;.
02BA80:  0A 20 20 77 68 69 6C 65 28 69 20 3C 20 6E 66 69    .  while(i < nfi
02BA90:  6C 65 73 29 20 7B 20 20 20 20 2F 2A 2A 20 67 65    les) {    /** ge
02BAA0:  74 20 6F 6E 65 20 6C 69 6E 65 20 66 72 6F 6D 20    t one line from 
02BAB0:  65 61 63 68 20 66 69 6C 65 20 2A 2A 2F 0D 0A 20    each file **/.. 
02BAC0:  20 20 20 69 66 28 72 65 61 64 6C 69 6E 65 28 28       if(readline((
02BAD0:  6C 69 6E 62 75 66 2B 6C 62 70 29 2C 20 74 6D 70    linbuf+lbp), tmp
02BAE0:  66 64 5B 69 2B 2B 5D 29 21 3D 4E 55 4C 4C 29 20    fd[i++])!=NULL) 
02BAF0:  7B 0D 0A 20 20 20 20 20 20 6C 69 6E 70 74 72 5B    {..      linptr[
02BB00:  2B 2B 6E 66 5D 3D 6C 62 70 3B 0D 0A 20 20 20 20    ++nf]=lbp;..    
02BB10:  20 20 6C 62 70 3D 6C 62 70 2B 28 4D 41 58 4C 49      lbp=lbp+(MAXLI
02BB20:  4E 45 2B 31 29 3B 0D 0A 20 20 20 20 20 20 7D 0D    NE+1);..      }.
02BB30:  0A 20 20 20 20 7D 0D 0A 0D 0A 20 20 73 6F 72 74    .    }....  sort
02BB40:  28 31 2C 20 6E 66 29 3B 20 20 20 20 2F 2A 2A 20    (1, nf);    /** 
02BB50:  6D 61 6B 65 20 69 6E 69 74 69 61 6C 20 68 65 61    make initial hea
02BB60:  70 20 2A 2A 2F 20 2F 2A 30 34 2A 2F 0D 0A 0D 0A    p **/ /*04*/....
02BB70:  20 20 77 68 69 6C 65 28 6E 66 20 3E 20 30 29 20      while(nf > 0) 
02BB80:  7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 45 53 29    {..    poll(YES)
02BB90:  3B 0D 0A 20 20 20 20 6C 70 31 3D 6C 69 6E 70 74    ;..    lp1=linpt
02BBA0:  72 5B 31 5D 3B 0D 0A 20 20 20 20 70 74 72 3D 6C    r[1];..    ptr=l
02BBB0:  69 6E 62 75 66 2B 6C 70 31 3B 0D 0A 20 20 20 20    inbuf+lp1;..    
02BBC0:  69 66 28 64 75 70 74 65 73 74 28 70 74 72 29 3D    if(duptest(ptr)=
02BBD0:  3D 4E 4F 29 20 73 6F 75 74 28 70 74 72 2C 20 6F    =NO) sout(ptr, o
02BBE0:  75 74 66 69 6C 29 3B 0D 0A 20 20 20 20 69 6E 66    utfil);..    inf
02BBF0:  3D 28 6C 70 31 2F 28 4D 41 58 4C 49 4E 45 2B 31    =(lp1/(MAXLINE+1
02BC00:  2F 2A 0D 0A 2A 2A 20 73 74 72 69 70 20 2D 2D 20    /*..** strip -- 
02BC10:  53 74 72 69 70 20 3C 2C 20 3E 2C 20 61 6E 64 20    Strip <, >, and 
02BC20:  22 20 66 72 6F 6D 20 73 74 72 2E 0D 0A 2A 2F 0D    " from str...*/.
02BC30:  0A 73 74 72 69 70 28 73 74 72 29 20 63 68 61 72    .strip(str) char
02BC40:  20 2A 73 74 72 3B 20 7B 0D 0A 20 20 63 68 61 72     *str; {..  char
02BC50:  20 2A 63 70 3B 0D 0A 20 20 63 70 20 3D 20 73 74     *cp;..  cp = st
02BC60:  72 20 2D 20 31 3B 0D 0A 20 20 77 68 69 6C 65 28    r - 1;..  while(
02BC70:  2A 2B 2B 63 70 20 3D 20 2A 73 74 72 2B 2B 29 20    *++cp = *str++) 
02BC80:  7B 0D 0A 20 20 20 20 73 77 69 74 63 68 28 2A 63    {..    switch(*c
02BC90:  70 29 20 7B 0D 0A 20 20 20 20 20 20 63 61 73 65    p) {..      case
02BCA0:  20 27 3C 27 3A 20 20 63 61 73 65 20 27 3E 27 3A     '<':  case '>':
02BCB0:  20 20 63 61 73 65 20 27 22 27 3A 20 20 2D 2D 63      case '"':  --c
02BCC0:  70 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20    p;..      }..   
02BCD0:  20 7D 0D 0A 20 20 7D 0D 0A 1A 1A 1A 1A 1A 1A 1A     }..  }.........
02BCE0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02BCF0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02BD00:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD10:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD20:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD30:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD40:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD50:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BD90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BDA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BDB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BDC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BDD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BDE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BDF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02BE00:  29 29 3B 20 2F 2A 2A 20 63 6F 6D 70 75 74 65 20    )); /** compute 
02BE10:  66 69 6C 65 20 69 6E 64 65 78 20 2A 2A 2F 0D 0A    file index **/..
02BE20:  20 20 20 20 69 66 28 72 65 61 64 6C 69 6E 65 28        if(readline(
02BE30:  28 6C 69 6E 62 75 66 2B 6C 70 31 29 2C 20 74 6D    (linbuf+lp1), tm
02BE40:  70 66 64 5B 69 6E 66 5D 29 3D 3D 4E 55 4C 4C 29    pfd[inf])==NULL)
02BE50:  0D 0A 20 20 20 20 20 20 6C 69 6E 70 74 72 5B 31    ..      linptr[1
02BE60:  5D 3D 6C 69 6E 70 74 72 5B 6E 66 2D 2D 5D 3B 0D    ]=linptr[nf--];.
02BE70:  0A 20 20 20 20 72 65 68 65 61 70 28 6E 66 29 3B    .    reheap(nf);
02BE80:  0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A    ..    }..  }....
02BE90:  72 65 68 65 61 70 28 6E 66 29 20 69 6E 74 20 6E    reheap(nf) int n
02BEA0:  66 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A    f; {..  int i, j
02BEB0:  3B 0D 0A 20 20 69 3D 31 3B 0D 0A 20 20 77 68 69    ;..  i=1;..  whi
02BEC0:  6C 65 28 28 6A 3D 28 69 3C 3C 31 29 29 20 3C 3D    le((j=(i<<1)) <=
02BED0:  20 6E 66 29 20 7B 0D 0A 20 20 20 20 69 66 28 6A     nf) {..    if(j
02BEE0:  20 3C 20 6E 66 29 20 7B 20 20 20 20 20 20 2F 2A     < nf) {      /*
02BEF0:  2A 20 66 69 6E 64 20 73 6D 61 6C 6C 65 72 20 63    * find smaller c
02BF00:  68 69 6C 64 20 2A 2A 2F 0D 0A 20 20 20 20 20 20    hild **/..      
02BF10:  69 66 28 63 6F 6D 70 61 72 65 28 6C 69 6E 70 74    if(compare(linpt
02BF20:  72 5B 6A 5D 2C 20 6C 69 6E 70 74 72 5B 6A 2B 31    r[j], linptr[j+1
02BF30:  5D 29 20 3E 20 30 29 20 2B 2B 6A 3B 0D 0A 20 20    ]) > 0) ++j;..  
02BF40:  20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 63 6F        }..    if(co
02BF50:  6D 70 61 72 65 28 6C 69 6E 70 74 72 5B 69 5D 2C    mpare(linptr[i],
02BF60:  20 6C 69 6E 70 74 72 5B 6A 5D 29 20 3C 3D 20 30     linptr[j]) <= 0
02BF70:  29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 65 78    ) break;..    ex
02BF80:  63 68 61 6E 67 65 28 69 2C 20 6A 29 3B 20 20 20    change(i, j);   
02BF90:  20 20 2F 2A 2A 20 70 65 72 63 6F 6C 61 74 65 20      /** percolate 
02BFA0:  2A 2A 2F 0D 0A 20 20 20 20 69 3D 6A 3B 0D 0A 20    **/..    i=j;.. 
02BFB0:  20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D       }..  }..../*.
02BFC0:  0A 2A 2A 20 72 65 61 64 6C 69 6E 65 20 2D 2D 20    .** readline -- 
02BFD0:  72 65 61 64 20 6E 65 78 74 20 6C 69 6E 65 2C 20    read next line, 
02BFE0:  73 65 74 20 69 74 73 20 73 6F 72 74 20 6B 65 79    set its sort key
02BFF0:  20 6F 66 66 73 65 74 2C 0D 0A 2A 2A 20 20 20 20     offset,..**    
02C000:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02C010:  25 00 01 00 02 09 52 E5 25 00 41 02 00 00 00 02    %.....R.%.A.....
02C020:  25 00 46 02 00 00 00 02 25 00 42 02 00 00 00 02    %.F.....%.B.....
02C030:  25 00 47 02 00 00 00 02 25 00 43 02 00 00 00 02    %.G.....%.C.....
02C040:  25 00 48 02 00 00 00 02 25 00 44 02 00 00 00 02    %.H.....%.D.....
02C050:  25 00 49 02 00 00 00 02 25 00 45 02 00 00 00 02    %.I.....%.E.....
02C060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C080:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C090:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C0F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02C100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C1A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C1B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C1C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C1D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C1E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C1F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C2A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C2B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C2C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C2D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C2E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C2F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C300:  65 28 31 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C    e(1) {..    poll
02C310:  28 59 45 53 29 3B 0D 0A 20 20 20 20 69 3D 78 69    (YES);..    i=xi
02C320:  6E 64 65 78 28 66 72 6F 6D 2C 20 63 3D 66 67 65    ndex(from, c=fge
02C330:  74 63 28 73 74 64 69 6E 29 2C 20 61 6C 6C 62 75    tc(stdin), allbu
02C340:  74 2C 20 6C 61 73 74 74 6F 29 3B 0D 0A 20 20 20    t, lastto);..   
02C350:  20 69 66 28 28 63 6F 6C 6C 61 70 3D 3D 59 45 53     if((collap==YES
02C360:  29 26 28 69 3E 3D 6C 61 73 74 74 6F 29 26 28 6C    )&(i>=lastto)&(l
02C370:  61 73 74 74 6F 3E 2D 31 29 29 20 7B 20 2F 2A 20    astto>-1)) { /* 
02C380:  63 6F 6C 6C 61 70 73 65 20 2A 2F 0D 0A 20 20 20    collapse */..   
02C390:  20 20 20 69 66 28 66 70 75 74 63 28 74 6F 5B 6C       if(fputc(to[l
02C3A0:  61 73 74 74 6F 5D 2C 20 73 74 64 6F 75 74 29 3D    astto], stdout)=
02C3B0:  3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20 65    =EOF)..        e
02C3C0:  72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72 72    rror("output err
02C3D0:  6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 77 68 69    or");..      whi
02C3E0:  6C 65 28 31 29 20 7B 0D 0A 20 20 20 20 20 20 20    le(1) {..       
02C3F0:  20 69 3D 78 69 6E 64 65 78 28 66 72 6F 6D 2C 20     i=xindex(from, 
02C400:  63 3D 66 67 65 74 63 28 73 74 64 69 6E 29 2C 20    c=fgetc(stdin), 
02C410:  61 6C 6C 62 75 74 2C 20 6C 61 73 74 74 6F 29 3B    allbut, lastto);
02C420:  0D 0A 20 20 20 20 20 20 20 20 69 66 28 69 3C 6C    ..        if(i<l
02C430:  61 73 74 74 6F 29 20 62 72 65 61 6B 3B 0D 0A 20    astto) break;.. 
02C440:  20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20           }..      
02C450:  7D 0D 0A 20 20 20 20 69 66 28 63 3D 3D 45 4F 46    }..    if(c==EOF
02C460:  29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 69 66    ) break;..    if
02C470:  28 28 69 3E 2D 31 29 26 28 6C 61 73 74 74 6F 3E    ((i>-1)&(lastto>
02C480:  2D 31 29 29 20 7B 20 20 20 20 20 20 20 20 20 20    -1)) {          
02C490:  20 20 2F 2A 20 74 72 61 6E 73 6C 61 74 65 20 2A      /* translate *
02C4A0:  2F 0D 0A 20 20 20 20 20 20 69 66 28 66 70 75 74    /..      if(fput
02C4B0:  63 28 74 6F 5B 69 5D 2C 20 73 74 64 6F 75 74 29    c(to[i], stdout)
02C4C0:  3D 3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20    ==EOF)..        
02C4D0:  65 72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72    error("output er
02C4E0:  72 6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 7D 0D    ror");..      }.
02C4F0:  0A 20 20 20 20 65 6C 73 65 20 69 66 28 69 3C 30    .    else if(i<0
02C500:  0D 0A 2F 2A 0D 0A 2A 2A 20 74 61 62 70 6F 73 2E    ../*..** tabpos.
02C510:  63 20 2D 2D 20 72 65 74 75 72 6E 20 59 45 53 20    c -- return YES 
02C520:  69 66 20 63 6F 6C 20 69 73 20 61 20 74 61 62 20    if col is a tab 
02C530:  73 74 6F 70 2C 20 65 6C 73 65 20 4E 4F 0D 0A 2A    stop, else NO..*
02C540:  2F 0D 0A 74 61 62 70 6F 73 28 63 6F 6C 2C 20 74    /..tabpos(col, t
02C550:  61 62 73 29 20 69 6E 74 20 63 6F 6C 3B 20 63 68    abs) int col; ch
02C560:  61 72 20 74 61 62 73 5B 5D 3B 20 7B 0D 0A 20 20    ar tabs[]; {..  
02C570:  69 66 28 63 6F 6C 3E 4D 41 58 4C 49 4E 45 29 20    if(col>MAXLINE) 
02C580:  72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 65    return YES;..  e
02C590:  6C 73 65 20 72 65 74 75 72 6E 20 74 61 62 73 5B    lse return tabs[
02C5A0:  63 6F 6C 5D 3B 0D 0A 20 20 7D 0D 0A 1A 1A 0A 1A    col];..  }......
02C5B0:  0A 1A 5D 3B 0D 0A 20 20 7D 0D 0A 1A 4D 4C 49 4E    ..];..  }...MLIN
02C5C0:  45 5D 3B 0D 0A 20 20 69 6E 74 20 63 6F 6C 2C 20    E];..  int col, 
02C5D0:  69 3B 0D 0A 20 20 73 65 74 74 61 62 28 74 61 62    i;..  settab(tab
02C5E0:  73 29 3B 0D 0A 20 20 63 6F 6C 3D 31 3B 0D 0A 20    s);..  col=1;.. 
02C5F0:  20 77 68 69 6C 65 28 28 63 3D 67 65 74 63 68 61     while((c=getcha
02C600:  AA 28 29 29 21 3D 45 4F 46 29 20 7B 0D 0A 20 20    .())!=EOF) {..  
02C610:  20 20 69 66 28 63 3D 3D 27 5C 74 27 29 0D 0A 20      if(c=='\t').. 
02C620:  20 20 20 20 20 77 68 69 6C 65 28 31 29 20 7B 0D         while(1) {.
02C630:  0A 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72    .        putchar
02C640:  28 27 20 27 29 3B 0D 0A 20 20 20 20 20 20 20 20    (' ');..        
02C650:  2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 20 20 20    ++col;..        
02C660:  69 66 28 74 61 62 70 6F 73 28 63 6F 6C 2C 20 74    if(tabpos(col, t
02C670:  61 62 73 29 3D 3D 59 45 53 29 20 62 72 65 61 6B    abs)==YES) break
02C680:  3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20    ;..        }..  
02C690:  20 20 65 6C 73 65 20 69 66 28 63 3D 3D 27 5C 6E      else if(c=='\n
02C6A0:  27 29 20 7B 0D 0A 20 20 20 20 20 20 70 75 74 63    ') {..      putc
02C6B0:  68 61 72 28 27 5C 6E 27 29 3B 0D 0A 20 20 20 20    har('\n');..    
02C6C0:  20 20 63 6F 6C 3D 31 3B 0D 0A 20 20 20 20 20 20      col=1;..      
02C6D0:  7D 0D 0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20    }..    else {.. 
02C6E0:  20 20 20 20 20 70 75 74 63 68 61 72 28 63 29 3B         putchar(c);
02C6F0:  0D 0A 20 20 20 20 20 20 2B 2B 63 6F 6C 3B 0D 0A    ..      ++col;..
02C700:  29 20 7B 20 20 20 20 20 20 20 20 20 20 20 20 20    ) {             
02C710:  20 20 20 20 20 20 20 20 20 20 2F 2A 20 63 6F 70              /* cop
02C720:  79 20 2A 2F 0D 0A 20 20 20 20 20 20 69 66 28 66    y */..      if(f
02C730:  70 75 74 63 28 63 2C 20 73 74 64 6F 75 74 29 3D    putc(c, stdout)=
02C740:  3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20 65    =EOF)..        e
02C750:  72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72 72    rror("output err
02C760:  6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A    or");..      }..
02C770:  20 20 20 20 7D 20 20 20 20 20 20 20 20 20 20 20        }           
02C780:  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                    
02C790:  20 20 20 20 20 20 20 20 20 2F 2A 20 64 65 6C 65             /* dele
02C7A0:  74 65 20 2A 2F 0D 0A 20 20 66 63 6C 6F 73 65 28    te */..  fclose(
02C7B0:  73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 23    stdout);..  }..#
02C7C0:  69 6E 63 6C 75 64 65 20 22 70 61 74 2E 63 22 0D    include "pat.c".
02C7D0:  0A 23 69 6E 63 6C 75 64 65 20 22 65 72 72 6F 72    .#include "error
02C7E0:  2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 69    .c"..#include "i
02C7F0:  6E 64 65 78 2E 63 22 0D 0A 23 69 6E 63 6C 75 64    ndex.c"..#includ
02C800:  65 20 22 78 69 6E 64 65 78 2E 63 22 0D 0A 23 69    e "xindex.c"..#i
02C810:  6E 63 6C 75 64 65 20 22 6D 61 6B 73 65 74 2E 63    nclude "makset.c
02C820:  22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    "...............
02C830:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02C840:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02C850:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02C860:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02C870:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02C880:  2D 31 29 29 20 7B 20 20 20 20 20 20 20 20 20 20    -1)) {          
02C890:  20 20 2F 2A 20 74 72 61 6E 73 6C 61 74 65 20 2A      /* translate *
02C8A0:  2F 0D 0A 20 20 20 20 20 20 69 66 28 66 70 75 74    /..      if(fput
02C8B0:  63 28 74 6F 5B 69 5D 2C 20 73 74 64 6F 75 74 29    c(to[i], stdout)
02C8C0:  3D 3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20    ==EOF)..        
02C8D0:  65 72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72    error("output er
02C8E0:  72 6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 7D 0D    ror");..      }.
02C8F0:  0A 20 20 20 20 65 6C 73 65 20 69 66 28 69 3C 30    .    else if(i<0
02C900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C9A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C9B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C9C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C9D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C9E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02C9F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CA90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CAA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CAB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CAC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CAD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CAE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CAF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CB00:  2F 2A 0D 0A 2A 2A 20 74 72 69 6D 20 2D 2D 20 74    /*..** trim -- t
02CB10:  72 69 6D 20 5C 6E 20 66 72 6F 6D 20 73 74 72 20    rim \n from str 
02CB20:  26 20 72 65 74 75 72 6E 20 69 74 73 20 6C 65 6E    & return its len
02CB30:  67 74 68 0D 0A 2A 2F 0D 0A 74 72 69 6D 28 73 74    gth..*/..trim(st
02CB40:  72 29 20 63 68 61 72 20 2A 73 74 72 3B 20 7B 0D    r) char *str; {.
02CB50:  0A 20 20 63 68 61 72 20 2A 73 3B 0D 0A 20 20 73    .  char *s;..  s
02CB60:  20 3D 20 73 74 72 20 2D 20 31 3B 0D 0A 20 20 77     = str - 1;..  w
02CB70:  68 69 6C 65 28 2A 2B 2B 73 29 20 3B 20 20 2F 2A    hile(*++s) ;  /*
02CB80:  20 70 72 65 66 69 78 20 2B 2B 20 69 73 20 66 61     prefix ++ is fa
02CB90:  73 74 65 72 20 2A 2F 0D 0A 20 20 69 66 28 28 2A    ster */..  if((*
02CBA0:  2D 2D 73 20 3D 3D 20 27 5C 6E 27 29 20 26 26 20    --s == '\n') && 
02CBB0:  28 73 20 3E 3D 20 73 74 72 29 29 20 2A 73 20 3D    (s >= str)) *s =
02CBC0:  20 4E 55 4C 4C 3B 20 65 6C 73 65 20 2B 2B 73 3B     NULL; else ++s;
02CBD0:  0D 0A 20 20 72 65 74 75 72 6E 20 28 73 20 2D 20    ..  return (s - 
02CBE0:  73 74 72 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 1A 1A    str);..  }......
02CBF0:  1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A    ................
02CC00:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC10:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC20:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC30:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC40:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC50:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC60:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CC90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CCA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CCB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CCC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CCD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CCE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CCF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02CD00:  2F 2A 0D 0A 2A 2A 20 74 72 6E 2E 63 20 2D 2D 20    /*..** trn.c -- 
02CD10:  6D 61 70 20 63 68 61 72 61 63 74 65 72 73 0D 0A    map characters..
02CD20:  2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74    **..** Copyright
02CD30:  20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64     1982 J. E. Hend
02CD40:  72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73    rix.  All rights
02CD50:  20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A     reserved...*/..
02CD60:  23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E    #include <stdio.
02CD70:  68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 6F    h>..#include "to
02CD80:  6F 6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E 65 20    ols.h"..#define 
02CD90:  4E 4F 43 43 41 52 47 43 0D 0A 23 64 65 66 69 6E    NOCCARGC..#defin
02CDA0:  65 20 4D 41 58 41 52 47 20 38 30 0D 0A 23 64 65    e MAXARG 80..#de
02CDB0:  66 69 6E 65 20 4D 41 58 53 45 54 20 31 32 37 0D    fine MAXSET 127.
02CDC0:  0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76    .main(argc, argv
02CDD0:  29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67    ) int argc, *arg
02CDE0:  76 3B 20 7B 0D 0A 20 20 63 68 61 72 20 61 72 67    v; {..  char arg
02CDF0:  5B 4D 41 58 41 52 47 2B 31 5D 2C 20 63 2C 20 66    [MAXARG+1], c, f
02CE00:  72 6F 6D 5B 4D 41 58 53 45 54 2B 31 5D 2C 20 74    rom[MAXSET+1], t
02CE10:  6F 5B 4D 41 58 53 45 54 2B 31 5D 3B 0D 0A 20 20    o[MAXSET+1];..  
02CE20:  69 6E 74 20 61 6C 6C 62 75 74 2C 20 63 6F 6C 6C    int allbut, coll
02CE30:  61 70 2C 20 69 2C 20 6C 61 73 74 74 6F 2C 20 65    ap, i, lastto, e
02CE40:  72 72 6F 72 3B 0D 0A 20 20 61 75 78 62 75 66 28    rror;..  auxbuf(
02CE50:  73 74 64 69 6E 2C 20 34 30 39 36 29 3B 0D 0A 20    stdin, 4096);.. 
02CE60:  20 65 72 72 6F 72 3D 4E 4F 3B 0D 0A 20 20 69 66     error=NO;..  if
02CE70:  28 67 65 74 61 72 67 28 31 2C 20 61 72 67 2C 20    (getarg(1, arg, 
02CE80:  4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 72    MAXARG, argc, ar
02CE90:  67 76 29 3D 3D 45 4F 46 29 20 65 72 72 6F 72 3D    gv)==EOF) error=
02CEA0:  59 45 53 3B 0D 0A 20 20 69 66 28 28 28 61 72 67    YES;..  if(((arg
02CEB0:  5B 30 5D 3D 3D 27 2D 27 29 26 28 61 72 67 5B 31    [0]=='-')&(arg[1
02CEC0:  5D 3C 3D 27 20 27 29 29 7C 28 65 72 72 6F 72 3D    ]<=' '))|(error=
02CED0:  3D 59 45 53 29 29 20 7B 0D 0A 20 20 20 20 66 70    =YES)) {..    fp
02CEE0:  75 74 73 28 22 75 73 61 67 65 3A 20 54 52 4E 20    uts("usage: TRN 
02CEF0:  5B 7E 5D 66 72 6F 6D 20 5B 74 6F 5D 5C 6E 22 2C    [~]from [to]\n",
02CF00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CF90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CFA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CFB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CFC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CFD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CFE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02CFF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D000:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D010:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D020:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D030:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D040:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D050:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D060:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D070:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D080:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D090:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D0A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D0B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D0C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D0D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D0E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D0F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D100:  20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 61     stderr);..    a
02D110:  62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D    bort(7);..    }.
02D120:  0A 20 20 69 66 28 61 72 67 5B 30 5D 3D 3D 4E 4F    .  if(arg[0]==NO
02D130:  54 29 20 7B 0D 0A 20 20 20 20 61 6C 6C 62 75 74    T) {..    allbut
02D140:  3D 59 45 53 3B 0D 0A 20 20 20 20 69 66 28 6D 61    =YES;..    if(ma
02D150:  6B 73 65 74 28 61 72 67 2C 20 31 2C 20 66 72 6F    kset(arg, 1, fro
02D160:  6D 2C 20 4D 41 58 53 45 54 29 3D 3D 4E 4F 29 0D    m, MAXSET)==NO).
02D170:  0A 20 20 20 20 20 20 65 72 72 6F 72 28 22 66 72    .      error("fr
02D180:  6F 6D 2D 6C 69 73 74 20 74 6F 6F 20 6C 61 72 67    om-list too larg
02D190:  65 22 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65    e");..    }..  e
02D1A0:  6C 73 65 20 7B 0D 0A 20 20 20 20 61 6C 6C 62 75    lse {..    allbu
02D1B0:  74 3D 4E 4F 3B 0D 0A 20 20 20 20 69 66 28 6D 61    t=NO;..    if(ma
02D1C0:  6B 73 65 74 28 61 72 67 2C 20 30 2C 20 66 72 6F    kset(arg, 0, fro
02D1D0:  6D 2C 20 4D 41 58 53 45 54 29 3D 3D 4E 4F 29 0D    m, MAXSET)==NO).
02D1E0:  0A 20 20 20 20 20 20 65 72 72 6F 72 28 22 66 72    .      error("fr
02D1F0:  6F 6D 2D 6C 69 73 74 20 74 6F 6F 20 6C 61 72 67    om-list too larg
02D200:  65 22 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69    e");..    }..  i
02D210:  66 28 67 65 74 61 72 67 28 32 2C 20 61 72 67 2C    f(getarg(2, arg,
02D220:  20 4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61     MAXARG, argc, a
02D230:  72 67 76 29 3D 3D 45 4F 46 29 20 74 6F 5B 30 5D    rgv)==EOF) to[0]
02D240:  3D 4E 55 4C 4C 3B 0D 0A 20 20 65 6C 73 65 20 69    =NULL;..  else i
02D250:  66 28 6D 61 6B 73 65 74 28 61 72 67 2C 20 30 2C    f(makset(arg, 0,
02D260:  20 74 6F 2C 20 4D 41 58 53 45 54 29 3D 3D 4E 4F     to, MAXSET)==NO
02D270:  29 0D 0A 20 20 20 20 65 72 72 6F 72 28 22 74 6F    )..    error("to
02D280:  2D 6C 69 73 74 20 74 6F 6F 20 6C 61 72 67 65 22    -list too large"
02D290:  29 3B 0D 0A 20 20 6C 61 73 74 74 6F 3D 73 74 72    );..  lastto=str
02D2A0:  6C 65 6E 28 74 6F 29 2D 31 3B 0D 0A 20 20 69 66    len(to)-1;..  if
02D2B0:  28 28 73 74 72 6C 65 6E 28 66 72 6F 6D 29 3E 28    ((strlen(from)>(
02D2C0:  6C 61 73 74 74 6F 2B 31 29 29 7C 28 61 6C 6C 62    lastto+1))|(allb
02D2D0:  75 74 3D 3D 59 45 53 29 29 20 63 6F 6C 6C 61 70    ut==YES)) collap
02D2E0:  3D 59 45 53 3B 0D 0A 20 20 65 6C 73 65 20 63 6F    =YES;..  else co
02D2F0:  6C 6C 61 70 3D 4E 4F 3B 0D 0A 20 20 77 68 69 6C    llap=NO;..  whil
02D300:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02D310:  26 00 01 00 02 09 52 E5 26 00 41 02 00 00 00 02    &.....R.&.A.....
02D320:  26 00 46 02 00 00 00 02 26 00 42 02 00 00 00 02    &.F.....&.B.....
02D330:  26 00 47 02 00 00 00 02 26 00 43 02 00 00 00 02    &.G.....&.C.....
02D340:  26 00 48 02 00 00 00 02 26 00 44 02 00 00 00 02    &.H.....&.D.....
02D350:  26 00 49 02 00 00 00 02 26 00 45 02 00 00 00 02    &.I.....&.E.....
02D360:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D370:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D380:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D390:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D3F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02D400:  0D 0A 2F 2A 0D 0A 2A 2A 20 78 69 6E 64 65 78 2E    ../*..** xindex.
02D410:  63 20 2D 2D 20 69 6E 76 65 72 74 20 63 6F 6E 64    c -- invert cond
02D420:  69 74 69 6F 6E 20 72 65 74 75 72 6E 65 64 20 62    ition returned b
02D430:  79 20 69 6E 64 65 78 0D 0A 2A 2F 0D 0A 78 69 6E    y index..*/..xin
02D440:  64 65 78 28 61 72 72 61 79 2C 20 63 2C 20 61 6C    dex(array, c, al
02D450:  6C 62 75 74 2C 20 6C 61 73 74 74 6F 29 20 63 68    lbut, lastto) ch
02D460:  61 72 20 61 72 72 61 79 5B 5D 2C 20 63 3B 20 69    ar array[], c; i
02D470:  6E 74 20 61 6C 6C 62 75 74 2C 20 6C 61 73 74 74    nt allbut, lastt
02D480:  6F 3B 20 7B 0D 0A 20 20 69 66 28 63 3D 3D 45 4F    o; {..  if(c==EO
02D490:  46 29 20 72 65 74 75 72 6E 20 2D 31 3B 0D 0A 20    F) return -1;.. 
02D4A0:  20 65 6C 73 65 20 69 66 28 61 6C 6C 62 75 74 3D     else if(allbut=
02D4B0:  3D 4E 4F 29 20 72 65 74 75 72 6E 20 69 6E 64 65    =NO) return inde
02D4C0:  78 28 61 72 72 61 79 2C 20 63 29 3B 0D 0A 20 20    x(array, c);..  
02D4D0:  65 6C 73 65 20 69 66 28 69 6E 64 65 78 28 61 72    else if(index(ar
02D4E0:  72 61 79 2C 20 63 29 3E 2D 31 29 20 72 65 74 75    ray, c)>-1) retu
02D4F0:  72 6E 20 2D 31 3B 0D 0A 20 20 65 6C 73 65 20 72    rn -1;..  else r
02D500:  65 74 75 72 6E 20 6C 61 73 74 74 6F 2B 31 3B 0D    eturn lastto+1;.
02D510:  0A 20 20 7D 0D 0A 1A EB 2F 7C B5 CA 21 3A C3 24    .  }..../|..!:.$
02D520:  3A C3 67 39 21 06 00 39 CD C8 2F 7C B5 CA 52 3A    :.g9!..9../|..R:
02D530:  21 08 00 39 CD C8 2F E5 21 08 00 39 E5 CD C8 2F    !..9../.!..9.../
02D540:  2B D1 CD D0 2F D1 19 E5 21 20 00 D1 CD CD 2F C3    +.../...! ..../.
02D550:  24 3A C1 C1 C9 C5 C5 C5 C5 C5 C5 C5 C5 3B 3B EB    $:...........;;.
02D560:  21 F9 1A 39 F9 EB C5 3B 21 03 00 39 E5 21 06 00    !..9...;!..9.!..
02D570:  D1 19 E5 21 00 00 D1 CD CD 2F 21 1E 00 39 E5 21    ...!...../!..9.!
02D580:  20 00 39 E5 21 02 00 E5 21 24 00 39 CD C8 2F D1     .9.!...!$.9../.
02D590:  CD 6F 30 D1 19 D1 CD D0 2F 21 0E 00 39 E5 21 20    .o0...../!..9.! 
02D5A0:  00 39 CD C8 2F E5 21 02 00 D1 19 CD C8 2F D1 CD    .9../.!....../..
02D5B0:  D0 2F 21 0E 00 39 CD C8 2F CD C2 2F E5 21 3F 00    ./!..9../../.!?.
02D5C0:  D1 CD EB 2F 7C B5 CA E5 3A 21 10 00 39 E5 21 02    .../|...:!..9.!.
02D5D0:  00 D1 CD D0 2F 21 0E 00 39 E5 CD C8 2F 23 D1 CD    ..../!..9.../#..
02D5E0:  D0 2F C3 F1 3A 21 10 00 39 E5 21 01 00 D1 CD D0    ./..:!..9.!.....
02D5F0:  2F 21 0B 00 39 E5 21 10 00 39 E5 CD C8 2F 23 D1    /!..9.!..9.../#.
02D600:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D610:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D620:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D630:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D640:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D650:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D660:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D670:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D680:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D690:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D6A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D6B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D6C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D6D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D6E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D6F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D700:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D710:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D720:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D730:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D740:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D750:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D760:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D770:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D780:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D790:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D7A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D7B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D7C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D7D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D7E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D7F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D800:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D810:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D820:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D830:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D840:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D850:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D860:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D870:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D880:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D890:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D8A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D8B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D8C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D8D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D8E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D8F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D9A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D9B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D9C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D9D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D9E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02D9F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DA90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DAA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DAB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DAC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DAD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DAE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DAF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DB90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DBA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DBB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DBC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DBD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DBE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DBF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DC90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DCA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DCB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DCC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DCD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DCE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DCF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DD90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DDA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DDB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DDC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DDD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DDE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DDF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DE90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DEA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DEB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DEC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DED0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DEE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DEF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DF90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DFA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DFB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DFC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DFD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DFE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02DFF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E000:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E010:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E020:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E030:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E040:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E050:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E060:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E070:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E080:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E090:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E0A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E0B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E0C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E0D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E0E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E0F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E1A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E1B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E1C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E1D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E1E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E1F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E2A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E2B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E2C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E2D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E2E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E2F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E3A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E3B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E3C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E3D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E3E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E3F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E400:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E410:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E420:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E430:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E440:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E450:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E460:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E470:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E480:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E490:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E4A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E4B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E4C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E4D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E4E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E4F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E500:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E510:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E520:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E530:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E540:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E550:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E560:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E570:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E580:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E590:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E5A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E5B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E5C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E5D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E5E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E5F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E600:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02E610:  27 00 01 00 02 09 52 E5 27 00 41 02 00 00 00 02    '.....R.'.A.....
02E620:  27 00 46 02 00 00 00 02 27 00 42 02 00 00 00 02    '.F.....'.B.....
02E630:  27 00 47 02 00 00 00 02 27 00 43 02 00 00 00 02    '.G.....'.C.....
02E640:  27 00 48 02 00 00 00 02 27 00 44 02 00 00 00 02    '.H.....'.D.....
02E650:  27 00 49 02 00 00 00 02 27 00 45 02 00 00 00 02    '.I.....'.E.....
02E660:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E670:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E680:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E690:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E6F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02E700:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E710:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E720:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E730:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E740:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E750:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E760:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E770:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E780:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E790:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E7A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E7B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E7C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E7D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E7E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E7F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E800:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E810:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E820:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E830:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E840:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E850:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E860:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E870:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E880:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E890:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E8A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E8B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E8C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E8D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E8E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E8F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E900:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E910:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E920:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E930:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E940:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E950:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E960:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E970:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E980:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E990:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E9A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E9B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E9C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E9D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E9E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02E9F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EA90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EAA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EAB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EAC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EAD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EAE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EAF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EB90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EBA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EBB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EBC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EBD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EBE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EBF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EC90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ECA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ECB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ECC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ECD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ECE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ECF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02ED90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EDA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EDB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EDC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EDD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EDE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EDF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EE90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EEA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EEB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EEC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EED0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EEE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EEF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF00:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF10:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF20:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF30:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF40:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF50:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF60:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF70:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF80:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EF90:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EFA0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EFB0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EFC0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EFD0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EFE0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02EFF0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F000:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F010:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F020:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F030:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F040:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F050:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F060:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F070:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F080:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F090:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F0A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F0B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F0C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F0D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F0E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F0F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F100:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F110:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F120:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F130:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F140:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F150:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F160:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F170:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F180:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F190:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F1A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F1B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F1C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F1D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F1E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F1F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F200:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F210:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F220:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F230:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F240:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F250:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F260:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F270:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F280:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F290:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F2A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F2B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F2C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F2D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F2E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F2F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F300:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F310:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F320:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F330:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F340:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F350:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F360:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F370:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F380:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F390:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F3A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F3B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F3C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F3D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F3E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F3F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F400:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F410:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F420:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F430:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F440:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F450:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F460:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F470:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F480:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F490:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F4A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F4B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F4C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F4D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F4E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F4F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F500:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F510:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F520:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F530:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F540:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F550:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F560:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F570:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F580:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F590:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F5A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F5B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F5C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F5D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F5E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F5F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F600:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F610:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F620:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F630:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F640:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F650:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F660:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F670:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F680:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F690:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F6A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F6B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F6C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F6D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F6E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F6F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F700:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F710:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F720:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F730:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F740:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F750:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F760:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F770:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F780:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F790:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F7A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F7B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F7C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F7D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F7E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F7F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F800:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F810:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F820:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F830:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F840:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F850:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F860:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F870:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F880:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F890:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F8A0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F8B0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F8C0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F8D0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F8E0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F8F0:  E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5    ................
02F900:  54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00    Track-Info......
02F910:  28 00 01 01 00 01 52 E5 28 00 01 00 20 20 80 00    (.....R.(...  ..
02F920:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F930:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F940:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F950:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F960:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F970:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F980:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F990:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9A0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9B0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9C0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9D0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9E0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02F9F0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FA00:  01 02 03 04 05 00 03 00 30 80 00 00 10 00 88 04    ........0.......
02FA10:  10 09 47 21 00 01 00 35 32 33 2D 30 33 37 43 20    ..G!...523-037C 
02FA20:  20 20 20 20 20 20 20 53 43 48 4E 45 49 44 45 52           SCHNEIDER
02FA30:  20 44 55 50 20 33 22 2D 31 30 30 2F 34 30 20 32     DUP 3"-100/40 2
02FA40:  53 20 44 44 20 53 53 00 00 20 20 20 20 20 20 20    S DD SS..       
02FA50:  20 20 20 20 20 20 20 00 00 00 00 37 30 32 39 32           ....70292
02FA60:  2D 30 30 77 00 04 00 77 00 8E 01 00 00 00 00 00    -00w...w........
02FA70:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FA80:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FA90:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FAA0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FAB0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FAC0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FAD0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FAE0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
02FAF0:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
RESULT OF SEARCH :
PRO=110   CHEA=0   COD=7   MUSI=0   COP=76   GRA=18   WRIT=27   198=15   199=0   STARTER=0   KBI=0   CAAV=0   L.TOURNIER=0  
EXTENDED CPC DSK File    SAMdisk150708*  RAFBGCHDIEi33!"!5G2$!DM!'#(DMi3B!0PY  F
ailed to load the configuration sector   $Y$*(&Y  Illegal configuration sector  
 $*"*"2C!2! !d#(GN#!'F!-F!3F#(PWF#N#8Y  Expansion buffer full or illegal token s
pecified   $ OGl  #$O1 #V!Kx("py2$SKC!'K8*R"(8 K!! &#(V#s#r#z  y2!C#V#!5 ) R(0+"
o&"MDGG  KC2O!*"$'! #7 0#O$OSC.SYS wurde nicht gefunden.  BASICirgendeine Taste 
druecken BASI$OSC    SYS52DjDj   $wwCP/M 2.2 - Amstrad Consumer Electronics plc 
 $ BO BO 11111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111f222222222222222222222222222222222222222222222222222222
22222222222222222222222222222222222222222222222233333333333333333333333333334£ H
!62 !6/H!6 !/HH!w20E!S!W6£ z!6cm!c6z!6l , HH 2£E£12v!q!*8!*6!q  !p+q.* !q*&!p+q*
2i3B!0PY  Failed to load the configuration sector   $Y$*(&Y  Illegal configurati
on sector   $*"*"2C!2! !d#(GN#!'F!-F!3F#(PWF#N#8Y  Expansion buffer full or ille
gal token specified   $ OGl  #$OX                COPYRIGHT (C) 1979, DIGITAL RES
EARCH     # 22 !22a2!B!6#5! )!F#x0ww!"!6(!#* ""# . Oo$!Y2*O"Gwx2p0#*6w0#6 .0#*6w
0#6 #6"# xDIR ERA TYPESAVEREN USER!yO# Ty#O321y2y21A92.!#fow!v"!READ ERRORNO FIL
E  RAFBGCHDIE! 3#0 WxxG  # 3x#B!Y2!!T! 6#O KAxK K  xBR9!5#Y#"TALL (Y/N)T!6!w4!Yt
fT2o&)+!"**#" 2yWyOxOxG*V5dw N N#Fy*#u*#DM*6#x**s#r*6#6A#$2Ek/GyO2!q*C"*JOyx s-N
-# S2E!wTD6k-PYy5*zBK5dy!NO SPACETy!B*Os#"sG!Ypsp2mfFILE EXISTS  2) T!k!qqf!222!
!B! #0O#Cx21)fzBAD LOADCOMf !$$$     SUB *COT*CwD-'-*C Ox!N!Fwyx*Cw#+w#w+2E22i*C
w# # w2!E5T*C!"C"C!w# F! wx2*CwG!4$Zx22!Z2Ew"C2!"E9"1A22!ty)K!G#V*CE ,&-AGMS!!!!
Bdos Err On   $Bad Sector$Select$File R/O$BA2!6O   EB2 b* y!4 5yy5 6yHOyH H #H! 
H H H $O2*CN#  22T*CGwn2ODMH"*CddslOs#rEy*Ww#*"*G#"!w4!iwZ!E262*C!!#OG#n,-.! w!y
G!x.E!q!pQE.$.Ei62ExN!OGG!G*C!r#r#ry#x#x2 p&+72H! w!5Nkx#Nx !2 ! 5#wOxp Hy!qMD#2
E!#V w#PBO#V#"##"##"##"!O*!O*!66*w#w*w#w'*!J*""!N#F*#V*#foyx*zW+*s+p+q-*C !!q#p#
w*BOYG*MD"£!Bw!2*C2uB22wEA*Cw"!""2B!"!rQQQrQ*"CQ-QQQrQ$Q*)B"*)*)Q*"EA2AQQQ*C//*W
£*"£og"*C6w2E**EDQ2yx#*DM*s#r*s#ryOxG*0MD!!N EGO S*Cqn&#VO"**)"Oo"*C*C!222Oww go
*#  )BO!yoxg*BO!N#F"*#*s#r!J! J*o$*Ci6iw**#zr+sozg****,w!!N#F$**O!#!  RAFBGCHDIE
PIP     COMPROOF   SUB DICT        DICT        !"#$%&HISTORY    '()STDIO   H  *T
OOLS   H  +,BUF     C  -./CANT    C  0CATSUB  C  1CHG     C  23CPY     C  4567CN
T     C  89CPT     C  DTB     C  DIGIT   C  ABORTED$BAD PARAMETER$INVALID USER N
UMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z$CHECKSUM ERROR$CORRECT ER
ROR, TYPE RETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$S
TART NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILE$DESTINATION IS R/O, 
DELETE (Y/N)$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWE
R FOR OPERATION.$UNRECOGNIZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT
 READ$INVALID SEPARATOR$1 2L M9EDT     C  JABCDEFEDT2    C  BGHIJKLMNOETB     C 
 PQERROR   C  RFND     C  SFNT     C  TUVFMT     C  WXYZabFMT2    C  cdeFMT3    
C  mfghijklmnopqrsGETWRD  C  tINDEX   C  uLST     C  vwxyMAKSET  C  zMAKSUB  C  
MRG     C  OUT     C  2212!o6+6+6!6#6!6#6G*o.!N6*M!K6!6!6+6' $2K x'! '! $ $!N6' 
!Cw!6c!6/!/H2£ H!62 !6/H!6 !/PAGE    C  PAT     C  4PRT     C  !PRINTF  C  SAME 
   C  SCOPY   C  SETTAB  C  STP     C  SRT     C  DSTRIP   C  TABPOS  C  TRN    
 C  TRIM    C  XINDEX  C  HH!w20E!S!W6£ z!6cm!c6z!6l , HH 2£E£12v!q!*8!*6!q  !p+
q.* !q*&!p+q*2!p+q*2!p+q*22!p+q*!p+q*!p+q*!p+q*2!p+q*!p+q* !q*& *M*M!p+q*!!p+q*"
!p+q*$!6 !kp+q*j!qp+q/*pDM9 M2rN!r!r*r&N!r4!6 .!ws+p+q+p+qw2wN *s*u w*s#"s*u#"u'
 !"*M7!x6!x **DM2y y *"*62x *"!x4d !"/!j2 !"*KM'!z6!z1*(INP/OUTSPACE)(INP/OUTSPA
CE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OU
TSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(IN
P/OUTSPACE)(INP/OUTSPACE)   COPYRIGHT (C) 1979, DIGITAL RESEARCH,  PIP VERS 1.5$
$$     SUB ., INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PUNTTYCRTUC1CONNULEOFDIS
K READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING 
 $NOT A CHARACTER SOURCE$  RAFBGCHDIE"*DM' *"!z4 e!"!z6!z'2*H#"H!6!*&4 2!4m*"!z4
I'2!"!q !4!SS!2*£M!#V *w*#"  *M !6q !6q !6q *& !6 !6  !60 *& !6 !6 !6 *&  .147FP
fqSQHIN22 H"2202Oc!6202O*&O*&!sc*&Pw!22!6!£6'!£E!£4!p+q*0 !r+s+p+q*$7**H&*#"*#" 
2R!6!62!6H9!6-e!622-"2!!52!2!q" *Mn c4 *Mn 2!cQ !c2 !cw!n !5 Y   !6!q!lw    0O !
qO O !62lo'2on'2nm'2m*mM£ *nM£ *oM£     *2D" ** *&"!qUYY2!62!!6 ! !6Q£H!6*M  !6!
qa/z!-!p+q,!6*DM9!6z 2W!6D*&Lw2Ov*20O0AOA H!wOidV2O2!X!6!O!LNE!4 E E/.*&L6$L9k9.
X*KM020 020121''!G6!"!"7*Mn/a/H!6!&6/H2!qA/Z!/H8 2OmW!QHmd9!62*M!E#VO **2*#"m2m2
m!6m!6m!6m2mm!62m!62m!62m!62m'22T£2!£6*ME2£22 2i2d*M2*"!b!!0!qE24J!46*a!44EJ *KM
'!36'n0f9OY#9.3'.020'''7 6'!jA+!s!"1!"**"n"Dn""!Q2X!W*MEO2Mc!6#6!)*&P"HH*M!(2% !
F!5+N!2!42T!b*bMzb2!b62!*M!6!6 (!q!wO!2*&w!!4!6N2N! *N&N2 !p+q!6!6+6 !6 SM!6g8N2
M*M8p!6!6!6!*&P6!4z!6!6#6#6!6*M8*g2,A2OHH"!6!4jYO jM*"S*" 3bl*M1!""7*M!"H*#"/9.*
#"!' !'6!36' 1/!aE*#"zC9I.!6!*&'2 y.*M!4Q!22!2K2K!!K !p+q**M8)!N5!65!6#6!!62O/!O
!T*MHK!6!N522!44!6.2O8*g !N5!6%2*6 *6!q!6 !d*&I!4A2O*w!6!q!6!g!q*&*!622 HA2O 2  
RAFBGCHDIEDM!  H-N2Oogozg#V)))ozg#V) d#Vgo nozgOozgiN#Fogo&ogH ' !'6!36' 1/!aE*#
"zC9I.!6!*&'2 y.*M!4Q!22!2K2K!!K !p+q*  adapting  add  added  adding  addition  
additional  additions  address  addressed  addresses  addressing  adds  adequate
  adhere  adjust  adjusted  adjusting  adjusts  administrative  advantage  advan
tages  advice  affect  affected  affecting  affects  afraid  after  again  again
st  age  ahead  aid  alarm  algorithm  alias  aligns  all  allocate  allocated  
allocates  allocating  allocation  allocations  allow  allowed  allowing  allows
  alone  along  alphabet  alphabetic  alphabetics  already  also  alter  altered
  altering  alternate  alternately  alternative  alters  although  altogether  a
lways  am  american  among  amount  amounts  an  analogous  analyzer  and  annou
nce  announcement  announcements  another  answer  answering  anticipate  antici
pates  anxious  any  anyone  anything  anyway  anywhere  apart  apostrophe  appa
rent  appealing  appear  appearance  appeared  appearing  appears  append  appen
ded  appendices  appendix  appends  applicable  application  applications  appli
ed  apply  applying  aB  ATRN $1         PROOF1.TMP a-zA-Z-' n  ASRT PROOF1.TMP 
PROOF2.TMP -U  ERA    PROOF1.TMP  AMRG  PROOF2.TMP ADICT -1 PROOF3.TMP  ERA    P
ROOF2.TMP  AEDT  PROOF3.TMP  AMRG  PROOF3.TMP ADICT    ADICT.NEW  ERA    PROOF3.
TMP    ppreciate  approach  approaches  appropriate  appropriately  approximated
  approximately  arbitrarily  arbitrary  architecture  are  area  areas  argumen
t  arguments  arises  arithmetic  around  arrangement  arranges  arranging  arra
y  arrays  arrive  article  articles  as  ascending  ascertain  aside  asked  as
king  aspects  assemble  assembled  assembler  assemblers  assembles  assembling
  assembly  assessed  assign  assigned  assignment  assignments  assigns  assist
  assisted  associate  associated  associates  assume  assumed  assumes  assumin
g  assumption  assumptions  asterisk  at  attached  attempt  attempting  attempt
s  attention  audible  augmented  author  auto  automatic  automatically  auxili
ary  availability  available  avoid  avoided  avoiding  await  aware  away  awkw
ard  b  back  background  backing  backslashes  backspace  backspaces  backup  b
adly  bar  bare  barrier  base  based  basic  be  bears  became  because  become
  becomes  been  before  beforehand  began  begin  beginning  begins  b  -  --  
a  abbreviated  ability  able  abnormal  abort  aborted  aborting  aborts  about
  above  absence  absolute  absolutely  abuse  accent  accept  acceptable  accep
tance  accepted  accepting  accepts  access  accessed  accesses  accessing  acci
dental  accidentally  accommodate  accompanies  accomplished  accomplishes  acco
rding  accordingly  account  accumulator  accuracy  achieve  achieved  achieving
  acquired  acronyms  across  action  actions  activates  activities  activity  
actual  actually  adapt  RAFBGCHDIEegun  behavior  behind  being  bell  bells  b
elow  benchmark  benefits  berserk  besides  best  better  between  beyond  bina
ry  binding  bit  bits  blank  blanks  block  blocking  blocks  blows  body  bon
es  book  books  booming  boot  booting  borrow  both  bother  bottom  bounds  b
ox  braces  bracket  brackets  branch  break  breaks  brevity  brief  briefly  b
rings  broken  brought  browse  buffer  buffering  buffers  bug  bugs  build  bu
ilding  builds  built  business  but  button  buy  buyer  by  bye  uting  constr
aint  contain  contained  containing  contains  contend  content  contents  cont
ext  contexts  contiguous  continuable  continue  continued  continues  continui
ng  continuous  control  controlled  controller  controlling  controls  convenie
nt  convention  conventional  conventions  conversing  conversion  convert  conv
erted  converting  converts  convinced  cooperate  cooperation  copied  copies  
copy  copying  copyright  copyrighted  core  correct  corrected  correction  cor
rections  correctlybypass  byte  bytes  c  calculated  calculates  calculations 
 call  called  caller  caller's  calling  calls  came  camouflages  can  can't  
cancel  cancels  cannot  capabilities  capability  capable  capacity  capitalizi
ng  caps  capture  care  careful  carriage  carry  cascade  case  cases  caught 
 cause  caused  causes  causing  ceases  center  centered  centering  centers  c
ertain  cessation  chain  chains  chance  change  changed  changes  changing  ch
apter  chapters  character  characters  chart  chec  correspond  corresponded  c
orresponding  corresponds  corrupted  corrupting  cost  costs  could  couldn't  
count  counted  counter  counterparts  counting  counts  course  covered  covers
  create  created  creates  creating  creation  credited  critical  crypt  crypt
ic  cumulative  current  currently  cursory  custom  customary  customize  custo
mized  cut  cyclic  d  daily  damaged  danger  data  date  de-allocated  dead  d
eadline  deal  dealing  deals  dealt  dear  deblocking  debt  debugger  debuggin
g  k  checked  checker  checking  checks  chief  chip  choice  choices  chokes  
choose  choosing  chore  chose  chosen  circumflex  circumstances  cite  claimed
  clarity  class  clean  clear  cleared  clearing  clearly  clears  close  close
d  closely  closes  closing  code  coded  codes  coexist  collaboration  collaps
e  collapsed  collapses  collapsing  collection  colon  colons  column  columns 
 combination  combinations  combine  combined  combines  combining  come  comes 
 comfortable  coming  comma  commandecember  decide  decided  decides  decimal  
decipher  decisions  declaration  declarations  declare  declared  declares  dec
rease  decreased  decreases  decrement  decrements  dedicated  default  defaults
  define  defined  defines  defining  definition  definitions  definitive  delay
  delete  deleted  deletes  deleting  delight  delimit  delimited  delimiter  de
limiters  delimits  delivered  demanding  demonstrated  denied  denies  denser  
density  deny  depend  dependence  dependent  depending  depends  dd  commands  
commas  commence  commences  commencing  comment  comments  commercial  common  
commonly  communications  compact  compare  compared  compares  comparing  compa
rison  comparisons  compatibility  compatible  compelling  compilation  compile 
 compiled  compiler  compiler's  compilers  compiles  compiling  complement  com
plements  complete  completely  completeness  completion  complex  complicated  
complication  component  components  composed  composing  compound  comprehensiv
e  compress  compreerive  derives  descending  describe  described  describes  d
escribing  description  descriptions  descriptive  descriptor  descriptors  desi
gn  designate  designated  designates  designation  designator  designed  design
ing  desirable  desired  desires  destination  destroy  detail  details  detect 
 detected  determine  determined  determines  develop  developed  developing  de
velopment  device  devices  devoted  diagnostic  diagram  dictionary  did  didn'
t  differ  difference  differences  different  diffssed  comprised  comprising  
computer  computers  concatenated  concatenating  conceived  concept  concepts  
conceptual  concern  concerned  concerning  concerns  concert  concise  concisel
y  condition  conditional  conditions  configured  conflict  conform  conforming
  conjunction  connected  consecutive  conserves  consider  considerable  consid
erations  considered  considering  considers  consist  consistent  consisting  c
onsists  console  constant  constantly  constants  constitute  constitutes  cons
tit  RAFBGCHDIEers  difficult  difficulty  digit  digits  dilemma  dimension  di
mensions  direct  directed  directing  direction  directive  directives  directl
y  directory  disable  disabled  disables  disadvantage  disappearance  discard 
 discarded  discontinue  discontinued  discounts  discover  discuss  discussed  
discussion  disk  diskette  diskettes  disks  dispatches  displace  displacement
  displacements  display  displayable  displayed  displaying  displays  distingu
ish  distributed  distribution  diverts  dividel  failed  failing  fails  failur
e  fairly  faithful  fall  falling  falls  false  familiar  familiarity  far  fa
shion  fast  faster  fat  feature  features  february  feed  feel  feet  fence  
fetch  fetched  fetches  few  fewest  field  fields  fifth  figure  file  file's
  files  fill  filled  filling  fills  final  finally  find  finding  findings  
finds  fine  finish  finished  first  fit  five  fix  fixed  fixes  flag  flaggi
ng  flags  flaw  flexibility  flexible  flip  flop  floppy  flow  flush  flushed
  divides  do  doctor  document  documentary  documentation  documented  documen
ts  does  doesn't  doing  dollar  domain  done  double  doubled  doubles  doubt 
 doubtful  down  drawback  drive  driver  drivers  drives  drop  dropped  drops 
 dubbed  dummy  dump  dumped  duplicate  duplicated  duplicates  during  duty  d
ynamic  dynamically  e  each  earlier  early  ease  easier  easily  easy  echoed
  echoes  echoing  edge  edit  edited  editing  editor  editors  effect  effecti
ve  effectively  effects  efficd  flushes  flushing  folded  folds  follow  foll
owed  following  follows  fool  foolproof  foot  for  force  forced  forces  for
cing  foreign  forget  form  format  formats  formatted  formatter  formatters  
formatting  formed  former  forming  forms  forward  found  foundation  fountain
  four  fourth  free  freed  freeing  freely  frequently  fresh  friendly  frill
s  frog  from  front  full  fully  function  functional  functions  further  fut
ure  g  gap  gaps  garbage  garbled  gathered  gathering  generiency  efficient 
 effort  eight  either  element  elements  eleven  eliminate  eliminated  elimin
ates  eliminating  ellipsis  else  embedded  emphasis  emphasizes  employ  emplo
yed  employs  empty  enable  enabled  enables  enabling  enclose  enclosed  enco
unter  encountered  encounters  encouraged  encouragement  encryption  end  end-
of-file  ended  ends  enforce  engineering  enhanced  enhancement  enhancements 
 enhances  enlarge  enough  ensure  enter  entered  entering  enthusiastic  enti
re  entirely  eal  generally  generate  generated  generates  generating  genera
tion  generative  generic  get  gets  getting  give  given  gives  giving  globa
l  go  goal  goes  going  gone  good  gracefully  graciously  grave  great  grea
ter  greatly  group  groups  grow  growing  grows  guarantee  guaranteed  guaran
tees  guidance  guide  guinea  gulp  h  had  half  hall  halt  halted  halting  
halts  hand  handbook  handle  handled  handles  handling  handy  happen  happen
ings  happens  happy  hard  harder  hardware  hntitled  entries  entry  envelope
s  environment  environments  equal  equality  equalized  equally  equate  equat
ed  equates  equivalent  erased  erasure  erroneous  error  errorcode  errors  e
scape  escaped  especially  essentially  establish  establishes  establishing  e
stimate  etc  evaluate  evaluated  even  eventually  ever  every  everyone  ever
ything  exactly  examination  examining  example  examples  excellent  except  e
xception  exceptional  exceptions  excess  exchange  exchanged  exchanges  excla
rmony  has  hash  have  having  he  head  header  headers  heading  headings  he
ar  hears  held  help  helpful  helps  hence  here  heretofore  hex  hexadecimal
  high  high-level  high-order  higher  highest  highly  him  his  hits  hitting
  hobbies  hold  holding  holds  home  honor  honored  honoring  hooked  hope  h
orizon  horizontal  host  hours  housekeeping  how  however  humans  hybrid  hyp
hen  hyphens  i  i'll  idea  ideal  ideas  identical  identification  identified
  identifies  identify  if  ignude  excluded  exclusive  executable  execute  ex
ecuted  executes  executing  execution  exhausted  exist  existed  existence  ex
isting  exists  exit  exited  exiting  expand  expanded  expands  expansion  exp
ect  expected  expecting  expects  expense  experience  experienced  explained  
explains  explicit  explicitly  exploit  express  expressed  expression  express
ions  extend  extended  extends  extension  extensions  extensive  extent  exter
nal  extra  f  facilitate  facilities  fact  factor  facts  fai  RAFBGCHDIEore  
ignored  ignores  illegal  illustrate  illustrated  illustrates  image  imaginat
ion  imagine  immaterial  immediate  immediately  impact  implement  implementat
ion  implementations  implemented  implementing  implements  implicit  implicite
ly  implied  implies  imply  importance  important  impose  imposed  impossible 
 improve  improved  improvement  improvements  in  inappropriate  include  inclu
ded  includes  including  inclusion  inclusive  incoming  inconsistent  increase
  increased  increasing  inkage  linked  linking  links  lisp  list  listed  lis
ting  listings  lists  literal  literally  literals  little  load  loaded  loade
r  loaders  loading  loads  local  locate  located  locates  locating  location 
 locations  logic  logical  logically  long  longer  look  looked  looking  look
s  loop  lose  loses  loss  lost  lot  lots  love  low  low-level  low-order  lo
wer  lowest  m  machine  machines  macro  made  magnitude  mail  mailing  main  
mainframes  maintaining  maintains  maintenance  major  makcrement  incremental 
 incremented  incrementing  increments  indeed  indefinite  indent  indented  in
denting  indention  independence  independent  independently  index  indicate  i
ndicated  indicates  indicating  indicator  indirect  indirectly  individual  in
dividually  inefficiencies  inequality  inexpensive  information  informs  infri
nges  initial  initialization  initialize  initialized  initially  initiate  ini
tiated  initiates  inner  input  inputs  insert  inserted  inserting  inserts  i
nside  insie  makes  making  man  management  manipulate  manipulated  manipulat
ion  manipulations  manner  manual  manually  many  map  margin  margins  mark  
marks  match  matched  matches  matching  material  matrix  matter  maximum  may
  me  mean  meaning  meanings  means  mechanism  meet  meeting  memory  mentione
d  mentions  merely  merge  merged  merges  merging  message  messages  metachar
acters  method  methods  micro  microcomputer  microcomputers  micros  middle  m
ight  migration  mind  minimize  minimum  mdious  inspiration  inspired  install
  installation  installed  installing  instance  instances  instead  instruct  i
nstructing  instruction  instructions  instructs  insufficient  intact  integer 
 integers  integrity  intelligent  intend  intended  intent  interaction  interc
ept  intercepts  interest  interested  interesting  interface  interfaces  inter
fere  interfering  internals  interpretation  interpreted  interrupt  interrupte
d  interrupting  interruption  interruptions  interrupts  interspersed  intinor 
 minus  minute  minutes  mirror  miscellaneous  missing  mississippi  misspelled
  misspellings  mistake  mixed  mixing  mnemonic  mnemonics  mode  modes  modest
  modification  modifications  modified  modifiers  modify  modifying  module  m
odules  monitor  monitored  monitors  more  most  mount  mounted  move  moved  m
oves  mr  much  multiple  multiplies  multiply  must  mutually  my  mysterious  
n  name  named  names  naming  natural  naturally  nature  near  nearly  neat  n
ecessarily  necessary  needervening  into  introduce  introduced  introduces  in
troduction  introductory  invalid  invalidated  invalidating  invaluable  invoke
  invoked  invokes  invoking  involve  involved  involves  involving  inward  ir
onically  irritants  is  isolated  isolating  issue  issued  issuing  it  it's  
item  iteration  its  itself  j  january  job  join  joined  journal  judged  ju
dicious  judiciously  jump  jumps  just  justification  justified  justify  just
ifying  k  keep  keeping  keeps  kept  key  keyboard  keys   needed  needs  nega
te  negates  negative  neglected  nested  nesting  never  nevertheless  new  nex
t  nibble  nibbles  no  nominal  non-zero  noncommercial  none  nor  normal  nor
mally  north  not  notation  note  notes  nothing  notice  november  now  nucleu
s  nuisance  null  number  numbered  numbering  numbers  numeric  numerical  num
erically  o  obey  object  objectives  objects  observe  observing  obtain  obta
ined  obtaining  obtains  obvious  occasional  occasionally  occasions  occupied
  occupies  keyword  kind  kinds  know  knowing  knowledgeable  known  knows  l 
 label  labels  laboratories  laboratory  labs  lack  lag  language  languages  
large  largely  larger  last  later  latest  latter  lay  layout  leading  leap 
 learn  learned  learning  learns  least  leave  leaves  leaving  left  leftmost
  legal  length  lengths  less  let  lets  letter  letters  level  levels  libra
ries  library  licensee  like  likelihood  likely  likewise  limitations  limite
d  limiting  limits  line  lines  link  lin  RAFBGCHDIE occupy  occupying  occur
  occurred  occurrence  occurrences  occurring  occurs  odd  of  off  offer  off
ers  offset  offsets  often  oh  old  omitted  on  once  one  one's  ones  only 
 onto  open  opened  opening  operand  operands  operate  operated  operates  op
erating  operation  operations  operator  operators  opportunity  opposed  oppos
ite  optimistic  optimization  optimize  optimized  optimizer  optimizing  optio
n  optional  optionally  options  or  order  ordinarily  ordinary  organization 
 organi private  privilege  probable  probably  problem  problems  procedure  pr
ocedures  proceed  proceeding  proceeds  process  processed  processes  processi
ng  processor  processors  produce  produced  produces  producing  product  prod
uctive  productivity  professionally  professors  program  program's  programmer
  programmer's  programmers  programming  programs  progress  project  projects 
 promised  prompt  prompted  prompting  prompts  proof  proofing  proofreading  
proofs  proper  properly  properties  pzational  organize  organized  oriented  
origin  original  originally  other  others  otherwise  our  out  outcome  outer
  outline  outlined  output  outputs  outside  over  overcomes  overflow  overhe
ad  overlaid  overlap  overlaps  overlays  overridden  override  overrides  over
view  overwritten  own  p  package  packages  padded  page  pages  paid  pair  p
airs  palatable  paper  paragraph  paragraphs  parallel  parallels  parameter  p
arameters  parentheses  parity  park  part  partial  particular  particrotection
  prototype  prove  proves  provide  provided  provides  providing  provision  p
roximity  pseudo  public  published  publisher  punched  punctuation  purchased 
 purge  purpose  purposes  pursue  push  pushed  pushes  pushing  put  puts  put
ting  q  quad  quality  question  questionable  questions  queue  quick  quit  q
uite  quotation  quoted  quotes  quotient  r  ragged  ran  random  randomly  ran
ge  rate  rather  re-entering  re-enters  reached  reaches  read  readable  read
er  readers  reading  rulars  partitioned  parts  pass  passed  passes  passing 
 past  pat  patch  patches  patching  patiently  pattern  patterns  pause  pause
d  pauses  pausing  pay  pending  penetration  people  per  percent  perfectly  
perforations  perform  performance  performed  performing  performs  period  per
iodic  periodically  peripheral  permission  permit  permits  permitted  permitt
ing  person  personalize  personalized  pertaining  pertains  phase  phases  phi
losophy  phonetic  physical  physically  pick  picked  eads  ready  real  realiz
e  realized  really  reason  reasonably  reasoned  reasons  reassembled  reassem
bling  recalculate  recall  recalled  recapture  received  receives  receiving  
recent  recently  recognize  recognized  recognizing  recommended  recompiled  r
ecompiling  record  records  redefined  redefines  redirect  redirectable  redir
ected  redirecting  redirection  redisplay  reduce  reduced  reduces  reducing  
redundancy  refer  reference  referenced  references  referencing  referred  ref
erring piece  pig  piggyback  pile  place  placed  placement  places  placing  p
lans  pleasant  please  pleased  plus  point  pointed  pointer  pointers  pointi
ng  points  poll  polling  poorly  pop  popped  pops  popular  popularity  port 
 portability  portable  ported  porting  portion  ports  pose  posed  position  
positional  positions  positive  possibilities  possibility  possible  possibly 
 postage  power  powerful  practical  practice  pre-allocating  precaution  prec
autionary  precede  preceded  precedes  refers  reflect  reflects  refuses  rega
ins  regardless  register  registers  regular  reinstate  reinstated  rejected  
relating  relationship  relative  relatively  release  releases  relief  relinqu
ish  reloaded  reloading  relocatable  relocate  relocated  relocates  relocatin
g  reluctance  reluctant  remain  remainder  remaining  remains  remaninig  reme
mber  remembered  remembering  remembers  remove  removed  removes  removing  re
name  renowned  renumber  renumbered  renumbering  reorganized  repeat  precedin
g  precision  preclude  preface  prefer  prefix  prefixed  prefixes  prefixing  
preparation  prepare  prepared  preparing  prerequisite  prerogative  prescribes
  presence  present  presentation  presented  presenting  presently  presents  p
reserve  preserved  press  pressed  pressing  presumably  pretty  prevent  preve
nted  preventing  prevents  previewing  previous  previously  prewritten  price 
 primarily  primary  primitives  print  printable  printed  printer  printing  p
rints  prior  priority   RAFBGCHDIE repeatedly  repeating  repetitive  replace  
replaced  replacement  replaces  replacing  report  reported  reporting  reports
  represent  representation  representations  represented  representing  represe
nts  reprint  request  requested  requests  require  required  requirement  requ
irements  requires  requiring  requisite  resemble  resembling  reserve  reserve
d  reserves  reserving  reset  reside  resident  resides  residing  resized  res
olve  resort  resource  resources  respect  respectable  respectiveolution  solv
ed  solving  some  something  sometimes  somewhat  somewhere  soon  sooner  sort
  sorted  sorting  sorts  sought  sound  sounded  sounds  source  sources  space
  spaced  spaces  spacing  span  special  specially  specific  specifically  spe
cification  specifications  specified  specifies  specify  specifying  speed  sp
elling  spent  spilling  spirit  split  splits  splitting  spread  spreading  sp
urious  square  squeeze  squeezed  squeezing  stack  staging  stand  standard  s
tandardize  standinly  respects  responds  response  responses  responsibility  
rest  restart  restarted  restarting  restarts  restores  restoring  restrict  r
estricted  restriction  restrictions  result  resulted  resulting  results  resu
me  resumed  resumes  resuming  resumption  retain  retained  retains  retrainin
g  return  returned  returning  returns  reusable  reuse  reused  reusing  rever
se  reversed  reverses  review  revised  revising  revision  rewrite  rewriting 
 rewritten  rich  right  rightmost  rights  road  rg  stands  star  start  start
ed  starting  starts  state  stated  statement  statements  status  stay  steals
  steep  step  steps  stick  still  stop  stopping  stops  storage  stored  stor
es  straight  strange  stream  strict  strictly  strikes  string  strings  strip
ped  strokes  structure  structured  structures  students  studied  study  style
d  subject  submitted  subordinate  subprograms  subroutine  subroutines  subscr
ipted  subscripts  subsection  subsections  subsequent  subset  substantially  s
ubsock  room  rotate  rotates  round  rounded  route  routine  routines  rub  ru
bbed  rule  rules  run  running  runs  s  safe  safeguard  said  sake  same  sam
ple  sandwiched  save  saved  saves  saving  say  says  scale  scaled  scan  sca
ns  scheme  science  scientific  score  scream  screen  scrolled  scrolling  scr
olls  search  searched  searches  searching  second  secondary  section  section
s  sector  sectors  secure  security  see  seek  seeking  seeks  seem  seemed  s
eems  seen  sees  segmented  segmentitute  substituted  substitutes  substitutio
n  substitutions  subtract  subtracted  subtracting  subtracts  succeed  success
  successful  successfully  successive  successively  such  suffer  suffice  suf
fix  suffixes  suggest  suggested  suggestion  suggestions  suggests  suit  suit
able  suited  sum  summary  superfluous  superior  supplement  supplied  supplie
s  supply  supplying  support  supported  supports  suppose  suppress  suppresse
d  sure  surface  surprise  surrounded  surrounding  survive  suspits  seldom  s
elected  selection  selects  self  self-contained  semicolon  semicolons  send  
sending  sends  senior  sensitive  sent  sentence  separate  separated  separate
ly  separates  separator  september  sequence  sequences  sequential  sequential
ly  serial  serially  series  serve  serves  service  services  set  sets  setti
ng  settings  setup  several  shared  sharp  sheet  sheets  shell  shift  shifte
d  shifts  shipping  short  shortage  shorter  shorthand  should  shouldn't  sho
w  showing  shown  cious  swap  swaps  switch  switches  switching  symbol  symb
olic  symbolically  symbols  synonyms  syntax  system  systems  t  tab  table  t
ables  tabs  tail  take  taken  takes  taking  tapes  target  task  tasks  techn
ique  techniques  tedious  telephone  tell  telling  tells  temporarily  tempora
ry  tempted  tend  tendencies  tends  term  terminate  terminated  terminates  t
erminating  termination  terminator  terminology  terms  test  tested  testing  
tests  text  textual  than  thanks  that  that's  tshows  shudder  shuffling  si
de  sided  sides  sidestepped  sign  signal  signaling  signals  signed  signifi
cance  significant  significantly  signifying  signs  silenced  silently  simila
r  similarly  simple  simpler  simplest  simplicity  simply  simulation  simulta
neously  since  sincere  sincerely  single  sits  sitting  situation  situations
  six  size  sizes  sizing  skip  skipped  skipping  skips  slash  slashes  slee
p  slight  slightly  slower  small  smaller  snap  snuff  snuffing  so  software
  s   R A F B G C H D I Ehe  their  them  themselves  then  theoretically  theor
y  there  thereafter  therefore  these  they  thing  think  thinking  third  thi
s  thorough  those  though  thought  three  through  throughout  thus  tied  tig
ht  time  times  to  together  toggle  toggles  told  too  tool  tools  top  top
ic  totally  toward  trace  track  tracks  trade  trademark  trailer  trailing  
transaction  transactions  transfer  transferred  transferring  transfers  trans
formed  translate  translated  translating  translation  translator  translators
  transliterate  transliterating  traversed  treat  treated  tremendous  trial  
trick  trivial  true  truly  truncated  trying  turn  turned  turnkey  turns  tw
o  type  typed  types  typically  typing  typographical  u  unacceptable  unaffe
cted  unaltered  unanticipated  unchanged  uncomfortable  unconditional  undefin
ed  under  underline  underlined  underlining  underlying  underscore  underscor
es  understand  understanding  understood  unequal  unfortunately  uninterruptab
le  unintSmall-Tools Revision History    -- included in version 1.1    --- edt c
hanges   1. Do not abort run on error loading file named in command line.   2. R
ename original file to .$$$ extension before writing it anew.      Delete .$$$ f
ile if successful.   3. Add "z" command to "zip" through the buffer from the cur
rent line      until interrupted by any input.   4. Abort iterative commands on 
ESC from console.      Abort "print" and "zip" commands on any input.    --- fmt
 changes   5. add .bf command for boldfacerrupted  unique  uniqueness  unit  uni
ts  university  unknown  unless  unlike  unlink  unmatched  unmentioned  unmodif
ied  unnecessarily  unnecessary  unpredictable  unrecognizable  unrestricted  un
signed  unsocial  unsolicited  unsuccessfully  until  untouched  unused  unusual
  unwanted  up  update  updated  updates  updating  upon  upper  uppercase  upwa
rd  usable  usage  use  used  useful  user  user's  users  uses  using  usual  u
sually  usurp  usurps  utility  utilization  v  valid  validated  validate.   6.
 add -bs# switch for number of boldface strikes.   7. add -s switch to show sour
ce files.   8. use switch statement.   9. fix bug causing the printing of pages 
with only a heading/footing.  10. add EPSON mode for underlines and boldface.   
   -bs# switch is effective only in TTY mode.  11. add -t switch to set TTY mode
.  12  add .it command for italics in EPSON mode.  13. add -i switch to substitu
te italics for underlines.  14. add -u switch to substitute underlines for itali
cs.  15. make boldface ales  valley  valuable  value  valued  values  variable  
variables  varies  variety  various  vary  varying  vastly  vector  verb  verifi
es  verify  versa  version  versions  vertical  very  vice  video  view  viewed 
 viewing  views  violated  violates  virtual  virtually  volume  w  waited  wait
ing  waits  want  wanted  wants  warning  was  wasted  way  ways  we  we'll  wee
d  well  were  what  whatever  when  whenever  where  wherever  whether  which  
whichever  while  whistles  white  who  whole  whose  whyso double strike.  16. 
enhance italics.  17. use "switch" in comtyp()  18. keep bold/italics/underline 
out of headings/footers.  19. don't obscure blank lines with .ul, .bf, .it.  20.
 prevent blank pages on .bp at last line of a page.  21. add -nr switch to negat
e "ready printer..." prompt.  22. make ".mp #" algorithm wait # lines before for
cing another page break.  23. make -ec# print multiple copies even w/o mergefile
.  24. add ".dw #" command for nontty mode double wide print.    --- lst changes
  25. all  wide  widespread  widow  width  wife  will  wipe  wish  wishes  with 
 within  without  word  words  work  working  workings  works  world  worth  wor
thiness  would  wouldn't  wraps  write  writer  writes  writing  written  wrong 
 wrote  x  y  year  yet  yield  yielding  yields  you  your  yours  z  zebra  ze
ro  zeroed  zeroes    were  what  whatever  when  whenever  where  wherever  whe
ther  which  whichever  while  whistles  white  who  whole  whose  why  RAFBGCHD
IEow bare filename in leu of redirection spec for stdin in the      command line
.    --- mrg changes  26. Merge based on a lexicographical ordering rather than 
the straight      ASCII colating sequence.    --- prt changes  27. Force output 
to LST unless stdout is redirected away from the console.    --- srt changes  28
. unless specified otherwise with the -t switch, temporary files go to      the 
default drive.    -- included in version 1.2    --- fmt changes  29. subscript f
rom // to  or white space, and /*  ** Small-Tools definitions.  **  ** The metac
haracter definitions do not completely  ** follow UNIX or the Software-Tools def
initions.  **  ** You may change anything to suit your preferences.  */  #define
 MAXFN      15  /* max file name space */  #define EXTMARK    '.' /* file extens
ion mark */  #define MAXLINE   192  /* max text line space */            /* WY-5
0, TV-920, HZ-1500, AD-VP */  #define CLEAR "3353" /* screen erase */  #define C
RTWIDE    80  /* screen width */  #define CRTHIGH    24  /* s     superscript fr
om  to // or white space.    --- srt changes  30. fix improper closing of temp f
iles.  31. make duptest() check -u switch instead of assuming it is set.  32. fi
x potential problem in merge() if input temp file is null.  33. fix test for esc
ape from merge loop.  go to      the default drive.    -- included in version 1.
2    --- fmt changes  29. subscript from // to  or white space, and creen height
 */    #define PTRWIDE    80  /* page width */  #define PTRHIGH    66  /* page h
eight */  #define PTRSKIP     8  /* page perforation skips */  #define PTRHDR   
   2  /* page header lines */    #define MAXPAT    257  /* max pattern in intern
al format */  #define CHAR       'c' /* identifies a character */  #define BOL  
      '' /* beginning of line */  #define EOL       ''' /* end of line */  #defi
ne ANY        '' /* any character */  #define CCL        '' /* begin character c
lass */  #define NCCL       '' /* negation of character class */  #define CCLEND
     '' /* end of character class */  #define CLOSURE    '*' /* zero or more occ
urrences */  #define DITTO      '' /* whatever string matches pattern */  #defin
e ESCAPE     '' /* escape character */  #define NOT        '' /* negation charac
ter */    #define DITCODE    -3    #define COUNT       1  #define PREVCL      2 
 #define START       3  #define CLOSIZE     4  /*  ** STDIO.H -- Standard Small-
C Definitions  **  ** Copyright 1983  L. E. Payne and J. E. Hendrix  */  #define
 stdin    0  #define stdout   1  #define stderr   2  #define ERR   (-2)  #define
 EOF   (-1)  #define YES      1  #define NO       0  #define NULL     0  #define
 CR      13  #define LF      10  #define BELL     7  #define SPACE  ' '  #define
 NEWLINE LF      /*23*/ /*45*/    RAFBGCHDIE  /*  ** buf.c -- buffer manipulatio
n functions (memory version)  */    int gotline, gotind  char *bufptr    /*  ** 
clrbuf -- initialize for new file (stub)  */  clrbuf()     return        /*  ** 
getind -- locate line index in buf  */  getind(ln) int ln     int j    if((jln-g
otline)  0)      while(j--) getint(gotind+NEXT, &gotind, INTEGER)    else if(j  
0)      while(j++) getint(gotind+PREV, &gotind, INTEGER)    gotlineln    return 
gotind        /*  ** getint -- obtain integer or long from     relink(LINE0, LIN
E0, LINE0, LINE0)    lastbfLINE0+TEXT    addset(NULL, buf, &lastbf, maxbuf)    g
otlinecurlnlastln0    gotindLINE0          ++lastln        /*  ** relink -- rewr
ite two half links  */  relink(a, x, y, b) int a, x, y, b     putint(x+PREV, &a,
 INTEGER)    putint(y+NEXT, &b, INTEGER)    updtflagYES        /*  ** setbuf -- 
initialize line storage buffer  */  setbuf() buf at offset  */  getint(offset, d
est, length) int offset, length char *dest     bufptrbuf+offset    while(length-
-)  *dest++  *bufptr++        /*  ** putint -- place integer or long into buf at
 offset  */  putint(offset, source, length) int offset, length char *source     
bufptrbuf+offset    while(length--) *bufptr++  *source++        /*  ** gettxt --
 locate text for line and make available  */  gettxt(line) int line     int i, j
, k    i(kgetind(line)) + TEXT    j0    while(txtj++  /*  ** cant.c -- abort wit
h "name can't open" message  */  cant(str) char *str     fputs(str, stderr)    f
puts(" can't openn", stderr)    abort(7)      bufi++)    return k        /*  ** 
input -- input text from fd into buf  */  input(fd) int fd     int k3    while(Y
ES)       if(poll(YES)ESC) return ERR      k3lastbf      if(fgets(buf + (lastbf 
+ TEXT), MAXLINE, fd))         lastbf + trim(buf+lastbf) + 1        inlink(k3)  
      if((lastbf+MAXLINE)  maxbuf)           fputs("memory overflow ", stderr)  
        return ERR                        else break          lastbf - TEXT    r
eturn OK        /*  ** inject -- put text from lin after curln  */  inject(lin) 
char lin     int i, k3    if(*linNULL)       *lin'n'      *(lin+1)NULL          
i0    while(lini!NULL)       k3lastbf      lastbflastbf+TEXT      while(lini!NUL
L)         if(lini'n')           ++i          break                  addset(lini
++, buf, &lastbf, maxbuf)              if(addset(NULL, buf, &lastbf, maxbuf)NO) 
        fputs("memory overflow ", stderr)        return ERR              inlink(
k3)          return OK      /*  ** catsub.c -- add replacement text to end of ne
w  */  catsub(lin, from, to, sub, new, k, maxnew)    char lin, new, sub    int f
rom, to, *k, maxnew       int i, j    i0    while(subi!NULL)       if(subiDITCOD
E)         jfrom        while(j  to) addset(linj++, new, k, maxnew)             
 else addset(subi, new, k, maxnew)      ++i            /    if(addset(NULL, sub,
 &j, MAXPAT)NO) return ERR /** no room **/    return i      AT, subMAXPAT  char 
argMAXARG     /*  ** inlink -- link injected line  */  inlink(k3) int k3     int
 k1, k2    k1getind(curln)    /** leaves gotline & gotind before affected area *
*/    getint(k1+NEXT, &k2, INTEGER)    relink(k1, k3, k3, k2)    relink(k3, k2, 
k1, k3)    ++curln    ++lastln        /*  ** relink -- rewrite two half links  *
/  relink(a, x, y, b) int a, x, y, b     putint(x+PREV, &a, INTEGER)    putint(y
+NEXT, &b, INTEGER)    updtflagYES        /*  ** setbuf -- initialize line stora
ge buffer  */  setbuf()    R A F B G C H D I E  /*  ** cpy.c -- copy named files
 to standard output  **  ** Copyright 1982 J. E. Hendrix.  All rights reserved. 
 */  #include stdio.h  #include "tools.h"  #define NOCCARGC  #define MAXARG 12  
int fin, i, j  int status  int binary, striplf, stripcr, from, to  char nameMAXF
N, inclextMAXFN  main(argc, argv) int argc, *argv     auxbuf(stdout, 4096)    do
args(argc, argv)    if((binaryYES)&(inclext0!NULL))       fputs("cannot include 
files during binary copy", stderr)      abort(7)         /*  ** chg.c -- change 
occurrences of "from" to "to"  **  ** Copyright 1982 J. E. Hendrix.  All rights 
reserved.  */  #include stdio.h  #include "tools.h"  #define NOCCARGC  #define M
AXARG 49  #define MAXLIN1 (MAXLINE+1)  char linMAXLIN1, newMAXLIN1, patMAXPAT, s
ubMAXPAT  char argMAXARG  int i, k, lastn, n  main(argc, argv) int argc, *argv  
   if((getarg(1, arg, MAXARG, argc, argv)EOF)      ((arg0'-')&(arg10)))      err
or("usage CHG pattern replacementn")    if(makpat(arg,   fin99    i0    while(ge
targ(++i, name, MAXFN, argc, argv)!EOF)       if((name0'-')(name0EXTMARK)) conti
nue      if((finfopen(name, "r"))NULL) cant(name)      if(binary) bcopy(fin, std
out)      else       fcopy(fin, stdout)      fclose(fin)          if(fin99)     
  if(binary) bcopy(stdin, stdout)      else       fcopy(stdin, stdout)          
fclose(stdout)        doargs(argc, argv) int argc, *argv     int len    char arg
MAXARG, error    inclext0fromtoNULL    bin 0, NULL, pat)ERR)      error("pattern
 too longn")    if(getarg(2, arg, MAXARG, argc, argv)EOF)      arg0NULL    if(ma
ksub(arg, 0, NULL, sub)ERR)      error("replacement too longn")    auxbuf(stdin,
 4096)  /** alloc aux buffer to stdin **/    while(fgets(lin, MAXLIN1, stdin)!NU
LL)       poll(YES)      lastn  -1      i0  k0      trim(lin)      while(YES)   
      namatch(lin, i, pat)        if((n0)&(lastn!n))    /** replace matched text
 **/          catsub(lin, i, n, sub, new, arystriplfstripcrerrorNO    i0    whil
e(getarg(++i, arg, MAXARG, argc, argv)!EOF)       if(arg0EXTMARK)         j0    
    while(inclextjargj) ++j        continue              if(arg0!'-') continue  
    if(arg2NULL)         if(same(arg1, 'b')) binaryYES        else errorYES     
         else if(arg4NULL)         if(same(arg1, 'n'))           if(same(arg2, '
c') & same(arg3, 'r'))            stripcrbinaryYES          else if(same(arg2, '
l') & same(arg3&k, MAXLIN1)          lastnn                  if(liniNULL) break 
       if((n-1)(ni))       /** no match or null match **/          addset(lini, 
new, &k, MAXLIN1)          ++i                  else in                 /** skip
 matched text **/              if(addset(NULL, new, &k, MAXLIN1)NO)         kMAX
LIN1-1        addset(NULL, new, &k, MAXLIN1)        sout("7line truncated ", std
err)        lout(new, stderr)              lout(new, stdout)          fclose(std
out)     , 'f'))            striplfbinaryYES          else errorYES             
     else errorYES              else if(same(arg1, 't'))         binaryYES      
  lenutoi(arg+2, &from)        if((len1)(arglen+2!',')) errorYES        else    
       jlen+3          lenutoi(arg+j, &to)          if((len1)(arglen+j!NULL)) er
rorYES                        else errorYES      if(error)         fputs("usage 
CPY file... . -B -NCR -NLF -T#,#n", stderr)        abort(7)        #include "pat
.c"  #include "maksub.c"  #include "catsub.c"  #include "index.c"  #include "err
or.c"  #include "out.c"  #include "trim.c"    text **/              if(addset(NU
LL, new, &k, MAXLIN1)NO)         kMAXLIN1-1        addset(NULL, new, &k, MAXLIN1
)        sout("7line truncated ", stderr)        lout(new, stderr)              
lout(new, stdout)          fclose(stdout)       RAFBGCHDIE                 bcopy
(in, out) int in, out     char c1    while(YES)       statusread(in, c, 1)      
if(status0) break      if(isatty(in)&(c04)) break      if(status  1)         fpu
ts("input errorn", stderr)        fclose(out)        abort(7)              if((c
0CR)&(stripcr)) continue      if((c0LF)&(striplf)) continue      if((from!to)&((
c0&255)from)) c0to      statuswrite(out, c, 1)      if(status  1)         fputs(
"output errorn", stderr)        fclose(r(arg1))         case 'c' case 'w' case '
l' continue        default          fputs("usage CNT file -C-W-Ln", stderr)     
     abort(7)                  ncnlnw0    inwordNO    while((cfgetc(fd))!EOF)   
    poll(YES)      if(c'n')         ++nl              else ++nc      if(isspace(
c)) inwordNO      else if(inwordNO)         inwordYES        ++nw               
   itou(nc, strc, 6)    itou(nw, strw, 6)    itou(nl, strl, 6)    switch(f)     
  case 'c' lout(strout)        abort(7)              poll(YES)              fcop
y(in, out) int in, out     int i, loc, in2    char bufMAXLINE+1, strMAXLINE+1   
 while(fgets(buf, MAXLINE+1, in)!NULL)       poll(YES)      if(inclext0NULL)    
     sout(buf, out)        continue              loc0      getwrd(buf, &loc, str
)      if((lexcmp(str, "#include")!0) &&         (lexcmp(str, ".so")!0))        
 sout(buf, out)        continue              getwrd(buf, &loc, str)      strip(s
tr)      i0  c, stdout) break      case 'w' lout(strw, stdout) break      case '
l' lout(strl, stdout) break      default        sout(strc, stdout) lout(" charac
ters", stdout)        sout(strw, stdout) lout(" words", stdout)        sout(strl
, stdout) lout(" lines", stdout)          fclose(stdout)      #include "cant.c" 
 #include "out.c"      ++nw                  itou(nc, strc, 6)    itou(nw, strw,
 6)    itou(nl, strl, 6)    switch(f)       case 'c' lout(str    while((stri!EXT
MARK) && stri) ++i      if(inclext1 && lexcmp(str+i, inclext))         sout(buf,
 out)        continue              if((in2fopen(str, "r"))NULL) cant(str)      f
copy(in2, out)      fclose(in2)              #include "out.c"  #include "cant.c"
  #include "same.c"  #include "strip.c"  #include "getwrd.c"    mp(str, ".so")!0
))         sout(buf, out)        continue              getwrd(buf, &loc, str)   
   strip(str)      i0  /*  ** cpt.c -- encrypt or decrypt ASCII or binary files 
 **  ** Copyright 1982 J. E. Hendrix.  All rights reserved.  */  #include stdio.
h  #define NOCCARGC  #define MAXKEY 81  #define CTLZ   26  main(argc, argv) int 
argc, *argv     char c, keyMAXKEY    int i, keylen    auxbuf(stdin, 4096)    key
lengetarg(1, key, MAXKEY, argc, argv)    if((keylenEOF)(key0'-'))       fputs("u
sage CPT keyn", stderr)      abort(7)          i1    while(read(stdin, &c, 1)  0
)       poll(YES)      if(  /*  ** cnt.c -- count characters, words, and/or line
s  **  ** Copyright 1982 J. E. Hendrix.  All rights reserved.  */  #include stdi
o.h  #include "tools.h"  #define NOCCARGC  char strc6, strw6, strl6  main(argc, 
argv) int argc, *argv     char argMAXFN, *nc, *nl, *nw    int c, f, i, fd, inwor
d    fdstdin    if0    while(getarg(++i, arg, MAXFN, argc, argv) ! EOF)       if
(arg0 ! '-')         if((fd  fopen(arg, "r"))  0) cant(arg)        continue     
         switch(f  tolowe  RAFBGCHDIEisatty(stdin) && (cCTLZ)) break      cckeyi
-1      if(write(stdout, &c, 1) !1 )         fputs("output errorn", stderr)     
   abort(7)              i(i%keylen)+1                  int i, keylen    auxbuf(
stdin, 4096)    keylengetarg(1, key, MAXKEY, argc, argv)    if((keylenEOF)(key0'
-'))       fputs("usage CPT keyn", stderr)      abort(7)          i1    while(re
ad(stdin, &c, 1)  0)       poll(YES)      if(/*  ** edt.c -- edit text  **  ** C
opyright 1982 J. E. Hendrix.  All rights reserved.  */  #include stdio.h  #inclu
de "tools.h"  #define NOCCARGC  #define OK 1  #define RESERVE 600  #define PREV 
0  #define NEXT 2  #define MARK 4  #define TEXT 5  #define INTEGER 2  #define LO
NG 4  #define LINE0 0  #define NOSTATUS 0  #define CURLINE '.'  #define LASTLINE
 ''  #define SCAN '/'  #define BACKSCAN ''  #define FORWARD 1  #define BACKWARD 
0  #define PERIOD '.'  #define COMMA ','  #define SEMICOL ''  #define P  /*  ** 
dtb.c -- convert tabs to equivalent blanks  **  ** Copyright 1982 J. E. Hendrix.
  All rights reserved.  */  #include stdio.h  #include "tools.h"  #define NOCCAR
GC  #define MAXLIN1 (MAXLINE+1)  main(argc,argv) int argc, *argv     char c, tab
sMAXLIN1    int col, i    auxbuf(stdin, 4096)    if(settab(tabs, argc, argv)ERR)
       fputs("usage DTB #... +#n", stderr)      abort(7)          col1    while(
(cgetchar())!EOF)       poll(YES)      if(c't')        while(YES)       LUS '+' 
 #define MINUS '-'  #define BLANK ' '  #define TAB 't'  #define ESC 27  #define 
PROMPT '#'  #define CLFLAG '*'    #define PRINT 'p'  #define LINE 'l'  #define G
LOBAL 'g'  #define EXCLUDE 'x'  #define APPEND 'a'  #define CHANGE 'c'  #define 
DELETE 'd'  #define INSERT 'i'  #define JOIN 'j'  #define MOVE 'm'  #define SUBS
TITUTE 's'  #define ENTER 'e'  #define FILE 'f'  #define READ 'r'  #define WRITE
 'w'  #define QUIT 'q'  #define VIEW 'v'  #define ZIP 'z'    int    line1,   /* 
first line number */       cout(' ', stdout)          ++col          if(tabpos(c
ol, tabs)YES) break                else if(c'n')         cout('n', stdout)      
  col1              else         cout(c, stdout)        ++col                  f
close(stdout)      #include "settab.c"  #include "tabpos.c"  #include "out.c"   
 derr)      abort(7)          col1    while((cgetchar())!EOF)       poll(YES)   
   if(c't')        while(YES)        line2,   /* second line number */    nlines
,  /* number of line numbers given */    curln,   /* current line (value of dot)
 */    lastln  /* last line (value of $) */    char *buf    /* buffer for pointe
rs and text */  /*  ** bufk+0 PREV     (2 bytes)  previous line  ** bufk+2 NEXT 
    (2 bytes)  next line  ** bufk+4 MARK     (1 byte)   mark for global commands
  ** bufk+5 TEXT  */  int  lastbf  /* last element used in buf */  char *txt,   
 /* text line for matching and output */       *savfil, /  /*  ** digit.c -- ret
urn YES if c is a decimal digit, else NO  */  digit(c) char c     if((c'0')&(c'9
')) return YES    return NO      * remembered file name */       *file  int    s
cr,        /* scratch file id */    scrend2  /* end of info on scratch file */  
char *lin, *pat, *sub, updtflag, nbrstr7  int cursav, i, status, maxbuf, context
, view    main(argc, argv) int argc, *argv     if(isatty(stdin)) view1 else view
0    txtmalloc(MAXLINE)    linmalloc(MAXLINE)    patmalloc(MAXPAT)    submalloc(
MAXPAT)    filemalloc(MAXFN)    savfilmalloc(MAXFN)    maxbufavail(YES)-RESERVE 
   if(maxbuf  0) maxbuf32767    bu  RAFBGCHDIEfmalloc(maxbuf)    setbuf()    upd
tflagNO    pat0savfil0nbrstr6NULL    context7    i0    while(getarg(++i, txt, MA
XFN, argc, argv)!EOF)       if(txt0'-')         if(same(txt1, 'v')&(txt2NULL)) v
iew  1 - view        else           fputs("usage EDT file -Vn", stderr)         
 abort(7)                        else scopy(txt, 0, savfil, 0)          if(*savf
il)       if(enter(savfil)ERR)         fputs("errorn", stderr)                  
if(isatty(stdin))                          break      case SUBSTITUTE        ++i
        if(optpat()OK)           if(getrhs(lin, &i, sub, &gflag)OK)             
if(ckp(lin, i+1, &pflag)OK)               if(defalt(curln, curln)OK)            
    statussubst(sub, gflag)                                            break    
  case ENTER        if(chkupdt()ERR) statusOK        else if(nlines0)           
if(getfn(lin, i, file, MAXFN)OK)             scopy(file, 0, savfil, 0)          
  clrbuf()          fputc(PROMPT, stderr)    while(fgets(lin, MAXLINE, stdin)!NU
LL)       poll(YES)      trim(lin)      i0      cursavcurln      if(getlst()OK) 
        if(ckglob()OK)          statusdoglob()        else if(status! ERR)      
    statusdocmd(NO)        /* else error, do nothing */              if(statusER
R)         fputs("7errorn", stderr)        curlncursav              else if(stat
usEOF) break      /* else OK, then loop */      if(isatty(stdin)) fputc(PROMPT, 
stderr)            setbuf()            statusenter(file)                        
      break      case FILE        if(nlines0)           if(getfn(lin, i, file, M
AXFN)OK)             scopy(file, 0, savfil, 0)            puts(savfil)          
            itou(maxbuf-lastbf, nbrstr, 6)          puts(nbrstr)          status
OK                  break      case READ        if(getfn(lin, i, file, MAXFN)OK)
          statusdoread(line2, file)        pflagview        break      case WRIT
E        if(getfn(    /*  ** docmd -- handle all commands except globals  */  do
cmd(glob) int glob     int gflag, line3, pflag    pflagNO    statusERR    switch
(tolower(lini))       case APPEND        if(ckp(lin, i+1, &pflag)OK)          st
atusappend(line2, glob)        break      case CHANGE        if(ckp(lin, i+1, &p
flag)OK)           if(defalt(curln, curln)OK)             if((statusappend(line2
, glob))!ERR)               kill(line1, line2)              ++curln             
                    lin, i, file, MAXFN)OK)           if(defalt(1, lastln)OK)   
         statusdowrit(line1, line2, file)                  break      case ZIP  
      if(defalt(curln, lastln)OK)          statusdoprnt(line1, line2, glob)     
   break      case PRINT        if(defalt(curln, curln)OK)          statusdoprnt
(line1, line2, glob)        break      case NULL        if((nlines0)&(globNO)) l
ine2nextln(curln)        if(view) statusdoprnt(line2, line2, glob)        else  
         curlnline2           break      case DELETE        if(ckp(lin, i+1, &pf
lag)OK)           if(defalt(curln, curln)OK)             kill(line1, line2)     
       if(curln  lastln) curlnnextln(curln)                              break  
    case INSERT        if(ckp(lin, i+1, &pflag)OK)          statusappend(prevln(
line2), glob)        break      case LINE        if(lini+1NULL)           itou(c
urln, nbrstr, 6)          puts(nbrstr)          statusOK                  break 
     case JOIN            statusOK                  break      case QUIT        
if((lini+1NULL)&(nlines0)&(globNO))           if(chkupdt()ERR) statusOK         
 else statusEOF                  break      case VIEW        view1-view        s
tatusOK          /* else status is ERR */    if(curln  1) curln  nextln(0)    if
((statusOK)&(pflagYES))      statusdoprnt(curln, curln, glob)    return status  
      /*  ** chkupdt -- warn if update not written to disk  */  chkupdt()     if
(updtfla      if(ckp(lin, i+1, &pflag)OK)           if(defalt(curln, curln+1)OK)
             if((statusjoin(line1, line2))OK)               curlnline2          
    if((statusinject(txt))OK)                kill(line1, line2)                +
+curln                                            break      case MOVE        ++
i        if(getone(&line3)EOF) statusERR        if(statusOK)           if(ckp(li
n, i, &pflag)OK)             if(defalt(curln, curln)OK) statusmove(line3)       
     RAFBGCHDIEg)       fputs("didn't write to disk!n", stderr)      updtflagNO 
     return ERR          return OK        /*  ** ctoi -- convert string at in*i 
to integer, bump *i  */  ctoi(in, i) char in int *i     int dd, num    char *dig
its    digits"0123456789"    while((in*iBLANK)(in*iTAB)) *i  *i + 1    num0    w
hile(in*i!NULL)       ddindex(digits, in*i)      if(dd  0) break      num  10*nu
m + dd      *i  *i + 1          return num        /*  ** skipbl -- skip blankedt
2.c"  #include "same.c"  #include "pat.c"  #include "buf.c"  #include "error.c" 
 #include "index.c"  #include "maksub.c"  #include "catsub.c"  #include "scopy.c
"  #include "trim.c"           getnum(&pnum)        *num  *num + mul*pnum       
 if(statusEOF) statusERR        if(status!OK) break            if((*num0)(*numla
stln)) return (statusERR)    if(iistart) return (statusEOF)    return (statusOK)
        #include "s and tabs  */  skipbl(lin, i) char lin int *i     while((lin*
i' ')(lin*i't')) *i  *i + 1        /*  ** nextln -- get line after ln  */  nextl
n(ln) int ln     if(++ln  lastln) return 0    return ln        /*  ** prevln -- 
get line before ln  */  prevln(ln) int ln     if(--ln  0) return lastln    retur
n ln        /*  ** join -- put line1 thru line2 together into txt  */  join(ln1,
 ln2) int ln1, ln2     int i, j    j0    while(ln1  ln2)       igetind(ln1++)+TE
XT      while(txtj++bufi++)        if(j  MAXLINE) return ERR      --j          r
eturn OK        /*  ** doread -- read "file" after "line"  */  doread(line, file
) int line char file     int fd, stat    if((fdfopen(file, "r"))NULL)       fput
s("open ", stderr)      return ERR          curlnline    statinput(fd)    fclose
(fd)    return stat        /*  ** getlst -- collect line numbers (if any) at lin
i, bump i  */  getlst()     int num    line20    nlines0    while(getone(&num)OK
  /*  ** edt2.c -- edit part 2  */    /*  ** getnum -- convert one term to a lin
e number  */  getnum(pnum) int *pnum     int stat    char *digits    digits"0123
456789"    statOK    if(index(digits, lini)  0)       *pnumctoi(lin, &i)      --
i  /** backup then bump at end **/          else if(liniCURLINE) *pnumcurln    e
lse if(liniLASTLINE) *pnumlastln    else if((liniSCAN)(liniBACKSCAN))       if(o
ptpat()ERR) statERR      else if(liniSCAN) statptscan(FORWARD, p)       line1lin
e2      line2num      ++nlines      if((lini!COMMA)&(lini!SEMICOL)) break      i
f(liniSEMICOL) curlnnum      ++i          if(nlines2) nlines2    if(nlines0) lin
e2curln    if(nlines1) line1line2    if(status!ERR) statusOK    return status   
     /*  ** getone -- evaluate one line number expression  */  getone(num) int *
num     int istart, mul, pnum    skipbl(lin, &i)    istarti    if((liniPLUS)(lin
iMINUS)) *numcurln    else *num0    if(gnum)      else statptscan(BACKWARD, pnum
)          else if((liniPLUS)(liniMINUS)) --i    else statEOF    if(statOK) ++i 
   return (statusstat)        /*  ** optpat -- make pattern if specified at lini
  */  optpat()     if(liniNULL) i  ERR    else if(lini+1NULL) i  ERR    else if(
lini+1lini) ++i    else i  makpat(lin, i+1, lini, pat)    if(pat0NULL) i  ERR   
 if(iERR)       pat0NULL      return ERR          return OK        /*  ** ptscan
 -- scaetnum(num)OK)      while(YES)         skipbl(lin, &i)        if((lini!PLU
S)&(lini!MINUS))           statusEOF          break                  if(liniPLUS
) mul  1        else mul  -1        ++i        skipbl(lin, &i)        pnum1     
   getnum(&pnum)        *num  *num + mul*pnum        if(statusEOF) statusERR    
    if(status!OK) break            if((*num0)(*numlastln)) return (statusERR)   
 if(iistart) return (statusEOF)    return (statusOK)        #include "  RAFBGCHD
IEn for next occurrence of pattern  */  ptscan(way, num) int way, *num     *numc
urln    while(YES)       if(poll(YES)ESC) return (ERR)      if(wayFORWARD) *numn
extln(*num)      else *numprevln(*num)      if(match(buf+getind(*num)+TEXT, pat)
YES) return OK      if(*numcurln) break          return ERR        /*  ** ckglob
 -- if global prefix, mark lines to be affected  */  ckglob()     int gflag, k, 
line    if((same(lini, GLOBAL)NO)&(same(lini, EXCLUDE)NO))      return (statusEO
/** leaves gotline & gotind below affected area **/    lastlnlastln-(to-from+1) 
   curlnprevln(from)    relink(k1, k2, k1, k2)    return (statusOK)        /*  *
* ckp -- check for "p" after command  */  ckp(lin, i, pflag) char lin int i, *pf
lag     if(same(lini, PRINT))       *pflagYES      ++i          else *pflagNO   
 if(view) *pflagYES    if(liniNULL) statusOK    else statusERR    return status 
       /*  ** move -- move line1 through line2 after line3  */  move(line3) inF)
    if(same(lini, GLOBAL)) gflagYES    else gflagNO    ++i    if((optpat()ERR)(d
efalt(1, lastln)ERR))      return (statusERR)    ++i    lineline1    while(linel
ine2)       if(poll(YES)ESC) return (statusERR)      kgettxt(line++)      if(mat
ch(txt, pat)gflag) bufk+MARKYES      else bufk+MARKNO          linenextln(line2)
    while(line!line1)       if(poll(YES)ESC) return (statusERR)      kgetind(lin
e)      bufk+MARKNO      linenextln(line)          retut line3     int k0, k1, k
2, k3, k4, k5    if((line10)((line1line3)&(line3line2))) return ERR    k1getind(
line1)    k2getind(line2)    k3getind(nextln(line2))    k0getind(prevln(line1)) 
   /** leaves gotline & gotind below affected area **/    relink(k0, k3, k0, k3)
    if(line3line1)       curlnline3      line3line3-(line2-line1+1)          els
e curlnline3+(line2-line1+1)    k5getind(nextln(line3))    k4getind(line3)    /*
* leaves gotline & gotind below affected area **/    rrn (statusOK)        /*  *
* defalt -- set defaulted line numbers  */  defalt(def1, def2) int def1, def2   
  if(nlines0)       line1def1      line2def2          if((line1line2)(line10)(li
ne2lastln))      return (statusERR)    return (statusOK)        /*  ** doglob --
 do command at lini on all marked lines  */  doglob()     int count, istart, k, 
line    statusOK    count0    lineline1    istarti    while(YES)       if(poll(Y
ES)ESC) return (statusERR)      kgetind(lineelink(k4, k1, k2, k5)    relink(k2, 
k5, k4, k1)    return OK        /*  ** getrhs -- get substitution string for "s"
 command  */  getrhs(lin, i, sub, gflag) char lin, sub int *i, *gflag     if(lin
*iNULL) return ERR    if(lin*i+1NULL) return ERR    *imaksub(lin, *i+1, lin*i, s
ub)    if(*iERR) return ERR    if(same(lin*i+1, GLOBAL))       *i  *i + 1      *
gflagYES          else *gflagNO    return OK        /*  ** subst -- substitute "
sub" for occurrences of pattern  */ )      if(bufk+MARKYES)         bufk+MARKNO 
       cursavcurlnline        iistart        if(getlst()OK)           if(docmd(Y
ES)OK) count0                        else         linenextln(line)        ++coun
t              if((countlastln)(status!OK)) break          return status        
/*  ** append -- append lines after ln  */  append(ln, glob) int ln, glob     in
t stat    if(globYES) return ERR    curlnln    statNOSTATUS    while(statNOSTATU
S)       fputc(' ', subst(sub, gflag) char sub int gflag     char newMAXLINE    
int j, k, lastn, line, n, subbed    if(line10) return ERR    lineline1    while(
lineline2)       if(poll(YES)ESC) return (ERR)      j0      subbedNO      gettxt
(line)      lastn-1      k0      while(YES)         if((gflagYES)(subbedNO)) nam
atch(txt, k, pat)        else n-1        if((n0)&(lastn!n))     /** replace matc
hed text **/          subbedYES          catsub(txt, k, n, sub, new, &j, MAXLINE
)     stderr)      if(fgets(lin, MAXLINE, stdin)NULL) statEOF      else         
trim(lin)        if((lin0PERIOD)&(lin1NULL)) statOK        else if(inject(lin)ER
R) statERR                  return stat        /*  ** kill -- delete lines from 
through to  */  kill(from, to) int from, to     int k1, k2    if((from1)&(tolast
ln))       setbuf()      updtflagNO      return (statusOK)          if(from0) re
turn (statusERR)    k2getind(nextln(to))    k1getind(prevln(from))      RAFBGCHD
IE      lastnn                  if(txtkNULL) break        if((n-1)(nk))        /
** no match or null match **/          addset(txtk, new, &j, MAXLINE)          +
+k                  else kn                  /** skip matched text **/          
    if(subbedYES)         if(addset(NULL, new, &j, MAXLINE)NO) return ERR       
 curlnprevln(line)        if(inject(new)ERR)           curlnline          return
 ERR                  kill(curln+1, curln+1)              ++line             ret
urn OK        /*  ** enter -- enter a new file  */  enter(name) char name     in
t err    errdoread(0, name)    if(view) doprnt(1, 1, NO)    curln1    updtflagNO
    return err        flow handled in docmd() */        curln  j - context      
  return OK              if((jto)&(globNO)) prefCLFLAG      else pref' '      ge
ttxt(j++)      fputc(pref, stdout)      fputs(txt, stdout)      fputc('n', stdou
t)          curlnto return OK        /*  ** getfn -- get file name from lini  */
  getfn(lin, i, file, max) char lin, file int i, max     int j, k, stat    statE
RR    if(lini+1BLANK)       ji+2  /** get new file name **/      skipbl(lin, &j)
      k0      while(filek++linj++) if(--max  1) break      if((k  1)&(max  0)) s
tatOK          else if((lini+1NULL)&(savfil0!NULL))       scopy(savfil, 0, file,
 0)      statOK          if((statOK)&(savfil0NULL))      scopy(file, 0, savfil, 
0)  /** save if no old one **/    return stat        /*  ** dowrit -- write "fro
m" through "to" into file  */  dowrit(from, to, file) int from, to char file    
 char tmpMAXFN, *ptr    int fd, line      strcpy(tmp, file)    if((ptr  strchr(t
mp, '.'))  0) ptr  tmp + strlen(tmp)    strcpy(ptr, ".$$$")    rename(file, tmp)
      if((fdfopen(file, "w"))NULL) return ERR    linefrom    while(lineto)      
 fputs(buf+getind(line++)+TEXT, fd)      if(fputc('n', fd)EOF)         fput/*  *
* etb.c -- replace blanks with tabs and blanks  **  ** Copyright 1982 J. E. Hend
rix.  All rights reserved.  */  #include stdio.h  #include "tools.h"  #define NO
CCARGC  #define MAXLIN1 (MAXLINE+1)  main(argc, argv) int argc, *argv     char c
, tabsMAXLIN1    int col, newcol    auxbuf(stdin, 4096)    if(settab(tabs, argc,
 argv)ERR)       fputs("usage ETB #... +#n", stderr)      abort(7)          col1
    while(YES)       poll(YES)      newcolcol      while((cgetchar())' ')   s("w
rite ", stderr)        fclose(fd)        return ERR                  if(fclose(f
d)) return ERR    unlink(tmp)    updtflagNO    return OK        /*  ** doprnt --
 print lines from through to  */  doprnt(from, to, glob) int from, to, glob     
int j, k    char pref    if(from0) return OK    if(same(lini, PRINT))       ++i 
     if((lini'0')&(lini'9'))         if(lini+1NULL) contextlini-'0'        else 
return ERR              else if(lini!NULL) return ERR               ++newcol    
    if(tabpos(newcol, tabs)YES)           cout('t', stdout)          colnewcol  
                      if(c't')         while(tabpos(newcol, tabs)NO) ++newcol   
     cout('t', stdout)        colnewcol        continue              while(colne
wcol)         cout(' ', stdout)        ++col              if(cEOF) break      co
ut(c, stdout)      if(c'n') col1      else if(c'b') --col /* ok if it goes neg *
/      else ++col          fclose(stdout)      #i if((fromto)&(globNO))       jf
rom-context      kto+context          else       jfrom      kto          if(j  1
) j1    if(k  lastln) klastln    if(globNO) fputs(CLEAR, stdout)    while(j  k) 
      if(poll(YES))         /* underflow handled in docmd() */        curln  j -
 context        return OK              if((jto)&(globNO)) prefCLFLAG      else p
ref' '      gettxt(j++)      fputc(pref, stdout)      fputs(txt, stdout)      fp
utc('n', stdout)          curlnto  RAFBGCHDIEnclude "settab.c"  #include "tabpos
.c"  #include "out.c"      if(c't')         while(tabpos(newcol, tabs)NO) ++newc
ol        cout('t', stdout)        colnewcol        continue              while(
colnewcol)         cout(' ', stdout)        ++col              if(cEOF) break   
   cout(c, stdout)      if(c'n') col1      else if(c'b') --col /* ok if it goes 
neg */      else ++col          fclose(stdout)      #ipat)ERR) error("pattern to
o longn")    while(fgets(lin, MAXLIN1, stdin)!NULL)       poll(YES)      trim(li
n)      if(match(lin, pat))         if(argi0) lout(lin, stdout)              els
e if(argi1) lout(lin, stdout)          fclose(stdout)        getpat(arg, pat) ch
ar arg, pat     return(makpat(arg, 0, NULL, pat))        #include "pat.c"  #incl
ude "error.c"  #include "index.c"  #include "out.c"  #include "trim.c"    /*  **
 fnt.c -- choose FX printer font  */  #include stdio.h  #include "tools.h"  #def
ine NOCCARGC  char     condensed27, 15, 0,    xcondensed    18, 0,     double27,
 'G', 0,    xdouble27, 'H', 0,     elite27, 'M', 0,    xelite27, 'P', 0,     emp
hasized27, 'E', 0,    xemphasized27, 'F', 0,     enlarged27, 'W', 49, 0,    xenl
arged27, 'W', 48, 0,     italics27, '4', 0,    xitalics27, '5', 0,     pica27, '
P', 0,    xpica27, 'M', 0,     sub  /*  ** error.c -- display message str and ab
ort  */  error(str) char *str     fputs(str, stderr)    fputc('n', stderr)    ab
ort(7)      script27, 'S', 49, 0,    xsubscript27, 'T', 0,     superscript27, 'S
', 48, 0,    xsuperscript27, 'T', 0,     proportional27, 'p', 49, 0,    xproport
ional27, 'p', 48, 0  char str15, *ptr"LST"  int i, fd  main(argc, argv) int argc
, *argv     if(getarg(1, str, 15, argc, argv) ! EOF) ptr  str    if(*str  '-')  
     fputs("usage FNT device", stderr)      abort(7)          if((fdfopen(ptr, "
w"))  0) cant(ptr)    do       fputs(CLEAR, stdout)      fputs("    Select Epson
 FX Option (RETURN to exit)nn", stdout)      fputs("set  clear   modenn", stdout
)      fputs(" 1     2     condensed    n", stdout)      fputs(" 3     4     dou
ble striken", stdout)      fputs(" 5     6     eliten", stdout)      fputs(" 7  
   8     emphasized   n", stdout)      fputs(" 9    10     enlargedn", stdout)  
    fputs("11    12     italicsn", stdout)      fputs("13    14     pican", stdo
ut)      fputs("15    16     subscriptn", stdout)      fputs("17    18     su/* 
 ** fnd.c -- find patterns in text file  **  ** Copyright 1982 J. E. Hendrix.  A
ll rights reserved.  */  #include stdio.h  #include "tools.h"  #define NOCCARGC 
 #define MAXARG 49  #define MAXLIN1 (MAXLINE+1)  char argMAXARG, linMAXLIN1, pat
MAXPAT  int err, argi  main(argc, argv) int argc, *argv     auxbuf(stdin, 4096) 
   errNO    if((getarg(1, arg, MAXARG, argc, argv)EOF)(arg0'-'))      error("usa
ge FND patternn")    if(arg0NOT) argi1 else argi0    if(getpat(arg+argi,   RAFBG
CHDIEperscriptn", stdout)      fputs("19    20     proportionaln", stdout)      
fputs("nselect... ", stdout)      fgets(str, 10, stdin)      ptr  str      while
(*ptr)         if(*ptr  'n') *ptrNULL        ++ptr              if(utoi(str, &i)
)         switch(i)           case  1 fputs( condensed, fd) break          case 
 2 fputs(xcondensed, fd) break          case  3 fputs( double, fd) break        
  case  4 fputs(xdouble, fd) break          case  5 fputs( elite, fd) breakage o
ffset specification */    poval,   /* page offset for current page */    tival, 
  /* temporary indent */    ceval,   /* number of lines to center */    ulval,  
 /* number of lines to underline */    bfval,   /* number of lines to boldface *
/    itval,   /* number of lines to italicize */    dwval,   /* number of lines 
to double-wide */    dwact,   /* double-wide is active */    bfstrikes,  /* numb
er of boldface strikes */    cuact,   /* continuous underline active if  0 */   
 mpcnt,   /* lines printed          case  6 fputs(xelite, fd) break          cas
e  7 fputs( emphasized, fd) break          case  8 fputs(xemphasized, fd) break 
         case  9 fputs( enlarged, fd) break          case 10 fputs(xenlarged, fd
) break          case 11 fputs( italics, fd) break          case 12 fputs(xitali
cs, fd) break          case 13 fputs( pica, fd) break          case 14 fputs(xpi
ca, fd) break          case 15 fputs( subscript, fd) break          case 16 fput
s(xs since last .mp page break */    mpval,   /* minimum lines required for para
graphs */    sqval,   /* squeeze indents */    bline,   /* blank line flag */   
 curpag,  /* current page number */    newpag,  /* next page number */    lineno
,  /* next line to be printed */    plval,   /* page length in lines */    m1val
,   /* margin before and including header */    m2val,   /* margin after header 
*/    m3val,   /* margin after last text line */    m4val,   /* bottom margin in
cluding footer */    bottom,  /* lasubscript, fd) break          case 17 fputs( 
superscript, fd) break          case 18 fputs(xsuperscript, fd) break          c
ase 19 fputs( proportional, fd) break          case 20 fputs(xproportional, fd) 
break                         while (*str)      #include "cant.c"    eak        
  case 14 fputs(xpica, fd) break          case 15 fputs( subscript, fd) break   
       case 16 fputs(xst live line on page */    outp,    /* last character posi
tion in outbuf */    outw,    /* width of text in outbuf */    outwds,  /* numbe
r of words in outbuf */    pause,   /* pause on page breaks if YES */    ready, 
  /* prompt "ready printer..." if YES */    show,    /* show source file names *
/    begin,   /* beginning page to print */    end,     /* ending page to print 
*/    bcopy,   /* beginning copy */    ecopy,   /* ending copy */    mrgfd,   /*
 merge file fd */    sentend, /* YES for plausible end /*  ** fmt.c -- text form
atter  **  ** Copyrignt 1982 J. E. Hendrix.  All rights reserved.  */    #includ
e stdio.h  #include "tools.h"  #define NOCCARGC  #define KILL 14  /* control-N *
/  #define INSIZE 396  #define MAXOUT 579  #define COMMAND '.'  #define PAGENUM 
'#'  #define TTLDELIM '/'  #define MRGCHAR ''  #define SUBCHAR '/'  #define SUPC
HAR ''  #define BLANK ''  #define DEFM1 1  #define DEFM2 2  #define DEFM3 2  #de
fine DEFM4 9  /**** LM is effectively one greater ****/  #define DEFLM 9  #defin
eof sentence */    dir     /* direction for spreading blanks */    char         
sbpref27,'S',49,1,  /* nontty subscript prefix */         sbsuff27,'T', 1,0,  /*
 nontty subscript suffix */         sppref27,'S',48,1,  /* nontty superscript pr
efix */         spsuff27,'T', 1,0,  /* nontty superscript suffix */        *ulon
, *uloff,         ulpref27,'-',49,1,  /* nontty underline prefix */         ulsu
ff27,'-',48,1,  /* nontty underline suffix */        *bfon, *bfoff,         bfpr
ef DEFRM 73  #define DEFMP 2  #define PAGELEN 66  #define HUGE 32000  #define ND
IM 5  #define NWIDTH 4    int    ttymode, /* tty mode if YES */    itsub,   /* i
talic subs for underlines */    ulsub,   /* underline subs for italics */    pas
s,    /* pass counter */    fill,    /* fill if YES */    just,    /* justify if
 YES */    lsval,   /* line spacing */    inval,   /* indent value */    lmval, 
  /* left margin value */    rmval,   /* right margin value */    pagekill,/* ki
ll page if YES */    pospec,  /* p  RAFBGCHDIE27,'E',1,0,   /* nontty boldface p
refix */         bfsuff27,'F',1,0,   /* nontty boldface suffix */        *dson, 
*dsoff,         dspref27,'G',1,0,   /* nontty dbl strike prefix */         dssuf
f27,'H',1,0,   /* nontty dbl strike suffix */        *iton, *itoff,         itpr
ef27,'4',1,0,   /* nontty italics prefix */         itsuff27,'5',1,0,   /* nontt
y italics suffix */        *dwon, *dwoff,         dwpref27,'W',49,1,  /* nontty 
dbl wide prefix */         dwsuff27,'W'       return      if(inbuf0cmd) command(
inbuf)      else         if(merge()NO) continue        text(inbuf)              
        /*  ** include -- process included text (nexting allowed)  */  include()
     int i, fd    char fnameINSIZE    i0    while((inbufi!' ')&(inbufi!NULL)) ++
i    getwrd(inbuf, &i, fname)    if((fdfopen(fname, "r"))NULL) cant(fname)    lo
ut(fname, stderr)    if(show)       brk()      put(fname)      brk()         pro
cess(fd)    fclose(fd)       ,48,1  /* nontty dbl wide suffix */    char     cmd
,      /* command character */     mrg,      /* merge field delimiter */     bla
nk,    /* literal blank character */    *ulskips,  /* specific characters to ski
p underlining */    *oheader,  /* odd page header */    *eheader,  /* even page 
header */    *ofooter,  /* odd page footer */    *efooter,  /* even page footer 
*/    *outbuf,   /* output buffer */    *ttlbuf,   /* buffer for titles */    *m
rgbuf,   /* buffer for merged text */    *inbuf,    /* inpu /*  ** prompt -- pro
mpt operator for input  */  prompt()     fputs("7enter ", stderr)    fputs(inbuf
+3, stderr)    fputc('n', stderr)    process(stderr)        /*  ** init -- initi
alize parameters  */  init()     cmdCOMMAND    mrgMRGCHAR    blankBLANK    sente
ndNO    filljustYES    lsval1    invaltivalsqval0    lmvalDEFLM    rmvalDEFRM   
 bfvalitvalcevalulvalcuact0    curpag0    newpag1    lineno0    mpvalDEFMP    bl
ineNO /** prevents a blank first page **/   t buffer */    *wrdbuf,   /* space f
or one word */    *nbrstr   /* number string */    main(argc, argv) int argc, *a
rgv     oheadermalloc((MAXLINE+1))    eheadermalloc((MAXLINE+1))    ofootermallo
c((MAXLINE+1))    efootermalloc((MAXLINE+1))    mrgbufmalloc((MAXLINE+1))    out
bufmalloc(MAXOUT)    ttlbufmalloc(MAXOUT)    wrdbufmalloc(MAXOUT)    inbufmalloc
(INSIZE)    nbrstrmalloc(NDIM)    nbrstrNWIDTHNULL    doargs(argc, argv)    mpcn
t99    pass0    if(mrgfd)       while(fgets plvalPAGELEN    m1valDEFM1    m2valD
EFM2    m3valDEFM3    m4valDEFM4    bottomplval-m3val-m4val    oheader0eheader0N
ULL    ofooter0efooter0NULL    outp-1    outwoutwds0    dir0        /*  ** comma
nd -- process commands  */  command(buf) char buf     int argtyp, spval, val    
if(buf1  cmd) return   /* comment */    valgetval(buf, &argtyp)    switch((toupp
er(buf1)  8) + toupper(buf2))       default         fputs("7note ", stderr)     
   fputs(buf, std(mrgbuf, (MAXLINE+1), mrgfd) && (pass  ecopy))         if(++pas
s  bcopy) continue        trim(mrgbuf)        nextpass()                  else i
f(ecopy  HUGE) nextpass()    else for(pass  bcopy pass  ecopy ++pass) nextpass()
    fclose(stdout)        /*  ** nextpass -- make next pass on stdin text  */  n
extpass()     char c, str6    init()    if(mrgfd  ecopy ! HUGE)       cseek(stdi
n, 0, 0)      left(itod(pass, str, 6))      fputs("copy ", stderr)      fputs(st
r, stderr)      ferr)        fputc('n', stderr)        return              case 
'FI'         brk()        fillYES        break              case 'NF'         br
k()        fillNO        break              case 'JU'         brk()        justY
ES        break              case 'NJ'         brk()        justNO        break 
             case 'BR'        brk()        break              case 'LS'         
setvalue(&lsval, val, argtyp, 1, 1, HUGE)        break              case 'HE'   
    puts("   ", stderr)          cNULL    if(((pass  bcopy)  (pauseYES)) &&     
  ready && isatty(stdout))       fputs("ready printer... ", stderr)      cfgetc(
stderr)          if(c!KILL)       process(stdin)      if((lineno  0)(outp  -1)) 
space(HUGE)          else fputc('n', stderr)        /*  ** process -- process te
xt from fd  */  process(fd) int fd     while(fgets(inbuf, INSIZE, fd)!NULL)     
  poll(YES)      trim(inbuf)      if((fdstderr)&(inbuf0cmd)&(inbuf1NULL))   RAFB
GCHDIE  gettl(buf, oheader)        gettl(buf, eheader)        break             
 case 'OH'         gettl(buf, oheader)        break              case 'EH'      
   gettl(buf, eheader)        break              case 'FO'         gettl(buf, of
ooter)        gettl(buf, efooter)        break              case 'OF'         ge
ttl(buf, ofooter)        break              case 'EF'         gettl(buf, efooter
)        break              case 'SP'         setvalue(&spval, val, argtyp, 1, 0
, HUGE       case 'NE'         if(((bottom-lineno)  val) & (lineno  0))         
 space(HUGE)        break              case 'RS'         if(((bottom-lineno)  va
l) & (lineno  0))          space(HUGE)        space(val)        break           
   case 'SO'         include()        break              case 'PR'         promp
t()        break              case 'CC'         val0        getwrd(buf, &val, wr
dbuf)        if(getwrd(buf, &val, wrdbuf)1) cmdwrdbuf0        break            )
        space(spval)        blineYES        break              case 'BP'        
 if((lineno  0)(outp  -1)) space(HUGE)        setvalue(&curpag, val, argtyp, new
pag, -HUGE, HUGE)        newpagcurpag        break              case 'PL'       
  if(val0)           lineno1          plval0                  else           set
value(&plval, val, argtyp,              PAGELEN, m1val+m2val+m3val+m4val+1, HUGE
)          bottomplval-m3val-m4val                  break              case '  c
ase 'MC'         val0        getwrd(buf, &val, wrdbuf)        if(getwrd(buf, &va
l, wrdbuf)1) mrgwrdbuf0        break              case 'BC'         val0        
getwrd(buf, &val, wrdbuf)        if(getwrd(buf, &val, wrdbuf)1) blankwrdbuf0    
    break              case 'M1'         setvalue(&m1val, val, argtyp, DEFM1, 0,
 HUGE)        break              case 'M2'         setvalue(&m2val, val, argtyp,
 DEFM2, 0, HUGE)        break              case 'M3'         setvalue(&IN'      
   brk()        setvalue(&inval, val, argtyp, 0, -lmval, rmval-lmval-1)        b
reak              case 'LM'         brk()        setvalue(&lmval, val-1, argtyp,
 DEFLM, 0, rmval-1)        break              case 'RM'         setvalue(&rmval,
 val, argtyp, DEFRM, lmval+1, HUGE)        break              case 'TI'         
brk()        setvalue(&tival, val, argtyp, 0,            -(lmval+inval), rmval-(
lmval+inval)-1)        break              case 'SQ'         brk()        setvm3v
al, val, argtyp, DEFM3, 0, HUGE)        bottomplval-m3val-m4val        break    
          case 'M4'         setvalue(&m4val, val, argtyp, DEFM4, 0, HUGE)       
 bottomplval-m3val-m4val        break              case 'PO'         setvalue(&p
ospec, val, argtyp, 0, 0, HUGE)        break                      #include "fmt2
.c"  #include "fmt3.c"  #include "scopy.c"  #include "getwrd.c"  #include "cant.
c"  #include "page.c"  #include "index.c"  #include "same.c"  #include "trim.c" 
 #include alue(&sqval, val, argtyp, 0, 0, HUGE)        break              case '
CE'         brk()        setvalue(&ceval, val, argtyp, 1, 0, HUGE)        break 
             case 'BF'         setvalue(&bfval, val, argtyp, 1, 0, HUGE)        
ulval0        break              case 'IT'         setvalue(&itval, val, argtyp,
 1, 0, HUGE)        break              case 'DW'         setvalue(&dwval, val, a
rgtyp, 1, 0, HUGE)        break              case 'UL'         setvalue(&ulval, 
val, argtyp, 1"out.c"    m4val, val, argtyp, DEFM4, 0, HUGE)        bottomplval-
m3val-m4val        break              case 'PO'         setvalue(&pospec, val, a
rgtyp, 0, 0, HUGE)        break                      #include "fmt2.c"  #include
 "fmt3.c"  #include "scopy.c"  #include "getwrd.c"  #include "cant.c"  #include 
"page.c"  #include "index.c"  #include "same.c"  #include "trim.c"  #include , 0
, HUGE)        cuact0        ulskips" ()tb,.!'""        bfval0        break     
         case 'CU'         setvalue(&ulval, val, argtyp, 1, 0, HUGE)        if(u
lval0) cuact0        else cuact1    /* becomes 2 after next putwrd */        if(
ttymode) ulskips" tb"        else        ulskips "tb"        break              
case 'NU'         ulvalcuact0        break              case 'MP'         setval
ue(&mpval, val, argtyp, DEFMP, 0, HUGE)        break         RAFBGCHDIE/*  ** fm
t2.c -- text formatter part 2  */    /*  ** getval -- evaluate optional numeric 
argument  */  getval(buf, argtyp) char buf int *argtyp     int i    i0    while(
(bufi!' ')&(bufi!'t')&(bufi!NULL)) ++i    skipbl(buf, &i)    *argtypbufi    if((
*argtyp'+')(*argtyp'-')) ++i    if(utoi(buf+i, &i)  0)       fputs("7error ", st
derr)      fputs(inbuf, stderr)      fputc('n', stderr)      return 0          r
eturn i        /*  ** skipbl -- skip blanks and tabs  */  skipbl(lin, i) char li
n int *i     while((lin*i' ')(lin*i't')) *i  *i + 1        /*  ** setvalue -- se
t parameter and check range  */  setvalue(param, val, argtyp, defval, minval, ma
xval)    int *param, val, argtyp, defval, minval, maxval     if(argtypNULL) *par
amdefval    else if(argtyp'+') *param*param+val    else if(argtyp'-') *param*par
am-val    else *paramval    if(*param  maxval) *parammaxval    if(*param  minval
) *paramminval        /*  ** text -- process text li/*  ** fmt3.c -- text format
ter part 3  */    /*  ** put -- put out line with proper spacing and indenting  
*/  put(buf) char buf     int i    if((buf0NULL)(buf0' ')) blineYES    else     
  if(((bottom-lineno+1)  (mpval*lsval)) &&         (blineYES) &&         (mpcnt 
 mpval))         mpcnt0        skip(bottom-lineno+1)        linenobottom+1   /* 
force footing */              blineNO          ++mpcnt    if(linenobottom) pfoot
()    if(lineno0) phead()    ipoval  /** minnes  */  text(inbuf) char inbuf     
int i    char c1, c2    if((inbuf0' ')(inbuf0NULL)) leadbl(inbuf)    if(bfval  0
)       bold(inbuf, wrdbuf, INSIZE)      --bfval          dwact  NO    if(dwval 
 0)       if(!ttymode)         dwact  YES        double(inbuf, wrdbuf, INSIZE)  
            --dwval          if(ulval  0)       if(itsub) italic(inbuf, wrdbuf, 
INSIZE)      else      underl(inbuf, wrdbuf, INSIZE)      --ulval          if(it
val  0)       if(ulsub) underl(inbufus on odd pages **/    while(++i  (lmval+tiv
al+inval+sqval))      print(" ", NO)    tival0    print(buf, NO)    if((lsval-1)
  (bottom-lineno)) skip(lsval)    else skip(bottom-lineno+1)    if(plval  0) lin
enolineno+lsval    if(lineno  bottom) pfoot()        /*  ** print -- print outpu
t to stdout if not skipping pages  */  print(str, title) char *str int title    
 while(*str)       if(*str  1)         if(!title) onoff(*(str-1))              e
lse         /* skip output of control seque, wrdbuf, INSIZE)      else      ital
ic(inbuf, wrdbuf, INSIZE)      --itval          supersub(inbuf, wrdbuf, INSIZE) 
   if(ceval  0)       center(inbuf)      put(inbuf)      --ceval          else i
f(inbuf0NULL) put(inbuf)    else if(fillNO) put(inbuf)    else       i0      wrd
buf0' '      while(getwrd(inbuf, &i, wrdbuf+1)  0)         if((sentendYES)&(isup
per(wrdbuf1)YES)&(wrdbuf2!'.'))          putwrd(wrdbuf)  /** leading space **/  
      else putwrd(wrdbuf+1)        ince terminator */        if((plval0)((curpag
  begin)&(pagekillNO)))           begin1  /** future copies begin on page 1 **/ 
         if(*str ! blank) cout(*str, stdout)          else cout(' ', stdout)    
              else if(*str  27)           while(*str ! 1) cout(*str++, stdout)  
        continue                        ++str              /*  ** onoff -- set a
nd clear xxon and xxoff pointers  */  onoff(ch) int ch          if(ch  ulpref2) 
ulonulpref uloffulsuff    else f(inbufi-1'"')           c1inbufi-3          c2in
bufi-2                  else           c1inbufi-2          c2inbufi-1           
       if((inbufi!'t')&(isupper(c1)NO)&           ((c2'.')(c2'')(c2'!'))) senten
dYES        else sentendNO                  if(ulval0) cuact0          supper(wr
dbuf1)YES)&(wrdbuf2!'.'))          putwrd(wrdbuf)  /** leading space **/        
else putwrd(wrdbuf+1)        i  RAFBGCHDIEif(ch  ulsuff2) ulonuloff0    else if(
ch  bfpref1) bfonbfpref bfoffbfsuff    else if(ch  bfsuff1) bfonbfoff0    else i
f(ch  dspref1) dsondspref dsoffdssuff    else if(ch  dssuff1) dsondsoff0    else
 if(ch  itpref1) itonitpref itoffitsuff    else if(ch  itsuff1) itonitoff0    el
se if(ch  dwpref1) dwondwpref dwoffdwsuff    else if(ch  dwsuff1) dwondwoff0    
    /*  ** skip -- output n blank lines  */  skip(n) int n     while((n--)     i
0    while((bufi!' ')&(bufi!'t')&(bufi!NULL)) ++i    skipbl(buf, &i)    if((bufi
''')(bufi'"')) ++i /** strip leading quote **/    bufbuf+i    while(*ttl++  *buf
++)        /*  ** space -- space n lines or to bottom  */  space(n) int n     br
k()    if(lineno  bottom) return    if(lineno0)       phead()      if(nHUGE) ret
urn          if(n  (bottom+1-lineno)) skip(n)    else skip(bottom+1-lineno)    i
f(plval  0) linenolineno+n    if(lineno  bottom) pfoot() 0) print("n", NO)      
  /*  ** phead -- put out header  */  phead()     pagekillNO    if((curpagnewpag
++)  begin)       if(page(curpag, pause, stdout)KILL)         pagekillYES       
 fputc('n', stderr)                  if(curpag%2) poval  -pospec    else poval  
pospec    if(m1val  0)       skip(m1val-1)      if(curpag%2) puttl(oheader, curp
ag)      else puttl(eheader, curpag)          skip(m2val)    linenom1val+m2val+1
        /*  ** pfoot -- put out footer  */  pfoot()           /*  ** leadbl -- d
elete leading blanks, set tival  */  leadbl(buf) char buf     int i, j    brk() 
   i0    while(bufi' ') ++i    if(bufi!NULL) tival  tival + i    j0    while(buf
j++bufi++)        /*  ** width -- compute width of character string  */  width(b
uf) char *buf     int wide    wide0    while(*buf)       if(*buf27)         whil
e(*buf++ ! 1)         continue              if(*buf  'b') --wide      else if(*b
uf ! 'n')         ++wide        if(d  skip(m3val)    if(m4val  0)       if(curpa
g%2) puttl(ofooter, curpag)      else puttl(efooter, curpag)          if((curpag
  end)&((ecopyHUGE)(ecopypass)))       fclose(stdout)      exit(0)          if(p
auseNO) skip(m4val-1)    lineno0        /*  ** puttl -- put out title line with 
optional page number  */  puttl(buf, pageno) char buf int pageno     char str2  
  int i, j, k ,parts    str1NULL    ipoval  /** minus on odd pages **/    while(
++i  lmval) print(" ", YES)wact && !isspace(*buf)) ++wide              ++buf    
      return (wide)        /*  ** brk -- end current filled line  */  brk()     
if(outp  -1)       outbufoutpNULL      outp-1      put(outbuf)          outwoutw
ds0        /*  ** putwrd -- put a word in outbuf (does margin justification)  */
  putwrd(wrdbuf) char wrdbuf     int last, llval, nextra, w, i    wwidth(wrdbuf)
    laststrlen(wrdbuf)+outp+1    llvalrmval-lmval-tival-inval-(sqval1)    if((ou
tp  -1)&((outw+w  llval    parts1    ik0    while(bufi!NULL)       if(bufiPAGENU
M)         itod(pageno, nbrstr, - NWIDTH)        j0        while(nbrstrj' ') ++j
        while(j  NWIDTH)           if(k  (MAXOUT-1)) ttlbufk++nbrstrj          +
+j                        else         if(bufiTTLDELIM) ++parts        if(k  (MA
XOUT-1)) ttlbufk++bufi              ++i          ttlbufkNULL    spread(ttlbuf, k
+1, MAXOUT, rmval-lmval-k, parts, TTLDELIM)    /* disable running ul, it, dw, ds
)(last  MAXOUT)))       lastlast-outp-1      if(just!YES) nextra0      else next
rallval-outw+1      spread(outbuf, outp, MAXOUT, nextra, outwds, ' ')      if((n
extra  0)&(outwds  1)) outpoutp+nextra      brk()          if(outp  0 && cuact  
1 && !itsub && ttymode)      outbufoutp''    else       ++outwds      if(cuact1)
 cuact2          if((outp  0)&(wrdbuf0' ')) i1 else i0    scopy(wrdbuf+i, 0, out
buf, outp+1)    outplast-i    outbufoutp' '    outwoutw+w+1-i , or bf */    if(u
loff) print(uloff, YES)    if(itoff) print(itoff, YES)    if(dsoff) print(dsoff,
 YES)    if(bfoff) print(bfoff, YES)    if(dwoff) print(dwoff, YES)    print(ttl
buf, YES)    /* reenable running ul, it, dw, ds, or bf */    if(ulon) print(ulon
, YES)    if(iton) print(iton, YES)    if(dson) print(dson, YES)    if(bfon) pri
nt(bfon, YES)    if(dwon) print(dwon, YES)    print("n", YES)        /*  ** gett
l -- copy title from buf to ttl  */  gettl(buf, ttl) char *buf, *ttl     int i  
RAFBGCHDIE       /*  ** spread -- spread words to justify right margin  */  spre
ad(buf, outp, max, nextra, outwds, gapid)    char buf, gapid int outp, max, next
ra, outwds     int i, j, nb, ne, nholes    if((nextra  0)(outwds  1)) return    
dir1-dir /* reverse prev direction */    nenextra    nholesoutwds-1    ioutp-1  
  if((max-2)  (i+ne)) jmax-2    else ji+ne    while(i  j)       if(bufigapid)   
      bufj' '        if(dir0) nb(ne-1)/nholes + 1        else nbne/nholes       
line  */  italic(buf, tbuf, size) char buf, tbuf int size     char *ptr    int i
, j    if(*buf  0) return    if(ttymode) return    ij0    ptritpref    while((tb
ufj++*ptr++) ! 1)     ptrbfpref    while((tbufj++*ptr++) ! 1)     while((bufi!NU
LL)&(j(size-2)))  tbufj++bufi++    ptritsuff    while((tbufj++*ptr++) ! 1)     p
trbfsuff    while((tbufj++*ptr++) ! 1)     tbufjNULL    scopy(tbuf, 0, buf, 0)  
      /*  ** double -- double-wide a line (nontty m  nene-nb        nholesnholes
-1        while((nb--)  0)          buf--j' '              else bufjbufi      --
i      --j              /*  ** center -- center a line by setting tival  */  cen
ter(buf) char buf     int i, j    j  -lmval - inval - sqval    if((i((rmval-lmva
l-width(buf))/2)-inval-sqval)  j)         tival  j    else tival  i        /*  *
* underl -- underline a line  */  underl(buf, tbuf, size) char buf, tbuf int siz
e     char c, *ptr    int prefixed, i, jode only)  */  double(buf, tbuf, size) c
har buf, tbuf int size     char *ptr    int space, i, j    if(!*buf  ttymode) re
turn    space  YES    i  j  0    while(bufi && j  (size-3))       if(isspace(buf
i))         if(!space)           ptrdwsuff          while((tbufj++*ptr++) ! 1)  
                 space  YES              else         if(space)           ptrdwp
ref          while((tbufj++*ptr++) ! 1)                   space  NO             
 tbufj++bufi++       if(*buf  0) return    if(!ttymode) prefixedNO    else prefi
xed9  /* neither YES nor NO */    ij0    while((bufi!NULL)&(j(size-2)))       cb
ufi++      if(index(ulskips, c)  0)         if(prefixedNO)           prefixedYES
          ptrulpref          while((tbufj++*ptr++) ! 1)                   else i
f(ttymode)           tbufj++''          tbufj++'b'                        else  
       if(prefixedYES)           prefixedNO          ptrulsuff          wh      
 if(!space)       ptrdwsuff      while((tbufj++*ptr++) ! 1)           tbufjNULL 
   scopy(tbuf, 0, buf, 0)        /*  ** supersub -- process super- & sub-scripts
  */  supersub(buf, tbuf, size) char buf, tbuf int size     char *pref, *suff, *
ptr    int i, j    if(!*buf) return    i  j  suff  0    while(bufi && j  (size-3
))       if(isspace(bufi) && suff)         while((tbufj++  *suff++) ! 1)        
 suff  0              if(bufi  SUBCHAR && bufi+1  SUBile((tbufj++*ptr++) ! 1)   
                if(cuact0 && fillNO && c' ' && ttymode) c''              tbufj++
c          if(prefixedYES)       ptrulsuff      while((tbufj++*ptr++) ! 1)      
     tbufjNULL    scopy(tbuf, 0, buf, 0)        /*  ** bold -- boldface a line  
*/  bold(buf, tbuf, size) char buf, tbuf int size     char *ptr    int c, i, j  
  if(*buf  0) return    ij0    if(!ttymode)       ptrbfpref      while((tbufj++*
ptr++) ! 1)       ptrdspCHAR)         if(!ttymode)           if(suff) ptr  suff 
  suff  0          else     ptr  sbpref suff  sbsuff          while((tbufj++  *p
tr++) ! 1)                   i + 2              else if(bufi  SUPCHAR && bufi+1 
 SUPCHAR)         if(!ttymode)           if(suff) ptr  suff   suff  0          e
lse     ptr  sppref suff  spsuff          while((tbufj++  *ptr++) ! 1)          
         i + 2              else tbufj++  bufi++          if(suff) while((tref  
    while((tbufj++*ptr++) ! 1)           while((bufi!NULL)&(j(size-2)))       ct
bufj++bufi++&255      if(ttymode && (c  ' ') && (c  127))         int i        i
  bfstrikes        while (--i)           tbufj++'b'          tbufj++c           
                 if(!ttymode)       ptrbfsuff      while((tbufj++*ptr++) ! 1)   
    ptrdssuff      while((tbufj++*ptr++) ! 1)           tbufjNULL    scopy(tbuf,
 0, buf, 0)        /*  ** italic -- italicize a  RAFBGCHDIEbufj++  *suff++) ! 1)
     tbufj  NULL    scopy(tbuf, 0, buf, 0)        /*  ** doargs -- process comma
nd line arguments  */  doargs(argc, argv) int argc, *argv     char argMAXFN    i
nt i, err    showerrttymodeitsubulsubNO    pausereadyYES    bfstrikes3    pospec
mrgfd0    mrgbuf0NULL    beginbcopy1    endecopyHUGE    i0    while(getarg(++i, 
arg, MAXFN, argc, argv)!EOF)       if(arg0'-')         if(same(arg1, 'n') & same
(arg2, 'p'))           pauseNO           if((lutoi(ttlbuf+j, &k))  1) continue  
      if(ttlbufj+l!mrg) continue        --i        jj+l+1        m0        while
(--k)           while(mrgbufm)             if(mrgbufm++mrg) break               
               while((mrgbufm!NULL)&(mrgbufm!mrg))           inbufi++mrgbufm++  
        if(i  (INSIZE-1)) break                  mergedYES                  if(m
ergedNO) return YES    i  -1    while(inbuf++i)       if((inbufi!' ')&(inbufi!'t
')) ret      continue                  if(same(arg1, 'n') & same(arg2, 'r'))    
       readyNO          continue                  if(same(arg1, 's') & arg2  NUL
L)           show  YES          continue                  if(same(arg1, 't') & a
rg2NULL)  /** tty mode **/          ttymodeYES          continue                
  if(same(arg1, 'i') & arg2  NULL)           /* italics replace underlines */   
       itsubYES          continue                  if(same(arg1, 'u') & aurn YES
          return NO             while(--k)           while(mrgbufm)             
if(mrgbufm++mrg) break                              while((mrgbufm!NULL)&(mrgbuf
m!mrg))           inbufi++mrgbufm++          if(i  (INSIZE-1)) break            
      mergedYES                  if(mergedNO) return YES    i  -1    while(inbuf
++i)       if((inbufi!' ')&(inbufi!'t')) retrg2  NULL)           /* underlines r
eplace italics */          ulsubYES          continue                  if(same(a
rg1, 'b'))           if(same(arg2, 'p'))   /** begin page # **/            if(ut
oi(arg+3, &begin)  0) continue                      else if(same(arg2, 'c'))   /
** copy # **/            if(utoi(arg+3, &bcopy)  0) continue                    
  else if(same(arg2, 's'))   /** boldface strikes **/            if(utoi(arg+3, 
&bfstrikes)  0) continue                        /*  ** getwrd.c -- get non-blank
 word from ini into out, incr i  */  getwrd(in, i, out) char in, out int *i     
char c  int j    while(isspace(in*i)) ++*i    j0    while(cin*i)       if(isspac
e(c)) break      outj++c      ++*i          outjNULL    return j              if
(same(arg1, 'e'))    /** end  **/          if(same(arg2, 'p'))   /** page # **/ 
           if(utoi(arg+3, &end)  0) continue                      else if(same(a
rg2, 'c'))   /** copy # **/            if(utoi(arg+3, &ecopy)  0) continue      
                        if(same(arg1, 'p') & same(arg2, 'o'))   /** page offset 
**/          if(utoi(arg+3, &pospec)  0) continue                  errYES       
       else          if((mrgfdfopen(arg, "r"))NULL) cant(arg)        continue   
           errYES          if(errYES)       fputs("usage FMT mergefile -BC# -EC#
n",stderr)      fputs("    -BP# -EP# -PO# -NP -NRn",stderr)      fputs("    -T -
I -U -S -BS#n",stderr)      abort(7)              /*  ** merge -- merge fields f
rom mrgbuf into inbuf  */  merge()     int i, j, k, l, m, merged    if(mrgbuf0NU
LL) return YES    scopy(inbuf, 0, ttlbuf, 0)    mergedNO    ij0    while(inbufit
tlbufj++)       if(inbufi++mrg)    RAFBGCHDIE  /*  ** index.c -- find character 
c in string str  */  index(str, c) char str, c     int i    i-1    while(str++i!
NULL) if(stric) return i    return -1            09!9!0/9!9!7/!9/!9/+/!9/!//! 9/
!/!$g9!9/R!9/!9/+/! /$!9!9!!/!9! 9!!$9/o0/!9! 9/!//!9//!/!9!/!9/#/!9!/!9!9/#tinu
e              if(same(arg1, 'n'))         if(arg3  ' ')           if(same(arg2,
 'b'))             blanksNO            continue                      if(same(arg
2, 'p'))             pauseNO            continue                      if(same(ar
g2, 'n'))             numbers0            continue                      errYES  
                      if(same(arg1, 'p'))         if((jutoi(arg+3, &k))  0)     
      if((k  0)&(argj+3  ' '))             if(same(arg2, 'l'))               ple
ngthk              continue                          if(same(arg2, 'w'))        
       pwidthk              continue                                            
      errYES          if(err)       fputs("usage LST file -C# -PW# -PL# -NB -NN 
-NPn",            stderr)      abort(7)            column(in, out, cwidth, cols,
 plength, number)     int in, out, cwidth, cols, plength, *number      int eof, 
lines, colcnt, lwidth, i, bufsz, linecnt    char /*  ** lst.c -- list text in co
lumns on pages  **  ** Copyright 1982 J. E. Hendrix.  All rights reserved.  */  
#include stdio.h  #include "tools.h"  #define NOCCARGC  int    fd,     /* file d
escriptor for input */    eof,    /* end of file if YES */    cols,   /* number 
of cols */    cwidth, /* col width */    pwidth, /* page width */    plength,/* 
page length */    blanks, /* blank lines processed if YES */    numbers,/* numbe
r lines if  0 */    pause  /* pause before each page if YES */  main(argc, ar*pt
r, *stop, *eptr, *nexteptr, *buf, *bend    bufszcols*(cwidth+1)*plength    ptrbu
fmalloc(bufsz)    bendbuf+bufsz    eofNO    while(ptr  bend)       poll(YES)    
  if(*number)         i4        itou(*number, ptr, -i)        ptri++' '         
     else i0      if(fgets(ptr+i, cwidth+1-i, in)NULL)         eofYES        bre
ak              trim(ptr+i)      if((blanksNO) && (ptriNULL)) continue      if(*
number) ++(*number)      ptrptr+cwidth+1          stopptr    ptrgv) int argc, *a
rgv     if(!isatty(stdout))         /* set default dimensions */      pauseNO   
   pwidthPTRWIDE-1      plengthPTRHIGH-PTRSKIP-PTRHDR  /* page body height */   
       else       pauseYES      pwidthCRTWIDE-1      plengthCRTHIGH-1           
    /* allow for prompts */          blanksYES    eofNO    cols1    numbers1    
fdstdin    doargs(argc, argv)    cwidthpwidth/cols    while(eofNO)       if(paus
e)         fputs("waiting... ", stderr)        fgetc(stderr)buf    lwidthcols*(c
width+1)    lines(stop-buf)/lwidth    if((stop-buf)%lwidth) ++lines    if(lines0
) return eof    linecntlines    while(linecnt--)       poll(YES)      eptrptr   
   colcntcols      while(colcnt--)         sout(eptr, out)        if((nexteptrep
tr+(lines*(cwidth+1)))  stop) break        if(colcnt  0)           if((istrlen(e
ptr))  cwidth)             icwidth-i            while(i--) cout(' ', out)       
                       eptrnexteptr              cout('              eofcolumn(f
d, stdout, cwidth, cols, plength, &numbers)          fclose(stdout)      doargs(
argc, argv) int argc, *argv     int i, j, k, err    char argMAXFN    errNO    i0
    while(getarg(++i, arg, MAXFN, argc, argv) ! EOF)       if(arg0 ! '-')       
  if(!(fdfopen(arg, "r"))) errYES break        continue              if(same(arg
1, 'c'))         if((jutoi(arg+2, &cols))  1) errYES break        if((cols  1)(a
rgj+2  ' ')) errYES break        con  RAFBGCHDIEn', out)      ptrptr+cwidth+1   
       free(buf)    return eof      #include "out.c"  #include "same.c"  #includ
e "trim.c"    )        if((nexteptreptr+(lines*(cwidth+1)))  stop) break        
if(colcnt  0)           if((istrlen(eptr))  cwidth)             icwidth-i       
     while(i--) cout(' ', out)                              eptrnexteptr        
      cout('/*  ** mrg.c -- compares two sorted text files  **  ** Copyright 198
2 J. E. Hednrix.  All rights reserved.  **  ** switch 1  lines in first file onl
y  ** switch 2  lines in second file only  ** switch 3  lines in both files  ** 
switch f  lines in both files formatted  **  **          stdin defaults for seco
nd file  */  #include stdio.h  #include "tools.h"  #define NOCCARGC  int cmpr, f
d1, fd2, i  char *line1, *line2, column, argMAXFN  main(argc, argv) int argc, *a
rgv     int error    column'0'  /*  ** makset.c -- make array into a set  */  ma
kset(array, k, set, size) char array, set int k, size     int i, j    ik    j0  
  filset(NULL, array, &i, set, &j, size)    return addset(NULL, set, &j, size)  
     return addset(NULL, set, &j, size)      ET, toDIMSET    int allbut, collap,
 i, lastto    if(getarg(1, arg, MAXARR, argc, argv)EOF)       getarg(0, arg, MAX
ARR, argc, argv)      printf("Usage %s patternfrom patternton", arg, 1)      abo
rt(0)          else if(arg    fd1fd2stdin    line1malloc(MAXLINE+1)    line2mall
oc(MAXLINE+1)    errorNO    i0    while(getarg(++i, arg, MAXFN, argc, argv)!EOF)
       if(arg0!'-')         if(fd1stdin)           if((fd1fopen(arg, "r"))NULL) 
cant(arg)                  else if(fd2stdin)           if((fd2fopen(arg, "r"))NU
LL) cant(arg)                  else errorYES              else if(((arg1  '0')&(
arg1  '4'))              (same(arg1, 'f')))        columnarg1      else errorYES
          if((error)(fd1stdin))       fputs("usage MRG file file -1-2-3-Fn", std
err)      abort(7)          auxbuf(fd1, 4096)    auxbuf(fd2, 4096)    getline(li
ne1, fd1)    getline(line2, fd2)    while(YES)       poll(YES)      cmprlexcmp(l
ine1, line2)      if(cmpr  0)         if(same(column, 'f')) fout("1) ", line1)  
      else if((column'0')(column'1')) sout(line1, stdout)        getline(line1, 
fd1)        continue              else if(cmpr  0)         if(same(column, 'f') 
 /*  ** maksub.c -- make substitution string in sub  */  maksub(arg, from, delim
, sub) char arg, sub, delim int from     int i, j    j0    ifrom    while((argi!
delim)&(argi!NULL))       if(argiDITTO) addset(DITCODE, sub, &j, MAXPAT)      el
se addset(esc(arg, &i), sub, &j, MAXPAT)      ++i          if(argi!delim) return
 ERR /**** missing delimiter ****/    if(addset(NULL, sub, &j, MAXPAT)NO) return
 ERR /** no room **/    return i      T, subMAXPAT  char argMAXARG ) fout("  2) 
", line2)        else if((column'0')(column'2')) sout(line2, stdout)        getl
ine(line2, fd2)        continue              if(line10  127) break      if(same(
column, 'f'))   fout("    3) ", line1)      else if((column'0')(column'3')) sout
(line1, stdout)      getline(line1, fd1)      getline(line2, fd2)          fclos
e(stdout)        getline(line, fd) char *line int fd     if(fgets(line, MAXLINE+
1, fd)NULL)       line0  127      line1  NULL             RAFBGCHDIE   /*  ** fo
ut -- formatted output of a line  */  fout(header, data) char *header, *data    
 sout(header, stdout)    sout(data, stdout)        #include "out.c"  #include "c
ant.c"  #include "same.c"    column'3')) sout(line1, stdout)      getline(line1,
 fd1)      getline(line2, fd2)          fclose(stdout)        getline(line, fd) 
char *line int fd     if(fgets(line, MAXLINE+1, fd)NULL)       line0  127      l
ine1  NULL             /*  ** pat.c -- pattern making and matching functions  */
    /*  ** addset -- put c in set & increment j  */  addset(c, set, j, maxsiz) c
har c, set int *j, maxsiz     if(*j  maxsiz) return NO    set*jc    *j  *j + 1  
  return YES        /*  ** amatch -- look for match starting at linfrom  */  ama
tch(lin, from, pat) char lin, pat int from     int i, j, offset, stack    stack 
 -1    offsetfrom    j0    while(patj!NULL)       if(patjCLOSURE)         stackj
        j  /*  ** out.c -- output to fd checking for errors  */  cout(c, fd) cha
r c int fd     if(fputc(c, fd)EOF) xout()        sout(string, fd) char *string i
nt fd     if(fputs(string, fd)EOF) xout()        lout(line, fd) char *line int f
d     sout(line, fd)    cout('n', fd)        xout()     fputs("output errorn", s
tderr)    abort(7)      j+CLOSIZE        ioffset        while(lini!NULL)        
   if(omatch(lin, &i, pat, j)NO) break                  patstack+COUNTi-offset  
      patstack+STARToffset        offseti              else if(omatch(lin, &offs
et, pat, j)NO)         while(stack  0)           if(patstack+COUNT  0) break    
      stackpatstack+PREVCL                  if(stack  0) return -1        patsta
ck+COUNTpatstack+COUNT-1        jstack+CLOSIZE        offsetpatstack+START+patst
ack+COUNT              jj+patsiz(pat, j)          return offset        /*  ** do
dash -- expand arrayi-1 - arrayi+1 into setj...  */  dodash(valid, array, i, set
, j, maxset)    char valid, set, array int *i, *j, maxset     int k, limit    *i
  1 + *i    *j  -1 + *j    limitindex(valid, esc(array, i))    kindex(valid, set
*j)    while(k  limit)      addset(validk++, set, j, maxset)        /*  ** esc -
- map arrayi into escaped char if appropriate  */  esc(array, i) char array  /* 
 ** page.c -- tell stderr of new page and possibly pause  */  page(pageno, pause
, fd) int pageno, pause, fd     int i    char str6    str5NULL    itod(pageno, s
tr, 5)    i0    while(stri' ') ++i    if((pauseYES)&&(pageno1)&&isatty(fd))     
  fputs("7set page ", stderr)      fputs(str+i, stderr)      fputs("... ", stder
r)      return fgetc(stderr)          else       fputs("page ", stderr)      fpu
ts(str+i, stderr)      fputc('n', stderr)      return NULL              RAFBGCHD
IE int *i     if(array*i!ESCAPE) return array*i    else if(array *i + 1NULL)    
/* esc not special at end */      return ESCAPE    else       *i *i + 1      if(
array*i'n') return 'n'      else if(array*i't') return 't'      else if(array*i'
b') return 'b'      else if(array*i's') return ' '      else return array*i     
         /*  ** filset -- expand set in array into set stopping at delim  */  fi
lset(delim, array, i, set, j, maxset)    char delim, array, set addset(EOL, pat,
 &j, MAXPAT)      else if(argiCCL)         if(getccl(arg, &i, pat, &j)ERR) break
              else if((argiCLOSURE)&(ifrom))         ljlastj        if((patljBOL
)(patljEOL)(patljCLOSURE)) break        lastclstclos(pat, &j, &lastj, lastcl)   
           else         addset(CHAR, pat, &j, MAXPAT)        addset(esc(arg, &i)
, pat, &j, MAXPAT)              lastjlj      ++i          if((argi!delim)(addset
(NULL, pat, &j, MAXPAT)NO)) return ERR    re int *i, *j, maxset     char *digits
, *lowalf, *upalf    digits"0123456789"    lowalf"abcdefghijklmnopqrstuvwxyz"   
 upalf"ABCDEFGHIJKLMNOPQRSTUVWXYZ"    while((array*i!delim)&(array*i!NULL))     
  if(array*iESCAPE)        addset(esc(array, i), set, j, maxset)      else if(ar
ray*i!'-')        addset(array*i, set, j, maxset)      else if((j  0)(array*i+1N
ULL))    /* literal - */        addset('-', set, j, maxset)      else if(index(d
igits, set*j -1)  -1)        dodash(dturn i        /*  ** match -- find match an
ywhere in line  */  match(line, pattern) char line, pattern     int i    i0    w
hile(YES)       if(amatch(line, i, pattern)  0) return YES      if(linei++NULL) 
return NO              /*  ** omatch -- try to match a single pattern at patj  *
/  omatch(lin, i, pat, j) char lin, pat int *i, j     int bump    bump  -1    if
(patjBOL)       if(*i0) bump0          else if(patjEOL)       if(lin*iNULL) bump
0          eligits, array, i, set, j, maxset)      else if(index(lowalf, set*j -
1)  -1)        dodash(lowalf, array, i, set, j, maxset)      else if(index(upalf
, set*j -1)  -1)        dodash(upalf, array, i, set, j, maxset)      else addset
('-', set, j, maxset)      *i  *i + 1              /*  ** getccl -- expand char 
class at argi into patj  */  getccl(arg, i, pat, j) char arg, pat int *i, *j    
 int jstart    *i  *i + 1  /**** skip over '' in arg ****/    if(arg*iNOT)      
 addset(NCCse if(lin*iNULL) return NO    else if(patjCHAR)       if(lin*ipatj+1)
 bump1          else if(patjANY) bump1    else if(patjCCL)       if(locate(lin*i
, pat, j+1)YES) bump1          else if(patjNCCL)       if(locate(lin*i, pat, j+1
)NO) bump1          else error("in omatch can't happenn")    if(bump  0)       *
i  *i + bump      return YES          return NO        /*  ** patsiz -- returns 
size of entry at patn  */  patsiz(pat, n) char *pat int n L, pat, j, MAXPAT)    
  *i  *i + 1          else addset(CCL, pat, j, MAXPAT)    jstart  *j    addset(0
, pat, j, MAXPAT)  /**** leave room for count ****/    filset(CCLEND, arg, i, pa
t, j, MAXPAT)    patjstart  *j - jstart - 1    if(arg*iCCLEND) return YES    ret
urn ERR        /*  ** locate -- look for c in char class at patoffset  */  locat
e(c, pat, offset) char c, pat int offset     int i    /*    ** size of class is 
at patoffset, characters follow    */    ioffset+patoffset    patpat+n    if(*pa
tCHAR) return 2    else if((*patBOL)(*patEOL)(*patANY)) return 1    else if((*pa
tCCL)(*patNCCL)) return (*(++pat)+2)    else if(*patCLOSURE) return CLOSIZE    e
lse error("in patsiz can't happenn")        /*  ** stclos -- insert closure entr
y at patj  */  stclos(pat, j, lastj, lastcl) char pat int *j, *lastj, lastcl    
 int jp, jt    jp  *j - 1    while(jp  *lastj)    /**** make hole for closure **
**/      jt  jp + CLOSIZE      addset(patjp--    while( i  offset)       if(cpat
i--) return YES          return NO        /*  ** makpat -- make pattern from arg
from, end at delim  */  makpat(arg, from, delim, pat) char arg, delim, pat int f
rom     int i, j, lastcl, lastj, lj    jlastj0    lastcl  -1    ifrom    while((
argi!delim)&(argi!NULL))       ljj      if(argiANY) addset(ANY, pat, &j, MAXPAT)
      else if((argiBOL)&(ifrom)) addset(BOL, pat, &j, MAXPAT)      else if((argi
EOL)&(argi+1delim))   R A F B G C H D I E, pat, &jt, MAXPAT)          *j  *j + C
LOSIZE    jp  *lastj    addset(CLOSURE, pat, lastj, MAXPAT)  /** CLOSURE **/    
addset(0, pat, lastj, MAXPAT)        /** COUNT **/    addset(lastcl, pat, lastj,
 MAXPAT)   /** PREVCL **/    addset(0, pat, lastj, MAXPAT)        /** START **/ 
   return jp           utoi(name+3, &begin)        continue              if((sam
e(name1, 'e'))&(same(name2, 'p')))         utoi(name+3, &end)        continue   
           if((same(name1, 'l'))&(same(name2, 'm')))         utoi(name+3, &margi
n)        continue              if((same(name1, 'n'))&(same(name2, 'r')))       
  readyNO        continue              if(same(name1, 'p'))         pauseYES    
    continue              if(same(name1, 'n'))         if(same(name2, 'h')) head
ingsNO continue        if(same(name2, 's'))    skipsNO continue        if(same(n
ame2, 'n'))  numbersNO continue              fputs("usage PRT file... . -NN -NH-
NSn",            stderr)      fputs("     -LM# -BP# -EP# -P -NRn", stderr)      
abort(7)              fprnt(name, fin)    char name int fin     char lineMAXLINE
+1, wordMAXLINE+1    int textline, fin2, i, temp    textline0    while(fgets(lin
e, MAXLINE+1, fin)!NULL)       poll(YES)      if((lineno/*  ** prt.c -- print fi
les with optional page skips, headings,  **          and line numbers.  **  ** C
opyright 1982 J. E. Hendrix.  All rights reserved.  */  #include stdio.h  #inclu
de "tools.h"  #define MARGIN1 0  #define MARGIN2 1  char nameMAXFN, inclextMAXFN
  int    i,    fin,    files,    headings,    skips,    numbers,    begin,    en
d,    ready,    pause  int lineno, pageno, margin  main(argc, argv) int argc, *a
rgv     headingsskipsnumbersYES    doargs(argc, argv)    if(iscons(stdou0)&(skip
s))         if(++pageno  end) exit(0)        if(pageno  begin)           page(pa
geno, pause, stdout)          skip(MARGIN1)          if(headings)             te
mpmargin            while(temp--) printf(" ", 0)            if(numbers) printf("
      ", 0)            printf("File %s    Page %dn", name, pageno, 2)           
           else printf("n",0)          ++lineno          skip(MARGIN2)          
        linenolineno+MARGIN1+MARGIN2              ++textline      ++lineno  t)) 
freopen("LST", "w", stdout)    if(ready && isatty(stdout))       fputs("ready pr
inter... ", stderr)      fgetc(stderr)          filesNO    i0    while(getarg(++
i, name, MAXFN, argc, argv)!EOF)       if((name0'-')(name0EXTMARK)) continue    
  filesYES      finfopen(name, "r")      if(fin0) cant(name)      pagenolineno0 
     fprnt(name, fin)      fclose(fin)      if((lineno  0)&(skips)) skip(PTRHIGH
-lineno)          if(filesNO)       pagenolineno0      fprnt("st    if(pageno  b
egin)         tempmargin        while(temp--) printf(" ", 0)        if(numbers) 
         printf("%5d %s", textline, line, 2)        else printf("%s", line, 1)  
            if((lineno  (PTRHIGH-PTRSKIP))&(skips))         skip(PTRHIGH-lineno)
        lineno0              if(inclext0!EXTMARK) continue      i0      getwrd(l
ine, &i, word)      if((lexcmp(word, "#include")0)          (lexcmp(word, ".so")
0))         if(getwrd(line, &i, word)  MAXFN) cant(word)       din", stdin)     
 if((lineno  0)&(skips)) skip(PTRHIGH-lineno)          fclose(stdout)    exit(0)
        doargs(argc, argv) int argc, *argv     int i, j    inclext0NULL    begin
0    end32767    readyYES    pauseNO    margin0    i0    while(getarg(++i, name,
 MAXFN, argc, argv)!EOF)       if(name0EXTMARK)         j0        while(inclextj
toupper(namej)) ++j        continue              if(name0!'-') continue      if(
(same(name1, 'b'))&(same(name2, 'p')))      !R!A!F!B!G!C!H!D!I!E strip(word)    
    i0        while((wordi!EXTMARK) && (wordi)) ++i        if((inclext1) &&     
      (lexcmp(word+i, inclext)!0)) continue        if((fin2fopen(word, "r"))NULL
) cant(word)        fprnt(name, fin2)        fclose(fin2)                      s
kip(n) int n     int i    if(pageno  begin) return    i0    while(++i  n)       
poll(YES)      fputc('n', stdout)            #include "cant.c"  #include "page.c
"  #include "same.c"  #include "strip.c"  #include "getwrd.'u') itou(i, str, 7) 
     else continue      ctlcx /* accept conversion spec */      if(c!'s') while(
*sptr' ') ++sptr      len-1 while(sptr++len) /* get length */      if((c's')&(le
nprec)&(preclen0)) lenprec      if(right) while(((width--)-len)0) cout(pad, stdo
ut)      while(len) cout(*sptr++, stdout) --len --width      while(((width--)-le
n)0) cout(pad, stdout)            c"     inclext)!0)) continue        if((fin2fo
pen(word, "r"))NULL) cant(word)        fprnt(name, fin2)        fclose(fin2)    
                  skip(n) int n     int i    if(pageno  begin) return    i0    w
hile(++i  n)       poll(YES)      fputc('n', stdout)            #include "cant.c
"  #include "page.c"  #include "same.c"  #include "strip.c"  #include "getwrd.  
/*  ** same -- YES if c same as lower case lc, else NO  **         c may be uppe
r or lower case  */  same(c, lc) char c, lc     if((c  'A')&(c  'Z')) c  c + 32 
   if (c  lc) return YES    return NO        /*  ** printf(controlstring, arg, a
rg, ...) -- formatted print  **        operates as described by Kernighan & Ritc
hie  **        only d, x, c, s, and u specs are supported.  */  printf(argc) int
 argc     int i, width, prec, preclen, len, *nxtarg    char *ctl, *cx, c, right,
 str7, *sptr, pad    i  CCARGC()   /* fetch arg count from A reg first */    nxt
arg  &argc + i - 1    ctl  *nxtarg    while(c*ctl++)       if(c!'%') cout(c, std
out) continue      if(*ctl'%') cout(*ctl++, stdout) continue      cxctl      if(
*cx'-') right0 ++cx else right1      if(*cx'0') pad'0' ++cx else pad' '      if(
(iutoi(cx, &width))  0) cxcx+i else continue      if(*cx'.')         if((preclen
utoi(++cx, &prec))  0) cxcx+preclen        else continue              else precl
en0      sptrstr c*cx++ i*(--nxtarg)      if(c'd') itod(i, str, 7)      else if(
c'x') itox(i, str, 7)      else if(c'c') str0i str1NULL      else if(c's') sptri
      else if(c  "R"A"F"B"G"C"H"D"I"E  /*  ** scopy -- copy fromi to toj  */  sc
opy(from, i, to, j) char *from, *to int i, j     fromfrom+i    toto+j    while(*
to++  *from++)                      if(tolower(ln1)  'd') /* debug mode - only s
how output */          debug  YES          continue                  break      
        fputs("usage STP -V -D", stderr)      abort(7)          while(fgets(ln, 
LINESZ, stdin))       lnptr  ln      error  NO      while(*lnptr && *lnptr ! FEN
CE && *lnptr ! 'n')         poll(YES)        if(*lnptr  QUOTE) dostring() else d
ohex()        while(isspace(*++lnptr))               if(debug) fputs("n", stderr
)      if(view  error) fputs(ln, stderr)              dostring()     ++lnptr    
while(*lnptr  ' ')       if(*lnptr  QUOTE)         ++lnptr        if(*lnptr ! QU
OTE) return              send(lnptr++)          fputs("7n- unterminated string i
n following linen", stderr)    error  YES        dohex()     int i, hex    char 
ch    i  xtoi(lnptr, &hex)    if(i  1  i  2  !isspace(lnptri)) i  0    while(!is
space(*lnptr)) ++lnptr    if(i  0)       fputs("7n- bad hex byte in following   
/*  ** settab.c -- search command line for tab list possibly  **             ter
minated with an interval (+n) and set up  **             tabsMAXLINE+1  */  #def
ine DEFTAB 8  settab(tabs, argc, argv) char tabs int argc, *argv     int i, j, k
    char parm9    i0    while(++iMAXLINE) tabsiNO    if((getarg(1, parm, 9, argc
, argv))EOF)       i0      while(++iMAXLINE)      if((i%DEFTAB)1) tabsiYES      
return YES          i0    j1    while(getarg(++i, parm, 9, argc, argv)!EOlinen",
 stderr)      error  YES      return          ch  hex    send(&ch)        send(p
tr) char *ptr     if(debug)       int i      char str3      i  *ptr & 255      i
tox(i, str, 3)      fputs(str, stderr)      fputs(" ", stderr)          else wri
te(stdout, ptr, 1)        2  !isspace(lnptri)) i  0    while(!isspace(*lnptr)) +
+lnptr    if(i  0)       fputs("7n- bad hex byte in following F)       if(utoi(p
arm, &k))         if(kMAXLINE)           tabskYES          jk                  e
lse           fputs("tab stop beyond max line lengthn", stderr)          return 
ERR                        else if(parm0'+')         if(utoi((parm+1), &k))     
     while((jj+k)MAXLINE) tabsjYES                else return ERR          retur
n YES      XLINE)      if((i%DEFTAB)1) tabsiYES      return YES          i0    j
1    while(getarg(++i, parm, 9, argc, argv)!EO/*  ** srt.c -- sort text lines  *
*  ** Copyright 1982 J. E. Hendrix.  All rights reserved.  **  ** Each line in t
he buffer is preceeded by a 1-byte offset to  ** the sort key.  Line pointers de
signate the first data byte.  */  #include stdio.h  #include "tools.h"  #define 
NOCCARGC  #define SHELL 1  #define QUICK 2  #define WRTMODE 2  #define MAXRUNS 9
9  #define LOGPTR 20  #define AVGLIN 28  #define RESERVE 2000  #define MERGEORDE
R 5  char *linbuf, outnamMAXFN, tmpdrv  char lastlineMAXLINE+1  char */*  ** stp
.c -- setup a device configuration  */  #include stdio.h  #define LINESZ   133/*
 maximum input line size */  #define FENCE    ''/* comment prefix */  #define QU
OTE    '"'/* quote for strings */  char lnLINESZ, *lnptr  int view, debug, error
  main(argc, argv) int argc, *argv     int i    view  debug  NO    i  0    while
(getarg(++i, ln, 15, argc, argv) ! EOF)       if(*ln  '-')         if(tolower(ln
1)  'v') /* view activity */          view  YES          continue    #R#A#F#B#G#
C#H#D#I#Emaxbuf, *maxlin  /**** fake unsigned int ****/  char tmpout"Xsort00.$$$
"  char tmpinp"Xsort00.$$$"  char tmpdel"Xsort00.$$$"  char delim  int  field  i
nt tmpfdMERGEORDER, *linptr, nlines  int low, lim, high, outfil, output, t, orde
r, unique, typesort  main(argc, argv) int argc, *argv     lastline0outnam00    t
mpdrv'X'    doargs(argc, argv)    if(tmpdrv  'X')       strcpy(tmpout, tmpout+2)
      strcpy(tmpinp, tmpinp+2)      strcpy(tmpdel, tmpdel+2)          else tmpou
 'A') &&             (toupper(arg2)  'G') &&             (arg3NULL))            
 tmpdrvarg2      else if(same(c, 'c'))         delimNULL        if(argutoi(arg+2
, &field)+2 ! NULL) errorYES        if(field) --field              else if(same(
c, 'f'))         if(arg(lenutoi(arg+2, &field))+2  ' ')           delimarglen+2 
         if(arglen+3 ! NULL) errorYES                  else delim' '        if(f
ield) --field        field  -field              else if(arg2!NULL)t0tmpinp0tmpde
l0tmpdrv    outputstdout    if((limavail(YES))0) lim32767    maxlin(lim-RESERVE)
/(2+AVGLIN)    linptrmalloc(2*maxlin)    if((limavail(YES))0) lim32767    maxbuf
lim - RESERVE    linbufmalloc(maxbuf)      high0    while(YES)       if(++high  
MAXRUNS)         fputs("file too largen", stderr)        abort(7)              t
gtext()        sort(0, nlines-1)        if(high1)         if(tNULL)           ou
tfiloutput          ptext()          fclose(outf errorYES      else if(same(c, '
d')) order-1      else if(same(c, 'u')) uniqueYES      else if(same(c, 'q')) typ
esortQUICK      else errorYES      if(error)         fputs("usage SRT -C#-F# -D 
-U -Tx -Qn",               stderr)        abort(7)                      gtext() 
    int len    char *lbp    lbp1 /** leave space for first sort key offset **/  
  nlines0    while(YES)       poll(YES)      if((lenreadline(linbuf+lbp, stdin))
NULL) break      linptrnlines++lbpil)          exit(0)                        ma
ketmp()      ptext()      fclose(outfil)      if(tNULL) break            /*  ** 
Must deallocate in reverse order from allocation.  ** Will allocate input tmp fi
le buffers/FCBs over this space  ** these must not reach end of linbuf where out
put tmp file  ** space was allocated, since that space stays with that fd.  */  
  free(linbuf)    free(linptr)      linptrmalloc(2*(MERGEORDER+1))    linbufmall
oc(MERGEORDER*(MAXLINE+1))    lastline00          lbplbp+len  /** has 2 bytes fo
r NULL and next offset **/      if(((lbp+1)  (maxbuf-(MAXLINE+1)))(nlines  maxli
n))        break          return len        ptext()     int i    char *lbp    i0
    while(i  nlines)       poll(YES)      lbplinbuf+linptri++      if(duptest(lb
p)) continue      sout(lbp, outfil)              duptest(line) char *line     in
t diff    if(!unique) return (NO)           /*03*/    diff  lexcmp(lastline, lin
e)    strcpy(lastline, line)    return (low1    while(low  high)                
/*05*/      limlow+MERGEORDER-1      if(high  lim) limhigh      t0      while(t 
 (lim-low))         bumptmp(tmpinp)        if((tmpfdtfopen(tmpinp, "r"))NULL) ca
nt(tmpinp)        auxbuf(tmpfdt++, 2048) /* redundant calls ignored */          
    if(limhigh) outfiloutput      else maketmp()      if(++high  MAXRUNS)       
  fputs("file too largen", stderr)        abort(7)              merge(lim-low+1)
      fclose(outfil)      t0   !diff)        bumptmp(tmpname) char tmpname     c
har *digit    digit  strchr(tmpname, '.') - 1    if(*digit  '9') *digit  '0' --d
igit    ++*digit        maketmp()     bumptmp(tmpout)    if((outfilfopen(tmpout,
"w"))NULL) cant(tmpout)        killtmp()     bumptmp(tmpdel)    unlink(tmpdel)  
      sort(lv, uv) int lv, uv     if(typesortQUICK) quick(lv, uv)    else       
         shell(lv, uv)        shell(lv, uv) int lv, uv     int gap, i, j, jg    
gap  (uv-lv+1)  1 /*   while(t  (lim-low))         fclose(tmpfdt++)           /*
02*/        killtmp()              lowlow+MERGEORDER              doargs(argc, a
rgv)  int argc, *argv      char argMAXFN, c    int i, error, len    field0    de
limNULL    /** indicates column number in field **/    order1    typesortSHELL  
  uniqueerrorNO    i0    while(getarg(++i, arg, MAXFN, argc, argv)!EOF)       ca
rg1      if(arg0!'-') errorYES      else if(same(c, 't') &&             (toupper
(arg2)   $R$A$F$B$G$C$H$D$I$E* divide by 2 **/    while(gap  0)       poll(YES) 
     i  gap + lv      while(i  uv)         j  i++ - gap        while(j  lv)     
      jg  j + gap          if(compare(linptrj, linptrjg)  0) break          exch
ange(j, jg)          j  j - gap                        gap  gap1 /** divide by 2
 **/              quick(lv, uv) int lv, uv     int i, j, pivlin    avail(YES)   
 poll(YES)    if(lv  uv) return  /** only one element **/    ilv-1    juv    piv
linlinptrj       and return its length  */  readline(str, fd) char *str int fd  
   int fld    char *ptr, *offset    if(fgets(str, MAXLINE+1, fd)NULL) return NUL
L    ptroffsetstr-1     /** location of offset field **/    fldfield    if(delim
)            /** must search for field'th field **/      *offset  -1      while(
*(++ptr))         if(fld  0)           if(delim  ' ')             if((*ptr  ' ')
&(*(ptr+1)  ' ')) ++fld                      else if(*ptr  delim) ++fld         
         else  while(i  j)       ++i      while(compare(linptri, pivlin)  0) ++i
      --j      while(i  j)         if(compare(linptrj, pivlin)  0) --j        el
se break              if(i  j) exchange(i, j)          juv    exchange(i, j)    
if((i-lv)  (uv-i))       quick(lv, i-1)      quick(i+1, uv)          else       
quick(i+1, uv)      quick(lv, i-1)              compare(p1, p2) int p1, p2     c
har *ptr1, *ptr2    ptr1  linbuf + (p1 - 1) ptr1  ptr1 + *ptr1    ptr2  linbuf +
 (p2  if((fld  0)&((delim ! ' ')(*ptr  ' ')))           *offset(ptr-str)        
  fld1                        if (*offset  -1) *offset(ptr-str) /** end of line 
**/          else   /** field is the column number of the sort key **/      whil
e(*(++ptr))      if(field  (ptr-str)) *offsetfield      else                  *o
ffset(ptr-str)          return (ptr-str+2) /** includes NULL and next offset **/
        #include "out.c"  #include "cant.c"  #include "same.c"    - 1) ptr2  ptr
2 + *ptr2    while(lexorder(*++ptr1, *++ptr2)  0)      if((*ptr1  NULL)(delimit(
*ptr1))) return 0    if(delimit(*ptr1)) return -order    if(delimit(*ptr2)) retu
rn  order    if(lexorder(*ptr1, *ptr2)  0) return order    return -order        
delimit(c) char c     if(c  delim)    return NO    if(delim  ' ') return YES    
if(c  delim)    return NO    return YES        exchange(i, j) int i, j     int k
    klinptri linptrilinptrj linptrjk        merge(nfiles) int nfiles     int i, 
inf, lbp, lp1, nf    char *ptr    lbp1 /* leave space for first sort key offset 
**/    nfi0    while(i  nfiles)     /** get one line from each file **/      if(
readline((linbuf+lbp), tmpfdi++)!NULL)         linptr++nflbp        lbplbp+(MAXL
INE+1)                    sort(1, nf)    /** make initial heap **/ /*04*/      w
hile(nf  0)       poll(YES)      lp1linptr1      ptrlinbuf+lp1      if(duptest(p
tr)NO) sout(ptr, outfil)      inf(lp1/(MAXLINE+1/*  ** strip -- Strip , , and " 
from str.  */  strip(str) char *str     char *cp    cp  str - 1    while(*++cp  
*str++)       switch(*cp)         case ''  case ''  case '"'  --cp              
      )) /** compute file index **/      if(readline((linbuf+lp1), tmpfdinf)NULL
)        linptr1linptrnf--      reheap(nf)              reheap(nf) int nf     in
t i, j    i1    while((j(i1))  nf)       if(j  nf)       /** find smaller child 
**/        if(compare(linptrj, linptrj+1)  0) ++j              if(compare(linptr
i, linptrj)  0) break      exchange(i, j)     /** percolate **/      ij         
     /*  ** readline -- read next line, set its sort key offset,  **      %R%A%F
%B%G%C%H%D%I%Ee(1)       poll(YES)      ixindex(from, cfgetc(stdin), allbut, las
tto)      if((collapYES)&(ilastto)&(lastto-1))  /* collapse */        if(fputc(t
olastto, stdout)EOF)          error("output error")        while(1)           ix
index(from, cfgetc(stdin), allbut, lastto)          if(ilastto) break           
             if(cEOF) break      if((i-1)&(lastto-1))             /* translate *
/        if(fputc(toi, stdout)EOF)          error("output error")              e
lse if(i0  /*  ** tabpos.c -- return YES if col is a tab stop, else NO  */  tabp
os(col, tabs) int col char tabs     if(colMAXLINE) return YES    else return tab
scol              MLINE    int col, i    settab(tabs)    col1    while((cgetcha(
))!EOF)       if(c't')        while(1)           putchar(' ')          ++col    
      if(tabpos(col, tabs)YES) break                else if(c'n')         putcha
r('n')        col1              else         putchar(c)        ++col  )         
               /* copy */        if(fputc(c, stdout)EOF)          error("output 
error")                                                  /* delete */    fclose(
stdout)      #include "pat.c"  #include "error.c"  #include "index.c"  #include 
"xindex.c"  #include "makset.c"    -1))             /* translate */        if(fp
utc(toi, stdout)EOF)          error("output error")              else if(i0/*  *
* trim -- trim n from str & return its length  */  trim(str) char *str     char 
*s    s  str - 1    while(*++s)   /* prefix ++ is faster */    if((*--s  'n') &&
 (s  str)) *s  NULL else ++s    return (s - str)        /*  ** trn.c -- map char
acters  **  ** Copyright 1982 J. E. Hendrix.  All rights reserved.  */  #include
 stdio.h  #include "tools.h"  #define NOCCARGC  #define MAXARG 80  #define MAXSE
T 127  main(argc, argv) int argc, *argv     char argMAXARG+1, c, fromMAXSET+1, t
oMAXSET+1    int allbut, collap, i, lastto, error    auxbuf(stdin, 4096)    erro
rNO    if(getarg(1, arg, MAXARG, argc, argv)EOF) errorYES    if(((arg0'-')&(arg1
' '))(errorYES))       fputs("usage TRN from ton", stderr)      abort(7)        
  if(arg0NOT)       allbutYES      if(makset(arg, 1, from, MAXSET)NO)        err
or("from-list too large")          else       allbutNO      if(makset(arg, 0, fr
om, MAXSET)NO)        error("from-list too large")          if(getarg(2, arg, MA
XARG, argc, argv)EOF) to0NULL    else if(makset(arg, 0, to, MAXSET)NO)      erro
r("to-list too large")    lasttostrlen(to)-1    if((strlen(from)(lastto+1))(allb
utYES)) collapYES    else collapNO    whil  &R&A&F&B&G&C&H&D&I&E  /*  ** xindex.
c -- invert condition returned by index  */  xindex(array, c, allbut, lastto) ch
ar array, c int allbut, lastto     if(cEOF) return -1    else if(allbutNO) retur
n index(array, c)    else if(index(array, c)-1) return -1    else return lastto+
1      /!$g9!9/R!9/!9/+/! /$!9!9!!/!9! 9!!$9/o0/!9! 9/!//!9//!/!9!/!9/#/!9!/!9!9
/#  'R'A'F'B'G'C'H'D'I'E  (R(  0G!523-037C        SCHNEIDER DUP 3"-100/40 2S DD 
SS              70292-00ww
Tous droits réservés. Reproduction sans autorisation interdite. © Kukulcan