From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 683F53858002 for ; Mon, 13 Sep 2021 16:20:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 683F53858002 Received: from mail-io1-f70.google.com (mail-io1-f70.google.com [209.85.166.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-287-uWWUvE9zNLCGZHKs1ix2_w-1; Mon, 13 Sep 2021 12:20:41 -0400 X-MC-Unique: uWWUvE9zNLCGZHKs1ix2_w-1 Received: by mail-io1-f70.google.com with SMTP id d15-20020a0566022befb02905b2e9040807so14208750ioy.11 for ; Mon, 13 Sep 2021 09:20:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=XVpawtS+5t78voXavkqnh+cDCmU4WD33u+xBGGmZ0zQ=; b=oZ5b/6MD3lXBWOdGafoUbF9PsUoTImqcKF+N1Q/J8it6sAbzT2+hSXlsefupmP7OFT EKI8bk9odgt06mMtCopMZB4t0u2BiBzbWKcTz6eZvSJCexp9/lCrKzrKtXYc15wgjJqK /Wvr5VYQKPaigQpFPY8JrUxhDx05tmjJReCrPiWBNPTOKZfX7onz5SfEiye4Dc/j1v3v 1V+HLciviQVu3JXc0ek2axv2fIfTs0uW+NT3AOupGTNwvmjhnSKjTC5MjiSjrPCxi6YB yLoxK9+JtXti316SamQPORf8z9VC5icyBZbG2f0x/+o7+ZFc5xGkUDWd7ffVA9GLUL0G BC1Q== X-Gm-Message-State: AOAM531IkmekzLt8426zAOQf4rj09RdLaQcFhjBuMEgcch9yl0hgn/2F MuE/gz7JCIzhh+M85wXI5UClpt+okJqjEAulmUVB4Fb+s9eq4pU32EUajPkKLRZ2vnp30qnSZt/ 2GzvEfGtms8DL3vcpJC9/GFcjIJTUv3ppYRfWDh0F2w== X-Received: by 2002:a05:6e02:f13:: with SMTP id x19mr8686325ilj.216.1631550041159; Mon, 13 Sep 2021 09:20:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzE/8PgKolYy7w8OO3yrPcsrch5OO58vqLGhtYUvsZmHpkkkOcoA/RvTzcHFNK/EzT8J3XUiIbMPQ2Vexp5YQY= X-Received: by 2002:a05:6e02:f13:: with SMTP id x19mr8686306ilj.216.1631550040907; Mon, 13 Sep 2021 09:20:40 -0700 (PDT) MIME-Version: 1.0 References: <20210826210213.GM416@redhat.com> In-Reply-To: From: Noah Sanci Date: Mon, 13 Sep 2021 12:20:29 -0400 Message-ID: Subject: Re: [Bug debuginfod/28034] client-side %-escape url characters To: Mark Wielaard , elfutils-devel@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000009fb90a05cbe2d8b1" X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_BADIPHTTP, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2021 16:20:47 -0000 --0000000000009fb90a05cbe2d8b1 Content-Type: text/plain; charset="UTF-8" Hello, On Sun, Sep 12, 2021 at 1:24 PM Mark Wielaard wrote: > The escaped_string is created outside the loop and reused each time > (good). But... > > + > > /* Initialize each handle. */ > > for (int i = 0; i < num_urls; i++) > > { > > @@ -904,16 +908,23 @@ debuginfod_query_server (debuginfod_client *c, > > if (filename) /* must start with / */ > > { > > /* PR28034 escape characters in completed url to %hh format. */ > > - char *escaped_string; > > - escaped_string = curl_easy_escape(data[i].handle, filename, 0); > > + char *loc = escaped_string; > > if (!escaped_string) > > { > > rc = -ENOMEM; > > goto out2; > > } > > This check, and... > > > + > > + size_t escaped_strlen = strlen(escaped_string); > > + while ((loc = strstr(loc, "%2F"))) > > + { > > + loc[0] = '/'; > > + // pull the string back after replacement > > + memmove(loc+1, loc+3,escaped_strlen - (loc - escaped_string + 2) ); > > + escaped_strlen -=2; > > + } > > the manipulation of the escaped_string, could both also be done > outside the loop, since they always do the same thing. Fixed. > > I think you should simply add a new ChangeLog entry at the top instead > of changing an old existing one. And please do mention the Makefile.am > (TESTS) and (EXTRA_DIST) addition. Should be good. > OK, that is certainly a file name with lots of unexpected characters :) Gotta be sure :) If there are any more efficiency changes, ChangeLog changes, or other changes, don't be afraid to reach out again. Thanks, Noah Sanci --0000000000009fb90a05cbe2d8b1 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-debuginfod-PR28034-Percent-escape-debuginfod-urls.patch" Content-Disposition: attachment; filename="0001-debuginfod-PR28034-Percent-escape-debuginfod-urls.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ktiuprs00 RnJvbSBmYTkxMDRjNzQzNTUwM2QwODMwOGUxOGQ0ZTFhODI3OTJmODNmYzU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNvbT4KRGF0ZTog VGh1LCA5IFNlcCAyMDIxIDEzOjEwOjMzIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gZGVidWdpbmZv ZDogUFIyODAzNCAtIFBlcmNlbnQgZXNjYXBlIGRlYnVnaW5mb2QgdXJscwoKV2hlbiByZXF1ZXN0 aW5nIHNvbWUgc291cmNlIGZpbGVzLCBzb21lIFVSTC1pbmNvbnZlbmllbnQgY2hhcnMKc29tZXRp bWVzIHBvcCB1cCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byAnKycsICdeJywgYW5kICcm Jy4KRXhhbXBsZSBmcm9tIGYzMyBsaWJzdGRjKys6CiAvYnVpbGRpZC80NGQ4NDg1Y2I3NTUxMmMy Y2E1YzhmNzBhZmJkNDc1Y2FlMzBhZjRmL3NvdXJjZS91c3Ivc3JjL2RlYnVnCiAvZ2NjLTEwLjMu MS0xLmZjMzMueDg2XzY0L29iai14ODZfNjQtcmVkaGF0LWxpbnV4L3g4Nl82NC1yZWRoYXQtbGlu dXgvCiBsaWJzdGRjKystdjMvc3JjL2MrKzExLy4uLy4uLy4uLy4uLy4uL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvCiBjb25kaXRpb25fdmFyaWFibGUuY2MKQXMgdGhpcyBVUkwgaXMgcGFzc2VkIGlu dG8gZGVidWdpbmZvZCdzIGhhbmRsZXJfY2IsIGl0IGFwcGVhcnMgdGhhdCB0aGUKKyBzaWducyBh cmUgaGVscGZ1bGx5IHVuZXNjYXBlZCB0byBzcGFjZXMgYnkgbGlibWljcm9odHRwZCwgd2hpY2gK J2NvdXJzZSBicmVha3MgZXZlcnl0aGluZy4KVG8gY29tYmF0IHRoaXMsIGJlZm9yZSBxdWVyeWlu ZyB0aGUgZGVidWdpbmZvZCBkYWVtb24sIGNsaWVudHMgbm93ICUKZXNjYXBlIHRoZSBzb3VyY2Ug ZmlsZW5hbWUuIFRoaXMgY29udmVydHMgbWFueSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycwppbnRv IHRoZWlyICUtY29kZSBmb3JtYXQsIGluY2x1ZGluZyAnLycgdG8gJTJGLiBXZSB3YW50IHRvIHBy ZXNlcnZlIHRoZQonLycgaW4gdGhlIHVybCwgc28gYWZ0ZXIgY29udmVyc2lvbiByZXBsYWNlICUy RnMgd2l0aCBhICcvJy4KCmh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcu Y2dpP2lkPTI4MDM0CgpTaWduZWQtb2ZmLWJ5OiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNv bT4KLS0tCiBkZWJ1Z2luZm9kL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICA0ICsrCiBk ZWJ1Z2luZm9kL2RlYnVnaW5mb2QtY2xpZW50LmMgICAgICAgICB8IDI5ICsrKysrKysrKy0tLS0K IHRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tCiB0ZXN0 cy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICB8ICAyICsKIHRlc3RzL3J1bi1kZWJ1 Z2luZm9kLXBlcmNlbnQtZXNjYXBlLnNoIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysK IDUgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtcGVyY2VudC1lc2NhcGUuc2gKCmRp ZmYgLS1naXQgYS9kZWJ1Z2luZm9kL0NoYW5nZUxvZyBiL2RlYnVnaW5mb2QvQ2hhbmdlTG9nCmlu ZGV4IDExNzNmOWNkLi5iOGVhYTg4YyAxMDA2NDQKLS0tIGEvZGVidWdpbmZvZC9DaGFuZ2VMb2cK KysrIGIvZGVidWdpbmZvZC9DaGFuZ2VMb2cKQEAgLTIsNiArMiwxMCBAQAogCiAJKiBkZWJ1Z2lu Zm9kLmN4eCAobGliYXJjaGl2ZV9mZGNhY2hlOjpsb29rdXApOiBBZGQgZW5kbCBhZnRlcgogCW9i YXRjaGVkKGNsb2cpIGxpbmUuCisyMDIxLTA5LTEzICBOb2FoIFNhbmNpICA8bnNhbmNpQHJlZGhh dC5jb20+CisKKwkqIGRlYnVnaW5mb2QtY2xpZW50LmMgKGRlYnVnaW5mb2RfcXVlcnlfc2VydmVy KTogUmVtb3ZlZCBjb25zdGFudAorCW9wZXJhdGlvbnMgZnJvbSBhIGxvb3AuIGN1cmxfZnJlZSBt ZW1vcnkuCiAKIDIwMjEtMDktMDYgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+ CiAKZGlmZiAtLWdpdCBhL2RlYnVnaW5mb2QvZGVidWdpbmZvZC1jbGllbnQuYyBiL2RlYnVnaW5m b2QvZGVidWdpbmZvZC1jbGllbnQuYwppbmRleCBkNDE3MjNjZS4uZjU1ZTE0ODkgMTAwNjQ0Ci0t LSBhL2RlYnVnaW5mb2QvZGVidWdpbmZvZC1jbGllbnQuYworKysgYi9kZWJ1Z2luZm9kL2RlYnVn aW5mb2QtY2xpZW50LmMKQEAgLTg4Myw2ICs4ODMsMjYgQEAgZGVidWdpbmZvZF9xdWVyeV9zZXJ2 ZXIgKGRlYnVnaW5mb2RfY2xpZW50ICpjLAogICAgICAgZGF0YVtpXS5lcnJidWZbMF0gPSAnXDAn OwogICAgIH0KIAorICBjaGFyICplc2NhcGVkX3N0cmluZyA9IE5VTEw7CisgIHNpemVfdCBlc2Nh cGVkX3N0cmxlbiA9IDA7CisgIGlmIChmaWxlbmFtZSkKKyAgICB7CisgICAgICBlc2NhcGVkX3N0 cmluZyA9IGN1cmxfZWFzeV9lc2NhcGUoJnRhcmdldF9oYW5kbGUsIGZpbGVuYW1lKzEsIDApOwor ICAgICAgaWYgKCFlc2NhcGVkX3N0cmluZykKKyAgICAgICAgeworICAgICAgICAgIHJjID0gLUVO T01FTTsKKyAgICAgICAgICBnb3RvIG91dDI7CisgICAgICAgIH0KKyAgICAgIGNoYXIgKmxvYyA9 IGVzY2FwZWRfc3RyaW5nOworICAgICAgZXNjYXBlZF9zdHJsZW4gPSBzdHJsZW4oZXNjYXBlZF9z dHJpbmcpIC0gMiArIChzaXplX3QpZXNjYXBlZF9zdHJpbmc7CisgICAgICB3aGlsZSAoKGxvYyA9 IHN0cnN0cihsb2MsICIlMkYiKSkpCisgICAgICAgIHsKKyAgICAgICAgICBsb2NbMF0gPSAnLyc7 CisgICAgICAgICAgLy8gcHVsbCB0aGUgc3RyaW5nIGJhY2sgYWZ0ZXIgcmVwbGFjZW1lbnQKKyAg ICAgICAgICBtZW1tb3ZlKGxvYysxLCBsb2MrMyxlc2NhcGVkX3N0cmxlbiAtIChzaXplX3QpbG9j ICk7CisgICAgICAgICAgZXNjYXBlZF9zdHJsZW4gLT0yOworICAgICAgICB9CisgICAgfQogICAv KiBJbml0aWFsaXplIGVhY2ggaGFuZGxlLiAgKi8KICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1f dXJsczsgaSsrKQogICAgIHsKQEAgLTkwNCwxNiArOTI0LDggQEAgZGVidWdpbmZvZF9xdWVyeV9z ZXJ2ZXIgKGRlYnVnaW5mb2RfY2xpZW50ICpjLAogICAgICAgaWYgKGZpbGVuYW1lKSAvKiBtdXN0 IHN0YXJ0IHdpdGggLyAqLwogICAgICAgICB7CiAgICAgICAgICAgLyogUFIyODAzNCBlc2NhcGUg Y2hhcmFjdGVycyBpbiBjb21wbGV0ZWQgdXJsIHRvICVoaCBmb3JtYXQuICovCi0gICAgICAgICAg Y2hhciAqZXNjYXBlZF9zdHJpbmc7Ci0gICAgICAgICAgZXNjYXBlZF9zdHJpbmcgPSBjdXJsX2Vh c3lfZXNjYXBlKGRhdGFbaV0uaGFuZGxlLCBmaWxlbmFtZSwgMCk7Ci0gICAgICAgICAgaWYgKCFl c2NhcGVkX3N0cmluZykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgcmMgPSAtRU5PTUVN OwotICAgICAgICAgICAgICBnb3RvIG91dDI7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgc25w cmludGYoZGF0YVtpXS51cmwsIFBBVEhfTUFYLCAiJXMvJXMvJXMvJXMiLCBzZXJ2ZXJfdXJsLAog ICAgICAgICAgICAgICAgICAgIGJ1aWxkX2lkX2J5dGVzLCB0eXBlLCBlc2NhcGVkX3N0cmluZyk7 Ci0gICAgICAgICAgY3VybF9mcmVlKGVzY2FwZWRfc3RyaW5nKTsKICAgICAgICAgfQogICAgICAg ZWxzZQogICAgICAgICBzbnByaW50ZihkYXRhW2ldLnVybCwgUEFUSF9NQVgsICIlcy8lcy8lcyIs IHNlcnZlcl91cmwsIGJ1aWxkX2lkX2J5dGVzLCB0eXBlKTsKQEAgLTk1Myw2ICs5NjUsNyBAQCBk ZWJ1Z2luZm9kX3F1ZXJ5X3NlcnZlciAoZGVidWdpbmZvZF9jbGllbnQgKmMsCiAgICAgICBjdXJs X211bHRpX2FkZF9oYW5kbGUoY3VybG0sIGRhdGFbaV0uaGFuZGxlKTsKICAgICB9CiAKKyAgaWYg KGZpbGVuYW1lKSBjdXJsX2ZyZWUoZXNjYXBlZF9zdHJpbmcpOwogICAvKiBRdWVyeSBzZXJ2ZXJz IGluIHBhcmFsbGVsLiAgKi8KICAgaWYgKHZmZCA+PSAwKQogICAgIGRwcmludGYgKHZmZCwgInF1 ZXJ5ICVkIHVybHMgaW4gcGFyYWxsZWxcbiIsIG51bV91cmxzKTsKZGlmZiAtLWdpdCBhL3Rlc3Rz L0NoYW5nZUxvZyBiL3Rlc3RzL0NoYW5nZUxvZwppbmRleCAxMTU0Njg2YS4uM2YyMTkzMjAgMTAw NjQ0Ci0tLSBhL3Rlc3RzL0NoYW5nZUxvZworKysgYi90ZXN0cy9DaGFuZ2VMb2cKQEAgLTMwLDYg KzMwLDExIEBACiAJKiBydW4tZGVidWdpbmZvZC1mZWRlcmF0aW9uLW1ldHJpY3Muc2g6IExpa2V3 aXNlLgogCSogcnVuLWRlYnVnaW5mb2QtZmVkZXJhdGlvbi1zcWxpdGUuc2g6IExpa2V3aXNlLgog CisyMDIxLTA5LTEzICBOb2FoIFNhbmNpICA8bnNhbmNpQHJlZGhhdC5jb20+CisKKwkqIE1ha2Vm aWxlLmFtOiBhZGRlZCBydW4tZGVidWdpbmZvZC1wZXJjZW50LWVzY2FwZS5zaCB0byBURVNUUyBh bmQKKwlFWFRSQV9ESVNULgorCiAyMDIxLTA5LTA2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0 bGludXgub3JnPgogCiAJKiBlbGZjb3B5LmMgKGNvcHlfZWxmKTogUmVtb3ZlIGNhc3Qgb2YgbWFs bG9jIHJldHVybiB2YWx1ZS4KQEAgLTE2NCwxMSArMTY5LDggQEAKIDIwMjEtMDctMTYgIE5vYWgg U2FuY2kgIDxuc2FuY2lAcmVkaGF0LmNvbT4KIAogCVBSMjgwMzQKLQkqIHJ1bi1kZWJ1Z2luZm9k LWZpbmQuc2g6IEFkZGVkIGEgdGVzdCBlbnN1cmluZyBmaWxlcyB3aXRoICUKLQllc2NhcGFibGUg Y2hhcmFjdGVycyBpbiB0aGVpciBwYXRocyBhcmUgYWNjZXNzaWJsZS4gVGhlIHRlc3QKLQlpdHNl bGYgaXMgY2hhbmdpbmcgdGhlIG5hbWUgb2YgYSBiaW5hcnkga25vd24gcHJldmlvdXNseSBhcyBw cm9nIHRvCi0JcCtyJW8kZy4gR2VuZXJhbCBvcGVyYXRpb25zIHN1Y2ggYXMgYWNjZXNzaW5nIHAr ciVvJGcgYWN0cyBhcyB0aGUKLQl0ZXN0IGZvciAlLWVzY2FwZSBjaGVja2luZy4KKwkqIHJ1bi1k ZWJ1Z2luZm9kLXBlcmNlbnQtZXNjYXBlLnNoOiBBZGRlZCBhIHRlc3QgZW5zdXJpbmcgZmlsZXMg d2l0aCAlCisJZXNjYXBhYmxlIGNoYXJhY3RlcnMgaW4gdGhlaXIgcGF0aHMgYXJlIGFjY2Vzc2li bGUuCiAKIDIwMjEtMDctMjEgIE5vYWggU2FuY2kgPG5zYW5jaUByZWRoYXQuY29tPgogCmRpZmYg LS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBiL3Rlc3RzL01ha2VmaWxlLmFtCmluZGV4IDIyOTQy NzMzLi40M2MzNGNlNiAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuYW0KKysrIGIvdGVzdHMv TWFrZWZpbGUuYW0KQEAgLTIzMSw2ICsyMzEsNyBAQCBURVNUUyArPSBydW4tZGVidWdpbmZvZC1k bG9wZW4uc2ggXAogCSBydW4tZGVidWdpbmZvZC1mZWRlcmF0aW9uLXNxbGl0ZS5zaCBcCiAJIHJ1 bi1kZWJ1Z2luZm9kLWZlZGVyYXRpb24tbGluay5zaCBcCiAJIHJ1bi1kZWJ1Z2luZm9kLWZlZGVy YXRpb24tbWV0cmljcy5zaCBcCisgICAgICAgICBydW4tZGVidWdpbmZvZC1wZXJjZW50LWVzY2Fw ZS5zaCBcCiAJIHJ1bi1kZWJ1Z2luZm9kLXgtZm9yd2FyZGVkLWZvci5zaAogZW5kaWYKIGVuZGlm CkBAIC01MjQsNiArNTI1LDcgQEAgRVhUUkFfRElTVCA9IHJ1bi1hcmV4dHJhY3Quc2ggcnVuLWFy c3ltdGVzdC5zaCBydW4tYXIuc2ggXAogCSAgICAgcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS1ncm9v bS5zaCBcCiAJICAgICBydW4tZGVidWdpbmZvZC1hcmNoaXZlLXJlbmFtZS5zaCBcCiAgICAgICAg ICAgICAgcnVuLWRlYnVnaW5mb2QtYXJjaGl2ZS10ZXN0LnNoIFwKKyAgICAgICAgICAgICBydW4t ZGVidWdpbmZvZC1wZXJjZW50LWVzY2FwZS5zaCBcCiAJICAgICBkZWJ1Z2luZm9kLXJwbXMvZmVk b3JhMzAvaGVsbG8yLTEuMC0yLnNyYy5ycG0gXAogCSAgICAgZGVidWdpbmZvZC1ycG1zL2ZlZG9y YTMwL2hlbGxvMi0xLjAtMi54ODZfNjQucnBtIFwKIAkgICAgIGRlYnVnaW5mb2QtcnBtcy9mZWRv cmEzMC9oZWxsbzItZGVidWdpbmZvLTEuMC0yLng4Nl82NC5ycG0gXApkaWZmIC0tZ2l0IGEvdGVz dHMvcnVuLWRlYnVnaW5mb2QtcGVyY2VudC1lc2NhcGUuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZv ZC1wZXJjZW50LWVzY2FwZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4u ZjdkOGRjNjYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1wZXJjZW50 LWVzY2FwZS5zaApAQCAtMCwwICsxLDYwIEBACisjIS91c3IvYmluL2VudiBiYXNoCisjCisjIENv cHlyaWdodCAoQykgMjAxOS0yMDIxIFJlZCBIYXQsIEluYy4KKyMgVGhpcyBmaWxlIGlzIHBhcnQg b2YgZWxmdXRpbHMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisj IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIGVsZnV0aWxzIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy4gJHNyY2Rpci9kZWJ1Z2luZm9kLXN1YnIu c2ggICMgaW5jbHVkZXMgc2V0IC1lCisjIGZvciB0ZXN0IGNhc2UgZGVidWdnaW5nLCB1bmNvbW1l bnQ6CitzZXQgLXgKK3Vuc2V0IFZBTEdSSU5EX0NNRAorIyBUaGlzIHZhcmlhYmxlIGlzIGVzc2Vu dGlhbCBhbmQgZW5zdXJlcyBubyB0aW1lLXJhY2UgZm9yIGNsYWltaW5nIHBvcnRzIG9jY3Vycwor IyBzZXQgYmFzZSB0byBhIHVuaXF1ZSBtdWx0aXBsZSBvZiAxMDAgbm90IHVzZWQgaW4gYW55IG90 aGVyICdydW4tZGVidWdpbmZvZC0qJyB0ZXN0CitiYXNlPTEwMDAwCitnZXRfcG9ydHMKK0RCPSR7 UFdEfS8uZGVidWdpbmZvZF90bXAuc3FsaXRlCit0ZW1wZmlsZXMgJERCCitta2RpciBGCitlbnYg TERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL2RlYnVnaW5mb2QvZGVi dWdpbmZvZCAkVkVSQk9TRSBcCisgICAgLUYgLVIgLWQgJERCIC1wICRQT1JUMSAtdDAgLWcwIC12 IFIgJHtQV0R9L0YgPiB2bG9nJFBPUlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ck UE9SVDEKK2VycmZpbGVzIHZsb2ckUE9SVDEKKyMgU2VydmVyIG11c3QgYmVjb21lIHJlYWR5Cit3 YWl0X3JlYWR5ICRQT1JUMSAncmVhZHknIDEKKyMgQmUgcGF0aWVudCB3aGVuIHJ1biBvbiBhIGJ1 c3kgbWFjaGluZSB0aGluZ3MgbWlnaHQgdGFrZSBhIGJpdC4KKworIyBCdWlsZCBhIG5vbi1zdHJp cHBlZCBiaW5hcnkKK2VjaG8gImludCBtYWluKCkgeyByZXR1cm4gMDsgfSIgPiAke1BXRH0vRi9w KytyXCRcI29eXmcuYworZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1vICR7UFdEfS9GL3ArK3JcJFwj b15eZyAke1BXRH0vRi9wKytyXCRcI29eXmcuYworQlVJTERJRD1gZW52IExEX0xJQlJBUllfUEFU SD0kbGRwYXRoICR7YWJzX2J1aWxkZGlyfS8uLi9zcmMvcmVhZGVsZiBcCisgICAgICAgICAgLWEg JHtQV0R9L0YvcCsrclxcJFwjb15eZyB8IGdyZXAgJ0J1aWxkIElEJyB8IGN1dCAtZCAnICcgLWYg N2AKK3RlbXBmaWxlcyAke1BXRH0vRi9wKytyXCRcI29eXmcuYyAke1BXRH0vRi9wKytyXCRcI29e XmcKK2tpbGwgLVVTUjEgJFBJRDEKKyMgTm93IHRoZXJlIHNob3VsZCBiZSAxIGZpbGVzIGluIHRo ZSBpbmRleAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZl cnNlIn0nIDEKK3dhaXRfcmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNj YW4ifScgMAord2FpdF9yZWFkeSAkUE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAor cm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEggIyBjbGVhbiBpdCBmcm9tIHByZXZpb3VzIHRl c3RzCitscyBGCitlbnYgREVCVUdJTkZPRF9DQUNIRV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hl IERFQlVHSU5GT0RfVVJMUz0iaHR0cDovLzEyNy4wLjAuMTokUE9SVDEiIFwKKyAgICBMRF9MSUJS QVJZX1BBVEg9JGxkcGF0aCAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZv ZC1maW5kIC12dnYgc291cmNlIEYvcCsrclwkXCNvXl5nICR7YWJzX2J1aWxkZGlyfS9GL3ArK3Jc JFwjb15eZy5jID4gdmxvZzEgMj4mMSB8fCB0cnVlCit0ZW1wZmlsZXMgdmxvZzEKK2dyZXAgJ0Yv cCUyQiUyQnIlMjQlMjNvJTVFJTVFZy5jJyB2bG9nMQorCitraWxsICRQSUQxCit3YWl0ICRQSUQx CitQSUQxPTAKK2V4aXQgMAotLSAKMi4zMS4xCgo= --0000000000009fb90a05cbe2d8b1--