[unix-pc.sources] Kernel Debugger Loadable Device Driver for the UNIX pc

lenny@icus.islp.ny.us (Lenny Tropiano) (08/07/89)

A long time ago I posted this ... I'm reposting it because it's been
requested by quite a few people.  I also patched it with a Mike Ditto
patch to make it startup without typing "GO" and two small scripts
to turn on and off the debugger interrupts.  Unshar this, read the 
README file, and use the Install script to install it ...

-- cut here -- -- cut here -- -- cut here -- -- cut here -- -- cut here --
#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  README Install Remove db.o.Z.uue enabledb disabledb
# Wrapped by lenny@icus on Sun Aug  6 22:10:16 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f README -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"README\"
else
echo shar: Extracting \"README\" \(4572 characters\)
sed "s/^X//" >README <<'END_OF_README'
XSeveral people have asked me to repost the Kernel Debugger loadable
Xdevice driver, so here it is...  For the sake of transporting it
Xin netnews, it's uuencoded and compressed (to save some space).
X
XThere are two quicky and dirty scripts to Install and Remove (their
Xnames respectively) the debugger.  Once the debugger is loaded, which
Xwill be done automatically on bootup (see /etc/lddrv/drivers) hereafter,
Xit can be enabled by keyboard input with the Ctrl-B key.  The Ctrl-B
Xinterrupt is off by default, to prevent accidental startup.  Two
Xsmall scripts have been placed in /etc, /etc/enabledb (to enable Ctrl-B
Xinterrupts) and /etc/disabledb (to disable Ctrl-B interrupts).
X
X$ su
XPassword:
X# ./Install 		(to install)
X# ./Remove 		(to remove)
X# /etc/enabledb 	(to enable ctrl-B interrupts)
X# /etc/disabledb 	(to disable ctrl-B interrupts)
X
XThanks go to Mike Ditto for the script to enable the debugger, I just
Xmodified it and added the disable option.  Also thanks go to him for
Xthe patch to the db.o file so that systems will boot automatically and
Xnot stop at the brk (breakpoint) at the dbinit() routine.  He just
Xnop'd the brk instruction, and the system just continues on.  
X
XI take *NO* responsibility for the device driver, it's effect on your
Xsystem, or anything that it does.  Be forewarned that since this is
Xa kernel debugger, and can access kernel memory it can be hazardous
Xto your machine.  In other words, be careful!
X
XHere are some excerpts from a Memorandum on the Kernel Debugger from
XL.A. Weber at AT&T (September 21, 1987).  The section on installation
Xhas be left out, I changed that with the scripts included in this
Xshar file.
X
X1. Introduction:
X
XThis memo contains information on the kernel debugger for the UNIX PC.
XThis product, though unsupported and never released, was used by internal
Xsystem level programmers in product development.
X
X2. Installation
X
X[section omitted, see above]
X
X3. Commands
X
XThe command interpreter is very primitive that is to say non-existent.
XAll commands are two characters with the exception of the command "off".
XMost commands will accept an argument which is usually an address of
Xinterest.  On a command which requires an argument, if none is given a
Xdefault is sometimes used (br is an exception).
X
XThe command most required is he (help).  This command prints most of the
Xcommand mnemonics:
X
XBR, BC, BT, DB, DF, DI, DM, DR, DW, GO, HE, KD, KL, KP, MB,
XMM, MR, MW, RS, SH, WM,  WW, WB, TR
X
XThe following is a brief description of the function of each of the
Xcommands.
X
X[Lenny: very brief I must say!]
X
Xo  br [addr] - Break Point Set.  With the addr argument a break point is set
X   at the specified address.  Without the addr argument, the list of current
X   breaks is displayed.
X
Xo  bc [addr] - Break Point Clear.  The break point at the indicated address
X   is cleared.
X
Xo  bt - Back Trace.  The last few frames of the kernel stack are displayed.
X
Xo  db/df/di/dm/dr/dw - Display b-bytes(8-bits), f-registers, i-instruction,
X   m-longwords(32-bit), r-registers, w-words(16-bit).  Display requested
X   address (if applicable) in requested format.  Pressing return will
X   display the next logical value.  Pressing enter, then return, returns
X   you to the debugger prompt level.
X
Xo  go - restarts the system.  
X
Xo  he - Displays most of the command mnemonics.
X
Xo  kd - toggles the Ctrl-B interrupt. 
X
X[Lenny: scripts /etc/enabledb, /etc/disabledb will do this too]
X
Xo  kl - Don't know if it ever did anything, but it is not a currently
X   recognized command.
X
Xo  kp - Toggles the printing of kernel printf to the screen 
X
X[Lenny: I noticed some routines in /unix will write to /dev/console (when
X this is turned on, specifically I saw this come up several times:
X
X *** TRAP: out1: signal pending: u.u_ar0 = 0x#####]
X
Xo  mb/mm/mr/mw - Modify b-bytes, m-longwords, r-registers, w-words. Same
X   as display.  Be very careful!
X
Xo  wm/ww/wb - Write m-longwords, w-words, b-bytes.  Same as modify, just
X   can't do registers.
X
Xo  rs - Displays the screen as it appeared at the point the debugger was
X   entered.  Pressing any key will return you to the debugger.
X
Xo  sh - allowed only at the start of auto boot.
X
X[Lenny:  I'm unsure what this does, haven't tried it yet...]
X
Xo  tr - Trace.  Provides trace.  Does not work without the debug PROM.
X   Don't know if it will work with them.
X
X[Lenny:  If I ever do get a copy, I'll find out ... We're finding out the
X legalities of copying them for me...]
X
Xo  on/off - ON OFF.  Enables/Disables the print of register contents at 
X   the break point or a Ctrl-B interrupt.
X
END_OF_README
if test 4572 -ne `wc -c <README`; then
    echo shar: \"README\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f Install -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Install\"
else
echo shar: Extracting \"Install\" \(983 characters\)
sed "s/^X//" >Install <<'END_OF_Install'
X# Quick and dirty installation script to install and load the kernel debugger
X# By Lenny Tropiano -- ICUS Software Systems  (lenny@icus.islp.ny.us)
X# August 6, 1989
X
X/bin/echo "Installing & Loading Kernel Debugger...\c"
X
Xif [ "`/usr/bin/id`" != "uid=0(root) gid=0(root)" ]
Xthen
X	/bin/echo
X	/bin/echo "You have to be root to install, installation aborted."
X	exit 1
Xfi
X	
X/usr/lbin/uudecode db.o.Z.uue
X/bin/rm -f db.o
X/usr/bin/compress -d db.o.Z
X
Xif [ "`sum db.o`" != "21825 29 db.o" ]
Xthen
X	/bin/echo
X	/bin/echo "Checksum does not match, installation aborted."
X	exit 1
Xfi
X
X/bin/cp db.o /etc/lddrv
X/bin/chmod 755 /etc/lddrv/db.o
X/bin/chown root /etc/lddrv/db.o
X/bin/chgrp sys /etc/lddrv/db.o
Xcd /etc/lddrv
X/etc/masterupd -a init release db
X/etc/lddrv/lddrv -a db
X/bin/echo db >> /etc/lddrv/drivers
X/bin/cp enabledb disabledb /etc
X/bin/chmod 750 /etc/enabledb /etc/disabledb
X/bin/chown root /etc/enabledb /etc/disabledb
X/bin/chgrp sys /etc/enabledb /etc/disabledb
X
X/bin/echo "Complete."
END_OF_Install
if test 983 -ne `wc -c <Install`; then
    echo shar: \"Install\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f Remove -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Remove\"
else
echo shar: Extracting \"Remove\" \(652 characters\)
sed "s/^X//" >Remove <<'END_OF_Remove'
X# Quick and dirty removal script to remove and unbind the kernel debugger
X# By Lenny Tropiano -- ICUS Software Systems  (lenny@icus.islp.ny.us)
X# August 6, 1989
X
X/bin/echo "Removing and Unbinding Kernel Debugger ...\c"
X
Xif [ "`/usr/bin/id`" != "uid=0(root) gid=0(root)" ]
Xthen
X	/bin/echo
X	/bin/echo "You have to be root to install, installation aborted."
X	exit 1
Xfi
X	
Xcd /etc/lddrv
X/etc/lddrv/lddrv -dv db
X/etc/masterupd -d db
X/usr/bin/egrep -v "^db$" /etc/lddrv/drivers > /tmp/drivers
X/bin/cp /tmp/drivers /etc/lddrv/drivers
X/bin/rm -f /tmp/drivers /etc/enabledb /etc/disabledb /etc/lddrv/db.o /etc/lddrv/db /etc/lddrv/ifile.db
X
X/bin/echo "Complete."
END_OF_Remove
if test 652 -ne `wc -c <Remove`; then
    echo shar: \"Remove\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f db.o.Z.uue -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"db.o.Z.uue\"
else
echo shar: Extracting \"db.o.Z.uue\" \(21625 characters\)
sed "s/^X//" >db.o.Z.uue <<'END_OF_db.o.Z.uue'
Xbegin 777 db.o.Z
XM'YV0 :0 & "BES(%  !@89 P !T ' 0 "+ @84(4M!(ZP&*Q8T($%A,D=$&G
XM#)Z'%D%^[(@Q(0&+/CA:#+#-(P@79,+0"=-19$*?&F7"L C%G,=;'H&X$#-G
XMCL<$&P% E>FQJE6+@*YJW<JUJ]>O8,.*'4NVK-FS:-.J7<NVK=NW<./*G4NW
XMKMV[>//J10L' 0@^4@$0$()%"";"4P I 60&P#][(_)9Q"4U@('(%DE45N D
XM%P"0C%SP2/CAGY,X$_A-[.BDCI(\@0F<2<C9,T@^K3$GL#Q9=P"$"4FD7FUQ
XMA&JKK9U8^<=O. 2+G9QXR:T:I*O>U0&(RMP: )\# )"<^_>/R3?RWL$+.?7C
XMC6   EZ\ &! /'D53SI_7@!)/P(4("B10V40- 8 !L,%0. +HR70@"'^B0 ,
XM%H_XMP U K22T!__ $"$?P$XX80N_T!H&X#^*<"/>>2]< 4 "K1'WV=05#@'
XM%5($,401(. 8!!0-* "<10J$40<=;_@ PA%/(%3DD4F"L 01""GW#S!(N$/>
XME4Y0\0\L0B@VH$6S 2"!$IY99" "_J% R6N?!6!#F23,<%R<-C 8YQ 13OA(
XM@AV! 9\:<"(0  UE<F!G2H?J:2@.?5(HJ "VS*=G @R(:)N$-<(!!0CYV>:7
XM$H.X-X 0)B!AP088;# 0 ""\!P(# P! 1ID2T K '64JH&L;C1W*P$MR& B#
XMKF08F*EM%PKZCPWK_;JF"[S,Y-\!!$CJF ;# @!L0CPLJF ""D@1;:UW&"@!
XMM5O^0P)@"!A@P:3@2/L1M3.]^YF\DR+3;1H&6H!L8P)XLIZ^"#3 PZ2L="N&
XM@40,K-'!\#; S:20Z)IN0A2LQ^Z6"#. Q:1VV"L %11_)O*D8G1KAH$42"P 
XMI,Q2(Z@_"[VTL0 FG+NKNA^3AW !>$QJ@KV?X=O0T$7#YX"N#R=D1+?%3GP*
XMP@G@(F@ \G0[AH$.I(R  HIL[4VW= 3+BYX)D?%""P#0_-D(Z C:CS2ZH@%S
XMMV4$B\FE#&BQM2^ZSF$@#=WJ/9$?:'94)@;&706H18("  W@T&Q-B*YI)R0P
XML<$2 8"& &3E8>6JZ+J&@6ITF^Q%"@RHH$4"=J3LI0UHL#4/N .PM0S=PF&@
XM/E*DF1 #QDMD41N>1VX5[C)L'5^##5A1.3ZZGF&@#]V^8: -DR<DKE2<O;# 
XM>D(0XA\"N)1!6QH)&;#"BT#4R(26Y $C76NZ>I^0"BX#VZ)^H@ H"(H?DNB6
XM&P2HFG$5\(!^T%75 , $JBG+/PQ P ')T"W#)40&@"(7$]H$ O\D !(A5, (
XM3P2" ^:I00Q8V =UU8+9^ ,7 R2?% #'@LIAP'SK61\NG"");]R) 8+:!S\B
XM]8@DPN,T)<""#J(8*P"X+R#P"P 6K,2.+"F  _]@APG<PP$4S(<$7?H2"!8@
XM ---)%A04 (AU. Y\^&.'GVJD1/T 2L83*"-"6D1 .Q(/7WTR8@688"G@L".
XM+ZTO0*5*"#]>@( @BJI]GH,? )0AQS*A @07L $@:N0L2]2("HMPEB/<!P!:
XM:%(77/0B&,5(1C," (U>@L4: =D0 \E"CG0$@ 4(*94&X'%3P- C'W\X 6(B
XMH !P..01%]E(6#R25.X!@!DH:<G/L(^5%- D#3J9$ F8X!*D= PH:H2%5#H&
XM$S6ZE ,$P$0G<.%^7PSC_NJ0SG_ 0YZZ^X@\55#/.@!.AI\9*!.=!<LX6 D=
XM67( #OZ!#A(TP01*2".8!I$^!A B)6Q(" <@,)H/V28!9(   0R0$!B8D R5
XMXX)'+0*!D$*$I  (PDM5RE( H."EE</!3!,2 9MJ *=0V.EH^'12F'H.IU-0
XM*@"D\-(7-+-!#K!!'A_!R"]YZIJ1# \W3R%$<&H2!4JX#@+*I(-S3H$065A$
XMC:1 B'8.U4S,^X<,,)H^9ZE C_=TAT0INL]XPA"A!7R$/'G0)R5\PEG6L!(_
XMLB08YFC&!  0 1),F+$-E0D(#/E,F>2& )1* !A3$$1H&P SG-;F,Z:MEN\^
XMH@1!-.8?PK"$(.Y7V25.IPX,$ 11RH0"G+*IJ3@M(7)'<US8DD$*@IA"(IQE
XM"#@< *B.T8.5\)$E 1#@'_@0@7LZ!@@A"$((@9! !AB@(!#,YC'L!4 #RL2#
XM^,* >0!P07QSD,V6*2@(^/5 ?(V032H(0$'?B"^ :3/@; (!#@*H' 5>  0 
XM0*"V:X)# "HW&$#<S[O@E0X#W"B -0%@-/1T#2#*Q-+1A*@.7@@  11T P$$
XMPB(/2 <@H!$(.FS8,6BP$CRR-( !^',^X0. ?BPBA#$EA$+W*[(_]YED\?QA
XMB<:CX#=^X(\F=V0Q[P5'<NIP&E9:0I.@V&Z66 I>?8F$ #?Y#"_?F!!.,$ @
XM"+"I(JB@""5HXK;ZR((B1."&SY @&32(A!1@\V8W"^8% J"!!I @#$A?:@&>
XMV*H2A% FC$JB3!IX@0;X?&EE;'4*0G"6-[A0-L=@@P0?N!^;\;%/-;MCULX2
XMQ:6A4=!+:TV@#5H KY&IK7_X@I5@T"07K$2/+!&  ?^@AZ,)0 (7?,8&&E#"
XM$!Y'"TV4205\5H(J_J&/][)C"D-PECDN30XFWN_9T=ZGH(6@"2%H80J,%HRS
XMT+'K@OXE-C# @'F%X)G= $ )0"@3#)0 "3J)  LPB,84@#"+=@  "& C00)&
XMD(S*S/8?W) !+T3D+&IP 1'.<@:&7=*:&5C<")5Y">E,1X3((6 !9.!.'020
XM!]/M1C8?<8)DK". *W#H!0D0 :,5)'(1B> +_@$ (YPPAW^_.> B@!L0JA (
XMA"N<X0['@@PPD1A9).*VZLBZAVR<D*S<EALK2,+%2W[RE"?'"@F!$[F@P.(1
XMW?)M%\<=(/HT HM7V"?^<8 X:HUW , ! H '0N$O'IB<&OX%($C,8FZ+#P@[
XM 0V4!#P/#' )F@;A\AC0/&,<@X]+*_<S$JIU'%C)"DW*(I;NR"<M(6)+7'X)
XMF'5<P!VWND=80>"/;OR'I81?2&DFDIJ.%!4D^SO6LB8$ IJ$ 2@M,,HF.H83
XM<W7G/RAA6*G,LYZ!U7UAO7]DK 8TH5@E*+$K9-##5@X!"IT_0UG)!TWBX:%9
XM(F"$E4MQA@!S%@ &H@0CX Z?47DO," ^ 3@6T">))PXUTE6P\%72ATT)(53/
XM,5^.X0SV=#\"B [[=&F&I'^.00XHV&N'M5".(0RL9 B:) A6@B7X<R4D4&AL
XMDDMT 'D*,'S(5",8Q1, H >IM7*/\8,0D"L) 0+XY2L;@E\&@%,N\%)2H A)
XM:%N.P0T8J('>-'T)<30?^%YI%EA;HC^_E7^PYR>M<5 P^ _48'4,H $2L $0
XM$  "4&'P@ Y   %#H61-=6  \ " ^!Q2]7JE10;)X5#+P5T,^%W\X )J=2D'
XM<(7$]@2\)8F,YT]9,BS1!F$N,'BZ  "$H!EF@ #XD@ ', -@( 1N%@!:0P%P
XM   P<%J"( < ( ,J !^P$ AG@ !%H X P !*( 5F@ ['> 88X *JD% "  )T
XM1 !.  E8H(GN (IX]%LN4' !0 %] @8F^(B4)8G5IC+"!0 <\@82  +>E16S
XMLXG,L4_N" ;RP&R4!6WX<(X(8 >^0P'AL @@D&^.9V$08 B 4#R5YXY)R!CD
XM  (#P%OZV(G-QH#Z6(!R< "_* 83H0S0  0PL ,PX@3[0!]*D!W/P0%QXR$ 
XM  4 P 4 8 @ X V46(R6N# *4),,8(E"$"G86(PAQHW7L9,-<@!(  ;BH).6
XM:$#6H)1%F05@H PZ"6'S,2+_P /76)4D@@!9.4A%*09Y] 3.H@JB2(K_8 &:
XMX8[*<Y;A,0A(, P&"  +< 8$  =L  8"  =W,(KN* <,( Z@D)' $ CS$9</
XM0)=P$ 9X"0=N,TC6MI,#8(ELT"=/\ X 0 '.(@5QQ@!R0  ;F1 >"9(BR1DE
XM:0 G"0 % ", X &V>'  X EE.2+^H FC:(F X"P2  <$,(JR:0B\J0O]8 S.
XM@@"QJ0O^0 >_V66U692%<#/F4)S^H 5I*0!K:0%M^99Q.9=U>9=YN9> T)=_
XM&9@',)B%*1&'69>*F9>-^0*1692.0)F6"0$WHPFZ"0O7 0%GD)<"\)O]X _+
XM*14'$ HW8P>K> "E  8&4*"I$(X X ]F(%E3.9Z5""O6A@#F  B"29A*!IST
XM  7Y\5N258#L  @M4&'$.0#!H%9I]1EF8  :MD\:9I\L6I<1!@\0)J,(8 9U
XM20!@0 YP\ ]@(&;D&(F65:$:1@N,H4AB((^^U1H0AJ0ZJI=@P ZZ":7;B91P
XM\ -@X VVUEL@4&@,  $0@ 2 @ 3 \)^LV H^^:7%&*8 $#4 8 4:IADN( C6
XM!0P36H 7FJ%:V0\LX*%PP *\>2*H4*<8F0" R:<4^ADC2IX;V@\"X*%,2H]@
XMZJ;IXJ(1IDZZZ2R:@(_N0 #?A0\%N(>.8:::X68'8 MP\ =(^@8N*0A;DE^*
XM4(#@@*$/,)CE@ @B !B[\4,Q !*6N MA.9"5%P3P@ +YA0B6. P^^6ZAND\8
XM)@NHF@O%R0\B\)O[  ]5  B:X2R8L%UZBJ'C&0AR$ "_:"!L0*NVBJNZRJM:
XMY *Q *Q%B0P^>:=JA:8'\ SUNI^DN ^\@*V*L*TERAS$ZA/1<*;*6I21E8GT
XM6*&U*@>W&@BYNJN5@07P*J\ N@WU&@"C:*\)M:@6*JZ..B+[X @>"@9#M!S\
XM(*(8.@#L2K&[4:CQZI4 &@X^J8I$<@8D<*B B:_FX),UR2; ^5._59SZ0 _X
XMV@[U*JB#1ZA@P&O+,60,"$;TP+(9FI85*@>(*IZ#B5FU=08N2@!6JF%@@ %'
XMNF**- !("K9P4 !C&V%Y20#(Z@+J YP04)N/:8GQ$)95"@AM( -P8 !(Z@:"
XM.@B6F ] 2P@>BW\@NZ?CJI7Z8 =@@ -TN[CS$:Z*.B+ZH 4>Z@*#\*2 X 9U
XM"5-Y&0:6TB @$9:\1;6=*+40$6U6.ZY8^QE:FZCCZK6"P+9BRQAUN6%F&P!K
XMF[9KZZ)NR[L0MIARFU]U.XEX:Y.HVUP(P"E/T+=MP .!.[@V4+D2^K&8^[@;
XMF@^DT+F&B[H0T*Q3&V_<^+D",+BCNYBF2[,)@  7$);:BZ?<6Z&..[*ZD ]0
XM<+*P%+7.!FU56Z&DBB7 ,&(6 0QFH"19N[5RX+(2VZZ5@0DD$ <@H9-(L$.H
XM^P'TJU::JP[O)L -^QE["L$3ZZX4;,'YY<&ZH _H@*T>T+P,D,&7\A_P68P\
XMR[6!D)8!8+\(@%D%J Z H!( < 86X+F6AKHR$);.0@A?"V=PVQ=HB@ ^ +3C
XM*Q65Y)/.8@5"%L#1MH/%&+2:ZP2:P09'[(W@B$PAC+Y.NKOY69SW@ V85:>:
XMJP6C2,.HFP3T>\7Q&P5+.ZB?@0*HD*4^+ <\<*Z "[R,X1>\RI5@0(OKN\A6
XMAP!<@*"3# 8ND+!87 7AF)."\ (5.B+Y4%=B"61=_*D"#,8,(,;[ZPAE?,:5
XMD<9MN,;;V,9KJY^_>0\8,,<VN+^T6:8:C,5CP+<_4,B'' AFD,A0RLA8[ :/
XM#+JI.,ER8,F-3*":'+]KT,EU"LJ?,2+XX W7&*B _!^%RL<(D =:;,I#^A*6
XM!::+>\=4E8GOYAA-2F;+T44,R /^Q,KX@ J:L;A W,"V.YC(BK,OH0#!2,>Z
XM@ ^^L)@@\!QD:J8R7,-],*R5^AQ]PP0X"QYSN<J&2P UW)P2@+.U,I<<@,0@
XMC;J1H+KY/&7I^P(IC<71,81B*0ZC:CKP4(RF PO:M,J$P)XUG I@P LD+9=G
XMX-- C;J[  :%^M/MB<7-X"R<@'LGML\L? ^\\,_;^\,@6[LZ7-#6=M )W<OW
XM( T.#=%E>J: P,U$B<79,*P$C-,ZG1 \;08>#=,U' Y@,-+65M)G<-(?7</S
XMP-)5_40O'=,)D  %@)22]<YKW2 )$ '[^IOTH N4C0AHF@ >X).=.(G5DM@B
XMT"=P<*OW^MA2D0 IP-D@NL[TK,HNH B7D@ M +0L; ]X,,_SN-K1]HFLY]JP
XM#=E+G(DX*Q$(C0,XJR (_<.\F@ W@* FL-P[P,KVH (NL BQ_0/FRQ!!V1K'
XM#2/!^-RGG6X& -Z)?035'=M+0-O=K OU( Y@8 RG_+K25J%XD%^?G0"ATH;^
XM" 8^$)=%/$Z$<-3BW+2!C IX25=W.@@=BP"V  ALT+ZE>[JG'<]MZ*'B( A2
XM\+D0T.!M\*_W?05]LKIL;,]A1%GZ# _^B *C43J.QZ\C,@\DT(MP@ .%# +G
XMR@)T\ !@P  @0 # 4 CD  H(*0Z$4 6"4%MN  \^MN,]_N/E@ I#3@A48*<0
XM@*1MX XJ, ",Z<.(R9UZF=E9<+/61MQG<*TL3 \^RK1M4JB%()OVP%LGOD\N
XMT.;&^9QJ3JBL3 ^R  ;<8&OLS ^^'=N,F(EY/JL"K<.CR  2  !L8 8<D)@2
XMGMAIP-)_#J,PM7C+49&@VF9@FN=FH!EO0-V]3 ^8 ,^Q[5 TG><<X*S;70?=
XM&,OA.(Z>B,I?W.EG3@&SBP!>G:&8908"8 <(4%MO0 0*30\R8.J0C<ZISL<)
XM$ A_3.#DS,KSP FT+.=H'.M=*HFC6F'_8*J.QZJ \ 8L!:OHL8H)T.;(M,V0
XMW0AK>N@9FMDK+<]$6L]^WMJ=_MNG_:V9R #7H62ZN%:^TN].\! Y:K8NK@OP
XMX N9/=7R7NFZ30Z?J,\5=>^Q/0J338KPX >]^$R%2)=XD)YX0 8@4 ![6(MF
XMZI> F98D#P0/T.W T.O,G-@&3@,:UN#1O-RL  9',P@K<?.G#0M@(# \'R<^
XMG]BT0,VGC0NI@K,),9<4<-X"H%(1#0R1G@"\L-=U*O5I/1](, 6Q#=_(5)G%
XM>#\Q1%BZ#5&?JL_LH,K;7CK>GL.\[GA X,/("@(]K%:]^-JQ/6QM>(V=I$AL
XMD-G5  8*\.6FG=C8X)-?VXR%0)4;^@Y>T)5)?=K;\,P'_PY(4)N160"QS0XW
XMS #OIO:=B,^%S:9A.J9IG=G]</$CX@[\4- O<9YVD)YV(/($4/+A 0PH#PII
XM>?M  !)FVHMGX -9/P!3'^D* +W2:[40W+%;?;GX*[(:VOIFS0/,/YC.[\/0
XM3\+2KY7NP J=*P@08/Q;#[\*4+XTS>\)X03_;@8&_YON8 1HJ@ 88+Z%W8D0
XMGXT2SX^J3-X*  )V0 '4-PPC 81 ;@H 9$_B[1,LL 2FP"   1, %@@"-V /
XM2 4ST@.^0P!(@4) "28!&] 'U& 3.,"15P$  0Z8*H2@1_4X,, ,K 0A<#9J
XMCQ_YHR*@)1 !"A@ U*T8K2@*< 8NC"!@ SQ. ! !;L7H!  )& !20,LI !E5
XM(,:4&_@'RHJ>D @TX*&05=E22PGA 5  8.".T $@:",M3V@<'-N"#N# $KQ/
XM9T !!($:* (4@"2P@0%@,T$"0B !C%\@0 +! !($@EY$^.  #!AG@FSD38%"
XML!C<@#M0 @, ,;4 ,. !.@D)>"MK$ IJ !B !,)#(4 "Q< ,Z@*_)0"\0..#
XM ="@$ !" X<-0I\^T6V:+E2!,01PCI"( X  DR;U03M!I@0D0#!B2$>.,9@#
XM7+@8WH BN0FST,"Q U9':QY>EN  8&3B?88C8)'02N6 !G" "T I$T !.  2
XM$ 24!@[( 2M%!QK 7H,#;H ;*@ P0)SH )02 '0@ =2I5P0'2@"4L@=VX!_<
XMP&IX#2F-.YIZ#*#"8($S0 0*C4+P.B@@'P* $G &8D:%(0(&PDYQ+$!@!N?#
XMCP(#*J =CL+*@04D8C"\'\C0[+4&(7 )'H]#9%PO8 /()AD@]I ("Q"(8\"(
XM"<0YH!(K#!XP RJ (WI$Q\.CFM(F<!:L (F)1.,D#:X1/<2&PL =O1=5X"Q(
XM@$5<<\ZBBJDLC!2>H $@H%@5QA;]JMRWAP2%F>I$V("R\($PXH\TS, B!T'K
XM4B@ *J#>VAJYT"Z9:#--@:$$9BR +5 K;@ ",#VYE(H8 ,_[ >3F#:@0!K05
XM/9]06F__@ Z &750@+P (/A-_X ,@!EM8 *,U&YBB/%AD R $3$ .-<3*%&?
XM 0M\KL?H^-@3920"'DHSS,4%<%M,@0H0 %L1B34(!3 (;I;R.&HM@%<I $1 
XM4;:&&7!'7> PDB)_H _ C">33?!@\S" V$@^%$%MG A"@#B2"T9 4<J2AKE<
XM B W:B4!( T\% (31&;  ^BFCA4 H&,66&L;BE)X*!8 *Z+C;4H(>L Y=L?R
XM^!VG(SQY LAJJ(R([*@>H>.VFHYZP$.)  ' =:0!(& !&P8"]#A><B6N8S5J
XM4>[H.^J\^E@>[V-X- (>BD >,--Q(/T"?P0$?! !*$<%X B:([]ZCH-$"@H 
XM#% %8<7M,QWQ8$(F!"C &"Q C]MUXVI@<8/-8P3ZPN0:D"B2'US':, /HA2/
XM:D<G,B'$ QUI.J!!C]0 #-(=40'P.")DD8>2D6!@,+@"D ,'7-:4Y 9I\": 
XM''*0D&Z3 ="2W(!+RD@I<"7GG%CL#X1N2O*;U3@)ZM4_X 6+;!4I@$L !IZ&
XM3%(3=^NS*8!0P*   "]@ '<R(:0B.;D*P( Y )2V0Q7IR5H !JP!HE03BI)\
XM_(+W]B@%9:0D%\D #-B"2JE-+J4"F 9@P!1P2C.0D_1D-R@EH[)4DH]ST,12
XMI9R,!\["+P5*;:(JR<4^<!8[;E:2RE6T !:;8W "+L 07)H'4*]0P"A,*R"G
XMS&G&[0@9+<5D+$5JH',=O@4P 3;6P ('.F]9<L;(Z!E+4?UX FAJ 4R@3$0F
XM_P$XT)+@P#Z!G#8 #7BE2$0FY=)'/0!U20Y""C^@ @=$#N > @!&X,$J;(6-
XMT<+4-Q"0_,@$ < #0 H$Z":;1XMLD01  D! "  !7<2+X ./L8(&X!;5MQ/8
XMX]Y-OVQ=G^B[T .]PQF"T?@0(223"9P!&, 1B=5%J$8M$S8D!!90C?2%$!A#
XM@(%R&  :( %HP#2P <*@%J@&(: 'L$ 9D <DTPGT0"' :#@#V1.9^X1ID@\F
XM  ;<P6D(43(3 )@"&("L+,!5_"V0!P!<EZ;2'?:"V3R;:#-MJLVUR3;;IMM\
XMFW S;LK-N4DWZZ;=O)MX,V^V!<56"15;$Y *!< E*;8I #CQCF++ H 3)BFV
XM+P X.9)B<Q^*#0T SC4 . N-8HL#@/,A*+8[ #@QH&+K X#S#P#.&Z/8/HIB
XM.P2 4Q$ SD8 ."$!X)P$@-,2 ,Y, #@Y >#\!(!S.RBV4@ X40'@7 6 \SHH
XMME@ .&L!X*0,BJT7 $YA #B/04Y[#I]! IQ Q<8,<EH500#2$W Z@YP6B+#G
XM]"P T""GW1\)( TZ0H=("1? <18 := AE(?\4I_5H$.\A,^0/@%G-N@0/>5]
XM LYNT"& @_Y4;.&@0X06!( !1 #@+ ?Q  <$ )"  #Z [BP Z2 >$ <$0 &0
XME47H$"J!@EK00 (,',!'  &"LP"\@ROA $P4" 6<\8"$9@6_$$+G03X !G/O
XM,VP &0 XZT&'B(H(H ,H <"Y#SK$S?P,.E0JL!F6!$1W: (P -\% ,"<(BI$
XM$<"5J(0R5"(<47T$,3\#!A '0C0"/%$3M0&DJ 'H ."%3%E1+'I$0T 8!09C
XM5(BZ@'U0IE8H!] !YA,8* $TB@"ZJ!#= 1UBAS+1(XH7GXB)T@#8P'S2&I>$
XM #2 [;R@W&6%7E$A.@3.:!H]HE @Q' $ DI&#4 7"#&"@I(*T3008B2G)CVB
XM6]$TU"($X &RPA%M!.3A-'R&4BI$)T$J_7>L](A>@E3J%$BI*34 G. ?^(.!
XMMTIO*2A(I?[(E@I14I!*.:<P/:+C9I=B0%)*#83HE-0?*]2.'E%:P"7HJ#0U
XM +@@108!-YK3CB@OT*9TE -T4P, #.!!,J&C$R#G6 0)ZI* J.T\HL1 @D:!
XMC] !WJD!2 8YK1:M4I6T3H$!( BGX]09I,A  %"%Z#2(!_#@QGR&]2)$L4%.
XM,QT4%!0(T6Z0(B,!':4 $O6(@H-X  ,BP4=@J$>4'.0TU_D9,*H0C:# (!;0
XMT0H@7(YH.TB@,PL!9 !\($3C@03E:9^!I0I1>R!!B6=)S:@&0!^D2&!04(^H
XM/TB1P:"H'H !$ _P03! ! N5(; B!-!4@T$EE*E2]0 P@*IJHD#J 8  "#48
XM?-2L2@%R&AK]J0 J Z3(@X5665$'X*C18*P"J!"0TZ#!1S"IK,@$2%!P\!$L
XM0&-@12I @H:#OOI7#P!YY H)X <H5@ @!WC"'-!%: !^L &G, ;&   8 T[!
XM#;B/,H Y[8!EM0-.P2YY"_AQ!MP'&W@(9^ AL 'W\1 :0V1E=)35LF)6 *!9
XMK4AG_:RA-:2T =)J6E&K:G4?8< I3%;&^@;JFQQP#V* #LR!AR &Q@ :F W-
XME0WH(J90!I@KH]L5 . -Z*(PX 9RSARH QPI#)"!G%,&M.ME;0.UJ V\ 3M0
XM!FH11^*<NG6]N@#.J5G/0'T; ]*5MI:!V> &WL!#< /--><D@#EP!\( '$@ 
XM): $D($2(#K@0!G@"0G )""G.X!@%2R#E0H2U@6P@0J[8$7'3G *RE5S9E@*
XMFV [+(8]"1J6PU[8!% 'W  ;6 ,5-@RL6/5*H#9L@I6Q1( %)-@Z, =J40*@
XML2EVQ_98%H!C&6L9F /5E;:^@5JT7)<L8RT)3Q;$-E8XX(_D !W014"6<ZJ!
XMQPH U !ZO:QH@'*N5IX@7LD YORN8@!SDH$T8 ?J@*U@LTYA#@38[*J+T"P 
XM0+/US<Z.@2^[9^$ \^BS5L2\MH$ZP ;<[* =KB9A-B1:*X('9D,8F+/<->>4
XM60!09NO;I-5%(04&X($H(A7F !K0KG0 ! R%$GMA;^R%10&FE@BD )^2:E/ 
XM"@  +0#5E@ <NVH9K*REM0.1"-Q:!JMC$^P88+ NH 2,@5IKL3BGK4VP<&#8
XMYEI9FVQ[K; %ML)VU9H 3JM8?P  J+92 <@*6Y'@ IQ"K$@ 8J $S %Q*Q(T
XM+:=%*>%V#H@$4IMC;=&FY0@#EMQ*!7G+;LGCM(6WXC;8CH%U:V';K;/]M:(#
XMP<X!?2L2>JV)3;#/MMT*W'Q+8>?MN!VXVW8@]EN#>V'O+0"@N $WWT9<BRMN
XM!V)E'8A<=K$*7((+<CVN916WNFBQ6MR1&W'K;:J5N#BVUQ99E]MO6>VL9;"N
XME@7L6E7[:F-MJV4!/O?FJEJ)VV$QKL,EN3LWYR;=GIMT@6[2);J\EMU*!3:0
XM!MP C$VU]O;<7ED#*Q)6KKP5N.N6RPI;RZICG<+8!;FZ2-S:V]&0< & #\BV
XMZ[4,M &2"W8O+L(%N$<WXK+<?0L 5BZ-Y:Q=E],:78$K%4R N<6WZO;.F@'+
XMFBPL*X^M179 #*3<Q7IWHZ[9G0/_=L7F6X_+>55LCCVV0G?5(EA=^W.E[H^-
XMNQ"7[U9>?[MZ"^_A30@[0!,H ]14#P8K , $EB K/ ").1$,@40% "< >@X 
XM=& 1U*EJ:@@>8780ARE !73$$DAL0R (, $F$ 2( !'03%! "CR!'4$$JH 4
XM* (H( 4D@"U =:UN#R@!>( \C@$W0 ?.+Q[H @@ABN@ D? 0:A$<M;:<5MS&
XM"AY0==>L'/@!2@( ;%TX  (*< 'V%F&@ZAK@ SP'5FM[7< ". V,@350=4-M
XMK'"P<J "&^#+R@;>P 2&P&=@S;)?.;"!0S ;@ ,5F 3?V>I*!MI &-C <\"Y
XME@&1MX$34VE] T?B %.1@<@16  (X+0I8$A, 2EP?K$ "!T"13CS0($D7 66
XM<!0)$D0 !B1A(A #IK ,F,(SH A#81HPA6O %+8!4_@&:&$U*(6I2!"HPF;X
XM"IOA+/R$U2 7-L->V R#83,LAMMPK@4!0N#[!H$EX*'T&!68 IFG"% !$! $
XMJ( ."!()@0H\@2<  IJ 3LD">!@*4($3, 40,0^VQ$*@^A)BZZN9C, 3T$Q"
XM0!);8B? B$/Q("[$/0()H.+J>WT1<28F IOX^H( 3ZR9B$ 2F )!8 I,@2+0
XM!(0 $R@"EEC^2D49, -H0 VP 3< !^2 (" $A@ 1* )+= @\@2;@B)T +"X"
XM4D#[2@%77 6,@!' QJ#""F!C(\ $GL 50,106 @<@2E"! (P )#&U%BG$($I
XMH /PL!3PP<T8'U,!'TP$A  _-@+\. GPXR; C^\Q"" "5\ ',PD?C 2*@ ^>
XM$@^9";" (+& *[*4@ (^N!=G9(+<B UR$TC(($ *3 $?/ 60@ ^^ ASY"H#D
XM*^"/>\0V1@@E&03 XVH,BZ5O.;X"10 6YP<F (E1,?,- E)@$#\!(T"(JX B
XMQL.+F H@XB6 C9U $6 ",AE'0&4A<)!O,3/^Q43 $C-EJO*4H[(4F,H@H @X
XM@:N<DY=R4^[*SU@(5($C< 3TV!$ H5+ #P-B6XR+?7%9!@Y;V2E#Y;2\EMNR
XM$WC+V5<NA^6Q;)=U+;KYOF(Y!2!B^5M%@H0"X&1)P @G6REQEO=R$5#+;!D<
XM6X$8X )@0)"0QE @"\3E(X $!G$,R $XH ;@84@LC94#-CX"8GD04X$B, 0V
XMBR9Z FVY"(QD$*#'AH +<,Q4( \XV"7Q!'C $) "2@))@( Q\ ;8;]6M V7 
XM,?/@>IP0Y"_ZK2)-@!=_8DA\!>+R;.;-T[<(' 'I.XH9,2O63&U9'#L!5ZR)
XMS[,EGB)&."%\W[;,?,%Q=TX"WSD)A.?QS 0L<4IX#PE!(D2 !L1/X0, &- @
XM ;,$Z /=@ XK +@'#!HDK#@ 0 \B-!$UT A:R5@$FIJA&P^&;D"5XT.#!)L"
XM .J!A?9'"<$>6.B/DA D0X9V!!9AT65H3!"C+;0QL BJ(4,S XO@#RQT^>08
XM%MH;6 0*8*') ?*UT,1H(BB(#"T/+$(_B-#*5P]!Z2'1HQ%T ("> * D6>D0
XM7:&M=#"A"% :)02 "0"E,:!(@=*!4B59:49@$=1TG) $#6%)QXE#6J*AM"EH
XMTU!:%N!I*TT9SK25]@5Q&DKOZ(D $JSTCPX <MI0".F)0*01=#1RTA%: ,#1
XMB5 !(G4[#0"UPE$;B !@G1RU'V@(G5K.:(*&< $BM2UH"!@@4MO5B9 !(K61
XM9M61ND<GA">-H E"0]  $7H G,")@*MK-15H"*ZB5DO.B>"F$<  8-$!H /D
XM:D_0$$1"K>[38+I6W^B)@!!JM3.P"%WZ,PR 0#H1& *")@!8VD1_:^N4$,3U
XM9X S#<&#?NM>-!$:0(0F !-:17_K)0H Y/6Y_M4I^EUK@8;P -ZU.KW2[]J-
XM9&L$0 "@ZD1(3=^:$C0$UO2MB4%#^ #OFEL' (C]K9OT1'@)"+H ]!3'$*$+
XM0&AI4!U[T4V$6)&Q<74@Z=A5!&1G;'8= ,!#QGZ[$R%3?X8"(#HF DO)V )A
XM(C#LF?VO$W4!8 4-H01T;#VMI#OV[)T(FB%CKVI$W;&Q**/NV!8[ .SL>*%'
XM X#01M &X%(G:@,0H@THUM[46[N^/6VL;;"E=H0V /TN (R LYT1BC;6OM83
XMP6OO"XD= L[VHF;:6)OX3@27O2^B=MW&VC35;7^& \"R,0N"/@ VH"$8[L'M
XM!!1WA#X ^WHB+&X$< !TD>1^W#DS $SN Z Z+_?A5MB>>W ?T@!P A[W=A#<
XME!NG?J/'?5;--H(FV V!;R, !  ] P"R>MWD&F][$QHZLB,T H"BFMMW>P''
XM_;K9=.B>W;+S>". WQN\7[?JGMP)0$RO6@2= ,QT .A%U-MT!(#I#5M ]_:.
XMT F 64^$5TN]?>=$X-ZE95 #  E*O?F(D(S00V)]PV\/.A'@!H)6 $0:=2N 
XMP[H>[S?OUMUCHW($@*%PO\$V_-:G' M^6V\"_AD4@/9.U I ?,OO^SVM T ,
XM@-^#&H K@%<]P1LX YH(#'QL5&C]+:L[^,TA8DT:02\ =@T 4OA^8 (681Y$
XMZ 40N0$ Y53APQH R' 5;KD! !]1X9\Z(;CPF].Y'_0,A]/O6X5K@X<]P]E!
XM0Y@!,SQJ)^H%X+X!0$Y#T!_[4$1H!D"NK?@6!]XT%(LW;M1]':WV%K^3 )P!
XMB.\ D+15!BD(U%C\5(]ME5'!IS8#T-MJ>XM_< #> %1" )#;"4-D!X"__1D:
XM0*I&W0W @.[M"-T ^#<A3QC_.U$W .-[Q0MY,/'B"+H!(/#$G<E1-!_/W#2 
XMD7?NU9W)G]%$J &,7'5+<MD2 %!Y)F>>B#R#R^X&<*@E^7$PXPAZGL#QS^  
XM E'SYN5+E)3S\DW]R!V 30'@#L"3RVX'D+D3M0,HVR<PEX_NR>T 3/DO1P .
XMH&U?<P>@OAUV+J_E$=H!5'%O_AD>@/(  .0< 3P F(W.(_0#J-D _ $8;TQ>
XMSFET0JCDZCQ)MW,$_0!4=$)(YP_@EB?J)F01TCD$8$W_/$)# !9NT/7H/O\,
XM$$!K*_3?^]!I]YU&W1# :5?T"$"_-SI52.<18'BC[@@0Q#>ZP=[H)'6C)V\ 
XM+@'::467 (V'I</HB< X$;0$T.?I? (,B9R>OROZ!##9 'P"*')ZC@ F@+5)
XMZ AZ H1RU#T!''I./^DY'8G[='L>U,VW3T_;B7H"'&VB/@&:*5+_#!-@B3-U
XMB^W3[T0ZIP#* X!3@$E=T2E S6[K53M14P#C>]:_M%R'ZA&: LQTM3ZJ:7I>
XM'^<1NE+O<@10 ;IX.J\ _!2 5P 2?=@MMV+G!@4]L#MM &X!>GHZMP! /5%;
XM@ E]V7\H99?JE_UT5W0+8+XI.]P>[1]\M(]P 'X!-,-7EU\L.U%?@!]:T2\ 
XM\);M.;NVRP367M+3^05 UK*]W]5V;2[; ?5KOP .&W5?@*5=T^FGWJ[M_KRV
XME_!TC@$V-G4/+0 < [!SZ@[/$S4&\(<5'0.(:>\^T\,[G:;N;_RU8P"@K=Z)
XM=G8_V@&@N1/0'QW>);9W%^@1.@-XZ'2> 6 2ZLX 9KJB9X#RSM^]=Z+. *9<
XMP*OR_+ZJ!3P'Y^\Y[;5K -J>SB?-8-< !J*B:X  7^$?>(36 ,E;PR?X"K_@
XM$;0&0 :1W<3#;0"N 1:UAG_5+)ZL5_C #< W@&6/T!L@L^/XMY[.-T!<Q_$<
XMZ;5O@$O>XSD\CO?P"'H#]/6*O@%$>X\?\3B^Q,M0^M[C[3N.C_#Q/4)S@(Z>
XMSCE _@;@'$!!5W0.P+\3-0>@Z%W^HH-Y6)[E$30'F.SRO0.<\W3> ?QXHNX 
XM@:BB=X#$C;H[@#[5\Y[\SJ=T.K_2[[PU2/% %++W>:/PVCN $^_S-%Z^>P L
XMG<X]0.Y.U!X@*E9T#Q#,,?T8W_3X&H![ "(?H;7C8/< H+W44W5,;]PW?7(7
XM]8Q^TS]Z /X!7'M%_P"\^]93^ C] 7)[.O\ -?S7H^A;7\1_/4FE]2[^U\/X
XM1/T!1GA%3]G/OJ< <! PU-,Y"-C5SQYF3_L<;NW]X;3'J<]>C@/P$'#C$70(
XMT/'FGL]7]!"PXL9]B-[1"/I:-03Y+@+^-;U'XFT>]JAN^3X"@#>_C^G\GI7+
XM=UL/ )HI@B8!TCY1DP"17? C- DXY "<!*3WAG_PK;G"[],4W] H^HS/"I^[
XMP?\,)>"B<WR,8A$^_@^3Z C:!/CWD1_D ;@)^/,FWP2([0 @.5.^&XGY:#Q1
XMFX!C#S]2OCT?^<R;CJ1\JQ[S5?<-_PPF ./'_-8=4E(^BD\(,7]I,X^4SZU'
XM/E^="(4FY7O\"&T"HK9[2/E5W.2?@/D9 &H1@CX!'UOLYV[,>?81.L<_ 18T
XM .BBLY_GQ?Z$%ON>/5&?@#&>[Q' "0#O8G^\1^@3\//%_AK7^VW[[9<BU(T"
XM'+3)1P'J_O'?_0B- H*Y4T#0*.!27_Y )M(#@/O _"B!XZ. G"GZY_GC7_(N
XM.I"E[<6]&\I]93CD#WTW%&AROAM2-NUGXXA^-VS0V^^@;W^>O_U+/?8' &Q_
XM^SD[@]X-FO[V\_CC'P"@J/"'X5]]-[CTVX^OA?]'9_XK__:'Z-M/UYD_MV?^
XMC)WY__G;'_IOO]@6_J3_]KN1V\^BA3]>']"[89[?_D'/_$&W\/_YM_^\,W\T
XMS_PG_NVWZK<?>R?\@7NW7^)W^\D6  #S!/_U,+E? /#T)8#,7S?'_'EU$. "
XM6/7=?E=?!5@9/'H:X&X0X0E_@5L'& "8=<>?=V$1*(!2@0! Q-!^4<\)6 *Z
XM?@F  %"@H8 QH.U7 FY0-*  T/N5@,%?#DC\E8":7@X(_76  @!5D -F?R6@
XM\94#?G_P7U[B C:!Y5\)2/KE@.M?"7C2Y8#R7PEH_^6 ^%\)2-'E@/Y?"2@ 
XMYH $8 F(\>6 "" +F-P1@0\@"]C@Y8 4( NX\>6 &2 +^-SE@!P@"^CLT8"U
XMPA,H%0P \U/L-P!\;'P@I7?\#0"P'Q]HZ_&!>1X?&/S1?@/ A,8')G^'H//'
XM!PZ!D&#UQP=>?_#? !"B\8'=7R=(HO&!X]\A>/[Q@>G?(=C^\8'OWQ^8TO&!
XM]A\D2*?Q@?Q?)VC5\8$"("28^/&!&!\D>%9U@ / &@@)JF]\8(,'"59]?.#&
XM!PER<'S@<P<)?H!\H+,'"=X)-" !0,14@Q\;[4< ]'35(.RG#:9LU:"#5@W^
XM?L<? 8#M58/&'_Q' +QUU:#SIPVZ=-5@]:<-KGS5X/97#N9PU6#XIPZ&?M7@
XM^:<-NA'58/NG#<YSU2#]IP[^?-6@_J<.3GS5( !8#H)[U: !6 XB@-7@+Z@-
XM/H#5H 2H#E* U> %6 YF@-7@@U<.<H#5X >H#8: U2 )"/\5 ($@#5@ K(#'
XM7P& I;F$,& !, /&A#;@2H@#QH0[X$K8 \:$/V $0!)(6!T!$3,[# #*%V!0
XM$7 %.(%.8(3\!!:!\H 4-@18&E/(%#@%/4%4T =.A6+!'! &V %" +97&; 4
XM4N&=]17* ,'?9F"@O0I,@ Q0 WP!%]Q_AA <A;:"Y%4&L $Q0/<$ /QJ=*$+
XM8 :D :M550 ,Z%()P1D0 ) !8H 8P&/E 2Z 9:45#(4G05'H'1 '7*&%01QL
XM!4WA3M 3 &Q2H?(%%BP%3<%3H!4F!)7A9U@21(;_&9MV%"I?OM/']ACF!)IA
XM2, 9DH;*5R!H%8:&62%'L!5ZAE]!U94&I UL0)FP&SP'9>'6-0:P$BO!=D 7
XM(H9T0%XH&>8T=&%;:!48"IA%7W@:AGYQ0BBW&KH$H\&$]AHZA9LAD=89C@6@
XM(588$HR& P%OZ!5 AMCA,U&+;(<3@<+6TWV'L>%/L+J-AV)!>2@:ZH:TX5C 
XM!.2%>=Y' $U0AA2$<^@1Q L[6G08 \2%1:$!<.@IB*C<@6@ 0(>DH4* !3"(
XM*4$!H!Q6B%B V%$5/!/5 EW8(4)Q!V(!L,0IB+E>2F  & 4B(A:0%GX$!H '
XM%1V^B##BC18=DH@2XC.B($Z'!D"%H2#"A1+BOO8CIHC[PGM8(4J''Z(!L"&R
XMA1&BA%B*1(=.1H,(V2F(-&*\H*)9AT1A2H M4(:S0P"@DO1K3"%L^!3&,FMA
XM:?@5Z(>YX:N0'HX%'9B3510> +A:=$@D?@0'P-LU(TZ'!P"-=B/BB1Q)=-@D
XMOHD?!5UH%;P$L]N15BMH5B=!^>4^4&XG8H5(!K1788"5I24V:8)B5?"Z,01T
XMH1Q07=4!<@!X1[E5:,OADL5^%844%('('I**L0)\>'N)35U!9C@FMGYEHGK8
XM*EZ%^Z&::"9Z!?_A=(@ # 5WXH>(   &<J*N2$?LB;ZBD<@DZHI &Y:(&GX$
XM[ .7:!$(@&$B>"@;BH?]87Y(*Z:)NR&;^ :XB2D! C![58H> 6M26J1JX&)'
XML/$D (M.N6@1H'*E1>-&%ZY?=L 7<%I9;J6%2Q(JUE9%80+0BZB+"8&U55H@
XM*_PB + $P!8W4Z:X*7:**4$" ,,IB^TA2N$L)F(S0K18'Y*)^&%8@":>A_SA
XMFI@?7H?Y(F4 '\J $$&K*":&A[$B>7@M8HRVHJS(%?R' >)'4$ 0B/\AAN@R
XM#F\*(HZ8$@A ,&,,,">.#87&CO@A)@ LXI%H,R:,/5JO>" J ''BD?@GWHRB
XM0W2H[A6%"H"=>"3.B0T<S$$E?H@*P*=V([:,#9P3)R?*C V<[R0G[HP*@,,F
XM)PZ-#=R4.#56B0I ^30C<HTW!Z9X)-( 8./-X2/.C3OC @!'S8AHX\U!0\V(
XM5>("4 G-B$OC?I!SS(A/XT>P /@C?B+<B&G C#5 W;@ N(U*8]Z8(%:(IV)*
XM<"$\C*9( R(QOHKW8;5H,9Z,/P%Z>"MV!?V5I_4&<$Z*8]#(%H*-*@-K$BQ^
XMB#&$J<@QI@0B ^=HI'5T]"'H2"UJC*,C;H@R9HMB <OX(38 +(6"6#<V ,^!
XMSW@@,@",XY$8 P")12$#X#H-B<_C=8 B'H^IXM0X'3( :B-;2",6<H8B!8$V
XMJ@Q&FI_X/8**1V*4F!(T -;)U7@@-@"\HO18."8,^R+F>#M^! H#YRA1N897
XM@:M(,E:,GR'I:'YDC*?CRHB:'8]/8OMX QR/8J/T.!TV )(3E.@^%G+?HM X
XM0=I.#&-1:#%PCGP5 &D5")#38LEH+0J/I2,"J3)N!;GBA^@ '([>X_%X)6J0
XM+N1<.#=.APX N3@W4H\I@0.0/QZ++J2UH2#"C0[ 0^ TXI <05_X%P:&'@$R
XM0!@6,0Z!A&4#4"Z.80"Y/_)R(6*U* &X3LN R"@MVH>_(U>(*0  2,%M:!ZF
XMD"DC>;A$(H<6 33P1!J&X!!R4D5BAE<D A "+(S5H@!0WQ QO6-/\/^8D!?7
XMF6A 3@5I9'ZX1E8%V, ;&0 D5XW5<=@8TI%9XD<P IB-U2(!8%>)A0'DR!@2
XMJ!" ) 5H1M:*Q*/%>$AZ!.: (EE:T0$H&!GP2#Z&=:2;P#D2:2ND14!"_@0+
XM0*Q 0 J2*.0!64A:C*UD! D\RHV?8T]02P*2!60N24B&DI_A*-D1: FRFF&(
XM&"Y7<L JR4I&DH%,1J J?H::)"UI2U:+NAHN>4;JDLCD5X 8^H:AGU&XH%D%
XM+P)(4# N:&2 ?U45  7*@T0@!L !RM53\![$DV\*/9EL;8;GI#Q)3W)9LN%+
XM@$]:!6-B1R 1D %>H1C !B"&94)5(!&L <)#<,@5G',> >4$&A '!V5BN!C^
XM9\#B@N9F?049Y0#VGVF/"QJ210?,D^6DBH!1<F!R $JI.5Z/[&0:T&-IBF7"
XMS=%,S0X2 8%E8,5@*0& L%*: 3HE',!33DUK848)3<X @8B#()/@DW'DAR@A
XMK)2GY)YE?!D*[N*"9@:4 <Y5-D% " 3XI.IX!]"4'T$&L5):!?X(N="XX9//
XMY)5E(&(*Y!%:R12HE7$AIH!BL)-OI1R@,_X$F4)161="DS$ B8@I[&OX9'4U
XM!I"36H%$H V5 83E56!4JI5+':9@5[F5?&6$Z"#TDWNE6LGG.0BX&F2I5CZ0
XMQ00-I5G:E;N:@X!WN)5& I)P!K@'AH)V2%>6EF_ &I!S& J)&TY9%YZ2J60@
XMH[#)EF> HH@JKI0TY3=)N;T$LF4;('=I5UE3O! _QI1>H?"8,+@8R"4<H%!2
XM3H5<^"@1J%>(81X 9:D,2>2"=@<(E^J5'" S/1/UC6QI%X8!T.5'D#6LE/C5
XM@]7#-7"JDWAI'"*'" #=L%+J!&] #L<L>HQ6Y9HU4^Y7Y(-+@D_* 60 #N 6
XM,HBE!4QIH"&&8H!X)5[I(E!!+^)6]E<+9NF86=*5W.4= !B:'Q*!6ZE?ZB4_
XM00/ 1VB8,F5BTF%6:/@D#D8'")B1HWD)0QZ8=24-D%1F%7IE6BD'T(VEXUS)
XM8O)8;*158%@>"<Y5I%A8%C&")1K@8RJ6=6%B@F.:E]8D7<E7A@2/XV>9ZR4 
XM"P!E\%GBB%#F[/59!G]0YF.I9%Y932*4::1]EGD>E+E-LIC0I S NSD(60%3
XMF8$Y9VY +:5XK)0RIKH'97Z86Z8<P%E*!5R<7HD&( D%)38GD\B6,J:3@2E,
XMF 9:@ME._GD4XX(F!K@!88!PN1FF:ETEH^EHRH8<05>)!AQ73T$ 0*/ADV+ 
XM;_A.!@"^4XG)F&"5;\"C6!E(F0O:&_!W%879DVSY!DA>W)5S]1&03ROE&Y &
XMM '"Y519/\F6@R6N.8.E! 54K?EW_7D-U)(H3_Z&FD1*4$$)FZA72G!"\9K-
XM67E%;,Y0*^4<$&URBSG4#N5J:E;<8A15:X*51>$BY6K^7?C%9_!&U9HB94H 
XM2-6:Y5=Y^1D84K6F-E2!I02LE*NY?EU9)!HS56LZ5^ZFN4DA&FAO0 PV1X)U
XM*Z9$\ ;$ 76 !%9>YE <9*KY=V%.'X$'H)+(EA)6&=!=I00,E:OI9Y6:\*5)
XM!6UNG*9F3B5<\)H5Y\6Y4-%4LJ6G=5PEFY^!7[52.E@?SQA03CH 6:2!-@><
XM!'> =J5.J7/:YCE9%:Q0#T#T:*#)F^S7@_41S$LOYYI)!Q0!0<!'$ $P:\'E
XM3ID&Z &L! (0 5"2-F<=\#*D ><?]G2D&9;.U7I9X"2=^Y4+-@=8E!L &B5;
XM$@%8)17P:&V28Z9AZ0;LC'?DR^D&U 'EYD<0 KQQLJ50>655736E"&!$^IP>
XM0>=6-!F4CH>FB&2-BG,#UBD17)5T@*R9$IP =I5LF6YN!=-E @;>_9@-6!G0
XM7DV4$=@$-F\2F1C8Z$EDXE<>6+_I4!8Q(MB5A7FRGB=8"D9DFI0M6$'I$>24
XM,ICQ17J& 3?8D?!C+I2[U5!)9%H$E4"!U2DJAF; >F4&L &<D_'I!FB*XE5S
XMQ@; !A8G&? %> _R8M7E/AB:7\#=V0:( 66 +@(O?@%KUAG@:9Z6I6;WB7>"
XMG[H(^FE]:HIT *=8:""&FN*8A635A7) B^4& )YUX0!&6)H!IV50R5-67<L5
X0Y"EKV@%I0 LF=WF%[!4  .*8
X 
Xend
END_OF_db.o.Z.uue
if test 21625 -ne `wc -c <db.o.Z.uue`; then
    echo shar: \"db.o.Z.uue\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f enabledb -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"enabledb\"
else
echo shar: Extracting \"enabledb\" \(281 characters\)
sed "s/^X//" >enabledb <<'END_OF_enabledb'
Xcd /etc/lddrv
Xif ./lddrv -q db
Xthen
X	echo 'Trying to enable debugger (Ctrl-B interrupt)...\c'
X	( echo 'dsabldbg/w 0' | adb -w /unix /dev/kmem || exit )> /dev/null 2>&1
X	echo 'Debugger enabled'
Xelse
X	echo "Disabling the debugger when it is not loaded is a bad idea" 1>&2
X	exit 1
Xfi
END_OF_enabledb
if test 281 -ne `wc -c <enabledb`; then
    echo shar: \"enabledb\" unpacked with wrong size!
fi
chmod +x enabledb
# end of overwriting check
fi
if test -f disabledb -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"disabledb\"
else
echo shar: Extracting \"disabledb\" \(285 characters\)
sed "s/^X//" >disabledb <<'END_OF_disabledb'
Xcd /etc/lddrv
Xif ./lddrv -q db
Xthen
X	echo 'Trying to disable debugger (Ctrl-B interrupt)...\c'
X	( echo 'dsabldbg/w 100' | adb -w /unix /dev/kmem || exit )> /dev/null 2>&1
X	echo 'Debugger disabled'
Xelse
X	echo "Disabling the debugger when it is not loaded is a bad idea" 1>&2
X	exit 1
Xfi
END_OF_disabledb
if test 285 -ne `wc -c <disabledb`; then
    echo shar: \"disabledb\" unpacked with wrong size!
fi
chmod +x disabledb
# end of overwriting check
fi
echo shar: End of shell archive.
exit 0
-- 
Lenny Tropiano             ICUS Software Systems         [w] +1 (516) 589-7930
lenny@icus.islp.ny.us      Telex; 154232428 ICUS         [h] +1 (516) 968-8576
{ames,talcott,decuac,hombre,pacbell,sbcs}!icus!lenny     attmail!icus!lenny
        ICUS Software Systems -- PO Box 1; Islip Terrace, NY  11752