Received: from localhost ([::1]:53790 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WmMuw-00059M-C9; Mon, 19 May 2014 05:43:46 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:57494 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WmMun-00059D-BO for wikineurotic@lojban.org; Mon, 19 May 2014 05:43:44 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 19 May 2014 05:43:36 -0700 From: "Apache" Date: Mon, 19 May 2014 05:43:36 -0700 To: wikineurotic@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 2.0 (++) X-Spam_score: 2.0 X-Spam_score_int: 20 X-Spam_bar: ++ X-Spam-Report: Spam detection software, running on the system "stodi.digitalkingdom.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The page gadri: an unofficial commentary from a logical point of view was changed by guskant at 12:43 UTC You can view the page by following this link: http://www.lojban.org/tiki/gadri%3A%20an%20unofficial%20commentary%20from%20a%20logical%20point%20of%20view [...] Content analysis details: (2.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.6 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikineurotic] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikineurotic@lojban.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: webmaster@lojban.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikineurotic-bounces@lojban.org Content-Length: 65966 VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMTI6NDMgVVRDCgpZb3UgY2Fu IHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGluazoKIApodHRwOi8vd3d3LmxvamJh bi5vcmcvdGlraS9nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBmcm9t JTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldwoKWW91IGNhbiB2aWV3IGEgZGlmZiBi YWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6IApodHRw Oi8vd3d3LmxvamJhbi5vcmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5LnBocD9wYWdlPWdhZHJpJTNB JTIwYW4lMjB1bm9mZmljaWFsJTIwY29tbWVudGFyeSUyMGZyb20lMjBhJTIwbG9naWNhbCUyMHBv aW50JTIwb2YlMjB2aWV3JmNvbXBhcmU9MSZvbGR2ZXI9OSZuZXd2ZXI9MTAKCgoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUaGUgY2hh bmdlcyBpbiB0aGlzIHZlcnNpb24gZm9sbG93IGJlbG93LCBmb2xsb3dlZCBhZnRlciBieSB0aGUg Y3VycmVudCBmdWxsIHBhZ2UgdGV4dC4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKCgorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6IDQ5Ni01MDAgY2hhbmdl ZCB0byArTGluZXM6IDQ5Ni01MDAgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKVGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRo YXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50IGNhdXNlcyB0aGUgZm9sbG93aW5nIHByb2Js ZW1zLgoKLSAhISEhISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1YW50aWZpY2F0aW9uIG9mIG5v bi1leHNpc3RlbmNlCisgISEhISEjIENhbm5vdCBleHByZXNzIHBsdXJhbCBxdWFudGlmaWNhdGlv biBvZiBub24tZXhpc3RlbmNlClJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24gb2Yge2xvIG5vIGJy b2RhfSBpcyBvZmZpY2lhbGx5IGV4Y2x1ZGVkIGZyb20gTG9qYmFuLiBUaGF0IGlzIHRvIHNheSwg TG9qYmFuIGNhbm5vdCBvZmZpY2lhbGx5IGRlYWwgd2l0aCB0aGUgZXhwcmVzc2lvbiAidGhlcmUg aXMgbm90IHdoYXQgaXMgc3Vic3RpdHV0ZWQgZm9yIHtkYX0iIGZvciBwbHVyYWwgdmFyaWFibGUg KHtuYWt1IHN1J29pIGRhfSksIHdoaWNoIGlzIG5hdHVyYWxseSBkZWFsdCB3aXRoIGJ5IHBsdXJh bCBxdWFudGlmaWNhdGlvbi4gSW4gb3JkZXIgdG8gZXhwcmVzcyB7bG8gbm8gYnJvZGF9IHdpdGgg cmVhc29uYWJsZSBpbnRlcnByZXRhdGlvbiwgd2UgbmVlZCBhbiB1bm9mZmljaWFsIGludGVycHJl dGF0aW9uIGxpa2UgKCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4yLjEpKS4KCgoKCgoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgpUaGUgbmV3IHBhZ2UgY29udGVudCBmb2xsb3dzIGJlbG93LgoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKKChCUEZLIFNlY3Rpb246 IGdhZHJpfEJQRksncyBnYWRyaSBwYWdlKSkgY29udGFpbnMgZXhwcmVzc2lvbnMgbWlzbGVhZGlu ZyBwZW9wbGUgd2hvIGhhdmUgYXQgbGVhc3QgYSBsaXR0bGUga25vd2xlZGdlIG9mIGxvZ2ljIChb aHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL3RvcGljL2xvamJhbi9SQXRFN1lrLWRxdy9kaXNj dXNzaW9ufGRpc2N1c3Npb25dKS4KCkkgd2lsbCBtYWtlIGhlcmUgYSBjb21tZW50YXJ5IG9uIEJQ RksncyBnYWRyaSBzbyB0aGF0IGl0IGlzIHVuZGVyc29vZCBieSB0aGVtIGNvcnJlY3RseS4KCgoK e21ha2V0b2N9CgoKCiEhIyBHbG9zc2FyeQoKV2Ugd2lsbCB1c2UgdGhlIGZvbGxvd2luZyB0ZXJt cyBpbiB0aGlzIGNvbW1lbnRhcnkuCgo7X19hcmd1bWVudCAoc3VtdGkpX186IFN5bWJvbCB0aGF0 IHJlZmVycyB0byBhIHJlZmVyZW50LCBvciB0aGF0IGFub3RoZXIgYXJndW1lbnQgY2FuIGJlIHN1 YnN0aXR1dGVkIGZvci4KCjtfX3VuaXZlcnNlIG9mIGRpc2NvdXJzZV9fOiBTZXQgb2YgYWxsIHJl ZmVyZW50cyBvZiBhcmd1bWVudHMuIEl0IGlzIG5hdHVyYWxseSBhIHVuaXZlcnNlIHRoYXQgaXMg ZGlzY3Vzc2VkLiBBIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBkZXBlbmRzIG9uIHRoZSBjb250ZXh0 LgoKO19fY29uc3RhbnRfXzogQXJndW1lbnQgdGhhdCByZWZlcnMgdG8gYSByZWZlcmVudC4KCjtf X3ZhcmlhYmxlX186IEFyZ3VtZW50IGFzIGEgcGxhY2UgaG9sZGVyLiBJdCBkb2VzIG5vdCByZWZl ciB0byBhbnl0aGluZy4gSXQgaXMgdG8gYmUgc3Vic3RpdHV0ZWQgZm9yLiBWYXJpYWJsZSBvdGhl ciB0aGFuIGJvdW5kIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBkZWZpbmVkIGJlbGxvdyBpcyBjYWxs ZWQgX19mcmVlIHZhcmlhYmxlX18uIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHNlbnRlbmNlIHRoYXQg aW5jbHVkZXMgYSBmcmVlIHZhcmlhYmxlIGlzIGluZGVmaW5pdGUuIFN1Y2ggYSBzZW50ZW5jZSBp cyBjYWxsZWQgX19vcGVuIHNlbnRlbmNlX18uCgpeSW4gTG9qYmFuLCB7a2UnYX0gYW5kIHtjZSd1 fSBhcmUgYWx3YXlzIGZyZWUgdmFyaWFibGVzLiBBIHNlbnRlbmNlIGluIE5PSS1jbGF1c2Ugb3Ig TlUtY2xhdXNlIHdpdGgge2NlJ3V9IGlzIG9wZW4uIChBIHNlbnRlbmNlIGluIE5VLWNsYXNlIHdp dGggbm8ge2NlJ3V9IGhhcyBhIHRydXRoIHZhbHVlLCBidXQgZWFjaCBvZiB0aGUgaW5zaWRlIGFu ZCB0aGUgb3V0c2lkZSBvZiBOVS1jbGF1c2UgaGFzIGFuIGluZGVwZW5kZW50IHVuaXZlcnNlIG9m IGRpc2NvdXJzZSwgYW5kIHRodXMgZWFjaCBvZiB0aGVtIGhhcyBhbiBpbmRlcGVuZGVudCB0cnV0 aCB2YWx1ZSAoZm9yIGV4YW1wbGUsIHNlZSBbaHR0cDovL2RhZy5naXRodWIuaW8vY2xsLzkvNy98 Q0xMOS43XSkuIEluIGRlZmluaXRpb25zIG9mIHdvcmRzIGluIExvamJhbiwga28nVi9mbydWIHNl cmllcyB7a28nYSwga28nZSwgLi4ufSBvZiBzZWxtYSdvIEtPaEE0IGFyZSB1c2VkIGFzIGZyZWUg dmFyaWFibGVzLCBidXQgaXQgaXMgb25seSBhIGN1c3RvbSBmb3IgY29udmVuaWVuY2UuIEFsbCBj bWF2byBvZiBLT2hBMiwzLDQsNSw2IGFuZCB7em8nZX0gb2YgS09oQTcgYXJlIGVzc2VudGlhbGx5 IGNvbnN0YW50cy5eCgo7X19xdWFudGlmeV9fOiBJbiBzdWJzdGl0dXRpbmcgcG9zc2libGUgYXJn dW1lbnRzIG9uZSBieSBvbmUgZm9yIGEgdmFyaWFibGUgaW4gYSBzZW50ZW5jZSwgY291bnQgdGhl IG51bWJlciBvZiByZWZlcmVudHMgdGhhdCBtYWtlIHRoZSBzZW50ZW5jZSB0cnVlLCBhbmQgcHJl Zml4IHRoZSBudW1iZXIgdG8gdGhlIHZhcmlhYmxlLgoKO19fcXVhbnRpZmllcl9fOiBOdW1iZXIg dXNlZCBmb3IgcXVhbnRpZmljYXRpb24uIEJlc2lkZXMge3BhfSwge3JlfSwge3ZlaSBueSBzdSdp IHBhICh2ZSdvKX0gYW5kIHNvIG9uLCB7cm99ICJhbGwiIGFuZCB7c3Unb30gInRoZXJlIGlzIG9u ZSBvciBtb3JlIiBhcmUgYWxzbyBxdWFudGlmaWVycy4KCjtfX2JvdW5kIHZhcmlhYmxlX186IFZh cmlhYmxlIHByZWZpeGVkIGJ5IGEgcXVhbnRpZmllci4gQXMgYSByZXN1bHQgb2YgcXVhbnRpZmlj YXRpb24sIHRoZXJlIGlzIG5vIHJvb20gZm9yIHN1YnN0aXR1dGluZyBhbiBhcmJpdHJhcnkgYXJn dW1lbnQgZm9yIHRoZSB2YXJpYWJsZS4KCl5JbiBMb2piYW4sIHtkYX0sIHtkZX0gYW5kIHtkaX0g YXJlIGJvdW5kIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIHtybyBkYSB6byd1IGRhIGJyb2RhfSBt ZWFucyAiRm9yIGFsbCB7ZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIHtkYSBicm9k YX0gaXMgdHJ1ZS4iIEluIHRoZSBjYXNlIHRoYXQge2RhfSwge2RlfSBvciB7ZGl9IGFyZSBub3Qg cHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLCB0aGV5IGFyZSByZWdhcmRlZCBhcyBpbXBsaWNpdGx5 IHByZWZpeGVkIGJ5IHtzdSdvfS5eCgo7X19kb21haW5fXzogUmFuZ2Ugb2YgcmVmZXJlbnRzIHRv IGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBvciByYW5nZSB0byBiZSBjb25zaWRlcmVk IGluIGNvdW50aW5nIHJlZmVyZW50cyBpbiBxdWFudGlmaWNhdGlvbi4KCl5JbiBMb2piYW4sIGEg ZG9tYWluIG9mIGEgYm91bmQgdmFyaWFibGUgY2FuIGJlIGxpbWl0ZWQgd2l0aCBhbiBleHByZXNz aW9uIHtkYSBwb2kuLi59LiBGb3IgZXhhbXBsZSwge3JvIGRhIHBvaSBrZSdhIGJyb2RhIHpvJ3Ug ZGEgYnJvZGV9IG1lYW5zICJGb3IgYWxsIHtkYX0gdGhhdCBhcmUgeDEgb2Yge2Jyb2RhfSBpbiB0 aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCB7ZGEgYnJvZGV9IGlzIHRydWUuIiBJZiB7cG9pLi4u fSBkb2VzIG5vdCBmb2xsb3cge2RhfSwgdGhlIGRvbWFpbiBpcyB0aGUgd2hvbGUgdW5pdmVyc2Ug b2YgZGlzY291cnNlLl4KCjtfX3RhdXRvbG9neV9fOiBTZW50ZW5jZSB0aGF0IGlzIGFsd2F5cyB0 cnVlIGluZGVwZW5kZW50bHkgb2YgY29udGV4dC4ge2tvJ2EgZHUga28nYX0gZXRjLgoKO19fbG9n aWNhbCBheGlvbXNfXzogU2VudGVuY2VzIHNlbGVjdGVkIGZyb20gdGF1dG9sb2dpZXMgc28gdGhh dCBhbGwgdGF1dG9sb2dpZXMgYXJlIHByb3ZlZCBmcm9tIHRoZW0gd2l0aCBydWxlcyBvZiBpbmZl cmVuY2UgdGhhdCBhcmUgZGVmaW5lZC4KCgoKISEjIFBsdXJhbCBxdWFudGlmaWNhdGlvbgoKSW4g b3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9qYmFuIGZyb20gYSBsb2dpY2FsIHBv aW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZlIGEga25vd2xlZGdlIG9mIF9fcGx1 cmFsIHF1YW50aWZpY2F0aW9uX18uCgoKClBsdXJhbCBxdWFudGlmaWNhdGlvbiB3YXMgaW52ZW50 ZWQgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBleHByZXNzaW9uIG9mIHByb3Bvc2l0aW9uIHRoYXQg aXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gdGhlIHJlZmVyZW50IG9mIGFuIGFyZ3VtZW50IGlzIHBs dXJhbC4gCgpeCgo7RXhhbXBsZTogUGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS5eCgpM b2dpY2FsbHksIHRoaXMgc2VudGVuY2UgaXMgYSBwcm9wb3NpdGlvbiB0aGF0IGNvbnNpc3RzIG9m IGEgY29uc3RhbnQgInBlb3BsZSIgYW5kIHRocmVlIHByZWRpY2F0ZXMgImdhdGhlcmVkIiAiY29v a2VkIiBhbmQgImF0ZSIuIFRoZSBwcmVkaWNhdGVzIGFyZSBkaWZmZXJlbnQgZnJvbSBlYWNoIG90 aGVyIGluIHByb3BlcnR5IG9mIHRyZWF0aW5nIHRoZSBhcmd1bWVudC4gV2Ugd2lsbCBkaXNjdXNz IHByZWNpc2VseSBob3cgdGhlIGFyZ3VtZW50IGluIHRoZSBzZW50ZW5jZSBpcyB0cmVhdGVkLgoK CgohISEjIENvbGxlY3Rpdml0eSBhbmQgZGlzdHJpYnV0aXZpdHkKCgoKQ29uc2lkZXIgdGhlIGV4 cHJlc3Npb24gInBlb3BsZSBnYXRoZXJlZCI6IGJhc2VkIG9uIHRoZSBtZWFuaW5nIG9mIHRoZSBw cmVkaWNhdGUgImdhdGhlcmVkIiwgdGhlIGNvbnN0YW50ICJwZW9wbGUiIHNob3VsZCByZWZlciB0 byBwbHVyYWwgcGVvcGxlLgoKV2hlbiByZWZlcmVudHMgb2YgYW4gYXJndW1lbnQgc2F0aXNmeSBh IHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJhbCB0aGluZ3MgbGlrZSB0aGlzLCB3ZSBleHBy ZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fY29sbGVjdGl2 ZWx5X18iLCBvciAidGhlIGFyZ3VtZW50IGhhcyBfX2NvbGxlY3Rpdml0eV9fIi4KCgoKQXMgZm9y IGVhY2ggb2YgdGhlIHBsdXJhbCBwZW9wbGUgcmVmZXJyZWQgdG8gYnkgdGhlIGNvbnN0YW50LCAg ZWFjaCBzZW50ZW5jZSBzdWNoIHRoYXQgIkFsaWNlIGdhdGhlcmVkIiwgIkJvYiBnYXRoZXJlZCIg YW5kIHNvIG9uIGlzIG5vbnNlbnNlLgoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5 IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYWxvbmUsIHdlIGV4cHJlc3Mg aXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19ub24tZGlzdHJpYnV0 aXZlbHlfXyIuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBpbiB0aGUgZXhwcmVzc2lvbiAicGVvcGxl IGF0ZSIsIGFsdGhvdWdoIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBl b3BsZSwgdGhlIHByZWRpY2F0ZSAiYXRlIiBpcyBzYXRpc2ZpZWQgYnkgZWFjaCBwZXJzb24uIFRo YXQgaXMgdG8gc2F5LCBlYWNoIHNlbnRlbmNlIHN1Y2ggdGhhdCAiQWxpY2UgYXRlIiwgIkJvYiBh dGUiIGFuZCBzbyBvbiBpcyBtZWFuaW5nZnVsLgoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVk IHRvIGJ5IGEgY29uc3RhbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGFsb25lLCB3ZSBleHByZXNz IGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fZGlzdHJpYnV0aXZl bHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFzIF9fZGlzdHJpYnV0aXZpdHlfXyIuCgoKCk1vcmVv dmVyLCBpZiB0aGUgcHJlZGljYXRlICJlYXQiIG1lYW5zIGFuIGFjdCAicHV0IGZvb2QgaW4gYSBt b3V0aCwgYml0ZSBpdCwgbGV0IGl0IHBhc3MgdGhyb3VnaCBhbiBlc29waGFndXMgYW5kIHNlbmQg aXQgdG8gYSBzdG9tYWNoIiwgaXQgaXMgaGFyZGx5IGNvbnNpZGVyZWQgdGhhdCAicGVvcGxlIiBz YXRpc2ZpZXMgImVhdCIgY29sbGVjdGl2ZWx5LiBFdmVuIGlmIGEgcGVyc29uIGhlbHBzIGFub3Ro ZXIgdG8gZWF0LCB0aGUgaGVscGVyIGlzIG5vdCBlYXRlciwgYW5kIHRoZSBlYXRlciBpcyBub3Qg Y29sbGVjdGl2ZSBwZW9wbGUgYnV0IGFuIGluZGl2aWR1YWwuIAoKV2hlbiBlYWNoIHJlZmVyZW50 IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYXMg Y29sbGVjdGl2ZSBwbHVyYWwgdGhpbmdzLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBz YXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fbm9uLWNvbGxlY3RpdmVseV9fIi4KCihIb3dldmVyLCBp dCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0ZSAiZWF0IiBhcyBpbnZvbHZp bmcgY29sbGVjdGl2aXR5LiBGb3IgZXhhbXBsZSwgaWYgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgInB1 dCBmb29kIGF3YXkgZnJvbSBvdXRzaWRlIHRvIGluc2lkZSBvZiBib2R5Iiwgd2UgbWF5IHNheSAi Y29sbGVjdGl2ZWx5IGVhdCIgdG8gZXhwcmVzcyBhbiBldmVudCB0aGF0IHBlb3BsZSBlYXQgYW5k IGNvbnN1bWUgYSBtYXNzIG9mIGZvb2QgdG9nZXRoZXIuKQoKCgpUaGVyZSBhcmUgYWxzbyBwcmVk aWNhdGVzIHRoYXQgYWxsb3cgYm90aCBwcm9wZXJ0aWVzICJjb2xsZXZ0aXZpdHkiIGFuZCAiZGlz dHJpYnV0aXZpdHkiLgoKIlBlb3BsZSBjb29rZWQiIG1heSBtZWFuIHRoYXQgcGx1cmFsIHBlb3Bs ZSBrbmVhZCBwYXN0ZSBvZiBwaXp6YSB0b2dldGhlciwgYW5kIHRoYXQgZWFjaCBvZiB0aGVtIGlz IGluIGNoYXJnZSBvZiBjYWtlcyBvciBwb3QtYXUtZmV1LiBJbiB0aGlzIGNhc2UsIHRoZSBjb25z dGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgYW5kIHRoZXkgY29va2VkIHBp enphIGNvbGxlY3RpdmVseSwgY2FrZXMgYW5kIHBvdC1hdS1mZXUgZGlzdHJpYnV0aXZlbHkuIFRo ZSBjb25zdGFudCAicGVvcGxlIiB0aHVzIHNhdGlzZmllcyB0aGUgcHJlZGljYXRlICJjb29rZWQi IGNvbGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0aXZlbHkuCgoKCk5vdGUgdGhhdCB0aGUgY29uc3Rh bnQgInBlb3BsZSIgcmVmZXJzIHRvIHdoYXQgaXMgY29tbW9uIHRvIHRocmVlIHByZWRpY2F0ZXMg ImdhdGhlcmVkIiwgImNvb2tlZCIgYW5kICJhdGUiLiBObyBtYXR0ZXIgaWYgYSBjb25zdGFudCBz YXRpc2ZpZXMgcHJlZGljYXRlcyBjb2xsZWN0aXZlbHkgb3IgZGlzdHJpYnV0aXZlbHksIHRoZSBy ZWZlcmVudCBpcyB0aGUgc2FtZS4KCgoKSWYgd2UgdXNlIGFuIGFyZ3VtZW50ICJhIHNldCBvZiBw ZW9wbGUiIGluIHRoZSBjYXNlIG9mIHNhdGlzZnlpbmcgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5 LCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0ZSAiZ2F0aGVy ZWQiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IHNhdGlzZmllcyBpdCwgYnV0IHRoZSBzYW1lIGFyZ3Vt ZW50IGNhbm5vdCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgImF0ZSIsIGJlY2F1c2Ugd2UgY2FuIGhh cmRseSBzYXkgdGhhdCBhIHNldCBvZiBwZW9wbGUsIHdoaWNoIGlzIGFuIGFic3RyYWN0IGVudGl0 eSwgcGVyZm9ybXMgImF0ZSIuCgoKClVzaW5nIHBsdXJhbCBjb25zdGFudHMgYW5kIHBsdXJhbCB2 YXJpYWJsZXMgdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25z LCB3ZSBjYW4gZXhwcmVzcyBwbHVyYWwgdGhpbmdzIGluIHRoZSBmb3JtIG9mIHByZWRpY2F0ZSBs b2dpYyB3aXRob3V0IHVzaW5nIHNldHMuCgoKCiEhISMgUGx1cmFsIGNvbnN0YW50IGFuZCBwbHVy YWwgdmFyaWFibGUKCkFuIGFyZ3VtZW50IHRoYXQgcmVmZXJzIHRvIHJlZmVyZW50IHdpdGhvdXQg aW50cm9kdWNpbmcgYSBub3Rpb24gb2Ygc2V0cywgd2l0aG91dCBkaXN0aW5ndWlzaGluZyBjb2xs ZWN0aXZpdHkgYW5kIGRpc3RyaWJ1dGl2aXR5LCB3aXRob3V0IGRpc3Rpbmd1aXNoaW5nIHBsdXJh bGl0eSBhbmQgc2luZ3VsYXJpdHksIGlzIGNhbGxlZCBfX3BsdXJhbCBjb25zdGFudF9fLgoKQSB2 YXJpYWJsZSBmb3Igd2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgY2FuIGJlIHN1YnN0aXR1dGVkIGlz IGNhbGxlZCBfX3BsdXJhbCB2YXJpYWJsZV9fLgoKUXVhbnRpZnlpbmcgYSBwbHVyYWwgdmFyaWFi bGUgaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uIEEgcXVhbnRpZmllciB1c2Vk IGZvciBwbHVyYWwgcXVhbnRpZmljYXRpb24gaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpZXJf Xy4gQSBwbHVyYWwgdmFyaWFibGUgcHJlZml4ZWQgd2l0aCBhIHBsdXJhbCBxdWFudGlmaWVyIGlz IGNhbGxlZCBhIF9fYm91bmQgcGx1cmFsIHZhcmlhYmxlX18uCgoKCiEhISEjIG1lIGFuZCBqbyd1 CgpXZSBpbnRyb2R1Y2UgcmVsYXRpb25zIGJldHdlZW4gcGx1cmFsIGNvbnN0YW50cyBhbmQgcGx1 cmFsIHZhcmlhYmxlczoge21lfSBhbmQge2pvJ3V9LgoKCgp8fAoKWCBtZSBZIChtZSd1KSB+aHN+ fH5oc34gWCBpcyBhbW9uZyBZCgp8fAoKWCBhbmQgWSByZXByZXNlbnQgaGVyZSBwbHVyYWwgY29u c3RhbnRzIG9yIHBsdXJhbCB2YXJpYWJsZXMuIEEgY2x1c3RlciB7bWUgWSAobWUndSl9IGlzIGEg c2VsYnJpIGluIExvamJhbiBncmFtbWFyLiB7bWUndX0gaXMgYW4gZWxpZGFibGUgdGVybWluYXRv ciBvZiBzdHJ1Y3R1cmUgYmVnaW5uaW5nIHdpdGgge21lfS4KCgoKe21lfSBoYXMgdGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBYLCBZIGFuZCBaOgoKIyBY IG1lIFggKHJlZmxleGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBaIGluYWphIFggbWUgWiAo dHJhbnNpdGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBYIGlqbyBYIGR1IFkgKGlkZW50aXR5 KQoKVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhhdCB0aGUgaWRlbnRpdHkgYmV0d2VlbiByZWZlcmVu dHMgb2YgWCBhbmQgWSBpcyByZXByZXNlbnRlZCB3aXRoIHttZX0sIGFzIGEgcmVsYXRpb24gdGhh dCB7WCBtZSBZIGlqZWJvIFkgbWUgWH0uCgoKCnx8CgpYIGpvJ3UgWSB+aHN+fH5oc34gWCBhbmQg WQoKfHwKCntqbyd1fSBjb21iaW5lcyB0d28gYXJndW1lbnRzIFggYW5kIFkgaW50byBvbmUgcGx1 cmFsIGNvbnN0YW50IG9yIG9uZSBwbHVyYWwgdmFyaWFibGUuCgoKCntqbyd1fSBoYXMgdGhlIGZv bGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBYIGFuZCBZOgoKIyBY IG1lIFggam8ndSBZCgojIFggam8ndSBZIGR1IFkgam8ndSBYCgojIFggam8ndSBYIGR1IFgKClRo ZSBwcm9wZXJ0eSAyIG1lYW5zIHRoYXQgdGhlIHJlZmVyZW50IG9mIHRoZSB3aG9sZSBhcmd1bWVu dCBkb2VzIG5vdCB2YXJ5IHdoZW4gdHdvIGFyZ3VtZW50cyBjb21iaW5lZCBieSB7am8ndX0gYXJl IGludGVyY2hhbmdlZCB3aXRoIGVhY2ggb3RoZXIuIFRoZSBwcm9wZXJ0eSAzIG1lYW5zIHRoYXQg e2pvJ3V9IGRvZXMgbm90IGFkZCBhbnkgcmVmZXJlbnQgd2hlbiBpdCBjb21iaW5lcyBhbiBhcmd1 bWVudCB3aXRoIGl0c2VsZi4KCgoKVXNpbmcge2pvJ3V9LCB0aGUgZm9sbG93aW5nIGV4cHJlc3Np b24gaXMgcG9zc2libGU6CgpeCgo7RXhhbXBsZTogQiBhbmQgQyBnYXRoZXJlZCwgY29va2VkIGFu ZCBhdGUuCgo7OiBieSBqbyd1IGN5IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYV4KCkVhY2gg b2Yge2J5fSBhbmQge2N5fSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoKVGhlIHByZWRpY2F0ZSB7 anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0 cmlidXRpdmVseSwgYnV0IHRoZSBwbHVyYWwgY29uc3RhbnQge2J5IGpvJ3UgY3l9IHNheXMgbm90 aGluZyBhYm91dCB3aGV0aGVyIGl0IHNhdGlzZmllcyB7anVrcGF9IGNvbGxlY3RpdmVseSBhbmQv b3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkg Y29va2VkICJjb2xsZWN0aXZlbHkiLCB3ZSBzYXkge2J5IGpvaSBjeX0gdXNpbmcgKChCUEZLIFNl Y3Rpb246IE5vbi1sb2dpY2FsIENvbm5lY3RpdmVzfHtqb2l9IHRoYXQgY29tYmluZXMgdHdvIGFy Z3VtZW50cyBpbnRvIGFuIGFyZ3VtZW50IHRoYXQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIG5vbi1k aXN0cmlidXRpdmVseSkpLCBvciB7bHUnbyBieSBqbyd1IGN5fSB1c2luZyB7bHUnb30gdGhhdCB3 aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9h bmRfZ2Fkcml8U2VjdGlvbiAzLjMpKS4gQ29udHJhc3RpdmVseSwgaWYgd2Ugd2FudCB0byBtYWtl IGV4cGxpY2l0IHRoYXQgdGhleSBjb29rZWQgImRpc3RyaWJ1dGl2ZWx5Iiwgd2Ugc2F5ICB7bHUn YSBieSBqbyd1IGN5fSB1c2luZyB7bHUnYX0gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwj UmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKS4g SG93ZXZlciwgdGhlc2UgYXJndW1lbnRzIHRoYXQgc2F5cyBleHBsaWNpdGx5IGNvbGxlY3Rpdml0 eSBhbmQvb3IgZGlzdHJpYnV0aXZpdHkgYXJlIG5vdCBhbHdheXMgY29tbW9ubHkgdXNlZCBmb3Ig b3RoZXIgcHJlZGljYXRlcyBsaWtlIHtqbWFqaX0gb3Ige2NpdGthfS4KCgoKVGhlIGRpYWdyYW0g YmVsbG93IHNob3dzIHJlbGF0aW9ucyBjb25zdHJ1Y3RlZCB3aXRoIHttZX0gYW5kIHtqbyd1fSBy ZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGgsIGluIHdoaWNoIHRoZSB2ZXJ0aWNlcyBy ZXByZXNlbnQgcGx1cmFsIGNvbnN0YW50cy4KCgoKe2ltZyBmaWxlSWQ9IjciIHRodW1iPSJ5IiBy ZWw9ImJveFtnXSJ9CgoKCiEhISEjIEluZGl2aWR1YWwKClJlZmVyZW50IG9mIGEgcGx1cmFsIGNv bnN0YW50IGlzIG5vdCBuZWNlc3NhcmlseSBwbHVyYWw6IGEgcGx1cmFsIGNvbnN0YW50IGNhbiBy ZWZlciB0byBvbmUgaW5kaXZpZHVhbC4KCl9fQW4gaW5kaXZpZHVhbF9fIGlzIGRlZmluZWQgYXMg Zm9sbG93czoKCnx8CgpfX1ggaXMgYW4gaW5kaXZpZHVhbF9fIH5oc358fmhzfiA9Y2EnZSB+aHN+ fH5oc34gcm8nb2kgZGEgcG9pIGtlJ2EgbWUgWCB6byd1IFggbWUgZGEKCnx8CgoKCndoZXJlIF9f cm8nb2lfXyBpcyBhbiBleHBlcmltZW50YWwgY21hdm8gcHJvcG9zZWQgYnkgKCh4b3J4ZXN8bGEg eG9yeGVzKSksIHdoaWNoIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmluZyAiYWxsIi4gIHty bydvaSBkYX0gaXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgbWVhbmluZyAiZm9yIGFsbCB0aGF0 IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSIuIFRoaXMgZGVmaW5pdGlvbiBtZWFucyB0aGF0 IFggaXMgY2FsbGVkIGFuIGluZGl2aWR1YWwgd2hlbiB0aGUgY29uZGl0aW9uICJmb3IgYWxsIHtk YX0gdGhhdCBhcmUgYW1vbmcgWCwgWCBpcyBhbW9uZyB7ZGF9IiBpcyBzYXRpc2ZpZWQuIEluIG90 aGVyIHdvcmRzLCAiaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgbm90aGluZyBvdGhlciB0 aGFuIHtYfSBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHtkYX0gc3VjaCB0aGF0IHtYIG1lIGRhfSIg aXMgZXhwcmVzc2VkIGJ5ICJYIGlzIGFuIGluZGl2aWR1YWwiLgoKCgpXaGVuIGVhY2ggb2YgWCBh bmQgWSBpcyBhbiBpbmRpdmlkdWFsLCB7WCBqbyd1IFl9IGlzIGNhbGxlZCBfX2luZGl2aWR1YWxz X18uIFdoZW4gZWFjaCBvZiBYIGFuZCBZIGlzIGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMs IHtYIGpvJ3UgWX0gaXMgY2FsbGVkIGluZGl2aWR1YWxzIGFzIHdlbGwuCgoKCiEhISEjIERpZmZl cmVuY2UgYmV0d2VlbiBwbHVyYWwgYW5kIHNpbmd1bGFyCgpBIHBsdXJhbCBjb25zdGFudCB0aGF0 IGlzIGFuIGluZGl2aWR1YWwgaXMgY2FsbGVkIF9fc2luZ3VsYXIgY29uc3RhbnRfXy4KCgoKTm8g bWF0dGVyIHdoZXRoZXIgZWFjaCBvZiBYIGFuZCBZIGlzIHBsdXJhbCBvciBzaW5ndWxhciwge1gg am8ndSBZfSBpcyBub3QgYSBzaW5ndWxhciBjb25zdGFudC4gSXQgaXMgYmVjYXVzZSAKCl5YIG1l IFggam8ndSBZIGlqZW5haSBYIGpvJ3UgWSBtZSBYXgoKaG9sZHMgdHJ1ZSwgYW5kIHRoZW4ge1gg am8ndSBZfSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjb25kaXRpb24gb2YgYW4gaW5kaXZpZHVhbCB7 cm8nb2kgZGEgcG9pIGtlJ2EgbWUgWCBqbyd1IFkgem8ndSBYIGpvJ3UgWSBtZSBkYX0uCgoKCiEh ISEjIEJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlCgpXaGVuIHRoZSBkb21haW4gb2YgYSBib3VuZCBw bHVyYWwgdmFyaWFibGUgaXMgcmVzdHJpY3RlZCB0byB3aGF0IGlzIGFuIGluZGl2aWR1YWwsIHRo ZSB2YXJpYWJsZSBpcyBjYWxsZWQgX19ib3VuZCBzaW5ndWxhciB2YXJpYWJsZV9fLgoKe3JvIGRh fSAoZm9yIGFsbCB7ZGF9KSBhbmQge3N1J28gZGF9ICh0aGVyZSBpcyBhdCBsZWFzdCBvbmUge2Rh fSksIHdoaWNoIGFyZSBvZmZpY2lhbGx5IGRlZmluZWQgaW4gTG9qYmFuLCBhcmUgYm91bmQgc2lu Z3VsYXIgdmFyaWFibGVzLiBUaGV5IGNhbiBiZSBkZWZpbmVkIHdpdGggYm91bmQgcGx1cmFsIHZh cmlhYmxlcyBhcyBmb2xsb3dzOgoKfHwKCnJvIGRhIH5oc358fmhzfiBybydvaSBkYSBwb2kgcm8n b2kgZGUgcG9pIGtlJ2EgeGkgcGEgbWUga2UnYSB4aSByZSB6byd1IGtlJ2EgeGkgcmUgbWUgZGUK CnN1J28gZGEgfmhzfnx+aHN+IHN1J29pIGRhIHBvaSBybydvaSBkZSBwb2kga2UnYSB4aSBwYSBt ZSBrZSdhIHhpIHJlIHpvJ3Uga2UnYSB4aSByZSBtZSBkZQoKfHwKCl9fc3Unb2lfXyBpcyBhbiBl eHBlcmltZW50YWwgY21hdm8gcHJvcG9zZWQgYnkgKCh4b3J4ZXN8bGEgeG9yeGVzKSksIGFuZCBp cyBhIHBsdXJhbCBxdWFudGlmaWVyIG1lYW5pbmcgInRoZXJlIGlzL2FyZSIuIE5vdGUgdGhhdCB7 c3Unb2l9IGlzIF9fbm90X18gImF0IGxlYXN0IG9uZSIuIHtzdSdvaSBkYX0gaXMgYSBib3VuZCBw bHVyYWwgdmFyaWFibGUgbWVhbmluZyAidGhlcmUgaXMvYXJlIHtkYX0iLgoKCgpGb3IgZXhhbXBs ZSwgYSBwbHVyYWwgY29uc3RhbnQge0Egam8ndSBCfSBjYW4gYmUgaW4gYSBkb21haW4gb2YgYSBi b3VuZCBwbHVyYWwgdmFyaWFibGUsIGJ1dCBpdCBjYW5ub3QgYmUgaW4gYSBkb21haW4gb2YgYSBi b3VuZCBzaW5ndWxhciB2YXJpYWJsZSBiZWNhdXNlIGl0IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoK CgohISEhIyBXaGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMKClJl ZmVyZW50IG9mIGEgcGx1cmFsIGNvbnN0YW50IGlzIG5vdCBuZWNlc3NhcmlseSBhbiBpbmRpdmlk dWFsIG9yIGluZGl2aWR1YWxzLiAKCkl0IGlzIHBvc3NpYmxlIHRvIGRpc2N1c3MgYSB1bml2ZXJz ZSBvZiBkaXNjb3Vyc2Ugc3VjaCB0aGF0IHJlZmVyZW50IG9mIGEgcGx1cmFsIGNvbnN0YW50IGlz IG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKCkZvciBleGFtcGxlLCBj b25zaWRlciBzdWNoIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGluIHdoaWNoIHRoZSBmb2xsb3dp bmcgcHJvcG9zaXRpb24gaG9sZHMgdHJ1ZS4KCl5ybydvaSBkYSBwb2kga2UnYSBtZSBrbydhIGt1 J28gc3Unb2kgZGUgem8ndSBkZSBtZSBkYSBpamVuYWkgZGEgbWUgZGUgfi0tfiBDb25kaXRpb25f MV4KCkluIG90aGVyIHdvcmRzLCBpbiB0aGlzIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgZm9yIGFs bCBYIHN1Y2ggdGhhdCB7WCBtZSBrbydhfSwgdGhlcmUgaXMgYWx3YXlzIFkgc3VjaCB0aGF0IHtZ IG1lIFh9IGFuZCBub3Qge1ggbWUgWX0uCgoKCjtUaGVvcmVtOiBJbiBhIHVuaXZlcnNlIG9mIGRp c2NvdXJzZSB3aGVyZSBDb25kaXRpb25fMSBpcyB0cnVlLCB7a28nYX0gaXMgbmVpdGhlciBhbiBp bmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKO1Byb29mOiBTdXBwb3NlIHtrbydhfSBpcyBh biBpbmRpdmlkdWFsLiBGcm9tIHRoZSBkZWZpbml0aW9uIG9mICJhbiBpbmRpdmlkdWFsIjoKCl5y bydvaSBkYSBwb2kga2UnYSBtZSBrbydhIHpvJ3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9u XzJeCgpSZXBsYWNlIHtybydvaSBkYX0gd2l0aCB7bmFrdSBzdSdvaSBkYSBuYWt1fToKCl5uYWt1 IHN1J29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Ega3UnbyBuYWt1IHpvJ3Uga28nYSBtZSBkYSB+LS1+ IFN1cHBvc2l0aW9uXzItMV4KCk1vdmUgdGhlIGlubmVyLW1vc3Qge25ha3V9IGludG8gdGhlIHBy b3Bvc2l0aW9uOgoKXm5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgbWUga28nYSB6byd1IG5ha3Uga28n YSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItMl4KClJlcGxhY2Uge3N1J29pIGRhIHBvaX0gd2l0 aCB7aWplfSBhbmQgbW92ZSBpbnRvIHRoZSBwcm9wb3NpdGlvbjoKCl5uYWt1IHN1J29pIGRhIHpv J3UgZGEgbWUga28nYSBpamUgbmFrdSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0zXgoK UmVwbGFjZSB7aWplIG5ha3V9IHdpdGgge2lqZW5haX06CgpebmFrdSBzdSdvaSBkYSB6byd1IGRh IG1lIGtvJ2EgaWplbmFpIGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3NpdGlvbl8yLTReCgpCeSB0aGUg d2F5LCBmcm9tIGEgcHJvcGVydHkgb2Yge21lfSwKCl5rbydhIG1lIGtvJ2EgXgoKaXMgYWx3YXlz IHRydWUuIHtrbydhfSBpcyB0aGVyZWZvcmUgaW4gdGhlIGRvbWFpbiBvZiB7ZGF9IG9mIENvbmRp dGlvbl8xLiBSZXBsYWNlIHtybydvaSBkYX0gb2YgQ29uZGl0aW9uXzEgd2l0aCB7a28nYX0sIGFu ZCBpdCB0aHVzIGhvbGRzIHRydWU6Cgpec3Unb2kgZGUgem8ndSBkZSBtZSBrbydhIGlqZW5haSBr bydhIG1lIGRlIH4tLX4gQ29uZGl0aW9uXzEtMV4KCkNvbmRpdGlvbl8xLTEgYW5kIFN1cHBvc2l0 aW9uXzItNCBjb250cmFkaWN0IGVhY2ggb3RoZXIuCgpTdXBwb3NpdGlvbl8yIGlzIHRodXMgcmVq ZWN0ZWQgYnkgcmVkdWN0aW8gYWQgYWJzdXJkdW0uCgpJdCBtZWFucyB0aGF0IHtrbydhfSBpcyBu b3QgYW4gaW5kaXZpZHVhbC4KCgoKTW9yZW92ZXIsIHdoZW4ge2tvJ2F9IGlzIGV4cGFuZGVkIHRv IHtBIGpvJ3UgQn0sIGZyb20gYSBwcm9wZXJ0eSBvZiB7am8ndX0sIHRoZSBmb2xsb3dpbmcgcHJv cG9zaXRpb25zIGhvbGQgdHJ1ZToKCl5BIG1lIGtvJ2F+cHB+Cgp+L3BwfkIgbWUga28nYV4KCkVh Y2ggb2YgQSBhbmQgQiBpcyBpbiB0aGUgZG9tYWluIG9mIHtkYX0gb2YgQ29uZGl0aW9uXzEuIENv bnNpZGVyaW5nIHNpbWlsYXJseSB0byBDb25kaXRpb25fMS0xLCBuZWl0aGVyIEEgbm9yIEIgaXMg YW4gaW5kaXZpZHVhbC4ge2tvJ2F9IGlzIHRodXMgbm90IGluZGl2aWR1YWxzLgoKUS5FLkQuCgoK CldoZW4ge2tvJ2F9IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMsIHdo YXQgYWN0dWFsbHkgZG9lcyBpdCByZWZlciB0bz8KCldlIG1heSBpbnRlcnByZXQgdGhhdCBpdCBy ZWZlcnMgdG8gd2hhdCBpcyByZWZlcmVkIHRvIGJ5IGEgbWF0ZXJpYWwgbm91biwgZm9yIGV4YW1w bGUuCgpCeSBhIHNwZWFrZXIgd2hvIHRoaW5rcyB0aGF0IGEgY3V0LW9mZiBwaWVjZSBvZiBicmVh ZCBpcyBhbHNvIGJyZWFkLCBicmVhZCBpcyByZWdhcmRlZCBhcyBuZWl0aGVyIGFuIGluZGl2aWR1 YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9s b2piYW4vUkF0RTdZay1kcXcvcENHZVlDRTlsMVFKfChSZWxhdGVkIGRpc2N1c3Npb246IGZvciB0 aGUgY2FzZSBvZiB7a28nYX09e2xvIHNpZGJvfSwgSSB3cm90ZSB0aGUgc2FtZSBwcm9vZiBvbmx5 IGluIExvamJhbi4pXQoKCgohISEhIyBBIGxvZ2ljYWwgYXhpb20gb24gcGx1cmFsIGNvbnN0YW50 CgpUaGUgZm9sbG93aW5nIGxvZ2ljYWwgYXhpb20gaXMgZ2l2ZW4gdG8gYW4gYXJiaXRyYXJ5IHBs dXJhbCBjb25zdGFudCBDOgoKXmdhbmFpIEMgYnJvZGEgZ2kgc3Unb2kgZGEgem8ndSBkYSBicm9k YV4KCgoKSXQgbWVhbnMgImluIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBpZiBhIHByb3Bvc2l0 aW9uIGluIHdoaWNoIGEgcGx1cmFsIGNvbnN0YW50IGlzIHgxIG9mIHticm9kYX0gaG9sZHMgdHJ1 ZSwgdGhlcmUgaXMgcmVmZXJlbnQgdGhhdCBpcyB4MSBvZiB7YnJvZGF9Ii4KCgoKVGhhdCBpcyB0 byBzYXksIGFuIGFyZ3VtZW50IHRoYXQgaGFzIG5vIHJlZmVyZW50IGluIGEgdW5pdmVyc2Ugb2Yg ZGlzY291cnNlIGNhbm5vdCBiZSByZXByZXNlbnRlZCBieSBhIHBsdXJhbCBjb25zdGFudC4gQW4g YXJndW1lbnQgdGhhdCBoYXMgbm8gcmVmZXJlbnQgaXMgZXhwcmVzc2VkIGluIHRoZSBmb3JtIHtu YWt1IHN1J29pIGRhfSwgd2hpY2ggaXMgYSBuZWdhdGlvbiBvZiBhIGJvdW5kIHBsdXJhbCB2YXJp YWJsZSB7c3Unb2kgZGF9IG1lYW5pbmcgInRoZXJlIGlzL2FyZSIuCgoKCiEhIyBEZWZpbml0aW9u IG9mIGdhZHJpCgo7X19sb19fIChMRSk6IEl0IGlzIHByZWZpeGVkIHRvIHNlbGJyaSwgYW5kIGZv cm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHdoYXQgc2F0aXNmaWVzIHgxLCB0 aGUgZmlyc3QgcGxhY2Ugb2YgdGhlIHNlbGJyaS4gSWYgYSBxdWFudGlmaWVyIGZvbGxvd3Mge2xv fSwgdGhlIHF1YW50aWZpZXIgcmVwcmVzZW50cyB0aGUgc3VtIG9mIGFsbCB0aGUgcmVmZXJlbnRz IG9mIHRoZSBwbHVyYWwgY29uc3RhbnQuIEluIHRoZSBjYXNlIHRoYXQgYSBxdWFudGlmaWVyIGZv bGxvd3Mge2xvfSwgYSBzdW10aSBtYXkgZm9sbG93IGl0LCBhbmQgdGhlIHF1YW50aWZpZXIgcmVw cmVzZW50cyB0aGUgc3VtIG9mIGFsbCB0aGUgcmVmZXJlbnRzIG9mIHRoZSBzdW10aS4KCnx8Cgps byBbW1BBXSBicm9kYSAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIGJyb2RhIFtbZ2knZSB6 aWxrYW5jdSBsaSBQQSBsbyBicm9kYV0gKGt1J28pIH5oc358fmhzfiB3aGF0IGlzL2FyZSBicm9k YSBbW3RoYXQgaXMvYXJlIFBBIGluIHRvdGFsXQoKbG8gUEEgJydzdW10aScnIChrdSkgfmhzfnx+ aHN+IGxvIFBBIG1lICcnc3VtdGknJyAobWUndSkgKGt1KSB+aHN+fH5oc34gd2hhdCBpcy9hcmUg YW1vbmcgJydzdW10aScnIHRoYXQgaXMvYXJlIFBBIGluIHRvdGFsCgp8fAoKe2t1fSwge2t1J299 LCB7bWUndX0gYXJlIGVsaWRhYmxlIHRlcm1pbmF0b3JzLgoKCgpQdXR0aW5nIGEgcXVhbnRpZmll ciBhZnRlciBnYWRyaSBsaWtlIHtsbyBQQX0gaXMgY2FsbGVkIF9faW5uZXIgcXVhbnRpZmljYXRp b25fXywgYW5kIHRoZSBxdWFudGlmaWVyIGlzIGNhbGxlZCBfX2lubmVyIHF1YW50aWZpZXJfXy4g QWx0aG91Z2ggdGhlIHRlcm0gInF1YW50aWZ5IiBpcyBpbnZvbHZlZCwgaXQgaXMgZGlmZmVyZW50 IGZyb20gcXVhbnRpZmljYXRpb24gb2YgbG9naWMuIElubmVyIHF1YW50aWZpY2F0aW9uIGRvZXMg bm90IGludm9sdmUgY291bnRpbmcgcmVmZXJlbnRzIG9mIGNvbnN0YW50cyB0aGF0IGNhbiBiZSBz dWJzdGl0dXRlZCBmb3IgYSB2YXJpYWJsZSwgYnV0IGNvdW50aW5nIGFsbCB0aGUgcmVmZXJlbnRz IG9mIG9uZSBwbHVyYWwgY29uc3RhbnQuIElubmVyIHF1YW50aWZpY2F0aW9uIHdpbGwgYmUgZGlz Y3Vzc2VkIG1vcmUgcHJlY2lzZWx5IGluICgofCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9u IDMuMSkpLgoKCgpPbiB0aGUgb3RoZXIgaGFuZCwgcHV0dGluZyBhIHF1YW50aWZpZXIgYmVmb3Jl IGdhZHJpLCBvciBiZWZvcmUgYSBzdW10aSBtb3JlIGdlbmVyYWxseSwgaXMgY2FsbGVkIF9fb3V0 ZXIgcXVhbnRpZmljYXRpb25fXywgYW5kIHRoZSBxdWFudGlmaWVyIGlzIGNhbGxlZCBfX291dGVy IHF1YW50aWZpZXJfXy4gT3V0ZXIgcXVhbnRpZmljYXRpb24gd2lsbCBiZSBkaXNjdXNzZWQgbW9y ZSBwcmVjaXNlbHkgaW4gKCh8I091dGVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4yKSkuCgoK CkFsbCBzdW10aSBmb3JtZWQgd2l0aCBnYWRyaSBhcmUgZGVmaW5lZCBzbyB0aGF0IHRoZXkgYXJl IGV4cGFuZGVkIGludG8gZXhwcmVzc2lvbnMgd2l0aCB7em8nZX0uIFRoYXQgaXMgdG8gc2F5LCB0 aGUgbW9zdCBnZW5lcmFsIHBsdXJhbCBjb25zdGFudCBpcyByZXByZXNlbnRlZCBieSBhIHNpbmds ZSB7em8nZX0uIEEgc3VtdGkgZm9ybWVkIHdpdGggZ2FkcmkgaXMge3pvJ2V9IGFjY29ucGFuaWVk IGJ5IGFuIGV4cGxhbmF0aW9uLgoKXgoKO0V4YW1wbGU6IFBlb3BsZSBnYXRoZXJlZCwgY29va2Vk IGFuZCBhdGUuCgo7OiBsbyBwcmVudSBjdSBqbWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2FeCgoK CldoaWxlIHRoZSBwcmVkaWNhdGUge2p1a3BhfSAoY29vaykgY2FuIGJlIGludGVycHJldGVkIGNv bGxlY3RpdmVseSBhcyB3ZWxsIGFzIGRpc3RyaWJ1dGl2ZWx5LCB0aGUgcGx1cmFsIGNvbnN0YW50 IHtsbyBwcmVudX0gKHBlb3BsZSkgZG9lcyBub3Qgc2F5IGV4cGxpY2l0bHkgaWYgaXQgc2F0aXNm aWVzIHtqdWtwYX0gY29sbGVjdGl2ZWx5IG9yIGRpc3RyaWJ1dGl2ZWx5LiBJZiB3ZSB3YW50IHRv IHNheSBleHBsaWNpdGx5IHRoYXQgdGhleSAiY29sbGVjdGl2ZWx5IiBjb29rZWQsIHdlIHVzZSB7 bG9pfSwgd2hpY2ggd2lsbCBiZSBkaXNjdXNzZWQgbGF0ZXIsIGFuZCBzYXkge2xvaSBwcmVudX0u IENvbnRyYXN0aXZlbHksIGlmIHdlIHdhbnQgdG8gc2F5IGV4cGxpY2l0bHkgdGhhdCB0aGV5ICJk aXN0cmlidXRpdmVseSIgY29va2VkLCB3ZSBzYXkge3JvIGxvIHByZW51fSB3aXRoIGFuIG91dGVy IHF1YW50aWZpY2F0aW9uLCBvciB7bHUnYSBsbyBwcmVudX0uIEhvd2V2ZXIsIGEgc3VtdGkgdGhh dCBzYXlzIGV4cGxpY2l0bHkgY29sbGVjdGl2aXR5IG9yIGRpc3RyaWJ1dGl2aXR5IGlzIG5vdCBu ZWNlc3NhcmlseSBhYmxlIHRvIGJlIHNoYXJlZCB3aXRoIG90aGVyIHByZWRpY2F0ZSBsaWtlIHtq bWFqaX0gb3Ige2NpdGthfS4KCgoKO19fbGVfXyAoTEUpOiB7bGUgYnJvZGF9IHJlZmVycyBfX3Nw ZWNpZmljYWxseV9fIHRvIGEgcmVmZXJlbnQgb2Yge2xvIGJyb2RhfSwgYW5kIF9fZXhwbGljaXRs eSBleHByZXNzIHRoYXQgdGhlIHNwZWFrZXIgaGFzIHRoZSByZWZlcmVudCBpbiBtaW5kX18uIEl0 cyBsb2dpY2FsIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2Yge2xvfS4KCnx8CgpsZSBb W1BBXSBicm9kYSAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBtaSBrZSdhIGRvIHNraWN1IGxvIGth IGNlJ3UgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAoa3UnbykgCgpsZSBQ QSAnJ3N1bXRpJycgKGt1KSB+aHN+fH5oc34gbGUgUEEgbWUgJydzdW10aScnIChtZSd1KSAoa3Up Cgp8fAoKCgo7X19sYV9fIChMQSk6IEl0IGlzIHByZWZpeGVkIHRvIHNlbGJyaSBvciBjbWV2bGEs IGFuZCBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byB3aGF0IGlzIG5hbWVk IHRoZSBzZWxicmkgb3IgY21ldmxhIHN0cmluZy4gSXRzIGxvZ2ljYWwgcHJvcGVydHkgaXMgdGhl IHNhbWUgYXMgdGhhdCBvZiB7bG99LgoKfHwKCmxhIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+ IHpvJ2Ugbm9pIGx1IFtbUEFdIGJyb2RhIGxpJ3UgY21lbmUga2UnYSBtaSAoa3UnbykgCgpsYSBQ QSAnJ3N1bXRpJycgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbHUgUEEgc3VtdGkgbGkndSBjbWVu ZSBrZSdhIG1pIChrdSdvKSAKCnx8CgoKCjtfX2xvaV9fIChMRSksIF9fbGVpX18gKExFKSwgX19s YWlfXyAoTEEpOiB7bG9pL2xlaS9sYWkgYnJvZGF9IHJlZmVycyB0byBhIHJlZmVyZW50IG9mIHts by9sZS9sYSBicm9kYX0sIGFuZCBfX2V4cGxpY2l0bHkgZXhwcmVzcyB0aGF0IHRoZSByZWZlcmVu dCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5X18uCgp8fAoKbG9pIFtbUEFdIGJy b2RhIH5oc358fmhzfiBsbyBndW5tYSBiZSBsbyBbW1BBXSBicm9kYQoKbGVpIFtbUEFdIGJyb2Rh IH5oc358fmhzfiBsbyBndW5tYSBiZSBsZSBbW1BBXSBicm9kYQoKbGFpIFtbUEFdIGJyb2RhIH5o c358fmhzfiBsbyBndW5tYSBiZSBsYSBbW1BBXSBicm9kYQoKbG9pIFBBICcnc3VtdGknJyB+aHN+ fH5oc34gbG8gZ3VubWEgYmUgbG8gUEEgJydzdW10aScnCgpsZWkgUEEgJydzdW10aScnIH5oc358 fmhzfiBsbyBndW5tYSBiZSBsZSBQQSAnJ3N1bXRpJycKCmxhaSBQQSAnJ3N1bXRpJycgfmhzfnx+ aHN+IGxvIGd1bm1hIGJlIGxhIFBBICcnc3VtdGknJwoKfHwKCkJhY2F1c2Uge2xvaS9sZWkvbGFp fSBpcyB0aHVzIGRlZmluZWQgYnkgYW5vdGhlciBwbHVyYWwgY29uc3RhbnQge2xvIGd1bm1hIGJl IGxvL2xlL2xhfSwgaXQgZG9lcyBub3QgcmVmZXIgZGlyZWN0bHkgdG8gcmVmZXJlbnQgb2Yge2xv IGJyb2RhfSBvciB7bG8gUEEgJydzdW10aScnfSwgYnV0IHJlZmVyZW50IG9mIHtsbyBndW5tYX0u IFRoZXJlZm9yZSwgZXZlbiBpZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9IGlzIG5v dCBhbiBpbmRpdmlkdWFsLCB7bG9pIGJyb2RhfSBvciB7bG9pIFBBICcnc3VtdGknJ30gY2FuIGJl IGFuIGluZGl2aWR1YWwge2xvIGd1bm1hfSB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbjoK Cl5ybydvaSBkYSBwb2kga2UnYSBtZSBsbyBndW5tYSBiZSBsby9sZS9sYSBbW1BBXSBicm9kYSB6 byd1IGxvIGd1bm1hIGJlIGxvL2xlL2xhIFtbUEFdIGJyb2RhIGN1IG1lIGRhfnBwfgoKfi9wcH5y bydvaSBkYSBwb2kga2UnYSBtZSBsbyBndW5tYSBiZSBsby9sZS9sYSBQQSAnJ3N1bXRpJycgem8n dSBsbyBndW5tYSBiZSBsby9sZS9sYSBQQSAnJ3N1bXRpJycgY3UgbWUgZGFeCgoKCjtfX2xvJ2lf XyAoTEUpLCBfX2xlJ2lfXyAoTEUpLCBfX2xhJ2lfXyAoTEEpOiB7bG8naS9sZSdpL2xhJ2kgYnJv ZGF9IHJlZmVycyB0byBhIHNldCBvciBzZXRzIG9mIGluZGl2aWR1YWwocykgdGhhdCBjb25zdGl0 dXRlKHMpIGEgcGx1cmFsIGNvbnN0YW50IHtsby9sZS9sYSBicm9kYX0uIEJlY2F1c2Uge2xvJ2kv bGUnaS9sYSdpfSBmb3JtcyBhIHNldCBvciBzZXRzLCBpdCBpcyBkZWZpbmVkIG9ubHkgd2hlbiBp dHMvdGhlaXIgbWVtYmVyKHMpIHtsby9sZS9sYSBicm9kYX0gaXMvYXJlIGFuIGluZGl2aWR1YWwg b3IgaW5kaXZpZHVhbHMuIEEgc2V0IGl0c2VsZiBpcyBhbHdheXMgYW4gaW5kaXZpZHVhbCwgYW5k IHNldHMgYXJlIGFsd2F5cyBpbmRpdmlkdWFsczogdGhlcmUgaXMgbm8gc2V0IHRoYXQgaXMgbm90 IGFuIGluZGl2aWR1YWwuCgp8fAoKbG8naSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gc2VsY21p IGJlIGxvIFtbUEFdIGJyb2RhCgpsZSdpIFtbUEFdIGJyb2RhIH5oc358fmhzfiBsbyBzZWxjbWkg YmUgbGUgW1tQQV0gYnJvZGEKCmxhJ2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIHNlbGNtaSBi ZSBsYSBbW1BBXSBicm9kYQoKbG8naSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIHNlbGNtaSBi ZSBsbyBQQSAnJ3N1bXRpJycKCmxlJ2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBzZWxjbWkg YmUgbGUgUEEgJydzdW10aScnCgpsYSdpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gc2VsY21p IGJlIGxhIFBBICcnc3VtdGknJwoKfHwKCkJlY2F1c2Uge2xvJ2kvbGUnaS9sYSdpfSBpcyBkZWZp bmVkIGJ5IGFub3RoZXIgcGx1cmFsIGNvbnN0YW50IHtsbyBzZWxjbWkgYmUgbG8vbGUvbGF9LCBp dCBkb2VzIG5vdCByZWZlciBkaXJlY3RseSB0byByZWZlcmVudCBvZiB7bG8gYnJvZGF9IG9yIHts byBQQSAnJ3N1bXRpJyd9LCBidXQgcmVmZXJlbnQgb2Yge2xvIHNlbGNtaX0uCgoKCkFuIGVtcHR5 IHNldCBpcyB7bG8gc2VsY21pIGJlIG5vIGRhfSwgYW5kIGFuIGV4cHJlc3Npb24ge2xvIG5vIGJy b2RhfSBpcyBvZmZpY2lhbGx5IG1lYW5pbmdsZXNzIChzZWUgKCh8I0lubmVyX3F1YW50aWZpY2F0 aW9ufFNlY3Rpb24gMy4xKSkuIFRoaXMgaW1wbGllcyB0aGF0IGFuIGVtcHR5IHNldCBjYW5ub3Qg YmUgZXhwcmVzc2VkIHdpdGgge2xvJ2kvbGUnaS9sYSdpfS4gCgoKCiEhISMgSW5uZXIgcXVhbnRp ZmljYXRpb24KCigoQlBGSyBTZWN0aW9uOiBnYWRyaXxCUEZLIGRlZmluZXMgaW5uZXIgcXVhbnRp ZmljYXRpb24pKSBhcyBmb2xsb3dzOgoKfHwKCmxvIFtbUEFdIGJyb2RhIH5oc358fmhzfiB6bydl IG5vaSBrZSdhIGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQQSBsbyBicm9kYV0KCmxvIFBBICcn c3VtdGknJyB+aHN+fH5oc34gbG8gUEEgbWUgJydzdW10aScnCgp8fAoKVGhhdCBpcyB0byBzYXks IGlubmVyIHF1YW50aWZpZXIgbWVhbnMgbnVtYmVyIG9mIHJlZmVyZW50IGNvdW50ZWQgYnkgdW5p dCB7bG8gYnJvZGF9IG9yIHtsbyBtZSAnJ3N1bXRpJyd9IHRoYXQgaXMgeDMgb2Yge3ppbGthbmN1 fS4gCgpIb3dldmVyLCBpbnN0ZWFkIG9mIHt6aWxrYW5jdX0sIHRoZSBtZWFuaW5nIG9mIHdoaWNo IGlzIHRvbyB2YWd1ZSBmb3IgZGVmaW5pdGlvbiwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20v ZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L3hpMmg2QTE3Q3VzSnxhbiBpZGVhIG9mIHJlZGVmaW5p dGlvbiB1c2luZyB7bWVpfSB3YXMgc3VnZ2VzdGVkXSBhcyBmb2xsb3dzOgoKCgo7QXhpb20gMTog cm8nb2kgZGEgc3UnbyBwYSBtZWkKCjtEZWZpbml0aW9uOnx8CgooRDEpIGtvJ2Egc3UnbyBOIG1l aSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Un b2kgZGUgcG9pIG1lIGtvJ2Egem8ndSBnZSBkYSBzdSdvIE4tMSBtZWkgZ2luYWkgZGUgbWUgZGEK CihEMikga28nYSBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IGtvJ2Egc3UnbyBOIG1l aSBnaSdlIG5haSBzdSdvIE4rMSBtZWkgCgooRDMpIGxvIFBBIGJyb2RhIH5oc358fmhzfiA9Y2En ZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBQQSBtZWkgZ2knZSBicm9kYQoKfHwKCgoKVXNpbmcg dGhlc2UgZGVmaW5pdGlvbnMgYW5kIEF4aW9tIDEsIHRoZSBmb2xsb3dpbmcgdGhlb3JlbSB3aWxs IGJlIHByb3ZlZC4KCl5JZiBhbmQgb25seSBpZiB7a28nYSBwYSBtZWl9LCB7a28nYX0gaXMgYW4g aW5kaXZpZHVhbC5eCgoKCjtQcm9vZjogKEQyKSBpcwoKfHwKCmtvJ2EgTiBtZWkJfD18IGtvJ2Eg c3UnbyBOIG1laSBnaSdlIG5haSBzdSdvIE4rMSBtZWkgCgoJCXw9fCBnZSBrbydhIHN1J28gTiBt ZWkgLS0tLS0oUzEpCgoJCXwgfCBnaSBuYWt1IGtvJ2Egc3UnbyBOKzEgbWVpIC0tLS0tKFMyKQoK fHwKCkFwcGx5aW5nIChEMSkgdG8gKFMyKSwgCgp8fAoKKFMyKQkJfD18IG5ha3Ugc3Unb2kgZGEg cG9pIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSBwb2kgbWUga28nYSB6byd1IAoKCQl8IHwgZ2UgZGEg c3UnbyBOIG1laSAKCgkJfCB8IGdpbmFpIGRlIG1lIGRhCgoJCXw9fCBybydvaSBkYSBwb2kgbWUg a28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8IG5ha3UgZ2UgZGEgc3Un byBOIG1laSAKCgkJfCB8IGdpIG5ha3UgZGUgbWUgZGEKCgkJfD18IHJvJ29pIGRhIHBvaSBtZSBr bydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8IHwgZ2FuYWkgZGEgc3UnbyBO IG1laSAKCgkJfCB8IGdpIGRlIG1lIGRhCgp8fAoKKEQyKSBpcyB0aGVyZWZvcmUKCnx8Cgprbydh IE4gbWVpCXw9fCBnZSAoUzEpIGdpIChTMikgCgoJCXw9fCBnZSBrbydhIHN1J28gTiBtZWkKCgkJ fCB8IGdpIHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8n dQoKCQl8IHwgZ2FuYWkgZGEgc3UnbyBOIG1laSAKCgkJfCB8IGdpIGRlIG1lIGRhCgp8fAoKV2hl biBOPTEsCgp8fAoKa28nYSBwYSBtZWkJfD18IGdlIGtvJ2Egc3UnbyBwYSBtZWkKCgkJfCB8IGdp IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8 IHwgZ2FuYWkgZGEgc3UnbyBwYSBtZWkgCgoJCXwgfCBnaSBkZSBtZSBkYSAKCnx8CgpCZWNhdXNl IG9mIEF4aW9tIDEsIGl0IGltcGxpZXMKCnx8CgprbydhIHBhIG1laQl8PXwgcm8nb2kgZGEgcG9p IG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1IGRlIG1lIGRhCgp8fAoKVGhl IHJpZ2h0IHNpZGUgaW1wbGllcyB7cm8nb2kgZGEgcG9pIGtlJ2EgbWUga28nYSB6byd1IGtvJ2Eg bWUgZGF9LCB3aGljaCBpcyB0aGUgY29uZGl0aW9uIGZvciAie2tvJ2F9IGlzIGFuIGluZGl2aWR1 YWwiLiBJdHMgY29udmVyc2UgaXMgYWxzbyB0cnVlLgoKUS5FLkQuCgoKClRoZSBkaWFncmFtIGJl bG93IHNob3dzIGEgcHJvY2VkdXJlIG9mIGNvdW50aW5nIHNvbWV0aGluZyB1cCB0byBmb3VyIHJl cHJlc2VudGVkIHdpdGggYSBkaXJlY3RlZCBncmFwaC4gSW4gdGhpcyBkaWFncmFtLCBsb29wcyBz dWNoIGFzIHtYIG1lIFh9IGFyZSBvbWl0dGVkIGZvciBzaW1wbGljaXR5LCB0aG91Z2ggdGhleSBl eGlzdC4gQ291bnRpbmcgdXAgY29ycmVzcG9uZHMgdG8gc2VsZWN0aW5nIGEgc3ViZ3JhcGggb2Yg YSBkaXJlY3RlZCBncmFwaCBmb3JtZWQgd2l0aCB7bWV9OiB0aGUgc3ViZ3JhcGggdGhhdCBoYXMg YSBmb3JtIG9mIHRyZWUgdGhhdCBpbmNsdWRlcyBhbGwgbGVhdmVzIChjb25zdGFudHMgZWFjaCBv ZiB3aGljaCBpcyBhbiBpbmRpdmlkdWFsKSB0byBiZSBjb3VudGVkLCBmb3IgZXhhbXBsZSB0aGUg cGFydCBvZiBtYWdlbnRhIGNvbG9yIGluIHRoZSBkaWFncmFtLgoKCgp7aW1nIGZpbGVJZD0iMTAi IHRodW1iPSJ5IiByZWw9ImJveFtnXSJ9CgoKCiEhISEjIFJlcGVhdGluZyBpbm5lciBxdWFudGlm aWNhdGlvbgoKQmVjYXVzZSB7bG8gUEEgJydzdW10aScnfSBpcyBkZWZpbmVkLCB3ZSBjYW4gcmVw ZWF0IGlubmVyIHF1YW50aWZpY2F0aW9uIHRvIGZvcm0gYW4gYXJndW1lbnQuCgpeCgo7RXhhbXBs ZTogbG8gbXVsbm8ga2FyZHlncmkgY3UgZ3VubWEgbG8gdm8gbG9pIHBhY2kga2FyZGEgfmhzfiAn J0EgZnVsbCBkZWNrIGNvbnNpc3RzIG9mIGZvdXIgZ3JvdXBzIG9mIHRoaXJ0ZWVuIGNhcmRzLicn Cgo7OiBzdSdvIGRhIHpvJ3UgbG9pIHJlIGxvJ2kgcm8gbW9rY2Egbm9pIHNlcGxpIHB5IG5vaSBt b2tjYSBrdSdvIGRhIGN1IHJlbGN1a3RhaSB+aHN+ICcnVHdvIHNldHMgb2YgcG9pbnRzIHRoYXQg YXJlIGVxdWlkaXN0YW50IGZyb20gYSBwb2ludCBQIGlzIGEgZG91YmxlIGNpcmNsZS4nJ14KCgoK ISEhISMgUHJvYmxlbXMgb24gaW5uZXIgcXVhbnRpZmljYXRpb24KCiEhISEhIyBDYW5ub3Qgc2F5 IHplcm8KCgoKQmVjYXVzZSBhbiBhcmd1bWVudCBmb3JtZWQgYnkgZ2FkcmkgaXMgYSBwbHVyYWwg Y29uc3RhbnQsIHtsbyBicm9kYX0gaW1wbGllcyB7c3Unb2kgZGEgem8ndSBkYSBicm9kYX0gYWNj b3JkaW5nIHRvIHRoZSBsb2dpY2FsIGF4aW9tIG9uIHBsdXJhbCBjb25zdGFudCBzaG93biBpbiAo KHwjQV9sb2dpY2FsX2F4aW9tX29uX3BsdXJhbF9jb25zdGFudHxTZWN0aW9uIDIuMi42KSkuIFRo YXQgaXMgdG8gc2F5LCB0aGUgZXhwcmVzc2lvbiB7bG8gbm8gYnJvZGF9IGltcGxpZXMgInRoZXJl IGFyZSB3aGF0IGFyZSBicm9kYSwgd2hpY2ggYXJlIGNvdW50ZWQgMCIsIHdoaWNoIHNlZW1zIG1l YW5pbmdsZXNzLgoKCgpUaGlzIG1lYW5zIHRoYXQgb2ZmaWNpYWwgTG9qYmFuIGNhbm5vdCBleHBy ZXNzIG5lZ2F0aW9uIG9mIGV4aXN0ZW5jZSBvZiBwbHVyYWwgdmFyaWFibGUge25ha3Ugc3Unb2kg ZGF9LCB3aGljaCBpcyBuZXZlcnRoZWxlc3MgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSBpbiB0aGUg Zm9sbG93aW5nIHNpdHVhdGlvbjoKCgoKXiBsbyB4byBwcmVudSBjdSBqbWFqaSBnaSdlIGp1a3Bh IGdpJ2UgY2l0a2Egfmhzfn4tLX4gbm9+cHB+Cgp+L3BwficnIkhvdyBtYW55IHBlb3BsZSBnYXRo ZXJlZCwgY29va2VkIGFuZCBhdGU/IiAiemVyby4iJydeCgoKClRoaXMgcmVzcG9uc2UgaXMgYW4g YWJicmV2aWF0ZWQgZm9ybSBvZiB7bG8gbm8gcHJlbnUgY3Ugam1hamkgZ2knZSBqdWtwYSBnaSdl IGNpdGthfS4KCgoKVGhpcyBwcm9wb3NpdGlvbiBtZWFucyB0aGF0IHtsbyBubyBwcmVudX0gc2F0 aXNmaWVzIHNlbGJyaSB7am1haml9IGNvbGxlY3RpdmVseSBhbmQgKGplKSBub24tZGlzdHJpYnV0 aXZlbHksIHtqdWtwYX0gY29sbGVjdGl2ZWx5IG9yIChqYSkgZGlzdHJpYnV0aXZlbHksIHtjaXRr YX0gbm9uLWNvbGxlY3RpdmVseSBhbmQgKGplKSBkaXN0cmlidXRpdmVseS4gQmVjYXVzZSBpdCBp bmNsdWRlcyBzZWxicmkge2ptYWppfSB0byBiZSBzYXRpc2ZpZWQgbm9uLWRpc3RyaWJ1dGl2ZWx5 LCB0aGUgc3VtdGkgY2Fubm90IGJlIHJlcGxhY2VkIGJ5IG5lZ2F0aW9uIG9mIGV4aXN0ZW5jZSBv ZiBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSB7bmFrdSBzdSdvIGRhfT17bm8gZGF9LiBNb3Jlb3Zl ciwgYmVjYXVzZSBpdCBpbmNsdWRlcyBzZWxicmkge2NpdGthfSB0byBiZSBzYXRpc2ZpZWQgbm9u LWNvbGxlY3RpdmVseSwge2xvfSBvZiB0aGUgc3VtdGkgY2Fubm90IGJlIHJlcGxhY2VkIGJ5IHts b2l9PXtsbyBndW5tYSBiZSBsb30uCgoKCkZvciBtYWtpbmcgc3VjaCBhIHByb3Bvc2l0aW9uIG1l YW5pbmdmdWwsIGl0IGlzIGVzc2VudGlhbCB0byBnaXZlIGFuIGV4cHJlc3Npb24ge2xvIG5vIGJy b2RhfSBhIG1lYW5pbmcgb2YgbmVnYXRpb24gb2YgZXhpc3RlbmNlIG9mIHBsdXJhbCB2YXJpYWJs ZS4KCkZvciB0aGlzIHB1cnBvc2UsIEkgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIGRlZmluaXRpb24g dmFsaWQgaW4gdGhlIGNhc2UgdGhhdCBQQT0wIGZvciB7bG8gUEEgYnJvZGF9LgoKO1Vub2ZmaWNp YWwgZGVmaW5pdGlvbiBvZiB7bG8gbm8gYnJvZGF9Onx8CgpsbyBubyBicm9kYSB+aHN+fH5oc34g PWNhJ2Ugfmhzfnx+aHN+IG5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgYnJvZGEKCnx8CgoKCu+8iElm IGl0IHdlcmUgZGVmaW5lZCBhcyB7bmFrdSBsbyBicm9kYX0sIHRoZSBuZWdhdGlvbiB3b3VsZCBo YXZlIHNwYW5uZWQgdGhlIHdob2xlIHByb3Bvc2l0aW9uLCBhbmQgaXQgd291bGQgbm90IGhhdmUg aW1wbGllZCBxdWFudGlmaWNhdGlvbi4gSSBhYmFuZG9uZWQgdGhlcmVmb3JlIHN1Y2ggYSBkZWZp bml0aW9uLikKCgoKISEhISEjIENhbm5vdCBxdWFudGlmeSBtYXRlcmlhbCBub3VuIG9yIHNvbWV0 aGluZwoKQXhpb20gMSBvZiAoKHwjSW5uZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKSBl eGNsdWRlcyBzdW10aSB0aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVh bHMgZnJvbSBleHByZXNzaW9ucyB7KHN1J28pIE4gbWVpfSBhbmQge2xvIE4gYnJvZGF9LgoKCgpD YW4gd2UgdXNlIHtwaVBBfSBmb3Igc3VtdGkgdGhhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwg bm9yIGluZGl2aWR1YWxzLCB0aGVuPyBOby4KCigoQlBGSyBTZWN0aW9uOiBnYWRyaXxBY3R1YWxs eSwgcGlQQSBpcyBkZWZpbmVkIG9ubHkgZm9yIG91dGVyIHF1YW50aWZpY2F0aW9uLikpCgp8fAoK cGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIHBpUEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycK Cnx8CgpBcyB3ZSBjYW4gc2VlIGluIHRoZSBkZWZpbml0aW9uLCB0aGUgYm9keSBvZiBvdXRlciBx dWFudGlmaWNhdGlvbiBieSB7cGlQQX0gaXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9 LCB3aGljaCBpcyBub3QgYSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZS4gSG93ZXZlciwgeDIgb2Yg e3BpUEEgc2knZX0gaXMge3BhIG1lICcnc3VtdGknJ30sIHRvIHdoaWNoICgoQlBGSyBTZWN0aW9u OiBnYWRyaXx0aGUgZGVmaW50aW9uIG9mIFBBIGJyb2RhKSkgaXMgYXBwbGllZDoKCnx8CgpQQSBi cm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKfHwKCkFzIGEgcmVzdWx0LCB7cGlQQSAn J3N1bXRpJyd9IGlzIGRlZmluZWQgb25seSB3aGVuIHRoZXJlIGlzIGFuIGluZGl2aWR1YWwgdGhh dCBzYXRpc2ZpZXMgeDEgb2Yge21lICcnc3VtdGknJ30uIFRoYXQgaXMgdG8gc2F5LCB3aGF0IGlz IG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgaXMgZXhjbHVkZWQgYWxzbyBm cm9tIGFuIGV4cHJlc3Npb24gb2Ygb3V0ZXIgcXVhbnRpZmljYXRpb24gd2l0aCB7cGlQQX0uCgoK CldoYXQgd291bGQgYmUgaWYge3BpUEF9IHdlcmUgZGVmaW5lZCBhbHNvIGZvciBpbm5lciBxdWFu dGlmaWNhdGlvbj8KCkluIHRoYXQgY2FzZSwgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uIHdvdWxk IGJlIGRlc2lyYWJsZSB0byBjb25mb3JtIHRoZSBkZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBvdXRl ciBxdWFudGlmaWNhdGlvbjoKCjsgVW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBp bm5lciBxdWFudGlmaWNhdGlvbjp8fAoKbG8gcGlQQSBicm9kYSB+aHN+fH5oc34gPWNhJ2Ugfmhz fnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgcGlQQSBzaSdlIGJlIGxvIHBhIGJyb2RhCgp8fAoKVGhpcyBk ZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBpbm5lciBxdWFudGlmaWNhdGlvbiBzdGlsbCBleGNsdWRl cyB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgdW5sZXNzIHts byBwYSBicm9kYX0gaXMgZGVmaW5lZCBpbiBhbm90aGVyIHdheSBzbyB0aGF0IGl0IGNhbiBiZSB3 aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKCldoeSBkb24n dCB3ZSB1c2Uge1BBIHNpJ2V9IHRvIGV4cHJlc3MgcXVhbnRpZmljYXRpb24gb2Ygd2hhdCBpcyBu ZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzPyAKCkl0IGlzIHBvc3NpYmxlLCBi dXQgKChCUEZLIFNlY3Rpb246IE51bWVyaWMgc2VsYnJpfEJQRksncyBjdXJyZW50IGRlZmluaXRp b24gb2Yge3NpJ2V9KSkgZGVwZW5kcyBvbiB7cGFnYnV9OgoKfHwKCngxIG51bWJlciBzaSdlIHgy IH5oc358fmhzfiB4MSBwYWdidSB4MiBnaSdlIGtsYW5pIGxpIG51bWJlciBsbyBzZSBncmFkdSBi ZSB4MgoKfHwKCklmIHdlIGludGVycHJldCB7cGFnYnV9IHNvIHRoYXQgeDEgaXMgbm90IGxhcmdl ciB0aGFuIHgyIChhbmQgdGhpcyBpcyBvcmRpbmFyeSBpbnRlcnByZXRhdGlvbiksIFtodHRwczov L2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy9uVWJaaXdtQjJNMEp8 e3NpJ2V9IGlzIHZlcnkgaW5jb252ZW5pZW50IGJlY2F1c2UgdGhlIHVuaXQgc2hvdWxkIGJlIGNo YW5nZWQgZXZlcnkgdGltZSBjb3VudGluZyB1cC5dIElmIHtzaSdlfSB3ZXJlIGRlZmluZWQgc28g dGhhdCBQQSBvZiB7UEEgc2knZX0gY291bGQgYmUgbGFyZ2VyIHRoYW4gMSwge3NpJ2V9IHdvdWxk IGhhdmUgYmVlbiBwcmFnbWF0aWMgZm9yIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhl ciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKQmVzaWRlcyB0aG9zZSBjb25zaWRl cmF0aW9ucywgaWYgd2UgYWJhbmRvbiBBeGlvbSAxIG9mICgofCNJbm5lcl9xdWFudGlmaWNhdGlv bnxTZWN0aW9uIDMuMSkpLCBEZWZpbml0aW9ucyAoRDEpIChEMikgKEQzKSBjYW4gYmUgYXBwbGll ZCB0byB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgpJbiB0 aGlzIGNhc2UsIGEgc3BlYWtlciBzaG91bGQgc2VsZWN0IHNvbWUgcGx1cmFsIGNvbnN0YW50cyB7 a28nYSwga28nZSwgLi4ufSwgYW5kIGRlY2lkZSB0aGF0IHtbW2tvJ2Eva28nZS8uLi5dIHN1J28g cGEgbWVpfTsgdGhlIHNlbGVjdGlvbiBtdXN0IGJlIGRvbmUgYXR0ZW50aXZlbHkgc28gdGhhdCBy ZWZlcmVudHMgb2YgcGx1cmFsIGNvbnN0YW50cyB0aGF0IGFyZSB7cGEgbWVpfSBkbyBub3Qgb3Zl cmxhcCB3aXRoIGVhY2ggb3RoZXIuCgpUaG9zZSBwcmVwYXJhdGlvbnMgb2Yge2tvJ2EsIGtvJ2Us IC4uLn0gYW5kIChEMikgaW1wbHkgb25seQoKfHwKCmdhbmFpIFtba28nYS9rbydlLy4uLl0gcGEg bWVpIAoKZ2kgcm8nb2kgZGUgcG9pIG1lIFtba28nYS9rbydlLy4uLl0gem8ndSBkZSBtZSBbW2tv J2Eva28nZS8uLi5dCgp8fAoKVW5kZXIgdGhlc2UgY29uZGl0aW9ucywgdGhlcmUgaXMgbm8gbmVl ZCB0aGF0IHdoYXQgaXMgeDEgb2Yge3BhIG1laX0gaXMgYW4gaW5kaXZpZHVhbC4KCgoKV2hlbiB3 ZSB1c2UgRGVmaW5pdGlvbnMgKEQxKSAoRDIpIChEMykgd2l0aG91dCB1c2luZyBBeGlvbSAxIG9m ICgofCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9uIDMuMSkpLCBhIGNvbmRpdGlvbiB7Z2kn ZSBzdSdvIHBhIG1laX0gbXVzdCBiZSBhZGRlZCB0byB7ZGV9IG9mIChEMSnvvIhXaGVuIEF4aW9t IDEgaXMgdXNlZCwgcmVmZXJlbnRzIGluIHRoZSBkb21haW4gb2YgdmFyaWFibGUge2RlfSBzYXRp c2ZpZXMgdGhpcyBjb25kaXRpb24gYXV0b21hdGljYWxseSkuIAoKO1Vub2ZmaWNpYWwgZGVmaW5p dGlvbnMgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IEF4aW9tIDEgaXMgYWJhbmRvbmVkOnx8Cgoo RDEnKSBrbydhIHN1J28gTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBzdSdvaSBkYSBw b2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydhIGdpJ2Ugc3UnbyBwYSBtZWkgem8n dSBnZSBkYSBzdSdvIE4tMSBtZWkgZ2luYWkgZGUgbWUgZGEKCihEMikga28nYSBOIG1laSB+aHN+ fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IGtvJ2Egc3UnbyBOIG1laSBnaSdlIG5haSBzdSdvIE4rMSBt ZWkgCgooRDMpIGxvIFBBIGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kg a2UnYSBQQSBtZWkgZ2knZSBicm9kYQoKfHwKClVzaW5nIHRoZXNlIGRlZmluaXRpb25zLCBpbm5l ciBxdWFudGlmaWNhdGlvbiBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5k aXZpZHVhbHMgYmVjb21lcyBwb3NzaWJsZS4gTW9yZW92ZXIsICJVbm9mZmljaWFsIGRlZmluaXRp b24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9uIiBkaXNjdXNzZWQgYWJvdmUgYmVj b21lcyBhYmxlIHRvIGJlIGFwcGxpZWQgdG8gd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwg bm9yIGluZGl2aWR1YWxzLgoKCgpUaGUgZGlhZ3JhbSBiZWxvdyBzaG93cyBhIHByb2NlZHVyZSBv ZiBjb3VudGluZyB1cCB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVh bHMgcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVkIGdyYXBoLiBJbiB0aGlzIGRpYWdyYW0sIGxv b3BzIHN1Y2ggYXMge1ggbWUgWH0gYXJlIG9taXR0ZWQgZm9yIHNpbXBsaWNpdHksIHRob3VnaCB0 aGV5IGV4aXN0LiBBbW9uZyBpbmZpbml0ZSBudW1iZXIgb2YgdmVydGljZXMgKHBsdXJhbCBjb25z dGFudHMpLCB0aGUgdmVydGljZXMgdGhhdCBhIHNwZWFrZXIgc2VsZWN0ZWQgYXMge3N1J28gcGEg bWVpfSBhcmUgY29sb3JlZCBwaW5rLiBDb3VudGluZyB1cCBjb3JyZXNwb25kcyB0byBzZWxlY3Rp bmcgYSB0cmVlIHRoYXQgaXMgYSBzdWJncmFwaCBvZiBhIGRpcmVjdGVkIGdyYXBoIGZvcm1lZCB3 aXRoIHttZX0sIGZvciBleGFtcGxlIHRoZSBwYXJ0IG9mIGJsdWUgY29sb3IgaW4gdGhlIGRpYWdy YW0uCgoKCntpbWcgZmlsZUlkPSI5IiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEjIE91 dGVyIHF1YW50aWZpY2F0aW9uCgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSyBkZWZpbmVzIG91 dGVyIHF1YW50aWZpY2F0aW9uKSkgYXMgZm9sbG93czoKCnx8CgpQQSAnJ3N1bXRpJycgfmhzfnx+ aHN+IFBBIGRhIHBvaSBrZSdhIG1lICcnc3VtdGknJwoKUEEgYnJvZGEgfmhzfnx+aHN+IFBBIGRh IHBvaSBicm9kYSAKCnBpUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBwaVBBIHNpJ2UgYmUgcGEg bWUgJydzdW10aScnCgp8fAoKCgpPdXRlciBxdWFudGlmaWNhdGlvbiBleGNlcHQge3BpUEF9IGZv cm1zIHtQQSBkYX0sIHdoaWNoIGlzIG9mZmljaWFsbHkgYSBib3VuZCBzaW5ndWxhciB2YXJpYWJs ZS4gSXQgaW1wbGllcyB0aGF0IHRoZXNlIGFyZ3VtZW50cyBzYXRpc2Z5IGEgcHJlZGljYXRlIF9f ZGlzdHJpYnV0aXZlbHlfXy4gRm9yIGV4YW1wbGUsIGl0IGlzIG1lYW5pbmdsZXNzIHRvIHVzZSB7 Y2kgbG8gcHJlbnV9IGFzIHgxIG9mIHtqbWFqaX0gKGdhdGhlciksIGJlY2F1c2UgaXQgaXMgbm90 IHRoZSBjYXNlIHRoYXQgZWFjaCBvZiB0aHJlZSBwZW9wbGUgc2F0aXNmaWVzIHRoZSBwcmVkaWNh dGUgImdhdGhlciIuCgoKCkhvd2V2ZXIsIGlmIHdlIHVzZSB1bm9mZmljaWFsIHBsdXJhbCBxdWFu dGlmaWVycyB7cm8nb2l9IG9yIHtzdSdvaX0gZm9yIFBBLCBvdXRlciBxdWFudGlmaWNhdGlvbiBj YW4gZm9ybSBib3VuZCBwbHVyYWwgdmFyaWFibGUuIEZvciBleGFtcGxlLAoKXnN1J29pIHByZW51 IGN1IGptYWppIH5oc34gdGhlcmUgYXJlIHBlb3BsZSB3aG8gZ2F0aGVyLl4KClRoaXMgcHJvcG9z aXRpb24gaXMgaW1wbGllZCBieSBhIHByb3Bvc2l0aW9uIGluY2x1ZGluZyBwbHVyYWwgY29uc3Rh bnQKCl5sbyBwcmVudSBjdSBqbWFqaSB+aHN+IFBlb3BsZSBnYXRoZXIuXgoKd2l0aCB0aGUgbG9n aWNhbCBheGlvbSBpbiAoKHwjQV9sb2dpY2FsX2F4aW9tX29uX3BsdXJhbF9jb25zdGFudHxTZWN0 aW9uIDIuMi42KSkuCgoKCntQQSBsbyBicm9kYX0gZGlmZmVycyBmcm9tIHtQQSBicm9kYX0gaW4g ZG9tYWluIG9mIHJlZmVyZW50cyBvZiBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSB0byBiZSBjb3Vu dGVkLiBUaGUgZGVmaW5pdGlvbnMgb2Ygb3V0ZXIgcXVhbnRpZmljYXRpb24gYXJlIGFwcGxpZWQg dG8gdGhlbSBhcyBmb2xsb3dzOgoKfHwKClBBIGxvIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kg a2UnYSBtZSBsbyBicm9kYSB+aHN+fH5oc34gVGhlIGRvbWFpbiBvZiBib3VuZCBzaW5ndWxhciB2 YWlhYmxlIGlzIGEgcmVmZXJlbnQgb2YgcGx1cmFsIGNvbnN0YW50IHtsbyBicm9kYX0gaW4gdGhl IHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQgdG8gYmUgUEEKClBBIGJyb2RhIH5o c358fmhzfiBQQSBkYSBwb2kga2UnYSBicm9kYSB+aHN+fH5oc34gVGhlIGRvbWFpbiBvZiBib3Vu ZCBzaW5ndWxhciB2YXJpYWJsZSBpcyBhbGwgdGhhdCBhcmUge2Jyb2RhfSBpbiB0aGUgdW5pdmVy c2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0byBiZSBQQQoKfHwKCgoKXgoKO0V4YW1wbGUg MTogcm8gam1pdmUgYmEgbW9yc2kgfmhzfiAnJ0FsbCBsaXZpbmcgdGhpbmdzIHdpbGwgZGllJycK CjtFeGFtcGxlIDI6IHJvIGxvIHByZW51IHRpIGtsYW1hIH5oc34gJydBbGwgdGhlIHBlb3BsZSBj b21lIGhlcmUnJ14KCkV4YW1wbGUgMSBtZW50aW9ucyBhbGwge2ptaXZlfSBpbiB0aGUgdW5pdmVy c2Ugb2YgZGlzY291cnNlLiBJbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlIG9mIEV4YW1wbGUg MiwgaXQgaXMgcG9zc2libGUgdG8gaW50ZXJwcmV0IHRoYXQgdGhlcmUgYXJlIHtwcmVudX0gb3Ro ZXIgdGhhbiB0aGUgcmVmZXJlbnQgb2YgdGhlIHBsdXJhbCBjb25zdGFudCB7bG8gcHJlbnV9LgoK CgpUaGUgb3V0ZXIgcXVhbnRpZmljYXRpb24gYnkge3BpUEF9IGZvcm1zIHBsdXJhbCBjb25zdGFu dCB7bG8gcGlQQSBzaSdlfS4gSG93ZXZlciwgeDIgb2Yge3BpUEEgc2knZX0gaXMgYm91bmQgc2lu Z3VsYXIgdmFyaWFibGUge3BhIG1lICcnc3VtdGknJ30uIHtwaX0gaW4gdGhpcyBkZWZpbml0aW9u IG1lYW5zICJub3QgbGFyZ2VyIHRoYW4gMSI7IHByYWN0aWNhbGx5LCB7ZmkndX0gb3Igc29tZXRo aW5nIGNhbiBiZSB1c2VkIGluc3RlYWQgb2Yge3BpfQoKCgohISEhIyBDb21iaW5hdGlvbiBvZiBv dXRlciBhbmQgaW5uZXIgcXVhbnRpZmljYXRpb25zCgpUaGUgZGVmaW5pdGlvbnMgb2YgaW5uZXIg YW5kIG91dGVyIHF1YW50aWZpY2F0aW9uIGltcGx5IHRoZSBmb2xsb3dpbmcgaW50ZXJwcmV0YXRp b25zOgoKfHwKCk0gbG8gW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2ggc2F0aXNmaWVzIGEg cHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0KCk0g bG9pIFtbTl0gYnJvZGEgfmhzfnx+aHN+IE0gKHdoaWNoIHNhdGlzZmllcyBhIHByZWRpY2F0ZSBk aXN0cmlidXRpdmVseSkgb2Yge2xvIGd1bm1hfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0g W1t0aGF0IGFyZSBOXQoKTSBsbydpIFtbTl0gYnJvZGEgfmhzfnx+aHN+IE0gKHdoaWNoIHNhdGlz ZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRpdmVseSkgb2Yge2xvIHNlbGNtaX0gdGhhdCBjb25z aXN0cyBvZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0KCnBpIE0gbG8gW1tOXSBicm9kYSB+aHN+ fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8gYnJvZGF9 IFtbdGhhdCBhcmUgTl0KCnBpIE0gbG9pIFtbTl0gYnJvZGEgfmhzfnx+aHN+IFF1YW50aXR5IHtw aSBNIHNpJ2V9IG9mIGEgcGFydCBvZiBvbmUgb2Yge2xvIGd1bm1hfSB0aGF0IGNvbnNpc3RzIG9m IHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsbydpIFtbTl0gYnJvZGEgfmhzfnx+aHN+ IFF1YW50aXR5IHtwaSBNIHNpJ2V9IG9mIGEgcGFydCAoc3Vic2V0KSBvZiBvbmUgb2Yge2xvIHNl bGNtaX0gdGhhdCBjb25zaXN0cyBvZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0KCnx8CgoKCkFt b25nIHRoZW0sIHtNIGxvIFtbTl0gYnJvZGF9IGFuZCB7cGkgTSBsb2kgW1tOXSBicm9kYX0gY2Fu IGV4cHJlc3Mgc29tZSBvZiBwbHVyYWwgbnVtYmVyIG9mIHRoaW5ncy4KCl4KCjtFeGFtcGxlIDE6 IHJlIGxvIFtbY2ldIG1sYXR1IG1pIHZpc2thIH5oc34gJydUd28gW1tvZiB0aHJlZV0gY2F0cyBz ZWUgbWUuJycKCjtFeGFtcGxlIDI6IHJlIGZpJ3UgY2kgbG9pIFtbdmVpIGNpIHBpJ2kgbnkgKHZl J28pXSBtbGF0dSBtaSB2aXNrYSB+aHN+ICcnVHdvIHRoaXJkIG9mIFtbM25dIGNhdHMgc2VlIG1l LicnXgoKCgp7cmUgbG8gW1tjaV0gbWxhdHV9IG9mIEV4YW1wbGUgMSByZWZlcnMgdG8gdHdvIGNh dHMgYW1vbmcgW1t0aHJlZV0gY2F0cyB0aGF0IGFyZSByZWZlcmVudCBvZiB7bG8gW1tjaV0gbWxh dHV9LgoKSWYgdGhlIGlubmVyIHF1YW50aWZpZXIge2NpfSBpcyBub3Qgc2FpZCwgaXQgaXMgdW5j bGVhciBob3cgbWFueSBjYXRzIGFyZSByZWZlcnJlZCB0byBieSB7bG8gbWxhdHV9OyBpbiBhbnkg Y2FzZSB7cmUgbG8gbWxhdHV9IHJlZmVycyB0byB0d28gb2YgdGhlbS4KCgoKSW4gRXhhbXBsZSAy LCB0aGUgYXJndW1lbnQgaXMgZm9ybWVkIGJ5IHtsb2l9LCBhbmQgdGhlIHJlZmVyZW50IGlzIGFj dHVhbGx5IHtsbyBndW5tYX0uIEV4cGFuZGluZyBFeGFtcGxlIDIgYWNjb3JkaW5nIHRvIHRoZSBk ZWZpbml0aW9ucyBvZiB7bG9pfSBhbmQge3BpUEEgJydzdW10aScnfSwKCl4KCjtFeGFtcGxlIDIt MTogbG8gcmUgZmkndSBjaSBzaSdlIGJlIHBhIG1lIGxvIGd1bm1hIGJlIGxvIFtbdmVpIGNpIHBp J2kgbnkgKHZlJ28pXSBtbGF0dSBtaSB2aXNrYV4KClRoYXQgaXMgdG8gc2F5LCB7cmUgZmkndSBj aSBsb2kuLi59IHJlZmVycyB0byB0d28gdGhpcmQgb2YgYW4gaW5kaXZpZHVhbCB7cGEgbWUgbG8g Z3VubWEuLi59LiBUaGlzIHtsbyBndW5tYX0gY29uc2lzdHMgb2Yge3ZlaSBjaSBwaSdpIG55ICh2 ZSdvKX0gY2F0cy4gCgpJZiB0aGUgaW5uZXIgcXVhbnRpZmllciBpcyBub3Qgc2FpZCwgaXQgaXMg dW5jbGVhciBob3cgbWFueSBjYXRzIGNvbnN0aXR1dGUge2xvIGd1bm1hfSB0aGF0IGlzIHtsb2kg bWxhdHV9OyBpbiBhbnkgY2FzZSB7cmUgZmkndSBjaSBsb2kgbWxhdHV9IHJlZmVycyB0byB0d28g dGhpcmQgb2Yge2xvIGd1bm1hfS4gSG93ZXZlciwgCgpecmUgZmkndSBjaSBsb2kgbWxhdHUgbWkg dmlza2FeCgppcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiB7bG9pIG1sYXR1fSBjb25zaXN0cyBvZiAz biBjYXRzLCBiZWNhdXNlIGl0IGlzIG5vdCBvcmRpbmFyeSB0byBpbnRlcnByZXQgdGhhdCBhIGZy YWdtZW50IG9mIGEgY2F0IHNhdGlzZmllcyB0aGUgcHJlZGljYXRlIHt2aXNrYX0uCgpBY2NvcmRp bmcgdG8gQlBGSydzIGRlZmluaXRpb24sIHtsb2l9IGNhbm5vdCBmb3JtIGEgcGx1cmFsIGNvbnN0 YW50IHRoYXQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIG5vbi1jb2xsZWN0aXZlbHkuIElmIHlvdSB3 YW50IHRvIG1lYW4gImNhdHMgc2VlIG1lIG5vbi1jb2xsZWN0aXZlbHkiLCBhdm9pZCB7bG9pfSwg b3IgdXNlIHtsdSdhfSwgd2hpY2ggd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2Jl dHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSk6CgpebHUnYSByZSBm aSd1IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4KCgoKISEhIyBSZWxhdGlvbiBiZXR3ZWVuIGx1J2Es IGx1J28sIGx1J2kgYW5kIGdhZHJpCgooKEJQRksgU2VjdGlvbjogSW5kaXJlY3QgUmVmZXJlcnN8 QlBGSyBkZWZpbmVzKSkge2x1J2F9LCB7bHUnb30sIHtsdSdpfSBvZiBMQWhFIGFzIGZvbGxvd3M6 Cgp8fAoKbHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIG1lICcnc3VtdGknJyB+aHN+fH5oc34g bG8gY21pbWEgYmUgJydzdW10aScnIFtbbm9pIHNlbGNtaV0KCmx1J28gJydzdW10aScnIH5oc358 fmhzfiBsb2kgbWUgJydzdW10aScnCgpsdSdpICcnc3VtdGknJyB+aHN+fH5oc34gbG8naSBtZSAn J3N1bXRpJycKCnx8CgpIb3dldmVyLCBndWVzc2luZyBmcm9tIHRoZSBFbmdsaXNoIGRlZmluaXRp b25zIG9uIHRoZSBzYW1lIHBhZ2UsIHRoZSBkZWZpbml0aW9uIG9mIHtsdSdhfSBpcyB1bnNhdGlz ZmFjdG9yeSwgYW5kIHRoYXQgb2Yge2x1J299IGhhcyBzb21lIHByb2JsZW0uCgoKCntsdSdhfSBl eHRyYWN0cyB4MiBvZiB7c2VsY21pfSBmcm9tIHN1bXRpIHRoYXQgaXMge2xvIHNlbGNtaX0sIGFu ZCB4MiBvZiB7Z3VubWF9IGZyb20gc3VtdGkgdGhhdCBpcyB7bG8gZ3VubWF9LiBNb3Jlb3Zlciwg e2x1J2F9IG1ha2VzIGV4cGxpY2l0IHRoYXQgdGhlIHN1bXRpIHNhdGlzZmllcyBhIHByZWRpY2F0 ZSBkaXN0cmlidXRpdmVseSBhbmQgbm9uLWNvbGxlY3RpdmVseS4gT24gdGhlIG90aGVyIGhhbmQs IGFjY29yZGluZyB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG99LCB7bG8gbWUgJydzdW10aScnfSBk b2VzIG5vdCBpbXBseSAiZGlzdHJpYnV0aXZlbHkgYW5kIG5vbi1jb2xsZWN0aXZlbHkiLgoKCgp7 bHUnb30gbWFrZXMgZXhwbGljaXQgdGhhdCB0aGUgc3VtdGkgc2F0aXNmaWVzIGEgcHJlZGljYXRl IG5vbi1kaXN0cmlidXRpdmVseSBhbmQgY29sbGVjdGl2ZWx5LiBPbiB0aGUgb3RoZXIgaGFuZCwg YWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIHtsb2l9LCB7bG9pIG1lICcnc3VtdGknJ30g c2F0aXNmaWVzIGEgcHJlZGljYXRlIGNvbGxlY3RpdmVseSwgYnV0IHN0aWxsIHVuY2xlYXIgaWYg aXQgZG9lcyBub24tZGlzdHJpYnV0aXZlbHkuIEZvciBjb25zaXN0ZW5jeSwgaXQgd291bGQgYmUg YmV0dGVyIHRvIGFkZCAie2xvaSBicm9kYX0gaW1wbGllcyB0aGF0IHJlZmVyZW50IG9mIHgxIG9m IGJyb2RhIGNvbGxlY3RpdmVseSBhbmQgbm9uLWRpc3RyaWJ1dGl2ZWx5IHNhdGlzZmllcyBhIHBy ZWRpY2F0ZSIgdG8gdGhlIGRlZmluaXRpb24gb2Yge2xvaX0uCgoKCkFzIGEgY29uY2x1c2lvbiBv ZiB0aGlzIHNlY3Rpb24sIEkgc3VnZ2VzdCB0byByZS1kZWZpbmUge2x1J2F9IGFzIGZvbGxvd3M6 Cgo7IFVub2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7bHUnYX06fHwKCmx1J2EgJydzdW10aScnIH5o c358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycgbm9pIHNlbGNtaSBrdSBvbmFpIGxvIHNlIGd1 bm1hIGJlICcnc3VtdGknJyBub2kgZ3VubWEga3Ugb25haSBsbyBtZSAnJ3N1bXRpJycga3UgfnBw fgoKfi9wcH4gfmhzfiB2dSdvIG5vaSBzdSdvIGRhIHpvJ3UgZGEgbWUga2UnYSBnaSdlIG5vJ2EK Cnx8CgpJbiB7bm9pfSBjbGF1c2UgYWZ0ZXIge3Z1J299LCBpdCBpcyBtYWRlIGV4cGxpY2l0IHRo YXQgdGhlIHJlZmVyZW50IG9mIHtsdSdhICcnc3VtdGknJ30gZGlzdHJpYnV0aXZlbHkgc2F0aXNm aWVzIHRoZSBzZW50ZW5jZSB0aGF0IGluY2x1ZGVzIHRoaXMgc3VtdGkuCgoKCiEhIyBOb3RlcwoK VGhpcyBzZWN0aW9uIGNvbnNpc3RzIG9mIG5vdGVzIG9mIHRoZSBhdXRob3IgZ3Vza2FudCwgYW5k IGl0IGlzIG5vdCBhdCBhbGwgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIGdhZHJpLgoKCgoh ISEjIEFib3V0IG9udG9sb2d5CgpeKChCUEZLIFNlY3Rpb246IGdhZHJpfCcnUG9zaXRpdmUgaW1w YWN0OiBTb21lIHVzYWdlcyB0aGF0IG1ha2UgbGl0dGxlIHNlbnNlIHdpdGgge2xvfT17c3Unb30g YmVjb21lIHZhbGlkYXRlZC4nJykpIGFjY29yZGluZyB0byBCUEZLLl4KCgoKe2xvfT17c3Unb30g d2FzIGFiYW5kb25lZCwgYnV0IGJlY2F1c2Ugb2YgdGhlIGZhY3QgdGhhdCB7bG8gYnJvZGF9IGlz IGEgcGx1cmFsIGNvbnN0YW50LCBhbmQgYmVjYXVzZSBvZiBhIGxvZ2ljYWwgYXhpb20gb2YgcGx1 cmFsIGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50fFNl Y3Rpb24gMi4yLjYpKSwge2xvIGJyb2RhIGN1IGJyb2RlfSBpbXBsaWNpdGx5IGltcGxpZXMge3N1 J29pIGRhIGJyb2RlfS4KCgoKISEhIyBjbGF4dSB4MgoKXigoQlBGSyBTZWN0aW9uOiBnYWRyaXxs ZSBjbWFuYSBfX2xvX18gY2lkamEgYmEgY2xheHUpKX5wcH4KCn4vcHB+ICAnJ0luIHRoZSBtb3Vu dGFpbnMgdGhlcmUgaXMgbm8gZm9vZC4nJ35wcH4KCn4vcHB+KChsYXBvaSBwZWx4dSBrdSdvIHRy YWp5bm9ibGkpKV4KCgoKRXhwYW5kaW5nIHtsbyBjaWRqYX0sIAoKXmxlIGNtYW5hIHpvJ2Ugbm9p IGtlJ2EgY2lkamEga3UnbyBiYSBjbGF4dV4KCkFjY29yZGluZyB0byAoKEJQRksgU2VjdGlvbjog U3Vib3JkaW5hdG9yc3x0aGUgZGVmaW5pdGlvbiBvZiB7bm9pfSkpLCAKCl5sZSBjbWFuYSB6bydl IHRvIHJpIHhpIHJhdSBjaWRqYSB0b2kgYmEgY2xheHVeCgpUaGUgcGFydCBiZXR3ZWVuIHt0b30g YW5kIHt0b2l9IGlzIGEgcGFyZW50aGV0aWNhbCBleHByZXNzaW9uLiBUaGUgbWFpbiBwcm9wb3Np dGlvbiBpcyB0aHVzCgpebGUgY21hbmEgem8nZSBiYSBjbGF4dV4KCndoZXJlIHt6bydlfSBpcyBh IHBsdXJhbCBjb25zdGFudC4gQWNjb3JkaW5nIHRvIHRoZSBsb2dpY2FsIGF4aW9tIG9mIHBsdXJh bCBjb25zdGFudCBpbiAoKHwjQV9sb2dpY2FsX2F4aW9tX29uX3BsdXJhbF9jb25zdGFudHxTZWN0 aW9uIDIuMi42KSksIFRoaXMgcHJvcG9zaXRpb24gaW1wbGllcyAKCl5zdSdvaSBkYSB6byd1IGxl IGNtYW5hIGRhIGJhIGNsYXh1XgoKd2hpY2ggbWVhbnMgdGhhdCB0aGVyZSBpcyBhIHJlZmVyZW50 IG9mICJ3aGF0IGlzIGxhY2tlZCBieSB0aGUgbW91bnRhaW4iIGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UuCgpUaGUgc3RyYW5nZW5lc3MgY29tZXMgZnJvbSB0aGUgZmFjdCB0aGF0IHgyIG9m IHtjbGF4dX0gX19hcHBhcmVudGx5X18gbWVhbnMgbm9uLWV4aXN0ZW5jZS4gV2UgY2FuIGludGVy cHJldCBpdCBjb25zaXN0ZW50bHkgdGhhdCB7Y2xheHV9IG1lYW5zIG9ubHkgdGhhdCB0aGUgcmVm ZXJlbnQgb2YgeDIgaXMgbm90IHBsYWNlZCBhdCB0aGUgcmVmZXJlbnQgb2YgeDEsIGFuZCBpdCBz YXlzIG5vdGhpbmcgYWJvdXQgZXhpc3RlbmN5IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Uu IAoKCgohISEjIHpvJ2UgaXMgYSBwbHVyYWwgY29uc3RhbnQKCkFzc3VtaW5nIHRoYXQge3pvJ2V9 IGNhbiBiZSBhbnkgb2YgZnJlZSB2YXJpYWJsZSwgYm91bmQgcGx1cmFsIHZhcmlhYmxlIG9yIHBs dXJhbCBjb25zdGFudCwgdGhlIGxhbmd1YWdlIHdvdWxkIGJlIG1vcmUgcmVhc29uYWJsZSBmcm9t IGEgbG9naWNhbCBwb2ludCBvZiB2aWV3LgoKSG93ZXZlciwgdGhpcyBpZGVhIHdhcyBjbGVhcmx5 IGRlbmllZCBpbiBbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL3RvcGljL2xvamJhbi9SQXRF N1lrLWRxdy9kaXNjdXNzaW9ufHRoZSBkaXNjdXNzaW9uXS4gVGhhdCBpcyB0byBzYXksIHt6bydl fSBpcyBhbHdheXMgYSBwbHVyYWwgY29uc3RhbnQgYWNjb3JkaW5nIHRvIHRoZSBvZmZpY2lhbCBp bnRlcnByZXRhdGlvbi4KCkkgd2lsbCBleGFtaW5lIHRoZXNlIGNvbmZsaWN0aW5nIGlkZWFzLCBh bmQgdHJ5IHRvIHNvbHZlIHNvbWUgcHJvYmxlbXMgY2F1c2VkIGJ5IHRoZSBvZmZpY2lhbCBpbnRl cnByZXRhdGlvbiB0aGF0IHt6bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoKISEhISMgSWYg em8nZSBjb3VsZCBiZSBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZQoKSSB3aWxsIGxpc3QgdXAgaGVy ZSBtZXJpdHMgYW5kIGRlbWVyaXRzIG9mIGFzc3VtaW5nIHRoYXQge3pvJ2V9IGluIG5vIGNvbnRl eHQgaXMgYSBmcmVlIHZhcmlhYmxlLCBhbmQgdGhhdCB0aGUgY29udGV4dCBkZXRlcm1pbmVzIHRo ZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGJhc2VkIG9uIHdoaWNoIHt6bydlfSBpcyByZWdhcmRl ZCBhcyBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQsIG9yIGJvdW5kIGJ5IGEg cGx1cmFsIHF1YW50aWZpZXIuCgoKCiEhISEhIyBNZXJpdHMKClVuZGVyIHRoaXMgYXNzdW1wdGlv biwgdGhlcmUgaXMgbm8gbmVlZCB0byBleGNsdWRlIHRoZSBjYXNlIFBBPTAgb2Yge2xvIFBBIGJy b2RhfSwgb3IgZ2l2ZSBpdCBhbiB1bm9mZmljaWFsIGRlZmluaXRpb24gYXMgZGlzY3Vzc2VkIGlu ICgofCNDYW5ub3Rfc2F5X3plcm98U2VjdGlvbiAzLjEuMi4xKSkuIEl0IGlzIGJlY2F1c2UgaWYg e2xvIFBBIGJyb2RhfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgd2UgY2FuIGlu dGVycHJldCBpdCwgd2hlbiBhIGNvbnRleHQgaXMgZ2l2ZW4sIGFzIHN1YnN0aXR1dGVkIGZvciBi eSBhIHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBsdXJhbCBxdWFudGlmaWVyIGxpa2Ug e3N1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT4wOyB3ZSBjYW4gaW50ZXJwcmV0IGl0IGFzIGJv dW5kIGJ5IHtuYWt1IHN1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT0wIGFzIHdlbGwuCgoKClRo aXMgYXNzdW1wdGlvbiBtYWtlcyB0aGUgaW50ZXJwcmV0YXRpb24gY2xvc2VyIHRvIG5hdHVyYWwg bGFuZ3VhZ2VzIG5vdCBvbmx5IGluIHRoZSBjYXNlIFBBPTAgYnV0IGFsc28gaW4gdGhlIGNhc2Ug UEE+MC4gRm9yIGV4YW1wbGUsIAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxpIGNpIGxvIHhh bnRvXgoKVGhlIGxhc3Qge2xvIHhhbnRvfSBpcyBhIHVuaXQgb2YgY291bnRpbmcuIEl0IGlzIG5h dHVyYWwgdG8gaW50ZXJwcmV0IGl0IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIHF1YW50aWZp ZWQgYnkgIjEiIHJhdGhlciB0aGFuIGEgcGx1cmFsIGNvbnN0YW50LCB3aGljaCBzaG91bGQgcmVm ZXIgdG8gc29tZXRoaW5nLiBJZiB3ZSBpbnRlcnByZXQgaXQgYXMgYSBib3VuZCBwbHVyYWwgdmFy aWFibGUsIHdlIHNob3VsZCBjb25zaWRlciB0aGUgcmVsYXRpdmUgb3JkZXIgd2l0aCB0aGUgb3Ro ZXIgYm91bmQgdmFyaWFibGVzIGFuZCB7bmFrdX0uIFdlIGNhbiBoYW5kbGUgdGhlIG9yZGVyIGZy ZWVseSBieSBwdXR0aW5nIHRoZSBhcmd1bWVudHMgaW4gcHJlbmV4LgoKCgpNb3Jlb3ZlciwgdGhp cyBhc3N1bXB0aW9uIGVtYm9kaWVzIHRoZSBwcm9wZXJ0eSBvZiBuYXR1cmFsIGxhbmd1YWdlcyB0 aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRleHQgaXMgZ2Vu ZXJhbGx5IGluZGVmaW5pdGUuIEJ5IGludGVycHJldGluZyB0aGF0IHt6bydlfSBpbiBubyBjb250 ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgd2hpY2ggd2lsbCBiZSBzdWJzdGl0dXRlZCBmb3IgYnkg YSBwbHVyYWwgY29uc3RhbnQgb3IgYm91bmQgYnkgYSBwbHVyYWwgcXVhbnRpZmllciB3aGVuIGEg Y29udGV4dCBpcyBnaXZlbiwgbmF0dXJhbCBpbnRlcnByZXRhdGlvbiBvZiBMb2piYW4gc2VudGVu Y2UgaXMgcG9zc2libGUgd2l0aG91dCBsb3NpbmcgbG9naWNhbCBhc3BlY3RzIGFuZCBzdHJ1Y3R1 cmFsIGJlYXV0eS4KCgoKISEhISEjIERlbWVyaXRzCgpCZWNhdXNlIHt6bydlfSBjYW4gYmUgYSBm cmVlIHZhcmlhYmxlLCBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBvciBhIHBsdXJhbCBjb25zdGFu dCBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGEgc2luZ2xlIGJyaWRpIGRvZXMgbm90IGxldCBs aXN0ZW5lcnMgZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZW0gaXMgdGhlIGN1cnJlbnQge3pvJ2V9LCBv ciB0aGUgdHJ1dGggdmFsdWUgb2YgdGhlIHByb3Bvc2l0aW9uLgoKSG93ZXZlciwgc3VjaCBhbiBh c3BlY3QgdGhhdCB0aGUgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3NpdGlvbiBnZW5lcmFsbHkgZGVw ZW5kcyBvbiB0aGUgY29udGV4dCBpcyBhIGNvbW1vbiBwcm9wZXJ0eSB0byBhbGwgbmF0dXJhbCBs YW5ndWFnZXMuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBldmVuIGlmIHdlIHRha2UgdGhlIG9mZmlj aWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJhbCBjb25zdGFu dCwgbGlzdGVuZXJzIGFyZSBvbmx5IGluZm9ybWVkIGJ5IHt6bydlfSB0aGF0IGEgY2VydGFpbiB1 bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaXMgZ2l2ZW4uIFdpdGggbm8gY29udGV4dCwgdGhlcmUgaXMg bm8gd2F5IHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIFRo ZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRleHQgaXMgaW5kZWZpbml0 ZSBldmVuIHdpdGggdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKCgohISEhIyBQcm9ibGVt cyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCB6bydlIGlzIGEgcGx1cmFsIGNvbnN0YW50IGFuZCB0 aGUgY291bnRlci1tZWFzdXJlcwoKVGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pv J2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50IGNhdXNlcyB0aGUgZm9sbG93aW5nIHByb2JsZW1zLgoK CgohISEhISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1YW50aWZpY2F0aW9uIG9mIG5vbi1leGlz dGVuY2UKClJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24gb2Yge2xvIG5vIGJyb2RhfSBpcyBvZmZp Y2lhbGx5IGV4Y2x1ZGVkIGZyb20gTG9qYmFuLiBUaGF0IGlzIHRvIHNheSwgTG9qYmFuIGNhbm5v dCBvZmZpY2lhbGx5IGRlYWwgd2l0aCB0aGUgZXhwcmVzc2lvbiAidGhlcmUgaXMgbm90IHdoYXQg aXMgc3Vic3RpdHV0ZWQgZm9yIHtkYX0iIGZvciBwbHVyYWwgdmFyaWFibGUgKHtuYWt1IHN1J29p IGRhfSksIHdoaWNoIGlzIG5hdHVyYWxseSBkZWFsdCB3aXRoIGJ5IHBsdXJhbCBxdWFudGlmaWNh dGlvbi4gSW4gb3JkZXIgdG8gZXhwcmVzcyB7bG8gbm8gYnJvZGF9IHdpdGggcmVhc29uYWJsZSBp bnRlcnByZXRhdGlvbiwgd2UgbmVlZCBhbiB1bm9mZmljaWFsIGludGVycHJldGF0aW9uIGxpa2Ug KCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4yLjEpKS4KCgoKISEhISEjIENhbm5vdCBl eHByZXNzIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2hpY2ggZG9lcyBub3Qgc3BlY2lmeSBhIHJl ZmVyZW50CgpCZWNhdXNlIHRoZSBvZmZpY2lhbCBpbnRlcnByZXRhdGlvbiBkb2VzIG5vdCBhbGxv dyB7bG8gUEEgYnJvZGF9IHRvIGJlIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIGRlcGVuZGluZyBv biB0aGUgY29udGV4dCwgYW4gYXJndW1lbnQgdGhhdCBzaG91bGQgcmVmZXIgdG8gbm90aGluZywg YSB1bml0IG9mIGNvdW50aW5nIGZvciBleGFtcGxlLCBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYXMg YSBwbHVyYWwgY29uc3RhbnQsIHdoaWNoIHJlZmVycyB0byBzb21ldGhpbmcuIEZvciBleGFtcGxl IAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxpIGNpIGxvIHhhbnRvXgoKZm9yIHdoaWNoIHdl IGFyZSBjb21wZWxsZWQgdG8gaW50ZXJwcmV0IHRoYXQgdGhlcmUgaXMgdGhlICJFbGVwaGFudCBk ZXMgQXJjaGl2ZXMiIGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGp1c3QgbGlrZSB0aGUg Ik3DqHRyZSBkZXMgQXJjaGl2ZXMiIChhbHRob3VnaCBpdCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBp dHMgcm9sZSksIGluIG9yZGVyIHRvIHVzZSB7bG8geGFudG99IGFzIGEgdW5pdCBpbiBhIHByb3Bv c2l0aW9uLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgZWxlbWVudGFyeSBwYXJ0aWNsZXMgd2l0 aCBsbwoKQXMgbG9uZyBhcyB7bG8gYnJvZGF9IGlzIGludGVycHJldGVkIGFzIGEgcGx1cmFsIGNv bnN0YW50LCB0aGUgZm9sbG93aW5nIExvamJhbiBzZW50ZW5jZSBpcyBtZWFuaW5nbGVzczoKCgoK XmxvIGd1c2thJ3UgY3UgZ2F1IGptYWppIHNlcGknbyBsbyBsZW5qbyBnaSdlIHBhZ3JlIGxvIGZl bnJhfnBwfgoKfi9wcH4nJ1Bob3RvbnMgYXJlIGNvbmRlbnNlZCBieSBsZW5zZXMsIGFuZCBwYXNz IHRocm91Z2ggc2xpdHMuJydeCgoKCkFjdHVhbGx5LCBwaG90b25zIGFyZSBpbmRpdmlkdWFscywg YW5kIHdlIGNhbiBjb3VudCB0aGVtLCBidXQgd2UgY2Fubm90IGRpc3Rpbmd1aXNoIGVhY2ggb2Yg dGhlbTogd2UgY2Fubm90IHJlZmVyIHRvIGEgc3BlY2lmaWMgcGhvdG9uLiBRdWFudGlmaWNhdGlv biBpcyBpbmRlZWQgc3VpdGFibGUgZm9yIGFyZ3VtZW50cyB0aGF0IHJlcHJlc2VudCBwYXJ0aWNs ZXMgbGlrZSBwaG90b25zLiBIb3dldmVyLCBMb2piYW4gb2ZmaWNpYWxseSBkb2VzIG5vdCBoYXZl IGEgcGx1cmFsIHF1YW50aWZpZXIsIGFuZCBjYW5ub3QgZXhwcmVzcyBxdWFudGlmaWNhdGlvbiBv ZiAgc3VtdGkgdGhhdCBzYXRpc2ZpZXMgc2VsYnJpIGJvdGggY29sbGVjdGl2ZWx5IGFuZCBkaXN0 cmlidXRpdmVseS4gTW9yZW92ZXIsIGJlY2F1c2Uge2xvIGJyb2RhfSBpcyBvZmZpY2lhbGx5IGFs d2F5cyBhIHBsdXJhbCBjb25zdGFudCwgdGhlcmUgaXMgbm8gcm9vbSB0byBpbnRlcnByZXQge2xv IGd1c2thJ3V9IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlLiBJbiBvcmRlciB0byBzb2x2ZSB0 aGUgcHJvYmxlbSwgd2Ugc2hvdWxkIHVzZSBhbiB1bm9mZmljaWFsIHBsdXJhbCBxdWFudGlmaWVy IHtzdSdvaX0gc3VnZ2VzdGVkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLgoKCgpec3Unb2kgZGEg cG9pIGtlJ2EgZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxvIGxlbmpvIGdpJ2UgcGFncmUg bG8gZmVucmFeCgoKCiEhISEhIyBIb3cgdG8gaW50ZXJwcmV0IGEgcHJldmFpbGluZyB2aWV3CgpU aGUgZm9sbG93aW5nIGV4YW1wbGUgaXMgZ2l2ZW4gb24gKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQ RksncyBnYWRyaSBwYWdlKSk6CgoKCl5sbyBwYSBwaXhyYSBjdSBzZSB2YW1qaSBsbyBraSdvIHZh bHNpfnBwfgoKfi9wcH4nJ09uZSBwaWN0dXJlIGlzIHdvcnRoIGEgdGhvdXNhbmQgd29yZHMuJycg XgoKCgpFdmVuIGluIHN1Y2ggYSBzZW50ZW5zZSB0aGF0IHNlZW1zIGEgcHJldmFpbGluZyB2aWV3 LCB7bG8gcGEgcGl4cmF9IGFuZCB7bG8ga2knbyB2YWxzaX0gYXJlIGludGVycHJldGVkIGFzIHJl ZmVycmluZyB0byBzb21ldGhpbmcuIFdlIHNob3VsZCBwcmVwYXJlIHNvbWUgcmVmZXJlbnRzIG9m IHN1bXRpIG9mIGEgcHJldmFpbGluZyB2aWV3IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Uu CgoKCkludHVpdGlvbmFsbHkgc3BlYWtpbmcsIHdlIG1heSB1c2Uge2xvJ2V9IGluc3RlYWQgb2Yg e2xvfSwgYnV0IHdlIGNhbm5vdCB5ZXQgZXhwbGFpbiB7bG8nZX0gZnJvbSBhIGxvZ2ljYWwgcG9p bnQgb2YgdmlldyBiZWNhdXNlICgoQlBGSyBTZWN0aW9uOiBUeXBpY2Fsc3xhY3R1YWxseSB0aGVy ZSBpcyBubyBvZmZpY2lhbCBjb25jbHVzaW9uIGFib3V0IHJlbGF0aW9uIGJldHdlZW4ge2xvJ2V9 IGFuZCB7bG99KSkuCgoKCkFzIGEgbWV0aG9kIG9mIGF2b2lkaW5nIG1lbnRpb24gb2YgYSByZWZl cmVudCBpbiBhbiBleHByZXNzaW9uIG9mIHByZXZhaWxpbmcgdmlldywgd2UgbWF5IHB1dCB0aGUg d2hvbGUgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlLiBJbiBmYWN0LCB0cnV0aCB2YWx1ZSBvZiBh IHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBkb2VzIG5vdCBpbmZsdWVuY2UgdHJ1dGggdmFsdWUg b2YgdGhlIG91dGVyIHByb3Bvc2l0aW9uIChyZWZlcmVudGlhbGx5IG9wYXF1ZTsgdGhpcyB0b3Bp YyBpcyByZWxhdGVkIHRvIFtodHRwOi8vZGFnLmdpdGh1Yi5pby9jbGwvOS83L3xDTEw5LjddKS4g SW4gb3RoZXIgd29yZHMsIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugb2YgYSBwcm9wb3NpdGlv biBpbiBOVSBjbGF1c2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJz ZSBvZiBhIHByb3Bvc2l0aW9uIG91dCBvZiBOVS4KCklmIHdlIGFjY2VwdCB0aGlzIG1ldGhvZCwg dGhlIGV4YW1wbGUgYWJvdmUgd2lsbCBiZSBtb2RpZmllZCwgdXNpbmcge3NpJ299IGZvciBleGFt cGxlLCBhcyBmb2xsb3dzOgoKCgpec2knbyBsbyBwYSBwaXhyYSBjdSBzZSB2YW1qaSBsbyBraSdv IHZhbHNpIH5wcH4KCn4vcHB+JydJcyBhbiBpZGVhIHRoYXQgb25lIHBpY3R1cmUgaXMgd29ydGgg YSB0aG91c2FuZCB3b3Jkcy4nJ14KCgoKd2hlcmUgeDEgb2Yge3NpJ299IGlzIGltcGxpY2l0IHt6 bydlfSwgd2hpY2ggaGFzIGEgcmVmZXJlbnQgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4g QXMgYW4gaW50ZXJwcmV0YXRpb24gb2YgYSBwcmV2YWlsaW5nIHZpZXcsIHN1cHBvc2luZyBhIHJl ZmVyZW50IG9mIHgxIG9mIHtzaSdvfSBpcyBtb3JlIG5hdHVyYWwgdGhhbiBzdXBwb3NpbmcgYSBy ZWZlcmVudCBvZiB7bG8gcGEgcGl4cmF9IG9yIHtsbyBraSdvIHZhbHNpfS4KCihTdWNoIGEgYnJp ZGkgd2l0aCBubyB0ZXJicmkgaXMgY2FsbGVkICJvYnNlcnZhdGl2ZSIgaW4gKChUaGUgQ29tcGxl dGUgTG9qYmFuIExhbmd1YWdlKSksIGJ1dCB0aGlzIGludGVycHJldGF0aW9uIGlzIG5vdCBzdWl0 YWJsZSBoZXJlLCBiZWNhdXNlIHRoaXMgaXMgbm90IHRoZSB1dHRlcmFuY2UgdGhhdCBpcyBhbHdh eXMgY2F1c2VkIGJ5IGEgc3BlY2lmaWMgc3RpbXVsdXMuKQoKCgohISEhISMgSG93IHRvIGV4cHJl c3MgZnJlZSB2YXJpYWJsZXMKCkFzIGEgY3VzdG9tLCBrbydWL2ZvJ1Ygc2VyaWVzIG9mIEtPaEE0 IGFyZSB1c2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIGRlZmluaXRpb25zIG9mIHdvcmRzIG9yIHNv bWV0aGluZy4gSG93ZXZlciwgdGhleSBhcmUgYWN0dWFsbHkgcGx1cmFsIGNvbnN0YW50cy4KCklm IHdlIGFiYW5kb24gdGhpcyBjdXN0b20sIHtrZSdhfSBhbmQge2NlJ3V9IGFyZSBzdWl0YWJsZSBm b3IgZXhwcmVzc2lvbiB3aXRoIGZyZWUgdmFyaWFibGVzIChvcGVuIHNlbnRlbmNlKSwgYmVjYXVz ZSB0aGUgdHJ1dGggdmFsdWUgb2YgYnJpZGkgaW4gd2hpY2gge2tlJ2F9IG9yIHtjZSd1fSBpcyB1 c2VkIGlzIGluZGVmaW5pdGUuIAoKSW4gYSBicmlkaSBpbiB3aGljaCB7a2UnYX0gYXBwZWFycyB0 d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2tlJ2F9cyBhcmUgcmVnYXJkZWQgYXMgcmVwcmVzZW50 aW5nIGFuIGlkZW50aWNhbCBzdW10aToKCl5kYSBwb2kga2UnYSBneSB4bHVyYSBrZSdhIGN1IHBh bmNpIGxvIGthJ2Ugc2UgY2l0a2F+cHB+Cgp+L3Bwfn4tLX4gKChsbyBudSBiaW54bykpXgoKT24g dGhlIG90aGVyIGhhbmQsIGluIGEgYnJpZGkgaW4gd2hpY2gge2NlJ3V9IGFwcGVhcnMgdHdvIHRp bWVzIG9yIG1vcmUsIHRoZXNlIHtjZSd1fXMgYXJlIG5vdCBuZWNlc3NhcmlseSByZWdhcmRlZCBh cyByZXByZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRpOgoKXmxvIG1hbXRhIGpvJ3UgbG8gbWVu c2kgY3Ugc2lteHUgbG8ga2EgY2UndSBjaXNtYSBmYSdhIGNlJ3V+cHB+Cgp+L3Bwfn4tLX4gKChs byBudSBiaW54bykpXgoKQ29uc2lkZXJpbmcgdGhlc2UgcHJvcGVydGllcywgaW4gb3JkZXIgdG8g ZXhwcmVzcyBhbiBvcGVuIHNlbnRlbmNlIHdpdGggZnJlZSB2YXJpYWJsZXMgaW4gbm8gY29udGV4 dCwge2NlJ3V9IGlzIG1vcmUgY29udmVuaWVudCB0aGFuIHtrZSdhfSB3aGljaCBoYXMgcmVzdHJp Y3Rpb24gb2YgaWRlbnRpY2FsIHN1bXRpLgoKXmNlJ3UgY2UndSBjaXRrYX5wcH4KCn4vcHB+JydB IGVhdHMgQi4nJyAoT3BlbiBzZW50ZW5jZSwgdHJ1dGggdmFsdWUgaW5kZWZpbml0ZS4pXgoKCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KV2lraW5ldXJv dGljIG1haWxpbmcgbGlzdApXaWtpbmV1cm90aWNAbG9qYmFuLm9yZwpodHRwOi8vbWFpbC5sb2pi YW4ub3JnL21haWxtYW4vbGlzdGluZm8vd2lraW5ldXJvdGljCg==