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 D07741FF390 for ; Fri, 24 May 2024 10:50:06 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 28E085AD1; Fri, 24 May 2024 10:50:25 +0200 (CEST) Message-ID: <4bfea7b8-ce95-41a8-b738-a005103d725e@proxmox.com> Date: Fri, 24 May 2024 10:50:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Dominik Csapak , Proxmox Backup Server development discussion References: <20240514103421.289431-1-c.ebner@proxmox.com> <20240514103421.289431-48-c.ebner@proxmox.com> <9cf678d5-e09f-4c53-9e0f-9f5aba8532c6@proxmox.com> Content-Language: en-US, de-DE From: Christian Ebner In-Reply-To: <9cf678d5-e09f-4c53-9e0f-9f5aba8532c6@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.025 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 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 v6 proxmox-backup 47/65] fix #3174: client: pxar: enable caching and meta comparison 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" T24gNS8yMi8yNCAxNjo0NSwgRG9taW5payBDc2FwYWsgd3JvdGU6Cj4gaGlnaHQgbGV2ZWwgY29t bWVudAo+IAo+IHRoaXMgcGF0Y2ggZG9lcyBtYW55IHRoaW5ncyBhbmQgZmVlbHMgbGlrZSBpdCBj b3VsZCBiZSBicm9rZW4gdXAgbW9yZSAKPiBjbGVhcmx5CgpPa2F5LCB5ZXMgSSB3aWxsIHNwbGl0 IHRoaXMgdXAgaW50byBtb3JlIGNvbnN1bWFibGUgcGF0Y2hlcy4KCj4gCj4gY291bGQgdGhpcyBi ZSBiZXR0ZXIgaWYgdGhvc2Ugd2VyZSBpbiBhbiBvcHRpb25hbCBzdHJ1Y3Q/Cj4gCj4gZS5nLgo+ IAo+IGNhY2hlOiBPcHRpb248UHhhckNyZWF0ZUNhY2hlPiwKPiAKPiBub3Qgc3VyZSBpZiBpdCBt YWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gcmVhZCBvciBub3QuLi4KCkkgd2lsbCBjaGVjayBpZiBJ IGNhbiBtb3ZlIHNvbWUgb2YgdGhlIGxvZ2ljIGFuZCBjcmVhdGUgYSBzdHJ1Y3QgZm9yIAp0aGlz IHRvIHRoZSBsb29rYWhlYWQgY2FjaGUgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYmVmb3JlIHRo aXMgb25lLgoKPiAKPiBJSVVDIHdlIGRvbid0IGVuY29kZSBhICcucHhhcmV4Y2x1ZGUtY2xpJyB3 aGVuIHRoZXJlIGlzIGEgcHJldmlvdXMgcmVmID8KPiBkb2VzIHRoYXQgcmVhbGx5IG1ha2Ugc2Vu c2UKCkFzIGFscmVhZHkgZGlzY3Vzc2VkIG9mZmxpc3QsIHRoaXMgbWFrZXMgaXQgaW1wb3NzaWJs ZSB0byByZXVzZSBhbmQgZXZlbiAKd29yc2UsIGl0IHdpbGwgZW5jb2RlIHRoZSBmaWxlIGVudHJ5 IGF0IHNvbWUgcG9pbnQgYnJlYWtpbmcgd2l0aCB0aGUgCmxvZ2ljIG9mIHRoZSBjYWNoZSwgbGVh ZGluZyB0byBhIGNvcnJ1cHQgYXJjaGl2ZS4KSSBkaWQgaGF2YSBhIGRlZGljYXRlZCBjYWNoZSBl bnRyeSB0eXBlIGp1c3QgZm9yIHRoaXMgYXQgc29tZSBwb2ludCwgYnV0IAp0aGlzIGVkZ2UgY2Fz ZSB3YXMgcmVhbGx5IGEgcHJvYmxlbS4KTG9naWNhbGx5IGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8g cHV0IHRoaXMgaW50byB0aGUgcHJlbHVkZSBzZWN0aW9uLCAKaW5zdGVhZCBvZiBlbmNvZGluZyB0 aGlzIGFzIGEgZmlsZSBpbiB0aGUgYXJjaGl2ZS4KCj4gCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZWxmLmVuY29kZV9weGFyZXhjbHVkZV9jbGkoZW5jb2Rl ciwgCj4+ICZmaWxlX2VudHJ5Lm5hbWUsIG9sZF9wYXR0ZXJuc19jb3VudCkKPj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmF3YWl0PzsKPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+PiBAQCAt MzM2LDYgKzM2Myw3IEBAIGltcGwgQXJjaGl2ZXIgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5hd2FpdAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC5tYXBfZXJyKHxlcnJ8IHNlbGYud3JhcF9lcnIoZXJyKSk/Owo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB9Cj4+ICsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5wYXRo ID0gb2xkX3BhdGg7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlbGYuZW50cnlfY291 bnRlciA9IGVudHJ5X2NvdW50ZXI7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlbGYu cGF0dGVybnMudHJ1bmNhdGUob2xkX3BhdHRlcm5zX2NvdW50KTsKPj4gQEAgLTYxOCw4ICs2NDYs NiBAQCBpbXBsIEFyY2hpdmVyIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNfZmlsZV9uYW1lOiAm Q1N0ciwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHN0YXQ6ICZGaWxlU3RhdCwKPj4gwqDCoMKgwqDC oCApIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gLcKgwqDCoMKgwqDCoMKgIHVzZSBweGFyOjpm b3JtYXQ6Om1vZGU7Cj4+IC0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBmaWxlX21vZGUgPSBz dGF0LnN0X21vZGUgJiBsaWJjOjpTX0lGTVQ7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgb3Bl bl9tb2RlID0gaWYgZmlsZV9tb2RlID09IGxpYmM6OlNfSUZSRUcgfHwgZmlsZV9tb2RlIAo+PiA9 PSBsaWJjOjpTX0lGRElSIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgT0ZsYWc6OmVt cHR5KCkKPj4gQEAgLTY1Nyw2ICs2ODMsOTYgQEAgaW1wbCBBcmNoaXZlciB7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHNlbGYuc2tpcF9lMmJpZ194YXR0ciwKPj4gwqDCoMKgwqDCoMKg wqDCoMKgICk/Owo+PiArwqDCoMKgwqDCoMKgwqAgaWYgc2VsZi5wcmV2aW91c19wYXlsb2FkX2lu ZGV4LmlzX25vbmUoKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBzZWxmCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmFkZF9lbnRyeV90b19hcmNoaXZlKAo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5jb2RlciwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHByZXZpb3VzX21ldGFkYXRhLAo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY19maWxlX25hbWUsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdGF0LAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmQsCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmbWV0YWRhdGEsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBOb25lLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuYXdhaXQ7Cj4+ICvCoMKg wqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIC8vIEF2b2lkIGhhdmluZyB0byBt YW55IG9wZW4gZmlsZSBoYW5kbGVzIGluIGNhY2hlZCBlbnRyaWVzCj4+ICvCoMKgwqDCoMKgwqDC oCBpZiBzZWxmLmNhY2hlZF9lbnRyaWVzLmxlbigpID4gTUFYX0NBQ0hFX1NJWkUgewo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBsb2c6OmRlYnVnISgiTWF4IGNhY2hlIHNpemUgcmVhY2hlZCwg cmV1c2UgY2FjaGVkIGVudHJpZXMiKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5m bHVzaF9jYWNoZWRfcmV1c2luZ19pZl9iZWxvd190aHJlc2hvbGQoZW5jb2RlciwgdHJ1ZSkKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuYXdhaXQ/Owo+PiArwqDCoMKgwqDCoMKg wqAgfQo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiBtZXRhZGF0YS5pc19yZWd1bGFyX2ZpbGUo KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlbGYuY2FjaGVfb3JfZmx1c2hfZW50cmll cygKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbmNvZGVyLAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHByZXZpb3VzX21ldGFkYXRhLAo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNfZmlsZV9uYW1lLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0YXQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmQs Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJm1ldGFkYXRhLAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCApCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5hd2FpdAo+PiAr wqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmIHNlbGYuY2FjaGluZ19lbmFibGVkIHsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaWYgc3RhdC5zdF9tb2RlICYgbGliYzo6U19JRk1UID09IGxpYmM6 OlNfSUZESVIgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBmZF9jbG9u ZSA9IGZkLnRyeV9jbG9uZSgpPzsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBs ZXQgY2FjaGVfZW50cnkgPSAKPj4gQ2FjaGVFbnRyeTo6RGlyRW50cnkoQ2FjaGVFbnRyeURhdGE6 Om5ldygKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZkLAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY19maWxlX25hbWUuaW50bygp LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKnN0YXQsCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtZXRhZGF0YS5jbG9uZSgpLAo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUGF5bG9hZE9mZnNldDo6 ZGVmYXVsdCgpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICkpOwo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlbGYuY2FjaGVkX2VudHJpZXMucHVzaChjYWNo ZV9lbnRyeSk7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgZGly ID0gRGlyOjpmcm9tX2ZkKGZkX2Nsb25lLmludG9fcmF3X2ZkKCkpPzsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzZWxmLmFkZF9kaXJlY3RvcnkoCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbmNvZGVyLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJldmlvdXNfbWV0YWRhdGEsCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkaXIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBjX2ZpbGVfbmFtZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICZtZXRhZGF0YSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0YXQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKQo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5hd2FpdD87Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg bGV0IGNhY2hlX2VudHJ5ID0gCj4+IENhY2hlRW50cnk6OlJlZ0VudHJ5KENhY2hlRW50cnlEYXRh OjpuZXcoCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmZCwKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNfZmlsZV9uYW1lLmludG8o KSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICpzdGF0LAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWV0YWRhdGEsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQYXlsb2FkT2Zmc2V0OjpkZWZhdWx0 KCksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKSk7Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5jYWNoZWRfZW50cmllcy5wdXNoKGNhY2hlX2VudHJ5 KTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBPaygoKSkKPj4gK8KgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHNlbGYuYWRkX2VudHJ5X3RvX2FyY2hpdmUoCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgZW5jb2RlciwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBw cmV2aW91c19tZXRhZGF0YSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjX2Zp bGVfbmFtZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdGF0LAo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZkLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICZtZXRhZGF0YSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBO b25lLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCApCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC5hd2FpdAo+PiArwqDCoMKgwqDCoMKgwqAgfQo+IAo+IGEgZmV3IHF1ZXN0aW9ucyBoZXJl Ogo+IAo+ICdjYWNoaW5nX2VuYWJsZWQnIGlzIElNSE8gYSBiaXQgbWlzbGVhZGluZyBhcyB0aGlz IGlzIG9ubHkgdXNlZCBmb3Igbm9uIAo+IGZpbGUgZW50cmllcz8KCk5vLCB0aGlzIGlzIHVzZWQg Zm9yIGFsbCB0eXBlcyBvZiBlbnRyaWVzIQpUaGUgb25seSBkaXN0aW5jdGlvbiBtYWRlIGZvciBj YWNoZSBlbnRyaWVzIGlzIHdoZXRoZXIgdGhleSBhcmUgCmRpcmVjdG9yaWVzIG9yIG5vdC4gRm9y IGRpcmVjdG9yaWVzLCBlbnRyeSBhbmQgZXhpdCBwb2ludCBoYXZlIHRvIGJlIApjb25zaWRlcmVk LCBpbiBvcmRlciB0byBnZW5lcmF0ZSBhIGNvbnNpc3RlbnQgYXJjaGl2ZS4KCk1heWJlIGFib3Zl IGNvZGUgcGF0aCBpcyBub3Qgc28gY2xlYXIuIEZvciBub24gZmlsZSBlbnRyaWVzLCB3aGVuIApj YWNoaW5nIGlzIGVuYWJsZWQsIHRoZXkgYXJlIGNhY2hlZCwgb3RoZXJ3aXNlIGVuY29kZWQuIEZv ciBmaWxlIGVudHJpZXMgCm9uZSBuZWVkcyB0byBmaXJzdCBjaGVjayBpZiB0aGV5IGJyZWFrIHdp dGggdGhlIGNhY2hpbmcsIGFzIHRoZXkgbWlnaHQgCmJlIG5vdCByZXVzYWJsZS4gVGhlcmVmb3Jl IHRoZSBkaXN0aWN0aW9uIGFib3ZlLgoKSWYgbm90IGluIGNhY2hpbmcgbW9kZSwgc2ltcGx5IHJl ZW5jb2RlIHRoZSBlbnRyeS4KPiAKPiBwZXJzb25hbGx5IGkgZmluZCB0aGUgc3BsaXQgaGFuZGxp bmcgb2YgY2FjaGluZyB2cyBmbHVzaGluZyBoZXJlIGFuZCBpbiAKPiBjYWNoZV9vcl9mbHVzaF9l bnRyaWVzCj4gYSBiaXQgY29uZnVzaW5nOgo+IAo+IGhhcmRsaW5rcy9maWxlcyBhcmUgaGFuZGxl ZCB0aGVyZSwgd2hpbGUgZGlycyBhbmQgYWxsIG90aGVyIGZpbGV0eXBlcyAKPiBhcmUgaGFuZGxl ZCBoZXJlPwo+IHdoeSA/Cj4gCj4gaSdkIHJhdGhlciBoYXZlIGFsbCB0eXBlcyBoYW5kbGVkIHRo ZXJlLCB3aWhjaCB3b3VsZCBtYWtlIHRoZSBjb2RlIGhlcmUgCj4gbXVjaCBtb3JlIHJlYWRhYmxl Cj4gYW5kIGhhdmluZyB0aGUgY29kZSBmb3IgYWxsIHR5cGVzIHRoZXJlIHNob3VsZCBhbHNvIG5v dCBiZSB0aGF0IHVnbHkKCkkgYWdyZWUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgbW9zdCByZWFkYWJs ZSBjb2RlLCBpdCB3YXMgYSBiaXQgaGFyZCB0byAKY292ZXIgYWxsIHRoZSBwb3NzaWJsZSBlZGdl IGNhc2VzIG9uZSBtaWdodCBlbmNvdW50ZXIgZHVyaW5nIGNhY2hpbmcgYW5kIAp0aGVyZWZvcmUg Z3JldyByYXRoZXIgb3JnYW5pY2FsbHkgaW5zdGVhZCBvZiBoYXZpbmcgYSBjbGVhciB2aXNpb24g b24gCndoZXJlIHRvIGdvLiBMZXQgbWUgc2VlIGlmIHRoZSBmYWN0b3Jpbmcgb3V0IG9mIHNvbWUg b2YgdGhlIGxvZ2ljIHRvIGEgCmRlZGljYXRlZCBgUHhhckxvb2thaGVhZENhY2hlYCBtaWdodCBo ZWxwIHRvIGltcHJvdmVzIHRoaXMuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnBy b3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3Rp bmZvL3Bicy1kZXZlbAo=