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 BFBA01FF16F
	for <inbox@lore.proxmox.com>; Thu, 16 Jan 2025 12:53:00 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id CBBF31F33A;
	Thu, 16 Jan 2025 12:52:14 +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, 16 Jan 2025 12:51:09 +0100
Message-Id: <20250116115109.143589-2-l.leahu-vladucu@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250116115109.143589-1-l.leahu-vladucu@proxmox.com>
References: <20250116115109.143589-1-l.leahu-vladucu@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.390 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 1/1] 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>
Cc: =?UTF-8?q?Lauren=C8=9Biu=20Leahu-Vl=C4=83ducu?=
 <l.leahu-vladucu@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>

U2lnbmVkLW9mZi1ieTogTGF1cmVuyJtpdSBMZWFodS1WbMSDZHVjdSA8bC5sZWFodS12bGFkdWN1
QHByb3htb3guY29tPgotLS0KIENhcmdvLnRvbWwgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MiArCiBwYnMtYXBpLXR5cGVzL3NyYy90YXBlL2NoYW5nZXIucnMgfCAgMTQgKysrLQogc3JjL2Fw
aTIvdGFwZS9jaGFuZ2VyLnJzICAgICAgICAgIHwgMTE3ICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLQogc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1hcGkucnMgICAgIHwgICAyICsKIHNyYy9i
aW4vcHJveG1veC1iYWNrdXAtcHJveHkucnMgICB8ICAgMiArCiBzcmMvYmluL3Byb3htb3gtdGFw
ZS5ycyAgICAgICAgICAgfCAgNTAgKysrKysrKysrKystLQogc3JjL3RhcGUvY2hhbmdlci9tb2Qu
cnMgICAgICAgICAgIHwgIDE5ICsrKystCiBzcmMvdGFwZS9kcml2ZS92aXJ0dWFsX3RhcGUucnMg
ICAgfCAgIDggKy0KIHNyYy90YXBlL2RyaXZlX2luZm8ucnMgICAgICAgICAgICB8ICA1MSArKysr
KysrKysrKysrCiBzcmMvdGFwZS9tb2QucnMgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj
L3Rvb2xzL21vZC5ycyAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiB3d3cvdGFwZS9DaGFuZ2Vy
U3RhdHVzLmpzICAgICAgICAgfCAgMTYgKysrLQogMTIgZmlsZXMgY2hhbmdlZCwgMjc0IGluc2Vy
dGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90YXBlL2Ry
aXZlX2luZm8ucnMKCmRpZmYgLS1naXQgYS9DYXJnby50b21sIGIvQ2FyZ28udG9tbAppbmRleCBh
ZGVlYjZlZi4uMzQ4ZDFjZWEgMTAwNjQ0Ci0tLSBhL0NhcmdvLnRvbWwKKysrIGIvQ2FyZ28udG9t
bApAQCAtNzIsNiArNzIsNyBAQCBwcm94bW94LWxkYXAgPSAiMC4yLjEiCiBwcm94bW94LW1ldHJp
Y3MgPSAiMC4zLjEiCiBwcm94bW94LW5vdGlmeSA9ICIwLjUuMSIKIHByb3htb3gtb3BlbmlkID0g
IjAuMTAuMCIKK3Byb3htb3gtcHJvZHVjdC1jb25maWcgPSAiMC4yLjIiCiBwcm94bW94LXJlc3Qt
c2VydmVyID0geyB2ZXJzaW9uID0gIjAuOC41IiwgZmVhdHVyZXMgPSBbICJ0ZW1wbGF0ZXMiIF0g
fQogIyBzb21lIHVzZSAiY2xpIiwgc29tZSB1c2UgImNsaSIgYW5kICJzZXJ2ZXIiLCBwYnMtY29u
ZmlnIHVzZXMgbm90aGluZwogcHJveG1veC1yb3V0ZXIgPSB7IHZlcnNpb24gPSAiMy4wLjAiLCBk
ZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UgfQpAQCAtMjIxLDYgKzIyMiw3IEBAIHByb3htb3gtbGRh
cC53b3Jrc3BhY2UgPSB0cnVlCiBwcm94bW94LW1ldHJpY3Mud29ya3NwYWNlID0gdHJ1ZQogcHJv
eG1veC1ub3RpZnkgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyAicGJzLWNvbnRl
eHQiIF0gfQogcHJveG1veC1vcGVuaWQud29ya3NwYWNlID0gdHJ1ZQorcHJveG1veC1wcm9kdWN0
LWNvbmZpZy53b3Jrc3BhY2UgPSB0cnVlCiBwcm94bW94LXJlc3Qtc2VydmVyID0geyB3b3Jrc3Bh
Y2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsgInJhdGUtbGltaXRlZC1zdHJlYW0iIF0gfQogcHJveG1v
eC1yb3V0ZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyAiY2xpIiwgInNlcnZl
ciJdIH0KIHByb3htb3gtc2NoZW1hID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsg
ImFwaS1tYWNybyIgXSB9CmRpZmYgLS1naXQgYS9wYnMtYXBpLXR5cGVzL3NyYy90YXBlL2NoYW5n
ZXIucnMgYi9wYnMtYXBpLXR5cGVzL3NyYy90YXBlL2NoYW5nZXIucnMKaW5kZXggZGYzODIzY2Yu
LjUyZWUwOGRiIDEwMDY0NAotLS0gYS9wYnMtYXBpLXR5cGVzL3NyYy90YXBlL2NoYW5nZXIucnMK
KysrIGIvcGJzLWFwaS10eXBlcy9zcmMvdGFwZS9jaGFuZ2VyLnJzCkBAIC04LDEwICs4LDIwIEBA
IHVzZSBwcm94bW94X3NjaGVtYTo6ewogCiB1c2UgY3JhdGU6OntPcHRpb25hbERldmljZUlkZW50
aWZpY2F0aW9uLCBQUk9YTU9YX1NBRkVfSURfRk9STUFUfTsKIAorY29uc3QgVEFQRV9DSEFOR0VS
X01JTl9MRU5HVEg6IHVzaXplID0gMzsKK2NvbnN0IFRBUEVfQ0hBTkdFUl9NQVhfTEVOR1RIOiB1
c2l6ZSA9IDMyOworCiBwdWIgY29uc3QgQ0hBTkdFUl9OQU1FX1NDSEVNQTogU2NoZW1hID0gU3Ry
aW5nU2NoZW1hOjpuZXcoIlRhcGUgQ2hhbmdlciBJZGVudGlmaWVyLiIpCiAgICAgLmZvcm1hdCgm
UFJPWE1PWF9TQUZFX0lEX0ZPUk1BVCkKLSAgICAubWluX2xlbmd0aCgzKQotICAgIC5tYXhfbGVu
Z3RoKDMyKQorICAgIC5taW5fbGVuZ3RoKFRBUEVfQ0hBTkdFUl9NSU5fTEVOR1RIKQorICAgIC5t
YXhfbGVuZ3RoKFRBUEVfQ0hBTkdFUl9NQVhfTEVOR1RIKQorICAgIC5zY2hlbWEoKTsKKworcHVi
IGNvbnN0IENIQU5HRVJfTkFNRV9TQ0hFTUFfQVVUT01BVElDX0RSSVZFX0FTSUdOTUVOVDogU2No
ZW1hID0KKyAgICBTdHJpbmdTY2hlbWE6Om5ldygiVGFwZSBDaGFuZ2VyIElkZW50aWZpZXIgdG8g
YmUgdXNlZCBmb3IgYXV0b21hdGljIHRhcGUgZHJpdmUgYXNzaWdubWVudC4iKQorICAgIC5mb3Jt
YXQoJlBST1hNT1hfU0FGRV9JRF9GT1JNQVQpCisgICAgLm1pbl9sZW5ndGgoVEFQRV9DSEFOR0VS
X01JTl9MRU5HVEgpCisgICAgLm1heF9sZW5ndGgoVEFQRV9DSEFOR0VSX01BWF9MRU5HVEgpCiAg
ICAgLnNjaGVtYSgpOwogCiBwdWIgY29uc3QgU0NTSV9DSEFOR0VSX1BBVEhfU0NIRU1BOiBTY2hl
bWEgPQpkaWZmIC0tZ2l0IGEvc3JjL2FwaTIvdGFwZS9jaGFuZ2VyLnJzIGIvc3JjL2FwaTIvdGFw
ZS9jaGFuZ2VyLnJzCmluZGV4IDdlY2Y3YmZmLi5iNzNkNjgzMiAxMDA2NDQKLS0tIGEvc3JjL2Fw
aTIvdGFwZS9jaGFuZ2VyLnJzCisrKyBiL3NyYy9hcGkyL3RhcGUvY2hhbmdlci5ycwpAQCAtMSw2
ICsxLDYgQEAKIHVzZSBzdGQ6OmNvbGxlY3Rpb25zOjpIYXNoTWFwOwogCi11c2UgYW55aG93OjpF
cnJvcjsKK3VzZSBhbnlob3c6OntiYWlsLCBFcnJvcn07CiB1c2Ugc2VyZGVfanNvbjo6VmFsdWU7
CiAKIHVzZSBwcm94bW94X3JvdXRlcjo6e2xpc3Rfc3ViZGlyc19hcGlfbWV0aG9kLCBQZXJtaXNz
aW9uLCBSb3V0ZXIsIFJwY0Vudmlyb25tZW50LCBTdWJkaXJNYXB9OwpAQCAtOCw3ICs4LDggQEAg
dXNlIHByb3htb3hfc2NoZW1hOjphcGk7CiAKIHVzZSBwYnNfYXBpX3R5cGVzOjp7CiAgICAgQXV0
aGlkLCBDaGFuZ2VyTGlzdEVudHJ5LCBMdG9UYXBlRHJpdmUsIE10eEVudHJ5S2luZCwgTXR4U3Rh
dHVzRW50cnksIFNjc2lUYXBlQ2hhbmdlciwKLSAgICBDSEFOR0VSX05BTUVfU0NIRU1BLCBQUklW
X1RBUEVfQVVESVQsIFBSSVZfVEFQRV9SRUFELAorICAgIENIQU5HRVJfTkFNRV9TQ0hFTUEsIFBS
SVZfVEFQRV9BVURJVCwgUFJJVl9UQVBFX1JFQUQsIE1FRElBX0xBQkVMX1NDSEVNQSwgVVBJRF9T
Q0hFTUEsCisgICAgRHJpdmVMaXN0RW50cnksIERldmljZUFjdGl2aXR5CiB9OwogdXNlIHBic19j
b25maWc6OkNhY2hlZFVzZXJJbmZvOwogdXNlIHBic190YXBlOjp7CkBAIC0xOTksNyArMjAwLDEx
OSBAQCBwdWIgZm4gbGlzdF9jaGFuZ2VycygKICAgICBPayhsaXN0KQogfQogCisjW2FwaSgKKyAg
ICBpbnB1dDogeworICAgICAgICBwcm9wZXJ0aWVzOiB7CisgICAgICAgICAgICBuYW1lOiB7Cisg
ICAgICAgICAgICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BLAorICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICJsYWJlbC10ZXh0IjogeworICAgICAgICAgICAgICAgIHNjaGVtYTog
TUVESUFfTEFCRUxfU0NIRU1BLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICB9LAor
ICAgIHJldHVybnM6IHsKKyAgICAgICAgc2NoZW1hOiBVUElEX1NDSEVNQSwKKyAgICB9LAorICAg
IGFjY2VzczogeworICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6UHJpdmlsZWdlKCZb
InRhcGUiLCAiZGV2aWNlIiwgIntuYW1lfSJdLCBQUklWX1RBUEVfUkVBRCwgZmFsc2UpLAorICAg
IH0sCispXQorLy8vIExvYWQgbWVkaWEgd2l0aCBzcGVjaWZpZWQgbGFiZWwKKy8vLworLy8vIElz
c3VlIGEgbWVkaWEgbG9hZCByZXF1ZXN0IHRvIHRoZSBhc3NvY2lhdGVkIGNoYW5nZXIgZGV2aWNl
LgorcHViIGZuIGxvYWRfbWVkaWEoCisgICAgbmFtZTogU3RyaW5nLAorICAgIGxhYmVsX3RleHQ6
IFN0cmluZywKKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vudmlyb25tZW50LAorKSAtPiBSZXN1
bHQ8VmFsdWUsIEVycm9yPiB7CisgICAgbGV0IGRyaXZlID0gY2hvb3NlX2RyaXZlKCZuYW1lLCBy
cGNlbnYpOworICAgIHN1cGVyOjpkcml2ZTo6bG9hZF9tZWRpYShkcml2ZT8sIGxhYmVsX3RleHQs
IHJwY2VudikKK30KKworI1thcGkoCisgICAgaW5wdXQ6IHsKKyAgICAgICAgcHJvcGVydGllczog
eworICAgICAgICAgICAgbmFtZTogeworICAgICAgICAgICAgICAgIHNjaGVtYTogQ0hBTkdFUl9O
QU1FX1NDSEVNQSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic291cmNlLXNsb3QiOiB7
CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJTb3VyY2Ugc2xvdCBudW1iZXIuIiwKKyAg
ICAgICAgICAgICAgICBtaW5pbXVtOiAxLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAg
ICB9LAorICAgIGFjY2VzczogeworICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6UHJp
dmlsZWdlKCZbInRhcGUiLCAiZGV2aWNlIiwgIntuYW1lfSJdLCBQUklWX1RBUEVfUkVBRCwgZmFs
c2UpLAorICAgIH0sCispXQorLy8vIExvYWQgbWVkaWEgZnJvbSB0aGUgc3BlY2lmaWVkIHNsb3QK
Ky8vLworLy8vIElzc3VlIGEgbWVkaWEgbG9hZCByZXF1ZXN0IHRvIHRoZSBhc3NvY2lhdGVkIGNo
YW5nZXIgZGV2aWNlLgorcHViIGFzeW5jIGZuIGxvYWRfc2xvdCgKKyAgICBuYW1lOiBTdHJpbmcs
CisgICAgc291cmNlX3Nsb3Q6IHU2NCwKKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vudmlyb25t
ZW50LCkgLT4gUmVzdWx0PCgpLCBFcnJvcj4geworICAgIGxldCBkcml2ZSA9IGNob29zZV9kcml2
ZSgmbmFtZSwgcnBjZW52KTsKKyAgICBzdXBlcjo6ZHJpdmU6OmxvYWRfc2xvdChkcml2ZT8sIHNv
dXJjZV9zbG90KS5hd2FpdAorfQorCitmbiBjaG9vc2VfZHJpdmUoCisgICAgY2hhbmdlcjogJnN0
ciwKKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vudmlyb25tZW50KSAtPiBSZXN1bHQ8U3RyaW5n
LCBFcnJvcj4geworICAgIC8vIFdlIGhhdmUgdG8gYXV0b21hdGljYWxseSBzZWxlY3QgYSBkcml2
ZSBmcm9tIHRoZSBzcGVjaWZpZWQgY2hhbmdlci4gRm9yIHRoYXQgcHVycG9zZSwgd2UgdGFrZSBh
bGwgZHJpdmVzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIGNoYW5nZXIKKyAgICAvLyBhbmQgc2VhcmNo
IGZvciB0aGUgb25lIHRoYXQgaGFzIG5vdCBiZWVuIHVzZWQgZm9yIHRoZSBsb25nZXN0IHRpbWUg
KHRvIGVuc3VyZSBzaW1pbGFyIHdlYXIgYmV0d2VlbiB0aGUgZHJpdmVzKSwgb3IgdXNlIG9uZSB0
aGF0IGhhcyBuZXZlciBiZWVuIHVzZWQuCisgICAgbGV0IGRyaXZlcyA9IHN1cGVyOjpkcml2ZTo6
bGlzdF9kcml2ZXMoT3B0aW9uOjpmcm9tKGNoYW5nZXIudG9fc3RyaW5nKCkpLCB0cnVlLCBWYWx1
ZTo6TnVsbCwgcnBjZW52KTsKKworICAgIG1hdGNoIGRyaXZlcyB7CisgICAgICAgIE9rKGVudHJp
ZXMpID0+IHsKKyAgICAgICAgICAgIGxldCBpZGxlX2RyaXZlczogVmVjPERyaXZlTGlzdEVudHJ5
PiA9IGVudHJpZXMuaW50b19pdGVyKCkuZmlsdGVyKHxlbnRyeXwgbWF0Y2hlcyEoZW50cnkuYWN0
aXZpdHksIE5vbmUgfCBTb21lKERldmljZUFjdGl2aXR5OjpOb0FjdGl2aXR5KSkpLmNvbGxlY3Qo
KTsKKyAgICAgICAgICAgIGxldCBkcml2ZXNfaW5mbyA9IGNyYXRlOjp0YXBlOjpkcml2ZV9pbmZv
OjpnZXRfZHJpdmVzX2luZm8oKTsKKworICAgICAgICAgICAgbWF0Y2ggZHJpdmVzX2luZm8gewor
ICAgICAgICAgICAgICAgIE9rKGRyaXZlc19pbmZvKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGxldCBtdXQgaW5kZXhfb2xkZXN0IDogT3B0aW9uPHVzaXplPiA9IE9wdGlvbjo6ZGVmYXVsdCgp
OworICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG9sZGVzdF90aW1lOiBPcHRpb248aTY0PiA9
IE9wdGlvbjo6ZGVmYXVsdCgpOworCisgICAgICAgICAgICAgICAgICAgIGZvciBpbmRleCBpbiAw
Li5pZGxlX2RyaXZlcy5sZW4oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhpc3Rp
bmdfZHJpdmUgPSBkcml2ZXNfaW5mby5kcml2ZXMuZ2V0KCZpZGxlX2RyaXZlc1tpbmRleF0uY29u
ZmlnLm5hbWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBleGlzdGluZ19kcml2
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShleGlzdGluZ19kcml2ZSkgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvbGRlc3RfdGltZS5pc19ub25l
KCkgfHwgb2xkZXN0X3RpbWUuaXNfc29tZV9hbmQofG9sZGVzdF90aW1lfCBleGlzdGluZ19kcml2
ZS5sYXN0X3VzYWdlIDwgb2xkZXN0X3RpbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9sZGVzdF90aW1lID0gT3B0aW9uOjpmcm9tKGV4aXN0aW5nX2RyaXZlLmxhc3Rf
dXNhZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2xkZXN0
ID0gT3B0aW9uOjpmcm9tKGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTm9uZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERyaXZl
IGhhcyBuZXZlciBiZWVuIHVzZWQsIHNvIGxldCdzIHVzZSB0aGlzIG9uZSEKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2xkZXN0ID0gT3B0aW9uOjpmcm9tKGluZGV4KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2ggaW5kZXhfb2xkZXN0IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFNvbWUoaW5kZXhfb2xkZXN0KSA9PiBPayhpZGxlX2RyaXZlcy5n
ZXQoaW5kZXhfb2xkZXN0KS51bndyYXAoKS5jb25maWcubmFtZS5jbG9uZSgpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIE5vbmUgPT4gYmFpbCEoInRoZXJlIGFyZSBubyBpZGxlIGRyaXZlcyB0
byBjaG9vc2UgZm9yIGF1dG9tYXRpYyBkcml2ZSBhc3NpZ25tZW50IikKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgRXJyKF9lcnJvcikg
PT4geworICAgICAgICAgICAgICAgICAgICAvLyBTaW1wbHkgdXNlIHRoZSBmaXJzdCBkcml2ZSwg
aWYgcG9zc2libGUuCisgICAgICAgICAgICAgICAgICAgIG1hdGNoIGlkbGVfZHJpdmVzLmZpcnN0
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU29tZShpZGxlX2RyaXZlKSA9PiBPayhpZGxl
X2RyaXZlLmNvbmZpZy5uYW1lLmNsb25lKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgTm9u
ZSA9PiBiYWlsISgidGhlcmUgYXJlIG5vIGlkbGUgZHJpdmVzIHRvIGNob29zZSBmb3IgYXV0b21h
dGljIGRyaXZlIGFzc2lnbm1lbnQiKQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEVycihlcnJvcikgPT4g
YmFpbCEoImNhbm5vdCBxdWVyeSBkcml2ZXM6IHt9IiwgZXJyb3IpCisgICAgfQorfQorCiBjb25z
dCBTVUJESVJTOiBTdWJkaXJNYXAgPSAmWworICAgICgibG9hZC1tZWRpYSIsICZSb3V0ZXI6Om5l
dygpLnBvc3QoJkFQSV9NRVRIT0RfTE9BRF9NRURJQSkpLAorICAgICgibG9hZC1zbG90IiwgJlJv
dXRlcjo6bmV3KCkucG9zdCgmQVBJX01FVEhPRF9MT0FEX1NMT1QpKSwKICAgICAoInN0YXR1cyIs
ICZSb3V0ZXI6Om5ldygpLmdldCgmQVBJX01FVEhPRF9HRVRfU1RBVFVTKSksCiAgICAgKCJ0cmFu
c2ZlciIsICZSb3V0ZXI6Om5ldygpLnBvc3QoJkFQSV9NRVRIT0RfVFJBTlNGRVIpKSwKIF07CmRp
ZmYgLS1naXQgYS9zcmMvYmluL3Byb3htb3gtYmFja3VwLWFwaS5ycyBiL3NyYy9iaW4vcHJveG1v
eC1iYWNrdXAtYXBpLnJzCmluZGV4IDdhNzJkNDlhLi5jNmIyZDUzMiAxMDA2NDQKLS0tIGEvc3Jj
L2Jpbi9wcm94bW94LWJhY2t1cC1hcGkucnMKKysrIGIvc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1h
cGkucnMKQEAgLTQzLDYgKzQzLDggQEAgZm4gZ2V0X2luZGV4KCkgLT4gUGluPEJveDxkeW4gRnV0
dXJlPE91dHB1dCA9IFJlc3BvbnNlPEJvZHk+PiArIFNlbmQ+PiB7CiBhc3luYyBmbiBydW4oKSAt
PiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgaW5pdF9sb2dnZXIoIlBCU19MT0ciLCBMZXZlbEZp
bHRlcjo6SU5GTyk/OwogCisgICAgbGV0IF8gPSBwcm94bW94X2JhY2t1cDo6dG9vbHM6OmluaXRf
cHJvZHVjdF9jb25maWcoKTsKKwogICAgIGNvbmZpZzo6Y3JlYXRlX2NvbmZpZ2RpcigpPzsKIAog
ICAgIGNvbmZpZzo6dXBkYXRlX3NlbGZfc2lnbmVkX2NlcnQoZmFsc2UpPzsKZGlmZiAtLWdpdCBh
L3NyYy9iaW4vcHJveG1veC1iYWNrdXAtcHJveHkucnMgYi9zcmMvYmluL3Byb3htb3gtYmFja3Vw
LXByb3h5LnJzCmluZGV4IGNlMWJlMWMwLi5lYjdkYTBlNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w
cm94bW94LWJhY2t1cC1wcm94eS5ycworKysgYi9zcmMvYmluL3Byb3htb3gtYmFja3VwLXByb3h5
LnJzCkBAIC0xODEsNiArMTgxLDggQEAgYXN5bmMgZm4gZ2V0X2luZGV4X2Z1dHVyZShlbnY6IFJl
c3RFbnZpcm9ubWVudCwgcGFydHM6IFBhcnRzKSAtPiBSZXNwb25zZTxCb2R5PgogYXN5bmMgZm4g
cnVuKCkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewogICAgIGluaXRfbG9nZ2VyKCJQQlNfTE9HIiwg
TGV2ZWxGaWx0ZXI6OklORk8pPzsKIAorICAgIGxldCBfID0gcHJveG1veF9iYWNrdXA6OnRvb2xz
Ojppbml0X3Byb2R1Y3RfY29uZmlnKCk7CisKICAgICBwcm94bW94X2JhY2t1cDo6YXV0aF9oZWxw
ZXJzOjpzZXR1cF9hdXRoX2NvbnRleHQoZmFsc2UpOwogICAgIHByb3htb3hfYmFja3VwOjpzZXJ2
ZXI6Om5vdGlmaWNhdGlvbnM6OmluaXQoKT87CiAgICAgbWV0cmljX2NvbGxlY3Rpb246OmluaXQo
KT87CmRpZmYgLS1naXQgYS9zcmMvYmluL3Byb3htb3gtdGFwZS5ycyBiL3NyYy9iaW4vcHJveG1v
eC10YXBlLnJzCmluZGV4IDhlODU4NGIzLi44ZGU5NGFmMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w
cm94bW94LXRhcGUucnMKKysrIGIvc3JjL2Jpbi9wcm94bW94LXRhcGUucnMKQEAgLTEsNiArMSw4
IEBACiB1c2Ugc3RkOjpjb2xsZWN0aW9uczo6SGFzaE1hcDsKIAogdXNlIGFueWhvdzo6e2JhaWws
IGZvcm1hdF9lcnIsIEVycm9yfTsKK3VzZSBwYnNfYXBpX3R5cGVzOjpDSEFOR0VSX05BTUVfU0NI
RU1BX0FVVE9NQVRJQ19EUklWRV9BU0lHTk1FTlQ7Cit1c2UgcGJzX2NvbmZpZzo6ZHJpdmU6OmNv
bXBsZXRlX2NoYW5nZXJfbmFtZTsKIHVzZSBzZXJkZV9qc29uOjp7anNvbiwgVmFsdWV9OwogCiB1
c2UgcHJveG1veF9odW1hbl9ieXRlOjpIdW1hbkJ5dGU7CkBAIC0yMTQsNiArMjE2LDEwIEBAIGFz
eW5jIGZuIGVqZWN0X21lZGlhKG11dCBwYXJhbTogVmFsdWUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+
IHsKICAgICAgICAgICAgICAgICBzY2hlbWE6IERSSVZFX05BTUVfU0NIRU1BLAogICAgICAgICAg
ICAgICAgIG9wdGlvbmFsOiB0cnVlLAogICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNoYW5n
ZXI6IHsKKyAgICAgICAgICAgICAgICBzY2hlbWE6IENIQU5HRVJfTkFNRV9TQ0hFTUFfQVVUT01B
VElDX0RSSVZFX0FTSUdOTUVOVCwKKyAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKKyAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAibGFiZWwtdGV4dCI6IHsKICAgICAgICAgICAgICAg
ICBzY2hlbWE6IE1FRElBX0xBQkVMX1NDSEVNQSwKICAgICAgICAgICAgIH0sCkBAIC0yMzAsMTEg
KzIzNiwyNSBAQCBhc3luYyBmbiBsb2FkX21lZGlhKG11dCBwYXJhbTogVmFsdWUpIC0+IFJlc3Vs
dDwoKSwgRXJyb3I+IHsKIAogICAgIGxldCAoY29uZmlnLCBfZGlnZXN0KSA9IHBic19jb25maWc6
OmRyaXZlOjpjb25maWcoKT87CiAKLSAgICBsZXQgZHJpdmUgPSBleHRyYWN0X2RyaXZlX25hbWUo
Jm11dCBwYXJhbSwgJmNvbmZpZyk/OworICAgIGxldCBkcml2ZSA9IGV4dHJhY3RfZHJpdmVfbmFt
ZSgmbXV0IHBhcmFtLCAmY29uZmlnKTsKKyAgICBsZXQgY2hhbmdlciA9IHBhcmFtWyJjaGFuZ2Vy
Il0uYXNfc3RyKCk7CisKKyAgICBsZXQgcGF0aCA9IG1hdGNoIGNoYW5nZXIgeworICAgICAgICBT
b21lKGNoYW5nZXIpID0+IHsKKyAgICAgICAgICAgIGZvcm1hdCEoImFwaTIvanNvbi90YXBlL2No
YW5nZXIve30vbG9hZC1tZWRpYSIsIGNoYW5nZXIpCisgICAgICAgIH0KKyAgICAgICAgTm9uZSA9
PiB7CisgICAgICAgICAgICBsZXQgZHJpdmUgPSBkcml2ZT87CisgICAgICAgICAgICBmb3JtYXQh
KCJhcGkyL2pzb24vdGFwZS9kcml2ZS97fS9sb2FkLW1lZGlhIiwgZHJpdmUpCisgICAgICAgIH0K
KyAgICB9OworCisgICAgaWYgbGV0IFNvbWUocGFyYW0pID0gcGFyYW0uYXNfb2JqZWN0X211dCgp
IHsKKyAgICAgICAgcGFyYW0ucmVtb3ZlKCJjaGFuZ2VyIik7CisgICAgfQogCiAgICAgbGV0IGNs
aWVudCA9IGNvbm5lY3RfdG9fbG9jYWxob3N0KCk/OwogCi0gICAgbGV0IHBhdGggPSBmb3JtYXQh
KCJhcGkyL2pzb24vdGFwZS9kcml2ZS97fS9sb2FkLW1lZGlhIiwgZHJpdmUpOwogICAgIGxldCBy
ZXN1bHQgPSBjbGllbnQucG9zdCgmcGF0aCwgU29tZShwYXJhbSkpLmF3YWl0PzsKIAogICAgIHZp
ZXdfdGFza19yZXN1bHQoJmNsaWVudCwgcmVzdWx0LCAmb3V0cHV0X2Zvcm1hdCkuYXdhaXQ/OwpA
QCAtMjc2LDYgKzI5NiwxMCBAQCBhc3luYyBmbiBleHBvcnRfbWVkaWEobXV0IHBhcmFtOiBWYWx1
ZSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewogICAgICAgICAgICAgICAgIHNjaGVtYTogRFJJVkVf
TkFNRV9TQ0hFTUEsCiAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCiAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgY2hhbmdlcjogeworICAgICAgICAgICAgICAgIHNjaGVtYTogQ0hB
TkdFUl9OQU1FX1NDSEVNQV9BVVRPTUFUSUNfRFJJVkVfQVNJR05NRU5ULAorICAgICAgICAgICAg
ICAgIG9wdGlvbmFsOiB0cnVlLAorICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJzb3VyY2Ut
c2xvdCI6IHsKICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlNvdXJjZSBzbG90IG51bWJl
ci4iLAogICAgICAgICAgICAgICAgIHR5cGU6IHU2NCwKQEAgLTI4OCwxMSArMzEyLDI1IEBAIGFz
eW5jIGZuIGV4cG9ydF9tZWRpYShtdXQgcGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9y
PiB7CiBhc3luYyBmbiBsb2FkX21lZGlhX2Zyb21fc2xvdChtdXQgcGFyYW06IFZhbHVlKSAtPiBS
ZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgbGV0IChjb25maWcsIF9kaWdlc3QpID0gcGJzX2NvbmZp
Zzo6ZHJpdmU6OmNvbmZpZygpPzsKIAotICAgIGxldCBkcml2ZSA9IGV4dHJhY3RfZHJpdmVfbmFt
ZSgmbXV0IHBhcmFtLCAmY29uZmlnKT87CisgICAgbGV0IGRyaXZlID0gZXh0cmFjdF9kcml2ZV9u
YW1lKCZtdXQgcGFyYW0sICZjb25maWcpOworICAgIGxldCBjaGFuZ2VyID0gcGFyYW1bImNoYW5n
ZXIiXS5hc19zdHIoKTsKKworICAgIGxldCBwYXRoID0gbWF0Y2ggY2hhbmdlciB7CisgICAgICAg
IFNvbWUoY2hhbmdlcikgPT4geworICAgICAgICAgICAgZm9ybWF0ISgiYXBpMi9qc29uL3RhcGUv
Y2hhbmdlci97fS9sb2FkLXNsb3QiLCBjaGFuZ2VyKQorICAgICAgICB9CisgICAgICAgIE5vbmUg
PT4geworICAgICAgICAgICAgbGV0IGRyaXZlID0gZHJpdmU/OworICAgICAgICAgICAgZm9ybWF0
ISgiYXBpMi9qc29uL3RhcGUvZHJpdmUve30vbG9hZC1zbG90IiwgZHJpdmUpCisgICAgICAgIH0K
KyAgICB9OworCisgICAgaWYgbGV0IFNvbWUocGFyYW0pID0gcGFyYW0uYXNfb2JqZWN0X211dCgp
IHsKKyAgICAgICAgcGFyYW0ucmVtb3ZlKCJjaGFuZ2VyIik7CisgICAgfQogCiAgICAgbGV0IGNs
aWVudCA9IGNvbm5lY3RfdG9fbG9jYWxob3N0KCk/OwogCi0gICAgbGV0IHBhdGggPSBmb3JtYXQh
KCJhcGkyL2pzb24vdGFwZS9kcml2ZS97fS9sb2FkLXNsb3QiLCBkcml2ZSk7CiAgICAgY2xpZW50
LnBvc3QoJnBhdGgsIFNvbWUocGFyYW0pKS5hd2FpdD87CiAKICAgICBPaygoKSkKQEAgLTEwOTEs
MTMgKzExMjksMTUgQEAgZm4gbWFpbigpIHsKICAgICAgICAgICAgIENsaUNvbW1hbmQ6Om5ldygm
QVBJX01FVEhPRF9MT0FEX01FRElBKQogICAgICAgICAgICAgICAgIC5hcmdfcGFyYW0oJlsibGFi
ZWwtdGV4dCJdKQogICAgICAgICAgICAgICAgIC5jb21wbGV0aW9uX2NiKCJkcml2ZSIsIGNvbXBs
ZXRlX2RyaXZlX25hbWUpCisgICAgICAgICAgICAgICAgLmNvbXBsZXRpb25fY2IoImNoYW5nZXIi
LCBjb21wbGV0ZV9jaGFuZ2VyX25hbWUpCiAgICAgICAgICAgICAgICAgLmNvbXBsZXRpb25fY2Io
ImxhYmVsLXRleHQiLCBjb21wbGV0ZV9tZWRpYV9sYWJlbF90ZXh0KSwKICAgICAgICAgKQogICAg
ICAgICAuaW5zZXJ0KAogICAgICAgICAgICAgImxvYWQtbWVkaWEtZnJvbS1zbG90IiwKICAgICAg
ICAgICAgIENsaUNvbW1hbmQ6Om5ldygmQVBJX01FVEhPRF9MT0FEX01FRElBX0ZST01fU0xPVCkK
ICAgICAgICAgICAgICAgICAuYXJnX3BhcmFtKCZbInNvdXJjZS1zbG90Il0pCi0gICAgICAgICAg
ICAgICAgLmNvbXBsZXRpb25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSksCisgICAg
ICAgICAgICAgICAgLmNvbXBsZXRpb25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSkK
KyAgICAgICAgICAgICAgICAuY29tcGxldGlvbl9jYigiY2hhbmdlciIsIGNvbXBsZXRlX2NoYW5n
ZXJfbmFtZSksCiAgICAgICAgICkKICAgICAgICAgLmluc2VydCgKICAgICAgICAgICAgICJ1bmxv
YWQiLApkaWZmIC0tZ2l0IGEvc3JjL3RhcGUvY2hhbmdlci9tb2QucnMgYi9zcmMvdGFwZS9jaGFu
Z2VyL21vZC5ycwppbmRleCAxOGVhMGY0Ni4uOGUzZmYwZjcgMTAwNjQ0Ci0tLSBhL3NyYy90YXBl
L2NoYW5nZXIvbW9kLnJzCisrKyBiL3NyYy90YXBlL2NoYW5nZXIvbW9kLnJzCkBAIC0yNzMsNiAr
MjczLDE3IEBAIHB1YiB0cmFpdCBNZWRpYUNoYW5nZSB7CiAgICAgfQogfQogCisvLy8gVXBkYXRl
cyB0aGUgZHJpdmUncyBsYXN0IHVzYWdlIHRpbWUgdG8gbm93LgorcHViKHN1cGVyKSBmbiB1cGRh
dGVfZHJpdmVfdXNhZ2UoZHJpdmU6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBs
ZXQgX2xvY2sgPSBjcmF0ZTo6dGFwZTo6ZHJpdmVfaW5mbzo6bG9jaygpPzsKKworICAgIGxldCBt
dXQgZHJpdmVzX2luZm8gPSBjcmF0ZTo6dGFwZTo6ZHJpdmVfaW5mbzo6Z2V0X2RyaXZlc19pbmZv
KCk/OworCisgICAgbGV0IG5vdyA9IHByb3htb3hfdGltZTo6ZXBvY2hfaTY0KCk7CisgICAgZHJp
dmVzX2luZm8uZHJpdmVzLmVudHJ5KGRyaXZlLmludG8oKSkub3JfZGVmYXVsdCgpLmxhc3RfdXNh
Z2UgPSBub3c7CisgICAgY3JhdGU6OnRhcGU6OmRyaXZlX2luZm86OnNhdmVfY29uZmlnKCZkcml2
ZXNfaW5mbykKK30KKwogY29uc3QgVVNFX01UWDogYm9vbCA9IGZhbHNlOwogCiBpbXBsIFNjc2lN
ZWRpYUNoYW5nZSBmb3IgU2NzaVRhcGVDaGFuZ2VyIHsKQEAgLTQyMyw3ICs0MzQsMTMgQEAgaW1w
bCBNZWRpYUNoYW5nZSBmb3IgTXR4TWVkaWFDaGFuZ2VyIHsKICAgICB9CiAKICAgICBmbiBsb2Fk
X21lZGlhX2Zyb21fc2xvdCgmbXV0IHNlbGYsIHNsb3Q6IHU2NCkgLT4gUmVzdWx0PE10eFN0YXR1
cywgRXJyb3I+IHsKLSAgICAgICAgc2VsZi5jb25maWcubG9hZF9zbG90KHNsb3QsIHNlbGYuZHJp
dmVfbnVtYmVyKCkpCisgICAgICAgIGxldCBzdGF0dXMgPSBzZWxmLmNvbmZpZy5sb2FkX3Nsb3Qo
c2xvdCwgc2VsZi5kcml2ZV9udW1iZXIoKSk/OworCisgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9
IHVwZGF0ZV9kcml2ZV91c2FnZShzZWxmLmRyaXZlX25hbWUoKSkgeworICAgICAgICAgICAgbG9n
Ojp3YXJuISgiY291bGQgbm90IHVwZGF0ZSBkcml2ZSB1c2FnZToge2Vycn0iKTsKKyAgICAgICAg
fQorCisgICAgICAgIE9rKHN0YXR1cykKICAgICB9CiAKICAgICBmbiB1bmxvYWRfbWVkaWEoJm11
dCBzZWxmLCB0YXJnZXRfc2xvdDogT3B0aW9uPHU2ND4pIC0+IFJlc3VsdDxNdHhTdGF0dXMsIEVy
cm9yPiB7CmRpZmYgLS1naXQgYS9zcmMvdGFwZS9kcml2ZS92aXJ0dWFsX3RhcGUucnMgYi9zcmMv
dGFwZS9kcml2ZS92aXJ0dWFsX3RhcGUucnMKaW5kZXggODY2ZTRkMzIuLjIxM2YxN2ZlIDEwMDY0
NAotLS0gYS9zcmMvdGFwZS9kcml2ZS92aXJ0dWFsX3RhcGUucnMKKysrIGIvc3JjL3RhcGUvZHJp
dmUvdmlydHVhbF90YXBlLnJzCkBAIC01NjcsNyArNTY3LDEzIEBAIGltcGwgTWVkaWFDaGFuZ2Ug
Zm9yIFZpcnR1YWxUYXBlSGFuZGxlIHsKICAgICAgICAgfTsKICAgICAgICAgc2VsZi5zdG9yZV9z
dGF0dXMoJnN0YXR1cyk/OwogCi0gICAgICAgIHNlbGYuc3RhdHVzKCkKKyAgICAgICAgbGV0IHN0
YXR1cyA9IHNlbGYuc3RhdHVzKCk/OworCisgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IGNyYXRl
Ojp0YXBlOjpjaGFuZ2VyOjp1cGRhdGVfZHJpdmVfdXNhZ2Uoc2VsZi5kcml2ZV9uYW1lKCkpIHsK
KyAgICAgICAgICAgIGxvZzo6d2FybiEoImNvdWxkIG5vdCB1cGRhdGUgZHJpdmUgdXNhZ2U6IHtl
cnJ9Iik7CisgICAgICAgIH0KKworICAgICAgICBPayhzdGF0dXMpCiAgICAgfQogCiAgICAgZm4g
dW5sb2FkX21lZGlhKCZtdXQgc2VsZiwgX3RhcmdldF9zbG90OiBPcHRpb248dTY0PikgLT4gUmVz
dWx0PE10eFN0YXR1cywgRXJyb3I+IHsKZGlmZiAtLWdpdCBhL3NyYy90YXBlL2RyaXZlX2luZm8u
cnMgYi9zcmMvdGFwZS9kcml2ZV9pbmZvLnJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwLi5hMGMyZjgzNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90YXBlL2RyaXZlX2luZm8u
cnMKQEAgLTAsMCArMSw1MSBAQAorLy8hIFNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSB0cGFlIGRyaXZl
IGluZm8gKGUuZy4gdXNlZnVsIGZvciBzdGF0aXN0aWNzKQorLy8hCisvLyEgVGhpcyBjYW4gYmUg
dXNlZCB0byBzdG9yZSBhIHN0YXRlIG92ZXIgYSBsb25nZXIgcGVyaW9kIG9mIHRpbWUgKGUuZy4g
bGFzdCB0YXBlIGRyaXZlIHVzYWdlKS4KKwordXNlIHNlcmRlOjp7U2VyaWFsaXplLCBEZXNlcmlh
bGl6ZX07Cit1c2Ugc3RkOjpjb2xsZWN0aW9uczo6SGFzaE1hcDsKK3VzZSBhbnlob3c6OkVycm9y
OwordXNlIHByb3htb3hfcHJvZHVjdF9jb25maWc6OkFwaUxvY2tHdWFyZDsKKworLy8vIERyaXZl
IGluZm8gZmlsZSBuYW1lCitwdWIgY29uc3QgRFJJVkVfSU5GT19GSUxFTkFNRTogJnN0ciA9IGNv
bmNhdCEocGJzX2J1aWxkY2ZnOjpQUk9YTU9YX0JBQ0tVUF9TVEFURV9ESVJfTSEoKSwgIi90YXBl
X2RyaXZlX2luZm8uanNvbiIpOworLy8vIExvY2sgZmlsZSBuYW1lICh1c2VkIHRvIHByZXZlbnQg
Y29uY3VycmVudCBhY2Nlc3MpCitwdWIgY29uc3QgRFJJVkVfSU5GT19MT0NLRklMRTogJnN0ciA9
IGNvbmNhdCEocGJzX2J1aWxkY2ZnOjpQUk9YTU9YX0JBQ0tVUF9TVEFURV9ESVJfTSEoKSwgIi8u
dGFwZV9kcml2ZV9pbmZvLmpzb24ubG9jayIpOworCisjW2Rlcml2ZShTZXJpYWxpemUsIERlc2Vy
aWFsaXplLCBEZWZhdWx0KV0KK3B1YiBzdHJ1Y3QgU2luZ2xlRHJpdmVJbmZvIHsKKyAgICAjW3Nl
cmRlKHdpdGggPSAicHJveG1veF9zZXJkZTo6ZXBvY2hfYXNfcmZjMzMzOSIpXQorICAgIHB1YiBs
YXN0X3VzYWdlOiBpNjQsCit9CisKKyNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERl
ZmF1bHQpXQorcHViIHN0cnVjdCBEcml2ZXNJbmZvIHsKKyAgICBwdWIgZHJpdmVzOiBIYXNoTWFw
PFN0cmluZywgU2luZ2xlRHJpdmVJbmZvPiwKK30KKworLy8vIEdldCBleGNsdXNpdmUgbG9jawor
cHViIGZuIGxvY2soKSAtPiBSZXN1bHQ8QXBpTG9ja0d1YXJkLCBFcnJvcj4geworICAgIHByb3ht
b3hfcHJvZHVjdF9jb25maWc6Om9wZW5fYXBpX2xvY2tmaWxlKERSSVZFX0lORk9fTE9DS0ZJTEUs
IE9wdGlvbjo6Tm9uZSwgdHJ1ZSkKK30KKworLy8vIFJlYWQgYW5kIHBhcnNlIHRoZSBkcml2ZSBp
bmZvIGZpbGUKK3B1YiBmbiBnZXRfZHJpdmVzX2luZm8oKSAtPiBSZXN1bHQ8RHJpdmVzSW5mbywg
RXJyb3I+IHsKKyAgICBsZXQgY29udGVudCA9CisgICAgICAgIHByb3htb3hfc3lzOjpmczo6Zmls
ZV9yZWFkX29wdGlvbmFsX3N0cmluZyhEUklWRV9JTkZPX0ZJTEVOQU1FKT87CisKKyAgICBtYXRj
aCBjb250ZW50IHsKKyAgICAgICAgU29tZShjb250ZW50KSA9PiB7CisgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gc2VyZGVfanNvbjo6ZnJvbV9zdHI6OjxEcml2ZXNJbmZvPigmY29udGVudCk/Owor
ICAgICAgICAgICAgT2socmVzdWx0KQorICAgICAgICB9LAorICAgICAgICBOb25lID0+IHsKKyAg
ICAgICAgICAgIE9rKERyaXZlc0luZm86OmRlZmF1bHQoKSkKKyAgICAgICAgfQorICAgIH0KK30K
KworLy8vIFNhdmUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZQorcHViIGZuIHNhdmVfY29uZmlnKGRh
dGE6ICZEcml2ZXNJbmZvKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGpzb24gPSBz
ZXJkZV9qc29uOjp0b19zdHJpbmcoZGF0YSk/OworICAgIHByb3htb3hfcHJvZHVjdF9jb25maWc6
OnJlcGxhY2VfY29uZmlnKERSSVZFX0lORk9fRklMRU5BTUUsIGpzb24uYXNfYnl0ZXMoKSkKK30K
ZGlmZiAtLWdpdCBhL3NyYy90YXBlL21vZC5ycyBiL3NyYy90YXBlL21vZC5ycwppbmRleCBmMjc2
Zjk0OC4uOGI4NzE1MmQgMTAwNjQ0Ci0tLSBhL3NyYy90YXBlL21vZC5ycworKysgYi9zcmMvdGFw
ZS9tb2QucnMKQEAgLTIwLDYgKzIwLDcgQEAgcHViIHVzZSBpbnZlbnRvcnk6Oio7CiAKIHB1YiBt
b2QgY2hhbmdlcjsKIHB1YiBtb2QgZHJpdmU7CitwdWIgbW9kIGRyaXZlX2luZm87CiBwdWIgbW9k
IGVuY3J5cHRpb25fa2V5czsKIAogbW9kIG1lZGlhX3Bvb2w7CmRpZmYgLS1naXQgYS9zcmMvdG9v
bHMvbW9kLnJzIGIvc3JjL3Rvb2xzL21vZC5ycwppbmRleCAzMjI4OTRkZC4uMTFmYjI4MjEgMTAw
NjQ0Ci0tLSBhL3NyYy90b29scy9tb2QucnMKKysrIGIvc3JjL3Rvb2xzL21vZC5ycwpAQCAtNjEs
MyArNjEsMTAgQEAgcHViIGZuIHNldHVwX3NhZmVfcGF0aF9lbnYoKSB7CiAgICAgICAgIHN0ZDo6
ZW52OjpyZW1vdmVfdmFyKG5hbWUpOwogICAgIH0KIH0KKworcHViIGZuIGluaXRfcHJvZHVjdF9j
b25maWcoKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGJhY2t1cF91c2VyID0gcGJz
X2NvbmZpZzo6YmFja3VwX3VzZXIoKT87CisgICAgbGV0IHJvb3RfdXNlciA9IG5peDo6dW5pc3Rk
OjpVc2VyOjpmcm9tX3VpZChuaXg6OnVuaXN0ZDo6Uk9PVCk/LmV4cGVjdCgiY291bGQgbm90IGZp
bmQgcm9vdCB1c2VyIik7CisgICAgcHJveG1veF9wcm9kdWN0X2NvbmZpZzo6aW5pdChiYWNrdXBf
dXNlciwgcm9vdF91c2VyKTsKKyAgICBPaygoKSkKK30KZGlmZiAtLWdpdCBhL3d3dy90YXBlL0No
YW5nZXJTdGF0dXMuanMgYi93d3cvdGFwZS9DaGFuZ2VyU3RhdHVzLmpzCmluZGV4IGUxOGFmOTBl
Li4wYTg3NTc3OSAxMDA2NDQKLS0tIGEvd3d3L3RhcGUvQ2hhbmdlclN0YXR1cy5qcworKysgYi93
d3cvdGFwZS9DaGFuZ2VyU3RhdHVzLmpzCkBAIC0yMjIsMTIgKzIyMiwxNyBAQCBFeHQuZGVmaW5l
KCdQQlMuVGFwZU1hbmFnZW1lbnQuQ2hhbmdlclN0YXR1cycsIHsKIAkJICAgIGF1dG9TaG93OiB0
cnVlLAogCQkgICAgc3VibWl0VGV4dDogZ2V0dGV4dCgnT0snKSwKIAkJICAgIHRpdGxlOiBnZXR0
ZXh0KCdMb2FkIE1lZGlhIGludG8gRHJpdmUnKSwKLQkJICAgIHVybDogYC9hcGkyL2V4dGpzL3Rh
cGUvZHJpdmVgLAorCQkgICAgdXJsOiBgL2FwaTIvZXh0anMvdGFwZWAsCiAJCSAgICBtZXRob2Q6
ICdQT1NUJywKIAkJICAgIHN1Ym1pdFVybDogZnVuY3Rpb24odXJsLCB2YWx1ZXMpIHsKLQkJCWxl
dCBkcml2ZSA9IHZhbHVlcy5kcml2ZTsKLQkJCWRlbGV0ZSB2YWx1ZXMuZHJpdmU7Ci0JCQlyZXR1
cm4gYCR7dXJsfS8ke2VuY29kZVVSSUNvbXBvbmVudChkcml2ZSl9LyR7YXBpQ2FsbH1gOworCQkJ
ICAgIGxldCBkcml2ZSA9IHZhbHVlcy5kcml2ZTsKKwkJCSAgICBkZWxldGUgdmFsdWVzLmRyaXZl
OworCQkJICAgIAorCQkJICAgIGlmIChkcml2ZSkgeworCQkJCSAgICByZXR1cm4gYCR7dXJsfS9k
cml2ZS8ke2VuY29kZVVSSUNvbXBvbmVudChkcml2ZSl9LyR7YXBpQ2FsbH1gOworCQkJICAgIH0g
ZWxzZSB7CisJCQkJICAgIHJldHVybiBgJHt1cmx9L2NoYW5nZXIvJHtlbmNvZGVVUklDb21wb25l
bnQoY2hhbmdlcil9LyR7YXBpQ2FsbH1gOworCQkJICAgIH0KIAkJICAgIH0sCiAJCSAgICBpdGVt
czogWwogCQkJbGFiZWwgIT09ICIiID8gewpAQCAtMjQ4LDYgKzI1Myw5IEBAIEV4dC5kZWZpbmUo
J1BCUy5UYXBlTWFuYWdlbWVudC5DaGFuZ2VyU3RhdHVzJywgewogCQkJICAgIGZpZWxkTGFiZWw6
IGdldHRleHQoJ0RyaXZlJyksCiAJCQkgICAgY2hhbmdlcjogY2hhbmdlciwKIAkJCSAgICBuYW1l
OiAnZHJpdmUnLAorCQkJICAgIGVtcHR5VGV4dDogZ2V0dGV4dCgnQ2hvb3NlIEF1dG9tYXRpY2Fs
bHknKSwKKwkJCSAgICBhbGxvd0JsYW5rOiB0cnVlLAorCQkJICAgIGF1dG9TZWxlY3Q6IGZhbHNl
LAogCQkJfSwKIAkJICAgIF0sCiAJCSAgICBsaXN0ZW5lcnM6IHsKLS0gCjIuMzkuNQoKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFp
bGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3ht
b3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK