From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 14A1A1FF15C for <inbox@lore.proxmox.com>; Fri, 30 May 2025 13:45:45 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7D0FD2DA21; Fri, 30 May 2025 13:46:00 +0200 (CEST) Message-ID: <9b24918c-0f4a-489d-8bf8-d3e2a423749b@proxmox.com> Date: Fri, 30 May 2025 13:45:26 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Christian Ebner <c.ebner@proxmox.com>, Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> References: <20250515124138.55436-1-h.laimer@proxmox.com> <20250515124138.55436-5-h.laimer@proxmox.com> <4566b2e4-1736-4a30-bd65-0a457d6efd59@proxmox.com> Content-Language: en-US From: Hannes Laimer <h.laimer@proxmox.com> In-Reply-To: <4566b2e4-1736-4a30-bd65-0a457d6efd59@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.024 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 v2 4/8] api: admin: run configured sync jobs when a datastore is mounted X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> YWRkZWQgc29tZSBpbmxpbmUgY29tbWVudHMsIEknbGwgcHJvYmFibHkgc2VuZCBhIHYzIGFkZHJl c3Npbmcgc29tZSBvZgp0aGUgdGhpbmdzIHlvdSBtZW50aW9uZWQKCk9uIDUvMzAvMjUgMTI6MDIs IENocmlzdGlhbiBFYm5lciB3cm90ZToKPiBwbGVhc2Ugc2VlIHNvbWUgY29tbWVudHMgaW5saW5l Cj4gCj4gT24gNS8xNS8yNSAxNDo0MSwgSGFubmVzIExhaW1lciB3cm90ZToKPj4gV2hlbiBhIGRh dGFzdG9yZSBpcyBtb3VudGVkLCBzcGF3biBhIG5ldyB0YXNrIHRvIHJ1biBhbGwgc3luYyBqb2Jz Cj4+IG1hcmtlZCB3aXRoIGBydW4tb24tbW91bnRgLiBUaGVzZSBqb2JzIHJ1biBzZXF1ZW50aWFs bHkgYW5kIGluY2x1ZGUKPj4gYW55IGpvYiBmb3Igd2hpY2ggdGhlIG1vdW50ZWQgZGF0YXN0b3Jl IGlzOgo+Pgo+PiAtIFRoZSBzb3VyY2Ugb3IgdGFyZ2V0IGluIGEgbG9jYWwgcHVzaC9wdWxsIGpv Ygo+PiAtIFRoZSBzb3VyY2UgaW4gYSBwdXNoIGpvYiB0byBhIHJlbW90ZSBkYXRhc3RvcmUKPj4g LSBUaGUgdGFyZ2V0IGluIGEgcHVsbCBqb2IgZnJvbSBhIHJlbW90ZSBkYXRhc3RvcmUKPj4KPj4g U2lnbmVkLW9mZi1ieTogSGFubmVzIExhaW1lciA8aC5sYWltZXJAcHJveG1veC5jb20+Cj4+IC0t LQo+PiDCoCBzcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMgfCA5MSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tCj4+IMKgIHNyYy9hcGkyL2FkbWluL3N5bmMucnPCoMKgwqDC oMKgIHzCoCAyICstCj4+IMKgIHNyYy9zZXJ2ZXIvc3luYy5yc8KgwqDCoMKgwqDCoMKgwqDCoCB8 wqAgNyArLS0KPj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzIGIv c3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCj4+IGluZGV4IDM5MjQ5NDQ4OC4uODQ2M2FkYjZh IDEwMDY0NAo+PiAtLS0gYS9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPj4gKysrIGIvc3Jj L2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCj4+IEBAIC00Miw4ICs0Miw4IEBAIHVzZSBwYnNfYXBp X3R5cGVzOjp7Cj4+IMKgwqDCoMKgwqAgRGF0YVN0b3JlQ29uZmlnLCBEYXRhU3RvcmVMaXN0SXRl bSwgRGF0YVN0b3JlTW91bnRTdGF0dXMsIAo+PiBEYXRhU3RvcmVTdGF0dXMsCj4+IMKgwqDCoMKg wqAgR2FyYmFnZUNvbGxlY3Rpb25Kb2JTdGF0dXMsIEdyb3VwTGlzdEl0ZW0sIEpvYlNjaGVkdWxl U3RhdHVzLCAKPj4gS2VlcE9wdGlvbnMsIE1haW50ZW5hbmNlTW9kZSwKPj4gwqDCoMKgwqDCoCBN YWludGVuYW5jZVR5cGUsIE9wZXJhdGlvbiwgUHJ1bmVKb2JPcHRpb25zLCBTbmFwc2hvdExpc3RJ dGVtLCAKPj4gU25hcHNob3RWZXJpZnlTdGF0ZSwKPj4gLcKgwqDCoCBCQUNLVVBfQVJDSElWRV9O QU1FX1NDSEVNQSwgQkFDS1VQX0lEX1NDSEVNQSwgCj4+IEJBQ0tVUF9OQU1FU1BBQ0VfU0NIRU1B LCBCQUNLVVBfVElNRV9TQ0hFTUEsCj4+IC3CoMKgwqAgQkFDS1VQX1RZUEVfU0NIRU1BLCBDQVRB TE9HX05BTUUsIENMSUVOVF9MT0dfQkxPQl9OQU1FLCAKPj4gREFUQVNUT1JFX1NDSEVNQSwKPj4g K8KgwqDCoCBTeW5jSm9iQ29uZmlnLCBCQUNLVVBfQVJDSElWRV9OQU1FX1NDSEVNQSwgQkFDS1VQ X0lEX1NDSEVNQSwgCj4+IEJBQ0tVUF9OQU1FU1BBQ0VfU0NIRU1BLAo+PiArwqDCoMKgIEJBQ0tV UF9USU1FX1NDSEVNQSwgQkFDS1VQX1RZUEVfU0NIRU1BLCBDQVRBTE9HX05BTUUsIAo+PiBDTElF TlRfTE9HX0JMT0JfTkFNRSwgREFUQVNUT1JFX1NDSEVNQSwKPj4gwqDCoMKgwqDCoCBJR05PUkVf VkVSSUZJRURfQkFDS1VQU19TQ0hFTUEsIE1BTklGRVNUX0JMT0JfTkFNRSwgCj4+IE1BWF9OQU1F U1BBQ0VfREVQVEgsIE5TX01BWF9ERVBUSF9TQ0hFTUEsCj4+IMKgwqDCoMKgwqAgUFJJVl9EQVRB U1RPUkVfQVVESVQsIFBSSVZfREFUQVNUT1JFX0JBQ0tVUCwgCj4+IFBSSVZfREFUQVNUT1JFX01P RElGWSwgUFJJVl9EQVRBU1RPUkVfUFJVTkUsCj4+IMKgwqDCoMKgwqAgUFJJVl9EQVRBU1RPUkVf UkVBRCwgUFJJVl9EQVRBU1RPUkVfVkVSSUZZLCBQUklWX1NZU19NT0RJRlksIAo+PiBVUElELCBV UElEX1NDSEVNQSwKPj4gQEAgLTI1MTAsNiArMjUxMCw1MSBAQCBwdWIgZm4gZG9fbW91bnRfZGV2 aWNlKGRhdGFzdG9yZTogCj4+IERhdGFTdG9yZUNvbmZpZykgLT4gUmVzdWx0PCgpLCBFcnJvcj4g ewo+PiDCoMKgwqDCoMKgIE9rKCgpKQo+PiDCoCB9Cj4+ICthc3luYyBmbiBkb19zeW5jX2pvYnMo Cj4+ICvCoMKgwqAgam9ic190b19ydW46IFZlYzxTeW5jSm9iQ29uZmlnPiwKPj4gK8KgwqDCoCB3 b3JrZXI6IEFyYzxXb3JrZXJUYXNrPiwKPj4gKykgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiAr wqDCoMKgIGxldCBjb3VudCA9IGpvYnNfdG9fcnVuLmxlbigpOwo+PiArwqDCoMKgIGluZm8hKAo+ PiArwqDCoMKgwqDCoMKgwqAgIndpbGwgcnVuIHt9IHN5bmMgam9iczoge30iLAo+PiArwqDCoMKg wqDCoMKgwqAgY291bnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBqb2JzX3RvX3J1bgo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAuaXRlcigpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5tYXAo fGp8IGouaWQuY2xvbmUoKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbGxlY3Q6OjxW ZWM8U3RyaW5nPj4oKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuam9pbigiLCAiKQo+PiAr wqDCoMKgICk7Cj4gCj4gbml0Ogo+IAo+IGFib3ZlIGNhbiBiZSByZXdyaXR0ZW4gd2l0aG91dCBj bG9uaW5nIHRoZSBqb2IgaWRzIGFuZCBgY291bnRgIGluLWxpbmVkIGFzOgo+IGBgYAo+ICDCoMKg wqAgaW5mbyEoCj4gIMKgwqDCoMKgwqDCoMKgICJ3aWxsIHJ1biB7Y291bnR9IHN5bmMgam9iczog e30iLAo+ICDCoMKgwqDCoMKgwqDCoCBqb2JzX3RvX3J1bgo+ICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC5pdGVyKCkKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAubWFwKHxzeW5jX2pvYl9jb25m aWd8IHN5bmNfam9iX2NvbmZpZy5pZC5hc19zdHIoKSkKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAuY29sbGVjdDo6PFZlYzwmc3RyPj4oKQo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5qb2lu KCIsICIpCj4gIMKgwqDCoCApOwo+IGBgYAo+IAo+PiArCj4+ICvCoMKgwqAgZm9yIChpLCBqb2Jf Y29uZmlnKSBpbiBqb2JzX3RvX3J1bi5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Cj4+ICvCoMKg wqDCoMKgwqDCoCBpZiB3b3JrZXIuYWJvcnRfcmVxdWVzdGVkKCkgewo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBiYWlsISgiYWJvcnRlZCBkdWUgdG8gdXNlciByZXF1ZXN0Iik7Cj4+ICvCoMKg wqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgam9iX2lkID0gam9iX2NvbmZpZy5p ZC5jbG9uZSgpOwo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IE9rKGpvYikgPSBKb2I6Om5ldygic3lu Y2pvYiIsICZqb2JfaWQpIGVsc2Ugewo+IAo+IG5pdDogdGhpcyBzaG91bGQgbG9nIGFuIGVycm9y L3dhcm5pbmcgYW5kIHRoZSBzdGF0dXMgcHJvZ3Jlc3MsIGFzIHRoaXMgCj4gd2lsbCBmYWlsIGlm IHRoZSBqb2IgbG9jayBjYW5ub3QgYmUgYWNxdWlyZWQuIFRoYXQgaXMgc29tZXRoaW5nIHdoaWNo IGlzIAo+IG9mIGludGVyZXN0IGZvciBkZWJ1Z2dpbmcuCj4gCm1ha2VzIHNlbnNlLCB3aWxsIGRv Cgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4gK8KgwqDCoMKgwqDCoMKg IH07Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgYXV0aF9pZCA9IEF1dGhpZDo6cm9vdF9hdXRoX2lk KCkuY2xvbmUoKTsKPiAKPiBuaXQ6IGF1dGhfaWQgZG9lcyBub3QgbmVlZCB0byBiZSBjbG9uZWQg aGVyZSAuLi4KPiAKPj4gK8KgwqDCoMKgwqDCoMKgIGluZm8hKCJbe30ve2NvdW50fV0gc3RhcnRp bmcgJ3tqb2JfaWR9Jy4uLiIsIGkgKyAxKTsKPj4gK8KgwqDCoMKgwqDCoMKgIG1hdGNoIGNyYXRl OjpzZXJ2ZXI6OmRvX3N5bmNfam9iKAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBqb2IsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGpvYl9jb25maWcsCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICZhdXRoX2lkLAo+IAo+IC4uLiBzaW5jZSBvbmx5IHBhc3NlZCBhcyByZWZlcmVuY2Ug aGVyZS4KPiAKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU29tZSgibW91bnQiLnRvX3N0cmlu ZygpKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmFsc2UsCj4+ICvCoMKgwqDCoMKgwqDC oCApIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgT2soKF91cGlkLCBoYW5kbGUpKSA9PiB7 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG9raW86OnNlbGVjdCEgewo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3luY19kb25lID0gaGFuZGxl LmZ1c2UoKSA9PiBpZiBsZXQgRXJyKGVycikgPSAKPj4gc3luY19kb25lIHsgd2FybiEoImNvdWxk IG5vdCB3YWl0IGZvciBqb2IgdG8gZmluaXNoOiB7ZXJyfSIpOyB9LAo+IAo+IHF1ZXN0aW9uOiBz aG91bGQgdGhpcyBiZSBsb2dnZWQgYXMgZXJyb3IgcmF0aGVyIHRoYW4gYSB3YXJuaW5nIC4uLgo+ IAoKaG1tLCBtYXliZS4gQnV0IGl0IGRvZXNuJ3QgbWVhbiBhbnl0aGluZyBuZWNlc3NhcmlseSBm YWlsZWQsIHRoZSBzeW5jCml0c2VsZiB3aWxsIGNvbnRpbnVlLiBXZSdsbCBqdXN0IHN0YXJ0IHRo ZSBuZXh0IG9uZSB3aXRob3V0IHdhaXRpbmcuCgpCdXQgSSdtIG5vdCBzdXBlciBzdXJlIGV4YWN0 bHkgd2hlbiB0aGlzIHdvdWxkIGZhaWwsIG1heWJlIHRoZXJlIGFyZQpzb21lIGNhc2VzIHdoZXJl IGFuIGVycm9yIHdvdWxkIGJlIHdhcnJhbnRlZC4gQnV0IHdpdGggbXkgY3VycmVudAp1bmRlcnN0 YW5kaW5nIGl0IGlzIG5vdCByZWFsbHkuCgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgX2Fib3J0ID0gd29ya2VyLmFib3J0X2Z1dHVyZSgpID0+IGJhaWwhKCJhYm9y dGVkIAo+PiBkdWUgdG8gdXNlciByZXF1ZXN0IiksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBFcnIoZXJyKSA9PiB3YXJuISgidW5hYmxlIHRvIHN0YXJ0IHN5bmMgam9iIHtq b2JfaWR9IC0gCj4+IHtlcnJ9IiksCj4gCj4gLi4uIHNhbWUgaGVyZT8KPiAKCmluIG15IGhlYWQg ZXJyb3IgbWVhbnMgdGFzayBjb3VsZCBub3QgY29udGludWUsIHdoaWNoIGlzIG5vdCB0aGUgY2Fz ZQpoZXJlLCB3ZSdsbCBqdXN0IHNraXAgdGhpcyBqb2JzLiBCdXQgbm8gaGFyZCBmZWVsaW5ncywg Y291bGQgYWxzbyBtYWtlCmFuIGVycm9yIGhlcmUuCgo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiAr wqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIE9rKCgpKQo+PiArfQo+PiArCj4+IMKgICNbYXBpKAo+ PiDCoMKgwqDCoMKgIHByb3RlY3RlZDogdHJ1ZSwKPj4gwqDCoMKgwqDCoCBpbnB1dDogewo+PiBA QCAtMjU0MSwxMiArMjU4Niw0OCBAQCBwdWIgZm4gbW91bnQoc3RvcmU6IFN0cmluZywgcnBjZW52 OiAmbXV0IGR5biAKPj4gUnBjRW52aXJvbm1lbnQpIC0+IFJlc3VsdDxWYWx1ZSwgRXIKPj4gwqDC oMKgwqDCoCBsZXQgYXV0aF9pZDogQXV0aGlkID0gcnBjZW52LmdldF9hdXRoX2lkKCkudW53cmFw KCkucGFyc2UoKT87Cj4+IMKgwqDCoMKgwqAgbGV0IHRvX3N0ZG91dCA9IHJwY2Vudi5lbnZfdHlw ZSgpID09IFJwY0Vudmlyb25tZW50VHlwZTo6Q0xJOwo+PiAtwqDCoMKgIGxldCB1cGlkID0gV29y a2VyVGFzazo6bmV3X3RocmVhZCgKPj4gK8KgwqDCoCBsZXQgdXBpZCA9IFdvcmtlclRhc2s6OnNw YXduKAo+IAo+IHF1ZXN0aW9uOiBpcyBpdCBva2F5IHRvIHJ1biB0aGlzIG9uIHRoZSBzYW1lIHRo cmVhZCBoZXJlPyAKPiBgZG9fbW91bnRfZGV2aWNlYCBkb2VzIHNvbWUgYmxvY2tpbmcgY2FsbHMg YWZ0ZXIgYWxsPwo+IAoKeWVzLCB0aGVyZSdzIG5vIHJlYWwgcmVhc29uIHRvIGxvb2sgZm9yIGpv YiBjb25maWdzIHVubGVzcyBtb3VudGluZyBpcwpzdWNjZXNzZnVsIGFuZCBkb25lLiBTbyB0aGUg YmxvY2tpbmcgaXMgbm90IGEgcHJvYmxlbSwgYWN0dWFsbHkgcXVpdGUKdGhlIG9wcG9zaXRlLgoK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgICJtb3VudC1kZXZpY2UiLAo+PiAtwqDCoMKgwqDCoMKgwqAg U29tZShzdG9yZSksCj4+ICvCoMKgwqDCoMKgwqDCoCBTb21lKHN0b3JlLmNsb25lKCkpLAo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgYXV0aF9pZC50b19zdHJpbmcoKSwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgIHRvX3N0ZG91dCwKPj4gLcKgwqDCoMKgwqDCoMKgIG1vdmUgfF93b3JrZXJ8IGRvX21vdW50 X2RldmljZShkYXRhc3RvcmUpLAo+PiArwqDCoMKgwqDCoMKgwqAgbW92ZSB8X3dvcmtlcnwgYXN5 bmMgbW92ZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRvX21vdW50X2RldmljZShkYXRh c3RvcmUuY2xvbmUoKSk/Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgT2soKHN5bmNf Y29uZmlnLCBfZGlnZXN0KSkgPSAKPj4gcGJzX2NvbmZpZzo6c3luYzo6Y29uZmlnKCkgZWxzZSB7 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd2FybiEoInVuYWJsZSB0byByZWFk IHN5bmMgam9iIGNvbmZpZywgd29uJ3QgcnVuIGFueSAKPj4gc3luYyBqb2JzIik7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE9rKCgpKTsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IE9rKGxpc3QpID0g c3luY19jb25maWcuY29udmVydF90b190eXBlZF9hcnJheSgic3luYyIpIAo+PiBlbHNlIHsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3YXJuISgidW5hYmxlIHRvIHBhcnNlIHN5 bmMgam9iIGNvbmZpZywgd29uJ3QgcnVuIGFueSAKPj4gc3luYyBqb2JzIik7Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE9rKCgpKTsKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IGpvYnNfdG9fcnVuOiBW ZWM8U3luY0pvYkNvbmZpZz4gPSBsaXN0Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLmludG9faXRlcigpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmZpbHRl cih8am9iOiAmU3luY0pvYkNvbmZpZ3wgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLy8gYWRkIGpvYiBpZmYgKHJ1bm5pbmcgb24gbW91bnQgaXMgZW5hYmxlZCBh bmQpIAo+PiBhbnkgb2YgdGhlc2UgYXBwbHkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC8vwqDCoCAtIHRoZSBqb2JzIGlzIGxvY2FsIGFuZCB3ZSBhcmUgc291cmNl IG9yIHRhcmdldAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/C oMKgIC0gd2UgYXJlIHRoZSBzb3VyY2Ugb2YgYSBwdXNoIHRvIGEgcmVtb3RlCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgLSB3ZSBhcmUgdGhlIHRhcmdl dCBvZiBhIHB1bGwgZnJvbSBhIHJlbW90ZQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLy8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC8vIGBqb2Iuc3RvcmUgPT0gZGF0YXN0b3JlLm5hbWVgIGlmZiB3ZSBhcmUgdGhlIAo+PiB0YXJn ZXQgZm9yIHB1bGwgZnJvbSByZW1vdGUgb3Igd2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8vIGFyZSB0aGUgc291cmNlIGZvciBwdXNoIHRvIHJlbW90ZSwgdGhl cmVmb3JlIAo+PiB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciB0aGUKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGRpcmVjdGlvbiBvZiB0aGUgam9iLgo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgam9iLnJ1bl9vbl9tb3VudC51 bndyYXBfb3IoZmFsc2UpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICYmIChqb2IucmVtb3RlLmlzX25vbmUoKSAmJiBqb2IucmVtb3RlX3N0b3JlIAo+ PiA9PSBkYXRhc3RvcmUubmFtZQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHx8IGpvYi5zdG9yZSA9PSBkYXRhc3RvcmUubmFtZSkKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5jb2xsZWN0KCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICFq b2JzX3RvX3J1bi5pc19lbXB0eSgpIHsKPiAKPiBjb21tZW50OiBhbiBhZGRpdGlvbmFsIGxvZyBp bmZvIHRvIHRoZSBtb3VudCB0YXNrIGxvZyB3b3VsZCBiZSBuaWNlLCBzbyAKPiBvbmUgc2VlcyBm cm9tIGl0IGFzIHdlbGwgdGhhdCBzb21lIHN5bmMgam9icyB3ZXJlIHRyaWdnZXJlZC4KPiAKCnN1 cmUKCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IF8gPSBXb3JrZXJUYXNr OjpzcGF3bigKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJtb3Vu dC1zeW5jLWpvYnMiLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg U29tZShzdG9yZSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBh dXRoX2lkLnRvX3N0cmluZygpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZmFsc2UsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBt b3ZlIHx3b3JrZXJ8IGFzeW5jIG1vdmUgCj4+IHsgZG9fc3luY19qb2JzKGpvYnNfdG9fcnVuLCB3 b3JrZXIpLmF3YWl0IH0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKTsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBPaygo KSkKPj4gK8KgwqDCoMKgwqDCoMKgIH0sCj4gCj4gY29tbWVudDogYWxsIG9mIGFib3ZlIGlzIGV4 ZWN1dGVkIHdpdGhpbiBhIGFwaSBlbmRwb2ludCBmbGFnZ2VkIGFzIAo+IHByb3RlY3RlZCEgVGhp cyBob3dldmVyIGxlYWRzIHRvIHRoZSBzeW5jIGpvYiB0byBiZSBleGVjdXRlZCBieSB0aGUgCj4g cHJveG1veC1iYWNrdXAtcHJveHksIGFsbCB0aGUgc3luY2VkIGNvbnRlbnRzIHRoZXJlZm9yZSB3 cml0dGVuIGFuZCAKPiBvd25lciBieSB0aGUgcm9vdCB1c2VyIGluc3RlYWQgb2YgdGhlIGJhY2t1 cCB1c2VyLgo+IAoKYWN0dWFsbHkgdHJ1ZSwgZ29vZCBjYXRjaCEgSSBkaWRuJ3QgZXZlbiBjaGVj ayB0aGF0LCBJIGp1c3QgYXNzdW1lZCB3ZSdkIApleHBsaWNpdGx5IHNldCB0aGUgb3duZXIgd2hl bmV2ZXIgd2UgY3JlYXRlIGRpcnMvZmlsZXMgZHVyaW5nIHN5bmMuIFdlIApkbyB0aGlzIGZvciBn YXJiYWdlIGNvbGxlY3Rpb24gYW5kIGluIGJhc2ljYWxseSBhbGwgb3RoZXIgcGxhY2VzIElJUkMu CgpTbywgSSB0aGluayB3ZSBzaG91bGQgYWxzbyBkbyB0aGF0IGZvciBzeW5jcywgY2FuIHlvdSB0 aGluayBvZiBhIHJlYXNvbgp0byBub3QgZG8gdGhhdD8gSWYgbm90LCBJJ2xsIHByZXBhcmUgYSBw YXRjaCBmb3IgdGhhdC4KCj4+IMKgwqDCoMKgwqAgKT87Cj4+IMKgwqDCoMKgwqAgT2soanNvbiEo dXBpZCkpCj4+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi9hZG1pbi9zeW5jLnJzIGIvc3JjL2FwaTIv YWRtaW4vc3luYy5ycwo+PiBpbmRleCA2NzIyZWJlYTAuLjAxZGVhNTEyNiAxMDA2NDQKPj4gLS0t IGEvc3JjL2FwaTIvYWRtaW4vc3luYy5ycwo+PiArKysgYi9zcmMvYXBpMi9hZG1pbi9zeW5jLnJz Cj4+IEBAIC0xNjEsNyArMTYxLDcgQEAgcHViIGZuIHJ1bl9zeW5jX2pvYigKPj4gwqDCoMKgwqDC oCBsZXQgdG9fc3Rkb3V0ID0gcnBjZW52LmVudl90eXBlKCkgPT0gUnBjRW52aXJvbm1lbnRUeXBl OjpDTEk7Cj4+IC3CoMKgwqAgbGV0IHVwaWRfc3RyID0gZG9fc3luY19qb2Ioam9iLCBzeW5jX2pv YiwgJmF1dGhfaWQsIE5vbmUsIAo+PiB0b19zdGRvdXQpPzsKPj4gK8KgwqDCoCBsZXQgKHVwaWRf c3RyLCBfKSA9IGRvX3N5bmNfam9iKGpvYiwgc3luY19qb2IsICZhdXRoX2lkLCBOb25lLCAKPj4g dG9fc3Rkb3V0KT87Cj4+IMKgwqDCoMKgwqAgT2sodXBpZF9zdHIpCj4+IMKgIH0KPj4gZGlmZiAt LWdpdCBhL3NyYy9zZXJ2ZXIvc3luYy5ycyBiL3NyYy9zZXJ2ZXIvc3luYy5ycwo+PiBpbmRleCAw OTgxNGVmMGMuLmM0NWE4OTc1ZSAxMDA2NDQKPj4gLS0tIGEvc3JjL3NlcnZlci9zeW5jLnJzCj4+ ICsrKyBiL3NyYy9zZXJ2ZXIvc3luYy5ycwo+PiBAQCAtMTIsNiArMTIsNyBAQCB1c2UgZnV0dXJl czo6e2Z1dHVyZTo6RnV0dXJlRXh0LCBzZWxlY3R9Owo+PiDCoCB1c2UgaHlwZXI6Omh0dHA6OlN0 YXR1c0NvZGU7Cj4+IMKgIHVzZSBwYnNfY29uZmlnOjpCYWNrdXBMb2NrR3VhcmQ7Cj4+IMKgIHVz ZSBzZXJkZV9qc29uOjpqc29uOwo+PiArdXNlIHRva2lvOjp0YXNrOjpKb2luSGFuZGxlOwo+PiDC oCB1c2UgdHJhY2luZzo6e2luZm8sIHdhcm59Owo+PiDCoCB1c2UgcHJveG1veF9odW1hbl9ieXRl OjpIdW1hbkJ5dGU7Cj4+IEBAIC01OTgsNyArNTk5LDcgQEAgcHViIGZuIGRvX3N5bmNfam9iKAo+ PiDCoMKgwqDCoMKgIGF1dGhfaWQ6ICZBdXRoaWQsCj4+IMKgwqDCoMKgwqAgc2NoZWR1bGU6IE9w dGlvbjxTdHJpbmc+LAo+PiDCoMKgwqDCoMKgIHRvX3N0ZG91dDogYm9vbCwKPj4gLSkgLT4gUmVz dWx0PFN0cmluZywgRXJyb3I+IHsKPj4gKykgLT4gUmVzdWx0PChTdHJpbmcsIEpvaW5IYW5kbGU8 KCk+KSwgRXJyb3I+IHsKPj4gwqDCoMKgwqDCoCBsZXQgam9iX2lkID0gZm9ybWF0ISgKPj4gwqDC oMKgwqDCoMKgwqDCoMKgICJ7fTp7fTp7fTp7fTp7fSIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBz eW5jX2pvYi5yZW1vdGUuYXNfZGVyZWYoKS51bndyYXBfb3IoIi0iKSwKPj4gQEAgLTYxNCw3ICs2 MTUsNyBAQCBwdWIgZm4gZG9fc3luY19qb2IoCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBiYWlsISgi Y2FuJ3Qgc3luYyB0byBzYW1lIGRhdGFzdG9yZSIpOwo+PiDCoMKgwqDCoMKgIH0KPj4gLcKgwqDC oCBsZXQgdXBpZF9zdHIgPSBXb3JrZXJUYXNrOjpzcGF3bigKPj4gK8KgwqDCoCBsZXQgKHVwaWRf c3RyLCBoYW5kbGUpID0gV29ya2VyVGFzazo6c3Bhd25fd2l0aF9oYW5kbGUoCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCAmd29ya2VyX3R5cGUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBTb21lKGpvYl9p ZC5jbG9uZSgpKSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGF1dGhfaWQudG9fc3RyaW5nKCksCj4+ IEBAIC03MzAsNyArNzMxLDcgQEAgcHViIGZuIGRvX3N5bmNfam9iKAo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgfSwKPj4gwqDCoMKgwqDCoCApPzsKPj4gLcKgwqDCoCBPayh1cGlkX3N0cikKPj4gK8Kg wqDCoCBPaygodXBpZF9zdHIsIGhhbmRsZSkpCj4+IMKgIH0KPj4gwqAgcHViKHN1cGVyKSBmbiBp Z25vcmVfbm90X3ZlcmlmaWVkX29yX2VuY3J5cHRlZCgKPiAKCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMt ZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmlu L21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==