From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-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 0E0701FF396
	for <inbox@lore.proxmox.com>; Thu, 23 May 2024 12:40:31 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 965AF1DAEC;
	Thu, 23 May 2024 12:40:48 +0200 (CEST)
Message-ID: <dcdf671f-7e95-443a-a417-d087c4f2c0b1@proxmox.com>
Date: Thu, 23 May 2024 12:40:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird Beta
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
 =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
References: <20240429112124.3819357-1-d.csapak@proxmox.com>
 <20240429112124.3819357-4-d.csapak@proxmox.com>
 <1716368203.2z0b0jtzn8.astroid@yuna.none>
Content-Language: en-US
From: Dominik Csapak <d.csapak@proxmox.com>
In-Reply-To: <1716368203.2z0b0jtzn8.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.384 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_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible
 spam tricks
 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
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [proxmox.com, storage.pm, dmtf.org, guestimport.pm, diskmanage.pm,
 cephconfig.pm, ovf.pm, status.pm, plugin.pm, dirplugin.pm]
Subject: Re: [pve-devel] [PATCH storage v3 03/10] plugin: dir: handle ova
 files for import
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

T24gNS8yMi8yNCAxMjowOCwgRmFiaWFuIEdyw7xuYmljaGxlciB3cm90ZToKPiBPbiBBcHJpbCAy
OSwgMjAyNCAxOjIxIHBtLCBEb21pbmlrIENzYXBhayB3cm90ZToKPj4gc2luY2Ugd2Ugd2FudCB0
byBoYW5kbGUgb3ZhIGZpbGVzICh3aGljaCBhcmUgb25seSBvdmYraW1hZ2VzIGJ1bmRsZWQgaW4K
Pj4gYSB0YXIgZmlsZSkgZm9yIGltcG9ydCwgYWRkIGNvZGUgdGhhdCBoYW5kbGVzIHRoYXQuCj4+
Cj4+IHdlIGludHJvZHVjZSBhIHZhbGlkIHZvbG5hbWUgZm9yIGZpbGVzIGNvbnRhaW5lZCBpbiBv
dmFzIGxpa2UgdGhpczoKPj4KPj4gICBzdG9yYWdlOmltcG9ydC9hcmNoaXZlLm92YS9kaXNrLTEu
dm1kawo+Pgo+PiBieSBiYXNpY2FsbHkgdHJlYXRpbmcgdGhlIGxhc3QgcGFydCBvZiB0aGUgcGF0
aCBhcyB0aGUgbmFtZSBmb3IgdGhlCj4+IGNvbnRhaW5lZCBkaXNrIHdlIHdhbnQuCj4+Cj4+IGlu
IHRoYXQgY2FzZSB3ZSByZXR1cm4gJ2ltcG9ydCcgYXMgdHlwZSB3aXRoICd2bWRrL3Fjb3cyL3Jh
dycgYXMgZm9ybWF0Cj4+ICh3ZSBjYW5ub3QgdXNlIHNvbWV0aGluZyBsaWtlICdvdmErdm1kaycg
d2l0aG91dCBleHRlbmRpbmcgdGhlICdmb3JtYXQnCj4+IHBhcnNpbmcgdG8gdGhhdCBmb3IgYWxs
IHN0b3JhZ2VzL2Zvcm1hdHMuIFRoaXMgaXMgYmVjYXVzZSBpdCBydW5zCj4+IHRob3VnaCBhIHZl
cmlmeSBmb3JtYXQgY2hlY2sgYXQgbGVhc3Qgb25jZSkKPj4KPj4gd2UgdGhlbiBwcm92aWRlIDMg
ZnVuY3Rpb25zIHRvIHVzZSBmb3IgdGhhdDoKPj4KPj4gKiBjb3B5X25lZWRzX2V4dHJhY3Rpb246
IGRldGVybWluZXMgZnJvbSB0aGUgZ2l2ZW4gdm9saWQgKGxpa2UgYWJvdmUpIGlmCj4+ICAgIHRo
YXQgbmVlZHMgZXh0cmFjdGlvbiB0byBjb3B5IGl0LCBjdXJyZW50bHkgb25seSAnaW1wb3J0JyB2
dHlwZSArIGEKPj4gICAgdm9saWQgd2l0aCB0aGUgYWJvdmUgZm9ybWF0IHJldHVybnMgdHJ1ZQo+
Pgo+PiAqIGV4dHJhY3RfZGlza19mcm9tX2ltcG9ydF9maWxlOiB0aGlzIGFjdHVhbGx5IGV4dHJh
Y3RzIHRoZSBmaWxlIGZyb20KPj4gICAgdGhlIGFyY2hpdmUuIEN1cnJlbnRseSBvbmx5IG92YSBp
cyBzdXBwb3J0ZWQsIHNvIHRoZSBleHRyYWN0aW9uIHdpdGgKPj4gICAgJ3RhcicgaXMgaGFyZGNv
ZGVkLCBidXQgYWdhaW4gd2UgY2FuIGVhc2lseSBleHRlbmQvbW9kaWZ5IHRoYXQgc2hvdWxkCj4+
ICAgIHdlIG5lZWQgdG8uCj4+Cj4+ICAgIHdlIGN1cnJlbnRseSBleHRyYWN0IGludG8gdGhlIGVp
dGhlciB0aGUgaW1wb3J0IHN0b3JhZ2Ugb3IgYSBnaXZlbgo+PiAgICB0YXJnZXQgc3RvcmFnZSBp
biB0aGUgaW1hZ2VzIGRpcmVjdG9yeSBzbyBpZiB0aGUgY2xlYW51cCBkb2VzIG5vdAo+PiAgICBo
YXBwZW4sIHRoZSB1c2VyIGNhbiBzdGlsbCBzZWUgYW5kIGludGVyYWN0IHdpdGggdGhlIGltYWdl
IHZpYQo+PiAgICBhcGkvY2xpL2d1aQo+Pgo+PiAqIGNsZWFudXBfZXh0cmFjdGVkX2ltYWdlOiBp
bnRlbmRlZCB0byBjbGVhbnVwIHRoZSBleHRyYWN0ZWQgaW1hZ2VzIGZyb20KPj4gICAgYWJvdmUK
Pj4KPj4gd2UgaGF2ZSB0byBtb2RpZnkgdGhlIGBwYXJzZV9vdmZgIGEgYml0IHRvIGhhbmRsZSB0
aGUgbWlzc2luZyBkaXNrCj4+IGltYWdlcywgYW5kIHdlIHBhcnNlIHRoZSBzaXplIG91dCBvZiB0
aGUgb3ZmIHBhcnQgKHNpbmNlIHRoaXMgaXMKPj4gaW5mb3JtYWwgb25seSwgaXQgc2hvdWxkIGJl
IG5vIHByb2JsZW0gaWYgd2UgY2Fubm90IHBhcnNlIGl0IHNvbWV0aW1lcykKPj4KPj4gU2lnbmVk
LW9mZi1ieTogRG9taW5payBDc2FwYWsgPGQuY3NhcGFrQHByb3htb3guY29tPgo+PiAtLS0KPj4g
ICBzcmMvUFZFL0FQSTIvU3RvcmFnZS9TdGF0dXMucG0gfCAgIDEgKwo+PiAgIHNyYy9QVkUvR3Vl
c3RJbXBvcnQucG0gICAgICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysKPj4gICBzcmMvUFZFL0d1ZXN0SW1wb3J0L09WRi5wbSAgICAgfCAgNTMgKysrKysrKysrKysr
KystLS0KPj4gICBzcmMvUFZFL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKwo+PiAgIHNy
Yy9QVkUvU3RvcmFnZS5wbSAgICAgICAgICAgICB8ICAgMiArLQo+PiAgIHNyYy9QVkUvU3RvcmFn
ZS9EaXJQbHVnaW4ucG0gICB8ICAxNSArKysrLQo+PiAgIHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4u
cG0gICAgICB8ICAgNSArKwo+PiAgIHNyYy90ZXN0L3BhcnNlX3ZvbG5hbWVfdGVzdC5wbSB8ICAx
NSArKysrKwo+PiAgIDggZmlsZXMgY2hhbmdlZCwgMTgyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0
aW9ucygtKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvUFZFL0d1ZXN0SW1wb3J0LnBtCj4+
Cj4+IGRpZmYgLS1naXQgYS9zcmMvUFZFL0FQSTIvU3RvcmFnZS9TdGF0dXMucG0gYi9zcmMvUFZF
L0FQSTIvU3RvcmFnZS9TdGF0dXMucG0KPj4gaW5kZXggZGM2Y2M2OS4uYWNkZTczMCAxMDA2NDQK
Pj4gLS0tIGEvc3JjL1BWRS9BUEkyL1N0b3JhZ2UvU3RhdHVzLnBtCj4+ICsrKyBiL3NyYy9QVkUv
QVBJMi9TdG9yYWdlL1N0YXR1cy5wbQo+PiBAQCAtNzQ5LDYgKzc0OSw3IEBAIF9fUEFDS0FHRV9f
LT5yZWdpc3Rlcl9tZXRob2Qoewo+PiAgIAkJCQknZWZpLXN0YXRlLWxvc3QnLAo+PiAgIAkJCQkn
Z3Vlc3QtaXMtcnVubmluZycsCj4+ICAgCQkJCSdudm1lLXVuc3VwcG9ydGVkJywKPj4gKwkJCQkn
b3ZhLW5lZWRzLWV4dHJhY3RpbmcnLAo+PiAgIAkJCQknb3ZtZi13aXRoLWxzaS11bnN1cHBvcnRl
ZCcsCj4+ICAgCQkJCSdzZXJpYWwtcG9ydC1zb2NrZXQtb25seScsCj4+ICAgCQkJICAgIF0sCj4+
IGRpZmYgLS1naXQgYS9zcmMvUFZFL0d1ZXN0SW1wb3J0LnBtIGIvc3JjL1BWRS9HdWVzdEltcG9y
dC5wbQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi5kNDA1ZTMwCj4+
IC0tLSAvZGV2L251bGwKPj4gKysrIGIvc3JjL1BWRS9HdWVzdEltcG9ydC5wbQo+PiBAQCAtMCww
ICsxLDEwMCBAQAo+PiArcGFja2FnZSBQVkU6Okd1ZXN0SW1wb3J0Owo+PiArCj4+ICt1c2Ugc3Ry
aWN0Owo+PiArdXNlIHdhcm5pbmdzOwo+PiArCj4+ICt1c2UgRmlsZTo6UGF0aDsKPj4gKwo+PiAr
dXNlIFBWRTo6U3RvcmFnZTsKPiAKPiBhbm90aGVyIGNpcmN1bGFyIG1vZHVsZSBkZXBlbmRlbmN5
Li4KPiAKCndoeSBkbyB5b3UgdGhpbmsgc28/IG5vdGhpbmcgaW4gc3RvcmFnZSBpcyB1c2luZyBQ
VkU6Okd1ZXN0SW1wb3J0IG9ubHkgUFZFOjpHdWVzdEltcG9ydDo6T1ZGID8KCj4+ICt1c2UgUFZF
OjpUb29scyBxdyhydW5fY29tbWFuZCk7Cj4+ICsKPj4gK3N1YiBjb3B5X25lZWRzX2V4dHJhY3Rp
b24gewo+PiArICAgIG15ICgkdm9saWQpID0gQF87Cj4+ICsgICAgbXkgJGNmZyA9IFBWRTo6U3Rv
cmFnZTo6Y29uZmlnKCk7Cj4+ICsgICAgbXkgKCR2dHlwZSwgJG5hbWUsIHVuZGVmLCB1bmRlZiwg
dW5kZWYsIHVuZGVmLCAkZm10KSA9IFBWRTo6U3RvcmFnZTo6cGFyc2Vfdm9sbmFtZSgkY2ZnLCAk
dm9saWQpOwo+PiArCj4+ICsgICAgIyBvbmx5IHZvbHVtZXMgaW5zaWRlIG92YXMgbmVlZCBleHRy
YWN0aW9uCj4+ICsgICAgcmV0dXJuICR2dHlwZSBlcSAnaW1wb3J0JyAmJiAkZm10ID1+IG0vXm92
YVwrKC4qKSQvOwo+PiArfQo+IAo+IHRoaXMgY291bGQganVzdCBhcyB3ZWxsIGxpdmUgaW4gcWVt
dS1zZXJ2ZXIsIHRoZXJlJ3Mgb25seSB0d28gY2FsbCBzaXRlcwo+IGluIG9uZSBtb2R1bGUgdGhl
cmUuLiBvbmUgb2YgdGhlbSBldmVuIGFscmVhZHkgaGFzIHRoZSBwYXJzZWQgdm9sbmFtZSA7KQoK
dHJ1ZQoKPiAKPj4gKwo+PiArc3ViIGV4dHJhY3RfZGlza19mcm9tX2ltcG9ydF9maWxlIHsKPiAK
PiBJIGRvbid0IHJlYWxseSBsaWtlIHRoYXQgdGhpcyBpcyB1c2luZyBsb3RzIG9mIHBsdWdpbiBz
dHVmZi4uCj4gCj4+ICsgICAgbXkgKCR2b2xpZCwgJHZtaWQsICR0YXJnZXRfc3RvcmVpZCkgPSBA
XzsKPj4gKwo+PiArICAgIG15ICgkc291cmNlX3N0b3JlaWQsICR2b2xuYW1lKSA9IFBWRTo6U3Rv
cmFnZTo6cGFyc2Vfdm9sdW1lX2lkKCR2b2xpZCk7Cj4+ICsgICAgJHRhcmdldF9zdG9yZWlkIC8v
PSAkc291cmNlX3N0b3JlaWQ7Cj4+ICsgICAgbXkgJGNmZyA9IFBWRTo6U3RvcmFnZTo6Y29uZmln
KCk7Cj4+ICsgICAgbXkgJHNvdXJjZV9zY2ZnID0gUFZFOjpTdG9yYWdlOjpzdG9yYWdlX2NvbmZp
ZygkY2ZnLCAkc291cmNlX3N0b3JlaWQpOwo+PiArICAgIG15ICRzb3VyY2VfcGx1Z2luID0gUFZF
OjpTdG9yYWdlOjpQbHVnaW4tPmxvb2t1cCgkc291cmNlX3NjZmctPnt0eXBlfSk7Cj4+ICsKPj4g
KyAgICBteSAoJHZ0eXBlLCAkbmFtZSwgdW5kZWYsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmbXQp
ID0KPj4gKwkkc291cmNlX3BsdWdpbi0+cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7Cj4gCj4gY291
bGQgYmUgUFZFOjpTdG9yYWdlOjpwYXJzZV92b2xuYW1lCj4gCj4+ICsKPj4gKyAgICBkaWUgIm9u
bHkgZmlsZXMgd2l0aCBjb250ZW50IHR5cGUgJ2ltcG9ydCcgY2FuIGJlIGV4dHJhY3RlZFxuIgo+
PiArCWlmICR2dHlwZSBuZSAnaW1wb3J0JyB8fCAkZm10ICF+IG0vXm92YVwrLzsKPj4gKwo+PiAr
ICAgICMgZXh0cmFjdCB0aGUgaW5uZXIgZmlsZSBmcm9tIHRoZSBuYW1lCj4+ICsgICAgbXkgJGFy
Y2hpdmU7Cj4+ICsgICAgbXkgJGlubmVyX2ZpbGU7Cj4+ICsgICAgaWYgKCRuYW1lID1+IG0hXigu
Klwub3ZhKS8oJHtQVkU6OlN0b3JhZ2U6OlNBRkVfQ0hBUl9DTEFTU19SRX0rKSQhKSB7Cj4+ICsJ
JGFyY2hpdmUgPSAiaW1wb3J0LyQxIjsKPj4gKwkkaW5uZXJfZmlsZSA9ICQyOwo+PiArCSgkZm10
KSA9ICRmbXQgPX4gL15vdmFcKyguKikkLzsKPj4gKyAgICB9IGVsc2Ugewo+PiArCWRpZSAiY2Fu
bm90IGV4dHJhY3QgJHZvbGlkIC0gaW52YWxpZCB2b2xuYW1lICR2b2xuYW1lXG4iOwo+PiArICAg
IH0KPj4gKwo+PiArICAgIG15ICgkb3ZhX3BhdGgpID0gJHNvdXJjZV9wbHVnaW4tPnBhdGgoJHNv
dXJjZV9zY2ZnLCAkYXJjaGl2ZSwgJHNvdXJjZV9zdG9yZWlkKTsKPiAKPiBjb3VsZCBiZSBQVkU6
OlN0b3JhZ2U6OnBhdGgKPiAKPj4gKwo+PiArICAgIG15ICR0YXJnZXRfc2NmZyA9IFBWRTo6U3Rv
cmFnZTo6c3RvcmFnZV9jb25maWcoJGNmZywgJHRhcmdldF9zdG9yZWlkKTsKPj4gKyAgICBteSAk
dGFyZ2V0X3BsdWdpbiA9IFBWRTo6U3RvcmFnZTo6UGx1Z2luLT5sb29rdXAoJHRhcmdldF9zY2Zn
LT57dHlwZX0pOwo+PiArCj4+ICsgICAgbXkgJGRlc3RkaXIgPSAkdGFyZ2V0X3BsdWdpbi0+Z2V0
X3N1YmRpcigkdGFyZ2V0X3NjZmcsICdpbWFnZXMnKTsKPiAKPiBjb3VsZCBiZSBQVkU6OlN0b3Jh
Z2U6OmdldF9pbWFnZV9kaXIKPiAKPj4gKwo+PiArICAgIG15ICRwaWQgPSAkJDsKPj4gKyAgICAk
ZGVzdGRpciAuPSAiL3RtcF8ke3BpZH1fJHt2bWlkfSI7Cj4+ICsgICAgbWtwYXRoICRkZXN0ZGly
Owo+PiArCj4+ICsgICAgKCRvdmFfcGF0aCkgPSAkb3ZhX3BhdGggPX4gbXxeKC4qKSR8OyAjIHVu
dGFpbnQKPj4gKwo+PiArICAgIG15ICRzb3VyY2VfcGF0aCA9ICIkZGVzdGRpci8kaW5uZXJfZmls
ZSI7Cj4+ICsgICAgbXkgJHRhcmdldF9wYXRoOwo+PiArICAgIG15ICR0YXJnZXRfdm9sbmFtZTsK
Pj4gKyAgICBldmFsIHsKPj4gKwlydW5fY29tbWFuZChbJ3RhcicsICcteCcsICctLWZvcmNlLWxv
Y2FsJywgJy1DJywgJGRlc3RkaXIsICctZicsICRvdmFfcGF0aCwgJGlubmVyX2ZpbGVdKTsKPj4g
Kwo+PiArCSMgY2hlY2sgZm9yIHN5bWxpbmtzIGFuZCBvdGhlciBub24gcmVndWxhciBmaWxlcwo+
PiArCWlmICgtbCAkc291cmNlX3BhdGggfHwgISAtZiAkc291cmNlX3BhdGgpIHsKPj4gKwkgICAg
ZGllICJvbmx5IHJlZ3VsYXIgZmlsZXMgYXJlIGFsbG93ZWRcbiI7Cj4+ICsJfQo+PiArCj4+ICsJ
bXkgJHRhcmdldF9kaXNrbmFtZQo+PiArCSAgICA9ICR0YXJnZXRfcGx1Z2luLT5maW5kX2ZyZWVf
ZGlza25hbWUoJHRhcmdldF9zdG9yZWlkLCAkdGFyZ2V0X3NjZmcsICR2bWlkLCAkZm10LCAxKTsK
PiAKPiB0aGVzZSBoZXJlIHJlcXVpcmVzIGhvbGRpbmcgYSBsb2NrIHVudGlsIHRoZSBkaXNrbmFt
ZSBpcyBhY3R1YWxseSB1c2VkCj4gKHRoZSByZW5hbWUgYmVsb3cpLCBlbHNlIGl0J3MgcmFjZXku
LgoKd2UgZG8gaGF2ZSBhIGxvY2sgb3ZlciB2bSBjcmVhdGlvbiBpbiB0aGUgb25seSBwYXRoIHRo
aXMgaXMgY2FsbGVkIGFuZCBpdCBpcyB2bWlkIHNwZWNpZmljLi4uCnNvIGlzIHRoaXMgcmVhbGx5
IGEgcHJvYmxlbT8KCj4gCj4+ICsJJHRhcmdldF92b2xuYW1lID0gIiR2bWlkLyIgLiAkdGFyZ2V0
X2Rpc2tuYW1lOwo+IAo+IHRoaXMgZW5jb2RlcyBhIGZhY3QgYWJvdXQgdm9sbmFtZSBzZW1hbnRp
Y3MgdGhhdCBtaWdodCBub3QgYmUgYSBnaXZlbgo+IGZvciBleHRlcm5hbCwgZGlyLWJhc2VkIHBs
dWdpbnMgKG5vdCBzdXJlIGlmIHdlIHdhbnQgdG8gd29ycnkgYWJvdXQgdGhhdAo+IHRob3VnaCwg
b3IgaG93IHRvIGF2b2lkIGl0IDspKS4KCmkgbWVhbiB3ZSBjb3VsZCBjYWxsICdhbGxvYycgd2l0
aCBhIHZlcnkgc21hbGwgc2l6ZSBpbnN0ZWFkCmFuZCBzaW1wbHkgIm92ZXJ3cml0ZSIgaXQ/IHRo
ZW4gd2UnZCBhbHNvIGdldCBhcm91bmQgdGhpbmdzIGxpa2UKbWtwYXRoIGFuZCBpbWFnZWRpciBl
dGMuCgo+IAo+PiArCSR0YXJnZXRfcGF0aCA9ICR0YXJnZXRfcGx1Z2luLT5maWxlc3lzdGVtX3Bh
dGgoJHRhcmdldF9zY2ZnLCAkdGFyZ2V0X3ZvbG5hbWUpOwo+IAo+IHRoaXMgc2hvdWxkIGJlIGVx
dWl2YWxlbnQgdG8gUFZFOjpTdG9yYWdlOjpwYXRoIGZvciBEaXJQbHVnaW4gYmFzZWQKPiBzdG9y
YWdlcz8KPiAKPj4gKwo+PiArCXByaW50ICJyZW5hbWluZyAkc291cmNlX3BhdGggdG8gJHRhcmdl
dF9wYXRoXG4iOwo+PiArCW15ICRpbWFnZWRpciA9ICR0YXJnZXRfcGx1Z2luLT5nZXRfc3ViZGly
KCR0YXJnZXRfc2NmZywgJ2ltYWdlcycpOwo+IAo+IHdlIGFscmVhZHkgZGlkIHRoaXMgYWJvdmUs
IGJ1dCBzZWUgY29tbWVudCB0aGVyZSA7KQoKdHJ1ZSA7KQoKPiAKPj4gKwlta3BhdGggIiRpbWFn
ZWRpci8kdm1pZCI7Cj4+ICsKPj4gKwlyZW5hbWUoJHNvdXJjZV9wYXRoLCAkdGFyZ2V0X3BhdGgp
IG9yIGRpZSAidW5hYmxlIHRvIG1vdmUgLSAkIVxuIjsKPj4gKyAgICB9Owo+PiArICAgIGlmICht
eSAkZXJyID0gJEApIHsKPj4gKwl1bmxpbmsgJHNvdXJjZV9wYXRoOwo+PiArCXVubGluayAkdGFy
Z2V0X3BhdGggaWYgZGVmaW5lZCgkdGFyZ2V0X3BhdGgpOwo+IAo+IGlzbid0IHRoaXMgcHJldHR5
IG11Y2ggaW1wb3NzaWJsZSB0byBoYXBwZW4/IHRoZSBsYXN0IHRoaW5nIHdlIGRvIGluIHRoZQo+
IGV2YWwgYmxvY2sgaXMgdGhlIHJlbmFtZSAtIGlmIHRoYXQgZmFpbGVkLCAkdGFyZ2V0X3BhdGgg
Y2FuJ3QgZXhpc3QgeWV0Lgo+IGlmIGl0IGRpZG4ndCBmYWlsLCB3ZSBjYW4ndCBlbmQgdXAgaGVy
ZT8KCnRoYXQgcHJvYmFibHkgZGVwZW5kcyBvbiB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtIG5v
PyBub3QKZXZlcnkgZnMgaGFzIHBvc2l4IHJlbmFtZSBzZW1hbnRpY3MgaSBndWVzcz8KCmluIHRo
YXQgY2FzZSB3ZSdkIGNsZWFudXAgdGhlIGZpbGUsIGFuZCBpZiBpdCBkb2VzIG5vdCBleGlzdHMs
IGl0IGRvZXNuJ3QgaHVydApidXQKCj4gCj4+ICsJcm1kaXIgJGRlc3RkaXI7Cj4gCj4gdGhpcyBh
bmQgdW5saW5rICRzb3VyY2VfcGF0aCBjb3VsZCBqdXN0IGJlIGEgcmVtb3ZlX3RyZWUgb24gJGRl
c3RkaXIKPiBpbnN0ZWFkLCB3aXRoIGxlc3MgY2hhbmNlcyBvZiBsZWF2aW5nIHN0dWZmIGFyb3Vu
ZD8KCnRoaXMgaXMgdHJ1ZSBvZiBjb3Vyc2UgYW5kIHJlbW92ZXMgdGhlIGlzc3VlIGFib3ZlCgo+
IAo+PiArCWRpZSAiZXJyb3IgZHVyaW5nIGV4dHJhY3Rpb246ICRlcnJcbiI7Cj4+ICsgICAgfQo+
PiArCj4+ICsgICAgcm1kaXIgJGRlc3RkaXI7Cj4gCj4gY291bGQgYWxzbyBiZSBhIHJlbW92ZV90
cmVlLCBqdXN0IHRvIGJlIG9uIHRoZSBzYWZlIHNpZGU/Cgp5dXAKCj4gCj4+ICsKPj4gKyAgICBy
ZXR1cm4gIiR0YXJnZXRfc3RvcmVpZDokdGFyZ2V0X3ZvbG5hbWUiOwo+PiArfQo+PiArCj4+ICtz
dWIgY2xlYW51cF9leHRyYWN0ZWRfaW1hZ2Ugewo+PiArICAgIG15ICgkc291cmNlKSA9IEBfOwo+
PiArCj4+ICsgICAgbXkgJGNmZyA9IFBWRTo6U3RvcmFnZTo6Y29uZmlnKCk7Cj4+ICsgICAgUFZF
OjpTdG9yYWdlOjp2ZGlza19mcmVlKCRjZmcsICRzb3VyY2UpOwo+PiArfQo+IAo+IHdoeSBkbyB3
ZSBuZWVkIHRoaXMgaGVscGVyLCBhbmQgbm90IGp1c3QgY2FsbCB2ZGlza19mcmVlIGRpcmVjdGx5
IGluCj4gcWVtdS1zZXJ2ZXIgKHdlIGRvIHRoYXQgaW4gdG9ucyBvZiBwbGFjZXMgdGhlcmUgYXMg
cGFydCBvZiBlcnJvcgo+IGhhbmRsaW5nIGZvciBmcmVzaGx5IGFsbG9jYXRlZCB2b2x1bWVzKT8K
Cm9rIG1ha2VzIHNlbnNlCgo+IAo+PiArCj4+ICsxOwo+PiBkaWZmIC0tZ2l0IGEvc3JjL1BWRS9H
dWVzdEltcG9ydC9PVkYucG0gYi9zcmMvUFZFL0d1ZXN0SW1wb3J0L09WRi5wbQo+PiBpbmRleCAw
ZWI1ZTljLi42Yjc5MDc4IDEwMDY0NAo+PiAtLS0gYS9zcmMvUFZFL0d1ZXN0SW1wb3J0L09WRi5w
bQo+PiArKysgYi9zcmMvUFZFL0d1ZXN0SW1wb3J0L09WRi5wbQo+PiBAQCAtODUsMTEgKzg1LDM3
IEBAIHN1YiBpZF90b19wdmUgewo+PiAgICAgICB9Cj4+ICAgfQo+PiAgIAo+PiArIyB0ZWNobmlj
YWxseSBkZWZpbmVkIGluIERTUDAwMDQgKGh0dHBzOi8vd3d3LmRtdGYub3JnL2RzcC9EU1AwMDA0
KSBhcyBhbiBBQk5GCj4+ICsjIGJ1dCByZWFsaXN0aWNhbGx5IHRoaXMgYWx3YXlzIHRha2VzIHRo
ZSBmb3JtIG9mICdieXRlICogYmFzZV5leHBvbmVudCcKPj4gK3N1YiB0cnlfcGFyc2VfY2FwYWNp
dHlfdW5pdCB7Cj4+ICsgICAgbXkgKCR1bml0X3RleHQpID0gQF87Cj4+ICsKPj4gKyAgICBpZiAo
JHVuaXRfdGV4dCA9fiBtL15ccypieXRlXHMqXCpccyooWzAtOV0rKVxzKlxeXHMqKFswLTldKylc
cyokLykgewo+PiArCW15ICRiYXNlID0gJDE7Cj4+ICsJbXkgJGV4cCA9ICQyOwo+PiArCXJldHVy
biAkYmFzZSAqKiAkZXhwOwo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldHVybiB1bmRlZjsKPj4g
K30KPj4gKwo+PiAgICMgcmV0dXJucyB0d28gcmVmZXJlbmNlcywgJHFtIHdoaWNoIGhvbGRzIHFt
LmNvbmYgc3R5bGUga2V5L3ZhbHVlcywgYW5kIFxAZGlza3MKPj4gICBzdWIgcGFyc2Vfb3ZmIHsK
Pj4gLSAgICBteSAoJG92ZiwgJGRlYnVnKSA9IEBfOwo+PiArICAgIG15ICgkb3ZmLCAkaXNPdmEs
ICRkZWJ1ZykgPSBAXzsKPj4gKwo+PiArICAgICMgd2UgaGF2ZSB0byBpZ25vcmUgbWlzc2luZyBk
aXNrIGltYWdlcyBmb3Igb3ZhCj4+ICsgICAgbXkgJGRvbTsKPj4gKyAgICBpZiAoJGlzT3ZhKSB7
Cj4+ICsJbXkgJHJhdyA9ICIiOwo+PiArCVBWRTo6VG9vbHM6OnJ1bl9jb21tYW5kKFsndGFyJywg
Jy14TycsICctLXdpbGRjYXJkcycsICctLW9jY3VycmVuY2U9MScsICctZicsICRvdmYsICcqLm92
ZiddLCBvdXRmdW5jID0+IHN1YiB7Cj4+ICsJICAgIG15ICRsaW5lID0gc2hpZnQ7Cj4+ICsJICAg
ICRyYXcgLj0gJGxpbmU7Cj4+ICsJfSk7Cj4+ICsJJGRvbSA9IFhNTDo6TGliWE1MLT5sb2FkX3ht
bChzdHJpbmcgPT4gJHJhdywgbm9fYmxhbmtzID0+IDEpOwo+PiArICAgIH0gZWxzZSB7Cj4+ICsJ
JGRvbSA9IFhNTDo6TGliWE1MLT5sb2FkX3htbChsb2NhdGlvbiA9PiAkb3ZmLCBub19ibGFua3Mg
PT4gMSk7Cj4+ICsgICAgfQo+PiAgIAo+PiAtICAgIG15ICRkb20gPSBYTUw6OkxpYlhNTC0+bG9h
ZF94bWwobG9jYXRpb24gPT4gJG92Ziwgbm9fYmxhbmtzID0+IDEpOwo+PiAgIAo+PiAgICAgICAj
IHJlZ2lzdGVyIHRoZSB4bWwgbmFtZXNwYWNlcyBpbiBhIHhwYXRoIGNvbnRleHQgb2JqZWN0Cj4+
ICAgICAgICMgJ292ZicgaXMgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIHNvIGl0IHdpbGwgcHJlcGVu
ZGVkIHRvIGVhY2ggeG1sIGVsZW1lbnQKPj4gQEAgLTE3Nyw3ICsyMDMsMTcgQEAgc3ViIHBhcnNl
X292ZiB7Cj4+ICAgCSMgQCBuZWVkcyB0byBiZSBlc2NhcGVkIHRvIHByZXZlbnQgUGVybCBkb3Vi
bGUgcXVvdGUgaW50ZXJwb2xhdGlvbgo+PiAgIAlteSAkeHBhdGhfZmluZF9maWxlcmVmID0gc3By
aW50ZigiL292ZjpFbnZlbG9wZS9vdmY6RGlza1NlY3Rpb24vXAo+PiAgIG92ZjpEaXNrW1xAb3Zm
OmRpc2tJZD0nJXMnXS9cQG92ZjpmaWxlUmVmIiwgJGRpc2tfaWQpOwo+PiArCW15ICR4cGF0aF9m
aW5kX2NhcGFjaXR5ID0gc3ByaW50ZigiL292ZjpFbnZlbG9wZS9vdmY6RGlza1NlY3Rpb24vXAo+
PiArb3ZmOkRpc2tbXEBvdmY6ZGlza0lkPSclcyddL1xAb3ZmOmNhcGFjaXR5IiwgJGRpc2tfaWQp
Owo+PiArCW15ICR4cGF0aF9maW5kX2NhcGFjaXR5X3VuaXQgPSBzcHJpbnRmKCIvb3ZmOkVudmVs
b3BlL292ZjpEaXNrU2VjdGlvbi9cCj4+ICtvdmY6RGlza1tcQG92ZjpkaXNrSWQ9JyVzJ10vXEBv
dmY6Y2FwYWNpdHlBbGxvY2F0aW9uVW5pdHMiLCAkZGlza19pZCk7Cj4+ICAgCW15ICRmaWxlcmVm
ID0gJHhwYy0+ZmluZHZhbHVlKCR4cGF0aF9maW5kX2ZpbGVyZWYpOwo+PiArCW15ICRjYXBhY2l0
eSA9ICR4cGMtPmZpbmR2YWx1ZSgkeHBhdGhfZmluZF9jYXBhY2l0eSk7Cj4+ICsJbXkgJGNhcGFj
aXR5X3VuaXQgPSAkeHBjLT5maW5kdmFsdWUoJHhwYXRoX2ZpbmRfY2FwYWNpdHlfdW5pdCk7Cj4+
ICsJbXkgJHZpcnR1YWxfc2l6ZTsKPj4gKwlpZiAobXkgJGZhY3RvciA9IHRyeV9wYXJzZV9jYXBh
Y2l0eV91bml0KCRjYXBhY2l0eV91bml0KSkgewo+PiArCSAgICAkdmlydHVhbF9zaXplID0gJGNh
cGFjaXR5ICogJGZhY3RvcjsKPj4gKwl9Cj4+ICAgCj4+ICAgCW15ICR2YWxpZF91cmxfY2hhcnMg
PSBxckAke3ZhbGlkX3VyaXBhdGhfY2hhcnN9fC9AOwo+PiAgIAlpZiAoISRmaWxlcmVmIHx8ICRm
aWxlcmVmICF+IG0vXiR7dmFsaWRfdXJsX2NoYXJzfSskLykgewo+PiBAQCAtMjE3LDcgKzI1Myw3
IEBAIG92ZjpJdGVtW3Jhc2Q6SW5zdGFuY2VJRD0nJXMnXS9yYXNkOlJlc291cmNlVHlwZSIsICRj
b250cm9sbGVyX2lkKTsKPj4gICAJICAgIGRpZSAiZXJyb3IgcGFyc2luZyAkZmlsZXBhdGgsIGFy
ZSB5b3UgdXNpbmcgYSBzeW1saW5rID9cbiI7Cj4+ICAgCX0KPj4gICAKPj4gLQlpZiAoIS1lICRi
YWNraW5nX2ZpbGVfcGF0aCkgewo+PiArCWlmICghLWUgJGJhY2tpbmdfZmlsZV9wYXRoICYmICEk
aXNPdmEpIHsKPj4gICAJICAgIGRpZSAiZXJyb3IgcGFyc2luZyAkZmlsZXBhdGgsIGZpbGUgc2Vl
bXMgbm90IHRvIGV4aXN0IGF0ICRiYWNraW5nX2ZpbGVfcGF0aFxuIjsKPj4gICAJfQo+PiAgIAo+
PiBAQCAtMjI1LDE2ICsyNjEsMTkgQEAgb3ZmOkl0ZW1bcmFzZDpJbnN0YW5jZUlEPSclcyddL3Jh
c2Q6UmVzb3VyY2VUeXBlIiwgJGNvbnRyb2xsZXJfaWQpOwo+PiAgIAkoJGZpbGVwYXRoKSA9ICRm
aWxlcGF0aCA9fiBtfF4oJHtQVkU6OlN0b3JhZ2U6OlNBRkVfQ0hBUl9DTEFTU19SRX0rKSR8OyAj
IHVudGFpbnQgJiBjaGVjayBubyBzdWIvcGFyZW50IGRpcnMKPj4gICAJZGllICJpbnZhbGlkIHBh
dGhcbiIgaWYgISRmaWxlcGF0aDsKPj4gICAKPj4gLQlteSAkdmlydHVhbF9zaXplID0gUFZFOjpT
dG9yYWdlOjpmaWxlX3NpemVfaW5mbygkYmFja2luZ19maWxlX3BhdGgpOwo+PiAtCWRpZSAiZXJy
b3IgcGFyc2luZyAkYmFja2luZ19maWxlX3BhdGgsIGNhbm5vdCBkZXRlcm1pbmUgZmlsZSBzaXpl
XG4iCj4+IC0JICAgIGlmICEkdmlydHVhbF9zaXplOwo+PiArCWlmICghJGlzT3ZhKSB7Cj4+ICsJ
ICAgIG15ICRzaXplID0gUFZFOjpTdG9yYWdlOjpmaWxlX3NpemVfaW5mbygkYmFja2luZ19maWxl
X3BhdGgpOwo+PiArCSAgICBkaWUgImVycm9yIHBhcnNpbmcgJGJhY2tpbmdfZmlsZV9wYXRoLCBj
YW5ub3QgZGV0ZXJtaW5lIGZpbGUgc2l6ZVxuIgo+PiArCQlpZiAhJHNpemU7Cj4+ICAgCj4+ICsJ
ICAgICR2aXJ0dWFsX3NpemUgPSAkc2l6ZTsKPj4gKwl9Cj4+ICAgCSRwdmVfZGlzayA9IHsKPj4g
ICAJICAgIGRpc2tfYWRkcmVzcyA9PiAkcHZlX2Rpc2tfYWRkcmVzcywKPj4gICAJICAgIGJhY2tp
bmdfZmlsZSA9PiAkYmFja2luZ19maWxlX3BhdGgsCj4+IC0JICAgIHZpcnR1YWxfc2l6ZSA9PiAk
dmlydHVhbF9zaXplCj4+ICAgCSAgICByZWxhdGl2ZV9wYXRoID0+ICRmaWxlcGF0aCwKPj4gICAJ
fTsKPj4gKwkkcHZlX2Rpc2stPnt2aXJ0dWFsX3NpemV9ID0gJHZpcnR1YWxfc2l6ZSBpZiBkZWZp
bmVkKCR2aXJ0dWFsX3NpemUpOwo+PiAgIAlwdXNoIEBkaXNrcywgJHB2ZV9kaXNrOwo+PiAgIAo+
PiAgICAgICB9Cj4+IGRpZmYgLS1naXQgYS9zcmMvUFZFL01ha2VmaWxlIGIvc3JjL1BWRS9NYWtl
ZmlsZQo+PiBpbmRleCBlMTVhMjc1Li4wYWYzMDgxIDEwMDY0NAo+PiAtLS0gYS9zcmMvUFZFL01h
a2VmaWxlCj4+ICsrKyBiL3NyYy9QVkUvTWFrZWZpbGUKPj4gQEAgLTUsNiArNSw3IEBAIGluc3Rh
bGw6Cj4+ICAgCWluc3RhbGwgLUQgLW0gMDY0NCBTdG9yYWdlLnBtICR7REVTVERJUn0ke1BFUkxE
SVJ9L1BWRS9TdG9yYWdlLnBtCj4+ICAgCWluc3RhbGwgLUQgLW0gMDY0NCBEaXNrbWFuYWdlLnBt
ICR7REVTVERJUn0ke1BFUkxESVJ9L1BWRS9EaXNrbWFuYWdlLnBtCj4+ICAgCWluc3RhbGwgLUQg
LW0gMDY0NCBDZXBoQ29uZmlnLnBtICR7REVTVERJUn0ke1BFUkxESVJ9L1BWRS9DZXBoQ29uZmln
LnBtCj4+ICsJaW5zdGFsbCAtRCAtbSAwNjQ0IEd1ZXN0SW1wb3J0LnBtICR7REVTVERJUn0ke1BF
UkxESVJ9L1BWRS9HdWVzdEltcG9ydC5wbQo+PiAgIAltYWtlIC1DIFN0b3JhZ2UgaW5zdGFsbAo+
PiAgIAltYWtlIC1DIEd1ZXN0SW1wb3J0IGluc3RhbGwKPj4gICAJbWFrZSAtQyBBUEkyIGluc3Rh
bGwKPj4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS5wbSBiL3NyYy9QVkUvU3RvcmFnZS5w
bQo+PiBpbmRleCAxZWQ5MWMyLi5hZGMxYjQ1IDEwMDc1NQo+PiAtLS0gYS9zcmMvUFZFL1N0b3Jh
Z2UucG0KPj4gKysrIGIvc3JjL1BWRS9TdG9yYWdlLnBtCj4+IEBAIC0xMTQsNyArMTE0LDcgQEAg
b3VyICRWWlRNUExfRVhUX1JFXzEgPSBxci9cLnRhclwuKGd6fHh6fHpzdCkvaTsKPj4gICAKPj4g
ICBvdXIgJEJBQ0tVUF9FWFRfUkVfMiA9IHFyL1wuKHRnenwoPzp0YXJ8dm1hKSg/OlwuKCR7XFBW
RTo6U3RvcmFnZTo6UGx1Z2luOjpDT01QUkVTU09SX1JFfSkpPykvOwo+PiAgIAo+PiAtb3VyICRJ
TVBPUlRfRVhUX1JFXzEgPSBxci9cLihvdmZ8cWNvdzJ8cmF3fHZtZGspLzsKPj4gK291ciAkSU1Q
T1JUX0VYVF9SRV8xID0gcXIvXC4ob3ZhfG92ZnxxY293MnxyYXd8dm1kaykvOwo+PiAgIAo+PiAg
IG91ciAkU0FGRV9DSEFSX0NMQVNTX1JFID0gcXIvW2EtekEtWjAtOVwtXC5cK1w9XF9dLzsKPj4g
ICAKPj4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9EaXJQbHVnaW4ucG0gYi9zcmMvUFZF
L1N0b3JhZ2UvRGlyUGx1Z2luLnBtCj4+IGluZGV4IDNlM2IxZTcuLmVhODk0NjQgMTAwNjQ0Cj4+
IC0tLSBhL3NyYy9QVkUvU3RvcmFnZS9EaXJQbHVnaW4ucG0KPj4gKysrIGIvc3JjL1BWRS9TdG9y
YWdlL0RpclBsdWdpbi5wbQo+PiBAQCAtMjU4LDE1ICsyNTgsMjYgQEAgc3ViIGdldF9pbXBvcnRf
bWV0YWRhdGEgewo+PiAgICAgICAjIE5PVEU6IGFsbCB0eXBlcyBvZiB3YXJuaW5ncyBtdXN0IGJl
IGFkZGVkIHRvIHRoZSByZXR1cm4gc2NoZW1hIG9mIHRoZSBpbXBvcnQtbWV0YWRhdGEgQVBJIGVu
ZHBvaW50Cj4+ICAgICAgIG15ICR3YXJuaW5ncyA9IFtdOwo+PiAgIAo+PiArICAgIG15ICRpc092
YSA9IDA7Cj4+ICsgICAgaWYgKCRuYW1lID1+IG0vXC5vdmEkLykgewo+PiArCSRpc092YSA9IDE7
Cj4+ICsJcHVzaCBAJHdhcm5pbmdzLCB7IHR5cGUgPT4gJ292YS1uZWVkcy1leHRyYWN0aW5nJyB9
Owo+PiArICAgIH0KPj4gICAgICAgbXkgJHBhdGggPSAkY2xhc3MtPnBhdGgoJHNjZmcsICR2b2xu
YW1lLCAkc3RvcmVpZCwgdW5kZWYpOwo+PiAtICAgIG15ICRyZXMgPSBQVkU6Okd1ZXN0SW1wb3J0
OjpPVkY6OnBhcnNlX292ZigkcGF0aCk7Cj4+ICsgICAgbXkgJHJlcyA9IFBWRTo6R3Vlc3RJbXBv
cnQ6Ok9WRjo6cGFyc2Vfb3ZmKCRwYXRoLCAkaXNPdmEpOwo+PiAgICAgICBteSAkZGlza3MgPSB7
fTsKPj4gICAgICAgZm9yIG15ICRkaXNrICgkcmVzLT57ZGlza3N9LT5AKikgewo+PiAgIAlteSAk
aWQgPSAkZGlzay0+e2Rpc2tfYWRkcmVzc307Cj4+ICAgCW15ICRzaXplID0gJGRpc2stPnt2aXJ0
dWFsX3NpemV9Owo+PiAgIAlteSAkcGF0aCA9ICRkaXNrLT57cmVsYXRpdmVfcGF0aH07Cj4+ICsJ
bXkgJHZvbGlkOwo+PiArCWlmICgkaXNPdmEpIHsKPj4gKwkgICAgJHZvbGlkID0gIiRzdG9yZWlk
OiR2b2xuYW1lLyRwYXRoIjsKPj4gKwl9IGVsc2Ugewo+PiArCSAgICAkdm9saWQgPSAiJHN0b3Jl
aWQ6aW1wb3J0LyRwYXRoIiwKPj4gKwl9Cj4+ICAgCSRkaXNrcy0+eyRpZH0gPSB7Cj4+IC0JICAg
IHZvbGlkID0+ICIkc3RvcmVpZDppbXBvcnQvJHBhdGgiLAo+PiArCSAgICB2b2xpZCA9PiAkdm9s
aWQsCj4+ICAgCSAgICBkZWZpbmVkKCRzaXplKSA/IChzaXplID0+ICRzaXplKSA6ICgpLAo+PiAg
IAl9Owo+PiAgICAgICB9Cj4+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBt
IGIvc3JjL1BWRS9TdG9yYWdlL1BsdWdpbi5wbQo+PiBpbmRleCAzM2YwZjNhLi42NDBkMTU2IDEw
MDY0NAo+PiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtCj4+ICsrKyBiL3NyYy9QVkUv
U3RvcmFnZS9QbHVnaW4ucG0KPj4gQEAgLTY1NCw2ICs2NTQsMTEgQEAgc3ViIHBhcnNlX3ZvbG5h
bWUgewo+PiAgIAlyZXR1cm4gKCdiYWNrdXAnLCAkZm4pOwo+PiAgICAgICB9IGVsc2lmICgkdm9s
bmFtZSA9fiBtIV5zbmlwcGV0cy8oW14vXSspJCEpIHsKPj4gICAJcmV0dXJuICgnc25pcHBldHMn
LCAkMSk7Cj4+ICsgICAgfSBlbHNpZiAoJHZvbG5hbWUgPX4gbSFeaW1wb3J0Lygke1BWRTo6U3Rv
cmFnZTo6U0FGRV9DSEFSX0NMQVNTX1JFfStcLm92YVwvKCR7UFZFOjpTdG9yYWdlOjpTQUZFX0NI
QVJfQ0xBU1NfUkV9KykpJCEpIHsKPj4gKwlteSAkYXJjaGl2ZSA9ICQxOwo+PiArCW15ICRmaWxl
ID0gJDI7Cj4+ICsJbXkgKHVuZGVmLCAkZm9ybWF0LCB1bmRlZikgPSBwYXJzZV9uYW1lX2Rpcigk
ZmlsZSk7Cj4+ICsJcmV0dXJuICgnaW1wb3J0JywgJGFyY2hpdmUsIHVuZGVmLCB1bmRlZiwgdW5k
ZWYsIHVuZGVmLCAib3ZhKyRmb3JtYXQiKTsKPiAKPiB0aGVzZSBjb3VsZCBiZSBpbXByb3ZlZCBp
ZiB0aGUgZm9ybWF0IHdhcyBhbHJlYWR5IGNoZWNrZWQgaW4gdGhlIGVsc2lmCj4gY29uZGl0aW9u
IEkgdGhpbmssIHNpbmNlIHRoZSBlcnJvciBtZXNzYWdlIG9mIHBhcnNlX25hbWVfZGlyIGlzIGEg
Yml0Cj4gb3BhcXVlL2xhY2tpbmcgY29udGV4dC4uIGFsc28sIHBhcnNlX25hbWVfZGlyIGFsbG93
cyBzdWJ2b2wsIHdoaWNoIHdlCj4gZG9uJ3Qgd2FudCB0byBhbGxvdyBoZXJlIEkgdGhpbms/Cgpv
ayB5ZWFoIHRoYXQgbWFrZXMgc2Vuc2UKCj4gCj4+ICAgICAgIH0gZWxzaWYgKCR2b2xuYW1lID1+
IG0hXmltcG9ydC8oJHtQVkU6OlN0b3JhZ2U6OlNBRkVfQ0hBUl9DTEFTU19SRX0rJFBWRTo6U3Rv
cmFnZTo6SU1QT1JUX0VYVF9SRV8xKSQhKSB7Cj4+ICAgCXJldHVybiAoJ2ltcG9ydCcsICQxLCB1
bmRlZiwgdW5kZWYsIHVuZGVmLCB1bmRlZiwgJDIpOwo+PiAgICAgICB9Cj4+IGRpZmYgLS1naXQg
YS9zcmMvdGVzdC9wYXJzZV92b2xuYW1lX3Rlc3QucG0gYi9zcmMvdGVzdC9wYXJzZV92b2xuYW1l
X3Rlc3QucG0KPj4gaW5kZXggYThjNzQ2Zi4uYmM3YjRlOCAxMDA2NDQKPj4gLS0tIGEvc3JjL3Rl
c3QvcGFyc2Vfdm9sbmFtZV90ZXN0LnBtCj4+ICsrKyBiL3NyYy90ZXN0L3BhcnNlX3ZvbG5hbWVf
dGVzdC5wbQo+PiBAQCAtOTMsNiArOTMsMjEgQEAgbXkgJHRlc3RzID0gWwo+PiAgIAl2b2xuYW1l
ICAgICA9PiAnaW1wb3J0L2ltcG9ydC5vdmYnLAo+PiAgIAlleHBlY3RlZCAgICA9PiBbJ2ltcG9y
dCcsICdpbXBvcnQub3ZmJywgdW5kZWYsIHVuZGVmLCB1bmRlZiAsdW5kZWYsICdvdmYnXSwKPj4g
ICAgICAgfSwKPj4gKyAgICB7Cj4+ICsJZGVzY3JpcHRpb24gPT4gIkltcG9ydCwgaW5ubmVyIGZp
bGUgb2Ygb3ZhIiwKPj4gKwl2b2xuYW1lICAgICA9PiAnaW1wb3J0L2ltcG9ydC5vdmEvZGlzay5x
Y293MicsCj4+ICsJZXhwZWN0ZWQgICAgPT4gWydpbXBvcnQnLCAnaW1wb3J0Lm92YS9kaXNrLnFj
b3cyJywgdW5kZWYsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICdvdmErcWNvdzInXSwKPj4gKyAgICB9
LAo+PiArICAgIHsKPj4gKwlkZXNjcmlwdGlvbiA9PiAiSW1wb3J0LCBpbm5uZXIgZmlsZSBvZiBv
dmEiLAo+PiArCXZvbG5hbWUgICAgID0+ICdpbXBvcnQvaW1wb3J0Lm92YS9kaXNrLnZtZGsnLAo+
PiArCWV4cGVjdGVkICAgID0+IFsnaW1wb3J0JywgJ2ltcG9ydC5vdmEvZGlzay52bWRrJywgdW5k
ZWYsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICdvdmErdm1kayddLAo+PiArICAgIH0sCj4+ICsgICAg
ewo+PiArCWRlc2NyaXB0aW9uID0+ICJJbXBvcnQsIGlubm5lciBmaWxlIG9mIG92YSIsCj4+ICsJ
dm9sbmFtZSAgICAgPT4gJ2ltcG9ydC9pbXBvcnQub3ZhL2Rpc2sucmF3JywKPj4gKwlleHBlY3Rl
ZCAgICA9PiBbJ2ltcG9ydCcsICdpbXBvcnQub3ZhL2Rpc2sucmF3JywgdW5kZWYsIHVuZGVmLCB1
bmRlZiwgdW5kZWYsICdvdmErcmF3J10sCj4+ICsgICAgfSwKPj4gICAgICAgIwo+PiAgICAgICAj
IGZhaWxlZCBtYXRjaGVzCj4+ICAgICAgICMKPj4gLS0gCj4+IDIuMzkuMgo+Pgo+Pgo+Pgo+PiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBwdmUtZGV2
ZWwgbWFpbGluZyBsaXN0Cj4+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+PiBodHRwczov
L2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwKPj4K
Pj4KPj4KPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwo+IHB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5j
b20KPiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9w
dmUtZGV2ZWwKPiAKPiAKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5j
b20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZl
LWRldmVsCg==