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 EE8581FF16E for ; Mon, 3 Mar 2025 16:51:30 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1DA65F2F9; Mon, 3 Mar 2025 16:51:27 +0100 (CET) Date: Mon, 03 Mar 2025 16:50:49 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Christian Ebner , Proxmox Backup Server development discussion References: <20250219164847.757184-1-c.ebner@proxmox.com> <20250219164847.757184-5-c.ebner@proxmox.com> <1741007036.5kgeh44pj2.astroid@yuna.none> <55eb0814-8237-43d5-bd3e-b1d771bbfab9@proxmox.com> In-Reply-To: <55eb0814-8237-43d5-bd3e-b1d771bbfab9@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1741016392.vckcqyi01l.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.043 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 4/9] fix #5982: garbage collection: check atime updates are honored 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" T24gTWFyY2ggMywgMjAyNSA0OjIzIHBtLCBDaHJpc3RpYW4gRWJuZXIgd3JvdGU6Cj4gT24gMy8z LzI1IDE0OjUxLCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+PiBPbiBGZWJydWFyeSAxOSwg MjAyNSA1OjQ4IHBtLCBDaHJpc3RpYW4gRWJuZXIgd3JvdGU6Cj4+PiBDaGVjayBpZiB0aGUgZmls ZXN5c3RlbSBiYWNraW5nIHRoZSBjaHVuayBzdG9yZSBhY3R1YWxseSB1cGRhdGVzIHRoZQo+Pj4g YXRpbWUgdG8gYXZvaWQgcG90ZW50aWFsIGRhdGEgbG9zcyBpbiBwaGFzZSAyIG9mIGdhcmJhZ2Ug Y29sbGVjdGlvbgo+Pj4gaW4gY2FzZSB0aGUgYXRpbWUgdXBkYXRlIGlzIG5vdCBob25vcmVkLgo+ Pj4KPj4+IFBlcmZvcm0gdGhlIGNoZWNrIGJlZm9yZSBwaGFzZSAxIG9mIGdhcmJhZ2UgY29sbGVj dGlvbiwgYXMgd2VsbCBhcwo+Pj4gb24gZGF0YXN0b3JlIGNyZWF0aW9uLiBUaGUgbGF0dGVyIHRv IGVhcmx5IGRldGVjdCBhbmQgZGlzYWxsb3cKPj4+IGRhdGFzdG9yZSBjcmVhdGlvbiBvbiBmaWxl c3lzdGVtIGNvbmZpZ3VyYXRpb25zIHdoaWNoIG90aGVyd2lzZSBtb3N0Cj4+PiBsaWtlbHkgd291 bGQgbGVhZCB0byBkYXRhIGxvc3Nlcy4KPj4+Cj4+PiBFbmFibGUgdGhlIGF0aW1lIHVwZGF0ZSBj aGVjayBieSBkZWZhdWx0LCBidXQgYWxsb3cgdG8gb3B0LW91dCBieQo+Pj4gc2V0dGluZyBhIGRh dGFzdG9yZSB0dW5pbmcgcGFyYW1ldGVyIGZsYWcgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 Lgo+Pj4gVGhpcyBpcyBob25vcmVkIGJ5IGJvdGgsIGdhcmJhZ2UgY29sbGVjdGlvbiBhbmQgZGF0 YXN0b3JlIGNyZWF0aW9uLgo+Pj4KPj4+IFRoZSBjaGVjayB1c2VzIGEgNCBNaUIgZml4ZWQgc2l6 ZWQsIHVuZW5jeXB0ZWQgYW5kIGNvbXByZXNzZWQgY2h1bmsKPj4+IGFzIHRlc3QgbWFya2VyLCBp bnNlcnRlZCBpZiBub3QgcHJlc2VudC4gVGhpcyBhbGwgemVyby1jaHVuayBpcyB2ZXJ5Cj4+PiBs aWtlbHkgYW55d2F5cyBmb3IgdW5lbmNyeXB0ZWQgYmFja3VwIGNvbnRlbnRzIHdpdGggbGFyZ2Ug YWxsLXplcm8KPj4+IHJlZ2lvbnMgdXNpbmcgZml4ZWQgc2l6ZSBjaHVua2luZyAoZS5nLiBWTXMp Lgo+Pj4KPj4+IFRoZSBjaGVjayBzZXRzIHRoZSBjaHVuaydzIGF0aW1lIHR3aWNlLCBvbmNlIHRv IHNldCBpdCB0byAxIHNlY29uZAo+Pj4gaW50byB0aGUgcGFzdCwgYW5kIG9uY2UgdG8gc2V0IGl0 IHRvIG5vdy4gQnkgdGhpcyBvbmUgY2FuIGRldGVjdCBpZgo+Pj4gdGhlIGF0aW1lIGlzIHNldCBh dCBhbGwgYW5kIGlmIGl0IGFsc28gc2V0IGlmIHRoZSBmaWxlc3lzdGVtIGlzIGUuZy4KPj4+IG1v dW50ZWQgdmlhIHJlbGF0aW1lLCB3aGljaCBpcyBpbnRlbmRlZCB0byBkZWZlcnIgdGhlIGF0aW1l IHVwZGF0ZS4KPj4gCj4+IHRoYXQncyBub3QgaG93IHJlbGF0aW1lIHdvcmtzPyBzZWUgYmVsb3cu Lgo+PiAKPj4+Cj4+PiBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5wcm94bW94LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9NTk4Mgo+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEVibmVyIDxjLmVibmVy QHByb3htb3guY29tPgo+Pj4gLS0tCj4+PiBjaGFuZ2VzIHNpbmNlIHZlcnNpb24gMToKPj4+IC0g VXNlIGFsbC16ZXJvIGZpeGVkIHNpemUgY2h1bmsgZm9yIGF0aW1lIHVwZGF0ZSB0ZXN0Cj4+PiAt IFRlc3Qgb24gZGF0YXN0b3JlIGNyZWF0aW9uIGFuZCBiZWZvcmUgZ2FyYmFnZSBjb2xsZWN0aW9u IHBoYXNlIDEKPj4+IC0gZmFpbCBkYXRhc3RvcmUgY3JlYXRpb24gYW5kIGdhcmJhZ2UgY29sbGVj dGlvbiBqb2JzIGlmIGNoZWNrIGZhaWxzLAo+Pj4gICAgYnV0IGtlZXAgb3B0LW91dAo+Pj4KPj4+ ICAgcGJzLWRhdGFzdG9yZS9zcmMvY2h1bmtfc3RvcmUucnMgfCA4MCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLQo+Pj4gICBwYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMgICB8 IDEwICsrKysKPj4+ICAgc3JjL2FwaTIvY29uZmlnL2RhdGFzdG9yZS5ycyAgICAgfCAgMSArCj4+ PiAgIDMgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4+ Cj4+PiBkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvY2h1bmtfc3RvcmUucnMgYi9wYnMt ZGF0YXN0b3JlL3NyYy9jaHVua19zdG9yZS5ycwo+Pj4gaW5kZXggN2JkY2IwMjk3Li5iZTU3ZTNj ODcgMTAwNjQ0Cj4+PiAtLS0gYS9wYnMtZGF0YXN0b3JlL3NyYy9jaHVua19zdG9yZS5ycwo+Pj4g KysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvY2h1bmtfc3RvcmUucnMKPj4+IEBAIC0xLDYgKzEsNyBA QAo+Pj4gICB1c2Ugc3RkOjpvczo6dW5peDo6aW86OkFzUmF3RmQ7Cj4+PiAgIHVzZSBzdGQ6OnBh dGg6OntQYXRoLCBQYXRoQnVmfTsKPj4+ICAgdXNlIHN0ZDo6c3luYzo6e0FyYywgTXV0ZXh9Owo+ Pj4gK3VzZSBzdGQ6OnRpbWU6OntEdXJhdGlvbiwgU3lzdGVtVGltZSwgVU5JWF9FUE9DSH07Cj4+ PiAgIAo+Pj4gICB1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9Owo+Pj4gICB1 c2UgdHJhY2luZzo6aW5mbzsKPj4+IEBAIC0xMyw2ICsxNCw3IEBAIHVzZSBwcm94bW94X3N5czo6 cHJvY2Vzc19sb2NrZXI6OnsKPj4+ICAgfTsKPj4+ICAgdXNlIHByb3htb3hfd29ya2VyX3Rhc2s6 OldvcmtlclRhc2tDb250ZXh0Owo+Pj4gICAKPj4+ICt1c2UgY3JhdGU6OmRhdGFfYmxvYjo6RGF0 YUNodW5rQnVpbGRlcjsKPj4+ICAgdXNlIGNyYXRlOjpmaWxlX2Zvcm1hdHM6OnsKPj4+ICAgICAg IENPTVBSRVNTRURfQkxPQl9NQUdJQ18xXzAsIEVOQ1JZUFRFRF9CTE9CX01BR0lDXzFfMCwgVU5D T01QUkVTU0VEX0JMT0JfTUFHSUNfMV8wLAo+Pj4gICB9Owo+Pj4gQEAgLTk2LDYgKzk4LDcgQEAg aW1wbCBDaHVua1N0b3JlIHsKPj4+ICAgICAgICAgICB1aWQ6IG5peDo6dW5pc3RkOjpVaWQsCj4+ PiAgICAgICAgICAgZ2lkOiBuaXg6OnVuaXN0ZDo6R2lkLAo+Pj4gICAgICAgICAgIHN5bmNfbGV2 ZWw6IERhdGFzdG9yZUZTeW5jTGV2ZWwsCj4+PiArICAgICAgICBhdGltZV91cGRhdGVfY2hlY2s6 IGJvb2wsCj4+PiAgICAgICApIC0+IFJlc3VsdDxTZWxmLCBFcnJvcj4KPj4+ICAgICAgIHdoZXJl Cj4+PiAgICAgICAgICAgUDogSW50bzxQYXRoQnVmPiwKPj4+IEBAIC0xNTAsNyArMTUzLDE2IEBA IGltcGwgQ2h1bmtTdG9yZSB7Cj4+PiAgICAgICAgICAgICAgIH0KPj4+ICAgICAgICAgICB9Cj4+ PiAgIAo+Pj4gLSAgICAgICAgU2VsZjo6b3BlbihuYW1lLCBiYXNlLCBzeW5jX2xldmVsKQo+Pj4g KyAgICAgICAgbGV0IGNodW5rX3N0b3JlID0gU2VsZjo6b3BlbihuYW1lLCBiYXNlLCBzeW5jX2xl dmVsKT87Cj4+PiArICAgICAgICBpZiBhdGltZV91cGRhdGVfY2hlY2sgewo+Pj4gKyAgICAgICAg ICAgIGNodW5rX3N0b3JlCj4+PiArICAgICAgICAgICAgICAgIC5jaGVja19mc19hdGltZV91cGRh dGUoKQo+Pj4gKyAgICAgICAgICAgICAgICAubWFwKHwoKXwgaW5mbyEoImF0aW1lIHVwZGF0ZSBj aGVjayBzdWNjZXNzZnVsLiIpKT87Cj4+PiArICAgICAgICB9IGVsc2Ugewo+Pj4gKyAgICAgICAg ICAgIGluZm8hKCJhdGltZSB1cGRhdGUgY2hlY2sgc2tpcHBlZC4iKTsKPj4+ICsgICAgICAgIH0K Pj4+ICsKPj4+ICsgICAgICAgIE9rKGNodW5rX3N0b3JlKQo+Pj4gICAgICAgfQo+Pj4gICAKPj4+ ICAgICAgIGZuIGxvY2tmaWxlX3BhdGg8UDogSW50bzxQYXRoQnVmPj4oYmFzZTogUCkgLT4gUGF0 aEJ1ZiB7Cj4+PiBAQCAtNDQ1LDYgKzQ1Nyw1MSBAQCBpbXBsIENodW5rU3RvcmUgewo+Pj4gICAg ICAgICAgIE9rKCgpKQo+Pj4gICAgICAgfQo+Pj4gICAKPj4+ICsgICAgLy8vIENoZWNrIGlmIGF0 aW1lIHVwZGF0ZXMgYXJlIGhvbm9yZWQgYnkgdGhlIGZpbGVzeXN0ZW0gYmFja2luZyB0aGUgY2h1 bmsgc3RvcmUuCj4+PiArICAgIC8vLwo+Pj4gKyAgICAvLy8gU2V0cyB0aGUgYXRpbWUgdHdpY2Us IG9uY2UgaW50byB0aGUgcGFzdCBieSBvbmUgc2Vjb25kLCBjaGVja2luZyB0aGF0IHRoaXMgd2Fz IGhvbm9yZWQgYW5kCj4+PiArICAgIC8vLyB0aGVuIHRvIG5vdyBhZ2FpbiwgYXMgb3RoZXJ3aXNl IGl0IGlzIG5vdCBndWFyYW50ZWVkIHRvIGFsc28gY292ZXIgdGltZSByYW5nZXMgYnkgYHJlbGF0 aW1lYC4KPj4+ICsgICAgLy8vIFVzZXMgYSA0IE1pQiBmaXhlZCBzaXplLCBjb21wcmVzc2VkIGJ1 dCB1bmVuY3J5cHRlZCBjaHVuayB0byB0ZXN0LiBUaGUgY2h1bmsgaXMgaW5zZXJ0ZWQgaW4KPj4+ ICsgICAgLy8vIHRoZSBjaHVuayBzdG9yZSBpZiBub3QgeWV0IHByZXNlbnQuCj4+PiArICAgIHB1 YiBmbiBjaGVja19mc19hdGltZV91cGRhdGUoJnNlbGYpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsK Pj4+ICsgICAgICAgIGxldCAoemVyb19jaHVuaywgZGlnZXN0KSA9IERhdGFDaHVua0J1aWxkZXI6 OmJ1aWxkX3plcm9fY2h1bmsoTm9uZSwgNDA5NiAqIDEwMjQsIHRydWUpPzsKPj4+ICsgICAgICAg IHNlbGYuaW5zZXJ0X2NodW5rKCZ6ZXJvX2NodW5rLCAmZGlnZXN0KT87Cj4+PiArCj4+PiArICAg ICAgICBsZXQgcGFzdCA9IFN5c3RlbVRpbWU6Om5vdygpLmR1cmF0aW9uX3NpbmNlKFVOSVhfRVBP Q0gpPyAtIER1cmF0aW9uOjpmcm9tX3NlY3MoMSk7Cj4+PiArICAgICAgICBsZXQgdGltZXM6IFts aWJjOjp0aW1lc3BlYzsgMl0gPSBbCj4+PiArICAgICAgICAgICAgbGliYzo6dGltZXNwZWMgewo+ Pj4gKyAgICAgICAgICAgICAgICB0dl9zZWM6IHBhc3QuYXNfc2VjcygpLnRyeV9pbnRvKCk/LAo+ Pj4gKyAgICAgICAgICAgICAgICB0dl9uc2VjOiBwYXN0LnN1YnNlY19uYW5vcygpLmludG8oKSwK Pj4+ICsgICAgICAgICAgICB9LAo+Pj4gKyAgICAgICAgICAgIGxpYmM6OnRpbWVzcGVjIHsKPj4+ ICsgICAgICAgICAgICAgICAgdHZfc2VjOiAwLAo+Pj4gKyAgICAgICAgICAgICAgICB0dl9uc2Vj OiBVVElNRV9PTUlULAo+Pj4gKyAgICAgICAgICAgIH0sCj4+PiArICAgICAgICBdOwo+PiAKPj4g dGhpcyBzZXRzICphdGltZSogb25lIHNlY29uZCBpbiB0aGUgcGFzdCwgd2hpbGUgbm90IHRvdWNo aW5nICptdGltZSouCj4+IHRoaXMgaXMgbm90IHNvbWV0aGluZyB3ZSBldmVyIG5lZWQ/IGlmIHRo aXMgZmFpbHMsIHNvbWV0aGluZyBpcyB3ZWlyZCwKPj4gYnV0IGl0IHdvdWxkbid0IG1lYW4gdGhh dCBhdGltZSBoYW5kbGluZyB3YXMgYnJva2VuIGZvciBvdXIgdXNlIGNhc2UuLgo+PiAKPj4+ICsK Pj4+ICsgICAgICAgIHVzZSBuaXg6Ok5peFBhdGg7Cj4+PiArICAgICAgICBsZXQgKHBhdGgsIF9k aWdlc3QpID0gc2VsZi5jaHVua19wYXRoKCZkaWdlc3QpOwo+Pj4gKyAgICAgICAgcGF0aC53aXRo X25peF9wYXRoKHxjc3RyfCB1bnNhZmUgewo+Pj4gKyAgICAgICAgICAgIGxldCB0bXAgPSBsaWJj Ojp1dGltZW5zYXQoLTEsIGNzdHIuYXNfcHRyKCksICZ0aW1lc1swXSwgbGliYzo6QVRfU1lNTElO S19OT0ZPTExPVyk7Cj4+PiArICAgICAgICAgICAgbml4OjplcnJubzo6RXJybm86OnJlc3VsdCh0 bXApCj4+PiArICAgICAgICB9KT8/Owo+Pj4gKwo+Pj4gKyAgICAgICAgbGV0IG1ldGFkYXRhX3Bh c3QgPSBzdGQ6OmZzOjptZXRhZGF0YSgmcGF0aCkubWFwX2VycihFcnJvcjo6ZnJvbSk/Owo+Pj4g KyAgICAgICAgbGV0IGF0aW1lX3Bhc3QgPSBtZXRhZGF0YV9wYXN0LmFjY2Vzc2VkKCk/Owo+Pj4g KyAgICAgICAgaWYgcGFzdCAhPSBhdGltZV9wYXN0LmR1cmF0aW9uX3NpbmNlKFVOSVhfRVBPQ0gp PyB7Cj4+PiArICAgICAgICAgICAgYmFpbCEoInNldHRpbmcgYXRpbWUgdG8gdGhlIHBhc3QgZmFp bGVkLCBpcyBhdGltZSBzdXBwb3J0IGVuYWJsZWQgb24gZGF0YXN0b3JlIGJhY2tpbmcgZmlsZXN5 c3RlbT8iKTsKPj4+ICsgICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAgIHNlbGYuY29uZF90b3Vj aF9jaHVuaygmZGlnZXN0LCB0cnVlKT87Cj4+PiArCj4+PiArICAgICAgICBsZXQgbWV0YWRhdGFf bm93ID0gc3RkOjpmczo6bWV0YWRhdGEoJnBhdGgpLm1hcF9lcnIoRXJyb3I6OmZyb20pPzsKPj4+ ICsgICAgICAgIGxldCBhdGltZV9ub3cgPSBtZXRhZGF0YV9ub3cuYWNjZXNzZWQoKT87Cj4+PiAr ICAgICAgICBpZiBhdGltZV9wYXN0ID49IGF0aW1lX25vdyB7Cj4+PiArICAgICAgICAgICAgYmFp bCEoImF0aW1lIHVwZGF0ZSBjaGVjayBmYWlsZWQsIGlzIGF0aW1lIHN1cHBvcnQgZW5hYmxlZCBv biBkYXRhc3RvcmUgYmFja2luZyBmaWxlc3lzdGVtPyIpOwo+Pj4gKyAgICAgICAgfQo+PiAKPj4g aWYgc29tZXRoaW5nIGltcGxlbWVudHMgZXhwbGljaXQgdGltZXN0YW1wIHVwZGF0ZXMgdG8gd29y ayBsaWtlIHJlbGF0aW1lCj4+IGRvZXMgZm9yIHJlYWQtdHJpZ2dlcmVkIHVwZGF0ZXMsIHRoaXMg d291bGQgc3RpbGwgcG90ZW50aWFsbHkgZmFpbCAtCj4+IHJlbGF0aW1lIGNvdmVycyBjaGVja2lu ZyAqbXRpbWUqICh3aGljaCB3ZSBoYXZlbid0IHVwZGF0ZWQgYWJvdmUhKSBmaXJzdAo+PiB0byBz ZWUgaWYgKmF0aW1lKiBzaG91bGQgYmUgdXBkYXRlZCB3aGVuIGRvaW5nIHJlYWRzLiBpdCdzIGJh c2ljYWxseSBhCj4+IHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiAoc2tpcCBtb3N0IGF0aW1lIHVw ZGF0ZXMgZm9yIHJlYWQtaGVhdnkgd29yawo+PiBsb2Fkcykgd2l0aG91dCBicmVha2luZyBhIHZl cnkgc3BlY2lmaWMgdXNlIGNhc2UgKHRoYXQgb2YgbXV0dCBhYnVzaW5nCj4+IGF0aW1lIHRvIGtu b3cgd2hlbiBpdCBsYXN0IHJlYWQgYSBsb2NhbCBtYWlsYm94WzBdLCB3aGljaCB3b3VsZCBicmVh ayBpZgo+PiBhdGltZSB3ZXJlIG5ldmVyIHVwZGF0ZWQgb24gcmVhZHMpLgo+IAo+IFRoYW5rcyBh IGxvdCBmb3IgdGhlIHBvaW50ZXIhIE5lZWQgdG8gZGlnIGEgYml0IGRlZXBlciBpbnRvIGhvdyBy ZWxhdGltZSAKPiB3b3JrcywgYXMgbXkgdW5kZXJzdGFuZGluZyBvZiBpdCBpcyBjbGVhcmx5IGZs YXdlZC4KPiAKPj4gSSB0aGluayB3aGF0IHdlIGFjdHVhbGx5IHdhbnQgdG8gZG8gYXQgR0MgdGlt ZSBpczoKPj4gCj4+IChwb3RlbnRpYWxseSkgaW5zZXJ0IHRoZSBjaHVuawo+PiBzdGF0IHRoZSBj aHVuawo+PiB0b3VjaCB0aGUgY2h1bmsgKHJlZ3VsYXJseSkKPj4gc3RhdCB0aGUgY2h1bmsgYWdh aW4KPj4gY29tcGFyZSB0aGUgdGltZXN0YW1wcwo+IAo+IFRoYXQgd2FzIG15IGluaXRpYWwgYXBw cm9hY2gsIHdoaWNoIGZhaWxlZCBiZWNhdXNlIG9mIHRoZSB0aW1lc3RhbXAgCj4gZ3JhbnVsYXJp dHkgYW5kIHNpbmNlIEkgZGlkbid0IHdhbnQgdG8gd2FpdCBpbi1iZXR3ZWVuIHRoZSBzdGF0IGFu ZCAKPiB0b3VjaCB0aGUgYXBwcm9hY2ggd2l0aCBzZXR0aW5nIHRoZSBhdGltZSBpbnRvIHRoZSBw YXN0IGZpcnN0IGNhbWUgdG8gCj4gbWluZCwgdGhlcmVmb3JlIG15IGltcGxlbWVudGF0aW9uLiBC dXQgSSBzZWUgdGhhdCB0aGlzIGRvZXMgbm90IHdvcmsgCj4gYmFzZWQgb24geW91ciBmZWVkYmFj ay4KCmRpZCB5b3UgYWN0dWFsbHkgaGl0IHRoZSBncmFudWxhcml0eSBpc3N1ZSBpbiBwcmFjdGlj ZT8gd2l0aCB3aGljaApzdG9yYWdlL2ZpbGUgc3lzdGVtPwoKYmVjYXVzZSBldmVuIHdpdGggcmVs YXRpbWUgb3Igbm9hdGltZSBvbiBleHQ0IGEgc2VxdWVuY2Ugb2YKCnN0YXQgZm9vYmFyOyB0b3Vj aCAtYSBmb29iYXI7IHN0YXQgZm9vYmFyOyB0b3VjaCAtYSBmb29iYXI7IHN0YXQgZm9vYmFyCgp3 aWxsIGdpdmUgbWUgZGlmZmVyZW50IGF0aW1lcyBmb3IgZWFjaCBzdGF0LiB0aGUgc2FtZSBpcyB0 cnVlIGZvciBaRlMgbm8KbWF0dGVyIHdoaWNoIGF0aW1lIHNldHRpbmdzIEkgZ2l2ZSB0aGUgZGF0 YXNldC4KCj4+IHdlIG5vdyBoYXZlIHRocmVlIGNhc2VzOgo+PiAKPj4gQSkgdGhlIG9sZCBhdGlt ZSBpcyBiZWZvcmUgdGhlIG5ldyBhdGltZSA9PiB0aGUgc3RvcmFnZSBkb2Vzbid0IGRpc2NhcmQK Pj4gKmFsbCogYXRpbWUgdXBkYXRlcyBhbmQgd2UgY2FuIHByb2NlZWQKPj4gQikgdGhlIG9sZCBh dGltZSBhbmQgdGhlIG5ldyBhdGltZSBhcmUgaWRlbnRpY2FsIGFuZCBhdGltZSBpcyAqYmVmb3Jl Kgo+PiBtdGltZSBhbmQgY3RpbWUgPT4gYXRpbWUgc2hvdWxkIGhhdmUgYmVlbiB1cGRhdGVkIGV2 ZW4gdW5kZXIKPj4gInJlbGF0aW1lLWxpa2UiIHNlbWFudGljcywgdmVyeSBsaWtlbHkgdGhpcyBz dG9yYWdlIGlzIGRpc2NhcmRpbmcgYWxsCj4+IGF0aW1lIHVwZGF0ZXMsIHdlIHNob3VsZCBhYm9y dCB3aXRoIGFuIGVycm9yCj4+IEMpIHRoZSBvbGQgYXRpbWUgYW5kIHRoZSBuZXcgYXRpbWUgYXJl IGlkZW50aWNhbCwgYnV0IGF0aW1lIGlzICphZnRlcioKPj4gY3RpbWUvbXRpbWUgPT4gd2UgbmVl ZCB0byBjaGVjayB3aGV0aGVyIHdlIGp1c3QgcmFuIGludG8gcmVsYXRpbWUtbGlrZQo+PiBiZWhh dmlvdXIKPj4gCj4+IEMgbWVhbnMgd2UgZWl0aGVyIGFib3J0IGFzIHdlbGwgKGlmIHdlIGRvbid0 IHdhbnQgdG8gc3VwcG9ydCBzdWNoCj4+IHNldHVwcyksIG9yIHdlIHRyeSB0byBkZXRlY3QgaWYg c2V0dGluZyBib3RoIG10aW1lIGFuZCBhdGltZSB3b3JrcywgYW5kCj4+IGZvcmNlIHRoZSBHQyBp bnRvIGRvaW5nIHRoYXQKPj4gCj4+IHdlIG1pZ2h0IHdhbnQgdG8gYWRkIGEgIndhaXQgYSBzZWNv bmQiIGJldHdlZW4gdGhlIGZpcnN0IHN0YXQgYW5kIHRoZQo+PiB0b3VjaGluZyB0byBhY2NvdW50 IGZvciBmaWxlc3lzdGVtcyB3aXRoIG1vcmUgZ3JhbnVsYXIgdGltZXN0YW1wcwo+PiAoaW5zZXJ0 aW5nIHRvdWNoZXMsIGFuZCBvdGhlciB0YXNrcyBtaWdodCB0b3VjaCBhdCAidGhlIHNhbWUgdGlt ZSIgYXMKPj4gd2VsbCBieSBhY2NpZGVudCksIHNpbmNlIHRoZSByZXF1ZXN0ZWQgdGltZXN0YW1w cyBtaWdodCBiZSBtb2RpZmllZCB0bwo+PiBiZWNvbWUgInRoZSBncmVhdGVzdCB2YWx1ZSBzdXBw b3J0ZWQgYnkgdGhlIGZpbGVzeXN0ZW0gdGhhdCBpcyBub3QKPj4gZ3JlYXRlciB0aGFuIHRoZSBz cGVjaWZpZWQgdGltZSIgKHV0aW1lbnNhdCgyKSksIGFuZCBvbmUgc2Vjb25kIGRvZXNuJ3QKPj4g cmVhbGx5IGh1cnQgaXMgaW4gdGhlIHNjb3BlIG9mIGEgR0MuLgo+PiAKPj4gbm90ZSB0aGF0IHRo ZSAyNGggZ3JhY2UgcGVyaW9kIGlzIHRvdGFsbHkgaW5kZXBlbmRlbnQgb2YgdGhpcyAtIGl0IGNv bWVzCj4+IGZyb20gbGF6eXRpbWUgYW5kIHJlbGF0ZXMgdG8gaG93IG9mdGVuIGNoYW5nZXMgb2Yg dGltZXN0YW1wcyBhcmUKPj4gKnBlcnNpc3RlZCBvbiBkaXNrKi4gdGhhdCBzaG91bGRuJ3QgYWZm ZWN0IHVzIGZvciBsb2NhbCBzdG9yYWdlcyAoc2luY2UKPj4gd2UgdGFsayB0byB0aGUga2VybmVs IGFuZCBhbHdheXMgZ2V0IHRoZSB1cGRhdGVkIHZpZXcgYW55d2F5LCBubyBtYXR0ZXIKPj4gaWYg aXQgaXMgaW4tbWVtb3J5IG9yIG9uLWRpc2suIGlmIHRoZSBQQlMgc3lzdGVtIGNyYXNoZXMgR0Mg aXMgZ29uZSBhcwo+PiB3ZWxsIGFuZCBuZWVkcyB0byBzdGFydCBvdmVyLCBubyByaXNrIG9mIGlu Y29uc2lzdGVuY3kpLgo+PiAKPj4gd2UgbWlnaHQgaGF2ZSBhIHByb2JsZW0gaWYgdGhlIHN0b3Jh Z2UgdXNlcyBsYXp5dGltZSBpbnRlcm5hbGx5IGFuZAo+PiBsaXZlcyBzb21ld2hlcmUgZWxzZQo+ PiAtIEdDIHN0YXJ0cyBwaGFzZTEKPj4gLSB1cGRhdGVzIGEgZmV3IGF0aW1lcwo+PiAtIHN0b3Jh Z2UgY3Jhc2hlcyBhbmQgbG9zZXMgc29tZSBvZiB0aGUgdXBkYXRlcyB3aGlsZSBJL08gdG8gaXQg YmxvY2tzCj4+IC0gc3RvcmFnZSBjb21lcyBiYWNrIHVwCj4+IC0gR0MgY29udGludWVzIG5vdCBr bm93aW5nIHRoYXQgc29tZSBvZiB0aGUgYXRpbWUgdXBkYXRlcyBoYXZlIGJlZW4gbG9zdAo+PiAg ICBpbiB0aGUgZXRoZXIKPj4gLSBHQyBlbnRlcnMgcGhhc2UyCj4+IC0gY2h1bmsgdGltZXN0YW1w IG1ha2VzIGl0IGVsaWdpYmxlIGZvciBkZWxldGlvbiwgZXZlbiB0aG91Z2ggaXQgd2FzCj4+ICAg IHRvdWNoZWQgaW4gcGhhc2UxCj4+IC0gZGF0YSBsb3NzCj4+IAo+PiBJIGRvbid0IHRoaW5rIHdl IGNhbiByZWFsbHkgcHJldmVudCB0aGlzIG90aGVyIHRoYW4gYnkgZGl0Y2hpbmcgdGhlCj4+IHdo b2xlIGF0aW1lIG1lY2hhbmlzbSBhbmQgaW5zdGVhZCBrZWVwIGEgbGlzdCBvZiB3cml0dGVuIGNo dW5rcyBpbiBlYWNoCj4+IGJhY2t1cCB3cml0ZXIsIGFuZCBnZW5lcmF0ZSBzdWNoIGEgbGlzdCBp biBwaGFzZTEsIG1lcmdpbmcgdGhlbSBhbGwgYW5kCj4+IHVzaW5nIHRoYXQgZm9yIHBoYXNlMiAo d2hpY2ggaXMgcmVhbGx5IGV4cGVuc2l2ZSBhcyBpdCBzY2FsZXMgd2l0aCB0aGUKPj4gbnVtYmVy IG9mIHRvdWNoZWQgY2h1bmtzIGFuZCB3b3VsZCByZXF1aXJlIHN5bmNpbmcgdXAgd3JpdGVycyBh bmQgR0MpLgo+PiB0aGFua2Z1bGx5IEknZCBleHBlY3QgbW9zdCBzdWNoIGZhaWx1cmUgc2NlbmFy aW9zIHRvIGFjdHVhbGx5IGFib3J0IHRoZQo+PiBHQyBhbnl3YXkgZm9yIEkvTyBlcnJvciByZWFz b25zLi4KPiAKPiBNYXliZSBvbmUgY291bGQgdXNlIGBzdGF0bW91bnRgIHRvIGRldGVybWluZSBp ZiB0aGUgYFNCX0xBWllUSU1FYCBmbGFnIAo+IGluIGBzbWJ1Zi5zYl9mbGFnc2AgaXMgc2V0PyBC dXQgSSBhc3N1bWUgdGhhdCB5b3UgbWVhbnQgdGhlIGlzc3VlIGJlaW5nIAo+IHRoaXMgbm90IGV4 cG9zZWQgYnkgdGhlIGZpbGVzeXN0ZW0uLi4KCnRoZSBsb2NhbCBtb3VudCBoYXZpbmcgbGF6eXRp bWUgZG9lc24ndCBtYXR0ZXIgKGlmIGl0IGRvZXMsIHRoYXQgbWVhbnMKdGhlIGxvY2FsIGtlcm5l bCBoYW5kbGVzIHRoZSBjb25zaXN0ZW5jeSBhbmQgaWYgdGhlIGtlcm5lbCBnb2VzCmF3YXkvY3Jh c2hlcywgc28gZG9lcyB0aGUgR0MpLiB0aGUgaXNzdWUgd291bGQgYmUgc29tZSBzdG9yYWdlIGFw cGxpYW5jZQp1c2luZyBpdCAob3Igc29tZXRoaW5nIHdpdGggc2ltaWxhciBzZW1hbnRpY3MpIGlu dGVybmFsbHkgdGhhdCB3b3VsZApjYXVzZSBhdGltZSB1cGRhdGVzIHRvICJ3b3JrIiBidXQgdGhl biBkaXNhcHBlYXIgbGF0ZXIgd2l0aG91dAppbnRlcnJ1cHRpbmcgdGhlIEdDLiBJIGRvbid0IHNl ZSBob3cgd2UgY2FuIHByb3RlY3QgYWdhaW5zdCB0aGF0IHdpdGhvdXQKc3dpdGNoaW5nIHRvIGEg ZGlmZmVyZW50LCBtb3JlIGV4cGVuc2l2ZSBtZWNoYW5pc20uCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMt ZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmlu L21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==