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 D61BA1FF163
	for <inbox@lore.proxmox.com>; Thu, 24 Oct 2024 10:05:30 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 26ABB9AC1;
	Thu, 24 Oct 2024 10:06:10 +0200 (CEST)
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
 "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
Date: Thu, 24 Oct 2024 07:59:13 +0000
References: <20240930113153.2896648-1-alexandre.derumier@groupe-cyllene.com>
 <mailman.140.1727695926.332.pve-devel@lists.proxmox.com>
 <1350338065.715.1729678366532@webmail.proxmox.com>
 <f066c13a25b30e3107a9dec8091b456ce2852293.camel@groupe-cyllene.com>
 <257159672.1161.1729752121142@webmail.proxmox.com>
In-Reply-To: <257159672.1161.1729752121142@webmail.proxmox.com>
MIME-Version: 1.0
Message-ID: <mailman.527.1729757169.332.pve-devel@lists.proxmox.com>
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Post: <mailto:pve-devel@lists.proxmox.com>
From: Giotta Simon RUAGH via pve-devel <pve-devel@lists.proxmox.com>
Precedence: list
Cc: Giotta Simon RUAGH <Simon.Giotta@ruag.ch>
X-Mailman-Version: 2.1.29
X-BeenThere: pve-devel@lists.proxmox.com
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
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/>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
Subject: Re: [pve-devel] [PATCH v2 pve-storage 1/2] add external snasphot
 support
Content-Type: multipart/mixed; boundary="===============0322210416932399988=="
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

--===============0322210416932399988==
Content-Type: message/rfc822
Content-Disposition: inline

Return-Path: <Simon.Giotta@ruag.ch>
X-Original-To: pve-devel@lists.proxmox.com
Delivered-To: pve-devel@lists.proxmox.com
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by lists.proxmox.com (Postfix) with ESMTPS id D8670C810D
	for <pve-devel@lists.proxmox.com>; Thu, 24 Oct 2024 10:06:08 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id B4C5B9A9F
	for <pve-devel@lists.proxmox.com>; Thu, 24 Oct 2024 10:05:38 +0200 (CEST)
Received: from aspmailout02.mail.admin.ch (aspmailout02.mail.admin.ch [162.23.23.166])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
	(No client certificate requested)
	by firstgate.proxmox.com (Proxmox) with ESMTPS
	for <pve-devel@lists.proxmox.com>; Thu, 24 Oct 2024 10:05:36 +0200 (CEST)
