From vbrao@cse.Buffalo.EDU Sat May 15 20:44:16 2004 Received: from armstrong.cse.Buffalo.EDU (root@armstrong.cse.Buffalo.EDU [128.205.32.3]) by castor.cse.Buffalo.EDU (8.12.10/8.12.10) with ESMTP id i4G0iFGr007577 for ; Sat, 15 May 2004 20:44:15 -0400 (EDT) Received: from yeager.cse.Buffalo.EDU (root@yeager.cse.Buffalo.EDU [128.205.36.9]) by armstrong.cse.Buffalo.EDU (8.12.10/8.12.10) with ESMTP id i4G0iF9x017380 for ; Sat, 15 May 2004 20:44:15 -0400 (EDT) Received: from yeager.cse.Buffalo.EDU (vbrao@localhost [127.0.0.1]) by yeager.cse.Buffalo.EDU (8.12.10+Sun/8.12.4) with ESMTP id i4G0iFAw022603 for ; Sat, 15 May 2004 20:44:15 -0400 (EDT) Received: (from vbrao@localhost) by yeager.cse.Buffalo.EDU (8.12.10+Sun/8.12.8/Submit) id i4G0iFTB022602; Sat, 15 May 2004 20:44:15 -0400 (EDT) Date: Sat, 15 May 2004 20:44:15 -0400 (EDT) From: Vikranth B Rao To: "William J. Rapaport" Subject: Source files - grammar and lexicon - for brachet demo In-Reply-To: <200404162343.i3GNhH5B009385@castor.cse.Buffalo.EDU> Message-ID: References: <200404162343.i3GNhH5B009385@castor.cse.Buffalo.EDU> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-851401618-1084667599=:22512" Content-ID: X-DCC-Buffalo.EDU-Metrics: castor.cse.Buffalo.EDU 1028; Body=0 Fuz1=0 Fuz2=0 Status: R Content-Length: 77264 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-851401618-1084667599=:22512 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: Dear Dr. Rapaport, I have attached to this email all the source files for the work that I have done. I have made sure that the permissions for all of them are set so that everyone has read, write and execute permissions. The brachet demo can be run by demoing ``nlpdemo.sneps". I tried making a new directory under /projects/rapaport/CVA and storing the files in that directory. However, I did not have permissions to create a new directory, so I decided to email the stuff to you. I hope this is allright. I am extremely sorry for the delay in getting this stuff to you Sir. I had hoped to finish writing up the report and to send you the code and the report together. However, since the end of the semester, I have been unduly engaged in making all the arrangements to change schools and move and so on before I left buffalo, as a result of which I have not been able to complete the report. Therefore, as per our conversation I wanted to make sure I sent you atleast the code before I left. I hope to finish writing the report by the end of the summer at the latest. Lastly, I wanted to thank you very much for all the help and encouragement you have extended me over the past few years Sir. I have greatly enjoyed working with you on the CVA grammar. It was largely a result of the experience I gained during the course of this work that I wanted to continue doing research for the rest of my career. You were also an invaluable source of advice and guidance during my graduate school search. Thank you very much for everything Sir. Sincerely, Vik Please let me know if there are any problems with executing the code. ---559023410-851401618-1084667599=:22512 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="pmla.cl" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: ATTACHMENT; FILENAME="pmla.cl" DQooaW4tcGFja2FnZSBzbmVwc3VsKQ0KDQoNCihsb2FkICIvcHJvamVjdHMv c3RuMi9DVkEvZGVmdW5fbm91bi5jbCIpDQoNCg0KKGRlZmluZS1wcmltYWN0 aW9uIGRlZk4gKG9iamVjdDEpDQogIChkZWZpbmVOb3VuIG9iamVjdDEpKQ== ---559023410-851401618-1084667599=:22512 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="nlpdemo.sneps" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: ATTACHMENT; FILENAME="nlpdemo.sneps" Ozs7IERlbW8gZmlsZSBmb3IgTkxQIGJyYWNoZXQNCjs7OyBQcmVwYXJlZCBi eSBWaWtyYW50aCBCLiBSYW8NCjs7OyBGYWxsIDIwMDMNCg0KKHJlc2V0bmV0 IHQpDQoNCjs7Ow0KOzs7IExvYWQgcmVxdWlzaXRlIGZpbGVzDQo7OzsNCg0K Xl4NCihsb2FkICJwbWxhLmNsIikNCg0KKGxvYWQgIi9wcm9qZWN0cy9yb2Jv dC9ZZ2RyYXNpbC9QcmluY2Vzcy9uZXdhY2hpZXZlIikNCihsb2FkICIvcHJv amVjdHMvcm9ib3QvWWdkcmFzaWwvUHJpbmNlc3MvbmV3YWN0IikNCl5eDQoN CihpbnRleHQgIi9wcm9qZWN0cy9zdG4yL0NWQS9kZW1vcy9yZWxzIikNCihk ZW1vICIvcHJvamVjdHMvc3RuMi9DVkEvZGVtb3MvcGF0aHMiKQ0KKGRlbW8g Ii9wcm9qZWN0cy9zdG4yL0NWQS9kZW1vcy9icmFjaGV0LmJhc2UiKQ0KDQpe Xg0KOzs7KHNuZXBzOjpzbmVwcy1zZXR1cCkNCg0KKGF0bmluICJGYWxsdGVt cGdyYW0ubGlzcCIpDQoobGV4aW4gIktsZXhpY29uLmxpc3AiKQ0KDQo7OzsN Cjs7OyBEZWNsYXJlIHRoZSBwcmltaXRpdmUgYWN0aW9ucw0KOzs7DQoNCihh dHRhY2gtcHJpbWFjdGlvbg0KIGJlbGlldmUgYmVsaWV2ZQ0KICAoPSAoYnVp bGQgbGV4ICJkZWZub3VuIikgZGVmbm91bikgZGVmTikNCg0KXl4NCg0KKGRl c2NyaWJlIA0KICAJKGFzc2VydCB3aGVuZXZlciAoYnVpbGQgYWdlbnQgKkkg YWN0IChidWlsZCBhY3Rpb24gKGJ1aWxkIGxleCAiZGVmaW5pbmdub3VuIikp KQ0KCSAgZG8gKGJ1aWxkIGFjdGlvbiAqZGVmbm91biBvYmplY3QxICJicmFj aGV0IikpKQ0KDQoNCl5eKHBhcnNlKQ0KQSBoYXJ0IHJ1bnMuDQpBIHdoaXRl IGJyYWNoZXQgaXMgbmV4dHRvIHRoZSBoYXJ0Lg0KQSBibGFjayBob3VuZCBy dW5zLg0KVGhlIGhvdW5kIGlzIGJlaGluZCB0aGUgaGFydC4NClRoZSBoYXJ0 IGlzIG5leHR0byBSb3VuZCBUYWJsZS4NCkEga25pZ2h0IGFyaXNlcy4NClRo ZSBrbmlnaHQgcGlja3N1cCB0aGUgYnJhY2hldC4NClRoZSBrbmlnaHQgY2Fy cmllcyB0aGUgYnJhY2hldC4NClNpciBUb3IgZ29lcyB0byBhIHBhdmlsaW9u Lg0KQSBsYWR5IHNheXMgdGhhdCB0aGUga25pZ2h0IHRha2VzIHRoZSBicmFj aGV0Lg0KVGhlIGxhZHkgc2xlZXBzIGluIHRoZSBwYXZpbGlvbi4NClNpciBU b3IgZmluZHMgdGhlIGxhZHkgaW4gdGhlIHBhdmlsaW9uLg0KU2lyIFRvciBm aW5kcyB0aGUgYnJhY2hldCBpbiB0aGUgcGF2aWxpb24uDQpUaGUgYnJhY2hl dCBiYXlzIGF0IFNpciBUb3IuDQpTaXIgVG9yIHNwaWVzIHRoZSBicmFjaGV0 Lg0KU2lyIFRvciB0YWtlcyB0aGUgYnJhY2hldC4NCkEgZHdhcmYgc2F5cyB0 aGF0IGhlIGtub3dzIHRoYXQgU2lyIFRvciBzZWVrcyB0aGUga25pZ2h0Lg0K U2lyIFRvciBnaXZlcyB0aGUgYnJhY2hldCB0byB0aGUgZHdhcmYuDQpUaGUg aGFydCBydW5zIGludG8gS2luZyBBcnRodXIncyBoYWxsLg0KVGhlIGJyYWNo ZXQgYml0ZXMgYSBoYXJ0J3MgYnV0dG9jay4NClRoZSBrbmlnaHQgbW91bnRz IGEgaG9yc2UuDQpUaGUga25pZ2h0IHJpZGVzIHRoZSBob3JzZS4NClNpciBU b3IgbW91bnRzIGEgaG9yc2UuDQpUaGUgbGFkeSBzYXlzIHRoYXQgdGhlIGJy YWNoZXQgYmVsb25ncyB0byBoZXIuDQpUaGUgbGFkeSBzYXlzIHRoYXQgc2hl IHdhbnRzIHRoZSBicmFjaGV0Lg0KTWVybGluIHNheXMgdGhhdCBTaXIgR2F3 YWluIG11c3QgYnJpbmcgdGhlIGhhcnQgdG8gdGhlIGhhbGwuDQpNZXJsaW4g c2F5cyB0aGF0IFNpciBUb3IgbXVzdCBicmluZyB0aGUgYnJhY2hldCB0byB0 aGUgaGFsbC4NCkFuIGVsZGVyIHNheXMgdGhhdCBhIHdoaXRlIGhhcnQgY29t ZXMgdG8gYSBwbGFjZS4NClRoZSBlbGRlciBzYXlzIHRoYXQgYSBob3VuZCBj aGFzZXMgdGhlIGhhcnQuDQpUaGUgZWxkZXIgc2F5cyB0aGF0IGEgd2hpdGUg YnJhY2hldCBpcyBuZXh0dG8gdGhlIGhhcnQu ---559023410-851401618-1084667599=:22512 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="Klexicon.lisp" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: ATTACHMENT; FILENAME="Klexicon.lisp" Ozs7IE1hbnVhbCBMZXhpY29uKw0KOzs7IGF1Z21lbnRlZCBieSBKYW1hbGks S29vbnR6IGFuZCBTZWxpYiBmb3IgQ1MtNzAzDQo7OzsgRmFsbCwgMTk5NA0K Ozs7DQo7OzsgDQo7OzsgQWRqZWN0aXZlcw0KKCJibHVlIiAgICAgICAgICAg ICAgKChjdGd5IC4gYWRqKSkpDQooImdyZWVuIiAgICAgICAgICAgICAoKGN0 Z3kgLiBhZGopKSkNCigib3JhbmdlIiAgICAgICAgICAgICgoY3RneSAuIGFk aikpKQ0KKCJyZWQiICAgICAgICAgICAgICAgKChjdGd5IC4gYWRqKSkpDQoo InZpb2xldCIgICAgICAgICAgICAoKGN0Z3kgLiBhZGopKSkNCigieWVsbG93 IiAgICAgICAgICAgICgoY3RneSAuIGFkaikpKQ0KKCJ5b3VuZyIgICAgICAg ICAgICAgKChjdGd5IC4gYWRqKSkpDQooImNsZXZlciIgICAgICAgICAgICAo KGN0Z3kgLiBhZGopKSkNCigiY2Fybml2b3JvdXMiICAgICAgICgoY3RneSAu IGFkaikpKQ0KKCJzbWFydCIgICAgICAgICAgICAgKChjdGd5IC4gYWRqKSkp DQooInN3ZWV0IiAgICAgICAgICAgICAoKGN0Z3kgLiBhZGopKSkNCigicmlj aCIgICAgICAgICAgICAgICgoY3RneSAuIGFkaikpKQ0KKCJvbGQiICAgICAg ICAgICAgICAgKChjdGd5IC4gYWRqKSkpDQooImZhdCIgICAgICAgICAgICAg ICAoKGN0Z3kgLiBhZGopKSkNCigic3R1cGlkIiAgICAgICAgICAgICgoY3Rn eSAuIGFkaikpKQ0KKCJ3aGl0ZSIgICAgICAgICAgICAgKChjdGd5IC4gYWRq KSkpDQooImdyb3VwIiAgICAgICAgICAgICAoKGN0Z3kgLiBhZGopKSkNCigi YmxhY2siICAgICAgICAgICAgICgoY3RneSAuIGFkaikpKQ0KKCJuZXh0IiAg ICAgICAgICAgICAgKChjdGd5IC4gYWRqKSkpICAgIA0KKCJyb3VuZCIgICAg ICAgICAgICAgKChjdGd5IC4gYWRqKSkpDQoNCjs7OyBBZHZlcmJzDQooInRo ZXJlIiAoKGN0Z3kgLiBhZHYpKHJvb3QgLiAidGhlcmUiKSkpDQoNCjs7OyBE ZXRlcm1pbmVycw0KKCJhIiAgICAgICAgICAgICAgICAgKChjdGd5IC4gYXJ0 KShkZWYgLiBuaWwpKSkNCigiYW4iICAgICAgICAgICAgICAgICgoY3RneSAu IGFydCkoZGVmIC4gbmlsKSkpDQooInRoZSIgICAgICAgICAgICAgICAoKGN0 Z3kgLiBhcnQpKGRlZiAuIHQpKSkNCigiZXZlcnkiICAgICAgICAgICAgICgo Y3RneSAuIHF1YW50KSkpDQoNCjs7OyBOb3Vucw0KDQooIktpbmcgQXJ0aHVy IiAgICAgICgoY3RneSAuIG5wcikobnVtIC4gc2luZykoZ2VuZGVyIC4gbSkN CgkJCQkgKGJhc2ljIC4gdCkoaHVtYW4gLiB0KSkpDQooIlJvdW5kIFRhYmxl IiAgICAgICgoY3RneSAuIG5wcikobnVtIC4gc2luZykoZ2VuZGVyIC4gbSkN CgkJCQkgKGJhc2ljIC4gdCkoaHVtYW4gLiBuaWwpKSkNCigiU2lyIFRvciIg ICAgICAgICAgKChjdGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBt KQ0KCQkJCSAoYmFzaWMgLiB0KShodW1hbiAuIHQpKSkNCigiU2lyIEdhd2Fp biIgICAgICAgKChjdGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBt KQ0KCQkJCSAoYmFzaWMgLiB0KShodW1hbiAuIHQpKSkNCigiTWVybGluIiAg ICAgICAgICAgKChjdGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBt KQ0KCQkJCSAoYmFzaWMgLiB0KShodW1hbiAuIHQpKSkNCg0KDQooImR3YXJm IiAgICAgICAgICAgICgoY3RneSAuIG4pKGh1bWFuIC4gdCkoZ2VuZGVyIG0g ZikobnVtIC4gc2luZykoYmFzaWMgLiB0KSkpDQooImVsZGVyIiAgICAgICAg ICAgICgoY3RneSAuIG4pKGh1bWFuIC4gdCkoZ2VuZGVyIG0gZikobnVtIC4g c2luZykoYmFzaWMgLiB0KSkpDQooImhhbGwiICAgICAgICAgICAgICgoY3Rn eSAuIG4pKSkNCigiYnV0dG9jayIgICAgICAgICAgKChjdGd5IC4gbikpKQ0K KCJrbmlnaHQiICAgICAgICAgICAoKGN0Z3kgLiBuKShodW1hbiAuIHQpKGdl bmRlciAuIG0pKG51bSAuIHNpbmcpKGJhc2ljIC4gdCkpKQ0KKCJsYWR5IiAg ICAgICAgICAgICAoKGN0Z3kgLiBuKShodW1hbiAuIHQpKGdlbmRlciAuIGYp KG51bSAuIHNpbmcpKGJhc2ljIC4gdCkpKQ0KDQooIlJvdW5kIiAgICAgICAg ICAgICgoY3RneSAuIG11bHRpLXN0YXJ0KSAobXVsdGktcmVzdCAuICgiVGFi bGUiKSkpDQogICAgICAgICAgICAgICAgICAgICgoY3RneSAuIGFkaikocm9v dCAuICJyb3VuZCIpKSkNCigic2lyIiAgICAgICAgICAgICAgKChjdGd5IC4g bikoaHVtYW4gLiB0KShnZW5kZXIgLiBtKShudW0gLiBzaW5nKShiYXNpYyAu IHQpKSkNCigiU2lyIiAgICAgICAgICAgICAgKChjdGd5IC4gbXVsdGktc3Rh cnQpIChtdWx0aS1yZXN0IC4gKCJUb3IiKSkpDQoJCSAgICAoKGN0Z3kgLiBt dWx0aS1zdGFydCkgKG11bHRpLXJlc3QgLiAoIkdhd2FpbiIpKSkNCiAgICAg ICAgICAgICAgICAgICAgKChjdGd5IC4gbikocm9vdCAuICJzaXIiKSkpDQoo ImtpbmciICAgICAgICAgICAgICgoY3RneSAuIG4pKGh1bWFuIC4gdCkoZ2Vu ZGVyIC4gZikobnVtIC4gc2luZykoYmFzaWMgLiB0KSkpDQooIktpbmciICAg ICAgICAgICAgICgoY3RneSAuIG11bHRpLXN0YXJ0KSAobXVsdGktcmVzdCAu ICgiQXJ0aHVyIikpKQ0KICAgICAgICAgICAgICAgICAgICAoKGN0Z3kgLiBu KShyb290IC4gImtpbmciKSkpDQooImRvZ3MiICAgICAgICAgICAgICgoY3Rn eSAuIG4pKGh1bWFuIC4gbmlsKShnZW5kZXIgLiBuKShudW0gLiBwbHVyKShi YXNpYyAuIHQpKSkNCigiaG91bmQiICAgICAgICAgICAgKChjdGd5IC4gbiko aHVtYW4gLiBuaWwpKGdlbmRlciBtIGYgbikobnVtIC4gc2luZykoYmFzaWMg LiB0KSkpDQooImhvdW5kcyIgICAgICAgICAgICgoY3RneSAuIG4pKGh1bWFu IC4gbmlsKShnZW5kZXIgbSBmIG4pKG51bSAuIHBsdXIpKGJhc2ljIC4gdCkp KQ0KKCJoYXJ0IiAgICAgICAgICAgICAoKGN0Z3kgLiBuKShodW1hbiAuIG5p bCkoZ2VuZGVyIG0gZiBuKShudW0gLiBzaW5nKShiYXNpYyAuIHQpKSkNCigi aG9yc2UiICAgICAgICAgICAgKChjdGd5IC4gbikoaHVtYW4gLiBuaWwpKGdl bmRlciBtIGYgbikobnVtIC4gc2luZykoYmFzaWMgLiB0KSkpDQooInBhdmls aW9uIiAgICAgICAgICgoY3RneSAuIG4pKGh1bWFuIC4gbmlsKShnZW5kZXIg LiBuKShudW0gLiBzaW5nKShiYXNpYyAuIHQpKSkNCg0KDQooImJyYWNoZXQi ICAgICAgICAgICgoY3RneSAuIG4pKGh1bWFuIC4gbmlsKShnZW5kZXIgbiko bnVtIC4gc2luZykoYmFzaWMgLiB0KSkpDQoNCigiZ2lybCIgICAgICAgICAg ICAgKChjdGd5IC4gbikobnVtIC4gc2luZykoZ2VuZGVyIC4gZikoYmFzaWMg LiB0KShodW1hbiAuIHQpKSkNCigiYm95IiAgICAgICAgICAgICAgKChjdGd5 IC4gbikobnVtIC4gc2luZykoZ2VuZGVyIC4gbSkoYmFzaWMgLiB0KShodW1h biAuIHQpKSkNCigiY2F0IiAgICAgICAgICAgICAgKChjdGd5IC4gbikobnVt IC4gc2luZykoZ2VuZGVyIG0gZiBuKShiYXNpYyAuIHQpKGh1bWFuIC4gbmls KSkpDQooImRvZyIgICAgICAgICAgICAgICgoY3RneSAuIG4pKG51bSAuIHNp bmcpKGdlbmRlciBtIGYgbikoYmFzaWMgLiB0KQ0KCQkgICAgKGh1bWFuIC4g bmlsKSkpDQooIm1hbW1hbCIgICAgICAgICAgICgoY3RneSAuIG4pKG51bSAu IHNpbmcpKGdlbmRlciBtIGYgbikoYmFzaWMgLiBuaWwpDQoJCSAgICAoaHVt YW4gLiBuaWwpKSkNCigibWFueCIgICAgICAgICAgICAgKChjdGd5IC4gbiko bnVtIC4gc2luZykoZ2VuZGVyIG0gZiBuKShiYXNpYyAuIG5pbCkNCgkJICAg IChodW1hbiAuIG5pbCkpKQ0KDQooIkNvbXB1dGVyIFNjaWVuY2UiICgoY3Rn eSAuIG5wcikobnVtIC4gc2luZykoZ2VuZGVyIC4gbikNCgkJCQkgKGJhc2lj IC4gdCkoaHVtYW4gLiBuaWwpKSkNCigiSm9obiIgICAgICAgICAgICAgKChj dGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBtKQ0KCQkJCSAoYmFz aWMgLiB0KShodW1hbiAuIHQpKSkNCigiTWFyeSIgICAgICAgICAgICAgKChj dGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBmKQ0KCQkJCSAoYmFz aWMgLiB0KShodW1hbiAuIHQpKSkNCigiQm9iIiAgICAgICAgICAgICAgKChj dGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBtKQ0KCQkJCSAoYmFz aWMgLiB0KShodW1hbiAuIHQpKSkNCigiQmlsbCIgICAgICAgICAgICAgKChj dGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBtKQ0KCQkJCSAoYmFz aWMgLiB0KShodW1hbiAuIHQpKSkNCigiUm92ZXIiICAgICAgICAgICAgKChj dGd5IC4gbnByKShudW0gLiBzaW5nKShnZW5kZXIgLiBtKQ0KCQkJCSAoYmFz aWMgLiB0KShodW1hbiAuIG5pbCkpKQ0KDQoNCg0KKCJjb21wdXRlciIgICAg ICAgICAoKGN0Z3kgLiBuKShudW0gLiBzaW5nKShnZW5kZXIgLiBuKShiYXNp YyAuIHQpDQoJCQkgICAgICAgKGh1bWFuIC4gbmlsKSkpDQooIkNvbXB1dGVy IiAgICAgICAgICgoY3RneSAuIG11bHRpLXN0YXJ0KSAobXVsdGktcmVzdCAu ICgiU2NpZW5jZSIpKSkNCiAgICAgICAgICAgICAgICAgICAgKChjdGd5IC4g bikocm9vdCAuICJjb21wdXRlciIpKGh1bWFuIC4gbmlsKSkpDQoNCigibWFu IiAgICAgICAgICAgICAgKChjdGd5IC4gbikocGx1ciAuICJtZW4iKShudW0g LiBzaW5nKQ0KCQkJICAgICAgIChodW1hbiAuIHQpKGdlbmRlciAuIG0pDQoJ CQkgICAgICAgKGJhc2ljIC4gdCkpKQ0KKCJtZW4iICAgICAgICAgICAgICAo KGN0Z3kgLiBuKShyb290IC4gIm1hbiIpKG51bSAuIHBsdXIpDQoJCQkgICAg ICAgKGh1bWFuIC4gdCkoZ2VuZGVyIC4gbSkNCgkJCSAgICAgICAoYmFzaWMg LiB0KSkpDQooIndvbWFuIiAgICAgICAgICAgICgoY3RneSAuICBuKShwbHVy IC4gIndvbWVuIikobnVtIC4gc2luZykNCgkJCQkoZ2VuZGVyIC4gZikoYmFz aWMgLiB0KQ0KCQkJCShodW1hbiAuIHQpKSkNCigid29tZW4iICAgICAgICAg ICAgKChjdGd5IC4gbikocm9vdCAuICJ3b21hbiIpKG51bSAuIHBsdXIpDQoJ CQkgICAgICAgKGdlbmRlciAuIGYpKGJhc2ljIC4gdCkNCgkJCSAgICAgICAo aHVtYW4gLiB0KSkpDQooInBlcnNvbiIgICAgICAgICAgICgoY3RneSAuIG4p KHBsdXIgLiAicGVvcGxlIikobnVtIC4gc2luZykNCgkJCSAgICAgICAoaHVt YW4gLiB0KShiYXNpYyAuIG5pbCkpKQ0KKCJwZW9wbGUiICAgICAgICAgICAo KGN0Z3kgLiBuKShyb290IC4gInBlcnNvbiIpKG51bSAuIHBsdXIpDQoJCQkg ICAgICAgKGh1bWFuIC4gdCkoYmFzaWMgLiBuaWwpKSkNCigiYW5pbWFsIiAg ICAgICAgICAgKChjdGd5IC4gbikobnVtIC4gc2luZykoZ2VuZGVyIG0gZiBu KShodW1hbiAuIG5pbCkoYmFzaWMgLiBuaWwpKSkNCg0KKCJwZXQiIAkJICAg ICgoY3RneSAuIG4pKG51bSAuIHNpbmcpKGdlbmRlciBtIGYgbikoYmFzaWMg LiBuaWwpDQoJCSAgICAoaHVtYW4gLiBuaWwpKSkNCg0KKCJwcm9mZXNzb3Ii ICAgICAgICAoKGN0Z3kgLiBuKShodW1hbiAuIHQpKGdlbmRlciBtIGYpKG51 bSAuIHNpbmcpKGJhc2ljIC4gdCkpKQ0KDQo7OzsgUHJvbm91bnMNCg0KKCJo ZSIgKChjdGd5IC4gcHJvbikocm9vdCAuICJoZSIpKG51bSAuIHNpbmcpKGNh c2UgLiBub20pDQoJCSAgICAoZ2VuZGVyIC4gbSkoaHVtYW4gLiB0KSkpDQoo ImhlciIgKChjdGd5IC4gcHJvbikocm9vdCAuICJzaGUiKShudW0gLiBzaW5n KShjYXNlIC4gYWNjKQ0KCQkgICAgIChnZW5kZXIgLiBmKShodW1hbiAuIHQp KSkNCigiaGltIiAoKGN0Z3kgLiBwcm9uKShyb290IC4gImhlIikobnVtIC4g c2luZykoY2FzZSAuIGFjYykNCgkJICAgICAoZ2VuZGVyIC4gbSkoaHVtYW4g LiB0KSkpDQooIkkiICgoY3RneSAuIHByb24pKG51bSAuIHNpbmcpKGNhc2Ug LiBub20pKGdlbmRlciBtIGYpDQoJCSAgIChodW1hbiAuIHQpKSkNCigiaXQi ICgoY3RneSAuIHByb24pKHJvb3QgLiAiaXQiKShudW0gLiBzaW5nKShjYXNl IG5vbSBhY2MpDQoJCSAgICAoZ2VuZGVyIC4gbikoaHVtYW4gLiBuaWwpKSkN CigibWUiICgoY3RneSAuIHByb24pKHJvb3QgLiAiSSIpKG51bSAuIHNpbmcp KGNhc2UgLiBhY2MpDQoJCSAgICAoZ2VuZGVyIG0gZikoaHVtYW4gLiB0KSkp DQooInNoZSIgKChjdGd5IC4gcHJvbikocm9vdCAuICJzaGUiKShudW0gLiBz aW5nKShjYXNlIC4gbm9tKQ0KCQkgICAgIChnZW5kZXIgLiBmKShodW1hbiAu IHQpKSkNCigidGhleSIgKChjdGd5IC4gcHJvbikocm9vdCAuICJ0aGV5Iiko bnVtIC4gcGx1cikoY2FzZSAuIG5vbSkNCgkoZ2VuZGVyIG0gZiBuKSkpDQoo InRoZW0iICgoY3RneSAuIHByb24pKHJvb3QgLiAidGhleSIpKG51bSAuIHBs dXIpKGNhc2UgLiBhY2MpKGdlbmRlciBtIGYgbikpKQ0KKCJ1cyIgKChjdGd5 IC4gcHJvbikocm9vdCAuICJJIikobnVtIC4gcGx1cikoY2FzZSAuIGFjYykN CgkJICAgIChnZW5kZXIgbSBmKShodW1hbiAuIHQpKSkNCigid2UiICgoY3Rn eSAuIHByb24pKHJvb3QgLiAiSSIpKG51bSAuIHBsdXIpKGNhc2UgLiBub20p DQoJCSAgICAoZ2VuZGVyIG0gZikoaHVtYW4gLiB0KSkpDQooInlvdSIgKChj dGd5IC4gcHJvbikobnVtIHNpbmcgcGx1cikoY2FzZSBub20gYWNjKQ0KCQkg ICAgIChnZW5kZXIgbSBmKShodW1hbiAuIHQpKSkNCigibXlzZWxmIiAoKGN0 Z3kgLiBwcm9uKShudW0gLiBzaW5nKShjYXNlIC4gcmVmKShodW1hbiAuIHQp KGdlbmRlciBtIGYpKSkNCigieW91cnNlbGYiICgoY3RneSAuIHByb24pKG51 bSAuIHNpbmcpKGNhc2UgLiByZWYpKGh1bWFuIC4gdCkoZ2VuZGVyIG0gZikp KQ0KKCJ5b3Vyc2VsdmVzIiAoKGN0Z3kgLiBwcm9uKShudW0gLiBwbHVyKShj YXNlIC4gcmVmKShodW1hbiAuIHQpKGdlbmRlciBtIGYpKSkJICANCigiaGlt c2VsZiIgKChjdGd5IC4gcHJvbikobnVtIC4gc2luZykoY2FzZSAuIHJlZiko aHVtYW4gLiB0KShnZW5kZXIgLiBtKSkpDQooImhlcnNlbGYiICgoY3RneSAu IHByb24pKG51bSAuIHNpbmcpKGNhc2UgLiByZWYpKGh1bWFuIC4gdCkoZ2Vu ZGVyIC4gZikpKQ0KDQo7OzsgUHJvcGVyIE5vdW5zDQooIkNhc3NpZSIgKChj dGd5IC4gbnByKSAobnVtIC4gc2luZykgKGdlbmRlciAuIGYpKGh1bWFuIC4g bmlsKSkpDQooIkZyZWQiICgoY3RneSAuIG5wcikobnVtIC4gc2luZykgKGdl bmRlciAuIG0pKGh1bWFuIC4gdCkpKQ0KKCJKb2huIiAoKGN0Z3kgLiBucHIp KG51bSAuIHNpbmcpIChnZW5kZXIgLiBtKShodW1hbiAuIHQpKSkNCigiTHVj eSIgKChjdGd5IC4gbnByKShudW0gLiBzaW5nKSAoZ2VuZGVyIC4gZikoaHVt YW4gLiB0KSkpDQooIk9zY2FyIiAoKGN0Z3kgLiBucHIpKG51bSAuIHNpbmcp IChnZW5kZXIgLiBtKShodW1hbiAuIHQpKSkNCg0KOzs7IFZlcmJzDQooInBp Y2tzdXAiICAgICAgICAgICgoY3RneSAuIHYpKSkNCigiYXJpc2UiICAgICAg ICAgICAgKChjdGd5IC4gdikocGFzdCAuICJhcm9zZSIpKSkNCigiYXJvc2Ui ICAgICAgICAgICAgKChjdGd5IC4gdikocm9vdCAuICJhcmlzZSIpKHRlbnNl IC4gcGFzdCkpKQ0KKCJwaWNrIiAgICAgICAgICAgICAoKGN0Z3kgLiB2KShw YXN0IC4gInBpY2tlZCIpKSkNCigicGljayIgICAgICAgICAgICAgKChjdGd5 IC4gbXVsdGktc3RhcnQpIChtdWx0aS1yZXN0IC4gKCJ1cCIpKSkNCiAgICAg ICAgICAgICAgICAgICAgKChjdGd5IC4gdikocm9vdCAuICJwaWNrIikpKQ0K KCJwaWNrZWQiICAgICAgICAgICAoKGN0Z3kgLiB2KShyb290IC4gInBpY2si KSh0ZW5zZSAuIHBhc3QpKSkNCg0KKCJyaWRlIiAgICAgICAgICAgICAoKGN0 Z3kgLiB2KShwYXN0IC4gInJvZGUiKSkpDQooInJvZGUiICAgICAgICAgICAg ICgoY3RneSAuIHYpKHJvb3QgLiAicmlkZSIpKHRlbnNlIC4gcGFzdCkpKQ0K KCJtb3VudCIgICAgICAgICAgICAoKGN0Z3kgLiB2KShwYXN0IC4gIm1vdW50 ZWQiKSkpDQooIm1vdW50ZWQiICAgICAgICAgICgoY3RneSAuIHYpKHJvb3Qg LiAibW91bnQiKSh0ZW5zZSAuIHBhc3QpKSkNCigiY2FycnkiICAgICAgICAg ICAgKChjdGd5IC4gdikocGFzdCAuICJjYXJyaWVkIikpKQ0KKCJjYXJyaWVk IiAgICAgICAgICAoKGN0Z3kgLiB2KShyb290IC4gImNhcnJ5IikodGVuc2Ug LiBwYXN0KSkpDQooInJ1biIgICAgICAgICAgICAgICgoY3RneSAuIHYpKHBh c3QgLiAicmFuIikpKQ0KKCJyYW4iICAgICAgICAgICAgICAoKGN0Z3kgLiB2 KShyb290IC4gInJ1biIpKHRlbnNlIC4gcGFzdCkpKQ0KKCJ0YWtlIiAgICAg ICAgICAgICAoKGN0Z3kgLiB2KShwYXN0IC4gInRvb2siKSkpDQooInRvb2si ICAgICAgICAgICAgICgoY3RneSAuIHYpKHJvb3QgLiAidGFrZSIpKHRlbnNl IC4gcGFzdCkpKQ0KKCJzYXkiICAgICAgICAgICAgICAoKGN0Z3kgLiB2KShw YXN0IC4gInNhaWQiKSkpDQooInNhaWQiICAgICAgICAgICAgICgoY3RneSAu IHYpKHJvb3QgLiAic2F5IikodGVuc2UgLiBwYXN0KSkpDQooImRlZmluZSIg ICAgICAgICAgICgoY3RneSAuIHYpKSkNCigid2FudCIgICAgICAgICAgICAg KChjdGd5IC4gdikpKQ0KKCJtdXN0IiAgICAgICAgICAgICAoKGN0Z3kgLiBh dikpKQ0KKCJ3aWxsIiAgICAgICAgICAgICAoKGN0Z3kgLiBhdikpKQ0KKCJj aGFzZSIgICAgICAgICAgICAoKGN0Z3kgLiB2KSkpIA0KKCJzZWVrIiAgICAg ICAgICAgICAoKGN0Z3kgLiB2KSkpDQooInNweSIgICAgICAgICAgICAgICgo Y3RneSAuIHYpKSkNCigia25vdyIgICAgICAgICAgICAgKChjdGd5IC4gdikp KQ0KKCJzcGllcyIgICAgICAgICAgICAoKGN0Z3kgLiB2KShyb290IC4gInNw eSIpKHRlbnNlIC4gcHJlc2VudCkpKQ0KKCJnaXZlIiAgICAgICAgICAgICAo KGN0Z3kgLiB2KSkpDQooImJheSIgICAgICAgICAgICAgICgoY3RneSAuIHYp KSkNCigiZmluZCIgICAgICAgICAgICAgKChjdGd5IC4gdikpKQ0KKCJicmlu ZyIgICAgICAgICAgICAoKGN0Z3kgLiB2KSkpDQooImJlbG9uZyIgICAgICAg ICAgICgoY3RneSAuIHYpKSkNCg0KKCJhcmUiICgoY3RneSAuIHYpKHJvb3Qg LiAiYmUiKShudW0gLiBwbHVyKSkpDQooImlzIiAoKGN0Z3kgLiB2KShyb290 IC4gImJlIikobnVtIC4gc2luZykodGVuc2UgLiBwcmVzKSkpDQooImxpdmUi ICgoY3RneSAuIHYpKSkNCigib3duIiAoKGN0Z3kgLiB2KShudW0gLiBzaW5n KSh0ZW5zZSAuIHByZXMpKSkNCigicGV0IiAoKGN0Z3kgLiB2KShudW0gLiBz aW5nKSh0ZW5zZSAuIHByZXMpKSkNCigic2F3IiAoKGN0Z3kgLiB2KShyb290 IC4gInNlZSIpKHRlbnNlIC4gcGFzdCkpKQ0KKCJzZWUiICgoY3RneSAuIHYp KHBhc3QgLiAic2F3IikpKQ0KKCJ3YXMiICgoY3RneSAuIHYpKHJvb3QgLiAi YmUiKShudW0gLiBzaW5nKSh0ZW5zZSAuIHBhc3QpKSkNCigid2VyZSIgKChj dGd5IC4gdikocm9vdCAuICJiZSIpKG51bSAuIHBsdXIpKHRlbnNlIC4gcGFz dCkpKQ0KKCJzbGVlcCIgKChjdGd5IC4gdikocGFzdCAuICJzbGVwdCIpKSkN Cigic2xlcHQiICgoY3RneSAuIHYpKHJvb3QgLiAic2xlZXAiKSh0ZW5zZSAu IHBhc3QpKSkNCg0KKCJiZWxpZXZlIiAgICAgICAgICAoKGN0Z3kgLiB2KShz dGF0aXZlIC4gdCkpKQ0KKCJiaXQiICAgICAgICAgICAgICAoKGN0Z3kgLiB2 KShyb290IC4gImJpdGUiKSh0ZW5zZSAuIHBhc3QpKSkNCigiYml0ZSIgICAg ICAgICAgICAgKChjdGd5IC4gdikobnVtIC4gcGx1cikocGFzdCAuICJiaXQi KSkpDQooImxpa2UiICAgICAgICAgICAgICgoY3RneSAuIHYpKG51bSAuIHBs dXIpKSkNCigic3R1ZHkiICAgICAgICAgICAgKChjdGd5IC4gdikpKQ0KKCJ1 c2UiICAgICAgICAgICAgICAoKGN0Z3kgLiB2KSkpDQooImxvdmUiICAgICAg ICAgICAgICgoY3RneSAuIHYpKSkNCigiZGlzbGlrZSIgICAgICAgICAgKChj dGd5IC4gdikpKQ0KKCJoYXRlIiAgICAgICAgICAgICAoKGN0Z3kgLiB2KSkp DQoNCjs7OyBBdXhpbGlhcnkgVmVyYnMNCigiZGlkIiAoKGN0Z3kgLiBhdXgp KHJvb3QgLiAiZG8iKSh0ZW5zZSAuIHBhc3QpKSkNCigiZG9lcyIgKChjdGd5 IC4gYXV4KShyb290IC4gImRvIikobnVtIC4gc2luZykodGVuc2UgLiBwcmVz KSkpDQooImRvIiAoKGN0Z3kgLiBhdXgpKHJvb3QgLiAiZG8iKShudW0gLiBw bHVyKSh0ZW5zZSAuIHByZXMpKSkNCiANCjs7OyBLbm93bGVkZ2UgQ2F0ZWdv cmllcw0KKCJsaWZlIiAoKGN0Z3kgLiBrbikpKQ0KKCJzdG9yeSIgKChjdGd5 IC4ga24pKSkNCg0KOzs7IEludGVycm9nYXRpdmVzDQooIndobyIgKChjdGd5 IC4gd2gpKGh1bWFuIC4gdCkpKQ0KKCJ3aGF0IiAoKGN0Z3kgLiB3aCkoaHVt YW4gLiBuaWwpKSkNCg0KOzs7UHJlcG9zaXRpb25zDQooImludG8iICAgICAg ICAgICAgICgoY3RneSAuIHByZXApKSkNCigidG8iICAgICAgICAgICAgICAg KChjdGd5IC4gcHJlcCkpKQ0KKCJvZiIgICAgICAgICAgICAgICAoKGN0Z3kg LiBwcmVwKSkpDQooImJlaGluZCIgICAgICAgICAgICgoY3RneSAuIHByZXAp KSkNCigiaW4iICAgICAgICAgICAgICAgKChjdGd5IC4gcHJlcCkpKSANCigi YXQiICAgICAgICAgICAgICAgKChjdGd5IC4gcHJlcCkpKQ0KKCJuZXh0dG8i ICAgICAgICAgICAoKGN0Z3kgLiBwcmVwKSkpDQoNCjs7O0Nvbmp1Z2F0ZXMN CigidGhhdCIgICAgICAgICAgICAgKChjdGd5IC4gY29uaikpKQ0KDQoNCg0K ---559023410-851401618-1084667599=:22512 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="Falltempgram.lisp" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: ATTACHMENT; FILENAME="Falltempgram.lisp" Ozs7OmxkIC9wcm9qZWN0cy9zdG4yL0NWQS9kZWZ1bl9ub3VuLmNsDQoNCihe XiBkZWZ2YXIgKmtuY2F0KiAibGlmZSIpDQoNCiheXiBkZWZ1biBnZXRrbiAo KSAqa25jYXQqKQ0KDQooXl4gZGVmdW4gc2V0a24gKHZhbHVlKQ0KICAgICAg ICAgKHNldGYgKmtuY2F0KiB2YWx1ZSkpDQoNCjs7OyBGaXJzdCwgdGhlIFNO ZVBTIHJlbGF0aW9ucyB1c2VkIGluIHRoZSBHQVROIGFyZSBkZWZpbmVkLg0K KF5eIGRlZmluZSBhZ2VudCBhY3QgYWN0aW9uIG9iamVjdCBwcm9wZXJuYW1l IG1lbWJlciBjbGFzcyBsZXgNCiAgICBzdWJjbGFzcyBzdXBlcmNsYXNzIHN0 aW1lIGV0aW1lIGJlZm9yZSBhZnRlciBza2ZuIHNrYXJnIGV2ZW50IHJlc3Vs dHMNCiAgICBvYmplY3QtMSByZWwgb2JqZWN0LTIgcHJvcGVydHkgaW50byBz cC1yZWwgbG9jYXRpb24gdG8NCiAgICBkaXJlY3Rpb24gcGxhY2UgbW9kZSBw b3NzZXNzb3IgY2xhc3Ntb2QgY2xhc3NoZWFkIHByZWQgYmVnIGVxdWl2IGVu ZCANCiAgICB8YXR8IHx0b3wgd29yZCBrbl9jYXQpDQoNCiheXiBkZWZ2YXIg KlNheW5CZWZvcmVWb3dlbHMqIG5pbA0KICAgICJJZiB0cnVlIGFuZCB0aGUg bmV4dCB3b3JkIHN0YXJ0cyB3aXRoIGEgdm93ZWwsIHByaW50ICduICcgYmVm b3JlIHRoYXQgbmV4dCB3b3JkLiIpDQoNCiheXiBkZWZ2YXIgKk5vQmxhbmsq IG5pbA0KICAgICJJZiB0cnVlLCBTYXlPbmVXb3JkIHNob3VsZG4ndCBwcmlu dCBhIGJsYW5rIGJlZm9yZSBwcmludGluZyB0aGUgd29yZC4iKQ0KDQooXl4g ZGVmY29uc3RhbnQgKnZvd2VscyogJygjXGEgI1xlICNcaSAjXG8gI1x1KQ0K ICAgICJBIGxpc3Qgb2YgdGhlIHZvd2Vscy4iKQ0KDQooXl4gZGVmY29uc3Rh bnQgKm15cHVuY3QtY2hhcnMqIChyZW1vdmUgI1xgICpwdW5jdC1jaGFycyop DQogICAgIkRvbid0IGVsaW1pbmF0ZSB0aGUgYmxhbmsgYmVmb3JlIHRoZSBi YWNrLXF1b3RlLiIpDQoNCjs7OyBUaGUgZm9sbG93aW5nIHRocmVlIGZ1bmN0 aW9ucyBpbXBsZW1lbnQgYSAicGhvbm9sb2dpY2FsIiBjb21wb25lbnQNCjs7 OyB0aGF0IGNhbiBiZSB1c2VkIHRvIG91dHB1dCB3b3JkcyBhbmQgcGhyYXNl cyBmcm9tIGFyY3Mgb2YgdGhlIEdBVE4uDQo7OzsgSW4gdGhpcyB3YXksIHRo ZSBiZWdpbm5pbmcgb2YgdGhlIHNlbnRlbmNlIGNhbiBiZSB1dHRlcmVkIGJl Zm9yZQ0KOzs7IHRoZSByZXN0IG9mIHRoZSBzZW50ZW5jZSBoYXMgYmVlbiBj b21wb3NlZC4NCg0KKF5eIGRlZnZhciAqU1BFQUsqIG5pbA0KICAgICJQb3Nz aWJsZSB2YWx1ZXM6DQogICAgICAgIG5pbDogICAgICAgICAgbm8gc3BlZWNo DQogICAgICAgIFwifGF1ZGlvcGxheVwiOiBydW5uaW5nIG9uIHNhbWUgbWFj aGluZSBhcyBrZXlib2FyZC9tb25pdG9yDQogICAgICAgIFwifGF1cGxheVwi OiAgICBydW5uaW5nIG9uIGEgcmVtb3RlIG1hY2hpbmUiDQogICAgKQ0KDQoo Xl4gbGV0ICgoQlVGRkVSICIiKSkNCiAgICAgKGRlZnVuIHV0dGVyICh3b3Jk cyAma2V5IChmbHVzaCBuaWwpIChub3ByaW50IG5pbCkgKHZvaWNlICJXQU5E QSIpKQ0KICAgICAgICh3aGVuIChlcWwgZmx1c2ggOmJlZm9yZSkNCgkgKGZs dXNoIHZvaWNlKQ0KCSAoZm9ybWF0IHNuZXBzOm91dHVuaXQgIn4mIikpDQog ICAgICAgKHNldGYgQlVGRkVSIA0KCSAoY29uY2F0ZW5hdGUgJ3N0cmluZyBC VUZGRVINCgkJICAgICAgIChyZW1vdmUgI1xgIChyZW1vdmUgI1wnIHdvcmRz KSkpKQ0KICAgICAgICh1bmxlc3Mgbm9wcmludA0KCSAoZm9ybWF0IHNuZXBz Om91dHVuaXQgIn5BIiB3b3JkcykpDQogICAgICAgKHdoZW4gKGVxbCBmbHVz aCA6YWZ0ZXIpDQoJIChmbHVzaCB2b2ljZSkNCgkgKHVubGVzcyBub3ByaW50 DQoJICAgKGZvcm1hdCBzbmVwczpvdXR1bml0ICJ+JSIpKSkpDQogICAgIChk ZWZ1biBmbHVzaCAodm9pY2UpDQogICAgICAgKGRlY2xhcmUgKHNwZWNpYWwg KlNQRUFLKikpDQogICAgICAgKHdoZW4gKlNQRUFLKg0KCSAoZXhjbDpzaGVs bA0KCSAgKGNvbmNhdGVuYXRlICdzdHJpbmcgImVjaG8gXCIiIEJVRkZFUg0K CSAgICAiXCIgfCAvcHJvamVjdHMvc253aXovYmluL3R0c2VTcGVhayAiIHZv aWNlICpTUEVBSyopKSkNCiAgICAgICAoc2V0ZiBCVUZGRVIgIiIpKSkNCg0K Ozs7KF5eIGNvbmQgKCh5LW9yLW4tcCAifiZEbyB5b3Ugd2FudCBzcGVlY2g/ ICIpDQo7OzsJICAoc2V0ZiAqU1BFQUsqDQo7OzsJICAgIChjb25kICgoc3Ry aW5nXD0gKHN5c3RlbTpnZXRlbnYgIkRJU1BMQVkiKSAiOjAuMCIpICJ8YXVk aW9wbGF5IikNCjs7OwkJICAodCAoeS1vci1uLXAgIn4mRXhlY3V0ZX4lYXVz dW4gLWFhICZ+JW9uIHlvdXIgbG9jYWwgbWFjaGluZS5+DQo7OzsgICAgICAg ICAgICAgICAgICAgICAgICAgIFRoZW4gZW50ZXIgYHknLn4lIikNCjs7OwkJ ICAgICAoZXhjbDpzaGVsbCANCjs7OwkJICAgICAgKGNvbmNhdGVuYXRlICdz dHJpbmcNCjs7OwkJCSJzZXRlbnYgQVVESU9TRVJWRVIgIg0KOzs7CQkJKHN1 YnNlcSAoc3lzdGVtOmdldGVudiAiRElTUExBWSIpDQo7OzsJCQkJMA0KOzs7 CQkJCShwb3NpdGlvbiAjXDogKHN5c3RlbTpnZXRlbnYgIkRJU1BMQVkiKSkp DQo7OzsJCQkiOjAiKSkNCjs7OwkJICAgICAifGF1cGxheSIpKSkNCjs7Owkg ICh1dHRlciAiT0ssIEkgd2lsbCBzcGVhay4iIDpmbHVzaCA6YWZ0ZXIpKQ0K Ozs7ICAgICh0IChzZXRmICpTUEVBSyogbmlsKSkpDQoNCiheXiBjb21waWxl DQogICAgKGRlZnVuIGNvbWJpbmUtc3RyaW5ncyAoc3RyaW5ncykNCiAgICAg IChpZiAobnVsbCBzdHJpbmdzKSAiIg0KCShjb25jYXRlbmF0ZSAnc3RyaW5n IChmaXJzdCBzdHJpbmdzKSAiICINCgkJICAgICAoY29tYmluZS1zdHJpbmdz IChyZXN0IHN0cmluZ3MpKSkpKSkNCg0KKF5eIGRlZnZhciAqU2VudGVuY2VT dGFydCogdA0KICAgICJUcnVlIGlmIHRoZSBuZXh0IHdvcmQgdG8gYmUgc2Fp ZA0KICAgICB3aWxsIGJlIHRoZSBmaXJzdCB3b3JkIG9mIGEgc2VudGVuY2Ui KQ0KDQoNCiheXiBkZWZ1biBTYXlPbmVXb3JkICh3b3JkKQ0KICAgICJQcmlu dHMgdGhlIHNpbmdsZSBXT1JELCB3aGljaCBtdXN0IGJlIGEgc3RyaW5nIG9y IGEgbm9kZS4NCiAgICAgSWYgdGhlIHdvcmQgaXMgJ2EnLCBzZXRzICpTYXlu QmVmb3JlVm93ZWxzKi4NCiAgICAgSWYgKlNheW5CZWZvcmVWb3dlbHMqIGlz IHNldCwgdGhlbiBwcmludHMgJ24gJyBiZWZvcmUgd29yZC9zDQogICAgIGlm IHRoZSBmaXJzdCBsZXR0ZXIgb2Ygd29yZC9zIGlzIGEgdm93ZWwuIg0KICAg IChjaGVjay10eXBlIHdvcmQgKG9yIHN0cmluZyBzbmVwczpub2RlKSkNCiAg ICAod2hlbiAoc25lcHM6bm9kZS1wIHdvcmQpIChzZXRmIHdvcmQgKGZvcm1h dCBuaWwgIn5BIiB3b3JkKSkpDQogICAgKHdoZW4gKlNheW5CZWZvcmVWb3dl bHMqDQogICAgICAgKHdoZW4gKG1lbWJlciAoY2hhciB3b3JkIDApICp2b3dl bHMqIDp0ZXN0ICMnY2hhcj0pIChmb3JtYXQgdCAibiIpKQ0KICAgICAgKHNl dGYgKlNheW5CZWZvcmVWb3dlbHMqIG5pbCkpDQogICAgKHdoZW4gKHN0cmlu Z1w9IHdvcmQgImEiKSAoc2V0ZiAqU2F5bkJlZm9yZVZvd2VscyogdCkpDQog ICAgKGZvcm1hdCB0ICIgfkEiIHdvcmQpKQ0KDQo7OzsoXl4gY29tcGlsZQ0K Ozs7ICAgIChkZWZ1biBzYXkgKHdvcmQvcykNCjs7OyAgICAgICJQcmludHMg dGhlIHNpbmdsZSB3b3JkIG9yIHRoZSBsaXN0IG9mIHdvcmRzLg0KOzs7ICAg ICAgIElmIHRoZSB3b3JkIGlzICdhJywgc2V0cyAqU2F5bkJlZm9yZVZvd2Vs cyouDQo7OzsgICAgICAgSWYgKlNheW5CZWZvcmVWb3dlbHMqIGlzIHNldCwg dGhlbiBwcmludHMgJ24gJyBiZWZvcmUgd29yZC9zDQo7OzsgICAgICAgaWYg dGhlIGZpcnN0IGxldHRlciBvZiB3b3JkL3MgaXMgYSB2b3dlbC4iDQo7Ozsg ICAgICAoY29uZCAoKGxpc3RwIHdvcmQvcykgDQo7OzsJICAgICAjfChzcGVh ayAoYXBwbHkgIydjb25jYXRlbmF0ZSAoY29ucyAnc3RyaW5nIHdvcmQvcykp KXwjDQo7OzsJICAgICAobWFwYyAjJ1NheU9uZVdvcmQgd29yZC9zKSkNCjs7 OwkgICAgKHQgI3woc3BlYWsgd29yZC9zKXwjDQo7OzsJICAgICAgIChTYXlP bmVXb3JkIHdvcmQvcykpKSkpDQoNCiheXiBkZWZ1biBzYXkgKHdvcmQvcykN CiAgICAiUHJpbnRzIHRoZSBzaW5nbGUgd29yZCBvciB0aGUgbGlzdCBvZiB3 b3Jkcy4NCiAgICAgSWYgdGhlIHdvcmQgaXMgJ2EnLCBzZXRzICpTYXluQmVm b3JlVm93ZWxzKi4NCiAgICAgSWYgKlNheW5CZWZvcmVWb3dlbHMqIGlzIHNl dCwgdGhlbiBwcmludHMgJ24gJyBiZWZvcmUgd29yZC9zDQogICAgIGlmIHRo ZSBmaXJzdCBsZXR0ZXIgb2Ygd29yZC9zIGlzIGEgdm93ZWwuIg0KICAgIChp ZiAobGlzdHAgd29yZC9zKSAobWFwYyAjJ1NheU9uZVdvcmQgd29yZC9zKQ0K ICAgICAgKFNheU9uZVdvcmQgd29yZC9zKSkpDQoNCiheXiBjb21waWxlDQog ICAgKGRlZnVuIHBvc3Nlc3NpdmUtZm9ybSAobm91bikNCiAgICAgICJSZXR1 cm5zIHRoZSBwb3NzZXNzaXZlIGZvcm0gb2YgdGhlIG5vdW4gb3IgcHJvbm91 bi4iDQogICAgICAoY29uZCAoKG1lbWJlciBub3VuICcoIkkiICJtZSIpIDp0 ZXN0ICMnc3RyaW5nXD0pICJteSIpDQoJICAgICgoc3RyaW5nXD0gbm91biAi eW91IikgInlvdXIiKQ0KCSAgICAoKG1lbWJlciBub3VuICcoImhlIiAiaGlt IikgOnRlc3QgIydzdHJpbmdcPSkgImhpcyIpDQoJICAgICgobWVtYmVyIG5v dW4gJygic2hlIiAiaGVyIikgOnRlc3QgIydzdHJpbmdcPSkgImhlciIpDQoJ ICAgICgoc3RyaW5nXD0gbm91biAiaXQiKSAiaXRzIikNCgkgICAgKChtZW1i ZXIgbm91biAnKCJ0aGV5IiAidGhlbSIpIDp0ZXN0ICMnc3RyaW5nXD0pICJ0 aGVpciIpDQoJICAgICh0IChjb25jYXRlbmF0ZSAnc3RyaW5nIG5vdW4gIidz IikpKSkpDQoNCiheXiBjb21waWxlDQogICAgKGRlZnVuIHNheW4gKG5vdW4p DQogICAgICAiUHJpbnRzIHRoZSBzaW5nbGUgbm91biBvciBwcm9ub3VuLg0K ICAgICAgIFByaW50cyB0aGUgcG9zc2Vzc2l2ZSBmb3JtIGlmIHRoZSBQT1NT IHJlZ2lzdGVyIGlzIFRydWUuDQogICAgICAgSWYgKlNheW5CZWZvcmVWb3dl bHMqIGlzIHNldCwgdGhlbiBwcmludHMgJ24gJyBiZWZvcmUgdGhlIG5vdW4N CiAgICAgICBpZiBpdHMgZmlyc3QgbGV0dGVyIGlzIGEgdm93ZWwuIg0KICAg ICAgKHdoZW4gKGxpc3RwIG5vdW4pIChzZXRmIG5vdW4gKGZpcnN0IG5vdW4p KSkNCiAgICAgIChpZiAoZ2V0ciBwb3NzKQ0KCSAgKFNheU9uZVdvcmQgKHBv c3Nlc3NpdmUtZm9ybSAoZm9ybWF0IG5pbCAifkEiIG5vdW4pKSkNCgkoU2F5 T25lV29yZA0KCSAoaWYgKHNuZXBzOm5vZGUtcCBub3VuKQ0KCSAgIChvciAo ZXZhbCBgKGdldGYgcm9vdCAsKGZvcm1hdCBuaWwgIn5BIiBub3VuKSkpDQoJ ICAgICAgIChmb3JtYXQgbmlsICJ+QSIgbm91bikpDQoJICAgbm91bikpKSkp DQoNCiheXiBkZWZ2YXIgKmxhc3RhZGRyZXNzZWUqIG5pbA0KICAgICJUaGUg bGFzdCBhZ2VudCBhZGRyZXNzZWQgYnkgQ2Fzc2llLiIpDQoNCiheXiBjb21w aWxlDQogICAgKGRlZnVuIGFkZE5hbWUgKG5vZGUgdXNlZXF1aXZwKQ0KICAg ICAgIkFkZHMgdGhlIGFkZHJlc3NlZSdzIG5hbWUgKHNvIGl0IGNvbWVzIG91 dCBgeW91LCA8bmFtZT4nDQogICAgICAgdGhlIGZpcnN0IHRpbWUgdGhhdCBh Z2VudCBpcyBhZGRyZXNzZWQuDQogICAgICAgQnV0IGRvZXNuJ3QgYWRkIHRo ZSBuYW1lIGlmIGB5b3UnIGlzIHBvc3Nlc3NpdmUuIg0KICAgICAgKHVubGVz cyANCgkgIChhbmQgKmxhc3RhZGRyZXNzZWUqDQoJICAgICAgIChzbmVwczpp c21lbWIubnMNCgkJbm9kZSANCgkJKHNuZXBzOnBhdGhmcm9tICcoa3N0YXIg KGVxdWl2LSAhIGVxdWl2KSkgKmxhc3RhZGRyZXNzZWUqKSkpDQoJKHNldGYg Kmxhc3RhZGRyZXNzZWUqIG5vZGUpDQoJKHVubGVzcyAoZ2V0ciBwb3NzKQ0K CSAgKGxldCAoKG5hbWUNCgkJIChzbmVwczpjaG9vc2UubnMNCgkJICAoaWYg dXNlZXF1aXZwDQoJCSAgICAgICMhKChmaW5kIChwcm9wZXJuYW1lLSAhIG9i amVjdA0KCQkJCQkgICAgKGtzdGFyIChjb21wb3NlIGVxdWl2LSAhIGVxdWl2 KSkpDQoJCQkgICAgICAgfm5vZGUpKQ0KCQkgICAgICAjISgoZmluZCAocHJv cGVybmFtZS0gISBvYmplY3QpIH5ub2RlKSkpKSkpDQoJICAgICh3aGVuIG5h bWUgKHNheSBgKCIsIiAsbmFtZSkpKSkpKSkpDQoNCiheXiBjb21waWxlDQog ICAgKGRlZnVuIGJlc3QtY2xhc3MgKGNsYXNzbm9kZXMpDQogICAgICAiQ2hv b3NlcyB0aGUgbW9zdCBzcGVjaWZpYyBmcm9tIHRoZSBzZXQgb2Ygbm9kZXMg cmVwcmVzZW50aW5nIGNsYXNzZXMuIg0KICAgICAgKGxldCAoKGJlc3RjbGFz cyAoc25lcHM6Y2hvb3NlLm5zIGNsYXNzbm9kZXMpKSkNCgkoc25lcHM6ZG8u bnMgKGNsYXNzbm9kZSAoc25lcHM6b3RoZXJzLm5zIGNsYXNzbm9kZXMpIGJl c3RjbGFzcykNCgkJICAgICAod2hlbiAjISgoZGVkdWNlIHN1YmNsYXNzIH5j bGFzc25vZGUNCgkJCQkgICAgICBzdXBlcmNsYXNzIH5iZXN0Y2xhc3MpKQ0K CQkJICAgKHNldGYgYmVzdGNsYXNzIGNsYXNzbm9kZSkpKSkpKQ0KDQooXl4g Y29tcGlsZQ0KICAgIChkZWZ1biByZW1vdmUtZXF1aXZzIChub2Rlc2V0KQ0K ICAgICAgIlJlbW92ZXMgZnJvbSBOT0RFU0VUIGFueSBub2RlIHRoYXQgaXMg RVFVSVYgdG8gYW5vdGhlciwNCiAgICAgICBzbyBvbmx5IG9uZSBub2RlIGZy b20gYW4gRVFVSVZhbGVuY2Ugc2V0IGlzIHJldGFpbmVkLiINCiAgICAgIChj b25kICgoYXRvbSBub2Rlc2V0KSBub2Rlc2V0KQ0KCSAgICAoKG51bGwgKHJl c3Qgbm9kZXNldCkpIG5vZGVzZXQpDQoJICAgICh0IChyZW1vdmUtZHVwbGlj YXRlcw0KCQlub2Rlc2V0DQoJCTp0ZXN0ICMnKGxhbWJkYSAobmRlMSBuZGUy KQ0KCQkJICAjISgoZGVkdWNlIGVxdWl2IH5uZGUxIGVxdWl2IH5uZGUyKSkp KSkpKSkNCg0KKF5eIGNvbXBpbGUNCiAgICAoZGVmdW4gcmVtb3ZlLXJlZHVu ZGFudC1jbGFzc2VzIChub2Rlc2V0KQ0KICAgICAgIlJlbW92ZXMgZnJvbSBO T0RFU0VUIGFueSBtZW1iZXItY2xhc3MxIG5vZGUgZm9yIHdoaWNoIHRoZXJl IGlzDQogICAgICAgYSBtZW1iZXItY2xhc3MyIG5vZGUgaW4gdGhlIHNldCBm b3Igd2hpY2ggY2xhc3MyIGlzIGEgc3ViY2xhc3Mgb2YNCiAgICAgICBjbGFz czEuDQogICAgICAgQWxzbyByZW1vdmVzIGZyb20gTk9ERVNFVCBhbnkgbm90 KG1lbWJlci1jbGFzczEpIG5vZGUgZm9yIHdoaWNoDQogICAgICAgdGhlcmUg aXMgYSBub3QobWVtYmVyLWNsYXNzMikgbm9kZSBpbiB0aGUgc2V0IGZvciB3 aGljaCBjbGFzczINCiAgICAgICBpcyBhIHN1cGVyY2xhc3Mgb2YgY2xhc3Mx LiINCiAgICAgIChjb25kDQogICAgICAgKChhdG9tIG5vZGVzZXQpIG5vZGVz ZXQpDQogICAgICAgKChudWxsIChyZXN0IG5vZGVzZXQpKSBub2Rlc2V0KQ0K ICAgICAgICh0IChyZW1vdmUtaWYNCgkgICAjJyhsYW1iZGEgKG5kZTEpDQoJ ICAgICAgIChmaW5kLWlmDQoJCSMnKGxhbWJkYSAobmRlMikNCgkJICAgIChv cg0KCQkgICAgIChhbmQNCgkJICAgICAgIyEoKGZpbmQgY2xhc3MtIH5uZGUx KSkNCgkJICAgICAgIyEoKGZpbmQgY2xhc3MtIH5uZGUyKSkNCgkJICAgICAg IyEoKGRlZHVjZSBzdXBlcmNsYXNzIH4oc25lcHM6bm9kZXNldC5uIG5kZTEg J2NsYXNzKQ0KCQkJCSBzdWJjbGFzcyB+KHNuZXBzOm5vZGVzZXQubiBuZGUy ICdjbGFzcykpKSkNCgkJICAgICAoYW5kDQoJCSAgICAgIChzbmVwczppcy1u b3IubiBuZGUxKQ0KCQkgICAgICAoc25lcHM6aXMtbm9yLm4gbmRlMikNCgkJ ICAgICAgIyEoKGZpbmQgKGNsYXNzLSBhcmctKSB+bmRlMSkpDQoJCSAgICAg ICMhKChmaW5kIChjbGFzcy0gIGFyZy0pIH5uZGUyKSkNCgkJICAgICAgIyEo KGRlZHVjZQ0KCQkJICBzdWJjbGFzcyB+KHNuZXBzOnBhdGhmcm9tICcoYXJn IGNsYXNzKSBuZGUxKQ0KCQkJICBzdXBlcmNsYXNzIH4oc25lcHM6cGF0aGZy b20gJyhhcmcgY2xhc3MpIG5kZTIpKSkpKSkNCgkJbm9kZXNldCkpDQoJICAg bm9kZXNldCkpKSkpDQoNCg0KKF5eIGRlZnVuIHRlbnNlLWFuZC1hc3BlY3Qg KHRpbWUpDQogICAgKGNvbmQgKCMhKChmaW5kYXNzZXJ0IHN1cGludCB+dGlt ZSBzdWJpbnQgKk5PVykpICcocHJlcyBwcm9nKSkNCgkgICgjISgoZmluZGFz c2VydCBiZWZvcmUgfnRpbWUgYWZ0ZXIgKk5PVykpICcocGFzdCBub24tcHJv ZykpDQoJICAoIyEoKGZpbmRhc3NlcnQgc3VwaW50IH50aW1lDQoJCQkgIHN1 YmludCAoZmluZCBiZWZvcmUtIChmaW5kYXNzZXJ0IGFmdGVyICpub3cpKSkp DQoJICAgICAnKHBhc3QgcHJvZykpDQoJICAoKGludGVyc2VjdGlvbiB0aW1l ICgqICdOT1cpKSAnKHByZXMgbm9uLXByb2cpKQ0KCSAgKHQgJyhwYXN0IG5v bi1wcm9nKSkpKQ0KDQooXl4gZGVmdW4gdGVtcG9yYWxseS1zb3J0IChub2Rl cykNCiAgICAoY29uZCAoKGF0b20gbm9kZXMpIG5vZGVzKQ0KCSAgKChudWxs IChyZXN0IG5vZGVzKSkgbm9kZXMpDQoJICAodCAoc29ydCBub2Rlcw0KCQkg ICAjJyhsYW1iZGEgKG4gbSkNCgkJICAgICAgIChpZiAjISgoZmluZCB0aW1l LSB+bikpDQoJCQkgKGlmICMhKChmaW5kIHRpbWUtIH5tKSkNCgkJCSAgICMh KChmaW5kYXNzZXJ0IGJlZm9yZSAoZmluZCB0aW1lLSB+bikNCgkJCQkJICBh ZnRlciAoZmluZCB0aW1lLSB+bSkpKQ0KCQkJICAgbmlsKQ0KCQkJIHQpKSkp KSkNCg0KKF5eIGRlZnVuIHByb3Bvc2l0aW9ucCAobm9kZSkNCiAgICAiUmV0 dXJucyBUIGlmIE5PREUgcmVwcmVzZW50cyBhIHByb3Bvc2l0aW9uOyBOSUwg b3RoZXJ3aXNlLiINCiAgICAoZG9saXN0IChhcmMgJyhhY3QgZXZlbnQgcHJv cGVydHkgZXF1aXYgbWVtYmVyIHBvc3Nlc3NvciBzdWJjbGFzcw0KCQkgICBw cm9wZXJuYW1lIHN1YmludCkNCgkgICAgICBuaWwpDQogICAgICAod2hlbiAo cGFyc2VyOjppbnRlcm5hbC1nZXRhIGFyYyBub2RlKSAocmV0dXJuIHQpKSkp DQoNCg0KOzs7IFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHdlcmUgYWxsIGFi c3RyYWN0ZWQgZnJvbSB0aGUgZ3JhbW1hciBkZXZlbG9wZWQgYnkgS29vbnR6 IGFuZCBkZWFsIHdpdGggYW5hcGhvcmEgDQo7OzsgcmVzb2x1dGlvbi4NCjs7 OyAqKipuZXcgZGVmdW4gZnJvbSBidWdib29rDQoNCiheXiBkZWZ1biBudW1i ZXJvZiAobm9kZSkNCiAgIlJldHVybnMgJ1BMVVIgaWYgTk9ERSByZXByZXNl bnRzIGEgcGx1cmFsIGVudGl0eTsNCiAgICdTSU5HIG90aGVyd2lzZSINCiAg KGRlY2xhcmUgKHNwZWNpYWwgbm9kZSkpDQogIChjaGVjay10eXBlIG5vZGUg c25lcHM6bm9kZSkNCiAgKGlmIChmaW5kIChvciBzdWJjbGFzcyBzdXBlcmNs YXNzKSAoXiBub2RlKSkNCiAgICAgICdwbHVyDQogICAgJ3NpbmcpKQ0KDQo7 OzsgKioqIGxpc3AgZnVuY3Rpb25zIGZvciByZXNvbHZpbmcgYW5hcGhvcmEN Cg0KKF5eIGRlZnZhciAqZm9jdXNsaXN0KiAnKCkpDQoNCiheXiBkZWZ1biBn ZXRpbmZvIChub2RlIGZvY3VzbGlzdCkJOyBub2RlKmZvY3VzbGlzdC0+bm9k ZWxpc3QNCiAgKGlmIChlcWwgZm9jdXNsaXN0IG5pbCkgDQogICAgICBuaWwN CiAgICAoaWYgKGVxbCBub2RlIChmaXJzdCAoZmlyc3QgZm9jdXNsaXN0KSkp DQoJKGZpcnN0IGZvY3VzbGlzdCkNCiAgICAgIChnZXRpbmZvIG5vZGUgKHJl c3QgZm9jdXNsaXN0KSkpKSkNCg0KKF5eIGRlZnVuIGRlbGV0ZS1ub2RlIChu b2RlIGZvY3VzbGlzdCkgICAgICAgOyBub2RlKmZvY3VzbGlzdC0+Zm9jdXNs aXN0DQogIChpZiAoZXFsIGZvY3VzbGlzdCBuaWwpDQogICAgICBuaWwNCiAg ICAoaWYgKGVxbCBub2RlIChmaXJzdCAoZmlyc3QgZm9jdXNsaXN0KSkpDQoJ KGRlbGV0ZS1ub2RlIG5vZGUgKHJlc3QgZm9jdXNsaXN0KSkNCiAgICAgIChj b25zIChmaXJzdCBmb2N1c2xpc3QpIChkZWxldGUtbm9kZSBub2RlIChyZXN0 IGZvY3VzbGlzdCkpKSkpKQ0KDQooXl4gZGVmdW4gcmVkdWNlLWFsbCAoZm9j dXNsaXN0KSAgOyBmb2N1c2xpc3QtPmZvY3VzbGlzdAkNCiAgKGlmIChlcWwg Zm9jdXNsaXN0IG5pbCkgDQogICAgICBuaWwNCiAgICAoaWYgKGxpc3A6PCAo bGlzcDpmb3VydGggKGZpcnN0IGZvY3VzbGlzdCkpIDIpDQoJKGRlbGV0ZS1u b2RlIChmaXJzdCAoZmlyc3QgZm9jdXNsaXN0KSkgZm9jdXNsaXN0KQ0KICAg ICAgKGNvbnMgKGxpc3QgKGZpcnN0IChmaXJzdCBmb2N1c2xpc3QpKSAoc2Vj b25kIChmaXJzdCBmb2N1c2xpc3QpKSAodGhpcmQgKGZpcnN0IGZvY3VzbGlz dCkpIChsaXNwOi0gKGxpc3A6Zm91cnRoIChmaXJzdCBmb2N1c2xpc3QpKSAy KSkgKHJlZHVjZS1hbGwgKHJlc3QgZm9jdXNsaXN0KSkpKSkpDQoNCiheXiBk ZWZ1biB1cGRhdGUgKG5vZGUgZ2VuZGVyIG51bSBjYXNlIGZvY3VzbGlzdCkg O25vZGUqZ2VuZGVyKm51bSpjYXNlKmZvY3VzbGlzdC0+Zm9jdXNsaXN0DQog IChpZiAobm90IChnZXRpbmZvIG5vZGUgZm9jdXNsaXN0KSk7IHRoZSBub2Rl IGlzIG5vdCBjdXJyZW50bHkgaW4gZm9jdXNsaXN0DQogICAgICAob2NvbnMg KGxpc3Qgbm9kZSBnZW5kZXIgbnVtIChnZXR3ZWlnaHQgY2FzZSkpIGZvY3Vz bGlzdCkgOyBzbyBhZGQgaXQgd2l0aCB3ZWlnaHQgb2YgY2FzZSBvbmx5IA0K ICAgIChpZiAob3IgKG5vdCAobGlzdHAgZ2VuZGVyKSkJOyBpZiBnZW5kZXIg b2YgZW50aXR5IGlzIGEgc2luZ2xldG9uLCBvciBnZW5kZXIgKmlzKiBhIGxp c3QgYnV0IG9ubHkgYSBzdWJzZXQgb2YgZm9jdXNsaXN0IHJlcHJlc2VudGF0 aW9uLCANCgkgICAgKGFuZCAobGlzdHAgKHNlY29uZCAoZ2V0aW5mbyBub2Rl IGZvY3VzbGlzdCkpKSA7dGhlbiBjaGFuZ2UgZm9jdXNsaXN0IHJlcC4gdG8g Z2VuZGVyJ3MgdmFsdWUNCgkJIChzdWJzZXRwIGdlbmRlciAoc2Vjb25kIChn ZXRpbmZvIG5vZGUgZm9jdXNsaXN0KSkpKSkNCgkob2NvbnMgKGxpc3Qgbm9k ZSBnZW5kZXIgbnVtIChsaXNwOisgKGxpc3A6Zm91cnRoIChnZXRpbmZvIG5v ZGUgZm9jdXNsaXN0KSkgKGdldHdlaWdodCBjYXNlKSkpIGZvY3VzbGlzdCkg DQogICAgICAob2NvbnMgKGxpc3Qgbm9kZSAoc2Vjb25kIChnZXRpbmZvIG5v ZGUgZm9jdXNsaXN0KSkgbnVtIChsaXNwOisgKGxpc3A6Zm91cnRoIChnZXRp bmZvIG5vZGUgZm9jdXNsaXN0KSkgKGdldHdlaWdodCBjYXNlKSkpIGZvY3Vz bGlzdCkpKSk7ZWxzZSBrZWVwIGZvY3VzbGlzdCByZXAJDQoNCiheXiBkZWZ1 biBvY29ucyAobm9kZWxpc3QgZm9jdXNsaXN0KQk7IG5vZGVsaXN0KmZvY3Vz bGlzdC0+Zm9jdXNsaXN0DQogIChpZiAoZXFsIGZvY3VzbGlzdCBuaWwpIChs aXN0IG5vZGVsaXN0KQ0KICAgIChpZiAoZXFsIChmaXJzdCBub2RlbGlzdCkg KGZpcnN0IChmaXJzdCBmb2N1c2xpc3QpKSkNCgkob2NvbnMgbm9kZWxpc3Qg KHJlc3QgZm9jdXNsaXN0KSkNCiAgICAgIChpZiAobGlzcDo8IChsaXNwOmZv dXJ0aCBub2RlbGlzdCkgKGxpc3A6Zm91cnRoIChmaXJzdCBmb2N1c2xpc3Qp KSkNCgkgIChjb25zIChmaXJzdCBmb2N1c2xpc3QpIChvY29ucyBub2RlbGlz dCAocmVzdCBmb2N1c2xpc3QpKSkNCgkoY29ucyBub2RlbGlzdCAoZGVsZXRl LW5vZGUgKGZpcnN0IG5vZGVsaXN0KSBmb2N1c2xpc3QpKSkpKSkNCg0KKF5e IGRlZnVuIHJlc29sdmUtcHJvbiAoZ2VuZGVyIG51bWJlciBmb2N1c2xpc3Qp IDsgZ2VuZGVyKm51bWJlcipmb2N1c2xpc3QtPm5vZGUNCiAgKGlmIChlcWwg Zm9jdXNsaXN0IG5pbCkgbmlsDQogICAgKGlmIChhbmQgKGVxbCBudW1iZXIg KHRoaXJkIChmaXJzdCBmb2N1c2xpc3QpKSkNCgkgICAgIChvciAoYW5kIChs aXN0cCBnZW5kZXIpDQoJCSAgICAgIChhbmQgKG9yIChhbmQgKGxpc3RwIChz ZWNvbmQgKGZpcnN0IGZvY3VzbGlzdCkpKQ0KCQkJCSAgICAob3IgKHN1YnNl dHAgZ2VuZGVyIChzZWNvbmQgKGZpcnN0IGZvY3VzbGlzdCkpKQ0KCQkJCQko c3Vic2V0cCAoKHNlY29uZCAoZmlyc3QgZm9jdXNsaXN0KSkgZ2VuZGVyKSkp KQ0KCQkJICAgICAgIChtZW1iZXIgKHNlY29uZCAoZmlyc3QgZm9jdXNsaXN0 KSkgZ2VuZGVyKSkpKQ0KCQkgKG9yIChhbmQgKGxpc3RwIChzZWNvbmQgKGZp cnN0IGZvY3VzbGlzdCkpKQ0KCQkJICAobWVtYmVyIGdlbmRlciAoc2Vjb25k IChmaXJzdCBmb2N1c2xpc3QpKSkpDQoJCSAgICAgKGVxbCBnZW5kZXIgKHNl Y29uZCAoZmlyc3QgZm9jdXNsaXN0KSkpKSkpDQoJKGZpcnN0IChmaXJzdCBm b2N1c2xpc3QpKQk7IHJldHVybiBub2RlDQogICAgICAocmVzb2x2ZS1wcm9u IGdlbmRlciBudW1iZXIgKHJlc3QgZm9jdXNsaXN0KSkpKSkNCg0KKF5eIGRl ZnVuIHJlc29sdmUtYWNjdXNhdGl2ZSAoZ2VuZGVyIG51bWJlciBkb250Ymlu ZCBmb2N1c2xpc3QpIDsgZ2VuZGVyKm51bWJlcipmb2N1c2xpc3Qqbm9kZS0+ bm9kZQ0KICAoaWYgKGVxbCBkb250YmluZCAocmVzb2x2ZS1wcm9uIGdlbmRl ciBudW1iZXIgZm9jdXNsaXN0KSkNCiAgICAgIChyZXNvbHZlLXByb24gZ2Vu ZGVyIG51bWJlciAocmVzdCBmb2N1c2xpc3QpKQ0KICAgIChyZXNvbHZlLXBy b24gZ2VuZGVyIG51bWJlciBmb2N1c2xpc3QpKSkNCiAgDQooXl4gZGVmdW4g Z2V0d2VpZ2h0IChjYXNlKSA7Y2FzZS0+d2VpZ2h0DQogIChpZiAoZXFsIGNh c2UgJ25vbSkgOA0KICAgIChpZiAoZXFsIGNhc2UgJ2FjYykgNw0KICAgICAg KGlmIChlcWwgY2FzZSAncmVmKSAzDQoJbmlsKSkpKQ0KDQo7OzsgKioqDQoN Cjs7OyBUaGUgaW5pdGlhbCBhcmMgaXMgdXNlZCB0byBtYWtlIHR3byBTTmVQ U1VMIHZhcmlhYmxlcywgZWFjaCBvZg0KOzs7IHdoaWNoIGhvbGRzIGEgU05l UFMgdmFyaWFibGUgbm9kZS4gIFRoaXMgcmVzdWx0cyBpbiBhIG1ham9yDQo7 OzsgZWZmaWNpZW5jeSBnYWluIG92ZXIgY3JlYXRpbmcgbmV3IFNOZVBTIHZh cmlhYmxlIG5vZGVzIGVhY2ggdGltZSBhDQo7OzsgcXVlc3Rpb24gb3IgYW4g aW5kZWZpbml0ZSBOUCBpcyBwYXJzZWQuDQoocyANCiAgICh3cmQgInNldGsi IHQgKHRvIHN0aykpDQogICAod3JkICJpbiIgdCAodG8gc2luKSkNCiAgIChq dW1wIHMxIHQgDQogICAgICAgICAob3IgKCogJ3doKSAoJCAnd2gpKQkJOyBh IFNOZVBTIHZhcmlhYmxlIHRvIHVzZSBmb3IgV2ggcXVlc3Rpb25zDQogICAg ICAgICAob3IgKCogJ3gpICgkICd4KSkJCTsgYSB2YXJpYWJsZSBmb3IgaW5k ZWYgTlAncyBpbiBxdWVzdGlvbnMNCiAgICAgICAgICkpDQoNCihzaW4gKHdy ZCAidGhlIiB0ICh0byBzaW4pKQ0KICAgICAod3JkICJzdG9yeSIgdCAodG8g c2luKSkNCiAgICAgKHdyZCAiLCIgdCAodG8gcykpKQ0KDQooc3RrIChjYXQg a24gdCANCiAgICAgICAgICAoc2V0ciBrbnZhbCAqKSAodG8gc3RrL2VuZCkp KQ0KDQooc3RrL2VuZCAod3JkICIuIiB0IA0KICAgICAgICAgICAgICAoc2V0 a24gKGdldHIga252YWwpKSAoc2F5IChnZXRyIGtudmFsKSkgKHRvIGcvZW5k KSkpDQoNCihzMSAod3JkICJkZWZpbmUiIHQgICAgICAgICAgICAgICAgICAg ICAgIA0KCSAjISgocGVyZm9ybSAoYnVpbGQgYWN0aW9uIGJlbGlldmUNCgkJ CSAgICBvYmplY3QxIChidWlsZCBhZ2VudCAqSSANCgkJCQkJICAgYWN0IChi dWlsZCBhY3Rpb24gKGJ1aWxkIGxleCAiZGVmaW5pbmdub3VuIikpKSkpKQ0K CSAodG8gczEpKQ0KDQogICAgKGp1bXAgcy9pbml0IHQgDQoJICAodW5sZXNz ICgqICdOT1cpIChcIyAnTk9XKSkNCgkgICh1bmxlc3MgKCogJ3FvYmopICgk ICdxb2JqKSkNCgkgICh1bmxlc3MgKCogJ3FzdCkgKCQgJ3FzdCkpDQoJICAo dW5sZXNzICgqICdxZXQpICgkICdxZXQpKQ0KCSAgKHVubGVzcyAoKiAnbWVt KSAoJCAnbWVtKSkNCgkgICh1bmxlc3MgKCogJ3Byb3B0eSkgKCQgJ3Byb3B0 eSkpKSkNCg0KKHMvaW5pdCAocHVzaCBwcyB0CQkJOyBQYXJzZSBhIHNlbnRl bmNlLCBhbmQgc2VuZCByZXN1bHRzIHRvIFJFU1BPTkQNCgkgICAgICAoc2Vu ZHIgbW9vZCAnZGVjbCkJOyB0aGUgZGVmYXVsdA0KCSAgICAgIChzZXRyIGFz c2VydGlvbiAqKQ0KCSAgICAgIChzZXRmICpmb2N1c2xpc3QqIChyZWR1Y2Ut YWxsICpmb2N1c2xpc3QqKSkNCgkgICAgICAoc2V0ciBmb28gKmZvY3VzbGlz dCopDQoJICAgICAgKGp1bXAgcmVzcG9uZCkpKQ0KDQoNCg0KDQoNCg0KKHBz IChjYXQgd2ggdCAgICAgICAgICAgICAgICAgICAgICAgIDsgQSBXaCBxdWVz dGlvbiBzdGFydHMgd2l0aCAid2hvIiBvciAid2hhdCIuDQogICAgICAgICAo c2V0ciBhZ2VudCAoKiAnd2gpKSAgICAgICAgOyBzZXQgQUdFTlQgdG8gYSB2 YXJpYWJsZSBub2RlLg0KICAgICAgICAgKHNldHIgbW9vZCAncXVlc3Rpb24p IA0KCSAobGlmdHIgbW9vZCkNCgkgKHNldHIgaHVtYW5uZXNzIChnZXRmIGh1 bWFuKSkNCgkgKHRvIHMvc3ViaikpDQoNCiAgICAocHVzaCBucCB0IA0KCSAg KHNlbmRyIG1vb2QgJ2RlY2wpDQoJICAoc2VuZHIgcHJvbl9jYXNlICdub20p DQogICAgICAgICAgDQoNCg0KDQoJICAoc2V0ciBhZ2VudCAqKQ0KICAgICAg ICAgIChzZXRyIG1vb2QgJ2RlY2wpIChsaWZ0ciBtb29kKQkNCiAgICAgICAg ICAodG8gcy9zdWJqKSkpDQoNCg0KDQoocy9zdWJqICh0byAocy9pcykgKG92 ZXJsYXAgKGdldGYgcm9vdCkgJ2JlKSkNCgkoY2F0IHYgdCAoc2V0ciBwcm9w dHlwZSAnYXZvKSAoanVtcCB2cCkpDQoJKGNhdCBhdiB0DQoJICAoc2V0ciBt b2QgKikobGlmdHIgbW9kKSh0byBzL3N1YmopKQ0KCShjYXQgYXV4IHQNCgkg CShzZXRyIG9iamVjdCAoKiAnd2gpKQ0KCQkoc2V0ciBwcm9wdHlwZSAnYXZv KQ0KCSAJKHRvIHBzKSkpDQoNCg0KDQoNCg0KKHMvaXMgKHdyZCAiYSIgdCAo dG8gcy9pc25vdW4pKQ0KICAgICAgKGNhdCBuIChhbmQgKGdldHIgZ2VuZXJp YykgKG92ZXJsYXAgKGdldGYgbnVtKSAncGx1cikpDQoJICAgKGp1bXAgcy9p c25vdW4pKQk7IGVnICJnaXJscyBhcmUgcGVvcGxlIg0KICAgICAgKGNhdCB2 IHQgKHNldHIgYWN0aW9uICopIChzZXRyIHBhc3MgdCkgKHRvIHZwL3Bhc3N2 KSkNCiAgICAgIChjYXQgYXYgdA0KCSAgKHNldHIgbW9kICopKGxpZnRyIG1v ZCkodG8gcy9pcykpCQ0KICAgICAgKGNhdCBhZGogdCAoanVtcCBzL2lzYWRq KSkNCiAgICAgICh3cmQgIm5hbWVkIiB0ICh0byBzL2lzbmFtZWQpKSkNCg0K DQoNCg0KDQoNCg0KKHMvaXNub3VuIChjYXQgbiAobnVsbHIgZ2VuZXJpYykN CgkgICAgKHNldHIgcHJvcHR5cGUgJ2lzbm91bikNCgkgICAgKHNldHIgb2Jq ZWN0ICopDQoJICAgICh0byBzL2ZpbmFsKSkNCiAgICAgICAoY2F0IG4gZ2Vu ZXJpYw0KCSAgICAoc2V0ciBwcm9wdHlwZSAnaXNub3VuKQ0KCSAgICAoc2V0 ciBvYmplY3QgICh3b3JkaXplICdzaW5nIChnZXRyICopKSkNCgkgICAgKHRv IHMvZmluYWwpKSkNCg0KDQoNCg0KDQogICAgICAgDQoocy9pc2FkaiAoY2F0 IGFkaiAobnVsbHIgZ2VuZXJpYykNCgkgICAgICAoc2V0ciBvYmplY3QgKikN CgkgICAgICAoc2V0ciBwcm9wdHlwZSAnaXNhZGopDQoJICAgICAgKHRvIHMv ZmluYWwpKQ0KCSAoY2F0IGFkaiBnZW5lcmljDQoJICAgICAgKHNldHIgb2Jq ZWN0ICopDQoJICAgICAgKHNldHIgcHJvcHR5cGUgJ2lzYWRqKQ0KCSAgICAg ICh0byBzL2ZpbmFsKSkpDQoNCg0KDQoNCg0KDQoocy9pc25hbWVkIChjYXQg bnByIHQgDQoJCShzZXRyIG9iamVjdCAqKQ0KCQkoc2V0ciBwcm9wdHlwZSAn aXNuYW1lZCkNCgkJKHRvIHMvZmluYWwpKSkNCg0KDQoNCg0KDQoNCihzL3J1 bGUgIA0KICh3cmQgIi4iIHBhc3MNCiAgICAgIChzZXRyIHByb3ANCgkgICAg KGFzc2VydCBmb3JhbGwgKF4gKGdldHIgYWdlbnQpKQ0KCQkgICAgYW50IChe IChnZXRyIHJlc3RyKSkNCgkJICAgIGNxICheIChnZXRyIHNrcmVzdHIpKQ0K CQkgICAgY3EgKGJ1aWxkIGFnZW50ICheIChnZXRyIG9iamVjdCkpDQoJCQkg ICAgICBhY3QgKGJ1aWxkIGFjdGlvbiAoXiAoZ2V0ciBhY3Rpb24pKQ0KCQkJ CQkgb2JqZWN0ICheIChnZXRyIGFnZW50KSkpDQoJCQkgICAgICBzdGltZSAo XCMgJ3N0KQ0KCQkJICAgICAgZXRpbWUgKFwjICdldCkpKSkNCgkgICAgIChh c3NlcnQgYmVmb3JlICgqICdzdCkgYWZ0ZXIgKCogJ05PVykpDQoJICAgICAo YXNzZXJ0IGJlZm9yZSAoKiAnTk9XKSBhZnRlciAoKiAnZXQpKQ0KCSAgICAg KHNldHIgcHJvcHR5cGUgJ3Bhc3NpdmUpDQoJICAgICAodG8gcy9lbmQpKQ0K IA0KDQoNCg0KDQoNCiAod3JkICIuIiB0DQoJICAgICAoc2V0ciBwcm9wDQoJ CSAgIChhc3NlcnQgZm9yYWxsICheIChnZXRyIHN1YmopKQ0KCQkgICAgIGFu dCAoXiAoZ2V0ciByZXN0cikpDQoJCSAgICAgY3EgKF4gKGdldHIgc2tyZXN0 cikpDQoJCSAgICAgY3EgKGJ1aWxkIGFnZW50ICheIChnZXRyIG9iaikpDQoJ CQkgICAgICAgYWN0ICheIChnZXRyIGFjdCkpDQoJCQkgICAgICAgb2JqZWN0 ICheIChnZXRyIHN1YmopKQ0KCQkJICAgICAgIHN0aW1lIChcIyAnc3QpDQoJ CQkgICAgICAgZXRpbWUgKFwjICdldCkpKSkNCgkgICAgIChhc3NlcnQgYmVm b3JlICgqICdzdCkgYWZ0ZXIgKCogJ05PVykpDQoJICAgICAoYXNzZXJ0IGJl Zm9yZSAoKiAnTk9XKSBhZnRlciAoKiAnZXQpKQ0KCSAgICAgKHRvIHMvZW5k KSkpDQoNCg0KDQoNCih2cC9wYXNzdiAod3JkICJieSIgdCAoc2V0ciBwcm9w dHlwZSAncGFzc2l2ZSkgKHRvIHZwL3YpKSkNCg0KKHZwIChjYXQgdiB0ICAg ICAgICAgICAgICAgICAgICAgICAgICA7IEFjY2VwdCBqdXN0IGEgc2ltcGxl IHZlcmIgZm9yIHRoaXMgZXhhbXBsZSwNCiAgICAgICAgIChzZXRyIGFjdGlv biAqKQ0KCSAodG8gdnAvdikpDQogICAgIChjYXQgYXYgdA0KCSAgKHNldHIg bW9kICopKGxpZnRyIG1vZCkodG8gdnApKSkNCgkNCg0KKHZwL3YgKHdyZCAi PyIgdCAoanVtcCBzL2ZpbmFsKSkNCiAgICAgIA0KCShwdXNoIHBwIHQNCgkg ICAgKHNlbmRyIGFnZW50KQ0KCSAgICANCgkgICAgKHNldHIgcHJlcG8gJ3By b3BvKQ0KCSAgICAodG8gdnAvdikpDQoNCgkocHVzaCBucCB0IA0KCSAgICAo c2VuZHIgcHJvbl9jYXNlICdhY2MpDQoJICAgIChzZW5kciBtb29kKQ0KCSAg ICAoc2VuZHIgYWdlbnQpDQogICAgICAgICAgICAoc2V0ciBvYmplY3QgKikg ICAgIDsgU2V0IE9CSkVDVCB0byBwYXJzZSBvZiBvYmplY3QuDQogICAgICAg ICAgICAodG8gcy9maW5hbCkpDQogICAgICAoanVtcCBzL2ZpbmFsIHQpKSAg ICAgICAgIDsgSWYgbm8gb2JqZWN0Lg0KICAgICAgDQoNCihwcCAgICh3cmQg ImludG8iIHQNCgkgICAoc2V0ciBpbnRvICd0cnVlKSAobGlmdHIgaW50byko dG8gcHAvZW5kKSkNCiAgICAgICh3cmQgInRvIiB0DQoJICAgKHNldHIgdG8g J3RydWUpKGxpZnRyIHRvKSh0byBwcC9lbmQpKQ0KICAgICAgKHdyZCAiYXQi IHQNCgkgICAoc2V0ciBkaXIgJ3RydWUpKGxpZnRyIGRpcikodG8gcHAvZW5k KSkNCiAgICAgICh3cmQgImluIiB0DQoJICAgKHNldHIgcGxhICd0cnVlKShs aWZ0ciBwbGEpKHRvIHBwL2VuZCkpDQogICAgICAod3JkICJuZXh0dG8iIHQN CgkgICAoc2V0ciByZWwgKikoc2V0ciBuZWMgJ3RydWUpKGxpZnRyIG5lYyko bGlmdHIgcmVsKSh0byBwcC9lbmQpKQ0KICAgICAgKHdyZCAiYmVoaW5kIiB0 DQoJICAgKHNldHIgcmVsICopKHNldHIgbmVjICd0cnVlKShsaWZ0ciBuZWMp KGxpZnRyIHJlbCkodG8gcHAvZW5kKSkpDQogICANCg0KKHBwL2VuZCAocG9w IG9ud2EgdCkpDQoNCg0KDQoocy9maW5hbCANCgkocHVzaCBwcCB0DQoJIChz ZXRyIHByZXBvICdwcmVwbykoc2V0ciByZWwgKikNCgkgKHRvIHMvZmluaXMp KQ0KDQoJKGp1bXAgcy9lbmQgKG92ZXJsYXAgZW1iZWRkZWQgdCkpIDsgYW4g ZW1iZWRkZWQgcHJvcG9zaXRpb24NCiAgICAgICAgIA0KCSh3cmQgIi4iIChv dmVybGFwIG1vb2QgJ2RlY2wpICh0byBzL2VuZCkpDQogICAgICAgICANCgko d3JkICI/IiAob3ZlcmxhcCBtb29kICdxdWVzdGlvbikgKHRvIHMvZW5kKSkp DQoNCg0KKHMvZmluaXMgKHB1c2ggbnAgdCAoc2VuZHIgbW9vZCkgKHNlbmRy IGFnZW50KSAoc2VuZHIgb2JqZWN0KSA7Y2hla2luZyBmb3IgYW4gaW5kaXJl Y3Qgb2JqZWN0IA0KCQkJCQkgICAgICAgO2J5IHB1c2hpbmcgdG8gc3RhdGUg bnAuDQoJICAgICAgIAkoc2V0ciBpbmRvYmplY3QgKikJDQoJICAgICAgIAko dG8gcy9maW5hbCkpKQ0KDQoNCihzL2VuZCANCiANCiANCg0KIChwb3AgIyEg KChhZGQgbWVtYmVyIH4oZ2V0ciBhZ2VudCkgOyAiaXNhIiBkZWNsYXJhdGl2 ZSBiYXNpYw0KCQkgIGNsYXNzIChidWlsZCBsZXggfihnZXRyIG9iamVjdCkp DQoJCSAga25fY2F0ICJzdG9yeSIpKQ0KICAgICAgKGFuZCAob3ZlcmxhcCBt b29kICdkZWNsKSAob3ZlcmxhcCBwcm9wdHlwZSAnaXNub3VuKQ0KCSAgIChv dmVybGFwIChnZXRmIGJhc2ljIChnZXRyIG9iamVjdCkpIHQpKSkNCiAgIA0K IChwb3AgIyEgKChhZGQgb2JqZWN0LTEgfihnZXRyIGFnZW50KSA7ICJpc2Ei IGRlY2xhcmF0aXZlIHNwZWNpZi4NCgkJIHJlbCBpc2ENCgkJIG9iamVjdC0y IChidWlsZCBsZXggfihnZXRyIG9iamVjdCkpDQoJCWtuX2NhdCAic3Rvcnki KSkNCgkgICAgKGFuZCAob3ZlcmxhcCBtb29kICdkZWNsKSAob3ZlcmxhcCBw cm9wdHlwZSAnaXNub3VuKQ0KCQkgKG51bGxyIGdlbmVyaWMpKQ0KCSAgICAo bGlmdHIgcHJvcHR5cGUpKQ0KIA0KIChwb3AgIyEgKChhZGQgc3ViY2xhc3Mg fihnZXRyIGFnZW50KSA7ICJpc2EiIGRlY2xhcmF0aXZlIGdlbmVyaWMNCgkJ IHN1cGVyY2xhc3MgKGJ1aWxkIGxleCB+KGdldHIgb2JqZWN0KSkNCgkJa25f Y2F0ICJzdG9yeSIpKQ0KCSAgICAoYW5kIChvdmVybGFwIG1vb2QgJ2RlY2wp IChvdmVybGFwIHByb3B0eXBlICdpc25vdW4pDQoJCSAob3ZlcmxhcCBnZW5l cmljIHQpKQ0KCSAgICAobGlmdHIgcHJvcHR5cGUpKSAocG9wICMhICgoYXNz ZXJ0IG9iamVjdCB+KGdldHIgYWdlbnQpIDsgImlzIiArIGFkaiBkZWNsYXIu IHNwZWNpZi4NCgkJICBwcm9wZXJ0eSAoYnVpbGQgbGV4IH4oZ2V0ciBvYmpl Y3QpKQ0KCQlrbl9jYXQgInN0b3J5IikpDQoJICAgIChhbmQgKG92ZXJsYXAg bW9vZCAnZGVjbCkgKG92ZXJsYXAgcHJvcHR5cGUgJ2lzYWRqKQ0KCQkgKG51 bGxyIGdlbmVyaWMpKQ0KCSAgICAobGlmdHIgcHJvcHR5cGUpKQ0KDQogKHBv cCAjISAoKGFkZCBvYmplY3QgfihnZXRyIGFnZW50KSA7ICJpcyIgKyBhZGog ZGVjbGFyLiBnZW5lcmljDQoJCSAgICAgICBwcm9wZXJ0eSAoYnVpbGQgbGV4 IH4oZ2V0ciBvYmplY3QpKQ0KCQlrbl9jYXQgInN0b3J5IikpDQoJICAgIChh bmQgKG92ZXJsYXAgbW9vZCAnZGVjbCkgKG92ZXJsYXAgcHJvcHR5cGUgJ2lz YWRqKQ0KCQkgKG92ZXJsYXAgZ2VuZXJpYyB0KSkNCgkgICAgKGxpZnRyIHBy b3B0eXBlKSkJCQkNCg0KIChwb3AgIyEgKChhZGQgb2JqZWN0IH4oZ2V0ciBh Z2VudCkNCgkJcHJvcGVybmFtZSAoYnVpbGQgbGV4IH4oZ2V0ciBvYmplY3Qp KQ0KCQlrbl9jYXQgInN0b3J5IikpIDsgImlzIG5hbWVkIiArIHByb3Blcm5h bWUNCiAgICAgIChvdmVybGFwIHByb3B0eXBlICdpc25hbWVkKQ0KICAgICAg KGxpZnRyIHByb3B0eXBlKSkNCiANCiA7Ozt0ZXN0Ozs7DQogKHBvcCAjISAo KGFzc2VydCBhZ2VudCB+KGdldHIgYWdlbnQpIDsgYXZvIGRlY2xhcmF0aXZl DQoJCSAgYWN0IChidWlsZCBhY3Rpb24gKGJ1aWxkIGxleCB+KGdldHIgYWN0 aW9uKSkNCgkJCSAgICAgb2JqZWN0IH4oZ2V0ciBvYmplY3QpKQ0KCQlrbl9j YXQgInN0b3J5IikpDQogICAgICAoYW5kIChvdmVybGFwIG1vb2QgJ2RlY2wp IChudWxsciBpbnRvKShudWxsciB0bykobnVsbHIgZGlyKShudWxsciBwbGEp KG51bGxyIG5lYykobnVsbHIgbW9kKQ0KCSAgIChvdmVybGFwIHByb3B0eXBl ICdhdm8pKQ0KICAgICAgKGxpZnRyIHByb3B0eXBlKSkNCg0KICAgICAgIChw b3AgIyEoKGFkZCBhZ2VudCB+KGdldHIgYWdlbnQpIDsgQXNzZXJ0IGEgdG9w LWxldmVsIHN0YXRlbWVudC4NCiAgICAgICAgICAgICAgICAgICAgICAgYWN0 ICAgKCBidWlsZCBhY3Rpb24gKGJ1aWxkIGxleCB+KGdldHIgYWN0aW9uKSkN CgkJCQkgICAgIG9iamVjdCAoYnVpbGQgbW9kZSB+KGdldHIgbW9kKQ0KCQkJ CQkJICAgIG9iamVjdCB+KGdldHIgb2JqZWN0KSkpDQoJCQlrbl9jYXQgInN0 b3J5IikpDQogICAgICAgICAgICAoYW5kIChvdmVybGFwIG1vb2QgJ2RlY2wp KG51bGxyIGludG8pKG51bGxyIHRvKShudWxsciBkaXIpKG51bGxyIHBsYSko bnVsbHIgbmVjKShnZXRyIG1vZCkobnVsbHIgZW1iZWRkZWQpKSkgDQoNCiAg ICAgICAocG9wICMhKChhZGQgYWdlbnQgfihnZXRyIGFnZW50KSA7IEFzc2Vy dCBhIHRvcC1sZXZlbCBzdGF0ZW1lbnQuDQogICAgICAgICAgICAgICAgICAg ICAgIGFjdCAgIChidWlsZCBhY3Rpb24gKGJ1aWxkIGxleCB+KGdldHIgYWN0 aW9uKSkpDQoJCSAgICAgICBpbnRvIH4oZ2V0ciBvYmplY3QpDQoJCWtuX2Nh dCAic3RvcnkiKSkNCiAgICAgICAgICAgIChhbmQgKG92ZXJsYXAgbW9vZCAn ZGVjbCkobnVsbHIgdG8pKG51bGxyIGRpcikobnVsbHIgcGxhKShudWxsciBu ZWMpKGdldHIgaW50bykpKQ0KICAgICAgIDtidWlsZHMgdGhlIGFnZW50L2Fj dC9pbnRvIHJlcHJlc2VudGF0aW9uIGZvciBzZW50ZW5jZXMgd2l0aCB0aGUg cHJlcG9zaXRpb24gImludG8iLg0KICAgICAgIA0KICAgICAgIChwb3AgIyEo KGFkZCBhZ2VudCB+KGdldHIgYWdlbnQpIDsgQXNzZXJ0IGEgdG9wLWxldmVs IHN0YXRlbWVudC4NCiAgICAgICAgICAgICAgICAgICAgICAgYWN0ICAgKGJ1 aWxkIGFjdGlvbiAoYnVpbGQgbGV4IH4oZ2V0ciBhY3Rpb24pKSkNCgkJICAg ICAgIHRvICAgIH4oZ2V0ciBvYmplY3QpDQoJCWtuX2NhdCAic3RvcnkiKSkN CiAgICAgICAgICAgIChhbmQgKG92ZXJsYXAgbW9vZCAnZGVjbCkobnVsbHIg ZGlyKShudWxsciBwbGEpKG51bGxyIG5lYykobnVsbHIgaW5kb2JqZWN0KShn ZXRyIHRvKSkpDQogICAgICAgO2J1aWxkcyB0aGUgYWdlbnQvYWN0L3RvIHJl cHJlc2VudGF0aW9uIGZvciBzZW50ZW5jZXMgd2l0aCB0aGUgcHJlcG9zaXRp b24gInRvIi4NCiAgICAgICANCiAgICAgICAocG9wICMhKChhZGQgYWdlbnQg fihnZXRyIGFnZW50KSA7IEFzc2VydCBhIHRvcC1sZXZlbCBzdGF0ZW1lbnQu DQogICAgICAgICAgICAgICAgICAgICAgIGFjdCAgICggYnVpbGQgYWN0aW9u IChidWlsZCBsZXggfihnZXRyIGFjdGlvbikpDQoJCQkJICAgICBvYmplY3Qg fihnZXRyIG9iamVjdCkpDQoJCSAgICAgICB0byAgICB+KGdldHIgaW5kb2Jq ZWN0KQ0KCQlrbl9jYXQgInN0b3J5IikpDQogICAgICAgICAgICAoYW5kIChv dmVybGFwIG1vb2QgJ2RlY2wpKG51bGxyIGRpcikobnVsbHIgcGxhKShudWxs ciBuZWMpKGdldHIgdG8pKGdldHIgaW5kb2JqZWN0KSkpDQogICAgICAgO2J1 aWxkcyB0aGUgYWdlbnQvYWN0LVthY3Rpb24vb2JqZWN0XS90byByZXByZXNl bnRhdGlvbiBmb3Igc2VudGVuY2VzIHdpdGggdGhlIHByZXBvc2l0aW9uICJ0 byIgYW5kIGFuIGluZGlyZWN0IG9iamVjdC4NCiAgICAgICANCiAgICAgICAo cG9wICMhKChhZGQgYWdlbnQgfihnZXRyIGFnZW50KSA7IEFzc2VydCBhIHRv cC1sZXZlbCBzdGF0ZW1lbnQuDQogICAgICAgICAgICAgICAgICAgICAgIGFj dCAgIChidWlsZCBhY3Rpb24gKGJ1aWxkIGxleCB+KGdldHIgYWN0aW9uKSkp DQoJCSAgICAgICBkaXJlY3Rpb24gfihnZXRyIG9iamVjdCkNCgkJa25fY2F0 ICJzdG9yeSIpKSANCiAgICAgICAgICAgIChhbmQgKG92ZXJsYXAgbW9vZCAn ZGVjbCkobnVsbHIgcGxhKShudWxsciBuZWMpKGdldHIgZGlyKSkpDQogICAg ICAgO2J1aWxkcyB0aGUgYWdlbnQvYWN0L2RpcmVjdGlvbiByZXByZXNlbnRh dGlvbiBmb3Igc2VudGVuY2VzIHdpdGggdGhlIHByZXBvc2l0aW9uICJhdCIu DQogICAgICAgDQogICAgICAgKHBvcCAjISgoYWRkIGFnZW50IH4oZ2V0ciBh Z2VudCkgOyBBc3NlcnQgYSB0b3AtbGV2ZWwgc3RhdGVtZW50Lg0KICAgICAg ICAgICAgICAgICAgICAgICBhY3QgICAoYnVpbGQgYWN0aW9uIChidWlsZCBs ZXggfihnZXRyIGFjdGlvbikpKQ0KCQkgICAgICAgcGxhY2UgfihnZXRyIG9i amVjdCkNCgkJICAgICAgIGtuX2NhdCAic3RvcnkiKSkgDQogICAgICAgICAg ICAoYW5kIChvdmVybGFwIG1vb2QgJ2RlY2wpKG51bGxyIGluZG9iamVjdCko bnVsbHIgbmVjKShnZXRyIHBsYSkpKQ0KCQk7YnVpbGRzIHRoZSBhZ2VudC9h Y3QvcGxhY2UgcmVwcmVzZW50YXRpb24gZm9yIHNlbnRlbmNlcyB3aXRoIHRo ZSBwcmVwb3NpdGlvbiAiaW4iLg0KCQk7cmVtb3ZpbmcgbnVsbHIgZW1iZWRk ZWQgZnJvbSBvYmVybGFwIHRlc3QgaGVyZSBiZWNhdXNlIHNjcmV3cyBpdCB1 cA0KICAgICAgIA0KICAgICAgIChwb3AgIyEoKGFkZCBhZ2VudCB+KGdldHIg YWdlbnQpIDsgQXNzZXJ0IGEgdG9wLWxldmVsIHN0YXRlbWVudC4NCiAgICAg ICAgICAgICAgICAgICAgICAgYWN0ICAgKGJ1aWxkIGFjdGlvbiAoYnVpbGQg bGV4IH4oZ2V0ciBhY3Rpb24pKQ0KCQkJCSAgICBvYmplY3QgfihnZXRyIG9i amVjdCkpDQoJCSAgICAgICBwbGFjZSB+KGdldHIgaW5kb2JqZWN0KQ0KCQkg ICAgICAga25fY2F0ICJzdG9yeSIpKSANCiAgICAgICAgICAgIChhbmQgKG92 ZXJsYXAgbW9vZCAnZGVjbCkoZ2V0ciBwbGEpKG51bGxyIG5lYykoZ2V0ciBp bmRvYmplY3QpKSkNCiAgICAgICA7YnVpbGRzIHRoZSBhZ2VudC9hY3QtW2Fj dGlvbi9vYmplY3RdL2luIHJlcHJlc2VudGF0aW9uIGZvciBzZW50ZW5jZXMg d2l0aCB0aGUgcHJlcG9zaXRpb24gImluIiBhbmQgYW4gaW5kaXJlY3Qgb2Jq ZWN0Lg0KCTtyZW1vdmluZyBoZXJlIHRvby4NCiAgICAgICANCiAgICAgICAo cG9wICMhKChhZGQgb2JqZWN0IH4oZ2V0ciBhZ2VudCkgOyBBc3NlcnQgYSB0 b3AtbGV2ZWwgc3RhdGVtZW50Lg0KICAgICAgICAgICAgICAgICAgICAgICBs b2NhdGlvbiAoYnVpbGQgc3AtcmVsIChidWlsZCBsZXggfihnZXRyIHJlbCkp DQoJCQkJICAgICAgIG9iamVjdCB+KGdldHIgb2JqZWN0KSkNCgkJICAgICAg IGtuX2NhdCAic3RvcnkiKSkNCgkgICAgKGFuZCAob3ZlcmxhcCBtb29kICdk ZWNsKShudWxsciBwbGEpKGdldHIgbmVjKShudWxsciBpbmRvYmplY3QpKSkN CiAgICAgICA7YnVpbGRzIHRoZSBvYmplY3QvbG9jYXRpb24tW3NwLXJlbC9v YmplY3RdIHJlcHJlc2VudGF0aW9uIGZvciBzZW50ZW5jZXMgd2l0aCB0aGUg cHJlcG9zaXRpb24gIm5leHQgdG8iIG9yICJiZWhpbmQiLiANCiAgICAgICA7 IGFuZCBoZXJlDQoNCiAgICAgICAocG9wICMyISAoKGJ1aWxkIGFnZW50IH4o Z2V0ciBhZ2VudCkgOyBCdWlsZCBhbiBlbWJlZGRlZCBzdGF0ZW1lbnQuDQog ICAgICAgICAgICAgICAgICAgICAgIGFjdCAgIChidWlsZCBhY3Rpb24gKGJ1 aWxkIGxleCB+KGdldHIgYWN0aW9uKSkNCgkJCQkgICAgb2JqZWN0IH4oZ2V0 ciBvYmplY3QpKQ0KCQkgICAgICAga25fY2F0ICJzdG9yeSIpKQ0KICAgICAg ICAgICAgKGFuZCAoZ2V0ciBlbWJlZGRlZCkgKG92ZXJsYXAgbW9vZCAnZGVj bCkpDQoJICAgIChsaWZ0ciBwcm9wdHlwZSkpDQogDQogKHBvcCAjISAoKGRl ZHVjZSBhZ2VudCB+KGdldHIgYWdlbnQpIDsgYXZvIGludGVycm9nYXRpdmUN CiAgICAgIAkJICBhY3QgKGJ1aWxkIGFjdGlvbiAoYnVpbGQgbGV4IH4oZ2V0 ciBhY3Rpb24pKQ0KCQkJCSBvYmplY3QgfihnZXRyIG9iamVjdCkpDQoJCWtu X2NhdCAic3RvcnkiKSkNCiAgICAgIChhbmQgKG92ZXJsYXAgbW9vZCAncXVl c3Rpb24pDQoJICAgKG92ZXJsYXAgcHJvcHR5cGUgJ2F2bykpDQogICAgICAo bGlmdHIgcHJvcHR5cGUpKQ0KDQogKHBvcCAjISAoKGRlZHVjZSBhZ2VudCB+ KGdldHIgb2JqZWN0KSA7IHBhc3NpdmUgcXVlc3Rpb24NCgkJICBhY3QgKGJ1 aWxkIGFjdGlvbiAoYnVpbGQgbGV4IH4oZ2V0ciBhY3Rpb24pKQ0KCQkJICAg ICBvYmplY3QgfihnZXRyIGFnZW50KSkNCgkJa25fY2F0ICJzdG9yeSIpKQ0K ICAgICAgKGFuZCAob3ZlcmxhcCBtb29kICdxdWVzdGlvbikgICAgIA0KCSAg IChvdmVybGFwIHByb3B0eXBlICdwYXNzaXZlKSkgDQoJICAgIChsaWZ0ciBw cm9wdHlwZSkpDQoNCiAocG9wICMhICgoYWRkIGFnZW50IH4oZ2V0ciBvYmpl Y3QpIDsgcGFzc2l2ZQ0KCQkgIGFjdCAoYnVpbGQgYWN0aW9uIChidWlsZCBs ZXggfihnZXRyIGFjdGlvbikpDQoJCQkgICAgIG9iamVjdCB+KGdldHIgYWdl bnQpKQ0KCQlrbl9jYXQgInN0b3J5IikpDQogICAgICAgICAgICAob3Zlcmxh cCBwcm9wdHlwZSAncGFzc2l2ZSkgDQoJICAgIChsaWZ0ciBwcm9wdHlwZSkp DQogDQogKHBvcCAjISAoKGRlZHVjZSBvYmplY3QgfihnZXRyIGFnZW50KSA7 ICJpcyIgKyBhZGogaW50ZXJyb2dhdGl2ZQ0KCQkgICAgICAgcHJvcGVydHkg KGJ1aWxkIGxleCB+KGdldHIgb2JqZWN0KSkNCgkJa25fY2F0ICJzdG9yeSIp KQ0KCSAgICAoYW5kIChvdmVybGFwIG1vb2QgJ3F1ZXN0aW9uKQ0KCQkgKG92 ZXJsYXAgcHJvcHR5cGUgJ2lzYWRqKSkNCiAgICAgICAJICAgIChsaWZ0ciBw cm9wdHlwZSkpKQ0KIA0KOztpc2EgaW50ZXJyb2dhdGl2ZXMgd2lsbCBiZSBp bXBsZW1lbnRlZCBpbiB0aGUgZnV0dXJlLi4uLg0KDQoNCg0KDQoNCg0KDQo7 OzsgTm90aWNlIGluIGFsbCB0aHJlZSBhYm92ZSBhcmNzIHRoYXQgaWYgdGhl cmUgaXMgbm8gb2JqZWN0LA0KOzs7IChnZXRyIG9iamVjdCkgd2lsbCBldmFs dWF0ZSB0byBOSUwsDQo7OzsgYW5kIHRoZSBub2RlIHdpbGwgYmUgYnVpbHQg d2l0aG91dCBhbiBPQkpFQ1QgYXJjLg0KDQoobnAgKHdyZCAiZXZlcnkiIHQg KHNldHIgZ2VuZXJpYyB0KSAodG8gbnAvYXJ0KSkNCiAgICAod3JkICJ0aGF0 IiB0ICh0byBub21wcm9wKSkgICAgICAgIDsgYW4gZW1iZWRkZWQgcHJvcG9z aXRpb24NCg0KICAgICh3cmQgInMiIHQgKHRvIG5wKSkNCiAgICAoY2F0IGFy dCAoc2V0ciBkZWYgKGdldGYgZGVmKSkgKHRvIG5wL2FydCkpDQogICAgKGp1 bXAgbnAvYXJ0IHQpKQ0KDQoobnBwb3MgKHdyZCAiJyIgdCAoanVtcCBucGEp KSA7IHdoaWNoIG1lYW5zIHRoYXQgdGhlIG5vdW4gaXMgYSBwb3NzZXNzaXZl IG5vdW4NCiAgICAgICAoanVtcCBucC9uIHQpKQ0KDQoNCihucGEgKHdyZCAi JyIgdCAgDQoJKHNldHIgcG9zICd0KSAoc2V0ciBwb3Nzb3IgKGdldHIgaGVh ZCkpIChsaWZ0ciBwb3Nzb3IpIChsaWZ0ciBwb3MpICh0byBucCkpKQ0KDQoo bnAvYXJ0IChjYXQgYWRqIHQgKGFkZHIgcHJvcHMgKGJ1aWxkIGxleCAoIF4o Z2V0ciAqKSkpKQ0KCSAgICAgKHRvIG5wL2FydCkpDQoNCgkoY2F0IHByb24g KG92ZXJsYXAgKGdldGYgY2FzZSkgJ3JlZikNCiAJICAgICAoc2V0ciBoZWFk ICheKGdldHIgYWdlbnQpKSkgDQoJICAgICAoc2V0ciBudW0gKGdldGYgbnVt KSkNCgkgICAgIChzZXRyIGdlbmRlciAoZ2V0ZiBnZW5kZXIpKQkgICAgIA0K CSAgICAgKHNldHIgcHJvbl9jYXNlICdyZWYpDQoJICAgICAodG8gbnBwb3Mp KQ0KDQoJKGNhdCBwcm9uIChhbmQgDQoJCSAgIChvdmVybGFwIChnZXRmIGNh c2UpICdub20pIA0KCQkgICAob3ZlcmxhcCAoZ2V0ciBwcm9uX2Nhc2UpICdu b20pDQoJCSAgIChyZXNvbHZlLXByb24gKGdldGYgZ2VuZGVyKSAoZ2V0ZiBu dW0pICpmb2N1c2xpc3QqKSkNCgkgICAgIChzZXRyIGhlYWQgKHJlc29sdmUt cHJvbiAoZ2V0ZiBnZW5kZXIpIChnZXRmIG51bSkgKmZvY3VzbGlzdCopKQ0K CSAgICAgKHNldHIgbnVtIChnZXRmIG51bSkpDQoJICAgICAoc2V0ciBnZW5k ZXIgKGdldGYgZ2VuZGVyKSkJICAgICANCgkgICAgICh0byBucHBvcykpDQoN CgkoY2F0IHByb24gKGFuZCANCgkJICAgKG92ZXJsYXAgKGdldGYgY2FzZSkg J2FjYykgDQoJCSAgIChvdmVybGFwIChnZXRyIHByb25fY2FzZSkgJ2FjYykN CgkJICAgKHJlc29sdmUtYWNjdXNhdGl2ZSAoZ2V0ZiBnZW5kZXIpIChnZXRm IG51bSkgDQoJCQkJKF4oZ2V0ciBhZ2VudCkpICpmb2N1c2xpc3QqKSkNCgkg ICAgIChzZXRyIGhlYWQgKHJlc29sdmUtYWNjdXNhdGl2ZSAoZ2V0ZiBnZW5k ZXIpIChnZXRmIG51bSkgDQoJCQkJCSAgICAoXihnZXRyIGFnZW50KSkgKmZv Y3VzbGlzdCopKQ0KCSAgICAgKHNldHIgbnVtIChnZXRmIG51bSkpDQoJICAg ICAoc2V0ciBnZW5kZXIgKGdldGYgZ2VuZGVyKSkJICAgICANCgkgICAgICh0 byBucHBvcykpDQoNCgkNCgkNCgkoY2F0IG5wciAoZmluZCAob2JqZWN0LSBw cm9wZXJuYW1lIGxleCkgKF4gKGdldHIgKikpKQ0KCSAgICAgKHNldHIgaGVh ZCAoZmluZCAob2JqZWN0LSBwcm9wZXJuYW1lIGxleCkgKF4gKGdldHIgKikp KSkNCgkgICAgIChzZXRyIG51bSAoZ2V0ZiBudW0pKQ0KCSAgICAgKHNldHIg Z2VuZGVyIChnZXRmIGdlbmRlcikpDQoJICAgICAodG8gbnBwb3MpKQ0KDQoJ KGNhdCBucHIgKG51bGwgKGZpbmQgKG9iamVjdC0gcHJvcGVybmFtZSBsZXgp ICheIChnZXRyICopKSkpDQoJICAgICAoYXNzZXJ0IG9iamVjdCAoXCMgJ2Vu dGl0eSkNCgkgICAgICAgcHJvcGVybmFtZSAoXiAoZ2V0ciAqKSkpDQoJICAg ICAoc2V0ciBoZWFkICgqICdlbnRpdHkpKQ0KCSAgICAgKHNldHIgbnVtIChn ZXRmIG51bSkpDQoJICAgICAoc2V0ciBnZW5kZXIgKGdldGYgZ2VuZGVyKSkN CgkgICAgICh0byBucHBvcykpDQoJCQkJOyBhIG5wIG9mIHRoZSBmb3JtICJh e259IHthZGp9KiBuIiwgd2hlcmUgDQoJCQkJO3RoZSBuIGhhcyBuZXZlciBi ZWVuIG1lbnRpb25lZCBiZWZvcmUsDQoJCQkJO2FuZCB0aGUgc2VudGVuY2Ug aXMgZGVjbGFyYXRpdmUuCQ0KDQoJKGNhdCBuIChvdmVybGFwIChnZXRmIG51 bSkgJ3BsdXIpDQoJICAgICAoc2V0ciBoZWFkDQoJCSAgIChidWlsZCBsZXgg KF4oZ2V0ciAqKSkpKQ0KCSAgICAgKGxpZnRyIGdlbmVyaWMgdCk7O25vdCBx dWl0ZSByaWdodDogbm90IG5lY2Vzc2FyaWx5IGdlbmVyaWMgLSBkZXBlbmRz DQoJICAgICAgICAgICAgICAgICAgICAgIDs7b24gd2hldGhlciB0aGVyZSBp cyBhcnRpY2xlIG9yIG5vdA0KCSAgICAgKHNldHIgbnVtIChnZXRmIG51bSkp DQoJICAgICAoc2V0ciBnZW5kZXIgKGdldGYgZ2VuZGVyKSkNCgkgICAgICh0 byBucHBvcykpDQoJDQoJKGNhdCBuIChhbmQgKGRpc2pvaW50IGRlZiB0KSAo Z2V0ciBza29sZW0pIChudWxsciBnZW5lcmljKSkNCgkgICAgIChzZXRyIGhl YWQNCgkJICAgKGJ1aWxkIHNrZm4gKFwjICduZXdza2ZuKSBza2FyZyAoXiAo Z2V0ciBza29sZW0pKSkpDQoJICAgICAobGlmdHIgc2tyZXN0cg0KCQkgICAg KGJ1aWxkIG1lbWJlciAoXiAoZ2V0ciBoZWFkKSkNCgkJCSAgIGNsYXNzIChi dWlsZCBsZXggKF4gKGdldHIgKikpKSkpDQoJCQkJCQkgICAgIChzZXRyIGdl bmRlciAoZ2V0ZiBnZW5kZXIpKQ0KCSAgICAgKHRvIG5wcG9zKSkNCgkgICAg ICAgICAgICAgICAgICAgICAgICAgOyBub3Qgc3VyZSB0aGF0IHRoaXMgaXMg bmVlZGVkDQoJKGNhdCBuIChhbmQgKGRpc2pvaW50IGRlZiB0KSAob3Zlcmxh cCBtb29kICdkZWNsKShudWxsciBwb3Nzb3IpKSANCgkgICAgIChzZXRyIGhl YWQgDQoJCSAgIChmaW5kIG1lbWJlci0gDQoJCQkgICAoYXNzZXJ0IG1lbWJl ciAjaGQNCgkJCSAgICAgY2xhc3MgKGJ1aWxkIGxleCAoXiAoZ2V0ciAqKSkp KSkpDQoJICAgICAoc2V0ciBudW0gKGdldGYgbnVtKSkNCgkgICAgIChzZXRy IGdlbmRlciAoZ2V0ZiBnZW5kZXIpKQ0KCSAgICAgKHRvIG5wcG9zKSkNCgkg ICAgICAgICAgICAgICAgICAgICAgICA7IGFuIGluZGVmaW5pdGUgbnAgaW4g YSBxdWVzdGlvbg0KCQ0KCShjYXQgbiAoYW5kIChkaXNqb2ludCBkZWYgdCkg KG92ZXJsYXAgbW9vZCAnZGVjbCkoZ2V0ciBwb3Nzb3IpKG51bGxyIG9iamVj dCkpOyBhbiBpbmRlZmluaXRlIHBvc3Nlc3NpdmUgbnAuDQogICAgICAgICAg ICAgKHNldHIgaGVhZAkJCTsgQ3JlYXRlIGEgbmV3IHJlZmVyZW50Lg0KCQkg ICAjISgoZmluZCBvYmplY3QtDQoJCQkgICAgKGFzc2VydCBvYmplY3QgI2hl ZA0KCQkJICAgICAgcG9zc2Vzc29yIH4oZ2V0ciBwb3Nzb3IpDQoJCQkgICAg ICByZWwgKGJ1aWxkIGxleCB+KGdldHIgKikpKSkpKQ0KCSAgICAgIChzZXRy IG90aGVyDQoJCSAgICMhKChmaW5kIG1lbWJlci0NCgkJCSAgICAoYXNzZXJ0 IG1lbWJlciB+IChnZXRyIGhlYWQpDQoJCQkJICAgIGNsYXNzIChidWlsZCBs ZXggfihnZXRyICopKSkpKSkgDQoJICAgICAodG8gbnBwb3MpKQ0KCQ0KCShj YXQgbiAoYW5kIChkaXNqb2ludCBkZWYgdCkgKG92ZXJsYXAgbW9vZCAncXVl c3Rpb24pKSANCgkgICAgIChzZXRyIGhlYWQgKCogJ3gpKQ0KCSAgICAgKHRv IG5wcG9zKSkNCgkJCQk7IGEgbnAgb2YgdGhlIGZvcm0gInRoZSBhZGogbiIs IHdoZXJlDQoJCQkJOyB0aGUgbiBoYXMgYmVlbiBtZW50aW9uZWQgYmVmb3Jl DQoJCQkJOyBob3BlZnVsbHksIHdpbGwgc29vbiBiZSAidGhlIGFkaiogbiIN CgkJCQk7IGkuZS4gd2UnbGwgY29sbGFwc2UgdGhpcyBhbmQgdGhlIG5leHQN CgkJCQk7IGNhdCBpbnRvIG9uZS4NCgkoY2F0IG4gKGFuZCAoZ2V0ciBkZWYp IA0KCQkgICAgKGZpbmQgbWVtYmVyLSANCgkJCSAgKGZpbmQgY2xhc3MgKGZp bmQgbGV4ICheIChnZXRyICopKSkpKQ0KCQkgICAgKGdldHIgcHJvcHMpKQ0K CSAgICAgKHNldHIgaGVhZA0KCQkgICAoZmluZCBtZW1iZXItDQoJCQkgICAg KGRlZHVjZSBtZW1iZXIgKCogJ21lbSkNCgkJCQkgICAgY2xhc3MgKGJ1aWxk IGxleCAoXiAoZ2V0ciAqKSkpKQ0KCQkJICAgIG9iamVjdC0NCgkJCSAgICAo ZGVkdWNlIG9iamVjdCAoKiAncHJvcHR5KQ0KCQkJCSAgICBwcm9wZXJ0eSAo XiAoZ2V0ciBwcm9wcykpKSkpDQoJICAgICAoc2V0ciBudW0gKGdldGYgbnVt KSkNCgkgICAgIChzZXRyIGdlbmRlciAoZ2V0ZiBnZW5kZXIpKQ0KCSAgICAg KHRvIG5wcG9zKSkNCgkNCgkJCQk7IGEgbnAgb2YgdGhlIGZvcm0gInRoZSBu Iiwgd2hlcmUNCgkJCQk7IHRoZSBuIGhhcyBiZWVuIG1lbnRpb25lZCBiZWZv cmUNCgkoY2F0IG4gKG92ZXJsYXAgZGVmIHQpDQoJCShzZXRyIGhlYWQNCgkJ ICAgIyEoKGZpbmQgbWVtYmVyLQ0KCQkJICAgIChkZWR1Y2UgbWVtYmVyICp4 DQoJCQkJICAgIGNsYXNzIChidWlsZCBsZXggfihnZXRyICopKSkpKSkNCgkg ICAgIChzZXRyIG51bSAoZ2V0ZiBudW0pKQ0KCSAgICAgKHNldHIgZ2VuZGVy IChnZXRmIGdlbmRlcikpDQoJICAgICAodG8gbnBwb3MpKQ0KCQ0KCQkJCTsg YSBucCBvZiB0aGUgZm9ybSAidGhlIHthZGp9KiBuIiwgd2hlcmUNCgkJCQk7 IHRoZSBuIGlzIGJhc2ljIGFuZCBoYXMgbmV2ZXIgYmVlbg0KCQkJCTsgbWVu dGlvbmVkIGJlZm9yZQ0KCShjYXQgbiAoYW5kIChnZXRyIGRlZikgKGdldGYg YmFzaWMpKQ0KCSAgICAgKHNldHIgaGVhZA0KCQkgIChhc3NlcnQgbGV4IChe KGdldHIgKikpKSkNCgkgICAgIChsaWZ0ciBnZW5lcmljIHQpDQoJICAgICAo c2V0ciBudW0gJ3BsdXIpDQoJICAgICAoc2V0ciBnZW5kZXIgKGdldGYgZ2Vu ZGVyKSkNCgkgICAgICh0byBucHBvcykpCTsgY2FuJ3QgYWRkIGFkaidzIHRv IHRoZXNlIGZvciBub3cNCg0KCShjYXQgbiAoYW5kIChnZXRyIGdlbmVyaWMp IChnZXRmIGJhc2ljKSkNCgkgICAgICgkICdhbnlkb2cpDQoJICAgICAobGlm dHIgcmVzdHINCgkJICAgIChidWlsZCBtZW1iZXIgKCogJ2FueWRvZykNCgkJ CSAgIGNsYXNzIChidWlsZCBsZXggKF4gKGdldHIgKikpKSkpDQoJICAgICAo c2V0ciBoZWFkICgqICdhbnlkb2cpKQ0KCSAgICAgKHNldHIgZ2VuZGVyIChn ZXRmIGdlbmRlcikpDQoJICAgICAodG8gbnBwb3MpKSkNCg0KDQoobm9tcHJv cCAocHVzaCBwcyB0IDsgUmV0dXJuIHRoZSBwYXJzZSBvZiBlbWJlZGRlZCBz ZW50ZW5jZS4NCiAgICAgICAgICAgICAgIChzZW5kciBlbWJlZGRlZCB0KSAo c2V0ciBoZWFkICopIChsaWZ0ciBtb29kKShsaWZ0ciBtb2QpKHRvIG5wL2Vu ZCkpKQ0KDQoobi9yZWYgKGp1bXAgbnAvZW5kIGhlYWQpDQogICAgICAgKGp1 bXAgbnAvZW5kIChudWxsciBoZWFkKQ0KCSAgICAgKGxpZnRyIGdlbmVyaWMg dCkNCgkgICAgIChzZXRyIGhlYWQgKGFzc2VydCBsZXggKF4gKGdldHIgY2xh c3MpKSkpKSkNCg0KKG5wL24gKGp1bXAgbnAvZW5kIHByb3BzDQoJICAgIChh c3NlcnQgb2JqZWN0ICheIChnZXRyIGhlYWQpKSBwcm9wZXJ0eSAoXiAoZ2V0 ciBwcm9wcykpKSkNCiAgICAgIChqdW1wIG5wL2VuZCAobnVsbHIgb2JqZWN0 KQ0KCQkoc2V0ZiAqZm9jdXNsaXN0KiAodXBkYXRlICheIChnZXRyIGhlYWQp KSAoXiAoZ2V0ciBnZW5kZXIpKSAoXiAoZ2V0ciBudW0pKSAgKF4gKGdldHIg cHJvbl9jYXNlKSkgKmZvY3VzbGlzdCopKSkNCiAgICAgIChqdW1wIG5wL2Vu ZCB0KSkNCg0KDQoobnAvZW5kIA0KIChwb3AgaGVhZCB0DQogICAgICAobGlm dHIgbnVtKSkpDQoJDQoNCiAgIA0KDQo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 DQo7OzsgR2VuZXJhdGlvbiBTZWN0aW9uDQo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7DQoNCg0KKHJlc3BvbmQgKHdyZCAnZHVtbXkgdCAodG8gZmx1c2gpKQ0K CSAoY2FsbCBncyAqIChhbmQgKGdldHIgKikgKG92ZXJsYXAgbW9vZCAnZGVj bCkpDQoJICAgICAgIChzZXRyIGNvbmogImFuZCIpDQogICAgICAgICAgICAg ICAoc2F5ICJJIHVuZGVyc3RhbmQgdGhhdCIpIDsgQ2FubmVkIGJlZ2lubmlu ZyBvZiBlY2hvDQoJICAgICAgICogKHRvIHJlc3AvZW5kKSkJICAgICAgICAg OyBvZiBzdGF0ZW1lbnQuIA0KCSAod3JkICdGQUlMIHQJCTsgUXVlc3Rpb24g bm90IGFuc3dlcmVkLg0KCSAgICAgIChzYXkgIkkgZG9uJ3Qga25vdyIpICh0 byByZXNwL2VuZCkpDQogICAgICAgICAoY2FsbCBncyAqIChhbmQgKGdldHIg KikNCgkJCSAob3ZlcmxhcCBxdHlwZSAndGYpDQoJCQkgKG92ZXJsYXAgKGdl dGEgbWF4KSAwKSkNCgkJCQk7IEFuc3dlciBObyB0byBUL0YgcXVlc3Rpb24u DQoJICAgICAgIChzYXkgIk5vLCIpIChzZW5kciBjb25qICJhbmQiKQ0KCSAg ICAgICAqICh0byByZXNwL2VuZCkpDQoJIChjYWxsIGdzICogKGFuZCAoZ2V0 ciAqKQ0KCQkJKG92ZXJsYXAgcXR5cGUgJ3RmKSkNCgkJCQk7IEFuc3dlciBZ ZXMgdG8gVC9GIHF1ZXN0aW9uLg0KCSAgICAgICAoc2F5ICJZZXMsIikgKHNl bmRyIGNvbmogImFuZCIpDQoJICAgICAgICogKHRvIHJlc3AvZW5kKSkNCgkg KGNhbGwgZ3MgKiAoYW5kIChnZXRyICopDQoJCQkob3ZlcmxhcCBtb29kICco cXVlc3Rpb24gI3xpbXBlcnwjKSkpDQoJCQkJOyBBbnN3ZXIgb2YgcXVlc3Rp b24gb3IgcmVwb3J0IG9mDQoJCQkJOyBkb2luZyBjb21tYW5kLg0KCSAgICAg ICAoc2VuZHIgY29uaiAiYW5kIikgKiAodG8gcmVzcC9lbmQpKQ0KCSAodG8g KHJlc3AvZW5kKSAob3ZlcmxhcCBtb29kICdpbXBlcikpDQoJIChqdW1wIHJl c3AvZW5kIChudWxsciAqKSkNCgkgKHRvIChmbHVzaCkgdCAjISgoZGVzY3Jp YmUgfihnZXRyICopKSkpKQ0KDQoocmVzcC9lbmQgKHBvcCBuaWwgdCAoc2F5 ICIuIikpKQ0KDQooZyA7OyBGb3IgdXNlIGJ5IFNVUkZBQ0UNCiAocHVzaCBn cyB0IChzZW5kciBjb25qICJhbmQiKSAodG8gcmVzcC9lbmQpKQ0KIChqdW1w IGcvc3ViaiAoZ2V0YSBhY3Rpb24pIChzZXRyIHBlcnNvbiAncDEpKQ0KIChw dXNoIGdjYXQgKGdldGEgY2xhc3Ntb2QpIChzZW5kciBudW0gJ3BsdXIpICh0 byBnL2VuZCkpDQogKHB1c2ggZ25wIHQgKHNlbmRyIGNhc2UgJ29iaikgKHRv IGcvZW5kKSkpDQoNCihncyAoY2FsbCBncyAoZ2V0YSBldmVudCkgKGdldGEg ZXZlbnQpDQoJICAoc2VuZHIgdGVuc2UgKGZpcnN0ICh0ZW5zZS1hbmQtYXNw ZWN0IChnZXRhIHRpbWUpKSkpDQoJICAoc2VuZHIgYXNwZWN0IChzZWNvbmQg KHRlbnNlLWFuZC1hc3BlY3QgKGdldGEgdGltZSkpKSkNCgkgIChzZW5kciBt b29kKSAoc2V0ciBxdHlwZSkgKHNlbmRyIGNvbmopDQoJICAqICh0byBnL2Vu ZCkpDQogICAgDQogICAgKGp1bXAgZ3MgKGFuZCAobnVsbHIgZGlyKSAoZ2V0 YSBkaXJlY3Rpb24pKSAoc2V0ciBkaXIgJ2RpcmVjKSkNCiAgICAoanVtcCBn cyAoYW5kIChudWxsciBwbGEpIChnZXRhIHBsYWNlKSkgKHNldHIgcGxhICdw bGFjaykpDQogICAgKGp1bXAgZ3MgKGFuZCAobnVsbHIgaW50d28pIChnZXRh IGludG8pKSAoc2V0ciBpbnR3byAnaW50d28pKQ0KICAgIChqdW1wIGdzIChh bmQgKG51bGxyIHR3bykgKGdldGEgdG8pKSAoc2V0ciB0d28gJ3R3bykpDQoJ ICANCiAgICAocmNhbGwgZ25wIChnZXRhIGFnZW50KSAoZ2V0YSBhZ2VudCkg OyBHZW5lcmF0ZSB0aGUgYWdlbnQgYXMgYW4gbnAuDQoJICAgKHNlbmRyIGNh c2UgJ25vbSkgcmVnIChzZXRyIHRlcyAqKSAodG8gZy9zdWJqIChnZXRhIGFj dCkpKQ0KICAgIChyY2FsbCBnbnAgKGdldGEgb2JqZWN0KSAoYW5kIChnZXRh IG9iamVjdCkgKGdldGEgbG9jYXRpb24pKQ0KCSAgIChzZW5kciBjYXNlICdu b20pIHJlZyAodG8gZ2xvYyAoZ2V0YSBsb2NhdGlvbikpKQ0KICAgIChyY2Fs bCBnZXF1aXYgKGdldGEgZXF1aXYpIChnZXRhIGVxdWl2KSA7IEVxdWl2IHBy b3Bvc2l0aW9uLg0KCSAgIHJlZyAodG8gZy9lbmQpKQ0KICAgIChyY2FsbCBn bnAgKGdldGEgbWVtYmVyKSAoZ2V0YSBtZW1iZXIpIDsgR2VuZXJhdGUgdGhl IG1lbWJlciBhcyBhbiBucC4NCgkgICAoc2VuZHIgdG9wY2wgKGdldGEgY2xh c3MpKSAoc2VuZHIgY2FzZSAnbm9tKSAoc2V0ciBudW0gJ3NpbmcpIHJlZw0K CSAgIChqdW1wIGcvbWVtYmVyKSkNCiAgICAocmNhbGwgZ2NhdCAoZ2V0YSBz dWJjbGFzcykgKGdldGEgc3ViY2xhc3MpIDsgc3ViY2xzIGFyZSBzdXBlcmNs cw0KCSAgIChzZW5kciBudW0gJ3BsKSByZWcNCgkgICAoanVtcCBnc3Vic3Vw KSkNCiAgICAocmNhbGwgZ25wIChnZXRhIG9iamVjdCkgKGFuZCAoZ2V0YSBv YmplY3QpIChnZXRhIHByb3BlcnR5KSkNCgkgICAoc2VuZHIgY2FzZSAnbm9t KSAoc2V0ciBudW0gJ3NpbmcpIHJlZyAodG8gZ3Byb3AgKGdldGEgcHJvcGVy dHkpKSkNCiAgICAoY2FsbCBnY2F0IChnZXRhIGNsYXNzKSAoZ2V0YSBtZW1i ZXIpIDsgR2VuZXJhdGUgIlRoZXJlIGlzIGEgPGNsPi4iDQoJICAoc2F5ICco InRoZXJlIiAiaXMiICJhIikpDQoJICAoc2VuZHIgY2FzZSAnbm9tKSAoc2V0 ciBudW0gJ3NpbmcpIHJlZw0KCSAgKHRvIGcvZW5kKSkNCiAgICAocmNhbGwg Z25wIChnZXRhIGFyZzEpIChnZXRhIGFyZzEpIDsgYXJnMSByZWwgYXJnMg0K CSAgIChzZW5kciBjYXNlICdub20pIHJlZyAoanVtcCBnL2FyZzEpKQ0KICAg IChyY2FsbCBnbnAgKGdldGEgcG9zc2Vzc29yKQkJOyBwJ3MgcmVsIGlzIG9i ag0KCSAgIChhbmQgKGdldGEgcG9zc2Vzc29yKSAobnVsbHIgZW1iZWRkZWQp KQ0KCSAgIChzZW5kciBjYXNlICdub20pDQoJICAgKHNlbmRyIHBvc3MgdCkN CgkgICByZWcgKGp1bXAgZ3Bvc3MvcCkpDQogICAgKHJjYWxsIGducCAoZ2V0 YSBwb3NzZXNzb3IpIDsgcCBoYXMgYSByZWwNCgkgICAoYW5kIChnZXRhIHBv c3Nlc3NvcikgKGdldHIgZW1iZWRkZWQpKQ0KCSAgIChzZW5kciBjYXNlICdu b20pDQoJICAgcmVnIChqdW1wIGdwb3NzL3ApKQ0KICAgIChjYWxsIGdzIChn ZXRhIGNxKSAoZ2V0YSBjcSkNCgkgIChzZW5kciBjb25qICJhbmQiKSAqICh0 byBnL2VuZCkpDQogICAgKGNhbGwgZ3MgKGdldGEgYXJnKSAob3ZlcmxhcCAo Z2V0YSBtYXgpIDEpDQoJICAoc2VuZHIgY29uaiAib3IiKSAqICh0byBnL2Vu ZCkpDQogICAgKHJjYWxsIGdzIChnZXRhIGFyZykgKG92ZXJsYXAgKGdldGEg bWF4KSAwKSAoc2VuZHIgbmVnICduZWcpIHJlZw0KCSAgICh0byBnL2VuZCkp DQogICAgKHJjYWxsIGcvc3ViaiAoZ2V0YSBhY3QpIChnZXRhIGFjdCkJOyBU byA8YWN0PiA8cGxhbj4uDQoJICAgKHNldHIgcGVyc29uICdwMSkgKHNlbmRy IHBlcnNvbiAncDEpDQoJICAgKHNheSAidG8iKSByZWcgKHRvIGcvc3ViaiAo Z2V0YSBwbGFuKSkpDQogICAgKQ0KDQooZ3Bvc3MvcCAocmNhbGwgZ2NhdCAo Z2V0YSByZWwpIChudWxsciBlbWJlZGRlZCkNCgkJKHNlbmRyIGNhc2UgJ25v bSkgKHNlbmRyIG51bSAnc2luZykgcmVnDQoJCShzYXkgImlzIikgKGp1bXAg Z3Bvc3MvcmVsKSkNCgkgKHJjYWxsIGdjYXQgKGdldGEgcmVsKSBlbWJlZGRl ZA0KCQkoc2F5ICh2ZXJiaXplIChnZXRyIHBlcnNvbikgKGdldHIgdGVuc2Up IChnZXRyIGFzcGVjdCkNCgkJCSAgICAgIChnZXRyIG5lZykgImhhcyIpKSAo c2F5ICJhIikNCgkJKHNlbmRyIGNhc2UgJ25vbSkgKHNlbmRyIG51bSAnc2lu ZykgcmVnDQoJCSh0byBnL2VuZCkNCgkJKSkNCg0KKGdwb3NzL3JlbCAocmNh bGwgZ25wIChnZXRhIG9iamVjdCkgKGdldGEgb2JqZWN0KQ0KCQkgIChzZW5k ciBjYXNlICdub20pIHJlZyAodG8gZy9lbmQpKSkNCgkgIA0KKGdlcXVpdiAo cHVzaCBnbnAgdCAoc2VuZHIgY2FzZSAnbm9tKSAoc2VuZHIgbG9jYWxkZXNj ciB0KSAodG8gZ2VxdWl2cmVzdCkpKQ0KDQooZ2VxdWl2cmVzdCAoY2FsbCBn bnAgKiAqIChzYXkgKHZlcmJpemUgKGdldHIgcGVyc29uKSAoZ2V0ciBuZWcp ICJiZSIpKSANCgkJICAoc2VuZHIgY2FzZSAnbm9tKSAoc2VuZHIgbG9jYWxk ZXNjciB0KSByZWcgKHRvIGdlcXVpdmVuZCkpKQ0KDQooZ2VxdWl2ZW5kIChq dW1wIGdlcXVpdnJlc3QgKiAoc2F5ICJhbmQiKSkNCgkgICAocG9wIG5pbCB0 KSkNCg0KKGdzdWJzdXAgKHJjYWxsIGdjYXQgKGdldGEgc3VwZXJjbGFzcykg KGdldGEgc3VwZXJjbGFzcykNCgkJKHNheSBgKCxAKHZlcmJpemUgJ3BsdXIg KGdldHIgbmVnKSAiYmUiKSkpDQoJCShzZW5kciBudW0gJ3BsKQ0KCQlyZWcg KHRvIGcvZW5kKSkpDQoNCihnL21lbWJlciAocmNhbGwgZ2RlZmNhdCAoZ2V0 YSBjbGFzcykgDQoJCSAoYW5kIChnZXRhIGNsYXNzKSAoc25lcHM6aXNhc3Nl cnQubiAoZ2V0ciAqKSkpDQoJCSAoc2F5IGAoLEAodmVyYml6ZSAoZ2V0ciBw ZXJzb24pIChnZXRyIG5lZykgKGdldHIgbnVtKSAiYmUiKSkpDQoJCSByZWcg KHRvIGcvZW5kKSkNCgkgIChyY2FsbCBnY2F0IChnZXRhIGNsYXNzKQ0KCQkg KGFuZCAoZ2V0YSBjbGFzcykgKG5vdCAoc25lcHM6aXNhc3NlcnQubiAoZ2V0 ciAqKSkpKQ0KCQkgKHNheSBgKCxAKHZlcmJpemUgKGdldHIgcGVyc29uKSAo Z2V0ciBuZWcpIChnZXRyIG51bSkNCgkJCQkgICAiYmUiKSkpDQoJCSAoc2F5 ICJhIikNCgkJIHJlZyAodG8gZy9lbmQpKSkNCg0KKGdwcm9wICh0byAoZy9l bmQpIHQNCgkgICAoc2F5IGAoLEAodmVyYml6ZSAoZ2V0ciBwZXJzb24pIChn ZXRyIG5lZykgKGdldHIgbnVtKQ0KCQkJICAgICAiYmUiKSkpDQoJICAgKHNh eSAoZ2V0YSBsZXgpKSkpDQoNCihnbG9jIChqdW1wIGdsb2MyIChnZXRhIGxl eCAoZ2V0YSBzcC1yZWwpKQ0KCSAgICAoc2F5ICJpcyIpDQoJICAgIChzYXkg KGdldGEgbGV4IChnZXRhIHNwLXJlbCkpKSkpDQoNCihnbG9jMiAocmNhbGwg Z25wIChnZXRhIG9iamVjdCkgKGdldGEgb2JqZWN0KQ0KCSAgICAgIChzZW5k ciBjYXNlICdvYmopIHJlZyAodG8gZy9lbmQpKSkNCiANCg0KKGcvYXJnMSAo cmNhbGwgZ25wIChnZXRhIGFyZzIpIChnZXRhIGFyZzIpDQoJICAgICAgIChz YXkgYCgsQCh2ZXJiaXplIChnZXRyIHBlcnNvbikgKGdldHIgbmVnKSAoZ2V0 ciBudW0pDQoJCQkJIChnZXRyIHRlbnNlKSAjfChnZXRyIGFzcGVjdCl8Iw0K CQkJCSAiYmUiKSkpDQoJICAgICAgIChzYXkgKGdldGEgbGV4IChnZXRhIHJl bCkpKQ0KCSAgICAgICByZWcgKHRvIGcvZW5kKSkpDQoNCihnL3NxY2UgKHJj YWxsIGcvc3ViaiAoZ2V0YSBvYmplY3QxKSB0ICAoc2VuZHIgcGVyc29uKSBy ZWcgKGp1bXAgZy9zcWNlMikpKQ0KDQooZy9zcWNlMiAocmNhbGwgZy9zdWJq IChnZXRhIG9iamVjdDIpIHQgDQoJCSh1dHRlciAiYW5kIHRoZW4iIDpmbHVz aCA6YmVmb3JlKSAoc2VuZHIgcGVyc29uKQ0KCQk7Oyhmb3JtYXQgc25lcHM6 b3V0dW5pdCAifiZhbmQgdGhlbiIpDQoJCXJlZyAodG8gZy9lbmQpKSkNCg0K KGcvc3ViagkJCQk7ICogaXMgYW4gYWN0IG5vZGUNCiAoanVtcCBnL3NxY2UN CiAgICAgICAob3ZlcmxhcCAoZ2V0YSBhY3Rpb24pIChzbmVwczpub2RlICdz bnNlcXVlbmNlKSkpDQogKGp1bXAgZy92IA0KICAgICAgIChhbmQgKGdldGEg YWN0aW9uKQ0KCSAgICAob3ZlcmxhcCAoZ2V0YSBhY3Rpb24pICMyISgoYnVp bGQgbGV4ICJnbyIpKSkNCgkgICAgKG92ZXJsYXAgKGdldGEgfHRvfCkgKCog J1lvdSkpKQ0KICAgICAgIChzYXkgImNhbWUiKSkJCQk7IEZvciB0aGlzIGV4 YW1wbGUsIGFsd2F5cyB1c2UgcGFzdCB0ZW5zZS4NCiAoanVtcCBnL3YgKGFu ZCAoZ2V0ciBtb2QpIChnZXRhIGxleCAoZ2V0YSBhY3Rpb24pKSkNCiAgICAg ICAoc2F5ICh2ZXJiaXplIChnZXRyIHBlcnNvbikgKGdldHIgdGVuc2UpIChn ZXRyIGFzcGVjdCkgKGdldHIgbmVnKQ0KCQkgICAgICJtdXN0IiAoZmlyc3Qg KGdldGEgbGV4IChnZXRhIGFjdGlvbikpKSkpKQ0KIChqdW1wIGcvdiAoZ2V0 YSBsZXggKGdldGEgYWN0aW9uKSkNCiAgICAgICAoc2F5ICh2ZXJiaXplIChn ZXRyIHBlcnNvbikgKGdldHIgdGVuc2UpIChnZXRyIGFzcGVjdCkgKGdldHIg bmVnKQ0KCQkgICAgIChmaXJzdCAoZ2V0YSBsZXggKGdldGEgYWN0aW9uKSkp KSkpDQogKGp1bXAgZy92IChnZXRhIGFjdGlvbikJCTsgVXNlIG5vZGUgaWQg YXMgdmVyYg0KICAgICAgIChzYXkgKHZlcmJpemUgKGdldHIgcGVyc29uKSAo Z2V0ciB0ZW5zZSkgKGdldHIgYXNwZWN0KSAoZ2V0ciBuZWcpDQoJCSAgICAg KHN0cmluZy1kb3duY2FzZQ0KCQkgICAgICAoZm9ybWF0IG5pbCAifkEiIChm aXJzdCAoZ2V0YSBhY3Rpb24pKSkpKSkpKQ0KDQoNCg0KDQooZy92CQkJCTsg KiBpcyBhbiBhY3Qgbm9kZQ0KIChyY2FsbCBnbnAgKGdldGEgb2JqZWN0KQk7 IEdlbmVyYXRlIHRoZSBvYmplY3QuDQoJKGFuZCAoZ2V0YSBvYmplY3QpICAg ICAgOyBleGFtcGxlIHBzeWNob2xvZ2ljYWwgdmVyYg0KCSAgICAgKG92ZXJs YXAgKGdldGEgYWN0aW9uKSAjMiEoKGJ1aWxkIGxleCAic2VlIikpKSkNCgko c2VuZHIgY2FzZSAnb2JqKSAoc2VuZHIgbG9jYWxkZXNjciB0KSByZWcgKGp1 bXAgZy9vYmopKQ0KIChyY2FsbCBnbnAgKGdldGEgb2JqZWN0KSAoZ2V0YSBv YmplY3QpIDsgR2VuZXJhdGUgdGhlIG9iamVjdC4NCgkoc2VuZHIgY2FzZSAn b2JqKSByZWcgKGp1bXAgZy9vYmopKQ0KIChyY2FsbCBnbnAgKGdldGEgb2Jq ZWN0MSkgKGdldGEgb2JqZWN0MSkgOyBHZW5lcmF0ZSB0aGUgb2JqZWN0IGlm IG9iamVjdDEuDQoJKHNlbmRyIGNhc2UgJ29iaikgcmVnIChqdW1wIGcvb2Jq KSkNCiAodG8gKGcvb2JqIChnZXRyIHRlcykpIHQpDQogKGp1bXAgZy9vYmog KG5vdCAob3IgKGdldGEgb2JqZWN0KSAoZ2V0YSBvYmplY3QxKSkpKSkgOyBO byBvYmplY3QuDQoNCg0KDQoNCg0KDQoNCihnL29iagkJCQkJOyAqIGlzIGFu IGFjdCBub2RlDQogKHJjYWxsIGducCAoZ2V0YSB8dG98KSAoYW5kIChnZXRh IHx0b3wpIDsgRS5nLiAiZ28gbGVmdCINCgkJCSAgICAgIyEoKGZpbmRhc3Nl cnQgbWVtYmVyIH4oZ2V0YSB8dG98KQ0KCQkJCSAoY2xhc3MgbGV4KSAiZGly ZWN0aW9uIikpKQ0KCShzZW5kciBjYXNlICdvYmopIHJlZyAodG8gZy9lbmQp KQ0KIChyY2FsbCBnbnAgKGdldGEgfHRvfCkgKGdldGEgfHRvfCkgOyBHZW5l cmF0ZSB0aGUgUFAuDQoJKHNlbmRyIGNhc2UgJ29iaikgKHNheSAidG8iKSBy ZWcgKHRvIGcvZW5kKSkNCiAocmNhbGwgZ25wIChnZXRhIHxkaXJlY3Rpb258 KSAoZ2V0YSB8ZGlyZWN0aW9ufCkgOyBHZW5lcmF0ZSB0aGUgUFAuDQoJKHNl bmRyIGNhc2UgJ29iaikgKHNheSAiYXQiKSByZWcgKHRvIGcvZW5kKSkNCiAo cmNhbGwgZ25wIChnZXRhIHxpbnRvfCkgKGdldGEgfGludG98KSA7IEdlbmVy YXRlIHRoZSBQUC4NCgkoc2VuZHIgY2FzZSAnb2JqKSAoc2F5ICJpbnRvIikg cmVnICh0byBnL2VuZCkpDQogKHJjYWxsIGducCAoZ2V0YSB8cGxhY2V8KSAo Z2V0YSB8cGxhY2V8KSA7IEdlbmVyYXRlIHRoZSBQUC4NCgkoc2VuZHIgY2Fz ZSAnb2JqKSAoc2F5ICJpbiIpIHJlZyAodG8gZy9lbmQpKSANCg0KIChqdW1w IGcvZW5kIChvciAoZ2V0ciBwbGEpIChnZXRyIHR3bykgKGdldHIgaW50d28p IChnZXRyIGRpcikpKQ0KIA0KICh0byAoZy9lbmQpIHQpKQkJCQk7IE5vIFBQ DQoNCg0KKGcvZW5kICh0byAoZy9vYmogKGdldHIgdGVzKSkgKG9yIChnZXRy IHBsYSkgKGdldHIgdHdvKSAoZ2V0ciBpbnR3bykgKGdldHIgZGlyKSkgKHNl dHIgKiAoZ2V0ciB0ZXMpKSkgDQoNCiAgICAgICAoanVtcCBncyAqDQoJICAg ICAod2hlbiAoZ2V0ciBjb25qKSAodXR0ZXIgKGdldHIgY29uaikgOmZsdXNo IDpiZWZvcmUpKQ0KCSAgICAgOzsoZm9ybWF0IHNuZXBzOm91dHVuaXQgIn4m fkF+JSIgKGdldHIgY29uaikpDQoJICAgICApDQogICAgICAgKHBvcCBuaWwg dCkpDQoNCg0KDQoNCg0KDQoNCihnbnAgKGp1bXAgZ25wIA0KCSAoYW5kIChu dWxsciBhZGpkZXNjcikNCgkgICAgICAjISgoZmluZCAoY29tcG9zZSBwcm9w ZXJ0eS0gISBvYmplY3QNCgkJCQkoa3N0YXIgKGNvbXBvc2UgZXF1aXYtICEg ZXF1aXYpKSkNCgkJICAgICAgIH4oZ2V0ciAqKSkpKQ0KICAgICAgICAgKHNl dHIgYWRqIChnZXRhIGxleCAjISgoZmluZCAoY29tcG9zZSBwcm9wZXJ0eS0g ISBvYmplY3QNCgkJCQkgKGtzdGFyIChjb21wb3NlIGVxdWl2LSAhIGVxdWl2 KSkpDQoJCQkgICAgfihnZXRyICopKSkpKQ0KCSAoc2V0ciBhZGpkZXNjciAn ZG9uZSkpCQk7IHN0b3JlIGFuIGFkamVjdGl2ZQ0KDQogICAgICh0byAoZ25w IChnZXRhIG9iamVjdCkpIA0KCSAoZ2V0YSBtb2RlKSANCgkgKHNldHIgbW9k IChnZXRhIG1vZGUpKSAobGlmdHIgbW9kKSAoc2VuZHIgbW9kKSkNCiAgICAg DQogICAgICh0byAoZ25wL2VuZCkgKGFuZCAoZ2V0ciBsb2NhbGRlc2NyKSAo b3ZlcmxhcCAqICgqICdJKSkNCgkJCShvdmVybGFwIGNhc2UgJ25vbSkpDQoJ IChsaWZ0ciBwZXJzb24gJ3AxKSAoc2F5biAiSSIpKQ0KICAgICAodG8gKGdu cC9lbmQpIChhbmQgKG51bGxyIGxvY2FsZGVzY3IpIChvdmVybGFwIGNhc2Ug J25vbSkNCgkJCShvdmVybGFwICMhKChmaW5kIChrc3RhciAoY29tcG9zZSAo ZXF1aXYtICEgZXF1aXYpKSkNCgkJCQkJICB+KGdldHIgKikpKSAoKiAnSSkp KQ0KCSAobGlmdHIgcGVyc29uICdwMSkgKHNheW4gIkkiKSkNCiAgICAgKHRv IChnbnAvZW5kKSAoYW5kIChnZXRyIGxvY2FsZGVzY3IpIChvdmVybGFwICog KCogJ0kpKQ0KCQkJKG92ZXJsYXAgY2FzZSAnb2JqKSkNCgkgKGxpZnRyIHBl cnNvbiAncDEpIChzYXluICJtZSIpKQ0KICAgICAodG8gKGducC9lbmQpIChh bmQgKG51bGxyIGxvY2FsZGVzY3IpIChvdmVybGFwIGNhc2UgJ29iaikNCgkJ CShvdmVybGFwICMhKChmaW5kIChrc3RhciAoY29tcG9zZSAoZXF1aXYtICEg ZXF1aXYpKSkNCgkJCQkJICB+KGdldHIgKikpKSAoKiAnSSkpKQ0KCSAobGlm dHIgcGVyc29uICdwMSkgKHNheW4gIm1lIikpDQogICAgICh0byAoZ25wL2Vu ZCkNCgkgKGFuZCAobnVsbHIgbG9jYWxkZXNjcikNCgkgICAgICAob3Zlcmxh cCAqICMhKChmaW5kIChrc3RhciAoY29tcG9zZSBlcXVpdi0gISBlcXVpdikp ICpZb3UpKSkpDQoJIChzYXluICJ5b3UiKSAoYWRkTmFtZSAoZ2V0ciAqKSB0 KQ0KCSAobGlmdHIgcGVyc29uICdwMikgKGxpZnRyIG51bSAncGx1cikpDQog ICAgICh0byAoZ25wL2VuZCkNCgkgKGFuZCAoZ2V0ciBsb2NhbGRlc2NyKQ0K CSAgICAgIChvdmVybGFwICogKCogJ1lvdSkpKQ0KCSAoc2F5biAieW91Iikg KGFkZE5hbWUgKGdldHIgKikgbmlsKQ0KCSAobGlmdHIgbnVtICdwbHVyKSAo bGlmdHIgcGVyc29uICdwMikpDQogICAgICh0byAoZ25wL2VuZCkgKGdldGEg bGV4KSAoc2F5biAoZ2V0YSBsZXgpKSkNCiAgICAgKHRvIChnbnAvZW5kKSAo YW5kIChnZXRyIGxvY2FsZGVzY3IpDQoJCQkoZ2V0YSBwcm9wZXJuYW1lIChn ZXRhIG9iamVjdC0gKikpKQ0KCSAoc2F5biAoZ2V0YSBwcm9wZXJuYW1lIChn ZXRhIG9iamVjdC0gKikpKSkNCiAgICAgKHRvIChnbnAvZW5kKSANCgkgKGFu ZCAobnVsbHIgbG9jYWxkZXNjcikNCgkgICAgICAjISgoZmluZCAoY29tcG9z ZSBwcm9wZXJuYW1lLSAhIG9iamVjdA0KCQkJCShrc3RhciAoY29tcG9zZSBl cXVpdi0gISBlcXVpdikpKQ0KCQkgICAgICAgfihnZXRyICopKSkpDQogICAg ICAgICAoc2F5biAjISgoZmluZCAoY29tcG9zZSBwcm9wZXJuYW1lLSAhIG9i amVjdA0KCQkJCSAoa3N0YXIgKGNvbXBvc2UgZXF1aXYtICEgZXF1aXYpKSkN CgkJCX4oZ2V0ciAqKSkpKSkJOyBHZW5lcmF0ZSBhbiBucHIuDQogICAgICh0 byAoZ25wL2VuZCkgKG9yIChnZXRhIGxleC0pCTsgaXMgaXQgYSBsZXhlbWUN CgkJICAgICAgIChvdmVybGFwICducHIJOyBvciBpbiB0aGUgbGV4aWNvbiBh cyBhbiBucHINCgkJCQkoZXZhbCBgKGdldGYgY3RneSAsKGZvcm1hdCBuaWwg In5BIg0KCQkJCQkJCSAgIChnZXRyICopKSkpKSkNCgkgKHNheSAobGlzdCAi YCIgKGdldHIgKikgIiciKSkpDQogICAgIChyY2FsbCBnc3RyaW5nIChnZXRh IGVuZCkgKGdldGEgYmVnKSAoc2VuZHIgYmVnIChnZXRhIGJlZykpDQoJICAg IChzYXkgIlxgIikgcmVnIChzYXkgIlwnIikgKHRvIGducC9lbmQpKQ0KICAg ICAodG8gKGdjYXQgIyEoKGZpbmQgKGNsYXNzLSBhbnQtICEgZm9yYWxsKSB+ KGdldHIgKikpKSkNCgkgKGFuZCAoc25lcHM6aXN2YXIubiAoZ2V0ciAqKSkN CgkgICAgICAjISgoZmluZCAoY2xhc3MtIGFudC0gISBmb3JhbGwpIH4oZ2V0 ciAqKSkpKQ0KCSAoc2F5ICJldmVyeSIpKQ0KICAgICAoY2FsbCBncyAqIChw cm9wb3NpdGlvbnAgKGdldHIgKikpDQoJICAgOzsgQW4gZW1iZWRkZWQgcHJv cG9zaXRpb24NCgkgICAoc2VuZHIgZW1iZWRkZWQgdCkNCgkgICAoc2VuZHIg bW9kKQ0KCSAgIChzYXkgInRoYXQiKSAqDQogICAgICAgICAgICh0byBnbnAv ZW5kKSkNCiAgICAgKGNhbGwgZ3MgKGZpbmQtaWYgIydwcm9wb3NpdGlvbnAg IyEoKGZpbmQgKGVxdWl2LSAhIGVxdWl2KSB+KGdldHIgKikpKSkNCgkgICAo YW5kIChudWxsIChnZXRyIGxvY2FsZGVzY3IpKQ0KCQkoZmluZC1pZiAjJ3By b3Bvc2l0aW9ucCAjISgoZmluZCAoZXF1aXYtICEgZXF1aXYpIH4oZ2V0ciAq KSkpKSkNCgkgICA7OyBBbiBlbWJlZGRlZCBwcm9wb3NpdGlvbg0KCSAgIChz YXkgInRoYXQiKSAqDQogICAgICAgICAgICh0byBnbnAvZW5kKSkNCiAgICAg KHJjYWxsIGducCAjISgoZmluZCAocG9zc2Vzc29yLSAhIG9iamVjdCkgfihn ZXRyICopKSkNCgkgICAgIyEoKGZpbmQgKHBvc3Nlc3Nvci0gISBvYmplY3Qp IH4oZ2V0ciAqKSkpDQoJICAgIChzZW5kciBwb3NzIHQpDQoJICAgIHJlZyAo c2V0ciBudW0gJ3NpbmcpICh0byBnY2F0IChnZXRhIHJlbCAoZ2V0YSBvYmpl Y3QtKSkpKQ0KICAgICAodG8gKGdkZWZjYXQgDQoJICAoYmVzdC1jbGFzcw0K CSAgICMhKCgtIChmaW5kIGNsYXNzLSAoZmluZGFzc2VydCBtZW1iZXIgfihn ZXRyICopKSkgfihnZXRyIHRvcGNsKSkpKSkNCgkgIyEoKC0gKGZpbmQgKGNs YXNzLSAhIG1lbWJlcikgfihnZXRyICopKSB+KGdldHIgdG9wY2wpKSkpDQoJ CQkJCTsgQSBkZWYgb3IgaW5kZWYgbnAuDQoJCQkJCTsgQnV0IGRvbid0IHNh eSAiYSA8Y2w+IGlzIGEgPGNsPi4iDQogICAgICkNCg0KKGdzdHJpbmcgKHRv IChnbnAvZW5kKSAob3ZlcmxhcCAqIGJlZykgKHNheSAoZ2V0YSB3b3JkICop KSkNCgkgKHJjYWxsIGdzdHJpbmcgKGdldGEgcHJlZCkgKGdldGEgcHJlZCkg KHNlbmRyIGJlZykNCgkJcmVnIChzYXkgKGdldGEgd29yZCAqKSkgKHRvIGdu cC9lbmQpKSkNCg0KKGdkZWZjYXQgKGp1bXAgZ2RlZmNhdDEgdA0KCSAgICAg ICAoc2V0ciBtZW1zDQoJCSAgICAgKHJlbW92ZS1lcXVpdnMNCgkJCSAjISgo ZmluZCBtZW1iZXItDQoJCQkJICAoZmluZGFzc2VydCBjbGFzcyB+KGdldHIg KikpKSkpKSkpDQooZ2RlZmNhdDEgKGp1bXAgZ2NhdCAob3IgKGF0b20gKGdl dHIgbWVtcykpIChsaXNwOlw9IChsZW5ndGggKGdldHIgbWVtcykpIDEpKQ0K CQkoc2F5ICJ0aGUiKQ0KCQkoc2F5IChnZXRyIGFkaikpKQ0KCSAgKGp1bXAg Z2NhdCAobGlzcDo+IChsZW5ndGggKGdldHIgbWVtcykpIDEpDQoJCShzYXkg ImEiKQ0KCQkoc2F5IChnZXRyIGFkaikpKSkNCg0KKGdjYXQgKHRvIChnbnAv ZW5kKSAoZ2V0YSBsZXgpIChzYXkgKHdvcmRpemUgKGdldHIgbnVtKSAoZ2V0 YSBsZXggKikpKSkNCiAgICAgICh0byAoZ2NhdCAoZ2V0YSBjbGFzc2hlYWQp KSAoZ2V0YSBjbGFzc21vZCkgDQoJICAoc2F5IChnZXRhIGxleCAoZ2V0YSBj bGFzc21vZCAqKSkpKSkNCg0KKGducC9lbmQgKHBvcCBuaWwgdCkpDQoNCihm bHVzaCAgICA7OyBmbHVzaCB0aGUgcmVzdCBvZiB0aGUgc2VudGVuY2UgYW5k IHBvcA0KICh0byAoZmx1c2gpIHQpDQogKHBvcCBuaWwgdCkpDQoNCg== ---559023410-851401618-1084667599=:22512-- From rapaport@cse.Buffalo.EDU Mon May 17 09:08:03 2004 Received: from castor.cse.Buffalo.EDU (rapaport@localhost [127.0.0.1]) by castor.cse.Buffalo.EDU (8.12.10/8.12.10) with ESMTP id i4HD82Gr006521; Mon, 17 May 2004 09:08:02 -0400 (EDT) Received: (from rapaport@localhost) by castor.cse.Buffalo.EDU (8.12.10/8.12.9/Submit) id i4HD82Lu006520; Mon, 17 May 2004 09:08:02 -0400 (EDT) Date: Mon, 17 May 2004 09:08:02 -0400 (EDT) From: "William J. Rapaport" Message-Id: <200405171308.i4HD82Lu006520@castor.cse.Buffalo.EDU> To: rapaport@cse.Buffalo.EDU, vbrao@cse.Buffalo.EDU Subject: Re: Source files - grammar and lexicon - for brachet demo Status: R Content-Length: 175 Thanks Vik--both for the files and your work, as well as for your kind words. I look forward to the full report, but, more importantly, I wish you well at the U of R! -Bill