From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?ISO-8859-1?Q?R=FCdiger?= Sonderfeld Newsgroups: gmane.emacs.auctex.devel,gmane.emacs.devel Subject: [PATCH 1/2] Reftex: Convert comments to docstrings. Date: Tue, 11 Jun 2013 21:46 +0200 Message-ID: <1930841.7FmtiRiJZS@descartes> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Trace: ger.gmane.org 1370979994 30223 80.91.229.3 (11 Jun 2013 19:46:34 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 11 Jun 2013 19:46:34 +0000 (UTC) Cc: emacs-devel@gnu.org To: auctex-devel@gnu.org Original-X-From: auctex-devel-bounces+gead-auctex-devel=m.gmane.org@gnu.org Tue Jun 11 21:46:35 2013 Return-path: Envelope-to: gead-auctex-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UmUWT-0007bE-0f for gead-auctex-devel@m.gmane.org; Tue, 11 Jun 2013 21:46:29 +0200 Original-Received: from localhost ([::1]:35981 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UmUWS-0005sS-2h for gead-auctex-devel@m.gmane.org; Tue, 11 Jun 2013 15:46:28 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59051) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UmUWK-0005s1-4I for auctex-devel@gnu.org; Tue, 11 Jun 2013 15:46:25 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UmUWF-0008E8-AF for auctex-devel@gnu.org; Tue, 11 Jun 2013 15:46:20 -0400 Original-Received: from ptmx.org ([178.63.28.110]:56492) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UmUWE-0008Ds-LH; Tue, 11 Jun 2013 15:46:15 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by ptmx.org (Postfix) with ESMTP id 2FA2221630; Tue, 11 Jun 2013 21:46:13 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at ptmx.org Original-Received: from ptmx.org ([127.0.0.1]) by localhost (ptmx.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tbo++H+sT5Kh; Tue, 11 Jun 2013 21:46:10 +0200 (CEST) Original-Received: from descartes.localnet (chello080108246092.7.14.vie.surfer.at [80.108.246.92]) by ptmx.org (Postfix) with ESMTPSA id E5A7E215D3; Tue, 11 Jun 2013 21:46:09 +0200 (CEST) User-Agent: KMail/4.10.3 (Linux/3.8.0-23-generic; KDE/4.10.3; x86_64; ; ) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 178.63.28.110 X-BeenThere: auctex-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion list for AUCTeX developers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: auctex-devel-bounces+gead-auctex-devel=m.gmane.org@gnu.org Original-Sender: auctex-devel-bounces+gead-auctex-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.auctex.devel:3152 gmane.emacs.devel:160353 Archived-At: KiBsaXNwL3RleHRtb2Rlcy9yZWZ0ZXgtY2l0ZS5lbDogQ29udmVydCBjb21tZW50cyB0byBkb2Nz dHJpbmdzLgoqIGxpc3AvdGV4dG1vZGVzL3JlZnRleC1wYXJzZS5lbDogQ29udmVydCBjb21tZW50 cyB0byBkb2NzdHJpbmdzLgoKU2lnbmVkLW9mZi1ieTogUsO8ZGlnZXIgU29uZGVyZmVsZCA8cnVl ZGlnZXJAYy1wbHVzcGx1cy5kZT4KLS0tCiBsaXNwL3RleHRtb2Rlcy9yZWZ0ZXgtY2l0ZS5lbCAg fCAxMjkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogbGlzcC90ZXh0bW9kZXMv cmVmdGV4LXBhcnNlLmVsIHwgMTU0ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCAxNDYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC90ZXh0bW9kZXMvcmVmdGV4LWNpdGUuZWwgYi9saXNwL3Rl eHRtb2Rlcy9yZWZ0ZXgtY2l0ZS5lbAppbmRleCBjYTI5NzA5Li42YzEwMzI5IDEwMDY0NAotLS0g YS9saXNwL3RleHRtb2Rlcy9yZWZ0ZXgtY2l0ZS5lbAorKysgYi9saXNwL3RleHRtb2Rlcy9yZWZ0 ZXgtY2l0ZS5lbApAQCAtMjUsMTggKzI1LDE2IEBACiA7OzsgQ29kZToKIAogKGV2YWwtd2hlbi1j b21waWxlIChyZXF1aXJlICdjbCkpCi0ocHJvdmlkZSAncmVmdGV4LWNpdGUpCi0ocmVxdWlyZSAn cmVmdGV4KQotOzs7CiAKLTs7IFZhcmlhYmxlcyBhbmQgY29uc3RhbnRzCisocmVxdWlyZSAncmVm dGV4KQogCi07OyBUaGUgaGlzdG9yeSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCBm b3IgY2l0YXRpb25zCi0oZGVmdmFyIHJlZnRleC1jaXRlLXJlZ2V4cC1oaXN0IG5pbCkKKzs7OyBW YXJpYWJsZXMgYW5kIGNvbnN0YW50cworKGRlZnZhciByZWZ0ZXgtY2l0ZS1yZWdleHAtaGlzdCBu aWwKKyAgIlRoZSBoaXN0b3J5IGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9ucyB1c2VkIGZvciBj aXRhdGlvbnMiKQogCi07OyBQcm9tcHQgYW5kIGhlbHAgc3RyaW5nIGZvciBjaXRhdGlvbiBzZWxl Y3Rpb24KIChkZWZjb25zdCByZWZ0ZXgtY2l0YXRpb24tcHJvbXB0Ci0gICJTZWxlY3Q6IFtuXWV4 dCBbcF1yZXZpb3VzIFtyXWVzdHJpY3QgWyBdZnVsbF9lbnRyeSBbcV11aXQgUkVUIFs/XUhlbHAr bW9yZSIpCisgICJTZWxlY3Q6IFtuXWV4dCBbcF1yZXZpb3VzIFtyXWVzdHJpY3QgWyBdZnVsbF9l bnRyeSBbcV11aXQgUkVUIFs/XUhlbHArbW9yZSIKKyAgIlByb21wdCBhbmQgaGVscCBzdHJpbmcg Zm9yIGNpdGF0aW9uIHNlbGVjdGlvbiIpCiAKIChkZWZjb25zdCByZWZ0ZXgtY2l0YXRpb24taGVs cAogICAiIG4gLyBwICAgICAgR28gdG8gbmV4dC9wcmV2aW91cyBlbnRyeSAoQ3Vyc29yIG1vdGlv biB3b3JrcyBhcyB3ZWxsKS4KQEAgLTUxLDggKzQ5LDcgQEAgKGRlZmNvbnN0IHJlZnRleC1jaXRh dGlvbi1oZWxwCiAgZSAvIEUgICAgICBDcmVhdGUgQmliVGVYIGZpbGUgd2l0aCBhbGwgKG1hcmtl ZC91bm1hcmtlZCkgZW50cmllcwogIGEgLyBBICAgICAgUHV0IGFsbCAobWFya2VkKSBlbnRyaWVz IGludG8gb25lL21hbnkgXFxjaXRlIGNvbW1hbmRzLiIpCiAKLTs7IEZpbmQgYmlidGV4IGZpbGVz Ci0KKzs7OyBGaW5kIGJpYnRleCBmaWxlcwogKGRlZm1hY3JvIHJlZnRleC13aXRoLXNwZWNpYWwt c3ludGF4LWZvci1iaWIgKCZyZXN0IGJvZHkpCiAgIGAobGV0ICgoc2F2ZWQtc3ludGF4IChzeW50 YXgtdGFibGUpKSkKICAgICAgKHVud2luZC1wcm90ZWN0CkBAIC02Miw4ICs1OSw4IEBAIChkZWZt YWNybyByZWZ0ZXgtd2l0aC1zcGVjaWFsLXN5bnRheC1mb3ItYmliICgmcmVzdCBib2R5KQogICAg ICAgIChzZXQtc3ludGF4LXRhYmxlIHNhdmVkLXN5bnRheCkpKSkKIAogKGRlZnVuIHJlZnRleC1k ZWZhdWx0LWJpYmxpb2dyYXBoeSAoKQotICA7OyBSZXR1cm4gdGhlIGV4cGFuZGVkIHZhbHVlIG9m IGByZWZ0ZXgtZGVmYXVsdC1iaWJsaW9ncmFwaHknLgotICA7OyBUaGUgZXhwYW5kZWQgdmFsdWUg aXMgY2FjaGVkLgorICAiUmV0dXJuIHRoZSBleHBhbmRlZCB2YWx1ZSBvZiB2YXJpYWJsZSBgcmVm dGV4LWRlZmF1bHQtYmlibGlvZ3JhcGh5Jy4KK1RoZSBleHBhbmRlZCB2YWx1ZSBpcyBjYWNoZWQu IgogICAodW5sZXNzIChlcSAoZ2V0ICdyZWZ0ZXgtZGVmYXVsdC1iaWJsaW9ncmFwaHkgOnJlZnRl eC1yYXcpCiAgICAgICAgICAgICAgIHJlZnRleC1kZWZhdWx0LWJpYmxpb2dyYXBoeSkKICAgICAo cHV0ICdyZWZ0ZXgtZGVmYXVsdC1iaWJsaW9ncmFwaHkgOnJlZnRleC1leHBhbmRlZApAQCAtNzQs OSArNzEsOCBAQCAoZGVmdW4gcmVmdGV4LWRlZmF1bHQtYmlibGlvZ3JhcGh5ICgpCiAgIChnZXQg J3JlZnRleC1kZWZhdWx0LWJpYmxpb2dyYXBoeSA6cmVmdGV4LWV4cGFuZGVkKSkKIAogKGRlZnVu IHJlZnRleC1iaWItb3ItdGhlYmliICgpCi0gIDs7IFRlc3RzIGlmIEJpYlRlWCBvciBcYmVnaW57 dGhlYmlibGlvZ3JhcGh5fSBzaG91bGQgYmUgdXNlZCBmb3IgdGhlCi0gIDs7IGNpdGF0aW9uCi0g IDs7IEZpbmQgdGhlIGJvZiBvZiB0aGUgY3VycmVudCBmaWxlCisgICJUZXN0IGlmIEJpYlRlWCBv ciBcYmVnaW57dGhlYmlibGlvZ3JhcGh5fSBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGNpdGF0aW9u LgorRmluZCB0aGUgYm9mIG9mIHRoZSBjdXJyZW50IGZpbGUiCiAgIChsZXQqICgoZG9jc3RydWN0 IChzeW1ib2wtdmFsdWUgcmVmdGV4LWRvY3N0cnVjdC1zeW1ib2wpKQogICAgICAgICAgKHJlc3Qg KG9yIChtZW1iZXIgKGxpc3QgJ2JvZiAoYnVmZmVyLWZpbGUtbmFtZSkpIGRvY3N0cnVjdCkKICAg ICAgICAgICAgICAgICAgICBkb2NzdHJ1Y3QpKQpAQCAtOTQsMTEgKzkwLDExIEBAIChkZWZ1biBy ZWZ0ZXgtYmliLW9yLXRoZWJpYiAoKQogICAgICAgKGlmIHRoZWJpYiAndGhlYmliIG5pbCkpKSkK IAogKGRlZnVuIHJlZnRleC1nZXQtYmliZmlsZS1saXN0ICgpCi0gIDs7IFJldHVybiBsaXN0IG9m IGJpYmZpbGVzIGZvciBjdXJyZW50IGRvY3VtZW50LgotICA7OyBXaGVuIHVzaW5nIHRoZSBjaGFw dGVyYmliIG9yIGJpYnVuaXRzIHBhY2thZ2UgeW91IHNob3VsZCBlaXRoZXIKLSAgOzsgdXNlIHRo ZSBzYW1lIGRhdGFiYXNlIGZpbGVzIGV2ZXJ5d2hlcmUsIG9yIHNlcGFyYXRlIHBhcnRzIHVzaW5n Ci0gIDs7IGRpZmZlcmVudCBkYXRhYmFzZXMgaW50byBkaWZmZXJlbnQgZmlsZXMgKGluY2x1ZGVk IGludG8gdGhlIG1hdGVyIGZpbGUpLgotICA7OyBUaGVuIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1 cm4gdGhlIGFwcGxpY2FibGUgZGF0YWJhc2UgZmlsZXMuCisgICJSZXR1cm4gbGlzdCBvZiBiaWJm aWxlcyBmb3IgY3VycmVudCBkb2N1bWVudC4KK1doZW4gdXNpbmcgdGhlIGNoYXB0ZXJiaWIgb3Ig YmlidW5pdHMgcGFja2FnZSB5b3Ugc2hvdWxkIGVpdGhlcgordXNlIHRoZSBzYW1lIGRhdGFiYXNl IGZpbGVzIGV2ZXJ5d2hlcmUsIG9yIHNlcGFyYXRlIHBhcnRzIHVzaW5nCitkaWZmZXJlbnQgZGF0 YWJhc2VzIGludG8gZGlmZmVyZW50IGZpbGVzIChpbmNsdWRlZCBpbnRvIHRoZSBtYXRlciBmaWxl KS4KK1RoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiB0aGUgYXBwbGljYWJsZSBkYXRhYmFz ZSBmaWxlcy4iCiAKICAgOzsgRW5zdXJlIGFjY2VzcyB0byBzY2FubmluZyBpbmZvCiAgIChyZWZ0 ZXgtYWNjZXNzLXNjYW4taW5mbykKQEAgLTExNSwxNiArMTExLDE0IEBAIChkZWZ1biByZWZ0ZXgt Z2V0LWJpYmZpbGUtbGlzdCAoKQogICAgKGNkciAoYXNzcSAnYmliIChzeW1ib2wtdmFsdWUgcmVm dGV4LWRvY3N0cnVjdC1zeW1ib2wpKSkKICAgIChlcnJvciAiXFxiaWJsaW9ncmFwaHkgc3RhdGVt ZW50IG1pc3Npbmcgb3IgLmJpYiBmaWxlcyBub3QgZm91bmQiKSkpCiAKLTs7IEZpbmQgYSBjZXJ0 YWluIHJlZmVyZW5jZSBpbiBhbnkgb2YgdGhlIEJpYlRlWCBmaWxlcy4KLQorOzs7IEZpbmQgYSBj ZXJ0YWluIHJlZmVyZW5jZSBpbiBhbnkgb2YgdGhlIEJpYlRlWCBmaWxlcy4KIChkZWZ1biByZWZ0 ZXgtcG9wLXRvLWJpYnRleC1lbnRyeSAoa2V5IGZpbGUtbGlzdCAmb3B0aW9uYWwgbWFyay10by1r aWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQgaXRl bSByZXR1cm4pCi0gIDs7IEZpbmQgQmliVGVYIEtFWSBpbiBhbnkgZmlsZSBpbiBGSUxFLUxJU1Qg aW4gYW5vdGhlciB3aW5kb3cuCi0gIDs7IElmIE1BUkstVE8tS0lMTCBpcyBub24tbmlsLCBtYXJr IG5ldyBidWZmZXIgdG8ga2lsbC4KLSAgOzsgSWYgSElHSExJR0hUIGlzIG5vbi1uaWwsIGhpZ2hs aWdodCB0aGUgbWF0Y2guCi0gIDs7IElmIElURU0gaW4gbm9uLW5pbCwgc2VhcmNoIGZvciBiaWJp dGVtIGluc3RlYWQgb2YgZGF0YWJhc2UgZW50cnkuCi0gIDs7IElmIFJFVFVSTiBpcyBub24tbmls LCBqdXN0IHJldHVybiB0aGUgZW50cnkgYW5kIHJlc3RvcmUgcG9pbnQuCi0KKyAgIkZpbmQgQmli VGVYIEtFWSBpbiBhbnkgZmlsZSBpbiBGSUxFLUxJU1QgaW4gYW5vdGhlciB3aW5kb3cuCitJZiBN QVJLLVRPLUtJTEwgaXMgbm9uLW5pbCwgbWFyayBuZXcgYnVmZmVyIHRvIGtpbGwuCitJZiBISUdI TElHSFQgaXMgbm9uLW5pbCwgaGlnaGxpZ2h0IHRoZSBtYXRjaC4KK0lmIElURU0gaW4gbm9uLW5p bCwgc2VhcmNoIGZvciBiaWJpdGVtIGluc3RlYWQgb2YgZGF0YWJhc2UgZW50cnkuCitJZiBSRVRV Uk4gaXMgbm9uLW5pbCwganVzdCByZXR1cm4gdGhlIGVudHJ5IGFuZCByZXN0b3JlIHBvaW50LiIK ICAgKGxldCogKChyZQogICAgICAgICAgIChpZiBpdGVtCiAgICAgICAgICAgICAgIChjb25jYXQg IlxcXFxiaWJpdGVtWyBcdF0qXFwoXFxbW15dXSpcXF1cXCk/WyBcdF0qeyIKQEAgLTE3OCwxMiAr MTcyLDExIEBAIChkZWZ1biByZWZ0ZXgtZW5kLW9mLWJpYi1lbnRyeSAoaXRlbSkKICAgICAgICAg ICAocHJvZ24gKGZvcndhcmQtbGlzdCAxKSAocG9pbnQpKSkKICAgICAgIChlcnJvciAobWluIChw b2ludC1tYXgpICgrIDMwMCAocG9pbnQpKSkpKSkpCiAKLTs7IFBhcnNlIGJpYnRleCBidWZmZXJz Ci0KKzs7OyBQYXJzZSBiaWJ0ZXggYnVmZmVycwogKGRlZnVuIHJlZnRleC1leHRyYWN0LWJpYi1l bnRyaWVzIChidWZmZXJzKQotICA7OyBFeHRyYWN0IGJpYiBlbnRyaWVzIHdoaWNoIG1hdGNoIHJl Z2V4cHMgZnJvbSBCVUZGRVJTLgotICA7OyBCVUZGRVJTIGlzIGEgbGlzdCBvZiBidWZmZXJzIG9y IGZpbGUgbmFtZXMuCi0gIDs7IFJldHVybiBsaXN0IHdpdGggZW50cmllcy4iCisgICJFeHRyYWN0 IGJpYiBlbnRyaWVzIHdoaWNoIG1hdGNoIHJlZ2V4cHMgZnJvbSBCVUZGRVJTLgorQlVGRkVSUyBp cyBhIGxpc3Qgb2YgYnVmZmVycyBvciBmaWxlIG5hbWVzLgorUmV0dXJuIGxpc3Qgd2l0aCBlbnRy aWVzLiIKICAgKGxldCogKHJlLWxpc3QgZmlyc3QtcmUgcmVzdC1yZQogICAgICAgICAgICAgICAg ICAoYnVmZmVyLWxpc3QgKGlmIChsaXN0cCBidWZmZXJzKSBidWZmZXJzIChsaXN0IGJ1ZmZlcnMp KSkKICAgICAgICAgICAgICAgICAgZm91bmQtbGlzdCBlbnRyeSBidWZmZXIxIGJ1ZmZlciBhbGlz dApAQCAtMzA5LDYgKzMwMiw4IEBAIChkZWZ1biByZWZ0ZXgtZXh0cmFjdC1iaWItZW50cmllcyAo YnVmZmVycykKICAgICAgKHQgZm91bmQtbGlzdCkpKSkKIAogKGRlZnVuIHJlZnRleC1iaWItc29y dC1hdXRob3IgKGUxIGUyKQorICAiQ29tcGFyZSBiaWIgZW50cmllcyBFMSBhbmQgRTIgYnkgYXV0 aG9yLgorVGhlIG5hbWUgb2YgdGhlIGZpcnN0IGRpZmZlcmVudCBhdXRob3IvZWRpdG9yIGlzIHVz ZWQuIgogICAobGV0ICgoYWwxIChyZWZ0ZXgtZ2V0LWJpYi1uYW1lcyAiYXV0aG9yIiBlMSkpCiAg ICAgICAgIChhbDIgKHJlZnRleC1nZXQtYmliLW5hbWVzICJhdXRob3IiIGUyKSkpCiAgICAgKHdo aWxlIChhbmQgYWwxIGFsMiAoc3RyaW5nPSAoY2FyIGFsMSkgKGNhciBhbDIpKSkKQEAgLTMyMCwx NSArMzE1LDE3IEBAIChkZWZ1biByZWZ0ZXgtYmliLXNvcnQtYXV0aG9yIChlMSBlMikKICAgICAg IChub3QgKHN0cmluZ3AgKGNhciBhbDEpKSkpKSkKIAogKGRlZnVuIHJlZnRleC1iaWItc29ydC15 ZWFyIChlMSBlMikKKyAgIkNvbXBhcmUgYmliIGVudHJpZXMgRTEgYW5kIEUyIGJ5IHllYXIgaW4g YXNjZW5kaW5nIG9yZGVyLiIKICAgKDwgKHN0cmluZy10by1udW1iZXIgKG9yIChjZHIgKGFzc29j ICJ5ZWFyIiBlMSkpICIwIikpCiAgICAgIChzdHJpbmctdG8tbnVtYmVyIChvciAoY2RyIChhc3Nv YyAieWVhciIgZTIpKSAiMCIpKSkpCiAKIChkZWZ1biByZWZ0ZXgtYmliLXNvcnQteWVhci1yZXZl cnNlIChlMSBlMikKKyAgIkNvbXBhcmUgYmliIGVudHJpZXMgRTEgYW5kIEUyIGJ5IHllYXIgaW4g ZGVzY2VuZGluZyBvcmRlci4iCiAgICg+IChzdHJpbmctdG8tbnVtYmVyIChvciAoY2RyIChhc3Nv YyAieWVhciIgZTEpKSAiMCIpKQogICAgICAoc3RyaW5nLXRvLW51bWJlciAob3IgKGNkciAoYXNz b2MgInllYXIiIGUyKSkgIjAiKSkpKQogCiAoZGVmdW4gcmVmdGV4LWdldC1jcm9zc3JlZi1hbGlz dCAoZW50cnkpCi0gIDs7IHJldHVybiB0aGUgYWxpc3QgZnJvbSBhIGNyb3NzcmVmIGVudHJ5Cisg ICJSZXR1cm4gdGhlIGFsaXN0IGZyb20gYSBjcm9zc3JlZiBFTlRSWS4iCiAgIChsZXQgKChjcmtl eSAoY2RyIChhc3NvYyAiY3Jvc3NyZWYiIGVudHJ5KSkpCiAgICAgICAgIHN0YXJ0KQogICAgIChz YXZlLWV4Y3Vyc2lvbgpAQCAtMzQ3LDEwICszNDQsOSBAQCAoZGVmdW4gcmVmdGV4LWdldC1jcm9z c3JlZi1hbGlzdCAoZW50cnkpCiAKIDs7IFBhcnNlIHRoZSBiaWJsaW9ncmFwaHkgZW52aXJvbm1l bnQKIChkZWZ1biByZWZ0ZXgtZXh0cmFjdC1iaWItZW50cmllcy1mcm9tLXRoZWJpYmxpb2dyYXBo eSAoZmlsZXMpCi0gIDs7IEV4dHJhY3QgYmliLWVudHJpZXMgZnJvbSB0aGUgXGJlZ2lue3RoZWJp Ymxpb2dyYXBoeX0gZW52aXJvbm1lbnQuCi0gIDs7IFBhcnNpbmcgaXMgbm90IGFzIGdvb2QgYXMg Zm9yIHRoZSBCaWJUZVggZGF0YWJhc2Ugc3R1ZmYuCi0gIDs7IFRoZSBlbnZpcm9ubWVudCBzaG91 bGQgYmUgbG9jYXRlZCBpbiBmaWxlIEZJTEUuCi0KKyAgIkV4dHJhY3QgYmliLWVudHJpZXMgZnJv bSB0aGUgXGJlZ2lue3RoZWJpYmxpb2dyYXBoeX0gZW52aXJvbm1lbnQuCitQYXJzaW5nIGlzIG5v dCBhcyBnb29kIGFzIGZvciB0aGUgQmliVGVYIGRhdGFiYXNlIHN0dWZmLgorVGhlIGVudmlyb25t ZW50IHNob3VsZCBiZSBsb2NhdGVkIGluIEZJTEVTLiIKICAgKGxldCogKHN0YXJ0IGVuZCBidWYg ZW50cmllcyByZSByZS1saXN0IGZpbGUgZGVmYXVsdCkKICAgICAodW5sZXNzIGZpbGVzCiAgICAg ICAoZXJyb3IgIk5lZWQgZmlsZSBuYW1lIHRvIGZpbmQgdGhlYmlibGlvZ3JhcGh5IGVudmlyb25t ZW50IikpCkBAIC00MzAsOCArNDI2LDggQEAgKGRlZnVuIHJlZnRleC1leHRyYWN0LWJpYi1lbnRy aWVzLWZyb20tdGhlYmlibGlvZ3JhcGh5IChmaWxlcykKICAgICBlbnRyaWVzKSkKIAogKGRlZnVu IHJlZnRleC1nZXQtYmlia2V5LWRlZmF1bHQgKCkKLSAgOzsgUmV0dXJuIHRoZSB3b3JkIGJlZm9y ZSB0aGUgY3Vyc29yLiAgSWYgdGhlIGN1cnNvciBpcyBpbiBhCi0gIDs7IGNpdGF0aW9uIG1hY3Jv LCByZXR1cm4gdGhlIHdvcmQgYmVmb3JlIHRoZSBtYWNyby4KKyAgIlJldHVybiB0aGUgd29yZCBi ZWZvcmUgdGhlIGN1cnNvci4KK0lmIHRoZSBjdXJzb3IgaXMgaW4gYSBjaXRhdGlvbiBtYWNybywg cmV0dXJuIHRoZSB3b3JkIGJlZm9yZSB0aGUgbWFjcm8uIgogICAobGV0KiAoKG1hY3JvIChyZWZ0 ZXgtd2hhdC1tYWNybyAxKSkpCiAgICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgICAoaWYgKGFuZCBt YWNybyAoc3RyaW5nLW1hdGNoICJjaXRlIiAoY2FyIG1hY3JvKSkpCkBAIC00MzksMTAgKzQzNSwx MCBAQCAoZGVmdW4gcmVmdGV4LWdldC1iaWJrZXktZGVmYXVsdCAoKQogICAgICAgKHNraXAtY2hh cnMtYmFja3dhcmQgIl5hLXpBLVowLTkiKQogICAgICAgKHJlZnRleC10aGlzLXdvcmQpKSkpCiAK LTs7IFBhcnNlIGFuZCBmb3JtYXQgaW5kaXZpZHVhbCBlbnRyaWVzCi0KKzs7OyBQYXJzZSBhbmQg Zm9ybWF0IGluZGl2aWR1YWwgZW50cmllcwogKGRlZnVuIHJlZnRleC1nZXQtYmliLW5hbWVzIChm aWVsZCBlbnRyeSkKLSAgOzsgUmV0dXJuIGEgbGlzdCB3aXRoIHRoZSBhdXRob3Igb3IgZWRpdG9y IG5hbWVzIGluIEVOVFJZCisgICJSZXR1cm4gYSBsaXN0IHdpdGggdGhlIGF1dGhvciBvciBlZGl0 b3IgbmFtZXMgaW4gRU5UUlkuCitJZiBGSUVMRCBpcyBlbXB0eSB0cnkgXCJlZGl0b3JcIiBmaWVs ZC4iCiAgIChsZXQgKChuYW1lcyAocmVmdGV4LWdldC1iaWItZmllbGQgZmllbGQgZW50cnkpKSkK ICAgICAoaWYgKGVxdWFsICIiIG5hbWVzKQogICAgICAgICAoc2V0cSBuYW1lcyAocmVmdGV4LWdl dC1iaWItZmllbGQgImVkaXRvciIgZW50cnkpKSkKQEAgLTQ1Nyw3ICs0NTMsOSBAQCAoZGVmdW4g cmVmdGV4LWdldC1iaWItbmFtZXMgKGZpZWxkIGVudHJ5KQogICAgIChzcGxpdC1zdHJpbmcgbmFt ZXMgIlxuIikpKQogCiAoZGVmdW4gcmVmdGV4LXBhcnNlLWJpYnRleC1lbnRyeSAoZW50cnkgJm9w dGlvbmFsIGZyb20gdG8gcmF3KQotICA7IGlmIFJBVyBpcyBub24tbmlsLCBrZWVwIGRvdWJsZSBx dW90ZXMvY3VybHkgYnJhY2VzIGRlbGltaXRpbmcgZmllbGRzCisgICJQYXJzZSBCaWJUZVggRU5U UlkuCitJZiBFTlRSWSBpcyBuaWwgdGhlbiBwYXJzZSB0aGUgZW50cnkgaW4gY3VycmVudCBidWZm ZXIgYmV0d2VlbiBGUk9NIGFuZCBUTy4KK0lmIFJBVyBpcyBub24tbmlsLCBrZWVwIGRvdWJsZSBx dW90ZXMvY3VybHkgYnJhY2VzIGRlbGltaXRpbmcgZmllbGRzLiIKICAgKGxldCAoYWxpc3Qga2V5 IHN0YXJ0IGZpZWxkKQogICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgKHNhdmUtcmVzdHJpY3Rp b24KQEAgLTUxOCw3ICs1MTYsOCBAQCAoZGVmdW4gcmVmdGV4LXBhcnNlLWJpYnRleC1lbnRyeSAo ZW50cnkgJm9wdGlvbmFsIGZyb20gdG8gcmF3KQogICAgIGFsaXN0KSkKIAogKGRlZnVuIHJlZnRl eC1nZXQtYmliLWZpZWxkIChmaWVsZG5hbWUgZW50cnkgJm9wdGlvbmFsIGZvcm1hdCkKLSAgOzsg RXh0cmFjdCB0aGUgZmllbGQgRklFTEROQU1FIGZyb20gYW4gRU5UUlkKKyAgIkV4dHJhY3QgdGhl IGZpZWxkIEZJRUxETkFNRSBmcm9tIEVOVFJZLgorSWYgRk9STUFUIGlzIG5vbi1uaWwgYGZvcm1h dCcgZW50cnkgYWNjb3JkaW5nbHkuIgogICAobGV0ICgoY2VsbCAoYXNzb2MgZmllbGRuYW1lIGVu dHJ5KSkpCiAgICAgKGlmIGNlbGwKICAgICAgICAgKGlmIGZvcm1hdApAQCAtNTI3LDcgKzUyNiw3 IEBAIChkZWZ1biByZWZ0ZXgtZ2V0LWJpYi1maWVsZCAoZmllbGRuYW1lIGVudHJ5ICZvcHRpb25h bCBmb3JtYXQpCiAgICAgICAiIikpKQogCiAoZGVmdW4gcmVmdGV4LWZvcm1hdC1iaWItZW50cnkg KGVudHJ5KQotICA7OyBGb3JtYXQgYSBCaWJUZVggRU5UUlkgc28gdGhhdCBpdCBpcyBuaWNlIHRv IGxvb2sgYXQKKyAgIkZvcm1hdCBhIEJpYlRlWCBFTlRSWSBzbyB0aGF0IGl0IGlzIG5pY2UgdG8g bG9vayBhdC4iCiAgIChsZXQqCiAgICAgICAoKGF1dGgtbGlzdCAocmVmdGV4LWdldC1iaWItbmFt ZXMgImF1dGhvciIgZW50cnkpKQogICAgICAgIChhdXRob3JzIChtYXBjb25jYXQgJ2lkZW50aXR5 IGF1dGgtbGlzdCAiLCAiKSkKQEAgLTU3MCw3ICs1NjksNyBAQCAoZGVmdW4gcmVmdGV4LWZvcm1h dC1iaWItZW50cnkgKGVudHJ5KQogICAgIChjb25jYXQga2V5ICJcbiAgICAgIiBhdXRob3JzICIg IiB5ZWFyICIgIiBleHRyYSAiXG4gICAgICIgdGl0bGUgIlxuXG4iKSkpCiAKIChkZWZ1biByZWZ0 ZXgtcGFyc2UtYmliaXRlbSAoaXRlbSkKLSAgOzsgUGFyc2UgYSBcYmliaXRlbSBlbnRyeQorICAi UGFyc2UgYSBcYmliaXRlbSBlbnRyeSBpbiBJVEVNLiIKICAgKGxldCAoKGtleSAiIikgKHRleHQg IiIpKQogICAgICh3aGVuIChzdHJpbmctbWF0Y2ggIlxcYHtcXChbXn1dK1xcKX1cXChbXlwwMDBd KlxcKSIgaXRlbSkKICAgICAgIChzZXRxIGtleSAobWF0Y2gtc3RyaW5nIDEgaXRlbSkKQEAgLTU4 Niw3ICs1ODUsNyBAQCAoZGVmdW4gcmVmdGV4LXBhcnNlLWJpYml0ZW0gKGl0ZW0pCiAgICAgIChj b25zICImZW50cnkiIChjb25jYXQga2V5ICIgIiB0ZXh0KSkpKSkKIAogKGRlZnVuIHJlZnRleC1m b3JtYXQtYmliaXRlbSAoaXRlbSkKLSAgOzsgRm9ybWF0IGEgXGJpYml0ZW0gZW50cnkgc28gdGhh dCBpdCBpcyAocmVsYXRpdmVseSkgbmljZSB0byBsb29rIGF0LgorICAiRm9ybWF0IGEgXGJpYml0 ZW0gZW50cnkgaW4gSVRFTSBzbyB0aGF0IGl0IGlzIChyZWxhdGl2ZWx5KSBuaWNlIHRvIGxvb2sg YXQuIgogICAobGV0ICgodGV4dCAocmVmdGV4LWdldC1iaWItZmllbGQgIiZ0ZXh0IiBpdGVtKSkK ICAgICAgICAgKGtleSAgKHJlZnRleC1nZXQtYmliLWZpZWxkICIma2V5IiBpdGVtKSkKICAgICAg ICAgKGxpbmVzIG5pbCkpCkBAIC02MDMsNyArNjAyLDcgQEAgKGRlZnVuIHJlZnRleC1mb3JtYXQt YmliaXRlbSAoaXRlbSkKICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAwIChsZW5ndGggdGV4dCkg J2ZhY2UgcmVmdGV4LWJpYi1hdXRob3ItZmFjZSB0ZXh0KSkKICAgICAoY29uY2F0IGtleSAiXG4g ICAgICIgdGV4dCAiXG5cbiIpKSkKIAotOzsgTWFrZSBhIGNpdGF0aW9uCis7OzsgTWFrZSBhIGNp dGF0aW9uCiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gcmVmdGV4LWNpdGF0aW9uICgmb3B0aW9u YWwgbm8taW5zZXJ0IGZvcm1hdC1rZXkpCkBAIC02MjcsNyArNjI2LDYgQEAgKGRlZnVuIHJlZnRl eC1jaXRhdGlvbiAoJm9wdGlvbmFsIG5vLWluc2VydCBmb3JtYXQta2V5KQogVGh1cywgYGFhYWEm JmJiYicgbWF0Y2hlcyBlbnRyaWVzIHdoaWNoIGNvbnRhaW4gYm90aCBgYWFhYScgYW5kIGBiYmIn LgogV2hpbGUgZW50ZXJpbmcgdGhlIHJlZ2V4cCwgY29tcGxldGlvbiBvbiBrbm93cyBjaXRhdGlv biBrZXlzIGlzIHBvc3NpYmxlLgogYD0nIGlzIGEgZ29vZCByZWd1bGFyIGV4cHJlc3Npb24gdG8g bWF0Y2ggYWxsIGVudHJpZXMgaW4gYWxsIGZpbGVzLiIKLQogICAoaW50ZXJhY3RpdmUpCiAKICAg OzsgY2hlY2sgZm9yIHJlY3Vyc2l2ZSBlZGl0CkBAIC02NDUsOCArNjQzLDcgQEAgKGRlZnVuIHJl ZnRleC1jaXRhdGlvbiAoJm9wdGlvbmFsIG5vLWluc2VydCBmb3JtYXQta2V5KQogICAgIChyZWZ0 ZXgta2lsbC10ZW1wb3JhcnktYnVmZmVycykpKQogCiAoZGVmdW4gcmVmdGV4LWRvLWNpdGF0aW9u ICgmb3B0aW9uYWwgYXJnIG5vLWluc2VydCBmb3JtYXQta2V5KQotICA7OyBUaGlzIHJlYWxseSBk b2VzIHRoZSB3b3JrIG9mIHJlZnRleC1jaXRhdGlvbi4KLQorICAiVGhpcyByZWFsbHkgZG9lcyB0 aGUgd29yayBvZiBgcmVmdGV4LWNpdGF0aW9uJy4iCiAgIChsZXQqICgoZm9ybWF0IChyZWZ0ZXgt ZmlndXJlLW91dC1jaXRlLWZvcm1hdCBhcmcgbm8taW5zZXJ0IGZvcm1hdC1rZXkpKQogICAgICAg ICAgKGRvY3N0cnVjdC1zeW1ib2wgcmVmdGV4LWRvY3N0cnVjdC1zeW1ib2wpCiAgICAgICAgICAo c2VsZWN0ZWQtZW50cmllcyAocmVmdGV4LW9mZmVyLWJpYi1tZW51KSkKQEAgLTc0Myw4ICs3NDAs OCBAQCAoZGVmdW4gcmVmdGV4LWRvLWNpdGF0aW9uICgmb3B0aW9uYWwgYXJnIG5vLWluc2VydCBm b3JtYXQta2V5KQogICAgIChtYXBjYXIgJ2NhciBzZWxlY3RlZC1lbnRyaWVzKSkpCiAKIChkZWZ1 biByZWZ0ZXgtZmlndXJlLW91dC1jaXRlLWZvcm1hdCAoYXJnICZvcHRpb25hbCBuby1pbnNlcnQg Zm9ybWF0LWtleSkKLSAgOzsgQ2hlY2sgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIGNpdGUgY29tbWFu ZCBhdCBwb2ludCBhbmQgY2hhbmdlIGNpdGUgZm9ybWF0Ci0gIDs7IGluIG9yZGVyIHRvIG9ubHkg YWRkIGFub3RoZXIgcmVmZXJlbmNlIGluIHRoZSBzYW1lIGNpdGUgY29tbWFuZC4KKyAgIkNoZWNr IGlmIHRoZXJlIGlzIGFscmVhZHkgYSBjaXRlIGNvbW1hbmQgYXQgcG9pbnQgYW5kIGNoYW5nZSBj aXRlIGZvcm1hdAoraW4gb3JkZXIgdG8gb25seSBhZGQgYW5vdGhlciByZWZlcmVuY2UgaW4gdGhl IHNhbWUgY2l0ZSBjb21tYW5kLiIKICAgKGxldCAoKG1hY3JvIChjYXIgKHJlZnRleC13aGF0LW1h Y3JvIDEpKSkKICAgICAgICAgKGNpdGUtZm9ybWF0LXZhbHVlIChyZWZ0ZXgtZ2V0LWNpdGUtZm9y bWF0KSkKICAgICAgICAga2V5IGZvcm1hdCkKQEAgLTgwMiw4ICs3OTksNyBAQCAoZGVmdW4gcmVm dGV4LWNpdGV0ICgpCiAKIChkZWZ2YXIgcmVmdGV4LXNlbGVjdC1iaWItbWFwKQogKGRlZnVuIHJl ZnRleC1vZmZlci1iaWItbWVudSAoKQotICA7OyBPZmZlciBiaWIgbWVudSBhbmQgcmV0dXJuIGxp c3Qgb2Ygc2VsZWN0ZWQgaXRlbXMKLQorICAiT2ZmZXIgYmliIG1lbnUgYW5kIHJldHVybiBsaXN0 IG9mIHNlbGVjdGVkIGl0ZW1zLiIKICAgKGxldCAoKGJpYnR5cGUgKHJlZnRleC1iaWItb3ItdGhl YmliKSkKICAgICAgICAgZm91bmQtbGlzdCBydG4ga2V5IGRhdGEgc2VsZWN0ZWQtZW50cmllcykK ICAgICAod2hpbGUKQEAgLTkxNyw3ICs5MTMsNyBAQCAoZGVmdW4gcmVmdGV4LW9mZmVyLWJpYi1t ZW51ICgpCiAgICAgc2VsZWN0ZWQtZW50cmllcykpCiAKIChkZWZ1biByZWZ0ZXgtcmVzdHJpY3Qt YmliLW1hdGNoZXMgKGZvdW5kLWxpc3QpCi0gIDs7IExpbWl0IEZPVU5ELUxJU1Qgd2l0aCBtb3Jl IHJlZ3VsYXIgZXhwcmVzc2lvbnMKKyAgIkxpbWl0IEZPVU5ELUxJU1Qgd2l0aCBtb3JlIHJlZ3Vs YXIgZXhwcmVzc2lvbnMuIgogICAobGV0ICgocmUtbGlzdCAoc3BsaXQtc3RyaW5nIChyZWFkLXN0 cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVnRXhwIFsgJiYgUmVnRXhw Li4uXTogIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwgJ3JlZnRleC1jaXRl LXJlZ2V4cC1oaXN0KQpAQCAtOTQwLDcgKzkzNiw3IEBAIChkZWZ1biByZWZ0ZXgtcmVzdHJpY3Qt YmliLW1hdGNoZXMgKGZvdW5kLWxpc3QpCiAgICAgICBmb3VuZC1saXN0KSkpCiAKIChkZWZ1biBy ZWZ0ZXgtZXh0cmFjdC1iaWItZmlsZSAoYWxsICZvcHRpb25hbCBtYXJrZWQgY29tcGxlbWVudCkK LSAgOzsgTGltaXQgRk9VTkQtTElTVCB3aXRoIG1vcmUgcmVndWxhciBleHByZXNzaW9ucworICAi TGltaXQgRk9VTkQtTElTVCB3aXRoIG1vcmUgcmVndWxhciBleHByZXNzaW9ucy4iCiAgIChsZXQg KChmaWxlIChyZWFkLWZpbGUtbmFtZSAiRmlsZSB0byBjcmVhdGU6ICIpKSkKICAgICAoZmluZC1m aWxlLW90aGVyLXdpbmRvdyBmaWxlKQogICAgIChpZiAoPiAoYnVmZmVyLXNpemUpIDApCkBAIC05 NjMsNyArOTU5LDcgQEAgKGRlZnVuIHJlZnRleC1leHRyYWN0LWJpYi1maWxlIChhbGwgJm9wdGlv bmFsIG1hcmtlZCBjb21wbGVtZW50KQogICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpKSkKIAog KGRlZnVuIHJlZnRleC1pbnNlcnQtYmliLW1hdGNoZXMgKGxpc3QpCi0gIDs7IEluc2VydCB0aGUg YmliIG1hdGNoZXMgYW5kIG51bWJlciB0aGVtIGNvcnJlY3RseQorICAiSW5zZXJ0IHRoZSBiaWIg bWF0Y2hlcyBhbmQgbnVtYmVyIHRoZW0gY29ycmVjdGx5LiIKICAgKGxldCAoKG1vdXNlLWZhY2UK ICAgICAgICAgIChpZiAobWVtcSByZWZ0ZXgtaGlnaGxpZ2h0LXNlbGVjdGlvbiAnKG1vdXNlIGJv dGgpKQogICAgICAgICAgICAgIHJlZnRleC1tb3VzZS1zZWxlY3RlZC1mYWNlCkBAIC05OTYsOCAr OTkyLDcgQEAgKGRlZnVuIHJlZnRleC1mb3JtYXQtbmFtZXMgKG5hbWVsaXN0IG4pCiAgICAgICAg bGFzdCkpKSkpCiAKIChkZWZ1biByZWZ0ZXgtZm9ybWF0LWNpdGF0aW9uIChlbnRyeSBmb3JtYXQp Ci0gIDs7IEZvcm1hdCBhIGNpdGF0aW9uIGZyb20gdGhlIGluZm8gaW4gdGhlIEJpYlRlWCBFTlRS WQotCisgICJGb3JtYXQgYSBjaXRhdGlvbiBmcm9tIHRoZSBpbmZvIGluIHRoZSBCaWJUZVggRU5U UlkgYWNjb3JkaW5nIHRvIEZPUk1BVC4iCiAgICh1bmxlc3MgKHN0cmluZ3AgZm9ybWF0KSAoc2V0 cSBmb3JtYXQgIlxcY2l0ZXslbH0iKSkKIAogICAoaWYgKGFuZCByZWZ0ZXgtY29tbWVudC1jaXRh dGlvbnMKQEAgLTEwNjQsNyArMTA1OSw3IEBAIChkZWZ1biByZWZ0ZXgtZm9ybWF0LWNpdGF0aW9u IChlbnRyeSBmb3JtYXQpCiAgIGZvcm1hdCkKIAogKGRlZnVuIHJlZnRleC1tYWtlLWNpdGUtZWNo by1zdHJpbmcgKGVudHJ5IGRvY3N0cnVjdC1zeW1ib2wpCi0gIDs7IEZvcm1hdCBhIGJpYnRleCBl bnRyeSBmb3IgdGhlIGVjaG8gYXJlYSBhbmQgY2FjaGUgdGhlIHJlc3VsdC4KKyAgIkZvcm1hdCBh IGJpYnRleCBFTlRSWSBmb3IgdGhlIGVjaG8gYXJlYSBhbmQgY2FjaGUgdGhlIHJlc3VsdC4iCiAg IChsZXQqICgoa2V5IChyZWZ0ZXgtZ2V0LWJpYi1maWVsZCAiJmtleSIgZW50cnkpKQogICAgICAg ICAgKHN0cmluZwogICAgICAgICAgIChsZXQqICgocmVmdGV4LWNpdGUtcHVuY3R1YXRpb24gJygi ICIgIiAmICIgIiBldGFsLiIpKSkKQEAgLTEwODgsOSArMTA4Myw5IEBAIChkZWZ1biByZWZ0ZXgt bWFrZS1jaXRlLWVjaG8tc3RyaW5nIChlbnRyeSBkb2NzdHJ1Y3Qtc3ltYm9sKQogICAgIHN0cmlu ZykpCiAKIChkZWZ1biByZWZ0ZXgtYmlidGV4LXNlbGVjdGlvbi1jYWxsYmFjayAoZGF0YSBpZ25v cmUgbm8tcmV2aXNpdCkKLSAgOzsgQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGZyb20g dGhlIEJpYlRlWCBzZWxlY3Rpb24sIGluCi0gIDs7IG9yZGVyIHRvIGRpc3BsYXkgY29udGV4dC4g IFRoaXMgZnVuY3Rpb24gaXMgcmVsYXRpdmVseSBzbG93IGFuZCBub3QKLSAgOzsgcmVjb21tZW5k ZWQgZm9yIGZvbGxvdyBtb2RlLiAgSXQgd29ya3MgT0sgZm9yIGluZGl2aWR1YWwgbG9va3Vwcy4K KyAgIkNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBCaWJUZVggc2VsZWN0 aW9uLCBpbgorb3JkZXIgdG8gZGlzcGxheSBjb250ZXh0LiAgVGhpcyBmdW5jdGlvbiBpcyByZWxh dGl2ZWx5IHNsb3cgYW5kIG5vdAorcmVjb21tZW5kZWQgZm9yIGZvbGxvdyBtb2RlLiAgSXQgd29y a3MgT0sgZm9yIGluZGl2aWR1YWwgbG9va3Vwcy4iCiAgIChsZXQgKCh3aW4gKHNlbGVjdGVkLXdp bmRvdykpCiAgICAgICAgIChrZXkgKHJlZnRleC1nZXQtYmliLWZpZWxkICIma2V5IiBkYXRhKSkK ICAgICAgICAgYmliZmlsZS1saXN0IGl0ZW0gYmlidHlwZSkKQEAgLTExNTcsNyArMTE1Miw3IEBA IChkZWZ1biByZWZ0ZXgtZ2V0LXN0cmluZy1yZWZzIChhbGlzdCkKIAkJCQkJICAgICAgYWxpc3Qp KSkpCiAKIChkZWZ1biByZWZ0ZXgtY3JlYXRlLWJpYnRleC1maWxlIChiaWJmaWxlKQotICAiQ3Jl YXRlIGEgbmV3IEJpYlRlWCBkYXRhYmFzZSBmaWxlIHdpdGggYWxsIGVudHJpZXMgcmVmZXJlbmNl ZCBpbiBkb2N1bWVudC4KKyAgIkNyZWF0ZSBhIG5ldyBCaWJUZVggZGF0YWJhc2UgQklCRklMRSB3 aXRoIGFsbCBlbnRyaWVzIHJlZmVyZW5jZWQgaW4gZG9jdW1lbnQuCiBUaGUgY29tbWFuZCBwcm9t cHRzIGZvciBhIGZpbGVuYW1lIGFuZCB3cml0ZXMgdGhlIGNvbGxlY3RlZAogZW50cmllcyB0byB0 aGF0IGZpbGUuICBPbmx5IGVudHJpZXMgcmVmZXJlbmNlZCBpbiB0aGUgY3VycmVudAogZG9jdW1l bnQgd2l0aCBhbnkgXFxjaXRlLWxpa2UgbWFjcm9zIGFyZSB1c2VkLiAgVGhlIHNlcXVlbmNlIGlu CkBAIC0xMjQ3LDUgKzEyNDIsNSBAQCAoZGVmdW4gcmVmdGV4LWNyZWF0ZS1iaWJ0ZXgtZmlsZSAo YmliZmlsZSkKICAgICAobWVzc2FnZSAiJWQgZW50cmllcyBleHRyYWN0ZWQgYW5kIGNvcGllZCB0 byBuZXcgZGF0YWJhc2UiCiAgICAgICAgICAgICAgKGxlbmd0aCBlbnRyaWVzKSkpKQogCi0KKyhw cm92aWRlICdyZWZ0ZXgtY2l0ZSkKIDs7OyByZWZ0ZXgtY2l0ZS5lbCBlbmRzIGhlcmUKZGlmZiAt LWdpdCBhL2xpc3AvdGV4dG1vZGVzL3JlZnRleC1wYXJzZS5lbCBiL2xpc3AvdGV4dG1vZGVzL3Jl ZnRleC1wYXJzZS5lbAppbmRleCAzYTY0YWFkLi5hOTk3OTFlIDEwMDY0NAotLS0gYS9saXNwL3Rl eHRtb2Rlcy9yZWZ0ZXgtcGFyc2UuZWwKKysrIGIvbGlzcC90ZXh0bW9kZXMvcmVmdGV4LXBhcnNl LmVsCkBAIC00OSw3ICs0OSw4IEBAIChkZWZ1biByZWZ0ZXgtcGFyc2UtYWxsICgpCiAgIChyZWZ0 ZXgtYWNjZXNzLXNjYW4taW5mbyAnKDE2KSkpCiAKIChkZWZ1biByZWZ0ZXgtZG8tcGFyc2UgKHJl c2NhbiAmb3B0aW9uYWwgZmlsZSkKLSAgIkRvIGEgZG9jdW1lbnQgcmVzY2FuLiAgV2hlbiBhbGxv d2VkLCBkbyBvbmx5IGEgcGFydGlhbCBzY2FuIGZyb20gRklMRS4iCisgICJEbyBhIGRvY3VtZW50 IHJlc2Nhbi4KK1doZW4gYWxsb3dlZCwgZG8gb25seSBhIHBhcnRpYWwgc2NhbiBmcm9tIEZJTEUu IgogCiAgIDs7IE5vcm1hbGl6ZSB0aGUgcmVzY2FuIGFyZ3VtZW50CiAgIChzZXRxIHJlc2NhbiAo Y29uZCAoKGVxIHJlc2NhbiB0KSB0KQpAQCAtMTkxLDcgKzE5Miw3IEBAIChkZWZ1biByZWZ0ZXgt YWxsLWRvY3VtZW50LWZpbGVzICgmb3B0aW9uYWwgcmVsYXRpdmUpCiAoZGVmdmFyIGluZGV4LXRh Z3MpCiAKIChkZWZ1biByZWZ0ZXgtcGFyc2UtZnJvbS1maWxlIChmaWxlIGRvY3N0cnVjdCBtYXN0 ZXItZGlyKQotICA7OyBTY2FuIHRoZSBidWZmZXIgZm9yIGxhYmVscyBhbmQgc2F2ZSB0aGVtIGlu IGEgbGlzdC4KKyAgIlNjYW4gdGhlIGJ1ZmZlciBmb3IgbGFiZWxzIGFuZCBzYXZlIHRoZW0gaW4g YSBsaXN0LiIKICAgKGxldCAoKHJlZ2V4cCAocmVmdGV4LWV2ZXJ5dGhpbmctcmVnZXhwKSkKICAg ICAgICAgKGJvdW5kIDApCiAgICAgICAgIGZpbGUtZm91bmQgdG1wIGluY2x1ZGUtZmlsZQpAQCAt MzUwLDggKzM1MSw3IEBAIChkZWZ1biByZWZ0ZXgtcGFyc2UtZnJvbS1maWxlIChmaWxlIGRvY3N0 cnVjdCBtYXN0ZXItZGlyKQogICAgIGRvY3N0cnVjdCkpCiAKIChkZWZ1biByZWZ0ZXgtbG9jYXRl LWJpYmxpb2dyYXBoeS1maWxlcyAobWFzdGVyLWRpciAmb3B0aW9uYWwgZmlsZXMpCi0gIDs7IFNj YW4gYnVmZmVyIGZvciBiaWJsaW9ncmFwaHkgbWFjcm8gYW5kIHJldHVybiBmaWxlIGxpc3QuCi0K KyAgIlNjYW4gYnVmZmVyIGZvciBiaWJsaW9ncmFwaHkgbWFjcm8gYW5kIHJldHVybiBmaWxlIGxp c3QuIgogICAodW5sZXNzIGZpbGVzCiAgICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgICAoZ290by1j aGFyIChwb2ludC1taW4pKQpAQCAtMzc5LDEwICszNzksMTAgQEAgKGRlZnVuIHJlZnRleC1sb2Nh dGUtYmlibGlvZ3JhcGh5LWZpbGVzIChtYXN0ZXItZGlyICZvcHRpb25hbCBmaWxlcykKICAgICAo ZGVscSBuaWwgZmlsZXMpKSkKIAogKGRlZnVuIHJlZnRleC1yZXBsYWNlLWxhYmVsLWxpc3Qtc2Vn bWVudCAob2xkIGluc2VydCAmb3B0aW9uYWwgZW50aXJlbHkpCi0gIDs7IFJlcGxhY2UgdGhlIHNl Z21lbnQgaW4gT0xEIHdoaWNoIGNvcnJlc3BvbmRzIHRvIElOU0VSVC4KLSAgOzsgV29ya3Mgd2l0 aCBzaWRlIGVmZmVjdHMsIGRpcmVjdGx5IGNoYW5nZXMgb2xkLgotICA7OyBJZiBlbnRpcmVseSBp cyB0LCBqdXN0IHJldHVybiBJTlNFUlQuCi0gIDs7IFRoaXMgZnVuY3Rpb24gYWxzbyBtYWtlcyBz dXJlIHRoZSBvbGQgdG9jIG1hcmtlcnMgZG8gbm90IHBvaW50IGFueXdoZXJlLgorICAiUmVwbGFj ZSB0aGUgc2VnbWVudCBpbiBPTEQgd2hpY2ggY29ycmVzcG9uZHMgdG8gSU5TRVJULgorV29ya3Mg d2l0aCBzaWRlIGVmZmVjdHMsIGRpcmVjdGx5IGNoYW5nZXMgb2xkLgorSWYgRU5USVJFTFkgaXMg dCwganVzdCByZXR1cm4gSU5TRVJULgorVGhpcyBmdW5jdGlvbiBhbHNvIG1ha2VzIHN1cmUgdGhl IG9sZCB0b2MgbWFya2VycyBkbyBub3QgcG9pbnQgYW55d2hlcmUuIgogCiAgIChjb25kCiAgICAo ZW50aXJlbHkKQEAgLTQwNCw4ICs0MDQsOCBAQCAoZGVmdW4gcmVmdGV4LXJlcGxhY2UtbGFiZWwt bGlzdC1zZWdtZW50IChvbGQgaW5zZXJ0ICZvcHRpb25hbCBlbnRpcmVseSkKICAgICAgICAgbmV3 KSkpKQogCiAoZGVmdW4gcmVmdGV4LXNlY3Rpb24taW5mbyAoZmlsZSkKLSAgOzsgUmV0dXJuIGEg c2VjdGlvbiBlbnRyeSBmb3IgdGhlIGN1cnJlbnQgbWF0Y2guCi0gIDs7IENhcmVmdWw6IFRoaXMg ZnVuY3Rpb24gZXhwZWN0cyB0aGUgbWF0Y2gtZGF0YSB0byBiZSBzdGlsbCBpbiBwbGFjZSEKKyAg IlJldHVybiBhIHNlY3Rpb24gZW50cnkgZm9yIHRoZSBjdXJyZW50IG1hdGNoLgorQ2FyZWZ1bDog VGhpcyBmdW5jdGlvbiBleHBlY3RzIHRoZSBtYXRjaC1kYXRhIHRvIGJlIHN0aWxsIGluIHBsYWNl ISIKICAgKGxldCogKChtYXJrZXIgKHNldC1tYXJrZXIgKG1ha2UtbWFya2VyKSAoMS0gKG1hdGNo LWJlZ2lubmluZyAzKSkpKQogICAgICAgICAgKG1hY3JvIChyZWZ0ZXgtbWF0Y2gtc3RyaW5nIDMp KQogICAgICAgICAgKHByZWZpeCAoc2F2ZS1tYXRjaC1kYXRhCkBAIC00NDAsOSArNDQwLDkgQEAg KGRlZnVuIHJlZnRleC1zZWN0aW9uLWluZm8gKGZpbGUpCiAgICAgICAgICAgbGl0ZXJhbCAobWFy a2VyLXBvc2l0aW9uIG1hcmtlcikpKSkKIAogKGRlZnVuIHJlZnRleC1lbnN1cmUtaW5kZXgtc3Vw cG9ydCAoJm9wdGlvbmFsIGFib3J0KQotICA7OyBXaGVuIGluZGV4IHN1cHBvcnQgaXMgdHVybmVk IG9mZiwgYXNrIHRvIHR1cm4gaXQgb24gYW5kCi0gIDs7IHNldCB0aGUgY3VycmVudCBwcmVmaXgg YXJndW1lbnQgc28gdGhhdCBgcmVmdGV4LWFjY2Vzcy1zY2FuLWluZm8nCi0gIDs7IHdpbGwgcmVz Y2FuIHRoZSBlbnRpcmUgZG9jdW1lbnQuCisgICJXaGVuIGluZGV4IHN1cHBvcnQgaXMgdHVybmVk IG9mZiwgYXNrIHRvIHR1cm4gaXQgb24gYW5kCitzZXQgdGhlIGN1cnJlbnQgcHJlZml4IGFyZ3Vt ZW50IHNvIHRoYXQgYHJlZnRleC1hY2Nlc3Mtc2Nhbi1pbmZvJword2lsbCByZXNjYW4gdGhlIGVu dGlyZSBkb2N1bWVudC4iCiAgIChjb25kCiAgICAocmVmdGV4LXN1cHBvcnQtaW5kZXggdCkKICAg ICgoeS1vci1uLXAgIlR1cm4gb24gaW5kZXggc3VwcG9ydCBhbmQgcmVzY2FuIGVudGlyZSBkb2N1 bWVudD8gIikKQEAgLTQ2MCw4ICs0NjAsOCBAQCAoZGVmdW4gcmVmdGV4LWluZGV4LWluZm8tc2Fm ZSAoZmlsZSkKIAogKGRlZnZhciB0ZXN0LWR1bW15KQogKGRlZnVuIHJlZnRleC1pbmRleC1pbmZv IChmaWxlKQotICA7OyBSZXR1cm4gYW4gaW5kZXggZW50cnkgZm9yIHRoZSBjdXJyZW50IG1hdGNo LgotICA7OyBDYXJlZnVsOiBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMgdGhlIG1hdGNoLWRhdGEgdG8g YmUgc3RpbGwgaW4gcGxhY2UhCisgICJSZXR1cm4gYW4gaW5kZXggZW50cnkgZm9yIHRoZSBjdXJy ZW50IG1hdGNoLgorQ2FyZWZ1bDogVGhpcyBmdW5jdGlvbiBleHBlY3RzIHRoZSBtYXRjaC1kYXRh IHRvIGJlIHN0aWxsIGluIHBsYWNlISIKICAgKGNhdGNoICdleGl0CiAgICAgKGxldCogKChtYWNy byAocmVmdGV4LW1hdGNoLXN0cmluZyAxMCkpCiAgICAgICAgICAgIChib20gKG1hdGNoLWJlZ2lu bmluZyAxMCkpCkBAIC01MDgsNyArNTA4LDcgQEAgKGRlZnVuIHJlZnRleC1pbmRleC1pbmZvIChm aWxlKQogICAgICAgKGxpc3QgJ2luZGV4IGluZGV4LXRhZyBjb250ZXh0IGZpbGUgYm9tIGFyZyBr ZXkgc2hvd2tleSBzb3J0a2V5IGtleS1lbmQpKSkpCiAKIChkZWZ1biByZWZ0ZXgtc2hvcnQtY29u dGV4dCAoZW52IHBhcnNlICZvcHRpb25hbCBib3VuZCBkZXJpdmUpCi0gIDs7IEdldCBhYm91dCBv bmUgbGluZSBvZiB1c2VmdWwgY29udGV4dCBmb3IgdGhlIGxhYmVsIGRlZmluaXRpb24gYXQgcG9p bnQuCisgICJHZXQgYWJvdXQgb25lIGxpbmUgb2YgdXNlZnVsIGNvbnRleHQgZm9yIHRoZSBsYWJl bCBkZWZpbml0aW9uIGF0IHBvaW50LiIKIAogICAoaWYgKGNvbnNwIHBhcnNlKQogICAgICAgKHNl dHEgcGFyc2UgKGlmIGRlcml2ZSAoY2RyIHBhcnNlKSAoY2FyIHBhcnNlKSkpKQpAQCAtNTY4LDkg KzU2OCw5IEBAIChkZWZ1biByZWZ0ZXgtc2hvcnQtY29udGV4dCAoZW52IHBhcnNlICZvcHRpb25h bCBib3VuZCBkZXJpdmUpCiAgICAgICJJTlZBTElEIFZBTFVFIE9GIFBBUlNFIikpKSkKIAogKGRl ZnVuIHJlZnRleC13aGVyZS1hbS1JICgpCi0gIDs7IFJldHVybiB0aGUgZG9jc3RydWN0IGVudHJ5 IGFib3ZlIHBvaW50LiAgQWN0dWFsbHkgcmV0dXJucyBhIGNvbnMKLSAgOzsgY2VsbCBpbiB3aGlj aCB0aGUgY2RyIGlzIGEgZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSBpbmZvcm1hdGlvbiBpcwotICA7 OyBleGFjdCAodCkgb3IgYXBwcm94aW1hdGUgKG5pbCkuCisgICJSZXR1cm4gdGhlIGRvY3N0cnVj dCBlbnRyeSBhYm92ZSBwb2ludC4KK0FjdHVhbGx5IHJldHVybnMgYSBjb25zIGNlbGwgaW4gd2hp Y2ggdGhlIGNkciBpcyBhIGZsYWcgaW5kaWNhdGluZworaWYgdGhlIGluZm9ybWF0aW9uIGlzIGV4 YWN0ICh0KSBvciBhcHByb3hpbWF0ZSAobmlsKS4iCiAKICAgKGxldCAoKGRvY3N0cnVjdCAoc3lt Ym9sLXZhbHVlIHJlZnRleC1kb2NzdHJ1Y3Qtc3ltYm9sKSkKICAgICAgICAgKGNudCAwKSBydG4g cnRuLWlmLW5vLW90aGVyCkBAIC03NDgsMTAgKzc0OCwxMCBAQCAoZGVmdW4gcmVmdGV4LW5vdGlj ZS1uZXcgKCZvcHRpb25hbCBuIGZvcmNlKQogICApCiAKIChkZWZzdWJzdCByZWZ0ZXgtbW92ZS10 by1wcmV2aW91cy1hcmcgKCZvcHRpb25hbCBib3VuZCkKLSAgOzsgQXNzdW1pbmcgdGhhdCB3ZSBh cmUgaW4gZnJvbnQgb2YgYSBtYWNybyBhcmd1bWVudCwKLSAgOzsgbW92ZSBiYWNrd2FyZCB0byB0 aGUgY2xvc2luZyBwYXJlbnRoZXNpcyBvZiB0aGUgcHJldmlvdXMgYXJndW1lbnQuCi0gIDs7IFRo aXMgZnVuY3Rpb24gdW5kZXJzdGFuZHMgdGhlIHNwbGl0dGluZyBvZiBtYWNyb3Mgb3ZlciBzZXZl cmFsIGxpbmVzCi0gIDs7IGluIFRlWC4KKyAgIkFzc3VtaW5nIHRoYXQgd2UgYXJlIGluIGZyb250 IG9mIGEgbWFjcm8gYXJndW1lbnQsCittb3ZlIGJhY2t3YXJkIHRvIHRoZSBjbG9zaW5nIHBhcmVu dGhlc2lzIG9mIHRoZSBwcmV2aW91cyBhcmd1bWVudC4KK1RoaXMgZnVuY3Rpb24gdW5kZXJzdGFu ZHMgdGhlIHNwbGl0dGluZyBvZiBtYWNyb3Mgb3ZlciBzZXZlcmFsIGxpbmVzCitpbiBUZVguIgog ICAoY29uZAogICAgOzsgSnVzdCB0byBiZSBxdWljazoKICAgICgobWVtcSAocHJlY2VkaW5nLWNo YXIpICcoP1xdID9cfSkpKQpAQCAtNzY0LDI4ICs3NjQsMjcgQEAgKGRlZnN1YnN0IHJlZnRleC1t b3ZlLXRvLXByZXZpb3VzLWFyZyAoJm9wdGlvbmFsIGJvdW5kKQogICAgKHQgbmlsKSkpCiAKIChk ZWZ1biByZWZ0ZXgtd2hhdC1tYWNyby1zYWZlICh3aGljaCAmb3B0aW9uYWwgYm91bmQpCi0gIDs7 IHJlZnRleC13aGF0LW1hY3JvIHdpdGggc3BlY2lhbCBzeW50YXggdGFibGUuCisgICJDYWxsIGBy ZWZ0ZXgtd2hhdC1tYWNybycgd2l0aCBzcGVjaWFsIHN5bnRheCB0YWJsZS4iCiAgIChyZWZ0ZXgt d2l0aC1zcGVjaWFsLXN5bnRheAogICAgKHJlZnRleC13aGF0LW1hY3JvIHdoaWNoIGJvdW5kKSkp CiAKIChkZWZ1biByZWZ0ZXgtd2hhdC1tYWNybyAod2hpY2ggJm9wdGlvbmFsIGJvdW5kKQotICA7 OyBGaW5kIG91dCBpZiBwb2ludCBpcyB3aXRoaW4gdGhlIGFyZ3VtZW50cyBvZiBhbnkgVGVYLW1h Y3JvLgotICA7OyBUaGUgcmV0dXJuIHZhbHVlIGlzIGVpdGhlciAoIlxcbWFjcm8iIC4gKHBvaW50 KSkgb3IgYSBsaXN0IG9mIHRoZW0uCi0KLSAgOzsgSWYgV0hJQ0ggaXMgbmlsLCBpbW1lZGlhdGVs eSByZXR1cm4gbmlsLgotICA7OyBJZiBXSElDSCBpcyAxLCByZXR1cm4gaW5uZXJtb3N0IGVuY2xv c2luZyBtYWNyby4KLSAgOzsgSWYgV0hJQ0ggaXMgdCwgcmV0dXJuIGxpc3Qgb2YgYWxsIG1hY3Jv cyBlbmNsb3NpbmcgcG9pbnQuCi0gIDs7IElmIFdISUNIIGlzIGEgbGlzdCBvZiBtYWNyb3MsIGxv b2sgb25seSBmb3IgdGhvc2UgbWFjcm9zIGFuZCByZXR1cm4gdGhlCi0gIDs7ICAgIG5hbWUgb2Yg dGhlIGZpcnN0IG1hY3JvIGluIHRoaXMgbGlzdCBmb3VuZCB0byBlbmNsb3NlIHBvaW50LgotICA7 OyBJZiB0aGUgb3B0aW9uYWwgQk9VTkQgaXMgYW4gaW50ZWdlciwgYm91bmQgYmFja3dhcmRzIGRp cmVjdGVkCi0gIDs7ICAgIHNlYXJjaGVzIHRvIHRoaXMgcG9pbnQuICBJZiBpdCBpcyBuaWwsIGxp bWl0IHRvIG5lYXJlc3QgXHNlY3Rpb24gLQotICA7OyAgICBsaWtlIHN0YXRlbWVudC4KLQotICA7 OyBUaGlzIGZ1bmN0aW9uIGlzIHByZXR0eSBzdGFibGUsIGJ1dCBjYW4gYmUgZm9vbGVkIGlmIHRo ZSB0ZXh0IGNvbnRhaW5zCi0gIDs7IHRoaW5ncyBsaWtlIFxtYWNyb3thYX17YmJ9IHdoZXJlIFxt YWNybyBpcyBkZWZpbmVkIHRvIHRha2Ugb25seSBvbmUKLSAgOzsgYXJndW1lbnQuICBBcyBSZWZU ZVggY2Fubm90IGtub3cgdGhpcywgdGhlIHN0cmluZyAiYmIiIHdvdWxkIHN0aWxsIGJlCi0gIDs7 IGNvbnNpZGVyZWQgYW4gYXJndW1lbnQgb2YgbWFjcm8gXG1hY3JvLgotCisgICJGaW5kIG91dCBp ZiBwb2ludCBpcyB3aXRoaW4gdGhlIGFyZ3VtZW50cyBvZiBhbnkgVGVYLW1hY3JvLgorVGhlIHJl dHVybiB2YWx1ZSBpcyBlaXRoZXIgKFwiXFxtYWNyb1wiIC4gKHBvaW50KSkgb3IgYSBsaXN0IG9m IHRoZW0uCisKK0lmIFdISUNIIGlzIG5pbCwgaW1tZWRpYXRlbHkgcmV0dXJuIG5pbC4KK0lmIFdI SUNIIGlzIDEsIHJldHVybiBpbm5lcm1vc3QgZW5jbG9zaW5nIG1hY3JvLgorSWYgV0hJQ0ggaXMg dCwgcmV0dXJuIGxpc3Qgb2YgYWxsIG1hY3JvcyBlbmNsb3NpbmcgcG9pbnQuCitJZiBXSElDSCBp cyBhIGxpc3Qgb2YgbWFjcm9zLCBsb29rIG9ubHkgZm9yIHRob3NlIG1hY3JvcyBhbmQgcmV0dXJu IHRoZQorICBuYW1lIG9mIHRoZSBmaXJzdCBtYWNybyBpbiB0aGlzIGxpc3QgZm91bmQgdG8gZW5j bG9zZSBwb2ludC4KK0lmIHRoZSBvcHRpb25hbCBCT1VORCBpcyBhbiBpbnRlZ2VyLCBib3VuZCBi YWNrd2FyZHMgZGlyZWN0ZWQKKyAgc2VhcmNoZXMgdG8gdGhpcyBwb2ludC4gIElmIGl0IGlzIG5p bCwgbGltaXQgdG8gbmVhcmVzdCBcXHNlY3Rpb24gLQorICBsaWtlIHN0YXRlbWVudC4KKworVGhp cyBmdW5jdGlvbiBpcyBwcmV0dHkgc3RhYmxlLCBidXQgY2FuIGJlIGZvb2xlZCBpZiB0aGUgdGV4 dCBjb250YWlucwordGhpbmdzIGxpa2UgXFxtYWNyb3thYX17YmJ9IHdoZXJlIFxcbWFjcm8gaXMg ZGVmaW5lZCB0byB0YWtlIG9ubHkgb25lCithcmd1bWVudC4gIEFzIFJlZlRlWCBjYW5ub3Qga25v dyB0aGlzLCB0aGUgc3RyaW5nIFwiYmJcIiB3b3VsZCBzdGlsbCBiZQorY29uc2lkZXJlZCBhbiBh cmd1bWVudCBvZiBtYWNybyBcXG1hY3JvLiIKICAgKHVubGVzcyByZWZ0ZXgtc2VjdGlvbi1yZWdl eHAgKHJlZnRleC1jb21waWxlLXZhcmlhYmxlcykpCiAgIChjYXRjaCAnZXhpdAogICAgIChpZiAo bnVsbCB3aGljaCkgKHRocm93ICdleGl0IG5pbCkpCkBAIC04MzIsMjAgKzgzMSwxOSBAQCAoZGVm dW4gcmVmdGV4LXdoYXQtbWFjcm8gKHdoaWNoICZvcHRpb25hbCBib3VuZCkKICAgICAgICAgKG5y ZXZlcnNlIGNtZC1saXN0KSkpKSkKIAogKGRlZnVuIHJlZnRleC13aGF0LWVudmlyb25tZW50ICh3 aGljaCAmb3B0aW9uYWwgYm91bmQpCi0gIDs7IEZpbmQgb3V0IGlmIHBvaW50IGlzIGluc2lkZSBh IExhVGVYIGVudmlyb25tZW50LgotICA7OyBUaGUgcmV0dXJuIHZhbHVlIGlzIChlLmcuKSBlaXRo ZXIgKCJlcXVhdGlvbiIgLiAocG9pbnQpKSBvciBhIGxpc3Qgb2YKLSAgOzsgdGhlbS4KLQotICA7 OyBJZiBXSElDSCBpcyBuaWwsIGltbWVkaWF0ZWx5IHJldHVybiBuaWwuCi0gIDs7IElmIFdISUNI IGlzIDEsIHJldHVybiBpbm5lcm1vc3QgZW5jbG9zaW5nIGVudmlyb25tZW50LgotICA7OyBJZiBX SElDSCBpcyB0LCByZXR1cm4gbGlzdCBvZiBhbGwgZW52aXJvbm1lbnRzIGVuY2xvc2luZyBwb2lu dC4KLSAgOzsgSWYgV0hJQ0ggaXMgYSBsaXN0IG9mIGVudmlyb25tZW50cywgbG9vayBvbmx5IGZv ciB0aG9zZSBlbnZpcm9ubWVudHMgYW5kCi0gIDs7ICAgcmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBm aXJzdCBlbnZpcm9ubWVudCBpbiB0aGlzIGxpc3QgZm91bmQgdG8gZW5jbG9zZQotICA7OyAgIHBv aW50LgotCi0gIDs7IElmIHRoZSBvcHRpb25hbCBCT1VORCBpcyBhbiBpbnRlZ2VyLCBib3VuZCBi YWNrd2FyZHMgZGlyZWN0ZWQgc2VhcmNoZXMgdG8KLSAgOzsgdGhpcyBwb2ludC4gIElmIGl0IGlz IG5pbCwgbGltaXQgdG8gbmVhcmVzdCBcc2VjdGlvbiAtIGxpa2Ugc3RhdGVtZW50LgotCisgICJG aW5kIG91dCBpZiBwb2ludCBpcyBpbnNpZGUgYSBMYVRlWCBlbnZpcm9ubWVudC4KK1RoZSByZXR1 cm4gdmFsdWUgaXMgKGUuZy4pIGVpdGhlciAoXCJlcXVhdGlvblwiIC4gKHBvaW50KSkgb3IgYSBs aXN0IG9mCit0aGVtLgorCitJZiBXSElDSCBpcyBuaWwsIGltbWVkaWF0ZWx5IHJldHVybiBuaWwu CitJZiBXSElDSCBpcyAxLCByZXR1cm4gaW5uZXJtb3N0IGVuY2xvc2luZyBlbnZpcm9ubWVudC4K K0lmIFdISUNIIGlzIHQsIHJldHVybiBsaXN0IG9mIGFsbCBlbnZpcm9ubWVudHMgZW5jbG9zaW5n IHBvaW50LgorSWYgV0hJQ0ggaXMgYSBsaXN0IG9mIGVudmlyb25tZW50cywgbG9vayBvbmx5IGZv ciB0aG9zZSBlbnZpcm9ubWVudHMgYW5kCisgIHJldHVybiB0aGUgbmFtZSBvZiB0aGUgZmlyc3Qg ZW52aXJvbm1lbnQgaW4gdGhpcyBsaXN0IGZvdW5kIHRvIGVuY2xvc2UKKyAgcG9pbnQuCisKK0lm IHRoZSBvcHRpb25hbCBCT1VORCBpcyBhbiBpbnRlZ2VyLCBib3VuZCBiYWNrd2FyZHMgZGlyZWN0 ZWQgc2VhcmNoZXMgdG8KK3RoaXMgcG9pbnQuICBJZiBpdCBpcyBuaWwsIGxpbWl0IHRvIG5lYXJl c3QgXFxzZWN0aW9uIC0gbGlrZSBzdGF0ZW1lbnQuIgogICAodW5sZXNzIHJlZnRleC1zZWN0aW9u LXJlZ2V4cCAocmVmdGV4LWNvbXBpbGUtdmFyaWFibGVzKSkKICAgKGNhdGNoICdleGl0CiAgICAg KHNhdmUtZXhjdXJzaW9uCkBAIC04NzAsMTggKzg2OCwxNyBAQCAoZGVmdW4gcmVmdGV4LXdoYXQt ZW52aXJvbm1lbnQgKHdoaWNoICZvcHRpb25hbCBib3VuZCkKICAgICAgICAgKG5yZXZlcnNlIGVu di1saXN0KSkpKSkKIAogKGRlZnVuIHJlZnRleC13aGF0LXNwZWNpYWwtZW52ICh3aGljaCAmb3B0 aW9uYWwgYm91bmQpCi0gIDs7IFJ1biB0aGUgc3BlY2lhbCBlbnZpcm9ubWVudCBwYXJzZXJzIGFu ZCByZXR1cm4gdGhlIG1hdGNoZXMuCi0gIDs7Ci0gIDs7IFRoZSByZXR1cm4gdmFsdWUgaXMgKGUu Zy4pIGVpdGhlciAoIm15LXBhcnNlci1mdW5jdGlvbiIgLiAocG9pbnQpKQotICA7OyBvciBhIGxp c3Qgb2YgdGhlbS4KLQotICA7OyBJZiBXSElDSCBpcyBuaWwsIGltbWVkaWF0ZWx5IHJldHVybiBu aWwuCi0gIDs7IElmIFdISUNIIGlzIDEsIHJldHVybiBpbm5lcm1vc3QgZW5jbG9zaW5nIGVudmly b25tZW50LgotICA7OyBJZiBXSElDSCBpcyB0LCByZXR1cm4gbGlzdCBvZiBhbGwgZW52aXJvbm1l bnRzIGVuY2xvc2luZyBwb2ludC4KLSAgOzsgSWYgV0hJQ0ggaXMgYSBsaXN0IG9mIGVudmlyb25t ZW50cywgbG9vayBvbmx5IGZvciB0aG9zZSBlbnZpcm9ubWVudHMgYW5kCi0gIDs7ICAgcmV0dXJu IHRoZSBuYW1lIG9mIHRoZSBmaXJzdCBlbnZpcm9ubWVudCBpbiB0aGlzIGxpc3QgZm91bmQgdG8g ZW5jbG9zZQotICA7OyAgIHBvaW50LgorICAiUnVuIHRoZSBzcGVjaWFsIGVudmlyb25tZW50IHBh cnNlcnMgYW5kIHJldHVybiB0aGUgbWF0Y2hlcy4KKworVGhlIHJldHVybiB2YWx1ZSBpcyAoZS5n LikgZWl0aGVyIChcIm15LXBhcnNlci1mdW5jdGlvblwiIC4gKHBvaW50KSkKK29yIGEgbGlzdCBv ZiB0aGVtLgogCitJZiBXSElDSCBpcyBuaWwsIGltbWVkaWF0ZWx5IHJldHVybiBuaWwuCitJZiBX SElDSCBpcyAxLCByZXR1cm4gaW5uZXJtb3N0IGVuY2xvc2luZyBlbnZpcm9ubWVudC4KK0lmIFdI SUNIIGlzIHQsIHJldHVybiBsaXN0IG9mIGFsbCBlbnZpcm9ubWVudHMgZW5jbG9zaW5nIHBvaW50 LgorSWYgV0hJQ0ggaXMgYSBsaXN0IG9mIGVudmlyb25tZW50cywgbG9vayBvbmx5IGZvciB0aG9z ZSBlbnZpcm9ubWVudHMgYW5kCisgIHJldHVybiB0aGUgbmFtZSBvZiB0aGUgZmlyc3QgZW52aXJv bm1lbnQgaW4gdGhpcyBsaXN0IGZvdW5kIHRvIGVuY2xvc2UKKyAgcG9pbnQuIgogICAodW5sZXNz IHJlZnRleC1zZWN0aW9uLXJlZ2V4cCAocmVmdGV4LWNvbXBpbGUtdmFyaWFibGVzKSkKICAgKGNh dGNoICdleGl0CiAgICAgKHNhdmUtZXhjdXJzaW9uCkBAIC05MTEsMTAgKzkwOCwxMCBAQCAoZGVm dW4gcmVmdGV4LXdoYXQtc3BlY2lhbC1lbnYgKHdoaWNoICZvcHRpb25hbCBib3VuZCkKICAgICAg ICAgICAoY2FyIHNwZWNpYWxzKSkpKSkpCiAKIChkZWZzdWJzdCByZWZ0ZXgtbW92ZS10by1uZXh0 LWFyZyAoJm9wdGlvbmFsIGlnbm9yZSkKLSAgOzsgQXNzdW1pbmcgdGhhdCB3ZSBhcmUgYXQgdGhl IGVuZCBvZiBhIG1hY3JvIG5hbWUgb3IgYSBtYWNybyBhcmd1bWVudCwKLSAgOzsgbW92ZSBmb3J3 YXJkIHRvIHRoZSBvcGVuaW5nIHBhcmVudGhlc2lzIG9mIHRoZSBuZXh0IGFyZ3VtZW50LgotICA7 OyBUaGlzIGZ1bmN0aW9uIHVuZGVyc3RhbmRzIHRoZSBzcGxpdHRpbmcgb2YgbWFjcm9zIG92ZXIg c2V2ZXJhbCBsaW5lcwotICA7OyBpbiBUZVguCisgICJBc3N1bWluZyB0aGF0IHdlIGFyZSBhdCB0 aGUgZW5kIG9mIGEgbWFjcm8gbmFtZSBvciBhIG1hY3JvIGFyZ3VtZW50LAorbW92ZSBmb3J3YXJk IHRvIHRoZSBvcGVuaW5nIHBhcmVudGhlc2lzIG9mIHRoZSBuZXh0IGFyZ3VtZW50LgorVGhpcyBm dW5jdGlvbiB1bmRlcnN0YW5kcyB0aGUgc3BsaXR0aW5nIG9mIG1hY3JvcyBvdmVyIHNldmVyYWwg bGluZXMKK2luIFRlWC4iCiAgIChjb25kCiAgICA7OyBKdXN0IHRvIGJlIHF1aWNrOgogICAgKCht ZW1xIChmb2xsb3dpbmctY2hhcikgJyg/XFsgP1x7KSkpCkBAIC05MzAsOCArOTI3LDggQEAgKGRl ZnVuIHJlZnRleC1udGgtYXJnLXdyYXBwZXIgKGtleSkKICAgICAocmVmdGV4LW50aC1hcmcgKG50 aCA1IGVudHJ5KSAobnRoIDYgZW50cnkpKSkpCiAKIChkZWZ1biByZWZ0ZXgtbnRoLWFyZyAobiAm b3B0aW9uYWwgb3B0LWFyZ3MpCi0gIDs7IFJldHVybiB0aGUgbnRoIGZvbGxvd2luZyB7fSBvciBb XSBwYXJlbnRoZXNlcyBjb250ZW50LgotICA7OyBPUFQtQVJHUyBpcyBhIGxpc3Qgb2YgYXJndW1l bnQgbnVtYmVycyB3aGljaCBhcmUgb3B0aW9uYWwuCisgICJSZXR1cm4gdGhlIE50aCBmb2xsb3dp bmcge30gb3IgW10gcGFyZW50aGVzZXMgY29udGVudC4KK09QVC1BUkdTIGlzIGEgbGlzdCBvZiBh cmd1bWVudCBudW1iZXJzIHdoaWNoIGFyZSBvcHRpb25hbC4iCiAKICAgOzsgSWYgd2UgYXJlIHNp dHRpbmcgYXQgYSBtYWNybyBzdGFydCwgc2tpcCB0byBlbmQgb2YgbWFjcm8gbmFtZS4KICAgKGFu ZCAoZXEgKGZvbGxvd2luZy1jaGFyKSA/XFwpIChza2lwLWNoYXJzLWZvcndhcmQgImEtekEtWipc XFxcIikpCkBAIC05NzQsOCArOTcxLDggQEAgKGRlZnVuIHJlZnRleC1tb3ZlLW92ZXItdG91Y2hp bmctYXJncyAoKQogICAgIChlcnJvciBuaWwpKSkKIAogKGRlZnVuIHJlZnRleC1jb250ZXh0LXN1 YnN0cmluZyAoJm9wdGlvbmFsIHRvLWVuZCkKLSAgOzsgUmV0dXJuIHVwIHRvIDE1MCBjaGFycyBm cm9tIHBvaW50Ci0gIDs7IFdoZW4gcG9pbnQgaXMganVzdCBhZnRlciBhIHsgb3IgWywgbGltaXQg c3RyaW5nIHRvIG1hdGNoaW5nIHBhcmVudGhlc2lzCisgICJSZXR1cm4gdXAgdG8gMTUwIGNoYXJz IGZyb20gcG9pbnQuCitXaGVuIHBvaW50IGlzIGp1c3QgYWZ0ZXIgYSB7IG9yIFssIGxpbWl0IHN0 cmluZyB0byBtYXRjaGluZyBwYXJlbnRoZXNpcyIKICAgKGNvbmQKICAgICh0by1lbmQKICAgICA7 OyBFbnZpcm9ubWVudCAtIGZpbmQgbmV4dCBcZW5kCkBAIC0xMDA3LDggKzEwMDQsNyBAQCAoZGVm dW4gcmVmdGV4LWNvbnRleHQtc3Vic3RyaW5nICgmb3B0aW9uYWwgdG8tZW5kKQogKGRlZnZhciBy ZWZ0ZXgtc2VjdGlvbi1udW1iZXJzIChtYWtlLXZlY3RvciByZWZ0ZXgtbWF4LXNlY3Rpb24tZGVw dGggMCkpCiAKIChkZWZ1biByZWZ0ZXgtaW5pdC1zZWN0aW9uLW51bWJlcnMgKCZvcHRpb25hbCB0 b2MtZW50cnkgYXBwZW5kaXgpCi0gIDs7IEluaXRpYWxpemUgdGhlIHNlY3Rpb24gbnVtYmVycyB3 aXRoIHplcm9zIG9yIHdpdGggd2hhdCBpcyBmb3VuZAotICA7OyBpbiB0aGUgdG9jIGVudHJ5Lgor ICAiSW5pdGlhbGl6ZSB0aGUgc2VjdGlvbiBudW1iZXJzIHdpdGggemVyb3Mgb3Igd2l0aCB3aGF0 IGlzIGZvdW5kIGluIHRoZSBUT0MtRU5UUlkuIgogICAobGV0KiAoKGxldmVsICAob3IgKG50aCA1 IHRvYy1lbnRyeSkgLTEpKQogICAgICAgICAgKG51bWJlcnMgKG5yZXZlcnNlIChzcGxpdC1zdHJp bmcgKG9yIChudGggNiB0b2MtZW50cnkpICIiKSAiXFwuIikpKQogICAgICAgICAgKGRlcHRoICgx LSAobGVuZ3RoIHJlZnRleC1zZWN0aW9uLW51bWJlcnMpKSkKQEAgLTEwMjYsOCArMTAyMiw4IEBA IChkZWZ1biByZWZ0ZXgtaW5pdC1zZWN0aW9uLW51bWJlcnMgKCZvcHRpb25hbCB0b2MtZW50cnkg YXBwZW5kaXgpCiAgIChwdXQgJ3JlZnRleC1zZWN0aW9uLW51bWJlcnMgJ2FwcGVuZGl4IGFwcGVu ZGl4KSkKIAogKGRlZnVuIHJlZnRleC1zZWN0aW9uLW51bWJlciAoJm9wdGlvbmFsIGxldmVsIHN0 YXIpCi0gIDs7IFJldHVybiBhIHN0cmluZyB3aXRoIHRoZSBjdXJyZW50IHNlY3Rpb24gbnVtYmVy LgotICA7OyBXaGVuIExFVkVMIGlzIG5vbi1uaWwsIGluY3JlYXNlIHNlY3Rpb24gbnVtYmVycyBv biB0aGF0IGxldmVsLgorICAiUmV0dXJuIGEgc3RyaW5nIHdpdGggdGhlIGN1cnJlbnQgc2VjdGlv biBudW1iZXIuCitXaGVuIExFVkVMIGlzIG5vbi1uaWwsIGluY3JlYXNlIHNlY3Rpb24gbnVtYmVy cyBvbiB0aGF0IGxldmVsLiIKICAgKGxldCogKChkZXB0aCAoMS0gKGxlbmd0aCByZWZ0ZXgtc2Vj dGlvbi1udW1iZXJzKSkpIGlkeCBuIChzdHJpbmcgIiIpCiAgICAgICAgICAoYXBwZW5kaXggKGdl dCAncmVmdGV4LXNlY3Rpb24tbnVtYmVycyAnYXBwZW5kaXgpKQogICAgICAgICAgKHBhcnRzcGVj aWFsIChhbmQgKG5vdCByZWZ0ZXgtcGFydC1yZXNldHMtY2hhcHRlcikKQEAgLTEwNzMsNyArMTA2 OSw3IEBAIChkZWZ1biByZWZ0ZXgtc2VjdGlvbi1udW1iZXIgKCZvcHRpb25hbCBsZXZlbCBzdGFy KQogICAgICAgICBzdHJpbmcpKSkpCiAKIChkZWZ1biByZWZ0ZXgtcm9tYW4tbnVtYmVyIChuKQot ICA7OyBSZXR1cm4gYXMgYSBzdHJpbmcgdGhlIHJvbWFuIG51bWJlciBlcXVhbCB0byBOLgorICAi UmV0dXJuIGFzIGEgc3RyaW5nIHRoZSByb21hbiBudW1iZXIgZXF1YWwgdG8gTi4iCiAgIChsZXQg KChucmVzdCBuKQogICAgICAgICAoc3RyaW5nICIiKQogICAgICAgICAobGlzdCAnKCgxMDAwIC4g Ik0iKSAoIDkwMCAuICJDTSIpICggNTAwIC4gIkQiKSAoIDQwMCAuICJDRCIpCi0tIAoxLjguMwoK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphdWN0ZXgt ZGV2ZWwgbWFpbGluZyBsaXN0CmF1Y3RleC1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2F1Y3RleC1kZXZlbAo=