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 2AEE41FF15C
	for <inbox@lore.proxmox.com>; Wed, 26 Mar 2025 16:24:26 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 96DCA3B84D;
	Wed, 26 Mar 2025 16:24:21 +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:18 +0100
Message-Id: <20250326152327.332179-15-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 14/17] proxmox-rest-server: update to
 hyper 1.0
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>

YW5kIHN3aXRjaCB0byBwcm94bW94LWh0dHAncyBCb2R5IGltcGxlbWVudGF0aW9uLgoKaHlwZXIg
bm93IGhhcyBhIHNwZWNpYWwgKG9wYXF1ZSkgQm9keSBpbXBsZW1lbnRhdGlvbiBjYWxsZWQgSW5j
b21pbmcKd2hpY2ggaXMgdXNlZCBmb3IgaW5jb21pbmcgcmVxdWVzdCBib2RpZXMgb24gdGhlIHNl
cnZlciBzaWRlLCBhbmQKaW5jb21pbmcgcmVzcG9uc2UgYm9kaWVzIG9uIHRoZSBjbGllbnQgc2lk
ZSwgc28gb3VyIEFQSSBoYW5kbGVyJ3Mgbm93CmNvbnN1bWUgYW4gaW5zdGFuY2Ugb2YgdGhpcyB0
eXBlLgoKdGhlIEFjY2VwdCB0cmFpdCBwcmV2aW91c2x5IG9mZmVyZWQgYnkgaHlwZXIgaXMgZ29u
ZSBpbiAxLjAsIGFuZCBuZWVkcwp0byBiZSByZXBsYWNlZCB3aXRoIGFuIGFjY2VwdCBsb29wLiBv
dXIgY29ycmVzcG9uZGluZyBBY2NlcHRvcgppbXBsZW1lbnRhdGlvbnMgaGF2ZSBiZWVuIGRyb3Bw
ZWQgYXMgd2VsbC4KCmh5cGVyIG5vdyBoYXMgaXRzIG93biBTZXJ2aWNlIGFuZCBhc3luYyBSZWFk
L1dyaXRlIHRyYWl0cywgYnV0IGhlbHBmdWxseQpwcm92aWRlcyB3cmFwcGVycyBmb3IgdG93ZXIn
cyBTZXJ2aWNlIGFuZCB0b2tpbydzIEFzeW5jUmVhZC9Bc3luY1dyaXRlCnZhcmlhbnRzLgoKZ3Jh
Y2VmdWwgc2h1dGRvd24gaGFuZGxpbmcgaXMgbm93IGV4cG9zZWQgZGlmZmVyZW50bHkgb24gdGhl
IGh5cGVyIHNpZGUsCmFuZCB0byBhbGxvdyB1c2FnZSB3aXRoIHVwZ3JhZGFibGUgY29ubmVjdGlv
bnMgdGhlIHZhcmlhbnQgZm9ybQpoeXBlci11dGlsIG5lZWRzIHRvIGJlIHVzZWQsIGFzIHRoZSBv
bmUgc3RyYWlnaHQgZnJvbSBoeXBlciBkb2Vzbid0CnN1cHBvcnQgaXQgKHlldCkuCgpTaWduZWQt
b2ZmLWJ5OiBGYWJpYW4gR3LDvG5iaWNobGVyIDxmLmdydWVuYmljaGxlckBwcm94bW94LmNvbT4K
LS0tCiBwcm94bW94LXJlc3Qtc2VydmVyL0NhcmdvLnRvbWwgICAgICAgICAgICAgICAgfCAgIDcg
Ky0KIC4uLi9leGFtcGxlcy9taW5pbWFsLXJlc3Qtc2VydmVyLnJzICAgICAgICAgICB8ICAgNSAr
LQogcHJveG1veC1yZXN0LXNlcnZlci9zcmMvYXBpX2NvbmZpZy5ycyAgICAgICAgIHwgIDQ0ICsr
LS0tCiBwcm94bW94LXJlc3Qtc2VydmVyL3NyYy9jb25uZWN0aW9uLnJzICAgICAgICAgfCAgMTQg
Ky0KIHByb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2Zvcm1hdHRlci5ycyAgICAgICAgICB8ICAgOCAr
LQogcHJveG1veC1yZXN0LXNlcnZlci9zcmMvaDJzZXJ2aWNlLnJzICAgICAgICAgIHwgIDE1ICst
CiBwcm94bW94LXJlc3Qtc2VydmVyL3NyYy9saWIucnMgICAgICAgICAgICAgICAgfCAgIDIgKy0K
IHByb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL3Jlc3QucnMgICAgICAgICAgICAgICB8IDE2NCArKysr
KysrKysrKy0tLS0tLS0KIDggZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDExNyBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9wcm94bW94LXJlc3Qtc2VydmVyL0NhcmdvLnRvbWwg
Yi9wcm94bW94LXJlc3Qtc2VydmVyL0NhcmdvLnRvbWwKaW5kZXggZmZiZDkyNWEuLmVlMjUzYjRm
IDEwMDY0NAotLS0gYS9wcm94bW94LXJlc3Qtc2VydmVyL0NhcmdvLnRvbWwKKysrIGIvcHJveG1v
eC1yZXN0LXNlcnZlci9DYXJnby50b21sCkBAIC0yMCw3ICsyMCw5IEBAIGFueWhvdy53b3Jrc3Bh
Y2UgPSB0cnVlCiBmdXR1cmVzLndvcmtzcGFjZSA9IHRydWUKIGhhbmRsZWJhcnMgPSB7IHdvcmtz
cGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9CiBodHRwLndvcmtzcGFjZSA9IHRydWUKK2h0
dHAtYm9keS11dGlsLndvcmtzcGFjZSA9IHRydWUKIGh5cGVyID0geyB3b3Jrc3BhY2UgPSB0cnVl
LCBmZWF0dXJlcyA9IFsgImZ1bGwiIF0gfQoraHlwZXItdXRpbCA9IHsgd29ya3NwYWNlID0gdHJ1
ZSwgZmVhdHVyZXMgPSBbICJjbGllbnQiLCAiY2xpZW50LWxlZ2FjeSIsICJodHRwMSIsICJzZXJ2
ZXIiLCAic2VydmVyLWF1dG8iLCAic2VydmVyLWdyYWNlZnVsIiwgInNlcnZpY2UiLCAidG9raW8i
IF19CiBsaWJjLndvcmtzcGFjZSA9IHRydWUKIGxvZy53b3Jrc3BhY2UgPSB0cnVlCiBuaXgud29y
a3NwYWNlID0gdHJ1ZQpAQCAtMzksNyArNDEsNyBAQCB1cmwud29ya3NwYWNlID0gdHJ1ZQogcHJv
eG1veC1hc3luYy53b3Jrc3BhY2UgPSB0cnVlCiBwcm94bW94LWNvbXByZXNzaW9uLndvcmtzcGFj
ZSA9IHRydWUKIHByb3htb3gtZGFlbW9uLndvcmtzcGFjZSA9IHRydWUKLXByb3htb3gtaHR0cCA9
IHsgd29ya3NwYWNlID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KK3Byb3htb3gtaHR0cCA9IHsg
d29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbImJvZHkiXSB9CiBwcm94bW94LWxhbmcud29y
a3NwYWNlID0gdHJ1ZQogcHJveG1veC1sb2cud29ya3NwYWNlID0gdHJ1ZQogcHJveG1veC1yb3V0
ZXIud29ya3NwYWNlID0gdHJ1ZQpAQCAtNTIsNiArNTQsNSBAQCBwcm94bW94LXdvcmtlci10YXNr
LndvcmtzcGFjZSA9IHRydWUKIGRlZmF1bHQgPSBbXQogdGVtcGxhdGVzID0gWyJkZXA6aGFuZGxl
YmFycyJdCiByYXRlLWxpbWl0ZWQtc3RyZWFtID0gWwotICAgICJkZXA6cHJveG1veC1odHRwIiwK
LSAgICAicHJveG1veC1odHRwPy9yYXRlLWxpbWl0ZWQtc3RyZWFtIiwKKyAgICAicHJveG1veC1o
dHRwL3JhdGUtbGltaXRlZC1zdHJlYW0iLAogXQpkaWZmIC0tZ2l0IGEvcHJveG1veC1yZXN0LXNl
cnZlci9leGFtcGxlcy9taW5pbWFsLXJlc3Qtc2VydmVyLnJzIGIvcHJveG1veC1yZXN0LXNlcnZl
ci9leGFtcGxlcy9taW5pbWFsLXJlc3Qtc2VydmVyLnJzCmluZGV4IDIzYmU1ODZjLi40NTQ0MzBm
YiAxMDA2NDQKLS0tIGEvcHJveG1veC1yZXN0LXNlcnZlci9leGFtcGxlcy9taW5pbWFsLXJlc3Qt
c2VydmVyLnJzCisrKyBiL3Byb3htb3gtcmVzdC1zZXJ2ZXIvZXhhbXBsZXMvbWluaW1hbC1yZXN0
LXNlcnZlci5ycwpAQCAtNiw4ICs2LDkgQEAgdXNlIHN0ZDo6c3luYzo6e0xhenlMb2NrLCBNdXRl
eH07CiB1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9OwogdXNlIGh0dHA6OnJl
cXVlc3Q6OlBhcnRzOwogdXNlIGh0dHA6OkhlYWRlck1hcDsKLXVzZSBoeXBlcjo6e0JvZHksIE1l
dGhvZCwgUmVzcG9uc2V9OwordXNlIGh5cGVyOjp7TWV0aG9kLCBSZXNwb25zZX07CiAKK3VzZSBw
cm94bW94X2h0dHA6OkJvZHk7CiB1c2UgcHJveG1veF9yb3V0ZXI6OnsKICAgICBsaXN0X3N1YmRp
cnNfYXBpX21ldGhvZCwgUm91dGVyLCBScGNFbnZpcm9ubWVudFR5cGUsIFN1YmRpck1hcCwgVXNl
ckluZm9ybWF0aW9uLAogfTsKQEAgLTU3LDcgKzU4LDcgQEAgZm4gZ2V0X2luZGV4KAogICAgIEJv
eDo6cGluKGFzeW5jIG1vdmUgewogICAgICAgICAvLyBidWlsZCBhbiBpbmRleCBwYWdlCiAgICAg
ICAgIGh0dHA6OlJlc3BvbnNlOjpidWlsZGVyKCkKLSAgICAgICAgICAgIC5ib2R5KCJoZWxsbyB3
b3JsZCIuaW50bygpKQorICAgICAgICAgICAgLmJvZHkoImhlbGxvIHdvcmxkIi50b19vd25lZCgp
LmludG9fYnl0ZXMoKS5pbnRvKCkpCiAgICAgICAgICAgICAudW53cmFwKCkKICAgICB9KQogfQpk
aWZmIC0tZ2l0IGEvcHJveG1veC1yZXN0LXNlcnZlci9zcmMvYXBpX2NvbmZpZy5ycyBiL3Byb3ht
b3gtcmVzdC1zZXJ2ZXIvc3JjL2FwaV9jb25maWcucnMKaW5kZXggYjIwYjJkYTAuLjBiODQ3YTBj
IDEwMDY0NAotLS0gYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9hcGlfY29uZmlnLnJzCisrKyBi
L3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2FwaV9jb25maWcucnMKQEAgLTksMTAgKzksMTIgQEAg
dXNlIHN0ZDo6dGFzazo6e0NvbnRleHQsIFBvbGx9OwogdXNlIGFueWhvdzo6e2Zvcm1hdF9lcnIs
IEVycm9yfTsKIHVzZSBodHRwOjp7SGVhZGVyTWFwLCBNZXRob2QsIFVyaX07CiB1c2UgaHlwZXI6
Omh0dHA6OnJlcXVlc3Q6OlBhcnRzOwotdXNlIGh5cGVyOjp7Qm9keSwgUmVzcG9uc2V9OwordXNl
IGh5cGVyOjpSZXNwb25zZTsKK3VzZSBoeXBlcl91dGlsOjpydDo6VG9raW9JbzsKIHVzZSB0b3dl
cl9zZXJ2aWNlOjpTZXJ2aWNlOwogCiB1c2UgcHJveG1veF9kYWVtb246OmNvbW1hbmRfc29ja2V0
OjpDb21tYW5kU29ja2V0OwordXNlIHByb3htb3hfaHR0cDo6Qm9keTsKIHVzZSBwcm94bW94X2xv
Zzo6e0ZpbGVMb2dPcHRpb25zLCBGaWxlTG9nZ2VyfTsKIHVzZSBwcm94bW94X3JvdXRlcjo6e1Jv
dXRlciwgUnBjRW52aXJvbm1lbnRUeXBlLCBVc2VySW5mb3JtYXRpb259OwogdXNlIHByb3htb3hf
c3lzOjpmczo6e2NyZWF0ZV9wYXRoLCBDcmVhdGVPcHRpb25zfTsKQEAgLTEwNyw3ICsxMDksNyBA
QCBpbXBsIEFwaUNvbmZpZyB7CiAgICAgKSAtPiBSZXNwb25zZTxCb2R5PiB7CiAgICAgICAgIG1h
dGNoIHNlbGYuaW5kZXhfaGFuZGxlci5hc19yZWYoKSB7CiAgICAgICAgICAgICBTb21lKGhhbmRs
ZXIpID0+IChoYW5kbGVyLmZ1bmMpKHJlc3RfZW52LCBwYXJ0cykuYXdhaXQsCi0gICAgICAgICAg
ICBOb25lID0+IFJlc3BvbnNlOjpidWlsZGVyKCkuc3RhdHVzKDQwNCkuYm9keSgiIi5pbnRvKCkp
LnVud3JhcCgpLAorICAgICAgICAgICAgTm9uZSA9PiBSZXNwb25zZTo6YnVpbGRlcigpLnN0YXR1
cyg0MDQpLmJvZHkoQm9keTo6ZW1wdHkoKSkudW53cmFwKCksCiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTUxMSw3ICs1MTMsNyBAQCBpbXBsIEZyb208c3RkOjpvczo6dW5peDo6bmV0OjpTb2NrZXRB
ZGRyPiBmb3IgUHJpdmlsZWdlZEFkZHIgewogfQogCiBpbXBsIFNlcnZpY2U8VXJpPiBmb3IgUHJp
dmlsZWdlZEFkZHIgewotICAgIHR5cGUgUmVzcG9uc2UgPSBQcml2aWxlZ2VkU29ja2V0OworICAg
IHR5cGUgUmVzcG9uc2UgPSBUb2tpb0lvPFByaXZpbGVnZWRTb2NrZXQ+OwogICAgIHR5cGUgRXJy
b3IgPSBpbzo6RXJyb3I7CiAgICAgdHlwZSBGdXR1cmUgPSBQaW48Qm94PGR5biBGdXR1cmU8T3V0
cHV0ID0gUmVzdWx0PFNlbGY6OlJlc3BvbnNlLCBTZWxmOjpFcnJvcj4+ICsgU2VuZD4+OwogCkBA
IC01MjcsNiArNTI5LDcgQEAgaW1wbCBTZXJ2aWNlPFVyaT4gZm9yIFByaXZpbGVnZWRBZGRyIHsK
ICAgICAgICAgICAgICAgICAgICAgdG9raW86Om5ldDo6VGNwU3RyZWFtOjpjb25uZWN0KGFkZHIp
CiAgICAgICAgICAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICAgICAgICAgICAgICAgICAg
IC5tYXAoUHJpdmlsZWdlZFNvY2tldDo6VGNwKQorICAgICAgICAgICAgICAgICAgICAgICAgLm1h
cChUb2tpb0lvOjpuZXcpCiAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIFByaXZpbGVnZWRBZGRyOjpVbml4KGFkZHIpID0+IHsKQEAgLTUzNyw2ICs1NDAsNyBA
QCBpbXBsIFNlcnZpY2U8VXJpPiBmb3IgUHJpdmlsZWdlZEFkZHIgewogICAgICAgICAgICAgICAg
ICAgICB9KT8pCiAgICAgICAgICAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAgICAgICAg
ICAubWFwKFByaXZpbGVnZWRTb2NrZXQ6OlVuaXgpCisgICAgICAgICAgICAgICAgICAgIC5tYXAo
VG9raW9Jbzo6bmV3KQogICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTYwNywzOSArNjExLDExIEBAIGltcGwgdG9raW86OmlvOjpBc3luY1dyaXRlIGZvciBQ
cml2aWxlZ2VkU29ja2V0IHsKICAgICB9CiB9CiAKLWltcGwgaHlwZXI6OmNsaWVudDo6Y29ubmVj
dDo6Q29ubmVjdGlvbiBmb3IgUHJpdmlsZWdlZFNvY2tldCB7Ci0gICAgZm4gY29ubmVjdGVkKCZz
ZWxmKSAtPiBoeXBlcjo6Y2xpZW50Ojpjb25uZWN0OjpDb25uZWN0ZWQgeworaW1wbCBoeXBlcl91
dGlsOjpjbGllbnQ6OmxlZ2FjeTo6Y29ubmVjdDo6Q29ubmVjdGlvbiBmb3IgUHJpdmlsZWdlZFNv
Y2tldCB7CisgICAgZm4gY29ubmVjdGVkKCZzZWxmKSAtPiBoeXBlcl91dGlsOjpjbGllbnQ6Omxl
Z2FjeTo6Y29ubmVjdDo6Q29ubmVjdGVkIHsKICAgICAgICAgbWF0Y2ggc2VsZiB7CiAgICAgICAg
ICAgICBTZWxmOjpUY3AocykgPT4gcy5jb25uZWN0ZWQoKSwKLSAgICAgICAgICAgIFNlbGY6OlVu
aXgoXykgPT4gaHlwZXI6OmNsaWVudDo6Y29ubmVjdDo6Q29ubmVjdGVkOjpuZXcoKSwKKyAgICAg
ICAgICAgIFNlbGY6OlVuaXgoXykgPT4gaHlwZXJfdXRpbDo6Y2xpZW50OjpsZWdhY3k6OmNvbm5l
Y3Q6OkNvbm5lY3RlZDo6bmV3KCksCiAgICAgICAgIH0KICAgICB9CiB9Ci0KLS8vLyBJbXBsZW1l
bnRzIGh5cGVyJ3MgYEFjY2VwdGAgZm9yIGBVbml4TGlzdGVuZXJgcy4KLXB1YiBzdHJ1Y3QgVW5p
eEFjY2VwdG9yIHsKLSAgICBsaXN0ZW5lcjogdG9raW86Om5ldDo6VW5peExpc3RlbmVyLAotfQot
Ci1pbXBsIEZyb208dG9raW86Om5ldDo6VW5peExpc3RlbmVyPiBmb3IgVW5peEFjY2VwdG9yIHsK
LSAgICBmbiBmcm9tKGxpc3RlbmVyOiB0b2tpbzo6bmV0OjpVbml4TGlzdGVuZXIpIC0+IFNlbGYg
ewotICAgICAgICBTZWxmIHsgbGlzdGVuZXIgfQotICAgIH0KLX0KLQotaW1wbCBoeXBlcjo6c2Vy
dmVyOjphY2NlcHQ6OkFjY2VwdCBmb3IgVW5peEFjY2VwdG9yIHsKLSAgICB0eXBlIENvbm4gPSB0
b2tpbzo6bmV0OjpVbml4U3RyZWFtOwotICAgIHR5cGUgRXJyb3IgPSBpbzo6RXJyb3I7Ci0KLSAg
ICBmbiBwb2xsX2FjY2VwdCgKLSAgICAgICAgc2VsZjogUGluPCZtdXQgU2VsZj4sCi0gICAgICAg
IGN4OiAmbXV0IENvbnRleHQ8J18+LAotICAgICkgLT4gUG9sbDxPcHRpb248aW86OlJlc3VsdDxT
ZWxmOjpDb25uPj4+IHsKLSAgICAgICAgUGluOjpuZXcoJm11dCBzZWxmLmdldF9tdXQoKS5saXN0
ZW5lcikKLSAgICAgICAgICAgIC5wb2xsX2FjY2VwdChjeCkKLSAgICAgICAgICAgIC5tYXAofHJl
c3wgbWF0Y2ggcmVzIHsKLSAgICAgICAgICAgICAgICBPaygoc3RyZWFtLCBfYWRkcikpID0+IFNv
bWUoT2soc3RyZWFtKSksCi0gICAgICAgICAgICAgICAgRXJyKGVycikgPT4gU29tZShFcnIoZXJy
KSksCi0gICAgICAgICAgICB9KQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Byb3htb3gtcmVzdC1z
ZXJ2ZXIvc3JjL2Nvbm5lY3Rpb24ucnMgYi9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9jb25uZWN0
aW9uLnJzCmluZGV4IDUyNjU1NWFlLi5hNjVlZjM5OCAxMDA2NDQKLS0tIGEvcHJveG1veC1yZXN0
LXNlcnZlci9zcmMvY29ubmVjdGlvbi5ycworKysgYi9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9j
b25uZWN0aW9uLnJzCkBAIC0xNCw3ICsxNCw2IEBAIHVzZSBzdGQ6OnRpbWU6OkR1cmF0aW9uOwog
CiB1c2UgYW55aG93Ojp7Zm9ybWF0X2VyciwgQ29udGV4dCwgRXJyb3J9OwogdXNlIGZ1dHVyZXM6
OkZ1dHVyZUV4dDsKLXVzZSBoeXBlcjo6c2VydmVyOjphY2NlcHQ7CiB1c2Ugb3BlbnNzbDo6ZWM6
OntFY0dyb3VwLCBFY0tleX07CiB1c2Ugb3BlbnNzbDo6bmlkOjpOaWQ7CiB1c2Ugb3BlbnNzbDo6
cGtleTo6e1BLZXksIFByaXZhdGV9OwpAQCAtMjI2LDEyICsyMjUsMTMgQEAgaW1wbCBBY2NlcHRC
dWlsZGVyIHsKICAgICAgICAgc2VsZiwKICAgICAgICAgbGlzdGVuZXI6IFRjcExpc3RlbmVyLAog
ICAgICAgICBhY2NlcHRvcjogQXJjPE11dGV4PFNzbEFjY2VwdG9yPj4sCi0gICAgKSAtPiBpbXBs
IGFjY2VwdDo6QWNjZXB0PENvbm4gPSBDbGllbnRTdHJlYW1SZXN1bHQsIEVycm9yID0gRXJyb3I+
IHsKKyAgICAgICAgLy8gRklYTUU6IHJlcGxhY2UgcmV0dXJuIHZhbHVlIHdpdGggb3duIHRyYWl0
PyBzZWUgbm93IHJlbW92ZWQgVW5peEFjY2VwdG9yCisgICAgKSAtPiBSZWNlaXZlclN0cmVhbTxS
ZXN1bHQ8Q2xpZW50U3RyZWFtUmVzdWx0LCBFcnJvcj4+IHsKICAgICAgICAgbGV0IChzZWN1cmVf
c2VuZGVyLCBzZWN1cmVfcmVjZWl2ZXIpID0gbXBzYzo6Y2hhbm5lbChzZWxmLm1heF9wZW5kaW5n
X2FjY2VwdHMpOwogCiAgICAgICAgIHRva2lvOjpzcGF3bihzZWxmLmFjY2VwdF9jb25uZWN0aW9u
cyhsaXN0ZW5lciwgYWNjZXB0b3IsIHNlY3VyZV9zZW5kZXIuaW50bygpKSk7CiAKLSAgICAgICAg
YWNjZXB0Ojpmcm9tX3N0cmVhbShSZWNlaXZlclN0cmVhbTo6bmV3KHNlY3VyZV9yZWNlaXZlcikp
CisgICAgICAgIFJlY2VpdmVyU3RyZWFtOjpuZXcoc2VjdXJlX3JlY2VpdmVyKQogICAgIH0KIAog
ICAgIHB1YiBmbiBhY2NlcHRfdGxzX29wdGlvbmFsKApAQCAtMjM5LDggKzIzOSw4IEBAIGltcGwg
QWNjZXB0QnVpbGRlciB7CiAgICAgICAgIGxpc3RlbmVyOiBUY3BMaXN0ZW5lciwKICAgICAgICAg
YWNjZXB0b3I6IEFyYzxNdXRleDxTc2xBY2NlcHRvcj4+LAogICAgICkgLT4gKAotICAgICAgICBp
bXBsIGFjY2VwdDo6QWNjZXB0PENvbm4gPSBDbGllbnRTdHJlYW1SZXN1bHQsIEVycm9yID0gRXJy
b3I+LAotICAgICAgICBpbXBsIGFjY2VwdDo6QWNjZXB0PENvbm4gPSBJbnNlY3VyZUNsaWVudFN0
cmVhbVJlc3VsdCwgRXJyb3IgPSBFcnJvcj4sCisgICAgICAgIFJlY2VpdmVyU3RyZWFtPFJlc3Vs
dDxDbGllbnRTdHJlYW1SZXN1bHQsIEVycm9yPj4sCisgICAgICAgIFJlY2VpdmVyU3RyZWFtPFJl
c3VsdDxJbnNlY3VyZUNsaWVudFN0cmVhbVJlc3VsdCwgRXJyb3I+PiwKICAgICApIHsKICAgICAg
ICAgbGV0IChzZWN1cmVfc2VuZGVyLCBzZWN1cmVfcmVjZWl2ZXIpID0gbXBzYzo6Y2hhbm5lbChz
ZWxmLm1heF9wZW5kaW5nX2FjY2VwdHMpOwogICAgICAgICBsZXQgKGluc2VjdXJlX3NlbmRlciwg
aW5zZWN1cmVfcmVjZWl2ZXIpID0gbXBzYzo6Y2hhbm5lbChzZWxmLm1heF9wZW5kaW5nX2FjY2Vw
dHMpOwpAQCAtMjUyLDggKzI1Miw4IEBAIGltcGwgQWNjZXB0QnVpbGRlciB7CiAgICAgICAgICkp
OwogCiAgICAgICAgICgKLSAgICAgICAgICAgIGFjY2VwdDo6ZnJvbV9zdHJlYW0oUmVjZWl2ZXJT
dHJlYW06Om5ldyhzZWN1cmVfcmVjZWl2ZXIpKSwKLSAgICAgICAgICAgIGFjY2VwdDo6ZnJvbV9z
dHJlYW0oUmVjZWl2ZXJTdHJlYW06Om5ldyhpbnNlY3VyZV9yZWNlaXZlcikpLAorICAgICAgICAg
ICAgUmVjZWl2ZXJTdHJlYW06Om5ldyhzZWN1cmVfcmVjZWl2ZXIpLAorICAgICAgICAgICAgUmVj
ZWl2ZXJTdHJlYW06Om5ldyhpbnNlY3VyZV9yZWNlaXZlciksCiAgICAgICAgICkKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9mb3JtYXR0ZXIucnMgYi9wcm94
bW94LXJlc3Qtc2VydmVyL3NyYy9mb3JtYXR0ZXIucnMKaW5kZXggMzJjYTk5MzYuLjljZTg3MjA1
IDEwMDY0NAotLS0gYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9mb3JtYXR0ZXIucnMKKysrIGIv
cHJveG1veC1yZXN0LXNlcnZlci9zcmMvZm9ybWF0dGVyLnJzCkBAIC01LDEyICs1LDE0IEBAIHVz
ZSBhbnlob3c6OkVycm9yOwogdXNlIHNlcmRlX2pzb246Ontqc29uLCBWYWx1ZX07CiAKIHVzZSBo
eXBlcjo6aGVhZGVyOwotdXNlIGh5cGVyOjp7Qm9keSwgUmVzcG9uc2UsIFN0YXR1c0NvZGV9Owor
dXNlIGh5cGVyOjp7UmVzcG9uc2UsIFN0YXR1c0NvZGV9OwogCit1c2UgcHJveG1veF9odHRwOjpC
b2R5OwogdXNlIHByb3htb3hfcm91dGVyOjp7SHR0cEVycm9yLCBScGNFbnZpcm9ubWVudCwgU2Vy
aWFsaXphYmxlUmV0dXJufTsKIHVzZSBwcm94bW94X3NjaGVtYTo6UGFyYW1ldGVyRXJyb3I7CiAK
IC8vLyBFeHRlbnNpb24gdG8gc2V0IGVycm9yIG1lc3NhZ2UgZm9yIHNlcnZlciBzaWRlIGxvZ2dp
bmcKKyNbZGVyaXZlKENsb25lKV0KIHB1YihjcmF0ZSkgc3RydWN0IEVycm9yTWVzc2FnZUV4dGVu
c2lvbihwdWIgU3RyaW5nKTsKIAogLy8vIE1ldGhvZHMgdG8gZm9ybWF0IGRhdGEgYW5kIGVycm9y
cwpAQCAtMTY4LDExICsxNzAsMTEgQEAgaW1wbCBPdXRwdXRGb3JtYXR0ZXIgZm9yIEpzb25Gb3Jt
YXR0ZXIgewogCiBwdWIoY3JhdGUpIGZuIGVycm9yX3RvX3Jlc3BvbnNlKGVycjogRXJyb3IpIC0+
IFJlc3BvbnNlPEJvZHk+IHsKICAgICBsZXQgbXV0IHJlc3BvbnNlID0gaWYgbGV0IFNvbWUoYXBp
ZXJyKSA9IGVyci5kb3duY2FzdF9yZWY6OjxIdHRwRXJyb3I+KCkgewotICAgICAgICBsZXQgbXV0
IHJlc3AgPSBSZXNwb25zZTo6bmV3KEJvZHk6OmZyb20oYXBpZXJyLm1lc3NhZ2UuY2xvbmUoKSkp
OworICAgICAgICBsZXQgbXV0IHJlc3AgPSBSZXNwb25zZTo6bmV3KGFwaWVyci5tZXNzYWdlLmNs
b25lKCkuaW50bygpKTsKICAgICAgICAgKnJlc3Auc3RhdHVzX211dCgpID0gYXBpZXJyLmNvZGU7
CiAgICAgICAgIHJlc3AKICAgICB9IGVsc2UgewotICAgICAgICBsZXQgbXV0IHJlc3AgPSBSZXNw
b25zZTo6bmV3KEJvZHk6OmZyb20oZXJyLnRvX3N0cmluZygpKSk7CisgICAgICAgIGxldCBtdXQg
cmVzcCA9IFJlc3BvbnNlOjpuZXcoZXJyLnRvX3N0cmluZygpLmludG8oKSk7CiAgICAgICAgICpy
ZXNwLnN0YXR1c19tdXQoKSA9IFN0YXR1c0NvZGU6OkJBRF9SRVFVRVNUOwogICAgICAgICByZXNw
CiAgICAgfTsKZGlmZiAtLWdpdCBhL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2gyc2VydmljZS5y
cyBiL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2gyc2VydmljZS5ycwppbmRleCBkYjZlM2IwYS4u
MTgyNThlMTQgMTAwNjQ0Ci0tLSBhL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2gyc2VydmljZS5y
cworKysgYi9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9oMnNlcnZpY2UucnMKQEAgLTYsOCArNiwx
MCBAQCB1c2Ugc3RkOjpzeW5jOjpBcmM7CiB1c2Ugc3RkOjp0YXNrOjp7Q29udGV4dCwgUG9sbH07
CiAKIHVzZSBmdXR1cmVzOjoqOwotdXNlIGh5cGVyOjp7Qm9keSwgUmVxdWVzdCwgUmVzcG9uc2Us
IFN0YXR1c0NvZGV9OwordXNlIGh5cGVyOjpib2R5OjpJbmNvbWluZzsKK3VzZSBoeXBlcjo6e1Jl
cXVlc3QsIFJlc3BvbnNlLCBTdGF0dXNDb2RlfTsKIAordXNlIHByb3htb3hfaHR0cDo6Qm9keTsK
IHVzZSBwcm94bW94X3JvdXRlcjo6aHR0cF9lcnI7CiB1c2UgcHJveG1veF9yb3V0ZXI6OntBcGlS
ZXNwb25zZUZ1dHVyZSwgSHR0cEVycm9yLCBSb3V0ZXIsIFJwY0Vudmlyb25tZW50fTsKIApAQCAt
MTksNiArMjEsNyBAQCB1c2UgY3JhdGU6Ontub3JtYWxpemVfcGF0aF93aXRoX2NvbXBvbmVudHMs
IFdvcmtlclRhc2t9OwogLy8vIFdlIHVzZSB0aGlzIGtpbmQgb2Ygc2VydmljZSB0byBoYW5kbGUg
YmFja3VwIHByb3RvY29sCiAvLy8gY29ubmVjdGlvbnMuIFN0YXRlIGlzIHN0b3JlZCBpbnNpZGUg
dGhlIGdlbmVyaWMgYGBycGNlbnZgYC4gTG9ncwogLy8vIGdvZXMgaW50byB0aGUgYGBXb3JrZXJU
YXNrYGAgbG9nLgorI1tkZXJpdmUoQ2xvbmUpXQogcHViIHN0cnVjdCBIMlNlcnZpY2U8RT4gewog
ICAgIHJvdXRlcjogJidzdGF0aWMgUm91dGVyLAogICAgIHJwY2VudjogRSwKQEAgLTQyLDcgKzQ1
LDcgQEAgaW1wbDxFOiBScGNFbnZpcm9ubWVudCArIENsb25lPiBIMlNlcnZpY2U8RT4gewogICAg
ICAgICB9CiAgICAgfQogCi0gICAgZm4gaGFuZGxlX3JlcXVlc3QoJnNlbGYsIHJlcTogUmVxdWVz
dDxCb2R5PikgLT4gQXBpUmVzcG9uc2VGdXR1cmUgeworICAgIGZuIGhhbmRsZV9yZXF1ZXN0KCZz
ZWxmLCByZXE6IFJlcXVlc3Q8SW5jb21pbmc+KSAtPiBBcGlSZXNwb25zZUZ1dHVyZSB7CiAgICAg
ICAgIGxldCAocGFydHMsIGJvZHkpID0gcmVxLmludG9fcGFydHMoKTsKIAogICAgICAgICBsZXQg
bWV0aG9kID0gcGFydHMubWV0aG9kLmNsb25lKCk7CkBAIC0xMDMsNyArMTA2LDcgQEAgaW1wbDxF
OiBScGNFbnZpcm9ubWVudCArIENsb25lPiBIMlNlcnZpY2U8RT4gewogICAgIH0KIH0KIAotaW1w
bDxFOiBScGNFbnZpcm9ubWVudCArIENsb25lPiB0b3dlcl9zZXJ2aWNlOjpTZXJ2aWNlPFJlcXVl
c3Q8Qm9keT4+IGZvciBIMlNlcnZpY2U8RT4geworaW1wbDxFOiBScGNFbnZpcm9ubWVudCArIENs
b25lPiB0b3dlcl9zZXJ2aWNlOjpTZXJ2aWNlPFJlcXVlc3Q8SW5jb21pbmc+PiBmb3IgSDJTZXJ2
aWNlPEU+IHsKICAgICB0eXBlIFJlc3BvbnNlID0gUmVzcG9uc2U8Qm9keT47CiAgICAgdHlwZSBF
cnJvciA9IEVycm9yOwogICAgICNbYWxsb3coY2xpcHB5Ojp0eXBlX2NvbXBsZXhpdHkpXQpAQCAt
MTEzLDcgKzExNiw3IEBAIGltcGw8RTogUnBjRW52aXJvbm1lbnQgKyBDbG9uZT4gdG93ZXJfc2Vy
dmljZTo6U2VydmljZTxSZXF1ZXN0PEJvZHk+PiBmb3IgSDJTZXJ2CiAgICAgICAgIFBvbGw6OlJl
YWR5KE9rKCgpKSkKICAgICB9CiAKLSAgICBmbiBjYWxsKCZtdXQgc2VsZiwgcmVxOiBSZXF1ZXN0
PEJvZHk+KSAtPiBTZWxmOjpGdXR1cmUgeworICAgIGZuIGNhbGwoJm11dCBzZWxmLCByZXE6IFJl
cXVlc3Q8SW5jb21pbmc+KSAtPiBTZWxmOjpGdXR1cmUgewogICAgICAgICBsZXQgcGF0aCA9IHJl
cS51cmkoKS5wYXRoKCkudG9fb3duZWQoKTsKICAgICAgICAgbGV0IG1ldGhvZCA9IHJlcS5tZXRo
b2QoKS5jbG9uZSgpOwogICAgICAgICBsZXQgd29ya2VyID0gc2VsZi53b3JrZXIuY2xvbmUoKTsK
QEAgLTEyNiwxNCArMTI5LDE0IEBAIGltcGw8RTogUnBjRW52aXJvbm1lbnQgKyBDbG9uZT4gdG93
ZXJfc2VydmljZTo6U2VydmljZTxSZXF1ZXN0PEJvZHk+PiBmb3IgSDJTZXJ2CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgbGV0IFNvbWUoYXBpZXJyKSA9IGVyci5kb3duY2FzdF9yZWY6OjxIdHRwRXJyb3I+KCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCByZXNwID0gUmVzcG9uc2U6Om5ldyhC
b2R5Ojpmcm9tKGFwaWVyci5tZXNzYWdlLmNsb25lKCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBtdXQgcmVzcCA9IFJlc3BvbnNlOjpuZXcoYXBpZXJyLm1lc3NhZ2UuY2xvbmUoKS5p
bnRvKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5leHRlbnNpb25zX211dCgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluc2VydChFcnJvck1lc3NhZ2VFeHRlbnNpb24o
YXBpZXJyLm1lc3NhZ2UuY2xvbmUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgKnJlc3Au
c3RhdHVzX211dCgpID0gYXBpZXJyLmNvZGU7CiAgICAgICAgICAgICAgICAgICAgICAgICBTZWxm
Ojpsb2dfcmVzcG9uc2Uod29ya2VyLCBtZXRob2QsICZwYXRoLCAmcmVzcCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBPayhyZXNwKQogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCByZXNwID0gUmVzcG9uc2U6Om5ldyhCb2R5Ojpm
cm9tKGVyci50b19zdHJpbmcoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBy
ZXNwID0gUmVzcG9uc2U6Om5ldyhlcnIudG9fc3RyaW5nKCkuaW50bygpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3AuZXh0ZW5zaW9uc19tdXQoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5pbnNlcnQoRXJyb3JNZXNzYWdlRXh0ZW5zaW9uKGVyci50b19zdHJpbmcoKSkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgKnJlc3Auc3RhdHVzX211dCgpID0gU3RhdHVzQ29kZTo6
QkFEX1JFUVVFU1Q7CmRpZmYgLS1naXQgYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9saWIucnMg
Yi9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9saWIucnMKaW5kZXggNDNkYWZhOTEuLjVkZGQzNjY3
IDEwMDY0NAotLS0gYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9saWIucnMKKysrIGIvcHJveG1v
eC1yZXN0LXNlcnZlci9zcmMvbGliLnJzCkBAIC0zNCw3ICszNCw3IEBAIG1vZCBlbnZpcm9ubWVu
dDsKIHB1YiB1c2UgZW52aXJvbm1lbnQ6Oio7CiAKIG1vZCBhcGlfY29uZmlnOwotcHViIHVzZSBh
cGlfY29uZmlnOjp7QXBpQ29uZmlnLCBBdXRoRXJyb3IsIEF1dGhIYW5kbGVyLCBJbmRleEhhbmRs
ZXIsIFVuaXhBY2NlcHRvcn07CitwdWIgdXNlIGFwaV9jb25maWc6OntBcGlDb25maWcsIEF1dGhF
cnJvciwgQXV0aEhhbmRsZXIsIEluZGV4SGFuZGxlcn07CiAKIG1vZCByZXN0OwogcHViIHVzZSBy
ZXN0Ojp7UmVkaXJlY3RvciwgUmVzdFNlcnZlcn07CmRpZmYgLS1naXQgYS9wcm94bW94LXJlc3Qt
c2VydmVyL3NyYy9yZXN0LnJzIGIvcHJveG1veC1yZXN0LXNlcnZlci9zcmMvcmVzdC5ycwppbmRl
eCBmNWE3MjA1Mi4uZjkwMjU5MmQgMTAwNjQ0Ci0tLSBhL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3Jj
L3Jlc3QucnMKKysrIGIvcHJveG1veC1yZXN0LXNlcnZlci9zcmMvcmVzdC5ycwpAQCAtMTAsMTcg
KzEwLDI1IEBAIHVzZSBzdGQ6OnRhc2s6OntDb250ZXh0LCBQb2xsfTsKIHVzZSBhbnlob3c6Onti
YWlsLCBmb3JtYXRfZXJyLCBFcnJvcn07CiB1c2UgZnV0dXJlczo6ZnV0dXJlOjpGdXR1cmVFeHQ7
CiB1c2UgZnV0dXJlczo6c3RyZWFtOjpUcnlTdHJlYW1FeHQ7Ci11c2UgaHlwZXI6OmJvZHk6Okh0
dHBCb2R5OwordXNlIGh0dHBfYm9keV91dGlsOjp7Qm9keURhdGFTdHJlYW0sIEJvZHlTdHJlYW19
OwordXNlIGh5cGVyOjpib2R5Ojp7Qm9keSBhcyBIeXBlckJvZHksIEluY29taW5nfTsKIHVzZSBo
eXBlcjo6aGVhZGVyOjp7c2VsZiwgSGVhZGVyTWFwfTsKIHVzZSBoeXBlcjo6aHR0cDo6cmVxdWVz
dDo6UGFydHM7Ci11c2UgaHlwZXI6OntCb2R5LCBSZXF1ZXN0LCBSZXNwb25zZSwgU3RhdHVzQ29k
ZX07Cit1c2UgaHlwZXI6OntSZXF1ZXN0LCBSZXNwb25zZSwgU3RhdHVzQ29kZX07Cit1c2UgaHlw
ZXJfdXRpbDo6cnQ6OntUb2tpb0V4ZWN1dG9yLCBUb2tpb0lvfTsKK3VzZSBoeXBlcl91dGlsOjpz
ZXJ2ZXI6OmNvbm47Cit1c2UgaHlwZXJfdXRpbDo6c2VydmVyOjpncmFjZWZ1bDo6R3JhY2VmdWxT
aHV0ZG93bjsKK3VzZSBoeXBlcl91dGlsOjpzZXJ2aWNlOjpUb3dlclRvSHlwZXJTZXJ2aWNlOwog
dXNlIHJlZ2V4OjpSZWdleDsKIHVzZSBzZXJkZV9qc29uOjpWYWx1ZTsKIHVzZSB0b2tpbzo6ZnM6
OkZpbGU7Cit1c2UgdG9raW86OmlvOjp7QXN5bmNSZWFkLCBBc3luY1dyaXRlfTsKIHVzZSB0b2tp
bzo6dGltZTo6SW5zdGFudDsKK3VzZSB0b2tpb19zdHJlYW06OndyYXBwZXJzOjpSZWNlaXZlclN0
cmVhbTsKIHVzZSB0b3dlcl9zZXJ2aWNlOjpTZXJ2aWNlOwogdXNlIHVybDo6Zm9ybV91cmxlbmNv
ZGVkOwogCit1c2UgcHJveG1veF9odHRwOjpCb2R5OwogdXNlIHByb3htb3hfcm91dGVyOjp7CiAg
ICAgY2hlY2tfYXBpX3Blcm1pc3Npb24sIEFwaUhhbmRsZXIsIEFwaU1ldGhvZCwgSHR0cEVycm9y
LCBQZXJtaXNzaW9uLCBScGNFbnZpcm9ubWVudCwKICAgICBScGNFbnZpcm9ubWVudFR5cGUsIFVz
ZXJJbmZvcm1hdGlvbiwKQEAgLTQwLDYgKzQ4LDcgQEAgdW5zYWZlIGV4dGVybiAiQyIgewogICAg
IGZuIHR6c2V0KCk7CiB9CiAKKyNbZGVyaXZlKENsb25lKV0KIHN0cnVjdCBBdXRoU3RyaW5nRXh0
ZW5zaW9uKFN0cmluZyk7CiAKIHB1YihjcmF0ZSkgc3RydWN0IEVtcHR5VXNlckluZm9ybWF0aW9u
IHt9CkBAIC03NCwyNCArODMsMTEgQEAgaW1wbCBSZXN0U2VydmVyIHsKICAgICAgICAgICAgIGFw
aV9jb25maWc6IEFyYzo6bmV3KGFwaV9jb25maWcpLAogICAgICAgICB9CiAgICAgfQotfQogCi1p
bXBsPFQ6IFBlZXJBZGRyZXNzPiBTZXJ2aWNlPCZUPiBmb3IgUmVzdFNlcnZlciB7Ci0gICAgdHlw
ZSBSZXNwb25zZSA9IEFwaVNlcnZpY2U7Ci0gICAgdHlwZSBFcnJvciA9IEVycm9yOwotICAgIHR5
cGUgRnV0dXJlID0gc3RkOjpmdXR1cmU6OlJlYWR5PFJlc3VsdDxBcGlTZXJ2aWNlLCBFcnJvcj4+
OwotCi0gICAgZm4gcG9sbF9yZWFkeSgmbXV0IHNlbGYsIF9jeDogJm11dCBDb250ZXh0KSAtPiBQ
b2xsPFJlc3VsdDwoKSwgU2VsZjo6RXJyb3I+PiB7Ci0gICAgICAgIFBvbGw6OlJlYWR5KE9rKCgp
KSkKLSAgICB9Ci0KLSAgICBmbiBjYWxsKCZtdXQgc2VsZiwgY3R4OiAmVCkgLT4gU2VsZjo6RnV0
dXJlIHsKLSAgICAgICAgc3RkOjpmdXR1cmU6OnJlYWR5KG1hdGNoIGN0eC5wZWVyX2FkZHIoKSB7
Ci0gICAgICAgICAgICBFcnIoZXJyKSA9PiBFcnIoZm9ybWF0X2VyciEoInVuYWJsZSB0byBnZXQg
cGVlciBhZGRyZXNzIC0ge30iLCBlcnIpKSwKLSAgICAgICAgICAgIE9rKHBlZXIpID0+IE9rKEFw
aVNlcnZpY2UgewotICAgICAgICAgICAgICAgIHBlZXIsCi0gICAgICAgICAgICAgICAgYXBpX2Nv
bmZpZzogQXJjOjpjbG9uZSgmc2VsZi5hcGlfY29uZmlnKSwKLSAgICAgICAgICAgIH0pLAorICAg
IHB1YiBmbiBhcGlfc2VydmljZSgmc2VsZiwgcGVlcjogJmR5biBQZWVyQWRkcmVzcykgLT4gUmVz
dWx0PEFwaVNlcnZpY2UsIEVycm9yPiB7CisgICAgICAgIE9rKEFwaVNlcnZpY2UgeworICAgICAg
ICAgICAgcGVlcjogcGVlci5wZWVyX2FkZHIoKT8sCisgICAgICAgICAgICBhcGlfY29uZmlnOiBB
cmM6OmNsb25lKCZzZWxmLmFwaV9jb25maWcpLAogICAgICAgICB9KQogICAgIH0KIH0KQEAgLTEw
OCwyNSArMTA0LDQwIEBAIGltcGwgUmVkaXJlY3RvciB7CiAgICAgcHViIGZuIG5ldygpIC0+IFNl
bGYgewogICAgICAgICBTZWxmIHt9CiAgICAgfQotfQogCi1pbXBsPFQ+IFNlcnZpY2U8JlQ+IGZv
ciBSZWRpcmVjdG9yIHsKLSAgICB0eXBlIFJlc3BvbnNlID0gUmVkaXJlY3RTZXJ2aWNlOwotICAg
IHR5cGUgRXJyb3IgPSBFcnJvcjsKLSAgICB0eXBlIEZ1dHVyZSA9IHN0ZDo6ZnV0dXJlOjpSZWFk
eTxSZXN1bHQ8U2VsZjo6UmVzcG9uc2UsIFNlbGY6OkVycm9yPj47Ci0KLSAgICBmbiBwb2xsX3Jl
YWR5KCZtdXQgc2VsZiwgX2N4OiAmbXV0IENvbnRleHQ8J18+KSAtPiBQb2xsPFJlc3VsdDwoKSwg
U2VsZjo6RXJyb3I+PiB7Ci0gICAgICAgIFBvbGw6OlJlYWR5KE9rKCgpKSkKLSAgICB9Ci0KLSAg
ICBmbiBjYWxsKCZtdXQgc2VsZiwgX2N0eDogJlQpIC0+IFNlbGY6OkZ1dHVyZSB7Ci0gICAgICAg
IHN0ZDo6ZnV0dXJlOjpyZWFkeShPayhSZWRpcmVjdFNlcnZpY2Uge30pKQorICAgIHB1YiBmbiBy
ZWRpcmVjdF9zZXJ2aWNlKCZzZWxmKSAtPiBSZWRpcmVjdFNlcnZpY2UgeworICAgICAgICBSZWRp
cmVjdFNlcnZpY2Uge30KICAgICB9CiB9CiAKKyNbZGVyaXZlKENsb25lKV0KIHB1YiBzdHJ1Y3Qg
UmVkaXJlY3RTZXJ2aWNlOwogCi1pbXBsIFNlcnZpY2U8UmVxdWVzdDxCb2R5Pj4gZm9yIFJlZGly
ZWN0U2VydmljZSB7CitpbXBsIFJlZGlyZWN0U2VydmljZSB7CisgICAgcHViIGFzeW5jIGZuIHNl
cnZlPFM+KAorICAgICAgICBzZWxmLAorICAgICAgICBjb25uOiBTLAorICAgICAgICBtdXQgZ3Jh
Y2VmdWw6IE9wdGlvbjxBcmM8R3JhY2VmdWxTaHV0ZG93bj4+LAorICAgICkgLT4gUmVzdWx0PCgp
LCBFcnJvcj4KKyAgICB3aGVyZQorICAgICAgICBTOiBBc3luY1JlYWQgKyBBc3luY1dyaXRlICsg
VW5waW4gKyBTZW5kICsgJ3N0YXRpYywKKyAgICB7CisgICAgICAgIGxldCBhcGlfc2VydmljZSA9
IFRvd2VyVG9IeXBlclNlcnZpY2U6Om5ldyhzZWxmKTsKKyAgICAgICAgbGV0IGlvID0gVG9raW9J
bzo6bmV3KGNvbm4pOworICAgICAgICBsZXQgYXBpX2Nvbm4gPSBjb25uOjphdXRvOjpCdWlsZGVy
OjpuZXcoVG9raW9FeGVjdXRvcjo6bmV3KCkpOworICAgICAgICBsZXQgYXBpX2Nvbm4gPSBhcGlf
Y29ubi5zZXJ2ZV9jb25uZWN0aW9uX3dpdGhfdXBncmFkZXMoaW8sIGFwaV9zZXJ2aWNlKTsKKyAg
ICAgICAgaWYgbGV0IFNvbWUoZ3JhY2VmdWwpID0gZ3JhY2VmdWwudGFrZSgpIHsKKyAgICAgICAg
ICAgIGxldCBhcGlfY29ubiA9IGdyYWNlZnVsLndhdGNoKGFwaV9jb25uKTsKKyAgICAgICAgICAg
IGRyb3AoZ3JhY2VmdWwpOworICAgICAgICAgICAgYXBpX2Nvbm4uYXdhaXQKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGFwaV9jb25uLmF3YWl0CisgICAgICAgIH0KKyAgICAgICAgLm1h
cF9lcnIofGVycnwgZm9ybWF0X2VyciEoImVycm9yIHNlcnZpbmcgcmVkaXJlY3QgY29ubmVjdGlv
bjoge2Vycn0iKSkKKyAgICB9Cit9CisKK2ltcGwgU2VydmljZTxSZXF1ZXN0PEluY29taW5nPj4g
Zm9yIFJlZGlyZWN0U2VydmljZSB7CiAgICAgdHlwZSBSZXNwb25zZSA9IFJlc3BvbnNlPEJvZHk+
OwogICAgIHR5cGUgRXJyb3IgPSBhbnlob3c6OkVycm9yOwogICAgIHR5cGUgRnV0dXJlID0gUGlu
PEJveDxkeW4gRnV0dXJlPE91dHB1dCA9IFJlc3VsdDxTZWxmOjpSZXNwb25zZSwgU2VsZjo6RXJy
b3I+PiArIFNlbmQ+PjsKQEAgLTEzNSw3ICsxNDYsNyBAQCBpbXBsIFNlcnZpY2U8UmVxdWVzdDxC
b2R5Pj4gZm9yIFJlZGlyZWN0U2VydmljZSB7CiAgICAgICAgIFBvbGw6OlJlYWR5KE9rKCgpKSkK
ICAgICB9CiAKLSAgICBmbiBjYWxsKCZtdXQgc2VsZiwgcmVxOiBSZXF1ZXN0PEJvZHk+KSAtPiBT
ZWxmOjpGdXR1cmUgeworICAgIGZuIGNhbGwoJm11dCBzZWxmLCByZXE6IFJlcXVlc3Q8SW5jb21p
bmc+KSAtPiBTZWxmOjpGdXR1cmUgewogICAgICAgICBsZXQgZnV0dXJlID0gYXN5bmMgbW92ZSB7
CiAgICAgICAgICAgICBsZXQgaGVhZGVyX2hvc3RfdmFsdWUgPSByZXEKICAgICAgICAgICAgICAg
ICAuaGVhZGVycygpCkBAIC0xOTQsMTIgKzIwNSw2IEBAIGltcGwgUGVlckFkZHJlc3MgZm9yIHRv
a2lvOjpuZXQ6OlRjcFN0cmVhbSB7CiAgICAgfQogfQogCi1pbXBsIFBlZXJBZGRyZXNzIGZvciBo
eXBlcjo6c2VydmVyOjpjb25uOjpBZGRyU3RyZWFtIHsKLSAgICBmbiBwZWVyX2FkZHIoJnNlbGYp
IC0+IFJlc3VsdDxzdGQ6Om5ldDo6U29ja2V0QWRkciwgRXJyb3I+IHsKLSAgICAgICAgT2soc2Vs
Zi5yZW1vdGVfYWRkcigpKQotICAgIH0KLX0KLQogaW1wbCBQZWVyQWRkcmVzcyBmb3IgdG9raW86
Om5ldDo6VW5peFN0cmVhbSB7CiAgICAgZm4gcGVlcl9hZGRyKCZzZWxmKSAtPiBSZXN1bHQ8c3Rk
OjpuZXQ6OlNvY2tldEFkZHIsIEVycm9yPiB7CiAgICAgICAgIC8vIFRPRE86IEZpbmQgYSB3YXkg
dG8gYWN0dWFsbHkgcmVwcmVzZW50IHRoZSB2c29jayBwZWVyIGluIHRoZSBBcGlTZXJ2aWNlIHN0
cnVjdCAtIGZvciBub3cKQEAgLTIyMywxMSArMjI4LDM2IEBAIGltcGw8VDogUGVlckFkZHJlc3M+
IFBlZXJBZGRyZXNzIGZvciBwcm94bW94X2h0dHA6OlJhdGVMaW1pdGVkU3RyZWFtPFQ+IHsKIC8v
IFJ1c3Qgd2FudHMgdGhpcyB0eXBlICdwdWInIGhlcmUgKGVsc2Ugd2UgZ2V0ICdwcml2YXRlIHR5
cGUgYEFwaVNlcnZpY2VgCiAvLyBpbiBwdWJsaWMgaW50ZXJmYWNlJykuIFRoZSB0eXBlIGlzIHN0
aWxsIHByaXZhdGUgYmVjYXVzZSB0aGUgY3JhdGUgZG9lcwogLy8gbm90IGV4cG9ydCBpdC4KKyNb
ZGVyaXZlKENsb25lKV0KIHB1YiBzdHJ1Y3QgQXBpU2VydmljZSB7CiAgICAgcHViIHBlZXI6IHN0
ZDo6bmV0OjpTb2NrZXRBZGRyLAogICAgIHB1YiBhcGlfY29uZmlnOiBBcmM8QXBpQ29uZmlnPiwK
IH0KIAoraW1wbCBBcGlTZXJ2aWNlIHsKKyAgICBwdWIgYXN5bmMgZm4gc2VydmU8Uz4oCisgICAg
ICAgIHNlbGYsCisgICAgICAgIGNvbm46IFMsCisgICAgICAgIG11dCBncmFjZWZ1bDogT3B0aW9u
PEFyYzxHcmFjZWZ1bFNodXRkb3duPj4sCisgICAgKSAtPiBSZXN1bHQ8KCksIEVycm9yPgorICAg
IHdoZXJlCisgICAgICAgIFM6IEFzeW5jUmVhZCArIEFzeW5jV3JpdGUgKyBVbnBpbiArIFNlbmQg
KyAnc3RhdGljLAorICAgIHsKKyAgICAgICAgbGV0IGFwaV9zZXJ2aWNlID0gVG93ZXJUb0h5cGVy
U2VydmljZTo6bmV3KHNlbGYpOworICAgICAgICBsZXQgaW8gPSBUb2tpb0lvOjpuZXcoY29ubik7
CisgICAgICAgIGxldCBhcGlfY29ubiA9IGNvbm46OmF1dG86OkJ1aWxkZXI6Om5ldyhUb2tpb0V4
ZWN1dG9yOjpuZXcoKSk7CisgICAgICAgIGxldCBhcGlfY29ubiA9IGFwaV9jb25uLnNlcnZlX2Nv
bm5lY3Rpb25fd2l0aF91cGdyYWRlcyhpbywgYXBpX3NlcnZpY2UpOworICAgICAgICBpZiBsZXQg
U29tZShncmFjZWZ1bCkgPSBncmFjZWZ1bC50YWtlKCkgeworICAgICAgICAgICAgbGV0IGFwaV9j
b25uID0gZ3JhY2VmdWwud2F0Y2goYXBpX2Nvbm4pOworICAgICAgICAgICAgZHJvcChncmFjZWZ1
bCk7CisgICAgICAgICAgICBhcGlfY29ubi5hd2FpdAorICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgYXBpX2Nvbm4uYXdhaXQKKyAgICAgICAgfQorICAgICAgICAubWFwX2Vycih8ZXJyfCBm
b3JtYXRfZXJyISgiZXJyb3Igc2VydmluZyBjb25uZWN0aW9uOiB7ZXJyfSIpKQorICAgIH0KK30K
KwogZm4gbG9nX3Jlc3BvbnNlKAogICAgIGxvZ2ZpbGU6IE9wdGlvbjwmQXJjPE11dGV4PEZpbGVM
b2dnZXI+Pj4sCiAgICAgcGVlcjogJnN0ZDo6bmV0OjpTb2NrZXRBZGRyLApAQCAtMzA3LDcgKzMz
Nyw3IEBAIGZuIGdldF91c2VyX2FnZW50KGhlYWRlcnM6ICZIZWFkZXJNYXApIC0+IE9wdGlvbjxT
dHJpbmc+IHsKICAgICAgICAgLm9rKCkKIH0KIAotaW1wbCBTZXJ2aWNlPFJlcXVlc3Q8Qm9keT4+
IGZvciBBcGlTZXJ2aWNlIHsKK2ltcGwgU2VydmljZTxSZXF1ZXN0PEluY29taW5nPj4gZm9yIEFw
aVNlcnZpY2UgewogICAgIHR5cGUgUmVzcG9uc2UgPSBSZXNwb25zZTxCb2R5PjsKICAgICB0eXBl
IEVycm9yID0gRXJyb3I7CiAgICAgI1thbGxvdyhjbGlwcHk6OnR5cGVfY29tcGxleGl0eSldCkBA
IC0zMTcsNyArMzQ3LDcgQEAgaW1wbCBTZXJ2aWNlPFJlcXVlc3Q8Qm9keT4+IGZvciBBcGlTZXJ2
aWNlIHsKICAgICAgICAgUG9sbDo6UmVhZHkoT2soKCkpKQogICAgIH0KIAotICAgIGZuIGNhbGwo
Jm11dCBzZWxmLCByZXE6IFJlcXVlc3Q8Qm9keT4pIC0+IFNlbGY6OkZ1dHVyZSB7CisgICAgZm4g
Y2FsbCgmbXV0IHNlbGYsIHJlcTogUmVxdWVzdDxJbmNvbWluZz4pIC0+IFNlbGY6OkZ1dHVyZSB7
CiAgICAgICAgIGxldCBwYXRoID0gcmVxLnVyaSgpLnBhdGhfYW5kX3F1ZXJ5KCkudW53cmFwKCku
YXNfc3RyKCkudG9fb3duZWQoKTsKICAgICAgICAgbGV0IG1ldGhvZCA9IHJlcS5tZXRob2QoKS5j
bG9uZSgpOwogICAgICAgICBsZXQgdXNlcl9hZ2VudCA9IGdldF91c2VyX2FnZW50KHJlcS5oZWFk
ZXJzKCkpOwpAQCAtMzg0LDcgKzQxNCw3IEBAIGZuIHBhcnNlX3F1ZXJ5X3BhcmFtZXRlcnM8Uzog
J3N0YXRpYyArIEJ1aWxkSGFzaGVyICsgU2VuZD4oCiBhc3luYyBmbiBnZXRfcmVxdWVzdF9wYXJh
bWV0ZXJzPFM6ICdzdGF0aWMgKyBCdWlsZEhhc2hlciArIFNlbmQ+KAogICAgIHBhcmFtX3NjaGVt
YTogUGFyYW1ldGVyU2NoZW1hLAogICAgIHBhcnRzOiAmUGFydHMsCi0gICAgcmVxX2JvZHk6IEJv
ZHksCisgICAgcmVxX2JvZHk6IEluY29taW5nLAogICAgIHVyaV9wYXJhbTogSGFzaE1hcDxTdHJp
bmcsIFN0cmluZywgUz4sCiApIC0+IFJlc3VsdDxWYWx1ZSwgRXJyb3I+IHsKICAgICBsZXQgbXV0
IGlzX2pzb24gPSBmYWxzZTsKQEAgLTQwMSwxMyArNDMxLDE3IEBAIGFzeW5jIGZuIGdldF9yZXF1
ZXN0X3BhcmFtZXRlcnM8UzogJ3N0YXRpYyArIEJ1aWxkSGFzaGVyICsgU2VuZD4oCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBsZXQgYm9keSA9IFRyeVN0cmVhbUV4dDo6bWFwX2VycihyZXFfYm9k
eSwgfGVycnwgeworICAgIGxldCBzdHJlYW1fYm9keSA9IEJvZHlTdHJlYW06Om5ldyhyZXFfYm9k
eSk7CisgICAgbGV0IGJvZHkgPSBUcnlTdHJlYW1FeHQ6Om1hcF9lcnIoc3RyZWFtX2JvZHksIHxl
cnJ8IHsKICAgICAgICAgaHR0cF9lcnIhKEJBRF9SRVFVRVNULCAiUHJvYmxlbXMgcmVhZGluZyBy
ZXF1ZXN0IGJvZHk6IHt9IiwgZXJyKQogICAgIH0pCi0gICAgLnRyeV9mb2xkKFZlYzo6bmV3KCks
IHxtdXQgYWNjLCBjaHVua3wgYXN5bmMgbW92ZSB7CisgICAgLnRyeV9mb2xkKFZlYzo6bmV3KCks
IHxtdXQgYWNjLCBmcmFtZXwgYXN5bmMgbW92ZSB7CiAgICAgICAgIC8vIEZJWE1FOiBtYXggcmVx
dWVzdCBib2R5IHNpemU/Ci0gICAgICAgIGlmIGFjYy5sZW4oKSArIGNodW5rLmxlbigpIDwgNjQg
KiAxMDI0IHsKLSAgICAgICAgICAgIGFjYy5leHRlbmRfZnJvbV9zbGljZSgmY2h1bmspOworICAg
ICAgICBsZXQgZnJhbWUgPSBmcmFtZQorICAgICAgICAgICAgLmludG9fZGF0YSgpCisgICAgICAg
ICAgICAubWFwX2Vycih8ZXJyfCBmb3JtYXRfZXJyISgiRmFpbGVkIHRvIHJlYWQgcmVxdWVzdCBi
b2R5IGZyYW1lIC0ge2Vycjo/fSIpKT87CisgICAgICAgIGlmIGFjYy5sZW4oKSArIGZyYW1lLmxl
bigpIDwgNjQgKiAxMDI0IHsKKyAgICAgICAgICAgIGFjYy5leHRlbmRfZnJvbV9zbGljZSgmZnJh
bWUpOwogICAgICAgICAgICAgT2soYWNjKQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
RXJyKGh0dHBfZXJyIShCQURfUkVRVUVTVCwgIlJlcXVlc3QgYm9keSB0b28gbGFyZ2UiKSkKQEAg
LTQzNywxMyArNDcxLDE0IEBAIGFzeW5jIGZuIGdldF9yZXF1ZXN0X3BhcmFtZXRlcnM8UzogJ3N0
YXRpYyArIEJ1aWxkSGFzaGVyICsgU2VuZD4oCiAgICAgfQogfQogCisjW2Rlcml2ZShDbG9uZSld
CiBzdHJ1Y3QgTm9Mb2dFeHRlbnNpb24oKTsKIAogYXN5bmMgZm4gcHJveHlfcHJvdGVjdGVkX3Jl
cXVlc3QoCiAgICAgY29uZmlnOiAmQXBpQ29uZmlnLAogICAgIGluZm86ICZBcGlNZXRob2QsCiAg
ICAgbXV0IHBhcnRzOiBQYXJ0cywKLSAgICByZXFfYm9keTogQm9keSwKKyAgICByZXFfYm9keTog
SW5jb21pbmcsCiAgICAgcGVlcjogJnN0ZDo6bmV0OjpTb2NrZXRBZGRyLAogKSAtPiBSZXN1bHQ8
UmVzcG9uc2U8Qm9keT4sIEVycm9yPiB7CiAgICAgbGV0IG11dCB1cmlfcGFydHMgPSBwYXJ0cy51
cmkuY2xvbmUoKS5pbnRvX3BhcnRzKCk7CkBAIC00NjMsOSArNDk4LDE0IEBAIGFzeW5jIGZuIHBy
b3h5X3Byb3RlY3RlZF9yZXF1ZXN0KAogICAgIGxldCByZWxvYWRfdGltZXpvbmUgPSBpbmZvLnJl
bG9hZF90aW1lem9uZTsKIAogICAgIGxldCBtdXQgcmVzcCA9IG1hdGNoIGNvbmZpZy5wcml2aWxl
Z2VkX2FkZHIuY2xvbmUoKSB7Ci0gICAgICAgIE5vbmUgPT4gaHlwZXI6OmNsaWVudDo6Q2xpZW50
OjpuZXcoKS5yZXF1ZXN0KHJlcXVlc3QpLmF3YWl0PywKKyAgICAgICAgTm9uZSA9PiB7CisgICAg
ICAgICAgICBoeXBlcl91dGlsOjpjbGllbnQ6OmxlZ2FjeTo6Q2xpZW50OjpidWlsZGVyKFRva2lv
RXhlY3V0b3I6Om5ldygpKQorICAgICAgICAgICAgICAgIC5idWlsZF9odHRwKCkKKyAgICAgICAg
ICAgICAgICAucmVxdWVzdChyZXF1ZXN0KQorICAgICAgICAgICAgICAgIC5hd2FpdD8KKyAgICAg
ICAgfQogICAgICAgICBTb21lKGFkZHIpID0+IHsKLSAgICAgICAgICAgIGh5cGVyOjpjbGllbnQ6
OkNsaWVudDo6YnVpbGRlcigpCisgICAgICAgICAgICBoeXBlcl91dGlsOjpjbGllbnQ6OmxlZ2Fj
eTo6Q2xpZW50OjpidWlsZGVyKFRva2lvRXhlY3V0b3I6Om5ldygpKQogICAgICAgICAgICAgICAg
IC5idWlsZChhZGRyKQogICAgICAgICAgICAgICAgIC5yZXF1ZXN0KHJlcXVlc3QpCiAgICAgICAg
ICAgICAgICAgLmF3YWl0PwpAQCAtNDc5LDcgKzUxOSw3IEBAIGFzeW5jIGZuIHByb3h5X3Byb3Rl
Y3RlZF9yZXF1ZXN0KAogICAgICAgICB9CiAgICAgfQogCi0gICAgT2socmVzcCkKKyAgICBPayhy
ZXNwLm1hcCh8YnwgQm9keTo6d3JhcF9zdHJlYW0oQm9keURhdGFTdHJlYW06Om5ldyhiKSkpKQog
fQogCiBmbiBkZWxheV91bmF1dGhfdGltZSgpIC0+IHN0ZDo6dGltZTo6SW5zdGFudCB7CkBAIC00
OTEsMjIgKzUzMSwyMyBAQCBmbiBhY2Nlc3NfZm9yYmlkZGVuX3RpbWUoKSAtPiBzdGQ6OnRpbWU6
Okluc3RhbnQgewogfQogCiBmbiBoYW5kbGVfc3RyZWFtX2FzX2pzb25fc2VxKHN0cmVhbTogcHJv
eG1veF9yb3V0ZXI6OlN0cmVhbSkgLT4gUmVzdWx0PFJlc3BvbnNlPEJvZHk+LCBFcnJvcj4gewot
ICAgIGxldCAobXV0IHNlbmQsIGJvZHkpID0gaHlwZXI6OkJvZHk6OmNoYW5uZWwoKTsKKyAgICBs
ZXQgKHNlbmQsIGJvZHkpID0gdG9raW86OnN5bmM6Om1wc2M6OmNoYW5uZWw6OjxSZXN1bHQ8VmVj
PHU4PiwgRXJyb3I+PigxKTsKICAgICB0b2tpbzo6c3Bhd24oYXN5bmMgbW92ZSB7CiAgICAgICAg
IHVzZSBmdXR1cmVzOjpTdHJlYW1FeHQ7CiAKICAgICAgICAgbGV0IG11dCBzdHJlYW0gPSBzdHJl
YW0uaW50b19pbm5lcigpOwogICAgICAgICB3aGlsZSBsZXQgU29tZShyZWNvcmQpID0gc3RyZWFt
Lm5leHQoKS5hd2FpdCB7Ci0gICAgICAgICAgICBpZiBzZW5kLnNlbmRfZGF0YShyZWNvcmQudG9f
Ynl0ZXMoKS5pbnRvKCkpLmF3YWl0LmlzX2VycigpIHsKKyAgICAgICAgICAgIGlmIHNlbmQuc2Vu
ZChPayhyZWNvcmQudG9fYnl0ZXMoKSkpLmF3YWl0LmlzX2VycigpIHsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0pOwogCi0gICAgT2soUmVz
cG9uc2U6OmJ1aWxkZXIoKQorICAgIFJlc3BvbnNlOjpidWlsZGVyKCkKICAgICAgICAgLnN0YXR1
cyhodHRwOjpTdGF0dXNDb2RlOjpPSykKICAgICAgICAgLmhlYWRlcihodHRwOjpoZWFkZXI6OkNP
TlRFTlRfVFlQRSwgImFwcGxpY2F0aW9uL2pzb24tc2VxIikKLSAgICAgICAgLmJvZHkoYm9keSk/
KQorICAgICAgICAuYm9keShCb2R5Ojp3cmFwX3N0cmVhbShSZWNlaXZlclN0cmVhbTo6bmV3KGJv
ZHkpKSkKKyAgICAgICAgLm1hcF9lcnIoRXJyb3I6OmZyb20pCiB9CiAKIGZuIGhhbmRsZV9zeW5j
X3N0cmVhbV9hc19qc29uX3NlcSgKQEAgLTUyNyw3ICs1NjgsNyBAQCBwdWIoY3JhdGUpIGFzeW5j
IGZuIGhhbmRsZV9hcGlfcmVxdWVzdDxFbnY6IFJwY0Vudmlyb25tZW50LCBTOiAnc3RhdGljICsg
QnVpbGRIYQogICAgIGluZm86ICYnc3RhdGljIEFwaU1ldGhvZCwKICAgICBmb3JtYXR0ZXI6IE9w
dGlvbjwmJ3N0YXRpYyBkeW4gT3V0cHV0Rm9ybWF0dGVyPiwKICAgICBwYXJ0czogUGFydHMsCi0g
ICAgcmVxX2JvZHk6IEJvZHksCisgICAgcmVxX2JvZHk6IEluY29taW5nLAogICAgIHVyaV9wYXJh
bTogSGFzaE1hcDxTdHJpbmcsIFN0cmluZywgUz4sCiApIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5
PiwgRXJyb3I+IHsKICAgICBsZXQgZm9ybWF0dGVyID0gZm9ybWF0dGVyLnVud3JhcF9vcihjcmF0
ZTo6Zm9ybWF0dGVyOjpESVJFQ1RfSlNPTl9GT1JNQVRURVIpOwpAQCAtNjMwLDkgKzY3MSwxMCBA
QCBwdWIoY3JhdGUpIGFzeW5jIGZuIGhhbmRsZV9hcGlfcmVxdWVzdDxFbnY6IFJwY0Vudmlyb25t
ZW50LCBTOiAnc3RhdGljICsgQnVpbGRIYQogICAgICAgICAgICAgKTsKICAgICAgICAgICAgIHJl
c3AubWFwKHxib2R5fCB7CiAgICAgICAgICAgICAgICAgQm9keTo6d3JhcF9zdHJlYW0oCi0gICAg
ICAgICAgICAgICAgICAgIERlZmxhdGVFbmNvZGVyOjpidWlsZGVyKFRyeVN0cmVhbUV4dDo6bWFw
X2Vycihib2R5LCB8ZXJyfCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcm94bW94X2xhbmc6
OmlvX2Zvcm1hdF9lcnIhKCJlcnJvciBkdXJpbmcgY29tcHJlc3Npb246IHt9IiwgZXJyKQotICAg
ICAgICAgICAgICAgICAgICB9KSkKKyAgICAgICAgICAgICAgICAgICAgRGVmbGF0ZUVuY29kZXI6
OmJ1aWxkZXIoVHJ5U3RyZWFtRXh0OjptYXBfZXJyKAorICAgICAgICAgICAgICAgICAgICAgICAg
Qm9keURhdGFTdHJlYW06Om5ldyhib2R5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHxlcnJ8
IHByb3htb3hfbGFuZzo6aW9fZm9ybWF0X2VyciEoImVycm9yIGR1cmluZyBjb21wcmVzc2lvbjog
e30iLCBlcnIpLAorICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAu
emxpYih0cnVlKQogICAgICAgICAgICAgICAgICAgICAuZmx1c2hfd2luZG93KGlzX3N0cmVhbWlu
Zy50aGVuX3NvbWUoNjQgKiAxMDI0KSkKICAgICAgICAgICAgICAgICAgICAgLmJ1aWxkKCksCkBA
IC03OTYsNyArODM4LDcgQEAgZm4gZXh0cmFjdF9jb21wcmVzc2lvbl9tZXRob2QoaGVhZGVyczog
Jmh0dHA6OkhlYWRlck1hcCkgLT4gT3B0aW9uPENvbXByZXNzaW9uTWUKIGltcGwgQXBpQ29uZmln
IHsKICAgICBwdWIgYXN5bmMgZm4gaGFuZGxlX3JlcXVlc3QoCiAgICAgICAgIHNlbGY6IEFyYzxB
cGlDb25maWc+LAotICAgICAgICByZXE6IFJlcXVlc3Q8Qm9keT4sCisgICAgICAgIHJlcTogUmVx
dWVzdDxJbmNvbWluZz4sCiAgICAgICAgIHBlZXI6ICZzdGQ6Om5ldDo6U29ja2V0QWRkciwKICAg
ICApIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKICAgICAgICAgbGV0IChwYXJ0
cywgYm9keSkgPSByZXEuaW50b19wYXJ0cygpOwpAQCAtODA4LDcgKzg1MCw3IEBAIGltcGwgQXBp
Q29uZmlnIHsKICAgICAgICAgaWYgcGF0aC5sZW4oKSArIHF1ZXJ5LmxlbigpID4gTUFYX1VSSV9R
VUVSWV9MRU5HVEggewogICAgICAgICAgICAgcmV0dXJuIE9rKFJlc3BvbnNlOjpidWlsZGVyKCkK
ICAgICAgICAgICAgICAgICAuc3RhdHVzKFN0YXR1c0NvZGU6OlVSSV9UT09fTE9ORykKLSAgICAg
ICAgICAgICAgICAuYm9keSgiIi5pbnRvKCkpCisgICAgICAgICAgICAgICAgLmJvZHkoQm9keTo6
ZW1wdHkoKSkKICAgICAgICAgICAgICAgICAudW53cmFwKCkpOwogICAgICAgICB9CiAKQEAgLTkw
Nyw3ICs5NDksNyBAQCBpbXBsIEFjdGlvbiB7CiAKIHB1YiBzdHJ1Y3QgQXBpUmVxdWVzdERhdGE8
J2E+IHsKICAgICBwYXJ0czogUGFydHMsCi0gICAgYm9keTogQm9keSwKKyAgICBib2R5OiBJbmNv
bWluZywKICAgICBwZWVyOiAmJ2Egc3RkOjpuZXQ6OlNvY2tldEFkZHIsCiAgICAgY29uZmlnOiAm
J2EgQXBpQ29uZmlnLAogICAgIGZ1bGxfcGF0aDogJidhIHN0ciwKLS0gCjIuMzkuNQoKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFp
bGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3ht
b3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK