Date: Mon, 27 Dec 1999 11:37:48 +0530 (IST) From: "Vani R." X-Sender: vani AT vani To: djgpp AT delorie DOT com Subject: Regarding C++ grammer Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463803903-1439073610-946274868=:333" Reply-To: djgpp AT delorie DOT com 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 AT docserver DOT cac DOT washington DOT edu for more info. ---1463803903-1439073610-946274868=:333 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello, Some days back, I had submitted one problem regarding C++ grammer stating that I am not able to parse simple C++ code. I am sure that because of lack of resources to find the problem no one got back to me. I am attaching the required files along with the makefile. If you need to know the behaviour of the parser just make use of this makefile to build the executable. If you notify that it parses the code class tagname { int i; }; and not class tagname { private: int i; }; I hope some one can help me out now. Thanks in advance, --vani-- ---1463803903-1439073610-946274868=:333 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="parse.y" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: yacc file LyogTm90ZTogQmlzb24gYXV0b21hdGljYWxseSBhcHBsaWVzIGEgZGVmYXVs dCBhY3Rpb24gb2YgIiQkID0gJDEiIGZvcg0KYWxsIGRlcml2YXRpb25zOyB0 aGlzIGlzIGFwcGxpZWQgYmVmb3JlIHRoZSBleHBsaWNpdCBhY3Rpb24sIGlm IG9uZQ0KaXMgZ2l2ZW4uICBLZWVwIHRoaXMgaW4gbWluZCB3aGVuIHJlYWRp bmcgdGhlIGFjdGlvbnMuICAqLw0KDQolew0KI2luY2x1ZGUgPHN0ZGlvLmg+ DQojaW5jbHVkZSA8ZXJybm8uaD4NCiV9DQoNCiVzdGFydCBwcm9ncmFtDQoN Ci8qIEFsbCBpZGVudGlmaWVycyB0aGF0IGFyZSBub3QgcmVzZXJ2ZWQgd29y ZHMNCmFuZCBhcmUgbm90IGRlY2xhcmVkIHR5cGVkZWZzIGluIHRoZSBjdXJy ZW50IGJsb2NrICovDQoldG9rZW4gSURFTlRJRklFUg0KDQovKiBBbGwgaWRl bnRpZmllcnMgdGhhdCBhcmUgZGVjbGFyZWQgdHlwZWRlZnMgaW4gdGhlIGN1 cnJlbnQgYmxvY2suDQpJbiBzb21lIGNvbnRleHRzLCB0aGV5IGFyZSB0cmVh dGVkIGp1c3QgbGlrZSBJREVOVElGSUVSLA0KYnV0IHRoZXkgY2FuIGFsc28g c2VydmUgYXMgdHlwZXNwZWNzIGluIGRlY2xhcmF0aW9ucy4gICovDQoldG9r ZW4gVFlQRURFRk5BTUUNCg0KLyogUmVzZXJ2ZWQgd29yZHMgdGhhdCBzcGVj aWZ5IHN0b3JhZ2UgY2xhc3MuDQp5eWx2YWwgY29udGFpbnMgYW4gSURFTlRJ RklFUl9OT0RFIHdoaWNoIGluZGljYXRlcyB3aGljaCBvbmUuICAqLw0KJXRv a2VuIEFVVE8gUkVHSVNURVIgU1RBVElDIEVYVEVSTiBGUklFTkQgVFlQRURF RiBPVkVSTE9BRCBJTkxJTkUgVklSVFVBTA0KDQovKiBSZXNlcnZlZCB3b3Jk cyB0aGF0IHNwZWNpZnkgdHlwZS4NCnl5bHZhbCBjb250YWlucyBhbiBJREVO VElGSUVSX05PREUgd2hpY2ggaW5kaWNhdGVzIHdoaWNoIG9uZS4gICovDQol dG9rZW4gSU5UIENIQVIgU0lHTkVEIFVOU0lHTkVEIFNIT1JUIExPTkcgRkxP QVQgRE9VQkxFIFZPSUQNCg0KLyogUmVzZXJ2ZWQgd29yZHMgdGhhdCBxdWFs aWZ5IHR5cGU6ICJjb25zdCIgb3IgInZvbGF0aWxlIi4NCnl5bHZhbCBjb250 YWlucyBhbiBJREVOVElGSUVSX05PREUgd2hpY2ggaW5kaWNhdGVzIHdoaWNo IG9uZS4gICovDQoldG9rZW4gQ09OU1QgVk9MQVRJTEUNCg0KLyogQ2hhcmFj dGVyIG9yIG51bWVyaWMgY29uc3RhbnRzLg0KeXlsdmFsIGlzIHRoZSBub2Rl IGZvciB0aGUgY29uc3RhbnQuICAqLw0KJXRva2VuIENIQVJDT05TVCBGTE9B VElOR0NPTlNUIE9DVEFMQ09OU1QgSEVYQ09OU1QgSU5URUdFUkNPTlNUDQoN Ci8qIFN0cmluZyBjb25zdGFudHMgaW4gcmF3IGZvcm0uDQp5eWx2YWwgaXMg YSBTVFJJTkdfQ1NUIG5vZGUuICAqLw0KJXRva2VuIFNUUklORw0KDQovKiAi Li4uIiwgdXNlZCBmb3IgZnVuY3Rpb25zIHdpdGggdmFyaWFibGUgYXJnbGlz dHMuICAqLw0KJXRva2VuIEVMTElQU0lTDQoNCi8qIHRoZSByZXNlcnZlZCB3 b3JkcyAqLw0KLyogU0NPIGluY2x1ZGUgZmlsZXMgdGVzdCAiQVNNIiwgc28g dXNlIHNvbWV0aGluZyBlbHNlLiAqLw0KJXRva2VuIFNJWkVPRiBFTlVNIC8q IFNUUlVDVCBVTklPTiAqLyBJRiBFTFNFIFdISUxFIERPIEZPUiBTV0lUQ0gg Q0FTRSBERUZBVUxUDQoldG9rZW4gQlJFQUsgQ09OVElOVUUgUkVUVVJOIEdP VE8gQVNNX0tFWVdPUkQgR0NDX0FTTV9LRVlXT1JEIFRZUEVPRiBBTElHTk9G DQoldG9rZW4gU0lHT0YNCiV0b2tlbiBBVFRSSUJVVEUgRVhURU5TSU9OIExB QkVMDQoNCi8qIHRoZSByZXNlcnZlZCB3b3Jkcy4uLiBDKysgZXh0ZW5zaW9u cyAqLw0KJXRva2VuIEFHR1INCiV0b2tlbiBQUklWQVRFIFBVQkxJQyBQUk9U RUNURUQNCiV0b2tlbiBERUxFVEUgTkVXIE9WRVJMT0FEIFRISVMgT1BFUkFU T1IgQ1hYX1RSVUUgQ1hYX0ZBTFNFDQoldG9rZW4gTkFNRVNQQUNFIFRZUEVO QU1FX0tFWVdPUkQgVVNJTkcNCiV0b2tlbiBURU1QTEFURQ0KJXRva2VuIFRZ UEVJRCBEWU5BTUlDX0NBU1QgU1RBVElDX0NBU1QgUkVJTlRFUlBSRVRfQ0FT VCBDT05TVF9DQVNUDQoldG9rZW4gU0NPUEUNCg0KLyogRGVmaW5lIHRoZSBv cGVyYXRvciB0b2tlbnMgYW5kIHRoZWlyIHByZWNlZGVuY2VzLg0KVGhlIHZh bHVlIGlzIGFuIGludGVnZXIgYmVjYXVzZSwgaWYgdXNlZCwgaXQgaXMgdGhl IHRyZWUgY29kZQ0KdG8gdXNlIGluIHRoZSBleHByZXNzaW9uIG1hZGUgZnJv bSB0aGUgb3BlcmF0b3IuICAqLw0KDQolbGVmdCBFTVBUWQkJCS8qIHVzZWQg dG8gcmVzb2x2ZSBzL3Igd2l0aCBlcHNpbG9uICovDQoNCiVsZWZ0IGVycm9y DQoNCi8qIEFkZCBwcmVjZWRlbmNlIHJ1bGVzIHRvIHNvbHZlIGRhbmdsaW5n IGVsc2Ugcy9yIGNvbmZsaWN0ICovDQolbm9uYXNzb2MgSUYNCiVub25hc3Nv YyBFTFNFDQoNCiVsZWZ0IElERU5USUZJRVIgVFlQRURFRk5BTUUgUFRZUEVO QU1FIElOVCBDSEFSIEZMT0FUIFZPSUQgU0hPUlQgTE9ORyBTSUdORUQgVU5T SUdORUQgRE9VQkxFIENPTlNUIFZPTEFUSUxFIEVOVU0gQUdHUiBFTExJUFNJ UyBUWVBFT0YgU0lHT0YgT1BFUkFUT1IgTlNOQU1FIFRZUEVOQU1FX0tFWVdP UkQgQVVUTyBSRUdJU1RFUiBTVEFUSUMgRVhURVJOIEZSSUVORCBUWVBFREVG IE9WRVJMT0FEIElOTElORSBWSVJUVUFMDQoNCiVsZWZ0ICd7JyAnLCcgJzsn DQoNCiVub25hc3NvYyBUSFJPVw0KJXJpZ2h0ICAnOicNCiVyaWdodCAgQVNT SUdOICc9Jw0KJXJpZ2h0ICAnPycNCiVsZWZ0ICBPUk9SDQolbGVmdCAgQU5E QU5EDQolbGVmdCAgJ3wnDQolbGVmdCAgJ14nDQolbGVmdCAgJyYnDQolbGVm dCAgTUlOX01BWA0KJWxlZnQgIEVRQ09NUEFSRQ0KJWxlZnQgIEFSSVRIQ09N UEFSRSAnPCcgJz4nDQolbGVmdCAgTFNISUZUIFJTSElGVA0KJWxlZnQgICcr JyAnLScNCiVsZWZ0ICcqJyAnLycgJyUnDQolbGVmdCBQT0lOVFNBVF9TVEFS IERPVF9TVEFSDQolcmlnaHQgVU5BUlkgUExVU1BMVVMgTUlOVVNNSU5VUyAn ficNCiVsZWZ0IEhZUEVSVU5BUlkNCiVsZWZ0IFBBUkVOX1NUQVJfUEFSRU4g DQolbGVmdCBQT0lOVFNBVCAnLicgJygnICdbJw0KDQolcmlnaHQgU0NPUEUJ CQkvKiBDKysgZXh0ZW5zaW9uICovDQolbm9uYXNzb2MgTkVXIERFTEVURSBU UlkgQ0FUQ0gNCg0KJXRva2VuIFRZUEVOQU1FX0VMTElQU0lTIFBUWVBFTkFN RQ0KJXRva2VuICBFWFRFUk5fTEFOR19TVFJJTkcNCiV0b2tlbiAgUFJFX1BB UlNFRF9DTEFTU19ERUNMDQoNCiV0b2tlbiBUWVBFTkFNRV9ERUZOIElERU5U SUZJRVJfREVGTiBQVFlQRU5BTUVfREVGTg0KDQoldG9rZW4gTlNOQU1FDQoN Ci8qIFVzZWQgaW4gbGV4LmMgZm9yIHBhcnNpbmcgcHJhZ21hcy4gICovDQol dG9rZW4gRU5EX09GX0xJTkUNCg0KLyogbGV4LmMgYW5kIHB0LmMgZGVwZW5k cyBvbiB0aGlzIGJlaW5nIHRoZSBsYXN0IHRva2VuLiAgRGVmaW5lDQphbnkg bmV3IHRva2VucyBiZWZvcmUgdGhpcyBvbmUhICAqLw0KJXRva2VuIEVORF9P Rl9TQVZFRF9JTlBVVA0KJSUNCnByb2dyYW06IC8qIGVtcHR5ICovDQp8IGV4 dGRlZnMNCjsNCg0KLyogdGhlIHJlYXNvbiBmb3IgdGhlIHN0cmFuZ2UgYWN0 aW9ucyBpbiB0aGlzIHJ1bGUNCmlzIHNvIHRoYXQgbm90eXBlX2luaXRkZWNs cyB3aGVuIHJlYWNoZWQgdmlhIGRhdGFkZWYNCmNhbiBmaW5kIGEgdmFsaWQg bGlzdCBvZiB0eXBlIGFuZCBzYyBzcGVjcyBpbiAkMC4gKi8NCg0KZXh0ZGVm czoNCmxhbmdfZXh0ZGVmDQp8IGV4dGRlZnMgbGFuZ19leHRkZWYNCjsNCg0K ZXh0ZGVmc19vcHQ6DQpleHRkZWZzDQp8IC8qIGVtcHR5ICovDQo7DQoNCmNv bnN0YW50Og0KRkxPQVRJTkdDT05TVA0KfCAgSU5URUdFUkNPTlNUDQp8ICBP Q1RBTENPTlNUDQp8ICBIRVhDT05TVA0KfCAgQ0hBUkNPTlNUDQo7DQouaHVz aF93YXJuaW5nOg0KOw0KLndhcm5pbmdfb2s6DQo7DQoNCmFzbV9rZXl3b3Jk Og0KQVNNX0tFWVdPUkQNCjsNCg0KbGFuZ19leHRkZWY6DQpleHRkZWYNCjsN Cg0KZXh0ZGVmOg0KZm5kZWYNCnwgZGF0YWRlZg0KfCB0ZW1wbGF0ZV9kZWYN Cnwgb3ZlcmxvYWRkZWYNCnwgYXNtX2tleXdvcmQgJygnIHN0cmluZyAnKScg JzsnDQp8IGV4dGVybl9sYW5nX3N0cmluZyAneycgZXh0ZGVmc19vcHQgJ30n DQp8IGV4dGVybl9sYW5nX3N0cmluZyAuaHVzaF93YXJuaW5nIGZuZGVmIC53 YXJuaW5nX29rDQp8IGV4dGVybl9sYW5nX3N0cmluZyAuaHVzaF93YXJuaW5n IGRhdGFkZWYgLndhcm5pbmdfb2sNCnwgTkFNRVNQQUNFIGlkZW50aWZpZXIg J3snIGV4dGRlZnNfb3B0ICd9Jw0KfCBOQU1FU1BBQ0UgJ3snIGV4dGRlZnNf b3B0ICd9Jw0KfCBOQU1FU1BBQ0UgaWRlbnRpZmllciAnPScgYW55X2lkICc7 Jw0KfCB1c2luZ19kZWNsICc7Jw0KfCBVU0lORyBOQU1FU1BBQ0UgYW55X2lk ICc7Jw0KOw0KDQp1c2luZ19kZWNsOg0KVVNJTkcgcXVhbGlmaWVkX2lkDQp8 IFVTSU5HIGdsb2JhbF9zY29wZSBxdWFsaWZpZWRfaWQNCnwgVVNJTkcgZ2xv YmFsX3Njb3BlIHVucXVhbGlmaWVkX2lkDQo7DQoNCmFueV9pZDoNCnVucXVh bGlmaWVkX2lkDQp8IHF1YWxpZmllZF9pZA0KfCBnbG9iYWxfc2NvcGUgcXVh bGlmaWVkX2lkDQp8IGdsb2JhbF9zY29wZSB1bnF1YWxpZmllZF9pZA0KOw0K DQpleHRlcm5fbGFuZ19zdHJpbmc6DQpFWFRFUk5fTEFOR19TVFJJTkcNCnwg ZXh0ZXJuX2xhbmdfc3RyaW5nIEVYVEVSTl9MQU5HX1NUUklORw0KOw0KDQp0 ZW1wbGF0ZV9oZWFkZXI6DQpURU1QTEFURSAnPCcgdGVtcGxhdGVfcGFybV9s aXN0ICc+Jw0KOw0KDQp0ZW1wbGF0ZV9wYXJtX2xpc3Q6DQp0ZW1wbGF0ZV9w YXJtDQp8IHRlbXBsYXRlX3Bhcm1fbGlzdCAnLCcgdGVtcGxhdGVfcGFybQ0K Ow0KDQp0ZW1wbGF0ZV90eXBlX3Bhcm06DQphZ2dyDQp8IGFnZ3IgaWRlbnRp Zmllcg0KfCBUWVBFTkFNRV9LRVlXT1JEDQp8IFRZUEVOQU1FX0tFWVdPUkQg aWRlbnRpZmllcg0KOw0KDQp0ZW1wbGF0ZV9wYXJtOg0KLyogVGhlIGZvbGxv d2luZyBydWxlcyBpbnRyb2R1Y2UgYSBuZXcgcmVkdWNlL3JlZHVjZQ0KY29u ZmxpY3Qgb24gdGhlICcsJyBhbmQgJz4nIGlucHV0IHRva2VuczogdGhleSBh cmUgdmFsaWQNCnByZWZpeGVzIGZvciBhIGBzdHJ1Y3RzcCcsIHdoaWNoIG1l YW5zIHRoZXkgY291bGQgbWF0Y2ggYQ0KbmFtZWxlc3MgcGFyYW1ldGVyLiAg U2VlIDE0LjYsIHBhcmFncmFwaCAzLg0KQnkgcHV0dGluZyB0aGVtIGJlZm9y ZSB0aGUgYHBhcm0nIHJ1bGUsIHdlIGdldA0KdGhlaXIgbWF0Y2ggYmVmb3Jl IGNvbnNpZGVyaW5nIHRoZW0gbmFtZWxlc3MgcGFyYW1ldGVyDQpkZWNsYXJh dGlvbnMuICAqLw0KdGVtcGxhdGVfdHlwZV9wYXJtDQp8IHRlbXBsYXRlX3R5 cGVfcGFybSAnPScgdHlwZXNwZWMNCnwgZnVsbF9wYXJtDQo7DQoNCm92ZXJs b2FkZGVmOg0KT1ZFUkxPQUQgb3ZfaWRlbnRpZmllcnMgJzsnDQo7DQoNCm92 X2lkZW50aWZpZXJzOiBJREVOVElGSUVSDQp8IG92X2lkZW50aWZpZXJzICcs JyBJREVOVElGSUVSDQo7DQoNCnRlbXBsYXRlX2RlZjoNCi8qIENsYXNzIHRl bXBsYXRlIGRlY2xhcmF0aW9ucyBnbyBoZXJlOyB0aGV5IGFyZW4ndCBub3Jt YWwgY2xhc3MNCmRlY2xhcmF0aW9ucywgYmVjYXVzZSB3ZSBjYW4ndCBwcm9j ZXNzIHRoZSBib2RpZXMgeWV0LiAgKi8NCnRlbXBsYXRlX2hlYWRlciBuYW1l ZF9jbGFzc19oZWFkX3NhbnNfYmFzZXR5cGUgJ3snDQonOycNCnwgdGVtcGxh dGVfaGVhZGVyIG5hbWVkX2NsYXNzX2hlYWRfc2Fuc19iYXNldHlwZV9kZWZu ICd7Jw0KJzsnDQp8IHRlbXBsYXRlX2hlYWRlciBuYW1lZF9jbGFzc19oZWFk X3NhbnNfYmFzZXR5cGUgJzonDQonOycNCnwgdGVtcGxhdGVfaGVhZGVyIG5h bWVkX2NsYXNzX2hlYWRfc2Fuc19iYXNldHlwZV9kZWZuICc6Jw0KJzsnDQp8 IHRlbXBsYXRlX2hlYWRlciBuYW1lZF9jbGFzc19oZWFkX3NhbnNfYmFzZXR5 cGUgJzsnDQp8IHRlbXBsYXRlX2hlYWRlciBuYW1lZF9jbGFzc19oZWFkX3Nh bnNfYmFzZXR5cGVfZGVmbiAnOycNCnwgdGVtcGxhdGVfaGVhZGVyIC8qIG5v dHlwZV9pbml0ZGNsMCAnOycgKi8NCm5vdHlwZV9kZWNsYXJhdG9yIGV4Y2Vw dGlvbl9zcGVjaWZpY2F0aW9uX29wdCBtYXliZWFzbSBtYXliZV9hdHRyaWJ1 dGUNCmZuX3RtcGxfZW5kDQp8IHRlbXBsYXRlX2hlYWRlciB0eXBlZF9kZWNs c3BlY3MgLyppbml0ZGNsMCovDQpkZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVj aWZpY2F0aW9uX29wdCBtYXliZWFzbSBtYXliZV9hdHRyaWJ1dGUNCmZuX3Rt cGxfZW5kDQp8IHRlbXBsYXRlX2hlYWRlciBkZWNsbW9kcyBub3R5cGVfZGVj bGFyYXRvciBmbl90bXBsX2VuZA0KfCB0ZW1wbGF0ZV9oZWFkZXIgZXJyb3Ig J30nCQ0KfCB0ZW1wbGF0ZV9oZWFkZXIgZXJyb3IgJzsnCQ0KOw0KDQpmbl90 bXBsX2VuZDogJ3snCQkNCnwgJzonCQkNCnwgJzsnCQ0KfCAnPScJCQkNCnwg UkVUVVJOCQkNCjsNCg0KZGF0YWRlZjoNCm5vbW9kc19pbml0ZGVjbHMgJzsn DQp8IGRlY2xtb2RzIG5vdHlwZV9pbml0ZGVjbHMgJzsnDQovKiBOb3JtYWwg Y2FzZSB0byBtYWtlIGZhc3Q6ICJjb25zdCBpOyIuICAqLw0KfCBkZWNsbW9k cyBub3R5cGVfZGVjbGFyYXRvciAnOycNCnwgdHlwZWRfZGVjbHNwZWNzIGlu aXRkZWNscyAnOycNCnwgdHlwZWRfZGVjbHNwZWNzIGRlY2xhcmF0b3IgJzsn DQp8IGRlY2xtb2RzICc7Jw0KfCBleHBsaWNpdF9pbnN0YW50aWF0aW9uICc7 Jw0KfCB0eXBlZF9kZWNsc3BlY3MgJzsnDQp8IGVycm9yICc7Jw0KfCBlcnJv ciAnfScNCnwgJzsnDQo7DQoNCmN0b3JfaW5pdGlhbGl6ZXJfb3B0Og0Kbm9k ZWNscw0KfCBiYXNlX2luaXQNCjsNCg0KbWF5YmVfcmV0dXJuX2luaXQ6DQov KiBlbXB0eSAqLw0KfCByZXR1cm5faW5pdA0KfCByZXR1cm5faW5pdCAnOycN CjsNCg0KZWF0X3NhdmVkX2lucHV0Og0KLyogZW1wdHkgKi8NCnwgRU5EX09G X1NBVkVEX0lOUFVUDQo7DQoNCmZuZGVmOg0KZm4uZGVmMSBtYXliZV9yZXR1 cm5faW5pdCBjdG9yX2luaXRpYWxpemVyX29wdCBjb21wc3RtdF9vcl9lcnJv cg0KfCBmbi5kZWYxIG1heWJlX3JldHVybl9pbml0IGZ1bmN0aW9uX3RyeV9i bG9jayBlYXRfc2F2ZWRfaW5wdXQNCnwgdHlwZWRfZGVjbHNwZWNzIGRlY2xh cmF0b3IgZXJyb3INCnwgZGVjbG1vZHMgbm90eXBlX2RlY2xhcmF0b3IgZXJy b3INCnwgbm90eXBlX2RlY2xhcmF0b3IgZXJyb3INCjsNCg0KZm4uZGVmMToN CnR5cGVkX2RlY2xzcGVjcyBkZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVjaWZp Y2F0aW9uX29wdA0KfCBkZWNsbW9kcyBub3R5cGVfZGVjbGFyYXRvciBleGNl cHRpb25fc3BlY2lmaWNhdGlvbl9vcHQNCnwgbm90eXBlX2RlY2xhcmF0b3Ig ZXhjZXB0aW9uX3NwZWNpZmljYXRpb25fb3B0DQo7DQoNCi8qIG1vcmUgQysr IGNvbXBsZXhpdHkuICBTZWUgY29tcG9uZW50X2RlY2wgZm9yIGEgY29tbWVu dCBvbiB0aGUNCnJlZHVjZS9yZWR1Y2UgY29uZmxpY3QgaW50cm9kdWNlZCBi eSB0aGVzZSBydWxlcy4gICovDQpmbi5kZWYyOg0KdHlwZWRfZGVjbHNwZWNz ICcoJyBwYXJtbGlzdCAnKScgdHlwZV9xdWFscyBleGNlcHRpb25fc3BlY2lm aWNhdGlvbl9vcHQNCnwgdHlwZWRfZGVjbHNwZWNzICcoJyAnKScgdHlwZV9x dWFscyBleGNlcHRpb25fc3BlY2lmaWNhdGlvbl9vcHQNCnwgdHlwZWRfZGVj bHNwZWNzIGRlY2xhcmF0b3IgZXhjZXB0aW9uX3NwZWNpZmljYXRpb25fb3B0 DQp8IGRlY2xtb2RzIG5vdHlwZV9kZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVj aWZpY2F0aW9uX29wdA0KfCBub3R5cGVfZGVjbGFyYXRvciBleGNlcHRpb25f c3BlY2lmaWNhdGlvbl9vcHQNCjsNCg0KcmV0dXJuX2lkOiBSRVRVUk4gSURF TlRJRklFUg0KOw0KDQpyZXR1cm5faW5pdDogcmV0dXJuX2lkIG1heWJlX2lu aXQNCnwgcmV0dXJuX2lkICcoJyBub25udWxsX2V4cHJsaXN0ICcpJw0KfCBy ZXR1cm5faWQgJygnICcpJw0KOw0KDQpiYXNlX2luaXQ6DQonOicgLnNldF9i YXNlX2luaXQgbWVtYmVyX2luaXRfbGlzdA0KOw0KDQouc2V0X2Jhc2VfaW5p dDoNCi8qIGVtcHR5ICovDQo7DQoNCm1lbWJlcl9pbml0X2xpc3Q6DQovKiBl bXB0eSAqLw0KfCBtZW1iZXJfaW5pdA0KfCBtZW1iZXJfaW5pdF9saXN0ICcs JyBtZW1iZXJfaW5pdA0KfCBtZW1iZXJfaW5pdF9saXN0IGVycm9yDQo7DQoN Cm1lbWJlcl9pbml0OiAnKCcgbm9ubnVsbF9leHBybGlzdCAnKScNCnwgJygn ICcpJw0KfCBub3R5cGVfaWRlbnRpZmllciAnKCcgbm9ubnVsbF9leHBybGlz dCAnKScNCnwgbm90eXBlX2lkZW50aWZpZXIgJygnICcpJw0KfCBjb21wbGV0 ZV90eXBlX25hbWUgJygnIG5vbm51bGxfZXhwcmxpc3QgJyknDQp8IGNvbXBs ZXRlX3R5cGVfbmFtZSAnKCcgJyknDQp8IG5vdHlwZV9xdWFsaWZpZWRfaWQg JygnIG5vbm51bGxfZXhwcmxpc3QgJyknDQp8IG5vdHlwZV9xdWFsaWZpZWRf aWQgJygnICcpJw0KOw0KDQppZGVudGlmaWVyOg0KSURFTlRJRklFUg0KfCBU WVBFREVGTkFNRQ0KfCBQVFlQRU5BTUUNCnwgTlNOQU1FDQo7DQoNCm5vdHlw ZV9pZGVudGlmaWVyOg0KSURFTlRJRklFUg0KfCBQVFlQRU5BTUUgDQp8IE5T TkFNRSAlcHJlYyBFTVBUWQ0KOw0KDQppZGVudGlmaWVyX2RlZm46DQpJREVO VElGSUVSX0RFRk4NCnwgVFlQRU5BTUVfREVGTg0KfCBQVFlQRU5BTUVfREVG Tg0KOw0KDQpleHBsaWNpdF9pbnN0YW50aWF0aW9uOg0KVEVNUExBVEUgc3Bl Y2lhbGl6YXRpb24gdGVtcGxhdGVfaW5zdGFudGlhdGlvbg0KfCBURU1QTEFU RSB0eXBlZF9kZWNsc3BlY3MgZGVjbGFyYXRvcg0KfCBURU1QTEFURSBub3R5 cGVfZGVjbGFyYXRvcg0KfCBzY3NwZWMgVEVNUExBVEUgc3BlY2lhbGl6YXRp b24gdGVtcGxhdGVfaW5zdGFudGlhdGlvbg0KfCBzY3NwZWMgVEVNUExBVEUg dHlwZWRfZGVjbHNwZWNzIGRlY2xhcmF0b3INCnwgc2NzcGVjIFRFTVBMQVRF IG5vdHlwZV9kZWNsYXJhdG9yDQo7DQoNCnRlbXBsYXRlX3R5cGU6DQp0ZW1w bGF0ZV90eXBlX25hbWUgdG1wbC4yIHRlbXBsYXRlX2luc3RhbnRpYXRpb24N CjsNCg0KdGVtcGxhdGVfdHlwZV9uYW1lOg0KUFRZUEVOQU1FICc8JyB0ZW1w bGF0ZV9hcmdfbGlzdCAnPicNCnwgUFRZUEVOQU1FICc8JyAnPicNCnwgVFlQ RURFRk5BTUUgICc8JyB0ZW1wbGF0ZV9hcmdfbGlzdCAnPicNCjsNCg0KdG1w bC4yOiANCi8qIGVtcHR5ICovICVwcmVjIEVNUFRZDQo7DQoNCnRlbXBsYXRl X2FyZ19saXN0Og0KdGVtcGxhdGVfYXJnDQp8IHRlbXBsYXRlX2FyZ19saXN0 ICcsJyB0ZW1wbGF0ZV9hcmcNCjsNCg0KdGVtcGxhdGVfYXJnOg0KdHlwZV9p ZA0KfCBleHByX25vX2NvbW1hcyAgJXByZWMgVU5BUlkNCjsNCg0KdGVtcGxh dGVfaW5zdGFudGlhdGVfb25jZToNClBSRV9QQVJTRURfQ0xBU1NfREVDTCBt YXliZV9iYXNlX2NsYXNzX2xpc3QgJ3snIG9wdC5jb21wb25lbnRfZGVjbF9s aXN0ICd9Jw0KOw0KDQp0ZW1wbGF0ZV9pbnN0YW50aWF0aW9uOg0KLyogZW1w dHkgKi8NCnwgdGVtcGxhdGVfaW5zdGFudGlhdGVfb25jZQ0KOw0KDQp0ZW1w bGF0ZV9pbnN0YW50aWF0ZV9zb21lOg0KLyogZW1wdHkgKi8NCnwgdGVtcGxh dGVfaW5zdGFudGlhdGVfb25jZSB0ZW1wbGF0ZV9pbnN0YW50aWF0ZV9zb21l DQo7DQoNCnVub3A6ICAgICAnLScNCnwgJysnDQp8IFBMVVNQTFVTDQp8IE1J TlVTTUlOVVMNCnwgJyEnDQo7DQoNCmV4cHI6CSAgbm9udHJpdmlhbF9leHBy bGlzdA0KfCBleHByX25vX2NvbW1hcw0KOw0KDQpwYXJlbl9leHByX29yX251 bGw6DQonKCcgJyknDQp8ICcoJyBleHByICcpJw0KOw0KDQpwYXJlbl9jb25k X29yX251bGw6DQonKCcgJyknDQp8ICcoJyBjb25kaXRpb24gJyknDQo7DQoN Cnhjb25kOg0KLyogZW1wdHkgKi8NCnwgY29uZGl0aW9uDQp8IGVycm9yDQo7 DQoNCmNvbmRpdGlvbjoNCnR5cGVfc3BlY2lmaWVyX3NlcSBkZWNsYXJhdG9y IGV4Y2VwdGlvbl9zcGVjaWZpY2F0aW9uX29wdCBtYXliZWFzbSBtYXliZV9h dHRyaWJ1dGUgJz0nIGluaXQNCnwgZXhwcg0KOw0KDQpjb21wc3RtdGVuZDoN Cid9Jw0KfCBtYXliZV9sYWJlbF9kZWNscyBzdG10cyAnfScNCnwgbWF5YmVf bGFiZWxfZGVjbHMgc3RtdHMgZXJyb3IgJ30nDQp8IG1heWJlX2xhYmVsX2Rl Y2xzIGVycm9yICd9Jw0KOw0KDQphbHJlYWR5X3Njb3BlZF9zdG10Og0KJ3sn IGNvbXBzdG10ZW5kDQp8IHNpbXBsZV9zdG10DQo7DQoNCg0Kbm9udHJpdmlh bF9leHBybGlzdDoNCmV4cHJfbm9fY29tbWFzICcsJyBleHByX25vX2NvbW1h cw0KfCBleHByX25vX2NvbW1hcyAnLCcgZXJyb3INCnwgbm9udHJpdmlhbF9l eHBybGlzdCAnLCcgZXhwcl9ub19jb21tYXMNCnwgbm9udHJpdmlhbF9leHBy bGlzdCAnLCcgZXJyb3INCjsNCg0Kbm9ubnVsbF9leHBybGlzdDoNCmV4cHJf bm9fY29tbWFzDQp8IG5vbnRyaXZpYWxfZXhwcmxpc3QNCjsNCg0KdW5hcnlf ZXhwcjoNCnByaW1hcnkgJXByZWMgVU5BUlkNCnwgRVhURU5TSU9OIGNhc3Rf ZXhwcgkgICVwcmVjIFVOQVJZDQp8ICcqJyBjYXN0X2V4cHIgICAlcHJlYyBV TkFSWQ0KfCAnJicgY2FzdF9leHByICAgJXByZWMgVU5BUlkNCnwgJ34nIGNh c3RfZXhwcg0KfCB1bm9wIGNhc3RfZXhwciAgJXByZWMgVU5BUlkNCi8qIFJl ZmVyIHRvIHRoZSBhZGRyZXNzIG9mIGEgbGFiZWwgYXMgYSBwb2ludGVyLiAg Ki8NCnwgQU5EQU5EIGlkZW50aWZpZXINCnwgU0laRU9GIHVuYXJ5X2V4cHIg ICVwcmVjIFVOQVJZDQp8IFNJWkVPRiAnKCcgdHlwZV9pZCAnKScgICVwcmVj IEhZUEVSVU5BUlkNCnwgQUxJR05PRiB1bmFyeV9leHByICAlcHJlYyBVTkFS WQ0KfCBBTElHTk9GICcoJyB0eXBlX2lkICcpJyAgJXByZWMgSFlQRVJVTkFS WQ0KfCBuZXcgbmV3X3R5cGVfaWQgJXByZWMgRU1QVFkNCnwgbmV3IG5ld190 eXBlX2lkIG5ld19pbml0aWFsaXplcg0KfCBuZXcgbmV3X3BsYWNlbWVudCBu ZXdfdHlwZV9pZCAlcHJlYyBFTVBUWQ0KfCBuZXcgbmV3X3BsYWNlbWVudCBu ZXdfdHlwZV9pZCBuZXdfaW5pdGlhbGl6ZXINCnwgbmV3ICcoJyB0eXBlX2lk ICcpJyAlcHJlYyBFTVBUWQ0KfCBuZXcgJygnIHR5cGVfaWQgJyknIG5ld19p bml0aWFsaXplcg0KfCBuZXcgbmV3X3BsYWNlbWVudCAnKCcgdHlwZV9pZCAn KScgJXByZWMgRU1QVFkNCnwgbmV3IG5ld19wbGFjZW1lbnQgJygnIHR5cGVf aWQgJyknIG5ld19pbml0aWFsaXplcg0KfCBkZWxldGUgY2FzdF9leHByICAl cHJlYyBVTkFSWQ0KfCBkZWxldGUgJ1snICddJyBjYXN0X2V4cHIgICVwcmVj IFVOQVJZDQp8IGRlbGV0ZSAnWycgZXhwciAnXScgY2FzdF9leHByICVwcmVj IFVOQVJZDQo7DQoNCm5ld19wbGFjZW1lbnQ6DQonKCcgbm9ubnVsbF9leHBy bGlzdCAnKScNCnwgJ3snIG5vbm51bGxfZXhwcmxpc3QgJ30nDQo7DQoNCm5l d19pbml0aWFsaXplcjoNCicoJyBub25udWxsX2V4cHJsaXN0ICcpJw0KfCAn KCcgJyknDQp8ICcoJyB0eXBlc3BlYyAnKScNCi8qIEdOVSBleHRlbnNpb24g c28gcGVvcGxlIGNhbiB1c2UgaW5pdGlhbGl6ZXIgbGlzdHMuICBOb3RlIHRo YXQNCnRoaXMgYWx0ZXJzIHRoZSBtZWFuaW5nIG9mIGBuZXcgaW50ID0gMScs IHdoaWNoIHdhcyBwcmV2aW91c2x5DQpzeW50YWN0aWNhbGx5IHZhbGlkIGJ1 dCBzZW1hbnRpY2FsbHkgaW52YWxpZC4gICovDQp8ICc9JyBpbml0DQo7DQoN Ci8qIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIHBvc3Rwb25lIHJlZHVjdGlvbiBv ZiBgaW50ICgoaW50KShpbnQpKGludCkpJy4gICovDQpyZWdjYXN0X29yX2Fi c2RjbDoNCicoJyB0eXBlX2lkICcpJyAlcHJlYyBFTVBUWQ0KfCByZWdjYXN0 X29yX2Fic2RjbCAnKCcgdHlwZV9pZCAnKScgJXByZWMgRU1QVFkNCjsNCg0K Y2FzdF9leHByOg0KdW5hcnlfZXhwcg0KfCByZWdjYXN0X29yX2Fic2RjbCB1 bmFyeV9leHByICAlcHJlYyBVTkFSWQ0KfCByZWdjYXN0X29yX2Fic2RjbCAn eycgaW5pdGxpc3QgbWF5YmVjb21tYSAnfScgICVwcmVjIFVOQVJZDQo7DQoN CmV4cHJfbm9fY29tbWFzOg0KY2FzdF9leHByDQovKiBIYW5kbGUgZ2VuZXJh bCBtZW1iZXJzLiAgKi8NCnwgZXhwcl9ub19jb21tYXMgUE9JTlRTQVRfU1RB UiBleHByX25vX2NvbW1hcw0KfCBleHByX25vX2NvbW1hcyBET1RfU1RBUiBl eHByX25vX2NvbW1hcw0KfCBleHByX25vX2NvbW1hcyAnKycgZXhwcl9ub19j b21tYXMNCnwgZXhwcl9ub19jb21tYXMgJy0nIGV4cHJfbm9fY29tbWFzDQp8 IGV4cHJfbm9fY29tbWFzICcqJyBleHByX25vX2NvbW1hcw0KfCBleHByX25v X2NvbW1hcyAnLycgZXhwcl9ub19jb21tYXMNCnwgZXhwcl9ub19jb21tYXMg JyUnIGV4cHJfbm9fY29tbWFzDQp8IGV4cHJfbm9fY29tbWFzIExTSElGVCBl eHByX25vX2NvbW1hcw0KfCBleHByX25vX2NvbW1hcyBSU0hJRlQgZXhwcl9u b19jb21tYXMNCnwgZXhwcl9ub19jb21tYXMgQVJJVEhDT01QQVJFIGV4cHJf bm9fY29tbWFzDQp8IGV4cHJfbm9fY29tbWFzICc8JyBleHByX25vX2NvbW1h cw0KfCBleHByX25vX2NvbW1hcyAnPicgZXhwcl9ub19jb21tYXMNCnwgZXhw cl9ub19jb21tYXMgRVFDT01QQVJFIGV4cHJfbm9fY29tbWFzDQp8IGV4cHJf bm9fY29tbWFzIE1JTl9NQVggZXhwcl9ub19jb21tYXMNCnwgZXhwcl9ub19j b21tYXMgJyYnIGV4cHJfbm9fY29tbWFzDQp8IGV4cHJfbm9fY29tbWFzICd8 JyBleHByX25vX2NvbW1hcw0KfCBleHByX25vX2NvbW1hcyAnXicgZXhwcl9u b19jb21tYXMNCnwgZXhwcl9ub19jb21tYXMgQU5EQU5EIGV4cHJfbm9fY29t bWFzDQp8IGV4cHJfbm9fY29tbWFzIE9ST1IgZXhwcl9ub19jb21tYXMNCnwg ZXhwcl9ub19jb21tYXMgJz8nIHhleHByICc6JyBleHByX25vX2NvbW1hcw0K fCBleHByX25vX2NvbW1hcyAnPScgZXhwcl9ub19jb21tYXMNCnwgZXhwcl9u b19jb21tYXMgQVNTSUdOIGV4cHJfbm9fY29tbWFzDQp8IFRIUk9XDQp8IFRI Uk9XIGV4cHJfbm9fY29tbWFzDQo7DQoNCm5vdHlwZV91bnF1YWxpZmllZF9p ZDoNCid+JyBzZWVfdHlwZW5hbWUgaWRlbnRpZmllcg0KfCBvcGVyYXRvcl9u YW1lDQp8IElERU5USUZJRVINCnwgUFRZUEVOQU1FDQp8IE5TTkFNRSAlcHJl YyBFTVBUWQ0KOw0KDQp1bnF1YWxpZmllZF9pZDoNCm5vdHlwZV91bnF1YWxp ZmllZF9pZA0KfCBUWVBFREVGTkFNRQ0KOw0KDQpleHByX29yX2RlY2xhcmF0 b3I6DQpub3R5cGVfdW5xdWFsaWZpZWRfaWQNCnwgJyonIGV4cHJfb3JfZGVj bGFyYXRvciAlcHJlYyBVTkFSWQ0KfCAnJicgZXhwcl9vcl9kZWNsYXJhdG9y ICVwcmVjIFVOQVJZDQp8ICcoJyBleHByX29yX2RlY2xhcmF0b3IgJyknDQo7 DQoNCmRpcmVjdF9ub3R5cGVfZGVjbGFyYXRvcjoNCmNvbXBsZXhfZGlyZWN0 X25vdHlwZV9kZWNsYXJhdG9yDQp8IG5vdHlwZV91bnF1YWxpZmllZF9pZA0K fCAnKCcgZXhwcl9vcl9kZWNsYXJhdG9yICcpJw0KOw0KDQpwcmltYXJ5Og0K bm90eXBlX3VucXVhbGlmaWVkX2lkDQp8IGNvbnN0YW50DQp8IGJvb2xlYW4u bGl0ZXJhbA0KfCBzdHJpbmcNCnwgJygnIGV4cHIgJyknDQp8ICcoJyBleHBy X29yX2RlY2xhcmF0b3IgJyknDQp8ICcoJyBlcnJvciAnKScNCnwgJygnIGNv bXBzdG10ICcpJw0KfCBwcmltYXJ5ICcoJyBub25udWxsX2V4cHJsaXN0ICcp JyB0ZW1wbGF0ZV9pbnN0YW50aWF0ZV9zb21lIA0KfCBwcmltYXJ5ICcoJyAn KScNCnwgcHJpbWFyeSAnWycgZXhwciAnXScNCnwgcHJpbWFyeSBQTFVTUExV Uw0KfCBwcmltYXJ5IE1JTlVTTUlOVVMNCnwgVEhJUw0KfCB0eXBlX3F1YWwg JygnIG5vbm51bGxfZXhwcmxpc3QgJyknDQp8IGZ1bmN0aW9uYWxfY2FzdA0K fCBEWU5BTUlDX0NBU1QgJzwnIHR5cGVfaWQgJz4nICcoJyBleHByICcpJw0K fCBTVEFUSUNfQ0FTVCAnPCcgdHlwZV9pZCAnPicgJygnIGV4cHIgJyknDQp8 IFJFSU5URVJQUkVUX0NBU1QgJzwnIHR5cGVfaWQgJz4nICcoJyBleHByICcp Jw0KfCBDT05TVF9DQVNUICc8JyB0eXBlX2lkICc+JyAnKCcgZXhwciAnKScN CnwgVFlQRUlEICcoJyBleHByICcpJw0KfCBUWVBFSUQgJygnIHR5cGVfaWQg JyknDQp8IGdsb2JhbF9zY29wZSBJREVOVElGSUVSDQp8IGdsb2JhbF9zY29w ZSBvcGVyYXRvcl9uYW1lDQp8IG92ZXJxdWFsaWZpZWRfaWQgJXByZWMgSFlQ RVJVTkFSWQ0KfCBvdmVycXVhbGlmaWVkX2lkICcoJyBub25udWxsX2V4cHJs aXN0ICcpJw0KfCBvdmVycXVhbGlmaWVkX2lkICcoJyAnKScNCnwgb2JqZWN0 IHVucXVhbGlmaWVkX2lkICAlcHJlYyBVTkFSWQ0KfCBvYmplY3Qgb3ZlcnF1 YWxpZmllZF9pZCAlcHJlYyBVTkFSWQ0KfCBvYmplY3QgdW5xdWFsaWZpZWRf aWQgJygnIG5vbm51bGxfZXhwcmxpc3QgJyknDQp8IG9iamVjdCB1bnF1YWxp ZmllZF9pZCAnKCcgJyknDQp8IG9iamVjdCBvdmVycXVhbGlmaWVkX2lkICco JyBub25udWxsX2V4cHJsaXN0ICcpJw0KfCBvYmplY3Qgb3ZlcnF1YWxpZmll ZF9pZCAnKCcgJyknDQovKiBwLT5pbnQ6On5pbnQoKSBpcyB2YWxpZCAtLSAx Mi40ICovDQp8IG9iamVjdCAnficgdHlwZV9zcGVjICcoJyAnKScNCnwgb2Jq ZWN0IHR5cGVfc3BlYyBTQ09QRSAnficgdHlwZV9zcGVjICcoJyAnKScNCnwg b2JqZWN0IGVycm9yDQo7DQoNCi8qIE5vdCBuZWVkZWQgZm9yIG5vdy4NCg0K cHJpbWFyeV9ub19pZDoNCicoJyBleHByICcpJw0KfCAnKCcgZXJyb3IgJykn DQp8ICcoJyBjb21wc3RtdCAnKScNCnwgcHJpbWFyeV9ub19pZCAnKCcgbm9u bnVsbF9leHBybGlzdCAnKScNCnwgcHJpbWFyeV9ub19pZCAnKCcgJyknDQp8 IHByaW1hcnlfbm9faWQgJ1snIGV4cHIgJ10nDQp8IHByaW1hcnlfbm9faWQg UExVU1BMVVMNCnwgcHJpbWFyeV9ub19pZCBNSU5VU01JTlVTDQp8IFNDT1BF IElERU5USUZJRVINCnwgU0NPUEUgb3BlcmF0b3JfbmFtZQ0KOw0KKi8NCg0K bmV3OgkgIE5FVw0KfCBnbG9iYWxfc2NvcGUgTkVXDQo7DQoNCmRlbGV0ZToJ ICBERUxFVEUNCnwgZ2xvYmFsX3Njb3BlIGRlbGV0ZQ0KOw0KDQpib29sZWFu LmxpdGVyYWw6DQpDWFhfVFJVRQ0KfCBDWFhfRkFMU0UNCjsNCg0KLyogUHJv ZHVjZXMgYSBTVFJJTkdfQ1NUIHdpdGggcGVyaGFwcyBtb3JlIFNUUklOR19D U1RzIGNoYWluZWQgb250byBpdC4gICovDQpzdHJpbmc6DQpTVFJJTkcNCnwg c3RyaW5nIFNUUklORw0KOw0KDQpub2RlY2xzOg0KLyogZW1wdHkgKi8NCjsN Cg0Kb2JqZWN0OgkgIHByaW1hcnkgJy4nDQp8IHByaW1hcnkgUE9JTlRTQVQN CjsNCg0KZGVjbDoNCi8qIE5vcm1hbCBjYXNlOiBtYWtlIHRoaXMgZmFzdC4g ICovDQp0eXBlc3BlYyBkZWNsYXJhdG9yICc7Jw0KfCB0eXBlZF9kZWNsc3Bl Y3MgZGVjbGFyYXRvciAnOycNCnwgdHlwZXNwZWMgaW5pdGRlY2xzICc7Jw0K fCB0eXBlZF9kZWNsc3BlY3MgaW5pdGRlY2xzICc7Jw0KfCBkZWNsbW9kcyBu b3R5cGVfaW5pdGRlY2xzICc7Jw0KfCB0eXBlZF9kZWNsc3BlY3MgJzsnDQp8 IGRlY2xtb2RzICc7Jw0KOw0KDQovKiBBbnkga2luZCBvZiBkZWNsYXJhdG9y ICh0aHVzLCBhbGwgZGVjbGFyYXRvcnMgYWxsb3dlZA0KYWZ0ZXIgYW4gZXhw bGljaXQgdHlwZXNwZWMpLiAgKi8NCg0KZGVjbGFyYXRvcjoNCmFmdGVyX3R5 cGVfZGVjbGFyYXRvciAlcHJlYyBFTVBUWQ0KfCBub3R5cGVfZGVjbGFyYXRv ciAlcHJlYyBFTVBUWQ0KOw0KDQovKiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBw b3N0cG9uZSByZWR1Y3Rpb24gb2YgYGludCgpKCkoKSgpJy4gICovDQpmY2Fz dF9vcl9hYnNkY2w6DQonKCcgJyknICVwcmVjIEVNUFRZDQp8IGZjYXN0X29y X2Fic2RjbCAnKCcgJyknICVwcmVjIEVNUFRZDQo7DQoNCi8qIEFOU0kgdHlw ZS1pZCAoOC4xKSAqLw0KdHlwZV9pZDoNCnR5cGVkX3R5cGVzcGVjcyBhYnNk Y2wNCnwgbm9uZW1wdHlfdHlwZV9xdWFscyBhYnNkY2wNCnwgdHlwZXNwZWMg YWJzZGNsDQp8IHR5cGVkX3R5cGVzcGVjcyAlcHJlYyBFTVBUWQ0KfCBub25l bXB0eV90eXBlX3F1YWxzICVwcmVjIEVNUFRZDQo7DQoNCi8qIERlY2xzcGVj cyB3aGljaCBjb250YWluIGF0IGxlYXN0IG9uZSB0eXBlIHNwZWNpZmllciBv ciB0eXBlZGVmIG5hbWUuDQooSnVzdCBgY29uc3QnIG9yIGB2b2xhdGlsZScg aXMgbm90IGVub3VnaC4pDQpBIHR5cGVkZWYnZCBuYW1lIGZvbGxvd2luZyB0 aGVzZSBpcyB0YWtlbiBhcyBhIG5hbWUgdG8gYmUgZGVjbGFyZWQuDQpJbiB0 aGUgcmVzdWx0LCBkZWNsc3BlY3MgaGF2ZSBhIG5vbi1OVUxMIFRSRUVfVkFM VUUsIGF0dHJpYnV0ZXMgZG8gbm90LiAgKi8NCg0KdHlwZWRfZGVjbHNwZWNz Og0KdHlwZWRfdHlwZXNwZWNzICVwcmVjIEVNUFRZDQp8IHR5cGVkX2RlY2xz cGVjczENCjsNCg0KdHlwZWRfZGVjbHNwZWNzMToNCmRlY2xtb2RzIHR5cGVz cGVjDQp8IHR5cGVzcGVjIHJlc2VydmVkX2RlY2xzcGVjcwklcHJlYyBIWVBF UlVOQVJZDQp8IHR5cGVzcGVjIHJlc2VydmVkX3R5cGVzcGVjcXVhbHMgcmVz ZXJ2ZWRfZGVjbHNwZWNzDQp8IGRlY2xtb2RzIHR5cGVzcGVjIHJlc2VydmVk X2RlY2xzcGVjcw0KfCBkZWNsbW9kcyB0eXBlc3BlYyByZXNlcnZlZF90eXBl c3BlY3F1YWxzDQp8IGRlY2xtb2RzIHR5cGVzcGVjIHJlc2VydmVkX3R5cGVz cGVjcXVhbHMgcmVzZXJ2ZWRfZGVjbHNwZWNzDQo7DQoNCnJlc2VydmVkX2Rl Y2xzcGVjczoNCnNjc3BlYw0KfCByZXNlcnZlZF9kZWNsc3BlY3MgdHlwZXNw ZWNxdWFsX3Jlc2VydmVkDQp8IHJlc2VydmVkX2RlY2xzcGVjcyBzY3NwZWMN CnwgcmVzZXJ2ZWRfZGVjbHNwZWNzIGF0dHJpYnV0ZXMNCnwgYXR0cmlidXRl cw0KOw0KDQovKiBMaXN0IG9mIGp1c3Qgc3RvcmFnZSBjbGFzc2VzIGFuZCB0 eXBlIG1vZGlmaWVycy4NCkEgZGVjbGFyYXRpb24gY2FuIHN0YXJ0IHdpdGgg anVzdCB0aGlzLCBidXQgdGhlbiBpdCBjYW5ub3QgYmUgdXNlZA0KdG8gcmVk ZWNsYXJlIGEgdHlwZWRlZi1uYW1lLg0KSW4gdGhlIHJlc3VsdCwgZGVjbHNw ZWNzIGhhdmUgYSBub24tTlVMTCBUUkVFX1ZBTFVFLCBhdHRyaWJ1dGVzIGRv IG5vdC4gICovDQoNCmRlY2xtb2RzOg0Kbm9uZW1wdHlfdHlwZV9xdWFscyAl cHJlYyBFTVBUWQ0KfCBzY3NwZWMNCnwgZGVjbG1vZHMgdHlwZV9xdWFsDQp8 IGRlY2xtb2RzIHNjc3BlYw0KfCBkZWNsbW9kcyBhdHRyaWJ1dGVzDQp8IGF0 dHJpYnV0ZXMNCjsNCg0KLyogVXNlZCBpbnN0ZWFkIG9mIGRlY2xzcGVjcyB3 aGVyZSBzdG9yYWdlIGNsYXNzZXMgYXJlIG5vdCBhbGxvd2VkDQoodGhhdCBp cywgZm9yIHR5cGVuYW1lcyBhbmQgc3RydWN0dXJlIGNvbXBvbmVudHMpLg0K DQpDKysgY2FuIHRha2VzIHN0b3JhZ2UgY2xhc3NlcyBmb3Igc3RydWN0dXJl IGNvbXBvbmVudHMuDQpEb24ndCBhY2NlcHQgYSB0eXBlZGVmLW5hbWUgaWYg YW55dGhpbmcgYnV0IGEgbW9kaWZpZXIgcHJlY2VkZXMgaXQuICAqLw0KDQp0 eXBlZF90eXBlc3BlY3M6DQp0eXBlc3BlYyAgJXByZWMgRU1QVFkNCnwgbm9u ZW1wdHlfdHlwZV9xdWFscyB0eXBlc3BlYw0KfCB0eXBlc3BlYyByZXNlcnZl ZF90eXBlc3BlY3F1YWxzDQp8IG5vbmVtcHR5X3R5cGVfcXVhbHMgdHlwZXNw ZWMgcmVzZXJ2ZWRfdHlwZXNwZWNxdWFscw0KOw0KDQpyZXNlcnZlZF90eXBl c3BlY3F1YWxzOg0KdHlwZXNwZWNxdWFsX3Jlc2VydmVkDQp8IHJlc2VydmVk X3R5cGVzcGVjcXVhbHMgdHlwZXNwZWNxdWFsX3Jlc2VydmVkDQo7DQoNCi8q IEEgdHlwZXNwZWMgKGJ1dCBub3QgYSB0eXBlIHF1YWxpZmllcikuDQpPbmNl IHdlIGhhdmUgc2VlbiBvbmUgb2YgdGhlc2UgaW4gYSBkZWNsYXJhdGlvbiwN CmlmIGEgdHlwZWRlZiBuYW1lIGFwcGVhcnMgdGhlbiBpdCBpcyBiZWluZyBy ZWRlY2xhcmVkLiAgKi8NCg0KdHlwZXNwZWM6IHN0cnVjdHNwDQp8IHR5cGVf c3BlYyAgJXByZWMgRU1QVFkNCnwgY29tcGxldGVfdHlwZV9uYW1lDQp8IFRZ UEVPRiAnKCcgZXhwciAnKScNCnwgVFlQRU9GICcoJyB0eXBlX2lkICcpJw0K fCBTSUdPRiAnKCcgZXhwciAnKScNCnwgU0lHT0YgJygnIHR5cGVfaWQgJykn DQo7DQoNCi8qIEEgdHlwZXNwZWMgdGhhdCBpcyBhIHJlc2VydmVkIHdvcmQs IG9yIGEgdHlwZSBxdWFsaWZpZXIuICAqLw0KDQp0eXBlc3BlY3F1YWxfcmVz ZXJ2ZWQ6IHR5cGVfc3BlYw0KfCB0eXBlX3F1YWwNCnwgc3RydWN0c3ANCjsN Cg0KaW5pdGRlY2xzOg0KaW5pdGRjbDANCnwgaW5pdGRlY2xzICcsJyBpbml0 ZGNsDQo7DQoNCm5vdHlwZV9pbml0ZGVjbHM6DQpub3R5cGVfaW5pdGRjbDAN Cnwgbm90eXBlX2luaXRkZWNscyAnLCcgaW5pdGRjbA0KOw0KDQpub21vZHNf aW5pdGRlY2xzOg0Kbm9tb2RzX2luaXRkY2wwDQp8IG5vbW9kc19pbml0ZGVj bHMgJywnIGluaXRkY2wNCjsNCg0KbWF5YmVhc206DQovKiBlbXB0eSAqLw0K fCBhc21fa2V5d29yZCAnKCcgc3RyaW5nICcpJw0KOw0KDQppbml0ZGNsMDoN CmRlY2xhcmF0b3IgZXhjZXB0aW9uX3NwZWNpZmljYXRpb25fb3B0IG1heWJl YXNtIG1heWJlX2F0dHJpYnV0ZSAnPScNCmluaXQNCi8qIE5vdGUgaG93IHRo ZSBkZWNsYXJhdGlvbiBvZiB0aGUgdmFyaWFibGUgaXMgaW4gZWZmZWN0IHdo aWxlIGl0cyBpbml0IGlzIHBhcnNlZCEgKi8NCnwgZGVjbGFyYXRvciBleGNl cHRpb25fc3BlY2lmaWNhdGlvbl9vcHQgbWF5YmVhc20gbWF5YmVfYXR0cmli dXRlDQo7DQoNCmluaXRkY2w6DQpkZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVj aWZpY2F0aW9uX29wdCBtYXliZWFzbSBtYXliZV9hdHRyaWJ1dGUgJz0nDQpp bml0DQovKiBOb3RlIGhvdyB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIHZhcmlh YmxlIGlzIGluIGVmZmVjdCB3aGlsZSBpdHMgaW5pdCBpcyBwYXJzZWQhICov DQp8IGRlY2xhcmF0b3IgZXhjZXB0aW9uX3NwZWNpZmljYXRpb25fb3B0IG1h eWJlYXNtIG1heWJlX2F0dHJpYnV0ZQ0KOw0KDQpub3R5cGVfaW5pdGRjbDA6 DQpub3R5cGVfZGVjbGFyYXRvciBleGNlcHRpb25fc3BlY2lmaWNhdGlvbl9v cHQgbWF5YmVhc20gbWF5YmVfYXR0cmlidXRlICc9JyBpbml0DQovKiBOb3Rl IGhvdyB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIHZhcmlhYmxlIGlzIGluIGVm ZmVjdCB3aGlsZSBpdHMgaW5pdCBpcyBwYXJzZWQhICovDQp8IG5vdHlwZV9k ZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVjaWZpY2F0aW9uX29wdCBtYXliZWFz bSBtYXliZV9hdHRyaWJ1dGUNCjsNCg0Kbm9tb2RzX2luaXRkY2wwOg0Kbm90 eXBlX2RlY2xhcmF0b3IgZXhjZXB0aW9uX3NwZWNpZmljYXRpb25fb3B0IG1h eWJlYXNtIG1heWJlX2F0dHJpYnV0ZSAnPScgaW5pdA0KLyogTm90ZSBob3cg dGhlIGRlY2xhcmF0aW9uIG9mIHRoZSB2YXJpYWJsZSBpcyBpbiBlZmZlY3Qg d2hpbGUgaXRzIGluaXQgaXMgcGFyc2VkISAqLw0KfCBub3R5cGVfZGVjbGFy YXRvciBleGNlcHRpb25fc3BlY2lmaWNhdGlvbl9vcHQgbWF5YmVhc20gbWF5 YmVfYXR0cmlidXRlDQo7DQoNCi8qIHRoZSAqIHJ1bGVzIGFyZSBkdW1taWVz IHRvIGFjY2VwdCB0aGUgQXBvbGxvIGV4dGVuZGVkIHN5bnRheA0Kc28gdGhh dCB0aGUgaGVhZGVyIGZpbGVzIGNvbXBpbGUuICovDQptYXliZV9hdHRyaWJ1 dGU6DQovKiBlbXB0eSAqLw0KfCBhdHRyaWJ1dGVzDQo7DQoNCmF0dHJpYnV0 ZXM6DQphdHRyaWJ1dGUNCnwgYXR0cmlidXRlcyBhdHRyaWJ1dGUNCjsNCg0K YXR0cmlidXRlOg0KQVRUUklCVVRFICcoJyAnKCcgYXR0cmlidXRlX2xpc3Qg JyknICcpJw0KOw0KDQphdHRyaWJ1dGVfbGlzdDoNCmF0dHJpYg0KfCBhdHRy aWJ1dGVfbGlzdCAnLCcgYXR0cmliDQo7DQoNCmF0dHJpYjoNCi8qIGVtcHR5 ICovDQp8IGFueV93b3JkDQp8IGFueV93b3JkICcoJyBJREVOVElGSUVSICcp Jw0KfCBhbnlfd29yZCAnKCcgSURFTlRJRklFUiAnLCcgbm9ubnVsbF9leHBy bGlzdCAnKScNCnwgYW55X3dvcmQgJygnIG5vbm51bGxfZXhwcmxpc3QgJykn DQo7DQoNCi8qIFRoaXMgc3RpbGwgbGVhdmVzIG91dCBtb3N0IHJlc2VydmVk IGtleXdvcmRzLA0Kc2hvdWxkbid0IHdlIGluY2x1ZGUgdGhlbT8gICovDQoN CmFueV93b3JkOg0KaWRlbnRpZmllcg0KfCBzY3NwZWMNCnwgdHlwZV9zcGVj DQp8IHR5cGVfcXVhbA0KOw0KDQovKiBBIG5vbmVtcHR5IGxpc3Qgb2YgaWRl bnRpZmllcnMsIGluY2x1ZGluZyB0eXBlbmFtZXMuICAqLw0KaWRlbnRpZmll cnNfb3JfdHlwZW5hbWVzOg0KaWRlbnRpZmllcg0KfCBpZGVudGlmaWVyc19v cl90eXBlbmFtZXMgJywnIGlkZW50aWZpZXINCjsNCg0KbWF5YmVfaW5pdDoN CiVwcmVjIEVNUFRZIC8qIGVtcHR5ICovDQp8ICc9JyBpbml0DQoNCmluaXQ6 DQpleHByX25vX2NvbW1hcyAlcHJlYyAnPScNCnwgJ3snICd9Jw0KfCAneycg aW5pdGxpc3QgJ30nDQp8ICd7JyBpbml0bGlzdCAnLCcgJ30nDQp8IGVycm9y DQo7DQoNCi8qIFRoaXMgY2hhaW4gaXMgYnVpbHQgaW4gcmV2ZXJzZSBvcmRl ciwNCmFuZCBwdXQgaW4gZm9yd2FyZCBvcmRlciB3aGVyZSBpbml0bGlzdCBp cyB1c2VkLiAgKi8NCmluaXRsaXN0Og0KaW5pdA0KfCBpbml0bGlzdCAnLCcg aW5pdA0KfCAnWycgZXhwcl9ub19jb21tYXMgJ10nIGluaXQNCnwgaW5pdGxp c3QgJywnIENBU0UgZXhwcl9ub19jb21tYXMgJzonIGluaXQNCnwgaWRlbnRp ZmllciAnOicgaW5pdA0KfCBpbml0bGlzdCAnLCcgaWRlbnRpZmllciAnOicg aW5pdA0KOw0KDQpzdHJ1Y3RzcDoNCkVOVU0gaWRlbnRpZmllciAneycgZW51 bWxpc3QgbWF5YmVjb21tYV93YXJuICd9Jw0KfCBFTlVNIGlkZW50aWZpZXIg J3snICd9Jw0KfCBFTlVNICd7JyBlbnVtbGlzdCBtYXliZWNvbW1hX3dhcm4g J30nDQp8IEVOVU0gJ3snICd9Jw0KfCBFTlVNIGlkZW50aWZpZXINCnwgRU5V TSBjb21wbGV4X3R5cGVfbmFtZQ0KfCBUWVBFTkFNRV9LRVlXT1JEIGNvbXBs ZXhfdHlwZV9uYW1lDQovKiBDKysgZXh0ZW5zaW9ucywgbWVyZ2VkIHdpdGgg QyB0byBhdm9pZCBzaGlmdC9yZWR1Y2UgY29uZmxpY3RzICovDQp8IGNsYXNz X2hlYWQgJ3snIG9wdC5jb21wb25lbnRfZGVjbF9saXN0ICd9Jw0KfCBjbGFz c19oZWFkICAlcHJlYyBFTVBUWQ0KOw0KDQptYXliZWNvbW1hOg0KLyogZW1w dHkgKi8NCnwgJywnDQo7DQoNCm1heWJlY29tbWFfd2FybjoNCi8qIGVtcHR5 ICovDQp8ICcsJw0KOw0KDQphZ2dyOgkgIEFHR1INCnwgYWdnciBzY3NwZWMN CnwgYWdnciB0eXBlX3NwZWMNCnwgYWdnciB0eXBlX3F1YWwNCnwgYWdnciBB R0dSDQo7DQoNCnR5cGVfc3BlYzoNCklOVA0KfCBDSEFSDQp8IEZMT0FUDQp8 IFZPSUQNCnwgU0hPUlQNCnwgTE9ORw0KfCBTSUdORUQNCnwgVU5TSUdORUQN CnwgRE9VQkxFDQo7DQpzcGVjaWFsaXphdGlvbjoNCmFnZ3IgdGVtcGxhdGVf dHlwZV9uYW1lICc7Jw0KOw0KDQpuYW1lZF9jbGFzc19oZWFkX3NhbnNfYmFz ZXR5cGU6DQphZ2dyIGlkZW50aWZpZXINCnwgc3BlY2lhbGl6YXRpb24NCjsN Cg0KbmFtZWRfY2xhc3NfaGVhZF9zYW5zX2Jhc2V0eXBlX2RlZm46DQphZ2dy IGlkZW50aWZpZXJfZGVmbiAlcHJlYyBFTVBUWQ0KfCBhZ2dyIHRlbXBsYXRl X3R5cGVfbmFtZSAneycNCnwgYWdnciB0ZW1wbGF0ZV90eXBlX25hbWUgJzon DQo7DQoNCm5hbWVkX2NvbXBsZXhfY2xhc3NfaGVhZF9zYW5zX2Jhc2V0eXBl Og0KYWdnciBuZXN0ZWRfbmFtZV9zcGVjaWZpZXIgaWRlbnRpZmllcg0KfCBh Z2dyIHRlbXBsYXRlX3R5cGUgJXByZWMgRU1QVFkNCjsNCg0KZG9feHJlZl9k ZWZuOiAvKiBlbXB0eSAqLyAlcHJlYyBFTVBUWQ0KOw0KDQpuYW1lZF9jbGFz c19oZWFkOg0KbmFtZWRfY2xhc3NfaGVhZF9zYW5zX2Jhc2V0eXBlICVwcmVj IEVNUFRZDQp8IG5hbWVkX2NsYXNzX2hlYWRfc2Fuc19iYXNldHlwZV9kZWZu IGRvX3hyZWZfZGVmbg0KbWF5YmVfYmFzZV9jbGFzc19saXN0ICVwcmVjIEVN UFRZDQp8IG5hbWVkX2NvbXBsZXhfY2xhc3NfaGVhZF9zYW5zX2Jhc2V0eXBl IG1heWJlX2Jhc2VfY2xhc3NfbGlzdA0KOw0KDQp1bm5hbWVkX2NsYXNzX2hl YWQ6IGFnZ3IgJ3snDQo7DQoNCmNsYXNzX2hlYWQ6IHVubmFtZWRfY2xhc3Nf aGVhZCB8IG5hbWVkX2NsYXNzX2hlYWQgOw0KDQptYXliZV9iYXNlX2NsYXNz X2xpc3Q6DQolcHJlYyBFTVBUWSAvKiBlbXB0eSAqLw0KfCAnOicgc2VlX3R5 cGVuYW1lICVwcmVjIEVNUFRZDQp8ICc6JyBzZWVfdHlwZW5hbWUgYmFzZV9j bGFzc19saXN0ICAlcHJlYyBFTVBUWQ0KOw0KDQpiYXNlX2NsYXNzX2xpc3Q6 DQpiYXNlX2NsYXNzDQp8IGJhc2VfY2xhc3NfbGlzdCAnLCcgc2VlX3R5cGVu YW1lIGJhc2VfY2xhc3MNCjsNCg0KYmFzZV9jbGFzczoNCmJhc2VfY2xhc3Mu MQ0KfCBiYXNlX2NsYXNzX2FjY2Vzc19saXN0IHNlZV90eXBlbmFtZSBiYXNl X2NsYXNzLjENCjsNCg0KYmFzZV9jbGFzcy4xOg0KY29tcGxldGVfdHlwZV9u YW1lDQp8IFNJR09GICcoJyBleHByICcpJw0KfCBTSUdPRiAnKCcgdHlwZV9p ZCAnKScNCjsNCg0KYmFzZV9jbGFzc19hY2Nlc3NfbGlzdDoNCnZpc3NwZWMg c2VlX3R5cGVuYW1lDQp8IHNjc3BlYyBzZWVfdHlwZW5hbWUNCnwgYmFzZV9j bGFzc19hY2Nlc3NfbGlzdCB2aXNzcGVjIHNlZV90eXBlbmFtZQ0KfCBiYXNl X2NsYXNzX2FjY2Vzc19saXN0IHNjc3BlYyBzZWVfdHlwZW5hbWUNCjsNCnNj c3BlYzoNClRZUEVERUYNCnwgQVVUTw0KfCBSRUdJU1RFUg0KfCBTVEFUSUMN CnwgRlJJRU5EDQp8IFZJUlRVQUwNCnwgSU5MSU5FDQp8IEVYVEVSTg0KfCBP VkVSTE9BRA0KOw0KDQpvcHQuY29tcG9uZW50X2RlY2xfbGlzdDoNCi8qIGVt cHR5ICovDQp8IGNvbXBvbmVudF9kZWNsX2xpc3QNCnwgb3B0LmNvbXBvbmVu dF9kZWNsX2xpc3Qgdmlzc3BlYyAnOicgY29tcG9uZW50X2RlY2xfbGlzdA0K fCBvcHQuY29tcG9uZW50X2RlY2xfbGlzdCB2aXNzcGVjICc6Jw0KOw0KDQov KiBOb3RlOiB3ZSBubyBsb25nZXIgd2FybiBhYm91dCB0aGUgc2VtaWNvbG9u IGFmdGVyIGEgY29tcG9uZW50X2RlY2xfbGlzdC4NCkFSTSAkOS4yIHNheXMg dGhhdCB0aGUgc2VtaWNvbG9uIGlzIG9wdGlvbmFsLCBhbmQgdGhlcmVmb3Jl IGFsbG93ZWQuICAqLw0KY29tcG9uZW50X2RlY2xfbGlzdDoNCmNvbXBvbmVu dF9kZWNsDQp8IGNvbXBvbmVudF9kZWNsX2xpc3QgY29tcG9uZW50X2RlY2wN CjsNCg0Kdmlzc3BlYzoNClBVQkxJQw0KfCBQUklWQVRFDQp8IFBST1RFQ1RF RA0KOw0KDQpjb21wb25lbnRfZGVjbDoNCmNvbXBvbmVudF9kZWNsXzEgJzsn DQp8IGNvbXBvbmVudF9kZWNsXzEgJ30nDQovKiBDKys6IGhhbmRsZSBjb25z dHJ1Y3RvcnMsIGRlc3RydWN0b3JzIGFuZCBpbmxpbmUgZnVuY3Rpb25zICov DQovKiBub3RlIHRoYXQgSU5MSU5FIGlzIGxpa2UgYSBUWVBFU1BFQyAqLw0K fCBmbi5kZWYyICc6JyAvKiBiYXNlX2luaXQgY29tcHN0bXQgKi8NCnwgZm4u ZGVmMiBUUlkgLyogYmFzZV9pbml0IGNvbXBzdG10ICovDQp8IGZuLmRlZjIg UkVUVVJOIC8qIGJhc2VfaW5pdCBjb21wc3RtdCAqLw0KfCBmbi5kZWYyICd7 JyAvKiBub2RlY2xzIGNvbXBzdG10ICovDQp8ICc7Jw0KOw0KDQpjb21wb25l bnRfZGVjbF8xOg0KLyogRG8gbm90IGFkZCBhICJ0eXBlZF9kZWNsc3BlY3Mg ZGVjbGFyYXRvciIgcnVsZSBoZXJlIGZvcg0Kc3BlZWQ7IHdlIG5lZWQgdG8g Y2FsbCBncm9rX3hfY29tcG9uZW50cyBmb3IgZW51bXMsIHNvIHRoZQ0Kc3Bl ZWR1cCB3b3VsZCBiZSBpbnNpZ25pZmljYW50LiAgKi8NCnR5cGVkX2RlY2xz cGVjcyBjb21wb25lbnRzDQp8IGRlY2xtb2RzIG5vdHlwZV9jb21wb25lbnRz DQp8IG5vdHlwZV9kZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVjaWZpY2F0aW9u X29wdCBtYXliZWFzbSBtYXliZV9hdHRyaWJ1dGUgbWF5YmVfaW5pdA0KfCAn OicgZXhwcl9ub19jb21tYXMNCnwgZXJyb3INCnwgdHlwZWRfZGVjbHNwZWNz ICcoJyBwYXJtbGlzdCAnKScgdHlwZV9xdWFscyBleGNlcHRpb25fc3BlY2lm aWNhdGlvbl9vcHQgbWF5YmVhc20gbWF5YmVfYXR0cmlidXRlIG1heWJlX2lu aXQNCnwgdHlwZWRfZGVjbHNwZWNzICcoJyAnKScgdHlwZV9xdWFscyBleGNl cHRpb25fc3BlY2lmaWNhdGlvbl9vcHQgbWF5YmVhc20gbWF5YmVfYXR0cmli dXRlIG1heWJlX2luaXQNCnwgdXNpbmdfZGVjbA0KOw0KDQpjb21wb25lbnRz Og0KLyogZW1wdHk6IHBvc3NpYmx5IGFub255bW91cyAqLw0KfCBjb21wb25l bnRfZGVjbGFyYXRvcjANCnwgY29tcG9uZW50cyAnLCcgY29tcG9uZW50X2Rl Y2xhcmF0b3INCjsNCg0Kbm90eXBlX2NvbXBvbmVudHM6DQovKiBlbXB0eTog cG9zc2libHkgYW5vbnltb3VzICovDQp8IG5vdHlwZV9jb21wb25lbnRfZGVj bGFyYXRvcjANCnwgbm90eXBlX2NvbXBvbmVudHMgJywnIG5vdHlwZV9jb21w b25lbnRfZGVjbGFyYXRvcg0KOw0KDQpjb21wb25lbnRfZGVjbGFyYXRvcjA6 DQphZnRlcl90eXBlX2NvbXBvbmVudF9kZWNsYXJhdG9yMA0KfCBub3R5cGVf Y29tcG9uZW50X2RlY2xhcmF0b3IwDQo7DQoNCmNvbXBvbmVudF9kZWNsYXJh dG9yOg0KYWZ0ZXJfdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcg0KfCBub3R5 cGVfY29tcG9uZW50X2RlY2xhcmF0b3INCjsNCg0KYWZ0ZXJfdHlwZV9jb21w b25lbnRfZGVjbGFyYXRvcjA6DQphZnRlcl90eXBlX2RlY2xhcmF0b3IgZXhj ZXB0aW9uX3NwZWNpZmljYXRpb25fb3B0IG1heWJlYXNtIG1heWJlX2F0dHJp YnV0ZSBtYXliZV9pbml0DQp8IFRZUEVERUZOQU1FICc6JyBleHByX25vX2Nv bW1hcyBtYXliZV9hdHRyaWJ1dGUNCjsNCg0Kbm90eXBlX2NvbXBvbmVudF9k ZWNsYXJhdG9yMDoNCm5vdHlwZV9kZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVj aWZpY2F0aW9uX29wdCBtYXliZWFzbSBtYXliZV9hdHRyaWJ1dGUgbWF5YmVf aW5pdA0KfCBJREVOVElGSUVSICc6JyBleHByX25vX2NvbW1hcyBtYXliZV9h dHRyaWJ1dGUNCnwgJzonIGV4cHJfbm9fY29tbWFzIG1heWJlX2F0dHJpYnV0 ZQ0KOw0KDQphZnRlcl90eXBlX2NvbXBvbmVudF9kZWNsYXJhdG9yOg0KYWZ0 ZXJfdHlwZV9kZWNsYXJhdG9yIGV4Y2VwdGlvbl9zcGVjaWZpY2F0aW9uX29w dCBtYXliZWFzbSBtYXliZV9hdHRyaWJ1dGUgbWF5YmVfaW5pdA0KfCBUWVBF REVGTkFNRSAnOicgZXhwcl9ub19jb21tYXMgbWF5YmVfYXR0cmlidXRlDQo7 DQoNCm5vdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcjoNCm5vdHlwZV9kZWNs YXJhdG9yIGV4Y2VwdGlvbl9zcGVjaWZpY2F0aW9uX29wdCBtYXliZWFzbSBt YXliZV9hdHRyaWJ1dGUgbWF5YmVfaW5pdA0KfCBJREVOVElGSUVSICc6JyBl eHByX25vX2NvbW1hcyBtYXliZV9hdHRyaWJ1dGUNCnwgJzonIGV4cHJfbm9f Y29tbWFzIG1heWJlX2F0dHJpYnV0ZQ0KOw0KDQovKiBXZSBjaGFpbiB0aGUg ZW51bWVyYXRvcnMgaW4gcmV2ZXJzZSBvcmRlci4NCkJlY2F1c2Ugb2YgdGhl IHdheSBlbnVtcyBhcmUgYnVpbHQsIHRoZSBvcmRlciBpcw0KaW5zaWduaWZp Y2FudC4gIFRha2UgYWR2YW50YWdlIG9mIHRoaXMgZmFjdC4gICovDQoNCmVu dW1saXN0Og0KZW51bWVyYXRvcg0KfCBlbnVtbGlzdCAnLCcgZW51bWVyYXRv cg0KOw0KDQplbnVtZXJhdG9yOg0KaWRlbnRpZmllcg0KfCBpZGVudGlmaWVy ICc9JyBleHByX25vX2NvbW1hcw0KOw0KDQovKiBBTlNJIG5ldy10eXBlLWlk ICg1LjMuNCkgKi8NCm5ld190eXBlX2lkOg0KdHlwZV9zcGVjaWZpZXJfc2Vx IG5ld19kZWNsYXJhdG9yDQp8IHR5cGVfc3BlY2lmaWVyX3NlcSAlcHJlYyBF TVBUWQ0KLyogR05VIGV4dGVuc2lvbiB0byBhbGxvdyBhcnJheXMgb2YgYXJi aXRyYXJ5IHR5cGVzIHdpdGgNCm5vbi1jb25zdGFudCBkaW1lbnNpb24uICAq Lw0KfCAnKCcgdHlwZV9pZCAnKScgJ1snIGV4cHIgJ10nDQo7DQoNCnR5cGVf cXVhbHM6DQovKiBlbXB0eSAqLyAlcHJlYyBFTVBUWQ0KfCB0eXBlX3F1YWxz IHR5cGVfcXVhbA0KOw0KDQpub25lbXB0eV90eXBlX3F1YWxzOg0KdHlwZV9x dWFsDQp8IG5vbmVtcHR5X3R5cGVfcXVhbHMgdHlwZV9xdWFsDQo7DQoNCi8q IFRoZXNlIHJ1bGVzIG11c3QgZm9sbG93IHRoZSBydWxlcyBmb3IgZnVuY3Rp b24gZGVjbGFyYXRpb25zDQphbmQgY29tcG9uZW50IGRlY2xhcmF0aW9ucy4g IFRoYXQgd2F5LCBsb25nZXIgcnVsZXMgYXJlIHByZWZlcnJlZC4gICovDQoN CnN1c3BlbmRfbW9tOg0KDQovKiBBbiBleHByZXNzaW9uIHdoaWNoIHdpbGwg bm90IGxpdmUgb24gdGhlIG1vbWVudGFyeSBvYnN0YWNrLiAgKi8NCm5vbm1v bWVudGFyeV9leHByOg0Kc3VzcGVuZF9tb20gZXhwcg0KOw0KDQovKiBBbiBl eHByZXNzaW9uIHdoaWNoIHdpbGwgbm90IGxpdmUgb24gdGhlIG1vbWVudGFy eSBvYnN0YWNrLiAgKi8NCm1heWJlX3Bhcm1saXN0Og0Kc3VzcGVuZF9tb20g JygnIG5vbm51bGxfZXhwcmxpc3QgJyknDQp8IHN1c3BlbmRfbW9tICcoJyBw YXJtbGlzdCAnKScNCnwgc3VzcGVuZF9tb20gJygnICcpJw0KfCBzdXNwZW5k X21vbSAnKCcgZXJyb3IgJyknDQo7DQoNCi8qIEEgZGVjbGFyYXRvciB0aGF0 IGlzIGFsbG93ZWQgb25seSBhZnRlciBhbiBleHBsaWNpdCB0eXBlc3BlYy4g ICovDQovKiBtYXkgYWxsIGJlIGZvbGxvd2VkIGJ5IHByZWMgJy4nICovDQph ZnRlcl90eXBlX2RlY2xhcmF0b3I6DQonKicgbm9uZW1wdHlfdHlwZV9xdWFs cyBhZnRlcl90eXBlX2RlY2xhcmF0b3IgICVwcmVjIFVOQVJZDQp8ICcmJyBu b25lbXB0eV90eXBlX3F1YWxzIGFmdGVyX3R5cGVfZGVjbGFyYXRvciAgJXBy ZWMgVU5BUlkNCnwgJyonIGFmdGVyX3R5cGVfZGVjbGFyYXRvciAgJXByZWMg VU5BUlkNCnwgJyYnIGFmdGVyX3R5cGVfZGVjbGFyYXRvciAgJXByZWMgVU5B UlkNCnwgcHRyX3RvX21lbSB0eXBlX3F1YWxzIGFmdGVyX3R5cGVfZGVjbGFy YXRvcg0KfCBkaXJlY3RfYWZ0ZXJfdHlwZV9kZWNsYXJhdG9yDQo7DQoNCnF1 YWxpZmllZF90eXBlX25hbWU6DQp0eXBlX25hbWUgJXByZWMgRU1QVFkNCnwg bmVzdGVkX3R5cGUNCjsNCg0KbmVzdGVkX3R5cGU6DQpuZXN0ZWRfbmFtZV9z cGVjaWZpZXIgdHlwZV9uYW1lICVwcmVjIEVNUFRZDQo7DQoNCmRpcmVjdF9h ZnRlcl90eXBlX2RlY2xhcmF0b3I6DQpkaXJlY3RfYWZ0ZXJfdHlwZV9kZWNs YXJhdG9yIG1heWJlX3Bhcm1saXN0IHR5cGVfcXVhbHMgJXByZWMgJy4nDQp8 IGRpcmVjdF9hZnRlcl90eXBlX2RlY2xhcmF0b3IgJ1snIG5vbm1vbWVudGFy eV9leHByICddJw0KfCBkaXJlY3RfYWZ0ZXJfdHlwZV9kZWNsYXJhdG9yICdb JyAnXScNCnwgJygnIGFmdGVyX3R5cGVfZGVjbGFyYXRvciAnKScNCnwgbmVz dGVkX25hbWVfc3BlY2lmaWVyIHR5cGVfbmFtZSAlcHJlYyBFTVBUWQ0KfCB0 eXBlX25hbWUgJXByZWMgRU1QVFkNCjsNCg0KLyogQSBkZWNsYXJhdG9yIGFs bG93ZWQgd2hldGhlciBvciBub3QgdGhlcmUgaGFzIGJlZW4NCmFuIGV4cGxp Y2l0IHR5cGVzcGVjLiAgVGhlc2UgY2Fubm90IHJlZGVjbGFyZSBhIHR5cGVk ZWYtbmFtZS4gICovDQoNCm5vdHlwZV9kZWNsYXJhdG9yOg0KJyonIG5vbmVt cHR5X3R5cGVfcXVhbHMgbm90eXBlX2RlY2xhcmF0b3IgICVwcmVjIFVOQVJZ DQp8ICcmJyBub25lbXB0eV90eXBlX3F1YWxzIG5vdHlwZV9kZWNsYXJhdG9y ICAlcHJlYyBVTkFSWQ0KfCAnKicgbm90eXBlX2RlY2xhcmF0b3IgICVwcmVj IFVOQVJZDQp8ICcmJyBub3R5cGVfZGVjbGFyYXRvciAgJXByZWMgVU5BUlkN CnwgcHRyX3RvX21lbSB0eXBlX3F1YWxzIG5vdHlwZV9kZWNsYXJhdG9yDQp8 IGRpcmVjdF9ub3R5cGVfZGVjbGFyYXRvcg0KOw0KDQpjb21wbGV4X25vdHlw ZV9kZWNsYXJhdG9yOg0KJyonIG5vbmVtcHR5X3R5cGVfcXVhbHMgbm90eXBl X2RlY2xhcmF0b3IgICVwcmVjIFVOQVJZDQp8ICcmJyBub25lbXB0eV90eXBl X3F1YWxzIG5vdHlwZV9kZWNsYXJhdG9yICAlcHJlYyBVTkFSWQ0KfCAnKicg Y29tcGxleF9ub3R5cGVfZGVjbGFyYXRvciAgJXByZWMgVU5BUlkNCnwgJyYn IGNvbXBsZXhfbm90eXBlX2RlY2xhcmF0b3IgICVwcmVjIFVOQVJZDQp8IHB0 cl90b19tZW0gdHlwZV9xdWFscyBub3R5cGVfZGVjbGFyYXRvcg0KfCBjb21w bGV4X2RpcmVjdF9ub3R5cGVfZGVjbGFyYXRvcg0KOw0KDQpjb21wbGV4X2Rp cmVjdF9ub3R5cGVfZGVjbGFyYXRvcjoNCmRpcmVjdF9ub3R5cGVfZGVjbGFy YXRvciBtYXliZV9wYXJtbGlzdCB0eXBlX3F1YWxzICAlcHJlYyAnLicNCnwg JygnIGNvbXBsZXhfbm90eXBlX2RlY2xhcmF0b3IgJyknDQp8IGRpcmVjdF9u b3R5cGVfZGVjbGFyYXRvciAnWycgbm9ubW9tZW50YXJ5X2V4cHIgJ10nDQp8 IGRpcmVjdF9ub3R5cGVfZGVjbGFyYXRvciAnWycgJ10nDQp8IG5vdHlwZV9x dWFsaWZpZWRfaWQNCjsNCg0KcXVhbGlmaWVkX2lkOg0KbmVzdGVkX25hbWVf c3BlY2lmaWVyIHVucXVhbGlmaWVkX2lkDQo7DQoNCm5vdHlwZV9xdWFsaWZp ZWRfaWQ6DQpuZXN0ZWRfbmFtZV9zcGVjaWZpZXIgbm90eXBlX3VucXVhbGlm aWVkX2lkDQo7DQoNCm92ZXJxdWFsaWZpZWRfaWQ6DQpub3R5cGVfcXVhbGlm aWVkX2lkDQp8IGdsb2JhbF9zY29wZSBub3R5cGVfcXVhbGlmaWVkX2lkDQo7 DQoNCmZ1bmN0aW9uYWxfY2FzdDoNCnR5cGVzcGVjICcoJyBub25udWxsX2V4 cHJsaXN0ICcpJw0KfCB0eXBlc3BlYyAnKCcgZXhwcl9vcl9kZWNsYXJhdG9y ICcpJw0KfCB0eXBlc3BlYyBmY2FzdF9vcl9hYnNkY2wgJXByZWMgRU1QVFkN CjsNCg0KdHlwZV9uYW1lOg0KVFlQRURFRk5BTUUNCnwgdGVtcGxhdGVfdHlw ZSAlcHJlYyBFTVBUWQ0KOw0KDQpuZXN0ZWRfbmFtZV9zcGVjaWZpZXI6DQpu ZXN0ZWRfbmFtZV9zcGVjaWZpZXJfMQ0KfCBuZXN0ZWRfbmFtZV9zcGVjaWZp ZXIgbmVzdGVkX25hbWVfc3BlY2lmaWVyXzENCjsNCg0KLyogV2h5IHRoZSBA QCMkJV4mIGRvIHR5cGVfbmFtZSBhbmQgbm90eXBlX2lkZW50aWZpZXIgbmVl ZCB0byBiZSBleHBhbmRlZA0KaW5saW5lIGhlcmU/IT8gIChqYXNvbikgKi8N Cm5lc3RlZF9uYW1lX3NwZWNpZmllcl8xOg0KVFlQRURFRk5BTUUgU0NPUEUN CnwgTlNOQU1FIFNDT1BFDQp8IHRlbXBsYXRlX3R5cGUgU0NPUEUNCi8qIAlU aGVzZSBicmVhayAnY29uc3QgaTsnDQp8IElERU5USUZJRVIgU0NPUEUNCnwg UFRZUEVOQU1FIFNDT1BFDQp7IGdvdG8gZmFpbGVkX3Njb3BlOyB9ICovDQo7 DQoNCmNvbXBsZXRlX3R5cGVfbmFtZToNCnF1YWxpZmllZF90eXBlX25hbWUN CnwgZ2xvYmFsX3Njb3BlIHF1YWxpZmllZF90eXBlX25hbWUNCjsNCg0KY29t cGxleF90eXBlX25hbWU6DQpuZXN0ZWRfdHlwZQ0KfCBnbG9iYWxfc2NvcGUg cXVhbGlmaWVkX3R5cGVfbmFtZQ0KOw0KDQpwdHJfdG9fbWVtOg0KbmVzdGVk X25hbWVfc3BlY2lmaWVyICcqJw0KfCBnbG9iYWxfc2NvcGUgbmVzdGVkX25h bWVfc3BlY2lmaWVyICcqJw0KOw0KDQovKiBBbGwgdXNlcyBvZiBleHBsaWNp dCBnbG9iYWwgc2NvcGUgbXVzdCBnbyB0aHJvdWdoIHRoaXMgbm9udGVybWlu YWwgc28NCnRoYXQgZ290X3Njb3BlIHdpbGwgYmUgc2V0IGJlZm9yZSB5eWxl eCBpcyBjYWxsZWQgdG8gZ2V0IHRoZSBuZXh0IHRva2VuLiAqLw0KZ2xvYmFs X3Njb3BlOg0KU0NPUEUNCjsNCg0KLyogQU5TSSBuZXctZGVjbGFyYXRvciAo NS4zLjQpICovDQpuZXdfZGVjbGFyYXRvcjoNCicqJyB0eXBlX3F1YWxzIG5l d19kZWNsYXJhdG9yDQp8ICcqJyB0eXBlX3F1YWxzICAlcHJlYyBFTVBUWQ0K fCAnJicgdHlwZV9xdWFscyBuZXdfZGVjbGFyYXRvciAlcHJlYyBFTVBUWQ0K fCAnJicgdHlwZV9xdWFscyAlcHJlYyBFTVBUWQ0KfCBwdHJfdG9fbWVtIHR5 cGVfcXVhbHMgJXByZWMgRU1QVFkNCnwgcHRyX3RvX21lbSB0eXBlX3F1YWxz IG5ld19kZWNsYXJhdG9yDQp8IGRpcmVjdF9uZXdfZGVjbGFyYXRvciAlcHJl YyBFTVBUWQ0KOw0KDQovKiBBTlNJIGRpcmVjdC1uZXctZGVjbGFyYXRvciAo NS4zLjQpICovDQpkaXJlY3RfbmV3X2RlY2xhcmF0b3I6DQonWycgZXhwciAn XScNCnwgZGlyZWN0X25ld19kZWNsYXJhdG9yICdbJyBub25tb21lbnRhcnlf ZXhwciAnXScNCjsNCg0KLyogQU5TSSBhYnN0cmFjdC1kZWNsYXJhdG9yICg4 LjEpICovDQphYnNkY2w6DQonKicgbm9uZW1wdHlfdHlwZV9xdWFscyBhYnNk Y2wNCnwgJyonIGFic2RjbA0KfCAnKicgbm9uZW1wdHlfdHlwZV9xdWFscyAg JXByZWMgRU1QVFkNCnwgJyonICVwcmVjIEVNUFRZDQp8ICcmJyBub25lbXB0 eV90eXBlX3F1YWxzIGFic2RjbA0KfCAnJicgYWJzZGNsDQp8ICcmJyBub25l bXB0eV90eXBlX3F1YWxzICVwcmVjIEVNUFRZDQp8ICcmJyAlcHJlYyBFTVBU WQ0KfCBwdHJfdG9fbWVtIHR5cGVfcXVhbHMgJXByZWMgRU1QVFkNCnwgcHRy X3RvX21lbSB0eXBlX3F1YWxzIGFic2RjbA0KfCBkaXJlY3RfYWJzdHJhY3Rf ZGVjbGFyYXRvciAlcHJlYyBFTVBUWQ0KOw0KDQovKiBBTlNJIGRpcmVjdC1h YnN0cmFjdC1kZWNsYXJhdG9yICg4LjEpICovDQpkaXJlY3RfYWJzdHJhY3Rf ZGVjbGFyYXRvcjoNCicoJyBhYnNkY2wgJyknDQp8IFBBUkVOX1NUQVJfUEFS RU4NCnwgZGlyZWN0X2Fic3RyYWN0X2RlY2xhcmF0b3IgJygnIHBhcm1saXN0 ICcpJyB0eXBlX3F1YWxzICAlcHJlYyAnLicNCnwgZGlyZWN0X2Fic3RyYWN0 X2RlY2xhcmF0b3IgJygnICcpJyB0eXBlX3F1YWxzICAlcHJlYyAnLicNCnwg ZGlyZWN0X2Fic3RyYWN0X2RlY2xhcmF0b3IgJ1snIG5vbm1vbWVudGFyeV9l eHByICddJyAgJXByZWMgJy4nDQp8IGRpcmVjdF9hYnN0cmFjdF9kZWNsYXJh dG9yICdbJyAnXScgICVwcmVjICcuJw0KfCAnKCcgY29tcGxleF9wYXJtbGlz dCAnKScgdHlwZV9xdWFscyAgJXByZWMgJy4nDQp8IHJlZ2Nhc3Rfb3JfYWJz ZGNsIHR5cGVfcXVhbHMgJXByZWMgJy4nDQp8IGZjYXN0X29yX2Fic2RjbCB0 eXBlX3F1YWxzICVwcmVjICcuJw0KfCAnWycgbm9ubW9tZW50YXJ5X2V4cHIg J10nICAlcHJlYyAnLicNCnwgJ1snICddJyAgJXByZWMgJy4nDQo7DQoNCi8q IEZvciBDKyssIGRlY2xzIGFuZCBzdG10cyBjYW4gYmUgaW50ZXJtaXhlZCwg c28gd2UgZG9uJ3QgbmVlZCB0bw0KaGF2ZSBhIHNwZWNpYWwgcnVsZSB0aGF0 IHdvbid0IHN0YXJ0IHBhcnNpbmcgdGhlIHN0bXQgc2VjdGlvbg0KdW50aWwg d2UgaGF2ZSBhIHN0bXQgdGhhdCBwYXJzZXMgd2l0aG91dCBlcnJvcnMuICAq Lw0KDQpzdG10czoNCnN0bXQNCnwgZXJyc3RtdA0KfCBzdG10cyBzdG10DQp8 IHN0bXRzIGVycnN0bXQNCjsNCg0KZXJyc3RtdDogIGVycm9yICc7Jw0KOw0K DQovKiBidWlsZCB0aGUgTEVUX1NUTVQgbm9kZSBiZWZvcmUgcGFyc2luZyBp dHMgY29udGVudHMsDQpzbyB0aGF0IGFueSBMRVRfU1RNVHMgd2l0aGluIHRo ZSBjb250ZXh0IGNhbiBoYXZlIHRoZWlyIGRpc3BsYXkgcG9pbnRlcnMNCnNl dCB1cCB0byBwb2ludCBhdCB0aGlzIG9uZS4gICovDQoNCi5wdXNobGV2ZWw6 ICAvKiBlbXB0eSAqLw0KOw0KDQoucG9wbGV2ZWw6ICAgLyogZW1wdHkgKi8N CjsNCg0KLyogUmVhZCB6ZXJvIG9yIG1vcmUgZm9yd2FyZC1kZWNsYXJhdGlv bnMgZm9yIGxhYmVscw0KdGhhdCBuZXN0ZWQgZnVuY3Rpb25zIGNhbiBqdW1w IHRvLiAgKi8NCm1heWJlX2xhYmVsX2RlY2xzOg0KLyogZW1wdHkgKi8NCnwg bGFiZWxfZGVjbHMNCjsNCg0KbGFiZWxfZGVjbHM6DQpsYWJlbF9kZWNsDQp8 IGxhYmVsX2RlY2xzIGxhYmVsX2RlY2wNCjsNCg0KbGFiZWxfZGVjbDoNCkxB QkVMIGlkZW50aWZpZXJzX29yX3R5cGVuYW1lcyAnOycNCjsNCg0KLyogVGhp cyBpcyB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGRlZmluaXRpb24uDQpJdCBj YXVzZXMgc3ludGF4IGVycm9ycyB0byBpZ25vcmUgdG8gdGhlIG5leHQgb3Bl bmJyYWNlLiAgKi8NCmNvbXBzdG10X29yX2Vycm9yOg0KY29tcHN0bXQNCnwg ZXJyb3IgY29tcHN0bXQNCjsNCg0KY29tcHN0bXQ6ICd7JyAucHVzaGxldmVs IGNvbXBzdG10ZW5kIC5wb3BsZXZlbA0KOw0KDQpzaW1wbGVfaWY6DQpJRiAu cHVzaGxldmVsIHBhcmVuX2NvbmRfb3JfbnVsbCBpbXBsaWNpdGx5X3Njb3Bl ZF9zdG10DQo7DQoNCmltcGxpY2l0bHlfc2NvcGVkX3N0bXQ6DQpjb21wc3Rt dA0KfCAucHVzaGxldmVsIHNpbXBsZV9zdG10IC5wb3BsZXZlbA0KOw0KDQpz dG10Og0KY29tcHN0bXQNCnwgc2ltcGxlX3N0bXQNCjsNCg0Kc2ltcGxlX3N0 bXQ6DQpkZWNsDQp8IGV4cHIgJzsnDQp8IHNpbXBsZV9pZiBFTFNFIGltcGxp Y2l0bHlfc2NvcGVkX3N0bXQgLnBvcGxldmVsDQp8IHNpbXBsZV9pZiAlcHJl YyBJRg0KfCBXSElMRSAucHVzaGxldmVsIHBhcmVuX2NvbmRfb3JfbnVsbCBh bHJlYWR5X3Njb3BlZF9zdG10IC5wb3BsZXZlbA0KfCBETyBpbXBsaWNpdGx5 X3Njb3BlZF9zdG10IFdISUxFIHBhcmVuX2V4cHJfb3JfbnVsbCAnOycNCnwg Rk9SICcoJyBmb3IuaW5pdC5zdGF0ZW1lbnQgLnB1c2hsZXZlbCB4Y29uZCAn OycgeGV4cHIgJyknDQphbHJlYWR5X3Njb3BlZF9zdG10IC5wb3BsZXZlbA0K fCBTV0lUQ0ggLnB1c2hsZXZlbCAnKCcgY29uZGl0aW9uICcpJyBpbXBsaWNp dGx5X3Njb3BlZF9zdG10IC5wb3BsZXZlbA0KfCBDQVNFIGV4cHJfbm9fY29t bWFzICc6JyBzdG10DQp8IENBU0UgZXhwcl9ub19jb21tYXMgRUxMSVBTSVMg ZXhwcl9ub19jb21tYXMgJzonIHN0bXQNCnwgREVGQVVMVCAnOicgc3RtdA0K fCBCUkVBSyAnOycNCnwgQ09OVElOVUUgJzsnDQp8IFJFVFVSTiAnOycNCnwg UkVUVVJOIGV4cHIgJzsnDQp8IGFzbV9rZXl3b3JkIG1heWJlX3R5cGVfcXVh bCAnKCcgc3RyaW5nICcpJyAnOycNCnwgYXNtX2tleXdvcmQgbWF5YmVfdHlw ZV9xdWFsICcoJyBzdHJpbmcgJzonIGFzbV9vcGVyYW5kcyAnKScgJzsnDQp8 IGFzbV9rZXl3b3JkIG1heWJlX3R5cGVfcXVhbCAnKCcgc3RyaW5nICc6JyBh c21fb3BlcmFuZHMgJzonIGFzbV9vcGVyYW5kcyAnKScgJzsnDQp8IGFzbV9r ZXl3b3JkIG1heWJlX3R5cGVfcXVhbCAnKCcgc3RyaW5nICc6JyBhc21fb3Bl cmFuZHMgJzonDQphc21fb3BlcmFuZHMgJzonIGFzbV9jbG9iYmVycyAnKScg JzsnDQp8IEdPVE8gJyonIGV4cHIgJzsnDQp8IEdPVE8gaWRlbnRpZmllciAn OycNCnwgbGFiZWxfY29sb24gc3RtdA0KfCBsYWJlbF9jb2xvbiAnfScNCnwg JzsnDQp8IHRyeV9ibG9jaw0KOw0KDQpmdW5jdGlvbl90cnlfYmxvY2s6DQpU UlkgY3Rvcl9pbml0aWFsaXplcl9vcHQgY29tcHN0bXRfb3JfZXJyb3IgaGFu ZGxlcl9zZXENCjsNCg0KdHJ5X2Jsb2NrOg0KVFJZIGNvbXBzdG10IGhhbmRs ZXJfc2VxDQo7DQoNCmhhbmRsZXJfc2VxOg0KLyogZW1wdHkgKi8NCnwgaGFu ZGxlcl9zZXEgQ0FUQ0ggLnB1c2hsZXZlbCBoYW5kbGVyX2FyZ3MgY29tcHN0 bXQgLnBvcGxldmVsDQo7DQoNCnR5cGVfc3BlY2lmaWVyX3NlcToNCnR5cGVk X3R5cGVzcGVjcyAlcHJlYyBFTVBUWQ0KfCBub25lbXB0eV90eXBlX3F1YWxz ICVwcmVjIEVNUFRZDQo7DQoNCmhhbmRsZXJfYXJnczoNCicoJyBFTExJUFNJ UyAnKScNCi8qIFRoaXMgZG9lc24ndCBhbGxvdyByZWZlcmVuY2UgcGFyYW1l dGVycywgdGhlIGJlbG93IGRvZXMuDQp8ICcoJyB0eXBlX3NwZWNpZmllcl9z ZXEgYWJzZGNsICcpJw0KfCAnKCcgdHlwZV9zcGVjaWZpZXJfc2VxICcpJw0K fCAnKCcgdHlwZV9zcGVjaWZpZXJfc2VxIG5vdHlwZV9kZWNsYXJhdG9yICcp Jw0KfCAnKCcgdHlwZWRfdHlwZXNwZWNzIGFmdGVyX3R5cGVfZGVjbGFyYXRv ciAnKScNClRoaXMgYWxsb3dzIHJlZmVyZW5jZSBwYXJhbWV0ZXJzLi4uICov DQp8ICcoJyBwYXJtICcpJw0KOw0KDQpsYWJlbF9jb2xvbjoNCklERU5USUZJ RVIgJzonDQp8IFBUWVBFTkFNRSAnOicNCnwgVFlQRURFRk5BTUUgJzonDQo7 DQoNCmZvci5pbml0LnN0YXRlbWVudDoNCnhleHByICc7Jw0KfCBkZWNsDQp8 ICd7JyBjb21wc3RtdGVuZA0KOw0KDQovKiBFaXRoZXIgYSB0eXBlLXF1YWxp ZmllciBvciBub3RoaW5nLiAgRmlyc3QgdGhpbmcgaW4gYW4gYGFzbScgc3Rh dGVtZW50LiAgKi8NCg0KbWF5YmVfdHlwZV9xdWFsOg0KLyogZW1wdHkgKi8N CnwgdHlwZV9xdWFsDQo7DQoNCnR5cGVfcXVhbDoNCkNPTlNUDQp8IFZPTEFU SUxFDQo7DQp4ZXhwcjoNCi8qIGVtcHR5ICovDQp8IGV4cHINCnwgZXJyb3IN CjsNCg0KLyogVGhlc2UgYXJlIHRoZSBvcGVyYW5kcyBvdGhlciB0aGFuIHRo ZSBmaXJzdCBzdHJpbmcgYW5kIGNvbG9uDQppbiAgYXNtICgiYWRkZXh0ZW5k ICUyLCUxIjogIj1kbSIgKHgpLCAiMCIgKHkpLCAiZyIgKCp4KSkgICovDQph c21fb3BlcmFuZHM6IC8qIGVtcHR5ICovDQp8IG5vbm51bGxfYXNtX29wZXJh bmRzDQo7DQoNCm5vbm51bGxfYXNtX29wZXJhbmRzOg0KYXNtX29wZXJhbmQN Cnwgbm9ubnVsbF9hc21fb3BlcmFuZHMgJywnIGFzbV9vcGVyYW5kDQo7DQoN CmFzbV9vcGVyYW5kOg0KU1RSSU5HICcoJyBleHByICcpJw0KOw0KDQphc21f Y2xvYmJlcnM6DQpTVFJJTkcNCnwgYXNtX2Nsb2JiZXJzICcsJyBTVFJJTkcN CjsNCg0KLyogVGhpcyBpcyB3aGF0IGFwcGVhcnMgaW5zaWRlIHRoZSBwYXJl bnMgaW4gYSBmdW5jdGlvbiBkZWNsYXJhdG9yLg0KSXRzIHZhbHVlIGlzIHJl cHJlc2VudGVkIGluIHRoZSBmb3JtYXQgdGhhdCBncm9rZGVjbGFyYXRvciBl eHBlY3RzLg0KDQpJbiBDKyssIGRlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGgg bm8gcGFyYW1ldGVycw0KbWVhbnMgdGhhdCB0aGF0IGZ1bmN0aW9uIHRha2Vz ICpubyogcGFyYW1ldGVycy4gICovDQoNCnBhcm1saXN0OiAgLyogZW1wdHkg Ki8NCmNvbXBsZXhfcGFybWxpc3QNCnwgdHlwZV9pZA0KOw0KDQovKiBUaGlz IG5vbnRlcm1pbmFsIGRvZXMgbm90IGluY2x1ZGUgdGhlIGNvbW1vbiBzZXF1 ZW5jZSAnKCcgdHlwZV9pZCAnKScsDQphcyBpdCBpcyBhbWJpZ3VvdXMgYW5k IG11c3QgYmUgZGlzYW1iaWd1YXRlZCBlbHNld2hlcmUuICAqLw0KY29tcGxl eF9wYXJtbGlzdDoNCnBhcm1zDQp8IHBhcm1zX2NvbW1hIEVMTElQU0lTDQp8 IHBhcm1zIEVMTElQU0lTDQp8IHR5cGVfaWQgRUxMSVBTSVMNCnwgRUxMSVBT SVMNCnwgVFlQRU5BTUVfRUxMSVBTSVMNCnwgcGFybXMgVFlQRU5BTUVfRUxM SVBTSVMNCnwgdHlwZV9pZCBUWVBFTkFNRV9FTExJUFNJUw0KfCBwYXJtcyAn OicNCnwgdHlwZV9pZCAnOicNCjsNCg0KLyogQSBub25lbXB0eSBsaXN0IG9m IHBhcmFtZXRlciBkZWNsYXJhdGlvbnMgb3IgdHlwZSBuYW1lcy4gICovDQpw YXJtczoNCm5hbWVkX3Bhcm0NCnwgcGFybSAnPScgaW5pdA0KfCBwYXJtc19j b21tYSBmdWxsX3Bhcm0NCnwgcGFybXNfY29tbWEgYmFkX3Bhcm0NCnwgcGFy bXNfY29tbWEgYmFkX3Bhcm0gJz0nIGluaXQNCjsNCg0KcGFybXNfY29tbWE6 DQpwYXJtcyAnLCcNCnwgdHlwZV9pZCAnLCcNCjsNCg0KLyogQSBzaW5nbGUg cGFyYW1ldGVyIGRlY2xhcmF0aW9uIG9yIHBhcmFtZXRlciB0eXBlIG5hbWUs DQphcyBmb3VuZCBpbiBhIHBhcm1saXN0LiAgVGhlIGZpcnN0IGZvdXIgY2Fz ZXMgbWFrZSB1cCBmb3IgMTAlDQpvZiB0aGUgdGltZSBzcGVudCBwYXJzaW5n IEMrKy4gIFdlIGNhbm5vdCB1c2UgdGhlbSBiZWNhdXNlDQpvZiBgaW50IGlk W10nIHdoaWNoIHdvbid0IGdldCBwYXJzZWQgcHJvcGVybHkuICAqLw0KbmFt ZWRfcGFybToNCi8qDQp0eXBlZF9kZWNsc3BlY3MgZG9udF9zZWVfdHlwZW5h bWUgJyonIElERU5USUZJRVINCnwgdHlwZWRfZGVjbHNwZWNzIGRvbnRfc2Vl X3R5cGVuYW1lICcmJyBJREVOVElGSUVSDQp8IFRZUEVERUZOQU1FIElERU5U SUZJRVINCnwgVFlQRVNQRUMgSURFTlRJRklFUg0KfCAqLw0KLyogSGVyZSB3 ZSBleHBhbmQgdHlwZWRfZGVjbHNwZWNzIGlubGluZSB0byBhdm9pZCBtaXMt cGFyc2luZyBvZg0KVFlQRVNQRUMgSURFTlRJRklFUi4gICovDQp0eXBlZF9k ZWNsc3BlY3MxIGRlY2xhcmF0b3INCnwgdHlwZWRfdHlwZXNwZWNzIGRlY2xh cmF0b3INCnwgdHlwZXNwZWMgZGVjbGFyYXRvcg0KfCB0eXBlZF9kZWNsc3Bl Y3MxIGFic2RjbA0KfCB0eXBlZF9kZWNsc3BlY3MxICVwcmVjIEVNUFRZDQp8 IGRlY2xtb2RzIG5vdHlwZV9kZWNsYXJhdG9yDQo7DQoNCmZ1bGxfcGFybToN CnBhcm0gbWF5YmVfaW5pdA0KOw0KDQpwYXJtOg0KbmFtZWRfcGFybQ0KfCB0 eXBlX2lkDQo7DQoNCnNlZV90eXBlbmFtZTogJXByZWMgRU1QVFkNCjsNCg0K LyogDQpkb250X3NlZV90eXBlbmFtZTogJXByZWMgRU1QVFkNCjsgDQoNCnRy eV9mb3JfdHlwZW5hbWU6DQo7DQoqLw0KDQpiYWRfcGFybToNCi8qIGVtcHR5 ICovICVwcmVjIEVNUFRZDQp8IG5vdHlwZV9kZWNsYXJhdG9yDQo7DQoNCmV4 Y2VwdGlvbl9zcGVjaWZpY2F0aW9uX29wdDoNCiVwcmVjIEVNUFRZIC8qIGVt cHR5ICovDQp8IFRIUk9XICcoJyBhbnNpX3JhaXNlX2lkZW50aWZpZXJzICAn KScgJXByZWMgRU1QVFkNCnwgVEhST1cgJygnICcpJyAlcHJlYyBFTVBUWQ0K Ow0KDQphbnNpX3JhaXNlX2lkZW50aWZpZXI6DQp0eXBlX2lkDQo7DQoNCmFu c2lfcmFpc2VfaWRlbnRpZmllcnM6DQphbnNpX3JhaXNlX2lkZW50aWZpZXIN CnwgYW5zaV9yYWlzZV9pZGVudGlmaWVycyAnLCcgYW5zaV9yYWlzZV9pZGVu dGlmaWVyDQo7DQoNCmNvbnZlcnNpb25fZGVjbGFyYXRvcjoNCi8qIGVtcHR5 ICovICVwcmVjIEVNUFRZDQp8ICcqJyB0eXBlX3F1YWxzIGNvbnZlcnNpb25f ZGVjbGFyYXRvcg0KfCAnJicgdHlwZV9xdWFscyBjb252ZXJzaW9uX2RlY2xh cmF0b3INCnwgcHRyX3RvX21lbSB0eXBlX3F1YWxzIGNvbnZlcnNpb25fZGVj bGFyYXRvcg0KOw0KDQpvcGVyYXRvcjogT1BFUkFUT1INCjsNCg0Kb3BlcmF0 b3JfbmFtZToNCm9wZXJhdG9yICcqJw0KfCBvcGVyYXRvciAnLycNCnwgb3Bl cmF0b3IgJyUnDQp8IG9wZXJhdG9yICcrJw0KfCBvcGVyYXRvciAnLScNCnwg b3BlcmF0b3IgJyYnDQp8IG9wZXJhdG9yICd8Jw0KfCBvcGVyYXRvciAnXicN Cnwgb3BlcmF0b3IgJ34nDQp8IG9wZXJhdG9yICcsJw0KfCBvcGVyYXRvciBB UklUSENPTVBBUkUNCnwgb3BlcmF0b3IgJzwnDQp8IG9wZXJhdG9yICc+Jw0K fCBvcGVyYXRvciBFUUNPTVBBUkUNCnwgb3BlcmF0b3IgQVNTSUdODQp8IG9w ZXJhdG9yICc9Jw0KfCBvcGVyYXRvciBMU0hJRlQNCnwgb3BlcmF0b3IgUlNI SUZUDQp8IG9wZXJhdG9yIFBMVVNQTFVTDQp8IG9wZXJhdG9yIE1JTlVTTUlO VVMNCnwgb3BlcmF0b3IgQU5EQU5EDQp8IG9wZXJhdG9yIE9ST1INCnwgb3Bl cmF0b3IgJyEnDQp8IG9wZXJhdG9yICc/JyAnOicNCnwgb3BlcmF0b3IgTUlO X01BWA0KfCBvcGVyYXRvciBQT0lOVFNBVCAgJXByZWMgRU1QVFkNCnwgb3Bl cmF0b3IgUE9JTlRTQVRfU1RBUiAgJXByZWMgRU1QVFkNCnwgb3BlcmF0b3Ig JygnICcpJw0KfCBvcGVyYXRvciAnWycgJ10nDQp8IG9wZXJhdG9yIE5FVyAl cHJlYyBFTVBUWQ0KfCBvcGVyYXRvciBERUxFVEUgJXByZWMgRU1QVFkNCnwg b3BlcmF0b3IgTkVXICdbJyAnXScNCnwgb3BlcmF0b3IgREVMRVRFICdbJyAn XScNCi8qIE5hbWVzIGhlcmUgc2hvdWxkIGJlIGxvb2tlZCB1cCBpbiBjbGFz cyBzY29wZSBBTFNPLiAgKi8NCnwgb3BlcmF0b3IgdHlwZV9zcGVjaWZpZXJf c2VxIGNvbnZlcnNpb25fZGVjbGFyYXRvcg0KfCBvcGVyYXRvciBlcnJvcg0K Ow0KDQolJQ0K ---1463803903-1439073610-946274868=:333 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="parse.l" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: lexer JXsNCi8qKioqKioqKioqKioqKiogSW5jbHVkZXMgYW5kIERlZmluZXMgKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCg0KI2luY2x1ZGUgInku dGFiLmgiIC8qIFlBQ0MgZ2VuZXJhdGVkIGRlZmluaXRpb25zIGJhc2VkIG9u IEMrKyBwYXJzZXIgaW5wdXQqLw0KDQp0eXBlZGVmIGNoYXIgKiBZWVNUWVBF OyAvKiBpbnRlcmZhY2Ugd2l0aCBsZXhlcjogc2hvdWxkIGJlIGluIGhlYWRl ciBmaWxlKi8NCg0KY2hhciAqIHl5bHZhbDsgLyogV2Ugd2lsbCBhbHdheXMg cG9pbnQgYXQgdGhlIHRleHQgb2YgdGhlIGxleGVtZS4NCiAgICBUaGlzICBt YWtlcyAgaXQgIGVhc3kgIHRvICBwcmludCAgb3V0ICBuaWNlIHRyZWVzIHdo ZW4gWVlERUJVRyBpcyANCiAgICBlbmFibGVkICAoc2VlICB0aGUgIEMrKyAg Z3JhbW1hciAgZmlsZSwgIGFuZCAgaXRzICBkZWZpbml0aW9uICBvZiANCiAg ICBZWURFQlVHX0xFWEVSX1RFWFQgdG8gYmUgInl5bHZhbCIpICovDQoNCiAg ICANCiNkZWZpbmUgV0hJVEVfUkVUVVJOKHgpICAvKiBkbyBub3RoaW5nLCAg Ki8NCg0KLyogI2RlZmluZSBORVdfTElORV9SRVRVUk4oKSBXSElURV9SRVRV Uk4oJ1xuJykgKi8NCi8qIGNvbW1lbnRlZCB0aGlzIHBhcnQgdG8gaGFuZGxl IGl0IGF0IHRoZSBwbGFjZSB3aGVyZSBuZXdsaW5lIGlzIGZvdW5kICovDQoN CiNkZWZpbmUgUEFfS0VZV09SRF9SRVRVUk4oeCkgICBSRVRVUk5fVkFMKHgp ICAvKiBzdGFuZGFyZCBDIFBBcnNlciBLZXl3b3JkICovDQojZGVmaW5lIENQ UF9LRVlXT1JEX1JFVFVSTih4KSAgUEFfS0VZV09SRF9SRVRVUk4oeCkgIC8q IEMrKyBrZXl3b3JkICovDQojZGVmaW5lIFBQUEFfS0VZV09SRF9SRVRVUk4o eCkgUkVUVVJOX1ZBTCh4KSAgLyogYm90aCBQcmVQcm9jZXNzb3IgYW5kIFBB cnNlciBrZXl3b3JkICovDQojZGVmaW5lIFBQX0tFWVdPUkRfUkVUVVJOKHgp ICAgSURFTlRJRklFUl9SRVRVUk4oKQ0KDQojZGVmaW5lIElERU5USUZJRVJf UkVUVVJOKCkgUkVUVVJOX1ZBTChpc2FUWVBFKHl5dGV4dCk/VFlQRURFRk5B TUU6SURFTlRJRklFUikgDQoNCiNkZWZpbmUgUFBPUF9SRVRVUk4oeCkgICAg ICAgUkVUVVJOX1ZBTCgoaW50KSp5eXRleHQpIC8qIFByZVByb2Nlc3MgYW5k IFBhcnNlciBvcGVyYXRvciAqLw0KI2RlZmluZSBOQU1FRF9QUE9QX1JFVFVS Tih4KSAvKiBlcnJvcjogUHJlUHJvY2Vzc29yIE9OTFkgb3BlcmF0b3I7ICBE byBub3RoaW5nICovDQojZGVmaW5lIEFTQ0lJT1BfUkVUVVJOKHgpICAgIFJF VFVSTl9WQUwoKGludCkqeXl0ZXh0KSAvKiBhIHNpbmdsZSBjaGFyYWN0ZXIg b3BlcmF0b3IgKi8NCiNkZWZpbmUgTkFNRURPUF9SRVRVUk4oeCkgICAgUkVU VVJOX1ZBTCh4KSAgICAgICAgICAgIC8qIGEgbXVsdGljaGFyIG9wZXJhdG9y LCB3aXRoIGEgbmFtZSAqLw0KDQojZGVmaW5lIE5VTUVSSUNBTF9SRVRVUk4o eCkgUkVUVVJOX1ZBTCh4KSAgICAgICAgICAgIC8qIHNvbWUgc29ydCBvZiBj b25zdGFudCAqLw0KI2RlZmluZSBMSVRFUkFMX1JFVFVSTih4KSAgIFJFVFVS Tl9WQUwoeCkgICAgICAgICAgICAvKiBhIHN0cmluZyBsaXRlcmFsICovDQoN CiNkZWZpbmUgUkVUVVJOX1ZBTCh4KSB5eWx2YWwgPSB5eXRleHQ7IHJldHVy bih4KTsNCg0KDQolfQ0KDQppZGVudGlmaWVyIFthLXpBLVpfXVswLTlhLXpB LVpfXSoNCg0KZXhwb25lbnRfcGFydCBbZUVdWy0rXT9bMC05XSsNCmZyYWN0 aW9uYWxfY29uc3RhbnQgKFswLTldKiIuIlswLTldKyl8KFswLTldKyIuIikN CmZsb2F0aW5nX2NvbnN0YW50ICgoe2ZyYWN0aW9uYWxfY29uc3RhbnR9e2V4 cG9uZW50X3BhcnR9Pyl8KFswLTldK3tleHBvbmVudF9wYXJ0fSkpW0ZmTGxd Pw0KDQppbnRlZ2VyX3N1ZmZpeF9vcHQgKFt1VV0/W2xMXT8pfChbbExdW3VV XSkNCmRlY2ltYWxfY29uc3RhbnQgWzEtOV1bMC05XSp7aW50ZWdlcl9zdWZm aXhfb3B0fQ0Kb2N0YWxfY29uc3RhbnQgIjAiWzAtN10qe2ludGVnZXJfc3Vm Zml4X29wdH0NCmhleF9jb25zdGFudCAiMCJbeFhdWzAtOWEtZkEtRl0re2lu dGVnZXJfc3VmZml4X29wdH0NCg0Kc2ltcGxlX2VzY2FwZSBbYWJmbnJ0dici P1xcXQ0Kb2N0YWxfZXNjYXBlICBbMC03XXsxLDN9DQpoZXhfZXNjYXBlICJ4 IlswLTlhLWZBLUZdKw0KDQplc2NhcGVfc2VxdWVuY2UgW1xcXSh7c2ltcGxl X2VzY2FwZX18e29jdGFsX2VzY2FwZX18e2hleF9lc2NhcGV9KQ0KY19jaGFy IFteJ1xcXG5dfHtlc2NhcGVfc2VxdWVuY2V9DQpzX2NoYXIgW14iXFxcbl18 e2VzY2FwZV9zZXF1ZW5jZX0NCg0KaF90YWIgW1wwMTFdDQpmb3JtX2ZlZWQg W1wwMTRdDQp2X3RhYiBbXDAxM10NCmNfcmV0dXJuIFtcMDE1XQ0KDQpob3Jp em9udGFsX3doaXRlIFsgXXx7aF90YWJ9DQoNCiUlDQoNCg0Ke2hvcml6b250 YWxfd2hpdGV9KyAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgV0hJ VEVfUkVUVVJOKCcgJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoN Cih7dl90YWJ9fHtjX3JldHVybn18e2Zvcm1fZmVlZH0pKyAgIHsgDQogICAg ICAgICAgICAgICAgICAgICAgICBXSElURV9SRVRVUk4oJyAnKTsNCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCg0KDQooe2hvcml6b250YWxfd2hpdGV9 fHt2X3RhYn18e2NfcmV0dXJufXx7Zm9ybV9mZWVkfSkqIlxuIiAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIFdISVRFX1JFVFVSTihFTkRfT0ZfTElO RSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQpfX2V4dGVuc2lvbl9f CSAgIHtQQV9LRVlXT1JEX1JFVFVSTihFWFRFTlNJT04pO30NCl9fYXR0cmli dXRlX18JICAge1BBX0tFWVdPUkRfUkVUVVJOKEFUVFJJQlVURSk7fQ0KX190 eXBlb2YJICAgeyBQQV9LRVlXT1JEX1JFVFVSTihUWVBFT0YpO30NCl9fYWxp Z25vZl9fCSAgIHtQQV9LRVlXT1JEX1JFVFVSTihBTElHTk9GKTt9DQoNCmF1 dG8gICAgICAgICAgICAgICAge1BBX0tFWVdPUkRfUkVUVVJOKEFVVE8pO30N CmJyZWFrICAgICAgICAgICAgICAge1BBX0tFWVdPUkRfUkVUVVJOKEJSRUFL KTt9DQpjYXNlICAgICAgICAgICAgICAgIHtQQV9LRVlXT1JEX1JFVFVSTihD QVNFKTt9DQpjaGFyICAgICAgICAgICAgICAgIHtQQV9LRVlXT1JEX1JFVFVS TihDSEFSKTt9DQpjb25zdCAgICAgICAgICAgICAgIHtQQV9LRVlXT1JEX1JF VFVSTihDT05TVCk7fQ0KY29udGludWUgICAgICAgICAgICB7UEFfS0VZV09S RF9SRVRVUk4oQ09OVElOVUUpO30NCmRlZmF1bHQgICAgICAgICAgICAge1BB X0tFWVdPUkRfUkVUVVJOKERFRkFVTFQpO30NCmRlZmluZSAgICAgICAgICAg ICB7UFBfS0VZV09SRF9SRVRVUk4oREVGSU5FKTt9DQpkZWZpbmVkICAgICAg ICAgICAge1BQX0tFWVdPUkRfUkVUVVJOKE9QREVGSU5FRCk7fQ0KZG8gICAg ICAgICAgICAgICAgICB7UEFfS0VZV09SRF9SRVRVUk4oRE8pO30NCmRvdWJs ZSAgICAgICAgICAgICAge1BBX0tFWVdPUkRfUkVUVVJOKERPVUJMRSk7fQ0K ZWxpZiAgICAgICAgICAgICAgICB7UFBfS0VZV09SRF9SRVRVUk4oRUxJRik7 fQ0KZWxzZSAgICAgICAgICAgICAge1BQUEFfS0VZV09SRF9SRVRVUk4oRUxT RSk7fQ0KZW5kaWYgICAgICAgICAgICAgIHtQUF9LRVlXT1JEX1JFVFVSTihF TkRJRik7fQ0KZW51bSAgICAgICAgICAgICAgICB7UEFfS0VZV09SRF9SRVRV Uk4oRU5VTSk7fQ0KZXJyb3IgICAgICAgICAgICAgIHtQUF9LRVlXT1JEX1JF VFVSTihFUlJPUik7fQ0KZXh0ZXJuICAgICAgICAgICAgICB7UEFfS0VZV09S RF9SRVRVUk4oRVhURVJOKTt9DQpmbG9hdCAgICAgICAgICAgICAgIHtQQV9L RVlXT1JEX1JFVFVSTihGTE9BVCk7fQ0KZm9yICAgICAgICAgICAgICAgICB7 UEFfS0VZV09SRF9SRVRVUk4oRk9SKTt9DQpnb3RvICAgICAgICAgICAgICAg IHtQQV9LRVlXT1JEX1JFVFVSTihHT1RPKTt9DQppZiAgICAgICAgICAgICAg ICB7UFBQQV9LRVlXT1JEX1JFVFVSTihJRik7fQ0KaWZkZWYgICAgICAgICAg ICAgIHtQUF9LRVlXT1JEX1JFVFVSTihJRkRFRik7fQ0KaWZuZGVmICAgICAg ICAgICAgIHtQUF9LRVlXT1JEX1JFVFVSTihJRk5ERUYpO30NCmluY2x1ZGUg ICAgICAgICAgICB7UFBfS0VZV09SRF9SRVRVUk4oSU5DTFVERSk7IH0NCmlu dCAgICAgICAgICAgICAgICAge1BBX0tFWVdPUkRfUkVUVVJOKElOVCk7fQ0K bGluZSAgICAgICAgICAgICAgIHtQUF9LRVlXT1JEX1JFVFVSTihMSU5FKTt9 DQpsb25nICAgICAgICAgICAgICAgIHtQQV9LRVlXT1JEX1JFVFVSTihMT05H KTt9DQpwcmFnbWEgICAgICAgICAgICAge1BQX0tFWVdPUkRfUkVUVVJOKFBS QUdNQSk7fQ0KcmVnaXN0ZXIgICAgICAgICAgICB7UEFfS0VZV09SRF9SRVRV Uk4oUkVHSVNURVIpO30NCnJldHVybiAgICAgICAgICAgICAge1BBX0tFWVdP UkRfUkVUVVJOKFJFVFVSTik7fQ0Kc2hvcnQgICAgICAgICAgICAgICB7UEFf S0VZV09SRF9SRVRVUk4oU0hPUlQpO30NCnNpZ25lZCAgICAgICAgICAgICAg e1BBX0tFWVdPUkRfUkVUVVJOKFNJR05FRCk7fQ0Kc2l6ZW9mICAgICAgICAg ICAgICB7UEFfS0VZV09SRF9SRVRVUk4oU0laRU9GKTt9DQpzdGF0aWMgICAg ICAgICAgICAgIHtQQV9LRVlXT1JEX1JFVFVSTihTVEFUSUMpO30NCnN0cnVj dCAgICAgICAgICAgICAgey8qUEFfS0VZV09SRF9SRVRVUk4oU1RSVUNUKTsq L30NCnN3aXRjaCAgICAgICAgICAgICAge1BBX0tFWVdPUkRfUkVUVVJOKFNX SVRDSCk7fQ0KdHlwZWRlZiAgICAgICAgICAgICB7UEFfS0VZV09SRF9SRVRV Uk4oVFlQRURFRik7fQ0KdW5kZWYgICAgICAgICAgICAgIHtQUF9LRVlXT1JE X1JFVFVSTihVTkRFRik7fQ0KdW5pb24gICAgICAgICAgICAgICB7LypQQV9L RVlXT1JEX1JFVFVSTihVTklPTik7Ki99DQp1bnNpZ25lZCAgICAgICAgICAg IHtQQV9LRVlXT1JEX1JFVFVSTihVTlNJR05FRCk7fQ0Kdm9pZCAgICAgICAg ICAgICAgICB7UEFfS0VZV09SRF9SRVRVUk4oVk9JRCk7fQ0Kdm9sYXRpbGUg ICAgICAgICAgICB7UEFfS0VZV09SRF9SRVRVUk4oVk9MQVRJTEUpO30NCndo aWxlICAgICAgICAgICAgICAge1BBX0tFWVdPUkRfUkVUVVJOKFdISUxFKTt9 DQphc20gCQkgICAge1BBX0tFWVdPUkRfUkVUVVJOKEFTTV9LRVlXT1JEKTt9 DQoNCmNsYXNzICAgICAgICAgICAgICAgey8qQ1BQX0tFWVdPUkRfUkVUVVJO KENMQVNTKTsqL30NCmRlbGV0ZSAgICAgICAgICAgICAge0NQUF9LRVlXT1JE X1JFVFVSTihERUxFVEUpO30NCmZyaWVuZCAgICAgICAgICAgICAge0NQUF9L RVlXT1JEX1JFVFVSTihGUklFTkQpO30NCmlubGluZSAgICAgICAgICAgICAg e0NQUF9LRVlXT1JEX1JFVFVSTihJTkxJTkUpO30NCm5ldyAgICAgICAgICAg ICAgICAge0NQUF9LRVlXT1JEX1JFVFVSTihORVcpO30NCm9wZXJhdG9yICAg ICAgICAgICAge0NQUF9LRVlXT1JEX1JFVFVSTihPUEVSQVRPUik7fQ0Kb3Zl cmxvYWQgICAgICAgICAgICB7Q1BQX0tFWVdPUkRfUkVUVVJOKE9WRVJMT0FE KTt9DQpwcm90ZWN0ZWQgICAgICAgICAgIHtDUFBfS0VZV09SRF9SRVRVUk4o UFJPVEVDVEVEKTt9DQpwcml2YXRlICAgICAgICAgICAgIHtDUFBfS0VZV09S RF9SRVRVUk4oUFJJVkFURSk7fQ0KcHVibGljICAgICAgICAgICAgICB7Q1BQ X0tFWVdPUkRfUkVUVVJOKFBVQkxJQyk7fQ0KdGhpcyAgICAgICAgICAgICAg ICB7Q1BQX0tFWVdPUkRfUkVUVVJOKFRISVMpO30NCnZpcnR1YWwgICAgICAg ICAgICAge0NQUF9LRVlXT1JEX1JFVFVSTihWSVJUVUFMKTt9DQpuYW1lc3Bh Y2UJICAgIHtDUFBfS0VZV09SRF9SRVRVUk4oTkFNRVNQQUNFKTt9CQ0KdXNp bmcJCSAgICB7Q1BQX0tFWVdPUkRfUkVUVVJOKFVTSU5HKTt9DQp0eXBlbmFt ZQkgICAge0NQUF9LRVlXT1JEX1JFVFVSTihUWVBFTkFNRV9LRVlXT1JEKTt9 DQp0eXBlaWQJICAgICAgICAgICAge0NQUF9LRVlXT1JEX1JFVFVSTihUWVBF SUQpO30NCnRlbXBsYXRlCSAgICB7Q1BQX0tFWVdPUkRfUkVUVVJOKFRFTVBM QVRFKTt9DQpzdGF0aWNfY2FzdAkgICAge0NQUF9LRVlXT1JEX1JFVFVSTihT VEFUSUNfQ0FTVCk7fQ0KZHluYW1pY19jYXN0CSAgICB7Q1BQX0tFWVdPUkRf UkVUVVJOKERZTkFNSUNfQ0FTVCk7fQ0KcmVpbnRlcnByZXRfY2FzdCAgICB7 Q1BQX0tFWVdPUkRfUkVUVVJOKFJFSU5URVJQUkVUX0NBU1QpO30NCmNvbnN0 X2Nhc3QJICAgIHtDUFBfS0VZV09SRF9SRVRVUk4oQ09OU1RfQ0FTVCk7fQ0K dHJ5CQkgICAge0NQUF9LRVlXT1JEX1JFVFVSTihUUlkpO30NCmNhdGNoCQkg ICAge0NQUF9LRVlXT1JEX1JFVFVSTihDQVRDSCk7fQ0KdGhyb3cJCSAgICB7 Q1BQX0tFWVdPUkRfUkVUVVJOKFRIUk9XKTt9DQpleHRlcm5bIFx0XSpcIkNc IiAgIHtyZXR1cm4oRVhURVJOX0xBTkdfU1RSSU5HKTt9DQpleHRlcm5bIFx0 XSpcIkMrK1wiIHtyZXR1cm4oRVhURVJOX0xBTkdfU1RSSU5HKTt9DQoNCnRy dWUJCSAgICAgeyByZXR1cm4oQ1hYX1RSVUUpO30NCmZhbHNlCQkgICAgIHsg cmV0dXJuKENYWF9GQUxTRSk7fQ0Ke2lkZW50aWZpZXJ9ICAgICAgICAgIHtJ REVOVElGSUVSX1JFVFVSTigpO30NCg0Ke2RlY2ltYWxfY29uc3RhbnR9ICB7 TlVNRVJJQ0FMX1JFVFVSTihJTlRFR0VSQ09OU1QpO30NCntvY3RhbF9jb25z dGFudH0gICAge05VTUVSSUNBTF9SRVRVUk4oT0NUQUxDT05TVCk7fQ0Ke2hl eF9jb25zdGFudH0gICAgICB7TlVNRVJJQ0FMX1JFVFVSTihIRVhDT05TVCk7 fQ0Ke2Zsb2F0aW5nX2NvbnN0YW50fSB7TlVNRVJJQ0FMX1JFVFVSTihGTE9B VElOR0NPTlNUKTt9DQoNCg0KIkwiP1snXXtjX2NoYXJ9K1snXSAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgTlVNRVJJQ0FMX1JFVFVSTihDSEFS Q09OU1QpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQoNCiJMIj9b Il17c19jaGFyfSpbIl0gICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IExJVEVSQUxfUkVUVVJOKFNUUklORyk7fQ0KDQoiKCIgICAgICAgICAgICAg ICAgICB7UFBPUF9SRVRVUk4oTFApO30NCiIpIiAgICAgICAgICAgICAgICAg IHtQUE9QX1JFVFVSTihSUCk7fQ0KIiwiICAgICAgICAgICAgICAgICAge1BQ T1BfUkVUVVJOKCcsJyk7fQ0KIiMiICAgICAgICAgICAgICAgICAge05BTUVE X1BQT1BfUkVUVVJOKCcjJykgO30gDQoiIyMiICAgICAgICAgICAgICAgICB7 TkFNRURfUFBPUF9SRVRVUk4oUE9VTkRQT1VORCk7fQ0KDQoieyIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJ3snKTt9DQoifSIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJ30nKTt9DQoiWyIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJ1snKTt9DQoiXSIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJ10nKTt9DQoiLiIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJy4nKTt9DQoiJiIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJyYnKTt9DQoiKiIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJyonKTt9DQoiKyIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJysnKTt9DQoiLSIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJy0nKTt9DQoifiIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJ34nKTt9DQoiISIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oTk9UKTt9DQoiLyIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJy8nKTt9DQoiJSIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oJyUnKTt9DQoiPCIgICAgICAg ICAgICAgICAgICB7QVNDSUlPUF9SRVRVUk4oTFQpO30NCiI+IiAgICAgICAg ICAgICAgICAgIHtBU0NJSU9QX1JFVFVSTihHVCk7fQ0KIl4iICAgICAgICAg ICAgICAgICAge0FTQ0lJT1BfUkVUVVJOKCdeJyk7fQ0KInwiICAgICAgICAg ICAgICAgICAge0FTQ0lJT1BfUkVUVVJOKCd8Jyk7fQ0KIj8iICAgICAgICAg ICAgICAgICAge0FTQ0lJT1BfUkVUVVJOKCc/Jyk7fQ0KIjoiICAgICAgICAg ICAgICAgICAge0FTQ0lJT1BfUkVUVVJOKCc6Jyk7fQ0KIjsiICAgICAgICAg ICAgICAgICAge0FTQ0lJT1BfUkVUVVJOKCc7Jyk7fQ0KIj0iICAgICAgICAg ICAgICAgICAge0FTQ0lJT1BfUkVUVVJOKEFTU0lHTik7fQ0KDQoiLioiICAg ICAgICAgICAgICAgICB7TkFNRURPUF9SRVRVUk4oRE9UX1NUQVIpO30NCiI6 OiIgICAgICAgICAgICAgICAgIHtOQU1FRE9QX1JFVFVSTihTQ09QRSk7fQ0K Ii0+IiAgICAgICAgICAgICAgICAge05BTUVET1BfUkVUVVJOKFBPSU5UU0FU KTt9DQoiLT4qIiAgICAgICAgICAgICAgICB7TkFNRURPUF9SRVRVUk4oUE9J TlRTQVRfU1RBUik7fQ0KIisrIiAgICAgICAgICAgICAgICAge05BTUVET1Bf UkVUVVJOKFBMVVNQTFVTKTt9DQoiLS0iICAgICAgICAgICAgICAgICB7TkFN RURPUF9SRVRVUk4oTUlOVVNNSU5VUyk7fQ0KIjw8IiAgICAgICAgICAgICAg ICAge05BTUVET1BfUkVUVVJOKExTSElGVCk7fQ0KIj4+IiAgICAgICAgICAg ICAgICAge05BTUVET1BfUkVUVVJOKFJTSElGVCk7fQ0KIjw9IiAgICAgICAg ICAgICAgICAge05BTUVET1BfUkVUVVJOKExFKTt9DQoiPj0iICAgICAgICAg ICAgICAgICB7TkFNRURPUF9SRVRVUk4oR0UpO30NCiI9PSIgICAgICAgICAg ICAgICAgIHsvKk5BTUVET1BfUkVUVVJOKEVRKTsqL30NCiIhPSIgICAgICAg ICAgICAgICAgIHsvKk5BTUVET1BfUkVUVVJOKE5FKTsqL30NCiImJiIgICAg ICAgICAgICAgICAgIHtOQU1FRE9QX1JFVFVSTihBTkRBTkQpO30NCiJ8fCIg ICAgICAgICAgICAgICAgIHtOQU1FRE9QX1JFVFVSTihPUk9SKTt9DQoiKj0i ICAgICAgICAgICAgICAgICB7LypOQU1FRE9QX1JFVFVSTihNVUxUYXNzaWdu KTsqL30NCiIvPSIgICAgICAgICAgICAgICAgIHsvKk5BTUVET1BfUkVUVVJO KERJVmFzc2lnbik7Ki99DQoiJT0iICAgICAgICAgICAgICAgICB7LypOQU1F RE9QX1JFVFVSTihNT0Rhc3NpZ24pOyovfQ0KIis9IiAgICAgICAgICAgICAg ICAgey8qTkFNRURPUF9SRVRVUk4oUExVU2Fzc2lnbik7Ki99DQoiLT0iICAg ICAgICAgICAgICAgICB7LypOQU1FRE9QX1JFVFVSTihNSU5VU2Fzc2lnbik7 Ki99DQoiPDw9IiAgICAgICAgICAgICAgICB7LypOQU1FRE9QX1JFVFVSTihM U2Fzc2lnbik7Ki99DQoiPj49IiAgICAgICAgICAgICAgICB7LypOQU1FRE9Q X1JFVFVSTihSU2Fzc2lnbik7Ki99DQoiJj0iICAgICAgICAgICAgICAgICB7 LypOQU1FRE9QX1JFVFVSTihBTkRhc3NpZ24pOyovfQ0KIl49IiAgICAgICAg ICAgICAgICAgey8qTkFNRURPUF9SRVRVUk4oRVJhc3NpZ24pOyovfQ0KInw9 IiAgICAgICAgICAgICAgICAgey8qTkFNRURPUF9SRVRVUk4oT1Jhc3NpZ24p OyovfQ0KIi4uLiIgICAgICAgICAgICAgICAge05BTUVET1BfUkVUVVJOKEVM TElQU0lTKTt9DQoNCg0KDQolJQ0KDQovKiAgSSB3b24ndCBib3RoZXIgdG8g cHJvdmlkZSBhbnkgZXJyb3IgcmVjb3ZlcnkuIEkgd29uJ3QgZXZlbiBoYW5k bGUgDQp1bmtub3duIGNoYXJhY3RlcnMgKi8NCg0KLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovDQppbnQgaXNhVFlQRShzdHJpbmcpDQpjaGFyICogc3RyaW5n Ow0KeyAgDQoNCiAgICAvKiAgV2UgIHNob3VsZCAgcmVhbGx5ICBiZSAgbWFp bnRhaW5pbmcgIGEgIHN5bWJvbCAgdGFibGUsIGFuZCBiZSANCiAgICAgIGNh cmVmdWxseSBrZWVwaW5nIHRyYWNrIG9mIHdoYXQgdGhlIGN1cnJlbnQgc2Nv cGUgaXMgKG9yIGluIHRoZSANCiAgICAgIGNhc2Ugb2YgInJlc2NvcGVkIiBz dHVmZiwgd2hhdCBzY29wZSB0byAgbG9vayAgaW4pLiAgU2luY2UgIHRoZSAN CiAgICAgIGdyYW1tYXIgIGlzICBub3QgYW5ub3RhdGVkIHdpdGggYWN0aW9u cyB0byB0cmFjayB0cmFuc2l0aW9ucyB0byANCiAgICAgIHZhcmlvdXMgc2Nv cGVzLCBhbmQgdGhlcmUgaXMgbm8gc3ltYm9sIHRhYmxlLCB3ZSB3aWxsIHN1 cHBseSAgYSANCiAgICAgIGhhY2sgIHRvICBhbGxvdyAgZm9sa3MgIHRvIHRl c3QgdGhlIGdyYW1tYXIgb3V0LiAgVEhJUyBJUyBOT1QgQSANCiAgICAgIENP TVBMRVRFIElNUExFTUVOVEFUSU9OISEhISAqLw0KDQogICAgcmV0dXJuICgn QScgPD0gc3RyaW5nWzBdICYmICdaJyA+PSBzdHJpbmdbMF0pOw0KfQ0KDQpp bnQgeXl3cmFwKCkNCnsgDQogIHJldHVybiAxOw0KfQ0K ---1463803903-1439073610-946274868=:333 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="main.c" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: main function DQojaW5jbHVkZTxzdGRpby5oPg0KbWFpbigpDQp7DQogIHByaW50ZigiQmVm b3JlIHBhcnNpbmcgdGhlIGNvZGVcbiIpOw0KICB5eXBhcnNlKCk7DQogIHBy aW50ZigiUGFyc2VkIHN1Y2Nlc3NmdWxseVxuIik7DQp9DQo= ---1463803903-1439073610-946274868=:333 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Makefile Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: makefile cGFyc2VyOiB5LnRhYi5jIGxleC55eS5jIG1haW4uYyB5LnRhYi5oDQoJY2Mg LW8gcGFyc2VyIHkudGFiLmMgbGV4Lnl5LmMgbWFpbi5jDQp5LnRhYi5jOiBw YXJzZS55DQoJeWFjYyAtZCBwYXJzZS55DQpsZXgueXkuYzogcGFyc2UubCB5 LnRhYi5oDQoJZmxleCBwYXJzZS5sDQp5LnRhYi5oOiBwYXJzZS5sDQoJeWFj YyAtZCBwYXJzZS55DQo= ---1463803903-1439073610-946274868=:333--