Received: from localhost ([::1]:43095 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WrcGG-00006o-1e; Mon, 02 Jun 2014 17:07:28 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:37416 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WrcG7-00006g-FN for wikichanges@lojban.org; Mon, 02 Jun 2014 17:07:26 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 02 Jun 2014 17:07:19 -0700 From: "Apache" Date: Mon, 02 Jun 2014 17:07:19 -0700 To: wikichanges@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 0.5 (/) X-Spam_score: 0.5 X-Spam_score_int: 5 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 00:07 UTC Comment: fix orthography 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: (0.5 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.4 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 1.0 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikichanges] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikichanges@lojban.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: webmaster@lojban.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikichanges-bounces@lojban.org VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMDA6MDcgVVRDCkNvbW1lbnQ6 IGZpeCBvcnRob2dyYXBoeQoKWW91IGNhbiB2aWV3IHRoZSBwYWdlIGJ5IGZvbGxvd2luZyB0aGlz IGxpbms6CiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvZ2FkcmklM0ElMjBhbiUyMHVub2Zm aWNpYWwlMjBjb21tZW50YXJ5JTIwZnJvbSUyMGElMjBsb2dpY2FsJTIwcG9pbnQlMjBvZiUyMHZp ZXcKCllvdSBjYW4gdmlldyBhIGRpZmYgYmFjayB0byB0aGUgcHJldmlvdXMgdmVyc2lvbiBieSBm b2xsb3dpbmcgdGhpcyBsaW5rOiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvdGlraS1wYWdl aGlzdG9yeS5waHA/cGFnZT1nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnkl MjBmcm9tJTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldyZjb21wYXJlPTEmb2xkdmVy PTE2Jm5ld3Zlcj0xNwoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqClRoZSBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvbiBmb2xsb3cgYmVs b3csIGZvbGxvd2VkIGFmdGVyIGJ5IHRoZSBjdXJyZW50IGZ1bGwgcGFnZSB0ZXh0LgoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCist Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r CkBAIC1MaW5lczogMTEtMTUgY2hhbmdlZCB0byArTGluZXM6IDExLTE1IEBACistKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCjtfX2NvbnN0 YW50X186IEFyZ3VtZW50IHRoYXQgcmVmZXJzIHRvIGEgcmVmZXJlbnQuCjtfX3ZhcmlhYmxlX186 IEFyZ3VtZW50IGFzIGEgcGxhY2UgaG9sZGVyLiBJdCBkb2VzIG5vdCByZWZlciB0byBhbnl0aGlu Zy4gSXQgaXMgdG8gYmUgc3Vic3RpdHV0ZWQgZm9yLiBWYXJpYWJsZSBvdGhlciB0aGFuIGJvdW5k IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBkZWZpbmVkIGJlbGxvdyBpcyBjYWxsZWQgX19mcmVlIHZh cmlhYmxlX18uIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgYSBm cmVlIHZhcmlhYmxlIGlzIGluZGVmaW5pdGUuIFN1Y2ggYSBzZW50ZW5jZSBpcyBjYWxsZWQgX19v cGVuIHNlbnRlbmNlX18uCi0gXkluIExvamJhbiwge2tlJ2F9IGFuZCB7Y2UndX0gYXJlIGFsd2F5 cyBmcmVlIHZhcmlhYmxlcy4gQSBzZW50ZW5jZSBpbiBOT0ktY2xhdXNlIG9yIE5VLWNsYXVzZSB3 aXRoIHtjZSd1fSBpcyBvcGVuLiAoQSBzZW50ZW5jZSBpbiBOVS1jbGFzZSB3aXRoIG5vIHtjZSd1 fSBoYXMgYSB0cnV0aCB2YWx1ZSwgYnV0IGVhY2ggb2YgdGhlIGluc2lkZSBhbmQgdGhlIG91dHNp ZGUgb2YgTlUtY2xhdXNlIGhhcyBhbiBpbmRlcGVuZGVudCB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Us IGFuZCB0aHVzIGVhY2ggb2YgdGhlbSBoYXMgYW4gaW5kZXBlbmRlbnQgdHJ1dGggdmFsdWUgKGZv ciBleGFtcGxlLCBzZWUgW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC85LzcvfENMTDkuN10pLiBJ biBkZWZpbml0aW9ucyBvZiB3b3JkcyBpbiBMb2piYW4sIGtvJ1YvZm8nViBzZXJpZXMge2tvJ2Es IGtvJ2UsIC4uLn0gb2Ygc2VsbWEnbyBLT2hBNCBhcmUgdXNlZCBhcyBmcmVlIHZhcmlhYmxlcywg YnV0IGl0IGlzIG9ubHkgYSBjdXN0b20gZm9yIGNvbnZlbmllbmNlLiBBbGwgY21hdm8gb2YgS09o QTIsMyw0LDUsNiBhbmQge3pvJ2V9IG9mIEtPaEE3IGFyZSBlc3NlbnRpYWxseSBjb25zdGFudHMu IENvbnNpZGVyaW5nIHRoZSBjYXNlIHRoYXQgYm90aCBjb25zdGFudHMgYW5kIGJvdW5kIHZhcmlh YmxlcyAodG8gYmUgZGVmaW5lZCBiZWxsb3cpIGFwcGVhciBpbiBhIHN0YXRlbWVudCwgJnF1b3Q7 Y29uc3RhbnRzJnF1b3Q7IGFyZSBnZW5lcmFsbHkgY29uc2lkZXJlZCB0byBiZSBTa29sZW0gZnVu Y3Rpb25zLiBTZWUgKCh8I0JvdW5kX3ZhcmlhYmxlc19hbmRfY29uc3RhbnRzX2luX2Ffc3RhdGVt ZW50fFNlY3Rpb24gMy4yLjIpKSBmb3IgZGV0YWlsLl4KKyBeSW4gTG9qYmFuLCB7a2UnYX0gYW5k IHtjZSd1fSBhcmUgYWx3YXlzIGZyZWUgdmFyaWFibGVzLiBBIHNlbnRlbmNlIGluIE5PSS1jbGF1 c2Ugb3IgTlUtY2xhdXNlIHdpdGgge2NlJ3V9IGlzIG9wZW4uIChBIHNlbnRlbmNlIGluIE5VLWNs YXVzZSB3aXRoIG5vIHtjZSd1fSBoYXMgYSB0cnV0aCB2YWx1ZSwgYnV0IGVhY2ggb2YgdGhlIGlu c2lkZSBhbmQgdGhlIG91dHNpZGUgb2YgTlUtY2xhdXNlIGhhcyBhbiBpbmRlcGVuZGVudCB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCB0aHVzIGVhY2ggb2YgdGhlbSBoYXMgYW4gaW5kZXBlbmRl bnQgdHJ1dGggdmFsdWUgKGZvciBleGFtcGxlLCBzZWUgW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2Ns bC85LzcvfENMTDkuN10pLiBJbiBkZWZpbml0aW9ucyBvZiB3b3JkcyBpbiBMb2piYW4sIGtvJ1Yv Zm8nViBzZXJpZXMge2tvJ2EsIGtvJ2UsIC4uLn0gb2Ygc2VsbWEnbyBLT2hBNCBhcmUgdXNlZCBh cyBmcmVlIHZhcmlhYmxlcywgYnV0IGl0IGlzIG9ubHkgYSBjdXN0b20gZm9yIGNvbnZlbmllbmNl LiBBbGwgY21hdm8gb2YgS09oQTIsMyw0LDUsNiBhbmQge3pvJ2V9IG9mIEtPaEE3IGFyZSBlc3Nl bnRpYWxseSBjb25zdGFudHMuIENvbnNpZGVyaW5nIHRoZSBjYXNlIHRoYXQgYm90aCBjb25zdGFu dHMgYW5kIGJvdW5kIHZhcmlhYmxlcyAodG8gYmUgZGVmaW5lZCBiZWxsb3cpIGFwcGVhciBpbiBh IHN0YXRlbWVudCwgJnF1b3Q7Y29uc3RhbnRzJnF1b3Q7IGFyZSBnZW5lcmFsbHkgY29uc2lkZXJl ZCB0byBiZSBTa29sZW0gZnVuY3Rpb25zLiBTZWUgKCh8I0JvdW5kX3ZhcmlhYmxlc19hbmRfY29u c3RhbnRzX2luX2Ffc3RhdGVtZW50fFNlY3Rpb24gMy4yLjIpKSBmb3IgZGV0YWlsLl4KO19fcXVh bnRpZnlfXzogSW4gc3Vic3RpdHV0aW5nIHBvc3NpYmxlIGFyZ3VtZW50cyBvbmUgYnkgb25lIGZv ciBhIHZhcmlhYmxlIGluIGEgc2VudGVuY2UsIGNvdW50IHRoZSBudW1iZXIgb2YgcmVmZXJlbnRz IHRoYXQgbWFrZSB0aGUgc2VudGVuY2UgdHJ1ZSwgYW5kIHByZWZpeCB0aGUgbnVtYmVyIHRvIHRo ZSB2YXJpYWJsZS4KO19fcXVhbnRpZmllcl9fOiBOdW1iZXIgdXNlZCBmb3IgcXVhbnRpZmljYXRp b24uIEJlc2lkZXMge3BhfSwge3JlfSwge3ZlaSBueSBzdSdpIHBhICh2ZSdvKX0gYW5kIHNvIG9u LCB7cm99ICJhbGwiIGFuZCB7c3Unb30gInRoZXJlIGlzIG9uZSBvciBtb3JlIiBhcmUgYWxzbyBx dWFudGlmaWVycy4KCgoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqClRoZSBuZXcgcGFnZSBjb250ZW50IGZvbGxvd3MgYmVsb3cuCioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKSBjb250YWlucyBleHBy ZXNzaW9ucyBtaXNsZWFkaW5nIHBlb3BsZSB3aG8gaGF2ZSBhdCBsZWFzdCBhIGxpdHRsZSBrbm93 bGVkZ2Ugb2YgbG9naWMgKFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvdG9waWMvbG9qYmFu L1JBdEU3WWstZHF3L2Rpc2N1c3Npb258ZGlzY3Vzc2lvbl0pLgoKSSB3aWxsIG1ha2UgaGVyZSBh IGNvbW1lbnRhcnkgb24gQlBGSydzIGdhZHJpIHNvIHRoYXQgaXQgaXMgdW5kZXJzb29kIGJ5IHRo ZW0gY29ycmVjdGx5LgoKCgp7bWFrZXRvY30KCgoKISEjIEdsb3NzYXJ5CgpXZSB3aWxsIHVzZSB0 aGUgZm9sbG93aW5nIHRlcm1zIGluIHRoaXMgY29tbWVudGFyeS4KCjtfX2FyZ3VtZW50IChzdW10 aSlfXzogU3ltYm9sIHRoYXQgcmVmZXJzIHRvIGEgcmVmZXJlbnQsIG9yIHRoYXQgYW5vdGhlciBh cmd1bWVudCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yLgoKXkdyYW1tYXRpY2FsbHksIGFsbCB0aGVz ZSBhcmUgc3VtdGk6IGFyZ3VtZW50cywge3ppJ299IHdoaWNoIHJlbW92ZXMgYSBwbGFjZSBmb3Ig YW4gYXJndW1lbnQsIHtrb30gd2hpY2ggcmVmZXJzIHRvIGxpc3RlbmVyKHMpIGFuZCBmb3JtcyBp bXBlcmF0aXZlLCB7bWF9IHdoaWNoIGZvcm1zIGludGVycm9nYXRpdmUgdG8gYXNrIHdoaWNoIHN1 bXRpIG1ha2VzIHRoZSBzdGF0ZW1lbnQgdHJ1ZSwgc3VtdGkgYW5kIHJlbGF0aXZlIGNsYXVzZXMg KHt6bydlIG5vaSBicm9kYX0uLi4pLCBxdWFudGlmaWVyIGFuZCBzdW10aS9zZWxicmkgKHtub2Rh fSwge2NpIGxvIGJyb2RhfSwge3JvIGJyb2RhfS4uLikgLCBzdW10aSBjb25uZWN0ZWQgYnkgY29u bmVjdGl2ZXMgKHtrbydhIC5lIGtvJ2V9Li4uKS4gSG93ZXZlciwgaW4gdGhpcyBhcnRpY2xlLCAi c3VtdGkiIHJlZmVycyB0byBhbiBhcmd1bWVudCBvZiBsb2dpYyByZXByZXNlbnRlZCBpbiBMb2pi YW4uXgoKO19fdW5pdmVyc2Ugb2YgZGlzY291cnNlX186IFNldCBvZiBhbGwgcmVmZXJlbnRzIG9m IGFyZ3VtZW50cy4gSXQgaXMgbmF0dXJhbGx5IGEgdW5pdmVyc2UgdGhhdCBpcyBkaXNjdXNzZWQu IEEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGRlcGVuZHMgb24gdGhlIGNvbnRleHQuCgo7X19jb25z dGFudF9fOiBBcmd1bWVudCB0aGF0IHJlZmVycyB0byBhIHJlZmVyZW50LgoKO19fdmFyaWFibGVf XzogQXJndW1lbnQgYXMgYSBwbGFjZSBob2xkZXIuIEl0IGRvZXMgbm90IHJlZmVyIHRvIGFueXRo aW5nLiBJdCBpcyB0byBiZSBzdWJzdGl0dXRlZCBmb3IuIFZhcmlhYmxlIG90aGVyIHRoYW4gYm91 bmQgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGRlZmluZWQgYmVsbG93IGlzIGNhbGxlZCBfX2ZyZWUg dmFyaWFibGVfXy4gVGhlIHRydXRoIHZhbHVlIG9mIGEgc2VudGVuY2UgdGhhdCBpbmNsdWRlcyBh IGZyZWUgdmFyaWFibGUgaXMgaW5kZWZpbml0ZS4gU3VjaCBhIHNlbnRlbmNlIGlzIGNhbGxlZCBf X29wZW4gc2VudGVuY2VfXy4KCl5JbiBMb2piYW4sIHtrZSdhfSBhbmQge2NlJ3V9IGFyZSBhbHdh eXMgZnJlZSB2YXJpYWJsZXMuIEEgc2VudGVuY2UgaW4gTk9JLWNsYXVzZSBvciBOVS1jbGF1c2Ug d2l0aCB7Y2UndX0gaXMgb3Blbi4gKEEgc2VudGVuY2UgaW4gTlUtY2xhdXNlIHdpdGggbm8ge2Nl J3V9IGhhcyBhIHRydXRoIHZhbHVlLCBidXQgZWFjaCBvZiB0aGUgaW5zaWRlIGFuZCB0aGUgb3V0 c2lkZSBvZiBOVS1jbGF1c2UgaGFzIGFuIGluZGVwZW5kZW50IHVuaXZlcnNlIG9mIGRpc2NvdXJz ZSwgYW5kIHRodXMgZWFjaCBvZiB0aGVtIGhhcyBhbiBpbmRlcGVuZGVudCB0cnV0aCB2YWx1ZSAo Zm9yIGV4YW1wbGUsIHNlZSBbaHR0cDovL2RhZy5naXRodWIuaW8vY2xsLzkvNy98Q0xMOS43XSku IEluIGRlZmluaXRpb25zIG9mIHdvcmRzIGluIExvamJhbiwga28nVi9mbydWIHNlcmllcyB7a28n YSwga28nZSwgLi4ufSBvZiBzZWxtYSdvIEtPaEE0IGFyZSB1c2VkIGFzIGZyZWUgdmFyaWFibGVz LCBidXQgaXQgaXMgb25seSBhIGN1c3RvbSBmb3IgY29udmVuaWVuY2UuIEFsbCBjbWF2byBvZiBL T2hBMiwzLDQsNSw2IGFuZCB7em8nZX0gb2YgS09oQTcgYXJlIGVzc2VudGlhbGx5IGNvbnN0YW50 cy4gQ29uc2lkZXJpbmcgdGhlIGNhc2UgdGhhdCBib3RoIGNvbnN0YW50cyBhbmQgYm91bmQgdmFy aWFibGVzICh0byBiZSBkZWZpbmVkIGJlbGxvdykgYXBwZWFyIGluIGEgc3RhdGVtZW50LCAiY29u c3RhbnRzIiBhcmUgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgdG8gYmUgU2tvbGVtIGZ1bmN0aW9ucy4g U2VlICgofCNCb3VuZF92YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0 aW9uIDMuMi4yKSkgZm9yIGRldGFpbC5eCgo7X19xdWFudGlmeV9fOiBJbiBzdWJzdGl0dXRpbmcg cG9zc2libGUgYXJndW1lbnRzIG9uZSBieSBvbmUgZm9yIGEgdmFyaWFibGUgaW4gYSBzZW50ZW5j ZSwgY291bnQgdGhlIG51bWJlciBvZiByZWZlcmVudHMgdGhhdCBtYWtlIHRoZSBzZW50ZW5jZSB0 cnVlLCBhbmQgcHJlZml4IHRoZSBudW1iZXIgdG8gdGhlIHZhcmlhYmxlLgoKO19fcXVhbnRpZmll cl9fOiBOdW1iZXIgdXNlZCBmb3IgcXVhbnRpZmljYXRpb24uIEJlc2lkZXMge3BhfSwge3JlfSwg e3ZlaSBueSBzdSdpIHBhICh2ZSdvKX0gYW5kIHNvIG9uLCB7cm99ICJhbGwiIGFuZCB7c3Unb30g InRoZXJlIGlzIG9uZSBvciBtb3JlIiBhcmUgYWxzbyBxdWFudGlmaWVycy4KCjtfX2JvdW5kIHZh cmlhYmxlX186IFZhcmlhYmxlIHByZWZpeGVkIGJ5IGEgcXVhbnRpZmllci4gQXMgYSByZXN1bHQg b2YgcXVhbnRpZmljYXRpb24sIHRoZXJlIGlzIG5vIHJvb20gZm9yIHN1YnN0aXR1dGluZyBhbiBh cmJpdHJhcnkgYXJndW1lbnQgZm9yIHRoZSB2YXJpYWJsZS4KCl5JbiBMb2piYW4sIHtkYX0sIHtk ZX0gYW5kIHtkaX0gYXJlIGJvdW5kIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIHtybyBkYSB6byd1 IGRhIGJyb2RhfSBtZWFucyAiRm9yIGFsbCB7ZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vy c2UsIHtkYSBicm9kYX0gaXMgdHJ1ZS4iIEluIHRoZSBjYXNlIHRoYXQge2RhfSwge2RlfSBvciB7 ZGl9IGFyZSBub3QgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLCB0aGV5IGFyZSByZWdhcmRlZCBh cyBpbXBsaWNpdGx5IHByZWZpeGVkIGJ5IHtzdSdvfS5eCgo7X19kb21haW5fXzogUmFuZ2Ugb2Yg cmVmZXJlbnRzIHRvIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBvciByYW5nZSB0byBi ZSBjb25zaWRlcmVkIGluIGNvdW50aW5nIHJlZmVyZW50cyBpbiBxdWFudGlmaWNhdGlvbi4KCl5J biBMb2piYW4sIGEgZG9tYWluIG9mIGEgYm91bmQgdmFyaWFibGUgY2FuIGJlIGxpbWl0ZWQgd2l0 aCBhbiBleHByZXNzaW9uIHtkYSBwb2kuLi59LiBGb3IgZXhhbXBsZSwge3JvIGRhIHBvaSBrZSdh IGJyb2RhIHpvJ3UgZGEgYnJvZGV9IG1lYW5zICJGb3IgYWxsIHtkYX0gdGhhdCBhcmUgeDEgb2Yg e2Jyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCB7ZGEgYnJvZGV9IGlzIHRydWUu IiBJZiB7cG9pLi4ufSBkb2VzIG5vdCBmb2xsb3cge2RhfSwgdGhlIGRvbWFpbiBpcyB0aGUgd2hv bGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLl4KCjtfX3RhdXRvbG9neV9fOiBTZW50ZW5jZSB0aGF0 IGlzIGFsd2F5cyB0cnVlIGluZGVwZW5kZW50bHkgb2YgY29udGV4dC4ge2tvJ2EgZHUga28nYX0g ZXRjLgoKO19fbG9naWNhbCBheGlvbXNfXzogU2VudGVuY2VzIHNlbGVjdGVkIGZyb20gdGF1dG9s b2dpZXMgc28gdGhhdCBhbGwgdGF1dG9sb2dpZXMgYXJlIHByb3ZlZCBmcm9tIHRoZW0gd2l0aCBy dWxlcyBvZiBpbmZlcmVuY2UgdGhhdCBhcmUgZGVmaW5lZC4KCgoKISEjIFBsdXJhbCBxdWFudGlm aWNhdGlvbgoKSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9qYmFuIGZyb20g YSBsb2dpY2FsIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZlIGEga25vd2xl ZGdlIG9mIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uCgoKClBsdXJhbCBxdWFudGlmaWNhdGlv biB3YXMgaW52ZW50ZWQgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBleHByZXNzaW9uIG9mIHByb3Bv c2l0aW9uIHRoYXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gdGhlIHJlZmVyZW50IG9mIGFuIGFy Z3VtZW50IGlzIHBsdXJhbC4gCgpeCgo7RXhhbXBsZTogUGVvcGxlIGdhdGhlcmVkLCBjb29rZWQg YW5kIGF0ZS5eCgpMb2dpY2FsbHksIHRoaXMgc2VudGVuY2UgaXMgYSBwcm9wb3NpdGlvbiB0aGF0 IGNvbnNpc3RzIG9mIGEgY29uc3RhbnQgInBlb3BsZSIgYW5kIHRocmVlIHByZWRpY2F0ZXMgImdh dGhlcmVkIiAiY29va2VkIiBhbmQgImF0ZSIuIFRoZSBwcmVkaWNhdGVzIGFyZSBkaWZmZXJlbnQg ZnJvbSBlYWNoIG90aGVyIGluIHByb3BlcnR5IG9mIHRyZWF0aW5nIHRoZSBhcmd1bWVudC4gV2Ug d2lsbCBkaXNjdXNzIHByZWNpc2VseSBob3cgdGhlIGFyZ3VtZW50IGluIHRoZSBzZW50ZW5jZSBp cyB0cmVhdGVkLgoKCgohISEjIENvbGxlY3Rpdml0eSBhbmQgZGlzdHJpYnV0aXZpdHkKCgoKQ29u c2lkZXIgdGhlIGV4cHJlc3Npb24gInBlb3BsZSBnYXRoZXJlZCI6IGJhc2VkIG9uIHRoZSBtZWFu aW5nIG9mIHRoZSBwcmVkaWNhdGUgImdhdGhlcmVkIiwgdGhlIGNvbnN0YW50ICJwZW9wbGUiIHNo b3VsZCByZWZlciB0byBwbHVyYWwgcGVvcGxlLgoKV2hlbiByZWZlcmVudHMgb2YgYW4gYXJndW1l bnQgc2F0aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJhbCB0aGluZ3MgbGlrZSB0 aGlzLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRl IF9fY29sbGVjdGl2ZWx5X18iLCBvciAidGhlIGFyZ3VtZW50IGhhcyBfX2NvbGxlY3Rpdml0eV9f Ii4KCgoKQXMgZm9yIGVhY2ggb2YgdGhlIHBsdXJhbCBwZW9wbGUgcmVmZXJyZWQgdG8gYnkgdGhl IGNvbnN0YW50LCAgZWFjaCBzZW50ZW5jZSBzdWNoIHRoYXQgIkFsaWNlIGdhdGhlcmVkIiwgIkJv YiBnYXRoZXJlZCIgYW5kIHNvIG9uIGlzIG5vbnNlbnNlLgoKV2hlbiBlYWNoIHJlZmVyZW50IHJl ZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYWxvbmUs IHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19u b24tZGlzdHJpYnV0aXZlbHlfXyIuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBpbiB0aGUgZXhwcmVz c2lvbiAicGVvcGxlIGF0ZSIsIGFsdGhvdWdoIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMg dG8gcGx1cmFsIHBlb3BsZSwgdGhlIHByZWRpY2F0ZSAiYXRlIiBpcyBzYXRpc2ZpZWQgYnkgZWFj aCBwZXJzb24uIFRoYXQgaXMgdG8gc2F5LCBlYWNoIHNlbnRlbmNlIHN1Y2ggdGhhdCAiQWxpY2Ug YXRlIiwgIkJvYiBhdGUiIGFuZCBzbyBvbiBpcyBtZWFuaW5nZnVsLgoKV2hlbiBlYWNoIHJlZmVy ZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGFsb25l LCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9f ZGlzdHJpYnV0aXZlbHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFzIF9fZGlzdHJpYnV0aXZpdHlf XyIuCgoKCk1vcmVvdmVyLCBpZiB0aGUgcHJlZGljYXRlICJlYXQiIG1lYW5zIGFuIGFjdCAicHV0 IGZvb2QgaW4gYSBtb3V0aCwgYml0ZSBpdCwgbGV0IGl0IHBhc3MgdGhyb3VnaCBhbiBlc29waGFn dXMgYW5kIHNlbmQgaXQgdG8gYSBzdG9tYWNoIiwgaXQgaXMgaGFyZGx5IGNvbnNpZGVyZWQgdGhh dCAicGVvcGxlIiBzYXRpc2ZpZXMgImVhdCIgY29sbGVjdGl2ZWx5LiBFdmVuIGlmIGEgcGVyc29u IGhlbHBzIGFub3RoZXIgdG8gZWF0LCB0aGUgaGVscGVyIGlzIG5vdCBlYXRlciwgYW5kIHRoZSBl YXRlciBpcyBub3QgY29sbGVjdGl2ZSBwZW9wbGUgYnV0IGFuIGluZGl2aWR1YWwuIAoKV2hlbiBl YWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBw cmVkaWNhdGUgYXMgY29sbGVjdGl2ZSBwbHVyYWwgdGhpbmdzLCB3ZSBleHByZXNzIGl0IGFzICJh biBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fbm9uLWNvbGxlY3RpdmVseV9fIi4K CihIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0ZSAiZWF0 IiBhcyBpbnZvbHZpbmcgY29sbGVjdGl2aXR5LiBGb3IgZXhhbXBsZSwgaWYgaXQgaXMgaW50ZXJw cmV0ZWQgYXMgInB1dCBmb29kIGF3YXkgZnJvbSBvdXRzaWRlIHRvIGluc2lkZSBvZiBib2R5Iiwg d2UgbWF5IHNheSAiY29sbGVjdGl2ZWx5IGVhdCIgdG8gZXhwcmVzcyBhbiBldmVudCB0aGF0IHBl b3BsZSBlYXQgYW5kIGNvbnN1bWUgYSBtYXNzIG9mIGZvb2QgdG9nZXRoZXIuKQoKCgpUaGVyZSBh cmUgYWxzbyBwcmVkaWNhdGVzIHRoYXQgYWxsb3cgYm90aCBwcm9wZXJ0aWVzICJjb2xsZWN0aXZp dHkiIGFuZCAiZGlzdHJpYnV0aXZpdHkiLgoKIlBlb3BsZSBjb29rZWQiIG1heSBtZWFuIHRoYXQg cGx1cmFsIHBlb3BsZSBrbmVhZCBwYXN0ZSBvZiBwaXp6YSB0b2dldGhlciwgYW5kIHRoYXQgZWFj aCBvZiB0aGVtIGlzIGluIGNoYXJnZSBvZiBjYWtlcyBvciBwb3QtYXUtZmV1LiBJbiB0aGlzIGNh c2UsIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgYW5kIHRo ZXkgY29va2VkIHBpenphIGNvbGxlY3RpdmVseSwgY2FrZXMgYW5kIHBvdC1hdS1mZXUgZGlzdHJp YnV0aXZlbHkuIFRoZSBjb25zdGFudCAicGVvcGxlIiB0aHVzIHNhdGlzZmllcyB0aGUgcHJlZGlj YXRlICJjb29rZWQiIGNvbGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0aXZlbHkuCgoKCk5vdGUgdGhh dCB0aGUgY29uc3RhbnQgInBlb3BsZSIgcmVmZXJzIHRvIHdoYXQgaXMgY29tbW9uIHRvIHRocmVl IHByZWRpY2F0ZXMgImdhdGhlcmVkIiwgImNvb2tlZCIgYW5kICJhdGUiLiBObyBtYXR0ZXIgaWYg YSBjb25zdGFudCBzYXRpc2ZpZXMgcHJlZGljYXRlcyBjb2xsZWN0aXZlbHkgb3IgZGlzdHJpYnV0 aXZlbHksIHRoZSByZWZlcmVudCBpcyB0aGUgc2FtZS4KCgoKSWYgd2UgdXNlIGFuIGFyZ3VtZW50 ICJhIHNldCBvZiBwZW9wbGUiIGluIHRoZSBjYXNlIG9mIHNhdGlzZnlpbmcgYSBwcmVkaWNhdGUg Y29sbGVjdGl2ZWx5LCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRp Y2F0ZSAiZ2F0aGVyZWQiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IHNhdGlzZmllcyBpdCwgYnV0IHRo ZSBzYW1lIGFyZ3VtZW50IGNhbm5vdCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgImF0ZSIsIGJlY2F1 c2Ugd2UgY2FuIGhhcmRseSBzYXkgdGhhdCBhIHNldCBvZiBwZW9wbGUsIHdoaWNoIGlzIGFuIGFi c3RyYWN0IGVudGl0eSwgcGVyZm9ybXMgImF0ZSIuCgoKClVzaW5nIHBsdXJhbCBjb25zdGFudHMg YW5kIHBsdXJhbCB2YXJpYWJsZXMgdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiB0aGUgZm9sbG93 aW5nIHNlY3Rpb25zLCB3ZSBjYW4gZXhwcmVzcyBwbHVyYWwgdGhpbmdzIGluIHRoZSBmb3JtIG9m IHByZWRpY2F0ZSBsb2dpYyB3aXRob3V0IHVzaW5nIHNldHMuCgoKCiEhISMgUGx1cmFsIGNvbnN0 YW50IGFuZCBwbHVyYWwgdmFyaWFibGUKCkFuIGFyZ3VtZW50IHRoYXQgcmVmZXJzIHRvIHJlZmVy ZW50IHdpdGhvdXQgaW50cm9kdWNpbmcgYSBub3Rpb24gb2Ygc2V0cywgd2l0aG91dCBkaXN0aW5n dWlzaGluZyBjb2xsZWN0aXZpdHkgYW5kIGRpc3RyaWJ1dGl2aXR5LCB3aXRob3V0IGRpc3Rpbmd1 aXNoaW5nIHBsdXJhbGl0eSBhbmQgc2luZ3VsYXJpdHksIGlzIGNhbGxlZCBfX3BsdXJhbCBjb25z dGFudF9fLgoKQSB2YXJpYWJsZSBmb3Igd2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgY2FuIGJlIHN1 YnN0aXR1dGVkIGlzIGNhbGxlZCBfX3BsdXJhbCB2YXJpYWJsZV9fLgoKUXVhbnRpZnlpbmcgYSBw bHVyYWwgdmFyaWFibGUgaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uIEEgcXVh bnRpZmllciB1c2VkIGZvciBwbHVyYWwgcXVhbnRpZmljYXRpb24gaXMgY2FsbGVkIF9fcGx1cmFs IHF1YW50aWZpZXJfXy4gQSBwbHVyYWwgdmFyaWFibGUgcHJlZml4ZWQgd2l0aCBhIHBsdXJhbCBx dWFudGlmaWVyIGlzIGNhbGxlZCBhIF9fYm91bmQgcGx1cmFsIHZhcmlhYmxlX18uCgoKCiEhISEj IG1lIGFuZCBqbyd1CgpXZSBpbnRyb2R1Y2UgcmVsYXRpb25zIGJldHdlZW4gcGx1cmFsIGNvbnN0 YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxlczoge21lfSBhbmQge2pvJ3V9LgoKCgp8fAoKWCBtZSBZ IChtZSd1KSB+aHN+fH5oc34gWCBpcyBhbW9uZyBZCgp8fAoKWCBhbmQgWSByZXByZXNlbnQgaGVy ZSBwbHVyYWwgY29uc3RhbnRzIG9yIHBsdXJhbCB2YXJpYWJsZXMuIEEgY2x1c3RlciB7bWUgWSAo bWUndSl9IGlzIGEgc2VsYnJpIGluIExvamJhbiBncmFtbWFyLiB7bWUndX0gaXMgYW4gZWxpZGFi bGUgdGVybWluYXRvciBvZiBzdHJ1Y3R1cmUgYmVnaW5uaW5nIHdpdGgge21lfS4KCgoKe21lfSBo YXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBYLCBZ IGFuZCBaOgoKIyBYIG1lIFggKHJlZmxleGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBaIGlu YWphIFggbWUgWiAodHJhbnNpdGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBYIGlqbyBYIGR1 IFkgKGlkZW50aXR5KQoKVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhhdCB0aGUgaWRlbnRpdHkgYmV0 d2VlbiByZWZlcmVudHMgb2YgWCBhbmQgWSBpcyByZXByZXNlbnRlZCB3aXRoIHttZX0sIGFzIGEg cmVsYXRpb24gdGhhdCB7WCBtZSBZIGlqZWJvIFkgbWUgWH0uCgoKCnx8CgpYIGpvJ3UgWSB+aHN+ fH5oc34gWCBhbmQgWQoKfHwKCntqbyd1fSBjb21iaW5lcyB0d28gYXJndW1lbnRzIFggYW5kIFkg aW50byBvbmUgcGx1cmFsIGNvbnN0YW50IG9yIG9uZSBwbHVyYWwgdmFyaWFibGUuCgoKCntqbyd1 fSBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBY IGFuZCBZOgoKIyBYIG1lIFggam8ndSBZCgojIFggam8ndSBZIGR1IFkgam8ndSBYCgojIFggam8n dSBYIGR1IFgKClRoZSBwcm9wZXJ0eSAyIG1lYW5zIHRoYXQgdGhlIHJlZmVyZW50IG9mIHRoZSB3 aG9sZSBhcmd1bWVudCBkb2VzIG5vdCB2YXJ5IHdoZW4gdHdvIGFyZ3VtZW50cyBjb21iaW5lZCBi eSB7am8ndX0gYXJlIGludGVyY2hhbmdlZCB3aXRoIGVhY2ggb3RoZXIuIFRoZSBwcm9wZXJ0eSAz IG1lYW5zIHRoYXQge2pvJ3V9IGRvZXMgbm90IGFkZCBhbnkgcmVmZXJlbnQgd2hlbiBpdCBjb21i aW5lcyBhbiBhcmd1bWVudCB3aXRoIGl0c2VsZi4KCgoKVXNpbmcge2pvJ3V9LCB0aGUgZm9sbG93 aW5nIGV4cHJlc3Npb24gaXMgcG9zc2libGU6CgpeCgo7RXhhbXBsZTogQiBhbmQgQyBnYXRoZXJl ZCwgY29va2VkIGFuZCBhdGUuCgo7OiBieSBqbyd1IGN5IGptYWppIGdpJ2UganVrcGEgZ2knZSBj aXRrYV4KCkVhY2ggb2Yge2J5fSBhbmQge2N5fSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoKVGhl IHByZWRpY2F0ZSB7anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5 IGFuZC9vciBkaXN0cmlidXRpdmVseSwgYnV0IHRoZSBwbHVyYWwgY29uc3RhbnQge2J5IGpvJ3Ug Y3l9IHNheXMgbm90aGluZyBhYm91dCB3aGV0aGVyIGl0IHNhdGlzZmllcyB7anVrcGF9IGNvbGxl Y3RpdmVseSBhbmQvb3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNp dCB0aGF0IHRoZXkgY29va2VkICJjb2xsZWN0aXZlbHkiLCB3ZSBzYXkge2J5IGpvaSBjeX0gdXNp bmcge2pvaX0gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9q b191X2pvaV9jZV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjQpKSwgb3Ige2x1J28gYnkgam8ndSBjeX0g dXNpbmcge2x1J299IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdl ZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkuIENvbnRyYXN0aXZlbHks IGlmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICJkaXN0cmlidXRp dmVseSIsIHdlIHNheSAge2x1J2EgYnkgam8ndSBjeX0gdXNpbmcge2x1J2F9IHRoYXQgd2lsbCBi ZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dh ZHJpfFNlY3Rpb24gMy4zKSkuIEhvd2V2ZXIsIHRoZXNlIGFyZ3VtZW50cyB0aGF0IHNheXMgZXhw bGljaXRseSBjb2xsZWN0aXZpdHkgYW5kL29yIGRpc3RyaWJ1dGl2aXR5IGFyZSBub3QgYWx3YXlz IGNvbW1vbmx5IHVzZWQgZm9yIG90aGVyIHByZWRpY2F0ZXMgbGlrZSB7am1haml9IG9yIHtjaXRr YX0uCgoKClRoZSBkaWFncmFtIGJlbGxvdyBzaG93cyByZWxhdGlvbnMgY29uc3RydWN0ZWQgd2l0 aCB7bWV9IGFuZCB7am8ndX0gcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVkIGdyYXBoLCBpbiB3 aGljaCB0aGUgdmVydGljZXMgcmVwcmVzZW50IHBsdXJhbCBjb25zdGFudHMuCgoKCntpbWcgZmls ZUlkPSI3IiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEhIyBJbmRpdmlkdWFsCgpSZWZl cmVudCBvZiBhIHBsdXJhbCBjb25zdGFudCBpcyBub3QgbmVjZXNzYXJpbHkgcGx1cmFsOiBhIHBs dXJhbCBjb25zdGFudCBjYW4gcmVmZXIgdG8gb25lIGluZGl2aWR1YWwuCgpfX0FuIGluZGl2aWR1 YWxfXyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6Cgp8fAoKX19YIGlzIGFuIGluZGl2aWR1YWxfXyB+ aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHJvJ29pIGRhIHBvaSBrZSdhIG1lIFggem8ndSBYIG1l IGRhCgp8fAoKCgp3aGVyZSBfX3JvJ29pX18gaXMgYW4gZXhwZXJpbWVudGFsIGNtYXZvIHByb3Bv c2VkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLCB3aGljaCBpcyBhIHBsdXJhbCBxdWFudGlmaWVy IG1lYW5pbmcgImFsbCIuICB7cm8nb2kgZGF9IGlzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIG1l YW5pbmcgImZvciBhbGwgdGhhdCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHtkYX0iLiBUaGlzIGRl ZmluaXRpb24gbWVhbnMgdGhhdCBYIGlzIGNhbGxlZCBhbiBpbmRpdmlkdWFsIHdoZW4gdGhlIGNv bmRpdGlvbiAiZm9yIGFsbCB7ZGF9IHRoYXQgYXJlIGFtb25nIFgsIFggaXMgYW1vbmcge2RhfSIg aXMgc2F0aXNmaWVkLiBJbiBvdGhlciB3b3JkcywgImluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vy c2UsIG5vdGhpbmcgb3RoZXIgdGhhbiB7WH0gY2FuIGJlIHN1YnN0aXR1dGVkIGZvciB7ZGF9IHN1 Y2ggdGhhdCB7WCBtZSBkYX0iIGlzIGV4cHJlc3NlZCBieSAiWCBpcyBhbiBpbmRpdmlkdWFsIi4K CgoKV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMgYW4gaW5kaXZpZHVhbCBhbmQgWCBpcyBub3QgZXF1 YWwgdG8gWSwge1ggam8ndSBZfSBpcyBjYWxsZWQgX19pbmRpdmlkdWFsc19fLiBXaGVuIGVhY2gg b2YgWCBhbmQgWSBpcyBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxzLCB7WCBqbyd1IFl9IGlz IGNhbGxlZCBpbmRpdmlkdWFscyBhcyB3ZWxsLgoKCgohISEhIyBEaWZmZXJlbmNlIGJldHdlZW4g cGx1cmFsIGFuZCBzaW5ndWxhcgoKQSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gYSBz aW5nbGUgaW5kaXZpZHVhbCBpcyBjYWxsZWQgYSBfX3Npbmd1bGFyIGNvbnN0YW50X18uCgoKClVu bGVzcyBYPVkgYW5kIFggaXMgYW4gaW5kaXZpZHVhbCwgbm8gbWF0dGVyIHdoZXRoZXIgZWFjaCBv ZiBYIGFuZCBZIGlzIHBsdXJhbCBvciBzaW5ndWxhciwge1ggam8ndSBZfSBpcyBub3QgYSBzaW5n dWxhciBjb25zdGFudC4gSXQgaXMgYmVjYXVzZSAKCl5YIG1lIFggam8ndSBZIGlqZW5haSBYIGpv J3UgWSBtZSBYXgoKaG9sZHMgdHJ1ZSwgYW5kIHRoZW4ge1ggam8ndSBZfSBkb2VzIG5vdCBzYXRp c2Z5IHRoZSBjb25kaXRpb24gb2YgYW4gaW5kaXZpZHVhbCB7cm8nb2kgZGEgcG9pIGtlJ2EgbWUg WCBqbyd1IFkgem8ndSBYIGpvJ3UgWSBtZSBkYX0uCgoKCiEhISEjIEJvdW5kIHNpbmd1bGFyIHZh cmlhYmxlCgpXaGVuIHRoZSBkb21haW4gb2YgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgaXMgcmVz dHJpY3RlZCB0byB3aGF0IGlzIGFuIGluZGl2aWR1YWwsIHRoZSB2YXJpYWJsZSBpcyBjYWxsZWQg X19ib3VuZCBzaW5ndWxhciB2YXJpYWJsZV9fLiBBIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGNh bm5vdCB0YWtlIG1vcmUgdGhhbiBvbmUgaW5kaXZpZHVhbCB2YWx1ZSBhdCBhIHRpbWUuCgp7cm8g ZGF9IChmb3IgYWxsIHtkYX0pIGFuZCB7c3UnbyBkYX0gKHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB7 ZGF9KSwgd2hpY2ggYXJlIG9mZmljaWFsbHkgZGVmaW5lZCBpbiBMb2piYW4sIGFyZSBib3VuZCBz aW5ndWxhciB2YXJpYWJsZXMuIFRoZXkgY2FuIGJlIGRlZmluZWQgd2l0aCBib3VuZCBwbHVyYWwg dmFyaWFibGVzIGFzIGZvbGxvd3M6Cgp8fAoKcm8gZGEgfmhzfnx+aHN+IHJvJ29pIGRhIHBvaSBy bydvaSBkZSBwb2kgZGUgbWUgZGEgem8ndSBkYSBtZSBkZQoKc3UnbyBkYSB+aHN+fH5oc34gc3Un b2kgZGEgcG9pIHJvJ29pIGRlIHBvaSBkZSBtZSBkYSB6byd1IGRhIG1lIGRlCgp8fAoKX19zdSdv aV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3NlZCBieSAoKHhvcnhlc3xsYSB4b3J4 ZXMpKSwgYW5kIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmluZyAidGhlcmUgaXMvYXJlIi4g Tm90ZSB0aGF0IHtzdSdvaX0gaXMgX19ub3RfXyAiYXQgbGVhc3Qgb25lIi4ge3N1J29pIGRhfSBp cyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFuaW5nICJ0aGVyZSBpcy9hcmUge2RhfSIuCgoK CiEhISEjIFdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscwoKUmVm ZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGFuIGluZGl2aWR1 YWwgb3IgaW5kaXZpZHVhbHMuIAoKSXQgaXMgcG9zc2libGUgdG8gZGlzY3VzcyBhIHVuaXZlcnNl IG9mIGRpc2NvdXJzZSBzdWNoIHRoYXQgcmVmZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMg bmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKRm9yIGV4YW1wbGUsIGNv bnNpZGVyIHN1Y2ggYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaW4gd2hpY2ggdGhlIGZvbGxvd2lu ZyBwcm9wb3NpdGlvbiBob2xkcyB0cnVlLgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Ega3Un byBzdSdvaSBkZSB6byd1IGRlIG1lIGRhIGlqZW5haSBkYSBtZSBkZSB+LS1+IENvbmRpdGlvbl8x XgoKSW4gb3RoZXIgd29yZHMsIGluIHRoaXMgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBmb3IgYWxs IFggc3VjaCB0aGF0IHtYIG1lIGtvJ2F9LCB0aGVyZSBpcyBhbHdheXMgWSBzdWNoIHRoYXQge1kg bWUgWH0gYW5kIG5vdCB7WCBtZSBZfS4KCgoKO1RoZW9yZW06IEluIGEgdW5pdmVyc2Ugb2YgZGlz Y291cnNlIHdoZXJlIENvbmRpdGlvbl8xIGlzIHRydWUsIHtrbydhfSBpcyBuZWl0aGVyIGFuIGlu ZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgo7UHJvb2Y6IFN1cHBvc2Uge2tvJ2F9IGlzIGFu IGluZGl2aWR1YWwuIEZyb20gdGhlIGRlZmluaXRpb24gb2YgImFuIGluZGl2aWR1YWwiOgoKXnJv J29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25f Ml4KClJlcGxhY2Uge3JvJ29pIGRhfSB3aXRoIHtuYWt1IHN1J29pIGRhIG5ha3V9OgoKXm5ha3Ug c3Unb2kgZGEgcG9pIGtlJ2EgbWUga28nYSBrdSdvIG5ha3Ugem8ndSBrbydhIG1lIGRhIH4tLX4g U3VwcG9zaXRpb25fMi0xXgoKTW92ZSB0aGUgaW5uZXItbW9zdCB7bmFrdX0gaW50byB0aGUgcHJv cG9zaXRpb246CgpebmFrdSBzdSdvaSBkYSBwb2kga2UnYSBtZSBrbydhIHpvJ3UgbmFrdSBrbydh IG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0yXgoKUmVwbGFjZSB7c3Unb2kgZGEgcG9pfSB3aXRo IHtpamV9IGFuZCBtb3ZlIGludG8gdGhlIHByb3Bvc2l0aW9uOgoKXm5ha3Ugc3Unb2kgZGEgem8n dSBkYSBtZSBrbydhIGlqZSBuYWt1IGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3NpdGlvbl8yLTNeCgpS ZXBsYWNlIHtpamUgbmFrdX0gd2l0aCB7aWplbmFpfToKCl5uYWt1IHN1J29pIGRhIHpvJ3UgZGEg bWUga28nYSBpamVuYWkga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItNF4KCkJ5IHRoZSB3 YXksIGZyb20gYSBwcm9wZXJ0eSBvZiB7bWV9LAoKXmtvJ2EgbWUga28nYSBeCgppcyBhbHdheXMg dHJ1ZS4ge2tvJ2F9IGlzIHRoZXJlZm9yZSBpbiB0aGUgZG9tYWluIG9mIHtkYX0gb2YgQ29uZGl0 aW9uXzEuIFJlcGxhY2Uge3JvJ29pIGRhfSBvZiBDb25kaXRpb25fMSB3aXRoIHtrbydhfSwgYW5k IGl0IHRodXMgaG9sZHMgdHJ1ZToKCl5zdSdvaSBkZSB6byd1IGRlIG1lIGtvJ2EgaWplbmFpIGtv J2EgbWUgZGUgfi0tfiBDb25kaXRpb25fMS0xXgoKQ29uZGl0aW9uXzEtMSBhbmQgU3VwcG9zaXRp b25fMi00IGNvbnRyYWRpY3QgZWFjaCBvdGhlci4KClN1cHBvc2l0aW9uXzIgaXMgdGh1cyByZWpl Y3RlZCBieSByZWR1Y3RpbyBhZCBhYnN1cmR1bS4KCkl0IG1lYW5zIHRoYXQge2tvJ2F9IGlzIG5v dCBhbiBpbmRpdmlkdWFsLgoKCgpNb3Jlb3Zlciwgd2hlbiB7a28nYX0gaXMgZXhwYW5kZWQgdG8g e0Egam8ndSBCfSwgZnJvbSBhIHByb3BlcnR5IG9mIHtqbyd1fSwgdGhlIGZvbGxvd2luZyBwcm9w b3NpdGlvbnMgaG9sZCB0cnVlOgoKXkEgbWUga28nYX5wcH4KCn4vcHB+QiBtZSBrbydhXgoKRWFj aCBvZiBBIGFuZCBCIGlzIGluIHRoZSBkb21haW4gb2Yge2RhfSBvZiBDb25kaXRpb25fMS4gQ29u c2lkZXJpbmcgc2ltaWxhcmx5IHRvIENvbmRpdGlvbl8xLTEsIG5laXRoZXIgQSBub3IgQiBpcyBh biBpbmRpdmlkdWFsLiB7a28nYX0gaXMgdGh1cyBub3QgaW5kaXZpZHVhbHMuCgpRLkUuRC4KCgoK V2hlbiB7a28nYX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscywgd2hh dCBhY3R1YWxseSBkb2VzIGl0IHJlZmVyIHRvPwoKV2UgbWF5IGludGVycHJldCB0aGF0IGl0IHJl ZmVycyB0byB3aGF0IGlzIHJlZmVycmVkIHRvIGJ5IGEgbWF0ZXJpYWwgbm91biwgZm9yIGV4YW1w bGUuCgpCeSBhIHNwZWFrZXIgd2hvIHRoaW5rcyB0aGF0IGEgY3V0LW9mZiBwaWVjZSBvZiBicmVh ZCBpcyBhbHNvIGJyZWFkLCBicmVhZCBpcyByZWdhcmRlZCBhcyBuZWl0aGVyIGFuIGluZGl2aWR1 YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9s b2piYW4vUkF0RTdZay1kcXcvcENHZVlDRTlsMVFKfChSZWxhdGVkIGRpc2N1c3Npb246IGZvciB0 aGUgY2FzZSBvZiB7a28nYX09e2xvIHNpZGJvfSwgSSB3cm90ZSB0aGUgc2FtZSBwcm9vZiBvbmx5 IGluIExvamJhbi4pXQoKCgohISEhIyBBIGxvZ2ljYWwgYXhpb20gb24gcGx1cmFsIGNvbnN0YW50 CgpUaGUgZm9sbG93aW5nIGxvZ2ljYWwgYXhpb20gaXMgZ2l2ZW4gdG8gYW4gYXJiaXRyYXJ5IHBs dXJhbCBjb25zdGFudCBDOgoKXmdhbmFpIEMgYnJvZGEgZ2kgc3Unb2kgZGEgem8ndSBkYSBicm9k YV4KCgoKSXQgbWVhbnMgImluIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBpZiBhIHByb3Bvc2l0 aW9uIGluIHdoaWNoIGEgcGx1cmFsIGNvbnN0YW50IGlzIHgxIG9mIHticm9kYX0gaG9sZHMgdHJ1 ZSwgdGhlcmUgaXMgcmVmZXJlbnQgdGhhdCBpcyB4MSBvZiB7YnJvZGF9Ii4KCgoKVGhhdCBpcyB0 byBzYXksIGFuIGFyZ3VtZW50IHRoYXQgaGFzIG5vIHJlZmVyZW50IGluIGEgdW5pdmVyc2Ugb2Yg ZGlzY291cnNlIGNhbm5vdCBiZSByZXByZXNlbnRlZCBieSBhIHBsdXJhbCBjb25zdGFudC4gQW4g YXJndW1lbnQgdGhhdCBoYXMgbm8gcmVmZXJlbnQgaXMgZXhwcmVzc2VkIGluIHRoZSBmb3JtIHtu YWt1IHN1J29pIGRhfSwgd2hpY2ggaXMgYSBuZWdhdGlvbiBvZiBhIGJvdW5kIHBsdXJhbCB2YXJp YWJsZSB7c3Unb2kgZGF9IG1lYW5pbmcgInRoZXJlIGlzL2FyZSIuCgoKCiEhIyBEZWZpbml0aW9u IG9mIGdhZHJpCgo7X19sb19fIChMRSk6IEl0IGlzIHByZWZpeGVkIHRvIHNlbGJyaSwgYW5kIGZv cm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHdoYXQgc2F0aXNmaWVzIHgxLCB0 aGUgZmlyc3QgcGxhY2Ugb2YgdGhlIHNlbGJyaS4gSWYgYSBxdWFudGlmaWVyIGZvbGxvd3Mge2xv fSwgdGhlIHF1YW50aWZpZXIgcmVwcmVzZW50cyB0aGUgY291bnQgb2YgYWxsIHRoZSByZWZlcmVu dHMgb2YgdGhlIHBsdXJhbCBjb25zdGFudC4gSW4gdGhlIGNhc2UgdGhhdCBhIHF1YW50aWZpZXIg Zm9sbG93cyB7bG99LCBhIHN1bXRpIG1heSBmb2xsb3cgaXQuIEluIHRoaXMgY2FzZSwgaXQgZm9y bXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gd2hhdCBpcy9hcmUgYW1vbmcgJydz dW10aScnLgoKfHwKCmxvIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2Eg YnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAoa3Unbykgfmhzfnx+aHN+IHdo YXQgaXMvYXJlIGJyb2RhIFtbdGhhdCBpcy9hcmUgUEEgaW4gdG90YWxdCgpsbyBQQSAnJ3N1bXRp JycgKGt1KSB+aHN+fH5oc34gbG8gUEEgbWUgJydzdW10aScnIChtZSd1KSAoa3UpIH5oc358fmhz fiB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1bXRpJycsIGFuZCBQQSBpbiB0b3RhbAoKfHwKCntrdX0s IHtrdSdvfSwge21lJ3V9IGFyZSBlbGlkYWJsZSB0ZXJtaW5hdG9ycy4KCgoKUHV0dGluZyBhIHF1 YW50aWZpZXIgYWZ0ZXIgZ2FkcmkgbGlrZSB7bG8gUEF9IGlzIGNhbGxlZCBfX2lubmVyIHF1YW50 aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVhbnRpZmllciBpcyBjYWxsZWQgX19pbm5lciBxdWFudGlm aWVyX18uIEFsdGhvdWdoIHRoZSB0ZXJtICJxdWFudGlmeSIgaXMgaW52b2x2ZWQsIGl0IGlzIGRp ZmZlcmVudCBmcm9tIHF1YW50aWZpY2F0aW9uIG9mIGxvZ2ljLiBJbm5lciBxdWFudGlmaWNhdGlv biBkb2VzIG5vdCBpbnZvbHZlIGNvdW50aW5nIHJlZmVyZW50cyBvZiBjb25zdGFudHMgdGhhdCBj YW4gYmUgc3Vic3RpdHV0ZWQgZm9yIGEgdmFyaWFibGUsIGJ1dCBjb3VudGluZyBhbGwgdGhlIHJl ZmVyZW50cyBvZiBvbmUgcGx1cmFsIGNvbnN0YW50LiBJbm5lciBxdWFudGlmaWNhdGlvbiB3aWxs IGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjSW5uZXJfcXVhbnRpZmljYXRpb258 U2VjdGlvbiAzLjEpKS4KCgoKT24gdGhlIG90aGVyIGhhbmQsIHB1dHRpbmcgYSBxdWFudGlmaWVy IGJlZm9yZSBnYWRyaSwgb3IgYmVmb3JlIGEgc3VtdGkgbW9yZSBnZW5lcmFsbHksIGlzIGNhbGxl ZCBfX291dGVyIHF1YW50aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVhbnRpZmllciBpcyBjYWxsZWQg X19vdXRlciBxdWFudGlmaWVyX18uIE91dGVyIHF1YW50aWZpY2F0aW9uIHdpbGwgYmUgZGlzY3Vz c2VkIG1vcmUgcHJlY2lzZWx5IGluICgofCNPdXRlcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9uIDMu MikpLgoKCgpBbGwgc3VtdGkgZm9ybWVkIHdpdGggZ2FkcmkgYXJlIGRlZmluZWQgc28gdGhhdCB0 aGV5IGFyZSBleHBhbmRlZCBpbnRvIGV4cHJlc3Npb25zIHdpdGgge3pvJ2V9LiBUaGF0IGlzIHRv IHNheSwgdGhlIG1vc3QgZ2VuZXJhbCBwbHVyYWwgY29uc3RhbnQgaXMgcmVwcmVzZW50ZWQgYnkg YSBzaW5nbGUge3pvJ2V9LiBBIHN1bXRpIGZvcm1lZCB3aXRoIGdhZHJpIGlzIHt6bydlfSBhY2Nv bXBhbmllZCBieSBhbiBleHBsYW5hdGlvbi4KCl4KCjtFeGFtcGxlOiBQZW9wbGUgZ2F0aGVyZWQs IGNvb2tlZCBhbmQgYXRlLgoKOzogbG8gcHJlbnUgY3Ugam1hamkgZ2knZSBqdWtwYSBnaSdlIGNp dGthXgoKCgpXaGlsZSB0aGUgcHJlZGljYXRlIHtqdWtwYX0gKGNvb2spIGNhbiBiZSBpbnRlcnBy ZXRlZCBjb2xsZWN0aXZlbHkgYXMgd2VsbCBhcyBkaXN0cmlidXRpdmVseSwgdGhlIHBsdXJhbCBj b25zdGFudCB7bG8gcHJlbnV9IChwZW9wbGUpIGRvZXMgbm90IHNheSBleHBsaWNpdGx5IGlmIGl0 IHNhdGlzZmllcyB7anVrcGF9IGNvbGxlY3RpdmVseSBvciBkaXN0cmlidXRpdmVseS4gSWYgd2Ug d2FudCB0byBzYXkgZXhwbGljaXRseSB0aGF0IHRoZXkgImNvbGxlY3RpdmVseSIgY29va2VkLCB3 ZSB1c2Uge2xvaX0sIHdoaWNoIHdpbGwgYmUgZGlzY3Vzc2VkIGxhdGVyLCBhbmQgc2F5IHtsb2kg cHJlbnV9LiBDb250cmFzdGl2ZWx5LCBpZiB3ZSB3YW50IHRvIHNheSBleHBsaWNpdGx5IHRoYXQg dGhleSAiZGlzdHJpYnV0aXZlbHkiIGNvb2tlZCwgd2Ugc2F5IHtybyBsbyBwcmVudX0gd2l0aCBh biBvdXRlciBxdWFudGlmaWNhdGlvbiwgb3Ige2x1J2EgbG8gcHJlbnV9LiBIb3dldmVyLCBhIHN1 bXRpIHRoYXQgc2F5cyBleHBsaWNpdGx5IGNvbGxlY3Rpdml0eSBvciBkaXN0cmlidXRpdml0eSBp cyBub3QgbmVjZXNzYXJpbHkgYWJsZSB0byBiZSBzaGFyZWQgd2l0aCBvdGhlciBwcmVkaWNhdGUg bGlrZSB7am1haml9IG9yIHtjaXRrYX0uCgoKCjtfX2xlX18gKExFKToge2xlIGJyb2RhfSByZWZl cnMgX19zcGVjaWZpY2FsbHlfXyB0byBhIHJlZmVyZW50IG9mIHtsbyBicm9kYX0sIGFuZCBfX2V4 cGxpY2l0bHkgZXhwcmVzcyB0aGF0IHRoZSBzcGVha2VyIGhhcyB0aGUgcmVmZXJlbnQgaW4gbWlu ZF9fLiBJdHMgbG9naWNhbCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHtsb30uCgp8 fAoKbGUgW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbWkga2UnYSBkbyBza2lj dSBsbyBrYSBjZSd1IGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQQSBsbyBicm9kYV0gKGt1J28p IAoKbGUgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IGxlIFBBIG1lICcnc3VtdGknJyAobWUn dSkgKGt1KQoKfHwKCgoKO19fbGFfXyAoTEEpOiBJdCBpcyBwcmVmaXhlZCB0byBzZWxicmkgb3Ig Y21ldmxhLCBhbmQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gd2hhdCBp cyBuYW1lZCB0aGUgc2VsYnJpIG9yIGNtZXZsYSBzdHJpbmcuIEl0cyBsb2dpY2FsIHByb3BlcnR5 IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2Yge2xvfS4KCnx8CgpsYSBbW1BBXSBicm9kYSAoa3UpIH5o c358fmhzfiB6bydlIG5vaSBsdSBbW1BBXSBicm9kYSBsaSd1IGNtZW5lIGtlJ2EgbWkgKGt1J28p IAoKbGEgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9pIGx1IFBBIHN1bXRpIGxp J3UgY21lbmUga2UnYSBtaSAoa3UnbykgCgp8fAoKCgo7X19sb2lfXyAoTEUpLCBfX2xlaV9fIChM RSksIF9fbGFpX18gKExBKToge2xvaS9sZWkvbGFpIGJyb2RhfSByZWZlcnMgdG8gYSByZWZlcmVu dCBvZiB7bG8vbGUvbGEgYnJvZGF9LCBhbmQgX19leHBsaWNpdGx5IGV4cHJlc3MgdGhhdCB0aGUg cmVmZXJlbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGNvbGxlY3RpdmVseV9fLgoKfHwKCmxvaSBb W1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbG8gW1tQQV0gYnJvZGEKCmxlaSBbW1BB XSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgW1tQQV0gYnJvZGEKCmxhaSBbW1BBXSBi cm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgW1tQQV0gYnJvZGEKCmxvaSBQQSAnJ3N1bXRp Jycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxvIFBBICcnc3VtdGknJwoKbGVpIFBBICcnc3VtdGkn JyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgUEEgJydzdW10aScnCgpsYWkgUEEgJydzdW10aScn IH5oc358fmhzfiBsbyBndW5tYSBiZSBsYSBQQSAnJ3N1bXRpJycKCnx8CgpCZWNhdXNlIHtsb2kv bGVpL2xhaX0gaXMgdGh1cyBkZWZpbmVkIGJ5IGFub3RoZXIgcGx1cmFsIGNvbnN0YW50IHtsbyBn dW5tYSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRpcmVjdGx5IHRvIHJlZmVyZW50 IG9mIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1dCByZWZlcmVudCBvZiB7bG8g Z3VubWF9LiBUaGVyZWZvcmUsIGV2ZW4gaWYge2xvIGJyb2RhfSBvciB7bG8gUEEgJydzdW10aScn fSBpcyBub3QgYW4gaW5kaXZpZHVhbCwge2xvaSBicm9kYX0gb3Ige2xvaSBQQSAnJ3N1bXRpJyd9 IGNhbiBiZSBhbiBpbmRpdmlkdWFsIHtsbyBndW5tYX0gdW5kZXIgdGhlIGZvbGxvd2luZyBjb25k aXRpb246Cgpecm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEgYmUgbG8vbGUvbGEgW1tQQV0g YnJvZGEgem8ndSBsbyBndW5tYSBiZSBsby9sZS9sYSBbW1BBXSBicm9kYSBjdSBtZSBkYX5wcH4K Cn4vcHB+cm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEgYmUgbG8vbGUvbGEgUEEgJydzdW10 aScnIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgUEEgJydzdW10aScnIGN1IG1lIGRhXgoKCgo7 X19sbydpX18gKExFKSwgX19sZSdpX18gKExFKSwgX19sYSdpX18gKExBKToge2xvJ2kvbGUnaS9s YSdpIGJyb2RhfSByZWZlcnMgdG8gYSBzZXQgb3Igc2V0cyBvZiBpbmRpdmlkdWFsKHMpIHRoYXQg Y29uc3RpdHV0ZShzKSBhIHBsdXJhbCBjb25zdGFudCB7bG8vbGUvbGEgYnJvZGF9LiBCZWNhdXNl IHtsbydpL2xlJ2kvbGEnaX0gZm9ybXMgYSBzZXQgb3Igc2V0cywgaXQgaXMgZGVmaW5lZCBvbmx5 IHdoZW4gaXRzL3RoZWlyIG1lbWJlcihzKSB7bG8vbGUvbGEgYnJvZGF9IGlzL2FyZSBhbiBpbmRp dmlkdWFsIG9yIGluZGl2aWR1YWxzLiBBIHNldCBpdHNlbGYgaXMgYWx3YXlzIGFuIGluZGl2aWR1 YWwsIGFuZCBzZXRzIGFyZSBhbHdheXMgaW5kaXZpZHVhbHM6IHRoZXJlIGlzIG5vIHNldCB0aGF0 IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKfHwKCmxvJ2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxv IHNlbGNtaSBiZSBsbyBbW1BBXSBicm9kYQoKbGUnaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8g c2VsY21pIGJlIGxlIFtbUEFdIGJyb2RhCgpsYSdpIFtbUEFdIGJyb2RhIH5oc358fmhzfiBsbyBz ZWxjbWkgYmUgbGEgW1tQQV0gYnJvZGEKCmxvJ2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBz ZWxjbWkgYmUgbG8gUEEgJydzdW10aScnCgpsZSdpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8g c2VsY21pIGJlIGxlIFBBICcnc3VtdGknJwoKbGEnaSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxv IHNlbGNtaSBiZSBsYSBQQSAnJ3N1bXRpJycKCnx8CgpCZWNhdXNlIHtsbydpL2xlJ2kvbGEnaX0g aXMgZGVmaW5lZCBieSBhbm90aGVyIHBsdXJhbCBjb25zdGFudCB7bG8gc2VsY21pIGJlIGxvL2xl L2xhfSwgaXQgZG9lcyBub3QgcmVmZXIgZGlyZWN0bHkgdG8gcmVmZXJlbnQgb2Yge2xvIGJyb2Rh fSBvciB7bG8gUEEgJydzdW10aScnfSwgYnV0IHJlZmVyZW50IG9mIHtsbyBzZWxjbWl9LgoKCgpJ biBzZXQgdGhlb3J5LCBhbiBlbXB0eSBzZXQgaXMgZGVmaW5lZCBhcyB7bG8gc2VsY21pIGJlIG5v IGRhfSwgYW5kIGFuIGV4cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBpcyBvZmZpY2lhbGx5IG1lYW5p bmdsZXNzIChzZWUgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSkuIFRoaXMg aW1wbGllcyB0aGF0IGFuIGVtcHR5IHNldCBjYW5ub3QgYmUgZXhwcmVzc2VkIHdpdGgge2xvJ2kv bGUnaS9sYSdpfS4gCgoKCkFjY29yZGluZyB0byBbaHR0cDovL2pib3ZsYXN0ZS5sb2piYW4ub3Jn L2RpY3Qvc2VsY21pfGpib3ZsYXN0ZV0sIHtzZWxjbWl9IGlzIGRlZmluZWQgYXMgZm9sbG93czp8 fAoKeDEgc2VsY21pIHgyIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34geDEgc2UgY21pbWEgcm8g bG8gbWUgeDIgbWUndSBlIG5vIGxvIG5hIG1lIHgyIHx8CgpJZiB3ZSBhY2NlcHQgdGhpcyBkZWZp bml0aW9uLCBhIHNldCByZWZlcnJlZCB0byBieSB7bG8naS9sZSdpL2xhJ2l9LXN1bXRpIGNvbnNp c3RzIG9mIG9ubHkgdGhlIHJlZmVyZW50IG9mIHtsby9sZS9sYSBbW1BBXSBicm9kYX0gb3Ige2xv L2xlL2xhIFBBICcnc3VtdGknJ30uIENvbnRyYXN0aXZlbHksIGlmIHdlIGRlZmluZSBpdCBhcyB7 c2VsY21pfT17c2UgY21pbWF9LCB0aGUgc2V0IG1heSBpbmNsdWRlIHdoYXQgaXMvYXJlIG90aGVy IHRoYW4gdGhlIHJlZmVyZW50IG9mIHtsby9sZS9sYSBbW1BBXSBicm9kYX0gb3Ige2xvL2xlL2xh IFBBICcnc3VtdGknJ30uIEl0IGlzIG5vdCB5ZXQgb2ZmaWNpYWxseSBkZXRlcm1pbmVkIHdoaWNo IGludGVycHJldGF0aW9uIGlzIHRvIGJlIGFjY2VwdGVkLgoKCgohISEjIElubmVyIHF1YW50aWZp Y2F0aW9uCgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSyBkZWZpbmVzIGlubmVyIHF1YW50aWZp Y2F0aW9uKSkgYXMgZm9sbG93czoKCnx8CgpsbyBbW1BBXSBicm9kYSB+aHN+fH5oc34gem8nZSBu b2kga2UnYSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkgUEEgbG8gYnJvZGFdCgpsbyBQQSAnJ3N1 bXRpJycgfmhzfnx+aHN+IGxvIFBBIG1lICcnc3VtdGknJwoKfHwKClRoYXQgaXMgdG8gc2F5LCBp bm5lciBxdWFudGlmaWVyIG1lYW5zIG51bWJlciBvZiByZWZlcmVudCBjb3VudGVkIGJ5IHVuaXQg e2xvIGJyb2RhfSBvciB7bG8gbWUgJydzdW10aScnfSB0aGF0IGlzIHgzIG9mIHt6aWxrYW5jdX0u IAoKSG93ZXZlciwgaW5zdGVhZCBvZiB7emlsa2FuY3V9LCB0aGUgbWVhbmluZyBvZiB3aGljaCBp cyB0b28gdmFndWUgZm9yIGRlZmluaXRpb24sIFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2Qv bXNnL2xvamJhbi9SQXRFN1lrLWRxdy94aTJoNkExN0N1c0p8YW4gaWRlYSBvZiByZWRlZmluaXRp b24gdXNpbmcge21laX0gd2FzIHN1Z2dlc3RlZF0gYXMgZm9sbG93czoKCgoKO0F4aW9tIDE6IHJv J29pIGRhIHN1J28gcGEgbWVpCgo7RGVmaW5pdGlvbjp8fAoKKEQxKSBrbydhIHN1J28gTiBtZWkg fmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBzdSdvaSBkYSBwb2kgbWUga28nYSBrdSdvIHN1J29p IGRlIHBvaSBtZSBrbydhIHpvJ3UgZ2UgZGEgc3UnbyBOLTEgbWVpIGdpbmFpIGRlIG1lIGRhCgoo RDIpIGtvJ2EgTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBrbydhIHN1J28gTiBtZWkg Z2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKKEQzKSBsbyBQQSBicm9kYSB+aHN+fH5oc34gPWNhJ2Ug fmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgUEEgbWVpIGdpJ2UgYnJvZGEKCnx8CgoKClVzaW5nIHRo ZXNlIGRlZmluaXRpb25zIGFuZCBBeGlvbSAxLCB0aGUgZm9sbG93aW5nIHRoZW9yZW0gd2lsbCBi ZSBwcm92ZWQuCgpeSWYgYW5kIG9ubHkgaWYge2tvJ2EgcGEgbWVpfSwge2tvJ2F9IGlzIGFuIGlu ZGl2aWR1YWwuXgoKCgo7UHJvb2Y6IChEMikgaXMKCnx8CgprbydhIE4gbWVpCXw9fCBrbydhIHN1 J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKCQl8PXwgZ2Uga28nYSBzdSdvIE4gbWVp IC0tLS0tKFMxKQoKCQl8IHwgZ2kgbmFrdSBrbydhIHN1J28gTisxIG1laSAtLS0tLShTMikKCnx8 CgpBcHBseWluZyAoRDEpIHRvIChTMiksIAoKfHwKCihTMikJCXw9fCBuYWt1IHN1J29pIGRhIHBv aSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2Egem8ndSAKCgkJfCB8IGdlIGRhIHN1 J28gTiBtZWkgCgoJCXwgfCBnaW5haSBkZSBtZSBkYQoKCQl8PXwgcm8nb2kgZGEgcG9pIG1lIGtv J2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwgfCBuYWt1IGdlIGRhIHN1J28g TiBtZWkgCgoJCXwgfCBnaSBuYWt1IGRlIG1lIGRhCgoJCXw9fCBybydvaSBkYSBwb2kgbWUga28n YSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8IGdhbmFpIGRhIHN1J28gTiBt ZWkgCgoJCXwgfCBnaSBkZSBtZSBkYQoKfHwKCihEMikgaXMgdGhlcmVmb3JlCgp8fAoKa28nYSBO IG1laQl8PXwgZ2UgKFMxKSBnaSAoUzIpIAoKCQl8PXwgZ2Uga28nYSBzdSdvIE4gbWVpCgoJCXwg fCBnaSBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UK CgkJfCB8IGdhbmFpIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBkZSBtZSBkYQoKfHwKCldoZW4g Tj0xLAoKfHwKCmtvJ2EgcGEgbWVpCXw9fCBnZSBrbydhIHN1J28gcGEgbWVpCgoJCXwgfCBnaSBy bydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8 IGdhbmFpIGRhIHN1J28gcGEgbWVpIAoKCQl8IHwgZ2kgZGUgbWUgZGEgCgp8fAoKQmVjYXVzZSBv ZiBBeGlvbSAxLCBpdCBpbXBsaWVzCgp8fAoKa28nYSBwYSBtZWkJfD18IHJvJ29pIGRhIHBvaSBt ZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndSBkZSBtZSBkYQoKfHwKClRoZSBy aWdodCBzaWRlIGltcGxpZXMge3JvJ29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBrbydhIG1l IGRhfSwgd2hpY2ggaXMgdGhlIGNvbmRpdGlvbiBmb3IgIntrbydhfSBpcyBhbiBpbmRpdmlkdWFs Ii4gSXRzIGNvbnZlcnNlIGlzIGFsc28gdHJ1ZS4KClEuRS5ELgoKCgpUaGUgZGlhZ3JhbSBiZWxv dyBzaG93cyBhIHByb2NlZHVyZSBvZiBjb3VudGluZyBzb21ldGhpbmcgdXAgdG8gZm91ciByZXBy ZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIEluIHRoaXMgZGlhZ3JhbSwgbG9vcHMgc3Vj aCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2ltcGxpY2l0eSwgdGhvdWdoIHRoZXkgZXhp c3QuIENvdW50aW5nIHVwIGNvcnJlc3BvbmRzIHRvIHNlbGVjdGluZyBhIHN1YmdyYXBoIG9mIGEg ZGlyZWN0ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfTogdGhlIHN1YmdyYXBoIHRoYXQgaGFzIGEg Zm9ybSBvZiB0cmVlIHRoYXQgaW5jbHVkZXMgYWxsIGxlYXZlcyAoY29uc3RhbnRzIGVhY2ggb2Yg d2hpY2ggaXMgYW4gaW5kaXZpZHVhbCkgdG8gYmUgY291bnRlZCwgZm9yIGV4YW1wbGUgdGhlIHBh cnQgb2YgbWFnZW50YSBjb2xvciBpbiB0aGUgZGlhZ3JhbS4KCgoKe2ltZyBmaWxlSWQ9IjEwIiB0 aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEhIyBSZXBlYXRpbmcgaW5uZXIgcXVhbnRpZmlj YXRpb24KCkJlY2F1c2Uge2xvIFBBICcnc3VtdGknJ30gaXMgZGVmaW5lZCwgd2UgY2FuIHJlcGVh dCBpbm5lciBxdWFudGlmaWNhdGlvbiB0byBmb3JtIGFuIGFyZ3VtZW50LgoKXgoKO0V4YW1wbGU6 IGxvIG11bG5vIGthcmR5Z3JpIGN1IGd1bm1hIGxvIHZvIGxvaSBwYWNpIGthcmRhIH5oc34gJydB IGZ1bGwgZGVjayBjb25zaXN0cyBvZiBmb3VyIGdyb3VwcyBvZiB0aGlydGVlbiBjYXJkcy4nJwoK Ozogc3UnbyBkYSB6byd1IGxvaSByZSBsbydpIHJvIG1va2NhIG5vaSBzZXBsaSBweSBub2kgbW9r Y2Ega3UnbyBkYSBjdSByZWxjdWt0YWkgfmhzfiAnJ1R3byBzZXRzIG9mIHBvaW50cyB0aGF0IGFy ZSBlcXVpZGlzdGFudCBmcm9tIGEgcG9pbnQgUCBpcyBhIGRvdWJsZSBjaXJjbGUuJydeCgoKCiEh ISEjIFByb2JsZW1zIG9uIGlubmVyIHF1YW50aWZpY2F0aW9uCgohISEhISMgQ2Fubm90IHNheSB6 ZXJvCgoKCkJlY2F1c2UgYW4gYXJndW1lbnQgZm9ybWVkIGJ5IGdhZHJpIGlzIGEgcGx1cmFsIGNv bnN0YW50LCB7bG8gYnJvZGF9IGltcGxpZXMge3N1J29pIGRhIHpvJ3UgZGEgYnJvZGF9IGFjY29y ZGluZyB0byB0aGUgbG9naWNhbCBheGlvbSBvbiBwbHVyYWwgY29uc3RhbnQgc2hvd24gaW4gKCh8 I0FfbG9naWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIuNikpLiBUaGF0 IGlzIHRvIHNheSwgdGhlIGV4cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBpbXBsaWVzICJ0aGVyZSBh cmUgd2hhdCBhcmUgYnJvZGEsIHdoaWNoIGFyZSBjb3VudGVkIDAiLCB3aGljaCBzZWVtcyBtZWFu aW5nbGVzcy4KCgoKVGhpcyBtZWFucyB0aGF0IG9mZmljaWFsIExvamJhbiBjYW5ub3QgZXhwcmVz cyBuZWdhdGlvbiBvZiBleGlzdGVuY2Ugb2YgcGx1cmFsIHZhcmlhYmxlIHtuYWt1IHN1J29pIGRh fSwgd2hpY2ggaXMgbmV2ZXJ0aGVsZXNzIG5lY2Vzc2FyeSwgZm9yIGV4YW1wbGUgaW4gdGhlIGZv bGxvd2luZyBzaXR1YXRpb246CgoKCl4gbG8geG8gcHJlbnUgY3Ugam1hamkgZ2knZSBqdWtwYSBn aSdlIGNpdGthIH5oc35+LS1+IG5vfnBwfgoKfi9wcH4nJyJIb3cgbWFueSBwZW9wbGUgZ2F0aGVy ZWQsIGNvb2tlZCBhbmQgYXRlPyIgInplcm8uIicnXgoKCgpUaGlzIHJlc3BvbnNlIGlzIGFuIGFi YnJldmlhdGVkIGZvcm0gb2Yge2xvIG5vIHByZW51IGN1IGptYWppIGdpJ2UganVrcGEgZ2knZSBj aXRrYX0uCgoKClRoaXMgcHJvcG9zaXRpb24gbWVhbnMgdGhhdCB7bG8gbm8gcHJlbnV9IHNhdGlz ZmllcyBzZWxicmkge2ptYWppfSBjb2xsZWN0aXZlbHkgYW5kIChqZSkgbm9uLWRpc3RyaWJ1dGl2 ZWx5LCB7anVrcGF9IGNvbGxlY3RpdmVseSBvciAoamEpIGRpc3RyaWJ1dGl2ZWx5LCB7Y2l0a2F9 IG5vbi1jb2xsZWN0aXZlbHkgYW5kIChqZSkgZGlzdHJpYnV0aXZlbHkuIEJlY2F1c2UgaXQgaW5j bHVkZXMgc2VsYnJpIHtqbWFqaX0gdG8gYmUgc2F0aXNmaWVkIG5vbi1kaXN0cmlidXRpdmVseSwg dGhlIHN1bXRpIGNhbm5vdCBiZSByZXBsYWNlZCBieSBuZWdhdGlvbiBvZiBleGlzdGVuY2Ugb2Yg Ym91bmQgc2luZ3VsYXIgdmFyaWFibGUge25ha3Ugc3UnbyBkYX09e25vIGRhfS4gTW9yZW92ZXIs IGJlY2F1c2UgaXQgaW5jbHVkZXMgc2VsYnJpIHtjaXRrYX0gdG8gYmUgc2F0aXNmaWVkIG5vbi1j b2xsZWN0aXZlbHksIHtsb30gb2YgdGhlIHN1bXRpIGNhbm5vdCBiZSByZXBsYWNlZCBieSB7bG9p fT17bG8gZ3VubWEgYmUgbG99LgoKCgpGb3IgbWFraW5nIHN1Y2ggYSBwcm9wb3NpdGlvbiBtZWFu aW5nZnVsLCBpdCBpcyBlc3NlbnRpYWwgdG8gZ2l2ZSBhbiBleHByZXNzaW9uIHtsbyBubyBicm9k YX0gYSBtZWFuaW5nIG9mIG5lZ2F0aW9uIG9mIGV4aXN0ZW5jZSBvZiBwbHVyYWwgdmFyaWFibGUu CgpGb3IgdGhpcyBwdXJwb3NlLCBJIHN1Z2dlc3QgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uIHZh bGlkIGluIHRoZSBjYXNlIHRoYXQgUEE9MCBmb3Ige2xvIFBBIGJyb2RhfS4KCjtVbm9mZmljaWFs IGRlZmluaXRpb24gb2Yge2xvIG5vIGJyb2RhfTp8fAoKbG8gbm8gYnJvZGEgfmhzfnx+aHN+ID1j YSdlIH5oc358fmhzfiBuYWt1IHN1J29pIGRhIHBvaSBrZSdhIGJyb2RhCgp8fAoKCgrvvIhJZiBp dCB3ZXJlIGRlZmluZWQgYXMge25ha3UgbG8gYnJvZGF9LCB0aGUgbmVnYXRpb24gd291bGQgaGF2 ZSBzcGFubmVkIHRoZSB3aG9sZSBwcm9wb3NpdGlvbiwgYW5kIGl0IHdvdWxkIG5vdCBoYXZlIGlt cGxpZWQgcXVhbnRpZmljYXRpb24uIEkgYWJhbmRvbmVkIHRoZXJlZm9yZSBzdWNoIGEgZGVmaW5p dGlvbi4pCgoKCiEhISEhIyBDYW5ub3QgcXVhbnRpZnkgbWF0ZXJpYWwgbm91biBvciBzb21ldGhp bmcKCkF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSkgZXhj bHVkZXMgc3VtdGkgdGhhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxz IGZyb20gZXhwcmVzc2lvbnMgeyhzdSdvKSBOIG1laX0gYW5kIHtsbyBOIGJyb2RhfS4KCgoKQ2Fu IHdlIHVzZSB7cGlQQX0gZm9yIHN1bXRpIHRoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscywgdGhlbj8gTm8uCgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QWN0dWFsbHks IHBpUEEgaXMgZGVmaW5lZCBvbmx5IGZvciBvdXRlciBxdWFudGlmaWNhdGlvbi4pKQoKfHwKCnBp UEEgJydzdW10aScnIH5oc358fmhzfiBsbyBwaVBBIHNpJ2UgYmUgcGEgbWUgJydzdW10aScnCgp8 fAoKQXMgd2UgY2FuIHNlZSBpbiB0aGUgZGVmaW5pdGlvbiwgdGhlIGJvZHkgb2Ygb3V0ZXIgcXVh bnRpZmljYXRpb24gYnkge3BpUEF9IGlzIHBsdXJhbCBjb25zdGFudCB7bG8gcGlQQSBzaSdlfSwg d2hpY2ggaXMgbm90IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUuIEhvd2V2ZXIsIHgyIG9mIHtw aVBBIHNpJ2V9IGlzIHtwYSBtZSAnJ3N1bXRpJyd9LCB0byB3aGljaCAoKEJQRksgU2VjdGlvbjog Z2Fkcml8dGhlIGRlZmluaXRpb24gb2YgUEEgYnJvZGEpKSBpcyBhcHBsaWVkOgoKfHwKClBBIGJy b2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJvZGEgCgp8fAoKQXMgYSByZXN1bHQsIHtwaVBBICcn c3VtdGknJ30gaXMgZGVmaW5lZCBvbmx5IHdoZW4gdGhlcmUgaXMgYW4gaW5kaXZpZHVhbCB0aGF0 IHNhdGlzZmllcyB4MSBvZiB7bWUgJydzdW10aScnfS4gVGhhdCBpcyB0byBzYXksIHdoYXQgaXMg bmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBpcyBleGNsdWRlZCBhbHNvIGZy b20gYW4gZXhwcmVzc2lvbiBvZiBvdXRlciBxdWFudGlmaWNhdGlvbiB3aXRoIHtwaVBBfS4KCgoK V2hhdCB3b3VsZCBiZSBpZiB7cGlQQX0gd2VyZSBkZWZpbmVkIGFsc28gZm9yIGlubmVyIHF1YW50 aWZpY2F0aW9uPwoKSW4gdGhhdCBjYXNlLCB0aGUgZm9sbG93aW5nIGRlZmluaXRpb24gd291bGQg YmUgZGVzaXJhYmxlIHRvIGNvbmZvcm0gdGhlIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIG91dGVy IHF1YW50aWZpY2F0aW9uOgoKOyBVbm9mZmljaWFsIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlu bmVyIHF1YW50aWZpY2F0aW9uOnx8CgpsbyBwaVBBIGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+ fH5oc34gem8nZSBub2kga2UnYSBwaVBBIHNpJ2UgYmUgbG8gcGEgYnJvZGEKCnx8CgpUaGlzIGRl ZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9uIHN0aWxsIGV4Y2x1ZGVz IHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyB1bmxlc3Mge2xv IHBhIGJyb2RhfSBpcyBkZWZpbmVkIGluIGFub3RoZXIgd2F5IHNvIHRoYXQgaXQgY2FuIGJlIHdo YXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKV2h5IGRvbid0 IHdlIHVzZSB7UEEgc2knZX0gdG8gZXhwcmVzcyBxdWFudGlmaWNhdGlvbiBvZiB3aGF0IGlzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHM/IAoKSXQgaXMgcG9zc2libGUsIGJ1 dCAoKEJQRksgU2VjdGlvbjogTnVtZXJpYyBzZWxicml8QlBGSydzIGN1cnJlbnQgZGVmaW5pdGlv biBvZiB7c2knZX0pKSBkZXBlbmRzIG9uIHtwYWdidX06Cgp8fAoKeDEgbnVtYmVyIHNpJ2UgeDIg fmhzfnx+aHN+IHgxIHBhZ2J1IHgyIGdpJ2Uga2xhbmkgbGkgbnVtYmVyIGxvIHNlIGdyYWR1IGJl IHgyCgp8fAoKSWYgd2UgaW50ZXJwcmV0IHtwYWdidX0gc28gdGhhdCB4MSBpcyBub3QgbGFyZ2Vy IHRoYW4geDIgKGFuZCB0aGlzIGlzIG9yZGluYXJ5IGludGVycHJldGF0aW9uKSwgW2h0dHBzOi8v Z3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L25VYlppd21CMk0wSnx7 c2knZX0gaXMgdmVyeSBpbmNvbnZlbmllbnQgYmVjYXVzZSB0aGUgdW5pdCBzaG91bGQgYmUgY2hh bmdlZCBldmVyeSB0aW1lIGNvdW50aW5nIHVwLl0gSWYge3NpJ2V9IHdlcmUgZGVmaW5lZCBzbyB0 aGF0IFBBIG9mIHtQQSBzaSdlfSBjb3VsZCBiZSBsYXJnZXIgdGhhbiAxLCB7c2knZX0gd291bGQg aGF2ZSBiZWVuIHByYWdtYXRpYyBmb3IgcXVhbnRpZmljYXRpb24gb2Ygd2hhdCBpcyBuZWl0aGVy IGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpCZXNpZGVzIHRob3NlIGNvbnNpZGVy YXRpb25zLCBpZiB3ZSBhYmFuZG9uIEF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9u fFNlY3Rpb24gMy4xKSksIERlZmluaXRpb25zIChEMSkgKEQyKSAoRDMpIGNhbiBiZSBhcHBsaWVk IHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCkluIHRo aXMgY2FzZSwgYSBzcGVha2VyIHNob3VsZCBzZWxlY3Qgc29tZSBwbHVyYWwgY29uc3RhbnRzIHtr bydhLCBrbydlLCAuLi59LCBhbmQgZGVjaWRlIHRoYXQge1tba28nYS9rbydlLy4uLl0gc3UnbyBw YSBtZWl9OyB0aGUgc2VsZWN0aW9uIG11c3QgYmUgZG9uZSBhdHRlbnRpdmVseSBzbyB0aGF0IHJl ZmVyZW50cyBvZiBwbHVyYWwgY29uc3RhbnRzIHRoYXQgYXJlIHtwYSBtZWl9IGRvIG5vdCBvdmVy bGFwIHdpdGggZWFjaCBvdGhlci4KClRob3NlIHByZXBhcmF0aW9ucyBvZiB7a28nYSwga28nZSwg Li4ufSBhbmQgKEQyKSBpbXBseSBvbmx5Cgp8fAoKZ2FuYWkgW1trbydhL2tvJ2UvLi4uXSBwYSBt ZWkgCgpnaSBybydvaSBkZSBwb2kgbWUgW1trbydhL2tvJ2UvLi4uXSB6byd1IGRlIG1lIFtba28n YS9rbydlLy4uLl0KCnx8CgpVbmRlciB0aGVzZSBjb25kaXRpb25zLCB0aGVyZSBpcyBubyBuZWVk IHRoYXQgd2hhdCBpcyB4MSBvZiB7cGEgbWVpfSBpcyBhbiBpbmRpdmlkdWFsLgoKCgpXaGVuIHdl IHVzZSBEZWZpbml0aW9ucyAoRDEpIChEMikgKEQzKSB3aXRob3V0IHVzaW5nIEF4aW9tIDEgb2Yg KCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSksIGEgY29uZGl0aW9uIHtnaSdl IHN1J28gcGEgbWVpfSBtdXN0IGJlIGFkZGVkIHRvIHtkZX0gb2YgKEQxKe+8iFdoZW4gQXhpb20g MSBpcyB1c2VkLCByZWZlcmVudHMgaW4gdGhlIGRvbWFpbiBvZiB2YXJpYWJsZSB7ZGV9IHNhdGlz ZmllcyB0aGlzIGNvbmRpdGlvbiBhdXRvbWF0aWNhbGx5KS4gCgo7VW5vZmZpY2lhbCBkZWZpbml0 aW9ucyB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgQXhpb20gMSBpcyBhYmFuZG9uZWQ6fHwKCihE MScpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHN1J29pIGRhIHBv aSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2EgZ2knZSBzdSdvIHBhIG1laSB6byd1 IGdlIGRhIHN1J28gTi0xIG1laSBnaW5haSBkZSBtZSBkYQoKKEQyKSBrbydhIE4gbWVpIH5oc358 fmhzfiA9Y2EnZSB+aHN+fH5oc34ga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1l aSAKCihEMykgbG8gUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB6bydlIG5vaSBr ZSdhIFBBIG1laSBnaSdlIGJyb2RhCgp8fAoKVXNpbmcgdGhlc2UgZGVmaW5pdGlvbnMsIGlubmVy IHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRp dmlkdWFscyBiZWNvbWVzIHBvc3NpYmxlLiBNb3Jlb3ZlciwgIlVub2ZmaWNpYWwgZGVmaW5pdGlv biBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb24iIGRpc2N1c3NlZCBhYm92ZSBiZWNv bWVzIGFibGUgdG8gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBu b3IgaW5kaXZpZHVhbHMuCgoKClRoZSBkaWFncmFtIGJlbG93IHNob3dzIGEgcHJvY2VkdXJlIG9m IGNvdW50aW5nIHVwIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFs cyByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIEluIHRoaXMgZGlhZ3JhbSwgbG9v cHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2ltcGxpY2l0eSwgdGhvdWdoIHRo ZXkgZXhpc3QuIEFtb25nIGluZmluaXRlIG51bWJlciBvZiB2ZXJ0aWNlcyAocGx1cmFsIGNvbnN0 YW50cyksIHRoZSB2ZXJ0aWNlcyB0aGF0IGEgc3BlYWtlciBzZWxlY3RlZCBhcyB7c3UnbyBwYSBt ZWl9IGFyZSBjb2xvcmVkIHBpbmsuIENvdW50aW5nIHVwIGNvcnJlc3BvbmRzIHRvIHNlbGVjdGlu ZyBhIHRyZWUgdGhhdCBpcyBhIHN1YmdyYXBoIG9mIGEgZGlyZWN0ZWQgZ3JhcGggZm9ybWVkIHdp dGgge21lfSwgZm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgYmx1ZSBjb2xvciBpbiB0aGUgZGlhZ3Jh bS4KCgoKe2ltZyBmaWxlSWQ9IjkiIHRodW1iPSJ5IiByZWw9ImJveFtnXSJ9CgoKCiEhISMgT3V0 ZXIgcXVhbnRpZmljYXRpb24KCigoQlBGSyBTZWN0aW9uOiBnYWRyaXxCUEZLIGRlZmluZXMgb3V0 ZXIgcXVhbnRpZmljYXRpb24pKSBhcyBmb2xsb3dzOgoKfHwKClBBICcnc3VtdGknJyB+aHN+fH5o c34gUEEgZGEgcG9pIGtlJ2EgbWUgJydzdW10aScnCgpQQSBicm9kYSB+aHN+fH5oc34gUEEgZGEg cG9pIGJyb2RhIAoKcGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIHBpUEEgc2knZSBiZSBwYSBt ZSAnJ3N1bXRpJycKCnx8CgoKCk91dGVyIHF1YW50aWZpY2F0aW9uIGV4Y2VwdCB7cGlQQX0gZm9y bXMge1BBIGRhfSwgd2hpY2ggaXMgb2ZmaWNpYWxseSBhIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxl LiBJdCBpbXBsaWVzIHRoYXQgdGhlc2UgYXJndW1lbnRzIHNhdGlzZnkgYSBwcmVkaWNhdGUgX19k aXN0cmlidXRpdmVseV9fLiBGb3IgZXhhbXBsZSwgaXQgaXMgbWVhbmluZ2xlc3MgdG8gdXNlIHtj aSBsbyBwcmVudX0gYXMgeDEgb2Yge2ptYWppfSAoZ2F0aGVyKSwgYmVjYXVzZSBpdCBpcyBub3Qg dGhlIGNhc2UgdGhhdCBlYWNoIG9mIHRocmVlIHBlb3BsZSBzYXRpc2ZpZXMgdGhlIHByZWRpY2F0 ZSAiZ2F0aGVyIi4KCgoKSG93ZXZlciwgaWYgd2UgdXNlIHVub2ZmaWNpYWwgcGx1cmFsIHF1YW50 aWZpZXJzIHtybydvaX0gb3Ige3N1J29pfSBmb3IgUEEsIG91dGVyIHF1YW50aWZpY2F0aW9uIGNh biBmb3JtIGJvdW5kIHBsdXJhbCB2YXJpYWJsZS4gRm9yIGV4YW1wbGUsCgpec3Unb2kgcHJlbnUg Y3Ugam1hamkgfmhzfiB0aGVyZSBhcmUgcGVvcGxlIHdobyBnYXRoZXIuXgoKVGhpcyBwcm9wb3Np dGlvbiBpcyBpbXBsaWVkIGJ5IGEgcHJvcG9zaXRpb24gaW5jbHVkaW5nIHBsdXJhbCBjb25zdGFu dAoKXmxvIHByZW51IGN1IGptYWppIH5oc34gUGVvcGxlIGdhdGhlci5eCgp3aXRoIHRoZSBsb2dp Y2FsIGF4aW9tIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50fFNlY3Rp b24gMi4yLjYpKS4KCgoKe1BBIGxvIGJyb2RhfSBkaWZmZXJzIGZyb20ge1BBIGJyb2RhfSBpbiBk b21haW4gb2YgcmVmZXJlbnRzIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIHRvIGJlIGNvdW50 ZWQuIFRoZSBkZWZpbml0aW9ucyBvZiBvdXRlciBxdWFudGlmaWNhdGlvbiBhcmUgYXBwbGllZCB0 byB0aGVtIGFzIGZvbGxvd3M6Cgp8fAoKUEEgbG8gYnJvZGEgfmhzfnx+aHN+IFBBIGRhIHBvaSBr ZSdhIG1lIGxvIGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWluIG9mIGJvdW5kIHNpbmd1bGFyIHZh cmlhYmxlIGlzIGEgcmVmZXJlbnQgb2YgcGx1cmFsIGNvbnN0YW50IHtsbyBicm9kYX0gaW4gdGhl IHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQgdG8gYmUgUEEKClBBIGJyb2RhIH5o c358fmhzfiBQQSBkYSBwb2kga2UnYSBicm9kYSB+aHN+fH5oc34gVGhlIGRvbWFpbiBvZiBib3Vu ZCBzaW5ndWxhciB2YXJpYWJsZSBpcyBhbGwgdGhhdCBhcmUge2Jyb2RhfSBpbiB0aGUgdW5pdmVy c2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0byBiZSBQQQoKfHwKCgoKXgoKO0V4YW1wbGUg MTogcm8gam1pdmUgYmEgbW9yc2kgfmhzfiAnJ0FsbCBsaXZpbmcgdGhpbmdzIHdpbGwgZGllLicn Cgo7RXhhbXBsZSAyOiBybyBsbyBwcmVudSB0aSBrbGFtYSB+aHN+ICcnQWxsIHRoZSBwZW9wbGUg Y29tZSBoZXJlLicnXgoKRXhhbXBsZSAxIG1lbnRpb25zIGFsbCB7am1pdmV9IGluIHRoZSB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UuIEluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugb2YgRXhhbXBs ZSAyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhhdCB0aGVyZSBhcmUge3ByZW51fSBv dGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB0aGUgcGx1cmFsIGNvbnN0YW50IHtsbyBwcmVudX0u CgoKClRoZSBvdXRlciBxdWFudGlmaWNhdGlvbiBieSB7cGlQQX0gZm9ybXMgcGx1cmFsIGNvbnN0 YW50IHtsbyBwaVBBIHNpJ2V9LiBIb3dldmVyLCB4MiBvZiB7cGlQQSBzaSdlfSBpcyBib3VuZCBz aW5ndWxhciB2YXJpYWJsZSB7cGEgbWUgJydzdW10aScnfS4ge3BpfSBpbiB0aGlzIGRlZmluaXRp b24gbWVhbnMgIm5vdCBsYXJnZXIgdGhhbiAxIjsgcHJhY3RpY2FsbHksIHtmaSd1fSBvciBzb21l dGhpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB7cGl9CgoKCiEhISEjIENvbWJpbmF0aW9uIG9m IG91dGVyIGFuZCBpbm5lciBxdWFudGlmaWNhdGlvbnMKClRoZSBkZWZpbml0aW9ucyBvZiBpbm5l ciBhbmQgb3V0ZXIgcXVhbnRpZmljYXRpb24gaW1wbHkgdGhlIGZvbGxvd2luZyBpbnRlcnByZXRh dGlvbnM6Cgp8fAoKTSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBNICh3aGljaCBzYXRpc2ZpZXMg YSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoK TSBsb2kgW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRl IGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gZ3VubWF9IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2Rh fSBbW3RoYXQgYXJlIE5dCgpNIGxvJ2kgW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2ggc2F0 aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gc2VsY21pfSB0aGF0IGNv bnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsbyBbW05dIGJyb2RhIH5o c358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBhcnQgb2Ygb25lIG9mIHtsbyBicm9k YX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsb2kgW1tOXSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkg e3BpIE0gc2knZX0gb2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8gZ3VubWF9IHRoYXQgY29uc2lzdHMg b2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBNIGxvJ2kgW1tOXSBicm9kYSB+aHN+fH5o c34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IChzdWJzZXQpIG9mIG9uZSBvZiB7bG8g c2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKfHwKCgoK QW1vbmcgdGhlbSwge00gbG8gW1tOXSBicm9kYX0gYW5kIHtwaSBNIGxvaSBbW05dIGJyb2RhfSBj YW4gZXhwcmVzcyBzb21lIG9mIHBsdXJhbCBudW1iZXIgb2YgdGhpbmdzLgoKXgoKO0V4YW1wbGUg MTogcmUgbG8gW1tjaV0gbWxhdHUgbWkgdmlza2EgfmhzfiAnJ1R3byBbW29mIHRocmVlXSBjYXRz IHNlZSBtZS4nJwoKO0V4YW1wbGUgMjogcmUgZmkndSBjaSBsb2kgW1t2ZWkgY2kgcGknaSBueSAo dmUnbyldIG1sYXR1IG1pIHZpc2thIH5oc34gJydUd28gdGhpcmQgb2YgW1szbl0gY2F0cyBzZWUg bWUuJydeCgoKCntyZSBsbyBbW2NpXSBtbGF0dX0gb2YgRXhhbXBsZSAxIHJlZmVycyB0byB0d28g Y2F0cyBhbW9uZyBbW3RocmVlXSBjYXRzIHRoYXQgYXJlIHJlZmVyZW50IG9mIHtsbyBbW2NpXSBt bGF0dX0uCgpJZiB0aGUgaW5uZXIgcXVhbnRpZmllciB7Y2l9IGlzIG5vdCBzYWlkLCBpdCBpcyB1 bmNsZWFyIGhvdyBtYW55IGNhdHMgYXJlIHJlZmVycmVkIHRvIGJ5IHtsbyBtbGF0dX07IGluIGFu eSBjYXNlIHtyZSBsbyBtbGF0dX0gcmVmZXJzIHRvIHR3byBvZiB0aGVtLgoKCgpJbiBFeGFtcGxl IDIsIHRoZSBhcmd1bWVudCBpcyBmb3JtZWQgYnkge2xvaX0sIGFuZCB0aGUgcmVmZXJlbnQgaXMg YWN0dWFsbHkge2xvIGd1bm1hfS4gRXhwYW5kaW5nIEV4YW1wbGUgMiBhY2NvcmRpbmcgdG8gdGhl IGRlZmluaXRpb25zIG9mIHtsb2l9IGFuZCB7cGlQQSAnJ3N1bXRpJyd9LAoKXgoKO0V4YW1wbGUg Mi0xOiBsbyByZSBmaSd1IGNpIHNpJ2UgYmUgcGEgbWUgbG8gZ3VubWEgYmUgbG8gW1t2ZWkgY2kg cGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thXgoKVGhhdCBpcyB0byBzYXksIHtyZSBmaSd1 IGNpIGxvaS4uLn0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiBhbiBpbmRpdmlkdWFsIHtwYSBtZSBs byBndW5tYS4uLn0uIFRoaXMge2xvIGd1bm1hfSBjb25zaXN0cyBvZiB7dmVpIGNpIHBpJ2kgbnkg KHZlJ28pfSBjYXRzLiAKCklmIHRoZSBpbm5lciBxdWFudGlmaWVyIGlzIG5vdCBzYWlkLCBpdCBp cyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgY29uc3RpdHV0ZSB7bG8gZ3VubWF9IHRoYXQgaXMge2xv aSBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBmaSd1IGNpIGxvaSBtbGF0dX0gcmVmZXJzIHRvIHR3 byB0aGlyZCBvZiB7bG8gZ3VubWF9LiBIb3dldmVyLCAKCl5yZSBmaSd1IGNpIGxvaSBtbGF0dSBt aSB2aXNrYV4KCmlzIG1lYW5pbmdmdWwgb25seSB3aGVuIHtsb2kgbWxhdHV9IGNvbnNpc3RzIG9m IDNuIGNhdHMsIGJlY2F1c2UgaXQgaXMgbm90IG9yZGluYXJ5IHRvIGludGVycHJldCB0aGF0IGEg ZnJhZ21lbnQgb2YgYSBjYXQgc2F0aXNmaWVzIHRoZSBwcmVkaWNhdGUge3Zpc2thfS4KCkFjY29y ZGluZyB0byBCUEZLJ3MgZGVmaW5pdGlvbiwge2xvaX0gY2Fubm90IGZvcm0gYSBwbHVyYWwgY29u c3RhbnQgdGhhdCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWNvbGxlY3RpdmVseS4gSWYgeW91 IHdhbnQgdG8gbWVhbiAiY2F0cyBzZWUgbWUgbm9uLWNvbGxlY3RpdmVseSIsIGF2b2lkIHtsb2l9 LCBvciB1c2Uge2x1J2F9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25f YmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKToKCl5sdSdhIHJl IGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgoKCgohISEhIyBCb3VuZCB2YXJpYWJsZXMgYW5k IGNvbnN0YW50cyBpbiBhIHN0YXRlbWVudAoKV2hlbiBib3RoIGJvdW5kIHZhcmlhYmxlcyBhbmQg Y29uc3RhbnRzIGFwcGVhciBpbiBhIHN0YXRlbWVudCwgdGhlIGNvbnN0YW50cyBkbyBub3QgbmVj ZXNzYXJpbHkgc3BhbiBvdmVyIGFsbCBib3VuZCB2YXJpYWJsZXMuIEFsdGhvdWdoIHRoZXkgYXJl IGNhbGxlZCAiY29uc3RhbnRzIiwgaXQgaXMgbm90IGdlbmVyYWxseSBkZXRlcm1pbmVkIHdoZXRo ZXIgdGhleSByZWZlciB0byBjb21tb24gcmVmZXJlbnRzIGZvciBhbGwgcmVmZXJlbnRzIGluIGRv bWFpbnMgb2YgdmFyaWFibGVzLCBvciB0aGV5IHJlZmVyIHRvIGRpZmZlcmVudCByZWZlcmVudHMg ZGVwZW5kZW50IG9uIHJlZmVyZW50cyBpbiBkb21haW5zIG9mIHZhcmlhYmxlcy4gVGhlIHJlYXNv biBmb2xsb3dzIGJlbG93IChbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9sb2piYW4v UkF0RTdZay1kcXcvQUJEZk9mdW96V0VKfERpc2N1c3Npb25dKS4KCgoKV2hlbiBzb21lIHN1bXRp IG9mIHRlcmJyaSBpbiBhIHN0YXRlbWVudCBhcmUgb21pdHRlZCwgaXQgaXMgY29uc2lkZXJlZCB0 aGF0IHRoZXJlIGFyZSBpbXBsaWNpdCB7em8nZX0gaW4gdGhvc2UgcGxhY2VzIChbaHR0cDovL2Rh Zy5naXRodWIuaW8vY2xsLzcvNy98Q0xMIDcuN10pLgoKRm9yIGV4YW1wbGUsCgpecm8gbWxhdHUg Y3UgamJlbmF+cHB+Cgp+L3BwfiAgJydBbGwgY2F0cyBhcmUvd2lsbCBiZSBib3JuLicnXgoKc2Vl bXMgdG8gYmUgdHJ1ZSBmcm9tIGEgc3RhbmRhcmQgcG9pbnQgb2Ygdmlldy4gQWNjb3JkaW5nIHRv IGRlZmluaXRpb24gb2YgdGVyYnJpIG9mIHtqYmVuYX0sIGl0IGlzIGNvbnNpZGVyZWQgdGhhdCB0 aHJlZSBzdW10aSBhcmUgb21pdHRlZCwgYW5kIHRoaXMgc3RhdGVtZW50IGhhcyB0aGUgc2FtZSBt ZWFuaW5nIGFzCgpecm8gbWxhdHUgY3UgamJlbmEgem8nZSB6bydlIHpvJ2VeCgppbiB3aGljaCB7 em8nZX0gYXJlIGV4cGxpY2l0LiAKClVubGVzcyBhbGwgY2F0cyBpbiB0aGlzIHVuaXZlcnNlIG9m IGRpc2NvdXJzZSBhcmUvd2lsbCBiZSBib3JuIHRvIGNvbW1vbiBwYXJlbnRzIGF0IHRoZSBzYW1l IHRpbWUgYXQgdGhlIHNhbWUgcGxhY2UsIHRoZXNlIHt6bydlfSBjYW5ub3QgYmUgY29uc2lkZXJl ZCBhcyBjb21tb24gY29uc3RhbnRzIGZvciBhbGwgcmVmZXJlbnRzIGluIGEgZG9tYWluIG9mIHty byBtbGF0dX0uIEluIG9yZGVyIHRvIG1ha2Ugc3VjaCBhbiBleHByZXNzaW9uIGxpa2Uge3JvIG1s YXR1IGN1IGpiZW5hfSBoYXZlIGludGVuZGVkIG1lYW5pbmcsICJjb25zdGFudHMiIG9mIExvamJh biBjYW4gYmUgZGVwZW5kZW50IG9uIHJlZmVyZW50cyBpbiBkb21haW5zIG9mIGJvdW5kIHZhcmlh Ymxlcy4KCgoKIkNvbnN0YW50cyIgaW4gdGhpcyBtZWFuaW5nIGNvcnJlc3BvbmQgdG8gU2tvbGVt IGZ1bmN0aW9ucyBpbiBTa29sZW0gbm9ybWFsIGZvcm1zIG9mIHByZWRpY2F0ZSBsb2dpYy4gVGhl IHRhYmxlIGJlbG93IHNob3dzIGNvbXBhcmlzb24gb2YgaW50ZXJwcmV0YXRpb25zIGJldHdlZW4g cHJlZGljYXRlIGxvZ2ljLCB4b3JsbyBvbiB3aGljaCB0aGlzIGNvbW1lbnRhcnkgZGVwZW5kcyBh bmQgaW1wbGljaXQgcXVhbnRpZmllciAoW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC82LzEvfENM TCB2ZXIuMS4wIENoYXB0ZXIgNl0pIHdoaWNoIHdhcyBhYm9saXNoZWQuIFRoZSBleHByZXNzaW9u cyB0aGF0IGhhdmUgdGhlIHNhbWUgdHJ1dGggdmFsdWUgYXJlIGFsaWduZWQgaW4gdGhlIHNhbWUg Y29sdW1uLiBVcHBlciBjYXNlIFkgcmVwcmVzZW50cyBhIHBsdXJhbCB2YXJpYWJsZS4gVGhlIHJv dyBvZiB6bydlK3hvcmxvIHNob3dzIHVub2ZmaWNpYWwgc3VnZ2VzdGlvbiBvZiBpbnRlcnByZXRh dGlvbi4gSW4gdGhlIGdyYXkgcGFydCBpbiB0aGUgcm93IG9mIFByZW5leCBub3JtYWwsIHVub2Zm aWNpYWwgZXhwcmVzc2lvbnMgd2l0aCBhbiBleHBlcmltZW50YWwgY21hdm8ge3N1J29pfSBhcmUg c2hvd24uIChDbGljayBvbiB0aGUgdGFibGUgdG8gZW5sYXJnZS4pCgp7aW1nIGZpbGVJZD0iMTIi IHRodW1iPSJ5IiBsaW5rPSJkaXNwbGF5MTEiIHJlbD0iYm94W2ddIn0KCgoKISEhIyBSZWxhdGlv biBiZXR3ZWVuIGx1J2EsIGx1J28sIGx1J2kgYW5kIGdhZHJpCgooKEJQRksgU2VjdGlvbjogSW5k aXJlY3QgUmVmZXJlcnN8QlBGSyBkZWZpbmVzKSkge2x1J2F9LCB7bHUnb30sIHtsdSdpfSBvZiBM QWhFIGFzIGZvbGxvd3M6Cgp8fAoKbHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIG1lICcnc3Vt dGknJyB+aHN+fH5oc34gbG8gY21pbWEgYmUgJydzdW10aScnIFtbbm9pIHNlbGNtaV0KCmx1J28g JydzdW10aScnIH5oc358fmhzfiBsb2kgbWUgJydzdW10aScnCgpsdSdpICcnc3VtdGknJyB+aHN+ fH5oc34gbG8naSBtZSAnJ3N1bXRpJycKCnx8CgpIb3dldmVyLCBndWVzc2luZyBmcm9tIHRoZSBF bmdsaXNoIGRlZmluaXRpb25zIG9uIHRoZSBzYW1lIHBhZ2UsIHRoZSBkZWZpbml0aW9uIG9mIHts dSdhfSBpcyB1bnNhdGlzZmFjdG9yeSwgYW5kIHRoYXQgb2Yge2x1J299IGhhcyBzb21lIHByb2Js ZW0uCgoKCntsdSdhfSBleHRyYWN0cyB4MiBvZiB7c2VsY21pfSBmcm9tIHN1bXRpIHRoYXQgaXMg e2xvIHNlbGNtaX0sIGFuZCB4MiBvZiB7Z3VubWF9IGZyb20gc3VtdGkgdGhhdCBpcyB7bG8gZ3Vu bWF9LiBNb3Jlb3Zlciwge2x1J2F9IG1ha2VzIGV4cGxpY2l0IHRoYXQgdGhlIHN1bXRpIHNhdGlz ZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRpdmVseSBhbmQgbm9uLWNvbGxlY3RpdmVseS4gT24g dGhlIG90aGVyIGhhbmQsIGFjY29yZGluZyB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG99LCB7bG8g bWUgJydzdW10aScnfSBkb2VzIG5vdCBpbXBseSAiZGlzdHJpYnV0aXZlbHkgYW5kIG5vbi1jb2xs ZWN0aXZlbHkiLgoKCgp7bHUnb30gbWFrZXMgZXhwbGljaXQgdGhhdCB0aGUgc3VtdGkgc2F0aXNm aWVzIGEgcHJlZGljYXRlIG5vbi1kaXN0cmlidXRpdmVseSBhbmQgY29sbGVjdGl2ZWx5LiBPbiB0 aGUgb3RoZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIHtsb2l9LCB7bG9p IG1lICcnc3VtdGknJ30gc2F0aXNmaWVzIGEgcHJlZGljYXRlIGNvbGxlY3RpdmVseSwgYnV0IHN0 aWxsIHVuY2xlYXIgaWYgaXQgZG9lcyBub24tZGlzdHJpYnV0aXZlbHkuIEZvciBjb25zaXN0ZW5j eSwgaXQgd291bGQgYmUgYmV0dGVyIHRvIGFkZCAie2xvaSBicm9kYX0gaW1wbGllcyB0aGF0IHJl ZmVyZW50IG9mIHgxIG9mIGJyb2RhIGNvbGxlY3RpdmVseSBhbmQgbm9uLWRpc3RyaWJ1dGl2ZWx5 IHNhdGlzZmllcyBhIHByZWRpY2F0ZSIgdG8gdGhlIGRlZmluaXRpb24gb2Yge2xvaX0uCgoKCkFz IGEgY29uY2x1c2lvbiBvZiB0aGlzIHNlY3Rpb24sIEkgc3VnZ2VzdCB0byByZS1kZWZpbmUge2x1 J2F9IGFzIGZvbGxvd3M6Cgo7IFVub2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7bHUnYX06fHwKCmx1 J2EgJydzdW10aScnIH5oc358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycgbm9pIHNlbGNtaSBr dSBvbmFpIGxvIHNlIGd1bm1hIGJlICcnc3VtdGknJyBub2kgZ3VubWEga3Ugb25haSBsbyBtZSAn J3N1bXRpJycga3UgfnBwfgoKfi9wcH4gfmhzfiB2dSdvIG5vaSBzdSdvIGRhIHpvJ3UgZGEgbWUg a2UnYSBnaSdlIG5vJ2EKCnx8CgpJbiB7bm9pfSBjbGF1c2UgYWZ0ZXIge3Z1J299LCBpdCBpcyBt YWRlIGV4cGxpY2l0IHRoYXQgdGhlIHJlZmVyZW50IG9mIHtsdSdhICcnc3VtdGknJ30gZGlzdHJp YnV0aXZlbHkgc2F0aXNmaWVzIHRoZSBzZW50ZW5jZSB0aGF0IGluY2x1ZGVzIHRoaXMgc3VtdGku CgoKCiEhISMgUmVsYXRpb24gYmV0d2VlbiBqbyd1LCBqb2ksIGNlIGFuZCBnYWRyaQoKKChCUEZL IFNlY3Rpb246IE5vbi1sb2dpY2FsIENvbm5lY3RpdmVzfEFjY29yZGluZyB0byBCUEZLIFNlY3Rp b24pKSB7am8ndX0sIHtqb2l9IGFuZCB7Y2V9IG9mIHNlbG1hJ28gSk9JIGFyZSBkZWZpbmVkIGFz IGZvbGxvd3M6fHwKCl9fWF9fIGpvJ3UgX19ZX18gfmhzfnx+aHN+IGxvIHN1em1laSBub2kgX19Y X18gLmUgX19ZX18gLmUgbm8gZHJhdGEgYmUgX19YX18gLmUgX19ZX18gY3UgbWUga2UnYQoKX19Y X18gam9pIF9fWV9fIH5oc358fmhzfiBsbyBndW5tYSBiZSBfX1hfXyAuZSBfX1lfXyAuZSBubyBk cmF0YSBiZSBfX1hfXyAuZSBfX1lfXwoKX19YX18gY2UgX19ZX18gfmhzfnx+aHN+IGxvIHNlIGNt aW1hIGJlIF9fWF9fIC5lIF9fWV9fIC5lIG5vIGRyYXRhIGJlIF9fWF9fIC5lIF9fWV9fCgp8fAoK VGhleSBjb3JyZXNwb25kIHJlc3BlY3RpdmVseSB0byB7bG99LCB7bG9pfSwge2xvJ2l9IG9mIGdh ZHJpLiBUaGV5IGNvbm5lY3QgdHdvIHN1bXRpOiB7am8ndX0gZm9ybXMgYSBwbHVyYWwgY29uc3Rh bnQsIHtqb2l9IGEgbm9uLWRpc3RyaWJ1dGl2ZSBwbHVyYWwgY29uc3RhbnQsIHtjZX0gYSBwbHVy YWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gc2V0KHMpIHRoYXQgY29uc2lzdChzKSBvZiB0aGUg c3VtdGkgdGhhdCB7Y2V9IGNvbm5lY3RzLiBJbiB0aGUgRW5nbGlzaCBkZWZpbml0aW9uIG9mIHtq b2l9IG9mIEJQRkssICJub24tZGlzdHJpYnV0aXZlIiBpcyBtZW50aW9uZWQuIFRoaXMgZmFjdCBh bHNvIHN1cHBvcnRzIHRoZSBzdWdnZXN0aW9uIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2x1X2Ff bHVfb19sdV9pX2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpIHRvIGFkZCAie2xvaSBicm9kYX0gaW1w bGllcyB0aGF0IHJlZmVyZW50IG9mIHgxIG9mIGJyb2RhIGNvbGxlY3RpdmVseSBhbmQgbm9uLWRp c3RyaWJ1dGl2ZWx5IHNhdGlzZmllcyBhIHByZWRpY2F0ZSIgdG8gdGhlIGRlZmluaXRpb24gb2Yg e2xvaX0uCgoKCkV2ZW4gaWYgX19YX18gb3IgX19ZX18gYXJlIGJvdW5kIHZhcmlhYmxlcywgdGhl c2UgY29ubmVjdGl2ZXMgZm9ybSBjb25zdGFudHMuIEluIHRoaXMgY2FzZSwgaXQgaXMgbm90IGRl dGVybWluZWQgd2hldGhlciB0aGUgZm9ybWVkIGNvbnN0YW50cyBkZXBlbmQgb24gX19YX18gYW5k IF9fWV9fLCBvciB0aGV5IGFyZSBjb21tb24gdG8gYWxsIF9fWF9fIGFuZCBfX1lfXyBpbiB0aGVp ciBkb21haW5zLiBTZWUgKCh8I0JvdW5kX3ZhcmlhYmxlc19hbmRfY29uc3RhbnRzX2luX2Ffc3Rh dGVtZW50fFNlY3Rpb24gMy4yLjIpKSBmb3IgZGV0YWlsLgoKCgpCZWNhdXNlIHRoZXkgYXJlIGNt YXZvIGluIHNlbG1hJ28gSk9JLCB0aGV5IGNhbiBjb25uZWN0IHdoYXQgYXJlIG5vdCBzdW10aSwg YnV0IHRoZSBtZWFuaW5ncyBpbiB0aGlzIHVzYWdlIGFyZSBub3Qgb2ZmaWNpYWxseSBkZWZpbmVk LiBUaGV5IGNhbiBmb3JtIGFsc28gZm9yZXRob3VnaHQgY29ubmVjdGl2ZSB7Sk9JIGdpIF9fWF9f IGdpIF9fWV9ffS4gV2hlbiB0aGUgZm9yZXRob3VnaHQgY29ubmVjdGl2ZXMgYXJlIHVzZWQgZm9y IHN1bXRpLCB0aGV5IGZvcm0gdGhlIHNhbWUgY29uc3RhbnRzIGFzIHRoZSBhZnRlcnRob3VnaHQg dXNhZ2UgZGVmaW5lZCBhYm92ZS4KCgoKISEjIE5vdGVzCgpUaGlzIHNlY3Rpb24gY29uc2lzdHMg b2Ygbm90ZXMgb2YgdGhlIGF1dGhvciBndXNrYW50LCBhbmQgaXQgaXMgbm90IGF0IGFsbCBpbXBv cnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgZ2FkcmkuCgoKCiEhISMgQWJvdXQgb250b2xvZ3kKCl4o KEJQRksgU2VjdGlvbjogZ2Fkcml8JydQb3NpdGl2ZSBpbXBhY3Q6IFNvbWUgdXNhZ2VzIHRoYXQg bWFrZSBsaXR0bGUgc2Vuc2Ugd2l0aCB7bG99PXtzdSdvfSBiZWNvbWUgdmFsaWRhdGVkLicnKSkg YWNjb3JkaW5nIHRvIEJQRksuXgoKCgp7bG99PXtzdSdvfSB3YXMgYWJhbmRvbmVkLCBidXQgYmVj YXVzZSBvZiB0aGUgZmFjdCB0aGF0IHtsbyBicm9kYX0gaXMgYSBwbHVyYWwgY29uc3RhbnQsIGFu ZCBiZWNhdXNlIG9mIGEgbG9naWNhbCBheGlvbSBvZiBwbHVyYWwgY29uc3RhbnQgaW4gKCh8I0Ff bG9naWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIuNikpLCB7bG8gYnJv ZGEgY3UgYnJvZGV9IGltcGxpY2l0bHkgaW1wbGllcyB7c3Unb2kgZGEgYnJvZGV9LgoKCgohISEj IGNsYXh1IHgyCgpeKChCUEZLIFNlY3Rpb246IGdhZHJpfGxlIGNtYW5hIF9fbG9fXyBjaWRqYSBi YSBjbGF4dSkpfnBwfgoKfi9wcH4gICcnSW4gdGhlIG1vdW50YWlucyB0aGVyZSBpcyBubyBmb29k LicnfnBwfgoKfi9wcH4oKGxhcG9pIHBlbHh1IGt1J28gdHJhanlub2JsaSkpXgoKCgpFeHBhbmRp bmcge2xvIGNpZGphfSwgCgpebGUgY21hbmEgem8nZSBub2kga2UnYSBjaWRqYSBrdSdvIGJhIGNs YXh1XgoKQWNjb3JkaW5nIHRvICgoQlBGSyBTZWN0aW9uOiBTdWJvcmRpbmF0b3JzfHRoZSBkZWZp bml0aW9uIG9mIHtub2l9KSksIAoKXmxlIGNtYW5hIHpvJ2UgdG8gcmkgeGkgcmF1IGNpZGphIHRv aSBiYSBjbGF4dV4KClRoZSBwYXJ0IGJldHdlZW4ge3RvfSBhbmQge3RvaX0gaXMgYSBwYXJlbnRo ZXRpY2FsIGV4cHJlc3Npb24uIFRoZSBtYWluIHByb3Bvc2l0aW9uIGlzIHRodXMKCl5sZSBjbWFu YSB6bydlIGJhIGNsYXh1XgoKd2hlcmUge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50LiBBY2Nv cmRpbmcgdG8gdGhlIGxvZ2ljYWwgYXhpb20gb2YgcGx1cmFsIGNvbnN0YW50IGluICgofCNBX2xv Z2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKSwgVGhpcyBwcm9w b3NpdGlvbiBpbXBsaWVzIAoKXnN1J29pIGRhIHpvJ3UgbGUgY21hbmEgZGEgYmEgY2xheHVeCgp3 aGljaCBtZWFucyB0aGF0IHRoZXJlIGlzIGEgcmVmZXJlbnQgb2YgIndoYXQgaXMgbGFja2VkIGJ5 IHRoZSBtb3VudGFpbiIgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4KClRoZSBzdHJhbmdl bmVzcyBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgeDIgb2Yge2NsYXh1fSBfX2FwcGFyZW50bHlf XyBtZWFucyBub24tZXhpc3RlbmNlLiBXZSBjYW4gaW50ZXJwcmV0IGl0IGNvbnNpc3RlbnRseSB0 aGF0IHtjbGF4dX0gbWVhbnMgb25seSB0aGF0IHRoZSByZWZlcmVudCBvZiB4MiBpcyBub3QgcGxh Y2VkIGF0IHRoZSByZWZlcmVudCBvZiB4MSwgYW5kIGl0IHNheXMgbm90aGluZyBhYm91dCBleGlz dGVuY2UgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gCgoKCiEhISMgem8nZSBpcyBhIHBs dXJhbCBjb25zdGFudAoKQXNzdW1pbmcgdGhhdCB7em8nZX0gY2FuIGJlIGFueSBvZiBmcmVlIHZh cmlhYmxlLCBib3VuZCBwbHVyYWwgdmFyaWFibGUgb3IgcGx1cmFsIGNvbnN0YW50LCB0aGUgbGFu Z3VhZ2Ugd291bGQgYmUgbW9yZSByZWFzb25hYmxlIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZp ZXcuCgpIb3dldmVyLCB0aGlzIGlkZWEgd2FzIGNsZWFybHkgZGVuaWVkIGluIFtodHRwczovL2dy b3Vwcy5nb29nbGUuY29tL2QvdG9waWMvbG9qYmFuL1JBdEU3WWstZHF3L2Rpc2N1c3Npb258dGhl IGRpc2N1c3Npb25dLiBUaGF0IGlzIHRvIHNheSwge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJhbCBj b25zdGFudCBhY2NvcmRpbmcgdG8gdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKSSB3aWxs IGV4YW1pbmUgdGhlc2UgY29uZmxpY3RpbmcgaWRlYXMsIGFuZCB0cnkgdG8gc29sdmUgc29tZSBw cm9ibGVtcyBjYXVzZWQgYnkgdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9 IGlzIGEgcGx1cmFsIGNvbnN0YW50LgoKCgohISEhIyBJZiB6bydlIGNvdWxkIGJlIGEgYm91bmQg cGx1cmFsIHZhcmlhYmxlCgpJIHdpbGwgbGlzdCB1cCBoZXJlIG1lcml0cyBhbmQgZGVtZXJpdHMg b2YgYXNzdW1pbmcgdGhhdCB7em8nZX0gaW4gbm8gY29udGV4dCBpcyBhIGZyZWUgdmFyaWFibGUs IGFuZCB0aGF0IHRoZSBjb250ZXh0IGRldGVybWluZXMgdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJz ZSwgYmFzZWQgb24gd2hpY2gge3pvJ2V9IGlzIHJlZ2FyZGVkIGFzIHN1YnN0aXR1dGVkIGZvciBi eSBhIHBsdXJhbCBjb25zdGFudCwgb3IgYm91bmQgYnkgYSBwbHVyYWwgcXVhbnRpZmllci4KCgoK ISEhISEjIE1lcml0cwoKVW5kZXIgdGhpcyBhc3N1bXB0aW9uLCB0aGVyZSBpcyBubyBuZWVkIHRv IGV4Y2x1ZGUgdGhlIGNhc2UgUEE9MCBvZiB7bG8gUEEgYnJvZGF9LCBvciBnaXZlIGl0IGFuIHVu b2ZmaWNpYWwgZGVmaW5pdGlvbiBhcyBkaXNjdXNzZWQgaW4gKCh8I0Nhbm5vdF9zYXlfemVyb3xT ZWN0aW9uIDMuMS4yLjEpKS4gSXQgaXMgYmVjYXVzZSBpZiB7bG8gUEEgYnJvZGF9IGluIG5vIGNv bnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCB3ZSBjYW4gaW50ZXJwcmV0IGl0LCB3aGVuIGEgY29u dGV4dCBpcyBnaXZlbiwgYXMgc3Vic3RpdHV0ZWQgZm9yIGJ5IGEgcGx1cmFsIGNvbnN0YW50IG9y IGJvdW5kIGJ5IGEgcGx1cmFsIHF1YW50aWZpZXIgbGlrZSB7c3Unb2kgZGF9IGluIHRoZSBjYXNl IG9mIFBBPjA7IHdlIGNhbiBpbnRlcnByZXQgaXQgYXMgYm91bmQgYnkge25ha3Ugc3Unb2kgZGF9 IGluIHRoZSBjYXNlIG9mIFBBPTAgYXMgd2VsbC4KCgoKVGhpcyBhc3N1bXB0aW9uIG1ha2VzIHRo ZSBpbnRlcnByZXRhdGlvbiBjbG9zZXIgdG8gbmF0dXJhbCBsYW5ndWFnZXMgbm90IG9ubHkgaW4g dGhlIGNhc2UgUEE9MCBidXQgYWxzbyBpbiB0aGUgY2FzZSBQQT4wLiBGb3IgZXhhbXBsZSwgCgpe bG8gY2kgeGFudG8gY3Ugemlsa2FuY3UgbGkgY2kgbG8geGFudG9eCgpUaGUgbGFzdCB7bG8geGFu dG99IGlzIGEgdW5pdCBvZiBjb3VudGluZy4gSXQgaXMgbmF0dXJhbCB0byBpbnRlcnByZXQgaXQg YXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgcXVhbnRpZmllZCBieSAiMSIgcmF0aGVyIHRoYW4g YSBwbHVyYWwgY29uc3RhbnQsIHdoaWNoIHNob3VsZCByZWZlciB0byBzb21ldGhpbmcuIElmIHdl IGludGVycHJldCBpdCBhcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2Ugc2hvdWxkIGNvbnNp ZGVyIHRoZSByZWxhdGl2ZSBvcmRlciB3aXRoIHRoZSBvdGhlciBib3VuZCB2YXJpYWJsZXMgYW5k IHtuYWt1fS4gV2UgY2FuIGhhbmRsZSB0aGUgb3JkZXIgZnJlZWx5IGJ5IHB1dHRpbmcgdGhlIGFy Z3VtZW50cyBpbiBwcmVuZXguCgoKCk1vcmVvdmVyLCB0aGlzIGFzc3VtcHRpb24gZW1ib2RpZXMg dGhlIHByb3BlcnR5IG9mIG5hdHVyYWwgbGFuZ3VhZ2VzIHRoYXQgdGhlIHRydXRoIHZhbHVlIG9m IGEgcHJvcG9zaXRpb24gaW4gbm8gY29udGV4dCBpcyBnZW5lcmFsbHkgaW5kZWZpbml0ZS4gQnkg aW50ZXJwcmV0aW5nIHRoYXQge3pvJ2V9IGluIG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxl LCB3aGljaCB3aWxsIGJlIHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCBvciBi b3VuZCBieSBhIHBsdXJhbCBxdWFudGlmaWVyIHdoZW4gYSBjb250ZXh0IGlzIGdpdmVuLCBuYXR1 cmFsIGludGVycHJldGF0aW9uIG9mIExvamJhbiBzZW50ZW5jZSBpcyBwb3NzaWJsZSB3aXRob3V0 IGxvc2luZyBsb2dpY2FsIGFzcGVjdHMgYW5kIHN0cnVjdHVyYWwgYmVhdXR5LgoKCgohISEhISMg RGVtZXJpdHMKCkJlY2F1c2Uge3pvJ2V9IGNhbiBiZSBhIGZyZWUgdmFyaWFibGUsIGEgYm91bmQg cGx1cmFsIHZhcmlhYmxlIG9yIGEgcGx1cmFsIGNvbnN0YW50IGRlcGVuZGluZyBvbiB0aGUgY29u dGV4dCwgYSBzaW5nbGUgYnJpZGkgZG9lcyBub3QgbGV0IGxpc3RlbmVycyBkZXRlcm1pbmUgd2hp Y2ggb2YgdGhlbSBpcyB0aGUgY3VycmVudCB7em8nZX0sIG9yIHRoZSB0cnV0aCB2YWx1ZSBvZiB0 aGUgcHJvcG9zaXRpb24uCgpIb3dldmVyLCBzdWNoIGFuIGFzcGVjdCB0aGF0IHRoZSB0cnV0aCB2 YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGdlbmVyYWxseSBkZXBlbmRzIG9uIHRoZSBjb250ZXh0IGlz IGEgY29tbW9uIHByb3BlcnR5IHRvIGFsbCBuYXR1cmFsIGxhbmd1YWdlcy4KCgoKT24gdGhlIG90 aGVyIGhhbmQsIGV2ZW4gaWYgd2UgdGFrZSB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gdGhh dCB7em8nZX0gaXMgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50LCBsaXN0ZW5lcnMgYXJlIG9ubHkg aW5mb3JtZWQgYnkge3pvJ2V9IHRoYXQgYSBjZXJ0YWluIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBp cyBnaXZlbi4gV2l0aCBubyBjb250ZXh0LCB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIHdo YXQgaXMgdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gVGhlIHRydXRoIHZhbHVlIG9mIGEgcHJv cG9zaXRpb24gaW4gbm8gY29udGV4dCBpcyBpbmRlZmluaXRlIGV2ZW4gd2l0aCB0aGUgb2ZmaWNp YWwgaW50ZXJwcmV0YXRpb24uCgoKCiEhISEjIFByb2JsZW1zIGNhdXNlZCBieSB0aGUgZmFjdCB0 aGF0IHpvJ2UgaXMgYSBwbHVyYWwgY29uc3RhbnQgYW5kIHRoZSBjb3VudGVyLW1lYXN1cmVzCgpU aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gdGhhdCB7em8nZX0gaXMgYSBwbHVyYWwgY29uc3Rh bnQgY2F1c2VzIHRoZSBmb2xsb3dpbmcgcHJvYmxlbXMuCgoKCiEhISEhIyBDYW5ub3QgZXhwcmVz cyBwbHVyYWwgcXVhbnRpZmljYXRpb24gb2Ygbm9uLWV4aXN0ZW5jZQoKUmVhc29uYWJsZSBpbnRl cnByZXRhdGlvbiBvZiB7bG8gbm8gYnJvZGF9IGlzIG9mZmljaWFsbHkgZXhjbHVkZWQgZnJvbSBM b2piYW4uIFRoYXQgaXMgdG8gc2F5LCBMb2piYW4gY2Fubm90IG9mZmljaWFsbHkgZGVhbCB3aXRo IHRoZSBleHByZXNzaW9uICJ0aGVyZSBpcyBub3Qgd2hhdCBpcyBzdWJzdGl0dXRlZCBmb3Ige2Rh fSIgZm9yIHBsdXJhbCB2YXJpYWJsZSAoe25ha3Ugc3Unb2kgZGF9KSwgd2hpY2ggaXMgbmF0dXJh bGx5IGRlYWx0IHdpdGggYnkgcGx1cmFsIHF1YW50aWZpY2F0aW9uLiBJbiBvcmRlciB0byBleHBy ZXNzIHtsbyBubyBicm9kYX0gd2l0aCByZWFzb25hYmxlIGludGVycHJldGF0aW9uLCB3ZSBuZWVk IGFuIHVub2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gbGlrZSAoKHwjQ2Fubm90X3NheV96ZXJvfFNl Y3Rpb24gMy4xLjIuMSkpLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgYm91bmQgcGx1cmFsIHZh cmlhYmxlLCB3aGljaCBkb2VzIG5vdCBzcGVjaWZ5IGEgcmVmZXJlbnQKCkJlY2F1c2UgdGhlIG9m ZmljaWFsIGludGVycHJldGF0aW9uIGRvZXMgbm90IGFsbG93IHtsbyBQQSBicm9kYX0gdG8gYmUg YSBib3VuZCBwbHVyYWwgdmFyaWFibGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBhbiBhcmd1 bWVudCB0aGF0IHNob3VsZCByZWZlciB0byBub3RoaW5nLCBhIHVuaXQgb2YgY291bnRpbmcgZm9y IGV4YW1wbGUsIHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHBsdXJhbCBjb25zdGFudCwgd2hp Y2ggcmVmZXJzIHRvIHNvbWV0aGluZy4gRm9yIGV4YW1wbGUgCgpebG8gY2kgeGFudG8gY3Ugemls a2FuY3UgbGkgY2kgbG8geGFudG9eCgpmb3Igd2hpY2ggd2UgYXJlIGNvbXBlbGxlZCB0byBpbnRl cnByZXQgdGhhdCB0aGVyZSBpcyB0aGUgIkVsZXBoYW50IGRlcyBBcmNoaXZlcyIgaW4gdGhlIHVu aXZlcnNlIG9mIGRpc2NvdXJzZSwganVzdCBsaWtlIHRoZSAiTcOodHJlIGRlcyBBcmNoaXZlcyIg KGFsdGhvdWdoIGl0IGhhcyBhbHJlYWR5IGZpbmlzaGVkIGl0cyByb2xlKSwgaW4gb3JkZXIgdG8g dXNlIHtsbyB4YW50b30gYXMgYSB1bml0IGluIGEgcHJvcG9zaXRpb24uCgoKCiEhISEhIyBDYW5u b3QgZXhwcmVzcyBlbGVtZW50YXJ5IHBhcnRpY2xlcyB3aXRoIGxvCgpBcyBsb25nIGFzIHtsbyBi cm9kYX0gaXMgaW50ZXJwcmV0ZWQgYXMgYSBwbHVyYWwgY29uc3RhbnQsIHRoZSBmb2xsb3dpbmcg TG9qYmFuIHNlbnRlbmNlIGlzIG1lYW5pbmdsZXNzOgoKCgpebG8gZ3Vza2EndSBjdSBnYXUgam1h amkgc2VwaSdvIGxvIGxlbmpvIGdpJ2UgcGFncmUgbG8gZmVucmF+cHB+Cgp+L3BwficnUGhvdG9u cyBhcmUgY29uZGVuc2VkIGJ5IGxlbnNlcywgYW5kIHBhc3MgdGhyb3VnaCBzbGl0cy4nJ14KCgoK QWN0dWFsbHksIHBob3RvbnMgYXJlIGluZGl2aWR1YWxzLCBhbmQgd2UgY2FuIGNvdW50IHRoZW0s IGJ1dCB3ZSBjYW5ub3QgZGlzdGluZ3Vpc2ggZWFjaCBvZiB0aGVtOiB3ZSBjYW5ub3QgcmVmZXIg dG8gYSBzcGVjaWZpYyBwaG90b24uIFF1YW50aWZpY2F0aW9uIGlzIGluZGVlZCBzdWl0YWJsZSBm b3IgYXJndW1lbnRzIHRoYXQgcmVwcmVzZW50IHBhcnRpY2xlcyBsaWtlIHBob3RvbnMuIEhvd2V2 ZXIsIExvamJhbiBvZmZpY2lhbGx5IGRvZXMgbm90IGhhdmUgYSBwbHVyYWwgcXVhbnRpZmllciwg YW5kIGNhbm5vdCBleHByZXNzIHF1YW50aWZpY2F0aW9uIG9mICBzdW10aSB0aGF0IHNhdGlzZmll cyBzZWxicmkgYm90aCBjb2xsZWN0aXZlbHkgYW5kIGRpc3RyaWJ1dGl2ZWx5LiBNb3Jlb3Zlciwg YmVjYXVzZSB7bG8gYnJvZGF9IGlzIG9mZmljaWFsbHkgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50 LCB0aGVyZSBpcyBubyByb29tIHRvIGludGVycHJldCB7bG8gZ3Vza2EndX0gYXMgYSBib3VuZCBw bHVyYWwgdmFyaWFibGUuIEluIG9yZGVyIHRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSBzaG91bGQg dXNlIGFuIHVub2ZmaWNpYWwgcGx1cmFsIHF1YW50aWZpZXIge3N1J29pfSBzdWdnZXN0ZWQgYnkg KCh4b3J4ZXN8bGEgeG9yeGVzKSkuCgoKCl5zdSdvaSBkYSBwb2kga2UnYSBndXNrYSd1IGN1IGdh dSBqbWFqaSBzZXBpJ28gbG8gbGVuam8gZ2knZSBwYWdyZSBsbyBmZW5yYV4KCgoKISEhISEjIEhv dyB0byBpbnRlcnByZXQgYSBwcmV2YWlsaW5nIHZpZXcKClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBp cyBnaXZlbiBvbiAoKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKToKCgoK XmxvIHBhIHBpeHJhIGN1IHNlIHZhbWppIGxvIGtpJ28gdmFsc2l+cHB+Cgp+L3BwficnT25lIHBp Y3R1cmUgaXMgd29ydGggYSB0aG91c2FuZCB3b3Jkcy4nJyBeCgoKCkV2ZW4gaW4gc3VjaCBhIHNl bnRlbmNlIHRoYXQgc2VlbXMgYSBwcmV2YWlsaW5nIHZpZXcsIHtsbyBwYSBwaXhyYX0gYW5kIHts byBraSdvIHZhbHNpfSBhcmUgaW50ZXJwcmV0ZWQgYXMgcmVmZXJyaW5nIHRvIHNvbWV0aGluZy4g V2Ugc2hvdWxkIHByZXBhcmUgc29tZSByZWZlcmVudHMgb2Ygc3VtdGkgb2YgYSBwcmV2YWlsaW5n IHZpZXcgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4KCgoKSW50dWl0aW9uYWxseSBzcGVh a2luZywgd2UgbWF5IHVzZSB7bG8nZX0gaW5zdGVhZCBvZiB7bG99LCBidXQgd2UgY2Fubm90IHll dCBleHBsYWluIHtsbydlfSBmcm9tIGEgbG9naWNhbCBwb2ludCBvZiB2aWV3IGJlY2F1c2UgKChC UEZLIFNlY3Rpb246IFR5cGljYWxzfGFjdHVhbGx5IHRoZXJlIGlzIG5vIG9mZmljaWFsIGNvbmNs dXNpb24gYWJvdXQgcmVsYXRpb24gYmV0d2VlbiB7bG8nZX0gYW5kIHtsb30pKS4KCgoKQXMgYSBt ZXRob2Qgb2YgYXZvaWRpbmcgbWVudGlvbiBvZiBhIHJlZmVyZW50IGluIGFuIGV4cHJlc3Npb24g b2YgcHJldmFpbGluZyB2aWV3LCB3ZSBtYXkgcHV0IHRoZSB3aG9sZSBwcm9wb3NpdGlvbiBpbiBO VSBjbGF1c2UuIEluIGZhY3QsIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4gTlUgY2xh dXNlIGRvZXMgbm90IGluZmx1ZW5jZSB0cnV0aCB2YWx1ZSBvZiB0aGUgb3V0ZXIgcHJvcG9zaXRp b24gKHJlZmVyZW50aWFsbHkgb3BhcXVlOyB0aGlzIHRvcGljIGlzIHJlbGF0ZWQgdG8gW2h0dHA6 Ly9kYWcuZ2l0aHViLmlvL2NsbC85LzcvfENMTDkuN10pLiBJbiBvdGhlciB3b3JkcywgdGhlIHVu aXZlcnNlIG9mIGRpc2NvdXJzZSBvZiBhIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBpcyBkaWZm ZXJlbnQgZnJvbSB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlIG9mIGEgcHJvcG9zaXRpb24gb3V0 IG9mIE5VLgoKSWYgd2UgYWNjZXB0IHRoaXMgbWV0aG9kLCB0aGUgZXhhbXBsZSBhYm92ZSB3aWxs IGJlIG1vZGlmaWVkLCB1c2luZyB7c2knb30gZm9yIGV4YW1wbGUsIGFzIGZvbGxvd3M6CgoKCl5z aSdvIGxvIHBhIHBpeHJhIGN1IHNlIHZhbWppIGxvIGtpJ28gdmFsc2kgfnBwfgoKfi9wcH4nJ0lz IGFuIGlkZWEgdGhhdCBvbmUgcGljdHVyZSBpcyB3b3J0aCBhIHRob3VzYW5kIHdvcmRzLicnXgoK Cgp3aGVyZSB4MSBvZiB7c2knb30gaXMgaW1wbGljaXQge3pvJ2V9LCB3aGljaCBoYXMgYSByZWZl cmVudCBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLiBBcyBhbiBpbnRlcnByZXRhdGlvbiBv ZiBhIHByZXZhaWxpbmcgdmlldywgc3VwcG9zaW5nIGEgcmVmZXJlbnQgb2YgeDEgb2Yge3NpJ299 IGlzIG1vcmUgbmF0dXJhbCB0aGFuIHN1cHBvc2luZyBhIHJlZmVyZW50IG9mIHtsbyBwYSBwaXhy YX0gb3Ige2xvIGtpJ28gdmFsc2l9LgoKKFN1Y2ggYSBicmlkaSB3aXRoIG5vIHRlcmJyaSBpcyBj YWxsZWQgIm9ic2VydmF0aXZlIiBpbiAoKFRoZSBDb21wbGV0ZSBMb2piYW4gTGFuZ3VhZ2UpKSwg YnV0IHRoaXMgaW50ZXJwcmV0YXRpb24gaXMgbm90IHN1aXRhYmxlIGhlcmUsIGJlY2F1c2UgdGhp cyBpcyBub3QgdGhlIHV0dGVyYW5jZSB0aGF0IGlzIGFsd2F5cyBjYXVzZWQgYnkgYSBzcGVjaWZp YyBzdGltdWx1cy4pCgoKCiEhISEhIyBIb3cgdG8gZXhwcmVzcyBmcmVlIHZhcmlhYmxlcwoKQXMg YSBjdXN0b20sIGtvJ1YvZm8nViBzZXJpZXMgb2YgS09oQTQgYXJlIHVzZWQgYXMgZnJlZSB2YXJp YWJsZXMgaW4gZGVmaW5pdGlvbnMgb2Ygd29yZHMgb3Igc29tZXRoaW5nLiBIb3dldmVyLCB0aGV5 IGFyZSBhY3R1YWxseSBwbHVyYWwgY29uc3RhbnRzLgoKSWYgd2UgYWJhbmRvbiB0aGlzIGN1c3Rv bSwge2tlJ2F9IGFuZCB7Y2UndX0gYXJlIHN1aXRhYmxlIGZvciBleHByZXNzaW9uIHdpdGggZnJl ZSB2YXJpYWJsZXMgKG9wZW4gc2VudGVuY2UpLCBiZWNhdXNlIHRoZSB0cnV0aCB2YWx1ZSBvZiBi cmlkaSBpbiB3aGljaCB7a2UnYX0gb3Ige2NlJ3V9IGlzIHVzZWQgaXMgaW5kZWZpbml0ZS4gCgpJ biBhIGJyaWRpIGluIHdoaWNoIHtrZSdhfSBhcHBlYXJzIHR3byB0aW1lcyBvciBtb3JlLCB0aGVz ZSB7a2UnYX1zIGFyZSByZWdhcmRlZCBhcyByZXByZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRp OgoKXmRhIHBvaSBrZSdhIGd5IHhsdXJhIGtlJ2EgY3UgcGFuY2kgbG8ga2EnZSBzZSBjaXRrYX5w cH4KCn4vcHB+fi0tfiAoKGxvIG51IGJpbnhvKSleCgpPbiB0aGUgb3RoZXIgaGFuZCwgaW4gYSBi cmlkaSBpbiB3aGljaCB7Y2UndX0gYXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2Nl J3V9cyBhcmUgbm90IG5lY2Vzc2FyaWx5IHJlZ2FyZGVkIGFzIHJlcHJlc2VudGluZyBhbiBpZGVu dGljYWwgc3VtdGk6CgpebG8gbWFtdGEgam8ndSBsbyBtZW5zaSBjdSBzaW14dSBsbyBrYSBjZSd1 IGNpc21hIGZhJ2EgY2UndX5wcH4KCn4vcHB+fi0tfiAoKGxvIG51IGJpbnhvKSleCgpDb25zaWRl cmluZyB0aGVzZSBwcm9wZXJ0aWVzLCBpbiBvcmRlciB0byBleHByZXNzIGFuIG9wZW4gc2VudGVu Y2Ugd2l0aCBmcmVlIHZhcmlhYmxlcyBpbiBubyBjb250ZXh0LCB7Y2UndX0gaXMgbW9yZSBjb252 ZW5pZW50IHRoYW4ge2tlJ2F9IHdoaWNoIGhhcyByZXN0cmljdGlvbiBvZiBpZGVudGljYWwgc3Vt dGkuCgpeY2UndSBjZSd1IGNpdGthfnBwfgoKfi9wcH4nJ0EgZWF0cyBCLicnIChPcGVuIHNlbnRl bmNlLCB0cnV0aCB2YWx1ZSBpbmRlZmluaXRlLileCgoKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpXaWtpY2hhbmdlcyBtYWlsaW5nIGxpc3QKV2lraWNo YW5nZXNAbG9qYmFuLm9yZwpodHRwOi8vbWFpbC5sb2piYW4ub3JnL21haWxtYW4vbGlzdGluZm8v d2lraWNoYW5nZXMK