From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thompson, David" Subject: Re: [PATCH] build: ruby: Rewrite build system to use gem archives. Date: Mon, 17 Aug 2015 19:31:57 -0400 Message-ID: References: <87d1zcfmyn.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113ecb4a261baa051d8a3520 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:36463) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZRTso-0006yg-3Q for guix-devel@gnu.org; Mon, 17 Aug 2015 19:32:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZRTsk-00055I-JI for guix-devel@gnu.org; Mon, 17 Aug 2015 19:32:01 -0400 Received: from mail-io0-f178.google.com ([209.85.223.178]:33942) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZRTsk-000559-Cn for guix-devel@gnu.org; Mon, 17 Aug 2015 19:31:58 -0400 Received: by iodb91 with SMTP id b91so169450198iod.1 for ; Mon, 17 Aug 2015 16:31:58 -0700 (PDT) In-Reply-To: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel --001a113ecb4a261baa051d8a3520 Content-Type: text/plain; charset=UTF-8 On Sun, Aug 16, 2015 at 6:19 PM, Thompson, David wrote: > Update: > > On Tue, Jul 28, 2015 at 9:09 AM, David Thompson > wrote: > >> One other caveat is that downloading gems from rubygems.org currently >> *does not* work because the HTTP responses include an invalid >> Content-Type header. I added a temporary hack to do my development >> work (not in this patch), and I'm currently waiting on a response from >> the rubygems.org admins to see if they will fix the issue. So, this >> patch should not be applied until this is resolved. >> >> See: http://help.rubygems.org/discussions/problems/21223-invalid-content-type-header-when-downloading-gem-archive?unresolve=true > > This issue has been fixed by the rubygems.org admins! I would like to > apply the below patch ASAP and get to work on 'guix import gem' if > there are no objections. > > The major change from the previous version of this patch is that I > figured how to unpack the source gem, allow the package build script > to make any necessary dynamic patches, and then install a repacked gem > as opposed to the source gem. I found a problem with this system when it came to running certain test suites that used Bundler to read the gemspec. A lot of upstream gemspec include things like shell commands to run 'git ls-files' and things. In the former build system, the 'gitify' phase took care of this. Now, we can more easily deal with it by asking the 'gem' utility to generate a gemspec for us based on the source gem archive. Hope that wasn't too confusing for the non-Rubyists. TIA for review. - Dave --001a113ecb4a261baa051d8a3520 Content-Type: text/x-patch; charset=US-ASCII; name="0001-build-ruby-Rewrite-build-system-to-use-gem-archives.patch" Content-Disposition: attachment; filename="0001-build-ruby-Rewrite-build-system-to-use-gem-archives.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_idgjzulp1 RnJvbSAxN2I3MzA3YjExZGQ1ODI1ZDdmZjg4MTYyNGM0YjgyMzA1NmJlZDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBUaG9tcHNvbiA8ZHRob21wc29uMkB3b3JjZXN0ZXIu ZWR1PgpEYXRlOiBTdW4sIDI2IEp1bCAyMDE1IDIyOjAxOjU0IC0wNDAwClN1YmplY3Q6IFtQQVRD SF0gYnVpbGQ6IHJ1Ynk6IFJld3JpdGUgYnVpbGQgc3lzdGVtIHRvIHVzZSBnZW0gYXJjaGl2ZXMu CgpDby1BdXRob3JlZC1CeTogUGpvdHIgUHJpbnMgPHBqb3RyLnB1YmxpYzAxQHRoZWJpcmQubmw+ CgoqIGd1aXgvYnVpbGQtc3lzdGVtL3J1Ynkuc2NtIChsb3dlcik6IFJlbW92ZSBnaXQgZGVwZW5k ZW5jeS4KICAocnVieWdlbXMtdXJpKTogTmV3IHByb2NlZHVyZS4KKiBndWl4L2J1aWxkL3J1Ynkt YnVpbGQtc3lzdGVtIChnaXRpZnkpOiBEZWxldGUuCiAgKHVucGFjayk6IFVzZSAnZ2VtIHVucGFj aycgdXRpbGl0eS4KICAoY2hlY2spOiBBZGQgZG9jc3RyaW5nLgogIChidWlsZCk6IFJlcGFjayBt b2RpZmllZCBnZW0uCiAgKGluc3RhbGwpOiBSZWJ1aWxkIHVucGFja2VkIGdlbSBhbmQgaW5zdGFs bCBpdC4KICAoJXN0YW5kYXJkLXBoYXNlcyk6IFJlbW92ZSBnaXRpZnkgYW5kIGJ1aWxkIHBoYXNl cy4KKiBnbnUvcGFja2FnZXMvcnVieS5zY20gKHJ1YnktaG9lLCBydWJ5LXJha2UtY29tcGlsZXIs IHJ1YnktaTE4biwKICBydWJ5LXJzcGVjLXN1cHBvcnQsIHJ1YnktcnNwZWMtY29yZSwgcnVieS1k aWZmLWxjcy1mb3ItcnNwZWMsCiAgcnVieS1yc3BlYy1leHBlY3RhdGlvbnMsIHJ1YnktcnNwZWMt bW9ja3MsIHJ1YnktcnNwZWMsIGJ1bmRsZXIsCiAgcnVieS11c2VyYWdlbnQsIHJ1YnktYmFjb24s IHJ1YnktYXJlbCwgcnVieS1jb25uZWN0aW9uLXBvb2wsCiAgcnVieS1uZXQtaHR0cC1wZXJzaXN0 ZW50LCBydWJ5LW1pbml0ZXN0LCBydWJ5LW1pbml0ZXN0LXNwcmludCwKICBydWJ5LW1pbml0ZXN0 LWJhY29uLCBydWJ5LWRhZW1vbnMsIHJ1YnktZ2l0LCBydWJ5LXNsb3AsCiAgcnVieS1tdWx0aXBh cnQtcG9zdCk6IENvbnZlcnQgdG8gbmV3IGJ1aWxkIHN5c3RlbS4KLS0tCiBnbnUvcGFja2FnZXMv cnVieS5zY20gICAgICAgICAgICB8IDIyMiArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGd1aXgvYnVpbGQtc3lzdGVtL3J1Ynkuc2NtICAgICAgIHwgIDQwICsrKy0tLS0K IGd1aXgvYnVpbGQvcnVieS1idWlsZC1zeXN0ZW0uc2NtIHwgIDcyICsrKysrKysrKy0tLS0KIDMg ZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKyksIDE5NiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9nbnUvcGFja2FnZXMvcnVieS5zY20gYi9nbnUvcGFja2FnZXMvcnVieS5zY20KaW5k ZXggYTQ4MTM2NS4uMTk2MDk0YyAxMDA2NDQKLS0tIGEvZ251L3BhY2thZ2VzL3J1Ynkuc2NtCisr KyBiL2dudS9wYWNrYWdlcy9ydWJ5LnNjbQpAQCAtMTU0LDEzICsxNTQsMTEgQEAgYSBmb2N1cyBv biBzaW1wbGljaXR5IGFuZCBwcm9kdWN0aXZpdHkuIikKICAgICAobmFtZSAicnVieS1ob2UiKQog ICAgICh2ZXJzaW9uICIzLjEzLjEiKQogICAgIChzb3VyY2UgKG9yaWdpbgotICAgICAgICAgICAg ICAobWV0aG9kIGdpdC1mZXRjaCkKLSAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQot ICAgICAgICAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vc2VhdHRsZXJiL2hv ZS5naXQiKQotICAgICAgICAgICAgICAgICAgICAoY29tbWl0ICIwYzExODM2IikpKSA7IG5vIHJl bGVhc2UgdGFncyA6KAorICAgICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKKyAgICAgICAg ICAgICAgKHVyaSAocnVieWdlbXMtdXJpICJob2UiIHZlcnNpb24pKQogICAgICAgICAgICAgICAo c2hhMjU2CiAgICAgICAgICAgICAgICAoYmFzZTMyCi0gICAgICAgICAgICAgICAgIjBpOGRpbWY4 a3hjamdxajl4NjViYmkzbDZoYzlwOWdiZmJiMXZtcno0Mjc2NGE0ampiejkiKSkpICkKKyAgICAg ICAgICAgICAgICAiMW1hYzEza3JkcmFzbjk4MTlkZDY1eGoyN2trbGZ5MHhkYmozcDZzMmlqNHZs Y2I0Nmg4cSIpKSkgKQogICAgIChidWlsZC1zeXN0ZW0gcnVieS1idWlsZC1zeXN0ZW0pCiAgICAg KHN5bm9wc2lzICJSdWJ5IHByb2plY3QgbWFuYWdlbWVudCBoZWxwZXIiKQogICAgIChkZXNjcmlw dGlvbgpAQCAtMTc4LDIyICsxNzYsMTMgQEAgYW5ub3VuY2VtZW50LiIpCiAgICAgKHZlcnNpb24g IjAuOS41IikKICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgKG1ldGhvZCB1cmwt ZmV0Y2gpCi0gICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQKLSAgICAgICAgICAgICAg ICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9yYWtlLWNvbXBpbGVyL3Jha2UtY29tcGlsZXIvYXJj aGl2ZS92IgotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6IikpCi0gICAgICAg ICAgICAgIChmaWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRhci5n eiIpKQorICAgICAgICAgICAgICAodXJpIChydWJ5Z2Vtcy11cmkgInJha2UtY29tcGlsZXIiIHZl cnNpb24pKQogICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgICAoYmFzZTMyCi0g ICAgICAgICAgICAgICAgIjA3bGsxdmwwanFjYXF3ampobWcwcXNocXdjeGR5cjVrc2NjOXh4bTEz bTAzODM1eGdwZjMiKSkpKQorICAgICAgICAgICAgICAgICIxazhpbTJ2emo4NDl4ZGdqazZ3YWZz cGtpd3dhcHF3bTczOG1hamNoYjRkbmhuc2s2NGN4IikpKSkKICAgICAoYnVpbGQtc3lzdGVtIHJ1 YnktYnVpbGQtc3lzdGVtKQogICAgIChhcmd1bWVudHMKLSAgICAgJygjOnRlc3RzPyAjZiA7IG5l ZWRzIGN1Y3VtYmVyCi0gICAgICAgIzpwaGFzZXMgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBo YXNlcwotICAgICAgICAgICAgICAgICAgKGFkZC1iZWZvcmUgJ2J1aWxkICdyZW1vdmUtY3VjdW1i ZXItcmFrZS10YXNrCi0gICAgICAgICAgICAgICAgICAgIChsYW1iZGEgXwotICAgICAgICAgICAg ICAgICAgICAgIDs7IFJlbW92ZSBjdWN1bWJlciB0ZXN0IGZpbGUgYmVjYXVzZSB0aGUKLSAgICAg ICAgICAgICAgICAgICAgICA7OyBkZXBlbmRlbmNpZXMgYXJlIG5vdCBhdmFpbGFibGUgcmlnaHQg bm93LgotICAgICAgICAgICAgICAgICAgICAgIChkZWxldGUtZmlsZSAidGFza3MvY3VjdW1iZXIu cmFrZSIpKSkpKSkKKyAgICAgJygjOnRlc3RzPyAjZikpIDsgbmVlZHMgY3VjdW1iZXIKICAgICAo c3lub3BzaXMgIkJ1aWxkaW5nIGFuZCBwYWNrYWdpbmcgaGVscGVyIGZvciBSdWJ5IG5hdGl2ZSBl eHRlbnNpb25zIikKICAgICAoZGVzY3JpcHRpb24gIlJha2UtY29tcGlsZXIgcHJvdmlkZXMgYSBm cmFtZXdvcmsgZm9yIGJ1aWxkaW5nIGFuZAogcGFja2FnaW5nIG5hdGl2ZSBDIGFuZCBKYXZhIGV4 dGVuc2lvbnMgaW4gUnVieS4iKQpAQCAtMjA2LDEyICsxOTUsMTAgQEAgcGFja2FnaW5nIG5hdGl2 ZSBDIGFuZCBKYXZhIGV4dGVuc2lvbnMgaW4gUnVieS4iKQogICAgICh2ZXJzaW9uICIwLjYuMTEi KQogICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkK LSAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly9naXRodWIuY29tL3N2 ZW5mdWNocy9pMThuL2FyY2hpdmUvdiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ZXJzaW9uICIudGFyLmd6IikpCi0gICAgICAgICAgICAgIChmaWxlLW5hbWUgKHN0cmluZy1h cHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRhci5neiIpKQorICAgICAgICAgICAgICAodXJpIChy dWJ5Z2Vtcy11cmkgImkxOG4iIHZlcnNpb24pKQogICAgICAgICAgICAgICAoc2hhMjU2CiAgICAg ICAgICAgICAgICAoYmFzZTMyCi0gICAgICAgICAgICAgICAgIjFmZGhuaGgxcDVnOHZpYnY0NGQ3 NzB6OG5xMjA4enJtczNtMm5zd2R2cjU0MDcyeTFtNmsiKSkpKQorICAgICAgICAgICAgICAgICIw ZndqbGdtZ3J5MmJsZjh6bHhuOWM1NTVjZjRhMTZwMjg3bDU5OWt6NTEwNG5janhsemRrIikpKSkK ICAgICAoYnVpbGQtc3lzdGVtIHJ1YnktYnVpbGQtc3lzdGVtKQogICAgIChhcmd1bWVudHMKICAg ICAgJygjOnRlc3RzPyAjZikpIDsgcmVxdWlyZXMgYnVuZGxlcgpAQCAtMjM0LDEzICsyMjEsMTAg QEAgYW4gZXh0ZW5zaWJsZSBhcmNoaXRlY3R1cmUgd2l0aCBhIHN3YXBwYWJsZSBiYWNrZW5kLiIp CiAgICAgKHZlcnNpb24gIjMuMi4yIikKICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAg ICAgKG1ldGhvZCB1cmwtZmV0Y2gpCi0gICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQK LSAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9yc3BlYy9yc3BlYy1zdXBw b3J0L2FyY2hpdmUvdiIKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQot ICAgICAgICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii50YXIuZ3oiKSkKKyAgICAgICAgICAgICAgKHVyaSAocnVieWdlbXMtdXJpICJyc3BlYy1zdXBw b3J0IiB2ZXJzaW9uKSkKICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAgKGJh c2UzMgotICAgICAgICAgICAgICAgICIxcHZ6ZnJxZ3kwejBnd21kZ2pwOWYydnoxZDljMGNhanl6 ZnFqOXo4aTJzc3huem1qNGJ2IikpKSkKKyAgICAgICAgICAgICAgICAiMTk0enJ5NTE5NWxzMmhu aTdyOTgyNHZxYjVkM3FmZzRqYjE1ZmdqOGdsZnkwcnZ3M3p4bCIpKSkpCiAgICAgKGJ1aWxkLXN5 c3RlbSBydWJ5LWJ1aWxkLXN5c3RlbSkKICAgICAoYXJndW1lbnRzCiAgICAgICcoIzp0ZXN0cz8g I2YpKSA7IGF2b2lkIGRlcGVuZGVuY3kgY3ljbGVzCkBAIC0yNTUsMTMgKzIzOSwxMCBAQCBhbiBl eHRlbnNpYmxlIGFyY2hpdGVjdHVyZSB3aXRoIGEgc3dhcHBhYmxlIGJhY2tlbmQuIikKICAgICAo dmVyc2lvbiAiMy4yLjMiKQogICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKLSAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZAotICAgICAg ICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3JzcGVjL3JzcGVjLWNvcmUvYXJjaGl2 ZS92IgotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6IikpCi0gICAgICAgICAg ICAgIChmaWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRhci5neiIp KQorICAgICAgICAgICAgICAodXJpIChydWJ5Z2Vtcy11cmkgInJzcGVjLWNvcmUiIHZlcnNpb24p KQogICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgICAoYmFzZTMyCi0gICAgICAg ICAgICAgICAgIjFjbHNhNGxraDVjOWM3eGMzeGEzMzZ5bTAweWNyNjdwY2hwZzFidjR5M2Z6NWh2 enc4a2kiKSkpKQorICAgICAgICAgICAgICAgICIwazI0NzFpdzMwZ2MyY3Z2NjdkYW1yeDY2NnBt c3Z4OGwwYWhrM2htMjBkaGZubWNtcHZ2IikpKSkKICAgICAoYnVpbGQtc3lzdGVtIHJ1YnktYnVp bGQtc3lzdGVtKQogICAgIChhcmd1bWVudHMKICAgICAgJygjOnRlc3RzPyAjZikpIDsgYXZvaWQg ZGVwZW5kZW5jeSBjeWNsZXMKQEAgLTI3OSwxMyArMjYwLDEwIEBAIGdyb3Vwcy4iKQogICAgICh2 ZXJzaW9uICIxLjIuNSIpCiAgICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgIChtZXRo b2QgdXJsLWZldGNoKQotICAgICAgICAgICAgICAodXJpIChzdHJpbmctYXBwZW5kCi0gICAgICAg ICAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vaGFsb3N0YXR1ZS9kaWZmLWxjcy9hcmNo aXZlL3YiCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKLSAgICAgICAg ICAgICAgKGZpbGUtbmFtZSAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIudGFyLmd6 IikpCisgICAgICAgICAgICAgICh1cmkgKHJ1YnlnZW1zLXVyaSAiZGlmZi1sY3MiIHZlcnNpb24p KQogICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgICAoYmFzZTMyCi0gICAgICAg ICAgICAgICAgIjBrbWZ6MnFkd2JmamY5N3J4MjdoaDlmbTM5bXYzejlhdmptdnNhanFuYjV3eGoy bDVsNHMiKSkpKQorICAgICAgICAgICAgICAgICIxdmY5Y2l2ZDQxYm5xaTZicnI1ZDlqaWZkdzcz ajlraGM2ZmtoZmwxZjhyOWNwa2R2bHgxIikpKSkKICAgICAoYnVpbGQtc3lzdGVtIHJ1YnktYnVp bGQtc3lzdGVtKQogICAgIChhcmd1bWVudHMKICAgICAgJygjOnRlc3RzPyAjZikpIDsgYXZvaWQg ZGVwZW5kZW5jeSBjeWNsZXMKQEAgLTMwMywxMyArMjgxLDEwIEBAIHN0YW5kYXJkIGRpZmYtbGlr ZSB0b29sLiIpCiAgICAgKHZlcnNpb24gIjMuMi4xIikKICAgICAoc291cmNlIChvcmlnaW4KICAg ICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCi0gICAgICAgICAgICAgICh1cmkgKHN0cmlu Zy1hcHBlbmQKLSAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9yc3BlYy9y c3BlYy1leHBlY3RhdGlvbnMvYXJjaGl2ZS92IgotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9u ICIudGFyLmd6IikpCi0gICAgICAgICAgICAgIChmaWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFt ZSAiLSIgdmVyc2lvbiAiLnRhci5neiIpKQorICAgICAgICAgICAgICAodXJpIChydWJ5Z2Vtcy11 cmkgInJzcGVjLWV4cGVjdGF0aW9ucyIgdmVyc2lvbikpCiAgICAgICAgICAgICAgIChzaGEyNTYK ICAgICAgICAgICAgICAgIChiYXNlMzIKLSAgICAgICAgICAgICAgICAiMGgwcnBwcmJoNmg1OWdt a3NpeWkxYjh3NmN2Y2FpNHdkYmtpa2Fqd3gzdzFhc3hpNmY3eCIpKSkpCisgICAgICAgICAgICAg ICAgIjAxa21jaGFiZ3BkY2FxZHNxZzhyMGc1Z3kzODV4aHAxazFqc2RzM3cyNjR5cGluMTduMTQi KSkpKQogICAgIChidWlsZC1zeXN0ZW0gcnVieS1idWlsZC1zeXN0ZW0pCiAgICAgKGFyZ3VtZW50 cwogICAgICAnKCM6dGVzdHM/ICNmKSkgOyBhdm9pZCBkZXBlbmRlbmN5IGN5Y2xlcwpAQCAtMzI4 LDEzICszMDMsMTAgQEAgb3V0Y29tZXMgb2YgYSBjb2RlIGV4YW1wbGUuIikKICAgICAodmVyc2lv biAiMy4yLjEiKQogICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAobWV0aG9kIHVy bC1mZXRjaCkKLSAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZAotICAgICAgICAgICAg ICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3JzcGVjL3JzcGVjLW1vY2tzL2FyY2hpdmUvdiIK LSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQotICAgICAgICAgICAgICAo ZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi50YXIuZ3oiKSkKKyAg ICAgICAgICAgICAgKHVyaSAocnVieWdlbXMtdXJpICJyc3BlYy1tb2NrcyIgdmVyc2lvbikpCiAg ICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgIChiYXNlMzIKLSAgICAgICAgICAg ICAgICAiMXh6eHNnMGlkeGtnN2N6bWpncXExMGxjZDgyMWlidzFoanpuNDA0c2s5ajZydzBmYngy ZyIpKSkpCisgICAgICAgICAgICAgICAgIjA5eWlnMWx3Z3hsOGZzbnM3MXozeGh2N3drZzd6dmFn eWRoMzdwdmFxcHc5MmR6NTVqdjIiKSkpKQogICAgIChidWlsZC1zeXN0ZW0gcnVieS1idWlsZC1z eXN0ZW0pCiAgICAgKGFyZ3VtZW50cwogICAgICAnKCM6dGVzdHM/ICNmKSkgOyBhdm9pZCBkZXBl bmRlbmN5IGN5Y2xlcwpAQCAtMzUzLDEzICszMjUsMTAgQEAgc3VwcG9ydCBmb3Igc3R1YmJpbmcg YW5kIG1vY2tpbmcuIikKICAgICAodmVyc2lvbiAiMy4yLjAiKQogICAgIChzb3VyY2UgKG9yaWdp bgogICAgICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKLSAgICAgICAgICAgICAgKHVyaSAo c3RyaW5nLWFwcGVuZAotICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3Jz cGVjL3JzcGVjL2FyY2hpdmUvdiIKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5n eiIpKQotICAgICAgICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZl cnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAgICAgKHVyaSAocnVieWdlbXMtdXJpICJyc3Bl YyIgdmVyc2lvbikpCiAgICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgIChiYXNl MzIKLSAgICAgICAgICAgICAgICAiMWpnMzhkYmFrbnNkaGlhdjV2bnJ3ZmNjZzUyNGZ3Y2c2c3Ex NzE1NDQxdngxeGw2cDU0cSIpKSkpCisgICAgICAgICAgICAgICAgIjBsa3owMWo0eXhjd2IzZzV3 NnIxbDlraG55dzNzeGliNHJyaDRucGQycHhoMzkwZmNjNGYiKSkpKQogICAgIChidWlsZC1zeXN0 ZW0gcnVieS1idWlsZC1zeXN0ZW0pCiAgICAgKGFyZ3VtZW50cwogICAgICAnKCM6dGVzdHM/ICNm KSkgOyBhdm9pZCBkZXBlbmRlbmN5IGN5Y2xlcwpAQCAtMzgyLDEyICszNTEsMTAgQEAgZXhwZWN0 YXRpb25zIGFuZCBtb2NrcyBmcmFtZXdvcmtzLiIpCiAgICAgKHZlcnNpb24gIjEuOS45IikKICAg ICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCi0gICAg ICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZ2l0aHViLmNvbS9idW5kbGVy L2J1bmRsZXIvYXJjaGl2ZS92IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl cnNpb24gIi50YXIuZ3oiKSkKLSAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoc3RyaW5nLWFwcGVu ZCBuYW1lICItIiB2ZXJzaW9uICIudGFyLmd6IikpCisgICAgICAgICAgICAgICh1cmkgKHJ1Ynln ZW1zLXVyaSAiYnVuZGxlciIgdmVyc2lvbikpCiAgICAgICAgICAgICAgIChzaGEyNTYKICAgICAg ICAgICAgICAgIChiYXNlMzIKLSAgICAgICAgICAgICAgICAiMDhmbHgzbjloYjN5ejhtbTVrMTZj ZHowc2I3Zzc3NGY2dnhuNmdjM3dmaDVsYTgzdmZ5eCIpKSkpCisgICAgICAgICAgICAgICAgIjEy cWsxNTY5cHN3YTltbWlkNmxzcXkybmFwbjlmbWtibXYwazd4a2w1Mm55Zmg4cnN5NGQiKSkpKQog ICAgIChidWlsZC1zeXN0ZW0gcnVieS1idWlsZC1zeXN0ZW0pCiAgICAgKGFyZ3VtZW50cwogICAg ICAnKCM6dGVzdHM/ICNmKSkgOyBhdm9pZCBkZXBlbmRlbmN5IGN5Y2xlcwpAQCAtNDAzLDE5ICsz NzAsMTMgQEAgc3BlY2lmaWVkIGluIGEgXCJHZW1maWxlXCIsIGFzIHdlbGwgYXMgdGhlaXIgZGVw ZW5kZW5jaWVzLiIpCiAgICAgKHZlcnNpb24gIjAuMTMuMyIpCiAgICAgKHNvdXJjZSAob3JpZ2lu CiAgICAgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQotICAgICAgICAgICAgICAodXJpIChz dHJpbmctYXBwZW5kCi0gICAgICAgICAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vZ3No dXRsZXIvdXNlcmFnZW50L2FyY2hpdmUvdiIKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAi LnRhci5neiIpKQotICAgICAgICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAgICAgKHVyaSAocnVieWdlbXMtdXJp ICJ1c2VyYWdlbnQiIHZlcnNpb24pKQogICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAg ICAgICAoYmFzZTMyCi0gICAgICAgICAgICAgICAgIjFoajAwZncwNmkweTNyd3h4aHhtbnJxeGhw bmZmdjR6ZnF4MnNxcXBjNXFjNGZkdmQyeDkiKSkpKQorICAgICAgICAgICAgICAgICIwa3o3eXl6 NzUyOGJ2NGEya2Z5bXZrY204d2hxY2RkaG1nYXcxa3N3MWQ5MG4zMGhoa3BjIikpKSkKICAgICAo YnVpbGQtc3lzdGVtIHJ1YnktYnVpbGQtc3lzdGVtKQogICAgIChhcmd1bWVudHMKLSAgICAgJygj OnRlc3QtdGFyZ2V0ICJzcGVjIikpCi0gICAgKG5hdGl2ZS1pbnB1dHMKLSAgICAgYCgoInJ1Ynkt cnNwZWMiICxydWJ5LXJzcGVjKQotICAgICAgICgiYnVuZGxlciIgLGJ1bmRsZXIpKSkKKyAgICAg JygjOnRlc3RzPyAjZikpIDsgbm8gdGVzdCBzdWl0ZQogICAgIChzeW5vcHNpcyAiSFRUUCB1c2Vy IGFnZW50IHBhcnNlciBmb3IgUnVieSIpCiAgICAgKGRlc2NyaXB0aW9uICJVc2VyQWdlbnQgaXMg YSBSdWJ5IGxpYnJhcnkgdGhhdCBwYXJzZXMgYW5kIGNvbXBhcmVzIEhUVFAKIFVzZXIgQWdlbnRz LiIpCkBAIC00MjUsMjYgKzM4NiwxNCBAQCBVc2VyIEFnZW50cy4iKQogKGRlZmluZS1wdWJsaWMg cnVieS1iYWNvbgogICAocGFja2FnZQogICAgIChuYW1lICJydWJ5LWJhY29uIikKLSAgICAodmVy c2lvbiAiMS4yIikKKyAgICAodmVyc2lvbiAiMS4yLjAiKQogICAgIChzb3VyY2UgKG9yaWdpbgog ICAgICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKLSAgICAgICAgICAgICAgKHVyaSAoc3Ry aW5nLWFwcGVuZAotICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2NobmV1 a2lyY2hlbi9iYWNvbi9hcmNoaXZlLyIKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRh ci5neiIpKQotICAgICAgICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0i IHZlcnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAgICAgKHVyaSAocnVieWdlbXMtdXJpICJi YWNvbiIgdmVyc2lvbikpCiAgICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgIChi YXNlMzIKLSAgICAgICAgICAgICAgICAiMGcwM2Z4aWxycngxN2Rpand3NjhuMWxxNWQ4czY5aHJ4 Z3BnYThjMWkyazM1YnpjdzVqYyIpKSkpCisgICAgICAgICAgICAgICAgIjFmMDZnZGo3N2Jtd3pj MWs1aXJhZ2wxNTk1aGJuNjd5YzdzcXZzNTZjYThwbHJyMnZtYWkiKSkpKQogICAgIChidWlsZC1z eXN0ZW0gcnVieS1idWlsZC1zeXN0ZW0pCi0gICAgKGFyZ3VtZW50cwotICAgICBgKCM6cGhhc2Vz IChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKLSAgICAgICAgICAgICAgICAgIChhZGQt YmVmb3JlICdidWlsZCAnZ2VuZXJhdGUtZG9jcwotICAgICAgICAgICAgICAgICAgICAobGFtYmRh IF8KLSAgICAgICAgICAgICAgICAgICAgICA7OyBUaGlzIHJha2UgdGFzayBhbHNvIHRyaWVzIHRv IGdlbmVyYXRlIGEgQ2hhbmdlTG9nCi0gICAgICAgICAgICAgICAgICAgICAgOzsgZmlsZSBmcm9t IHRoZSBHaXQgbG9nLCB3aGljaCB3ZSBkb24ndCBoYXZlLiAgSXQgZmFpbHMKLSAgICAgICAgICAg ICAgICAgICAgICA7OyBidXQgY3JlYXRlcyBhbiBlbXB0eSBmaWxlLCBhbGxvd2luZyB0aGUgcmVz dCBvZiB0aGUKLSAgICAgICAgICAgICAgICAgICAgICA7OyBidWlsZCB0byBzdWNjZWVkLgotICAg ICAgICAgICAgICAgICAgICAgICh6ZXJvPyAoc3lzdGVtKiAicmFrZSIgInByZWRpc3QiKSkpKSkp KQogICAgIChzeW5vcHNpcyAiU21hbGwgUlNwZWMgY2xvbmUiKQogICAgIChkZXNjcmlwdGlvbiAi QmFjb24gaXMgYSBzbWFsbCBSU3BlYyBjbG9uZSBwcm92aWRpbmcgYWxsIGVzc2VudGlhbAogZmVh dHVyZXMuIikKQEAgLTQ1NywxNiArNDA2LDEzIEBAIGZlYXR1cmVzLiIpCiAgICAgKHZlcnNpb24g IjYuMC4wIikKICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgKG1ldGhvZCB1cmwt ZmV0Y2gpCi0gICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQKLSAgICAgICAgICAgICAg ICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9yYWlscy9hcmVsL2FyY2hpdmUvdiIKLSAgICAgICAg ICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQotICAgICAgICAgICAgICAoZmlsZS1uYW1l IChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAg ICAgKHVyaSAocnVieWdlbXMtdXJpICJhcmVsIiB2ZXJzaW9uKSkKICAgICAgICAgICAgICAgKHNo YTI1NgogICAgICAgICAgICAgICAgKGJhc2UzMgotICAgICAgICAgICAgICAgICIwZmxkd3AyaG1y bWRkeDIyeGY3aGRteWJuZ3p2OTdxbnY1cnZ6M3F3NjFtOTRkZGQ2dzRuIikpKSkKKyAgICAgICAg ICAgICAgICAiMTh3bmZuenIyaTVwM2Z5Z3NkZGpiaTFjaW13czY4MjNuYms4ZHJ4aWRtbmo4ano3 aDBhciIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBydWJ5LWJ1aWxkLXN5c3RlbSkKLSAgICAobmF0 aXZlLWlucHV0cwotICAgICBgKCgiYnVuZGxlciIgLGJ1bmRsZXIpKSkKKyAgICAoYXJndW1lbnRz CisgICAgICcoIzp0ZXN0cz8gI2YpKSA7IG5vIHRlc3Qgc3VpdGUKICAgICAoc3lub3BzaXMgIlNR TCBBU1QgbWFuYWdlciBmb3IgUnVieSIpCiAgICAgKGRlc2NyaXB0aW9uICJBcmVsIGlzIGEgU1FM IEFTVCBtYW5hZ2VyIGZvciBSdWJ5LiAgSXQgc2ltcGxpZmllcyB0aGUKIGdlbmVyYXRpb24gb2Yg Y29tcGxleCBTUUwgcXVlcmllcyBhbmQgYWRhcHRzIHRvIHZhcmlvdXMgcmVsYXRpb25hbCBkYXRh YmFzZQpAQCAtNDgwLDEzICs0MjYsMTAgQEAgaW1wbGVtZW50YXRpb25zLiIpCiAgICAgKHZlcnNp b24gIjIuMi4wIikKICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgKG1ldGhvZCB1 cmwtZmV0Y2gpCi0gICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQKLSAgICAgICAgICAg ICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9tcGVyaGFtL2Nvbm5lY3Rpb25fcG9vbC9hcmNo aXZlL3YiCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKLSAgICAgICAg ICAgICAgKGZpbGUtbmFtZSAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIudGFyLmd6 IikpCisgICAgICAgICAgICAgICh1cmkgKHJ1YnlnZW1zLXVyaSAiY29ubmVjdGlvbl9wb29sIiB2 ZXJzaW9uKSkKICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAgKGJhc2UzMgot ICAgICAgICAgICAgICAgICIwMnM1cndobWd5OHFxbnM3YTV5MWRhYTB5YXczOHg2bHpwd3l2bXk0 NmgxeXJqOW1jNnpmIikpKSkKKyAgICAgICAgICAgICAgICAiMWIyYmIzazM5bmk1bXpjbnFsdjl5 NHlqa2JpbjIwczdka3d6cDBqdzJqZjFybXpjZ3JteSIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBy dWJ5LWJ1aWxkLXN5c3RlbSkKICAgICAobmF0aXZlLWlucHV0cwogICAgICBgKCgiYnVuZGxlciIg LGJ1bmRsZXIpKSkKQEAgLTUwMiwxMyArNDQ1LDEwIEBAIGludGVyZmFjZSBmb3IgUnVieSBwcm9n cmFtcy4iKQogICAgICh2ZXJzaW9uICIyLjkuNCIpCiAgICAgKHNvdXJjZSAob3JpZ2luCiAgICAg ICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQotICAgICAgICAgICAgICAodXJpIChzdHJpbmct YXBwZW5kCi0gICAgICAgICAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vZHJicmFpbi9u ZXQtaHR0cC1wZXJzaXN0ZW50L2FyY2hpdmUvdiIKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lv biAiLnRhci5neiIpKQotICAgICAgICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5h bWUgIi0iIHZlcnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAgICAgKHVyaSAocnVieWdlbXMt dXJpICJuZXQtaHR0cC1wZXJzaXN0ZW50IiB2ZXJzaW9uKSkKICAgICAgICAgICAgICAgKHNoYTI1 NgogICAgICAgICAgICAgICAgKGJhc2UzMgotICAgICAgICAgICAgICAgICIxcTE4dmppMzF3OGdm cjZhanppcWtxczhuNWx6a3cwYmwwMGRtMmE4czA1emhhdnp3OWo5IikpKSkKKyAgICAgICAgICAg ICAgICAiMXk5ZmhhYXgwZDlra3NseWlxaTF6eXM2Y3ZwYXF4OWEweTBjeXdwMjRycHlnd2g0czly NCIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBydWJ5LWJ1aWxkLXN5c3RlbSkKICAgICAobmF0aXZl LWlucHV0cwogICAgICBgKCgicnVieS1jb25uZWN0aW9uLXBvb2wiICxydWJ5LWNvbm5lY3Rpb24t cG9vbCkKQEAgLTUyNCwxNiArNDY0LDExIEBAIHVzaW5nIE5ldDo6SFRUUCwgc3VwcG9ydGluZyBy ZWNvbm5lY3Rpb24gYW5kIHJldHJ5IGFjY29yZGluZyB0byBSRkMgMjYxNi4iKQogICAgIChuYW1l ICJydWJ5LW1pbml0ZXN0IikKICAgICAodmVyc2lvbiAiNS43LjAiKQogICAgIChzb3VyY2UgKG9y aWdpbgotICAgICAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKLSAgICAgICAgICAgICAgOzsg Tm8gcmVsZWFzZSB0YXJiYWxscyBub3IgZ2l0IHRhZ3MuICBUaGlzIGlzIHRoZSBjb21taXQKLSAg ICAgICAgICAgICAgOzsgY29ycmVzcG9uZGluZyB0byB0aGUgYWRkaXRpb24gb2YgdGhlIHJlbGVh c2Ugbm90ZXMgdG8KLSAgICAgICAgICAgICAgOzsgSGlzdG9yeS5yZG9jLgotICAgICAgICAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCi0gICAgICAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8v Z2l0aHViLmNvbS9zZWF0dGxlcmIvbWluaXRlc3QuZ2l0IikKLSAgICAgICAgICAgICAgICAgICAg KGNvbW1pdCAiZTk3NTI0OCIpKSkKKyAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCisg ICAgICAgICAgICAgICh1cmkgKHJ1YnlnZW1zLXVyaSAibWluaXRlc3QiIHZlcnNpb24pKQogICAg ICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgICAoYmFzZTMyCi0gICAgICAgICAgICAg ICAgIjA5eGppYWhrN3E4aGlkMWkzOWFocm1naGFzbHBqOW4zNnpuYTcyaTNhaDdrZjFiaDJsMDEi KSkpKQorICAgICAgICAgICAgICAgICIwcnhxZmFrcDYyOW1wM3Z3ZGE3enBnYjU3bGNuczV6bmtz a2lrYmZkMGtyaXd2OGkxdnE4IikpKSkKICAgICAoYnVpbGQtc3lzdGVtIHJ1YnktYnVpbGQtc3lz dGVtKQogICAgIChuYXRpdmUtaW5wdXRzCiAgICAgIGAoKCJydWJ5LWhvZSIgLHJ1YnktaG9lKSkp CkBAIC01NDgsMTQgKzQ4MywxMSBAQCBmYWNpbGl0aWVzIHN1cHBvcnRpbmcgVERELCBCREQsIG1v Y2tpbmcsIGFuZCBiZW5jaG1hcmtpbmcuIikKICAgICAobmFtZSAicnVieS1taW5pdGVzdC1zcHJp bnQiKQogICAgICh2ZXJzaW9uICIxLjEuMCIpCiAgICAgKHNvdXJjZSAob3JpZ2luCi0gICAgICAg ICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQotICAgICAgICAgICAgICA7OyBTYW1lIHN0b3J5IGFz IHJ1YnktbWluaXRlc3QuCi0gICAgICAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKLSAgICAg ICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3NlYXR0bGVyYi9taW5pdGVz dC1zcHJpbnQuZ2l0IikKLSAgICAgICAgICAgICAgICAgICAgKGNvbW1pdCAiNDljMDJiYyIpKSkK KyAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCisgICAgICAgICAgICAgICh1cmkgKHJ1 YnlnZW1zLXVyaSAibWluaXRlc3Qtc3ByaW50IiB2ZXJzaW9uKSkKICAgICAgICAgICAgICAgKHNo YTI1NgogICAgICAgICAgICAgICAgKGJhc2UzMgotICAgICAgICAgICAgICAgICIwcmJteHo5NGxx ZzV2ano2MHA4djJienE4YWR3dm14NTAxYW12azBsMTI0c2Z3bXc5NG1zIikpKSkKKyAgICAgICAg ICAgICAgICAiMTc5ZDZwajU2bDl4em00NmZxc3FqMTBtemprcjFmOWZ2NGN4YTh3dmNoczk3aHF6 MzN3MSIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBydWJ5LWJ1aWxkLXN5c3RlbSkKICAgICAobmF0 aXZlLWlucHV0cwogICAgICBgKCgicnVieS1ob2UiICxydWJ5LWhvZSkKQEAgLTU3MSwxNCArNTAz LDExIEBAIGVhc2llciB0byByZS1ydW4gaW5kaXZpZHVhbCBmYWlsaW5nIHRlc3RzLiIpCiAgICAg KG5hbWUgInJ1YnktbWluaXRlc3QtYmFjb24iKQogICAgICh2ZXJzaW9uICIxLjAuMiIpCiAgICAg KHNvdXJjZSAob3JpZ2luCi0gICAgICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQotICAgICAg ICAgICAgICA7OyBTYW1lIHN0b3J5IGFzIHJ1YnktbWluaXRlc3QuCi0gICAgICAgICAgICAgICh1 cmkgKGdpdC1yZWZlcmVuY2UKLSAgICAgICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRo dWIuY29tL3NlYXR0bGVyYi9taW5pdGVzdC1iYWNvbi5naXQiKQotICAgICAgICAgICAgICAgICAg ICAoY29tbWl0ICIzODU1MWQ1IikpKQorICAgICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkK KyAgICAgICAgICAgICAgKHVyaSAocnVieWdlbXMtdXJpICJtaW5pdGVzdC1iYWNvbiIgdmVyc2lv bikpCiAgICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgIChiYXNlMzIKLSAgICAg ICAgICAgICAgICAiMTlyOWZtNDFpMG1tMXhuY3FsczhmcmJqMWk5bnIzc3ExY3gybWg4NzhyNmtk bDAyZDcwaCIpKSkpCisgICAgICAgICAgICAgICAgIjBjbTdyNjg0MjI3NDNpM2I2Zm00cnJtMHI2 Y25uam1nbHE1Z2NtbWdsMWYwcms1aG5mNnIiKSkpKQogICAgIChidWlsZC1zeXN0ZW0gcnVieS1i dWlsZC1zeXN0ZW0pCiAgICAgKG5hdGl2ZS1pbnB1dHMKICAgICAgYCgoInJ1YnktaG9lIiAscnVi eS1ob2UpKSkKQEAgLTU5NiwxMyArNTI1LDEwIEBAIGZ1bmN0aW9uYWxpdHksIG1ha2luZyBpdCBl YXNpZXIgdG8gbWlncmF0ZSB0ZXN0IHN1aXRlcyBmcm9tIGJhY29uIHRvIG1pbml0ZXN0LiIpCiAg ICAgKHZlcnNpb24gIjEuMi4yIikKICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAg KG1ldGhvZCB1cmwtZmV0Y2gpCi0gICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQKLSAg ICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS90aHVlaGxpbmdlci9kYWVtb25z L2FyY2hpdmUvdiIKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQotICAg ICAgICAgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi50 YXIuZ3oiKSkKKyAgICAgICAgICAgICAgKHVyaSAocnVieWdlbXMtdXJpICJkYWVtb25zIiB2ZXJz aW9uKSkKICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAgKGJhc2UzMgotICAg ICAgICAgICAgICAgICIxdjVicGR2cHZoazI0MHBjN2ZrbjQ0dmZjbHBwbDQ0cHA2d2Q0MmlwaTVz ZDVsa2s3emZkIikpKSkKKyAgICAgICAgICAgICAgICAiMTIxYzd2a2ltZzNiYXhnYTY5eHZka3d4 aXE4d2tteHF2ZGJ5cWk1aTgydmhpaDVkM2NuMyIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBydWJ5 LWJ1aWxkLXN5c3RlbSkKICAgICAoYXJndW1lbnRzCiAgICAgIGAoIzp0ZXN0cz8gI2YpKSA7IG5v IHRlc3Qgc3VpdGUKQEAgLTYxOCw0MSArNTQ0LDI3IEBAIHJ1biBhcyBhIGRhZW1vbiBhbmQgdG8g YmUgY29udHJvbGxlZCBieSBzaW1wbGUgc3RhcnQvc3RvcC9yZXN0YXJ0IGNvbW1hbmRzLiIpCiAg ICAgKHZlcnNpb24gIjEuMi45LjEiKQogICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAg ICAobWV0aG9kIHVybC1mZXRjaCkKLSAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZAot ICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3NjaGFjb24vcnVieS1naXQv YXJjaGl2ZS92IgotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICIudGFyLmd6IikpCi0gICAg ICAgICAgICAgIChmaWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRh ci5neiIpKQorICAgICAgICAgICAgICAodXJpIChydWJ5Z2Vtcy11cmkgImdpdCIgdmVyc2lvbikp CiAgICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgIChiYXNlMzIKLSAgICAgICAg ICAgICAgICAiMDh6ZzIwemM3Zjd5eTM0aXgycWRkOGpiaXo3eGhqYzhhbGszNzA4NjlzcTNoNzVo czlqYyIpKSkpCisgICAgICAgICAgICAgICAgIjFzcWZqOGxtaGw3YzV6YW1jY2trcGlrNGl6ZnBo MnprdjZrcncwaThtemo1cGR3czVhY3MiKSkpKQogICAgIChidWlsZC1zeXN0ZW0gcnVieS1idWls ZC1zeXN0ZW0pCiAgICAgKGFyZ3VtZW50cwotICAgICAnKCM6cGhhc2VzIChtb2RpZnktcGhhc2Vz ICVzdGFuZGFyZC1waGFzZXMKLSAgICAgICAgICAgICAgICAgIChhZGQtYmVmb3JlICdidWlsZCAn cGF0Y2gtZ2l0LWJpbmFyeQotICAgICAgICAgICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5w dXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgICAgYCgjOnRlc3RzPyAjZiA7IG5vIHRlc3RzCisg ICAgICAgIzpwaGFzZXMgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAg ICAgICAgICAgKGFkZC1hZnRlciAnaW5zdGFsbCAncGF0Y2gtZ2l0LWJpbmFyeQorICAgICAgICAg ICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzIG91dHB1dHMgIzphbGxvdy1vdGhlci1r ZXlzKQogICAgICAgICAgICAgICAgICAgICAgIDs7IE1ha2UgdGhlIGRlZmF1bHQgZ2l0IGJpbmFy eSBhbiBhYnNvbHV0ZSBwYXRoIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgIDs7IHN0b3Jl LgotICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChnaXQgKHN0cmluZy1hcHBlbmQgKGFzc29j LXJlZiBpbnB1dHMgImdpdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiL2Jpbi9naXQiKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3Rp dHV0ZSogJygibGliL2dpdC9jb25maWcucmIiKQorICAgICAgICAgICAgICAgICAgICAgIChsZXQg KChnaXQgICAgKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiBpbnB1dHMgImdpdCIpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL2Jpbi9naXQiKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnIChzdHJpbmctYXBwZW5kIChnZXRl bnYgIkdFTV9IT01FIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIvZ2Vtcy9naXQtIiAsdmVyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9saWIvZ2l0L2NvbmZpZy5yYiIpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIChzdWJzdGl0dXRlKiAobGlzdCBjb25maWcpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICgoIidnaXQnIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz dHJpbmctYXBwZW5kICInIiBnaXQgIiciKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICA7OyBG aXggYSB0ZXN0IHRoYXQgZXhwZWN0cyB0aGUgYmluYXJ5IHRvIGJlIHNpbXBseQotICAgICAgICAg ICAgICAgICAgICAgICAgOzsgJ2dpdCcuCi0gICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3Rp dHV0ZSogJygidGVzdHMvdW5pdHMvdGVzdF9sb2dnZXIucmIiKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAoKCJkZWYgdGVzdF9sb2dnZXIiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg KHN0cmluZy1hcHBlbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVmIHRlc3RfbG9n Z2VyXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdpdDo6QmFzZS5jb25maWcuYmlu YXJ5X3BhdGggPSAnZ2l0JyIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICN0KSkpCi0gICAg ICAgICAgICAgICAgICAoYWRkLWJlZm9yZSAnY2hlY2sgJ2NyZWF0ZS1mYWtlLWhvbWUKLSAgICAg ICAgICAgICAgICAgICAgKGxhbWJkYSBfCi0gICAgICAgICAgICAgICAgICAgICAgOzsgVGhlIHRl c3Qgc3VpdGUgcnVucyAnZ2l0IGNvbmZpZyAtLWdsb2JhbCcgY29tbWFuZHMsCi0gICAgICAgICAg ICAgICAgICAgICAgOzsgc28gYSBmYWtlIGhvbWUgZGlyZWN0b3J5IGlzIG5lZWRlZCBmb3IgdGhl bSB0bwotICAgICAgICAgICAgICAgICAgICAgIDs7IHN1Y2NlZWQuCi0gICAgICAgICAgICAgICAg ICAgICAgKGxldCAoKGZha2UtaG9tZSAoc3RyaW5nLWFwcGVuZCAoZ2V0Y3dkKSAiL2Zha2UtaG9t ZSIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChta2RpciBmYWtlLWhvbWUpCi0gICAgICAg ICAgICAgICAgICAgICAgICAoc2V0ZW52ICJIT01FIiBmYWtlLWhvbWUpKSkpKSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAjdCkpKSkpKQogICAgIChpbnB1dHMKICAgICAgYCgoImdpdCIgLGdp dCkpKQogICAgIChzeW5vcHNpcyAiUnVieSB3cmFwcGVycyBmb3IgR2l0IikKQEAgLTY2NywxMyAr NTc5LDEwIEBAIGFuZCBtYW5pcHVsYXRlIEdpdCByZXBvc2l0b3JpZXMgYnkgd3JhcHBpbmcgc3lz dGVtIGNhbGxzIHRvIHRoZSBnaXQgYmluYXJ5LiIpCiAgICAgKHZlcnNpb24gIjQuMS4wIikKICAg ICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCi0gICAg ICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQKLSAgICAgICAgICAgICAgICAgICAgImh0dHBz Oi8vZ2l0aHViLmNvbS9sZWVqYXJ2aXMvc2xvcC9hcmNoaXZlL3YiCi0gICAgICAgICAgICAgICAg ICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKLSAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoc3RyaW5n LWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIudGFyLmd6IikpCisgICAgICAgICAgICAgICh1cmkg KHJ1YnlnZW1zLXVyaSAic2xvcCIgdmVyc2lvbikpCiAgICAgICAgICAgICAgIChzaGEyNTYKICAg ICAgICAgICAgICAgIChiYXNlMzIKLSAgICAgICAgICAgICAgICAiMGNxczUwYTBiOTlramQxOXhw bG44anBua2kwN2NqeXAzbDd3eGJmcjQ0eWNhc3I2bnpuaCIpKSkpCisgICAgICAgICAgICAgICAg IjBkajBwczZ2MW1xZDAyazg0bWd3ZDdocDU3OG4yYnpsN2M1MWgzZ3JkaHhmbDNqa2ZzajUiKSkp KQogICAgIChidWlsZC1zeXN0ZW0gcnVieS1idWlsZC1zeXN0ZW0pCiAgICAgKG5hdGl2ZS1pbnB1 dHMKICAgICAgYCgoInJ1YnktbWluaXRlc3QiICxydWJ5LW1pbml0ZXN0KSkpCkBAIC02ODksMTMg KzU5OCwxMCBAQCBvcHRpb25zIGFuZCBwYXJzaW5nIGNvbW1hbmQgbGluZSBmbGFncy4iKQogICAg ICh2ZXJzaW9uICIyLjAuMCIpCiAgICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgICht ZXRob2QgdXJsLWZldGNoKQotICAgICAgICAgICAgICAodXJpIChzdHJpbmctYXBwZW5kCi0gICAg ICAgICAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vbmlja3NpZWdlci9tdWx0aXBhcnQt cG9zdC9hcmNoaXZlL3YiCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkK LSAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9u ICIudGFyLmd6IikpCisgICAgICAgICAgICAgICh1cmkgKHJ1YnlnZW1zLXVyaSAibXVsdGlwYXJ0 LXBvc3QiIHZlcnNpb24pKQogICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgICAo YmFzZTMyCi0gICAgICAgICAgICAgICAgIjAzbjI3MWkza25meDRqOWFpbmd4enoyYmFqZDM3OWR3 OW5zd3NsbHZpcWMxNzdscTFhbm0iKSkpKQorICAgICAgICAgICAgICAgICIwOWswYjNjeWJxaWxr MWd3cnd3YWluOTVyZHlwaXhiMnE5dzY1Z2Q0NGdmenNkODR4aTF4IikpKSkKICAgICAoYnVpbGQt c3lzdGVtIHJ1YnktYnVpbGQtc3lzdGVtKQogICAgIChuYXRpdmUtaW5wdXRzCiAgICAgIGAoKCJi dW5kbGVyIiAsYnVuZGxlcikpKQpkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC1zeXN0ZW0vcnVieS5z Y20gYi9ndWl4L2J1aWxkLXN5c3RlbS9ydWJ5LnNjbQppbmRleCAxMzVlZGE2Li44MTQyZTg1IDEw MDY0NAotLS0gYS9ndWl4L2J1aWxkLXN5c3RlbS9ydWJ5LnNjbQorKysgYi9ndWl4L2J1aWxkLXN5 c3RlbS9ydWJ5LnNjbQpAQCAtMjYsMTAgKzI2LDE2IEBACiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBi dWlsZC1zeXN0ZW0pCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQogICAj OnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQotICAjOmV4cG9ydCAoJXJ1YnktYnVpbGQtc3lzdGVt LW1vZHVsZXMKKyAgIzpleHBvcnQgKHJ1YnlnZW1zLXVyaQorICAgICAgICAgICAgJXJ1YnktYnVp bGQtc3lzdGVtLW1vZHVsZXMKICAgICAgICAgICAgIHJ1YnktYnVpbGQKICAgICAgICAgICAgIHJ1 YnktYnVpbGQtc3lzdGVtKSkKIAorKGRlZmluZSAocnVieWdlbXMtdXJpIG5hbWUgdmVyc2lvbikK KyAgIlJldHVybiBhIFVSSSBzdHJpbmcgZm9yIHRoZSBnZW0gYXJjaGl2ZSBmb3IgdGhlIHJlbGVh c2UgY29ycmVzcG9uZGluZyB0bworTkFNRSBhbmQgVkVSU0lPTi4iCisgIChzdHJpbmctYXBwZW5k ICJodHRwczovL3J1YnlnZW1zLm9yZy9kb3dubG9hZHMvIiBuYW1lICItIiB2ZXJzaW9uICIuZ2Vt IikpCisKIChkZWZpbmUgJXJ1YnktYnVpbGQtc3lzdGVtLW1vZHVsZXMKICAgOzsgQnVpbGQtc2lk ZSBtb2R1bGVzIGltcG9ydGVkIGJ5IGRlZmF1bHQuCiAgIGAoKGd1aXggYnVpbGQgcnVieS1idWls ZC1zeXN0ZW0pCkBAIC01MCwyNCArNTYsMjIgQEAKICAgKGRlZmluZSBwcml2YXRlLWtleXdvcmRz CiAgICAgJygjOnNvdXJjZSAjOnRhcmdldCAjOnJ1YnkgIzppbnB1dHMgIzpuYXRpdmUtaW5wdXRz KSkKIAotICAobGV0ICgodmVyc2lvbi1jb250cm9sIChyZXNvbHZlLWludGVyZmFjZSAnKGdudSBw YWNrYWdlcyB2ZXJzaW9uLWNvbnRyb2wpKSkpCi0gICAgKGFuZCAobm90IHRhcmdldCkgICAgICAg ICAgICAgICAgICAgIDtYWFg6IG5vIGNyb3NzLWNvbXBpbGF0aW9uCi0gICAgICAgICAoYmFnCi0g ICAgICAgICAgIChuYW1lIG5hbWUpCi0gICAgICAgICAgIChzeXN0ZW0gc3lzdGVtKQotICAgICAg ICAgICAoaG9zdC1pbnB1dHMgYCgsQChpZiBzb3VyY2UKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYCgoInNvdXJjZSIgLHNvdXJjZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICcoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLEBpbnB1dHMKKyAgKGFuZCAo bm90IHRhcmdldCkgICAgICAgICAgICAgICAgICAgIDtYWFg6IG5vIGNyb3NzLWNvbXBpbGF0aW9u CisgICAgICAgKGJhZworICAgICAgICAgKG5hbWUgbmFtZSkKKyAgICAgICAgIChzeXN0ZW0gc3lz dGVtKQorICAgICAgICAgKGhvc3QtaW5wdXRzIGAoLEAoaWYgc291cmNlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBgKCgic291cmNlIiAsc291cmNlKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICxAaW5wdXRzCiAKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgS2VlcCB0aGUgc3RhbmRhcmQgaW5wdXRzIG9mICdn bnUtYnVpbGQtc3lzdGVtJy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgLEAoc3RhbmRhcmQt cGFja2FnZXMpKSkKLSAgICAgICAgICAgKGJ1aWxkLWlucHV0cyBgKCgicnVieSIgLHJ1YnkpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAoImdpdCIgLChtb2R1bGUtcmVmIHZlcnNpb24tY29u dHJvbCAnZ2l0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICxAbmF0aXZlLWlucHV0cykp Ci0gICAgICAgICAgIChvdXRwdXRzIG91dHB1dHMpCi0gICAgICAgICAgIChidWlsZCBydWJ5LWJ1 aWxkKQotICAgICAgICAgICAoYXJndW1lbnRzIChzdHJpcC1rZXl3b3JkLWFyZ3VtZW50cyBwcml2 YXRlLWtleXdvcmRzIGFyZ3VtZW50cykpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgOzsg S2VlcCB0aGUgc3RhbmRhcmQgaW5wdXRzIG9mICdnbnUtYnVpbGQtc3lzdGVtJy4KKyAgICAgICAg ICAgICAgICAgICAgICAgICxAKHN0YW5kYXJkLXBhY2thZ2VzKSkpCisgICAgICAgICAoYnVpbGQt aW5wdXRzIGAoKCJydWJ5IiAscnVieSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAsQG5hdGl2 ZS1pbnB1dHMpKQorICAgICAgICAgKG91dHB1dHMgb3V0cHV0cykKKyAgICAgICAgIChidWlsZCBy dWJ5LWJ1aWxkKQorICAgICAgICAgKGFyZ3VtZW50cyAoc3RyaXAta2V5d29yZC1hcmd1bWVudHMg cHJpdmF0ZS1rZXl3b3JkcyBhcmd1bWVudHMpKSkpKQogCiAoZGVmaW5lKiAocnVieS1idWlsZCBz dG9yZSBuYW1lIGlucHV0cwogICAgICAgICAgICAgICAgICAgICAgIzprZXkKZGlmZiAtLWdpdCBh L2d1aXgvYnVpbGQvcnVieS1idWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC9ydWJ5LWJ1aWxk LXN5c3RlbS5zY20KaW5kZXggMzA3YWM5MS4uOTBmYWI5MiAxMDA2NDQKLS0tIGEvZ3VpeC9idWls ZC9ydWJ5LWJ1aWxkLXN5c3RlbS5zY20KKysrIGIvZ3VpeC9idWlsZC9ydWJ5LWJ1aWxkLXN5c3Rl bS5zY20KQEAgLTIxLDYgKzIxLDcgQEAKICAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBnbnUt YnVpbGQtc3lzdGVtKSAjOnByZWZpeCBnbnU6KQogICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQg dXRpbHMpCiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoaWNl LTkgcG9wZW4pCiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgcmVnZXgpCiAgICM6dXNlLW1vZHVsZSAo c3JmaSBzcmZpLTEpCiAgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQpAQCAtNDAsNDEgKzQx LDcyIEBAIGRpcmVjdG9yeS4iCiAgICAgKChmaWxlLW5hbWUgLiBfKSBmaWxlLW5hbWUpCiAgICAg KCgpIChlcnJvciAiTm8gZmlsZXMgbWF0Y2hpbmcgcGF0dGVybjogIiBwYXR0ZXJuKSkpKQogCi07 OyBNb3N0IGdlbXNwZWNzIGFzc3VtZSB0aGF0IGJ1aWxkcyBhcmUgdGFraW5nIHBsYWNlIHdpdGhp biBhIGdpdCByZXBvc2l0b3J5Ci07OyBieSBpbmNsdWRlIGNhbGxzIHRvICdnaXQgbHMtZmlsZXMn LiAgSW4gb3JkZXIgZm9yIHRoZXNlIGdlbXNwZWNzIHRvIHdvcmsKLTs7IGFzLWlzLCBldmVyeSBm aWxlIGluIHRoZSBzb3VyY2UgdHJlZSBpcyBhZGRlZCB0byB0aGUgc3RhZ2luZyBhcmVhLgotKGRl ZmluZSBnaXRpZnkKLSAgKGxhbWJkYSBfCi0gICAgKGFuZCAoemVybz8gKHN5c3RlbSogImdpdCIg ImluaXQiKSkKLSAgICAgICAgICh6ZXJvPyAoc3lzdGVtKiAiZ2l0IiAiYWRkIiAiLiIpKSkpKQor KGRlZmluZSogKHVucGFjayAjOmtleSBzb3VyY2UgIzphbGxvdy1vdGhlci1rZXlzKQorICAiVW5w YWNrIHRoZSBnZW0gU09VUkNFIGFuZCBlbnRlciB0aGUgcmVzdWx0aW5nIGRpcmVjdG9yeS4iCisg IChhbmQgKHplcm8/IChzeXN0ZW0qICJnZW0iICJ1bnBhY2siIHNvdXJjZSkpCisgICAgICAgKGJl Z2luCisgICAgICAgICA7OyBUaGUgdW5wYWNrZWQgZ2VtIGRpcmVjdG9yeSBpcyBuYW1lZCB0aGUg c2FtZSBhcyB0aGUgYXJjaGl2ZSwgc2FucworICAgICAgICAgOzsgdGhlICIuZ2VtIiBleHRlbnNp b24uCisgICAgICAgICAoY2hkaXIgKG1hdGNoOnN1YnN0cmluZyAoc3RyaW5nLW1hdGNoICJeKC4q KVxcLmdlbSQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChiYXNlbmFtZSBzb3VyY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSkp CisgICAgICAgICAjdCkpKQogCi0oZGVmaW5lIGJ1aWxkCi0gIChsYW1iZGEgXwotICAgIChtYXRj aCAoZmluZC1maWxlcyAiLiIgIlxcLmdlbXNwZWMkIikKLSAgICAgIDs7IE5vIGdlbXNwZWMsIHRy eSAncmFrZSBnZW0nIGluc3RlYWQuCi0gICAgICAoKCkKLSAgICAgICAoemVybz8gKHN5c3RlbSog InJha2UiICJnZW0iKSkpCi0gICAgICA7OyBCdWlsZCB0aGUgZmlyc3QgbWF0Y2hpbmcgZ2Vtc3Bl Yy4KLSAgICAgICgoZ2Vtc3BlYyAuIF8pCi0gICAgICAgKHplcm8/IChzeXN0ZW0qICJnZW0iICJi dWlsZCIgZ2Vtc3BlYykpKSkpKQorKGRlZmluZSogKGJ1aWxkICM6a2V5IHNvdXJjZSAjOmFsbG93 LW90aGVyLWtleXMpCisgICJCdWlsZCBhIG5ldyBnZW0gdXNpbmcgdGhlIGdlbXNwZWMgZnJvbSB0 aGUgU09VUkNFIGdlbS4iCisKKyAgOzsgUmVtb3ZlIHRoZSBvcmlnaW5hbCBnZW1zcGVjLCBpZiBw cmVzZW50LCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IG9uZS4KKyAgOzsgVGhpcyBhdm9pZHMg aXNzdWVzIHdpdGggdXBzdHJlYW0gZ2Vtc3BlY3MgcmVxdWlyaW5nIHRvb2xzIHN1Y2ggYXMgZ2l0 IHRvCisgIDs7IGdlbmVyYXRlIHRoZSBmaWxlcyBsaXN0LgorICAobGV0ICgoZ2Vtc3BlYyAob3Ig KGZhbHNlLWlmLWV4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICAgIChmaXJzdC1tYXRjaGlu Zy1maWxlICJcXC5nZW1zcGVjJCIpKQorICAgICAgICAgICAgICAgICAgICAgOzsgTWFrZSBuZXcg Z2Vtc3BlYyBpZiBvbmUgd2Fzbid0IHNoaXBwZWQuCisgICAgICAgICAgICAgICAgICAgICAiLmdl bXNwZWMiKSkpCisKKyAgICAod2hlbiAoZmlsZS1leGlzdHM/IGdlbXNwZWMpIChkZWxldGUtZmls ZSBnZW1zcGVjKSkKKworICAgIDs7IEV4dHJhY3QgZ2Vtc3BlYyBmcm9tIHNvdXJjZSBnZW0uCisg ICAgKGxldCAoKHBpcGUgKG9wZW4tcGlwZSogT1BFTl9SRUFEICJnZW0iICJzcGVjIiAiLS1ydWJ5 IiBzb3VyY2UpKSkKKyAgICAgIChkeW5hbWljLXdpbmQKKyAgICAgICAgKGNvbnN0ICN0KQorICAg ICAgICAobGFtYmRhICgpCisgICAgICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZSBnZW1zcGVj CisgICAgICAgICAgICAobGFtYmRhIChvdXQpCisgICAgICAgICAgICAgIDs7ICdnZW0gc3BlYycg d3JpdGVzIHRvIHN0ZG91dCwgYnV0ICdnZW0gYnVpbGQnIG9ubHkgcmVhZHMKKyAgICAgICAgICAg ICAgOzsgZ2Vtc3BlY3MgZnJvbSBhIGZpbGUsIHNvIHdlIHJlZGlyZWN0IHRoZSBvdXRwdXQgdG8g YSBmaWxlLgorICAgICAgICAgICAgICAod2hpbGUgKG5vdCAoZW9mLW9iamVjdD8gKHBlZWstY2hh ciBwaXBlKSkpCisgICAgICAgICAgICAgICAgKHdyaXRlLWNoYXIgKHJlYWQtY2hhciBwaXBlKSBv dXQpKSkpCisgICAgICAgICAgI3QpCisgICAgICAgIChsYW1iZGEgKCkKKyAgICAgICAgICAoY2xv c2UtcGlwZSBwaXBlKSkpKQorCisgICAgOzsgQnVpbGQgYSBuZXcgZ2VtIGZyb20gdGhlIGN1cnJl bnQgd29ya2luZyBkaXJlY3RvcnkuICBUaGlzIGFsc28gYWxsb3dzIGFueQorICAgIDs7IGR5bmFt aWMgcGF0Y2hpbmcgZG9uZSBpbiBwcmV2aW91cyBwaGFzZXMgdG8gYmUgcHJlc2VudCBpbiB0aGUg aW5zdGFsbGVkCisgICAgOzsgZ2VtLgorICAgICh6ZXJvPyAoc3lzdGVtKiAiZ2VtIiAiYnVpbGQi IGdlbXNwZWMpKSkpCiAKIChkZWZpbmUqIChjaGVjayAjOmtleSB0ZXN0cz8gdGVzdC10YXJnZXQg IzphbGxvdy1vdGhlci1rZXlzKQorICAiUnVuIHRoZSBnZW0ncyB0ZXN0IHN1aXRlIHJha2UgdGFz ayBURVNULVRBUkdFVC4gIFNraXAgdGhlIHRlc3RzIGlmIFRFU1RTPworaXMgI2YuIgogICAoaWYg dGVzdHM/CiAgICAgICAoemVybz8gKHN5c3RlbSogInJha2UiIHRlc3QtdGFyZ2V0KSkKICAgICAg ICN0KSkKIAotKGRlZmluZSogKGluc3RhbGwgIzprZXkgc291cmNlIGlucHV0cyBvdXRwdXRzIChn ZW0tZmxhZ3MgJygpKQorKGRlZmluZSogKGluc3RhbGwgIzprZXkgaW5wdXRzIG91dHB1dHMgKGdl bS1mbGFncyAnKCkpCiAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMpCisgICJJ bnN0YWxsIHRoZSBnZW0gYXJjaGl2ZSBTT1VSQ0UgdG8gdGhlIG91dHB1dCBzdG9yZSBpdGVtLiAg QWRkaXRpb25hbAorR0VNLUZMQUdTIGFyZSBwYXNzZWQgdG8gdGhlICdnZW0nIGludm9rYXRpb24s IGlmIHByZXNlbnQuIgogICAobGV0KiAoKHJ1YnktdmVyc2lvbgogICAgICAgICAgIChtYXRjaDpz dWJzdHJpbmcgKHN0cmluZy1tYXRjaCAicnVieS0oLiopXFwuWzAtOV0kIgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXNzb2MtcmVmIGlucHV0cyAicnVieSIpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSkpCiAgICAgICAgICAob3V0IChhc3NvYy1yZWYg b3V0cHV0cyAib3V0IikpCiAgICAgICAgICAoZ2VtLWhvbWUgKHN0cmluZy1hcHBlbmQgb3V0ICIv bGliL3J1YnkvZ2Vtcy8iIHJ1YnktdmVyc2lvbiAiLjAiKSkpCisKICAgICAoc2V0ZW52ICJHRU1f SE9NRSIgZ2VtLWhvbWUpCiAgICAgKG1rZGlyLXAgZ2VtLWhvbWUpCi0gICAgKHplcm8/IChhcHBs eSBzeXN0ZW0qICJnZW0iICJpbnN0YWxsIiAiLS1sb2NhbCIKLSAgICAgICAgICAgICAgICAgIChm aXJzdC1tYXRjaGluZy1maWxlICJcXC5nZW0kIikKKyAgICAoemVybz8gKGFwcGx5IHN5c3RlbSog ImdlbSIgImluc3RhbGwiIChmaXJzdC1tYXRjaGluZy1maWxlICJcXC5nZW0kIikKKyAgICAgICAg ICAgICAgICAgICItLWxvY2FsIiAiLS1pZ25vcmUtZGVwZW5kZW5jaWVzIgogICAgICAgICAgICAg ICAgICAgOzsgRXhlY3V0YWJsZXMgc2hvdWxkIGdvIGludG8gL2Jpbiwgbm90IC9saWIvcnVieS9n ZW1zLgogICAgICAgICAgICAgICAgICAgIi0tYmluZGlyIiAoc3RyaW5nLWFwcGVuZCBvdXQgIi9i aW4iKQogICAgICAgICAgICAgICAgICAgZ2VtLWZsYWdzKSkpKQpAQCAtODIsOCArMTE0LDggQEAg ZGlyZWN0b3J5LiIKIChkZWZpbmUgJXN0YW5kYXJkLXBoYXNlcwogICAobW9kaWZ5LXBoYXNlcyBn bnU6JXN0YW5kYXJkLXBoYXNlcwogICAgIChkZWxldGUgJ2NvbmZpZ3VyZSkKLSAgICAoYWRkLWFm dGVyICd1bnBhY2sgJ2dpdGlmeSBnaXRpZnkpCiAgICAgKHJlcGxhY2UgJ2J1aWxkIGJ1aWxkKQor ICAgIChyZXBsYWNlICd1bnBhY2sgdW5wYWNrKQogICAgIChyZXBsYWNlICdpbnN0YWxsIGluc3Rh bGwpCiAgICAgKHJlcGxhY2UgJ2NoZWNrIGNoZWNrKSkpCiAKLS0gCjIuNC4zCgo= --001a113ecb4a261baa051d8a3520--