home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume16 / nethack31 / patch2cc < prev    next >
Internet Message Format  |  1993-06-16  |  62KB

  1. Path: uunet!news.tek.com!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v17i104:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch2cc/33
  5. Date: 11 Jun 1993 00:18:53 GMT
  6. Organization: Tektronix, Inc, Redmond, OR, USA
  7. Lines: 1740
  8. Approved: billr@saab.CNA.TEK.COM
  9. Message-ID: <1v8j1d$j9o@ying.cna.tek.com>
  10. NNTP-Posting-Host: saab.cna.tek.com
  11. Xref: uunet comp.sources.games:1786
  12.  
  13. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  14. Posting-number: Volume 17, Issue 104
  15. Archive-name: nethack31/Patch2cc
  16. Patch-To: nethack31: Volume 16, Issue 1-116
  17. Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
  18.  
  19.  
  20.  
  21. #! /bin/sh
  22. # This is a shell archive.  Remove anything before this line, then unpack
  23. # it by saving it into a file and typing "sh file".  To overwrite existing
  24. # files, type "sh file -c".  You can also feed this as standard input via
  25. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  26. # will see the following message at the end:
  27. #        "End of archive 29 (of 33)."
  28. # Contents:  sys/msdos/trampoli.c sys/share/termcap.uu
  29. #   sys/winnt/nttty.c
  30. # Wrapped by billr@saab on Thu Jun 10 16:55:08 1993
  31. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  32. if test -f 'sys/msdos/trampoli.c' -a "${1}" != "-c" ; then 
  33.   echo shar: Renaming existing file \"'sys/msdos/trampoli.c'\" to \"'sys/msdos/trampoli.c.orig'\"
  34.   mv -f 'sys/msdos/trampoli.c' 'sys/msdos/trampoli.c.orig'
  35. fi
  36. echo shar: Extracting \"'sys/msdos/trampoli.c'\" \(14865 characters\)
  37. sed "s/^X//" >'sys/msdos/trampoli.c' <<'END_OF_FILE'
  38. X/*    SCCS Id: @(#)trampoli.c     3.1    93/01/18      */
  39. X/* Copyright (c) 1989 - 1993 by Norm Meluch and Stephen Spackman  */
  40. X/* NetHack may be freely redistributed.  See license for details. */
  41. X
  42. X#include "hack.h"
  43. X
  44. X/****************************************************************************/
  45. X/*                                        */
  46. X/*    This file contains a series of definitions of "one liner"        */
  47. X/*    functions corresponding to *all* functions that NetHack calls        */
  48. X/*    via pointers.                                */
  49. X/*         IF ANY CALLS TO FUNCTIONS VIA POINTERS ARE ADDED            */
  50. X/*         TO THE CODE, AN ENTRY FOR THE FUNCTION CALLED MUST            */
  51. X/*         BE ADDED TO THIS FILE AND TO TRAMPOLI.H.                */
  52. X/*    This mess is necessary for the Microsoft Compiler implementation    */
  53. X/*    of overlaid code (v5.1 - 6.0ax).                    */
  54. X/*                                        */
  55. X/*    The original function (eg foo) has been #defined to be foo_        */
  56. X/*    via double inclusion of trampoli.h in hack.h, and            */
  57. X/*    now the definition of foo is placed in this file calling foo        */
  58. X/*    directly.  This module is _never_ placed in an overlay so        */
  59. X/*    calls via pointers to these functions will not cause difficulties.  */
  60. X/*                                        */
  61. X/*    This leads to what could be called a "trampoline" effect, and        */
  62. X/*    hence the silly name for these files. :-)                */
  63. X/*                                        */
  64. X/****************************************************************************/
  65. X
  66. X#ifdef OVERLAY
  67. X
  68. X/* ### apply.c ### */
  69. X#undef dig
  70. X#undef doapply
  71. X#undef dojump
  72. X#undef dorub
  73. X
  74. Xint dig()        { return dig_(); }
  75. Xint doapply()        { return doapply_(); }
  76. Xint dojump()        { return dojump_(); }
  77. Xint dorub()        { return dorub_(); }
  78. X
  79. X
  80. X/* ### artifact.c ### */
  81. X#undef doinvoke
  82. X
  83. Xint doinvoke()        { return doinvoke_(); }
  84. X
  85. X
  86. X/* ### cmd.c ### */
  87. X#undef doextcmd
  88. X#undef doextlist
  89. X#undef doprev_message
  90. X
  91. X#ifdef POLYSELF
  92. X#undef domonability
  93. X#endif /* POLYSELF */
  94. X
  95. X#ifdef EXPLORE_MODE
  96. X#undef enter_explore_mode
  97. X
  98. Xint enter_explore_mode()    { return enter_explore_mode_(); }
  99. X#endif
  100. X
  101. X#undef timed_occupation
  102. X
  103. X#if defined(WIZARD) || defined(EXPLORE_MODE)
  104. X#undef wiz_attributes
  105. X#endif
  106. X
  107. X#ifdef WIZARD
  108. X#undef wiz_detect
  109. X#undef wiz_genesis
  110. X#undef wiz_identify
  111. X#undef wiz_level_tele
  112. X#undef wiz_map
  113. X#undef wiz_where
  114. X#undef wiz_wish
  115. X#endif
  116. X
  117. Xint doextcmd()        { return doextcmd_(); }
  118. Xint doextlist()        { return doextlist_(); }
  119. Xint doprev_message()    { return doprev_message_(); }
  120. X
  121. X#ifdef POLYSELF
  122. Xint domonability()    { return domonability_(); }
  123. X#endif /* POLYSELF */
  124. X
  125. Xint timed_occupation()    { return timed_occupation_(); }
  126. X
  127. X#if defined(WIZARD) || defined(EXPLORE_MODE)
  128. Xint wiz_attributes()    { return wiz_attributes_(); }
  129. X#endif
  130. X
  131. X#ifdef WIZARD
  132. Xint wiz_detect()    { return wiz_detect_(); }
  133. Xint wiz_genesis()    { return wiz_genesis_(); }
  134. Xint wiz_identify()    { return wiz_identify_(); }
  135. Xint wiz_level_tele()    { return wiz_level_tele_(); }
  136. Xint wiz_map()        { return wiz_map_(); }
  137. Xint wiz_where()        { return wiz_where_(); }
  138. Xint wiz_wish()        { return wiz_wish_(); }
  139. X#endif
  140. X
  141. X
  142. X/* ### do.c ### */
  143. X#undef doddrop
  144. X#undef dodown
  145. X#undef dodrop
  146. X#undef donull
  147. X#undef doup
  148. X#undef dowipe
  149. X#undef drop
  150. X#undef wipeoff
  151. X
  152. Xint doddrop()            { return doddrop_(); }
  153. Xint dodown()            { return dodown_(); }
  154. Xint dodrop()            { return dodrop_(); }
  155. Xint donull()            { return donull_(); }
  156. Xint doup()            { return doup_(); }
  157. Xint dowipe()            { return dowipe_(); }
  158. Xint drop(obj)
  159. X  register struct obj *obj;    { return drop_(obj); }
  160. Xint wipeoff()            { return wipeoff_(); }
  161. X
  162. X
  163. X/* ### do_name.c ### */
  164. X#undef ddocall
  165. X#undef do_mname
  166. X
  167. Xint ddocall()        { return ddocall_(); }
  168. Xint do_mname()        { return do_mname_(); }
  169. X
  170. X
  171. X/* ### do_wear.c ### */
  172. X#undef Armor_off
  173. X#undef Boots_off
  174. X#undef Gloves_off
  175. X#undef Helmet_off
  176. X#undef Armor_on
  177. X#undef Boots_on
  178. X#undef Gloves_on
  179. X#undef Helmet_on
  180. X#undef doddoremarm
  181. X#undef doputon
  182. X#undef doremring
  183. X#undef dotakeoff
  184. X#undef dowear
  185. X#undef select_off
  186. X#undef take_off
  187. X
  188. Xint Armor_off()        { return Armor_off_(); }
  189. Xint Boots_off()        { return Boots_off_(); }
  190. Xint Gloves_off()    { return Gloves_off_(); }
  191. Xint Helmet_off()    { return Helmet_off_(); }
  192. Xint Armor_on()        { return Armor_on_(); }
  193. Xint Boots_on()        { return Boots_on_(); }
  194. Xint Gloves_on()        { return Gloves_on_(); }
  195. Xint Helmet_on()        { return Helmet_on_(); }
  196. Xint doddoremarm()    { return doddoremarm_(); }
  197. Xint doputon()        { return doputon_(); }
  198. Xint doremring()        { return doremring_(); }
  199. Xint dotakeoff()        { return dotakeoff_(); }
  200. Xint dowear()        { return dowear_(); }
  201. Xint select_off(otmp)
  202. X  struct obj *otmp;    { return select_off_(otmp); }
  203. Xint take_off()        { return take_off_(); }
  204. X
  205. X
  206. X/* ### dogmove.c ### */
  207. X#undef wantdoor
  208. X
  209. Xvoid wantdoor(x, y, dummy)
  210. X  int x, y; genericptr_t dummy; { wantdoor_(x, y, dummy); }
  211. X
  212. X
  213. X/* ### dokick.c ### */
  214. X#undef dokick
  215. X
  216. Xint dokick()        { return dokick_(); }
  217. X
  218. X
  219. X/* ### dothrow.c ### */
  220. X#undef dothrow
  221. X
  222. Xint dothrow()        { return dothrow_(); }
  223. X
  224. X
  225. X/* ### eat.c ### */
  226. X#undef Hear_again
  227. X#undef eatmdone
  228. X#undef doeat
  229. X#undef eatfood
  230. X#undef opentin
  231. X#undef unfaint
  232. X
  233. Xint Hear_again()    { return Hear_again_(); }
  234. Xint eatmdone()        { return eatmdone_(); }
  235. Xint doeat()        { return doeat_(); }
  236. Xint eatfood()        { return eatfood_(); }
  237. Xint opentin()        { return opentin_(); }
  238. Xint unfaint()        { return unfaint_(); }
  239. X
  240. X
  241. X/* ### end.c ### */
  242. X#undef done1
  243. X#undef done2
  244. X#undef hangup
  245. X#undef done_intr
  246. X
  247. X#if defined(UNIX) || defined(VMS)
  248. X#undef done_hangup
  249. X#endif /* UNIX || VMS */
  250. X
  251. Xint done1()        { return done1_(); }
  252. Xint done2()        { return done2_(); }
  253. Xint hangup()        { return hangup_(); }
  254. Xint done_intr()        { return done_intr_(); }
  255. X
  256. X#if defined(UNIX) || defined(VMS)
  257. Xint done_hangup()    { return done_hangup_(); }
  258. X#endif /* UNIX || VMS */
  259. X
  260. X
  261. X/* ### engrave.c ### */
  262. X#undef doengrave
  263. X
  264. Xint doengrave()        { return doengrave_(); }
  265. X
  266. X
  267. X/* ### fountain.c ### */
  268. X#undef gush
  269. X
  270. Xvoid gush(x, y, poolcnt)
  271. X  int x, y; genericptr_t poolcnt; { gush_(x, y, poolcnt); }
  272. X
  273. X
  274. X/* ### hack.c ### */
  275. X#undef dopickup
  276. X#undef identify
  277. X
  278. Xint dopickup()        { return dopickup_(); }
  279. Xint identify(otmp)
  280. X  struct obj *otmp;    { return identify_(otmp); }
  281. X
  282. X
  283. X/* ### invent.c ### */
  284. X#undef ckunpaid
  285. X#undef ddoinv
  286. X#undef dolook
  287. X#undef dopramulet
  288. X#undef doprarm
  289. X#undef doprgold
  290. X#undef doprring
  291. X#undef doprtool
  292. X#undef doprwep
  293. X#undef dotypeinv
  294. X#undef doorganize
  295. X
  296. Xint ckunpaid(obj)
  297. X  struct obj *obj;    { return ckunpaid_(obj); }
  298. Xint ddoinv()        { return ddoinv_(); }
  299. Xint dolook()        { return dolook_(); }
  300. Xint dopramulet()    { return dopramulet_(); }
  301. Xint doprarm()        { return doprarm_(); }
  302. Xint doprgold()        { return doprgold_(); }
  303. Xint doprring()        { return doprring_(); }
  304. Xint doprtool()        { return doprtool_(); }
  305. Xint doprwep()        { return doprwep_(); }
  306. Xint dotypeinv()        { return dotypeinv_(); }
  307. Xint doorganize()    { return doorganize_(); }
  308. X
  309. X
  310. X/* ### ioctl.c ### */
  311. X#ifdef UNIX
  312. X# ifdef SUSPEND
  313. X#undef dosuspend
  314. X
  315. Xint dosuspend()        { return dosuspend_(); }
  316. X# endif /* SUSPEND */
  317. X#endif /* UNIX */
  318. X
  319. X
  320. X/* ### lock.c ### */
  321. X#undef doclose
  322. X#undef doforce
  323. X#undef doopen
  324. X#undef forcelock
  325. X#undef picklock
  326. X
  327. Xint doclose()        { return doclose_(); }
  328. Xint doforce()        { return doforce_(); }
  329. Xint doopen()        { return doopen_(); }
  330. Xint forcelock()        { return forcelock_(); }
  331. Xint picklock()        { return picklock_(); }
  332. X
  333. X
  334. X/* ### mklev.c ### */
  335. X#undef do_comp
  336. X
  337. Xint do_comp(vx, vy)
  338. X  genericptr_t vx, vy;    { return comp_(vx, vy); }
  339. X
  340. X
  341. X/* ### mondata.c ### */
  342. X/* canseemon() is only called by a macro e_boolean.  If e_boolean ever does
  343. X   become a function, this may need to return. */
  344. X
  345. X/* #undef canseemon */
  346. X
  347. X/* boolean canseemon(x) struct monst *x; { return canseemon_(x); } */
  348. X
  349. X
  350. X/* ### muse.c ### */
  351. X#undef mbhitm
  352. X
  353. Xint mbhitm(mtmp, otmp)
  354. X  struct monst *mtmp; struct obj *otmp; { return mbhitm_(mtmp, otmp); }
  355. X
  356. X
  357. X/* ### o_init.c ### */
  358. X#undef dodiscovered
  359. X
  360. Xint dodiscovered()    { return dodiscovered_(); }
  361. X
  362. X
  363. X/* ### objnam.c ### */
  364. X#undef doname
  365. X#undef xname
  366. X
  367. Xchar *doname(obj)
  368. X  struct obj *obj;    { return doname_(obj); }
  369. Xchar *xname(obj)
  370. X  struct obj *obj;    { return xname_(obj); }
  371. X
  372. X
  373. X/* ### options.c ### */
  374. X#undef doset
  375. X#undef dotogglepickup
  376. X
  377. Xint doset()        { return doset_(); }
  378. Xint dotogglepickup()    { return dotogglepickup_(); }
  379. X
  380. X
  381. X/* ### pager.c ### */
  382. X#undef dohelp
  383. X#undef dohistory
  384. X#undef dowhatdoes
  385. X#undef dowhatis
  386. X#undef doquickwhatis
  387. X
  388. Xint dohelp()        { return dohelp_(); }
  389. Xint dohistory()        { return dohistory_(); }
  390. Xint dowhatdoes()    { return dowhatdoes_(); }
  391. Xint dowhatis()        { return dowhatis_(); }
  392. Xint doquickwhatis()    { return doquickwhatis_(); }
  393. X
  394. X
  395. X/* ### pcsys.c ### */
  396. X#ifdef SHELL
  397. X#undef dosh
  398. X
  399. Xint dosh()        { return dosh_(); }
  400. X#endif /* SHELL */
  401. X
  402. X
  403. X/* ### pickup.c ### */
  404. X#undef ck_bag
  405. X#undef doloot
  406. X#undef in_container
  407. X#undef out_container
  408. X
  409. Xint ck_bag(obj)
  410. X  struct obj *obj;    { return ck_bag_(obj);  }
  411. Xint doloot()        { return doloot_(); }
  412. Xint in_container(obj)
  413. X  struct obj *obj;    { return in_container_(obj); }
  414. Xint out_container(obj)
  415. X  struct obj *obj;    { return out_container_(obj); }
  416. X
  417. X
  418. X/* ### potion.c ### */
  419. X#undef dodrink
  420. X#undef dodip
  421. X
  422. Xint dodrink()        { return dodrink_(); }
  423. Xint dodip()        { return dodip_(); }
  424. X
  425. X
  426. X/* ### pray.c ### */
  427. X#undef doturn
  428. X#undef dopray
  429. X#undef prayer_done
  430. X#undef dosacrifice
  431. X
  432. Xint doturn()        { return doturn_(); }
  433. Xint dopray()        { return dopray_(); }
  434. Xint prayer_done()    { return prayer_done_(); }
  435. Xint dosacrifice()    { return dosacrifice_(); }
  436. X
  437. X
  438. X/* ### print.c ### */
  439. X#undef doredraw
  440. X
  441. Xint doredraw()        { return doredraw_(); }
  442. X
  443. X
  444. X/* ### read.c ### */
  445. X#undef doread
  446. X#undef set_lit
  447. X
  448. Xint doread()        { return doread_(); }
  449. Xvoid set_lit(x, y, val)
  450. X  int x, y; genericptr_t val; { set_lit_(x, y, val); }
  451. X
  452. X
  453. X/* ### rip.c ### */
  454. X#undef genl_outrip
  455. X
  456. Xvoid genl_outrip(tmpwin, how)
  457. X  winid tmpwin; int how; { genl_outrip_(tmpwin, how); }
  458. X
  459. X
  460. X/* ### save.c ### */
  461. X#undef dosave
  462. X
  463. Xint dosave()        { return dosave_(); }
  464. X
  465. X
  466. X/* ### search.c ### */
  467. X#undef findone
  468. X#undef openone
  469. X#undef doidtrap
  470. X#undef dosearch
  471. X
  472. Xvoid findone(zx, zy, num)
  473. X  int zx, zy; genericptr_t num; { findone_(zx, zy, num); }
  474. Xvoid openone(zx, zy, num)
  475. X  int zx, zy; genericptr_t num; { openone_(zx, zy, num); }
  476. Xint doidtrap()        { return doidtrap_(); }
  477. Xint dosearch()        { return dosearch_(); }
  478. X
  479. X
  480. X/* ### shk.c ### */
  481. X#undef dopay
  482. X
  483. Xint dopay()        { return dopay_(); }
  484. X
  485. X
  486. X/* ### sit.c ### */
  487. X#undef dosit
  488. X
  489. Xint dosit()        { return dosit_(); }
  490. X
  491. X
  492. X/* ### sounds.c ### */
  493. X#undef dotalk
  494. X
  495. Xint dotalk()        { return dotalk_(); }
  496. X
  497. X
  498. X/* ### spell.c ### */
  499. X#undef learn
  500. X#undef docast
  501. X#undef dovspell
  502. X
  503. Xint learn()        { return learn_(); }
  504. Xint docast()        { return docast_(); }
  505. Xint dovspell()        { return dovspell_(); }
  506. X
  507. X
  508. X/* ### steal.c ### */
  509. X#undef stealarm
  510. X
  511. Xint stealarm()        { return stealarm_(); }
  512. X
  513. X
  514. X/* ### trap.c ### */
  515. X#undef dotele
  516. X#undef dountrap
  517. X#undef float_down
  518. X
  519. Xint dotele()        { return dotele_(); }
  520. Xint dountrap()        { return dountrap_(); }
  521. Xint float_down()    { return float_down_(); }
  522. X
  523. X
  524. X/* ### version.c ### */
  525. X#undef doversion
  526. X#undef doextversion
  527. X
  528. Xint doversion()        { return doversion_(); }
  529. Xint doextversion()    { return doextversion_(); }
  530. X
  531. X
  532. X/* ### wield.c ### */
  533. X#undef dowield
  534. X
  535. Xint dowield()        { return dowield_(); }
  536. X
  537. X
  538. X/* ### zap.c ### */
  539. X#undef bhitm
  540. X#undef bhito
  541. X#undef dozap
  542. X
  543. Xint bhitm(mtmp, otmp)
  544. X  struct monst *mtmp; struct obj *otmp; { return bhitm_(mtmp, otmp); }
  545. Xint bhito(obj, otmp)
  546. X  struct obj *obj, *otmp; { return bhito_(obj,  otmp); }
  547. Xint dozap()        { return dozap_(); }
  548. X
  549. X
  550. X/*
  551. X * Window Implementation Specific Functions.
  552. X */
  553. X
  554. X/* ### getline.c ### */
  555. X#undef tty_getlin
  556. X#ifdef COM_COMPL
  557. X#undef tty_get_ext_cmd
  558. X
  559. Xvoid tty_get_ext_cmd(bufp)
  560. X  char *bufp;            { tty_get_ext_cmd_(bufp); }
  561. X#endif /* COM_COMPL */
  562. Xvoid tty_getlin(query,bufp)
  563. X  const char *query; char *bufp;{ tty_getlin_(query,bufp); }
  564. X
  565. X
  566. X/* ### termcap.c ### */
  567. X#undef tty_nhbell
  568. X#undef tty_number_pad
  569. X#undef tty_delay_output
  570. X#undef tty_start_screen
  571. X#undef tty_end_screen
  572. X
  573. Xvoid tty_nhbell()        { tty_nhbell_(); }
  574. Xvoid tty_number_pad(state)
  575. X  int state;            { tty_number_pad_(state); }
  576. Xvoid tty_delay_output()        { tty_delay_output_(); }
  577. X/* other defs that really should go away (they're tty specific) */
  578. Xvoid tty_start_screen()        { tty_start_screen_(); }
  579. Xvoid tty_end_screen()        { tty_end_screen_(); }
  580. X
  581. X
  582. X/* ### topl.c ### */
  583. X#undef tty_doprev_message
  584. X#undef tty_yn_function
  585. X
  586. Xint tty_doprev_message()    { return tty_doprev_message_(); }
  587. Xchar tty_yn_function(query,resp,def)
  588. X  const char *query, *resp; char def;
  589. X                { return tty_yn_function_(query,resp,def); }
  590. X
  591. X
  592. X/* ### wintty.c ### */
  593. X#undef tty_init_nhwindows
  594. X#undef tty_player_selection
  595. X#undef tty_askname
  596. X#undef tty_get_nh_event
  597. X#undef tty_exit_nhwindows
  598. X#undef tty_suspend_nhwindows
  599. X#undef tty_resume_nhwindows
  600. X#undef tty_create_nhwindow
  601. X#undef tty_clear_nhwindow
  602. X#undef tty_display_nhwindow
  603. X#undef tty_destroy_nhwindow
  604. X#undef tty_curs
  605. X#undef tty_putstr
  606. X#undef tty_display_file
  607. X#undef tty_start_menu
  608. X#undef tty_add_menu
  609. X#undef tty_end_menu
  610. X#undef tty_select_menu
  611. X#undef tty_update_inventory
  612. X#undef tty_mark_synch
  613. X#undef tty_wait_synch
  614. X#ifdef CLIPPING
  615. X#undef tty_cliparound
  616. X#endif
  617. X#undef tty_print_glyph
  618. X#undef tty_raw_print
  619. X#undef tty_raw_print_bold
  620. X#undef tty_nhgetch
  621. X#undef tty_nh_poskey
  622. X
  623. Xvoid tty_init_nhwindows()    { tty_init_nhwindows_(); }
  624. Xvoid tty_player_selection()    { tty_player_selection_(); }
  625. Xvoid tty_askname()        { tty_askname_(); }
  626. Xvoid tty_get_nh_event()        { tty_get_nh_event_(); }
  627. Xvoid tty_exit_nhwindows(str)
  628. X  const char *str;        { tty_exit_nhwindows_(str); }
  629. Xvoid tty_suspend_nhwindows(str)
  630. X  const char *str;        { tty_suspend_nhwindows_(str); }
  631. Xvoid tty_resume_nhwindows()    { tty_resume_nhwindows_(); }
  632. Xwinid tty_create_nhwindow(type)
  633. X  int type;            { return tty_create_nhwindow_(type); }
  634. Xvoid tty_clear_nhwindow(window)
  635. X  winid window;            { tty_clear_nhwindow_(window); }
  636. Xvoid tty_display_nhwindow(window, blocking)
  637. X  winid window; boolean blocking;
  638. X                { tty_display_nhwindow_(window,blocking); }
  639. Xvoid tty_destroy_nhwindow(window)
  640. X  winid window;            { tty_destroy_nhwindow_(window); }
  641. Xvoid tty_curs(window,x,y)
  642. X  winid window; int x,y;    { tty_curs_(window,x,y); }
  643. Xvoid tty_putstr(window,attr,str)
  644. X  winid window; int attr; const char *str;
  645. X                { tty_putstr_(window,attr,str); }
  646. Xvoid tty_display_file(fname, complain)
  647. X  const char *fname; boolean complain;
  648. X                { tty_display_file_(fname,complain); }
  649. Xvoid tty_start_menu(window)
  650. X  winid window;            { tty_start_menu_(window); }
  651. Xvoid tty_add_menu(window,ch,attr,str)
  652. X  winid window; char ch; int attr; const char *str;
  653. X                { tty_add_menu_(window,ch,attr,str); }
  654. Xvoid tty_end_menu(window,ch,str,morestr)
  655. X  winid window; char ch; const char *str, *morestr;
  656. X                { tty_end_menu_(window,ch,str,morestr); }
  657. Xchar tty_select_menu(window)
  658. X  winid window;            { return tty_select_menu_(window); }
  659. Xvoid tty_update_inventory()    { tty_update_inventory_(); }
  660. Xvoid tty_mark_synch()        { tty_mark_synch_(); }
  661. Xvoid tty_wait_synch()        { tty_wait_synch_(); }
  662. X#ifdef CLIPPING
  663. Xvoid tty_cliparound(x,y)
  664. X  int x,y;            { tty_cliparound_(x,y); }
  665. X#endif
  666. Xvoid tty_print_glyph(window,x,y,glyph)
  667. X  winid window; xchar x,y; int glyph;
  668. X                { tty_print_glyph_(window,x,y,glyph); }
  669. Xvoid tty_raw_print(str)
  670. X  const char *str;        { tty_raw_print_(str); }
  671. Xvoid tty_raw_print_bold(str)
  672. X  const char *str;        { tty_raw_print_bold_(str); }
  673. Xint tty_nhgetch()        { return tty_nhgetch_(); }
  674. Xint tty_nh_poskey(x,y,pos)
  675. X  int *x,*y,*pos;        { return tty_nh_poskey_(x,y,pos); }
  676. X
  677. X#endif /* OVERLAY */
  678. END_OF_FILE
  679. if test 14865 -ne `wc -c <'sys/msdos/trampoli.c'`; then
  680.     echo shar: \"'sys/msdos/trampoli.c'\" unpacked with wrong size!
  681. fi
  682. # end of 'sys/msdos/trampoli.c'
  683. if test -f 'sys/share/termcap.uu' -a "${1}" != "-c" ; then 
  684.   echo shar: Renaming existing file \"'sys/share/termcap.uu'\" to \"'sys/share/termcap.uu.orig'\"
  685.   mv -f 'sys/share/termcap.uu' 'sys/share/termcap.uu.orig'
  686. fi
  687. echo shar: Extracting \"'sys/share/termcap.uu'\" \(31540 characters\)
  688. sed "s/^X//" >'sys/share/termcap.uu' <<'END_OF_FILE'
  689. Xbegin 644 termcap.zip
  690. XM4$L#!`H````&`)H!#`VHK'I&:@4``-0*```(````1D=%5$Q2+D,-`@$2(Q05R
  691. XM-C=HB9K;/`4&$A-$Q?:6]U^J5!$<+=A0(4B5"1,$%\WYT+=P\\I->Q8M79`HY
  692. XMQZ8$&3,G3IDL01J56Y8,\4X[%\UY/$@0P3LH6[8@I:S/.<:[[-RR<NV8+V48;
  693. XM;%BJ:/PWR+EOS=*]&X99@PSKENS+MW)!DGT[MF[;LF[IAJ6;]JU;$."GO=F69
  694. XM#3N'W<UT/]RZ8MFF'?-?DNG>=*QNL7726W=S5\[:;5@V7;<;X]UR[-LVR%KN>
  695. XMV#3/&V2=_PTB>K/-ZT(?9YJV;5HZTRXG;4WWC?BPWVW?3&NS>5DL'??VC>)ZW
  696. XM8!\-LRXK-@\P>5;.^*9#M6`'-W;+A?NF6<\QUG#EOK6;EDSYTT7C5`VK+)<_[
  697. XM/@9*U/[JN\>6*2O;ADWSUO#Z6#K_S/U!CKG?;L]TG[\<8^3+9?./F9EQ:Q=S4
  698. XM*B15V#.[T2R]8KWF_:HUB"E-[,QS5YMQ-N.]-LVTWZ&KT0`3T7J.FTO=]#J=3
  699. XM(\;:)UM'GRR+%TZ9MK[:-8@A#U]EW6WG$+/CA7U0F#`E3J:!-W+S*]S>WRTVM
  700. XMS?BZ%TRWF>/MAGO/(;/Y3SCPJZW7>=9R@@DU2Q>O"]<<9]FHPA?$*W@S$-XO-
  701. XMFEN=FVE2H5*#2LU"V%W5Z5"J29\ZJ1Y`NQDYE5XMA[$#^4&R?7MF[K+"X%QU2
  702. XM;#EPV)F[#5.EU9Q8\-GY7EK$6%]]*I7HE&%PRHUPHP@5O^NZ'9,Z.<<^.36KY
  703. XMTZ=0IR:I3P!I]UK%?HU2+%P6PGMN6CV7TV;AIO".H]X[FMOJ#P*\>JZ-)F5:B
  704. XMA/^Z*W"::-&I0Z4FA=(54F5T6#*Q/=EOBXW'*W#B'ODRWB*6M8C(B=#78+597
  705. XM,UXHZ.6N10SS.G4XF_^Z3ACVO^&0]I#W'3RTF\*\B*K5_AK-=EMG\W=;!K%35
  706. XM#F;O,_;?FI>E%;4N\SME;TU7_"Y#NQ/<42E9X#ZJ!_7JW%+>+E)-N*_:E]5UR
  707. XMC!"OTVQNG%:_O>-OFE%6O-.J3)FZ4(L.TA5,9Q7YLNU2G"+>98!N.:N1://.@
  708. XM`8^?4RRXWAL'S,85O+J*@SB+$6;\V9XNUGH8:Q^R77A-]+<@U/)>.^?NHTTQ1
  709. XM-4'+]IJQ6%1ICE?G^69S6L88XU?>*UX=>I$S9F^S;92KONQW$"76^AST9V/U2
  710. XMEMAR\T2+,_:;MY:Z86QT"J[8?M.BS@/9.]YER<BRB^DV(\V0,^P<:(225=P$T
  711. XM[)N.:;0;NH=*"[KE%'%S]QE>-3Z<S:<'E!8$'!!8D!01(GJ/2:OEC&JF"2O?,
  712. XM,)I)GD!ZH!7SHQZU.RVTZA',(@`?@"`L^7F`Y9I0[CM0MYG"ZSM]S\Q!K)8RX
  713. XM0^ZR(&:'2)P`LI`%JWB4+6<9I:8I)@8*Z7J^.Q'00O$LL>MTJVM*47V$]M*DS
  714. XMKN,)&B2/8V5*_=8E6A^>BH3I7;0JT2>;[R>$44;10LN>(07;-!RI9A*CI!E3?
  715. XM;#:8X6X,2=U)23;!WHN(+Z>4JQ<DR#>UH%ZGE/PV48*_(_J`$L6^D[K9JS;N=
  716. XMECPB]AM)?UDY059CT2"^HMC?#&L282+&S,`F^!;8&?D8+4:>,&HSOZJN+8VQ5
  717. XM&&`2^:6+]'#0J/-Q-4Y7;&-KN'!@-]NP\2Z6)HM(W^3KN5J.09*`O/A+2`FG8
  718. XMGE`>72320%E"$$U"'"1$:H3X/<AV;MZCJ6+T1KOCN<JOQX0/\&))C8)<SAF'0
  719. XM"+)G#\(;\D*VFSFF$@5T0R;[V*DJO^[VS>!7(`C$:#?'-CYN?L.1?A/,>XMW2
  720. XM[R(]UJ7*EBVRA_8^R=7MB6[*:'9,^U@)9;]-@CB/YW)>)KC[*U>"T*]W0)<@0
  721. XMSE;.C<UR#%*\131?&0.JW(%.]CG^/E(1;"OL8OM02P,$"@````8`I@$,#;2E:
  722. XM)0;\`@``3`4```D```!)4T1)1TE4+D,-`@$2(Q05-C=HB9K;/`4&$A-$Q?:6#
  723. XM]U^J5!$<+=A0(4B5"1,$%\WYT+=P\\I->Q8M79`HQZ8$&3,G3IDL01J56Y8,)
  724. XM\4X[%\UY/$@0P3LH6[8@I:S/.<:[[-RR<NV8+V48;%BJ:/PWR+EOS=*]&X99&
  725. XM@PSKENS+MW)!DGT[MF[;LF[IAJ6;]JU;$."GO=F6#3N'W<UT/]RZ8MFF'?-?<
  726. XMDNG>=*QNL7726W=S5\[:;5@V7;<;X]UR[-LVR%KNV#3/&V2=_PTB>K/-ZT(?W
  727. XM9YJV;5HZTRXG;4WWC?BPWVW?3&NS>5DL'??VC>)Z8!\-LRXK-@\P>5;.^*9#7
  728. XMM6`'-W;+A?NF6<\QUG#EOK6;EDSYTT7C5`VK+)<_/@9*U/[JN\>6*2O;ADWS'
  729. XMUO#Z6#K_S/U!CKG?;L]TG[\<8^3+9?./F9EQ:Q=S*B15V#.[T2R]8KWF_:HU!
  730. XMB"E-[,QS5YMQ-N.]-LVTWZ&KT0`3T7J.FTO=]#J=(\;:)UM'GRR+%TZ9MK[:]
  731. XM-8@A#U]EW6WG$+/CA7U0F#`E3J:!-W+S*]S>WRTVS?BZ%TRWF>/MAGO/(;/Y>
  732. XM3SCPJZW7>=9R@@DU2Q>O"]<<9]FHPA?$*W@S$-XOFEN=FVE2H5*#2LU"V%W5O
  733. XMZ5"J29\ZJ1Y`FUQ55Y_1NQH[OE2"KR*FG"J^K)PVJ#MMCST&SO&Z0ZOL,_8]7
  734. XM-:O3IU"G)IV"C&AR@V`F<*O1IM"#8K9HWV&?)%ITZE"I2:$(C:1;34?+[2;/=
  735. XM355JU2))2J-!F4Y!7HI;\<J+5:W/M$[#D>W?L4/3H9S]<7XH)H3NU!9'CHI;R
  736. XM9>%AY*:L$[7C=%T030JM>N1NLFF8-;89.C2;V1KDKGZG*<(T9_!&K-'@+\VXP
  737. XMW3+,<$`HLP):]'HIU4F36*/BY"/P5^!V';T;)`\EU=[]UB5:']4->INQ-K!T^
  738. XMC.<$6AJ&^.@S-#V3>[JMBX.K(&50MT^0)W.>!,F7S_:1J^4-\\2H%/B%]H:4=
  739. XM**)YRAWQ=9_-;C:+-N\XH*,[9;R$'U!+`P0*````!@`@&&$:<*RI`.X*``":&
  740. XM&0``"@```$Q)0E1%4DU#+D$/`!(#)!4V)S@Y:GM,G6X?"08!$S3E]I;W0_(,J
  741. XM*W<L6I\*Z9XM2[>L6[HNWX($$<QOSH294Z9,FC9A+-NP%.,Q8<*83MECQL0YO
  742. XM(YT&J_!@@*,G+F!J)*=C$M4Q635Q^<'L"2XNBM#8\HN;(DS<@%K_UT6(?MFQL
  743. XM#R9.,#'PQ,(35^5?6'K=$N0.&"=`NA%Q2>T`TP\B=LB0(:]7,#SN__^"7U]GD
  744. XM>3G+Z<\?+4`"0M.@K$WH&0A]8>!TIT#/8%HA\=OT"*;Y#G9'OX><$]A6.,J4H
  745. XMW#JP*L+&0O^YW9YWB*LO77]A;8QO79]@>4O+QP2^'F#RX52+2FTZ-"A4@'(!C
  746. XM),M7EY7;=FQ8N`!?S.FQ+YBQ,Y,,T0I3=O0(SD9H>7Q:_B%A1];FY?%YV9871
  747. XMM(SU+^&8<Z6K0'T@Q^ND*W`]2K3*OL3QHQ_NCVA%\"4TW03L\T_?JDJZ7LA6S
  748. XMHV66MGKVES8\/7)'H3^]?BW4CQGINA2@S<\:9YJJLJOYM[,5;32B-4O:8!>D,
  749. XM[>N-0CJ;.N?9SC7&.;`>SEW#T]`)SO'U`J[[4X,'-^9'UI7P]^E/;3Z=_M,Q4
  750. XM=7D-_DWY,>V+JK!B!%-HO&53/%7X[SCA$:XG-V[1O"X*TB,I''.^=!D<LSQ-(
  751. XM<+V#/>!-GEK)NYQS#-\DA'<2@=,Z'M(W\6Q-<@Y_B>^)=&92I__\P@="^HN><
  752. XM=[4S$+ZANV/372>8[IA<=NP)KMW8,QGLF!QU37IZ)C,=DXN.?<&UWSEV!<?N*
  753. XMY=@1''N6;S+'/1GCF:0/X)M^#^"99G3L!YX]T+$;.'8NUW3#",=&V,Z0P#,5J
  754. XMS"<,>X%EDL.P!]@F2QR3Z(8=QC41K#C>20)(.Y!K>"3+\%"6X;$LPW]9AC^S4
  755. XM#/]F&?[.MHX=*_/KV+=MX:9E6Y:L"_MNE4`N^;%PQ=8U@[S9M&[)$)MWRL;M(
  756. XM;&;SKV??<(\VS+./9?MVSK7/I2O'>S?7MJ]VKOTM'&>Q]C%8=TS#S6--/+?)J
  757. XMW"S;L&<X&=MD@)=YDR:(388E]$KP,(Y)")L,(<D,L!VR6AVPJN9^#S,MG$IA7
  758. XM&V=3R/;9W,=GDS:L:2'7N(EKTL&Q31ONZ,#U#2Z;C'#9&Y@4CF!3$-9;T/8!J
  759. XM@^<(!@\0.RP!WL0RO(LK`&5.@@4X*RJ:)I2M;NNV2?D`.@WNF@C-KXGP/(Y)]
  760. XM#$V$93AU<0<G\J[TG,CIHR_G1%AZC*B_0DF+TE\D;%)4^HHQXM3XL'`H2^3T\
  761. XM1)%76J:T2'V3@;[1=#,<V[4UBO4"VWC\3B]0,<,?+Q(6.^<PZR9P'M\5=?T!O
  762. XM9%>P*H+M#WU#E(H>2BC`2IZ/7-R5_\/77?')-?_$V`<#AU9WXQ8)'AYP6;29W
  763. XM[>N5]0I?/R&6%06^0XHX>(#KN\(C?`7(*M')"XU/)HAT``\@THEEO,4RO(W,N
  764. XM!\H?#/-!_IIV+MFT9]/2"7TV;:$/H-]0Z%CH$[\F<>%@;@L>P6L!J&!>"[22Z
  765. XMRR*%O!9X&=>DA=?">TS<,,M'-+Y:F`04V%X1@$0G/H:N5[1;B*<X@OT(W@A^K
  766. XM'HOYW$S,)[TP7!7(@V.>D*=7NB'7WYC:0#XEM:WMZ-=433P\?_'P6,J5>54(O
  767. XM./Q'Q`AR+DFAXI`*HH5:)K:NI_3.C1FV\O.;Q'<L1)W(*<=WL^FB&\4B-,O0C
  768. XMK4*Y#82JLS!R`VVNBG0X@\7AI@8ZMCC>U'C1_0`(FQS<E[_`ORS*<4#E\!>!%
  769. XME]T_`-L50P0L'#K"JON*FN'Z:!.;5MQT7UI\_9)GML__UZ!\1>_#9\"L--E8?
  770. XM<AC"G)?1#$J;71OU#*BIBB5'V\)"NQ@]]QV@M.G<`0X.)\@WP,6AK1P3DPP67
  771. XMP,\A&@L`]ZZ0AKW&.\F#VWO\;&IUN)%W^">Q!93'LM@"D6P9\X8[]K=?R\X=_
  772. XM<WR;`S^;PIR.8B)VGNW<WR0F:N<!])HY<RPF+`<VDU2&'<]8)`@ZDT^?0IU2M
  773. XM2W@?-%UW(:YF7<]WO9Z')"?*^/5X01#%#F/8I(<@/0EDMI)NB&*;L_":#*4N)
  774. XMNJTODLF2=#N&PM?%%9[E\'F!9/WG-%]?$/T(M14Y)')6V(XK;&ED^_Q+D@'"W
  775. XM,&40ZTPRGXE/X:>V9K&KVR9W8=*T[B9'>T[A#P4/:7U?3+`P-TR@X/X*]97"4
  776. XM,/`#EI'L!6Q#<GEV4M/@A@$=R=)PPX`S&3*(Y-8"Z)S&/53DZW^:A4FL@3$K>
  777. XM6DM2U!IG4/3*^[70'`T;%'WO?C@\/CSPL&A-W(%<TTF&0CH:Q$Q'(P4=#5OG[
  778. XM:*#&.1JHGHY&ZC@:ML710$UQ-&,<"FA5S+%2TXH8P]-4Y-#I!Y0KI'/81;_-,
  779. XMVDF!&=Z50U&H>K(Y@+$PU*9JII73.1G(Q?V^X":@1HB?@6*,?X#5=&(.62:RI
  780. XMI2+V\2V9QF-/=5,#W8J&;\RPTD?CF5'\([QY8XJ%L-E`<TW;NG[&DX4M3J`<L
  781. XM]']!XAS";Y(E+H/H=WH-C3LD\+(XP0+'I/\!QW2\8Y+=,5GNF-QV3"X[)HT=5
  782. XMD[^.25G')*MCDM0QV>F8M'1,,CHF#1V3?XY).<<DFV/2S#'YY9C$<DP^.2:3>
  783. XM'),^CDD<QZ2,8Q+%,1GBF-QP3%8X)A$<DP*.2?T"CNEYQV2[8U+<,<GMF'PN)
  784. XMX(>BE3V3PH[IAKV>R5L;A7I2SR2K8[+4,:GIF*1T3!YZFA3T3.IYFJSS3+YY#
  785. XMFE3S3)(Y)KL<DU*.22;'Y(^G21W/I(RGR1;/Y(FG21'/)(=CLL(Q">&;9'!,'
  786. XM(C@F9B))$,`QR>\'(_$=H-@Q">^89'=,HCLFR1V3X(Y);L<DMF.2VC$)[9AD6
  787. XM=DPB.R:)'9/`CDE>QR2N8Y+6,0GKF&1U3*(Z)DD=DZ".24[')*9CDM(Q">F8,
  788. XM9'1,(CHF"1V3@(Y)/L<DGF.2SC$)YYAD<TRB.2;)')-@CDDNQR268Y+*,0GE9
  789. XMF&1R3"(Y)HD<DT".21[')(YCDL8Q">.89'%,HC@F21R3((Y)#L<DAF.2PC$)1
  790. XMX9AD<$PB."8)'),`CDE^+XG$=TS2.R;A'9/LCDETQR2Y8Q+<,<GMF*1V3`('#
  791. XM<*C$,=GJF&QT3!8Z)NT<DW".23/'))ACTLHQR>28''),]C@F:1R3*X[)$\=D>
  792. XMB&-2PH$#C!6G&HZ)0J`>EHF%JR:6B5*4K4D`DU!C+!.:4'-,39(:=B$3#G[)2
  793. XM,OR4#P?,B+<9[VZ&?UN7+ASACAGQ8>6>G5,\G/3KNFEVN'+?CB%Q0?N<Y-2G7
  794. XM4V`IH*-?@;S.&7$`\LR<-5Y(:`9<85.6"!"X.CX%Q"E=!1\T75?"R3O]>0`OJ
  795. XMBZ?_=DS5P&@$*APOQ@'#HT#@Y]^8`,WA`7R]CE%ZUHW`3-U&X(T'=)ZXS@G-)
  796. XMAYV#<IN[K+ODAV=8TVRPAI,A!&D0(:WC0-;A#X2MYBY8)O4JZS9<I!X,V`9>&
  797. XM/&(`(_+9V]H5XO]I_+Z>W/R-R]+?ZJ5B.:\%EFX(Z9B\<4Q,L$#6</OP(VX?:
  798. XMN#O("@^'3-Q``'I,F3@.'YJ%X2/^@`K&#M\5G6E$P@-"_'/^35#L+_T.7)_@6
  799. XM`%8&$["<HOQ(:LG4"`6D(8/A"S<S0CM;.82#.&$`]HV](!FM!0_CF(0P.#`S(
  800. XMD$-@`#A"].PNGS.X?*VS`NB9%4#%K`"R/;39)WC/`N@',$!6`?T/`U)\G[_")
  801. XMNC@>8`_H5P8TSK7NB6/CR<F$BT#+`BACAX+Z"OX;G<(*[[KXT0=2F[H\VQ+)2
  802. XMX@(E(>P^(&[8?7@1R_`JA@C"GJAC>HZEHU!+`P0*``8`!@`%&$$:MIR.V)<+X
  803. XM``#"'P``"0```%1'151%3E0N0V$*>P<&&P:[#$L#"0<+"0L)!Q8'"`8%!@<&A
  804. XM!38'%A<+"@8("@L%!A4$!A<%"@@%!A4&"B4&"`<8"@<*"`L'"P0E!"4$"@8$K
  805. XM!10%"30'!A<)&BO\_/S[^_L,"RP++`L\"RPKK`P!(B,4%38W:(F:VSP%!A(C+
  806. XM%.7VEO<Q8\42.$I05/QCQ8TK<-6XC/92N.VJ5I9?V"CXD^CI.?D_9;OK/^5:J
  807. XM*TXG__\_/L_?L7K7W[G7>XMPURF/PQYO5:[UKWMMB7^V^S]'/>:^_?K>F,OWM
  808. XML3S+M1\?Z&_W>3\K]J_I_-+</*^&W[5^K<MV-6>I1^>YMW4_GC/_'_LQ;>SEU
  809. XM\KTUKN?\\WK__3C#Y=%?^E?Y6DS_)C4O.]&;_\M[_:J%R[=8W;_O&6<#[<J];
  810. XMW<UP@-?J]AP+RA3[B-*\E?;U7O-_:=LC7'6EOU2>Y3_GR7]I@#8?^W(U;N6U`
  811. XM_%S>&WXW%O^'Z_]&Y3FJ.I__;3#TV^E_86JYZWG_MRI">UXJ%KO\)'C]8_^F!
  812. XM/=$:[N\USA_N)URF/_Y:*H#7[5Y+-_6GWXM#U6K79_KK';ZDW%_+&>X;](WSI
  813. XMN<HKXG.583YH37@37R_PC_SY5ZZ]/,WKO-S?[=>NY;C7%:G#]Y:>37O/Y[,)R
  814. XM7JE:\[P3H7'"&M&$F$7%1<7!K:@XIL;S?W^0VAEW0OLIB;U1:]#MJ;P`RU*];
  815. XM%]H>,W[N3_TWYUKMWNPZG^5OX3P7O>Y5NW"K]U:^U'._R_]AOJ']R-W.L$UZB
  816. XM:O0;3^G7YJ/!%;NJ/')QJLZV2WRI7O"T'5JOF]0>`)["Y-]E6M@LY1]/^2Z@^
  817. XM3%>>[<=JEH*1QHG.&XPP3X=O>]09)!D/>\,OFW1.'[?+54<M)S\D#-^P?FW;4
  818. XMRT0/X/@Z;\#'*5LZ'[O8:W&+*SW\K^K7ZM%:0Z)9"@LH_@=$?_V->=NL_QE.9
  819. XM\%Y7PCA.T&8)Z(7XV'Z7/\G-R=(\70G_H$8U<AVJ;9@A"%_<O`K_4?^A^&8K+
  820. XMG@#>X<GVBM4L<XV_M,/-FSOFV<C\$O@IJ81+V_4(>*\B[C/4C?=@_>U>YNT03
  821. XM\%=M'I_K3NKW1IW7ZVC<M-.9T&V3)8RP-[6)A&_]TGR?95WV[:EZ^J_KWI!_@
  822. XMU7PC%(;0(9R?@_O+K;7MIOHSA_])Y\7JTL#X@)[N>O[WXC6\)1V5\>O/&XDW_
  823. XM276GC^\)K-5'MLTV5>WEF^MW[9E/$^N8]]*(Z7TM,%YE_G5<1Q6QM]H1KFT_K
  824. XMK-S*/1$>S[XI^F%6ZM]Z.\FC<1+Y*[!=W]*S5/2SJ%Z=[]5EUQT#TF3#NY'M7
  825. XM<=NU^12,J=_-N5K%?X\[7JKCXRZ^Q.UU6V\TXB.3$]LM]^_UE=O/CQTS-EE2[
  826. XMV4+F_TMD9K&JNZ[K53VXVHR3^L[O9$$]P8Z&?5"S%V04E^9OTJSX$MHOC8KBZ
  827. XM)_`5ZYLWE3\HW]"]=*'<_(%\/T_7Y<9T-^TWAX_XV`6,J`WFN?.V$CL]?(].Q
  828. XM)Y]MPATP_:1[Z3Z(2G\NUD-@;N4+VI&\0Y+=OO=MXMI=UW5N2/EUK=)40-]M^
  829. XMVS<[WS^'[""HZ?M?E\W<V3%4UR'O^\?]=E?<QHZY#.4.>OT:_]ZNQE_"E9S7M
  830. XMDJJI6N?:^50_[+9R;^X[FOM!=3!F->R'^'HE$9YSUHW!.M)F'B>VHG0[,F-F7
  831. XMA44NBF:"":SW.=?O'Q+K4K_VO$I8)D<ROR@/R\?P0YMW$M\_\3A-`>C?GPMR,
  832. XMFIJ8TAZ$R$OO1-\X9JP_!K)UO4+*M=CT]X9C53?58NIW[74CI@SZ;]P_G?#=.
  833. XM'1Y'G:I2>>Q%*8.0IGOA3MY>"T+_Y\(=K-.O<Y;*'6\GCD9ONZW;DQ\*U9297
  834. XM[E.ZNQVWZ'NC<>L=_ARW@Z"8]<NX-]<(_T]N#[LZX6#R/:_#-V6<V&]%['2[D
  835. XMK1]'.VH<#6$%'N"/[84QUMI>WXN&G?W0]TO[_F_7_;%J1-U288&>?C"Y#PQQ>
  836. XMY4-)/7'0'3R.X<IA"W;`V1^Z649SQ*51TJN#45SW.0E0KY=7?NF[W'33:6D'2
  837. XMUR8N)5-(4OM-'';_J#M\A2*G0KNQ4=7&M_E^-S/!Z+*W.\*UTQG37AN[[#\6M
  838. XM$UNMW@[^!=@KP)!(I_YZJ76$O5>GLI'#<9F^ERS/*O6>EGK"Q3_AE$[4;_.JW
  839. XM80KT'?<]UYOH,-FH1!=#.]"C8N?(%9=5T'C?Z@[J=PU7&$%M<(TAQVRF`CFJ?
  840. XMJJVE-5XH?YCE,HWCCDX=X>X.#&)JO0K>U"NSRW['$4?,(Y54+73E&T5I**JKF
  841. XM]T5^A'[V.+%XXRLXDL25:TKK&_(XW1$4KU[B<>,RNXPN@A<7&3&*551VDQ;R3
  842. XM2?PUQ0LT'QDA<3LTN\ADEN[BGMW>$,3QR^-S*1_AT_R(#E4F/SPWQ_YIOY?8:
  843. XM[P<CD!LZ*,JG$?ASF2DLK#F]@J?-4D'!3Y.["[[UCZOT:KZA1#G.]VI++J0IQ
  844. XMI7_C!KU_\]5"AW-%%;KI;Z@3I,HOK+'VYZ;:=;<UOT:Q4EX4UNH.I?_`-^/<.
  845. XM<6L-DUC'[?MP+<U2)')K;6_.=3H)U6Z-'<)';+$KS0A"9+R;981X8`57FR?HY
  846. XM:<YQD4=E,P6XK30_Z%&YV*`'H]P;]WDYT/K-;J]S!5:%.<G%,D/+:PW#W5NYC
  847. XM:1LMS`%KF2',$G.0V&=;#BB<4&IMXE2;Q(4YT*(<T.-EN<LE3)K/G<(KXZB@C
  848. XM!W.BE(HWI^#Z>6.P=+512R/"=26!EUCH$5*>'336>PK!>8TMZ38<.*^59Q45#
  849. XMZ(-*:TG=S,:8*^P"52$5=.<3B;-I+KMZ0J\F`@A?EUZH["SBM`\^/BC8@NNQ^
  850. XMU)J]5X?P+3]U!2/DI=ILD?FUYSI7`@'2V8`$YC"S4(4'G*M6*3X4]11X""<F-
  851. XM$X_Y&P,UF)O,5%-2:T*^D@O%G0^BV?A32$?5B;3E3JH>`^,E.QS(=)UYOJIW4
  852. XMHZ+*PE@Z,&9I^+9@*F#CYLP\I^2WT7:SC,4I7E-[#?#&`3,V*-OT`2BF'^X9&
  853. XM%4[#@+E$5]-CEF263<.<#GO$D\H;A.EY%IUDA18A'I\>*FYOX)=D55_%X0THV
  854. XM-)U*#YIY(!A.I-D@DF,4WX<#&^PR8=89REP"JT`JAJ3!!35@716<X\@NC5_ZJ
  855. XM`&&%L<-BBIOG,VL*^.H[,%8MW@Y(;(?(ZU"*U4)R2ZCN!LQ[*#Q2:B*H:$1<=
  856. XM3T-<+\TUCFAK'$UC8!U3U]-0UY%\?+&Y,&GK>`V!$/@:EQ`.88[;^`W[3R2US
  857. XMQ([F;HBW1MP6HQUGDS\,WL!1=3$WV$<GFL^!.9CGP6.]:'FC7%)_U3[-DBMTY
  858. XM!3??&J5PLEH;XE=670JUVP6>3S#BO`0]"`V*XAI,/@D'(^>2%J0\F:NP)-VWK
  859. XM<,;$'!^/BY-<GW/G-Y73K_6+E65?#)M(<_#\S]FQ6?U3:VS9N&8=MX/C7=T.^
  860. XMCFYRX_JQ.15A&_[01.QB70D+YSZT]J-UB[(-I0`>0/)GIJF^_WK?0DQZK0Y(4
  861. XM8*55&*F$`$0!<,MDKR@C.&A<QA`(=7H3!QH>UVT4#+?WFR=@RVI%M>G'>]QTV
  862. XM+S#8Y+-1#?B(8!-_K;>7"7`*;2P3E]3%6&5,0LJ$=N!5*'='#"F6-0P([;K=Z
  863. XM,206U."X%B2H12DE,[/28\IM(4<RM+W0]7F>`P"6;=&^3:6Z<KOJ=/+T#%8E^
  864. XM?2$D6X=YTLV=CE#)(SPMFS")$8MR3A[\5D5&C!D%8D"DZ`EZN)`V@`CS8]C$*
  865. XM(25/3\=<]?++/;T$61Q:;A^Q"T+A9J9:-Q2S>7D7:C6((<X;"<PG0#IQBB6:`
  866. XM*K1HF9`<!F`H7L*DJB;;!AAL(*H!"T$^$S_<0[A,"LF*HG4P4;24U5/]Q9K+H
  867. XM+!8]B-VZ7FG98OH)7\DWY"$7?H$L<I3"#CL8N?@K_*#';@K7;:C%ZPM,/!Y<2
  868. XMLR#3$(BM<1S97(8)T\NR,"%9)JA,ZK)PW))?XW@(L*\\8Y3&=<XV-E5IJF7`@
  869. XM@*XFI6&'C<ADK+.BB3$Q#E!+`P0*````!@"2NQ4/K]N(7BP$``#_!P``"@``G
  870. XM`%1'151&3$%'+D,-`@$2(Q05-C=HB9K;/`4&$A-$Q?:6]U^J5!$<+=A0(4B55
  871. XM"1,$%\WYT+=P\\I->Q8M79`HQZ8$&3,G3IDL01J56Y8,\4X[%\UY/$@0P3LH$
  872. XM6[8@I:S/.<:[[-RR<NV8+V48;%BJ:/PWR+EOS=*]&X99@PSKENS+MW)!DGT[R
  873. XMMF[;LF[IAJ6;]JU;$."GO=F6#3N'W<UT/]RZ8MFF'?-?DNG>=*QNL7726W=S%
  874. XM5\[:;5@V7;<;X]UR[-LVR%KNV#3/&V2=_PTB>K/-ZT(?9YJV;5HZTRXG;4WWD
  875. XMC?BPWVW?3&NS>5DL'??VC>)Z8!\-LRXK-@\P>5;.^*9#M6`'-W;+A?NF6<\Q9
  876. XMUG#EOK6;EDSYTT7C5`VK+)<_/@9*U/[JN\>6*2O;ADWSUO#Z6#K_S/U!CKG?U
  877. XM;L]TG[\<8^3+9?./F9EQ:Q=S*B15V#.[T2R]8KWF_:HUB"E-[,QS5YMQ-N.]B
  878. XM-LVTWZ&KT0`3T7J.FTO=]#J=(\;:)UM'GRR+%TZ9MK[:-8@A#U]EW6WG$+/CC
  879. XMA7U0F#`E3J:!-W+S*]S>WRTVS?BZ%TRWF>/MAGO/(;/Y3SCPJZW7>=9R@@DU]
  880. XM2Q>O"]<<9]FHPA?$*W@S$-XOFEN=FVE2H5*#2LU"V%W5Z5"J29\ZJ1Y`.QTYE
  881. XM-5TS9/>9QEZ2*_`%Q13[]HV?]L5Z4\MM.S8L7!##=Y:HS];WTB++^NI3J42GL
  882. XM("/:*_'DU*Q.GT*=FB0\3IU$8?I.D7DEI%ISJVC>.^B31(M.'2HU*12QD32S!
  883. XMZ>BYW62IJ4JM6J2*Q:=:0A@O+8YY"5\38C>WQ'K<R>UI*&OW;?KE?/:-!F4Z=
  884. XMY7[I;DGV)%]_VC4F9A_1ON30=6RG0?+P[?)#OW6)UL=T!-RIR2GJ9GW1BUZ)>
  885. XMH8S6,9X3WS0,Z.-ZTP^RZ52B3Z<X#_""<::E!K%L;[4<ZW%UX>:B!9PV=;L%0
  886. XM863]E>Y8.+[99G<LON98XTI/0B@'8?UFR\3ZW\36CB_OT`)N3%VT"KP&.?3)O
  887. XMGDO.M-"R9YH<<!+2[54RJ1LB5&T\K=XRS"C)\C)KH.!A7=RGK]!6LQD_2@LXL
  888. XM91C6'JHTF?V1F(OTSUEL/>4V*U@56E4+:1NOX%2(-4@KRII9X;F[QA,F-<,8#
  889. XM2OC<1SY]MPRC;PF+?C?FU=UNQKMPGV24SP\IIY0M/0[U`HRVGRS*1NCZC@!'1
  890. XM`X\CM#TQGL=RG'9^9Z^(3@G#'+GGB"$8I=G2D4JYCSEA2I?*;03;QN\1OVJ+Q
  891. XMKL7"W>%<71ZI]XXRA?9Q5^4;9$\0K&?2E=CF<AN%=GNOE#?+DSI/I@`X'2)ZC
  892. XM.ZW*E`GR4O<$U7OEBOE/0)A'X6[,ZWW!/]FM,+N"-&D"Z'#/G`OP=,PNP%2[$
  893. XMX"^RAWKGRT<],2_0FRP.S8EBB;%WY/<^6143]QT)20:>./X^4RGCPCQ,^`-0R
  894. XM2P,$"@````8`H[L5#PB:CMC4!```Z`D```D```!41T543E5-+D,-`@$2(Q05!
  895. XM-C=HB9K;/`4&$A-$Q?:6]U^J5!$<+=A0(4B5"1,$%\WYT+=P\\I->Q8M79`HY
  896. XMQZ8$&3,G3IDL01J56Y8,\4X[%\UY/$@0P3LH6[8@I:S/.<:[[-RR<NV8+V48;
  897. XM;%BJ:/PWR+EOS=*]&X99@PSKENS+MW)!DGT[MF[;LF[IAJ6;]JU;$."GO=F69
  898. XM#3N'W<UT/]RZ8MFF'?-?DNG>=*QNL7726W=S5\[:;5@V7;<;X]UR[-LVR%KN>
  899. XMV#3/&V2=_PTB>K/-ZT(?9YJV;5HZTRXG;4WWC?BPWVW?3&NS>5DL'??VC>)ZW
  900. XM8!\-LRXK-@\P>5;.^*9#M6`'-W;+A?NF6<\QUG#EOK6;EDSYTT7C5`VK+)<_[
  901. XM/@9*U/[JN\>6*2O;ADWSUO#Z6#K_S/U!CKG?;L]TG[\<8^3+9?./F9EQ:Q=S4
  902. XM*B15V#.[T2R]8KWF_:HUB"E-[,QS5YMQ-N.]-LVTWZ&KT0`3T7J.FTO=]#J=3
  903. XM(\;:)UM'GRR+%TZ9MK[:-8@A#U]EW6WG$+/CA7U0F#`E3J:!-W+S*]S>WRTVM
  904. XMS?BZ%TRWF>/MAGO/(;/Y3SCPJZW7>=9R@@DU2Q>O"]<<9]FHPA?$*W@S$-XO-
  905. XMFEN=FVE2H5*#2LU"V%W5Z5"J29\ZJ1Y`.QTYU=W5I6+L(;D`7T^,YNNJ\JZIP
  906. XM&L[JJC57]])3RVT[-BQ<$$2\W#S[F?Q>6B1:7WTJE>@49P1ZA0>%QC9;U^V8#
  907. XM8CEG/CDUJ].G4*<FD8\+6J/@?:>PK[!406H5S7O'?))HT:E#I2:%@C<2;#8=;
  908. XM*+7;.6[3=@:WZY;98OB;%3F/8NV3!1>S90PGM!GGMM_3U#[IJ'%>E^3&4=6\+
  909. XM[]#A8IX7]5K=IG/9JW8QH#G^?>?U!771M^=]AG96N0D2I@NCV9E\Q/6Z?=?9%
  910. XM[0)7@UF#VV]=HO4Q'<'KPNRBKHJ>]$*ZFTXE^G2*\V"^[5TFL8:\\8)`/W4M!
  911. XMQWJ8J31CV6***[K=@I"R_DIW+!S0:+,[6E]5*,.J*&)!6+_9,I/V-Y.YX[,Z]
  912. XM^(!S4Q>M`J]!#GURI/(S+:0IVY.(;I"<2=UX59;^M'K++*-FR\L$'N&=='&?S
  913. XMOE+F9C-^M1:&G&$::XG<9/:':D[6/X>U]13,J&!E:E4MI&V\BJQ*K<5:D7%E=
  914. XM!>#L&D^8U$QK*.%S'_GTW3*M?K=THJ<;\^IN-R,>UP491O/4>J+V0E^5>G&Q7
  915. XMUA[MW<4QLB@;IRN]4#).<Q536UY-M8OOW`SI)0C,^YS,J_#Q#D,MIY9A^F,$.
  916. XM>8PVR70QHF#.$L<R9@\''X0Q8<2G<F6B#^;6)VAXL2A1,Q>#C<6W("-5\SO,]
  917. XMHLT(98;&#[<<IYT%(Z)'G$!9'X"#<TP*TI`:#;\G_*#-<E9,L[BR[ZBNSFNQW
  918. XM<)P+W$+R3$>90ONXJ_(-LB>(QF32U=P6,QJ%=GNOE#?+DSI/IACH'2)Z.ZW*+
  919. XME`GR`GJ%UG!7KIC_!(YZ%.[&O-X7_)/="K,K2),F@`[WS+D`3\?L`DP)9?R5E
  920. XM>BC0?W+D"?2JYB[/B6)7*N^X[WVNJM2ONZ(<];YA<`^GV;H\"0,86\MT']0;Y
  921. XM1WG[C^&.CS%,]R$>2!:&6X%2E=UTIF6*9CAZ6F6//+'JV)4]HLQ;#&W3"*2$T
  922. XM>5N*./X^?%+&Q5M(3!]02P,$"@`&``8`KKL5#[V/"47Y"0``PQD```D```!43
  923. XM1T544U12+D-A"GL'!AL&NPQ+`PD'"PD+"0<6!P@&!08'!@4V!Q87"PH&"`H+<
  924. XM!085!`87!0H(!085!@HE!@@'&`H'"@@+!PL$)00E!`H&!`44!0DT!P87"1HK1
  925. XM_/S\^_O[#`LL"RP+/`LL*ZP,`2(C%!4V-VB)FML\!082(Q3E]I;W,6/%$CA*G
  926. XM4%3\8\6-*W#5N(SV4KCMJE:67]@H^)/HZ3GY/V6[ZS_E6BM.)___/S[/W[%ZU
  927. XMU]^YUWN+<-<IC\,>;U6N]:][;8E_MOL_1SWFOOWZWIC+][$\R[4?'^AO]WD_J
  928. XM*_:OZ?S2W#ROAM^U?JW+=C5GJ4?GN;=U/YXS_Q_[,6WLY?*]-:[G_/-Z__TX:
  929. XMP^717_I7^5I,_R8U+SO1F__+>_VJA<NW6-V_[QEG`^W*O=W-<(#7ZO8<"\H4;
  930. XM^XC2O)7V]5[S?VG;(UQUI;]4GN4_Y\E_:8`V'_MR-6[EM?Q<WAM^-Q;_A^O_V
  931. XM1N4YJCJ?_VTP]-OI?V%JN>MY_[<J0GM>*A:[_"1X_6/_ICW1&N[O-<X?[B=<-
  932. XMIC_^6BJ`U^U>2S?UI]^+0]5JUV?ZZQV^I-Q?RQGN&_2-\[G**^)SE6$^:$UXU
  933. XM$U\O\(_\^5>NO3S-Z[S<W^W7KN6XUQ6IP_>6GDU[S^>S"5ZI6O.\$Z%QPAK1P
  934. XMA)A%Q47%P:VH.*;&\W]_D-H9=T+[*8F]46O0[:F\`,M2O1?Y&C-^AU\VCZI#L
  935. XM]JC^QE/2G=2VO?R7>RN;_.]0;^'X+O^'^8;V(W<[P[;H*=1-=-H.K==-:@^$5
  936. XM3NGZ[<>2OQ9>]7SR^BF@.;GJP4CC)!;/&XP\3X=O>]09)#$.BVKY;>M;;Y`@4
  937. XM=4A<];"(XN?3P'FOQ3ZWFL5^<Z[5;K-Z^=`/2/!3C_`<6`_*(Y<M[6!QM7O_U
  938. XMAU;_GPC/=3[-4_W=MZ=ZYWF,4]#_'?XAS*7#5XUFJ>WGN<?K#+N\H\D>D;#2G
  939. XMZ]Q2N\X[FN<Y;HB$2%I(0QK2D&+<H866%BZ<P,MQ1XZ<%A\?#U"T<A]_G1O4$
  940. XMX?6*@!G6#:_F_O)O:*'E_Q`)$>,Y<F2C\'F:/<WY.NM*0\"T#4;,[UR'-1?\A
  941. XMY\J<3?S6KFU=K!_5!]E_F;?C/VYMX%ZM![SSG5^W9[T;NY0?KX.3?JD6F$[E^
  942. XMVNH6OKT.%F4+>??VY59P?3^-"O2MDJ;W/V:[;]R]C@?46Z(7]^RVCO125\>BO
  943. XM(X$X2MC:&<W[;MS`;IOA/);&L^W@&^CR"T-XDAU#,1KT+3^E$M:WV3O7O6\,$
  944. XM;KVW0&9G#.\GWVD>6T*C+_$[\<EZAVR^C\;]@\'X-^WZ\KUZWQ^W>MZLE^E8=
  945. XM8^?F3@I\C\`JOE?B_)8]N?2"CWTK/Q#=YM-(6,]GK?!WJ0+SG/VN'A/"MD^_4
  946. XM5X\KI*J=<S^J6*4+XO\`=L&L$HY9_)J^X_9H,``9C.XQW-G9!>:VZIZR'^D3J
  947. XM20B_C.YI8?T?&^Z-_7\A[L$CE>.&<)/K=)++=6J_E)Z&V*%J8B=98J>6N_QK.
  948. XM-\T6.^P0.\D1.SWN^/,Z[I@(+]S9[+*9G62:G8+GVZ7L31^%[/A"=C(A.P4RY
  949. XM)QETO5ZWNDI\J_?9FI>]_18.H[1^5:]%ZQ)>]A*>Z@O\PGT3C&.=\AYI;W$P'
  950. XMN8[&.=?O'Q+K4K_VO$I8)D<ZAZ+</,[UN_:3V\-NF^/%^"@]7+A^AP?QVZALH
  951. XM+.\-%Z[)OO+.M_[TQXJX-$I.[L$H;MR8L7Z+R,1=;>'QA&4%,4A2^TT<=O^H'
  952. XM.WP!DU/O*H)=%],B#_@Z.)SLGU,^I_9P*AOW/I[G=HY<$;1W>FG"O.%'R/DV[
  953. XM=KKS:[6Q"]QN)UREOT>X-8*-[O76TWY,K7T\>-Q!35"UEZ_R=_PMH'PL(B^KR
  954. XM:;>Y1G0B[U;+_?$QA.HT;D<SW4OL]_/T3M]SO8&N+7CUE;)K=P63LAP:+6C'+
  955. XM93Y2U>.U.*&YQ(MT1<[N)R:/T&O?1#)92P-+I1$G#1F"=-_WH]S-4C#BN-D2X
  956. XMP\T4%@0CJ>-U8._ZC?*PW,W23_O`*22WX/(+"VD>Q+M9RH\=+79!P0]EFN52*
  957. XM\/U_W&8I[+#-?EQZ_4*#'7;8/PWLUR/EAOI#'G*5E>O"<04Z3T(%O+5?O"O54
  958. XMH4%^[+384'=<#<^%]D\PDKL&O7_[U3['>*=<VZ]#=>KP@Y[NS'`%/2+HN05L-
  959. XMT&N]G=ZX+RE!`]]^?_%*A(5,\S_2@_*:V%Z5)%`K"[<-G$+J370D`ERVD@#M_
  960. XM&05,`I?_YY*P+\QR>&OALX6??&]!(;7F.UVL/<S83S.<FL%JGMAZ\RQ$*@;T:
  961. XM7L*>P9X(SSG?Q/RZ2[8.E;@%_>=2_>&]8HB8U!A$I.?>0&7[J2VTGH*M0`+6B
  962. XM5^O@J5>QK%$7VWY-4Q.CBA1M6;I"SEW,;0U*VJ>^&PF4;WT_X-DE?>KWNA`_8
  963. XM^\$KJ4\W'X`YOK#->T%9FTS[V:I$;O>Y6F%=*_NIK9E#K@QG-,XJ8Q692MJ`W
  964. XM1TM#VI#LPQU=I)P-2<5J:;:6\?.N+9(V-+5ZHT+0Y3J"YQ[!,OX<\7'2&XW,<
  965. XMH4.U8.=J^)I4J4VPLTJ%'9)*D2=XGHRZO5:GVQ^DA&9Z,E*0K,O8]4BCC*@%=
  966. XM=Z1%FY>;,D(C':<_&=ZU9SX7\I/0";D!DL3X<%J[JT['PP+5DQ%@%LL^+Y!=S
  967. XME4CD+"W?Y2;XCR>J2!W&\/&9KV"GB7`A4,>5!XEB$F@=X3`HO]4W*9;):"X(P
  968. XM8BXA,T$U2OE(OWKHF,@](DNN8Y(&@5ENEVU,"F9!<UF)QF4I0UGI];@;BMG8S
  969. XM(1S"L:-Y6$IK1OO:P+;.#SMLJZ]E21,A&XS<SL&`[:RV#<W^6%SO#_G/S<XPH
  970. XM.UL8ZG>L3IC,=R36(7Q,I-6%>+6?:O4:C4!SG,;4!R-5$Y/ZJ":@(#I^+[6OX
  971. XM&EY]?#@U#5C.5L8\_^)_9,XDG^/X==B9P"<IS+?#""F7\EO0UY'O[+(\37$^G
  972. XMCL5@ITJVPTG'XM!M;47($HY`KH/!!EC]A<&F&E3UHEN`A0N)EHOQ$2G7UQ,&K
  973. XMA1=B$=&^EP]F&(O>>]NY7$+)+*3N;+M[M3DU=]-`Q<]#V,73=2Y#B@A4SB"G6
  974. XM!D*V.F9YP1)62Z[F,/D-C6OIG[38X8;@/*;TE/#8.(T-CM4R1LDN8S'#<)PF'
  975. XM@+B&8S8I`BW"1\*=K030'"<FCNIKHC`,PR'*Q1@.>.,-T4G[V*[&>948;89PM
  976. XMLQ;"M2.$CRV$MR6$ES@T_L%(74#A`E+E@A8L%HCH560+4)^/1<[!&Q5'!_/P)
  977. XMV(,/BN;*^5ZK7<;=(2B"V-;<`@SEI;K@_`)#`0713ONYHJZ@TUI(M*@\6O,/@
  978. XM":(XE3W@\6"D_\,.6UB@B&](A$3:SPY&&I<02$.8IS]V;FQ*`6;O!J@7<F*_#
  979. XMQ,7@J]%:V(#C49#2?*^9<QCB,5%[M`X)SP>/;6`^P3H2Z$S*A[SL'0E02P,$8
  980. XM"@`&``8`H#2C$.?S,OL/"0``$!@```<```!41T]43RY#80I[!P8;!KL,2P,);
  981. XM!PL)"PD'%@<(!@4&!P8%-@<6%PL*!@@*"P4&%00&%P4*"`4&%08*)08(!Q@*$
  982. XM!PH("P<+!"4$)00*!@0%%`4)-`<&%PD:*_S\_/O[^PP++`LL"SP++"NL#`$B0
  983. XM(Q05-C=HB9K;/`4&$B,4Y?:6]S%CQ1(X2E!4_&/%C2MPU;B,]E*X[:I6EE_8'
  984. XM*/B3Z.DY^3]EN^L_Y5HK3B?__S\^S]^Q>M??N==[BW#7*8_#'F]5KO6O>VV)E
  985. XM?[;[/T<]YK[]^MZ8R_>Q/,NU'Q_H;_=Y/ROVK^G\TMP\KX;?M7ZMRW8U9ZE'7
  986. XMY[FW=3^>,_\?^S%M[.7RO36NY_SS>O_].,/ET5_Z5_E:3/\F-2\[T9O_RWO]T
  987. XMJH7+MUC=O^\99P/MRKW=S7"`U^KV'`O*%/N(TKR5]O5>\W]IVR-<=:6_5)[EU
  988. XM/^?)?VF`-A_[<C5NY;7\7-X;?C<6_X?K_T;E.:HZG_]M,/3;Z7]A:KGK>?^WZ
  989. XM*D)[7BH6N_PD>/UC_Z8]T1KN[S7.'^XG7*8__EHJ@-?M7DLW]:??BT/5:M=G&
  990. XM^NL=OJ3<7\L9[AOTC?.YRBOB<Y5A/FA->!-?+_"/_/E7KKT\S>N\W-_MUZ[E]
  991. XMN-<5J</WEIY->\_GLPE>J5KSO!.A<<(:T8281<5%Q<&MJ#BFQO-_?Y#:&7="N
  992. XM^RF)O5%KT.VIO`#+4MU5^L_0U>@V9M4<<-?K9OUZ'=7/DF7XM6TO_P;!?TKH!
  993. XM4\++_V&^H?W(W<ZPK7IZ;V6I3W3:#JW736H/A$[Y^NW'TG\*&^7\^KTNC?UT%
  994. XM>,[KN`N03AKE8*3Q>.7?Z0IR)-@;C*Q/AV][U!DD,0_KW,N\':OOP.1#_L;.%
  995. XM%PN]+,AYHVPP@X^ISF!]>8]P8UXX/LF>RX?.A#],][BL0.,\B[%@;&T_SSW>.
  996. XM_[E#-M\'2ZB*/VY.]J^C-./$MZIZ3/Z_)>/W1GIJ_L%O/-^E\VG<9,M3DHV7=
  997. XMMNM1]%_GYKI<"Y@7K5:C9Y\7W==RCH8RCAN,ZW')SFIKXRK[^D=XSOG^A79_.
  998. XMW!X-!BSEN,$X!V(GW#\8U[^8-WFLWUJ[[I,]M+Y43+HY5M=LJP.=;77-L[HV)
  999. XM/*YAAP>YX#UL]0HQPTPI_,.[-K"-A\2I3-\@+Y5W<S74G:QT#^Y;WX'<_CA8%
  1000. XM[UR*(U'Q_:X=BM+5WWM`\NC'Q.5SRV'_'$)GF^>[7.G>XPZ_4#[++GVSY?L1R
  1001. XMX=XTW>HW"2M\N+A7C>NVG5EZK.,\UF*>5K<;N-Z@G1X.35G:8B'AH:[^7V;7;
  1002. XMZTB'")<G?]UXG(G_2I9(K1<[2WFU\8(<76@0HVF6*[FN=*U=V[K\IJ3S77OFZ
  1003. XM<RDPOEQQ$2HK;52/9>4*C/L!KUA!\*?7T;"REK<M>0W&<:M7!+L/63UA<LS%3
  1004. XMN_?HD>*XT:[-_Z<F1C7WZ'#GLK+0VG%]1/3+RL7E74;OUGC\OUY2L+BAY:=.O
  1005. XMEI],UO'WM3&;$[M?_L;K+\2U"IK1>8.QBG\P3LW_(?_!>.@_)<O#[?.O/&;>[
  1006. XMJDG!>Y6W#J?YQ[,9.U29?JET'ROB.*:B3=/3<S-SLS^%>OB;,[2*;;BQSYAA*
  1007. XMYN@0FH\$DZ8K0Y2;N%5-+?=T(W'B^(5M]3**\DNXV3J1YCI#-%F/=\99ZE[O)
  1008. XM0]"R:+S'?)XZNL92J'_:SPU&@!G'6L3?[URCVZN"GKP_S<X#GDJ9'#?90/\^M
  1009. XM3X-ZGY7K9:[5/$T.)A[Y.=?O'Q+K4K_VO$I8)D<RKB@/RQ>(X[_)X]#'G:AML
  1010. XM#+=%Q2NTT@9_=*SK"$9QX\:,]0>Z^>98?R>U-EVB:)36TG[YO``+WS'C[7<G?
  1011. XM"5V=>EI'I;2&$SON9!;(>XVD,0TU&,&]R4_XJSR7Y?IRT^_3J37ZFI;-_1`>D
  1012. XM7G*N#_7KB.(U.]NZRE8[#4XR1XJ1%:K;A=,3X*F4!DMJOXG#[A]UAR]<X-2[1
  1013. XMJF<52R]D,6I<7EGQBK8-IK19;\OFAA(V&_U[V^S,H4HES^^Y,GLZ.*Y%5?H*I
  1014. XMZ:UV'*3P/*B#)-5']Y8Z,H7$C5(OYM8CQKM5R:52US:`-H58JMO%K=3!]G811
  1015. XMB]HW"7<#72)7KE-$SP;EY`$,6WPJEW@U!;M!6RU=HO:IW#S$+H;;-&X;T6TXO
  1016. XMM6C[Y#S.4]6F<9-HBMIFE\UV`[LB=EQ_7S6/V^*-5UPI"RQRJJ:&D1:A/*5X^
  1017. XMY9(I?>:7@;&7";R,5)<1(6CZQ;^=,>3_:6F_E]CO%WR6'U?8=6&<+KUTG()@=
  1018. XM!'4'O7_+]#Z/:3SM"S]QR5QKSAXOEY_<4$T^]8G*/5&Y<,QQ67R#N]'X:)U?I
  1019. XMR.O]0VDQW&@"<XT=C&.[W'$EO88=-M^7^6&''8RHKDHC<:52"PMPS@[?X(5VI
  1020. XMV'I4<+8>%Q4'/5P?&_1:;Z<W[COPH?E\^9`^+N'JZJ$=$YU3!:UP*;8"4#:I7
  1021. XM;F,:`0@Z46_QF_?"9FWN?<"8;/-*!$*='EX;*V>%L,R^2M;<%\6KH0V9+_.R;
  1022. XM/6@1XSG57;5E>/]&TT?R[7JP#K>"H^0R2XWM;DXU5!Y;GU(,0O1L=X&4*-=]H
  1023. XM[GBB.40C%06Q!I[I1&KH?F\8-9A+]X8;KQH=&\V`T49\K^8*3$B'"UD@35W<P
  1024. XM/]M.N$I_CP#GFJ^@B1[=NE%A4LO6R/_4%-Y@#'4>N5#_L>NQHXFX-G6%E?\2&
  1025. XMKB05\5\8X2'@WF3P]^4'093.?:E9%+(5O%7HF@HK/"$8B1^1(WZ@('G.H3X``
  1026. XMRJ8^8+.I#X#R8DL?T9`^7.\@PX8:C.\P-=][K;:J&$QYB+`H#Y?DLA('%SS(8
  1027. XM3?!@7'E^3KV#O/0N`_<H?J=,/.L=9##6NXP8="Q?,5!6GT@>')#152'$RV#'`
  1028. XM0#`IN*L#C6\*/+MWN83Z02Z45BA>VKM0UPJY%92W@1EHW!6,_K'4Z*SFQPG&Z
  1029. XM]3CYRF90/(<==J@%/`8-N::D6N[G;6VQK+30;Z).=,\YNH?*S?$]0/,>(IOW+
  1030. XMD-F\1P_R>!\<G5&/)#OXL,D.\H<-K%.Z0RN$^#-:J'82Z@_KLQ75YUKG>-AF`
  1031. XM&O'2B'\1)2W:AQ8+B0N691HR5&.5B2^*0TZ`#@_;0HE\*O2A<$-$C[',A$>BQ
  1032. XM--A@[-E(C^]TN*_J4$L#!`H````&`$A.#`U_;Z9W<P@``#X5```'````5%!5V
  1033. XM5%,N0PT"`1(C%!4V-VB)FML\!082$T3%]I;W7ZI4$1PMV%`A2)4)$P07S?G0[
  1034. XMMW#SRDU[%BU=D"C'I@09,R=.F2Q!&I5;E@SQ3CL7S7D\2!#!.RA;MB"EK,\Y!
  1035. XMQKOLW+)R[9@O91AL6*IH_#?(N6_-TKT;AEF##.N6[,NW<D&2?3NV;MNR;NF&V
  1036. XMI9OVK5L0X*>]V98-.X?=S70_W+IBV:8=\U^2Z=YTK&ZQ==);=W-7SMIM6#9=.
  1037. XMMQOCW7+LVS;(6N[8-,\;9)W_#2)ZL\WK0A]GFK9M6CK3+B=M3?>-^+#?;=],Y
  1038. XM:[-Y62P=]_:-XGI@'PVS+BLV#S!Y5L[XID.U8`<W=LN%^Z99SS'6<.6^M9N6\
  1039. XM3/G31>-4#:LLES\^!DK4_NJ[QY8I*]N&3?/6\/I8.O_,_4&.N=]NSW2?OQQCT
  1040. XMY,ME\X^9F7%K%W,J)%78,[O1++UBO>;]JC6(*4WLS'-7FW$VX[TVS;3?H:O1'
  1041. XM`!/1>HZ;2]WT.ITCQMHG6T>?+(L73IFVOMHUB"$/7V7=;><0L^.%?5"8,"5.]
  1042. XMIH$W<O,KW-[?+3;-^+H73+>9X^V&>\\AL_E/./"KK==YUG*""35+%Z\+UQQGF
  1043. XMV:C"%\0K>#,0WB^:6YV;:5*A4H-*S4+87=7I4*I)GSJI'D`[':MK\F/L?%MG+
  1044. XM>8(P?!RQ^FQ'-9PT3WBAH2J_IYHL&>S#S][WTB+.^NI3J42G+".JW&W'S"_QS
  1045. XMY-2L3I]"G9HD/*Y=7&;#91G6K-DQ?FX6\T::57KEI+ISJ\C>.YJ;Y@]"O'I.:
  1046. XMHE31WE&FW`&.)%ITZE"I2:%$A?RTSE0**3&G3L,[MH=!=H/0M][>]31;U^T82
  1047. XMQK1J45C6W_Q8BM-O[X`/(!>1-1W8#23CW2Q.BT&K"A]2%KF3<A)[D'$7PSQ(O
  1048. XMWF:]WX!^WWM.,*M/P+[=E':,K\C9U96O[T1.`2M>C\K8T#J,]XENZ;Z\KL!)D
  1049. XM.9)KPX*P0S9J<L;K<<R$#NV5.ET&LY[4C.DJ[1BANP[2VS;='%&1VI.=9L/KN
  1050. XMXY**5H99YLI\95VHW"SZVQN;*D@]P?JM"R=1KQE`OPVEC^\9;5@"Q]QUU*<3T
  1051. XM;LF:=]VJLBL/^4+]QBHTM0_SY!U439T)V'.0/7T<5^FWJ+5;51@#8_5*2;&VX
  1052. XM=1DGG>P<VI(JT(>3^1Q95?>-TP/(0KT@BGJRI9&A#S/U'$L=4`9JVY6Q"[!"$
  1053. XMTBK\-''ZW6X8.VS.!RD2ZE"1+F9!V&*S,(\,0CSY9NI%:Q'X;4NB\"*^B28C%
  1054. XM'TUBM)5IBF48KM27*WX98LC_B\BWW!?':U*Z#O1^.?<L'51M%ZBOPVJA,%L*1
  1055. XMS6D3)LP49*2HM]"J1TJ3)-**G<9WW8[D+.-),1;/EM\-R[O=,DG&76\Z]8WP)
  1056. XM)<8,`IF=-`DV^@6AXA,V\:1-L:A86JJCRC.SKEDSJDJ/,%N"4,,FJWS?:'U49
  1057. XMMWQMAHY=!JUN.I7HDZ\79[7/032I=W1QV@IY71&IXZIJUAZ#);T#OA<)<ZP=(
  1058. XM05J4D)36<QQ6CNEX(7F?N[4+ZQODGK0WRH?),@$]3<7A'8TB4+%7Y1R&F5_GK
  1059. XMF&J?,L94\.T]Z#7@P\><.7,&?!#>K`$?,2?,'.]!&#-&./B;-,`!+^BF`1_1!
  1060. XMIDT;\($W%&R-N8!#Y<%'F`O8,^##QI`:N#;@P^*<84?@QY@:>LT:\8&+(SXLH
  1061. XMS1CQ@2^31GQ8&8P+7!KCH#&AX(,P!U[(?7?\5K32TYI9&'`1JXM6<<P&.?1)>
  1062. XMSRE9IX66/3.J><84])OGYBX@?JE"!%HVY-4JU4E5$D-;A9+*L97H99I;.=&8X
  1063. XMF["+'P%E*7G(VT4SNL@MER1*(PYW'K%F[B(QR:RJHTR#DTQA*/=.!!"$)^PV)
  1064. XMF#Q,:C,I+\0W71??R:!C)L(Z\B#6"BEFUKX>,R,OB[J!<<9<!R6KIM**V'IN[
  1065. XML]GX3@=(!,>'GN027<["-X/59BXUTZ#H"(GKE283-#FEQ#><?78V*[.)C4.&`
  1066. XM8&>!3Z%M($\D!1=>&<,AE6G-9!EGB&M#DRG0@DW1S.0S]YB@YS`H'SY^!M5'.
  1067. XM8DG694T7S4/'O8/BW9IQ,V_7357U(%]18[,MHY=@874>D8)S@A4)%SI;GVT4.
  1068. XM89"Y#G9)0O:1&#C\'6SA7%-A4)]CP4Y%BX.DUG7<NFD4V-$NSFI">7PV=?,H(
  1069. XM"`=6@\,I.*0#!V/QA?6$8^>0N#B'IMVH+EB33I%<F<8D&1(,FUV39@BPD6[WU
  1070. XM^'GMM"I3IB#Y\IDZG/,4%#<TV/5F[GBO^SBKTMQUFPF)$LY$5A>W=W"C@.U;%
  1071. XMM:2O7/%?V0_S6F4/4/T.Z<@K>X*`GR!;@CP)\X35F;#/\+F'(SNLEB==GJA&V
  1072. XMC`MG;'P$C2FO$Y1#:E_G<$W9<6$'^P_-F_>16@R-53$T3FTJ")362/JCF^B?=
  1073. XM(;"$.1]J8%W;7XRBPGA@_Q(X`DZ*<)4O8IJ2?0RA_8>QA$R#@G:-^)]T8AM.(
  1074. XM,C&XS7)HD"J*6!N<$9HB;"5#`RQ6V&7G)`9X%':UBC,1@Z)&<5F4?]LL^)0L5
  1075. XM6`S4,S/N;CX4\$2"2B!-D:D+3P##G&C5HZ!%N+JQX,%L$#F)J-F86H"[H=MM*
  1076. XMBP<Z,)'215QZ9<`3::F1Y2#8\#/K,=F2Z=NW:SA,S3S&P80C#+.0;"%>B@YY(
  1077. XM,O:(^_/3SC<;E+7WX`]]V\9-0\$PH(O#H81[',%`\E%(Z$/CB%)(/1':QX%#X
  1078. XMF10LQ/U"2&Y"(`349@,'LS&``&PY3?B<D&+?[Z;LG+LC.R3(Z3&;$*FQE:T=7
  1079. XMQJRIZ6$X&J0/Z@=ITD3E"`NF1GD*5"6^K-0H*#A/^1*$<W'M*5/(*B%NL'`X$
  1080. XMG-JONTQ"*.0#6,M()2IN=7_B]0NTQ79#^`YRQWCN@^%GRQ;-E2$44&:`5;N(C
  1081. XMW`=7,`J.!E!+`P0*````!@#O67X9CF*MBXP!``#>`0``"P```$U!2T5'0T,N1
  1082. XM3$E"#0(!$B,4%38W:(F:VSP%!A(31,7VEO='@IPZ=.A4D$G)Z@0)%.7(E$W#=
  1083. XMKBU[!'J[9)M6+,B9+F."S"GSI0SA#3-G0P7HVVE9NFC#CET+LLWXFTW+MBQ(A
  1084. XMLV_E@C0JMRP9Y)UV+EJ0=,O*;6,_P[J!WD25'H4*%63+EB"7EK6;UHVX;ON6]
  1085. XM[=JW=^>N37-LPBMXA6N0('N"/#MVC/(;91KTZ)3F;\%\YO)IG6I--ZS<,^V:-
  1086. XM)4BX=>F"^/^[:?(UR+QOL`_<Y6SOM&7GI&^J1:4V99I42/Y1'[\<ZS),,$V%!
  1087. XM>8:%"U)._*;3O]:W"_9G^I7I4Z%*BPZEHNX)Z7![6;=T7;Y)[F;9ACVCO$$L=
  1088. XM=[=UVU0_%_B=P+G/I2N'O+^E^^;XD-?3GX,\P!M=33;MV33%THSZLTF_KMSEI
  1089. XMU*I&C2;%6G1*E-IE63QE+FUW.:;XQ:HAWF'GMAFOUNZW.H:=)(HD=TH0Q4=DI
  1090. XM2]XMWY)4\7[$/^:\9:^R9$H=ZT<4/L7V"E(AN4'&!2&>!!$>AHX-4$L#!`H``
  1091. XM```&`%B<51F&!`EO>@$``+\!```+````34%+14U30RY,24(-`@$2(Q05-C=HY
  1092. XMB9K;/`4&$A-$Q?:6]T<FG#ITZ%202<GJ!`D4Y<B43<.N+6LV+=NR+MFF%9MPJ
  1093. XMILN8"7/"?"E3YDN8,A6@;Z=EZ:(-.W8MR#;C)4BS;^6"-"JW+!GDG78N6I!T4
  1094. XMR\IM4_\@6[8$Z01[D6^W()N695MW+)K\K2!<)^P)<BQ;D"_'*FSZE&A1)LW/5
  1095. XMA'H;91KTZ!3E?QF4)`KKGD)Y/YTS_&&&]Y'CUPHW!O&^"N/_1X*DPNUCP\(%J
  1096. XM*?=M7;IIW9:=ZU(AU:)2FS)-*A1D#WQ,[EA_JDR_,GTJ5&G1H52JZIX)Z9ZA0
  1097. XMN\NZI>OR37(WRS;L&>4-8KF[K=NF^KDJ3-#<Y]*5,][?TGUS?,@;CKF>@SR^*
  1098. XM!U=--NW9-,/23/JS03]S=SFUJE&C2;$6G7+G=ED6SY++VEV.*7ZQ:HAWV+EMZ
  1099. XMPN>8YJW#?VU5?15657QNF5@W^I:DBO8C_C'EA[V0DBEUJ!_?^!3ZJTGQG<!26
  1100. XMKP01'G&G0H502P,$"@````8`(!AA&F^,C>(B"P``01H```L```!415)-0T%0O
  1101. XM+DQ)0@\`$@,D%38G.#EJ>TR=;A\)!@$3-.7VEO?A-QC>@O`"GG'`"P$FI'NVB
  1102. XM+-VR;NFZ'`L>4?,`1Q]X)I$C/@#N3:>"'.H6<0+D/S-EFE3HT*(E$3]8]J=,W
  1103. XMB3H-VK3H5!?3+A>Q@>@[PV3[5!VRA@XXU.I-RS60-TCTJ-2G5:$RI'JT*-6BY
  1104. XM3JE^(1XK58)#GQ(M6O`KT:!4@Q(@U@+/.YU2_5>A4Z<.&':+F.(>*4R!`PD&-
  1105. XM_):L,@$6-!AP6[*X]<&#`1$DR]4C3!CPH&8$0?[_P/\$_PNTR@G*/C"@0($!$
  1106. XMZ@<:L&A`X(P5K/]U+EVY;((\0+:T&71YLVG=DOU"W/,`+S/^L>UFNNQLY2#[Q
  1107. XMV;=TQZ(-@RQN5CO:.I;MV[EE_NFQ;>$(N>C?PCG:#QQ3T-.$[>#OOWZY'Z[8W
  1108. XMNF8!ACEK26YCT><%^!62ELRLO_R)X)/[MPTAVH1"PFH>/"2ADZYO7')`@/(12
  1109. XM$X!>=,#HH/CT@"CH5<X%`2(':%7A3=`TJ)SS51>S'\R>H%7B7@V:-/;G'871I
  1110. XM%P]?;!6AR5'(FTQL`4M+A:JI7@<3)YC8*/_$5OTOA%YW"[LJ/H@YT_)T"^(:/
  1111. XM^O5F<?__OS[L?[L,A%<@/`+A#<R3"!<"I]O">7_"\RL:^X8FN!C>T@H8[W^%,
  1112. XM=&WC8OOU'-AIW``)0D&'5H#T=3][75R^Z[*W.`/P`7K`"AX?5NMCRATP/3ZLU
  1113. XM?#$RK;2NP/5P`>=_29<!\5SI'AC[OP%UUN6(&\&]&YSB%?9D3C?)F_>?GC!`H
  1114. XMW`JFAK5J+]M?!+4]I%R?\/BBC*R;(9I*,^1,X)G7!\7]0&C''>%H1-AT7<^X6
  1115. XM,V#K!FS0A7&CP%85V%B8T02NQ'^.K%L`Z],;NMZH`K)F$`1Z_0,^XA3_02>\_
  1116. XM`2=0Q?,WB6,S'\=-UNU@33&)IJN@2/-A0\0-J3CP&MS0#ZXMG'#:UPD=WO.MF
  1117. XM>^CQ">@-F!GK2G5R_@K0.4JK!)LKMIJP>.'.Q0%W;A[']2[.)ODSR6-)]BG)&
  1118. XM.TD^J-6%S5-:/=@<HM6"Q1=V9FX/>^+OC.?5//%;QH.V.I#Y7:L!F:>U:I#YL
  1119. XM%:5G/M*J0.(>(F?B&88=(F?3H&W\FCSZ4IL.#0H5H)QD9FRSO=RV8\/"2?870
  1120. XMO_W8%\Z(9-RW(GNG\RB0@$)C!:^E9MF&/0,H+T;D'*",`!J?$R@`D#8"!=T@Q
  1121. XM4-0HTZ!'!`6@AB-5=0Q`4'R0JU*"X@T$!8!.8=)(M'):#5XCI$7C7[B,9=E38
  1122. XMZ3K0!?X$+1F`KF-@:-;59*AA7^3J)KHT;IT`H=@&M`%>Q^E&82T'$IN4L?.+*
  1123. XM3:IQ97>OBYP8?,T3F%S.:W-\L;=M_&C`NJM`1W"'/,#M/!2'%`#:83JOR.FO>
  1124. XMF9>HO(E+:#QO,.P).3.!?)`>'NZV;AO'_]K#0SS[KX<'>$*G59LP/D#!`Y?&\
  1125. XM^/J#\0&@/0R^IYU+-NW9M'0L'WA>M`".S!9FKU?Y0!_H$[2URD=3J'PP;Y#*O
  1126. XMIQ@9WD`NH9DN<GQ.SY:-\T4-TZM\:'R5#X^O\L'BJWR<`;?S'"'QK>%[T>-&S
  1127. XM_<&:<=NB#K/N@>;Y">GU&8R-%%\OH9'G?]^MO[/WWY@H]`#%V5O1))2'GU9\J
  1128. XM2RFZMO+]81Z'#)<3;,\<V*MYB<JSSGM`Y]EPG;<85P?A\U!'M,_;V><AGMW6F
  1129. XMYP&>8/"6\GD`E4#@J8*7I@62-<+G*;_/`V#24FN#9,N.?3,\P.R,3X2>DWW[R
  1130. XMM>S<,;0'R.!M%>T![DE/RM.$K(&BLWU::T``CTO=6Y1\UN,"O2!/T`Y`.JK4+
  1131. XM`.A,2@WP@0Q*37O2+:"Q5$+#I0VPC43@T.%\JBO`*I+QXJL"A*(\#GHQ],78`
  1132. XMEM8P(D>YMN0">V-$BI0N#<PIZ8W4;*)L-Z%YKV>6<H@H4]26,E'713W"]:R^G
  1133. XM?9'5G.1'XG;J:0(KF879:/:-DB8(DC$%$R1Q;7.2-:2D3R0=\_A6T_9"*F@7(
  1134. XM.-M:T4P=F/XQP"B"A=/=:2Q_`(C)R*DG.]3$3NU]HRW&'BC=+'_%1NVSA(D@1
  1135. XMH:O"P7[]#^0[#7K^ZX%838!A&VYHN/=D'70%*OB0/%)*4D23T!68,7L[-FL89
  1136. XMG4:]I;4YG=2;(WN9%R\F,@XF,IY4&#>?DS!<7V7,7%)G<`*=X04ZPX;KC)>#G
  1137. XMKE`P1',=8-&-8A&:9>A6H=R&=!C[RIRD9^:9W^,-$E!TGV$K]C>ML:S*T-$%A
  1138. XMFKFFU0"`G+$::`6K\5.J3U(#H*):#/4VFQY01K)*2`W=]QE4:KB"9'62&IHK!
  1139. XM@P?0F!VNW+=C7/.Y`'DR7@";/L<Y$UG&'"!_2)O!OYR9D=FAVX*1C)W$LWROF
  1140. XMQ\#%!_!-*@C5N)00(49CG+'V]6*<-T"[]B'-0^IQ`^S]1_`V(.*=048)Q>LH'
  1141. XMO:ONI!CM[<$UC"2@.P36)>E&F.X]RO_AOS;9<,JOWW9Y?#VU:[8[CHOIUVOB]
  1142. XM'+1!*^A2ZT;KM+[<FS_048VC^C97T^GYQ1[03KSAHX__?XOO<1<X,,:ZR3<\[
  1143. XM`=C%%41M%@I9@/G1!-SBZ2H[?G`@WX-)@TO3ZUU)B_.*#SFW%WW@6_;2]+P!Q
  1144. XM;,-`6=[L`A+]:\RHRQ1QGD/<_=R\;5QCO7J`:%^_IUG7UQFG%T7;Q#7C_G0BB
  1145. XM9?-Y9ES+]2O=]#]I__>L1XR2O\5-7G)]SAX_SG_?E<EBBY]G:>`W?.U_E@.,1
  1146. XM'8GQ!(Q]XW__R(S]1/,+C-V,\2:,/;E_%J5]*D'CUCDW!U@<\^?BE(1W)+PBY
  1147. XMX0D)[T?X.\+/$9Z-\&:$!R.\%N&E".]$>"3""Q%>A_`VA&\A?`KA2PC_07@,7
  1148. XMPE,0OH'P"80?^)EX_\[$]15/3WAXPJM;_ESQX83O)KPUX:4)__PS\V,FR8490
  1149. XMK^M@^2WH9PG?JGQ5Q9,2'I3PDH1')!Q2$P\D/!SATYP?YF8YE^2Q"!]%^!["/
  1150. XMWQ!^AG!`3?R$\".$#R%\!^$S",^P\T;0%FI=GSZ%.A5@23+"PY1!K#.(/_7JF
  1151. XML'#KZ+Q>_4^O3C3KH5<'W"#4*ANS5P>HE2)=G>5$'9(3(5X=D1,!Y@*""5^A2
  1152. XMTK$F*P!"AY<V$5&,&:)3%Z<?&-%XGBH44+K8#V85&0*#("HR1#D*!*==UO5Q1
  1153. XM<5'H,)Z@HBE6HT(N'Q`UW-/H=4;3*NLRR#7#FC)'V)HN<+:"YUX9;EV?SB'2`
  1154. XMD$DDR6(!7S/L0H9_A1#A?I),B0C]W?TDZIFT]I,`+YAT*M&D1Y-2*7V`2N+P4
  1155. XM%4/I:[[2!X#Q4<3I8\PSR'R<0^:3@/T:S/G70+'#[$M`I0:F*!@CGL!K8VYH$
  1156. XMYZ22G(V#]:R(F'/2!ISI($T"@*31))3CUF"="8,%R&_<K(*8I(]D&P!Z@\BQ^
  1157. XMOZB5@S00S6C[^9`0#OO&EK^3)MS08"$TT@X2`B4\`I9D)!]++#,)_(HU-('&'
  1158. XM\0&`S63@A1V$3L<5UGTQ4CR@WY1+F)UK71&#T!4VLO%MV\ZUK>G%3A6N=.H_F
  1159. XM:%0#I$T!%H4[O-SMZ)S9\18QU2WL\C4`.!#C]PP0P8$+!MP]3!7%NA/@!VK8\
  1160. XMDA,!9@1HPQD-%$$/)[HWW1!L-!>2FV4;]FS(I``15+!D2,0`4A@T(A:6<+=V*
  1161. XMPV%1X3:0R&')[!95P!X`]Q<,^`!7S"4,<";)"=.P.(D<TRX!^@28XMB5'A@U#
  1162. XM.F2,3`P3R9`@`_0^[;9NVY!F(M\TGX?8?-%\'F+S35.Q^I+K-AGDL`$")N+?I
  1163. XM$WY17#S)Z1%,NQG)`_Q?,`!;7NB/H!4X20!"&"6`/<9H(ZI]*_QE2+P#U-S&7
  1164. XM,$X`?%@'.G-\*^8&ACF`8D(#&%!+`P0*````!@`@&&$:>NLWJ'P!``!W`@``V
  1165. XM!0```$9)3$53#0(!$B,4%38W:(F:VSP%!A(31,7VEO<;*C2:EFW9N2#3N@5)4
  1166. XMMZS<MF/#PG6I-RV<ZA6\6X)\*C?MF>L=EBU(HW++DB'>:>>B&<]!SGU;5^[88
  1167. XM,OQ_M"A5IE)!@@0Y9/B"N\R;-V6"A(FS94R9+7':`-])IQ)->C0I%?#XF#-KN
  1168. XMV@"/IQ+L19V`Q^((WS#`5_>&&;-ESAG@M5&F08^(P\.D>2-8R@#?.&^`UTZK^
  1169. XM-AD:6W.F#?#P4ZE*`8^W63-G#?#(3ZD^!5$4UF9,&T._QM`]`WSC`'^H58(5<
  1170. XM>.2:-&?B*`KGY@Q*EFQ:NFG?P#F;AEU;ULR5/*R;/#<</W?+L6_;PH$^YLTVG
  1171. XMK5BY8;!4VDM^-PVZM.C1(=+.-*D0:P*KJM8QJ"X@EUXMP_E;)*-!FGTK%R11M
  1172. XM)>YWO]Q/SBVU"?X.\A3Q=(-8>W*V^Z;>\@4^^#SV=-,I]A"@])@PG!SV(#9-C
  1173. XM.U;NFSBT6;H@^"V?!X72'V\##AV#'P)\'%\0ACY02P$""P`*````!@":`0P-S
  1174. XMJ*QZ1FH%``#4"@``"``````````!`"``````````1D=%5$Q2+D-02P$""P`*R
  1175. XM````!@"F`0P-M*4E!OP"``!,!0``"0`````````!`"````"0!0``25-$24=)1
  1176. XM5"Y#4$L!`@L`"@````8`(!AA&G"LJ0#N"@``FAD```H````````````@````+
  1177. XMLP@``$Q)0E1%4DU#+D%02P$""P`*``8`!@`%&$$:MIR.V)<+``#"'P``"0``W
  1178. XM```````!`"````#)$P``5$=%5$5.5"Y#4$L!`@L`"@````8`DKL5#Z_;B%XL/
  1179. XM!```_P<```H``````````0`@````AQ\``%1'151&3$%'+D-02P$""P`*````-
  1180. XM!@"CNQ4/")J.V-0$``#H"0``"0`````````!`"````#;(P``5$=%5$Y532Y#6
  1181. XM4$L!`@L`"@`&``8`KKL5#[V/"47Y"0``PQD```D``````````0`@````UB@`L
  1182. XM`%1'15135%(N0U!+`0(+``H`!@`&`*`THQ#G\S+[#PD``!`8```'````````R
  1183. XM``$`(````/8R``!41T]43RY#4$L!`@L`"@````8`2$X,#7]OIG=S"```/A4`(
  1184. XM``<``````````0`@````*CP``%105513+D-02P$""P`*````!@#O67X9CF*M4
  1185. XMBXP!``#>`0``"P`````````!`"````#"1```34%+14=#0RY,24)02P$""P`*,
  1186. XM````!@!8G%49A@0);WH!``"_`0``"P`````````!`"````!W1@``34%+14U3,
  1187. XM0RY,24)02P$""P`*````!@`@&&$:;XR-XB(+``!!&@``"P```````````"``1
  1188. XM```:2```5$5234-!4"Y,24)02P$""P`*````!@`@&&$:>NLWJ'P!``!W`@``9
  1189. XM!0`````````!`"````!E4P``1DE,15-02P4&``````T`#0#*`@``!%4`````V
  1190. X``
  1191. Xend
  1192. Xsize 22500
  1193. END_OF_FILE
  1194. if test 31540 -ne `wc -c <'sys/share/termcap.uu'`; then
  1195.     echo shar: \"'sys/share/termcap.uu'\" unpacked with wrong size!
  1196. fi
  1197. # end of 'sys/share/termcap.uu'
  1198. if test -f 'sys/winnt/nttty.c' -a "${1}" != "-c" ; then 
  1199.   echo shar: Renaming existing file \"'sys/winnt/nttty.c'\" to \"'sys/winnt/nttty.c.orig'\"
  1200.   mv -f 'sys/winnt/nttty.c' 'sys/winnt/nttty.c.orig'
  1201. fi
  1202. echo shar: Extracting \"'sys/winnt/nttty.c'\" \(10733 characters\)
  1203. sed "s/^X//" >'sys/winnt/nttty.c' <<'END_OF_FILE'
  1204. X/*    SCCS Id: @(#)nttty.c    3.1    90/05/23
  1205. X/* Copyright (c) NetHack PC Development Team 1993    */
  1206. X/* NetHack may be freely redistributed.  See license for details. */
  1207. X
  1208. X/* tty.c - (Windows NT) version */
  1209. X/*                                                  
  1210. X * Initial Creation - Michael Allison 93/01/31 
  1211. X *
  1212. X */
  1213. X
  1214. X#ifdef WIN32CON
  1215. X
  1216. X#define NEED_VARARGS /* Uses ... */
  1217. X#include "hack.h"
  1218. X#include "wintty.h"
  1219. X#include <sys\types.h>
  1220. X#include <sys\stat.h>
  1221. X#pragma pack(8)
  1222. X#include <windows.h>
  1223. X#include <wincon.h>
  1224. X
  1225. Xvoid FDECL(cmov, (int, int));
  1226. Xvoid FDECL(nocmov, (int, int));
  1227. X
  1228. X/*
  1229. X * The following WIN32 Console API routines are used in this file.
  1230. X *
  1231. X * CreateFile
  1232. X * GetConsoleScreenBufferInfo
  1233. X * GetStdHandle
  1234. X * SetConsoleCursorPosition
  1235. X * SetConsoleTextAttribute
  1236. X * PeekConsoleInput
  1237. X * ReadConsoleInput
  1238. X * WriteConsoleOutputCharacter
  1239. X */
  1240. X
  1241. X/* Win32 Console handles for input and output */
  1242. XHANDLE hConIn;
  1243. XHANDLE hConOut;
  1244. X
  1245. X/* Win32 Screen buffer,coordinate,console I/O information */
  1246. XCONSOLE_SCREEN_BUFFER_INFO csbi;
  1247. XCOORD ntcoord;
  1248. XINPUT_RECORD ir;
  1249. X
  1250. X/* Flag for whether NetHack was launched via progman, not command line.
  1251. X * The reason we care at all, is so that we can get
  1252. X * a final RETURN at the end of the game when launched from progman
  1253. X * to prevent the scoreboard (or panic message :-| from vanishing
  1254. X * immediately after it is displayed, yet not bother when started
  1255. X * from the command line. 
  1256. X */
  1257. Xint ProgmanLaunched;
  1258. X
  1259. X# ifdef TEXTCOLOR
  1260. Xchar ttycolors[MAXCOLORS];
  1261. Xstatic void NDECL(init_ttycolor);
  1262. X# endif
  1263. X
  1264. Xstatic char nullstr[] = "";
  1265. Xchar erase_char,kill_char;
  1266. X/* extern int LI, CO; */    /* decl.h does this alreay */
  1267. X
  1268. X/*
  1269. X * Called after returning from ! or ^Z
  1270. X */
  1271. Xvoid
  1272. Xgettty(){
  1273. X    register int i;
  1274. X
  1275. X    erase_char = '\b';
  1276. X    kill_char = 21;        /* cntl-U */
  1277. X    flags.cbreak = TRUE;
  1278. X#ifdef TEXTCOLOR
  1279. X    init_ttycolor();
  1280. X#endif
  1281. X}
  1282. X
  1283. X/* reset terminal to original state */
  1284. Xvoid
  1285. Xsettty(s)
  1286. Xconst char *s;
  1287. X{
  1288. X    end_screen();
  1289. X    if(s) raw_print(s);
  1290. X}
  1291. X
  1292. X/* called by init_nhwindows() and resume_nhwindows() */
  1293. Xvoid
  1294. Xsetftty()
  1295. X{
  1296. X    start_screen();
  1297. X}
  1298. X
  1299. Xint
  1300. Xtgetch()
  1301. X{
  1302. X    int ch;
  1303. X    int valid = 0;
  1304. X    int metaflags = 0;
  1305. X    int count;
  1306. X
  1307. X    valid = 0;
  1308. X    while (!valid)
  1309. X    {
  1310. X        ReadConsoleInput(hConIn,&ir,1,&count);
  1311. X        /* We only care about ascii press-down KEY_EVENTs */
  1312. X        if ((ir.EventType == KEY_EVENT) &&
  1313. X           (ir.Event.KeyEvent.bKeyDown) &&    
  1314. X           (ir.Event.KeyEvent.uChar.AsciiChar)) valid = 1;
  1315. X    }
  1316. X    metaflags = ir.Event.KeyEvent.dwControlKeyState;
  1317. X    /*
  1318. X     * metaflags can be checked to see if various special
  1319. X         * keys were pressed at the same time as the key.
  1320. X         * Currently we are using the ALT keys only.
  1321. X     *
  1322. X     *           RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED,
  1323. X         *           RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED,
  1324. X         *           SHIFT_PRESSED,NUMLOCK_ON, SCROLLLOCK_ON,
  1325. X         *           CAPSLOCK_ON, ENHANCED_KEY
  1326. X         *
  1327. X     * are all valid bit masks to use on metaflags
  1328. X         * eg. (metaflags & LEFT_CTRL_PRESSED) is true if the
  1329. X         *      left control key was pressed with the keystroke.
  1330. X         */
  1331. X    ch = (ir.Event.KeyEvent.uChar.AsciiChar == '\r') ?
  1332. X             '\n' :ir.Event.KeyEvent.uChar.AsciiChar;
  1333. X    if (metaflags & (LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED))
  1334. X       ch = tolower(ch) | 0x080;
  1335. X    return ch;
  1336. X}
  1337. X
  1338. Xint
  1339. Xkbhit()
  1340. X{
  1341. X    int done = 0;    /* true =  "stop searching"        */
  1342. X    int retval;    /* true =  "we had a match"        */
  1343. X    int count;    /* scratch-pad area for API call   */
  1344. X
  1345. X    done = 0;
  1346. X    retval = 0;
  1347. X    while (!done)
  1348. X    {
  1349. X        count = 0;
  1350. X        PeekConsoleInput(hConIn,&ir,1,&count);
  1351. X        if (count > 0)
  1352. X            {
  1353. X        /* Make sure its an ascii press-down KEY_EVENT */
  1354. X            if ((ir.EventType == KEY_EVENT) &&
  1355. X            (ir.Event.KeyEvent.bKeyDown) &&    
  1356. X            (ir.Event.KeyEvent.uChar.AsciiChar))
  1357. X            { 
  1358. X             /* This is what we were looking for        */
  1359. X             done = 1;            /* Stop looking         */
  1360. X             retval = 1;        /* Found what we sought */
  1361. X            }
  1362. X        /* Discard it, its an insignificant event */
  1363. X            else ReadConsoleInput(hConIn,&ir,1,&count);
  1364. X        }
  1365. X        else  /* There are no events in console event queue*/
  1366. X        {
  1367. X        done = 1;      /* Stop looking               */
  1368. X        retval = 0;      /* No ascii press-down key    */
  1369. X        }
  1370. X    }
  1371. X    return retval;
  1372. X}
  1373. X
  1374. X/* called by init_tty in wintty.c for WIN32CON port only */
  1375. Xvoid
  1376. Xnttty_open()
  1377. X{
  1378. X        HANDLE hStdOut;
  1379. X
  1380. X        /* The following 6 lines of code were suggested by 
  1381. X         * Bob Landau of Microsoft WIN32 Developer support,
  1382. X         * as the only current means of determining whether
  1383. X         * we were launched from the command prompt, or from
  1384. X         * the NT program manager. M. Allison
  1385. X         */
  1386. X        hStdOut = GetStdHandle( STD_OUTPUT_HANDLE );
  1387. X        GetConsoleScreenBufferInfo( hStdOut, &csbi);
  1388. X        ProgmanLaunched = ((csbi.dwCursorPosition.X == 0) &&
  1389. X                           (csbi.dwCursorPosition.Y == 0));
  1390. X        if ((csbi.dwSize.X <= 0) || (csbi.dwSize.Y <= 0))
  1391. X            ProgmanLaunched = 0;
  1392. X
  1393. X
  1394. X        /* Obtain handles for the standard Console I/O devices */
  1395. X    hConIn = CreateFile("CONIN$",
  1396. X            GENERIC_READ |GENERIC_WRITE,
  1397. X            FILE_SHARE_READ |FILE_SHARE_WRITE,
  1398. X            NULL, OPEN_EXISTING, 0, NULL);                    
  1399. X
  1400. X    hConOut = CreateFile("CONOUT$",
  1401. X            GENERIC_READ |GENERIC_WRITE,
  1402. X            FILE_SHARE_READ |FILE_SHARE_WRITE,
  1403. X            NULL, OPEN_EXISTING, 0, NULL);                    
  1404. X    get_scr_size();
  1405. X}
  1406. X
  1407. Xvoid
  1408. Xget_scr_size()
  1409. X{
  1410. X    if (GetConsoleScreenBufferInfo(hConOut,&csbi))
  1411. X    {
  1412. X        LI = csbi.dwSize.Y;
  1413. X        CO = csbi.dwSize.X;
  1414. X    }
  1415. X    else
  1416. X    {    
  1417. X        LI = 25;
  1418. X        CO = 80;
  1419. X    }
  1420. X}
  1421. X
  1422. X
  1423. X/* fatal error */
  1424. X/*VARARGS1*/
  1425. X
  1426. Xvoid
  1427. Xerror VA_DECL(const char *,s)
  1428. X    VA_START(s);
  1429. X    VA_INIT(s, const char *);
  1430. X    /* error() may get called before tty is initialized */
  1431. X    if (flags.window_inited) end_screen();
  1432. X    putchar('\n');
  1433. X    Vprintf(s,VA_ARGS);
  1434. X    putchar('\n');
  1435. X    VA_END();
  1436. X    exit(1);
  1437. X}
  1438. X
  1439. X
  1440. Xvoid
  1441. Xtty_startup(wid, hgt)
  1442. X    int *wid, *hgt;
  1443. X{
  1444. X    register int i;
  1445. X
  1446. X    *wid = CO;
  1447. X    *hgt = LI;
  1448. X}
  1449. X
  1450. Xvoid
  1451. Xtty_number_pad(state)
  1452. Xint state;
  1453. X{
  1454. X}
  1455. X
  1456. Xvoid
  1457. Xtty_start_screen()
  1458. X{
  1459. X    if (flags.num_pad) tty_number_pad(1);    /* make keypad send digits */
  1460. X}
  1461. X
  1462. Xvoid
  1463. Xtty_end_screen()
  1464. X{
  1465. X    clear_screen();
  1466. X}
  1467. X
  1468. Xvoid
  1469. Xnocmov(x, y)
  1470. Xint x,y;
  1471. X{
  1472. X    ntcoord.X = x;
  1473. X    ntcoord.Y = y;
  1474. X    SetConsoleCursorPosition(hConOut,ntcoord);
  1475. X}
  1476. X
  1477. Xvoid
  1478. Xcmov(x, y)
  1479. Xregister int x, y;
  1480. X{
  1481. X    ntcoord.X = x;
  1482. X    ntcoord.Y = y;
  1483. X    SetConsoleCursorPosition(hConOut,ntcoord);
  1484. X    ttyDisplay->cury = y;
  1485. X    ttyDisplay->curx = x;
  1486. X}
  1487. X
  1488. Xvoid
  1489. Xxputc(c)
  1490. Xchar c;
  1491. X{
  1492. X    int count;
  1493. X
  1494. X    ntcoord.X = ttyDisplay->curx;
  1495. X    ntcoord.Y = ttyDisplay->cury;
  1496. X    WriteConsoleOutputCharacter(hConOut,&c,1,ntcoord,&count);
  1497. X}
  1498. X
  1499. Xvoid
  1500. Xxputs(s)
  1501. Xconst char *s;
  1502. X{
  1503. X    int count;
  1504. X    
  1505. X    ntcoord.X = ttyDisplay->curx;
  1506. X    ntcoord.Y = ttyDisplay->cury;
  1507. X    WriteConsoleOutputCharacter(hConOut,s,
  1508. X            strlen(s),ntcoord,&count);
  1509. X}
  1510. X
  1511. Xvoid
  1512. Xcl_end()
  1513. X{
  1514. X        int count;
  1515. X
  1516. X        ntcoord.X = ttyDisplay->curx;
  1517. X        ntcoord.Y = ttyDisplay->cury;
  1518. X        FillConsoleOutputCharacter(hConOut,' ',
  1519. X            CO - ntcoord.X,ntcoord,&count);
  1520. X        tty_curs(BASE_WINDOW, (int)ttyDisplay->curx+1,
  1521. X                        (int)ttyDisplay->cury);
  1522. X}
  1523. X
  1524. X
  1525. Xvoid
  1526. Xclear_screen()
  1527. X{
  1528. X    int count;
  1529. X
  1530. X    ntcoord.X = 0;
  1531. X    ntcoord.Y = 0;
  1532. X    FillConsoleOutputCharacter(hConOut,' ',CO * LI,
  1533. X        ntcoord, &count);
  1534. X    home();
  1535. X}
  1536. X
  1537. X
  1538. Xvoid
  1539. Xhome()
  1540. X{
  1541. X    tty_curs(BASE_WINDOW, 1, 0);
  1542. X    ttyDisplay->curx = ttyDisplay->cury = 0;
  1543. X}
  1544. X
  1545. X
  1546. Xvoid
  1547. Xbacksp()
  1548. X{
  1549. X    DWORD count;
  1550. X
  1551. X    GetConsoleScreenBufferInfo(hConOut,&csbi);
  1552. X    if (csbi.dwCursorPosition.X > 0)
  1553. X        ntcoord.X = csbi.dwCursorPosition.X-1;
  1554. X    ntcoord.Y = csbi.dwCursorPosition.Y;
  1555. X    WriteConsoleOutputCharacter(hConOut," ",1,ntcoord,&count);
  1556. X    SetConsoleCursorPosition(hConOut,ntcoord);    
  1557. X}
  1558. X
  1559. Xvoid
  1560. Xtty_nhbell()
  1561. X{
  1562. X    if (flags.silent) return;
  1563. X    Beep(8000,500);
  1564. X}
  1565. X
  1566. X
  1567. Xvoid
  1568. Xtty_delay_output()
  1569. X{
  1570. X    /* delay 50 ms - not implimented */
  1571. X}
  1572. X
  1573. Xvoid
  1574. Xcl_eos()
  1575. X{
  1576. X
  1577. X        register int cy = ttyDisplay->cury+1;
  1578. X        while(cy <= LI-2) {
  1579. X            cl_end();
  1580. X            xputc('\n');
  1581. X            cy++;
  1582. X        }
  1583. X        cl_end();
  1584. X        tty_curs(BASE_WINDOW, (int)ttyDisplay->curx+1,
  1585. X                        (int)ttyDisplay->cury);
  1586. X}
  1587. X
  1588. X
  1589. X# ifdef TEXTCOLOR
  1590. X/*
  1591. X * BLACK        0
  1592. X * RED            1
  1593. X * GREEN        2
  1594. X * BROWN        3    low-intensity yellow
  1595. X * BLUE            4
  1596. X * MAGENTA         5
  1597. X * CYAN            6
  1598. X * GRAY            7    low-intensity white
  1599. X * NO_COLOR        8
  1600. X * ORANGE_COLORED    9
  1601. X * BRIGHT_GREEN        10
  1602. X * YELLOW        11
  1603. X * BRIGHT_BLUE        12
  1604. X * BRIGHT_MAGENTA      13
  1605. X * BRIGHT_CYAN        14
  1606. X * WHITE        15
  1607. X * MAXCOLORS        16
  1608. X * BRIGHT        8
  1609. X */
  1610. X
  1611. Xstatic void
  1612. Xinit_ttycolor()
  1613. X{
  1614. X    ttycolors[BLACK] = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
  1615. X    ttycolors[RED] = FOREGROUND_RED;
  1616. X    ttycolors[GREEN] = FOREGROUND_GREEN;
  1617. X    ttycolors[BROWN] = FOREGROUND_GREEN|FOREGROUND_RED;
  1618. X    ttycolors[BLUE] = FOREGROUND_BLUE|FOREGROUND_INTENSITY;
  1619. X    ttycolors[MAGENTA] = FOREGROUND_BLUE|FOREGROUND_RED;
  1620. X    ttycolors[CYAN] = FOREGROUND_GREEN|FOREGROUND_BLUE;
  1621. X    ttycolors[GRAY] = FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE;
  1622. X    ttycolors[BRIGHT] = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY;
  1623. X    ttycolors[ORANGE_COLORED] = FOREGROUND_RED|FOREGROUND_INTENSITY;
  1624. X    ttycolors[BRIGHT_GREEN] = FOREGROUND_GREEN|FOREGROUND_INTENSITY;
  1625. X    ttycolors[YELLOW] = FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY;
  1626. X    ttycolors[BRIGHT_BLUE] = FOREGROUND_BLUE|FOREGROUND_INTENSITY;
  1627. X    ttycolors[BRIGHT_MAGENTA] = FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY;
  1628. X    ttycolors[BRIGHT_CYAN] = FOREGROUND_GREEN|FOREGROUND_BLUE;
  1629. X    ttycolors[WHITE] = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY;
  1630. X}
  1631. X
  1632. X# endif /* TEXTCOLOR */
  1633. X
  1634. Xint
  1635. Xhas_color(int color)
  1636. X{
  1637. X# ifdef TEXTCOLOR
  1638. X    return 1;
  1639. X# else
  1640. X    return 0;
  1641. X# endif 
  1642. X}
  1643. X
  1644. Xvoid
  1645. Xterm_end_attr(int attr)
  1646. X{
  1647. X    /* Mix all three colors for white on NT console */
  1648. X    SetConsoleTextAttribute(hConOut,
  1649. X        FOREGROUND_RED|FOREGROUND_BLUE|
  1650. X        FOREGROUND_GREEN);    
  1651. X}
  1652. X
  1653. Xvoid
  1654. Xterm_start_attr(int attr)
  1655. X{
  1656. X    switch(attr){
  1657. X
  1658. X        case ATR_ULINE:
  1659. X        case ATR_BOLD:
  1660. X                /* Mix all three colors for white on NT console */
  1661. X            SetConsoleTextAttribute(hConOut,
  1662. X            FOREGROUND_RED|FOREGROUND_BLUE|
  1663. X            FOREGROUND_GREEN|FOREGROUND_INTENSITY );
  1664. X                break;
  1665. X        case ATR_BLINK:
  1666. X        case ATR_INVERSE:
  1667. X        default:
  1668. X                term_end_attr(0);
  1669. X                break;
  1670. X    }                
  1671. X}
  1672. X
  1673. Xvoid
  1674. Xterm_end_raw_bold(void)
  1675. X{
  1676. X    standoutend();    
  1677. X}
  1678. X
  1679. Xvoid
  1680. Xterm_start_raw_bold(void)
  1681. X{
  1682. X    standoutbeg();
  1683. X}
  1684. X
  1685. Xvoid
  1686. Xterm_start_color(int color)
  1687. X{
  1688. X# ifdef TEXTCOLOR
  1689. X    WORD attr;
  1690. X
  1691. X        if (color >= 0 && color < MAXCOLORS) {
  1692. X            attr = ttycolors[color];
  1693. X        SetConsoleTextAttribute(hConOut,attr);
  1694. X    }
  1695. X# endif
  1696. X}
  1697. X
  1698. Xvoid
  1699. Xterm_end_color(void)
  1700. X{
  1701. X# ifdef TEXTCOLOR
  1702. X    SetConsoleTextAttribute(hConOut,
  1703. X        FOREGROUND_RED|FOREGROUND_BLUE|
  1704. X        FOREGROUND_GREEN);
  1705. X# endif       
  1706. X}
  1707. X
  1708. X
  1709. Xvoid
  1710. Xstandoutbeg()
  1711. X{
  1712. X    /* Mix all three colors for white on NT console */
  1713. X    SetConsoleTextAttribute(hConOut,
  1714. X        FOREGROUND_RED|FOREGROUND_BLUE|
  1715. X        FOREGROUND_GREEN|FOREGROUND_INTENSITY );
  1716. X}
  1717. X
  1718. X
  1719. Xvoid
  1720. Xstandoutend()
  1721. X{
  1722. X    /* Mix all three colors for white on NT console */
  1723. X    SetConsoleTextAttribute(hConOut,
  1724. X        FOREGROUND_RED|FOREGROUND_BLUE|
  1725. X        FOREGROUND_GREEN);
  1726. X}
  1727. X
  1728. X#endif /* WIN32CON */
  1729. X
  1730. END_OF_FILE
  1731. if test 10733 -ne `wc -c <'sys/winnt/nttty.c'`; then
  1732.     echo shar: \"'sys/winnt/nttty.c'\" unpacked with wrong size!
  1733. fi
  1734. # end of 'sys/winnt/nttty.c'
  1735. echo shar: End of archive 29 \(of 33\).
  1736. cp /dev/null ark29isdone
  1737. MISSING=""
  1738. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
  1739.     if test ! -f ark${I}isdone ; then
  1740.     MISSING="${MISSING} ${I}"
  1741.     fi
  1742. done
  1743. if test "${MISSING}" = "" ; then
  1744.     echo You have unpacked all 33 archives.
  1745.     echo "Now execute ./patchit.sh"
  1746.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1747. else
  1748.     echo You still need to unpack the following archives:
  1749.     echo "        " ${MISSING}
  1750. fi
  1751. ##  End of shell archive.
  1752. exit 0
  1753.