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 65DC91FF191 for ; Tue, 7 Oct 2025 14:51:41 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7FF901869C; Tue, 7 Oct 2025 14:51:45 +0200 (CEST) Date: Tue, 7 Oct 2025 14:51:09 +0200 From: Wolfgang Bumiller To: Dominik Csapak Message-ID: References: <20251003085045.1346864-1-d.csapak@proxmox.com> <20251003085045.1346864-8-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20251003085045.1346864-8-d.csapak@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1759841440158 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.076 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 KAM_SHORT 0.001 Use of a URL Shortener for very short URL 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 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [docs.rs, datastore.rs] Subject: Re: [pbs-devel] [PATCH proxmox-backup 6/6] api: admin: datastore: implement streaming content api call 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 Cc: pbs-devel@lists.proxmox.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" T24gRnJpLCBPY3QgMDMsIDIwMjUgYXQgMTA6NTA6MzlBTSArMDIwMCwgRG9taW5payBDc2FwYWsg d3JvdGU6Cj4gdGhpcyBpcyBhIG5ldyBhcGkgY2FsbCB0aGF0IHV0aWxpemVzIGBhc3luYy1zdHJl YW1gIHRvZ2V0aGVyIHdpdGgKPiBgcHJveG1veF9yb3V0ZXI6OlN0cmVhbWAgdG8gcHJvdmlkZSBh IHN0cmVhbWluZyBpbnRlcmZhY2UgdG8gcXVlcnlpbmcKPiB0aGUgZGF0YXN0b3JlIGNvbnRlbnQu Cj4gCj4gVGhpcyBjYW4gYmUgZG9uZSB3aGVuIGEgY2xpZW50IHJldXFlc3RzIHRoaXMgYXBpIGNh bGwgd2l0aCB0aGUKPiBgYXBwbGljYXRpb24vanNvbi1zZXFgIEFjY2VwdCBoZWFkZXIuCj4gCj4g SW4gY29udHJhc3QgdG8gdGhlIGV4aXN0aW5nIGFwaSBjYWxscywgdGhpcyBvbmUKPiAqIHJldHVy bnMgYWxsIHR5cGVzIG9mIGNvbnRlbnQgaXRlbXMgKG5hbWVzcGFjZXMsIGdyb3Vwcywgc25hcHNo b3RzOyBjYW4KPiAgIGJlIGZpbHRlcmVkIHdpdGggYSBwYXJhbWV0ZXIpCj4gKiBpdGVyYXRlcyBv dmVyIHRoZW0gcmVjdXJzaXZlbHkgKHdpdGggdGhlIHJhbmdlIHRoYXQgaXMgZ2l2ZW4gd2l0aCB0 aGUKPiAgIHBhcmFtZXRlcikKPiAKPiBUaGUgYXBpIGNhbGwgcmV0dXJucyB0aGUgZGF0YSBpbiB0 aGUgZm9sbG93aW5nIG9yZGVyOgo+ICogZmlyc3QgYWxsIHZpc2libGUgbmFtZXNwYWNlcwo+ICog dGhlbiBmb3IgZWFjaCBucyBpbiBvcmRlcgo+ICAgKiBlYWNoIGdyb3VwCj4gICAqIGVhY2ggc25h cHNob3QKPiAKPiBUaGlzIGlzIGRvbmUgc28gdGhhdCB3ZSBjYW4gaGF2ZSBhIGdvb2Qgd2F5IG9m IGJ1aWxkaW5nIGEgdHJlZSB2aWV3IGluCj4gdGhlIHVpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IERv bWluaWsgQ3NhcGFrIDxkLmNzYXBha0Bwcm94bW94LmNvbT4KPiAtLS0KPiBUaGlzIHNob3VsZCBi ZSB0aG91cm91Z2hseSBjaGVja2VkIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4gSSBkaWQgaXQgdG8K PiB0aGUgYmVzdCBvZiBteSBhYmlsaXR5LCBidXQgb2YgY291cnNlIHNvbWUgYnVnL2lzc3VlIGNv dWxkIGhhdmUgY3JlcHQgaW4uCj4gCj4gaW50ZXJlc3Rpbmcgc2lkZSBub2RlLCBpbiBteSByYXRo ZXIgbGFyZ2Ugc2V0dXAgd2l0aCB+NjAwIGdyb3VwcyBhbmQgfjEwMDAKPiBzbmFwc2hvc3RzIHBl ciBncm91cCwgc3RyZWFtaW5nIHRoaXMgaXMgZmFzdGVyIHRoYW4gdXNpbmcgdGhlIGN1cnJlbnQK PiBgc25hcHNob3RgIGFwaSAoYnkgYSBsb3QpOgo+ICogYHNuYXBzaG90YCBhcGkgLT4gfjMgbWlu Cj4gKiBgY29udGVudGAgYXBpIHdpdGggc3RyZWFtaW5nIC0+IH4yOjExIG1pbgo+ICogYGNvbnRl bnRgIGFwaSB3aXRob3V0IHN0cmVhbWluZyAtPiB+MyBtaW4KPiAKPiBJdCBzZWVtcyB0aGF0IGVp dGhlciBjb2xsZWN0aW5nIHN1Y2ggYSAnbGFyZ2UnIGFwaSByZXNwb25zZSAofjIwME1pQikKPiBp cyBleHBlbnNpdmUuIE15IGd1ZXNzZXMgd2hhdCBoYXBwZW5zIGhlcmUgYXJlIGVpdGhlcjoKPiAq IGZyZXF1ZW50IChyZSlhbGxvY2F0aW9uIG9mIHRoZSByZXN1bHRpbmcgdmVjCj4gKiBvciBzZXJk ZSdzIHNlcmlhbGl6aW5nIGNvZGUKPiAKPiBidXQgdGhlIGNvc3Qgc2VlbXMgc3RpbGwgcHJldHR5 IGhpZ2ggZm9yIHRoYXQuCj4gTE1LIGlmIGkgc2hvdWxkIGZ1cnRoZXIgaW52ZXN0aWdhdGUgdGhp cy4KPiAKPiAgQ2FyZ28udG9tbCAgICAgICAgICAgICAgICAgIHwgICAyICsKPiAgc3JjL2FwaTIv YWRtaW4vZGF0YXN0b3JlLnJzIHwgMjAxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDE3NiBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvQ2FyZ28udG9tbCBiL0NhcmdvLnRvbWwKPiBpbmRleCBiM2Y1 NWI0ZGIuLjIxZWIyOTNiYSAxMDA2NDQKPiAtLS0gYS9DYXJnby50b21sCj4gKysrIGIvQ2FyZ28u dG9tbAo+IEBAIC0xMTQsNiArMTE0LDcgQEAgcGJzLXRvb2xzID0geyBwYXRoID0gInBicy10b29s cyIgfQo+ICAKPiAgIyByZWd1bGFyIGNyYXRlcwo+ICBhbnlob3cgPSAiMS4wIgo+ICthc3luYy1z dHJlYW0gPSAiMC4zIgo+ICBhc3luYy10cmFpdCA9ICIwLjEuNTYiCj4gIGFwdC1wa2ctbmF0aXZl ID0gIjAuMy4yIgo+ICBiaXRmbGFncyA9ICIyLjQiCj4gQEAgLTE2OCw2ICsxNjksNyBAQCB6c3Rk LXNhZmUgPSAiNyIKPiAgW2RlcGVuZGVuY2llc10KPiAgYW55aG93LndvcmtzcGFjZSA9IHRydWUK PiAgYXN5bmMtdHJhaXQud29ya3NwYWNlID0gdHJ1ZQo+ICthc3luYy1zdHJlYW0ud29ya3NwYWNl ID0gdHJ1ZQo+ICBieXRlcy53b3Jrc3BhY2UgPSB0cnVlCj4gIGNpZHIud29ya3NwYWNlID0gdHJ1 ZQo+ICBjb25zdF9mb3JtYXQud29ya3NwYWNlID0gdHJ1ZQo+IGRpZmYgLS1naXQgYS9zcmMvYXBp Mi9hZG1pbi9kYXRhc3RvcmUucnMgYi9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPiBpbmRl eCAyMjUyZGNmYTQuLmJmOTRmNjQwMCAxMDA2NDQKPiAtLS0gYS9zcmMvYXBpMi9hZG1pbi9kYXRh c3RvcmUucnMKPiArKysgYi9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPiBAQCAtMjMsNyAr MjMsNyBAQCB1c2UgcHJveG1veF9jb21wcmVzc2lvbjo6enN0ZDo6WnN0ZEVuY29kZXI7Cj4gIHVz ZSBwcm94bW94X2xvZzo6TG9nQ29udGV4dDsKPiAgdXNlIHByb3htb3hfcm91dGVyOjp7Cj4gICAg ICBodHRwX2VyciwgbGlzdF9zdWJkaXJzX2FwaV9tZXRob2QsIEFwaUhhbmRsZXIsIEFwaU1ldGhv ZCwgQXBpUmVzcG9uc2VGdXR1cmUsIFBlcm1pc3Npb24sCj4gLSAgICBSb3V0ZXIsIFJwY0Vudmly b25tZW50LCBScGNFbnZpcm9ubWVudFR5cGUsIFN1YmRpck1hcCwKPiArICAgIFJlY29yZCwgUm91 dGVyLCBScGNFbnZpcm9ubWVudCwgUnBjRW52aXJvbm1lbnRUeXBlLCBTdWJkaXJNYXAsCj4gIH07 Cj4gIHVzZSBwcm94bW94X3JyZF9hcGlfdHlwZXM6OntScmRNb2RlLCBScmRUaW1lZnJhbWV9Owo+ ICB1c2UgcHJveG1veF9zY2hlbWE6Oio7Cj4gQEAgLTM5LDE1ICszOSwxNiBAQCB1c2UgcHhhcjo6 RW50cnlLaW5kOwo+ICAKPiAgdXNlIHBic19hcGlfdHlwZXM6OnsKPiAgICAgIHByaW50X25zX2Fu ZF9zbmFwc2hvdCwgcHJpbnRfc3RvcmVfYW5kX25zLCBBcmNoaXZlVHlwZSwgQXV0aGlkLCBCYWNr dXBBcmNoaXZlTmFtZSwKPiAtICAgIEJhY2t1cENvbnRlbnQsIEJhY2t1cEdyb3VwRGVsZXRlU3Rh dHMsIEJhY2t1cE5hbWVzcGFjZSwgQmFja3VwVHlwZSwgQ291bnRzLCBDcnlwdE1vZGUsCj4gLSAg ICBEYXRhU3RvcmVDb25maWcsIERhdGFTdG9yZUxpc3RJdGVtLCBEYXRhU3RvcmVNb3VudFN0YXR1 cywgRGF0YVN0b3JlU3RhdHVzLAo+IC0gICAgR2FyYmFnZUNvbGxlY3Rpb25Kb2JTdGF0dXMsIEdy b3VwTGlzdEl0ZW0sIEpvYlNjaGVkdWxlU3RhdHVzLCBLZWVwT3B0aW9ucywgTWFpbnRlbmFuY2VN b2RlLAo+IC0gICAgTWFpbnRlbmFuY2VUeXBlLCBPcGVyYXRpb24sIFBydW5lSm9iT3B0aW9ucywg U25hcHNob3RMaXN0SXRlbSwgU3luY0pvYkNvbmZpZywKPiAtICAgIEJBQ0tVUF9BUkNISVZFX05B TUVfU0NIRU1BLCBCQUNLVVBfSURfU0NIRU1BLCBCQUNLVVBfTkFNRVNQQUNFX1NDSEVNQSwgQkFD S1VQX1RJTUVfU0NIRU1BLAo+IC0gICAgQkFDS1VQX1RZUEVfU0NIRU1BLCBDQVRBTE9HX05BTUUs IENMSUVOVF9MT0dfQkxPQl9OQU1FLCBEQVRBU1RPUkVfU0NIRU1BLAo+IC0gICAgSUdOT1JFX1ZF UklGSUVEX0JBQ0tVUFNfU0NIRU1BLCBNQVhfTkFNRVNQQUNFX0RFUFRILCBOU19NQVhfREVQVEhf U0NIRU1BLCBQUklWX0RBVEFTVE9SRV9BVURJVCwKPiAtICAgIFBSSVZfREFUQVNUT1JFX0JBQ0tV UCwgUFJJVl9EQVRBU1RPUkVfTU9ESUZZLCBQUklWX0RBVEFTVE9SRV9QUlVORSwgUFJJVl9EQVRB U1RPUkVfUkVBRCwKPiAtICAgIFBSSVZfREFUQVNUT1JFX1ZFUklGWSwgUFJJVl9TWVNfTU9ESUZZ LCBVUElELCBVUElEX1NDSEVNQSwgVkVSSUZJQ0FUSU9OX09VVERBVEVEX0FGVEVSX1NDSEVNQSwK PiArICAgIEJhY2t1cENvbnRlbnQsIEJhY2t1cEdyb3VwRGVsZXRlU3RhdHMsIEJhY2t1cE5hbWVz cGFjZSwgQmFja3VwVHlwZSwgQ29udGVudExpc3RJdGVtLAo+ICsgICAgQ29udGVudFR5cGUsIENv dW50cywgQ3J5cHRNb2RlLCBEYXRhU3RvcmVDb25maWcsIERhdGFTdG9yZUxpc3RJdGVtLCBEYXRh U3RvcmVNb3VudFN0YXR1cywKPiArICAgIERhdGFTdG9yZVN0YXR1cywgR2FyYmFnZUNvbGxlY3Rp b25Kb2JTdGF0dXMsIEdyb3VwTGlzdEl0ZW0sIEpvYlNjaGVkdWxlU3RhdHVzLCBLZWVwT3B0aW9u cywKPiArICAgIE1haW50ZW5hbmNlTW9kZSwgTWFpbnRlbmFuY2VUeXBlLCBOYW1lc3BhY2VMaXN0 SXRlbSwgT3BlcmF0aW9uLCBQcnVuZUpvYk9wdGlvbnMsCj4gKyAgICBTbmFwc2hvdExpc3RJdGVt LCBTeW5jSm9iQ29uZmlnLCBCQUNLVVBfQVJDSElWRV9OQU1FX1NDSEVNQSwgQkFDS1VQX0lEX1ND SEVNQSwKPiArICAgIEJBQ0tVUF9OQU1FU1BBQ0VfU0NIRU1BLCBCQUNLVVBfVElNRV9TQ0hFTUEs IEJBQ0tVUF9UWVBFX1NDSEVNQSwgQ0FUQUxPR19OQU1FLAo+ICsgICAgQ0xJRU5UX0xPR19CTE9C X05BTUUsIERBVEFTVE9SRV9TQ0hFTUEsIElHTk9SRV9WRVJJRklFRF9CQUNLVVBTX1NDSEVNQSwg TUFYX05BTUVTUEFDRV9ERVBUSCwKPiArICAgIE5TX01BWF9ERVBUSF9TQ0hFTUEsIFBSSVZfREFU QVNUT1JFX0FVRElULCBQUklWX0RBVEFTVE9SRV9CQUNLVVAsIFBSSVZfREFUQVNUT1JFX01PRElG WSwKPiArICAgIFBSSVZfREFUQVNUT1JFX1BSVU5FLCBQUklWX0RBVEFTVE9SRV9SRUFELCBQUklW X0RBVEFTVE9SRV9WRVJJRlksIFBSSVZfU1lTX01PRElGWSwgVVBJRCwKPiArICAgIFVQSURfU0NI RU1BLCBWRVJJRklDQVRJT05fT1VUREFURURfQUZURVJfU0NIRU1BLAoKQW5kIG1vcmUgcmVhc29u cyB3aHkgW3RoaXNdWzFdICpyZWFsbHkqIG5lZWRzIGF0IGxlYXN0ICpwYXJ0aWFsKgpzdGFiaWxp emF0aW9uIHNvIHdlIGNhbiBzd2l0Y2ggdG8gYEl0ZW1gIGxldmVsIGltcG9ydHMuIPCfmYQKClsx XSBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3RmbXQvaXNzdWVzLzQ5OTEjaXNzdWVj b21tZW50LTMzNjk3OTI0MTIKCj4gIH07Cj4gIHVzZSBwYnNfY2xpZW50OjpweGFyOjp7Y3JlYXRl X3RhciwgY3JlYXRlX3ppcH07Cj4gIHVzZSBwYnNfY29uZmlnOjpDYWNoZWRVc2VySW5mbzsKPiBA QCAtNzAsNyArNzEsMTAgQEAgdXNlIHByb3htb3hfcmVzdF9zZXJ2ZXI6Ontmb3JtYXR0ZXIsIHdv cmtlcl9pc19hY3RpdmUsIFdvcmtlclRhc2t9Owo+ICAKPiAgdXNlIGNyYXRlOjphcGkyOjpiYWNr dXA6Om9wdGlvbmFsX25zX3BhcmFtOwo+ICB1c2UgY3JhdGU6OmFwaTI6Om5vZGU6OnJyZDo6Y3Jl YXRlX3ZhbHVlX2Zyb21fcnJkOwo+IC11c2UgY3JhdGU6OmJhY2t1cDo6e2NoZWNrX25zX3ByaXZz X2Z1bGwsIExpc3RBY2Nlc3NpYmxlQmFja3VwR3JvdXBzLCBWZXJpZnlXb3JrZXIsIE5TX1BSSVZT X09LfTsKPiArdXNlIGNyYXRlOjpiYWNrdXA6OnsKPiArICAgIGNhbl9hY2Nlc3NfYW55X25hbWVz cGFjZV9pbl9yYW5nZSwgY2hlY2tfbnNfcHJpdnMsIGNoZWNrX25zX3ByaXZzX2Z1bGwsCj4gKyAg ICBMaXN0QWNjZXNzaWJsZUJhY2t1cEdyb3VwcywgVmVyaWZ5V29ya2VyLCBOU19QUklWU19PSywK PiArfTsKPiAgdXNlIGNyYXRlOjpzZXJ2ZXI6OmpvYnN0YXRlOjp7Y29tcHV0ZV9zY2hlZHVsZV9z dGF0dXMsIEpvYiwgSm9iU3RhdGV9Owo+ICB1c2UgY3JhdGU6OnRvb2xzOjp7YmFja3VwX2luZm9f dG9fc25hcHNob3RfbGlzdF9pdGVtLCBnZXRfYWxsX3NuYXBzaG90X2ZpbGVzLCByZWFkX2JhY2t1 cF9pbmRleH07Cj4gIAo+IEBAIC0zOTYsNyArNDAwLDcgQEAgcHViIGFzeW5jIGZuIGRlbGV0ZV9z bmFwc2hvdCgKPiAgfQo+ICAKPiAgI1thcGkoCj4gLSAgICBzZXJpYWxpemluZzogdHJ1ZSwKPiAr ICAgIHN0cmVhbTogdHJ1ZSwKPiAgICAgIGlucHV0OiB7Cj4gICAgICAgICAgcHJvcGVydGllczog ewo+ICAgICAgICAgICAgICBzdG9yZTogeyBzY2hlbWE6IERBVEFTVE9SRV9TQ0hFTUEgfSwKPiBA QCAtNDA0LDQwICs0MDgsMTM3IEBAIHB1YiBhc3luYyBmbiBkZWxldGVfc25hcHNob3QoCj4gICAg ICAgICAgICAgICAgICB0eXBlOiBCYWNrdXBOYW1lc3BhY2UsCj4gICAgICAgICAgICAgICAgICBv cHRpb25hbDogdHJ1ZSwKPiAgICAgICAgICAgICAgfSwKPiAtICAgICAgICAgICAgImJhY2t1cC10 eXBlIjogewo+ICsgICAgICAgICAgICAibWF4LWRlcHRoIjogewo+ICsgICAgICAgICAgICAgICAg c2NoZW1hOiBOU19NQVhfREVQVEhfU0NIRU1BLAo+ICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6 IHRydWUsCj4gLSAgICAgICAgICAgICAgICB0eXBlOiBCYWNrdXBUeXBlLAo+ICAgICAgICAgICAg ICB9LAo+IC0gICAgICAgICAgICAiYmFja3VwLWlkIjogewo+ICsgICAgICAgICAgICAiY29udGVu dC10eXBlIjogewo+ICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCj4gLSAgICAgICAg ICAgICAgICBzY2hlbWE6IEJBQ0tVUF9JRF9TQ0hFTUEsCj4gKyAgICAgICAgICAgICAgICB0eXBl OiBDb250ZW50VHlwZSwKPiAgICAgICAgICAgICAgfSwKPiAgICAgICAgICB9LAo+ICAgICAgfSwK PiAtICAgIHJldHVybnM6IHBic19hcGlfdHlwZXM6OkFETUlOX0RBVEFTVE9SRV9MSVNUX1NOQVBT SE9UU19SRVRVUk5fVFlQRSwKPiAgICAgIGFjY2Vzczogewo+ICAgICAgICAgIHBlcm1pc3Npb246 ICZQZXJtaXNzaW9uOjpBbnlib2R5LAo+ICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUmVxdWlyZXMg b24gL2RhdGFzdG9yZS97c3RvcmV9Wy97bmFtZXNwYWNlfV0gZWl0aGVyIERBVEFTVE9SRV9BVURJ VCBmb3IgYW55IFwKPiAgICAgICAgICAgICAgb3IgREFUQVNUT1JFX0JBQ0tVUCBhbmQgYmVpbmcg dGhlIG93bmVyIG9mIHRoZSBncm91cCIsCj4gICAgICB9LAo+ICApXQo+IC0vLy8gTGlzdCBiYWNr dXAgc25hcHNob3RzLgo+IC1wdWIgYXN5bmMgZm4gbGlzdF9zbmFwc2hvdHMoCj4gKy8vLyBMaXN0 IGRhdGFzdG9yZSBjb250ZW50LCByZWN1cnNpdmVseSB0aHJvdWdoIGFsbCBuYW1lc3BhY2VzLgo+ ICtwdWIgYXN5bmMgZm4gbGlzdF9jb250ZW50KAo+ICAgICAgc3RvcmU6IFN0cmluZywKPiAgICAg IG5zOiBPcHRpb248QmFja3VwTmFtZXNwYWNlPiwKPiAtICAgIGJhY2t1cF90eXBlOiBPcHRpb248 QmFja3VwVHlwZT4sCj4gLSAgICBiYWNrdXBfaWQ6IE9wdGlvbjxTdHJpbmc+LAo+ICsgICAgbWF4 X2RlcHRoOiBPcHRpb248dXNpemU+LAo+ICsgICAgY29udGVudF90eXBlOiBPcHRpb248Q29udGVu dFR5cGU+LAo+ICAgICAgX3BhcmFtOiBWYWx1ZSwKPiAgICAgIF9pbmZvOiAmQXBpTWV0aG9kLAo+ ICAgICAgcnBjZW52OiAmbXV0IGR5biBScGNFbnZpcm9ubWVudCwKPiAtKSAtPiBSZXN1bHQ8VmVj PFNuYXBzaG90TGlzdEl0ZW0+LCBFcnJvcj4gewo+ICspIC0+IFJlc3VsdDxwcm94bW94X3JvdXRl cjo6U3RyZWFtLCBFcnJvcj4gewo+ICsgICAgbGV0IChzZW5kZXIsIG11dCByZWNlaXZlcikgPSB0 b2tpbzo6c3luYzo6bXBzYzo6Y2hhbm5lbCgxMjgpOwo+ICsKPiAgICAgIGxldCBhdXRoX2lkOiBB dXRoaWQgPSBycGNlbnYuZ2V0X2F1dGhfaWQoKS51bndyYXAoKS5wYXJzZSgpPzsKPiArICAgIGxl dCB1c2VyX2luZm8gPSBDYWNoZWRVc2VySW5mbzo6bmV3KCk/Owo+ICAKPiAtICAgIHRva2lvOjp0 YXNrOjpzcGF3bl9ibG9ja2luZyhtb3ZlIHx8IHVuc2FmZSB7Cj4gLSAgICAgICAgbGlzdF9zbmFw c2hvdHNfYmxvY2tpbmcoc3RvcmUsIG5zLCBiYWNrdXBfdHlwZSwgYmFja3VwX2lkLCBhdXRoX2lk KQo+IC0gICAgfSkKPiAtICAgIC5hd2FpdAo+IC0gICAgLm1hcF9lcnIofGVycnwgZm9ybWF0X2Vy ciEoImZhaWxlZCB0byBhd2FpdCBibG9ja2luZyB0YXNrOiB7ZXJyfSIpKT8KPiArICAgIGxldCBk YXRhc3RvcmUgPSBEYXRhU3RvcmU6Omxvb2t1cF9kYXRhc3RvcmUoJnN0b3JlLCBTb21lKE9wZXJh dGlvbjo6UmVhZCkpPzsKPiArICAgIGlmICFjYW5fYWNjZXNzX2FueV9uYW1lc3BhY2VfaW5fcmFu Z2UoCj4gKyAgICAgICAgZGF0YXN0b3JlLmNsb25lKCksCj4gKyAgICAgICAgJmF1dGhfaWQsCj4g KyAgICAgICAgJnVzZXJfaW5mbywKPiArICAgICAgICBucy5jbG9uZSgpLAo+ICsgICAgICAgIG1h eF9kZXB0aCwKPiArICAgICkgewo+ICsgICAgICAgIHByb3htb3hfcm91dGVyOjpodHRwX2JhaWwh KEZPUkJJRERFTiwgInBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIik7Cj4gKyAgICB9Cj4gKwo+ICsg ICAgbGV0IG5zID0gbnMudW53cmFwX29yX2RlZmF1bHQoKTsKPiArCj4gKyAgICBsZXQgKGxpc3Rf bnMsIGxpc3RfZ3JvdXAsIGxpc3Rfc25hcHNob3RzKSA9IG1hdGNoIGNvbnRlbnRfdHlwZSB7Cj4g KyAgICAgICAgU29tZShDb250ZW50VHlwZTo6TmFtZXNwYWNlKSA9PiAodHJ1ZSwgZmFsc2UsIGZh bHNlKSwKPiArICAgICAgICBTb21lKENvbnRlbnRUeXBlOjpHcm91cCkgPT4gKGZhbHNlLCB0cnVl LCBmYWxzZSksCj4gKyAgICAgICAgU29tZShDb250ZW50VHlwZTo6U25hcHNob3QpID0+IChmYWxz ZSwgZmFsc2UsIHRydWUpLAo+ICsgICAgICAgIE5vbmUgPT4gKHRydWUsIHRydWUsIHRydWUpLAo+ ICsgICAgfTsKPiArCj4gKyAgICB0b2tpbzo6c3Bhd24oYXN5bmMgbW92ZSB7CgpBcyBUaG9tYXMg YWxyZWFkeSBwb2ludGVkIG91dCwgeW91IGRvbid0IG5lZWQgdG8gd3JhcCB0aGUKYHNwYXduX2Js b2NraW5nYCBmdXR1cmUgYXMgd2hhdCBhbW91bnRzIHRvIGFuIGBhc3luYyB7IGZ1dC5hd2FpdCB9 YC4KCkJ1dCBhbHNvLCBzZWUgdGhlIFt0b2tpbyBkb2NzXVsyXSBvbiBgSm9pbkhhbmRsZWA6Cgog ICAgQSBKb2luSGFuZGxlIGRldGFjaGVzIHRoZSBhc3NvY2lhdGVkIHRhc2sgd2hlbiBpdCBpcyBk cm9wcGVkCgpzbyB5b3UgY2FuIHNraXAgdGhlIGVudGlyZSBhYm92ZSBsaW5lLgoKWzJdOiBodHRw czovL2RvY3MucnMvdG9raW8vbGF0ZXN0L3Rva2lvL3Rhc2svc3RydWN0LkpvaW5IYW5kbGUuaHRt bAoKPiArICAgICAgICB0b2tpbzo6dGFzazo6c3Bhd25fYmxvY2tpbmcobW92ZSB8fCB7Cj4gKyAg ICAgICAgICAgIGlmIGxpc3RfbnMgewo+ICsgICAgICAgICAgICAgICAgZm9yIG5zIGluIGRhdGFz dG9yZS5yZWN1cnNpdmVfaXRlcl9iYWNrdXBfbnNfb2sobnMuY2xvbmUoKSwgbWF4X2RlcHRoKT8g ewo+ICsgICAgICAgICAgICAgICAgICAgIG1hdGNoIGNoZWNrX25zX3ByaXZzKCZzdG9yZSwgJm5z LCAmYXV0aF9pZCwgTlNfUFJJVlNfT0spIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgT2so XykgPT4gc2VuZGVyLmJsb2NraW5nX3NlbmQoUmVjb3JkOjpuZXcoQ29udGVudExpc3RJdGVtOjpm cm9tKAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZXNwYWNlTGlzdEl0ZW0geyBu cywgY29tbWVudDogTm9uZSB9LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICApKSk/LAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBFcnIoXykgPT4gY29udGludWUsCgpOb3RlIHRoYXQgaW4g dGhlIGN1cnJlbnQgc3RyZWFtaW5nIGFyY2hpdGVjdHVyZSB0aGUgcmVjb3JkcyBjYW4gYWxzbyBi ZQplcnJvciB2YWx1ZXMsIHNvIHlvdSBtYXkgd2FudCB0byBjb25zaWRlciBwYXNzaW5nIGVycm9y cyB0aHJvdWdoLgpUaGVyZSBhcmUgdmFyaW91cyBoZWxwZXJzOiBgUmVjb3JkOjplcnJvcmAgKGZv ciBzdGQgZXJyb3JzKSwKYFJlY29yZDo6ZXJyb3JfbXNnYCwgb3IgYFJlY29yZDo6ZXJyb3JfdmFs dWVgIGlmIHlvdSBuZWVkIHN0cnVjdHVyZWQKZXJyb3JzLgoKPiArICAgICAgICAgICAgICAgICAg ICB9Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAg ICAgIGlmICFsaXN0X2dyb3VwICYmICFsaXN0X3NuYXBzaG90cyB7Cj4gKyAgICAgICAgICAgICAg ICByZXR1cm4gT2soKCkpOwo+ICsgICAgICAgICAgICB9Cj4gKwo+ICsgICAgICAgICAgICBmb3Ig bnMgaW4gZGF0YXN0b3JlLnJlY3Vyc2l2ZV9pdGVyX2JhY2t1cF9uc19vayhucywgbWF4X2RlcHRo KT8gewo+ICsgICAgICAgICAgICAgICAgbGV0IGxpc3RfYWxsID0gbWF0Y2ggY2hlY2tfbnNfcHJp dnNfZnVsbCgKPiArICAgICAgICAgICAgICAgICAgICAmc3RvcmUsCj4gKyAgICAgICAgICAgICAg ICAgICAgJm5zLAo+ICsgICAgICAgICAgICAgICAgICAgICZhdXRoX2lkLAo+ICsgICAgICAgICAg ICAgICAgICAgIFBSSVZfREFUQVNUT1JFX0FVRElULAo+ICsgICAgICAgICAgICAgICAgICAgIFBS SVZfREFUQVNUT1JFX0JBQ0tVUCwKPiArICAgICAgICAgICAgICAgICkgewo+ICsgICAgICAgICAg ICAgICAgICAgIE9rKHJlcXVpcmVzX293bmVyKSA9PiAhcmVxdWlyZXNfb3duZXIsCj4gKyAgICAg ICAgICAgICAgICAgICAgRXJyKF8pID0+IGNvbnRpbnVlLAo+ICsgICAgICAgICAgICAgICAgfTsK PiArICAgICAgICAgICAgICAgIGlmIGxpc3RfZ3JvdXAgewo+ICsgICAgICAgICAgICAgICAgICAg IGZvciBncm91cCBpbiBkYXRhc3RvcmUuaXRlcl9iYWNrdXBfZ3JvdXBzKG5zLmNsb25lKCkpPyB7 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBncm91cCA9IGdyb3VwPzsKCl4gVGhlIGFi b3ZlIDIgYD9gIG1heSBhbHNvIGJlIGNhc2VzIHdoZXJlIGl0IHdvdWxkIGJlIGJldHRlciB0byBz ZW5kIGEKYFJlY29yZDo6ZXJyb3JgPwoKVW5sZXNzIHdlIHdhbnQgdGhvc2UgdG8gY2FuY2VsIHRo ZSBlbnRpcmUgcmVzdCBvZiB0aGUgc3RyZWFtPwoKPiArICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGdyb3VwID0gYmFja3VwX2dyb3VwX3RvX2dyb3VwX2xpc3RfaXRlbSgKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFzdG9yZS5jbG9uZSgpLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3JvdXAsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbnMsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXV0aF9pZCwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpc3RfYWxsLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICApOwo+ICsK PiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUoZ3JvdXApID0gZ3JvdXAgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZGVyLmJsb2NraW5nX3NlbmQoUmVjb3Jk OjpuZXcoQ29udGVudExpc3RJdGVtOjpmcm9tKCgKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBucy5jbG9uZSgpLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdy b3VwLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpKT87Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAg ICB9Cj4gKwo+ICsgICAgICAgICAgICAgICAgaWYgIWxpc3Rfc25hcHNob3RzIHsKPiArICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICAgICAgICAgIH0KPiArCj4gKyAgICAg ICAgICAgICAgICBmb3IgZ3JvdXAgaW4gZGF0YXN0b3JlLml0ZXJfYmFja3VwX2dyb3Vwcyhucy5j bG9uZSgpKT8gewo+ICsgICAgICAgICAgICAgICAgICAgIGxldCBncm91cCA9IGdyb3VwPzsKCl4g U2FtZSBoZXJlCgo+ICsgICAgICAgICAgICAgICAgICAgIGxldCBvd25lciA9IG1hdGNoIGdldF9n cm91cF9vd25lcigmc3RvcmUsICZucywgJmdyb3VwKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIFNvbWUoYXV0aF9pZCkgPT4gYXV0aF9pZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAg Tm9uZSA9PiBjb250aW51ZSwKPiArICAgICAgICAgICAgICAgICAgICB9Owo+ICsgICAgICAgICAg ICAgICAgICAgIGZvciBzbmFwc2hvdCBpbiBncm91cC5pdGVyX3NuYXBzaG90cygpPyB7Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBzbmFwc2hvdCA9IEJhY2t1cEluZm86Om5ldyhzbmFw c2hvdD8pPzsKPiArICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNuYXBzaG90ID0gYmFja3Vw X2luZm9fdG9fc25hcHNob3RfbGlzdF9pdGVtKCZzbmFwc2hvdCwgJm93bmVyKTsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgc2VuZGVyLmJsb2NraW5nX3NlbmQoUmVjb3JkOjpuZXcoQ29udGVu dExpc3RJdGVtOjpmcm9tKCgKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5zLmNsb25l KCksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbmFwc2hvdCwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgKSkpKT87Cj4gKyAgICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAg ICAgICAgICAgfQo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIE9rOjo8XywgRXJyb3I+ KCgpKQo+ICsgICAgICAgIH0pCj4gKyAgICAgICAgLmF3YWl0Pz87Cj4gKwo+ICsgICAgICAgIE9r Ojo8XywgRXJyb3I+KCgpKQo+ICsgICAgfSk7Cj4gKyAgICBPayhhc3luY19zdHJlYW06OnRyeV9z dHJlYW0hIHsKPiArICAgICAgICB3aGlsZSBsZXQgU29tZShlbGVtKSA9IHJlY2VpdmVyLnJlY3Yo KS5hd2FpdCB7Cj4gKyAgICAgICAgICAgIHlpZWxkIGVsZW07Cj4gKyAgICAgICAgfQo+ICsgICAg fQo+ICsgICAgLmludG8oKSkKCllvdSBzaG91bGQgYmUgYWJsZSB0byBpbnN0ZWFkIHJldHVybiBg UmVjZWl2ZXJTdHJlYW0ocmVjZWl2ZXIpLmludG8oKWAsCmluc3RlYWQgb2YgdGhpcyBlbnRpcmUg bWFudWFsIGxvb3AuIDstKQoKPiAgfQo+ICAKPiAgZm4gZ2V0X2dyb3VwX293bmVyKAo+IEBAIC01 MjMsNiArNjI0LDUxIEBAIHVuc2FmZSBmbiBsaXN0X3NuYXBzaG90c19ibG9ja2luZygKPiAgICAg IH0pCj4gIH0KPiAgCj4gKyNbYXBpKAo+ICsgICAgc2VyaWFsaXppbmc6IHRydWUsCj4gKyAgICBp bnB1dDogewo+ICsgICAgICAgIHByb3BlcnRpZXM6IHsKPiArICAgICAgICAgICAgc3RvcmU6IHsg c2NoZW1hOiBEQVRBU1RPUkVfU0NIRU1BIH0sCj4gKyAgICAgICAgICAgIG5zOiB7Cj4gKyAgICAg ICAgICAgICAgICB0eXBlOiBCYWNrdXBOYW1lc3BhY2UsCj4gKyAgICAgICAgICAgICAgICBvcHRp b25hbDogdHJ1ZSwKPiArICAgICAgICAgICAgfSwKPiArICAgICAgICAgICAgImJhY2t1cC10eXBl Ijogewo+ICsgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCj4gKyAgICAgICAgICAgICAg ICB0eXBlOiBCYWNrdXBUeXBlLAo+ICsgICAgICAgICAgICB9LAo+ICsgICAgICAgICAgICAiYmFj a3VwLWlkIjogewo+ICsgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCj4gKyAgICAgICAg ICAgICAgICBzY2hlbWE6IEJBQ0tVUF9JRF9TQ0hFTUEsCj4gKyAgICAgICAgICAgIH0sCj4gKyAg ICAgICAgfSwKPiArICAgIH0sCj4gKyAgICByZXR1cm5zOiBwYnNfYXBpX3R5cGVzOjpBRE1JTl9E QVRBU1RPUkVfTElTVF9TTkFQU0hPVFNfUkVUVVJOX1RZUEUsCj4gKyAgICBhY2Nlc3M6IHsKPiAr ICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6QW55Ym9keSwKPiArICAgICAgICBkZXNj cmlwdGlvbjogIlJlcXVpcmVzIG9uIC9kYXRhc3RvcmUve3N0b3JlfVsve25hbWVzcGFjZX1dIGVp dGhlciBEQVRBU1RPUkVfQVVESVQgZm9yIGFueSBcCj4gKyAgICAgICAgICAgIG9yIERBVEFTVE9S RV9CQUNLVVAgYW5kIGJlaW5nIHRoZSBvd25lciBvZiB0aGUgZ3JvdXAiLAo+ICsgICAgfSwKPiAr KV0KPiArLy8vIExpc3QgYmFja3VwIHNuYXBzaG90cy4KPiArcHViIGFzeW5jIGZuIGxpc3Rfc25h cHNob3RzKAo+ICsgICAgc3RvcmU6IFN0cmluZywKPiArICAgIG5zOiBPcHRpb248QmFja3VwTmFt ZXNwYWNlPiwKPiArICAgIGJhY2t1cF90eXBlOiBPcHRpb248QmFja3VwVHlwZT4sCj4gKyAgICBi YWNrdXBfaWQ6IE9wdGlvbjxTdHJpbmc+LAo+ICsgICAgX3BhcmFtOiBWYWx1ZSwKPiArICAgIF9p bmZvOiAmQXBpTWV0aG9kLAo+ICsgICAgcnBjZW52OiAmbXV0IGR5biBScGNFbnZpcm9ubWVudCwK PiArKSAtPiBSZXN1bHQ8VmVjPFNuYXBzaG90TGlzdEl0ZW0+LCBFcnJvcj4gewo+ICsgICAgbGV0 IGF1dGhfaWQ6IEF1dGhpZCA9IHJwY2Vudi5nZXRfYXV0aF9pZCgpLnVud3JhcCgpLnBhcnNlKCk/ Owo+ICsKPiArICAgIHRva2lvOjp0YXNrOjpzcGF3bl9ibG9ja2luZyhtb3ZlIHx8IHVuc2FmZSB7 Cj4gKyAgICAgICAgbGlzdF9zbmFwc2hvdHNfYmxvY2tpbmcoc3RvcmUsIG5zLCBiYWNrdXBfdHlw ZSwgYmFja3VwX2lkLCBhdXRoX2lkKQo+ICsgICAgfSkKPiArICAgIC5hd2FpdAo+ICsgICAgLm1h cF9lcnIofGVycnwgZm9ybWF0X2VyciEoImZhaWxlZCB0byBhd2FpdCBibG9ja2luZyB0YXNrOiB7 ZXJyfSIpKT8KPiArfQo+ICsKPiAgYXN5bmMgZm4gZ2V0X3NuYXBzaG90c19jb3VudCgKPiAgICAg IHN0b3JlOiAmQXJjPERhdGFTdG9yZT4sCj4gICAgICBvd25lcjogT3B0aW9uPCZBdXRoaWQ+LAo+ IEBAIC0yNzczLDYgKzI5MTksNyBAQCBjb25zdCBEQVRBU1RPUkVfSU5GT19TVUJESVJTOiBTdWJk aXJNYXAgPSAmWwo+ICAgICAgICAgICJjaGFuZ2Utb3duZXIiLAo+ICAgICAgICAgICZSb3V0ZXI6 Om5ldygpLnBvc3QoJkFQSV9NRVRIT0RfU0VUX0JBQ0tVUF9PV05FUiksCj4gICAgICApLAo+ICsg ICAgKCJjb250ZW50IiwgJlJvdXRlcjo6bmV3KCkuZ2V0KCZBUElfTUVUSE9EX0xJU1RfQ09OVEVO VCkpLAo+ICAgICAgKAo+ICAgICAgICAgICJkb3dubG9hZCIsCj4gICAgICAgICAgJlJvdXRlcjo6 bmV3KCkuZG93bmxvYWQoJkFQSV9NRVRIT0RfRE9XTkxPQURfRklMRSksCj4gLS0gCj4gMi40Ny4z CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRl dmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0 cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==