From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pmg-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 6773B1FF15E
	for <inbox@lore.proxmox.com>; Tue, 11 Mar 2025 11:22:52 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 2EAB1BEF0;
	Tue, 11 Mar 2025 11:22:45 +0100 (CET)
Message-ID: <46071399-2bf0-413e-a612-5fab40d3f542@proxmox.com>
Date: Tue, 11 Mar 2025 11:22:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Markus Frank <m.frank@proxmox.com>
To: Dominik Csapak <d.csapak@proxmox.com>, pmg-devel@lists.proxmox.com
References: <20250303084958.2742-1-m.frank@proxmox.com>
 <02c92eb4-603a-4c85-9939-6b00ae2ee3ef@proxmox.com>
Content-Language: en-US
In-Reply-To: <02c92eb4-603a-4c85-9939-6b00ae2ee3ef@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.008 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
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 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]
Subject: Re: [pmg-devel] [PATCH pmg-gui v2] add OIDC configuration panel for
 PMG
X-BeenThere: pmg-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Mail Gateway development discussion
 <pmg-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pmg-devel>, 
 <mailto:pmg-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pmg-devel/>
List-Post: <mailto:pmg-devel@lists.proxmox.com>
List-Help: <mailto:pmg-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pmg-devel>, 
 <mailto:pmg-devel-request@lists.proxmox.com?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pmg-devel-bounces@lists.proxmox.com
Sender: "pmg-devel" <pmg-devel-bounces@lists.proxmox.com>

