home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sys / apple2 / 23781 < prev    next >
Encoding:
Internet Message Format  |  1992-11-12  |  15.2 KB

  1. Path: sparky!uunet!elroy.jpl.nasa.gov!nntp-server.caltech.edu!toddpw
  2. From: toddpw@cco.caltech.edu (Todd P. Whitesel)
  3. Newsgroups: comp.sys.apple2
  4. Subject: BINSCII TUTORIAL & SELF-EXTRACTING FILE (Re: EXEC Kermit?)
  5. Date: 12 Nov 1992 10:16:06 GMT
  6. Organization: California Institute of Technology, Pasadena
  7. Lines: 261
  8. Message-ID: <1dtat6INNd0a@gap.caltech.edu>
  9. References: <148@MECHANICAL.watstar.uwaterloo.ca>
  10. NNTP-Posting-Host: sandman.caltech.edu
  11.  
  12. jmarkus@electrical.watstar.uwaterloo.ca writes:
  13.  
  14. >So (finally) here is my question:  Is there a EXEC (text) version of kermit
  15. >which I can FTP, then scroll on my screen and capture in a file, make a few
  16. >adjustments and then exec on my Apple?
  17.  
  18. No, Kermit is too big to do that directly. Your best bet is to get BinSCII
  19. (which is small enough) and use it to get Shrinkit if you don't already have
  20. it. Then get Kermit, and use BinSCII/Shrinkit to un-text and de-compress it.
  21. We can boot-strap an Apple from the bare serial port if necessary, but since
  22. you already have text-capture ability it will be a lot easier in your case.
  23. You can get both Shrinkit and Kermit via FTP to cco.caltech.edu, pub/apple2.
  24.  
  25. Todd Whitesel
  26. toddpw @ cco.caltech.edu
  27. ____________________________________________________________________________
  28.  
  29.     How to use BinSCII, or Text Encoding for Fun and Profit
  30.         by Todd Whitesel    rev.2, 6-Sep-90
  31.  
  32. BinSCII is a program for the Apple II series that encodes and decodes Apple 
  33. ProDOS files to allow convenient and error free transmission over computer 
  34. networks. BinSCII is the functional equivalent to unix' uuencode / uudecode 
  35. utilities and Macintosh Bin Hqx (binhex); that is, it allows any local file to 
  36. be transferred via mail in a format that consists entirely of printable text, 
  37. including the file's local attributes, so that the file may be perfectly 
  38. recreated on the destination system.
  39.  
  40.  
  41.     What a BinSCII File Looks Like
  42.  
  43. The easiest way to identify a BinSCII encoded file is for the person who sends 
  44. it to tell you it's BinSCII. The second easiest is to look for one or more 
  45. blocks of text that resemble the following (minus the one tab indent):
  46.  
  47.     FiLeStArTfIlEsTaRt
  48.     ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789()
  49.     HFILENAME       AsU4AAAACA(4nIAg1(BAfcBFXQRtAADAA0gB
  50.     GVvTlzW6B09JAAAAXQBAH4hWAAAAadBFAcgHAIAAAAAAAAAAhDAAAAwSAAAAAAAA
  51.     GVvTUqJ2BAAPAMAABAAAA8CAAAw4AYAAAAAAAAAAAAgAaJRBAcgHFAAAeolEAAwB
  52.     XQBAH4hWAAAAAAAAAAwAAAAAJAAAAAAAAAAIAAAABAAAAAAAAAAAAgMACAAAAIAA
  53.         [ ... many more lines of similar construction ... ]
  54.     U60b3ZXx6fQLxHknavFB8KEvsqYPEAwJxxHwixYGwGPw9UmP05Zvv19IqxRGlSAI
  55.     (Yi1OKL7CAyfqJFAN)W(Ih7F5JzLrm1Rgx8jG(e2dcOgvc(6mvpw))6mopP6h85D
  56.     erpz7nNjyY2pI8OIbAGCHiPA4kAAiIAwKAI8DACNAIwPAAAAAAAAAAAAAAAAAAAA
  57.     AsIR
  58.  
  59. The main menu of BinSCII 1.0.3 refers to any file containing such a block as 
  60. 'TXT'. The filename prompts use the term 'text file'. In both cases, they 
  61. denote a ProDOS file which is assumed to contain any number of the above 
  62. blocks, optionally interspersed with arbitrary amounts of non-block 
  63. information (text or otherwise).
  64.  
  65.  
  66.     Getting Started with BinSCII, in Three Easy Steps
  67.  
  68. 1.    Download the file BINSCII.EXE. (If you are receiving it as part of 
  69. another file, edit the file so that the first and last lines begin with REM. 
  70. Delete anything before the first REM and anything after the last REM. Save the 
  71. result as 'text only', or print to disk, or whatever; the idea is to get a 
  72. simple ASCII text file with no special formatting information. Step two below 
  73. assumes that you named this file BINSCII.EXE, which is just an arbitrary name 
  74. that I chose. Make sure there isn't already a file named BINSCII in that 
  75. directory -- especially not the text file itself -- because the decoding 
  76. process will fail if there is.)
  77.  
  78. 2.    EXEC the resulting text file from BASIC.SYSTEM (otherwise known as 
  79. AppleSoft BASIC, or the ']' prompt under ProDOS) by typing EXEC BINSCII.EXE 
  80. and watch the nifty lo-res thermometer bar. The decoding process will take a 
  81. few minutes, and when it is finished a SYS file named BINSCII will have been 
  82. created in the current directory. You should see two large numbers when it is 
  83. finished, and they should match exactly. If they don't, something went wrong 
  84. along the way (either in transit or in editing) and the BINSCII file may not 
  85. be reliable, so I'd advise against running it (in other words, don't push your 
  86. luck). You may also see a ?SYNTAX ERROR or two after the numbers; this is just 
  87. AppleSoft burping on extra blank lines at the end of the text file and, while 
  88. it may be disconcerting, it is nothing to worry about.
  89.  
  90. 3.    BinSCII is a SYS file just like AppleWorks or Basic.System, and you can 
  91. run it from the GS/OS Finder, a ProDOS 8 program selector, the basic dash 
  92. command (type -BINSCII from the ']'), or whatever method you prefer. You will 
  93. see BinSCII's main menu; just follow the menus and prompts and you're all set. 
  94. (Well, not quite; see below for some helpful hints about BinSCII 1.0.3.)
  95.  
  96.  
  97.     For the Curious: About the Appended EXEC File
  98.  
  99. This exec file was developed by me in an attempt to get BinSCII to a guy whose 
  100. download environment broke Executioner. (Up until now, I sent out a file 
  101. created by Glen Bredon's Executioner program: when EXEC'd, an Executioner file 
  102. enters a small machine language subroutine and calls it to read the actual 
  103. data from the text file.) Executioner is much faster than this EXEC file, but 
  104. it cannot deal with extra white space that might slip in during transmission 
  105. or editing.
  106.  
  107. The encoding scheme is similar to BinSCII, but is implemented entirely in 
  108. AppleSoft (that's why it's so slow). I made it to be rugged; in fact, it is 
  109. far more forgiving of text file mishaps than Executioner. You will notice the 
  110. difference if you use AppleWorks 2.0 to edit the file, because 2.0 adds spaces 
  111. into the main data section and this file reads right through them. Executioner 
  112. (and BinSCII 1.0.3, by the way) do not.
  113.  
  114. How it works: when you type EXEC BINSCII.EXE, Basic.System (the ProDOS part of 
  115. the BASIC environment) opens up BINSCII.EXE and uses it as 'phantom keyboard' 
  116. input to AppleSoft -- that is, it makes AppleSoft think that you typed in the 
  117. contents of the file, really fast and without any typos. If you edited the 
  118. file according to instructions, the first thing AppleSoft sees will be the REM 
  119. line, which it will ignore. Next comes a NEW, a short AppleSoft program, and a 
  120. RUN. The AppleSoft program does the real work, and uses GET to read the actual 
  121. data from the rest of the file; I'll leave deciphering the program itself as 
  122. an exercise for the reader. Since it uses the same basic process as BinSCII, 
  123. you will gain some insight into how BinSCII works by the time you are 
  124. finished. BinSCII, however, uses a far more sophisticated integrity check, and 
  125. can split files up into more than one text block (and successfully recreate 
  126. the original file from the pieces). BinSCII is also much faster.
  127.  
  128.  
  129.     Important Caveats: BinSCII 1.0.3 and Various Quirks Thereof
  130.  
  131. BinSCII 1.0.3 is fairly easy to operate, but its interface is admittedly 
  132. archaic (rest assured, this will change soon). However, there are a few things 
  133. you should know that could save you some minor headaches:
  134.  
  135. 1.    When BinSCII asks you for a filename, it is a good idea to enter the 
  136. complete name, directories and all. (Example: /DATA/DOWNLOADS/SHRINKIT.BSQ) 
  137. The reason for this is that every time BinSCII asks you for a prefix to store 
  138. files in, it sets the current directory there. (BinSCII does the equivalent of 
  139. a PREFIX command with the directory you specified.) If you then do something 
  140. else with another file, that prefix will still be in effect, and the filenames 
  141. you give BinSCII will have to take that into account.
  142.  
  143. 2.    How the Unconvert option works: BinSCII searches the text file for a 
  144. 'FiLeStArTfIlEsTaRt' line, and then decodes a block (which contains at most a 
  145. 12K piece of the ProDOS file). It repeats this process until it reaches the 
  146. end of the file (or an error occurs). This means that you can take all the 
  147. BinSCII files you have and concatenate them into one big file, and (assuming 
  148. you have the disk space for that file and its decoded counterparts) run the 
  149. file through BinSCII all at once -- BinSCII will put each block where it 
  150. belongs. You can just go away, grab a drink and a donut, and come back when it 
  151. is finished. Be warned, however, that BinSCII 1.0.3 does not account for extra 
  152. white space inside the text blocks; this is usually not a problem but it has 
  153. been known to cause BinSCII to abort processing of a file that is otherwise 
  154. intact. In the middle of a very long file, this can be rather annoying when it 
  155. happens.
  156.  
  157. 3.    When you encode files with BinSCII, it asks if you want to use CR or
  158. LF. All this does is control the newline (return) character that separates
  159. every line of text. All Apple and Mac programs expect CR, but unix programs
  160. expect LF. If you are using text transfer between an Apple (or Mac) and a unix
  161. system, use CR because the transfer program (usually Kermit or X/Y/Z-MODEM)
  162. will take care of things. (If you are using binary transfer to a unix system,
  163. use LF.) In general, one of these options has to work. If you try to list the
  164. file at some point and it prints all on a single line (CR's on an LF based
  165. system), or it prints in a barber pole style pattern (LF's on a CR based
  166. system), then using the other option will probably fix things.
  167.  
  168. 4.    BinSCII files are produced by encoding each 12K (or less) chunk of the 
  169. file and outputting the result to a file in the destination directory whose 
  170. name is formed by adding a .01, .02, .03, ..., to the original filename. These 
  171. names are just to keep everything organized and you can do whatever you want 
  172. to them.
  173.  
  174. Send any comments, questions, flames, etc. to
  175. Todd Whitesel
  176. Internet: toddpw @ tybalt.caltech.edu
  177. BITnet: TPW @ CITDEIMO
  178. America Online: Toddpw
  179.  
  180. This file is the public domain. I place no limits on its distribution.
  181.  
  182. REM DELETE EVERYTHING ABOVE THIS LINE AND EXEC FROM BASIC.SYSTEM
  183. NEW
  184. 0GR:COLOR=10:HLIN0,39AT9:HLIN0,39AT21:VLIN10,20AT39:LOMEM:11834
  185. 1DIMC%(79):HOME:?"CREATING BINSCII,TSYS,A8192,L3633":FORI=1TO64
  186. 2GOSUB9:C%(C)=I:NEXT:T=0:P=256:L=P*P*P:FORX=8192TO11825STEP3
  187. 3GOSUB7:T=T+I:T=T-L*(T>=L):A=INT(I/P/P):POKEX,A:I=I-A*P*P:A=INT(I/P)
  188. 4POKEX+1,A:I=I-A*P:POKEX+2,I:VLIN10,20AT39*(X-8192)/3633:NEXT:GOSUB7
  189. 5GETA$:?CHR$(4)"CREATE BINSCII,TSYS":TEXT:HOME:?I,T
  190. 6?CHR$(4)"BSAVE BINSCII,TSYS,A8192,L3633":END
  191. 7I=0:FORJ=1TO4:GOSUB8:I=I*64+C%(C)-1:NEXT:RETURN
  192. 8GOSUB9:ONC%(C)<1GOTO8:RETURN
  193. 9GETA$:C=ASC(A$)-48:ONC<0GOTO9:RETURN
  194. RUN
  195. QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789[]
  196. ZONu7x6QQRQbDpD0FZN3GRsWJaFTKXNvDZOmFRX2Fmu5JXPRKTCUDRTnDmJ1Fpe4
  197. GXYEJ0KYKpQbDpD0FZN3GRsWJaFTKJQvDZOmFRX2Fmu5JXPRKTCUDRTnDmJ1Fpe4
  198. GXYEJ0KYKpQbDpD0FZN3GRsWJaFTKXNvDZOmFRX2Fmu5JXPRKTCNOQ8fjJEFdE2F
  199. gE2o]5guCorOENQu7y2hoERz]VpPJ9QRZP4pnCBJQ0mRODsK0FKNmcJROYp8OQE]
  200. MtgzjJEYILRgAnRrSAaWiK0u6EluQS]U3nRvWavfAJIbSqXsiLOu3EOueLTupnlu
  201. znAhJO2wSqaQpMvz7hazOANkgQEoSnQTA62WA5TKOQehOUOknj2EA5TKOQehOUOk
  202. nj2RA5TKOQehOUOkniRBOY8iOFQa0Sxzmn2Fgn2z0E2FhE0uiExhWO2wSqaQpMvz
  203. 7hazOANkOU0oOOXpZGNuOR8pPWXvEj0Qins]OITkDG9ujZLFdn2hQO2eSt6MSLEd
  204. A6QQlKDhymphJO1UOEWwA6OWlKDhy51UOEWwA[puTFRbjJAYILRKSEE3OoE[OoQQ
  205. c9RFSLE[OoQQc87FSq3HSXoz0E1OkrTzLAOQOQJkkNTkfw4zOQeh6A2EA52[SLQI
  206. Atozunxrco0uWnfg4Q]J2nE[OoWzOoQQc8G7SMQRZEehOY8ijqJu7y2z0E0u2c2z
  207. mn0u2c0u1nuuNfs0MBDurU8uQEQ1Oduu2c1gOFk9qERq]XnG]qQQnSsUOQdQOG39
  208. mTNu0HOu1nuuJEQaQUQu1noFJ3PsNBKhwdeuQAQQnSsUOQdQOG39mTNu0HPuOQJk
  209. hKmFuLcJRAXwmNOk0QVzuncvFoRBATPiMEWRXaDiOYKgqBDuMdslMLWgNBDuNdCs
  210. woWpw3PnrBW0MVJxpJQuXouuFniDwoGhQOXeiKzuOQJkkNTkpe8zOQehkNOkprQz
  211. OQehkNDkprTzZQehOD8kgQQuHnDaYKQyOU4pOFegXIPse3DuNLWkMBaxSo4QOReg
  212. jJEYOanAOA0Qins]2Zaz0D7OvWSJnnWyOqsQpMlzjJEFfE3xdL0uhoxuQAOQlKDh
  213. y51SSLWwA[puJFRbZY8ijJUFdn2hQO2eSXndAbozfL1hQOX8kM4zqNtYHqQQjJEK
  214. HGN80HkdHqX9nwyJ8UQurEFDiLGzdE3vE42gSqaQpMuzOPOpNA2uSyQJpquzjJEF
  215. gE0uQS]Dhn2vQVWDPndhQNXrOGukjJEYILRgAnEgPoRrSEQQc8q9O]QUZEehQyTz
  216. hLVYOoEvPqaQiJ4uUnqhQO2wSqavpMvzkMuzpe4zOQE]0e0zkrTzLA3JSXozmn1O
  217. OQE]m80zGUpzmn3JR2pz0E3JEdpzmn3JWXnFPUigOT4ojJAYILRKSEE3OoRjPA2r
  218. SJ2tSrQRZO0aOSeoPWXJQnWDO6QQgo[bT42WAnQIALWwA8jbT42EAnQIALWwA8jb
  219. T42RAnQIALWwAnE3AlgJ1nWXAnEzPFRFOOJkhKnFuLxsU42EA6aQpNDkOSejOYJk
  220. OOJkOOXpPWXvQ0mSOnW0OnRBAO1JedCmenWiOUzstL4xSuQuFnohQOXoZOguGA2r
  221. StXZiK[zfo3sYTuNhK9hQOXyqUdIDQwJWjXy0QAhQUQ4ke8z7qDziK[z0E3zhE0v
  222. WzQUhK]JQjaQNAQQOO8kguE9GL2KTLWoA[puTzRmOYJkguE9Ln2KTLWoA[puJFRm
  223. OYJkOOJkOF4sgQEzdE2Fmo0uQS]KmL0uaoXuQS]HmL0uaoVoQS2lSN2WAnQIAto9
  224. kE2FuoluWnfgcqvzpNDkOQeh6EE3AxQH0FluhoxzfL2FuLluWndzfo2FuoluWndh
  225. QO2RAnQIALE3AjXepNTkhKxFuoxhQO2RAnE3AoWXA0nTA63HSN2WAnQIAq3JSN2E
  226. AnQIAq3KSN2RAnQIAXn3Aj4UOS0UODdc8QHA0HquQGpOcJNudXNu7QNu0HHQRMQE
  227. gQmOjL6MKoROnObUOUQuNoxxWoE9WoRPk]QRnzR2gQRgnS0UOEs]dJWUOUOk7QNu
  228. 0G6NUUsQpJWUjLROvWRvEhaQKoWoA8iDREMu5u7vA65UOAXGAJ8NqZRPGhQRUUaI
  229. fXNunjXGAyWjqdhjUUavnZjJQbihW51UOUQu1niXqUCnMLWiedXurU9cOU1iwfau
  230. MdslMBDipXPnMVYkOIKgMLWmw3CnN2XuMdslMLW1eEWhwfKcpBWhMVFsenWmwVYl
  231. wUCnOIKgNV4uDnWzMVexpN0QOYOgZOguOFegpCrgqVFgOT5sr2bhwdXuwV9aMZ[F
  232. DLauJ1OuAUMceoWWeIWlMBDhpZOhOTbUOEidw3OuCX5PVEdFpCrgqVFgOE0[OQQu
  233. FniOENQu7y2hoERz]VpPDyQOnZSJ6qaA0QAhRNXJNAdUpyORjLEF8vFPhN30Q6dC
  234. OG39git9HotrVS]ATHtzdS8hiFQTjNRJQjaQiJ9umvQQQQQQQQQQQQQQQQQQQQQQ
  235. QQQQQQQWOYp8OFegJdsxX0FPLLW2DL4vSpDuJ29vtBPhM2i0OEiRALQbGZu5pVP5
  236. OTKirdsaOYrgqBKxMBaxpN1ZMVbsN3JuMfCxN3Khw246pXDhw252MBP0OUTuXIPc
  237. KT9ZOUMhwUXurU8uCYiXpCXhwdFcwfMsefJuNLWXVYJuMdslMLWoNVFkOIKcOYWn
  238. w0KHX41KABChrO2FC2ihN2uuSZ4uQTv3ATpdHFQFhZ3dHXX9ALRvQnQJAUulQDWu
  239. 5igucEpPvPQUntEvQasQLNWDbLiOOSvgKijJWXdQODXgjJEYUdiuOHafTHluPEoz
  240. QDEFTDQhy8s7lQwPNMQE6LWuLOJygUEhWoEg]O0vvOpJ9qJyqUEYPO17WUEYPMiO
  241. hLXAjSdDAOXgnSdDAOXhhLQNMLoYAUoghLXNNQQTuQJQWNQYQQqQWuQIuQegWAuT
  242. AQVgWLuUjQNgW6uIXQZJWYQY0QCJWzQUXQyJW4JyhELbAAJyNOJyhELKAAJyNAOY
  243. OAp8niR6NOJVqOX8qOX9ii[uQGN80QSdHwT88Q8aRbQROTegENQu7y1D4nodI6X9
  244. LAX8LAJVNOJyKKxYU6QIWivdU5QDjLYYIOXejKWYU4XwoWRkhW9uLEWN]EWLAUpP
  245. P9QKOFegLL9HOTCned9nOJWDjnkPA9QyOFegKUsmqnWhenW3eds0ML1ved90MVF0
  246. MVJiQTnkAlsQ0W4u1niPwfMiwUsaOYWirUixNV1sOYF5rUY4OJWDjnkPKFQrOFeg
  247. Zd8ue3CpqEWmrVOzMUsnMVF0w3P5OJWDjnkPKrQNOFegCd9lrV1sOT5crEWUw3Cx
  248. METQZAljnXwJYoRBATMhwUXuZd90OTMcrV5aOJWDjnkPLFQKOFegKUsmqnWUrVbl
  249. OJWDjnkPLrQrOFegCd9lrV1sOTKhedCprU9ntLWUrVblOJWDjnkPZzQZOFegKdsl
  250. MLWDw2FkMVJiQTnkAlsL0Wau1niGw24zXIPcKT9ZOYMcwICzMLTQZAljnCyJFoRB
  251. AT1cedXurUiiwoWcwdXurd9lrV1sOU9xwUsxMLW3qBKgOIKgMLWmNV1sOU5iwVXi
  252. QTnkAauu1niPwfKsed5iwEWYefPceoTuXIPcKT9ZOTFcMUXuHLQQqERq]LEG]LQ3
  253. AEWxO0nAOONBiWquQ6OYRgDkSgOkSgTkPi]ATHAsIna]jk1SSLs]dB0koWRugQEz
  254. yLxKTLWoA61[A5TKOUOkkB8kaKTuNoxzuExKTLWoA6JVhiruiitTYjQQlKDhy419
  255. AnWwA7TZAB[FyoluVnxbTns]pB8kOYlklKDhy42QAnWwA7s9AnWbA4XyguCUI26W
  256. A26EA26RA8gJ8lpQWFRphWqdY2EsTPTKZUOk5iHJQxNXNGNK0QSdTx6pSrQR7jJz
  257. NAO]3Xlz8QHATHoANTYEJ0JQQQQuQS]Sfn2JQ0vfAqaQiKUFgL2hKgXLpqOzjJEF
  258. gn2FhE1ujJEYYLQQc8jBSMQTnXmJYj2rSe2wSrQOkM4zmMvz8QdhuOXC0QFDPndh
  259. QOXZpMazjNtYYO2qSqaQpMlzjZEFfE1ujJEFjE2sILaEUHQEjXWhWgXNjJWhOOXM
  260. OFegpXCxrUCnOQEsILaW0EJu1nivNBKgwdYzMLWcMoWdqVbsOIKcOUFcwfMsefJ6
  261. pJWDNEvu1nivedCdqBuurU8ue3KcedXuN29xrdCne2scwpjFQEQqSqfbiKohSNXM
  262. OFegSZ4uQAQQlKogiW]vRjQQnSTNENQu7y3TI9R0nEQ3AQdQnqEvU8dF8RyPd]Qa
  263. nNpJ68QW8Geu1noOgOuQoTb]SDWQ8FpP]]RhaKuu7y3OZI8ljJDuMoohfLRz]qQW
  264. ZI8loFQRZI8ldAQQaKiDpc0uQS]Q3o2JWDsI0RjsILaE8WOuQS]OaL2vSA2VSN3G
  265. SN2uSVQuQS]Oon2vUj2JSN3GSN2NSLQQc8LhSwQPOQE]0e0zlQYuZEehOQE]bmNz
  266. kcTz8WEoQGo98L0PuP3bStmbSrRnNQIbSXMhZUCZrTYnCUMPwTCmCUYLrTYEJ0KY
  267. KarOLXhSZT1GZ1WKXsFXCCMBVYsqNVPpMUCdM2ihqdzlwV5ceIYne3K1rfr4tBgv
  268. DZOmFRX2Fmu5AEaRWoQQxvQRKoQQzvQTQQEIDQQQQQJQQTNQQQQQQJQAWoQQQQQQ
  269. QQQQQQQQQQQQQQQIKoQQQQQQQQQQQQQQQQQQQQQEQQQQQQeUODDTQQQWQQQQQQrU
  270. ODDTQQQWQQQQQQJQQQQQQQQQDRTnDmJ1Fpe4GXYEJ0KYKpQbDpD0FZN3GRsWJaFT
  271. KXNvDZOmFRX2Fmu5JXPRKTCUDRTnDmJ1Fpe4GXYEJ0KYQQQQRmqI
  272. REM DELETE ANYTHING AFTER THIS LINE
  273.