From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id CF2611FF142 for ; Fri, 17 Jul 2026 10:17:46 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id C262F21438; Fri, 17 Jul 2026 10:17:44 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TVSAxFmOkDGFgWph9t3shoSX/+KcDg7xLr26j4eh32InXjcSWCtCsWIBJDdMgro/ukfaML/IRlGBd0oviwVSvwpltk5BlnQ4hEkSmHDPY9iAmDiQKZlR/MRGyCL0Dyja9CB0eUHvgIMT+0ob/evObVo4NhJaq4NKdizVd6sNOo37QJeYCBmdKHL0pPj+6+jYik8Y0AvTjXY4bA0InMLdVenti8Nt8ilnltrhNYYuIfQxDTIDLd6Q0VaXnir7AuVzJLubopP3R7IKt3jKhQxbpDd7+rbCqRRq0WdU5Ski1k0KF3Bu9PiNfDR8aikPlYO0UnFqfkHjYtpNKLizagnUxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qGSw0WMeUyzUSmSnZitGvEovSenjekwvPfkbFnOutu8=; b=XJ8X/IPPf+O9n4l7+VCPnsuRpAJJsQoWF9oG6ZJJYFWz8kNcWVQ4vgx00BeIjvjfDwAOuLf+CrJv9CNttMEAzjE06jYAf9VdacCjKBsvYVBFqYzT3wfgHj9Xrm/mQjz5rL9Gsol8ZVODtUPFbvTqnyAoc9dXTTRx1I/H3AQCWm/XSUUbZuispm2OlYhjsaBKL8iwZO6Xufx1OHo9RuW6rztTezoMMo0B1oSwY2TyO9zZgNV8w+kW294OVgr079SCuNpkfY8EP8qzASg1P/0qf6Toiei+0/P8keIKj42eyGLqJYicJhRZjRhWs3AcAoGqdkq4X5O9NkFLeMjyz9p3nA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=datacore.com; dmarc=pass action=none header.from=datacore.com; dkim=pass header.d=datacore.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datacore.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qGSw0WMeUyzUSmSnZitGvEovSenjekwvPfkbFnOutu8=; b=M9MkbnmF7MBzZF10ugAD7fPoAF8CRx794HIm+9t63ebMhH8xFOZnVXJAkUjLDJDdN5j7ZKYjy+jt6gUA+FwjEN0h9NpgO7EGfF0OHO8L4oRzTmaoss9K3n/59/Ov2WgFjxXizTaijjwc3sLx3W0gIq1VaBDC481m5V8GBz379EzbBe7U6zcbZJh/OW/1lYh9dR9V2qhnjG2rhyVjmpi1ZvrtXwSD8gfKTRDtEuaehDdwkji7At6SRG++qS0+iHf2h0b1lI+GOqQ4Av5E3zWKgCMvmVaARXuu6Cm0xEK0740nZm6EHt1C5Np1G3/4SHVO1TeB8GVe9l9bBmx7HctMYA== From: Chiranth J S To: Dominik Csapak , "pve-devel@lists.proxmox.com" Subject: Re: Supported way to extend the PVE web UI for a third-party package? Thread-Topic: Supported way to extend the PVE web UI for a third-party package? Thread-Index: AQHdEpsTY+ErLV1gjEubIjTx7RQkhbZrakGAgAQ8jO0= Date: Fri, 17 Jul 2026 08:01:43 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US, en-IN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=datacore.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR11MB8495:EE_|LV0PR11MB9792:EE_ x-ms-office365-filtering-correlation-id: ce631312-ae1d-45c8-01b3-08dee3d9a476 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|23010399003|366016|1800799024|18002099003|22082099003|3023799007|4143699003|8096899003|13003099007|38070700021|10067099003|11063799006|56012099006|6133799003; x-microsoft-antispam-message-info: 9rkBGv5Mhhb4yDmykAZ4fMiOkQreRZvxiqASbEZnd2Nfpi+Af0ltOJ4fFYOiwNpNpPP8pAk+zx/u2YPsKfKIqJYk+p5LyysQAMYzqS6QGpC5Ju7JLyz+yFfJQ68zbB5rcNtyCN3UKCcx/ADxSGK5Apg2lr+JcaqZG6VqixCUFTc0smyOBhgk2cKALjM1TUnqcaK5j1/PE/KnyPf/oKuEeHOM1QD5RbJ8ZYcyOMeHKT1jSe6VXC7HLYs2+GFTN64fU2DRw67u8pvWk2LJQhwnBzUD32xQ6RVXilim/VcP58CC2RtWN6GDPxa44TUSYNqc3ANmzgHiNJeJP0796F4FsZmFB/OVDa+WolwYcQ2KRiYtdmes5cDA1EKrRJMSFdS+mK1HbdCLuapwTPBMDnvR6VHehb7/d37TzMe2bCu30eoDBMeWzOuOGqTkX0yK5Q44SCItNI6odzMzONwgoK27T6yNf29AtTN9u2wEIuiTRKkf8eHvb+gH5Z+4DMw9YeQMZf+EfP5WmRGNXSJGfWBKUzjtFglSL05XA6OJ5pMrEy9RsxQdLdwVS6FMjKNDK06RgPZtAnIrqL5OWC+LoluRsykl0GbUpSfSveBB/nJtJUL0ES0tM8/wQoBf58n9Y4iu5HLtFIJsZIWChK+yPw9Uu8vrpcJw4b6Rcj7xANfBT84= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR11MB8495.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(1800799024)(18002099003)(22082099003)(3023799007)(4143699003)(8096899003)(13003099007)(38070700021)(10067099003)(11063799006)(56012099006)(6133799003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b3lVMklDM1hJYS81VVNQdFFXb3R0MmNneFFyaE4yVGpoc1BzVEw2M09hY3Mw?= =?utf-8?B?b3dQNEwvNmU0dFBHWWZiL2Q4N3ZtQlpna2RTZVZOZEVWWmVtNG1tcmRKaWRq?= =?utf-8?B?NHZiNFdhQVg4bk9Gc09VTjdONWdrNis0TVppU05aZFAxQUFFTzBLRFhsVHYw?= =?utf-8?B?WlVUaUI5TTgvK3J2cEs1SXhORWU5VEZZbnZFR0F5VFEvamtNTEpuNjNlM3dK?= =?utf-8?B?SWhlYlZldkE0SHdsRWtrditEekxsNCsrY3JsaXkwbzlOOWw4SktlSm1OYXI3?= =?utf-8?B?U3FHY1cxTWVtaVVMdEdSMDRxOVpuK2VJN3FOa0Y2aUtOd3JMWjJMS2FDaWhE?= =?utf-8?B?Yk51S2s4SDlmb3JGYUM2WFpFZXF2RlljMlhZUlhLVmJBK2ZKc0F2MkhhRmVo?= =?utf-8?B?LzRMQkNCY3VKNHZSTGZ1STlEQ3VlTGdVMFY1eXBtN21WZE9LWW0vUTg5eGpZ?= =?utf-8?B?NkJKQVhmVnNVYm1NY0NYTHd0cE1tTmtTbEhaU0ordUJjYTNIa3R0RHBGa0x3?= =?utf-8?B?Z3BsU1J6QzBWUEtwY1dvVUdNdkxFRzdacDJPdUNlaW93TC9UQXNmNlVIcFVh?= =?utf-8?B?N1E5ejhGTlB6QnliVmgxUWxTdWJDeFhJRG9zeC9EZFFlU2E0ZXBKR1pLQXhQ?= =?utf-8?B?UEhHUURKLzJCT0dQdWJUWXFjNGdYR3Z4TG9hd0hESFBMTHlDWnV2bUZzWEJL?= =?utf-8?B?MG1KOFdKcXlRVFExRGsxNHpXYi9aZnh4THA1dUxSTEhjMHBRbXFZd0M5RUVT?= =?utf-8?B?SHNiZzg1eFVXbEN1aUN2WnhCQXBHRFRydmVtYy80eW9wUHlhbGRtb0JHQ0g5?= =?utf-8?B?ZmY1bUtQaE0rNm5MeFlIbEE4UmZxRVlDUWtYWEdEcmtYRGI2Z3ZiOGk2VTRr?= =?utf-8?B?dzh3TFZxWitKalpBT0E4QUNiQmtFRnp6czVsd3c0bHVIYnBCLzlRWUExdFp5?= =?utf-8?B?ZEZkdUE1bkRMenpmQWpwZVpNVlVzVmUrYkd2ZHFsZ2V6OW1CVnp4NFM3cFJN?= =?utf-8?B?NlF3eHBoT3VBa0lqNjRnVEZxbDEvZjJNeHJ2bnA3ZUlyRENzYVZuNVdUTW1u?= =?utf-8?B?dWhTVWlTRFc0VDM4b2hpRG5OdE9IamFFWi9UWVRINnJHakcybDFwenNTVWVa?= =?utf-8?B?L3kxcklmTi9IYVRYeWVwUUx4bHg2LzYxS0hvYUlxTDJSOFJyVjZ2VXM2SlJw?= =?utf-8?B?dVU2dGZxT2EvVTJvdmpTWFpheVVSNmZCL1Z3MnJ4MmlENWVJTFJmZ2VsV3ZY?= =?utf-8?B?VVhWSVJ3eEl1SGJXK2x5cldzWS94dVBQOExpcU9QWnNHeENRdUs2bEYyaFdD?= =?utf-8?B?TkRkRHg5RDBXUUlPRUREbFM4aEhRbWEwL0RPdjRQT3FqelVNMElrVHNXcS9t?= =?utf-8?B?dXd4RVkyRlViYU9NRUhEVFdDN3JJV0R6V2FHVzRnaUlvMllwc2ZNMWNDZWNQ?= =?utf-8?B?TGhFandMTjJ3aUlmb3Mxa0hNUEpZUG5kZ0xlbkx2VnRUekVIR1BsUWZxdXl6?= =?utf-8?B?RGErSFNRZXBJb3BwMUpRMno3dmZxZ1FqeGZVTGdLejlMekFXRHN1cEJLQjR3?= =?utf-8?B?bGtyU3Y3dTZFUEdLRTE4S2lvZndrQkZQamRrZW9ROVA3ZDEyclBzRzNER0Vw?= =?utf-8?B?ZjBwYnFJczRsbmZPS0JjZnRhbWE0TEtTSVFIZ1pha0xCQWRkU1ZsU2o3ZVdM?= =?utf-8?B?MU5Udk9pcGdPNDRSVGZZN0RiZDQvakwrSnMzUE1QUThKbFVHejBOaXJMOGJs?= =?utf-8?B?ajZYYnl1SWVMQkpwOXdoWXRzM2I5Nm8vS3haYTVwYm5iRE9ENDVvVVMzNkpr?= =?utf-8?B?ZGFuVFJoSHliNjFkM1g2MjYrM09sRkptaklZaUx1UnRydXlnNjJZbEQ4dXMv?= =?utf-8?B?R28wR0Vpd3VKMjZ6NHFDSXo1MkJHUSszWjRMeWxoOHJxWHJ1SWFtb1l5YVlQ?= =?utf-8?B?QmZPUURwc29CdTJVVWRUcjhCSFd0U1lEN3BkNXVVMTRXQzBlb1RZSDF3U0tt?= =?utf-8?B?dzNsa0ViNnRENUFYZDZ3dzNFQm9Ma1V3RlM0a3dkU1NiT1FzSlFQOEZsaXBL?= =?utf-8?B?RFkydXJGMXRIVWtHZEtHVkl0NkNEVGtvSSs5T2Vhc0RvbUwwNTlIWVV5djVC?= =?utf-8?B?MEJRZGJZTE5xbUlyYmlvSTBBaFBQOFpTQmtZOXd2eVR2bkFndCsyeVVtVzhC?= =?utf-8?B?bGxiRWFrOWtFMUY1Ykt5Q1h2RngwQm1hL0lPWjBDSDVkY3BNNHU3NE9FdU9m?= =?utf-8?B?SGR0ZGE4S29pb0ZWS05rb0pEWmgvYXdoMldERFlWTFA2d3RIbzZqTFNPTXVJ?= =?utf-8?B?cVF2V0hmTHJycytma2pPNW1MK29mcncwUmpmZEZ1QWxoalpyeUVhUT09?= MIME-Version: 1.0 X-OriginatorOrg: datacore.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR11MB8495.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce631312-ae1d-45c8-01b3-08dee3d9a476 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jul 2026 08:01:43.9345 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7fdfb85b-a737-4b5e-b8db-82fae44d92c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: th+lA6gd6d2W+y+U+PF2kEdsaQ2QIJw3WOdrv/o6+Yr48TPI3L4f4MYoPlsMcuZ73fziXkAz81z4eJ91BXsVa49dHWEBgORNzXbn9R64zX0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV0PR11MB9792 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.018 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy HTML_MESSAGE 0.001 HTML included in message 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_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: BO3GSBFBKM4INYZHEWKYVUQQVN5CXV5E X-Message-ID-Hash: BO3GSBFBKM4INYZHEWKYVUQQVN5CXV5E X-MailFrom: Chiranth.JS@datacore.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8" X-Content-Filtered-By: Mailman/MimeDel 3.3.10 CC: Vikash Ray , Prajwal Shetty , Rajkumar Rajamanickam , Alex Best X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: SGVsbG8sDQoNClRoYW5rcyBmb3IgdGhlIGNsZWFyIGFuc3dlciDigJQgdGhhdCBzZXR0bGVzIHRo ZSAic2hvdWxkIHdlIHBhdGNoIHN0b2NrIGZpbGVzIiBxdWVzdGlvbiBmb3IgdXMuDQoNClF1aWNr IGZvbGxvdy11cCBvbiBzb21ldGhpbmcgdGhhdCBjYW1lIHVwIHdoaWxlIHJldmlld2luZyBvdXIg c3RvcmFnZSBhcmNoaXRlY3R1cmUuDQoNClRvZGF5LCBQVkUncyBuYXRpdmUgTFZNIHN0b3JhZ2Ug dHlwZSBjYW4gc2l0IG9uIHRvcCBvZiBhbiBleGlzdGluZyBzaGFyZWQgdm9sdW1lIGdyb3VwIOKA lCBpbmNsdWRpbmcgb25lIGJhY2tlZCBieSBhIGRlZmF1bHQgaVNDU0kgcGx1Z2luIOKAlCBhbmQg UFZFIGhhbmRsZXMgZHluYW1pYyBMViBjcmVhdGlvbiBhdXRvbWF0aWNhbGx5Lg0KDQpJcyB0aGVy ZSBhIHBsYW4gdG8gZ2VuZXJhbGl6ZSB0aGF0ICJMVk0tb24tdG9wIiBtZWNoYW5pc20gc28gYW55 IFNDU0kvYmxvY2stYmFzZWQgY3VzdG9tIHN0b3JhZ2UgcGx1Z2luIGNhbiBnZXQgdGhlIHNhbWUg ZHluYW1pYyBwZXItdm9sdW1lIHByb3Zpc2lvbmluZywgd2l0aG91dCBlYWNoIHBsdWdpbiBoYXZp bmcgdG8gaW1wbGVtZW50IGl0cyBvd24gdm9sdW1lLWNyZWF0aW9uIGxvZ2ljPw0KDQpJZiB0aGlz IGlzIGFscmVhZHkgcG9zc2libGUgdG9kYXkgYW5kIHdlJ3ZlIGp1c3QgbWlzc2VkIHRoZSBob29r LCBhIHBvaW50ZXIgd291bGQgYmUgcmVhbGx5IGhlbHBmdWwuIElmIG5vdCwgd2UnZCBiZSBoYXBw eSB0byB3cml0ZSBpdCB1cCBhcyBhIGZlYXR1cmUgcmVxdWVzdC4NCg0KVGhhbmtzIGFnYWluIGZv ciB5b3VyIHRpbWUuDQoNCkJlc3QgcmVnYXJkcywNCkNoaXJhbnRoIEpTDQoNCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiBEb21pbmlrIENzYXBhayA8ZC5jc2FwYWtAcHJv eG1veC5jb20+DQpTZW50OiBNb25kYXksIEp1bHkgMTMsIDIwMjYgMTg6MzENClRvOiBDaGlyYW50 aCBKIFMgPENoaXJhbnRoLkpTQGRhdGFjb3JlLmNvbT47IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94 LmNvbSA8cHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tPg0KQ2M6IFZpa2FzaCBSYXkgPFZpa2Fz aC5SYXlAZGF0YWNvcmUuY29tPjsgUHJhandhbCBTaGV0dHkgPHByYWp3YWwuc2hldHR5QGRhdGFj b3JlLmNvbT4NClN1YmplY3Q6IFJlOiBTdXBwb3J0ZWQgd2F5IHRvIGV4dGVuZCB0aGUgUFZFIHdl YiBVSSBmb3IgYSB0aGlyZC1wYXJ0eSBwYWNrYWdlPw0KDQpDQVVUSU9OOiBUaGlzIGVtYWlsIG9y aWdpbmF0ZWQgZnJvbSBvdXRzaWRlIG9mIHRoZSBvcmdhbml6YXRpb24uIERvIG5vdCBjbGljayBs aW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3UgcmVjb2duaXplIHRoZSBzZW5kZXIg YW5kIGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZS4NCg0KDQpPbiA3LzEzLzI2IDE6NTkgUE0sIENo aXJhbnRoIEogUyB3cm90ZToNCj4gSGVsbG8sDQoNCkhpLA0KDQo+DQo+IEkgd29yayBhdCBEYXRh Q29yZSBTQU5zeW1waG9ueSB0ZWFtLiBXZSBzaGlwIGEgU0FOc3ltcGhvbnkgc3RvcmFnZSBiYWNr ZW5kIGZvciBQVkUgb24gdGhlIHN1cHBvcnRlZCBQVkU6OlN0b3JhZ2U6OlBsdWdpbiBjb250cmFj dCwgIHByZXNlbnRpbmcgdkRpc2tzIG92ZXIgaVNDU0kuIFRoYXQgc2lkZSBoYXMgd29ya2VkIHdl bGwgYW5kIGlzIGluIHByb2R1Y3Rpb24gd2l0aCBjdXN0b21lcnMuDQoNCkdyZWF0IHRvIGhlYXIh DQoNCj4NCj4gV2UgYWxzbyBoYXZlIGEgcHJvdG90eXBlIHRoYXQgYWRkcyBhIG5hdGl2ZS1mZWVs aW5nIFVJIG9uIHRvcCBvZiBpdCAoYSB0YWIgd2l0aCB2RGlzayBhbGlhc2VzLCBzbmFwc2hvdC9y b2xsYmFjaywgcmVzaXplIGFuZCBwZXJmb3JtYW5jZSkuIFNpbmNlIHdlIGNvdWxkbid0IGZpbmQg YW4gb2ZmaWNpYWwgVUktZXh0ZW5zaW9uIGhvb2ssIGl0IGN1cnJlbnRseSB3b3JrcyBieSBwYXRj aGluZyB0d28gcHZlLW1hbmFnZXIgZmlsZXMgYXQgaW5zdGFsbCB0aW1lIOKAlCBhZGRpbmcgYSA8 c2NyaXB0PiB0YWcgdG8gaW5kZXguaHRtbC50cGwgYW5kIGEgcmVnaXN0ZXJfbWV0aG9kIGZvciBh IC9ub2Rlcy88bm9kZT4vZGF0YWNvcmUvLi4uIHJvdXRlIGluIFBWRS9BUEkyL05vZGVzLnBtIOKA lCB3aXRoIGEgZHBrZyB0cmlnZ2VyIHRvIHJlLWFwcGx5IGFmdGVyIHVwZ3JhZGVzLg0KPg0KPiBX ZSB1bmRlcnN0YW5kIHRoZSBsb25nLXN0YW5kaW5nIGd1aWRhbmNlIHRoYXQgZmVhdHVyZXMgc2hv dWxkIGJlIGFkZGVkICJkaXJlY3RseSwgbm8gcGx1Z2luLCIgYW5kIHdlJ3JlIHdlaWdoaW5nIHdo ZXRoZXIgdG8gcHJvZHVjdGl6ZSB0aGlzLiBCZWZvcmUgd2UgZGVjaWRlLCB0d28gcXVlc3Rpb25z Og0KPg0KPg0KPiAgICAxLg0KPiBJcyB0aGVyZSBhbnkgc3VwcG9ydGVkIG9yIHBsYW5uZWQgbWVj aGFuaXNtIHRvIGV4dGVuZCB0aGUgUFZFIHdlYiBVSSAoYWRkIGEgdmlldy90YWIpIG9yIHJlZ2lz dGVyIGEgbm9kZXMvPG5vZGU+Ly4uLiBBUEkyIHJvdXRlIGZyb20gYSB0aGlyZC1wYXJ0eSBwYWNr YWdlIOKAlCBhbnl0aGluZyBhbmFsb2dvdXMgdG8gdGhlIHN0b3JhZ2UgcGx1Z2luIGNvbnRyYWN0 LCBidXQgZm9yIHRoZSBmcm9udGVuZD8NCj4gICAgMi4NCj4gSWYgbm90LCBpcyBpbi1wbGFjZSBw YXRjaGluZyBvZiBpbmRleC5odG1sLnRwbCAvIE5vZGVzLnBtIGNvbnNpZGVyZWQgYW4gYWNjZXB0 YWJsZSBhcHByb2FjaCAoc2V2ZXJhbCBjb21tdW5pdHkgcHJvamVjdHMgZG8gdGhpcyksIG9yIGRv ZXMgaXQgcHV0IGEgbm9kZSBpbiBhbiB1bnN1cHBvcnRlZCBzdGF0ZSBmcm9tIHlvdXIgcGVyc3Bl Y3RpdmU/IElzIHRoZXJlIGEgcGF0dGVybiB5b3UnZCByZWNvbW1lbmQgaW5zdGVhZD8NCj4NCj4N Cj4gQSBjbGVhciAidGhlcmUncyBubyBzdXBwb3J0ZWQgaG9vaywgZG9uJ3QgcGF0Y2ggY29yZSBm aWxlcyIgaXMganVzdCBhcyB1c2VmdWwgdG8gdXMgYXMgYSB5ZXMuDQo+IFRoYW5rcyBmb3IgeW91 ciB0aW1lLCBhbmQgZm9yIHRoZSBzdG9yYWdlIHBsdWdpbiBBUEkuDQo+DQo+IEJlc3QgcmVnYXJk cywNCj4gQ2hpcmFudGggSlMNCj4NCkN1cnJlbnRseSB0aGVyZSBpcyBubyBob29rIHRvIGV4dGVu ZCB0aGUgR1VJIG9yIGFkZCBhbnkgQVBJIGNhbGxzLg0KDQpUaGVyZSBpcyBvbmdvaW5nIHdvcmsg dG8gZXhwb3NlIGEgc2NoZW1hIGZvciBjdXN0b20gc3RvcmFnZSBwbHVnaW5zIHNvDQp0aGV5IGNh biBiZSBhZGRlZC9lZGl0ZWQvZXRjLiB2aWEgdGhlIEdVSToNCg0KaHR0cHM6Ly9sb3JlLnByb3ht b3guY29tL3B2ZS1kZXZlbC8yMDI2MDYyMzE0MzQwMi43NzI0NTItMS1tLmNhcnJhcmFAcHJveG1v eC5jb20vDQoNCkhvd2V2ZXIsIHRoaXMgaXMgc3RpbGwgdmVyeSBtdWNoIGluIHByb2dyZXNzLiBG ZWVkYmFjayBpcyB3ZWxjb21lDQp0aG91Z2gsIHRoZSBzb29uZXIgd2UgY2FuIGdhdWdlIGV4dGVy bmFsIG5lZWRzIGFuZCByZXF1aXJlbWVudHMsDQp0aGUgYmV0dGVyLg0KDQpJJ20gbm90IHN1cmUg d2hhdCBraW5kIG9mIGludGVncmF0aW9uIHlvdSd2ZSBidWlsdCBvciBhcmUgcGxhbm5pbmcsDQpi dXQgYXMgZmFyIGFzIEkga25vdywgdGhlcmUgaXMgbm8gcGxhbiB0byBhbGxvdyBleHRlcm5hbCB2 ZW5kb3JzDQp0byBhZGQgZ2VuZXJpYyBVSSBmdW5jdGlvbmFsaXR5IG9yIEFQSSBjYWxscy4NCg0K TW9kaWZ5aW5nIHRoZSBmaWxlcyB3ZSBzaGlwIGlzIGFsd2F5cyBwcm9ibGVtYXRpYzogdGhleSB3 aWxsIGJlDQpvdmVyd3JpdHRlbiBieSBhIHBhY2thZ2UgdXBkYXRlIGFuZCBkZXBlbmRpbmcgb24g aG93IHRoZSBwYXRjaGluZyBpcw0KZG9uZSwgaXQgbWlnaHQgYnJlYWsgb3VyIFVJIGFuZC9vciBj YW4gY2F1c2Ugc3VwcG9ydCBpc3N1ZXMgb24gb3VyIHNpZGUuDQoNClNvIHdlJ2Qgc3Ryb25nbHkg cHJlZmVyIHRoYXQgdmVuZG9ycyBkbyBub3QgbW9kaWZ5IHRoZSBzdG9jayBQVkUgZmlsZXMuDQoN ClRoYXQgc2FpZCwgaWYgeW91J3ZlIGlkZW50aWZpZWQgYSBwbGFjZSB3aGVyZSBQVkUgY291bGQg YmVuZWZpdCBmcm9tDQpzdWNoIGEgcGx1Z2luL2V4dGVuc2lvbiwgcGxlYXNlIGRpc2N1c3MgKGFz IGNvbmNyZXRlbHkgYXMgcG9zc2libGUpIHN1Y2gNCnJlcXVpcmVtZW50cyBoZXJlIG9uIHRoZSBt YWlsaW5nIGxpc3Qgb3IgdmlhIG91ciBidWd0cmFja2VyOg0KaHR0cHM6Ly9idWd6aWxsYS5wcm94 bW94LmNvbQ0KDQpXZSBjYW4ndCBwcm9taXNlIHRvIGltcGxlbWVudCBhbnl0aGluZyBzcGVjaWZp YywgYnV0IHVuZGVyc3RhbmRpbmcgd2hhdA0KdmVuZG9ycyBtaWdodCBuZWVkIG9yIHdhbnQgY2Fu IGhlbHAgdXMgKGFuZCB5b3UpIGZpbmQgYSBzb2x1dGlvbiB0aGF0DQpiZW5lZml0cyBib3RoLg0K DQpIb3BlIHRoaXMgYW5zd2VycyB5b3VyIHF1ZXN0aW9ucywgZG9uJ3QgaGVzaXRhdGUgdG8gZm9s bG93IHVwIG9yIG9wZW4NCmJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLg0KDQpCZXN0 IHJlZ2FyZHMNCkRvbWluaWsNCg0K