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 [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id C3B8C1FF16B
	for <inbox@lore.proxmox.com>; Thu,  6 Feb 2025 13:29:34 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 103D01E85E;
	Thu,  6 Feb 2025 13:29:34 +0100 (CET)
From: =?UTF-8?q?Lauren=C8=9Biu=20Leahu-Vl=C4=83ducu?=
 <l.leahu-vladucu@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Thu,  6 Feb 2025 13:28:33 +0100
Message-Id: <20250206122833.171965-4-l.leahu-vladucu@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250206122833.171965-1-l.leahu-vladucu@proxmox.com>
References: <20250206122833.171965-1-l.leahu-vladucu@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.142 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-backup v2 2/2] Automatically select a
 drive (if part of a changer) when loading tapes
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>

VGhpcyBwYXRjaCBhZGRzIHRoZSBwb3NzaWJpbGl0eSB0byBsb2FkIHRhcGVzIGludG8gZHJpdmVz
CmF1dG9tYXRpY2FsbHkgYnkgc3BlY2lmeWluZyBhIGNoYW5nZXIuIFRoaXMgaXMgdXNlZnVsIGZv
ciBsYXJnZXIgdGFwZQpsaWJyYXJpZXMuIENob29zaW5nIGEgZHJpdmUgaXMgZG9uZSBieSB1c2lu
ZyB0aGUgZHJpdmUgdGhhdCBoYXMgbm90CmJlZW4gdXNlZCB0aGUgbG9uZ2VzdC4KCkF0IHRoZSBt
b21lbnQsIHRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZnVuY3Rpb25hbGl0eSBmb3IgYXV0b21h
dGljCmxvYWRpbmcgYm90aCBvdmVyIHRoZSBBUEkgYW5kIHVzaW5nIHRoZSBwcm94bW94LWJhY2t1
cCBDTEkgdG9vbCwgYXMKd2VsbCBhcyBpbiB0aGUgd2ViIFVJIHdoZW4gc2VsZWN0aW5nIGEgY2hh
bmdlci4gQSBzZWNvbmQgcGF0Y2ggd2lsbAphZGQgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSB3aGVu
IGNvbmZpZ3VyaW5nIGJhY2t1cCBqb2JzLgoKUGFydGlhbGx5IGZpeGVzICMzMzUxCgpTaWduZWQt
b2ZmLWJ5OiBMYXVyZW7Im2l1IExlYWh1LVZsxINkdWN1IDxsLmxlYWh1LXZsYWR1Y3VAcHJveG1v
eC5jb20+Ci0tLQogc3JjL2FwaTIvdGFwZS9jaGFuZ2VyLnJzICAgICAgICB8IDEzMSArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5y
cyB8ICAgMiArLQogc3JjL2Jpbi9wcm94bW94LXRhcGUucnMgICAgICAgICB8ICA0OCArKysrKysr
KysrLS0KIHNyYy90YXBlL2NoYW5nZXIvbW9kLnJzICAgICAgICAgfCAgMjMgKysrKystCiBzcmMv
dGFwZS9kcml2ZS92aXJ0dWFsX3RhcGUucnMgIHwgICA4ICstCiBzcmMvdGFwZS9kcml2ZV9pbmZv
LnJzICAgICAgICAgIHwgIDU2ICsrKysrKysrKysrKysrCiBzcmMvdGFwZS9tb2QucnMgICAgICAg
ICAgICAgICAgIHwgICAxICsKIHd3dy90YXBlL0NoYW5nZXJTdGF0dXMuanMgICAgICAgfCAgMTUg
KysrLQogOCBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3RhcGUvZHJpdmVfaW5mby5ycwoKZGlmZiAtLWdpdCBh
L3NyYy9hcGkyL3RhcGUvY2hhbmdlci5ycyBiL3NyYy9hcGkyL3RhcGUvY2hhbmdlci5ycwppbmRl
eCA3ZWNmN2JmZi4uYWEwNjgwNGQgMTAwNjQ0Ci0tLSBhL3NyYy9hcGkyL3RhcGUvY2hhbmdlci5y
cworKysgYi9zcmMvYXBpMi90YXBlL2NoYW5nZXIucnMKQEAgLTEsMTQgKzEsMTUgQEAKIHVzZSBz
dGQ6OmNvbGxlY3Rpb25zOjpIYXNoTWFwOwogCi11c2UgYW55aG93OjpFcnJvcjsKK3VzZSBhbnlo
b3c6OntiYWlsLCBFcnJvcn07CiB1c2Ugc2VyZGVfanNvbjo6VmFsdWU7CiAKIHVzZSBwcm94bW94
X3JvdXRlcjo6e2xpc3Rfc3ViZGlyc19hcGlfbWV0aG9kLCBQZXJtaXNzaW9uLCBSb3V0ZXIsIFJw
Y0Vudmlyb25tZW50LCBTdWJkaXJNYXB9OwogdXNlIHByb3htb3hfc2NoZW1hOjphcGk7CiAKIHVz
ZSBwYnNfYXBpX3R5cGVzOjp7Ci0gICAgQXV0aGlkLCBDaGFuZ2VyTGlzdEVudHJ5LCBMdG9UYXBl
RHJpdmUsIE10eEVudHJ5S2luZCwgTXR4U3RhdHVzRW50cnksIFNjc2lUYXBlQ2hhbmdlciwKLSAg
ICBDSEFOR0VSX05BTUVfU0NIRU1BLCBQUklWX1RBUEVfQVVESVQsIFBSSVZfVEFQRV9SRUFELAor
ICAgIEF1dGhpZCwgQ2hhbmdlckxpc3RFbnRyeSwgRGV2aWNlQWN0aXZpdHksIERyaXZlTGlzdEVu
dHJ5LCBMdG9UYXBlRHJpdmUsIE10eEVudHJ5S2luZCwKKyAgICBNdHhTdGF0dXNFbnRyeSwgU2Nz
aVRhcGVDaGFuZ2VyLCBDSEFOR0VSX05BTUVfU0NIRU1BLCBNRURJQV9MQUJFTF9TQ0hFTUEsIFBS
SVZfVEFQRV9BVURJVCwKKyAgICBQUklWX1RBUEVfUkVBRCwgVVBJRF9TQ0hFTUEsCiB9OwogdXNl
IHBic19jb25maWc6OkNhY2hlZFVzZXJJbmZvOwogdXNlIHBic190YXBlOjp7CkBAIC0xOTksNyAr
MjAwLDEzMSBAQCBwdWIgZm4gbGlzdF9jaGFuZ2VycygKICAgICBPayhsaXN0KQogfQogCisjW2Fw
aSgKKyAgICBpbnB1dDogeworICAgICAgICBwcm9wZXJ0aWVzOiB7CisgICAgICAgICAgICBuYW1l
OiB7CisgICAgICAgICAgICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BLAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICJsYWJlbC10ZXh0IjogeworICAgICAgICAgICAgICAgIHNj
aGVtYTogTUVESUFfTEFCRUxfU0NIRU1BLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAg
ICB9LAorICAgIHJldHVybnM6IHsKKyAgICAgICAgc2NoZW1hOiBVUElEX1NDSEVNQSwKKyAgICB9
LAorICAgIGFjY2VzczogeworICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6UHJpdmls
ZWdlKCZbInRhcGUiLCAiZGV2aWNlIiwgIntuYW1lfSJdLCBQUklWX1RBUEVfUkVBRCwgZmFsc2Up
LAorICAgIH0sCispXQorLy8vIExvYWQgbWVkaWEgd2l0aCBzcGVjaWZpZWQgbGFiZWwKKy8vLwor
Ly8vIElzc3VlIGEgbWVkaWEgbG9hZCByZXF1ZXN0IHRvIHRoZSBhc3NvY2lhdGVkIGNoYW5nZXIg
ZGV2aWNlLgorcHViIGZuIGxvYWRfbWVkaWEoCisgICAgbmFtZTogU3RyaW5nLAorICAgIGxhYmVs
X3RleHQ6IFN0cmluZywKKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vudmlyb25tZW50LAorKSAt
PiBSZXN1bHQ8VmFsdWUsIEVycm9yPiB7CisgICAgbGV0IGRyaXZlID0gY2hvb3NlX2RyaXZlKCZu
YW1lLCBycGNlbnYpOworICAgIHN1cGVyOjpkcml2ZTo6bG9hZF9tZWRpYShkcml2ZT8sIGxhYmVs
X3RleHQsIHJwY2VudikKK30KKworI1thcGkoCisgICAgaW5wdXQ6IHsKKyAgICAgICAgcHJvcGVy
dGllczogeworICAgICAgICAgICAgbmFtZTogeworICAgICAgICAgICAgICAgIHNjaGVtYTogQ0hB
TkdFUl9OQU1FX1NDSEVNQSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic291cmNlLXNs
b3QiOiB7CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJTb3VyY2Ugc2xvdCBudW1iZXIu
IiwKKyAgICAgICAgICAgICAgICBtaW5pbXVtOiAxLAorICAgICAgICAgICAgfSwKKyAgICAgICAg
fSwKKyAgICB9LAorICAgIGFjY2VzczogeworICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lv
bjo6UHJpdmlsZWdlKCZbInRhcGUiLCAiZGV2aWNlIiwgIntuYW1lfSJdLCBQUklWX1RBUEVfUkVB
RCwgZmFsc2UpLAorICAgIH0sCispXQorLy8vIExvYWQgbWVkaWEgZnJvbSB0aGUgc3BlY2lmaWVk
IHNsb3QKKy8vLworLy8vIElzc3VlIGEgbWVkaWEgbG9hZCByZXF1ZXN0IHRvIHRoZSBhc3NvY2lh
dGVkIGNoYW5nZXIgZGV2aWNlLgorcHViIGFzeW5jIGZuIGxvYWRfc2xvdCgKKyAgICBuYW1lOiBT
dHJpbmcsCisgICAgc291cmNlX3Nsb3Q6IHU2NCwKKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vu
dmlyb25tZW50LAorKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGRyaXZlID0gY2hv
b3NlX2RyaXZlKCZuYW1lLCBycGNlbnYpOworICAgIHN1cGVyOjpkcml2ZTo6bG9hZF9zbG90KGRy
aXZlPywgc291cmNlX3Nsb3QpLmF3YWl0Cit9CisKKy8vLyBSZXR1cm5zIHRoZSBpZGxlIGRyaXZl
cyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjaGFuZ2VyLgorZm4gZ2V0X2lkbGVfZHJp
dmVzKAorICAgIGNoYW5nZXI6ICZzdHIsCisgICAgcnBjZW52OiAmbXV0IGR5biBScGNFbnZpcm9u
bWVudCwKKykgLT4gUmVzdWx0PFZlYzxEcml2ZUxpc3RFbnRyeT4sIEVycm9yPiB7CisgICAgbGV0
IGRyaXZlcyA9IHN1cGVyOjpkcml2ZTo6bGlzdF9kcml2ZXMoU29tZShjaGFuZ2VyLnRvX3N0cmlu
ZygpKSwgdHJ1ZSwgVmFsdWU6Ok51bGwsIHJwY2VudikKKyAgICAgICAgLm1hcF9lcnIofGVycnwg
YW55aG93Ojpmb3JtYXRfZXJyISgiY2Fubm90IHF1ZXJ5IGRyaXZlczoge2Vycn0iKSk/OworCisg
ICAgbGV0IGZpbHRlciA9IGRyaXZlcworICAgICAgICAuaW50b19pdGVyKCkKKyAgICAgICAgLmZp
bHRlcih8ZW50cnl8IG1hdGNoZXMhKGVudHJ5LmFjdGl2aXR5LCBOb25lIHwgU29tZShEZXZpY2VB
Y3Rpdml0eTo6Tm9BY3Rpdml0eSkpKTsKKworICAgIE9rKGZpbHRlci5jb2xsZWN0KCkpCit9CisK
Ky8vLyBSZXR1cm5zIHRoZSBkcml2ZXMgc29ydGVkIGJ5IHRoZSBsYXN0IHVzYWdlLgorLy8vIFRo
ZSBmaXJzdCBkcml2ZSBpbiB0aGUgcmV0dXJuZWQgdmVjdG9yIGlzIHRoZSBvbmUgdGhhdCBoYXMg
bm90IGJlZW4gdXNlZCB0aGUgbG9uZ2VzdCwgb3IgbmV2ZXIuCitmbiBnZXRfZHJpdmVzX3NvcnRl
ZF9ieV9sYXN0X3VzYWdlKAorICAgIGNoYW5nZXI6ICZzdHIsCisgICAgcnBjZW52OiAmbXV0IGR5
biBScGNFbnZpcm9ubWVudCwKKykgLT4gUmVzdWx0PFZlYzxEcml2ZUxpc3RFbnRyeT4sIEVycm9y
PiB7CisgICAgbGV0IGRyaXZlc19sYXN0X3VzYWdlID0gY3JhdGU6OnRhcGU6OmRyaXZlX2luZm86
OmdldF9kcml2ZXNfbGFzdF91c2FnZSgpPzsKKyAgICBsZXQgbXV0IGRyaXZlcyA9IHN1cGVyOjpk
cml2ZTo6bGlzdF9kcml2ZXMoU29tZShjaGFuZ2VyLmludG8oKSksIHRydWUsIFZhbHVlOjpOdWxs
LCBycGNlbnYpPzsKKyAgICBkcml2ZXMuc29ydF9ieSh8Zmlyc3QsIHNlY29uZHwgeworICAgICAg
ICBsZXQgZmlyc3RfdXNhZ2UgPSBkcml2ZXNfbGFzdF91c2FnZS5kcml2ZXMuZ2V0KCZmaXJzdC5j
b25maWcubmFtZSk7CisgICAgICAgIGxldCBzZWNvbmRfdXNhZ2UgPSBkcml2ZXNfbGFzdF91c2Fn
ZS5kcml2ZXMuZ2V0KCZzZWNvbmQuY29uZmlnLm5hbWUpOworCisgICAgICAgIG1hdGNoIChmaXJz
dF91c2FnZSwgc2Vjb25kX3VzYWdlKSB7CisgICAgICAgICAgICAoU29tZShmaXJzdF91c2FnZSks
IFNvbWUoc2Vjb25kX3VzYWdlKSkgPT4geworICAgICAgICAgICAgICAgIGZpcnN0X3VzYWdlLmxh
c3RfdXNhZ2UuY21wKCZzZWNvbmRfdXNhZ2UubGFzdF91c2FnZSkKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIChTb21lKF8pLCBOb25lKSA9PiBzdGQ6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIs
CisgICAgICAgICAgICAoTm9uZSwgU29tZShfKSkgPT4gc3RkOjpjbXA6Ok9yZGVyaW5nOjpMZXNz
LAorICAgICAgICAgICAgKE5vbmUsIE5vbmUpID0+IHN0ZDo6Y21wOjpPcmRlcmluZzo6RXF1YWws
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIE9rKGRyaXZlcykKK30KKworZm4gY2hvb3NlX2Ry
aXZlKGNoYW5nZXI6ICZzdHIsIHJwY2VudjogJm11dCBkeW4gUnBjRW52aXJvbm1lbnQpIC0+IFJl
c3VsdDxTdHJpbmcsIEVycm9yPiB7CisgICAgbGV0IGlkbGVfZHJpdmVzID0gZ2V0X2lkbGVfZHJp
dmVzKGNoYW5nZXIsIHJwY2Vudik/OworICAgIGxldCBkcml2ZXNfaW5fb3JkZXIgPSBnZXRfZHJp
dmVzX3NvcnRlZF9ieV9sYXN0X3VzYWdlKGNoYW5nZXIsIHJwY2Vudik7CisKKyAgICAvLyBJZiB0
aGUgZHJpdmVzIGluZm8gY291bGQgbm90IGJlIHJldHJpZXZlZCwgc2ltcGx5IHRyeSB0byB1c2Ug
dGhlIGZpcnN0IG9uZSAoaWYgcG9zc2libGUpLgorICAgIGxldCBPayhkcml2ZXNfaW5fb3JkZXIp
ID0gZHJpdmVzX2luX29yZGVyIGVsc2UgeworICAgICAgICBtYXRjaCBpZGxlX2RyaXZlcy5maXJz
dCgpIHsKKyAgICAgICAgICAgIFNvbWUoaWRsZV9kcml2ZSkgPT4gcmV0dXJuIE9rKGlkbGVfZHJp
dmUuY29uZmlnLm5hbWUuY2xvbmUoKSksCisgICAgICAgICAgICBOb25lID0+IGJhaWwhKCJ0aGVy
ZSBhcmUgbm8gaWRsZSBkcml2ZXMgdG8gY2hvb3NlIGZvciBhdXRvbWF0aWMgZHJpdmUgYXNzaWdu
bWVudCIpLAorICAgICAgICB9CisgICAgfTsKKworICAgIGxldCBjaG9zZW5fZHJpdmUgPSBkcml2
ZXNfaW5fb3JkZXIuaXRlcigpLmZpbmQofGRyaXZlfCB7CisgICAgICAgIGlkbGVfZHJpdmVzCisg
ICAgICAgICAgICAuaXRlcigpCisgICAgICAgICAgICAuYW55KHxpZGxlX2RyaXZlfCBkcml2ZS5j
b25maWcubmFtZSA9PSBpZGxlX2RyaXZlLmNvbmZpZy5uYW1lKQorICAgIH0pOworCisgICAgbWF0
Y2ggY2hvc2VuX2RyaXZlIHsKKyAgICAgICAgU29tZShjaG9zZW5fZHJpdmUpID0+IE9rKGNob3Nl
bl9kcml2ZS5jb25maWcubmFtZS5jbG9uZSgpKSwKKyAgICAgICAgTm9uZSA9PiBiYWlsISgidGhl
cmUgYXJlIG5vIGlkbGUgZHJpdmVzIHRvIGNob29zZSBmb3IgYXV0b21hdGljIGRyaXZlIGFzc2ln
bm1lbnQiKSwKKyAgICB9Cit9CisKIGNvbnN0IFNVQkRJUlM6IFN1YmRpck1hcCA9ICZbCisgICAg
KCJsb2FkLW1lZGlhIiwgJlJvdXRlcjo6bmV3KCkucG9zdCgmQVBJX01FVEhPRF9MT0FEX01FRElB
KSksCisgICAgKCJsb2FkLXNsb3QiLCAmUm91dGVyOjpuZXcoKS5wb3N0KCZBUElfTUVUSE9EX0xP
QURfU0xPVCkpLAogICAgICgic3RhdHVzIiwgJlJvdXRlcjo6bmV3KCkuZ2V0KCZBUElfTUVUSE9E
X0dFVF9TVEFUVVMpKSwKICAgICAoInRyYW5zZmVyIiwgJlJvdXRlcjo6bmV3KCkucG9zdCgmQVBJ
X01FVEhPRF9UUkFOU0ZFUikpLAogXTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHJveG1veC1iYWNr
dXAtcHJveHkucnMgYi9zcmMvYmluL3Byb3htb3gtYmFja3VwLXByb3h5LnJzCmluZGV4IGVkZDBh
NGNjLi5hMTgzODRjYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5y
cworKysgYi9zcmMvYmluL3Byb3htb3gtYmFja3VwLXByb3h5LnJzCkBAIC00MzIsNyArNDMyLDcg
QEAgYXN5bmMgZm4gcnVuX3Rhc2tfc2NoZWR1bGVyKCkgewogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIHRyYWNpbmc6OmVycm9yISgidGFzayBzY2hlZHVsZXIg
cGFuaWMgLSBjYW5ub3Qgc2hvdyBlcnJvciBtZXNzYWdlIGR1ZSB0byB1bmtub3duIGVycm9yIHR5
cGUiKQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBPayhFcnIoZXJyKSkgPT4gdHJhY2luZzo6ZXJyb3IhKCJ0YXNrIHNjaGVkdWxl
ciBmYWlsZWQgLSB7ZXJyOj99IiksCiAgICAgICAgICAgICBPayhPayhfKSkgPT4ge30KICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wcm94bW94LXRhcGUucnMgYi9zcmMvYmluL3Byb3ht
b3gtdGFwZS5ycwppbmRleCA4ZTg1ODRiMy4uNzUyYWUyNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v
cHJveG1veC10YXBlLnJzCisrKyBiL3NyYy9iaW4vcHJveG1veC10YXBlLnJzCkBAIC0xLDYgKzEs
NyBAQAogdXNlIHN0ZDo6Y29sbGVjdGlvbnM6Okhhc2hNYXA7CiAKIHVzZSBhbnlob3c6OntiYWls
LCBmb3JtYXRfZXJyLCBFcnJvcn07Cit1c2UgcGJzX2NvbmZpZzo6ZHJpdmU6OmNvbXBsZXRlX2No
YW5nZXJfbmFtZTsKIHVzZSBzZXJkZV9qc29uOjp7anNvbiwgVmFsdWV9OwogCiB1c2UgcHJveG1v
eF9odW1hbl9ieXRlOjpIdW1hbkJ5dGU7CkBAIC0yMCw5ICsyMSwxMCBAQCB1c2UgcGJzX2NvbmZp
Zzo6ZHJpdmU6OmNvbXBsZXRlX2RyaXZlX25hbWU7CiB1c2UgcGJzX2NvbmZpZzo6bWVkaWFfcG9v
bDo6Y29tcGxldGVfcG9vbF9uYW1lOwogCiB1c2UgcGJzX2FwaV90eXBlczo6ewotICAgIEF1dGhp
ZCwgQmFja3VwTmFtZXNwYWNlLCBHcm91cExpc3RJdGVtLCBVc2VyaWQsIERBVEFTVE9SRV9NQVBf
TElTVF9TQ0hFTUEsIERBVEFTVE9SRV9TQ0hFTUEsCi0gICAgRFJJVkVfTkFNRV9TQ0hFTUEsIEdS
T1VQX0ZJTFRFUl9MSVNUX1NDSEVNQSwgTUVESUFfTEFCRUxfU0NIRU1BLCBNRURJQV9QT09MX05B
TUVfU0NIRU1BLAotICAgIE5TX01BWF9ERVBUSF9TQ0hFTUEsIFRBUEVfUkVTVE9SRV9OQU1FU1BB
Q0VfU0NIRU1BLCBUQVBFX1JFU1RPUkVfU05BUFNIT1RfU0NIRU1BLAorICAgIEF1dGhpZCwgQmFj
a3VwTmFtZXNwYWNlLCBHcm91cExpc3RJdGVtLCBVc2VyaWQsIENIQU5HRVJfTkFNRV9TQ0hFTUFf
QVVUT01BVElDX0RSSVZFX0FTU0lHTk1FTlQsCisgICAgREFUQVNUT1JFX01BUF9MSVNUX1NDSEVN
QSwgREFUQVNUT1JFX1NDSEVNQSwgRFJJVkVfTkFNRV9TQ0hFTUEsIEdST1VQX0ZJTFRFUl9MSVNU
X1NDSEVNQSwKKyAgICBNRURJQV9MQUJFTF9TQ0hFTUEsIE1FRElBX1BPT0xfTkFNRV9TQ0hFTUEs
IE5TX01BWF9ERVBUSF9TQ0hFTUEsIFRBUEVfUkVTVE9SRV9OQU1FU1BBQ0VfU0NIRU1BLAorICAg
IFRBUEVfUkVTVE9SRV9TTkFQU0hPVF9TQ0hFTUEsCiB9OwogdXNlIHBic190YXBlOjp7QmxvY2tS
ZWFkRXJyb3IsIE1lZGlhQ29udGVudEhlYWRlciwgUFJPWE1PWF9CQUNLVVBfQ09OVEVOVF9IRUFE
RVJfTUFHSUNfMV8wfTsKIApAQCAtMjE0LDYgKzIxNiwxMCBAQCBhc3luYyBmbiBlamVjdF9tZWRp
YShtdXQgcGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgICAgICAgICAg
ICAgc2NoZW1hOiBEUklWRV9OQU1FX1NDSEVNQSwKICAgICAgICAgICAgICAgICBvcHRpb25hbDog
dHJ1ZSwKICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFuZ2VyOiB7CisgICAgICAgICAg
ICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BX0FVVE9NQVRJQ19EUklWRV9BU1NJR05N
RU5ULAorICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAorICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICJsYWJlbC10ZXh0IjogewogICAgICAgICAgICAgICAgIHNjaGVtYTogTUVESUFf
TEFCRUxfU0NIRU1BLAogICAgICAgICAgICAgfSwKQEAgLTIzMCwxMSArMjM2LDIxIEBAIGFzeW5j
IGZuIGxvYWRfbWVkaWEobXV0IHBhcmFtOiBWYWx1ZSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewog
CiAgICAgbGV0IChjb25maWcsIF9kaWdlc3QpID0gcGJzX2NvbmZpZzo6ZHJpdmU6OmNvbmZpZygp
PzsKIAotICAgIGxldCBkcml2ZSA9IGV4dHJhY3RfZHJpdmVfbmFtZSgmbXV0IHBhcmFtLCAmY29u
ZmlnKT87CisgICAgbGV0IGRyaXZlID0gZXh0cmFjdF9kcml2ZV9uYW1lKCZtdXQgcGFyYW0sICZj
b25maWcpOworICAgIGxldCBjaGFuZ2VyID0gcGFyYW1bImNoYW5nZXIiXS5hc19zdHIoKTsKKwor
ICAgIGxldCBwYXRoID0gbWF0Y2ggKGNoYW5nZXIsIGRyaXZlKSB7CisgICAgICAgIChTb21lKGNo
YW5nZXIpLCBFcnIoXykpID0+IGZvcm1hdCEoImFwaTIvanNvbi90YXBlL2NoYW5nZXIve2NoYW5n
ZXJ9L2xvYWQtbWVkaWEiKSwKKyAgICAgICAgKE5vbmUsIE9rKGRyaXZlKSkgPT4gZm9ybWF0ISgi
YXBpMi9qc29uL3RhcGUvZHJpdmUve2RyaXZlfS9sb2FkLW1lZGlhIiksCisgICAgICAgIF8gPT4g
YmFpbCEoImVpdGhlciBhIGNoYW5nZXIgb3IgYSBkcml2ZSBoYXMgdG8gYmUgc3BlY2lmaWVkIHdo
ZW4gbG9hZGluZyBtZWRpYSIpLAorICAgIH07CisKKyAgICBpZiBsZXQgU29tZShwYXJhbSkgPSBw
YXJhbS5hc19vYmplY3RfbXV0KCkgeworICAgICAgICBwYXJhbS5yZW1vdmUoImNoYW5nZXIiKTsK
KyAgICB9CiAKICAgICBsZXQgY2xpZW50ID0gY29ubmVjdF90b19sb2NhbGhvc3QoKT87CiAKLSAg
ICBsZXQgcGF0aCA9IGZvcm1hdCEoImFwaTIvanNvbi90YXBlL2RyaXZlL3t9L2xvYWQtbWVkaWEi
LCBkcml2ZSk7CiAgICAgbGV0IHJlc3VsdCA9IGNsaWVudC5wb3N0KCZwYXRoLCBTb21lKHBhcmFt
KSkuYXdhaXQ/OwogCiAgICAgdmlld190YXNrX3Jlc3VsdCgmY2xpZW50LCByZXN1bHQsICZvdXRw
dXRfZm9ybWF0KS5hd2FpdD87CkBAIC0yNzYsNiArMjkyLDEwIEBAIGFzeW5jIGZuIGV4cG9ydF9t
ZWRpYShtdXQgcGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgICAgICAg
ICAgICAgc2NoZW1hOiBEUklWRV9OQU1FX1NDSEVNQSwKICAgICAgICAgICAgICAgICBvcHRpb25h
bDogdHJ1ZSwKICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFuZ2VyOiB7CisgICAgICAg
ICAgICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BX0FVVE9NQVRJQ19EUklWRV9BU1NJ
R05NRU5ULAorICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAorICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICJzb3VyY2Utc2xvdCI6IHsKICAgICAgICAgICAgICAgICBkZXNjcmlwdGlv
bjogIlNvdXJjZSBzbG90IG51bWJlci4iLAogICAgICAgICAgICAgICAgIHR5cGU6IHU2NCwKQEAg
LTI4OCwxMSArMzA4LDIxIEBAIGFzeW5jIGZuIGV4cG9ydF9tZWRpYShtdXQgcGFyYW06IFZhbHVl
KSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiBhc3luYyBmbiBsb2FkX21lZGlhX2Zyb21fc2xvdCht
dXQgcGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgbGV0IChjb25maWcs
IF9kaWdlc3QpID0gcGJzX2NvbmZpZzo6ZHJpdmU6OmNvbmZpZygpPzsKIAotICAgIGxldCBkcml2
ZSA9IGV4dHJhY3RfZHJpdmVfbmFtZSgmbXV0IHBhcmFtLCAmY29uZmlnKT87CisgICAgbGV0IGRy
aXZlID0gZXh0cmFjdF9kcml2ZV9uYW1lKCZtdXQgcGFyYW0sICZjb25maWcpOworICAgIGxldCBj
aGFuZ2VyID0gcGFyYW1bImNoYW5nZXIiXS5hc19zdHIoKTsKKworICAgIGxldCBwYXRoID0gbWF0
Y2ggKGNoYW5nZXIsIGRyaXZlKSB7CisgICAgICAgIChTb21lKGNoYW5nZXIpLCBFcnIoXykpID0+
IGZvcm1hdCEoImFwaTIvanNvbi90YXBlL2NoYW5nZXIve2NoYW5nZXJ9L2xvYWQtc2xvdCIpLAor
ICAgICAgICAoTm9uZSwgT2soZHJpdmUpKSA9PiBmb3JtYXQhKCJhcGkyL2pzb24vdGFwZS9kcml2
ZS97ZHJpdmV9L2xvYWQtc2xvdCIpLAorICAgICAgICBfID0+IGJhaWwhKCJlaXRoZXIgYSBjaGFu
Z2VyIG9yIGEgZHJpdmUgaGFzIHRvIGJlIHNwZWNpZmllZCB3aGVuIGxvYWRpbmcgbWVkaWEiKSwK
KyAgICB9OworCisgICAgaWYgbGV0IFNvbWUocGFyYW0pID0gcGFyYW0uYXNfb2JqZWN0X211dCgp
IHsKKyAgICAgICAgcGFyYW0ucmVtb3ZlKCJjaGFuZ2VyIik7CisgICAgfQogCiAgICAgbGV0IGNs
aWVudCA9IGNvbm5lY3RfdG9fbG9jYWxob3N0KCk/OwogCi0gICAgbGV0IHBhdGggPSBmb3JtYXQh
KCJhcGkyL2pzb24vdGFwZS9kcml2ZS97fS9sb2FkLXNsb3QiLCBkcml2ZSk7CiAgICAgY2xpZW50
LnBvc3QoJnBhdGgsIFNvbWUocGFyYW0pKS5hd2FpdD87CiAKICAgICBPaygoKSkKQEAgLTEwOTEs
MTMgKzExMjEsMTUgQEAgZm4gbWFpbigpIHsKICAgICAgICAgICAgIENsaUNvbW1hbmQ6Om5ldygm
QVBJX01FVEhPRF9MT0FEX01FRElBKQogICAgICAgICAgICAgICAgIC5hcmdfcGFyYW0oJlsibGFi
ZWwtdGV4dCJdKQogICAgICAgICAgICAgICAgIC5jb21wbGV0aW9uX2NiKCJkcml2ZSIsIGNvbXBs
ZXRlX2RyaXZlX25hbWUpCisgICAgICAgICAgICAgICAgLmNvbXBsZXRpb25fY2IoImNoYW5nZXIi
LCBjb21wbGV0ZV9jaGFuZ2VyX25hbWUpCiAgICAgICAgICAgICAgICAgLmNvbXBsZXRpb25fY2Io
ImxhYmVsLXRleHQiLCBjb21wbGV0ZV9tZWRpYV9sYWJlbF90ZXh0KSwKICAgICAgICAgKQogICAg
ICAgICAuaW5zZXJ0KAogICAgICAgICAgICAgImxvYWQtbWVkaWEtZnJvbS1zbG90IiwKICAgICAg
ICAgICAgIENsaUNvbW1hbmQ6Om5ldygmQVBJX01FVEhPRF9MT0FEX01FRElBX0ZST01fU0xPVCkK
ICAgICAgICAgICAgICAgICAuYXJnX3BhcmFtKCZbInNvdXJjZS1zbG90Il0pCi0gICAgICAgICAg
ICAgICAgLmNvbXBsZXRpb25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSksCisgICAg
ICAgICAgICAgICAgLmNvbXBsZXRpb25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSkK
KyAgICAgICAgICAgICAgICAuY29tcGxldGlvbl9jYigiY2hhbmdlciIsIGNvbXBsZXRlX2NoYW5n
ZXJfbmFtZSksCiAgICAgICAgICkKICAgICAgICAgLmluc2VydCgKICAgICAgICAgICAgICJ1bmxv
YWQiLApkaWZmIC0tZ2l0IGEvc3JjL3RhcGUvY2hhbmdlci9tb2QucnMgYi9zcmMvdGFwZS9jaGFu
Z2VyL21vZC5ycwppbmRleCAxOGVhMGY0Ni4uMjJjNzgxODAgMTAwNjQ0Ci0tLSBhL3NyYy90YXBl
L2NoYW5nZXIvbW9kLnJzCisrKyBiL3NyYy90YXBlL2NoYW5nZXIvbW9kLnJzCkBAIC0yNzMsNiAr
MjczLDIxIEBAIHB1YiB0cmFpdCBNZWRpYUNoYW5nZSB7CiAgICAgfQogfQogCisvLy8gVXBkYXRl
cyB0aGUgZHJpdmUncyBsYXN0IHVzYWdlIHRpbWUgdG8gbm93LgorcHViKHN1cGVyKSBmbiB1cGRh
dGVfZHJpdmVfdXNhZ2UoZHJpdmU6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBs
ZXQgX2xvY2sgPSBjcmF0ZTo6dGFwZTo6ZHJpdmVfaW5mbzo6bG9jaygpPzsKKworICAgIGxldCBt
dXQgZHJpdmVzX2xhc3RfdXNhZ2UgPSBjcmF0ZTo6dGFwZTo6ZHJpdmVfaW5mbzo6Z2V0X2RyaXZl
c19sYXN0X3VzYWdlKCk/OworCisgICAgbGV0IG5vdyA9IHByb3htb3hfdGltZTo6ZXBvY2hfaTY0
KCk7CisgICAgZHJpdmVzX2xhc3RfdXNhZ2UKKyAgICAgICAgLmRyaXZlcworICAgICAgICAuZW50
cnkoZHJpdmUuaW50bygpKQorICAgICAgICAub3JfZGVmYXVsdCgpCisgICAgICAgIC5sYXN0X3Vz
YWdlID0gbm93OworICAgIGNyYXRlOjp0YXBlOjpkcml2ZV9pbmZvOjpzYXZlX2NvbmZpZygmZHJp
dmVzX2xhc3RfdXNhZ2UpCit9CisKIGNvbnN0IFVTRV9NVFg6IGJvb2wgPSBmYWxzZTsKIAogaW1w
bCBTY3NpTWVkaWFDaGFuZ2UgZm9yIFNjc2lUYXBlQ2hhbmdlciB7CkBAIC00MjMsNyArNDM4LDEz
IEBAIGltcGwgTWVkaWFDaGFuZ2UgZm9yIE10eE1lZGlhQ2hhbmdlciB7CiAgICAgfQogCiAgICAg
Zm4gbG9hZF9tZWRpYV9mcm9tX3Nsb3QoJm11dCBzZWxmLCBzbG90OiB1NjQpIC0+IFJlc3VsdDxN
dHhTdGF0dXMsIEVycm9yPiB7Ci0gICAgICAgIHNlbGYuY29uZmlnLmxvYWRfc2xvdChzbG90LCBz
ZWxmLmRyaXZlX251bWJlcigpKQorICAgICAgICBsZXQgc3RhdHVzID0gc2VsZi5jb25maWcubG9h
ZF9zbG90KHNsb3QsIHNlbGYuZHJpdmVfbnVtYmVyKCkpPzsKKworICAgICAgICBpZiBsZXQgRXJy
KGVycikgPSB1cGRhdGVfZHJpdmVfdXNhZ2Uoc2VsZi5kcml2ZV9uYW1lKCkpIHsKKyAgICAgICAg
ICAgIGxvZzo6d2FybiEoImNvdWxkIG5vdCB1cGRhdGUgZHJpdmUgdXNhZ2U6IHtlcnJ9Iik7Cisg
ICAgICAgIH0KKworICAgICAgICBPayhzdGF0dXMpCiAgICAgfQogCiAgICAgZm4gdW5sb2FkX21l
ZGlhKCZtdXQgc2VsZiwgdGFyZ2V0X3Nsb3Q6IE9wdGlvbjx1NjQ+KSAtPiBSZXN1bHQ8TXR4U3Rh
dHVzLCBFcnJvcj4gewpkaWZmIC0tZ2l0IGEvc3JjL3RhcGUvZHJpdmUvdmlydHVhbF90YXBlLnJz
IGIvc3JjL3RhcGUvZHJpdmUvdmlydHVhbF90YXBlLnJzCmluZGV4IDg2NmU0ZDMyLi4yMTNmMTdm
ZSAxMDA2NDQKLS0tIGEvc3JjL3RhcGUvZHJpdmUvdmlydHVhbF90YXBlLnJzCisrKyBiL3NyYy90
YXBlL2RyaXZlL3ZpcnR1YWxfdGFwZS5ycwpAQCAtNTY3LDcgKzU2NywxMyBAQCBpbXBsIE1lZGlh
Q2hhbmdlIGZvciBWaXJ0dWFsVGFwZUhhbmRsZSB7CiAgICAgICAgIH07CiAgICAgICAgIHNlbGYu
c3RvcmVfc3RhdHVzKCZzdGF0dXMpPzsKIAotICAgICAgICBzZWxmLnN0YXR1cygpCisgICAgICAg
IGxldCBzdGF0dXMgPSBzZWxmLnN0YXR1cygpPzsKKworICAgICAgICBpZiBsZXQgRXJyKGVycikg
PSBjcmF0ZTo6dGFwZTo6Y2hhbmdlcjo6dXBkYXRlX2RyaXZlX3VzYWdlKHNlbGYuZHJpdmVfbmFt
ZSgpKSB7CisgICAgICAgICAgICBsb2c6Ondhcm4hKCJjb3VsZCBub3QgdXBkYXRlIGRyaXZlIHVz
YWdlOiB7ZXJyfSIpOworICAgICAgICB9CisKKyAgICAgICAgT2soc3RhdHVzKQogICAgIH0KIAog
ICAgIGZuIHVubG9hZF9tZWRpYSgmbXV0IHNlbGYsIF90YXJnZXRfc2xvdDogT3B0aW9uPHU2ND4p
IC0+IFJlc3VsdDxNdHhTdGF0dXMsIEVycm9yPiB7CmRpZmYgLS1naXQgYS9zcmMvdGFwZS9kcml2
ZV9pbmZvLnJzIGIvc3JjL3RhcGUvZHJpdmVfaW5mby5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMC4uNWJmYWFiMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGFwZS9kcml2
ZV9pbmZvLnJzCkBAIC0wLDAgKzEsNTYgQEAKKy8vISBTZXJpYWxpemUvZGVzZXJpYWxpemUgdHBh
ZSBkcml2ZSBpbmZvIChlLmcuIHVzZWZ1bCBmb3Igc3RhdGlzdGljcykKKy8vIQorLy8hIFRoaXMg
Y2FuIGJlIHVzZWQgdG8gc3RvcmUgYSBzdGF0ZSBvdmVyIGEgbG9uZ2VyIHBlcmlvZCBvZiB0aW1l
IChlLmcuIGxhc3QgdGFwZSBkcml2ZSB1c2FnZSkuCisKK3VzZSBhbnlob3c6OkVycm9yOwordXNl
IHByb3htb3hfcHJvZHVjdF9jb25maWc6OkFwaUxvY2tHdWFyZDsKK3VzZSBzZXJkZTo6e0Rlc2Vy
aWFsaXplLCBTZXJpYWxpemV9OwordXNlIHN0ZDo6Y29sbGVjdGlvbnM6Okhhc2hNYXA7CisKKy8v
LyBEcml2ZSBpbmZvIGZpbGUgbmFtZQorLy8vIFRoaXMgaGFzIGEgZ2VuZXJpYyBuYW1lIHRvIGJl
IGFibGUgdG8gZXh0ZW5kIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgZnV0dXJlLgorcHViIGNvbnN0
IERSSVZFX0lORk9fRklMRU5BTUU6ICZzdHIgPSBjb25jYXQhKAorICAgIHBic19idWlsZGNmZzo6
UFJPWE1PWF9CQUNLVVBfU1RBVEVfRElSX00hKCksCisgICAgIi90YXBlX2RyaXZlX2luZm8uanNv
biIKKyk7CisvLy8gTG9jayBmaWxlIG5hbWUgKHVzZWQgdG8gcHJldmVudCBjb25jdXJyZW50IGFj
Y2VzcykKK3B1YiBjb25zdCBEUklWRV9JTkZPX0xPQ0tGSUxFOiAmc3RyID0gY29uY2F0ISgKKyAg
ICBwYnNfYnVpbGRjZmc6OlBST1hNT1hfQkFDS1VQX1NUQVRFX0RJUl9NISgpLAorICAgICIvLnRh
cGVfZHJpdmVfaW5mby5qc29uLmxvY2siCispOworCisjW2Rlcml2ZShTZXJpYWxpemUsIERlc2Vy
aWFsaXplLCBEZWZhdWx0KV0KK3B1YiBzdHJ1Y3QgU2luZ2xlRHJpdmVMYXN0VXNhZ2UgeworICAg
ICNbc2VyZGUod2l0aCA9ICJwcm94bW94X3NlcmRlOjplcG9jaF9hc19yZmMzMzM5IildCisgICAg
cHViIGxhc3RfdXNhZ2U6IGk2NCwKK30KKworI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6
ZSwgRGVmYXVsdCldCitwdWIgc3RydWN0IERyaXZlc0xhc3RVc2FnZSB7CisgICAgcHViIGRyaXZl
czogSGFzaE1hcDxTdHJpbmcsIFNpbmdsZURyaXZlTGFzdFVzYWdlPiwKK30KKworLy8vIEdldCBl
eGNsdXNpdmUgbG9jaworcHViIGZuIGxvY2soKSAtPiBSZXN1bHQ8QXBpTG9ja0d1YXJkLCBFcnJv
cj4geworICAgIHByb3htb3hfcHJvZHVjdF9jb25maWc6Om9wZW5fYXBpX2xvY2tmaWxlKERSSVZF
X0lORk9fTE9DS0ZJTEUsIE9wdGlvbjo6Tm9uZSwgdHJ1ZSkKK30KKworLy8vIFJlYWQgYW5kIHBh
cnNlIHRoZSBkcml2ZSBpbmZvIGZpbGUKKy8vLyBDdXJyZW50bHkgdXNlZCB0dSBnZXQgdGhlIGRy
aXZlJ3MgbGFzdCB1c2FnZQorcHViIGZuIGdldF9kcml2ZXNfbGFzdF91c2FnZSgpIC0+IFJlc3Vs
dDxEcml2ZXNMYXN0VXNhZ2UsIEVycm9yPiB7CisgICAgbGV0IGNvbnRlbnQgPSBwcm94bW94X3N5
czo6ZnM6OmZpbGVfcmVhZF9vcHRpb25hbF9zdHJpbmcoRFJJVkVfSU5GT19GSUxFTkFNRSk/Owor
CisgICAgbWF0Y2ggY29udGVudCB7CisgICAgICAgIFNvbWUoY29udGVudCkgPT4geworICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IHNlcmRlX2pzb246OmZyb21fc3RyOjo8RHJpdmVzTGFzdFVzYWdl
PigmY29udGVudCk/OworICAgICAgICAgICAgT2socmVzdWx0KQorICAgICAgICB9CisgICAgICAg
IE5vbmUgPT4gT2soRHJpdmVzTGFzdFVzYWdlOjpkZWZhdWx0KCkpLAorICAgIH0KK30KKworLy8v
IFNhdmUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZQorcHViIGZuIHNhdmVfY29uZmlnKGRhdGE6ICZE
cml2ZXNMYXN0VXNhZ2UpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBsZXQganNvbiA9IHNl
cmRlX2pzb246OnRvX3N0cmluZyhkYXRhKT87CisgICAgcHJveG1veF9wcm9kdWN0X2NvbmZpZzo6
cmVwbGFjZV9jb25maWcoRFJJVkVfSU5GT19GSUxFTkFNRSwganNvbi5hc19ieXRlcygpKQorfQpk
aWZmIC0tZ2l0IGEvc3JjL3RhcGUvbW9kLnJzIGIvc3JjL3RhcGUvbW9kLnJzCmluZGV4IGYyNzZm
OTQ4Li44Yjg3MTUyZCAxMDA2NDQKLS0tIGEvc3JjL3RhcGUvbW9kLnJzCisrKyBiL3NyYy90YXBl
L21vZC5ycwpAQCAtMjAsNiArMjAsNyBAQCBwdWIgdXNlIGludmVudG9yeTo6KjsKIAogcHViIG1v
ZCBjaGFuZ2VyOwogcHViIG1vZCBkcml2ZTsKK3B1YiBtb2QgZHJpdmVfaW5mbzsKIHB1YiBtb2Qg
ZW5jcnlwdGlvbl9rZXlzOwogCiBtb2QgbWVkaWFfcG9vbDsKZGlmZiAtLWdpdCBhL3d3dy90YXBl
L0NoYW5nZXJTdGF0dXMuanMgYi93d3cvdGFwZS9DaGFuZ2VyU3RhdHVzLmpzCmluZGV4IGUxOGFm
OTBlLi4xYjgxZGIzNCAxMDA2NDQKLS0tIGEvd3d3L3RhcGUvQ2hhbmdlclN0YXR1cy5qcworKysg
Yi93d3cvdGFwZS9DaGFuZ2VyU3RhdHVzLmpzCkBAIC0yMjIsMTIgKzIyMiwxNiBAQCBFeHQuZGVm
aW5lKCdQQlMuVGFwZU1hbmFnZW1lbnQuQ2hhbmdlclN0YXR1cycsIHsKIAkJICAgIGF1dG9TaG93
OiB0cnVlLAogCQkgICAgc3VibWl0VGV4dDogZ2V0dGV4dCgnT0snKSwKIAkJICAgIHRpdGxlOiBn
ZXR0ZXh0KCdMb2FkIE1lZGlhIGludG8gRHJpdmUnKSwKLQkJICAgIHVybDogYC9hcGkyL2V4dGpz
L3RhcGUvZHJpdmVgLAorCQkgICAgdXJsOiBgL2FwaTIvZXh0anMvdGFwZWAsCiAJCSAgICBtZXRo
b2Q6ICdQT1NUJywKIAkJICAgIHN1Ym1pdFVybDogZnVuY3Rpb24odXJsLCB2YWx1ZXMpIHsKLQkJ
CWxldCBkcml2ZSA9IHZhbHVlcy5kcml2ZTsKLQkJCWRlbGV0ZSB2YWx1ZXMuZHJpdmU7Ci0JCQly
ZXR1cm4gYCR7dXJsfS8ke2VuY29kZVVSSUNvbXBvbmVudChkcml2ZSl9LyR7YXBpQ2FsbH1gOwor
CQkJICAgIGxldCBkcml2ZSA9IHZhbHVlcy5kcml2ZTsKKwkJCSAgICBkZWxldGUgdmFsdWVzLmRy
aXZlOworCisgICAgICAgICAgbGV0IHR5cGUgPSBkcml2ZSA/ICJkcml2ZSIgOiAiY2hhbmdlciI7
CisgICAgICAgICAgbGV0IGl0ZW0gPSBkcml2ZSA/IGRyaXZlIDogY2hhbmdlcjsKKworICAgICAg
ICAgIHJldHVybiBgJHt1cmx9LyR7dHlwZX0vJHtlbmNvZGVVUklDb21wb25lbnQoaXRlbSl9LyR7
YXBpQ2FsbH1gOwogCQkgICAgfSwKIAkJICAgIGl0ZW1zOiBbCiAJCQlsYWJlbCAhPT0gIiIgPyB7
CkBAIC0yNDgsNiArMjUyLDkgQEAgRXh0LmRlZmluZSgnUEJTLlRhcGVNYW5hZ2VtZW50LkNoYW5n
ZXJTdGF0dXMnLCB7CiAJCQkgICAgZmllbGRMYWJlbDogZ2V0dGV4dCgnRHJpdmUnKSwKIAkJCSAg
ICBjaGFuZ2VyOiBjaGFuZ2VyLAogCQkJICAgIG5hbWU6ICdkcml2ZScsCisJCQkgICAgZW1wdHlU
ZXh0OiBnZXR0ZXh0KCdDaG9vc2UgQXV0b21hdGljYWxseScpLAorCQkJICAgIGFsbG93Qmxhbms6
IHRydWUsCisJCQkgICAgYXV0b1NlbGVjdDogZmFsc2UsCiAJCQl9LAogCQkgICAgXSwKIAkJICAg
IGxpc3RlbmVyczogewotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3Rz
LnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3Bicy1kZXZlbAo=