[comp.sources.games] v10i037: NetHack3 - display oriented dungeons & dragons

billr@saab.CNA.TEK.COM (Bill Randle) (06/06/90)

Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
Posting-number: Volume 10, Issue 37
Archive-name: NetHack3/Patch8s
Patch-To: NetHack3: Volume 7, Issue 56-93



#! /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 archive 19 (of 24)."
# Contents:  Install.ovl mac/MD.proj.hqx others/exesmurf.c
# Wrapped by billr@saab on Tue Jun  5 09:09:04 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Install.ovl' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Install.ovl'\"
else
echo shar: Extracting \"'Install.ovl'\" \(14761 characters\)
sed "s/^X//" >'Install.ovl' <<'END_OF_FILE'
X	    Instructions for compiling and installing the Overlaid
X			NetHack 3.0 on an MS-DOS system
X	    ======================================================
X			(or, How to make PC NetHack 3.0)
X			  Last revision: June 02, 1990
X
X    (Credit for a runnable full PC NetHack 3.0 goes to the overlay team of
X     Pierre Martineau, Stephen Spackman, Norm Meluch, and Kevin Smolkowski,
X     who built on the work of Steve Creps and Mike Threepoint.)
X
X
XI.  Dispelling the Myths:
X
X    Compiling NetHack is not as easy as it sounds, nor as hard as it looks,
X    however it will behoove you to read this entire file through before
X    beginning the task.
X
X    The NetHack executable that you are about to get will be generated by an
X    overlay linker.  The beauty of this overlay linker beastie is that it will
X    create an executable that will function in much less memory than it would
X    "normally" take to run.  Do not be deceived.  The RAM requirement for the
X    overlay version is about 550k!  You can load the program in less RAM, but
X    you will begin to experience a serious amount of disk thrashing at 530k
X    or less.  Absolute minimum will probably be in the neighborhood of 380-400k.
X    You do not want to run the program like that!  The more free RAM you have
X    available for the program, the more smoothly it will run.
X
X    The magic piece to the overlay puzzle is a program called ovlmgr.asm.  This
X    is a replacement for the Microsoft (and we use the term loosely) overlay
X    manager.  This program has been enhanced since its release in November
X    1989.  It will now allow NetHack to use EMS memory if any is available,
X    therefore, RAM requirements can be reduced to the minimum with at least
X    256K of EMS.
X
X    As of patch level 7, version 3.0 has an added feature in the Makefile.  
X    This feature enables a structured break-up of the object modules so that 
X    we can link heavily used functions together without actual source code
X    movement.  This has provided a great speed improvement for this release.
X    See the file others\maintain.ovl for more information on this structuring.
X
X
XII.  How long is this going to take?
X
X    On an XT class PC it has been rumored that NetHack can be built in 8 - 10
X      hours.
X    On a 286 10MHz PC you can build NetHack in about 3 - 3.5 hours,
X    On the flip side if you have a 386 33MHz PC with a *VERRRRY* fast hard
X      disk, math coprocessor, 32 bit bus, and severe I/O caching you will have
X      NetHack in about 15 minutes!
X    
X    Hope you enjoy the game.  We have worked very hard to try to bring it back
X    to the PC.
X
X
XIII.  Tools:
X
X   The following programs are necessary to successfully compile the overlaid
X   version of NetHack:
X
X   A.	Microsoft C, version 5.1 or newer.
X
X   B.	The Microsoft Overlay Linker, version 3.6 or newer or preferably,
X	 the Microsoft Segmented Linker, version 5.01.20 or newer. The
X	 overlay linker has been known to cause problems with other
X	 programs, but not with NetHack, yet.
X	One of these linkers should be included in your MSC version.
X
X   C.	NDmake, version 4.5 or newer, (available from your local ftp site).
X	 As the overlay makefile is pretty large, you will want to use the
X	 large model of NDmake: MAKE45L.EXE, as your make program.
X	MSC 6.0 has a new make program distributed with it that might be
X	 able to handle the Makefile.ovl with a few modifications.  This has
X	 not been completely tested.  We recommend NDmake 4.5.
X
X
XIV.  Optional tools:
X
X   The following programs are not necessary, because pre-built copies of the
X   files are included in this distribution.  However, if you want to build
X   NetHack 100% from scratch, you will need them.
X
X   A.	An 80x86 assembler.
X	This is for assembling the ovlmgr.asm file into ovlmgr.obj.  If you
X	 want to assemble your own copy of the overlay manager.  The file
X	 others\ovlmgr.uu is a uuencoded version of the assembled ovlmgr.asm.
X	For details, see the file ovlmgr.doc.
X
X   B.	Yacc/Bison & Lex/Flex workalike programs for the PC.
X	The source files for the special levels compiler are built using
X	 bison and flex.  Precompiled copies of the files lev_lex.c, and
X	 lev_comp.c have been provided if you do not have these utilities.
X	Bison & flex should also be available at your local ftp site.
X
X
XV.  To compile your copy of NetHack on a MSDOS machine:
X    (or "just follow the "simple" steps outlined below.)
X
X1.  It almost goes without saying that you should make sure that your tools
X    are set up and running correctly.
X
X2.  Make sure all the NetHack files are in the appropriate directory
X    structure.  You should have a main directory with subdirectories
X    src, include, auxil, others, amiga, mac, and vms.  If you do not
X    follow this structure, the Makefile.ovl will not function properly.
X
X    All the shared and UNIX-specific .c files and the source Makefile(.src)
X    belong in src; all the PC *.c files and PC make files belong in others;
X    all the .h files belong in include; other assorted files belong in auxil.
X    Check the file "Files" in your top level directory for an exact listing
X    of what file is in which directory.
X
X    We will not need any of the files from the amiga, mac, and vms
X    directories, so you can delete them if you need the space.
X
X    If you downloaded or ftp'd the sources from a UNIX system, the lines
X    will probably end in UNIX-style newlines, instead of the carriage
X    return and line feed pairs used by DOS.  Some programs have trouble
X    with them,  you may need to convert them (with a utility like
X    Rahul Dhesi's "flip").  Also, every file should end with an empty
X    line, because both Microsoft C and MASM have a habit of ignoring the
X    last line of each file. 
X
X3.  Move/Copy files from the others directory to your src directory
X    based on the following criteria.  You will probably want to include
X    most all of these files.
X
X    You will definitely need pc*.c, msdos.c, and trampoli.c.
X
X    random.c is only needed if you want the high-quality random number
X    generation routines.
X
X    You should be able to use either others/lev_lex.c (generated by flex)
X    or src/lev_lex.c (generated by lex), but the one in src is smaller.
X    If you have flex or some other lex work-alike, you can use that to
X    produce lev_lex.c from lev_comp.l.
X
X    The file termcap.uu is the fixed version of the Fred Fish termcap library.
X    You will need to run a uudecode utility on it to generate the file
X    termcap.arc.  termcap.arc contains several files of termcap routines.
X    Using them with NetHack involves very little knowledge of the UNIX concept
X    of a termcap database; mostly you need to know enough to set a TERM
X    environment variable.  You can unarc termcap.arc here in the others
X    directory, but if you are going to use it, it is probably best to unarc a
X    copy in the src directory.  That way you will not miss copying any
X    files over.  Wherever you unarc it, get rid of the included makefile
X    since a better version has been provided as Makefile.lib.
X
X    ovlmgr.uu (MS-DOS overlay manager) is the uuencoded assembled
X    object module for the overlay manager in case you do not have an assembler.
X    You will need to run a uudecode utility on this file too, to generate
X    ovlmgr.obj.
X
X    Exesmurf.uu is the uuencoded copy of the exesmurf utility which displays
X    and modifies the contents of an executable file header.  It is similar
X    to Microsoft's exemod utility but it provides infomation on overlays
X    which EXEMOD does not.  It is used to modify the Nethack executable's
X    memory allocation.
X
X4.  Rename the file Makefile.ovl to "Makefile." (no extension), and move 
X    it into your src directory.
X
X    The PC NetHack makefiles are set up for NDMAKE, a public domain
X    "make" utility.  Both Microsoft's "make" leaves much to
X    be desired.  It is worth the extra effort to get NDMAKE if you don't
X    already have it.  Among other things, NDMAKE automatically generates
X    link response files when the link command involves so many objects
X    that the command would become longer than DOS can handle.  If you must
X    use Microsoft's or Borland's "make", you'll need to edit the makefile
X    into a form your make can use, and add instructions to generate a link
X    response file.
X
X    If you are going to be constructing the Fred Fish termlib you will need 
X    the Makefile.lib.  Copy this to your source directory too, and do not 
X    change its name.
X
X    Makefile.top in the top directory, Makefile.src in the src directory,
X    and Makefile.aux(il) in the auxil directory are for UNIX NetHack. You
X    will not need these, and you may delete them.
X
X    Makefile.pc, Makefile.msc, and Makefile.tos are for compiling non-
X    overlaid versions of NetHack, and for the atari.  You may delete these
X    too.
X
X4.  Now go to the include subdirectory to edit a couple of the header files
X    there.
X
X    First edit config.h according to the comments to match your system and
X    desired set of features.  Mostly you need to check the WIZARD option,
X    make sure the HACKDIR is set properly, and check TERMLIB and COMPRESS.
X  
X    Using Microsoft C and overlays, we've managed to enable all the special
X    features.  You may include all the neat features you want.
X
X    Also check pcconf.h, which should not need much editing (if you are
X    including termcap.uu and random.c).  If you are not including these, you
X    will need to comment out TERMLIB and/or RANDOM.  You should make doubly
X    certain that OVERLAY is defined in pcconf.h, since otherwise things will
X    compile properly but very ugly things are likely to happen wherever
X    function pointers cross overlay boundaries - the linker is a little thick
X    about that.
X
X    Commenting out the #define TERMLIB in pcconf.h to disable use of termcap
X    routines (relying on the ANSI_DEFAULT feature) will make your job a bit
X    easier.  However, you can compile with both TERMLIB and ANSI_DEFAULT
X    and simply not set your TERM variable if you do not wish to use the
X    termcap file settings.
X
X6.  If you want to change the high score list behavior, examine the top of
X    topten.c, in the src directory.  You may want to change the definitions of
X    PERSMAX, POINTSMIN, and ENTRYMAX.  I set POINTSMIN to 51 and ENTRYMAX to
X    50 to keep the size of the score list down.
X
X7.  Go to the src directory and edit the top of your Makefile.  Be sure the
X    directory you want the game installed (GAMEDIR) in actually exists.
X
X    If you elected not to use the high-quality BSD random number routines by
X    commenting out RANDOM in pcconf.h or tosconf.h, comment out (or set equal
X    to nothing) the RANDOM macro in your Makefile.
X
X    If you elected to use Fred Fish's termcap library (bundled in as
X    termcap.arc), you will have to generate termlib.lib from those sources
X    by typing "make -f makefile.lib".  You must also set the TERMLIB option
X    in Makefile.ovl to link in the resulting termlib.lib.
X
X    If you have a MASM compatible Assembler, you may want to enable the option
X    in the makefile to rebuild ovlmgr.obj, although a ready-made object file 
X    is provided for those of you without.   Before assembling ovlmgr, be sure
X    to read ovlmgr.doc as there are several options that you may or may not
X    wish to enable/disable.
X    
X    If you are recompiling after patching your sources, or if you got your
X    files from somewhere other than the official distribution, "touch
X    makedefs.c" to ensure that certain files (onames.h and pm.h) are remade,
X    lest potentially troublesome timestamps fool "make".
X
X8.  Now, enter "make45l install", and take a long siesta; your computer will
X    be occupied for a long time.  If all goes well, you will get an executable.
X
X9.  Make sure the support files -- data, rumors, cmdhelp, opthelp, help, hh,
X    history, license, and oracles (if ORACLE was #define'd) -- were copied
X    to the game directory.  If not, move them there from the auxil directory
X    yourself.  rumors can be created manually by entering "makedefs -r",
X    data by entering "makedefs -d".
X
X    If you compiled in the special levels (if STRONGHOLD was #define'd), make
X    sure castle, tower?, and possibly endgame are there, too.  They can be
X    created manually by entering "lev_comp filename.des", where filename.des
X    is the appropriate description file (found in the auxil directory).
X
X    Make sure the files NetHack.cnf and termcap also made it to your game
X    directory.  If not go to the others directory and copy NetHack.cnf and
X    termcap to your game directory.  Edit NetHack.cnf to reflect your
X    particular setup and personal preferences, by following the comments.
X
X    If you'll be running NetHack from a different subdirectory, you will
X    want to "set HACKDIR=c:\games\nethack" (or whatever drive and directory 
X    you want to use) now.  Add it to your autoexec.bat (in DOS), if you'll 
X    be playing often.
X
X11. Play NetHack.  If it works, you're done!
X
X
XNotes
X-----
X1)  First and foremost:  We have been developing with MSC 5.1 as a compiler
X    and NDmake 4.5 as a make.  NDmake is readily available on the Usenet;
X    obtaining MSC might be more of a problem.  MSC 5.0 is broken.  You *will
X    not* be able to compile the overlay version with that compiler due to
X    problems with the /Gt option allowing the CONST segment to become
X    > 64k when linking.
X    MSC 6.0 and its make utility have been used to generate an overlaid
X    NetHack.exe, however sufficient testing has not been completed at this
X    time for us to "recommend" its use.
X
X2)  Save files and bones files from previous versions will not work with
X    NetHack 3.0.  Don't bother trying to keep them.  Record (score) files
X    from before 3.0 patchlevel 7 will almost work, but you need to make one
X    change manually to them:  At the end of each line is a word or phrase
X    specifying what killed the player.  Change the string to start with the
X    words "killed by", "killed by a", or "killed by an" (whichever is
X    appropriate).  If the death was petrification, it should read "petrified
X    by" instead of "killed by".  Don't change "starvation", "quit", "escaped",
X    or "ascended".
X
X3)  To install an update of NetHack after changing something, enter "make"
X    from the src directory.  If you add, delete, or reorder monsters or
X    objects, or you change the format of saved level files, delete any save
X    and bones files.  (Trying to use such files sometimes produces amusing
X    confusions on the game's part, but usually crashes.)
X
X4)  During linking the Microsoft Overlay Linker will need temporary storage
X    space.  Make sure you have about a meg of free disk wherever you have
X    defined your temporary storage.
END_OF_FILE
if test 14761 -ne `wc -c <'Install.ovl'`; then
    echo shar: \"'Install.ovl'\" unpacked with wrong size!
