From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-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 38BF31FF16E for <inbox@lore.proxmox.com>; Mon, 31 Mar 2025 15:23:56 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2D70B58D3; Mon, 31 Mar 2025 15:21:17 +0200 (CEST) From: Fiona Ebner <f.ebner@proxmox.com> To: pve-devel@lists.proxmox.com Date: Mon, 31 Mar 2025 15:20:17 +0200 Message-Id: <20250331132020.105324-35-f.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250331132020.105324-1-f.ebner@proxmox.com> References: <20250331132020.105324-1-f.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.039 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: [pve-devel] [PATCH container v6 34/37] restore tar archive: check potentially untrusted archive X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> J3RhcicgaXRzZWxmIGFscmVhZHkgcHJvdGVjdHMgYWdhaW5zdCAnLi4nIGluIGNvbXBvbmVudCBu YW1lcyBhbmQKc3RyaXBzIGFic29sdXRlIG1lbWJlciBuYW1lcyB3aGVuIGV4dHJhY3RpbmcgKGlm IG5vdCB1c2VkIHdpdGggdGhlCi0tYWJzb2x1dGUtbmFtZXMgb3B0aW9uKSBhbmQgaW4gZ2VuZXJh bCBzZWVtcyBzYW5lIGZvciBleHRyYWN0aW5nLgpBZGRpdGlvbmFsbHksIHRoZSBleHRyYWN0aW9u IGFscmVhZHkgaGFwcGVucyBpbiB0aGUgdXNlciBuYW1lc3BhY2UKYXNzb2NpYXRlZCB0byB0aGUg Y29udGFpbmVyLiBTbyBmb3Igbm93LCBzdGFydCBvdXQgd2l0aCBzb21lIGJhc2ljCnNhbml0eSBj aGVja3MuIFRoZSBoZWxwZXIgY2FuIHN0aWxsIGJlIGV4dGVuZGVkIHdpdGggbW9yZSBjaGVja3Mu CgpDaGVja3M6CgoqIGxpc3QgZmlsZXMgaW4gYXJjaGl2ZSAtIHdpbGwgYWxyZWFkeSBjYXRjaCBt YW55IGNvcnJ1cHRlZC9ib2d1cwogIGFyY2hpdmVzLgoKKiBjaGVjayB0aGF0IHRoZXJlIGFyZSBh dCBsZWFzdCAxMCBtZW1iZXJzIC0gc2hvdWxkIGFsc28gY2F0Y2gKICBhcmNoaXZlcyBub3QgYWN0 dWFsbHkgY29udGFpbmluZyBhIGNvbnRhaW5lciByb290IGZpbGVzeXN0ZW0gb3IKICBzdHJ1Y3R1 cmFsIGlzc3VlcyBlYXJseS4KCiogY2hlY2sgdGhhdCAvc2JpbiBkaXJlY3Rvcnkgb3IgbGluayBl eGlzdHMgaW4gYXJjaGl2ZSAtIGlkZWFsbHkgdGhlCiAgY2hlY2sgd291bGQgYmUgZm9yIC9zYmlu L2luaXQsIGJ1dCB0aGlzIGNhbm5vdCBiZSBkb25lIGVmZmljaWVudGx5CiAgYmVmb3JlIGV4dHJh Y3Rpb24sIGJlY2F1c2UgaXQgd291bGQgcmVxdWlyZSB0byBrZWVwIHRyYWNrIG9mIHRoZQogIHdo b2xlIGFyY2hpdmUgdG8gYmUgYWJsZSB0byBmb2xsb3cgc3ltbGlua3MuCgoqIGFib3J0IGlmIHRo ZXJlIGlzIGEgbXVsdGktdm9sdW1lIG1lbWJlciBpbiB0aGUgYXJjaGl2ZSAtIGNoZWFwIGFuZAog IGlzIG5ldmVyIGV4cGVjdGVkLgoKQ2hlY2tzIHRoYXQgd2VyZSBjb25zaWRlcmVkLCBidXQgbm90 ICh5ZXQpIGFkZGVkOgoKKiBhYm9ydCB3aGVuIGEgZmlsZSBoYXMgdW5yZWFsaXN0aWNhbGx5IGxh cmdlIHNpemUgLSB3aGlsZSB0aGlzIGNvdWxkCiAgaGVscCB0byBkZXRlY3QgY2VydGFpbiBraW5k cyBvZiBib2d1cyBhcmNoaXZlcywgdGhlcmUgY2FuIGJlIHZhbGlkLgogIHVzZSBjYXNlcyBmb3Ig ZXh0cmVtZWx5IGxhcmdlIHNwYXJzZSBmaWxlcywgc28gaXQncyBub3QgY2xlYXIgd2hhdAogIGEg Z29vZCBsaW1pdCB3b3VsZCBiZSAoMSBFaUIgbWF5YmU/KS4gQWxzbywgYW4gYXR0YWNrZXIgY291 bGQganVzdAogIGFkYXB0IHRvIHN1Y2ggYSBsaW1pdCBjcmVhdGluZyBtdWx0aXBsZSBmaWxlcyBh bmQgdGhlIGFjdHVhbAogIGV4dHJhY3Rpb24gaXMgYWxyZWFkeSBsaW1pdGVkIGJ5IHRoZSBzaXpl IG9mIHRoZSBhbGxvY2F0ZWQgY29udGFpbmVyCiAgdm9sdW1lLgoKKiBjaGVjayB0aGF0IC9zYmlu L2luaXQgZXhpc3RzIGFmdGVyIGV4dHJhY3RpbmcgLSBjYW5ub3QgYmUgZG9uZQogIGVmZmljaWVu dGx5IGJlZm9yZSBleHRyYWN0aW9uLCBiZWNhdXNlIGl0IHdvdWxkIHJlcXVpcmUgdG8ga2VlcAog IHRyYWNrIG9mIHRoZSB3aG9sZSBhcmNoaXZlIHRvIGJlIGFibGUgdG8gZm9sbG93IHN5bWxpbmtz LiBEdXJpbmcKICBzZXR1cCB0aGVyZSBhbHJlYWR5IGlzIGRldGVjdGlvbiBvZiAvZXRjL29zLXJl bGVhc2UsIHNvIGlzc3VlcyB3aXRoCiAgdGhlIHN0cnVjdHVyZSB3aWxsIGFscmVhZHkgYmUgbm90 aWNlZC4gQWRkaW5nIGEgaGFyZCBmYWlsIGZvcgogIHVudHJ1c3RlZCBhcmNoaXZlcyB3b3VsZCBy ZXF1aXJlIGVpdGhlciBwYXNzaW5nIHRoYXQgaW5mb3JtYXRpb24gdG8KICB0aGUgc2V0dXAgcGhh c2Ugb3IgZXh0cmFjdGluZyB0aGUgcHJvdGVjdGVkX2NhbGwgbWV0aG9kIGZyb20gdGhlcmUKICBp bnRvIGEgaGVscGVyLgoKKiBhZGRpbmcgJ3Jlc3RyaWN0JyB0byB0aGUgKGNvbW1vbikgdGFyIGZs YWdzIC0gdGhlIHRhciBtYW51YWwgKG5vdAogIHRoZSBtYW4gcGFnZSkgZG9jdW1lbnRzOiAiRGlz YWJsZSB1c2Ugb2Ygc29tZSBwb3RlbnRpYWxseSBoYXJtZnVsCiAgJ3Rhcicgb3B0aW9ucy4gIEN1 cnJlbnRseSB0aGlzIG9wdGlvbiBkaXNhYmxlcyBzaGVsbCBpbnZvY2F0aW9uIGZyb20KICBtdWx0 aS12b2x1bWUgbWVudS4iLiBUaGUgZmxhZyB3YXMgaW50cm9kdWNlZCBpbiAyMDA1IGFuZCB0aGlz IGlzCiAgc3RpbGwgdGhlIG9ubHkgdGhpbmcgaXQgaXMgdXNlZCBmb3IuIFRyeWluZyB0byByZXN0 b3JlIGEKICBtdWx0aS12b2x1bWUgYXJjaGl2ZSBhbHJlYWR5IGZhaWxzIHdpdGhvdXQgZ2l2aW5n IG11bHRpcGxlICctLWZpbGUnCiAgYXJndW1lbnRzIGFuZCAnLS1tdWx0aS12b2x1bWUnLCBzbyBk b24ndCBib3RoZXIgYWRkaW5nIHRoZSBmbGFnLgoKKiBjaGVjayBmb3JtYXQgb2YgdGFyIGZpbGUg LSB3b3VsZCByZXF1aXJlIHlldCBhbm90aGVyIGludm9jYXRpb24gb2YKICB0aGUgZGVjb21wcmVz c29yIGFuZCB0aGVyZSBzZWVtcyB0byBiZSBubyBidWlsdC1pbiB3YXkgdG8ganVzdAogIGRpc3Bs YXkgdGhlIGZvcm1hdCB3aXRoICd0YXInLiBUaGUgJ2ZpbGUnIHByb2dyYW0gY291bGQgYmUgdXNl ZCwgYnV0CiAgaXQgc2VlbXMgdG8gbm90IG1ha2UgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIG9sZCBH TlUgYW5kIEdOVSBhbmQgb2xkCiAgUE9TSVggYW5kIFBPU0lYIGZvcm1hdHMsIHdpdGggdGhlIG9s ZCBvbmVzIGJlaW5nIGNhbmRpZGF0ZXMgdG8KICBwcm9oaWJpdC4gU28gdGhhdCB3b3VsZCBsZWF2 ZSBqdXN0IGRldGVjdGluZyB0aGUgb2xkICd2NycgZm9ybWF0LgoKU3VnZ2VzdGVkLWJ5OiBGYWJp YW4gR3LDvG5iaWNobGVyIDxmLmdydWVuYmljaGxlckBwcm94bW94LmNvbT4KU2lnbmVkLW9mZi1i eTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+Ci0tLQogc3JjL1BWRS9MWEMvQ3Jl YXRlLnBtIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL1BWRS9MWEMvQ3JlYXRlLnBtIGIvc3JjL1BWRS9MWEMvQ3JlYXRlLnBtCmluZGV4 IDQzZmM1ZmUuLjUzYzU4NGIgMTAwNjQ0Ci0tLSBhL3NyYy9QVkUvTFhDL0NyZWF0ZS5wbQorKysg Yi9zcmMvUFZFL0xYQy9DcmVhdGUucG0KQEAgLTk5LDEyICs5OSw3MyBAQCBteSBzdWIgdGFyX2Nv bXByZXNzaW9uX29wdGlvbiB7CiAgICAgfQogfQogCisjIEJhc2ljIGNoZWNrcyB0cnlpbmcgdG8g ZGV0ZWN0IGlzc3VlcyB3aXRoIGEgcG90ZW50aWFsbHkgdW50cnVzdGVkIG9yIGJvZ3VzIHRhciBh cmNoaXZlLgorIyBKdXN0IGxpc3RpbmcgdGhlIGZpbGVzIGlzIGFscmVhZHkgYSBnb29kIGNoZWNr IGFnYWluc3QgY29ycnVwdGlvbi4KKyMgJ3RhcicgaXRzZWxmIGFscmVhZHkgcHJvdGVjdHMgYWdh aW5zdCAnLi4nIGluIGNvbXBvbmVudCBuYW1lcyBhbmQgc3RyaXBzIGFic29sdXRlIG1lbWJlciBu YW1lcworIyB3aGVuIGV4dHJhY3RpbmcsIHNvIG5vIG5lZWQgdG8gY2hlY2sgZm9yIHRob3NlIGhl cmUuCitteSBzdWIgY2hlY2tfdGFyX2FyY2hpdmUgeworICAgIG15ICgkYXJjaGl2ZSkgPSBAXzsK KworICAgIHByaW50ICJjaGVja2luZyBhcmNoaXZlLi5cbiI7CisKKyAgICAjIFRvIHJlc29sdmUg bGlua3MgdG8gZ2V0IHRvICdzYmluL2luaXQnIHdvdWxkIG1lYW4ga2VlcGluZyB0cmFjayBvZiBl dmVyeXRoaW5nIGluIHRoZSBhcmNoaXZlLAorICAgICMgYmVjYXVzZSB0aGUgdGFyZ2V0IG1pZ2h0 IGJlIG9yZGVyZWQgZmlyc3QuIENoZWNrIG9ubHkgdGhhdCAnc2JpbicgZXhpc3RzIGhlcmUuCisg ICAgbXkgJGZvdW5kX3NiaW47CisKKyAgICAjIEp1c3QgdG8gZGV0ZWN0IGJvZ3VzIGFyY2hpdmVz LCBhbnkgdmFsaWQgY29udGFpbmVyIGZpbGVzeXN0ZW0gc2hvdWxkIGhhdmUgbW9yZSB0aGFuIHRo aXMuCisgICAgbXkgJHJlcXVpcmVkX21lbWJlcnMgPSAxMDsKKyAgICBteSAkbWVtYmVyX2NvdW50 ID0gMDsKKworICAgIG15ICRjaGVja19maWxlX2xpc3QgPSBzdWIgeworCW15ICgkbGluZSkgPSBA XzsKKworCSRtZW1iZXJfY291bnQrKzsKKworCSMgTm90IGFsd2F5cyBqdXN0IGEgc2luZ2xlIG51 bWJlciwgZS5nLiBmb3IgY2hhcmFjdGVyIGRldmljZXMuCisJbXkgJHNpemVfcmUgPSBxci9cZCso PzosXGQrKT8vOworCisJIyBUaGUgZGF0ZSBpcyBpbiBJU08gODYwMSBmb3JtYXQuIFRoZSBsYXN0 IHBhcnQgY29udGFpbnMgdGhlIHBvdGVudGlhbGx5IHF1b3RlZCBmaWxlIG5hbWUsCisJIyBwb3Rl bnRpYWxseSBmb2xsb3dlZCBieSBzb21lIGFkZGl0aW9uYWwgaW5mbyAoZS5nLiB3aGVyZSBhIGxp bmsgcG9pbnRzIHRvKS4KKwlteSAoJHR5cGUsICRwZXJtcywgJHVpZCwgJGdpZCwgJHNpemUsICRk YXRlLCAkdGltZSwgJGZpbGVfaW5mbykgPQorCSAgICAkbGluZSA9fiBtIV4oW2EtekEtWlwtXSko XFMrKVxzKyhcZCspLyhcZCspXHMrKCRzaXplX3JlKVxzKyhcUyspXHMrKFxTKylccysoLiopJCE7 CisJaWYgKCFkZWZpbmVkKCR0eXBlKSkgeworCSAgICBwcmludCAiY2hlY2sgdGFyOiB1bmFibGUg dG8gcGFyc2UgbGluZTogJGxpbmVcbiI7CisJICAgIHJldHVybjsKKwl9CisKKwlkaWUgImZvdW5k IG11bHRpLXZvbHVtZSBtZW1iZXIgaW4gYXJjaGl2ZVxuIiBpZiAkdHlwZSBlcSAnTSc7CisKKwlp ZiAoISRmb3VuZF9zYmluICYmICgKKwkgICAgKCRmaWxlX2luZm8gPX4gbSFeKD86XC4vKT9zYmlu LyQhICYmICR0eXBlIGVxICdkJykKKwkgICAgfHwgKCRmaWxlX2luZm8gPX4gbSFeKD86XC4vKT9z YmluIC0+ISAmJiAkdHlwZSBlcSAnbCcpCisJICAgIHx8ICgkZmlsZV9pbmZvID1+IG0hXig/Olwu Lyk/c2JpbiBsaW5rIHRvISAmJiAkdHlwZSBlcSAnaCcpCisJKSkgeworCSAgICAkZm91bmRfc2Jp biA9IDE7CisJfQorCisgICAgfTsKKworICAgIG15ICRjb21wcmVzc2lvbl9vcHQgPSB0YXJfY29t cHJlc3Npb25fb3B0aW9uKCRhcmNoaXZlKTsKKworICAgIG15ICRjbWQgPSBbJ3RhcicsICctdHZm JywgJGFyY2hpdmVdOworICAgIHB1c2ggJGNtZC0+QCosICRjb21wcmVzc2lvbl9vcHQgaWYgJGNv bXByZXNzaW9uX29wdDsKKyAgICBwdXNoICRjbWQtPkAqLCAnLS1udW1lcmljLW93bmVyJzsKKwor ICAgIFBWRTo6VG9vbHM6OnJ1bl9jb21tYW5kKCRjbWQsIG91dGZ1bmMgPT4gJGNoZWNrX2ZpbGVf bGlzdCk7CisKKyAgICBkaWUgIm5vICdzYmluJyBkaXJlY3RvcnkgKG9yIGxpbmspIGZvdW5kIGlu IGFyY2hpdmUgJyRhcmNoaXZlJ1xuIiBpZiAhJGZvdW5kX3NiaW47CisgICAgZGllICJsZXNzIHRo YW4gMTAgbWVtYmVycyBpbiBhcmNoaXZlICckYXJjaGl2ZSdcbiIgaWYgJG1lbWJlcl9jb3VudCA8 ICRyZXF1aXJlZF9tZW1iZXJzOworfQorCiBteSBzdWIgcmVzdG9yZV90YXJfYXJjaGl2ZV9jb21t YW5kIHsKLSAgICBteSAoJGNvbmYsICRjb21wcmVzc2lvbl9vcHQsICRyb290ZGlyLCAkYndsaW1p dCkgPSBAXzsKKyAgICBteSAoJGNvbmYsICRjb21wcmVzc2lvbl9vcHQsICRyb290ZGlyLCAkYnds aW1pdCwgJHVudHJ1c3RlZCkgPSBAXzsKIAogICAgIG15ICgkaWRfbWFwLCAkcm9vdF91aWQsICRy b290X2dpZCkgPSBQVkU6OkxYQzo6cGFyc2VfaWRfbWFwcygkY29uZik7CiAgICAgbXkgJHVzZXJu c19jbWQgPSBQVkU6OkxYQzo6dXNlcm5zX2NvbW1hbmQoJGlkX21hcCk7CiAKKyAgICBkaWUgInJl ZnVzaW5nIHRvIHJlc3RvcmUgcHJpdmlsZWdlZCBjb250YWluZXIgYmFja3VwIGZyb20gZXh0ZXJu YWwgc291cmNlXG4iCisJaWYgJHVudHJ1c3RlZCAmJiAoJHJvb3RfdWlkID09IDAgfHwgJHJvb3Rf Z2lkID09IDApOworCiAgICAgbXkgJGNtZCA9IFtAJHVzZXJuc19jbWQsICd0YXInLCAneHBmJywg Jy0nXTsKICAgICBwdXNoICRjbWQtPkAqLCAkY29tcHJlc3Npb25fb3B0IGlmICRjb21wcmVzc2lv bl9vcHQ7CiAgICAgcHVzaCAkY21kLT5AKiwgJy0tdG90YWxzJzsKQEAgLTEyNyw3ICsxODgsNyBA QCBteSBzdWIgcmVzdG9yZV90YXJfYXJjaGl2ZV9jb21tYW5kIHsKIH0KIAogc3ViIHJlc3RvcmVf dGFyX2FyY2hpdmUgewotICAgIG15ICgkYXJjaGl2ZSwgJHJvb3RkaXIsICRjb25mLCAkbm9fdW5w YWNrX2Vycm9yLCAkYndsaW1pdCkgPSBAXzsKKyAgICBteSAoJGFyY2hpdmUsICRyb290ZGlyLCAk Y29uZiwgJG5vX3VucGFja19lcnJvciwgJGJ3bGltaXQsICR1bnRydXN0ZWQpID0gQF87CiAKICAg ICBteSAkYXJjaGl2ZV9maDsKICAgICBteSAkdGFyX2lucHV0ID0gJzwmU1RESU4nOwpAQCAtMTQy LDcgKzIwMywxMiBAQCBzdWIgcmVzdG9yZV90YXJfYXJjaGl2ZSB7CiAJJHRhcl9pbnB1dCA9ICc8 JicuZmlsZW5vKCRhcmNoaXZlX2ZoKTsKICAgICB9CiAKLSAgICBteSAkY21kID0gcmVzdG9yZV90 YXJfYXJjaGl2ZV9jb21tYW5kKCRjb25mLCAkY29tcHJlc3Npb25fb3B0LCAkcm9vdGRpciwgJGJ3 bGltaXQpOworICAgIGlmICgkdW50cnVzdGVkKSB7CisJZGllICJjYW5ub3QgdmVyaWZ5IHVudHJ1 c3RlZCBhcmNoaXZlIG9uIFNURElOXG4iIGlmICRhcmNoaXZlIGVxICctJzsKKwljaGVja190YXJf YXJjaGl2ZSgkYXJjaGl2ZSk7CisgICAgfQorCisgICAgbXkgJGNtZCA9IHJlc3RvcmVfdGFyX2Fy Y2hpdmVfY29tbWFuZCgkY29uZiwgJGNvbXByZXNzaW9uX29wdCwgJHJvb3RkaXIsICRid2xpbWl0 LCAkdW50cnVzdGVkKTsKIAogICAgIGlmICgkYXJjaGl2ZSBlcSAnLScpIHsKIAlwcmludCAiZXh0 cmFjdGluZyBhcmNoaXZlIGZyb20gU1RESU5cbiI7CkBAIC0xNzAsNyArMjM2LDcgQEAgc3ViIHJl c3RvcmVfZXh0ZXJuYWxfYXJjaGl2ZSB7CiAJICAgIG15ICR0YXJfcGF0aCA9ICRpbmZvLT57J3Rh ci1wYXRoJ30KIAkJb3IgZGllICJkaWQgbm90IGdldCBwYXRoIHRvIHRhciBmaWxlIGZyb20gYmFj a3VwIHByb3ZpZGVyXG4iOwogCSAgICBkaWUgIm5vdCBhIHJlZ3VsYXIgZmlsZSAnJHRhcl9wYXRo JyIgaWYgIS1mICR0YXJfcGF0aDsKLQkgICAgcmVzdG9yZV90YXJfYXJjaGl2ZSgkdGFyX3BhdGgs ICRyb290ZGlyLCAkY29uZiwgJG5vX3VucGFja19lcnJvciwgJGJ3bGltaXQpOworCSAgICByZXN0 b3JlX3Rhcl9hcmNoaXZlKCR0YXJfcGF0aCwgJHJvb3RkaXIsICRjb25mLCAkbm9fdW5wYWNrX2Vy cm9yLCAkYndsaW1pdCwgMSk7CiAJfSBlbHNpZiAoJG1lY2hhbmlzbSBlcSAnZGlyZWN0b3J5Jykg ewogCSAgICBteSAkZGlyZWN0b3J5ID0gJGluZm8tPnsnYXJjaGl2ZS1kaXJlY3RvcnknfQogCQlv ciBkaWUgImRpZCBub3QgZ2V0IHBhdGggdG8gYXJjaGl2ZSBkaXJlY3RvcnkgZnJvbSBiYWNrdXAg cHJvdmlkZXJcbiI7CkBAIC0xODksNiArMjU1LDcgQEAgc3ViIHJlc3RvcmVfZXh0ZXJuYWxfYXJj aGl2ZSB7CiAJCScuJywKIAkgICAgXTsKIAorCSAgICAjIGFyY2hpdmUgaXMgdHJ1c3RlZCwgd2Ug Y3JlYXRlZCBpdAogCSAgICBteSAkZXh0cmFjdF9jbWQgPSByZXN0b3JlX3Rhcl9hcmNoaXZlX2Nv bW1hbmQoJGNvbmYsIHVuZGVmLCAkcm9vdGRpciwgJGJ3bGltaXQpOwogCiAJICAgIG15ICRjbWQ7 Ci0tIAoyLjM5LjUKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20K aHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRl dmVsCg==