From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 7650D1FF179 for ; Wed, 26 Nov 2025 16:16:19 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 96770FDA9; Wed, 26 Nov 2025 16:16:32 +0100 (CET) Date: Wed, 26 Nov 2025 16:15:52 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Backup Server development discussion References: <20251124170423.303300-1-s.rufinatscha@proxmox.com> <20251124170423.303300-3-s.rufinatscha@proxmox.com> In-Reply-To: <20251124170423.303300-3-s.rufinatscha@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.17.0 (https://github.com/astroidmail/astroid) Message-Id: <1764167253.w84bii3yf4.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1764170119474 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.104 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup v5 2/4] partial fix #6049: datastore: impl ConfigVersionCache fast path for lookups 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" T24gTm92ZW1iZXIgMjQsIDIwMjUgNjowNCBwbSwgU2FtdWVsIFJ1ZmluYXRzY2hhIHdyb3RlOgo+ IFJlcGVhdGVkIC9zdGF0dXMgcmVxdWVzdHMgY2F1c2VkIGxvb2t1cF9kYXRhc3RvcmUoKSB0byBy ZS1yZWFkIGFuZAo+IHBhcnNlIGRhdGFzdG9yZS5jZmcgb24gZXZlcnkgY2FsbC4gVGhlIGlzc3Vl IHdhcyBtZW50aW9uZWQgaW4gcmVwb3J0Cj4gIzYwNDkgWzFdLiBjYXJnby1mbGFtZWdyYXBoIFsy XSBjb25maXJtZWQgdGhhdCB0aGUgaG90IHBhdGggaXMKPiBkb21pbmF0ZWQgYnkgcGJzX2NvbmZp Zzo6ZGF0YXN0b3JlOjpjb25maWcoKSAoY29uZmlnIHBhcnNpbmcpLgo+IAo+IFRoaXMgcGF0Y2gg aW1wbGVtZW50cyBjYWNoaW5nIG9mIHRoZSBnbG9iYWwgZGF0YXN0b3JlLmNmZyB1c2luZyB0aGUK PiBnZW5lcmF0aW9uIG51bWJlcnMgZnJvbSB0aGUgc2hhcmVkIGNvbmZpZyB2ZXJzaW9uIGNhY2hl LiBJdCBjYWNoZXMgdGhlCj4gZGF0YXN0b3JlLmNmZyBhbG9uZyB3aXRoIHRoZSBnZW5lcmF0aW9u IG51bWJlciBhbmQsIHdoZW4gYSBzdWJzZXF1ZW50Cj4gbG9va3VwIHNlZXMgdGhlIHNhbWUgZ2Vu ZXJhdGlvbiwgaXQgcmV1c2VzIHRoZSBjYWNoZWQgY29uZmlnIHdpdGhvdXQKPiByZS1yZWFkaW5n IGl0IGZyb20gZGlzay4gSWYgdGhlIGdlbmVyYXRpb24gZGlmZmVycwo+IChvciB0aGUgY2FjaGUg aXMgdW5hdmFpbGFibGUpLCB0aGUgY29uZmlnIGlzIHJlLXJlYWQgZnJvbSBkaXNrLgo+IElmIGB1 cGRhdGVfY2FjaGUgPSB0cnVlYCwgdGhlIG5ldyBjb25maWcgYW5kIGN1cnJlbnQgZ2VuZXJhdGlv biBhcmUKPiBwZXJzaXN0ZWQgaW4gdGhlIGNhY2hlLiBJbiB0aGlzIGNhc2UsIGNhbGxlcnMgbXVz dCBob2xkIHRoZSBkYXRhc3RvcmUKPiBjb25maWcgbG9jayB0byBhdm9pZCByYWNpbmcgd2l0aCBj b25jdXJyZW50IGNvbmZpZyBjaGFuZ2VzLgo+IElmIGB1cGRhdGVfY2FjaGVgIGlzIGBmYWxzZWAg YW5kIGdlbmVyYXRpb24gZGlkIG5vdCBtYXRjaCwgdGhlIGZyZXNobHkKPiByZWFkIGNvbmZpZyBp cyByZXR1cm5lZCBidXQgdGhlIGNhY2hlIGlzIGxlZnQgdW5jaGFuZ2VkLiBJZgo+IGBDb25maWdW ZXJzaW9uQ2FjaGVgIGlzIG5vdCBhdmFpbGFibGUsIHRoZSBjb25maWcgaXMgYWx3YXlzIHJlYWQg ZnJvbQo+IGRpc2sgYW5kIGBOb25lYCBpcyByZXR1cm5lZCBhcyBnZW5lcmF0aW9uLgo+IAo+IEJl aGF2aW9yYWwgbm90ZXMKPiAKPiAtIFRoZSBnZW5lcmF0aW9uIGlzIGJ1bXBlZCB2aWEgdGhlIGV4 aXN0aW5nIHNhdmVfY29uZmlnKCkgcGF0aCwgc28KPiAgIEFQSS1kcml2ZW4gY29uZmlnIGNoYW5n ZXMgYXJlIGRldGVjdGVkIGltbWVkaWF0ZWx5Lgo+IC0gTWFudWFsIGVkaXRzIHRvIGRhdGFzdG9y ZS5jZmcgYXJlIG5vdCBkZXRlY3RlZDsgdGhpcyBpcyBjb3ZlcmVkIGluIGEKPiAgIGRlZGljYXRl ZCBwYXRjaCBpbiB0aGlzIHNlcmllcy4KPiAtIERhdGFTdG9yZTo6ZHJvcCBzdGlsbCBwZXJmb3Jt cyBhIGNvbmZpZyByZWFkIG9uIHRoZSBjb21tb24gcGF0aDsKPiAgIGFsc28gY292ZXJlZCBpbiBh IGRlZGljYXRlZCBwYXRjaCBpbiB0aGlzIHNlcmllcy4KPiAKPiBMaW5rcwo+IAo+IFsxXSBCdWd6 aWxsYTogaHR0cHM6Ly9idWd6aWxsYS5wcm94bW94LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NjA0OQo+ IFsyXSBjYXJnby1mbGFtZWdyYXBoOiBodHRwczovL2dpdGh1Yi5jb20vZmxhbWVncmFwaC1ycy9m bGFtZWdyYXBoCj4gCj4gRml4ZXM6ICM2MDQ5Cj4gU2lnbmVkLW9mZi1ieTogU2FtdWVsIFJ1Zmlu YXRzY2hhIDxzLnJ1ZmluYXRzY2hhQHByb3htb3guY29tPgoKc3R5bGUgbml0cyBiZWxvdywgYnV0 IG90aGVyd2lzZQoKUmV2aWV3ZWQtYnk6IEZhYmlhbiBHcsO8bmJpY2hlciA8Zi5ncnVlbmJpY2hs ZXJAcHJveG1veC5jb20+Cgo+IC0tLQo+IENoYW5nZXM6Cj4gCj4gRnJvbSB2MSDihpIgdjIsIHRo YW5rcyBARmFiaWFuCj4gLSBNb3ZlZCB0aGUgQ29uZmlnVmVyc2lvbkNhY2hlIGNoYW5nZXMgaW50 byBpdHMgb3duIHBhdGNoLgo+IC0gSW50cm9kdWNlZCB0aGUgZ2xvYmFsIHN0YXRpYyBEQVRBU1RP UkVfQ09ORklHX0NBQ0hFIHRvIHN0b3JlIHRoZQo+IGZ1bGx5IHBhcnNlZCBkYXRhc3RvcmUuY2Zn IGluc3RlYWQsIGFsb25nIHdpdGggaXRzIGdlbmVyYXRpb24gbnVtYmVyLgo+ICAgSW50cm9kdWNl ZCBEYXRhc3RvcmVDb25maWdDYWNoZSBzdHJ1Y3QgdG8gaG9sZCBib3RoLgo+IC0gUmVtb3ZlZCBh bmQgcmVwbGFjZWQgdGhlIENhY2hlZERhdGFzdG9yZUNvbmZpZ1RhZyBmaWVsZCBvZgo+ICAgRGF0 YVN0b3JlSW1wbCB3aXRoIGEgZ2VuZXJhdGlvbiBudW1iZXIgZmllbGQgb25seSAoT3B0aW9uPHVz aXplPikKPiAgIHRvIHZhbGlkYXRlIERhdGFTdG9yZUltcGwgcmV1c2UuCj4gLSBBZGRlZCBEYXRh U3RvcmU6OmRhdGFzdG9yZV9zZWN0aW9uX2NvbmZpZ19jYWNoZWQoKSBoZWxwZXIgZnVuY3Rpb24K PiAgIHRvIGVuY2Fwc3VsYXRlIHRoZSBjYWNoaW5nIGxvZ2ljIGFuZCBzaW1wbGlmeSByZXVzZS4K PiAtIE1vZGlmaWVkIERhdGFTdG9yZTo6bG9va3VwX2RhdGFzdG9yZSgpIHRvIHVzZSB0aGUgbmV3 IGhlbHBlci4KPiAKPiBGcm9tIHYyIOKGkiB2Mwo+IE5vIGNoYW5nZXMKPiAKPiBGcm9tIHYzIOKG kiB2NCwgdGhhbmtzIEBGYWJpYW4KPiAtIFJlc3RydWN0dXJlZCB0aGUgdmVyc2lvbiBjYWNoZSBj aGVja3MgaW4KPiAgIGRhdGFzdG9yZV9zZWN0aW9uX2NvbmZpZ19jYWNoZWQoKSwgdG8gc2ltcGxp ZnkgdGhlIGxvZ2ljLgo+IC0gQWRkZWQgdXBkYXRlX2NhY2hlIHBhcmFtZXRlciB0byBkYXRhc3Rv cmVfc2VjdGlvbl9jb25maWdfY2FjaGVkKCkgdG8KPiAgIGNvbnRyb2wgY2FjaGUgdXBkYXRlcy4K PiAKPiBGcm9tIHY0IOKGkiB2NQo+IC0gUmViYXNlZCBvbmx5LCBubyBjaGFuZ2VzCj4gCj4gIHBi cy1kYXRhc3RvcmUvQ2FyZ28udG9tbCAgICAgICB8ICAgMSArCj4gIHBicy1kYXRhc3RvcmUvc3Jj L2RhdGFzdG9yZS5ycyB8IDEzOCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAg MiBmaWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgp0aGlz IGNvdWxkIGJlCgogMiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlv bnMoLSkKCnNlZSBiZWxvdy4gdGhpcyBtaWdodCBzb3VuZCBuaXQtcGlja3ksIGJ1dCBrZWVwaW5n IGRpZmZzIGNvbmNpc2UgbWFrZXMKcmV2aWV3aW5nIGEgbG90IGVhc2llciBiZWNhdXNlIG9mIHRo ZSBoaWdoZXIgc2lnbmFsIHRvIG5vaXNlIHJhdGlvLi4KCj4gCj4gZGlmZiAtLWdpdCBhL3Bicy1k YXRhc3RvcmUvQ2FyZ28udG9tbCBiL3Bicy1kYXRhc3RvcmUvQ2FyZ28udG9tbAo+IGluZGV4IDhj ZTkzMGE5Li40MmY0OWE3YiAxMDA2NDQKPiAtLS0gYS9wYnMtZGF0YXN0b3JlL0NhcmdvLnRvbWwK PiArKysgYi9wYnMtZGF0YXN0b3JlL0NhcmdvLnRvbWwKPiBAQCAtNDAsNiArNDAsNyBAQCBwcm94 bW94LWlvLndvcmtzcGFjZSA9IHRydWUKPiAgcHJveG1veC1sYW5nLndvcmtzcGFjZT10cnVlCj4g IHByb3htb3gtczMtY2xpZW50ID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsgImlt cGwiIF0gfQo+ICBwcm94bW94LXNjaGVtYSA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMg PSBbICJhcGktbWFjcm8iIF0gfQo+ICtwcm94bW94LXNlY3Rpb24tY29uZmlnLndvcmtzcGFjZSA9 IHRydWUKPiAgcHJveG1veC1zZXJkZSA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBb ICJzZXJkZV9qc29uIiBdIH0KPiAgcHJveG1veC1zeXMud29ya3NwYWNlID0gdHJ1ZQo+ICBwcm94 bW94LXN5c3RlbWQud29ya3NwYWNlID0gdHJ1ZQo+IGRpZmYgLS1naXQgYS9wYnMtZGF0YXN0b3Jl L3NyYy9kYXRhc3RvcmUucnMgYi9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPiBpbmRl eCAzNjU1MGZmNi4uYzljYjVkNjUgMTAwNjQ0Cj4gLS0tIGEvcGJzLWRhdGFzdG9yZS9zcmMvZGF0 YXN0b3JlLnJzCj4gKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCj4gQEAgLTM0 LDcgKzM0LDggQEAgdXNlIHBic19hcGlfdHlwZXM6OnsKPiAgICAgIE1haW50ZW5hbmNlVHlwZSwg T3BlcmF0aW9uLCBVUElELAo+ICB9Owo+ICB1c2UgcGJzX2NvbmZpZzo6czM6OlMzX0NGR19UWVBF X0lEOwo+IC11c2UgcGJzX2NvbmZpZzo6QmFja3VwTG9ja0d1YXJkOwo+ICt1c2UgcGJzX2NvbmZp Zzo6e0JhY2t1cExvY2tHdWFyZCwgQ29uZmlnVmVyc2lvbkNhY2hlfTsKPiArdXNlIHByb3htb3hf c2VjdGlvbl9jb25maWc6OlNlY3Rpb25Db25maWdEYXRhOwo+ICAKPiAgdXNlIGNyYXRlOjpiYWNr dXBfaW5mbzo6ewo+ICAgICAgQmFja3VwRGlyLCBCYWNrdXBHcm91cCwgQmFja3VwSW5mbywgT0xE X0xPQ0tJTkcsIFBST1RFQ1RFRF9NQVJLRVJfRklMRU5BTUUsCj4gQEAgLTQ4LDYgKzQ5LDE3IEBA IHVzZSBjcmF0ZTo6czM6OlMzX0NPTlRFTlRfUFJFRklYOwo+ICB1c2UgY3JhdGU6OnRhc2tfdHJh Y2tpbmc6OntzZWxmLCB1cGRhdGVfYWN0aXZlX29wZXJhdGlvbnN9Owo+ICB1c2UgY3JhdGU6OntE YXRhQmxvYiwgTG9jYWxEYXRhc3RvcmVMcnVDYWNoZX07Cj4gIAo+ICsvLyBDYWNoZSBmb3IgZnVs bHkgcGFyc2VkIGRhdGFzdG9yZS5jZmcKPiArc3RydWN0IERhdGFzdG9yZUNvbmZpZ0NhY2hlIHsK PiArICAgIC8vIFBhcnNlZCBkYXRhc3RvcmUuY2ZnIGZpbGUKPiArICAgIGNvbmZpZzogQXJjPFNl Y3Rpb25Db25maWdEYXRhPiwKPiArICAgIC8vIEdlbmVyYXRpb24gbnVtYmVyIGZyb20gQ29uZmln VmVyc2lvbkNhY2hlCj4gKyAgICBsYXN0X2dlbmVyYXRpb246IHVzaXplLAo+ICt9Cj4gKwo+ICtz dGF0aWMgREFUQVNUT1JFX0NPTkZJR19DQUNIRTogTGF6eUxvY2s8TXV0ZXg8T3B0aW9uPERhdGFz dG9yZUNvbmZpZ0NhY2hlPj4+ID0KPiArICAgIExhenlMb2NrOjpuZXcofHwgTXV0ZXg6Om5ldyhO b25lKSk7Cj4gKwo+ICBzdGF0aWMgREFUQVNUT1JFX01BUDogTGF6eUxvY2s8TXV0ZXg8SGFzaE1h cDxTdHJpbmcsIEFyYzxEYXRhU3RvcmVJbXBsPj4+PiA9Cj4gICAgICBMYXp5TG9jazo6bmV3KHx8 IE11dGV4OjpuZXcoSGFzaE1hcDo6bmV3KCkpKTsKPiAgCj4gQEAgLTE0OSwxMSArMTYxLDEzIEBA IHB1YiBzdHJ1Y3QgRGF0YVN0b3JlSW1wbCB7Cj4gICAgICBsYXN0X2djX3N0YXR1czogTXV0ZXg8 R2FyYmFnZUNvbGxlY3Rpb25TdGF0dXM+LAo+ICAgICAgdmVyaWZ5X25ldzogYm9vbCwKPiAgICAg IGNodW5rX29yZGVyOiBDaHVua09yZGVyLAo+IC0gICAgbGFzdF9kaWdlc3Q6IE9wdGlvbjxbdTg7 IDMyXT4sCj4gICAgICBzeW5jX2xldmVsOiBEYXRhc3RvcmVGU3luY0xldmVsLAo+ICAgICAgYmFj a2VuZF9jb25maWc6IERhdGFzdG9yZUJhY2tlbmRDb25maWcsCj4gICAgICBscnVfc3RvcmVfY2Fj aGluZzogT3B0aW9uPExvY2FsRGF0YXN0b3JlTHJ1Q2FjaGU+LAo+ICAgICAgdGhyZWFkX3NldHRp bmdzOiBEYXRhc3RvcmVUaHJlYWRTZXR0aW5ncywKPiArICAgIC8vLyBEYXRhc3RvcmUgZ2VuZXJh dGlvbiBudW1iZXIgZnJvbSBgQ29uZmlnVmVyc2lvbkNhY2hlYCBhdCBjcmVhdGlvbiB0aW1lLCB1 c2VkIHRvCgpkYXRhc3RvcmUuY2ZnIGNhY2hlIGdlbmVyYXRpb24gbnVtYmVyIGF0IGxvb2t1cCB0 aW1lLCB1c2VkIHRvIGludmFsaWRhdGUKdGhpcyBjYWNoZWQgYERhdGFTdG9yZUltcGxgCgpjcmVh dGlvbiB0aW1lIGNvdWxkIGFsc28gcmVmZXIgdG8gdGhlIGRhdGFzdG9yZSBjcmVhdGlvbiB0aW1l Li4KCj4gKyAgICAvLy8gdmFsaWRhdGUgcmV1c2Ugb2YgdGhpcyBjYWNoZWQgYERhdGFTdG9yZUlt cGxgLgo+ICsgICAgY29uZmlnX2dlbmVyYXRpb246IE9wdGlvbjx1c2l6ZT4sCj4gIH0KPiAgCj4g IGltcGwgRGF0YVN0b3JlSW1wbCB7Cj4gQEAgLTE2NiwxMSArMTgwLDExIEBAIGltcGwgRGF0YVN0 b3JlSW1wbCB7Cj4gICAgICAgICAgICAgIGxhc3RfZ2Nfc3RhdHVzOiBNdXRleDo6bmV3KEdhcmJh Z2VDb2xsZWN0aW9uU3RhdHVzOjpkZWZhdWx0KCkpLAo+ICAgICAgICAgICAgICB2ZXJpZnlfbmV3 OiBmYWxzZSwKPiAgICAgICAgICAgICAgY2h1bmtfb3JkZXI6IERlZmF1bHQ6OmRlZmF1bHQoKSwK PiAtICAgICAgICAgICAgbGFzdF9kaWdlc3Q6IE5vbmUsCj4gICAgICAgICAgICAgIHN5bmNfbGV2 ZWw6IERlZmF1bHQ6OmRlZmF1bHQoKSwKPiAgICAgICAgICAgICAgYmFja2VuZF9jb25maWc6IERl ZmF1bHQ6OmRlZmF1bHQoKSwKPiAgICAgICAgICAgICAgbHJ1X3N0b3JlX2NhY2hpbmc6IE5vbmUs Cj4gICAgICAgICAgICAgIHRocmVhZF9zZXR0aW5nczogRGVmYXVsdDo6ZGVmYXVsdCgpLAo+ICsg ICAgICAgICAgICBjb25maWdfZ2VuZXJhdGlvbjogTm9uZSwKPiAgICAgICAgICB9KQo+ICAgICAg fQo+ICB9Cj4gQEAgLTI4Niw2ICszMDAsNTUgQEAgaW1wbCBEYXRhc3RvcmVUaHJlYWRTZXR0aW5n cyB7CgpzbyB0aGlzIG5ldyBoZWxwZXIgaXMgYWxyZWFkeSArNDkgbGluZXMsIHdoaWNoIG1lYW5z IGl0J3MgdGhlIGJ1bGsgb2YKdGhlIGNoYW5nZSBpZiB0aGUgbm9pc2UgYmVsb3cgaXMgcmVtb3Zl ZC4uCgo+ICAgICAgfQo+ICB9Cj4gIAo+ICsvLy8gUmV0dXJucyB0aGUgcGFyc2VkIGRhdGFzdG9y ZSBjb25maWcgKGBkYXRhc3RvcmUuY2ZnYCkgYW5kIGl0cwo+ICsvLy8gZ2VuZXJhdGlvbi4KPiAr Ly8vCj4gKy8vLyBVc2VzIGBDb25maWdWZXJzaW9uQ2FjaGVgIHRvIGRldGVjdCBzdGFsZSBlbnRy aWVzOgo+ICsvLy8gLSBJZiB0aGUgY2FjaGVkIGdlbmVyYXRpb24gbWF0Y2hlcyB0aGUgY3VycmVu dCBnZW5lcmF0aW9uLCB0aGUKPiArLy8vICAgY2FjaGVkIGNvbmZpZyBpcyByZXR1cm5lZC4KPiAr Ly8vIC0gT3RoZXJ3aXNlIHRoZSBjb25maWcgaXMgcmUtcmVhZCBmcm9tIGRpc2suIElmIGB1cGRh dGVfY2FjaGVgIGlzCj4gKy8vLyAgIGB0cnVlYCwgdGhlIG5ldyBjb25maWcgYW5kIGN1cnJlbnQg Z2VuZXJhdGlvbiBhcmUgc3RvcmVkIGluIHRoZQo+ICsvLy8gICBjYWNoZS4gQ2FsbGVycyB0aGF0 IHNldCBgdXBkYXRlX2NhY2hlID0gdHJ1ZWAgbXVzdCBob2xkIHRoZQo+ICsvLy8gICBkYXRhc3Rv cmUgY29uZmlnIGxvY2sgdG8gYXZvaWQgcmFjaW5nIHdpdGggY29uY3VycmVudCBjb25maWcKPiAr Ly8vICAgY2hhbmdlcy4KPiArLy8vIC0gSWYgYHVwZGF0ZV9jYWNoZWAgaXMgYGZhbHNlYCwgdGhl IGZyZXNobHkgcmVhZCBjb25maWcgaXMgcmV0dXJuZWQKPiArLy8vICAgYnV0IHRoZSBjYWNoZSBp cyBsZWZ0IHVuY2hhbmdlZC4KPiArLy8vCj4gKy8vLyBJZiBgQ29uZmlnVmVyc2lvbkNhY2hlYCBp cyBub3QgYXZhaWxhYmxlLCB0aGUgY29uZmlnIGlzIGFsd2F5cyByZWFkCj4gKy8vLyBmcm9tIGRp c2sgYW5kIGBOb25lYCBpcyByZXR1cm5lZCBhcyB0aGUgZ2VuZXJhdGlvbi4KPiArZm4gZGF0YXN0 b3JlX3NlY3Rpb25fY29uZmlnX2NhY2hlZCgKPiArICAgIHVwZGF0ZV9jYWNoZTogYm9vbCwKPiAr KSAtPiBSZXN1bHQ8KEFyYzxTZWN0aW9uQ29uZmlnRGF0YT4sIE9wdGlvbjx1c2l6ZT4pLCBFcnJv cj4gewo+ICsgICAgbGV0IG11dCBjb25maWdfY2FjaGUgPSBEQVRBU1RPUkVfQ09ORklHX0NBQ0hF LmxvY2soKS51bndyYXAoKTsKPiArCj4gKyAgICBpZiBsZXQgT2sodmVyc2lvbl9jYWNoZSkgPSBD b25maWdWZXJzaW9uQ2FjaGU6Om5ldygpIHsKPiArICAgICAgICBsZXQgY3VycmVudF9nZW4gPSB2 ZXJzaW9uX2NhY2hlLmRhdGFzdG9yZV9nZW5lcmF0aW9uKCk7Cj4gKyAgICAgICAgaWYgbGV0IFNv bWUoY2FjaGVkKSA9IGNvbmZpZ19jYWNoZS5hc19yZWYoKSB7Cj4gKyAgICAgICAgICAgIC8vIEZh c3QgcGF0aDogcmUtdXNlIGNhY2hlZCBkYXRhc3RvcmUuY2ZnCj4gKyAgICAgICAgICAgIGlmIGNh Y2hlZC5sYXN0X2dlbmVyYXRpb24gPT0gY3VycmVudF9nZW4gewo+ICsgICAgICAgICAgICAgICAg cmV0dXJuIE9rKChjYWNoZWQuY29uZmlnLmNsb25lKCksIFNvbWUoY2FjaGVkLmxhc3RfZ2VuZXJh dGlvbikpKTsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArICAgICAgICAvLyBTbG93 IHBhdGg6IHJlLXJlYWQgZGF0YXN0b3JlLmNmZwo+ICsgICAgICAgIGxldCAoY29uZmlnX3Jhdywg X2RpZ2VzdCkgPSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmNvbmZpZygpPzsKPiArICAgICAgICBs ZXQgY29uZmlnID0gQXJjOjpuZXcoY29uZmlnX3Jhdyk7Cj4gKwo+ICsgICAgICAgIGlmIHVwZGF0 ZV9jYWNoZSB7Cj4gKyAgICAgICAgICAgICpjb25maWdfY2FjaGUgPSBTb21lKERhdGFzdG9yZUNv bmZpZ0NhY2hlIHsKPiArICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLmNsb25lKCksCj4g KyAgICAgICAgICAgICAgICBsYXN0X2dlbmVyYXRpb246IGN1cnJlbnRfZ2VuLAo+ICsgICAgICAg ICAgICB9KTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIE9rKChjb25maWcsIFNvbWUoY3Vy cmVudF9nZW4pKSkKPiArICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgLy8gRmFsbGJhY2sgcGF0aCwg bm8gY29uZmlnIHZlcnNpb24gY2FjaGU6IHJlYWQgZGF0YXN0b3JlLmNmZyBhbmQgcmV0dXJuIE5v bmUgYXMgZ2VuZXJhdGlvbgo+ICsgICAgICAgICpjb25maWdfY2FjaGUgPSBOb25lOwo+ICsgICAg ICAgIGxldCAoY29uZmlnX3JhdywgX2RpZ2VzdCkgPSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmNv bmZpZygpPzsKPiArICAgICAgICBPaygoQXJjOjpuZXcoY29uZmlnX3JhdyksIE5vbmUpKQo+ICsg ICAgfQo+ICt9Cj4gKwo+ICBpbXBsIERhdGFTdG9yZSB7Cj4gICAgICAvLyBUaGlzIG9uZSBqdXN0 IHBhbmljcyBvbiBldmVyeXRoaW5nCj4gICAgICAjW2RvYyhoaWRkZW4pXQo+IEBAIC0zNjMsNTYg KzQyNiw2MyBAQCBpbXBsIERhdGFTdG9yZSB7Cj4gICAgICAgICAgbmFtZTogJnN0ciwKPiAgICAg ICAgICBvcGVyYXRpb246IE9wdGlvbjxPcGVyYXRpb24+LAo+ICAgICAgKSAtPiBSZXN1bHQ8QXJj PERhdGFTdG9yZT4sIEVycm9yPiB7Cgp0aGUgY2hhbmdlcyBoZXJlIGNvbnRhaW4gYSBsb3Qgb2Yg Y2h1cm4gdGhhdCBpcyBub3QgbmVlZGVkIGZvciB0aGUKYWN0dWFsIGNoYW5nZSB0aGF0IGlzIGRv bmUgLSBlLmcuLCB0aGVyZSdzIGxvdHMgb2YgdmFyaWFibGVzIGJlaW5nCm5lZWRsZXNzIHJlbmFt ZWQuLgoKPiAtICAgICAgICAvLyBBdm9pZCBUT0NUT1UgYmV0d2VlbiBjaGVja2luZyBtYWludGVu YW5jZSBtb2RlIGFuZCB1cGRhdGluZyBhY3RpdmUgb3BlcmF0aW9uIGNvdW50ZXIsIGFzCj4gLSAg ICAgICAgLy8gd2UgdXNlIGl0IHRvIGRlY2lkZSB3aGV0aGVyIGl0IGlzIG9rYXkgdG8gZGVsZXRl IHRoZSBkYXRhc3RvcmUuCj4gKyAgICAgICAgLy8gQXZvaWQgVE9DVE9VIGJldHdlZW4gY2hlY2tp bmcgbWFpbnRlbmFuY2UgbW9kZSBhbmQgdXBkYXRpbmcgYWN0aXZlIG9wZXJhdGlvbnMuCj4gICAg ICAgICAgbGV0IF9jb25maWdfbG9jayA9IHBic19jb25maWc6OmRhdGFzdG9yZTo6bG9ja19jb25m aWcoKT87Cj4gIAo+IC0gICAgICAgIC8vIHdlIGNvdWxkIHVzZSB0aGUgQ29uZmlnVmVyc2lvbkNh Y2hlJ3MgZ2VuZXJhdGlvbiBmb3Igc3RhbGVuZXNzIGRldGVjdGlvbiwgYnV0ICB3ZSBsb2FkCj4g LSAgICAgICAgLy8gdGhlIGNvbmZpZyBhbnl3YXkgLT4ganVzdCB1c2UgZGlnZXN0LCBhZGRpdGlv bmFsIGJlbmVmaXQ6IG1hbnVhbCBjaGFuZ2VzIGdldCBkZXRlY3RlZAo+IC0gICAgICAgIGxldCAo Y29uZmlnLCBkaWdlc3QpID0gcGJzX2NvbmZpZzo6ZGF0YXN0b3JlOjpjb25maWcoKT87Cj4gLSAg ICAgICAgbGV0IGNvbmZpZzogRGF0YVN0b3JlQ29uZmlnID0gY29uZmlnLmxvb2t1cCgiZGF0YXN0 b3JlIiwgbmFtZSk/Owo+ICsgICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBkYXRhc3RvcmUuY2Zn IGdlbmVyYXRpb24gbnVtYmVyIGFuZCBjYWNoZWQgY29uZmlnCj4gKyAgICAgICAgbGV0IChzZWN0 aW9uX2NvbmZpZywgZ2VuX251bSkgPSBkYXRhc3RvcmVfc2VjdGlvbl9jb25maWdfY2FjaGVkKHRy dWUpPzsKPiArCj4gKyAgICAgICAgbGV0IGRhdGFzdG9yZV9jZmc6IERhdGFTdG9yZUNvbmZpZyA9 IHNlY3Rpb25fY29uZmlnLmxvb2t1cCgiZGF0YXN0b3JlIiwgbmFtZSk/OwoKcmVuYW1pbmcgdGhp cyB2YXJpYWJsZSBoZXJlIGFscmVhZHkgY2F1c2VzIGEgbG90IG9mIG5vaXNlIC0gaWYgeW91CnJl YWxseSB3YW50IHRvIGRvIHRoYXQsIGRvIGl0IHVwLWZyb250IG9yIGF0IHRoZSBlbmQgYXMgY2xl YW51cCBjb21taXQKKGRlcGVuZGluZyBvbiBob3cgc3VyZSB5b3UgYXJlIHRoZSBjaGFuZ2UgaXMg YWdyZWUtYWJsZSAtIGlmIGl0J3MgYWxtb3N0CmNlcnRhaW4gaXQgaXMgYWNjZXB0ZWQsIHB1dCBp dCB1cCBmcm9udCwgdGhlbiBpdCBjYW4gZ2V0IGFwcGxpZWQKYWxyZWFkeS4gaWYgbm90LCBwdXQg aXQgYXQgdGhlIGVuZCAtPiB0aGVuIGl0IGNhbiBiZSBza2lwcGVkIHdpdGhvdXQKYWZmZWN0aW5n IHRoZSBvdGhlciBwYXRjaGVzIDspKQoKYnV0IGdvaW5nIGZyb20gY29uZmlnIHRvIGRhdGFzdG9y ZV9jZmcgZG9lc24ndCBtYWtlIHRoZSBjb2RlIGFueSBjbGVhcmVyCi0gdGhlIGxhdHRlciBjYW4g c3RpbGwgcmVmZXIgdG8gdGhlIHdob2xlIGNvbmZpZyAoZGF0YXN0b3JlLmNmZykgb3IgdGhlCmlu ZGl2aWR1YWwgZGF0YXN0b3JlJ3Mgc2VjdGlvbiB3aXRoaW4uLiBzaW5jZSB3ZSBoYXZlIG5vIGZ1 dGhlciBidXNpbmVzcwp3aXRoIHRoZSB3aG9sZSBzZWN0aW9uIGNvbmZpZyBoZXJlLCBJIHRoaW5r IGtlZXBpbmcgdGhpcyBhcyBgY29uZmlnYCBpcwpmaW5lLi4KCj4gKyAgICAgICAgbGV0IG1haW50 ZW5hbmNlX21vZGUgPSBkYXRhc3RvcmVfY2ZnLmdldF9tYWludGVuYW5jZV9tb2RlKCk7Cj4gKyAg ICAgICAgbGV0IG1vdW50X3N0YXR1cyA9IGdldF9kYXRhc3RvcmVfbW91bnRfc3RhdHVzKCZkYXRh c3RvcmVfY2ZnKTsKCmFuZCB0aGluZ3MgZXh0cmFjdGVkIGludG8gdmFyaWFibGVzIGhlcmUgZGVz cGl0ZSBiZWluZyB1c2VkIG9ubHkgb25jZQoodGhpcyBhbHNvIGRvZXNuJ3QgY2hhbmdlIGR1cmlu ZyB0aGUgcmVzdCBvZiB0aGUgc2VyaWVzKQoKPiAgCj4gLSAgICAgICAgaWYgbGV0IFNvbWUobWFp bnRlbmFuY2VfbW9kZSkgPSBjb25maWcuZ2V0X21haW50ZW5hbmNlX21vZGUoKSB7Cj4gLSAgICAg ICAgICAgIGlmIGxldCBFcnIoZXJyb3IpID0gbWFpbnRlbmFuY2VfbW9kZS5jaGVjayhvcGVyYXRp b24pIHsKPiArICAgICAgICBpZiBsZXQgU29tZShtbSkgPSAmbWFpbnRlbmFuY2VfbW9kZSB7Cgpi aW5kaW5nIG5hbWUgY2hhbmdlcwoKPiArICAgICAgICAgICAgaWYgbGV0IEVycihlcnJvcikgPSBt bS5jaGVjayhvcGVyYXRpb24uY2xvbmUoKSkgewoKbmV3IGNsb25lKCkgaXMgaW50cm9kdWNlZCBi dXQgbm90IG5lZWRlZAoKPiAgICAgICAgICAgICAgICAgIGJhaWwhKCJkYXRhc3RvcmUgJ3tuYW1l fScgaXMgdW5hdmFpbGFibGU6IHtlcnJvcn0iKTsKPiAgICAgICAgICAgICAgfQo+ICAgICAgICAg IH0KPiAgCj4gLSAgICAgICAgaWYgZ2V0X2RhdGFzdG9yZV9tb3VudF9zdGF0dXMoJmNvbmZpZykg PT0gU29tZShmYWxzZSkgewo+IC0gICAgICAgICAgICBsZXQgbXV0IGRhdGFzdG9yZV9jYWNoZSA9 IERBVEFTVE9SRV9NQVAubG9jaygpLnVud3JhcCgpOwo+IC0gICAgICAgICAgICBkYXRhc3RvcmVf Y2FjaGUucmVtb3ZlKCZjb25maWcubmFtZSk7Cj4gLSAgICAgICAgICAgIGJhaWwhKCJkYXRhc3Rv cmUgJ3t9JyBpcyBub3QgbW91bnRlZCIsIGNvbmZpZy5uYW1lKTsKPiArICAgICAgICBsZXQgbXV0 IGRhdGFzdG9yZV9jYWNoZSA9IERBVEFTVE9SRV9NQVAubG9jaygpLnVud3JhcCgpOwoKbW92aW5n IHRoaXMgaXMgZmluZSEKCj4gKwo+ICsgICAgICAgIGlmIG1vdW50X3N0YXR1cyA9PSBTb21lKGZh bHNlKSB7Cj4gKyAgICAgICAgICAgIGRhdGFzdG9yZV9jYWNoZS5yZW1vdmUoJmRhdGFzdG9yZV9j ZmcubmFtZSk7Cj4gKyAgICAgICAgICAgIGJhaWwhKCJkYXRhc3RvcmUgJ3t9JyBpcyBub3QgbW91 bnRlZCIsIGRhdGFzdG9yZV9jZmcubmFtZSk7Cj4gICAgICAgICAgfQo+ICAKPiAtICAgICAgICBs ZXQgbXV0IGRhdGFzdG9yZV9jYWNoZSA9IERBVEFTVE9SRV9NQVAubG9jaygpLnVud3JhcCgpOwo+ IC0gICAgICAgIGxldCBlbnRyeSA9IGRhdGFzdG9yZV9jYWNoZS5nZXQobmFtZSk7Cgp0aGlzIGlz IGNoYW5nZWQgdG8gZG9pbmcgaXQgdHdpY2UgYW5kIGNsb25pbmcuLgoKPiAtCj4gLSAgICAgICAg Ly8gcmV1c2UgY2h1bmsgc3RvcmUgc28gdGhhdCB3ZSBrZWVwIHVzaW5nIHRoZSBzYW1lIHByb2Nl c3MgbG9ja2VyIGluc3RhbmNlIQo+IC0gICAgICAgIGxldCBjaHVua19zdG9yZSA9IGlmIGxldCBT b21lKGRhdGFzdG9yZSkgPSAmZW50cnkgewoKc3RydWN0dXJlIGNoYW5nZWQgaGVyZSBhbmQgYmlu ZGluZyByZW5hbWVkLCBldmVuIHRob3VnaCB0aGUgb2xkIG9uZSB3b3JrcyBhcy1pcwoKPiAtICAg ICAgICAgICAgbGV0IGxhc3RfZGlnZXN0ID0gZGF0YXN0b3JlLmxhc3RfZGlnZXN0LmFzX3JlZigp Owo+IC0gICAgICAgICAgICBpZiBsZXQgU29tZSh0cnVlKSA9IGxhc3RfZGlnZXN0Lm1hcCh8bGFz dF9kaWdlc3R8IGxhc3RfZGlnZXN0ID09ICZkaWdlc3QpIHsKPiAtICAgICAgICAgICAgICAgIGlm IGxldCBTb21lKG9wZXJhdGlvbikgPSBvcGVyYXRpb24gewo+IC0gICAgICAgICAgICAgICAgICAg IHVwZGF0ZV9hY3RpdmVfb3BlcmF0aW9ucyhuYW1lLCBvcGVyYXRpb24sIDEpPzsKPiArICAgICAg ICAvLyBSZS11c2UgRGF0YVN0b3JlSW1wbAo+ICsgICAgICAgIGlmIGxldCBTb21lKGV4aXN0aW5n KSA9IGRhdGFzdG9yZV9jYWNoZS5nZXQobmFtZSkuY2xvbmVkKCkgewo+ICsgICAgICAgICAgICBp ZiBsZXQgKFNvbWUobGFzdF9nZW5lcmF0aW9uKSwgU29tZShnZW5fbnVtKSkgPSAoZXhpc3Rpbmcu Y29uZmlnX2dlbmVyYXRpb24sIGdlbl9udW0pIHsKPiArICAgICAgICAgICAgICAgIGlmIGxhc3Rf Z2VuZXJhdGlvbiA9PSBnZW5fbnVtIHsKCnRoZXNlIHR3byBpZnMgY2FuIGJlIGNvbGxhcHNlZCBp bnRvCgppZiBkYXRhc3RvcmUuY29uZmlnX2dlbmVyYXRpb24gPT0gZ2VuX251bSAmJiBnZW5fbnVt LmlzX3NvbWUoKSB7CgpzaW5jZSB3ZSBvbmx5IHdhbnQgdG8gcmV1c2UgdGhlIGVudHJ5IGlmIHRo ZSBjdXJyZW50IGdlbiBudW0gaXMgdGhlIHNhbWUKYXMgdGhlIGxhc3Qgb25lLgoKPiArICAgICAg ICAgICAgICAgICAgICBpZiBsZXQgU29tZShvcCkgPSBvcGVyYXRpb24gewoKYmluZGluZyBuZWVk bGVzc2x5IHJlbmFtZWQKCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9hY3RpdmVf b3BlcmF0aW9ucyhuYW1lLCBvcCwgMSk/Owo+ICsgICAgICAgICAgICAgICAgICAgIH0KPiArCj4g KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9rKEFyYzo6bmV3KFNlbGYgewo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBpbm5lcjogZXhpc3RpbmcsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIG9wZXJhdGlvbiwKPiArICAgICAgICAgICAgICAgICAgICB9KSk7Cj4gICAgICAgICAgICAg ICAgICB9Cj4gLSAgICAgICAgICAgICAgICByZXR1cm4gT2soQXJjOjpuZXcoU2VsZiB7Cj4gLSAg ICAgICAgICAgICAgICAgICAgaW5uZXI6IEFyYzo6Y2xvbmUoZGF0YXN0b3JlKSwKPiAtICAgICAg ICAgICAgICAgICAgICBvcGVyYXRpb24sCj4gLSAgICAgICAgICAgICAgICB9KSk7Cj4gICAgICAg ICAgICAgIH0KPiAtICAgICAgICAgICAgQXJjOjpjbG9uZSgmZGF0YXN0b3JlLmNodW5rX3N0b3Jl KQo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgLy8gKFJlKWJ1aWxkIERhdGFTdG9yZUltcGwK PiArCj4gKyAgICAgICAgLy8gUmV1c2UgY2h1bmsgc3RvcmUgc28gdGhhdCB3ZSBrZWVwIHVzaW5n IHRoZSBzYW1lIHByb2Nlc3MgbG9ja2VyIGluc3RhbmNlIQo+ICsgICAgICAgIGxldCBjaHVua19z dG9yZSA9IGlmIGxldCBTb21lKGV4aXN0aW5nKSA9IGRhdGFzdG9yZV9jYWNoZS5nZXQobmFtZSkg ewo+ICsgICAgICAgICAgICBBcmM6OmNsb25lKCZleGlzdGluZy5jaHVua19zdG9yZSkKCnRoaXMg b25lIGlzIG5vdCBuZWVkZWQgYXQgYWxsLCBjYW4ganVzdCBiZSBjb21iaW5lZCB3aXRoIHRoZSBw cmV2aW91cyBpZgphcyBiZWZvcmUKCj4gICAgICAgICAgfSBlbHNlIHsKPiAgICAgICAgICAgICAg bGV0IHR1bmluZzogRGF0YXN0b3JlVHVuaW5nID0gc2VyZGVfanNvbjo6ZnJvbV92YWx1ZSgKPiAg ICAgICAgICAgICAgICAgIERhdGFzdG9yZVR1bmluZzo6QVBJX1NDSEVNQQo+IC0gICAgICAgICAg ICAgICAgICAgIC5wYXJzZV9wcm9wZXJ0eV9zdHJpbmcoY29uZmlnLnR1bmluZy5hc19kZXJlZigp LnVud3JhcF9vcigiIikpPywKPiArICAgICAgICAgICAgICAgICAgICAucGFyc2VfcHJvcGVydHlf c3RyaW5nKGRhdGFzdG9yZV9jZmcudHVuaW5nLmFzX2RlcmVmKCkudW53cmFwX29yKCIiKSk/LAo+ ICAgICAgICAgICAgICApPzsKPiAgICAgICAgICAgICAgQXJjOjpuZXcoQ2h1bmtTdG9yZTo6b3Bl bigKPiAgICAgICAgICAgICAgICAgIG5hbWUsCj4gLSAgICAgICAgICAgICAgICBjb25maWcuYWJz b2x1dGVfcGF0aCgpLAo+ICsgICAgICAgICAgICAgICAgZGF0YXN0b3JlX2NmZy5hYnNvbHV0ZV9w YXRoKCksCj4gICAgICAgICAgICAgICAgICB0dW5pbmcuc3luY19sZXZlbC51bndyYXBfb3JfZGVm YXVsdCgpLAo+ICAgICAgICAgICAgICApPykKPiAgICAgICAgICB9Owo+ICAKPiAtICAgICAgICBs ZXQgZGF0YXN0b3JlID0gRGF0YVN0b3JlOjp3aXRoX3N0b3JlX2FuZF9jb25maWcoY2h1bmtfc3Rv cmUsIGNvbmZpZywgU29tZShkaWdlc3QpKT87Cj4gKyAgICAgICAgbGV0IGRhdGFzdG9yZSA9IERh dGFTdG9yZTo6d2l0aF9zdG9yZV9hbmRfY29uZmlnKGNodW5rX3N0b3JlLCBkYXRhc3RvcmVfY2Zn LCBnZW5fbnVtKT87Cj4gIAo+ICAgICAgICAgIGxldCBkYXRhc3RvcmUgPSBBcmM6Om5ldyhkYXRh c3RvcmUpOwo+ICAgICAgICAgIGRhdGFzdG9yZV9jYWNoZS5pbnNlcnQobmFtZS50b19zdHJpbmco KSwgZGF0YXN0b3JlLmNsb25lKCkpOwo+IEBAIC01MTQsNyArNTg0LDcgQEAgaW1wbCBEYXRhU3Rv cmUgewo+ICAgICAgZm4gd2l0aF9zdG9yZV9hbmRfY29uZmlnKAo+ICAgICAgICAgIGNodW5rX3N0 b3JlOiBBcmM8Q2h1bmtTdG9yZT4sCj4gICAgICAgICAgY29uZmlnOiBEYXRhU3RvcmVDb25maWcs Cj4gLSAgICAgICAgbGFzdF9kaWdlc3Q6IE9wdGlvbjxbdTg7IDMyXT4sCj4gKyAgICAgICAgZ2Vu ZXJhdGlvbjogT3B0aW9uPHVzaXplPiwKPiAgICAgICkgLT4gUmVzdWx0PERhdGFTdG9yZUltcGws IEVycm9yPiB7Cj4gICAgICAgICAgbGV0IG11dCBnY19zdGF0dXNfcGF0aCA9IGNodW5rX3N0b3Jl LmJhc2VfcGF0aCgpOwo+ICAgICAgICAgIGdjX3N0YXR1c19wYXRoLnB1c2goIi5nYy1zdGF0dXMi KTsKPiBAQCAtNTc5LDExICs2NDksMTEgQEAgaW1wbCBEYXRhU3RvcmUgewo+ICAgICAgICAgICAg ICBsYXN0X2djX3N0YXR1czogTXV0ZXg6Om5ldyhnY19zdGF0dXMpLAo+ICAgICAgICAgICAgICB2 ZXJpZnlfbmV3OiBjb25maWcudmVyaWZ5X25ldy51bndyYXBfb3IoZmFsc2UpLAo+ICAgICAgICAg ICAgICBjaHVua19vcmRlcjogdHVuaW5nLmNodW5rX29yZGVyLnVud3JhcF9vcl9kZWZhdWx0KCks Cj4gLSAgICAgICAgICAgIGxhc3RfZGlnZXN0LAo+ICAgICAgICAgICAgICBzeW5jX2xldmVsOiB0 dW5pbmcuc3luY19sZXZlbC51bndyYXBfb3JfZGVmYXVsdCgpLAo+ICAgICAgICAgICAgICBiYWNr ZW5kX2NvbmZpZywKPiAgICAgICAgICAgICAgbHJ1X3N0b3JlX2NhY2hpbmcsCj4gICAgICAgICAg ICAgIHRocmVhZF9zZXR0aW5ncywKPiArICAgICAgICAgICAgY29uZmlnX2dlbmVyYXRpb246IGdl bmVyYXRpb24sCj4gICAgICAgICAgfSkKPiAgICAgIH0KPiAgCj4gLS0gCj4gMi40Ny4zCj4gCj4g Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBw YnMtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4gaHR0 cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVs Cj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJz LWRldmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9s aXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==