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 BCE651FF15E for ; Mon, 27 Oct 2025 14:54:39 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A0F676D36; Mon, 27 Oct 2025 14:55:10 +0100 (CET) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pbs-devel@lists.proxmox.com Date: Mon, 27 Oct 2025 14:52:40 +0100 Message-ID: <20251027135435.488551-1-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1761573265529 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.047 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [RFC proxmox-backup] index writers: remove dead code 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" dGhlIGN1cnJlbnQgY29kZSBiYXNlIGRvZXNuJ3QgdXNlIHRoZSBpbmRleCB3cml0ZXJzIGZvciBp bnNlcnRpbmcgY2h1bmtzIGludG8gYQpjaHVuayBzdG9yZSwgYW5kIGl0IHByb2JhYmx5IHNob3Vs ZG4ndCBnaXZlbiB0aGUgaW50cmljYXRlIHJlcXVpcmVtZW50cyBhcm91bmQKaW50ZXJhY3Rpbmcg d2l0aCBTMy4KCmFsbCBvZiB0aGlzZSBjb2RlIHNlZW1zIHRvIGJlIGRlYWQgY29kZSwgcmVtb3Zl IGl0IHRvIG1ha2UgcmVhc29uaW5nIGFib3V0CmNodW5rIGluc2VydGlvbiBjb2RlIHBhdGhzIGVh c2llci4KClNpZ25lZC1vZmYtYnk6IEZhYmlhbiBHcsO8bmJpY2hsZXIgPGYuZ3J1ZW5iaWNobGVy QHByb3htb3guY29tPgotLS0Kc3R1bWJsZWQgdXBvbiB0aGlzIHdoaWxlIHRoaW5raW5nIGFib3V0 IFMzIHN5bmNocm9uaXphdGlvbiBpc3N1ZXMuLgpBRkFJQ1QgdGhpcyBpcyBsZWZ0b3ZlciBmcm9t IHRoZSB2ZXJ5IGluaXRpYWwgcGhhc2Ugb2YgUEJTIGRldmVsb3BtZW50CgogcGJzLWRhdGFzdG9y ZS9zcmMvZHluYW1pY19pbmRleC5ycyB8IDE0MiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogcGJzLWRhdGFzdG9yZS9zcmMvZml4ZWRfaW5kZXgucnMgICB8ICAzOCAtLS0tLS0tLQogMiBm aWxlcyBjaGFuZ2VkLCAxODAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9y ZS9zcmMvZHluYW1pY19pbmRleC5ycyBiL3Bicy1kYXRhc3RvcmUvc3JjL2R5bmFtaWNfaW5kZXgu cnMKaW5kZXggZmY2YzM2NzgyLi42MjRkZjAxMTkgMTAwNjQ0Ci0tLSBhL3Bicy1kYXRhc3RvcmUv c3JjL2R5bmFtaWNfaW5kZXgucnMKKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvZHluYW1pY19pbmRl eC5ycwpAQCAtMTYsMTMgKzE2LDEwIEBAIHVzZSBweGFyOjphY2Nlc3Nvcjo6e01heWJlUmVhZHks IFJlYWRBdCwgUmVhZEF0T3BlcmF0aW9ufTsKIAogdXNlIHBic190b29sczo6bHJ1X2NhY2hlOjpM cnVDYWNoZTsKIAotdXNlIGNyYXRlOjpjaHVua19zdGF0OjpDaHVua1N0YXQ7CiB1c2UgY3JhdGU6 OmNodW5rX3N0b3JlOjpDaHVua1N0b3JlOwotdXNlIGNyYXRlOjpkYXRhX2Jsb2I6OntEYXRhQmxv YiwgRGF0YUNodW5rQnVpbGRlcn07CiB1c2UgY3JhdGU6OmZpbGVfZm9ybWF0czsKIHVzZSBjcmF0 ZTo6aW5kZXg6OntDaHVua1JlYWRJbmZvLCBJbmRleEZpbGV9OwogdXNlIGNyYXRlOjpyZWFkX2No dW5rOjpSZWFkQ2h1bms7Ci11c2UgY3JhdGU6OntDaHVua2VyLCBDaHVua2VySW1wbH07CiAKIC8v LyBIZWFkZXIgZm9ybWF0IGRlZmluaXRpb24gZm9yIGR5bmFtaWMgaW5kZXggZmlsZXMgKGAuZGl4 ZGApCiAjW3JlcHIoQyldCkBAIC0yNzUsNyArMjcyLDYgQEAgaW1wbCBJbmRleEZpbGUgZm9yIER5 bmFtaWNJbmRleFJlYWRlciB7CiAKIC8vLyBDcmVhdGUgZHluYW1pYyBpbmRleCBmaWxlcyAoYC5k aXhkYCkKIHB1YiBzdHJ1Y3QgRHluYW1pY0luZGV4V3JpdGVyIHsKLSAgICBzdG9yZTogQXJjPENo dW5rU3RvcmU+LAogICAgIHdyaXRlcjogQnVmV3JpdGVyPEZpbGU+LAogICAgIGNsb3NlZDogYm9v bCwKICAgICBmaWxlbmFtZTogUGF0aEJ1ZiwKQEAgLTMyMSw3ICszMTcsNiBAQCBpbXBsIER5bmFt aWNJbmRleFdyaXRlciB7CiAgICAgICAgIGxldCBjc3VtID0gU29tZShvcGVuc3NsOjpzaGE6OlNo YTI1Njo6bmV3KCkpOwogCiAgICAgICAgIE9rKFNlbGYgewotICAgICAgICAgICAgc3RvcmUsCiAg ICAgICAgICAgICB3cml0ZXIsCiAgICAgICAgICAgICBjbG9zZWQ6IGZhbHNlLAogICAgICAgICAg ICAgZmlsZW5hbWU6IGZ1bGxfcGF0aCwKQEAgLTMzMiwxMSArMzI3LDYgQEAgaW1wbCBEeW5hbWlj SW5kZXhXcml0ZXIgewogICAgICAgICB9KQogICAgIH0KIAotICAgIC8vIGZpeG1lOiB1c2UgYWRk X2NodW5rIGluc3RlYWQ/Ci0gICAgcHViIGZuIGluc2VydF9jaHVuaygmc2VsZiwgY2h1bms6ICZE YXRhQmxvYiwgZGlnZXN0OiAmW3U4OyAzMl0pIC0+IFJlc3VsdDwoYm9vbCwgdTY0KSwgRXJyb3I+ IHsKLSAgICAgICAgc2VsZi5zdG9yZS5pbnNlcnRfY2h1bmsoY2h1bmssIGRpZ2VzdCkKLSAgICB9 Ci0KICAgICBwdWIgZm4gY2xvc2UoJm11dCBzZWxmKSAtPiBSZXN1bHQ8W3U4OyAzMl0sIEVycm9y PiB7CiAgICAgICAgIGlmIHNlbGYuY2xvc2VkIHsKICAgICAgICAgICAgIGJhaWwhKApAQCAtMzg3 LDEzOCArMzc3LDYgQEAgaW1wbCBEeW5hbWljSW5kZXhXcml0ZXIgewogICAgIH0KIH0KIAotLy8v IFdyaXRlciB3aGljaCBzcGxpdHMgYSBiaW5hcnkgc3RyZWFtIGludG8gZHluYW1pYyBzaXplZCBj aHVua3MKLS8vLwotLy8vIEFuZCBzdG9yZSB0aGUgcmVzdWx0aW5nIGNodW5rIGxpc3QgaW50byB0 aGUgaW5kZXggZmlsZS4KLXB1YiBzdHJ1Y3QgRHluYW1pY0NodW5rV3JpdGVyIHsKLSAgICBpbmRl eDogRHluYW1pY0luZGV4V3JpdGVyLAotICAgIGNsb3NlZDogYm9vbCwKLSAgICBjaHVua2VyOiBD aHVua2VySW1wbCwKLSAgICBzdGF0OiBDaHVua1N0YXQsCi0gICAgY2h1bmtfb2Zmc2V0OiB1c2l6 ZSwKLSAgICBsYXN0X2NodW5rOiB1c2l6ZSwKLSAgICBjaHVua19idWZmZXI6IFZlYzx1OD4sCi19 Ci0KLWltcGwgRHluYW1pY0NodW5rV3JpdGVyIHsKLSAgICBwdWIgZm4gbmV3KGluZGV4OiBEeW5h bWljSW5kZXhXcml0ZXIsIGNodW5rX3NpemU6IHVzaXplKSAtPiBTZWxmIHsKLSAgICAgICAgU2Vs ZiB7Ci0gICAgICAgICAgICBpbmRleCwKLSAgICAgICAgICAgIGNsb3NlZDogZmFsc2UsCi0gICAg ICAgICAgICBjaHVua2VyOiBDaHVua2VySW1wbDo6bmV3KGNodW5rX3NpemUpLAotICAgICAgICAg ICAgc3RhdDogQ2h1bmtTdGF0OjpuZXcoMCksCi0gICAgICAgICAgICBjaHVua19vZmZzZXQ6IDAs Ci0gICAgICAgICAgICBsYXN0X2NodW5rOiAwLAotICAgICAgICAgICAgY2h1bmtfYnVmZmVyOiBW ZWM6OndpdGhfY2FwYWNpdHkoY2h1bmtfc2l6ZSAqIDQpLAotICAgICAgICB9Ci0gICAgfQotCi0g ICAgcHViIGZuIHN0YXQoJnNlbGYpIC0+ICZDaHVua1N0YXQgewotICAgICAgICAmc2VsZi5zdGF0 Ci0gICAgfQotCi0gICAgcHViIGZuIGNsb3NlKCZtdXQgc2VsZikgLT4gUmVzdWx0PCgpLCBFcnJv cj4gewotICAgICAgICBpZiBzZWxmLmNsb3NlZCB7Ci0gICAgICAgICAgICByZXR1cm4gT2soKCkp OwotICAgICAgICB9Ci0KLSAgICAgICAgc2VsZi5jbG9zZWQgPSB0cnVlOwotCi0gICAgICAgIHNl bGYud3JpdGVfY2h1bmtfYnVmZmVyKCk/OwotCi0gICAgICAgIHNlbGYuaW5kZXguY2xvc2UoKT87 Ci0KLSAgICAgICAgc2VsZi5zdGF0LnNpemUgPSBzZWxmLmNodW5rX29mZnNldCBhcyB1NjQ7Ci0K LSAgICAgICAgLy8gYWRkIHNpemUgb2YgaW5kZXggZmlsZQotICAgICAgICBzZWxmLnN0YXQuc2l6 ZSArPQotICAgICAgICAgICAgKHNlbGYuc3RhdC5jaHVua19jb3VudCAqIDQwICsgc3RkOjptZW06 OnNpemVfb2Y6OjxEeW5hbWljSW5kZXhIZWFkZXI+KCkpIGFzIHU2NDsKLQotICAgICAgICBPaygo KSkKLSAgICB9Ci0KLSAgICBmbiB3cml0ZV9jaHVua19idWZmZXIoJm11dCBzZWxmKSAtPiBSZXN1 bHQ8KCksIEVycm9yPiB7Ci0gICAgICAgIGxldCBjaHVua19zaXplID0gc2VsZi5jaHVua19idWZm ZXIubGVuKCk7Ci0KLSAgICAgICAgaWYgY2h1bmtfc2l6ZSA9PSAwIHsKLSAgICAgICAgICAgIHJl dHVybiBPaygoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgZXhwZWN0ZWRfY2h1bmtfc2l6 ZSA9IHNlbGYuY2h1bmtfb2Zmc2V0IC0gc2VsZi5sYXN0X2NodW5rOwotICAgICAgICBpZiBleHBl Y3RlZF9jaHVua19zaXplICE9IHNlbGYuY2h1bmtfYnVmZmVyLmxlbigpIHsKLSAgICAgICAgICAg IGJhaWwhKCJ3cm9uZyBjaHVuayBzaXplIHt9ICE9IHt9IiwgZXhwZWN0ZWRfY2h1bmtfc2l6ZSwg Y2h1bmtfc2l6ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzZWxmLnN0YXQuY2h1bmtfY291bnQg Kz0gMTsKLQotICAgICAgICBzZWxmLmxhc3RfY2h1bmsgPSBzZWxmLmNodW5rX29mZnNldDsKLQot ICAgICAgICBsZXQgKGNodW5rLCBkaWdlc3QpID0gRGF0YUNodW5rQnVpbGRlcjo6bmV3KCZzZWxm LmNodW5rX2J1ZmZlcikKLSAgICAgICAgICAgIC5jb21wcmVzcyh0cnVlKQotICAgICAgICAgICAg LmJ1aWxkKCk/OwotCi0gICAgICAgIG1hdGNoIHNlbGYuaW5kZXguaW5zZXJ0X2NodW5rKCZjaHVu aywgJmRpZ2VzdCkgewotICAgICAgICAgICAgT2soKGlzX2R1cGxpY2F0ZSwgY29tcHJlc3NlZF9z aXplKSkgPT4gewotICAgICAgICAgICAgICAgIHNlbGYuc3RhdC5jb21wcmVzc2VkX3NpemUgKz0g Y29tcHJlc3NlZF9zaXplOwotICAgICAgICAgICAgICAgIGlmIGlzX2R1cGxpY2F0ZSB7Ci0gICAg ICAgICAgICAgICAgICAgIHNlbGYuc3RhdC5kdXBsaWNhdGVfY2h1bmtzICs9IDE7Ci0gICAgICAg ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0LmRpc2tfc2l6 ZSArPSBjb21wcmVzc2VkX3NpemU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg ICAgbG9nOjppbmZvISgKLSAgICAgICAgICAgICAgICAgICAgIkFERCBDSFVOSyB7OjAxNnh9IHt9 IHt9JSB7fSB7fSIsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuY2h1bmtfb2Zmc2V0LAotICAg ICAgICAgICAgICAgICAgICBjaHVua19zaXplLAotICAgICAgICAgICAgICAgICAgICAoY29tcHJl c3NlZF9zaXplICogMTAwKSAvIChjaHVua19zaXplIGFzIHU2NCksCi0gICAgICAgICAgICAgICAg ICAgIGlzX2R1cGxpY2F0ZSwKLSAgICAgICAgICAgICAgICAgICAgaGV4OjplbmNvZGUoZGlnZXN0 KQotICAgICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICAgICAgc2VsZi5pbmRleC5hZGRfY2h1 bmsoc2VsZi5jaHVua19vZmZzZXQgYXMgdTY0LCAmZGlnZXN0KT87Ci0gICAgICAgICAgICAgICAg c2VsZi5jaHVua19idWZmZXIudHJ1bmNhdGUoMCk7Ci0gICAgICAgICAgICAgICAgT2soKCkpCi0g ICAgICAgICAgICB9Ci0gICAgICAgICAgICBFcnIoZXJyKSA9PiB7Ci0gICAgICAgICAgICAgICAg c2VsZi5jaHVua19idWZmZXIudHJ1bmNhdGUoMCk7Ci0gICAgICAgICAgICAgICAgRXJyKGVycikK LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQotaW1wbCBXcml0ZSBmb3IgRHlu YW1pY0NodW5rV3JpdGVyIHsKLSAgICBmbiB3cml0ZSgmbXV0IHNlbGYsIGRhdGE6ICZbdThdKSAt PiBzdGQ6OnJlc3VsdDo6UmVzdWx0PHVzaXplLCBzdGQ6OmlvOjpFcnJvcj4gewotICAgICAgICBs ZXQgY2h1bmtlciA9ICZtdXQgc2VsZi5jaHVua2VyOwotCi0gICAgICAgIGxldCBjdHggPSBjcmF0 ZTo6Y2h1bmtlcjo6Q29udGV4dDo6ZGVmYXVsdCgpOwotICAgICAgICBsZXQgcG9zID0gY2h1bmtl ci5zY2FuKGRhdGEsICZjdHgpOwotCi0gICAgICAgIGlmIHBvcyA+IDAgewotICAgICAgICAgICAg c2VsZi5jaHVua19idWZmZXIuZXh0ZW5kX2Zyb21fc2xpY2UoJmRhdGFbMC4ucG9zXSk7Ci0gICAg ICAgICAgICBzZWxmLmNodW5rX29mZnNldCArPSBwb3M7Ci0KLSAgICAgICAgICAgIGlmIGxldCBF cnIoZXJyKSA9IHNlbGYud3JpdGVfY2h1bmtfYnVmZmVyKCkgewotICAgICAgICAgICAgICAgIHJl dHVybiBFcnIoc3RkOjppbzo6RXJyb3I6Om5ldygKLSAgICAgICAgICAgICAgICAgICAgc3RkOjpp bzo6RXJyb3JLaW5kOjpPdGhlciwKLSAgICAgICAgICAgICAgICAgICAgZXJyLnRvX3N0cmluZygp LAotICAgICAgICAgICAgICAgICkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgT2socG9z KQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2VsZi5jaHVua19vZmZzZXQgKz0gZGF0 YS5sZW4oKTsKLSAgICAgICAgICAgIHNlbGYuY2h1bmtfYnVmZmVyLmV4dGVuZF9mcm9tX3NsaWNl KGRhdGEpOwotICAgICAgICAgICAgT2soZGF0YS5sZW4oKSkKLSAgICAgICAgfQotICAgIH0KLQot ICAgIGZuIGZsdXNoKCZtdXQgc2VsZikgLT4gc3RkOjpyZXN1bHQ6OlJlc3VsdDwoKSwgc3RkOjpp bzo6RXJyb3I+IHsKLSAgICAgICAgRXJyKHN0ZDo6aW86OkVycm9yOjpuZXcoCi0gICAgICAgICAg ICBzdGQ6OmlvOjpFcnJvcktpbmQ6Ok90aGVyLAotICAgICAgICAgICAgInBsZWFzZSB1c2UgY2xv c2UoKSBpbnN0ZWFkIG9mIGZsdXNoKCkiLAotICAgICAgICApKQotICAgIH0KLX0KLQogc3RydWN0 IENhY2hlZENodW5rIHsKICAgICByYW5nZTogUmFuZ2U8dTY0PiwKICAgICBkYXRhOiBWZWM8dTg+ LApkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvZml4ZWRfaW5kZXgucnMgYi9wYnMtZGF0 YXN0b3JlL3NyYy9maXhlZF9pbmRleC5ycwppbmRleCAwZjI4OTU0M2YuLjZjM2JlMmQ0OSAxMDA2 NDQKLS0tIGEvcGJzLWRhdGFzdG9yZS9zcmMvZml4ZWRfaW5kZXgucnMKKysrIGIvcGJzLWRhdGFz dG9yZS9zcmMvZml4ZWRfaW5kZXgucnMKQEAgLTExLDkgKzExLDcgQEAgdXNlIGFueWhvdzo6e2Jh aWwsIGZvcm1hdF9lcnIsIEVycm9yfTsKIHVzZSBwcm94bW94X2lvOjpSZWFkRXh0OwogdXNlIHBy b3htb3hfdXVpZDo6VXVpZDsKIAotdXNlIGNyYXRlOjpjaHVua19zdGF0OjpDaHVua1N0YXQ7CiB1 c2UgY3JhdGU6OmNodW5rX3N0b3JlOjpDaHVua1N0b3JlOwotdXNlIGNyYXRlOjpkYXRhX2Jsb2I6 OkNodW5rSW5mbzsKIHVzZSBjcmF0ZTo6ZmlsZV9mb3JtYXRzOwogdXNlIGNyYXRlOjppbmRleDo6 e0NodW5rUmVhZEluZm8sIEluZGV4RmlsZX07CiAKQEAgLTIxNSw3ICsyMTMsNiBAQCBpbXBsIElu ZGV4RmlsZSBmb3IgRml4ZWRJbmRleFJlYWRlciB7CiB9CiAKIHB1YiBzdHJ1Y3QgRml4ZWRJbmRl eFdyaXRlciB7Ci0gICAgc3RvcmU6IEFyYzxDaHVua1N0b3JlPiwKICAgICBmaWxlOiBGaWxlLAog ICAgIGZpbGVuYW1lOiBQYXRoQnVmLAogICAgIHRtcF9maWxlbmFtZTogUGF0aEJ1ZiwKQEAgLTMw Miw3ICsyOTksNiBAQCBpbXBsIEZpeGVkSW5kZXhXcml0ZXIgewogICAgICAgICAuY2FzdDo6PHU4 PigpOwogCiAgICAgICAgIE9rKFNlbGYgewotICAgICAgICAgICAgc3RvcmUsCiAgICAgICAgICAg ICBmaWxlLAogICAgICAgICAgICAgZmlsZW5hbWU6IGZ1bGxfcGF0aCwKICAgICAgICAgICAgIHRt cF9maWxlbmFtZTogdG1wX3BhdGgsCkBAIC0zODgsNDAgKzM4NCw2IEBAIGltcGwgRml4ZWRJbmRl eFdyaXRlciB7CiAgICAgICAgIE9rKHBvcyAvIHNlbGYuY2h1bmtfc2l6ZSkKICAgICB9CiAKLSAg ICAvLyBOb3RlOiBXZSB3YW50IHRvIGFkZCBkYXRhIG91dCBvZiBvcmRlciwgc28gZG8gbm90IGFz c3VtZSBhbnkgb3JkZXIgaGVyZS4KLSAgICBwdWIgZm4gYWRkX2NodW5rKCZtdXQgc2VsZiwgY2h1 bmtfaW5mbzogJkNodW5rSW5mbywgc3RhdDogJm11dCBDaHVua1N0YXQpIC0+IFJlc3VsdDwoKSwg RXJyb3I+IHsKLSAgICAgICAgbGV0IGNodW5rX2xlbiA9IGNodW5rX2luZm8uY2h1bmtfbGVuIGFz IHVzaXplOwotICAgICAgICBsZXQgb2Zmc2V0ID0gY2h1bmtfaW5mby5vZmZzZXQgYXMgdXNpemU7 IC8vIGVuZCBvZiBjaHVuawotCi0gICAgICAgIGxldCBpZHggPSBzZWxmLmNoZWNrX2NodW5rX2Fs aWdubWVudChvZmZzZXQsIGNodW5rX2xlbik/OwotCi0gICAgICAgIGxldCAoaXNfZHVwbGljYXRl LCBjb21wcmVzc2VkX3NpemUpID0gc2VsZgotICAgICAgICAgICAgLnN0b3JlCi0gICAgICAgICAg ICAuaW5zZXJ0X2NodW5rKCZjaHVua19pbmZvLmNodW5rLCAmY2h1bmtfaW5mby5kaWdlc3QpPzsK LQotICAgICAgICBzdGF0LmNodW5rX2NvdW50ICs9IDE7Ci0gICAgICAgIHN0YXQuY29tcHJlc3Nl ZF9zaXplICs9IGNvbXByZXNzZWRfc2l6ZTsKLQotICAgICAgICBsZXQgZGlnZXN0ID0gJmNodW5r X2luZm8uZGlnZXN0OwotCi0gICAgICAgIGxvZzo6aW5mbyEoCi0gICAgICAgICAgICAiQUREIENI VU5LIHt9IHt9IHt9JSB7fSB7fSIsCi0gICAgICAgICAgICBpZHgsCi0gICAgICAgICAgICBjaHVu a19sZW4sCi0gICAgICAgICAgICAoY29tcHJlc3NlZF9zaXplICogMTAwKSAvIChjaHVua19sZW4g YXMgdTY0KSwKLSAgICAgICAgICAgIGlzX2R1cGxpY2F0ZSwKLSAgICAgICAgICAgIGhleDo6ZW5j b2RlKGRpZ2VzdCkKLSAgICAgICAgKTsKLQotICAgICAgICBpZiBpc19kdXBsaWNhdGUgewotICAg ICAgICAgICAgc3RhdC5kdXBsaWNhdGVfY2h1bmtzICs9IDE7Ci0gICAgICAgIH0gZWxzZSB7Ci0g ICAgICAgICAgICBzdGF0LmRpc2tfc2l6ZSArPSBjb21wcmVzc2VkX3NpemU7Ci0gICAgICAgIH0K LQotICAgICAgICBzZWxmLmFkZF9kaWdlc3QoaWR4LCBkaWdlc3QpCi0gICAgfQotCiAgICAgcHVi IGZuIGFkZF9kaWdlc3QoJm11dCBzZWxmLCBpbmRleDogdXNpemUsIGRpZ2VzdDogJlt1ODsgMzJd KSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgICAgIGlmIGluZGV4ID49IHNlbGYuaW5kZXhf bGVuZ3RoIHsKICAgICAgICAgICAgIGJhaWwhKAotLSAKMi40Ny4zCgoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QK cGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dp LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=