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 45A6D1FF15E for ; Mon, 24 Nov 2025 09:34:42 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6C26A1A558; Mon, 24 Nov 2025 09:34:52 +0100 (CET) Message-ID: <4ccbdde9-8e2e-4880-a245-4d15480f2d15@proxmox.com> Date: Mon, 24 Nov 2025 09:34:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= , Proxmox Backup Server development discussion , Thomas Lamprecht References: <20251122104118.205994-1-c.ebner@proxmox.com> <7393d75a-04be-4940-80c9-1f8e9781227a@proxmox.com> <1763971841.tk1259krov.astroid@yuna.none> <1763972888.fq1bwvzgnc.astroid@yuna.none> Content-Language: en-US, de-DE From: Christian Ebner In-Reply-To: <1763972888.fq1bwvzgnc.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1763973252688 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.047 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 Subject: Re: [pbs-devel] [PATCH proxmox-backup] GC: s3: fix local marker cleanup for unreferenced, s3 only chunks 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" T24gMTEvMjQvMjUgOToyOSBBTSwgRmFiaWFuIEdyw7xuYmljaGxlciB3cm90ZToKPiBPbiBOb3Zl bWJlciAyNCwgMjAyNSA5OjIyIGFtLCBDaHJpc3RpYW4gRWJuZXIgd3JvdGU6Cj4+IE9uIDExLzI0 LzI1IDk6MTMgQU0sIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4+PiBPbiBOb3ZlbWJlciAy NCwgMjAyNSA4OjM1IGFtLCBDaHJpc3RpYW4gRWJuZXIgd3JvdGU6Cj4+Pj4gVGhhbmtzIGZvciB0 YWtpbmcgYSBsb29rIGF0IHRoaXMgYWxyZWFkeSEKPj4+Pgo+Pj4+IE9uIDExLzIyLzI1IDM6NTUg UE0sIFRob21hcyBMYW1wcmVjaHQgd3JvdGU6Cj4+Pj4+IEFtIDIyLjExLjI1IHVtIDExOjQxIHNj aHJpZWIgQ2hyaXN0aWFuIEVibmVyOgo+Pj4+Pj4gSWYgYSBjaHVuayBvYmplY3QgaXMgbG9jYXRl ZCBvbiB0aGUgczMgb2JqZWN0IHN0b3JlIG9ubHksIG5vdCBiZWluZwo+Pj4+Pj4gcmVmZXJlbmNl ZCBieSBhbnkgaW5kZXggZmlsZSBhbmQgaGF2aW5nIG5vIGxvY2FsIG1hcmtlciBmaWxlIGl0IGlz Cj4+Pj4+PiBtYXJrZWQgZm9yIGNsZWFudXAgYnkgcHJldGVuZGluZyBhbiBhdGltZSBlcXVhbCB0 byB0aGUgdW5peCBlcG9jaC4KPj4+Pj4+Cj4+Pj4+PiBXaGlsZSB0aGlzIHdpbGwgbWFyayB0aGUg Y2h1bmsgZm9yIGRlbGV0aW9uIGZyb20gdGhlIGJhY2tlbmQgYW5kCj4+Pj4+PiBpbmNsdWRlIGl0 IGluIHRoZSBkZWxldGUgbGlzdCBmb3IgdGhlIG5leHQgczMgZGVsZXRlIG9iamVjdHMgY2FsbCwg aXQKPj4+Pj4+IGFsc28gd2lsbCBsZWFkIHRvIHRoZSBjaHVuayBtYXJrZXIgYW5kIExSVSBjYWNo ZSBlbnRyeSBiZWluZyB0cmllZCB0bwo+Pj4+Pj4gY2xlYW4gdXAgbG9jYWxseSwgd2hpY2ggaG93 ZXZlciBmYWlscyBzaW5jZSB0aGVyZSBpcyBubyBtYXJrZXIgdG8gYmUKPj4+Pj4+IGNsZWFuZWQg dXAuCj4+Pj4+Pgo+Pj4+Pj4gSW4gb3JkZXIgdG8gdHJlYXQgdGhpcyBlZGdlIGNhc2Ugd2l0aCB0 aGUgc2FtZSBjbGVhbnVwIGxvZ2ljLCBzaW1wbHkKPj4+Pj4+IGluc2VydCB0aGUgbWFya2VyIGZp bGUgaWYgbm90IHByZXNlbnQsIGZvciBpdCB0byBnZXQgY29ycmVjdGx5Cj4+Pj4+PiBjbGVhbmVk IHVwIGFzIGV4cGVjdGVkIGFmdGVyd2FyZHMuIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gdW5kZXIK Pj4+Pj4+IG5vcm1hbCBkYXRhc3RvcmUgb3BlcmF0aW9uIGFueXdheXMsIG1vc3QgbGlrZWx5IHRv IGFwcGVhciBhZnRlcgo+Pj4+Pj4gcmUtY3JlYXRpb24gb2YgdGhlIGRhdGFzdG9yZSBmcm9tIGV4 aXN0aW5nIGJ1Y2tldCBjb250ZW50cyBjb250YWluaW5nCj4+Pj4+PiBzdWNoIHVucmVmZXJlbmNl ZCBjaHVua3MuCj4+Pj4+Pgo+Pj4+Pj4gRml4ZXM6IGh0dHBzOi8vZm9ydW0ucHJveG1veC5jb20v dGhyZWFkcy8xNzY1NjcvCj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gRWJuZXIgPGMu ZWJuZXJAcHJveG1veC5jb20+Cj4+Pj4+PiAtLS0KPj4+Pj4+ICAgICBwYnMtZGF0YXN0b3JlL3Ny Yy9kYXRhc3RvcmUucnMgfCA5ICsrKysrLS0tLQo+Pj4+Pj4gICAgIDEgZmlsZSBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4+Pj4+Pgo+Pj4+Pj4gZGlmZiAtLWdpdCBh L3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycyBiL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFz dG9yZS5ycwo+Pj4+Pj4gaW5kZXggNjUyOTljY2E5Li5hMjQzOTJkOWYgMTAwNjQ0Cj4+Pj4+PiAt LS0gYS9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPj4+Pj4+ICsrKyBiL3Bicy1kYXRh c3RvcmUvc3JjL2RhdGFzdG9yZS5ycwo+Pj4+Pj4gQEAgLTE3MTEsMTEgKzE3MTEsMTIgQEAgaW1w bCBEYXRhU3RvcmUgewo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0aW1lID0g bWF0Y2ggc3RkOjpmczo6bWV0YWRhdGEoJmNodW5rX3BhdGgpIHsKPj4+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPayhzdGF0KSA9PiBzdGF0LmFjY2Vzc2VkKCk/LAo+Pj4+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVycihlcnIpIGlmIGVyci5raW5kKCkgPT0gc3RkOjpp bzo6RXJyb3JLaW5kOjpOb3RGb3VuZCA9PiB7Cj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7Cj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBjaHVuayBzdG9yZSBsb2NrIGhlbGQKPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGluc2VydCBtYXJrZSB1bmNvbmRpdGlvbmFsbHksIGNsZWFuZWQgdXAgYWdhaW4g YmVsb3cgaWYgcmVxdWlyZWQKPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuaW5uZXIuY2h1bmtfc3RvcmUucmVwbGFjZV9jaHVua193aXRoX21hcmtlcigmZGlnZXN0 KT87Cj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPj4+Pj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5pbm5lci5jaHVua19zdG9yZS5jbGVhcl9j aHVua19leHBlY3RlZF9tYXJrKCZkaWdlc3QpPyB7Cj4+Pj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNhZmUgewo+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGNodW5rIHN0b3JlIGxvY2sgaGVsZAo+Pj4+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5uZXIuY2h1bmtfc3RvcmUucmVwbGFjZV9jaHVu a193aXRoX21hcmtlcigmZGlnZXN0KT87Cj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0 ZW1UaW1lOjpub3coKQo+Pj4+Pgo+Pj4+PiBXaHkgbm90IGRyb3AgdGhhdCB3aG9sZSBicmFuY2gg aW5zdGVhZCwgaXQgZG9lcyBub3QgcmVhbGx5IG1ha2VzIHNlbnNlIElJVUMuCj4+Pj4KPj4+PiBO bywgdGhpcyBicmFuY2ggaXMgbmVlZGVkLiBUaGlzIGlzIHJlcXVpcmVkIGZvciBhdm9pZGluZyBB UEkgY2FsbHMgdG8KPj4+PiB0aGUgczMgYmFja2VuZCBpbiBjYXNlIHRoZSBjaHVuayBpcyByZWZl cmVuY2VkIGJ5IGFuIGluZGV4IGZpbGUgYXMKPj4+PiBkZXRlY3RlZCBkdXJpbmcgcGhhc2UgMSwg YnV0IHRoZSBsb2NhbCBtYXJrZXIgZmlsZSBpcyBub3QgcHJlc2VudC4gSW4KPj4+PiB0aGF0IGNh c2Ugd2UgZG8gbm90IHdhbnQgdG8gZGlyZWN0bHkgY2hlY2sgdGhlIGV4aXN0ZW5jZSBvbiB0aGUg YmFja2VuZAo+Pj4+ICh3aGljaCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0byBub3QgbWFyayBhIGNo dW5rIHdoaWNoIGlzIGhvd2V2ZXIgbm90Cj4+Pj4gcHJlc2VudCBvbiB0aGUgYmFja2VuZCksIGJ1 dCBkZWZlciB0aGF0IGNoZWNrIHRvIHBoYXNlIDIsIHdoZXJlIHdlIGRvCj4+Pj4gdGhlIGxpc3Rp bmcgb2YgYWxsIGNodW5rcyBhbnl3YXlzLiBUaGlzIGlzIGRvbmUgYnkgZmxhZ2dpbmcgdGhhdCBj aHVuawo+Pj4+IHZpYSB0aGUgPGRpZ2VzdD4udXNpbmcgZmlsZS4KPj4+Pgo+Pj4+IEhlcmUsIGlm IHRoZSBjaHVuayBpcyBlbmNvdW50ZXJlZCBkdXJpbmcgczMgb2JqZWN0IHN0b3JlIGxpc3Rpbmcs IGJ1dAo+Pj4+IHRoZSBsb2NhbCBmaWxlIGlzIG1pc3NpbmcsIHdlIGNoZWNrIGFuZCBjbGVhciB0 aGUgY2h1bmsgZXhwZWN0ZWQgbWFya2VyLAo+Pj4+IHdoaWNoIGlmIHByZXNlbnQgdGVsbHMgdXMg dGhlIGNodW5rIHN0aWxsIG5lZWRzIHRvIGJlIHVzZWQuIElmIG5vdCBpdCBpcwo+Pj4+IHNhZmUg dG8gY2xlYXIgaXQgZnJvbSB0aGUgYmFja2VuZC4KPj4+Pgo+Pj4+Pgo+Pj4+PiBBbmQgYHJlcGxh Y2VfY2h1bmtfd2l0aF9tYXJrZXJgIHJlcGxhY2VzIHRoZSBjaHVuayBmaWxlIGRpcmVjdGx5IChu byBleHRlbnNpb24pIHdoZXJlYXMKPj4+Pj4gYGNsZWFyX2NodW5rX2V4cGVjdGVkX21hcmtgIGNo ZWNrcyB0aGUgY2h1bmsudXNpbmcgZmlsZSwgc28gZG9lcyB5b3VyIHJlb3JkZXJpbmcgZXZlbgo+ Pj4+PiBjaGFuZ2UgYW55dGhpbmcsIG9yIGlzIHRoZXJlIGEgYnVnIGluIGByZXBsYWNlX2NodW5r X3dpdGhfbWFya2VyYD8KPj4+Pgo+Pj4+IGByZXBsYWNlX2NodW5rX3dpdGhfbWFya2VyYCByZXBs YWNlcyBhIGZ1bGwgY2h1bmsgZmlsZSB3aXRoIGFuIGVtcHR5Cj4+Pj4gbWFya2VyLCBidXQgYWxz byBjcmVhdGVzIHRoZSBlbXB0eSBtYXJrZXIgaWYgdGhlIG9yaWdpbmFsIGZpbGUgaXMgbm90Cj4+ Pj4gcHJlc2VudCwgc28gaW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UgaXQgaXMgYWN0dWFsbHkgdXNl ZCB0byBjcmVhdGUgdGhlCj4+Pj4gbWFya2VyLCBub3QgdG8gZXZpY3QgY2h1bmtzIGZyb20gbG9j YWwgZGF0YXN0b3JlIGNhY2hlIGFzIHVuZGVyIG5vcm1hbAo+Pj4+IG9wZXJhdGlvbi4gSSBjYW4g c2VuZCBhIHBhdGNoIHRvIHJlbmFtZSB0aGF0IG1ldGhvZCB0byBtYWtlIHRoYXQgY2xlYXIuCj4+ Pj4KPj4+Pj4KPj4+Pj4gQW5kIGluZGVwZW5kZW50IG9mIHRoYXQsIHdvdWxkIGl0IGJlIGJldHRl ciAobW9yZSBwZXJmb3JtYW50IGFuZCBsZXNzIGNvbmZ1c2luZykgaWYKPj4+Pj4gd2UgaWdub3Jl IHRoZSAibm90IHByZXNlbnQgaW4gTFJVIG9yIG5vIG1hcmtlciIgaW4gdGhhdCBlZGdlIGNhc2Ug cmF0aGVyIHRoYW4gY3JlYXRpbmcKPj4+Pj4gYSBmaWxlIChkb2luZyBtb3JlIElPKSBqdXN0IHRv IGRlbGV0ZSB0aGF0IHRoZW4gYWdhaW4/Cj4+Pj4KPj4+PiBJIGNhbiBkbyB0aGF0IGFzIHdlbGwg b2YgY291cnNlIGJ5IGNoZWNraW5nIGEgZmxhZyBpbiB0aGUgcmVtb3ZlCj4+Pj4gY2FsbGJhY2su IEkgb3B0ZWQgZm9yIG5vdCBkb2luZyB0aGF0IGhvd2V2ZXIgc2luY2UgYWJvdmUgaXMgYSB2ZXJ5 Cj4+Pj4gdW5saWtlbHkgY2FzZSB0byBoYXBwZW4sIGFzIHRoZSBzMyBiYWNrZW5kIGFuZCBsb2Nh bCBkYXRhc3RvcmUgY2FjaGUKPj4+PiBzaG91bGQgYmUgaW4gc3luYyBtb3N0IG9mIHRoZSB0aW1l Lgo+Pj4+IEFkZGluZyB0aGF0IGNoZWNrIHdvdWxkIGJlIHBlcmZvcm1lZCBmb3IgZWFjaCBjaHVu ayBiZWluZyByZW1vdmVkLCB0aGlzCj4+Pj4gb25seSBvbmNlIGlmIHRoZSBjaHVuayBpcyBzdGls bCBwcmVzZW50IG9uIHRoZSBiYWNrZW5kLCBidXQgbm90IG9uIHRoZQo+Pj4+IGxvY2FsIGRhdGFz dG9yZSBjYWNoZS4KPj4+Pgo+Pj4+IFRoZSBhZGRpdGlvbmFsIElPIGlzIHRoZXJlZm9yZSBqdXN0 ZmllZCBJTU8uCj4+Pj4KPj4+PiBJIGNvdWxkIG9mIGNvdXJzZSBhbHNvIGdvIHRoZSByb3V0ZSBv ZiBqdXN0IHNldHRpbmcgYSBib29sZWFuIGZsYWcgYW5kCj4+Pj4gY2hlY2tpbmcgdGhhdCBpbiB0 aGUgY2FsbGJhY2s/Cj4+Pgo+Pj4gd2UgYmFzaWNhbGx5IGFscmVhZHkgaGF2ZSBzdWNoIGEgYm9v bGVhbiBtYXJrZXIgLSB3ZSBzZXQgYGF0aW1lYCB0byAwIGluCj4+PiB0aGlzIGNhc2UgKGFuZCBv bmx5IHRoaXMgY2FzZSksIGFuZCB3ZSBjb3VsZCBqdXN0IGlnbm9yZSB0aGUgcmVtb3ZhbAo+Pj4g ZXJyb3JzIHRoZW4/IHBvc3NpYmx5IGxpbWl0ZWQgdG8ganVzdCBpZ25vcmluZyBFTk9URk9VTkQ/ Cj4+Cj4+IFRoYXQncyBhIGdvb2QgaWRlYSEgU28gSSB3aWxsIHBlcmZvcm0gdGhlIGFkZGl0aW9u YWwgY2hlY2tzIGJhc2VkIG9uIHRoYXQuCj4gCj4gYWx0ZXJuYXRpdmVseSwgc2tpcHBpbmcgY29u ZF9zd2VlcF9jaHVuayBlbnRpcmVseSB3b3VsZCBhbHNvIHdvcmsgKHRoaXMKPiBpcyB3aXRoIGAt d2ApOgo+IAo+IGRpZmYgLS1naXQgYS9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMgYi9w YnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPiBpbmRleCA2NTI5OWNjYTkuLmI5ZGViZDJi MSAxMDA2NDQKPiAtLS0gYS9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPiArKysgYi9w YnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPiBAQCAtMTcwOSwyMSArMTcwOSwyMiBAQCBp bXBsIERhdGFTdG9yZSB7Cj4gICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGxvY2FsIG1h cmtlcnMgKGNyZWF0ZWQgb3IgYXRpbWUgdXBkYXRlZCBkdXJpbmcgcGhhc2UxKSBhbmQKPiAgICAg ICAgICAgICAgICAgICAgICAgLy8ga2VlcCBvciBkZWxldGUgY2h1bmsgYmFzZWQgb24gdGhhdC4K PiAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0aW1lID0gbWF0Y2ggc3RkOjpmczo6bWV0YWRh dGEoJmNodW5rX3BhdGgpIHsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgT2soc3RhdCkgPT4g c3RhdC5hY2Nlc3NlZCgpPywKPiArICAgICAgICAgICAgICAgICAgICAgICAgT2soc3RhdCkgPT4g U29tZShzdGF0LmFjY2Vzc2VkKCk/KSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycihl cnIpIGlmIGVyci5raW5kKCkgPT0gc3RkOjppbzo6RXJyb3JLaW5kOjpOb3RGb3VuZCA9PiB7Cj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5pbm5lci5jaHVua19zdG9yZS5j bGVhcl9jaHVua19leHBlY3RlZF9tYXJrKCZkaWdlc3QpPyB7Cj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2FmZSB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBjaHVuayBzdG9yZSBsb2NrIGhlbGQKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuaW5uZXIuY2h1bmtfc3RvcmUucmVwbGFjZV9jaHVua193aXRo X21hcmtlcigmZGlnZXN0KT87Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lOjpub3coKQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoU3lzdGVtVGltZTo6bm93KCkpCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBGaWxlIG5vdCBmb3VuZCwgZGVsZXRlIGJ5IHNldHRpbmcgYXRp bWUgdG8gdW5peCBlcG9jaAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3Rl bVRpbWU6OlVOSVhfRVBPQ0gKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBG aWxlIG5vdCBmb3VuZCwgb25seSBkZWxldGUgZnJvbSBTMwo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5vbmUKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICBFcnIo ZXJyKSA9PiByZXR1cm4gRXJyKGVyci5pbnRvKCkpLAo+ICAgICAgICAgICAgICAgICAgICAgICB9 Owo+ICsgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKGF0aW1lKSA9IGF0aW1lIHsKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhdGltZSA9IGF0aW1lLmR1cmF0aW9uX3NpbmNl KFN5c3RlbVRpbWU6OlVOSVhfRVBPQ0gpPy5hc19zZWNzKCkgYXMgaTY0Owo+ICAgCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewo+IEBAIC0xNzUyLDYgKzE3NTMsMTMgQEAgaW1w bCBEYXRhU3RvcmUgewo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/Owo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQo+ICsgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHNldCBhZ2UgYmFzZWQgb24gZmlyc3QgaW5zZXJ0aW9uCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGRlbGV0ZV9saXN0LmlzX2VtcHR5KCkgewo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGVsZXRlX2xpc3RfYWdlID0gZXBvY2hfaTY0KCk7Cj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlX2xpc3Qu cHVzaCgoY29udGVudC5rZXksIF9jaHVua19ndWFyZCkpOwo+ICsgICAgICAgICAgICAgICAgICAg IH0KPiAgIAo+ICAgICAgICAgICAgICAgICAgICAgICBjaHVua19jb3VudCArPSAxOwo+ICAgCj4g Ck5pY2UsIGV2ZW4gYmV0dGVyISBCeSB0aGlzIHdlIGNhbiBhbHNvIGdldCByaWQgb2YgdGhlIGhh Y2t5IHNldHRpbmcgCmF0aW1lIHRvIHVuaXggZXBvY2guIENhbiBJIHNlbmQgdGhpcyB3aXRoOgoK T3JpZ2luYWxseS1ieSBGYWJpYW4gR3LDvG5iaWNobGVyIDxmLmdydWVuYmljaGxlckBwcm94bW94 LmNvbT4/CgpUb2dldGhlciB3aXRoIHNvbWUgZm9sbG93dXBzIHRvIGRvY3N0cmluZyBhbmQgbWV0 aG9kIHJlbmFtaW5nPwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29t Cmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1k ZXZlbAo=