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 04EE21FF139 for ; Tue, 10 Feb 2026 22:02:51 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1F1B8D1B3; Tue, 10 Feb 2026 22:03:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=open-e.com; s=s1-ionos; t=1770757398; x=1771362198; i=andrei.perepiolkin@open-e.com; bh=Jo43vfP1cES7mXklDDkEQtN9LmVj6eRhdEvVtgCANcY=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=KzhtNgDHObKPP8AUQFLxX1GxRhjBzQeBCY4zi8B329GeP84orFXdwP7z2oLdg9eR ro6WWs9ONVHuqH4ekIKsPlwrbxrW+QsNTCh/R1bCs34H8yPGCY9KnPfpKf1GFGMrG HNyieyFd9ywLpf4y27jPwIM3I1AFx49L+wQA7a54DcoLNhoCOzrrMSakrWxgcwljj 4XckoLDtzpuQVg8C4+nPPkemiuYDxXu6+Hgcy0Iubnf3Nz0EmacUO5b/abh+0FqvI SsY52Di9U7h9vpp3LgYYCIctUKyp66ZtC7LQUKE5J3wb5MR1rvOiQKqerAhUjmF+E zKIcfperH2e6FdjupA== X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Message-ID: <32e444a7-f273-4b3d-b91c-c76c1828d86d@open-e.com> Date: Tue, 10 Feb 2026 15:57:46 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [pve-devel] [RFC pve-storage/proxmox-widget-toolkit/pve-manager master v2 00/10] GUI Support for Custom Storage Plugins To: "Max R. Carrara" , pve-devel@lists.proxmox.com References: <20251121165858.818307-1-m.carrara@proxmox.com> Content-Language: en-US From: Andrei Perepiolkin In-Reply-To: X-Provags-ID: V03:K1:cPBIVGp8WGPTGUMm3jgsXtrdRQkt0vKSYo/EJTzzheYXjkcOK/G rfczeKuPbKs75IdbM69Gx2zkVRDwpl/cOEerpiyMUF9ouacdc4y1ZqySczVowtK4LabuHWe AR8A5sw5OZh662XItbbC6xpo37wEMHoMfpWAc/v7NJrj5WjAbVH+HUla9p9eJnAw1SwlinC nu4UEvh1CtRuqRKq2iD/g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:uGuwraJDUX4=;CeCH04Jkjo4GJ9KaX4u3w+I8dWS tajcTotfn2QUgb40Oah4qZ1gsQSOU8rynOnWXItiVDbz7JPJjvipqn7LZwb1DLtQO2/Xuwl0g jTsxOAvGipvjuiiUQ4OL/oNdn/cJ1yRdIJuIlqjVG7pB2mnfKk3+Xc/SQFgwHVsVK+pzhJ4bb xCV654Q0FsZF8Jn94IT6dvR9S+owl+YgmxYlXy+rzLb6o0hZv+MWDePKxhfeDbkjf07+tYLFe bTNEYJWH84t9o7oDL62XX2tjgwwVkCqxyImaF1x8yX08AT7Nvyaufg20YC6cuQ2D156TjYAhm EJ97tWYcmyg1LRKB672fa8TdSRbStmRdb5X7y2pEvyGlvUd+DU6c1QvJ5PjuHgDLCTEZkjhZr Ifc8fdE3FL0j94qCx3v9kJpCVwpS01oQ4fgQg5y3IeVHJ5Mu6qGNcpBaeyDqvGLIknB124+oA lzupZ/seoni4ZvBPr9edgmX7P/xEgA90LXdqR3wfC079Nx9H6+v/PgPgCx4JhwwLgLspPs5Oe CqAPJzMr1qTIAmPbUDYEVUl7ai2feFdU+DHuoCpCK0nbEhdN+pUciYYGAudpEmDG+kzpB2uVj juSSySVpu4ulkz91wdYnMP/eIMax0ifm1jX9pWvqtbwjyn2Lp9ZWLxVD3t1C9P9KJre3Gf3AN BH24zfWAzKESVHzIQuo1NexVoI+HR/HwHE0F+NEwhuwQA2sEupciBtn8mCsFtOL+0ZRsRnvyo HMs/jxHyC662srwPAGsNyBVHXAu8aRBnQBcu7ScQYFV1L9/BqQPpnoDws8avJOOnHHcurEOCx 7B7ZSno1uWVidVyKarg7KXpdjJTahBOVcgIU5ClcxwxQYJ+Mmm1826hXsLtP3GcsMoB/LqcwM 1uedG9GiLr7Hpl1H1Ughh7y6bQHb+f8QJkOGKidlGQnH28P8ELgX4vL4lS3qs4zCxr0xUGhMk rT+nMxDwDB+97QZiyuSYeti47EfEmy6oKJ7Tb4xsWnB9zeNPUxmn/3N5YBQQ1LMoCEc/vD+E9 b1ng3bjoqI8vtSFUu2JJt8s1L0G+96Q2I1U9Uxb0zHX4Ts4Gg+d5fwg3yvFNTaxJe/MnkJpy+ WE00/tEmN6C8/v5uS/qekdWrQd7Yp5JKRgjdhSqjEs0G47TjWSgt8g/UkRTFVcjbmYdM5UMk8 cGAPD58O1RzkxBt59jEAKaJ4IXTvR47bTv46QkVHna621X6DUbzlig89GbbepSIipTcH17VSZ v6FVJvNeIAEwqHF1SphVoDhl/hVAHf65TCU+i83RNJIq8CMDMcqhLLMr668RFnN2v4fHZzdwP wSh/CPSaVK8vIZYnZ0a5lcuZUcTO5dJY4FMUO2NZ/3Z9Bp+0WBHv9FkhP1RGvYt2P0uIIy4NA XhWfnAHOX+55CgAx3IlPx1HmEyusEJHQhQWiwvFa4wEup3N9kWM8U+iLlwReAGMM4o/WNyI+y eqcLbKvKljx1Or7qGO3CyWnF8qO5dh6yxXWEFqSDiKpIPKzTUYUl5n0m8ewJP9KfZNGjmwxlt giJs88H8jytg0SMj0xogjDchawCMm05+iP1iCwpi2ypZjY06x+lCRuxUqOBA+IySkE5MDiKn2 ZHj00mOGDDn3VGhJPy/pIQSU66E02Uo5tOhGMoC3JOTNKTRWhlgVtGZ71+cy4s88nU6PV8sZn 3a1vBexIwsO1mC2fdKzkq8xCHjIcAae8umdZynEUNTluvOBUlQaWA+DPG2pGO8i/ZkUY+U+ZF UvBP/ZSWs+yo94DA9KYwqDHlC+XbWOEOshg== X-SPAM-LEVEL: Spam detection results: 0 AWL -0.005 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% 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 RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust RCVD_IN_MSPIKE_H2 0.001 Average reputation (+2) 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 Message-ID-Hash: UPAGHSHYY3AFZ6G4VPSSJU6LJ3PQMFA3 X-Message-ID-Hash: UPAGHSHYY3AFZ6G4VPSSJU6LJ3PQMFA3 X-MailFrom: andrei.perepiolkin@open-e.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; format=flowed X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: SGkgTWF4LA0KDQoNCkkgZmluYWxseSBnb3QgbXlzZWxmIHRvIHRlc3QgY29kZSBhbmQgSW0gc3R1 Y2sgb24gbWFraW5nIGRlYiBwYWNrYWdlczoNCg0KRm9yIHB2ZS1zdG9yYWdlIGVycm9yIGxvb2tz IGxpa2U6DQoNCi4uLi4uLi4uDQoNCm1ha2VbM106IEVudGVyaW5nIGRpcmVjdG9yeSANCicvcm9v dC9idWlsZC9wdmUtc3RvcmFnZS9saWJwdmUtc3RvcmFnZS1wZXJsLTkuMS4wL1BWRScNCm1ha2Vb M106IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgJ2NsZWFuJy4NCm1ha2VbM106IExlYXZpbmcgZGly ZWN0b3J5IA0KJy9yb290L2J1aWxkL3B2ZS1zdG9yYWdlL2xpYnB2ZS1zdG9yYWdlLXBlcmwtOS4x LjAvUFZFJw0KbWFrZSAtQyB1ZGV2LXJiZCBjbGVhbg0KbWFrZVszXTogRW50ZXJpbmcgZGlyZWN0 b3J5IA0KJy9yb290L2J1aWxkL3B2ZS1zdG9yYWdlL2xpYnB2ZS1zdG9yYWdlLXBlcmwtOS4xLjAv dWRldi1yYmQnDQptYWtlWzNdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICdjbGVhbicuDQptYWtl WzNdOiBMZWF2aW5nIGRpcmVjdG9yeSANCicvcm9vdC9idWlsZC9wdmUtc3RvcmFnZS9saWJwdmUt c3RvcmFnZS1wZXJsLTkuMS4wL3VkZXYtcmJkJw0KbWFrZVsyXTogTGVhdmluZyBkaXJlY3Rvcnkg DQonL3Jvb3QvYnVpbGQvcHZlLXN0b3JhZ2UvbGlicHZlLXN0b3JhZ2UtcGVybC05LjEuMCcNCiDC oMKgIGRoX2NsZWFuDQptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSANCicvcm9vdC9idWlsZC9w dmUtc3RvcmFnZS9saWJwdmUtc3RvcmFnZS1wZXJsLTkuMS4wJw0KIMKgZGViaWFuL3J1bGVzIGJp bmFyeQ0KbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IA0KJy9yb290L2J1aWxkL3B2ZS1zdG9y YWdlL2xpYnB2ZS1zdG9yYWdlLXBlcmwtOS4xLjAnDQpkaCBiaW5hcnkNCiDCoMKgIGRoX3VwZGF0 ZV9hdXRvdG9vbHNfY29uZmlnDQogwqDCoCBkaF9hdXRvcmVjb25mDQogwqDCoCBkaF9hdXRvX2Nv bmZpZ3VyZQ0KIMKgwqAgZGhfYXV0b19idWlsZA0KIMKgwqDCoMKgwqDCoMKgIG1ha2UgLWoxNiAi SU5TVEFMTD1pbnN0YWxsIC0tc3RyaXAtcHJvZ3JhbT10cnVlIg0KbWFrZVsyXTogRW50ZXJpbmcg ZGlyZWN0b3J5IA0KJy9yb290L2J1aWxkL3B2ZS1zdG9yYWdlL2xpYnB2ZS1zdG9yYWdlLXBlcmwt OS4xLjAnDQptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICdhbGwnLg0KbWFrZVsyXTog TGVhdmluZyBkaXJlY3RvcnkgDQonL3Jvb3QvYnVpbGQvcHZlLXN0b3JhZ2UvbGlicHZlLXN0b3Jh Z2UtcGVybC05LjEuMCcNCiDCoMKgIGRoX2F1dG9fdGVzdA0KIMKgwqDCoMKgwqDCoMKgIG1ha2Ug LWoxNiB0ZXN0DQptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgDQonL3Jvb3QvYnVpbGQvcHZl LXN0b3JhZ2UvbGlicHZlLXN0b3JhZ2UtcGVybC05LjEuMCcNCnBlcmwgLUkuIC1UIC1lICJ1c2Ug UFZFOjpDTEk6OnB2ZXNtOyBQVkU6OkNMSTo6cHZlc20tPnZlcmlmeV9hcGkoKTsiDQo0MDAgaW50 ZXJuYWwgZXJyb3IgLSB1bmFibGUgdG8gdmVyaWZ5IHNjaGVtYQ0KcHJvcGVydGllcy5jb250cm9s X3BvcnQudHlwZTogdmFsdWUgJ2ludCcgZG9lcyBub3QgaGF2ZSBhIHZhbHVlIGluIHRoZSANCmVu dW1lcmF0aW9uICdzdHJpbmcsIG9iamVjdCwgY29kZXJlZiwgYXJyYXksIGJvb2xlYW4sIG51bWJl ciwgaW50ZWdlciwgDQpudWxsLCBhbnknDQpwcm9wZXJ0aWVzLmRhdGFfcG9ydC50eXBlOiB2YWx1 ZSAnaW50JyBkb2VzIG5vdCBoYXZlIGEgdmFsdWUgaW4gdGhlIA0KZW51bWVyYXRpb24gJ3N0cmlu Zywgb2JqZWN0LCBjb2RlcmVmLCBhcnJheSwgYm9vbGVhbiwgbnVtYmVyLCBpbnRlZ2VyLCANCm51 bGwsIGFueScNCnByb3BlcnRpZXMubHVuc19wZXJfdGFyZ2V0LnR5cGU6IHZhbHVlICdpbnQnIGRv ZXMgbm90IGhhdmUgYSB2YWx1ZSBpbiANCnRoZSBlbnVtZXJhdGlvbiAnc3RyaW5nLCBvYmplY3Qs IGNvZGVyZWYsIGFycmF5LCBib29sZWFuLCBudW1iZXIsIA0KaW50ZWdlciwgbnVsbCwgYW55Jw0K bWFrZVsyXTogKioqIFtNYWtlZmlsZToxNjogdGVzdF0gRXJyb3IgMjU1DQptYWtlWzJdOiBMZWF2 aW5nIGRpcmVjdG9yeSANCicvcm9vdC9idWlsZC9wdmUtc3RvcmFnZS9saWJwdmUtc3RvcmFnZS1w ZXJsLTkuMS4wJw0KZGhfYXV0b190ZXN0OiBlcnJvcjogbWFrZSAtajE2IHRlc3QgcmV0dXJuZWQg ZXhpdCBjb2RlIDINCm1ha2VbMV06ICoqKiBbZGViaWFuL3J1bGVzOjEzOiBiaW5hcnldIEVycm9y IDI1NQ0KbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgDQonL3Jvb3QvYnVpbGQvcHZlLXN0b3Jh Z2UvbGlicHZlLXN0b3JhZ2UtcGVybC05LjEuMCcNCmRwa2ctYnVpbGRwYWNrYWdlOiBlcnJvcjog ZGViaWFuL3J1bGVzIGJpbmFyeSBzdWJwcm9jZXNzIHJldHVybmVkIGV4aXQgDQpzdGF0dXMgMg0K bWFrZTogKioqIFtNYWtlZmlsZTozMTogbGlicHZlLXN0b3JhZ2UtcGVybF85LjEuMF9hbGwuZGVi XSBFcnJvciAyDQoNCg0KDQpGb3IgcHZlLW1hbmFnZXI6DQoNCi4uLi4uDQoNCnRlc3QgLXogIiR7 UFZFX0RPQ19JTlNUQU5UVklFV30iIHx8IG1hbiAtbCBwdmVzci4xDQpOb3RlOiBXcml0aW5nIHB2 ZW5vZGUuMQ0KdGVzdCAteiAiJHtQVkVfRE9DX0lOU1RBTlRWSUVXfSIgfHwgbWFuIC1sIHB2ZW5v ZGUuMQ0KQ2FuJ3QgbG9jYXRlIFBWRS9BUEkyL1BsdWdpbnMvU3RvcmFnZS5wbSBpbiBASU5DICh5 b3UgbWF5IG5lZWQgdG8gDQppbnN0YWxsIHRoZSBQVkU6OkFQSTI6OlBsdWdpbnM6OlN0b3JhZ2Ug bW9kdWxlKSAoQElOQyBlbnRyaWVzIGNoZWNrZWQ6IA0KLi4gLiAvZXRjL3BlcmwgL3Vzci9sb2Nh bC9saWIveDg2XzY0LWxpbnV4LWdudS9wZXJsLzUuNDAuMSANCi91c3IvbG9jYWwvc2hhcmUvcGVy bC81LjQwLjEgL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wZXJsNS81LjQwIA0KL3Vzci9zaGFy ZS9wZXJsNSAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3BlcmwtYmFzZSANCi91c3IvbGliL3g4 Nl82NC1saW51eC1nbnUvcGVybC81LjQwIC91c3Ivc2hhcmUvcGVybC81LjQwIA0KL3Vzci9sb2Nh bC9saWIvc2l0ZV9wZXJsKSBhdCAuLi9QVkUvQVBJMi9QbHVnaW5zLnBtIGxpbmUgOC4NCkJFR0lO IGZhaWxlZC0tY29tcGlsYXRpb24gYWJvcnRlZCBhdCAuLi9QVkUvQVBJMi9QbHVnaW5zLnBtIGxp bmUgOC4NCkNvbXBpbGF0aW9uIGZhaWxlZCBpbiByZXF1aXJlIGF0IC4uL1BWRS9BUEkyLnBtIGxp bmUgMjAuDQpCRUdJTiBmYWlsZWQtLWNvbXBpbGF0aW9uIGFib3J0ZWQgYXQgLi4vUFZFL0FQSTIu cG0gbGluZSAyMC4NCkNvbXBpbGF0aW9uIGZhaWxlZCBpbiByZXF1aXJlIGF0IC4uL1BWRS9TZXJ2 aWNlL3B2ZXByb3h5LnBtIGxpbmUgMTMuDQpCRUdJTiBmYWlsZWQtLWNvbXBpbGF0aW9uIGFib3J0 ZWQgYXQgLi4vUFZFL1NlcnZpY2UvcHZlcHJveHkucG0gbGluZSAxMy4NCkNvbXBpbGF0aW9uIGZh aWxlZCBpbiByZXF1aXJlIGF0IC1lIGxpbmUgMS4NCkJFR0lOIGZhaWxlZC0tY29tcGlsYXRpb24g YWJvcnRlZCBhdCAtZSBsaW5lIDEuDQpDYW4ndCBsb2NhdGUgUFZFL0FQSTIvUGx1Z2lucy9TdG9y YWdlLnBtIGluIEBJTkMgKHlvdSBtYXkgbmVlZCB0byANCmluc3RhbGwgdGhlIFBWRTo6QVBJMjo6 UGx1Z2luczo6U3RvcmFnZSBtb2R1bGUpIChASU5DIGVudHJpZXMgY2hlY2tlZDogDQouLiAuIC9l dGMvcGVybCAvdXNyL2xvY2FsL2xpYi94ODZfNjQtbGludXgtZ251L3BlcmwvNS40MC4xIA0KL3Vz ci9sb2NhbC9zaGFyZS9wZXJsLzUuNDAuMSAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3Blcmw1 LzUuNDAgDQovdXNyL3NoYXJlL3Blcmw1IC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcGVybC1i YXNlIA0KL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wZXJsLzUuNDAgL3Vzci9zaGFyZS9wZXJs LzUuNDAgDQovdXNyL2xvY2FsL2xpYi9zaXRlX3BlcmwpIGF0IC4uL1BWRS9BUEkyL1BsdWdpbnMu cG0gbGluZSA4Lg0KQkVHSU4gZmFpbGVkLS1jb21waWxhdGlvbiBhYm9ydGVkIGF0IC4uL1BWRS9B UEkyL1BsdWdpbnMucG0gbGluZSA4Lg0KQ29tcGlsYXRpb24gZmFpbGVkIGluIHJlcXVpcmUgYXQg Li4vUFZFL0FQSTIucG0gbGluZSAyMC4NCkJFR0lOIGZhaWxlZC0tY29tcGlsYXRpb24gYWJvcnRl ZCBhdCAuLi9QVkUvQVBJMi5wbSBsaW5lIDIwLg0KQ29tcGlsYXRpb24gZmFpbGVkIGluIHJlcXVp cmUgYXQgLi4vUFZFL0NMSS9wdmVzaC5wbSBsaW5lIDE2Lg0KQkVHSU4gZmFpbGVkLS1jb21waWxh dGlvbiBhYm9ydGVkIGF0IC4uL1BWRS9DTEkvcHZlc2gucG0gbGluZSAxNi4NCkNvbXBpbGF0aW9u IGZhaWxlZCBpbiByZXF1aXJlIGF0IC1lIGxpbmUgMS4NCkJFR0lOIGZhaWxlZC0tY29tcGlsYXRp b24gYWJvcnRlZCBhdCAtZSBsaW5lIDEuDQptYWtlWzNdOiAqKiogWy91c3Ivc2hhcmUvcHZlLWRv Yy1nZW5lcmF0b3IvcHZlLWRvYy1nZW5lcmF0b3IubWs6Mzg6IA0KcHZlcHJveHkuOC1zeW5vcHNp cy5hZG9jXSBFcnJvciAyDQptYWtlWzNdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2Jz Li4uLg0KbWFrZVszXTogKioqIFsvdXNyL3NoYXJlL3B2ZS1kb2MtZ2VuZXJhdG9yL3B2ZS1kb2Mt Z2VuZXJhdG9yLm1rOjM0OiANCnB2ZXNoLjEtc3lub3BzaXMuYWRvY10gRXJyb3IgMg0KTm90ZTog V3JpdGluZyB2emR1bXAuMQ0KdGVzdCAteiAiJHtQVkVfRE9DX0lOU1RBTlRWSUVXfSIgfHwgbWFu IC1sIHZ6ZHVtcC4xDQpDYW4ndCBsb2NhdGUgUFZFL0FQSTIvUGx1Z2lucy9TdG9yYWdlLnBtIGlu IEBJTkMgKHlvdSBtYXkgbmVlZCB0byANCmluc3RhbGwgdGhlIFBWRTo6QVBJMjo6UGx1Z2luczo6 U3RvcmFnZSBtb2R1bGUpIChASU5DIGVudHJpZXMgY2hlY2tlZDogDQouLiAuIC9ldGMvcGVybCAv dXNyL2xvY2FsL2xpYi94ODZfNjQtbGludXgtZ251L3BlcmwvNS40MC4xIA0KL3Vzci9sb2NhbC9z aGFyZS9wZXJsLzUuNDAuMSAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3Blcmw1LzUuNDAgDQov dXNyL3NoYXJlL3Blcmw1IC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcGVybC1iYXNlIA0KL3Vz ci9saWIveDg2XzY0LWxpbnV4LWdudS9wZXJsLzUuNDAgL3Vzci9zaGFyZS9wZXJsLzUuNDAgDQov dXNyL2xvY2FsL2xpYi9zaXRlX3BlcmwpIGF0IC4uL1BWRS9BUEkyL1BsdWdpbnMucG0gbGluZSA4 Lg0KQkVHSU4gZmFpbGVkLS1jb21waWxhdGlvbiBhYm9ydGVkIGF0IC4uL1BWRS9BUEkyL1BsdWdp bnMucG0gbGluZSA4Lg0KQ29tcGlsYXRpb24gZmFpbGVkIGluIHJlcXVpcmUgYXQgLi4vUFZFL0FQ STIucG0gbGluZSAyMC4NCkJFR0lOIGZhaWxlZC0tY29tcGlsYXRpb24gYWJvcnRlZCBhdCAuLi9Q VkUvQVBJMi5wbSBsaW5lIDIwLg0KQ29tcGlsYXRpb24gZmFpbGVkIGluIHJlcXVpcmUgYXQgLi4v UFZFL1NlcnZpY2UvcHZlZGFlbW9uLnBtIGxpbmUgOC4NCkJFR0lOIGZhaWxlZC0tY29tcGlsYXRp b24gYWJvcnRlZCBhdCAuLi9QVkUvU2VydmljZS9wdmVkYWVtb24ucG0gbGluZSA4Lg0KQ29tcGls YXRpb24gZmFpbGVkIGluIHJlcXVpcmUgYXQgLWUgbGluZSAxLg0KQkVHSU4gZmFpbGVkLS1jb21w aWxhdGlvbiBhYm9ydGVkIGF0IC1lIGxpbmUgMS4NCm1ha2VbM106ICoqKiBbL3Vzci9zaGFyZS9w dmUtZG9jLWdlbmVyYXRvci9wdmUtZG9jLWdlbmVyYXRvci5tazozODogDQpwdmVkYWVtb24uOC1z eW5vcHNpcy5hZG9jXSBFcnJvciAyDQpOb3RlOiBXcml0aW5nIHB2ZWNlcGguMQ0KdGVzdCAteiAi JHtQVkVfRE9DX0lOU1RBTlRWSUVXfSIgfHwgbWFuIC1sIHB2ZWNlcGguMQ0KbWFrZVszXTogTGVh dmluZyBkaXJlY3RvcnkgJy9yb290L2J1aWxkL3B2ZS1tYW5hZ2VyL3B2ZS1tYW5hZ2VyLTkuMS41 L2JpbicNCm1ha2VbMl06ICoqKiBbTWFrZWZpbGU6MTY6IGFsbF0gRXJyb3IgMg0KbWFrZVsyXTog TGVhdmluZyBkaXJlY3RvcnkgJy9yb290L2J1aWxkL3B2ZS1tYW5hZ2VyL3B2ZS1tYW5hZ2VyLTku MS41Jw0KZGhfYXV0b19idWlsZDogZXJyb3I6IG1ha2UgLWoxNiAiSU5TVEFMTD1pbnN0YWxsIC0t c3RyaXAtcHJvZ3JhbT10cnVlIiANCnJldHVybmVkIGV4aXQgY29kZSAyDQptYWtlWzFdOiAqKiog W2RlYmlhbi9ydWxlczo3OiBidWlsZF0gRXJyb3IgMg0KbWFrZVsxXTogTGVhdmluZyBkaXJlY3Rv cnkgJy9yb290L2J1aWxkL3B2ZS1tYW5hZ2VyL3B2ZS1tYW5hZ2VyLTkuMS41Jw0KZHBrZy1idWls ZHBhY2thZ2U6IGVycm9yOiBkZWJpYW4vcnVsZXMgYnVpbGQgc3VicHJvY2VzcyByZXR1cm5lZCBl eGl0IA0Kc3RhdHVzIDINCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDI6IHB2ZS1tYW5hZ2VyXzkuMS41 X2FsbC5kZWJdIEVycm9yIDINCg0KDQoNCkkndmUgbWFuYWdlZCB0byBtYWtlIGRlYiBwYWNrYWdl IGZvciBwcm94bW94LXdpZGdldC10b29sa2l0Lg0KDQpNeSBzdHJhdGVneSBpcyB0bzoNCjEuIGFw cGx5IHlvdXIgcGF0Y2hlcyB0byBjb2RlIGluIHJlcG9zaXRvcmllcw0KMi4gbWFrZSBkZWIgcGFj a2FnZXMNCjMuIGluc3RhbGwgZGViIHBhY2thZ2VzIG9uIHN5c3RlbSBhbmQgdGVzdCBpdA0KDQpN YXkgYmUgeW91IGNhbiByZWNvbW1lbmQgc29tZXRoaW5nIG9yIHBvaW50IG1lIHRvIHRoZSBndWlk ZSByZWdhcmRpbmcgDQptYWtpbmcgZGViIHBhY2thZ2VzIHdpdGggYXBwbGllZCBwYXRjaGVzLg0K SXZlIGluc3RhbGxlZCBkZXYgcmVwb3NpdG9yaWVzIGFjY29yZGluZyB0byANCmh0dHBzOi8vcHZl LnByb3htb3guY29tL3dpa2kvRGV2ZWxvcGVyX0RvY3VtZW50YXRpb24NCg0KQnV0IEkgdGhpbmsg SW0gbWlzaW5nIHNvbWV0aGluZyByZWxhdGVkIHRvIGxpbmthZ2Ugb3Igc29tZXRoaW5nIGVsc2UN Cg0KSW0gYnVpbGRpbmcgcGFja2FnZXMgb24gcHJveG1veCA5LjEgdXBkYXRlZCB0byA5LjUNCg0K DQpCZXN0IHJlZ2FyZHMsDQoNCkFuZHJlaQ0KDQpPbiAxLzkvMjYgMDQ6MTksIE1heCBSLiBDYXJy YXJhIHdyb3RlOg0KPiBPbiBUaHUgSmFuIDgsIDIwMjYgYXQgMTE6NDggUE0gQ0VULCBBbmRyZWkg UGVyZXBpb2xraW4gd3JvdGU6ID4+IEhpIE1heCwgPj4gPj4gPj4gSSBsaWtlIHlvdXIgaWRlYSBv ZiBleHRlbmRpbmcgUHJveG1veCB3aXRoIHRoZSANCmNhcGFiaWxpdHkgdG8gPj4gcmVuZGVyIGEg VUkgZm9yIGFkZGluZyBhbmQgZWRpdGluZyBjdXN0b20gc3RvcmFnZSANCnBsdWdpbnMuID4+ID4+ IEknbSBjdXJpb3VzIOKAlCB3YXMgeW91ciBwYXRjaCBhcHByb3ZlZCBvciBtZXJnZWQ/ID4+ID4+ ID4+IA0KQmVzdCByZWdhcmRzLCA+PiA+PiBBbmRyZWkgUGVyZXBpb2xraW4gPiA+IEhlbGxvIEFu ZHJlaSEgPiA+IEknbSB2ZXJ5IA0KZ2xhZCB5b3UgbGlrZSBpdCEgVGhlIFJGQyBpcyBzdGlsbCBh d2FpdGluZyBjb21tZW50cyAvID4gZmVlZGJhY2sgLyANCnJldmlldywgbW9zdGx5IGJlY2F1c2Ug aXQgaXMgLyB3YXMgaG9saWRheSBzZWFzb24uID4gPiBIb3dldmVyLCBpZiB5b3UnZCANCmxpa2Ug dG8gc2VlIHRoaXMgbWVyZ2VkIG9yIGl0ZXJhdGVkIG9uIGZhc3RlciwgSSdkID4gaGlnaGx5IGFw cHJlY2lhdGUgDQphbnkgZmVlZGJhY2sgYW5kL29yIHRlc3RpbmchIDopID4gPiBJZiB5b3Ugd2Fu dCB0byB0cnkgaXQgb3V0IGZvciANCnlvdXJzZWxmLCBsZXQgbWUga25vdyBpZiB5b3UgbmVlZCBh bnkgPiBoZWxwIGFwcGx5aW5nIG9yIGJ1aWxkaW5nIHRoZSANCnBhdGNoZXMuIEl0IHNob3VsZCB3 b3JrIHdpdGggYW55IHRoaXJkLSA+IHBhcnR5IHBsdWdpbiBvdXQgb2YgdGhlIGJveCwgDQppbmNs dWRpbmcgeW91cnMuID4gPiBCZXN0IHJlZ2FyZHMsIE1heCA+ID4+ID4+IE9uIDExLzIxLzI1IDEx OjU4LCBNYXggUi4gDQpDYXJyYXJhIHdyb3RlOiA+Pj4gR1VJIFN1cHBvcnQgZm9yIEN1c3RvbSBT dG9yYWdlIFBsdWdpbnMgLSB2MiA+Pj4gDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ID4+PiA+Pj4gVGhpcyBpcyBhIGNvbXBsZXRlIA0KcmVmcmVzaCBvZiBteSBw cmV2aW91cyBSRkMgdGhhdCBhaW1zIHRvIGJlID4+PiBtdWNoIGxlc3MgZ3JlZW5maWVsZC15IA0K YW5kIGluc3RlYWQgdHJpZXMgdG8gcmV1c2UgYXMgbXVjaCA+Pj4gZXhpc3RpbmcgY29kZSBhcyBw b3NzaWJsZSB3aGlsZSANCnJlbWFpbmluZyBhcyBmb3J3YXJkLWNvbXBhdGlibGUgPj4+IGFzIHBv c3NpYmxlLiA+Pj4gPj4+IE5vcm1hbGx5IEkgDQp3b3VsZCBwcm92aWRlIGEgbW9yZSBkZXRhaWxl ZCBjaGFuZ2Vsb2cgdW5kZXIgZWFjaCA+Pj4gcGF0Y2gsIGJ1dCBzaW5jZSANCnNvIG11Y2ggaGFz IGNoYW5nZWQgc2luY2UgcmZjLXYxLCBJJ2xsIGluc3RlYWQgPj4+IHN1bSB1cCB0aGUgYmlnZ2Vz dCANCmNoYW5nZXMgaGVyZTogPj4+ID4+PiAtIFRoZSBBUEkgcm91dGVzIGFyZSBjaGFuZ2VkIHRv IGJlIGEgbGl0dGxlIG1vcmUgDQpmbGV4aWJsZeKAlHJvdXRlcyA+Pj4gcmVnYXJkaW5nIHZpZXdz IGV0Yy4gYXJlIGNvbXBsZXRlbHkgb21pdHRlZC4gU2VlIA0KcGF0Y2hlcyAjMDEgYW5kID4+PiAj MDggZm9yIG1vcmUgaW5mb3JtYXRpb24uID4+PiA+Pj4gLSBUaGUgc2NoZW1hcyBvZiANCnBsdWdp bnMgYXJlIHJldHVybmVkIGFzIHBhcnQgb2YgdGhlaXIgbWV0YWRhdGEuID4+PiBBICJzY2hlbWEi IGZvciBhIA0Kc3RvcmFnZSBwbHVnaW4gaW4gdGhpcyBjb250ZXh0IGlzIHNpbXBseSBhID4+PiBo YXNobWFwIGNvbnNpc3Rpbmcgb2YgdGhlIA0KcGx1Z2luJ3MgcHJvcGVydGllcycgSlNPTiBzY2hl bWFzLiBTZWUgPj4+IHBhdGNoICMwMiBmb3IgYSBjb21wbGV0ZSBhbmQgDQpkZXRhaWxlZCBleHBs YW5hdGlvbi4gPj4+ID4+PiAtIEV4aXN0aW5nIFVJIGNvZGUgY29uY2VybmVkIHdpdGggYnVpbGRp bmcgDQp0aGUgZmllbGRzIG9mIEFDTUUgPj4+IEROUyBjaGFsbGVuZ2UgcGx1Z2lucyBpcyBmYWN0 b3JlZCBvdXQsIG1hZGUgbW9yZSANCmdlbmVyaWMgYW5kID4+PiBhbHNvIHJlY2VpdmVzIHNvbWUg YWRkaXRpb25hbCBmZWF0dXJlcyBzbyB0aGF0IGl0IGNhbiBiZSANCnVzZWQgaW4gPj4+IGRpZmZl cmVudCBwbGFjZXMuIFNlZSBwYXRjaGVzICMwNSBhbmQgIzA2IGZvciBkZXRhaWxzLiA+Pj4gDQog Pj4+IC0gSW5zdGVhZCBvZiBtYWtpbmcgc2VwYXJhdGUgdmVyc2lvbnMgb2YgYWxsIG9mIHRoZSBz dG9yYWdlLSA+Pj4gDQpyZWxhdGVkIFVJIGNvbXBvbmVudHMgKHBhbmVscyBldGMuKSwgb25seSBv bmUgbmV3IGlucHV0IHBhbmVsIGlzID4+PiANCmFkZGVkLCB3aGlsZSB0aGUgcmVtYWluaW5nIG5l Y2Vzc2FyeSBmdW5jdGlvbmFsaXR5IGlzIGludGVncmF0ZWQgPj4+IA0KaW50byB0aGUgZXhpc3Rp bmcgY29kZS4gU2VlIHBhdGNoICMwOSBmb3IgZnVydGhlciBkZXRhaWxzLiA+Pj4gPj4+ID4+PiAN ClRoZSBSZXN1bHQgLS0tLS0tLS0tLSA+Pj4gPj4+IEluc3RlYWQgb2YgaGF2aW5nIHRvIHByb3Zp ZGUgYSBzZXBhcmF0ZSANCiJ2aWV3IGRlZmluaXRpb24iLCA+Pj4gc3RvcmFnZSBlbnRyaWVzIGZv ciBjdXN0b20gc3RvcmFnZSBwbHVnaW5zIGNhbiANCm5vdyBiZSBjcmVhdGVkID4+PiBhbmQgZWRp dGVkIGluIHRoZSBVSSAqd2l0aG91dCogbmVlZGluZyB0byBwcm92aWRlIGFueSANCmV4dHJhIFVJ IC8gPj4+IGxheW91dGluZyBoaW50cy4gPj4+ID4+PiBTbywgaWYgb25lIG5vdyBpbnN0YWxscyAN CnNvbWV0aGluZyBsaWtlIHRoZSBTU0hGUyBleGFtcGxlIHBsdWdpbiA+Pj4gW3NzaGZzLXBsdWdp bl0sIHRoZSANCnJlc3VsdGluZyBVSSBpcyBhYm91dCB+ODAlIHRoZXJlIGluIHRlcm1zIG9mID4+ PiBsb29rIGFuZCBmZWVsIGNvbXBhcmVkIA0KdG8gdGhlIGZvcm1zIG9mIGJ1aWx0LWluIHBsdWdp bnM6ID4+PiA+Pj4gLSBEZWZhdWx0IHZhbHVlcyBhcmUgZGlzcGxheWVkIA0KYXMgZ3JleSB0ZXh0 IGluc2lkZSBmaWVsZHMgLSA+Pj4gRGVzY3JpcHRpb25zIG9mIHByb3BlcnRpZXMgYXJlIHByb3Zp ZGVkIA0KYXMgbGl0dGxlIHBvcC11cCBxdWlwcyA+Pj4gd2hlbiBob3ZlcmluZyBvdmVyIGEgZmll bGQgLSAiZml4ZWQiIA0KcHJvcGVydGllcyBhcmUgPj4+IGF1dG9tYXRpY2FsbHkgdGFrZW4gaW50 byBhY2NvdW50IGFuZCBtYWRlIHJlYWQtb25seSANCndoZW4gZWRpdGluZyA+Pj4gYSBzdG9yYWdl IGVudHJ5IC0gInNlbnNpdGl2ZSIgcHJvcGVydGllcyBhcmUgDQphdXRvbWF0aWNhbGx5ID4+PiB0 cmVhdGVkIGFzIHBhc3N3b3JkIGZpZWxkcyAtIE9wdGlvbmFsIC8gbm9uLW9wdGlvbmFsIA0KcHJv cGVydGllcyA+Pj4gYXJlIGhhbmRsZWQgLSBUaGUgbWluLSAvIG1heExlbmd0aCBvZiBzdHJpbmdz IGFuZCB0aGUgDQptaW4tIC8gPj4+IG1heGltdW0gb2YgbnVtZXJpYyBmaWVsZHMgaXMgdGFrZW4g aW50byBhY2NvdW50IGluIHRoZSBVSSAtIA0KVGhlID4+PiAiQmFja3VwIFJldGVudGlvbiIgdGFi IGlzIGF1dG9tYXRpY2FsbHkgbWFza2VkIC8gdW5tYXNrZWQgPj4+IA0KZGVwZW5kaW5nIG9uIHdo ZXRoZXIgdGhlIHN0b3JhZ2UgcGx1Z2luIHN1cHBvcnRzIGJhY2t1cHMgb3Igbm90ID4+PiA+Pj4g DQpUaGlzIGlzIG1vc3RseSBldmVyeXRoaW5nIHRoYXQgSSBtYW5hZ2VkIHRvIHNxdWVlemUgb3V0 IG9mIHRoZSA+Pj4gDQpleGlzdGluZyBTZWN0aW9uQ29uZmlnIHNjaGVtYXMgLyBkYXRhLiA+Pj4g Pj4+IEFkZGl0aW9uYWxseSwgc29tZXRoaW5nIA0KdGhhdCdzIG5lYXQgaXMgdGhhdCB0aGUgYHRp dGxlYCBrZXkgb2YgPj4+IGV2ZXJ5IHByb3BlcnR5IGlzIG5vdyB1c2VkIGFzIA0KaXRzIGZpZWxk J3MgbGFiZWwgaW4gdGhlIFVJLiBUaGF0ID4+PiBtZWFucyB3ZSBjYW4gcHJvdmlkZSBsYWJlbHMg Zm9yIA0KYWxsIG9mIG91ciBidWlsdC1pbiBwcm9wZXJ0aWVzID4+PiB3aGlsZSB0aGlyZC1wYXJ0 eSBkZXZlbG9wZXJzIG1heSANCnByb3ZpZGUgdGhlaXJzIGZvciB0aGVpciBvd24gPj4+IHByb3Bl cnRpZXMuIEFzIGEgcXVpY2sgZXhhbXBsZSwgdGhpcyBpcyANCndoYXQgdGhhdCB3b3VsZCBsb29r ID4+PiBsaWtlIGZvciB0aGUgU1NIRlMgcGx1Z2luIFtzc2hmcy1wbHVnaW5dOiA+Pj4gDQogPj4+ IHN1YiBwcm9wZXJ0aWVzIHsgcmV0dXJuIHsgJ3JlbW90ZS1wYXRoJyA9PiB7IGRlc2NyaXB0aW9u ID0+ID4+PiANCiJQYXRoIG9uIHRoZSByZW1vdGUgZmlsZXN5c3RlbSB1c2VkIGZvciBTU0hGUy4g TXVzdCBiZSA+Pj4gYWJzb2x1dGUuIiwgDQp0eXBlID0+ICdzdHJpbmcnLCBmb3JtYXQgPT4gJ3B2 ZS1zdG9yYWdlLXBhdGgnLCA+Pj4gdGl0bGUgPT4gJ1JlbW90ZSANClBhdGgnLCB9LCAnc3NoZnMt cHJpdmF0ZS1rZXknID0+IHsgZGVzY3JpcHRpb24gPj4+ID0+ICJUaGUgcHJpdmF0ZSBrZXkgDQp0 byB1c2UgZm9yIFNTSEZTLiIsIHR5cGUgPT4gJ3N0cmluZycsIHRpdGxlID4+PiA9PiAnUHJpdmF0 ZSBLZXknLCB9LCB9OyANCn0gPj4+ID4+PiA+Pj4gVGhpcyBiZWNvbWVzIGV2ZW4gbW9yZSBmbGV4 aWJsZSBmb3IgdGhpcmQtcGFydHkgZGV2cyBvbmNlIA0Kd2UgPj4+IHN3aXRjaCBvdmVyIHRvIHBy b3BlcnR5IGlzb2xhdGlvbuKAlHNvbWV0aGluZyB0aGUgY29kZSBpbiB0aGlzIFJGQyANCiA+Pj4g c2hvdWxkIGJlIDEwMCUgZm9yd2FyZC1jb21wYXRpYmxlIHdpdGguIFRoZW4gdGhleSB3b3VsZG4n dCBiZSA+Pj4gDQpib3VuZCB0byBvdXIgcHJvdmlkZWQgbGFiZWxzLiA+Pj4gPj4+IEluIHRlcm1z IG9mIG92ZXJhbGwgbG9va3MsIHRoZSANCnJlbWFpbmluZyAyMCUgY29uc2lzdCBvZiBzb21lID4+ PiBwb2xpc2ggb24gdGhlIGZyb250ZW5kIGZvciB0aGUgbW9zdCANCnBhcnQsIGJ1dCBob25lc3Rs eSwgdGhhdCBjYW4gPj4+IGJlIGRvbmUgb25jZSB0aGlzIFJGQyBiZWNvbWVzIGFuIGFjdHVhbCAN CnNlcmllcy4gSSBmZWx0IHRoYXQgdGhpcyA+Pj4gd2FzIGluIGFuIGFkZXF1YXRlIGVub3VnaCBz dGF0ZSB0byBwdWJsaXNoIA0KZm9yIG5vd+KAlHBsZWFzZSBsZXQgbWUgPj4+IGtub3cgd2hhdCB5 b3UgdGhpbmsgaWYgeW91IGdpdmUgdGhpcyBSRkMgYSANCnNwaW4sIEknZCBhcHByZWNpYXRlID4+ PiBpdCEgPj4+ID4+PiBQcmV2aW91cyBWZXJzaW9ucyAtLS0tLS0tLS0tLS0tLS0tLSANCiA+Pj4g Pj4+IHJmYy12MTogaHR0cHM6Ly9sb3JlLnByb3htb3guY29tL3B2ZS0gPj4+IA0KZGV2ZWwvMjAy NTA5MDgxODAwNTguNTMwMTE5LTEtbS5jYXJyYXJhQHByb3htb3guY29tLyA+Pj4gPj4+IFJlZmVy ZW5jZXMgDQotLS0tLS0tLS0tID4+PiA+Pj4gW3NzaGZzLXBsdWdpbl06IA0KaHR0cHM6Ly9naXQu cHJveG1veC5jb20vP3A9cHZlLXN0b3JhZ2UtcGx1Z2luLSA+Pj4gDQpleGFtcGxlcy5naXQ7YT10 cmVlO2Y9cGx1Z2luLSA+Pj4gDQpzc2hmcztoPWM3NTQzODA4ZjcyMjYyMDk2NTBkMWI4YjZlNDQ5 MzkyYmMxZjBkMmQ7aGI9cmVmcy9oZWFkcy8gPj4+IA0KbWFzdGVyID4+PiA+Pj4gU3VtbWFyeSBv ZiBDaGFuZ2VzIC0tLS0tLS0tLS0tLS0tLS0tLSA+Pj4gPj4+IA0KcHZlLXN0b3JhZ2U6ID4+PiA+ Pj4gTWF4IFIuIENhcnJhcmEgKDUpOiBhcGk6IHBsdWdpbnMvc3RvcmFnZTogYWRkIA0KaW5pdGlh bCByb3V0ZXMgYW5kID4+PiBlbmRwb2ludHMgYXBpOiBwbHVnaW5zL3N0b3JhZ2UvcGx1Z2luOiBp bmNsdWRlIA0Kc2NoZW1hIGluIHBsdWdpbiA+Pj4gbWV0YWRhdGEgYXBpOiBwbHVnaW5zL3N0b3Jh Z2UvcGx1Z2luOiBtYXJrIA0Kc2Vuc2l0aXZlIHByb3BlcnRpZXMgPj4+IGluIHNjaGVtYSBhcGk6 IHBsdWdpbnMvc3RvcmFnZS9wbHVnaW46IGZhY3RvciANCnBsdWdpbiBtZXRhZGF0YSA+Pj4gY29k ZSBpbnRvIGhlbHBlciBhcGk6IHBsdWdpbnMvc3RvcmFnZS9wbHVnaW46IGFkZCANCnBsdWdpbnMn ID4+PiAnY29udGVudCcgdG8gdGhlaXIgbWV0YWRhdGEgPj4+ID4+PiBzcmMvUFZFL0FQSTIvTWFr ZWZpbGUgfCANCjEgKyBzcmMvUFZFL0FQSTIvID4+PiBQbHVnaW5zL01ha2VmaWxlIHwgMTggKysr IHNyYy9QVkUvQVBJMi9QbHVnaW5zLyANCiA+Pj4gU3RvcmFnZS5wbSB8IDU0ICsrKysrKysrIHNy Yy9QVkUvQVBJMi9QbHVnaW5zL1N0b3JhZ2UvID4+PiBNYWtlZmlsZSANCnwgMTcgKysrIHNyYy9Q VkUvQVBJMi9QbHVnaW5zL1N0b3JhZ2UvUGx1Z2luLnBtIHwgMTYzID4+PiANCisrKysrKysrKysr KysrKysrKysrKysrKysgNSBmaWxlcyBjaGFuZ2VkLCAyNTMgaW5zZXJ0aW9ucygrKSA+Pj4gY3Jl YXRlIA0KbW9kZSAxMDA2NDQgc3JjL1BWRS9BUEkyL1BsdWdpbnMvTWFrZWZpbGUgY3JlYXRlIG1v ZGUgPj4+IDEwMDY0NCANCnNyYy9QVkUvQVBJMi9QbHVnaW5zL1N0b3JhZ2UucG0gY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy8gPj4+IA0KUFZFL0FQSTIvUGx1Z2lucy9TdG9yYWdlL01ha2VmaWxlIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvUFZFLyA+Pj4gDQpBUEkyL1BsdWdpbnMvU3RvcmFnZS9QbHVn aW4ucG0gPj4+ID4+PiA+Pj4gcHJveG1veC13aWRnZXQtdG9vbGtpdDogPj4+IA0KID4+PiBNYXgg Ui4gQ2FycmFyYSAoMik6IHV0aWxzOiBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9uID4+PiANCmdl dEZpZWxkRGVmRnJvbVByb3BlcnR5U2NoZW1hIGFjbWU6IHVzZSBoZWxwZXIgdG8gY29uc3RydWN0 ID4+PiBFeHRKUyANCmZpZWxkcyBmcm9tIHByb3BlcnR5IHNjaGVtYXMgPj4+ID4+PiBzcmMvVXRp bHMuanMgfCAxMDYgDQorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgPj4+ICsrKysrIHNy Yy93aW5kb3cvQUNNRVBsdWdpbkVkaXQuanMgfCANCjQyICsrKysrLS0tLS0tLS0tIDIgZmlsZXMg Pj4+IGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAyOSANCmRlbGV0aW9ucygtKSA+Pj4gPj4+ ID4+PiBwdmUtbWFuYWdlcjogPj4+ID4+PiBNYXggUi4gQ2FycmFyYSAoMyk6IGFwaTogDQphZGQg QVBJIHJvdXRlcyAncGx1Z2lucycgYW5kICdwbHVnaW5zLyA+Pj4gc3RvcmFnZScgdWk6IHN0b3Jh Z2UgdmlldzogDQpkaXNwbGF5IGVycm9yIHdoZW4gbm8gZWRpdG9yIGZvciA+Pj4gc3RvcmFnZSB0 eXBlIGV4aXN0cyB1aTogc3RvcmFnZTogDQphZGQgYmFzaWMgVUkgaW50ZWdyYXRpb24gZm9yID4+ PiBjdXN0b20gc3RvcmFnZSBwbHVnaW5zID4+PiA+Pj4gDQpQVkUvQVBJMi5wbSB8IDYgKysgUFZF L0FQSTIvID4+PiBNYWtlZmlsZSB8IDEgKyBQVkUvQVBJMi8gPj4+IFBsdWdpbnMucG0gDQp8IDYx ICsrKysrKysrKysrKysgd3d3L21hbmFnZXI2LyA+Pj4gTWFrZWZpbGUgfCAxICsgDQp3d3cvbWFu YWdlcjYvZGMvU3RvcmFnZVZpZXcuanMgPj4+IHwgMTMyICsrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tIA0Kd3d3L21hbmFnZXI2L3N0b3JhZ2UvID4+PiBCYXNlLmpzIHwgMSArIA0Kd3d3L21h bmFnZXI2L3N0b3JhZ2UvQ3VzdG9tRWRpdC5qcyB8IDExMCArKyA+Pj4gKysrKysrKysrKysrKysr KysrKysrKyA3IA0KZmlsZXMgY2hhbmdlZCwgMjc4IGluc2VydGlvbnMoKyksIDM0ID4+PiBkZWxl dGlvbnMoLSkgY3JlYXRlIG1vZGUgMTAwNjQ0IA0KUFZFL0FQSTIvUGx1Z2lucy5wbSBjcmVhdGUg bW9kZSA+Pj4gMTAwNjQ0IA0Kd3d3L21hbmFnZXI2L3N0b3JhZ2UvQ3VzdG9tRWRpdC5qcyA+Pj4g PiA+DQo=