SSB3aWxsIGFkZHJlc3MgbW9zdCBvZiB5b3VyIGNvbW1lbnRzIGluIHYzLCB0aGFua3MuCgpTb21l
IGNvbW1lbnRzL2Fuc3dlcnMgaW5saW5lOgoKT24gIDIwMjUtMDMtMTAgMTU6MzcsIERvbWluaWsg
Q3NhcGFrIHdyb3RlOgo+IFdvcmtzIGZpbmUgZHVyaW5nIHRlc3RpbmcsIGJ1dCBub3RpY2VkIHNv
bWUgdGhpbmdzIGluIHRoZSBjb2RlLAo+IHNlZSBjb21tZW50cyBpbmxpbmU6Cj4gCj4gT24gMy8z
LzI1IDA5OjQ5LCBNYXJrdXMgRnJhbmsgd3JvdGU6Cj4+IEF1dGhFZGl0T0lEQy5qcyBpcyBiYXNl
ZCBvbiBBdXRoRWRpdE9wZW5JZCBmcm9tIHdpZGdldC10b29sa2l0IGFuZAo+PiBhZGRzIGFkZGl0
aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhdXRvY3JlYXRlLXJvbGUtYXNzaWdubWVu
dC4KPj4KPj4gSXQgdXNlcyBzdWIvcHJlZmVycmVkX3VzZXJuYW1lIGZvciB1c2VybmFtZS1jbGFp
bSBpbnN0ZWFkIG9mIHRoZSBvbGQKPj4gbmFtZXMgKHN1YmplY3QvdXNlcm5hbWUvZW1haWwpLiBS
ZW1vdmVkIGVtYWlsIG9wdGlvbiBlbnRpcmVseSBhcyBpdCBpcwo+PiBpbmNvbXBhdGlibGUgd2l0
aCB0aGUgdXNlcm5hbWUgc2NoZW1lLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgRnJhbmsg
PG0uZnJhbmtAcHJveG1veC5jb20+Cj4+IC0tLQo+PiB2MjoKPj4gKiByZW5hbWVkIHN1YmplY3Qg
dG8gc3ViCj4+ICogcmVuYW1lZCB1c2VybmFtZSB0byBwcmVmZXJyZWRfdXNlcm5hbWUKPj4gKiBy
ZW1vdmVkIGVtYWlsIGVudGlyZWx5Cj4+Cj4+IMKgIGpzL0F1dGhFZGl0T0lEQy5qcyB8IDI3MCAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAganMvTWFr
ZWZpbGXCoMKgwqDCoMKgwqDCoCB8wqDCoCAxICsKPj4gwqAganMvVXRpbHMuanPCoMKgwqDCoMKg
wqDCoCB8wqDCoCAxICsKPj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCAyNzIgaW5zZXJ0aW9ucygrKQo+
PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQganMvQXV0aEVkaXRPSURDLmpzCj4+Cj4+IGRpZmYgLS1n
aXQgYS9qcy9BdXRoRWRpdE9JREMuanMgYi9qcy9BdXRoRWRpdE9JREMuanMKPj4gbmV3IGZpbGUg
bW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uY2RhOWQ2OAo+PiAtLS0gL2Rldi9udWxsCj4+
ICsrKyBiL2pzL0F1dGhFZGl0T0lEQy5qcwo+PiBAQCAtMCwwICsxLDI3MCBAQAo+PiArRXh0LmRl
ZmluZSgnUE1HLk9JRENJbnB1dFBhbmVsJywgewo+PiArwqDCoMKgIGV4dGVuZDogJ1Byb3htb3gu
cGFuZWwuSW5wdXRQYW5lbCcsCj4+ICvCoMKgwqAgeHR5cGU6ICdwbWdBdXRoT0lEQ1BhbmVsJywK
Pj4gK8KgwqDCoCBtaXhpbnM6IFsnUHJveG1veC5NaXhpbi5DQmluZCddLAo+PiArCj4+ICvCoMKg
wqAgc2hvd0RlZmF1bHRSZWFsbTogZmFsc2UsCj4+ICsKPj4gK8KgwqDCoCB0eXBlOiAnb2lkYycs
Cj4+ICsKPj4gK8KgwqDCoCB2aWV3TW9kZWw6IHsKPj4gK8KgwqDCoCBkYXRhOiB7Cj4+ICvCoMKg
wqDCoMKgwqDCoCByb2xlU291cmNlOiAnX19kZWZhdWx0X18nLAo+PiArwqDCoMKgwqDCoMKgwqAg
YXV0b2NyZWF0ZTogMCwKPj4gK8KgwqDCoCB9LAo+PiArwqDCoMKgIGZvcm11bGFzOiB7Cj4+ICvC
oMKgwqDCoMKgwqDCoCBoaWRlUm9sZUFzc2lnbm1lbnQ6IGZ1bmN0aW9uKGdldCkgewo+PiArwqDC
oMKgwqDCoMKgwqAgbGV0IGF1dG9jcmVhdGUgPSBnZXQoJ2F1dG9jcmVhdGUnKTsKPj4gK8KgwqDC
oMKgwqDCoMKgIGlmICghYXV0b2NyZWF0ZSkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy
ZXR1cm4gMTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBh
dXRvY3JlYXRlID09PSAwOwo+IAo+IGluIG9uZSBicmFuY2ggeW91IHJldHVybiAxLCBidXQgbGF0
ZXIgdHJ1ZS9mYWxzZQo+IGFsc28gaWYgJ2F1dG9jcmVhdGUnID09PSAwLCAnIWF1dG9jcmVhdGUn
IGlzIGFscmVhZHkgdHJ1ZS4uCj4gCj4gY291bGRuJ3QgeW91IHNpbXBseSB1c2UgJyFhdXRvY3Jl
YXRlJyBpbiB0aGUgYmluZGluZ3MgdGhlbj8KPiAKPiAKPj4gK8KgwqDCoMKgwqDCoMKgIH0sCj4+
ICvCoMKgwqDCoMKgwqDCoCBoaWRlRml4ZWRSb2xlQXNzaWdubWVudDogZnVuY3Rpb24oZ2V0KSB7
Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gZ2V0KCdyb2xlU291cmNlJykgIT09ICdmaXhlZCcg
fHwgZ2V0KCdoaWRlUm9sZUFzc2lnbm1lbnQnKTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0sCj4+ICvC
oMKgwqDCoMKgwqDCoCBoaWRlQ2xhaW1Sb2xlQXNzaWdubWVudDogZnVuY3Rpb24oZ2V0KSB7Cj4+
ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gZ2V0KCdyb2xlU291cmNlJykgIT09ICdmcm9tLWNsYWlt
JyB8fCBnZXQoJ2hpZGVSb2xlQXNzaWdubWVudCcpOwo+PiArwqDCoMKgwqDCoMKgwqAgfSwKPj4g
K8KgwqDCoCB9LAo+PiArwqDCoMKgIH0sCj4+ICsKPj4gK8KgwqDCoCBvbkdldFZhbHVlczogZnVu
Y3Rpb24odmFsdWVzKSB7Cj4+ICvCoMKgwqAgbGV0IG1lID0gdGhpczsKPj4gKwo+PiArwqDCoMKg
IGlmIChtZS5pc0NyZWF0ZSAmJiAhbWUudXNlVHlwZUluVXJsKSB7Cj4+ICvCoMKgwqDCoMKgwqDC
oCB2YWx1ZXMudHlwZSA9IG1lLnR5cGU7Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgaWYg
KHZhbHVlcy5zb3VyY2UpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBhdXRvY3JlYXRlUm9sZUFz
c2lnbm1lbnQgPSB7fTsKPj4gK8KgwqDCoMKgwqDCoMKgIGF1dG9jcmVhdGVSb2xlQXNzaWdubWVu
dC5zb3VyY2UgPSB2YWx1ZXMuc291cmNlOwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHZhbHVlcy5z
b3VyY2UgPT09ICdmaXhlZCcpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGF1dG9jcmVhdGVSb2xlQXNz
aWdubWVudFsnZml4ZWQtcm9sZSddID0gdmFsdWVzWydmaXhlZC1yb2xlJ107Cj4+ICvCoMKgwqDC
oMKgwqDCoCB9IGVsc2UgaWYgKHZhbHVlcy5zb3VyY2UgPT09ICdmcm9tLWNsYWltJykgewo+PiAr
wqDCoMKgwqDCoMKgwqAgYXV0b2NyZWF0ZVJvbGVBc3NpZ25tZW50Wydyb2xlLWNsYWltJ10gPSB2
YWx1ZXNbJ3JvbGUtY2xhaW0nXTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPiAKPiBpZiB0aGUgY29u
dGVudCBvZiAnc291cmNlJyB3b3VsZCBtYXRjaCB0aGUgaW5kaWNlcyAoJ2ZpeGVkLXJvbGUnIGFu
ZCAncm9sZS1jbGFpbScpIHlvdSBjb3VsZCBkbwo+IHNvbWV0aGluZyBsaWtlIHRoaXMgKHBzdWVk
by1jb2RlICYgdW50ZXN0ZWQhKQo+IAo+IGlmICh2YWx1ZXMuc291cmNlKSB7Cj4gIMKgwqDCoMKg
bGV0IGFzc2lnbm1lbnQgPSB7fTsKPiAgwqDCoMKgwqBhc3NpZ25tZW50W3ZhbHVlcy5zb3VyY2Vd
ID0gdmFsdWVzW3ZhbHVlcy5zb3VyY2VdOwo+ICDCoMKgwqDCoHZhbHVlc1snYXV0Li4uJ10gPSBw
cmludFByb3BlcnR5U3RyaW5nKGFzc2lnbm1lbnQpOwo+IH0KPiAKPiBubz8KU2FkbHkgbm90LgoK
SWYgdGhlIGNvbnRlbnQgb2YgJ3NvdXJjZScgd291bGQgbWF0Y2ggdGhlIGluZGljZXMgKCdmaXhl
ZC1yb2xlJyBhbmQgJ3JvbGUtY2xhaW0nKSwKSSB3b3VsZCBzdGlsbCBuZWVkIHRvIHVzZSBhbiBp
ZiB0byBjaGFuZ2UgdGhlIHNvdXJjZSB2YXJpYWJsZToKCmlmICh2YWx1ZXMuc291cmNlKSB7CiAg
ICAgICBsZXQgYXNzaWdubWVudCA9IHt9OwogICAgICAgYXNzaWdubWVudFt2YWx1ZXMuc291cmNl
XSA9IHZhbHVlc1t2YWx1ZXMuc291cmNlXTsKICAgICAgIGlmICh2YWx1ZXMuc291cmNlID09PSAn
Zml4ZWQtcm9sZScpIHsKICAgICAgICAgICBhc3NpZ25tZW50LnNvdXJjZSA9ICdmaXhlZCc7CiAg
ICAgICB9IGVsc2UgaWYgKHZhbHVlcy5zb3VyY2UgPT09ICdyb2xlLWNsYWltJykgewogICAgICAg
ICAgIGFzc2lnbm1lbnQuc291cmNlID0gJ2Zyb20tY2xhaW0nOwogICAgICAgfQogICAgICAgdmFs
dWVzWydhdXQuLi4nXSA9IHByaW50UHJvcGVydHlTdHJpbmcoYXNzaWdubWVudCk7Cn0KCkkgYW0g
bm90IHN1cmUgaWYgdGhhdCB3b3VsZCBiZSBiZXR0ZXIuCj4gCj4gCj4+ICvCoMKgwqDCoMKgwqDC
oCB2YWx1ZXNbJ2F1dG9jcmVhdGUtcm9sZS1hc3NpZ25tZW50J10gPQo+PiArwqDCoMKgwqDCoMKg
wqAgUHJveG1veC5VdGlscy5wcmludFByb3BlcnR5U3RyaW5nKGF1dG9jcmVhdGVSb2xlQXNzaWdu
bWVudCk7Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgaWYgKCghdmFsdWVzLmF1dG9jcmVh
dGUgfHwgIXZhbHVlcy5zb3VyY2UpICYmICFtZS5pc0NyZWF0ZSkgewo+PiArwqDCoMKgwqDCoMKg
wqAgaWYgKHZhbHVlcy5kZWxldGUpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChFeHQuaXNBcnJh
eSh2YWx1ZXMuZGVsZXRlKSkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2YWx1ZXMuZGVs
ZXRlLnB1c2goJ2F1dG9jcmVhdGUtcm9sZS1hc3NpZ25tZW50Jyk7Cj4+ICvCoMKgwqDCoMKgwqDC
oCB9IGVsc2Ugewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2YWx1ZXMuZGVsZXRlICs9ICcs
YXV0b2NyZWF0ZS1yb2xlLWFzc2lnbm1lbnQnOwo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDC
oMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZhbHVlcy5kZWxldGUgPSAn
YXV0b2NyZWF0ZS1yb2xlLWFzc2lnbm1lbnQnOwo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDC
oMKgIH0KPiBBRkFJUiwgd2UgYWxyZWFkeSBoYXZlIHRoaXMgYmVoYXZpb3IgZmFjdG9yZWQgb3V0
IGluIHByb3htb3gtd2lkZ2V0LXRvb2xraXQ6Cj4gCj4gJ2RlbGV0ZV9pZl9kZWZhdWx0Jwo+IAo+
PiArwqDCoMKgIGRlbGV0ZSB2YWx1ZXMuc291cmNlOwo+PiArwqDCoMKgIGRlbGV0ZSB2YWx1ZXNb
J2ZpeGVkLXJvbGUnXTsKPj4gK8KgwqDCoCBkZWxldGUgdmFsdWVzWydyb2xlLWNsYWltJ107Cj4+
ICsKPj4gK8KgwqDCoCByZXR1cm4gdmFsdWVzOwo+PiArwqDCoMKgIH0sCj4+ICsKPj4gK8KgwqDC
oCBzZXRWYWx1ZXM6IGZ1bmN0aW9uKHZhbHVlcykgewo+PiArwqDCoMKgIGxldCBhdXRvY3JlYXRl
Um9sZUFzc2lnbm1lbnQgPQo+PiArwqDCoMKgwqDCoMKgwqAgUHJveG1veC5VdGlscy5wYXJzZVBy
b3BlcnR5U3RyaW5nKHZhbHVlc1snYXV0b2NyZWF0ZS1yb2xlLWFzc2lnbm1lbnQnXSk7Cj4+ICsK
Pj4gK8KgwqDCoCBpZiAoYXV0b2NyZWF0ZVJvbGVBc3NpZ25tZW50LnNvdXJjZSkgewo+PiArwqDC
oMKgwqDCoMKgwqAgdmFsdWVzLnNvdXJjZSA9IGF1dG9jcmVhdGVSb2xlQXNzaWdubWVudC5zb3Vy
Y2U7Cj4+ICvCoMKgwqAgfSBlbHNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZhbHVlcy5zb3VyY2Ug
PSAnX19kZWZhdWx0X18nOwo+PiArwqDCoMKgIH0KPiAKPiBjb3VsZCBiZSBzaW1wbGlmaWVkIHRv
Cj4gCj4gdmFsdWVzLnNvdXJjZSA9IGF1dG9jcmVhdGVSb2xlQXNzaWdubWVudC5zb3VyY2UgPz8g
J19fZGVmYXVsdF9fJzsKPiAKPj4gKwo+PiArwqDCoMKgIGlmIChhdXRvY3JlYXRlUm9sZUFzc2ln
bm1lbnQuc291cmNlID09PSAnZml4ZWQnKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB2YWx1ZXNbJ2Zp
eGVkLXJvbGUnXSA9IGF1dG9jcmVhdGVSb2xlQXNzaWdubWVudFsnZml4ZWQtcm9sZSddOwo+PiAr
wqDCoMKgIH0KPj4gK8KgwqDCoCBpZiAoYXV0b2NyZWF0ZVJvbGVBc3NpZ25tZW50LnNvdXJjZSA9
PT0gJ2Zyb20tY2xhaW0nKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB2YWx1ZXNbJ3JvbGUtY2xhaW0n
XSA9IGF1dG9jcmVhdGVSb2xlQXNzaWdubWVudFsncm9sZS1jbGFpbSddOwo+PiArwqDCoMKgIH0K
PiAKPiBzYW1lIGhlcmUgYnV0IHJldmVyc2VkOgo+IAo+IHZhbHVlc1thc3NpZ25tZW50LnNvdXJj
ZV0gPSBhc3NpZ25tZW50W2Fzc2lnbm1lbnQuc291cmNlXTsKPiAKPj4gKwo+PiArwqDCoMKgIHRo
aXMuY2FsbFBhcmVudChhcmd1bWVudHMpOwo+PiArwqDCoMKgIH0sCj4+ICsKPj4gKwo+PiArwqDC
oMKgIGNvbHVtblQ6IFsKPj4gK8KgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB4dHlwZTogJ3Rl
eHRmaWVsZCcsCj4+ICvCoMKgwqDCoMKgwqDCoCBuYW1lOiAnaXNzdWVyLXVybCcsCj4+ICvCoMKg
wqDCoMKgwqDCoCBmaWVsZExhYmVsOiBnZXR0ZXh0KCdJc3N1ZXIgVVJMJyksCj4+ICvCoMKgwqDC
oMKgwqDCoCBhbGxvd0JsYW5rOiBmYWxzZSwKPj4gK8KgwqDCoCB9LAo+PiArwqDCoMKgIF0sCj4+
ICsKPj4gK8KgwqDCoCBjb2x1bW4xOiBbCj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAg
eHR5cGU6ICdwbXhEaXNwbGF5RWRpdEZpZWxkJywKPj4gK8KgwqDCoMKgwqDCoMKgIG5hbWU6ICdy
ZWFsbScsCj4+ICvCoMKgwqDCoMKgwqDCoCBjYmluZDogewo+PiArwqDCoMKgwqDCoMKgwqAgdmFs
dWU6ICd7cmVhbG19JywKPj4gK8KgwqDCoMKgwqDCoMKgIGVkaXRhYmxlOiAne2lzQ3JlYXRlfScs
Cj4+ICvCoMKgwqDCoMKgwqDCoCB9LAo+PiArwqDCoMKgwqDCoMKgwqAgZmllbGRMYWJlbDogZ2V0
dGV4dCgnUmVhbG0nKSwKPj4gK8KgwqDCoMKgwqDCoMKgIGFsbG93Qmxhbms6IGZhbHNlLAo+PiAr
wqDCoMKgIH0sCj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAgeHR5cGU6ICdwcm94bW94
Y2hlY2tib3gnLAo+PiArwqDCoMKgwqDCoMKgwqAgZmllbGRMYWJlbDogZ2V0dGV4dCgnRGVmYXVs
dCByZWFsbScpLAo+PiArwqDCoMKgwqDCoMKgwqAgbmFtZTogJ2RlZmF1bHQnLAo+PiArwqDCoMKg
wqDCoMKgwqAgdmFsdWU6IDAsCj4+ICvCoMKgwqDCoMKgwqDCoCBjYmluZDogewo+PiArwqDCoMKg
wqDCoMKgwqAgZGVsZXRlRW1wdHk6ICd7IWlzQ3JlYXRlfScsCj4+ICvCoMKgwqDCoMKgwqDCoCBo
aWRkZW46ICd7IXNob3dEZWZhdWx0UmVhbG19JywKPj4gK8KgwqDCoMKgwqDCoMKgIGRpc2FibGVk
OiAneyFzaG93RGVmYXVsdFJlYWxtfScsCj4+ICvCoMKgwqDCoMKgwqDCoCB9LAo+PiArwqDCoMKg
wqDCoMKgwqAgYXV0b0VsOiB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB0YWc6ICdkaXYnLAo+PiArwqDC
oMKgwqDCoMKgwqAgJ2RhdGEtcXRpcCc6IGdldHRleHQoJ1NldCByZWFsbSBhcyBkZWZhdWx0IGZv
ciBsb2dpbicpLAo+PiArwqDCoMKgwqDCoMKgwqAgfSwKPj4gK8KgwqDCoCB9LAo+PiArwqDCoMKg
IHsKPj4gK8KgwqDCoMKgwqDCoMKgIHh0eXBlOiAncHJveG1veHRleHRmaWVsZCcsCj4+ICvCoMKg
wqDCoMKgwqDCoCBmaWVsZExhYmVsOiBnZXR0ZXh0KCdDbGllbnQgSUQnKSwKPj4gK8KgwqDCoMKg
wqDCoMKgIG5hbWU6ICdjbGllbnQtaWQnLAo+PiArwqDCoMKgwqDCoMKgwqAgYWxsb3dCbGFuazog
ZmFsc2UsCj4+ICvCoMKgwqAgfSwKPj4gK8KgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB4dHlw
ZTogJ3Byb3htb3h0ZXh0ZmllbGQnLAo+PiArwqDCoMKgwqDCoMKgwqAgZmllbGRMYWJlbDogZ2V0
dGV4dCgnQ2xpZW50IEtleScpLAo+PiArwqDCoMKgwqDCoMKgwqAgY2JpbmQ6IHsKPj4gK8KgwqDC
oMKgwqDCoMKgIGRlbGV0ZUVtcHR5OiAneyFpc0NyZWF0ZX0nLAo+PiArwqDCoMKgwqDCoMKgwqAg
fSwKPj4gK8KgwqDCoMKgwqDCoMKgIG5hbWU6ICdjbGllbnQta2V5JywKPj4gK8KgwqDCoCB9LAo+
PiArwqDCoMKgIF0sCj4+ICsKPj4gK8KgwqDCoCBjb2x1bW4yOiBbCj4+ICvCoMKgwqAgewo+PiAr
wqDCoMKgwqDCoMKgwqAgeHR5cGU6ICdwbXhEaXNwbGF5RWRpdEZpZWxkJywKPj4gK8KgwqDCoMKg
wqDCoMKgIG5hbWU6ICd1c2VybmFtZS1jbGFpbScsCj4+ICvCoMKgwqDCoMKgwqDCoCBmaWVsZExh
YmVsOiBnZXR0ZXh0KCdVc2VybmFtZSBDbGFpbScpLAo+PiArwqDCoMKgwqDCoMKgwqAgZWRpdENv
bmZpZzogewo+PiArwqDCoMKgwqDCoMKgwqAgeHR5cGU6ICdwcm94bW94S1ZDb21ib0JveCcsCj4+
ICvCoMKgwqDCoMKgwqDCoCBlZGl0YWJsZTogdHJ1ZSwKPj4gK8KgwqDCoMKgwqDCoMKgIGNvbWJv
SXRlbXM6IFsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWydfX2RlZmF1bHRfXycsIFByb3ht
b3guVXRpbHMuZGVmYXVsdFRleHRdLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBbJ3N1Yics
ICdzdWIgKHN1YmplY3QpJ10sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFsncHJlZmVycmVk
X3VzZXJuYW1lJywgJ3ByZWZlcnJlZF91c2VybmFtZSddLAo+IAo+IGlmIHlvdSdyZSBjaGFuZ2lu
ZyB0aGUgdGV4dCB2cyB3aWRnZXQtdG9vbGtpdCwgd2h5IG5vdCBnb3QgdGhlIGZ1bGwgbGVuZ3Ro
Cj4gYW5kIGxvY2FsaXplIHRoZSBkZXNjcmlwdGlvbj8KPiAKPiBlLmcuIGBnZXR0ZXh0KCdzdWIg
KFN1YmplY3QpJylgCj4gCj4gPwo+IAo+IChwcmVleGlzdGluZykgbWF5YmUgaSBqdXN0IG92ZXJs
b29rZWQgdGhhdCB3aXRoIHRoZSByZWNlbnQgcGF0Y2hlcywgYnV0IHdoeSBhcmUgdGhlCj4gY2xh
aW1zIGRpZmZlcmVudCB0aGFuIHRoZSBvdGhlciBwcm9kdWN0cyAoc3ViIHZzIHN1YmplY3QsIHBy
ZWZlcnJlZF91c2VybmFtZSB2cyB1c2VybmFtZSkgPwpzdWJqZWN0IGFuZCB1c2VybmFtZSBkbyBu
b3QgZXhpc3QgKGFueW1vcmUpLgoKV2UgdXNlIHNvbWV0aGluZyBsaWtlIHRoaXMgaW4gb3VyIGJh
Y2tlbmRzOgoKfSBlbHNpZiAoJHVzZXJfYXR0ciBlcSAnc3ViamVjdCcpIHsgIyBzdGF5IGNvbXBh
dCB3aXRoIG9sZCB2ZXJzaW9ucwoJJHVuaXF1ZV9uYW1lID0gJGluZm8tPnsnc3ViJ307Cn0gZWxz
aWYgKCR1c2VyX2F0dHIgZXEgJ3VzZXJuYW1lJykgeyAjIHN0YXkgY29tcGF0IHdpdGggb2xkIHZl
cnNpb25zCglteSAkdXNlcm5hbWUgPSAkaW5mby0+eydwcmVmZXJyZWRfdXNlcm5hbWUnfTsKCWRp
ZSAibWlzc2luZyBjbGFpbSAncHJlZmVycmVkX3VzZXJuYW1lJ1xuIiBpZiAhZGVmaW5lZCgkdXNl
cm5hbWUpOwoJJHVuaXF1ZV9uYW1lID0gICR1c2VybmFtZTsKCkkgZ3Vlc3MgaXQgd2FzIHRoZSBw
bGFuIHRvIHVwZGF0ZSB0aGVzZSBuYW1lcyBpbiB0aGUgUFZFICYgUEJTIFdlYlVJcywgYnV0IGl0
IG5ldmVyIGhhcHBlbmVkLgoKPiAKPj4gK8KgwqDCoMKgwqDCoMKgIF0sCj4+ICvCoMKgwqDCoMKg
wqDCoCB9LAo+PiArwqDCoMKgwqDCoMKgwqAgY2JpbmQ6IHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZh
bHVlOiBnZXQgPT4gZ2V0KCdpc0NyZWF0ZScpID8gJ19fZGVmYXVsdF9fJyA6IFByb3htb3guVXRp
bHMuZGVmYXVsdFRleHQsCj4+ICvCoMKgwqDCoMKgwqDCoCBkZWxldGVFbXB0eTogJ3shaXNDcmVh
dGV9JywKPj4gK8KgwqDCoMKgwqDCoMKgIGVkaXRhYmxlOiAne2lzQ3JlYXRlfScsCj4+ICvCoMKg
wqDCoMKgwqDCoCB9LAo+PiArwqDCoMKgIH0sCj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKg
wqAgeHR5cGU6ICdwcm94bW94dGV4dGZpZWxkJywKPj4gK8KgwqDCoMKgwqDCoMKgIG5hbWU6ICdz
Y29wZXMnLAo+PiArwqDCoMKgwqDCoMKgwqAgZmllbGRMYWJlbDogZ2V0dGV4dCgnU2NvcGVzJyks
Cj4+ICvCoMKgwqDCoMKgwqDCoCBlbXB0eVRleHQ6IGAke1Byb3htb3guVXRpbHMuZGVmYXVsdFRl
eHR9IChlbWFpbCBwcm9maWxlKWAsCj4+ICvCoMKgwqDCoMKgwqDCoCBzdWJtaXRFbXB0eTogZmFs
c2UsCj4+ICvCoMKgwqDCoMKgwqDCoCBjYmluZDogewo+PiArwqDCoMKgwqDCoMKgwqAgZGVsZXRl
RW1wdHk6ICd7IWlzQ3JlYXRlfScsCj4+ICvCoMKgwqDCoMKgwqDCoCB9LAo+PiArwqDCoMKgIH0s
Cj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAgeHR5cGU6ICdwcm94bW94S1ZDb21ib0Jv
eCcsCj4+ICvCoMKgwqDCoMKgwqDCoCBuYW1lOiAncHJvbXB0JywKPj4gK8KgwqDCoMKgwqDCoMKg
IGZpZWxkTGFiZWw6IGdldHRleHQoJ1Byb21wdCcpLAo+PiArwqDCoMKgwqDCoMKgwqAgZWRpdGFi
bGU6IHRydWUsCj4+ICvCoMKgwqDCoMKgwqDCoCBlbXB0eVRleHQ6IGdldHRleHQoJ0F1dGgtUHJv
dmlkZXIgRGVmYXVsdCcpLAo+PiArwqDCoMKgwqDCoMKgwqAgY29tYm9JdGVtczogWwo+PiArwqDC
oMKgwqDCoMKgwqAgWydfX2RlZmF1bHRfXycsIGdldHRleHQoJ0F1dGgtUHJvdmlkZXIgRGVmYXVs
dCcpXSwKPj4gK8KgwqDCoMKgwqDCoMKgIFsnbm9uZScsICdub25lJ10sCj4+ICvCoMKgwqDCoMKg
wqDCoCBbJ2xvZ2luJywgJ2xvZ2luJ10sCj4+ICvCoMKgwqDCoMKgwqDCoCBbJ2NvbnNlbnQnLCAn
Y29uc2VudCddLAo+PiArwqDCoMKgwqDCoMKgwqAgWydzZWxlY3RfYWNjb3VudCcsICdzZWxlY3Rf
YWNjb3VudCddLAo+PiArwqDCoMKgwqDCoMKgwqAgXSwKPj4gK8KgwqDCoMKgwqDCoMKgIGNiaW5k
OiB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBkZWxldGVFbXB0eTogJ3shaXNDcmVhdGV9JywKPj4gK8Kg
wqDCoMKgwqDCoMKgIH0sCj4+ICvCoMKgwqAgfSwKPj4gK8KgwqDCoCBdLAo+PiArCj4+ICvCoMKg
wqAgY29sdW1uQjogWwo+PiArwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHh0eXBlOiAncHJv
eG1veHRleHRmaWVsZCcsCj4+ICvCoMKgwqDCoMKgwqDCoCBuYW1lOiAnY29tbWVudCcsCj4+ICvC
oMKgwqDCoMKgwqDCoCBmaWVsZExhYmVsOiBnZXR0ZXh0KCdDb21tZW50JyksCj4+ICvCoMKgwqDC
oMKgwqDCoCBjYmluZDogewo+PiArwqDCoMKgwqDCoMKgwqAgZGVsZXRlRW1wdHk6ICd7IWlzQ3Jl
YXRlfScsCj4+ICvCoMKgwqDCoMKgwqDCoCB9LAo+PiArwqDCoMKgIH0sCj4+ICvCoMKgwqAgewo+
PiArwqDCoMKgwqDCoMKgwqAgeHR5cGU6ICdkaXNwbGF5ZmllbGQnLAo+PiArwqDCoMKgwqDCoMKg
wqAgdmFsdWU6IGdldHRleHQoJ0F1dG9jcmVhdGUgT3B0aW9ucycpLAo+PiArwqDCoMKgIH0sCj4+
ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAgeHR5cGU6ICdwcm94bW94Y2hlY2tib3gnLAo+
PiArwqDCoMKgwqDCoMKgwqAgZmllbGRMYWJlbDogZ2V0dGV4dCgnQXV0b2NyZWF0ZSBVc2Vycycp
LAo+PiArwqDCoMKgwqDCoMKgwqAgbmFtZTogJ2F1dG9jcmVhdGUnLAo+PiArwqDCoMKgwqDCoMKg
wqAgYmluZDogewo+PiArwqDCoMKgwqDCoMKgwqAgdmFsdWU6ICd7YXV0b2NyZWF0ZX0nLAo+PiAr
wqDCoMKgwqDCoMKgwqAgfSwKPj4gK8KgwqDCoMKgwqDCoMKgIGNiaW5kOiB7Cj4+ICvCoMKgwqDC
oMKgwqDCoCBkZWxldGVFbXB0eTogJ3shaXNDcmVhdGV9JywKPj4gK8KgwqDCoMKgwqDCoMKgIH0s
Cj4+ICvCoMKgwqAgfSwKPj4gK8KgwqDCoCB7Cj4+ICvCoMKgwqDCoMKgwqDCoCB4dHlwZTogJ3By
b3htb3hLVkNvbWJvQm94JywKPj4gK8KgwqDCoMKgwqDCoMKgIG5hbWU6ICdzb3VyY2UnLAo+PiAr
wqDCoMKgwqDCoMKgwqAgZmllbGRMYWJlbDogZ2V0dGV4dCgnU291cmNlIGZvciBSb2xlIEFzc2ln
bm1lbnQnKSwKPj4gK8KgwqDCoMKgwqDCoMKgIGFsbG93Qmxhbms6IGZhbHNlLAo+PiArwqDCoMKg
wqDCoMKgwqAgZGVsZXRlRW1wdHk6IGZhbHNlLAo+PiArwqDCoMKgwqDCoMKgwqAgY29tYm9JdGVt
czogWwo+PiArwqDCoMKgwqDCoMKgwqAgWwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAnX19k
ZWZhdWx0X18nLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQcm94bW94LlV0aWxzLmRlZmF1
bHRUZXh0Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICsgJyAoJyArIGdldHRleHQoJ0FsbCBh
dXRvLWNyZWF0ZWQgdXNlcnMgZ2V0IGF1ZGl0IHJvbGUnKSArICcpJywKPj4gK8KgwqDCoMKgwqDC
oMKgIF0sCj4+ICvCoMKgwqDCoMKgwqDCoCBbJ2ZpeGVkJywgJ0ZpeGVkIHJvbGUgZm9yIGFsbCBh
dXRvLWNyZWF0ZWQgdXNlcnMnXSwKPj4gK8KgwqDCoMKgwqDCoMKgIFsnZnJvbS1jbGFpbScsICdH
ZXQgcm9sZSBmcm9tIE9JREMgY2xhaW0nXSwKPiAKPiBJTUhPIHRob3NlIHNob3VsZCBiZSBwdXQg
aW4gJ2dldHRleHQnCj4gCj4+ICvCoMKgwqDCoMKgwqDCoCBdLAo+PiArwqDCoMKgwqDCoMKgwqAg
YmluZDogewo+PiArwqDCoMKgwqDCoMKgwqAgdmFsdWU6ICd7cm9sZVNvdXJjZX0nLAo+PiArwqDC
oMKgwqDCoMKgwqAgZGlzYWJsZWQ6ICd7aGlkZVJvbGVBc3NpZ25tZW50fScsCj4+ICvCoMKgwqDC
oMKgwqDCoCBoaWRkZW46ICd7aGlkZVJvbGVBc3NpZ25tZW50fScsCj4+ICvCoMKgwqDCoMKgwqDC
oCB9LAo+PiArwqDCoMKgIH0sCj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAgeHR5cGU6
ICdwbWdSb2xlU2VsZWN0b3InLAo+PiArwqDCoMKgwqDCoMKgwqAgbmFtZTogJ2ZpeGVkLXJvbGUn
LAo+PiArwqDCoMKgwqDCoMKgwqAgYWxsb3dCbGFuazogZmFsc2UsCj4+ICvCoMKgwqDCoMKgwqDC
oCBkZWxldGVFbXB0eTogZmFsc2UsCj4+ICvCoMKgwqDCoMKgwqDCoCBmaWVsZExhYmVsOiBnZXR0
ZXh0KCdGaXhlZCBSb2xlJyksCj4+ICvCoMKgwqDCoMKgwqDCoCBiaW5kOiB7Cj4+ICvCoMKgwqDC
oMKgwqDCoCBkaXNhYmxlZDogJ3toaWRlRml4ZWRSb2xlQXNzaWdubWVudH0nLAo+PiArwqDCoMKg
wqDCoMKgwqAgaGlkZGVuOiAne2hpZGVGaXhlZFJvbGVBc3NpZ25tZW50fScsCj4+ICvCoMKgwqDC
oMKgwqDCoCB9LAo+PiArwqDCoMKgIH0sCj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAg
eHR5cGU6ICdwcm94bW94dGV4dGZpZWxkJywKPj4gK8KgwqDCoMKgwqDCoMKgIG5hbWU6ICdyb2xl
LWNsYWltJywKPj4gK8KgwqDCoMKgwqDCoMKgIGFsbG93Qmxhbms6IGZhbHNlLAo+PiArwqDCoMKg
wqDCoMKgwqAgZGVsZXRlRW1wdHk6IGZhbHNlLAo+PiArwqDCoMKgwqDCoMKgwqAgZmllbGRMYWJl
bDogZ2V0dGV4dCgnUm9sZSBDbGFpbScpLAo+PiArwqDCoMKgwqDCoMKgwqAgYmluZDogewo+PiAr
wqDCoMKgwqDCoMKgwqAgZGlzYWJsZWQ6ICd7aGlkZUNsYWltUm9sZUFzc2lnbm1lbnR9JywKPj4g
K8KgwqDCoMKgwqDCoMKgIGhpZGRlbjogJ3toaWRlQ2xhaW1Sb2xlQXNzaWdubWVudH0nLAo+PiAr
wqDCoMKgwqDCoMKgwqAgfSwKPiAKPiBzaWRlIHF1ZXN0aW9uOiBkaWQgeW91IGdvdCB0aGF0IHRv
IHdvcmsgd2l0aCBrZXljbG9haz8gaSBjb3VsZG4ndCBpbiBteSB0ZXN0cy4uLgpJIHRyaWVkIGl0
IHdpdGgga2V5Y2xvYWsgYW5kIGF1dGhlbnRpay4gSSB3YXMgYWxzbyB1bnN1Y2Nlc3NmdWwuCj4g
Cj4+ICvCoMKgwqAgfSwKPj4gK8KgwqDCoCBdLAo+PiArCj4+ICvCoMKgwqAgYWR2YW5jZWRDb2x1
bW5COiBbCj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDCoMKgwqAgeHR5cGU6ICdwcm94bW94dGV4
dGZpZWxkJywKPj4gK8KgwqDCoMKgwqDCoMKgIG5hbWU6ICdhY3ItdmFsdWVzJywKPj4gK8KgwqDC
oMKgwqDCoMKgIGZpZWxkTGFiZWw6IGdldHRleHQoJ0FDUiBWYWx1ZXMnKSwKPj4gK8KgwqDCoMKg
wqDCoMKgIHN1Ym1pdEVtcHR5OiBmYWxzZSwKPj4gK8KgwqDCoMKgwqDCoMKgIGNiaW5kOiB7Cj4+
ICvCoMKgwqDCoMKgwqDCoCBkZWxldGVFbXB0eTogJ3shaXNDcmVhdGV9JywKPj4gK8KgwqDCoMKg
wqDCoMKgIH0sCj4+ICvCoMKgwqAgfSwKPj4gK8KgwqDCoCBdLAo+PiArfSk7Cj4+IGRpZmYgLS1n
aXQgYS9qcy9NYWtlZmlsZSBiL2pzL01ha2VmaWxlCj4+IGluZGV4IGQxZmFiOWIuLmM5ODRiZjMg
MTAwNjQ0Cj4+IC0tLSBhL2pzL01ha2VmaWxlCj4+ICsrKyBiL2pzL01ha2VmaWxlCj4+IEBAIC03
OCw2ICs3OCw3IEBAIEpTU1JDPcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBcCj4+IMKgwqDCoMKgwqAgTERBUENvbmZpZy5qc8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPj4gwqDCoMKgwqDCoCBVc2VyRWRpdC5qc8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPj4gwqDCoMKgwqDCoCBVc2Vy
Vmlldy5qc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPj4gK8KgwqDC
oCBBdXRoRWRpdE9JREMuanPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBc
Cj4+IMKgwqDCoMKgwqAgVEZBVmlldy5qc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIFwKPj4gwqDCoMKgwqDCoCBGZXRjaG1haWxFZGl0LmpzwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIFwKPj4gwqDCoMKgwqDCoCBGZXRjaG1haWxWaWV3LmpzwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIFwKPj4gZGlmZiAtLWdpdCBhL2pzL1V0aWxzLmpzIGIvanMvVXRp
bHMuanMKPj4gaW5kZXggZDRhNTVhOC4uOWRiYzc2ZiAxMDA2NDQKPj4gLS0tIGEvanMvVXRpbHMu
anMKPj4gKysrIGIvanMvVXRpbHMuanMKPj4gQEAgLTg3MSw2ICs4NzEsNyBAQCBFeHQuZGVmaW5l
KCdQTUcuVXRpbHMnLCB7Cj4+IMKgwqDCoMKgwqAgLy8gdXNlIG9pZGMgaW5zdGVhZCBvZiBvcGVu
aWQKPj4gwqDCoMKgwqDCoCBQcm94bW94LlNjaGVtYS5hdXRoRG9tYWlucy5vaWRjID0gUHJveG1v
eC5TY2hlbWEuYXV0aERvbWFpbnMub3BlbmlkOwo+PiDCoMKgwqDCoMKgIFByb3htb3guU2NoZW1h
LmF1dGhEb21haW5zLm9pZGMudXNlVHlwZUluVXJsID0gZmFsc2U7Cj4+ICvCoMKgwqAgUHJveG1v
eC5TY2hlbWEuYXV0aERvbWFpbnMub2lkYy5pcGFuZWwgPSAncG1nQXV0aE9JRENQYW5lbCc7Cj4+
IMKgwqDCoMKgwqAgZGVsZXRlIFByb3htb3guU2NoZW1hLmF1dGhEb21haW5zLm9wZW5pZDsKPj4g
wqDCoMKgwqDCoCAvLyBEaXNhYmxlIExEQVAvQUQgYXMgYSByZWFsbSB1bnRpbCBMREFQL0FEIGxv
Z2luIGlzIGltcGxlbWVudGVkCj4gCj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KPiBwbWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gcG1nLWRldmVs
QGxpc3RzLnByb3htb3guY29tCj4gaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vcG1nLWRldmVsCj4gCj4gCgoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCnBtZy1kZXZlbCBtYWlsaW5nIGxpc3QKcG1nLWRldmVs
QGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls
bWFuL2xpc3RpbmZvL3BtZy1kZXZlbAo=