From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 262121FF15F for ; Mon, 21 Oct 2024 17:48:03 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id AC019381E4; Mon, 21 Oct 2024 17:48:41 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Mon, 21 Oct 2024 17:47:36 +0200 Message-Id: <20241021154744.325556-3-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241021154744.325556-1-c.ebner@proxmox.com> References: <20241021154744.325556-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.028 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 v4 proxmox-backup 02/10] client: pxar: move catalog lookup helper to pxar tools X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" U2luY2UgdGhpcyBjb2RlIGlzIHNwZWNpZmljIHRvIGhhbmRsaW5nIG9mIHB4YXIgYXJjaGl2ZXMs IG1vdmUgaXQKZnJvbSB0aGUgY29tbW9uIGNsaWVudCByZWxhdGVkIGhlbHBlciBtb2R1bGUgdG8g dGhlIHB4YXIgc3BlY2lmaWMKb25lLgoKVGhpcyBpcyBmb3IgY29kZSBjbGVudXAgcHVycG9zZXMg b25seS4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KClN1Z2dlc3RlZC1ieTogRmFiaWFuIEdyw7xu YmljaGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlz dGlhbiBFYm5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KLS0tCmNoYW5nZXMgc2luY2UgdmVyc2lv biAzOgotIHMvc3VibW9kdWxlL21vZHVsZQotIFJld29yZCBjb21taXQgbWVzc2FnZSBpbiBvcmRl ciB0byBjbGFyaWZ5IGludGVuZCBvZiB0aGlzIGFuZAogIHN1YnNlcXVlbnQgcGF0Y2hlcwotIEFk ZCBtaXNzaW5nIGdpdCB0cmFpbGVycwoKY2hhbmdlcyBzaW5jZSB2ZXJzaW9uIDI6Ci0gbm90IHBy ZXNlbnQgaW4gcHJldmlvdXMgdmVyc2lvbgoKIHBicy1jbGllbnQvc3JjL3B4YXIvdG9vbHMucnMg ICAgIHwgODYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHBicy1jbGllbnQvc3Jj L3Rvb2xzL21vZC5ycyAgICAgIHwgODQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog cHJveG1veC1maWxlLXJlc3RvcmUvc3JjL21haW4ucnMgfCAgOCArKy0KIHNyYy9hcGkyL2FkbWlu L2RhdGFzdG9yZS5ycyAgICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgOTEgaW5zZXJ0aW9u cygrKSwgODkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcGJzLWNsaWVudC9zcmMvcHhhci90 b29scy5ycyBiL3Bicy1jbGllbnQvc3JjL3B4YXIvdG9vbHMucnMKaW5kZXggOWQ0YWQ2YTRmLi5j NDQ0YTg5NDEgMTAwNjQ0Ci0tLSBhL3Bicy1jbGllbnQvc3JjL3B4YXIvdG9vbHMucnMKKysrIGIv cGJzLWNsaWVudC9zcmMvcHhhci90b29scy5ycwpAQCAtMywxMSArMywxNyBAQAogdXNlIHN0ZDo6 ZmZpOjpPc1N0cjsKIHVzZSBzdGQ6Om9zOjp1bml4OjpmZmk6Ok9zU3RyRXh0OwogdXNlIHN0ZDo6 cGF0aDo6UGF0aDsKK3VzZSBzdGQ6OnBhdGg6OlBhdGhCdWY7CiAKLXVzZSBhbnlob3c6OntiYWls LCBDb250ZXh0LCBFcnJvcn07Cit1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgQ29udGV4 dCwgRXJyb3J9OwogdXNlIG5peDo6c3lzOjpzdGF0OjpNb2RlOwogCi11c2UgcHhhcjo6e2Zvcm1h dDo6U3RhdHhUaW1lc3RhbXAsIG1vZGUsIEVudHJ5LCBFbnRyeUtpbmQsIE1ldGFkYXRhfTsKK3Vz ZSBweGFyOjphY2Nlc3Nvcjo6YWlvOjpBY2Nlc3NvcjsKK3VzZSBweGFyOjphY2Nlc3Nvcjo6UmVh ZEF0OwordXNlIHB4YXI6OmZvcm1hdDo6e1NpZ25lZER1cmF0aW9uLCBTdGF0eFRpbWVzdGFtcH07 Cit1c2UgcHhhcjo6e21vZGUsIEVudHJ5LCBFbnRyeUtpbmQsIE1ldGFkYXRhfTsKKwordXNlIHBi c19kYXRhc3RvcmU6OmNhdGFsb2c6OntBcmNoaXZlRW50cnksIERpckVudHJ5QXR0cmlidXRlfTsK IAogLy8vIEdldCB0aGUgZmlsZSBwZXJtaXNzaW9ucyBhcyBgbml4OjpNb2RlYAogcHViKGNyYXRl KSBmbiBwZXJtc19mcm9tX21ldGFkYXRhKG1ldGE6ICZNZXRhZGF0YSkgLT4gUmVzdWx0PE1vZGUs IEVycm9yPiB7CkBAIC0yNTcsMyArMjYzLDc5IEBAIHB1YiBmbiBmb3JtYXRfbXVsdGlfbGluZV9l bnRyeShlbnRyeTogJkVudHJ5KSAtPiBTdHJpbmcgewogICAgICAgICApCiAgICAgfQogfQorCisv Ly8gTG9vayB1cCB0aGUgZGlyZWN0b3J5IGVudHJpZXMgb2YgdGhlIGdpdmVuIGRpcmVjdG9yeSBg cGF0aGAgaW4gYSBweGFyIGFyY2hpdmUgdmlhIGl0J3MgZ2l2ZW4KKy8vLyBgYWNjZXNzb3JgIGFu ZCByZXR1cm4gdGhlIGVudHJpZXMgZm9ybWF0dGVkIGFzIFtgQXJjaGl2ZUVudHJ5YF0ncywgY29t cGF0aWJsZSB3aXRoIHJlYWRpbmcKKy8vLyBlbnRyaWVzIGZyb20gdGhlIGNhdGFsb2cuCisvLy8K Ky8vLyBJZiB0aGUgb3B0aW9uYWwgYHBhdGhfcHJlZml4YCBpcyBnaXZlbiwgYWxsIHJldHVybmVk IGVudHJ5IHBhdGhzIHdpbGwgYmUgcHJlZml4ZWQgd2l0aCBpdC4KK3B1YiBhc3luYyBmbiBweGFy X21ldGFkYXRhX2NhdGFsb2dfbG9va3VwPFQ6IENsb25lICsgUmVhZEF0PigKKyAgICBhY2Nlc3Nv cjogQWNjZXNzb3I8VD4sCisgICAgcGF0aDogJk9zU3RyLAorICAgIHBhdGhfcHJlZml4OiBPcHRp b248JnN0cj4sCispIC0+IFJlc3VsdDxWZWM8QXJjaGl2ZUVudHJ5PiwgRXJyb3I+IHsKKyAgICBs ZXQgcm9vdCA9IGFjY2Vzc29yLm9wZW5fcm9vdCgpLmF3YWl0PzsKKyAgICBsZXQgZGlyX2VudHJ5 ID0gcm9vdAorICAgICAgICAubG9va3VwKCZwYXRoKQorICAgICAgICAuYXdhaXQKKyAgICAgICAg Lm1hcF9lcnIofGVycnwgZm9ybWF0X2VyciEoImxvb2t1cCBmYWlsZWQgLSB7ZXJyfSIpKT8KKyAg ICAgICAgLm9rX29yX2Vsc2UofHwgZm9ybWF0X2VyciEoImxvb2t1cCBmYWlsZWQgLSBlcnJvciBv cGVuaW5nICd7cGF0aDo/fSciKSk/OworCisgICAgbGV0IG11dCBlbnRyaWVzID0gVmVjOjpuZXco KTsKKyAgICBpZiBsZXQgRW50cnlLaW5kOjpEaXJlY3RvcnkgPSBkaXJfZW50cnkua2luZCgpIHsK KyAgICAgICAgbGV0IGRpcl9lbnRyeSA9IGRpcl9lbnRyeQorICAgICAgICAgICAgLmVudGVyX2Rp cmVjdG9yeSgpCisgICAgICAgICAgICAuYXdhaXQKKyAgICAgICAgICAgIC5tYXBfZXJyKHxlcnJ8 IGZvcm1hdF9lcnIhKCJmYWlsZWQgdG8gZW50ZXIgZGlyZWN0b3J5IC0ge2Vycn0iKSk/OworCisg ICAgICAgIGxldCBtdXQgZW50cmllc19pdGVyID0gZGlyX2VudHJ5LnJlYWRfZGlyKCk7CisgICAg ICAgIHdoaWxlIGxldCBTb21lKGVudHJ5KSA9IGVudHJpZXNfaXRlci5uZXh0KCkuYXdhaXQgewor ICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cnk/LmRlY29kZV9lbnRyeSgpLmF3YWl0PzsKKwor ICAgICAgICAgICAgbGV0IGVudHJ5X2F0dHIgPSBtYXRjaCBlbnRyeS5raW5kKCkgeworICAgICAg ICAgICAgICAgIEVudHJ5S2luZDo6VmVyc2lvbihfKSB8IEVudHJ5S2luZDo6UHJlbHVkZShfKSB8 IEVudHJ5S2luZDo6R29vZGJ5ZVRhYmxlID0+IGNvbnRpbnVlLAorICAgICAgICAgICAgICAgIEVu dHJ5S2luZDo6RGlyZWN0b3J5ID0+IERpckVudHJ5QXR0cmlidXRlOjpEaXJlY3RvcnkgeworICAg ICAgICAgICAgICAgICAgICBzdGFydDogZW50cnkuZW50cnlfcmFuZ2VfaW5mbygpLmVudHJ5X3Jh bmdlLnN0YXJ0LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgRW50cnlLaW5k OjpGaWxlIHsgc2l6ZSwgLi4gfSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCBtdGltZSA9 IG1hdGNoIGVudHJ5Lm1ldGFkYXRhKCkubXRpbWVfYXNfZHVyYXRpb24oKSB7CisgICAgICAgICAg ICAgICAgICAgICAgICBTaWduZWREdXJhdGlvbjo6UG9zaXRpdmUodmFsKSA9PiBpNjQ6OnRyeV9m cm9tKHZhbC5hc19zZWNzKCkpPywKKyAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25lZER1cmF0 aW9uOjpOZWdhdGl2ZSh2YWwpID0+IC1pNjQ6OnRyeV9mcm9tKHZhbC5hc19zZWNzKCkpPywKKyAg ICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgRGlyRW50cnlBdHRyaWJ1 dGU6OkZpbGUgeyBzaXplOiAqc2l6ZSwgbXRpbWUgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICBFbnRyeUtpbmQ6OkRldmljZShfKSA9PiBtYXRjaCBlbnRyeS5tZXRhZGF0YSgp LmZpbGVfdHlwZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kZTo6SUZCTEsgPT4gRGlyRW50 cnlBdHRyaWJ1dGU6OkJsb2NrRGV2aWNlLAorICAgICAgICAgICAgICAgICAgICBtb2RlOjpJRkNI UiA9PiBEaXJFbnRyeUF0dHJpYnV0ZTo6Q2hhckRldmljZSwKKyAgICAgICAgICAgICAgICAgICAg XyA9PiBiYWlsISgiZW5jb3VudGVyZWQgdW5rbm93biBkZXZpY2UgdHlwZSIpLAorICAgICAgICAg ICAgICAgIH0sCisgICAgICAgICAgICAgICAgRW50cnlLaW5kOjpTeW1saW5rKF8pID0+IERpckVu dHJ5QXR0cmlidXRlOjpTeW1saW5rLAorICAgICAgICAgICAgICAgIEVudHJ5S2luZDo6SGFyZGxp bmsoXykgPT4gRGlyRW50cnlBdHRyaWJ1dGU6OkhhcmRsaW5rLAorICAgICAgICAgICAgICAgIEVu dHJ5S2luZDo6RmlmbyA9PiBEaXJFbnRyeUF0dHJpYnV0ZTo6RmlmbywKKyAgICAgICAgICAgICAg ICBFbnRyeUtpbmQ6OlNvY2tldCA9PiBEaXJFbnRyeUF0dHJpYnV0ZTo6U29ja2V0LAorICAgICAg ICAgICAgfTsKKworICAgICAgICAgICAgbGV0IGVudHJ5X3BhdGggPSBpZiBsZXQgU29tZShwcmVm aXgpID0gcGF0aF9wcmVmaXggeworICAgICAgICAgICAgICAgIGxldCBtdXQgZW50cnlfcGF0aCA9 IFBhdGhCdWY6OmZyb20ocHJlZml4KTsKKyAgICAgICAgICAgICAgICBtYXRjaCBlbnRyeS5wYXRo KCkuc3RyaXBfcHJlZml4KCIvIikgeworICAgICAgICAgICAgICAgICAgICBPayhwYXRoKSA9PiBl bnRyeV9wYXRoLnB1c2gocGF0aCksCisgICAgICAgICAgICAgICAgICAgIEVycihfKSA9PiBlbnRy eV9wYXRoLnB1c2goZW50cnkucGF0aCgpKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgZW50cnlfcGF0aAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBQ YXRoQnVmOjpmcm9tKGVudHJ5LnBhdGgoKSkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBl bnRyaWVzLnB1c2goQXJjaGl2ZUVudHJ5OjpuZXcoCisgICAgICAgICAgICAgICAgZW50cnlfcGF0 aC5hc19vc19zdHIoKS5hc19ieXRlcygpLAorICAgICAgICAgICAgICAgIFNvbWUoJmVudHJ5X2F0 dHIpLAorICAgICAgICAgICAgKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBi YWlsIShmb3JtYXQhKAorICAgICAgICAgICAgImV4cGVjdGVkIGRpcmVjdG9yeSBlbnRyeSwgZ290 IGVudHJ5IGtpbmQgJ3s6P30nIiwKKyAgICAgICAgICAgIGRpcl9lbnRyeS5raW5kKCkKKyAgICAg ICAgKSk7CisgICAgfQorCisgICAgT2soZW50cmllcykKK30KZGlmZiAtLWdpdCBhL3Bicy1jbGll bnQvc3JjL3Rvb2xzL21vZC5ycyBiL3Bicy1jbGllbnQvc3JjL3Rvb2xzL21vZC5ycwppbmRleCA3 NzJjYzEyNjMuLjg3ZTc0ZGU2ZSAxMDA2NDQKLS0tIGEvcGJzLWNsaWVudC9zcmMvdG9vbHMvbW9k LnJzCisrKyBiL3Bicy1jbGllbnQvc3JjL3Rvb2xzL21vZC5ycwpAQCAtMSwxMyArMSwxMCBAQAog Ly8hIFNoYXJlZCB0b29scyB1c2VmdWwgZm9yIGNvbW1vbiBDTEkgY2xpZW50cy4KIHVzZSBzdGQ6 OmNvbGxlY3Rpb25zOjpIYXNoTWFwOwogdXNlIHN0ZDo6ZW52OjpWYXJFcnJvcjo6e05vdFByZXNl bnQsIE5vdFVuaWNvZGV9OwotdXNlIHN0ZDo6ZmZpOjpPc1N0cjsKIHVzZSBzdGQ6OmZzOjpGaWxl OwogdXNlIHN0ZDo6aW86OntCdWZSZWFkLCBCdWZSZWFkZXJ9OwotdXNlIHN0ZDo6b3M6OnVuaXg6 OmZmaTo6T3NTdHJFeHQ7CiB1c2Ugc3RkOjpvczo6dW5peDo6ZnM6Ok9wZW5PcHRpb25zRXh0Owog dXNlIHN0ZDo6b3M6OnVuaXg6OmlvOjpGcm9tUmF3RmQ7Ci11c2Ugc3RkOjpwYXRoOjpQYXRoQnVm OwogdXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKIHVzZSBzdGQ6OnN5bmM6Ok9uY2VMb2NrOwog CkBAIC0yMSwxMiArMTgsNyBAQCB1c2UgcHJveG1veF9zY2hlbWE6Oio7CiB1c2UgcHJveG1veF9z eXM6OmZzOjpmaWxlX2dldF9qc29uOwogCiB1c2UgcGJzX2FwaV90eXBlczo6e0F1dGhpZCwgQmFj a3VwTmFtZXNwYWNlLCBSYXRlTGltaXRDb25maWcsIFVzZXJXaXRoVG9rZW5zLCBCQUNLVVBfUkVQ T19VUkx9OwotdXNlIHBic19kYXRhc3RvcmU6OmNhdGFsb2c6OntBcmNoaXZlRW50cnksIERpckVu dHJ5QXR0cmlidXRlfTsKIHVzZSBwYnNfZGF0YXN0b3JlOjpCYWNrdXBNYW5pZmVzdDsKLXVzZSBw eGFyOjphY2Nlc3Nvcjo6YWlvOjpBY2Nlc3NvcjsKLXVzZSBweGFyOjphY2Nlc3Nvcjo6UmVhZEF0 OwotdXNlIHB4YXI6OmZvcm1hdDo6U2lnbmVkRHVyYXRpb247Ci11c2UgcHhhcjo6e21vZGUsIEVu dHJ5S2luZH07CiAKIHVzZSBjcmF0ZTo6e0JhY2t1cFJlcG9zaXRvcnksIEh0dHBDbGllbnQsIEh0 dHBDbGllbnRPcHRpb25zfTsKIApAQCAtNjYzLDgyICs2NTUsNiBAQCBwdWIgZm4gcmFpc2Vfbm9m aWxlX2xpbWl0KCkgLT4gUmVzdWx0PGxpYmM6OnJsaW1pdDY0LCBFcnJvcj4gewogICAgIE9rKG9s ZCkKIH0KIAotLy8vIExvb2sgdXAgdGhlIGRpcmVjdG9yeSBlbnRyaWVzIG9mIHRoZSBnaXZlbiBk aXJlY3RvcnkgYHBhdGhgIGluIGEgcHhhciBhcmNoaXZlIHZpYSBpdCdzIGdpdmVuCi0vLy8gYGFj Y2Vzc29yYCBhbmQgcmV0dXJuIHRoZSBlbnRyaWVzIGZvcm1hdHRlZCBhcyBbYEFyY2hpdmVFbnRy eWBdJ3MsIGNvbXBhdGlibGUgd2l0aCByZWFkaW5nCi0vLy8gZW50cmllcyBmcm9tIHRoZSBjYXRh bG9nLgotLy8vCi0vLy8gSWYgdGhlIG9wdGlvbmFsIGBwYXRoX3ByZWZpeGAgaXMgZ2l2ZW4sIGFs bCByZXR1cm5lZCBlbnRyeSBwYXRocyB3aWxsIGJlIHByZWZpeGVkIHdpdGggaXQuCi1wdWIgYXN5 bmMgZm4gcHhhcl9tZXRhZGF0YV9jYXRhbG9nX2xvb2t1cDxUOiBDbG9uZSArIFJlYWRBdD4oCi0g ICAgYWNjZXNzb3I6IEFjY2Vzc29yPFQ+LAotICAgIHBhdGg6ICZPc1N0ciwKLSAgICBwYXRoX3By ZWZpeDogT3B0aW9uPCZzdHI+LAotKSAtPiBSZXN1bHQ8VmVjPEFyY2hpdmVFbnRyeT4sIEVycm9y PiB7Ci0gICAgbGV0IHJvb3QgPSBhY2Nlc3Nvci5vcGVuX3Jvb3QoKS5hd2FpdD87Ci0gICAgbGV0 IGRpcl9lbnRyeSA9IHJvb3QKLSAgICAgICAgLmxvb2t1cCgmcGF0aCkKLSAgICAgICAgLmF3YWl0 Ci0gICAgICAgIC5tYXBfZXJyKHxlcnJ8IGZvcm1hdF9lcnIhKCJsb29rdXAgZmFpbGVkIC0ge2Vy cn0iKSk/Ci0gICAgICAgIC5va19vcl9lbHNlKHx8IGZvcm1hdF9lcnIhKCJsb29rdXAgZmFpbGVk IC0gZXJyb3Igb3BlbmluZyAne3BhdGg6P30nIikpPzsKLQotICAgIGxldCBtdXQgZW50cmllcyA9 IFZlYzo6bmV3KCk7Ci0gICAgaWYgbGV0IEVudHJ5S2luZDo6RGlyZWN0b3J5ID0gZGlyX2VudHJ5 LmtpbmQoKSB7Ci0gICAgICAgIGxldCBkaXJfZW50cnkgPSBkaXJfZW50cnkKLSAgICAgICAgICAg IC5lbnRlcl9kaXJlY3RvcnkoKQotICAgICAgICAgICAgLmF3YWl0Ci0gICAgICAgICAgICAubWFw X2Vycih8ZXJyfCBmb3JtYXRfZXJyISgiZmFpbGVkIHRvIGVudGVyIGRpcmVjdG9yeSAtIHtlcnJ9 IikpPzsKLQotICAgICAgICBsZXQgbXV0IGVudHJpZXNfaXRlciA9IGRpcl9lbnRyeS5yZWFkX2Rp cigpOwotICAgICAgICB3aGlsZSBsZXQgU29tZShlbnRyeSkgPSBlbnRyaWVzX2l0ZXIubmV4dCgp LmF3YWl0IHsKLSAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJ5Py5kZWNvZGVfZW50cnkoKS5h d2FpdD87Ci0KLSAgICAgICAgICAgIGxldCBlbnRyeV9hdHRyID0gbWF0Y2ggZW50cnkua2luZCgp IHsKLSAgICAgICAgICAgICAgICBFbnRyeUtpbmQ6OlZlcnNpb24oXykgfCBFbnRyeUtpbmQ6OlBy ZWx1ZGUoXykgfCBFbnRyeUtpbmQ6Okdvb2RieWVUYWJsZSA9PiBjb250aW51ZSwKLSAgICAgICAg ICAgICAgICBFbnRyeUtpbmQ6OkRpcmVjdG9yeSA9PiBEaXJFbnRyeUF0dHJpYnV0ZTo6RGlyZWN0 b3J5IHsKLSAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGVudHJ5LmVudHJ5X3JhbmdlX2luZm8o KS5lbnRyeV9yYW5nZS5zdGFydCwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg IEVudHJ5S2luZDo6RmlsZSB7IHNpemUsIC4uIH0gPT4gewotICAgICAgICAgICAgICAgICAgICBs ZXQgbXRpbWUgPSBtYXRjaCBlbnRyeS5tZXRhZGF0YSgpLm10aW1lX2FzX2R1cmF0aW9uKCkgewot ICAgICAgICAgICAgICAgICAgICAgICAgU2lnbmVkRHVyYXRpb246OlBvc2l0aXZlKHZhbCkgPT4g aTY0Ojp0cnlfZnJvbSh2YWwuYXNfc2VjcygpKT8sCi0gICAgICAgICAgICAgICAgICAgICAgICBT aWduZWREdXJhdGlvbjo6TmVnYXRpdmUodmFsKSA9PiAtaTY0Ojp0cnlfZnJvbSh2YWwuYXNfc2Vj cygpKT8sCi0gICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgICAgIERpckVu dHJ5QXR0cmlidXRlOjpGaWxlIHsgc2l6ZTogKnNpemUsIG10aW1lIH0KLSAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgRW50cnlLaW5kOjpEZXZpY2UoXykgPT4gbWF0Y2ggZW50cnku bWV0YWRhdGEoKS5maWxlX3R5cGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1vZGU6OklGQkxL ID0+IERpckVudHJ5QXR0cmlidXRlOjpCbG9ja0RldmljZSwKLSAgICAgICAgICAgICAgICAgICAg bW9kZTo6SUZDSFIgPT4gRGlyRW50cnlBdHRyaWJ1dGU6OkNoYXJEZXZpY2UsCi0gICAgICAgICAg ICAgICAgICAgIF8gPT4gYmFpbCEoImVuY291bnRlcmVkIHVua25vd24gZGV2aWNlIHR5cGUiKSwK LSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIEVudHJ5S2luZDo6U3ltbGluayhf KSA9PiBEaXJFbnRyeUF0dHJpYnV0ZTo6U3ltbGluaywKLSAgICAgICAgICAgICAgICBFbnRyeUtp bmQ6OkhhcmRsaW5rKF8pID0+IERpckVudHJ5QXR0cmlidXRlOjpIYXJkbGluaywKLSAgICAgICAg ICAgICAgICBFbnRyeUtpbmQ6OkZpZm8gPT4gRGlyRW50cnlBdHRyaWJ1dGU6OkZpZm8sCi0gICAg ICAgICAgICAgICAgRW50cnlLaW5kOjpTb2NrZXQgPT4gRGlyRW50cnlBdHRyaWJ1dGU6OlNvY2tl dCwKLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgIGxldCBlbnRyeV9wYXRoID0gaWYgbGV0 IFNvbWUocHJlZml4KSA9IHBhdGhfcHJlZml4IHsKLSAgICAgICAgICAgICAgICBsZXQgbXV0IGVu dHJ5X3BhdGggPSBQYXRoQnVmOjpmcm9tKHByZWZpeCk7Ci0gICAgICAgICAgICAgICAgbWF0Y2gg ZW50cnkucGF0aCgpLnN0cmlwX3ByZWZpeCgiLyIpIHsKLSAgICAgICAgICAgICAgICAgICAgT2so cGF0aCkgPT4gZW50cnlfcGF0aC5wdXNoKHBhdGgpLAotICAgICAgICAgICAgICAgICAgICBFcnIo XykgPT4gZW50cnlfcGF0aC5wdXNoKGVudHJ5LnBhdGgoKSksCi0gICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgIGVudHJ5X3BhdGgKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAgICAgICAgUGF0aEJ1Zjo6ZnJvbShlbnRyeS5wYXRoKCkpCi0gICAgICAgICAgICB9OwotICAg ICAgICAgICAgZW50cmllcy5wdXNoKEFyY2hpdmVFbnRyeTo6bmV3KAotICAgICAgICAgICAgICAg IGVudHJ5X3BhdGguYXNfb3Nfc3RyKCkuYXNfYnl0ZXMoKSwKLSAgICAgICAgICAgICAgICBTb21l KCZlbnRyeV9hdHRyKSwKLSAgICAgICAgICAgICkpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsK LSAgICAgICAgYmFpbCEoZm9ybWF0ISgKLSAgICAgICAgICAgICJleHBlY3RlZCBkaXJlY3Rvcnkg ZW50cnksIGdvdCBlbnRyeSBraW5kICd7Oj99JyIsCi0gICAgICAgICAgICBkaXJfZW50cnkua2lu ZCgpCi0gICAgICAgICkpOwotICAgIH0KLQotICAgIE9rKGVudHJpZXMpCi19Ci0KIC8vLyBDcmVh dGVzIGEgdGVtcG9yYXJ5IGZpbGUgKHdpdGggYE9fVE1QRklMRWApIGluIGBYREdfQ0FDSEVfSE9N RWAuIElmIHdlCiAvLy8gY2Fubm90IGNyZWF0ZSB0aGUgZmlsZSB0aGVyZSBpdCB3aWxsIGJlIGNy ZWF0ZWQgaW4gYC90bXBgIGluc3RlYWQuCiBwdWIgZm4gY3JlYXRlX3RtcF9maWxlKCkgLT4gc3Rk Ojppbzo6UmVzdWx0PHN0ZDo6ZnM6OkZpbGU+IHsKZGlmZiAtLWdpdCBhL3Byb3htb3gtZmlsZS1y ZXN0b3JlL3NyYy9tYWluLnJzIGIvcHJveG1veC1maWxlLXJlc3RvcmUvc3JjL21haW4ucnMKaW5k ZXggY2RhNGU5MTFjLi4zZDkzZjE3MTAgMTAwNjQ0Ci0tLSBhL3Byb3htb3gtZmlsZS1yZXN0b3Jl L3NyYy9tYWluLnJzCisrKyBiL3Byb3htb3gtZmlsZS1yZXN0b3JlL3NyYy9tYWluLnJzCkBAIC0x ODcsOCArMTg3LDEyIEBAIGFzeW5jIGZuIGxpc3RfZmlsZXMoCiAgICAgICAgICAgICAgICAgbGV0 IGFjY2Vzc29yID0gQWNjZXNzb3I6Om5ldyhyZWFkZXIsIGFyY2hpdmVfc2l6ZSkuYXdhaXQ/Owog ICAgICAgICAgICAgICAgIGxldCBwYXRoID0gT3NTdHI6OmZyb21fYnl0ZXMoJnBhdGgpOwogCi0g ICAgICAgICAgICAgICAgcGJzX2NsaWVudDo6dG9vbHM6OnB4YXJfbWV0YWRhdGFfY2F0YWxvZ19s b29rdXAoYWNjZXNzb3IsIHBhdGgsIFNvbWUoJmFyY2hpdmVfbmFtZSkpCi0gICAgICAgICAgICAg ICAgICAgIC5hd2FpdAorICAgICAgICAgICAgICAgIHBic19jbGllbnQ6OnB4YXI6OnRvb2xzOjpw eGFyX21ldGFkYXRhX2NhdGFsb2dfbG9va3VwKAorICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nv ciwKKyAgICAgICAgICAgICAgICAgICAgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgU29tZSgm YXJjaGl2ZV9uYW1lKSwKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgLmF3YWl0 CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgRXh0cmFjdFBhdGg6OlZNKGZpbGUs IHBhdGgpID0+IHsKZGlmZiAtLWdpdCBhL3NyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycyBiL3Ny Yy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycwppbmRleCA3NjYwZGQ3ZjYuLmI3M2FkMGZmMCAxMDA2 NDQKLS0tIGEvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCisrKyBiL3NyYy9hcGkyL2FkbWlu L2RhdGFzdG9yZS5ycwpAQCAtMTczNyw3ICsxNzM3LDcgQEAgcHViIGFzeW5jIGZuIGNhdGFsb2co CiAgICAgICAgIGxldCBhY2Nlc3NvciA9IEFjY2Vzc29yOjpuZXcocmVhZGVyLCBhcmNoaXZlX3Np emUpLmF3YWl0PzsKIAogICAgICAgICBsZXQgZmlsZV9wYXRoID0gZGVjb2RlX3BhdGgoJmZpbGVw YXRoKT87Ci0gICAgICAgIHBic19jbGllbnQ6OnRvb2xzOjpweGFyX21ldGFkYXRhX2NhdGFsb2df bG9va3VwKAorICAgICAgICBwYnNfY2xpZW50OjpweGFyOjp0b29sczo6cHhhcl9tZXRhZGF0YV9j YXRhbG9nX2xvb2t1cCgKICAgICAgICAgICAgIGFjY2Vzc29yLAogICAgICAgICAgICAgT3NTdHI6 OmZyb21fYnl0ZXMoJmZpbGVfcGF0aCksCiAgICAgICAgICAgICBOb25lLAotLSAKMi4zOS41CgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZl bCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMu cHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=