Received: from mailhost01.mail.admin.ch ([10.176.106.194])
	by mx02.mail.admin.ch with ESMTPS id 49O7xGDv016963-49O7xGDx016963
	(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
	Thu, 24 Oct 2024 09:59:16 +0200
From: Giotta Simon RUAGH <Simon.Giotta@ruag.ch>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
	"DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
Subject: RE: [pve-devel] [PATCH v2 pve-storage 1/2] add external snasphot
 support
Thread-Topic: [pve-devel] [PATCH v2 pve-storage 1/2] add external snasphot
 support
Thread-Index: AQHbEyxnEBbC/N5EJ0aMvTGR9YZf57KUIFYAgAF5MOiAAA144A==
Date: Thu, 24 Oct 2024 07:59:13 +0000
Message-ID: <c6544b5f333c4e2289f62b2c32f06134@ruag.ch>
References: <20240930113153.2896648-1-alexandre.derumier@groupe-cyllene.com>
 <mailman.140.1727695926.332.pve-devel@lists.proxmox.com>
 <1350338065.715.1729678366532@webmail.proxmox.com>
 <f066c13a25b30e3107a9dec8091b456ce2852293.camel@groupe-cyllene.com>
 <257159672.1161.1729752121142@webmail.proxmox.com>
In-Reply-To: <257159672.1161.1729752121142@webmail.proxmox.com>
Accept-Language: de-CH, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
X-TM-AS-Product-Ver: SMEX-14.0.0.3197-9.1.2019-28750.005
X-TM-AS-Result: No-10--34.972800-8.000000
X-TMASE-MatchedRID: hFbMlnd2lLPEeENaa6f3iqfDm5zpCGQxnWETdS9lWtiDPlWYpnzHzmly
	WVf0ITs1mlHGse9OSD8fbGiTpwYY0BNpDC2WjCEMrGHD9hZQE32dFMmljtUApy+jW320XUWzAeC
	toqKpdvUErmOxqGRMqf+TbdcsqcjQSDdZvQfZyfEUye2E64eUYxElzmV6ujCEfI8zAerHIi9T0N
	vVr+Y5+FvvYMqFGufuq1OKGmdZqMGmKR7vpyEzpLfcD+VGZ6WsWZxYhPYYrMmVmuhG06IIbUEwl
	AH/PleeLqp1GoM8Gugf1/ipyhCJjS/X3qM4oPQxzmr8EUhT8EvEUE88Vnkllo5Jfe6mCTxtoVFY
	LwcIrHaWdT+bzRet+aoWJZsOjtK+VfOAk6jEwvPd1SnIz3dLX/O/ZVQIUEuEBzKI9/9a0O3losh
	KYmxDJStcaP0PeI+81r0VN3mQtdQwU1m4etoyr9p2LoixsYsjRYNhzuZZjRCbyUSNdkyqztVg3Q
	SKO3mzvZ3Hn2UfAERvgcq5wsgLwgBGX66U10kk1bOP2UkToXONTaHnGtld6vHPBvZEdN7kV6kMf
	eRPdGJphNTx+4+emUoElvYed/6gYuVNk9IEXoy5xHGnqIiyOc0QwjuSC84+3jDoEywIWbNK50dV
	aG6LaGhVmBqXGWxu8VGsZGLXUps+y/fGrz3tI/iI/A3FBxbP8RcXD+rQ7sFE64d0xcPXxQXTKcl
	gl795F7cDYWuOnw7067jADSs7W5horvw0o0Yz7usMM73Odc4ZD7bjq+6lMBn2DOqUMFsvItCMOA
	pWp2k3v9TD3vOHOFqvo64vKhuvmpfFLRguZqOMZtS40KQqqKlMDJeKqhNb+sMesHlgpMujURk1a
	3/NtkN68qpJ8bQMv9rSd36EgULA931+mNd9sFPQ/IGe82Lt8jF0kHc8YvQ=
X-TM-AS-User-Approved-Sender: Yes
X-TM-AS-User-Blocked-Sender: No
X-TMASE-Result: 10--34.972800-8.000000
X-TMASE-Version: SMEX-14.0.0.3197-9.1.2019-28750.005
X-TM-SNTS-SMTP: 	5898EC09FCDC82D577E03CB661E01FEBE10F011EFFC7BE20268D325B939035062000:9
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-FEAS-Client-IP: 10.176.106.194
X-FE-Policy-ID: 1:4:3:SYSTEM
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; d=ruag.ch; s=dkimkey1; c=relaxed/relaxed;
 h=from:to:subject:date:message-id:references:content-type:mime-version;
 bh=7BwgdKcvd7pTW5mqiQbfFBiW/DpIRd7kbfMp/IVNhjk=;
 b=eOT6s52Sjmv9wemZ1GZuj+FxCuAnq1BshZkT/qFcmVbRyX7aBCNeUjXXVXoc3ZdaL+s84PvnUJqd
	s6yqq8aaUDGh25/8VXHv9ro8jwzaNxU9f3pakK636LVGrr7ejuvxZaScoW5hHfAPhKFVrs41qhtK
	DYsWktfsO+rXgF7m4Sg=
X-SPAM-LEVEL: Spam detection results:  0
	BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
	DKIM_SIGNED               0.1 Message has a DKIM or DK signature, not necessarily valid
	DKIM_VALID               -0.1 Message has at least one valid DKIM or DK signature
	DKIM_VALID_AU            -0.1 Message has a valid DKIM or DK signature from author's domain
	DKIM_VALID_EF            -0.1 Message has a valid DKIM or DK signature from envelope-from domain
	DMARC_PASS               -0.1 DMARC pass policy
	RCVD_IN_DNSWL_LOW        -0.7 Sender listed at https://www.dnswl.org/, low trust
	RCVD_IN_MSPIKE_H4       0.001 Very Good reputation (+4)
	RCVD_IN_MSPIKE_WL       0.001 Mailspike good senders
	SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
	SPF_PASS               -0.001 SPF: sender matches SPF record

SGkgRXZlcnlvbmUNCg0KPiBJIG1lYW4sIGlmIHdlIGRvbid0IGFsbG93IC5yYXcgZmlsZXMgdG8g
YmUgc25hcHNob3R0ZWQgdGhlbiB0aGlzIHByb2JsZW0gZG9lc24ndCBleGlzdCA7KQ0KDQpRdWlj
ayBjb21tZW50IGZyb20gdGhlIGJsZWFjaGVyOyBBZGRpbmcgYSBtZWNoYW5pc20gdG8gc2hhcHNo
b3QgcmF3IGRpc2tzIG1pZ2h0IHNvbHZlIHRoZSBUUE0gKHRwbXN0YXRlKSBzbmFwc2hvdHRpbmcg
aXNzdWUsIGFzIHdlbGwgYXMgYWxsb3dpbmcgY29udGFpbmVycyB0byBiZSBzbmFwc2hvdC4NCg0K
Rm9yIGNvbnRleHQ6IA0KV2hlbiB1c2luZyBhIHN0b3JhZ2UgdGhhdCBkb2VzIG5vdCBuYXRpdmVs
eSBzdXBwb3J0IHNuYXBzaG90dGluZyAoTkZTIG9uIE5ldEFwcCBvciBzaW1pbGFyIGVudGVycHJp
c2Ugc3RvcmFnZSwgaW4gcGFydGljdWxhciksIHJhdyBkaXNrcyBjYW5ub3QgYmUgc25hcHNob3Qu
IA0KU2luY2UgdHBtc3RhdGUgZGlza3MgY2FuIG9ubHkgYmUgc3RvcmVkIGFzIHJhdyAoYXMgSSB1
bmRlcnN0YW5kIHRoZXkgYXJlIGp1c3QgYSBiaW5hcnkgYmxvYj8pLCB0aGlzIG1ha2VzIGl0IGlt
cG9zc2libGUgdG8gc25hcHNob3Qgb3IgKGxpbmstKWNsb25lIGFueSBWTXMgdGhhdCBoYXZlIGEg
VFBNLiBUaGlzIGVzcGVjaWFsbHkgaXMgYW4gaXNzdWUgZm9yIGN1cnJlbnQgV2luZG93cyBjbGll
bnRzLg0KU2FtZSBpc3N1ZSBmb3IgTFhDIGNvbnRhaW5lcnMsIGFzIHRoZWlyIHN0b3JhZ2UgZm9y
bWF0IGlzIHJhdyBvbmx5IGFzIHdlbGwuDQogDQpodHRwczovL2J1Z3ppbGxhLnByb3htb3guY29t
L3Nob3dfYnVnLmNnaT9pZD00NjkzDQoNCkJlc3RlIEdyw7xzc2UNCg0KU2ltb24gR2lvdHRhDQpT
eXN0ZW1hZG1pbmlzdHJhdG9yDQoNCnNpbW9uLmdpb3R0YUBydWFnLmNoIA0KDQpSVUFHIEFHDQpT
Y2hhZmZoYXVzZXJzdHJhc3NlIDU4MCB8IDgwNTIgWsO8cmljaA0KDQotLS0tLU9yaWdpbmFsIE1l
c3NhZ2UtLS0tLQ0KRnJvbTogcHZlLWRldmVsIDxwdmUtZGV2ZWwtYm91bmNlc0BsaXN0cy5wcm94
bW94LmNvbT4gT24gQmVoYWxmIE9mIEZhYmlhbiBHcsO8bmJpY2hsZXINClNlbnQ6IERvbm5lcnN0
YWcsIDI0LiBPa3RvYmVyIDIwMjQgMDg6NDINClRvOiBERVJVTUlFUiwgQWxleGFuZHJlIDxhbGV4
YW5kcmUuZGVydW1pZXJAZ3JvdXBlLWN5bGxlbmUuY29tPjsgcHZlLWRldmVsQGxpc3RzLnByb3ht
b3guY29tDQpTdWJqZWN0OiBSZTogW3B2ZS1kZXZlbF0gW1BBVENIIHYyIHB2ZS1zdG9yYWdlIDEv
Ml0gYWRkIGV4dGVybmFsIHNuYXNwaG90IHN1cHBvcnQNCg0KDQo+IERFUlVNSUVSLCBBbGV4YW5k
cmUgPGFsZXhhbmRyZS5kZXJ1bWllckBncm91cGUtY3lsbGVuZS5jb20+IGhhdCBhbSAyMy4xMC4y
MDI0IDE0OjU5IENFU1QgZ2VzY2hyaWViZW46DQo+IA0KPiAgDQo+IEhpIEZhYmlhbiwNCj4gDQo+
IHRoYW5rcyBmb3IgdGhlIHJldmlldyAhDQo+IA0KPiA+Pi0tLS0tLS0tIE1lc3NhZ2UgaW5pdGlh
bCAtLS0tLS0tLQ0KPiA+PkRlOiBGYWJpYW4gR3LDvG5iaWNobGVyIDxmLmdydWVuYmljaGxlckBw
cm94bW94LmNvbT4NCj4gPj7DgDogUHJveG1veCBWRSBkZXZlbG9wbWVudCBkaXNjdXNzaW9uIDxw
dmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20+DQo+ID4+Q2M6IEFsZXhhbmRyZSBEZXJ1bWllciA8
YWxleGFuZHJlLmRlcnVtaWVyQGdyb3VwZS1jeWxsZW5lLmNvbT4NCj4gPj5PYmpldDogUmU6IFtw
dmUtZGV2ZWxdIFtQQVRDSCB2MiBwdmUtc3RvcmFnZSAxLzJdIGFkZCBleHRlcm5hbCANCj4gPj5z
bmFzcGhvdCBzdXBwb3J0DQo+ID4+RGF0ZTogMjMvMTAvMjAyNCAxMjoxMjo0Ng0KPiA+Pg0KPiA+
PnNvbWUgaGlnaCBsZXZlbCBjb21tZW50czoNCj4gPj4NCj4gPj5JIGFtIG5vdCBzdXJlIGhvdyBt
dWNoIHdlIGdhaW4gaGVyZSB3aXRoIHRoZSByYXcgc3VwcG9ydD8NCj4gDQo+IFRoZXkgYXJlIHJl
YWxseSBxY293MiBvdmVyaGVhZCwgbW9zdGx5IHdpdGggYmlnIGRpc2suDQo+IGFzIGZvciBnb29k
IHBlcmZvcm1hbmNlLCB0aGUgcWNvdzIgbDItY2FjaGUtc2l6ZSBuZWVkIHRvIGJlIGtlZXBlZCBp
biANCj4gbWVtb3J5IChhbmQgaXQncyAxTUIgYnkgZGlzaykgDQo+IGh0dHBzOi8vZXZlbnRzLnN0
YXRpYy5saW51eGZvdW5kLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL2t2bS1mb3INCj4g
dW0tMjAxNy1zbGlkZXMucGRmDQo+IA0KPiBIb3BlZnVsbHksIHRoZXkgYXJlIGltcHJvdm1lbnRz
IHdpdGggdGhlICJuZXciIHN1Yi1jbHVzdGVyIGZlYXR1cmUgDQo+IGh0dHBzOi8vcGVvcGxlLmln
YWxpYS5jb20vYmVydG8vZmlsZXMva3ZtLWZvcnVtLTIwMjAtc2xpZGVzLnBkZg0KPiBJJ20gYWxy
ZWFkeSB1c2luZyBpdCBhdCBzbmFwc2hvdCBjcmVhdGUsIGJ1dCBJIHRoaW5rIHdlIHNob3VsZCBh
bHNvIA0KPiB1c2UgaXQgZm9yIG1haW4gcWNvdzIgdm9sdW1lLg0KPiANCj4gDQo+IEJ1dCBldmVu
IHdpdGggdGhhdCwgeW91IGNhbiBzdGlsbCBoYXZlIHBlcmZvcm1hbmNlIGltcGFjdC4NCj4gU28g
eWVzLCBJIHRoaW5rIHRoZXkgYXJlIHJlYWxseSB1c2VjYXNlIGZvciB3b3JrbG9hZCB3aGVuIHlv
dSBvbmx5IA0KPiBuZWVkIHNuYXBzaG90IHRpbWUgdG8gdGltZSAoYmVmb3JlIGFuIHVwZ3JhZGUg
Zm9yIGV4YW1wbGUpLCBidXQgbWF4IA0KPiBwZXJmb3JtYW5jZSB3aXRoIG5vIHNuYXBob3QgZXhp
c3QuDQoNCm15IG1haW4gcG9pbnQgaGVyZSBpcyAtIGFsbCBvdGhlciBzdG9yYWdlcyB0cmVhdCBz
bmFwc2hvdHMgYXMgImNoZWFwIi4gaWYgeW91IGNvbWJpbmUgcmF3K3Fjb3cyIHNuYXBzaG90IG92
ZXJsYXlzLCBzdWRkZW5seSBwZXJmb3JtYW5jZSB3aWxsIGdldCB3b3JzZSBpZiB5b3Uga2VlcCBh
IHNuYXBzaG90IGFyb3VuZCBmb3Igd2hhdGV2ZXIgcmVhc29uLi4gDQogDQo+ID4+IGl0J3MgYSBi
aXQgY29uZnVzaW5nIHRvIGhhdmUgYSB2b2xpZCBlbmRpbmcgd2l0aCByYXcsIHdpdGggdGhlIA0K
PiA+PmN1cnJlbnQgdm9sdW1lIGFuZCBhbGwgYnV0IHRoZSBmaXJzdCBzbmFwc2hvdCBhY3R1YWxs
eSBiZWluZyBzdG9yZWQgDQo+ID4+aW4gcWNvdzIgZmlsZXMsIHdpdGggdGhlIHJhdyBmaWxlIGJl
aW5nIHRoZSAib2xkZXN0IiBzbmFwc2hvdCBpbiB0aGUgDQo+ID4+Y2hhaW4uLg0KDQo+IGlmIGl0
J3MgdG9vIGNvbmZ1c2luZywgd2UgY291bGQgdXNlIGZvciBleGFtcGxlIGFuIC5zbmFwIGV4dGVu
c2lvbi4NCj4gKGFzIHdlIGtub3duIHRoYXQgaXQncyBxY293MiBiZWhpbmQpDQoNCkkgaGF2ZW4n
dCB0aG91Z2h0IHlldCBhYm91dCBob3cgdG8gZW5jb2RlIHRoZSBzbmFwc2hvdCBuYW1lIGludG8g
dGhlIHNuYXBzaG90IGZpbGUgbmFtZSwgYnV0IHllYWgsIG1heWJlIHNvbWV0aGluZyBsaWtlICB0
aGF0IHdvdWxkIGJlIGdvb2QuIG9yIG1heWJlIHNuYXAtVk1JRC1kaXNrLURJU0sucWNvdzIgPw0K
DQo+IGlmIHBvc3NpYmxlLCBJJ2QgYmUgbXVjaCBoYXBwaWVyIHdpdGggdGhlIHNuYXBzaG90IG5h
bWUgaW4gdGhlIA0KPiBzbmFwc2hvdCBmaWxlIGJlaW5nIGEgMToxIG1hdGNoLCBzZWUgY29tbWVu
dHMgaW5saW5lDQo+IA0KPiA+Pi0gbWFrZXMgaXQgYSBsb3QgZWFzaWVyIHRvIHVuZGVyc3RhbmQg
KGFkbWluIHdhbnRzIHRvIG1hbnVhbGx5IA0KPiA+PnJlbW92ZSBzbmFwc2hvdCAiZm9vIiwgaWYg
ImZvbyIgd2FzIHRoZSBsYXN0IHNuYXBzaG90IHRoZW4gcmlnaHQgbm93IA0KPiA+PnRoZSB2b2x1
bWUgY2FsbGVkICJmb28iIGlzIGFjdHVhbGx5IHRoZSBjdXJyZW50IGNvbnRlbnRzISkNCj4gDQo+
IFRoaXMgcGFydCBpcyByZWFsbHkgZGlmZmljdWx0LCBiZWNhdXNlIHlvdSBjYW4ndCBrbm93biBp
biBhZHZhbmNlIHRoZSANCj4gbmFtZSBvZiB0aGUgc25hcHNob3QgeW91J2xsIHRha2UgaW4gdGhl
IGZ1dHVyZS4gVGhlIG9ubHkgd2F5IGNvdWxkIGJlIA0KPiB0byBjcmVhdGUgYSAiY3VycmVudCIg
dm9sdW1lICwgIHJlbmFtZSBpdCB3aGVuIHlvdSB0b29rIGFub3RoZXIgDQo+IHNuYXNwaG90IChJ
J20gbm90IHN1cmUgaXQncyBwb3NzaWJsZSB0byBkbyBpdCBsaXZlLCBhbmQgdGhpcyBjb3VsZCAN
Cj4gYnJlYWsgbGluayBjaGFpbiB0b28pDQo+IA0KPiBBbHNvLCBJIGRvbid0IGtub3duIGhvdyB0
byBtYW5hZ2UgdGhlIG1haW4gdm9sdW1lLCB3aGVuIHlvdSB0YWtlIHRoZSANCj4gZmlyc3Qgc25h
cHNob3QgPyB3ZSBzaG91bGQgcmVuYW1lIGl0IHRvby4NCg0KSSBtZWFuLCBpZiB3ZSBkb24ndCBh
bGxvdyAucmF3IGZpbGVzIHRvIGJlIHNuYXBzaG90dGVkIHRoZW4gdGhpcyBwcm9ibGVtIGRvZXNu
J3QgZXhpc3QgOykNCg0KPiBzbyAidm0tZGlzay0xMDAtZGlzay0wLnJhd3xxY293MiIgICwgYmVj
b21lICJ2bS1kaXNrLTEwMC1kaXNrLTAtIA0KPiBzbmFwMS4ocmF3fHFjb3cyKSIgKyBuZXcgInZt
LWRpc2stMTAwLWRpc2stMC1jdXJyZW50LnFjb3cyIiA/DQoNCnRoZSB2b2xpZCBjaGFuZ2luZyBv
biBzbmFwc2hvdCBzZWVtcyBsaWtlIGl0IHdvdWxkIHJlcXVpcmUgYSBsb3Qgb2YgYWRhcHRpb24u
LiBPVE9ILCB0aGUgdm9saWQgY29udGFpbmluZyBhIHdyb25nIGZvcm1hdCBtaWdodCBhbHNvIGJy
ZWFrIHRoaW5ncy4NCg0KPiBJJ2xsIHRyeSB0byBkbyB0ZXN0IGFnYWluIHRvIHNlZSB3aGF0IGlz
IHBvc3NpYmxlLg0KPiANCj4gDQo+IA0KPiANCj4gPj4tIG1lYW5zIHdlIGRvbid0IGhhdmUgdG8g
ZG8gbG9va3VwcyB2aWEgdGhlIGZ1bGwgc25hcHNob3QgbGlzdCBhbGwgDQo+ID4+dGhlIHRpbWUg
KGUuZy4sIGlmIEkgd2FudCB0byBkbyBhIGZ1bGwgY2xvbmUgZnJvbSBhIHNuYXBzaG90ICJmb28i
LCANCj4gPj5JIGNhbiBqdXN0IHBhc3MgdGhlIHNuYXAtZm9vIHZvbHVtZSB0byBxZW11LWltZykN
Cj4gDQo+IG9rIGdvdCBpdA0KPiANCj4gDQo+IA0KPiA+PnRoZSBuYW1pbmcgc2NoZW1lIGZvciBz
bmFwc2hvdHMgbmVlZHMgdG8gYmUgYWRhcHRlZCB0byBub3QgY2xhc2ggDQo+ID4+d2l0aCByZWd1
bGFyIHZvbHVtZXM6DQo+IA0KPiA+PiQgcHZlc20gYWxsb2MgZXh0c25hcCAxMzEzMTQgdm0tMTMx
MzE0LWRpc2stZm9vYmFyLnFjb3cyIDJHIA0KPiA+PkZvcm1hdHRpbmcgJy9tbnQvcHZlL2V4dDQv
ZXh0c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1kaXNrLQ0KPiA+PmZvb2Jhci5xY293Mics
IGZtdD1xY293MiBjbHVzdGVyX3NpemU9NjU1MzYgZXh0ZW5kZWRfbDI9b2ZmIA0KPiA+PnByZWFs
bG9jYXRpb249b2ZmIGNvbXByZXNzaW9uX3R5cGU9emxpYiBzaXplPTIxNDc0ODM2NDggDQo+ID4+
bGF6eV9yZWZjb3VudHM9b2ZmIHJlZmNvdW50X2JpdHM9MTYgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQg
DQo+ID4+J2V4dHNuYXA6MTMxMzE0L3ZtLTEzMTMxNC1kaXNrLWZvb2Jhci5xY293MicNCj4gPj4k
IHFtIHJlc2NhbiAtLXZtaWQgMTMxMzE0DQo+ID4+cmVzY2FuIHZvbHVtZXMuLi4NCj4gPj5jYW4n
dCBwYXJzZSBzbmFwbmFtZSBmcm9tIHBhdGggYXQNCj4gPj4vdXNyL3NoYXJlL3Blcmw1L1BWRS9T
dG9yYWdlL1BsdWdpbi5wbSBsaW5lIDE5MzQuDQo+IA0KPiBhbnkgcHJlZmVyZW5jZSBmb3IgbmFt
aW5nIHNjaGVtZSA/IGZvciBsdm0gZXh0ZXJuYWwgc25hcCwgSSBoYXZlIHVzZWQgDQo+ICJ2bS0x
MzEzMTQtZGlzay0wLXNuYXAtPGZvb2Jhcj4iOw0KDQpzZWUgYWJvdmUNCg0KPiA+PnN0b3JhZ2Vf
bWlncmF0ZSBuZWVkcyB0byBoYW5kbGUgZXh0ZXJuYWwgc25hcHNob3RzLCBvciBhdCBsZWFzdCAN
Cj4gPj5lcnJvciBvdXQuDQo+IGl0IHNob3VsZCBhbHJlYWR5IHdvcmsuIChJIGhhdmUgdGVzdGVk
IG1vdmVfZGlzaywgYW5kIGxpdmUgbWlncmF0aW9uICsgDQo+IHN0b3JhZ2UgbWlncmF0aW9uKS4g
cWVtdV9pbWdfY29udmVydCBvZmZsaW5lIGFuZCBxZW11IGJsb2NrIGpvYiBmb3IgDQo+IGxpdmUu
DQoNCmJ1dCBkb24ndCBhbGwgb2YgdGhvc2UgbG9zZSB0aGUgc25hcHNob3RzPyBkaWQgeW91IHRl
c3QgaXQgd2l0aCBzbmFwc2hvdHMgYW5kIHJvbGxiYWNrIGFmdGVyd2FyZHM/DQoNCj4gPj5JIGhh
dmVuJ3QgdGVzdGVkIHRoYXQgcGFydCBvciBsaW5rZWQgY2xvbmVzIG9yIGEgbG90IG9mIG90aGVy
IA0KPiA+PmFkdmFuY2VkIHJlbGF0ZWQgYWN0aW9ucyBhdCBhbGwgOykNCj4gDQo+IEZvciBsaW5r
ZWQgY2xvbmUsIHdlIGNhbid0IGhhdmUgYSBiYXNlIGltYWdlIHdpdGggc25hcHNob3RzIChvdGhl
ciANCj4gdGhhbiBfYmFzZV8pLiBzbyBJdCdsbCBiZSBzYWZlLg0KDQphY2sNCg0KPiA+IEFsZXhh
bmRyZSBEZXJ1bWllciB2aWEgcHZlLWRldmVsIDxwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20+
IGhhdCANCj4gPiBhbQ0KPiA+IDMwLjA5LjIwMjQgMTM6MzEgQ0VTVCBnZXNjaHJpZWJlbjoNCj4g
PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgRGVydW1pZXIgPGFsZXhhbmRyZS5kZXJ1bWllckBn
cm91cGUtIA0KPiA+IGN5bGxlbmUuY29tPg0KPiA+IC0tLQ0KPiA+IMKgc3JjL1BWRS9TdG9yYWdl
L0RpclBsdWdpbi5wbSB8wqDCoCAxICsNCj4gPiDCoHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4ucG3C
oMKgwqAgfCAyMjUgDQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+ID4g
LS0NCj4gPiDCoDIgZmlsZXMgY2hhbmdlZCwgMjAxIGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9u
cygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvRGlyUGx1Z2luLnBt
IA0KPiA+IGIvc3JjL1BWRS9TdG9yYWdlL0RpclBsdWdpbi5wbSBpbmRleCAyZWZhOGQ1Li4yYmVm
NjczIDEwMDY0NA0KPiA+IC0tLSBhL3NyYy9QVkUvU3RvcmFnZS9EaXJQbHVnaW4ucG0NCj4gPiAr
KysgYi9zcmMvUFZFL1N0b3JhZ2UvRGlyUGx1Z2luLnBtDQo+ID4gQEAgLTgwLDYgKzgwLDcgQEAg
c3ViIG9wdGlvbnMgew0KPiA+IMKgIGlzX21vdW50cG9pbnQgPT4geyBvcHRpb25hbCA9PiAxIH0s
DQo+ID4gwqAgYndsaW1pdCA9PiB7IG9wdGlvbmFsID0+IDEgfSwNCj4gPiDCoCBwcmVhbGxvY2F0
aW9uID0+IHsgb3B0aW9uYWwgPT4gMSB9LA0KPiA+ICsgc25hcGV4dCA9PiB7IG9wdGlvbmFsID0+
IDEgfSwNCj4gPiDCoMKgwqAgfTsNCj4gPiDCoH0NCj4gPiDCoA0KPiA+IGRpZmYgLS1naXQgYS9z
cmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtIGIvc3JjL1BWRS9TdG9yYWdlL1BsdWdpbi5wbSANCj4g
PiBpbmRleCA2NDQ0MzkwLi41ZTUxOTdhIDEwMDY0NA0KPiA+IC0tLSBhL3NyYy9QVkUvU3RvcmFn
ZS9QbHVnaW4ucG0NCj4gPiArKysgYi9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtDQo+ID4gQEAg
LTIxNCw2ICsyMTQsMTEgQEAgbXkgJGRlZmF1bHREYXRhID0gew0KPiA+IMKgIMKgwqDCoCBtYXhp
bXVtID0+IDY1NTM1LA0KPiA+IMKgIMKgwqDCoCBvcHRpb25hbCA9PiAxLA0KPiA+IMKgIH0sDQo+
ID4gK8KgwqDCoMKgwqDCoMKgICdzbmFwZXh0JyA9PiB7DQo+ID4gKyDCoMKgwqAgdHlwZSA9PiAn
Ym9vbGVhbicsDQo+ID4gKyDCoMKgwqAgZGVzY3JpcHRpb24gPT4gJ2VuYWJsZSBleHRlcm5hbCBz
bmFwc2hvdC4nLA0KPiA+ICsgwqDCoMKgIG9wdGlvbmFsID0+IDEsDQo+ID4gK8KgwqDCoMKgwqDC
oMKgIH0sDQo+ID4gwqDCoMKgwqAgfSwNCj4gPiDCoH07DQo+ID4gwqANCj4gPiBAQCAtNjk1LDcg
KzcwMCw3IEBAIHN1YiBnZXRfc3ViZGlyIHsNCj4gPiDCoH0NCj4gPiDCoA0KPiA+IMKgc3ViIGZp
bGVzeXN0ZW1fcGF0aCB7DQo+ID4gLcKgwqDCoCBteSAoJGNsYXNzLCAkc2NmZywgJHZvbG5hbWUs
ICRzbmFwbmFtZSkgPSBAXzsNCj4gPiArwqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAkdm9sbmFt
ZSwgJHNuYXBuYW1lLCAkY3VycmVudF9zbmFwKSA9IEBfOw0KPiANCj4gc2VlIGNvbW1lbnQgYmVs
b3cNCj4gDQo+ID4gwqANCj4gPiDCoMKgwqDCoCBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsIHVu
ZGVmLCB1bmRlZiwgJGlzQmFzZSwgJGZvcm1hdCkgPQ0KPiA+IMKgICRjbGFzcy0+cGFyc2Vfdm9s
bmFtZSgkdm9sbmFtZSk7DQo+ID4gQEAgLTcwMyw3ICs3MDgsNyBAQCBzdWIgZmlsZXN5c3RlbV9w
YXRoIHsNCj4gPiDCoMKgwqDCoCAjIE5vdGU6IHFjb3cyL3FlZCBoYXMgaW50ZXJuYWwgc25hcHNo
b3QsIHNvIHBhdGggaXMgYWx3YXlzDQo+ID4gwqDCoMKgwqAgIyB0aGUgc2FtZSAod2l0aCBvciB3
aXRob3V0IHNuYXBzaG90ID0+IHNhbWUgZmlsZSkuDQo+ID4gwqDCoMKgwqAgZGllICJjYW4ndCBz
bmFwc2hvdCB0aGlzIGltYWdlIGZvcm1hdFxuIg0KPiA+IC0gaWYgZGVmaW5lZCgkc25hcG5hbWUp
ICYmICRmb3JtYXQgIX4gbS9eKHFjb3cyfHFlZCkkLzsNCj4gPiArIGlmIGRlZmluZWQoJHNuYXBu
YW1lKSAmJiAhJHNjZmctPntzbmFwZXh0fSAmJiAkZm9ybWF0ICF+DQo+ID4gbS9eKHFjb3cyfHFl
ZCkkLzsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgIG15ICRkaXIgPSAkY2xhc3MtPmdldF9zdWJkaXIo
JHNjZmcsICR2dHlwZSk7DQo+ID4gwqANCj4gPiBAQCAtNzExLDEzICs3MTYsMjIgQEAgc3ViIGZp
bGVzeXN0ZW1fcGF0aCB7DQo+ID4gwqANCj4gPiDCoMKgwqDCoCBteSAkcGF0aCA9ICIkZGlyLyRu
YW1lIjsNCj4gPiDCoA0KPiA+ICvCoMKgwqAgaWYoJHNjZmctPntzbmFwZXh0fSkgew0KPiA+ICsg
bXkgJHNuYXBwYXRoID0gZ2V0X3NuYXBfcGF0aCgkcGF0aCwgJHNuYXBuYW1lKTsNCj4gPiArIGlm
KCRzbmFwbmFtZSkgew0KPiA+ICsgwqDCoMKgICRwYXRoID0gJHNuYXBwYXRoOw0KPiA+ICsgfSBl
bHNpZiAoJGN1cnJlbnRfc25hcCkgew0KPiA+ICsgwqDCoMKgICRwYXRoID0gJGN1cnJlbnRfc25h
cC0+e2ZpbGV9OyAgfQ0KPiA+ICvCoMKgwqAgfQ0KPiANCj4gc2VlIGNvbW1lbnRlIGJlbG93DQo+
IA0KPiA+IMKgwqDCoMKgIHJldHVybiB3YW50YXJyYXkgPyAoJHBhdGgsICR2bWlkLCAkdnR5cGUp
IDogJHBhdGg7DQo+ID4gwqB9DQo+ID4gwqANCj4gPiDCoHN1YiBwYXRoIHsNCj4gPiDCoMKgwqDC
oCBteSAoJGNsYXNzLCAkc2NmZywgJHZvbG5hbWUsICRzdG9yZWlkLCAkc25hcG5hbWUpID0gQF87
DQo+ID4gwqANCj4gPiAtwqDCoMKgIHJldHVybiAkY2xhc3MtPmZpbGVzeXN0ZW1fcGF0aCgkc2Nm
ZywgJHZvbG5hbWUsICRzbmFwbmFtZSk7DQo+ID4gK8KgwqDCoCBteSAkY3VycmVudF9zbmFwc2hv
dCA9ICRjbGFzcy0+Z2V0X2N1cnJlbnRfc25hcHNob3QoJHNjZmcsDQo+ID4gJHN0b3JlaWQsICR2
b2xuYW1lKTsNCj4gDQo+ID4+dGhpcyBpcyBwcmV0dHkgZXhwZW5zaXZlLCBhbmQgd291bGQgb25s
eSBiZSBuZWVkZWQgaWYgJHNuYXBuYW1lIGlzIA0KPiA+Pm5vdCBzZXQuLg0KPiANCj4gVGhlIG1h
aW4gcHJvYmxlbSBpcyB3aGVuIHlvdSBzdGFydCBhIHZtIG9uIGEgc3BlY2lmaWMgc25hc3Bob3Qs
IHdlIA0KPiBkb24ndCBzZW5kIHRoZSAkc25hcG5hbWUgcGFyYW0uDQo+IA0KPiBPbmUgd2F5IGNv
dWxkIGJlIHRoYXQgcWVtdS1zZXJ2ZXIgY2hlY2sgdGhlIGN1cnJlbnQgc25hcHNob3QgZnJvbSAN
Cj4gY29uZmlnIHdoZW4gZG9pbmcgc3BlY2lmaWMgYWN0aW9uIGxpa2Ugc3RhcnQuDQoNCmlmIHdl
IG1hbmFnZSB0byBmaW5kIGEgd2F5IHRvIG1ha2UgdGhlIHZvbGlkIGFsd2F5cyBwb2ludCBhdCB0
aGUgdG9wIG92ZXJsYXksIHRoZW4gdGhhdCB3b3VsZG4ndCBiZSBuZWVkZWQuLg0KDQo+ID4gK8Kg
wqDCoCByZXR1cm4gJGNsYXNzLT5maWxlc3lzdGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lLCAkc25h
cG5hbWUsDQo+ID4gJGN1cnJlbnRfc25hcHNob3QpOw0KPiANCj4gPj5jb3VsZG4ndCB3ZSBhdm9p
ZCBleHRlbmRpbmcgdGhlIHNpZ25hdHVyZSBvZiBmaWxlc3lzdGVtX3BhdGggYW5kIA0KPiA+Pmp1
c3QNCj4gcGFzcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBzbmFwc2hvdCBhcyAkc25hcG5hbWU/
DQo+IA0KPiBJIG5lZWQgdG8gcmVkbyB0ZXN0LCBJIGRvbid0IHJlbWVtYmVyIHdoeSBJIGhhdmUg
c3BsaXR0ZWQgdGhlbSwgYnV0IA0KPiB5b3UgYXJlIHJpZ2h0LCBpdCBzaG91bGQgYmUgY2xlYW5l
ci4NCj4gDQo+ID4gwqB9DQo+ID4gwqANCj4gPiDCoHN1YiBjcmVhdGVfYmFzZSB7DQo+ID4gQEAg
LTEwNzQsMTMgKzEwODgsMzEgQEAgc3ViIHZvbHVtZV9yZXNpemUgew0KPiA+IMKgc3ViIHZvbHVt
ZV9zbmFwc2hvdCB7DQo+ID4gwqDCoMKgwqAgbXkgKCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAk
dm9sbmFtZSwgJHNuYXApID0gQF87DQo+ID4gwqANCj4gPiAtwqDCoMKgIGRpZSAiY2FuJ3Qgc25h
cHNob3QgdGhpcyBpbWFnZSBmb3JtYXRcbiIgaWYgJHZvbG5hbWUgIX4gDQo+ID4gbS9cLihxY293
MnxxZWQpJC87DQo+ID4gK8KgwqDCoCBkaWUgImNhbid0IHNuYXBzaG90IHRoaXMgaW1hZ2UgZm9y
bWF0XG4iIGlmICR2b2xuYW1lICF+DQo+ID4gbS9cLihyYXd8cWNvdzJ8cWVkKSQvOw0KPiA+IMKg
DQo+ID4gLcKgwqDCoCBteSAkcGF0aCA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRzY2ZnLCAk
dm9sbmFtZSk7DQo+ID4gK8KgwqDCoCBkaWUgImV4dGVybmFsIHNuYXBzaG90IG5lZWQgdG8gYmUg
ZW5hYmxlZCB0byBzbmFwc2hvdCAucmF3DQo+ID4gdm9sdW1lc1xuIiBpZiAhJHNjZmctPntzbmFw
ZXh0fTsNCj4gDQo+ID4+dGhpcyBjb25kaXRpb24gaXMgZGVmaW5pdGVseSB3cm9uZyAtIGl0IG1l
YW5zIG5vIG1vcmUgc25hcHNob3R0aW5nIA0KPiA+PnVubGVzcyBleHRlcm5hbCBzbmFwc2hvdCBz
dXBwb3J0IGlzIGVuYWJsZWQuLg0KPiANCj4gb29wcywgc29ycnkuDQo+IA0KPiA+IMKgDQo+ID4g
LcKgwqDCoCBteSAkY21kID0gWycvdXNyL2Jpbi9xZW11LWltZycsICdzbmFwc2hvdCcsJy1jJywg
JHNuYXAsICRwYXRoXTsNCj4gPiArwqDCoMKgIGlmKCRzY2ZnLT57c25hcGV4dH0pIHsNCj4gPiDC
oA0KPiA+IC3CoMKgwqAgcnVuX2NvbW1hbmQoJGNtZCk7DQo+ID4gKyBteSAkcGF0aCA9ICRjbGFz
cy0+cGF0aCgkc2NmZywgJHZvbG5hbWUsICRzdG9yZWlkKTsNCj4gPiArDQo+ID4gKyBteSAkc25h
cHBhdGggPSBnZXRfc25hcF9wYXRoKCRwYXRoLCAkc25hcCk7IG15ICRmb3JtYXQgPSANCj4gPiAr
ICgkY2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUpKVs2XTsNCj4gPiArDQo+ID4gKyBteSAk
Y21kID0gWycvdXNyL2Jpbi9xZW11LWltZycsICdjcmVhdGUnLCAnLWInLCAkcGF0aCwNCj4gPiAr
IMKgwqAgJy1GJywgJGZvcm1hdCwgJy1mJywgJ3Fjb3cyJywgJHNuYXBwYXRoXTsNCj4gDQo+ID4+
c2VlIGNvbW1lbnRzIG9uIHFlbXUtc2VydmVyLCBidXQuLiB3b3VsZG4ndCBpdCBiZSBiZXR0ZXIg
aWYgdGhlIGZpbGUgDQo+ID4+d2l0aCAkc25hcCBpbiBpdHMgbmFtZSB3b3VsZCBiZSB0aGUgb25l
IHN0b3JpbmcgdGhhdCBzbmFwc2hvdCdzIGRhdGE/DQo+ID4+aS5lLiwgcmVuYW1lIHRoZSAiY3Vy
cmVudCIgdm9sdW1lIHRvIGJlIGNhbGxlZCAuLi4tJHNuYXAuLi4gLCBhbmQgDQo+ID4+dGhlbiBj
cmVhdGUgYSBuZXcgImN1cnJlbnQiIGZpbGUgd2l0aG91dCBhIHN1ZmZpeCB3aXRoIHRoZSByZW5h
bWVkIA0KPiA+PnZvbHVtZSBhcyBiYWNraW5nIGZpbGU/DQo+IA0KPiBJJ2xsIHRyeSBpdCAhDQo+
IA0KPiA+ICsNCj4gPiArIG15ICRvcHRpb25zID0gImV4dGVuZGVkX2wyPW9uLCI7DQo+ID4gKyAk
b3B0aW9ucyAuPSBwcmVhbGxvY2F0aW9uX2NtZF9vcHRpb24oJHNjZmcsICdxY293MicpOyBwdXNo
IEAkY21kLCANCj4gPiArICctbycsICRvcHRpb25zOyBydW5fY29tbWFuZCgkY21kKTsNCj4gPiAr
DQo+ID4gK8KgwqDCoCB9IGVsc2Ugew0KPiA+ICsNCj4gPiArIG15ICRwYXRoID0gJGNsYXNzLT5m
aWxlc3lzdGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lKTsgIG15ICRjbWQgPSANCj4gPiArWycvdXNy
L2Jpbi9xZW11LWltZycsICdzbmFwc2hvdCcsJy1jJywgJHNuYXAsICRwYXRoXTsgIA0KPiA+ICty
dW5fY29tbWFuZCgkY21kKTsNCj4gPiArwqDCoMKgIH0NCj4gPiDCoA0KPiA+IMKgwqDCoMKgIHJl
dHVybiB1bmRlZjsNCj4gPiDCoH0NCj4gPiBAQCAtMTA5MSwxOSArMTEyMywzOSBAQCBzdWIgdm9s
dW1lX3NuYXBzaG90IHsNCj4gPiDCoHN1YiB2b2x1bWVfcm9sbGJhY2tfaXNfcG9zc2libGUgew0K
PiA+IMKgwqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFw
LCAkYmxvY2tlcnMpID0gQF87DQo+ID4gwqANCj4gPiArwqDCoMKgIGlmICgkc2NmZy0+e3NuYXBl
eHR9KSB7DQo+ID4gKyAjdGVjaG5pY2FsbHksIHdlIGNvdWxkIG1hbmFnZSBtdWx0aWJyYW5jaCwg
d2UgaXQgbmVlZCBsb3QgbW9yZSANCj4gPiArd29yaw0KPiA+IGZvciBzbmFwc2hvdCBkZWxldGUN
Cj4gDQo+ID4+d291bGQgbXVsdGlicmFuY2ggYmUgZWFzaWVyIGlmIHRoZXJlIGlzIGEgc2ltcGxl
IDE6MSBjb3JyZXNwb25kZW5jZSANCj4gPj5iZXR3ZWVuIHNuYXBzaG90cyBhbmQgdGhlaXIgZmls
ZW5hbWVzPw0KPiA+Pg0KPiA+PnN3aXRjaGluZyB0byBhIGRpZmZlcmVudCBwYXJ0IG9mIHRoZSAi
aGllcmFyY2h5IiBpcyB0aGVuIGp1c3QNCj4gPj4tIGRlbGV0ZSBjdXJyZW50IHZvbHVtZQ0KPiA+
Pi0gY3JlYXRlIG5ldyBjdXJyZW50IHZvbHVtZSB1c2luZyByb2xsYmFjayB0YXJnZXQgYXMgYmFj
a2luZyBmaWxlDQo+IHRoZSByb2xsYmFjay9icmFuY2ggc3dpdGNoIGlzIG5vdCB0b28gZGlmZmlj
dWx0LCBtYXliZSAxOjEgbmFtaW5nIA0KPiBjb3VsZCBoZWxwLg0KPiANCj4gPj5JIGd1ZXNzIGRl
bGV0aW9uIGRvZXMgYmVjb21lIGhhcmRlciB0aGVuLCBzaW5jZSBpdCBwb3RlbnRpYWxseSANCj4g
Pj5yZXF1aXJlcyBtdWx0aXBsZSByZWJhc2VzLi4NCj4gDQo+IHllcywgVGhlIGJpZ2dlc3QgZGlm
ZmljdWx0eSBpcyBzbmFwc2hvdCBkZWxldGUsIGFzIHlvdSBuZWVkIHRvIGNyZWF0ZSANCj4gYSBi
bG9jay1zdHJlYW0gIGpvYiwgbWVyZ2luL3dyaXRpbmcgdG8gZWFjaCBicmFuY2ggY2hpbGQsIGFu
ZCB5b3UgbmVlZCANCj4gdG8gZG8gaXQgYXRvbWljYWxseSB3aXRoIGEgdHJhbnNhY3Rpb24gd2l0
aCBtdWx0aXBsZSBqb2JzLg0KPiBTbyB5ZXMsIGl0J3MgcG9zc2libGUsIGJ1dCBJIHdhbnRlZCB0
byBrZWVwIGl0IGVhc3kgZm9yIG5vdy4NCg0Kc3VyZSwgdGhpcyByZXN0cmljdGlvbiBjb3VsZCBi
ZSBsaWZ0ZWQgaW4gYSBmb2xsb3ctdXAhDQoNCj4gPiArIG15ICRwYXRoID0gJGNsYXNzLT5maWxl
c3lzdGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lKTsgbXkgJHNuYXBwYXRoIA0KPiA+ICsgPSBnZXRf
c25hcF9wYXRoKCRwYXRoLCAkc25hcCk7DQo+ID4gKw0KPiA+ICsgbXkgJHNuYXBzaG90cyA9ICRj
bGFzcy0+dm9sdW1lX3NuYXBzaG90X2luZm8oJHNjZmcsICRzdG9yZWlkLA0KPiA+ICR2b2xuYW1l
KTsNCj4gPiArIG15ICRjdXJyZW50cGF0aCA9ICRzbmFwc2hvdHMtPntjdXJyZW50fS0+e2ZpbGV9
OyByZXR1cm4gMSBpZiAhLWUgDQo+ID4gKyAkc25hcHBhdGggfHwgJGN1cnJlbnRwYXRoIGVxICRz
bmFwcGF0aDsNCj4gPiArDQo+ID4gKyBkaWUgImNhbid0IHJvbGxiYWNrLCAnJHNuYXAnIGlzIG5v
dCBtb3N0IHJlY2VudCBzbmFwc2hvdCBvbg0KPiA+ICckdm9sbmFtZSdcbiI7DQo+ID4gK8KgwqDC
oCB9DQo+ID4gKw0KPiA+IMKgwqDCoMKgIHJldHVybiAxOw0KPiA+IMKgfQ0KPiA+IMKgDQo+ID4g
wqBzdWIgdm9sdW1lX3NuYXBzaG90X3JvbGxiYWNrIHsNCj4gPiDCoMKgwqDCoCBteSAoJGNsYXNz
LCAkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAkc25hcCkgPSBAXzsNCj4gPiDCoA0KPiA+IC3C
oMKgwqAgZGllICJjYW4ndCByb2xsYmFjayBzbmFwc2hvdCB0aGlzIGltYWdlIGZvcm1hdFxuIiBp
ZiAkdm9sbmFtZSANCj4gPiAhfiBtL1wuKHFjb3cyfHFlZCkkLzsNCj4gPiArwqDCoMKgIGRpZSAi
Y2FuJ3Qgcm9sbGJhY2sgc25hcHNob3QgdGhpcyBpbWFnZSBmb3JtYXRcbiIgaWYgJHZvbG5hbWUg
DQo+ID4gKyF+DQo+ID4gbS9cLihyYXd8cWNvdzJ8cWVkKSQvOw0KPiA+IMKgDQo+ID4gLcKgwqDC
oCBteSAkcGF0aCA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRzY2ZnLCAkdm9sbmFtZSk7DQo+
ID4gK8KgwqDCoCBkaWUgImV4dGVybmFsIHNuYXBzaG90IG5lZWQgdG8gYmUgZW5hYmxlZCB0byBy
b2xsYmFjayBzbmFwc2hvdA0KPiA+IC5yYXcgdm9sdW1lc1xuIiBpZiAkdm9sbmFtZSA9fiBtL1wu
KHJhdykkLyAmJiAhJHNjZmctPntzbmFwZXh0fTsNCj4gPiDCoA0KPiA+IC3CoMKgwqAgbXkgJGNt
ZCA9IFsnL3Vzci9iaW4vcWVtdS1pbWcnLCAnc25hcHNob3QnLCctYScsICRzbmFwLCAkcGF0aF07
DQo+ID4gK8KgwqDCoCBteSAkcGF0aCA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRzY2ZnLCAk
dm9sbmFtZSk7DQo+ID4gwqANCj4gPiAtwqDCoMKgIHJ1bl9jb21tYW5kKCRjbWQpOw0KPiA+ICvC
oMKgwqAgaWYgKCRzY2ZnLT57c25hcGV4dH0pIHsNCj4gPiArICNzaW1wbHkgZGVsZXRlIHRoZSBj
dXJyZW50IHNuYXBzaG90IGFuZCByZWNyZWF0ZSBpdCAgbXkgJHNuYXBwYXRoIA0KPiA+ICs9IGdl
dF9zbmFwX3BhdGgoJHBhdGgsICRzbmFwKTsgIHVubGluaygkc25hcHBhdGgpOyAgDQo+ID4gKyRj
bGFzcy0+dm9sdW1lX3NuYXBzaG90KCRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwKTsN
Cj4gDQo+IHRoaXMgKnJlYWRzKiBzbyB3ZWlyZCA7KSBpdCBpcyByaWdodCBnaXZlbiB0aGUgY3Vy
cmVudCBzZW1hbnRpY3MgDQo+IChjdXJyZW50IHNuYXBzaG90ID09IGxpdmUgaW1hZ2UsIHNuYXBz
aG90IGRhdGEgYWN0dWFsbHkgc3RvcmVkIGluIA0KPiBwYXJlbnQgc25hcHNob3QpDQo+IA0KPiA+
ICvCoMKgwqAgfSBlbHNlIHsNCj4gPiArIG15ICRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywg
J3NuYXBzaG90JywnLWEnLCAkc25hcCwgJHBhdGhdOyAgDQo+ID4gK3J1bl9jb21tYW5kKCRjbWQp
Ow0KPiA+ICvCoMKgwqAgfQ0KPiA+IMKgDQo+ID4gwqDCoMKgwqAgcmV0dXJuIHVuZGVmOw0KPiA+
IMKgfQ0KPiA+IEBAIC0xMTExLDE3ICsxMTYzLDUwIEBAIHN1YiB2b2x1bWVfc25hcHNob3Rfcm9s
bGJhY2sgew0KPiA+IMKgc3ViIHZvbHVtZV9zbmFwc2hvdF9kZWxldGUgew0KPiA+IMKgwqDCoMKg
IG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwLCAkcnVubmluZykg
PSBAXzsNCj4gPiDCoA0KPiA+IC3CoMKgwqAgZGllICJjYW4ndCBkZWxldGUgc25hcHNob3QgZm9y
IHRoaXMgaW1hZ2UgZm9ybWF0XG4iIGlmICR2b2xuYW1lIA0KPiA+ICF+IG0vXC4ocWNvdzJ8cWVk
KSQvOw0KPiA+ICvCoMKgwqAgZGllICJjYW4ndCBkZWxldGUgc25hcHNob3QgZm9yIHRoaXMgaW1h
Z2UgZm9ybWF0XG4iIGlmICR2b2xuYW1lDQo+ID4gIX4gbS9cLihyYXd8cWNvdzJ8cWVkKSQvOw0K
PiA+ICsNCj4gPiArwqDCoMKgIGRpZSAiZXh0ZXJuYWwgc25hcHNob3QgbmVlZCB0byBiZSBlbmFi
bGVkIHRvIGRlbGV0ZSBzbmFwc2hvdCBvZg0KPiA+IC5yYXcgdm9sdW1lc1xuIiBpZiAhJHNjZmct
PntzbmFwZXh0fTsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgIHJldHVybiAxIGlmICRydW5uaW5nOw0K
PiA+IMKgDQo+ID4gLcKgwqDCoCBteSAkcGF0aCA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRz
Y2ZnLCAkdm9sbmFtZSk7DQo+ID4gK8KgwqDCoCBteSAkY21kID0gIiI7DQo+ID4gK8KgwqDCoCBp
ZiAoJHNjZmctPntzbmFwZXh0fSkgew0KPiA+ICsNCj4gPiArIG15ICRzbmFwc2hvdHMgPSAkY2xh
c3MtPnZvbHVtZV9zbmFwc2hvdF9pbmZvKCRzY2ZnLCAkc3RvcmVpZCwNCj4gPiAkdm9sbmFtZSk7
DQo+ID4gKyBteSAkc25hcHBhdGggPSAkc25hcHNob3RzLT57JHNuYXB9LT57ZmlsZX07IHJldHVy
biBpZiAhLWUgDQo+ID4gKyAkc25hcHBhdGg7wqAgI2FscmVhZHkgZGVsZXRlZCA/DQo+ID4gKw0K
PiA+ICsgbXkgJHBhcmVudHNuYXAgPSAkc25hcHNob3RzLT57JHNuYXB9LT57cGFyZW50fTsgIG15
ICRjaGlsZHNuYXAgPSANCj4gPiArJHNuYXBzaG90cy0+eyRzbmFwfS0+e2NoaWxkfTsNCj4gPiAr
wqDCoMKgwqDCoMKgwqAgZGllICJlcnJvcjogY2FuJ3QgZmluZCBhIHBhcmVudCBmb3IgdGhpcyBz
bmFwc2hvdCIgaWYNCj4gPiAhJHBhcmVudHNuYXA7DQo+ID4gwqANCj4gPiAtwqDCoMKgICRjbGFz
cy0+ZGVhY3RpdmF0ZV92b2x1bWUoJHN0b3JlaWQsICRzY2ZnLCAkdm9sbmFtZSwgJHNuYXAsIA0K
PiA+IHt9KTsNCj4gPiArIG15ICRwYXJlbnRwYXRoID0gJHNuYXBzaG90cy0+eyRwYXJlbnRzbmFw
fS0+e2ZpbGV9Ow0KPiA+ICsgbXkgJHBhcmVudGZvcm1hdCA9ICRzbmFwc2hvdHMtPnskcGFyZW50
c25hcH0tPnsnZm9ybWF0J30gaWYNCj4gPiAkcGFyZW50c25hcDsNCj4gPiArIG15ICRjaGlsZHBh
dGggPSAkc25hcHNob3RzLT57JGNoaWxkc25hcH0tPntmaWxlfSBpZiAkY2hpbGRzbmFwOyBteSAN
Cj4gPiArICRjaGlsZGZvcm1hdCA9ICRzbmFwc2hvdHMtPnskY2hpbGRzbmFwfS0+eydmb3JtYXQn
fSBpZg0KPiA+ICRjaGlsZHNuYXA7DQo+ID4gwqANCj4gPiAtwqDCoMKgIG15ICRjbWQgPSBbJy91
c3IvYmluL3FlbXUtaW1nJywgJ3NuYXBzaG90JywnLWQnLCAkc25hcCwgJHBhdGhdOw0KPiA+ICsg
cHJpbnQgIm1lcmdlIHNuYXBzaG90ICRzbmFwIHRvICRwYXJlbnRzbmFwXG4iOyAkY21kID0gDQo+
ID4gKyBbJy91c3IvYmluL3FlbXUtaW1nJywgJ2NvbW1pdCcsICRzbmFwcGF0aF07IHJ1bl9jb21t
YW5kKCRjbWQpOw0KPiA+ICsNCj4gPiArICNpZiB3ZSBkZWxldGUgYW4gaW50ZXJtZWRpYXRlIHNu
YXBzaG90LCB3ZSBuZWVkIHRvIGxpbmsgdXBwZXINCj4gPiBzbmFwc2hvdCB0byBiYXNlIHNuYXBz
aG90DQo+ID4gKyBpZigkY2hpbGRwYXRoICYmIC1lICRjaGlsZHBhdGgpIHsNCj4gPiArIMKgwqDC
oCBkaWUgIm1pc3NpbmcgcGFyZW50c25hcCBzbmFwc2hvdCB0byByZWJhc2UgY2hpbGQgJGNoaWxk
cGF0aFxuIg0KPiA+IGlmICEkcGFyZW50cGF0aDsNCj4gPiArIMKgwqDCoCBwcmludCAibGluayAk
Y2hpbGRzbmFwIHRvICRwYXJlbnRzbmFwXG4iOw0KPiA+ICsgwqDCoMKgICRjbWQgPSBbJy91c3Iv
YmluL3FlbXUtaW1nJywgJ3JlYmFzZScsICctdScsICctYicsIA0KPiA+ICsgJHBhcmVudHBhdGgs
DQo+ID4gJy1GJywgJHBhcmVudGZvcm1hdCwgJy1mJywgJGNoaWxkZm9ybWF0LCAkY2hpbGRwYXRo
XTsNCj4gPiArIMKgwqDCoCBydW5fY29tbWFuZCgkY21kKTsNCj4gPiArIH0NCj4gDQo+ID4+d291
bGRuJ3QgYSByZWd1bGFyIHNhZmUgcmViYXNlIHdvcmsganVzdCBhcyB3ZWxsLCBpbnN0ZWFkIG9m
IGNvbW1pdCANCj4gPj4rIHVuc2FmZSByZWJhc2U/IGlmIHRoZXJlIGlzIG5vIHBhcmVudCwgcGFz
c2luZyBpbiAiIiBhcyAibmV3IiANCj4gPj5iYWNraW5nIGZpbGUgc2hvdWxkIHdvcmsuLg0KPiAN
Cj4gSSdsbCB0ZXN0IGl0LCBidXQgSSdtIHByZXR0eSBzdXJlIHRoaXMgaXMgdGhlIGNvcnJlY3Qg
d2F5Lg0KPiANCj4gPiArDQo+ID4gKyAjZGVsZXRlIHRoZSBzbmFwc2hvdA0KPiA+ICsgdW5saW5r
KCRzbmFwcGF0aCk7DQo+ID4gK8KgwqDCoCB9IGVsc2Ugew0KPiA+ICsgbXkgJHBhdGggPSAkY2xh
c3MtPmZpbGVzeXN0ZW1fcGF0aCgkc2NmZywgJHZvbG5hbWUpOw0KPiA+IMKgDQo+ID4gLcKgwqDC
oCBydW5fY29tbWFuZCgkY21kKTsNCj4gPiArICRjbGFzcy0+ZGVhY3RpdmF0ZV92b2x1bWUoJHN0
b3JlaWQsICRzY2ZnLCAkdm9sbmFtZSwgJHNuYXAsIHt9KTsNCj4gPiArDQo+ID4gKyAkY21kID0g
WycvdXNyL2Jpbi9xZW11LWltZycsICdzbmFwc2hvdCcsJy1kJywgJHNuYXAsICRwYXRoXTsgIA0K
PiA+ICtydW5fY29tbWFuZCgkY21kKTsNCj4gPiArwqDCoMKgIH0NCj4gPiDCoA0KPiA+IMKgwqDC
oMKgIHJldHVybiB1bmRlZjsNCj4gPiDCoH0NCj4gPiBAQCAtMTE0MCwxMCArMTIyNSw2IEBAIHN1
YiB2b2x1bWVfaGFzX2ZlYXR1cmUgew0KPiA+IMKgwqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAk
ZmVhdHVyZSwgJHN0b3JlaWQsICR2b2xuYW1lLCAkc25hcG5hbWUsIA0KPiA+ICRydW5uaW5nLCAk
b3B0cykgPSBAXzsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgIG15ICRmZWF0dXJlcyA9IHsNCj4gPiAt
IHNuYXBzaG90ID0+IHsNCj4gPiAtIMKgwqDCoCBjdXJyZW50ID0+IHsgcWNvdzIgPT4gMSB9LA0K
PiA+IC0gwqDCoMKgIHNuYXAgPT4geyBxY293MiA9PiAxIH0sDQo+ID4gLSB9LA0KPiA+IMKgIGNs
b25lID0+IHsNCj4gPiDCoCDCoMKgwqAgYmFzZSA9PiB7IHFjb3cyID0+IDEsIHJhdyA9PiAxLCB2
bWRrID0+IDEgfSwNCj4gPiDCoCB9LA0KPiA+IEBAIC0xMTU5LDExICsxMjQwLDIzIEBAIHN1YiB2
b2x1bWVfaGFzX2ZlYXR1cmUgew0KPiA+IMKgIMKgwqDCoCBiYXNlID0+IHsgcWNvdzIgPT4gMSwg
cmF3ID0+IDEsIHZtZGsgPT4gMSB9LA0KPiA+IMKgIMKgwqDCoCBjdXJyZW50ID0+IHsgcWNvdzIg
PT4gMSwgcmF3ID0+IDEsIHZtZGsgPT4gMSB9LA0KPiA+IMKgIH0sDQo+ID4gLSByZW5hbWUgPT4g
ew0KPiA+IC0gwqDCoMKgIGN1cnJlbnQgPT4ge3Fjb3cyID0+IDEsIHJhdyA9PiAxLCB2bWRrID0+
IDF9LA0KPiA+IC0gfSwNCj4gPiArICdyZW5hbWUnID0+IHsNCj4gPiArIMKgwqDCoCBjdXJyZW50
ID0+IHsgcWNvdzIgPT4gMSwgcmF3ID0+IDEsIHZtZGsgPT4gMX0sIH0NCj4gPiDCoMKgwqDCoCB9
Ow0KPiA+IMKgDQo+ID4gK8KgwqDCoCBpZiAoJHNjZmctPntzbmFwZXh0fSkgew0KPiA+ICsgJGZl
YXR1cmVzLT57c25hcHNob3R9ID0gew0KPiA+ICsgY3VycmVudCA9PiB7IHJhdyA9PiAxLCBxY293
MiA9PiAxIH0sDQo+ID4gKyBzbmFwID0+IHsgcmF3ID0+IDEsIHFjb3cyID0+IDEgfSwNCj4gPiAr
IH0NCj4gPiArwqDCoMKgIH0gZWxzZSB7DQo+ID4gKyAkZmVhdHVyZXMtPntzbmFwc2hvdH0gPSB7
DQo+ID4gKyBjdXJyZW50ID0+IHsgcWNvdzIgPT4gMSB9LA0KPiA+ICsgc25hcCA9PiB7IHFjb3cy
ID0+IDEgfSwNCj4gPiArIH07DQo+ID4gK8KgwqDCoCB9DQo+ID4gKw0KPiANCj4gPj50aGlzIGNv
dWxkIGp1c3QgbGVhdmUgJGZlYXR1cmVzIGFzIGl0IGlzLCBhbmQgYWRkIHRoZSAicmF3IiBiaXRz
Og0KPiA+Pg0KPiA+PmlmICgkc2NmZy0+e3NuYXBleHR9KSB7DQo+ID4+wqDCoMKgICRmZWF0dXJl
cy0+e3NuYXBzaG90fS0+e2N1cnJlbnR9LT57cmF3fSA9IDE7DQo+ID4+wqDCoMKgICRmZWF0dXJl
cy0+e3NuYXBzaG90fS0+e3NuYXB9LT57cmF3fSA9IDE7DQo+ID4+fQ0KPiANCj4gb2sgIQ0KPiA+
IMKgwqDCoMKgIGlmICgkZmVhdHVyZSBlcSAnY2xvbmUnKSB7DQo+ID4gwqAgaWYgKA0KPiA+IMKg
IMKgwqDCoCBkZWZpbmVkKCRvcHRzLT57dmFsaWRfdGFyZ2V0X2Zvcm1hdHN9KQ0KPiA+IEBAIC0x
MjIyLDcgKzEzMTUsOSBAQCBzdWIgbGlzdF9pbWFnZXMgew0KPiA+IMKgIH0NCj4gPiDCoA0KPiA+
IMKgIGlmICgkdm9sbGlzdCkgew0KPiA+IC0gwqDCoMKgIG15ICRmb3VuZCA9IGdyZXAgeyAkXyBl
cSAkdm9saWQgfSBAJHZvbGxpc3Q7DQo+ID4gKyDCoMKgwqAgbXkgJHNlYXJjaF92b2xpZCA9ICR2
b2xpZDsNCj4gPiArIMKgwqDCoCAkc2VhcmNoX3ZvbGlkID1+IHMvLXNuYXAtLipcLi9cLi87DQo+
ID4gKyDCoMKgwqAgbXkgJGZvdW5kID0gZ3JlcCB7ICRfIGVxICRzZWFyY2hfdm9saWQgfSBAJHZv
bGxpc3Q7DQo+ID4gwqAgwqDCoMKgIG5leHQgaWYgISRmb3VuZDsNCj4gPiDCoCB9DQo+ID4gwqAN
Cj4gPiBAQCAtMTM4MCw3ICsxNDc1LDUzIEBAIHN1YiBzdGF0dXMgew0KPiA+IMKgc3ViIHZvbHVt
ZV9zbmFwc2hvdF9pbmZvIHsNCj4gPiDCoMKgwqDCoCBteSAoJGNsYXNzLCAkc2NmZywgJHN0b3Jl
aWQsICR2b2xuYW1lKSA9IEBfOw0KPiA+IMKgDQo+ID4gLcKgwqDCoCBkaWUgInZvbHVtZV9zbmFw
c2hvdF9pbmZvIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgJGNsYXNzIjsNCj4gPiArwqDCoMKgIGRp
ZSAidm9sdW1lX3NuYXBzaG90X2luZm8gaXMgbm90IGltcGxlbWVudGVkIGZvciAkY2xhc3MiIGlm
DQo+ID4gISRzY2ZnLT57c25hcGV4dH07DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJHBhdGggPSAk
Y2xhc3MtPmZpbGVzeXN0ZW1fcGF0aCgkc2NmZywgJHZvbG5hbWUpOw0KPiA+ICsNCj4gPiArwqDC
oMKgIG15ICgkdnR5cGUsICRuYW1lLCAkdm1pZCwgJGJhc2VuYW1lLCAkYmFzZXZtaWQsICRpc0Jh
c2UsDQo+ID4gJGZvcm1hdCkgPSAkY2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUpOw0KPiA+
ICsNCj4gPiArwqDCoMKgIG15ICRiYXNldm9sbmFtZSA9ICR2b2xuYW1lOw0KPiA+ICvCoMKgwqAg
JGJhc2V2b2xuYW1lID1+IHMvXC4ocmF3fHFjb3cyKSQvLzsNCj4gPiArDQo+ID4gK8KgwqDCoCBt
eSAkc25hcHNob3RzID0gJGNsYXNzLT5saXN0X2ltYWdlcygkc3RvcmVpZCwgJHNjZmcsICR2bWlk
KTsNCj4gPiArwqDCoMKgIG15ICRpbmZvID0ge307DQo+ID4gK8KgwqDCoCBmb3IgbXkgJHNuYXAg
KEAkc25hcHNob3RzKSB7DQo+ID4gKw0KPiA+ICsgbXkgJHZvbGlkID0gJHNuYXAtPnt2b2xpZH07
DQo+ID4gKyBuZXh0IGlmICgkdm9saWQgIX4gbS8kYmFzZXZvbG5hbWUvKTsNCj4gDQo+ID4+dGhp
cyByZWdleCBpcyBicm9rZW4gdy5yLnQuIHBhcnRpYWwgbWF0Y2hpbmchDQo+ID4+DQo+ID4+ZS5n
LiwgaWYgYSBWTSBoYXMgYm90aCBhIGRpc2sgLTEucWNvdzIgYW5kIC0xMS5xY293MiBhbmQgSSBh
dHRlbXB0IHRvDQo+ID4+c25hcHNob3QgaXQgdXNpbmcgZXh0ZXJuYWwgc25hcHNob3RzOg0KPiBv
ayAhDQo+IA0KPiANCj4gc25hcHNob3R0aW5nICdkcml2ZS1zY3NpMCcgKGV4dHNuYXA6MTMxMzE0
L3ZtLTEzMTMxNC1kaXNrLTAucmF3KQ0KPiBGb3JtYXR0aW5nICcvbW50L3B2ZS9leHQ0L2V4dHNu
YXAvaW1hZ2VzLzEzMTMxNC92bS0xMzEzMTQtZGlzay0wLXNuYXAtDQo+IHRlc3QyLnFjb3cyJywg
Zm10PXFjb3cyIGNsdXN0ZXJfc2l6ZT02NTUzNiBleHRlbmRlZF9sMj1vbg0KPiBwcmVhbGxvY2F0
aW9uPW9mZiBjb21wcmVzc2lvbl90eXBlPXpsaWIgc2l6ZT0yMDA3MDQNCj4gYmFja2luZ19maWxl
PS9tbnQvcHZlL2V4dDQvZXh0c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1kaXNrLTAtc25h
cC0NCj4gdGVzdC5xY293MiBiYWNraW5nX2ZtdD1yYXcgbGF6eV9yZWZjb3VudHM9b2ZmIHJlZmNv
dW50X2JpdHM9MTYNCj4gc25hcHNob3R0aW5nICdkcml2ZS1zY3NpMScgKGV4dHNuYXA6MTMxMzE0
L3ZtLTEzMTMxNC1kaXNrLTEucWNvdzIpDQo+IEZvcm1hdHRpbmcgJy9tbnQvcHZlL2V4dDQvZXh0
c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1kaXNrLTExLXNuYXAtDQo+IHRlc3QyLnFjb3cy
JywgZm10PXFjb3cyIGNsdXN0ZXJfc2l6ZT02NTUzNiBleHRlbmRlZF9sMj1vbg0KPiBwcmVhbGxv
Y2F0aW9uPW9mZiBjb21wcmVzc2lvbl90eXBlPXpsaWIgc2l6ZT0yMTQ3NDgzNjQ4DQo+IGJhY2tp
bmdfZmlsZT0vbW50L3B2ZS9leHQ0L2V4dHNuYXAvaW1hZ2VzLzEzMTMxNC92bS0xMzEzMTQtZGlz
ay0NCj4gMTEucWNvdzIgYmFja2luZ19mbXQ9cWNvdzIgbGF6eV9yZWZjb3VudHM9b2ZmIHJlZmNv
dW50X2JpdHM9MTYNCj4gc25hcHNob3R0aW5nICdkcml2ZS1zY3NpMicgKGV4dHNuYXA6MTMxMzE0
L3ZtLTEzMTMxNC1kaXNrLTExLnFjb3cyKQ0KPiBxZW11LWltZzogL21udC9wdmUvZXh0NC9leHRz
bmFwL2ltYWdlcy8xMzEzMTQvdm0tMTMxMzE0LWRpc2stMTEtc25hcC0NCj4gdGVzdDIucWNvdzI6
IEVycm9yOiBUcnlpbmcgdG8gY3JlYXRlIGFuIGltYWdlIHdpdGggdGhlIHNhbWUgZmlsZW5hbWUg
YXMNCj4gdGhlIGJhY2tpbmcgZmlsZQ0KPiBzbmFwc2hvdCBjcmVhdGUgZmFpbGVkOiBzdGFydGlu
ZyBjbGVhbnVwDQo+IG1lcmdlIHNuYXBzaG90IHRlc3QyIHRvIHRlc3QNCj4gSW1hZ2UgY29tbWl0
dGVkLg0KPiBtZXJnZSBzbmFwc2hvdCB0ZXN0MiB0byBiYXNlDQo+IEltYWdlIGNvbW1pdHRlZC4N
Cj4gVEFTSyBFUlJPUjogY29tbWFuZCAnL3Vzci9iaW4vcWVtdS1pbWcgY3JlYXRlIC1iDQo+IC9t
bnQvcHZlL2V4dDQvZXh0c25hcC9pbWFnZXMvMTMxMzE0L3ZtLTEzMTMxNC1kaXNrLTExLXNuYXAt
dGVzdDIucWNvdzINCj4gLUYgcWNvdzIgLWYgcWNvdzIgL21udC9wdmUvZXh0NC9leHRzbmFwL2lt
YWdlcy8xMzEzMTQvdm0tMTMxMzE0LWRpc2stDQo+IDExLXNuYXAtdGVzdDIucWNvdzIgLW8gJ2V4
dGVuZGVkX2wyPW9uLHByZWFsbG9jYXRpb249b2ZmJycgZmFpbGVkOiBleGl0DQo+IGNvZGUgMSAN
Cj4gDQo+ID4gKw0KPiA+ICsgbXkgKHVuZGVmLCAkc25hcHZvbG5hbWUpID0gcGFyc2Vfdm9sdW1l
X2lkKCR2b2xpZCk7DQo+ID4gKyBteSAkc25hcG5hbWUgPSBnZXRfc25hcG5hbWVfZnJvbV9wYXRo
KCR2b2xpZCk7DQo+ID4gKyBteSAkc25hcGZpbGUgPSAkY2xhc3MtPmZpbGVzeXN0ZW1fcGF0aCgk
c2NmZywgJHNuYXB2b2xuYW1lLA0KPiA+ICRzbmFwbmFtZSk7DQo+ID4gKyAkc25hcG5hbWUgPSAn
YmFzZScgaWYgISRzbmFwbmFtZTsNCj4gPiArDQo+ID4gKyBteSAkZm9ybWF0ID0gJHNuYXAtPnsn
Zm9ybWF0J307DQo+ID4gKyBteSAkcGFyZW50ZmlsZSA9ICRzbmFwLT57cGFyZW50fTsNCj4gPiAr
IG15ICRwYXJlbnRuYW1lID0gZ2V0X3NuYXBuYW1lX2Zyb21fcGF0aCgkcGFyZW50ZmlsZSkgaWYN
Cj4gPiAkcGFyZW50ZmlsZTsNCj4gPiArICRwYXJlbnRuYW1lID0gJ2Jhc2UnIGlmICEkcGFyZW50
bmFtZSAmJiAkcGFyZW50ZmlsZTsNCj4gPiArDQo+ID4gKyAkaW5mby0+eyRzbmFwbmFtZX0tPntm
aWxlfSA9ICRzbmFwZmlsZTsNCj4gPiArICRpbmZvLT57JHNuYXBuYW1lfS0+e3ZvbGlkfSA9ICR2
b2xpZDsNCj4gPiArICRpbmZvLT57JHNuYXBuYW1lfS0+eydmb3JtYXQnfSA9ICRmb3JtYXQ7DQo+
ID4gKyAkaW5mby0+eyRzbmFwbmFtZX0tPntwYXJlbnR9ID0gJHBhcmVudG5hbWUgaWYgJHBhcmVu
dG5hbWU7DQo+ID4gKyAkaW5mby0+eyRwYXJlbnRuYW1lfS0+e2NoaWxkfSA9ICRzbmFwbmFtZSBp
ZiAkcGFyZW50bmFtZTsNCj4gPiArwqDCoMKgIH0NCj4gPiArDQo+ID4gK8KgwqDCoCBteSAkY3Vy
cmVudCA9IHVuZGVmOw0KPiA+ICvCoMKgwqAgZm9yIG15ICRpZCAoa2V5cyAlJGluZm8pIHsNCj4g
PiArIG15ICRzbmFwID0gJGluZm8tPnskaWR9Ow0KPiA+ICsgZGllICJlcnJvcjogc25hcCAkaWQ6
IHlvdSBjYW4ndCBoYXZlIG11bHRpcGxlIGN1cnJlbnQgc25hcHNob3Q6wqANCj4gPiBjdXJyZW50
OiRjdXJyZW50XG4iIGlmICEkc25hcC0+e2NoaWxkfSAmJiAkY3VycmVudDsNCj4gPiArICRjdXJy
ZW50ID0gJGlkIGlmICEkc25hcC0+e2NoaWxkfTsNCj4gPiArwqDCoMKgIH0NCj4gPiArDQo+ID4g
K8KgwqDCoCBpZiAoJGN1cnJlbnQpIHsNCj4gPiArICRpbmZvLT57Y3VycmVudH0tPntmaWxlfSA9
ICRpbmZvLT57JGN1cnJlbnR9LT57ZmlsZX07DQo+ID4gKyAkaW5mby0+e2N1cnJlbnR9LT57J2Zv
cm1hdCd9ID0gJGluZm8tPnskY3VycmVudH0tPnsnZm9ybWF0J307DQo+ID4gKyAkaW5mby0+e2N1
cnJlbnR9LT57cGFyZW50fSA9ICRpbmZvLT57JGN1cnJlbnR9LT57cGFyZW50fTsNCj4gPiArwqDC
oMKgIH0NCj4gPiArDQo+ID4gK8KgwqDCoCByZXR1cm4gJGluZm87DQo+ID4gwqB9DQo+ID4gwqAN
Cj4gPiDCoHN1YiBhY3RpdmF0ZV9zdG9yYWdlIHsNCj4gPiBAQCAtMTc2NCw0ICsxOTA1LDM4IEBA
IHN1YiBjb25maWdfYXdhcmVfYmFzZV9ta2RpciB7DQo+ID4gwqDCoMKgwqAgfQ0KPiA+IMKgfQ0K
PiA+IMKgDQo+ID4gK3N1YiBnZXRfc25hcF9wYXRoIHsNCj4gPiArwqDCoMKgIG15ICgkcGF0aCwg
JHNuYXApID0gQF87DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJGJhc2VwYXRoID0gIiI7DQo+ID4g
K8KgwqDCoCBteSAkYmFzZWZvcm1hdCA9ICIiOw0KPiA+ICvCoMKgwqAgaWYgKCRwYXRoID1+IG0v
XigoLiopKHZtLShcZCspLWRpc2stKFxkKykpKSgtc25hcC0NCj4gPiAoLiopKT9cLihyYXd8cWNv
dzIpLykgew0KPiANCj4gPj50aGlzIHJlZ2V4IGlzIHdyb25nIC0gdm9sdW1lcyBjYW4gaGF2ZSBh
cmJpdHJhcnkgbmFtZXMgYWZ0ZXIgdGhlIC0NCj4gPj5kaXNrLSBwYXJ0Li4NCj4gDQo+IGFoIHNv
cnJ5LiBkbyB5b3UgaGF2ZSBzb21lIGV4YW1wbGUgd2hlcmUgaXQncyB1c2VkID8gKG1heWJlIGZv
ciBlZmkgb3INCj4gb3RoZXIgc3BlY2lmaWMgZGlzayA/KQ0KDQpubywgYW55IHZkaXNrIGNhbiBo
YXZlIChhbG1vc3QpIGFueXRoaW5nIGFmdGVyIHRoZSAtZGlzay0gcGFydC4geW91IGNhbiBhbGxv
Y2F0ZSBzdWNoIHZvbHVtZXMgdXNpbmcgYHB2ZXNtIGFsbG9jYCBvciB0aGUgQVBJICh3ZSBqdXN0
IGFyZSBub3QgdmVyeSBnb29kIGF0IGtlZXBpbmcgdGhvc2UgY3VzdG9tIHN1ZmZpeGVzIHdoZW4g
bW92aW5nL21pZ3JhdGluZy8uLiA7KSkNCg0KPiA+ICsgJGJhc2VwYXRoID0gJDE7DQo+ID4gKyAk
YmFzZWZvcm1hdCA9ICQ4Ow0KPiA+ICvCoMKgwqAgfQ0KPiA+ICvCoMKgwqAgbXkgJGZvcm1hdCA9
ICRzbmFwID8gJ3Fjb3cyJyA6ICRiYXNlZm9ybWF0Ow0KPiA+ICvCoMKgwqAgbXkgJHNuYXBwYXRo
ID0gJHNuYXAgPyAkYmFzZXBhdGguIi1zbmFwLSRzbmFwLiRmb3JtYXQiIDogdW5kZWY7DQo+ID4g
Kw0KPiA+ICvCoMKgwqAgcmV0dXJuICRzbmFwcGF0aDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Vi
IGdldF9zbmFwbmFtZV9mcm9tX3BhdGggew0KPiA+ICvCoMKgwqAgbXkgKCRwYXRoKSA9IEBfOw0K
PiA+ICsNCj4gPiArwqDCoMKgIGlmICgkcGF0aCA9fiBtL14oKC4qKSh2bS0oXGQrKS1kaXNrLShc
ZCspKSkoLXNuYXAtDQo+ID4gKC4qKSk/XC4ocmF3fHFjb3cyKS8pIHsNCj4gDQo+ID4+aGVyZSBh
cyB3ZWxsLi4gYW5kIHRoaXMgd2hvbGUgaGVscGVyIGlzIGp1c3QgdXNlZCB0d2ljZSBpbg0KPiA+
PnZvbHVtZV9zbmFwc2hvdF9pbmZvLCBtYXliZSBpdCBjb3VsZCBiZSBpbmxpbmVkIG9yIG1hZGUg
cHJpdmF0ZSANCj4gb2sgIQ0KPiANCj4gDQo+ID4gKyBteSAkc25hcG5hbWUgPSAkNzsNCj4gPiAr
IHJldHVybiAkc25hcG5hbWU7DQo+ID4gK8KgwqDCoCB9DQo+ID4gK8KgwqDCoCBkaWUgImNhbid0
IHBhcnNlIHNuYXBuYW1lIGZyb20gcGF0aCI7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N1YiBnZXRf
Y3VycmVudF9zbmFwc2hvdCB7DQo+ID4gK8KgwqDCoCBteSAoJGNsYXNzLCAkc2NmZywgJHN0b3Jl
aWQsICR2b2xuYW1lKSA9IEBfOw0KPiA+ICvCoMKgwqAgI0lNUFJPVkUgTUU6IGZhc3RlciB3YXkg
dG8gZmluZCBjdXJyZW50IHNuYXBzaG90PyAoc2VhcmNoIHRoZQ0KPiA+IG1vc3QgcmVjZW50IGNy
ZWF0ZWQgc25hcHNob3QgZmlsZSA/IG5lZWQgdG8gd29ya3Mgd2l0aCBsdm0gdm9sdW1lDQo+ID4g
dG9vKQ0KPiA+ICsNCj4gPiArwqDCoMKgIHJldHVybiBpZiAhJHNjZmctPntzbmFwZXh0fTsNCj4g
PiArwqDCoMKgIG15ICRzbmFwc2hvdHMgPSAkY2xhc3MtPnZvbHVtZV9zbmFwc2hvdF9pbmZvKCRz
Y2ZnLCAkc3RvcmVpZCwNCj4gPiAkdm9sbmFtZSk7DQo+ID4gK8KgwqDCoCByZXR1cm4gJHNuYXBz
aG90cy0+e2N1cnJlbnR9Ow0KPiA+ICt9DQo+ID4gKw0KPiA+IMKgMTsNCj4gPiAtLSANCj4gPiAy
LjM5LjINCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xw0KcHZlLWRldmVsIG1haWxpbmcgbGlzdA0KcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tDQpo
dHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2
ZWwNCg==


--===============0322210416932399988==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

--===============0322210416932399988==--