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 A53AF1FF16B
	for <inbox@lore.proxmox.com>; Thu,  3 Apr 2025 12:36:12 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 72CC33CBB8;
	Thu,  3 Apr 2025 12:35:28 +0200 (CEST)
From: Markus Frank <m.frank@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Thu,  3 Apr 2025 12:34:38 +0200
Message-Id: <20250403103442.136958-9-m.frank@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250403103442.136958-1-m.frank@proxmox.com>
References: <20250403103442.136958-1-m.frank@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL -1.005 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
 KAM_MAILER                  2 Automated Mailer Tag Left in Email
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: [pve-devel] [PATCH manager v15 08/12] api: add resource map api
 endpoints for directories
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-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

UmV2aWV3ZWQtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3guY29tPgpSZXZpZXdlZC1i
eTogTGF1cmVuyJtpdSBMZWFodS1WbMSDZHVjdSA8bC5sZWFodS12bGFkdWN1QHByb3htb3guY29t
ClJldmlld2VkLWJ5OiBEYW5pZWwgS3JhbCA8ZC5rcmFsQHByb3htb3guY29tPgpUZXN0ZWQtYnk6
IExhdXJlbsibaXUgTGVhaHUtVmzEg2R1Y3UgPGwubGVhaHUtdmxhZHVjdUBwcm94bW94LmNvbT4K
VGVzdGVkLWJ5OiBEYW5pZWwgS3JhbCA8ZC5rcmFsQHByb3htb3guY29tPgpTaWduZWQtb2ZmLWJ5
OiBNYXJrdXMgRnJhbmsgPG0uZnJhbmtAcHJveG1veC5jb20+Ci0tLQpubyBjaGFuZ2VzIGluIHYx
NQoKIFBWRS9BUEkyL0NsdXN0ZXIvTWFwcGluZy5wbSAgICAgICB8ICAgNyArCiBQVkUvQVBJMi9D
bHVzdGVyL01hcHBpbmcvRGlyLnBtICAgfCAzMDggKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrCiBQVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUgfCAgIDEgKwogMyBmaWxlcyBj
aGFuZ2VkLCAzMTYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFBWRS9BUEkyL0Ns
dXN0ZXIvTWFwcGluZy9EaXIucG0KCmRpZmYgLS1naXQgYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBp
bmcucG0gYi9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcucG0KaW5kZXggNDAzODY1NzkuLjlmMGRj
ZDJiIDEwMDY0NAotLS0gYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcucG0KKysrIGIvUFZFL0FQ
STIvQ2x1c3Rlci9NYXBwaW5nLnBtCkBAIC0zLDExICszLDE3IEBAIHBhY2thZ2UgUFZFOjpBUEky
OjpDbHVzdGVyOjpNYXBwaW5nOwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIAordXNlIFBW
RTo6QVBJMjo6Q2x1c3Rlcjo6TWFwcGluZzo6RGlyOwogdXNlIFBWRTo6QVBJMjo6Q2x1c3Rlcjo6
TWFwcGluZzo6UENJOwogdXNlIFBWRTo6QVBJMjo6Q2x1c3Rlcjo6TWFwcGluZzo6VVNCOwogCiB1
c2UgYmFzZSBxdyhQVkU6OlJFU1RIYW5kbGVyKTsKIAorX19QQUNLQUdFX18tPnJlZ2lzdGVyX21l
dGhvZCAoeworICAgIHN1YmNsYXNzID0+ICJQVkU6OkFQSTI6OkNsdXN0ZXI6Ok1hcHBpbmc6OkRp
ciIsCisgICAgcGF0aCA9PiAnZGlyJywKK30pOworCiBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0
aG9kICh7CiAgICAgc3ViY2xhc3MgPT4gIlBWRTo6QVBJMjo6Q2x1c3Rlcjo6TWFwcGluZzo6UENJ
IiwKICAgICBwYXRoID0+ICdwY2knLApAQCAtNDEsNiArNDcsNyBAQCBfX1BBQ0tBR0VfXy0+cmVn
aXN0ZXJfbWV0aG9kICh7CiAJbXkgKCRwYXJhbSkgPSBAXzsKIAogCW15ICRyZXN1bHQgPSBbCisJ
ICAgIHsgbmFtZSA9PiAnZGlyJyB9LAogCSAgICB7IG5hbWUgPT4gJ3BjaScgfSwKIAkgICAgeyBu
YW1lID0+ICd1c2InIH0sCiAJXTsKZGlmZiAtLWdpdCBhL1BWRS9BUEkyL0NsdXN0ZXIvTWFwcGlu
Zy9EaXIucG0gYi9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvRGlyLnBtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5mOTA1Y2VmMwotLS0gL2Rldi9udWxsCisrKyBiL1BWRS9B
UEkyL0NsdXN0ZXIvTWFwcGluZy9EaXIucG0KQEAgLTAsMCArMSwzMDggQEAKK3BhY2thZ2UgUFZF
OjpBUEkyOjpDbHVzdGVyOjpNYXBwaW5nOjpEaXI7CisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2Fybmlu
Z3M7CisKK3VzZSBTdG9yYWJsZSBxdyhkY2xvbmUpOworCit1c2UgUFZFOjpJTm90aWZ5OwordXNl
IFBWRTo6SlNPTlNjaGVtYSBxdyhnZXRfc3RhbmRhcmRfb3B0aW9uKTsKK3VzZSBQVkU6Ok1hcHBp
bmc6OkRpciAoKTsKK3VzZSBQVkU6OlJQQ0Vudmlyb25tZW50OwordXNlIFBWRTo6U2VjdGlvbkNv
bmZpZzsKK3VzZSBQVkU6OlRvb2xzIHF3KGV4dHJhY3RfcGFyYW0pOworCit1c2UgYmFzZSBxdyhQ
VkU6OlJFU1RIYW5kbGVyKTsKKworX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoeworICAg
IG5hbWUgPT4gJ2luZGV4JywKKyAgICBwYXRoID0+ICcnLAorICAgIG1ldGhvZCA9PiAnR0VUJywK
KyAgICAjIG9ubHkgcHJveHkgaWYgd2UgZ2l2ZSB0aGUgJ2NoZWNrLW5vZGUnIHBhcmFtZXRlcgor
ICAgIHByb3h5dG9fY2FsbGJhY2sgPT4gc3ViIHsKKwlteSAoJHJwY2VudiwgJHByb3h5dG8sICRw
YXJhbSkgPSBAXzsKKwlyZXR1cm4gJHBhcmFtLT57J2NoZWNrLW5vZGUnfSAvLyAnbG9jYWxob3N0
JzsKKyAgICB9LAorICAgIGRlc2NyaXB0aW9uID0+ICJMaXN0IGRpcmVjdG9yeSBtYXBwaW5nIiwK
KyAgICBwZXJtaXNzaW9ucyA9PiB7CisJZGVzY3JpcHRpb24gPT4gIk9ubHkgbGlzdHMgZW50cmll
cyB3aGVyZSB5b3UgaGF2ZSAnTWFwcGluZy5Nb2RpZnknLCAnTWFwcGluZy5Vc2UnIG9yIgorCSAg
ICAuIiAnTWFwcGluZy5BdWRpdCcgcGVybWlzc2lvbnMgb24gJy9tYXBwaW5nL2Rpci88aWQ+Jy4i
LAorCXVzZXIgPT4gJ2FsbCcsCisgICAgfSwKKyAgICBwYXJhbWV0ZXJzID0+IHsKKwlhZGRpdGlv
bmFsUHJvcGVydGllcyA9PiAwLAorCXByb3BlcnRpZXMgPT4geworCSAgICAnY2hlY2stbm9kZScg
PT4gZ2V0X3N0YW5kYXJkX29wdGlvbigncHZlLW5vZGUnLCB7CisJCWRlc2NyaXB0aW9uID0+ICJJ
ZiBnaXZlbiwgY2hlY2tzIHRoZSBjb25maWd1cmF0aW9ucyBvbiB0aGUgZ2l2ZW4gbm9kZSBmb3Ii
CisJCSAgICAuIiBjb3JyZWN0bmVzcywgYW5kIGFkZHMgcmVsZXZhbnQgZGlhZ25vc3RpY3MgZm9y
IHRoZSBkaXJlY3RvcnkgdG8gdGhlIHJlc3BvbnNlLiIsCisJCW9wdGlvbmFsID0+IDEsCisJICAg
IH0pLAorCX0sCisgICAgfSwKKyAgICByZXR1cm5zID0+IHsKKwl0eXBlID0+ICdhcnJheScsCisJ
aXRlbXMgPT4geworCSAgICB0eXBlID0+ICJvYmplY3QiLAorCSAgICBwcm9wZXJ0aWVzID0+IHsK
KwkJaWQgPT4geworCQkgICAgdHlwZSA9PiAnc3RyaW5nJywKKwkJICAgIGRlc2NyaXB0aW9uID0+
ICJUaGUgbG9naWNhbCBJRCBvZiB0aGUgbWFwcGluZy4iCisJCX0sCisJCW1hcCA9PiB7CisJCSAg
ICB0eXBlID0+ICdhcnJheScsCisJCSAgICBkZXNjcmlwdGlvbiA9PiAiVGhlIGVudHJpZXMgb2Yg
dGhlIG1hcHBpbmcuIiwKKwkJICAgIGl0ZW1zID0+IHsKKwkJCXR5cGUgPT4gJ3N0cmluZycsCisJ
CQlkZXNjcmlwdGlvbiA9PiAiQSBtYXBwaW5nIGZvciBhIG5vZGUuIiwKKwkJICAgIH0sCisJCX0s
CisJCWRlc2NyaXB0aW9uID0+IHsKKwkJICAgIHR5cGUgPT4gJ3N0cmluZycsCisJCSAgICBkZXNj
cmlwdGlvbiA9PiAiQSBkZXNjcmlwdGlvbiBvZiB0aGUgbG9naWNhbCBtYXBwaW5nLiIsCisJCX0s
CisJCWNoZWNrcyA9PiB7CisJCSAgICB0eXBlID0+ICJhcnJheSIsCisJCSAgICBvcHRpb25hbCA9
PiAxLAorCQkgICAgZGVzY3JpcHRpb24gPT4gIkEgbGlzdCBvZiBjaGVja3MsIG9ubHkgcHJlc2Vu
dCBpZiAnY2hlY2stbm9kZScgaXMgc2V0LiIsCisJCSAgICBpdGVtcyA9PiB7CisJCQl0eXBlID0+
ICdvYmplY3QnLAorCQkJcHJvcGVydGllcyA9PiB7CisJCQkgICAgc2V2ZXJpdHkgPT4geworCQkJ
CXR5cGUgPT4gInN0cmluZyIsCisJCQkJZW51bSA9PiBbJ3dhcm5pbmcnLCAnZXJyb3InXSwKKwkJ
CQlkZXNjcmlwdGlvbiA9PiAiVGhlIHNldmVyaXR5IG9mIHRoZSBlcnJvciIsCisJCQkgICAgfSwK
KwkJCSAgICBtZXNzYWdlID0+IHsKKwkJCQl0eXBlID0+ICJzdHJpbmciLAorCQkJCWRlc2NyaXB0
aW9uID0+ICJUaGUgbWVzc2FnZSBvZiB0aGUgZXJyb3IiLAorCQkJICAgIH0sCisJCQl9LAorCQkg
ICAgfQorCQl9LAorCSAgICB9LAorCX0sCisJbGlua3MgPT4gWyB7IHJlbCA9PiAnY2hpbGQnLCBo
cmVmID0+ICJ7aWR9IiB9IF0sCisgICAgfSwKKyAgICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJh
bSkgPSBAXzsKKworCW15ICRycGNlbnYgPSBQVkU6OlJQQ0Vudmlyb25tZW50OjpnZXQoKTsKKwlt
eSAkYXV0aHVzZXIgPSAkcnBjZW52LT5nZXRfdXNlcigpOworCisJbXkgJGNoZWNrX25vZGUgPSAk
cGFyYW0tPnsnY2hlY2stbm9kZSd9OworCW15ICRsb2NhbF9ub2RlID0gUFZFOjpJTm90aWZ5Ojpu
b2RlbmFtZSgpOworCisJZGllICJ3cm9uZyBub2RlIHRvIGNoZWNrIC0gJGNoZWNrX25vZGUgIT0g
JGxvY2FsX25vZGVcbiIKKwkgICAgaWYgZGVmaW5lZCgkY2hlY2tfbm9kZSkgJiYgJGNoZWNrX25v
ZGUgbmUgJ2xvY2FsaG9zdCcgJiYgJGNoZWNrX25vZGUgbmUgJGxvY2FsX25vZGU7CisKKwlteSAk
Y2ZnID0gUFZFOjpNYXBwaW5nOjpEaXI6OmNvbmZpZygpOworCisJbXkgJGNhbl9zZWVfbWFwcGlu
Z19wcml2cyA9IFsnTWFwcGluZy5Nb2RpZnknLCAnTWFwcGluZy5Vc2UnLCAnTWFwcGluZy5BdWRp
dCddOworCisJbXkgJHJlcyA9IFtdOworCWZvciBteSAkaWQgKGtleXMgJGNmZy0+e2lkc30tPiUq
KSB7CisJICAgIG5leHQgaWYgISRycGNlbnYtPmNoZWNrX2FueSgkYXV0aHVzZXIsICIvbWFwcGlu
Zy9kaXIvJGlkIiwgJGNhbl9zZWVfbWFwcGluZ19wcml2cywgMSk7CisJICAgIG5leHQgaWYgISRj
ZmctPntpZHN9LT57JGlkfTsKKworCSAgICBteSAkZW50cnkgPSBkY2xvbmUoJGNmZy0+e2lkc30t
PnskaWR9KTsKKwkgICAgJGVudHJ5LT57aWR9ID0gJGlkOworCSAgICAkZW50cnktPntkaWdlc3R9
ID0gJGNmZy0+e2RpZ2VzdH07CisKKwkgICAgaWYgKGRlZmluZWQoJGNoZWNrX25vZGUpKSB7CisJ
CSRlbnRyeS0+e2NoZWNrc30gPSBbXTsKKwkJaWYgKG15ICRtYXBwaW5ncyA9IFBWRTo6TWFwcGlu
Zzo6RGlyOjpnZXRfbm9kZV9tYXBwaW5nKCRjZmcsICRpZCwgJGNoZWNrX25vZGUpKSB7CisJCSAg
ICBpZiAoIXNjYWxhcigkbWFwcGluZ3MtPkAqKSkgeworCQkJcHVzaCAkZW50cnktPntjaGVja3N9
LT5AKiwgeworCQkJICAgIHNldmVyaXR5ID0+ICd3YXJuaW5nJywKKwkJCSAgICBtZXNzYWdlID0+
ICJObyBtYXBwaW5nIGZvciBub2RlICRjaGVja19ub2RlLiIsCisJCQl9OworCQkgICAgfQorCQkg
ICAgZm9yIG15ICRtYXBwaW5nICgkbWFwcGluZ3MtPkAqKSB7CisJCQlldmFsIHsgUFZFOjpNYXBw
aW5nOjpEaXI6OmFzc2VydF92YWxpZCgkbWFwcGluZykgfTsKKwkJCWlmIChteSAkZXJyID0gJEAp
IHsKKwkJCSAgICBwdXNoICRlbnRyeS0+e2NoZWNrc30tPkAqLCB7CisJCQkJc2V2ZXJpdHkgPT4g
J2Vycm9yJywKKwkJCQltZXNzYWdlID0+ICJJbnZhbGlkIGNvbmZpZ3VyYXRpb246ICRlcnIiLAor
CQkJICAgIH07CisJCQl9CisJCSAgICB9CisJCX0KKwkgICAgfQorCisJICAgIHB1c2ggQCRyZXMs
ICRlbnRyeTsKKwl9CisKKwlyZXR1cm4gJHJlczsKKyAgICB9LAorfSk7CisKK19fUEFDS0FHRV9f
LT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1lID0+ICdnZXQnLAorICAgIHByb3RlY3RlZCA9
PiAxLAorICAgIHBhdGggPT4gJ3tpZH0nLAorICAgIG1ldGhvZCA9PiAnR0VUJywKKyAgICBkZXNj
cmlwdGlvbiA9PiAiR2V0IGRpcmVjdG9yeSBtYXBwaW5nLiIsCisgICAgcGVybWlzc2lvbnMgPT4g
eworCWNoZWNrID0+WydvcicsCisJICAgIFsncGVybScsICcvbWFwcGluZy9kaXIve2lkfScsIFsn
TWFwcGluZy5Vc2UnXV0sCisJICAgIFsncGVybScsICcvbWFwcGluZy9kaXIve2lkfScsIFsnTWFw
cGluZy5Nb2RpZnknXV0sCisJICAgIFsncGVybScsICcvbWFwcGluZy9kaXIve2lkfScsIFsnTWFw
cGluZy5BdWRpdCddXSwKKwldLAorICAgIH0sCisgICAgcGFyYW1ldGVycyA9PiB7CisJYWRkaXRp
b25hbFByb3BlcnRpZXMgPT4gMCwKKwlwcm9wZXJ0aWVzID0+IHsKKwkgICAgaWQgPT4geworCQl0
eXBlID0+ICdzdHJpbmcnLAorCQlmb3JtYXQgPT4gJ3B2ZS1jb25maWdpZCcsCisJICAgIH0sCisJ
fQorICAgIH0sCisgICAgcmV0dXJucyA9PiB7IHR5cGUgPT4gJ29iamVjdCcgfSwKKyAgICBjb2Rl
ID0+IHN1YiB7CisJbXkgKCRwYXJhbSkgPSBAXzsKKworCW15ICRjZmcgPSBQVkU6Ok1hcHBpbmc6
OkRpcjo6Y29uZmlnKCk7CisJbXkgJGlkID0gJHBhcmFtLT57aWR9OworCisJbXkgJGVudHJ5ID0g
JGNmZy0+e2lkc30tPnskaWR9OworCWRpZSAibWFwcGluZyAnJHBhcmFtLT57aWR9JyBub3QgZm91
bmRcbiIgaWYgIWRlZmluZWQoJGVudHJ5KTsKKworCW15ICRkYXRhID0gZGNsb25lKCRlbnRyeSk7
CisKKwkkZGF0YS0+e2RpZ2VzdH0gPSAkY2ZnLT57ZGlnZXN0fTsKKworCXJldHVybiAkZGF0YTsK
KyAgICB9fSk7CisKK19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1lID0+
ICdjcmVhdGUnLAorICAgIHByb3RlY3RlZCA9PiAxLAorICAgIHBhdGggPT4gJycsCisgICAgbWV0
aG9kID0+ICdQT1NUJywKKyAgICBkZXNjcmlwdGlvbiA9PiAiQ3JlYXRlIGEgbmV3IGRpcmVjdG9y
eSBtYXBwaW5nLiIsCisgICAgcGVybWlzc2lvbnMgPT4geworCWNoZWNrID0+IFsncGVybScsICcv
bWFwcGluZy9kaXInLCBbJ01hcHBpbmcuTW9kaWZ5J11dLAorICAgIH0sCisgICAgcGFyYW1ldGVy
cyA9PiBQVkU6Ok1hcHBpbmc6OkRpci0+Y3JlYXRlU2NoZW1hKDEpLAorICAgIHJldHVybnMgPT4g
eworCXR5cGUgPT4gJ251bGwnLAorICAgIH0sCisgICAgY29kZSA9PiBzdWIgeworCW15ICgkcGFy
YW0pID0gQF87CisKKwlteSAkaWQgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ2lkJyk7CisKKwlt
eSAkcGx1Z2luID0gUFZFOjpNYXBwaW5nOjpEaXItPmxvb2t1cCgnZGlyJyk7CisJbXkgJG9wdHMg
PSAkcGx1Z2luLT5jaGVja19jb25maWcoJGlkLCAkcGFyYW0sIDEsIDEpOworCisJbXkgJG1hcF9s
aXN0ID0gJG9wdHMtPnttYXB9OworCVBWRTo6TWFwcGluZzo6RGlyOjphc3NlcnRfdmFsaWRfbWFw
X2xpc3QoJG1hcF9saXN0KTsKKworCVBWRTo6TWFwcGluZzo6RGlyOjpsb2NrX2Rpcl9jb25maWco
c3ViIHsKKwkgICAgbXkgJGNmZyA9IFBWRTo6TWFwcGluZzo6RGlyOjpjb25maWcoKTsKKworCSAg
ICBkaWUgImRpciBJRCAnJGlkJyBhbHJlYWR5IGRlZmluZWRcbiIgaWYgZGVmaW5lZCgkY2ZnLT57
aWRzfS0+eyRpZH0pOworCisJICAgICRjZmctPntpZHN9LT57JGlkfSA9ICRvcHRzOworCisJICAg
IFBWRTo6TWFwcGluZzo6RGlyOjp3cml0ZV9kaXJfY29uZmlnKCRjZmcpOworCisJfSwgImNyZWF0
ZSBkaXJlY3RvcnkgbWFwcGluZyBmYWlsZWQiKTsKKworCXJldHVybjsKKyAgICB9LAorfSk7CisK
K19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1lID0+ICd1cGRhdGUnLAor
ICAgIHByb3RlY3RlZCA9PiAxLAorICAgIHBhdGggPT4gJ3tpZH0nLAorICAgIG1ldGhvZCA9PiAn
UFVUJywKKyAgICBkZXNjcmlwdGlvbiA9PiAiVXBkYXRlIGEgZGlyZWN0b3J5IG1hcHBpbmcuIiwK
KyAgICBwZXJtaXNzaW9ucyA9PiB7CisJY2hlY2sgPT4gWydwZXJtJywgJy9tYXBwaW5nL2Rpci97
aWR9JywgWydNYXBwaW5nLk1vZGlmeSddXSwKKyAgICB9LAorICAgIHBhcmFtZXRlcnMgPT4gUFZF
OjpNYXBwaW5nOjpEaXItPnVwZGF0ZVNjaGVtYSgpLAorICAgIHJldHVybnMgPT4geworCXR5cGUg
PT4gJ251bGwnLAorICAgIH0sCisgICAgY29kZSA9PiBzdWIgeworCW15ICgkcGFyYW0pID0gQF87
CisKKwlteSAkZGlnZXN0ID0gZXh0cmFjdF9wYXJhbSgkcGFyYW0sICdkaWdlc3QnKTsKKwlteSAk
ZGVsZXRlID0gZXh0cmFjdF9wYXJhbSgkcGFyYW0sICdkZWxldGUnKTsKKwlteSAkaWQgPSBleHRy
YWN0X3BhcmFtKCRwYXJhbSwgJ2lkJyk7CisKKwlpZiAoJGRlbGV0ZSkgeworCSAgICAkZGVsZXRl
ID0gWyBQVkU6OlRvb2xzOjpzcGxpdF9saXN0KCRkZWxldGUpIF07CisJfQorCisJUFZFOjpNYXBw
aW5nOjpEaXI6OmxvY2tfZGlyX2NvbmZpZyhzdWIgeworCSAgICBteSAkY2ZnID0gUFZFOjpNYXBw
aW5nOjpEaXI6OmNvbmZpZygpOworCisJICAgIFBWRTo6VG9vbHM6OmFzc2VydF9pZl9tb2RpZmll
ZCgkY2ZnLT57ZGlnZXN0fSwgJGRpZ2VzdCkgaWYgZGVmaW5lZCgkZGlnZXN0KTsKKworCSAgICBk
aWUgImRpciBJRCAnJGlkJyBkb2VzIG5vdCBleGlzdFxuIiBpZiAhZGVmaW5lZCgkY2ZnLT57aWRz
fS0+eyRpZH0pOworCisJICAgIG15ICRwbHVnaW4gPSBQVkU6Ok1hcHBpbmc6OkRpci0+bG9va3Vw
KCdkaXInKTsKKwkgICAgbXkgJG9wdHMgPSAkcGx1Z2luLT5jaGVja19jb25maWcoJGlkLCAkcGFy
YW0sIDEsIDEpOworCisJICAgIG15ICRtYXBfbGlzdCA9ICRvcHRzLT57bWFwfTsKKwkgICAgUFZF
OjpNYXBwaW5nOjpEaXI6OmFzc2VydF92YWxpZF9tYXBfbGlzdCgkbWFwX2xpc3QpOworCisJICAg
IG15ICRkYXRhID0gJGNmZy0+e2lkc30tPnskaWR9OworCisJICAgIG15ICRvcHRpb25zID0gJHBs
dWdpbi0+cHJpdmF0ZSgpLT57b3B0aW9uc30tPntkaXJ9OworCSAgICBQVkU6OlNlY3Rpb25Db25m
aWc6OmRlbGV0ZV9mcm9tX2NvbmZpZygkZGF0YSwgJG9wdGlvbnMsICRvcHRzLCAkZGVsZXRlKTsK
KworCSAgICAkZGF0YS0+eyRffSA9ICRvcHRzLT57JF99IGZvciBrZXlzICRvcHRzLT4lKjsKKwor
CSAgICBQVkU6Ok1hcHBpbmc6OkRpcjo6d3JpdGVfZGlyX2NvbmZpZygkY2ZnKTsKKworCX0sICJ1
cGRhdGUgZGlyZWN0b3J5IG1hcHBpbmcgZmFpbGVkIik7CisKKwlyZXR1cm47CisgICAgfSwKK30p
OworCitfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7CisgICAgbmFtZSA9PiAnZGVsZXRl
JywKKyAgICBwcm90ZWN0ZWQgPT4gMSwKKyAgICBwYXRoID0+ICd7aWR9JywKKyAgICBtZXRob2Qg
PT4gJ0RFTEVURScsCisgICAgZGVzY3JpcHRpb24gPT4gIlJlbW92ZSBkaXJlY3RvcnkgbWFwcGlu
Zy4iLAorICAgIHBlcm1pc3Npb25zID0+IHsKKwljaGVjayA9PiBbICdwZXJtJywgJy9tYXBwaW5n
L2RpcicsIFsnTWFwcGluZy5Nb2RpZnknXV0sCisgICAgfSwKKyAgICBwYXJhbWV0ZXJzID0+IHsK
KwlhZGRpdGlvbmFsUHJvcGVydGllcyA9PiAwLAorCXByb3BlcnRpZXMgPT4geworCSAgICBpZCA9
PiB7CisJCXR5cGUgPT4gJ3N0cmluZycsCisJCWZvcm1hdCA9PiAncHZlLWNvbmZpZ2lkJywKKwkg
ICAgfSwKKwl9CisgICAgfSwKKyAgICByZXR1cm5zID0+IHsgdHlwZSA9PiAnbnVsbCcgfSwKKyAg
ICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJhbSkgPSBAXzsKKworCW15ICRpZCA9ICRwYXJhbS0+
e2lkfTsKKworCVBWRTo6TWFwcGluZzo6RGlyOjpsb2NrX2Rpcl9jb25maWcoc3ViIHsKKwkgICAg
bXkgJGNmZyA9IFBWRTo6TWFwcGluZzo6RGlyOjpjb25maWcoKTsKKworCSAgICBpZiAoJGNmZy0+
e2lkc30tPnskaWR9KSB7CisJCWRlbGV0ZSAkY2ZnLT57aWRzfS0+eyRpZH07CisJICAgIH0KKwor
CSAgICBQVkU6Ok1hcHBpbmc6OkRpcjo6d3JpdGVfZGlyX2NvbmZpZygkY2ZnKTsKKworCX0sICJk
ZWxldGUgZGlyIG1hcHBpbmcgZmFpbGVkIik7CisKKwlyZXR1cm47CisgICAgfQorfSk7CisKKzE7
CmRpZmYgLS1naXQgYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUgYi9QVkUvQVBJ
Mi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUKaW5kZXggZTczNDVhYjQuLjVkYmIzZjVjIDEwMDY0
NAotLS0gYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUKKysrIGIvUFZFL0FQSTIv
Q2x1c3Rlci9NYXBwaW5nL01ha2VmaWxlCkBAIC0zLDYgKzMsNyBAQCBpbmNsdWRlIC4uLy4uLy4u
Ly4uL2RlZmluZXMubWsKICMgZm9yIG5vZGUgaW5kZXBlbmRlbnQsIGNsdXN0ZXItd2lkZSBhcHBs
aWNhYmxlLCBBUEkgZW5kcG9pbnRzCiAjIGVuc3VyZSB3ZSBkbyBub3QgY29uZmxpY3Qgd2l0aCBm
aWxlcyBzaGlwcGVkIGJ5IHB2ZS1jbHVzdGVyISEKIFBFUkxTT1VSQ0U9IAlcCisJRGlyLnBtICBc
CiAJUENJLnBtCVwKIAlVU0IucG0KIAotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRl
dmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=