From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 40DCD1FF165 for <inbox@lore.proxmox.com>; Wed, 26 Mar 2025 16:23:44 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 214713B357; Wed, 26 Mar 2025 16:23:39 +0100 (CET) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> To: pbs-devel@lists.proxmox.com Date: Wed, 26 Mar 2025 16:23:10 +0100 Message-Id: <20250326152327.332179-7-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250326152327.332179-1-f.gruenbichler@proxmox.com> References: <20250326152327.332179-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.044 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox 06/17] http: adapt simple client to hyper 1.x X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> dGhlIG1haW4gY2hhbmdlIHJlcXVpcmluZyBhZGFwdGF0aW9ucyBoZXJlIGlzIHRoYXQgaHlwZXIg bm8gbG9uZ2VyCnByb3ZpZGVzIGEgQm9keSBzdHJ1Y3QsIGJ1dCBzd2l0Y2hlZCB0byBhIHRyYWl0 LCBzbyB3ZSB1c2Ugb3VyIG93biBCb2R5CnR5cGUgaW50cm9kdWNlZCBieSB0aGUgcHJldmlvdXMg Y29tbWl0LgoKU2lnbmVkLW9mZi1ieTogRmFiaWFuIEdyw7xuYmljaGxlciA8Zi5ncnVlbmJpY2hs ZXJAcHJveG1veC5jb20+Ci0tLQogQ2FyZ28udG9tbCAgICAgICAgICAgICAgICAgICAgICAgIHwg IDggKystCiBwcm94bW94LWh0dHAvQ2FyZ28udG9tbCAgICAgICAgICAgfCAgOCArKy0KIHByb3ht b3gtaHR0cC9zcmMvY2xpZW50L3NpbXBsZS5ycyB8IDkzICsrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgODEgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvQ2FyZ28udG9tbCBiL0NhcmdvLnRvbWwKaW5kZXggMjY4YjM5ZWIu LjIwMmNmZDFlIDEwMDY0NAotLS0gYS9DYXJnby50b21sCisrKyBiL0NhcmdvLnRvbWwKQEAgLTg0 LDggKzg0LDExIEBAIGZvcm1fdXJsZW5jb2RlZCA9ICIxLjEiCiBmdXR1cmVzID0gIjAuMyIKIGhh bmRsZWJhcnMgPSAiMy4wIgogaGV4ID0gIjAuNCIKLWh0dHAgPSAiMC4yIgotaHlwZXIgPSAiMC4x NC41IgoraHR0cCA9ICIxIgoraHR0cC1ib2R5ID0gIjEiCitodHRwLWJvZHktdXRpbCA9ICIwLjEi CitoeXBlci11dGlsID0gIjAuMSIKK2h5cGVyID0gIjEiCiBsZGFwMyA9IHsgdmVyc2lvbiA9ICIw LjExIiwgZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlIH0KIGxldHRyZSA9ICIwLjExLjEiCiBsaWJj ID0gIjAuMi4xMDciCkBAIC0xMDUsNiArMTA4LDcgQEAgc2VyZGVfY2JvciA9ICIwLjExLjEiCiBz ZXJkZV9qc29uID0gIjEuMCIKIHNlcmRlX3BsYWluID0gIjEuMCIKIHN5biA9IHsgdmVyc2lvbiA9 ICIyIiwgZmVhdHVyZXMgPSBbICJmdWxsIiwgInZpc2l0LW11dCIgXSB9CitzeW5jX3dyYXBwZXIg PSAiMS4wLjIiCiB0YXIgPSAiMC40IgogdG9raW8gPSAiMS42IgogdG9raW8tb3BlbnNzbCA9ICIw LjYuMSIKZGlmZiAtLWdpdCBhL3Byb3htb3gtaHR0cC9DYXJnby50b21sIGIvcHJveG1veC1odHRw L0NhcmdvLnRvbWwKaW5kZXggMWZiYzcwYTguLjc2NjhjNmVlIDEwMDY0NAotLS0gYS9wcm94bW94 LWh0dHAvQ2FyZ28udG9tbAorKysgYi9wcm94bW94LWh0dHAvQ2FyZ28udG9tbApAQCAtMTQsMTMg KzE0LDE3IEBAIHJ1c3QtdmVyc2lvbi53b3Jrc3BhY2UgPSB0cnVlCiBbZGVwZW5kZW5jaWVzXQog YW55aG93LndvcmtzcGFjZSA9IHRydWUKIGJhc2U2NCA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgb3B0 aW9uYWwgPSB0cnVlIH0KK2J5dGVzID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBvcHRpb25hbCA9IHRy dWUgfQogZnV0dXJlcyA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KIGh0 dHAgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9CitodHRwLWJvZHkgPSB7 IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9CitodHRwLWJvZHktdXRpbCA9IHsg d29ya3NwYWNlID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KIGh5cGVyID0geyB3b3Jrc3BhY2Ug PSB0cnVlLCBvcHRpb25hbCA9IHRydWUgfQogaHlwZXItdXRpbCA9IHsgd29ya3NwYWNlID0gdHJ1 ZSwgb3B0aW9uYWwgPSB0cnVlIH0KIG5hdGl2ZS10bHMgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9w dGlvbmFsID0gdHJ1ZSB9CiBvcGVuc3NsID0gIHsgdmVyc2lvbiA9ICIwLjEwIiwgb3B0aW9uYWwg PSB0cnVlIH0KIHNlcmRlX2pzb24gPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1 ZSB9CitzeW5jX3dyYXBwZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9 CiB0b2tpbyA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbXSwgb3B0aW9uYWwgPSB0 cnVlIH0KIHRva2lvLW9wZW5zc2wgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1 ZSB9CiB1cmVxID0geyB2ZXJzaW9uID0gIjIuNCIsIGZlYXR1cmVzID0gWyJuYXRpdmUtY2VydHMi LCAibmF0aXZlLXRscyJdLCBvcHRpb25hbCA9IHRydWUsIGRlZmF1bHQtZmVhdHVyZXMgPSBmYWxz ZSB9CkBAIC02MCw4ICs2NCwxMCBAQCByYXRlLWxpbWl0ZWQtc3RyZWFtID0gWwogICAgICJyYXRl LWxpbWl0ZXIiLAogXQogY2xpZW50ID0gWworICAgICJkZXA6Ynl0ZXMiLAogICAgICJkZXA6ZnV0 dXJlcyIsCi0gICAgImRlcDpoeXBlciIsCisgICAgImRlcDpodHRwLWJvZHkiLAorICAgICJkZXA6 aHR0cC1ib2R5LXV0aWwiLAogICAgICJkZXA6aHlwZXItdXRpbCIsCiAgICAgImRlcDpvcGVuc3Ns IiwKICAgICAiZGVwOnByb3htb3gtY29tcHJlc3Npb24iLApkaWZmIC0tZ2l0IGEvcHJveG1veC1o dHRwL3NyYy9jbGllbnQvc2ltcGxlLnJzIGIvcHJveG1veC1odHRwL3NyYy9jbGllbnQvc2ltcGxl LnJzCmluZGV4IDA2Mjg4OWFjLi5iNTMxOGYxOSAxMDA2NDQKLS0tIGEvcHJveG1veC1odHRwL3Ny Yy9jbGllbnQvc2ltcGxlLnJzCisrKyBiL3Byb3htb3gtaHR0cC9zcmMvY2xpZW50L3NpbXBsZS5y cwpAQCAtMSwxOSArMSwyNCBAQAogdXNlIGFueWhvdzo6e2JhaWwsIGZvcm1hdF9lcnIsIEVycm9y fTsKIHVzZSBzdGQ6OmNvbGxlY3Rpb25zOjpIYXNoTWFwOwogCit1c2Ugc3RkOjpmbXQ6OkRpc3Bs YXk7CisKKyNbY2ZnKGFsbChmZWF0dXJlID0gImNsaWVudC10cmFpdCIsIGZlYXR1cmUgPSAicHJv eG1veC1hc3luYyIpKV0KK3VzZSBodHRwOjpoZWFkZXI6OkhlYWRlck5hbWU7CiAjW2NmZyhhbGwo ZmVhdHVyZSA9ICJjbGllbnQtdHJhaXQiLCBmZWF0dXJlID0gInByb3htb3gtYXN5bmMiKSldCiB1 c2Ugc3RkOjpzdHI6OkZyb21TdHI7CiAKIHVzZSBmdXR1cmVzOjoqOwotI1tjZmcoYWxsKGZlYXR1 cmUgPSAiY2xpZW50LXRyYWl0IiwgZmVhdHVyZSA9ICJwcm94bW94LWFzeW5jIikpXQotdXNlIGh0 dHA6OmhlYWRlcjo6SGVhZGVyTmFtZTsKKwogdXNlIGh0dHA6OntIZWFkZXJWYWx1ZSwgUmVxdWVz dCwgUmVzcG9uc2V9OwotdXNlIGh5cGVyOjpjbGllbnQ6OkNsaWVudCBhcyBIeXBlckNsaWVudDsK LXVzZSBoeXBlcjo6Y2xpZW50OjpIdHRwQ29ubmVjdG9yOwotdXNlIGh5cGVyOjpCb2R5OwordXNl IGh0dHBfYm9keV91dGlsOjp7Qm9keURhdGFTdHJlYW0sIEJvZHlFeHR9OwordXNlIGh5cGVyX3V0 aWw6OmNsaWVudDo6bGVnYWN5Ojpjb25uZWN0OjpIdHRwQ29ubmVjdG9yOwordXNlIGh5cGVyX3V0 aWw6OmNsaWVudDo6bGVnYWN5OjpDbGllbnQgYXMgSHlwZXJDbGllbnQ7Cit1c2UgaHlwZXJfdXRp bDo6cnQ6OlRva2lvRXhlY3V0b3I7CiB1c2Ugb3BlbnNzbDo6c3NsOjp7U3NsQ29ubmVjdG9yLCBT c2xNZXRob2R9OwogCiB1c2UgY3JhdGU6OmNsaWVudDo6SHR0cHNDb25uZWN0b3I7Cit1c2UgY3Jh dGU6OkJvZHk7CiB1c2UgY3JhdGU6Okh0dHBPcHRpb25zOwogCiAvLy8gQXN5bmNocm9ub3VzIEhU VFAgY2xpZW50IGltcGxlbWVudGF0aW9uCkBAIC00NCw3ICs0OSw5IEBAIGltcGwgQ2xpZW50IHsK ICAgICAgICAgaWYgbGV0IFNvbWUocmVmIHByb3h5X2NvbmZpZykgPSBvcHRpb25zLnByb3h5X2Nv bmZpZyB7CiAgICAgICAgICAgICBodHRwcy5zZXRfcHJveHkocHJveHlfY29uZmlnLmNsb25lKCkp OwogICAgICAgICB9Ci0gICAgICAgIGxldCBjbGllbnQgPSBIeXBlckNsaWVudDo6YnVpbGRlcigp LmJ1aWxkKGh0dHBzKTsKKworICAgICAgICBsZXQgY2xpZW50ID0KKyAgICAgICAgICAgIEh5cGVy Q2xpZW50OjpidWlsZGVyKFRva2lvRXhlY3V0b3I6Om5ldygpKS5idWlsZDo6PEh0dHBzQ29ubmVj dG9yLCBCb2R5PihodHRwcyk7CiAgICAgICAgIFNlbGYgeyBjbGllbnQsIG9wdGlvbnMgfQogICAg IH0KIApAQCAtNzQsNyArODEsNyBAQCBpbXBsIENsaWVudCB7CiAKICAgICAgICAgcmVxdWVzdAog ICAgICAgICAgICAgLmhlYWRlcnNfbXV0KCkKLSAgICAgICAgICAgIC5pbnNlcnQoaHlwZXI6Omhl YWRlcjo6VVNFUl9BR0VOVCwgdXNlcl9hZ2VudCk7CisgICAgICAgICAgICAuaW5zZXJ0KGh0dHA6 OmhlYWRlcjo6VVNFUl9BR0VOVCwgdXNlcl9hZ2VudCk7CiAKICAgICAgICAgc2VsZi5hZGRfcHJv eHlfaGVhZGVycygmbXV0IHJlcXVlc3QpPzsKIApAQCAtOTQsNyArMTAxLDcgQEAgaW1wbCBDbGll bnQgewogICAgICAgICBsZXQgbXV0IHJlcXVlc3QgPSBSZXF1ZXN0OjpidWlsZGVyKCkKICAgICAg ICAgICAgIC5tZXRob2QoIlBPU1QiKQogICAgICAgICAgICAgLnVyaSh1cmkpCi0gICAgICAgICAg ICAuaGVhZGVyKGh5cGVyOjpoZWFkZXI6OkNPTlRFTlRfVFlQRSwgY29udGVudF90eXBlKTsKKyAg ICAgICAgICAgIC5oZWFkZXIoaHR0cDo6aGVhZGVyOjpDT05URU5UX1RZUEUsIGNvbnRlbnRfdHlw ZSk7CiAKICAgICAgICAgaWYgbGV0IFNvbWUoZXh0cmFfaGVhZGVycykgPSBleHRyYV9oZWFkZXJz IHsKICAgICAgICAgICAgIGZvciAoaGVhZGVyLCB2YWx1ZSkgaW4gZXh0cmFfaGVhZGVycyB7CkBA IC0xMDIsOSArMTA5LDggQEAgaW1wbCBDbGllbnQgewogICAgICAgICAgICAgfQogICAgICAgICB9 CiAKLSAgICAgICAgbGV0IHJlcXVlc3QgPSByZXF1ZXN0LmJvZHkoYm9keS51bndyYXBfb3JfZGVm YXVsdCgpKT87Ci0KLSAgICAgICAgc2VsZi5yZXF1ZXN0KHJlcXVlc3QpLmF3YWl0CisgICAgICAg IGxldCBib2R5ID0gYm9keS51bndyYXBfb3IoQm9keTo6ZW1wdHkoKSk7CisgICAgICAgIHNlbGYu cmVxdWVzdChyZXF1ZXN0LmJvZHkoYm9keSk/KS5hd2FpdAogICAgIH0KIAogICAgIHB1YiBhc3lu YyBmbiBnZXRfc3RyaW5nKApAQCAtMTQ1LDcgKzE1MSw3IEBAIGltcGwgQ2xpZW50IHsKICAgICAg ICAgICAgIE9rKHJlcykgPT4gewogICAgICAgICAgICAgICAgIGxldCAocGFydHMsIGJvZHkpID0g cmVzLmludG9fcGFydHMoKTsKIAotICAgICAgICAgICAgICAgIGxldCBidWYgPSBoeXBlcjo6Ym9k eTo6dG9fYnl0ZXMoYm9keSkuYXdhaXQ/OworICAgICAgICAgICAgICAgIGxldCBidWYgPSBib2R5 LmNvbGxlY3QoKS5hd2FpdD8udG9fYnl0ZXMoKTsKICAgICAgICAgICAgICAgICBsZXQgbmV3X2Jv ZHkgPSBTdHJpbmc6OmZyb21fdXRmOChidWYudG9fdmVjKCkpCiAgICAgICAgICAgICAgICAgICAg IC5tYXBfZXJyKHxlcnJ8IGZvcm1hdF9lcnIhKCJFcnJvciBjb252ZXJ0aW5nIEhUVFAgcmVzdWx0 IGRhdGE6IHt9IiwgZXJyKSk/OwogCkBAIC0xNTQsNiArMTYwLDI1IEBAIGltcGwgQ2xpZW50IHsK ICAgICAgICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLAogICAgICAgICB9CiAgICAgfQorCisg ICAgcHViIGFzeW5jIGZuIHJlc3BvbnNlX2JvZHlfYnl0ZXMocmVzOiBSZXNwb25zZTxCb2R5Pikg LT4gUmVzdWx0PEJvZHksIEVycm9yPiB7CisgICAgICAgIFNlbGY6OmNvbnZlcnRfYm9keV90b19i eXRlcyhPayhyZXMpKQorICAgICAgICAgICAgLmF3YWl0CisgICAgICAgICAgICAubWFwKHxyZXN8 IHJlcy5pbnRvX2JvZHkoKSkKKyAgICB9CisKKyAgICBhc3luYyBmbiBjb252ZXJ0X2JvZHlfdG9f Ynl0ZXMoCisgICAgICAgIHJlc3BvbnNlOiBSZXN1bHQ8UmVzcG9uc2U8Qm9keT4sIEVycm9yPiwK KyAgICApIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKKyAgICAgICAgbWF0Y2gg cmVzcG9uc2UgeworICAgICAgICAgICAgT2socmVzKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0 IChwYXJ0cywgYm9keSkgPSByZXMuaW50b19wYXJ0cygpOworICAgICAgICAgICAgICAgIGxldCBi dWYgPSBib2R5LmNvbGxlY3QoKS5hd2FpdD8udG9fYnl0ZXMoKTsKKyAgICAgICAgICAgICAgICBP ayhSZXNwb25zZTo6ZnJvbV9wYXJ0cyhwYXJ0cywgYnVmLmludG8oKSkpCisgICAgICAgICAgICB9 CisgICAgICAgICAgICBFcnIoZXJyKSA9PiBFcnIoZXJyKSwKKyAgICAgICAgfQorICAgIH0KIH0K IAogaW1wbCBEZWZhdWx0IGZvciBDbGllbnQgewpAQCAtMTgxLDcgKzIwNiw5IEBAIGltcGwgY3Jh dGU6Okh0dHBDbGllbnQ8Qm9keSwgQm9keT4gZm9yIENsaWVudCB7CiAgICAgICAgICAgICB9CiAg ICAgICAgIH0KIAotICAgICAgICBwcm94bW94X2FzeW5jOjpydW50aW1lOjpibG9ja19vbihzZWxm LnJlcXVlc3QocmVxKSkKKyAgICAgICAgcHJveG1veF9hc3luYzo6cnVudGltZTo6YmxvY2tfb24o YXN5bmMgbW92ZSB7CisgICAgICAgICAgICBTZWxmOjpjb252ZXJ0X2JvZHlfdG9fYnl0ZXMoc2Vs Zi5yZXF1ZXN0KHJlcSkuYXdhaXQpLmF3YWl0CisgICAgICAgIH0pCiAgICAgfQogCiAgICAgZm4g cG9zdCgKQEAgLTE5MSwxMSArMjE4LDE2IEBAIGltcGwgY3JhdGU6Okh0dHBDbGllbnQ8Qm9keSwg Qm9keT4gZm9yIENsaWVudCB7CiAgICAgICAgIGNvbnRlbnRfdHlwZTogT3B0aW9uPCZzdHI+LAog ICAgICAgICBleHRyYV9oZWFkZXJzOiBPcHRpb248Jkhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+PiwK ICAgICApIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKLSAgICAgICAgcHJveG1v eF9hc3luYzo6cnVudGltZTo6YmxvY2tfb24oc2VsZi5wb3N0KHVyaSwgYm9keSwgY29udGVudF90 eXBlLCBleHRyYV9oZWFkZXJzKSkKKyAgICAgICAgcHJveG1veF9hc3luYzo6cnVudGltZTo6Ymxv Y2tfb24oYXN5bmMgbW92ZSB7CisgICAgICAgICAgICBTZWxmOjpjb252ZXJ0X2JvZHlfdG9fYnl0 ZXMoc2VsZi5wb3N0KHVyaSwgYm9keSwgY29udGVudF90eXBlLCBleHRyYV9oZWFkZXJzKS5hd2Fp dCkKKyAgICAgICAgICAgICAgICAuYXdhaXQKKyAgICAgICAgfSkKICAgICB9CiAKICAgICBmbiBy ZXF1ZXN0KCZzZWxmLCByZXF1ZXN0OiBSZXF1ZXN0PEJvZHk+KSAtPiBSZXN1bHQ8UmVzcG9uc2U8 Qm9keT4sIEVycm9yPiB7Ci0gICAgICAgIHByb3htb3hfYXN5bmM6OnJ1bnRpbWU6OmJsb2NrX29u KGFzeW5jIG1vdmUgeyBzZWxmLnJlcXVlc3QocmVxdWVzdCkuYXdhaXQgfSkKKyAgICAgICAgcHJv eG1veF9hc3luYzo6cnVudGltZTo6YmxvY2tfb24oYXN5bmMgbW92ZSB7CisgICAgICAgICAgICBT ZWxmOjpjb252ZXJ0X2JvZHlfdG9fYnl0ZXMoc2VsZi5yZXF1ZXN0KHJlcXVlc3QpLmF3YWl0KS5h d2FpdAorICAgICAgICB9KQogICAgIH0KIH0KIApAQCAtMjMxLDcgKzI2Myw3IEBAIGltcGwgY3Jh dGU6Okh0dHBDbGllbnQ8U3RyaW5nLCBTdHJpbmc+IGZvciBDbGllbnQgewogICAgICAgICBleHRy YV9oZWFkZXJzOiBPcHRpb248Jkhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+PiwKICAgICApIC0+IFJl c3VsdDxSZXNwb25zZTxTdHJpbmc+LCBFcnJvcj4gewogICAgICAgICBwcm94bW94X2FzeW5jOjpy dW50aW1lOjpibG9ja19vbihhc3luYyBtb3ZlIHsKLSAgICAgICAgICAgIGxldCBib2R5ID0gYm9k eS5tYXAofHN8IEJvZHk6OmZyb20ocy5pbnRvX2J5dGVzKCkpKTsKKyAgICAgICAgICAgIGxldCBi b2R5ID0gYm9keS5tYXAofHN8IHMuaW50bygpKTsKICAgICAgICAgICAgIFNlbGY6OmNvbnZlcnRf Ym9keV90b19zdHJpbmcoc2VsZi5wb3N0KHVyaSwgYm9keSwgY29udGVudF90eXBlLCBleHRyYV9o ZWFkZXJzKS5hd2FpdCkKICAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICAgfSkKQEAgLTI0 MCwyNSArMjcyLDM0IEBAIGltcGwgY3JhdGU6Okh0dHBDbGllbnQ8U3RyaW5nLCBTdHJpbmc+IGZv ciBDbGllbnQgewogICAgIGZuIHJlcXVlc3QoJnNlbGYsIHJlcXVlc3Q6IFJlcXVlc3Q8U3RyaW5n PikgLT4gUmVzdWx0PFJlc3BvbnNlPFN0cmluZz4sIEVycm9yPiB7CiAgICAgICAgIHByb3htb3hf YXN5bmM6OnJ1bnRpbWU6OmJsb2NrX29uKGFzeW5jIG1vdmUgewogICAgICAgICAgICAgbGV0IChw YXJ0cywgYm9keSkgPSByZXF1ZXN0LmludG9fcGFydHMoKTsKLSAgICAgICAgICAgIGxldCBib2R5 ID0gQm9keTo6ZnJvbShib2R5KTsKKyAgICAgICAgICAgIGxldCBib2R5ID0gYm9keS5pbnRvKCk7 CiAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IFJlcXVlc3Q6OmZyb21fcGFydHMocGFydHMsIGJv ZHkpOwogICAgICAgICAgICAgU2VsZjo6Y29udmVydF9ib2R5X3RvX3N0cmluZyhzZWxmLnJlcXVl c3QocmVxdWVzdCkuYXdhaXQpLmF3YWl0CiAgICAgICAgIH0pCiAgICAgfQogfQogCi0vLy8gV3Jh cHMgdGhlIGBCb2R5YCBzdHJlYW0gaW4gYSBEZWZsYXRlRGVjb2RlciBzdHJlYW0gaWYgdGhlIGBD b250ZW50LUVuY29kaW5nYAorLy8vIFdyYXBzIHRoZSBgUmVzcG9uc2VgIGNvbnRlbnRzIGluIGEg RGVmbGF0ZURlY29kZXIgc3RyZWFtIGlmIHRoZSBgQ29udGVudC1FbmNvZGluZ2AKIC8vLyBoZWFk ZXIgb2YgdGhlIHJlc3BvbnNlIGlzIGBkZWZsYXRlYCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG9y aWdpbmFsCiAvLy8gcmVzcG9uc2UuCi1hc3luYyBmbiBkZWNvZGVfcmVzcG9uc2UobXV0IHJlczog UmVzcG9uc2U8Qm9keT4pIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKLSAgICBs ZXQgU29tZShjb250ZW50X2VuY29kaW5nKSA9IHJlcy5oZWFkZXJzX211dCgpLnJlbW92ZSgmaHlw ZXI6OmhlYWRlcjo6Q09OVEVOVF9FTkNPRElORykgZWxzZSB7Ci0gICAgICAgIHJldHVybiBPayhy ZXMpOworYXN5bmMgZm4gZGVjb2RlX3Jlc3BvbnNlPEI+KG11dCByZXM6IFJlc3BvbnNlPEI+KSAt PiBSZXN1bHQ8UmVzcG9uc2U8Qm9keT4sIEVycm9yPgord2hlcmUKKyAgICBCOiBodHRwX2JvZHk6 OkJvZHk8RGF0YSA9IGJ5dGVzOjpCeXRlcz4gKyBTZW5kICsgVW5waW4gKyAnc3RhdGljLAorICAg IDxCIGFzIGh0dHBfYm9keTo6Qm9keT46OkVycm9yOiBJbnRvPEVycm9yPiArIERpc3BsYXksCit7 CisgICAgbGV0IFNvbWUoY29udGVudF9lbmNvZGluZykgPSByZXMuaGVhZGVyc19tdXQoKS5yZW1v dmUoJmh0dHA6OmhlYWRlcjo6Q09OVEVOVF9FTkNPRElORykgZWxzZSB7CisgICAgICAgIGxldCAo cGFydHMsIGJvZHkpID0gcmVzLmludG9fcGFydHMoKTsKKyAgICAgICAgbGV0IHN0cmVhbSA9IEJv ZHlEYXRhU3RyZWFtOjpuZXcoYm9keSk7CisgICAgICAgIGxldCBib2R5ID0gQm9keTo6d3JhcF9z dHJlYW0oc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIE9rKFJlc3BvbnNlOjpmcm9tX3BhcnRzKHBh cnRzLCBib2R5KSk7CiAgICAgfTsKIAogICAgIGxldCBlbmNvZGluZ3MgPSBjb250ZW50X2VuY29k aW5nLnRvX3N0cigpPzsKICAgICBpZiBlbmNvZGluZ3MgPT0gImRlZmxhdGUiIHsKICAgICAgICAg bGV0IChwYXJ0cywgYm9keSkgPSByZXMuaW50b19wYXJ0cygpOwotICAgICAgICBsZXQgZGVjb2Rl ciA9IHByb3htb3hfY29tcHJlc3Npb246OkRlZmxhdGVEZWNvZGVyOjpidWlsZGVyKGJvZHkpCisK KyAgICAgICAgbGV0IHN0cmVhbSA9IEJvZHlEYXRhU3RyZWFtOjpuZXcoYm9keSk7CisgICAgICAg IGxldCBkZWNvZGVyID0gcHJveG1veF9jb21wcmVzc2lvbjo6RGVmbGF0ZURlY29kZXI6OmJ1aWxk ZXIoc3RyZWFtKQogICAgICAgICAgICAgLnpsaWIodHJ1ZSkKICAgICAgICAgICAgIC5idWlsZCgp OwogICAgICAgICBsZXQgZGVjb2RlZF9ib2R5ID0gQm9keTo6d3JhcF9zdHJlYW0oZGVjb2Rlcik7 CkBAIC0yNzAsNiArMzExLDggQEAgYXN5bmMgZm4gZGVjb2RlX3Jlc3BvbnNlKG11dCByZXM6IFJl c3BvbnNlPEJvZHk+KSAtPiBSZXN1bHQ8UmVzcG9uc2U8Qm9keT4sIEVycm8KIAogI1tjZmcodGVz dCldCiBtb2QgdGVzdCB7CisgICAgdXNlIGJ5dGVzOjpCeXRlczsKKwogICAgIHVzZSBzdXBlcjo6 KjsKIAogICAgIHVzZSBzdGQ6OmlvOjpXcml0ZTsKQEAgLTI4MiwxMCArMzI1LDEwIEBAIHNpIGFs aXF1b2QgYWV0ZXJudW0gZXQgaW5maW5pdHVtIGltcGVuZGVyZS4iIzsKICAgICAjW3Rva2lvOjp0 ZXN0XQogICAgIGFzeW5jIGZuIHRlc3RfcGFyc2VfcmVzcG9uc2VfZGVmbGF0ZSgpIHsKICAgICAg ICAgbGV0IGVuY29kZWQgPSBlbmNvZGVfZGVmbGF0ZShCT0RZLmFzX2J5dGVzKCkpLnVud3JhcCgp OwotICAgICAgICBsZXQgZW5jb2RlZF9ib2R5ID0gQm9keTo6ZnJvbShlbmNvZGVkKTsKKyAgICAg ICAgbGV0IGVuY29kZWRfYm9keSA9IEJvZHk6OmZyb20oQnl0ZXM6OmZyb20oZW5jb2RlZCkpOwog ICAgICAgICBsZXQgZW5jb2RlZF9yZXNwb25zZSA9IFJlc3BvbnNlOjpidWlsZGVyKCkKLSAgICAg ICAgICAgIC5oZWFkZXIoaHlwZXI6OmhlYWRlcjo6Q09OVEVOVF9FTkNPRElORywgImRlZmxhdGUi KQotICAgICAgICAgICAgLmJvZHkoZW5jb2RlZF9ib2R5KQorICAgICAgICAgICAgLmhlYWRlciho dHRwOjpoZWFkZXI6OkNPTlRFTlRfRU5DT0RJTkcsICJkZWZsYXRlIikKKyAgICAgICAgICAgIC5i b2R5Ojo8Qm9keT4oZW5jb2RlZF9ib2R5KQogICAgICAgICAgICAgLnVud3JhcCgpOwogCiAgICAg ICAgIGxldCBkZWNvZGVkX3Jlc3BvbnNlID0gZGVjb2RlX3Jlc3BvbnNlKGVuY29kZWRfcmVzcG9u c2UpLmF3YWl0LnVud3JhcCgpOwotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVs QGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls bWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=