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 55BB01FF399 for ; Tue, 28 May 2024 11:43:45 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1B1D8126CE; Tue, 28 May 2024 11:44:06 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Tue, 28 May 2024 11:42:53 +0200 Message-Id: <20240528094303.309806-60-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240528094303.309806-1-c.ebner@proxmox.com> References: <20240528094303.309806-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 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.109.153, 185.199.110.153, 185.199.111.153, 185.199.108.153] Subject: [pbs-devel] [PATCH v8 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 c2lvbiA3OgotIG5vIGNoYW5nZXMKCmNoYW5nZXMgc2luY2UgdmVyc2lvbiA2OgotIG5vIGNoYW5n ZXMKCiBDYXJnby50b21sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9DYXJnby50b21sICAgICAgICAgIHwgIDE4ICsr CiAuLi4vc3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzICAgICAgICAgICAgICAgfCAyOTQgKysr KysrKysrKysrKysrKysrCiBwcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9tYWluLnJzICAg ICAgICAgfCAgMTcgKwogNCBmaWxlcyBjaGFuZ2VkLCAzMzAgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHByb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbAogY3JlYXRl IG1vZGUgMTAwNjQ0IHByb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvc3JjL2RldGVjdGlvbl9tb2Rl X2JlbmNoLnJzCiBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9z cmMvbWFpbi5ycwoKZGlmZiAtLWdpdCBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCmluZGV4IDQx MTliM2NhYy4uZTgzYzY1YjYwIDEwMDY0NAotLS0gYS9DYXJnby50b21sCisrKyBiL0NhcmdvLnRv bWwKQEAgLTQ1LDYgKzQ1LDcgQEAgbWVtYmVycyA9IFsKICAgICAicHJveG1veC1yZXN0b3JlLWRh ZW1vbiIsCiAKICAgICAicHhhci1iaW4iLAorICAgICJwcm94bW94LWJhY2t1cC10ZXN0LXN1aXRl IiwKIF0KIAogW2xpYl0KZGlmZiAtLWdpdCBhL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2Fy Z28udG9tbCBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjNmODk5ZTliYwotLS0gL2Rldi9udWxsCisrKyBi L3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbApAQCAtMCwwICsxLDE4IEBACitb cGFja2FnZV0KK25hbWUgPSAicHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZSIKK3ZlcnNpb24gPSAi MC4xLjAiCithdXRob3JzLndvcmtzcGFjZSA9IHRydWUKK2VkaXRpb24ud29ya3NwYWNlID0gdHJ1 ZQorCitbZGVwZW5kZW5jaWVzXQorYW55aG93LndvcmtzcGFjZSA9IHRydWUKK2Z1dHVyZXMud29y a3NwYWNlID0gdHJ1ZQorc2VyZGUud29ya3NwYWNlID0gdHJ1ZQorc2VyZGVfanNvbi53b3Jrc3Bh Y2UgPSB0cnVlCisKK3Bicy1jbGllbnQud29ya3NwYWNlID0gdHJ1ZQorcGJzLWtleS1jb25maWcu d29ya3NwYWNlID0gdHJ1ZQorcGJzLXRvb2xzLndvcmtzcGFjZSA9IHRydWUKK3Byb3htb3gtYXN5 bmMud29ya3NwYWNlID0gdHJ1ZQorcHJveG1veC1yb3V0ZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUs IGZlYXR1cmVzID0gWyJjbGkiXSB9Citwcm94bW94LXNjaGVtYSA9IHsgd29ya3NwYWNlID0gdHJ1 ZSwgZmVhdHVyZXMgPSBbICJhcGktbWFjcm8iIF0gfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1iYWNr dXAtdGVzdC1zdWl0ZS9zcmMvZGV0ZWN0aW9uX21vZGVfYmVuY2gucnMgYi9wcm94bW94LWJhY2t1 cC10ZXN0LXN1aXRlL3NyYy9kZXRlY3Rpb25fbW9kZV9iZW5jaC5ycwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLjlhM2M3NjgwMgotLS0gL2Rldi9udWxsCisrKyBiL3Byb3ht b3gtYmFja3VwLXRlc3Qtc3VpdGUvc3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzCkBAIC0wLDAg KzEsMjk0IEBACit1c2Ugc3RkOjpwYXRoOjpQYXRoOwordXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFu ZDsKK3VzZSBzdGQ6Ont0aHJlYWQsIHRpbWV9OworCit1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0 X2VyciwgRXJyb3J9OwordXNlIHNlcmRlX2pzb246OlZhbHVlOworCit1c2UgcGJzX2NsaWVudDo6 eworICAgIHRvb2xzOjp7Y29tcGxldGVfcmVwb3NpdG9yeSwga2V5X3NvdXJjZTo6S0VZRklMRV9T Q0hFTUEsIFJFUE9fVVJMX1NDSEVNQX0sCisgICAgQkFDS1VQX1NPVVJDRV9TQ0hFTUEsCit9Owor dXNlIHBic190b29sczo6anNvbjsKK3VzZSBwcm94bW94X3JvdXRlcjo6Y2xpOjoqOwordXNlIHBy b3htb3hfc2NoZW1hOjphcGk7CisKK2NvbnN0IERFRkFVTFRfTlVNQkVSX09GX1JVTlM6IHU2NCA9 IDU7CisvLyBIb21lcGFnZSBodHRwczovL2NvY29kYXRhc2V0Lm9yZy8KK2NvbnN0IENPQ09fREFU QVNFVF9TUkNfVVJMOiAmJ3N0YXRpYyBzdHIgPSAiaHR0cDovL2ltYWdlcy5jb2NvZGF0YXNldC5v cmcvemlwcy91bmxhYmVsZWQyMDE3LnppcCI7CisvLyBIb21lcGFnZSBodHRwczovL2tlcm5lbC5v cmcvCitjb25zdCBMSU5VWF9HSVRfUkVQT1NJVE9SWTogJidzdGF0aWMgc3RyID0KKyAgICAiZ2l0 Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3N0YWJsZS9saW51eC5n aXQiOworY29uc3QgTElOVVhfR0lUX1RBRzogJidzdGF0aWMgc3RyID0gInY2LjUuNSI7CisKK3B1 YihjcmF0ZSkgZm4gZGV0ZWN0aW9uX21vZGVfYmVuY2hfbWd0bV9jbGkoKSAtPiBDbGlDb21tYW5k TWFwIHsKKyAgICBsZXQgcnVuX2NtZF9kZWYgPSBDbGlDb21tYW5kOjpuZXcoJkFQSV9NRVRIT0Rf REVURUNUSU9OX01PREVfQkVOQ0hfUlVOKQorICAgICAgICAuYXJnX3BhcmFtKCZbImJhY2t1cHNw ZWMiXSkKKyAgICAgICAgLmNvbXBsZXRpb25fY2IoInJlcG9zaXRvcnkiLCBjb21wbGV0ZV9yZXBv c2l0b3J5KQorICAgICAgICAuY29tcGxldGlvbl9jYigia2V5ZmlsZSIsIGNvbXBsZXRlX2ZpbGVf bmFtZSk7CisKKyAgICBsZXQgcHJlcGFyZV9jbWRfZGVmID0gQ2xpQ29tbWFuZDo6bmV3KCZBUElf TUVUSE9EX0RFVEVDVElPTl9NT0RFX0JFTkNIX1BSRVBBUkUpOworICAgIENsaUNvbW1hbmRNYXA6 Om5ldygpCisgICAgICAgIC5pbnNlcnQoInByZXBhcmUiLCBwcmVwYXJlX2NtZF9kZWYpCisgICAg ICAgIC5pbnNlcnQoInJ1biIsIHJ1bl9jbWRfZGVmKQorfQorCisjW2FwaSgKKyAgIGlucHV0OiB7 CisgICAgICAgcHJvcGVydGllczogeworICAgICAgICAgICBiYWNrdXBzcGVjOiB7CisgICAgICAg ICAgICAgICB0eXBlOiBBcnJheSwKKyAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiTGlzdCBv ZiBiYWNrdXAgc291cmNlIHNwZWNpZmljYXRpb25zIChbPGxhYmVsLmV4dD46PHBhdGg+XSAuLi4p IiwKKyAgICAgICAgICAgICAgIGl0ZW1zOiB7CisgICAgICAgICAgICAgICAgICAgc2NoZW1hOiBC QUNLVVBfU09VUkNFX1NDSEVNQSwKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAg ICAgICAgICAgcmVwb3NpdG9yeTogeworICAgICAgICAgICAgICAgc2NoZW1hOiBSRVBPX1VSTF9T Q0hFTUEsCisgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKKyAgICAgICAgICAgfSwKKyAg ICAgICAgICAga2V5ZmlsZTogeworICAgICAgICAgICAgICAgc2NoZW1hOiBLRVlGSUxFX1NDSEVN QSwKKyAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAorICAgICAgICAgICB9LAorICAgICAg ICAgICAibnVtYmVyLW9mLXJ1bnMiOiB7CisgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIk51 bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHJ1biIsCisgICAgICAgICAgICAgICB0eXBlOiBJ bnRlZ2VyLAorICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCisgICAgICAgICAgIH0sCisg ICAgICAgfQorICAgfQorKV0KKy8vLyBSdW4gYmVuY2htYXJrIHRvIGNvbXBhcmUgcGVyZm9ybWFu Y2UgZm9yIGJhY2t1cHMgdXNpbmcgZGlmZmVyZW50IGNoYW5nZSBkZXRlY3Rpb24gbW9kZXMuCitm biBkZXRlY3Rpb25fbW9kZV9iZW5jaF9ydW4ocGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVy cm9yPiB7CisgICAgbGV0IG11dCBwYmMgPSBDb21tYW5kOjpuZXcoInByb3htb3gtYmFja3VwLWNs aWVudCIpOworICAgIHBiYy5hcmcoImJhY2t1cCIpOworCisgICAgbGV0IGJhY2t1cHNwZWNfbGlz dCA9IGpzb246OnJlcXVpcmVkX2FycmF5X3BhcmFtKCZwYXJhbSwgImJhY2t1cHNwZWMiKT87Cisg ICAgZm9yIGJhY2t1cHNwZWMgaW4gYmFja3Vwc3BlY19saXN0IHsKKyAgICAgICAgbGV0IGFyZyA9 IGJhY2t1cHNwZWMKKyAgICAgICAgICAgIC5hc19zdHIoKQorICAgICAgICAgICAgLm9rX29yX2Vs c2UofHwgZm9ybWF0X2VyciEoImZhaWxlZCB0byBwYXJzZSBiYWNrdXBzcGVjIikpPzsKKyAgICAg ICAgcGJjLmFyZyhhcmcpOworICAgIH0KKworICAgIGlmIGxldCBTb21lKHJlcG8pID0gcGFyYW1b InJlcG9zaXRvcnkiXS5hc19zdHIoKSB7CisgICAgICAgIHBiYy5hcmcoIi0tcmVwb3NpdG9yeSIp OworICAgICAgICBwYmMuYXJnOjo8JnN0cj4ocmVwbyk7CisgICAgfQorCisgICAgaWYgbGV0IFNv bWUoa2V5ZmlsZSkgPSBwYXJhbVsia2V5ZmlsZSJdLmFzX3N0cigpIHsKKyAgICAgICAgcGJjLmFy ZygiLS1rZXlmaWxlIik7CisgICAgICAgIHBiYy5hcmc6Ojwmc3RyPihrZXlmaWxlKTsKKyAgICB9 CisKKyAgICBsZXQgbnVtYmVyX29mX3J1bnMgPSBtYXRjaCBwYXJhbVsibnVtYmVyX29mX3J1bnMi XS5hc191NjQoKSB7CisgICAgICAgIFNvbWUobikgPT4gbiwKKyAgICAgICAgTm9uZSA9PiBERUZB VUxUX05VTUJFUl9PRl9SVU5TLAorICAgIH07CisgICAgaWYgbnVtYmVyX29mX3J1bnMgPCAxIHsK KyAgICAgICAgYmFpbCEoIk51bWJlciBvZiBydW5zIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEsIGFi b3J0aW5nLiIpOworICAgIH0KKworICAgIC8vIEZpcnN0IHJ1biBpcyBhbiBpbml0aWFsIHJ1biB0 byBtYWtlIHN1cmUgYWxsIGNodW5rcyBhcmUgcHJlc2VudCBhbHJlYWR5LCByZWR1Y2Ugc2lkZSBl ZmZlY3RzCisgICAgLy8gYnkgZmlsZXN5c3RlbSBjYWNoZXMgZWNjLgorICAgIGxldCBfc3RhdHNf aW5pdGlhbCA9IGRvX3J1bigmbXV0IHBiYywgMSk/OworCisgICAgcHJpbnRsbiEoIlxuU3RhcnRp bmcgYmVuY2htYXJraW5nIGJhY2t1cHMgd2l0aCByZWd1bGFyIGRldGVjdGlvbiBtb2RlLi4uXG4i KTsKKyAgICBsZXQgc3RhdHNfcmVnID0gZG9fcnVuKCZtdXQgcGJjLCBudW1iZXJfb2ZfcnVucyk/ OworCisgICAgLy8gTWFrZSBzdXJlIHRvIGhhdmUgYSB2YWxpZCByZWZlcmVuY2Ugd2l0aCBjYXRh bG9nIGZyb21hdCB2ZXJzaW9uIDIKKyAgICBwYmMuYXJnKCItLWNoYW5nZS1kZXRlY3Rpb24tbW9k ZT1tZXRhZGF0YSIpOworICAgIGxldCBfc3RhdHNfaW5pdGlhbCA9IGRvX3J1bigmbXV0IHBiYywg MSk/OworCisgICAgcHJpbnRsbiEoIlxuU3RhcnRpbmcgYmVuY2htYXJraW5nIGJhY2t1cHMgd2l0 aCBtZXRhZGF0YSBkZXRlY3Rpb24gbW9kZS4uLlxuIik7CisgICAgbGV0IHN0YXRzX21ldGEgPSBk b19ydW4oJm11dCBwYmMsIG51bWJlcl9vZl9ydW5zKT87CisKKyAgICBwcmludGxuISgiXG5Db21w bGV0ZWQgYmVuY2htYXJrIHdpdGgge251bWJlcl9vZl9ydW5zfSBydW5zIGZvciBlYWNoIHRlc3Rl ZCBtb2RlLiIpOworICAgIHByaW50bG4hKCJcbkNvbXBsZXRlZCByZWd1bGFyIGJhY2t1cCB3aXRo OiIpOworICAgIHByaW50bG4hKCJUb3RhbCBydW50aW1lOiB7Oi4yfSBzIiwgc3RhdHNfcmVnLnRv dGFsKTsKKyAgICBwcmludGxuISgiQXZlcmFnZTogezouMn0gwrEgezouMn0gcyIsIHN0YXRzX3Jl Zy5hdmcsIHN0YXRzX3JlZy5zdGRkZXYpOworICAgIHByaW50bG4hKCJNaW46IHs6LjJ9IHMiLCBz dGF0c19yZWcubWluKTsKKyAgICBwcmludGxuISgiTWF4OiB7Oi4yfSBzIiwgc3RhdHNfcmVnLm1h eCk7CisKKyAgICBwcmludGxuISgiXG5Db21wbGV0ZWQgbWV0YWRhdGEgZGV0ZWN0aW9uIG1vZGUg YmFja3VwIHdpdGg6Iik7CisgICAgcHJpbnRsbiEoIlRvdGFsIHJ1bnRpbWU6IHs6LjJ9IHMiLCBz dGF0c19tZXRhLnRvdGFsKTsKKyAgICBwcmludGxuISgKKyAgICAgICAgIkF2ZXJhZ2U6IHs6LjJ9 IMKxIHs6LjJ9IHMiLAorICAgICAgICBzdGF0c19tZXRhLmF2Zywgc3RhdHNfbWV0YS5zdGRkZXYK KyAgICApOworICAgIHByaW50bG4hKCJNaW46IHs6LjJ9IHMiLCBzdGF0c19tZXRhLm1pbik7Cisg ICAgcHJpbnRsbiEoIk1heDogezouMn0gcyIsIHN0YXRzX21ldGEubWF4KTsKKworICAgIGxldCBk aWZmX3N0ZGRldiA9CisgICAgICAgICgoc3RhdHNfbWV0YS5zdGRkZXYgKiBzdGF0c19tZXRhLnN0 ZGRldikgKyAoc3RhdHNfcmVnLnN0ZGRldiAqIHN0YXRzX3JlZy5zdGRkZXYpKS5zcXJ0KCk7Cisg ICAgcHJpbnRsbiEoIlxuRGlmZmVyZW5jZXMgKG1ldGFkYXRhIGJhc2VkIC0gcmVndWxhcik6Iik7 CisgICAgcHJpbnRsbiEoCisgICAgICAgICJEZWx0YSB0b3RhbCBydW50aW1lOiB7Oi4yfSBzICh7 Oi4yfSAlKSIsCisgICAgICAgIHN0YXRzX21ldGEudG90YWwgLSBzdGF0c19yZWcudG90YWwsCisg ICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEudG90YWwgLyBzdGF0c19yZWcudG90YWwgLSAxLjAp LAorICAgICk7CisgICAgcHJpbnRsbiEoCisgICAgICAgICJEZWx0YSBhdmVyYWdlOiB7Oi4yfSDC sSB7Oi4yfSBzICh7Oi4yfSAlKSIsCisgICAgICAgIHN0YXRzX21ldGEuYXZnIC0gc3RhdHNfcmVn LmF2ZywKKyAgICAgICAgZGlmZl9zdGRkZXYsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEu YXZnIC8gc3RhdHNfcmVnLmF2ZyAtIDEuMCksCisgICAgKTsKKyAgICBwcmludGxuISgKKyAgICAg ICAgIkRlbHRhIG1pbjogezouMn0gcyAoezouMn0gJSkiLAorICAgICAgICBzdGF0c19tZXRhLm1p biAtIHN0YXRzX3JlZy5taW4sCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEubWluIC8gc3Rh dHNfcmVnLm1pbiAtIDEuMCksCisgICAgKTsKKyAgICBwcmludGxuISgKKyAgICAgICAgIkRlbHRh IG1heDogezouMn0gcyAoezouMn0gJSkiLAorICAgICAgICBzdGF0c19tZXRhLm1heCAtIHN0YXRz X3JlZy5tYXgsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEubWF4IC8gc3RhdHNfcmVnLm1h eCAtIDEuMCksCisgICAgKTsKKworICAgIE9rKCgpKQorfQorCitmbiBkb19ydW4oY21kOiAmbXV0 IENvbW1hbmQsIG5fcnVuczogdTY0KSAtPiBSZXN1bHQ8U3RhdGlzdGljcywgRXJyb3I+IHsKKyAg ICAvLyBBdm9pZCBjb25zZWN1dGl2ZSBzbmFwc2hvdCB0aW1lc3RhbXBzIGNvbGxpc2lvbgorICAg IHRocmVhZDo6c2xlZXAodGltZTo6RHVyYXRpb246OmZyb21fbWlsbGlzKDEwMDApKTsKKyAgICBs ZXQgbXV0IHRpbWluZ3MgPSBWZWM6OndpdGhfY2FwYWNpdHkobl9ydW5zIGFzIHVzaXplKTsKKyAg ICBmb3IgaXRlcmF0aW9uIGluIDEuLm5fcnVucyArIDEgeworICAgICAgICBsZXQgc3RhcnQgPSBz dGQ6OnRpbWU6OlN5c3RlbVRpbWU6Om5vdygpOworICAgICAgICBsZXQgbXV0IGNoaWxkID0gY21k LnNwYXduKCk/OworICAgICAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICAg ICAgbGV0IGVsYXBzZWQgPSBzdGFydC5lbGFwc2VkKCk/OworICAgICAgICB0aW1pbmdzLnB1c2go ZWxhcHNlZCk7CisgICAgICAgIGlmICFleGl0X2NvZGUuc3VjY2VzcygpIHsKKyAgICAgICAgICAg IGJhaWwhKCJSdW4gbnVtYmVyIHtpdGVyYXRpb259IG9mIHtuX3J1bnN9IGZhaWxlZCwgYWJvcnRp bmcuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBPayhzdGF0aXN0aWNzKHRpbWluZ3MpKQor fQorCitzdHJ1Y3QgU3RhdGlzdGljcyB7CisgICAgdG90YWw6IGY2NCwKKyAgICBhdmc6IGY2NCwK KyAgICBzdGRkZXY6IGY2NCwKKyAgICBtaW46IGY2NCwKKyAgICBtYXg6IGY2NCwKK30KKworZm4g c3RhdGlzdGljcyh0aW1pbmdzOiBWZWM8c3RkOjp0aW1lOjpEdXJhdGlvbj4pIC0+IFN0YXRpc3Rp Y3MgeworICAgIGxldCB0b3RhbCA9IHRpbWluZ3MKKyAgICAgICAgLml0ZXIoKQorICAgICAgICAu Zm9sZCgwZjY0LCB8c3VtLCB0aW1lfCBzdW0gKyB0aW1lLmFzX3NlY3NfZjY0KCkpOworICAgIGxl dCBhdmcgPSB0b3RhbCAvIHRpbWluZ3MubGVuKCkgYXMgZjY0OworICAgIGxldCB2YXIgPSAxZjY0 IC8gKHRpbWluZ3MubGVuKCkgLSAxKSBhcyBmNjQKKyAgICAgICAgKiB0aW1pbmdzLml0ZXIoKS5m b2xkKDBmNjQsIHxzcV9zdW0sIHRpbWV8IHsKKyAgICAgICAgICAgIGxldCBkaWZmID0gdGltZS5h c19zZWNzX2Y2NCgpIC0gYXZnOworICAgICAgICAgICAgc3Ffc3VtICsgZGlmZiAqIGRpZmYKKyAg ICAgICAgfSk7CisgICAgbGV0IHN0ZGRldiA9IHZhci5zcXJ0KCk7CisgICAgbGV0IG1pbiA9IHRp bWluZ3MuaXRlcigpLm1pbigpLnVud3JhcCgpLmFzX3NlY3NfZjY0KCk7CisgICAgbGV0IG1heCA9 IHRpbWluZ3MuaXRlcigpLm1heCgpLnVud3JhcCgpLmFzX3NlY3NfZjY0KCk7CisKKyAgICBTdGF0 aXN0aWNzIHsKKyAgICAgICAgdG90YWwsCisgICAgICAgIGF2ZywKKyAgICAgICAgc3RkZGV2LAor ICAgICAgICBtaW4sCisgICAgICAgIG1heCwKKyAgICB9Cit9CisKKyNbYXBpKAorICAgIGlucHV0 OiB7CisgICAgICAgIHByb3BlcnRpZXM6IHsKKyAgICAgICAgICAgIHRhcmdldDogeworICAgICAg ICAgICAgICAgIGRlc2NyaXB0aW9uOiAidGFyZ2V0IHBhdGggdG8gcHJlcGFyZSB0ZXN0IGRhdGEu IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgfSwKKyldCisvLy8gUHJlcGFyZSBm aWxlcyByZXF1aXJlZCBmb3IgZGV0ZWN0aW9uIG1vZGUgYmFja3VwIGJlbmNobWFya3MuCitmbiBk ZXRlY3Rpb25fbW9kZV9iZW5jaF9wcmVwYXJlKHRhcmdldDogU3RyaW5nKSAtPiBSZXN1bHQ8KCks IEVycm9yPiB7CisgICAgbGV0IGxpbnV4X3JlcG9fdGFyZ2V0ID0gZm9ybWF0ISgie3RhcmdldH0v bGludXgiKTsKKyAgICBsZXQgY29jb19kYXRhc2V0X3RhcmdldCA9IGZvcm1hdCEoInt0YXJnZXR9 L2NvY28iKTsKKyAgICBnaXRfY2xvbmUoTElOVVhfR0lUX1JFUE9TSVRPUlksIGxpbnV4X3JlcG9f dGFyZ2V0LmFzX3N0cigpKT87CisgICAgZ2l0X2NoZWNrb3V0KExJTlVYX0dJVF9UQUcsIGxpbnV4 X3JlcG9fdGFyZ2V0LmFzX3N0cigpKT87CisgICAgd2dldF9kb3dubG9hZChDT0NPX0RBVEFTRVRf U1JDX1VSTCwgY29jb19kYXRhc2V0X3RhcmdldC5hc19zdHIoKSk/OworCisgICAgT2soKCkpCit9 CisKK2ZuIGdpdF9jbG9uZShyZXBvOiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwg RXJyb3I+IHsKKyAgICBwcmludGxuISgiQ2FsbGluZyBnaXQgY2xvbmUgZm9yICd7cmVwb30nLiIp OworICAgIGxldCB0YXJnZXRfZ2l0ID0gZm9ybWF0ISgie3RhcmdldH0vLmdpdCIpOworICAgIGxl dCBwYXRoID0gUGF0aDo6bmV3KCZ0YXJnZXRfZ2l0KTsKKyAgICBpZiBsZXQgT2sodHJ1ZSkgPSBw YXRoLnRyeV9leGlzdHMoKSB7CisgICAgICAgIHByaW50bG4hKCJUYXJnZXQgJ3t0YXJnZXR9JyBh bHJlYWR5IGNvbnRhaW5zIGEgZ2l0IHJlcG9zaXRvcnksIHNraXAuIik7CisgICAgICAgIHJldHVy biBPaygoKSk7CisgICAgfQorCisgICAgbGV0IG11dCBnaXQgPSBDb21tYW5kOjpuZXcoImdpdCIp OworICAgIGdpdC5hcmdzKFsiY2xvbmUiLCByZXBvLCB0YXJnZXRdKTsKKworICAgIGxldCBtdXQg Y2hpbGQgPSBnaXQuc3Bhd24oKT87CisgICAgbGV0IGV4aXRfY29kZSA9IGNoaWxkLndhaXQoKT87 CisgICAgaWYgZXhpdF9jb2RlLnN1Y2Nlc3MoKSB7CisgICAgICAgIHByaW50bG4hKCJnaXQgY2xv bmUgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGJhaWwh KCJnaXQgY2xvbmUgZmFpbGVkIGZvciAne3RhcmdldH0nLiIpOworICAgIH0KKworICAgIE9rKCgp KQorfQorCitmbiBnaXRfY2hlY2tvdXQoY2hlY2tvdXRfdGFyZ2V0OiAmc3RyLCB0YXJnZXQ6ICZz dHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBwcmludGxuISgiQ2FsbGluZyBnaXQgY2hl Y2tvdXQgJ3tjaGVja291dF90YXJnZXR9Jy4iKTsKKyAgICBsZXQgbXV0IGdpdCA9IENvbW1hbmQ6 Om5ldygiZ2l0Iik7CisgICAgZ2l0LmFyZ3MoWyItQyIsIHRhcmdldCwgImNoZWNrb3V0IiwgY2hl Y2tvdXRfdGFyZ2V0XSk7CisKKyAgICBsZXQgbXV0IGNoaWxkID0gZ2l0LnNwYXduKCk/OworICAg IGxldCBleGl0X2NvZGUgPSBjaGlsZC53YWl0KCk/OworICAgIGlmIGV4aXRfY29kZS5zdWNjZXNz KCkgeworICAgICAgICBwcmludGxuISgiZ2l0IGNoZWNrb3V0IGZpbmlzaGVkIHdpdGggc3VjY2Vz cy4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBiYWlsISgiZ2l0IGNoZWNrb3V0ICd7Y2hlY2tv dXRfdGFyZ2V0fScgZmFpbGVkIGZvciAne3RhcmdldH0nLiIpOworICAgIH0KKyAgICBPaygoKSkK K30KKworZm4gd2dldF9kb3dubG9hZChzb3VyY2VfdXJsOiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+ IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBsZXQgcGF0aCA9IFBhdGg6Om5ldygmdGFyZ2V0KTsK KyAgICBpZiBsZXQgT2sodHJ1ZSkgPSBwYXRoLnRyeV9leGlzdHMoKSB7CisgICAgICAgIHByaW50 bG4hKCJUYXJnZXQgJ3t0YXJnZXR9JyBhbHJlYWR5IGV4aXN0cywgc2tpcC4iKTsKKyAgICAgICAg cmV0dXJuIE9rKCgpKTsKKyAgICB9CisgICAgbGV0IHppcCA9IGZvcm1hdCEoInt9L3VubGFiZWxl ZDIwMTcuemlwIiwgdGFyZ2V0KTsKKyAgICBsZXQgcGF0aCA9IFBhdGg6Om5ldygmemlwKTsKKyAg ICBpZiAhcGF0aC50cnlfZXhpc3RzKCk/IHsKKyAgICAgICAgcHJpbnRsbiEoIkRvd25sb2FkIGFy Y2hpdmUgdXNpbmcgd2dldCBmcm9tICd7c291cmNlX3VybH0nIHRvICd7dGFyZ2V0fScuIik7Cisg ICAgICAgIGxldCBtdXQgd2dldCA9IENvbW1hbmQ6Om5ldygid2dldCIpOworICAgICAgICB3Z2V0 LmFyZ3MoWyItUCIsIHRhcmdldCwgc291cmNlX3VybF0pOworCisgICAgICAgIGxldCBtdXQgY2hp bGQgPSB3Z2V0LnNwYXduKCk/OworICAgICAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgp PzsKKyAgICAgICAgaWYgZXhpdF9jb2RlLnN1Y2Nlc3MoKSB7CisgICAgICAgICAgICBwcmludGxu ISgiRG93bmxvYWQgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgICAgICB9IGVsc2Ugewor ICAgICAgICAgICAgYmFpbCEoIkZhaWxlZCB0byBkb3dubG9hZCAne3NvdXJjZV91cmx9JyB0byAn e3RhcmdldH0nLiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBPaygoKSk7CisgICAgfSBl bHNlIHsKKyAgICAgICAgcHJpbnRsbiEoIlRhcmdldCAne3RhcmdldH0nIGFscmVhZHkgY29udGFp bnMgZG93bmxvYWQsIHNraXAgZG93bmxvYWQuIik7CisgICAgfQorCisgICAgbGV0IG11dCB1bnpp cCA9IENvbW1hbmQ6Om5ldygidW56aXAiKTsKKyAgICB1bnppcC5hcmdzKFsmemlwLCAiLWQiLCB0 YXJnZXRdKTsKKworICAgIGxldCBtdXQgY2hpbGQgPSB1bnppcC5zcGF3bigpPzsKKyAgICBsZXQg ZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICBpZiBleGl0X2NvZGUuc3VjY2VzcygpIHsK KyAgICAgICAgcHJpbnRsbiEoIkV4dHJhY3RpbmcgemlwIGFyY2hpdmUgZmluaXNoZWQgd2l0aCBz dWNjZXNzLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGJhaWwhKCJGYWlsZWQgdG8gZXh0cmFj dCB6aXAgYXJjaGl2ZSAne3ppcH0nIHRvICd7dGFyZ2V0fScuIik7CisgICAgfQorICAgIE9rKCgp KQorfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvbWFpbi5ycyBi L3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvc3JjL21haW4ucnMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi4wYTViNDM2YTgKLS0tIC9kZXYvbnVsbAorKysgYi9wcm94bW94 LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9tYWluLnJzCkBAIC0wLDAgKzEsMTcgQEAKK3VzZSBwcm94 bW94X3JvdXRlcjo6Y2xpOjoqOworCittb2QgZGV0ZWN0aW9uX21vZGVfYmVuY2g7CisKK2ZuIG1h aW4oKSB7CisgICAgbGV0IGNtZF9kZWYgPSBDbGlDb21tYW5kTWFwOjpuZXcoKS5pbnNlcnQoCisg ICAgICAgICJkZXRlY3Rpb24tbW9kZS1iZW5jaCIsCisgICAgICAgIGRldGVjdGlvbl9tb2RlX2Jl bmNoOjpkZXRlY3Rpb25fbW9kZV9iZW5jaF9tZ3RtX2NsaSgpLAorICAgICk7CisKKyAgICBsZXQg cnBjZW52ID0gQ2xpRW52aXJvbm1lbnQ6Om5ldygpOworICAgIHJ1bl9jbGlfY29tbWFuZCgKKyAg ICAgICAgY21kX2RlZiwKKyAgICAgICAgcnBjZW52LAorICAgICAgICBTb21lKHxmdXR1cmV8IHBy b3htb3hfYXN5bmM6OnJ1bnRpbWU6Om1haW4oZnV0dXJlKSksCisgICAgKTsKK30KLS0gCjIuMzku MgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMt ZGV2ZWwgbWFpbGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xp c3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK