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 4788D1FF13B for ; Tue, 13 Jan 2026 17:52:09 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 16B082022F; Tue, 13 Jan 2026 17:52:12 +0100 (CET) Message-ID: <8d0f5eb6-11ef-4186-b23c-9bcbb845a000@proxmox.com> Date: Tue, 13 Jan 2026 17:51:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox Backup Server development discussion , =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= References: <20260108112629.189670-1-s.rufinatscha@proxmox.com> <20260108112629.189670-10-s.rufinatscha@proxmox.com> <1768310071.o1dolezxdy.astroid@yuna.none> Content-Language: en-US From: Samuel Rufinatscha In-Reply-To: <1768310071.o1dolezxdy.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.159 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_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks 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. [plugin.rs, proxmox.com, lib.rs, certificates.rs, mod.rs, node.rs, acme.rs] Subject: Re: [pbs-devel] [PATCH proxmox-backup v5 5/5] acme: certificate ordering through proxmox-acme-api 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Y29tbWVudHMgaW5saW5lCgpPbiAxLzEzLzI2IDI6NDUgUE0sIEZhYmlhbiBHcsO8bmJpY2hsZXIg d3JvdGU6Cj4gT24gSmFudWFyeSA4LCAyMDI2IDEyOjI2IHBtLCBTYW11ZWwgUnVmaW5hdHNjaGEg d3JvdGU6Cj4+IFBCUyBjdXJyZW50bHkgdXNlcyBpdHMgb3duIEFDTUUgY2xpZW50IGFuZCBBUEkg bG9naWMsIHdoaWxlIFBETSB1c2VzIHRoZQo+PiBmYWN0b3JlZCBvdXQgcHJveG1veC1hY21lIGFu ZCBwcm94bW94LWFjbWUtYXBpIGNyYXRlcy4gVGhpcyBkdXBsaWNhdGlvbgo+PiByaXNrcyBkaWZm ZXJlbmNlcyBpbiBiZWhhdmlvdXIgYW5kIHJlcXVpcmVzIEFDTUUgbWFpbnRlbmFuY2UgaW4gdHdv Cj4+IHBsYWNlcy4gVGhpcyBwYXRjaCBpcyBwYXJ0IG9mIGEgc2VyaWVzIHRvIG1vdmUgUEJTIG92 ZXIgdG8gdGhlIHNoYXJlZAo+PiBBQ01FIHN0YWNrLgo+Pgo+PiBDaGFuZ2VzOgo+PiAtIFJlcGxh Y2UgdGhlIGN1c3RvbSBBQ01FIG9yZGVyL2F1dGhvcml6YXRpb24gbG9vcCBpbiBub2RlIGNlcnRp ZmljYXRlcwo+PiB3aXRoIGEgY2FsbCB0byBwcm94bW94X2FjbWVfYXBpOjpvcmRlcl9jZXJ0aWZp Y2F0ZS4KPj4gLSBCdWlsZCBkb21haW4gKyBjb25maWcgZGF0YSBhcyBwcm94bW94LWFjbWUtYXBp IHR5cGVzCj4+IC0gUmVtb3ZlIG9ic29sZXRlIGxvY2FsIEFDTUUgb3JkZXJpbmcgYW5kIHBsdWdp biBnbHVlIGNvZGUuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFNhbXVlbCBSdWZpbmF0c2NoYSA8cy5y dWZpbmF0c2NoYUBwcm94bW94LmNvbT4KPj4gLS0tCj4+ICAgc3JjL2FjbWUvbW9kLnJzICAgICAg ICAgICAgICAgfCAgIDIgLQo+PiAgIHNyYy9hY21lL3BsdWdpbi5ycyAgICAgICAgICAgIHwgMzM1 IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gICBzcmMvYXBpMi9ub2RlL2Nl cnRpZmljYXRlcy5ycyB8IDIyOSArKysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgIHNyYy9hcGky L3R5cGVzL2FjbWUucnMgICAgICAgIHwgIDczIC0tLS0tLS0tCj4+ICAgc3JjL2FwaTIvdHlwZXMv bW9kLnJzICAgICAgICAgfCAgIDMgLQo+PiAgIHNyYy9jb25maWcvYWNtZS9tb2QucnMgICAgICAg IHwgICA4ICstCj4+ICAgc3JjL2NvbmZpZy9hY21lL3BsdWdpbi5ycyAgICAgfCAgOTIgKy0tLS0t LS0tLQo+PiAgIHNyYy9jb25maWcvbm9kZS5ycyAgICAgICAgICAgIHwgIDIwICstCj4+ICAgc3Jj L2xpYi5ycyAgICAgICAgICAgICAgICAgICAgfCAgIDIgLQo+PiAgIDkgZmlsZXMgY2hhbmdlZCwg MzggaW5zZXJ0aW9ucygrKSwgNzI2IGRlbGV0aW9ucygtKQo+PiAgIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmMvYWNtZS9tb2QucnMKPj4gICBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2FjbWUvcGx1Z2lu LnJzCj4+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9hcGkyL3R5cGVzL2FjbWUucnMKPj4KPiAK PiBbLi5dCj4gCj4+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi9ub2RlL2NlcnRpZmljYXRlcy5ycyBi L3NyYy9hcGkyL25vZGUvY2VydGlmaWNhdGVzLnJzCj4+IGluZGV4IDQ3ZmY4ZGU1Li43MzQwMWM0 MSAxMDA2NDQKPj4gLS0tIGEvc3JjL2FwaTIvbm9kZS9jZXJ0aWZpY2F0ZXMucnMKPj4gKysrIGIv c3JjL2FwaTIvbm9kZS9jZXJ0aWZpY2F0ZXMucnMKPj4gQEAgLTEsMTQgKzEsMTEgQEAKPj4gLXVz ZSBzdGQ6OnN5bmM6OkFyYzsKPj4gLXVzZSBzdGQ6OnRpbWU6OkR1cmF0aW9uOwo+PiAtCj4+ICAg dXNlIGFueWhvdzo6e2JhaWwsIGZvcm1hdF9lcnIsIEVycm9yfTsKPj4gICB1c2Ugb3BlbnNzbDo6 cGtleTo6UEtleTsKPj4gICB1c2Ugb3BlbnNzbDo6eDUwOTo6WDUwOTsKPj4gICB1c2Ugc2VyZGU6 OntEZXNlcmlhbGl6ZSwgU2VyaWFsaXplfTsKPj4gLXVzZSB0cmFjaW5nOjp7aW5mbywgd2Fybn07 Cj4+ICt1c2UgdHJhY2luZzo6aW5mbzsKPj4gICAKPj4gICB1c2UgcGJzX2FwaV90eXBlczo6e05P REVfU0NIRU1BLCBQUklWX1NZU19NT0RJRll9Owo+PiAtdXNlIHByb3htb3hfYWNtZTo6YXN5bmNf Y2xpZW50OjpBY21lQ2xpZW50Owo+PiArdXNlIHByb3htb3hfYWNtZV9hcGk6OkFjbWVEb21haW47 Cj4+ICAgdXNlIHByb3htb3hfcmVzdF9zZXJ2ZXI6OldvcmtlclRhc2s7Cj4+ICAgdXNlIHByb3ht b3hfcm91dGVyOjpsaXN0X3N1YmRpcnNfYXBpX21ldGhvZDsKPj4gICB1c2UgcHJveG1veF9yb3V0 ZXI6OlN1YmRpck1hcDsKPj4gQEAgLTE4LDggKzE1LDYgQEAgdXNlIHByb3htb3hfc2NoZW1hOjph cGk7Cj4+ICAgdXNlIHBic19idWlsZGNmZzo6Y29uZmlnZGlyOwo+PiAgIHVzZSBwYnNfdG9vbHM6 OmNlcnQ7Cj4+ICAgCj4+IC11c2UgY3JhdGU6OmFwaTI6OnR5cGVzOjpBY21lRG9tYWluOwo+PiAt dXNlIGNyYXRlOjpjb25maWc6Om5vZGU6Ok5vZGVDb25maWc7Cj4+ICAgdXNlIGNyYXRlOjpzZXJ2 ZXI6OnNlbmRfY2VydGlmaWNhdGVfcmVuZXdhbF9tYWlsOwo+PiAgIAo+PiAgIHB1YiBjb25zdCBS T1VURVI6IFJvdXRlciA9IFJvdXRlcjo6bmV3KCkKPj4gQEAgLTI2OCwxOTMgKzI2Myw2IEBAIHB1 YiBhc3luYyBmbiBkZWxldGVfY3VzdG9tX2NlcnRpZmljYXRlKCkgLT4gUmVzdWx0PCgpLCBFcnJv cj4gewo+PiAgICAgICBPaygoKSkKPj4gICB9Cj4+ICAgCj4+IC1zdHJ1Y3QgT3JkZXJlZENlcnRp ZmljYXRlIHsKPj4gLSAgICBjZXJ0aWZpY2F0ZTogaHlwZXI6OmJvZHk6OkJ5dGVzLAo+PiAtICAg IHByaXZhdGVfa2V5X3BlbTogVmVjPHU4PiwKPj4gLX0KPj4gLQo+PiAtYXN5bmMgZm4gb3JkZXJf Y2VydGlmaWNhdGUoCj4+IC0gICAgd29ya2VyOiBBcmM8V29ya2VyVGFzaz4sCj4+IC0gICAgbm9k ZV9jb25maWc6ICZOb2RlQ29uZmlnLAo+PiAtKSAtPiBSZXN1bHQ8T3B0aW9uPE9yZGVyZWRDZXJ0 aWZpY2F0ZT4sIEVycm9yPiB7Cj4+IC0gICAgdXNlIHByb3htb3hfYWNtZTo6YXV0aG9yaXphdGlv bjo6U3RhdHVzOwo+PiAtICAgIHVzZSBwcm94bW94X2FjbWU6Om9yZGVyOjpJZGVudGlmaWVyOwo+ PiAtCj4+IC0gICAgbGV0IGRvbWFpbnMgPSBub2RlX2NvbmZpZy5hY21lX2RvbWFpbnMoKS50cnlf Zm9sZCgKPj4gLSAgICAgICAgVmVjOjo8QWNtZURvbWFpbj46Om5ldygpLAo+PiAtICAgICAgICB8 bXV0IGFjYywgZG9tYWlufCAtPiBSZXN1bHQ8XywgRXJyb3I+IHsKPj4gLSAgICAgICAgICAgIGxl dCBtdXQgZG9tYWluID0gZG9tYWluPzsKPj4gLSAgICAgICAgICAgIGRvbWFpbi5kb21haW4ubWFr ZV9hc2NpaV9sb3dlcmNhc2UoKTsKPj4gLSAgICAgICAgICAgIGlmIGxldCBTb21lKGFsaWFzKSA9 ICZtdXQgZG9tYWluLmFsaWFzIHsKPj4gLSAgICAgICAgICAgICAgICBhbGlhcy5tYWtlX2FzY2lp X2xvd2VyY2FzZSgpOwo+PiAtICAgICAgICAgICAgfQo+PiAtICAgICAgICAgICAgYWNjLnB1c2go ZG9tYWluKTsKPj4gLSAgICAgICAgICAgIE9rKGFjYykKPj4gLSAgICAgICAgfSwKPj4gLSAgICAp PzsKPj4gLQo+PiAtICAgIGxldCBnZXRfZG9tYWluX2NvbmZpZyA9IHxkb21haW46ICZzdHJ8IHsK Pj4gLSAgICAgICAgZG9tYWlucwo+PiAtICAgICAgICAgICAgLml0ZXIoKQo+PiAtICAgICAgICAg ICAgLmZpbmQofGR8IGQuZG9tYWluID09IGRvbWFpbikKPj4gLSAgICAgICAgICAgIC5va19vcl9l bHNlKHx8IGZvcm1hdF9lcnIhKCJubyBjb25maWcgZm9yIGRvbWFpbiAne30nIiwgZG9tYWluKSkK Pj4gLSAgICB9Owo+PiAtCj4+IC0gICAgaWYgZG9tYWlucy5pc19lbXB0eSgpIHsKPj4gLSAgICAg ICAgaW5mbyEoIk5vIGRvbWFpbnMgY29uZmlndXJlZCB0byBiZSBvcmRlcmVkIGZyb20gYW4gQUNN RSBzZXJ2ZXIuIik7Cj4+IC0gICAgICAgIHJldHVybiBPayhOb25lKTsKPj4gLSAgICB9Cj4+IC0K Pj4gLSAgICBsZXQgKHBsdWdpbnMsIF8pID0gY3JhdGU6OmNvbmZpZzo6YWNtZTo6cGx1Z2luOjpj b25maWcoKT87Cj4+IC0KPj4gLSAgICBsZXQgbXV0IGFjbWUgPSBub2RlX2NvbmZpZy5hY21lX2Ns aWVudCgpLmF3YWl0PzsKPj4gLQo+PiAtICAgIGluZm8hKCJQbGFjaW5nIEFDTUUgb3JkZXIiKTsK Pj4gLSAgICBsZXQgb3JkZXIgPSBhY21lCj4+IC0gICAgICAgIC5uZXdfb3JkZXIoZG9tYWlucy5p dGVyKCkubWFwKHxkfCBkLmRvbWFpbi50b19hc2NpaV9sb3dlcmNhc2UoKSkpCj4+IC0gICAgICAg IC5hd2FpdD87Cj4+IC0gICAgaW5mbyEoIk9yZGVyIFVSTDoge30iLCBvcmRlci5sb2NhdGlvbik7 Cj4+IC0KPj4gLSAgICBsZXQgaWRlbnRpZmllcnM6IFZlYzxTdHJpbmc+ID0gb3JkZXIKPj4gLSAg ICAgICAgLmRhdGEKPj4gLSAgICAgICAgLmlkZW50aWZpZXJzCj4+IC0gICAgICAgIC5pdGVyKCkK Pj4gLSAgICAgICAgLm1hcCh8aWRlbnRpZmllcnwgbWF0Y2ggaWRlbnRpZmllciB7Cj4+IC0gICAg ICAgICAgICBJZGVudGlmaWVyOjpEbnMoZG9tYWluKSA9PiBkb21haW4uY2xvbmUoKSwKPj4gLSAg ICAgICAgfSkKPj4gLSAgICAgICAgLmNvbGxlY3QoKTsKPj4gLQo+PiAtICAgIGZvciBhdXRoX3Vy bCBpbiAmb3JkZXIuZGF0YS5hdXRob3JpemF0aW9ucyB7Cj4+IC0gICAgICAgIGluZm8hKCJHZXR0 aW5nIGF1dGhvcml6YXRpb24gZGV0YWlscyBmcm9tICd7YXV0aF91cmx9JyIpOwo+PiAtICAgICAg ICBsZXQgbXV0IGF1dGggPSBhY21lLmdldF9hdXRob3JpemF0aW9uKGF1dGhfdXJsKS5hd2FpdD87 Cj4+IC0KPj4gLSAgICAgICAgbGV0IGRvbWFpbiA9IG1hdGNoICZtdXQgYXV0aC5pZGVudGlmaWVy IHsKPj4gLSAgICAgICAgICAgIElkZW50aWZpZXI6OkRucyhkb21haW4pID0+IGRvbWFpbi50b19h c2NpaV9sb3dlcmNhc2UoKSwKPj4gLSAgICAgICAgfTsKPj4gLQo+PiAtICAgICAgICBpZiBhdXRo LnN0YXR1cyA9PSBTdGF0dXM6OlZhbGlkIHsKPj4gLSAgICAgICAgICAgIGluZm8hKCJ7ZG9tYWlu fSBpcyBhbHJlYWR5IHZhbGlkYXRlZCEiKTsKPj4gLSAgICAgICAgICAgIGNvbnRpbnVlOwo+PiAt ICAgICAgICB9Cj4+IC0KPj4gLSAgICAgICAgaW5mbyEoIlRoZSB2YWxpZGF0aW9uIGZvciB7ZG9t YWlufSBpcyBwZW5kaW5nIik7Cj4+IC0gICAgICAgIGxldCBkb21haW5fY29uZmlnOiAmQWNtZURv bWFpbiA9IGdldF9kb21haW5fY29uZmlnKCZkb21haW4pPzsKPj4gLSAgICAgICAgbGV0IHBsdWdp bl9pZCA9IGRvbWFpbl9jb25maWcucGx1Z2luLmFzX2RlcmVmKCkudW53cmFwX29yKCJzdGFuZGFs b25lIik7Cj4+IC0gICAgICAgIGxldCBtdXQgcGx1Z2luX2NmZyA9IGNyYXRlOjphY21lOjpnZXRf YWNtZV9wbHVnaW4oJnBsdWdpbnMsIHBsdWdpbl9pZCk/Cj4+IC0gICAgICAgICAgICAub2tfb3Jf ZWxzZSh8fCBmb3JtYXRfZXJyISgicGx1Z2luICd7cGx1Z2luX2lkfScgZm9yIGRvbWFpbiAne2Rv bWFpbn0nIG5vdCBmb3VuZCEiKSk/Owo+PiAtCj4+IC0gICAgICAgIGluZm8hKCJTZXR0aW5nIHVw IHZhbGlkYXRpb24gcGx1Z2luIik7Cj4+IC0gICAgICAgIGxldCB2YWxpZGF0aW9uX3VybCA9IHBs dWdpbl9jZmcKPj4gLSAgICAgICAgICAgIC5zZXR1cCgmbXV0IGFjbWUsICZhdXRoLCBkb21haW5f Y29uZmlnLCBBcmM6OmNsb25lKCZ3b3JrZXIpKQo+PiAtICAgICAgICAgICAgLmF3YWl0PzsKPj4g LQo+PiAtICAgICAgICBsZXQgcmVzdWx0ID0gcmVxdWVzdF92YWxpZGF0aW9uKCZtdXQgYWNtZSwg YXV0aF91cmwsIHZhbGlkYXRpb25fdXJsKS5hd2FpdDsKPj4gLQo+PiAtICAgICAgICBpZiBsZXQg RXJyKGVycikgPSBwbHVnaW5fY2ZnCj4+IC0gICAgICAgICAgICAudGVhcmRvd24oJm11dCBhY21l LCAmYXV0aCwgZG9tYWluX2NvbmZpZywgQXJjOjpjbG9uZSgmd29ya2VyKSkKPj4gLSAgICAgICAg ICAgIC5hd2FpdAo+PiAtICAgICAgICB7Cj4+IC0gICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRv IHRlYXJkb3duIHBsdWdpbiAne3BsdWdpbl9pZH0nIGZvciBkb21haW4gJ3tkb21haW59JyAtIHtl cnJ9Iik7Cj4+IC0gICAgICAgIH0KPj4gLQo+PiAtICAgICAgICByZXN1bHQ/Owo+PiAtICAgIH0K Pj4gLQo+PiAtICAgIGluZm8hKCJBbGwgZG9tYWlucyB2YWxpZGF0ZWQiKTsKPj4gLSAgICBpbmZv ISgiQ3JlYXRpbmcgQ1NSIik7Cj4+IC0KPj4gLSAgICBsZXQgY3NyID0gcHJveG1veF9hY21lOjp1 dGlsOjpDc3I6OmdlbmVyYXRlKCZpZGVudGlmaWVycywgJkRlZmF1bHQ6OmRlZmF1bHQoKSk/Owo+ PiAtICAgIGxldCBtdXQgZmluYWxpemVfZXJyb3JfY250ID0gMHU4Owo+PiAtICAgIGxldCBvcmRl cl91cmwgPSAmb3JkZXIubG9jYXRpb247Cj4+IC0gICAgbGV0IG11dCBvcmRlcjsKPj4gLSAgICBs b29wIHsKPj4gLSAgICAgICAgdXNlIHByb3htb3hfYWNtZTo6b3JkZXI6OlN0YXR1czsKPj4gLQo+ PiAtICAgICAgICBvcmRlciA9IGFjbWUuZ2V0X29yZGVyKG9yZGVyX3VybCkuYXdhaXQ/Owo+PiAt Cj4+IC0gICAgICAgIG1hdGNoIG9yZGVyLnN0YXR1cyB7Cj4+IC0gICAgICAgICAgICBTdGF0dXM6 OlBlbmRpbmcgPT4gewo+PiAtICAgICAgICAgICAgICAgIGluZm8hKCJzdGlsbCBwZW5kaW5nLCB0 cnlpbmcgdG8gZmluYWxpemUgYW55d2F5Iik7Cj4+IC0gICAgICAgICAgICAgICAgbGV0IGZpbmFs aXplID0gb3JkZXIKPj4gLSAgICAgICAgICAgICAgICAgICAgLmZpbmFsaXplCj4+IC0gICAgICAg ICAgICAgICAgICAgIC5hc19kZXJlZigpCj4+IC0gICAgICAgICAgICAgICAgICAgIC5va19vcl9l bHNlKHx8IGZvcm1hdF9lcnIhKCJtaXNzaW5nICdmaW5hbGl6ZScgVVJMIGluIG9yZGVyIikpPzsK Pj4gLSAgICAgICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBhY21lLmZpbmFsaXplKGZpbmFs aXplLCAmY3NyLmRhdGEpLmF3YWl0IHsKPj4gLSAgICAgICAgICAgICAgICAgICAgaWYgZmluYWxp emVfZXJyb3JfY250ID49IDUgewo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVy cihlcnIpOwo+PiAtICAgICAgICAgICAgICAgICAgICB9Cj4+IC0KPj4gLSAgICAgICAgICAgICAg ICAgICAgZmluYWxpemVfZXJyb3JfY250ICs9IDE7Cj4+IC0gICAgICAgICAgICAgICAgfQo+PiAt ICAgICAgICAgICAgICAgIHRva2lvOjp0aW1lOjpzbGVlcChEdXJhdGlvbjo6ZnJvbV9zZWNzKDUp KS5hd2FpdDsKPj4gLSAgICAgICAgICAgIH0KPj4gLSAgICAgICAgICAgIFN0YXR1czo6UmVhZHkg PT4gewo+PiAtICAgICAgICAgICAgICAgIGluZm8hKCJvcmRlciBpcyByZWFkeSwgZmluYWxpemlu ZyIpOwo+PiAtICAgICAgICAgICAgICAgIGxldCBmaW5hbGl6ZSA9IG9yZGVyCj4+IC0gICAgICAg ICAgICAgICAgICAgIC5maW5hbGl6ZQo+PiAtICAgICAgICAgICAgICAgICAgICAuYXNfZGVyZWYo KQo+PiAtICAgICAgICAgICAgICAgICAgICAub2tfb3JfZWxzZSh8fCBmb3JtYXRfZXJyISgibWlz c2luZyAnZmluYWxpemUnIFVSTCBpbiBvcmRlciIpKT87Cj4+IC0gICAgICAgICAgICAgICAgYWNt ZS5maW5hbGl6ZShmaW5hbGl6ZSwgJmNzci5kYXRhKS5hd2FpdD87Cj4+IC0gICAgICAgICAgICAg ICAgdG9raW86OnRpbWU6OnNsZWVwKER1cmF0aW9uOjpmcm9tX3NlY3MoNSkpLmF3YWl0Owo+PiAt ICAgICAgICAgICAgfQo+PiAtICAgICAgICAgICAgU3RhdHVzOjpQcm9jZXNzaW5nID0+IHsKPj4g LSAgICAgICAgICAgICAgICBpbmZvISgic3RpbGwgcHJvY2Vzc2luZywgdHJ5aW5nIGFnYWluIGlu IDMwIHNlY29uZHMiKTsKPj4gLSAgICAgICAgICAgICAgICB0b2tpbzo6dGltZTo6c2xlZXAoRHVy YXRpb246OmZyb21fc2VjcygzMCkpLmF3YWl0Owo+PiAtICAgICAgICAgICAgfQo+PiAtICAgICAg ICAgICAgU3RhdHVzOjpWYWxpZCA9PiB7Cj4+IC0gICAgICAgICAgICAgICAgaW5mbyEoInZhbGlk Iik7Cj4+IC0gICAgICAgICAgICAgICAgYnJlYWs7Cj4+IC0gICAgICAgICAgICB9Cj4+IC0gICAg ICAgICAgICBvdGhlciA9PiBiYWlsISgib3JkZXIgc3RhdHVzOiB7Oj99Iiwgb3RoZXIpLAo+PiAt ICAgICAgICB9Cj4+IC0gICAgfQo+PiAtCj4+IC0gICAgaW5mbyEoIkRvd25sb2FkaW5nIGNlcnRp ZmljYXRlIik7Cj4+IC0gICAgbGV0IGNlcnRpZmljYXRlID0gYWNtZQo+PiAtICAgICAgICAuZ2V0 X2NlcnRpZmljYXRlKAo+PiAtICAgICAgICAgICAgb3JkZXIKPj4gLSAgICAgICAgICAgICAgICAu Y2VydGlmaWNhdGUKPj4gLSAgICAgICAgICAgICAgICAuYXNfZGVyZWYoKQo+PiAtICAgICAgICAg ICAgICAgIC5va19vcl9lbHNlKHx8IGZvcm1hdF9lcnIhKCJtaXNzaW5nIGNlcnRpZmljYXRlIHVy bCBpbiBmaW5hbGl6ZWQgb3JkZXIiKSk/LAo+PiAtICAgICAgICApCj4+IC0gICAgICAgIC5hd2Fp dD87Cj4+IC0KPj4gLSAgICBPayhTb21lKE9yZGVyZWRDZXJ0aWZpY2F0ZSB7Cj4+IC0gICAgICAg IGNlcnRpZmljYXRlLAo+PiAtICAgICAgICBwcml2YXRlX2tleV9wZW06IGNzci5wcml2YXRlX2tl eV9wZW0sCj4+IC0gICAgfSkpCj4+IC19Cj4+IC0KPj4gLWFzeW5jIGZuIHJlcXVlc3RfdmFsaWRh dGlvbigKPj4gLSAgICBhY21lOiAmbXV0IEFjbWVDbGllbnQsCj4+IC0gICAgYXV0aF91cmw6ICZz dHIsCj4+IC0gICAgdmFsaWRhdGlvbl91cmw6ICZzdHIsCj4+IC0pIC0+IFJlc3VsdDwoKSwgRXJy b3I+IHsKPj4gLSAgICBpbmZvISgiVHJpZ2dlcmluZyB2YWxpZGF0aW9uIik7Cj4+IC0gICAgYWNt ZS5yZXF1ZXN0X2NoYWxsZW5nZV92YWxpZGF0aW9uKHZhbGlkYXRpb25fdXJsKS5hd2FpdD87Cj4+ IC0KPj4gLSAgICBpbmZvISgiU2xlZXBpbmcgZm9yIDUgc2Vjb25kcyIpOwo+PiAtICAgIHRva2lv Ojp0aW1lOjpzbGVlcChEdXJhdGlvbjo6ZnJvbV9zZWNzKDUpKS5hd2FpdDsKPj4gLQo+PiAtICAg IGxvb3Agewo+PiAtICAgICAgICB1c2UgcHJveG1veF9hY21lOjphdXRob3JpemF0aW9uOjpTdGF0 dXM7Cj4+IC0KPj4gLSAgICAgICAgbGV0IGF1dGggPSBhY21lLmdldF9hdXRob3JpemF0aW9uKGF1 dGhfdXJsKS5hd2FpdD87Cj4+IC0gICAgICAgIG1hdGNoIGF1dGguc3RhdHVzIHsKPj4gLSAgICAg ICAgICAgIFN0YXR1czo6UGVuZGluZyA9PiB7Cj4+IC0gICAgICAgICAgICAgICAgaW5mbyEoIlN0 YXR1cyBpcyBzdGlsbCAncGVuZGluZycsIHRyeWluZyBhZ2FpbiBpbiAxMCBzZWNvbmRzIik7Cj4+ IC0gICAgICAgICAgICAgICAgdG9raW86OnRpbWU6OnNsZWVwKER1cmF0aW9uOjpmcm9tX3NlY3Mo MTApKS5hd2FpdDsKPj4gLSAgICAgICAgICAgIH0KPj4gLSAgICAgICAgICAgIFN0YXR1czo6VmFs aWQgPT4gcmV0dXJuIE9rKCgpKSwKPj4gLSAgICAgICAgICAgIG90aGVyID0+IGJhaWwhKAo+PiAt ICAgICAgICAgICAgICAgICJ2YWxpZGF0aW5nIGNoYWxsZW5nZSAne30nIGZhaWxlZCAtIHN0YXR1 czogezo/fSIsCj4+IC0gICAgICAgICAgICAgICAgdmFsaWRhdGlvbl91cmwsCj4+IC0gICAgICAg ICAgICAgICAgb3RoZXIKPj4gLSAgICAgICAgICAgICksCj4+IC0gICAgICAgIH0KPj4gLSAgICB9 Cj4+IC19Cj4+IC0KPj4gICAjW2FwaSgKPj4gICAgICAgaW5wdXQ6IHsKPj4gICAgICAgICAgIHBy b3BlcnRpZXM6IHsKPj4gQEAgLTUyNCw5ICszMzIsMzAgQEAgZm4gc3Bhd25fY2VydGlmaWNhdGVf d29ya2VyKAo+PiAgIAo+PiAgICAgICBsZXQgYXV0aF9pZCA9IHJwY2Vudi5nZXRfYXV0aF9pZCgp LnVud3JhcCgpOwo+PiAgIAo+PiArICAgIGxldCBhY21lX2NvbmZpZyA9IGlmIGxldCBTb21lKGNm ZykgPSBub2RlX2NvbmZpZy5hY21lX2NvbmZpZygpLnRyYW5zcG9zZSgpPyB7Cj4+ICsgICAgICAg IGNmZwo+PiArICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgIHByb3htb3hfYWNtZV9hcGk6OnBhcnNl X2FjbWVfY29uZmlnX3N0cmluZygiYWNjb3VudD1kZWZhdWx0Iik/Cj4+ICsgICAgfTsKPiAKPiB3 b3VsZG4ndCBpdCBtYWtlIHNlbnNlIHRvIGlubGluZSB0aGlzIGludG8gYWNtZV9jb25maWcoKSA/ IHRoZSBzYW1lCj4gZmFsbGJhY2sgaXMgYWxyZWFkeSB0aGVyZSBmb3IgYWNtZV9jbGllbnQoKQo+ CgpHb29kIGNhdGNoLCB3aWxsIHJlZmFjdG9yIQoKPj4gKwo+PiArICAgIGxldCBkb21haW5zID0g bm9kZV9jb25maWcuYWNtZV9kb21haW5zKCkudHJ5X2ZvbGQoCj4+ICsgICAgICAgIFZlYzo6PEFj bWVEb21haW4+OjpuZXcoKSwKPj4gKyAgICAgICAgfG11dCBhY2MsIGRvbWFpbnwgLT4gUmVzdWx0 PF8sIEVycm9yPiB7Cj4+ICsgICAgICAgICAgICBsZXQgbXV0IGRvbWFpbiA9IGRvbWFpbj87Cj4+ ICsgICAgICAgICAgICBkb21haW4uZG9tYWluLm1ha2VfYXNjaWlfbG93ZXJjYXNlKCk7Cj4+ICsg ICAgICAgICAgICBpZiBsZXQgU29tZShhbGlhcykgPSAmbXV0IGRvbWFpbi5hbGlhcyB7Cj4+ICsg ICAgICAgICAgICAgICAgYWxpYXMubWFrZV9hc2NpaV9sb3dlcmNhc2UoKTsKPj4gKyAgICAgICAg ICAgIH0KPj4gKyAgICAgICAgICAgIGFjYy5wdXNoKGRvbWFpbik7Cj4+ICsgICAgICAgICAgICBP ayhhY2MpCj4+ICsgICAgICAgIH0sCj4+ICsgICAgKT87Cj4+ICsKPj4gICAgICAgV29ya2VyVGFz azo6c3Bhd24obmFtZSwgTm9uZSwgYXV0aF9pZCwgdHJ1ZSwgbW92ZSB8d29ya2VyfCBhc3luYyBt b3ZlIHsKPj4gICAgICAgICAgIGxldCB3b3JrID0gfHwgYXN5bmMgewo+PiAtICAgICAgICAgICAg aWYgbGV0IFNvbWUoY2VydCkgPSBvcmRlcl9jZXJ0aWZpY2F0ZSh3b3JrZXIsICZub2RlX2NvbmZp ZykuYXdhaXQ/IHsKPj4gKyAgICAgICAgICAgIGlmIGxldCBTb21lKGNlcnQpID0KPj4gKyAgICAg ICAgICAgICAgICBwcm94bW94X2FjbWVfYXBpOjpvcmRlcl9jZXJ0aWZpY2F0ZSh3b3JrZXIsICZh Y21lX2NvbmZpZywgJmRvbWFpbnMpLmF3YWl0Pwo+PiArICAgICAgICAgICAgewo+PiAgICAgICAg ICAgICAgICAgICBjcmF0ZTo6Y29uZmlnOjpzZXRfcHJveHlfY2VydGlmaWNhdGUoJmNlcnQuY2Vy dGlmaWNhdGUsICZjZXJ0LnByaXZhdGVfa2V5X3BlbSk/Owo+PiAgICAgICAgICAgICAgICAgICBj cmF0ZTo6c2VydmVyOjpyZWxvYWRfcHJveHlfY2VydGlmaWNhdGUoKS5hd2FpdD87Cj4+ICAgICAg ICAgICAgICAgfQo+PiBAQCAtNTYyLDE2ICszOTEsMjAgQEAgcHViIGZuIHJldm9rZV9hY21lX2Nl cnQocnBjZW52OiAmbXV0IGR5biBScGNFbnZpcm9ubWVudCkgLT4gUmVzdWx0PFN0cmluZywgRXJy b3IKPj4gICAKPj4gICAgICAgbGV0IGF1dGhfaWQgPSBycGNlbnYuZ2V0X2F1dGhfaWQoKS51bndy YXAoKTsKPj4gICAKPj4gKyAgICBsZXQgYWNtZV9jb25maWcgPSBpZiBsZXQgU29tZShjZmcpID0g bm9kZV9jb25maWcuYWNtZV9jb25maWcoKS50cmFuc3Bvc2UoKT8gewo+PiArICAgICAgICBjZmcK Pj4gKyAgICB9IGVsc2Ugewo+PiArICAgICAgICBwcm94bW94X2FjbWVfYXBpOjpwYXJzZV9hY21l X2NvbmZpZ19zdHJpbmcoImFjY291bnQ9ZGVmYXVsdCIpPwo+PiArICAgIH07Cj4gCj4gaGVyZSBh cyB3ZWxsCj4KCldpbGwgYWRqdXN0IQoKPj4gKwo+PiAgICAgICBXb3JrZXJUYXNrOjpzcGF3bigK Pj4gICAgICAgICAgICJhY21lLXJldm9rZS1jZXJ0IiwKPj4gICAgICAgICAgIE5vbmUsCj4+ICAg ICAgICAgICBhdXRoX2lkLAo+PiAgICAgICAgICAgdHJ1ZSwKPj4gICAgICAgICAgIG1vdmUgfF93 b3JrZXJ8IGFzeW5jIG1vdmUgewo+PiAtICAgICAgICAgICAgaW5mbyEoIkxvYWRpbmcgQUNNRSBh Y2NvdW50Iik7Cj4+IC0gICAgICAgICAgICBsZXQgbXV0IGFjbWUgPSBub2RlX2NvbmZpZy5hY21l X2NsaWVudCgpLmF3YWl0PzsKPj4gICAgICAgICAgICAgICBpbmZvISgiUmV2b2tpbmcgb2xkIGNl cnRpZmljYXRlIik7Cj4+IC0gICAgICAgICAgICBhY21lLnJldm9rZV9jZXJ0aWZpY2F0ZShjZXJ0 X3BlbS5hc19ieXRlcygpLCBOb25lKS5hd2FpdD87Cj4+ICsgICAgICAgICAgICBwcm94bW94X2Fj bWVfYXBpOjpyZXZva2VfY2VydGlmaWNhdGUoJmFjbWVfY29uZmlnLCAmY2VydF9wZW0uYXNfYnl0 ZXMoKSkuYXdhaXQ/Owo+PiAgICAgICAgICAgICAgIGluZm8hKCJEZWxldGluZyBjZXJ0aWZpY2F0 ZSBhbmQgcmVnZW5lcmF0aW5nIGEgc2VsZi1zaWduZWQgb25lIik7Cj4+ICAgICAgICAgICAgICAg ZGVsZXRlX2N1c3RvbV9jZXJ0aWZpY2F0ZSgpLmF3YWl0PzsKPj4gICAgICAgICAgICAgICBPaygo KSkKPiAKPiBbLi5dCj4gCj4+IGRpZmYgLS1naXQgYS9zcmMvY29uZmlnL2FjbWUvcGx1Z2luLnJz IGIvc3JjL2NvbmZpZy9hY21lL3BsdWdpbi5ycwo+PiBpbmRleCA4Y2U4NTJlYy4uNGI0YTIxNmUg MTAwNjQ0Cj4+IC0tLSBhL3NyYy9jb25maWcvYWNtZS9wbHVnaW4ucnMKPj4gKysrIGIvc3JjL2Nv bmZpZy9hY21lL3BsdWdpbi5ycwo+PiBAQCAtMSwxMDQgKzEsMTYgQEAKPj4gICB1c2Ugc3RkOjpz eW5jOjpMYXp5TG9jazsKPj4gICAKPj4gICB1c2UgYW55aG93OjpFcnJvcjsKPj4gLXVzZSBzZXJk ZTo6e0Rlc2VyaWFsaXplLCBTZXJpYWxpemV9Owo+PiAgIHVzZSBzZXJkZV9qc29uOjpWYWx1ZTsK Pj4gICAKPj4gLXVzZSBwYnNfYXBpX3R5cGVzOjpQUk9YTU9YX1NBRkVfSURfRk9STUFUOwo+PiAt dXNlIHByb3htb3hfc2NoZW1hOjp7YXBpLCBBcGlUeXBlLCBTY2hlbWEsIFN0cmluZ1NjaGVtYSwg VXBkYXRlcn07Cj4+ICt1c2UgcHJveG1veF9hY21lX2FwaTo6e0Ruc1BsdWdpbiwgU3RhbmRhbG9u ZVBsdWdpbiwgUExVR0lOX0lEX1NDSEVNQX07Cj4+ICt1c2UgcHJveG1veF9zY2hlbWE6OntBcGlU eXBlLCBTY2hlbWF9Owo+PiAgIHVzZSBwcm94bW94X3NlY3Rpb25fY29uZmlnOjp7U2VjdGlvbkNv bmZpZywgU2VjdGlvbkNvbmZpZ0RhdGEsIFNlY3Rpb25Db25maWdQbHVnaW59Owo+PiAgIAo+PiAg IHVzZSBwYnNfY29uZmlnOjp7b3Blbl9iYWNrdXBfbG9ja2ZpbGUsIEJhY2t1cExvY2tHdWFyZH07 Cj4+ICAgCj4+IC1wdWIgY29uc3QgUExVR0lOX0lEX1NDSEVNQTogU2NoZW1hID0gU3RyaW5nU2No ZW1hOjpuZXcoIkFDTUUgQ2hhbGxlbmdlIFBsdWdpbiBJRC4iKQo+PiAtICAgIC5mb3JtYXQoJlBS T1hNT1hfU0FGRV9JRF9GT1JNQVQpCj4+IC0gICAgLm1pbl9sZW5ndGgoMSkKPj4gLSAgICAubWF4 X2xlbmd0aCgzMikKPj4gLSAgICAuc2NoZW1hKCk7Cj4+IC0KPj4gICBwdWIgc3RhdGljIENPTkZJ RzogTGF6eUxvY2s8U2VjdGlvbkNvbmZpZz4gPSBMYXp5TG9jazo6bmV3KGluaXQpOwo+PiAgIAo+ PiAtI1thcGkoCj4+IC0gICAgcHJvcGVydGllczogewo+PiAtICAgICAgICBpZDogeyBzY2hlbWE6 IFBMVUdJTl9JRF9TQ0hFTUEgfSwKPj4gLSAgICB9LAo+PiAtKV0KPj4gLSNbZGVyaXZlKERlc2Vy aWFsaXplLCBTZXJpYWxpemUpXQo+PiAtLy8vIFN0YW5kYWxvbmUgQUNNRSBQbHVnaW4gZm9yIHRo ZSBodHRwLTEgY2hhbGxlbmdlLgo+PiAtcHViIHN0cnVjdCBTdGFuZGFsb25lUGx1Z2luIHsKPj4g LSAgICAvLy8gUGx1Z2luIElELgo+PiAtICAgIGlkOiBTdHJpbmcsCj4+IC19Cj4+IC0KPj4gLWlt cGwgRGVmYXVsdCBmb3IgU3RhbmRhbG9uZVBsdWdpbiB7Cj4+IC0gICAgZm4gZGVmYXVsdCgpIC0+ IFNlbGYgewo+PiAtICAgICAgICBTZWxmIHsKPj4gLSAgICAgICAgICAgIGlkOiAic3RhbmRhbG9u ZSIudG9fc3RyaW5nKCksCj4+IC0gICAgICAgIH0KPj4gLSAgICB9Cj4+IC19Cj4+IC0KPj4gLSNb YXBpKAo+PiAtICAgIHByb3BlcnRpZXM6IHsKPj4gLSAgICAgICAgaWQ6IHsgc2NoZW1hOiBQTFVH SU5fSURfU0NIRU1BIH0sCj4+IC0gICAgICAgIGRpc2FibGU6IHsKPj4gLSAgICAgICAgICAgIG9w dGlvbmFsOiB0cnVlLAo+PiAtICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsCj4+IC0gICAgICAg IH0sCj4+IC0gICAgICAgICJ2YWxpZGF0aW9uLWRlbGF5Ijogewo+PiAtICAgICAgICAgICAgZGVm YXVsdDogMzAsCj4+IC0gICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKPj4gLSAgICAgICAgICAg IG1pbmltdW06IDAsCj4+IC0gICAgICAgICAgICBtYXhpbXVtOiAyICogMjQgKiA2MCAqIDYwLAo+ PiAtICAgICAgICB9LAo+PiAtICAgIH0sCj4+IC0pXQo+PiAtLy8vIEROUyBBQ01FIENoYWxsZW5n ZSBQbHVnaW4gY29yZSBkYXRhLgo+PiAtI1tkZXJpdmUoRGVzZXJpYWxpemUsIFNlcmlhbGl6ZSwg VXBkYXRlcildCj4+IC0jW3NlcmRlKHJlbmFtZV9hbGwgPSAia2ViYWItY2FzZSIpXQo+PiAtcHVi IHN0cnVjdCBEbnNQbHVnaW5Db3JlIHsKPj4gLSAgICAvLy8gUGx1Z2luIElELgo+PiAtICAgICNb dXBkYXRlcihza2lwKV0KPj4gLSAgICBwdWIgaWQ6IFN0cmluZywKPj4gLQo+PiAtICAgIC8vLyBE TlMgQVBJIFBsdWdpbiBJZC4KPj4gLSAgICBwdWIgYXBpOiBTdHJpbmcsCj4+IC0KPj4gLSAgICAv Ly8gRXh0cmEgZGVsYXkgaW4gc2Vjb25kcyB0byB3YWl0IGJlZm9yZSByZXF1ZXN0aW5nIHZhbGlk YXRpb24uCj4+IC0gICAgLy8vCj4+IC0gICAgLy8vIEFsbG93cyB0byBjb3BlIHdpdGggbG9uZyBU VEwgb2YgRE5TIHJlY29yZHMuCj4+IC0gICAgI1tzZXJkZShza2lwX3NlcmlhbGl6aW5nX2lmID0g Ik9wdGlvbjo6aXNfbm9uZSIsIGRlZmF1bHQpXQo+PiAtICAgIHB1YiB2YWxpZGF0aW9uX2RlbGF5 OiBPcHRpb248dTMyPiwKPj4gLQo+PiAtICAgIC8vLyBGbGFnIHRvIGRpc2FibGUgdGhlIGNvbmZp Zy4KPj4gLSAgICAjW3NlcmRlKHNraXBfc2VyaWFsaXppbmdfaWYgPSAiT3B0aW9uOjppc19ub25l IiwgZGVmYXVsdCldCj4+IC0gICAgcHViIGRpc2FibGU6IE9wdGlvbjxib29sPiwKPj4gLX0KPj4g LQo+PiAtI1thcGkoCj4+IC0gICAgcHJvcGVydGllczogewo+PiAtICAgICAgICBjb3JlOiB7IHR5 cGU6IERuc1BsdWdpbkNvcmUgfSwKPj4gLSAgICB9LAo+PiAtKV0KPj4gLS8vLyBETlMgQUNNRSBD aGFsbGVuZ2UgUGx1Z2luLgo+PiAtI1tkZXJpdmUoRGVzZXJpYWxpemUsIFNlcmlhbGl6ZSldCj4+ IC0jW3NlcmRlKHJlbmFtZV9hbGwgPSAia2ViYWItY2FzZSIpXQo+PiAtcHViIHN0cnVjdCBEbnNQ bHVnaW4gewo+PiAtICAgICNbc2VyZGUoZmxhdHRlbildCj4+IC0gICAgcHViIGNvcmU6IERuc1Bs dWdpbkNvcmUsCj4+IC0KPj4gLSAgICAvLyBXZSBoYW5kbGUgdGhpcyBwcm9wZXJ0eSBzZXBhcmF0 ZWx5IGluIHRoZSBBUEkgY2FsbHMuCj4+IC0gICAgLy8vIEROUyBwbHVnaW4gZGF0YSAoYmFzZTY0 dXJsIGVuY29kZWQgd2l0aG91dCBwYWRkaW5nKS4KPj4gLSAgICAjW3NlcmRlKHdpdGggPSAicHJv eG1veF9zZXJkZTo6c3RyaW5nX2FzX2Jhc2U2NHVybF9ub3BhZCIpXQo+PiAtICAgIHB1YiBkYXRh OiBTdHJpbmcsCj4+IC19Cj4+IC0KPj4gLWltcGwgRG5zUGx1Z2luIHsKPj4gLSAgICBwdWIgZm4g ZGVjb2RlX2RhdGEoJnNlbGYsIG91dHB1dDogJm11dCBWZWM8dTg+KSAtPiBSZXN1bHQ8KCksIEVy cm9yPiB7Cj4+IC0gICAgICAgIE9rKHByb3htb3hfYmFzZTY0Ojp1cmw6OmRlY29kZV90b192ZWMo JnNlbGYuZGF0YSwgb3V0cHV0KT8pCj4+IC0gICAgfQo+PiAtfQo+PiAtCj4+ICAgZm4gaW5pdCgp IC0+IFNlY3Rpb25Db25maWcgewo+PiAgICAgICBsZXQgbXV0IGNvbmZpZyA9IFNlY3Rpb25Db25m aWc6Om5ldygmUExVR0lOX0lEX1NDSEVNQSk7Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9zcmMvY29u ZmlnL25vZGUucnMgYi9zcmMvY29uZmlnL25vZGUucnMKPj4gaW5kZXggZTRiNjZhMjAuLjY4NjVi ODE1IDEwMDY0NAo+PiAtLS0gYS9zcmMvY29uZmlnL25vZGUucnMKPj4gKysrIGIvc3JjL2NvbmZp Zy9ub2RlLnJzCj4+IEBAIC05LDE0ICs5LDE0IEBAIHVzZSBwYnNfYXBpX3R5cGVzOjp7Cj4+ICAg ICAgIE9QRU5TU0xfQ0lQSEVSU19UTFNfMV8zX1NDSEVNQSwKPj4gICB9Owo+PiAgIHVzZSBwcm94 bW94X2FjbWU6OmFzeW5jX2NsaWVudDo6QWNtZUNsaWVudDsKPj4gLXVzZSBwcm94bW94X2FjbWVf YXBpOjpBY21lQWNjb3VudE5hbWU7Cj4+ICt1c2UgcHJveG1veF9hY21lX2FwaTo6e0FjbWVBY2Nv dW50TmFtZSwgQWNtZUNvbmZpZywgQWNtZURvbWFpbiwgQUNNRV9ET01BSU5fUFJPUEVSVFlfU0NI RU1BfTsKPj4gICB1c2UgcHJveG1veF9odHRwOjpQcm94eUNvbmZpZzsKPj4gICB1c2UgcHJveG1v eF9zY2hlbWE6OnthcGksIEFwaVN0cmluZ0Zvcm1hdCwgQXBpVHlwZSwgVXBkYXRlcn07Cj4+ICAg Cj4+ICAgdXNlIHBic19idWlsZGNmZzo6Y29uZmlnZGlyOwo+PiAgIHVzZSBwYnNfY29uZmlnOjp7 b3Blbl9iYWNrdXBfbG9ja2ZpbGUsIEJhY2t1cExvY2tHdWFyZH07Cj4+ICAgCj4+IC11c2UgY3Jh dGU6OmFwaTI6OnR5cGVzOjp7QWNtZURvbWFpbiwgQUNNRV9ET01BSU5fUFJPUEVSVFlfU0NIRU1B LCBIVFRQX1BST1hZX1NDSEVNQX07Cj4+ICt1c2UgY3JhdGU6OmFwaTI6OnR5cGVzOjpIVFRQX1BS T1hZX1NDSEVNQTsKPj4gICAKPj4gICBjb25zdCBDT05GX0ZJTEU6ICZzdHIgPSBjb25maWdkaXIh KCIvbm9kZS5jZmciKTsKPj4gICBjb25zdCBMT0NLX0ZJTEU6ICZzdHIgPSBjb25maWdkaXIhKCIv Lm5vZGUubGNrIik7Cj4+IEBAIC00MywyMCArNDMsNiBAQCBwdWIgZm4gc2F2ZV9jb25maWcoY29u ZmlnOiAmTm9kZUNvbmZpZykgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiAgICAgICBwYnNfY29u ZmlnOjpyZXBsYWNlX2JhY2t1cF9jb25maWcoQ09ORl9GSUxFLCAmcmF3KQo+PiAgIH0KPj4gICAK Pj4gLSNbYXBpKAo+PiAtICAgIHByb3BlcnRpZXM6IHsKPj4gLSAgICAgICAgYWNjb3VudDogeyB0 eXBlOiBBY21lQWNjb3VudE5hbWUgfSwKPj4gLSAgICB9Cj4+IC0pXQo+PiAtI1tkZXJpdmUoRGVz ZXJpYWxpemUsIFNlcmlhbGl6ZSldCj4+IC0vLy8gVGhlIEFDTUUgY29uZmlndXJhdGlvbi4KPj4g LS8vLwo+PiAtLy8vIEN1cnJlbnRseSBvbmx5IGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBhY2Nv dW50IHVzZS4KPj4gLXB1YiBzdHJ1Y3QgQWNtZUNvbmZpZyB7Cj4+IC0gICAgLy8vIEFjY291bnQg dG8gdXNlIHRvIGFjcXVpcmUgQUNNRSBjZXJ0aWZpY2F0ZXMuCj4+IC0gICAgYWNjb3VudDogQWNt ZUFjY291bnROYW1lLAo+PiAtfQo+PiAtCj4+ICAgLy8vIEFsbCBhdmFpbGFibGUgbGFuZ3VhZ2Vz IGluIFByb3htb3guIFRha2VuIGZyb20gcHJveG1veC1pMThuIHJlcG9zaXRvcnkuCj4+ICAgLy8v IHB0X0JSLCB6aF9DTiwgYW5kIHpoX1RXIHVzZSB0aGUgc2FtZSBjYXNlIGluIHRoZSB0cmFuc2xh dGlvbiBmaWxlcy4KPj4gICAvLyBUT0RPOiBhdXRvLWdlbmVyYXRlIGZyb20gYXZhaWxhYmxlIHRy YW5zbGF0aW9ucwo+PiBAQCAtMjQyLDcgKzIyOCw3IEBAIGltcGwgTm9kZUNvbmZpZyB7Cj4+ICAg Cj4+ICAgICAgIHB1YiBhc3luYyBmbiBhY21lX2NsaWVudCgmc2VsZikgLT4gUmVzdWx0PEFjbWVD bGllbnQsIEVycm9yPiB7Cj4+ICAgICAgICAgICBsZXQgYWNjb3VudCA9IGlmIGxldCBTb21lKGNm ZykgPSBzZWxmLmFjbWVfY29uZmlnKCkudHJhbnNwb3NlKCk/IHsKPj4gLSAgICAgICAgICAgIGNm Zy5hY2NvdW50Cj4+ICsgICAgICAgICAgICBBY21lQWNjb3VudE5hbWU6OmZyb21fc3RyaW5nKGNm Zy5hY2NvdW50KT8KPj4gICAgICAgICAgIH0gZWxzZSB7Cj4+ICAgICAgICAgICAgICAgQWNtZUFj Y291bnROYW1lOjpmcm9tX3N0cmluZygiZGVmYXVsdCIudG9fc3RyaW5nKCkpPyAvLyBzaG91bGQg cmVhbGx5IG5vdCBoYXBwZW4KPj4gICAgICAgICAgIH07Cj4+IGRpZmYgLS1naXQgYS9zcmMvbGli LnJzIGIvc3JjL2xpYi5ycwo+PiBpbmRleCA4NjMzMzc4Yy4uODI4ZjU4NDIgMTAwNjQ0Cj4+IC0t LSBhL3NyYy9saWIucnMKPj4gKysrIGIvc3JjL2xpYi5ycwo+PiBAQCAtMjcsOCArMjcsNiBAQCBw dWIoY3JhdGUpIG1vZCBhdXRoOwo+PiAgIAo+PiAgIHB1YiBtb2QgdGFwZTsKPj4gICAKPj4gLXB1 YiBtb2QgYWNtZTsKPj4gLQo+PiAgIHB1YiBtb2QgY2xpZW50X2hlbHBlcnM7Cj4+ICAgCj4+ICAg cHViIG1vZCB0cmFmZmljX2NvbnRyb2xfY2FjaGU7Cj4+IC0tIAo+PiAyLjQ3LjMKPj4KPj4KPj4K Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gcGJz LWRldmVsIG1haWxpbmcgbGlzdAo+PiBwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPj4gaHR0 cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVs Cj4+Cj4+Cj4+Cj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBwYnMtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gcGJzLWRldmVsQGxpc3RzLnByb3ht b3guY29tCj4gaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGlu Zm8vcGJzLWRldmVsCj4gCj4gCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3ht b3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv L3Bicy1kZXZlbAo=