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 956A31FF179 for ; Wed, 12 Nov 2025 14:24:11 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A4C10365F; Wed, 12 Nov 2025 14:24:58 +0100 (CET) Date: Wed, 12 Nov 2025 14:24:50 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Backup Server development discussion References: <20251111122941.110412-1-s.rufinatscha@proxmox.com> <20251111122941.110412-2-s.rufinatscha@proxmox.com> In-Reply-To: <20251111122941.110412-2-s.rufinatscha@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.17.0 (https://github.com/astroidmail/astroid) Message-Id: <1762936034.bqz00j2ard.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762953868389 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.103 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 1/3] 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" T24gTm92ZW1iZXIgMTEsIDIwMjUgMToyOSBwbSwgU2FtdWVsIFJ1ZmluYXRzY2hhIHdyb3RlOgo+ IFJlcGVhdGVkIC9zdGF0dXMgcmVxdWVzdHMgY2F1c2VkIGxvb2t1cF9kYXRhc3RvcmUoKSB0byBy ZS1yZWFkIGFuZAo+IHBhcnNlIGRhdGFzdG9yZS5jZmcgb24gZXZlcnkgY2FsbC4gVGhlIGlzc3Vl IHdhcyBtZW50aW9uZWQgaW4gcmVwb3J0Cj4gIzYwNDkgWzFdLiBjYXJnby1mbGFtZWdyYXBoIFsy XSBjb25maXJtZWQgdGhhdCB0aGUgaG90IHBhdGggaXMKPiBkb21pbmF0ZWQgYnkgcGJzX2NvbmZp Zzo6ZGF0YXN0b3JlOjpjb25maWcoKSAoY29uZmlnIHBhcnNpbmcpLgo+IAo+IFRoaXMgcGF0Y2gg YWRkcyBhIGZhc3QgcGF0aCB0byBsb29rdXBfZGF0YXN0b3JlKCkgdXNpbmcgdGhlIHNoYXJlZC0K PiBtZW1vcnkgQ29uZmlnVmVyc2lvbkNhY2hlIGdlbmVyYXRpb24gY291bnRlciBmb3IgZGF0YXN0 b3JlLmNmZy4gSXQKPiBzdG9yZXMgdGhlIGxhc3Qgc2VlbiBnZW5lcmF0aW9uIG51bWJlciBhbG9u Z3NpZGUgdGhlIGNhY2hlZAo+IERhdGFTdG9yZUltcGwgYW5kLCB3aGVuIGEgc3Vic2VxdWVudCBs b29rdXAgc2VlcyB0aGUgc2FtZSBnZW5lcmF0aW9uLAo+IHdlIHJldXNlIHRoZSBjYWNoZWQgaW5z dGFuY2Ugd2l0aG91dCByZS1yZWFkaW5nIHRoZSBvbi1kaXNrIGNvbmZpZy4gSWYKPiB0aGUgZ2Vu ZXJhdGlvbiBkaWZmZXJzIChvciB0aGUgY2FjaGUgaXMgdW5hdmFpbGFibGUpLCBpdCBmYWxscyBi YWNrIHRvCj4gdGhlIGV4aXN0aW5nIHNsb3cgcGF0aCB3aXRoIG5vIGJlaGF2aW9yYWwgY2hhbmdl cy4KPiAKPiBCZWhhdmlvcmFsIG5vdGVzCj4gCj4gLSBUaGUgZ2VuZXJhdGlvbiBpcyBidW1wZWQg dmlhIHRoZSBleGlzdGluZyBzYXZlX2NvbmZpZygpIHBhdGgsIHNvCj4gICBBUEktZHJpdmVuIGNv bmZpZyBjaGFuZ2VzIGFyZSBkZXRlY3RlZCBpbW1lZGlhdGVseS4KPiAtIE1hbnVhbCBlZGl0cyB0 byBkYXRhc3RvcmUuY2ZnIGFyZSBub3QgZGV0ZWN0ZWQgYnkgdGhpcyBjb21taXQ7IGEgVFRMCj4g ICBndWFyZCBpcyBpbnRyb2R1Y2VkIGluIGEgbGF0ZXIgcGF0Y2ggdG8gY292ZXIgdGhhdCBjYXNl Lgo+IC0gRGF0YVN0b3JlOjpkcm9wIHN0aWxsIHBlcmZvcm1zIGEgY29uZmlnIHJlYWQgb24gdGhl IGNvbW1vbiBwYXRoOyB0aGlzCj4gICBpcyBhZGRyZXNzZWQgaW4gdGhlIG5leHQgcGF0Y2guCj4g Cj4gVGVzdGluZwo+IAo+IGNhcmdvLWZsYW1lZ3JhcGggY29uZmlybXMgdGhlIGNvbmZpZy1wYXJz ZSBob3RzcG90IGluCj4gbG9va3VwX2RhdGFzdG9yZSgpIGRpc2FwcGVhcnMgZnJvbSB0aGUgaG90 IHBhdGguCj4gCj4gQWRkaXRpb25hbGx5LCBhbiBlbmQtdG8tZW5kIGJlbmNobWFyayB3YXMgcGVy Zm9ybWVkIHVzaW5nIHRoZQo+IGAvc3RhdHVzP3ZlcmJvc2U9MGAgQVBJIHdpdGggMTAwMCBkYXRh c3RvcmVzLCA1IHJlcXVlc3RzIHBlciBzdG9yZSwKPiBhbmQgMTYtd2F5IHBhcmFsbGVsaXNtOgo+ IAo+IHwgTWV0cmljICAgICAgICAgICAgICAgICAgIHwgQmVmb3JlIHwgQWZ0ZXIgIHwgzpQgKGFi cykgfCDOlCAoJSkgICB8Cj4gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS06fDot LS0tLS06fDotLS0tLS0tOnw6LS0tLS0tLTp8Cj4gfCBUb3RhbCB0aW1lICAgICAgICAgICAgICAg fCAxM3MgICAgfCAxMXMgICAgfCDiiJIycyAgICAgfCDiiJIxNS4zOCUgfAo+IHwgVGhyb3VnaHB1 dCAoYWxsIHJvdW5kcykgIHwgMzg0LjYyIHwgNDU0LjU1IHwgKzY5LjkzICB8ICsxOC4xOCUgfAo+ IHwgQ29sZCBSUFMgKHJvdW5kICMxKSAgICAgIHwgNzYuOTIgIHwgOTAuOTEgIHwgKzEzLjk5ICB8 ICsxOC4xOSUgfAo+IHwgV2FybSBSUFMgKHJvdW5kcyAyLi5OKSAgIHwgMzA3LjY5IHwgMzYzLjY0 IHwgKzU1Ljk1ICB8ICsxOC4xOCUgfAo+IAo+IFRocm91Z2hwdXQgaW1wcm92ZWQgYnkgfjE4JSBv dmVyYWxsLCB3aXRoIHRvdGFsIHRpbWUgcmVkdWNlZCBieSB+MTUlLgo+IFdhcm0gbG9va3VwcyBu b3cgcmV1c2UgY2FjaGVkIGRhdGFzdG9yZSBpbnN0YW5jZXMgYW5kIHNraXAgcmVkdW5kYW50Cj4g Y29uZmlnIHBhcnNpbmcgZW50aXJlbHkuIFRoZSBmaXJzdC1hY2Nlc3Mgcm91bmQgYWxzbyBzaG93 cyBhIHNpbWlsYXIKPiBpbXByb3ZlbWVudCwgbGlrZWx5IGR1ZSB0byByZWR1Y2VkIGNvbnRlbnRp b24gYW5kIEkvTyB3aGVuIG1hbnkgc3RvcmVzCj4gYXJlIGFjY2Vzc2VkIGluIHBhcmFsbGVsLgo+ IAo+IE5vdGU6IEEgc2Vjb25kIGhvdHNwb3QgcmVtYWlucyBpbiBEcm9wIHdoZXJlIGEgY29uZmln IHJlYWQgb2NjdXJzOyB0aGF0Cj4gaXMgYWRkcmVzc2VkIGluIHRoZSBuZXh0IGNvbW1pdC4KCml0 IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGFsc28gaGF2ZSBudW1iZXJzIGZvciBqdXN0IGxvb2t1 cCtEcm9wLAp3aXRob3V0IGFsbCB0aGUgSFRUUCBhbmQgVExTIG92ZXJoZWFkIHRvIHJlYWxseSBp c29sYXRlIGl0LiB0aGF0IHNob3VsZAphbHNvIG1ha2UgaXQgZWFzaWVyIHRvIHJlbGlhYmx5IGJl bmNobWFyayB3aXRoIHNvbWV0aGluZyBsaWtlIGh5cGVyZmluZQo7KQoKZm9yIG15IHNpbXBsZSBj b25maWcgKDUgZGF0YXN0b3Jlcykgc2luZ2xlLXRocmVhZGVkIGxvb2t1cCtkcm9wIG9mIGEKc2lu Z2xlIGRhdGFzdG9yZSAxMDBrIHRpbWVzIGdpdmVzIGFyb3VuZCAxLjMxIHNwZWVkdXAgZm9yIHRo ZSB3aG9sZQpzZXJpZXMuIHRoZSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIGZyb20gYmVsb3cg KHdoaWNoIGJhc2ljYWxseSBydW5zCnRoZSBtb3N0IGV4cGVuc2l2ZSBwYXJ0IG9mIERyb3Agb25s eSBvbmNlKSBmb3IgdGhlIHNhbWUgdGVzdCBzZXR1cCBzdGlsbApnaXZlcyBhIHNwZWVkdXAgb2Yg MS4xNwoKcmUtcnVubmluZyB0aGUgc2FtZSBiZW5jaG1hcmsgd2l0aCBhIGNvbmZpZyB3aXRoIDFr IGRhdGFzdG9yZXMsIHF1ZXJ5aW5nCk0gZGF0YXN0b3JlcyBOIHRpbWVzIGdpdmVzIHRoZSBmb2xs b3dpbmcgc3BlZWR1cHM6CgpNID0gMSwgTiA9IDEwMDA6IDE1LjZ4IGZhc3RlcgpNID0gMTAsIE4g PSAxMDA6IDE0LjV4Ck0gPSAxMDAsIE4gPSAxMDogOC44eApNID0gMTAwMCwgTiA9IDE6IDEuOHgg KHNvIHRoaXMgaXMgYmFzaWNhbGx5IHNob3dpbmcgdGhlIHNwZWVkdXAgb2YgdGhlCmltcHJvdmVk IERyb3AgaGFuZGxpbmcgYWxvbmUhKQoKYW5kIHRoZW4gYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJz aW9uLCB0aGF0IGtlZXBzIHRoZSBEYXRhU3RvcmUgaW5zdGFuY2UKYXJvdW5kIHVudGlsIGFsbCBO IGxvb2t1cHMgZm9yIHRoYXQgZGF0YXN0b3JlIGFyZSBkb25lLCB0aGVuIGRyb3BwaW5nCnRoZW0g aW4gYnVsayAod2hpY2ggbWltaWNzIGhhdmluZyBsb3RzIG9mIGxvb2t1cHMgd2hpbGUgYSB0YXNr IGlzCnJ1bm5pbmcsIG1ha2luZyB0aGUgRHJvcCBoYW5kbGVyIG9ubHkgZG8gdGhlIGV4cGVuc2l2 ZSBwYXJ0IGV2ZXJ5IG9uY2UKaW4gYSB3aGlsZSB3aGVuIHRoZSBsYXN0IHRhc2sgZm9yIGEgZ2l2 ZW4gZGF0YXN0b3JlIGV4aXRzKToKCnVzZSBhbnlob3c6OkVycm9yOwoKdXNlIHBic19hcGlfdHlw ZXM6Ok9wZXJhdGlvbjsKdXNlIHBic19kYXRhc3RvcmU6OkRhdGFTdG9yZTsKCmZuIG1haW4oKSAt PiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICBsZXQgbXV0IGFyZ3MgPSBzdGQ6OmVudjo6YXJncygp OwogICAgYXJncy5uZXh0KCk7CgogICAgbGV0IGRhdGFzdG9yZXMgPSBpZiBsZXQgU29tZShuKSA9 IGFyZ3MubmV4dCgpIHsKICAgICAgICBuLnBhcnNlOjo8dXNpemU+KCk/CiAgICB9IGVsc2Ugewog ICAgICAgIDEwMDAKICAgIH07CgogICAgbGV0IGl0ZXJhdGlvbnMgPSBpZiBsZXQgU29tZShuKSA9 IGFyZ3MubmV4dCgpIHsKICAgICAgICBuLnBhcnNlOjo8dXNpemU+KCk/CiAgICB9IGVsc2Ugewog ICAgICAgIDEwMDAKICAgIH07CgogICAgZm9yIGQgaW4gMS4uPWRhdGFzdG9yZXMgewogICAgICAg IGxldCBuYW1lID0gZm9ybWF0ISgicGJzX2JlbmNoX3tkfSIpOwogICAgICAgIGxldCBtdXQgc3Rv cmVzID0gVmVjOjp3aXRoX2NhcGFjaXR5KGl0ZXJhdGlvbnMpOwogICAgICAgIGZvciBpIGluIDEu Lj1pdGVyYXRpb25zIHsKICAgICAgICAgICAgc3RvcmVzLnB1c2goRGF0YVN0b3JlOjpsb29rdXBf ZGF0YXN0b3JlKCZuYW1lLCBTb21lKE9wZXJhdGlvbjo6V3JpdGUpKT8pOwogICAgICAgIH0KICAg IH0KCiAgICBPaygoKSkKfQoKTSA9IDEsIE4gPSAxMDAwOiA4LjV4IGZhc3RlcgpNID0gMTAsIE4g PSAxMDA6IDcuOXgKTSA9IDEwMCwgTiA9IDEwOiA1LjJ4Ck0gPSAxMDAwLCBOID0gMTogMS45eAoK bG9va2luZyBhdCB0aGUgZmxhbWVncmFwaCBvZiB0aGlzIGlzb2xhdGVkIGJlbmNobWFyayBpdCdz IG5vdyBvYnZpb3VzCnRoYXQgdGhlIHJlbWFpbmluZyBvdmVyaGVhZCBpcyBsb2NrZmlsZXMgYW5k IHRyYWNraW5nIHRoZSBvcGVyYXRpb25zCihib3RoIGluIGxvb2t1cCBhbmQgd2hlbiBkcm9wcGlu ZykuLgoKc2lkZS1ub3RlOiBJIGFjdHVhbGx5IGZvdW5kIGEgYnVnIGluIG91ciBvcGVyYXRpb25z IHRyYWNraW5nIHdoaWxlCmJlbmNobWFya2luZyB0aGlzIHNlcmllcyB0aGF0IGdhdmUgbWUgd2ls ZGx5IGRpZmZlcmVudCBudW1iZXJzIGJlY2F1c2UKdGhlICJkcm9wIGxhc3QgdGFzayIgcGFydCBu ZXZlciBnb3QgZXhlY3V0ZWQgYXMgYSByZXN1bHQ6CgpodHRwczovL2xvcmUucHJveG1veC5jb20v cGJzLWRldmVsLzIwMjUxMTEyMTMxNTI1LjY0NTk3MS0xLWYuZ3J1ZW5iaWNobGVyQHByb3htb3gu Y29tL1QvI3UKCj4gCj4gTGlua3MKPiAKPiBbMV0gQnVnemlsbGE6IGh0dHBzOi8vYnVnemlsbGEu cHJveG1veC5jb20vc2hvd19idWcuY2dpP2lkPTYwNDkKPiBbMl0gY2FyZ28tZmxhbWVncmFwaDog aHR0cHM6Ly9naXRodWIuY29tL2ZsYW1lZ3JhcGgtcnMvZmxhbWVncmFwaAo+IAo+IEZpeGVzOiAj NjA0OQo+IFNpZ25lZC1vZmYtYnk6IFNhbXVlbCBSdWZpbmF0c2NoYSA8cy5ydWZpbmF0c2NoYUBw cm94bW94LmNvbT4KPiAtLS0KPiAgcGJzLWNvbmZpZy9zcmMvY29uZmlnX3ZlcnNpb25fY2FjaGUu cnMgfCAxMCArKystCj4gIHBicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycyAgICAgICAgIHwg NzcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNl cnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvcGJzLWNvbmZpZy9z cmMvY29uZmlnX3ZlcnNpb25fY2FjaGUucnMgYi9wYnMtY29uZmlnL3NyYy9jb25maWdfdmVyc2lv bl9jYWNoZS5ycwo+IGluZGV4IGU4ZmI5OTRmLi5iODc1ZjdlMCAxMDA2NDQKPiAtLS0gYS9wYnMt Y29uZmlnL3NyYy9jb25maWdfdmVyc2lvbl9jYWNoZS5ycwo+ICsrKyBiL3Bicy1jb25maWcvc3Jj L2NvbmZpZ192ZXJzaW9uX2NhY2hlLnJzCj4gQEAgLTI2LDcgKzI2LDYgQEAgc3RydWN0IENvbmZp Z1ZlcnNpb25DYWNoZURhdGFJbm5lciB7Cj4gICAgICAvLyBUcmFmZmljIGNvbnRyb2wgKHRyYWZm aWMtY29udHJvbC5jZmcpIGdlbmVyYXRpb24vdmVyc2lvbi4KPiAgICAgIHRyYWZmaWNfY29udHJv bF9nZW5lcmF0aW9uOiBBdG9taWNVc2l6ZSwKPiAgICAgIC8vIGRhdGFzdG9yZSAoZGF0YXN0b3Jl LmNmZykgZ2VuZXJhdGlvbi92ZXJzaW9uCj4gLSAgICAvLyBGSVhNRTogcmVtb3ZlIHdpdGggUEJT IDMuMAo+ICAgICAgZGF0YXN0b3JlX2dlbmVyYXRpb246IEF0b21pY1VzaXplLAo+ICAgICAgLy8g QWRkIGZ1cnRoZXIgYXRvbWljcyBoZXJlCj4gIH0KPiBAQCAtMTQ1LDggKzE0NCwxNSBAQCBpbXBs IENvbmZpZ1ZlcnNpb25DYWNoZSB7Cj4gICAgICAgICAgICAgIC5mZXRjaF9hZGQoMSwgT3JkZXJp bmc6OkFjcVJlbCk7Cj4gICAgICB9Cj4gIAo+ICsgICAgLy8vIFJldHVybnMgdGhlIGRhdGFzdG9y ZSBnZW5lcmF0aW9uIG51bWJlci4KPiArICAgIHB1YiBmbiBkYXRhc3RvcmVfZ2VuZXJhdGlvbigm c2VsZikgLT4gdXNpemUgewo+ICsgICAgICAgIHNlbGYuc2htZW0KPiArICAgICAgICAgICAgLmRh dGEoKQo+ICsgICAgICAgICAgICAuZGF0YXN0b3JlX2dlbmVyYXRpb24KPiArICAgICAgICAgICAg LmxvYWQoT3JkZXJpbmc6OkFjcXVpcmUpCj4gKyAgICB9Cj4gKwo+ICAgICAgLy8vIEluY3JlYXNl IHRoZSBkYXRhc3RvcmUgZ2VuZXJhdGlvbiBudW1iZXIuCj4gLSAgICAvLyBGSVhNRTogcmVtb3Zl IHdpdGggUEJTIDMuMCBvciBtYWtlIGFjdHVhbGx5IHVzZWZ1bCBhZ2FpbiBpbiBkYXRhc3RvcmUg bG9va3VwCj4gICAgICBwdWIgZm4gaW5jcmVhc2VfZGF0YXN0b3JlX2dlbmVyYXRpb24oJnNlbGYp IC0+IHVzaXplIHsKPiAgICAgICAgICBzZWxmLnNobWVtCj4gICAgICAgICAgICAgIC5kYXRhKCkK CnRoaXMgcGFydCBjb3VsZCBiZSBzcGxpdCBvdXQgaW50byBpdHMgb3duIHBhdGNoCgo+IGRpZmYg LS1naXQgYS9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMgYi9wYnMtZGF0YXN0b3JlL3Ny Yy9kYXRhc3RvcmUucnMKPiBpbmRleCA3MGFmOTRkOC4uMThlZWJiNTggMTAwNjQ0Cj4gLS0tIGEv cGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCj4gKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMv ZGF0YXN0b3JlLnJzCj4gQEAgLTMyLDcgKzMyLDcgQEAgdXNlIHBic19hcGlfdHlwZXM6OnsKPiAg ICAgIE1haW50ZW5hbmNlVHlwZSwgT3BlcmF0aW9uLCBVUElELAo+ICB9Owo+ICB1c2UgcGJzX2Nv bmZpZzo6czM6OlMzX0NGR19UWVBFX0lEOwo+IC11c2UgcGJzX2NvbmZpZzo6QmFja3VwTG9ja0d1 YXJkOwo+ICt1c2UgcGJzX2NvbmZpZzo6e0JhY2t1cExvY2tHdWFyZCwgQ29uZmlnVmVyc2lvbkNh Y2hlfTsKPiAgCj4gIHVzZSBjcmF0ZTo6YmFja3VwX2luZm86OnsKPiAgICAgIEJhY2t1cERpciwg QmFja3VwR3JvdXAsIEJhY2t1cEluZm8sIE9MRF9MT0NLSU5HLCBQUk9URUNURURfTUFSS0VSX0ZJ TEVOQU1FLAo+IEBAIC0xNDAsMTAgKzE0MCwxMCBAQCBwdWIgc3RydWN0IERhdGFTdG9yZUltcGwg ewo+ICAgICAgbGFzdF9nY19zdGF0dXM6IE11dGV4PEdhcmJhZ2VDb2xsZWN0aW9uU3RhdHVzPiwK PiAgICAgIHZlcmlmeV9uZXc6IGJvb2wsCj4gICAgICBjaHVua19vcmRlcjogQ2h1bmtPcmRlciwK PiAtICAgIGxhc3RfZGlnZXN0OiBPcHRpb248W3U4OyAzMl0+LAo+ICAgICAgc3luY19sZXZlbDog RGF0YXN0b3JlRlN5bmNMZXZlbCwKPiAgICAgIGJhY2tlbmRfY29uZmlnOiBEYXRhc3RvcmVCYWNr ZW5kQ29uZmlnLAo+ICAgICAgbHJ1X3N0b3JlX2NhY2hpbmc6IE9wdGlvbjxMb2NhbERhdGFzdG9y ZUxydUNhY2hlPiwKPiArICAgIGNhY2hlZF9jb25maWdfdGFnOiBPcHRpb248Q2FjaGVkRGF0YXN0 b3JlQ29uZmlnVGFnPiwKPiAgfQo+ICAKPiAgaW1wbCBEYXRhU3RvcmVJbXBsIHsKPiBAQCAtMTU2 LDEwICsxNTYsMTAgQEAgaW1wbCBEYXRhU3RvcmVJbXBsIHsKPiAgICAgICAgICAgICAgbGFzdF9n Y19zdGF0dXM6IE11dGV4OjpuZXcoR2FyYmFnZUNvbGxlY3Rpb25TdGF0dXM6OmRlZmF1bHQoKSks Cj4gICAgICAgICAgICAgIHZlcmlmeV9uZXc6IGZhbHNlLAo+ICAgICAgICAgICAgICBjaHVua19v cmRlcjogRGVmYXVsdDo6ZGVmYXVsdCgpLAo+IC0gICAgICAgICAgICBsYXN0X2RpZ2VzdDogTm9u ZSwKPiAgICAgICAgICAgICAgc3luY19sZXZlbDogRGVmYXVsdDo6ZGVmYXVsdCgpLAo+ICAgICAg ICAgICAgICBiYWNrZW5kX2NvbmZpZzogRGVmYXVsdDo6ZGVmYXVsdCgpLAo+ICAgICAgICAgICAg ICBscnVfc3RvcmVfY2FjaGluZzogTm9uZSwKPiArICAgICAgICAgICAgY2FjaGVkX2NvbmZpZ190 YWc6IE5vbmUsCj4gICAgICAgICAgfSkKPiAgICAgIH0KPiAgfQo+IEBAIC0yMjQsNiArMjI0LDE1 IEBAIHB1YiBlbnVtIERhdGFzdG9yZUJhY2tlbmQgewo+ICAgICAgUzMoQXJjPFMzQ2xpZW50Piks Cj4gIH0KPiAgCj4gKy8vLyBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIGEgY2FjaGVkIGRhdGFz dG9yZSBpbnN0YW5jZSBpcyBzdGlsbCB2YWxpZAo+ICsvLy8gb3IgbmVlZHMgdG8gYmUgcmVsb2Fk ZWQgYWZ0ZXIgYSBjb25maWcgY2hhbmdlLgo+ICtzdHJ1Y3QgQ2FjaGVkRGF0YXN0b3JlQ29uZmln VGFnIHsKPiArICAgIC8vLyBNYWludGVuYW5jZSBtb2RlIGF0IHRoZSB0aW1lIHRoZSBsb29rdXAg aGludCB3YXMgY2FwdHVyZWQsIGlmIGFueS4KPiArICAgIGxhc3RfbWFpbnRlbmFuY2VfbW9kZTog T3B0aW9uPE1haW50ZW5hbmNlTW9kZT4sCj4gKyAgICAvLy8gRGF0YXN0b3JlIGdlbmVyYXRpb24g bnVtYmVyIGZyb20gYENvbmZpZ1ZlcnNpb25DYWNoZWA7IGBOb25lYCB3aGVuIHRoZSBjYWNoZSB3 YXNuJ3QgYXZhaWxhYmxlLgo+ICsgICAgbGFzdF9nZW5lcmF0aW9uOiBPcHRpb248dXNpemU+LAoK aWYgdGhlIHdob2xlIHRhZyBpcyBhbiBvcHRpb24sIGRvIHdlIHJlYWxseSBuZWVkIHRvIG1ha2Ug dGhlIGdlbmVyYXRpb24KYW4gb3B0aW9uIGFzIHdlbGw/Cgo+ICt9Cj4gKwo+ICBpbXBsIERhdGFT dG9yZSB7Cj4gICAgICAvLyBUaGlzIG9uZSBqdXN0IHBhbmljcyBvbiBldmVyeXRoaW5nCj4gICAg ICAjW2RvYyhoaWRkZW4pXQo+IEBAIC0yOTksMTMgKzMwOCw0MCBAQCBpbXBsIERhdGFTdG9yZSB7 Cj4gICAgICAgICAgLy8gd2UgdXNlIGl0IHRvIGRlY2lkZSB3aGV0aGVyIGl0IGlzIG9rYXkgdG8g ZGVsZXRlIHRoZSBkYXRhc3RvcmUuCj4gICAgICAgICAgbGV0IF9jb25maWdfbG9jayA9IHBic19j b25maWc6OmRhdGFzdG9yZTo6bG9ja19jb25maWcoKT87Cj4gIAo+IC0gICAgICAgIC8vIHdlIGNv dWxkIHVzZSB0aGUgQ29uZmlnVmVyc2lvbkNhY2hlJ3MgZ2VuZXJhdGlvbiBmb3Igc3RhbGVuZXNz IGRldGVjdGlvbiwgYnV0ICB3ZSBsb2FkCj4gLSAgICAgICAgLy8gdGhlIGNvbmZpZyBhbnl3YXkg LT4ganVzdCB1c2UgZGlnZXN0LCBhZGRpdGlvbmFsIGJlbmVmaXQ6IG1hbnVhbCBjaGFuZ2VzIGdl dCBkZXRlY3RlZAo+IC0gICAgICAgIGxldCAoY29uZmlnLCBkaWdlc3QpID0gcGJzX2NvbmZpZzo6 ZGF0YXN0b3JlOjpjb25maWcoKT87Cj4gKyAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IGRhdGFz dG9yZS5jZmcgZ2VuZXJhdGlvbiBudW1iZXIKPiArICAgICAgICBsZXQgZ2VuX251bSA9IENvbmZp Z1ZlcnNpb25DYWNoZTo6bmV3KCkKPiArICAgICAgICAgICAgLm9rKCkKPiArICAgICAgICAgICAg Lm1hcCh8Y3wgYy5kYXRhc3RvcmVfZ2VuZXJhdGlvbigpKTsKPiArCj4gKyAgICAgICAgLy8gRmFz dC1wYXRoOiBpZiB3ZSBoYXZlIGEgY2FjaGVkIGVudHJ5IGNyZWF0ZWQgdW5kZXIgdGhlIHNhbWUg ZGF0YXN0b3JlLmNmZyBnZW5lcmF0aW9uIG51bWJlciwgcmV1c2UgaXQuCj4gKyAgICAgICAgaWYg bGV0IChTb21lKGdlbl9udW0pLCBTb21lKGRzKSkgPQo+ICsgICAgICAgICAgICAoZ2VuX251bSwg REFUQVNUT1JFX01BUC5sb2NrKCkudW53cmFwKCkuZ2V0KG5hbWUpLmNsb25lZCgpKQo+ICsgICAg ICAgIHsKPiArICAgICAgICAgICAgaWYgbGV0IFNvbWUoY2FjaGVkX3RhZykgPSAmZHMuY2FjaGVk X2NvbmZpZ190YWcgewo+ICsgICAgICAgICAgICAgICAgaWYgY2FjaGVkX3RhZy5sYXN0X2dlbmVy YXRpb24gPT0gU29tZShnZW5fbnVtKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNv bWUobW0pID0gJmNhY2hlZF90YWcubGFzdF9tYWludGVuYW5jZV9tb2RlIHsKPiArICAgICAgICAg ICAgICAgICAgICAgICAgaWYgbGV0IEVycihlcnJvcikgPSBtbS5jaGVjayhvcGVyYXRpb24pIHsK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhaWwhKCJkYXRhc3RvcmUgJ3tuYW1lfScg aXMgdW5hdmFpbGFibGU6IHtlcnJvcn0iKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgfQo+ ICsgICAgICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29t ZShvcGVyYXRpb24pID0gb3BlcmF0aW9uIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgdXBk YXRlX2FjdGl2ZV9vcGVyYXRpb25zKG5hbWUsIG9wZXJhdGlvbiwgMSk/Owo+ICsgICAgICAgICAg ICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2soQXJjOjpuZXcoU2Vs ZiB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyOiBkcywKPiArICAgICAgICAgICAg ICAgICAgICAgICAgb3BlcmF0aW9uLAo+ICsgICAgICAgICAgICAgICAgICAgIH0pKTsKPiArICAg ICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArCj4gKyAgICAg ICAgLy8gU2xvdyBwYXRoOiAocmUpbG9hZCBjb25maWcKPiArICAgICAgICBsZXQgKGNvbmZpZywg X2RpZ2VzdCkgPSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmNvbmZpZygpPzsKPiAgICAgICAgICBs ZXQgY29uZmlnOiBEYXRhU3RvcmVDb25maWcgPSBjb25maWcubG9va3VwKCJkYXRhc3RvcmUiLCBu YW1lKT87Cj4gIAo+IC0gICAgICAgIGlmIGxldCBTb21lKG1haW50ZW5hbmNlX21vZGUpID0gY29u ZmlnLmdldF9tYWludGVuYW5jZV9tb2RlKCkgewo+IC0gICAgICAgICAgICBpZiBsZXQgRXJyKGVy cm9yKSA9IG1haW50ZW5hbmNlX21vZGUuY2hlY2sob3BlcmF0aW9uKSB7Cj4gKyAgICAgICAgbGV0 IG1haW50ZW5hbmNlX21vZGUgPSBjb25maWcuZ2V0X21haW50ZW5hbmNlX21vZGUoKTsKPiArICAg ICAgICBpZiBsZXQgU29tZShtbSkgPSAmbWFpbnRlbmFuY2VfbW9kZSB7Cj4gKyAgICAgICAgICAg IGlmIGxldCBFcnIoZXJyb3IpID0gbW0uY2hlY2sob3BlcmF0aW9uKSB7Cj4gICAgICAgICAgICAg ICAgICBiYWlsISgiZGF0YXN0b3JlICd7bmFtZX0nIGlzIHVuYXZhaWxhYmxlOiB7ZXJyb3J9Iik7 Cj4gICAgICAgICAgICAgIH0KPiAgICAgICAgICB9CgphZnRlciB0aGlzIGhlcmUgd2UgaGF2ZSBh IGNoZWNrIGZvciB0aGUgbW91bnQgc3RhdHVzIGluIHRoZSBvbGQgaG90CnBhdGgsIHRoYXQgaXMg bWlzc2luZyBpbiB0aGUgbmV3IGhvdCBwYXRoLiB0aGUgbW91bnQgc3RhdHVzIGNhbiBjaGFuZ2UK ZXZlbiBpZiB0aGUgY29uZmlnIGRvZXNuJ3QsIHNvIHdlIHNob3VsZCBwcm9iYWJseSBhZGQgdGhp cyBiYWNrIHRvIHRoZQpob3QgcGF0aCBhbmQgcmUtcnVuIHRoZSBudW1iZXJzPwoKdGhhdCBjaGVj ayBhZ2FpbiBuZWVkcyBtb3JlIHBhcnRzIG9mIHRoZSBjb25maWcsIHNvIG1heWJlIHdlIGNvdWxk CmV4cGxvcmUgY2FjaGluZyB0aGUgZnVsbCBjb25maWcgaGVyZT8gZS5nLiwgYWRkIGEgbmV3IHN0 YXRpYwpNdXRleDxPcHRpb248KERhdGFTdG9yZUNvbmZpZywgdXNpemUpPj4gKGV4dGVuZGVkIGJ5 IHRoZSB0aW1lc3RhbXAgaW4KdGhlIGxhc3QgcGF0Y2gpIGFuZCBhZGFwdCB0aGUgcGF0Y2hlcyBo ZXJlIHRvIHVzZSBpdD8gZGVwZW5kaW5nIG9uCndoZXRoZXIgd2UgbWFrZSB0aGUgY2FjaGVkIGNv bmZpZyBhdmFpbGFibGUgb3V0c2lkZSBvZiBsb29rdXBfZGF0YXN0b3JlLAp3ZSBjb3VsZCB0aGVu IGV2ZW4gbm90IGFkZCB0aGUgbWFpbnRlbmFuY2UgbW9kZSB0byB0aGUgY2FjaGUgdGFnLCBhbmQK anVzdCBzdG9yZSB0aGUgZ2VuZXJhdGlvbiBudW1iZXIgdGhlcmUsIGFuZCByZXRyaWV2ZSB0aGUg bWFpbnRlbmFuY2UKbW9kZSBmcm9tIHRoZSBjYWNoZWQgY29uZmlnIGluIHRoZSBEcm9wIGltcGxl bWVudGF0aW9uLi4KCnRoZXJlJ3MgYSBsaXR0bGUgbW9yZSBkdXBsaWNhdGlvbiBoZXJlLCBlLmcu IHdlIGxvY2sgdGhlIG1hcCBhbmQgY2hlY2sKZm9yIGFuIGVudHJ5IGluIGJvdGggdGhlIGZhc3Qg YW5kIHNsb3cgcGF0aHMsIHdlIGNvdWxkIGRvIGl0IG9uY2UgdXAKZnJvbnQgKG5vYm9keSBjYW4g Y2hhbmdlIHRoZSBtYXAgd2hpbGUgd2UgaGF2ZSBpdCBsb2NrZWQgYW55d2F5KSwgdGhlCmNoZWNr cyBhcmUgd3JpdHRlbiB0d2ljZSBhbmQgY291bGQgcHJvYmFibHkgYmUgZXh0cmFjdGVkIGludG8g YSBoZWxwZXIKc28gdGhhdCBmdXR1cmUgc2ltaWxhciBjaGVja3MgYXJlIGFkZGVkIHRvIGJvdGgg cGF0aHMgYW5kIG5vdCB0byBvbmx5Cm9uZSBieSBhY2NpZGVudCwgLi4KCj4gQEAgLTMyMSwxNiAr MzU3LDYgQEAgaW1wbCBEYXRhU3RvcmUgewo+ICAKPiAgICAgICAgICAvLyByZXVzZSBjaHVuayBz dG9yZSBzbyB0aGF0IHdlIGtlZXAgdXNpbmcgdGhlIHNhbWUgcHJvY2VzcyBsb2NrZXIgaW5zdGFu Y2UhCj4gICAgICAgICAgbGV0IGNodW5rX3N0b3JlID0gaWYgbGV0IFNvbWUoZGF0YXN0b3JlKSA9 ICZlbnRyeSB7Cj4gLSAgICAgICAgICAgIGxldCBsYXN0X2RpZ2VzdCA9IGRhdGFzdG9yZS5sYXN0 X2RpZ2VzdC5hc19yZWYoKTsKPiAtICAgICAgICAgICAgaWYgbGV0IFNvbWUodHJ1ZSkgPSBsYXN0 X2RpZ2VzdC5tYXAofGxhc3RfZGlnZXN0fCBsYXN0X2RpZ2VzdCA9PSAmZGlnZXN0KSB7Cj4gLSAg ICAgICAgICAgICAgICBpZiBsZXQgU29tZShvcGVyYXRpb24pID0gb3BlcmF0aW9uIHsKPiAtICAg ICAgICAgICAgICAgICAgICB1cGRhdGVfYWN0aXZlX29wZXJhdGlvbnMobmFtZSwgb3BlcmF0aW9u LCAxKT87Cj4gLSAgICAgICAgICAgICAgICB9Cj4gLSAgICAgICAgICAgICAgICByZXR1cm4gT2so QXJjOjpuZXcoU2VsZiB7Cj4gLSAgICAgICAgICAgICAgICAgICAgaW5uZXI6IEFyYzo6Y2xvbmUo ZGF0YXN0b3JlKSwKPiAtICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24sCj4gLSAgICAgICAg ICAgICAgICB9KSk7Cj4gLSAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgQXJjOjpjbG9uZSgm ZGF0YXN0b3JlLmNodW5rX3N0b3JlKQo+ICAgICAgICAgIH0gZWxzZSB7Cj4gICAgICAgICAgICAg IGxldCB0dW5pbmc6IERhdGFzdG9yZVR1bmluZyA9IHNlcmRlX2pzb246OmZyb21fdmFsdWUoCj4g QEAgLTM0NCw3ICszNzAsMTEgQEAgaW1wbCBEYXRhU3RvcmUgewo+ICAgICAgICAgICAgICApPykK PiAgICAgICAgICB9Owo+ICAKPiAtICAgICAgICBsZXQgZGF0YXN0b3JlID0gRGF0YVN0b3JlOjp3 aXRoX3N0b3JlX2FuZF9jb25maWcoY2h1bmtfc3RvcmUsIGNvbmZpZywgU29tZShkaWdlc3QpKT87 Cj4gKyAgICAgICAgbGV0IG11dCBkYXRhc3RvcmUgPSBEYXRhU3RvcmU6OndpdGhfc3RvcmVfYW5k X2NvbmZpZyhjaHVua19zdG9yZSwgY29uZmlnKT87Cj4gKyAgICAgICAgZGF0YXN0b3JlLmNhY2hl ZF9jb25maWdfdGFnID0gU29tZShDYWNoZWREYXRhc3RvcmVDb25maWdUYWcgewo+ICsgICAgICAg ICAgICBsYXN0X21haW50ZW5hbmNlX21vZGU6IG1haW50ZW5hbmNlX21vZGUsCj4gKyAgICAgICAg ICAgIGxhc3RfZ2VuZXJhdGlvbjogZ2VuX251bSwKPiArICAgICAgICB9KTsKCnRoaXMgcGFydCBz aG91bGQgYmUgaW4gd2l0aF9zdG9yZV9hbmRfY29uZmlnLCB3aGljaCBzaG91bGQgZ2V0IHRoZQps YXN0X2dlbmVyYXRpb24gKGFuZCBsYXRlciBsYXN0X3VwZGF0ZSkgYXMgcGFyYW1ldGVyKHMpLCBq dXN0IGxpa2UgaXQKaGFkIHRoZSBkaWdlc3QgYmVmb3JlIHRoaXMgcGF0Y2guLgoKPiAgCj4gICAg ICAgICAgbGV0IGRhdGFzdG9yZSA9IEFyYzo6bmV3KGRhdGFzdG9yZSk7Cj4gICAgICAgICAgZGF0 YXN0b3JlX2NhY2hlLmluc2VydChuYW1lLnRvX3N0cmluZygpLCBkYXRhc3RvcmUuY2xvbmUoKSk7 Cj4gQEAgLTQzMCwxMSArNDYwLDcgQEAgaW1wbCBEYXRhU3RvcmUgewo+ICAgICAgICAgICAgICBj b25maWcuYWJzb2x1dGVfcGF0aCgpLAo+ICAgICAgICAgICAgICB0dW5pbmcuc3luY19sZXZlbC51 bndyYXBfb3JfZGVmYXVsdCgpLAo+ICAgICAgICAgICk/Owo+IC0gICAgICAgIGxldCBpbm5lciA9 IEFyYzo6bmV3KFNlbGY6OndpdGhfc3RvcmVfYW5kX2NvbmZpZygKPiAtICAgICAgICAgICAgQXJj OjpuZXcoY2h1bmtfc3RvcmUpLAo+IC0gICAgICAgICAgICBjb25maWcsCj4gLSAgICAgICAgICAg IE5vbmUsCj4gLSAgICAgICAgKT8pOwo+ICsgICAgICAgIGxldCBpbm5lciA9IEFyYzo6bmV3KFNl bGY6OndpdGhfc3RvcmVfYW5kX2NvbmZpZyhBcmM6Om5ldyhjaHVua19zdG9yZSksIGNvbmZpZyk/ KTsKPiAgCj4gICAgICAgICAgaWYgbGV0IFNvbWUob3BlcmF0aW9uKSA9IG9wZXJhdGlvbiB7Cj4g ICAgICAgICAgICAgIHVwZGF0ZV9hY3RpdmVfb3BlcmF0aW9ucygmbmFtZSwgb3BlcmF0aW9uLCAx KT87Cj4gQEAgLTQ0Niw3ICs0NzIsNiBAQCBpbXBsIERhdGFTdG9yZSB7Cj4gICAgICBmbiB3aXRo X3N0b3JlX2FuZF9jb25maWcoCj4gICAgICAgICAgY2h1bmtfc3RvcmU6IEFyYzxDaHVua1N0b3Jl PiwKPiAgICAgICAgICBjb25maWc6IERhdGFTdG9yZUNvbmZpZywKPiAtICAgICAgICBsYXN0X2Rp Z2VzdDogT3B0aW9uPFt1ODsgMzJdPiwKPiAgICAgICkgLT4gUmVzdWx0PERhdGFTdG9yZUltcGws IEVycm9yPiB7Cj4gICAgICAgICAgbGV0IG11dCBnY19zdGF0dXNfcGF0aCA9IGNodW5rX3N0b3Jl LmJhc2VfcGF0aCgpOwo+ICAgICAgICAgIGdjX3N0YXR1c19wYXRoLnB1c2goIi5nYy1zdGF0dXMi KTsKPiBAQCAtNTA2LDEwICs1MzEsMTAgQEAgaW1wbCBEYXRhU3RvcmUgewo+ICAgICAgICAgICAg ICBsYXN0X2djX3N0YXR1czogTXV0ZXg6Om5ldyhnY19zdGF0dXMpLAo+ICAgICAgICAgICAgICB2 ZXJpZnlfbmV3OiBjb25maWcudmVyaWZ5X25ldy51bndyYXBfb3IoZmFsc2UpLAo+ICAgICAgICAg ICAgICBjaHVua19vcmRlcjogdHVuaW5nLmNodW5rX29yZGVyLnVud3JhcF9vcl9kZWZhdWx0KCks Cj4gLSAgICAgICAgICAgIGxhc3RfZGlnZXN0LAo+ICAgICAgICAgICAgICBzeW5jX2xldmVsOiB0 dW5pbmcuc3luY19sZXZlbC51bndyYXBfb3JfZGVmYXVsdCgpLAo+ICAgICAgICAgICAgICBiYWNr ZW5kX2NvbmZpZywKPiAgICAgICAgICAgICAgbHJ1X3N0b3JlX2NhY2hpbmcsCj4gKyAgICAgICAg ICAgIGNhY2hlZF9jb25maWdfdGFnOiBOb25lLAo+ICAgICAgICAgIH0pCj4gICAgICB9Cj4gIAo+ IC0tIAo+IDIuNDcuMwo+IAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gcGJzLWRldmVsIG1haWxpbmcgbGlzdAo+IHBicy1kZXZlbEBsaXN0 cy5wcm94bW94LmNvbQo+IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFu L2xpc3RpbmZvL3Bicy1kZXZlbAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnBy b3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3Rp bmZvL3Bicy1kZXZlbAo=