From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id B53DB1FF172 for <inbox@lore.proxmox.com>; Wed, 16 Apr 2025 13:37:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 437DD34A23; Wed, 16 Apr 2025 13:37:19 +0200 (CEST) References: <20250326144410.430616-1-m.sandoval@proxmox.com> <yyqjnapm4rgrl6mle3wtxl3xafhecxnkyjrdoa6f2bifjhccj5@q5kujnnpexo2> User-agent: mu4e 1.10.8; emacs 30.1 From: Maximiliano Sandoval <m.sandoval@proxmox.com> To: Wolfgang Bumiller <w.bumiller@proxmox.com> Date: Wed, 16 Apr 2025 13:36:52 +0200 In-reply-to: <yyqjnapm4rgrl6mle3wtxl3xafhecxnkyjrdoa6f2bifjhccj5@q5kujnnpexo2> Message-ID: <s8o34e8gwwl.fsf@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.095 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [lib.rs, proxmox.com] Subject: Re: [pbs-devel] [PATCH proxmox] proxmox-client: add query builder X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Cc: pbs-devel@lists.proxmox.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> CldvbGZnYW5nIEJ1bWlsbGVyIDx3LmJ1bWlsbGVyQHByb3htb3guY29tPiB3cml0ZXM6Cgo+IE9u IFdlZCwgTWFyIDI2LCAyMDI1IGF0IDAzOjQ0OjEwUE0gKzAxMDAsIE1heGltaWxpYW5vIFNhbmRv dmFsIHdyb3RlOgo+PiBBIGJpZyBwcm9wb3J0aW9uIG9mIHRoZSBjb25zdW1lcnMgb2YgdGhpcyBB UEkgdXNlIHRoZSBgZm9ybWF0IWAgbWFjcm8gdG8KPj4gZGVmaW5lIHRoZSBiYXNlIG9mIHRoZSB1 cmwsIGhlbmNlIHdlIHVzZSBhIGBDb3c8J18sIHN0cj5gIG9uIHRoZQo+PiBjb25zdHJ1Y3RvciB0 byBwcmV2ZW50IHVubmVjZXNzYXJ5IGFsbG9jYXRpb25zLgo+PiAKPj4gQSBgcGVybC1hcGktcGF0 aC1idWlsZGVyYCBmZWF0dXJlIHdhcyBhZGRlZCB0byBzYXRpc2Z5IHRoZSBuZWVkcyBvZgo+PiBw dmUtYXBpLXR5cGVzLgo+PiAKPj4gU2lnbmVkLW9mZi1ieTogTWF4aW1pbGlhbm8gU2FuZG92YWwg PG0uc2FuZG92YWxAcHJveG1veC5jb20+Cj4+IC0tLQo+PiAKPj4gVGhpcyBpcyBhIGZvbGxvdy11 cCBvZiBbMV0uIEkgd2lsbCBzZW5kIHRoZSBmb2xsb3ctdXBzIHNlcGFyYXRlbHkuCj4+IAo+PiBE aWZmZXJlbmNlcyBmcm9tIHRoZSBSRkM6Cj4+ICAtIE1vcmUgZG9jcwo+PiAgLSBNb3JlIHRlc3Rz Cj4+ICAtIE1vdmVkIGludG8gcHJveG1veC1jbGllbnQKPj4gCj4+IFsxXSBodHRwczovL2xvcmUu cHJveG1veC5jb20vcGRtLWRldmVsLzdxaDVrY2htcmc0cmxhdmtvd3F4NDRqaWFtY3puYXJ4bjRr b254d3cyNHpqN21zdXV2QGdzaHFwcjRsZHh1aS9ULyN1Cj4+IAo+PiAgcHJveG1veC1jbGllbnQv Q2FyZ28udG9tbCAgICAgICAgICAgICAgfCAgIDUgKwo+PiAgcHJveG1veC1jbGllbnQvc3JjL2Fw aV9wYXRoX2J1aWxkZXIucnMgfCAyNDIgKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgcHJv eG1veC1jbGllbnQvc3JjL2xpYi5ycyAgICAgICAgICAgICAgfCAgIDQgKwo+PiAgMyBmaWxlcyBj aGFuZ2VkLCAyNTEgaW5zZXJ0aW9ucygrKQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gt Y2xpZW50L3NyYy9hcGlfcGF0aF9idWlsZGVyLnJzCj4+IAo+PiBkaWZmIC0tZ2l0IGEvcHJveG1v eC1jbGllbnQvQ2FyZ28udG9tbCBiL3Byb3htb3gtY2xpZW50L0NhcmdvLnRvbWwKPj4gaW5kZXgg Zjg5MDUwMWUuLjAyN2ZiZTNlIDEwMDY0NAo+PiAtLS0gYS9wcm94bW94LWNsaWVudC9DYXJnby50 b21sCj4+ICsrKyBiL3Byb3htb3gtY2xpZW50L0NhcmdvLnRvbWwKPj4gQEAgLTE0LDYgKzE0LDcg QEAgcmVwb3NpdG9yeS53b3Jrc3BhY2UgPSB0cnVlCj4+ICBhbnlob3cud29ya3NwYWNlID0gdHJ1 ZQo+PiAgaGV4LndvcmtzcGFjZSA9IHRydWUKPj4gIGh0dHAud29ya3NwYWNlID0gdHJ1ZQo+PiAr cGVyY2VudC1lbmNvZGluZy53b3Jrc3BhY2UgPSB0cnVlCj4+ICBzZXJkZS53b3Jrc3BhY2UgPSB0 cnVlCj4+ICBzZXJkZV9qc29uLndvcmtzcGFjZSA9IHRydWUKPj4gIAo+PiBAQCAtMjYsNyArMjcs MTEgQEAgcHJveG1veC1sb2dpbiA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJo dHRwIiBdIH0KPj4gIHByb3htb3gtaHR0cCA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgb3B0aW9uYWwg PSB0cnVlLCBmZWF0dXJlcyA9IFsgImNsaWVudCIgXSB9Cj4+ICBoeXBlciA9IHsgd29ya3NwYWNl ID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KPj4gIAo+PiArW2Rldi1kZXBlbmRlbmNpZXNdCj4+ ICtzZXJkZV9wbGFpbi53b3Jrc3BhY2UgPSB0cnVlCj4+ICsKPj4gIFtmZWF0dXJlc10KPj4gIGRl ZmF1bHQgPSBbXQo+PiAgaHlwZXItY2xpZW50ID0gWyAiZGVwOm9wZW5zc2wiLCAiZGVwOmh5cGVy IiwgImRlcDpwcm94bW94LWh0dHAiLCAiZGVwOmxvZyIgXQo+PiArcGVybC1hcGktcGF0aC1idWls ZGVyID0gW10KPj4gIHdlYmF1dGhuID0gWyAicHJveG1veC1sb2dpbi93ZWJhdXRobiIgXQo+PiBk aWZmIC0tZ2l0IGEvcHJveG1veC1jbGllbnQvc3JjL2FwaV9wYXRoX2J1aWxkZXIucnMgYi9wcm94 bW94LWNsaWVudC9zcmMvYXBpX3BhdGhfYnVpbGRlci5ycwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+PiBpbmRleCAwMDAwMDAwMC4uYmMyZGZkZTQKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9w cm94bW94LWNsaWVudC9zcmMvYXBpX3BhdGhfYnVpbGRlci5ycwo+PiBAQCAtMCwwICsxLDI0MiBA QAo+PiArdXNlIHN0ZDo6Ym9ycm93OjpDb3c7Cj4+ICsKPj4gKy8vLyBCdWlsZGVyIGZvciBBUEkg cGF0aHMgd2l0aCBhIHF1ZXJ5Lgo+PiArLy8vCj4+ICsvLy8gVGhlIFtTZWxmOjphcmddIG1ldGhv ZCBjYW4gYmUgdXNlZCB0byBhZGQgbXVsdGlwbGUgYXJndW1lbnRzIHRvIHRoZSBxdWVyeS4KPgo+ IE1pc3NpbmcgYGJhY2t0aWNrc2AgYXJvdW5kIGBTZWxmOjphcmdgLgo+Cj4gQWxzbywgbWF5YmUg dXNlICJbYGFyZ2BdKFNlbGY6OmFyZygpKSIgaW5zdGVhZD8KPgo+IFRoaXMgaGFwcGVucyB0aHJv dWdob3V0IHRoZSBjb2RlIGJlbG93Lgo+Cj4+ICsvLy8KPj4gKy8vLyBgYGBydXN0Cj4+ICsvLy8g dXNlIHByb3htb3hfY2xpZW50OjpBcGlQYXRoQnVpbGRlcjsKPj4gKy8vLwo+PiArLy8vIGxldCBz dG9yYWdlID0gIm15LXN0b3JhZ2UiOwo+PiArLy8vIGxldCB0YXJnZXQgPSAibXktdGFyZ2V0IjsK Pj4gKy8vLyBsZXQgbm9kZSA9ICJwdmUwMSI7Cj4+ICsvLy8gbGV0IHF1ZXJ5ID0gQXBpUGF0aEJ1 aWxkZXI6Om5ldyhmb3JtYXQhKCIvYXBpMi9leHRqcy9ub2Rlcy97bm9kZX0vc3RvcmFnZSIpKQo+ PiArLy8vICAgICAuYXJnKCJzdG9yYWdlIiwgc3RvcmFnZSkKPj4gKy8vLyAgICAgLmFyZygidGFy Z2V0IiwgdGFyZ2V0KQo+PiArLy8vICAgICAuYnVpbGQoKTsKPj4gKy8vLwo+PiArLy8vIGFzc2Vy dF9lcSEoJnF1ZXJ5LCAiL2FwaTIvZXh0anMvbm9kZXMvcHZlMDEvc3RvcmFnZT9zdG9yYWdlPW15 JTJEc3RvcmFnZSZ0YXJnZXQ9bXklMkR0YXJnZXQiKTsKPj4gKy8vLyBgYGAKPj4gKy8vLwo+PiAr Ly8vICMjIENvbXBhdGliaWxpdHkgd2l0aCBwZXJsIEhUVFAgc2VydmVycwo+PiArLy8vCj4+ICsv Ly8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSBhZGRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRo IHBlcmwgSFRUUCBzZXJ2ZXJzLgo+PiArLy8vCj4+ICsvLy8gLSBgYm9vbF9hcmdgOiB0cmFuc2xh dGVzIGJvb2xlYW5zIHRvIGAiMCJgL2AiMSJgCj4+ICsvLy8gLSBgbGlzdF9hcmdgOiBzcGxpdCBs aXN0cyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZlZWQgdG8gcGVybCdzIGBzcGxpdF9saXN0KClgCj4+ ICsvLy8KPj4gKy8vLyBUaGVzZSBtZXRob2RzIHJlcXVpcmUgdGhlIGBwZXJsLWFwaS1wYXRoLWJ1 aWxkZXJgIGZlYXR1cmUuCj4+ICtwdWIgc3RydWN0IEFwaVBhdGhCdWlsZGVyIHsKPj4gKyAgICB1 cmw6IFN0cmluZywKPj4gKyAgICBzZXBhcmF0b3I6IGNoYXIsCj4+ICt9Cj4+ICsKPj4gK2ltcGwg QXBpUGF0aEJ1aWxkZXIgewo+PiArICAgIC8vLyBDcmVhdGVzIGEgbmV3IGJ1aWxkZXIgZnJvbSBh IGJhc2UgcGF0aC4KPj4gKyAgICBwdWIgZm4gbmV3PCdhPihiYXNlOiBpbXBsIEludG88Q293PCdh LCBzdHI+PikgLT4gU2VsZiB7Cj4+ICsgICAgICAgIFNlbGYgewo+PiArICAgICAgICAgICAgdXJs OiBiYXNlLmludG8oKS5pbnRvX293bmVkKCksCj4+ICsgICAgICAgICAgICBzZXBhcmF0b3I6ICc/ JywKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKwo+PiArICAgIC8vLyBBZGRzIGFuIGFyZ3Vt ZW50IHRvIHRoZSBxdWVyeS4KPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gVGhlIG5hbWUgYW5kIHZh bHVlIHdpbGwgYmUgcGVyY2VudC1lbmNvZGVkLgo+PiArICAgIHB1YiBmbiBhcmc8VDogc3RkOjpm bXQ6OkRpc3BsYXk+KG11dCBzZWxmLCBuYW1lOiAmc3RyLCB2YWx1ZTogVCkgLT4gU2VsZiB7Cj4+ ICsgICAgICAgIHNlbGYucHVzaF9zZXBhcmF0b3JfYW5kX25hbWUobmFtZSk7Cj4+ICsgICAgICAg IHNlbGYucHVzaF9lbmNvZGVkKHZhbHVlLnRvX3N0cmluZygpLmFzX2J5dGVzKCkpOwo+PiArICAg ICAgICBzZWxmCj4+ICsgICAgfQo+PiArCj4+ICsgICAgLy8vIEFkZHMgYW4gb3B0aW9uYWwgYXJn dW1lbnQgdG8gdGhlIHF1ZXJ5Lgo+PiArICAgIC8vLwo+PiArICAgIC8vLyBEb2VzIG5vdGhpbmcg aWYgdGhlIHZhbHVlIGlzIGBOb25lYC4gU2VlIFtTZWxmOjphcmddIGZvciBtb3JlIGRldGFpbHMu Cj4+ICsgICAgcHViIGZuIG1heWJlX2FyZzxUOiBzdGQ6OmZtdDo6RGlzcGxheT4obXV0IHNlbGYs IG5hbWU6ICZzdHIsIHZhbHVlOiAmT3B0aW9uPFQ+KSAtPiBTZWxmIHsKPj4gKyAgICAgICAgaWYg bGV0IFNvbWUodmFsdWUpID0gdmFsdWUgewo+PiArICAgICAgICAgICAgc2VsZiA9IHNlbGYuYXJn KG5hbWUsIHZhbHVlKTsKPj4gKyAgICAgICAgfQo+PiArICAgICAgICBzZWxmCj4+ICsgICAgfQo+ PiArCj4+ICsgICAgLy8vIEJ1aWxkcyB0aGUgdXJsLgo+PiArICAgIHB1YiBmbiBidWlsZChzZWxm KSAtPiBTdHJpbmcgewo+PiArICAgICAgICBzZWxmLnVybAo+PiArICAgIH0KPj4gKwo+PiArICAg IGZuIHB1c2hfc2VwYXJhdG9yX2FuZF9uYW1lKCZtdXQgc2VsZiwgbmFtZTogJnN0cikgewo+PiAr ICAgICAgICBzZWxmLnVybC5wdXNoKHNlbGYuc2VwYXJhdG9yKTsKPj4gKyAgICAgICAgc2VsZi5z ZXBhcmF0b3IgPSAnJic7Cj4+ICsgICAgICAgIHNlbGYucHVzaF9lbmNvZGVkKG5hbWUuYXNfYnl0 ZXMoKSk7Cj4+ICsgICAgICAgIHNlbGYudXJsLnB1c2goJz0nKTsKPj4gKyAgICB9Cj4+ICsKPj4g KyAgICBmbiBwdXNoX2VuY29kZWQoJm11dCBzZWxmLCB2YWx1ZTogJlt1OF0pIHsKPj4gKyAgICAg ICAgbGV0IGVuY192YWx1ZSA9IHBlcmNlbnRfZW5jb2Rpbmc6OnBlcmNlbnRfZW5jb2RlKHZhbHVl LCBwZXJjZW50X2VuY29kaW5nOjpOT05fQUxQSEFOVU1FUklDKTsKPj4gKyAgICAgICAgc2VsZi51 cmwuZXh0ZW5kKGVuY192YWx1ZSk7Cj4+ICsgICAgfQo+PiArfQo+PiArCj4+ICsjW2NmZyhmZWF0 dXJlID0gInBlcmwtYXBpLXBhdGgtYnVpbGRlciIpXQo+PiAraW1wbCBBcGlQYXRoQnVpbGRlciB7 Cj4+ICsgICAgLy8vIEFkZHMgYSBib29sZWFuIGFyZyBpbiBhIHBlcmwtZnJpZW5kbHkgZmFzaGlv bi4KPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYGBgcnVzdAo+PiArICAgIC8vLyB1c2UgcHJveG1v eF9jbGllbnQ6OkFwaVBhdGhCdWlsZGVyOwo+PiArICAgIC8vLwo+PiArICAgIC8vLyBsZXQgbm9k ZSA9ICJwdmUwMSI7Cj4+ICsgICAgLy8vIGxldCBxdWVyeSA9IEFwaVBhdGhCdWlsZGVyOjpuZXco Zm9ybWF0ISgiL2FwaTIvZXh0anMvbm9kZXMve25vZGV9L3N0b3JhZ2UiKSkKPj4gKyAgICAvLy8g ICAgIC5ib29sX2FyZygiZW5hYmxlZCIsIHRydWUpCj4+ICsgICAgLy8vICAgICAuYnVpbGQoKTsK Pj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYXNzZXJ0X2VxISgmcXVlcnksICIvYXBpMi9leHRqcy9u b2Rlcy9wdmUwMS9zdG9yYWdlP2VuYWJsZWQ9MSIpOwo+PiArICAgIC8vLyBgYGAKPj4gKyAgICAv Ly8KPj4gKyAgICAvLy8gYHRydWVgIHdpbGwgYmUgY29udmVydGVkIGludG8gYCIxImAgYW5kIGBm YWxzZWAgdG8gYCIwImAuCj4+ICsgICAgcHViIGZuIGJvb2xfYXJnKG11dCBzZWxmLCBuYW1lOiAm c3RyLCB2YWx1ZTogYm9vbCkgLT4gU2VsZiB7Cj4+ICsgICAgICAgIHNlbGYucHVzaF9zZXBhcmF0 b3JfYW5kX25hbWUobmFtZSk7Cj4+ICsgICAgICAgIGlmIHZhbHVlIHsKPj4gKyAgICAgICAgICAg IHNlbGYudXJsLnB1c2goJzEnKTsKPj4gKyAgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAg IHNlbGYudXJsLnB1c2goJzAnKTsKPj4gKyAgICAgICAgfTsKPj4gKyAgICAgICAgc2VsZgo+PiAr ICAgIH0KPj4gKwo+PiArICAgIC8vLyBBZGRzIGFuIG9wdGlvbmFsIGJvb2xlYW4gYXJnIGluIGEg cGVybC1mcmllbmRseSBmYXNoaW9uLgo+PiArICAgIC8vLwo+PiArICAgIC8vLyBEb2VzIG5vdGhp bmcgaWYgYHZhbHVlYCBpcyBgTm9uZWAuIFNlZSBbU2VsZjo6Ym9vbF9hcmddIGZvciBtb3JlCj4+ ICsgICAgLy8vIGRldGFpbHMuCj4+ICsgICAgcHViIGZuIG1heWJlX2Jvb2xfYXJnKG11dCBzZWxm LCBuYW1lOiAmc3RyLCB2YWx1ZTogT3B0aW9uPGJvb2w+KSAtPiBTZWxmIHsKPj4gKyAgICAgICAg aWYgbGV0IFNvbWUodmFsdWUpID0gdmFsdWUgewo+PiArICAgICAgICAgICAgc2VsZiA9IHNlbGYu Ym9vbF9hcmcobmFtZSwgdmFsdWUpOwo+PiArICAgICAgICB9Cj4+ICsgICAgICAgIHNlbGYKPj4g KyAgICB9Cj4+ICsKPj4gKyAgICAvLy8gSGVscGVyIGZvciBidWlsZGluZyBwZXJsLWZyaWVuZGx5 IHF1ZXJpZXMuCj4+ICsgICAgLy8vCj4+ICsgICAgLy8vIEZvciBgPHR5cGU+LWxpc3RgIGVudHJp ZXMgd2UgdHVybiBhbiBhcnJheSBpbnRvIGEgc3RyaW5nIHJlYWR5IGZvcgo+PiArICAgIC8vLyBw ZXJsJ3MgYHNwbGl0X2xpc3QoKWAgY2FsbC4KPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYGBgcnVz dAo+PiArICAgIC8vLyB1c2UgcHJveG1veF9jbGllbnQ6OmFwaV9wYXRoX2J1aWxkZXI6OkFwaVBh dGhCdWlsZGVyOwo+PiArICAgIC8vLwo+PiArICAgIC8vLyBsZXQgY29udGVudCA9IHZlYyFbImJh Y2t1cCIsICJpbWFnZXMiXTsKPj4gKyAgICAvLy8gbGV0IG5vZGUgPSAibXlfbm9kZSI7Cj4+ICsg ICAgLy8vIGxldCBxdWVyeSA9ICZwcm94bW94X2NsaWVudDo6QXBpUGF0aEJ1aWxkZXI6Om5ldyhm b3JtYXQhKCIvYXBpMi9leHRqcy9ub2Rlcy97bm9kZX0vc3RvcmFnZSIpKQo+PiArICAgIC8vLyAg ICAgLm1heWJlX2xpc3RfYXJnKCJjb250ZW50IiwgJmNvbnRlbnQpCj4+ICsgICAgLy8vICAgICAu YXJnKCJ0eXBlIiwgInZtIikKPgo+IF4gQ29udGFpbnMgdHlwZT12bQo+Cj4+ICsgICAgLy8vICAg ICAuYnVpbGQoKTsKPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYXNzZXJ0X2VxISgmcXVlcnksICIv YXBpMi9leHRqcy9ub2Rlcy9teV9ub2RlL3N0b3JhZ2U/Y29udGVudD1iYWNrdXAlMDBpbWFnZXNz Iik7Cj4KPiBeIGRvZXMgbm90IGNvbnRhaW4gdHlwZT12bS4uLgo+Cj4gaW93LiB0aGUgdGVzdCBz dWl0ZSBmYWlscyB3aXRoIGAtLWFsbC1mZWF0dXJlc2AKPgo+PiArICAgIC8vLyBgYGAKPj4gKyAg ICAvLy8KPj4gKyAgICAvLy8gVGhlIG5hbWUgYW5kIHZhbHVlcyB3aWxsIGJlIHBlcmNlbnQtZW5j b2RlZC4KPj4gKyAgICBwdWIgZm4gbGlzdF9hcmc8VDogc3RkOjpmbXQ6OkRpc3BsYXksIEk6IElu dG9JdGVyYXRvcjxJdGVtID0gVD4+KAo+Cj4gXiBUaGlzIGlzIHF1aXRlIGxvbmcsIHBsZWFzZSBt b3ZlIGl0IGludG8gYSB3aGVyZSBjYWx1c2UuCj4gQWxzbywgeW91IGNhbiBza2lwIGBUYCB2aWE6 Cj4KPiAgICAgd2hlcmUKPiAgICAgICAgIEk6IEludG9JdGVyYXRvciwKPiAgICAgICAgIEk6Okl0 ZW06IERpc3BsYXksCj4KPiBBbmQgc2luY2UgMS43OSBhc3NvY2lhdGVkIHR5cGUgYm91bmRzIGFy ZSBzdGFibGUsIHNvIHlvdSBjYW4gYWN0dWFsbHkKPiBkbzoKPiAgICAgd2hlcmUKPiAgICAgICAg IEk6IEludG9JdGVyYXRvcjxJdGVtOiBEaXNwbGF5PiwKPgo+Cj4KPj4gKyAgICAgICAgbXV0IHNl bGYsCj4+ICsgICAgICAgIG5hbWU6ICZzdHIsCj4+ICsgICAgICAgIHZhbHVlczogSSwKPj4gKyAg ICApIC0+IFNlbGYgewo+PiArICAgICAgICBzZWxmLnB1c2hfc2VwYXJhdG9yX2FuZF9uYW1lKG5h bWUpOwo+PiArICAgICAgICBsZXQgbXV0IGxpc3Rfc2VwYXJhdG9yID0gIiI7Cj4+ICsgICAgICAg IGZvciBlbnRyeSBpbiB2YWx1ZXMuaW50b19pdGVyKCkgewo+PiArICAgICAgICAgICAgc2VsZi51 cmwucHVzaF9zdHIobGlzdF9zZXBhcmF0b3IpOwo+PiArICAgICAgICAgICAgbGlzdF9zZXBhcmF0 b3IgPSAiJTAwIjsKPj4gKyAgICAgICAgICAgIHNlbGYucHVzaF9lbmNvZGVkKGVudHJ5LnRvX3N0 cmluZygpLmFzX2J5dGVzKCkpOwo+PiArICAgICAgICB9Cj4+ICsgICAgICAgIHNlbGYKPj4gKyAg ICB9Cj4+ICsKPj4gKyAgICAvLy8gSGVscGVyIGZvciBidWlsZGluZyBwZXJsLWZyaWVuZGx5IHF1 ZXJpZXMuCj4+ICsgICAgLy8vCj4+ICsgICAgLy8vIFNlZSBbU2VsZjo6bGlzdF9hcmddIGZvciBt b3JlIGRldGFpbHMuCj4+ICsgICAgcHViIGZuIG1heWJlX2xpc3RfYXJnPFQ6IHN0ZDo6Zm10OjpE aXNwbGF5PigKPj4gKyAgICAgICAgbXV0IHNlbGYsCj4+ICsgICAgICAgIG5hbWU6ICZzdHIsCj4+ ICsgICAgICAgIHZhbHVlczogJk9wdGlvbjxWZWM8VD4+LAo+PiArICAgICkgLT4gU2VsZiB7Cj4K PiBPaCBJIHNvIHdpc2gKPiAgICAgd2hlcmUgZm9yPCdhPiAmJ2EgSTogSW50b0l0ZXJhdG9yPFQ6 IERpc3BsYXk+Cj4gd291bGQgYWN0dWFsbHkgKndvcmsqICh0byByZXBsYWNlIGBWZWM8VD5gIHdp dGggYW4gYElgLCBidXQgaXQgZG9lc24ndAo+IHJpZ2h0IG5vdy4uLgo+Cj4+ICsgICAgICAgIGlm IGxldCBTb21lKHZhbHVlcykgPSB2YWx1ZXMgewo+PiArICAgICAgICAgICAgc2VsZiA9IHNlbGYu bGlzdF9hcmcobmFtZSwgdmFsdWVzLml0ZXIoKSk7Cj4+ICsgICAgICAgIH07Cj4+ICsgICAgICAg IHNlbGYKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4gKyNbY2ZnKHRlc3QpXQo+PiArbW9kIHRlc3Rz IHsKPj4gKyAgICB1c2Ugc3VwZXI6Oio7Cj4+ICsKPj4gKyAgICAvLyBTZWUgcGRtX2FwaV90eXBl czo6Q29uZmlndXJhdGlvblN0YXRlLgo+PiArICAgICNbZGVyaXZlKHNlcmRlOjpTZXJpYWxpemUp XQo+PiArICAgICNbc2VyZGUocmVuYW1lX2FsbCA9ICJrZWJhYi1jYXNlIildCj4+ICsgICAgZW51 bSBDb25maWd1cmF0aW9uU3RhdGUgewo+PiArICAgICAgICBBY3RpdmUsCj4+ICsgICAgfQo+PiAr ICAgIHNlcmRlX3BsYWluOjpkZXJpdmVfZGlzcGxheV9mcm9tX3NlcmlhbGl6ZSEoQ29uZmlndXJh dGlvblN0YXRlKTsKPj4gKwo+PiArICAgIC8vIFNlZSBwdmVfYXBpX3R5cGVzOjpDbHVzdGVyUmVz b3VyY2VLaW5kLgo+PiArICAgICNbZGVyaXZlKHNlcmRlOjpTZXJpYWxpemUpXQo+PiArICAgIGVu dW0gQ2x1c3RlclJlc291cmNlS2luZCB7Cj4+ICsgICAgICAgICNbc2VyZGUocmVuYW1lID0gInZt IildCj4+ICsgICAgICAgIFZtLAo+PiArICAgIH0KPj4gKyAgICBzZXJkZV9wbGFpbjo6ZGVyaXZl X2Rpc3BsYXlfZnJvbV9zZXJpYWxpemUhKENsdXN0ZXJSZXNvdXJjZUtpbmQpOwo+PiArCj4+ICsg ICAgI1t0ZXN0XQo+PiArICAgIGZuIHRlc3RfYnVpbGRlcigpIHsKPj4gKyAgICAgICAgbGV0IGV4 cGVjdGVkID0gIi9hcGkyL2V4dGpzL2NsdXN0ZXIvcmVzb3VyY2VzP3R5cGU9dm0iOwo+PiArICAg ICAgICBsZXQgdHkgPSBDbHVzdGVyUmVzb3VyY2VLaW5kOjpWbTsKPj4gKwo+PiArICAgICAgICBs ZXQgcXVlcnkgPSBBcGlQYXRoQnVpbGRlcjo6bmV3KCIvYXBpMi9leHRqcy9jbHVzdGVyL3Jlc291 cmNlcyIpCj4+ICsgICAgICAgICAgICAuYXJnKCJ0eXBlIiwgdHkpCj4+ICsgICAgICAgICAgICAu YnVpbGQoKTsKPj4gKwo+PiArICAgICAgICBhc3NlcnRfZXEhKCZxdWVyeSwgZXhwZWN0ZWQpOwo+ PiArCj4+ICsgICAgICAgIGxldCBzZWNvbmRfZXhwZWN0ZWQgPQo+PiArICAgICAgICAgICAgIi9h cGkyL2V4dGpzL3B2ZS9yZW1vdGVzL3NvbWUtcmVtb3RlL3FlbXUvMTAwL2NvbmZpZz9zdGF0ZT1h Y3RpdmUmbm9kZT1teU5vZGUiOwo+PiArICAgICAgICBsZXQgc3RhdGUgPSBDb25maWd1cmF0aW9u U3RhdGU6OkFjdGl2ZTsKPj4gKyAgICAgICAgbGV0IG5vZGUgPSAibXlOb2RlIjsKPj4gKyAgICAg ICAgbGV0IHNuYXBzaG90ID0gTm9uZTo6PCZzdHI+Owo+PiArCj4+ICsgICAgICAgIGxldCBzZWNv bmRfcXVlcnkgPQo+PiArICAgICAgICAgICAgQXBpUGF0aEJ1aWxkZXI6Om5ldygiL2FwaTIvZXh0 anMvcHZlL3JlbW90ZXMvc29tZS1yZW1vdGUvcWVtdS8xMDAvY29uZmlnIikKPj4gKyAgICAgICAg ICAgICAgICAuYXJnKCJzdGF0ZSIsIHN0YXRlKQo+PiArICAgICAgICAgICAgICAgIC5hcmcoIm5v ZGUiLCBub2RlKQo+PiArICAgICAgICAgICAgICAgIC5tYXliZV9hcmcoInNuYXBzaG90IiwgJnNu YXBzaG90KQo+PiArICAgICAgICAgICAgICAgIC5idWlsZCgpOwo+PiArCj4+ICsgICAgICAgIGFz c2VydF9lcSEoJnNlY29uZF9xdWVyeSwgJnNlY29uZF9leHBlY3RlZCk7Cj4+ICsgICAgfQo+PiAr fQo+PiArCj4+ICsjW2NmZyhhbGwodGVzdCwgZmVhdHVyZSA9ICJwZXJsLWFwaS1wYXRoLWJ1aWxk ZXIiKSldCj4+ICttb2QgcGVybF90ZXN0cyB7Cj4+ICsgICAgdXNlIHN1cGVyOjoqOwo+PiArCj4+ ICsgICAgI1t0ZXN0XQo+PiArICAgIGZuIHRlc3RfcGVybF9idWlsZGVyKCkgewo+PiArICAgICAg ICBsZXQgaGlzdG9yeSA9IHRydWU7Cj4+ICsgICAgICAgIGxldCBsb2NhbF9vbmx5ID0gZmFsc2U7 Cj4+ICsgICAgICAgIGxldCBzdGFydF90aW1lID0gMTAwMDsKPj4gKwo+PiArICAgICAgICBsZXQg ZXhwZWN0ZWRfdXJsID0KPj4gKyAgICAgICAgICAgICIvYXBpMi9leHRqcy9jbHVzdGVyL21ldHJp Y3MvZXhwb3J0P2hpc3Rvcnk9MSZsb2NhbCUyRG9ubHk9MCZzdGFydCUyRHRpbWU9MTAwMCI7Cj4+ ICsKPj4gKyAgICAgICAgbGV0IHF1ZXJ5ID0gQXBpUGF0aEJ1aWxkZXI6Om5ldygiL2FwaTIvZXh0 anMvY2x1c3Rlci9tZXRyaWNzL2V4cG9ydCIpCj4+ICsgICAgICAgICAgICAuYm9vbF9hcmcoImhp c3RvcnkiLCBoaXN0b3J5KQo+PiArICAgICAgICAgICAgLmJvb2xfYXJnKCJsb2NhbC1vbmx5Iiwg bG9jYWxfb25seSkKPj4gKyAgICAgICAgICAgIC5hcmcoInN0YXJ0LXRpbWUiLCBzdGFydF90aW1l KQo+PiArICAgICAgICAgICAgLmJ1aWxkKCk7Cj4+ICsgICAgICAgIGFzc2VydF9lcSEoZXhwZWN0 ZWRfdXJsLCBxdWVyeSk7Cj4+ICsKPj4gKyAgICAgICAgbGV0IHF1ZXJ5X3dpdGhfbWF5YmUgPSBB cGlQYXRoQnVpbGRlcjo6bmV3KCIvYXBpMi9leHRqcy9jbHVzdGVyL21ldHJpY3MvZXhwb3J0IikK Pj4gKyAgICAgICAgICAgIC5tYXliZV9ib29sX2FyZygiaGlzdG9yeSIsIFNvbWUoaGlzdG9yeSkp Cj4+ICsgICAgICAgICAgICAubWF5YmVfYm9vbF9hcmcoImxvY2FsLW9ubHkiLCBTb21lKGxvY2Fs X29ubHkpKQo+PiArICAgICAgICAgICAgLm1heWJlX2FyZygic3RhcnQtdGltZSIsICZTb21lKHN0 YXJ0X3RpbWUpKQo+PiArICAgICAgICAgICAgLmJ1aWxkKCk7Cj4+ICsKPj4gKyAgICAgICAgYXNz ZXJ0X2VxIShleHBlY3RlZF91cmwsIHF1ZXJ5X3dpdGhfbWF5YmUpOwo+PiArICAgIH0KPj4gK30K Pj4gZGlmZiAtLWdpdCBhL3Byb3htb3gtY2xpZW50L3NyYy9saWIucnMgYi9wcm94bW94LWNsaWVu dC9zcmMvbGliLnJzCj4+IGluZGV4IDAwYzQ4NjY1Li41OTc4ZDUwMSAxMDA2NDQKPj4gLS0tIGEv cHJveG1veC1jbGllbnQvc3JjL2xpYi5ycwo+PiArKysgYi9wcm94bW94LWNsaWVudC9zcmMvbGli LnJzCj4+IEBAIC0xNCw2ICsxNCwxMCBAQCBwdWIgdXNlIGVycm9yOjpFcnJvcjsKPj4gIHB1YiB1 c2UgcHJveG1veF9sb2dpbjo6dGZhOjpUZmFDaGFsbGVuZ2U7Cj4+ICBwdWIgdXNlIHByb3htb3hf bG9naW46OntBdXRoZW50aWNhdGlvbiwgVGlja2V0fTsKPj4gIAo+PiArcHViIG1vZCBhcGlfcGF0 aF9idWlsZGVyOwo+Cj4g4oaRIERyb3AgdGhlIGBwdWJgIGhlcmUKPiBBbmQgdGhlIG5ld2xpbmUg 4oaTCj4KPj4gKwo+PiArcHViIHVzZSBhcGlfcGF0aF9idWlsZGVyOjpBcGlQYXRoQnVpbGRlcjsK Pj4gKwo+PiAgcHViKGNyYXRlKSBtb2QgYXV0aDsKPj4gIHB1YiB1c2UgYXV0aDo6e0F1dGhlbnRp Y2F0aW9uS2luZCwgVG9rZW59Owo+PiAgCj4+IC0tIAo+PiAyLjM5LjUKCgpTdXBlcnNlZGVkIGJ5 IGh0dHBzOi8vbG9yZS5wcm94bW94LmNvbS9wYnMtZGV2ZWwvMjAyNTA0MTYxMTM2MDEuMjU2ODI5 LTEtbS5zYW5kb3ZhbEBwcm94bW94LmNvbS9ULyN1LgoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVs QGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls bWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=