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 CF75D1FF165 for <inbox@lore.proxmox.com>; Thu, 8 May 2025 17:17:44 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4E1E01D1AC; Thu, 8 May 2025 17:18:01 +0200 (CEST) Message-ID: <999465b4-a40f-4c0f-98b8-6a272e2ee609@proxmox.com> Date: Thu, 8 May 2025 17:17:55 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: pve-devel@lists.proxmox.com References: <20250506090926.71508-1-l.leahu-vladucu@proxmox.com> <1746694526.an3gyo9wbw.astroid@yuna.none> Content-Language: en-US From: =?UTF-8?Q?Lauren=C8=9Biu_Leahu-Vl=C4=83ducu?= <l.leahu-vladucu@proxmox.com> In-Reply-To: <1746694526.an3gyo9wbw.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.297 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 Subject: Re: [pve-devel] [PATCH proxmox-offline-mirror] Add possibility to create named snapshots 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> VGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrISBTb21lIGFuc3dlcnMgaW5saW5lLgoKT24gMDguMDUu MjUgMTE6MTQsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gT24gTWF5IDYsIDIwMjUgMTE6 MDkgYW0sIExhdXJlbsibaXUgTGVhaHUtVmzEg2R1Y3Ugd3JvdGU6Cj4+IEluIGFkZGl0aW9uIHRv IHRoZSBleGlzdGluZyB0aW1lZCBzbmFwc2hvdHMsIGl0IGlzIG5vdyBwb3NzaWJsZSB0bwo+PiBj cmVhdGUgbmFtZWQgc25hcHNob3RzLiBGb3Igc29tZSB1c2UgY2FzZXMsIGl0IG1ha2VzIHNlbnNl IHRvIGdpdmUKPj4gc25hcHNob3RzIGEgc3BlY2lmaWMgbmFtZSwgZS5nLiB0byBzcGVjaWZ5IHRo ZSBwdXJwb3NlIG9mIHRoZSBzbmFwc2hvdAo+PiAoaW5zdGVhZCBvZiBhIHRpbWVzdGFtcCkuIFRo aXMgY2FuIGJlIHVzZWZ1bCB3aGVuIGRlcGxveWluZyBzbmFwc2hvdHMKPj4gY3JlYXRlZCBmb3Ig YSBjZXJ0YWluIHB1cnBvc2UgKGZvciBleGFtcGxlLCBmdXJ0aGVyIHRlc3RpbmcpLgo+Pgo+PiBQ YXJ0aWFsbHkgZml4ZXMgIzYyNTIKPj4KPj4gU2lnbmVkLW9mZi1ieTogTGF1cmVuyJtpdSBMZWFo dS1WbMSDZHVjdSA8bC5sZWFodS12bGFkdWN1QHByb3htb3guY29tPgo+PiAtLS0KPj4gICBzcmMv YmluL3Byb3htb3gtb2ZmbGluZS1taXJyb3ItaGVscGVyLnJzICAgICAgfCAgNiArLQo+PiAgIHNy Yy9iaW4vcHJveG1veF9vZmZsaW5lX21pcnJvcl9jbWRzL21pcnJvci5ycyB8IDMyICsrKysrKysr LS0tCj4+ICAgc3JjL21lZGl1bS5ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDQgKy0KPj4gICBzcmMvbWlycm9yLnJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA1NiArKysrKysrKysrKysrKystLS0tCj4+ICAgc3JjL3R5cGVzLnJzICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgNTIgKysrKysrKysrKysrKy0tLS0KPj4gICA1IGZpbGVzIGNo YW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHJveG1veC1vZmZsaW5lLW1pcnJvci1oZWxwZXIucnMgYi9zcmMvYmluL3By b3htb3gtb2ZmbGluZS1taXJyb3ItaGVscGVyLnJzCj4+IGluZGV4IDc5MTFkNTIuLmEwMGQyNmQg MTAwNjQ0Cj4+IC0tLSBhL3NyYy9iaW4vcHJveG1veC1vZmZsaW5lLW1pcnJvci1oZWxwZXIucnMK Pj4gKysrIGIvc3JjL2Jpbi9wcm94bW94LW9mZmxpbmUtbWlycm9yLWhlbHBlci5ycwo+PiBAQCAt MTUxLDggKzE1MSw4IEBAIGFzeW5jIGZuIHNldHVwKF9wYXJhbTogVmFsdWUpIC0+IFJlc3VsdDwo KSwgRXJyb3I+IHsKPj4gICAgICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkX21pcnJvciA9IHJl YWRfc2VsZWN0aW9uX2Zyb21fdHR5KCJTZWxlY3QgbWlycm9yIiwgJm1pcnJvcnMsIE5vbmUpPzsK Pj4gICAgICAgICAgICAgICAgICAgbGV0IHNuYXBzaG90czogVmVjPChTbmFwc2hvdCwgU3RyaW5n KT4gPQo+PiAgICAgICAgICAgICAgICAgICAgICAgbWVkaXVtOjpsaXN0X3NuYXBzaG90cyhtb3Vu dHBvaW50LCBzZWxlY3RlZF9taXJyb3IpPwo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgLmlu dG9faXRlcigpCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAubWFwKHxzfCAocywgcy50b19z dHJpbmcoKSkpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAuaXRlcigpCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAubWFwKHxzfCAocy5jbG9uZSgpLCBzLnRvX3N0cmluZygpKSkKPiAK PiBkb2Vzbid0IGh1cnQgdG9vIG11Y2gsIGJ1dCBjb3VsZCBzdGlsbCBiZSBhdm9pZGVkIGJ5IGRv aW5nIHRvX3N0cmluZygpCj4gZmlyc3QuLgo+IAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg IC5jb2xsZWN0KCk7Cj4+ICAgICAgICAgICAgICAgICAgIGlmIHNuYXBzaG90cy5pc19lbXB0eSgp IHsKPj4gICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4hKCJNaXJyb3IgZG9lc24ndCBoYXZl IGFueSBzeW5jZWQgc25hcHNob3RzLiIpOwo+PiBAQCAtMTczLDcgKzE3Myw3IEBAIGFzeW5jIGZu IHNldHVwKF9wYXJhbTogVmFsdWUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gICAgICAgICAg ICAgICAgICAgICAgIHNlbGVjdGVkX21pcnJvci50b19zdHJpbmcoKSwKPj4gICAgICAgICAgICAg ICAgICAgICAgICgKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5taXJyb3JzLmdl dCgqc2VsZWN0ZWRfbWlycm9yKS51bndyYXAoKSwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICoqc2VsZWN0ZWRfc25hcHNob3QsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKipzZWxl Y3RlZF9zbmFwc2hvdCkuY2xvbmUoKSwKPj4gICAgICAgICAgICAgICAgICAgICAgICksCj4+ICAg ICAgICAgICAgICAgICAgICk7Cj4+ICAgICAgICAgICAgICAgfQo+PiBkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wcm94bW94X29mZmxpbmVfbWlycm9yX2NtZHMvbWlycm9yLnJzIGIvc3JjL2Jpbi9wcm94 bW94X29mZmxpbmVfbWlycm9yX2NtZHMvbWlycm9yLnJzCj4+IGluZGV4IDMxYTU2NWUuLjdlYmEw NGQgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9iaW4vcHJveG1veF9vZmZsaW5lX21pcnJvcl9jbWRzL21p cnJvci5ycwo+PiArKysgYi9zcmMvYmluL3Byb3htb3hfb2ZmbGluZV9taXJyb3JfY21kcy9taXJy b3IucnMKPj4gQEAgLTE3LDcgKzE3LDcgQEAgdXNlIHByb3htb3hfc2NoZW1hOjphcGk7Cj4+ICAg dXNlIHByb3htb3hfb2ZmbGluZV9taXJyb3I6OnsKPj4gICAgICAgY29uZmlnOjp7TWlycm9yQ29u ZmlnLCBTdWJzY3JpcHRpb25LZXl9LAo+PiAgICAgICBtaXJyb3IsCj4+IC0gICAgdHlwZXM6OntN SVJST1JfSURfU0NIRU1BLCBTbmFwc2hvdH0sCj4+ICsgICAgdHlwZXM6OntNSVJST1JfSURfU0NI RU1BLCBOQU1FRF9TTkFQU0hPVF9TQ0hFTUEsIFNuYXBzaG90fSwKPj4gICB9Owo+PiAgIAo+PiAg IHVzZSBzdXBlcjo6Z2V0X2NvbmZpZ19wYXRoOwo+PiBAQCAtNjAsNiArNjAsMTAgQEAgZm4gZ2V0 X3N1YnNjcmlwdGlvbl9rZXkoCj4+ICAgICAgICAgICAgICAgaWQ6IHsKPj4gICAgICAgICAgICAg ICAgICAgc2NoZW1hOiBNSVJST1JfSURfU0NIRU1BLAo+PiAgICAgICAgICAgICAgIH0sCj4+ICsg ICAgICAgICAgICBuYW1lOiB7Cj4+ICsgICAgICAgICAgICAgICAgc2NoZW1hOiBOQU1FRF9TTkFQ U0hPVF9TQ0hFTUEsCj4+ICsgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCj4+ICsgICAg ICAgICAgICB9LAo+PiAgICAgICAgICAgICAgICJkcnktcnVuIjogewo+PiAgICAgICAgICAgICAg ICAgICB0eXBlOiBib29sLAo+PiAgICAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKPj4g QEAgLTczLDYgKzc3LDcgQEAgZm4gZ2V0X3N1YnNjcmlwdGlvbl9rZXkoCj4+ICAgYXN5bmMgZm4g Y3JlYXRlX3NuYXBzaG90KAo+PiAgICAgICBjb25maWc6IE9wdGlvbjxTdHJpbmc+LAo+PiAgICAg ICBpZDogU3RyaW5nLAo+PiArICAgIG5hbWU6IE9wdGlvbjxTdHJpbmc+LAo+PiAgICAgICBkcnlf cnVuOiBib29sLAo+PiAgICAgICBfcGFyYW06IFZhbHVlLAo+PiAgICkgLT4gUmVzdWx0PCgpLCBF cnJvcj4gewo+PiBAQCAtODMsMTIgKzg4LDEyIEBAIGFzeW5jIGZuIGNyZWF0ZV9zbmFwc2hvdCgK Pj4gICAKPj4gICAgICAgbGV0IHN1YnNjcmlwdGlvbiA9IGdldF9zdWJzY3JpcHRpb25fa2V5KCZz ZWN0aW9uX2NvbmZpZywgJmNvbmZpZyk/Owo+PiAgIAo+PiAtICAgIHByb3htb3hfb2ZmbGluZV9t aXJyb3I6Om1pcnJvcjo6Y3JlYXRlX3NuYXBzaG90KAo+PiAtICAgICAgICBjb25maWcsCj4+IC0g ICAgICAgICZTbmFwc2hvdDo6bm93KCksCj4+IC0gICAgICAgIHN1YnNjcmlwdGlvbiwKPj4gLSAg ICAgICAgZHJ5X3J1biwKPj4gLSAgICApPzsKPj4gKyAgICBsZXQgc25hcHNob3QgPSBtYXRjaCAm bmFtZSB7Cj4+ICsgICAgICAgIFNvbWUobmFtZSkgPT4gU25hcHNob3Q6OndpdGhfbmFtZSgmbmFt ZSksCj4+ICsgICAgICAgIE5vbmUgPT4gU25hcHNob3Q6Om5vdygpLAo+PiArICAgIH07Cj4+ICsK Pj4gKyAgICBwcm94bW94X29mZmxpbmVfbWlycm9yOjptaXJyb3I6OmNyZWF0ZV9zbmFwc2hvdChj b25maWcsICZzbmFwc2hvdCwgc3Vic2NyaXB0aW9uLCBkcnlfcnVuKT87Cj4gCj4gSSB0aGluayBp dCB3b3VsZCBtYWtlIG1vcmUgc2Vuc2UgdG8gdHJlYXQgdGhlIG5hbWUgYXMgYW4gZXh0cmEgImxh YmVsIiwKPiByYXRoZXIgdGhhbiBhcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgdGltZXN0YW1wLi4K PiAKPiBiZWNhdXNlIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2g6Cj4gLSB3ZSBsb3NlIHRoZSBp bmZvcm1hdGlvbiB3aGVuIGEgc25hcHNob3Qgd2FzIGNyZWF0ZWQsIHdoaWNoIGlzCj4gICAgaW1w b3J0YW50IGZvciBvcmRlcmluZwo+IC0gKmFueXRoaW5nKiB0aGF0IG1hdGNoZXMgdGhlIHJlbGF4 ZWQgc2NoZW1hIGlzIG5vdyB0cmVhdGVkIGFzIHNuYXBzaG90LAo+ICAgIGluY2x1ZGluZyB0ZW1w b3JhcnkgZGlycyBmb3IgbmFtZWQgc25hcHNob3RzCj4gCj4gaWYgd2UgYXR0YWNoIHRoZSBsYWJl bCAqYWZ0ZXIqIGNyZWF0aW5nIHRoZSBzbmFwc2hvdCAoZS5nLiwgYXMgYSBzeW1saW5rCj4gcG9p bnRpbmcgYXQgYSBzbmFwc2hvdCBkaXI/KSwgd2UgYXZvaWQgdGhvc2UgaXNzdWVzIChhbmQgZXZl biBnZXQKPiBhZGRpdGlvbmFsIGJlbmVmaXRzLCBsaWtlIG1vdmluZyBhIGxhYmVsIGZvcndhcmQs IGhhdmluZyBtdWx0aXBsZSBsYWJlbHMKPiBmb3IgYSBzaW5nbGUgc25hcHNob3QsIC4uKS4KPiAK PiBvZiBjb3Vyc2UsIHRoYXQgbWVhbnMgaGFuZGxpbmcgZGFuZ2xpbmcgc3ltbGlua3MsIGFuZCBo YW5kbGluZyBvZiB0aG9zZQo+IHN5bWxpbmtzIGluIGdlbmVyYWwgaW4gc29tZSBwYXJ0cy4uCgpT dXJlLCB0aGlzIGlzIHByb2JhYmx5IHRoZSBzYWZlciBhcHByb2FjaCBpbiB0aGUgbG9uZyBydW4g KGFsc28gYmVjYXVzZSAKb2Ygd2hhdCB5b3UgbWVudGlvbmVkIGJlbG93KS4gSSdsbCBzZW5kIGEg djIgY29udGFpbmluZyB5b3VyIHN1Z2dlc3Rpb25zIApzb29uLgoKPiAKPj4gICAKPj4gICAgICAg T2soKCkpCj4+ICAgfQo+PiBAQCAtMTAxLDYgKzEwNiwxMCBAQCBhc3luYyBmbiBjcmVhdGVfc25h cHNob3QoCj4+ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAo+PiAgICAgICAgICAg ICAgICAgICBkZXNjcmlwdGlvbjogIlBhdGggdG8gbWlycm9yaW5nIGNvbmZpZyBmaWxlLiIsCj4+ ICAgICAgICAgICAgICAgfSwKPj4gKyAgICAgICAgICAgIG5hbWU6IHsKPj4gKyAgICAgICAgICAg ICAgICBzY2hlbWE6IE5BTUVEX1NOQVBTSE9UX1NDSEVNQSwKPj4gKyAgICAgICAgICAgICAgICBv cHRpb25hbDogdHJ1ZSwKPj4gKyAgICAgICAgICAgIH0sCj4+ICAgICAgICAgICAgICAgImRyeS1y dW4iOiB7Cj4+ICAgICAgICAgICAgICAgICAgIHR5cGU6IGJvb2wsCj4+ICAgICAgICAgICAgICAg ICAgIG9wdGlvbmFsOiB0cnVlLAo+PiBAQCAtMTE0LDYgKzEyMyw3IEBAIGFzeW5jIGZuIGNyZWF0 ZV9zbmFwc2hvdCgKPj4gICAvLy8gZnJvbSBvcmlnaW5hbCByZXBvc2l0b3J5Lgo+PiAgIGFzeW5j IGZuIGNyZWF0ZV9zbmFwc2hvdHMoCj4+ICAgICAgIGNvbmZpZzogT3B0aW9uPFN0cmluZz4sCj4+ ICsgICAgbmFtZTogT3B0aW9uPFN0cmluZz4sCj4+ICAgICAgIGRyeV9ydW46IGJvb2wsCj4+ICAg ICAgIF9wYXJhbTogVmFsdWUsCj4+ICAgKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+IEBAIC0x MzUsOSArMTQ1LDE1IEBAIGFzeW5jIGZuIGNyZWF0ZV9zbmFwc2hvdHMoCj4+ICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwo+PiAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgIH07Cj4+ICsK Pj4gKyAgICAgICAgbGV0IHNuYXBzaG90ID0gbWF0Y2ggJm5hbWUgewo+PiArICAgICAgICAgICAg U29tZShuYW1lKSA9PiBTbmFwc2hvdDo6d2l0aF9uYW1lKCZuYW1lKSwKPj4gKyAgICAgICAgICAg IE5vbmUgPT4gU25hcHNob3Q6Om5vdygpLAo+PiArICAgICAgICB9Owo+PiArCj4+ICAgICAgICAg ICBsZXQgcmVzID0gcHJveG1veF9vZmZsaW5lX21pcnJvcjo6bWlycm9yOjpjcmVhdGVfc25hcHNo b3QoCj4+ICAgICAgICAgICAgICAgbWlycm9yLAo+PiAtICAgICAgICAgICAgJlNuYXBzaG90Ojpu b3coKSwKPj4gKyAgICAgICAgICAgICZzbmFwc2hvdCwKPj4gICAgICAgICAgICAgICBzdWJzY3Jp cHRpb24sCj4+ICAgICAgICAgICAgICAgZHJ5X3J1biwKPiAKPiB0aGlzIG1lYW5zIHRoYXQgb25l IG9mIHRoZSBtYWluIHB1cnBvc2VzIG9mIHRoaXMgIm5hbWluZyIgZ2V0cyBxdWl0ZQo+IGJyaXR0 bGUgLSBpZiBhIHNpbmdsZSBtaXJyb3IgZmFpbHMgdG8gYmUgbWlycm9yZWQsIHRoZSBvdGhlcnMg d2lsbCBoYXZlCj4gdGhhdCBuYW1lIGF0dGFjaGVkIGFuZCBpdCdzIHRodXMgInVzZWQiPwo+IAo+ IGlmIHdlIHVzZSB0aGUgc3ltbGluayBhcHByb2FjaCwgd2UgYWxzbyBhdm9pZCB0aGlzIHByb2Js ZW0gLT4gc2ltcGx5Cj4gc25hcHNob3QgYWxsIG1pcnJvcnMsIGFuZCBhdHRhY2ggdGhlIGxhYmVs IGF0IHRoZSBlbmQgaWYgc3VjY2Vzc2Z1bCAob3IKPiBtYWtlIHRoZSBiZWhhdmlvdXIgY29uZmln dXJhYmxlLCBkZXBlbmRpbmcgb24gdXNlIGNhc2UpCj4gCj4+ICAgICAgICAgICApOwo+PiBkaWZm IC0tZ2l0IGEvc3JjL21lZGl1bS5ycyBiL3NyYy9tZWRpdW0ucnMKPj4gaW5kZXggYmVmNmNjNy4u YTJlMmVlNCAxMDA2NDQKPj4gLS0tIGEvc3JjL21lZGl1bS5ycwo+PiArKysgYi9zcmMvbWVkaXVt LnJzCj4+IEBAIC0xOCw3ICsxOCw3IEBAIHVzZSBjcmF0ZTo6ewo+PiAgICAgICBnZW5lcmF0ZV9y ZXBvX2ZpbGVfbGluZSwKPj4gICAgICAgbWlycm9yOjpwb29sLAo+PiAgICAgICBwb29sOjpQb29s LAo+PiAtICAgIHR5cGVzOjp7RGlmZiwgU05BUFNIT1RfUkVHRVgsIFNuYXBzaG90fSwKPj4gKyAg ICB0eXBlczo6e0NPTUJJTkVEX1NOQVBTSE9UX1JFR0VYLCBEaWZmLCBTbmFwc2hvdH0sCj4+ICAg fTsKPj4gICAjW2Rlcml2ZShDbG9uZSwgRGVidWcsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQo+ PiAgICNbc2VyZGUocmVuYW1lX2FsbCA9ICJrZWJhYi1jYXNlIildCj4+IEBAIC0xNjIsNyArMTYy LDcgQEAgcHViIGZuIGxpc3Rfc25hcHNob3RzKG1lZGl1bV9iYXNlOiAmUGF0aCwgbWlycm9yOiAm c3RyKSAtPiBSZXN1bHQ8VmVjPFNuYXBzaG90PiwKPj4gICAgICAgcHJveG1veF9zeXM6OmZzOjpz Y2FuZGlyKAo+PiAgICAgICAgICAgbGliYzo6QVRfRkRDV0QsCj4+ICAgICAgICAgICAmbWlycm9y X2Jhc2UsCj4+IC0gICAgICAgICZTTkFQU0hPVF9SRUdFWCwKPj4gKyAgICAgICAgJkNPTUJJTkVE X1NOQVBTSE9UX1JFR0VYLAo+PiAgICAgICAgICAgfF9sMl9mZCwgc25hcHNob3QsIGZpbGVfdHlw ZXwgewo+PiAgICAgICAgICAgICAgIGlmIGZpbGVfdHlwZSAhPSBuaXg6OmRpcjo6VHlwZTo6RGly ZWN0b3J5IHsKPj4gICAgICAgICAgICAgICAgICAgcmV0dXJuIE9rKCgpKTsKPj4gZGlmZiAtLWdp dCBhL3NyYy9taXJyb3IucnMgYi9zcmMvbWlycm9yLnJzCj4+IGluZGV4IGM4OGY4MWQuLjJhZWY2 OTEgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9taXJyb3IucnMKPj4gKysrIGIvc3JjL21pcnJvci5ycwo+ PiBAQCAtMTEsMTQgKzExLDE0IEBAIHVzZSBnbG9ic2V0Ojp7R2xvYiwgR2xvYlNldCwgR2xvYlNl dEJ1aWxkZXJ9Owo+PiAgIHVzZSBuaXg6OmxpYmM7Cj4+ICAgdXNlIHByb3htb3hfaHR0cDo6e0h0 dHBDbGllbnQsIEh0dHBPcHRpb25zLCBQcm94eUNvbmZpZywgY2xpZW50OjpzeW5jOjpDbGllbnR9 Owo+PiAgIHVzZSBwcm94bW94X3NjaGVtYTo6e0FwaVR5cGUsIFNjaGVtYX07Cj4+IC11c2UgcHJv eG1veF9zeXM6OmZzOjpmaWxlX2dldF9jb250ZW50czsKPj4gK3VzZSBwcm94bW94X3N5czo6ZnM6 OntDcmVhdGVPcHRpb25zLCBmaWxlX2dldF9jb250ZW50c307Cj4+ICAgCj4+ICAgdXNlIGNyYXRl Ojp7Cj4+ICAgICAgIEZldGNoUmVzdWx0LCBQcm9ncmVzcywKPj4gICAgICAgY29uZmlnOjp7TWly cm9yQ29uZmlnLCBTa2lwQ29uZmlnLCBTdWJzY3JpcHRpb25LZXksIFdlYWtDcnlwdG9Db25maWd9 LAo+PiAgICAgICBjb252ZXJ0X3JlcG9fbGluZSwKPj4gICAgICAgcG9vbDo6UG9vbCwKPj4gLSAg ICB0eXBlczo6e0RpZmYsIFNOQVBTSE9UX1JFR0VYLCBTbmFwc2hvdH0sCj4+ICsgICAgdHlwZXM6 OntDT01CSU5FRF9TTkFQU0hPVF9SRUdFWCwgRGlmZiwgU25hcHNob3R9LAo+PiAgIH07Cj4+ICAg Cj4+ICAgdXNlIHByb3htb3hfYXB0OjpkZWI4MjI6OnsKPj4gQEAgLTQ3Niw3ICs0NzYsNyBAQCBw dWIgZm4gbGlzdF9zbmFwc2hvdHMoY29uZmlnOiAmTWlycm9yQ29uZmlnKSAtPiBSZXN1bHQ8VmVj PFNuYXBzaG90PiwgRXJyb3I+IHsKPj4gICAgICAgcHJveG1veF9zeXM6OmZzOjpzY2FuZGlyKAo+ PiAgICAgICAgICAgbGliYzo6QVRfRkRDV0QsCj4+ICAgICAgICAgICAmcGF0aCwKPj4gLSAgICAg ICAgJlNOQVBTSE9UX1JFR0VYLAo+PiArICAgICAgICAmQ09NQklORURfU05BUFNIT1RfUkVHRVgs Cj4+ICAgICAgICAgICB8X2wyX2ZkLCBzbmFwc2hvdCwgZmlsZV90eXBlfCB7Cj4+ICAgICAgICAg ICAgICAgaWYgZmlsZV90eXBlICE9IG5peDo6ZGlyOjpUeXBlOjpEaXJlY3Rvcnkgewo+PiAgICAg ICAgICAgICAgICAgICByZXR1cm4gT2soKCkpOwo+PiBAQCAtNzkzLDEyICs3OTMsNiBAQCBwdWIg Zm4gY3JlYXRlX3NuYXBzaG90KAo+PiAgICAgICAgICAgTm9uZQo+PiAgICAgICB9Owo+PiAgIAo+ PiAtICAgIGxldCBtdXQgY29uZmlnOiBQYXJzZWRNaXJyb3JDb25maWcgPSBjb25maWcudHJ5X2lu dG8oKT87Cj4+IC0gICAgY29uZmlnLmF1dGggPSBhdXRoOwo+IAo+IHRoaXMgaXMgdW5yZWxhdGVk PwoKSSBtb3ZlZCB0aGUgInByb2dyZXNzIiB2YXJpYWJsZSBhcm91bmQgKHNlZSBiZWxvdykgdG8g cmVwb3J0IGEgd2FybmluZyAKKGluc3RlYWQgb2YgYW4gZXJyb3IpIGluIGNhc2UgYSBzbmFwc2hv dCBhbHJlYWR5IGV4aXN0cywgd2hpbGUgZG9pbmcgYSAKZHJ5IHJ1bi4gSSB0aGVuIG1vdmVkICJj b25maWciIGFyb3VuZCBhcyB3ZWxsIGFuZCBhcHBhcmVudGx5IEkgYWRkZWQgCnRoZW0gaW4gdGhl IHJldmVyc2VkIG9yZGVyIHRoZW4gYmVmb3JlLiBTb3JyeSBmb3IgdGhlIG5vaXNlLgoKPiAKPj4g LQo+PiAtICAgIGxldCBwcmVmaXggPSBmb3JtYXQhKCJ7c25hcHNob3R9LnRtcCIpOwo+PiAtICAg IGxldCBwcmVmaXggPSBQYXRoOjpuZXcoJnByZWZpeCk7Cj4+IC0KPj4gICAgICAgbGV0IG11dCBw cm9ncmVzcyA9IE1pcnJvclByb2dyZXNzIHsKPj4gICAgICAgICAgIHdhcm5pbmdzOiBWZWM6Om5l dygpLAo+PiAgICAgICAgICAgc2tpcF9jb3VudDogMCwKPj4gQEAgLTgwNyw2ICs4MDEsNDIgQEAg cHViIGZuIGNyZWF0ZV9zbmFwc2hvdCgKPj4gICAgICAgICAgIHRvdGFsOiBQcm9ncmVzczo6bmV3 KCksCj4+ICAgICAgIH07Cj4+ICAgCj4+ICsgICAgbGV0IG11dCBjb25maWc6IFBhcnNlZE1pcnJv ckNvbmZpZyA9IGNvbmZpZy50cnlfaW50bygpPzsKPj4gKyAgICBjb25maWcuYXV0aCA9IGF1dGg7 Cj4+ICsKPj4gKyAgICBsZXQgc25hcHNob3RfcmVsYXRpdmVfcGF0aCA9IHNuYXBzaG90LnRvX3N0 cmluZygpOwo+PiArICAgIGxldCBzbmFwc2hvdF9yZWxhdGl2ZV9wYXRoID0gUGF0aDo6bmV3KCZz bmFwc2hvdF9yZWxhdGl2ZV9wYXRoKTsKPj4gKyAgICBsZXQgc25hcHNob3RfYWJzb2x1dGVfcGF0 aCA9IGNvbmZpZy5wb29sLmdldF9wYXRoKHNuYXBzaG90X3JlbGF0aXZlX3BhdGgpOwo+PiArCj4+ ICsgICAgaWYgc25hcHNob3RfYWJzb2x1dGVfcGF0aC5pc19va19hbmQofHBhdGh8IHBhdGguZXhp c3RzKCkpIHsKPj4gKyAgICAgICAgaWYgZHJ5X3J1biB7Cj4+ICsgICAgICAgICAgICBsZXQgbXNn ID0gIldBUk5JTkc6IHNuYXBzaG90IHtzbmFwc2hvdH0gYWxyZWFkeSBleGlzdHMhIENvbnRpbnVp bmcgZHVlIHRvIGRyeSBydW4uLi4iOwo+PiArICAgICAgICAgICAgZXByaW50bG4hKCJ7bXNnfSIp Owo+PiArICAgICAgICAgICAgcHJvZ3Jlc3Mud2FybmluZ3MucHVzaChtc2cuaW50bygpKTsKPj4g KyAgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAgIGJhaWwhKCJTbmFwc2hvdCB7c25hcHNo b3R9IGFscmVhZHkgZXhpc3RzISIpOwo+PiArICAgICAgICB9Cj4+ICsgICAgfQo+PiArCj4+ICsg ICAgbGV0IGxvY2tmaWxlX3BhdGggPSBjb25maWcKPj4gKyAgICAgICAgLnBvb2wKPj4gKyAgICAg ICAgLmdldF9wYXRoKFBhdGg6Om5ldygmZm9ybWF0ISgiLntzbmFwc2hvdH0ubG9jayIpKSk7Cj4g Cj4gd2hhdCBkb2VzIHRoaXMgbmV3IGxvY2sgcHJvdGVjdCBhZ2FpbnN0PyB3aGF0IGlzIGl0cyBz Y29wZT8gbm90ZSB0aGF0IGEKPiBwb29sIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBtaXJyb3JzLi4K ClVudGlsIG5vdywgaXQgd2FzIG9ubHkgcG9zc2libGUgdG8gY3JlYXRlIHNuYXBzaG90cyBjb250 YWluaW5nIGEgCnRpbWVzdGFtcCwgbWVhbmluZyB0aGF0IHVubGVzcyB5b3Ugd2VyZSBzbyBmYXN0 IHRvIGNyZWF0ZSBtdWx0aXBsZSAKc25hcHNob3RzIHBlciBzZWNvbmQsIGl0IHdhcyBpbXBvc3Np YmxlIHRvIGJlZ2luIGNyZWF0aW5nIHR3byBzbmFwc2hvdHMgCmF0IG9uY2UuIEhvd2V2ZXIsIHlv dSBjYW4gbm93IHRoZW9yZXRpY2FsbHkgdHJ5IHRvIGNyZWF0ZSB0d28gc25hcHNob3RzIAp3aXRo IHRoZSBzYW1lIG5hbWUgYXQgdGhlIHNhbWUgdGltZSAoZS5nLiBvdmVyIHR3byBTU0ggY29ubmVj dGlvbnMpIC0gCnRoYXQgaXMsIGNyZWF0aW5nIGEgc2Vjb25kIHNuYXBzaG90IGJlZm9yZSB0aGUg Zmlyc3Qgb25lIGZpbmlzaGVkIApjcmVhdGluZy4gVGhlIGxvY2tmaWxlIHByb3RlY3RzIGFnYWlu c3Qgc3VjaCBhbiBpc3N1ZS4KCj4gCj4+ICsKPj4gKyAgICBpZiBsZXQgRXJyKGxvY2tmaWxlX2Vy cikgPSBsb2NrZmlsZV9wYXRoIHsKPj4gKyAgICAgICAgYmFpbCEoImNhbm5vdCBjcmVhdGUgbG9j a2ZpbGUgZm9yIHNuYXBzaG90IHtzbmFwc2hvdH06IHtsb2NrZmlsZV9lcnJ9Iik7Cj4+ICsgICAg fQo+PiArICAgIGxldCBsb2NrZmlsZV9wYXRoID0gbG9ja2ZpbGVfcGF0aC51bndyYXAoKTsKPj4g Kwo+PiArICAgIGxldCBfc25hcHNob3RfbG9jayA9IHByb3htb3hfc3lzOjpmczo6b3Blbl9maWxl X2xvY2tlZCgKPj4gKyAgICAgICAgJmxvY2tmaWxlX3BhdGgsCj4+ICsgICAgICAgIHN0ZDo6dGlt ZTo6RHVyYXRpb246Om5ldygxMCwgMCksCj4+ICsgICAgICAgIHRydWUsCj4+ICsgICAgICAgIENy ZWF0ZU9wdGlvbnM6OmRlZmF1bHQoKSwKPj4gKyAgICApPzsKPj4gKwo+PiArICAgIGxldCBwcmVm aXggPSBmb3JtYXQhKCJ7c25hcHNob3R9LnRtcCIpOwo+PiArICAgIGxldCBwcmVmaXggPSBQYXRo OjpuZXcoJnByZWZpeCk7Cj4gCj4gdGhpcyBtaWdodCBhbHNvIGFscmVhZHkgZXhpc3QgYW5kIHNo b3VsZCBiZSBjaGVja2VkLi4KCkdvb2QgcG9pbnQsIHRoYW5rcyEKCj4gCj4+ICsKPj4gICAgICAg bGV0IHBhcnNlX3JlbGVhc2UgPSB8cmVzOiBGZXRjaFJlc3VsdCwgbmFtZTogJnN0cnwgLT4gUmVz dWx0PFJlbGVhc2VGaWxlLCBFcnJvcj4gewo+PiAgICAgICAgICAgcHJpbnRsbiEoIlBhcnNpbmcg e25hbWV9Li4iKTsKPj4gICAgICAgICAgIGxldCBwYXJzZWQ6IFJlbGVhc2VGaWxlID0gcmVzLmRh dGFbLi5dLnRyeV9pbnRvKCk/Owo+PiBAQCAtMTA3OCw5ICsxMTA4LDE1IEBAIHB1YiBmbiBjcmVh dGVfc25hcHNob3QoCj4+ICAgICAgIGlmICFkcnlfcnVuIHsKPj4gICAgICAgICAgIHByaW50bG4h KCJcblJvdGF0aW5nIHRlbXAuIHNuYXBzaG90IGluLXBsYWNlOiB7cHJlZml4Oj99IC0+IFwie3Nu YXBzaG90fVwiIik7Cj4+ICAgICAgICAgICBsZXQgbG9ja2VkID0gY29uZmlnLnBvb2wubG9jaygp PzsKPj4gLSAgICAgICAgbG9ja2VkLnJlbmFtZShwcmVmaXgsIFBhdGg6Om5ldygmZm9ybWF0ISgi e3NuYXBzaG90fSIpKSk/Owo+PiArCj4+ICsgICAgICAgIGlmIHNuYXBzaG90X3JlbGF0aXZlX3Bh dGguZXhpc3RzKCkgewo+PiArICAgICAgICAgICAgYmFpbCEoIlNuYXBzaG90IHtzbmFwc2hvdH0g YWxyZWFkeSBleGlzdHMhIik7Cj4+ICsgICAgICAgIH0KPiAKPiB0aGlzIGNoZWNrIGlzIHdyb25n LCBiZWNhdXNlIGl0IGRvZXNuJ3QgYWNjb3VudCBmb3IgdGhlIGN1cnJlbnQgd29ya2luZwo+IGRp cmVjdG9yeSBhbmQgdGhlIHBhdGggYmVpbmcgcmVsYXRpdmUuLgoKR29vZCBjYXRjaCwgSSBtaXNz ZWQgdGhhdCBvbmUsIHRoYW5rcyEKCj4gCj4+ICsgICAgICAgIGxvY2tlZC5yZW5hbWUocHJlZml4 LCBzbmFwc2hvdF9yZWxhdGl2ZV9wYXRoKT87Cj4+ICAgICAgIH0KPj4gICAKPj4gKyAgICBzdGQ6 OmZzOjpyZW1vdmVfZmlsZShsb2NrZmlsZV9wYXRoKT87Cj4+ICsKPj4gICAgICAgT2soKCkpCj4+ ICAgfQo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvc3JjL3R5cGVzLnJzIGIvc3JjL3R5cGVzLnJzCj4+ IGluZGV4IDEwZGRlNjUuLjQ5ZGMzNzQgMTAwNjQ0Cj4+IC0tLSBhL3NyYy90eXBlcy5ycwo+PiAr KysgYi9zcmMvdHlwZXMucnMKPj4gQEAgLTEsNiArMSw2IEBACj4+ICAgdXNlIHN0ZDo6e2ZtdDo6 RGlzcGxheSwgcGF0aDo6UGF0aEJ1Ziwgc3RyOjpGcm9tU3RyfTsKPj4gICAKPj4gLXVzZSBhbnlo b3c6OkVycm9yOwo+PiArdXNlIGFueWhvdzo6e0Vycm9yLCBiYWlsfTsKPj4gICB1c2UgcHJveG1v eF9zY2hlbWE6OntBcGlTdHJpbmdGb3JtYXQsIFNjaGVtYSwgU3RyaW5nU2NoZW1hLCBhcGksIGNv bnN0X3JlZ2V4fTsKPj4gICB1c2UgcHJveG1veF9zZXJkZTo6e2ZvcndhcmRfZGVzZXJpYWxpemVf dG9fZnJvbV9zdHIsIGZvcndhcmRfc2VyaWFsaXplX3RvX2Rpc3BsYXl9Owo+PiAgIHVzZSBwcm94 bW94X3RpbWU6OntlcG9jaF9pNjQsIGVwb2NoX3RvX3JmYzMzMzlfdXRjLCBwYXJzZV9yZmMzMzM5 fTsKPj4gQEAgLTMyLDYgKzMyLDEzIEBAIHB1YiBjb25zdCBNRURJQV9JRF9TQ0hFTUE6IFNjaGVt YSA9IFN0cmluZ1NjaGVtYTo6bmV3KCJNZWRpdW0gbmFtZS4iKQo+PiAgICAgICAubWF4X2xlbmd0 aCgzMikKPj4gICAgICAgLnNjaGVtYSgpOwo+PiAgIAo+PiArLy8vIFNjaGVtYSBmb3IgbmFtZWQg c25hcHNob3RzCj4+ICtwdWIgY29uc3QgTkFNRURfU05BUFNIT1RfU0NIRU1BOiBTY2hlbWEgPSBT dHJpbmdTY2hlbWE6Om5ldygiQ3VzdG9tIG5hbWUgZm9yIHNuYXBzaG90LiIpCj4+ICsgICAgLmZv cm1hdCgmUFJPWE1PWF9TQUZFX0lEX0ZPUk1BVCkKPj4gKyAgICAubWluX2xlbmd0aCgzKQo+PiAr ICAgIC5tYXhfbGVuZ3RoKDMyKQo+PiArICAgIC5zY2hlbWEoKTsKPj4gKwo+PiAgICNbcnVzdGZt dDo6c2tpcF0KPj4gICAjW21hY3JvX2V4cG9ydF0KPj4gICBtYWNyb19ydWxlcyEgUFJPWE1PWF9T VUJTQ1JJUFRJT05fS0VZX1JFR0VYX1NUUiB7ICgpID0+IHsgciIoPzpwb20tfHB2ZVxkK1thLXpd LXxwYnNbYS16XS18cG1nW2Etel0tKS4qIiB9OyB9Cj4+IEBAIC02MiwzMiArNjksNTEgQEAgcHVi IGNvbnN0IFBST1hNT1hfU0VSVkVSX0lEX1NDSEVNQTogU2NoZW1hID0gU3RyaW5nU2NoZW1hOjpu ZXcoIlNlcnZlciBJRC4iKQo+PiAgIAo+PiAgICNbcnVzdGZtdDo6c2tpcF0KPj4gICAjW21hY3Jv X2V4cG9ydF0KPj4gLW1hY3JvX3J1bGVzISBTTkFQU0hPVF9SRSB7ICgpID0+IChyIlswLTldezR9 LVswLTldezJ9LVswLTldezJ9VFswLTldezJ9OlswLTldezJ9OlswLTldezJ9WiIpIH0KPj4gK21h Y3JvX3J1bGVzISBUSU1FRF9TTkFQU0hPVF9SRSB7ICgpID0+IChyIlswLTldezR9LVswLTldezJ9 LVswLTldezJ9VFswLTldezJ9OlswLTldezJ9OlswLTldezJ9WiIpIH0KPj4gICBjb25zdF9yZWdl eCEgewo+PiAtICAgIHB1YihjcmF0ZSkgU05BUFNIT1RfUkVHRVggPSBjb25jYXQhKHIiXiIsIFNO QVBTSE9UX1JFISgpICxyIiQiKTsKPj4gKyAgICBwdWIoY3JhdGUpIFRJTUVEX1NOQVBTSE9UX1JF R0VYID0gY29uY2F0IShyIl4iLCBUSU1FRF9TTkFQU0hPVF9SRSEoKSAsciIkIik7Cj4+ICt9Cj4+ ICsKPj4gKyNbcnVzdGZtdDo6c2tpcF0KPj4gK2NvbnN0X3JlZ2V4ISB7Cj4+ICsgICAgcHViKGNy YXRlKSBDT01CSU5FRF9TTkFQU0hPVF9SRUdFWCA9IGNvbmNhdCEociJeKCgiLCBUSU1FRF9TTkFQ U0hPVF9SRSEoKSAsciIpfCIsIFBST1hNT1hfU0FGRV9JRF9SRUdFWF9TVFIhKCksICIpJCIpOwo+ PiArfQo+PiArCj4+ICsjW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFBhcnRpYWxFcSwgUGFydGlhbE9y ZCwgRXEsIE9yZCldCj4+ICtlbnVtIFNuYXBzaG90VHlwZSB7Cj4+ICsgICAgVGltZWRTbmFwc2hv dChpNjQpLAo+PiArICAgIE5hbWVkU25hcHNob3QoU3RyaW5nKSwKPj4gICB9Cj4+ICAgCj4+ICAg I1thcGkoCj4+ICAgICAgIHR5cGU6IFN0cmluZywKPj4gLSAgICBmb3JtYXQ6ICZBcGlTdHJpbmdG b3JtYXQ6OlBhdHRlcm4oJlNOQVBTSE9UX1JFR0VYKSwKPj4gICApXQo+PiAtI1tkZXJpdmUoRGVi dWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIFBhcnRpYWxPcmQsIEVxLCBPcmQpXQo+PiArI1tk ZXJpdmUoRGVidWcsIENsb25lLCBQYXJ0aWFsRXEsIFBhcnRpYWxPcmQsIEVxLCBPcmQpXQo+PiAg IC8vLyBNaXJyb3Igc25hcHNob3QKPj4gLXB1YiBzdHJ1Y3QgU25hcHNob3QoaTY0KTsKPj4gK3B1 YiBzdHJ1Y3QgU25hcHNob3QoU25hcHNob3RUeXBlKTsKPj4gICAKPj4gICBmb3J3YXJkX3Nlcmlh bGl6ZV90b19kaXNwbGF5IShTbmFwc2hvdCk7Cj4+ICAgZm9yd2FyZF9kZXNlcmlhbGl6ZV90b19m cm9tX3N0ciEoU25hcHNob3QpOwo+PiAgIAo+PiAgIGltcGwgU25hcHNob3Qgewo+PiAgICAgICBw dWIgZm4gbm93KCkgLT4gU2VsZiB7Cj4+IC0gICAgICAgIFNlbGYoZXBvY2hfaTY0KCkpCj4+ICsg ICAgICAgIFNlbGYoU25hcHNob3RUeXBlOjpUaW1lZFNuYXBzaG90KGVwb2NoX2k2NCgpKSkKPj4g KyAgICB9Cj4+ICsKPj4gKyAgICBwdWIgZm4gd2l0aF9uYW1lKG5hbWU6ICZzdHIpIC0+IFNlbGYg ewo+PiArICAgICAgICBTZWxmKFNuYXBzaG90VHlwZTo6TmFtZWRTbmFwc2hvdChuYW1lLmludG8o KSkpCj4+ICAgICAgIH0KPj4gICB9Cj4+ICAgCj4+ICAgaW1wbCBEaXNwbGF5IGZvciBTbmFwc2hv dCB7Cj4+ICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBzdGQ6OmZtdDo6Rm9ybWF0dGVyPCdf PikgLT4gc3RkOjpmbXQ6OlJlc3VsdCB7Cj4+IC0gICAgICAgIGxldCBmb3JtYXR0ZWQgPSBlcG9j aF90b19yZmMzMzM5X3V0YyhzZWxmLjApLm1hcF9lcnIofF98IHN0ZDo6Zm10OjpFcnJvcik/Owo+ PiAtICAgICAgICBmLndyaXRlX3N0cigmZm9ybWF0dGVkKQo+PiArICAgICAgICBtYXRjaCAmc2Vs Zi4wIHsKPj4gKyAgICAgICAgICAgIFNuYXBzaG90VHlwZTo6VGltZWRTbmFwc2hvdCh0aW1lKSA9 PiB7Cj4+ICsgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZCA9IGVwb2NoX3RvX3JmYzMzMzlf dXRjKCp0aW1lKS5tYXBfZXJyKHxffCBzdGQ6OmZtdDo6RXJyb3IpPzsKPj4gKyAgICAgICAgICAg ICAgICBmLndyaXRlX3N0cigmZm9ybWF0dGVkKQo+PiArICAgICAgICAgICAgfQo+PiArICAgICAg ICAgICAgU25hcHNob3RUeXBlOjpOYW1lZFNuYXBzaG90KG5hbWUpID0+IGYud3JpdGVfc3RyKCZu YW1lKSwKPj4gKyAgICAgICAgfQo+PiAgICAgICB9Cj4+ICAgfQo+PiAgIAo+PiBAQCAtOTUsNyAr MTIxLDEzIEBAIGltcGwgRnJvbVN0ciBmb3IgU25hcHNob3Qgewo+PiAgICAgICB0eXBlIEVyciA9 IEVycm9yOwo+PiAgIAo+PiAgICAgICBmbiBmcm9tX3N0cihzOiAmc3RyKSAtPiBSZXN1bHQ8U2Vs ZiwgU2VsZjo6RXJyPiB7Cj4+IC0gICAgICAgIE9rKFNlbGYocGFyc2VfcmZjMzMzOShzKT8pKQo+ PiArICAgICAgICBpZiBUSU1FRF9TTkFQU0hPVF9SRUdFWC5pc19tYXRjaChzKSB7Cj4+ICsgICAg ICAgICAgICBPayhTZWxmKFNuYXBzaG90VHlwZTo6VGltZWRTbmFwc2hvdChwYXJzZV9yZmMzMzM5 KHMpPykpKQo+PiArICAgICAgICB9IGVsc2UgaWYgUFJPWE1PWF9TQUZFX0lEX1JFR0VYLmlzX21h dGNoKHMpIHsKPj4gKyAgICAgICAgICAgIE9rKFNlbGYoU25hcHNob3RUeXBlOjpOYW1lZFNuYXBz aG90KHMuaW50bygpKSkpCj4+ICsgICAgICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgICAgICBiYWls ISgiaW52YWxpZCBzbmFwc2hvdCBuYW1lIikKPj4gKyAgICAgICAgfQo+PiAgICAgICB9Cj4+ICAg fQo+PiAgIAo+PiAtLSAKPj4gMi4zOS41Cj4+Cj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IHB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4g cHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4+IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20v Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo+Pgo+IAo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gcHZlLWRldmVsIG1haWxpbmcg bGlzdAo+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+IGh0dHBzOi8vbGlzdHMucHJveG1v eC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0 CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2Nn aS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK