public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/3336
@ 2001-07-09 14:16 Nathan Sidwell
  0 siblings, 0 replies; 5+ messages in thread
From: Nathan Sidwell @ 2001-07-09 14:16 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c++/3336; it has been noted by GNATS.

From: Nathan Sidwell <nathan@codesourcery.com>
To: Travis Smith <TSmith@hy-tekmail.net>
Cc: "'gcc-gnats@gcc.gnu.org'" <gcc-gnats@gcc.gnu.org>,
        "'gcc-prs@gcc.gnu.org'" <gcc-prs@gcc.gnu.org>,
        "'tazium@yahoo.com'" <tazium@yahoo.com>
Subject: Re: c++/3336
Date: Mon, 09 Jul 2001 22:14:16 +0100

 Travis Smith wrote:
 > 
 > Here's the preprocessor for it.
 You've provided the cpp output, but your mail has the following boilerplate on it.
 
 > This email is confidential and intended solely for the use of the individual
 > to whom it is addressed.  Any views or opinions presented are solely those
 > of the author and do not necessarily represent those of Hy-Tek Material
 > Handling .
 > If you are not the intended recipient, be advised that you have received
 > this email in error and that any use, dissemination, forwarding, printing,
 > or copying of this email is strictly prohibited.
 > 
 > If you have received this email in error please contact the sender.
 
 can you confirm that 'comm.ii' is not confidential?
 
 nathan
 
 -- 
 Dr Nathan Sidwell   ::   http://www.codesourcery.com   ::   CodeSourcery LLC
          'But that's a lie.' - 'Yes it is. What's your point?'
 nathan@codesourcery.com : http://www.cs.bris.ac.uk/~nathan/ : nathan@acm.org


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: c++/3336
@ 2001-07-09 14:46 Travis Smith
  0 siblings, 0 replies; 5+ messages in thread
From: Travis Smith @ 2001-07-09 14:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c++/3336; it has been noted by GNATS.

From: Travis Smith <TSmith@hy-tekmail.net>
To: 'Phil Edwards' <pedwards@disaster.jaj.com>, Travis Smith
	 <TSmith@hy-tekmail.net>
Cc: gcc-gnats@gcc.gnu.org
Subject: RE: c++/3336
Date: Mon, 9 Jul 2001 17:35:57 -0400 

 If your name contains a vowel that is not in the first character position (
 *[aeiouyAEIOUY] ) then you are now the intended recipient. Anyone else,
 you're just outa luck. Go home, go to bed, and sleep your worries away :).
 
 I'd like to note, that in the original email, it was attached automatically
 - and to the end of the email, which just happened to be the end of the
 attachment. It had nothing to do with the code, just company policy. Which
 they will not let me change. (And they wonder why they can't send
 attachments correctly). 
 
 Travis Smith
 Information Systems
 Hy-Tek Material Handling
 2222 Port Road
 Columbus, Oh 43217
 Phone: 614.497.2500 ext 274
 Fax: 614.497.2321
 E-mail: TSmith@hy-tekmail.net
 
 
 -----Original Message-----
 From: Phil Edwards [ mailto:pedwards@disaster.jaj.com ]
 Sent: Monday, July 09, 2001 5:33 PM
 To: Travis Smith
 Cc: gcc-gnats@gcc.gnu.org
 Subject: Re: c++/3336
 
 
 On Mon, Jul 09, 2001 at 09:26:03PM -0000, Travis Smith wrote:
 >  It's code from a GPL'd software package. It is not confidential code. 
 >  
 >  Travis Smith
 >  Information Systems
 >  Hy-Tek Material Handling
 >  2222 Port Road
 >  Columbus, Oh 43217
 >  Phone: 614.497.2500 ext 274
 >  Fax: 614.497.2321
 >  E-mail: TSmith@hy-tekmail.net
 >  
 >  ********************************************* 
 >  This email is confidential and intended solely for the use of the
 individual
 >  to whom it is addressed.  Any views or opinions presented are solely
 those
 >  of the author and do not necessarily represent those of Hy-Tek Material
 >  Handling . 
 >  If you are not the intended recipient, be advised that you have received
 >  this email in error and that any use, dissemination, forwarding,
 printing,
 >  or copying of this email is strictly prohibited. 
 >  
 >  If you have received this email in error please contact the sender. 
 >  **********************************************
 
 Can you confirm that your statement confirming that the code is not
 confidential, is also not confidential?
 
 :-)
 
 
 Phil
 
 -- 
 Would I had phrases that are not known, utterances that are strange, in
 new language that has not been used, free from repetition, not an utterance
 which has grown stale, which men of old have spoken.
                                      - anonymous Egyptian scribe, c.1700 BC
 
 ********************************************* 
 This email is confidential and intended solely for the use of the individual
 to whom it is addressed.  Any views or opinions presented are solely those
 of the author and do not necessarily represent those of Hy-Tek Material
 Handling . 
 If you are not the intended recipient, be advised that you have received
 this email in error and that any use, dissemination, forwarding, printing,
 or copying of this email is strictly prohibited. 
 
 If you have received this email in error please contact the sender. 
 **********************************************


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: c++/3336
@ 2001-07-09 14:36 Phil Edwards
  0 siblings, 0 replies; 5+ messages in thread
From: Phil Edwards @ 2001-07-09 14:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c++/3336; it has been noted by GNATS.

From: Phil Edwards <pedwards@disaster.jaj.com>
To: Travis Smith <TSmith@hy-tekmail.net>
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/3336
Date: Mon, 9 Jul 2001 17:32:34 -0400

 On Mon, Jul 09, 2001 at 09:26:03PM -0000, Travis Smith wrote:
 >  It's code from a GPL'd software package. It is not confidential code. 
 >  
 >  Travis Smith
 >  Information Systems
 >  Hy-Tek Material Handling
 >  2222 Port Road
 >  Columbus, Oh 43217
 >  Phone: 614.497.2500 ext 274
 >  Fax: 614.497.2321
 >  E-mail: TSmith@hy-tekmail.net
 >  
 >  ********************************************* 
 >  This email is confidential and intended solely for the use of the individual
 >  to whom it is addressed.  Any views or opinions presented are solely those
 >  of the author and do not necessarily represent those of Hy-Tek Material
 >  Handling . 
 >  If you are not the intended recipient, be advised that you have received
 >  this email in error and that any use, dissemination, forwarding, printing,
 >  or copying of this email is strictly prohibited. 
 >  
 >  If you have received this email in error please contact the sender. 
 >  **********************************************
 
 Can you confirm that your statement confirming that the code is not
 confidential, is also not confidential?
 
 :-)
 
 
 Phil
 
 -- 
 Would I had phrases that are not known, utterances that are strange, in
 new language that has not been used, free from repetition, not an utterance
 which has grown stale, which men of old have spoken.
                                      - anonymous Egyptian scribe, c.1700 BC


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: c++/3336
@ 2001-07-09 14:26 Travis Smith
  0 siblings, 0 replies; 5+ messages in thread
From: Travis Smith @ 2001-07-09 14:26 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c++/3336; it has been noted by GNATS.

From: Travis Smith <TSmith@hy-tekmail.net>
To: 'Nathan Sidwell' <nathan@codesourcery.com>, Travis Smith
	 <TSmith@hy-tekmail.net>
Cc: "'gcc-gnats@gcc.gnu.org'" <gcc-gnats@gcc.gnu.org>, 
	"'gcc-prs@gcc.gnu.org'" <gcc-prs@gcc.gnu.org>, "'tazium@yahoo.com'"
	 <tazium@yahoo.com>
Subject: RE: c++/3336
Date: Mon, 9 Jul 2001 17:18:09 -0400 

 It's code from a GPL'd software package. It is not confidential code. 
 
 Travis Smith
 Information Systems
 Hy-Tek Material Handling
 2222 Port Road
 Columbus, Oh 43217
 Phone: 614.497.2500 ext 274
 Fax: 614.497.2321
 E-mail: TSmith@hy-tekmail.net
 
 
 -----Original Message-----
 From: Nathan Sidwell [ mailto:nathan@codesourcery.com ]
 Sent: Monday, July 09, 2001 5:14 PM
 To: Travis Smith
 Cc: 'gcc-gnats@gcc.gnu.org'; 'gcc-prs@gcc.gnu.org'; 'tazium@yahoo.com'
 Subject: Re: c++/3336
 
 
 Travis Smith wrote:
 > 
 > Here's the preprocessor for it.
 You've provided the cpp output, but your mail has the following boilerplate
 on it.
 
 > This email is confidential and intended solely for the use of the
 individual
 > to whom it is addressed.  Any views or opinions presented are solely those
 > of the author and do not necessarily represent those of Hy-Tek Material
 > Handling .
 > If you are not the intended recipient, be advised that you have received
 > this email in error and that any use, dissemination, forwarding, printing,
 > or copying of this email is strictly prohibited.
 > 
 > If you have received this email in error please contact the sender.
 
 can you confirm that 'comm.ii' is not confidential?
 
 nathan
 
 -- 
 Dr Nathan Sidwell   ::   http://www.codesourcery.com   ::   CodeSourcery LLC
          'But that's a lie.' - 'Yes it is. What's your point?'
 nathan@codesourcery.com : http://www.cs.bris.ac.uk/~nathan/ : nathan@acm.org
 
 ********************************************* 
 This email is confidential and intended solely for the use of the individual
 to whom it is addressed.  Any views or opinions presented are solely those
 of the author and do not necessarily represent those of Hy-Tek Material
 Handling . 
 If you are not the intended recipient, be advised that you have received
 this email in error and that any use, dissemination, forwarding, printing,
 or copying of this email is strictly prohibited. 
 
 If you have received this email in error please contact the sender. 
 **********************************************


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: c++/3336
@ 2001-07-09  7:36 Travis Smith
  0 siblings, 0 replies; 5+ messages in thread
From: Travis Smith @ 2001-07-09  7:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c++/3336; it has been noted by GNATS.

From: Travis Smith <TSmith@hy-tekmail.net>
To: "'gcc-gnats@gcc.gnu.org'" <gcc-gnats@gcc.gnu.org>, 
	"'gcc-prs@gcc.gnu.org'" <gcc-prs@gcc.gnu.org>, Travis Smith
	 <TSmith@hy-tekmail.net>, "'gcc-bugs@gcc.gnu.org'" <gcc-bugs@gcc.gnu.org>, 
	"'nobody@gcc.gnu.org'" <nobody@gcc.gnu.org>, "'tazium@yahoo.com'"
	 <tazium@yahoo.com>
Cc:  
Subject: Re: c++/3336
Date: Mon, 9 Jul 2001 10:28:01 -0400 

 This message is in MIME format. Since your mail reader does not understand
 this format, some or all of this message may not be legible.
 
 ------_=_NextPart_000_01C10883.5BD4DF60
 Content-Type: text/plain;
 	charset="iso-8859-1"
 
 Here's the preprocessor for it.
 
 
 
 
 
  <<comm.ii>> 
 
 ********************************************* 
 This email is confidential and intended solely for the use of the individual
 to whom it is addressed.  Any views or opinions presented are solely those
 of the author and do not necessarily represent those of Hy-Tek Material
 Handling . 
 If you are not the intended recipient, be advised that you have received
 this email in error and that any use, dissemination, forwarding, printing,
 or copying of this email is strictly prohibited. 
 
 If you have received this email in error please contact the sender. 
 **********************************************
 
 ------_=_NextPart_000_01C10883.5BD4DF60
 Content-Type: application/octet-stream;
 	name="comm.ii"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment;
 	filename="comm.ii"
 
 # 1 "comm.cp"=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "types.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "conf.h" 1=0A=
  =0A=
  =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 # 16 "types.h" 2=0A=
 =0A=
 # 1 "sysdep.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 1 "/usr/include/g++-3/cstdio" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/stdio.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/_ansi.h" 1 3=0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/config.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 # 14 "/usr/include/sys/config.h" 3=0A=
 =0A=
 =0A=
 # 25 "/usr/include/sys/config.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 44 "/usr/include/sys/config.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef int __int32_t;=0A=
 typedef unsigned int __uint32_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 15 "/usr/include/_ansi.h" 2 3=0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 67 "/usr/include/_ansi.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 32 "/usr/include/stdio.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 133 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned int size_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 273 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 # 285 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 37 "/usr/include/stdio.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef void *__gnuc_va_list;=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 123 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 210 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 40 "/usr/include/stdio.h" 2 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/reent.h" 1 3=0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/time.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 # 1 "/usr/include/machine/time.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 21 "/usr/include/time.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 133 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 273 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 # 285 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 30 "/usr/include/time.h" 2 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/types.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef int ptrdiff_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned int  wint_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 31 "/usr/include/sys/types.h" 2 3=0A=
 =0A=
 # 1 "/usr/include/machine/types.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 32 "/usr/include/sys/types.h" 2 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 typedef	unsigned char	u_char;=0A=
 typedef	unsigned short	u_short;=0A=
 typedef	unsigned int	u_int;=0A=
 typedef	unsigned long	u_long;=0A=
 =0A=
 =0A=
 =0A=
 typedef	unsigned short	ushort;		 =0A=
 typedef	unsigned int	uint;		 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long  clock_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef long  time_t;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 struct timespec {=0A=
   time_t  tv_sec;    =0A=
   long    tv_nsec;   =0A=
 };=0A=
 =0A=
 struct itimerspec {=0A=
   struct timespec  it_interval;   =0A=
   struct timespec  it_value;      =0A=
 };=0A=
 =0A=
 =0A=
 typedef	long	daddr_t;=0A=
 typedef	char *	caddr_t;=0A=
 =0A=
 =0A=
 typedef	unsigned long	ino_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long vm_offset_t;=0A=
 typedef unsigned long vm_size_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef char int8_t;=0A=
 typedef unsigned char u_int8_t;=0A=
 typedef short int16_t;=0A=
 typedef unsigned short u_int16_t;=0A=
 typedef int int32_t;=0A=
 typedef unsigned int u_int32_t;=0A=
 typedef long long int64_t;=0A=
 typedef unsigned long long u_int64_t;=0A=
 typedef int32_t register_t;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef	short	dev_t;=0A=
 =0A=
 =0A=
 typedef	long	off_t;=0A=
 =0A=
 typedef	unsigned short	uid_t;=0A=
 typedef	unsigned short	gid_t;=0A=
 typedef int pid_t;=0A=
 typedef	long key_t;=0A=
 typedef long ssize_t;=0A=
 =0A=
 =0A=
 typedef	char *	addr_t;=0A=
 typedef int mode_t;=0A=
 # 152 "/usr/include/sys/types.h" 3=0A=
 =0A=
 =0A=
 typedef unsigned short nlink_t;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef	long	fd_mask;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 typedef	struct _types_fd_set {=0A=
 	fd_mask	fds_bits[((( 64  )+((  (sizeof (fd_mask) * 8 )  )-1))/(  =
 (sizeof (fd_mask) * 8 )  )) ];=0A=
 } _types_fd_set;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long  clockid_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long  timer_t;=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/features.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 72 "/usr/include/sys/features.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 221 "/usr/include/sys/types.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 324 "/usr/include/sys/types.h" 3=0A=
 =0A=
 =0A=
 # 1 "/usr/include/cygwin/types.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C"=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef void *pthread_t;=0A=
 typedef void *pthread_mutex_t;=0A=
 =0A=
 typedef void *pthread_key_t;=0A=
 typedef void *pthread_attr_t;=0A=
 typedef void *pthread_mutexattr_t;=0A=
 typedef void *pthread_condattr_t;=0A=
 typedef void *pthread_cond_t;=0A=
 =0A=
    =0A=
 typedef struct=0A=
 {=0A=
   pthread_mutex_t mutex;=0A=
   int state;=0A=
 }=0A=
 pthread_once_t;=0A=
 typedef void *pthread_rwlock_t;=0A=
 typedef void *pthread_rwlockattr_t;=0A=
 =0A=
 # 58 "/usr/include/cygwin/types.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 # 326 "/usr/include/sys/types.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 32 "/usr/include/time.h" 2 3=0A=
 =0A=
 =0A=
 struct tm=0A=
 {=0A=
   int	tm_sec;=0A=
   int	tm_min;=0A=
   int	tm_hour;=0A=
   int	tm_mday;=0A=
   int	tm_mon;=0A=
   int	tm_year;=0A=
   int	tm_wday;=0A=
   int	tm_yday;=0A=
   int	tm_isdst;=0A=
 };=0A=
 =0A=
 clock_t	   __attribute__((__cdecl__))   clock       (void)  ;=0A=
 double	   __attribute__((__cdecl__))   difftime    (time_t _time2, =
 time_t _time1)  ;=0A=
 time_t	   __attribute__((__cdecl__))   mktime      (struct tm =
 *_timeptr)  ;=0A=
 time_t	   __attribute__((__cdecl__))   time        (time_t *_timer)  =
 ;=0A=
 =0A=
 char	  * __attribute__((__cdecl__))   asctime     (const struct tm =
 *_tblock)  ;=0A=
 char	  * __attribute__((__cdecl__))   ctime       (const time_t *_time) =
  ;=0A=
 struct tm * __attribute__((__cdecl__))   gmtime      (const time_t =
 *_timer)  ;=0A=
 struct tm * __attribute__((__cdecl__))   localtime   (const time_t =
 *_timer)  ;=0A=
 =0A=
 size_t	   __attribute__((__cdecl__))   strftime    (char *_s, size_t =
 _maxsize, const char *_fmt, const struct tm *_t)  ;=0A=
 =0A=
 char	  * __attribute__((__cdecl__))   asctime_r   	(const struct tm *, =
 char *)  ;=0A=
 char	  * __attribute__((__cdecl__))   ctime_r   	(const time_t *, char =
 *)  ;=0A=
 struct tm * __attribute__((__cdecl__))   gmtime_r   	(const time_t *, =
 struct tm *)  ;=0A=
 struct tm * __attribute__((__cdecl__))   localtime_r   	(const time_t =
 *, struct tm *)  ;=0A=
 =0A=
 =0A=
 =0A=
 extern __attribute__(( dllimport ))   time_t _timezone;=0A=
 extern __attribute__(( dllimport ))   int _daylight;=0A=
 extern __attribute__(( dllimport ))   char *_tzname[2];=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 char * __attribute__((__cdecl__))   timezone    (void)  ;=0A=
 =0A=
 void __attribute__((__cdecl__))   tzset    (void)  ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 121 "/usr/include/time.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
                             =0A=
                             =0A=
 =0A=
                             =0A=
                             =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 158 "/usr/include/time.h" 3=0A=
 =0A=
 =0A=
 # 168 "/usr/include/time.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 14 "/usr/include/sys/reent.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef __uint32_t __ULong;=0A=
 =0A=
 =0A=
 struct _glue =0A=
 {=0A=
   struct _glue *_next;=0A=
   int _niobs;=0A=
   struct __sFILE *_iobs;=0A=
 };=0A=
 =0A=
 struct _Bigint =0A=
 {=0A=
   struct _Bigint *_next;=0A=
   int _k, _maxwds, _sign, _wds;=0A=
   __ULong _x[1];=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct _atexit {=0A=
 	struct	_atexit *_next;			 =0A=
 	int	_ind;				 =0A=
 	void	(*_fns[32 ])(void);	 =0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct __sbuf {=0A=
 	unsigned char *_base;=0A=
 	int	_size;=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef long _fpos_t;		 =0A=
 				 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct __sFILE {=0A=
   unsigned char *_p;	 =0A=
   int	_r;		 =0A=
   int	_w;		 =0A=
   short	_flags;		 =0A=
   short	_file;		 =0A=
   struct __sbuf _bf;	 =0A=
   int	_lbfsize;	 =0A=
 =0A=
    =0A=
   void * 	_cookie;	 =0A=
 =0A=
   ssize_t  __attribute__((__cdecl__))   (*_read)   (void *  _cookie, =
 char *_buf, int _n)  ;=0A=
   ssize_t  __attribute__((__cdecl__))   (*_write)   (void *  _cookie, =
 const char *_buf,=0A=
 					    int _n)  ;=0A=
   _fpos_t __attribute__((__cdecl__))   (*_seek)   (void *  _cookie, =
 _fpos_t _offset, int _whence)  ;=0A=
   int	__attribute__((__cdecl__))   (*_close)   (void *  _cookie)  ;=0A=
 =0A=
    =0A=
   struct __sbuf _ub;	 =0A=
   unsigned char *_up;	 =0A=
   int	_ur;		 =0A=
 =0A=
    =0A=
   unsigned char _ubuf[3];	 =0A=
   unsigned char _nbuf[1];	 =0A=
 =0A=
    =0A=
   struct __sbuf _lb;	 =0A=
 =0A=
    =0A=
   int	_blksize;	 =0A=
   int	_offset;	 =0A=
 =0A=
   struct _reent *_data;=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct _rand48 {=0A=
   unsigned short _seed[3];=0A=
   unsigned short _mult[3];=0A=
   unsigned short _add;=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct _reent=0A=
 {=0A=
    =0A=
   int _errno;=0A=
 =0A=
    =0A=
 =0A=
 =0A=
   struct __sFILE *_stdin, *_stdout, *_stderr;=0A=
 =0A=
   int  _inc;			 =0A=
   char _emergency[25];=0A=
  =0A=
   int _current_category;	 =0A=
   const  char *_current_locale;=0A=
 =0A=
   int __sdidinit;		 =0A=
 =0A=
   void __attribute__((__cdecl__))   (*__cleanup)   (struct _reent *)  =
 ;=0A=
 =0A=
    =0A=
   struct _Bigint *_result;=0A=
   int _result_k;=0A=
   struct _Bigint *_p5s;=0A=
   struct _Bigint **_freelist;=0A=
 =0A=
    =0A=
   int _cvtlen;			 =0A=
   char *_cvtbuf;=0A=
 =0A=
   union=0A=
     {=0A=
       struct=0A=
         {=0A=
           unsigned int _unused_rand;=0A=
           char * _strtok_last;=0A=
           char _asctime_buf[26];=0A=
           struct tm _localtime_buf;=0A=
           int _gamma_signgam;=0A=
           __extension__ unsigned long long _rand_next;=0A=
           struct _rand48 _r48;=0A=
         } _reent;=0A=
    =0A=
 =0A=
  =0A=
       struct=0A=
         {=0A=
 =0A=
           unsigned char * _nextf[30 ];=0A=
           unsigned int _nmalloc[30 ];=0A=
         } _unused;=0A=
     } _new;=0A=
 =0A=
    =0A=
   struct _atexit *_atexit;	 =0A=
   struct _atexit _atexit0;	 =0A=
 =0A=
    =0A=
   void (**(_sig_func))(int);=0A=
 =0A=
    =0A=
 =0A=
 =0A=
   struct _glue __sglue;			 =0A=
   struct __sFILE __sf[3];		 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern struct _reent *_impure_ptr  ;=0A=
 =0A=
 void _reclaim_reent  (struct _reent *)  ;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 48 "/usr/include/stdio.h" 2 3=0A=
 =0A=
 =0A=
 typedef _fpos_t fpos_t;=0A=
 =0A=
 typedef struct __sFILE FILE;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 FILE *	__attribute__((__cdecl__))   tmpfile    (void)  ;=0A=
 char *	__attribute__((__cdecl__))   tmpnam    (char *)  ;=0A=
 int	__attribute__((__cdecl__))   fclose    (FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   fflush    (FILE *)  ;=0A=
 FILE *	__attribute__((__cdecl__))   freopen    (const char *, const =
 char *, FILE *)  ;=0A=
 void	__attribute__((__cdecl__))   setbuf    (FILE *, char *)  ;=0A=
 int	__attribute__((__cdecl__))   setvbuf    (FILE *, char *, int, =
 size_t)  ;=0A=
 int	__attribute__((__cdecl__))   fprintf    (FILE *, const char *, ...) =
  ;=0A=
 int	__attribute__((__cdecl__))   fscanf    (FILE *, const char *, ...)  =
 ;=0A=
 int	__attribute__((__cdecl__))   printf    (const char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   scanf    (const char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   sscanf    (const char *, const char *, =
 ...)  ;=0A=
 int	__attribute__((__cdecl__))   vfprintf    (FILE *, const char *, =
 __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   vprintf    (const char *, =
 __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   vsprintf    (char *, const char *, =
 __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   fgetc    (FILE *)  ;=0A=
 char *  __attribute__((__cdecl__))   fgets    (char *, int, FILE *)  =
 ;=0A=
 int	__attribute__((__cdecl__))   fputc    (int, FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   fputs    (const char *, FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   getc    (FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   getchar    (void)  ;=0A=
 char *  __attribute__((__cdecl__))   gets    (char *)  ;=0A=
 int	__attribute__((__cdecl__))   putc    (int, FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   putchar    (int)  ;=0A=
 int	__attribute__((__cdecl__))   puts    (const char *)  ;=0A=
 int	__attribute__((__cdecl__))   ungetc    (int, FILE *)  ;=0A=
 size_t	__attribute__((__cdecl__))   fread    (void * , size_t _size, =
 size_t _n, FILE *)  ;=0A=
 size_t	__attribute__((__cdecl__))   fwrite    (const void *  , size_t =
 _size, size_t _n, FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   fgetpos    (FILE *, fpos_t *)  ;=0A=
 int	__attribute__((__cdecl__))   fseek    (FILE *, long, int)  ;=0A=
 int	__attribute__((__cdecl__))   fsetpos    (FILE *, const fpos_t *)  =
 ;=0A=
 long	__attribute__((__cdecl__))   ftell    ( FILE *)  ;=0A=
 void	__attribute__((__cdecl__))   rewind    (FILE *)  ;=0A=
 void	__attribute__((__cdecl__))   clearerr    (FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   feof    (FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   ferror    (FILE *)  ;=0A=
 void    __attribute__((__cdecl__))   perror    (const char *)  ;=0A=
 =0A=
 FILE *	__attribute__((__cdecl__))   fopen    (const char *_name, const =
 char *_type)  ;=0A=
 int	__attribute__((__cdecl__))   sprintf    (char *, const char *, ...) =
  ;=0A=
 int	__attribute__((__cdecl__))   remove    (const char *)  ;=0A=
 int	__attribute__((__cdecl__))   rename    (const char *, const char *) =
  ;=0A=
 =0A=
 =0A=
 int	__attribute__((__cdecl__))   vfiprintf    (FILE *, const char *, =
 __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   iprintf    (const char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   fiprintf    (FILE *, const char *, =
 ...)  ;=0A=
 int	__attribute__((__cdecl__))   siprintf    (char *, const char *, =
 ...)  ;=0A=
 char *	__attribute__((__cdecl__))   tempnam    (const char *, const =
 char *)  ;=0A=
 int	__attribute__((__cdecl__))   vsnprintf    (char *, size_t, const =
 char *, __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   vfscanf    (FILE *, const char *, =
 __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   vscanf    (const char *, =
 __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   vsscanf    (const char *, const char =
 *, __gnuc_va_list )  ;=0A=
 =0A=
 int	__attribute__((__cdecl__))   snprintf    (char *, size_t, const =
 char *, ...)  ;=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 FILE *	__attribute__((__cdecl__))   fdopen    (int, const char *)  ;=0A=
 =0A=
 int	__attribute__((__cdecl__))   fileno    (FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   getw    (FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   pclose    (FILE *)  ;=0A=
 FILE *  __attribute__((__cdecl__))   popen    (const char *, const char =
 *)  ;=0A=
 int	__attribute__((__cdecl__))   putw    (int, FILE *)  ;=0A=
 void    __attribute__((__cdecl__))   setbuffer    (FILE *, char *, int) =
  ;=0A=
 int	__attribute__((__cdecl__))   setlinebuf    (FILE *)  ;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 FILE *	__attribute__((__cdecl__))   _fdopen_r    (struct _reent *, int, =
 const char *)  ;=0A=
 FILE *	__attribute__((__cdecl__))   _fopen_r    (struct _reent *, const =
 char *, const char *)  ;=0A=
 int	__attribute__((__cdecl__))   _fscanf_r    (struct _reent *, FILE *, =
 const char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   _getchar_r    (struct _reent *)  ;=0A=
 char *	__attribute__((__cdecl__))   _gets_r    (struct _reent *, char =
 *)  ;=0A=
 int	__attribute__((__cdecl__))   _iprintf_r    (struct _reent *, const =
 char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   _mkstemp_r    (struct _reent *, char =
 *)  ;=0A=
 char *	__attribute__((__cdecl__))   _mktemp_r    (struct _reent *, char =
 *)  ;=0A=
 void	__attribute__((__cdecl__))   _perror_r    (struct _reent *, const =
 char *)  ;=0A=
 int	__attribute__((__cdecl__))   _printf_r    (struct _reent *, const =
 char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   _putchar_r    (struct _reent *, int)  =
 ;=0A=
 int	__attribute__((__cdecl__))   _puts_r    (struct _reent *, const =
 char *)  ;=0A=
 int	__attribute__((__cdecl__))   _remove_r    (struct _reent *, const =
 char *)  ;=0A=
 int	__attribute__((__cdecl__))   _rename_r    (struct _reent *,=0A=
 			   const char *_old, const char *_new)  ;=0A=
 int	__attribute__((__cdecl__))   _scanf_r    (struct _reent *, const =
 char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   _sprintf_r    (struct _reent *, char =
 *, const char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   _snprintf_r    (struct _reent *, char =
 *, size_t, const char *, ...)  ;=0A=
 int	__attribute__((__cdecl__))   _sscanf_r    (struct _reent *, const =
 char *, const char *, ...)  ;=0A=
 char *	__attribute__((__cdecl__))   _tempnam_r    (struct _reent *, =
 const char *, const char *)  ;=0A=
 FILE *	__attribute__((__cdecl__))   _tmpfile_r    (struct _reent *)  =
 ;=0A=
 char *	__attribute__((__cdecl__))   _tmpnam_r    (struct _reent *, char =
 *)  ;=0A=
 int	__attribute__((__cdecl__))   _vfprintf_r    (struct _reent *, FILE =
 *, const char *, __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   _vprintf_r    (struct _reent *, const =
 char *, __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   _vsprintf_r    (struct _reent *, char =
 *, const char *, __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   _vsnprintf_r    (struct _reent *, char =
 *, size_t, const char *, __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   _vfscanf_r    (struct _reent *, FILE =
 *, const char *, __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   _vscanf_r    (struct _reent *, const =
 char *, __gnuc_va_list )  ;=0A=
 int	__attribute__((__cdecl__))   _vsscanf_r    (struct _reent *, const =
 char *, const char *, __gnuc_va_list )  ;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 int	__attribute__((__cdecl__))   __srget    (FILE *)  ;=0A=
 int	__attribute__((__cdecl__))   __swbuf    (int, FILE *)  ;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 FILE	* __attribute__((__cdecl__))   funopen   (const void *  =
 _cookie,=0A=
 		int (*readfn)(void *  _cookie, char *_buf, int _n),=0A=
 		int (*writefn)(void *  _cookie, const char *_buf, int _n),=0A=
 		fpos_t (*seekfn)(void *  _cookie, fpos_t _off, int _whence),=0A=
 		int (*closefn)(void *  _cookie))  ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 static __inline__ int __sgetc(FILE *__p)=0A=
   {=0A=
     int __c =3D (--( __p )->_r < 0 ? __srget( __p ) : (int)(*( __p =
 )->_p++)) ;=0A=
     if ((__p->_flags & 0x4000 ) && (__c =3D=3D '\r'))=0A=
       {=0A=
       int __c2 =3D (--( __p )->_r < 0 ? __srget( __p ) : (int)(*( __p =
 )->_p++)) ;=0A=
       if (__c2 =3D=3D '\n')=0A=
         __c =3D __c2;=0A=
       else=0A=
         ungetc(__c2, __p);=0A=
       }=0A=
     return __c;=0A=
   }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 309 "/usr/include/stdio.h" 3=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 6 "/usr/include/g++-3/cstdio" 2 3=0A=
 =0A=
 =0A=
 # 37 "sysdep.h" 2=0A=
 =0A=
 # 1 "/usr/include/g++-3/cctype" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/ctype.h" 1 3=0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int __attribute__((__cdecl__))   isalnum    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   isalpha    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   iscntrl    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   isdigit    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   isgraph    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   islower    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   isprint    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   ispunct    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   isspace    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   isupper    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   isxdigit   (int __c)  ;=0A=
 int __attribute__((__cdecl__))   tolower    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   toupper    (int __c)  ;=0A=
 =0A=
 =0A=
 int __attribute__((__cdecl__))   isascii    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   toascii    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   _tolower    (int __c)  ;=0A=
 int __attribute__((__cdecl__))   _toupper    (int __c)  ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern	__attribute__(( dllimport ))   const  char	_ctype_[];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 6 "/usr/include/g++-3/cctype" 2 3=0A=
 =0A=
 =0A=
 # 38 "sysdep.h" 2=0A=
 =0A=
 # 1 "/usr/include/g++-3/cstdarg" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void va_end (__gnuc_va_list);		 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 176 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 typedef __gnuc_va_list va_list;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 6 "/usr/include/g++-3/cstdarg" 2 3=0A=
 =0A=
 =0A=
 # 39 "sysdep.h" 2=0A=
 =0A=
 =0A=
 # 1 "/usr/include/g++-3/cstdlib" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/stdlib.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 128 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 271 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 17 "/usr/include/stdlib.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct =0A=
 {=0A=
   int quot;  =0A=
   int rem;  =0A=
 } div_t;=0A=
 =0A=
 typedef struct =0A=
 {=0A=
   long quot;  =0A=
   long rem;  =0A=
 } ldiv_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __attribute__(( dllimport ))   int __mb_cur_max;=0A=
 =0A=
 =0A=
 =0A=
 void 	__attribute__((__cdecl__))   abort   (void ) __attribute__ ( =
 (noreturn) )   ;=0A=
 int	__attribute__((__cdecl__))   abs   (int)  ;=0A=
 int	__attribute__((__cdecl__))   atexit   (void  (*__func)(void ))  =
 ;=0A=
 double	__attribute__((__cdecl__))   atof   (const char *__nptr)  ;=0A=
 =0A=
 float	__attribute__((__cdecl__))   atoff   (const char *__nptr)  ;=0A=
 =0A=
 int	__attribute__((__cdecl__))   atoi   (const char *__nptr)  ;=0A=
 long	__attribute__((__cdecl__))   atol   (const char *__nptr)  ;=0A=
 void * 	__attribute__((__cdecl__))   bsearch   (const void *  __key,=0A=
 		       const void *  __base,=0A=
 		       size_t __nmemb,=0A=
 		       size_t __size,=0A=
 		       int (* __attribute__((__cdecl__))   _compar )  (const void * , =
 const void * )  )  ;=0A=
 void * 	__attribute__((__cdecl__))   calloc   (size_t __nmemb, size_t =
 __size)  ;=0A=
 div_t	__attribute__((__cdecl__))   div   (int __numer, int __denom)  =
 ;=0A=
 void 	__attribute__((__cdecl__))   exit   (int __status) __attribute__ =
 ( (noreturn) )   ;=0A=
 void 	__attribute__((__cdecl__))   free   (void * )  ;=0A=
 char *  __attribute__((__cdecl__))   getenv   (const char *__string)  =
 ;=0A=
 char *	__attribute__((__cdecl__))   _getenv_r   (struct _reent *, const =
 char *__string)  ;=0A=
 char *	__attribute__((__cdecl__))   _findenv   (const  char *, int *)  =
 ;=0A=
 char *	__attribute__((__cdecl__))   _findenv_r   (struct _reent *, =
 const  char *, int *)  ;=0A=
 long	__attribute__((__cdecl__))   labs   (long)  ;=0A=
 ldiv_t	__attribute__((__cdecl__))   ldiv   (long __numer, long __denom) =
  ;=0A=
 void * 	__attribute__((__cdecl__))   malloc   (size_t __size)  ;=0A=
 int	__attribute__((__cdecl__))   mblen   (const char *, size_t)  ;=0A=
 int	__attribute__((__cdecl__))   _mblen_r   (struct _reent *, const =
 char *, size_t, int *)  ;=0A=
 int	__attribute__((__cdecl__))   mbtowc   (wchar_t *, const char *, =
 size_t)  ;=0A=
 int	__attribute__((__cdecl__))   _mbtowc_r   (struct _reent *, wchar_t =
 *, const char *, size_t, int *)  ;=0A=
 int	__attribute__((__cdecl__))   wctomb   (char *, wchar_t)  ;=0A=
 int	__attribute__((__cdecl__))   _wctomb_r   (struct _reent *, char *, =
 wchar_t, int *)  ;=0A=
 size_t	__attribute__((__cdecl__))   mbstowcs   (wchar_t *, const char =
 *, size_t)  ;=0A=
 size_t	__attribute__((__cdecl__))   _mbstowcs_r   (struct _reent *, =
 wchar_t *, const char *, size_t, int *)  ;=0A=
 size_t	__attribute__((__cdecl__))   wcstombs   (char *, const wchar_t =
 *, size_t)  ;=0A=
 size_t	__attribute__((__cdecl__))   _wcstombs_r   (struct _reent *, =
 char *, const wchar_t *, size_t, int *)  ;=0A=
 =0A=
 =0A=
 int     __attribute__((__cdecl__))   mkstemp   (char *)  ;=0A=
 char *  __attribute__((__cdecl__))   mktemp   (char *)  ;=0A=
 =0A=
 =0A=
 void 	__attribute__((__cdecl__))   qsort   (void *  __base, size_t =
 __nmemb, size_t __size, int(*_compar)(const void * , const void * ))  =
 ;=0A=
 int	__attribute__((__cdecl__))   rand   (void )  ;=0A=
 void * 	__attribute__((__cdecl__))   realloc   (void *  __r, size_t =
 __size)  ;=0A=
 void 	__attribute__((__cdecl__))   srand   (unsigned __seed)  ;=0A=
 double	__attribute__((__cdecl__))   strtod   (const char *__n, char =
 **_end_PTR)  ;=0A=
 double	__attribute__((__cdecl__))   _strtod_r   (struct _reent *,const =
 char *__n, char **_end_PTR)  ;=0A=
 =0A=
 float	__attribute__((__cdecl__))   strtodf   (const char *__n, char =
 **_end_PTR)  ;=0A=
 =0A=
 long	__attribute__((__cdecl__))   strtol   (const char *__n, char =
 **_end_PTR, int __base)  ;=0A=
 long	__attribute__((__cdecl__))   _strtol_r   (struct _reent *,const =
 char *__n, char **_end_PTR, int __base)  ;=0A=
 unsigned long __attribute__((__cdecl__))   strtoul   (const char =
 *_n_PTR, char **_end_PTR, int __base)  ;=0A=
 unsigned long __attribute__((__cdecl__))   _strtoul_r   (struct _reent =
 *,const char *_n_PTR, char **_end_PTR, int __base)  ;=0A=
 int	__attribute__((__cdecl__))   system   (const char *__string)  ;=0A=
 =0A=
 =0A=
 int	__attribute__((__cdecl__))   putenv   (const char *__string)  ;=0A=
 int	__attribute__((__cdecl__))   _putenv_r   (struct _reent *, const =
 char *__string)  ;=0A=
 int	__attribute__((__cdecl__))   setenv   (const char *__string, const =
 char *__value, int __overwrite)  ;=0A=
 int	__attribute__((__cdecl__))   _setenv_r   (struct _reent *, const =
 char *__string, const char *__value, int __overwrite)  ;=0A=
 =0A=
 char *	__attribute__((__cdecl__))   gcvt   (double,int,char *)  ;=0A=
 char *	__attribute__((__cdecl__))   gcvtf   (float,int,char *)  ;=0A=
 char *	__attribute__((__cdecl__))   fcvt   (double,int,int *,int *)  =
 ;=0A=
 char *	__attribute__((__cdecl__))   fcvtf   (float,int,int *,int *)  =
 ;=0A=
 char *	__attribute__((__cdecl__))   ecvt   (double,int,int *,int *)  =
 ;=0A=
 char *	__attribute__((__cdecl__))   ecvtbuf   (double, int, int*, int*, =
 char *)  ;=0A=
 char *	__attribute__((__cdecl__))   fcvtbuf   (double, int, int*, int*, =
 char *)  ;=0A=
 char *	__attribute__((__cdecl__))   ecvtf   (float,int,int *,int *)  =
 ;=0A=
 char *	__attribute__((__cdecl__))   dtoa   (double, int, int, int *, =
 int*, char**)  ;=0A=
 int	__attribute__((__cdecl__))   rand_r   (unsigned *__seed)  ;=0A=
 =0A=
 double __attribute__((__cdecl__))   drand48   (void )  ;=0A=
 double __attribute__((__cdecl__))   _drand48_r   (struct _reent *)  =
 ;=0A=
 double __attribute__((__cdecl__))   erand48   (unsigned short [3])  =
 ;=0A=
 double __attribute__((__cdecl__))   _erand48_r   (struct _reent *, =
 unsigned short [3])  ;=0A=
 long   __attribute__((__cdecl__))   jrand48   (unsigned short [3])  =
 ;=0A=
 long   __attribute__((__cdecl__))   _jrand48_r   (struct _reent *, =
 unsigned short [3])  ;=0A=
 void   __attribute__((__cdecl__))   lcong48   (unsigned short [7])  =
 ;=0A=
 void   __attribute__((__cdecl__))   _lcong48_r   (struct _reent *, =
 unsigned short [7])  ;=0A=
 long   __attribute__((__cdecl__))   lrand48   (void )  ;=0A=
 long   __attribute__((__cdecl__))   _lrand48_r   (struct _reent *)  =
 ;=0A=
 long   __attribute__((__cdecl__))   mrand48   (void )  ;=0A=
 long   __attribute__((__cdecl__))   _mrand48_r   (struct _reent *)  =
 ;=0A=
 long   __attribute__((__cdecl__))   nrand48   (unsigned short [3])  =
 ;=0A=
 long   __attribute__((__cdecl__))   _nrand48_r   (struct _reent *, =
 unsigned short [3])  ;=0A=
 unsigned short *=0A=
        __attribute__((__cdecl__))   seed48   (unsigned short [3])  ;=0A=
 unsigned short *=0A=
        __attribute__((__cdecl__))   _seed48_r   (struct _reent *, =
 unsigned short [3])  ;=0A=
 void   __attribute__((__cdecl__))   srand48   (long)  ;=0A=
 void   __attribute__((__cdecl__))   _srand48_r   (struct _reent *, =
 long)  ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 char *	__attribute__((__cdecl__))   realpath   (const char *, char *)  =
 ;=0A=
 void	__attribute__((__cdecl__))   unsetenv   (const char *__string)  =
 ;=0A=
 void	__attribute__((__cdecl__))   _unsetenv_r   (struct _reent *, const =
 char *__string)  ;=0A=
 int	__attribute__((__cdecl__))   random   (void )  ;=0A=
 long	__attribute__((__cdecl__))   srandom   (unsigned __seed)  ;=0A=
 char *  __attribute__((__cdecl__))   ptsname    (int)  ;=0A=
 int     __attribute__((__cdecl__))   grantpt    (int)  ;=0A=
 int     __attribute__((__cdecl__))   unlockpt   (int)  ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 char *	__attribute__((__cdecl__))   _dtoa_r   (struct _reent *, double, =
 int, int, int *, int*, char**)  ;=0A=
 void * 	__attribute__((__cdecl__))   _malloc_r   (struct _reent *, =
 size_t)  ;=0A=
 void * 	__attribute__((__cdecl__))   _calloc_r   (struct _reent *, =
 size_t, size_t)  ;=0A=
 void 	__attribute__((__cdecl__))   _free_r   (struct _reent *, void * ) =
  ;=0A=
 void * 	__attribute__((__cdecl__))   _realloc_r   (struct _reent *, =
 void * , size_t)  ;=0A=
 void 	__attribute__((__cdecl__))   _mstats_r   (struct _reent *, char =
 *)  ;=0A=
 int	__attribute__((__cdecl__))   _system_r   (struct _reent *, const =
 char *)  ;=0A=
 =0A=
 void 	__attribute__((__cdecl__))   __eprintf   (const char *, const =
 char *, unsigned int, const char *)  ;=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 6 "/usr/include/g++-3/cstdlib" 2 3=0A=
 =0A=
 =0A=
 =0A=
 #pragma interface "cstdlib"=0A=
 =0A=
 =0A=
 extern "C++" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline long   abs(long x)		{ return x >=3D 0 ? x : -x; }=0A=
 =0A=
  =0A=
 =0A=
 }  =0A=
 =0A=
 =0A=
 # 41 "sysdep.h" 2=0A=
 =0A=
 # 1 "/usr/include/g++-3/cstring" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/string.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 128 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 271 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 18 "/usr/include/string.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void *  	 __attribute__((__cdecl__))   memchr   (const void * , int, =
 size_t)  ;=0A=
 int 	 __attribute__((__cdecl__))   memcmp   (const void * , const void =
 * , size_t)  ;=0A=
 void *  	 __attribute__((__cdecl__))   memcpy   (void * , const void * =
 , size_t)  ;=0A=
 void * 	 __attribute__((__cdecl__))   memmove   (void * , const void * =
 , size_t)  ;=0A=
 void * 	 __attribute__((__cdecl__))   memset   (void * , int, size_t)  =
 ;=0A=
 char 	* __attribute__((__cdecl__))   strcat   (char *, const char *)  =
 ;=0A=
 char 	* __attribute__((__cdecl__))   strchr   (const char *, int)  ;=0A=
 int	 __attribute__((__cdecl__))   strcmp   (const char *, const char *) =
  ;=0A=
 int	 __attribute__((__cdecl__))   strcoll   (const char *, const char =
 *)  ;=0A=
 char 	* __attribute__((__cdecl__))   strcpy   (char *, const char *)  =
 ;=0A=
 size_t	 __attribute__((__cdecl__))   strcspn   (const char *, const =
 char *)  ;=0A=
 char 	* __attribute__((__cdecl__))   strerror   (int)  ;=0A=
 size_t	 __attribute__((__cdecl__))   strlen   (const char *)  ;=0A=
 char 	* __attribute__((__cdecl__))   strncat   (char *, const char *, =
 size_t)  ;=0A=
 int	 __attribute__((__cdecl__))   strncmp   (const char *, const char =
 *, size_t)  ;=0A=
 char 	* __attribute__((__cdecl__))   strncpy   (char *, const char *, =
 size_t)  ;=0A=
 char 	* __attribute__((__cdecl__))   strpbrk   (const char *, const =
 char *)  ;=0A=
 char 	* __attribute__((__cdecl__))   strrchr   (const char *, int)  =
 ;=0A=
 size_t	 __attribute__((__cdecl__))   strspn   (const char *, const char =
 *)  ;=0A=
 char 	* __attribute__((__cdecl__))   strstr   (const char *, const char =
 *)  ;=0A=
 =0A=
 =0A=
 char 	* __attribute__((__cdecl__))   strtok   (char *, const char *)  =
 ;=0A=
 =0A=
 =0A=
 size_t	 __attribute__((__cdecl__))   strxfrm   (char *, const char *, =
 size_t)  ;=0A=
 =0A=
 =0A=
 char 	* __attribute__((__cdecl__))   strtok_r   (char *, const char *, =
 char **)  ;=0A=
 =0A=
 int	 __attribute__((__cdecl__))   bcmp   (const char *, const char *, =
 size_t)  ;=0A=
 void	 __attribute__((__cdecl__))   bcopy   (const char *, char *, =
 size_t)  ;=0A=
 void	 __attribute__((__cdecl__))   bzero   (char *, size_t)  ;=0A=
 int	 __attribute__((__cdecl__))   ffs   (int)  ;=0A=
 char 	* __attribute__((__cdecl__))   index   (const char *, int)  ;=0A=
 void * 	 __attribute__((__cdecl__))   memccpy   (void * , const void * =
 , int, size_t)  ;=0A=
 char 	* __attribute__((__cdecl__))   rindex   (const char *, int)  ;=0A=
 int	 __attribute__((__cdecl__))   strcasecmp   (const char *, const =
 char *)  ;=0A=
 char 	* __attribute__((__cdecl__))   strdup   (const char *)  ;=0A=
 char 	* __attribute__((__cdecl__))   _strdup_r   (struct _reent *, =
 const char *)  ;=0A=
 int	 __attribute__((__cdecl__))   strncasecmp   (const char *, const =
 char *, size_t)  ;=0A=
 char 	* __attribute__((__cdecl__))   strsep   (char **, const char *)  =
 ;=0A=
 char	* __attribute__((__cdecl__))   strlwr   (char *)  ;=0A=
 char	* __attribute__((__cdecl__))   strupr   (char *)  ;=0A=
 =0A=
 =0A=
 const char  * __attribute__((__cdecl__))   strsignal    (int __signo)  =
 ;=0A=
 =0A=
 int     __attribute__((__cdecl__))   strtosigno    (const char *__name) =
  ;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 7 "/usr/include/g++-3/cstring" 2 3=0A=
 =0A=
 =0A=
 # 94 "/usr/include/g++-3/cstring" 3=0A=
 =0A=
 =0A=
 =0A=
 # 42 "sysdep.h" 2=0A=
 =0A=
 =0A=
 # 1 "/usr/include/g++-3/climits" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/syslimits.h" 1 =
 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 114 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/limits.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 117 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 2 =
 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 7 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/syslimits.h" 2 =
 3=0A=
 =0A=
 =0A=
 # 11 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 2 3=0A=
 =0A=
 =0A=
 # 110 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 3=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 6 "/usr/include/g++-3/climits" 2 3=0A=
 =0A=
 =0A=
 # 44 "sysdep.h" 2=0A=
 =0A=
 # 1 "/usr/include/g++-3/cerrno" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/errno.h" 1 3=0A=
 # 1 "/usr/include/sys/errno.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int *__errno  (void)  ;=0A=
 =0A=
 =0A=
 extern __attribute__(( dllimport ))   const  char * const  =
 _sys_errlist[];=0A=
 extern __attribute__(( dllimport ))   int _sys_nerr;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 1 "/usr/include/errno.h" 2 3=0A=
 =0A=
 # 6 "/usr/include/g++-3/cerrno" 2 3=0A=
 =0A=
 =0A=
 # 45 "sysdep.h" 2=0A=
 =0A=
 # 1 "/usr/include/g++-3/cassert" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/assert.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void __attribute__((__cdecl__))   __assert   (const char *, int, const =
 char *)  ;=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 # 6 "/usr/include/g++-3/cassert" 2 3=0A=
 =0A=
 =0A=
 # 46 "sysdep.h" 2=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/unistd.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/unistd.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 128 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 271 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 # 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 12 "/usr/include/sys/unistd.h" 2 3=0A=
 =0A=
 =0A=
 extern char **environ;=0A=
 =0A=
 void	__attribute__((__cdecl__))   _exit    (int __status ) =
 __attribute__ ( (noreturn) )   ;=0A=
 =0A=
 int	__attribute__((__cdecl__))   access   (const char *__path, int =
 __amode )  ;=0A=
 unsigned  __attribute__((__cdecl__))   alarm    (unsigned __secs )  =
 ;=0A=
 int     __attribute__((__cdecl__))   chdir    (const char *__path )  =
 ;=0A=
 int     __attribute__((__cdecl__))   chmod    (const char *__path, =
 mode_t __mode )  ;=0A=
 int     __attribute__((__cdecl__))   chown    (const char *__path, =
 uid_t __owner, gid_t __group )  ;=0A=
 =0A=
 int     __attribute__((__cdecl__))   chroot    (const char *__path )  =
 ;=0A=
 =0A=
 int     __attribute__((__cdecl__))   close    (int __fildes )  ;=0A=
 char    __attribute__((__cdecl__))   *ctermid    (char *__s )  ;=0A=
 char    __attribute__((__cdecl__))   *cuserid    (char *__s )  ;=0A=
 int     __attribute__((__cdecl__))   dup    (int __fildes )  ;=0A=
 int     __attribute__((__cdecl__))   dup2    (int __fildes, int =
 __fildes2 )  ;=0A=
 int     __attribute__((__cdecl__))   execl    (const char *__path, =
 const char *, ... )  ;=0A=
 int     __attribute__((__cdecl__))   execle    (const char *__path, =
 const char *, ... )  ;=0A=
 int     __attribute__((__cdecl__))   execlp    (const char *__file, =
 const char *, ... )  ;=0A=
 int     __attribute__((__cdecl__))   execv    (const char *__path, char =
 * const __argv[] )  ;=0A=
 int     __attribute__((__cdecl__))   execve    (const char *__path, =
 char * const __argv[], char * const __envp[] )  ;=0A=
 int     __attribute__((__cdecl__))   execvp    (const char *__file, =
 char * const __argv[] )  ;=0A=
 int     __attribute__((__cdecl__))   fchmod    (int __fildes, mode_t =
 __mode )  ;=0A=
 int     __attribute__((__cdecl__))   fchown    (int __fildes, uid_t =
 __owner, gid_t __group )  ;=0A=
 pid_t   __attribute__((__cdecl__))   fork    (void )  ;=0A=
 long    __attribute__((__cdecl__))   fpathconf    (int __fd, int __name =
 )  ;=0A=
 int     __attribute__((__cdecl__))   fsync    (int __fd)  ;=0A=
 char    __attribute__((__cdecl__))   *getcwd    (char *__buf, size_t =
 __size )  ;=0A=
 gid_t   __attribute__((__cdecl__))   getegid    (void )  ;=0A=
 uid_t   __attribute__((__cdecl__))   geteuid    (void )  ;=0A=
 gid_t   __attribute__((__cdecl__))   getgid    (void )  ;=0A=
 int     __attribute__((__cdecl__))   getgroups    (int __gidsetsize, =
 gid_t __grouplist[] )  ;=0A=
 char    __attribute__((__cdecl__))   *getlogin    (void )  ;=0A=
 =0A=
 int __attribute__((__cdecl__))   getlogin_r    (char *name, size_t =
 namesize)   ;=0A=
 =0A=
 char 	__attribute__((__cdecl__))   *getpass    (__const char *__prompt) =
  ;=0A=
 size_t  __attribute__((__cdecl__))   getpagesize    (void)  ;=0A=
 pid_t   __attribute__((__cdecl__))   getpgid    (pid_t)  ;=0A=
 pid_t   __attribute__((__cdecl__))   getpgrp    (void )  ;=0A=
 pid_t   __attribute__((__cdecl__))   getpid    (void )  ;=0A=
 pid_t   __attribute__((__cdecl__))   getppid    (void )  ;=0A=
 uid_t   __attribute__((__cdecl__))   getuid    (void )  ;=0A=
 =0A=
 char    __attribute__((__cdecl__))   *getwd    (char *__buf )  ;=0A=
 =0A=
 int     __attribute__((__cdecl__))   isatty    (int __fildes )  ;=0A=
 int     __attribute__((__cdecl__))   lchown    (const char *__path, =
 uid_t __owner, gid_t __group )  ;=0A=
 int     __attribute__((__cdecl__))   link    (const char *__path1, =
 const char *__path2 )  ;=0A=
 int	__attribute__((__cdecl__))   nice    (int __nice_value )  ;=0A=
 off_t   __attribute__((__cdecl__))   lseek    (int __fildes, off_t =
 __offset, int __whence )  ;=0A=
 long    __attribute__((__cdecl__))   pathconf    (const char *__path, =
 int __name )  ;=0A=
 int     __attribute__((__cdecl__))   pause    (void )  ;=0A=
 =0A=
 int	__attribute__((__cdecl__))   pthread_atfork    (void (*)(void), =
 void (*)(void), void (*)(void))  ;=0A=
 =0A=
 int     __attribute__((__cdecl__))   pipe    (int __fildes[2] )  ;=0A=
 ssize_t  __attribute__((__cdecl__))   read    (int __fd, void *__buf, =
 size_t __nbyte )  ;=0A=
 int     __attribute__((__cdecl__))   rmdir    (const char *__path )  =
 ;=0A=
 =0A=
 =0A=
 =0A=
 void *  __attribute__((__cdecl__))   sbrk     (size_t __incr)  ;=0A=
 =0A=
 =0A=
 int     __attribute__((__cdecl__))   setegid    (gid_t __gid )  ;=0A=
 int     __attribute__((__cdecl__))   seteuid    (uid_t __uid )  ;=0A=
 =0A=
 int     __attribute__((__cdecl__))   setgid    (gid_t __gid )  ;=0A=
 int     __attribute__((__cdecl__))   setpgid    (pid_t __pid, pid_t =
 __pgid )  ;=0A=
 int     __attribute__((__cdecl__))   setpgrp    (void )  ;=0A=
 pid_t   __attribute__((__cdecl__))   setsid    (void )  ;=0A=
 int     __attribute__((__cdecl__))   setuid    (uid_t __uid )  ;=0A=
 unsigned __attribute__((__cdecl__))   sleep    (unsigned int __seconds =
 )  ;=0A=
 void    __attribute__((__cdecl__))   swab    (const void *, void *, =
 ssize_t)  ;=0A=
 long    __attribute__((__cdecl__))   sysconf    (int __name )  ;=0A=
 pid_t   __attribute__((__cdecl__))   tcgetpgrp    (int __fildes )  ;=0A=
 int     __attribute__((__cdecl__))   tcsetpgrp    (int __fildes, pid_t =
 __pgrp_id )  ;=0A=
 char    __attribute__((__cdecl__))   *ttyname    (int __fildes )  ;=0A=
 int     __attribute__((__cdecl__))   unlink    (const char *__path )  =
 ;=0A=
 int     __attribute__((__cdecl__))   vhangup    (void )  ;=0A=
 ssize_t  __attribute__((__cdecl__))   write    (int __fd, const void =
 *__buf, size_t __nbyte )  ;=0A=
 =0A=
 =0A=
 pid_t   __attribute__((__cdecl__))   vfork    (void )  ;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 int     __attribute__((__cdecl__))   _close    (int __fildes )  ;=0A=
 pid_t   __attribute__((__cdecl__))   _fork    (void )  ;=0A=
 pid_t   __attribute__((__cdecl__))   _getpid    (void )  ;=0A=
 int     __attribute__((__cdecl__))   _link    (const char *__path1, =
 const char *__path2 )  ;=0A=
 off_t   __attribute__((__cdecl__))   _lseek    (int __fildes, off_t =
 __offset, int __whence )  ;=0A=
 ssize_t  __attribute__((__cdecl__))   _read    (int __fd, void *__buf, =
 size_t __nbyte )  ;=0A=
 void *  __attribute__((__cdecl__))   _sbrk     (size_t __incr)  ;=0A=
 int     __attribute__((__cdecl__))   _unlink    (const char *__path )  =
 ;=0A=
 ssize_t  __attribute__((__cdecl__))   _write    (int __fd, const void =
 *__buf, size_t __nbyte )  ;=0A=
 int     __attribute__((__cdecl__))   _execve    (const char *__path, =
 char * const __argv[], char * const __envp[] )  ;=0A=
 =0A=
 =0A=
 int	__attribute__((__cdecl__))   getdtablesize    (void)  ;=0A=
 int	__attribute__((__cdecl__))   setdtablesize    (int)  ;=0A=
 unsigned __attribute__((__cdecl__))   usleep    (unsigned int =
 __useconds)  ;=0A=
 int     __attribute__((__cdecl__))   ftruncate    (int __fd, off_t =
 __length)  ;=0A=
 int     __attribute__((__cdecl__))   truncate    (const char *, off_t =
 __length)  ;=0A=
 =0A=
  =0A=
  int	__attribute__((__cdecl__))   gethostname    (char *__name, size_t =
 __len)  ;=0A=
 =0A=
 char *	__attribute__((__cdecl__))   mktemp    (char *)  ;=0A=
 int     __attribute__((__cdecl__))   sync    (void)  ;=0A=
 int     __attribute__((__cdecl__))   readlink    (const char *__path, =
 char *__buf, int __buflen)  ;=0A=
 int     __attribute__((__cdecl__))   symlink    (const char *__name1, =
 const char *__name2)  ;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
    =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 4 "/usr/include/unistd.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 53 "sysdep.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/wait.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/resource.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/time.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 struct timeval {=0A=
   long tv_sec;=0A=
   long tv_usec;=0A=
 };=0A=
 =0A=
 struct timezone {=0A=
   int tz_minuteswest;=0A=
   int tz_dsttime;=0A=
 };=0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/select.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/cdefs.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 17 "/usr/include/sys/select.h" 2 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 # 1 "/usr/include/sys/time.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 83 "/usr/include/sys/time.h" 3=0A=
 =0A=
 # 23 "/usr/include/sys/select.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 extern "C" { =0A=
 =0A=
 int select  (int __n, _types_fd_set  *__readfds, _types_fd_set  =
 *__writefds,=0A=
 		 _types_fd_set  *__exceptfds, struct timeval *__timeout)  ;=0A=
 =0A=
 } =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 27 "/usr/include/sys/time.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct  itimerval {=0A=
   struct  timeval it_interval;=0A=
   struct  timeval it_value;=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 62 "/usr/include/sys/time.h" 3=0A=
 =0A=
 # 71 "/usr/include/sys/time.h" 3=0A=
 =0A=
 =0A=
 int __attribute__((__cdecl__))   gettimeofday    (struct timeval *__p, =
 struct timezone *__z)  ;=0A=
 int __attribute__((__cdecl__))   settimeofday    (const struct timeval =
 *, const struct timezone *)  ;=0A=
 int __attribute__((__cdecl__))   utimes    (const char *__path, struct =
 timeval *__tvp)  ;=0A=
 int __attribute__((__cdecl__))   getitimer    (int __which, struct =
 itimerval *__value)  ;=0A=
 int __attribute__((__cdecl__))   setitimer    (int __which, const =
 struct itimerval *__value,=0A=
 					struct itimerval *__ovalue)  ;=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 14 "/usr/include/sys/resource.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long rlim_t;=0A=
 =0A=
 struct rlimit {=0A=
 	rlim_t	rlim_cur;=0A=
 	rlim_t	rlim_max;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct rusage {=0A=
 	struct timeval ru_utime;	 =0A=
 	struct timeval ru_stime;	 =0A=
 	long ru_maxrss;=0A=
 	long ru_ixrss;                =0A=
 	long ru_idrss;                =0A=
 	long ru_isrss;                =0A=
         long ru_minflt;               =0A=
         long ru_majflt;               =0A=
         long ru_nswap;                =0A=
         long ru_inblock;              =0A=
         long ru_oublock;              =0A=
         long ru_msgsnd;               =0A=
         long ru_msgrcv;               =0A=
         long ru_nsignals;             =0A=
         long ru_nvcsw;                =0A=
         long ru_nivcsw;               =0A=
 =0A=
 };=0A=
 =0A=
 int getrlimit (int __resource, struct rlimit *__rlp);=0A=
 int setrlimit (int __resource, const struct rlimit *__rlp);=0A=
 =0A=
 int getrusage (int __who, struct rusage *__rusage);=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 15 "/usr/include/sys/wait.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 pid_t wait (int *);=0A=
 pid_t waitpid (pid_t, int *, int);=0A=
 pid_t wait3 (int *__status, int __options, struct rusage *__rusage);=0A=
 pid_t wait4 (pid_t __pid, int *__status, int __options, struct rusage =
 *__rusage);=0A=
 =0A=
 union wait=0A=
   {=0A=
     int w_status;=0A=
     struct=0A=
       {=0A=
 	unsigned int __w_termsig:7;  =0A=
 	unsigned int __w_coredump:1;  =0A=
 	unsigned int __w_retcode:8;  =0A=
 	unsigned int:16;=0A=
       } __wait_terminated;=0A=
     struct=0A=
       {=0A=
 	unsigned int __w_stopval:8;  =0A=
 	unsigned int __w_stopsig:8;  =0A=
 	unsigned int:16;=0A=
       } __wait_stopped;=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 57 "sysdep.h" 2=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/g++-3/csignal" 1 3=0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/signal.h" 1 3=0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/signal.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long sigset_t;=0A=
 =0A=
 # 105 "/usr/include/sys/signal.h" 3=0A=
 =0A=
 =0A=
 struct sigaction =0A=
 {=0A=
 	void (*sa_handler)(int);=0A=
 	sigset_t sa_mask;=0A=
 	int sa_flags;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int __attribute__((__cdecl__))   sigprocmask    (int how, const =
 sigset_t *set, sigset_t *oset)  ;=0A=
 =0A=
 =0A=
 int __attribute__((__cdecl__))   pthread_sigmask    (int how, const =
 sigset_t *set, sigset_t *oset)  ;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 int __attribute__((__cdecl__))   kill    (int, int)  ;=0A=
 int __attribute__((__cdecl__))   killpg    (pid_t, int)  ;=0A=
 int __attribute__((__cdecl__))   sigaction    (int, const struct =
 sigaction *, struct sigaction *)  ;=0A=
 int __attribute__((__cdecl__))   sigaddset    (sigset_t *, const int)  =
 ;=0A=
 int __attribute__((__cdecl__))   sigdelset    (sigset_t *, const int)  =
 ;=0A=
 int __attribute__((__cdecl__))   sigismember    (const sigset_t *, int) =
  ;=0A=
 int __attribute__((__cdecl__))   sigfillset    (sigset_t *)  ;=0A=
 int __attribute__((__cdecl__))   sigemptyset    (sigset_t *)  ;=0A=
 int __attribute__((__cdecl__))   sigpending    (sigset_t *)  ;=0A=
 int __attribute__((__cdecl__))   sigsuspend    (const sigset_t *)  ;=0A=
 int __attribute__((__cdecl__))   sigpause    (int)  ;=0A=
 =0A=
 =0A=
 int __attribute__((__cdecl__))   pthread_kill    (pthread_t thread, int =
 sig)  ;=0A=
 =0A=
 =0A=
 # 179 "/usr/include/sys/signal.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 219 "/usr/include/sys/signal.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 328 "/usr/include/sys/signal.h" 3=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 8 "/usr/include/signal.h" 2 3=0A=
 =0A=
 =0A=
 typedef int	sig_atomic_t;		 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef void (*_sig_func_ptr) (int);=0A=
 =0A=
 struct _reent;=0A=
 =0A=
 _sig_func_ptr __attribute__((__cdecl__))   _signal_r    (struct _reent =
 *, int, _sig_func_ptr)  ;=0A=
 int	__attribute__((__cdecl__))   _raise_r    (struct _reent *, int)  =
 ;=0A=
 =0A=
 =0A=
 _sig_func_ptr __attribute__((__cdecl__))   signal    (int, =
 _sig_func_ptr)  ;=0A=
 int	__attribute__((__cdecl__))   raise    (int)  ;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 6 "/usr/include/g++-3/csignal" 2 3=0A=
 =0A=
 =0A=
 # 81 "sysdep.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/crypt.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C"=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void __attribute__((__cdecl__))   encrypt    (char *block, int edflag)  =
 ;=0A=
 void __attribute__((__cdecl__))   setkey    (char *key)  ;=0A=
 char * __attribute__((__cdecl__))   crypt    (const char *key, const =
 char *salt)  ;=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 102 "sysdep.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 # 1 "memory.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void Free_Error(char * file, int line);=0A=
 =0A=
 =0A=
 						=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 125 "sysdep.h" 2=0A=
 =0A=
 # 17 "types.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned char	UInt8;=0A=
 typedef signed char		SInt8;=0A=
 =0A=
  =0A=
  =0A=
 typedef	unsigned short	UInt16;=0A=
 typedef signed short	SInt16;=0A=
 typedef unsigned int	UInt32;=0A=
 typedef signed int		SInt32;=0A=
 =0A=
  =0A=
 # 55 "types.h"=0A=
 =0A=
 =0A=
 typedef void *			Ptr;=0A=
 typedef const void *	CPtr;=0A=
 =0A=
  =0A=
 typedef SInt16			VNum;=0A=
  =0A=
 =0A=
 typedef UInt32			IDNum;=0A=
 typedef UInt32			Flags;=0A=
 typedef	UInt8			Type;=0A=
 =0A=
 =0A=
  =0A=
 class SString {=0A=
 public:=0A=
 						SString(void);=0A=
 						SString(const char *str);=0A=
 	SString *			Share(void);=0A=
 	void				Free(void);=0A=
 	const char *		Data(void);=0A=
 =0A=
 	static SString *	Create(const char *str);=0A=
 	static SString *	fread(FILE *fl, char *error, char *filename);=0A=
  =0A=
 	char *				str;=0A=
 	UInt32				count;=0A=
 };=0A=
 =0A=
 inline const char *SString::Data(void) {	return this ? this->str : =
 __null ;		}=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 struct TimeInfoData {=0A=
  =0A=
 	UInt16	hours	: 6;	 =0A=
 	UInt16	day		: 10;	 =0A=
 	SInt16	month	: 5;	 =0A=
 	SInt16	year	: 13;	 =0A=
 };	 =0A=
 =0A=
 =0A=
 struct Dice {=0A=
 	UInt16	number;=0A=
 	UInt16	size;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 18 "comm.cp" 2=0A=
 =0A=
 # 1 "structs.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "internal.defs.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 const SInt32 OPT_USEC =3D			100000;		 =0A=
 const SInt32 PASSES_PER_SEC =3D	(1000000 / OPT_USEC);=0A=
 =0A=
 =0A=
 const SInt32 PULSE_ZONE =3D		10 * PASSES_PER_SEC ;=0A=
 const SInt32 PULSE_MOBILE =3D		1 * PASSES_PER_SEC ;=0A=
 const SInt32 PULSE_POINTS =3D		25 * PASSES_PER_SEC ;	 =0A=
 const SInt32 PULSE_VIOLENCE	=3D	2 * PASSES_PER_SEC ;	 =0A=
 const SInt32 PULSE_BUFFER =3D		5 * PASSES_PER_SEC ;=0A=
 const SInt32 PULSE_SCRIPT =3D		10 * PASSES_PER_SEC ;=0A=
 const SInt32 PULSE_EVENT =3D		1 * PASSES_PER_SEC ;=0A=
 =0A=
 const SInt32 TICK_WRAP_COUNT =3D	10;=0A=
 =0A=
 const SInt32 MOBILE_PERCENT	=3D	20;			 =0A=
 =0A=
  =0A=
 const SInt32 MAX_SOCK_BUF =3D		(12 * 1024);	 =0A=
 const SInt32 MAX_PROMPT_LENGTH =3D512;			 =0A=
 const SInt32 GARBAGE_SPACE =3D	32;				 =0A=
 const SInt32 SMALL_BUFSIZE =3D	1024;			 =0A=
  =0A=
 const SInt32 LARGE_BUFSIZE =3D	(MAX_SOCK_BUF - GARBAGE_SPACE - =
 MAX_PROMPT_LENGTH);=0A=
 =0A=
 =0A=
 =0A=
 const SInt32 HISTORY_SIZE =3D		5;=0A=
 const SInt32 MAX_STRING_LENGTH =3D8192;=0A=
 const SInt32 MAX_INPUT_LENGTH =3D 256;			 =0A=
 const SInt32 MAX_RAW_INPUT_LENGTH =3D 512;			 =0A=
 const SInt32 MAX_MESSAGES =3D		60;=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 enum {=0A=
 	FORMAT_INDENT =3D		(1 << 0)=0A=
 };=0A=
 =0A=
 enum {=0A=
 	REAL,=0A=
 	VIRTUAL=0A=
 };=0A=
 =0A=
 =0A=
 # 20 "structs.h" 2=0A=
 =0A=
 # 1 "characters.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "character.defs.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Character;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 enum Race {=0A=
 	RACE_UNDEFINED	=3D -1,=0A=
 	RACE_HUMAN,=0A=
 	RACE_SYNTHETIC,=0A=
 	RACE_PREDATOR,=0A=
 	RACE_ALIEN,=0A=
 	RACE_OTHER=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum Sex {=0A=
 	Neutral,=0A=
 	Male,=0A=
 	Female=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum Position {=0A=
 	POS_DEAD =3D 0,			 =0A=
 	POS_MORTALLYW,			 =0A=
 	POS_INCAP,				 =0A=
 	POS_STUNNED,			 =0A=
 	POS_SLEEPING,			 =0A=
 	POS_RESTING,			 =0A=
 	POS_SITTING,			 =0A=
 	POS_FIGHTING,			 =0A=
 	POS_STANDING			 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	PLR_TRAITOR			=3D (1 << 0),		 =0A=
 	PLR_unused1			=3D (1 << 1),		 =0A=
 	PLR_FROZEN			=3D (1 << 2),		 =0A=
 	PLR_DONTSET			=3D (1 << 3),		 =0A=
 	PLR_WRITING			=3D (1 << 4),		 =0A=
 	PLR_MAILING			=3D (1 << 5),		 =0A=
 	PLR_CRASH			=3D (1 << 6),		 =0A=
 	PLR_SITEOK			=3D (1 << 7),		 =0A=
 	PLR_NOSHOUT			=3D (1 << 8),		 =0A=
 	PLR_NOTITLE			=3D (1 << 9),		 =0A=
 	PLR_DELETED			=3D (1 << 10),	 =0A=
 	PLR_LOADROOM		=3D (1 << 11),	 =0A=
 	PLR_unused12		=3D (1 << 12),	 =0A=
 	PLR_NODELETE		=3D (1 << 13),	 =0A=
 	PLR_INVSTART		=3D (1 << 14)		 =0A=
 };=0A=
 =0A=
  =0A=
 enum {=0A=
 	MOB_SPEC			=3D (1 << 0),		 =0A=
 	MOB_SENTINEL		=3D (1 << 1),		 =0A=
 	MOB_SCAVENGER		=3D (1 << 2),		 =0A=
 	MOB_ISNPC			=3D (1 << 3),		 =0A=
 	MOB_AWARE			=3D (1 << 4),		 =0A=
 	MOB_AGGRESSIVE		=3D (1 << 5),		 =0A=
 	MOB_STAY_ZONE		=3D (1 << 6),		 =0A=
 	MOB_WIMPY			=3D (1 << 7),		 =0A=
 	MOB_AGGR_ALL		=3D (1 << 8),		 =0A=
 	MOB_MEMORY			=3D (1 << 9),		 =0A=
 	MOB_HELPER			=3D (1 << 10),	 =0A=
 	MOB_NOCHARM			=3D (1 << 11),	 =0A=
 	MOB_NOSUMMON		=3D (1 << 12),	 =0A=
 	MOB_NOSLEEP			=3D (1 << 13),	 =0A=
 	MOB_NOBASH			=3D (1 << 14),	 =0A=
 	MOB_NOBLIND			=3D (1 << 15),	 =0A=
 	MOB_ACIDBLOOD		=3D (1 << 16),	 =0A=
 	MOB_PROGMOB			=3D (1 << 17),	 =0A=
 =0A=
 	MOB_APPROVED		=3D (1 << 20),	 =0A=
 	MOB_TRAITOR			=3D (1 << 30),	 =0A=
 	MOB_DELETED			=3D (1 << 31)		 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 namespace Staff {=0A=
 	enum {=0A=
 		General		=3D (1 << 0),		 =0A=
 		Admin		=3D (1 << 1),		 =0A=
 		Security	=3D (1 << 2),		 =0A=
 		Game		=3D (1 << 3),		 =0A=
 		Houses		=3D (1 << 4),		 =0A=
 		Chars		=3D (1 << 5),		 =0A=
 		Clans		=3D (1 << 6),		 =0A=
 		OLC			=3D (1 << 7),		 =0A=
 		OLCAdmin	=3D (1 << 8),		 =0A=
 		Socials		=3D (1 << 9),		 =0A=
 		Help		=3D (1 << 10),	 =0A=
 		Shops		=3D (1 << 11),	 =0A=
 		Scripts		=3D (1 << 12),	 =0A=
 		IMC			=3D (1 << 13),	 =0A=
 		Coder		=3D (1 << 14)=0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 namespace Preference {=0A=
 	enum {=0A=
 		Brief		=3D (1 << 0),		 =0A=
 		Compact		=3D (1 << 1),		 =0A=
 		PK			=3D (1 << 2),		 =0A=
 		StaffInvis	=3D (1 << 3),=0A=
 		AdminInvis	=3D (1 << 4),=0A=
 		Newbie		=3D (1 << 5),=0A=
 		AutoExit	=3D (1 << 7),		 =0A=
 		NoHassle	=3D (1 << 8),		 =0A=
 		Summonable	=3D (1 << 10),	 =0A=
 		NoRepeat	=3D (1 << 11),	 =0A=
 		HolyLight	=3D (1 << 12),	 =0A=
 		Color		=3D (1 << 13),	 =0A=
 		Log1		=3D (1 << 16),	 =0A=
 		Log2		=3D (1 << 17),	 =0A=
 		RoomFlags	=3D (1 << 21),	 =0A=
 		AutoSwitch	=3D (1 << 25)=0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
 namespace Channel {=0A=
 	enum {=0A=
 		NoShout		=3D (1 << 0),=0A=
 		NoTell		=3D (1 << 1),=0A=
 		NoChat		=3D (1 << 2),=0A=
 		Mission		=3D (1 << 3),=0A=
 		NoMusic		=3D (1 << 4),=0A=
 		NoGratz		=3D (1 << 5),=0A=
 		NoInfo		=3D (1 << 6),=0A=
 		NoWiz		=3D (1 << 7),=0A=
 		NoRace		=3D (1 << 8),=0A=
 		NoClan		=3D (1 << 9)=0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 namespace AffectBit {=0A=
 	enum {=0A=
 		Blind		=3D (1 << 0),		 =0A=
 		Invisible	=3D (1 << 1),		 =0A=
 		DetectInvis	=3D (1 << 2),		 =0A=
 		SenseLife	=3D (1 << 3),		 =0A=
 		Waterwalk	=3D (1 << 4),		 =0A=
 		Sanctuary	=3D (1 << 5),		 =0A=
 		Group		=3D (1 << 6),		 =0A=
 		Flying		=3D (1 << 7),		 =0A=
 		Infravision	=3D (1 << 8),		 =0A=
 		Poison		=3D (1 << 9),		 =0A=
 		Sleep		=3D (1 << 10),	 =0A=
 		NoTrack		=3D (1 << 11),	 =0A=
 		Sneak		=3D (1 << 12),	 =0A=
 		Hide		=3D (1 << 13),	 =0A=
 		Charm		=3D (1 << 14),	 =0A=
 		Tracking	=3D (1 << 15),	 =0A=
 		VacuumSafe	=3D (1 << 16),	 =0A=
 		Light		=3D (1 << 17),	 =0A=
 		Trapped		=3D (1 << 18),	 =0A=
 		Impregnated	=3D (1 << 19)		 =0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 enum {=0A=
 	WEAR_FINGER_R,=0A=
 	WEAR_FINGER_L,=0A=
 	WEAR_NECK,=0A=
 	WEAR_BODY,=0A=
 	WEAR_HEAD,=0A=
 	WEAR_LEGS,=0A=
 	WEAR_FEET,=0A=
 	WEAR_HANDS,=0A=
 	WEAR_ARMS,=0A=
 	WEAR_ABOUT,=0A=
 	WEAR_WAIST,=0A=
 	WEAR_WRIST_R,=0A=
 	WEAR_WRIST_L,=0A=
 	WEAR_EYES,=0A=
 	WEAR_HAND_R,=0A=
 	WEAR_HAND_L,=0A=
 	 =0A=
 	POS_WIELD_TWO,=0A=
 	POS_HOLD_TWO,=0A=
 	POS_WIELD,=0A=
 	POS_WIELD_OFF,=0A=
 	POS_LIGHT,=0A=
 	POS_HOLD=0A=
 };=0A=
 =0A=
 =0A=
 class BodyDesign {=0A=
 public:=0A=
 	SInt32		heads		: 4;		 =0A=
 	SInt32		legsLeft	: 3,=0A=
 				legsRight	: 3;		 =0A=
 	SInt32		armsLeft	: 2,=0A=
 				armsRight	: 2;		 =0A=
 	SInt32		wingsLeft	: 2,=0A=
 				wingsRight	: 2;		 =0A=
 	SInt32		tail		: 1;		 =0A=
 	SInt32		shell		: 1;		 =0A=
 	SInt32		segments	: 4;		 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 namespace Bodyform {=0A=
 	enum {=0A=
 		Biped,			 =0A=
 		Bird,			 =0A=
 		Animal,			 =0A=
 		Insect,			 =0A=
 		Arachnid,		 =0A=
 		Decapod,		 =0A=
 		Millipede,		 =0A=
 		Fish,			 =0A=
 		Crustacean,		 =0A=
 		Snake,			 =0A=
 		=0A=
 		 =0A=
 		Tripod,			 =0A=
 		Hexapod,		 =0A=
 		Mist,			 =0A=
 		Blob			 =0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
 namespace Bodypart {=0A=
 	enum {=0A=
 		Head,							 =0A=
 		LeftArm,		RightArm,		 =0A=
 		LeftHand,		RightHand,		 =0A=
 		LeftLeg,		RightLeg,		 =0A=
 		LeftFoot,		RightFoot,		 =0A=
 		LeftHindLeg,	RightHindLeg,	 =0A=
 		LeftHindFoot,	RightHindFoot,	 =0A=
 		Tail,							 =0A=
 		LeftEye,		RightEye,		 =0A=
 		Jaw,							 =0A=
 		LeftWing,		RightWing,		 =0A=
 		=0A=
 		 =0A=
 		Claws =3D 24,=0A=
 		Fangs =3D 25,=0A=
 		Horns =3D 26,=0A=
 		Tusks =3D 27=0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
 const SInt32 NUM_WEARS =3D	WEAR_HAND_L + 1;	 =0A=
 =0A=
 =0A=
 const SInt32	LVL_STAFF			=3D 101;=0A=
 =0A=
 =0A=
  =0A=
 enum { DRUNK, FULL, THIRST };=0A=
 =0A=
 enum {=0A=
 	MAX_NAME_LENGTH		=3D 12,=0A=
 	MAX_PWD_LENGTH		=3D 10,=0A=
 	MAX_TITLE_LENGTH	=3D 80,=0A=
 	HOST_LENGTH			=3D 30,=0A=
 	EXDSCR_LENGTH		=3D 480,=0A=
 	MAX_SKILLS			=3D 25,=0A=
 	MAX_AFFECT			=3D 32,=0A=
 	MAX_ICE_LENGTH		=3D 160=0A=
 };=0A=
 =0A=
 =0A=
 namespace Relation {=0A=
 	enum Relation {=0A=
 		None =3D -1,=0A=
 		Friend,=0A=
 		Neutral,=0A=
 		Enemy=0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 19 "characters.h" 2=0A=
 =0A=
 # 1 "room.defs.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	NOWHERE		=3D -1,=0A=
 	NORTH,=0A=
 	EAST,=0A=
 	SOUTH,=0A=
 	WEST,=0A=
 	UP,=0A=
 	DOWN,=0A=
 	NUM_OF_DIRS=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	ROOM_DARK			=3D (1 << 0),		 =0A=
 	ROOM_DEATH			=3D (1 << 1),		 =0A=
 	ROOM_NOMOB			=3D (1 << 2),		 =0A=
 	ROOM_INDOORS		=3D (1 << 3),		 =0A=
 	ROOM_PEACEFUL		=3D (1 << 4),		 =0A=
 	ROOM_SOUNDPROOF		=3D (1 << 5),		 =0A=
 	ROOM_NOTRACK		=3D (1 << 6),		 =0A=
 	ROOM_PARSE			=3D (1 << 7),		 =0A=
 	ROOM_TUNNEL			=3D (1 << 8),		 =0A=
 	ROOM_PRIVATE		=3D (1 << 9),		 =0A=
 	ROOM_STAFFROOM		=3D (1 << 10),	 =0A=
 	ROOM_HOUSE			=3D (1 << 11),	 =0A=
 	ROOM_HOUSE_CRASH	=3D (1 << 12),	 =0A=
 	ROOM_GRAVITY		=3D (1 << 13),	 =0A=
 	ROOM_VEHICLE		=3D (1 << 14),	 =0A=
 	ROOM_ADMINROOM		=3D (1 << 15),	 =0A=
 	ROOM_VACUUM			=3D (1 << 16),	 =0A=
 =0A=
 	 =0A=
 	ROOM_DELETED		=3D (1 << 31)		 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 namespace Exit {=0A=
 	enum {=0A=
 		Door		=3D (1 << 0),=0A=
 		Closed		=3D (1 << 1),=0A=
 		Locked		=3D (1 << 2),=0A=
 		Pickproof	=3D (1 << 3),=0A=
 		Hidden		=3D (1 << 4),=0A=
 		NoShoot		=3D (1 << 5),=0A=
 		NoMove		=3D (1 << 6),		 =0A=
 		NoMob		=3D (1 << 7),=0A=
 		NoVehicles	=3D (1 << 8),=0A=
 		Automatic	=3D (1 << 9),=0A=
 		SeeThru		=3D (1 << 10)		 =0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 namespace Sector {=0A=
 	enum Sector {=0A=
 		Inside,				 =0A=
 		City,				 =0A=
 		Road,				 =0A=
 		Field,				 =0A=
 		Desert,=0A=
 		Swamp,=0A=
 		Arctic,=0A=
 		Hills,				 =0A=
 		Forest,				 =0A=
 		Jungle,=0A=
 		Mountain,			 =0A=
 		HighMountain,=0A=
 		Underground,=0A=
 		WaterSwim,			 =0A=
 		WaterNoswim,		 =0A=
 		Underwater,			 =0A=
 		Flying,				 =0A=
 		Space,				 =0A=
 		DeepSpace,			 =0A=
 		=0A=
 		Number				 =0A=
 	};=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 20 "characters.h" 2=0A=
 =0A=
 =0A=
 # 1 "mud.base.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern IDNum max_id;=0A=
 =0A=
 =0A=
 class Character;=0A=
 class Object;=0A=
 class Script;=0A=
 =0A=
 =0A=
  =0A=
 class Base {=0A=
 public:=0A=
 							Base(VNum v =3D -1)  : purged(false), vnum(v), id(0) { };=0A=
 	virtual					~Base(void) { }=0A=
 	bool					Purged(void) const;=0A=
 	VNum					Virtual(void) const;=0A=
 	IDNum					ID(void) const;=0A=
 	VNum					Virtual(VNum newVNum);=0A=
 	=0A=
 protected:=0A=
 	bool					Purged(bool purge);=0A=
 	IDNum					ID(IDNum newId);=0A=
 =0A=
 private:=0A=
 	bool					purged;=0A=
 	VNum					vnum;=0A=
 	IDNum					id;=0A=
 };=0A=
 =0A=
 =0A=
 inline VNum		Base::Virtual(void) const			{ return vnum;				}=0A=
 inline VNum		Base::Virtual(VNum newVNum)			{ return (vnum =3D newVNum);	=
 }=0A=
 inline IDNum	Base::ID(void) const				{ return id;				}=0A=
 inline IDNum	Base::ID(IDNum newId)				{ return (id =3D newId);		}=0A=
 inline bool		Base::Purged(void) const			{ return purged;			}=0A=
 inline bool		Base::Purged(bool purge)			{=0A=
 	if (purge)	purged =3D purge;=0A=
 	return purged;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 class Scriptable : public Base {=0A=
 public:=0A=
 	enum { None, MobScript, ObjectScript, RoomScript };=0A=
 							=0A=
 							Scriptable(VNum vnum =3D -1, Type thisType =3D None);=0A=
 							Scriptable(const Scriptable &scriptObj);=0A=
 	virtual					~Scriptable(void);=0A=
 	=0A=
 	virtual ::Character *	TargetChar(const char *arg) const;=0A=
 	virtual ::Object *		TargetObj(const char *arg) const;=0A=
 	virtual VNum			TargetRoom(const char *arg) const;=0A=
 	=0A=
 	virtual VNum			AbsoluteRoom(void) const;=0A=
 =0A=
 	 =0A=
 	Type					ScriptType(void) const;=0A=
 	=0A=
 public:=0A=
 	Script *				script;=0A=
 =0A=
 private:=0A=
 	Type					type;=0A=
 };=0A=
 =0A=
 =0A=
 inline			Scriptable::Scriptable(VNum vnum, Type thisType) : Base(vnum), =
 script(__null ), type(thisType) { }=0A=
 inline			Scriptable::Scriptable(const Scriptable &so) : Base(so), =
 script(so.script), type(so.type) { };=0A=
 inline			Scriptable::~Scriptable(void) { }=0A=
 =0A=
 inline Character *Scriptable::TargetChar(const char *arg) const	{ =
 return __null ;		}=0A=
 inline Object *	Scriptable::TargetObj(const char *arg) const	{ return =
 __null ;		}=0A=
 inline VNum		Scriptable::TargetRoom(const char *arg) const	{ return -1;	=
 	}=0A=
 inline VNum		Scriptable::AbsoluteRoom(void) const			{ return -1;		}=0A=
 =0A=
 inline Type		Scriptable::ScriptType(void) const		{ return type;}=0A=
 =0A=
 =0A=
  =0A=
 class MUDObject : public Scriptable {=0A=
 public:=0A=
 							MUDObject(VNum vnum =3D -1, Type type =3D Scriptable::None);=0A=
 							MUDObject(const MUDObject &mo);=0A=
 	virtual					~MUDObject(void) { }=0A=
 							=0A=
  =0A=
 	virtual const char *	Name(void) const;=0A=
 	=0A=
 	virtual VNum			InRoom(void) const;=0A=
 	void					SetRoom(VNum theRoom);=0A=
 	virtual void			FromRoom(void);=0A=
 	virtual void			ToRoom(VNum theRoom);=0A=
  =0A=
 	virtual VNum			AbsoluteRoom(void) const;=0A=
 	=0A=
 	virtual void			Extract(void);=0A=
 	=0A=
 private:=0A=
 	VNum					room;			 =0A=
 };=0A=
 =0A=
  =0A=
  =0A=
  =0A=
 inline			MUDObject::MUDObject(VNum vnum, Type type) : Scriptable(vnum, =
 type), room(-1) { }=0A=
 inline			MUDObject::MUDObject(const MUDObject &mo) : Scriptable(mo), =
 room(-1) { }=0A=
 =0A=
 inline const char *	MUDObject::Name(void) const		{ return __null ;			=
 }=0A=
 =0A=
 inline VNum		MUDObject::InRoom(void) const		{ return room;			}=0A=
 inline void		MUDObject::SetRoom(VNum theRoom)	{ room =3D theRoom;		}=0A=
 inline void		MUDObject::FromRoom(void)			{ return;				}=0A=
 inline void		MUDObject::ToRoom(VNum theRoom)		{ return;				}=0A=
  =0A=
  =0A=
  =0A=
  =0A=
 inline VNum		MUDObject::AbsoluteRoom(void) const { return InRoom();		=
 }=0A=
 =0A=
 inline void		MUDObject::Extract(void)			{ return;				}=0A=
 =0A=
 =0A=
 =0A=
 # 22 "characters.h" 2=0A=
 =0A=
 =0A=
 # 1 "index.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "stl.map.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 template<class K, class V>	class Map;=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 template<class KEY, class VALUE>=0A=
 class Pair {=0A=
 public:=0A=
 						Pair(void) {}=0A=
 						Pair(const Pair<KEY, VALUE> &p);=0A=
 						Pair(const KEY& k, const VALUE& d);=0A=
 						~Pair(void) {}=0A=
 						=0A=
  =0A=
  =0A=
  =0A=
 				=0A=
 	KEY					key;=0A=
 	VALUE				data;=0A=
 	=0A=
 	Pair<KEY, VALUE> &	operator=3D(const Pair<KEY, VALUE> &p);=0A=
  =0A=
 	bool				operator<(const Pair<KEY, VALUE> &p) { return (key < p.key); =
 }=0A=
 };=0A=
 =0A=
 =0A=
 template<class KEY, class VALUE>=0A=
 Pair<KEY, VALUE>::Pair(const KEY& k, const VALUE& v) : key(k), data(v) =
 { }=0A=
 =0A=
 =0A=
 template<class KEY, class VALUE>=0A=
 Pair<KEY, VALUE>::Pair(const Pair<KEY, VALUE> &p) : key(p.key), =
 data(p.data) { }=0A=
 				=0A=
 =0A=
 template<class K, class V>=0A=
 Pair<K, V> &Pair<K, V>::operator=3D(const Pair &p) {=0A=
 	key =3D p.key;=0A=
 	data =3D p.data;=0A=
 	=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 class Node {=0A=
 public:=0A=
 					Node(void) : left(__null ), right(__null ), parent(__null ), =
 bal(0) { }=0A=
 	Node *left, *right, *parent;=0A=
 	=0A=
 	Pair<K, V>		pair;=0A=
 	int				bal;=0A=
 	=0A=
 	Node *			add(Node *node);=0A=
 	Node *			remove(Node *node);=0A=
 	=0A=
 private:=0A=
 	Node *			singleRotateLeft(void);=0A=
 	Node *			singleRotateRight(void);=0A=
 	Node *			restoreLeftBalance(int bal);=0A=
 	Node *			restoreRightBalance(int bal);=0A=
 	Node *			balance(void);=0A=
 	Node *			removeLeftChild(Node *&ref);=0A=
 };=0A=
 =0A=
 =0A=
 template <class K, class V>=0A=
 class MapIterator {=0A=
 public:=0A=
 	friend class Map<K, V>;=0A=
 	=0A=
 	typedef typename Map<K, V>::MapPair	MapPair;=0A=
 	typedef typename Map<K, V>::Node		Node;=0A=
 						MapIterator(void);=0A=
 						MapIterator(Map<K, V> &theMap);=0A=
 						~MapIterator(void);=0A=
 	void				Start(Map<K, V> &theMap);=0A=
 	void				Finish(void);=0A=
 	void				Restart(Map<K, V> &theMap);=0A=
 	void				Update(Node *node);=0A=
 	=0A=
 	V *					Peek(void) const;=0A=
 	V *					Prev(void);=0A=
 	V *					Next(void);=0A=
 	void				Reset(void);=0A=
 	=0A=
 protected:=0A=
 	Map<K, V> *			map;=0A=
 	Node *				current;=0A=
  =0A=
 };=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 class Map {=0A=
  =0A=
 public:=0A=
 	typedef Pair<K, V>	MapPair;=0A=
 	typedef Node<K, V>	Node;=0A=
 	typedef MapIterator<K, V>	Iterator;=0A=
 	=0A=
 						Map(void);=0A=
  =0A=
 						~Map(void);=0A=
 	=0A=
 	Map<K, V> &			Insert(Node *node);=0A=
 	Map<K, V> &			Remove(const K &key);=0A=
  =0A=
 	V &					operator[](const K &key);=0A=
 	Map<K, V> &			operator=3D(const Map<K, V> &m);=0A=
 	Map<K, V> &			Move(const K &from, const K &to);=0A=
 	Map<K, V> &			Swap(const K &a, const K &b);=0A=
 	=0A=
 	const K				Top(void);=0A=
 	const K				Bottom(void);=0A=
 	int					Count(void);=0A=
 	=0A=
 	bool				Find(const K &key) const;=0A=
 	Node *				GetElement(const K &key) const;=0A=
 	=0A=
 public:=0A=
 	Node *				root;=0A=
 	int					count;=0A=
 	mutable Node *		cache;=0A=
 };=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 Map<K, V>::Map(void) : root(__null ), count(0), cache(0)   {=0A=
 }=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 Map<K, V>::~Map(void) {=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::singleRotateLeft(void) {=0A=
 	Node *		node =3D right;=0A=
 	=0A=
 	 =0A=
 	right =3D node->left;=0A=
 	node->left =3D this;=0A=
 	=0A=
 	if (right)	right->parent =3D this;=0A=
 	parent =3D node;=0A=
 	=0A=
 	int Abf =3D bal;=0A=
 	int Bbf =3D node->bal;=0A=
 	=0A=
 	if (Bbf <=3D 0) {=0A=
 		node->bal =3D (Abf >=3D 1) ? (Bbf - 1) : (Abf + Bbf - 2);=0A=
 		bal =3D Abf - 1;=0A=
 	} else {=0A=
 		node->bal =3D (Abf <=3D Bbf) ? (Abf - 2) : (Bbf - 1);=0A=
 		bal =3D (Abf - Bbf) - 1;=0A=
 	}=0A=
 	return node;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::singleRotateRight(void) {=0A=
 	Node *		node =3D left;=0A=
 	=0A=
 	 =0A=
 	left =3D node->right;=0A=
 	node->right =3D this;=0A=
 	=0A=
 	if (left)	left->parent =3D this;=0A=
 	parent =3D node;=0A=
 	=0A=
 	int Abf =3D bal;=0A=
 	int Bbf =3D node->bal;=0A=
 	=0A=
 	if (Bbf <=3D 0) {=0A=
 		node->bal =3D (Bbf > Abf) ? (Bbf + 1) : (Abf + 2);=0A=
 		bal =3D (Abf - Bbf) + 1;=0A=
 	} else {=0A=
 		node->bal =3D (Abf <=3D -1) ? (Bbf + 1) : (Abf + Bbf + 2);=0A=
 		bal =3D Abf + 1;=0A=
 	}=0A=
 	return node;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::balance(void) {=0A=
 	if (bal < 0) {=0A=
 		if (left->bal <=3D 0)		return singleRotateRight();=0A=
 		else {=0A=
 			left =3D left->singleRotateLeft();=0A=
 			left->parent =3D this;=0A=
 			return singleRotateRight();=0A=
 		}=0A=
 	} else {=0A=
 		if (right->bal >=3D 0)	return singleRotateLeft();=0A=
 		else {=0A=
 			right =3D right->singleRotateRight();=0A=
 			right->parent =3D this;=0A=
 			return singleRotateLeft();=0A=
 		}=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::add(Node *node) {=0A=
 	if (node->pair.key < pair.key) {=0A=
 		if (left) {=0A=
 			int oldBalance =3D left->bal;=0A=
 			left =3D left->add(node);=0A=
 			 =0A=
 			if ((left->bal !=3D oldBalance) && left->bal)=0A=
 				bal--;=0A=
 		} else {=0A=
 			left =3D node;=0A=
 			bal--;=0A=
 		}=0A=
 		left->parent =3D this;=0A=
 	} else {=0A=
 		if (right) {=0A=
 			int oldBalance =3D right->bal;=0A=
 			right =3D right->add(node);=0A=
 			 =0A=
 			if ((right->bal !=3D oldBalance) && right->bal)=0A=
 				bal++;=0A=
 		} else {=0A=
 			right =3D node;=0A=
 			bal++;=0A=
 		}=0A=
 		right->parent =3D this;=0A=
 	}=0A=
 	=0A=
 	if ((bal < -1) || (bal > 1))=0A=
 		return balance();=0A=
 	=0A=
 	return this;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::removeLeftChild(Node *&node) {=0A=
 	if (!left) {=0A=
 		node =3D this;=0A=
 		return right;=0A=
 	}=0A=
 	=0A=
 	int oldBalance =3D left->bal;=0A=
 	=0A=
 	left =3D left->removeLeftChild(node);=0A=
 	left->parent =3D this;=0A=
 	=0A=
 	return restoreLeftBalance(oldBalance);=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::restoreLeftBalance(int oldBalance) {=0A=
 	if (!left)	bal++;=0A=
 	else if ((left->bal =3D=3D oldBalance) && left->bal =3D=3D 0)=0A=
 		bal++;=0A=
 	=0A=
 	if (bal > 1)	return balance();=0A=
 	=0A=
 	return this;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::restoreRightBalance(int oldBalance) {=0A=
 	if (!right)	bal--;=0A=
 	else if ((right->bal =3D=3D oldBalance) && right->bal =3D=3D 0)=0A=
 		bal--;=0A=
 	=0A=
 	if (bal < -1)	return balance();=0A=
 	=0A=
 	return this;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Node<K, V> *Node<K, V>::remove(Node *node) {=0A=
 	if (node =3D=3D this) {=0A=
 		 =0A=
 		if (!right)		return left;=0A=
 		 =0A=
 		int oldBalance =3D right->bal;=0A=
 		Node *	root;=0A=
 		right =3D right->removeLeftChild(root);=0A=
 		 =0A=
 		root->left =3D left;		if (left)	left->parent =3D root;=0A=
 		root->right =3D right;	if (right)	right->parent =3D root;=0A=
 		root->bal =3D bal;=0A=
 		return root->restoreRightBalance(oldBalance);=0A=
 	} else if (node->pair.key < pair.key) {=0A=
 		if (!left)		return this;=0A=
 		 =0A=
 		int oldBalance =3D left->bal;=0A=
 		left =3D left->remove(node);=0A=
 		if (left)	left->parent =3D this;=0A=
 		return restoreLeftBalance(oldBalance);=0A=
 	} else {=0A=
 		if (!right)		return this;=0A=
 		int oldBalance =3D right->bal;=0A=
 		=0A=
 		right =3D right->remove(node);=0A=
 		if (right)	right->parent =3D this;=0A=
 		return restoreRightBalance(oldBalance);=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 Map<K, V> &Map<K,V>::Insert(Node *node) {=0A=
 	root =3D root ? root->add(node) : node;=0A=
 	if (root)	root->parent =3D __null ;=0A=
 	count++;=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 Map<K, V> &Map<K,V>::Remove(const K &key) {=0A=
 	Node *	node =3D GetElement(key);=0A=
 	if (!node)	return *this;=0A=
 	root =3D root->remove(node);=0A=
 	if (root)	root->parent =3D __null ;=0A=
 	count--;=0A=
 	if (cache =3D=3D node)	cache =3D=3D __null ;=0A=
 	delete node;=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 V &Map<K, V>::operator[](const K &key) {=0A=
 	Node *	node =3D GetElement(key);=0A=
 	if (node)	return node->pair.data;=0A=
 	=0A=
 	node =3D new Node;=0A=
 	node->pair.key =3D key;=0A=
 	=0A=
 	Insert(node);=0A=
 	return node->pair.data;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 Map<K, V> &Map<K, V>::operator=3D(const Map<K, V> &m) {=0A=
  =0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 Map<K, V> &Map<K, V>::Move(const K &from, const K &to) {=0A=
 	Node *node =3D GetElement(from);=0A=
 	if (!node)		return *this;=0A=
 	root =3D root->remove(node);=0A=
 	if (root)	root->parent =3D __null ;=0A=
 	node->pair.key =3D to;=0A=
 	root =3D root->add(node);=0A=
 	root->parent =3D __null ;=0A=
 	=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 Map<K, V> &Map<K, V>::Swap(const K &a, const K &b) {=0A=
 	Node *nodeA =3D GetElement(a);=0A=
 	Node *nodeB =3D GetElement(b);=0A=
 	=0A=
 	if (!nodeA && !nodeB)	return *this;=0A=
 =0A=
 	if (nodeA) {=0A=
 		root =3D root->remove(nodeA);=0A=
 		if (root)	root->parent =3D __null ;=0A=
 	}=0A=
 	if (nodeB) {=0A=
 		root =3D root->remove(nodeB);=0A=
 		if (root)	root->parent =3D __null ;=0A=
 	}=0A=
 	=0A=
 	if (nodeA) {=0A=
 		nodeA->pair.key =3D b;=0A=
 		root =3D root.add(nodeA);=0A=
 		root->parent =3D __null ;=0A=
 	}=0A=
 	if (nodeB) {=0A=
 		nodeB->pair.key =3D a;=0A=
 		root =3D root.add(nodeB);=0A=
 		root->parent =3D __null ;=0A=
 	}=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 const K Map<K, V>::Bottom(void) {=0A=
 	Node *node =3D root;=0A=
 	if (!node)	return K();=0A=
 	while (node->left)	node =3D node->left;=0A=
 	return node->pair.key;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 const K Map<K, V>::Top(void) {=0A=
 	Node *node =3D root;=0A=
 	if (!node)	return K();=0A=
 	while (node->right)	node =3D node->right;=0A=
 	return node->pair.key;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 int Map<K, V>::Count(void) {=0A=
 	return count;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 template<class K, class V>=0A=
 Map<K, V>::Node *Map<K, V>::GetElement(const K &key) const {=0A=
 	if (cache && cache->pair.key =3D=3D key)	return cache;=0A=
 		=0A=
 	Node *	node =3D root;=0A=
 	while (node) {=0A=
 		if (node->pair.key =3D=3D key) {=0A=
 			cache =3D node;=0A=
 			return node;=0A=
 		}=0A=
 		if (key < node->pair.key)	node =3D node->left;=0A=
 		else						node =3D node->right;=0A=
 	}=0A=
 	=0A=
 	return __null ;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 bool Map<K, V>::Find(const K &key) const {=0A=
 	return (GetElement(key) !=3D __null );=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 MapIterator<K, V>::MapIterator(void) : map(__null ), current(__null )   =
 {=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 MapIterator<K, V>::MapIterator(Map<K, V> &theMap) : map(__null ), =
 current(__null )   {=0A=
 	this->Start(theMap);=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 MapIterator<K, V>::~MapIterator(void) {=0A=
 	this->Finish();=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 void MapIterator<K, V>::Start(Map<K, V> &theMap) {=0A=
 	if (map)		Finish();=0A=
 	if (!(map =3D &theMap))	return;=0A=
  =0A=
  =0A=
 	Reset();=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 void MapIterator<K, V>::Finish(void) {=0A=
 	if (!map)	return;=0A=
  =0A=
  =0A=
 	current =3D __null ;=0A=
 	map =3D __null ;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 void MapIterator<K, V>::Restart(Map<K, V> &theMap) {=0A=
 	Finish();=0A=
 	Start(theList);=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 void MapIterator<K, V>::Update(Node *node) {=0A=
  =0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 V *MapIterator<K, V>::Peek(void) const {=0A=
 	if (!map)	return __null ;=0A=
 	return (current ? &current->pair.data : __null );=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 V *MapIterator<K, V>::Next(void) {=0A=
 	Node *node =3D current;=0A=
 	=0A=
 	if (!node)	return __null ;=0A=
 	=0A=
 	if (current->right) {=0A=
 		current =3D current->right;=0A=
 		while (current->left)	current =3D current->left;=0A=
 	} else {=0A=
 		Node *link =3D current->parent;=0A=
 		while (link && current =3D=3D link->right) {=0A=
 			current =3D link;=0A=
 			link =3D link->parent;=0A=
 		}=0A=
  =0A=
 		current =3D link;=0A=
 	}=0A=
 	=0A=
 	return &node->pair.data;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 V *MapIterator<K, V>::Prev(void) {=0A=
  =0A=
  =0A=
 	return __null ;=0A=
 }=0A=
 =0A=
 =0A=
 template<class K, class V>=0A=
 void MapIterator<K, V>::Reset(void) {=0A=
 	Node *node =3D map->root;=0A=
 	if (node)	while (node->left)	node =3D node->left;=0A=
 	current =3D node;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 20 "index.h" 2=0A=
 =0A=
 # 1 "stl.vector.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class T> class Vector;=0A=
 template <class T> class VectorIter;=0A=
 =0A=
 =0A=
 template <class T>=0A=
 class Vector {=0A=
 public:=0A=
 						Vector(void);=0A=
 						Vector(const Vector<T> &v);=0A=
 						~Vector(void);=0A=
 					=0A=
 	void				Append(const T & item);=0A=
 	void				Prepend(const T & item);=0A=
 	void				Add(const T & item);=0A=
 	void				Insert(const T & item, int nIndex);=0A=
  =0A=
  =0A=
 	bool				Remove(int item);=0A=
 	bool				Remove(const T &item);=0A=
 	int					Find(const T &item) const;=0A=
  =0A=
 	T &					Top(void) const;=0A=
 	T &					Bottom(void) const;=0A=
 	int					Count(void) const;=0A=
 	bool				Contains(const T & item) const;=0A=
 	void				Clear(void);=0A=
 	void				Erase(void);=0A=
 	=0A=
 	void				SetSize(int newCount);=0A=
 	=0A=
 	T &					operator[](int nIndex) const;=0A=
 =0A=
 	Vector<T> &			operator=3D(const Vector<T> &v);=0A=
 protected:=0A=
 	T *					table;=0A=
 	int					count, size;=0A=
 	=0A=
 	void				Resize(int newSize);=0A=
 };=0A=
 =0A=
 =0A=
 template<class T>=0A=
 Vector<T>::Vector(void) : table(new T[5]), count(0), size(5) {=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 Vector<T>::Vector(const Vector<T> &v) : table(new T[v.size]), =
 count(v.count), size(v.size) {=0A=
  =0A=
 	for (int element =3D 0; element < v.count; element++)=0A=
 		table[element] =3D v.table[element];=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 Vector<T>::~Vector(void) {=0A=
 	delete [] table;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::Append(const T & item) {=0A=
 	if (count >=3D size)	Resize(size + 5);=0A=
 	table[count++] =3D item;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::Prepend(const T & item) {=0A=
 	if (count >=3D size)	Resize(size + 5);=0A=
 	=0A=
 	for (int x =3D count++; x > 0; x--)=0A=
 		table[x] =3D table[x - 1];=0A=
 	table[0] =3D item;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::Add(const T & item) {=0A=
 	this->Append(item);=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::Insert(const T & item, int nIndex) {=0A=
 	if (count >=3D size)	Resize(size + 5);=0A=
 =0A=
 	if (nIndex < 0)	nIndex =3D 0;=0A=
 	if (nIndex > count) nIndex =3D count;=0A=
 =0A=
 	for (int x =3D count++; x > nIndex; x--)=0A=
 		table[x] =3D table[x - 1];=0A=
 	table[nIndex] =3D item;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 bool Vector<T>::Remove(int nIndex) {=0A=
 	if (nIndex < 0 || nIndex > count)		return false;=0A=
 	=0A=
 	for (int i =3D nIndex; i < (count - 1); i++)=0A=
 		table[i] =3D table[i + 1];=0A=
 	=0A=
 	count--;=0A=
 	=0A=
 	if (count < (size - 5))	Resize(size - 5);=0A=
 	=0A=
 	return true;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 bool Vector<T>::Remove(const T &what) {=0A=
 	int nIndex;=0A=
 	=0A=
 	for (nIndex =3D 0; nIndex < count; nIndex++) {=0A=
 		if (table[nIndex] =3D=3D what)=0A=
 			break;=0A=
 	}=0A=
 	=0A=
 	if (!count || nIndex >=3D count)		return false;=0A=
 	=0A=
 	for (; nIndex < (count - 1); nIndex++)=0A=
 		table[nIndex] =3D table[nIndex + 1];=0A=
 	=0A=
 	count--;=0A=
 	=0A=
 	if (count < (size - 5))	Resize(size - 5);=0A=
 	=0A=
 	return true;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 int Vector<T>::Find(const T &t) const {=0A=
 	for (int i =3D 0; i < count; i++)=0A=
 		if (table[i] =3D=3D t)=0A=
 			return i;=0A=
 	=0A=
 	return -1;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 T &Vector<T>::Top(void) const {=0A=
 	return table[count - 1];=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 T &Vector<T>::Bottom(void) const {=0A=
 	return table[0];=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 int Vector<T>::Count(void) const {=0A=
 	return count;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 bool Vector<T>::Contains(const T & item) const {=0A=
 	for (int i =3D 0; i < count; i++)=0A=
 		if (table[i] =3D=3D item)=0A=
 			return true;=0A=
 	return false;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::Clear(void) {=0A=
 	delete [] table;=0A=
 	table =3D new T[5];=0A=
 	size =3D 5;=0A=
 	count =3D 0;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::Erase(void) {=0A=
 	table =3D new T[5];=0A=
 	size =3D 5;=0A=
 	count =3D 0;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 T &Vector<T>::operator[](int nIndex) const {=0A=
 	if (nIndex >=3D count)	nIndex =3D count - 1;=0A=
 	if (nIndex < 0)			nIndex =3D 0;=0A=
 	=0A=
 	return table[nIndex];=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::SetSize(int newCount) {=0A=
 	if (count =3D=3D newCount || newCount =3D=3D 0)	return;=0A=
 	=0A=
 	int	newSize =3D newCount;=0A=
 	while (newSize % 5)	newSize++;=0A=
 	Resize(newSize);=0A=
 =0A=
 	count =3D newCount;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void Vector<T>::Resize(int newSize) {=0A=
 	if (size =3D=3D newSize || newSize =3D=3D 0)	return;=0A=
 =0A=
 	T *		newTable =3D new T[newSize];=0A=
 	int		top =3D newSize > size ? size : newSize;=0A=
 	=0A=
 	for (int i =3D 0; i < top; i++)=0A=
 		newTable[i] =3D table[i];=0A=
 	=0A=
 	delete [] table;=0A=
 	table =3D newTable;=0A=
 	size =3D newSize;=0A=
 	=0A=
 	if (count > size)	count =3D size;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 Vector<T> &Vector<T>::operator=3D(const Vector<T> &v) {=0A=
 	count =3D v.count;=0A=
 	size =3D v.size;=0A=
 	=0A=
 	delete [] table;=0A=
 	table =3D new T[v.size];=0A=
 =0A=
 	for (int element =3D 0; element < count; element++)=0A=
 		table[element] =3D v.table[element];=0A=
 	=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 21 "index.h" 2=0A=
 =0A=
 # 1 "stl.llist.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class T> class LListNode;=0A=
 template <class T> class LList;=0A=
 template <class T> class LListIterator;=0A=
 =0A=
 =0A=
 template <class T>=0A=
 class LListNode {=0A=
 public:=0A=
 	friend class LList<T>;=0A=
 	friend class LListIterator<T>;=0A=
 	=0A=
 						LListNode(void);=0A=
 						LListNode(T item);=0A=
 						LListNode(LListNode<T> &node);=0A=
 						~LListNode(void);=0A=
 protected:=0A=
 	T					data;=0A=
 	LListNode<T>		*next, *prev;=0A=
 };=0A=
 =0A=
 =0A=
 template<class T>=0A=
 LListNode<T>::LListNode(void) : data(__null ), next(__null ), =
 prev(__null ) { }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 LListNode<T>::LListNode(LListNode<T> &node) : data(node.data), =
 next(__null ), prev(__null ) { }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 LListNode<T>::LListNode(T item) : data(item), next(__null ), =
 prev(__null ) { }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 LListNode<T>::~LListNode(void) { }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 class LList {=0A=
 public:=0A=
 	friend class LListIterator<T>;=0A=
 	=0A=
 						LList(void);=0A=
  =0A=
 						LList(const LList<T> &theList);=0A=
 						~LList(void);=0A=
 	=0A=
 	void				Append(T item);=0A=
 	void				Prepend(T item);=0A=
 	void				Add(T item);=0A=
 	void				InsertAfter(T item, T after);=0A=
 	void				InsertBefore(T item, T before);=0A=
 	bool				Remove(T item);=0A=
 	void				UpdateIters(void);=0A=
 	T					Top(void) const;=0A=
 	T					Bottom(void) const;=0A=
 	int					Count(void) const;=0A=
 	bool				Contains(T item) const;=0A=
 	void				Clear(void);=0A=
 	void				Erase(void);=0A=
 	=0A=
 	LList<T> &			operator=3D(const LList<T> &l);=0A=
 protected:=0A=
 	LListNode<T> *		head;=0A=
 	LListNode<T> *		tail;=0A=
 	mutable LListIterator<T> *	iters;=0A=
 	int					count;=0A=
 };=0A=
 =0A=
 =0A=
 template <class T>=0A=
 LList<T>::LList(void) : head(__null ), tail(__null ), iters(__null ), =
 count(0) {=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template <class T>=0A=
 LList<T>::LList(const LList<T> &theList) : head(__null ), tail(__null =
 ), iters(__null ), count(0) {=0A=
  =0A=
 	=0A=
 	for (LListNode<T> *node =3D theList.head; node; node =3D =
 node->next)=0A=
 		Append(node->data);=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 LList<T>::~LList(void) {=0A=
 	Clear();=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::Append(T item) {		 =0A=
 	LListNode<T> *	node =3D new LListNode<T>(item);=0A=
 	=0A=
 	node->next =3D __null ;=0A=
 	node->prev =3D tail;=0A=
 	=0A=
 	if (head =3D=3D __null )	head =3D node;=0A=
 	if (tail)			tail->next =3D node;=0A=
 	tail =3D node;=0A=
 	=0A=
 	count++;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::Prepend(T item) {		 =0A=
 	LListNode<T> *	node =3D new LListNode<T>(item);=0A=
 	=0A=
 	node->prev =3D __null ;=0A=
 	node->next =3D head;=0A=
 	=0A=
 	if (head)		head->prev =3D node;=0A=
 	head =3D node;=0A=
 	if (!tail)	tail =3D node;=0A=
 	=0A=
 	count++;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::Add(T item) {			 =0A=
 	Prepend(item);=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::InsertAfter(T item, T after) {=0A=
 	LListNode<T> *	element;=0A=
 	LListNode<T> *	node =3D new LListNode<T>(item);=0A=
 	=0A=
 	for (element =3D head; element; element =3D element->next)=0A=
 		if (element->data =3D=3D after)=0A=
 			break;=0A=
 	=0A=
 	if (!element) {=0A=
 		node->next =3D head;=0A=
 		=0A=
 		if (tail =3D=3D __null )	tail =3D node;=0A=
 		if (head)			head->prev =3D node;=0A=
 		head =3D node;=0A=
 	} else {=0A=
 		node->prev =3D element;=0A=
 		if (element) {=0A=
 			node->next =3D element->next;=0A=
 			if (element->next)	element->next->prev =3D node;=0A=
 			element->next =3D node;=0A=
 		}=0A=
 		=0A=
 		if (tail =3D=3D element)	tail =3D node;=0A=
 		if (head =3D=3D __null )		head =3D node;=0A=
 	}=0A=
 	=0A=
 	count++;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::InsertBefore(T item, T before) {=0A=
 	LListNode<T> *	element;=0A=
 	LListNode<T> *	node =3D new LListNode<T>(item);=0A=
 	=0A=
 	for (element =3D head; element; element =3D element->next)=0A=
 		if (element->data =3D=3D before)=0A=
 			break;=0A=
 	=0A=
 	if (!element) {=0A=
 		node->prev =3D tail;=0A=
 		=0A=
 		if (head =3D=3D __null )	head =3D node;=0A=
 		if (tail)			tail->next =3D node;=0A=
 		tail =3D node;=0A=
 	} else {=0A=
 		node->next =3D element;=0A=
 		if (element) {=0A=
 			node->prev =3D element->prev;=0A=
 			if (element->prev)	element->prev->next =3D node;=0A=
 			element->prev =3D node;=0A=
 		}=0A=
 		=0A=
 		if (head =3D=3D element)	head =3D node;=0A=
 		if (tail =3D=3D __null )		tail =3D node;=0A=
 	}=0A=
 	=0A=
 	count++;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 bool LList<T>::Remove(T item) {=0A=
 	LListIterator<T> *	iter;=0A=
 	LListNode<T> *		element;=0A=
 	=0A=
 	if (!head)=0A=
 		return false;=0A=
 	=0A=
  =0A=
 		for (element =3D head; element; element =3D element->next)=0A=
 			if (element->data =3D=3D item)=0A=
 				break;=0A=
 		=0A=
 		if (!element)				return false;=0A=
 =0A=
 		if (element->prev)		element->prev->next =3D element->next;=0A=
 		else					head =3D element->next;=0A=
 		=0A=
 		if (element->next)		element->next->prev =3D element->prev;=0A=
 		else					tail =3D element->prev;=0A=
 		=0A=
 		for (iter =3D iters; iter; iter =3D iter->next)=0A=
 			iter->Update(element);=0A=
 		=0A=
 		delete element;=0A=
 		count--;=0A=
  =0A=
 	return true;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::UpdateIters(void) {=0A=
 	LListIterator<T> *iter;=0A=
 	for (iter =3D iters; iter; iter =3D iter->next)=0A=
 		iter->list =3D this;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 T LList<T>::Top(void) const {=0A=
 	return head ? head->data : __null ;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 T LList<T>::Bottom(void) const {=0A=
 	return tail ? tail->data : __null ;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 int LList<T>::Count(void) const {=0A=
 	return count;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 bool LList<T>::Contains(T item) const {=0A=
 	LListNode<T> *	element;=0A=
 	=0A=
 	for (element =3D head; element; element =3D element->next) {=0A=
 		if (element->data =3D=3D item)=0A=
 			return true;=0A=
 	}=0A=
 	return false;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::Clear(void) {=0A=
 	LListNode<T> *	element;=0A=
 	while(head) {=0A=
 		element =3D head;=0A=
 		head =3D head->next;=0A=
 		delete element;=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 void LList<T>::Erase(void) {=0A=
 	head =3D tail =3D __null ;=0A=
 	iters =3D __null ;=0A=
 	count =3D 0;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 LList<T> &LList<T>::operator=3D(const LList<T> &theList) {=0A=
 	Clear();=0A=
 	=0A=
 	for (LListNode<T> *node =3D theList.head; node; node =3D =
 node->next)=0A=
 		Append(node->data);=0A=
 	=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 class LListIterator {=0A=
 public:=0A=
 	friend class LList<T>;=0A=
 						LListIterator(void);=0A=
 						LListIterator(const LList<T> &theList);=0A=
 						~LListIterator(void);=0A=
 	void				Start(const LList<T> &theList);=0A=
 	void				Finish(void);=0A=
 	void				Restart(const LList<T> &theList);=0A=
 	void				Update(LListNode<T> *element);=0A=
 	=0A=
 	T					Peek(T def =3D 0);=0A=
 	T					Prev(T def =3D 0);=0A=
 	T					Next(T def =3D 0);=0A=
 	void				Reset(void);=0A=
 	=0A=
 protected:=0A=
  =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 	const LList<T> *	list;=0A=
 	LListNode<T> *		current;=0A=
 	LListIterator<T> *	next;=0A=
 };=0A=
 =0A=
 =0A=
 template<class T>=0A=
 LListIterator<T>::LListIterator(void) : list(__null ), current(__null =
 ), next(__null ) {=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 LListIterator<T>::LListIterator(const LList<T> &theList) : list(__null =
 ), current(__null ), next(__null ) {=0A=
 	Start(theList);=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 LListIterator<T>::~LListIterator(void) {=0A=
 	Finish();=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void LListIterator<T>::Start(const LList<T> &theList) {=0A=
 	if (list)		Finish();=0A=
 	if (!(list =3D (&theList)))=0A=
 		return;=0A=
 	next =3D list->iters;=0A=
 	list->iters =3D this;=0A=
 	Reset();=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void LListIterator<T>::Finish(void) {=0A=
 	if (!list)	return;=0A=
 	list->iters =3D next;=0A=
 	current =3D __null ;=0A=
 	next =3D __null ;=0A=
 	list =3D __null ;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void LListIterator<T>::Restart(const LList<T> &theList) {=0A=
 	Finish();=0A=
 	Start(theList);=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void LListIterator<T>::Update(LListNode<T> *element) {=0A=
 	if (current =3D=3D element)=0A=
 		current =3D current->prev;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 T LListIterator<T>::Peek(T def) {=0A=
 	return (current && current->next ? current->next->data : def);=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 T LListIterator<T>::Next(T def) {=0A=
 	if (!list)		return def;=0A=
 	if (!current)	return def;=0A=
 	T *data =3D &current->data;=0A=
 	current =3D current->next;=0A=
 	return *data;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 T LListIterator<T>::Prev(T def) {=0A=
 	if (!list)	return def;=0A=
 	current =3D current ? current->prev : list->tail;=0A=
 	return current ? current->data : def;=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 void LListIterator<T>::Reset(void) {=0A=
 	current =3D list ? list->head : __null ;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 22 "index.h" 2=0A=
 =0A=
 =0A=
 class TrigVarData;=0A=
 class Character;=0A=
 =0A=
 template <class T>=0A=
 class IndexData {=0A=
 public:=0A=
 							IndexData(void);=0A=
 							IndexData(const IndexData<T> &i);=0A=
 							~IndexData(void);=0A=
 					=0A=
 	IndexData<T> &			operator=3D(const IndexData<T> &i);=0A=
 						=0A=
 	VNum					vnum;				 =0A=
 	UInt32					number;				 =0A=
 	Vector<VNum>			triggers;			 =0A=
 	LList<TrigVarData *>	variables;			 =0A=
 	T *						proto;=0A=
 							int ( *func )(Character *ch, Ptr me, const char * cmd, char =
 *argument) ;		 =0A=
 };=0A=
 =0A=
 =0A=
 template <class T>=0A=
 IndexData<T>::IndexData(void) : vnum(-1), number(0), proto(__null ), =
 func(__null ) {=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 IndexData<T>::IndexData(const IndexData<T> &i) : vnum(i.vnum), =
 number(i.number), triggers(i.triggers),=0A=
 		variables(i.variables), proto(i.proto), func(i.func) {=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 IndexData<T>::~IndexData(void) {=0A=
 }=0A=
 =0A=
 =0A=
 template<class T>=0A=
 IndexData<T> &IndexData<T>::operator=3D(const IndexData<T> &i) {=0A=
 	vnum =3D i.vnum;=0A=
 	number =3D i.number;=0A=
 	triggers =3D i.triggers;=0A=
 	proto =3D i.proto;=0A=
 	func =3D i.func;=0A=
 	progtypes =3D i.progtypes;=0A=
 	mobprogs =3D i.mobprogs;=0A=
 	=0A=
 	return *this;=0A=
 }=0A=
 =0A=
 =0A=
 template <class T>=0A=
 class Index : public Map<VNum, IndexData<T> > { };=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 24 "characters.h" 2=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Descriptor;=0A=
 class Opinion;=0A=
 class Affect;=0A=
 class Event;=0A=
 class Alias;=0A=
 class Path;=0A=
 =0A=
 =0A=
  =0A=
 struct time_data {=0A=
 	time_t	birth;			 =0A=
 	time_t	logon;			 =0A=
 	UInt32	played;			 =0A=
 };=0A=
 =0A=
 =0A=
 struct title_type {=0A=
 	char *	title_m;=0A=
 	char *	title_f;=0A=
 };=0A=
 =0A=
 =0A=
 struct MiscData {=0A=
 				MiscData(void) : watching(0), carry_weight(0), carry_items(0), =
 clannum(-1) { }=0A=
 				MiscData(const MiscData &data) : watching(0), carry_weight(0), =
 carry_items(0),=0A=
 						clannum(data.clannum) { }=0A=
 	SInt32		watching;=0A=
 	=0A=
 	SInt32		carry_weight;=0A=
 	UInt8		carry_items;=0A=
 	VNum		clannum;=0A=
 };=0A=
 =0A=
 =0A=
 struct GeneralData {=0A=
 				GeneralData(void) : name(__null ), shortDesc(__null ), =
 longDesc(__null ),=0A=
 						description(__null ), title(__null ), sex(Neutral),=0A=
 						race(RACE_UNDEFINED), level(0), position(POS_STANDING),=0A=
 						weight(0), height(0), act(0), affected_by(0), fighting(__null ) { =
 }=0A=
 				GeneralData(const GeneralData &data) : name( data.name ->Share() =
 ),=0A=
 						description( data.description ->Share() ), title( data.title =
 ->Share() ),=0A=
 						sex(data.sex), race(data.race), level(data.level),=0A=
 						position(data.position), weight(data.weight), =
 height(data.height),=0A=
 						act(data.act), affected_by(data.affected_by), fighting(__null ), =
 misc(data.misc) {=0A=
 					this->conditions[0] =3D data.conditions[0];=0A=
 					this->conditions[1] =3D data.conditions[1];=0A=
 					this->conditions[2] =3D data.conditions[2];=0A=
 				}=0A=
 	SString *	name;=0A=
 	SString *	shortDesc;=0A=
 	SString *	longDesc;=0A=
 	SString *	description;=0A=
 	SString *	title;=0A=
 	=0A=
 	Sex			sex;=0A=
 	Race		race;=0A=
 	SInt8		level;=0A=
 	=0A=
 	Position	position;=0A=
 	=0A=
 	UInt16		weight;=0A=
 	UInt16		height;=0A=
 	=0A=
 	Flags		act;=0A=
 	Flags		affected_by;=0A=
 	=0A=
 	SInt8		conditions[3];=0A=
 	=0A=
 	Character *	fighting;=0A=
 =0A=
 	MiscData	misc;	=0A=
 };=0A=
 =0A=
 =0A=
 struct PlayerSpecialData {=0A=
 	SInt8			skills[MAX_SKILLS+1];=0A=
 	UInt32			wimp_level;=0A=
 	VNum			load_room;=0A=
 	Flags			preferences;=0A=
 	Flags			channels;=0A=
 	Flags			staff_flags;=0A=
 	UInt8			bad_pws;=0A=
 	=0A=
 	SInt8			clanrank;=0A=
 	=0A=
 	UInt32			pracs;=0A=
 	=0A=
 	UInt32			PKills, MKills;=0A=
 	UInt32			PDeaths, MDeaths;=0A=
 	float			killScore;=0A=
 	=0A=
 	struct {=0A=
 		char *		listen;=0A=
 		char *		rreply;=0A=
 		char *		rreply_name;=0A=
 		Flags		deaf;		 =0A=
 		Flags		allow;		 =0A=
 		Flags		deny;		 =0A=
 	} imc;=0A=
 };=0A=
 =0A=
 =0A=
 class PlayerData {=0A=
 public:=0A=
 					PlayerData(void);=0A=
 					~PlayerData(void);=0A=
 	=0A=
 	struct PlayerSpecialData special;=0A=
 	char			passwd[MAX_PWD_LENGTH+1];=0A=
 	char *			afk;=0A=
 	char *			prompt;=0A=
 	char *			host;=0A=
 	char *			email;=0A=
 	char *			poofin;=0A=
 	char *			poofout;=0A=
 	LList<Alias *>	aliases;=0A=
 	time_data		time;=0A=
 	=0A=
 	SInt32			last_tell;=0A=
 	=0A=
 	SInt32			idnum;=0A=
 	SInt32			timer;=0A=
 };=0A=
 =0A=
 =0A=
 class MobData {=0A=
 public:=0A=
 					MobData(void);=0A=
 					MobData(const MobData &mob);=0A=
 					~MobData(void);=0A=
 	=0A=
 	UInt32			attack_type;=0A=
 	Position		default_pos;=0A=
 	UInt8			last_direction;=0A=
 	UInt8			tick;=0A=
 	UInt8			dodge;=0A=
 	struct Dice		damage;=0A=
 	struct Dice		hitdice;=0A=
 =0A=
 	Opinion *		hates;=0A=
 	Opinion *		fears;=0A=
  =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 struct Abilities {=0A=
 				Abilities(void) : Co(0), Ag(0), SD(0), Me(0), Re(0), St(0), Qu(0), =
 Pr(0), In(0), Em(0) { }=0A=
 				Abilities(const Abilities &a) { *this =3D a; };=0A=
 	UInt8		Co, Ag, SD, Me, Re;=0A=
 	UInt8		St, Qu, Pr, In, Em;=0A=
 };=0A=
 =0A=
 =0A=
 struct Points {=0A=
 				Points(void) : hit(0), max_hit(0), move(0), max_move(0), =
 mana(0),=0A=
 						max_mana(0), mp(0), armor(0), offense(0), defense(0) { }=0A=
 				Points(const Points &p) : hit(p.hit), max_hit(p.max_hit), =
 move(p.move),=0A=
 						max_move(p.max_move), mana(p.mana), max_mana(p.max_mana), =
 mp(p.mp),=0A=
 						armor(p.armor), offense(p.offense), defense(p.defense) { }=0A=
 	SInt16		hit, max_hit;=0A=
 	SInt16		move, max_move;=0A=
 	SInt16		mana, max_mana;=0A=
 	=0A=
 	SInt32		mp;=0A=
 =0A=
 	SInt8		armor;			 =0A=
 	SInt16		offense;		 =0A=
 	SInt16		defense;		 =0A=
 };=0A=
 =0A=
 =0A=
 class Character : public MUDObject {=0A=
 public:=0A=
 	friend void close_socket(Descriptor *d);=0A=
 						Character(void);=0A=
 						Character(const Character &ch);=0A=
 	virtual				~Character(void);=0A=
 	=0A=
  =0A=
 	virtual const char *Name(void) const;=0A=
 	const char *		RealName(void) const;=0A=
 	=0A=
 	SInt32				CalcLevel(void);=0A=
 	=0A=
  =0A=
 	void				ToWorld(void);=0A=
 	void				FromWorld(void);=0A=
 	=0A=
 	void				Save(VNum load_room =3D NOWHERE);=0A=
 	SInt32				Load(char *name);=0A=
 	=0A=
 	void				Initialize(void);=0A=
 	void				Reset(void);=0A=
 	=0A=
  =0A=
  =0A=
 	void				set_title(char *title =3D __null );=0A=
 	void				set_level(UInt8	level);=0A=
 	=0A=
 	 =0A=
 	virtual void		Extract(void);=0A=
 	void				EventCleanup(void);=0A=
 	=0A=
 	virtual void		FromRoom(void);=0A=
 	virtual void		ToRoom(VNum room);=0A=
 	=0A=
 	void				update_pos(void);=0A=
 	void				update_objects(void);=0A=
 	void				AffectTotal(void);=0A=
 	=0A=
 	void				Appear(void);=0A=
 	=0A=
 	void				die_follower(void);=0A=
 	void				stop_follower(void);=0A=
 	=0A=
 	void				Fight(Character *vict);=0A=
 	void				StopFighting(void);=0A=
 	void				Die(Character *killer);=0A=
 	SInt32				Hit(Character *victim, SInt32 type, SInt32 times, SInt32 =
 range =3D 0);=0A=
 	SInt32				Damage(Character *attacker, SInt32 damage, SInt32 type, =
 SInt32 times);=0A=
 	SInt32				Critical(Character *attacker, char critical, SInt32 =
 type);=0A=
 	=0A=
 	void				LoseBodypart(SInt32 part);=0A=
 	=0A=
 	Relation::Relation	GetRelation(const Character *target) const;=0A=
 	VNum				StartRoom(void);=0A=
 	=0A=
 	 =0A=
 	bool				LightOk(void) const;=0A=
 	bool				InvisOk(const Character *target) const;=0A=
 	bool				CanSeeStaff(const Character *target) const;=0A=
 	bool				CanSee(const Character *target) const;=0A=
 	bool				CanSee(const Object *target) const;=0A=
 	=0A=
 	bool				CanUse(const Object *obj) const;=0A=
 	=0A=
 	SInt32				Send(const char *messg, ...) __attribute__ ((format (printf, =
 2, 3)));=0A=
 	=0A=
 	SInt32				pfilepos;			 =0A=
  =0A=
 	VNum				was_in_room;		 =0A=
 	int					wait;=0A=
 	=0A=
 	GeneralData			general;			 =0A=
 	Abilities			real_abils;			 =0A=
 	Abilities			aff_abils;			 =0A=
 	Points				points;				 =0A=
 	PlayerData *		player;				 =0A=
 	MobData *			mob;				 =0A=
 	=0A=
 	Flags				parts,				 =0A=
 						realParts;			 =0A=
 	=0A=
 	LList<Affect *>		affected;			 =0A=
 	=0A=
 mutable	LList<Object *>	carrying;				 =0A=
 	Object *			equipment[NUM_WEARS];	 =0A=
 	=0A=
 	Descriptor *		desc;				 =0A=
 	=0A=
 	LList<Character *>	followers;			 =0A=
 	Character *			master;				 =0A=
 	=0A=
 	LList<Event *>		events;=0A=
 	Event *				points_event[3];=0A=
 	=0A=
 	Path *				path;=0A=
 =0A=
 	Object *			sitting_on;=0A=
 =0A=
 public:=0A=
 	static Character *	Read(VNum nr);=0A=
 	static bool			Find(VNum vnum);=0A=
 	=0A=
  =0A=
 	static Index<Character>		Index;=0A=
 =0A=
 	void				Parser(char *input);=0A=
  =0A=
 public:=0A=
 	virtual Character *		TargetChar(const char *arg) const;=0A=
 	virtual Object *		TargetObj(const char *arg) const;=0A=
 	virtual VNum			TargetRoom(const char *arg) const;=0A=
 };=0A=
 =0A=
 =0A=
 extern LList<Character *>	Characters;=0A=
 extern LList<Character *>	PurgedChars;=0A=
 extern LList<Character *>	CombatList;=0A=
 =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 struct PlayerIndex {=0A=
 				PlayerIndex(void) : name(__null ), id(0) { }=0A=
 	char *		name;=0A=
 	UInt32		id;=0A=
 };=0A=
 =0A=
 extern Vector<PlayerIndex>	player_table;=0A=
 =0A=
 extern const struct title_type titles[5 ][12];=0A=
 extern const int thaco[5 +1][2];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 inline bool Character::Find(VNum vnum) {	return Index.Map::Find(vnum);	=
 }=0A=
 =0A=
 =0A=
 # 21 "structs.h" 2=0A=
 =0A=
 # 1 "descriptors.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/netinet/in.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/cygwin/in.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/cygwin/types.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C"=0A=
 {=0A=
 =0A=
 =0A=
 # 59 "/usr/include/cygwin/types.h" 3=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 # 21 "/usr/include/cygwin/in.h" 2 3=0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
   IPPROTO_IP =3D 0,		 =0A=
   IPPROTO_ICMP =3D 1,		 =0A=
   IPPROTO_IGMP =3D 2,		 =0A=
   IPPROTO_IPIP =3D 4,		 =0A=
   IPPROTO_TCP =3D 6,		 =0A=
   IPPROTO_EGP =3D 8,		 =0A=
   IPPROTO_PUP =3D 12,		 =0A=
   IPPROTO_UDP =3D 17,		 =0A=
   IPPROTO_IDP =3D 22,		 =0A=
 =0A=
   IPPROTO_RAW =3D 255,		 =0A=
   IPPROTO_MAX=0A=
 };=0A=
 =0A=
   =0A=
 enum=0A=
   {=0A=
     IPPORT_ECHO =3D 7,		 =0A=
     IPPORT_DISCARD =3D 9,		 =0A=
     IPPORT_SYSTAT =3D 11,		 =0A=
     IPPORT_DAYTIME =3D 13,	 =0A=
     IPPORT_NETSTAT =3D 15,	 =0A=
     IPPORT_FTP =3D 21,		 =0A=
     IPPORT_TELNET =3D 23,		 =0A=
     IPPORT_SMTP =3D 25,		 =0A=
     IPPORT_TIMESERVER =3D 37,	 =0A=
     IPPORT_NAMESERVER =3D 42,	 =0A=
     IPPORT_WHOIS =3D 43,		 =0A=
     IPPORT_MTP =3D 57,=0A=
 =0A=
     IPPORT_TFTP =3D 69,		 =0A=
     IPPORT_RJE =3D 77,=0A=
     IPPORT_FINGER =3D 79,		 =0A=
     IPPORT_TTYLINK =3D 87,=0A=
     IPPORT_SUPDUP =3D 95,		 =0A=
 =0A=
 =0A=
     IPPORT_EXECSERVER =3D 512,	 =0A=
     IPPORT_LOGINSERVER =3D 513,	 =0A=
     IPPORT_CMDSERVER =3D 514,=0A=
     IPPORT_EFSSERVER =3D 520,=0A=
 =0A=
      =0A=
     IPPORT_BIFFUDP =3D 512,=0A=
     IPPORT_WHOSERVER =3D 513,=0A=
     IPPORT_ROUTESERVER =3D 520,=0A=
 =0A=
      =0A=
     IPPORT_RESERVED =3D 1024,=0A=
 =0A=
      =0A=
     IPPORT_USERRESERVED =3D 5000=0A=
   };=0A=
 =0A=
 =0A=
  =0A=
 struct in_addr {=0A=
 	unsigned int	s_addr;=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 struct ip_mreq=0A=
 {=0A=
 	struct in_addr imr_multiaddr;	 =0A=
 	struct in_addr imr_interface;	 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 struct sockaddr_in {=0A=
   short int		sin_family;	 =0A=
   unsigned short int	sin_port;	 =0A=
   struct in_addr	sin_addr;	 =0A=
 =0A=
    =0A=
   unsigned char		__pad[16  - sizeof(short int) -=0A=
 			sizeof(unsigned short int) - sizeof(struct in_addr)];=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 # 1 "/usr/include/asm/byteorder.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern unsigned long int	ntohl(unsigned long int);=0A=
 extern unsigned short int	ntohs(unsigned short int);=0A=
 extern unsigned long int	htonl(unsigned long int);=0A=
 extern unsigned short int	htons(unsigned short int);=0A=
 =0A=
 extern __inline__ unsigned long int	__ntohl(unsigned long int);=0A=
 extern __inline__ unsigned short int	__ntohs(unsigned short int);=0A=
 extern __inline__ unsigned long int	__constant_ntohl(unsigned long =
 int);=0A=
 extern __inline__ unsigned short int	__constant_ntohs(unsigned short =
 int);=0A=
 =0A=
 extern __inline__ unsigned long int=0A=
 __ntohl(unsigned long int x)=0A=
 {=0A=
 	__asm__("xchgb %b0,%h0\n\t"	 =0A=
 		"rorl $16,%0\n\t"	 =0A=
 		"xchgb %b0,%h0"		 =0A=
 		:"=3Dq" (x)=0A=
 		: "0" (x));=0A=
 	return x;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __inline__ unsigned short int=0A=
 __ntohs(unsigned short int x)=0A=
 {=0A=
 	__asm__("xchgb %b0,%h0"		 =0A=
 		: "=3Dq" (x)=0A=
 		:  "0" (x));=0A=
 	return x;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 96 "/usr/include/asm/byteorder.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 160 "/usr/include/cygwin/in.h" 2 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct in6_addr=0A=
 {=0A=
 	unsigned char s6_addr[16];=0A=
 };=0A=
 =0A=
 struct sockaddr_in6=0A=
 {=0A=
 	unsigned short sin6_family;=0A=
 	unsigned short sin6_port;=0A=
 	unsigned long sin6_flowinfo;=0A=
 	struct in6_addr sin6_addr;=0A=
 };=0A=
 =0A=
 =0A=
 # 14 "/usr/include/netinet/in.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 19 "descriptors.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Editor;=0A=
 class Character;=0A=
 =0A=
  =0A=
 =0A=
  =0A=
 enum State {=0A=
 	CON_PLAYING,		 =0A=
 	CON_CLOSE,			 =0A=
 	CON_GET_NAME,		 =0A=
 	CON_NAME_CNFRM,		 =0A=
 	CON_PASSWORD,		 =0A=
 	CON_NEWPASSWD,		 =0A=
 	CON_CNFPASSWD,		 =0A=
 	CON_QSEX,			 =0A=
 	CON_QRACE,			 =0A=
 	CON_RMOTD,			 =0A=
 	CON_MENU,			 =0A=
 	CON_EXDESC,			 =0A=
 	CON_CHPWD_GETOLD,	 =0A=
 	CON_CHPWD_GETNEW,	 =0A=
 	CON_CHPWD_VRFY,		 =0A=
 	CON_DELCNF1,		 =0A=
 	CON_DELCNF2,		 =0A=
 	CON_OEDIT,			 =0A=
 	CON_REDIT,			 =0A=
 	CON_ZEDIT,			 =0A=
 	CON_MEDIT,			 =0A=
 	CON_SEDIT,			 =0A=
 	CON_AEDIT,			 =0A=
 	CON_HEDIT,			 =0A=
 	CON_CEDIT,			 =0A=
  =0A=
 	CON_TEXTED,			 =0A=
 	CON_SCRIPTEDIT,		 =0A=
 	CON_DISCONNECT,		 =0A=
 	CON_IDENT,			 =0A=
 	CON_GETEMAIL=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 struct txt_block {=0A=
 	char *	text;=0A=
 	int		aliased;=0A=
 	struct txt_block *next;=0A=
 };=0A=
 =0A=
 =0A=
 struct txt_q {=0A=
 	struct txt_block *head;=0A=
 	struct txt_block *tail;=0A=
 };=0A=
 =0A=
 class Descriptor {=0A=
 public:=0A=
 						Descriptor(UInt32 desc);=0A=
 						~Descriptor(void);=0A=
 	=0A=
 	Character *			Original(void);=0A=
 	=0A=
 	SInt32				Write(const char *fmt, ...) __attribute__ ((format (printf, =
 2, 3)));=0A=
  =0A=
 =0A=
 public:=0A=
 	int 			descriptor;				 =0A=
 	char				host[HOST_LENGTH+1];	 =0A=
 	UInt8				bad_pws;				 =0A=
 	UInt8				idle_tics;				 =0A=
 	State				connected;				 =0A=
  =0A=
 	SInt32				desc_num;				 =0A=
 	time_t				login_time;				 =0A=
 	=0A=
 	 =0A=
 	char *				showstr_head;			 =0A=
 	char **				showstr_vector;			 =0A=
 	UInt8				showstr_count;			 =0A=
 	UInt8				showstr_page;			 =0A=
 	=0A=
 	 =0A=
 	char **				str;					 =0A=
 	char *				backstr;				 =0A=
 	size_t				max_str;				 =0A=
 	SInt32				mail_to;				 =0A=
 	char *				imc_mail_to;			 =0A=
 =0A=
 	bool				has_prompt;				 =0A=
 =0A=
 	 =0A=
 	char				inbuf[MAX_RAW_INPUT_LENGTH];	 =0A=
 	char				last_input[MAX_INPUT_LENGTH];	 =0A=
 	char				small_outbuf[SMALL_BUFSIZE];	 =0A=
 	char **				history;				 =0A=
 	int					history_pos;			 =0A=
 	char *				output;					 =0A=
 	SInt32				bufptr;					 =0A=
 	SInt32				bufspace;				 =0A=
 =0A=
 	struct txt_block *	large_outbuf;			 =0A=
 =0A=
 =0A=
 =0A=
 	struct txt_q		input;					 =0A=
 =0A=
 	 =0A=
 	Character *			character;				 =0A=
 	Character *			original;				 =0A=
 	Descriptor *		snooping;				 =0A=
 	Descriptor *		snoop_by;				 =0A=
 =0A=
 	 =0A=
 	Editor *			editor;=0A=
 	char *				textstorage;=0A=
 	=0A=
 	struct sockaddr_in	saddr;=0A=
 	char				host_ip[HOST_LENGTH + 1];=0A=
 	char				host_name[HOST_LENGTH + 1];=0A=
 	char				user_name[HOST_LENGTH + 1];=0A=
 };=0A=
 =0A=
 inline Character *	Descriptor::Original(void) {=0A=
 	return this->original ? this->original : this->character;=0A=
 }=0A=
 =0A=
 extern LList<Descriptor *>	descriptor_list;=0A=
 =0A=
 =0A=
 # 22 "structs.h" 2=0A=
 =0A=
 # 1 "objects.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "object.defs.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	ITEM_GLOW			=3D (1 << 0),		 =0A=
 	ITEM_HUM			=3D (1 << 1),		 =0A=
 	ITEM_NORENT			=3D (1 << 2),		 =0A=
 	ITEM_NODONATE		=3D (1 << 3),		 =0A=
 	ITEM_NOINVIS		=3D (1 << 4),		 =0A=
 	ITEM_INVISIBLE		=3D (1 << 5),		 =0A=
 	ITEM_NODROP			=3D (1 << 6),		 =0A=
 	ITEM_ANTI_HUMAN		=3D (1 << 7),		 =0A=
 	ITEM_ANTI_SYNTHETIC	=3D (1 << 8),		 =0A=
 	ITEM_ANTI_PREDATOR	=3D (1 << 9),		 =0A=
 	ITEM_ALIEN			=3D (1 << 10),	 =0A=
 	ITEM_NOSELL			=3D (1 << 11),	 =0A=
 	ITEM_NOLOSE			=3D (1 << 12),	 =0A=
 	ITEM_MOVEABLE		=3D (1 << 13),	 =0A=
 	ITEM_MISSION		=3D (1 << 14),	 =0A=
 	ITEM_TWO_HAND		=3D (1 << 15),=0A=
 =0A=
 	ITEM_APPROVED		=3D (1 << 30),	 =0A=
 	ITEM_DELETED		=3D (1 << 31)		 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 19 "objects.h" 2=0A=
 =0A=
 # 1 "affects.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "event.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 # 1 "queue.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class QueueElement {=0A=
 public:=0A=
 						QueueElement(Ptr data, SInt32 key);=0A=
 	=0A=
 	Ptr					data;=0A=
 	SInt32				key;=0A=
 	QueueElement		*prev, *next;=0A=
 };=0A=
 =0A=
 class Queue {=0A=
 public:=0A=
 						Queue(void);=0A=
 						~Queue(void);=0A=
 						=0A=
 	QueueElement *		Enqueue(Ptr data, SInt32 key);=0A=
 	void				Dequeue(QueueElement *qe);=0A=
 	Ptr					QueueHead(void);=0A=
 	SInt32				QueueKey(void);=0A=
 	=0A=
 	QueueElement		*head[10 ],=0A=
 						*tail[10 ];=0A=
 };=0A=
 =0A=
 =0A=
 # 22 "event.h" 2=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 class EventData {=0A=
 public:=0A=
 						EventData(void) { };=0A=
 	virtual				~EventData(void) { };=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 class Event {=0A=
 public:=0A=
 						Event(SInt32 ( *func )(EventData * event_obj, Event *event) , =
 EventData * event_obj, UInt32 when, Event **masterPtr);=0A=
 						~Event(void);=0A=
 	SInt32				Run(void);=0A=
 	void				Cancel(void);=0A=
 	UInt32				Time(void) const;=0A=
 	=0A=
 protected:=0A=
 	SInt32 ( *func )(EventData * event_obj, Event *event) ;=0A=
 	EventData *			object;=0A=
 	QueueElement *		queue;=0A=
  =0A=
  =0A=
 	bool				running;=0A=
 	=0A=
 public:=0A=
 	static void			Initialize(void);=0A=
 	static void			Shutdown(void);=0A=
 	static void			Process(void);=0A=
 	static Event *		Find(LList<Event *> &list, SInt32 ( *func )(EventData =
 * event_obj, Event *event) );=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class FallingEvent : public EventData {=0A=
 public:=0A=
 	SInt32	faller;=0A=
 	SInt32	previous;=0A=
 };=0A=
 =0A=
 =0A=
 class GrenadeEvent : public EventData {=0A=
 public:=0A=
 	SInt32	obj;=0A=
 	SInt32	ch;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 19 "affects.h" 2=0A=
 =0A=
 =0A=
 =0A=
 class Character;=0A=
 class Event;=0A=
 =0A=
 =0A=
 class Affect {=0A=
 public:=0A=
 	enum Type { NoAffect, Blind, Charm, Sleep, Poison, Sneak, Tired };	 =
 =0A=
 	static const int Number =3D 6;=0A=
 	static const char *affects[];=0A=
 	=0A=
 public:=0A=
 	=0A=
 	 =0A=
 	enum Location {=0A=
 		None,=0A=
 		Co, Ag, SD, Me, Re,=0A=
 		St, Qu, Pr, In, Em,=0A=
 		=0A=
 		Weight, Height,=0A=
 		Hit, Move,=0A=
 		=0A=
 		Offense, Defense=0A=
 	};=0A=
 	=0A=
 					Affect(Type t, SInt32 mod, Location loc, Flags bv);=0A=
 					Affect(const Affect &aff, Character *ch);=0A=
 					~Affect(void);=0A=
 	=0A=
 	void			Remove(Character *ch);=0A=
 	void			ToChar(Character *ch, UInt32 duration);=0A=
 	void			Join(Character *ch, UInt32 duration, bool add_dur, bool =
 avg_dur, bool add_mod, bool avg_mod);=0A=
 	=0A=
 	static void		FromChar(Character *ch, Type type);=0A=
 	static bool		AffectedBy(Character *ch, Type type);=0A=
 	static void		Modify(Character * ch, Location loc, SInt8 mod, Flags =
 bitv, bool add);=0A=
 	void			Modify(Character * ch, bool add) { Modify(ch, location, =
 modifier, flags, add); }=0A=
 =0A=
 	static SInt32 ( AffEvent )(EventData * event_obj, Event *event) ;=0A=
 	=0A=
 	inline Type		AffType(void) const			{ return type;							}=0A=
 	inline Location	AffLocation(void) const		{ return location;						}=0A=
 	inline SInt32	AffModifier(void) const		{ return modifier;						}=0A=
 	inline Flags	AffFlags(void) const		{ return flags;							}=0A=
 	=0A=
 	inline SInt32	Time(void) const			{ return event ? event->Time() : 0;		=
 }=0A=
 	=0A=
 protected:=0A=
 	Type			type;			 =0A=
 	Location		location;		 =0A=
 	SInt32			modifier;		 =0A=
 	Flags			flags;			 =0A=
 	=0A=
 	Event *			event;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 20 "objects.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class ExtraDesc;=0A=
 class Event;=0A=
 =0A=
 =0A=
  =0A=
 class GunData {=0A=
 public:=0A=
 						GunData(void);=0A=
 						GunData(const GunData &data);=0A=
 						~GunData(void);=0A=
 						=0A=
 	Type				attack;					 =0A=
 	UInt8				rate;					 =0A=
 	UInt8				rank;					 =0A=
 	UInt8				range;					 =0A=
 	SInt8				closeRange, longRange;=0A=
 	struct {=0A=
 		VNum			vnum;					 =0A=
 		SInt16			amount;					 =0A=
 		Type			type;					 =0A=
 	} ammo;=0A=
 };=0A=
 =0A=
 =0A=
 class Object : public MUDObject {=0A=
 public:=0A=
 	class Affect {=0A=
 	public:=0A=
 							Affect(void) : location(::Affect::None), modifier(0) { }	=0A=
 		::Affect::Location	location;		 =0A=
 		SInt16				modifier;		 =0A=
 	};=0A=
 =0A=
 public:=0A=
 						Object(void);=0A=
 						Object(const Object &proto);=0A=
 	virtual				~Object(void);=0A=
 	=0A=
 	 =0A=
 	virtual const char *Name(void) const;=0A=
 	virtual void		Extract(void);=0A=
 	virtual void		ToRoom(VNum room);=0A=
 	virtual void		FromRoom(void);=0A=
 	VNum				AbsoluteRoom(void) const;=0A=
 	=0A=
 =0A=
 	void				ToChar(Character *ch);=0A=
 	void				FromChar(void);=0A=
 	void				ToObj(Object *obj_to);=0A=
 	void				FromObj(void);=0A=
 	void				Unequip(void);=0A=
 	void				Equip(Character *ch);=0A=
 	=0A=
 	void				Update(UInt32 use);=0A=
 	=0A=
 	bool				Load(FILE *fl, char *filename);=0A=
 	void				Save(FILE *fl, SInt32 location);=0A=
 	=0A=
 	SInt32				TotalValue(void);=0A=
 	void				ExtractNoKeep(Object *corpse, Character *ch);=0A=
 	=0A=
  =0A=
  =0A=
 	=0A=
  =0A=
 	=0A=
 	SString *			name;					 =0A=
 	SString *			description;			 =0A=
 	SString *			shortDesc;				 =0A=
 	SString *			actionDesc;				 =0A=
 	LList<ExtraDesc *>	exDesc;					 =0A=
 	=0A=
 	Character *			carried_by;				 =0A=
 	Character *			worn_by;				 =0A=
 	SInt8				worn_on;				 =0A=
 	Object *			in_obj;					 =0A=
 	=0A=
 	LList<Object *>		contents;				 =0A=
 	=0A=
 	LList<Event *>		events;					 =0A=
 	=0A=
 	 =0A=
 	SInt32				value[8];				 =0A=
 	SInt32				cost;					 =0A=
 	SInt32				weight;					 =0A=
 	UInt32				timer;					 =0A=
 	Type				type;					 =0A=
 	Flags				wear;					 =0A=
 	Flags				extra;					 =0A=
 	Flags				affects;				 =0A=
 	=0A=
 	 =0A=
 	UInt32				speed;					 =0A=
 	=0A=
 	GunData *			gun;					 =0A=
 	=0A=
 	Affect				affect[6 ];	 =0A=
 	=0A=
 public:=0A=
  =0A=
 	static bool			Find(VNum vnum);=0A=
 	static Object *		Read(VNum nr);=0A=
 	=0A=
 	static Index<Object>Index;=0A=
 	=0A=
 	static Object *		Create(void);=0A=
 	void				Parser(char *input);=0A=
 	=0A=
  =0A=
 public:=0A=
 	virtual Character *	TargetChar(const char *arg) const;=0A=
 	virtual Object *	TargetObj(const char *arg) const;=0A=
 	virtual VNum		TargetRoom(const char *arg) const;=0A=
 };=0A=
 =0A=
 =0A=
 inline const char *Object::Name(void) const {	return shortDesc->Data();	=
 	}=0A=
 =0A=
 =0A=
 extern LList<Object *>	Objects;=0A=
 extern LList<Object *>	PurgedObjs;=0A=
 =0A=
 void equip_char(Character * ch, Object * obj, UInt8 pos);=0A=
 Object *unequip_char(Character * ch, UInt8 pos);=0A=
 =0A=
 =0A=
 inline bool Object::Find(VNum vnum) {	return Index.Map::Find(vnum);	=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 23 "structs.h" 2=0A=
 =0A=
 # 1 "rooms.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Editor;=0A=
 class ExtraDesc;=0A=
 =0A=
  =0A=
 class RoomDirection {=0A=
 public:=0A=
 	friend class Room;=0A=
 	friend class REdit;=0A=
 	=0A=
 						RoomDirection(void);=0A=
 						RoomDirection(RoomDirection *dir);=0A=
 						~RoomDirection(void);=0A=
 	=0A=
 	const char *		Keyword(const char *def =3D __null ) const;=0A=
 	const char *		Description(const char *def =3D __null ) const;=0A=
 =0A=
 	Flags				exit_info;				 =0A=
 	VNum				key;					 =0A=
 	VNum				to_room;				 =0A=
 =0A=
 protected:=0A=
 	char *				general_description;=0A=
 	char *				keyword;=0A=
 =0A=
 public:=0A=
 	void				Parser(char *input);=0A=
 };=0A=
 =0A=
 =0A=
 inline const char *	RoomDirection::Keyword(const char *def) const {=0A=
 	return (keyword ? keyword : def);=0A=
 }=0A=
 =0A=
 =0A=
 inline const char *	RoomDirection::Description(const char *def) const =
 {=0A=
 	return (general_description ? general_description : def);=0A=
 }=0A=
 =0A=
 =0A=
 class Ship;=0A=
  =0A=
 class Room : public Scriptable {=0A=
 public:=0A=
 	friend class REdit;=0A=
 						Room(void);=0A=
 	virtual				~Room(void);=0A=
 	=0A=
 	const char *		Name(const char *def =3D __null ) const;=0A=
 	const char *		Description(const char *def =3D __null ) const;=0A=
 	=0A=
 	SInt32				Send(const char *messg, ...) const __attribute__ ((format =
 (printf, 2, 3)));=0A=
 	VNum				AbsoluteRoom(void) const;=0A=
 	=0A=
  =0A=
 	=0A=
 	UInt16				zone;					 =0A=
 	Sector::Sector		sector_type;			 =0A=
 	Flags				flags;					 =0A=
 	=0A=
 	LList<ExtraDesc *>	ex_description;			 =0A=
 	=0A=
 	RoomDirection *		dir_option[NUM_OF_DIRS];	 =0A=
 	=0A=
 	UInt8				light;					 =0A=
 	int ( *func )(Character *ch, Ptr me, const char * cmd, char *argument) =
 ;=0A=
 	=0A=
 	LList<Object *>		contents;				 =0A=
 	LList<Character *>	people;					 =0A=
 	LList<Ship *>		ships;=0A=
 	=0A=
 protected:=0A=
 	char *				name;=0A=
 	char *				description;=0A=
 	=0A=
 public:=0A=
  =0A=
 	static bool			Find(VNum vnum);=0A=
 	=0A=
 	void				Parse(char *input);=0A=
 	=0A=
  =0A=
 public:=0A=
 	virtual Character *		TargetChar(const char *arg) const;=0A=
 	virtual Object *		TargetObj(const char *arg) const;=0A=
 	virtual VNum			TargetRoom(const char *arg) const;=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 extern Map<VNum, Room>world;=0A=
 =0A=
 =0A=
  =0A=
 extern VNum			mortal_start_room;=0A=
 extern VNum			immort_start_room;=0A=
 extern VNum			frozen_start_room;=0A=
 =0A=
 =0A=
  =0A=
 void check_start_rooms(void);=0A=
  =0A=
 =0A=
 =0A=
  =0A=
 inline const char *	Room::Name(const char *def) const {=0A=
 	return (name ? name : def);=0A=
 }=0A=
 =0A=
 =0A=
 inline const char *	Room::Description(const char *def) const {=0A=
 	return (description ? description : def);=0A=
 }=0A=
 =0A=
 =0A=
 inline VNum			Room::AbsoluteRoom(void) const {=0A=
 	return Virtual();=0A=
 }=0A=
 =0A=
 =0A=
 inline bool Room::Find(VNum vnum) {=0A=
 	return world.Find(vnum);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 24 "structs.h" 2=0A=
 =0A=
 =0A=
 =0A=
 # 19 "comm.cp" 2=0A=
 =0A=
 =0A=
 # 1 "/usr/include/fcntl.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/fcntl.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 struct flock {=0A=
 	short	l_type;		 =0A=
 	short	l_whence;	 =0A=
 	long	l_start;	 =0A=
 	long	l_len;		 =0A=
 	short	l_pid;		 =0A=
 	short	l_xxx;		 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 struct eflock {=0A=
 	short	l_type;		 =0A=
 	short	l_whence;	 =0A=
 	long	l_start;	 =0A=
 	long	l_len;		 =0A=
 	short	l_pid;		 =0A=
 	short	l_xxx;		 =0A=
 	long	l_rpid;		 =0A=
 	long	l_rsys;		 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/stat.h" 1 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 struct	stat =0A=
 {=0A=
   dev_t		st_dev;=0A=
   ino_t		st_ino;=0A=
   mode_t	st_mode;=0A=
   nlink_t	st_nlink;=0A=
   uid_t		st_uid;=0A=
   gid_t		st_gid;=0A=
   dev_t		st_rdev;=0A=
   off_t		st_size;=0A=
    =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   time_t	st_atime;=0A=
   long		st_spare1;=0A=
   time_t	st_mtime;=0A=
   long		st_spare2;=0A=
   time_t	st_ctime;=0A=
   long		st_spare3;=0A=
   long		st_blksize;=0A=
   long		st_blocks;=0A=
   long	st_spare4[2];=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 94 "/usr/include/sys/stat.h" 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int	__attribute__((__cdecl__))   chmod   ( const char *__path, mode_t =
 __mode )  ;=0A=
 int     __attribute__((__cdecl__))   fchmod   (int __fd, mode_t __mode) =
  ;=0A=
 int	__attribute__((__cdecl__))   fstat   ( int __fd, struct stat =
 *__sbuf )  ;=0A=
 int	__attribute__((__cdecl__))   mkdir   ( const char *_path, mode_t =
 __mode )  ;=0A=
 int	__attribute__((__cdecl__))   mkfifo   ( const char *__path, mode_t =
 __mode )  ;=0A=
 int	__attribute__((__cdecl__))   stat   ( const char *__path, struct =
 stat *__sbuf )  ;=0A=
 mode_t	__attribute__((__cdecl__))   umask   ( mode_t __mask )  ;=0A=
 =0A=
 =0A=
 int	__attribute__((__cdecl__))   lstat   ( const char *__path, struct =
 stat *__buf )  ;=0A=
 int	__attribute__((__cdecl__))   mknod   ( const char *__path, mode_t =
 __mode, dev_t __dev )  ;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 int	__attribute__((__cdecl__))   _fstat   ( int __fd, struct stat =
 *__sbuf )  ;=0A=
 int	__attribute__((__cdecl__))   _stat   ( const char *__path, struct =
 stat *__sbuf )  ;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 164 "/usr/include/sys/fcntl.h" 2 3=0A=
 =0A=
 =0A=
 extern int open  (const char *, int, ...)  ;=0A=
 extern int creat  (const char *, mode_t)  ;=0A=
 extern int fcntl  (int, int, ...)  ;=0A=
 =0A=
  =0A=
 =0A=
 extern int _open  (const char *, int, ...)  ;=0A=
 extern int _fcntl  (int, int, ...)  ;=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 14 "/usr/include/fcntl.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 21 "comm.cp" 2=0A=
 =0A=
 # 1 "/usr/include/sys/ioctl.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" { =0A=
 =0A=
 int ioctl (int __fd, int __cmd, void *);=0A=
 =0A=
 } =0A=
 =0A=
 =0A=
 # 22 "comm.cp" 2=0A=
 =0A=
 # 1 "/usr/include/sys/socket.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/features.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 14 "/usr/include/sys/socket.h" 2 3=0A=
 =0A=
 # 1 "/usr/include/cygwin/socket.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 struct sockaddr {=0A=
   unsigned short	sa_family;	 =0A=
   char			sa_data[14];	 =0A=
 };=0A=
 =0A=
 # 1 "/usr/include/asm/socket.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/cygwin/if.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sys/socket.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 53 "/usr/include/sys/socket.h" 3=0A=
 =0A=
 # 19 "/usr/include/cygwin/if.h" 2 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct ifreq=0A=
 {=0A=
 =0A=
 =0A=
         union=0A=
         {=0A=
                 char    ifrn_name[16 ];             =0A=
         } ifr_ifrn;=0A=
 =0A=
         union {=0A=
                 struct  sockaddr ifru_addr;=0A=
                 struct  sockaddr ifru_broadaddr;=0A=
                 struct  sockaddr ifru_netmask;=0A=
                 struct  sockaddr ifru_hwaddr;=0A=
                 short   ifru_flags;=0A=
                 int     ifru_metric;=0A=
                 int     ifru_mtu;=0A=
         } ifr_ifru;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct ifconf=0A=
 {=0A=
         int     ifc_len;                         =0A=
         union=0A=
         {=0A=
                 caddr_t ifcu_buf;=0A=
                 struct  ifreq *ifcu_req;=0A=
         } ifc_ifcu;=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 14 "/usr/include/asm/socket.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 23 "/usr/include/cygwin/socket.h" 2 3=0A=
 =0A=
 # 1 "/usr/include/cygwin/sockios.h" 1 3=0A=
  =0A=
 # 24 "/usr/include/cygwin/socket.h" 2 3=0A=
 =0A=
 # 1 "/usr/include/cygwin/uio.h" 1 3=0A=
  =0A=
 # 25 "/usr/include/cygwin/socket.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 struct linger {=0A=
   unsigned short			l_onoff;	 =0A=
  unsigned short			l_linger;	 =0A=
 };=0A=
 =0A=
 struct msghdr=0A=
 {=0A=
 	void	*	msg_name;	 =0A=
 	int		msg_namelen;	 =0A=
 	struct iovec *	msg_iov;	 =0A=
 	int		msg_iovlen;	 =0A=
 	void	*	msg_accrights;	 =0A=
 	int		msg_accrightslen;	 =0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 15 "/usr/include/sys/socket.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C"=0A=
 {=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   int accept (int, struct sockaddr *__peer, int *);=0A=
   int bind (int, const struct sockaddr *__my_addr, int __addrlen);=0A=
   int connect (int, const struct sockaddr *, int);=0A=
   int getpeername (int, struct sockaddr *__peer, int *);=0A=
   int getsockname (int, struct sockaddr *__addr, int *);=0A=
   int listen (int, int __n);=0A=
   int recv (int, void *__buff, int __len, unsigned int __flags);=0A=
   int recvfrom (int, char *__buff, int __len, int __flags,=0A=
 			 struct sockaddr *__from, int *__fromlen);=0A=
   int send (int, const void *__buff, int __len, unsigned int =
 __flags);=0A=
   int sendto (int, const void *, int, unsigned int, const struct =
 sockaddr *, int);=0A=
   int setsockopt (int __s, int __level, int __optname, const void =
 *optval, int __optlen);=0A=
   int getsockopt (int __s, int __level, int __optname, void *__optval, =
 int *__optlen);=0A=
   int shutdown (int, int);=0A=
   int socket (int __family, int __type, int __protocol);=0A=
   int socketpair (int __domain, int __type, int __protocol, int =
 *__socket_vec);=0A=
 =0A=
   struct servent *getservbyname (const char *__name, const char =
 *__proto);=0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 23 "comm.cp" 2=0A=
 =0A=
 =0A=
 # 1 "/usr/include/netdb.h" 1 3=0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
    =0A=
 struct	hostent {=0A=
 	const char	*h_name;	 =0A=
 	char	**h_aliases;	 =0A=
 	short	h_addrtype;	 =0A=
 	short	h_length;	 =0A=
 	char	**h_addr_list;	 =0A=
 =0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct	netent {=0A=
 	char		*n_name;	 =0A=
 	char		**n_aliases;	 =0A=
 	short		n_addrtype;	 =0A=
 	unsigned long	n_net;		 =0A=
 };=0A=
 =0A=
 struct	servent {=0A=
 	char	*s_name;	 =0A=
 	char	**s_aliases;	 =0A=
 	short   s_port;		 =0A=
 	char	*s_proto;	 =0A=
 };=0A=
 =0A=
 struct	protoent=0A=
 {=0A=
   char	*p_name;	 =0A=
   char	**p_aliases;	 =0A=
   short	p_proto;	 =0A=
 };=0A=
 =0A=
 struct rpcent {=0A=
 	char	*r_name;	 =0A=
 	char	**r_aliases;	 =0A=
 	int	r_number;	 =0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern __attribute__(( dllimport ))  int h_errno;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void		endhostent (void);=0A=
 void		endnetent (void);=0A=
 void		endprotoent (void);=0A=
 void		endservent (void);=0A=
 void		endrpcent  (void);=0A=
 struct hostent	*gethostbyaddr (const char *, int, int);=0A=
 struct hostent	*gethostbyname (const char *);=0A=
 struct hostent	*gethostent (void);=0A=
 struct netent	*getnetbyaddr (long, int);  =0A=
 struct netent	*getnetbyname (const char *);=0A=
 struct netent	*getnetent (void);=0A=
 struct protoent	*getprotobyname (const char *);=0A=
 struct protoent	*getprotobynumber (int);=0A=
 struct protoent	*getprotoent (void);=0A=
 struct servent	*getservbyname (const char *, const char *);=0A=
 struct servent	*getservbyport (int, const char *);=0A=
 struct servent	*getservent (void);=0A=
 struct rpcent	*getrpcent (void);=0A=
 struct rpcent	*getrpcbyname (const char *);=0A=
 struct rpcent	*getrpcbynumber (int);=0A=
 const char      *hstrerror (int);=0A=
 void		herror (const char *);=0A=
 void		sethostent (int);=0A=
 void		setnetent (int);=0A=
 void		setprotoent (int);=0A=
 void		setservent (int);=0A=
 void		setrpcent (int);=0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 25 "comm.cp" 2=0A=
 =0A=
 =0A=
 # 1 "/usr/include/arpa/inet.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C"=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 unsigned long	 inet_addr (const char *);=0A=
 int		 inet_aton (const char *, struct in_addr *);=0A=
 unsigned long	 inet_lnaof (struct in_addr);=0A=
 struct in_addr	 inet_makeaddr (unsigned long , unsigned long);=0A=
 unsigned int	 inet_netof (struct in_addr);=0A=
 unsigned int	 inet_network (const char *);=0A=
 char		*inet_ntoa (struct in_addr);=0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 27 "comm.cp" 2=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "db.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "weather.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace Weather {=0A=
 =0A=
 namespace Seasons {=0A=
 	enum { One, TwoEqual, TwoFirstLong, TwoSecondLong, Three,=0A=
 			FourEqual, FourEvenLong, FourOddLong };=0A=
 }	 =0A=
 =0A=
 const int MaxSeasons =3D 4;=0A=
 =0A=
 namespace Wind {=0A=
 	enum { Calm, Breezy, Unsettled, Windy, Chinook, Violent, Hurricane =
 };=0A=
 }	 =0A=
 =0A=
 namespace Precipitation {=0A=
 	enum { None, Arid, Dry, Low, Average, High, Stormy, Torrent, Constant =
 };=0A=
 }	 =0A=
 =0A=
 namespace Temperature {=0A=
 	enum { Arctic, SubFreezing, Freezing, Cold, Cool, Mild, Warm, Hot, =
 Blustery,=0A=
 			Heatstroke, Boiling };=0A=
 }	 =0A=
 	=0A=
 enum {		 =0A=
 	NoMoon			=3D (1 << 0),=0A=
 	NoSun			=3D (1 << 1),=0A=
 	Uncontrollable	=3D (1 << 2),=0A=
 	AffectsIndoors	=3D (1 << 3)=0A=
 };=0A=
 =0A=
 =0A=
 class Climate {=0A=
 public:=0A=
 					Climate();=0A=
 				=0A=
 	SInt16			pattern,=0A=
 					wind[MaxSeasons],=0A=
 					windDirection[MaxSeasons],=0A=
 					windVariance[MaxSeasons],=0A=
 					precipitation[MaxSeasons],=0A=
 					temperature[MaxSeasons];=0A=
 	Flags			flags;=0A=
 	SInt32			energy;=0A=
 };=0A=
 =0A=
 =0A=
 enum {=0A=
 	MoonVisible		=3D (1 << 0),=0A=
 	SunVisible		=3D (1 << 1),=0A=
 	Controlled		=3D (1 << 2)=0A=
 };=0A=
 =0A=
 =0A=
 class Weather {=0A=
 public:=0A=
 					Weather();=0A=
 					=0A=
 	SInt8			temperature,	 =0A=
 					humidity;=0A=
 	UInt8			windspeed;=0A=
 	SInt8			windDirection;=0A=
 	=0A=
 	SInt8			precipRate,=0A=
 					precipDepth,=0A=
 					precipChange;=0A=
 =0A=
 	SInt8			pressureChange;=0A=
 	SInt32			pressure;=0A=
 =0A=
 	SInt32			energy;=0A=
 	Flags			flags;=0A=
 	=0A=
 	SInt8			light;=0A=
 };=0A=
 =0A=
 =0A=
 void Change(void);=0A=
 =0A=
 =0A=
 extern const char *seasons[];=0A=
 extern const char *winds[];=0A=
 extern const char *precipitations[];=0A=
 extern const char *temperatures[];=0A=
 extern const char *climateflags[];=0A=
 extern const char *weatherflags[];=0A=
 =0A=
 =0A=
 }	 =0A=
 =0A=
 =0A=
 =0A=
 # 23 "db.h" 2=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 void	boot_db(void);=0A=
 int		create_entry(const char *name);=0A=
 void	zone_update(void);=0A=
 =0A=
 SInt32	get_id_by_name(const char *name);=0A=
 const char *get_name_by_id(SInt32 id);=0A=
 void	save_player_index(void);=0A=
 =0A=
 SInt32	vnum_mobile(char *searchname, Character *ch);=0A=
 SInt32	vnum_object(char *searchname, Character *ch);=0A=
 SInt32	vnum_trigger(char *searchname, Character * ch);=0A=
 =0A=
 void	sprintbits(UInt32 vektor,char *outstring);=0A=
 =0A=
 void vwear_object(int wearpos, Character * ch);=0A=
 =0A=
 =0A=
  =0A=
 struct reset_com {=0A=
 	char	command;	 =0A=
 =0A=
 	bool	if_flag;	 =0A=
 	SInt32	repeat;		 =0A=
 	SInt32	arg1;		 =0A=
 	SInt32	arg2;		 =0A=
 	SInt32	arg3;		 =0A=
 	SInt32	arg4;=0A=
 	UInt32	line;		 =0A=
 =0A=
 	char *command_string;=0A=
 	 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 struct zone_data {=0A=
 	char *			name;			 =0A=
 	LList<char *>	builders;		 =0A=
 	SInt16			lifespan;		 =0A=
 	SInt16			age;			 =0A=
 	VNum			top;			 =0A=
 =0A=
 	SInt16			reset_mode;		 =0A=
 	VNum			number;			 =0A=
 	struct reset_com *cmd;			 =0A=
 	=0A=
 	 =0A=
  =0A=
  =0A=
  =0A=
 	=0A=
 	Weather::Climate	climate;=0A=
 	Weather::Weather	conditions;=0A=
 	 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	char GetSeason(void);=0A=
 	void CalcLight(void);=0A=
 };=0A=
 =0A=
 =0A=
 extern struct zone_data *zone_table;=0A=
 =0A=
 =0A=
  =0A=
 struct reset_q_element {=0A=
    int	zone_to_reset;             =0A=
    struct reset_q_element *next;=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 struct reset_q_type {=0A=
    struct reset_q_element *head;=0A=
    struct reset_q_element *tail;=0A=
 };=0A=
 =0A=
 =0A=
 extern char	*OK;=0A=
 extern char	*NOPERSON;=0A=
 extern char	*NOEFFECT;=0A=
 =0A=
 =0A=
 # 38 "comm.cp" 2=0A=
 =0A=
 # 1 "utils.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "strings.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 char *	str_dup(const char *source);=0A=
 int		str_cmp(const char *arg1, const char *arg2);=0A=
 int		strn_cmp(const char *arg1, const char *arg2, int n);=0A=
 const char *str_str(const char *cs, const char *ct);=0A=
 void	sprintbit(UInt32 vektor, const char *names[], char *result);=0A=
 void	sprinttype(int type, const char *names[], char *result);=0A=
 int		str_prefix(const char *astr, const char *bstr);=0A=
 bool	is_substring(const char *sub, const char *string);=0A=
 char *	one_phrase(char *arg, char *first_arg);=0A=
 bool	word_check(const char *str, const char *wordlist);=0A=
 char *	matching_quote(char *p);=0A=
 char *	matching_paren(char *p);=0A=
 int		str_len(const char *arg);=0A=
 int		color_len(const char *arg);=0A=
 int		color_len(const char *arg, int maxlen);=0A=
 =0A=
 =0A=
  =0A=
 int		search_block(const char *arg, const char **list, bool exact);=0A=
 int		search_chars(const char arg, const char *list);=0A=
 char *	one_argument(const char *argument, char *first_arg);=0A=
 char *	one_word(const char *argument, char *first_arg);=0A=
 char *	any_one_arg(const char *argument, char *first_arg);=0A=
 char *	any_one_name(const char *argument, char *first_arg);=0A=
 char *	two_arguments(const char *argument, char *first_arg, char =
 *second_arg);=0A=
 char *	three_arguments(const char *argument, char *first_arg, char =
 *second_arg, char *third_arg);=0A=
 bool	fill_word(const char *argument);=0A=
 void	half_chop(const char *string, char *arg1, char *arg2);=0A=
 bool	is_abbrev(const char *arg1, const char *arg2);=0A=
 bool	is_number(const char *str);=0A=
 void	skip_spaces(const char *&string);=0A=
 char *	delete_doubledollar(char *string);=0A=
 =0A=
 =0A=
 =0A=
 # 19 "utils.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Room;=0A=
 class Character;=0A=
 class Descriptor;=0A=
 =0A=
  =0A=
 int		touch(const char *path);=0A=
 void	log_death_trap(Character *ch);=0A=
 int		Number(int from, int to);=0A=
 int		dice(int number, int size);=0A=
 int		get_line(FILE *fl, char *buf);=0A=
 int		get_filename(const char *orig_name, char *filename);=0A=
 struct TimeInfoData age(Character *ch);=0A=
 int		num_pc_in_room(Room *room);=0A=
 int		replace_str(char **string, char *pattern, char *replacement, int =
 rep_all, int max_size);=0A=
 void	format_text(char **ptr_string, int mode, Descriptor *d, int =
 maxlen);=0A=
 void	core_dump_func(const char *who, SInt16 line);=0A=
 =0A=
 =0A=
  =0A=
 void circle_srandom(UInt32 initial_seed);=0A=
 UInt32 circle_random(void);=0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void	log(const char *format, ...) __attribute__ ((format (printf, 1, =
 2)));=0A=
 =0A=
 void    mudlogf(SInt8 type, Character *ch, bool file, const char =
 *format, ...) __attribute__ ((format (printf, 4, 5)));=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template<class T> const T& MAX(const T& a, const T& b) {=0A=
 	return (a > b) ? a : b;=0A=
 }=0A=
 template<class T> const T& MIN(const T& a, const T& b) {=0A=
 	return (a < b) ? a : b;=0A=
 }=0A=
 template<class T> const T& RANGE(const T& low, const T& a, const T& =
 high) {=0A=
 	return (low > a) ? low : ((a > high) ? high : a);=0A=
 }=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 int	circle_follow(Character *ch, Character * victim);=0A=
 =0A=
  =0A=
 void	look_at_room(Character *ch, int mode);=0A=
 void	look_at_rnum(Character *ch, VNum room, int mode);=0A=
 =0A=
  =0A=
 int	do_simple_move(Character *ch, int dir, int following);=0A=
 int	perform_move(Character *ch, int dir, int following);=0A=
 =0A=
  =0A=
 int	hit_gain(Character *ch);=0A=
 int	move_gain(Character *ch);=0A=
 void	advance_level(Character *ch);=0A=
 void	gain_condition(Character *ch, int condition, int value);=0A=
 void	check_idling(Character *ch);=0A=
 void	point_update(void);=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 178 "utils.h"=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 211 "utils.h"=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 # 39 "comm.cp" 2=0A=
 =0A=
 # 1 "buffer.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Buffer {=0A=
 public:=0A=
 	enum Type {			 =0A=
 		tBuffer,		 =0A=
 		tPersist,		 =0A=
 		tMalloc			 =0A=
 	};=0A=
 	=0A=
  =0A=
 					Buffer(size_t size, Type type);=0A=
 					~Buffer(void);=0A=
 	=0A=
 	Type			Clear(void);=0A=
 	void			Remove(void);=0A=
 	int				Used(void);=0A=
 	int				Magnitude(void);=0A=
 	=0A=
 	SInt8			magic;			 =0A=
 	Type			type;			 =0A=
 	size_t			req_size;		 =0A=
 	const size_t	size;			 =0A=
 	char *			data;			 =0A=
 public:=0A=
 	Buffer *		next;			 =0A=
 	=0A=
 # 73 "buffer.h"=0A=
 =0A=
 	=0A=
 public:=0A=
 	union {=0A=
 		SInt32			life;		 =0A=
 		const char *	var;		 =0A=
 	};=0A=
 	SInt16			line;			 =0A=
 	const char	*	who;			 =0A=
 	=0A=
 	void			Check(void);=0A=
 	=0A=
 public:=0A=
 	static void		Init(void);=0A=
 	static void		Exit(void);=0A=
 	=0A=
 	static void		Reboot(void);=0A=
 	=0A=
 	static Buffer **Head(Type type);=0A=
  =0A=
  =0A=
 	=0A=
 	static Buffer *	Find(const char *given, Type type);=0A=
 	static Buffer *	FindAvailable(size_t size);=0A=
 	static void		Detach(const char *data, Type type,=0A=
 			const char *func, const int line_n);=0A=
 	static char *	Acquire(size_t size, Type type,=0A=
 			const char *varname, const char *who, UInt16 line);=0A=
 	=0A=
 	static void		ReleaseAll(void);=0A=
 	=0A=
 	static Buffer **buf;=0A=
 	static Buffer **mem;=0A=
 	=0A=
 	static Flags	options;=0A=
 	static const char *const optionsDesc[];=0A=
 	=0A=
 private:=0A=
 	static void		Decrement(void);=0A=
 	static void		ReleaseOld(void);=0A=
 	static void		FreeOld(void);=0A=
 };=0A=
 =0A=
 =0A=
 inline Buffer **Buffer::Head(Buffer::Type type) {=0A=
 	return (type =3D=3D Buffer::tMalloc ? mem : buf);=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Character;=0A=
 void show_buffers(Character *ch, Buffer::Type type, int =
 display_type);=0A=
 =0A=
 =0A=
 # 40 "comm.cp" 2=0A=
 =0A=
 # 1 "comm.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void	send_to_outdoorf(const char *messg, ...) __attribute__ ((format =
 (printf, 1, 2)));=0A=
 void	send_to_playersf(Character *ch, const char *messg, ...) =
 __attribute__ ((format (printf, 2, 3)));=0A=
 void	send_to_all(const char *messg);=0A=
 void	send_to_outdoor(const char *messg);=0A=
 void	send_to_players(Character *ch, const char *messg);=0A=
 void	send_to_zone(char *messg, int zone_rnum);=0A=
 =0A=
 void	close_socket(Descriptor *d);=0A=
 void	echo_off(Descriptor *d);=0A=
 void	echo_on(Descriptor *d);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void	the_act(const char *str, bool hide_invisible, const Character *ch, =
 const Object *obj,=0A=
 				CPtr vict_obj, int type, const char *who, UInt16 line);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void sub_write(char *arg, Character *ch, bool find_invis, int =
 targets);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int		write_to_descriptor(int  desc, const char *txt);=0A=
 void	write_to_q(const char *txt, struct txt_q *queue, int aliased);=0A=
 void	page_string(Descriptor *d, const char *str, bool =
 keep_internal);=0A=
 void	string_add(Descriptor *d, char *str);=0A=
 void	string_write(Descriptor *d, char **txt, size_t len, long mailto, =
 const char *data);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef void  sigfunc();=0A=
 =0A=
 =0A=
 extern FILE *logfile;	 =0A=
 # 41 "comm.cp" 2=0A=
 =0A=
 # 1 "interpreter.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Character;=0A=
 class Descriptor;=0A=
 =0A=
 void	command_interpreter(Character *ch, char *argument);=0A=
 void	nanny(Descriptor *d, char *arg);=0A=
 int		find_command(const char *command);=0A=
 =0A=
 =0A=
 struct command_info {=0A=
 	const char *	command;=0A=
 	const char *	sort_as;=0A=
 	Position		minimum_position;=0A=
  =0A=
 	void ( *command_pointer )(Character *ch, char *argument, SInt32 cmd, =
 const char *command, SInt32 subcmd) ;=0A=
 	SInt32			minimum_level;=0A=
 	Flags			staffcmd;=0A=
 	SInt32			subcmd;=0A=
 };=0A=
 =0A=
  =0A=
 extern struct command_info *complete_cmd_info;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	SCMD_BUG,=0A=
 	SCMD_TYPO,=0A=
 	SCMD_IDEA,=0A=
 	SCMD_WARNING=0A=
 };=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 42 "comm.cp" 2=0A=
 =0A=
 # 1 "handler.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 int			isname(const char *str, const char *namelist);=0A=
 char *		fname(const char *namelist);=0A=
 int			get_number(char **name);=0A=
 int			silly_isname(const char *str, const char *namelist);=0A=
 int			split_string(char *str, char *sep, char **argv);=0A=
 =0A=
  =0A=
 =0A=
 int is_same_group(Character *ach, Character *bch );=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 void	Crash_listrent(Character *ch, char *name);=0A=
 int	Crash_load(Character *ch);=0A=
 void	Crash_crashsave(Character *ch);=0A=
 void	Crash_save_all(void);=0A=
 =0A=
  =0A=
 void	forget(Character *ch, Character *victim);=0A=
 void	remember(Character *ch, Character *victim);=0A=
 # 43 "comm.cp" 2=0A=
 =0A=
 # 1 "find.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Object;=0A=
 class Character;=0A=
 class Room;=0A=
 =0A=
 Object *	get_obj(const char *name);=0A=
 Object *	get_obj_num(VNum nr);=0A=
 Object *	get_obj_vis(const Character *ch, const char *name);=0A=
 Object *	get_obj_in_list(const char *name, LList<Object *> &list);=0A=
 Object *	get_obj_in_list_vis(const Character *ch, const char *name, =
 LList<Object *> &list);=0A=
 Object *	get_obj_in_list_num(VNum num, LList<Object *> &list);=0A=
 Object *	get_obj_in_list_type(Type type, LList<Object *> &list);=0A=
 Object *	get_obj_in_list_flagged(Flags flag, LList<Object *> &list);=0A=
 Object *	get_object_in_equip(const Character * ch, const char *arg, =
 Object * const equipment[], int *j);=0A=
 Object *	get_object_in_equip_vis(const Character * ch, const char *arg, =
 Object * const equipment[], int *j);=0A=
 Object *	get_obj_by_obj(const Object *obj, const char *name);=0A=
 Object *	get_obj_by_room(const Room *room, const char *name);=0A=
 Object *	find_vehicle_by_vnum(VNum vnum);=0A=
 Object *	find_obj(IDNum n);=0A=
 =0A=
 int	get_num_chars_on_obj(const Object * obj);=0A=
 Character *	get_char_on_obj(const Object *obj);=0A=
 =0A=
 Character *	get_char(const char *name);=0A=
 Character *	get_char_room(const char *name, VNum room);=0A=
 Character *	get_char_num(VNum nr);=0A=
 Character *	get_char_by_obj(const Object *obj, const char *name);=0A=
 =0A=
  =0A=
  =0A=
 Character *	get_player_vis(const Character *ch, const char *name, Flags =
 mode);=0A=
 Character *	get_char_vis(const Character *ch, const char *name, Flags =
 mode);=0A=
 =0A=
 Character *find_char(IDNum n);=0A=
 Character *get_char_by_room(const Room *room, const char *name);=0A=
 =0A=
 Room *get_room(const char *name);=0A=
 Room *find_room(IDNum n);=0A=
 =0A=
 VNum find_the_room(const char *roomstr);=0A=
 =0A=
 int count_mobs_in_room(VNum num, VNum room);=0A=
 int count_mobs_in_zone(VNum num, int zone);=0A=
 =0A=
  =0A=
 =0A=
 int	find_all_dots(char *arg);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 int	generic_find(const char *arg, int bitvector, const Character *ch, =
 Character **tar_ch, Object **tar_obj);=0A=
 =0A=
 =0A=
 enum {=0A=
 	FIND_CHAR_ROOM		=3D (1 << 0),=0A=
 	FIND_CHAR_WORLD		=3D (1 << 1),=0A=
 	FIND_OBJ_INV		=3D (1 << 2),=0A=
 	FIND_OBJ_EQUIP		=3D (1 << 3),=0A=
 	FIND_OBJ_ROOM		=3D (1 << 4),=0A=
 	FIND_OBJ_WORLD		=3D (1 << 5)=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 static const char UID_CHAR =3D '\x1b';=0A=
 # 44 "comm.cp" 2=0A=
 =0A=
 # 1 "house.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Object;=0A=
 class Character;=0A=
 =0A=
 =0A=
 class House {=0A=
 public:=0A=
 					House(void);=0A=
 					~House(void);=0A=
 	=0A=
 	VNum			vnum;=0A=
 	=0A=
 	time_t			created, lastPayment;=0A=
 	IDNum			owner, maker;=0A=
 	Vector<IDNum>	guests;=0A=
 	SInt8			mode;=0A=
 =0A=
 public:=0A=
 	void			Parser(char *block);=0A=
 	void			ListGuests(char *buf, bool quiet);=0A=
 	=0A=
 	static void		Boot(void);=0A=
 	static void		SaveHouses(void);=0A=
 	=0A=
 	static bool		GetFilename(VNum house, char *filename);=0A=
 	static void		DeleteFile(VNum house);=0A=
 	=0A=
 	static void		SaveAll(void);=0A=
 	static void		CrashSave(VNum house);=0A=
 	static void		Save(Object * obj, FILE * fp, int locate);=0A=
 	static bool		Load(VNum vnum);=0A=
 	=0A=
 	static void		RestoreWeight(Object * obj);=0A=
 	=0A=
 	static bool		CanEnter(Character *ch, VNum house);	=0A=
 =0A=
 	static void		Listrent(Character *ch, VNum house);=0A=
 	=0A=
 	static House *	Find(VNum house);=0A=
 };=0A=
 =0A=
 =0A=
 extern LList<House *>	Houses;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 45 "comm.cp" 2=0A=
 =0A=
 # 1 "ban.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 const SInt32 BANNED_SITE_LENGTH =3D 50;=0A=
 =0A=
 class Ban {=0A=
 public:=0A=
 	enum BanType { Not, New, Select, All };=0A=
 						Ban(void);=0A=
 						Ban(const char *site, const char *name, SInt32 type, time_t date =
 =3D 0);=0A=
 						~Ban(void);=0A=
 						=0A=
 	char *				mSite;	 =0A=
 	SInt32				mID;	 =0A=
 	time_t				mDate;=0A=
 	BanType				mType;=0A=
 =0A=
 public:=0A=
 	static void			Load(void);=0A=
 	static BanType		Banned(char *hostname);=0A=
 	static bool			ValidName(const char *name);=0A=
 	static void			ReadInvalids(void);=0A=
 	=0A=
 	static void			Write(void);=0A=
 };=0A=
 =0A=
 extern Vector<Ban *>	bans;=0A=
 =0A=
 =0A=
 =0A=
 # 46 "comm.cp" 2=0A=
 =0A=
 # 1 "olc.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Character;=0A=
 class Trigger;=0A=
 class ExtraDesc;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 const SInt32 NUM_GENDERS =3D		3;=0A=
 const SInt32 NUM_SHOP_FLAGS =3D	2;=0A=
 const SInt32 NUM_TRADERS =3D 		3;=0A=
 =0A=
  =0A=
 enum {=0A=
 	HEDIT_PERMISSION =3D 666,=0A=
 	CEDIT_PERMISSION =3D 888,=0A=
 	AEDIT_PERMISSION =3D 999=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 const SInt32 MAX_ROOM_NAME =3D	75;=0A=
 const SInt32 MAX_MOB_NAME =3D		50;=0A=
 const SInt32 MAX_OBJ_NAME =3D		50;=0A=
 const SInt32 MAX_ROOM_DESC =3D	1024;=0A=
 const SInt32 MAX_EXIT_DESC =3D	256;=0A=
 const SInt32 MAX_EXTRA_DESC =3D	512;=0A=
 const SInt32 MAX_MOB_DESC =3D		512;=0A=
 const SInt32 MAX_OBJ_DESC =3D		512;=0A=
 const SInt32 MAX_HELP_KEYWORDS =3D75;=0A=
 const SInt32 MAX_HELP_ENTRY =3D	1024;=0A=
 =0A=
  =0A=
 void strip_string(char *str);=0A=
 void olc_add_to_save_list(int zone, UInt8 type);=0A=
 void olc_remove_from_save_list(int zone, UInt8 type);=0A=
 bool get_zone_perms(Character * ch, int rnum);=0A=
 int real_zone(int number);=0A=
 =0A=
 struct olc_save_info {=0A=
 	SInt16			zone;=0A=
 	UInt8			type;=0A=
 	olc_save_info *	next;=0A=
 };=0A=
 =0A=
 =0A=
 extern struct olc_save_info *olc_save_list;=0A=
 =0A=
  =0A=
 enum {=0A=
 	OLC_SAVE_ROOM,=0A=
 	OLC_SAVE_OBJ,=0A=
 	OLC_SAVE_ZONE,=0A=
 	OLC_SAVE_MOB,=0A=
 	OLC_SAVE_SHOP,=0A=
 	OLC_SAVE_ACTION,=0A=
 	OLC_SAVE_HELP,=0A=
 	OLC_SAVE_TRIGGER,=0A=
 	OLC_SAVE_CLAN=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 # 47 "comm.cp" 2=0A=
 =0A=
 =0A=
 # 1 "ident.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/pthread.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/sched.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 struct sched_param=0A=
 {=0A=
   int sched_priority;=0A=
 };=0A=
 =0A=
 =0A=
 extern "C" {=0A=
 =0A=
 =0A=
  =0A=
 int sched_get_priority_max (int);=0A=
  =0A=
 int sched_get_priority_min (int);=0A=
  =0A=
 int sched_getparam (pid_t, struct sched_param *);=0A=
  =0A=
 int sched_getscheduler (pid_t);=0A=
  =0A=
 int sched_rr_get_interval (pid_t, struct timespec *);=0A=
  =0A=
 int sched_setparam (pid_t, const struct sched_param *);=0A=
  =0A=
 int sched_setscheduler (pid_t, int, const struct sched_param *);=0A=
  =0A=
 int sched_yield (void);=0A=
 =0A=
 # 59 "/usr/include/sched.h" 3=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 # 15 "/usr/include/pthread.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern "C"=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 int pthread_attr_destroy (pthread_attr_t *);=0A=
 int pthread_attr_getdetachstate (const pthread_attr_t *, int *);=0A=
 int pthread_attr_getinheritsched (const pthread_attr_t *, int *);=0A=
 int pthread_attr_getschedparam (const pthread_attr_t *, struct =
 sched_param *);=0A=
 int pthread_attr_getschedpolicy (const pthread_attr_t *, int *);=0A=
 int pthread_attr_getscope (const pthread_attr_t *, int *);=0A=
 int pthread_attr_init (pthread_attr_t *);=0A=
 int pthread_attr_setdetachstate (pthread_attr_t *, int);=0A=
 int pthread_attr_setinheritsched (pthread_attr_t *, int);=0A=
 int pthread_attr_setschedparam (pthread_attr_t *, const struct =
 sched_param *);=0A=
 int pthread_attr_setschedpolicy (pthread_attr_t *, int);=0A=
 int pthread_attr_setscope (pthread_attr_t *, int);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int pthread_attr_getstacksize (const pthread_attr_t *, size_t *);=0A=
 int pthread_attr_setstacksize (pthread_attr_t *, size_t);=0A=
 =0A=
 =0A=
 int pthread_cancel (pthread_t);=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef void __cleanup_routine_type (void *);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 int pthread_cond_broadcast (pthread_cond_t *);=0A=
 int pthread_cond_destroy (pthread_cond_t *);=0A=
 int pthread_cond_init (pthread_cond_t *, const pthread_condattr_t =
 *);=0A=
 int pthread_cond_signal (pthread_cond_t *);=0A=
 int pthread_cond_timedwait (pthread_cond_t *,=0A=
 			    pthread_mutex_t *, const struct timespec *);=0A=
 int pthread_cond_wait (pthread_cond_t *, pthread_mutex_t *);=0A=
 int pthread_condattr_destroy (pthread_condattr_t *);=0A=
 int pthread_condattr_getpshared (const pthread_condattr_t *, int *);=0A=
 int pthread_condattr_init (pthread_condattr_t *);=0A=
 int pthread_condattr_setpshared (pthread_condattr_t *, int);=0A=
 =0A=
 int pthread_create (pthread_t *, const pthread_attr_t *,=0A=
 		    void *(*)(void *), void *);=0A=
 int pthread_detach (pthread_t);=0A=
 int pthread_equal (pthread_t, pthread_t);=0A=
 void pthread_exit (void *);=0A=
 int pthread_getschedparam (pthread_t, int *, struct sched_param *);=0A=
 void *pthread_getspecific (pthread_key_t);=0A=
 int pthread_join (pthread_t, void **);=0A=
 int pthread_key_create (pthread_key_t *, void (*)(void *));=0A=
 int pthread_key_delete (pthread_key_t);=0A=
 =0A=
  =0A=
 int pthread_mutex_destroy (pthread_mutex_t *);=0A=
 int pthread_mutex_getprioceiling (const pthread_mutex_t *, int *);=0A=
 int pthread_mutex_init (pthread_mutex_t *, const pthread_mutexattr_t =
 *);=0A=
 int pthread_mutex_lock (pthread_mutex_t *);=0A=
 int pthread_mutex_setprioceiling (pthread_mutex_t *, int, int *);=0A=
 int pthread_mutex_trylock (pthread_mutex_t *);=0A=
 int pthread_mutex_unlock (pthread_mutex_t *);=0A=
 int pthread_mutexattr_destroy (pthread_mutexattr_t *);=0A=
 int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *, int =
 *);=0A=
 int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *, int =
 *);=0A=
 int pthread_mutexattr_getpshared (const pthread_mutexattr_t *, int =
 *);=0A=
 int pthread_mutexattr_gettype (const pthread_mutexattr_t *, int *);=0A=
 int pthread_mutexattr_init (pthread_mutexattr_t *);=0A=
 int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *, int);=0A=
 int pthread_mutexattr_setprotocol (pthread_mutexattr_t *, int);=0A=
 int pthread_mutexattr_setpshared (pthread_mutexattr_t *, int);=0A=
 int pthread_mutexattr_settype (pthread_mutexattr_t *, int);=0A=
 =0A=
 int pthread_once (pthread_once_t *, void (*)(void));=0A=
 =0A=
  =0A=
 int pthread_getconcurrency (void);=0A=
 int pthread_setconcurrency (int);=0A=
 =0A=
 =0A=
 pthread_t pthread_self (void);=0A=
 int pthread_setcancelstate (int, int *);=0A=
 int pthread_setcanceltype (int, int *);=0A=
 int pthread_setschedparam (pthread_t, int, const struct sched_param =
 *);=0A=
 int pthread_setspecific (pthread_key_t, const void *);=0A=
 void pthread_testcancel (void);=0A=
 =0A=
  =0A=
 =0A=
 int pthread_suspend (pthread_t);=0A=
 int pthread_continue (pthread_t);=0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 16 "ident.h" 2=0A=
 =0A=
 =0A=
 =0A=
 namespace Identd {=0A=
 	void				Startup(void);=0A=
 	void				Shutdown(void);=0A=
 	=0A=
 	 =0A=
 	void				Lookup(Descriptor *newd);=0A=
 	char *				LookupHost(struct sockaddr_in sa);=0A=
 	char *				LookupUser(struct sockaddr_in sa);=0A=
 	void				Receive(void);=0A=
 	void *				Loop(void *);=0A=
 	=0A=
 	 =0A=
 	bool				IsActive(void);=0A=
 	=0A=
 	struct LookupRec {=0A=
 		bool				done;=0A=
 =0A=
 		struct sockaddr_in	address;=0A=
 		SInt32				fd;=0A=
 		char				host[256];=0A=
 		char				user[256];=0A=
 	};=0A=
 	=0A=
 	extern LList<LookupRec *>	lookups;=0A=
 =0A=
 	extern pthread_t		thread;=0A=
 	extern pthread_mutex_t	lookup_mutex;=0A=
 =0A=
 	=0A=
 	struct Prefs {=0A=
 		bool				host;=0A=
 		bool				user;=0A=
 	};=0A=
 	extern Prefs lookup;=0A=
 }=0A=
 # 49 "comm.cp" 2=0A=
 =0A=
 # 1 "constants.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 extern const char *weekdays[];=0A=
 extern const char *month_name[];=0A=
 extern const char *connected_types[];=0A=
 extern const char circlemud_version[];=0A=
 extern const char *color_liquid[];=0A=
 extern const char *fullness[];=0A=
 =0A=
  =0A=
 extern const struct attack_hit_type attack_hit_text[];=0A=
 extern const char *genders[];=0A=
 extern const char *affected_bits[];=0A=
 extern const char *apply_types[];=0A=
 extern const char *action_bits[];=0A=
 extern const char *player_bits[];=0A=
 extern const char *preference_bits[];=0A=
 extern const char *position_types[];=0A=
 extern const char *connected_types[];=0A=
 extern const char *staff_bits[];=0A=
 extern const char *race_abbrevs[];=0A=
 extern const char relation_colors[];=0A=
 extern const char *positions[];=0A=
 extern const char *race_types[];=0A=
 extern const char *pc_race_types[];=0A=
 extern const char *mobprog_types[];=0A=
 extern const char *relations[];=0A=
 =0A=
  =0A=
 extern const char *MENU;=0A=
 extern const char *WELC_MESSG;=0A=
 extern const char *START_MESSG;=0A=
 extern char *GREETINGS;=0A=
 extern const char *race_menu;=0A=
 =0A=
 extern const char *bodyparts[];=0A=
 extern const char *bodyparts_limbs[];=0A=
 =0A=
  =0A=
 extern const char *item_types[];=0A=
 extern const char *wear_bits[];=0A=
 extern const char *extra_bits[];=0A=
 extern const char *container_bits[];=0A=
 extern const char *drinks[];=0A=
 extern const char *equipment_types[];=0A=
 extern const char * ammo_types[];=0A=
 extern const char *where[];=0A=
 =0A=
  =0A=
 extern const char *room_bits[];=0A=
 extern const char *exit_bits[];=0A=
 extern const char *sector_types[];=0A=
 =0A=
  =0A=
 extern const int rev_dir[];=0A=
 extern const int movement_loss[];=0A=
 extern char *dir_text[];=0A=
 extern char *dirs[];=0A=
 extern char *from_dir[];=0A=
 extern char *dir_text_2[];=0A=
 =0A=
  =0A=
 extern const char *mtrig_types[];=0A=
 extern const char *otrig_types[];=0A=
 extern const char *wtrig_types[];=0A=
 =0A=
  =0A=
 extern const char *trade_letters[];=0A=
 extern const char *shop_bits[];=0A=
 =0A=
 =0A=
 # 50 "comm.cp" 2=0A=
 =0A=
 # 1 "editor.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Editor {=0A=
 public:=0A=
 						Editor(Descriptor *desc) : d(desc), mode(0), value(0), =
 number(0),=0A=
 								zoneNum(0), storage(__null ) { };=0A=
 	virtual				~Editor(void) { };=0A=
 	=0A=
 	virtual void		SaveInternally(void) =3D 0;=0A=
 	static void 		SaveDisk(SInt32 number) { };=0A=
 	=0A=
 	virtual void		Menu(void) =3D 0;=0A=
 	virtual void		Parse(char *arg) =3D 0;=0A=
 	=0A=
 	virtual void		EndTextEdit(void) =3D 0;=0A=
 =0A=
 	enum FinishMode { Structs, All };=0A=
 	void				Finish(void);=0A=
 	virtual void		Finish(FinishMode mode) =3D 0;=0A=
 	=0A=
 protected:=0A=
 	Descriptor *		d;=0A=
 	SInt32				mode;=0A=
 	SInt32				value;=0A=
 =0A=
 public:=0A=
 	VNum				number;=0A=
 	SInt16				zoneNum;=0A=
 =0A=
 protected:=0A=
 	char *				storage;=0A=
 };=0A=
 =0A=
 inline void Editor::SaveInternally(void) { }=0A=
 inline void Editor::Menu(void) { }=0A=
 inline void Editor::Parse(char *arg) { }=0A=
 inline void Editor::EndTextEdit(void) { }=0A=
 inline void Editor::Finish(FinishMode mode) { }=0A=
 =0A=
 =0A=
 # 51 "comm.cp" 2=0A=
 =0A=
 # 1 "space.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Point {			 =0A=
 public:=0A=
 	float				x, y, z;=0A=
 	=0A=
 						Point(float xVal =3D 0, float yVal =3D 0, float zVal =3D 0) :=0A=
 								x(xVal), y(yVal), z(zVal) { }=0A=
 						Point(const Point &a) : x(a.x), y(a.y), z(a.z) { }=0A=
 	=0A=
 	Point &				operator+=3D(const Point &b);=0A=
 	Point &				operator-=3D(const Point &b);=0A=
 	float				Pythagorean(void) const;=0A=
 	static float		Distance(const Point &a, const Point &b);=0A=
 };=0A=
 Point operator-(const Point &a, const Point &b);=0A=
 Point operator+(const Point &a, const Point &b);=0A=
 Point operator/(const Point &a, const Point &b);=0A=
 Point operator/(const Point &a, float b);=0A=
 Point operator*(const Point &a, const Point &b);=0A=
 Point operator*(const Point &a, float b);=0A=
 =0A=
 =0A=
 class StellarObject {	 =0A=
 public:=0A=
 	enum StellarObjectType { Base, Star, Planet };=0A=
 						StellarObject(StellarObjectType objectType =3D Base);=0A=
 	virtual				~StellarObject(void);=0A=
 						=0A=
 	char *				name;=0A=
  =0A=
 	Point				position;=0A=
 	=0A=
 	SInt32				gravity;=0A=
 	StellarObjectType	type;=0A=
 };=0A=
 =0A=
 =0A=
 class Star : public StellarObject {=0A=
 public:=0A=
 						Star(void) : StellarObject(StellarObject::Star) { };=0A=
 	virtual				~Star(void) { };=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 class Dock {=0A=
 public:=0A=
 						Dock(void);=0A=
 						~Dock(void);=0A=
 						=0A=
 	VNum				dockVNum;=0A=
 	char *				name;=0A=
 };=0A=
 =0A=
 =0A=
 class Planet : public StellarObject {=0A=
 public:=0A=
 						Planet(void) : StellarObject(StellarObject::Planet) { };=0A=
 	virtual				~Planet(void) { };=0A=
 						=0A=
 	Vector<Dock *>		docks;=0A=
 };=0A=
 =0A=
 =0A=
 class Ship;=0A=
 class StarSystem {=0A=
 public:=0A=
 	SInt32				Send(Ship *from, Ship *ignore, const char *fmt, ...)=0A=
 								__attribute__ ((format (printf, 4, 5)));=0A=
 =0A=
 	 =0A=
 	char *				name;=0A=
 	VNum				number;=0A=
 	=0A=
 	 =0A=
 	char *				file;=0A=
 	=0A=
 	 =0A=
 	Point				position;=0A=
 	=0A=
 	 =0A=
 	LList<Ship *>		ships;=0A=
 	LList<Star *>		stars;=0A=
 	LList<Planet *>		planets;=0A=
 	=0A=
 	void				Update(void);=0A=
 	void				Write(void);=0A=
 	void				Parser(char *input);=0A=
 =0A=
 public:=0A=
 	const char *		Name(void);=0A=
 =0A=
 public:=0A=
 	static Map<VNum, StarSystem>Index;=0A=
 	=0A=
 	static bool			Find(VNum vnum) { return Index.Find(vnum); }=0A=
  =0A=
 	=0A=
  =0A=
 	=0A=
 	=0A=
 	static VNum			FromName(const char *name);=0A=
 	static VNum			FromVNum(VNum vnum);=0A=
 	=0A=
 	static void			WriteList(void);=0A=
 };=0A=
 =0A=
 =0A=
 inline const char *StarSystem::Name(void)		{	return name;		}=0A=
 =0A=
 =0A=
 class Ship : public MUDObject {=0A=
 public:=0A=
 	enum ShipType { Civilian, Mob };=0A=
 	enum Kind { Fighter, Midsize, Capital, Platform, Flight, Hover, Boat, =
 Wheeled, Tread, Walker };=0A=
 	enum State { Docked, Ready, Busy1, Busy2, Busy3, Refuel, Launch1, =
 Launch2, Land1, Land2,=0A=
 				PreHyper, Hyperspace, Disabled, Flying };=0A=
 	enum { ShipTypes =3D Mob + 1, ShipKinds =3D Walker + 1, ShipStates =3D =
 Flying + 1};=0A=
 public:=0A=
 						Ship(void);=0A=
 	virtual				~Ship(void);=0A=
 						=0A=
 	virtual const char *Name(void) const;=0A=
 	virtual void		Extract(void);=0A=
 	void				Save(void);=0A=
 	=0A=
 	void				Parser(char *input);=0A=
 =0A=
 	void				Move(void);=0A=
 	void				Update(void);=0A=
 	=0A=
 	SInt32				SendCockpit(const char *fmt, ...) __attribute__ ((format =
 (printf, 2, 3)));=0A=
 	SInt32				Send(const char *fmt, ...) __attribute__ ((format (printf, =
 2, 3)));=0A=
 =0A=
 	bool				Facing(const Point &target);=0A=
 	=0A=
  =0A=
 	static Ship *		FindInList(const char *name, LList<Ship *> &list);=0A=
 =0A=
 	void				ToSystem(VNum newSystem);=0A=
 	void				FromSystem(void);=0A=
 	virtual void		ToRoom(VNum newRoom);=0A=
 	virtual void		FromRoom(void);=0A=
 	=0A=
 	void				Launch(void);=0A=
 	void				Orbit(void);=0A=
 	void				Hyper(void);=0A=
 	void				EnterOrbit(void);=0A=
 	void				Land(void);=0A=
 	=0A=
 	void				Destroy(Character *killer =3D __null );=0A=
 	void				Reset(void);=0A=
 public:=0A=
 	 =0A=
 	char *				name;=0A=
 	char *				description;=0A=
 	=0A=
 	 =0A=
 	char *				file;=0A=
 	char *				home;=0A=
 	char *				dest;=0A=
 	State				state;=0A=
  =0A=
 	=0A=
 	 =0A=
 	Kind				kind;=0A=
 	ShipType			type;=0A=
 	SInt16				hyperSpeed, realSpeed;=0A=
 	=0A=
 	 =0A=
 	char *				owner;=0A=
 	char *				pilot;=0A=
 	=0A=
 	 =0A=
 	VNum				starsystem;	 =0A=
 	VNum				shipyard;	 =0A=
 	VNum				lastDock;=0A=
 	SInt16				speed;=0A=
 	Point				position, heading;=0A=
 	SInt32				hyperDistance;=0A=
 	VNum				targetSystem;=0A=
 	=0A=
 	 =0A=
 	VNum				firstRoom, lastRoom;=0A=
 	VNum				cockpit, pilotSeat;=0A=
 	VNum				enterance;=0A=
 =0A=
 public:=0A=
 	static LList<Ship *>ships;=0A=
 	=0A=
 	static Ship *		ByPilot(const char *name);=0A=
 	static Ship *		ByCockpit(VNum seat);=0A=
 	static Ship *		ByPilotSeat(VNum seat);=0A=
  =0A=
  =0A=
  =0A=
 	static Ship *		ByEnterance(VNum seat);=0A=
  =0A=
 =0A=
 	static void			ShowShips(Character *ch, LList<Ship *> &shipList);=0A=
 	=0A=
 	static Index<Ship>	Index;=0A=
 };=0A=
 =0A=
 =0A=
 inline const char *Ship::Name(void) const {	return this->name;					}=0A=
 =0A=
 =0A=
 void UpdateSpace(void);=0A=
 void MoveShips(void);=0A=
 # 52 "comm.cp" 2=0A=
 =0A=
 =0A=
 # 1 "imc.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "imc-config.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 namespace IMC {=0A=
 =0A=
 const SInt32	Memory		=3D 256;		 =0A=
 const SInt32	PacketLife	=3D 60;		 =0A=
 =0A=
 const SInt32	MaxReconnectTime	=3D 90 * 60,	 =0A=
 				MinReconnectTime	=3D 2 * 60;	 =0A=
 =0A=
 const SInt32	LoginTimeout	=3D 120,	 =0A=
 				KeepaliveTime	=3D 300,	 =0A=
 				KeepaliveTimeout=3D 400,	 =0A=
 				DropTimeout		=3D 600;	 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 const SInt32	SPAM1INTERVAL	=3D 1,=0A=
 				SPAM1MAX		=3D 1,=0A=
 				SPAM1TIME		=3D 10;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 const SInt32	SPAM2INTERVAL	=3D 1,=0A=
 				SPAM2MAX		=3D 3,=0A=
 				SPAM2TIME		=3D 5;=0A=
 =0A=
 =0A=
 const SInt32	VERSION			=3D 2;			 =0A=
 extern const char * REVISION;=0A=
 extern const char *	VERSIONID;	 =0A=
 =0A=
 }	 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 =0A=
  =0A=
 # 179 "imc-config.h"=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 # 195 "imc-config.h"=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 38 "imc.h" 2=0A=
 =0A=
 =0A=
 namespace IMC {=0A=
 =0A=
  =0A=
 enum {=0A=
 	IA_NONE			=3D 0,=0A=
 	IA_CONFIG1,=0A=
 	IA_CONFIG2,=0A=
 	IA_UP,=0A=
 	IA_LISTENING=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	IMC_CLOSED		=3D 0,=0A=
 	IMC_CONNECTING,=0A=
 	IMC_WAIT1,=0A=
 	IMC_WAIT2,=0A=
 	IMC_CONNECTED=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	IMC_NOAUTO			=3D (1 << 0),		 =0A=
 	IMC_CLIENT			=3D (1 << 1),		 =0A=
 	IMC_RECONNECT		=3D (1 << 2),		 =0A=
 	IMC_BROADCAST		=3D (1 << 3),		 =0A=
 	IMC_DENY			=3D (1 << 4),		 =0A=
 	IMC_QUIET			=3D (1 << 5),		 =0A=
 	IMC_HUB				=3D (1 << 6),		 =0A=
 	IMC_MAIN_HUB		=3D (1 << 7),		 =0A=
 	IMC_OLD_HUB			=3D (1 << 8),		 =0A=
 	IMC_DEAD_HUB		=3D (1 << 9),		 =0A=
 	IMC_NEW_HUB			=3D (1 << 10),	 =0A=
 	IMC_NOSWITCH		=3D (1 << 11)		 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	IMC_IGNORE		=3D 1,	 =0A=
 	IMC_NOTRUST,			 =0A=
 	IMC_TRUST				 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	IMC_IGNORE_EXACT	=3D 0,	 =0A=
 	IMC_IGNORE_PREFIX,			 =0A=
 	IMC_IGNORE_SUFFIX			 =0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 enum {=0A=
 	IMC_INVIS	=3D 1,=0A=
 	IMC_HIDDEN=0A=
 };=0A=
 =0A=
 }	 =0A=
 =0A=
 class Character;=0A=
 =0A=
 =0A=
 namespace IMC {=0A=
 =0A=
 class IMCFlagType;=0A=
 class IMCData;=0A=
 class IMCCharacter;=0A=
 class IMCPacket;=0A=
 class IMCConnect;=0A=
 class IMCInfo;=0A=
 =0A=
 =0A=
 class IMCFlagType {=0A=
 public:=0A=
 	char *				name;=0A=
 	SInt32				value;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCData {=0A=
 public:=0A=
 						IMCData(void) { value[0] =3D key[0] =3D '\0'; };=0A=
 						~IMCData(void) { };=0A=
 =0A=
 	void				Init(void);=0A=
 	void				Free(void);=0A=
 	void				Clone(const IMCData *p);=0A=
 =0A=
 	const char *		GetKey(const char *key, const char *def) const;=0A=
 	SInt32				GetKey(const char *key, SInt32 def) const;=0A=
 	=0A=
 	void				AddKey(const char *key, const char *value);=0A=
 	void				AddKey(const char *key, SInt32 value);=0A=
 	=0A=
 	char *				key[20 ];=0A=
 	char *				value[20 ];=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 class IMCCharacter {=0A=
 public:=0A=
 						IMCCharacter(void) : invis(0), level(0), wizi(0) { *name =3D =
 '\0'; };=0A=
  =0A=
 	=0A=
 	static const IMCCharacter *	Get(const Character *ch);=0A=
 	bool				Visible(const IMCCharacter *viewed) const;=0A=
 	bool				Visible(const Character *viewed) const;=0A=
 	=0A=
 	char				name[(20 + 40 +1) ];	 =0A=
 	bool				invis;					 =0A=
 	SInt8				level;					 =0A=
 	SInt8				wizi;					 =0A=
 };=0A=
 =0A=
 =0A=
 class IMCPacket {=0A=
 public:=0A=
 						IMCPacket(void) {=0A=
 							to[0] =3D from[0] =3D type[0] =3D '\0';=0A=
 							i.to[0] =3D i.from[0] =3D i.path[0] =3D '\0';=0A=
 							i.sequence =3D 0;=0A=
 							i.stamp =3D 0;=0A=
 						};=0A=
 						~IMCPacket(void) { };=0A=
 =0A=
 	void				Send(void);=0A=
 	void				Receive(void);=0A=
 	bool				Receive(SInt32 bcast);	 =0A=
 	=0A=
 	void				Forward(void);=0A=
 	void				GetData(IMCCharacter *d);=0A=
 	void				SetData(const IMCCharacter *d);=0A=
 	=0A=
 	char				to[(20 + 40 +1) ];	 =0A=
 	char				from[(20 + 40 +1) ];	 =0A=
 	char				type[20 ];	 =0A=
 	IMCData				data;=0A=
 	struct {=0A=
 		char			to[(20 + 40 +1) ];=0A=
 		char			from[(20 + 40 +1) ];=0A=
 		char			path[200 ];=0A=
 		UInt32			sequence;=0A=
 		SInt32			stamp;=0A=
 	} i;=0A=
 protected:=0A=
 	bool				CanForward(void);=0A=
 };=0A=
 =0A=
 =0A=
 class IMCConnect {=0A=
 public:=0A=
 						IMCConnect(void);=0A=
 						~IMCConnect(void);=0A=
 	=0A=
 	void				Close(void);=0A=
 	void				Read(void);=0A=
 	void				Write(void);=0A=
 	void				Send(const char *line);=0A=
 	void				Debug(SInt32 out, const char *string);=0A=
 	=0A=
 	IMCPacket *			InterpretPacket(const char *line);=0A=
 	void				SendPacket(const IMCPacket *p);=0A=
 	=0A=
 	void				ClientPassword(const char *argument);=0A=
 	void				ServerPassword(const char *argument);=0A=
 	=0A=
 	const char *		Name(void);=0A=
 	=0A=
 	IMCInfo *			info;=0A=
 	=0A=
 	SInt32				desc;=0A=
 	UInt16				state;=0A=
 	UInt16				version;=0A=
 	=0A=
 	SInt16				newoutput;=0A=
 	=0A=
 	char *				inbuf;=0A=
 	SInt32				insize;=0A=
 	=0A=
 	char *				outbuf;=0A=
 	SInt32				outsize;=0A=
 	=0A=
 	SInt32				spamcounter1, spamcounter2;=0A=
 	SInt32				spamtime1, spamtime2;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCInfo {=0A=
 public:=0A=
 						IMCInfo(void);=0A=
 						~IMCInfo(void);=0A=
 						=0A=
 	void				SetupReconnect(void);=0A=
  =0A=
  =0A=
 	=0A=
 	char *				name;=0A=
 	char *				host;=0A=
 	=0A=
 	IMCConnect *		connection;=0A=
 	UInt16				port;=0A=
 	=0A=
 	char *				serverpw;=0A=
 	char *				clientpw;=0A=
 	=0A=
 	Flags				flags;=0A=
 =0A=
 	time_t				timer_duration;=0A=
 	=0A=
 	SInt32				rcvstamp;=0A=
 	Flags				noforward;=0A=
 	=0A=
 	time_t				last_connected;=0A=
 	SInt32				connectionAttempts;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCStats {=0A=
 public:=0A=
 	time_t				start;=0A=
 	SInt32				rx_pkts;=0A=
 	SInt32				tx_pkts;=0A=
 	SInt32				rx_bytes;=0A=
 	SInt32				tx_bytes;=0A=
 	=0A=
 	SInt32				max_pkt;=0A=
 	SInt32				sequence_drops;=0A=
 };=0A=
 =0A=
 =0A=
 enum {=0A=
 	IMC_REMINFO_NORMAL	=3D 0,=0A=
 	IMC_REMINFO_EXPIRED	=3D 1=0A=
 };=0A=
 =0A=
 =0A=
 class IMCRemInfo {=0A=
 public:=0A=
 					IMCRemInfo(void);=0A=
 					~IMCRemInfo(void);=0A=
 	=0A=
 	char *			name;=0A=
 	char *			version;=0A=
 	time_t			alive;=0A=
 	SInt32			ping;=0A=
 	SInt32			type;=0A=
 	bool			hide;=0A=
 	char *			route;=0A=
 	char *			path;=0A=
 	UInt32			top_sequence;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCEvent {=0A=
 public:=0A=
 					IMCEvent(void);=0A=
 					~IMCEvent(void);=0A=
 	=0A=
 	time_t			when;=0A=
 	void			(*callback)(Ptr data);=0A=
 	Ptr				data;=0A=
 	SInt32			timed;=0A=
 public:=0A=
 	static void		Add(int when, void (*callback)(Ptr), Ptr data, int =
 timed);=0A=
 	static void		Cancel(void (*callback)(Ptr), Ptr data);=0A=
 	static void		Run(time_t time);=0A=
 	static int		Next(void (*callback)(Ptr), Ptr data);=0A=
 };=0A=
 =0A=
 =0A=
 struct IMCVInfo {=0A=
 	SInt32			version;=0A=
 	const char *	(*generate)(const IMCPacket *);=0A=
 	IMCPacket *		(*interpret)(const char *);=0A=
 };=0A=
 =0A=
 =0A=
  =0A=
 struct IMCMemory {=0A=
 	char *			from;=0A=
 	UInt32			sequence;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCIgnore {=0A=
 public:=0A=
 						IMCIgnore(void);=0A=
 						~IMCIgnore(void);=0A=
 	char *				name;=0A=
 	SInt32				match;=0A=
 	SInt32				type;=0A=
 	=0A=
 public:=0A=
 	static IMCIgnore *	Find(const char *who, int type);=0A=
 	static int			Ignored(const char *who);=0A=
 	static void			Add(const char *who, int flags);=0A=
 	static int			Delete(const char *who);=0A=
 };=0A=
 =0A=
 =0A=
 class IMCMail {=0A=
 public:=0A=
 						IMCMail(void);=0A=
 						~IMCMail(void);=0A=
 	=0A=
 	void				Write(FILE *out);=0A=
 	=0A=
 	char *				from;=0A=
 	char *				to;=0A=
 	char *				text;=0A=
 	char *				date;=0A=
 	char *				subject;=0A=
 	char *				id;=0A=
 	time_t				received;=0A=
 	SInt32				usage;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCQNode {=0A=
 public:=0A=
 						IMCQNode(void);=0A=
 						~IMCQNode(void);=0A=
 						=0A=
 	void				Write(FILE *out);=0A=
 						=0A=
 	IMCMail *			data;=0A=
 	char *				tomud;=0A=
 	IMCQNode *			next;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCMailID {=0A=
 public:=0A=
 						IMCMailID(void);=0A=
 						~IMCMailID(void);=0A=
 						=0A=
 	void				Write(FILE *out);=0A=
 	=0A=
 	char *				id;=0A=
 	time_t				received;=0A=
 };=0A=
 =0A=
 =0A=
 class IMCSiteInfo {=0A=
 public:=0A=
 	char *				name;=0A=
 	char *				host;=0A=
 	char *				email;=0A=
 	char *				imail;=0A=
 	char *				www;=0A=
 	char *				details;=0A=
 	char *				flags;=0A=
 	SInt32				maxGuests;=0A=
 };=0A=
  =0A=
 =0A=
 =0A=
 extern IMCSiteInfo siteinfo;=0A=
 =0A=
  =0A=
 extern IMCMemory	memory[Memory];=0A=
  =0A=
 extern IMCVInfo		vinfo[];=0A=
 =0A=
  =0A=
 extern IMCStats		stats;=0A=
 =0A=
  =0A=
 extern const IMCFlagType	connection_flags[];=0A=
 extern const IMCFlagType	ignore_types[];=0A=
 extern const IMCFlagType	state_names[];=0A=
 extern const IMCFlagType	active_names[];=0A=
 =0A=
 extern time_t	boottime;			 =0A=
 extern SInt32	lock;				 =0A=
 extern char *	name;				 =0A=
 extern UInt16	port;				 =0A=
 extern UInt32	bind;				 =0A=
 extern char *	prefix;				 =0A=
 extern bool		router,				 =0A=
 				logOn,				 =0A=
 				hubSwitch;			 =0A=
 extern LList<IMCIgnore *>	ignore_list;	 =0A=
 extern LList<IMCRemInfo *>	reminfo_list;	 =0A=
 =0A=
 extern LList<IMCConnect *>	connect_list;	 =0A=
 extern LList<IMCInfo *>		info_list;		 =0A=
 extern LList<IMCEvent *>	event_list;	 =0A=
 =0A=
 =0A=
 extern time_t now;					 =0A=
 extern UInt32 sequencenumber;		 =0A=
 extern SInt32 active;				 =0A=
 extern SInt32 lock_file;			 =0A=
 =0A=
 extern LList<IMCMail *>		ml_head;			 =0A=
 extern IMCQNode *mq_head, *mq_tail;	 =0A=
 extern LList<IMCMailID *>	idlist;			 =0A=
 =0A=
 extern char lasterror[(16300 -2* (20 + 40 +1) - 200 - 20 -20) ];	 =0A=
 =0A=
  =0A=
 =0A=
 char *		getsbuf(int len);							 =0A=
 void		shrinksbuf(char *buf);=0A=
 IMCRemInfo *find_reminfo(const char *name, int type);	 =0A=
 IMCInfo *	getinfo(const char *name);					 =0A=
 =0A=
 =0A=
  =0A=
 const char *flagname(int value, const IMCFlagType *table);=0A=
 int			flagvalue(const char *name, const IMCFlagType *table);=0A=
 const char *statename(int value, const IMCFlagType *table);=0A=
 int			statevalue(const char *name, const IMCFlagType *table);=0A=
 =0A=
  =0A=
 const char *nameof(const char *name);=0A=
 const char *mudof(const char *name);=0A=
 const char *makename(const char *name, const char *mud);=0A=
 const char *firstinpath(const char *path);=0A=
 const char *lastinpath(const char *path);=0A=
 const char *getarg(const char *arg, char *buf, int length);=0A=
 bool		hasname(const char *list, const char *name);=0A=
 void		addname(char **list, const char *name);=0A=
 void		removename(char **list, const char *name);=0A=
 void		slower(char *what);=0A=
 void		sncpy(char *dest, const char *src, int count);=0A=
 =0A=
 =0A=
  =0A=
 void		logstring(const char *format,...) =
 __attribute__((format(printf,1,2)));=0A=
 void		logerror(const char *format,...) =
 __attribute__((format(printf,1,2)));=0A=
 void		qerror(const char *format,...) =
 __attribute__((format(printf,1,2)));=0A=
 void		lerror(const char *format,...) =
 __attribute__((format(printf,1,2)));=0A=
 const char *error(void);=0A=
 =0A=
 =0A=
  =0A=
 void		log(const char *string);=0A=
 =0A=
 =0A=
  =0A=
 void ev_expire_reminfo(Ptr data);=0A=
 void ev_drop_reminfo(Ptr data);=0A=
 void ev_login_timeout(Ptr data);        =0A=
 void ev_reconnect(Ptr data);=0A=
 void ev_shrink_input(Ptr data);=0A=
 void ev_shrink_output(Ptr data);=0A=
 void ev_keepalive(Ptr data);=0A=
 void ev_request_keepalive(Ptr data);=0A=
 void ev_spam1(Ptr data);=0A=
 void ev_spam2(Ptr data);=0A=
 void ev_qnode_expire(Ptr data);         =0A=
 void ev_mailid_expire(Ptr data);        =0A=
 void ev_qnode_send(Ptr data);           =0A=
 void ev_imc_optimize(Ptr data);=0A=
 void ev_imc_pollforhub(Ptr data);=0A=
 =0A=
  =0A=
 =0A=
 void Startup(const char *prefix);=0A=
 void StartupPort(void);=0A=
 void StartupNetwork(void);=0A=
 void Shutdown(void);=0A=
 void ShutdownPort(void);=0A=
 void ShutdownNetwork(void);=0A=
 void Idle(int s, int us);=0A=
 =0A=
 int get_max_timeout(void);=0A=
 int fill_fdsets(int maxfd, _types_fd_set  *read, _types_fd_set  *write, =
 _types_fd_set  *exc);=0A=
 void idle_select(_types_fd_set  *read, _types_fd_set  *write, =
 _types_fd_set  *exc, time_t now);=0A=
 =0A=
 int		Connect(const char *mud);=0A=
 int		Disconnect(const char *mud);=0A=
 =0A=
  =0A=
 =0A=
 void sendignore(const char *to);=0A=
 =0A=
 void sendChat(const IMCCharacter *from, int channel, const char =
 *argument, const char *to);=0A=
 void sendEmote(const IMCCharacter *from, int channel, const char =
 *argument, const char *to);=0A=
 void sendTell(const IMCCharacter *from, const char *to, const char =
 *argument, int isreply);=0A=
 void sendWho(const IMCCharacter *from, const char *to, const char =
 *type);=0A=
 void sendWhoreply(const char *to, const char *data, int sequence);=0A=
 void sendWhois(const IMCCharacter *from, const char *to);=0A=
 void sendWhoisreply(const char *to, const char *data);=0A=
 void sendBeep(const IMCCharacter *from, const char *to);=0A=
 void sendKeepalive(void);=0A=
 void sendPing(const char *to, int time_s, int time_u);=0A=
 void sendPingreply(const char *to, int time_s, int time_u, const char =
 *path);=0A=
 void sendWhois(const IMCCharacter *from, const char *to);=0A=
 void sendWhoisreply(const char *to, const char *text);=0A=
 void sendAutoconnect(const char *to);=0A=
 void sendInfoRequest(void);=0A=
 =0A=
 void whoreply_start(const char *to);=0A=
 void whoreply_add(const char *text);=0A=
 void whoreply_end(void);=0A=
 =0A=
  =0A=
 =0A=
 void recvChat(const IMCCharacter *from, int channel, const char =
 *argument);=0A=
 void recvEmote(const IMCCharacter *from, int channel, const char =
 *argument);=0A=
 void recvTell(const IMCCharacter *from, const char *to, const char =
 *argument, int isreply);=0A=
 void recvWhoreply(const char *to, const char *data, int sequence);=0A=
 void recvWho(const IMCCharacter *from, const char *type);=0A=
 void recvBeep(const IMCCharacter *from, const char *to);=0A=
 void recvKeepalive(const char *from, const char *version, const char =
 *flags);=0A=
 void recvPing(const char *from, int time_s, int time_u, const char =
 *path);=0A=
 void recvPingreply(const char *from, int time_s, int time_u, const char =
 *pathto, const char *pathfrom);=0A=
 void recvWhois(const IMCCharacter *from, const char *to);=0A=
 void recvWhoisreply(const char *to, const char *text);=0A=
 void recvInforequest(const char *from);=0A=
 void recvInforeply(const char *from, const char *hub, int direct);=0A=
 void recvAutoconnect(const char *to, const char *rhost, int rport, =
 const char *rclientpw, const char *rserverpw,=0A=
 		int rrcvstamp, int rnoforward, const char *rflags, const char =
 *remotename);=0A=
 =0A=
 void requestKeepalive(void);=0A=
 void autoconnectReplyAccept(const char *from, const char *rhost, int =
 rport, const char *rclientpw, const char *rserverpw,=0A=
 		int rrcvstamp, int rnoforward, const char *rflags, const char =
 *remotename, const char *confirm);=0A=
 =0A=
 void traceroute(int ping, const char *pathto, const char *pathfrom);=0A=
 =0A=
  =0A=
 const char *sockets(void);=0A=
 const char *getstats(void);=0A=
 =0A=
 =0A=
 const char *make_password(void);=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 const char *Ignore(const char *what);=0A=
 const char *List(int level);=0A=
 int Command(const char *argument);=0A=
 int SaveConfig(void);=0A=
 int ReadConfig(void);=0A=
 int SaveIgnores(void);=0A=
 int ReadIgnores(void);=0A=
 =0A=
 extern char globalHubname[20 ];=0A=
 extern int globalDirectnum;=0A=
 =0A=
  =0A=
 =0A=
 void recvMailok(const char *from, const char *id);=0A=
 void recvMailrej(const char *from, const char *id, const char =
 *reason);=0A=
 void recvMail(const char *from, const char *to, const char *date,=0A=
 		   const char *subject, const char *id, const char *text);=0A=
 void sendMail(const char *from, const char *to, const char *date,=0A=
 		   const char *subject, const char *text);=0A=
 =0A=
 char *mail_arrived(const char *from, const char *to, const char =
 *date,=0A=
 		       const char *subject, const char *text);=0A=
 =0A=
 void mail_startup(void);=0A=
 void mail_shutdown(void);=0A=
 =0A=
 char *mail_showqueue(void);=0A=
 =0A=
 }	 =0A=
 =0A=
 =0A=
 # 54 "comm.cp" 2=0A=
 =0A=
 # 1 "imc-mercbase.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "imc-mercdefs.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 48 "imc-mercdefs.h"=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 85 "imc-mercdefs.h"=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 37 "imc-mercbase.h" 2=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void ( do_rinfo )(Character *ch, char *argument, SInt32 cmd, const char =
 *command, SInt32 subcmd) ;=0A=
 =0A=
 void ( do_rtell )(Character *ch, char *argument, SInt32 cmd, const char =
 *command, SInt32 subcmd) ;=0A=
 void ( do_rreply )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rwho )(Character *ch, char *argument, SInt32 cmd, const char =
 *command, SInt32 subcmd) ;=0A=
 void ( do_rwhois )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rquery )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rbeep )(Character *ch, char *argument, SInt32 cmd, const char =
 *command, SInt32 subcmd) ;=0A=
 void ( do_rfinger )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 =0A=
 void ( do_imclist )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rsockets )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_imc )(Character *ch, char *argument, SInt32 cmd, const char =
 *command, SInt32 subcmd) ;=0A=
 void ( do_imcpoll )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rignore )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rconnect )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rdisconnect )(Character *ch, char *argument, SInt32 cmd, =
 const char *command, SInt32 subcmd) ;=0A=
 =0A=
 void ( do_mailqueue )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_istats )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 =0A=
 void ( do_rchannels )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_rchanset )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 =0A=
 void ( do_rping )(Character *ch, char *argument, SInt32 cmd, const char =
 *command, SInt32 subcmd) ;=0A=
 =0A=
 namespace IMC {=0A=
  =0A=
 void markstrings(void (*markfn)(char *));=0A=
 =0A=
  =0A=
 const char *color_mtoi(const char *);=0A=
 const char *color_itom(const char *);=0A=
 =0A=
  =0A=
 void post_mail(Character *from, const char *sender, const char =
 *to_list,=0A=
                    const char *subject, const char *date, const char =
 *text);=0A=
 }	 =0A=
 =0A=
 =0A=
 # 55 "comm.cp" 2=0A=
 =0A=
 # 1 "icec-mercbase.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "ice.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace ICE {=0A=
 =0A=
 enum { Timeout =3D 650 };=0A=
 =0A=
 void				Init(void);=0A=
 void				Shutdown(void);=0A=
 =0A=
 const char *		Command(const char *from, const char *arg);=0A=
 =0A=
 void				recvMsgR(const char *from, const char *realfrom, const char =
 *chan,=0A=
 							const char *txt, int emote);=0A=
 void				recvMsgB(const char *from, const char *chan, const char *txt, =
 int emote);=0A=
 void				recvUpdate(const char *from, const char *chan, const char =
 *owner,=0A=
 							const char *operators, const char *policy, const char =
 *invited,=0A=
 							const char *excluded);=0A=
 void				recvDestroy(const char *from, const char *channel);=0A=
 =0A=
 const char *		NameOf(const char *fullname);=0A=
 const char *		MudOf(const char *fullname);=0A=
 =0A=
 =0A=
 class LocalChannel {=0A=
 public:=0A=
 						LocalChannel(void) : name(__null ), level(0), format1(__null ), =
 format2(__null ) { };=0A=
 						~LocalChannel(void);=0A=
 						=0A=
 	char *				name;=0A=
 	int					level;=0A=
 	char *				format1;=0A=
 	char *				format2;=0A=
 };=0A=
 =0A=
 =0A=
 class Channel {=0A=
 public:=0A=
 						Channel(void);=0A=
 						~Channel(void);=0A=
 	=0A=
 	bool				Audible(const char *who);=0A=
 	void				SendMessage(const char *name, const char *text, bool =
 emote);=0A=
 	void				Show(const char *from, const char *text, bool emote);=0A=
 	void				FreeLocal(void);=0A=
 	void				NotifyUpdate(void);=0A=
 	=0A=
 	char *				name;=0A=
 	char *				owner;=0A=
 	char *				operators;=0A=
 	=0A=
 	enum Policy { Open =3D 1, Closed, Private }=0A=
 						policy;=0A=
 	char *				invited;=0A=
 	char *				excluded;=0A=
 	char *				active;=0A=
 	LocalChannel *		local;=0A=
 =0A=
 public:=0A=
 	static void			Load(void);=0A=
 	static void			Save(void);=0A=
 	static Channel *	Find(const char *name);=0A=
 	static Channel *	FindLocal(const char *name);=0A=
 };=0A=
 =0A=
 =0A=
 extern	LList<Channel *>	channels;=0A=
 =0A=
 }	 =0A=
 =0A=
 =0A=
 # 37 "icec-mercbase.h" 2=0A=
 =0A=
 =0A=
 =0A=
 void ( do_icommand )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_isetup )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 void ( do_ilist )(Character *ch, char *argument, SInt32 cmd, const char =
 *command, SInt32 subcmd) ;=0A=
 void ( do_ichannels )(Character *ch, char *argument, SInt32 cmd, const =
 char *command, SInt32 subcmd) ;=0A=
 =0A=
 bool icec_command_hook(Character *ch, const char *command, char =
 *argument);=0A=
 =0A=
 =0A=
 # 56 "comm.cp" 2=0A=
 =0A=
 =0A=
 # 1 "iced.h" 1=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 namespace ICED {=0A=
 =0A=
 extern const char *	Creators;=0A=
 =0A=
 const int			RefreshTime =3D 30;=0A=
 =0A=
 extern LList<ICE::Channel *>	Channels;=0A=
 =0A=
 ICE::Channel *	FindChannel(const char *name);=0A=
 =0A=
 int	Receive(const IMC::IMCPacket *p, int bcast);=0A=
 =0A=
 void recvCommand(const char *from, const char *chan, const char *cmd, =
 const char *data, int override);=0A=
 void policy		(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void addop		(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void removeop	(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void invite		(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void uninvite	(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void exclude	(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void unexclude	(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void create		(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void destroy	(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void refresh	(ICE::Channel *c, const char *cname, const char *from, =
 const char *data);=0A=
 void list		(ICE::Channel *c, const char *cname, const char *from, const =
 char *data);=0A=
 =0A=
 void sendDestroy(const char *cname, const char *to);=0A=
 =0A=
 void recvMsgP(const char *from, const char *chan, const char *txt, int =
 emote);=0A=
 void recvMsgB(const char *from, const char *chan);=0A=
 void recvRefresh(const char *from, const char *chan);=0A=
 void recvJoin(const char *from, const char *chan);=0A=
 void recvLeave(const char *from, const char *chan);=0A=
 =0A=
 void update(ICE::Channel *c, const char *to);=0A=
 =0A=
 void Init(void);=0A=
 =0A=
 void GAnnounce(const char *fmt, ...) __attribute__((format(printf, 1, =
 2)));=0A=
 void Announce(ICE::Channel *c, const char *fmt, ...) =
 __attribute__((format(printf, 2, 3)));=0A=
 =0A=
 void ev_iced_chanlist(void *data);=0A=
 void ev_iced_refresh(void *data);=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 # 58 "comm.cp" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/include/arpa/telnet.h" 1 3=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *telcmds[];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 144 "/usr/include/arpa/telnet.h" 3=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *slc_names[];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *authtype_names[];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 311 "/usr/include/arpa/telnet.h" 3=0A=
 =0A=
 extern char *encrypt_names[];=0A=
 extern char *enctype_names[];=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 62 "comm.cp" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 extern int num_invalid;=0A=
 extern SInt32 circle_restrict;=0A=
 extern bool mini_mud;=0A=
 bool no_rent_check =3D false;=0A=
 extern UInt16 DFLT_PORT;=0A=
 extern const char *DFLT_DIR;=0A=
 extern const char *DFLT_IP;=0A=
 extern int MAX_PLAYERS;=0A=
 bool no_external_procs =3D false;=0A=
 const char *LOGNAME;=0A=
 =0A=
 extern struct TimeInfoData time_info;		 =0A=
 extern char *help;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 struct txt_block *bufpool =3D 0;	 =0A=
 =0A=
 int buf_largecount =3D 0;		 =0A=
 int buf_overflows =3D 0;		 =0A=
 int buf_switches =3D 0;		 =0A=
 int circle_shutdown =3D 0;	 =0A=
 int circle_reboot =3D 0;		 =0A=
 int circle_copyover =3D 0;=0A=
 int no_specials =3D 0;		 =0A=
 int max_players =3D 0;		 =0A=
 int tics =3D 0;			 =0A=
 int act_check;=0A=
 int scheck =3D 0;			 =0A=
 extern int nameserver_is_slow;	 =0A=
 extern int auto_save;		 =0A=
 extern UInt32 autosave_time;	 =0A=
 struct timeval null_time;	 =0A=
 FILE *logfile =3D __null ;=0A=
 extern char *LOGFILE;=0A=
 =0A=
 static bool		fCopyOver;			 =0A=
 SInt32			mother_desc;		 =0A=
 SInt32			port;=0A=
 =0A=
  =0A=
 bool get_from_q(struct txt_q *queue, char *dest, int *aliased);=0A=
 void init_game(UInt16 port);=0A=
 void signal_setup(void);=0A=
 void game_loop(int mother_desc);=0A=
 int init_socket(UInt16 port);=0A=
 int new_descriptor(int s);=0A=
 int get_max_players(void);=0A=
 int process_output(Descriptor *t);=0A=
 int process_input(Descriptor *t);=0A=
 void close_socket(Descriptor *d);=0A=
 timeval operator-(timeval a, timeval b);=0A=
 timeval operator+(timeval a, timeval b);=0A=
 void flush_queues(Descriptor *d);=0A=
 void nonblock(int  s);=0A=
 int perform_subst(Descriptor *t, char *orig, char *subst);=0A=
 int perform_alias(Descriptor *d, char *orig);=0A=
 void record_usage(void);=0A=
 char *make_prompt(Descriptor *point);=0A=
 void check_idle_passwords(void);=0A=
 void heartbeat(int pulse);=0A=
 void copyover_recover(void);=0A=
 int set_sendbuf(int  s);=0A=
 void sub_write_to_char(Character *ch, char *tokens[], Ptr otokens[], =
 SInt8 type[]);=0A=
 void proc_color(char *inbuf, int color);=0A=
 char *prompt_str(Character *ch);=0A=
 void perform_act(const char *orig, const Character *ch, const Object =
 *obj,=0A=
 		    CPtr vict_obj, Character *to);=0A=
 void setup_log(const char *filename, int fd);=0A=
 int open_logfile(const char *filename, FILE *stderr_fp);=0A=
 =0A=
 =0A=
 void  checkpointing(int);=0A=
 void  reread_wizlists(int);=0A=
 void  unrestrict_game(int);=0A=
 void  hupsig(int);=0A=
 void  reap(int sig);=0A=
 ssize_t perform_socket_read(int  desc, char *read_point,size_t =
 space_left);=0A=
 ssize_t perform_socket_write(int  desc, const char *txt,size_t =
 length);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 void reboot_wizlists(void);=0A=
 void boot_db(void);=0A=
 void boot_world(void);=0A=
 void zone_update(void);=0A=
 void point_update(void);		 =0A=
 void hour_update(void);			 =0A=
 void free_purged_lists();		 =0A=
 void check_mobile_activity(UInt32 pulse);=0A=
  =0A=
 void perform_violence(void);=0A=
 void show_string(Descriptor *d, char *input);=0A=
 void weather_and_time(int mode);=0A=
 void act_mtrigger(Character *ch, const char *str, const Character =
 *actor, =0A=
 		const Character *victim, const Object *object, const Object *target, =
 const char *arg);=0A=
 void script_trigger_check(void);=0A=
 =0A=
 UInt32 pulse;=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int enter_player_game(Descriptor *d);=0A=
 =0A=
  =0A=
 void copyover_recover(void) {=0A=
 	Descriptor *d;=0A=
 	FILE *fp;=0A=
 	char *host =3D Buffer::Acquire(( 1024 ), Buffer::tBuffer, __null , =
 __FUNCTION__, 197) ;=0A=
 	int desc, player_i;=0A=
 	int fOld;=0A=
 	char *name =3D Buffer::Acquire(( MAX_INPUT_LENGTH ), Buffer::tBuffer, =
 __null , __FUNCTION__, 200) ;=0A=
 =0A=
 	log ("Copyover recovery initiated");=0A=
 =0A=
 	if (!(fp =3D fopen ("copyover.dat" , "r"))) {  =0A=
 		perror ("copyover_recover:fopen");=0A=
 		log ("Copyover file not found. Exitting.\r\n");=0A=
 		exit (1);=0A=
 	}=0A=
 =0A=
 	unlink ("copyover.dat" );  =0A=
 =0A=
 	for (;;) {=0A=
 		fOld =3D (! 0 ) ;=0A=
 		fscanf (fp, "%d %s %s\n", &desc, name, host);=0A=
 		if (desc =3D=3D -1)=0A=
 			break;=0A=
 =0A=
 		 =0A=
 		if (write_to_descriptor (desc, "\r\nRestoring from copyover...\r\n") =
 < 0) {=0A=
 			close (desc);  =0A=
 			continue;=0A=
 		}=0A=
 =0A=
 		d =3D new Descriptor(desc);=0A=
 		=0A=
 		strcpy(d->host, host);=0A=
 		descriptor_list.Add(d);=0A=
 	=0A=
 		(( d )->connected)  =3D CON_CLOSE;=0A=
 =0A=
 		 =0A=
 =0A=
 		d->character =3D new Character();=0A=
 		d->character->desc =3D d;=0A=
 =0A=
 		if ((player_i =3D d->character->Load(name)) >=3D 0) {=0A=
 			(( d->character )->pfilepos)  =3D player_i;=0A=
 			if (! (! ((( ((   d->character   )->general.act)  ) & (  MOB_ISNPC =
 )) )  && (( ((  d->character  )->general.act)  ) & (  (  PLR_DELETED ) =
 )) ) )=0A=
 				(( (( d->character )->general.act)  ) &=3D ~( PLR_WRITING | =
 PLR_MAILING )) ;=0A=
 			else=0A=
 				fOld =3D 0 ;=0A=
 		} else=0A=
 			fOld =3D 0 ;=0A=
 =0A=
 		if (!fOld) {  =0A=
 			write_to_descriptor (desc, "\r\nSomehow, your character was lost in =
 the copyover. Sorry.\r\n");=0A=
 			close_socket (d);=0A=
 		} else {  =0A=
 			write_to_descriptor (desc, "\r\nCopyover recovery =
 complete.\r\n");=0A=
 			enter_player_game(d);=0A=
 			(( d )->connected)  =3D CON_PLAYING;=0A=
 			look_at_room(d->character, 0);=0A=
 		}=0A=
  =0A=
 	}=0A=
 =0A=
 	fclose (fp);=0A=
 	do { Buffer::Detach(( name ), Buffer::tBuffer, __FUNCTION__, 258); ( =
 name ) =3D __null ; } while(0) ;=0A=
 	do { Buffer::Detach(( host ), Buffer::tBuffer, __FUNCTION__, 259); ( =
 host ) =3D __null ; } while(0) ;=0A=
 }=0A=
 =0A=
 =0A=
 int main(int argc, char **argv) {=0A=
 	int pos =3D 1;=0A=
 	const char *dir;=0A=
 =0A=
 	Buffer::Init();=0A=
 =0A=
 	port =3D DFLT_PORT;=0A=
 	dir =3D DFLT_DIR;=0A=
 =0A=
 	 =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 	while ((pos < argc) && (*(argv[pos]) =3D=3D '-')) {=0A=
 		switch (*(argv[pos] + 1)) {=0A=
 			case 'o':=0A=
 				if (*(argv[pos] + 2))	LOGNAME =3D argv[pos] + 2;=0A=
 				else if (++pos < argc)	LOGNAME =3D argv[pos];=0A=
 				else {=0A=
 					puts("SYSERR: File name to log to expected after optoin -o.");=0A=
 					exit(1);=0A=
 				}=0A=
 			case 'C':  =0A=
 				fCopyOver =3D (! 0 ) ;=0A=
 				mother_desc =3D atoi(argv[pos]+2);=0A=
 				no_rent_check =3D true;=0A=
 				break;=0A=
 			case 'd':=0A=
 				if (*(argv[pos] + 2))		dir =3D argv[pos] + 2;=0A=
 				else if (++pos < argc)		dir =3D argv[pos];=0A=
 				else {=0A=
 					puts("SYSERR: Directory arg expected after option -d.");=0A=
 					exit(1);=0A=
 				}=0A=
 				break;=0A=
 			case 'm':=0A=
 				mini_mud =3D true;=0A=
 				no_rent_check =3D true;=0A=
 				puts("Running in minimized mode & with no rent check.");=0A=
 				break;=0A=
 			case 'c':=0A=
 				scheck =3D 1;=0A=
 				puts("Syntax check mode enabled.");=0A=
 				break;=0A=
 			case 'q':=0A=
 				no_rent_check =3D true;=0A=
 				puts("Quick boot mode -- rent check supressed.");=0A=
 				break;=0A=
 			case 'r':=0A=
 				circle_restrict =3D 1;=0A=
 				puts("Restricting game -- no new players allowed.");=0A=
 				break;=0A=
 			case 's':=0A=
 				no_specials =3D 1;=0A=
 				puts("Suppressing assignment of special routines.");=0A=
 				break;=0A=
 			case 'v':=0A=
 				if (*(argv[pos] + 2))		Buffer::options =3D atoi(argv[pos] + 2);=0A=
 				else if (++pos < argc)		Buffer::options =3D atoi(argv[pos]);=0A=
 				else {=0A=
 					puts("SYSERR: Number expected after option -v.");=0A=
 					exit(1);=0A=
 				}=0A=
 			case 'x':=0A=
 				no_external_procs =3D true;=0A=
 				break;=0A=
 			default:=0A=
 				printf("SYSERR: Unknown option -%c in argument string.", =
 *(argv[pos] + 1));=0A=
 				break;=0A=
 		}=0A=
 	pos++;=0A=
 	}=0A=
 =0A=
 	if (pos < argc) {=0A=
 		if (! ((_ctype_+1)[(unsigned)( *argv[pos] )]& 04 ) ) {=0A=
 			printf("Usage: %s [-c] [-m] [-q] [-r] [-s] [-x] [-v val] [-d =
 pathname] [port #]", argv[0]);=0A=
 			exit(1);=0A=
 		} else if ((port =3D atoi(argv[pos])) <=3D 1024) {=0A=
 			printf("SYSERR: Illegal port number.");=0A=
 			exit(1);=0A=
 		}=0A=
 	}=0A=
 =0A=
  =0A=
 	 =0A=
 	setup_log(LOGNAME, 2 );=0A=
 =0A=
  =0A=
 =0A=
 	if (chdir(dir) < 0) {=0A=
 		perror("SYSERR: Fatal error changing to data directory");=0A=
 		exit(1);=0A=
 	}=0A=
 	log("Using %s as data directory.", dir);=0A=
 =0A=
 	log("Signal trapping.");=0A=
 	signal_setup();=0A=
 	=0A=
 	Identd::Startup();=0A=
 	=0A=
 	if (scheck) {=0A=
 		boot_world();=0A=
 		log("Done.");=0A=
 		exit(0);=0A=
 	} else {=0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 			log("Running game on port %d.", port);=0A=
 			init_game(port);=0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 	}=0A=
 	=0A=
 	Identd::Shutdown();=0A=
 	Buffer::Exit();=0A=
 	=0A=
 	if (circle_copyover) {=0A=
 =0A=
 =0A=
 		char buf[256], buf2[64];=0A=
 =0A=
 		IMC::Shutdown();=0A=
 		=0A=
 		 =0A=
 =0A=
 		 =0A=
 		=0A=
 		sprintf (buf, "%d", port);=0A=
 		sprintf (buf2, "-C%d", mother_desc);=0A=
 		=0A=
 		 =0A=
 		chdir ("..");=0A=
 		=0A=
 =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 		=0A=
 		execl ("bin/circle" , "circle", buf2, buf, __null );=0A=
 =0A=
 	}=0A=
 	=0A=
 	return 0;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 void init_game(UInt16 port) {=0A=
 	circle_srandom(time(0));=0A=
 =0A=
 	log("Finding player limit.");=0A=
 	max_players =3D get_max_players();=0A=
 =0A=
 	if (!fCopyOver) {	 =0A=
 		log("Opening mother connection.");=0A=
 		mother_desc =3D init_socket(port);=0A=
 	}=0A=
 	=0A=
 	Event::Initialize();=0A=
 	=0A=
 	boot_db();=0A=
 =0A=
 	IMC::Startup("imc/" );=0A=
 	ICE::Init();=0A=
 =0A=
 	ICED::Init();=0A=
 =0A=
 =0A=
 	if (fCopyOver)  =0A=
 		copyover_recover();=0A=
 =0A=
 	log("Entering game loop.");=0A=
 =0A=
 	game_loop(mother_desc);=0A=
 	=0A=
 	=0A=
 	IMC::Shutdown();=0A=
 =0A=
 	if (!circle_copyover) {=0A=
 		Crash_save_all();=0A=
 =0A=
 		log("Closing all sockets.");=0A=
 		while (descriptor_list.Top())=0A=
 			close_socket(descriptor_list.Top());=0A=
 =0A=
 		close( mother_desc ) ;=0A=
 	}=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	if (circle_reboot) {=0A=
 		log("Rebooting.");=0A=
 		exit(52);			 =0A=
 	} else if (!circle_copyover)=0A=
 		log("Normal termination of game.");=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 int init_socket(UInt16 port) {=0A=
 	int s;=0A=
 	int opt;=0A=
 	struct sockaddr_in sa;=0A=
 =0A=
    =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	if ((s =3D socket(2 , 1 , 0)) < 0) {=0A=
 		perror("Error creating socket");=0A=
 		exit(1);=0A=
 	}=0A=
 =0A=
 =0A=
 =0A=
 	opt =3D 1;=0A=
 	if (setsockopt(s, 0xffff , 0x0004 , (char *) &opt, sizeof(opt)) < 0) =
 {=0A=
 		perror("SYSERR: setsockopt REUSEADDR");=0A=
 		exit(1);=0A=
 	}=0A=
 	=0A=
 =0A=
 =0A=
 	set_sendbuf(s);=0A=
 =0A=
 =0A=
 	{=0A=
 		struct linger ld;=0A=
 =0A=
 		ld.l_onoff =3D 0;=0A=
 		ld.l_linger =3D 0;=0A=
 		if (setsockopt(s, 0xffff , 0x0080 , (char *) &ld, sizeof(ld)) < 0)=0A=
 			perror("SYSERR: setsockopt LINGER");=0A=
 	}=0A=
 =0A=
 	=0A=
 	memset(&sa, 0, sizeof(sa));=0A=
 	=0A=
 	sa.sin_family =3D 2 ;=0A=
 	sa.sin_port =3D htons(port);=0A=
 =0A=
 =0A=
 =0A=
 	sa.sin_addr.s_addr =3D inet_addr("209.123.14.5");=0A=
 =0A=
 =0A=
 	if (bind(s, (struct sockaddr *) &sa, sizeof(sa)) < 0) {=0A=
 		perror("SYSERR: bind");=0A=
 		close( s ) ;=0A=
 		exit(1);=0A=
 	}=0A=
 	nonblock(s);=0A=
 	listen(s, 5);=0A=
 	return s;=0A=
 }=0A=
 =0A=
 =0A=
 int get_max_players(void) {=0A=
 	return MAX_PLAYERS;=0A=
 	int max_descs =3D 0;=0A=
 	const char *method;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	{=0A=
 		struct rlimit limit;=0A=
 =0A=
 		 =0A=
 		method =3D "rlimit";=0A=
 		if (getrlimit(5 , &limit) < 0) {=0A=
 			perror("SYSERR: calling getrlimit");=0A=
 			exit(1);=0A=
 		}=0A=
 		 =0A=
 		limit.rlim_cur =3D limit.rlim_max;=0A=
 		if (setrlimit(5 , &limit) < 0) {=0A=
 			perror("SYSERR: calling setrlimit");=0A=
 			exit(1);=0A=
 		}=0A=
 =0A=
 		if (limit.rlim_max =3D=3D (0xffffffffUL) )=0A=
 			max_descs =3D MAX_PLAYERS + 8 ;=0A=
 		else=0A=
 			max_descs =3D MIN(MAX_PLAYERS + 8 , (int)limit.rlim_max);=0A=
 =0A=
 =0A=
 =0A=
 	}=0A=
 =0A=
 # 643 "comm.cp"=0A=
 =0A=
 =0A=
 	 =0A=
 	max_descs =3D MIN(MAX_PLAYERS, max_descs - 8 );=0A=
 =0A=
 	if (max_descs <=3D 0) {=0A=
 		log("SYSERR: Non-positive max player limit!  (Set at %d using %s).", =
 max_descs, method);=0A=
 		exit(1);=0A=
 	}=0A=
 	log("   Setting player limit to %d using %s.", max_descs, method);=0A=
 	return max_descs;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void game_loop(int mother_desc) {=0A=
 	_types_fd_set  input_set, output_set, exc_set, null_set;=0A=
 	struct timeval last_time, before_sleep, opt_time, process_time, now, =
 timeout;=0A=
 	char *comm;=0A=
 	Descriptor *d;=0A=
 	SInt32	missed_pulses =3D 0, maxdesc, aliased;=0A=
 =0A=
 	 =0A=
 	null_time.tv_sec =3D 0;=0A=
 	null_time.tv_usec =3D 0;=0A=
 	opt_time.tv_usec =3D OPT_USEC;=0A=
 	opt_time.tv_sec =3D 0;=0A=
 	(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) &null_set =
 ; for (__i =3D 0; __i < sizeof (*( &null_set )); ++__i) *__tmp++ =3D 0; =
 })) ;=0A=
 =0A=
 	gettimeofday(&last_time, (struct timezone *) 0);=0A=
 	=0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 =0A=
    =0A=
 	while (!circle_shutdown) {=0A=
  =0A=
 		if (descriptor_list.Count() =3D=3D 0) {=0A=
  =0A=
  =0A=
 			(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
 &input_set ; for (__i =3D 0; __i < sizeof (*( &input_set )); ++__i) =
 *__tmp++ =3D 0; })) ;=0A=
 			(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
 &output_set ; for (__i =3D 0; __i < sizeof (*( &output_set )); ++__i) =
 *__tmp++ =3D 0; })) ;	 =0A=
 			(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
 &exc_set ; for (__i =3D 0; __i < sizeof (*( &exc_set )); ++__i) =
 *__tmp++ =3D 0; })) ;		 =0A=
 			((  &input_set )->fds_bits[( mother_desc )/ (sizeof (fd_mask) * 8 ) =
 ] |=3D (1L << (( mother_desc ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
 			=0A=
 			maxdesc =3D IMC::fill_fdsets(mother_desc, &input_set, &output_set, =
 &exc_set);=0A=
 			=0A=
 			if (select(maxdesc + 1, &input_set, &output_set, &exc_set, __null ) =
 < 0) {=0A=
 				if ((*__errno())  =3D=3D 4 )	log("Waking up to process =
 signal.");=0A=
 				else				perror("SYSERR: Select coma");=0A=
 			} =0A=
 			 =0A=
 			gettimeofday(&last_time, (struct timezone *) 0);=0A=
 		}=0A=
 		 =0A=
 		(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
 &input_set ; for (__i =3D 0; __i < sizeof (*( &input_set )); ++__i) =
 *__tmp++ =3D 0; })) ;=0A=
 		(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
 &output_set ; for (__i =3D 0; __i < sizeof (*( &output_set )); ++__i) =
 *__tmp++ =3D 0; })) ;=0A=
 		(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) &exc_set =
 ; for (__i =3D 0; __i < sizeof (*( &exc_set )); ++__i) *__tmp++ =3D 0; =
 })) ;=0A=
 		((  &input_set )->fds_bits[( mother_desc )/ (sizeof (fd_mask) * 8 ) ] =
 |=3D (1L << (( mother_desc ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
 =0A=
 		maxdesc =3D MAX(mother_desc, maxdesc);=0A=
 =0A=
 		iter.Reset();=0A=
 		while ((d =3D iter.Next())) {=0A=
 			if (d->descriptor > maxdesc)=0A=
 				maxdesc =3D d->descriptor;=0A=
 			((  &input_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 =
 ) ] |=3D (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
 			((  &output_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 =
 ) ] |=3D (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
 			((  &exc_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 ) =
 ] |=3D (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
 		}=0A=
 		=0A=
 		maxdesc =3D IMC::fill_fdsets(maxdesc, &input_set, &output_set, =
 &exc_set);=0A=
 		=0A=
 		 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 		gettimeofday(&before_sleep, (struct timezone *) 0);  =0A=
 		process_time =3D before_sleep - last_time;=0A=
 =0A=
 		 =0A=
 =0A=
 =0A=
 =0A=
 		if (process_time.tv_sec =3D=3D 0 && process_time.tv_usec < OPT_USEC) =
 {=0A=
 			missed_pulses =3D 0;=0A=
 		} else {=0A=
 			missed_pulses =3D process_time.tv_sec * PASSES_PER_SEC ;=0A=
 			missed_pulses +=3D process_time.tv_usec / OPT_USEC;=0A=
 			process_time.tv_sec =3D 0;=0A=
 			process_time.tv_usec =3D process_time.tv_usec % OPT_USEC;=0A=
 		}=0A=
 =0A=
 		 =0A=
 		last_time =3D before_sleep + (opt_time - process_time);=0A=
 =0A=
 		 =0A=
 		gettimeofday(&now, (struct timezone *) 0);=0A=
 		timeout =3D last_time - now;=0A=
 =0A=
 		 =0A=
 		do {=0A=
 			if (select(0, (_types_fd_set  *) 0, (_types_fd_set  *) 0, =
 (_types_fd_set  *) 0, &timeout) < 0) {=0A=
 				if ((*__errno())  !=3D 4 ) {=0A=
 					perror("SYSERR: Select sleep");=0A=
 					exit(1);=0A=
 				}=0A=
 			}=0A=
 			gettimeofday(&now, (struct timezone *) 0);=0A=
 			timeout =3D last_time - now;=0A=
 		} while (timeout.tv_usec || timeout.tv_sec);=0A=
 =0A=
 		 =0A=
 		if (select(maxdesc + 1, &input_set, &output_set, &exc_set, =
 &null_time) < 0) {=0A=
 			perror("SYSERR: Select poll");=0A=
 			return;=0A=
 		}=0A=
 		=0A=
 		 =0A=
 		if (((  &input_set )->fds_bits[( mother_desc )/ (sizeof (fd_mask) * 8 =
 ) ] & (1L << (( mother_desc ) % (sizeof (fd_mask) * 8 ) ))) )=0A=
 			new_descriptor(mother_desc);=0A=
 		=0A=
 		 =0A=
 		if (Identd::lookups.Count() > 0)=0A=
 			Identd::Receive();=0A=
 		=0A=
 		 =0A=
 		iter.Reset();=0A=
 		while ((d =3D iter.Next())) {=0A=
 			if (((  &exc_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * =
 8 ) ] & (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ) {=0A=
 				((  &input_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 =
 ) ] &=3D ~(1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
 				((  &output_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * =
 8 ) ] &=3D ~(1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) =
 ;=0A=
 				close_socket(d);=0A=
 			}=0A=
 		}=0A=
 		=0A=
 		 =0A=
 		iter.Reset();=0A=
 		while ((d =3D iter.Next())) {=0A=
 			if (((  &input_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) =
 * 8 ) ] & (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) )=0A=
 				if (process_input(d) < 0)=0A=
 					close_socket(d);=0A=
 		}=0A=
 		=0A=
 		 =0A=
 		comm =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
 __null , __FUNCTION__, 797) ;=0A=
 		iter.Reset();=0A=
 		while ((d =3D iter.Next())) {=0A=
 			if (d->character) {=0A=
 				d->Original()->wait -=3D (d->Original()->wait > 0) ? 1 : 0;=0A=
 				if (d->Original()->wait)	continue;=0A=
 			}=0A=
 			if (!get_from_q(&d->input, comm, &aliased))	continue;=0A=
 			if (d->character) {=0A=
 			 =0A=
 				d->character->player->timer =3D 0;=0A=
 				if (((( d )->connected)  =3D=3D CON_PLAYING) && ((( d->character =
 )->was_in_room)  !=3D NOWHERE)) {=0A=
 					if ((( d->character )->InRoom())  !=3D NOWHERE)=0A=
 						d->character->FromRoom();=0A=
 					d->character->ToRoom((( d->character )->was_in_room) );=0A=
 					(( d->character )->was_in_room)  =3D NOWHERE;=0A=
 					the_act( "$n has returned." ,   (! 0 )  ,   d->character ,   0 ,   =
 0 ,   (1 << 0)  , __FUNCTION__, 813) ;=0A=
 				}=0A=
 				d->Original()->wait =3D 1;=0A=
 			}=0A=
 			d->has_prompt =3D 0;=0A=
 =0A=
 			if (d->showstr_count)				show_string(d, comm);	 =0A=
 			else if (d->str)					string_add(d, comm);	 =0A=
 			else if ((( d )->connected)  !=3D CON_PLAYING)	nanny(d, comm);			 =
 =0A=
 			else {														 =0A=
 				if (aliased)	d->has_prompt =3D 1;			 =0A=
 				else if (perform_alias(d, comm))			 =0A=
 					get_from_q(&d->input, comm, &aliased);=0A=
 				command_interpreter(d->character, comm);	 =0A=
 			}=0A=
 		}=0A=
 		do { Buffer::Detach(( comm ), Buffer::tBuffer, __FUNCTION__, 829); ( =
 comm ) =3D __null ; } while(0) ;=0A=
 		=0A=
 		 =0A=
 		iter.Reset();=0A=
 		while ((d =3D iter.Next())) {=0A=
 			if (*(d->output) && ((  &output_set )->fds_bits[( d->descriptor )/ =
 (sizeof (fd_mask) * 8 ) ] & (1L << (( d->descriptor ) % (sizeof =
 (fd_mask) * 8 ) ))) ) {=0A=
 				 =0A=
 				if (process_output(d) < 0)		close_socket(d);=0A=
 				else							d->has_prompt =3D 1;=0A=
 			}=0A=
 		}=0A=
 		=0A=
 		if (circle_copyover)	break;=0A=
 		=0A=
 		 =0A=
 		 =0A=
 		 =0A=
 		 =0A=
 		 =0A=
 		iter.Reset();=0A=
 		while ((d =3D iter.Next())) {=0A=
 			if (!d->has_prompt && ((( d )->connected)  !=3D CON_DISCONNECT)) =
 {=0A=
 				write_to_descriptor(d->descriptor, make_prompt(d));=0A=
 				d->has_prompt =3D 1;=0A=
 			}=0A=
 		}=0A=
 =0A=
 		 =0A=
 		iter.Reset();=0A=
 		while ((d =3D iter.Next())) {=0A=
 			if (((( d )->connected)  =3D=3D CON_CLOSE) || ((( d )->connected)  =
 =3D=3D CON_DISCONNECT))=0A=
 				close_socket(d);=0A=
 		}=0A=
 =0A=
 		 =0A=
 		 =0A=
 		 =0A=
 		missed_pulses++;=0A=
 =0A=
 		if (missed_pulses <=3D 0) {=0A=
 			log("SYSERR: **BAD** MISSED_PULSES IS NONPOSITIVE (%d), TIME GOING =
 BACKWARDS!!!", missed_pulses / PASSES_PER_SEC);=0A=
 			missed_pulses =3D 1;=0A=
 		}=0A=
 =0A=
 		 =0A=
 		if (missed_pulses > (30 * PASSES_PER_SEC )) {=0A=
 			log("SYSERR: Missed more than 30 seconds worth of pulses");=0A=
 			missed_pulses =3D 30 * PASSES_PER_SEC ;=0A=
 		}=0A=
 =0A=
 		IMC::idle_select(&input_set, &output_set, &exc_set, =
 last_time.tv_sec);=0A=
 =0A=
 		 =0A=
 		while (missed_pulses--)		heartbeat(++pulse);=0A=
 =0A=
 		tics++;		 =0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 void heartbeat(int pulse) {=0A=
 	static UInt32 mins_since_crashsave =3D 0;=0A=
 	=0A=
 	Event::Process();=0A=
 	=0A=
 	if (!(pulse % PULSE_ZONE))					zone_update();=0A=
 	if (!(pulse % (15 * PASSES_PER_SEC )))					check_idle_passwords();		 =
 =0A=
 	if (!(pulse % PULSE_MOBILE))				check_mobile_activity(pulse);=0A=
 	if (!(pulse % PULSE_VIOLENCE))				perform_violence();=0A=
 	if (!(pulse % PULSE_SCRIPT))				script_trigger_check();=0A=
 	=0A=
 	if (!(pulse % (75  * PASSES_PER_SEC))) {=0A=
 		weather_and_time(1);=0A=
 		hour_update();=0A=
 		free_purged_lists();=0A=
 	}=0A=
 	if (!(pulse % PULSE_POINTS))				point_update();=0A=
 	 =0A=
 	if (!(pulse % PULSE_BUFFER))				Buffer::ReleaseAll();=0A=
 	=0A=
 	if (!(pulse % 1))			MoveShips();=0A=
 	if (!(pulse % 10))			UpdateSpace();=0A=
 	=0A=
 	if (auto_save && !(pulse % (60 * PASSES_PER_SEC ))) {	 =0A=
 		if (++mins_since_crashsave >=3D autosave_time) {=0A=
 			mins_since_crashsave =3D 0;=0A=
 			Crash_save_all();=0A=
 			House::SaveAll();=0A=
  =0A=
 		}=0A=
 	}=0A=
 	=0A=
 	if (!(pulse % (5 * 60 * PASSES_PER_SEC )))	record_usage();				 =0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 timeval operator-(timeval a, timeval b) {=0A=
 	timeval rslt;=0A=
 =0A=
 	if (a.tv_sec < b.tv_sec)				return null_time;=0A=
 	else if (a.tv_sec =3D=3D b.tv_sec) {=0A=
 		if (a.tv_usec < b.tv_usec)			return null_time;=0A=
 		else {=0A=
 			rslt.tv_sec =3D 0;=0A=
 			rslt.tv_usec =3D a.tv_usec - b.tv_usec;=0A=
 			return rslt;=0A=
 		}=0A=
 	} else {			 =0A=
 		rslt.tv_sec =3D a.tv_sec - b.tv_sec;=0A=
 		if (a.tv_usec < b.tv_usec) {=0A=
 			rslt.tv_usec =3D a.tv_usec + 1000000 - b.tv_usec;=0A=
 			rslt.tv_sec--;=0A=
 		} else=0A=
 			rslt.tv_usec =3D a.tv_usec - b.tv_usec;=0A=
 		return rslt;=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 timeval operator+(timeval a, timeval b) {=0A=
 	timeval rslt;=0A=
 =0A=
 	rslt.tv_sec =3D a.tv_sec + b.tv_sec;=0A=
 	rslt.tv_usec =3D a.tv_usec + b.tv_usec;=0A=
 =0A=
 	while (rslt.tv_usec >=3D 1000000) {=0A=
 		rslt.tv_usec -=3D 1000000;=0A=
 		rslt.tv_sec++;=0A=
 	}=0A=
 =0A=
 	return rslt;=0A=
 }=0A=
 =0A=
 =0A=
 void record_usage(void) {=0A=
 	int sockets_playing =3D 0;=0A=
 	Descriptor *d;=0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 	=0A=
 	while ((d =3D iter.Next()))=0A=
 		if ((( d )->connected)  =3D=3D CON_PLAYING)=0A=
 			sockets_playing++;=0A=
 =0A=
 	log("nusage: %-3d sockets connected, %-3d sockets playing",=0A=
 			descriptor_list.Count(), sockets_playing);=0A=
 =0A=
 # 999 "comm.cp"=0A=
 =0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 void echo_off(Descriptor *d) {=0A=
 	char off_string[] =3D {=0A=
 		(char) 255 ,=0A=
 		(char) 251 ,=0A=
 		(char) 1 ,=0A=
 		(char) 0,=0A=
 	};=0A=
 =0A=
 	d->Write(off_string);=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 void echo_on(Descriptor *d) {=0A=
 	char on_string[] =3D {=0A=
 		(char) 255 ,=0A=
 		(char) 252 ,=0A=
 		(char) 1 ,=0A=
 		(char) 13 ,=0A=
 		(char) 10 ,=0A=
 		(char) 0,=0A=
 	};=0A=
 =0A=
 	d->Write(on_string);=0A=
 }=0A=
 =0A=
 =0A=
 char *prompt_str(Character *ch) {=0A=
 	Character *vict =3D (( ch )->general.fighting) ;  =0A=
 	static char pbuf[MAX_STRING_LENGTH];  =0A=
 	char *str =3D (( ch )->player->prompt) ;=0A=
 	Character *tank;=0A=
 	int perc;  =0A=
 	char *cp, *tmp;=0A=
 	char *i;=0A=
   =0A=
 	if (!str || !*str)=0A=
 		str =3D "`YAvP`K: `cSet your prompt (see `K'`Chelp prompt`K'`c)`W> =
 `n";=0A=
 =0A=
 	if (!strchr(str, '%'))=0A=
 		return (str);=0A=
   =0A=
 	i =3D Buffer::Acquire(( 256 ), Buffer::tBuffer, __null , __FUNCTION__, =
 1046) ;=0A=
   =0A=
 	cp =3D pbuf;=0A=
   =0A=
 	for (;;) {=0A=
 		if (*str =3D=3D '%') {=0A=
 			switch (*(++str)) {=0A=
 				case 'h':  =0A=
 					sprintf(i, "%d", (( ch )->points.hit) );=0A=
 					tmp =3D i;=0A=
 					break;=0A=
 				case 'H':  =0A=
 					sprintf(i, "%d", (( ch )->points.max_hit) );=0A=
 					tmp =3D i;=0A=
 					break;=0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 				case 'v':  =0A=
 					sprintf(i, "%d", (( ch )->points.move) );=0A=
 					tmp =3D i;=0A=
 					break;=0A=
 				case 'V':  =0A=
 					sprintf(i, "%d", (( ch )->points.max_move) );=0A=
 					tmp =3D i;=0A=
 					break;=0A=
 				case 'P':=0A=
 				case 'p':  =0A=
 					str++;=0A=
 					switch ((((  *str  ) >=3D 'A' && (  *str  ) <=3D 'Z')  ? (( *str =
 )+('a'-'A')) : ( *str )) ) {=0A=
 						case 'h':=0A=
 							perc =3D (100 * (( ch )->points.hit) ) / (( ch =
 )->points.max_hit) ;=0A=
 							break;=0A=
  =0A=
  =0A=
  =0A=
 						case 'v':=0A=
 							perc =3D (100 * (( ch )->points.move) ) / (( ch =
 )->points.max_move) ;=0A=
 							break;=0A=
  =0A=
  =0A=
  =0A=
 						default :=0A=
 							perc =3D 0;=0A=
 							break;=0A=
 					}=0A=
 					sprintf(i, "%d%%", perc);=0A=
 					tmp =3D i;=0A=
 					break;=0A=
 				case 'O':=0A=
 				case 'o':  =0A=
 					if (vict) {=0A=
 						perc =3D (100* (( vict )->points.hit) ) / (( vict =
 )->points.max_hit) ;=0A=
 						sprintf(i, "%s `K(`r%s`K)`n", ((  ch )->CanSee( vict ) ? ( vict =
 )->Name() : "someone") ,=0A=
 								(perc >=3D 95 ?	"unscathed"	:=0A=
 								perc >=3D 75 ?	"scratched"	:=0A=
 								perc >=3D 50 ?	"beaten-up"	:=0A=
 								perc >=3D 25 ?	"bloody"	:=0A=
 												"near death"));=0A=
 						tmp =3D i;=0A=
 					} else {=0A=
 						str++;=0A=
 						continue;=0A=
 					}=0A=
 					break;=0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 				case 'T':=0A=
 				case 't':  =0A=
 					if (vict && (tank =3D (( vict )->general.fighting) ) && tank !=3D =
 ch) {=0A=
 						perc =3D (100* (( tank )->points.hit) ) / (( tank =
 )->points.max_hit) ;=0A=
 						sprintf(i, "%s `K(`r%s`K)`n", ((  ch )->CanSee( tank ) ? ( tank =
 )->Name() : "someone") ,=0A=
 								(perc >=3D 95 ?	"unscathed"	:=0A=
 								perc >=3D 75 ?	"scratched"	:=0A=
 								perc >=3D 50 ?	"beaten-up"	:=0A=
 								perc >=3D 25 ?	"bloody"	:=0A=
 												"near death"));=0A=
 						tmp =3D i;=0A=
 					} else {=0A=
 						str++;=0A=
 						continue;=0A=
 					}=0A=
 					break;=0A=
 				case '_':=0A=
 					tmp =3D "\r\n";=0A=
 					break;=0A=
 				case '%':=0A=
 					*(cp++) =3D '%';=0A=
 					str++;=0A=
 					continue;=0A=
 				default :=0A=
 					str++;=0A=
 					continue;=0A=
 			}=0A=
 =0A=
 			while ((*cp =3D *(tmp++)))=0A=
 				cp++;=0A=
 			str++;=0A=
 		} else if (!(*(cp++) =3D *(str++)))=0A=
 			break;=0A=
 	}=0A=
   =0A=
 	*cp =3D '\0';=0A=
   =0A=
 	strcat(pbuf, " `n");=0A=
 	do { Buffer::Detach(( i ), Buffer::tBuffer, __FUNCTION__, 1170); ( i ) =
 =3D __null ; } while(0) ;=0A=
 	return (pbuf);=0A=
 }=0A=
 =0A=
 =0A=
 char *make_prompt(Descriptor *d) {=0A=
 	static char prompt[MAX_PROMPT_LENGTH + 1];=0A=
 	 =0A=
 	=0A=
 	 =0A=
 	 =0A=
 	if (d->showstr_count) {=0A=
 		sprintf(prompt, "\r[ Return to continue, (q)uit, (r)efresh, (b)ack, =
 or page number (%d/%d) ]",=0A=
 				d->showstr_page, d->showstr_count);=0A=
  =0A=
 	} else if (d->str)=0A=
 		strcpy(prompt, "] ");=0A=
 	else if ((( d )->connected)  =3D=3D CON_PLAYING) {=0A=
 		*prompt =3D '\0';=0A=
 =0A=
  =0A=
  =0A=
 =0A=
 		if (! ((( ((  d->character  )->general.act)  ) & (  MOB_ISNPC )) )  =
 && (( d->character )->player->afk) )=0A=
 			strcat(prompt, "`C[AFK]`n");=0A=
 		strcat(prompt, prompt_str(d->character));=0A=
 		if(d->character)=0A=
 			proc_color(prompt, (! ((( ((   d->character   )->general.act)  ) & ( =
  MOB_ISNPC )) )  && (( ((  d->character  =
 )->player->special.preferences)  ) & (    Preference::Color  )) ) ); =
 =0A=
 	} else=0A=
 		*prompt =3D '\0';=0A=
 	=0A=
 	return prompt;=0A=
 }=0A=
 =0A=
 =0A=
 void write_to_q(const char *txt, struct txt_q *queue, int aliased) {=0A=
 	struct txt_block *new_text;=0A=
 =0A=
 	do {	if ((  1  * sizeof(  struct txt_block )) <=3D 0)	mudlogf(1 , =
 __null , (! 0 ) , "CODEERR: Attempt to alloc 0 at %s:%d", __FUNCTION__, =
 1208);	else if (!(( new_text ) =3D (  struct txt_block  *) calloc( (  1 =
  ?   1  : 1) ,   sizeof(  struct txt_block ) ) ))	{ perror("SYSERR: =
 malloc failure"); abort(); } } while(0) ;=0A=
 	new_text->text =3D str_dup(txt);=0A=
 	new_text->aliased =3D aliased;=0A=
 =0A=
 	 =0A=
 	if (!queue->head) {=0A=
 		new_text->next =3D __null ;=0A=
 		queue->head =3D queue->tail =3D new_text;=0A=
 	} else {=0A=
 		queue->tail->next =3D new_text;=0A=
 		queue->tail =3D new_text;=0A=
 		new_text->next =3D __null ;=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 bool get_from_q(struct txt_q *queue, char *dest, int *aliased) {=0A=
 	struct txt_block *tmp;=0A=
 =0A=
 	 =0A=
 	if (!queue->head)=0A=
 		return false;=0A=
 =0A=
 	tmp =3D queue->head;=0A=
 	strcpy(dest, queue->head->text);=0A=
 	*aliased =3D queue->head->aliased;=0A=
 	queue->head =3D queue->head->next;=0A=
 =0A=
 	if ( tmp->text  =3D=3D __null ) {	Free_Error(__FUNCTION__, 1237);	} =
 else {	free( tmp->text );	 tmp->text  =3D __null ;	} ;=0A=
 	if ( tmp  =3D=3D __null ) {	Free_Error(__FUNCTION__, 1238);	} else {	=
 free( tmp );	 tmp  =3D __null ;	} ;=0A=
 =0A=
 	return true;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 void flush_queues(Descriptor *d) {=0A=
 	int dummy;=0A=
 	char *buf2 =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
 __null , __FUNCTION__, 1248) ;=0A=
  =0A=
 	 =0A=
 	 =0A=
 =0A=
 	if (d->large_outbuf) {=0A=
 =0A=
 		d->large_outbuf->next =3D bufpool;=0A=
 		bufpool =3D d->large_outbuf;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	}=0A=
 	while (get_from_q(&d->input, buf2, &dummy));=0A=
 	do { Buffer::Detach(( buf2 ), Buffer::tBuffer, __FUNCTION__, 1263); ( =
 buf2 ) =3D __null ; } while(0) ;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 int set_sendbuf(int  s) {=0A=
 =0A=
 	int opt =3D MAX_SOCK_BUF;=0A=
 	if (setsockopt(s, 0xffff , 0x1001 , (char *) &opt, sizeof(opt)) < 0) =
 {=0A=
 		perror("SYSERR: setsockopt SNDBUF");=0A=
 		return -1;=0A=
 	}=0A=
 =0A=
 	return 0;=0A=
 }=0A=
 =0A=
 =0A=
 int new_descriptor(int s) {=0A=
 	int  desc;=0A=
 	int  i;=0A=
 	Descriptor *newd;=0A=
 	struct sockaddr_in peer;=0A=
 =0A=
 	 =0A=
 	i =3D sizeof(peer);=0A=
 	if ((desc =3D accept(s, (struct sockaddr *) &peer, &i)) =3D=3D -1 ) =
 {=0A=
 		perror("SYSERR: accept");=0A=
 		return -1;=0A=
 	}=0A=
 	=0A=
 	 =0A=
 	nonblock(desc);=0A=
 =0A=
 	 =0A=
 	if (set_sendbuf(desc) < 0) {=0A=
 		close( desc ) ;=0A=
 		return 0;=0A=
 	}=0A=
 =0A=
 	 =0A=
 	if (descriptor_list.Count() >=3D max_players) {=0A=
 		write_to_descriptor(desc, "Sorry, Aliens vs Predator is full right =
 now... please try again later!\r\n");=0A=
 		close( desc ) ;=0A=
 		return 0;=0A=
 	}=0A=
   =0A=
    =0A=
 =0A=
 	if ((write_to_descriptor(desc, "Validating socket, looking up =
 hostname.")) < 0) {=0A=
 		 =0A=
 		close( desc ) ;=0A=
 		return 0;=0A=
 	}=0A=
 =0A=
 	 =0A=
  =0A=
  =0A=
 	=0A=
 	newd =3D new Descriptor(desc);=0A=
 =0A=
 	 =0A=
 	descriptor_list.Add(newd);=0A=
 =0A=
 	(( newd )->connected)  =3D CON_GET_NAME;=0A=
 	newd->saddr =3D peer;=0A=
 	strcpy(newd->host_ip, inet_ntoa(newd->saddr.sin_addr));=0A=
 	strcpy(newd->host	, newd->host_ip);=0A=
 	Identd::Lookup(newd);=0A=
 	if ((( newd )->connected)  !=3D CON_GET_NAME)=0A=
 		write_to_descriptor(desc, "  This may take a moment.");=0A=
 	write_to_descriptor(desc, "\r\n");=0A=
 =0A=
 	return 0;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int process_output(Descriptor *t) {=0A=
 	char i[MAX_SOCK_BUF];=0A=
 	int written =3D 0, offset, result;=0A=
 =0A=
 	strcpy(i, "\r\n");	 =0A=
 =0A=
 	strcpy(i + 2, t->output);	 =0A=
 =0A=
 	if (t->bufptr < 0)	 =0A=
 		strcat(i, "**OVERFLOW**\r\n");=0A=
 =0A=
 	 =0A=
 	if (((( t )->connected)  =3D=3D CON_PLAYING) && t->character && ! (! =
 ((( ((   t->character   )->general.act)  ) & (  MOB_ISNPC )) )  && (( =
 ((  t->character  )->player->special.preferences)  ) & (    =
 Preference::Compact  )) ) )=0A=
 		strcat(i + 2, "\r\n");=0A=
 =0A=
 	 =0A=
 	strncat(i + 2, make_prompt(t), MAX_PROMPT_LENGTH);=0A=
 =0A=
 	if (t->character)=0A=
 		proc_color(i, (! ((( ((   t->character   )->general.act)  ) & (  =
 MOB_ISNPC )) )  && (( ((  t->character  )->player->special.preferences) =
  ) & (    Preference::Color  )) ) );=0A=
 =0A=
 	 =0A=
 	 =0A=
  =0A=
  =0A=
 	if (t->has_prompt)	offset =3D 0;=0A=
 	else				offset =3D 2;=0A=
 =0A=
 	result =3D write_to_descriptor(t->descriptor, i + offset);=0A=
 	written =3D result >=3D 0 ? result : -result;=0A=
 	=0A=
 	 =0A=
 	if (t->snoop_by)=0A=
 		t->snoop_by->Write("%% %s%%%%", t->output, t->snoop_by);=0A=
 	=0A=
 	 =0A=
 	 =0A=
 	if (t->large_outbuf) {=0A=
 =0A=
 		t->large_outbuf->next =3D bufpool;=0A=
 		bufpool =3D t->large_outbuf;=0A=
 		t->large_outbuf =3D __null ;=0A=
 =0A=
 =0A=
 =0A=
 		t->output =3D t->small_outbuf;=0A=
 	}=0A=
 	 =0A=
 	t->bufspace =3D SMALL_BUFSIZE - 1;=0A=
 	t->bufptr =3D 0;=0A=
 	*(t->output) =3D '\0';=0A=
 	=0A=
  =0A=
 	if (result =3D=3D 0)		return -1;		 =0A=
 	if (result > 0)			return 1;		 =0A=
 	=0A=
 	 =0A=
 	t->Write("%s", i + written + offset);=0A=
 	return 0;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 ssize_t perform_socket_write(int  desc, const char *txt, size_t length) =
 {=0A=
 	ssize_t result;=0A=
 =0A=
 	result =3D write(desc, txt, length);=0A=
 =0A=
 	if (result > 0) {=0A=
 		 =0A=
 		return result;=0A=
 	}=0A=
 =0A=
 	if (result =3D=3D 0) {=0A=
 		 =0A=
 		log("SYSERR: Huh??  write() returned 0???  Please report this!");=0A=
 		return -1;=0A=
 	}=0A=
 =0A=
 	 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	if ((*__errno())  =3D=3D 11 )=0A=
 		return 0;=0A=
 =0A=
 =0A=
 =0A=
 	if ((*__errno())  =3D=3D 11  )=0A=
 		return 0;=0A=
 =0A=
 =0A=
 =0A=
 	if ((*__errno())  =3D=3D 45 )=0A=
 		return 0;=0A=
 =0A=
 =0A=
 	 =0A=
 	return -1;=0A=
 }=0A=
 =0A=
 =0A=
 int write_to_descriptor(int  desc, const char *txt) {=0A=
 	ssize_t bytes_written, total_written =3D 0;=0A=
 	size_t total =3D strlen(txt);=0A=
 =0A=
 	while (total > 0) {=0A=
 		bytes_written =3D perform_socket_write(desc, txt, total);=0A=
 		if (bytes_written < 0) {=0A=
 			perror("SYSERR: write_to_descriptor");=0A=
 			return 0;=0A=
 		} else if (bytes_written =3D=3D 0) {=0A=
 			 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 			log("WARNING: write_to_descriptor: socket write would block");=0A=
 			return -total_written;=0A=
 		} else {=0A=
 			txt +=3D bytes_written;=0A=
 			total -=3D bytes_written;=0A=
 			total_written +=3D bytes_written;=0A=
 		}=0A=
 	}=0A=
 =0A=
 	return total_written;=0A=
 }=0A=
 =0A=
 =0A=
   =0A=
 =0A=
 =0A=
 =0A=
 ssize_t perform_socket_read(int  desc, char *read_point, size_t =
 space_left) {=0A=
 	ssize_t ret;=0A=
 =0A=
 	ret =3D read(desc, read_point, space_left);=0A=
 =0A=
 	 =0A=
 	if (ret > 0)=0A=
 		return ret;=0A=
 =0A=
 	 =0A=
 	if (ret =3D=3D 0) {=0A=
 		log("WARNING: EOF on socket read (connection broken by peer)");=0A=
 		return -1;=0A=
 	}=0A=
 =0A=
 	 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	if ((*__errno())  =3D=3D 4 )=0A=
 		return 0;=0A=
 =0A=
 =0A=
 =0A=
 	if ((*__errno())  =3D=3D 11 )=0A=
 		return 0;=0A=
 =0A=
 =0A=
 =0A=
 	if ((*__errno())  =3D=3D 11  )=0A=
 		return 0;=0A=
 =0A=
 =0A=
 =0A=
 	if ((*__errno())  =3D=3D 45 )=0A=
 		return 0;=0A=
 =0A=
 =0A=
 	 =0A=
 	perror("SYSERR: process_input: about to lose connection");=0A=
 	return -1;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
  =0A=
 int process_input(Descriptor *t) {=0A=
 	int buf_length, failed_subst;=0A=
 	ssize_t bytes_read;=0A=
 	size_t space_left;=0A=
 	char *ptr, *read_point, *write_point, *nl_pos =3D __null ;=0A=
 	char *tmp;=0A=
 =0A=
 	 =0A=
 	buf_length =3D strlen(t->inbuf);=0A=
 	read_point =3D t->inbuf + buf_length;=0A=
 	space_left =3D MAX_RAW_INPUT_LENGTH - buf_length - 1;=0A=
 =0A=
 	do {=0A=
 		if (space_left <=3D 0) {=0A=
 			log("WARNING: process_input: about to close connection: input =
 overflow");=0A=
 			return -1;=0A=
 		}=0A=
 		bytes_read =3D perform_socket_read(t->descriptor, read_point, =
 space_left);=0A=
 		=0A=
 		if (bytes_read < 0)			return -1;=0A=
 		else if (bytes_read =3D=3D 0)	return 0;=0A=
 		 =0A=
 =0A=
 		*(read_point + bytes_read) =3D '\0';	 =0A=
 =0A=
 		 =0A=
 		for (ptr =3D read_point; *ptr && !nl_pos; ptr++)=0A=
 			if ((( *ptr ) =3D=3D '\n' || ( *ptr ) =3D=3D '\r') )=0A=
 				nl_pos =3D ptr;=0A=
 =0A=
 		read_point +=3D bytes_read;=0A=
 		space_left -=3D bytes_read;=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	}=0A=
 =0A=
 	while (!nl_pos);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	read_point =3D t->inbuf;=0A=
 	=0A=
 	tmp =3D Buffer::Acquire(( MAX_INPUT_LENGTH + 8 ), Buffer::tBuffer, =
 __null , __FUNCTION__, 1612) ;=0A=
 	while (nl_pos !=3D __null ) {=0A=
 		write_point =3D tmp;=0A=
 		space_left =3D MAX_INPUT_LENGTH - 1;=0A=
 =0A=
 		for (ptr =3D read_point; (space_left > 0) && (ptr < nl_pos); ptr++) =
 {=0A=
 			if (*ptr =3D=3D '\b' || *ptr =3D=3D 127) {	 =0A=
 				if (write_point > tmp) {=0A=
 					if (*(--write_point) =3D=3D '$') {=0A=
 						write_point--;=0A=
 						space_left +=3D 2;=0A=
 					} else=0A=
 						space_left++;=0A=
 				}=0A=
 			} else if (((unsigned)( *ptr )<=3D0177)  && ((_ctype_+1)[(unsigned)( =
 *ptr )]&(020 | 01 | 02 | 04 | 0200 )) ) {=0A=
 				if ((*(write_point++) =3D *ptr) =3D=3D '$') {		 =0A=
 					*(write_point++) =3D '$';	 =0A=
 					space_left -=3D 2;=0A=
 				} else=0A=
 					space_left--;=0A=
 			}=0A=
 		}=0A=
 =0A=
 		*write_point =3D '\0';=0A=
 =0A=
 		if ((space_left <=3D 0) && (ptr < nl_pos)) {=0A=
 			char *buffer =3D Buffer::Acquire(( MAX_INPUT_LENGTH + 64 ), =
 Buffer::tBuffer, __null , __FUNCTION__, 1638) ;=0A=
 =0A=
 			sprintf(buffer, "Line too long.  Truncated to:\r\n%s\r\n", tmp);=0A=
 			if (write_to_descriptor(t->descriptor, buffer) =3D=3D 0) {	 =0A=
 				do { Buffer::Detach(( tmp ), Buffer::tBuffer, __FUNCTION__, 1642); =
 ( tmp ) =3D __null ; } while(0) ;=0A=
 				do { Buffer::Detach(( buffer ), Buffer::tBuffer, __FUNCTION__, =
 1643); ( buffer ) =3D __null ; } while(0) ;=0A=
 				return -1;=0A=
 			}=0A=
 			do { Buffer::Detach(( buffer ), Buffer::tBuffer, __FUNCTION__, =
 1646); ( buffer ) =3D __null ; } while(0) ;=0A=
 		}=0A=
 		if (t->snoop_by)=0A=
 			t->snoop_by->Write("%% %s\r\n", tmp);=0A=
 		failed_subst =3D 0;=0A=
 =0A=
 		if (*tmp =3D=3D '!' && !(*(tmp + 1)))=0A=
 			strcpy(tmp, t->last_input);=0A=
 		else if (*tmp =3D=3D '!' && *(tmp + 1)) {=0A=
 			char *commandln =3D (tmp + 1);=0A=
 			int starting_pos =3D t->history_pos,=0A=
 			cnt =3D (t->history_pos =3D=3D 0 ? HISTORY_SIZE - 1 : t->history_pos =
 - 1);=0A=
 =0A=
 			skip_spaces(commandln);=0A=
 			for (; cnt !=3D starting_pos; cnt--) {=0A=
 				if (t->history[cnt] && is_abbrev(commandln, t->history[cnt])) {=0A=
 					strcpy(tmp, t->history[cnt]);=0A=
 					strcpy(t->last_input, tmp);=0A=
 					t->Write("%s\r\n", tmp);=0A=
 					break;=0A=
 				}=0A=
 				if (cnt =3D=3D 0)	 =0A=
 					cnt =3D HISTORY_SIZE;=0A=
 			}=0A=
 		} else if (*tmp =3D=3D '^') {=0A=
 			if (!(failed_subst =3D perform_subst(t, t->last_input, tmp)))=0A=
 				strcpy(t->last_input, tmp);=0A=
 		} else {=0A=
 			strcpy(t->last_input, tmp);=0A=
 			if (t->history[t->history_pos])=0A=
 				free(t->history[t->history_pos]);		 =0A=
 			t->history[t->history_pos] =3D str_dup(tmp);	 =0A=
 			if (++t->history_pos >=3D HISTORY_SIZE)		 =0A=
 				t->history_pos =3D 0;=0A=
 		}=0A=
 =0A=
 		if (!failed_subst)=0A=
 			write_to_q(tmp, &t->input, 0);=0A=
 =0A=
 		 =0A=
 		while ((( *nl_pos ) =3D=3D '\n' || ( *nl_pos ) =3D=3D '\r') )=0A=
 			nl_pos++;=0A=
 =0A=
 		 =0A=
 		read_point =3D ptr =3D nl_pos;=0A=
 		for (nl_pos =3D __null ; *ptr && !nl_pos; ptr++)=0A=
 			if ((( *ptr ) =3D=3D '\n' || ( *ptr ) =3D=3D '\r') )=0A=
 				nl_pos =3D ptr;=0A=
 	}=0A=
 =0A=
 	 =0A=
 	write_point =3D t->inbuf;=0A=
 	while (*read_point)=0A=
 		*(write_point++) =3D *(read_point++);=0A=
 	*write_point =3D '\0';=0A=
 =0A=
 	do { Buffer::Detach(( tmp ), Buffer::tBuffer, __FUNCTION__, 1702); ( =
 tmp ) =3D __null ; } while(0) ;=0A=
 	return 1;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 int perform_subst(Descriptor *t, char *orig, char *subst) {=0A=
 	char *new_t =3D Buffer::Acquire(( MAX_INPUT_LENGTH + 5 ), =
 Buffer::tBuffer, __null , __FUNCTION__, 1714) ;=0A=
 	char *first, *second, *strpos;=0A=
 =0A=
 	 =0A=
 	 =0A=
 	first =3D subst + 1;=0A=
 =0A=
 	 =0A=
 	if (!(second =3D strchr(first, '^'))) {=0A=
 		t->Write("Invalid substitution.\r\n");=0A=
 		do { Buffer::Detach(( new_t ), Buffer::tBuffer, __FUNCTION__, 1724); =
 ( new_t ) =3D __null ; } while(0) ;=0A=
 		return 1;=0A=
 	}=0A=
 	 =0A=
 	 =0A=
 	*(second++) =3D '\0';=0A=
 =0A=
 	 =0A=
 	if (!(strpos =3D strstr(orig, first))) {=0A=
 		t->Write("Invalid substitution.\r\n");=0A=
 		do { Buffer::Detach(( new_t ), Buffer::tBuffer, __FUNCTION__, 1734); =
 ( new_t ) =3D __null ; } while(0) ;=0A=
 		return 1;=0A=
 	}=0A=
 	 =0A=
 =0A=
 	 =0A=
 	strncpy(new_t, orig, (strpos - orig));=0A=
 	new_t[(strpos - orig)] =3D '\0';=0A=
 =0A=
 	 =0A=
 	strncat(new_t, second, (MAX_INPUT_LENGTH - strlen(new_t) - 1));=0A=
 =0A=
 	 =0A=
 	 =0A=
 	if (((strpos - orig) + strlen(first)) < strlen(orig))=0A=
 		strncat(new_t, strpos + strlen(first), (MAX_INPUT_LENGTH - =
 strlen(new_t) - 1));=0A=
 =0A=
 	 =0A=
 	new_t[MAX_INPUT_LENGTH - 1] =3D '\0';=0A=
 	strcpy(subst, new_t);=0A=
   =0A=
 	do { Buffer::Detach(( new_t ), Buffer::tBuffer, __FUNCTION__, 1755); ( =
 new_t ) =3D __null ; } while(0) ;=0A=
 	return 0;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 void close_socket(Descriptor *d) {=0A=
 	descriptor_list.Remove(d);=0A=
 	=0A=
 	close( d->descriptor ) ;=0A=
 	flush_queues(d);=0A=
 =0A=
 	 =0A=
 	if (d->snooping)=0A=
 		d->snooping->snoop_by =3D __null ;=0A=
 =0A=
 	if (d->snoop_by) {=0A=
 		d->snoop_by->Write("Your victim is no longer among us.\r\n");=0A=
 		d->snoop_by->snooping =3D __null ;=0A=
 	}=0A=
 =0A=
 	if (d->editor) {=0A=
 		d->editor->Finish(Editor::All);=0A=
 		delete d->editor;=0A=
 	}=0A=
 	=0A=
 	if (d->character) {=0A=
 		if ((! ((( ((   d->character   )->general.act)  ) & (  MOB_ISNPC )) ) =
  && (( ((  d->character  )->general.act)  ) & (  (  PLR_MAILING ) )) )  =
 && d->str) {=0A=
 			if (*d->str)	free(*d->str);=0A=
  =0A=
 			*d->str =3D __null ;=0A=
 			d->str =3D __null ;=0A=
 		}=0A=
 		if (((( d )->connected)  =3D=3D CON_PLAYING) || ((( d )->connected)  =
 =3D=3D CON_DISCONNECT)) {=0A=
 			if ((( d->character )->InRoom())  !=3D NOWHERE)=0A=
 				the_act( "$n has lost $s link." ,   (! 0 )  ,   d->character ,   0 =
 ,   0 ,   (1 << 0)  , __FUNCTION__, 1790) ;=0A=
 			if (! ((( ((  d->character  )->general.act)  ) & (  MOB_ISNPC )) ) ) =
 {=0A=
 				d->character->Save(NOWHERE);=0A=
 				mudlogf( 2 , __null , (! 0 ) ,  "Closing link to: %s.", =
 d->character->RealName() ? d->character->RealName() : "UNDEFINED");=0A=
 				d->character->desc =3D __null ;=0A=
 			}=0A=
 			=0A=
 			if (d->character->player->host)=0A=
 				if ( d->character->player->host  =3D=3D __null ) {	=
 Free_Error(__FUNCTION__, 1798);	} else {	free( =
 d->character->player->host );	 d->character->player->host  =3D __null ;	=
 } ;=0A=
 			d->character->player->host =3D str_dup(d->host);=0A=
 		} else {=0A=
 			mudlogf(3 , __null , (! 0 ) , "Losing player: %s.",=0A=
 					 d->character->general.name ->Data()  ?  =
 d->character->general.name ->Data()  : "<null>");=0A=
 =0A=
 			if (! (( d->character )->Purged()) ) {=0A=
 				if ((( d->character )->InRoom())  !=3D NOWHERE)=0A=
 					d->character->Extract();=0A=
 				else {=0A=
 					d->character->Purged(true);=0A=
 					PurgedChars.Add(d->character);=0A=
 				}=0A=
 			}=0A=
 		}=0A=
 	} else=0A=
 		mudlogf(  3  ,  __null  ,  (! 0 )  , "Losing descriptor without =
 char." ) ;=0A=
 =0A=
 	 =0A=
 	if (d->original && d->original->desc)=0A=
 		d->original->desc =3D __null ;=0A=
 =0A=
 	delete d;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 void check_idle_passwords(void) {=0A=
 	Descriptor *d;=0A=
 =0A=
 	LListIterator<  Descriptor * >  iter (  descriptor_list );	while ((  d =
  =3D  iter .Next()))  {=0A=
 		if (((( d )->connected)  !=3D CON_PASSWORD) && ((( d )->connected)  =
 !=3D CON_GET_NAME))=0A=
 			continue;=0A=
 		if (++d->idle_tics > 2) {=0A=
 			echo_on(d);=0A=
 			d->Write("\r\nTimed out... goodbye.\r\n");=0A=
 			(( d )->connected)  =3D CON_CLOSE;=0A=
 		}=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void nonblock(int  s) {=0A=
 	int flags;=0A=
 =0A=
 	flags =3D fcntl(s, 3 , 0);=0A=
 	flags |=3D 0x4000  ;=0A=
 	if (fcntl(s, 4 , flags) < 0) {=0A=
 		perror("SYSERR: Fatal error executing nonblock (comm.c)");=0A=
 		exit(1);=0A=
 	}=0A=
  =0A=
  =0A=
 }=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 void  checkpointing(int unused) {=0A=
 	if (!tics) {=0A=
 		log("SYSERR: CHECKPOINT shutdown: tics not updated. (Infinite Loop =
 Suspected)");=0A=
  =0A=
 		abort();=0A=
 	} else=0A=
 		tics =3D 0;=0A=
 }=0A=
 =0A=
 =0A=
 void  reread_wizlists(int unused) {=0A=
 	mudlogf(  3  ,  __null  ,  (! 0 )  , "Signal received - rereading =
 wizlists." ) ;=0A=
 	reboot_wizlists();=0A=
 }=0A=
 =0A=
 =0A=
 void  unrestrict_game(int unused) {=0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 =0A=
 void  hupsig(int unused) {=0A=
 	log("SYSERR: Received SIGHUP, SIGINT, or SIGTERM.  Shutting =
 down...");=0A=
 	exit(0);		 =0A=
 }=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 sigfunc *my_signal(int signo, sigfunc * func);=0A=
 =0A=
 sigfunc *my_signal(int signo, sigfunc * func) {=0A=
 	struct sigaction act, oact;=0A=
 =0A=
 	act.sa_handler =3D func;=0A=
 	sigemptyset(&act.sa_mask);=0A=
 	act.sa_flags =3D 0;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 	if (sigaction(signo, &act, &oact) < 0)=0A=
 		return ((void (*)(int))-1) ;=0A=
 =0A=
 	return oact.sa_handler;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
  =0A=
 void  reap(int sig) {=0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 }=0A=
 =0A=
 =0A=
 void signal_setup(void) {=0A=
 =0A=
 	struct itimerval itime;=0A=
 	struct timeval interval;=0A=
 =0A=
 	 =0A=
 	my_signal(31 , unrestrict_game);=0A=
 =0A=
 	 =0A=
 	interval.tv_sec =3D 60;=0A=
 	interval.tv_usec =3D 0;=0A=
 	itime.it_interval =3D interval;=0A=
 	itime.it_value =3D interval;=0A=
 	setitimer(1 , &itime, __null );=0A=
 	my_signal(26 , checkpointing);=0A=
 =0A=
 	 =0A=
 	my_signal(1 , hupsig);=0A=
  =0A=
 =0A=
 	my_signal(20 , reap);=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 	my_signal(2 , hupsig);=0A=
 	my_signal(15 , hupsig);=0A=
 	my_signal(13 , ((void (*)(int))1) );=0A=
 	my_signal(14 , ((void (*)(int))1) );=0A=
 }=0A=
 =0A=
  =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 void send_to_all(const char *messg) {=0A=
 	Descriptor *i;=0A=
 =0A=
 	if (!messg || !*messg)=0A=
 		return;=0A=
 	=0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 	while ((i =3D iter.Next())) {=0A=
 		if ((( i )->connected)  =3D=3D CON_PLAYING)=0A=
 			i->Write("%s", messg);=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 void send_to_zone(char *messg, int zone_rnum) {=0A=
 	Descriptor *i;=0A=
 =0A=
 	if (!messg || !*messg)=0A=
 		return;=0A=
 =0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 	while ((i =3D iter.Next())) {=0A=
 		if (((( i )->connected)  =3D=3D CON_PLAYING) && i->character && (((  =
 i->character  )->general.position)  > POS_SLEEPING)  &&=0A=
 				! (! ((( ((   i->character   )->general.act)  ) & (  MOB_ISNPC )) ) =
  && (( ((  i->character  )->general.act)  ) & (  (  PLR_WRITING ) )) )  =
 &&=0A=
 				((( i->character )->InRoom())  !=3D NOWHERE) &&=0A=
 				(world[(( i->character )->InRoom()) ].zone =3D=3D zone_rnum))=0A=
 			i->Write("%s", messg);=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 void send_to_outdoor(const char *messg) {=0A=
 	Descriptor *i;=0A=
 =0A=
 	if (!messg || !*messg)=0A=
 		return;=0A=
 =0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 	while ((i =3D iter.Next())) {=0A=
 		if ((( i )->connected)  !=3D CON_PLAYING || !i->character)=0A=
 			continue;=0A=
 		if (! (((  i->character  )->general.position)  > POS_SLEEPING)  || ! =
 (! ((( (world[(  ((  i->character  )->InRoom())   )].flags)  ) & (  (  =
 ROOM_INDOORS ) )) ) ) )=0A=
 			continue;=0A=
 		if ((! ((( ((   i->character   )->general.act)  ) & (  MOB_ISNPC )) ) =
  && (( ((  i->character  )->general.act)  ) & (  (  PLR_WRITING ) )) ) =
 )=0A=
 			continue;=0A=
 		i->Write("%s", messg);=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 void send_to_players(Character *ch, const char *messg) {=0A=
 	Descriptor *i;=0A=
 =0A=
 	if (!messg || !*messg)=0A=
 		return;=0A=
 =0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 	while ((i =3D iter.Next())) {=0A=
 		if (((( i )->connected)  =3D=3D CON_PLAYING) && i->character && =
 i->character !=3D ch &&=0A=
 				! (! ((( ((   i->character   )->general.act)  ) & (  MOB_ISNPC )) ) =
  && (( ((  i->character  )->general.act)  ) & (  (  PLR_WRITING ) )) ) =
 )=0A=
 			i->Write("%s", messg);=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
  =0A=
 =0A=
  =0A=
  =0A=
 	=0A=
  =0A=
  =0A=
  =0A=
  =0A=
  =0A=
 =0A=
 =0A=
 void send_to_playersf(Character *ch, const char *messg, ...) {=0A=
 	Descriptor *i;=0A=
 	char *send_buf;=0A=
 	va_list args;=0A=
 =0A=
 	if (!messg || !*messg)=0A=
 		return;=0A=
  =0A=
  	send_buf =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
 __null , __FUNCTION__, 2091) ;=0A=
  	=0A=
 	( args  =3D ((__gnuc_va_list) __builtin_next_arg (  messg ))) ;=0A=
 	vsprintf(send_buf, messg, args);=0A=
 	((void)0) ;=0A=
 =0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 	while ((i =3D iter.Next())) {=0A=
 		if (((( i )->connected)  =3D=3D CON_PLAYING) && i->character && =
 i->character !=3D ch &&=0A=
 				! (! ((( ((   i->character   )->general.act)  ) & (  MOB_ISNPC )) ) =
  && (( ((  i->character  )->general.act)  ) & (  (  PLR_WRITING ) )) ) =
 )=0A=
 			i->Write("%s", send_buf);=0A=
 	}=0A=
 				=0A=
 	do { Buffer::Detach(( send_buf ), Buffer::tBuffer, __FUNCTION__, =
 2104); ( send_buf ) =3D __null ; } while(0) ;=0A=
 }=0A=
 =0A=
 =0A=
 void send_to_outdoorf(const char *messg, ...) {=0A=
 	Descriptor *i;=0A=
 	va_list args;=0A=
 	char *send_buf;=0A=
  =0A=
 	if (!messg || !*messg)=0A=
 		return;=0A=
  	=0A=
  	send_buf =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
 __null , __FUNCTION__, 2116) ;=0A=
  	=0A=
 	( args  =3D ((__gnuc_va_list) __builtin_next_arg (  messg ))) ;=0A=
 	vsprintf(send_buf, messg, args);=0A=
 	((void)0) ;=0A=
 =0A=
 	LListIterator<Descriptor *>	iter(descriptor_list);=0A=
 	while ((i =3D iter.Next())) {=0A=
 		if (((( i )->connected)  =3D=3D CON_PLAYING) && i->character && (((  =
 i->character  )->general.position)  > POS_SLEEPING)  &&=0A=
 				(! ((( (world[(  ((  i->character  )->InRoom())   )].flags)  ) & (  =
 (  ROOM_INDOORS ) )) ) )  && ! (! ((( ((   i->character   =
 )->general.act)  ) & (  MOB_ISNPC )) )  && (( ((  i->character  =
 )->general.act)  ) & (  (  PLR_WRITING ) )) ) )=0A=
 			i->Write("%s", send_buf);=0A=
 	}=0A=
 	=0A=
 	do { Buffer::Detach(( send_buf ), Buffer::tBuffer, __FUNCTION__, =
 2129); ( send_buf ) =3D __null ; } while(0) ;=0A=
 }=0A=
 =0A=
 =0A=
 const char *ACTNULL =3D "<NULL>";=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
  =0A=
 void perform_act(const char *orig, const Character *ch, const Object =
 *obj, CPtr vict_obj,=0A=
 		Character *to) {=0A=
 	const char *i =3D __null ;=0A=
 	=0A=
 	char *	lbuf =3D Buffer::Acquire(( MAX_STRING_LENGTH ), =
 Buffer::tBuffer, __null , __FUNCTION__, 2144) ;=0A=
 	char *	buf =3D lbuf;=0A=
 	=0A=
 	Relation::Relation	relation =3D Relation::None;=0A=
 	const Character *	victim =3D __null ;=0A=
 	const Object *		target =3D __null ;=0A=
 	const char *		arg =3D __null ;=0A=
 =0A=
 	for (;;) {=0A=
 		if (*orig =3D=3D '$') {=0A=
 			switch (*(++orig)) {=0A=
 				case 'n':=0A=
 					i =3D ((  to )->CanSee( ch ) ? ( ch )->Name() : "someone") ;=0A=
 					relation =3D ch->GetRelation(to);=0A=
 					break;=0A=
 				case 'N':=0A=
 					victim =3D static_cast<const Character *>(vict_obj);=0A=
 					if (!( victim )) i =3D ACTNULL; else i =3D (  ((  to )->CanSee( =
 victim ) ? ( victim )->Name() : "someone")  ); ;=0A=
 					if (victim)	relation =3D to->GetRelation(victim);=0A=
 					break;=0A=
 				case 'm':=0A=
 					i =3D (((  ch  )->general.sex)  ? (((  ch  )->general.sex) =
 =3D=3DMale ? "him":"her") : "it") ;=0A=
 					break;=0A=
 				case 'M':=0A=
 					victim =3D static_cast<const Character *>(vict_obj);=0A=
 					if (!( victim )) i =3D ACTNULL; else i =3D (  (((  victim  =
 )->general.sex)  ? (((  victim  )->general.sex) =3D=3DMale ? =
 "him":"her") : "it")  ); ;=0A=
 					break;=0A=
 				case 's':=0A=
 					i =3D (((  ch  )->general.sex)  ? (((  ch  )->general.sex) =
 =3D=3DMale ? "his":"her") :"its") ;=0A=
 					break;=0A=
 				case 'S':=0A=
 					victim =3D static_cast<const Character *>(vict_obj);=0A=
 					if (!( vict_obj )) i =3D ACTNULL; else i =3D (  (((  victim  =
 )->general.sex)  ? (((  victim  )->general.sex) =3D=3DMale ? =
 "his":"her") :"its")  ); ;=0A=
 					break;=0A=
 				case 'e':=0A=
 					i =3D (((  ch  )->general.sex)  ? (((  ch  )->general.sex) =
 =3D=3DMale ? "he" :"she") : "it") ;=0A=
 					break;=0A=
 				case 'E':=0A=
 					victim =3D static_cast<const Character *>(vict_obj);=0A=
 					if (!( victim )) i =3D ACTNULL; else i =3D (  (((  victim  =
 )->general.sex)  ? (((  victim  )->general.sex) =3D=3DMale ? "he" =
 :"she") : "it")  ); ;=0A=
 					break;=0A=
 				case 'o':=0A=
 					if (!( obj )) i =3D ACTNULL; else i =3D (  ((  to )->CanSee( obj ) =
 ? fname( ( obj )->name ->Data() ) : "something")  ); ;=0A=
 					break;=0A=
 				case 'O':=0A=
 					target =3D static_cast<const Object *>(vict_obj);=0A=
 					if (!( target )) i =3D ACTNULL; else i =3D (  ((  to )->CanSee( =
 target ) ? fname( ( target )->name ->Data() ) : "something")  ); ;=0A=
 					break;=0A=
 				case 'p':=0A=
 					if (!( obj )) i =3D ACTNULL; else i =3D (  ((  to )->CanSee( obj ) =
 ?  ( obj )->shortDesc ->Data()   : "something")  ); ;=0A=
 					break;=0A=
 				case 'P':=0A=
 					target =3D static_cast<const Object *>(vict_obj);=0A=
 					if (!( target )) i =3D ACTNULL; else i =3D (  ((  to )->CanSee( =
 target ) ?  ( target )->shortDesc ->Data()   : "something")  ); ;=0A=
 					break;=0A=
 				case 'a':=0A=
 					if (!( obj )) i =3D ACTNULL; else i =3D (  (strchr("aeiouyAEIOUY", =
 *  ( obj )->name ->Data() ) ? "an" : "a")  ); ;=0A=
 					break;=0A=
 				case 'A':=0A=
 					target =3D static_cast<const Object *>(vict_obj);=0A=
 					if (!( target )) i =3D ACTNULL; else i =3D (  =
 (strchr("aeiouyAEIOUY", *  ( target )->name ->Data() ) ? "an" : "a")  =
 ); ;=0A=
 					break;=0A=
 				case 'T':=0A=
 					arg =3D static_cast<const char *>(vict_obj);=0A=
 					if (!( arg )) i =3D ACTNULL; else i =3D (  arg ); ;=0A=
 					break;=0A=
 				case 't':=0A=
 					if (!( obj )) i =3D ACTNULL; else i =3D (  reinterpret_cast<const =
 char *>(obj) ); ;=0A=
 					break;=0A=
 				case 'F':=0A=
 					if (!( vict_obj )) i =3D ACTNULL; else i =3D (  =
 fname(static_cast<const char *>(vict_obj)) ); ;=0A=
 					break;=0A=
 				case '%':=0A=
 					if (to !=3D ch)	i =3D "s";=0A=
 					break;=0A=
 				case '$':=0A=
 					i =3D "$";=0A=
 					break;=0A=
 				default:=0A=
 					log("SYSERR: Illegal $-code to act(): %c", *orig);=0A=
 					log("SYSERR: %s", orig);=0A=
 					break;=0A=
 			}=0A=
 			if (i) {=0A=
 				if (relation !=3D Relation::None) {=0A=
 					*buf++ =3D '`';=0A=
 					*buf++ =3D relation_colors[relation];=0A=
 				}=0A=
 				=0A=
 				while ((*buf =3D *(i++)))=0A=
 					buf++;=0A=
 				=0A=
 				if (relation !=3D Relation::None) {=0A=
 					*buf++ =3D '`';=0A=
 					*buf++ =3D 'n';=0A=
 				}=0A=
 				relation =3D Relation::None;=0A=
 			}=0A=
 			orig++;=0A=
 		} else if (!(*(buf++) =3D *(orig++)))=0A=
 			break;=0A=
 	}=0A=
 	=0A=
 	*(--buf) =3D '\r';=0A=
 	*(++buf) =3D '\n';=0A=
 	*(++buf) =3D '\0';=0A=
 =0A=
 	if (to->desc)=0A=
 		to->desc->Write("%s", (*( lbuf ) =3D (((  *( lbuf )  ) >=3D 'a' && (  =
 *( lbuf )  ) <=3D 'z')  ? (( *( lbuf ) )+('A'-'a')) : ( *( lbuf ) )) ,  =
 lbuf ) );=0A=
 	if (((( ((  to  )->general.act)  ) & (  MOB_ISNPC )) )  && act_check =
 && (to !=3D ch))=0A=
 		act_mtrigger(to, lbuf, ch, victim, obj, target, arg);=0A=
 	do { Buffer::Detach(( lbuf ), Buffer::tBuffer, __FUNCTION__, 2255); ( =
 lbuf ) =3D __null ; } while(0) ;=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 void the_act(const char *str, bool hide_invisible, const Character *ch, =
 const Object *obj,=0A=
 		CPtr vict_obj, int type, const char *who, UInt16 line)=0A=
 =0A=
 =0A=
 =0A=
 {=0A=
 	Character *		to;=0A=
 	Descriptor *	i;=0A=
 	VNum			room;=0A=
 	bool 			sleep =3D false;=0A=
 	=0A=
 	if (!str || !*str) {=0A=
 		return;=0A=
 	}=0A=
 	=0A=
 	if ((( type ) & (  (1 << 8)  )) )=0A=
 		sleep =3D true;=0A=
 	=0A=
 	 =0A=
 	act_check =3D ! (( type ) & (  (1 << 7)  )) ;=0A=
 	=0A=
 	if ((( type ) & (  (1 << 3)  ))  && ch && ((((( ((   ch   =
 )->general.act)  ) & (  MOB_ISNPC )) )  || (( ch )->desc && (((  ch =
 ->desc )->connected)  =3D=3D CON_PLAYING))) && ((((   ch   =
 )->general.position)  > POS_SLEEPING)  || sleep) && ! (! ((( ((   ( ch =
 )   )->general.act)  ) & (  MOB_ISNPC )) )  && (( ((  ( ch )  =
 )->general.act)  ) & (  (  PLR_WRITING ) )) ) ) )=0A=
 		perform_act(str, ch, obj, vict_obj, const_cast<Character *>(ch));=0A=
 	=0A=
 	if ((( type ) & (  (1 << 1)  ))  && (to =3D static_cast<Character =
 *>(const_cast<Ptr>(vict_obj))) && ((((( ((   to   )->general.act)  ) & =
 (  MOB_ISNPC )) )  || (( to )->desc && (((  to ->desc )->connected)  =
 =3D=3D CON_PLAYING))) && ((((   to   )->general.position)  > =
 POS_SLEEPING)  || sleep) && ! (! ((( ((   ( to )   )->general.act)  ) & =
 (  MOB_ISNPC )) )  && (( ((  ( to )  )->general.act)  ) & (  (  =
 PLR_WRITING ) )) ) ) )=0A=
 		perform_act(str, ch, obj, vict_obj, to);=0A=
 	=0A=
 	if ((( type ) & (  (1 << 4)  | (1 << 5)  )) ) {=0A=
 		LListIterator<  Descriptor * >  iter (  descriptor_list );	while ((  =
 i  =3D  iter .Next()))  {=0A=
 			if (i->character && ((((( ((   i->character   )->general.act)  ) & ( =
  MOB_ISNPC )) )  || (( i->character )->desc && (((  i->character ->desc =
 )->connected)  =3D=3D CON_PLAYING))) && ((((   i->character   =
 )->general.position)  > POS_SLEEPING)  || sleep) && ! (! ((( ((   ( =
 i->character )   )->general.act)  ) & (  MOB_ISNPC )) )  && (( ((  ( =
 i->character )  )->general.act)  ) & (  (  PLR_WRITING ) )) ) )  && =
 (i->character !=3D ch) &&=0A=
 					!(hide_invisible && ch && !i->character->CanSee(ch)) &&=0A=
 					(((( type ) & (  (1 << 5)  )) ) || (world[(( ch )->InRoom()) =
 ].zone =3D=3D world[(( i->character )->InRoom()) ].zone)))=0A=
 				perform_act(str, ch, obj, vict_obj, i->character);=0A=
 		}=0A=
 	}=0A=
 	=0A=
 	=0A=
 	if ((( type ) & (  (1 << 0)  | (1 << 2)  )) ) {=0A=
 		if (ch && ((( ch )->InRoom())  !=3D NOWHERE)) {=0A=
 			room =3D (( ch )->InRoom()) ;=0A=
 		} else if (obj && ((( obj )->InRoom())  !=3D NOWHERE)) {=0A=
 			room =3D (( obj )->InRoom()) ;=0A=
 		} else {=0A=
 =0A=
 			log("SYSERR: no valid target to act() called by %s:%d", who, =
 line);=0A=
 =0A=
 =0A=
 =0A=
 			log("SYSERR: \"%s\"", str);=0A=
 			return;=0A=
 		}=0A=
 		=0A=
 		LListIterator<  Character * >  iter (  world[room].people );	while (( =
  to  =3D  iter .Next()))  {=0A=
 			if (((((( ((   to   )->general.act)  ) & (  MOB_ISNPC )) )  || (( to =
 )->desc && (((  to ->desc )->connected)  =3D=3D CON_PLAYING))) && ((((  =
  to   )->general.position)  > POS_SLEEPING)  || sleep) && ! (! ((( ((   =
 ( to )   )->general.act)  ) & (  MOB_ISNPC )) )  && (( ((  ( to )  =
 )->general.act)  ) & (  (  PLR_WRITING ) )) ) )  && !(hide_invisible && =
 ch && !to->CanSee(ch)) &&=0A=
 					(to !=3D ch) && ((( type ) & (  (1 << 0)  ))  || (to !=3D =
 vict_obj)))=0A=
 				perform_act(str, ch, obj, vict_obj, to);=0A=
 		}=0A=
 	}=0A=
 }=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 const char *COLORLIST[] =3D {"\x1B[0;0m" , "\x1B[0;30m" , "\x1B[0;31m" =
 ,"\x1B[0;32m" ,"\x1B[0;33m" ,"\x1B[0;34m" ,"\x1B[0;35m" ,"\x1B[0;36m" =
 ,"\x1B[0;37m" ,=0A=
 			   "\x1B[1;30m" , "\x1B[1;31m" ,"\x1B[1;32m" ,"\x1B[1;33m" =
 ,"\x1B[1;34m" ,"\x1B[1;35m" ,"\x1B[1;36m" ,"\x1B[1;37m" ,=0A=
 			   "\x1B[7m" , "\x1B[7m" , "\x1B[5m" , "\x1B[5m" , "\007" , "`",=0A=
 			   "\x1B[40m" ,"\x1B[41m" ,"\x1B[42m" ,"\x1B[43m" ,"\x1B[44m" =
 ,"\x1B[45m" ,"\x1B[46m" ,"\x1B[47m" , "^"};=0A=
 =0A=
 void proc_color(char *inbuf, int color) {=0A=
 	int j=3D0,p=3D0;=0A=
 	int c =3D 0,=0A=
 		k,max;=0A=
 	static char out_buf[32 * 1024];=0A=
 =0A=
 	if(!*inbuf)=0A=
 		return;=0A=
 =0A=
 	while(inbuf[j]) {=0A=
 		if(((inbuf[j]=3D=3D'`') && (c =3D search_chars(inbuf[j+1], =
 "nkrgybmcwKRGYBMCWiIfF*`\n")) >=3D 0) ||=0A=
 				((inbuf[j]=3D=3D'^') && (c =3D search_chars(inbuf[j+1], =
 "krgybmcw^\n")) >=3D 0)) {=0A=
 			if (inbuf[j] =3D=3D '^')=0A=
 				c +=3D 23;=0A=
 			max=3Dstrlen(COLORLIST[c]);=0A=
 			j+=3D2;=0A=
 			if(color || (inbuf[j-1] =3D=3D '`') || (inbuf[j-1] =3D=3D '^'))=0A=
 				for(k=3D0;k<max;k++)=0A=
 					out_buf[p++] =3D COLORLIST[c][k];=0A=
 		} else=0A=
 			out_buf[p++] =3D inbuf[j++];=0A=
 	}=0A=
 	max=3Dstrlen(COLORLIST[0]);=0A=
 	if (color)=0A=
 		for(k=3D0; k < max; k++)=0A=
 			out_buf[p++] =3D COLORLIST[0][k];=0A=
 =0A=
 	out_buf[p] =3D '\0';=0A=
 =0A=
 	strcpy(inbuf, out_buf);=0A=
 }=0A=
 =0A=
 =0A=
 void sub_write_to_char(Character *ch, char *tokens[], Ptr otokens[], =
 SInt8 type[]) {=0A=
 	char *	string =3D Buffer::Acquire(( MAX_STRING_LENGTH ), =
 Buffer::tBuffer, __null , __FUNCTION__, 2394) ;=0A=
 	int		i;=0A=
 	=0A=
 	for (i =3D 0; tokens[i + 1]; i++) {=0A=
 		strcat(string, tokens[i]);=0A=
 =0A=
 		switch (type[i]) {=0A=
 			case '~':=0A=
 				if (!otokens[i])			strcat(string, "someone");=0A=
 				else if (otokens[i] =3D=3D ch)	strcat(string, "you");=0A=
 				else						strcat(string, ((  ch )->CanSee( static_cast<Character =
 *>(otokens[i]) ) ? ( static_cast<Character *>(otokens[i]) )->Name() : =
 "someone") );=0A=
 				break;=0A=
 =0A=
 			case '@':=0A=
 				if (!otokens[i])			strcat(string, "someone's");=0A=
 				else if (otokens[i] =3D=3D ch)	strcat(string, "your");=0A=
 				else						sprintf(string + strlen(string), "%s's",=0A=
 													((  ch )->CanSee( static_cast<Character *>(otokens[i]) ) ? =
 ( static_cast<Character *>(otokens[i]) )->Name() : "someone") );=0A=
 				break;=0A=
 =0A=
 			case '^':=0A=
 				if (!otokens[i] || !ch->CanSee(static_cast<Character =
 *>(otokens[i])))=0A=
 											strcat(string, "its");=0A=
 				else if (otokens[i] =3D=3D ch)	strcat(string, "your");=0A=
 				else						strcat(string, (((  static_cast<Character *>(otokens[i])  =
 )->general.sex)  ? (((  static_cast<Character *>(otokens[i])  =
 )->general.sex) =3D=3DMale ? "his":"her") :"its") );=0A=
 				break;=0A=
 =0A=
 			case '&':=0A=
 				if (!otokens[i] || !ch->CanSee(static_cast<Character =
 *>(otokens[i])))=0A=
 											strcat(string, "it");=0A=
 				else if (otokens[i] =3D=3D ch)	strcat(string, "you");=0A=
 				else						strcat(string, (((  static_cast<Character *>(otokens[i])  =
 )->general.sex)  ? (((  static_cast<Character *>(otokens[i])  =
 )->general.sex) =3D=3DMale ? "he" :"she") : "it") );=0A=
 				break;=0A=
 =0A=
 			case '*':=0A=
 				if (!otokens[i] || !ch->CanSee(static_cast<Character =
 *>(otokens[i])))=0A=
 											strcat(string, "it");=0A=
 				else if (otokens[i] =3D=3D ch)	strcat(string, "you");=0A=
 				else						strcat(string, (((  static_cast<Character *>(otokens[i])  =
 )->general.sex)  ? (((  static_cast<Character *>(otokens[i])  =
 )->general.sex) =3D=3DMale ? "him":"her") : "it") );=0A=
 				break;=0A=
 =0A=
 			case '`':=0A=
 				if (!otokens[i])			strcat(string, "something");=0A=
 				else						strcat(string, ((  ch )->CanSee( static_cast<Object =
 *>(otokens[i]) ) ?  ( static_cast<Object *>(otokens[i]) )->shortDesc =
 ->Data()   : "something") );=0A=
 				break;=0A=
 		}=0A=
 	}=0A=
 =0A=
 	ch->Send("%s%s\r\n", (*( string ) =3D (((  *( string )  ) >=3D 'a' && =
 (  *( string )  ) <=3D 'z')  ? (( *( string ) )+('A'-'a')) : ( *( =
 string ) )) ,  string ) , tokens[i]);=0A=
 	do { Buffer::Detach(( string ), Buffer::tBuffer, __FUNCTION__, 2443); =
 ( string ) =3D __null ; } while(0) ;=0A=
 }=0A=
 =0A=
 =0A=
 void sub_write(char *arg, Character *ch, bool find_invis, int targets) =
 {=0A=
 	char	*str =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
 __null , __FUNCTION__, 2448) ;=0A=
 	char	*name =3D Buffer::Acquire(( MAX_INPUT_LENGTH ), Buffer::tBuffer, =
 __null , __FUNCTION__, 2449) ;=0A=
 	SInt8	type[256];=0A=
 	char *	tokens[256], *s, *p;=0A=
 	Ptr		otokens[256];=0A=
 	Object *obj;=0A=
 	Character *to;=0A=
 	int i, tmp;=0A=
 =0A=
 	if (arg) {=0A=
 		tokens[0] =3D str;=0A=
 =0A=
 		for (i =3D 0, p =3D arg, s =3D str; *p;) {=0A=
 			switch (*p) {=0A=
 				case '~':	 =0A=
 				case '@':=0A=
 				case '^':=0A=
 				case '&':=0A=
 				case '*':=0A=
 					type[i] =3D *p;=0A=
 					*s =3D '\0';=0A=
 					p =3D any_one_name(++p, name);=0A=
 					otokens[i] =3D find_invis ? get_char(name) : get_char_vis(ch, =
 name, FIND_CHAR_ROOM);=0A=
 					tokens[++i] =3D ++s;=0A=
 					break;=0A=
 =0A=
 				case '`':	 =0A=
 					type[i] =3D *p;=0A=
 					*s =3D '\0';=0A=
 					p =3D any_one_name(++p, name);=0A=
 					otokens[i] =3D=0A=
 							find_invis ? (obj =3D get_obj(name)) :=0A=
 							((obj =3D get_obj_in_list_vis(ch, name, world[(( ch )->InRoom()) =
 ].contents)) ?=0A=
 								obj : (obj =3D get_object_in_equip_vis(ch, name, ch->equipment, =
 &tmp)) ?=0A=
 								obj : (obj =3D get_obj_in_list_vis(ch, name, =
 ch->carrying)));=0A=
 					otokens[i] =3D obj;=0A=
 					tokens[++i] =3D ++s;=0A=
 					break;=0A=
 =0A=
 				case '\\':=0A=
 					p++;=0A=
 					*s++ =3D *p++;=0A=
 					break;=0A=
 =0A=
 				default:=0A=
 					*s++ =3D *p++;=0A=
 			}=0A=
 		}=0A=
 =0A=
 		*s =3D '\0';=0A=
 		tokens[++i] =3D __null ;=0A=
 =0A=
 		if ((( targets ) & (  (1 << 3)  ))  && ((((( ((   ch   )->general.act)=
   ) & (  MOB_ISNPC )) )  || (( ch )->desc && (((  ch ->desc =
 )->connected)  =3D=3D CON_PLAYING))) && ((((   ch   =
 )->general.position)  > POS_SLEEPING)  || sleep) && ! (! ((( ((   ( ch =
 )   )->general.act)  ) & (  MOB_ISNPC )) )  && (( ((  ( ch )  =
 )->general.act)  ) & (  (  PLR_WRITING ) )) ) ) )=0A=
 			sub_write_to_char(ch, tokens, otokens, type);=0A=
 =0A=
 		if ((( targets ) & (  (1 << 0)  )) ) {=0A=
 			LListIterator<Character *>	iter(world[(( ch )->InRoom()) =
 ].people);=0A=
 			while ((to =3D iter.Next())) {=0A=
 				if (to !=3D ch && ((((( ((   to   )->general.act)  ) & (  MOB_ISNPC =
 )) )  || (( to )->desc && (((  to ->desc )->connected)  =3D=3D =
 CON_PLAYING))) && ((((   to   )->general.position)  > POS_SLEEPING)  || =
 sleep) && ! (! ((( ((   ( to )   )->general.act)  ) & (  MOB_ISNPC )) ) =
  && (( ((  ( to )  )->general.act)  ) & (  (  PLR_WRITING ) )) ) ) )=0A=
 					sub_write_to_char(to, tokens, otokens, type);=0A=
 			}=0A=
 		}=0A=
 	}=0A=
 	do { Buffer::Detach(( str ), Buffer::tBuffer, __FUNCTION__, 2511); ( =
 str ) =3D __null ; } while(0) ;=0A=
 	do { Buffer::Detach(( name ), Buffer::tBuffer, __FUNCTION__, 2512); ( =
 name ) =3D __null ; } while(0) ;=0A=
 }=0A=
 =0A=
 =0A=
  =0A=
 void setup_log(const char *filename, int fd) {=0A=
 	FILE *s_fp;=0A=
 	=0A=
 =0A=
 	s_fp =3D (_impure_ptr->_stderr) ;=0A=
 # 2533 "comm.cp"=0A=
 =0A=
 =0A=
 	if (filename =3D=3D __null  || *filename =3D=3D '\0') {=0A=
 		 =0A=
 		logfile =3D s_fp;=0A=
 		puts("Using file descriptor for logging.");=0A=
 		return;=0A=
 	}=0A=
 =0A=
 	 =0A=
 	if (open_logfile(filename, s_fp))		return;=0A=
 =0A=
 	 =0A=
  =0A=
 	=0A=
 	 =0A=
 	if (open_logfile("syslog", s_fp))		return;=0A=
 =0A=
 	 =0A=
 	puts("SYSERR: Couldn't open anything to log to, giving up.");=0A=
 	exit(1);=0A=
 }=0A=
 =0A=
 =0A=
 int open_logfile(const char *filename, FILE *stderr_fp) {=0A=
 	if (stderr_fp)	 =0A=
 	logfile =3D freopen(filename, "w", stderr_fp);=0A=
 	else=0A=
 		logfile =3D fopen(filename, "w");=0A=
 =0A=
 	if (logfile) {=0A=
 		printf("Using log file '%s'%s.\n", filename, stderr_fp ? " with =
 redirection" : "");=0A=
 		return (! 0 ) ;=0A=
 	}=0A=
 =0A=
 	printf("SYSERR: Error opening file '%s': %s\n", filename, =
 strerror((*__errno()) ));=0A=
 	return 0 ;=0A=
 }=0A=
 
 ------_=_NextPart_000_01C10883.5BD4DF60--


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-07-09 14:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-09 14:16 c++/3336 Nathan Sidwell
  -- strict thread matches above, loose matches on Subject: below --
2001-07-09 14:46 c++/3336 Travis Smith
2001-07-09 14:36 c++/3336 Phil Edwards
2001-07-09 14:26 c++/3336 Travis Smith
2001-07-09  7:36 c++/3336 Travis Smith

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).