From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id F06301FF178 for ; Mon, 1 Dec 2025 12:39:01 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 860FE1A0B1; Mon, 1 Dec 2025 12:39:25 +0100 (CET) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pdm-devel@lists.proxmox.com Date: Mon, 1 Dec 2025 12:39:08 +0100 Message-ID: <20251201113917.518311-4-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251201113917.518311-1-f.gruenbichler@proxmox.com> References: <20251201113917.518311-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1764589118246 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.046 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 Subject: [pdm-devel] [RFC datacenter-manager 3/3] api: add subscription endpoints X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" Zm9yIHRoZSBQRE0gc3lzdGVtIGl0c2VsZiwgYnkgcHJveHkgb2YgaG93IG1hbnkgb2YgdGhlIHJl bW90ZSBub2RlcyBoYXZlIHZhbGlkCnN1YnNjcmlwdGlvbnMgYWJvdmUgYSBjZXJ0YWluIGxldmVs LgoKU2lnbmVkLW9mZi1ieTogRmFiaWFuIEdyw7xuYmljaGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJv eG1veC5jb20+Ci0tLQp0aGUgdGhyZXNob2xkcyBoZXJlIGFyZSByYXRoZXIgYXJiaXRyYXJ5IG9m IGNvdXJzZSwgYXMgaXMgdGhlIHJlZnJlc2gKaW50ZXJ2YWwgZm9yIGNhY2hlZCBzdWJzY3JpcHRp b24gaW5mb3JtYXRpb24uLgoKIHNlcnZlci9zcmMvYXBpL25vZGVzL21vZC5ycyAgICAgICAgICB8 ICAgMiArCiBzZXJ2ZXIvc3JjL2FwaS9ub2Rlcy9zdWJzY3JpcHRpb24ucnMgfCAxOTEgKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBzZXJ2ZXIvc3JjL2FwaS9yZXNvdXJjZXMucnMgICAgICAg ICAgfCAgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTk0IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzZXJ2ZXIvc3JjL2FwaS9ub2Rlcy9zdWJzY3JpcHRp b24ucnMKCmRpZmYgLS1naXQgYS9zZXJ2ZXIvc3JjL2FwaS9ub2Rlcy9tb2QucnMgYi9zZXJ2ZXIv c3JjL2FwaS9ub2Rlcy9tb2QucnMKaW5kZXggYTBmZTE0YS4uM2E3OTVkNiAxMDA2NDQKLS0tIGEv c2VydmVyL3NyYy9hcGkvbm9kZXMvbW9kLnJzCisrKyBiL3NlcnZlci9zcmMvYXBpL25vZGVzL21v ZC5ycwpAQCAtMTEsNiArMTEsNyBAQCBwdWIgbW9kIGpvdXJuYWw7CiBwdWIgbW9kIG5ldHdvcms7 CiBwdWIgbW9kIHJyZGRhdGE7CiBwdWIgbW9kIHN0YXR1czsKK3B1YiBtb2Qgc3Vic2NyaXB0aW9u OwogcHViIG1vZCBzeXNsb2c7CiBwdWIgbW9kIHRhc2tzOwogcHViIG1vZCB0ZXJtcHJveHk7CkBA IC00NSw2ICs0Niw3IEBAIHB1YiBjb25zdCBTVUJESVJTOiBTdWJkaXJNYXAgPSAmc29ydGVkIShb CiAgICAgKCJqb3VybmFsIiwgJmpvdXJuYWw6OlJPVVRFUiksCiAgICAgKCJuZXR3b3JrIiwgJm5l dHdvcms6OlJPVVRFUiksCiAgICAgKCJycmRhdGEiLCAmcnJkZGF0YTo6Uk9VVEVSKSwKKyAgICAo InN1YnNjcmlwdGlvbiIsICZzdWJzY3JpcHRpb246OlJPVVRFUiksCiAgICAgKCJzdGF0dXMiLCAm c3RhdHVzOjpST1VURVIpLAogICAgICgic3lzbG9nIiwgJnN5c2xvZzo6Uk9VVEVSKSwKICAgICAo InRhc2tzIiwgJnRhc2tzOjpST1VURVIpLApkaWZmIC0tZ2l0IGEvc2VydmVyL3NyYy9hcGkvbm9k ZXMvc3Vic2NyaXB0aW9uLnJzIGIvc2VydmVyL3NyYy9hcGkvbm9kZXMvc3Vic2NyaXB0aW9uLnJz Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0M2EyYzgKLS0tIC9kZXYvbnVs bAorKysgYi9zZXJ2ZXIvc3JjL2FwaS9ub2Rlcy9zdWJzY3JpcHRpb24ucnMKQEAgLTAsMCArMSwx OTEgQEAKK3VzZSBzdGQ6OmNvbGxlY3Rpb25zOjpIYXNoTWFwOworCit1c2UgYW55aG93Ojp7YmFp bCwgRXJyb3J9OworCit1c2UgcHJveG1veF9yb3V0ZXI6OntQZXJtaXNzaW9uLCBSb3V0ZXJ9Owor dXNlIHByb3htb3hfc2NoZW1hOjphcGk7Cit1c2UgcHJveG1veF9zY2hlbWE6OmFwaV90eXBlczo6 Tk9ERV9TQ0hFTUE7Cit1c2UgcHJveG1veF9zdWJzY3JpcHRpb246OmZpbGVzOjp1cGRhdGVfYXB0 X2F1dGg7Cit1c2UgcHJveG1veF9zdWJzY3JpcHRpb246OntTdWJzY3JpcHRpb25JbmZvLCBTdWJz Y3JpcHRpb25TdGF0dXN9OwordXNlIHByb3htb3hfc3lzOjpmczo6Q3JlYXRlT3B0aW9uczsKKwor dXNlIHBkbV9hcGlfdHlwZXM6OnJlbW90ZXM6OlJlbW90ZVR5cGU7Cit1c2UgcGRtX2FwaV90eXBl czo6c3Vic2NyaXB0aW9uOjp7CisgICAgTm9kZVN1YnNjcmlwdGlvbkluZm8sIFN1YnNjcmlwdGlv bkxldmVsLCBTdWJzY3JpcHRpb25TdGF0aXN0aWNzLAorfTsKK3VzZSBwZG1fYXBpX3R5cGVzOjpQ UklWX1NZU19NT0RJRlk7CisKK3VzZSBjcmF0ZTo6YXBpOjpyZXNvdXJjZXM6OmdldF9zdWJzY3Jp cHRpb25faW5mb19mb3JfcmVtb3RlOworCitjb25zdCBQUk9EVUNUX1VSTDogJnN0ciA9ICJodHRw czovL3d3dy5wcm94bW94LmNvbS9lbi9wcm94bW94LWRhdGFjZW50ZXItbWFhbmdlci9wcmljaW5n IjsKK2NvbnN0IEFQVF9BVVRIX0ZOOiAmc3RyID0gIi9ldGMvYXB0L2F1dGguY29uZi5kL3BkbS5j b25mIjsKK2NvbnN0IEFQVF9BVVRIX1VSTDogJnN0ciA9ICJlbnRlcnByaXNlLnByb3htb3guY29t L2RlYmlhbi9wZG0iOworCisvLyBtaW5pbXVtIHJhdGlvIG9mIG5vZGVzIHdpdGggYWN0aXZlIHN1 YnNjcmlwdGlvbnMKK2NvbnN0IFNVQlNDUklQVElPTl9USFJFU0hPTEQ6IGY2NCA9IDAuOTsKKy8v IG1heCByYXRpbyBvZiBub2RlcyB3aXRoIGNvbW11bml0eSBzdWJzY3JpcHRpb25zLCBhbW9uZyBu b2RlcyB3aXRoIHN1YnNjcmlwdGlvbnMKK2NvbnN0IENPTU1VTklUWV9USFJFU0hPTEQ6IGY2NCA9 IDAuNDsKKworZm4gYXB0X2F1dGhfZmlsZV9vcHRzKCkgLT4gQ3JlYXRlT3B0aW9ucyB7CisgICAg bGV0IG1vZGUgPSBuaXg6OnN5czo6c3RhdDo6TW9kZTo6ZnJvbV9iaXRzX3RydW5jYXRlKDBvMDYw MCk7CisgICAgQ3JlYXRlT3B0aW9uczo6bmV3KCkucGVybShtb2RlKS5vd25lcihuaXg6OnVuaXN0 ZDo6Uk9PVCkKK30KKworYXN5bmMgZm4gZ2V0X2FsbF9zdWJzY3JpcHRpb25faW5mb3MoCispIC0+ IFJlc3VsdDxIYXNoTWFwPFN0cmluZywgKFJlbW90ZVR5cGUsIEhhc2hNYXA8U3RyaW5nLCBPcHRp b248Tm9kZVN1YnNjcmlwdGlvbkluZm8+Pik+LCBFcnJvcj4geworICAgIGxldCAocmVtb3Rlc19j b25maWcsIF9kaWdlc3QpID0gcGRtX2NvbmZpZzo6cmVtb3Rlczo6Y29uZmlnKCk/OworCisgICAg bGV0IG11dCBzdWJzY3JpcHRpb25faW5mbyA9IEhhc2hNYXA6Om5ldygpOworICAgIGZvciAocmVt b3RlX25hbWUsIHJlbW90ZSkgaW4gcmVtb3Rlc19jb25maWcuaXRlcigpIHsKKyAgICAgICAgbWF0 Y2ggZ2V0X3N1YnNjcmlwdGlvbl9pbmZvX2Zvcl9yZW1vdGUocmVtb3RlLCAyNCAqIDYwICogNjAp LmF3YWl0IHsKKyAgICAgICAgICAgIE9rKGluZm8pID0+IHsKKyAgICAgICAgICAgICAgICBzdWJz Y3JpcHRpb25faW5mby5pbnNlcnQocmVtb3RlX25hbWUudG9fc3RyaW5nKCksIChyZW1vdGUudHks IGluZm8pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEVycihlcnIpID0+IHsKKyAgICAg ICAgICAgICAgICBsb2c6OmRlYnVnISgiRmFpbGVkIHRvIGdldCBzdWJzY3JpcHRpb24gaW5mbyBm b3IgcmVtb3RlIHtyZW1vdGVfbmFtZX0gLSB7ZXJyfSIpOworICAgICAgICAgICAgICAgIHN1YnNj cmlwdGlvbl9pbmZvLmluc2VydChyZW1vdGVfbmFtZS50b19zdHJpbmcoKSwgKHJlbW90ZS50eSwg SGFzaE1hcDo6bmV3KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBP ayhzdWJzY3JpcHRpb25faW5mbykKK30KKworZm4gY291bnRfc3Vic2NyaXB0aW9ucygKKyAgICBz dWJzY3JpcHRpb25faW5mb3M6ICZIYXNoTWFwPAorICAgICAgICBTdHJpbmcsCisgICAgICAgIChS ZW1vdGVUeXBlLCBIYXNoTWFwPFN0cmluZywgT3B0aW9uPE5vZGVTdWJzY3JpcHRpb25JbmZvPj4p LAorICAgID4sCispIC0+IFN1YnNjcmlwdGlvblN0YXRpc3RpY3MgeworICAgIGxldCBtdXQgc3Rh dHMgPSBTdWJzY3JpcHRpb25TdGF0aXN0aWNzOjpkZWZhdWx0KCk7CisgICAgZm9yIChfcmVtb3Rl LCAoX3JlbW90ZV90eXBlLCByZW1vdGVfaW5mb3MpKSBpbiBzdWJzY3JpcHRpb25faW5mb3MuaXRl cigpIHsKKyAgICAgICAgaWYgcmVtb3RlX2luZm9zLmlzX2VtcHR5KCkgeworICAgICAgICAgICAg Ly8gY291bnQgcmVtb3RlcyB3aXRob3V0IGluZm8gYXMgYXQgbGVhc3Qgb25lIG5vZGUKKyAgICAg ICAgICAgIHN0YXRzLnRvdGFsX25vZGVzICs9IDE7CisgICAgICAgICAgICBjb250aW51ZTsKKyAg ICAgICAgfQorICAgICAgICBmb3IgKF9ub2RlLCBub2RlX2luZm8pIGluIHJlbW90ZV9pbmZvcy5p dGVyKCkgeworICAgICAgICAgICAgc3RhdHMudG90YWxfbm9kZXMgKz0gMTsKKyAgICAgICAgICAg IGlmIGxldCBTb21lKGluZm8pID0gbm9kZV9pbmZvIHsKKyAgICAgICAgICAgICAgICBpZiBpbmZv LnN0YXR1cyA9PSBTdWJzY3JpcHRpb25TdGF0dXM6OkFjdGl2ZSB7CisgICAgICAgICAgICAgICAg ICAgIHN0YXRzLmFjdGl2ZV9zdWJzY3JpcHRpb25zICs9IDE7CisgICAgICAgICAgICAgICAgICAg IGlmIGluZm8ubGV2ZWwgPT0gU3Vic2NyaXB0aW9uTGV2ZWw6OkNvbW11bml0eSB7CisgICAgICAg ICAgICAgICAgICAgICAgICBzdGF0cy5jb21tdW5pdHkgKz0gMTsKKyAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K KyAgICBzdGF0cworfQorCitmbiBjaGVja19jb3VudHMoc3RhdHM6IFN1YnNjcmlwdGlvblN0YXRp c3RpY3MpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBsZXQgc3Vic2NyaWJlZF9yYXRpbyA9 IHN0YXRzLmFjdGl2ZV9zdWJzY3JpcHRpb25zIGFzIGY2NCAvIHN0YXRzLnRvdGFsX25vZGVzIGFz IGY2NDsKKyAgICBsZXQgY29tbXVuaXR5X3JhdGlvID0gc3RhdHMuY29tbXVuaXR5IGFzIGY2NCAv IHN0YXRzLmFjdGl2ZV9zdWJzY3JpcHRpb25zIGFzIGY2NDsKKworICAgIGlmIHN1YnNjcmliZWRf cmF0aW8gPiBTVUJTQ1JJUFRJT05fVEhSRVNIT0xEIHsKKyAgICAgICAgaWYgY29tbXVuaXR5X3Jh dGlvIDwgQ09NTVVOSVRZX1RIUkVTSE9MRCB7CisgICAgICAgICAgICByZXR1cm4gT2soKCkpOwor ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFpbCEoIlRvbyBtYW55IHJlbW90ZSBub2Rl cyB3aXRoIGNvbW11bml0eSBsZXZlbCBzdWJzY3JpcHRpb24hIik7CisgICAgICAgIH0KKyAgICB9 IGVsc2UgeworICAgICAgICBiYWlsISgiVG9vIG1hbnkgcmVtb3RlIG5vZGVzIHdpdGhvdXQgYWN0 aXZlIHN1YnNjcmlwdGlvbiEiKTsKKyAgICB9Cit9CisKKyNbYXBpKAorICAgIGFjY2VzczogeyBw ZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6QW55Ym9keSwgfSwKKyAgICBpbnB1dDogeworICAgICAg ICBwcm9wZXJ0aWVzOiB7CisgICAgICAgICAgICBub2RlOiB7CisgICAgICAgICAgICAgICAgc2No ZW1hOiBOT0RFX1NDSEVNQSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgfSwKKyAg ICByZXR1cm5zOiB7CisgICAgICAgIHR5cGU6IFN1YnNjcmlwdGlvbkluZm8sCisgICAgfQorKV0K Ky8vLyBSZXR1cm4gc3Vic2NyaXB0aW9uIHN0YXR1cworcHViIGFzeW5jIGZuIGdldF9zdWJzY3Jp cHRpb24oKSAtPiBSZXN1bHQ8U3Vic2NyaXB0aW9uSW5mbywgRXJyb3I+IHsKKyAgICBsZXQgaW5m b3MgPSBnZXRfYWxsX3N1YnNjcmlwdGlvbl9pbmZvcygpLmF3YWl0PzsKKworICAgIGxldCBzdGF0 cyA9IGNvdW50X3N1YnNjcmlwdGlvbnMoJmluZm9zKTsKKworICAgIGlmIGxldCBFcnIoZXJyKSA9 IGNoZWNrX2NvdW50cyhzdGF0cykgeworICAgICAgICBPayhTdWJzY3JpcHRpb25JbmZvIHsKKyAg ICAgICAgICAgIHN0YXR1czogU3Vic2NyaXB0aW9uU3RhdHVzOjpJbnZhbGlkLAorICAgICAgICAg ICAgbWVzc2FnZTogU29tZShmb3JtYXQhKCJ7ZXJyfSIpKSwKKyAgICAgICAgICAgIHNlcnZlcmlk OiBOb25lLAorICAgICAgICAgICAgdXJsOiBTb21lKFBST0RVQ1RfVVJMLmludG8oKSksCisgICAg ICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQorICAgICAgICB9KQorICAgIH0gZWxzZSB7Cisg ICAgICAgIE9rKFN1YnNjcmlwdGlvbkluZm8geworICAgICAgICAgICAgc3RhdHVzOiBTdWJzY3Jp cHRpb25TdGF0dXM6OkFjdGl2ZSwKKyAgICAgICAgICAgIHVybDogU29tZShQUk9EVUNUX1VSTC5p bnRvKCkpLAorICAgICAgICAgICAgLi5EZWZhdWx0OjpkZWZhdWx0KCkKKyAgICAgICAgfSkKKyAg ICB9Cit9CisKKyNbYXBpKAorICAgIGlucHV0OiB7CisgICAgICAgIHByb3BlcnRpZXM6IHsKKyAg ICAgICAgICAgIG5vZGU6IHsKKyAgICAgICAgICAgICAgICBzY2hlbWE6IE5PREVfU0NIRU1BLAor ICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICB9LAorICAgIHByb3RlY3RlZDogdHJ1ZSwK KyAgICBhY2Nlc3M6IHsKKyAgICAgICAgcGVybWlzc2lvbjogJlBlcm1pc3Npb246OlByaXZpbGVn ZSgmWyJzeXN0ZW0iXSwgUFJJVl9TWVNfTU9ESUZZLCBmYWxzZSksCisgICAgfSwKKyldCisvLy8g VXBkYXRlIHN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbgorcHViIGFzeW5jIGZuIGNoZWNrX3N1YnNj cmlwdGlvbigpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBsZXQgaW5mb3MgPSBnZXRfYWxs X3N1YnNjcmlwdGlvbl9pbmZvcygpLmF3YWl0PzsKKyAgICBsZXQgc3RhdHMgPSBjb3VudF9zdWJz Y3JpcHRpb25zKCZpbmZvcyk7CisKKyAgICBpZiBsZXQgRXJyKGVycikgPSBjaGVja19jb3VudHMo c3RhdHMpIHsKKyAgICAgICAgdXBkYXRlX2FwdF9hdXRoKEFQVF9BVVRIX0ZOLCBhcHRfYXV0aF9m aWxlX29wdHMoKSwgQVBUX0FVVEhfVVJMLCBOb25lLCBOb25lKT87CisgICAgICAgIHJldHVybiBF cnIoZXJyKTsKKyAgICB9CisKKyAgICBsZXQgbXV0IGZvdW5kID0gZmFsc2U7CisgICAgJ291dGVy OiBmb3IgKHJlbW90ZSwgKHJlbW90ZV90eXBlLCByZW1vdGVfaW5mbykpIGluIGluZm9zLml0ZXIo KSB7CisgICAgICAgIGlmICpyZW1vdGVfdHlwZSAhPSBSZW1vdGVUeXBlOjpQdmUgeworICAgICAg ICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChub2RlLCBub2RlX2luZm8p IGluIHJlbW90ZV9pbmZvLml0ZXIoKSB7CisgICAgICAgICAgICBpZiBsZXQgU29tZShpbmZvKSA9 IG5vZGVfaW5mbyB7CisgICAgICAgICAgICAgICAgaWYgaW5mby5zdGF0dXMgPT0gU3Vic2NyaXB0 aW9uU3RhdHVzOjpBY3RpdmUKKyAgICAgICAgICAgICAgICAgICAgJiYgaW5mby5rZXkuaXNfc29t ZSgpCisgICAgICAgICAgICAgICAgICAgICYmIGluZm8uc2VydmVyaWQuaXNfc29tZSgpCisgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsb2c6OmluZm8hKCJVc2luZyBzdWJz Y3JpcHRpb24gb2Ygbm9kZSAne25vZGV9JyBvZiByZW1vdGUgJ3tyZW1vdGV9JyBmb3IgZW50ZXJw cmlzZSByZXBvc2l0b3J5IGFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVfYXB0 X2F1dGgoCisgICAgICAgICAgICAgICAgICAgICAgICBBUFRfQVVUSF9GTiwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGFwdF9hdXRoX2ZpbGVfb3B0cygpLAorICAgICAgICAgICAgICAgICAgICAg ICAgQVBUX0FVVEhfVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5rZXkuY2xvbmUo KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uc2VydmVyaWQuY2xvbmUoKSwKKyAgICAg ICAgICAgICAgICAgICAgKT87CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAg ICAgICAgICAgICAgICAgICAgYnJlYWsgJ291dGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICFmb3VuZCB7CisgICAgICAgIGxv Zzo6d2FybiEoIk5vIHZhbGlkIHN1YnNjcmlwdGlvbiBmb3VuZCBmb3IgY29uZmlndXJpbmcgZW50 ZXJwcmlzZSByZXBvc2l0b3J5IGFjY2Vzcy4uIik7CisgICAgICAgIHVwZGF0ZV9hcHRfYXV0aChB UFRfQVVUSF9GTiwgYXB0X2F1dGhfZmlsZV9vcHRzKCksIEFQVF9BVVRIX1VSTCwgTm9uZSwgTm9u ZSk/OworICAgIH0KKworICAgIE9rKCgpKQorfQorCitwdWIgY29uc3QgUk9VVEVSOiBSb3V0ZXIg PSBSb3V0ZXI6Om5ldygpCisgICAgLmdldCgmQVBJX01FVEhPRF9HRVRfU1VCU0NSSVBUSU9OKQor ICAgIC5wb3N0KCZBUElfTUVUSE9EX0NIRUNLX1NVQlNDUklQVElPTik7CmRpZmYgLS1naXQgYS9z ZXJ2ZXIvc3JjL2FwaS9yZXNvdXJjZXMucnMgYi9zZXJ2ZXIvc3JjL2FwaS9yZXNvdXJjZXMucnMK aW5kZXggNGJlYWE1NC4uYWRhYjAyMSAxMDA2NDQKLS0tIGEvc2VydmVyL3NyYy9hcGkvcmVzb3Vy Y2VzLnJzCisrKyBiL3NlcnZlci9zcmMvYXBpL3Jlc291cmNlcy5ycwpAQCAtNzY3LDcgKzc2Nyw3 IEBAIHN0YXRpYyBTVUJTQ1JJUFRJT05fQ0FDSEU6IExhenlMb2NrPFJ3TG9jazxIYXNoTWFwPFN0 cmluZywgQ2FjaGVkU3Vic2NyaXB0aW9uU3RhCiAvLy8KIC8vLyBJZiByZWNlbnQgZW5vdWdoIGNh Y2hlZCBkYXRhIGlzIGF2YWlsYWJsZSwgaXQgaXMgcmV0dXJuZWQKIC8vLyBpbnN0ZWFkIG9mIGNh bGxpbmcgb3V0IHRvIHRoZSByZW1vdGUuCi1hc3luYyBmbiBnZXRfc3Vic2NyaXB0aW9uX2luZm9f Zm9yX3JlbW90ZSgKK3B1YiBhc3luYyBmbiBnZXRfc3Vic2NyaXB0aW9uX2luZm9fZm9yX3JlbW90 ZSgKICAgICByZW1vdGU6ICZSZW1vdGUsCiAgICAgbWF4X2FnZTogdTY0LAogKSAtPiBSZXN1bHQ8 SGFzaE1hcDxTdHJpbmcsIE9wdGlvbjxOb2RlU3Vic2NyaXB0aW9uSW5mbz4+LCBFcnJvcj4gewot LSAKMi40Ny4zCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCnBkbS1kZXZlbCBtYWlsaW5nIGxpc3QKcGRtLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0 dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3BkbS1kZXZl bAo=