fi
# end of 'Install.ovl'
fi
if test -f 'mac/MD.proj.hqx' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'mac/MD.proj.hqx'\"
else
echo shar: Extracting \"'mac/MD.proj.hqx'\" \(17003 characters\)
sed "s/^X//" >'mac/MD.proj.hqx' <<'END_OF_FILE'
X(This file must be converted with BinHex 4.0)
X
X:$@eKDf9NC@Cc,R"bEfS!8&*25NY"5%`!N!JhP#4S!*!%!3#3!cAk!!!dqJ!!!CS
X!!""G$80bD@0VCA3J4h*KF'J#!*!$39"36%0(8NBK"!eYB@YPC'9QFbj`FQpU!J#
X3!e"56dT,38K-!3#3"&J!!&"56dT,38K-!3#3"&J!!%e9!*!0!U)XCN!!N!BhP!#
X3#K8!N!-3A3pQD@jN)%e')'CKBh4[FR-#!*!$39"36%eZ4Q3K"!!+!#`!N!3L#J#
X3$PN8!!"F!+(@VNLKeUj2SGH0eJ#3(Jc-!!%0KJ!@!*!'!r!!N2m!N2m!N2m!N2,
XF!!!"@!!!F!8!!%459P)"8!!`VH`!!2m`!,B!N!83!$#Yl!!!rc!!YJ#3"4!!-+h
XX!!$r-!#f!*!&%!!`VH`!!2m`!,B!N!83!$#Yl!!!rc!!YJ#3"4!!-+hX!!$r-!#
Xf!*!&%!!`VH`!!2m`!,B!N!83!$#Yl!!!rc!!YJ#3"4!!-+hX!!$r-!#f!*!&%!!
X`VH`!!2m`!,B!N!83!$#Yl!!!rc!!YJ#3"4!!-+hX!!$r-!#f!*!&%!!`VH`!!2m
X`!,B!N!83!$#Yl!!!rc!!YJ#3"4!!-+hX!!$r-!#f!*!&%!!`VH`!!2m`!,B!N!8
X3#'eKDf9NC@CcYJ#3"4!!-+hX!!$r-!#f!*!&%!!`VH`!!2m`!,B!N!83!$#Yl!!
X!rc!!YJ#3"4""8&"-EQK04!J!!B!!N!-+#!!!"J#3!`B!N!9J!*!$F!#3"e!!N!-
XJ!"`r2!!"UI!%#Mmm!!'Tm!3H2c`!!DR`"$)r2!!"UI!%6Mmm!!'Tm!5%2c`!!DR
X`"+3r2!!"UI!%aMmm!!'Tm!6Q2c`!!DR`"air2!!"UI!!N!-%!*!("!#30!&B!!"
X`"3!!4&*@8J&3!$#Yl!!!rc!!YJ#3"4!!-+hX!!$r-!#f!*!&%!!`VH`!!2m`!,B
X!N!83!$#Yl!!!rc!!YJ#3"4!!-+hX!!$r-!#f!*!&%!!`VH`!!2m`!,B!N!83!$#
XYl!!!rc!!YJ#3"4!!-+hX!!$r-!#f!*!&%!!`VH`!!2m`!,B!N!83!$#Yl!!!rc!
X!YJ#3"4!!-+hX!!$r-!#f!*!&%!!`VH`!!2m`!,B!N!83!$#Yl!!!rc!!YJ#3"4!
X!-+hX!!$r-!#f!*!&%!!`VH`!!2m`!,B!N!83!$#Yl!!!rc!!YJ#3"4!!-+hX!!$
Xr-!#f!*!&%!!`VH`!!2m`!,B!N!83!$#Yl!!!rc!!YJ#3"4!!-+hX!!$r-!#f!*!
X&%%&38%aYDf3U!!!"J!#3!`J!!2m`!,B!N!d+!*!-*!!!-iUS!$0Qk!!cCi`!!!+
X)!*!&-J#3&N#!lNi!-fES3!!!d!!cCV3!N!8cC[!!-fEd!$0Qq!!cC[`!-fF!!$0
XR"!!cC`J!-fF-!$0R%!!cCa3!-fFB!$0R(!!cCb!!-fFN!$0R+!!cCb`!-fF`!$0
XR0!!cCcJ!-fFm!$0R3!!cCd3!-fG)!$0R6!!cCe!!-fG8!$0R@!!cCe`!-fGJ!$0
XRC!!cCfJ!-fGX!$0RF!!cCh3!-fGi!$0RI!!cCi!!-fH%!$0RL!!cL!!!-i-N!$0
Xq5!!cIK3!-hhN!$0pY!!cH0J!-h0S!$0YC!!cCm#!!!@N!!!"!!)!#3N!!3!!rj!
X)SL3#2!!D!!%!!#R968&,43!+E@&VC@4PCR-ZB`#3!`'JR-eYS*c0ED#Fc@d!'J!
X#!!!RrNe"3dJ"#NeKBdKPB@4PFR-!N!-"SLaT$U)XD3kL,'N1!"J!!3!!+GC$6dj
X'!!KMEfjQD@FZD!"c!!+L(KlhSKiHpk)H([F!'J!"!!!TeP45383!#R4bB@4cG'4
XM,QJ!N!-#SKiG4D)H(8@L(Ke&!"J!!3!!+GC(6%p#!!KRE'pLB@`ZD!"S!!1Jar@
XhS-IeYk$(pEF!&J!#!!!SB&084%N""h0dC'P[,QJ!!!1L(K[jSKiEqD)H'rN!&J!
X"!!!TeN026e)!"f0[Eh*N,QJ!!!1L*`[LSLF,iU)R#q)!'!!"!!!TeNe"3d-!#@e
XKBf0[EQBZD!!!"+)H(JDL(Ki'SKiH"J!@!!%!!#R@690%6`!(EA0NEh-ZD!!!"+)
XH(Y1L(Kl6SKiHd`!B!!%!!#R@8eP69!!)FhPcG'9Y,QJ!N!-%S*cGjD#FhH@JR0h
XP!"B!!J!!+'"858e&!3CdD@eP,QJ!D!!%S*cG0k#Fh6HJR0dh!"B!!J!!+'"'3dj
X8!3G'BfjdE#jS!!!%S*cGV+#FhDbJR0fX!"J!!J!!+'"69%4%!3K6G'4NC@BZD!#
X3!`5JR0h9S*cGeD#FhG8!'!!#!!!SB&084%`"#&0dC'aTBLjS!*!$"+$(p0QJar6
XCS-Idf3!B!!)!!#KJ8e4553%)8h4bD@jR,QJ!N!-%S*c03k#Fc81JR-e$!"J!!J!
X!+!03390$!3K`BA0MB@`ZD!#3!`5JR-BRS*c'*k#FaLF!'J!#!!!S!e&958-"#e&
XeD@0VC(*KGbjS!!!%S*c&jU#FaHDJR-AQ!"J!!J!!+!0'6dj8!3P'Efjd6@Gb,QJ
X!!!5JR-A9S*c&eD#FaG8!'J!#!!!S!d9@48i"#N9fC@jd6@Gb,QJ!N!-%S*c'Hk#
XFaRZJR-Cl!"S!!J!!+!0A58j%!3YAD@jNEhG0Ch)ZD!!!"+#FaJ5JR-B%S*c'"!!
XB!!)!!#J$689193%*6@9ZG8eRFLjS!!!%S*c'Ak#FaPqJR-CI!"`!!J!!+!069%4
X'!3a6G'4'D@aP8'YR,QJ!E`!%S*c'2k#FaMqJR-Br!"`!!J!!+!0648G0!3a6C@G
XYC@jd6'4b,QJ!E`!%S*c'ED#FaQfJR-CY!"`!!J!!+!086dp-!3e8EfpXBQpi9A4
XTE#jS!!!%S*c'$U#FaJkJR-B1!"J!!J!!+!028e98!3K28e9dD@`ZD!"T!!5JR-A
X$S*c&`k#FaF-!'J!#!!!S!d4*38`"#d4TB@a[CdeRFLjS!!!%S*c&fU#FaGUJR-A
XD!"J!!J!!+!0'58a&!3P'D@aP6@Gb,QJ!!!5JR-AXS*c&l+#FaH`!&!!#!!!S!dK
X'8bi""8K'8bjS!!!%S,%p&D#a24@JX6d9!"B!!J!!+!0$6da2!3G$Efa[FLjS!!!
X%S*c'+k#FaLZJR-BV!"`!!J!!+!054902!3e5CA0[GA*MC8eRFLjS!!!%SLQSeU)
XTU0DL+DM@!"J!!3!!+GC&@&4&!!KPH(4PFQiZD!"R!!5L(KZDSKiEQU)H'jS!'J!
X"!!!TeNe"3d%!#NeKBd&XCA*d,QJ!,J!"SKiHBD)H(Q'L(KjK!"S!!3!!+GC349*
X0!!T`CA*YEfjcG#jS!#i!!U)H(DUL(KfUSKiGUJ!B!!%!!#R@68p133!*E@pZBA4
XdDbjS!!!#SKiGiU)H(H+L(KhL!"J!!3!!+GC06dj'!!PYEfjQE'&R,QJ!!!'L(Ki
XZSKiH,U)H(Li!'J!"!!!TeNp#5N-!#QpLDQ0XBA0c,QJ!,J!"S*c&Sk#FaD1JR-@
XM!"`!!J!!+!0$6dj8!!a$EfjdFQpX6@Gb,QJ!!)!!"J3!N!2m!J!*#3!"!!$rN!L
XL(MID!"B!!3!!+G906dj6!!GYEfjcG#jM!!!"S*c0ED#Fc@fJR-eY!"S!!J!!*rj
X0380)!3T0B@0)C@&NCA*c!#i!!D)XD3kL,'N1SLaT$J!B!!%!!#R@3dp14J!)Bfp
XZCQPR,QJ!F`!#SKiHpk)H([HL(Klh!"S!!3!!+GC88N&%!!TdFQ&NFh4NBbjS!#i
X!!U)H(8@L(Ke&SKiG43!B!!%!!#R@4da23J!)Cfa[BQ&X,QJ!D!!$S-IeYk$(pEH
XJar@h!"B!!J!!+'"69%4*!3GcG'4TEbjS!!!$SKiEqD)H'rQL(K[j!"B!!3!!+GC
X$6dp5!!GMEfpbC#jS!!!$SLF,iU)R#q+L*`[L!"J!!3!!+GC0380$!!PYB@0MEfj
XQ,QJ!!!5L(Ki'SKiH"U)H(JB!&J!"!!!TeNe64%m!"fecC'pc,QJ!!!5L(Kl6SKi
XHdk)H(Y-!'!!"!!!TeP0C8e3!#(0jFh4PE5jS!*!$"+#FhH@JR0hPS*cGj3!@!!)
X!!#KJ9%P043%'G'PYC5jS!'J!"+#Fh6HJR0dhS*cG0`!@!!)!!#KJ4N019!%(4Q0
XZG'`ZD!!!"+#FhDbJR0fXS*cGV!!B!!)!!#KJ8e4%4!%)8h4NC'9Q,QJ!N!-%S*c
XGeD#FhG@JR0h9!"J!!J!!+'"69%4-!3K6G'4XD@)ZD!#3!`5Jar6CS-IdfD$(p0N
X!'!!#!!!SB&088NN"#&0dFQPZCbjS!*!$"+#Fc81JR-e$S*c03`!B!!)!!#J$8%&
X63`%)F'&cBf&X,QJ!N!-%S*c'*k#FaLHJR-BR!"S!!J!!+!0498P$!3Y4G@PMDf4
XbBAFZD!!!"+#FaHDJR-AQS*c&jJ!B!!)!!#J$4Np19!%*4QpZG%eRFLjS!!!%S*c
X&eD#FaG@JR-A9!"S!!J!!+!0&9N91!3T&GQ9ZG%eRFLjS!*!$"+#FaRZJR-ClS*c
X'H`!D!!)!!#J$9dP14!%,9fPZC'ph6@Gb,QJ!!!5JR-B%S*c'"+#FaJ3!'!!#!!!
XS!de&6P8"#8ePER90Ch)ZD!!!"+#FaPqJR-CIS*c'A`!F!!)!!#J$8e4%4J%-8h4
XN4QPXC9"VCbjS!*!$"+#FaMqJR-BrS*c'2`!F!!)!!#J$8d9(63%-8f9RE@9ZG%a
XNFLjS!*!$"+#FaQfJR-CYS*c'E3!F!!)!!#J$9%p26!%09'p[E'*[H&9dD@`ZD!!
X!"+#FaJkJR-B1S*c'$J!B!!)!!#J$6e099!%)6e09G'PX,QJ!D3!%S*c&`k#FaF1
XJR-A$!"S!!J!!+!0%58&-!3Y%D@&XEfG0Ch)ZD!!!"+#FaGUJR-ADS*c&fJ!B!!)
X!!#J$4NP-43%*4QPXC8eRFLjS!!!%S*c&l+#FaHbJR-AX!"3!!J!!+!0)4P-Z!39
X)4P-ZD!!!"+#a24@JX6d9S,%p&3!@!!)!!#J$3dp-6`%(3fpXEh)ZD!!!"+#FaLZ
XJR-BVS*c'+`!F!!)!!#J$8N966`%08Q9cEh9bBf90Ch)ZD!!!"+)TU0DL+DM@SLQ
XSeJ!B!!%!!#R@49K843!)CAKdCA*Z,QJ!C`!%SKiEQU)H'jUL(KZD!"S!!3!!+GC
X0380"!!T0B@0"E'9bG#jS!#i!!D)H(Q'L(KjKSKiHB3!D!!%!!#R@8%9563!+F'9
XbE@pZFh3ZD!!Z!!+L(KfUSKiGUU)H(DS!'!!"!!!TeNe26N%!#@e[EQ&dG'XZD!!
X!!U)H(H+L(KhLSKiGiJ!B!!%!!#R@68p14J!*E@pZCQaKCbjS!!!"SKiH!D)H(J'
XL(Ki"!"J!!3!!+GC06dj6!!KYEfjcH@dZD!#3!`'L(K`hSKiF0k)H($F!&J!"!!!
XTeN965%X!"Q9cD'XZD!"S!!'L(Kp&SKiI4D)H(d8!&J!"!!!TePC"98`!"hCKG@a
Xd,QJ!!!'L(K``SKiF-+)H($!!&J!"!!!TeN938NN!"Q9`FQNZD!#3!`'L(K[$SKi
XE`k)H'm-!&J!"!!!TeN026%m!"f0[E'pb,QJ!JJ!&F!#3!rJ#!!N*!!%!!2q3#+)
XN!Zd!'!!"!!!Te8p#5N8!#@pLDQ9MG(-ZB`!!!D#Fc@fJR-eYS*c0E3!D!!)!!#I
Xq68&$5!%+6@&M5'9KC'9bF`!Z!!'L,'N1SLaT$U)XD3i!'!!"!!!TeN026NB!#'0
X[EQCTCbjS!(-!!U)H([HL(KlhSKiHp`!D!!%!!#R@9&*"4!!+G(*KC(0dC'-ZD!!
XZ!!+L(Ke&SKiG4D)H(88!'!!"!!!TeNG-6d)!#'GXEf*KE#jS!'J!!k$(pEHJar@
XhS-IeY`!@!!)!!#KJ8e4%53%(Fh4ND@mZD!!!!k)H'rQL(K[jSKiEq3!@!!%!!#R
X@3dp28J!(Bfp[FQ3ZD!!!!k)R#q+L*`[LSLF,iJ!B!!%!!#R@68&$3`!*E@&MBfp
XZCLjS!!!%SKiH"U)H(JDL(Ki'!"B!!3!!+GC08d42!!GYFf4[FbjS!!!%SKiHdk)
XH(Y1L(Kl6!"J!!3!!+GC6@908!!KcHA0dC@dZD!#3!`5JR0hPS*cGjD#FhH8!&J!
X#!!!SB&4*688""R4TE@8ZD!"S!!5JR0dhS*cG0k#Fh6F!&J!#!!!SB%C$6P3""dC
XMER4X,QJ!!!5JR0fXS*cGV+#FhD`!'!!#!!!SB&084%3"#&0dC'4PCLjS!*!$"+#
XFhG@JR0h9S*cGe3!B!!)!!#KJ8e4%6!%)8h4NE'PL,QJ!N!-%S-IdfD$(p0QJar6
XC!"J!!J!!+'"69&**!3K6G(*TEQFZD!#3!`5JR-e$S*c03k#Fc8-!'!!#!!!S!e"
X"8d-"#("KFf0KE#jS!*!$"+#FaLHJR-BRS*c'*`!D!!)!!#J$899*3`%,8A9TBfY
XNFQ&h,QJ!!!5JR-AQS*c&jU#FaHB!'!!#!!!S!dC26P3"#8C[ER40Ch)ZD!!!"+#
XFaG@JR-A9S*c&e3!D!!)!!#J$49C&6J%+4ACPER40Ch)ZD!#3!`5JR-ClS*c'Hk#
XFaRX!'J!#!!!S!eG*6N3"#eGTEQ4[GdeRFLjS!!!%S*c'"+#FaJ5JR-B%!"J!!J!
X!+!0048j9!3P0C@je6@Gb,QJ!!!5JR-CIS*c'Ak#FaPm!(!!#!!!S!e084%B"$&0
XdC%CTE'93DfFZD!#3!`5JR-BrS*c'2k#FaMm!(!!#!!!S!e0&4dd"$&0PCfePER4
X-C()ZD!#3!`5JR-CYS*c'ED#FaQd!(!!#!!!S!e426d`"$94[EfaLEhK9G'PX,QJ
X!!!5JR-B1S*c'$U#FaJi!'!!#!!!S!dp6993"#%p69A4TE#jS!'N!"+#FaF1JR-A
X$S*c&``!D!!)!!#J$4%P"6!%,4'PKE'pR6@Gb,QJ!!!5JR-ADS*c&fU#FaGS!'!!
X#!!!S!dC*6%8"#8CTE'90Ch)ZD!!!"+#FaHbJR-AXS*c&l!!8!!)!!#J$5%C6,J%
X&5%C6,QJ!!!5JX6d9S,%p&D#a248!&J!#!!!S!d026%m""d0[E'pb,QJ!!!5JR-B
XVS*c'+k#FaLX!(!!#!!!S!e*&8dm"$9*PFfpeFQ0P6@Gb,QJ!!!5L+DM@SLQSeU)
XTU0B!'!!"!!!TeN9B9%8!#'9iG'9bELjS!'F!"+)H'jUL(KZDSKiEQJ!D!!%!!#R
X@68&$33!+6@&M3@aPFR3ZD!!Z!!'L(KiESKiH'k)H(KX!&!!"!!!TeNp#5Li!"@p
XLDLjS!!!"SKiH,U)H(LkL(KiZ!"S!!3!!+GC23NT$!!T[BQTME'&cFbjS!#i!!D)
XH(QQL(KjTSKiHD3!@!!%!!#R@8&*28!!'F(*[F#jS!(-!!D)H'm1L(K[$SKiE``!
X@!!%!!#R@3dp-6`!(BfpXEh)ZD!!!!B)!"0`!N!2d!J!*#3!"!!$rN!LL(MXi!"B
X!!3!!+G9338j*!!G`B@jTBbjM!!!"S*c0ED#Fc@fJR-eY!"S!!J!!*rj0380)!3T
X0B@0)C@&NCA*c!#i!!D)XD3kL,'N1SLaT$J!B!!%!!#R@3dp14J!)BfpZCQPR,QJ
X!F`!#SKiHpk)H([HL(Klh!"S!!3!!+GC88N&%!!TdFQ&NFh4NBbjS!#i!!U)H(8@
XL(Ke&SKiG43!B!!%!!#R@4da23J!)Cfa[BQ&X,QJ!D!!$S-IeYk$(pEHJar@h!"B
X!!J!!+'"69%4*!3GcG'4TEbjS!!!$SKiEqD)H'rQL(K[j!"B!!3!!+GC$6dp5!!G
XMEfpbC#jS!!!$SLF,iU)R#q+L*`[L!"J!!3!!+GC0380$!!PYB@0MEfjQ,QJ!!!5
XL(Ki'SKiH"U)H(JB!&J!"!!!TeNe64%m!"fecC'pc,QJ!!!5L(Kl6SKiHdk)H(Y-
X!'!!"!!!TeP0C8e3!#(0jFh4PE5jS!*!$"+#FhH@JR0hPS*cGj3!@!!)!!#KJ9%P
X043%'G'PYC5jS!'J!"+#Fh6HJR0dhS*cG0`!@!!)!!#KJ4N019!%(4Q0ZG'`ZD!!
X!"+#FhDbJR0fXS*cGV!!B!!)!!#KJ8e4%4!%)8h4NC'9Q,QJ!N!-%S*cGeD#FhG@
XJR0h9!"J!!J!!+'"69%4-!3K6G'4XD@)ZD!#3!`5Jar6CS-IdfD$(p0N!'!!#!!!
XSB&088NN"#&0dFQPZCbjS!*!$"+#Fc81JR-e$S*c03`!B!!)!!#J$8%&63`%)F'&
XcBf&X,QJ!N!-%S*c'*k#FaLHJR-BR!"S!!J!!+!0498P$!3Y4G@PMDf4bBAFZD!!
X!"+#FaHDJR-AQS*c&jJ!B!!)!!#J$4Np19!%*4QpZG%eRFLjS!!!%S*c&eD#FaG@
XJR-A9!"S!!J!!+!0&9N91!3T&GQ9ZG%eRFLjS!*!$"+#FaRZJR-ClS*c'H`!D!!)
X!!#J$9dP14!%,9fPZC'ph6@Gb,QJ!!!5JR-B%S*c'"+#FaJ3!'!!#!!!S!de&6P8
X"#8ePER90Ch)ZD!!!"+#FaPqJR-CIS*c'A`!F!!)!!#J$8e4%4J%-8h4N4QPXC9"
XVCbjS!*!$"+#FaMqJR-BrS*c'2`!F!!)!!#J$8d9(63%-8f9RE@9ZG%aNFLjS!*!
X$"+#FaQfJR-CYS*c'E3!F!!)!!#J$9%p26!%09'p[E'*[H&9dD@`ZD!!!"+#FaJk
XJR-B1S*c'$J!B!!)!!#J$6e099!%)6e09G'PX,QJ!D3!%S*c&`k#FaF1JR-A$!"S
X!!J!!+!0%58&-!3Y%D@&XEfG0Ch)ZD!!!"+#FaGUJR-ADS*c&fJ!B!!)!!#J$4NP
X-43%*4QPXC8eRFLjS!!!%S*c&l+#FaHbJR-AX!"3!!J!!+!0)4P-Z!39)4P-ZD!!
X!"+#a24@JX6d9S,%p&3!@!!)!!#J$3dp-6`%(3fpXEh)ZD!!!"+#FaLZJR-BVS*c
X'+`!F!!)!!#J$8N966`%08Q9cEh9bBf90Ch)ZD!!!"+)TU0DL+DM@SLQSeJ!B!!%
X!!#R@49K843!)CAKdCA*Z,QJ!C`!%SKiEQU)H'jUL(KZD!"S!!3!!+GC0380"!!T
X0B@0"E'9bG#jS!#jMD)!!!$!!N!2`!!!*#3!"!!$rN!LJb!28!"3!!J!!+&P"6P0
X*!!4"6P0*!#k!!!!`!*!$l!!!#3N!!3!!rj!)S-J0[!!8!!)!!#KC98j*@!!%G@j
XTH!!ZJ!!!0!#3!qJ!!!N*!!%!!2q3#+#Z`J)!'!!#!!!S"8e"3e3!#%eKBe4bBA"
Xc!!##!!6F!*!$j!)!#3N!!3!!rj!)SKiPl`!@!!%!!#R938a-6`!(B@aXEf-ZB`!
X!!D#Fc@fJR-eYS*c0E3!D!!)!!#Iq68&$5!%+6@&M5'9KC'9bF`!Z!!'L,'N1SLa
XT$U)XD3i!'!!"!!!TeN026NB!#'0[EQCTCbjS!(-!!U)H([HL(KlhSKiHp`!D!!%
X!!#R@9&*"4!!+G(*KC(0dC'-ZD!!Z!!+L(Ke&SKiG4D)H(88!'!!"!!!TeNG-6d)
X!#'GXEf*KE#jS!'J!!k$(pEHJar@hS-IeY`!@!!)!!#KJ8e4%53%(Fh4ND@mZD!!
X!!k)H'rQL(K[jSKiEq3!@!!%!!#R@3dp28J!(Bfp[FQ3ZD!!!!k)R#q+L*`[LSLF
X,iJ!B!!%!!#R@68&$3`!*E@&MBfpZCLjS!!!%SKiH"U)H(JDL(Ki'!"B!!3!!+GC
X08d42!!GYFf4[FbjS!!!%SKiHdk)H(Y1L(Kl6!"J!!3!!+GC6@908!!KcHA0dC@d
XZD!#3!`5JR0hPS*cGjD#FhH8!&J!#!!!SB&4*688""R4TE@8ZD!"S!!5JR0dhS*c
XG0k#Fh6F!&J!#!!!SB%C$6P3""dCMER4X,QJ!!!5JR0fXS*cGV+#FhD`!'!!#!!!
XSB&084%3"#&0dC'4PCLjS!*!$"+#FhG@JR0h9S*cGe3!B!!)!!#KJ8e4%6!%)8h4
XNE'PL,QJ!N!-%S-IdfD$(p0QJar6C!"J!!J!!+'"69&**!3K6G(*TEQFZD!#3!`5
XJR-e$S*c03k#Fc8-!'!!#!!!S!e""8d-"#("KFf0KE#jS!*!$"+#FaLHJR-BRS*c
X'*`!D!!)!!#J$899*3`%,8A9TBfYNFQ&h,QJ!!!5JR-AQS*c&jU#FaHB!'!!#!!!
XS!dC26P3"#8C[ER40Ch)ZD!!!"+#FaG@JR-A9S*c&e3!D!!)!!#J$49C&6J%+4AC
XPER40Ch)ZD!#3!`5JR-ClS*c'Hk#FaRX!'J!#!!!S!eG*6N3"#eGTEQ4[GdeRFLj
XS!!!%S*c'"+#FaJ5JR-B%!"J!!J!!+!0048j9!3P0C@je6@Gb,QJ!!!5JR-CIS*c
X'Ak#FaPm!(!!#!!!S!e084%B"$&0dC%CTE'93DfFZD!#3!`5JR-BrS*c'2k#FaMm
X!(!!#!!!S!e0&4dd"$&0PCfePER4-C()ZD!#3!`5JR-CYS*c'ED#FaQd!(!!#!!!
XS!e426d`"$94[EfaLEhK9G'PX,QJ!!!5JR-B1S*c'$U#FaJi!'!!#!!!S!dp6993
X"#%p69A4TE#jS!'N!"+#FaF1JR-A$S*c&``!D!!)!!#J$4%P"6!%,4'PKE'pR6@G
Xb,QJ!!!5JR-ADS*c&fU#FaGS!'!!#!!!S!dC*6%8"#8CTE'90Ch)ZD!!!"+#FaHb
XJR-AXS*c&l!!8!!)!!#J$5%C6,J%&5%C6,QJ!!!5JX6d9S,%p&D#a248!&J!#!!!
XS!d026%m""d0[E'pb,QJ!!!5JR-BVS*c'+k#FaLX!(!!#!!!S!e*&8dm"$9*PFfp
XeFQ0P6@Gb,QJ!!!5L+DM@SLQSeU)TU0B!'!!"!!!TeN9B9%8!#'9iG'9bELjS!'F
X!"+)H'jUL(KZDSKiEQJ!D!!%!!#R@68&$33!+6@&M3@aPFR3ZD!!ZS*b!!!6F!*!
X$i!)!#3N!!3!!rj!)SKj,$3!B!!%!!#R968&$4J!*E@&MCQPXC5jM!!!"S*c0ED#
XFc@fJR-eY!"S!!J!!*rj0380)!3T0B@0)C@&NCA*c!#i!!D)XD3kL,'N1SLaT$J!
XB!!%!!#R@3dp14J!)BfpZCQPR,QJ!F`!#SKiHpk)H([HL(Klh!"S!!3!!+GC88N&
X%!!TdFQ&NFh4NBbjS!#i!!U)H(8@L(Ke&SKiG43!B!!%!!#R@4da23J!)Cfa[BQ&
XX,QJ!D!!$S-IeYk$(pEHJar@h!"B!!J!!+'"69%4*!3GcG'4TEbjS!!!$SKiEqD)
XH'rQL(K[j!"B!!3!!+GC$6dp5!!GMEfpbC#jS!!!$SLF,iU)R#q+L*`[L!"J!!3!
X!+GC0380$!!PYB@0MEfjQ,QJ!!!5L(Ki'SKiH"U)H(JB!&J!"!!!TeNe64%m!"fe
XcC'pc,QJ!!!5L(Kl6SKiHdk)H(Y-!'!!"!!!TeP0C8e3!#(0jFh4PE5jS!*!$"+#
XFhH@JR0hPS*cGj3!@!!)!!#KJ9%P043%'G'PYC5jS!'J!"+#Fh6HJR0dhS*cG0`!
X@!!)!!#KJ4N019!%(4Q0ZG'`ZD!!!"+#FhDbJR0fXS*cGV!!B!!)!!#KJ8e4%4!%
X)8h4NC'9Q,QJ!N!-%S*cGeD#FhG@JR0h9!"J!!J!!+'"69%4-!3K6G'4XD@)ZD!#
X3!`5Jar6CS-IdfD$(p0N!'!!#!!!SB&088NN"#&0dFQPZCbjS!*!$"+#Fc81JR-e
X$S*c03`!B!!)!!#J$8%&63`%)F'&cBf&X,QJ!N!-%S*c'*k#FaLHJR-BR!"S!!J!
X!+!0498P$!3Y4G@PMDf4bBAFZD!!!"+#FaHDJR-AQS*c&jJ!B!!)!!#J$4Np19!%
X*4QpZG%eRFLjS!!!%S*c&eD#FaG@JR-A9!"S!!J!!+!0&9N91!3T&GQ9ZG%eRFLj
XS!*!$"+#FaRZJR-ClS*c'H`!D!!)!!#J$9dP14!%,9fPZC'ph6@Gb,QJ!!!5JR-B
X%S*c'"+#FaJ3!'!!#!!!S!de&6P8"#8ePER90Ch)ZD!!!"+#FaPqJR-CIS*c'A`!
XF!!)!!#J$8e4%4J%-8h4N4QPXC9"VCbjS!*!$"+#FaMqJR-BrS*c'2`!F!!)!!#J
X$8d9(63%-8f9RE@9ZG%aNFLjS!*!$"+#FaQfJR-CYS*c'E3!F!!)!!#J$9%p26!%
X09'p[E'*[H&9dD@`ZD!!!"+#FaJkJR-B1S*c'$J!B!!)!!#J$6e099!%)6e09G'P
XX,QJ!D3!%S*c&`k#FaF1JR-A$!"S!!J!!+!0%58&-!3Y%D@&XEfG0Ch)ZD!!!"+#
XFaGUJR-ADS*c&fJ!B!!)!!#J$4NP-43%*4QPXC8eRFLjS!!!%S*c&l+#FaHbJR-A
XX!"3!!J!!+!0)4P-Z!39)4P-ZD!!!"+#a24@JX6d9S,%p&3!@!!)!!#J$3dp-6`%
X(3fpXEh)ZD!!!"+#FaLZJR-BVS*c'+`!F!!)!!#J$8N966`%08Q9cEh9bBf90Ch)
XZD!!!"+)TU0DL+DM@SLQSeJ!B!!%!!#R@49K843!)CAKdCA*Z,QJ!C`!%SKiEQU)
XH'jUL(KZD!"S!!3!!+GC0380"!!T0B@0"E'9bG#jS!#k!!!!S!*!$h!#3#8B!!3#
X3"4S!N!-"!!J%E@&TEL#3!`!!!SJ!"+#FaMqJR-BrS*c'2`!F!!)!!#J$8d9(63%
X-8f9RE@9ZG%aNFLjS!*!$"+#FaQfJR-CYS*c'E3!F!!)!!#J$9%p26!%09'p[E'*
X[H&9dD@`ZD!!!"+#FaJkJR-B1S*c'$J!B!!)!!#J$6e099!%)6e09G'PX,QJ!D3!
X%S*c&`k#FaF1JR-A$!"S!!J!!+!0%58&-!3Y%D@&XEfG0Ch)ZD!!!"+#FaGUJR-A
XDS*c&fJ!B!!)!!#J$4NP-43%*4QPXC8eRFLjS!!!%S*c&l+#FaHbJR-AX!"3!!J!
X!+!0)4P-Z!39)4P-ZD!!!"+#a24@JX6d9S,%p&3!@!!)!!#J$3dp-6`%(3fpXEh)
XZD!!!"+#FaLZJR-BVS*c'+`!F!!)!!#J$8N966`%08Q9cEh9bBf90Ch)ZD!!!"+)
XTU0DL+DM@SLQSeJ!B!!%!!#R@49K843!)CAKdCA*Z,QJ!C`!%SKiEQU)H'jUL(KZ
XD!"S!!3!!+GC0380"!!T0B@0"E'9bG#jS!#jMD)!!!$!!N!2`!!!*#3!"!!$rN!L
XJb!28!"3!!J!!+&P"6P0*!!4"6P0*!#k!!!!`!*!$l!!!#3N!!3!!rj!)S-J0[!!
X8!!)!!#KC98j*@!!%G@jTH!!ZJ!!!0!#3!qJ!!!N*!!%!!2q3#+#Z`J)!'!!#!!!
XS"8e"3e3!#%eKBe4bBA"c!*!&D!#3!``+6%aKFh4$E'PMDb#!!!!S!!!'D!!!"Q`
X!"J!!!QJ!!3!'!!!,+J!"!*!$#!C-3faTBfXJJ!!!,!!!"Q3!N!8'!!!"L!!"!!B
X!!!UU!!%!N!--#%a6CA4$C@aX)*!$!*!$$!!!"Q!!!!CN!!!#3!!!!3#3"'!!N"-
X%!*!H5-!"!`!(!*!$r!#3!f!!N"-%!*!H5-!"!`!)!*!$q!#3!f!!N"-%!*!J!3-
X!"J#3!r3!N!0J!*!6"!#3(NM!!3-!N!A`!*!$B!#3%`3!N"jNFJ)%!!%!N!2X!*!
X$B!#3%`3!N"m#!3-!!J#3!qJ!N!0J!*!6"!#3(Q4b!3-!!`#3!q3!N!0J!*!6"!#
X3(Lf-!3-!"3#3!q!!N!0J!*!6"!#3(L!)!3-!"!!!"c!!N!-+!*!Eh%*i#NUGcNk
Xk!&41ZJ"Q,$a*6N4B6VS&ENIkrmSQM%IkrmJQK%kk!'C1ZJ+S6VS'*Nkk!0a1ZJ#
XS3QG)H2rr5'm!"%KA2c`!!5)krl*1ZJ1#6V83!#"Y!'a1N!#Tp&(i#Pjq!%kk![T
XR#%U3!'F%#0!!"Nje)$J+H'B-,$aD6dj&6VS&"#!-4rVrCLD!6R9CMbmm4%&838*
XRUD!J9b"3)RJ*##!0N!#*4rVr6LD!S#kTSb`m8e458dkk"-j(q[mf*S`X2%4548a
X1ZJ5q)%`J"'F-6VS"YJ5!!*!$$'Ed6[S&DNj@rpT"q!N3)Np`)+!ZF!(3%9S4dX"
X"qJ!5F!@J,P@25'm!!UQA6Pj1G5jbFh*M!%Ik"HiQZ!Tm,cJ+J'B#@)p1G8MRrrJ
Xq,`!m8IJ+AQ!+@Bm[#+QP)"qJ3%kk!L4R4%IkrVJQL#!3CqBL3%U4CLi!%!$!,$a
X$8N9-6VS%,'FN2Lm!2#"-)!4R$%kk!(J%J!#3!`aQp%kk"0"1ZJ'F60mIrdjeF!q
XTb8kk"Aa1ZJ!)6VS%p%je)(J+l+!P)&!L5#)BB!T"k!!)G!'%'0$#8FRrp*!!L0#
X*CJ*1G5)!S#iJH!VX)!'J*#*36qrr`#"23UJ!%M&T!!3!&U!93UG)D3!-)%qTmM)
XB6VS"RL4BeF%d'#)BEM*R&P*"C`C53@FD6R8b+2rd6VS"Z0056R8b+2rd6VS"L00
X56R8b+2rd6VS"MY1Urrj1G8kk!8ib+3!-5QN!#QBF9%*U$("MUFP53QEide*1G8k
Xk!965U3!1de*1G8kk!@c5U3!18N*Q"0056R9$p4!#[P&Qe!aK2caQcP*#CJB+DJ!
XArrib)9K")RVpI0+4NNV68Nje-KK1ZJ%14I83!0AB0"KR-L)BEL4R$P*"CK3b+2r
Xd6VS"&Q!B-LMrp%kk!1KJ$M)Srr41ZJ$`B!C1ZJ%3dSh6NNje)KK1ZJ%%de*1G5"
Xkr4!J1[d35UJ!!'FS-LJ!+'FL*#J!'&P#3qd!%02S!!69@6,m2ca#'4,S!$dbr+R
X`88&Ql%(S!%!%J!#3!d"QaNje)(Vmc#!kr-abrh3!5UJ!!'FB[LJ!2@B50LJ!+'F
X-e%1bU!!%C33L+!!%3HJ!3!5!!*!$3'E@)(VmUL"3"%%!%$$"jNS``Nje@Bm[2%0
X24%8r"kQJ)&p3q!TH)!K1G5Kkr(BLG"J!Nq`!102-6R8SH[aH`[`!3#)d'"JSH[a
XQdT41G5Kkr%V#r!"!)M3B#*+kr%j1G5Kkr$M#r!"!)M3B%0+kr$K1G5Kkr#E#r!"
X!)M3B"!D"!*!$%%je6VVrSM)T!!a+D3!+CJC1Z[qiB!41Z[r@dUN!$Nje)&mb'$3
XBX&KAbIrk5N*RrNl`)2`JAc)B0"L`Q&I*rrT+3QIq6[!JqL"I-KJd',"#EJU3!%&
XY"Y"!3I!!!M!3Crj1m!!!)#m!"#p"!!3L,`!),em!"%MR2!!N!#B"5%,%`bJ!+J&
X)4FM&e%4)3T!$`-(3JNcI!$`L(dje)#m!"#p"!!3L,`!),em!"%MR-3"1ZJ#F60m
X!M#)I6R8J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!(`J!8cI!)`L(dje)#m!"#p"!!3
XL,`!),em!"%MR-3"1ZJ!X60m!M#)I6R8J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!!`
XJ!8cI!)`L(dje5S"U(%U"DJa%J%5"6VS!)%5"6R9%J%kk!"C%J%5"6R9+J@S+4)&
X1ZJ!'4)"1G5im!!$rrl+!B`BL!(!!6R@`Kf)-J-&)3$)!3N")3%jeXSGL'Li!3N"
X)3)$"5%")4ci!5%H1`6!(5%Fb"dje*!!Q!H+)iSQbKf,iJ-(!Kc)$`X!Z!dK(cX"
X)4p+(C3L5JQ)%4)&1G90!B14q!&(i#PjCMbm'2`HTS#!IC`!!VLC!@Bm[#kQP*Km
XJ#bJ$8NI[4e*(1JGJ&PQ2,`Br"kQJ)"pR!!#)8NF'K!!!Irj9Mbm!UDB`(`J!!!9
XQh&$i#Pl24CT(CK`J!k"!,`ZTSL!6C`!!@Lm,UC)S8b",S#P`!8je)!5K(L!)C`!
X!3LK),`ZTSL!6C`!!0L",)!0J'&Q2,`Br"kQJ)"pR!!!L8NFJ3#!m!!"rrLm))&!
XL60R!S#kTSe(0rpUCa#C-F!&1G5",5N9Q"+!M6R@J(dje-MbTm%2kqXC1ZJ"S-Mb
XTmN2kqbK1ZJ"F-MbTmd2kqaa1ZJ"3-MbTp%2kq`K1qJ"%,`JJE`!),fJ!!J!))(J
X#TR!-d*!!X,J#UQBN6VS!C$)mUI"1ZJ"%-MbTmNkk!$`b2+Rc6VS!0$)mUI41ZJ!
XX)&p1G6!"S8BN5(!-5RJ#MQS%T4jJ!U%H-!'J4c$m6VNJb6$m6[NJbNje-!'K4L*
XS!!LJ(c!")%QJ4dje!*!%6R8J1[riC`3J3%+3!%je!!!"!*!$0IS!!$6k!!!"QJ!
XNEb!$8!#3!a`"NJ!15%&65!#3!hTD6dj&!*!$KNY*6N3!N!159da23`#3!jj*6N4
XB!*!$UN024%8!!`#f4%&833#3!qC69&*6!*!$mN4548`!N!2q8eP08`!!!3T$6NC
X(!!!"&P0*@N8!!!%L3e*&6!!"!5j%3P9(!!%"4PK6@8d!!3&H!!%!N!FQl%`!!2r
Xr!!!(IJ!Ql0J!!2rr!!!$p!!QlG!!!2rr!!!(A!!Ql(3!!2rr!!!VJJ!QlD`!!2r
Xr!!!&AJ!QlI`!!rrr!!!&`J#3"36rr`!!"FS!N!8"rrm8!#h'!#EYi!!!rrm!!!A
X5!#EXh!!!rrm!!!A@!#EXY!!!rrm!!!AD!#EYe!!!rrm!!!AH!#EXe!!#rrm!!!G
X`!#EXl2rr!!B!!!93!#EYj!!$rrm!!!AL!*!&"2rr!!!&jJ#3"32rr`!!"HS!N!8
X%rrm!!!AZ!*!&!rrr!!!&mJ#3"36rr`!!"IB!N!3&E@YKD'`"-N@Q!:
END_OF_FILE
if test 17003 -ne `wc -c <'mac/MD.proj.hqx'`; then
    echo shar: \"'mac/MD.proj.hqx'\" unpacked with wrong size!
fi
# end of 'mac/MD.proj.hqx'
fi
if test -f 'others/exesmurf.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'others/exesmurf.c'\"
else
echo shar: Extracting \"'others/exesmurf.c'\" \(5158 characters\)
sed "s/^X//" >'others/exesmurf.c' <<'END_OF_FILE'
X/******************************************************************************
X*									      *
X*			  EXE header list and modify			      *
X*									      *
X*			 by Pierre Martineau, 90/05/20			      *
X*									      *
X*				 Version 1.1				      *
X*									      *
X*			  Placed in the public domain			      *
X*									      *
X******************************************************************************/
X
X#include <string.h>
X#include <stdlib.h>
X#include <stdio.h>
X#include <math.h>
X
X#define BOOLEAN int
X#define TRUE	1
X#define FALSE	0
X
XFILE *wrkfile;
Xlong min, max, stk;
XBOOLEAN listflg = FALSE;
XBOOLEAN minflg = FALSE;
XBOOLEAN maxflg = FALSE;
XBOOLEAN stkflg = FALSE;
X
Xstruct exehdr {
Xunsigned signature;
Xunsigned mod512;
Xunsigned pages;
Xunsigned relocitems;
Xunsigned headerparas;
Xunsigned minalloc;
Xunsigned maxalloc;
Xunsigned ss;
Xunsigned sp;
Xunsigned checksum;
Xunsigned ip;
Xunsigned cs;
Xunsigned relocptr;
Xunsigned ovlnum;
X} exehdr_area;
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
Xchar *dot, *slash;
Xchar fname[128];
Xchar *args;
Xint i;
Xlong offset, oldstk;
X
X    printf("EXE list and modify V1.1, by Pierre Martineau, 90/05/20.\n");
X    printf("This program is public domain and may be freely distributed.\n");
X
X    if ((argc < 2) || (argc > 6)) {
X	usage();
X	return;
X    }
X
X/*  Extract filename from first argumemt  */
X
X    strcpy(fname, argv[1]);
X    dot = strrchr(fname, '.');
X    slash = strrchr(fname, '\\');
X    if ((dot == NULL) || (slash > dot))
X	strcat(fname, ".exe");
X
X    if ((wrkfile = fopen(fname, "r+b")) == NULL) {
X	printf("\nCouldn't open file %s\n", fname);
X	return;
X    }
X
X/*  Process any remaining arguments  */
X
X    if (argc == 2)
X	listflg = TRUE;
X    else {
X	i = 2;
X	while (argc-- > 2) {
X	    args = argv[i];
X	    if ((args[0] != '-') && (args[0] != '/')) {
X		printf("\nInvalid switch in paramater %s!\n", argv[i]);
X		usage();
X		return;
X	    }
X	    args++;
X	    if (strnicmp(args, "min", 3) == 0) {
X		args += 3;
X		min = atol(args);
X		minflg = TRUE;
X	    }
X	    else if (strnicmp(args, "max", 3) == 0) {
X		args += 3;
X		max = atol(args);
X		maxflg = TRUE;
X	    }
X	    else if (strnicmp(args, "stk", 3) == 0) {
X		args += 3;
X		stk = atol(args);
X		stkflg = TRUE;
X	    }
X	    else if (strnicmp(args, "v", 1) == 0)
X		listflg = TRUE;
X	    else {
X		printf("\nInvalid paramater %s!\n", argv[i]);
X		usage();
X		return;
X	    }
X	    i++;
X	}
X    }
X
X    fread(&exehdr_area, sizeof (struct exehdr), 1, wrkfile);
X    if (exehdr_area.signature != 0x5a4d) {
X	printf("\nNot an EXE file!\n");
X	return;
X    }
X    while(!feof(wrkfile)) {
X	if (listflg)
X	    show_hdr();
X	if ((minflg || maxflg || stkflg) && (exehdr_area.ovlnum == 0) && (exehdr_area.signature == 0x5a4d)) {
X	    if (minflg)
X		exehdr_area.minalloc = min;
X	    if (maxflg)
X		exehdr_area.maxalloc = max;
X	    if (stkflg) {
X		oldstk = exehdr_area.sp;
X		exehdr_area.sp = stk;
X		if (!minflg) {
X		    exehdr_area.minalloc += ((stk - oldstk) / 16);
X		    printf("\nAdjusting size of minalloc!\n");
X		}
X	    }
X	    fseek(wrkfile, ftell(wrkfile) - sizeof (struct exehdr), SEEK_SET);
X	    fwrite(&exehdr_area, sizeof (struct exehdr), 1, wrkfile);
X	    if (ferror(wrkfile)) {
X		printf("Write error while trying to update header!\n");
X		fclose(wrkfile);
X		return;
X	    }
X	}
X	offset = exehdr_area.pages;
X	offset *= 512L;
X	offset -= sizeof(struct exehdr);
X	fseek(wrkfile, offset, SEEK_CUR);
X	fread(&exehdr_area, sizeof (struct exehdr), 1, wrkfile);
X	if (ferror(wrkfile)) {
X	    printf("Read error while trying to get a header!\n");
X	    fclose(wrkfile);
X	    return;
X	}
X    }
X    fclose(wrkfile);
X}
X
Xshow_hdr()
X{
Xlong lsize;
X
X    lsize = exehdr_area.pages;
X    if (exehdr_area.mod512 != 0)
X	lsize--;
X    lsize *= 512L;
X    lsize += exehdr_area.minalloc * 16;
X    lsize += exehdr_area.mod512;
X    lsize -= exehdr_area.headerparas * 16;
X
X    printf("\nOverlay: %d\n", exehdr_area.ovlnum);
X    printf("--------\n");
X    printf("Size (512 byte pages)\t-%6x\t\t%6u\n", exehdr_area.pages, exehdr_area.pages);
X    printf("Remainder (last page)\t-%6x\t\t%6u\n", exehdr_area.mod512, exehdr_area.mod512);
X    printf("Header size (in paras)\t-%6x\t\t%6u\n", exehdr_area.headerparas, exehdr_area.headerparas);
X    printf("Minalloc (in paras)\t-%6x\t\t%6u\n", exehdr_area.minalloc, exehdr_area.minalloc);
X    printf("Maxalloc (in paras)\t-%6x\t\t%6u\n", exehdr_area.maxalloc, exehdr_area.maxalloc);
X    printf("Load size (in bytes)\t-%6lx\t\t%6lu\n", lsize, lsize);
X    printf("Relocation items\t-%6x\t\t%6u\n", exehdr_area.relocitems, exehdr_area.relocitems);
X    printf("Relocation table offset\t-%6x\t\t%6u\n", exehdr_area.relocptr, exehdr_area.relocptr);
X    printf("Checksum\t\t-%6x\t\t%6u\n", exehdr_area.checksum, exehdr_area.checksum);
X    printf("Initial CS:IP\t\t-  %04x:%04x\n", exehdr_area.cs, exehdr_area.ip);
X    printf("Initial SS:SP\t\t-  %04x:%04x\n", exehdr_area.ss, exehdr_area.sp);
X}
X
Xusage()
X{
X    printf("\nUsage: exesmurf exe_file [/v] [/min#####] [/max#####] [/stk#####]\n");
X    printf("       where: min   = minalloc\n");
X    printf("              max   = maxalloc\n");
X    printf("              stk   = stack size\n");
X    printf("              ##### = decimal number of paragraphs.\n");
X}
END_OF_FILE
if test 5158 -ne `wc -c <'others/exesmurf.c'`; then
    echo shar: \"'others/exesmurf.c'\" unpacked with wrong size!
fi
# end of 'others/exesmurf.c'
fi
echo shar: End of archive 19 \(of 24\).
cp /dev/null ark19isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 24 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0