home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume13 / lj2ps-1.2 / part09 < prev    next >
Encoding:
Text File  |  1990-07-09  |  46.8 KB  |  2,726 lines

  1. Newsgroups: comp.sources.misc
  2. subject: v13i117: lj2ps 1.2 (09 of 13), a LaserJet to PostScript Translator
  3. From: lishka@uwslh.slh.wisc.edu (Chris Lishka (hang loose...) )
  4. Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  5.  
  6. Posting-number: Volume 13, Issue 117
  7. Submitted-by: lishka@uwslh.slh.wisc.edu (Chris Lishka (hang loose...) )
  8. Archive-name: lj2ps-1.2/part09
  9.  
  10. ---- Cut Here and unpack ----
  11. #!/bin/sh
  12. # this is lj2ps.09 (part 9 of a multipart archive)
  13. # do not concatenate these parts, unpack them in order with /bin/sh
  14. # file doc/pscan.idr continued
  15. #
  16. if touch 2>&1 | fgrep '[-amc]' > /dev/null
  17.  then TOUCH=touch
  18.  else TOUCH=true
  19. fi
  20. if test ! -r @shar_seq_.tmp; then
  21.     echo "Please unpack part 1 first!"
  22.     exit 1
  23. fi
  24. (read Scheck
  25.  if test "$Scheck" != 9; then
  26.     echo "Please unpack part $Scheck next!"
  27.     exit 1
  28.  else
  29.     exit 0
  30.  fi
  31. ) < @shar_seq_.tmp || exit 1
  32. echo "x - Continuing file doc/pscan.idr"
  33. sed 's/^X//' << 'SHAR_EOF' >> doc/pscan.idr &&
  34. X(PRM)
  35. X] Text
  36. XEnd
  37. X
  38. XBegin %I Line
  39. X%I b 65535
  40. X1 0 1 [] 0 SetB
  41. X%I cfg Black
  42. X0 0 0 SetCFg
  43. X%I cbg White
  44. X1 1 1 SetCBg
  45. X%I p
  46. X0 SetP
  47. X%I t
  48. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  49. X%I
  50. X133 419 450 295 Line
  51. XEnd
  52. X
  53. XBegin %I Line
  54. X%I b 65535
  55. X1 0 1 [] 0 SetB
  56. X%I cfg Black
  57. X0 0 0 SetCFg
  58. X%I cbg White
  59. X1 1 1 SetCBg
  60. X%I p
  61. X0 SetP
  62. X%I t
  63. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  64. X%I
  65. X132 410 455 150 Line
  66. XEnd
  67. X
  68. XBegin %I Line
  69. X%I b 65535
  70. X1 0 1 [] 0 SetB
  71. X%I cfg Black
  72. X0 0 0 SetCFg
  73. X%I cbg White
  74. X1 1 1 SetCBg
  75. X%I p
  76. X0 SetP
  77. X%I t
  78. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  79. X%I
  80. X218 129 218 210 Line
  81. XEnd
  82. X
  83. XBegin %I Line
  84. X%I b 65535
  85. X1 0 1 [] 0 SetB
  86. X%I cfg Black
  87. X0 0 0 SetCFg
  88. X%I cbg White
  89. X1 1 1 SetCBg
  90. X%I p
  91. X0 SetP
  92. X%I t
  93. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  94. X%I
  95. X102 384 197 119 Line
  96. XEnd
  97. X
  98. XBegin %I Line
  99. X%I b 65535
  100. X1 0 1 [] 0 SetB
  101. X%I cfg Black
  102. X0 0 0 SetCFg
  103. X%I cbg White
  104. X1 1 1 SetCBg
  105. X%I p
  106. X0 SetP
  107. X%I t
  108. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  109. X%I
  110. X251 244 450 276 Line
  111. XEnd
  112. X
  113. XBegin %I Line
  114. X%I b 65535
  115. X1 0 1 [] 0 SetB
  116. X%I cfg Black
  117. X0 0 0 SetCFg
  118. X%I cbg White
  119. X1 1 1 SetCBg
  120. X%I p
  121. X0 SetP
  122. X%I t
  123. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  124. X%I
  125. X245 113 459 258 Line
  126. XEnd
  127. X
  128. XBegin %I Line
  129. X%I b 65535
  130. X1 0 1 [] 0 SetB
  131. X%I cfg Black
  132. X0 0 0 SetCFg
  133. X%I cbg White
  134. X1 1 1 SetCBg
  135. X%I p
  136. X0 SetP
  137. X%I t
  138. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  139. X%I
  140. X250 97 448 129 Line
  141. XEnd
  142. X
  143. XBegin %I BSpl
  144. X%I b 65535
  145. X1 0 1 [] 0 SetB
  146. X%I cfg Black
  147. X0 0 0 SetCFg
  148. X%I cbg White
  149. X1 1 1 SetCBg
  150. X%I p
  151. X0 SetP
  152. X%I t
  153. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  154. X%I 6
  155. X212 275
  156. X199 308
  157. X175 316
  158. X162 305
  159. X168 278
  160. X194 263
  161. X6 BSpl
  162. XEnd
  163. X
  164. XBegin %I Line
  165. X%I b 65535
  166. X1 0 1 [] 0 SetB
  167. X%I cfg Black
  168. X0 0 0 SetCFg
  169. X%I cbg White
  170. X1 1 1 SetCBg
  171. X%I p
  172. X0 SetP
  173. X%I t
  174. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  175. X%I
  176. X234 273 451 475 Line
  177. XEnd
  178. X
  179. XBegin %I Line
  180. X%I b 65535
  181. X1 0 1 [] 0 SetB
  182. X%I cfg Black
  183. X0 0 0 SetCFg
  184. X%I cbg White
  185. X1 1 1 SetCBg
  186. X%I p
  187. X0 SetP
  188. X%I t
  189. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  190. X%I
  191. X235 124 460 466 Line
  192. XEnd
  193. X
  194. XBegin %I Line
  195. X%I b 65535
  196. X1 0 1 [] 0 SetB
  197. X%I cfg Black
  198. X0 0 0 SetCFg
  199. X%I cbg White
  200. X1 1 1 SetCBg
  201. X%I p
  202. X0 SetP
  203. X%I t
  204. X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
  205. X%I
  206. X249 231 450 140 Line
  207. XEnd
  208. X
  209. XBegin %I BSpl
  210. X%I b 65535
  211. X1 0 1 [] 0 SetB
  212. X%I cfg Black
  213. X0 0 0 SetCFg
  214. X%I cbg White
  215. X1 1 1 SetCBg
  216. X%I p
  217. X0 SetP
  218. X%I t
  219. X[ 0.534872 0.601209 -0.601209 0.534872 266.082 24.2328 ] concat
  220. X%I 6
  221. X212 275
  222. X199 308
  223. X175 316
  224. X162 305
  225. X168 278
  226. X194 263
  227. X6 BSpl
  228. XEnd
  229. X
  230. XBegin %I Text
  231. X%I cfg Black
  232. X0 0 0 SetCFg
  233. X%I f *-courier-medium-r-*-80-*
  234. X/Courier 8 SetF
  235. X%I t
  236. X[ 0.804699 0 0 0.804699 109.169 472.964 ] concat
  237. X%I
  238. X[
  239. X(+ | - | 0-9)
  240. X] Text
  241. XEnd
  242. X
  243. XBegin %I Text
  244. X%I cfg Black
  245. X0 0 0 SetCFg
  246. X%I f *-courier-medium-r-*-80-*
  247. X/Courier 8 SetF
  248. X%I t
  249. X[ 0.804699 0 0 0.804699 177.568 295.126 ] concat
  250. X%I
  251. X[
  252. X(0-9)
  253. X] Text
  254. XEnd
  255. X
  256. XBegin %I Text
  257. X%I cfg Black
  258. X0 0 0 SetCFg
  259. X%I f *-courier-medium-r-*-80-*
  260. X/Courier 8 SetF
  261. X%I t
  262. X[ 0.804699 0 0 0.804699 189.639 298.344 ] concat
  263. X%I
  264. X[
  265. X()
  266. X] Text
  267. XEnd
  268. X
  269. XBegin %I Text
  270. X%I cfg Black
  271. X0 0 0 SetCFg
  272. X%I f *-courier-medium-r-*-80-*
  273. X/Courier 8 SetF
  274. X%I t
  275. X[ 0.804699 0 0 0.804699 202.514 452.042 ] concat
  276. X%I
  277. X[
  278. X(0-9)
  279. X] Text
  280. XEnd
  281. X
  282. XBegin %I Text
  283. X%I cfg Black
  284. X0 0 0 SetCFg
  285. X%I f *-courier-medium-r-*-80-*
  286. X/Courier 8 SetF
  287. X%I t
  288. X[ 0.804699 0 0 0.804699 240.335 368.353 ] concat
  289. X%I
  290. X[
  291. X(P)
  292. X(e)
  293. X(r)
  294. X(i)
  295. X(o)
  296. X(d)
  297. X] Text
  298. XEnd
  299. X
  300. XBegin %I Text
  301. X%I cfg Black
  302. X0 0 0 SetCFg
  303. X%I f *-courier-medium-r-*-80-*
  304. X/Courier 8 SetF
  305. X%I t
  306. X[ 0.804699 0 0 0.804699 243.554 446.409 ] concat
  307. X%I
  308. X[
  309. X(Other)
  310. X] Text
  311. XEnd
  312. X
  313. XBegin %I Text
  314. X%I cfg Black
  315. X0 0 0 SetCFg
  316. X%I f *-courier-medium-r-*-80-*
  317. X/Courier 8 SetF
  318. X%I t
  319. X[ 0.804699 0 0 0.804699 292.64 289.493 ] concat
  320. X%I
  321. X[
  322. X(Lowercase)
  323. X] Text
  324. XEnd
  325. X
  326. XBegin %I Text
  327. X%I cfg Black
  328. X0 0 0 SetCFg
  329. X%I f *-courier-medium-r-*-80-*
  330. X/Courier 8 SetF
  331. X%I t
  332. X[ 0.804699 0 0 0.804699 158.888 584.888 ] concat
  333. X%I
  334. X[
  335. X(Other)
  336. X] Text
  337. XEnd
  338. X
  339. XBegin %I Text
  340. X%I cfg Black
  341. X0 0 0 SetCFg
  342. X%I f *-courier-medium-r-*-80-*
  343. X/Courier 8 SetF
  344. X%I t
  345. X[ 0.804699 0 0 0.804699 269.304 420.659 ] concat
  346. X%I
  347. X[
  348. X(Uppercase)
  349. X(   or)
  350. X( Symbol)
  351. X] Text
  352. XEnd
  353. X
  354. XBegin %I Text
  355. X%I cfg Black
  356. X0 0 0 SetCFg
  357. X%I f *-courier-medium-r-*-80-*
  358. X/Courier 8 SetF
  359. X%I t
  360. X[ 0.804699 0 0 0.804699 261.257 393.299 ] concat
  361. X%I
  362. X[
  363. X(Lowercase)
  364. X] Text
  365. XEnd
  366. X
  367. XBegin %I Text
  368. X%I cfg Black
  369. X0 0 0 SetCFg
  370. X%I f *-courier-medium-r-*-80-*
  371. X/Courier 8 SetF
  372. X%I t
  373. X[ 0.804699 0 0 0.804699 252.405 333.751 ] concat
  374. X%I
  375. X[
  376. X(Other)
  377. X] Text
  378. XEnd
  379. X
  380. XBegin %I Text
  381. X%I cfg Black
  382. X0 0 0 SetCFg
  383. X%I f *-courier-medium-r-*-80-*
  384. X/Courier 8 SetF
  385. X%I t
  386. X[ 0.804699 0 0 0.804699 289.421 338.579 ] concat
  387. X%I
  388. X[
  389. X(Uppercase)
  390. X(   or)
  391. X( Symbol)
  392. X] Text
  393. XEnd
  394. X
  395. XBegin %I Text
  396. X%I cfg Black
  397. X0 0 0 SetCFg
  398. X%I f *-courier-medium-r-*-80-*
  399. X/Courier 8 SetF
  400. X%I t
  401. X[ 0.804699 0 0 0.804699 171.935 505.957 ] concat
  402. X%I
  403. X[
  404. X(Lowercase)
  405. X] Text
  406. XEnd
  407. X
  408. XBegin %I Text
  409. X%I cfg Black
  410. X0 0 0 SetCFg
  411. X%I f *-courier-medium-r-*-80-*
  412. X/Courier 8 SetF
  413. X%I t
  414. X[ 0.804699 0 0 0.804699 195.272 556.653 ] concat
  415. X%I
  416. X[
  417. X(Uppercase)
  418. X(   or)
  419. X( Symbol)
  420. X] Text
  421. XEnd
  422. X
  423. XBegin %I Line
  424. X%I b 65535
  425. X1 0 1 [] 0 SetB
  426. X%I cfg Black
  427. X0 0 0 SetCFg
  428. X%I cbg White
  429. X1 1 1 SetCBg
  430. X%I p
  431. X0 SetP
  432. X%I t
  433. X[ 1 0 0 1 -6 51 ] concat
  434. X%I
  435. X169 513 429 643 Line
  436. XEnd
  437. X
  438. XBegin %I Elli
  439. X%I b 65535
  440. X1 0 1 [] 0 SetB
  441. X%I cfg Gray80
  442. X0.2 0.2 0.2 SetCFg
  443. X%I cbg White
  444. X1 1 1 SetCBg
  445. X%I p
  446. X0 SetP
  447. X%I t
  448. X[ 0.804699 0 0 0.804699 188.88 70.0228 ] concat
  449. X%I
  450. X61 418 31 33 Elli
  451. XEnd
  452. X
  453. XBegin %I Elli
  454. X%I b 65535
  455. X1 0 1 [] 0 SetB
  456. X%I cfg Gray80
  457. X0.2 0.2 0.2 SetCFg
  458. X%I cbg White
  459. X1 1 1 SetCBg
  460. X%I p
  461. X0 SetP
  462. X%I t
  463. X[ 0.804699 0 0 0.804699 188.88 -47.9772 ] concat
  464. X%I
  465. X61 418 31 33 Elli
  466. XEnd
  467. X
  468. XBegin %I Elli
  469. X%I b 65535
  470. X1 0 1 [] 0 SetB
  471. X%I cfg Gray80
  472. X0.2 0.2 0.2 SetCFg
  473. X%I cbg White
  474. X1 1 1 SetCBg
  475. X%I p
  476. X0 SetP
  477. X%I t
  478. X[ 0.576954 0 0 0.576954 168.772 -31.7798 ] concat
  479. X%I
  480. X61 418 31 33 Elli
  481. XEnd
  482. X
  483. XBegin %I Elli
  484. X%I b 65535
  485. X1 0 1 [] 0 SetB
  486. X%I cfg Black
  487. X0 0 0 SetCFg
  488. X%I cbg White
  489. X1 1 1 SetCBg
  490. X%I p
  491. X0 SetP
  492. X%I t
  493. X[ 0.576954 0 0 0.576954 369.948 -33.5331 ] concat
  494. X%I
  495. X61 418 31 33 Elli
  496. XEnd
  497. X
  498. XBegin %I Text
  499. X%I cfg Black
  500. X0 0 0 SetCFg
  501. X%I f *-courier-medium-r-*-80-*
  502. X/Courier 8 SetF
  503. X%I t
  504. X[ 1 0 0 1 226 213 ] concat
  505. X%I
  506. X[
  507. X(= Intermediate State)
  508. X] Text
  509. XEnd
  510. X
  511. XBegin %I Text
  512. X%I cfg Black
  513. X0 0 0 SetCFg
  514. X%I f *-courier-medium-r-*-80-*
  515. X/Courier 8 SetF
  516. X%I t
  517. X[ 1 0 0 1 426 212 ] concat
  518. X%I
  519. X[
  520. X(= End State)
  521. X] Text
  522. XEnd
  523. X
  524. XEnd %I eop
  525. X
  526. Xshowpage
  527. X
  528. X%%Trailer
  529. X
  530. Xend
  531. SHAR_EOF
  532. echo "File doc/pscan.idr is complete" &&
  533. $TOUCH -am 0707112690 doc/pscan.idr &&
  534. chmod 0644 doc/pscan.idr ||
  535. echo "restore of doc/pscan.idr failed"
  536. set `wc -c doc/pscan.idr`;Wc_c=$1
  537. if test "$Wc_c" != "17644"; then
  538.     echo original size 17644, current size $Wc_c
  539. fi
  540. # ============= doc/scanner.doc ==============
  541. echo "x - extracting doc/scanner.doc (Text)"
  542. sed 's/^X//' << 'SHAR_EOF' > doc/scanner.doc &&
  543. XProgram:    lj2ps, 1.2 (release)
  544. XFile:        scanner.doc
  545. X
  546. XAuthor:        Christopher Lishka
  547. XOrganization:    Wisconsin State Laboratory of Hygiene
  548. X        Data Deprocessing Dept.
  549. X
  550. XDate:        March, 1990
  551. X
  552. X
  553. XTopic:        Scanner Implementation Notes
  554. X
  555. X1. Introduction
  556. X
  557. XIn creating a LaserJet-to-Postscript converter, it is necessary to
  558. Xdevelop a scanner for properly distinguishing between text and
  559. XLaserJet commands.  This document details the scanner I created, which
  560. Xwas a major section of the lj2ps program.
  561. X
  562. XAt first I used lex to generate a scanner module, which I tied into my
  563. Xprogram with the interface in scan.h.  Although lex was likely not the
  564. Xmost efficient choice (due to the overwhelming features it offers), it
  565. Xdid allow me to modify my scanner as needed as more and more bugs were
  566. Xdiscovered in my original design.
  567. X
  568. XHowever, the use of lex proved to be a rocky road ending in a wide
  569. Xravine.  Besides struggling with the state feature of lex, I
  570. Xencountered many small problems that are common when lex is used.  The
  571. Xfinal straw was when I discovered that lex could not handle null
  572. Xcharacters in the input stream.  If the scanner was to be useful and
  573. Xextendable, null characters *had* to be handled, for their use in
  574. Xbitmaps graphics was very common.  This implied that the lex scanner I
  575. Xhad built had to be tossed out.  The development effort of the lex
  576. Xscanner was not wasted though.  It did provide a suitable platform for
  577. Xrevising my initial scanner design.
  578. X
  579. X
  580. X2. The Table-Driven Finite State Automata
  581. X
  582. XIn place of the inadequate lex scanner, I decided to create a
  583. Xhand-coded, state-driven FSA.  This would provide a fast and efficient
  584. Xscanner that could overcome the defficiencies of the lex system.
  585. XHowever, it would also take more time to develop the FSA and translate
  586. Xit into tables.
  587. X
  588. XCertain characteristics of the LaserJet PCL scanner lent themselves
  589. Xwell to improved efficiency and compact design.  One important
  590. Xcharacteristic was that no *actions* were required on the transitions
  591. Xfrom state to state.  Instead, a single default action of copying the
  592. Xcurrent character to a token buffer was all that was needed.  This
  593. Xallowed for the complete elimination of the action table.  Another
  594. Xmajor aspect was the relatively small number of character classes.
  595. XThis allowed for a simple character class table translation mechanism.
  596. X
  597. X
  598. X3. Implementation Details
  599. X
  600. XWhat follows is the important details of my implementation.
  601. X
  602. X* There are actually *two* scanners.  Although this may seem somewhat
  603. X  "kludgy", it actually saves development time (which was a factor)
  604. X  because a true parser does not need to be written.  Instead, which
  605. X  scanner is being used is recorded in a global variable, and it is
  606. X  this one that is activated when scan() is run.
  607. X
  608. X  The reason that two separate scanners can be used lies in the
  609. X  LaserJet PCL language, which consists of text with embedded
  610. X  commands.  One scanner is responsible for scanning normal text, and
  611. X  is able to differentiate command prefixes (which always start with
  612. X  an escape character) from the surrounding text.  The other scanner
  613. X  is responsible for breaking up command parameters into useful
  614. X  tokens.
  615. X
  616. X  Each scanner has separate state and character class tables, as well
  617. X  as the necessary state constants that go with them.  The text
  618. X  scanner's tables and constants all start with "st_" or "ST_",
  619. X  whereas the parameter scanner uses "sp_" and "SP_".
  620. X
  621. X  One problem that may crop up in the future is commands that require
  622. X  trailing data.  Currently these commands are not implemented.  I
  623. X  have not put provisions in for reading variable length data after a
  624. X  PCL command.  However, it would be fairly trivial to add another
  625. X  function to the scanner module (say, scan_data(length)) that would
  626. X  read in a fixed number of characters (which would be interpreted as
  627. X  8-bit bytes).
  628. X
  629. X* I have defined mnemonic constants for the various states.  These
  630. X  have to be in numeric order (starting with zero) and must correspond
  631. X  directly to the states indexes in the state tables.  If this were a
  632. X  perfect world, C would have better enumeration facilities (believe
  633. X  me-I looked into this) and would allow enumerations as indexes into
  634. X  arrays.  Since we must live with the flaws, this is what I have come
  635. X  up with.
  636. X
  637. X  Also note that there are two "special" state types: those marked
  638. X  START and END.  START should always be state 1, whereas END should
  639. X  always be state 0.  These two constants are used to label the start
  640. X  and end states in both scanners, so they must remain the same for
  641. X  both.  I know that fixing the start and end states to predefined
  642. X  numbers was a kludge, but it was a fairly easy (and, hopefully,
  643. X  minor) solution.
  644. X
  645. X* My scanner differs slightly from the "traditional" model.  In mine,
  646. X  the *only* way to end the scanning of a token is to jump to the
  647. X  *single* END state.  "Blasphemy!" some may cry out, but actually
  648. X  this works quite well.  Once the END state is reached, the scanner
  649. X  is finished.  You can find out what token was scanned by maintaining
  650. X  a notion of what the previous state was and referring back to it
  651. X  when END is reached.  Hence the use of the variable prev_state in
  652. X  the function scan().
  653. X
  654. X  Related to the single END state is the demise of "actions."
  655. X  Although no actions on transitions are required, without a single
  656. X  END state one would need to keep a record of (a) which states are
  657. X  end states and (b) whether a put-back or accept of the last read
  658. X  character should be performed on reaching an end state.  (I actually
  659. X  considered using multiple end states first, but then settled on this
  660. X  because it was actually easier.)  With only one END state, the only
  661. X  thing that can be done when reaching here is to put-back the
  662. X  character that caused the transition to this state.  Therefore, the
  663. X  actions in my scanner are *always* an implicit accept of each
  664. X  character on a transition with a put-back of a character upon
  665. X  arrival at the single END state.  This makes everything much easier
  666. X  conceptually.
  667. X
  668. X  One consequence of this design is that the scanner must contain
  669. X  explicit error states.  In addition, *all* characters must belong to
  670. X  some character class and all character classes must have a
  671. X  transition to another state (in many states, most characters will
  672. X  have a transition to an error state).  This actually turns out to be
  673. X  a useful mechanism for scanning LaserJet PCL, because all characters
  674. X  can be text or data, and illegal characters in a command just cause
  675. X  the command to be ignored.
  676. X
  677. X* The token numbers to be returned are determined at the end of scan()
  678. X  in a large switch() statement (actually two switch()'s because of
  679. X  the multiple scanners).  This was the easiest way to do it, and was
  680. X  relatively efficient.  Note that prev_state must be examined,
  681. X  because curr_state will *always* equal END when the switch() is
  682. X  reached.
  683. X
  684. X  
  685. SHAR_EOF
  686. $TOUCH -am 0707112690 doc/scanner.doc &&
  687. chmod 0664 doc/scanner.doc ||
  688. echo "restore of doc/scanner.doc failed"
  689. set `wc -c doc/scanner.doc`;Wc_c=$1
  690. if test "$Wc_c" != "6867"; then
  691.     echo original size 6867, current size $Wc_c
  692. fi
  693. # ============= doc/suggest.doc ==============
  694. echo "x - extracting doc/suggest.doc (Text)"
  695. sed 's/^X//' << 'SHAR_EOF' > doc/suggest.doc &&
  696. XProgram:    lj2ps, 1.2 (release)
  697. XFile:        suggest.doc
  698. X
  699. XAuthor:        Christopher Lishka
  700. XOrganization:    Wisconsin State Laboratory of Hygiene 
  701. X        Data Processing Department
  702. X
  703. XDate:        April 25th, 1990
  704. XLast modified:    June  30th, 1990, by Chris Lishka
  705. X
  706. X
  707. XTopic:        Suggestions for Improving lj2ps
  708. X
  709. XBesides adding missing PCL commands, there are many areas where lj2ps
  710. Xcould be improved.  This file contains suggestions for those who want
  711. Xto extend the lj2ps program.
  712. X
  713. X* Add the missing commands LaserJet commands.  These include:
  714. X
  715. X  ** The position stack commands (fairly easy)
  716. X
  717. X  ** Secondary font support (fairly easy)
  718. X
  719. X  ** Macros (medium difficulty)
  720. X
  721. X  ** Graphics commands (difficult)
  722. X
  723. X  ** HP soft fonts (very difficult)
  724. X
  725. X
  726. X* Extend either the Test Suite or Metrics Suite (or both!) to include
  727. X  more tests which would better test LaserJet operations and quirks.
  728. X
  729. X
  730. X* The font mechanism should be completely replaced.  Here are some
  731. X  suggestions for this area:
  732. X
  733. X  ** Currently the fonts information is hard-coded into the file
  734. X     ljfonts.c.  A parser should be written that reads a file
  735. X     describing which fonts are mounted in the virtual LaserJet.
  736. X
  737. X  ** Currently there are two PostScript functions for setting the
  738. X     current font: F and FS.  In reality, only FS should be needed.
  739. X     However, the scaling information for each font would need to be
  740. X     changed, and I don't have the time to do this.
  741. X
  742. X  ** Rescaleable, downloadable LaserJet fonts should be created for
  743. X     the LaserWriter.  The only way that the two machines will have
  744. X     similar looking fonts is to custom-make LaserJet fonts for the
  745. X     LaserWriter.  This, of course, is a helluva lot of work!  On the
  746. X     other hand, it would improve the output immensely.
  747. X
  748. X
  749. X* Using two separate scanners is rather kludgy.  It is very likely
  750. X  that the text scanner could be replaced by a tightly-coded loop
  751. X  which would read a character, check to see if it was "special", and
  752. X  add it to the buffer if it wasn't.  Special characters would include:
  753. X
  754. X  (a) The escape character: this would throw execution into a special
  755. X      command scanner/parser, which would handle recognition and
  756. X      execution of all PCL commands.  This parser would need to be
  757. X      able to read long sequences of binary information (for commands
  758. X      with data).  After the command was finished, the parser would
  759. X      return to the above text loop.
  760. X
  761. X  (b) Left and right parentheses, backslash: these must be quoted in
  762. X      PostScript programs, and cannot simply be written out.
  763. X
  764. X  (c) Newline: perform PostScript code to write a newline.
  765. X
  766. X  (d) Form feed: perform PostScript code to start a new page.
  767. X
  768. X  (e) Tab: perform PostScript code to move to the next tab-stop.
  769. X
  770. X  (f) Shift in: switch to the secondary character set.
  771. X
  772. X  (g) Shift out: switch to the primary character set.
  773. X
  774. X  (h) Null, and other non-special, non-printable characters: these
  775. X      should produce a warning, even though the LaserJet would let
  776. X      them slip by.
  777. X
  778. X
  779. X* I never implemented a real parser for the PCL commands.  Instead,
  780. X  each PCL command prefix has its own dedicated function.  Each of
  781. X  these functions has a small parser built into it.  As you might
  782. X  guess (especially after looking at the code!) this causes a lot of
  783. X  similar code to be duplicated in each function.  It would be nice to
  784. X  implement a single "real" parser for the PCL commands, in
  785. X  conjunction with the scanner changes mentioned above.  This would
  786. X  make the overall design much cleaner, and may improve the efficiency
  787. X  some. 
  788. SHAR_EOF
  789. $TOUCH -am 0707112690 doc/suggest.doc &&
  790. chmod 0664 doc/suggest.doc ||
  791. echo "restore of doc/suggest.doc failed"
  792. set `wc -c doc/suggest.doc`;Wc_c=$1
  793. if test "$Wc_c" != "3517"; then
  794.     echo original size 3517, current size $Wc_c
  795. fi
  796. # ============= doc/tscan.idr ==============
  797. echo "x - extracting doc/tscan.idr (Text)"
  798. sed 's/^X//' << 'SHAR_EOF' > doc/tscan.idr &&
  799. X%!PS-Adobe-2.0 EPSF-1.2
  800. X%%DocumentFonts: Courier
  801. X%%Pages: 1
  802. X%%BoundingBox: 99 37 518 754
  803. X%%EndComments
  804. X
  805. X50 dict begin
  806. X
  807. X/arrowHeight 8 def
  808. X/arrowWidth 4 def
  809. X/none null def
  810. X/numGraphicParameters 17 def
  811. X/stringLimit 65535 def
  812. X
  813. X/Begin {
  814. Xsave
  815. XnumGraphicParameters dict begin
  816. X} def
  817. X
  818. X/End {
  819. Xend
  820. Xrestore
  821. X} def
  822. X
  823. X/SetB {
  824. Xdup type /nulltype eq {
  825. Xpop
  826. Xfalse /brushRightArrow idef
  827. Xfalse /brushLeftArrow idef
  828. Xtrue /brushNone idef
  829. X} {
  830. X/brushDashOffset idef
  831. X/brushDashArray idef
  832. X0 ne /brushRightArrow idef
  833. X0 ne /brushLeftArrow idef
  834. X/brushWidth idef
  835. Xfalse /brushNone idef
  836. X} ifelse
  837. X} def
  838. X
  839. X/SetCFg {
  840. X/fgblue idef
  841. X/fggreen idef
  842. X/fgred idef
  843. X} def
  844. X
  845. X/SetCBg {
  846. X/bgblue idef
  847. X/bggreen idef
  848. X/bgred idef
  849. X} def
  850. X
  851. X/SetF {
  852. X/printSize idef
  853. X/printFont idef
  854. X} def
  855. X
  856. X/SetP {
  857. Xdup type /nulltype eq {
  858. Xpop true /patternNone idef
  859. X} {
  860. X/patternGrayLevel idef
  861. XpatternGrayLevel -1 eq {
  862. X/patternString idef
  863. X} if
  864. Xfalse /patternNone idef
  865. X} ifelse
  866. X} def
  867. X
  868. X/BSpl {
  869. X0 begin
  870. Xstorexyn
  871. Xnewpath
  872. Xn 1 gt {
  873. X0 0 0 0 0 0 1 1 true subspline
  874. Xn 2 gt {
  875. X0 0 0 0 1 1 2 2 false subspline
  876. X1 1 n 3 sub {
  877. X/i exch def
  878. Xi 1 sub dup i dup i 1 add dup i 2 add dup false subspline
  879. X} for
  880. Xn 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
  881. X} if
  882. Xn 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
  883. XpatternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
  884. XbrushNone not { istroke } if
  885. X0 0 1 1 leftarrow
  886. Xn 2 sub dup n 1 sub dup rightarrow
  887. X} if
  888. Xend
  889. X} dup 0 4 dict put def
  890. X
  891. X/Circ {
  892. Xnewpath
  893. X0 360 arc
  894. XpatternNone not { ifill } if
  895. XbrushNone not { istroke } if
  896. X} def
  897. X
  898. X/CBSpl {
  899. X0 begin
  900. Xdup 2 gt {
  901. Xstorexyn
  902. Xnewpath
  903. Xn 1 sub dup 0 0 1 1 2 2 true subspline
  904. X1 1 n 3 sub {
  905. X/i exch def
  906. Xi 1 sub dup i dup i 1 add dup i 2 add dup false subspline
  907. X} for
  908. Xn 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
  909. Xn 2 sub dup n 1 sub dup 0 0 1 1 false subspline
  910. XpatternNone not { ifill } if
  911. XbrushNone not { istroke } if
  912. X} {
  913. XPoly
  914. X} ifelse
  915. Xend
  916. X} dup 0 4 dict put def
  917. X
  918. X/Elli {
  919. X0 begin
  920. Xnewpath
  921. X4 2 roll
  922. Xtranslate
  923. Xscale
  924. X0 0 1 0 360 arc
  925. XpatternNone not { ifill } if
  926. XbrushNone not { istroke } if
  927. Xend
  928. X} dup 0 1 dict put def
  929. X
  930. X/Line {
  931. X0 begin
  932. X2 storexyn
  933. Xnewpath
  934. Xx 0 get y 0 get moveto
  935. Xx 1 get y 1 get lineto
  936. XbrushNone not { istroke } if
  937. X0 0 1 1 leftarrow
  938. X0 0 1 1 rightarrow
  939. Xend
  940. X} dup 0 4 dict put def
  941. X
  942. X/MLine {
  943. X0 begin
  944. Xstorexyn
  945. Xnewpath
  946. Xn 1 gt {
  947. Xx 0 get y 0 get moveto
  948. X1 1 n 1 sub {
  949. X/i exch def
  950. Xx i get y i get lineto
  951. X} for
  952. XpatternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
  953. XbrushNone not { istroke } if
  954. X0 0 1 1 leftarrow
  955. Xn 2 sub dup n 1 sub dup rightarrow
  956. X} if
  957. Xend
  958. X} dup 0 4 dict put def
  959. X
  960. X/Poly {
  961. X3 1 roll
  962. Xnewpath
  963. Xmoveto
  964. X-1 add
  965. X{ lineto } repeat
  966. Xclosepath
  967. XpatternNone not { ifill } if
  968. XbrushNone not { istroke } if
  969. X} def
  970. X
  971. X/Rect {
  972. X0 begin
  973. X/t exch def
  974. X/r exch def
  975. X/b exch def
  976. X/l exch def
  977. Xnewpath
  978. Xl b moveto
  979. Xl t lineto
  980. Xr t lineto
  981. Xr b lineto
  982. Xclosepath
  983. XpatternNone not { ifill } if
  984. XbrushNone not { istroke } if
  985. Xend
  986. X} dup 0 4 dict put def
  987. X
  988. X/Text {
  989. Xishow
  990. X} def
  991. X
  992. X/idef {
  993. Xdup where { pop pop pop } { exch def } ifelse
  994. X} def
  995. X
  996. X/ifill {
  997. X0 begin
  998. Xgsave
  999. XpatternGrayLevel -1 ne {
  1000. Xfgred bgred fgred sub patternGrayLevel mul add
  1001. Xfggreen bggreen fggreen sub patternGrayLevel mul add
  1002. Xfgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
  1003. Xeofill
  1004. X} {
  1005. Xeoclip
  1006. XoriginalCTM setmatrix
  1007. Xpathbbox /t exch def /r exch def /b exch def /l exch def
  1008. X/w r l sub ceiling cvi def
  1009. X/h t b sub ceiling cvi def
  1010. X/imageByteWidth w 8 div ceiling cvi def
  1011. X/imageHeight h def
  1012. Xbgred bggreen bgblue setrgbcolor
  1013. Xeofill
  1014. Xfgred fggreen fgblue setrgbcolor
  1015. Xw 0 gt h 0 gt and {
  1016. Xl b translate w h scale
  1017. Xw h true [w 0 0 h neg 0 h] { patternproc } imagemask
  1018. X} if
  1019. X} ifelse
  1020. Xgrestore
  1021. Xend
  1022. X} dup 0 8 dict put def
  1023. X
  1024. X/istroke {
  1025. Xgsave
  1026. XbrushDashOffset -1 eq {
  1027. X[] 0 setdash
  1028. X1 setgray
  1029. X} {
  1030. XbrushDashArray brushDashOffset setdash
  1031. Xfgred fggreen fgblue setrgbcolor
  1032. X} ifelse
  1033. XbrushWidth setlinewidth
  1034. XoriginalCTM setmatrix
  1035. Xstroke
  1036. Xgrestore
  1037. X} def
  1038. X
  1039. X/ishow {
  1040. X0 begin
  1041. Xgsave
  1042. XprintFont findfont printSize scalefont setfont
  1043. Xfgred fggreen fgblue setrgbcolor
  1044. X/vertoffset printSize neg def {
  1045. X0 vertoffset moveto show
  1046. X/vertoffset vertoffset printSize sub def
  1047. X} forall
  1048. Xgrestore
  1049. Xend
  1050. X} dup 0 3 dict put def
  1051. X
  1052. X/patternproc {
  1053. X0 begin
  1054. X/patternByteLength patternString length def
  1055. X/patternHeight patternByteLength 8 mul sqrt cvi def
  1056. X/patternWidth patternHeight def
  1057. X/patternByteWidth patternWidth 8 idiv def
  1058. X/imageByteMaxLength imageByteWidth imageHeight mul
  1059. XstringLimit patternByteWidth sub min def
  1060. X/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
  1061. XpatternHeight mul patternHeight max def
  1062. X/imageHeight imageHeight imageMaxHeight sub store
  1063. X/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
  1064. X0 1 imageMaxHeight 1 sub {
  1065. X/y exch def
  1066. X/patternRow y patternByteWidth mul patternByteLength mod def
  1067. X/patternRowString patternString patternRow patternByteWidth getinterval def
  1068. X/imageRow y imageByteWidth mul def
  1069. X0 patternByteWidth imageByteWidth 1 sub {
  1070. X/x exch def
  1071. XimageString imageRow x add patternRowString putinterval
  1072. X} for
  1073. X} for
  1074. XimageString
  1075. Xend
  1076. X} dup 0 12 dict put def
  1077. X
  1078. X/min {
  1079. Xdup 3 2 roll dup 4 3 roll lt { exch } if pop
  1080. X} def
  1081. X
  1082. X/max {
  1083. Xdup 3 2 roll dup 4 3 roll gt { exch } if pop
  1084. X} def
  1085. X
  1086. X/arrowhead {
  1087. X0 begin
  1088. Xtransform originalCTM itransform
  1089. X/taily exch def
  1090. X/tailx exch def
  1091. Xtransform originalCTM itransform
  1092. X/tipy exch def
  1093. X/tipx exch def
  1094. X/dy tipy taily sub def
  1095. X/dx tipx tailx sub def
  1096. X/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
  1097. Xgsave
  1098. XoriginalCTM setmatrix
  1099. Xtipx tipy translate
  1100. Xangle rotate
  1101. Xnewpath
  1102. X0 0 moveto
  1103. XarrowHeight neg arrowWidth 2 div lineto
  1104. XarrowHeight neg arrowWidth 2 div neg lineto
  1105. Xclosepath
  1106. XpatternNone not {
  1107. XoriginalCTM setmatrix
  1108. X/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
  1109. XarrowWidth div def
  1110. X/padtail brushWidth 2 div def
  1111. Xtipx tipy translate
  1112. Xangle rotate
  1113. Xpadtip 0 translate
  1114. XarrowHeight padtip add padtail add arrowHeight div dup scale
  1115. Xarrowheadpath
  1116. Xifill
  1117. X} if
  1118. XbrushNone not {
  1119. XoriginalCTM setmatrix
  1120. Xtipx tipy translate
  1121. Xangle rotate
  1122. Xarrowheadpath
  1123. Xistroke
  1124. X} if
  1125. Xgrestore
  1126. Xend
  1127. X} dup 0 9 dict put def
  1128. X
  1129. X/arrowheadpath {
  1130. Xnewpath
  1131. X0 0 moveto
  1132. XarrowHeight neg arrowWidth 2 div lineto
  1133. XarrowHeight neg arrowWidth 2 div neg lineto
  1134. Xclosepath
  1135. X} def
  1136. X
  1137. X/leftarrow {
  1138. X0 begin
  1139. Xy exch get /taily exch def
  1140. Xx exch get /tailx exch def
  1141. Xy exch get /tipy exch def
  1142. Xx exch get /tipx exch def
  1143. XbrushLeftArrow { tipx tipy tailx taily arrowhead } if
  1144. Xend
  1145. X} dup 0 4 dict put def
  1146. X
  1147. X/rightarrow {
  1148. X0 begin
  1149. Xy exch get /tipy exch def
  1150. Xx exch get /tipx exch def
  1151. Xy exch get /taily exch def
  1152. Xx exch get /tailx exch def
  1153. XbrushRightArrow { tipx tipy tailx taily arrowhead } if
  1154. Xend
  1155. X} dup 0 4 dict put def
  1156. X
  1157. X/midpoint {
  1158. X0 begin
  1159. X/y1 exch def
  1160. X/x1 exch def
  1161. X/y0 exch def
  1162. X/x0 exch def
  1163. Xx0 x1 add 2 div
  1164. Xy0 y1 add 2 div
  1165. Xend
  1166. X} dup 0 4 dict put def
  1167. X
  1168. X/thirdpoint {
  1169. X0 begin
  1170. X/y1 exch def
  1171. X/x1 exch def
  1172. X/y0 exch def
  1173. X/x0 exch def
  1174. Xx0 2 mul x1 add 3 div
  1175. Xy0 2 mul y1 add 3 div
  1176. Xend
  1177. X} dup 0 4 dict put def
  1178. X
  1179. X/subspline {
  1180. X0 begin
  1181. X/movetoNeeded exch def
  1182. Xy exch get /y3 exch def
  1183. Xx exch get /x3 exch def
  1184. Xy exch get /y2 exch def
  1185. Xx exch get /x2 exch def
  1186. Xy exch get /y1 exch def
  1187. Xx exch get /x1 exch def
  1188. Xy exch get /y0 exch def
  1189. Xx exch get /x0 exch def
  1190. Xx1 y1 x2 y2 thirdpoint
  1191. X/p1y exch def
  1192. X/p1x exch def
  1193. Xx2 y2 x1 y1 thirdpoint
  1194. X/p2y exch def
  1195. X/p2x exch def
  1196. Xx1 y1 x0 y0 thirdpoint
  1197. Xp1x p1y midpoint
  1198. X/p0y exch def
  1199. X/p0x exch def
  1200. Xx2 y2 x3 y3 thirdpoint
  1201. Xp2x p2y midpoint
  1202. X/p3y exch def
  1203. X/p3x exch def
  1204. XmovetoNeeded { p0x p0y moveto } if
  1205. Xp1x p1y p2x p2y p3x p3y curveto
  1206. Xend
  1207. X} dup 0 17 dict put def
  1208. X
  1209. X/storexyn {
  1210. X/n exch def
  1211. X/y n array def
  1212. X/x n array def
  1213. Xn 1 sub -1 0 {
  1214. X/i exch def
  1215. Xy i 3 2 roll put
  1216. Xx i 3 2 roll put
  1217. X} for
  1218. X} def
  1219. X
  1220. X%%EndProlog
  1221. X
  1222. X%I Idraw 5 Grid 8
  1223. X
  1224. X%%Page: 1 1
  1225. X
  1226. XBegin
  1227. X%I b u
  1228. X%I cfg u
  1229. X%I cbg u
  1230. X%I f u
  1231. X%I p u
  1232. X%I t
  1233. X[ 0.96 0 0 0.96 0 0 ] concat
  1234. X/originalCTM matrix currentmatrix def
  1235. X
  1236. XBegin %I Text
  1237. X%I cfg Black
  1238. X0 0 0 SetCFg
  1239. X%I f *-courier-medium-r-*-80-*
  1240. X/Courier 8 SetF
  1241. X%I t
  1242. X[ 1 0 0 1 130 138 ] concat
  1243. X%I
  1244. X[
  1245. X(* All end states include a description of the token recognized.)
  1246. X()
  1247. X(* All states include the three letter code that is used in the C-code \(where)
  1248. X(  it is preceded by the prefix ST_\).)
  1249. X()
  1250. X(* All transitions are marked with the characters that cause the transition.)
  1251. X()
  1252. X(* The action for all transitions is to store the character in a buffer.)
  1253. X()
  1254. X(* The action for all end states is to accept the last character, except for the)
  1255. X(  states CLP, CRP, and TXT, which cause the last character to be put back into)
  1256. X(  the input stream.)
  1257. X] Text
  1258. XEnd
  1259. X
  1260. XBegin %I Text
  1261. X%I cfg Black
  1262. X0 0 0 SetCFg
  1263. X%I f *-courier-medium-r-*-80-*
  1264. X/Courier 8 SetF
  1265. X%I t
  1266. X[ 2.67273 0 0 2.67273 167 782.691 ] concat
  1267. X%I
  1268. X[
  1269. X(Text Scanner for lj2ps)
  1270. X] Text
  1271. XEnd
  1272. X
  1273. XBegin %I Pict
  1274. X%I b u
  1275. X%I cfg u
  1276. X%I cbg u
  1277. X%I f u
  1278. X%I p u
  1279. X%I t
  1280. X[ 0.735593 0 0 0.735593 -382.698 146.167 ] concat
  1281. X
  1282. XBegin %I Elli
  1283. X%I b 65535
  1284. X1 0 0 [] 0 SetB
  1285. X%I cfg Black
  1286. X0 0 0 SetCFg
  1287. X%I cbg White
  1288. X1 1 1 SetCBg
  1289. X%I p
  1290. X0 SetP
  1291. X%I t
  1292. X[ 0.959978 0 0 0.959978 1090.48 160.992 ] concat
  1293. X%I
  1294. X72 188 24 24 Elli
  1295. XEnd
  1296. X
  1297. XBegin %I Elli
  1298. X%I b 65535
  1299. X1 0 0 [] 0 SetB
  1300. X%I cfg Black
  1301. X0 0 0 SetCFg
  1302. X%I cbg White
  1303. X1 1 1 SetCBg
  1304. X%I p
  1305. X0 SetP
  1306. X%I t
  1307. X[ 0.959978 0 0 0.959978 1087.6 284.829 ] concat
  1308. X%I
  1309. X72 188 24 24 Elli
  1310. XEnd
  1311. X
  1312. XBegin %I Elli
  1313. X%I b 65535
  1314. X1 0 0 [] 0 SetB
  1315. X%I cfg Black
  1316. X0 0 0 SetCFg
  1317. X%I cbg White
  1318. X1 1 1 SetCBg
  1319. X%I p
  1320. X0 SetP
  1321. X%I t
  1322. X[ 0.959978 0 0 0.959978 1088.56 220.51 ] concat
  1323. X%I
  1324. X72 188 24 24 Elli
  1325. XEnd
  1326. X
  1327. XBegin %I Elli
  1328. X%I b 65535
  1329. X1 0 0 [] 0 SetB
  1330. X%I cfg Black
  1331. X0 0 0 SetCFg
  1332. X%I cbg White
  1333. X1 1 1 SetCBg
  1334. X%I p
  1335. X0 SetP
  1336. X%I t
  1337. X[ 0.959978 0 0 0.959978 1089.52 380.827 ] concat
  1338. X%I
  1339. X72 188 24 24 Elli
  1340. XEnd
  1341. X
  1342. XBegin %I Elli
  1343. X%I b 65535
  1344. X1 0 0 [] 0 SetB
  1345. X%I cfg Black
  1346. X0 0 0 SetCFg
  1347. X%I cbg White
  1348. X1 1 1 SetCBg
  1349. X%I p
  1350. X0 SetP
  1351. X%I t
  1352. X[ 0.959978 0 0 0.959978 1088.56 441.305 ] concat
  1353. X%I
  1354. X72 188 24 24 Elli
  1355. XEnd
  1356. X
  1357. XBegin %I Elli
  1358. X%I b 65535
  1359. X1 0 0 [] 0 SetB
  1360. X%I cfg Black
  1361. X0 0 0 SetCFg
  1362. X%I cbg White
  1363. X1 1 1 SetCBg
  1364. X%I p
  1365. X0 SetP
  1366. X%I t
  1367. X[ 0.959978 0 0 0.959978 1083.76 569.942 ] concat
  1368. X%I
  1369. X72 188 24 24 Elli
  1370. XEnd
  1371. X
  1372. XBegin %I Elli
  1373. X%I b 65535
  1374. X1 0 0 [] 0 SetB
  1375. X%I cfg Black
  1376. X0 0 0 SetCFg
  1377. X%I cbg White
  1378. X1 1 1 SetCBg
  1379. X%I p
  1380. X0 SetP
  1381. X%I t
  1382. X[ 0.959978 0 0 0.959978 1012.72 570.902 ] concat
  1383. X%I
  1384. X72 188 24 24 Elli
  1385. XEnd
  1386. X
  1387. XBegin %I Elli
  1388. X%I b 65535
  1389. X1 0 0 [] 0 SetB
  1390. X%I cfg Black
  1391. X0 0 0 SetCFg
  1392. X%I cbg White
  1393. X1 1 1 SetCBg
  1394. X%I p
  1395. X0 SetP
  1396. X%I t
  1397. X[ 0.959978 0 0 0.959978 943.6 572.822 ] concat
  1398. X%I
  1399. X72 188 24 24 Elli
  1400. XEnd
  1401. X
  1402. XBegin %I Elli
  1403. X%I b 65535
  1404. X1 0 0 [] 0 SetB
  1405. X%I cfg Black
  1406. X0 0 0 SetCFg
  1407. X%I cbg White
  1408. X1 1 1 SetCBg
  1409. X%I p
  1410. X0 SetP
  1411. X%I t
  1412. X[ 0.959978 0 0 0.959978 872.562 571.862 ] concat
  1413. X%I
  1414. X72 188 24 24 Elli
  1415. XEnd
  1416. X
  1417. XBegin %I Elli
  1418. X%I b 65535
  1419. X1 0 0 [] 0 SetB
  1420. X%I cfg Black
  1421. X0 0 0 SetCFg
  1422. X%I cbg White
  1423. X1 1 1 SetCBg
  1424. X%I p
  1425. X0 SetP
  1426. X%I t
  1427. X[ 0.959978 0 0 0.959978 799.604 572.822 ] concat
  1428. X%I
  1429. X72 188 24 24 Elli
  1430. XEnd
  1431. X
  1432. XBegin %I Elli
  1433. X%I b 65535
  1434. X1 0 0 [] 0 SetB
  1435. X%I cfg Black
  1436. X0 0 0 SetCFg
  1437. X%I cbg White
  1438. X1 1 1 SetCBg
  1439. X%I p
  1440. X0 SetP
  1441. X%I t
  1442. X[ 0.959978 0 0 0.959978 727.605 572.822 ] concat
  1443. X%I
  1444. X72 188 24 24 Elli
  1445. XEnd
  1446. X
  1447. XBegin %I Elli
  1448. X%I b 65535
  1449. X1 0 0 [] 0 SetB
  1450. X%I cfg Black
  1451. X0 0 0 SetCFg
  1452. X%I cbg White
  1453. X1 1 1 SetCBg
  1454. X%I p
  1455. X0 SetP
  1456. X%I t
  1457. X[ 0.959978 0 0 0.959978 656.567 571.862 ] concat
  1458. X%I
  1459. X72 188 24 24 Elli
  1460. XEnd
  1461. X
  1462. XBegin %I Elli
  1463. X%I b 65535
  1464. X1 0 0 [] 0 SetB
  1465. X%I cfg Black
  1466. X0 0 0 SetCFg
  1467. X%I cbg White
  1468. X1 1 1 SetCBg
  1469. X%I p
  1470. X0 SetP
  1471. X%I t
  1472. X[ 0.959978 0 0 0.959978 650.807 370.267 ] concat
  1473. X%I
  1474. X72 188 24 24 Elli
  1475. XEnd
  1476. X
  1477. XBegin %I Elli
  1478. X%I b 65535
  1479. X1 0 0 [] 0 SetB
  1480. X%I cfg Black
  1481. X0 0 0 SetCFg
  1482. X%I cbg White
  1483. X1 1 1 SetCBg
  1484. X%I p
  1485. X0 SetP
  1486. X%I t
  1487. X[ 0.959978 0 0 0.959978 1086.64 506.584 ] concat
  1488. X%I
  1489. X72 188 24 24 Elli
  1490. XEnd
  1491. X
  1492. XBegin %I Elli
  1493. X%I b 65535
  1494. X1 0 0 [] 0 SetB
  1495. X%I cfg Black
  1496. X0 0 0 SetCFg
  1497. X%I cbg White
  1498. X1 1 1 SetCBg
  1499. X%I p
  1500. X0 SetP
  1501. X%I t
  1502. X[ 0.959978 0 0 0.959978 910.961 -43.4835 ] concat
  1503. X%I
  1504. X72 188 24 24 Elli
  1505. XEnd
  1506. X
  1507. XBegin %I Elli
  1508. X%I b 65535
  1509. X1 0 0 [] 0 SetB
  1510. X%I cfg Black
  1511. X0 0 0 SetCFg
  1512. X%I cbg White
  1513. X1 1 1 SetCBg
  1514. X%I p
  1515. X0 SetP
  1516. X%I t
  1517. X[ 0.959978 0 0 0.959978 967.6 -44.4434 ] concat
  1518. X%I
  1519. X72 188 24 24 Elli
  1520. XEnd
  1521. X
  1522. XBegin %I Elli
  1523. X%I b 65535
  1524. X1 0 0 [] 0 SetB
  1525. X%I cfg Black
  1526. X0 0 0 SetCFg
  1527. X%I cbg White
  1528. X1 1 1 SetCBg
  1529. X%I p
  1530. X0 SetP
  1531. X%I t
  1532. X[ 0.959978 0 0 0.959978 1023.28 -44.4434 ] concat
  1533. X%I
  1534. X72 188 24 24 Elli
  1535. XEnd
  1536. X
  1537. XBegin %I Elli
  1538. X%I b 65535
  1539. X1 0 0 [] 0 SetB
  1540. X%I cfg Black
  1541. X0 0 0 SetCFg
  1542. X%I cbg White
  1543. X1 1 1 SetCBg
  1544. X%I p
  1545. X0 SetP
  1546. X%I t
  1547. X[ 0.959978 0 0 0.959978 1081.84 -43.4835 ] concat
  1548. X%I
  1549. X72 188 24 24 Elli
  1550. XEnd
  1551. X
  1552. XBegin %I Elli
  1553. X%I b 65535
  1554. X1 0 0 [] 0 SetB
  1555. X%I cfg Black
  1556. X0 0 0 SetCFg
  1557. X%I cbg White
  1558. X1 1 1 SetCBg
  1559. X%I p
  1560. X0 SetP
  1561. X%I t
  1562. X[ 0.959978 0 0 0.959978 1092.4 43.8745 ] concat
  1563. X%I
  1564. X72 188 24 24 Elli
  1565. XEnd
  1566. X
  1567. XBegin %I Elli
  1568. X%I b 65535
  1569. X1 0 0 [] 0 SetB
  1570. X%I cfg Black
  1571. X0 0 0 SetCFg
  1572. X%I cbg White
  1573. X1 1 1 SetCBg
  1574. X%I p
  1575. X0 SetP
  1576. X%I t
  1577. X[ 0.959978 0 0 0.959978 1092.4 102.433 ] concat
  1578. X%I
  1579. X72 188 24 24 Elli
  1580. XEnd
  1581. X
  1582. XBegin %I Elli
  1583. X%I b 65535
  1584. X1 0 0 [] 0 SetB
  1585. X%I cfg Black
  1586. X0 0 0 SetCFg
  1587. X%I cbg White
  1588. X1 1 1 SetCBg
  1589. X%I p
  1590. X0 SetP
  1591. X%I t
  1592. X[ 0.959978 0 0 0.959978 743.925 -43.4835 ] concat
  1593. X%I
  1594. X72 188 24 24 Elli
  1595. XEnd
  1596. X
  1597. XBegin %I Elli
  1598. X%I b 65535
  1599. X1 0 0 [] 0 SetB
  1600. X%I cfg Black
  1601. X0 0 0 SetCFg
  1602. X%I cbg White
  1603. X1 1 1 SetCBg
  1604. X%I p
  1605. X0 SetP
  1606. X%I t
  1607. X[ 0.959978 0 0 0.959978 893.682 330.908 ] concat
  1608. X%I
  1609. X72 188 24 24 Elli
  1610. XEnd
  1611. X
  1612. XBegin %I Elli
  1613. X%I b 65535
  1614. X1 0 0 [] 0 SetB
  1615. X%I cfg Black
  1616. X0 0 0 SetCFg
  1617. X%I cbg White
  1618. X1 1 1 SetCBg
  1619. X%I p
  1620. X0 SetP
  1621. X%I t
  1622. X[ 0.959978 0 0 0.959978 988.719 332.828 ] concat
  1623. X%I
  1624. X72 188 24 24 Elli
  1625. XEnd
  1626. X
  1627. XBegin %I Elli
  1628. X%I b 65535
  1629. X1 0 0 [] 0 SetB
  1630. X%I cfg Black
  1631. X0 0 0 SetCFg
  1632. X%I cbg White
  1633. X1 1 1 SetCBg
  1634. X%I p
  1635. X0 SetP
  1636. X%I t
  1637. X[ 0.959978 0 0 0.959978 652.727 207.071 ] concat
  1638. X%I
  1639. X72 188 24 24 Elli
  1640. XEnd
  1641. X
  1642. XBegin %I Elli
  1643. X%I b 65535
  1644. X1 0 0 [] 0 SetB
  1645. X%I cfg Black
  1646. X0 0 0 SetCFg
  1647. X%I cbg White
  1648. X1 1 1 SetCBg
  1649. X%I p
  1650. X0 SetP
  1651. X%I t
  1652. X[ 0.959978 0 0 0.959978 653.687 156.192 ] concat
  1653. X%I
  1654. X72 188 24 24 Elli
  1655. XEnd
  1656. X
  1657. XBegin %I Elli
  1658. X%I b 65535
  1659. X1 0 0 [] 0 SetB
  1660. X%I cfg Black
  1661. X0 0 0 SetCFg
  1662. X%I cbg White
  1663. X1 1 1 SetCBg
  1664. X%I p
  1665. X0 SetP
  1666. X%I t
  1667. X[ 0.959978 0 0 0.959978 654.647 103.393 ] concat
  1668. X%I
  1669. X72 188 24 24 Elli
  1670. XEnd
  1671. X
  1672. XBegin %I Elli
  1673. X%I b 65535
  1674. X1 0 0 [] 0 SetB
  1675. X%I cfg Black
  1676. X0 0 0 SetCFg
  1677. X%I cbg White
  1678. X1 1 1 SetCBg
  1679. X%I p
  1680. X0 SetP
  1681. X%I t
  1682. X[ 0.959978 0 0 0.959978 653.687 51.5543 ] concat
  1683. X%I
  1684. X72 188 24 24 Elli
  1685. XEnd
  1686. X
  1687. XBegin %I Elli
  1688. X%I b 65535
  1689. X1 0 1 [] 0 SetB
  1690. X%I cfg Black
  1691. X0 0 0 SetCFg
  1692. X%I cbg White
  1693. X1 1 1 SetCBg
  1694. X%I p
  1695. X0 SetP
  1696. X%I t
  1697. X[ 0.959978 0 0 0.959978 653.687 1.6355 ] concat
  1698. X%I
  1699. X72 188 24 24 Elli
  1700. XEnd
  1701. X
  1702. XBegin %I Elli
  1703. X%I b 65535
  1704. X1 0 0 [] 0 SetB
  1705. X%I cfg Black
  1706. X0 0 0 SetCFg
  1707. X%I cbg White
  1708. X1 1 1 SetCBg
  1709. X%I p
  1710. X0 SetP
  1711. X%I t
  1712. X[ 0.959978 0 0 0.959978 799.604 -43.4835 ] concat
  1713. X%I
  1714. X72 188 24 24 Elli
  1715. XEnd
  1716. X
  1717. XBegin %I Elli
  1718. X%I b 65535
  1719. X1 0 0 [] 0 SetB
  1720. X%I cfg Black
  1721. X0 0 0 SetCFg
  1722. X%I cbg White
  1723. X1 1 1 SetCBg
  1724. X%I p
  1725. X0 SetP
  1726. X%I t
  1727. X[ 0.959978 0 0 0.959978 854.322 -43.4835 ] concat
  1728. X%I
  1729. X72 188 24 24 Elli
  1730. XEnd
  1731. X
  1732. XBegin %I Line
  1733. X%I b 65535
  1734. X1 0 1 [] 0 SetB
  1735. X%I cfg Black
  1736. X0 0 0 SetCFg
  1737. X%I cbg White
  1738. X1 1 1 SetCBg
  1739. X%I p
  1740. X0 SetP
  1741. X%I t
  1742. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1743. X%I
  1744. X67 550 72 710 Line
  1745. XEnd
  1746. X
  1747. XBegin %I Line
  1748. X%I b 65535
  1749. X1 0 1 [] 0 SetB
  1750. X%I cfg Black
  1751. X0 0 0 SetCFg
  1752. X%I cbg White
  1753. X1 1 1 SetCBg
  1754. X%I p
  1755. X0 SetP
  1756. X%I t
  1757. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1758. X%I
  1759. X71 548 138 710 Line
  1760. XEnd
  1761. X
  1762. XBegin %I Line
  1763. X%I b 65535
  1764. X1 0 1 [] 0 SetB
  1765. X%I cfg Black
  1766. X0 0 0 SetCFg
  1767. X%I cbg White
  1768. X1 1 1 SetCBg
  1769. X%I p
  1770. X0 SetP
  1771. X%I t
  1772. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1773. X%I
  1774. X75 546 206 715 Line
  1775. XEnd
  1776. X
  1777. XBegin %I Line
  1778. X%I b 65535
  1779. X1 0 1 [] 0 SetB
  1780. X%I cfg Black
  1781. X0 0 0 SetCFg
  1782. X%I cbg White
  1783. X1 1 1 SetCBg
  1784. X%I p
  1785. X0 SetP
  1786. X%I t
  1787. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1788. X%I
  1789. X78 545 281 715 Line
  1790. XEnd
  1791. X
  1792. XBegin %I Line
  1793. X%I b 65535
  1794. X1 0 1 [] 0 SetB
  1795. X%I cfg Black
  1796. X0 0 0 SetCFg
  1797. X%I cbg White
  1798. X1 1 1 SetCBg
  1799. X%I p
  1800. X0 SetP
  1801. X%I t
  1802. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1803. X%I
  1804. X82 543 353 718 Line
  1805. XEnd
  1806. X
  1807. XBegin %I Line
  1808. X%I b 65535
  1809. X1 0 1 [] 0 SetB
  1810. X%I cfg Black
  1811. X0 0 0 SetCFg
  1812. X%I cbg White
  1813. X1 1 1 SetCBg
  1814. X%I p
  1815. X0 SetP
  1816. X%I t
  1817. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1818. X%I
  1819. X85 540 423 717 Line
  1820. XEnd
  1821. X
  1822. XBegin %I Line
  1823. X%I b 65535
  1824. X1 0 1 [] 0 SetB
  1825. X%I cfg Black
  1826. X0 0 0 SetCFg
  1827. X%I cbg White
  1828. X1 1 1 SetCBg
  1829. X%I p
  1830. X0 SetP
  1831. X%I t
  1832. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1833. X%I
  1834. X89 538 496 719 Line
  1835. XEnd
  1836. X
  1837. XBegin %I Line
  1838. X%I b 65535
  1839. X1 0 1 [] 0 SetB
  1840. X%I cfg Black
  1841. X0 0 0 SetCFg
  1842. X%I cbg White
  1843. X1 1 1 SetCBg
  1844. X%I p
  1845. X0 SetP
  1846. X%I t
  1847. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1848. X%I
  1849. X90 534 494 667 Line
  1850. XEnd
  1851. X
  1852. XBegin %I Line
  1853. X%I b 65535
  1854. X1 0 1 [] 0 SetB
  1855. X%I cfg Black
  1856. X0 0 0 SetCFg
  1857. X%I cbg White
  1858. X1 1 1 SetCBg
  1859. X%I p
  1860. X0 SetP
  1861. X%I t
  1862. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1863. X%I
  1864. X91 530 496 598 Line
  1865. XEnd
  1866. X
  1867. XBegin %I Line
  1868. X%I b 65535
  1869. X1 0 1 [] 0 SetB
  1870. X%I cfg Black
  1871. X0 0 0 SetCFg
  1872. X%I cbg White
  1873. X1 1 1 SetCBg
  1874. X%I p
  1875. X0 SetP
  1876. X%I t
  1877. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  1878. X%I
  1879. X90 526 497 534 Line
  1880. XEnd
  1881. X
  1882. XBegin %I Text
  1883. X%I cfg Black
  1884. X0 0 0 SetCFg
  1885. X%I f *-courier-medium-r-*-80-*
  1886. X/Courier 8 SetF
  1887. X%I t
  1888. X[ 0.959978 0 0 0.959978 685.366 526.743 ] concat
  1889. X%I
  1890. X[
  1891. X(Start)
  1892. X] Text
  1893. XEnd
  1894. X
  1895. XBegin %I Text
  1896. X%I cfg Black
  1897. X0 0 0 SetCFg
  1898. X%I f *-courier-medium-r-*-80-*
  1899. X/Courier 8 SetF
  1900. X%I t
  1901. X[ 0.959978 0 0 0.959978 700.726 799.377 ] concat
  1902. X%I
  1903. X[
  1904. X(Text)
  1905. X(Left)
  1906. X(Paren)
  1907. X] Text
  1908. XEnd
  1909. X
  1910. XBegin %I Text
  1911. X%I cfg Black
  1912. X0 0 0 SetCFg
  1913. X%I f *-courier-medium-r-*-80-*
  1914. X/Courier 8 SetF
  1915. X%I t
  1916. X[ 0.959978 0 0 0.959978 771.764 799.377 ] concat
  1917. X%I
  1918. X[
  1919. X(Text)
  1920. X(Right)
  1921. X(Paren)
  1922. X] Text
  1923. XEnd
  1924. X
  1925. XBegin %I Text
  1926. X%I cfg Black
  1927. X0 0 0 SetCFg
  1928. X%I f *-courier-medium-r-*-80-*
  1929. X/Courier 8 SetF
  1930. X%I t
  1931. X[ 0.959978 0 0 0.959978 843.763 798.417 ] concat
  1932. X%I
  1933. X[
  1934. X(Text)
  1935. X(Back-)
  1936. X(Slash)
  1937. X] Text
  1938. XEnd
  1939. X
  1940. XBegin %I Text
  1941. X%I cfg Black
  1942. X0 0 0 SetCFg
  1943. X%I f *-courier-medium-r-*-80-*
  1944. X/Courier 8 SetF
  1945. X%I t
  1946. X[ 0.959978 0 0 0.959978 911.921 792.657 ] concat
  1947. X%I
  1948. X[
  1949. X(Text)
  1950. X(Newline)
  1951. X] Text
  1952. XEnd
  1953. X
  1954. XBegin %I Text
  1955. X%I cfg Black
  1956. X0 0 0 SetCFg
  1957. X%I f *-courier-medium-r-*-80-*
  1958. X/Courier 8 SetF
  1959. X%I t
  1960. X[ 0.959978 0 0 0.959978 988.719 800.337 ] concat
  1961. X%I
  1962. X[
  1963. X(Text)
  1964. X(Form-)
  1965. X(Feed)
  1966. X] Text
  1967. XEnd
  1968. X
  1969. XBegin %I Text
  1970. X%I cfg Black
  1971. X0 0 0 SetCFg
  1972. X%I f *-courier-medium-r-*-80-*
  1973. X/Courier 8 SetF
  1974. X%I t
  1975. X[ 0.959978 0 0 0.959978 1060.72 783.057 ] concat
  1976. X%I
  1977. X[
  1978. X(Null)
  1979. X] Text
  1980. XEnd
  1981. X
  1982. XBegin %I Text
  1983. X%I cfg Black
  1984. X0 0 0 SetCFg
  1985. X%I f *-courier-medium-r-*-80-*
  1986. X/Courier 8 SetF
  1987. X%I t
  1988. X[ 0.959978 0 0 0.959978 1130.8 781.137 ] concat
  1989. X%I
  1990. X[
  1991. X(Text)
  1992. X] Text
  1993. XEnd
  1994. X
  1995. XBegin %I Text
  1996. X%I cfg Black
  1997. X0 0 0 SetCFg
  1998. X%I f *-courier-medium-r-*-80-*
  1999. X/Courier 8 SetF
  2000. X%I t
  2001. X[ 0.959978 0 0 0.959978 1181.67 703.379 ] concat
  2002. X%I
  2003. X[
  2004. X(Tab)
  2005. X] Text
  2006. XEnd
  2007. X
  2008. XBegin %I Text
  2009. X%I cfg Black
  2010. X0 0 0 SetCFg
  2011. X%I f *-courier-medium-r-*-80-*
  2012. X/Courier 8 SetF
  2013. X%I t
  2014. X[ 0.959978 0 0 0.959978 1182.63 640.021 ] concat
  2015. X%I
  2016. X[
  2017. X(Shift)
  2018. X(Out)
  2019. X] Text
  2020. XEnd
  2021. X
  2022. XBegin %I Text
  2023. X%I cfg Black
  2024. X0 0 0 SetCFg
  2025. X%I f *-courier-medium-r-*-80-*
  2026. X/Courier 8 SetF
  2027. X%I t
  2028. X[ 0.959978 0 0 0.959978 1183.59 580.502 ] concat
  2029. X%I
  2030. X[
  2031. X(Shift)
  2032. X(In)
  2033. X] Text
  2034. XEnd
  2035. X
  2036. XBegin %I Text
  2037. X%I cfg Black
  2038. X0 0 0 SetCFg
  2039. X%I f *-courier-medium-r-*-80-*
  2040. X/Courier 8 SetF
  2041. X%I t
  2042. X[ 0.959978 0 0 0.959978 714.166 704.339 ] concat
  2043. X%I
  2044. X[
  2045. X(\\\()
  2046. X] Text
  2047. XEnd
  2048. X
  2049. XBegin %I Text
  2050. X%I cfg Black
  2051. X0 0 0 SetCFg
  2052. X%I f *-courier-medium-r-*-80-*
  2053. X/Courier 8 SetF
  2054. X%I t
  2055. X[ 0.959978 0 0 0.959978 766.005 706.259 ] concat
  2056. X%I
  2057. X[
  2058. X(\\\))
  2059. X] Text
  2060. XEnd
  2061. X
  2062. XBegin %I Text
  2063. X%I cfg Black
  2064. X0 0 0 SetCFg
  2065. X%I f *-courier-medium-r-*-80-*
  2066. X/Courier 8 SetF
  2067. X%I t
  2068. X[ 0.959978 0 0 0.959978 817.843 707.219 ] concat
  2069. X%I
  2070. X[
  2071. X(\\\\)
  2072. X] Text
  2073. XEnd
  2074. X
  2075. XBegin %I Text
  2076. X%I cfg Black
  2077. X0 0 0 SetCFg
  2078. X%I f *-courier-medium-r-*-80-*
  2079. X/Courier 8 SetF
  2080. X%I t
  2081. X[ 0.959978 0 0 0.959978 874.482 705.299 ] concat
  2082. X%I
  2083. X[
  2084. X(\\n)
  2085. X] Text
  2086. XEnd
  2087. X
  2088. XBegin %I Text
  2089. X%I cfg Black
  2090. X0 0 0 SetCFg
  2091. X%I f *-courier-medium-r-*-80-*
  2092. X/Courier 8 SetF
  2093. X%I t
  2094. X[ 0.959978 0 0 0.959978 911.921 697.619 ] concat
  2095. X%I
  2096. X[
  2097. X(\\f)
  2098. X] Text
  2099. XEnd
  2100. X
  2101. XBegin %I Text
  2102. X%I cfg Black
  2103. X0 0 0 SetCFg
  2104. X%I f *-courier-medium-r-*-80-*
  2105. X/Courier 8 SetF
  2106. X%I t
  2107. X[ 0.959978 0 0 0.959978 961.84 699.539 ] concat
  2108. X%I
  2109. X[
  2110. X(\\0)
  2111. X] Text
  2112. XEnd
  2113. X
  2114. XBegin %I Text
  2115. X%I cfg Black
  2116. X0 0 0 SetCFg
  2117. X%I f *-courier-medium-r-*-80-*
  2118. X/Courier 8 SetF
  2119. X%I t
  2120. X[ 0.959978 0 0 0.959978 1012.72 709.139 ] concat
  2121. X%I
  2122. X[
  2123. X(not\(\\f.\\n,^[,)
  2124. X(    \\\(,\\\),\\\\,)
  2125. X(    \\t,\\016,\\017\))
  2126. X] Text
  2127. XEnd
  2128. X
  2129. XBegin %I Text
  2130. X%I cfg Black
  2131. X0 0 0 SetCFg
  2132. X%I f *-courier-medium-r-*-80-*
  2133. X/Courier 8 SetF
  2134. X%I t
  2135. X[ 0.959978 0 0 0.959978 1079.92 668.82 ] concat
  2136. X%I
  2137. X[
  2138. X(\\t)
  2139. X] Text
  2140. XEnd
  2141. X
  2142. XBegin %I Text
  2143. X%I cfg Black
  2144. X0 0 0 SetCFg
  2145. X%I f *-courier-medium-r-*-80-*
  2146. X/Courier 8 SetF
  2147. X%I t
  2148. X[ 0.959978 0 0 0.959978 1078.96 624.661 ] concat
  2149. X%I
  2150. X[
  2151. X(\\016)
  2152. X] Text
  2153. XEnd
  2154. X
  2155. XBegin %I Text
  2156. X%I cfg Black
  2157. X0 0 0 SetCFg
  2158. X%I f *-courier-medium-r-*-80-*
  2159. X/Courier 8 SetF
  2160. X%I t
  2161. X[ 0.959978 0 0 0.959978 1079.92 569.942 ] concat
  2162. X%I
  2163. X[
  2164. X(\\017)
  2165. X] Text
  2166. XEnd
  2167. X
  2168. XBegin %I Text
  2169. X%I cfg Black
  2170. X0 0 0 SetCFg
  2171. X%I f *-courier-medium-r-*-80-*
  2172. X/Courier 8 SetF
  2173. X%I t
  2174. X[ 0.959978 0 0 0.959978 734.325 784.017 ] concat
  2175. X%I
  2176. X[
  2177. X(TLP)
  2178. X] Text
  2179. XEnd
  2180. X
  2181. XBegin %I Text
  2182. X%I cfg Black
  2183. X0 0 0 SetCFg
  2184. X%I f *-courier-medium-r-*-80-*
  2185. X/Courier 8 SetF
  2186. X%I t
  2187. X[ 0.959978 0 0 0.959978 807.284 784.017 ] concat
  2188. X%I
  2189. X[
  2190. X(TRP)
  2191. X] Text
  2192. XEnd
  2193. X
  2194. XBegin %I Text
  2195. X%I cfg Black
  2196. X0 0 0 SetCFg
  2197. X%I f *-courier-medium-r-*-80-*
  2198. X/Courier 8 SetF
  2199. X%I t
  2200. X[ 0.959978 0 0 0.959978 879.282 784.017 ] concat
  2201. X%I
  2202. X[
  2203. X(TBS)
  2204. X] Text
  2205. XEnd
  2206. X
  2207. XBegin %I Text
  2208. X%I cfg Black
  2209. X0 0 0 SetCFg
  2210. X%I f *-courier-medium-r-*-80-*
  2211. X/Courier 8 SetF
  2212. X%I t
  2213. X[ 0.959978 0 0 0.959978 953.2 784.017 ] concat
  2214. X%I
  2215. X[
  2216. X(TNL)
  2217. X] Text
  2218. XEnd
  2219. X
  2220. XBegin %I Text
  2221. X%I cfg Black
  2222. X0 0 0 SetCFg
  2223. X%I f *-courier-medium-r-*-80-*
  2224. X/Courier 8 SetF
  2225. X%I t
  2226. X[ 0.959978 0 0 0.959978 1026.16 784.017 ] concat
  2227. X%I
  2228. X[
  2229. X(TFF)
  2230. X] Text
  2231. XEnd
  2232. X
  2233. XBegin %I Text
  2234. X%I cfg Black
  2235. X0 0 0 SetCFg
  2236. X%I f *-courier-medium-r-*-80-*
  2237. X/Courier 8 SetF
  2238. X%I t
  2239. X[ 0.959978 0 0 0.959978 1088.56 783.057 ] concat
  2240. X%I
  2241. X[
  2242. X(NUL)
  2243. X] Text
  2244. XEnd
  2245. X
  2246. XBegin %I Text
  2247. X%I cfg Black
  2248. X0 0 0 SetCFg
  2249. X%I f *-courier-medium-r-*-80-*
  2250. X/Courier 8 SetF
  2251. X%I t
  2252. X[ 0.959978 0 0 0.959978 1162.48 781.137 ] concat
  2253. X%I
  2254. X[
  2255. X(TXT)
  2256. X] Text
  2257. XEnd
  2258. X
  2259. XBegin %I Text
  2260. X%I cfg Black
  2261. X0 0 0 SetCFg
  2262. X%I f *-courier-medium-r-*-80-*
  2263. X/Courier 8 SetF
  2264. X%I t
  2265. X[ 0.959978 0 0 0.959978 1181.67 688.979 ] concat
  2266. X%I
  2267. X[
  2268. X(TTB)
  2269. X] Text
  2270. XEnd
  2271. X
  2272. XBegin %I Text
  2273. X%I cfg Black
  2274. X0 0 0 SetCFg
  2275. X%I f *-courier-medium-r-*-80-*
  2276. X/Courier 8 SetF
  2277. X%I t
  2278. X[ 0.959978 0 0 0.959978 1184.55 615.061 ] concat
  2279. X%I
  2280. X[
  2281. X(TSO)
  2282. X] Text
  2283. XEnd
  2284. X
  2285. XBegin %I Text
  2286. X%I cfg Black
  2287. X0 0 0 SetCFg
  2288. X%I f *-courier-medium-r-*-80-*
  2289. X/Courier 8 SetF
  2290. X%I t
  2291. X[ 0.959978 0 0 0.959978 1184.55 553.623 ] concat
  2292. X%I
  2293. X[
  2294. X(TSI)
  2295. X] Text
  2296. XEnd
  2297. X
  2298. XBegin %I BSpl
  2299. X%I b 65535
  2300. X1 0 1 [] 0 SetB
  2301. X%I cfg Black
  2302. X0 0 0 SetCFg
  2303. X%I cbg White
  2304. X1 1 1 SetCBg
  2305. X%I p
  2306. X0 SetP
  2307. X%I t
  2308. X[ 0.959978 0 0 0.959978 653.687 43.8745 ] concat
  2309. X%I 6
  2310. X549 743
  2311. X565 752
  2312. X583 743
  2313. X583 727
  2314. X567 719
  2315. X549 728
  2316. X6 BSpl
  2317. XEnd
  2318. X
  2319. XBegin %I Text
  2320. X%I cfg Black
  2321. X0 0 0 SetCFg
  2322. X%I f *-courier-medium-r-*-80-*
  2323. X/Courier 8 SetF
  2324. X%I t
  2325. X[ 0.959978 0 0 0.959978 1169.2 734.098 ] concat
  2326. X%I
  2327. X[
  2328. X(not\(\\f.\\n,^[,)
  2329. X(    \\\(,\\\),\\\\,)
  2330. X(    \\t,\\016,\\017\))
  2331. X] Text
  2332. XEnd
  2333. X
  2334. XBegin %I Elli
  2335. X%I b 65535
  2336. X1 0 1 [] 0 SetB
  2337. X%I cfg Black
  2338. X0 0 0 SetCFg
  2339. X%I cbg White
  2340. X1 1 1 SetCBg
  2341. X%I p
  2342. X0 SetP
  2343. X%I t
  2344. X[ 0.959978 0 0 0.959978 893.682 259.869 ] concat
  2345. X%I
  2346. X72 188 24 24 Elli
  2347. XEnd
  2348. X
  2349. XBegin %I Elli
  2350. X%I b 65535
  2351. X1 0 0 [] 0 SetB
  2352. X%I cfg Black
  2353. X0 0 0 SetCFg
  2354. X%I cbg White
  2355. X1 1 1 SetCBg
  2356. X%I p
  2357. X0 SetP
  2358. X%I t
  2359. X[ 0.959978 0 0 0.959978 987.759 265.629 ] concat
  2360. X%I
  2361. X72 188 24 24 Elli
  2362. XEnd
  2363. X
  2364. XBegin %I Line
  2365. X%I b 65535
  2366. X1 0 1 [] 0 SetB
  2367. X%I cfg Black
  2368. X0 0 0 SetCFg
  2369. X%I cbg White
  2370. X1 1 1 SetCBg
  2371. X%I p
  2372. X0 SetP
  2373. X%I t
  2374. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2375. X%I
  2376. X84 507 253 356 Line
  2377. XEnd
  2378. X
  2379. XBegin %I Line
  2380. X%I b 65535
  2381. X1 0 1 [] 0 SetB
  2382. X%I cfg Black
  2383. X0 0 0 SetCFg
  2384. X%I cbg White
  2385. X1 1 1 SetCBg
  2386. X%I p
  2387. X0 SetP
  2388. X%I t
  2389. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2390. X%I
  2391. X253 321 200 262 Line
  2392. XEnd
  2393. X
  2394. XBegin %I Line
  2395. X%I b 65535
  2396. X1 0 1 [] 0 SetB
  2397. X%I cfg Black
  2398. X0 0 0 SetCFg
  2399. X%I cbg White
  2400. X1 1 1 SetCBg
  2401. X%I p
  2402. X0 SetP
  2403. X%I t
  2404. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2405. X%I
  2406. X280 316 324 218 Line
  2407. XEnd
  2408. X
  2409. XBegin %I Line
  2410. X%I b 65535
  2411. X1 0 1 [] 0 SetB
  2412. X%I cfg Black
  2413. X0 0 0 SetCFg
  2414. X%I cbg White
  2415. X1 1 1 SetCBg
  2416. X%I p
  2417. X0 SetP
  2418. X%I t
  2419. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2420. X%I
  2421. X284 359 306 388 Line
  2422. XEnd
  2423. X
  2424. XBegin %I Line
  2425. X%I b 65535
  2426. X1 0 1 [] 0 SetB
  2427. X%I cfg Black
  2428. X0 0 0 SetCFg
  2429. X%I cbg White
  2430. X1 1 1 SetCBg
  2431. X%I p
  2432. X0 SetP
  2433. X%I t
  2434. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2435. X%I
  2436. X295 350 508 413 Line
  2437. XEnd
  2438. X
  2439. XBegin %I Line
  2440. X%I b 65535
  2441. X1 0 1 [] 0 SetB
  2442. X%I cfg Black
  2443. X0 0 0 SetCFg
  2444. X%I cbg White
  2445. X1 1 1 SetCBg
  2446. X%I p
  2447. X0 SetP
  2448. X%I t
  2449. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2450. X%I
  2451. X296 342 495 369 Line
  2452. XEnd
  2453. X
  2454. XBegin %I Line
  2455. X%I b 65535
  2456. X1 0 1 [] 0 SetB
  2457. X%I cfg Black
  2458. X0 0 0 SetCFg
  2459. X%I cbg White
  2460. X1 1 1 SetCBg
  2461. X%I p
  2462. X0 SetP
  2463. X%I t
  2464. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2465. X%I
  2466. X295 336 500 311 Line
  2467. XEnd
  2468. X
  2469. XBegin %I Line
  2470. X%I b 65535
  2471. X1 0 1 [] 0 SetB
  2472. X%I cfg Black
  2473. X0 0 0 SetCFg
  2474. X%I cbg White
  2475. X1 1 1 SetCBg
  2476. X%I p
  2477. X0 SetP
  2478. X%I t
  2479. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2480. X%I
  2481. X295 330 502 251 Line
  2482. XEnd
  2483. X
  2484. XBegin %I Line
  2485. X%I b 65535
  2486. X1 0 1 [] 0 SetB
  2487. X%I cfg Black
  2488. X0 0 0 SetCFg
  2489. X%I cbg White
  2490. X1 1 1 SetCBg
  2491. X%I p
  2492. X0 SetP
  2493. X%I t
  2494. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2495. X%I
  2496. X290 323 503 193 Line
  2497. XEnd
  2498. X
  2499. XBegin %I Line
  2500. X%I b 65535
  2501. X1 0 1 [] 0 SetB
  2502. X%I cfg Black
  2503. X0 0 0 SetCFg
  2504. X%I cbg White
  2505. X1 1 1 SetCBg
  2506. X%I p
  2507. X0 SetP
  2508. X%I t
  2509. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2510. X%I
  2511. X334 171 337 117 Line
  2512. XEnd
  2513. X
  2514. XBegin %I Line
  2515. X%I b 65535
  2516. X1 0 1 [] 0 SetB
  2517. X%I cfg Black
  2518. X0 0 0 SetCFg
  2519. X%I cbg White
  2520. X1 1 1 SetCBg
  2521. X%I p
  2522. X0 SetP
  2523. X%I t
  2524. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2525. X%I
  2526. X357 185 496 110 Line
  2527. XEnd
  2528. X
  2529. XBegin %I Line
  2530. X%I b 65535
  2531. X1 0 1 [] 0 SetB
  2532. X%I cfg Black
  2533. X0 0 0 SetCFg
  2534. X%I cbg White
  2535. X1 1 1 SetCBg
  2536. X%I p
  2537. X0 SetP
  2538. X%I t
  2539. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2540. X%I
  2541. X352 178 438 111 Line
  2542. XEnd
  2543. X
  2544. XBegin %I Line
  2545. X%I b 65535
  2546. X1 0 1 [] 0 SetB
  2547. X%I cfg Black
  2548. X0 0 0 SetCFg
  2549. X%I cbg White
  2550. X1 1 1 SetCBg
  2551. X%I p
  2552. X0 SetP
  2553. X%I t
  2554. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2555. X%I
  2556. X345 174 385 112 Line
  2557. XEnd
  2558. X
  2559. XBegin %I Line
  2560. X%I b 65535
  2561. X1 0 1 [] 0 SetB
  2562. X%I cfg Black
  2563. X0 0 0 SetCFg
  2564. X%I cbg White
  2565. X1 1 1 SetCBg
  2566. X%I p
  2567. X0 SetP
  2568. X%I t
  2569. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2570. X%I
  2571. X321 176 285 117 Line
  2572. XEnd
  2573. X
  2574. XBegin %I Line
  2575. X%I b 65535
  2576. X1 0 1 [] 0 SetB
  2577. X%I cfg Black
  2578. X0 0 0 SetCFg
  2579. X%I cbg White
  2580. X1 1 1 SetCBg
  2581. X%I p
  2582. X0 SetP
  2583. X%I t
  2584. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2585. X%I
  2586. X311 189 175 114 Line
  2587. XEnd
  2588. X
  2589. XBegin %I Line
  2590. X%I b 65535
  2591. X1 0 1 [] 0 SetB
  2592. X%I cfg Black
  2593. X0 0 0 SetCFg
  2594. X%I cbg White
  2595. X1 1 1 SetCBg
  2596. X%I p
  2597. X0 SetP
  2598. X%I t
  2599. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2600. X%I
  2601. X316 180 232 115 Line
  2602. XEnd
  2603. X
  2604. XBegin %I Line
  2605. X%I b 65535
  2606. X1 0 1 [] 0 SetB
  2607. X%I cfg Black
  2608. X0 0 0 SetCFg
  2609. X%I cbg White
  2610. X1 1 1 SetCBg
  2611. X%I p
  2612. X0 SetP
  2613. X%I t
  2614. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2615. X%I
  2616. X164 260 87 340 Line
  2617. XEnd
  2618. X
  2619. XBegin %I Line
  2620. X%I b 65535
  2621. X1 0 1 [] 0 SetB
  2622. X%I cfg Black
  2623. X0 0 0 SetCFg
  2624. X%I cbg White
  2625. X1 1 1 SetCBg
  2626. X%I p
  2627. X0 SetP
  2628. X%I t
  2629. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2630. X%I
  2631. X158 241 94 245 Line
  2632. XEnd
  2633. X
  2634. XBegin %I Line
  2635. X%I b 65535
  2636. X1 0 1 [] 0 SetB
  2637. X%I cfg Black
  2638. X0 0 0 SetCFg
  2639. X%I cbg White
  2640. X1 1 1 SetCBg
  2641. X%I p
  2642. X0 SetP
  2643. X%I t
  2644. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2645. X%I
  2646. X170 223 92 147 Line
  2647. XEnd
  2648. X
  2649. XBegin %I Line
  2650. X%I b 65535
  2651. X1 0 1 [] 0 SetB
  2652. X%I cfg Black
  2653. X0 0 0 SetCFg
  2654. X%I cbg White
  2655. X1 1 1 SetCBg
  2656. X%I p
  2657. X0 SetP
  2658. X%I t
  2659. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2660. X%I
  2661. X161 232 93 192 Line
  2662. XEnd
  2663. X
  2664. XBegin %I Line
  2665. X%I b 65535
  2666. X1 0 1 [] 0 SetB
  2667. X%I cfg Black
  2668. X0 0 0 SetCFg
  2669. X%I cbg White
  2670. X1 1 1 SetCBg
  2671. X%I p
  2672. X0 SetP
  2673. X%I t
  2674. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2675. X%I
  2676. X161 252 93 301 Line
  2677. XEnd
  2678. X
  2679. XBegin %I Line
  2680. X%I b 65535
  2681. X1 0 1 [] 0 SetB
  2682. X%I cfg Black
  2683. X0 0 0 SetCFg
  2684. X%I cbg White
  2685. X1 1 1 SetCBg
  2686. X%I p
  2687. X0 SetP
  2688. X%I t
  2689. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2690. X%I
  2691. X318 434 319 459 Line
  2692. XEnd
  2693. X
  2694. XBegin %I Line
  2695. X%I b 65535
  2696. X1 0 1 [] 0 SetB
  2697. X%I cfg Black
  2698. X0 0 0 SetCFg
  2699. X%I cbg White
  2700. X1 1 1 SetCBg
  2701. X%I p
  2702. X0 SetP
  2703. X%I t
  2704. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2705. X%I
  2706. X417 440 417 462 Line
  2707. XEnd
  2708. X
  2709. XBegin %I Line
  2710. X%I b 65535
  2711. X1 0 1 [] 0 SetB
  2712. X%I cfg Black
  2713. X0 0 0 SetCFg
  2714. X%I cbg White
  2715. X1 1 1 SetCBg
  2716. X%I p
  2717. X0 SetP
  2718. X%I t
  2719. X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
  2720. SHAR_EOF
  2721. echo "End of  part 9"
  2722. echo "File doc/tscan.idr is continued in part 10"
  2723. echo "10" > @shar_seq_.tmp
  2724. exit 0
  2725.  
  2726.