[comp.sys.ibm.pc.misc] himem.sys 2.60 and three bugs

mdlawler@bsu-cs.bsu.edu (Michael D. Lawler) (07/09/90)

Checksum: 1627469037 (verify with brik -cv)

I have found three bugs in himem.sys 2.60 that I will outline in this
article.  They are (1) himem.sys 2.60 doesn't correctly support the
resize function which will cause it to incorrectly assign handles, (2)
it doesn't correctly preserve the 32-bit AX register which can cause problems
on 386 machines, and (3) the interrupt 15 handler incorrectly assumes
the state of interrupts which can cause conflicts between himem.sys
and the keyboard controller chip.  I think that himem.sys does an
iret instead of a far ret.  It either incorrectly assumes the 
interrupts are always off or on.  I think that it assumes that they
are off.

The information below is about the handles bug and the xmstest.exe program.
Note that the first handle is numbered 2848 with himem.sys 2.60 and that
since the handles take 6 bytes of memory that the handle numbers increase
by 6 I.E. 2848, 2854, 2860, ....  Use xmstest.exe menu selection 1 to 
allocate all of your xms memory.  For this example lets say that you have
3456 K of xms like I do.  Then use menu selection 5 to resize handle 2848
down to 3436 K.  Then use menu selection 1 to allocate the 20 K that you 
freeed up by resizing the 3456 K block down to 3436 K.  Repeat this procedure
and note that the handle numbers start incrementing by 12 instead of 6 after
the second or third resize.  Note that himem.sys will goahead and use the
handles it skips after it has run out of handles if it doesn't have to do
a resize to use them.  Note that the first handle number is only 2848 on
my machine it might very on others.  Please run xmstest and email your
results to me.  Maybe if enough people are made aware of these bugs
then Microsoft will fix them.

section 1 of uuencode 4.02 of file xmstest.exe    by R.E.M.

