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 8CF781FF15E for ; Tue, 28 Jan 2025 13:25:50 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 14475CB40; Tue, 28 Jan 2025 13:25:49 +0100 (CET) Message-ID: <892e96b6-3f05-41d2-8301-590703af8c4c@proxmox.com> Date: Tue, 28 Jan 2025 13:25:42 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: Proxmox Backup Server development discussion , =?UTF-8?Q?Lauren=C8=9Biu_Leahu-Vl=C4=83ducu?= References: <20250116115109.143589-1-l.leahu-vladucu@proxmox.com> <20250116115109.143589-2-l.leahu-vladucu@proxmox.com> Content-Language: en-US From: Dominik Csapak In-Reply-To: <20250116115109.143589-2-l.leahu-vladucu@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.024 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 T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox-backup-proxy.rs, mod.rs, proxmox-backup-api.rs, proxmox-tape.rs, changer.rs] Subject: Re: [pbs-devel] [PATCH proxmox-backup 1/1] Automatically select a drive (if part of a changer) when loading tapes 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" VGhhbmtzIGZvciB0YWNrbGluZyB0aGlzIQoKYSBmZXcgaGlnaCBsZXZlbCBjb21tZW50czoKCiog cGxlYXNlIHdyaXRlIHRoZSByZWxldmFudCB0ZXh0IGFzIGNvbW1pdCBtZXNzYWdlIChhcyBtZW50 aW9uZWQgb2ZmLWxpc3QpCiAgIGJhc2ljYWxseSB0aGUgdGV4dCBpbiB0aGUgKGhlcmUgbm90IG5l ZWRlZCkgY292ZXItbGV0dGVyIHdvdWxkIGZpdAogICBhcyB0aGUgY29tbWl0IG1lc3NhZ2UKCiog cnVzdGZtdDogcGxlYXNlIHVzZSBpdCwgdGhlcmUgYXJlIHNvbWUgbGluZXMgdGhhdCBhcmUgdmVy eSBsb25nLgogICBjb21tZW50cyBzaG91bGQgcHJvYmFibHkgYWxzbyBub3QgZXhjZWVkIHRoZSBs aW5lIGxlbmd0aCBsaW1pdAoKKiBpdCB3b3VsZCBiZSBnb29kIHRvIGV4cGxhaW4gdGhlIHJlYXNv biBmb3IgdGhlIGNvZGUgYSBiaXQgbW9yZSwgZS5nLiB5b3UgaW50cm9kdWNlCiAgIHRoZSBwcm9k dWN0LWNvbmZpZyBjcmF0ZSBoZXJlIGFuZCBkbyBhbiBpbml0aWFsaXphdGlvbiwKICAgYnV0IG5l aXRoZXIgYnkgbG9va2luZyBhdCB0aGUgY29kZSwgbm9yIGJ5IHJlYWRpbmcgdGhlIGNvbW1pdAog ICBtZXNzYWdlIGkga25vdyBleGFjdGx5IHdoeSAoaSBrbm93IGl0IGJlY2F1c2Ugd2UgdGFsa2Vk IG9mZi1saXN0KQogICBhIHNob3J0IHNlbnRlbmNlIGxpa2U6CgogICBhZGRlZCB0aGUgcHJvZHVj dC1jb25maWcgY3JhdGUgc28gd2UncmUgYWJsZSB0byByZXVzZSB0aGUKICAgJ3JlcGxhY2VfY29u ZmlnJyBpbnN0ZWFkIG9mIGNvcHlpbmcgaXQuCgogICBjYW4gYWxyZWFkeSBiZSBlbm91Z2gKCiog dGhlIHBhdGNoIGRvZXMgbm90IGN1cnJlbnRseSBhcHBseSBjbGVhbmx5IGJlY2F1c2Ugd2UgZGlk CiAgIHNvbWUgY29kZSBtb3ZlcyAoZS5nLiBwYnMtYXBpLXR5cGVzIGlzIG5vdyBhbiBleHRlcm5h bCBjcmF0ZSkKCgpTb21lIG90aGVyIGNvbW1lbnRzIGlubGluZToKCk9uIDEvMTYvMjUgMTI6NTEs IExhdXJlbsibaXUgTGVhaHUtVmzEg2R1Y3Ugd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogTGF1cmVu yJtpdSBMZWFodS1WbMSDZHVjdSA8bC5sZWFodS12bGFkdWN1QHByb3htb3guY29tPgo+IC0tLQo+ ICAgQ2FyZ28udG9tbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKPiAgIHBicy1hcGkt dHlwZXMvc3JjL3RhcGUvY2hhbmdlci5ycyB8ICAxNCArKystCj4gICBzcmMvYXBpMi90YXBlL2No YW5nZXIucnMgICAgICAgICAgfCAxMTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4g ICBzcmMvYmluL3Byb3htb3gtYmFja3VwLWFwaS5ycyAgICAgfCAgIDIgKwo+ICAgc3JjL2Jpbi9w cm94bW94LWJhY2t1cC1wcm94eS5ycyAgIHwgICAyICsKPiAgIHNyYy9iaW4vcHJveG1veC10YXBl LnJzICAgICAgICAgICB8ICA1MCArKysrKysrKysrKy0tCj4gICBzcmMvdGFwZS9jaGFuZ2VyL21v ZC5ycyAgICAgICAgICAgfCAgMTkgKysrKy0KPiAgIHNyYy90YXBlL2RyaXZlL3ZpcnR1YWxfdGFw ZS5ycyAgICB8ICAgOCArLQo+ICAgc3JjL3RhcGUvZHJpdmVfaW5mby5ycyAgICAgICAgICAgIHwg IDUxICsrKysrKysrKysrKysKPiAgIHNyYy90YXBlL21vZC5ycyAgICAgICAgICAgICAgICAgICB8 ICAgMSArCj4gICBzcmMvdG9vbHMvbW9kLnJzICAgICAgICAgICAgICAgICAgfCAgIDcgKysKPiAg IHd3dy90YXBlL0NoYW5nZXJTdGF0dXMuanMgICAgICAgICB8ICAxNiArKystCj4gICAxMiBmaWxl cyBjaGFuZ2VkLCAyNzQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3RhcGUvZHJpdmVfaW5mby5ycwo+IAo+IGRpZmYgLS1naXQgYS9DYXJn by50b21sIGIvQ2FyZ28udG9tbAo+IGluZGV4IGFkZWViNmVmLi4zNDhkMWNlYSAxMDA2NDQKPiAt LS0gYS9DYXJnby50b21sCj4gKysrIGIvQ2FyZ28udG9tbAo+IEBAIC03Miw2ICs3Miw3IEBAIHBy b3htb3gtbGRhcCA9ICIwLjIuMSIKPiAgIHByb3htb3gtbWV0cmljcyA9ICIwLjMuMSIKPiAgIHBy b3htb3gtbm90aWZ5ID0gIjAuNS4xIgo+ICAgcHJveG1veC1vcGVuaWQgPSAiMC4xMC4wIgo+ICtw cm94bW94LXByb2R1Y3QtY29uZmlnID0gIjAuMi4yIgo+ICAgcHJveG1veC1yZXN0LXNlcnZlciA9 IHsgdmVyc2lvbiA9ICIwLjguNSIsIGZlYXR1cmVzID0gWyAidGVtcGxhdGVzIiBdIH0KPiAgICMg c29tZSB1c2UgImNsaSIsIHNvbWUgdXNlICJjbGkiIGFuZCAic2VydmVyIiwgcGJzLWNvbmZpZyB1 c2VzIG5vdGhpbmcKPiAgIHByb3htb3gtcm91dGVyID0geyB2ZXJzaW9uID0gIjMuMC4wIiwgZGVm YXVsdC1mZWF0dXJlcyA9IGZhbHNlIH0KPiBAQCAtMjIxLDYgKzIyMiw3IEBAIHByb3htb3gtbGRh cC53b3Jrc3BhY2UgPSB0cnVlCj4gICBwcm94bW94LW1ldHJpY3Mud29ya3NwYWNlID0gdHJ1ZQo+ ICAgcHJveG1veC1ub3RpZnkgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyAicGJz LWNvbnRleHQiIF0gfQo+ICAgcHJveG1veC1vcGVuaWQud29ya3NwYWNlID0gdHJ1ZQo+ICtwcm94 bW94LXByb2R1Y3QtY29uZmlnLndvcmtzcGFjZSA9IHRydWUKPiAgIHByb3htb3gtcmVzdC1zZXJ2 ZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyAicmF0ZS1saW1pdGVkLXN0cmVh bSIgXSB9Cj4gICBwcm94bW94LXJvdXRlciA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMg PSBbICJjbGkiLCAic2VydmVyIl0gfQo+ICAgcHJveG1veC1zY2hlbWEgPSB7IHdvcmtzcGFjZSA9 IHRydWUsIGZlYXR1cmVzID0gWyAiYXBpLW1hY3JvIiBdIH0KPiBkaWZmIC0tZ2l0IGEvcGJzLWFw aS10eXBlcy9zcmMvdGFwZS9jaGFuZ2VyLnJzIGIvcGJzLWFwaS10eXBlcy9zcmMvdGFwZS9jaGFu Z2VyLnJzCj4gaW5kZXggZGYzODIzY2YuLjUyZWUwOGRiIDEwMDY0NAo+IC0tLSBhL3Bicy1hcGkt dHlwZXMvc3JjL3RhcGUvY2hhbmdlci5ycwo+ICsrKyBiL3Bicy1hcGktdHlwZXMvc3JjL3RhcGUv Y2hhbmdlci5ycwo+IEBAIC04LDEwICs4LDIwIEBAIHVzZSBwcm94bW94X3NjaGVtYTo6ewo+ICAg Cj4gICB1c2UgY3JhdGU6OntPcHRpb25hbERldmljZUlkZW50aWZpY2F0aW9uLCBQUk9YTU9YX1NB RkVfSURfRk9STUFUfTsKPiAgIAo+ICtjb25zdCBUQVBFX0NIQU5HRVJfTUlOX0xFTkdUSDogdXNp emUgPSAzOwo+ICtjb25zdCBUQVBFX0NIQU5HRVJfTUFYX0xFTkdUSDogdXNpemUgPSAzMjsKPiAr Cj4gICBwdWIgY29uc3QgQ0hBTkdFUl9OQU1FX1NDSEVNQTogU2NoZW1hID0gU3RyaW5nU2NoZW1h OjpuZXcoIlRhcGUgQ2hhbmdlciBJZGVudGlmaWVyLiIpCj4gICAgICAgLmZvcm1hdCgmUFJPWE1P WF9TQUZFX0lEX0ZPUk1BVCkKPiAtICAgIC5taW5fbGVuZ3RoKDMpCj4gLSAgICAubWF4X2xlbmd0 aCgzMikKPiArICAgIC5taW5fbGVuZ3RoKFRBUEVfQ0hBTkdFUl9NSU5fTEVOR1RIKQo+ICsgICAg Lm1heF9sZW5ndGgoVEFQRV9DSEFOR0VSX01BWF9MRU5HVEgpCj4gKyAgICAuc2NoZW1hKCk7Cj4g Kwo+ICtwdWIgY29uc3QgQ0hBTkdFUl9OQU1FX1NDSEVNQV9BVVRPTUFUSUNfRFJJVkVfQVNJR05N RU5UOiBTY2hlbWEgPQoKdHlwbzogQVNJR05NRU5UIHZzIEFTU0lHTk1FTlQKCj4gKyAgICBTdHJp bmdTY2hlbWE6Om5ldygiVGFwZSBDaGFuZ2VyIElkZW50aWZpZXIgdG8gYmUgdXNlZCBmb3IgYXV0 b21hdGljIHRhcGUgZHJpdmUgYXNzaWdubWVudC4iKQo+ICsgICAgLmZvcm1hdCgmUFJPWE1PWF9T QUZFX0lEX0ZPUk1BVCkKPiArICAgIC5taW5fbGVuZ3RoKFRBUEVfQ0hBTkdFUl9NSU5fTEVOR1RI KQo+ICsgICAgLm1heF9sZW5ndGgoVEFQRV9DSEFOR0VSX01BWF9MRU5HVEgpCj4gICAgICAgLnNj aGVtYSgpOwo+ICAgCj4gICBwdWIgY29uc3QgU0NTSV9DSEFOR0VSX1BBVEhfU0NIRU1BOiBTY2hl bWEgPQo+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi90YXBlL2NoYW5nZXIucnMgYi9zcmMvYXBpMi90 YXBlL2NoYW5nZXIucnMKPiBpbmRleCA3ZWNmN2JmZi4uYjczZDY4MzIgMTAwNjQ0Cj4gLS0tIGEv c3JjL2FwaTIvdGFwZS9jaGFuZ2VyLnJzCj4gKysrIGIvc3JjL2FwaTIvdGFwZS9jaGFuZ2VyLnJz Cj4gQEAgLTEsNiArMSw2IEBACj4gICB1c2Ugc3RkOjpjb2xsZWN0aW9uczo6SGFzaE1hcDsKPiAg IAo+IC11c2UgYW55aG93OjpFcnJvcjsKPiArdXNlIGFueWhvdzo6e2JhaWwsIEVycm9yfTsKPiAg IHVzZSBzZXJkZV9qc29uOjpWYWx1ZTsKPiAgIAo+ICAgdXNlIHByb3htb3hfcm91dGVyOjp7bGlz dF9zdWJkaXJzX2FwaV9tZXRob2QsIFBlcm1pc3Npb24sIFJvdXRlciwgUnBjRW52aXJvbm1lbnQs IFN1YmRpck1hcH07Cj4gQEAgLTgsNyArOCw4IEBAIHVzZSBwcm94bW94X3NjaGVtYTo6YXBpOwo+ ICAgCj4gICB1c2UgcGJzX2FwaV90eXBlczo6ewo+ICAgICAgIEF1dGhpZCwgQ2hhbmdlckxpc3RF bnRyeSwgTHRvVGFwZURyaXZlLCBNdHhFbnRyeUtpbmQsIE10eFN0YXR1c0VudHJ5LCBTY3NpVGFw ZUNoYW5nZXIsCj4gLSAgICBDSEFOR0VSX05BTUVfU0NIRU1BLCBQUklWX1RBUEVfQVVESVQsIFBS SVZfVEFQRV9SRUFELAo+ICsgICAgQ0hBTkdFUl9OQU1FX1NDSEVNQSwgUFJJVl9UQVBFX0FVRElU LCBQUklWX1RBUEVfUkVBRCwgTUVESUFfTEFCRUxfU0NIRU1BLCBVUElEX1NDSEVNQSwKPiArICAg IERyaXZlTGlzdEVudHJ5LCBEZXZpY2VBY3Rpdml0eQo+ICAgfTsKPiAgIHVzZSBwYnNfY29uZmln OjpDYWNoZWRVc2VySW5mbzsKPiAgIHVzZSBwYnNfdGFwZTo6ewo+IEBAIC0xOTksNyArMjAwLDEx OSBAQCBwdWIgZm4gbGlzdF9jaGFuZ2VycygKPiAgICAgICBPayhsaXN0KQo+ICAgfQo+ICAgCj4g KyNbYXBpKAo+ICsgICAgaW5wdXQ6IHsKPiArICAgICAgICBwcm9wZXJ0aWVzOiB7Cj4gKyAgICAg ICAgICAgIG5hbWU6IHsKPiArICAgICAgICAgICAgICAgIHNjaGVtYTogQ0hBTkdFUl9OQU1FX1ND SEVNQSwKPiArICAgICAgICAgICAgfSwKPiArICAgICAgICAgICAgImxhYmVsLXRleHQiOiB7Cj4g KyAgICAgICAgICAgICAgICBzY2hlbWE6IE1FRElBX0xBQkVMX1NDSEVNQSwKPiArICAgICAgICAg ICAgfSwKPiArICAgICAgICB9LAo+ICsgICAgfSwKPiArICAgIHJldHVybnM6IHsKPiArICAgICAg ICBzY2hlbWE6IFVQSURfU0NIRU1BLAo+ICsgICAgfSwKPiArICAgIGFjY2Vzczogewo+ICsgICAg ICAgIHBlcm1pc3Npb246ICZQZXJtaXNzaW9uOjpQcml2aWxlZ2UoJlsidGFwZSIsICJkZXZpY2Ui LCAie25hbWV9Il0sIFBSSVZfVEFQRV9SRUFELCBmYWxzZSksCj4gKyAgICB9LAo+ICspXQo+ICsv Ly8gTG9hZCBtZWRpYSB3aXRoIHNwZWNpZmllZCBsYWJlbAo+ICsvLy8KPiArLy8vIElzc3VlIGEg bWVkaWEgbG9hZCByZXF1ZXN0IHRvIHRoZSBhc3NvY2lhdGVkIGNoYW5nZXIgZGV2aWNlLgo+ICtw dWIgZm4gbG9hZF9tZWRpYSgKPiArICAgIG5hbWU6IFN0cmluZywKPiArICAgIGxhYmVsX3RleHQ6 IFN0cmluZywKPiArICAgIHJwY2VudjogJm11dCBkeW4gUnBjRW52aXJvbm1lbnQsCj4gKykgLT4g UmVzdWx0PFZhbHVlLCBFcnJvcj4gewo+ICsgICAgbGV0IGRyaXZlID0gY2hvb3NlX2RyaXZlKCZu YW1lLCBycGNlbnYpOwo+ICsgICAgc3VwZXI6OmRyaXZlOjpsb2FkX21lZGlhKGRyaXZlPywgbGFi ZWxfdGV4dCwgcnBjZW52KQo+ICt9PiArCj4gKyNbYXBpKAo+ICsgICAgaW5wdXQ6IHsKPiArICAg ICAgICBwcm9wZXJ0aWVzOiB7Cj4gKyAgICAgICAgICAgIG5hbWU6IHsKPiArICAgICAgICAgICAg ICAgIHNjaGVtYTogQ0hBTkdFUl9OQU1FX1NDSEVNQSwKPiArICAgICAgICAgICAgfSwKPiArICAg ICAgICAgICAgInNvdXJjZS1zbG90Ijogewo+ICsgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246 ICJTb3VyY2Ugc2xvdCBudW1iZXIuIiwKPiArICAgICAgICAgICAgICAgIG1pbmltdW06IDEsCj4g KyAgICAgICAgICAgIH0sCj4gKyAgICAgICAgfSwKPiArICAgIH0sCj4gKyAgICBhY2Nlc3M6IHsK PiArICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6UHJpdmlsZWdlKCZbInRhcGUiLCAi ZGV2aWNlIiwgIntuYW1lfSJdLCBQUklWX1RBUEVfUkVBRCwgZmFsc2UpLAo+ICsgICAgfSwKPiAr KV0KPiArLy8vIExvYWQgbWVkaWEgZnJvbSB0aGUgc3BlY2lmaWVkIHNsb3QKPiArLy8vCj4gKy8v LyBJc3N1ZSBhIG1lZGlhIGxvYWQgcmVxdWVzdCB0byB0aGUgYXNzb2NpYXRlZCBjaGFuZ2VyIGRl dmljZS4KPiArcHViIGFzeW5jIGZuIGxvYWRfc2xvdCgKPiArICAgIG5hbWU6IFN0cmluZywKPiAr ICAgIHNvdXJjZV9zbG90OiB1NjQsCj4gKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vudmlyb25t ZW50LCkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+ICsgICAgbGV0IGRyaXZlID0gY2hvb3NlX2Ry aXZlKCZuYW1lLCBycGNlbnYpOwo+ICsgICAgc3VwZXI6OmRyaXZlOjpsb2FkX3Nsb3QoZHJpdmU/ LCBzb3VyY2Vfc2xvdCkuYXdhaXQKPiArfQo+ICsKPiArZm4gY2hvb3NlX2RyaXZlKAo+ICsgICAg Y2hhbmdlcjogJnN0ciwKPiArICAgIHJwY2VudjogJm11dCBkeW4gUnBjRW52aXJvbm1lbnQpIC0+ IFJlc3VsdDxTdHJpbmcsIEVycm9yPiB7Cj4gKyAgICAvLyBXZSBoYXZlIHRvIGF1dG9tYXRpY2Fs bHkgc2VsZWN0IGEgZHJpdmUgZnJvbSB0aGUgc3BlY2lmaWVkIGNoYW5nZXIuIEZvciB0aGF0IHB1 cnBvc2UsIHdlIHRha2UgYWxsIGRyaXZlcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBjaGFuZ2VyCj4g KyAgICAvLyBhbmQgc2VhcmNoIGZvciB0aGUgb25lIHRoYXQgaGFzIG5vdCBiZWVuIHVzZWQgZm9y IHRoZSBsb25nZXN0IHRpbWUgKHRvIGVuc3VyZSBzaW1pbGFyIHdlYXIgYmV0d2VlbiB0aGUgZHJp dmVzKSwgb3IgdXNlIG9uZSB0aGF0IGhhcyBuZXZlciBiZWVuIHVzZWQuCgpQbGVhc2Uga2VlcCB0 aGUgbGluZSBsZW5ndGggbGltaXQgYWxzbyBmb3IgY29tbWVudHMKCj4gKyAgICBsZXQgZHJpdmVz ID0gc3VwZXI6OmRyaXZlOjpsaXN0X2RyaXZlcyhPcHRpb246OmZyb20oY2hhbmdlci50b19zdHJp bmcoKSksIHRydWUsIFZhbHVlOjpOdWxsLCBycGNlbnYpOwo+ICsKCkknZCB1c2UgYFNvbWUoeClg IGluc3RlYWQgb2YgYE9wdGlvbjo6ZnJvbSh4KWAgYmVjYXVzZSBpdCdzIHNob3J0ZXIsIGFuZCBi ZWNhdXNlIGl0J3MKY2xlYXJlciB3aGF0IGl0IGRvZXMKCj4gKyAgICBtYXRjaCBkcml2ZXMgewo+ ICsgICAgICAgIE9rKGVudHJpZXMpID0+IHsKCnRoaXMgcGF0dGVybiB3aXRoIGEgYmFpbCEgaW4g dGhlIEVyciBjYXNlIGlzIGltaG8gbXVjaCBuZWF0ZXIgd2hlbiB3cml0dGVuIGxpa2UgdGhpczoK CmxldCBlbnRyaWVzID0gbGlzdF9kcml2ZXMoLi4pLm1hcF9lcnIofGVycnwgZm9ybWF0X2VyciEo ImNhbm5vdCBxdWVyeSBkcml2ZXM6IHtlcnJ9IikpPzsKCndpdGggdGhhdCB5b3UgZWxpbWluYXRl IGEgY29tcGxldGUgbGV2ZWwgb2YgaW5kZW50YXRpb24gZm9yIHRoZSByZW1haW5pbmcgY29kZQoK PiArICAgICAgICAgICAgbGV0IGlkbGVfZHJpdmVzOiBWZWM8RHJpdmVMaXN0RW50cnk+ID0gZW50 cmllcy5pbnRvX2l0ZXIoKS5maWx0ZXIofGVudHJ5fCBtYXRjaGVzIShlbnRyeS5hY3Rpdml0eSwg Tm9uZSB8IFNvbWUoRGV2aWNlQWN0aXZpdHk6Ok5vQWN0aXZpdHkpKSkuY29sbGVjdCgpOwo+ICsg ICAgICAgICAgICBsZXQgZHJpdmVzX2luZm8gPSBjcmF0ZTo6dGFwZTo6ZHJpdmVfaW5mbzo6Z2V0 X2RyaXZlc19pbmZvKCk7Cj4gKwo+ICsgICAgICAgICAgICBtYXRjaCBkcml2ZXNfaW5mbyB7Cj4g KyAgICAgICAgICAgICAgICBPayhkcml2ZXNfaW5mbykgPT4gewo+ICsgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgaW5kZXhfb2xkZXN0IDogT3B0aW9uPHVzaXplPiA9IE9wdGlvbjo6ZGVmYXVs dCgpOwo+ICsgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgb2xkZXN0X3RpbWU6IE9wdGlvbjxp NjQ+ID0gT3B0aW9uOjpkZWZhdWx0KCk7Cj4gKwoKSSdkIHdyaXRlCgpsZXQgbXV0IGZvbzogT3B0 aW9uPFQ+ID0gTm9uZTsKCmhlcmUuCgpZZXMsIGl0J3MgY2xlYXIgdGhhdCBOb25lIGlzIHRoZSBk ZWZhdWx0IGZvciBtb3N0IHJ1c3QgZGV2ZWxvcGVycywgYnV0CnNlZWluZyB0aGUgYE5vbmVgIGV4 cGxpY2l0ZWx5IGhlcmUgbWFrZXMgdGhlIGNvZGUgbXVjaCBtb3JlIHJlYWRhYmxlIElNTwoKCj4g KyAgICAgICAgICAgICAgICAgICAgZm9yIGluZGV4IGluIDAuLmlkbGVfZHJpdmVzLmxlbigpIHsK PiArICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4aXN0aW5nX2RyaXZlID0gZHJpdmVzX2lu Zm8uZHJpdmVzLmdldCgmaWRsZV9kcml2ZXNbaW5kZXhdLmNvbmZpZy5uYW1lKTsKPiArCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIGV4aXN0aW5nX2RyaXZlIHsKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNvbWUoZXhpc3RpbmdfZHJpdmUpID0+IHsKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBvbGRlc3RfdGltZS5pc19ub25lKCkgfHwgb2xkZXN0 X3RpbWUuaXNfc29tZV9hbmQofG9sZGVzdF90aW1lfCBleGlzdGluZ19kcml2ZS5sYXN0X3VzYWdl IDwgb2xkZXN0X3RpbWUpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2xkZXN0X3RpbWUgPSBPcHRpb246OmZyb20oZXhpc3RpbmdfZHJpdmUubGFzdF91c2FnZSk7Cj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X29sZGVzdCA9IE9wdGlv bjo6ZnJvbShpbmRleCk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5vbmUgPT4gewo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERyaXZl IGhhcyBuZXZlciBiZWVuIHVzZWQsIHNvIGxldCdzIHVzZSB0aGlzIG9uZSEKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9vbGRlc3QgPSBPcHRpb246OmZyb20oaW5kZXgp Owo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB9Cj4gKyAgICAg ICAgICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgICAgICAgICBtYXRjaCBpbmRleF9v bGRlc3Qgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGluZGV4X29sZGVzdCkgPT4g T2soaWRsZV9kcml2ZXMuZ2V0KGluZGV4X29sZGVzdCkudW53cmFwKCkuY29uZmlnLm5hbWUuY2xv bmUoKSksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUgPT4gYmFpbCEoInRoZXJlIGFy ZSBubyBpZGxlIGRyaXZlcyB0byBjaG9vc2UgZm9yIGF1dG9tYXRpYyBkcml2ZSBhc3NpZ25tZW50 IikKPiArICAgICAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICB9LAo+ICsgICAg ICAgICAgICAgICAgRXJyKF9lcnJvcikgPT4gewo+ICsgICAgICAgICAgICAgICAgICAgIC8vIFNp bXBseSB1c2UgdGhlIGZpcnN0IGRyaXZlLCBpZiBwb3NzaWJsZS4KPiArICAgICAgICAgICAgICAg ICAgICBtYXRjaCBpZGxlX2RyaXZlcy5maXJzdCgpIHsKPiArICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShpZGxlX2RyaXZlKSA9PiBPayhpZGxlX2RyaXZlLmNvbmZpZy5uYW1lLmNsb25lKCkp LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICBOb25lID0+IGJhaWwhKCJ0aGVyZSBhcmUgbm8g aWRsZSBkcml2ZXMgdG8gY2hvb3NlIGZvciBhdXRvbWF0aWMgZHJpdmUgYXNzaWdubWVudCIpCj4g KyAgICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgfQoKd291bGRuJ3QgdGhl IGNvZGUgaGVyZSBnZXQgbXVjaCBlYXNpZXIgaWYgdGhlICdkcml2ZXNfaW5mbycgd291bGQgcmV0 dXJuIGEgbGlzdCBzb3J0ZWQgYnkgdGhlIApsYXN0X3VzYWdlPwoKdGhlIGkgdGhpbmsgdGhlIGNv ZGUgY291bGQgYm9pbCBkb3duIHRvIHNvbWV0aGluZyBsaWtlIHRoaXMgKGp1c3QgcHNldWRvY29k ZSk6CgpsZXQgaWRsZV9kcml2ZXMgPSBnZXRfaWRsZV9kcml2ZXMoKTsKbGV0IGRyaXZlc19pbl9v cmRlciA9IGdldF9zb3J0ZWRfZHJpdmVzX2luZm8oKTsgLy8gc2hvdWxkIGluY2x1ZGUgYWxsIGRy aXZlcywgYWxzbyB0aG9zZSB0aGF0IGhhdmUgCm5vIGxhc3QgdXNhZ2UgcmVjb3JkZWQgKHNvcnRl ZCBiZWZvcmUgb25lcyB3aXRoIHVzYWdlKQoKbGV0IGNob3NlbiA9IGRyaXZlc19pbl9vcmRlci5m aWx0ZXIofGRyaXZlfCBpZGxlX2RyaXZlcy5jb250YWlucyhkcml2ZSkpLmZpcnN0KCk7CgptYXRj aCBjaG9zZW4gewogICAgU29tZSh4eCkgPT4gLy8gZG8gc29tZXRoaW5nIHdpdGggY2hvc2VuIGRy aXZlIGFuZCB1cGRhdGUgbGlzdAogICAgTm9uZSA9PiAvLyBmYWxsYmFjayBtZWNoYW5pc20gb3Ig ZXJyb3IKfQoKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArICAgICAgICBFcnIoZXJy b3IpID0+IGJhaWwhKCJjYW5ub3QgcXVlcnkgZHJpdmVzOiB7fSIsIGVycm9yKQo+ICsgICAgfQo+ ICt9Cj4gKwo+ICAgY29uc3QgU1VCRElSUzogU3ViZGlyTWFwID0gJlsKPiArICAgICgibG9hZC1t ZWRpYSIsICZSb3V0ZXI6Om5ldygpLnBvc3QoJkFQSV9NRVRIT0RfTE9BRF9NRURJQSkpLAo+ICsg ICAgKCJsb2FkLXNsb3QiLCAmUm91dGVyOjpuZXcoKS5wb3N0KCZBUElfTUVUSE9EX0xPQURfU0xP VCkpLAo+ICAgICAgICgic3RhdHVzIiwgJlJvdXRlcjo6bmV3KCkuZ2V0KCZBUElfTUVUSE9EX0dF VF9TVEFUVVMpKSwKPiAgICAgICAoInRyYW5zZmVyIiwgJlJvdXRlcjo6bmV3KCkucG9zdCgmQVBJ X01FVEhPRF9UUkFOU0ZFUikpLAo+ICAgXTsKPiBkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wcm94bW94 LWJhY2t1cC1hcGkucnMgYi9zcmMvYmluL3Byb3htb3gtYmFja3VwLWFwaS5ycwo+IGluZGV4IDdh NzJkNDlhLi5jNmIyZDUzMiAxMDA2NDQKPiAtLS0gYS9zcmMvYmluL3Byb3htb3gtYmFja3VwLWFw aS5ycwo+ICsrKyBiL3NyYy9iaW4vcHJveG1veC1iYWNrdXAtYXBpLnJzCj4gQEAgLTQzLDYgKzQz LDggQEAgZm4gZ2V0X2luZGV4KCkgLT4gUGluPEJveDxkeW4gRnV0dXJlPE91dHB1dCA9IFJlc3Bv bnNlPEJvZHk+PiArIFNlbmQ+PiB7Cj4gICBhc3luYyBmbiBydW4oKSAtPiBSZXN1bHQ8KCksIEVy cm9yPiB7Cj4gICAgICAgaW5pdF9sb2dnZXIoIlBCU19MT0ciLCBMZXZlbEZpbHRlcjo6SU5GTyk/ Owo+ICAgCj4gKyAgICBsZXQgXyA9IHByb3htb3hfYmFja3VwOjp0b29sczo6aW5pdF9wcm9kdWN0 X2NvbmZpZygpOwo+ICsKCnlvdSBpbnRyb2R1Y2UgdGhpcyBtZXRob2QgaGVyZSwgYnV0IGFsd2F5 cyBpZ25vcmUgdGhlIGVycm9yLgp3aGF0IGhhcHBlbnMgd2hlbiB0aGUgaW5pdCBmYWlscz8gd2ls bCB0aGUgJ3JlcGxhY2VfY29uZmlnJyBwYW5pYyBsYXRlcj8KKHRoYXQgd291bGQgYmUgdmVyeSBi YWQ/KQoKaSB0aGluayBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gc3BsaXQgdGhpcyBvdXQgaW50byBp dCdzIG93biBwYXRjaAp3aXRoIGEgZ29vZCByZWFzb25pbmcgd2h5IHRoZSBlcnJvciBpcyBzYWZl IHRvIGJlIGlnbm9yZWQgKG9yIG5vdCkKCklNSE8gaWYgdGhlIGluaXQgZmFpbHMsIHdlIGNhbm5v dCBjb250aW51ZSBhbnl3YXksIGUuZy4KaW4gdGhlIG1haW4gZnVuY3Rpb24gb2YgdGhlIGJhY2t1 cC1wcm94eSB3ZSBmYWlsIGlmICBgYmFja3VwX3VzZXIoKWAgZmFpbHMKCj4gICAgICAgY29uZmln OjpjcmVhdGVfY29uZmlnZGlyKCk/Owo+ICAgCj4gICAgICAgY29uZmlnOjp1cGRhdGVfc2VsZl9z aWduZWRfY2VydChmYWxzZSk/Owo+IGRpZmYgLS1naXQgYS9zcmMvYmluL3Byb3htb3gtYmFja3Vw LXByb3h5LnJzIGIvc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5ycwo+IGluZGV4IGNlMWJl MWMwLi5lYjdkYTBlNCAxMDA2NDQKPiAtLS0gYS9zcmMvYmluL3Byb3htb3gtYmFja3VwLXByb3h5 LnJzCj4gKysrIGIvc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5ycwo+IEBAIC0xODEsNiAr MTgxLDggQEAgYXN5bmMgZm4gZ2V0X2luZGV4X2Z1dHVyZShlbnY6IFJlc3RFbnZpcm9ubWVudCwg cGFydHM6IFBhcnRzKSAtPiBSZXNwb25zZTxCb2R5Pgo+ICAgYXN5bmMgZm4gcnVuKCkgLT4gUmVz dWx0PCgpLCBFcnJvcj4gewo+ICAgICAgIGluaXRfbG9nZ2VyKCJQQlNfTE9HIiwgTGV2ZWxGaWx0 ZXI6OklORk8pPzsKPiAgIAo+ICsgICAgbGV0IF8gPSBwcm94bW94X2JhY2t1cDo6dG9vbHM6Omlu aXRfcHJvZHVjdF9jb25maWcoKTsKPiArCj4gICAgICAgcHJveG1veF9iYWNrdXA6OmF1dGhfaGVs cGVyczo6c2V0dXBfYXV0aF9jb250ZXh0KGZhbHNlKTsKPiAgICAgICBwcm94bW94X2JhY2t1cDo6 c2VydmVyOjpub3RpZmljYXRpb25zOjppbml0KCk/Owo+ICAgICAgIG1ldHJpY19jb2xsZWN0aW9u Ojppbml0KCk/Owo+IGRpZmYgLS1naXQgYS9zcmMvYmluL3Byb3htb3gtdGFwZS5ycyBiL3NyYy9i aW4vcHJveG1veC10YXBlLnJzCj4gaW5kZXggOGU4NTg0YjMuLjhkZTk0YWYwIDEwMDY0NAo+IC0t LSBhL3NyYy9iaW4vcHJveG1veC10YXBlLnJzCj4gKysrIGIvc3JjL2Jpbi9wcm94bW94LXRhcGUu cnMKPiBAQCAtMSw2ICsxLDggQEAKPiAgIHVzZSBzdGQ6OmNvbGxlY3Rpb25zOjpIYXNoTWFwOwo+ ICAgCj4gICB1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9Owo+ICt1c2UgcGJz X2FwaV90eXBlczo6Q0hBTkdFUl9OQU1FX1NDSEVNQV9BVVRPTUFUSUNfRFJJVkVfQVNJR05NRU5U Owo+ICt1c2UgcGJzX2NvbmZpZzo6ZHJpdmU6OmNvbXBsZXRlX2NoYW5nZXJfbmFtZTsKPiAgIHVz ZSBzZXJkZV9qc29uOjp7anNvbiwgVmFsdWV9Owo+ICAgCj4gICB1c2UgcHJveG1veF9odW1hbl9i eXRlOjpIdW1hbkJ5dGU7Cj4gQEAgLTIxNCw2ICsyMTYsMTAgQEAgYXN5bmMgZm4gZWplY3RfbWVk aWEobXV0IHBhcmFtOiBWYWx1ZSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+ICAgICAgICAgICAg ICAgICAgIHNjaGVtYTogRFJJVkVfTkFNRV9TQ0hFTUEsCj4gICAgICAgICAgICAgICAgICAgb3B0 aW9uYWw6IHRydWUsCj4gICAgICAgICAgICAgICB9LAo+ICsgICAgICAgICAgICBjaGFuZ2VyOiB7 Cj4gKyAgICAgICAgICAgICAgICBzY2hlbWE6IENIQU5HRVJfTkFNRV9TQ0hFTUFfQVVUT01BVElD X0RSSVZFX0FTSUdOTUVOVCwKPiArICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAo+ICsg ICAgICAgICAgICB9LAo+ICAgICAgICAgICAgICAgImxhYmVsLXRleHQiOiB7Cj4gICAgICAgICAg ICAgICAgICAgc2NoZW1hOiBNRURJQV9MQUJFTF9TQ0hFTUEsCj4gICAgICAgICAgICAgICB9LAo+ IEBAIC0yMzAsMTEgKzIzNiwyNSBAQCBhc3luYyBmbiBsb2FkX21lZGlhKG11dCBwYXJhbTogVmFs dWUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPiAgIAo+ICAgICAgIGxldCAoY29uZmlnLCBfZGln ZXN0KSA9IHBic19jb25maWc6OmRyaXZlOjpjb25maWcoKT87Cj4gICAKPiAtICAgIGxldCBkcml2 ZSA9IGV4dHJhY3RfZHJpdmVfbmFtZSgmbXV0IHBhcmFtLCAmY29uZmlnKT87Cj4gKyAgICBsZXQg ZHJpdmUgPSBleHRyYWN0X2RyaXZlX25hbWUoJm11dCBwYXJhbSwgJmNvbmZpZyk7Cj4gKyAgICBs ZXQgY2hhbmdlciA9IHBhcmFtWyJjaGFuZ2VyIl0uYXNfc3RyKCk7Cj4gKwo+ICsgICAgbGV0IHBh dGggPSBtYXRjaCBjaGFuZ2VyIHsKPiArICAgICAgICBTb21lKGNoYW5nZXIpID0+IHsKPiArICAg ICAgICAgICAgZm9ybWF0ISgiYXBpMi9qc29uL3RhcGUvY2hhbmdlci97fS9sb2FkLW1lZGlhIiwg Y2hhbmdlcikKPiArICAgICAgICB9Cj4gKyAgICAgICAgTm9uZSA9PiB7Cj4gKyAgICAgICAgICAg IGxldCBkcml2ZSA9IGRyaXZlPzsKPiArICAgICAgICAgICAgZm9ybWF0ISgiYXBpMi9qc29uL3Rh cGUvZHJpdmUve30vbG9hZC1tZWRpYSIsIGRyaXZlKQo+ICsgICAgICAgIH0KPiArICAgIH07Cgpo ZXJlIHlvdSBjb3VsZCBpbnN0ZWFkIGRvIHRoZSBmb2xsb3dpbmc6CgpsZXQgcGF0aCA9IG1hdGNo IChjaGFuZ2VyLCBkcml2ZSkgewogICAgKFNvbWUoY2hhbmdlciksIE5vbmUpID0+IC8vIGNoYW5n ZXIgcGF0aAogICAgKE5vbmUsIFNvbWUoZHJpdmUpKSA9PiAvLyBkcml2ZSBwYXRoCiAgICBfID0+ IC8vIGZhaWwgd2l0aCBlcnJvciB0aGF0IGV4YWN0bHkgb25lIG9mIHRoZSBvcHRpb25zIHNob3Vs ZCBiZSBzZXQKfTsKCmluIHlvdXIgY29kZSwgaSBjYW4gZ2l2ZSBib3RoLCBidXQgaXQgd2lsbCBh dXRvZGV0ZWN0IHRoZSBkcml2ZSBldmVuIGlmCmdpdmVuIGV4cGxpY2l0bHkgd2hlbiB0aGUgY2hh bmdlciBpcyBnaXZlbiwgd2hpY2ggbWlnaHQgYmUgY29uZnVzaW5nCmZvciB1c2VycwoKPiArCj4g KyAgICBpZiBsZXQgU29tZShwYXJhbSkgPSBwYXJhbS5hc19vYmplY3RfbXV0KCkgewo+ICsgICAg ICAgIHBhcmFtLnJlbW92ZSgiY2hhbmdlciIpOwo+ICsgICAgfQo+ICAgCj4gICAgICAgbGV0IGNs aWVudCA9IGNvbm5lY3RfdG9fbG9jYWxob3N0KCk/Owo+ICAgCj4gLSAgICBsZXQgcGF0aCA9IGZv cm1hdCEoImFwaTIvanNvbi90YXBlL2RyaXZlL3t9L2xvYWQtbWVkaWEiLCBkcml2ZSk7Cj4gICAg ICAgbGV0IHJlc3VsdCA9IGNsaWVudC5wb3N0KCZwYXRoLCBTb21lKHBhcmFtKSkuYXdhaXQ/Owo+ ICAgCj4gICAgICAgdmlld190YXNrX3Jlc3VsdCgmY2xpZW50LCByZXN1bHQsICZvdXRwdXRfZm9y bWF0KS5hd2FpdD87Cj4gQEAgLTI3Niw2ICsyOTYsMTAgQEAgYXN5bmMgZm4gZXhwb3J0X21lZGlh KG11dCBwYXJhbTogVmFsdWUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPiAgICAgICAgICAgICAg ICAgICBzY2hlbWE6IERSSVZFX05BTUVfU0NIRU1BLAo+ICAgICAgICAgICAgICAgICAgIG9wdGlv bmFsOiB0cnVlLAo+ICAgICAgICAgICAgICAgfSwKPiArICAgICAgICAgICAgY2hhbmdlcjogewo+ ICsgICAgICAgICAgICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BX0FVVE9NQVRJQ19E UklWRV9BU0lHTk1FTlQsCj4gKyAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKPiArICAg ICAgICAgICAgfSwKPiAgICAgICAgICAgICAgICJzb3VyY2Utc2xvdCI6IHsKPiAgICAgICAgICAg ICAgICAgICBkZXNjcmlwdGlvbjogIlNvdXJjZSBzbG90IG51bWJlci4iLAo+ICAgICAgICAgICAg ICAgICAgIHR5cGU6IHU2NCwKPiBAQCAtMjg4LDExICszMTIsMjUgQEAgYXN5bmMgZm4gZXhwb3J0 X21lZGlhKG11dCBwYXJhbTogVmFsdWUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPiAgIGFzeW5j IGZuIGxvYWRfbWVkaWFfZnJvbV9zbG90KG11dCBwYXJhbTogVmFsdWUpIC0+IFJlc3VsdDwoKSwg RXJyb3I+IHsKPiAgICAgICBsZXQgKGNvbmZpZywgX2RpZ2VzdCkgPSBwYnNfY29uZmlnOjpkcml2 ZTo6Y29uZmlnKCk/Owo+ICAgCj4gLSAgICBsZXQgZHJpdmUgPSBleHRyYWN0X2RyaXZlX25hbWUo Jm11dCBwYXJhbSwgJmNvbmZpZyk/Owo+ICsgICAgbGV0IGRyaXZlID0gZXh0cmFjdF9kcml2ZV9u YW1lKCZtdXQgcGFyYW0sICZjb25maWcpOwo+ICsgICAgbGV0IGNoYW5nZXIgPSBwYXJhbVsiY2hh bmdlciJdLmFzX3N0cigpOwo+ICsKPiArICAgIGxldCBwYXRoID0gbWF0Y2ggY2hhbmdlciB7Cj4g KyAgICAgICAgU29tZShjaGFuZ2VyKSA9PiB7Cj4gKyAgICAgICAgICAgIGZvcm1hdCEoImFwaTIv anNvbi90YXBlL2NoYW5nZXIve30vbG9hZC1zbG90IiwgY2hhbmdlcikKPiArICAgICAgICB9Cj4g KyAgICAgICAgTm9uZSA9PiB7Cj4gKyAgICAgICAgICAgIGxldCBkcml2ZSA9IGRyaXZlPzsKPiAr ICAgICAgICAgICAgZm9ybWF0ISgiYXBpMi9qc29uL3RhcGUvZHJpdmUve30vbG9hZC1zbG90Iiwg ZHJpdmUpCj4gKyAgICAgICAgfQo+ICsgICAgfTsKCnRoZSBzYW1lIGhlcmUKCj4gKwo+ICsgICAg aWYgbGV0IFNvbWUocGFyYW0pID0gcGFyYW0uYXNfb2JqZWN0X211dCgpIHsKPiArICAgICAgICBw YXJhbS5yZW1vdmUoImNoYW5nZXIiKTsKPiArICAgIH0KPiAgIAo+ICAgICAgIGxldCBjbGllbnQg PSBjb25uZWN0X3RvX2xvY2FsaG9zdCgpPzsKPiAgIAo+IC0gICAgbGV0IHBhdGggPSBmb3JtYXQh KCJhcGkyL2pzb24vdGFwZS9kcml2ZS97fS9sb2FkLXNsb3QiLCBkcml2ZSk7Cj4gICAgICAgY2xp ZW50LnBvc3QoJnBhdGgsIFNvbWUocGFyYW0pKS5hd2FpdD87Cj4gICAKPiAgICAgICBPaygoKSkK PiBAQCAtMTA5MSwxMyArMTEyOSwxNSBAQCBmbiBtYWluKCkgewo+ICAgICAgICAgICAgICAgQ2xp Q29tbWFuZDo6bmV3KCZBUElfTUVUSE9EX0xPQURfTUVESUEpCj4gICAgICAgICAgICAgICAgICAg LmFyZ19wYXJhbSgmWyJsYWJlbC10ZXh0Il0pCj4gICAgICAgICAgICAgICAgICAgLmNvbXBsZXRp b25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSkKPiArICAgICAgICAgICAgICAgIC5j b21wbGV0aW9uX2NiKCJjaGFuZ2VyIiwgY29tcGxldGVfY2hhbmdlcl9uYW1lKQo+ICAgICAgICAg ICAgICAgICAgIC5jb21wbGV0aW9uX2NiKCJsYWJlbC10ZXh0IiwgY29tcGxldGVfbWVkaWFfbGFi ZWxfdGV4dCksCj4gICAgICAgICAgICkKPiAgICAgICAgICAgLmluc2VydCgKPiAgICAgICAgICAg ICAgICJsb2FkLW1lZGlhLWZyb20tc2xvdCIsCj4gICAgICAgICAgICAgICBDbGlDb21tYW5kOjpu ZXcoJkFQSV9NRVRIT0RfTE9BRF9NRURJQV9GUk9NX1NMT1QpCj4gICAgICAgICAgICAgICAgICAg LmFyZ19wYXJhbSgmWyJzb3VyY2Utc2xvdCJdKQo+IC0gICAgICAgICAgICAgICAgLmNvbXBsZXRp b25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSksCj4gKyAgICAgICAgICAgICAgICAu Y29tcGxldGlvbl9jYigiZHJpdmUiLCBjb21wbGV0ZV9kcml2ZV9uYW1lKQo+ICsgICAgICAgICAg ICAgICAgLmNvbXBsZXRpb25fY2IoImNoYW5nZXIiLCBjb21wbGV0ZV9jaGFuZ2VyX25hbWUpLAo+ ICAgICAgICAgICApCj4gICAgICAgICAgIC5pbnNlcnQoCj4gICAgICAgICAgICAgICAidW5sb2Fk IiwKPiBkaWZmIC0tZ2l0IGEvc3JjL3RhcGUvY2hhbmdlci9tb2QucnMgYi9zcmMvdGFwZS9jaGFu Z2VyL21vZC5ycwo+IGluZGV4IDE4ZWEwZjQ2Li44ZTNmZjBmNyAxMDA2NDQKPiAtLS0gYS9zcmMv dGFwZS9jaGFuZ2VyL21vZC5ycwo+ICsrKyBiL3NyYy90YXBlL2NoYW5nZXIvbW9kLnJzCj4gQEAg LTI3Myw2ICsyNzMsMTcgQEAgcHViIHRyYWl0IE1lZGlhQ2hhbmdlIHsKPiAgICAgICB9Cj4gICB9 Cj4gICAKPiArLy8vIFVwZGF0ZXMgdGhlIGRyaXZlJ3MgbGFzdCB1c2FnZSB0aW1lIHRvIG5vdy4K PiArcHViKHN1cGVyKSBmbiB1cGRhdGVfZHJpdmVfdXNhZ2UoZHJpdmU6ICZzdHIpIC0+IFJlc3Vs dDwoKSwgRXJyb3I+IHsKPiArICAgIGxldCBfbG9jayA9IGNyYXRlOjp0YXBlOjpkcml2ZV9pbmZv Ojpsb2NrKCk/Owo+ICsKPiArICAgIGxldCBtdXQgZHJpdmVzX2luZm8gPSBjcmF0ZTo6dGFwZTo6 ZHJpdmVfaW5mbzo6Z2V0X2RyaXZlc19pbmZvKCk/Owo+ICsKPiArICAgIGxldCBub3cgPSBwcm94 bW94X3RpbWU6OmVwb2NoX2k2NCgpOwo+ICsgICAgZHJpdmVzX2luZm8uZHJpdmVzLmVudHJ5KGRy aXZlLmludG8oKSkub3JfZGVmYXVsdCgpLmxhc3RfdXNhZ2UgPSBub3c7Cj4gKyAgICBjcmF0ZTo6 dGFwZTo6ZHJpdmVfaW5mbzo6c2F2ZV9jb25maWcoJmRyaXZlc19pbmZvKQo+ICt9Cj4gKwo+ICAg Y29uc3QgVVNFX01UWDogYm9vbCA9IGZhbHNlOwo+ICAgCj4gICBpbXBsIFNjc2lNZWRpYUNoYW5n ZSBmb3IgU2NzaVRhcGVDaGFuZ2VyIHsKPiBAQCAtNDIzLDcgKzQzNCwxMyBAQCBpbXBsIE1lZGlh Q2hhbmdlIGZvciBNdHhNZWRpYUNoYW5nZXIgewo+ICAgICAgIH0KPiAgIAo+ICAgICAgIGZuIGxv YWRfbWVkaWFfZnJvbV9zbG90KCZtdXQgc2VsZiwgc2xvdDogdTY0KSAtPiBSZXN1bHQ8TXR4U3Rh dHVzLCBFcnJvcj4gewo+IC0gICAgICAgIHNlbGYuY29uZmlnLmxvYWRfc2xvdChzbG90LCBzZWxm LmRyaXZlX251bWJlcigpKQo+ICsgICAgICAgIGxldCBzdGF0dXMgPSBzZWxmLmNvbmZpZy5sb2Fk X3Nsb3Qoc2xvdCwgc2VsZi5kcml2ZV9udW1iZXIoKSk/Owo+ICsKPiArICAgICAgICBpZiBsZXQg RXJyKGVycikgPSB1cGRhdGVfZHJpdmVfdXNhZ2Uoc2VsZi5kcml2ZV9uYW1lKCkpIHsKPiArICAg ICAgICAgICAgbG9nOjp3YXJuISgiY291bGQgbm90IHVwZGF0ZSBkcml2ZSB1c2FnZToge2Vycn0i KTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIE9rKHN0YXR1cykKPiAgICAgICB9Cj4gICAK PiAgICAgICBmbiB1bmxvYWRfbWVkaWEoJm11dCBzZWxmLCB0YXJnZXRfc2xvdDogT3B0aW9uPHU2 ND4pIC0+IFJlc3VsdDxNdHhTdGF0dXMsIEVycm9yPiB7Cj4gZGlmZiAtLWdpdCBhL3NyYy90YXBl L2RyaXZlL3ZpcnR1YWxfdGFwZS5ycyBiL3NyYy90YXBlL2RyaXZlL3ZpcnR1YWxfdGFwZS5ycwo+ IGluZGV4IDg2NmU0ZDMyLi4yMTNmMTdmZSAxMDA2NDQKPiAtLS0gYS9zcmMvdGFwZS9kcml2ZS92 aXJ0dWFsX3RhcGUucnMKPiArKysgYi9zcmMvdGFwZS9kcml2ZS92aXJ0dWFsX3RhcGUucnMKPiBA QCAtNTY3LDcgKzU2NywxMyBAQCBpbXBsIE1lZGlhQ2hhbmdlIGZvciBWaXJ0dWFsVGFwZUhhbmRs ZSB7Cj4gICAgICAgICAgIH07Cj4gICAgICAgICAgIHNlbGYuc3RvcmVfc3RhdHVzKCZzdGF0dXMp PzsKPiAgIAo+IC0gICAgICAgIHNlbGYuc3RhdHVzKCkKPiArICAgICAgICBsZXQgc3RhdHVzID0g c2VsZi5zdGF0dXMoKT87Cj4gKwo+ICsgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IGNyYXRlOjp0 YXBlOjpjaGFuZ2VyOjp1cGRhdGVfZHJpdmVfdXNhZ2Uoc2VsZi5kcml2ZV9uYW1lKCkpIHsKPiAr ICAgICAgICAgICAgbG9nOjp3YXJuISgiY291bGQgbm90IHVwZGF0ZSBkcml2ZSB1c2FnZToge2Vy cn0iKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIE9rKHN0YXR1cykKPiAgICAgICB9Cj4g ICAKPiAgICAgICBmbiB1bmxvYWRfbWVkaWEoJm11dCBzZWxmLCBfdGFyZ2V0X3Nsb3Q6IE9wdGlv bjx1NjQ+KSAtPiBSZXN1bHQ8TXR4U3RhdHVzLCBFcnJvcj4gewo+IGRpZmYgLS1naXQgYS9zcmMv dGFwZS9kcml2ZV9pbmZvLnJzIGIvc3JjL3RhcGUvZHJpdmVfaW5mby5ycwo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmEwYzJmODM2Cj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL3NyYy90YXBlL2RyaXZlX2luZm8ucnMKPiBAQCAtMCwwICsxLDUxIEBACj4gKy8vISBTZXJp YWxpemUvZGVzZXJpYWxpemUgdHBhZSBkcml2ZSBpbmZvIChlLmcuIHVzZWZ1bCBmb3Igc3RhdGlz dGljcykKPiArLy8hCj4gKy8vISBUaGlzIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGEgc3RhdGUgb3Zl ciBhIGxvbmdlciBwZXJpb2Qgb2YgdGltZSAoZS5nLiBsYXN0IHRhcGUgZHJpdmUgdXNhZ2UpLgo+ ICsKPiArdXNlIHNlcmRlOjp7U2VyaWFsaXplLCBEZXNlcmlhbGl6ZX07Cj4gK3VzZSBzdGQ6OmNv bGxlY3Rpb25zOjpIYXNoTWFwOwo+ICt1c2UgYW55aG93OjpFcnJvcjsKPiArdXNlIHByb3htb3hf cHJvZHVjdF9jb25maWc6OkFwaUxvY2tHdWFyZDsKPiArCj4gKy8vLyBEcml2ZSBpbmZvIGZpbGUg bmFtZQo+ICtwdWIgY29uc3QgRFJJVkVfSU5GT19GSUxFTkFNRTogJnN0ciA9IGNvbmNhdCEocGJz X2J1aWxkY2ZnOjpQUk9YTU9YX0JBQ0tVUF9TVEFURV9ESVJfTSEoKSwgIi90YXBlX2RyaXZlX2lu Zm8uanNvbiIpOwo+ICsvLy8gTG9jayBmaWxlIG5hbWUgKHVzZWQgdG8gcHJldmVudCBjb25jdXJy ZW50IGFjY2VzcykKPiArcHViIGNvbnN0IERSSVZFX0lORk9fTE9DS0ZJTEU6ICZzdHIgPSBjb25j YXQhKHBic19idWlsZGNmZzo6UFJPWE1PWF9CQUNLVVBfU1RBVEVfRElSX00hKCksICIvLnRhcGVf ZHJpdmVfaW5mby5qc29uLmxvY2siKTsKPiArCj4gKyNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJp YWxpemUsIERlZmF1bHQpXQo+ICtwdWIgc3RydWN0IFNpbmdsZURyaXZlSW5mbyB7Cj4gKyAgICAj W3NlcmRlKHdpdGggPSAicHJveG1veF9zZXJkZTo6ZXBvY2hfYXNfcmZjMzMzOSIpXQo+ICsgICAg cHViIGxhc3RfdXNhZ2U6IGk2NCwKPiArfQo+ICsKPiArI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNl cmlhbGl6ZSwgRGVmYXVsdCldCj4gK3B1YiBzdHJ1Y3QgRHJpdmVzSW5mbyB7Cj4gKyAgICBwdWIg ZHJpdmVzOiBIYXNoTWFwPFN0cmluZywgU2luZ2xlRHJpdmVJbmZvPiwKPiArfQoKYXMgc2FpZCBh Ym92ZSwgdGhpcyB3b3VsZCBwcm9iYWJseSBtb3JlIGVjb25vbWljIGlmIGl0IHdlcmUganVzdCBh IGxpc3QKCm1heWJlIGEgYFZlYzwoU3RyaW5nLCBpNjQpPmAgc29ydGVkIGJ5IHRoZSBpNjQKCmFs c28gbm90IGEgc3VwZXIgZmFuIG9mIHRoZSBuYW1lIGBEcml2ZXNJbmZvYCBvciBgU2luZ2xlRHJp dmVJbmZvYCBzaW5jZSBpdCBkb2VzIG5vdCByZWFsbHkKY29udmV5IHdoYXQgaXQgZG9lcy4gKEUu Zy4gSSdkIGhhdmUgZXhwZWN0ZWQgaXQgdG8gaGF2ZSBtdWNoIG1vcmUgaW5mbyB0aGFuIGp1c3QK dGhlIGxhc3QgdXNhZ2UpCgpNYXliZSBjYWxsIGl0IHNvbWV0aGluZyBsaWtlICdEcml2ZXNMYXN0 VXNlZCcgZm9yIG5vdywgYW5kIGlmIHdlIHNlZSB3ZSBjYW4KYWRkIG1vcmUgaW5mb3JtYXRpb24s IHdlIGNhbiBzdGlsbCB1cGRhdGUgdGhlIG5hbWUuCihUaG91Z2ggSSdtIG5vdCB0aGUgYmVzdCBh dCBuYW1pbmcsIHNvIG1heWJlIHNvbWVvbmUgZWxzZSB3YW50cyB0byBjaGltZSBpbiBvbiB0aGlz KQoKPiArCj4gKy8vLyBHZXQgZXhjbHVzaXZlIGxvY2sKPiArcHViIGZuIGxvY2soKSAtPiBSZXN1 bHQ8QXBpTG9ja0d1YXJkLCBFcnJvcj4gewo+ICsgICAgcHJveG1veF9wcm9kdWN0X2NvbmZpZzo6 b3Blbl9hcGlfbG9ja2ZpbGUoRFJJVkVfSU5GT19MT0NLRklMRSwgT3B0aW9uOjpOb25lLCB0cnVl KQo+ICt9Cj4gKwo+ICsvLy8gUmVhZCBhbmQgcGFyc2UgdGhlIGRyaXZlIGluZm8gZmlsZQo+ICtw dWIgZm4gZ2V0X2RyaXZlc19pbmZvKCkgLT4gUmVzdWx0PERyaXZlc0luZm8sIEVycm9yPiB7Cj4g KyAgICBsZXQgY29udGVudCA9Cj4gKyAgICAgICAgcHJveG1veF9zeXM6OmZzOjpmaWxlX3JlYWRf b3B0aW9uYWxfc3RyaW5nKERSSVZFX0lORk9fRklMRU5BTUUpPzsKPiArCj4gKyAgICBtYXRjaCBj b250ZW50IHsKPiArICAgICAgICBTb21lKGNvbnRlbnQpID0+IHsKPiArICAgICAgICAgICAgbGV0 IHJlc3VsdCA9IHNlcmRlX2pzb246OmZyb21fc3RyOjo8RHJpdmVzSW5mbz4oJmNvbnRlbnQpPzsK PiArICAgICAgICAgICAgT2socmVzdWx0KQo+ICsgICAgICAgIH0sCj4gKyAgICAgICAgTm9uZSA9 PiB7Cj4gKyAgICAgICAgICAgIE9rKERyaXZlc0luZm86OmRlZmF1bHQoKSkKPiArICAgICAgICB9 Cj4gKyAgICB9Cj4gK30KPiArCj4gKy8vLyBTYXZlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUKPiAr cHViIGZuIHNhdmVfY29uZmlnKGRhdGE6ICZEcml2ZXNJbmZvKSAtPiBSZXN1bHQ8KCksIEVycm9y PiB7Cj4gKyAgICBsZXQganNvbiA9IHNlcmRlX2pzb246OnRvX3N0cmluZyhkYXRhKT87Cj4gKyAg ICBwcm94bW94X3Byb2R1Y3RfY29uZmlnOjpyZXBsYWNlX2NvbmZpZyhEUklWRV9JTkZPX0ZJTEVO QU1FLCBqc29uLmFzX2J5dGVzKCkpCj4gK30KPiBkaWZmIC0tZ2l0IGEvc3JjL3RhcGUvbW9kLnJz IGIvc3JjL3RhcGUvbW9kLnJzCj4gaW5kZXggZjI3NmY5NDguLjhiODcxNTJkIDEwMDY0NAo+IC0t LSBhL3NyYy90YXBlL21vZC5ycwo+ICsrKyBiL3NyYy90YXBlL21vZC5ycwo+IEBAIC0yMCw2ICsy MCw3IEBAIHB1YiB1c2UgaW52ZW50b3J5OjoqOwo+ICAgCj4gICBwdWIgbW9kIGNoYW5nZXI7Cj4g ICBwdWIgbW9kIGRyaXZlOwo+ICtwdWIgbW9kIGRyaXZlX2luZm87Cj4gICBwdWIgbW9kIGVuY3J5 cHRpb25fa2V5czsKPiAgIAo+ICAgbW9kIG1lZGlhX3Bvb2w7Cj4gZGlmZiAtLWdpdCBhL3NyYy90 b29scy9tb2QucnMgYi9zcmMvdG9vbHMvbW9kLnJzCj4gaW5kZXggMzIyODk0ZGQuLjExZmIyODIx IDEwMDY0NAo+IC0tLSBhL3NyYy90b29scy9tb2QucnMKPiArKysgYi9zcmMvdG9vbHMvbW9kLnJz Cj4gQEAgLTYxLDMgKzYxLDEwIEBAIHB1YiBmbiBzZXR1cF9zYWZlX3BhdGhfZW52KCkgewo+ICAg ICAgICAgICBzdGQ6OmVudjo6cmVtb3ZlX3ZhcihuYW1lKTsKPiAgICAgICB9Cj4gICB9Cj4gKwo+ ICtwdWIgZm4gaW5pdF9wcm9kdWN0X2NvbmZpZygpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKCmxp a2UgbW9zdCBvZiB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSwgYSBzaG9ydCBjb21tZW50IHdv dWxkIGJlIG5pY2UsCmV2ZW4gaWYgaXQncyBqdXN0IGEgcmVmZXJlbmNlIHRvIHRoZSBgcHJveG1v eF9wcm9kdWN0X2NvbmZpZ2AgY3JhdGUKCj4gKyAgICBsZXQgYmFja3VwX3VzZXIgPSBwYnNfY29u ZmlnOjpiYWNrdXBfdXNlcigpPzsKPiArICAgIGxldCByb290X3VzZXIgPSBuaXg6OnVuaXN0ZDo6 VXNlcjo6ZnJvbV91aWQobml4Ojp1bmlzdGQ6OlJPT1QpPy5leHBlY3QoImNvdWxkIG5vdCBmaW5k IHJvb3QgdXNlciIpOwoKdGhpcyBzZWVtcyBpbmNvbnNpc3RlbnQuCgpmb3IgdHdvIHRoaW5ncyB3 ZSBidWJibGUgdGhlIGVycm9yIHVwLCBidXQgYSBtaXNzaW5nIHJvb3QgdXNlciBwYW5pY3MKCkkn ZCBwcm9iYWJseSBtYWtlIHRoYXQgaW50byBhbiBlcnJvciB0aGF0IGJ1YmJsZXMgdXAgdG9vCgo+ ICsgICAgcHJveG1veF9wcm9kdWN0X2NvbmZpZzo6aW5pdChiYWNrdXBfdXNlciwgcm9vdF91c2Vy KTsKPiArICAgIE9rKCgpKQo+ICt9CgoKPiBkaWZmIC0tZ2l0IGEvd3d3L3RhcGUvQ2hhbmdlclN0 YXR1cy5qcyBiL3d3dy90YXBlL0NoYW5nZXJTdGF0dXMuanMKPiBpbmRleCBlMThhZjkwZS4uMGE4 NzU3NzkgMTAwNjQ0Cj4gLS0tIGEvd3d3L3RhcGUvQ2hhbmdlclN0YXR1cy5qcwo+ICsrKyBiL3d3 dy90YXBlL0NoYW5nZXJTdGF0dXMuanMKPiBAQCAtMjIyLDEyICsyMjIsMTcgQEAgRXh0LmRlZmlu ZSgnUEJTLlRhcGVNYW5hZ2VtZW50LkNoYW5nZXJTdGF0dXMnLCB7Cj4gICAJCSAgICBhdXRvU2hv dzogdHJ1ZSwKPiAgIAkJICAgIHN1Ym1pdFRleHQ6IGdldHRleHQoJ09LJyksCj4gICAJCSAgICB0 aXRsZTogZ2V0dGV4dCgnTG9hZCBNZWRpYSBpbnRvIERyaXZlJyksCj4gLQkJICAgIHVybDogYC9h cGkyL2V4dGpzL3RhcGUvZHJpdmVgLAo+ICsJCSAgICB1cmw6IGAvYXBpMi9leHRqcy90YXBlYCwK PiAgIAkJICAgIG1ldGhvZDogJ1BPU1QnLAo+ICAgCQkgICAgc3VibWl0VXJsOiBmdW5jdGlvbih1 cmwsIHZhbHVlcykgewo+IC0JCQlsZXQgZHJpdmUgPSB2YWx1ZXMuZHJpdmU7Cj4gLQkJCWRlbGV0 ZSB2YWx1ZXMuZHJpdmU7Cj4gLQkJCXJldHVybiBgJHt1cmx9LyR7ZW5jb2RlVVJJQ29tcG9uZW50 KGRyaXZlKX0vJHthcGlDYWxsfWA7Cj4gKwkJCSAgICBsZXQgZHJpdmUgPSB2YWx1ZXMuZHJpdmU7 Cj4gKwkJCSAgICBkZWxldGUgdmFsdWVzLmRyaXZlOwo+ICsJCQkKPiArCQkJICAgIGlmIChkcml2 ZSkgewo+ICsJCQkJICAgIHJldHVybiBgJHt1cmx9L2RyaXZlLyR7ZW5jb2RlVVJJQ29tcG9uZW50 KGRyaXZlKX0vJHthcGlDYWxsfWA7Cj4gKwkJCSAgICB9IGVsc2Ugewo+ICsJCQkJICAgIHJldHVy biBgJHt1cmx9L2NoYW5nZXIvJHtlbmNvZGVVUklDb21wb25lbnQoY2hhbmdlcil9LyR7YXBpQ2Fs bH1gOwo+ICsJCQkgICAgfQoKbml0OiBqdXN0IHNvIHdlIGRvbid0IGhhdmUgdG9vIG1hbnkgcGxh Y2VzIHdoZXJlIHdlIGNyZWF0ZSBzdWNoIHVybHMsCkknZCB0cnkgdG8gY29tYmluZSB0aGVtIGlu dG8gb25lOgoKbGV0IHR5cGUgPSBkcml2ZSA/ICJkcml2ZSIgOiAiY2hhbmdlciI7CmxldCBpdGVt ID0gZHJpdmUgPyBkcml2ZSA6IGNoYW5nZXI7CgpyZXR1cm4gYCR7dXJsfS8ke3R5cGV9LyR7ZW5j b2RlVVJJQ29tcG9uZW50KGl0ZW0pfS8ke2FwaUNhbGx9YDsKCm9yIHNvbWV0aGluZyBsaWtlIHRo YXQKCj4gICAJCSAgICB9LAo+ICAgCQkgICAgaXRlbXM6IFsKPiAgIAkJCWxhYmVsICE9PSAiIiA/ IHsKPiBAQCAtMjQ4LDYgKzI1Myw5IEBAIEV4dC5kZWZpbmUoJ1BCUy5UYXBlTWFuYWdlbWVudC5D aGFuZ2VyU3RhdHVzJywgewo+ICAgCQkJICAgIGZpZWxkTGFiZWw6IGdldHRleHQoJ0RyaXZlJyks Cj4gICAJCQkgICAgY2hhbmdlcjogY2hhbmdlciwKPiAgIAkJCSAgICBuYW1lOiAnZHJpdmUnLAo+ ICsJCQkgICAgZW1wdHlUZXh0OiBnZXR0ZXh0KCdDaG9vc2UgQXV0b21hdGljYWxseScpLAo+ICsJ CQkgICAgYWxsb3dCbGFuazogdHJ1ZSwKPiArCQkJICAgIGF1dG9TZWxlY3Q6IGZhbHNlLAo+ICAg CQkJfSwKPiAgIAkJICAgIF0sCj4gICAJCSAgICBsaXN0ZW5lcnM6IHsKCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlz dApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9j Z2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==