home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume29 / jpeg / part07 < prev    next >
Text File  |  1992-03-24  |  56KB  |  1,377 lines

  1. Newsgroups: comp.sources.misc
  2. From: jpeg-info@uunet.uu.net (Independent JPEG Group)
  3. Subject:  v29i007:  jpeg - JPEG image compression, Part07/18
  4. Message-ID: <1992Mar24.144451.18309@sparky.imd.sterling.com>
  5. X-Md4-Signature: 08697a0dc94aa72e6d5f2dd1f63b6927
  6. Date: Tue, 24 Mar 1992 14:44:51 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: jpeg-info@uunet.uu.net (Independent JPEG Group)
  10. Posting-number: Volume 29, Issue 7
  11. Archive-name: jpeg/part07
  12. Environment: UNIX, VMS, MS-DOS, Mac, Amiga, Cray
  13.  
  14. #! /bin/sh
  15. # into a shell via "sh file" or similar.  To overwrite existing files,
  16. # type "sh file -c".
  17. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  18. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  19. # Contents:  jrdjfif.c makdjpeg.lnk timg.ppm.u.a
  20. # Wrapped by kent@sparky on Mon Mar 23 16:02:44 1992
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. echo If this archive is complete, you will see the following message:
  23. echo '          "shar: End of archive 7 (of 18)."'
  24. if test -f 'jrdjfif.c' -a "${1}" != "-c" ; then 
  25.   echo shar: Will not clobber existing file \"'jrdjfif.c'\"
  26. else
  27.   echo shar: Extracting \"'jrdjfif.c'\" \(18541 characters\)
  28.   sed "s/^X//" >'jrdjfif.c' <<'END_OF_FILE'
  29. X/*
  30. X * jrdjfif.c
  31. X *
  32. X * Copyright (C) 1991, 1992, Thomas G. Lane.
  33. X * This file is part of the Independent JPEG Group's software.
  34. X * For conditions of distribution and use, see the accompanying README file.
  35. X *
  36. X * This file contains routines to decode standard JPEG file headers/markers.
  37. X * This code will handle "raw JPEG" and JFIF-convention JPEG files.
  38. X *
  39. X * You can also use this module to decode a raw-JPEG or JFIF-standard data
  40. X * stream that is embedded within a larger file.  To do that, you must
  41. X * position the file to the JPEG SOI marker (0xFF/0xD8) that begins the
  42. X * data sequence to be decoded.  If nothing better is possible, you can scan
  43. X * the file until you see the SOI marker, then use JUNGETC to push it back.
  44. X *
  45. X * This module relies on the JGETC macro and the read_jpeg_data method (which
  46. X * is provided by the user interface) to read from the JPEG data stream.
  47. X * Therefore, this module is not dependent on any particular assumption about
  48. X * the data source; it need not be a stdio stream at all.  (This fact does
  49. X * NOT carry over to more complex JPEG file formats such as JPEG-in-TIFF;
  50. X * those format control modules may well need to assume stdio input.)
  51. X *
  52. X * These routines are invoked via the methods read_file_header,
  53. X * read_scan_header, read_jpeg_data, read_scan_trailer, and read_file_trailer.
  54. X */
  55. X
  56. X#include "jinclude.h"
  57. X
  58. X#ifdef JFIF_SUPPORTED
  59. X
  60. X
  61. Xtypedef enum {            /* JPEG marker codes */
  62. X  M_SOF0  = 0xc0,
  63. X  M_SOF1  = 0xc1,
  64. X  M_SOF2  = 0xc2,
  65. X  M_SOF3  = 0xc3,
  66. X  
  67. X  M_SOF5  = 0xc5,
  68. X  M_SOF6  = 0xc6,
  69. X  M_SOF7  = 0xc7,
  70. X  
  71. X  M_JPG   = 0xc8,
  72. X  M_SOF9  = 0xc9,
  73. X  M_SOF10 = 0xca,
  74. X  M_SOF11 = 0xcb,
  75. X  
  76. X  M_SOF13 = 0xcd,
  77. X  M_SOF14 = 0xce,
  78. X  M_SOF15 = 0xcf,
  79. X  
  80. X  M_DHT   = 0xc4,
  81. X  
  82. X  M_DAC   = 0xcc,
  83. X  
  84. X  M_RST0  = 0xd0,
  85. X  M_RST1  = 0xd1,
  86. X  M_RST2  = 0xd2,
  87. X  M_RST3  = 0xd3,
  88. X  M_RST4  = 0xd4,
  89. X  M_RST5  = 0xd5,
  90. X  M_RST6  = 0xd6,
  91. X  M_RST7  = 0xd7,
  92. X  
  93. X  M_SOI   = 0xd8,
  94. X  M_EOI   = 0xd9,
  95. X  M_SOS   = 0xda,
  96. X  M_DQT   = 0xdb,
  97. X  M_DNL   = 0xdc,
  98. X  M_DRI   = 0xdd,
  99. X  M_DHP   = 0xde,
  100. X  M_EXP   = 0xdf,
  101. X  
  102. X  M_APP0  = 0xe0,
  103. X  M_APP15 = 0xef,
  104. X  
  105. X  M_JPG0  = 0xf0,
  106. X  M_JPG13 = 0xfd,
  107. X  M_COM   = 0xfe,
  108. X  
  109. X  M_TEM   = 0x01,
  110. X  
  111. X  M_ERROR = 0x100
  112. X} JPEG_MARKER;
  113. X
  114. X
  115. X/*
  116. X * Reload the input buffer after it's been emptied, and return the next byte.
  117. X * This is exported for direct use by the entropy decoder.
  118. X * See the JGETC macro for calling conditions.
  119. X *
  120. X * For this header control module, read_jpeg_data is supplied by the
  121. X * user interface.  However, header formats that require random access
  122. X * to the input file would need to supply their own code.  This code is
  123. X * left here to indicate what is required.
  124. X */
  125. X
  126. X#if 0                /* not needed in this module */
  127. X
  128. XMETHODDEF int
  129. Xread_jpeg_data (decompress_info_ptr cinfo)
  130. X{
  131. X  cinfo->next_input_byte = cinfo->input_buffer + MIN_UNGET;
  132. X
  133. X  cinfo->bytes_in_buffer = (int) JFREAD(cinfo->input_file,
  134. X                    cinfo->next_input_byte,
  135. X                    JPEG_BUF_SIZE);
  136. X  
  137. X  if (cinfo->bytes_in_buffer <= 0)
  138. X    ERREXIT(cinfo->emethods, "Unexpected EOF in JPEG file");
  139. X
  140. X  return JGETC(cinfo);
  141. X}
  142. X
  143. X#endif
  144. X
  145. X
  146. X/*
  147. X * Routines to parse JPEG markers & save away the useful info.
  148. X */
  149. X
  150. X
  151. XLOCAL INT32
  152. Xget_2bytes (decompress_info_ptr cinfo)
  153. X/* Get a 2-byte unsigned integer (e.g., a marker parameter length field) */
  154. X{
  155. X  INT32 a;
  156. X  
  157. X  a = JGETC(cinfo);
  158. X  return (a << 8) + JGETC(cinfo);
  159. X}
  160. X
  161. X
  162. XLOCAL void
  163. Xskip_variable (decompress_info_ptr cinfo, int code)
  164. X/* Skip over an unknown or uninteresting variable-length marker */
  165. X{
  166. X  INT32 length;
  167. X  
  168. X  length = get_2bytes(cinfo);
  169. X  
  170. X  TRACEMS2(cinfo->emethods, 1,
  171. X       "Skipping marker 0x%02x, length %u", code, (int) length);
  172. X  
  173. X  for (length -= 2; length > 0; length--)
  174. X    (void) JGETC(cinfo);
  175. X}
  176. X
  177. X
  178. XLOCAL void
  179. Xget_dht (decompress_info_ptr cinfo)
  180. X/* Process a DHT marker */
  181. X{
  182. X  INT32 length;
  183. X  UINT8 bits[17];
  184. X  UINT8 huffval[256];
  185. X  int i, index, count;
  186. X  HUFF_TBL **htblptr;
  187. X  
  188. X  length = get_2bytes(cinfo)-2;
  189. X  
  190. X  while (length > 0) {
  191. X    index = JGETC(cinfo);
  192. X
  193. X    TRACEMS1(cinfo->emethods, 1, "Define Huffman Table 0x%02x", index);
  194. X      
  195. X    bits[0] = 0;
  196. X    count = 0;
  197. X    for (i = 1; i <= 16; i++) {
  198. X      bits[i] = (UINT8) JGETC(cinfo);
  199. X      count += bits[i];
  200. X    }
  201. X
  202. X    TRACEMS8(cinfo->emethods, 2, "        %3d %3d %3d %3d %3d %3d %3d %3d",
  203. X         bits[1], bits[2], bits[3], bits[4],
  204. X         bits[5], bits[6], bits[7], bits[8]);
  205. X    TRACEMS8(cinfo->emethods, 2, "        %3d %3d %3d %3d %3d %3d %3d %3d",
  206. X         bits[9], bits[10], bits[11], bits[12],
  207. X         bits[13], bits[14], bits[15], bits[16]);
  208. X
  209. X    if (count > 256)
  210. X      ERREXIT(cinfo->emethods, "Bogus DHT counts");
  211. X
  212. X    for (i = 0; i < count; i++)
  213. X      huffval[i] = (UINT8) JGETC(cinfo);
  214. X
  215. X    length -= 1 + 16 + count;
  216. X
  217. X    if (index & 0x10) {        /* AC table definition */
  218. X      index -= 0x10;
  219. X      htblptr = &cinfo->ac_huff_tbl_ptrs[index];
  220. X    } else {            /* DC table definition */
  221. X      htblptr = &cinfo->dc_huff_tbl_ptrs[index];
  222. X    }
  223. X
  224. X    if (index < 0 || index >= NUM_HUFF_TBLS)
  225. X      ERREXIT1(cinfo->emethods, "Bogus DHT index %d", index);
  226. X
  227. X    if (*htblptr == NULL)
  228. X      *htblptr = (HUFF_TBL *) (*cinfo->emethods->alloc_small) (SIZEOF(HUFF_TBL));
  229. X  
  230. X    memcpy((void *) (*htblptr)->bits, (void *) bits,
  231. X       SIZEOF((*htblptr)->bits));
  232. X    memcpy((void *) (*htblptr)->huffval, (void *) huffval,
  233. X       SIZEOF((*htblptr)->huffval));
  234. X    }
  235. X}
  236. X
  237. X
  238. XLOCAL void
  239. Xget_dac (decompress_info_ptr cinfo)
  240. X/* Process a DAC marker */
  241. X{
  242. X  INT32 length;
  243. X  int index, val;
  244. X
  245. X  length = get_2bytes(cinfo)-2;
  246. X  
  247. X  while (length > 0) {
  248. X    index = JGETC(cinfo);
  249. X    val = JGETC(cinfo);
  250. X
  251. X    TRACEMS2(cinfo->emethods, 1,
  252. X         "Define Arithmetic Table 0x%02x: 0x%02x", index, val);
  253. X
  254. X    if (index < 0 || index >= (2*NUM_ARITH_TBLS))
  255. X      ERREXIT1(cinfo->emethods, "Bogus DAC index %d", index);
  256. X
  257. X    if (index >= NUM_ARITH_TBLS) { /* define AC table */
  258. X      cinfo->arith_ac_K[index-NUM_ARITH_TBLS] = (UINT8) val;
  259. X    } else {            /* define DC table */
  260. X      cinfo->arith_dc_L[index] = (UINT8) (val & 0x0F);
  261. X      cinfo->arith_dc_U[index] = (UINT8) (val >> 4);
  262. X      if (cinfo->arith_dc_L[index] > cinfo->arith_dc_U[index])
  263. X    ERREXIT1(cinfo->emethods, "Bogus DAC value 0x%x", val);
  264. X    }
  265. X
  266. X    length -= 2;
  267. X  }
  268. X}
  269. X
  270. X
  271. XLOCAL void
  272. Xget_dqt (decompress_info_ptr cinfo)
  273. X/* Process a DQT marker */
  274. X{
  275. X  INT32 length;
  276. X  int n, i, prec;
  277. X  UINT16 tmp;
  278. X  QUANT_TBL_PTR quant_ptr;
  279. X  
  280. X  length = get_2bytes(cinfo) - 2;
  281. X  
  282. X  while (length > 0) {
  283. X    n = JGETC(cinfo);
  284. X    prec = n >> 4;
  285. X    n &= 0x0F;
  286. X
  287. X    TRACEMS2(cinfo->emethods, 1,
  288. X         "Define Quantization Table %d  precision %d", n, prec);
  289. X
  290. X    if (n >= NUM_QUANT_TBLS)
  291. X      ERREXIT1(cinfo->emethods, "Bogus table number %d", n);
  292. X      
  293. X    if (cinfo->quant_tbl_ptrs[n] == NULL)
  294. X      cinfo->quant_tbl_ptrs[n] = (QUANT_TBL_PTR)
  295. X    (*cinfo->emethods->alloc_small) (SIZEOF(QUANT_TBL));
  296. X    quant_ptr = cinfo->quant_tbl_ptrs[n];
  297. X
  298. X    for (i = 0; i < DCTSIZE2; i++) {
  299. X      tmp = JGETC(cinfo);
  300. X      if (prec)
  301. X    tmp = (tmp<<8) + JGETC(cinfo);
  302. X      quant_ptr[i] = tmp;
  303. X    }
  304. X
  305. X    for (i = 0; i < DCTSIZE2; i += 8) {
  306. X      TRACEMS8(cinfo->emethods, 2, "        %4d %4d %4d %4d %4d %4d %4d %4d",
  307. X           quant_ptr[i  ], quant_ptr[i+1], quant_ptr[i+2], quant_ptr[i+3],
  308. X           quant_ptr[i+4], quant_ptr[i+5], quant_ptr[i+6], quant_ptr[i+7]);
  309. X    }
  310. X
  311. X    length -= DCTSIZE2+1;
  312. X    if (prec) length -= DCTSIZE2;
  313. X  }
  314. X}
  315. X
  316. X
  317. XLOCAL void
  318. Xget_dri (decompress_info_ptr cinfo)
  319. X/* Process a DRI marker */
  320. X{
  321. X  if (get_2bytes(cinfo) != 4)
  322. X    ERREXIT(cinfo->emethods, "Bogus length in DRI");
  323. X
  324. X  cinfo->restart_interval = (UINT16) get_2bytes(cinfo);
  325. X
  326. X  TRACEMS1(cinfo->emethods, 1,
  327. X       "Define Restart Interval %d", cinfo->restart_interval);
  328. X}
  329. X
  330. X
  331. XLOCAL void
  332. Xget_app0 (decompress_info_ptr cinfo)
  333. X/* Process an APP0 marker */
  334. X{
  335. X#define JFIF_LEN 14
  336. X  INT32 length;
  337. X  UINT8 b[JFIF_LEN];
  338. X  int buffp;
  339. X
  340. X  length = get_2bytes(cinfo) - 2;
  341. X
  342. X  /* See if a JFIF APP0 marker is present */
  343. X
  344. X  if (length >= JFIF_LEN) {
  345. X    for (buffp = 0; buffp < JFIF_LEN; buffp++)
  346. X      b[buffp] = (UINT8) JGETC(cinfo);
  347. X    length -= JFIF_LEN;
  348. X
  349. X    if (b[0]=='J' && b[1]=='F' && b[2]=='I' && b[3]=='F' && b[4]==0) {
  350. X      /* Found JFIF APP0 marker: check version */
  351. X      /* Major version must be 1 */
  352. X      if (b[5] != 1)
  353. X    ERREXIT2(cinfo->emethods, "Unsupported JFIF revision number %d.%02d",
  354. X         b[5], b[6]);
  355. X      /* Minor version should be 0 or 1, but try to process anyway if newer */
  356. X      if (b[6] != 0 && b[6] != 1)
  357. X    TRACEMS2(cinfo->emethods, 0, "Warning: unknown JFIF revision number %d.%02d",
  358. X         b[5], b[6]);
  359. X      /* Save info */
  360. X      cinfo->density_unit = b[7];
  361. X      cinfo->X_density = (b[8] << 8) + b[9];
  362. X      cinfo->Y_density = (b[10] << 8) + b[11];
  363. X      /* Assume colorspace is YCbCr, unless UI has overridden me */
  364. X      if (cinfo->jpeg_color_space == CS_UNKNOWN)
  365. X    cinfo->jpeg_color_space = CS_YCbCr;
  366. X      TRACEMS3(cinfo->emethods, 1, "JFIF APP0 marker, density %dx%d  %d",
  367. X           cinfo->X_density, cinfo->Y_density, cinfo->density_unit);
  368. X    } else {
  369. X      TRACEMS(cinfo->emethods, 1, "Unknown APP0 marker (not JFIF)");
  370. X    }
  371. X  } else {
  372. X    TRACEMS1(cinfo->emethods, 1,
  373. X         "Short APP0 marker, length %d", (int) length);
  374. X  }
  375. X
  376. X  while (length-- > 0)        /* skip any remaining data */
  377. X    (void) JGETC(cinfo);
  378. X}
  379. X
  380. X
  381. XLOCAL void
  382. Xget_sof (decompress_info_ptr cinfo, int code)
  383. X/* Process a SOFn marker */
  384. X{
  385. X  INT32 length;
  386. X  short ci;
  387. X  int c;
  388. X  jpeg_component_info * compptr;
  389. X  
  390. X  length = get_2bytes(cinfo);
  391. X  
  392. X  cinfo->data_precision = JGETC(cinfo);
  393. X  cinfo->image_height   = get_2bytes(cinfo);
  394. X  cinfo->image_width    = get_2bytes(cinfo);
  395. X  cinfo->num_components = JGETC(cinfo);
  396. X
  397. X  TRACEMS4(cinfo->emethods, 1,
  398. X       "Start Of Frame 0x%02x: width=%u, height=%u, components=%d",
  399. X       code, (int) cinfo->image_width, (int) cinfo->image_height,
  400. X       cinfo->num_components);
  401. X
  402. X  /* We don't support files in which the image height is initially specified */
  403. X  /* as 0 and is later redefined by DNL.  As long as we have to check that,  */
  404. X  /* might as well have a general sanity check. */
  405. X  if (cinfo->image_height <= 0 || cinfo->image_width <= 0
  406. X      || cinfo->num_components <= 0)
  407. X    ERREXIT(cinfo->emethods, "Empty JPEG image (DNL not supported)");
  408. X
  409. X#ifdef EIGHT_BIT_SAMPLES
  410. X  if (cinfo->data_precision != 8)
  411. X    ERREXIT(cinfo->emethods, "Unsupported JPEG data precision");
  412. X#endif
  413. X#ifdef TWELVE_BIT_SAMPLES
  414. X  if (cinfo->data_precision != 12) /* this needs more thought?? */
  415. X    ERREXIT(cinfo->emethods, "Unsupported JPEG data precision");
  416. X#endif
  417. X#ifdef SIXTEEN_BIT_SAMPLES
  418. X  if (cinfo->data_precision != 16) /* this needs more thought?? */
  419. X    ERREXIT(cinfo->emethods, "Unsupported JPEG data precision");
  420. X#endif
  421. X
  422. X  if (length != (cinfo->num_components * 3 + 8))
  423. X    ERREXIT(cinfo->emethods, "Bogus SOF length");
  424. X
  425. X  cinfo->comp_info = (jpeg_component_info *) (*cinfo->emethods->alloc_small)
  426. X            (cinfo->num_components * SIZEOF(jpeg_component_info));
  427. X  
  428. X  for (ci = 0; ci < cinfo->num_components; ci++) {
  429. X    compptr = &cinfo->comp_info[ci];
  430. X    compptr->component_index = ci;
  431. X    compptr->component_id = JGETC(cinfo);
  432. X    c = JGETC(cinfo);
  433. X    compptr->h_samp_factor = (c >> 4) & 15;
  434. X    compptr->v_samp_factor = (c     ) & 15;
  435. X    compptr->quant_tbl_no  = JGETC(cinfo);
  436. X      
  437. X    TRACEMS4(cinfo->emethods, 1, "    Component %d: %dhx%dv q=%d",
  438. X         compptr->component_id, compptr->h_samp_factor,
  439. X         compptr->v_samp_factor, compptr->quant_tbl_no);
  440. X  }
  441. X}
  442. X
  443. X
  444. XLOCAL void
  445. Xget_sos (decompress_info_ptr cinfo)
  446. X/* Process a SOS marker */
  447. X{
  448. X  INT32 length;
  449. X  int i, ci, n, c, cc;
  450. X  jpeg_component_info * compptr;
  451. X  
  452. X  length = get_2bytes(cinfo);
  453. X  
  454. X  n = JGETC(cinfo);  /* Number of components */
  455. X  cinfo->comps_in_scan = n;
  456. X  length -= 3;
  457. X  
  458. X  if (length != (n * 2 + 3) || n < 1 || n > MAX_COMPS_IN_SCAN)
  459. X    ERREXIT(cinfo->emethods, "Bogus SOS length");
  460. X
  461. X  TRACEMS1(cinfo->emethods, 1, "Start Of Scan: %d components", n);
  462. X  
  463. X  for (i = 0; i < n; i++) {
  464. X    cc = JGETC(cinfo);
  465. X    c = JGETC(cinfo);
  466. X    length -= 2;
  467. X    
  468. X    for (ci = 0; ci < cinfo->num_components; ci++)
  469. X      if (cc == cinfo->comp_info[ci].component_id)
  470. X    break;
  471. X    
  472. X    if (ci >= cinfo->num_components)
  473. X      ERREXIT(cinfo->emethods, "Invalid component number in SOS");
  474. X    
  475. X    compptr = &cinfo->comp_info[ci];
  476. X    cinfo->cur_comp_info[i] = compptr;
  477. X    compptr->dc_tbl_no = (c >> 4) & 15;
  478. X    compptr->ac_tbl_no = (c     ) & 15;
  479. X    
  480. X    TRACEMS3(cinfo->emethods, 1, "    c%d: [dc=%d ac=%d]", cc,
  481. X         compptr->dc_tbl_no, compptr->ac_tbl_no);
  482. X  }
  483. X  
  484. X  while (length > 0) {
  485. X    (void) JGETC(cinfo);
  486. X    length--;
  487. X  }
  488. X}
  489. X
  490. X
  491. XLOCAL void
  492. Xget_soi (decompress_info_ptr cinfo)
  493. X/* Process an SOI marker */
  494. X{
  495. X  int i;
  496. X  
  497. X  TRACEMS(cinfo->emethods, 1, "Start of Image");
  498. X
  499. X  /* Reset all parameters that are defined to be reset by SOI */
  500. X
  501. X  for (i = 0; i < NUM_ARITH_TBLS; i++) {
  502. X    cinfo->arith_dc_L[i] = 0;
  503. X    cinfo->arith_dc_U[i] = 1;
  504. X    cinfo->arith_ac_K[i] = 5;
  505. X  }
  506. X  cinfo->restart_interval = 0;
  507. X
  508. X  cinfo->density_unit = 0;    /* set default JFIF APP0 values */
  509. X  cinfo->X_density = 1;
  510. X  cinfo->Y_density = 1;
  511. X
  512. X  cinfo->CCIR601_sampling = FALSE; /* Assume non-CCIR sampling */
  513. X}
  514. X
  515. X
  516. XLOCAL int
  517. Xnext_marker (decompress_info_ptr cinfo)
  518. X/* Find the next JPEG marker */
  519. X/* Note that the output might not be a valid marker code, */
  520. X/* but it will never be 0 or FF */
  521. X{
  522. X  int c, nbytes;
  523. X
  524. X  nbytes = 0;
  525. X  do {
  526. X    do {            /* skip any non-FF bytes */
  527. X      nbytes++;
  528. X      c = JGETC(cinfo);
  529. X    } while (c != 0xFF);
  530. X    do {            /* skip any duplicate FFs */
  531. X      nbytes++;
  532. X      c = JGETC(cinfo);
  533. X    } while (c == 0xFF);
  534. X  } while (c == 0);        /* repeat if it was a stuffed FF/00 */
  535. X
  536. X  if (nbytes != 2)
  537. X    TRACEMS2(cinfo->emethods, 1, "Skipped %d bytes before marker 0x%02x",
  538. X         nbytes-2, c);
  539. X
  540. X  return c;
  541. X}
  542. X
  543. X
  544. XLOCAL JPEG_MARKER
  545. Xprocess_tables (decompress_info_ptr cinfo)
  546. X/* Scan and process JPEG markers that can appear in any order */
  547. X/* Return when an SOI, EOI, SOFn, or SOS is found */
  548. X{
  549. X  int c;
  550. X
  551. X  while (TRUE) {
  552. X    c = next_marker(cinfo);
  553. X      
  554. X    switch (c) {
  555. X    case M_SOF0:
  556. X    case M_SOF1:
  557. X    case M_SOF2:
  558. X    case M_SOF3:
  559. X    case M_SOF5:
  560. X    case M_SOF6:
  561. X    case M_SOF7:
  562. X    case M_JPG:
  563. X    case M_SOF9:
  564. X    case M_SOF10:
  565. X    case M_SOF11:
  566. X    case M_SOF13:
  567. X    case M_SOF14:
  568. X    case M_SOF15:
  569. X    case M_SOI:
  570. X    case M_EOI:
  571. X    case M_SOS:
  572. X      return ((JPEG_MARKER) c);
  573. X      
  574. X    case M_DHT:
  575. X      get_dht(cinfo);
  576. X      break;
  577. X      
  578. X    case M_DAC:
  579. X      get_dac(cinfo);
  580. X      break;
  581. X      
  582. X    case M_DQT:
  583. X      get_dqt(cinfo);
  584. X      break;
  585. X      
  586. X    case M_DRI:
  587. X      get_dri(cinfo);
  588. X      break;
  589. X      
  590. X    case M_APP0:
  591. X      get_app0(cinfo);
  592. X      break;
  593. X
  594. X    case M_RST0:        /* these are all parameterless */
  595. X    case M_RST1:
  596. X    case M_RST2:
  597. X    case M_RST3:
  598. X    case M_RST4:
  599. X    case M_RST5:
  600. X    case M_RST6:
  601. X    case M_RST7:
  602. X    case M_TEM:
  603. X      TRACEMS1(cinfo->emethods, 1, "Unexpected marker 0x%02x", c);
  604. X      break;
  605. X
  606. X    default:    /* must be DNL, DHP, EXP, APPn, JPGn, COM, or RESn */
  607. X      skip_variable(cinfo, c);
  608. X      break;
  609. X    }
  610. X  }
  611. X}
  612. X
  613. X
  614. X
  615. X/*
  616. X * Initialize and read the file header (everything through the SOF marker).
  617. X */
  618. X
  619. XMETHODDEF void
  620. Xread_file_header (decompress_info_ptr cinfo)
  621. X{
  622. X  int c;
  623. X
  624. X  /* Demand an SOI marker at the start of the file --- otherwise it's
  625. X   * probably not a JPEG file at all.  If the user interface wants to support
  626. X   * nonstandard headers in front of the SOI, it must skip over them itself
  627. X   * before calling jpeg_decompress().
  628. X   */
  629. X  if (JGETC(cinfo) != 0xFF  ||  JGETC(cinfo) != M_SOI)
  630. X    ERREXIT(cinfo->emethods, "Not a JPEG file");
  631. X
  632. X  get_soi(cinfo);        /* OK, process SOI */
  633. X
  634. X  /* Process markers until SOF */
  635. X  c = process_tables(cinfo);
  636. X
  637. X  switch (c) {
  638. X  case M_SOF0:
  639. X  case M_SOF1:
  640. X    get_sof(cinfo, c);
  641. X    cinfo->arith_code = FALSE;
  642. X    break;
  643. X      
  644. X  case M_SOF9:
  645. X    get_sof(cinfo, c);
  646. X    cinfo->arith_code = TRUE;
  647. X    break;
  648. X
  649. X  default:
  650. X    ERREXIT1(cinfo->emethods, "Unsupported SOF marker type 0x%02x", c);
  651. X    break;
  652. X  }
  653. X
  654. X  /* Figure out what colorspace we have */
  655. X  /* (too bad the JPEG committee didn't provide a real way to specify this) */
  656. X
  657. X  switch (cinfo->num_components) {
  658. X  case 1:
  659. X    cinfo->jpeg_color_space = CS_GRAYSCALE;
  660. X    break;
  661. X
  662. X  case 3:
  663. X    /* if we saw a JFIF marker, leave it set to YCbCr; */
  664. X    /* also leave it alone if UI has provided a value */
  665. X    if (cinfo->jpeg_color_space == CS_UNKNOWN) {
  666. X      short cid0 = cinfo->comp_info[0].component_id;
  667. X      short cid1 = cinfo->comp_info[1].component_id;
  668. X      short cid2 = cinfo->comp_info[2].component_id;
  669. X
  670. X      if (cid0 == 1 && cid1 == 2 && cid2 == 3)
  671. X    cinfo->jpeg_color_space = CS_YCbCr; /* assume it's JFIF w/out marker */
  672. X      else if (cid0 == 1 && cid1 == 4 && cid2 == 5)
  673. X    cinfo->jpeg_color_space = CS_YIQ; /* prototype's YIQ matrix */
  674. X      else {
  675. X    TRACEMS3(cinfo->emethods, 0,
  676. X         "Unrecognized component IDs %d %d %d, assuming YCbCr",
  677. X         cid0, cid1, cid2);
  678. X    cinfo->jpeg_color_space = CS_YCbCr;
  679. X      }
  680. X    }
  681. X    break;
  682. X
  683. X  case 4:
  684. X    cinfo->jpeg_color_space = CS_CMYK;
  685. X    break;
  686. X
  687. X  default:
  688. X    cinfo->jpeg_color_space = CS_UNKNOWN;
  689. X    break;
  690. X  }
  691. X}
  692. X
  693. X
  694. X/*
  695. X * Read the start of a scan (everything through the SOS marker).
  696. X * Return TRUE if find SOS, FALSE if find EOI.
  697. X */
  698. X
  699. XMETHODDEF boolean
  700. Xread_scan_header (decompress_info_ptr cinfo)
  701. X{
  702. X  int c;
  703. X  
  704. X  /* Process markers until SOS or EOI */
  705. X  c = process_tables(cinfo);
  706. X  
  707. X  switch (c) {
  708. X  case M_SOS:
  709. X    get_sos(cinfo);
  710. X    return TRUE;
  711. X    
  712. X  case M_EOI:
  713. X    TRACEMS(cinfo->emethods, 1, "End Of Image");
  714. X    return FALSE;
  715. X
  716. X  default:
  717. X    ERREXIT1(cinfo->emethods, "Unexpected marker 0x%02x", c);
  718. X    break;
  719. X  }
  720. X  return FALSE;            /* keeps lint happy */
  721. X}
  722. X
  723. X
  724. X/*
  725. X * Finish up after a compressed scan (series of read_jpeg_data calls);
  726. X * prepare for another read_scan_header call.
  727. X */
  728. X
  729. XMETHODDEF void
  730. Xread_scan_trailer (decompress_info_ptr cinfo)
  731. X{
  732. X  /* no work needed */
  733. X}
  734. X
  735. X
  736. X/*
  737. X * Finish up at the end of the file.
  738. X */
  739. X
  740. XMETHODDEF void
  741. Xread_file_trailer (decompress_info_ptr cinfo)
  742. X{
  743. X  /* no work needed */
  744. X}
  745. X
  746. X
  747. X/*
  748. X * The method selection routine for standard JPEG header reading.
  749. X * Note that this must be called by the user interface before calling
  750. X * jpeg_decompress.  When a non-JFIF file is to be decompressed (TIFF,
  751. X * perhaps), the user interface must discover the file type and call
  752. X * the appropriate method selection routine.
  753. X */
  754. X
  755. XGLOBAL void
  756. Xjselrjfif (decompress_info_ptr cinfo)
  757. X{
  758. X  cinfo->methods->read_file_header = read_file_header;
  759. X  cinfo->methods->read_scan_header = read_scan_header;
  760. X  /* For JFIF/raw-JPEG format, the user interface supplies read_jpeg_data. */
  761. X#if 0
  762. X  cinfo->methods->read_jpeg_data = read_jpeg_data;
  763. X#endif
  764. X  cinfo->methods->read_scan_trailer = read_scan_trailer;
  765. X  cinfo->methods->read_file_trailer = read_file_trailer;
  766. X}
  767. X
  768. X#endif /* JFIF_SUPPORTED */
  769. END_OF_FILE
  770.   if test 18541 -ne `wc -c <'jrdjfif.c'`; then
  771.     echo shar: \"'jrdjfif.c'\" unpacked with wrong size!
  772.   fi
  773.   # end of 'jrdjfif.c'
  774. fi
  775. if test -f 'makdjpeg.lnk' -a "${1}" != "-c" ; then 
  776.   echo shar: Will not clobber existing file \"'makdjpeg.lnk'\"
  777. else
  778.   echo shar: Extracting \"'makdjpeg.lnk'\" \(348 characters\)
  779.   sed "s/^X//" >'makdjpeg.lnk' <<'END_OF_FILE'
  780. Xjdmain.obj +
  781. Xjdmaster.obj +
  782. Xjddeflts.obj +
  783. Xjbsmooth.obj +
  784. Xjdarith.obj +
  785. Xjdcolor.obj +
  786. Xjdhuff.obj +
  787. Xjdmcu.obj +
  788. Xjdpipe.obj +
  789. Xjdsample.obj +
  790. Xjquant1.obj +
  791. Xjquant2.obj +
  792. Xjrevdct.obj +
  793. Xjrdjfif.obj +
  794. Xjwrgif.obj +
  795. Xjwrppm.obj +
  796. Xjwrrle.obj +
  797. Xjwrtarga.obj +
  798. Xjutils.obj +
  799. Xjerror.obj +
  800. Xjmemmgr.obj +
  801. Xjmemsys.obj +
  802. Xjmemdosa.obj
  803. Xdjpeg.exe /NOI
  804. Xnul.map
  805. X
  806. Xnul.def
  807. END_OF_FILE
  808.   if test 348 -ne `wc -c <'makdjpeg.lnk'`; then
  809.     echo shar: \"'makdjpeg.lnk'\" unpacked with wrong size!
  810.   fi
  811.   # end of 'makdjpeg.lnk'
  812. fi
  813. if test -f 'timg.ppm.u.a' -a "${1}" != "-c" ; then 
  814.   echo shar: Will not clobber existing file \"'timg.ppm.u.a'\"
  815. else
  816.   echo shar: Extracting \"'timg.ppm.u.a'\" \(32510 characters\)
  817.   sed "s/^X//" >'timg.ppm.u.a' <<'END_OF_FILE'
  818. Xbegin 666 testimg.ppm
  819. XM4#8*,3(U(#$R-0HR-34*JD=*R&5HW'E\UG-VRVAKS&ELSVQOSFMNUG-VQF-F
  820. XMLU!3NE=:T&UPU'%TT6YQV'5XVWZ U7AZS7)RS'%QSW5PTWETTWQTTGMSS7=Q
  821. XMWHB"Y8^+T7MWQ7!OV82#YI"2UX&#VXF$V(:!V8B%X(^,X).0WI&.VI*/W)21
  822. XMW9*0W)&/W9.-V8^)T81[UXJ!Y)2*XY.)U(Y^UY&!W)>+U9"$RH1]T8N$VY>5
  823. XMVI:4UY22TY".W)N6WIV8VIV1V)N/TYB)W:*3X::-Y:J1XZ26UYB*UI&2VY:7
  824. XMXIJAXIJAU8^8V9.<WIV:X:"=T9F)PXM[Q9)VTZ"$[+>HYK&BW*F<UZ27UJ67
  825. XMW*N=X;2FY[JL\<:W[\2UZ,&SY;ZPW[JNWKFMW+>KW+>KT+NQT+NQU+JRU;NS
  826. XMW+RVW[^YY;^[Y\&]W[FUY;^[YL*]X[^ZX\"[Z,7 Y<? XL2]\<J^W+6IQY.,
  827. XMNX> UXZ.YYZ>XY"3RG=ZQ'9SW8^,VIV3Z*NA\,VVR69IU'%TV79YT&UPR&5H
  828. XMRVAKSVQOT&UPQF-FQ&%DOEM>Q&%DU'%TUG-VT6YQUG-VT'-UTG5WT79VSW1T
  829. XMS7-NS')MS79NSWAPW8>!T7MUT7MWTGQXS'=VTWY]X8N-YI"2WXV(V8>"U82!
  830. XMV8B%WY*/XI62V9&.T8F&TXB&SH.!U(J$W)*,V(N"V(N"X)"&W8V#W):&S(9V
  831. XMRH5YU9"$UY&*V)*+U9&/S8F'V9:4UY22W9R7WYZ9V9R0TY:*S)&"T9:'TYA_
  832. XMT99]UYB*WI^1X)N<V925V9&8W96<U(Z7THR5SXZ+T(^,RY.#SI:&V*6)Y+&5
  833. XMW*>8W*>8VJ>:W:J=X*^AZ+>I[+^Q\,.UZK^PZ;ZOY+VOXKNMWKFMWKFMWKFM
  834. XMWKFMT+NQT;RRU;NSV+ZVWKZXX,"ZYL"\YL"\Y+ZZY+ZZY,"[YL*]Y,&\Y,&\
  835. XMY<? ZLS%[\B\R*&5NH9_S9F2[:2DWY:6SGM^P6YQUHB%W(Z+X:2:]+>M\,VV
  836. XMW7I]V'5XTF]RS6IMRVAKRVAKRF=JR69IME-6Q6)ES&ELSVQOV79YV79YTW!S
  837. XMTW!SRFUOS7!RSW)SSG%RRF]MRF]MSW=RU'QWUX%]QW%MRW1TV8*"V(*&U7^#
  838. XMU8&'U("&U(&"UX2%U(6'TH.%UHJ-W)"3U8R/RH&$UHV0T(>*VX^2YIJ=XY:5
  839. XMW9"/V8N(SH!]S8!WPW9MT(1]Y9F2X96.VHZ'X):0ZJ":SH: T8F#UH^,WI>4
  840. XMWYB5VY21V961VY>3V9F0TY.*TY&,U9..V).4UY*3UI&3U9"2TY"0R8:&O8%Z
  841. XMQ(B!U:"1YK&BX[.>V:F4TZ*4UZ:8W:R>Y;2FY[NKZ[^O[,&R[<*SW[BJWK>I
  842. XMW+BIW+BIW+FLW;JMW[ROW[ROW+>NWKFPX+NRX[ZUX\&WY,*XXL.XXL.XXL6Y
  843. XMW\*VWL.WX<:ZX<B[X,>ZXLN]Z-'#WZBER9*/R8J)V9J9WY>4RH)_RGUZV8R)
  844. XMV)"+SX>"Y:FB_\6^V*^FTF]RS&ELS&ELT6YQT6YQRF=JP5YAO5I=MU17RVAK
  845. XMTW!STW!SVG=ZW'E\U7)UT6YQS&]QR&MMQ&=HQ6AIRW!NTWAVV(![VX-^Q6]K
  846. XMR')NTWQ\VH.#VH2(X(J.W(B.S'A^S7I[W8J+X9*4UXB*SX.&T86(S(.&PWI]
  847. XMS82'SH6(U8F,U8F,U8B'VXZ-VHR)QWEVV8R#U8A_X)2-Z)R5V8V&SX-\UXV'
  848. XMX):0V9&+W96/UH^,VI.0V)&.T8J'U)",T(R(T9&(UI:-U)*-RXF$SHF*V).4
  849. XMU9"2RH6'R8:&T8Z.TI:/UYN4WJF:Z+.DWJZ9T*"+WZZ@XK&CY[:HZ[JLZ+RL
  850. XMY;FIX+6FW;*CV;*DVK.EV;6FVK:GV[BKW;JMW[ROW[ROWKFPX+NRX[ZUYL&X
  851. XMYL2ZYL2ZX\2YXL.XXL6YX\:ZX,6YW\2XX\J]Z=##Y,V_V\2VOH>$S)62UI>6
  852. XMS8Z-RH)_RH)_U8B%VHV*QW]ZRX-^ZJZG_\_(G'-JQ&%EQ6)FRVALT6YRSFMO
  853. XMPV!DO%E=NE=;QV1HU'%UTW!TSVQPV'5YVWA\TW!TSVQPSFYQQ65HO6!AQ&=H
  854. XMTW9WW'^ V7Y^TG=WQ&UMS'5UV(*&W(:*U8&*VX>0WHF7U8".S'F$V8:1VXJ7
  855. XMU(.0S8*0SX22QWV-N&Y^L6IYMW!_M6QYI%MHIUQHRX",WY*;T(.,XY.;V8F1
  856. XMUXB,UXB,UH>'W8Z.W9&,T86 VXZ+XI62TX>+V(R0VHR9U(:3WY.FUXN>RH.0
  857. XMS8:3T8N4THR5T8R.SXJ,R(9_QH1]Q8I_WZ29[;BKY*^BT:*5SZ"3UJN>W;*E
  858. XMZ+RLZ+RLY[RLYKNKX+BHV[.CU*V=T:J:U[.DV+2EV;:GVK>HV[JLW+NMV[VN
  859. XMV[VNZKBR[+JTZKZV[<&YY\6ZYL2YW\:XWL6WV<6UX<V]X<J[VL.TY<R^\]K,
  860. XMYLF\R*N>SG^+VXR8V8V1S("$R(![S(1_NWANHV!6M'9NTI2,];R^_\O-:#- 
  861. XMQ&%ERF=KS6INR&5IP%UAO%E=P%UAQ6)FU7)VV'5YT&UQRVALU'%UU7)VS6IN
  862. XMRVALQV=JQ&1GPF5FS&]PUWI[V'M\S7)RP69FRG-SRG-SVH2(YY&5U(")OVMT
  863. XMNV9TNV9TN69QMV1OLV)ON&=TQ'F'T(63Q7N+LFAXMW!_O'6$LVIWE4Q9D492
  864. XMNW!\W9"9V(N4VXN3VHJ2VXR0UH>+T8*"VHN+WI*-U8F$TH6"X).0S8&%UHJ.
  865. XMUXF6S7^,V8V@R'R/WYBET8J7SHB1TXV6RH6'NW9XPX%ZW)J3Y*F>YJN@WZJ=
  866. XMV*.6TZ27VJN>X[BKY[ROZ+RLY[NKY+FIX;:FW;6EV[.CV+&AU["@VK:GV[>H
  867. XMV[BIW;JKW;RNW;RNV[VNW+ZO[+JT[;NUZ[^W[<&YYL2YYL2YW\:XWL6WV,2T
  868. XMXLZ^X\R]W<:WY\[ [];(VKVPMIF,XI.?UH>3QWM_O7%UK&1?GE91F%5+G%E/
  869. XMPH1\[K"H_\O-WZ:H210AQF-GSFMOS&EMO5I>M5)6O%E=R69JT&UQUG-WU7)V
  870. XMS6INS&EMTF]SRVALPV!DR&5IQ&)FRVEMT7%TTW-VSW)TRVYPR&QNR&QNSG9]
  871. XMSG9]UG^+U7Z*O&AYK%AIJU9LJ%-IJEAOHE!GFTIBH$]GJ5UXLF:!K&2!IEY[
  872. XMR8.?S8>CRH2?M&Z)H%ERJF-\OG:-OW>.S82ASX:CVY.JV9&HQ7Z-NW2#P7N"
  873. XMPGR#RH2-W9>@RH*7THJ?QW^>JV."K&*,BT%KQGJ8S8&?SX>;QW^3O7I[P7Y_
  874. XMTYB+Z:ZAZ[>AV:6/R)N'TJ61X;BKZ\*UY[^YX;FSXKNKX+FIW+BGVK:EVK:E
  875. XMVK:EVK>HV[BIVKFKV[JLW;RNW[ZPWK^SW\"TWK^SWK^SZKZTZKZTY<*UY<*U
  876. XMX,:VW\6UW,BVV\>UX,BWX,BWZ<:Y[<J]]<B^Z[ZTVJ*<PXN%X("3QV=ZL%EA
  877. XMJ%%9BT,^?C8QDE=,P89[W*6A^\3 _\?1EEUG1PDIP5YBS&EMR69JN%59LD]3
  878. XMP5YBT&UQU7)VTF]ST6YRS6INSVQPTF]SQ&%EO%E=Q6)FQ6-GTG!TVWM^TW-V
  879. XMPV9HOV)DS'!RWH*$UGZ%V8&(RG-_J%%=ED)3LEYORW:,Q&^%N6=^LV%XJUIR
  880. XMH$]GD$1?B3U8C45BF%!MQ'Z:RH2@V9.NUI"KMW")H%ERGE9MH%AOIUY[G51Q
  881. XMKF9]RH*9T(F8RH.2R(*)R(*)GEAAO'9_M&R!R8&6Q7V<J6& IER&@#9@<B9$
  882. XMKV.!SX>;P'B,OGM\WYR=[;*EX::9SIJ$T9V'V:R8Z[ZJ[<2WY;ROX;FSYKZX
  883. XMY+VMXKNKWKJIV[>FVK:EVK:EVK>HV[BIV[JLW+NMW[ZPX<"RX<*VX<*VX<*V
  884. XMX<*VZ[^UZ[^UY,&TY,&TWL2TW\6UV\>UW,BVY<V\W,2SY\2W]=+%]LF_VJVC
  885. XMRY.-QX^)OEYQHT-6C#4]D3I"C45 E$Q'K'%FU)F.\;JV_<;"]+O%6!\I1PDI
  886. XMSVMROEIAL4U4ME)9Q6%HT&QSUG)YV'1[T&QST6UTS6EPQF)IP%QCP%QCQ6%H
  887. XMQV-JR65LSVMRR&9LV'9\Q65JS6URR&MTV'N$T7B%R7!]NF1VN&)TOFN$Q7*+
  888. XMP&R,M6&!I5%RN&2%H$]QGDUOC4)IA#E@<2E2E$QUR(2NU)"ZSHJRRH:NL&V2
  889. XMLF^4J62)J62)I&>9DU:(E%B#>CYIBDUPG%^"L'21K7&.EUMXC%!M@4-I9"9,
  890. XM<S1B;2Y<@4%UBTM_4 8F@SE9N7.&THR?Z*NIZ*NIQ9%]QI)^SJ*(V*R2V[2>
  891. XMWK>AX+FMY+VQW[FUV;.OWKRJW[VKW[VKWKRJV[BIVK>HV[JLW+NMVKFKW;RN
  892. XMX;^TY<.XX\2XX,&UW\"TX,&UWL:UVL*QW,6TX,FXW\>VY<V\Z<R]V[ZO[L6Z
  893. XM[L6Z_<&\^KZY]*6GU8:(O61IK%-8FC9'E3%"G$1,HTM3CTA%IE]<SY>1[+2N
  894. XM^L;)_,C+@TA=3A,H7!9#NE9=LT]6M%!7P%QCSFIQT6UTSFIQRV=NSVMRSFIQ
  895. XMR65LQ&!GP5UDPU]FR&1KRF9MS6EPSFIQPV%GT&YTR&AMU75ZS7!YU7B!VH&.
  896. XMOV9SK%9HN6-URG>0QW2-L%Q\FT=GKEI[HDYOA316A#-5?#%8<"5,;25.D$AQ
  897. XMOGJDOWNEU9&YNG:>Q8*GHV"%J&.(E5!UD52&ATI\?T-N<C9ADE5X@41G;3%.
  898. XM:BY+:R],<#11<C1:7!Y$8R1241) 5A9*6!A,4PDI<2='SHB;]*[!SI&/Q(>%
  899. XMS)B$U*",X[>=Z+RBYK^IY+VGX[RPY;ZRX;NWW+:RWKRJW[VKW[VKW;NIV[BI
  900. XMVK>HV[JLW+NMX<"RW[ZPW;NPWKRQW\"TX<*VXL.WX\2XWL:UX,BWY<Z]X,FX
  901. XMUKZMV\.RZLV^ZLV^]\[#YKVRW:&<R(R'OF]QIE=9G41)ECU"GCI+F#1%DSM#
  902. XMFT-+I%U:R8)_WZ>AYZ^I_]+5L7V 7R0Y20XC50\\K4E0KTM2NE9=RF9MU'!W
  903. XMTFYURF9MQF)IS&AOR&1KQ&!GPEYEQ&!GQV-JRV=NS6EPT&IQSFAOP5UFRV=P
  904. XMS6MSW7N#T72 S&][MUUNLUEJO&5_SG>1R'25L%Q]GDMRGDMRH4UWCSMED$!J
  905. XMG4UWFU!_@39EA#]OGUJ*H%^0LG&BJ6B9NGFJE52%F%>(=31C<"]>93%J1Q-,
  906. XM=D!UFV6:@DQ_2A1'8BM;>D-S2A1!5B!-5Q]+1 PX41E%4!A$3A9"0PLW<"L_
  907. XMKFE]X*&KTI.=P8N$T)J3U*>3YKFEZL"IZ\&JY;^KX+JFW[BJX+FKX+BPWK:N
  908. XMW;JKWKNLWKNLW;JKV[BIVK>HW+FLWKNNXL"UX+ZSWKNPWKNPX+ZTX\&WX\&W
  909. XMX+ZTV\>WU\.SX<BZYLV_[LF_\<S"\\&[XK"JUI.3P7Y^L5UCH$Q2H#U(F39!
  910. XMG#- GC5"ES]$ECY#F4I,M&5GSHN,X9Z?[[6Z_\_4[;;%;C=&6!HX5A@V6 \]
  911. XMM%!7N%1;Q&!GSVMRU'!WT6UTS6EPS6EPQF)IPEYEP%QCQ6%HRF9MRV=NRV=N
  912. XMS&AORV5LS&9MQV-LS&AQT6]WVGB RVYZOF%MGT56M%IKR'&+RW2.LEY_GDIK
  913. XMIU1[O&F0KUN%I5%[O&R6NVN5J5Z-?3)A?SIJAT)RA$-TC$M\GEV.DE&"C4Q]
  914. XM<S)C;BU<9213625>B%2-A$Z#7RE>=T%T<#IM<#EI9B]?6")/3QE&2! \1@XZ
  915. XM3!1 2A(^9"Q8BU-_O7B,W)>KU)6?LW1^RY6.\;NTY[JF\<2PYKREY;NDX+JF
  916. XMW;>CW+6GW;:HW;6MW;6MW+FJW;JKWKNLW+FJV[BIVK>HW+FLWKNNV[FNX+ZS
  917. XMX\"UXK^TXL"VX;^UW[VSV[FOU\.SU\.SY<R^Z]+$Z<2ZV;2JQ9.-I')LEE-3
  918. XMC$E)CCI CSM!GCM&H#U(I3Q)ICU*FD)'L%A=N6ILT(&#[:JK]K.TY*JOYZVR
  919. XMC59E1Q ?6APZ5!8T4 <UOUMDPU]HS&AQU'!YTV]XS6ERRF9OS6ERP5UFO5EB
  920. XMP%QERF9OSVMTS6ERR65NR65NQ5UES&1LTVQVTVQVTW![S&ETOV%PM%9EN6!U
  921. XMP6A]O&:$KEAVI5)YK%F MF.0NVB5IU2!G$EVHU2"CC]M@#9H9QU/;BM@:B=<
  922. XM;"QB?3USEUF1D5.+C4^%>#IP@$-VA$=ZD%N+=D%Q>$%T=3YQ82EA41E1?$)]
  923. XM:C!K8B9;415*1@PU4!8_3!,O3!,OA4I?VI^TW:.AL7=UO8:"U)V9TZ29YK>L
  924. XMZ,"OY+RKX;NIX+JHX+JHX;NIX;FIX+BHX;:IXK>JV[BIW+FJW;JKW+FJVK>J
  925. XMVK>JW;BLW[JNVK6KX[ZTY\*YY+^VXKVTY+^VYL&XY<"WZ,2[[\O"_,S'X[.N
  926. XMP'Y_H%Y?FDI0C3U#FCU'E3A"E39!G#U(I$50ID=2ID=2ITA3IV!3S89YU9&+
  927. XMV96/];.X\[&VL7&#=#1&4!$M41(N6Q@\6!4Y7!0]PEYGQV-LT&QUUW-\TV]X
  928. XMR65NPEYGPU]HP%QEO5EBPEYGS6ERT&QURF9OQ6%JQV-LR&!HS&1LV7)\U&UW
  929. XMSVQWNE=BMEAGM5=FP6A]R&^$P&J(L%IXJ59]L%V$IU2!ET1QC#EF@2Y;<R12
  930. XM9!5#:B!2;2-5;2I?:"5:<C)HCT^%DU6-JFRD@4-YB$J @$-VF5R/9S)BFV:6
  931. XMB%&$72998BIB6"!8>T%\@4>"10D^5AI/1@PU0@@Q7B5!G62 O8*7RY"EJ6]M
  932. XML'9TUI^;Z[2PY;:KX[2IU*R;VK*AX;NIW[FGW[FGXKRJX;FIW+2DW+&DW;*E
  933. XMVK>HV[BIW+FJV[BIVK>JVK>JW;BLW[JNW;BNY+^UY+^VWKFPWKFPY\*YZ\:]
  934. XMZL6\\,S#Y<&XV:FDL8%\CTU.?CP]CCY$CS]%F3Q&E3A"EC="GC]*J$E4L5)=
  935. XMO%UHQ69QS89YW)6(\:VG_\"Z]+*WM7-X;2T_3 P>4Q0P8R1 4@\S7AL_<2E2
  936. XMR&1MR65NSFISTFYWSFISQ&!IOEICOEICPU]HP%QEQ6%JSFISS6ERQ&!IPEYG
  937. XMR&1MU6UUS65MUW!ZSF=QR&5QK$E5M5=HP6-TNF%XPFF O6:(K59XF4=QD3]I
  938. XMBSAIA3)CCCMHBSAE;A]/:1I*:1]3:B!471E1;2EACU&+C4^)H62>@$-]?T)\
  939. XM72!:?$!WBT^&F%^%@DEO<C=F?T1S=SEQ5!9.>SIW;BUJ/@ Q5A1)4! S:"A+
  940. XMGU]NY*2ST9.5K6]QG6A9VJ66\+^QVJF;X;:IYKNNRJ.3UJ^?W;FJV;6FVK.C
  941. XMW;:FW[2DV:Z>V:V;W+">VK>HVK>HW+FLV[BKV[:JV[:JW;BNW[JPX;FPY+RS
  942. XMX[NSW[>OXKJRZ,"XX[FRUJRET9F;P8F+N7-ZI5]FG492G492JT97I4!1H3=*
  943. XMHSE,IT55M%)BN&-OQ&][SX*+VXZ7W:2,V:"(]+FN_\6ZPX.+:BHR4 TH9B,^
  944. XM610Z7QI 4 @Q7!0]:"%&T&QUS&AQRF9ORF9OQF)KP5UFP%QEPEYGQV-LPU]H
  945. XMQF)KS&AQR65NP%QEP5UFRF9OX7F!SV=OTVQVQE]IPE]KI4).MUEJS6^ RW*)
  946. XMN6!WGD=IB3)4=R5/=2--@S!ADC]P@"U:AS1A9QA(:1I*7A1(7Q5)7AI2EE**
  947. XMFUV7EUF3@D5_<C5O411.5AE3:2UDBT^&8RI0B5!V@49U;C-B9BA@2PU%=C5R
  948. XM;RYK5A1)1 (W5Q<ZN7F<W)RKQ864GF!BMGAZYK&BW*>8Z;BJW:R>QYR/UJN>
  949. XMV;*BU*V=W+BIU[.DV+&AW+6EW[2DVJ^?W+">X;6CV;:GVK>HV[BKV[BKVK6I
  950. XMV[:JW;BNW[JPWK:MXKJQXKJRXKJRZ,"XYKZVT*:?M(J#B%!2E5U?L6MRL6MR
  951. XMJ5)>H$E5IT)3GSI+LDA;O%)ERFAXVWF)VH61VX:2VXZ7XI6>XJF1Z*^7Z["E
  952. XMP89[=C8^4A(:5Q0O618Q6Q8\81Q":R-,:"!)8AM S&=HSVIKSVENR&)GP%AB
  953. XMO%1>PU=HREYOQEQMQUUNQ6)NQF-OP&!EO%QAPV=IT'1VTFYUUG)YQ6-QSFQZ
  954. XMP&:!DSE4Q'":OFJ4FTY_B3QM="U>7QA);"=7DDU]CDEW<"M93Q,];3%;515 
  955. XM7AY)9")/40\\A#UNK6:7F5*%IE^2<RUB8!I/5!)'7!I/C4V!A$1X6S->>E)]
  956. XM>$=U4R)0104X2 @[FE%_@#=E5 <HACE:PWJ%V9";P8%XL7%HR(UV[K.<Z+FL
  957. XMY;:IX+&DVZR?UZJ<UZJ<VZZ@W;"BW;"BW;"BWK&CWK&CX+&DWJ^BVZR?V*F<
  958. XMV;6CV[>EW;6DV[.BV[.BW[>FW[RMXK^PX\:ZUKFMZ</'TZVQYJ["S)2H?S=6
  959. XMCT=FDE=LE%ENNW>'N'2$OW!RK%U?QW!FRW1JUWYIWH5PXX]TYY-XX9AWXIEX
  960. XMWYM[X)Q\Y:*K^;:_R(24;RL[3@DA6A4M81H]7A<Z81E"9AY'9AY)8QM&81E$
  961. XMU7!QS6AIPEQAN%)7MT]9O%1>QUMLSF)SR%YOS&)SQ&%MO%EEN5E>OEYCO6%C
  962. XMN5U?RF9MS6EPT&Y\W7N)T':1HDACL%R&H$QV?S)C;B%2;B=8@#EJAD%Q>#-C
  963. XM8!M)611"6Q])8"1.41$\7!Q'61=$92-0G5:'EU"!F%&$@CMN6A1)50]$<C!E
  964. XME5.(E%2(;R]C:T-N<DIU8"]=0 \]41%$6AI-C$-Q>"]=BSY?PW:7VI&<NW)]
  965. XMJ6E@RHJ!ZJ^8\+6>XK.FX+&DW*V@V:J=UJF;UZJ<VZZ@W;"BV*N=V*N=V:R>
  966. XMVJV?W:ZAWJ^BWJ^BW:ZAU+">V[>EX[NJX;FHWK:EW+2CUK.DT["ARJVAXL6Y
  967. XMY\'%L8N/@DI>=S]3A3U<@CI9D%5JD59KIV-SOWN+T(&#UXB*X(E_WXA^ZY)]
  968. XMYXYYY)!UZ)1YWI5TVY)QWYM[[JJ*_\K3RXB1>#1$30D94@TE7!<O7!4X7Q@[
  969. XM8AI#9AY'9Q]*8QM&81E$T7!RQ&-EMU-:L4U4N%%>P5IGR%YQRV%TQEQOS&)U
  970. XMPU]PMU-DNEEDR&=RPV5NLU5>J4=7I$)2N%EPR&F P6N+HTUMD$!L?R];:B!2
  971. XM=2M==C%C>#-E=3-B9")14Q$^4A ]:RM66!A#3@PX7!I&5Q) ?#=EJV25=2Y?
  972. XM@#EN719+6A=,:B=<B$A^HF*8CE"&?#YT>TV"21M03AM-6"575QM(5AI'C$EM
  973. XMFE=[SHF=Q8"4MW5XM7-VPXI_X:B=[[FF[[FFVZZBV:R@UJF=U:B<TZB;UJN>
  974. XMVJVAW*^CUJF=UJF=U*F<U*F<UJF=V:R@W*^CW;"DV+2EW+BIX;:GWK.DX+&D
  975. XMYK>JZ[RQZKNP]<;#Q)62AU5?>4=18",[<C5-NW25ED]PD%1OEEIUFUEKP'Z0
  976. XMT(.$YYJ;X8R XXZ"YY)\ZI5_Z9>"YI1_X)B%ZJ*/^+.E_\&ST(R>@3U/3 <=
  977. XM40PB7A@V6Q4S7!4Z8QQ!8QM$9Q](9Q]*8QM&81E"P6!BO%M=NE9=O5E@Q5YK
  978. XMR&%NQEQOPEAKP5=JQEQOP5UNOUMLQV9QTW)]SW%ZPF1MO%IJHD!0L%%HL5)I
  979. XMIE!PG$9F>BI6<"!,=BQ>B3]Q>C5G;"=98R%06AA'8R%.;RU:;"Q7515 30LW
  980. XM7QU)9R)0AD%OF%&"7!5&:B-84PQ!9B-8C$E^C4V#A45[ATE_D%*(83-H/A!%
  981. XM<#UO<T!R20TZ:BY;NG>;QH.GR828IF%UI6-FU)*5\+>L[+.HY:^<\+JGV:R@
  982. XMUZJ>U:B<U*>;U*F<UJN>V*N?V:R@UZJ>UJF=TZB;T*68T:28TZ::V*N?W*^C
  983. XMV[>HW+BIWK.DV["AX[2GZ[ROZ+FNW["EJ'EV8S0Q1Q4?AE1>A4A@<#-+LFN,
  984. XML6J+DU=RG6%\HV%SMW6'R'M\UXJ+VH5YXHV!Y(]YZ)-]Y9-^Y9-^\ZN8_\"M
  985. XM^K6GW)>)<2T_4@X@4@TC9!\U8APZ7QDW8QQ!7A<\9!Q%:"!):"!+8QM&81E"
  986. XML5%6ME9;OEUGQ61NR61SQF%PP5EMO%1HOU9LOU9LP5QSR61[S6J S&E_R6M]
  987. XMR&I\K5%MC#!,D3E:C356A3-<DT%J=BM;>B]?@3QN?#=I:"=8<S)C:BE84A% 
  988. XM;2U9BDIV8!Q(615!4 HW9B!-A3MMASUO=BQ@60]#91U49!Q38AY6AD)Z@#]Z
  989. XM=31OC$^)=3AR.PI+>TJ+FF2;6R5<1@TSH&>-TI:GN7V.E%M=KW9XT9N2Y[&H
  990. XMZ+>JY+.FX;6EY+BHVJZDV*RBU:F?U*B>UJJ@UJJ@UJF?U:B>TZ:<U*>=T:6;
  991. XMSZ.9SZ.9T:6;UZNAW+"FV+"GV[.JX;*IX[2K\;BPZ[*JTY".LF]M?S<\7!09
  992. XM9A\PG59GFU5Q?#92CTQPMW28F5Z!G6*%I61YHF%VR'^!S(.%W(U]Y)6%ZIJ&
  993. XMY)2 XI:(\Z>9_K>X[::GL&MY>31"8AHY4 @G5 PM7Q<X7!,Y81@^9QU'6Q$[
  994. XM91M':1]+:!Y(9!I$81<_L5%6MU=<P%]IQ&-MQ6!OP5QKP5EMP5EMP%=MP%=M
  995. XMPUYUS&=^QV1ZO%EOMEAJNEQNESM7?R,_?R=(@"A)<R%*BSEB>"U=A#EI>#-E
  996. XM=C%C7!M,7QY/61A'8B%0C$QXA45Q3PLW6!1 4PTZ:B11DTE[@3=I71-'81=+
  997. XM6Q-*=R]F:"1<;2EA7QY9<"]JDU:04A5/0 ]0J'>XB%*)10]&<3A>KW:<I&AY
  998. XMH&1UKW9XU9R>[[FP[KBOXK&DY+.FXK:FW;&AW+"FV*RBU:F?U:F?UZNAUZNA
  999. XMU*>=T:2:S)^5SZ*8T*2:T:6;T:6;U*B>VZ^EX+2JV[.JV[.JW:ZEW*VDZK&I
  1000. XMYZZFS(F'IV1BC45*@SM @#E*>#%"B4-?G%9RCDMOGUR IVR/HF>*GUYSD$]D
  1001. XMR'^!S(.%VXQ\WH]_Y96!ZIJ&_;&C_[ZPWYB9ED]081PJ51 >9!P[5 PK5P\P
  1002. XM8QL\7Q8\6A$W81=!:R%+91M':1]+:!Y(8QE#8!8^N%ICO%YGPV%OQ6-QQ&!Q
  1003. XMPU]PPUUTQ%YUNU9QPEUXQF)_QF)_OEY[MU=TK4]NJ4MJJ%-]FD5OD#UJD3YK
  1004. XM<B56?S)C=2]D?3=L9"-6;2Q?4Q-&2 @[1P@X>#EIJVN7;2U93PDV6A1!7A5$
  1005. XM;B54C$%S>S!B60]#9!I.715,;B9=;"A@7QM33@U&<C%JB4R&20Q&9"YUHVVT
  1006. XM=CYV>4%YFV.!D%AV@4Q/J71WX*^BXK&DXK2CYKBGXKJJW[>GV;*FU*VAV*^F
  1007. XMU:RCU*B@U:FAV:NDV*JCU:6?T*":R9F3SIZ8TZ6>UJBAU:FAUZNCVK&HWK6L
  1008. XMW;.LW+*KVZFAU:.;Z*>B\K&L[IN<U8*#D#$^F#E&H41=DS9/BSU>F4ML@D%H
  1009. XM@4!GJFR6KW&;GUUXDU%LNG5WQX*$SX9WWI6&XYB*[Z26]:JJVH^/DTQC6!$H
  1010. XM2P8L7QI 4PDS6A Z8AA":B!*:!Y(7!(\7A1 <BA49!I$:!Y(9QU%81<_7A0\
  1011. XMOV%JPF1MR&9TRFAVS&AYRV=XR&)YQ5]VMU)MQ6![R66"PEY[OEY[P&!]MEAW
  1012. XMI4=FD3QFD#MEA3)?CSQI<215@#-DA3]TD4N 71Q/5!-&1@8Y6QM.7!U-@$%Q
  1013. XMJ&B47Q]+6!(_71=$:!].<"=6?C-E=BM=71-'81=+="QC50U$7!A06Q=/6AE2
  1014. XM@4!Y>SYX2@U'<SV$EF"GD%B0O86]H&B&?D9DGVIMQ9"3WZZAZ;BKZ+JIW[&@
  1015. XMV;&AW[>GV[2HT:J>U:RCTJF@T:6=U*B@V*JCV*JCU:6?SY^9RYN5TJ*<UZFB
  1016. XMV:NDUZNCUJJBUZZEV[*ITJBAVK"IX*ZFW*JB[ZZI][:Q]Z2EX(V.RFMXFSQ)
  1017. XMBRY'HD5>GE!QFTUNE%-ZD5!WF5N%MGBBI&)]HV%\L&MMR82&THEZ]:R=_[:H
  1018. XM]:J<QGM[@C<W6!$H7!4L71@^5A$W6 XX:1])8AA"6Q$[:1]):R%+81=#8QE%
  1019. XM9!I$:!Y(9AQ$81<_71,[P6)MR&ETS6MYQ&)PO%AKN55HNU9MO5AOPU]\PEY[
  1020. XMLU)TKDUON%V N%V FD%H@RI1="-5@S)DA3AK@#-F@SQOD$E\AT1Y<B]D82%5
  1021. XM6QM/6QM.1 0W8R)3C4Q]F%:%7!I)5A ^:")0?S9E7A5$9AM-8A=):R!2;B-5
  1022. XMB#YR?C1HB4-XB4-X:BE<D5"#?#]R:"M>@DB,CE28C5:'LWRMF&1YGFI_Q)2.
  1023. XMT:&;W;&=VZ^;V:^8W;.<W;:FW+6ETJVDS:B?SJ6<U:RCV:NDTJ2=T:&;U:6?
  1024. XMV*2?TIZ9T9V8UZ.>VZNEW:VGV:NDUZFBU*NBU:RCXK*OXK*OY[6M[+JR^KJR
  1025. XM]K:N^J6C\)N9UVY[N$]<H3=2F2]*DS]BKUM^G5V&=C9?@4%LIF:1N':3M7.0
  1026. XMK6=PP'J#ZJ*=XYN6U(R)F%!-:!\L7A4B5Q S5@\R6!-%6Q9(7! _815$9QM*
  1027. XM:AY-:1U(9QM&:!Q':1U(:A]'9QQ$818]7A,Z71(YPV1OPF-NOEQJM5-ALT]B
  1028. XMN55HP%MRPUYUPU]\P%QYPV*$Q62&L%5XE3I=@"=.>!]&>BE;?"M=>BU@?C%D
  1029. XMA#UPBD-V@#UR<S!E7!Q05Q=+6QM.41%$;"M<>3AI@#YM9B139B!.:2-1>3!?
  1030. XM91Q+:R!28!5'9!E+7Q1&71-'>"YB:R5:6!)'82!3A$-V8217:"M>ADR0@4>+
  1031. XMA$U^H&F:HFZ#M("5SIZ8TJ*<U:F5U:F5UJR5V*Z7UJ^?U*V=S*>>R*.:S*.:
  1032. XMSJ6<T**;S9^8SY^9TJ*<U:&<T9V8V*2?U:&<T*":T:&;U:>@VZVFW+.JWK6L
  1033. XMY+2QX[.PYK2LZ;>O][>O]K:N_ZJH^*.A[821QEUJJ#Y9FS%,A#!3CSM>C4UV
  1034. XMA45N>CIE@D)ML6^,KVV*M6]XP7N$THJ%QW]ZKV=D?C8S7!,@7A4B718Y718Y
  1035. XM7!=)7!=)8!1#9!A':!Q+:AY-:1U(9QM&:!Q':1U(:A]'9AM#818]71(Y7!$X
  1036. XMQ%]LPEUJNU9EMU)AO%=HQ6!QRF9ZR65YO%QXHT-?JU!RQ6J,L5Z%E4)IA#1@
  1037. XM>RM7>"M@;2!5:!Y2="I>?3AJ@#MM=C5H;RYA9"-67AU07AU06QI-=3)F9B-7
  1038. XM<2M@A#YS@D!O92-26Q9&40P\5PT_5 H\8QA(8!5%60X]9!E(5PX\40@V7AA#
  1039. XM="Y9:B90BT=Q<CEM:3!D@TQRD%E_IG.#NXB8QY>1R)B2T*22TZ>5U:N8U:N8
  1040. XMTZB;SZ27R:"7QYZ5T:6;S:&7SI^6T:*9V**;UJ"9V)Z9V9^:VZ&<U9N6SYF2
  1041. XMTYV6VZRCY;:MY;FOY+BN[+.QZK&OY;.IY[6K[KFH\+NJ_;*H^J^E_Y>=U&QR
  1042. XMN$EAJ#E1@"5(=1H]=#-:B4AOA4!F;2A.IV%_LFR*O'6&QX"1Q'J$N&YXGU1@
  1043. XM<R@T5P\F6Q,J7!0[6A(Y61)#5Q!!91E&:!Q):1U(:AY):1Y%:!U$:1Y#:A]$
  1044. XM:1Y#91H_8!4Z71(W7!$XM5!=NU9CPEULQF%PS&=XT&M\S&A\Q6%UR6F%H$!<
  1045. XMGD-ELUAZFTAOBSA?A#1@=B92;B%691A-71-'9!I.<2Q>>S9H=#-F:BE<=#-F
  1046. XM;RYA8B%461A+=S1H8!U1<"I?H%J/D$Y]:2=651! 7QI*9QU/7Q5':!U-7A-#
  1047. XM9QQ+6 T\711"711"4PTX>3->F%1^E5%[<CEM=CUQJW2:JG.9P(V=R9:FS)R6
  1048. XMU:6?TZ>5V*R:V[&>UZV:T*68RI^2Q9R3QIV4SJ*8S*"6T:*9V*F@V:.<T)J3
  1049. XMTYF4VZ&<U)J5U)J5UJ"9X*JCY[BO[+VTYKJPX;6K[;2R[+.QYK2JZ+:L[KFH
  1050. XM[[JI_K.I_+&G_Y>=W75[PU1LL$%9A2I-;A,V8!]&<S)9CTIP<BU3C4=EM6^-
  1051. XMMW"!QX"1RH"*O7-]H59B=RPX6Q,J61$H50TT50TT6!%"61)#9QM(:!Q):1U(
  1052. XM:AY):A]&:A]&:R!%;"%&9QQ!8Q@]7Q0Y7!$V7!$XL$12O5%?RF%NT6AUTFMX
  1053. XMT&EVQF)UOUMNLE=OECM3C3M:B3=6:1Y&:R!(>S5B=2]<819(8QA*7!)$6 Y 
  1054. XM92!0?#=G>3AI:BE:?#EK?CMM:B1950]$=R]F9!Q3;B-;F4Z&G6"0>CUM3@T^
  1055. XM5!-$611"51 ^9!I&7A1 7A,Z6@\V71(W60XS:!X^F4]OKF:#@CI7CUEZE%Y_
  1056. XMPHVFO(>@TI^LTZ"MT)^?W:RLVZRCW["GX+&DVJN>T9^5RIB.R):,RIB.R)N/
  1057. XMS)^3V*6;VZB>UYN4RHZ'T8^*W9N6V9>2X)Z9YJJC\+2M[[RR[[RRZ+NOY;BL
  1058. XM\[*Q\[*QZ+JKZ;NLY\"FYK^E]+:B\;.?]YB5X8)_QUINK4!4C3%1>AX^7!D^
  1059. XM71H_ACY=@SM:<2A%N&^,L66"P762TH6@P'..E$=B<B5 71 Q7 \P5PXT6A$W
  1060. XM81E"8QM$:1M#:1M#:AU":QY#;B%";R)#<"1"<"1"9ADZ8Q8W8!,V7A$T7Q$Y
  1061. XMNT]=Q5EGRV)OS&-PRF-PR6)OPU]ROUMNJ$UEBS!(;QT\9!(Q71(Z=2I2?CAE
  1062. XM;2=46@]!91I,81=)5PT_7QI*>31D>SIK;RY?=3)D?CMM;2=<5A!%>#!G91U4
  1063. XM819.="EAH&.3G6"09"-47QY/7AE'5A$_7!(^5@PX6 TT5 DP2P E;B-(K6.#
  1064. XMGE1TD4EFD$AEMH"AK7>8LWZ7N(.<U:*OUZ2QT)^?VZJJW["GX+&HWJ^BU::9
  1065. XMS)J0Q9.)Q9.)QY6+RYZ2T:28W*F?V::<U)B1RX^(TY&,W9N6XZ&<ZJBC[;&J
  1066. XM\;6NZK>MZK>MZKVQ[L&U\[*Q];2S[+ZO[;^PZL.IY\"F]+:B\K2@_9Z;[(V*
  1067. XMRUYRJ#M/D#14@B9&7!D^5!$V;R=&BD)A:2 ]L6B%N6V*PG:3V(NFOW*-@C50
  1068. XM:QXY8!,T8Q8W710Z7!,Y7Q= 7!0]:!I"9QE!:1Q!;!]$<"-$<21%<25#;R-!
  1069. XM9!<X8A4V7Q(U7Q(U8!(ZS5YMSE]NR5QJQ%=EP%=DPUIGO5EJN%1ENV)WDSI/
  1070. XM81,Q6@PJ:R9,?CE?9R=3104Q60X^8A='81M)6A1"71A&;"=5=3-@=3-@<2Q<
  1071. XM>#-C<"E<8!E,?S-K:Q]77Q%,8Q50?$%RL'6FBDM[B4IZA4-P;2M86 XX1@ F
  1072. XM6 LN6 LN:QT\J%IYU(>@ETICGE-IQWR2T9VRPX^DIG.!P8Z<WJRVWZVWV:BJ
  1073. XMX[*TXJ^MX*VKVZ>@TIZ7RY6,QY&(R9*'RY2)U*68V*F<W::;U)V2TY.+UI:.
  1074. XMX)J4Y)Z8[:>A\:NE\K*J\[.KZ[2I[+6J[+VP\<*U][.Q^;6S[<&O[\.QY\FJ
  1075. XMYLBI\\"D\\"D_JB@\9N3TFEWK412ECA7@B1#610Y5Q(W814PA#A3>"I(FDQJ
  1076. XMQWF:RWV>VXRPP'&5>"E-9A<[8A4Z9QH_8!4Z7!$V714V61$R:!L^:!L^:1P]
  1077. XM;!] <25"<25";R,^;" [8A8S8!0Q7Q(S8!,T8A0]SV!OREMJP%-ANDU;N$]<
  1078. XMNU)?LDY?J$15GD5:ARY#8!(P8Q4S>31:@3QB925141$]60X^71)"7AA&7AA&
  1079. XM7!=%7AE':BA5=S5B<2Q<<2Q<<2I=:"%4A#AP;R-;91=2:!I5:S!AK7*C<C-C
  1080. XM71Y.6AA%51- 50LU50LU1P =;!]"KF!_RGR;M6B!F$MDV(VCY9JPPX^DOHJ?
  1081. XMEF-QPH^=UJ2NT)ZHSIV?W:RNXJ^MWJNIV*2=SIJ3RI2+R)*)RY2)S9:+UZB;
  1082. XMUJ>:U)V2QY"%S8V%V9F1Y)Z8XIR6ZZ6?\*JD\K*J];6M[[BM[[BMZ[RO[+VP
  1083. XM^;6S^[>U[L*P\,2RZ,JKZ<NL^,6I^L>K_ZJB]J"8W'.!NU)@G3]>?1\^4@TR
  1084. XM6A4Z6@XI=2E$@C12>BQ*RGR=SX&BV8JNOW"4;R!$8!$U7A$V8Q8[7A,X8!4Z
  1085. XM91T^91T^:1P_:1P_:AT^;2!!<25"<"1!;" [:!PW814R8!0Q7Q(S810U8Q4^
  1086. XMU%AGS5%@MDQ?KT58?RI#F$-<@S9;<"-(?B]@@3)C;!M/7@U!C4)T?3)D611"
  1087. XM3@DW7!0]714^9AY'9Q](6!,[6A4]9B!+:2-.=3!>9!]-8A]1:B=9@3YS;"E>
  1088. XM:B9>7AI292Q>H6B:>41S2!-".@8N4!Q$2PPO/P C7A,KGU1LTX20N&EUGE=4
  1089. XMUH^,\;6FS)"!RHJ2W)RDIG!UPHR1OI62O921QZF@U+:MSZVBRJB=S:"6S)^5
  1090. XMU):0TI2.W9*.XI>3\I2+Y(9]VX!VXXA^YI*)YY.*Z)R5\J:?ZZB@[ZRD[[2I
  1091. XM\K>L[[JM[[JM[;RN[KVOY[^LZ,"M[<*R[\2T]L.W^,6Y_\.R_\2S_K6F\JF:
  1092. XMX(F)OF=GID%<CBE$?@]";P S7!%#7A-%?C1><RE3I5U\U(RKV9*IR8*9<BQ 
  1093. XM8APP:2(]91XY7Q8\:!]%9AQ(:B!,9!L_91Q :B%%;R9*<2E*;B9':B)#91T^
  1094. XM714T7A8U81DX9!P[:" ]VEYMRT]>J3]2H3=*?RI#DCU6>RY3;!]$<R15;!U.
  1095. XM:!=+:1A,F4Z <"575 \]6Q9$:2%*:"!):B)+9AY'6Q8^7AE!9!Y)8AQ'8QY,
  1096. XM;BE7:"577!E+@#URAD-XAD)Z9R-;3Q9(?41V>41S1 \^2A8^0 PT1@<J5A<Z
  1097. XMG%%IOG.+O6YZL6)NRX2!Y)V:V9V.V)R-SHZ6VIJBI&YSP8N0R)^<RJ&>S*ZE
  1098. XMTK2KU[6JS*J?S)^5S)^5VIR6V9N5X)61WY20YXF WH!WW(%WYXR"ZI:-[)B/
  1099. XM[:&:]JJC[:JB\*VE[[2I\;:K[[JM[[JM[KVO\+^QZ,"MZ<&N[<*R\,6U]\2X
  1100. XM^,6Y_\2S_\2S_[NL^*^@YY"0Q6YNK4ACE"]*@A-&<P0W5 D[6@]!;"),=BQ6
  1101. XMC45DTXNJTHNBPGN2>S5)9R$U:B,^9!TX8!<]:!]%91M'9QU)9QY":!]#:B%%
  1102. XM;B5)<"A);B9'9Q] 8AH[6Q,R714T7Q<V8QLZ9AX[V69\TV!VM%-KL$]GCD!?
  1103. XMACA7;2--8AA";2!36 L^81%%:!A,F$U_7A-%30@V7QI(;B91;R=2:R-.8QM&
  1104. XM7AA%8AQ)8AQ)7!9#6Q9&;RI:8!U15A-'AT1YE%&&EU.+>#1L7R-:>3UTH&66
  1105. XM5QQ-5!D\-0 =6Q8ND$MCS7V-QG:&M69JQ79ZYJ2=Y:.<S9B)VZ:7RY>=UJ*H
  1106. XMJWM^OHZ1S**?SZ6BUJZHW+2NXK:NTJ:>S):-S9>.VIB1V9>0UXV'T8>!W()Y
  1107. XMVH!WW8A]Z).(ZYJ0[)N1[:.9]JRB[ZRB\J^E\;2J\K6K[[BL\;JN\+VP\\"S
  1108. XMZ[^M[<&O[L.S\,6U],6X]L>Z_,BT_,BT_\*O^;FFZYN5R7ESLT]CF#1(AQ=!
  1109. XM> @R4P@Z6@]!7A0^?#)<=R].U(RKTXRCP7J1B$)6;"8Z:2(]8QPW81@^:B%'
  1110. XM91M'91M';"1%:B)#:B)#;25&<"A);25&91Q 7A4Y7!,W7A4Y8!<[8QH^91Q 
  1111. XMR%5KRE=MKDUEJ$=?@C13:AP[8QE#:!Y(:1Q/50@[70U!60D]CD-U9AM-7AE'
  1112. XM8AU+91U(;"1/:"!+7Q="7QE&8QU*8!I'7AA%:"-3:"-33PQ 71I.CTR!@3YS
  1113. XMB45]@#QT;C)I>CYUO(&R:S!A0 4H/P0GAD%9P'N3PG*"K5UMQWA\Z9J>WIR5
  1114. XMWIR5X:R=W*>8T)RBW:FONHJ-NHJ-Q)J7R)Z;UZ^IY+RVX+2LT:6=RY6,RI2+
  1115. XMU)*+T8^(SH1^R'YXWX5\XHA_Y9"%[)>,ZIF/Z9B.ZJ"6\ZF?\:ZD\["F\;2J
  1116. XM\K6K[[BL\+FM\;ZQ],&T[,"N[<&O[L.S\<:V]<:Y]L>Z_,BT_,BT_\.P_+RI
  1117. XM\:&;T(!ZN55IG#A,B1E#>0DS5@L]5PP^6Q$[>2]9;R=&R("?VI.JPWR3D4M?
  1118. XM;2<[91XY8!DT81@^:R)(91M'91M';25&:B)#:2%";"1%;R=(;25&9!L_7!,W
  1119. XM7Q8Z81@\9!L_9AU!9AU!MU5WJ4=I@R]2?"A+92!&6A4[>#9C@T%N60]#6 Y"
  1120. XM7A%$3@$T@SII@3AG>#9B7QU)81A&;"-19QY,7Q9$81I+7QA)7!5&9A]0<2M@
  1121. XM:2-82@<\7QQ1A4)W9R19>#1L<BYF6QE281]8J6F5?#QH/P 6=C--MVATR'F%
  1122. XMLEU<O&=FWX^)[IZ8TI>*W:*5X;FHU:V<T*RMTJZOLXR,I7Y^Q9:7T:*CY:ZM
  1123. XM[;:UX:.?V9N7U9&+U)"*V(Z(U(J$T85^T85^WXZ$XY*(YI:,Z)B.Y)>,Y)>,
  1124. XMYZ"5\:J?\;"C\K&D\K6I\K6I\+BJ\;FK]+VQ]K^S\+ZN\;^O[\.S\L:V\,JX
  1125. XM\<NY\\RT\\RT^\BL]\2H\:N;THQ\P%]JH4!+D1]!@0\Q60Y 408X71,]:B!*
  1126. XM<BI)KV>&WI>NQX"7E$YB;"8Z81HU7A<R81@^:R)(9AQ(9QU);"1%:B)#:2%"
  1127. XM:R-$;B5);"-'91Q"7A4[8!8^8QE!91M%91M%8QE%M%)TEC16<1U <Q]"9B%'
  1128. XM8AU#C4MX?CQI5 H^8AA,9!=*4@4X<"=6@3AG<S%=4A \;B53<RI89AU+8!=%
  1129. XM91Y/6Q1%6A-$<2I;:2-8<2M@5Q1)6QA-;"E>7!E.?3EQ7!A02 8_3 I#?S]K
  1130. XMCDYZ:29 KFN%PW2 KE]KO&=FY9"/Y)2.U(1^V9Z1Z*V@UZ^>V[.BVK:WS*BI
  1131. XMK8:&F7)RS)V>X+&RZ+&PX*FHSY&-S(Z*T(R&T8V'U8N%THB"U8F"VHZ'XI&'
  1132. XMY92*YI:,YY>-Y)>,YYJ/ZZ29\ZRA\*^B\K&D\K6I\[:J\+BJ\+BJ\KNO]+VQ
  1133. XM[[VM\;^O[\.S\<6U[\FW\<NY\\RT\\RT_<JN^\BL^;.CW):&RFETJTI5FRE+
  1134. XMBQD[7Q1&4@<Y8AA"81=!?#13F5%PWI>NTXRCEE!D;"8Z8!DT7A<R8AD_:R)(
  1135. XM9AQ(:1]+:R-$:R-$:R-$;"1%:R)&:!]#9!M!7Q8\8!8^8AA 9!I$8AA"7A1 
  1136. XMBS9F<AU-91Q*;B5351E&2P\\@41V7!]16A1)91]48QA*7A-%5Q$^9R%.8B%*
  1137. XM82!)@#=E>"]=7A5$6Q)!9R!36A-&6A-(?C=L7!9,<"I@8A]47QQ171I.7!E-
  1138. XMD$V!6A=+3 0[4PM"8QM"G%1[IEQLPGB(N&9CN6=DVX5W\9N-W8Y^SG]OTYZ/
  1139. XMX:R=SZZ>U[:FTK:RR*RHO).3HGEYV:&CYJZPZZ.FW968U(*%TH"#UX* VH6#
  1140. XMV8>"V(:!VHJ$WX^)X9.-Y):0YIF0YIF0Y)N.Z)^2ZZ:8[ZJ<[ZV>\:^@]+6G
  1141. XM];:H\K>J\K>J\[BM]+FN\[NK]+RL[\&R\L2U[<FW[LJX[LVS[LVS]\NM]\NM
  1142. XM^KFDX)^*TG)WLU-8HS)+DR([819(6 T_8!9 8!9 @#A7BT-BUH^FX)FPFE1H
  1143. XM;RD]8QPW81HU9!M!:R)(9AQ(:B!,;"1#;B9%;R=(;25&:!]#8QH^8!8^7Q4]
  1144. XM81=#8QE%9!E(819%6Q!"?"=7;QI*="M9=BU;2P\\0@8SD%.%;S)D8AQ19!Y3
  1145. XM71)$:1Y030<T61- 9R9/CTYWB4!N=BU;4PHY4PHY9A]26A-&7!5*AT!U5Q%'
  1146. XM9R%78R!5:29;71I.71I.GEN/:"591P V5 Q#2@(ICT=NO'*"KF1TI5-0VHB%
  1147. XM[YF+V()TUXAXX)&!Q9"!TYZ/VKFITK&AR:VISK*NU:RLLHF)V:&CV:&CWI:9
  1148. XMUX^2VXF,UX6(VH6#W8B&WHR'W(J%W(R&X)"*XY6/YYF3Z)N2Z)N2YIV0Z:"3
  1149. XMZ:26Z:26[JR=\:^@\[2F]K>I\K>J\;:I\K>L\K>L\KJJ\[NK[\&R\<.T[,BV
  1150. XM[LJX[<RR[LVS]<FK]LJL^[JEXJ&,U'1YM55:IC5.EB4^7!%#60Y 5@PV71,]
  1151. XM>C)1@#A7R(&8Y)VTG5=K<BQ 9A\Z9!TX91Q":R)(91M':R%-;25$<"A'<BI+
  1152. XM;R=(9AU!8!<[7A0\7A0\9!I&9AQ(9QQ+8A=&7!%#7Q1,<RA@D5&%8"!4.0(S
  1153. XM4AM,?T9X=CUO92)640Y"8QE+7A1&;"A4=C)>BTUU>CQD>#!;715 50P[8AE(
  1154. XM8AM.5Q!#9Q]6A3UT40M!9!Y4FUB-7!E.6A=)>#5G:BA551- 5P<S7P\[=RY*
  1155. XMJV)^G558CT=*T85WZ9V/X)!\XI)^V9%^THIWQI2$U:.3UK.FV+6HPYN5Y;VW
  1156. XMU)^>SIF8YJ&CVI67X8N1VX6+XX**YH6-ZHJ-Z(B+XH>'XXB(Y(V,Z9*1YY:4
  1157. XMZIF7[IZ8[IZ8Z)N0Y9B-Y)Z.ZJ24ZJ65[JF9\;"A]+.D\K:G\K:G\;2J\K6K
  1158. XM\[FG]+JH\KVP]+^R\,6V\\BY]<NV]LRW^,>M^,>M_[JI[*:5VWM^MU=:IS=.
  1159. XMG"Q#7Q1&5PP^6Q$[5PTW<2E(?354O7:-X9JQL&I^;2<[>C-.81HU;"-)="M1
  1160. XM:R%-:R%-:2% ;R=&<BI+;25&91Q 8!<[8QE!:1]'81=#:1]+8A=&6 T\7!%#
  1161. XM:A]7;"%9C$R 515)3QA)1Q!!CE6'?D5W5!%%30H^81=)8AA*=3%=>#1@@4-K
  1162. XM=#9>:"!+715 6 \^7!-"719)6Q1'8QM2;R=>30<]8AQ2A4)W7QQ17AM-?SQN
  1163. XM92-07QU*8A(^8! \NW*.O'./A3U PWM^]ZN=TX=YY96!ZIJ&X9F&U(QYPY&!
  1164. XMTZ&1U+&DUK.FX[NUW;6OTYZ=Z[:U[JFKL6QNL5MAQ6]USVYVU71\WW^"Z(B+
  1165. XMZ8Z.Z8Z.Y8Z-Y(V,YI63ZIF7[9V7[IZ8[)^4[:"5ZJ24ZJ24Z:24[:B8\*^@
  1166. XM\[*C\;6F\+2E\+.I\+.I[[6C\[FG\[ZQ]<"S[L.T[\2U\LBS]<NV^\JP_,NQ
  1167. XM_\*Q^+*AY(2'M558ER<^@1$H7A-%50H\60\Y60\Y;R=&>#!/M6Z%Y)VTN'*&
  1168. XM=S%%=2Y)9!TX;B5+<"=-:R%-:1]+;25$<2E(<BI+;25&9!L_7A4Y81<_91M#
  1169. XM8QE%:B!,8QA'7A-"9AM-=2YK>S1Q?3]W2@Q$4AQ/4AQ/G&.5=SYP4 T_4@]!
  1170. XM7A5$7Q9%;2M79B107R9,7B5+61$X7A8]7A5#6A$_6Q1'91Y1:2%891U44PU#
  1171. XM;RE?AD-U7!E+;"I6>#9B7AU$4A$X;A<PH4ICR7Z*I%EEI61?YJ6@Y*:3S8]\
  1172. XMX)R(YJ*.W9N*S(IYQ(V"V:*7X+2LX;6M[ZVH\:^JY)F9SH.#KEA<BC0XFSI"
  1173. XMJ4A0P%ECPEMER&%KTFMUW'B!YH*+ZXJ2[HV5[Y:;])N@])N<[Y:7[)B1\9V6
  1174. XM[:&2YYN,ZJ*/[J:3[ZV<\[&@\;*D\+&C[;"F[;"F\;6B]+BE];JM]+FL\;BP
  1175. XM\KFQ^+VR_,&V_+>I][*D^:B>[)N1V7:!L4Y9DB,]?@\I7A-%4@<Y5PTW6Q$[
  1176. XM;"1#<2E(IV!WYI^VPGR0AT%5;29!9R [<BE/:R)(;2-/:!Y*<2E*<RM,<BI+
  1177. XM:R-$8AD]710X7Q8\8AD_81<_91M#7A0^7Q4_;2-/?SAUF%&.9REA20M#1Q%$
  1178. XM=3]RH6B:92Q>4Q!"6A=)7!-"7!-"9B106QE%4!<]721*5P\V7Q<^8AE'711"
  1179. XM7A=*:2)5<RMB=2UD61-)>#)HBD=Y5A-%=3-?7QU)5A4\20@OD3I3T7J3FU!<
  1180. XMFD];X)^:XJ&<TY6"X**/[:F5ZZ>3V):%Q8-RQ8Z#WZB=Y;FQXK:N[ZVH\K"K
  1181. XMW)&1J5Y>DCQ HTU1NUIBJTI2M4Y8KD=1I3Y(HCM%J45.NU=@SVYVW7R$ZI&6
  1182. XM]9RA]YZ?[Y:7Z)2-[IJ3Z)R-XY>(YY^,ZZ.0[:N:\:^>[["B[J^AZZZDZZZD
  1183. XM\;6B\+2A\+6H\;:I\[JR]KVU^\"U_,&V_\.U\JV?X(^%R7ANN59AFC="AQ@R
  1184. XM>PPF7A-%4@<Y5@PV7!(\:" _;"1#F%%HZ*&XRH28EE!D:"$\:2(]<RI0:B%'
  1185. XM;R51:B!,<BI+<BI+;B9':"!!81@\7A4Y7Q8\8AD_9!I"8AA 6A Z7Q4_="I6
  1186. XMAC]\D$F&4A1,3 Y&6B-4A$U^H&64:B]>30@X6!-#6Q)!9QY-;"Q792506"-*
  1187. XM;SIA91Y!81H]7A8_7A8_6Q5#7QE'<"E>@SQQ:")7>C1I;2M89B11:2A-2PHO
  1188. XM3P\N<3%0T'1XO&!DGE91SH:!V:27SIF,WK"AVJR=[[ROWZR?S9&(P85\T96.
  1189. XMZJZG[K:RY*RH_Y^=W'MYRF=HS&EJU7)UWGM^V')YRF1KP5ECMDY8HSI(DBDW
  1190. XMBB QD2<XH#9)K4-6RF-PWWB%\(Z4]9.9\I:2])B4[IN,ZI>(Y9J&ZZ",[JB7
  1191. XM\ZV<\*^B[ZZAZJRDZ:NCZ["9[+&:\;&F][>L_[JW_[>T^ZBI\9Z?W86$Q6UL
  1192. XMM%)6JDA,H#M,CRH[A!@X@14U819(50H\5PTW7!(\91T\:R-"BD-:YI^VS(::
  1193. XMH5MO:2(]:"$\<2A.;R9,;R51;B10<BI+;B9':B)#9!P]81DZ8!@Y8AD]8QH^
  1194. XM;"-'9AU!710X9AU!?S9:AT!]:B-@3A!(61M3?TAY;C=HCE."A4IY200T4@T]
  1195. XM711#=BU<;2U89B916"-*;3A?>S1791Y!6! Y61$Z5 X\40LY81I/>3)GA#YS
  1196. XMBD1Y4 X[@D!M4Q(W2@DN61DXIV>&V'R J4U1T8F$[*2?QI&$UJ&4W[&BX;.D
  1197. XMYK.FT)V0Q(A_RHZ%XJ:?\K:OZ;&MVZ.?U71RO5Q:Q6)CUW1UXG^"W'E\TVUT
  1198. XMYH"'WW>!UFYXQ5QJLDE7H#9'DRDZC"(UBB SE2X[K493S&IPYX6+\)20\961
  1199. XMZ9:'Z)6&XI>#Z)V)[*:5\JR;\*^B[ZZAZJRDZJRD[;*;[;*;\+"E\+"E[:6B
  1200. XMV9&.Q7)SL5Y?G$1#D3DXES4YJ$9*L4Q=J415HC96H35591I,7!%#6A Z6Q$[
  1201. XM81DX;B9%?SA/X9JQRX69IV%U<BM&9!TX:B%'>"]5:R%-<BA4<2E*;"1%91T^
  1202. XM81DZ81DZ8AH[9!L_91Q :B%%91Q 7Q8Z;"-'B4!D?C=R71917Q]5>3EOA4U]
  1203. XM5AY.;#!=F5V*5Q) 51 ^8!=%?#-A7B!*5AA"3!@_7BI1C49G;RA)5@XU5 PS
  1204. XM50\\4PTZ6!%$8QQ/>S9HC4AZ5A4^=C5>2@HK514VA49@MG>1P6-:T7-JZJ.6
  1205. XMX)F,R9V-VJZ>S*F<XK^RTZJAOI6,P8F%UIZ:[["OZ*FHSXZ-O'MZQE%0SEE8
  1206. XMW&MLU&-DSV1ER%U>NU-9X7E_YX"*VW1^RV%RP5=HO$YBLT59IS9/G"M$EB@X
  1207. XMGC! M$Q4UFYVY82"YX:$X8M]Y8^!X9. Z)J'ZZ62\JR9\*^B\*^B[*ZFZZVE
  1208. XM[[:<[+.9ZJ>;VYB,SWQ_M6)EJ4=/G#I"NE):L$A0M4I5Q5IEQEUUMTYFICUB
  1209. XMHCE>:1Y09!E+7A0^60\Y7Q<V="Q+>3))VY2KRH28K&9Z?C=28!DT8AD_@3A>
  1210. XM9!I&<BA4<RI.:R)&8QH^7A4Y8!@Y8QL\9!P]9!P]8QLZ81DX81DX=BY-E4UJ
  1211. XM<BMF;29A<C)HE56+;C9F3Q='31$^F5V*9B%/6A5#8!=%?#-A4A0^3Q$[3AI!
  1212. XM82U4F%%R=S!161$X4PLR6Q5"7AA%61)%50Y!3 <Y>#-E:"=020@Q2@HK7Q] 
  1213. XMMWB2IVB"O%Y5]YF0X)F,WI>*UZN;UJJ:XK^RX+VPV*^FQ)N2SI:2Y:VI[["O
  1214. XMSY"/HF%@B$=&P4Q+N41#O$M,OTY/R5Y?L49'B" FJ4%'TVQVOUABK$)3J#Y/
  1215. XMMDA<P%)FODUFMT9?O$Y>KT%1KT=/RF)JVGEWWGU[W(9XY(Z WY%^YYF&ZZ62
  1216. XM\JR9\;"C\;"C[:^G[:^GZK&7YJV3WIN/QH-WN69IJ599L$Y6LU%9M4U5I3U%
  1217. XMHSA#K4)-JD%9G#-+D2A-DRI/:R!2:1Y08!9 5PTW7A8U>#!/=S!'V)&HRH28
  1218. XMKVE]AT!;7A<R7!,YASYD7A1 <2=3=2Q0;"-'8AD]710X7Q<X8QL\8QL\8AH[
  1219. XM81DX8QLZ:2% @CI9HUMX6B):>D)Z92E@FU^6:2E<0P,V5Q9%=C5DB41T3@DY
  1220. XM6AA'A$)Q5!-$3PX_41%$6QM.?#9KEE"%8!U1208Z6AM+4Q1$5!9 5QE#41$T
  1221. XM6AH]7!0Q6A(O6PHAJUIQRW6'IU%CV9.#WIB(WYV,XZ&0Y:V;\;FGZKZLY+BF
  1222. XMU:B<S)^3Z:ZO[K.TR76&ED)3F#%/G394BS-2H$AG?B%$=QH]A"=-?B%'70DL
  1223. XM@2U0B#I;:1L\:QDY:1<WDS%1N5=WNTIMPU)URE1=R5-<O5I=PV!CU&IMWW5X
  1224. XM\79_]'F"X7]]])*0VZ:5X*N:[L&M[<"L\:R>]*^A_JFHZY:5WHN8RWB%M6. 
  1225. XML%Y[<2! B3A8<R$^:QDV;!<P=2 Y@"-&@"-&@"!,@B).=BM09QQ!7!$Y4 4M
  1226. XM7Q0\>S!8=RY+V(^LUX^CGU=KDDI>:B(V9!HZ>"Y.:Q],=2E6="-';!L_8A<^
  1227. XM818]7AA%7AA%71M'81]+81Q"51 V:1TXEDIEOFUZ7R=??D9^<35LH&2;:2E<
  1228. XM104X6!=&=S9E;BE97!='6QE(DE!_3 L\511%3 P_3@Y!9!Y3G%:+AT1X8A]3
  1229. XM41)"3 T]5QE#5AA"5!0W2@HM6! M10 :A31+P7"'M%YPO6=Y\:N;ZJ24X)Z-
  1230. XMX)Z-XJJ8[K:DZKZLY[NIVJVAW*^CX*6FN7Y_DCY/@2T^D2I(B2) ?"1#;Q<V
  1231. XM;Q(U?B%$:@TS<A4[9Q,V8 PO9QDZ60LL8A P91,S<Q$Q@B! L#]BY'.6U%YG
  1232. XMT5MDPE]BQF-FTVELW7-V[W1]\79_Y8.!\8^-W:B7YK&@Z+NGY;BD];"B_KFK
  1233. XM_*>F]Z*AKUQIDC],?"I'<R$^=21$8A$Q9!(O9!(O;ADR=2 Y>AU =QH]>QM'
  1234. XM@2%-;B-(8Q@]7A,[4P@P8!4]>2Y6<BE&THFFW)2HI5UQE$Q@<"@\9QT]>C!0
  1235. XM;"!-="A5<B%%:QH^818]818]7AA%7AA%7!I&8!Y*71@^4PXT;" [G%!KQ'. 
  1236. XM:C)J@4F!?D1[GF2;92A:1@D[61A'=C5D6A5#<BU;7QU*GER)3 L\7QY/4Q)#
  1237. XM3 L\40PZ>C5CD4]^EE2#=31E3@T^3PX]6!=&61@_2PHQ40HE8!DTP'*#OG"!
  1238. XMMF9NYI:>Z)V1XI>+T9^-W*J8W+VDX,&HX;FHW;6D^;*OZJ.@U':%G3].=!@L
  1239. XM=QLO>",[:10L9 XN;!8V80LK:Q4U81 P:!<W6A<R;"E$B4QD>SY6:",Y6A4K
  1240. XM6  860 9D"5 MDMFVV-MV&!JRF-ES&5GTV=KVFYR['!Y[G)[ZH6&[8B)X*F;
  1241. XM[;:HYKFEY[JF_[FN_[RQZYF?JEA>CCQ/;QTP9Q8V9A4U8A0U<R5&>"A$;Q\[
  1242. XM:18O:A<P<A<Y=!D[=QE$>AQ'9!D^7Q0Y8!4]6 TU8A<_=RQ4;"- RX*?WY>K
  1243. XMJF)VD4E==BY":B! >S%1:Q],<252;!U!9A<[7Q0[818]7AA#71="71E%81U)
  1244. XM610Y51 U=2I"J%UURWN%>D)Z@DJ"ATV$E%J17B%32PY 6!=&;RY=5 \]=C%?
  1245. XM6QE&F5>$7!M,7QY/6QI+4 ] 3PHX6!-!>#9EEE2#A$-T9R977AU,511#2PHQ
  1246. XM20@O10 9EU!KRGR-F$I;SW^']*2LWY2(W)&%TZ&/X[&?X<*IX,&HW[>FW+2C
  1247. XM^+&NQG]\H4-2BBP[?" T<Q<K:10L9Q(J:Q4U>B1$:1,S:!(R7PXN:ADY:"5 
  1248. XMD4YIS9"HS9"HGUIP=C%'9@TF7P8?B!TX@A<RU%QFU%QFR6)DS&5GTV=KV&QP
  1249. XMZ&QUZFYWYH&"ZH6&X:J<\+FK[+^K]\JV_\&V[ZB=KEQB8A 6=R4X8Q$D;1P\
  1250. XM?RY.@C15I%9WM66!DD)>;!DR7@LD;!$S>!T_>!I%<1,^8!4Z7A,X8A<_6Q X
  1251. XM8QA =2I2:2 ]R'^<WI:JK&1XBT-7>S-';")"?#)2:Q],;2%.:!D]8Q0X7Q0[
  1252. XM8A<^7QE$7AA#7!A$7QM'6!,X71@]@SA0M&F!T("*BE.-?TB"BE"'A4N"51A*
  1253. XM4!-%5Q9%9"-240PZ8QY,5A$_BD5S?#IG6QE&6QI)3@T\5A,X6Q@]:"1071E%
  1254. XM6!5'>#5G>S5J4@Q!4PTX5 XY9B$YP'N3KF9MJF)I\:FDYIZ9YZ6=Y**:TZ^=
  1255. XMV;6CU,&IUL.KZ+NMZ[ZPX7^'L$Y6FATVF1PUBB$Y=PXF6A,D:B,TC#13=1T\
  1256. XM<B ]?BQ)3PDD9B [<S]2<S]2T*6RZ+W*U9ZJK'6!C3E(<1TLFC!%GC1)RDM5
  1257. XMS4Y8Q5E=S&!DU&1IV6ENZ&=TZFEVY'I][H2'XZN=\+BJ]<2T_]7%_;.KP7=O
  1258. XM;!PL:QLK9!0N5P<A8A,W>2I.MF>+IE=[WI&LLF6 ?RY&8A$I9Q$Q<1L[<AE 
  1259. XM:Q(Y818[7Q0Y8QA 7!$Y9!E!=2I2:B$^R'^<WI:JKV=[A3U1@CI.<"9&@#96
  1260. XM;B)/;2%.91@]810Y7A4[8AD_8QM$8!A!7!<_7AE!718W;29'EDMAO7*(SW^'
  1261. XMEE^9?$5_D5>.?$)Y3Q)$51A*5Q9%7!M*5A$_4PX\6!-!>S9DF5>$8!Y+61A'
  1262. XM3@T\6Q@]5A,X8!Q(3PLW10(T8A]191]44 H_81M&81M&FU9NMW**FU-:Y9VD
  1263. XM^K*MTXN&VYF1XZ&9V;6CX+RJV\BPV\BPX[:HV*N=KTU5I4-+I2A!FATVA!LS
  1264. XM= LC718G="T^FT-BD3E8?"I'A#)/;RE$>#)-9C)%:35(W;*_Y[S)[[C$X*FU
  1265. XMOVMZBC9%HCA-O5-HP$%+Q490P%18R%Q@T6%FUF9KYF5RZFEVXWE\](J-Y:V?
  1266. XM\;FK^\JZ_\Z^WI2,F$Y&>2DY<R,S?"Q&<2$[;1Y">"E-DD-GH5)VWY*MP72/
  1267. XMF$=?<B$Y90\O9Q$Q;!,Z;!,Z8Q@]7Q0Y8QA 71(Z9AM#=RQ4:B$^QGV:XIJN
  1268. XMM6V!@SM/BT-7=BQ,A3M;<B93;B)/9!<\8A4Z8!<]91Q"91U&81E"6Q8^6Q8^
  1269. XM81H[?C=8J%USP7:,RGJ"EV.<>$1]G66;?$1Z3A-$6!U.5A5$6!=&81U)4P\[
  1270. XM6Q=!:"1.FU>#:R=361=#61=#6QDX2@@G7QM#81U%5Q!!40H[2@ T6A!$6Q$[
  1271. XM=2M5HUYRDTYBI&-BXZ*ATI2!QHAUOI>+SZB<V[BIY,&R[\2WZ+VPVY.0MV]L
  1272. XMK4)-ND]:O4-9L#9,FS!'A1HQ;1<K?2<[HS]=OEIXD351A2E%A3U4A3U4:SA&
  1273. XMH&U[],K1Y+K!]K[#[[>\W8:0JU1>J#9&P$Y>PT%,R$91PE)7QU=<SUMAUF)H
  1274. XMYV1R[6IXYWN!^X^5[+"G^[^V_]'$[KVPPWATD49"J5IN>BL_DT-ADD)@B#9=
  1275. XMB#9=<B%%Q'.7W(NEQG6/GTYE=R8]9A N9 XL:1(X:A,Y818[71(W818^7A,[
  1276. XM:1Y&>B]7:!\\P'>4Y9VQNG*&@3E-D4E=>2]/ACQ<<252:Q],8Q@_818]81@^
  1277. XM9QY$9Q]&81E 7!4Z6Q0Y9!PYC$1AMVM^P76(PG1YEV.<>$1]J'"F@4E_3Q1%
  1278. XM6A]05A5$5Q9%:B925Q,_5A(\4P\YAD)N:R=351,_8B!,5Q4T5!(Q9B)*6!0\
  1279. XM4@L\6A-$4PD]7Q5)71,]GE1^HEUQE5!DUY:5S8R+Q8=TXJ21VK.GX[RPX;ZO
  1280. XMW+FJX[BKV:ZAP'AUCT=$Q%EDR5YIS5-IT%9LPE=NG#%(;QDM=R$UJD9DMU-Q
  1281. XMH45AD3519AXU>S-*FF=UVJ>UZ\'(XKB__\?,ZK*WW(6/OVARM$)2Q5-CRDA3
  1282. XMS$I5PU-8Q55:S%A>TU]EYV1R[VQZZ7V#_I*8\+2K_\G _]C+X*^BMVQHGU10
  1283. XMN&E]JUQP@C)0D4%?B3=>B#9=I%-WYI6YXY*LQ72.ET9=<2 W9Q$O:A0R:A,Y
  1284. XM90XT7Q0Y6Q U8!4]7Q0\;"%)?#%99ATZNW*/Y9VQO'2(?C9*DDI>>"Y.A#I:
  1285. XM;2%.9AI'9!E 8A<^8QI :!]%:"!'8AI!7!4Z6A,X9!PYDTMHOG*%P'2'O6]T
  1286. XM@4^'<D!XFF29B%*'6A]0829771U)20DU8Q])6Q=!6!,[7AE!8AU%81Q$81U'
  1287. XM9B),6Q@Z30HL71@^9B%'5@PX5 HV8Q5 7 XYASI;Q'>8CTQ7Q(&,W*.9R9"&
  1288. XMUJ*+VZ>0U,&QT+VMYK"I[[FR]IJ>NEYBKD%+T61NOEICQ&!IR&ETS&UXS65W
  1289. XMO%1FKCM3GRQ$MD=AOD]IQ5]VP5MRM%MPS'.(XI^J]+&\]+S!\+B]];&UXY^C
  1290. XMVGF#S6QVUUYLRU)@XUYHUE%;Q%)8S%I@TUUDTUUDX%UKZ69TYWR#_)&8\[JR
  1291. XM_]#(_]3)UJ><JF%AB#\_L6%SN6E[N&6 H4YIFD9GOFJ+Z9&P\9FXYY&EP&I^
  1292. XME3]1<!HL;A<Q<1HT9@XP=!P^8Q@]7!$V9AM#9!E!=BM3="E1:R(_K&. V9&E
  1293. XMUHZB@CI.A3U1BD!@?#)2;B)/9AI'6A$W8AD_7A4[6Q(X9!U"9A]$7Q<X714V
  1294. XM;R<^H%AOOW2 NF][NFUNFVFA41]7QY'&EV&6>3YO3A-$<#!<71U)6A9 5! Z
  1295. XM5 \W6A4]7QI"7QI"7QM%8Q])618X71H\9R)(5A$W40<S50LW5PDT;1]*OG&2
  1296. XMG$]PJVAS\*VXUIV3PXJ WZN4XZ^8V,6UT\"P\KRUU)Z7LU=;L559T61NPE5?
  1297. XMPU]HQV-LRFMVSW![U&Q^RV-UQ5)JNTA@L$%;N4IDQF!WSFA_QVZ#UWZ3VI>B
  1298. XMVI>BYJZSXZNP[:FMY:&EY82.VGF#WF5SRU)@WUIDUE%;QU5;SEQBTUUDTEQC
  1299. XMWUQJZ69TZ'V$_9*9\KFQ_\O#_L_$W:ZCPWIZL&=GI55GM65WQ7*-PF^*PV^0
  1300. XMVH:GZ)"OV8&@OVE]HDQ@AS%#<QTO>B,]?B=!;14W=!P^8Q@]71(W9QQ$9AM#
  1301. XM=RQ4<RA0:2 ]J%]\VI*FUX^CBT-7A#Q0CD1D>2]/;R-091E&7A4[81@^710Z
  1302. XM7A4[9A]$91Y#8AH[:"!!@CI1K&1[PWB$NF][NVYOJGJS:#AQO(B_?TN"=CYN
  1303. XM?$1T<3%=5!1 5Q,[5! X51 V610Z71@^7!<]7!<]7AD_6AA$8R%-9Q](4 @Q
  1304. XM50@M5 <L6PLGF4EEOW.$D$15TI"1\:^PRY:)U)^2YKNDX;:?XL"U[,J_Z):9
  1305. XMJUE<MS='S$Q<W%MIV5AFR6ELS&QOPW1TR'EYUG-^U'%\Y&-XWUYSQE=FO4Y=
  1306. XMNTU=NTU=MU)CQ6!QQF][P&EUM&IRN&YVS7V#W(R2[8F2\8V6]X"-Y&UZUU5>
  1307. XMU%);RUE?T5]ETEYDSUMAW5QJYV9TXGJ"^9&9\;FS_\O%^\_'XK:NU9"1SHF*
  1308. XMSG>!SG>!T':)QVV PF5^R&N$P6%VI$19GCQ*CBPZAB<T@B,PCS!'D3))>!<[
  1309. XM>!<[8A<\71(W:!U%:!U%>"U5<B=/91PYI%MXVI*FV)"DFE)F@CI.D4=G="I*
  1310. XM;B)/8A9#8AI!7Q<^6Q,Z8QM":B%%8AD]91PY>"],FE!DMVV!PGB N6]WO7!O
  1311. XMF&BAE&2=H6VD<CYUC56%FV.35Q=#2PLW7!A 6Q<_6Q8\71@^71@^6Q8\6A4[
  1312. XM6A4[7QU)7QU)50TV5P\X6 LP3P(G?BY*P'",G%!AK&!QX9^@TY&2V*.6WJF<
  1313. XMW+&:ZK^HX\&VRJB=K5M>D3]"RTM;U55ETU)@YF5STG)UTG)UQWAXR7IZV'6 
  1314. XMUW1_Z6A]YF5Z['V,UF=VQ%9FNTU=LDU>OEEJPFMWOF=SJV%IKV5MQ75[TH*(
  1315. XMXW^(YH*+['6"VF-PU%);UE1=T5]EU6-ITU]ESEI@W%MIY61RVW-[]HZ6\;FS
  1316. XM_\W'_]3,YKJRVI66TXZ/TGN%QW!ZOF1WLUELL%-LMUISM%1IG#Q1D"X\C"HX
  1317. XMD#$^D3(_F#E0DS1+=A4Y=Q8Z7Q0Y6Q U:1Y&:1Y&>2Y6<B=/9!LXH5AUV9&E
  1318. XMV)"DJ&!T@#A,D$9F;R5%:Q],8!1!8QM"714\7!0[:2%(;21(710X9!LX@CE6
  1319. XMJ%YRN6^#O7-[MVUUP'-R>$J"CF"8I'*HE&*8LGJJ<#AH4! [7AY)6Q<_71E!
  1320. XM8!D^7Q@]7Q@]7A<\718[7!4Z6A=,7AM02@$O6 \]504C7P\MLV)OQ'. I%=6
  1321. XMS8!_UY>.T)"'Y;2GT:"3U["@\<JZ[)J?HU%6GC,^N$U8SDU;UU9DY&5OX&%K
  1322. XMVW1TVW1TTGIWU'QYVWI\VGE[WG!XW&YVW7I[T6YOTFMOT6INSF9NTVMSTW)\
  1323. XMSVYXS'A_S7F UX.*V86,V7N$V7N$W75]SV=OU%);VEAAU65JUF9KT5]ES5MA
  1324. XMVEIHXF)PVG9]\(R3Y[.N_LK%_]?/Z<&YW)J=TI"3U'=VS7!OS&MSR6APQ6!M
  1325. XMR&-PR%UHM4I5I#@^I3D_JT-+IS]'I#Q0F#!$>Q,U@1D[7!$V60XS:!U%:1Y&
  1326. XM>B]7<B=/8QHWGU9SUX^CVI*FLFI^?S=+B3]?;")"9AI'8!1!8!M#610\714\
  1327. XM;"1+;25&61$R9!@SBS]:LF9WNV^ N6UQN&QPPG=S<D1\A%:.D%Z4I7.IB%" 
  1328. XM:3%A:"A39B9151$Y614]7A<\7!4Z6Q0Y7A<\8!D^7Q@]4@]$8A]440@V3P8T
  1329. XM504CA#12SGV*JEEFMFEHX).2VIJ1W)R3V*>:XK&D_-7%UJ^?JEA=DT%&HSA#
  1330. XMND]:U51BV%=EWV!JYF=QW'5UW79VUGY[V8%^X8""X8""YGB Y'9^UW1UT&UN
  1331. XMUW!TW'5YUFYVUFYVV'>!UW: U("'U8&(W8F0WHJ1WH")XH2-[(2,XWN#V5=@
  1332. XMWUUFV&AMUV=LTF!FSEQBVEIHWU]MX'R#[XN2X*RG]L*]_=7-[L:^YJ2GW9N>
  1333. XMZ8R+X(."W7R$UG5]RV9SQV)OR5YIOE->MTM1MTM1NE):L4E1JD)6FS-'@!@Z
  1334. XMAQ]!71(W60XS:!U%:1Y&>2Y6<"5-81@UG%-PU(R@WI:JN'"$@CI.?C14;B1$
  1335. XM815"8Q=$71A 610\7A8]:R-*:2%"5@XO:!PWE$ACN6U^O'"!N&QPNFYRQGMW
  1336. XM@5.+?E"(<#YTBEB.<CIJA4U]9RE361M%51 X6Q8^7A<\6A,X6A$U7Q8Z8AL^
  1337. XM81H]6!-271A77!%!3@,S=",[L6!XP&YQHE!3R7YRZZ"4X:*2Z*F9U*68]<:Y
  1338. XM[\O"DV]FGB TP$)6OD53O412U%]HTUYGRUI=Y'-VZ'1VZ'1VYGEYZGU]YX6#
  1339. XMZ8>%X(B%WX>$Z).(WHE^Y82"YX:$XGM_XGM_ZX>0[XN4ZY.:Y8V4XY&7X8^5
  1340. XMVX>-VX>-W8&'S7%WWEYFXV-KV6QPUFEMTF)GSU]DV%MHVUYKW7N![8N1W*RF
  1341. XM\L*\^];-[\K!Z*JLX:.EZXR!WX!UW7AWV'-RTF9MT65LV&AMUF9KR5A9Q%-4
  1342. XMQ55:NTM0M4=;ISE-AQL\B1T^818[71(W:1Y&:1Y&=RQ4;2)*7A4RF$]LTXN?
  1343. END_OF_FILE
  1344.   if test 32510 -ne `wc -c <'timg.ppm.u.a'`; then
  1345.     echo shar: \"'timg.ppm.u.a'\" unpacked with wrong size!
  1346.   elif [ -f timg.ppm.u.b ]; then
  1347.     echo shar: Combining \"'timg.ppm.u.a'\" and \"'timg.ppm.u.b'\" 
  1348.     cat timg.ppm.u.a timg.ppm.u.b > testimg.ppm.u
  1349.     echo shar: Removing \"'timg.ppm.u.a'\" and \"'timg.ppm.u.b'\"   
  1350.     rm timg.ppm.u.a timg.ppm.u.b
  1351.     echo shar: Uudecoding \"'testimg.ppm.u'\" 
  1352.     cat testimg.ppm.u | uudecode
  1353.     if [ -f testimg.ppm ]; then
  1354.        echo shar: Removing \"'testimg.ppm.u'\" 
  1355.        rm testimg.ppm.u
  1356.     fi
  1357.   fi
  1358.   # end of 'timg.ppm.u.a'
  1359. fi
  1360. echo shar: End of archive 7 \(of 18\).
  1361. cp /dev/null ark7isdone
  1362. MISSING=""
  1363. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
  1364.     if test ! -f ark${I}isdone ; then
  1365.     MISSING="${MISSING} ${I}"
  1366.     fi
  1367. done
  1368. if test "${MISSING}" = "" ; then
  1369.     echo You have unpacked all 18 archives.
  1370.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1371. else
  1372.     echo You still must unpack the following archives:
  1373.     echo "        " ${MISSING}
  1374. fi
  1375. exit 0
  1376. exit 0 # Just in case...
  1377.