From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F282E42FC4; Thu, 3 Aug 2023 10:39:51 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CCE5342D0C; Thu, 3 Aug 2023 10:39:51 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2051.outbound.protection.outlook.com [40.107.93.51]) by mails.dpdk.org (Postfix) with ESMTP id 62CD14161A; Thu, 3 Aug 2023 10:39:50 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lazQ22xA2g6KPDFuUdlmzmM1kfevLIFAhvfBfJNUyf5nl4fVOhJ4xlkbvjqZ80XA72x60J/j1sva/+a83KSRlpWx+Sp0/7x6fwATw3tVcVhvnN52iFr/xko4zNr0DWq8mfITY772B7h21f74j6Qt3y+KbPE4YOKSg57cK8/KALmpfGmCpbkhLRsEx34yWSjFYhzk7tcYv3eEAEtD+eAJIai0Sp8k0CByaE7HkJZAZ5cYd2xlVKFodM4yeSM33Vq1rSlynppTYUcLDFYxskfzyoF4FVGhGYRTACOWB/cnvlGNaocu49D6eWIYN32U2wfH1VSbdP1qjfo4cIipLsO5vA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=nB8EsfASqUXAQxkmXYS0wYlrPG6t+tZh0Z7aZMJHXy4=; b=ZypWT88TltZ9WK6kLiEDaFFPifiIroMS1Ltbf5VPog3xk4YpiszKKz9qduILMT+y38/BgJVx3eiTA4wM6CmR2MmLa/KuzA4EjfcmxJyCFUMIF0d2bMIZAp6+GMo6AU9D8IxqloMj95u5h06frJvMjmc1+mBhFok6Q/dwcv5PSXhmkG5ehdHiNf486n83pasoQxVJxl0piuEoJy3CT+tu1olulVYjGltVexZtOzJ1cYkk3+fOZGSB85GD4vH/BNbO1WWFiLF8VZfvEGhtXpyI9LswSFWeLoSU7RiQ8R8JgscUDlq5Mu8rheHm5G9tU52Ltcy2e+QetYJ1TnKlMvTs4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nB8EsfASqUXAQxkmXYS0wYlrPG6t+tZh0Z7aZMJHXy4=; b=cuqar3sBh190vfhpMfvLJDCJ8k6Pv9Kljc3RI/7+NwOGFZK2XHn2f5masOJBUL4Mo/tlYqXMnD2JcKt+uVnox80rog4eyykiVCRfsBnAroKatcu4e/sH6BpZf5IJujadIbjHfj0If6akKBq7KpbquraH4WteSBiM4Kj/WJVuDgQF7KkMMJx1HBUeH5gmekEFUXVb6z7mHzdA2nF3yCM+UH5eVBohaR6pJTtgnL0kEMSRLWW30OSlVd1hNmDqJ2FPjTzDQ1RrSxNMOtadi1QeR6ucND08PLs0fRD1veIQyaB2HCjaVgl3MUDiBSNcVMBoV/HO/MqgiuT831Mo9smjgA== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by SN7PR12MB7250.namprd12.prod.outlook.com (2603:10b6:806:2aa::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20; Thu, 3 Aug 2023 08:39:47 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::af44:7e45:3e53:1e27]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::af44:7e45:3e53:1e27%6]) with mapi id 15.20.6631.046; Thu, 3 Aug 2023 08:39:46 +0000 From: Ori Kam To: "Dumitrescu, Cristian" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Jerin Jacob CC: "Zhang, Qi Z" , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "david.marchand@redhat.com" , "Richardson, Bruce" , "jerinj@marvell.com" , "ferruh.yigit@amd.com" , "techboard@dpdk.org" , "Mcnamara, John" , "Zhang, Helin" , "dev@dpdk.org" Subject: RE: [PATCH] ethdev: introduce generic flow item and action Thread-Topic: [PATCH] ethdev: introduce generic flow item and action Thread-Index: AQHZxSHZ5QMjYxvKiU+XcO3FePNW26/WzPOAgAAKDYCAAAW8gIAALg6AgAAV2wCAAASCwIAAFUmAgAEAioA= Date: Thu, 3 Aug 2023 08:39:46 +0000 Message-ID: References: <20230802173451.3151646-1-qi.z.zhang@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D87AB8@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87AB9@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87ABF@smartserver.smartshare.dk> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW2PR12MB4666:EE_|SN7PR12MB7250:EE_ x-ms-office365-filtering-correlation-id: 3b3f76df-21eb-45a9-2132-08db93fd3168 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DdCjjwlT387KlhaVnEFyNsUQLe4Fwt01KYNPW/2n6gUwlnSKpGIaYzpay5sQsHGCZW/KVa/+CQPltwjovTEAuWfUFA5cz/tzMBUKZz/Pu9ApGScnS+aG7C/ojqBZIo8Z0rcmluv3eYOmuBXVEMj/DavcYXwlts3M9OqH1ONWm6kj3LcfdO3Db16Fr78m4tDhC7OX2LZEZK3Lc39ovSY2dOwhB/f4s2L2I/1g4uOSqbpSNjolai0sz0Mdt9Ll3aUW0QXaaPGRYOiM9LlbyXNuIH2h/BBM2bPr5GVl05XJDSV5EfgMYqBhfs2qa5xJl6Y+OohxIZ0N6jS1fzOwDyOf+S7f6Z4CMuYlu/8SWypS0v6WrvPgGahrbXG9+0/mNeBvrpv7H8/bntolJoYqbxNOibocoHAO5Efz+1mkKbSjQDggOm2k8lu99bpjsjvhJ8YHR1S0Mb5jXugFbehbLiC/DIEB0LQFceOsca0prFf52nmNwyEz/GDhdPzxInYMVGWf3NEjyBV8o1L14gtEaIxbuSMwR14XKTvfCI9cdRp6TS1NOHrxnKqaUK7Ybm7BAg/xXpQOnde2xvsPcdmzikL7636N01vvn3kvG62c2n8tHgOO0jwJTU1Cx5vLCbtOajhfAyl/r7jJRrJBT7X9ClybQ/z9K28slx5s3c9bZHethL4odH8gL4pZwpMLRD34Cs4M17YsL/0zSTlfXkXtYBu4N40YIP2UHTIxXQxNuFTFSAA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(376002)(346002)(136003)(366004)(39860400002)(451199021)(30864003)(41300700001)(66556008)(66446008)(316002)(2906002)(4326008)(76116006)(64756008)(66946007)(66476007)(52536014)(8936002)(8676002)(5660300002)(122000001)(38100700002)(33656002)(53546011)(186003)(38070700005)(6506007)(86362001)(83380400001)(66574015)(9686003)(478600001)(45080400002)(110136005)(54906003)(7696005)(71200400001)(966005)(55016003)(7416002)(41533002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?REM3dWZyZXFObmV5OFFVbXhhQmJKaGJHRVJPdGI1UGRPa29qVjFISTNYZi8x?= =?utf-8?B?cDZOWjNPNStHSEpnZ3psbzNXanJsVHViUjZOcmRBWnNwSjZJTzZkMUw5SHdy?= =?utf-8?B?cllQeHl3SHErYTdLYjg1MXE5Y0JITDBjL21yaFJkNkZZNFdZM3RIcHJ0Tk5l?= =?utf-8?B?VEpzZTh0NHppajFPaGQ3NjJSZUxKQ0hIK25jR1RUL0RjVHVKYmVIVkp3amFB?= =?utf-8?B?RDlhQy9MWEdLaGJVbUE1dUM5aVJMcG9WK052a3BRK3Bnb1ZxOGxaNkdqa0RF?= =?utf-8?B?NUdHQVJ6NDIvTk9GbFBwaVNZVndxRmowZk83SlZZZzNEUmlpMExvQTl4NnRP?= =?utf-8?B?NW45WlFFUEdGN0NRMUlGUlhQaFZ6R0FnZjJyeHV1SmhhZGtvZ2dSL3J5RytX?= =?utf-8?B?OU5rK0sxZG1aU3U0WGZkR3NTKzVQQ1BYSXpQY3VOdDg4azhLSmpYUzYwS1ZG?= =?utf-8?B?TmFUUGZlN3Bmd3NiMlFPcmFLTkdCMjYvUllVc0NuREd3QmxMTW9raTNxUzdP?= =?utf-8?B?cFpDTHR0a2xGZDJyYmpzR0M4TS9wOWlmUWdiUkRDQVlGMVNtVDAwWGdhR2Uv?= =?utf-8?B?and5RE1WUmUyTkU4c295VVRWbm5LSVZFZHBEaWN0dGZrT3dvbUJYWlVmVHFQ?= =?utf-8?B?SFdTWGJkdklUZ3h5QnN0STN6enE2YkI3aVBmbjhUUzdGWVhVVmM1SWZqSWNC?= =?utf-8?B?a3hWVzBOUllrVlozbTErejlKaFJoVGI4bGtlbGNFWGxZelN4dHNRc0V5bUdP?= =?utf-8?B?VFV1Z1dLSVgrcFFUa0dJdG0yVTVUVWkwUXZRZ1BuSE1abEYwOE5wTTlvclNW?= =?utf-8?B?VmIwaS9IR2hyNGdiQlB0R1l3VW5wRlZOcVh6WU1CUkRTb3hnbUVIYWJIb09I?= =?utf-8?B?bEwrZWYwUTFQc1pieGtiRlJZQy9XMUFtQWZ2YTZuWGtseStxdHJlMXBCNVAv?= =?utf-8?B?VFFmMldsN0kxcU9YYWp5VW5ZOTIvUGordHRaTXgyTHY1cGVGNHhPUGlEZEUr?= =?utf-8?B?cW0zWjRkM2p1YU5MTGZ5bTRzSkJXR09rc3J3eDdMUnliNmc5Nks5M1hkclE5?= =?utf-8?B?Q1RuV1FCZkpQenZxUTdTTGJEZGU2K25VNmtaVE1CQitZVFdUdlpYblRFUmlX?= =?utf-8?B?MmNFSU9KNUxCS3FvZndqNHVzcXIwcDVpMHFmY1dPY2liMGlsZ3RJYTFqNTYr?= =?utf-8?B?WnZ2ZjVjeGVuTllvTmxFY1NyaHJESGV2VTFEUGRBcWRxMGMvNkdDM20waUU0?= =?utf-8?B?ajBoWVpNQzRxYi9pMkxhR29YZ2RmQmlPQWd1blNuclFES3lyL3JZMWJHdGlX?= =?utf-8?B?WVFpa0Uwb3gwSUg0ZkV6a3VQL2k3d052MFBCclk4QVpEaDhubVM3MnRVOHE2?= =?utf-8?B?WTNHZGNMVGV1OEpFWGR0eFEwdUhiSnJDZ1d0MUhDOU9ZaVB5bGlJSDFyeXdV?= =?utf-8?B?N1JtTXZ1QndnRlNJOWxPSjlRWWlXZFA1dW44K1htdHBmWG5EQmJ2S05DRExV?= =?utf-8?B?bG1CczhuR21jOFpHN2xGQmRvVzJuWUNXeFB1UlIyOUowMHhvYVV6NnZkS2RO?= =?utf-8?B?bkRETkJjMUJtOXNta1orNHNYRWQwMkc1ZzRvNmJSOTVVcTd1Vk9Ja0JMMlFm?= =?utf-8?B?QjlXQXlHUkpyYzU3REdpMGZlbVJ6d2djNjhxYUVCQlhzV0FlZHhsVVdOMDZ4?= =?utf-8?B?VnVNdVF1VUoxb3FYNS9Ob3RNaGh3bDZNWENFN1VTZXZDSXVORUppY2ZRaUZW?= =?utf-8?B?WWFTZUtRU2kydWhTTHNiQ2FiaFNlQWRldGxPNFVkQkhPN2NEeG5qdjRhdE1F?= =?utf-8?B?aTdQWTAyMTBHZzF3V1ZrT3hyMUh1YlpJTU5uS2orSVRndjIzK2lUMEF4WjdT?= =?utf-8?B?NFJDWnhFU2tEU3NIOTRSdXdJRy9WbXFweGE4ajdyNUpkVE1KYVNBZW5OTTVH?= =?utf-8?B?bGYzc3FNZ1R1ZEx3T1F0R3VhZDg0YTRKeUU4RFBKeFh6QXNWUGNJZGhUNGhZ?= =?utf-8?B?Mk5Zall2Y1ZPazNhRmxKZkFjT1p4L2ZGUUpHSERwR2VSL2ZWdUNyQTRyV3RO?= =?utf-8?B?VEdEenNyVW1aTEZIM3gyeTlpbit3UjAyYW14QT09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b3f76df-21eb-45a9-2132-08db93fd3168 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Aug 2023 08:39:46.7398 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: olCL60y+cIQYXUqXGtBP0qX9j44kdwouQydGXj+LWrPHVCob+tJJ0iVOO+DCw3K8q0gU5SuAHs8aZzGGwqhKOQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7250 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgQ3Jpc3RpYW4sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRHVt aXRyZXNjdSwgQ3Jpc3RpYW4gPGNyaXN0aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29tPg0KPiBTZW50 OiBXZWRuZXNkYXksIEF1Z3VzdCAyLCAyMDIzIDc6NTcgUE0NCj4gDQo+IA0KPiANCj4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE9yaSBLYW0gPG9yaWthQG52aWRpYS5j b20+DQo+ID4gU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMiwgMjAyMyA0OjQ3IFBNDQo+ID4gVG86 IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+OyBEdW1pdHJlc2N1LCBD cmlzdGlhbg0KPiA+IDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbT47IEplcmluIEphY29i IDxqZXJpbmphY29ia0BnbWFpbC5jb20+DQo+ID4gQ2M6IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5n QGludGVsLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbg0KPiA+IChFWFRFUk5BTCkg PHRob21hc0Btb25qYWxvbi5uZXQ+OyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOw0KPiA+IFJp Y2hhcmRzb24sIEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGplcmluakBtYXJ2 ZWxsLmNvbTsNCj4gPiBmZXJydWgueWlnaXRAYW1kLmNvbTsgdGVjaGJvYXJkQGRwZGsub3JnOyBN Y25hbWFyYSwgSm9obg0KPiA+IDxqb2huLm1jbmFtYXJhQGludGVsLmNvbT47IFpoYW5nLCBIZWxp biA8aGVsaW4uemhhbmdAaW50ZWwuY29tPjsNCj4gPiBkZXZAZHBkay5vcmcNCj4gPiBTdWJqZWN0 OiBSRTogW1BBVENIXSBldGhkZXY6IGludHJvZHVjZSBnZW5lcmljIGZsb3cgaXRlbSBhbmQgYWN0 aW9uDQo+ID4NCj4gPiBIaSBRaQ0KPiANCj4gSGkgT3JpLA0KPiANCj4gVGhhbmtzIGZvciB5b3Vy IGlucHV0IQ0KPiANCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ IEZyb206IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+DQo+ID4gPiBT ZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyLCAyMDIzIDY6MjUgUE0NCj4gPiA+DQo+ID4gPiA+IEZy b206IER1bWl0cmVzY3UsIENyaXN0aWFuIFttYWlsdG86Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRl bC5jb21dDQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgMiBBdWd1c3QgMjAyMyAxNi4wNg0KPiA+ ID4gPg0KPiA+ID4gPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+ DQo+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMiwgMjAyMyAxMjoyMiBQTQ0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gT24gV2VkLCBBdWcgMiwgMjAyMyBhdCA0OjMx4oCvUE0gTW9ydGVu IEJyw7hydXANCj4gPiA+ID4gPiA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPiB3cm90ZToNCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEZyb206IE1vcnRlbiBCcsO4cnVwIFttYWlsdG86bWJA c21hcnRzaGFyZXN5c3RlbXMuY29tXQ0KPiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIDIg QXVndXN0IDIwMjMgMTIuMjUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBR aSBaaGFuZyBbbWFpbHRvOnFpLnouemhhbmdAaW50ZWwuY29tXQ0KPiA+ID4gPiA+ID4gPiA+IFNl bnQ6IFdlZG5lc2RheSwgMiBBdWd1c3QgMjAyMyAxOS4zNQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gRnJvbTogQ3Jpc3RpYW4gRHVtaXRyZXNjdSA8Y3Jpc3RpYW4uZHVtaXRyZXNj dUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBGb3IgbmV0d29y ayBkZXZpY2VzIHRoYXQgYXJlIHByb2dyYW1tYWJsZSB0aHJvdWdoIGxhbmd1YWdlcw0KPiA+IHN1 Y2ggYXMNCj4gPiA+ID4gPiA+ID4gPiB0aGUgUDQgbGFuZ3VhZ2UsIHRoZXJlIGFyZSBubyBwcmUt ZGVmaW5lZCBmbG93IGl0ZW1zIGFuZCBhY3Rpb25zLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gVGhlIGZvcm1hdCBvZiB0aGUgcHJvdG9jb2wgaGVhZGVyIGFuZCBtZXRhZGF0YSBm aWVsZHMgdGhhdCBhcmUNCj4gPiB1c2VkIHRvDQo+ID4gPiA+ID4gPiA+ID4gc3BlY2lmeSB0aGUg ZmxvdyBpdGVtcyB0aGF0IG1ha2UgdXAgdGhlIGZsb3cgcGF0dGVybiwgYXMgd2VsbCBhcyB0aGUN Cj4gPiA+ID4gPiA+ID4gPiBmbG93IGFjdGlvbnMsIGFyZSBhbGwgZGVmaW5lZCBieSB0aGUgcHJv Z3JhbSwgd2l0aCBhbiBpbmZpbml0eSBvZg0KPiA+ID4gPiA+ID4gPiA+IHBvc3NpYmxlIGNvbWJp bmF0aW9ucywgYXMgb3Bwb3NlZCB0byBiZWluZyBzZWxlY3RlZCBmcm9tIGEgZmluaXRlDQo+ID4g PiA+ID4gPiA+ID4gcHJlLWRlZmluZWQgbGlzdC4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IEl0IGlzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHByZS1kZWZpbmUgYWxsIHRoZSBm bG93IGl0ZW1zIGFuZCB0aGUNCj4gPiA+ID4gPiA+ID4gPiBmbG93IGFjdGlvbnMgdGhhdCBwcm9n cmFtcyBtaWdodCBldmVyIHVzZSwgYXMgdGhlc2UgYXJlIG9ubHkNCj4gPiBsaW1pdGVkDQo+ID4g PiA+ID4gPiA+ID4gYnkgdGhlIHNldCBvZiBIVyByZXNvdXJjZXMgYW5kIHRoZSBwcm9ncmFtIGRl dmVsb3BlcidzDQo+ID4gaW1hZ2luYXRpb24uDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiBUbyBzdXBwb3J0IHRoZSBwcm9ncmFtbWFibGUgbmV0d29yayBkZXZpY2VzLCB3ZSBhcmUg aW50cm9kdWNpbmc6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAqIEEgZ2VuZXJp YyBmbG93IGl0ZW06IFRoZSBmbG93IGl0ZW0gaXMgZXhwcmVzc2VkIGFzIGFuIGFycmF5IG9mDQo+ ID4gYnl0ZXMNCj4gPiA+ID4gPiA+ID4gPiBvZiBhIGdpdmVuIGxlbmd0aCwgd2hvc2UgbWVhbmlu ZyBpcyBkZWZpbmVkIGJ5IHRoZSBwcm9ncmFtIGxvYWRlZA0KPiA+IGJ5DQo+ID4gPiA+ID4gPiA+ ID4gdGhlIG5ldHdvcmsgZGV2aWNlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGUg ZmxvdyBpdGVtIGlzIG5vdCAiZ2VuZXJpYyIsIGl0IGlzICJvcGFxdWUiOiBPbmx5IHRoZSBhcHBs aWNhdGlvbg0KPiA+ID4gPiBrbm93cw0KPiA+ID4gPiA+ID4gPiB3aGF0IHRoaXMgZmxvdyBpdGVt IGRvZXMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgaGF0ZSB0aGUgY29uY2VwdCBm b3IgdHdvIHJlYXNvbnM6DQo+ID4gPiA+ID4gPiA+IDEuIFRoZSBpbmFiaWxpdHkgZm9yIGFwcGxp Y2F0aW9ucyB0byBkZXRlY3Qgd2hpY2ggZmxvdyBpdGVtcyB0aGUNCj4gPiA+ID4gdW5kZXJseWlu Zw0KPiA+ID4gPiA+ID4gPiBoYXJkd2FyZSBzdXBwb3J0cy4NCj4gPiA+ID4gPiA+ID4gMi4gVGhl IHJpc2sgdGhhdCB2ZW5kb3JzIHdpbGwgdXNlIHRoaXMgaW5zdGVhZCBvZiBpbnRyb2R1Y2luZyBu ZXcgZmxvdw0KPiA+ID4gPiBpdGVtDQo+ID4gPiA+ID4gPiA+IHR5cGVzLCBhdmFpbGFibGUgZm9y IGFueW9uZSB0byBpbXBsZW1lbnQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQWZ0ZXIgZnVy dGhlciBjb25zaWRlcmF0aW9uLCB0aGVyZSBtaWdodCBiZSBhIG1pZGRsZSBncm91bmQuDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gQ29uc2lkZXIgVmVuZG9yLVNwZWNpZmljIGF0dHJpYnV0ZXMg Zm9yIERIQ1AgYW5kIFJBRElVUywgb3IgU05NUA0KPiA+ID4gTUlCcy4uLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IEFueSB2ZW5kb3IgaXMgZnJlZSB0byBhZGQgaGlzIG93biwgcHJvcHJpZXRh cnkgc3BlY2lhbC1wdXJwb3NlDQo+ID4gYXR0cmlidXRlcywNCj4gPiA+ID4gPiB3aXRob3V0IGdv aW5nIHRocm91Z2ggdGhlIHN0YW5kYXJkaXphdGlvbiBwcm9jZXNzLiAoVGhpcyBpcyB0aGUga2V5 DQo+ID4gPiA+IGNoYWxsZW5nZQ0KPiA+ID4gPiA+IHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYWlt aW5nIGF0LikNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgdmVuZG9yIG1pZ2h0IHB1Ymxp c2ggdGhlc2UgYXR0cmlidXRlcywgYW5kIG90aGVyIHZlbmRvcnMgbWF5DQo+ID4gPiA+ID4gaW1w bGVtZW50IHRoZW0gdG9vLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEFuZCBpbiBvcmRlciB0 byBwcmV2ZW50IGNvbGxpc2lvbnMsIHRoZSBWZW5kb3ItU3BlY2lmaWMgYXR0cmlidXRlcw0KPiA+ IGNvbnRhaW4NCj4gPiA+ID4gYQ0KPiA+ID4gPiA+IGdsb2JhbGx5IHVuaXF1ZSB2ZW5kb3IgSUQs IHN1Y2ggYXMgdGhlIFByaXZhdGUgRW50ZXJwcmlzZSBOdW1iZXIgWzFdDQo+ID4gPiA+ID4gbWFu YWdlZCBieSBJQU5BLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IElmIHNpbWlsYXIgcHJpbmNp cGxlcyBjYW4gYmUgd29ya2VkIGludG8gdGhlIHBhdGNoLCBJIGNhbiBzdXBwb3J0IGl0Lg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gKzENCj4gPiA+ID4gPg0KPiA+ICsxIEkgdW5kZXJzdGFuZCB0aGF0 IHRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgZ2VuZXJpYywgYnV0IGhvdyBjYW4gaXQ/DQo+IA0KPiBX aGF0IGV4YWN0bHkgaXQgbm90IGdlbmVyaWM/DQo+IA0KPiA+IGhvdyBkbyB5b3Uga25vdyBpZiBQ TUQgc3VwcG9ydHMgdGhpcz8NCj4gDQo+IFdoYXQgaXMgdGhlIGN1cnJlbnQgUlRFX0ZMT1cgbWVj aGFuaXNtIHRvIGZpbmQgb3V0IHdoZXRoZXIgYSBkZXZpY2UvUE1EDQo+IHN1cHBvcnRzIGEgY2Vy dGFpbiBmbG93PyBUaGUgb25seSBtZWNoYW5pc20gYXZhaWxhYmxlIGlzIHRvIHRyeSB0byBjcmVh dGUgdGhlDQo+IGZsb3cgKHJ0ZV9mbG93X2NyZWF0ZSkgb3IgbWltaWMgdGhlIGNyZWF0aW9uIG9m IHRoZSBmbG93IChydGVfZmxvd192YWxpZGF0ZSkNCj4gYW5kIHNlZSBpZiB5b3UgZ2V0IHN1Y2Nl c3Mgb3IgZXJyb3IsIHJpZ2h0PyBTYW1lIG1lY2hhbmlzbSB0byBiZSB1c2VkIGhlcmUuDQo+IE9m IGNvdXJzZSwgd2Ugd291bGQgYmUgaGFwcHkgdG8gc3VwcG9ydCB0aGUgYWRkaXRpb24gb2YgYSBt b3JlIGNvbXBsZXgNCj4gcXVlcnkgbWVjaGFuaXNtIGluIFJURV9GTE9XLg0KPiANCg0KTXkgYmFk IGV4cGxhbmF0aW9uLCB5b3UgYXJlIHJpZ2h0IHRoZSB3YXkgdG8ga25vdyBpZiBzb21lIFBNRCBz dXBwb3J0cyBhIGZlYXR1cmUNCmlzIHRyaWFsIGFuZCBlcnJvciwgd2hhdCBJIG1lbnQgaXMgaG93 IFBNRCBrbm93cyBob3cgdG8gcGhyYXNlIHRoZSBkYXRhLCBpdCBzaG91bGQgYmUgDQppbiBhIGtu b3duIGZvcm1hdC4NCg0KPiA+IHdoYXQgaWYgZWFjaCBQTUQgbmVlZHMgZGlmZmVyZW50IGNvbmZp Z3VyYXRpb25zPw0KPiANCj4gTm90IHN1cmUgd2hhdCB5b3UncmUgcmVmZXJyaW5nIHRvIGV4YWN0 bHkuIFRoZSBmb3JtYXQgb2YgdGhlIGZsb3cgaXRlbXMgYW5kDQo+IGZsb3cgYWN0aW9ucyBpcyBk ZWZpbmVkIGJ5IHRoZSBQNCBwcm9ncmFtOyBzbyBhbGwgdGhlIEhXIGRldmljZXMgdGhhdCBhcmUN Cj4gYWJsZSB0byBzdWNjZXNzZnVsbHkgbG9hZCBhIGdpdmVuIFA0IHByb2dyYW0sIHBvdGVudGlh bGx5IGZyb20gZGlmZmVyZW50DQo+IHZlbmRvcnMsIHdpbGwgaGF2ZSB0aGUgc2FtZSB1bmRlcnN0 YW5kaW5nIG9mIGVhY2ggZmxvdyBpdGVtIGFuZCBhY3Rpb24uDQo+IA0KDQpTbyB5b3UgZG9uJ3Qg c3VnZ2VzdCBnZW5lcmljLCB5b3Ugc3VnZ2VzdCBwNF9hY3Rpb24vaXRlbSB3aGljaCB3aWxsIGdl dA0KYSBibG9iIGJhc2VkIG9uIHN0YW5kYXJkLg0KDQo+ID4NCj4gPiBJbiBhZGRpdGlvbiBob3cg Y2FuIHlvdSBoYW5kbGUgbnVtYmVyIG9mIHRob3NlIGFjdGlvbiBhbmQgaXRlbXM/DQo+ID4gRm9y IGV4YW1wbGUgaWYgSSBoYXZlIG1hdGNoIG9uIHByb3RvY29sIFggYW5kIFkgYW5kIGRvIGFjdGlv bnMgWiBhbmQgVw0KPiA+IGVhY2ggb25lIG9mIHRob3NlIGNhbiBiZSBnZW5lcmljIGl0ZW0uDQo+ ID4gaWYgeW91IGhhdmUgYSB3YXkgdG8gZGVmaW5lIGEgc3RhbmRhcmQgd2h5IHRvIHJlYWQgc3Vj aCBhY3Rpb25zIHRoZW4gd2UgaGF2ZQ0KPiA+IHNvbWV0aGluZyB0byB0YWxrIGFib3V0Lg0KPiAN Cj4gWWVzLCB3ZSBkby4gVGhlIGZvcm1hdCBvZiBhbGwgZmxvdyBpdGVtcyBhbmQgZmxvdyBhY3Rp b25zIGF2YWlsYWJsZSBvbiB0aGUgSFcNCj4gZGV2aWNlIGlzIGZ1bGx5IGRlZmluZWQgYnkgdGhl IFA0IHByb2dyYW0sIHRoZXJlZm9yZSBhbGwgdGhlIEhXIGRldmljZXMsDQo+IHBvdGVudGlhbGx5 IGZyb20gZGlmZmVyZW50IHZlbmRvcnMsIHRoYXQgYXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGxv YWQgYSBnaXZlbiBQNA0KPiBwcm9ncmFtLCB3aWxsIGhhdmUgdGhlIHNhbWUgdW5kZXJzdGFuZGlu ZyBvZiB0aGVtLg0KPiANCg0KQWdhaW4gdGhpcyB3YXMgbm90IGNsZWFyIGZyb20gdGhlIFJGQywg c2VlIG15IGFib3ZlIGNvbW1lbnQNCj4gPg0KPiA+DQo+ID4gPiA+DQo+ID4gPiA+IE1vcnRlbiwg SmVyaW4sDQo+ID4gPiA+DQo+ID4gPiA+IEkgdGhpbmsgdGhlcmUgaXMgYSBmdW5kYW1lbnRhbCBt aXN1bmRlcnN0YW5kaW5nIGhlcmU6IHdlIGFyZSBub3QgdHJ5aW5nIHRvDQo+ID4gPiA+IHByb3Zp ZGUgc3VwcG9ydCBmb3Igc29tZSBub24tc3RhbmRhcmQgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmVz IGhlcmUuDQo+ID4gV2hhdA0KPiA+ID4gPiB3ZSBhcmUgdHJ5aW5nIHRvIGRvIGlzIGFkZCBnZW5l cmljIG11bHRpLXZlbmRvciBzdXBwb3J0IGluIFJURV9GTE9XIGZvcg0KPiA+ID4gPiBQNCBwcm9n cmFtbWFibGUgbmV0d29yayBkZXZpY2VzLCB3aGljaCByZXF1aXJlcyBzdXBwb3J0aW5nIGZsb3cg aXRlbXMNCj4gPiA+ID4gYW5kIGFjdGlvbnMgdGhhdCBhcmUgZGVmaW5lZCBkaXJlY3RseSBieSB0 aGUgdXNlciB0aHJvdWdoIHRoZWlyIFA0DQo+ID4gcHJvZ3JhbXMNCj4gPiA+ID4gYXMgb3Bwb3Nl ZCB0byBiZWluZyBzZWxlY3RlZCBmcm9tIGEgcHJlLWRlZmluZWQgbGlzdC4NCj4gPiA+ID4NCj4g PiA+ID4gVGhlcmUgYXJlIGFuIGluZmluaXR5IG9mIGZsb3cgaXRlbXMgYW5kIGFjdGlvbnMgdGhh dCB0aGUgdXNlcnMgY2FuIGRlZmluZQ0KPiA+ID4gPiB0aHJvdWdoDQo+ID4gPiA+IHRoZWlyIFA0 IHByb2dyYW1zLCBhbmQgdGhleSBjYW5ub3QgYmUgc3VwcG9ydGVkIHdpdGggYSBmaW5pdGUgbGlz dCBvZg0KPiA+ID4gUlRFX0ZMT1cNCj4gPiA+ID4gaXRlbXMgYW5kIGFjdGlvbnM6DQo+ID4gPiA+ DQo+ID4gPiA+IDEvIFNvbWUgZmxvdyBpdGVtcyBtYXAgZGlyZWN0bHkgdG8gdGhlIElFVEYgZGVm aW5lZCBwcm90b2NvbHMsIHdoaWxlIHNvbWUNCj4gPiA+ID4gb3RoZXJzIGRvIG5vdCwgYW5kIG9u bHkgdGhlIHVzZXIgd3JpdGluZyB0aGUgcHJvZ3JhbSBrbm93cyB0aGUgZXhhY3QNCj4gPiBhbnN3 ZXI7DQo+ID4gPiA+DQo+ID4gPiA+IDIvIFNvbWUgZmxvdyBpdGVtcyBhcmUgc2ltcGx5IGFwcGxp Y2F0aW9uLXNwZWNpZmljIChub3QgdmVuZG9yIHNwZWNpZmljKQ0KPiA+ID4gPiBtZXRhLWRhdGEg dGhhdCAoSSBob3BlIHdlIGFsbCBhY2NlcHQpIGlzIG91dHNpZGUgb2YgdGhlIHN0YW5kYXJkaXph dGlvbg0KPiA+ID4gPiBwcm9jZXNzLg0KPiA+ID4NCj4gPiA+IFN1Y2ggaXRlbXMgY2FuIHVzZSBh IHNwZWNpYWwgInJlc2VydmVkIiB2ZW5kb3ItaWQuDQo+ID4gPg0KPiA+DQo+ID4gQ2FuIHlvdSBz aG93IG1lIHdoYXQgaXRlbXMvYWN0aW9ucyBhcmUgbWlzc2luZyBpbiBydGVfZmxvdz8NCj4gDQo+ IFRoZSBudW1iZXIgb2YgZmxvdyBpdGVtcyAocHJvdG9jb2wgaGVhZGVycywgYnV0IGFsc28gbWV0 YWRhdGEpIGFuZCBmbG93DQo+IGFjdGlvbnMNCj4gdGhhdCB1c2VycyBjYW4gZGVmaW5lIGluIHRo ZWlyIFA0IHByb2dyYW1zIGlzIGluZmluaXRlLCBzbyB1bmZvcnR1bmF0ZWx5IE9yaSwgYXMNCj4g bXVjaA0KPiBhcyBJIHdhbnQgdG8gZ3JhbnQgeW91IHRoaXMgd2lzaCwgSSBhbSBub3QgZ29pbmcg dG8gYmUgYWJsZSB0byDwn5iKLiBBbHNvLCBpdCBpcw0KPiBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0 IHRoZSB1c2VycyB3cml0ZSB0aGVpciBQNCBwcm9ncmFtIChkZWZpbmluZyB0aGVpciBkYXRhDQo+ IHBhdGgNCj4gcGlwZWxpbmUpIHdpdGhvdXQgYW55IGludm9sdmVtZW50IGZyb20gdGhlaXIgZGV2 aWNlIHZlbmRvciwgc28gdGhlIHZlbmRvciBpcw0KPiBzaW1wbHkNCj4gbm90IGF3YXJlIG9mIG1l YW5pbmcgb2YgdGhlIHVzZXIncyBmbG93IGl0ZW1zIGFuZCBhY3Rpb25zIGVpdGhlci4NCj4gDQoN Ck1heWJlIHdlIHNob3VsZCBhZGQgYW4gQVBJIHRvIHJlZ2lzdGVyIGFjdGlvbnMvaXRlbXMsIGJ1 dCBhdCB0aGUgZW5kIHdlIGRvbid0IHdhbnQgdG8gd3JpdGUgY29kZQ0KVHdpY2UsIG1lYW5pbmcg aWYgYWN0aW9uIGlzIGFscmVhZHkgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IEFQSSB0aGVyZSBp cyBubyByZWFzb24gdG8gdXNlIGRpZmZlcmVudA0KQVBJLg0KbWF5YmUgd2UgY2FuIGFkZCBhIHNt YWxsIHRyYW5zbGF0aW9uIGZ1bmN0aW9uIHRoZSBhIFBNRCBjYW4gY29udmVydCBhY3Rpb25zIGFu ZCBvdXRwdXQgdGhlIHJpZ2h0DQpydGVfZmxvdyBhY3Rpb25zL2l0ZW1zLCBhbmQgaWYgaXQgY2Fu J3QsIGl0IGNhbiBjcmVhdGUgYSB1c2VyIGFjdGlvbiANCg0KPiA+DQo+ID4gPiA+DQo+ID4gPiA+ IDMvIFNvbWUgZmxvdyBhY3Rpb25zIG1hcCBkaXJlY3RseSB0byB0aGUgZXhpc3RpbmcgUlRFX0ZM T1cgYWN0aW9ucw0KPiA+ID4gKGVzcGVjaWFsbHkNCj4gPiA+ID4gdGhlIG1vcmUgc3RyYWlnaHRm b3J3YXJkIGFjdGlvbnMgc3VjaCBhczogcGFja2V0IGRyb3AsIHBhY2tldCByZWRpcmVjdGlvbg0K PiA+IHRvDQo+ID4gPiA+IGFuDQo+ID4gPiA+IG91dHB1dCBxdWV1ZSwgc29tZSBzcGVjaWZpYyBw YWNrZXQgbW9kaWZpY2F0aW9ucywgZXRjKSwgd2hpbGUgdGhlIHZhc3QNCj4gPiA+ID4gbWFqb3Jp dHkNCj4gPiA+ID4gb2YgcG9zc2libGUgYWN0aW9ucyBkbyBub3QuDQo+ID4gPiA+DQo+ID4gPiA+ IEFyZSB5b3Ugc2F5aW5nIHRoYXQgdGhlIFA0IHByb2dyYW1tYWJsZSBuZXR3b3JrIGRldmljZXMg c2hvdWxkIE5PVCBiZQ0KPiA+ID4gPiBzdXBwb3J0ZWQgYnkgRFBESyBhbmQgUlRFX0ZMT1c/DQo+ ID4gPg0KPiA+ID4gTm8sIEkgZ2V0IHRoZSBuZWVkIGZvciB0aGlzLiBBbmQgSSB1bmRlcnN0YW5k IHRoYXQgc2luY2UgUDQgaXMgY29tcGlsZWQgdG8NCj4gPiA+IGhhcmR3YXJlLXNwZWNpZmljIGJp bmFyeSBibG9icywgdGhlcmUgaXMgYSBuZWVkIHRvIHB1dCBzdWNoIGJsb2JzIGludG8gRFBESw0K PiA+IGFzDQo+ID4gPiBmbG93IGl0ZW1zIGFuZCBhY3Rpb25zLCBpbnN0ZWFkIG9mIHRoZSAidW5j b21waWxlZCIgUDQgcHJvZ3JhbS4NCj4gPiA+DQo+ID4gPiBJIGFtIHN1Z2dlc3RpbmcgdGhhdCBp bnN0ZWFkIG9mIGFkZGluZyBhIGNvbXBsZXRlbHkgb3BhcXVlIGRhdGEgdHlwZToNCj4gPiA+DQo+ ID4gPiBTdHJ1Y3QgaXRlbSB7DQo+ID4gPiBJbnQgbGVuOyAgICAgIC8vIExlbmd0aCBvZiB2YWx1 ZSBpbiBieXRlcy4NCj4gPiA+IENoYXIgdmFsdWVbXTsgLy8gQXBwbGljYXRpb24gc3BlY2lmaWMg bWVhbmluZy4NCj4gPiA+IH07DQo+ID4gPg0KPiA+DQo+ID4gQnV0IHNpbmNlIHlvdSBkaWRuJ3Qg ZGVmaW5lIGEga25vd24gcHJvdG9jb2wgZm9yIFBNRCB0byByZWFkIHRoZSBkYXRhIGhvdw0KPiA+ IDIgcG1kcyBjYW4gdXNlIHRoZSBzYW1lIGFjdGlvbj8NCj4gDQo+IFRoZSBmb3JtYXQgb2YgYWxs IGZsb3cgaXRlbXMgYW5kIGZsb3cgYWN0aW9ucyBhdmFpbGFibGUgb24gdGhlIEhXIGRldmljZSBp cyBmdWxseQ0KPiBkZWZpbmVkIGJ5IHRoZSBQNCBwcm9ncmFtLCB0aGVyZWZvcmUgYWxsIHRoZSBI VyBkZXZpY2VzLCBldmVuIGlmIGZyb20gZGlmZmVyZW50DQo+IHZlbmRvcnMsIHdpbGwgaGF2ZSB0 aGUgc2FtZSB1bmRlcnN0YW5kaW5nIG9mIHRoZW0uDQo+IA0KTGlrZSBJIHNhaWQgYWJvdmUgaXQg aXMgbm90IGdlbmVyaWMgaXQgaXMgcDQgZm9ybWF0Lg0KDQpCZXN0LA0KT3JpDQoNCj4gPg0KPiA+ ID4gLi4uYWRkIGEgc2VtaS1vcGFxdWUgZGF0YSB0eXBlOg0KPiA+ID4NCj4gPiA+IFN0cnVjdCB0 bHYgew0KPiA+ID4gSW50IHR5cGU7ICAgICAvLyBWZW5kb3Igc3BlY2lmaWMgdHlwZS4NCj4gPiA+ IEludCBsZW47ICAgICAgLy8gTGVuZ3RoIG9mIHZhbHVlIGluIGJ5dGVzLg0KPiA+ID4gQ2hhciB2 YWx1ZVtdOyAvLyAoVmVuZG9yLCBUeXBlKSBzcGVjaWZpYyBtZWFuaW5nLg0KPiA+ID4gfTsNCj4g PiA+DQo+ID4gPiBTdHJ1Y3QgaXRlbSB7DQo+ID4gPiBJbnQgdmVuZG9yOyAgICAgICAgICAvLyBW ZW5kb3IgSUQuDQo+ID4gPiBJbnQgbGVuOyAgICAgICAgICAgICAvLyBMZW5ndGggb2YgdmFsdWVz IGluIGJ5dGVzLg0KPiA+ID4gU3RydWN0IHRsdiB2YWx1ZXNbXTsgLy8gQXJyYXkgb2YgVExWcy4N Cj4gPiA+IH07DQo+ID4gPg0KPiA+ID4gTGlrZSBSQURJVVMgVmVuZG9yLVNwZWNpZmljIGF0dHJp YnV0ZXM6DQo+ID4gPiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzIx Mzgjc2VjdGlvbi01LjI2DQo+ID4gPg0KPiA+ID4gVGhlbiBzb21lIChWZW5kb3IsIFR5cGUpIGZp ZWxkcyBjYW4gYmUgZG9jdW1lbnRlZCAoYW5kIHRodXMgZ2VuZXJhbGx5DQo+ID4gPiB1bmRlcnN0 b29kIGJ5IERQREspLCBhbmQgc29tZSB1bmRvY3VtZW50ZWQuDQo+ID4gPg0KPiA+ID4gRS5nLiBs aWtlIE1pY3Jvc29mdCBkb2N1bWVudGVkIHNvbWUgb2YgdGhlaXJzIGluIFJGQyAyNTQ4Og0KPiA+ ID4gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMyNTQ4DQo+ID4gPg0K PiA+ID4NCj4gPiA+IEFub3RoZXIgYmVuZWZpdCBpcyB0aGF0IHRoZXNlIG5ldyAiVkVORE9SLVNQ RUNJRklDIiBmbG93IHR5cGVzIGNhbiBiZQ0KPiA+IHJldXNlZA0KPiA+ID4gZm9yIG90aGVyIHB1 cnBvc2VzIHRoYW4gY29tcGlsZWQgUDQgcHJvZ3JhbXMuDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gUHJlZmVyYWJseSwgdGhlcmUgc2hvdWxkIGFs c28gYmUgYSBtZWFucyBmb3IgYXBwbGljYXRpb25zIHRvIHF1ZXJ5IGlmDQo+ID4gPiA+IHNwZWNp ZmljDQo+ID4gPiA+ID4gVmVuZG9yLVNwZWNpZmljIGZsb3cgaXRlbXMgYW5kIGFjdGlvbnMgYXJl IHN1cHBvcnRlZCBvciBub3QuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IFsxXTogaHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvZW50ZXJwcmlzZS1udW1iZXJz Lw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gUmVnYXJkcywNCj4gPiA+ID4gQ3Jpc3Rp YW4NCj4gDQo+IFJlZ2FyZHMsDQo+IENyaXN0aWFuDQo=