From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 8B70F1FF398 for ; Mon, 27 May 2024 16:34:43 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2B90B5E4E; Mon, 27 May 2024 16:34:55 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Mon, 27 May 2024 16:33:13 +0200 Message-Id: <20240527143323.456002-60-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240527143323.456002-1-c.ebner@proxmox.com> References: <20240527143323.456002-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.020 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 T_SCC_BODY_TEXT_LINE -0.01 - URIBL_SBL_A 0.1 Contains URL's A record listed in the Spamhaus SBL blocklist [185.199.110.153, 185.199.108.153, 185.199.109.153, 185.199.111.153] Subject: [pbs-devel] [PATCH v7 proxmox-backup 59/69] 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" SW50cm9kdWNlcyB0aGUgcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZSBjcmVhdGUgaW50ZW5kZWQg Zm9yCmJlbmNobWFya2luZyBhbmQgaGlnaCBsZXZlbCB1c2VyIGZhY2luZyB0ZXN0aW5nLgoKVGhl IGluaXRpYWwgY29kZSBpbmNsdWRlcyBhIGJlbmNobWFyayBpbnRlbmRlZCBmb3IgcmVncmVzc2lv biB0ZXN0aW5nIG9mCnRoZSBwcm94bW94LWJhY2t1cC1jbGllbnQgd2hlbiB1c2luZyBkaWZmZXJl bnQgZmlsZSBkZXRlY3Rpb24gbW9kZXMKZHVyaW5nIGJhY2t1cC4KClNpZ25lZC1vZmYtYnk6IENo cmlzdGlhbiBFYm5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KLS0tCmNoYW5nZXMgc2luY2UgdmVy c2lvbiA2OgotIG5vIGNoYW5nZXMKCiBDYXJnby50b21sICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9DYXJnby50b21s ICAgICAgICAgIHwgIDE4ICsrCiAuLi4vc3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzICAgICAg ICAgICAgICAgfCAyOTQgKysrKysrKysrKysrKysrKysrCiBwcm94bW94LWJhY2t1cC10ZXN0LXN1 aXRlL3NyYy9tYWluLnJzICAgICAgICAgfCAgMTcgKwogNCBmaWxlcyBjaGFuZ2VkLCAzMzAgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUv Q2FyZ28udG9tbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUv c3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzCiBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1i YWNrdXAtdGVzdC1zdWl0ZS9zcmMvbWFpbi5ycwoKZGlmZiAtLWdpdCBhL0NhcmdvLnRvbWwgYi9D YXJnby50b21sCmluZGV4IDQxMTliM2NhYy4uZTgzYzY1YjYwIDEwMDY0NAotLS0gYS9DYXJnby50 b21sCisrKyBiL0NhcmdvLnRvbWwKQEAgLTQ1LDYgKzQ1LDcgQEAgbWVtYmVycyA9IFsKICAgICAi cHJveG1veC1yZXN0b3JlLWRhZW1vbiIsCiAKICAgICAicHhhci1iaW4iLAorICAgICJwcm94bW94 LWJhY2t1cC10ZXN0LXN1aXRlIiwKIF0KIAogW2xpYl0KZGlmZiAtLWdpdCBhL3Byb3htb3gtYmFj a3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbCBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2Fy Z28udG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjNmODk5ZTliYwot LS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbApA QCAtMCwwICsxLDE4IEBACitbcGFja2FnZV0KK25hbWUgPSAicHJveG1veC1iYWNrdXAtdGVzdC1z dWl0ZSIKK3ZlcnNpb24gPSAiMC4xLjAiCithdXRob3JzLndvcmtzcGFjZSA9IHRydWUKK2VkaXRp b24ud29ya3NwYWNlID0gdHJ1ZQorCitbZGVwZW5kZW5jaWVzXQorYW55aG93LndvcmtzcGFjZSA9 IHRydWUKK2Z1dHVyZXMud29ya3NwYWNlID0gdHJ1ZQorc2VyZGUud29ya3NwYWNlID0gdHJ1ZQor c2VyZGVfanNvbi53b3Jrc3BhY2UgPSB0cnVlCisKK3Bicy1jbGllbnQud29ya3NwYWNlID0gdHJ1 ZQorcGJzLWtleS1jb25maWcud29ya3NwYWNlID0gdHJ1ZQorcGJzLXRvb2xzLndvcmtzcGFjZSA9 IHRydWUKK3Byb3htb3gtYXN5bmMud29ya3NwYWNlID0gdHJ1ZQorcHJveG1veC1yb3V0ZXIgPSB7 IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJjbGkiXSB9Citwcm94bW94LXNjaGVtYSA9 IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJhcGktbWFjcm8iIF0gfQpkaWZmIC0t Z2l0IGEvcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvZGV0ZWN0aW9uX21vZGVfYmVuY2gu cnMgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9kZXRlY3Rpb25fbW9kZV9iZW5jaC5y cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjlhM2M3NjgwMgotLS0gL2Rl di9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvc3JjL2RldGVjdGlvbl9tb2Rl X2JlbmNoLnJzCkBAIC0wLDAgKzEsMjk0IEBACit1c2Ugc3RkOjpwYXRoOjpQYXRoOwordXNlIHN0 ZDo6cHJvY2Vzczo6Q29tbWFuZDsKK3VzZSBzdGQ6Ont0aHJlYWQsIHRpbWV9OworCit1c2UgYW55 aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9OwordXNlIHNlcmRlX2pzb246OlZhbHVlOwor Cit1c2UgcGJzX2NsaWVudDo6eworICAgIHRvb2xzOjp7Y29tcGxldGVfcmVwb3NpdG9yeSwga2V5 X3NvdXJjZTo6S0VZRklMRV9TQ0hFTUEsIFJFUE9fVVJMX1NDSEVNQX0sCisgICAgQkFDS1VQX1NP VVJDRV9TQ0hFTUEsCit9OwordXNlIHBic190b29sczo6anNvbjsKK3VzZSBwcm94bW94X3JvdXRl cjo6Y2xpOjoqOwordXNlIHByb3htb3hfc2NoZW1hOjphcGk7CisKK2NvbnN0IERFRkFVTFRfTlVN QkVSX09GX1JVTlM6IHU2NCA9IDU7CisvLyBIb21lcGFnZSBodHRwczovL2NvY29kYXRhc2V0Lm9y Zy8KK2NvbnN0IENPQ09fREFUQVNFVF9TUkNfVVJMOiAmJ3N0YXRpYyBzdHIgPSAiaHR0cDovL2lt YWdlcy5jb2NvZGF0YXNldC5vcmcvemlwcy91bmxhYmVsZWQyMDE3LnppcCI7CisvLyBIb21lcGFn ZSBodHRwczovL2tlcm5lbC5vcmcvCitjb25zdCBMSU5VWF9HSVRfUkVQT1NJVE9SWTogJidzdGF0 aWMgc3RyID0KKyAgICAiZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwv Z2l0L3N0YWJsZS9saW51eC5naXQiOworY29uc3QgTElOVVhfR0lUX1RBRzogJidzdGF0aWMgc3Ry ID0gInY2LjUuNSI7CisKK3B1YihjcmF0ZSkgZm4gZGV0ZWN0aW9uX21vZGVfYmVuY2hfbWd0bV9j bGkoKSAtPiBDbGlDb21tYW5kTWFwIHsKKyAgICBsZXQgcnVuX2NtZF9kZWYgPSBDbGlDb21tYW5k OjpuZXcoJkFQSV9NRVRIT0RfREVURUNUSU9OX01PREVfQkVOQ0hfUlVOKQorICAgICAgICAuYXJn X3BhcmFtKCZbImJhY2t1cHNwZWMiXSkKKyAgICAgICAgLmNvbXBsZXRpb25fY2IoInJlcG9zaXRv cnkiLCBjb21wbGV0ZV9yZXBvc2l0b3J5KQorICAgICAgICAuY29tcGxldGlvbl9jYigia2V5Zmls ZSIsIGNvbXBsZXRlX2ZpbGVfbmFtZSk7CisKKyAgICBsZXQgcHJlcGFyZV9jbWRfZGVmID0gQ2xp Q29tbWFuZDo6bmV3KCZBUElfTUVUSE9EX0RFVEVDVElPTl9NT0RFX0JFTkNIX1BSRVBBUkUpOwor ICAgIENsaUNvbW1hbmRNYXA6Om5ldygpCisgICAgICAgIC5pbnNlcnQoInByZXBhcmUiLCBwcmVw YXJlX2NtZF9kZWYpCisgICAgICAgIC5pbnNlcnQoInJ1biIsIHJ1bl9jbWRfZGVmKQorfQorCisj W2FwaSgKKyAgIGlucHV0OiB7CisgICAgICAgcHJvcGVydGllczogeworICAgICAgICAgICBiYWNr dXBzcGVjOiB7CisgICAgICAgICAgICAgICB0eXBlOiBBcnJheSwKKyAgICAgICAgICAgICAgIGRl c2NyaXB0aW9uOiAiTGlzdCBvZiBiYWNrdXAgc291cmNlIHNwZWNpZmljYXRpb25zIChbPGxhYmVs LmV4dD46PHBhdGg+XSAuLi4pIiwKKyAgICAgICAgICAgICAgIGl0ZW1zOiB7CisgICAgICAgICAg ICAgICAgICAgc2NoZW1hOiBCQUNLVVBfU09VUkNFX1NDSEVNQSwKKyAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgfSwKKyAgICAgICAgICAgcmVwb3NpdG9yeTogeworICAgICAgICAgICAgICAg c2NoZW1hOiBSRVBPX1VSTF9TQ0hFTUEsCisgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwK KyAgICAgICAgICAgfSwKKyAgICAgICAgICAga2V5ZmlsZTogeworICAgICAgICAgICAgICAgc2No ZW1hOiBLRVlGSUxFX1NDSEVNQSwKKyAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAorICAg ICAgICAgICB9LAorICAgICAgICAgICAibnVtYmVyLW9mLXJ1bnMiOiB7CisgICAgICAgICAgICAg ICBkZXNjcmlwdGlvbjogIk51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHJ1biIsCisgICAg ICAgICAgICAgICB0eXBlOiBJbnRlZ2VyLAorICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUs CisgICAgICAgICAgIH0sCisgICAgICAgfQorICAgfQorKV0KKy8vLyBSdW4gYmVuY2htYXJrIHRv IGNvbXBhcmUgcGVyZm9ybWFuY2UgZm9yIGJhY2t1cHMgdXNpbmcgZGlmZmVyZW50IGNoYW5nZSBk ZXRlY3Rpb24gbW9kZXMuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5jaF9ydW4ocGFyYW06IFZhbHVl KSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IG11dCBwYmMgPSBDb21tYW5kOjpuZXco InByb3htb3gtYmFja3VwLWNsaWVudCIpOworICAgIHBiYy5hcmcoImJhY2t1cCIpOworCisgICAg bGV0IGJhY2t1cHNwZWNfbGlzdCA9IGpzb246OnJlcXVpcmVkX2FycmF5X3BhcmFtKCZwYXJhbSwg ImJhY2t1cHNwZWMiKT87CisgICAgZm9yIGJhY2t1cHNwZWMgaW4gYmFja3Vwc3BlY19saXN0IHsK KyAgICAgICAgbGV0IGFyZyA9IGJhY2t1cHNwZWMKKyAgICAgICAgICAgIC5hc19zdHIoKQorICAg ICAgICAgICAgLm9rX29yX2Vsc2UofHwgZm9ybWF0X2VyciEoImZhaWxlZCB0byBwYXJzZSBiYWNr dXBzcGVjIikpPzsKKyAgICAgICAgcGJjLmFyZyhhcmcpOworICAgIH0KKworICAgIGlmIGxldCBT b21lKHJlcG8pID0gcGFyYW1bInJlcG9zaXRvcnkiXS5hc19zdHIoKSB7CisgICAgICAgIHBiYy5h cmcoIi0tcmVwb3NpdG9yeSIpOworICAgICAgICBwYmMuYXJnOjo8JnN0cj4ocmVwbyk7CisgICAg fQorCisgICAgaWYgbGV0IFNvbWUoa2V5ZmlsZSkgPSBwYXJhbVsia2V5ZmlsZSJdLmFzX3N0cigp IHsKKyAgICAgICAgcGJjLmFyZygiLS1rZXlmaWxlIik7CisgICAgICAgIHBiYy5hcmc6Ojwmc3Ry PihrZXlmaWxlKTsKKyAgICB9CisKKyAgICBsZXQgbnVtYmVyX29mX3J1bnMgPSBtYXRjaCBwYXJh bVsibnVtYmVyX29mX3J1bnMiXS5hc191NjQoKSB7CisgICAgICAgIFNvbWUobikgPT4gbiwKKyAg ICAgICAgTm9uZSA9PiBERUZBVUxUX05VTUJFUl9PRl9SVU5TLAorICAgIH07CisgICAgaWYgbnVt YmVyX29mX3J1bnMgPCAxIHsKKyAgICAgICAgYmFpbCEoIk51bWJlciBvZiBydW5zIG11c3QgYmUg Z3JlYXRlciB0aGFuIDEsIGFib3J0aW5nLiIpOworICAgIH0KKworICAgIC8vIEZpcnN0IHJ1biBp cyBhbiBpbml0aWFsIHJ1biB0byBtYWtlIHN1cmUgYWxsIGNodW5rcyBhcmUgcHJlc2VudCBhbHJl YWR5LCByZWR1Y2Ugc2lkZSBlZmZlY3RzCisgICAgLy8gYnkgZmlsZXN5c3RlbSBjYWNoZXMgZWNj LgorICAgIGxldCBfc3RhdHNfaW5pdGlhbCA9IGRvX3J1bigmbXV0IHBiYywgMSk/OworCisgICAg cHJpbnRsbiEoIlxuU3RhcnRpbmcgYmVuY2htYXJraW5nIGJhY2t1cHMgd2l0aCByZWd1bGFyIGRl dGVjdGlvbiBtb2RlLi4uXG4iKTsKKyAgICBsZXQgc3RhdHNfcmVnID0gZG9fcnVuKCZtdXQgcGJj LCBudW1iZXJfb2ZfcnVucyk/OworCisgICAgLy8gTWFrZSBzdXJlIHRvIGhhdmUgYSB2YWxpZCBy ZWZlcmVuY2Ugd2l0aCBjYXRhbG9nIGZyb21hdCB2ZXJzaW9uIDIKKyAgICBwYmMuYXJnKCItLWNo YW5nZS1kZXRlY3Rpb24tbW9kZT1tZXRhZGF0YSIpOworICAgIGxldCBfc3RhdHNfaW5pdGlhbCA9 IGRvX3J1bigmbXV0IHBiYywgMSk/OworCisgICAgcHJpbnRsbiEoIlxuU3RhcnRpbmcgYmVuY2ht YXJraW5nIGJhY2t1cHMgd2l0aCBtZXRhZGF0YSBkZXRlY3Rpb24gbW9kZS4uLlxuIik7CisgICAg bGV0IHN0YXRzX21ldGEgPSBkb19ydW4oJm11dCBwYmMsIG51bWJlcl9vZl9ydW5zKT87CisKKyAg ICBwcmludGxuISgiXG5Db21wbGV0ZWQgYmVuY2htYXJrIHdpdGgge251bWJlcl9vZl9ydW5zfSBy dW5zIGZvciBlYWNoIHRlc3RlZCBtb2RlLiIpOworICAgIHByaW50bG4hKCJcbkNvbXBsZXRlZCBy ZWd1bGFyIGJhY2t1cCB3aXRoOiIpOworICAgIHByaW50bG4hKCJUb3RhbCBydW50aW1lOiB7Oi4y fSBzIiwgc3RhdHNfcmVnLnRvdGFsKTsKKyAgICBwcmludGxuISgiQXZlcmFnZTogezouMn0gwrEg ezouMn0gcyIsIHN0YXRzX3JlZy5hdmcsIHN0YXRzX3JlZy5zdGRkZXYpOworICAgIHByaW50bG4h KCJNaW46IHs6LjJ9IHMiLCBzdGF0c19yZWcubWluKTsKKyAgICBwcmludGxuISgiTWF4OiB7Oi4y fSBzIiwgc3RhdHNfcmVnLm1heCk7CisKKyAgICBwcmludGxuISgiXG5Db21wbGV0ZWQgbWV0YWRh dGEgZGV0ZWN0aW9uIG1vZGUgYmFja3VwIHdpdGg6Iik7CisgICAgcHJpbnRsbiEoIlRvdGFsIHJ1 bnRpbWU6IHs6LjJ9IHMiLCBzdGF0c19tZXRhLnRvdGFsKTsKKyAgICBwcmludGxuISgKKyAgICAg ICAgIkF2ZXJhZ2U6IHs6LjJ9IMKxIHs6LjJ9IHMiLAorICAgICAgICBzdGF0c19tZXRhLmF2Zywg c3RhdHNfbWV0YS5zdGRkZXYKKyAgICApOworICAgIHByaW50bG4hKCJNaW46IHs6LjJ9IHMiLCBz dGF0c19tZXRhLm1pbik7CisgICAgcHJpbnRsbiEoIk1heDogezouMn0gcyIsIHN0YXRzX21ldGEu bWF4KTsKKworICAgIGxldCBkaWZmX3N0ZGRldiA9CisgICAgICAgICgoc3RhdHNfbWV0YS5zdGRk ZXYgKiBzdGF0c19tZXRhLnN0ZGRldikgKyAoc3RhdHNfcmVnLnN0ZGRldiAqIHN0YXRzX3JlZy5z dGRkZXYpKS5zcXJ0KCk7CisgICAgcHJpbnRsbiEoIlxuRGlmZmVyZW5jZXMgKG1ldGFkYXRhIGJh c2VkIC0gcmVndWxhcik6Iik7CisgICAgcHJpbnRsbiEoCisgICAgICAgICJEZWx0YSB0b3RhbCBy dW50aW1lOiB7Oi4yfSBzICh7Oi4yfSAlKSIsCisgICAgICAgIHN0YXRzX21ldGEudG90YWwgLSBz dGF0c19yZWcudG90YWwsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEudG90YWwgLyBzdGF0 c19yZWcudG90YWwgLSAxLjApLAorICAgICk7CisgICAgcHJpbnRsbiEoCisgICAgICAgICJEZWx0 YSBhdmVyYWdlOiB7Oi4yfSDCsSB7Oi4yfSBzICh7Oi4yfSAlKSIsCisgICAgICAgIHN0YXRzX21l dGEuYXZnIC0gc3RhdHNfcmVnLmF2ZywKKyAgICAgICAgZGlmZl9zdGRkZXYsCisgICAgICAgIDEw MC4wICogKHN0YXRzX21ldGEuYXZnIC8gc3RhdHNfcmVnLmF2ZyAtIDEuMCksCisgICAgKTsKKyAg ICBwcmludGxuISgKKyAgICAgICAgIkRlbHRhIG1pbjogezouMn0gcyAoezouMn0gJSkiLAorICAg ICAgICBzdGF0c19tZXRhLm1pbiAtIHN0YXRzX3JlZy5taW4sCisgICAgICAgIDEwMC4wICogKHN0 YXRzX21ldGEubWluIC8gc3RhdHNfcmVnLm1pbiAtIDEuMCksCisgICAgKTsKKyAgICBwcmludGxu ISgKKyAgICAgICAgIkRlbHRhIG1heDogezouMn0gcyAoezouMn0gJSkiLAorICAgICAgICBzdGF0 c19tZXRhLm1heCAtIHN0YXRzX3JlZy5tYXgsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEu bWF4IC8gc3RhdHNfcmVnLm1heCAtIDEuMCksCisgICAgKTsKKworICAgIE9rKCgpKQorfQorCitm biBkb19ydW4oY21kOiAmbXV0IENvbW1hbmQsIG5fcnVuczogdTY0KSAtPiBSZXN1bHQ8U3RhdGlz dGljcywgRXJyb3I+IHsKKyAgICAvLyBBdm9pZCBjb25zZWN1dGl2ZSBzbmFwc2hvdCB0aW1lc3Rh bXBzIGNvbGxpc2lvbgorICAgIHRocmVhZDo6c2xlZXAodGltZTo6RHVyYXRpb246OmZyb21fbWls bGlzKDEwMDApKTsKKyAgICBsZXQgbXV0IHRpbWluZ3MgPSBWZWM6OndpdGhfY2FwYWNpdHkobl9y dW5zIGFzIHVzaXplKTsKKyAgICBmb3IgaXRlcmF0aW9uIGluIDEuLm5fcnVucyArIDEgeworICAg ICAgICBsZXQgc3RhcnQgPSBzdGQ6OnRpbWU6OlN5c3RlbVRpbWU6Om5vdygpOworICAgICAgICBs ZXQgbXV0IGNoaWxkID0gY21kLnNwYXduKCk/OworICAgICAgICBsZXQgZXhpdF9jb2RlID0gY2hp bGQud2FpdCgpPzsKKyAgICAgICAgbGV0IGVsYXBzZWQgPSBzdGFydC5lbGFwc2VkKCk/OworICAg ICAgICB0aW1pbmdzLnB1c2goZWxhcHNlZCk7CisgICAgICAgIGlmICFleGl0X2NvZGUuc3VjY2Vz cygpIHsKKyAgICAgICAgICAgIGJhaWwhKCJSdW4gbnVtYmVyIHtpdGVyYXRpb259IG9mIHtuX3J1 bnN9IGZhaWxlZCwgYWJvcnRpbmcuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBPayhzdGF0 aXN0aWNzKHRpbWluZ3MpKQorfQorCitzdHJ1Y3QgU3RhdGlzdGljcyB7CisgICAgdG90YWw6IGY2 NCwKKyAgICBhdmc6IGY2NCwKKyAgICBzdGRkZXY6IGY2NCwKKyAgICBtaW46IGY2NCwKKyAgICBt YXg6IGY2NCwKK30KKworZm4gc3RhdGlzdGljcyh0aW1pbmdzOiBWZWM8c3RkOjp0aW1lOjpEdXJh dGlvbj4pIC0+IFN0YXRpc3RpY3MgeworICAgIGxldCB0b3RhbCA9IHRpbWluZ3MKKyAgICAgICAg Lml0ZXIoKQorICAgICAgICAuZm9sZCgwZjY0LCB8c3VtLCB0aW1lfCBzdW0gKyB0aW1lLmFzX3Nl Y3NfZjY0KCkpOworICAgIGxldCBhdmcgPSB0b3RhbCAvIHRpbWluZ3MubGVuKCkgYXMgZjY0Owor ICAgIGxldCB2YXIgPSAxZjY0IC8gKHRpbWluZ3MubGVuKCkgLSAxKSBhcyBmNjQKKyAgICAgICAg KiB0aW1pbmdzLml0ZXIoKS5mb2xkKDBmNjQsIHxzcV9zdW0sIHRpbWV8IHsKKyAgICAgICAgICAg IGxldCBkaWZmID0gdGltZS5hc19zZWNzX2Y2NCgpIC0gYXZnOworICAgICAgICAgICAgc3Ffc3Vt ICsgZGlmZiAqIGRpZmYKKyAgICAgICAgfSk7CisgICAgbGV0IHN0ZGRldiA9IHZhci5zcXJ0KCk7 CisgICAgbGV0IG1pbiA9IHRpbWluZ3MuaXRlcigpLm1pbigpLnVud3JhcCgpLmFzX3NlY3NfZjY0 KCk7CisgICAgbGV0IG1heCA9IHRpbWluZ3MuaXRlcigpLm1heCgpLnVud3JhcCgpLmFzX3NlY3Nf ZjY0KCk7CisKKyAgICBTdGF0aXN0aWNzIHsKKyAgICAgICAgdG90YWwsCisgICAgICAgIGF2ZywK KyAgICAgICAgc3RkZGV2LAorICAgICAgICBtaW4sCisgICAgICAgIG1heCwKKyAgICB9Cit9CisK KyNbYXBpKAorICAgIGlucHV0OiB7CisgICAgICAgIHByb3BlcnRpZXM6IHsKKyAgICAgICAgICAg IHRhcmdldDogeworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAidGFyZ2V0IHBhdGggdG8g cHJlcGFyZSB0ZXN0IGRhdGEuIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgfSwK KyldCisvLy8gUHJlcGFyZSBmaWxlcyByZXF1aXJlZCBmb3IgZGV0ZWN0aW9uIG1vZGUgYmFja3Vw IGJlbmNobWFya3MuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5jaF9wcmVwYXJlKHRhcmdldDogU3Ry aW5nKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGxpbnV4X3JlcG9fdGFyZ2V0ID0g Zm9ybWF0ISgie3RhcmdldH0vbGludXgiKTsKKyAgICBsZXQgY29jb19kYXRhc2V0X3RhcmdldCA9 IGZvcm1hdCEoInt0YXJnZXR9L2NvY28iKTsKKyAgICBnaXRfY2xvbmUoTElOVVhfR0lUX1JFUE9T SVRPUlksIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigpKT87CisgICAgZ2l0X2NoZWNrb3V0KExJ TlVYX0dJVF9UQUcsIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigpKT87CisgICAgd2dldF9kb3du bG9hZChDT0NPX0RBVEFTRVRfU1JDX1VSTCwgY29jb19kYXRhc2V0X3RhcmdldC5hc19zdHIoKSk/ OworCisgICAgT2soKCkpCit9CisKK2ZuIGdpdF9jbG9uZShyZXBvOiAmc3RyLCB0YXJnZXQ6ICZz dHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBwcmludGxuISgiQ2FsbGluZyBnaXQgY2xv bmUgZm9yICd7cmVwb30nLiIpOworICAgIGxldCB0YXJnZXRfZ2l0ID0gZm9ybWF0ISgie3Rhcmdl dH0vLmdpdCIpOworICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KCZ0YXJnZXRfZ2l0KTsKKyAgICBp ZiBsZXQgT2sodHJ1ZSkgPSBwYXRoLnRyeV9leGlzdHMoKSB7CisgICAgICAgIHByaW50bG4hKCJU YXJnZXQgJ3t0YXJnZXR9JyBhbHJlYWR5IGNvbnRhaW5zIGEgZ2l0IHJlcG9zaXRvcnksIHNraXAu Iik7CisgICAgICAgIHJldHVybiBPaygoKSk7CisgICAgfQorCisgICAgbGV0IG11dCBnaXQgPSBD b21tYW5kOjpuZXcoImdpdCIpOworICAgIGdpdC5hcmdzKFsiY2xvbmUiLCByZXBvLCB0YXJnZXRd KTsKKworICAgIGxldCBtdXQgY2hpbGQgPSBnaXQuc3Bhd24oKT87CisgICAgbGV0IGV4aXRfY29k ZSA9IGNoaWxkLndhaXQoKT87CisgICAgaWYgZXhpdF9jb2RlLnN1Y2Nlc3MoKSB7CisgICAgICAg IHByaW50bG4hKCJnaXQgY2xvbmUgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgIH0gZWxz ZSB7CisgICAgICAgIGJhaWwhKCJnaXQgY2xvbmUgZmFpbGVkIGZvciAne3RhcmdldH0nLiIpOwor ICAgIH0KKworICAgIE9rKCgpKQorfQorCitmbiBnaXRfY2hlY2tvdXQoY2hlY2tvdXRfdGFyZ2V0 OiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBwcmludGxu ISgiQ2FsbGluZyBnaXQgY2hlY2tvdXQgJ3tjaGVja291dF90YXJnZXR9Jy4iKTsKKyAgICBsZXQg bXV0IGdpdCA9IENvbW1hbmQ6Om5ldygiZ2l0Iik7CisgICAgZ2l0LmFyZ3MoWyItQyIsIHRhcmdl dCwgImNoZWNrb3V0IiwgY2hlY2tvdXRfdGFyZ2V0XSk7CisKKyAgICBsZXQgbXV0IGNoaWxkID0g Z2l0LnNwYXduKCk/OworICAgIGxldCBleGl0X2NvZGUgPSBjaGlsZC53YWl0KCk/OworICAgIGlm IGV4aXRfY29kZS5zdWNjZXNzKCkgeworICAgICAgICBwcmludGxuISgiZ2l0IGNoZWNrb3V0IGZp bmlzaGVkIHdpdGggc3VjY2Vzcy4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBiYWlsISgiZ2l0 IGNoZWNrb3V0ICd7Y2hlY2tvdXRfdGFyZ2V0fScgZmFpbGVkIGZvciAne3RhcmdldH0nLiIpOwor ICAgIH0KKyAgICBPaygoKSkKK30KKworZm4gd2dldF9kb3dubG9hZChzb3VyY2VfdXJsOiAmc3Ry LCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBsZXQgcGF0aCA9IFBh dGg6Om5ldygmdGFyZ2V0KTsKKyAgICBpZiBsZXQgT2sodHJ1ZSkgPSBwYXRoLnRyeV9leGlzdHMo KSB7CisgICAgICAgIHByaW50bG4hKCJUYXJnZXQgJ3t0YXJnZXR9JyBhbHJlYWR5IGV4aXN0cywg c2tpcC4iKTsKKyAgICAgICAgcmV0dXJuIE9rKCgpKTsKKyAgICB9CisgICAgbGV0IHppcCA9IGZv cm1hdCEoInt9L3VubGFiZWxlZDIwMTcuemlwIiwgdGFyZ2V0KTsKKyAgICBsZXQgcGF0aCA9IFBh dGg6Om5ldygmemlwKTsKKyAgICBpZiAhcGF0aC50cnlfZXhpc3RzKCk/IHsKKyAgICAgICAgcHJp bnRsbiEoIkRvd25sb2FkIGFyY2hpdmUgdXNpbmcgd2dldCBmcm9tICd7c291cmNlX3VybH0nIHRv ICd7dGFyZ2V0fScuIik7CisgICAgICAgIGxldCBtdXQgd2dldCA9IENvbW1hbmQ6Om5ldygid2dl dCIpOworICAgICAgICB3Z2V0LmFyZ3MoWyItUCIsIHRhcmdldCwgc291cmNlX3VybF0pOworCisg ICAgICAgIGxldCBtdXQgY2hpbGQgPSB3Z2V0LnNwYXduKCk/OworICAgICAgICBsZXQgZXhpdF9j b2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICAgICAgaWYgZXhpdF9jb2RlLnN1Y2Nlc3MoKSB7Cisg ICAgICAgICAgICBwcmludGxuISgiRG93bmxvYWQgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOwor ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFpbCEoIkZhaWxlZCB0byBkb3dubG9hZCAn e3NvdXJjZV91cmx9JyB0byAne3RhcmdldH0nLiIpOworICAgICAgICB9CisgICAgICAgIHJldHVy biBPaygoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnRsbiEoIlRhcmdldCAne3Rhcmdl dH0nIGFscmVhZHkgY29udGFpbnMgZG93bmxvYWQsIHNraXAgZG93bmxvYWQuIik7CisgICAgfQor CisgICAgbGV0IG11dCB1bnppcCA9IENvbW1hbmQ6Om5ldygidW56aXAiKTsKKyAgICB1bnppcC5h cmdzKFsmemlwLCAiLWQiLCB0YXJnZXRdKTsKKworICAgIGxldCBtdXQgY2hpbGQgPSB1bnppcC5z cGF3bigpPzsKKyAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICBpZiBleGl0 X2NvZGUuc3VjY2VzcygpIHsKKyAgICAgICAgcHJpbnRsbiEoIkV4dHJhY3RpbmcgemlwIGFyY2hp dmUgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGJhaWwh KCJGYWlsZWQgdG8gZXh0cmFjdCB6aXAgYXJjaGl2ZSAne3ppcH0nIHRvICd7dGFyZ2V0fScuIik7 CisgICAgfQorICAgIE9rKCgpKQorfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1iYWNrdXAtdGVzdC1z dWl0ZS9zcmMvbWFpbi5ycyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvc3JjL21haW4ucnMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4wYTViNDM2YTgKLS0tIC9kZXYv bnVsbAorKysgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9tYWluLnJzCkBAIC0wLDAg KzEsMTcgQEAKK3VzZSBwcm94bW94X3JvdXRlcjo6Y2xpOjoqOworCittb2QgZGV0ZWN0aW9uX21v ZGVfYmVuY2g7CisKK2ZuIG1haW4oKSB7CisgICAgbGV0IGNtZF9kZWYgPSBDbGlDb21tYW5kTWFw OjpuZXcoKS5pbnNlcnQoCisgICAgICAgICJkZXRlY3Rpb24tbW9kZS1iZW5jaCIsCisgICAgICAg IGRldGVjdGlvbl9tb2RlX2JlbmNoOjpkZXRlY3Rpb25fbW9kZV9iZW5jaF9tZ3RtX2NsaSgpLAor ICAgICk7CisKKyAgICBsZXQgcnBjZW52ID0gQ2xpRW52aXJvbm1lbnQ6Om5ldygpOworICAgIHJ1 bl9jbGlfY29tbWFuZCgKKyAgICAgICAgY21kX2RlZiwKKyAgICAgICAgcnBjZW52LAorICAgICAg ICBTb21lKHxmdXR1cmV8IHByb3htb3hfYXN5bmM6OnJ1bnRpbWU6Om1haW4oZnV0dXJlKSksCisg ICAgKTsKK30KLS0gCjIuMzkuMgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94 bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m by9wYnMtZGV2ZWwK