From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-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 28F2D1FF164 for <inbox@lore.proxmox.com>; Fri, 14 Feb 2025 12:42:22 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6951218747; Fri, 14 Feb 2025 12:42:20 +0100 (CET) Date: Fri, 14 Feb 2025 12:42:16 +0100 (CET) From: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> To: Ivaylo Markov <ivaylo.markov@storpool.com>, Proxmox VE development discussion <pve-devel@lists.proxmox.com> Message-ID: <709714906.7353.1739533336075@webmail.proxmox.com> In-Reply-To: <dea47906-dd09-40c1-8e28-386d38643a4d@storpool.com> References: <mailman.20.1738673089.293.pve-devel@lists.proxmox.com> <1056258601.696.1738680367183@webmail.proxmox.com> <dea47906-dd09-40c1-8e28-386d38643a4d@storpool.com> MIME-Version: 1.0 X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.6-Rev73 X-Originating-Client: open-xchange-appsuite X-SPAM-LEVEL: Spam detection results: 0 AWL 0.044 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: [pve-devel] StorPool storage plugin concerns X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Cc: nikolay.angelov@storpool.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> PiBJdmF5bG8gTWFya292IDxpdmF5bG8ubWFya292QHN0b3Jwb29sLmNvbT4gaGF0IGFtIDEzLjAy LjIwMjUgMTY6MjEgQ0VUIGdlc2NocmllYmVuOgo+IAo+IE9uIDA0LzAyLzIwMjUgMTY6NDYsIEZh YmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gCj4gPiA+IEl2YXlsbyBNYXJrb3YgdmlhIHB2ZS1k ZXZlbCA8cHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tPiBoYXQgYW0gMDQuMDIuMjAyNSAxMzo0 NCBDRVQgZ2VzY2hyaWViZW46Cj4gPiA+IEdyZWV0aW5ncywKPiA+ID4gCj4gPiA+IEkgd2FzIHBv aW50ZWQgaGVyZSB0byBkaXNjdXNzIHRoZSBTdG9yUG9vbCBzdG9yYWdlIHBsdWdpblswXSB3aXRo IHRoZSAKPiA+ID4gZGV2IHRlYW0uCj4gPiA+IElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHRo ZXJlIGlzIGEgY29uY2VybiB3aXRoIHRoZSBvdXIgSEEgd2F0Y2hkb2cgCj4gPiA+IGRhZW1vbiwg YW5kIEknZCBsaWtlIHRvIGV4cGxhaW4gdGhlIHdoeSBhbmQgaG93Lgo+ID4gPiAKPiA+IEhpIQo+ ID4gCj4gPiBJIGFtIG5vdCBzdXJlIHdoZXRoZXIgdGhlcmUgd2VyZSBwcmV2aW91cyBkaXNjdXNz aW9ucyBvbiBzb21lIG90aGVyIGNoYW5uZWwsIGl0IG1pZ2h0IGJlIGhlbHBmdWwgdG8gaW5jbHVk ZSBwb2ludGVycyB0byB0aGVtIGlmIHRoZXJlIGFyZSEgVGhhbmtzIGZvciByZWFjaGluZyBvdXQg dG8gb3VyIGRldmVsIGxpc3QsIElNSE8gaXQncyBhbHdheXMgYmVzdCB0byBnZXQgdG8gYSBjb21t b24gdW5kZXJzdGFuZGluZyBhbmQgaG9wZWZ1bGx5IGEgc29sdXRpb24gdG9nZXRoZXIsIGluc3Rl YWQgb2Ygb24gb3VyIG93biA6KQo+IEFwb2xvZ2llcyBmb3IgdGhlIGNvbmZ1c2lvbiAtIHRoZXJl IHdhcyBhIGNvbnZlcnNhdGlvbiBhdCB0aGUgbWFuYWdlbWVudCBsZXZlbCBiZXR3ZWVuIGNvbXBh bmllcyBpbiByZWdhcmQgdG8gU3RvclBvb2wgYmVjb21pbmcgYSBzb2x1dGlvbiBwcm92aWRlciBw YXJ0bmVyLCBhbmQgbXkgdW5kZXJzdGFuZGluZyB3YXMgdGhhdCB0aGUgUFZFIHRlYW0gaGFkIHNv bWUgY29uY2VybnMgcmVnYXJkaW5nIHRoZSBIQSBjaGFuZ2VzIGluIG91ciBzdG9yYWdlIHBsdWdp bi4KClllcywgSSBoZWFyZC9mb3VuZCBvdXQgYWJvdXQgdGhhdCBhZnRlciBteSByZXBseSA6KQoK PiAgVGhlIHN0b3JhZ2UgcGx1Z2luIGlzIGZ1bmN0aW9uYWwgYnkgaXRzZWxmIGFuZCBpcyB1c2Vk IGJ5IHNvbWUgY3VzdG9tZXJzIHdpdGggdGhlIHN0b2NrIFBWRSB3YXRjaGRvZyBpbiBub24tSENJ IHNjZW5hcmlvcy4gCj4gIAo+ICBUaGUgcmVwbGFjZW1lbnQgd2F0Y2hkb2cgaXMgc3VwcG9zZWQg dG8gYmUgdXNlZCBvbmx5IGluIFByb3htb3grU3RvclBvb2wgSENJIGRlcGxveW1lbnRzLCB3aGVy ZSBubyBvdGhlciBzdG9yYWdlIGlzIHVzZWQuIEFsbCBvZiB0aGUgZGVwbG95bWVudHMgYXJlIHVu ZGVyIGNvbnRpbnVvdXMgbW9uaXRvcmluZyBieSBvdXIgdGVhbSwgc28gd2UgY2FuIHB1dCBndWFy ZCByYWlscyBpbiB0byBhdm9pZCB1bnN1cHBvcnRlZCBjb25maWd1cmF0aW9ucy4gV2UgdGFrZSB0 aGUgcmVzcG9uc2liaWxpdHkgZm9yIGRlYnVnZ2luZyBIQSBpc3N1ZXMgaW4gdGhlc2UgZGVwbG95 bWVudHMuCj4gIEl0IGlzIGRldmVsb3BlZCBhbmQgdGVzdGVkIGJ5IHVzIGFuZCBpdCBpcyBpbiB1 c2UgaW4gcHJvZHVjdGlvbiBieSBhIGNvdXBsZSBvZiBjdXN0b21lcnMuCj4gIAo+ICBJdCBtYWtl cyBzZW5zZSB0byBtb3ZlIHRoZSBIQ0ktc3BlY2lmaWMgd2F0Y2hkb2cgZnVuY3Rpb25hbGl0eSBp biBhIHNlcGFyYXRlIHJlcG8sIHNvIHRoYXQgdGhlIHN0b3JhZ2UgcGx1Z2luIHJlcG8gaXMgY2xl YW5lci4gV2Ugd2lsbCBkbyBzbyBzaG9ydGx5LgoKVGhhdCBpcyBwcm9iYWJseSBhIGdvb2QgaWRl YSwgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXRoZXIganVzdCB1c2luZyB0aGUgc3RvcmFnZSAo Y2xpZW50KSBwYXJ0LCBvciB0aGUgZnVsbCBIQ0ktd2l0aC1hbHRlcm5hdGUtSEEtc2VtYW50aWNz IHBhY2thZ2UsIGFuZCBoYXJkZXIgdG8gaW50cm9kdWNlIGFjY2lkZW50YWwgaW50ZXJkZXBlbmRl bmNpZXMgYmV0d2VlbiB0aGUgdHdvLgoKPiA+ID4gQXMgYSBkaXN0cmlidXRlZCBzdG9yYWdlIHN5 c3RlbSwgU3RvclBvb2wgaGFzIGl0cyBvd24gaW50ZXJuYWwgCj4gPiA+IGNsdXN0ZXJpbmcgbWVj aGFuaXNtczsgaXQgY2FuIHJ1bgo+ID4gPiBvbiBuZXR3b3JrcyB0aGF0IGFyZSBpbmRlcGVuZGVu dCBmcm9tIHRoZSBQVkUgY2x1c3RlciBvbmUsIGFuZCB0aHVzIAo+ID4gPiByZW1haW4gdW5hZmZl Y3RlZCBieSBuZXR3b3JrCj4gPiA+IHBhcnRpdGlvbnMgb3Igb3RoZXIgcHJvYmxlbXMgdGhhdCB3 b3VsZCBjYXVzZSB0aGUgc3RhbmRhcmQgUFZFIHdhdGNoZG9nIAo+ID4gPiB0byByZWJvb3QgYSBu b2RlLgo+ID4gPiBJbiB0aGUgY2FzZSBvZiBIQ0kgKGNvbXB1dGUgKyBzdG9yYWdlKSBub2Rlcywg dGhpcyByZWJvb3QgY2FuIGludGVycnVwdCAKPiA+ID4gdGhlIG5vcm1hbCBvcGVyYXRpb24gb2Yg dGhlCj4gPiA+IFN0b3JQb29sIGNsdXN0ZXIsIGNhdXNpbmcgcmVkdWNlZCBwZXJmb3JtYW5jZSBv ciBkb3dudGltZSwgd2hpY2ggY291bGQgCj4gPiA+IGJlIGF2b2lkZWQgaWYgdGhlIGhvc3QgaXMg bm90IHJlc3RhcnRlZC4KPiA+ID4gVGhpcyBpcyB3aHkgd2UgZG8gb3VyIGJlc3QgdG8gYXZvaWQg c3VjaCBiZWhhdmlvciBhY3Jvc3MgdGhlIGRpZmZlcmVudCAKPiA+ID4gY2xvdWQgbWFuYWdlbWVu dCBwbGF0Zm9ybXMuCj4gPiA+IAo+ID4gVGhpcyBpcyBzaW1pbGFyIHRvIG90aGVyIHN0b3JhZ2Ug cHJvdmlkZXJzIGxpa2UgQ2VwaCwgd2hpY2ggY29tZSB3aXRoIHRoZWlyIG93biBxdW9ydW0vY2x1 c3RlcmluZy8uLiBtZWNoYW5pc20uIEluIGdlbmVyYWwsIGNvLWhvc3RpbmcgdHdvIGRpZmZlcmVu dCBzeXN0ZW1zIGxpa2UgdGhhdCB3aWxsIG5vdCBpbmNyZWFzZSBvdmVyYWxsIGF2YWlsYWJpbGl0 eSBvciByZWxpYWJpbGl0eSwgdW5sZXNzIHlvdSBjYW4gbWFrZSB0aGVtIGNvb3BlcmF0ZSB3aXRo IGVhY2hvdGhlciwgd2hpY2ggaXMgdXN1YWxseSBxdWl0ZSB0cmlja3kvaGFyZC4KPiA+IAo+ID4g RS5nLiwgaW4gdGhlIGNhc2Ugb2YgQ2VwaCtQVkUgKHdoaWNoIEkgYW0gb2J2aW91c2x5IG11Y2gg bW9yZSBmYW1pbGlhciB3aXRoIHRoYW4geW91ciBhcHByb2FjaC9zb2x1dGlvbik6Cj4gPiAtIFBW RSBjbHVzdGVyaW5nIHVzZXMgY29yb3N5bmMrcG14Y2ZzK1BWRSdzIEhBIHN0YWNrLCB3aXRoIEhB IGVuYWJsZWQgdGhpcyBlbnRhaWxzIGZlbmNpbmcsIG90aGVyd2lzZSB0aGUgY2x1c3RlciBtb3N0 bHkgZ29lcyByZWFkLW9ubHkKPiA+IC0gQ2VwaCB3aWxsIHVzZSBpdHMgb3duIG1vbml0b3JzIHRv IGRldGVybWluZSBxdW9ydW0sIGFuZCBnbyByZWFkLW9ubHkgb3IgaW5hY2Nlc3NpYmxlIGRlcGVu ZGluZyBvbiBob3cgbXVjaCBvZiB0aGUgY2x1c3RlciBpcyB1cCBhbmQgaG93IGl0IGlzIGNvbmZp Z3VyZWQKPiA+IAo+ID4gU2luY2UgdGhlIHF1b3J1bSBtZWNoYW5pc21zIGFyZSBtb3N0bHkgaW5k ZXBlbmRlbnQgKHdoaWNoIGRvZXNuJ3QgbWVhbiB0aGV5IGNhbid0IGdvIGRvd24gYXQgdGhlIHNh bWUgdGltZSBmb3IgdGhlIHNhbWUgb3IgdW5yZWxhdGVkIHJlYXNvbnMpLCB5b3UgY2FuIGhhdmUg cGFydGlhbCBmYWlsdXJlIHNjZW5hcmlvczoKPiA+IC0gQ2VwaCBjb3VsZCBnbyByZWFkLW9ubHkg b3IgZG93biwgd2hpbGUgUFZFIGl0c2VsZiBpcyBmaW5lLCBidXQgZ3Vlc3RzIHVzaW5nIENlcGgg YXJlIHN0aWxsIGV4cGVyaWVuY2luZyBJL08gZXJyb3JzCj4gPiAtIFBWRSBjb3VsZCBnbyByZWFk LW9ubHksIGJ1dCBhbHJlYWR5IHJ1bm5pbmcgZ3Vlc3RzIGNhbiBzdGlsbCB3cml0ZSB0byB0aGUg Q2VwaCBzdG9yYWdlCj4gPiAtIFBWRSBjb3VsZCBmZW5jZSBhIG5vZGUgd2hpY2ggb25seSBob3N0 cyBPU0RzLCBhbmQgdGhlIHJlbWFpbmluZyBjbHVzdGVyIGNhbiB0YWtlIG92ZXIgd2l0aCBqdXN0 IGEgc2hvcnQgZG93bnRpbWUgb2YgSEEgZ3Vlc3RzIHdoaWNoIHdlcmUgcnVubmluZyBvbiB0aGUg ZmVuY2VkIG5vZGUKPiA+IC0gUFZFIGNvdWxkIGZlbmNlIGFsbCBub2RlcyBydW5uaW5nIENlcGgg bW9uaXRvcnMsIENlcGggZ29lcyBkb3duIGhhcmQsIGJ1dCBQVkUgaXRzZWxmIHJlbWFpbnMgb3Bl cmFibGUgd2l0aCB0aGUgcmVtYWluaW5nIG1ham9yaXR5IG9mIG5vZGVzCj4gPiAtIC4uLgo+ID4g Cj4gPiBJZiB5b3Ugd2FudCB0byByZWR1Y2UgdGhpcyBpbnRlcmZlcmVuY2UsIHRoZW4gSENJIGlz IG5vdCB0aGUgd2F5IHRvIGdvLCBidXQgc2VwYXJhdGluZyBjb21wdXRlIGFuZCBzdG9yYWdlIGlu dG8gZW50aXJlbHkgaW5kZXBlbmRlbnQgcGFydHMgb2YgeW91IGVudmlyb25tZW50ICh5b3UgcHJv YmFibHkgYWxyZWFkeSBrbm93IHRoaXMgOykgYW5kIHdlIGJvdGgga25vdyB0aGlzIGNhbiBiZSBh IGhhcmQgc2VsbCBhcyBpdCdzIHRoZSBtb3JlIGV4cGVuc2l2ZSBhcHByb2FjaCBmb3Igc21hbGwg dG8gbWVkaXVtIHNldHVwcykuCj4gSSBhZ3JlZSwgbm9uLUhDSSBzZXR1cHMgYXJlIHNpbXBsZXIg KGFuZCBzaW1wbGUgY2FuIG9mdGVuIGJlIGJldHRlciksIGJ1dCBIQ0kgYWxzbyBoYXMgYWR2YW50 YWdlcyBhbmQgaXMgZGVtYW5kZWQgYnkgY3VzdG9tZXJzLiBXZSBydW4gYSBjb3VwbGUgb2YgS1ZN IEhDSSBjbG91ZHMgZm9yIG91ciBvd24gcHJvZHVjdGlvbiB3b3JrbG9hZHMgYW5kIHRlc3QvZGV2 L2xhYiB1c2UtY2FzZXMsIHNvIHdlIGtub3cgd2h5IGN1c3RvbWVycyBjaG9zZSBIQ0kuCgp5ZXMs IEhDSSBDZXBoIGlzIGFsc28gdmVyeSBwb3B1bGFyIHdpdGggb3VyIHVzZXJzIGZvciB2YWxpZCBy ZWFzb25zISA6KQoKPiA+ID4gQ3VycmVudGx5LCB3aGVuIG91ciBkYWVtb24gZGV0ZWN0cyBhbiB1 bmV4cGVjdGVkIGV4aXQgb2YgYSByZXNvdXJjZSAKPiA+ID4gbWFuYWdlciwgaXQgd2lsbCBTSUdL SUxMIFBWRQo+ID4gPiBIQSBzZXJ2aWNlcyBhbmQgcnVubmluZyBWTXMgb24gdGhlIG5vZGUsIHdo aWNoIHNob3VsZCBwcmV2ZW50IDIgCj4gPiA+IGluc3RhbmNlcyBvZiB0aGUgc2FtZSBWTSBydW5u aW5nIGF0Cj4gPiA+IHRoZSBzYW1lIHRpbWUuIFBWRSBzZXJ2aWNlcyBhbmQgb3VyIGJsb2NrIHN0 b3JhZ2UgY2xpZW50IGRhZW1vbiBhcmUgCj4gPiA+IHJlc3RhcnRlZCBhcyB3ZWxsLgo+ID4gPiAK PiA+ID4gV2UncmUgb3BlbiB0byBkaXNjdXNzaW9uIGFuZCBzdWdnZXN0aW9ucyBmb3Igb3VyIGFw cHJvYWNoIGFuZCAKPiA+ID4gaW1wbGVtZW50YXRpb24uCj4gPiA+IAo+ID4gSSBqdXN0IHRvb2sg YSB2ZXJ5IHF1aWNrIHBlZWssIGFuZCBtYXliZSBJIHVuZGVyc3Rvb2Qgc29tZXRoaW5nIHdyb25n IChwbGVhc2UgY29ycmVjdCBtZSBpZiBJIGRpZCEpLiBhcyBmYXIgYXMgSSBjYW4gdGVsbCB5b3Vy IHdhdGNoZG9nIGltcGxlbWVudGF0aW9uIHJlcGxhY2VzIG91cnMsIHdoaWNoIG1lYW5zIHRoYXQg dGhlcmUgd291bGQgYmUgbm8gbW9yZSBmZW5jaW5nIGluIGNhc2UgYSBIQS1lbmFibGVkIG5vZGUg bGVhdmVzIHRoZSBxdW9yYXRlIHBhcnRpdGlvbiBvZiB0aGUgY29yb3N5bmMgY2x1c3RlciAodGhp cyBzZWVtcyB0byBiZSB0aGUgd2hvbGUgcG9pbnQgb2YgeW91ciB3YXRjaGRvZyB0YWtlb3ZlciAt IHRvIGF2b2lkIGZlbmNpbmcpPyBFdmVuIGlmIHlvdSBraWxsIGFsbCBIQSByZXNvdXJjZXMvZ3Vl c3RzIGFuZCB0aGUgSEEgc2VydmljZXMsIHRoaXMgaXMgc3RpbGwgZGFuZ2Vyb3VzIGFzIHRoZSBv dGhlciBub2RlcyBpbiB0aGUgY2x1c3RlciB3aWxsIGFzc3VtZSB0aGF0IHRoZSBub2RlIGhhcyBm ZW5jZWQgaXRzZWxmIGFmdGVyIHRoZSBncmFjZSBwZXJpb2QgaXMgb3Zlci4gVGhpcyBzZWxmLWZl bmNpbmcgcHJvcGVydHkgaXMgYSBoYXJkIHJlcXVpcmVtZW50IGZvciBvdXIgSEEgc3RhY2ssIGlm IHRoYXQgaXMgdW5kZXNpcmFibGUgZm9yIHlvdXIgdXNlIGNhc2UgeW91J2QgbmVlZCB0byBub3Qg YWxsb3cgSEEgaW4gdGhlIGZpcnN0IHBsYWNlIChpbiB3aGljaCBjYXNlLCB5b3UgYWxzbyBkb24n dCBuZWVkIHRvIHRha2Ugb3ZlciB0aGUgd2F0Y2hkb2csIHNpbmNlIGl0IHdvbid0IGJlIGFybWVk KS4gTm90ZSB0aGF0IHdoaWxlIHJ1bm5pbmcgZ3Vlc3RzIGFuZCB0YXNrcyBhcmUgdGhlIG1vc3Qg ImhpZ2ggcmlzayIgcGFydHMsIHlvdSBzaW1wbHkgY2Fubm90IGtub3cgd2hhdCBvdGhlciBwcm9j ZXNzZXMvLi4gT24gdGhlIGZhaWxpbmcgbm9kZSBpcyBwb3RlbnRpYWxseSBhY2Nlc3NpbmcgKHdy aXRpbmcgdG8pIHN0YXRlICgKPiA+ICBzdWNoIGFzIFZNIGRpc2tzKSBvbiBzaGFyZWQgc3RvcmFn ZShzKSBhbmQgdGh1cyBjYW4gY2F1c2UgY29ycnVwdGlvbiBpZiB0aGUgbm9kZSBpcyBub3QgZnVs bHkgZmVuY2VkIGJ5IHRoZSB0aW1lIGFub3RoZXIgbm9kZSB0YWtlcyBvdmVyLgo+ID4gCj4gPiBD b3VsZCB5b3UgbWF5YmUgZGVzY3JpYmUgYSBiaXQgbW9yZSBob3cgeW91ciBjbHVzdGVyaW5nIHdv cmtzLCBhbmQgd2hhdCB5b3VyIHdhdGNoZG9nIHNldHVwIGVudGFpbHM/IFRoZSByZXBvIGRpZG4n dCBwcm92aWRlIG11Y2ggaGlnaCBsZXZlbCBkZXRhaWxzIGFuZCBJIGRvbid0IHdhbnQgdG8gcmVh ZCB0aHJvdWdoIGFsbCB0aGUgY29kZSB0byB0cnkgdG8gbWFwIHRoYXQgYmFjayB0byBhIHJvdWdo IGRlc2lnbiAoZmVlbCBmcmVlIHRvIGxpbmsgdG8gZG9jdW1lbnRhdGlvbiBvZiBjb3Vyc2UhKSwg c2luY2UgeW91IGNhbiBwcm9iYWJseSBwcm92aWRlIHRoYXQgb3ZlcnZpZXcgbXVjaCBiZXR0ZXIg YW5kIGVhc2llci4KPiA+IAo+ID4gRmFiaWFuCj4gVGhlIGdvYWwgb2Ygb3VyIFN0b3JQb29sK1By b3htb3ggSENJIGVmZm9ydHMgaGFzIGJlZW4gdG8gZW5hYmxlIEhDSSBkZXBsb3ltZW50cyB3aXRo b3V0IGRlY3JlYXNpbmcgdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgU3RvclBvb2wgYW5kIFByb3ht b3ggY2x1c3RlcnMuIFRoaXMgaXMgYWNoaWV2ZWQgYnkgbWFraW5nIHN1cmUgUHJveG1veCdzIGNs dXN0ZXJpbmcgY2Fubm90IHJlc3RhcnQgbm9kZXMgYW5kIG1ha2luZyBzdXJlIHRoYXQgVk1zIGFu ZCBvdGhlciBQcm94bW94IHNlcnZpY2VzIGFyZSBraWxsZWQgd2hlbiBQcm94bW94IHdhbnRzIHRv IGZlbmNlIGEgbm9kZS4gVGhlIFN0b3JQb29sIGNsdXN0ZXIgZG9lc24ndCBuZWVkIG9yIHVzZSBu b2RlIGZlbmNpbmcgKGhvdyBpcyBhIG1hdHRlciBvZiBhIHNlcGFyYXRlLCBsb25nZXIgY29udmVy c2F0aW9uKSwgc28gaXQgZG9lcyBub3QgYWZmZWN0IHRoZSBQcm94bW94IGNsdXN0ZXIgZGlyZWN0 bHkuCj4gIAo+ICBJbiBIQ0kgc2NlbmFyaW9zIHdpdGggU3RvclBvb2wsIHdoaWNoIGFyZSBzdXBw b3J0ZWQgb25seSB3aGVuIFN0b3JQb29sIGlzIHRoZSBvbmx5IHNoYXJlZCBzdG9yYWdlIGNvbmZp Z3VyZWQsIHdlIHJlcGxhY2UgdGhlIHN0YW5kYXJkIFBWRSB3YXRjaGRvZyB3aXRoIG91ciBvd24g aW1wbGVtZW50YXRpb24uCj4gIAo+ICBXaGVuIGEgbm9kZSBuZWVkcyB0byBiZSBmZW5jZWQgb3Vy IHdhdGNoZG9nIHJlcGxhY2VtZW50IHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgYWN0aW9uczoKPiAg U0lHS0lMTHMgYWxsIGd1ZXN0cwo+ICBmb3JjZS1kZXRhY2hlcyBTUCB2b2x1bWVzLCBhbmQgZW5z dXJlcyBvdXIgY2xpZW50IGJsb2NrIGRldmljZSBjYW5ub3Qgc3VibWl0IG5ldyBJT3MuICJGb3Jj ZSBkZXRhY2giIGluIFN0b3JQb29sIGVuc3VyZXMgdGhhdCBubyBmdXJ0aGVyIElPIGNhbiBiZSBz dWJtaXR0ZWQgYnkgdGhlIGNsaWVudCwgZXZlbiBpZiBpdCB3YXMgdGVtcG9yYXJpbHkgZGlzY29u bmVjdGVkLgo+ICAKPiAgQWRkaXRpb25hbGx5LCB3aGVuIGEgVk0gaXMgc3RhcnRlZCwgdGhlIHN0 b3JhZ2UgcGx1Z2luIGZpcnN0IGZvcmNlLWRldGFjaGVzIGl0cyB2b2x1bWVzIGZyb20gYWxsIGhv c3RzIG90aGVyIHRoYW4gdGhlIG9uZSBpdCBpcyBhYm91dCB0byBiZSBzdGFydGVkIG9uLiBXaXRo IHRoZXNlIHByZWNhdXRpb25zIGluIHBsYWNlIHRoZXJlIHNob3VsZCBiZSBzdWZmaWNpZW50IHBy b3RlY3Rpb24gYWdhaW5zdCBwYXJhbGxlbCB3cml0ZXMgZnJvbSBtdWx0aXBsZSBub2Rlcy4gV3Jp dGVzIHRvIHBteGNmcyBhcmUgaGFuZGxlZCBieSBQVkXigJlzIGNsdXN0ZXJpbmcgY29tcG9uZW50 cywgYW5kIHdlIGRvbuKAmXQgZXhwZWN0IGFueSBwcm9ibGVtcyB0aGVyZS4KPiAgCj4gIFdlIHdp bGwgYWxzbyBtYWtlIHN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gb3RoZXIgc3RvcmFnZXMgY29uZmln dXJlZCBieSBtZWFucyBvZiBtb25pdG9yaW5nIG9mIHRoZSBQcm94bW94IHN0b3JhZ2UgY29uZmln dXJhdGlvbi4KPiAgCj4gIFdoYXQgd2UndmUgZG9uZSBzbyBmYXIgc2VlbXMgdG8gYmUgc3VmZmlj aWVudCB0byBhY2hpZXZlIHRoZSBnb2FscyAtIGl0IGVmZmVjdGl2ZWx5IHJlbW92ZXMgdGhlIHBv c3NpYmlsaXR5IG9mIHRoZSBQcm94bW94IGNsdXN0ZXIga2lsbGluZyBvZmYgYSBzdG9yYWdlIG5v ZGUsIHdoaWxlIHN0aWxsIGVmZmVjdGl2ZWx5IGZlbmNpbmcgVk1zIGFuZCBvdGhlciBzZXJ2aWNl cy4gQXMgd2l0aCBhbnkgcGllY2Ugb2Ygc29mdHdhcmUsIHRoZXJlIGFyZSB0aGluZ3Mgd2hpY2gg Y2FuIGJlIGRvbmUgdG8gbWFrZSBpdCBldmVuIGJldHRlci4gQSBmZXcgbm9uLWNvbW1pdHRlZCBl eGFtcGxlczoKPiAgLSBzdXBwb3J0IGZvciBjb250YWluZXJzLCBub3QganVzdCBWTXMKPiAgLSBh dXRvbWF0aWMgcmVjb3Zlcnkgc28gaXQgaGFzIFVYIHNpbWlsYXIgdG8gdGhlIGRlZmF1bHQgd2F0 Y2hkb2cKPiBQbGVhc2UgbGV0IHVzIGtub3cgeW91ciB0aG91Z2h0cyBhbmQgYW55IGZ1cnRoZXIg Y29uY2VybnMsIHdlJ2QgbGlrZSB0byBhZGRyZXNzIHRoZW0gYXMgUHJveG1veCBIQ0kgc3VwcG9y dCBpcyBpbXBvcnRhbnQgdG8gdXMuCgpBRkFJQ1QgZnJvbSB0aGUgZGVzY3JpcHRpb24gYWJvdmUg KG5vdCBsb29raW5nIGF0IGNvZGUgb3IgYWN0dWFsbHkgdGVzdGluZyBhbnl0aGluZyksIGlzc3Vl cyBvbiB5b3VyIHN0b3JhZ2UgbGF5ZXIgc2hvdWxkIGJlIHJ1bGVkIG91dC4gQnV0IGl0IHN0aWxs IGxlYXZlcyBpc3N1ZXMgd2l0aCBhbnl0aGluZyBlbHNlLCBlLmcuIGFueSBsb25nIHJ1bm5pbmcg dGFzayAoZWl0aGVyIGJ5IFBWRSwgb3IgYnkgdGhlIGFkbWluKSB0aGF0IGludm9sdmVzIGEgSEEt bWFuYWdlZCBndWVzdCBpcyBhdCByaXNrIG9mIGJlaW5nICJzcGxpdC1icmFpbmVkIi4gSW4gYSBy ZWd1bGFyIChIQSkgc2V0dXAsIGFub3RoZXIgbm9kZSB3aWxsIG9ubHkgcmVjb3ZlciB0aGUgY29u ZmlnIChhbmQgdGh1cyBvd25lcnNoaXApIG9mIHRoZSBndWVzdCBvbmNlIHRoZSByZXF1aXNpdGUg dGltZW91dHMgaGF2ZSBwYXNzZWQsIHdoaWNoIG1lYW5zIGl0ICprbm93cyogdGhlIGZhaWxlZCBu b2RlIG11c3QgaGF2ZSBmZW5jZWQgaXRzZWxmLiBJbiB5b3VyIHNldHVwLCB0aGlzIGlzIG5vdCB0 aGUgY2FzZSBhbnltb3JlIC0gdGhlIG5vbi1xdW9yYXRlIG5vZGUgc3RpbGwgaGFzIHRoZSBWTSBj b25maWcgKHNpbmNlIGl0IGlzIG5vdCBxdW9yYXRlLCBpdCBjYW5ub3Qgbm90aWNlIHRoZSAidGhl ZnQiIG9mIHRoZSBjb25maWcgYnkgdGhlIEhBIHN0YWNrIHJ1bm5pbmcgb24gdGhlIHF1b3JhdGUg cGFydGl0aW9uIG9mIHRoZSBjbHVzdGVyKSBhbmQgdGh1cyAoZnJvbSBhIGxvY2FsIHBvaW50IG9m IHZpZXcpIGF0IGxlYXN0IFJPIG93bmVyc2hpcCBvZiB0aGF0IGd1ZXN0LiBEZXBlbmRpbmcgb24g dGhlIHNlcXVlbmNlIG9mIGV2ZW50cywgc3VjaCBhIHRhc2sgbWlnaHQgaGF2ZSBwYXNzZWQgYSBx dW9ydW0gY2hlY2sgZWFybGllciBhbmQgbm90IHlldCByZWFjaGVkIHRoZSBuZXh0IHN1Y2ggY2hl Y2ssIGFuZCB0aHVzIGV2ZW4gdGhpbmsgaXQgc3RpbGwgaGFzIGZ1bGwgb3duZXJzaGlwIGFuZCBh Y3QgYWNjb3JkaW5nbHkhIE9idmlvdXNseSwgd3JpdGVzIHRvIHlvdXIgc2hhcmVkIHN0b3JhZ2Ug b3IgdG8gL2V0Yy9wdmUgd291bGQgYmUgYmxvY2tlZCwgYnV0IHRoYXQgZG9lc24ndCBtZWFuIHRo YXQgbm90aGluZyBkYW5nZXJvdXMgY2FuIGhhcHBlbiAoZS5nLiwgbG9jYWwgb3IgZXh0ZXJuYWwg c3RhdGUgYmVpbmcgY29ycnVwdGVkIG9yIHJ1bm5pbmcgb3V0IG9mIHN5bmMgYnkgd3JpdGVzIG9u L2Zyb20gdHdvIGRpZmZlcmVudCBub2RlcykuCgpUaGUgb25seSB3YXkgdG8gbWFrZSB0aGlzIHNh ZmUocikgd291bGQgYmUgdG8gYmFzaWNhbGx5IGRpc2FsbG93IGFueSBjdXN0b20gaW50ZWdyYXRp b24gKHRvIGVuc3VyZSBubyBub24tUFZFIHRhc2tzIGFyZSBydW5uaW5nKSBhbmQga2lsbCB0aGUg d2hvbGUgUFZFIHN0YWNrIG9uIHF1b3J1bSBsb3NzLCBpbmNsdWRpbmcgYW55IHNwYXduZWQgdGFz a3MgYW5kIHBteGNmcy4gQXQgdGhhdCBwb2ludCwgYWxsIHRoZSBjb25maWdzIGFuZCBBUEkgd291 bGQgYmVjb21lIHVuYXZhaWxhYmxlIGFzIHdlbGwsIHNvIHRoZSByaXNrIG9mIHNvbWV0aGluZy9z b21lYm9keSBtaXNpbnRlcnByZXRpbmcgYW55dGhpbmcgc2hvdWxkIGJlY29tZSB6ZXJvIC0gaWYg dGhlcmUgaXMgbm8gaW5mb3JtYXRpb24sIG5vdGhpbmcgY2FuIGJlIG1pc2ludGVycHJldGVkIGFm dGVyIGFsbCA7KSBUaGlzIHdvdWxkIG1lYW4gYmFzaWNhbGx5IG1lYW4gImRvd25ncmFkaW5nIiBh IFBWRStTdG9yUG9vbCBub2RlIHRvIGEgU3RvclBvb2wgbm9kZSBvbiBxdW9ydW0gbG9zcywgd2hp Y2ggaXMgeW91ciBpbnRlbmRlZCBzZW1hbnRpY3MgKEkgdGhpbms/KS4KClRoaXMgYXBwcm9hY2gg ZG9lcyBjb21lIHdpdGggYSBuZXcgcHJvYmxlbSB0aG91Z2ggLSBvbmNlIHRoaXMgbm9kZSByZWpv aW5zIHRoZSBjbHVzdGVyLCB5b3UnZCBuZWVkIHRvIGJyaW5nIHVwIGFsbCBvZiB0aGUgUFZFIHN0 YWNrIGFnYWluIGluIGFuIG9yZGVybHkgZmFzaGlvbi4KCkkgaG9wZSB0aGUgYWJvdmUgZXhwbGFp bnMgd2h5IGFuZCBob3cgUFZFIGlzIHVzaW5nIHNlbGYtZmVuY2luZyB2aWEgd2F0Y2hkb2dzLCBh bmQgdGhlIGltcGxpY2F0aW9ucyBvZiBkaXNhYmxpbmcgdGhhdCB3aGlsZSBrZWVwaW5nIEhBICJl bmFibGVkIi4gSWYgc29tZXRoaW5nIGlzIHVuY2xlYXIgb3IgeW91IGhhdmUgbW9yZSBxdWVzdGlv bnMsIHBsZWFzZSByZWFjaCBvdXQhCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJv eG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGlu Zm8vcHZlLWRldmVsCg==