From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id DAB211FF178 for ; Mon, 1 Dec 2025 10:29:54 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 20BF316D54; Mon, 1 Dec 2025 10:30:19 +0100 (CET) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pdm-devel@lists.proxmox.com Date: Mon, 1 Dec 2025 10:29:14 +0100 Message-ID: <20251201092941.291325-3-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251201092941.291325-1-f.gruenbichler@proxmox.com> References: <20251201092941.291325-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1764581341894 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.954 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 KAM_MAILER 2 Automated Mailer Tag Left in Email SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] [PATCH datacenter-manager 2/3] remote config: get token secret from shadow file if shadowed X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" YnkgbWFraW5nIHRoaXMgYW4gZXhwbGljaXQgY2FsbCAoYXMgb3Bwb3NlZCB0byBhdXRvbWF0aWNh bGx5IHJlYWRpbmcgYW5kCm1lcmdpbmcgdGhlIHNoYWRvdyBjb25maWcpLCBhY2NpZGVudGFsIGxl YWtzIGFyZSBsZXNzIGxpa2VseS4KClNpZ25lZC1vZmYtYnk6IEZhYmlhbiBHcsO8bmJpY2hsZXIg PGYuZ3J1ZW5iaWNobGVyQHByb3htb3guY29tPgotLS0KaWYgd2Ugd2FudCB0byBnbyBkb3duIHRo ZSBvdGhlciByb3V0ZSwgdGhhdCdzIG9mIGNvdXJzZSBhbHNvIHBvc3NpYmxlLi4KCiBsaWIvcGRt LWFwaS10eXBlcy9zcmMvcmVtb3Rlcy5ycyB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBsaWIvcGRtLWNvbmZpZy9zcmMvcmVtb3Rlcy5ycyAgICB8IDMwICsrKysrKysrKysr KysrKysrLS0KIHNlcnZlci9zcmMvYXBpL3B2ZS9seGMucnMgICAgICAgIHwgIDIgKy0KIHNlcnZl ci9zcmMvYXBpL3B2ZS9xZW11LnJzICAgICAgIHwgIDIgKy0KIHNlcnZlci9zcmMvY29ubmVjdGlv bi5ycyAgICAgICAgIHwgIDggKysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvcGRtLWFwaS10eXBlcy9zcmMvcmVt b3Rlcy5ycyBiL2xpYi9wZG0tYXBpLXR5cGVzL3NyYy9yZW1vdGVzLnJzCmluZGV4IGJkOTBlZjEu LmY2OTYwOWMgMTAwNjQ0Ci0tLSBhL2xpYi9wZG0tYXBpLXR5cGVzL3NyYy9yZW1vdGVzLnJzCisr KyBiL2xpYi9wZG0tYXBpLXR5cGVzL3NyYy9yZW1vdGVzLnJzCkBAIC0xNDksNiArMTQ5LDU2IEBA IGltcGwgQXBpU2VjdGlvbkRhdGFFbnRyeSBmb3IgUmVtb3RlIHsKICAgICB9CiB9CiAKKyNbYXBp KAorICAgIHByb3BlcnRpZXM6IHsKKyAgICAgICAgImlkIjogeyBzY2hlbWE6IFJFTU9URV9JRF9T Q0hFTUEgfSwKKyAgICAgICAgInR5cGUiOiB7IHR5cGU6IFJlbW90ZVR5cGUgfSwKKyAgICB9LAor KV0KKy8vLyBUaGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gY29ubmVjdCB0byBhIHJlbW90ZSBp bnN0YW5jZS4KKyNbZGVyaXZlKENsb25lLCBEZWJ1ZywgRGVzZXJpYWxpemUsIFNlcmlhbGl6ZSwg UGFydGlhbEVxKV0KKyNbc2VyZGUocmVuYW1lX2FsbCA9ICJrZWJhYi1jYXNlIildCitwdWIgc3Ry dWN0IFJlbW90ZVNoYWRvdyB7CisgICAgI1tzZXJkZShyZW5hbWUgPSAidHlwZSIpXQorICAgIHB1 YiB0eTogUmVtb3RlVHlwZSwKKworICAgIC8vLyBBbiBpZCBmb3IgdGhpcyBlbnRyeS4KKyAgICBw dWIgaWQ6IFN0cmluZywKKworICAgIC8vLyBUaGUgYWNjZXNzIHRva2VuJ3Mgc2VjcmV0LgorICAg IHB1YiB0b2tlbjogU3RyaW5nLAorfQorCitpbXBsIEFwaVNlY3Rpb25EYXRhRW50cnkgZm9yIFJl bW90ZVNoYWRvdyB7CisgICAgY29uc3QgSU5URVJOQUxMWV9UQUdHRUQ6IE9wdGlvbjwmJ3N0YXRp YyBzdHI+ID0gU29tZSgidHlwZSIpOworICAgIGNvbnN0IFNFQ0lPTl9DT05GSUdfVVNFU19UWVBF X0tFWTogYm9vbCA9IHRydWU7CisKKyAgICAvLy8gR2V0IHRoZSBgU2VjdGlvbkNvbmZpZ2AgY29u ZmlndXJhdGlvbiBmb3IgdGhpcyBlbnVtLgorICAgIGZuIHNlY3Rpb25fY29uZmlnKCkgLT4gJidz dGF0aWMgU2VjdGlvbkNvbmZpZyB7CisgICAgICAgIHN0YXRpYyBDT05GSUc6IE9uY2VMb2NrPFNl Y3Rpb25Db25maWc+ID0gT25jZUxvY2s6Om5ldygpOworCisgICAgICAgIENPTkZJRy5nZXRfb3Jf aW5pdCh8fCB7CisgICAgICAgICAgICBsZXQgbXV0IHRoaXMgPSBTZWN0aW9uQ29uZmlnOjpuZXco JlJFTU9URV9JRF9TQ0hFTUEpLndpdGhfdHlwZV9rZXkoInR5cGUiKTsKKyAgICAgICAgICAgIGZv ciB0eSBpbiBbInB2ZSIsICJwYnMiXSB7CisgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3Rlcl9w bHVnaW4oU2VjdGlvbkNvbmZpZ1BsdWdpbjo6bmV3KAorICAgICAgICAgICAgICAgICAgICB0eS50 b19zdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgU29tZSgiaWQiLnRvX3N0cmluZygpKSwK KyAgICAgICAgICAgICAgICAgICAgUmVtb3RlU2hhZG93OjpBUElfU0NIRU1BLnVud3JhcF9vYmpl Y3Rfc2NoZW1hKCksCisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICB9CisgICAgICAg ICAgICB0aGlzCisgICAgICAgIH0pCisgICAgfQorCisgICAgLy8vIE1hcHMgYW4gZW51bSB2YWx1 ZSB0byBpdHMgdHlwZSBuYW1lLgorICAgIGZuIHNlY3Rpb25fdHlwZSgmc2VsZikgLT4gJidzdGF0 aWMgc3RyIHsKKyAgICAgICAgbWF0Y2ggc2VsZi50eSB7CisgICAgICAgICAgICBSZW1vdGVUeXBl OjpQdmUgPT4gInB2ZSIsCisgICAgICAgICAgICBSZW1vdGVUeXBlOjpQYnMgPT4gInBicyIsCisg ICAgICAgIH0KKyAgICB9Cit9CisKIC8vLyBTaW5jZSBgVXJpYCBkb2VzIG5vdCBkaXJlY3RseSBz dXBwb3J0IGBzZXJkZWAsIHdlIHR1cm4gdGhpcyBpbnRvIHVzaW5nIEZyb21TdHIvRGlzcGxheS4K IC8vLwogLy8vIElmIHdlIHdhbnQgdG8gdHVybiB0aGlzIGludG8gYSBwcm9wZXJ0eSBzdHJpbmcs IHdlIGNhbiB1c2UgYSBkZWZhdWx0X2tleSwgYnV0IG1heSBuZWVkIHRvIHdvcmsKZGlmZiAtLWdp dCBhL2xpYi9wZG0tY29uZmlnL3NyYy9yZW1vdGVzLnJzIGIvbGliL3BkbS1jb25maWcvc3JjL3Jl bW90ZXMucnMKaW5kZXggZmM3ODcwNy4uOTNmODBlYiAxMDA2NDQKLS0tIGEvbGliL3BkbS1jb25m aWcvc3JjL3JlbW90ZXMucnMKKysrIGIvbGliL3BkbS1jb25maWcvc3JjL3JlbW90ZXMucnMKQEAg LTUsMTcgKzUsMTggQEAKIAogdXNlIHN0ZDo6c3luYzo6T25jZUxvY2s7CiAKLXVzZSBhbnlob3c6 OkVycm9yOwordXNlIGFueWhvdzo6e2JhaWwsIEVycm9yfTsKIAogdXNlIHByb3htb3hfY29uZmln X2RpZ2VzdDo6Q29uZmlnRGlnZXN0OwogdXNlIHByb3htb3hfcHJvZHVjdF9jb25maWc6OntvcGVu X2FwaV9sb2NrZmlsZSwgcmVwbGFjZV9jb25maWcsIEFwaUxvY2tHdWFyZH07CiB1c2UgcHJveG1v eF9zZWN0aW9uX2NvbmZpZzo6dHlwZWQ6OntBcGlTZWN0aW9uRGF0YUVudHJ5LCBTZWN0aW9uQ29u ZmlnRGF0YX07CiAKLXVzZSBwZG1fYXBpX3R5cGVzOjpyZW1vdGVzOjpSZW1vdGU7Cit1c2UgcGRt X2FwaV90eXBlczo6cmVtb3Rlczo6e1JlbW90ZSwgUmVtb3RlU2hhZG93fTsKIAogdXNlIHBkbV9i dWlsZGNmZzo6Y29uZmlnZGlyOwogCiBwdWIgY29uc3QgUkVNT1RFU19DRkdfRklMRU5BTUU6ICZz dHIgPSBjb25maWdkaXIhKCIvcmVtb3Rlcy5jZmciKTsKK2NvbnN0IFJFTU9URVNfU0hBRE9XX0ZJ TEVOQU1FOiAmc3RyID0gY29uZmlnZGlyISgiL3JlbW90ZXMuc2hhZG93Iik7CiBwdWIgY29uc3Qg UkVNT1RFU19DRkdfTE9DS0ZJTEU6ICZzdHIgPSBjb25maWdkaXIhKCIvLnJlbW90ZXMubG9jayIp OwogCiBzdGF0aWMgSU5TVEFOQ0U6IE9uY2VMb2NrPEJveDxkeW4gUmVtb3RlQ29uZmlnICsgU2Vu ZCArIFN5bmM+PiA9IE9uY2VMb2NrOjpuZXcoKTsKQEAgLTQ0LDYgKzQ1LDEwIEBAIHB1YiBmbiBj b25maWcoKSAtPiBSZXN1bHQ8KFNlY3Rpb25Db25maWdEYXRhPFJlbW90ZT4sIENvbmZpZ0RpZ2Vz dCksIEVycm9yPiB7CiAgICAgaW5zdGFuY2UoKS5jb25maWcoKQogfQogCitwdWIgZm4gZ2V0X3Nl Y3JldF90b2tlbihyZW1vdGU6ICZSZW1vdGUpIC0+IFJlc3VsdDxTdHJpbmcsIEVycm9yPiB7Cisg ICAgaW5zdGFuY2UoKS5nZXRfc2VjcmV0X3Rva2VuKHJlbW90ZSkKK30KKwogLy8vIFJlcGxhY2Ug dGhlIGN1cnJlbnRseSBwZXJzaXN0ZWQgcmVtb3RlcyBjb25maWcKIC8vLwogLy8vIFdpbGwgcGFu aWMgaWYgdGhlIHRoZSByZW1vdGUgY29uZmlnIGluc3RhbmNlIGhhcyBub3QgYmVlbiBzZXQgYmVm b3JlLgpAQCAtNTQsNiArNTksOCBAQCBwdWIgZm4gc2F2ZV9jb25maWcoY29uZmlnOiBTZWN0aW9u Q29uZmlnRGF0YTxSZW1vdGU+KSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiBwdWIgdHJhaXQgUmVt b3RlQ29uZmlnIHsKICAgICAvLy8gUmV0dXJuIGNvbnRlbnRzIG9mIHRoZSByZW1vdGVzIGNvbmZp ZwogICAgIGZuIGNvbmZpZygmc2VsZikgLT4gUmVzdWx0PChTZWN0aW9uQ29uZmlnRGF0YTxSZW1v dGU+LCBDb25maWdEaWdlc3QpLCBFcnJvcj47CisgICAgLy8vIFJldHVybiBjb250ZW50cyBvZiB0 aGUgcmVtb3RlcyBzaGFkb3cgY29uZmlnCisgICAgZm4gZ2V0X3NlY3JldF90b2tlbigmc2VsZiwg cmVtb3RlOiAmUmVtb3RlKSAtPiBSZXN1bHQ8U3RyaW5nLCBFcnJvcj47CiAgICAgLy8vIExvY2sg dGhlIHJlbW90ZXMgY29uZmlnCiAgICAgZm4gbG9ja19jb25maWcoJnNlbGYpIC0+IFJlc3VsdDxB cGlMb2NrR3VhcmQsIEVycm9yPjsKICAgICAvLy8gUmVwbGFjZSB0aGUgY3VycmVudGx5IHBlcnNp c3RlZCByZW1vdGVzIGNvbmZpZwpAQCAtODMsNiArOTAsMjUgQEAgaW1wbCBSZW1vdGVDb25maWcg Zm9yIERlZmF1bHRSZW1vdGVDb25maWcgewogICAgICAgICBsZXQgcmF3ID0gUmVtb3RlOjp3cml0 ZV9zZWN0aW9uX2NvbmZpZyhSRU1PVEVTX0NGR19GSUxFTkFNRSwgJmNvbmZpZyk/OwogICAgICAg ICByZXBsYWNlX2NvbmZpZyhSRU1PVEVTX0NGR19GSUxFTkFNRSwgcmF3LmFzX2J5dGVzKCkpCiAg ICAgfQorCisgICAgZm4gZ2V0X3NlY3JldF90b2tlbigmc2VsZiwgcmVtb3RlOiAmUmVtb3RlKSAt PiBSZXN1bHQ8U3RyaW5nLCBFcnJvcj4geworICAgICAgICAvLyBub3QgeWV0IHJld3JpdHRlbiBp bnRvIHNoYWRvdyBjb25maWcKKyAgICAgICAgaWYgcmVtb3RlLnRva2VuICE9ICItIiB7CisgICAg ICAgICAgICByZXR1cm4gT2socmVtb3RlLnRva2VuLmNsb25lKCkpOworICAgICAgICB9CisKKyAg ICAgICAgbGV0IHNoYWRvd19jb250ZW50ID0gcHJveG1veF9zeXM6OmZzOjpmaWxlX3JlYWRfb3B0 aW9uYWxfc3RyaW5nKFJFTU9URVNfU0hBRE9XX0ZJTEVOQU1FKT8KKyAgICAgICAgICAgIC51bndy YXBfb3JfZGVmYXVsdCgpOworCisgICAgICAgIGxldCBzaGFkb3dfY29uZmlnID0KKyAgICAgICAg ICAgIFJlbW90ZVNoYWRvdzo6cGFyc2Vfc2VjdGlvbl9jb25maWcoUkVNT1RFU19TSEFET1dfRklM RU5BTUUsICZzaGFkb3dfY29udGVudCk/OworCisgICAgICAgIGlmIGxldCBTb21lKHNoYWRvd19l bnRyeSkgPSBzaGFkb3dfY29uZmlnLmdldCgmcmVtb3RlLmlkKSB7CisgICAgICAgICAgICBPayhz aGFkb3dfZW50cnkudG9rZW4uY2xvbmUoKSkKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg IGJhaWwhKCJObyBzaGFkb3cgZW50cnkgZm91bmQgZm9yIHJlbW90ZSB7aWR9IiwgaWQgPSByZW1v dGUuaWQpOworICAgICAgICB9CisgICAgfQogfQogCiAvLy8gSW5pdGlhbGl6ZSB0aGUgW2BSZW1v dGVDb25maWdgXSBpbnN0YW5jZS4KZGlmZiAtLWdpdCBhL3NlcnZlci9zcmMvYXBpL3B2ZS9seGMu cnMgYi9zZXJ2ZXIvc3JjL2FwaS9wdmUvbHhjLnJzCmluZGV4IGRjOTU3ODMuLjE5ODEzN2IgMTAw NjQ0Ci0tLSBhL3NlcnZlci9zcmMvYXBpL3B2ZS9seGMucnMKKysrIGIvc2VydmVyL3NyYy9hcGkv cHZlL2x4Yy5ycwpAQCAtNTQ1LDcgKzU0NSw3IEBAIHB1YiBhc3luYyBmbiBseGNfcmVtb3RlX21p Z3JhdGUoCiAgICAgICAgICJob3N0PXtob3N0fSxwb3J0PXtwb3J0fSxhcGl0b2tlbj1QVkVBUElU b2tlbj17YXV0aGlkfT17c2VjcmV0fSIsCiAgICAgICAgIGhvc3QgPSB0YXJnZXRfaG9zdF9wb3J0 Lmhvc3QoKSwKICAgICAgICAgYXV0aGlkID0gdGFyZ2V0LmF1dGhpZCwKLSAgICAgICAgc2VjcmV0 ID0gdGFyZ2V0LnRva2VuLAorICAgICAgICBzZWNyZXQgPSBwZG1fY29uZmlnOjpyZW1vdGVzOjpn ZXRfc2VjcmV0X3Rva2VuKHRhcmdldCk/LAogICAgICAgICBwb3J0ID0gdGFyZ2V0X2hvc3RfcG9y dC5wb3J0X3UxNigpLnVud3JhcF9vcig4MDA2KSwKICAgICApOwogICAgIGlmIGxldCBTb21lKGZw KSA9IHRhcmdldF9ub2RlLmZpbmdlcnByaW50LmFzX2RlcmVmKCkgewpkaWZmIC0tZ2l0IGEvc2Vy dmVyL3NyYy9hcGkvcHZlL3FlbXUucnMgYi9zZXJ2ZXIvc3JjL2FwaS9wdmUvcWVtdS5ycwppbmRl eCBlZmFiMjI4Li40YTI1ZWNiIDEwMDY0NAotLS0gYS9zZXJ2ZXIvc3JjL2FwaS9wdmUvcWVtdS5y cworKysgYi9zZXJ2ZXIvc3JjL2FwaS9wdmUvcWVtdS5ycwpAQCAtNTkzLDcgKzU5Myw3IEBAIHB1 YiBhc3luYyBmbiBxZW11X3JlbW90ZV9taWdyYXRlKAogICAgICAgICAiaG9zdD17aG9zdH0scG9y dD17cG9ydH0sYXBpdG9rZW49UFZFQVBJVG9rZW49e2F1dGhpZH09e3NlY3JldH0iLAogICAgICAg ICBob3N0ID0gdGFyZ2V0X2hvc3RfcG9ydC5ob3N0KCksCiAgICAgICAgIGF1dGhpZCA9IHRhcmdl dC5hdXRoaWQsCi0gICAgICAgIHNlY3JldCA9IHRhcmdldC50b2tlbiwKKyAgICAgICAgc2VjcmV0 ID0gcGRtX2NvbmZpZzo6cmVtb3Rlczo6Z2V0X3NlY3JldF90b2tlbih0YXJnZXQpPywKICAgICAg ICAgcG9ydCA9IHRhcmdldF9ob3N0X3BvcnQucG9ydF91MTYoKS51bndyYXBfb3IoODAwNiksCiAg ICAgKTsKICAgICBpZiBsZXQgU29tZShmcCkgPSB0YXJnZXRfbm9kZS5maW5nZXJwcmludC5hc19k ZXJlZigpIHsKZGlmZiAtLWdpdCBhL3NlcnZlci9zcmMvY29ubmVjdGlvbi5ycyBiL3NlcnZlci9z cmMvY29ubmVjdGlvbi5ycwppbmRleCAxYzAwNjllLi43ZTM2NjcxIDEwMDY0NAotLS0gYS9zZXJ2 ZXIvc3JjL2Nvbm5lY3Rpb24ucnMKKysrIGIvc2VydmVyL3NyYy9jb25uZWN0aW9uLnJzCkBAIC0x MTAsOSArMTEwLDExIEBAIGZuIHByZXBhcmVfY29ubmVjdF9jbGllbnQoCiAvLy8gYXV0aGVudGlj YXRpb24gaW5mb3JtYXRpb24gYW5kIHNldHRpbmdzIGZvciB0aGUgW2BSZW1vdGVUeXBlYF0KIGZu IGNvbm5lY3QocmVtb3RlOiAmUmVtb3RlLCB0YXJnZXRfZW5kcG9pbnQ6IE9wdGlvbjwmc3RyPikg LT4gUmVzdWx0PENsaWVudCwgYW55aG93OjpFcnJvcj4gewogICAgIGxldCAoY2xpZW50LCBpbmZv KSA9IHByZXBhcmVfY29ubmVjdF9jbGllbnQocmVtb3RlLCB0YXJnZXRfZW5kcG9pbnQpPzsKKyAg ICBsZXQgdG9rZW4gPSBwZG1fY29uZmlnOjpyZW1vdGVzOjpnZXRfc2VjcmV0X3Rva2VuKHJlbW90 ZSk/OworCiAgICAgY2xpZW50LnNldF9hdXRoZW50aWNhdGlvbihwcm94bW94X2NsaWVudDo6VG9r ZW4gewogICAgICAgICB1c2VyaWQ6IHJlbW90ZS5hdXRoaWQudG9fc3RyaW5nKCksCi0gICAgICAg IHZhbHVlOiByZW1vdGUudG9rZW4udG9fc3RyaW5nKCksCisgICAgICAgIHZhbHVlOiB0b2tlbiwK ICAgICAgICAgcHJlZml4OiBpbmZvLnByZWZpeCwKICAgICAgICAgcGVybF9jb21wYXQ6IGluZm8u cGVybF9jb21wYXQsCiAgICAgfSk7CkBAIC0xNDgsMTAgKzE1MCwxMiBAQCBmbiBwcmVwYXJlX2Nv bm5lY3RfbXVsdGlfY2xpZW50KHJlbW90ZTogJlJlbW90ZSkgLT4gUmVzdWx0PChNdWx0aUNsaWVu dCwgQ29ubmVjdAogZm4gbXVsdGlfY29ubmVjdChyZW1vdGU6ICZSZW1vdGUpIC0+IFJlc3VsdDxN dWx0aUNsaWVudCwgYW55aG93OjpFcnJvcj4gewogICAgIGxldCAoY2xpZW50LCBpbmZvKSA9IHBy ZXBhcmVfY29ubmVjdF9tdWx0aV9jbGllbnQocmVtb3RlKT87CiAKKyAgICBsZXQgdG9rZW4gPSBw ZG1fY29uZmlnOjpyZW1vdGVzOjpnZXRfc2VjcmV0X3Rva2VuKHJlbW90ZSk/OworCiAgICAgY2xp ZW50LmZvcl9lYWNoX2NsaWVudCh8Y2xpZW50fCB7CiAgICAgICAgIGNsaWVudC5zZXRfYXV0aGVu dGljYXRpb24ocHJveG1veF9jbGllbnQ6OlRva2VuIHsKICAgICAgICAgICAgIHVzZXJpZDogcmVt b3RlLmF1dGhpZC50b19zdHJpbmcoKSwKLSAgICAgICAgICAgIHZhbHVlOiByZW1vdGUudG9rZW4u dG9fc3RyaW5nKCksCisgICAgICAgICAgICB2YWx1ZTogdG9rZW4uY2xvbmUoKSwKICAgICAgICAg ICAgIHByZWZpeDogaW5mby5wcmVmaXguY2xvbmUoKSwKICAgICAgICAgICAgIHBlcmxfY29tcGF0 OiBpbmZvLnBlcmxfY29tcGF0LAogICAgICAgICB9KTsKLS0gCjIuNDcuMwoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwZG0tZGV2ZWwgbWFpbGluZyBs aXN0CnBkbS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29t L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wZG0tZGV2ZWwK