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 8EB70A0093; Tue, 7 Dec 2021 19:23:34 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 398384114F; Tue, 7 Dec 2021 19:23:33 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 1FFC44114A for ; Tue, 7 Dec 2021 19:23:30 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10190"; a="261720609" X-IronPort-AV: E=Sophos;i="5.87,295,1631602800"; d="scan'208";a="261720609" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Dec 2021 10:00:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,295,1631602800"; d="scan'208";a="657792530" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga001.fm.intel.com with ESMTP; 07 Dec 2021 10:00:24 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 7 Dec 2021 10:00:23 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 7 Dec 2021 10:00:23 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 7 Dec 2021 10:00:23 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 7 Dec 2021 10:00:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e8wxnSdTOXc75p+T4Eq33VYPe0g+qG+8X1fUuMCIiPOzzWKVy6IMoa46mp59X9zhW838MQS780SqOa74ZsDtnb0D1ZPPIkTGAQyY4CwM47WS3LENHlQMa51k2zfeb9xsQ5hdz47dVns9Kbp4Ew575bf1AyXUEBwSVcSrjkuFeW9V1LrXoV29SLC2tzK5/noQqj1aHT3jMcgQ9yNCLicmj6d9dUYFhe87bk9rQFrvQPM5snHCg/RT1KccfswVmz/hWH1Lr4aNDU/UFo2mWMzCdtDQrVrcsAx2O7Og8dYbtq/yxfs/LoaSejw3kQB0TzAPo/ENjAnbW4/GXsoJ+iTpZA== 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=EfEKiQ3Gktz0JZYpT3mebURZX625los0DAwcUys3YGY=; b=j17QeUBaMPM36zNkjtygiPZXK2VOy/KEeg2ocUSG/psaYOVSC+ZFHVHrsyLbcFna6LgYF+2ipdkMFn2um+GS12qxUZ9E8Aj6Qi4qMWB2rgxDu/bcFFWpHzPtQobUC9+SHgMs0bamELjtllxJzSJvaroeEChBn6y67h4XwtnQDjxmgy5nDU5+5j2Wcv/ieC0ipTfEdrc5CbmKp/KAs1fO76nNlWFFFqjJ+ZkSD+DrBqKvWNxvnHCaALMrvJ2zGuSuiF6WiiZhbTycmW499JbzI8K+AjTpSCnn+BRw1tLq6QMtopEnDhfUOs7UMIaIgLmRFJtg+++JGuckiBkt8PMvaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EfEKiQ3Gktz0JZYpT3mebURZX625los0DAwcUys3YGY=; b=JsTK2zgzXjGerZisO9Uo4LCLNqNlF3r5SWChh29ubNebmerB8orDJ7ndTqrYhb9EXpKqRGrADkgHR8nQwD4DS+aOW5Ni8pG/KnXNt9Z+utn34uyXgGCwSer7vD4iZKhm+CDq0xG6KZaviL6hhnvEAHJchnUE/72KnzYFwgINZAA= Received: from SJ0PR11MB5677.namprd11.prod.outlook.com (2603:10b6:a03:37e::22) by SJ0PR11MB5645.namprd11.prod.outlook.com (2603:10b6:a03:3b9::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Tue, 7 Dec 2021 18:00:22 +0000 Received: from SJ0PR11MB5677.namprd11.prod.outlook.com ([fe80::a9ce:240d:43e2:19db]) by SJ0PR11MB5677.namprd11.prod.outlook.com ([fe80::a9ce:240d:43e2:19db%3]) with mapi id 15.20.4755.016; Tue, 7 Dec 2021 18:00:22 +0000 From: "Dumitrescu, Cristian" To: Jerin Jacob CC: "jerinj@marvell.com" , Thomas Monjalon , "Yigit, Ferruh" , "Andrew Rybchenko" , "dev@dpdk.org" , "arybchenko@solarflare.com" , "lizh@nvidia.com" , "ajit.khaparde@broadcom.com" , "Singh, Jasvinder" , "matan@nvidia.com" , "ndabilpuram@marvell.com" , "skori@marvell.com" , "rkudurumalla@marvell.com" Subject: RE: [dpdk-dev] [RFC PATCH] ethdev: mtr: enhance input color table features Thread-Topic: [dpdk-dev] [RFC PATCH] ethdev: mtr: enhance input color table features Thread-Index: AQHXlZ0GSf3CJy5KdEC2BO1TmbpJ/6vOLc6QgDn8SgCAH0u7AIAAdbBg Date: Tue, 7 Dec 2021 18:00:21 +0000 Message-ID: References: <20210820082401.3778736-1-jerinj@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 94b46403-6a0b-4e86-86b2-08d9b9ab702c x-ms-traffictypediagnostic: SJ0PR11MB5645:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XbGBKu4X3Qqa0ROpd9S4rHrQKzKR5D11ogMWX4xEMrgBHicCwfx7R8vpVclXbuIMglDjhWzPiDEDk1J8rkNKsrE0KMWX1HeFLzLtYhTMWx0PTzb0qcGczJwxJVAT74rfx/O+HGOYVWD6l8QVXdO6AxjQqHSO2eJnxFEWkbWEt/rRhl2mT8Etpy/KFvQkWKD4JAPDOrv7BI+O0hMHnQ+QA4pMYsG9eMLDQbDhs83SRWRSeL1qyknWJCC9Ewnf6UW+Ws9k2CbzfGDDOuTTTlmlFrXMOa5NAs5X5VzoOBIfo8Z4M3IKnXiwb1OfkdynHJuzsvZ+kZ8UpFrNt4aZxeHt+ekRpX8lyvu9lWvdREgXetiphvetcNrHn6CnCc6muc0FqcN4sa8lYCFMv9ONWP4fADiFLfXORqeOafo8wmfP2tjiiwUVQp58YMPp1CdzjdtogXvG/rz2e1PrIF7UprOOpfUOQSGcEq98b3HoneZpjgWNq5jOvO0Bz3Bz/aioArljLk/NnhpVoAM/K6YVTsIVq9rsxwXxH4+vQ56Sn3Ud3y/5N6CP0lTcpiJ4dcrjdYyte2w0T+HiuLa5XSyitunAwv6a7d0UWfOzodQXhZYoSdO4D2q/tHtrmdxwAByT2BXsBOPdQ3aaUb1ZhMJzqZIggNMTJDLxvVsFPN0QURwlwWgCOOv8oRsmnd5CX+pFygzva5lBt+RzKqclre1H566yEg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB5677.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(83380400001)(186003)(8936002)(53546011)(6506007)(33656002)(316002)(8676002)(82960400001)(5660300002)(26005)(52536014)(2906002)(7696005)(54906003)(30864003)(66556008)(55016003)(508600001)(9686003)(6916009)(7416002)(66946007)(4326008)(64756008)(66446008)(86362001)(38100700002)(76116006)(66476007)(71200400001)(38070700005)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MUhDWVBRbGdqamxKckZvd1pPMkdHQ1FpVU42S0M0VDJQZDVUS1h1Sjd1aVhP?= =?utf-8?B?djhzTHdoVS9RNjBRc082QUlPSnNuTzdGL002U05kZVZ0K05qTElYQ0JMcGZD?= =?utf-8?B?RWlSaytqZmZ1dGVWRHpSNEtQRDZnWFdBVjR6SURCamE1OC9BNmpSK0VhMTFy?= =?utf-8?B?bWdOMW5oSjRCZFpIYVUvZ3NseVlvMkFaTVBWc3I1ZWRZMkhOYWdYdllkL2pv?= =?utf-8?B?WkdkVTV2MEFGcjlxcEV4YnZGb1o5MmtqNDNBZjllY3djLzVVMlpuM2ZQTGIz?= =?utf-8?B?bmZ0bll3TDFUazFWUUtmRXRmdnNMQ0hMMnRWekh2enZuN0gwc1hTVDlSMUVt?= =?utf-8?B?U1BOOWNBYjFpS3J5bFd1M2NwS3pnUHlpNDY1cDRMM2JVU1VpVGRnT1RVdCt6?= =?utf-8?B?dkllVkNRZUJJcC90ekM0b3hHMFRTQVJLTU82cEpaUFMyTWtlWDAzZW5RSmRV?= =?utf-8?B?bWZjNW4xT2EyRWd6UkxSRVRpQ0YzdDJBR1dkUHp6YlRoM0NTcHpDd25EQXNt?= =?utf-8?B?cHdIeDYvcDluRDhQa3ZEU0plNUpjRmdqT3ZtRGVjY05Vakk5dlpGemdicGZ6?= =?utf-8?B?TStFcElPTDNxYUN2enN2T3JhUlpNVXc4R1VETXNKL3BaZm5NYWNaVWtkUC94?= =?utf-8?B?anN1Rmh0NERrdFhwcHE5MThQVWJlTlk5akNEdXA5bVZscUVoRXh5WG9HcnNJ?= =?utf-8?B?UTcxa3hERlprWkVpMTN5VHlHOEwxcjNNcm9UYVcvRmtVakxWRWU0RlY0cTJN?= =?utf-8?B?bDBrWHFLa3c2RnZhMkpoZHlsZ0xadUhDMEo2N3gwb3BXVGlzbDlDMXNQanpS?= =?utf-8?B?QnE2aGRWbE04Qlpkd1YxVVFHc21IMy9RNFJnSmxrWmVTVXJmUkRZNlJWZm5a?= =?utf-8?B?dUZGZncwMDFsaUJxQ00zUS8zUTI1cnVVYnYzSytjbXdNMXFIQ2h0VWY3a0ZJ?= =?utf-8?B?dmJ4RmJuTE1sWEdzSDk5cldjUEZIZW54Mm1QcEtTdFZ1eWdOUnBVNStSeCtu?= =?utf-8?B?SWpvMllzYWJYVy9DOW9SbkJScW9jWkcyWlFqMVpsVHZKZlFuUGxDeHNXald1?= =?utf-8?B?UWtKT1JvWlIrNjA1bk8rUDZhZ1VHN0dRdFlpWmM3UXo4eVdQdk1EQ0VKemt2?= =?utf-8?B?NjhmUVRua3hWenBvQ2IwTklGcFdYbGlobHlKVk5DQVlHeXM3QUQ2NHVjNFA0?= =?utf-8?B?SUthZllPMWgyM3Myd2Zld1J3bEVvWWZRU1dPOUF1RjlZSlVGeDVrblNVaThG?= =?utf-8?B?MTdTVk5VdjQ0UE11bHJBajExV3hvMVpwT0wwV2diTjJTSndLTCtLQVUxOW1X?= =?utf-8?B?UHJ2cmlCbUxRaUZlVXVIL1VPZkVBalo3L3JvY3RLeFViSXNJenlOQVArWVdm?= =?utf-8?B?V1JYL2NBMUt4MXdGNkdKOWtvZG9VaTNtYkRVaFczelJMTDJ6aFB0bG90d21M?= =?utf-8?B?eWlZOGJwdGlOSUVobnRMVm9SWHQzeFRsNVdzOHRWQ1pqY00vSnNIY3RYNG5P?= =?utf-8?B?SmVUQU9WeFYzNFQ0SU9NWnZhL0IraWF5QktSS3F4dWRGM0MwVnVYdzFIUG11?= =?utf-8?B?UWlTNU81SlJ0UldNVVkyc2ZlWGVUMnZNc1JBclBUQTNOV2puOXE1RDl3NlBH?= =?utf-8?B?cjh5dUpsQXEyZy9TQkpTWENKV3lrTDh5NmxJakQ2Y0VDNkJoQXVLbzdDNjc2?= =?utf-8?B?VUUwN2tpS1VyVWEvcU1MWlRTR21jUFNJbVNBbW93K3hBSTdLWE1abER4T1cv?= =?utf-8?B?OGw5UjVKemhYSUhreTliRHZkYjdESWg3anA0enR2T2VmU2RpeEtCNzZNZkRz?= =?utf-8?B?UkRuMjc0OHROS1pwM1c2WDFvMEFBUFR6d0I5NUViaXVPMnJZZW1mR3F3OWlr?= =?utf-8?B?QmRzdGpHY0N3OGVlZ3d2WE5kQVhjemZPbHhDdTZUa3RYSFhkQnU3cTNUU25a?= =?utf-8?B?ZjdhYm5waFA3QjJFTFJCcDJSdVdWenRvOEZsanhhMDgvZDRTNFd2Nno3dWsz?= =?utf-8?B?T1oxUEx1WnRXWUMyVGVpQkZETnVYRnVNb3M0S0tuektZTFZZZC91UlZETnYv?= =?utf-8?B?U2V5cDU2SldnYkFONkpXODJEbTh3R0VEemhQU2grR1JUQ0hjTG03L2l6MG43?= =?utf-8?B?M0VHUVZLdDcwODRaM25tVW44bXVNSDY1RWV1Vi9JOWd1dkd0SU9mZmRMTzNz?= =?utf-8?B?WlBVMlA0K0R5T0JIWGprWW9ocVY0elcrTVo5TWdTc2l1NDdlenB1UFFmTlNt?= =?utf-8?B?c0hKbkFManhBR1lGcnBvRVYwbXlnPT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB5677.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94b46403-6a0b-4e86-86b2-08d9b9ab702c X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Dec 2021 18:00:22.0565 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hRWMqxAVsj/RPM43IqJAS46YL3/mgNFEGBKXMRvvxlAVa8YnLfB95qvKWDFMhIHpN/VGE2EBUN1nHD6E4hAqYI+20WpwOu+Icn3ym45n3Ag= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5645 X-OriginatorOrg: intel.com 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 SEkgSmVyaW4sDQoNClNvcnJ5IGZvciBteSBkZWxheS4gSSBhbSBjdXJyZW50bHkgaW4gdmFjYXRp b24gdW50aWwgdGhlIGJlZ2lubmluZyBvbiBKYW51YXJ5IDIwMjIsIHNvIG15IHJlc3BvbnNlIGlz IHNsb3dlciB0aGFuIHVzdWFsLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXks IERlY2VtYmVyIDcsIDIwMjEgOTo1NSBBTQ0KPiBUbzogRHVtaXRyZXNjdSwgQ3Jpc3RpYW4gPGNy aXN0aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29tPg0KPiBDYzogamVyaW5qQG1hcnZlbGwuY29tOyBU aG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBZaWdpdCwNCj4gRmVycnVoIDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA8YW5kcmV3LnJ5YmNo ZW5rb0Bva3RldGxhYnMucnU+OyBkZXZAZHBkay5vcmc7DQo+IGFyeWJjaGVua29Ac29sYXJmbGFy ZS5jb207IGxpemhAbnZpZGlhLmNvbTsNCj4gYWppdC5raGFwYXJkZUBicm9hZGNvbS5jb207IFNp bmdoLCBKYXN2aW5kZXINCj4gPGphc3ZpbmRlci5zaW5naEBpbnRlbC5jb20+OyBtYXRhbkBudmlk aWEuY29tOw0KPiBuZGFiaWxwdXJhbUBtYXJ2ZWxsLmNvbTsgc2tvcmlAbWFydmVsbC5jb207IHJr dWR1cnVtYWxsYUBtYXJ2ZWxsLmNvbQ0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUkZDIFBB VENIXSBldGhkZXY6IG10cjogZW5oYW5jZSBpbnB1dCBjb2xvciB0YWJsZQ0KPiBmZWF0dXJlcw0K PiANCj4gT24gV2VkLCBOb3YgMTcsIDIwMjEgYXQgNTozMCBQTSBKZXJpbiBKYWNvYiA8amVyaW5q YWNvYmtAZ21haWwuY29tPg0KPiB3cm90ZToNCj4gPg0KPiA+IE9uIE1vbiwgT2N0IDExLCAyMDIx IGF0IDg6NTMgUE0gRHVtaXRyZXNjdSwgQ3Jpc3RpYW4NCj4gPiA8Y3Jpc3RpYW4uZHVtaXRyZXNj dUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+ID4NCj4gPiA+IEhpIEplcmluLA0KPiA+DQo+IEhpIENy aXN0aWFuLA0KPiANCj4gQ291bGQgeW91IHNoYXJlIHlvdXIgZmVlZGJhY2sgc28gdGhhdCBJIGNh biBzZW5kIHRoZSB2MT8NCj4gDQo+IA0KPiA+DQo+ID4NCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IGplcmluakBtYXJ2ZWxsLmNvbSA8amVy aW5qQG1hcnZlbGwuY29tPg0KPiA+ID4gPiBTZW50OiBGcmlkYXksIEF1Z3VzdCAyMCwgMjAyMSA5 OjI0IEFNDQo+ID4gPiA+IFRvOiBEdW1pdHJlc2N1LCBDcmlzdGlhbiA8Y3Jpc3RpYW4uZHVtaXRy ZXNjdUBpbnRlbC5jb20+OyBUaG9tYXMNCj4gTW9uamFsb24NCj4gPiA+ID4gPHRob21hc0Btb25q YWxvbi5uZXQ+OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsNCj4gQW5k cmV3DQo+ID4gPiA+IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+ ID4gPiA+IENjOiBkZXZAZHBkay5vcmc7IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207IGxpemhA bnZpZGlhLmNvbTsNCj4gPiA+ID4gYWppdC5raGFwYXJkZUBicm9hZGNvbS5jb207IFNpbmdoLCBK YXN2aW5kZXINCj4gPiA+ID4gPGphc3ZpbmRlci5zaW5naEBpbnRlbC5jb20+OyBtYXRhbkBudmlk aWEuY29tOw0KPiA+ID4gPiBuZGFiaWxwdXJhbUBtYXJ2ZWxsLmNvbTsgc2tvcmlAbWFydmVsbC5j b207DQo+IHJrdWR1cnVtYWxsYUBtYXJ2ZWxsLmNvbTsNCj4gPiA+ID4gSmVyaW4gSmFjb2IgPGpl cmluakBtYXJ2ZWxsLmNvbT4NCj4gPiA+ID4gU3ViamVjdDogW2RwZGstZGV2XSBbUkZDIFBBVENI XSBldGhkZXY6IG10cjogZW5oYW5jZSBpbnB1dCBjb2xvcg0KPiB0YWJsZQ0KPiA+ID4gPiBmZWF0 dXJlcw0KPiA+ID4gPg0KPiA+ID4gPiBGcm9tOiBKZXJpbiBKYWNvYiA8amVyaW5qQG1hcnZlbGwu Y29tPg0KPiA+ID4gPg0KPiA+ID4gPiBDdXJyZW50bHksIG1ldGVyIG9iamVjdCBzdXBwb3J0cyBv bmx5IERTQ1AgYmFzZWQgb24gaW5wdXQgY29sb3IgdGFibGUsDQo+ID4gPiA+IFRoZSBwYXRjaCBl bmhhbmNlIHRoYXQgdG8gc3VwcG9ydCBWTEFOIGJhc2VkIGlucHV0IGNvbG9yIHRhYmxlLA0KPiA+ ID4gPiBjb2xvciB0YWJsZSBiYXNlZCBvbiBpbm5lciBmaWVsZCBmb3IgdGhlIHR1bm5lbCB1c2Ug Y2FzZSwgIGFuZCBzdXBwb3J0DQo+ID4gPiA+IGZvciBmYWxsYmFjayBjb2xvciBwZXIgbWV0ZXIg aWYgcGFja2V0IGJhc2VkIG9uIGEgZGlmZmVyZW50IGZpZWxkLg0KPiA+ID4gPg0KPiA+ID4gPiBB bGwgb2YgdGhlIGFib3ZlIGZlYXR1cmVzIGFyZSBleHBvc2VkIHRocm91Z2ggY2FwYWJpbGl0eSBh bmQgYWRkZWQNCj4gPiA+ID4gYWRkaXRpb25hbCBjYXBhYmlsaXR5IHRvIHNwZWNpZnkgdGhlIGlt cGxlbWVudGF0aW9uIHN1cHBvcnRzDQo+ID4gPiA+IG1vcmUgdGhhbiBvbmUgaW5wdXQgY29sb3Ig dGFibGUgcGVyIGV0aGRldiBwb3J0Lg0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBK ZXJpbiBKYWNvYiA8amVyaW5qQG1hcnZlbGwuY29tPg0KPiA+DQo+ID4gPiA+IDIuMzMuMA0KPiA+ ID4NCj4gPiA+IEFsbG93aW5nIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBwYWNrZXQgaW5wdXQg Y29sb3IgYmFzZWQgb24gbXVsdGlwbGUNCj4gcHJvdG9jb2xzIGFzIG9wcG9zZWQgdG8ganVzdCBJ UCBEU0NQIGZpZWxkIG1ha2VzIHNlbnNlIHRvIG1lLg0KPiA+ID4NCj4gPg0KPiA+IEFwb2xvZ2ll cyBmb3IgdGhlIGRlbGF5IGluIHJlc3BvbnNlLiBUaGlzIHdhcyBtaXNzZWQgdGhlIDIxLjExDQo+ ID4gdGltZWZyYW1lIHNvIEkgZG9uJ3QgYm90aGVyIHJlcGx5aW5nLiBSZXZpdmluZyBiYWNrLg0K PiA+DQo+ID4gPiBBIGZldyBxdWVzdGlvbnMvc3VnZ2VzdGlvbnM6DQo+ID4gPg0KPiA+ID4gMS4g SG93IGRvIHdlIGRlY2lkZSB3aGljaCBmaWVsZC9wcm90b2NvbCB0YWtlcyBwcmVjZWRlbmNlIHRv IGRlZmluZSB0aGUNCj4gcGFja2V0IGlucHV0IGNvbG9yPyBZb3UgYXJlIGVuYWJsaW5nIDIgcG9z c2libGUgb3B0aW9ucyBzbyBmYXIsIGkuZS4gVkxBTiB0YWcNCj4gUENQIGZpZWxkIGFuZCBJUCBE U0NQIGZpZWxkLCB3aGljaCBvbmUgaXMgdG8gYmUgc2V0IGZvciB0aGUgY3VycmVudCBtZXRlcg0K PiBvYmplY3Q/IFVzaW5nIHRoZSBjYXBhYmlsaXRpZXMgdG8gIGRlY2lkZSBpcyBjb25mdXNpbmcs IGFzIGEgc3BlY2lmaWMgbWV0ZXINCj4gb2JqZWN0IG1pZ2h0IGJlIGFibGUgdG8gc3VwcG9ydCBt dWx0aXBsZSBvciBldmVuIGFsbCB0aGUgcG9zc2libGUgb3B0aW9ucyAoZS5nLg0KPiB0aGUgbWV0 ZXIgb2JqZWN0IGlzIGZpbmUgd2l0aCBlaXRoZXIgSVAgRFNDUCBvciBWTEFOIFBDUCkuIFRoZXJl Zm9yZSwgd2UNCj4gbmVlZCAgYSBjbGVhciBtZWNoYW5pc20gdG8gdW5lcXVpdm9jYWxseSBwaWNr IG9uZTsgSSB0aGluayB0aGUgdXNlciBtdXN0DQo+IGV4cGxpY2l0bHkgZGVmaW5lIHdoaWNoIGlu cHV0IGNvbG9yIG1ldGhvZG9sb2d5IGlzIHRvIGJlIHVzZWQgYnkgZXhwbGljaXRseQ0KPiBzZXR0 aW5nIGEgZmllbGQgKHRvIGJlIGFkZGVkKSBpbiB0aGUgbWV0ZXIgb2JqZWN0IHBhcmFtZXRlciBz dHJ1Y3R1cmUuDQo+ID4NCj4gPiBDdXJyZW50bHksIGluIG91ciBIVywgRWFjaCBtZXRlciBvYmpl Y3QgbmVlZHMgdG8gdGVsbCB3aGljaCBwcmUtY29sb3INCj4gPiBzY2hlbWUgaXQgaXMgZ29pbmcg dG8gdXNlKElQIERTQ1Agb3IgVkxBTiBQQ1ApLiBUaGlzIGlzIE9LIGluIHRoZQ0KPiA+IG92ZXJh bGwgc2NoZW1lIG9mIHRoaW5ncyBhcyB0aGUgbWV0ZXIgb2JqZWN0IGlzIGNvbm5lY3RlZCB0byBy dGVfZmxvdy4NCj4gPiBTbywNCj4gPiBydGVfZmxvdyBwYXR0ZXJuIGNhbiBkZWNpZGUgdGhlIHN0 ZWVyaW5nIHRvIG1ldGVyLiBIYXZpbmcgc2FpZCB0aGF0LA0KPiA+IGl0IGlzIHBvc3NpYmxlIHRv IGhhdmUgYXJyYXkgZm9yIGlucHV0IGNvbG9yIGFzIHlvdSBzdWdnZXN0ZWQuIElmDQo+ID4gY2hv b3NlIHRoYXQsIHBhdGgsIFdlIG5lZWQgdG8gYWRkIGNhcGFiaWxpdHkgdGVsbCBpbXBsZW1lbnRh dGlvbg0KPiA+IHN1cHBvcnRzIG9ubHkgb25lIGlucHV0IGNvbG9yIHBlciBtZXRlciBvYmplY3Qu IExldCBtZSBrbm93IGlmIHRoaXMgaXMNCj4gPiBPSy4NCj4gPg0KDQpUaGFua3MgZm9yIHRoZSBl eHBsYW5hdGlvbiBvZiB0aGUgY2FwYWJpbGl0aWVzIHlvdSBhcmUgdHJ5aW5nIHRvIGVuYWJsZSBp biB0aGUgQVBJLiBCYXNlZCBvbiB0aGlzLCBJIGFtIHJlY29uc2lkZXJpbmcgc29tZSBvZiBteSBw cmV2aW91cyBpbnB1dC4gSGVyZSBhcmUgbXkgY3VycmVudCB0aG91Z2h0czoNCg0KYSkgRWFjaCBt ZXRlciBvYmplY3QgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBtdWx0aXBsZSBtZXRob2RzIHRvIGRl dGVybWluZSB0aGUgaW5wdXQgY29sb3I6IElQIERTQ1AgYW5kIFZMQU4gUENQIGFyZSBqdXN0IHR3 byBvZiB0aGVtLCBvdGhlcnMgYXJlIHBvc3NpYmxlIChhcyBhbHNvIGxpc3RlZCBieSB5b3UpLiBJ IHRoaW5rIHRoZSBwcm9ibGVtIHdlIGFyZSB0cnlpbmcgdG8gc29sdmUgaGVyZSBpczogaW4gY2Fz ZSBtdWx0aXBsZSBzdWNoIG1ldGhvZHMgYXJlIGVuYWJsZWQgZm9yIGEgZ2l2ZW4gbWV0ZXIgb2Jq ZWN0IEFORCBtb3JlIHRoYW4gb25lIGVuYWJsZWQgbWV0aG9kIGlzIGFwcGxpY2FibGUgZm9yIGEg cGFydGljdWxhciBpbnB1dCBwYWNrZXQgYXQgcnVuLXRpbWUgKGUuZy4gdGhlIHBhY2tldCBpcyBh biBJUCBwYWNrZXQsIGJ1dCBpdCBhbHNvIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBWTEFOIGxhYmVs LCBhbmQgYm90aCBJUCBEU0NQIGFuZCB0aGUgVkxBTiBQQ1AgbWV0aG9kcyBhcmUgZW5hYmxlZCBm b3IgdGhlIG1ldGVyIG9iamVjdCksIGhvdyBkbyB3ZSBkZWNpZGUgd2hpY2ggbWV0aG9kIGlzIHRv IGJlIGFwcGxpZWQ/IFNvLCBJTU8gd2UgbmVlZCB0byBkZWZpbmUgYSBwcmlvcml0eSBzY2hlbWUg dGhhdCBhbHdheXMgcGlja3MgYSBzaW5nbGUgbWV0aG9kOg0KDQoJLSBhIHVuaXF1ZSBwcmlvcml0 eSBmb3IgZWFjaCBtZXRob2Q7DQoNCgktIGEgZGVmYXVsdCBtZXRob2QgdG8gYmUgdXNlZCB3aGVu IG5vbmUgb2YgdGhlIGVuYWJsZWQgbWV0aG9kcyBpcyBhcHBsaWNhYmxlIHRvIHRoZSBpbnB1dCBw YWNrZXQuDQoNCmIpIFRoZSBkZWZhdWx0IG1ldGhvZCBtdXN0IGJlIHVzYWJsZSBldmVuIHdoZW4g dGhlIGlucHV0IHBhY2tldCB0eXBlIGlzIHVua25vd24gdG8gdGhlIEhXICh1bnN1cHBvcnRlZCks IGUuZy4gd2Ugc2hvdWxkIHN0aWxsIGJlIGFibGUgdG8gZGVjaWRlIHRoZSBpbnB1dCBjb2xvciBv ZiBhIHBhY2tldCB0aGF0IGlzIG5vdCBhbiBJUCBwYWNrZXQsIHN1Y2ggYXMgQVJQLCBhbmQgaXQg ZG9lcyBub3QgY29udGFpbiBhbnkgVkxBTiBsYWJlbHMuIEZvciB0aGlzLCBJIHN1Z2dlc3Qgd2Ug YWRkIGEgZmllbGQgaW5zIHN0cnVjdCBydGVfbXRyX3BhcmFtcyBjYWxsZWQgZGVmYXVsdF9pbnB1 dF9jb2xvciBvZiB0eXBlIGVudW0gcnRlX2NvbG9yOg0KDQoJc3RydWN0IHJ0ZV9tdHJfcGFyYW1z IHsNCgkJZW51bSBydGVfY29sb3IgZGVmYXVsdF9pbnB1dF9jb2xvcjsgLyogSW5wdXQgY29sb3Ig dG8gYmUgc2V0IGZvciB0aGUgaW5wdXQgcGFja2V0IHdoZW4gbm9uZSBvZiB0aGUgZW5hYmxlZCBp bnB1dCBjb2xvciBtZXRob2RzIGlzIGFwcGxpY2FibGUgdG8gdGhlIGN1cnJlbnQgaW5wdXQgcGFj a2V0LiBJZ25vcmVkIHdoZW4gdGhpcyBtZXRob2QgaXMgc2V0IHRvIHRoZSBjb2xvciBibGluZCBt ZXRob2QuICovDQoJfTsNCg0KYykgSW4gdGVybXMgb2YgbWV0aG9kcyBhbmQgdGhlaXIgcHJpb3Jp dHksIEkgcHJvcG9zZSB0byBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9ucywgZWFjaCBv ZiB3aGljaCByZWZlcnJpbmcgdG8gYSBzZXQgb2YgbWV0aG9kcywgd2l0aCBhIGNsZWFyIHdheSB0 byBzZWxlY3QgYSB1bmlxdWUgbWV0aG9kLiBUaGlzIGlzIHRoZSBtaW5pbWFsIHNldCBuZWVkZWQg dG8gc3VwcG9ydCB0aGUgSFcgY2FwYWJpbGl0aWVzIHRoYXQgeW91IG1lbnRpb24sIHRoaXMgc2V0 IGNhbiBiZSBleHRlbmRlZCBhcyBuZWVkZWQgaW4gdGhlIGZ1dHVyZToNCg0KCWVudW0gcnRlX210 cl9pbnB1dF9jb2xvcl9tZXRob2Qgew0KCQlSVEVfTVRSX0lOUFVUX0NPTE9SX01FVEhPRF9DT0xP Ul9CTElORCwgLyogVGhlIGlucHV0IGNvbG9yIGlzIGFsd2F5cyBncmVlbi4gVGhlIGRlZmF1bHRf aW5wdXRfY29sb3IgaXMgaWdub3JlZCBmb3IgdGhpcyBtZXRob2QuICovDQoJCVJURV8gTVRSX0lO UFVUX0NPTE9SX01FVEhPRF9JUF9EU0NQLCAvKiBJZiB0aGUgaW5wdXQgcGFja2V0IGlzIElQdjQg b3IgSVB2NiwgaXRzIGlucHV0IGNvbG9yIGlzIGRldGVjdGVkICBieSB0aGUgRFNDUCBmaWVsZCBp bmRleGluZyBpbnRvIHRoZSBkc2NwX3RhYmxlLiBPdGhlcndpc2UsIHRoZSBkZWZhdWx0X2lucHV0 X2NvbG9yIGlzIGFwcGxpZWQuICovDQoJCVJURV8gTVRSX0lOUFVUX0NPTE9SX01FVEhPRF9PVVRF Ul9WTEFOX1BDUCwgLyogSWYgdGhlIGlucHV0IHBhY2tldCBoYXMgYXQgbGVhc3Qgb25lIFZMQU4g bGFiZWwsIGl0cyBpbnB1dCBjb2xvciBpcyBkZXRlY3RlZCBieSB0aGUgb3V0ZXJtb3N0IFZMQU4g UENQIGluZGV4aW5nIGludG8gdGhlIHZsYW5fdGFibGUuIE90aGVyd2lzZSwgdGhlIGRlZmF1bHRf aW5wdXRfY29sb3IgaXMgYXBwbGllZC4gKi8NCgkJUlRFXyBNVFJfSU5QVVRfQ09MT1JfTUVUSE9E X09VVEVSX1ZMQU5fUENQX0lQX0RTQ1AsIC8qIElmIHRoZSBpbnB1dCBwYWNrZXQgaGFzIGF0IGxl YXN0IG9uZSBWTEFOIGxhYmVsLCBpdHMgaW5wdXQgY29sb3IgaXMgZGV0ZWN0ZWQgYnkgdGhlIG91 dGVybW9zdCBWTEFOIFBDUCBpbmRleGluZyBpbnRvIHRoZSB2bGFuX3RhYmxlLiBPdGhlcndpc2Us IGlmIHRoZSBwYWNrZXQgaXMgSVB2NCBvciBJUHY2LCBpdHMgaW5wdXQgY29sb3IgaXMgZGV0ZWN0 ZWQgYnkgdGhlIERTQ1AgZmllbGQgaW5kZXhpbmcgaW50byB0aGUgZHNjcF90YWJsZS4gT3RoZXJ3 aXNlLCB0aGUgZGVmYXVsdF9pbnB1dF9jb2xvciBpcyBhcHBsaWVkLiAqLw0KCQlSVEVfIE1UUl9J TlBVVF9DT0xPUl9NRVRIT0RfSU5ORVJfVkxBTl9QQ1AsIC8qIElmIHRoZSBpbnB1dCBwYWNrZXQg aGFzIGF0IGxlYXN0IG9uZSBWTEFOIGxhYmVsLCBpdHMgaW5wdXQgY29sb3IgaXMgZGV0ZWN0ZWQg YnkgdGhlIGlubmVybW9zdCBWTEFOIFBDUCBpbmRleGluZyBpbnRvIHRoZSB2bGFuX3RhYmxlLiBP dGhlcndpc2UsIHRoZSBkZWZhdWx0X2lucHV0X2NvbG9yIGlzIGFwcGxpZWQuICovDQoJCVJURV8g TVRSX0lOUFVUX0NPTE9SX01FVEhPRF9JTk5FUl9WTEFOX1BDUF9JUF9EU0NQLCAvKiBJZiB0aGUg aW5wdXQgcGFja2V0IGhhcyBhdCBsZWFzdCBvbmUgVkxBTiBsYWJlbCwgaXRzIGlucHV0IGNvbG9y IGlzIGRldGVjdGVkIGJ5IHRoZSBpbm5lcm1vc3QgVkxBTiBQQ1AgaW5kZXhpbmcgaW50byB0aGUg dmxhbl90YWJsZS4gT3RoZXJ3aXNlLCBpZiB0aGUgcGFja2V0IGlzIElQdjQgb3IgSVB2NiwgaXRz IGlucHV0IGNvbG9yIGlzIGRldGVjdGVkIGJ5IHRoZSBEU0NQIGZpZWxkIGluZGV4aW5nIGludG8g dGhlIGRzY3BfdGFibGUuIE90aGVyd2lzZSwgdGhlIGRlZmF1bHRfaW5wdXRfY29sb3IgaXMgYXBw bGllZC4gKi8NCgl9Ow0KDQoJc3RydWN0IHJ0ZV9tdHJfcGFyYW1zIHsNCgkJZW51bSBydGVfbXRy X2lucHV0X2NvbG9yX21ldGhvZCBpbnB1dF9jb2xvcl9tZXRob2Q7DQoJfTsNCg0KZCkgVGhlIGFi b3ZlIHBvaW50IG1lYW5zIHRoYXQgYWxsIHRoZSBwcm90b2NvbCBkZXBlbmRlbnQgdGFibGVzIGFy ZSBpbmRlcGVuZGVudCBvZiBlYWNoIG90aGVyLCBzbyB0aGV5IGNhbiBhbGwgZXhpc3QgYXQgdGhl IHNhbWUgdGltZSwgc28gd2UgY2Fubm90IHB1dCBhbGwgb2YgdGhlbSBpbnRvIGEgdW5pb24gb3Ig YSBzaW5nbGUgdW5pZmllZCBpbnB1dCBjb2xvciB0cmFuc2xhdGlvbiB0YWJsZS4gSW4gY2FzZSBh bnkgb2YgdGhlc2UgdGFibGVzIGlzIGVuYWJsZWQvcmVxdWlyZWQgYnkgdGhlIGlucHV0IGNvbG9y IHNjaGVtZSwgYnV0IGl0IGlzIHNldCB0byBOVUxMLCBpdCBtdXN0IGF1dG9tYXRpY2FsbHkgcmVz b2x2ZSB0byBhbiAiYWxsLWdyZWVuIiB0YWJsZSAoYXMgaXQgaXMgYWxyZWFkeSB0aGUgY2FzZSBm b3IgdGhlIGV4aXN0aW5nIGRzY3BfdGFibGUpLg0KDQoJc3RydWN0IHJ0ZV9tdHJfcGFyYW1zIHsN CgkJZW51bSBydGVfY29sb3IgKmlwX2RzY3BfdGFibGU7IC8qIFVzZWQgd2hlbiB0aGUgSVAgRFND UCBpbnB1dCBjb2xvciBtZXRob2QgaXMgc2VsZWN0ZWQgZm9yIHRoZSBjdXJyZW50IGlucHV0IHBh Y2tldC4gSWYgc2V0IHRvIE5VTEwsIGl0IGRlZmF1bHRzIHRvIDY0IGVsZW1lbnRzIG9mIFJURV9D T0xPUl9HUkVFTi4gKi8NCgkJZW51bSBydGVfY29sb3IgKnZsYW5fdGFibGU7IC8qIFVzZWQgd2hl biB0aGUgb3V0ZXJtb3N0L2lubmVybW9zdCBWTEFOIFBDUCBpbnB1dCBjb2xvciBtZXRob2QgaXMg c2VsZWN0ZWQgZm9yIHRoZSBjdXJyZW50IGlucHV0IHBhY2tldC4gSWYgc2V0IHRvIE5VTEwsIGl0 IGRlZmF1bHRzIHRvIGFsbCBlbGVtZW50cyBiZWluZyBSVEVfQ09MT1JfR1JFRU4uICovDQoJfTsN Cg0KU28gbWFueSBkZXRhaWxzIHRvIGFkZHJlc3MgaW4gb3JkZXIgdG8gYXZvaWQgYW55IGxvb3Bo b2xlcyBpbiB0aGlzIEFQSSwgYnV0IEkgdGhpbmsgdGhpcyBzY2hlbWUgaXMgaW1wbGVtZW50YWJs ZSBhbmQgcm9idXN0IGVub3VnaC4gV2hhdCBkbyB5b3UgdGhpbms/DQoNCj4gPg0KPiA+ID4NCj4g PiA+IDIuIFdoYXQgaWYgdGhlIGRlZmluZWQgaW5wdXQgY29sb3IgbWV0aG9kb2xvZ3kgaXMgbm90 IGFwcGxpY2FibGUgdG8gdGhlDQo+IGN1cnJlbnQgaW5wdXQgcGFja2V0PyBGb3IgZXhhbXBsZSwg dGhlIHVzZXIgc2VsZWN0cyBWTEFOIFBDUCwgYnV0IHNvbWUgb3INCj4gYWxsIG9mIHRoZSBpbnB1 dCBwYWNrZXRzIGRvIG5vdCBjb250YWluIGFueSBWTEFOIGxhYmVscz8NCj4gPg0KPiA+IGl0IHBp Y2tzIHRoZSBydGVfbXRyX3BhcmFtczo6ZmFsbGJhY2tfaW5wdXRfY29sb3INCj4gPg0KDQpXZSBs aWtlbHkgbmVlZCBhIG1vcmUgY29tcGxleCBzY2hlbWUsIHNlZSBhYm92ZSA7KQ0KDQo+ID4gPg0K PiA+ID4gMy4gSG93IGRvIHdlIG1hbmFnZSB0aGUgbWFueSBwYWNrZXQgZmllbGRzIHRoYXQgY291 bGQgYmUgdXNlZCBhcyB0aGUNCj4ga2V5IGZvciB0aGUgaW5wdXQgY29sb3I6IG91dGVyIElQIERT Q1AsIGlubmVyIElQIERTQ1AsIFZMQU4gMXN0IGxhYmVsLCBWTEFODQo+IDJuZCBsYWJlbCwgTVBM UyBRb1MsIGV0Yz8NCj4gPiA+IC0gQXBwcm9hY2ggQTogVXNlIGFuIGVudW1lcmF0aW9uLCBsaWtl IHlvdSBwcm9wb3NlLCBhbmQgd2UgY2FuIGFkZA0KPiBtb3JlIGluIHRoZSBmdXR1cmUuIE5vdCBp ZGVhbC4NCj4gPiA+IC0gQXBwcm9hY2ggQjogUG9pbnQgdG8gYSBwcm90b2NvbC1hZ25vc3RpYyBw YWNrZXQgZmllbGQgYnkgZGVmaW5pbmcgdGhlDQo+IG9mZnNldCBhbmQgbWFzayBvZiBhIDY0LWJp dCBmaWVsZC4gQWR2YW50YWdlOiB3ZSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGUNCj4gQVBJIGV2 ZXJ5IHRpbWUgd2UgYWRkIGEgbmV3IG9wdGlvbi4NCj4gPg0KPiA+IE5vIHN0cm9uZyBvcGluaW9u IG9uIGRvaW5nIEFwcHJvYWNoIEIuIEkgdGhpbmssIGl0IG1heSBiZSBvdmVya2lsbCBmb3INCj4g PiBhcHBsaWNhdGlvbiBhbmQgaW1wbGVtZW50YXRpb24gdG8gZXhwcmVzcy4gTm8gc3Ryb25nIG9w aW5pb24sIElmIHlvdQ0KPiA+IGhhdmUgYSBzdHJvbmcgb3BpbmlvbiBvbiB0aGF0LCBJIHdpbGwg Y2hhbmdlIHRoYXQgdG8gdjEuIExldCBtZSBrbm93Lg0KPiA+DQoNCkkgd291bGQgbG92ZSB0byBo YXZlIGEgcHJvdG9jb2wgYWdub3N0aWMgc2NoZW1lLCBidXQgSSBhbSBPSyB0byBzdGFydCB3aXRo IGEgc2ltcGxlIHNjaGVtZSBmb3Igbm93IChpZiB5b3UgY2FuIGNhbGwgdGhlIGFib3ZlIHNjaGVt ZSBhcyBiZWluZyBzaW1wbGUgOykgKWFuZCByZXZpc2l0IGxhdGVyIG9uIGlmIG5lZWRlZC4NCg0K PiA+DQo+ID4gPg0KPiA+ID4gNC4gSSBzdWdnZXN0IHdlIHVzZSBhIHVuaWZpZWQgaW5wdXQgY29s b3IgdGFibGUgYXMgb3Bwb3NlZCB0byBvbmUgcGVyDQo+IHByb3RvY29sLCBpLmUuIHJlbmFtZSB0 aGUgc3RydWN0IHJ0ZV9tdHJfcGFyYW1zOjpkc2NwX3RhYmxlIHRvDQo+IGNvbG9yX2luX3RhYmxl LiBUaGUgc2l6ZSBvZiB0aGlzIHRhYmxlIGNvdWxkIGJlIGltcGxpY2l0bHkgZGVmaW5lZCBieSB0 aGUgcGFja2V0DQo+IGZpZWxkIHR5cGUgKGluIGNhc2Ugb2YgZW51bSkgb3IgdGhlIGZpZWxkIG1h c2sgKGluIGNhc2Ugb2YgcHJvdG9jb2wtYWdub3N0aWMNCj4gZmllbGQgb2Zmc2V0IGFuZCBtYXNr KSwgYXMgZGVzY3JpYmVkIGFib3ZlLg0KPiA+DQo+ID4gV2lsbCBkbyB0aGF0LiBJIHRob3VnaHQg bm90IHRvIGRvIHRoYXQganVzdCBiZWNhdXNlLCBJIGRvbid0IHdhbnQgdG8NCj4gPiByZW1vdmUg dGhlIGV4aXN0aW5nIGRzY3BfdGFibGUgc3ltYm9sLg0KPiA+IE1ha2Ugc2Vuc2UgdG8gZW5hYmxl IHlvdXIgc3VnZ2VzdGlvbi4NCj4gPg0KPiA+IExldCBtZSBrbm93IHlvdXIgdmlld3Mgb24gUXVl c3Rpb25zIDEgYW5kIDMuIEkgd2lsbCBzZW5kIHRoZSBuZXh0DQo+ID4gdmVyc2lvbiBiYXNlZCBv biB0aGF0Lg0KPiA+DQoNCkJhc2VkIG9uIHRoZSBhYm92ZSBjb21tZW50cywgSSBubyBsb25nZXIg dGhpbmcgYSB1bmlmaWVkIHN1Y2ggdGFibGUgd291bGQgd29yay4NCg0KPiA+DQo+ID4NCj4gPiA+ DQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4gQ3Jpc3RpYW4NCg0KUmVnYXJkcywNCkNyaXN0aWFuDQo=