From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pbs-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 3260A20EC8A
	for <inbox@lore.proxmox.com>; Mon, 29 Apr 2024 14:11:49 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 724DBFA34;
	Mon, 29 Apr 2024 14:11:44 +0200 (CEST)
From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Mon, 29 Apr 2024 14:10:58 +0200
Message-Id: <20240429121102.315059-55-c.ebner@proxmox.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240429121102.315059-1-c.ebner@proxmox.com>
References: <20240429121102.315059-1-c.ebner@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.021 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 URIBL_SBL_A 0.1 Contains URL's A record listed in the Spamhaus SBL blocklist
 [185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153]
Subject: [pbs-devel] [PATCH v4 proxmox-backup 54/58] test-suite: add
 detection mode change benchmark
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox Backup Server development discussion
 <pbs-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

SW50cm9kdWNlcyB0aGUgcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZSBjcmVhdGUgaW50ZW5kZWQg
Zm9yCmJlbmNobWFya2luZyBhbmQgaGlnaCBsZXZlbCB1c2VyIGZhY2luZyB0ZXN0aW5nLgoKVGhl
IGluaXRpYWwgY29kZSBpbmNsdWRlcyBhIGJlbmNobWFyayBpbnRlbmRlZCBmb3IgcmVncmVzc2lv
biB0ZXN0aW5nIG9mCnRoZSBwcm94bW94LWJhY2t1cC1jbGllbnQgd2hlbiB1c2luZyBkaWZmZXJl
bnQgZmlsZSBkZXRlY3Rpb24gbW9kZXMKZHVyaW5nIGJhY2t1cC4KClNpZ25lZC1vZmYtYnk6IENo
cmlzdGlhbiBFYm5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KLS0tCiBDYXJnby50b21sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogcHJveG1veC1iYWNrdXAtdGVz
dC1zdWl0ZS9DYXJnby50b21sICAgICAgICAgIHwgIDE4ICsrCiAuLi4vc3JjL2RldGVjdGlvbl9t
b2RlX2JlbmNoLnJzICAgICAgICAgICAgICAgfCAyOTQgKysrKysrKysrKysrKysrKysrCiBwcm94
bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9tYWluLnJzICAgICAgICAgfCAgMTcgKwogNCBmaWxl
cyBjaGFuZ2VkLCAzMzAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gt
YmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gt
YmFja3VwLXRlc3Qtc3VpdGUvc3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvbWFpbi5ycwoKZGlmZiAtLWdp
dCBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCmluZGV4IDU3NThiMzdiYy4uOTUwZGQ5NjcxIDEw
MDY0NAotLS0gYS9DYXJnby50b21sCisrKyBiL0NhcmdvLnRvbWwKQEAgLTQ1LDYgKzQ1LDcgQEAg
bWVtYmVycyA9IFsKICAgICAicHJveG1veC1yZXN0b3JlLWRhZW1vbiIsCiAKICAgICAicHhhci1i
aW4iLAorICAgICJwcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlIiwKIF0KIAogW2xpYl0KZGlmZiAt
LWdpdCBhL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbCBiL3Byb3htb3gtYmFj
a3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAuLjNmODk5ZTliYwotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qt
c3VpdGUvQ2FyZ28udG9tbApAQCAtMCwwICsxLDE4IEBACitbcGFja2FnZV0KK25hbWUgPSAicHJv
eG1veC1iYWNrdXAtdGVzdC1zdWl0ZSIKK3ZlcnNpb24gPSAiMC4xLjAiCithdXRob3JzLndvcmtz
cGFjZSA9IHRydWUKK2VkaXRpb24ud29ya3NwYWNlID0gdHJ1ZQorCitbZGVwZW5kZW5jaWVzXQor
YW55aG93LndvcmtzcGFjZSA9IHRydWUKK2Z1dHVyZXMud29ya3NwYWNlID0gdHJ1ZQorc2VyZGUu
d29ya3NwYWNlID0gdHJ1ZQorc2VyZGVfanNvbi53b3Jrc3BhY2UgPSB0cnVlCisKK3Bicy1jbGll
bnQud29ya3NwYWNlID0gdHJ1ZQorcGJzLWtleS1jb25maWcud29ya3NwYWNlID0gdHJ1ZQorcGJz
LXRvb2xzLndvcmtzcGFjZSA9IHRydWUKK3Byb3htb3gtYXN5bmMud29ya3NwYWNlID0gdHJ1ZQor
cHJveG1veC1yb3V0ZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJjbGkiXSB9
Citwcm94bW94LXNjaGVtYSA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJhcGkt
bWFjcm8iIF0gfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvZGV0
ZWN0aW9uX21vZGVfYmVuY2gucnMgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9kZXRl
Y3Rpb25fbW9kZV9iZW5jaC5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu
LjlhM2M3NjgwMgotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUv
c3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzCkBAIC0wLDAgKzEsMjk0IEBACit1c2Ugc3RkOjpw
YXRoOjpQYXRoOwordXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKK3VzZSBzdGQ6Ont0aHJlYWQs
IHRpbWV9OworCit1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9OwordXNlIHNl
cmRlX2pzb246OlZhbHVlOworCit1c2UgcGJzX2NsaWVudDo6eworICAgIHRvb2xzOjp7Y29tcGxl
dGVfcmVwb3NpdG9yeSwga2V5X3NvdXJjZTo6S0VZRklMRV9TQ0hFTUEsIFJFUE9fVVJMX1NDSEVN
QX0sCisgICAgQkFDS1VQX1NPVVJDRV9TQ0hFTUEsCit9OwordXNlIHBic190b29sczo6anNvbjsK
K3VzZSBwcm94bW94X3JvdXRlcjo6Y2xpOjoqOwordXNlIHByb3htb3hfc2NoZW1hOjphcGk7CisK
K2NvbnN0IERFRkFVTFRfTlVNQkVSX09GX1JVTlM6IHU2NCA9IDU7CisvLyBIb21lcGFnZSBodHRw
czovL2NvY29kYXRhc2V0Lm9yZy8KK2NvbnN0IENPQ09fREFUQVNFVF9TUkNfVVJMOiAmJ3N0YXRp
YyBzdHIgPSAiaHR0cDovL2ltYWdlcy5jb2NvZGF0YXNldC5vcmcvemlwcy91bmxhYmVsZWQyMDE3
LnppcCI7CisvLyBIb21lcGFnZSBodHRwczovL2tlcm5lbC5vcmcvCitjb25zdCBMSU5VWF9HSVRf
UkVQT1NJVE9SWTogJidzdGF0aWMgc3RyID0KKyAgICAiZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHVi
L3NjbS9saW51eC9rZXJuZWwvZ2l0L3N0YWJsZS9saW51eC5naXQiOworY29uc3QgTElOVVhfR0lU
X1RBRzogJidzdGF0aWMgc3RyID0gInY2LjUuNSI7CisKK3B1YihjcmF0ZSkgZm4gZGV0ZWN0aW9u
X21vZGVfYmVuY2hfbWd0bV9jbGkoKSAtPiBDbGlDb21tYW5kTWFwIHsKKyAgICBsZXQgcnVuX2Nt
ZF9kZWYgPSBDbGlDb21tYW5kOjpuZXcoJkFQSV9NRVRIT0RfREVURUNUSU9OX01PREVfQkVOQ0hf
UlVOKQorICAgICAgICAuYXJnX3BhcmFtKCZbImJhY2t1cHNwZWMiXSkKKyAgICAgICAgLmNvbXBs
ZXRpb25fY2IoInJlcG9zaXRvcnkiLCBjb21wbGV0ZV9yZXBvc2l0b3J5KQorICAgICAgICAuY29t
cGxldGlvbl9jYigia2V5ZmlsZSIsIGNvbXBsZXRlX2ZpbGVfbmFtZSk7CisKKyAgICBsZXQgcHJl
cGFyZV9jbWRfZGVmID0gQ2xpQ29tbWFuZDo6bmV3KCZBUElfTUVUSE9EX0RFVEVDVElPTl9NT0RF
X0JFTkNIX1BSRVBBUkUpOworICAgIENsaUNvbW1hbmRNYXA6Om5ldygpCisgICAgICAgIC5pbnNl
cnQoInByZXBhcmUiLCBwcmVwYXJlX2NtZF9kZWYpCisgICAgICAgIC5pbnNlcnQoInJ1biIsIHJ1
bl9jbWRfZGVmKQorfQorCisjW2FwaSgKKyAgIGlucHV0OiB7CisgICAgICAgcHJvcGVydGllczog
eworICAgICAgICAgICBiYWNrdXBzcGVjOiB7CisgICAgICAgICAgICAgICB0eXBlOiBBcnJheSwK
KyAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiTGlzdCBvZiBiYWNrdXAgc291cmNlIHNwZWNp
ZmljYXRpb25zIChbPGxhYmVsLmV4dD46PHBhdGg+XSAuLi4pIiwKKyAgICAgICAgICAgICAgIGl0
ZW1zOiB7CisgICAgICAgICAgICAgICAgICAgc2NoZW1hOiBCQUNLVVBfU09VUkNFX1NDSEVNQSwK
KyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgcmVwb3NpdG9yeTog
eworICAgICAgICAgICAgICAgc2NoZW1hOiBSRVBPX1VSTF9TQ0hFTUEsCisgICAgICAgICAgICAg
ICBvcHRpb25hbDogdHJ1ZSwKKyAgICAgICAgICAgfSwKKyAgICAgICAgICAga2V5ZmlsZTogewor
ICAgICAgICAgICAgICAgc2NoZW1hOiBLRVlGSUxFX1NDSEVNQSwKKyAgICAgICAgICAgICAgIG9w
dGlvbmFsOiB0cnVlLAorICAgICAgICAgICB9LAorICAgICAgICAgICAibnVtYmVyLW9mLXJ1bnMi
OiB7CisgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIk51bWJlciBvZiB0aW1lcyB0byByZXBl
YXQgdGhlIHJ1biIsCisgICAgICAgICAgICAgICB0eXBlOiBJbnRlZ2VyLAorICAgICAgICAgICAg
ICAgb3B0aW9uYWw6IHRydWUsCisgICAgICAgICAgIH0sCisgICAgICAgfQorICAgfQorKV0KKy8v
LyBSdW4gYmVuY2htYXJrIHRvIGNvbXBhcmUgcGVyZm9ybWFuY2UgZm9yIGJhY2t1cHMgdXNpbmcg
ZGlmZmVyZW50IGNoYW5nZSBkZXRlY3Rpb24gbW9kZXMuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5j
aF9ydW4ocGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IG11dCBw
YmMgPSBDb21tYW5kOjpuZXcoInByb3htb3gtYmFja3VwLWNsaWVudCIpOworICAgIHBiYy5hcmco
ImJhY2t1cCIpOworCisgICAgbGV0IGJhY2t1cHNwZWNfbGlzdCA9IGpzb246OnJlcXVpcmVkX2Fy
cmF5X3BhcmFtKCZwYXJhbSwgImJhY2t1cHNwZWMiKT87CisgICAgZm9yIGJhY2t1cHNwZWMgaW4g
YmFja3Vwc3BlY19saXN0IHsKKyAgICAgICAgbGV0IGFyZyA9IGJhY2t1cHNwZWMKKyAgICAgICAg
ICAgIC5hc19zdHIoKQorICAgICAgICAgICAgLm9rX29yX2Vsc2UofHwgZm9ybWF0X2VyciEoImZh
aWxlZCB0byBwYXJzZSBiYWNrdXBzcGVjIikpPzsKKyAgICAgICAgcGJjLmFyZyhhcmcpOworICAg
IH0KKworICAgIGlmIGxldCBTb21lKHJlcG8pID0gcGFyYW1bInJlcG9zaXRvcnkiXS5hc19zdHIo
KSB7CisgICAgICAgIHBiYy5hcmcoIi0tcmVwb3NpdG9yeSIpOworICAgICAgICBwYmMuYXJnOjo8
JnN0cj4ocmVwbyk7CisgICAgfQorCisgICAgaWYgbGV0IFNvbWUoa2V5ZmlsZSkgPSBwYXJhbVsi
a2V5ZmlsZSJdLmFzX3N0cigpIHsKKyAgICAgICAgcGJjLmFyZygiLS1rZXlmaWxlIik7CisgICAg
ICAgIHBiYy5hcmc6Ojwmc3RyPihrZXlmaWxlKTsKKyAgICB9CisKKyAgICBsZXQgbnVtYmVyX29m
X3J1bnMgPSBtYXRjaCBwYXJhbVsibnVtYmVyX29mX3J1bnMiXS5hc191NjQoKSB7CisgICAgICAg
IFNvbWUobikgPT4gbiwKKyAgICAgICAgTm9uZSA9PiBERUZBVUxUX05VTUJFUl9PRl9SVU5TLAor
ICAgIH07CisgICAgaWYgbnVtYmVyX29mX3J1bnMgPCAxIHsKKyAgICAgICAgYmFpbCEoIk51bWJl
ciBvZiBydW5zIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEsIGFib3J0aW5nLiIpOworICAgIH0KKwor
ICAgIC8vIEZpcnN0IHJ1biBpcyBhbiBpbml0aWFsIHJ1biB0byBtYWtlIHN1cmUgYWxsIGNodW5r
cyBhcmUgcHJlc2VudCBhbHJlYWR5LCByZWR1Y2Ugc2lkZSBlZmZlY3RzCisgICAgLy8gYnkgZmls
ZXN5c3RlbSBjYWNoZXMgZWNjLgorICAgIGxldCBfc3RhdHNfaW5pdGlhbCA9IGRvX3J1bigmbXV0
IHBiYywgMSk/OworCisgICAgcHJpbnRsbiEoIlxuU3RhcnRpbmcgYmVuY2htYXJraW5nIGJhY2t1
cHMgd2l0aCByZWd1bGFyIGRldGVjdGlvbiBtb2RlLi4uXG4iKTsKKyAgICBsZXQgc3RhdHNfcmVn
ID0gZG9fcnVuKCZtdXQgcGJjLCBudW1iZXJfb2ZfcnVucyk/OworCisgICAgLy8gTWFrZSBzdXJl
IHRvIGhhdmUgYSB2YWxpZCByZWZlcmVuY2Ugd2l0aCBjYXRhbG9nIGZyb21hdCB2ZXJzaW9uIDIK
KyAgICBwYmMuYXJnKCItLWNoYW5nZS1kZXRlY3Rpb24tbW9kZT1tZXRhZGF0YSIpOworICAgIGxl
dCBfc3RhdHNfaW5pdGlhbCA9IGRvX3J1bigmbXV0IHBiYywgMSk/OworCisgICAgcHJpbnRsbiEo
IlxuU3RhcnRpbmcgYmVuY2htYXJraW5nIGJhY2t1cHMgd2l0aCBtZXRhZGF0YSBkZXRlY3Rpb24g
bW9kZS4uLlxuIik7CisgICAgbGV0IHN0YXRzX21ldGEgPSBkb19ydW4oJm11dCBwYmMsIG51bWJl
cl9vZl9ydW5zKT87CisKKyAgICBwcmludGxuISgiXG5Db21wbGV0ZWQgYmVuY2htYXJrIHdpdGgg
e251bWJlcl9vZl9ydW5zfSBydW5zIGZvciBlYWNoIHRlc3RlZCBtb2RlLiIpOworICAgIHByaW50
bG4hKCJcbkNvbXBsZXRlZCByZWd1bGFyIGJhY2t1cCB3aXRoOiIpOworICAgIHByaW50bG4hKCJU
b3RhbCBydW50aW1lOiB7Oi4yfSBzIiwgc3RhdHNfcmVnLnRvdGFsKTsKKyAgICBwcmludGxuISgi
QXZlcmFnZTogezouMn0gwrEgezouMn0gcyIsIHN0YXRzX3JlZy5hdmcsIHN0YXRzX3JlZy5zdGRk
ZXYpOworICAgIHByaW50bG4hKCJNaW46IHs6LjJ9IHMiLCBzdGF0c19yZWcubWluKTsKKyAgICBw
cmludGxuISgiTWF4OiB7Oi4yfSBzIiwgc3RhdHNfcmVnLm1heCk7CisKKyAgICBwcmludGxuISgi
XG5Db21wbGV0ZWQgbWV0YWRhdGEgZGV0ZWN0aW9uIG1vZGUgYmFja3VwIHdpdGg6Iik7CisgICAg
cHJpbnRsbiEoIlRvdGFsIHJ1bnRpbWU6IHs6LjJ9IHMiLCBzdGF0c19tZXRhLnRvdGFsKTsKKyAg
ICBwcmludGxuISgKKyAgICAgICAgIkF2ZXJhZ2U6IHs6LjJ9IMKxIHs6LjJ9IHMiLAorICAgICAg
ICBzdGF0c19tZXRhLmF2Zywgc3RhdHNfbWV0YS5zdGRkZXYKKyAgICApOworICAgIHByaW50bG4h
KCJNaW46IHs6LjJ9IHMiLCBzdGF0c19tZXRhLm1pbik7CisgICAgcHJpbnRsbiEoIk1heDogezou
Mn0gcyIsIHN0YXRzX21ldGEubWF4KTsKKworICAgIGxldCBkaWZmX3N0ZGRldiA9CisgICAgICAg
ICgoc3RhdHNfbWV0YS5zdGRkZXYgKiBzdGF0c19tZXRhLnN0ZGRldikgKyAoc3RhdHNfcmVnLnN0
ZGRldiAqIHN0YXRzX3JlZy5zdGRkZXYpKS5zcXJ0KCk7CisgICAgcHJpbnRsbiEoIlxuRGlmZmVy
ZW5jZXMgKG1ldGFkYXRhIGJhc2VkIC0gcmVndWxhcik6Iik7CisgICAgcHJpbnRsbiEoCisgICAg
ICAgICJEZWx0YSB0b3RhbCBydW50aW1lOiB7Oi4yfSBzICh7Oi4yfSAlKSIsCisgICAgICAgIHN0
YXRzX21ldGEudG90YWwgLSBzdGF0c19yZWcudG90YWwsCisgICAgICAgIDEwMC4wICogKHN0YXRz
X21ldGEudG90YWwgLyBzdGF0c19yZWcudG90YWwgLSAxLjApLAorICAgICk7CisgICAgcHJpbnRs
biEoCisgICAgICAgICJEZWx0YSBhdmVyYWdlOiB7Oi4yfSDCsSB7Oi4yfSBzICh7Oi4yfSAlKSIs
CisgICAgICAgIHN0YXRzX21ldGEuYXZnIC0gc3RhdHNfcmVnLmF2ZywKKyAgICAgICAgZGlmZl9z
dGRkZXYsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEuYXZnIC8gc3RhdHNfcmVnLmF2ZyAt
IDEuMCksCisgICAgKTsKKyAgICBwcmludGxuISgKKyAgICAgICAgIkRlbHRhIG1pbjogezouMn0g
cyAoezouMn0gJSkiLAorICAgICAgICBzdGF0c19tZXRhLm1pbiAtIHN0YXRzX3JlZy5taW4sCisg
ICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEubWluIC8gc3RhdHNfcmVnLm1pbiAtIDEuMCksCisg
ICAgKTsKKyAgICBwcmludGxuISgKKyAgICAgICAgIkRlbHRhIG1heDogezouMn0gcyAoezouMn0g
JSkiLAorICAgICAgICBzdGF0c19tZXRhLm1heCAtIHN0YXRzX3JlZy5tYXgsCisgICAgICAgIDEw
MC4wICogKHN0YXRzX21ldGEubWF4IC8gc3RhdHNfcmVnLm1heCAtIDEuMCksCisgICAgKTsKKwor
ICAgIE9rKCgpKQorfQorCitmbiBkb19ydW4oY21kOiAmbXV0IENvbW1hbmQsIG5fcnVuczogdTY0
KSAtPiBSZXN1bHQ8U3RhdGlzdGljcywgRXJyb3I+IHsKKyAgICAvLyBBdm9pZCBjb25zZWN1dGl2
ZSBzbmFwc2hvdCB0aW1lc3RhbXBzIGNvbGxpc2lvbgorICAgIHRocmVhZDo6c2xlZXAodGltZTo6
RHVyYXRpb246OmZyb21fbWlsbGlzKDEwMDApKTsKKyAgICBsZXQgbXV0IHRpbWluZ3MgPSBWZWM6
OndpdGhfY2FwYWNpdHkobl9ydW5zIGFzIHVzaXplKTsKKyAgICBmb3IgaXRlcmF0aW9uIGluIDEu
Lm5fcnVucyArIDEgeworICAgICAgICBsZXQgc3RhcnQgPSBzdGQ6OnRpbWU6OlN5c3RlbVRpbWU6
Om5vdygpOworICAgICAgICBsZXQgbXV0IGNoaWxkID0gY21kLnNwYXduKCk/OworICAgICAgICBs
ZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICAgICAgbGV0IGVsYXBzZWQgPSBzdGFy
dC5lbGFwc2VkKCk/OworICAgICAgICB0aW1pbmdzLnB1c2goZWxhcHNlZCk7CisgICAgICAgIGlm
ICFleGl0X2NvZGUuc3VjY2VzcygpIHsKKyAgICAgICAgICAgIGJhaWwhKCJSdW4gbnVtYmVyIHtp
dGVyYXRpb259IG9mIHtuX3J1bnN9IGZhaWxlZCwgYWJvcnRpbmcuIik7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBPayhzdGF0aXN0aWNzKHRpbWluZ3MpKQorfQorCitzdHJ1Y3QgU3RhdGlzdGlj
cyB7CisgICAgdG90YWw6IGY2NCwKKyAgICBhdmc6IGY2NCwKKyAgICBzdGRkZXY6IGY2NCwKKyAg
ICBtaW46IGY2NCwKKyAgICBtYXg6IGY2NCwKK30KKworZm4gc3RhdGlzdGljcyh0aW1pbmdzOiBW
ZWM8c3RkOjp0aW1lOjpEdXJhdGlvbj4pIC0+IFN0YXRpc3RpY3MgeworICAgIGxldCB0b3RhbCA9
IHRpbWluZ3MKKyAgICAgICAgLml0ZXIoKQorICAgICAgICAuZm9sZCgwZjY0LCB8c3VtLCB0aW1l
fCBzdW0gKyB0aW1lLmFzX3NlY3NfZjY0KCkpOworICAgIGxldCBhdmcgPSB0b3RhbCAvIHRpbWlu
Z3MubGVuKCkgYXMgZjY0OworICAgIGxldCB2YXIgPSAxZjY0IC8gKHRpbWluZ3MubGVuKCkgLSAx
KSBhcyBmNjQKKyAgICAgICAgKiB0aW1pbmdzLml0ZXIoKS5mb2xkKDBmNjQsIHxzcV9zdW0sIHRp
bWV8IHsKKyAgICAgICAgICAgIGxldCBkaWZmID0gdGltZS5hc19zZWNzX2Y2NCgpIC0gYXZnOwor
ICAgICAgICAgICAgc3Ffc3VtICsgZGlmZiAqIGRpZmYKKyAgICAgICAgfSk7CisgICAgbGV0IHN0
ZGRldiA9IHZhci5zcXJ0KCk7CisgICAgbGV0IG1pbiA9IHRpbWluZ3MuaXRlcigpLm1pbigpLnVu
d3JhcCgpLmFzX3NlY3NfZjY0KCk7CisgICAgbGV0IG1heCA9IHRpbWluZ3MuaXRlcigpLm1heCgp
LnVud3JhcCgpLmFzX3NlY3NfZjY0KCk7CisKKyAgICBTdGF0aXN0aWNzIHsKKyAgICAgICAgdG90
YWwsCisgICAgICAgIGF2ZywKKyAgICAgICAgc3RkZGV2LAorICAgICAgICBtaW4sCisgICAgICAg
IG1heCwKKyAgICB9Cit9CisKKyNbYXBpKAorICAgIGlucHV0OiB7CisgICAgICAgIHByb3BlcnRp
ZXM6IHsKKyAgICAgICAgICAgIHRhcmdldDogeworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
OiAidGFyZ2V0IHBhdGggdG8gcHJlcGFyZSB0ZXN0IGRhdGEuIiwKKyAgICAgICAgICAgIH0sCisg
ICAgICAgIH0sCisgICAgfSwKKyldCisvLy8gUHJlcGFyZSBmaWxlcyByZXF1aXJlZCBmb3IgZGV0
ZWN0aW9uIG1vZGUgYmFja3VwIGJlbmNobWFya3MuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5jaF9w
cmVwYXJlKHRhcmdldDogU3RyaW5nKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGxp
bnV4X3JlcG9fdGFyZ2V0ID0gZm9ybWF0ISgie3RhcmdldH0vbGludXgiKTsKKyAgICBsZXQgY29j
b19kYXRhc2V0X3RhcmdldCA9IGZvcm1hdCEoInt0YXJnZXR9L2NvY28iKTsKKyAgICBnaXRfY2xv
bmUoTElOVVhfR0lUX1JFUE9TSVRPUlksIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigpKT87Cisg
ICAgZ2l0X2NoZWNrb3V0KExJTlVYX0dJVF9UQUcsIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigp
KT87CisgICAgd2dldF9kb3dubG9hZChDT0NPX0RBVEFTRVRfU1JDX1VSTCwgY29jb19kYXRhc2V0
X3RhcmdldC5hc19zdHIoKSk/OworCisgICAgT2soKCkpCit9CisKK2ZuIGdpdF9jbG9uZShyZXBv
OiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBwcmludGxu
ISgiQ2FsbGluZyBnaXQgY2xvbmUgZm9yICd7cmVwb30nLiIpOworICAgIGxldCB0YXJnZXRfZ2l0
ID0gZm9ybWF0ISgie3RhcmdldH0vLmdpdCIpOworICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KCZ0
YXJnZXRfZ2l0KTsKKyAgICBpZiBsZXQgT2sodHJ1ZSkgPSBwYXRoLnRyeV9leGlzdHMoKSB7Cisg
ICAgICAgIHByaW50bG4hKCJUYXJnZXQgJ3t0YXJnZXR9JyBhbHJlYWR5IGNvbnRhaW5zIGEgZ2l0
IHJlcG9zaXRvcnksIHNraXAuIik7CisgICAgICAgIHJldHVybiBPaygoKSk7CisgICAgfQorCisg
ICAgbGV0IG11dCBnaXQgPSBDb21tYW5kOjpuZXcoImdpdCIpOworICAgIGdpdC5hcmdzKFsiY2xv
bmUiLCByZXBvLCB0YXJnZXRdKTsKKworICAgIGxldCBtdXQgY2hpbGQgPSBnaXQuc3Bhd24oKT87
CisgICAgbGV0IGV4aXRfY29kZSA9IGNoaWxkLndhaXQoKT87CisgICAgaWYgZXhpdF9jb2RlLnN1
Y2Nlc3MoKSB7CisgICAgICAgIHByaW50bG4hKCJnaXQgY2xvbmUgZmluaXNoZWQgd2l0aCBzdWNj
ZXNzLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGJhaWwhKCJnaXQgY2xvbmUgZmFpbGVkIGZv
ciAne3RhcmdldH0nLiIpOworICAgIH0KKworICAgIE9rKCgpKQorfQorCitmbiBnaXRfY2hlY2tv
dXQoY2hlY2tvdXRfdGFyZ2V0OiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJy
b3I+IHsKKyAgICBwcmludGxuISgiQ2FsbGluZyBnaXQgY2hlY2tvdXQgJ3tjaGVja291dF90YXJn
ZXR9Jy4iKTsKKyAgICBsZXQgbXV0IGdpdCA9IENvbW1hbmQ6Om5ldygiZ2l0Iik7CisgICAgZ2l0
LmFyZ3MoWyItQyIsIHRhcmdldCwgImNoZWNrb3V0IiwgY2hlY2tvdXRfdGFyZ2V0XSk7CisKKyAg
ICBsZXQgbXV0IGNoaWxkID0gZ2l0LnNwYXduKCk/OworICAgIGxldCBleGl0X2NvZGUgPSBjaGls
ZC53YWl0KCk/OworICAgIGlmIGV4aXRfY29kZS5zdWNjZXNzKCkgeworICAgICAgICBwcmludGxu
ISgiZ2l0IGNoZWNrb3V0IGZpbmlzaGVkIHdpdGggc3VjY2Vzcy4iKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBiYWlsISgiZ2l0IGNoZWNrb3V0ICd7Y2hlY2tvdXRfdGFyZ2V0fScgZmFpbGVkIGZv
ciAne3RhcmdldH0nLiIpOworICAgIH0KKyAgICBPaygoKSkKK30KKworZm4gd2dldF9kb3dubG9h
ZChzb3VyY2VfdXJsOiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsK
KyAgICBsZXQgcGF0aCA9IFBhdGg6Om5ldygmdGFyZ2V0KTsKKyAgICBpZiBsZXQgT2sodHJ1ZSkg
PSBwYXRoLnRyeV9leGlzdHMoKSB7CisgICAgICAgIHByaW50bG4hKCJUYXJnZXQgJ3t0YXJnZXR9
JyBhbHJlYWR5IGV4aXN0cywgc2tpcC4iKTsKKyAgICAgICAgcmV0dXJuIE9rKCgpKTsKKyAgICB9
CisgICAgbGV0IHppcCA9IGZvcm1hdCEoInt9L3VubGFiZWxlZDIwMTcuemlwIiwgdGFyZ2V0KTsK
KyAgICBsZXQgcGF0aCA9IFBhdGg6Om5ldygmemlwKTsKKyAgICBpZiAhcGF0aC50cnlfZXhpc3Rz
KCk/IHsKKyAgICAgICAgcHJpbnRsbiEoIkRvd25sb2FkIGFyY2hpdmUgdXNpbmcgd2dldCBmcm9t
ICd7c291cmNlX3VybH0nIHRvICd7dGFyZ2V0fScuIik7CisgICAgICAgIGxldCBtdXQgd2dldCA9
IENvbW1hbmQ6Om5ldygid2dldCIpOworICAgICAgICB3Z2V0LmFyZ3MoWyItUCIsIHRhcmdldCwg
c291cmNlX3VybF0pOworCisgICAgICAgIGxldCBtdXQgY2hpbGQgPSB3Z2V0LnNwYXduKCk/Owor
ICAgICAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICAgICAgaWYgZXhpdF9j
b2RlLnN1Y2Nlc3MoKSB7CisgICAgICAgICAgICBwcmludGxuISgiRG93bmxvYWQgZmluaXNoZWQg
d2l0aCBzdWNjZXNzLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFpbCEoIkZh
aWxlZCB0byBkb3dubG9hZCAne3NvdXJjZV91cmx9JyB0byAne3RhcmdldH0nLiIpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBPaygoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnRs
biEoIlRhcmdldCAne3RhcmdldH0nIGFscmVhZHkgY29udGFpbnMgZG93bmxvYWQsIHNraXAgZG93
bmxvYWQuIik7CisgICAgfQorCisgICAgbGV0IG11dCB1bnppcCA9IENvbW1hbmQ6Om5ldygidW56
aXAiKTsKKyAgICB1bnppcC5hcmdzKFsmemlwLCAiLWQiLCB0YXJnZXRdKTsKKworICAgIGxldCBt
dXQgY2hpbGQgPSB1bnppcC5zcGF3bigpPzsKKyAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2Fp
dCgpPzsKKyAgICBpZiBleGl0X2NvZGUuc3VjY2VzcygpIHsKKyAgICAgICAgcHJpbnRsbiEoIkV4
dHJhY3RpbmcgemlwIGFyY2hpdmUgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGJhaWwhKCJGYWlsZWQgdG8gZXh0cmFjdCB6aXAgYXJjaGl2ZSAne3ppcH0n
IHRvICd7dGFyZ2V0fScuIik7CisgICAgfQorICAgIE9rKCgpKQorfQpkaWZmIC0tZ2l0IGEvcHJv
eG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvbWFpbi5ycyBiL3Byb3htb3gtYmFja3VwLXRlc3Qt
c3VpdGUvc3JjL21haW4ucnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4w
YTViNDM2YTgKLS0tIC9kZXYvbnVsbAorKysgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3Ny
Yy9tYWluLnJzCkBAIC0wLDAgKzEsMTcgQEAKK3VzZSBwcm94bW94X3JvdXRlcjo6Y2xpOjoqOwor
Cittb2QgZGV0ZWN0aW9uX21vZGVfYmVuY2g7CisKK2ZuIG1haW4oKSB7CisgICAgbGV0IGNtZF9k
ZWYgPSBDbGlDb21tYW5kTWFwOjpuZXcoKS5pbnNlcnQoCisgICAgICAgICJkZXRlY3Rpb24tbW9k
ZS1iZW5jaCIsCisgICAgICAgIGRldGVjdGlvbl9tb2RlX2JlbmNoOjpkZXRlY3Rpb25fbW9kZV9i
ZW5jaF9tZ3RtX2NsaSgpLAorICAgICk7CisKKyAgICBsZXQgcnBjZW52ID0gQ2xpRW52aXJvbm1l
bnQ6Om5ldygpOworICAgIHJ1bl9jbGlfY29tbWFuZCgKKyAgICAgICAgY21kX2RlZiwKKyAgICAg
ICAgcnBjZW52LAorICAgICAgICBTb21lKHxmdXR1cmV8IHByb3htb3hfYXN5bmM6OnJ1bnRpbWU6
Om1haW4oZnV0dXJlKSksCisgICAgKTsKK30KLS0gCjIuMzkuMgoKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBi
cy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK