From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 2451C1FF187 for ; Mon, 8 Sep 2025 20:01:47 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8DAC618B15; Mon, 8 Sep 2025 20:01:32 +0200 (CEST) From: "Max R. Carrara" To: pve-devel@lists.proxmox.com Date: Mon, 8 Sep 2025 20:00:44 +0200 Message-ID: <20250908180058.530119-1-m.carrara@proxmox.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1757354436095 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.417 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 URIBL_BLACK 3 Contains an URL listed in the URIBL blacklist [plugin.pm] Subject: [pve-devel] [RFC pve-storage, pve-manager master v1 00/12] GUI Support for Custom Storage Plugins X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" R1VJIFN1cHBvcnQgZm9yIEN1c3RvbSBTdG9yYWdlIFBsdWdpbnMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KCnRsO2RyOgoKQWRkIGFuIEFQSSBtZXRob2QgdG8gUFZFOjpT dG9yYWdlOjpQbHVnaW4gdGhhdCByZXR1cm5zIHRoZSBkZWZpbml0aW9uCmZvciB0aGUgZm9ybSB2 aWV3IG9mIGN1c3RvbSBzdG9yYWdlIHBsdWdpbnMuIFRoaXMgZGVmaW5pdGlvbiBpcyB1c2VkIGJ5 CnRoZSBmcm9udGVuZCB0byBidWlsZCB0aGUgZm9ybSB2aWV3IGZvciBjcmVhdGluZyAvIGVkaXRp bmcgdGhlIHN0b3JhZ2UKY29uZmlnIGVudHJ5IG9mIHRoZSBwbHVnaW4uIFRoZSB1bHRpbWF0ZSBn b2FsIGhlcmUgaXMgdGhhdCBjdXN0b20Kc3RvcmFnZSBwbHVnaW4gZGV2cyBkb24ndCBoYXZlIHRv IChhbmQgYWxzbyAqbXVzdCBub3QqKSBldmVyIHRvdWNoCkphdmFTY3JpcHQgdG8gbWFrZSB0aGVp ciBwbHVnaW5zIHNob3cgdXAgaW4gdGhlIEdVSS4KCk92ZXJ2aWV3Ci0tLS0tLS0tCgpUaGlzIFJG QyBpbXBsZW1lbnRzIEdVSSBzdXBwb3J0IGZvciBjdXN0b20gc3RvcmFnZSBwbHVnaW5zLgoKVG8g YWNoaWV2ZSB0aGlzLCBmb3VyIG5ldyBwYXRocyBhcmUgYWRkZWQgdG8gdGhlIEFQSToKCiAgLSBw bHVnaW5zL3N0b3JhZ2UKCiAgICAgIFJldHVybnMgdGhlIG1ldGFkYXRhIG9mIGFsbCBwbHVnaW5z LgoKICAgICAgUGx1Z2luIG1ldGFkYXRhIGluY2x1ZGVzIHN1cHBvcnRlZCBjb250ZW50IHR5cGVz IGFuZCBmb3JtYXRzIChhcyB3ZWxsCiAgICAgIGFzIHRoZWlyIGRlZmF1bHRzKSwgdGhlIHBsdWdp bidzIHNob3J0IG5hbWUsIHRoZSB2aWV3cyBhIHBsdWdpbgogICAgICBkZWZpbmVzLCBhbmQgbW9y ZS4KCiAgLSBwbHVnaW5zL3N0b3JhZ2Uve3BsdWdpbn0KCiAgICAgIFJldHVybnMgdGhlIG1ldGFk YXRhIG9mIGEgc2luZ2xlIHBsdWdpbi4KCiAgLSBwbHVnaW5zL3N0b3JhZ2Uve3BsdWdpbn0vdmll d3MKCiAgICAgIFJldHVybnMgYSBsaXN0IG9mIGFsbCB2aWV3IGRlY2xhcmF0aW9ucyBvZiBhIHBs dWdpbi4gSWYgdGhlIHBsdWdpbgogICAgICBkZWZpbmVzIG5vIHZpZXdzLCB0aGUgbGlzdCBpcyBl bXB0eS4KCiAgLSBwbHVnaW5zL3N0b3JhZ2Uve3BsdWdpbn0vdmlld3MvZm9ybQoKICAgICAgUmV0 dXJucyB0aGUgZm9ybSB2aWV3IGRlZmluaXRpb24gb2YgYSBwbHVnaW4uCgpIb3cgQ3VzdG9tIFZp ZXdzIFdvcmsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBIHZpZXcgaXMgd2hhdCBkZWZpbmVzIGhv dyBkYXRhIHNob3VsZCBiZSBkaXNwbGF5ZWQgdG8gdXNlcnMuIFZpZXdzIGFyZQpzcGVjaWZpZWQg dmlhIGEgbmVzdGVkIGhhc2ggaW4gUGVybCBhbmQgY29udmVydGVkIHRvIEpTT04gdmlhIHRoZSBB UEkuClRoZSB2aWV3IGRlZmluaXRpb24gaW5zaWRlIHRoZSBKU09OIG9iamVjdCBpcyB0aGVuIHRh a2VuIGJ5IHRoZSBmcm9udGVuZAphbmQgYnVpbHQgaW50byBhIHZpZXcgZm9yIHRoZSB1c2VyLgoK SW4gcGFydGljdWxhciwgdGhpcyBSRkMgYWRkcyBzdXBwb3J0IGZvciBjdXN0b20gZm9ybSB2aWV3 cyBmb3Igc3RvcmFnZQpwbHVnaW4gY29uZmlnIGVudHJpZXMgKERhdGFjZW50ZXIgPiBTdG9yYWdl KS4gQSBwbHVnaW4gbWF5IGRlZmluZSBhIGZvcm0KdmlldyBieSBpbXBsZW1lbnRpbmcgdGhlIG5l dyBgZ2V0X2Zvcm1fdmlldygpYCBwbHVnaW4gQVBJIG1ldGhvZCBhbmQKc3BlY2lmeWluZyBpbiBg cGx1Z2luZGF0YSgpYCB0aGF0IGl0IGhhcyBkZWNsYXJlZCBzdWNoIGEgdmlldy4KCkFkZGl0aW9u YWxseSwgdGhlIEpTT04gc2NoZW1hIGZvciBmb3JtIHZpZXdzIGlzIHZlcnNpb25lZCB0byBtYWtl CmZvcndhcmQtIGFuZCBiYWNrd2FyZC1jb21wYXQgZWFzaWVyLgoKVGhlIGZvcm0gdmlldyBjdXJy ZW50bHkgb25seSBhbGxvd3MgY3VzdG9taXphdGlvbiBvZiB0aGUgIkdlbmVyYWwiIHRhYi4KSG93 ZXZlciwgaWYgYSBjb25maWcgZW50cnkgaGFzIHRoZSAiYmFja3VwIiBjb250ZW50IHR5cGUgc2Vs ZWN0ZWQsIHRoZQoiQmFja3VwIFJldGVudGlvbiIgdGFiIGJlY29tZXMgdW5tYXNrZWQsIGp1c3Qg bGlrZSB3aXRoIGluYnVpbHQgcGx1Z2lucy4KClRoZSBKU09OIHNjaGVtYSBmb3IgdGhlIGZvcm0g dmlldyBtYWlubHkgY29uc2lzdHMgb2YgdGhlIGNvbHVtbnMgb2YgdGhlCiJHZW5lcmFsIiB0YWIg YW5kIHRoZSBmaWVsZHMgdGhvc2UgY29sdW1ucyBtYXkgaW5jbHVkZS4KClRoZSBzdXBwb3J0ZWQg Y29sdW1ucyByZWZsZWN0IHRob3NlIHRoYXQgYXJlIGN1cnJlbnRseSB1c2VkIGluIG91cgpmcm9u dGVuZDoKICAtIEEgbGlzdCBvZiAicmVndWxhciIgY29sdW1ucwogIC0gQSAiYm90dG9tIiBjb2x1 bW4gKHRoZSB3aWRlIGNvbHVtbiBiZWxvdyB0aGUgcmVndWxhciBvbmVzKQogIC0gQ29sdW1ucyBp biB0aGUgYWR2YW5jZWQgc3Vic2VjdGlvbgogIC0gQSAiYm90dG9tIiBjb2x1bW4gaW4gdGhlIGFk dmFuY2VkIHN1YnNlY3Rpb24KCkV2ZXJ5IGNvbHVtbiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgZmll bGRzLiBGaWVsZHMgYXJlIHR5cGVkIGFuZApjb3JyZXNwb25kIHRvIGEgU2VjdGlvbkNvbmZpZyBw cm9wZXJ0eSBvZiB0aGUgc3RvcmFnZSBwbHVnaW4gcmV0dXJuaW5nCnRoZSB2aWV3LiBUaGlzIG1l YW5zIHRoYXQgZGVmaW5pbmcgdGhlIGZvcm0gdmlldyBpcyBlbm91Z2gsIG5vCmFkZGl0aW9uYWwg QVBJIG1ldGhvZHMgbmVlZCB0byBiZSBpbXBsZW1lbnRlZCBvdGhlcndpc2UuIEV4dC5KUyB3aWxs CnRoZW4gdXNlIHRoZSBwcm9wZXJ0eSBuYW1lcyBpbiB0aGUgZmllbGQgZGVmaW5pdGlvbnMgZm9y IHRoZSByZWd1bGFyCnN0b3JhZ2UgQVBJIGNhbGxzLgoKVGhpcyBtZWFucyB0aGF0IGN1c3RvbSBz dG9yYWdlIHBsdWdpbiBhdXRob3JzIGRvbid0IGhhdmUgdG8gd3JpdGUgYQpzaW5nbGUgbGluZSBv ZiBKYXZhU2NyaXB0IHdoZW4gaW1wbGVtZW50aW5nIEdVSSBzdXBwb3J0IGZvciB0aGVpcgpwbHVn aW4uCgpUaGUgY3VycmVudGx5IHN1cHBvcnRlZCBmaWVsZCB0eXBlcyBpbiB0aGUgZm9ybSB2aWV3 IHNjaGVtYSBhcmU6CiAgLSBib29sZWFuCiAgLSBpbnRlZ2VyCiAgLSBudW1iZXIKICAtIHN0cmlu ZwogIC0gc2VsZWN0aW9uCgpGaWVsZHMgaGF2ZSBjb21tb24gYXR0cmlidXRlcyBhcyB3ZWxsIGFz IGF0dHJpYnV0ZXMgc3BlY2lmaWMgdG8gaXRzCnBhcnRpY3VsYXIgdHlwZS4gRm9yIGV4YW1wbGUs IHRoZSAnc3RyaW5nJyBmaWVsZCBtYXkgaGF2ZSB0aGUgYWRkaXRpb25hbAonZGlzcGxheS1tb2Rl JyBhdHRyaWJ1dGUsIHdpdGggd2hpY2ggdGhlIGZpZWxkIG1heSBiZSBkaXNwbGF5ZWQgYXMKcmVn dWxhciB0ZXh0IGZpZWxkICh0aGUgZGVmYXVsdCksIGFzIHRleHQgYXJlYSwgb3IgYXMgYSBwYXNz d29yZCBmaWVsZC4KCkhvdyB0aGVzZSBmaWVsZCBkZWZpbml0aW9ucyBhcmUgaW50ZXJwcmV0ZWQg ZGVwZW5kcyBvbiB0aGUgZnJvbnRlbmQuCkluIHRoaXMgUkZDLCB0aGUgcHJvcGVydGllcyBvZiB0 aGUgY29ycmVzcG9uZGluZyBFeHQuSlMgZmllbGQgYXJlCmRldGVybWluZWQgYW5kIHN0aXRjaGVk IHRvZ2V0aGVyIGR5bmFtaWNhbGx5LgoKVGhlIGZvdXIgZmllbGRzIGZvciB0aGUgc3RvcmFnZSBJ RCwgbm9kZXMsIGNvbnRlbnQgdHlwZXMgYW5kIGVuYWJsZSAvCmRpc2FibGUgY2hlY2tib3ggYXJl IGFsd2F5cyBhZGRlZCBieSBkZWZhdWx0IGFuZCBjYW5ub3QgYmUgZGVjbGFyZWQgaW4KdGhlIGZv cm0gdmlldy4KCkV4YW1wbGUgSW1wbGVtZW50YXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK VG8gc2hvdyB0aGUgY3VzdG9tIGZvcm0gdmlldyBpbiBhY3Rpb24sIHRoZSB3aG9sZSB0aGluZyBk ZXNjcmliZWQgaGVyZQppcyBpbXBsZW1lbnRlZCBmb3IgdGhlIFpGUyBwb29sIHBsdWdpbi4gWW91 IHNob3VsZCBub3RpY2Ugb25seSBtaW5vcgpkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBm b3JtIHZpZXcuCgpDdXJyZW50IExpbWl0YXRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0KCi0gVGhl ICJkZWZhdWx0IHRleHQiIGlzIGN1cnJlbnRseSBub3Qgc2V0LiBEaWRuJ3Qgd2FudCB0byBnaXZl IGluIHRvIHRoZQogIGV2ZXItbGluZ2VyaW5nIGZlYXR1cmUgY3JlZXAgc3Vycm91bmRpbmcgdGhp cyBSRkMuCiAgLSBUaGUgc2FtZSBwcm9iYWJseSBnb2VzIGZvciBvdGhlciBtaW5vciBwYXJ0aWN1 bGFyaXRpZXMgdGhhdCBFeHQuSlMKICAgIHN1cHBvcnRzLiBJZiB0aGUgcmVhZGVyIGhhcyBhbnkg YWRkaXRpb25hbCBpZGVhcywgcGxlYXNlIHNlbmQgdGhlbQogICAgbXkgd2F5LgoKLSBUaGVyZSBp cyBubyBzdXBwb3J0IGZvciBjbHVzdGVyIHNldHVwcyB5ZXQuCiAgLSBUaGlzIGlzIG9ubHkgKnJl YWxseSogYW4gaXNzdWUgZm9yIG5vZGUtbG9jYWwgc3RvcmFnZXMuIFRoZSBleGFtcGxlCiAgICBp bXBsZW1lbnRhdGlvbiBmb3IgdGhlIFpGUyBwb29sIHN0b3JhZ2UgaW4gdGhpcyBSRkMgd29ya3Mg Zm9yIHNpbmdsZQogICAgbm9kZSBzZXR1cHMsIGJ1dCB0aGVyZSdzIG5vIG5vZGUgc2VsZWN0b3Ig b3IgYW55dGhpbmcgb2YgdGhlIHNvcnQKICAgIGZvciBjdXN0b20gc2VsZWN0aW9ucy4gV291bGQg aGlnaGx5IGFwcHJlY2lhdGUgYW55IGlkZWFzIGluIHRoYXQKICAgIHJlZ2FyZCwgYXMgd2UgbWln aHQgaGF2ZSB0byBkZXZpYXRlIGZyb20gdGhlICJzdGFuZGFyZCBsb29rIiB0aGF0CiAgICBvdXIg c3RvcmFnZSBjb25maWcgZm9ybXMgY3VycmVudGx5IGhhdmUgd2hlbiBpdCBjb21lcyB0byB0aGF0 LgoKLSBGb3Igc29tZSByZWFzb24gdGhlIGNoZWNrYm94IGZvciB0aGUgYWR2YW5jZWQgc2VjdGlv biBkb2Vzbid0IHNob3cgdXAKICBldmVuIGlmIGZpZWxkcyBleGlzdCBpbnNpZGUgaXRzIGNvbHVt bnMuCiAgLSBUaGUgZmllbGRzIHN0aWxsIHNob3cgdXAgYXMgZXhwZWN0ZWQsIGl0J3MganVzdCB0 aGF0IHRoZXkgY2FuJ3QgYmUKICAgIGhpZGRlbiB3aXRoIHRoZSAiQWR2YW5jZWQgWyBdIiBjaGVj a2JveC4KICAtIE5vIGlkZWEgd2h5IHRoYXQgaGFwcGVucy4gV291bGQgYXBwcmVjaWF0ZSBhbnkg RXh0LkpTIGxvcmUgLyBoZWxwIGluCiAgICB0aGF0IHJlZ2FyZC4KCi0gRG9jc3RyaW5ncyBmb3Ig dGhlIG5ldyBzdHVmZiB3aWxsIGJlIGFkZGVkIG9uY2UgdGhpcyBiZWNvbWVzIGEgcHJvcGVyCiAg c2VyaWVzLgoKRnVydGhlciBJZGVhcwotLS0tLS0tLS0tLS0tCgotIFdoaWxlIHRoaXMgb25seSBh aW1zIHRvIGltcGxlbWVudCBHVUkgc3VwcG9ydCBmb3IgY3VzdG9tIHN0b3JhZ2UKICBwbHVnaW5z LCB0aGVyZSdzIG5vdGhpbmcgdGhhdCdzIHJlYWxseSBzdG9wcGluZyB1cyBmcm9tIHVzaW5nIHRo aXMgZm9yCiAgb3VyIG93biBwbHVnaW5zIG9uY2UgYWxsIHRoZSByb3VnaCBlZGdlcyBoYXZlIGJl ZW4gc21vb3RoZWQgb3V0LgogIC0gVGhlIG9ubHkgdGhpbmcgdGhhdCBtaWdodCBoaW5kZXIgdXMg ZnJvbSAqZnVsbHkqIHN3aXRjaGluZyBvdmVyIHRvCiAgICBkZWNsYXJpbmcgb3VyIGluYnVpbHQg cGx1Z2lucycgZm9ybSB2aWV3cyBhY2NvcmRpbmcgdG8gdGhpcyBzZXJpZXMKICAgIGlzIHRoZSBm YWN0IHRoYXQgc29tZSBwbHVnaW5zIGRlZmluZSBjdXN0b20gZGlhbG9ndWVzIGFuZCBzdWNoLgog IC0gRS5nLiB0aGUgUEJTIHBsdWdpbiBoYXMgYSBjdXN0b20gIkVuY3J5cHRpb24iIHRhYiB3aXRo IHdob2xlCiAgICBkaWFsb2d1ZXMgZm9yIGF1dG8tZ2VuZXJhdGluZyAvIHVwbG9hZGluZyBlbmNy eXB0aW9uIGtleXMuCgotIEFzIG9mIHJpZ2h0IG5vdywgdGhlIGFscmVhZHkgZXhpc3RpbmcgZmll bGQgdHlwZXMgaW4gRXh0LkpTCiAgKG1lYW5pbmcgJ3h0eXBlcycgaGVyZSkgYXJlIHVzZWQuCiAg LSBXaGF0IHdlIGNvdWxkIGRvIGlzIGFkZCBjdXN0b20gZmllbGQgdHlwZXMgaW4gRXh0LkpTIHRo YXQgY29ycmVzcG9uZAogICAgdG8gdGhlIGZpdmUgdHlwZXMgdGhhdCB0aGUgZm9ybSB2aWV3IHNj aGVtYSBhbGxvd3MsIGluIG9yZGVyIHRvCiAgICBwcm92aWRlIGEgbW9yZSB1bmlmb3JtIHdheSBv ZiBidWlsZGluZyB0aGUgZmllbGRzIGFuZCBjb2x1bW5zIGluCiAgICBFeHQuSlMuIFJpZ2h0IG5v dyB0aGUgRXh0LkpTIGZpZWxkcyBhcmUganVzdCBtYWRlIHVwIG9uIHRoZSBzcG90LAogICAgd2hp Y2ggaXMgYSBiaXQgY29udm9sdXRlZC4KICAtIE5vdCBzdXJlIGlmIHRoaXMgaXMgc3RyaWN0bHkg bmVjZXNzYXJ5IHRob3VnaCwgYnV0IG1pZ2h0IGJlIG5pY2UgdG8KICAgIGhhdmUuCgotIFRoaXMg d2hvbGUgY29uY2VwdCBpbiB0aGUgUkZDIGNhbiB0aGVvcmV0aWNhbGx5IGJlIGdlbmVyYWxpemVk IHNvIHRoYXQKICBpdCBtYXkgYmUgdXNlZCB0aHJvdWdob3V0IG90aGVyIHBsYWNlcyBpbiBQVkUg YXMgd2VsbC4KICAtIFRoZSBKU09OIHNjaGVtYXMgZm9yIGNvbHVtbnMgYW5kIGZpZWxkcyBpbiBw YXJ0aWN1bGFyIHRlY2huaWNhbGx5CiAgICBhcmVuJ3QgcmVhbGx5IGxpbWl0ZWQgdG8gc3RvcmFn ZSBwbHVnaW4gc3R1ZmYuCiAgLSBJdCBtaWdodCB0aGVyZWZvcmUgYmUgYmVuZWZpY2lhbCBvdmVy YWxsIHRvIHB1bGwgdGhlIHNtYWxsZXIgcGllY2VzCiAgICBvdXQgYW5kIGRlZmluZSB0aGVtIGlu IGEgc2VwYXJhdGUgbW9kdWxlIChkZWJpYW4gcGFja2FnZSkgc28gdGhhdAogICAgdGhlIHJlc3Qg b2YgdGhlIGJhY2tlbmQgY2FuIGFsc28gYmVuZWZpdCBmcm9tIHRoaXMuCiAgLSBJIGRvbid0IGtu b3cgb2YgYW55IG90aGVyIHVzZSBjYXNlcyBhcyBvZiByaWdodCBub3cgdGhvdWdoLCB3aGljaAog ICAgaXMgd2h5IEkgY29uZmluZWQgdGhlIHNjaGVtYXMgdG8gUFZFOjpTdG9yYWdlOjpQbHVnaW46 OlZpZXdzIGF0IHRoZQogICAgbW9tZW50LgogIC0gSWYgd2UgZG8gd2FudCB0byBnZW5lcmFsaXpl IGZpZWxkIC8gY29sdW1uIC8gcm93IC8gZXRjLiBzY2hlbWFzIAogICAgZXZlbnR1YWxseSwgd2Ug Y2FuIGp1c3QgYWRkIGEgbmV3IHNjaGVtYSB2ZXJzaW9uIGZvciB0aGUgc3RvcmFnZQogICAgcGx1 Z2luIGZvcm0gdmlldyB0aGF0IHVzZXMgdGhlIGFsdGVyZWQgc2NoZW1hcyB3aGVuIHRoYXQgaGFw cGVucy4KICAgIDpeKQoKQ2xvc2luZyBUaG91Z2h0cwotLS0tLS0tLS0tLS0tLS0tCgpJZiB5b3Ug cmVhZCB0aGlzIGZhciwgdGhhbmtzIGEgbG90IGZvciB5b3VyIGF0dGVudGlvbi4g8J+ZjyBJIGhv cGUgSQpoYXZlbid0IG1pc3NlZCBhbnl0aGluZy4gSSdkIGFwcHJlY2lhdGUgYW55IGZlZWRiYWNr LgoKQWxzbywgdGhhbmtzIGEgbG90IHRvIEFhcm9uIEwuIGZvciBicmFpbnN0b3JtaW5nIHRoaXMg dGhyb3VnaCB3aXRoIG1lIGluCnRoZSBiZWdpbm5pbmchCgpTdW1tYXJ5IG9mIENoYW5nZXMKLS0t LS0tLS0tLS0tLS0tLS0tCgpwdmUtc3RvcmFnZToKCk1heCBSLiBDYXJyYXJhICg4KToKICBwbHVn aW46IG1ldGE6IGFkZCBwYWNrYWdlIFBWRTo6U3RvcmFnZTo6UGx1Z2luOjpNZXRhCiAgYXBpOiBB ZGQgJ3BsdWdpbnMvc3RvcmFnZScgYW5kICdwbHVnaW5zL3N0b3JhZ2Uve3BsdWdpbn0nIHBhdGhz CiAgcGx1Z2luOiBtZXRhOiBpbnRyb2R1Y2UgJ3Nob3J0LW5hbWUnCiAgcGx1Z2luOiB2aWV3czog YWRkIHBhY2thZ2UgUFZFOjpTdG9yYWdlOjpQbHVnaW46OlZpZXdzCiAgcGx1Z2luOiBhZGQgbmV3 IHBsdWdpbiBBUEkgbWV0aG9kIGBnZXRfZm9ybV92aWV3KClgCiAgcGx1Z2luOiBtZXRhOiBhZGQg bWV0YWRhdGEgcmVnYXJkaW5nIHZpZXdzIGluIEFQSQogIGFwaTogdmlld3M6IGFkZCBwYXRocyBy ZWdhcmRpbmcgc3RvcmFnZSBwbHVnaW4gdmlld3MKICBwbHVnaW46IHpmc3Bvb2w6IGFkZCAnc2hv cnQtbmFtZScgYW5kIGZvcm0gdmlldyBmb3IgWkZTIHBvb2wgcGx1Z2luCgogc3JjL1BWRS9BUEky L01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL1BWRS9BUEkyL1BsdWdpbnMv TWFrZWZpbGUgICAgICAgICAgfCAgMTggKysKIHNyYy9QVkUvQVBJMi9QbHVnaW5zL1N0b3JhZ2Uv Q29uZmlnLnBtIHwgMTg4ICsrKysrKysrKysrKysrKysrKysKIHNyYy9QVkUvQVBJMi9QbHVnaW5z L1N0b3JhZ2UvTWFrZWZpbGUgIHwgIDE4ICsrCiBzcmMvUFZFL0FQSTIvUGx1Z2lucy9TdG9yYWdl L1ZpZXdzLnBtICB8IDE3MiArKysrKysrKysrKysrKysrKysKIHNyYy9QVkUvU3RvcmFnZS9NYWtl ZmlsZSAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4ucG0gICAg ICAgICAgICAgIHwgICA4ICsKIHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4vTWFrZWZpbGUgICAgICAg IHwgIDExICsrCiBzcmMvUFZFL1N0b3JhZ2UvUGx1Z2luL01ldGEucG0gICAgICAgICB8IDIxMSAr KysrKysrKysrKysrKysrKysrKysKIHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4vVmlld3MucG0gICAg ICAgIHwgMjQyICsrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9QVkUvU3RvcmFnZS9aRlNQ b29sUGx1Z2luLnBtICAgICAgIHwgIDY3ICsrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDkzNyBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL1BWRS9BUEkyL1BsdWdpbnMvTWFr ZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvUFZFL0FQSTIvUGx1Z2lucy9TdG9yYWdlL0Nv bmZpZy5wbQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9QVkUvQVBJMi9QbHVnaW5zL1N0b3JhZ2Uv TWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvUFZFL0FQSTIvUGx1Z2lucy9TdG9yYWdl L1ZpZXdzLnBtCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL1BWRS9TdG9yYWdlL1BsdWdpbi9NYWtl ZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4vTWV0YS5wbQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4vVmlld3MucG0KCnB2ZS1t YW5hZ2VyOgoKTWF4IFIuIENhcnJhcmEgKDQpOgogIGFwaTogaGFuZGxlIHBhdGggJ3BsdWdpbnMv c3RvcmFnZScgdGhyb3VnaCBpdHMgcGFja2FnZQogIHVpOiBzdG9yYWdlOiBhZGQgQ3VzdG9tQmFz ZS5qcwogIHVpOiBzdG9yYWdlOiBzdXBwb3J0IGN1c3RvbSBzdG9yYWdlIHBsdWdpbnMgaW4gRGF0 YWNlbnRlciA+IFN0b3JhZ2UKICB1aTogc3RvcmFnZTogdXNlIGBFeHQuTXNnLmFsZXJ0KClgIGlu c3RlYWQgb2YgdGhyb3dpbmcgYW4gZXhjZXB0aW9uCgogUFZFL0FQSTIucG0gICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNiArCiB3d3cvbWFuYWdlcjYvTWFrZWZpbGUgICAgICAgICAgICAgIHwg ICAxICsKIHd3dy9tYW5hZ2VyNi9kYy9TdG9yYWdlVmlldy5qcyAgICAgfCAxMzcgKysrKysrKyst LQogd3d3L21hbmFnZXI2L3N0b3JhZ2UvQ3VzdG9tQmFzZS5qcyB8IDQwMiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA1MjQgaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgd3d3L21hbmFnZXI2L3N0b3JhZ2UvQ3Vz dG9tQmFzZS5qcwoKLS0gCjIuNDcuMgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5w cm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9wdmUtZGV2ZWwK