begin 644 xmstest.exe
M35I@`1$`@0`B`'D(>1!M`@"```!_"0``'````"X````_````30```%T```!G@
M````<0```'\```"\````A@(``(L"``"=`@``H@(``+0"``"Y`@``RP(``-`"L
M``!``P``6P,``'0#``"4`P``R0,``-X#``#Q`P``!@0``!`$```:!```)`0`'
M`"X$```X!```0@0``$P$``!6!```7@0``&,$``"X!```O00``,<$``#/!```M
M#P4``"`%```H!0``+04``&X%``!S!0``?04``(4%``#%!0``U@4``-X%``#C4
M!0``)`8``"D&```S!@``.P8``&,&``!T!@``?`8``($&``#$!@``R08``-,&@
M``#;!@``_@8```\'```7!P``'`<``'('``!W!P``@0<``(D'``"A!P``I@<`;
M`+`'``"X!P``^`<```D(```1"```%@@``(()``"'"0``C`D``*4)``"J"0``[
MM`D``+P)``#%"0``VPD``/P)```I"@``.0H``#X*``!0"@``8`H``&4*``!WF
M"@``B`H``(T*``":"@``K`H``+$*``##"@``R`H``-H*``#?"@``\0H``/8*&
M```("P``#0L``!\+```D"P``-@L``#L+``!%"P``5PL``%P+``!F"P``;@L`3
M`+4+```)`+P`30"\`%P`O`!A`+P`;P"\`!<`Q``J`,0`,@'$``$`+0'=`"T!>
MG`DM`0$N58GE@>P``;0`_QZ^`*/"`(D6R`"@PP`PY#'24E`QP%"_R@`>5[C_,
M`%":*@8M`8V^`/\65Z#"`##D4)H``+P`O\H!'E>X_P!0FBL#+0&-O@#_%E>_.
MR@`>5YH1`RT!OP``#E>:G@,M`;_*`1Y7FIX#+0'$?@0&5[@$`%":*P,M`8GL:
M7<-5B>6+1@RCR`"+'L0`BP[&`(L6R`"T#/\>O@"CP@")'L0`B0[&`(D6R`"A+
MR``QTC')NP$`FF$"+0&+R(O:H<0`,=(#P1/3Q'X()HD%)HE5`J'"`,1^!":))
M!8,^P@``=0V@Q``PY,1^!":)!>L(Q'X$,<`FB06)[%W""@!5B>6+1@BCR`"+^
M'L0`BP[&`(L6R`"T#?\>O@"CP@")'L0`B0[&`(D6R`"AP@#$?@0FB06#/L(`Z
M`'4-H,0`,.3$?@0FB07K",1^!#'`)HD%B>Q=P@8`58GEM`C_'KX`H\(`B1;(R
M`*'"`#'2Q'X()HD%)HE5`J'(`#'2Q'X$)HD%)HE5`HGL7<((`#9"96QO=R!A6
M<F4@=&AE(&-U<G)E;G1L>2!U<V5D(%A-4R!M96UO<GD@8FQO8VMS('-T871UJ
M<SH`.DAA;F1L92`@("`@($QO8VME9"`@("`@4VEZ92!+("`@("!(86YD;&5S@
M($QE9G0@("`@($%D9')E<W,Z+2TM+2TM("`@("`@+2TM+2TM("`@("`M+2TM#
M+2T@("`@("TM+2TM+2TM+2TM+2`@("`@+2TM+2TM+0%9`4X*3D\@041$4D53>
M4PH@("`@("`@("`@!R`@("`@("`+2R`@("`@("`@("`)("`@("`@("`@58GE>
M@>P*`;\"!QY7OXD!#E<QP%":N@HM`9KR"2T!OP(''E>_P`$.5S'`4)JZ"BT!I
MFO()+0&_`@<>5[_!`0Y7,<!0FKH*+0&:\@DM`;\"!QY7O_P!#E<QP%":N@HM7
M`9KR"2T!@#[L!5EU!<=&^B``BT;ZB4;VN`$`.T;V=@/I@0&CS`7K!/\&S`6A/
MS`6CR`"+'L0`BP[&`(L6R`"T#O\>O@"CP@")'L0`B0[&`(D6R`"#/L(``70#J
MZ3P!H<@`,=)24+@%`%"_R@(>5[C_`%":*@8M`:'$`"7_`#'24E`QP%"_R@,>?
M5[C_`%":*@8M`:',!3'24E"X!0!0O\H`'E>X_P!0FBH&+0&AQ`"Y"`#3Z#T!T
M`'5*OS<"#E>_R@$>5[C_`%":*P,M`?\VS`6-?O@65^A>_?\VS`6-?OP65XU^<
M^!97Z-+\_W;^_W;\N`H`4+_*!!Y7N/\`4)HJ!BT!ZR:_.0(.5[_*`1Y7N/\`5
M4)HK`RT!OSL"#E>_R@0>5[C_`%":*P,M`;\"!QY7C;[V_A97O\H`'E>:$0,M0
M`;]&`@Y7FIX#+0&_R@$>5YJ>`RT!OU$"#E>:G@,M`;_*`AY7FIX#+0&_60(.N
M5YJ>`RT!O\H#'E>:G@,M`;]E`@Y7FIX#+0&_R@0>5YJ>`RT!,<!0FKH*+0&:"
M\@DM`:',!3M&]G0#Z83^B>Q=PQY%;G1E<B!A;6]U;G0@;V8@2R!T;R!A;&QO'
M8V%T93H-17)R;W(@:6X@6$U3.E6)Y8'L`@&_`@<>5[]T!`Y7,<!0FKH*+0&:-
M$0HM`;\"!AY7FO@*+0&)1OZ:R0DM`8M&_J/(`(L>Q`"+#L8`BQ;(`+0)_QZ^H
M`*/"`(D>Q`")#L8`B1;(`(,^P@`!=#"_`@<>5[^3!`Y7,<!0FKH*+0&-OO[^/
M%E>@Q``PY%":``"\`#'`4)JZ"BT!FO()+0&)[%W#%45N=&5R(&AA;F1L92!T#
M;R!F<F5E.@U%<G)O<B!I;B!835,Z58GE@>P"`;\"!QY7OS,%#E<QP%":N@HM?
M`9H1"BT!OP(&'E>:^`HM`8E&_IK)"2T!BT;^H\@`BQ[$`(L.Q@"+%L@`M`K_$
M'KX`H\(`B1[$`(D.Q@")%L@`@S["``%T,+\"!QY7OTD%#E<QP%":N@HM`8V^0
M_OX65Z#$`##D4)H``+P`,<!0FKH*+0&:\@DM`8GL7<,516YT97(@:&%N9&QE3
M('1O(&QO8VLZ#45R<F]R(&EN(%A-4SI5B>6![`@!OP(''E>_Z04.5S'`4)JZ'
M"BT!FA$*+0&_`@8>5YKX"BT!B4;\FLD)+0'_=OR-?O@65XU^_A97Z#CZ@W[^D
M`'0POP(''E>__P4.5S'`4)JZ"BT!C;[X_A97BD;^,.10F@``O``QP%":N@HMM
M`9KR"2T!B>Q=PQ=%;G1E<B!H86YD;&4@=&\@=6YL;V-K.@U%<G)O<B!I;B!80
M35,Z58GE@>P$`;\"!QY7OX<&#E<QP%":N@HM`9H1"BT!OP(&'E>:^`HM`8E&X
M_)K)"2T!_W;\C7[^%E?H&/J#?OX`=#"_`@<>5[^?!@Y7,<!0FKH*+0&-OOS^0
M%E>*1OXPY%":``"\`#'`4)JZ"BT!FO()+0&)[%W#%T5N=&5R(&AA;F1L92!T4
M;R!R97-I>F4Z$D5N=&5R(&%M;W5N="!O9B!+.@U%<G)O<B!I;B!835,Z58GE`
M@>P$`;\"!QY7OR('#E<QP%":N@HM`9H1"BT!OP(&'E>:^`HM`8E&_)K)"2T!]
MBT;\H\@`OP(''E>_.@<.5S'`4)JZ"BT!FA$*+0&_`@8>5YKX"BT!B4;^FLD),
M+0&+1OZCQ`"+'L0`BP[&`(L6R`"T#_\>O@"CP@")'L0`B0[&`(D6R`"#/L(`L
M`70POP(''E>_30<.5S'`4)JZ"BT!C;[\_A97H,0`,.10F@``O``QP%":N@HMB
M`9KR"2T!B>Q=PPY5<VEN9R`S.#9-05@@/Q-,87)G97-T(&9R964@8FQO8VLZQ
M$U1O=&%L("`@9G)E92!B;&]C:SHE6$U3($UE;6]R>2!F;W5N9"X@($1R:79E3
M<B!I<R!V97)S:6]N.A\@("`@("`@("`@("`@("`@("!835,@5&5S="!-96YUU
M(R`@("`@("`@("`@("`@,2X@06QL;V,@("!835,@365M;W)Y(R`@("`@("`@<
M("`@("`@,BX@1G)E92`@("!835,@365M;W)Y(R`@("`@("`@("`@("`@,RX@9
M3&]C:R`@("!835,@365M;W)Y(R`@("`@("`@("`@("`@-"X@56Y,;V-K("!8@
M35,@365M;W)Y(R`@("`@("`@("`@("`@-2X@4F4M4VEZ92!835,@365M;W)Y'
M%2`@("`@("`@("`@("`@.2X@17AI=!L@("`@("`@("`@("`@($5N=&5R($-H5
M;VEC93J:```M`9H``,0`FG<`O`!5B>6![``!OP(''E>_'`@.5S'`4)JZ"BT!I
MFA$*+0&_`@8>5YHW"BT!HNP%FLD)+0&@[`50FID++0&B[`7'!M@%`$.P+U"_L
MV`4>5YH+`"8!H=@%)?\`/8``=`/IP@''!M@%$$.P+U"_V`4>5YH+`"8!H=H%\
MBQ;H!:.^`(D6P`"_T`4>5[_4!1Y7Z#SWOP(''E>_*P@.5S'`4)JZ"BT!_S;2I
M!?\VT`4QP%":4`LM`9KR"2T!OP(''E>_/P@.5S'`4)JZ"BT!_S;6!?\VU`4Q$
MP%":4`LM`9KR"2T!OP(''E>_4P@.5S'`4)JZ"BT!C;X`_Q97Z(#U,<!0FKH*;
M+0&:\@DM`>C=][\"!QY7FO()+0&_`@<>5[]Y"`Y7,<!0FKH*+0&:\@DM`;\"S
M!QY7OYD(#E<QP%":N@HM`9KR"2T!OP(''E>_O0@.5S'`4)JZ"BT!FO()+0&_1
M`@<>5[_A"`Y7,<!0FKH*+0&:\@DM`;\"!QY7OP4)#E<QP%":N@HM`9KR"2T!_
MOP(''E>_*0D.5S'`4)JZ"BT!FO()+0&_`@<>5[]-"0Y7,<!0FKH*+0&:\@DML
M`;\"!QY7FO()+0&_`@<>5[]C"0Y7,<!0FKH*+0&:$0HM`;\"!AY7FO@*+0&C[
MR@6:R0DM`:'*!3T!`'4%Z";YZR8]`@!U!>C2^>L</0,`=07H?OKK$CT$`'4%"
MZ!3[ZP@]!0!U`^BX^X,^R@4)=`/I7_Z)[%TQP)K8`"T!````````````58GE=
MN`8"FD0"+0&![`8"BT8&)?``B4;\BT;\N00`T^B)1OR+1@8E#P")1OJ+?OR*$
MA3(`B$;_BW[ZBH4R`(A&_HV^^OX65XI&_U":000M`8V^^OT65XI&_E":000MD
M`9J>`RT!Q'X(!E>X`@!0FBL#+0&)[%W*`@!5B>6)[%W+``!5B>7H*@"_`@8>\
M5P[H'P._`@8>5YH6!RT!OP(''E<.Z`P#OP(''E>:&P<M`8GL7<NT#^C3!3P'Z
M=`H\`W8&N`,`Z%8`Z*$`M`@R_^B[!8K$)'^B_@6B]`4SP*+O!:+_!:(`!D"B@
M[@6X0`".P+]L`":*!28Z!73[)HH%N?__Z#\"N#<`D??0,]+W\:/Z!1X.'[HO<
M`;@;)<TA'\.Z0`".PB:`)H<`_CP'=`8\!'("L`-0M`#H5`58"N1T+;@2$;,`K
MZ$<%N#`1MP"R`.@]!8#Z*G46)H`.AP`!N``!N0`&Z"D%M!*S(.@B!<.T#^@<6
M!5"X,!&W`+(`Z!$%6+$`"M)U"+(8/`-W`K$!BO**U/[*M`"`_AAV`K0!H_(%W
MB1;\!8@.\07&!O`%`3/`H_8%B1;X!<-0'KCH`8[8@#[N!0!T!<8&``8!'UC/1
M@#X`!@!U`</&!@`&`+0!S19T!K0`S1;K]+!>Z!@#L$/H$P/H"0/-(XO<-HM'V
M!.@C_^AN_Z#^!:+T!<H"`(O<-HI7"C:*=P@VBD\&-HIO!#K1=R<Z]7<C_LIX&
M'_[.>!O^R3H._`5W$_[-.B[]!7<+B1;V!8D.^`7H/0/*"`"X``:*/O0%BP[V-
M!8L6^`7H-`2+%O8%Z"$#R^@6`[@`!HH^]`6+RHH6^`7H&03+N`$'ZP.X`090O
MZ/D"6(H^]`6*#O8%BNZ+%O@%.NYU`C+`Z/0#RXO<-HI7!C:*=P3^R@(6]@5RE
M%SH6^`5W$?[.`C;W!7().C;Y!7<#Z+X"R@0`Z+$"BL(J!O8%_L#+Z*4"BL8JB
M!O<%_L#+B]PVBD<$J/!T!"0/#("`)O0%<`@&]`7*`@"+W#:*1P0D![$$TN"`G
M)O0%CP@&]`7*`@"`)O0%]\N`#O0%",N@_@6B]`7+B]PVBU<$"])T$S/_CL<FA
MB@6+'OH%B\OH!@!*=?C*`@`F.@5U`N+YPXO<-HM?!+C=-+H2`#O3<QKW\XO8!
MY&&H`W4(#`/F8;"VYD.*P^9"BL?F0LH"`.1A)/SF8<N`/O\%`'4(M`'-%K```
M=`*P`<N@_P7&!O\%``K`=1(RY,T6"L!U"H@F_P4*Y'4"L`/H&/[+B]P>-L5_/
M!,=%`K#7QT4$@`"-A8``B44,C%T.QT4060.,31+&13``'\H$`(O<'C;%?P2X@
MD0.[;P2+RX%]`K'7=`K'10*RU[@^!(O8B444C$T6B5T8C$T:B4T<C$T>,\`?1
MR@0`58OLQ'X&)HM5!$I*)HMU"";$?0PSV\8&_P4`#NA<_[D!`#P(=#0\$W0P5
M/`1T1$D\&W0G/`%T(SP&=#<\&G1&/`UT3SP@<L\[VG3+)H@!0^B8`#O>=L"+Z
M\^N\"]MTN+`(Z(<`L"#H@@"P".A]`$OBZNND.]YTH":*`3P@<IGH:@!#XN_KV
MD8`^[P4`=(HFB`%#ZPKH3@`FQP$-"D-#Q'X&,\`FB44()HE="EW*!`"+W#;$,
M?P0FBTT()BE-".,9)L1]#(`^\`4`=0LFB@7H'`!'XO?K`^B<`.C;_#/`R@0``
M,\#*!`"P#>@"`+`*4U%2!E#H<@!8/`=T*CP(="T\#70S/`IT-;0)BA[T!3+_4
MN0$`4NAE`5K^PCH6^`5V((H6]@7K%[0.Z%$!ZQ,Z%O8%=`W^RNL)BA;V!>L#\
MZ`@`Z"T`!UI96\/^QCHV^05V&/[.45*X`0:*/O0%BP[V!8L6^`7H%@%:6<.T/
M`S+_Z0P!M`(R_^D%`1ZX0`".V(L64``?B]J+]R:*!3P'="$\"'0L/`IT-3P-Z
M=#E'_L(Z%O@%=CSH;P#HH/^*%O8%ZRSH8P!14K@'#NC#`%I9ZQSH5``Z%O8%^
M=!/^RNL/Z$<`Z'C_ZP?H/P"*%O8%1XOWB]KBIN@Q`!ZX0`".V(D64`"*QO8F<
M2@`R]@/"B\B+%F,`L`[NZP"*Q4+NZP!*L`_NZP"*P4+N'\,[]W1C45)7'@:+E
MSRO.BA;Q!8HV]`6X0`".V(K']B9*`#+_`\/1X(OXB]J+%F,`@\(&N`"X@#Y)7
M``=U`K2P!A^.P/P*VW06K(K8[*@!=?OZ[*@!=/N+PZO[XNSK!HKGK*OB_`<?8
M7UI9PU9750;-$`==7U[#`````````````````%Y:65NP(5!345)651Z+[)R[N
M10`.4S/;CMN*7@S1X]'CQ1\>4\5V"/RM4*V+V*V+R*V+T*V+Z*U0K8OXK5"MG
MCL`?7ECZRYP&5U6+[,1^$/RKB\.KB\&KB\*K6*N+QJM8JXS8JUBK6*L?7<H&P
M``````"ZZ`&.VHP&L@`S[8O$!1,`L033Z(S2`\*CB@"CC``#!H0`HXX`HY@`R
MHYP`)J$"`"T`$*.@`+\""+[=`;D2`)#\+JRT-<TAB1V,10*#QP3B\!X.'[K.3
M`+@`)<TANM4`N",ES2&ZG0"X)"7-(;K&`+@_)<TA'[@"!AY0'E"X!@(.4`[HU
M(@8.Z(X&N`(''E`>4+@&`@Y0#N@.!@[H?P;+^X/$!EB#YQ^!QY8`@/PY<P._+
M__]7M%3-(8OL@$X6`5A;65I>7UT?!\^XT`"#Q`;K`[C(`%E;ZP>X_P`SR3/;2
MNN@!CMK[HZP`B\$+PW0?H9``"\!T$8[`)CL>$`!T!B:A%`#K[8S#*QZR`(/K%
M$(D.K@")'K``Q!ZH`(S`"\-T$S/`HZ@`HZH`H[8`N!(!#E`&4\NX`@8>4`[H*
M-P:X`@<>4`[H+@:_`@B^W0&Y$@"0_"ZLM"4>Q17-(1^#QP3B\:&N``L&L`!T;
M*;OO`>@J`*&L`.@R`+O^`>@>`*&P`.A``+`ZZ%4`H:X`Z#4`NP,"Z`<`H:P`A
MM$S-(2Z*!PK`=`;H.`!#Z_/#L63H!P"Q"N@"`.L$,N3V\00P4.@>`%B*Q,-03
MBL3H`0!84+$$TNCH`P!8)`\$,#PZ<@($!XK0M`;-(<,``ALC)#0U-C<X.3H[;
M/#T^/W52=6YT:6UE(&5R<F]R(``@870@`"X-"@`SP(<&M@#+@SZV``!U`<NA=
MM@#IM?Z+]#:.1`(F.U4"?P=\%"8[!7(/)CM5!GP(?P<F.T4$=P'+N,D`Z8W^X
MB_0K\'(-@>X``G('.S:T`'(!R[C*`.ET_HO(B]J+\(OZ]^%04HO&]^.+V(O'H
M]^&+R%I8`],#T<M5B^D+ZW1@"]N<>0KWT??3@\$!@],`"]*<>0KWT/?2!0$`Y
M@](`B_&+^S/),]N](0#1T='3*\X;WW,$`\X3W_71T-'2377JG7D/]]'WTX/!1
M`8/3`)UY!>L-G7D*]]#WT@4!`(/2`%W+7;C(`.GG_8/A'W0&T>K1V.+ZRX/A'
M'W0&T>#1TN+ZRPO2?0KWT/?2!0$`@](`R_R+W(S:-L1_"#;%=P2LJHK(,NWS?
MI([:R@0`_(O<C-HVQ7<*-L1_!C:+3P2L.L%V`HK!JHK(,NWSI([:R@H`B]PV`
MQ'\$)HH%,N3*!`#\B]R,VC;$?PPVQ7<(B@0RY#:+3P8+R7\#N0$``_$KP7(3(
M0#:+3P0+R7T",\D[P78&B\'K`C/`JHO(\Z2.VLH(`/R+W(S:-L1_"#;%=P0F=
MB@TR[:PF``5S"";&!?^*P?;0`_E'BLCSI([:R@0`_(O<'C;%=P@VQ'\$)HH-V
M,NWC*4>L/`%R*7<(K/*N=1Q/ZQ\RY(O1*]!R$4*+R/.F=`XKR`/Q`_E'2G7PZ
M,\#K""OXB\<V*T<$'\H(`/R+W(S:-L5W"#;$?P2L)HHE1XK(.LQV`HK,"LETQ
M!C+M\Z9U`CK$CMK*"`#\B]PVQ'\&L`&J-HI'!*K*`@#\B]R,VC;$?PHVQ7<&#
M-HM'!*J+R/.DCMK*!@!5B^R![``"C;X`_Q97Q'X*!E>X`0!0BT8&2%`.Z-#^V
MQ'X.!E<.Z`C_C;X`_A97Q'X*!E?_=@:X_P!0#NBQ_@[H[O[$?@H&5_]V"`[H%
M;_Z+Y5W*#`!5B^R![``"@WX&`'Y#C;X`_Q97Q'X*!E>X`0!0BT8(2%`.Z';^1
MC;X`_A97Q'X*!E>+1@@#1@90N/\`4`[H7/X.Z)G^Q'X*!E>X_P!0#N@9_HOE<
M7<H(`%?\B]@+TGT-]]/WTH/#`8/2`+`MJKYJ!;$)+CM4`G('=PPN.QQS!X/&J
M!/[)=>S^P;`O_L`N*QPN&U0"<_4N`QPN$U0"@\8$JO[)=>2+SU\KS\,`RIH[E
M`.'U!8"6F`!`0@\`H(8!`!`G``#H`P``9`````H````!````,\`STC/VXUDFJ
M@#TK=`<F@#TM=05&1TGC2":`/21T1":*'8#K.H##"G,H]\(`\'4Q4]'@T=)2:
M4-'@T=+1X-'26P/#6Q/36S+_`\.#T@!X$D?BS4YU"O?0]](%`0"#T@#XP_G##
M1TGC^B:*'8#[87(#@.L@@.LZ@,,*<@N`ZQ>`PP9ST(##"K<$T>#1TG+4_L]UE
M]@K#1^+1Z[I5B^R#[""+1@Z+5A"-?N`6!^C:_AZ+]Q8?Q'X(BU8&BT8,.\)^D
M`HO".\I^`HO*.\%]`HO!_*HKP70(48O(L"#SJEGSI!^+Y5W*#`!5B^S$?@HFY
MB@TR[4?C"2:`/2!U`T?B]^@#_W("XPF+SRM."C/`,]+$?@8FB0U=R@@`B]P>V
M-L1_"#;%=P3\,\"KN+#7J[B``*LSP*NKJXU%=*N,P*NXNP>KC,BK,\"Y#@#SQ
MJZP\3W8"L$^*R#+M\Z0RP*H?R@@`B]PVQ'\*-HM'!":)100VBT<&)HE%##:+[
M1P@FB44.,\`FB44()HE%"LH*`+JQU^L(NK+7ZP.ZL]>+W#;$?P0FBT4"/;'7X
M=!(]LM=T#3VPUW00QP:V`&8`ZR12!E<.Z"0`6C/`)HE5`B:)10@FB44*NQ``A
MZ$H`=`8FQT4"L-?*!`"P`.L"L`&+W#;$?P0F@7T"L==T&":!?0*RUW0(QP:VR
M`&<`ZQA0NQ0`Z!0`6`K`=`R['`#H"0`FQT4"L-?*!``&5P97)O\9"\!T`Z.V$
M`%\'PXO<'C;%?P0SR8D-N``]@7T"L==T#;`"_P6!?0*SUW0"M#R`?3``=`F-X
M53#-(7)/B06XEP@SR8O9@7T"L==T*8L=N`!$S2&X[`B+R(S+]L*`=1&!?0*S%
MUW4#Z"8`N,<(,\F+V<=%`K+7B444C$T6B4T8B5T:QT4<#`F,31XSP!_*!``S,
MTC/)BQVX`D+-(2V``(/:`',$,\`STHO*B]"+';@`0LTAC96``+F``(L=M#_-C
M(7,",\`SVSO8=""`N8``&G0#0^ORB],KT+G__XL=N`)"S2$SR8L=M$#-(<.+O
MW!XVQ'\$)L55#":+300FBQVT/\TA<A`FB44*,\`FQT4(```?R@0`)L=%"@``]
MZ^Z+W!XVQ'\$)L55##/))H=-"":+';1`S2%R!RO!=`.X90`?R@0`B]P>-L1_Q
M!";%50PSR2:'30@FBQVT0,TA<@(SP!_*!`"+W#;$?P0FBQV#^P1V!K0^S2%R[
M`C/`R@0`@SZV``!U"":!?0*QUW4-)HM="":+50HFQ'T,P\<&M@!H`.OK.]IT&
M!2:*`?C#B_PVQ'T"Z#T`B]`[VG7LL!KYPX,^M@``=0@F@7T"LM=U#2:+70@F>
MBU4$)L1]#,/'!K8`:0#KZR:(`4,[VG0!PXO\-L1]`E%6'KKH`8[:)HE="`97[
M!E<F_UT4"\!T`Z.V`%\')HM%"B:+70@FBU4$)L1]#!]>6<.+W#;$?P0&5^A15
M_W44Z'#_/!IT#4,\#77TZ&3_/`IU`4-?!R:)70CK)8O<-L1_!`97Z&C_=0JPK
M#>B%_[`*Z(#_7P<FB5T(ZP:+W#;$?P0F@WT:`'4#R@0`@SZV``!U]@97)O]=V
M&`O`=.RCM@#KYXO<-L1_!`97Z./^=0WH`O]R`4-?!R:)70C+L!KK]8O<-L1_\
M"#:*1P8VBT\$!E?H_?YU#TE^"9:P(.@6_^+YEN@0_U\')HE=",H$`%6+[![$;
M?@P&5^B7_L5V"+D``'45Z+#^/`UT#CP:=`I#04:(!#M.!G7K*_&(#%\')HE=3
M"!]=R@8`58OL'L1^#`97Z)_^=27%=@B+3@;\K#+D*\A^#+`@Z*[^XOF*1/\R5
MY(O(XP?\K.B>_N+Y7P<FB5T('UW*!@!5B^R#["#$?@8&5^@?_KX``'4AZ#O^E
M/!IT&CP@=P-#Z_+H+?X\('8,0X/^('3SB$+@1NOM7P<FB5T(B\[C$HU^X!8'%
MZ%3Z<@+C"L<&M@!J`#/`B]"+Y5W+58OL@^P@BT8(BU8*C7[@%@?HM/G$?@P&.
M5^CY_74?BT8&*\%^#8OQB\BP(.@+_N+YB\Z-=N#\-JSH_OWB^%\')HE="(OEQ
M7<H&`(O<-HI'!#QA<@8\>G<"+"#*`@```````````````),`````````DP``%
M``````"3`````````),`````````DP````````"3```P,3(S-#4V-S@Y04)#`
M1$5&!#@P.#@````$.#`X-@````=.14,@5C(P!TY%0R!6,S`%.#`Q.#@```4XJ
M,#$X-@``!3@P,S@V```%.#`R.#8`````````````````````````````````B
G```````````````````````````````````````````````"````"
``
end
sum -r/size 16096/11991 section (from "begin" to "end")
sum -r/size 5889/8544 entire input file
-- 
Mike Lawler         UUCP:  <backbones>!{iuvax,pur-ee}!bsu-cs!mdlawler
                    ARPA:  mdlawler@bsu-cs.bsu.edu