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 1EE43A0562; Thu, 1 Apr 2021 15:35:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E54E2141306; Thu, 1 Apr 2021 15:35:21 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 9CCE4141304 for ; Thu, 1 Apr 2021 15:35:19 +0200 (CEST) IronPort-SDR: f/EfjQKDiUQk1Xz0Wrs3JVYeOXKD1qWdffs5P59vcfy6fN4mF9Wp+SK+foyucw0G9u/yuRluPs xEEH+uK2Y9yw== X-IronPort-AV: E=McAfee;i="6000,8403,9941"; a="256228322" X-IronPort-AV: E=Sophos;i="5.81,296,1610438400"; d="scan'208";a="256228322" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2021 06:35:17 -0700 IronPort-SDR: 1k5GthjE9ZLzuD0pG5W2h1flw4gRNzDHBdwtFpZthd64AZX4v5BWkvQSR6TZUt4/c5DNL1SGff 2rOM7ZnP3JUQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,296,1610438400"; d="scan'208";a="384847306" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga007.fm.intel.com with ESMTP; 01 Apr 2021 06:35:17 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Thu, 1 Apr 2021 06:35:16 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Thu, 1 Apr 2021 06:35:16 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Thu, 1 Apr 2021 06:35:16 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) 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.2106.2; Thu, 1 Apr 2021 06:35:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mZBh68NLjU+o/j/rXrf3+yuAYWN/8W8tR/022rxhYGpHacHUGm1oI5gJYXZsgSkQubM5ljPJRSQSwh0g+CNAZ/dYDIctw9VMw7lO2gS/kC6yYKs/xLeaAqDmocEkqsNhuowCiZaXEmFjwmkNhQJzuLRDz3KhUujGezVXvXf5cq0rviNavEp+2POF7BoOjx6/XgJR3LNpm/DyTSCkA3HqoymRctcFhSD1o1QTggu6bUtQF2VyRm/hPLI6sSipyDHVXr6TgcWMoILgjbFNHUxQHQPLA0veE3joYSAjMt3iwRSrKw3PW/t+YotSvV8VqQglcZiSnSUL1Jis5T5oJE5FJw== 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-SenderADCheck; bh=/PXVkfLrNg2VZrei3vkF8ATNhshueh7H6CxDd3V3KCY=; b=nLMu5gymAZtnq4RmTdo23j4B2G2jYsT8OO0CLrCG3tQzObivH02+s4oibIqWtolAGyMA/LDcFhCJnf5GlC+a/5t9iEB4Ejfgpu+mU9eJ/4GbhtdSuxc5R4UYN4vaW3pPRVL2+4Us60TD67KVYnHcntiJJHE/ep/e6CMKEuPqwXJRQ1VN+hntF7ZmuhZO06a0y6YG6pb2DoRKD+0YdXuU1tFxfacOjpMGjADXDsZKTI9n36d1K2h4yb5dQld4KbBF9yox2GVUqaggiX8p/LEvShmFSoLfRC0JbE8HjZhvhMKiSegnIa+XDtJUGaCYbomIMYUE7YVtpI4Fa/TTozsKXw== 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=/PXVkfLrNg2VZrei3vkF8ATNhshueh7H6CxDd3V3KCY=; b=zsA3gwQUi0Jv+IQK7PO/A45U47ZqIh1E9YhH0KkORE642iAw28oDhW6c7oS+MGGw1anxdCa6mQhqF4NnJo0iEU0U1CdeWQn47tgIhmQT6L5VgqgWFXEMZ4HanvxOGvTiI+H5F7z+AFiWAb26K4kyX0IU6tB385m4YOpwUOjP8v8= Received: from DM6PR11MB2796.namprd11.prod.outlook.com (2603:10b6:5:c8::23) by DM5PR11MB1705.namprd11.prod.outlook.com (2603:10b6:3:e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.27; Thu, 1 Apr 2021 13:35:13 +0000 Received: from DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::b5d2:6f20:3c0:3627]) by DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::b5d2:6f20:3c0:3627%7]) with mapi id 15.20.3999.028; Thu, 1 Apr 2021 13:35:13 +0000 From: "Dumitrescu, Cristian" To: Ori Kam , Matan Azrad , Li Zhang , Dekel Peled , Slava Ovsiienko , Shahaf Shuler , "lironh@marvell.com" , "Singh, Jasvinder" , NBU-Contact-Thomas Monjalon , "Yigit, Ferruh" , "Andrew Rybchenko" , Jerin Jacob , Hemant Agrawal , "Ajit Khaparde" CC: "dev@dpdk.org" , Raslan Darawsheh , "Roni Bar Yanai" Thread-Topic: [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API Thread-Index: AQHXG9Tf/DPc1Me1jEakhj0VntDGc6qR9aKwgAJatoCABnJGgIAAcpDggASE3YCAAAJn8A== Date: Thu, 1 Apr 2021 13:35:12 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.79.23.215] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6436204c-d29c-4692-d7ea-08d8f512fa49 x-ms-traffictypediagnostic: DM5PR11MB1705: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tB9kM7SYhFkej5uIWVXllM2yZ0OmScc+lei91/9sWf/1W5Lz6oBjreb7dPlsldiPzpA/NiF4U+rXUn8XuwadlZSjhnpxkhe2/Xf/aQGP7UXssn9Fkt3egGPJYTE+H5rqXPN6/8CKamTH5ylu9SIS0pf1a2XRRpysnL5DxTws9YGN7v8qHxRIpM3B0ygBJ98CpCUMLQ7QKn/mUgYAjpW5Xj8ZalSVy0q4QDkFg2nMGfwYen2cKM1aGhGrpPsZR9/5bjcFKoJQSvsxq7vXesiy8hEJWXR0TAfbbjedvOpIPlw9uW9NB6hKQPbMj/gU4in0dmZEctVIRn1PTKP+1KNhYR/Ftrf1kur0ayBLiM4CK3RV7x2HSeO07g+rZrwTZ1jewLkZTXMbnwJ3fSeXi3aFut0VpyFmt0US3q3+F2/Gew/iuznD5jCOi+xgVC7c2qc3ywwABYLnYIEua71F9F2zssEqSpyzE3+QAxHHLkpFYNuQPtre6N5ukPIh0jYXIPvuLc/AqgCHwRJOHTkBJ6TmvbGulTxQgcJgLO4cSDrBPgORM8COz/zWk/xW1X8eU/jaYlR7pr8VQPWPLZZkqmFjqC6SthV4lex1pY7vatCfCGN8Wnkm9OGV0NR148b7fHRgbRj9c8tB3CJ7P37ddFGpMG5d0ayzrBRCVPHLVBQJGm/oXZhKEOlWqBsBhL7/Hcm4 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB2796.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(39860400002)(346002)(136003)(366004)(396003)(376002)(33656002)(316002)(71200400001)(7416002)(186003)(86362001)(52536014)(2906002)(5660300002)(26005)(8676002)(478600001)(8936002)(53546011)(6506007)(7696005)(66446008)(55016002)(83380400001)(4326008)(64756008)(66946007)(66476007)(66556008)(921005)(38100700001)(76116006)(54906003)(110136005)(9686003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?dkt6amxaWlg4cndNU3diSGQ4dEU0M2MrV3JWeGRxVnlzRmVLL0FaRnBkdTlm?= =?utf-8?B?aWg5alBHU3ovUzVocVMxMFNFbk1ReEZpZ1ZzVmh4M05QNnd3Y2RZbkFBYW0r?= =?utf-8?B?dCt4aHlFbTB2YmRwUjUwRUhNS3RFanFuUDNWbHU0eTlMaFl1c1BZSExKcG9J?= =?utf-8?B?cjdwOTZKRUM4ZXU3cHdORWM4T1BadXRXRFl4Qy9JMlRVVlR6TkJxWGR2UG1I?= =?utf-8?B?OWR0eHdpY1VqWnZZWTYyNE50OUdCcDJQaUU0WHkrVGZuMlpSQnRObFJIOHRZ?= =?utf-8?B?Z1R6aFhib2tORFNZSFBERGpGeCs0WEd6YlZUWUlad0czZ1creUs4V3Rld0ZS?= =?utf-8?B?VHF5QmNjTVFWRXZVZG52Q1RqQXdZSWFyVitjcTBhQWJhNElFbzJDUDhSeDNQ?= =?utf-8?B?eFJXTHkyaU4rbGdvSnJFOXo5QW9OakNtS1g5M0lhL2FPMHNVMHlGTktodTVL?= =?utf-8?B?ZXA3ckNCdlQxZEpXcnkwYmNTR01VMER1RkF4eEYyNTVBSUkycVBncEczU0Zy?= =?utf-8?B?UjVkbm4rUzExS3ZhaU9HSUJISitoalIrWTBPQ3ZBWkZBL2tGcnM3czBsZlY0?= =?utf-8?B?SVJUakUrWWMyY2tIRHJPQWxzc1lwQzBkdGdiSFZaZ3RNQTBBeVFNUnc4YWlY?= =?utf-8?B?eEtkMDhzUzFrRXF3WkZKUWZtWEZTZlBhQk1lUlovRkt6My9zbTJtTzJNZkNy?= =?utf-8?B?OHFTRXoxZmZBT3doNG45VjB0bU4zSWNOSnBxa3kwTFhTL0k3M0NLUE1UcGcy?= =?utf-8?B?Ky9BYmsvRnQ4VU9lVHFPRDBPWVRGbit3UzZ5ZG1LcVNaaGVLZlVIYzdsNUtP?= =?utf-8?B?WVhObDAyczNPT3BISm5MVXpTcm8ycjk2MVlPRVZOc0tMRjYvVmtDRURQenE0?= =?utf-8?B?cS9SSDc5UGNKZjJqTTdlVUxnUEkwZlBuMUpINCt5SmNEeEQ0V1FucExCd28z?= =?utf-8?B?UVVUTzJYdWdmbHFyYzI1V1BmOFJ3YmlrRW9SSEdyY3lyeWhsSEw5VTRaeTBJ?= =?utf-8?B?WnozZit6dU9zaFAwNWlEUzhkMG1Gb1hmRzBWeVVjQ3Z5V2h3STZwM1k5WjV5?= =?utf-8?B?eVE1MkQ4SU1NUG9ESDJuUjlRWVFmaHRkSSsyMGpQSFNhdHpLdXE1UWR1QkFN?= =?utf-8?B?K29mKzErdGpGUEMxVXBOS0pVZXZjQzk5VGFMVmh2ZEd0MWJmb3d3V2k5R2h4?= =?utf-8?B?SGFIUGFRclpqTFlUc3BXRjVWTWNMS0FFRjFLTTVRamVLQnNCMTBaQVdmK041?= =?utf-8?B?R3liUVU1Qks4UzhmOERhUTJwK0srK0lFaE0xWWZhZHNjMllwb2p2czl3eWdB?= =?utf-8?B?ZWdOeWJ6RnkzaFZ4RVVUN3B6cVczMXo1T2s5SjlpS2QxbWUvaG1LcnltZUpY?= =?utf-8?B?UXdreDVEOFkzeW02UDExa1FUSTdmT3JwTjM0UHFFc2I5bWNoaWpQbmdkbDRV?= =?utf-8?B?ajd5U1hRY05vYTIwS3dpRjhicG5mRldwSjZRcWQ4a3h4M1ZuWEhvcjBkM285?= =?utf-8?B?bGhYU040N2ErRFBjaThCVllTVmloVUpVU0JSZEVTbndyeDBUN09MbzRXdnc1?= =?utf-8?B?dGZjYytlOUdVdmxwa21wZEpFcXBOSmdxZ01ZNHp3dVVFSzI4dnNncGgxNWRt?= =?utf-8?B?bW5OMHRUaHI2MDNIb0VNUWZmLy90MTlRK2VaejllVm1UM0RSdG01bmo1b3V5?= =?utf-8?B?RUdSTVhGSFg0Q21sWUltZytaeVNxdmJLcHBiTStmaWRWbXlOditnOFVJeGk3?= =?utf-8?Q?4/1SJyurDJIB5yvmFjJ2+kvoPXt1NG3ycLKDOWY?= 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: DM6PR11MB2796.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6436204c-d29c-4692-d7ea-08d8f512fa49 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2021 13:35:12.9415 (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: IUPy23xXCkY1aI/NdehaigrY2dYwB+abJOHx0HI2CZHKhDGVRBLfyK/4Tkt2b1MdS9ED9hwq3TSlrCASt7Oe3PMLZPh+kYyoyioKqJjdkzs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1705 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API 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 Sender: "dev" SGkgT3JpLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE9yaSBLYW0g PG9yaWthQG52aWRpYS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBBcHJpbCAxLCAyMDIxIDI6MTQg UE0NCj4gVG86IER1bWl0cmVzY3UsIENyaXN0aWFuIDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVs LmNvbT47IE1hdGFuIEF6cmFkDQo+IDxtYXRhbkBudmlkaWEuY29tPjsgTGkgWmhhbmcgPGxpemhA bnZpZGlhLmNvbT47IERla2VsIFBlbGVkDQo+IDxkZWtlbHBAbnZpZGlhLmNvbT47IFNsYXZhIE92 c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IFNoYWhhZg0KPiBTaHVsZXIgPHNoYWhh ZnNAbnZpZGlhLmNvbT47IGxpcm9uaEBtYXJ2ZWxsLmNvbTsgU2luZ2gsIEphc3ZpbmRlcg0KPiA8 amFzdmluZGVyLnNpbmdoQGludGVsLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbg0K PiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRl bC5jb20+OyBBbmRyZXcNCj4gUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5y dT47IEplcmluIEphY29iDQo+IDxqZXJpbmphY29ia0BnbWFpbC5jb20+OyBIZW1hbnQgQWdyYXdh bCA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47DQo+IEFqaXQgS2hhcGFyZGUgPGFqaXQua2hhcGFy ZGVAYnJvYWRjb20uY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoIDxy YXNsYW5kQG52aWRpYS5jb20+OyBSb25pIEJhciBZYW5haQ0KPiA8cm9uaWJhQG52aWRpYS5jb20+ DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMS8yXSBbUkZDXTogZXRoZGV2OiBhZGQgcHJlLWRlZmlu ZWQgbWV0ZXIgcG9saWN5IEFQSQ0KPiANCj4gSGkgQ3Jpc3RpYW4sDQo+IA0KPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogRHVtaXRyZXNjdSwgQ3Jpc3RpYW4gPGNyaXN0 aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29tPg0KPiA+IEhpIE9yaSwNCj4gPg0KPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IE9yaSBLYW0gPG9yaWthQG52aWRpYS5j b20+DQo+ID4gPiBIaSBBbGwsDQo+ID4gPg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4gPiBGcm9tOiBNYXRhbiBBenJhZCA8bWF0YW5AbnZpZGlhLmNvbT4NCj4gPiA+ ID4gU3ViamVjdDogUkU6IFtQQVRDSCAxLzJdIFtSRkNdOiBldGhkZXY6IGFkZCBwcmUtZGVmaW5l ZCBtZXRlciBwb2xpY3kNCj4gQVBJDQo+ID4gPiA+DQo+ID4gPiA+IEhpIENyaXN0aWFuDQo+ID4g PiA+DQo+ID4gPiA+IFRoYW5rIHlvdSBmb3IgeW91ciBpbXBvcnRhbnQgcmV2aWV3IQ0KPiA+ID4g PiBJIGFncmVlIHdpdGggYWxsIHlvdXIgY29tbWVudHMgZXhjZXB0IG9uZSwgcGxlYXNlIHNlZSBp bmxpbmUuDQo+ID4gPiA+DQo+ID4gPiA+IEZyb206IER1bWl0cmVzY3UsIENyaXN0aWFuDQo+ID4g PiA+ID4gSGkgTGkgYW5kIE1hdGFuLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmsgeW91IGZv ciB5b3VyIHByb3Bvc2FsLCBzb21lIGNvbW1lbnRzIGJlbG93Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gSSBhbSBhbHNvIGFkZGluZyBKZXJpbiBhbmQgSGVtYW50IHRvIHRoaXMgdGhyZWFkLCBhcyB0 aGV5IGFsc28NCj4gPiBwYXJ0aWNpcGF0ZWQNCj4gPiA+IGluDQo+ID4gPiA+ID4gdGhlIGRlZmlu aXRpb24gb2YgdGhlIHJ0ZV9tdHIgQVBJIGluIDIwMTcuIEFsc28gQWppdCBleHByZXNzZWQgc29t ZQ0KPiA+ID4gaW50ZXJlc3QgaW4NCj4gPiA+ID4gYQ0KPiA+ID4gPiA+IHByZXZpb3VzIGVtYWls Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ ID4gPiA+ID4gRnJvbTogTGkgWmhhbmcgPGxpemhAbnZpZGlhLmNvbT4NCj4gPiA+ID4gPiA+IFNl bnQ6IFRodXJzZGF5LCBNYXJjaCAxOCwgMjAyMSA4OjU4IEFNDQo+ID4gPiA+ID4gPiBUbzogZGVr ZWxwQG52aWRpYS5jb207IG9yaWthQG52aWRpYS5jb207DQo+IHZpYWNoZXNsYXZvQG52aWRpYS5j b207DQo+ID4gPiA+ID4gPiBtYXRhbkBudmlkaWEuY29tOyBzaGFoYWZzQG52aWRpYS5jb207IGxp cm9uaEBtYXJ2ZWxsLmNvbTsNCj4gU2luZ2gsDQo+ID4gPiA+ID4gPiBKYXN2aW5kZXIgPGphc3Zp bmRlci5zaW5naEBpbnRlbC5jb20+OyBUaG9tYXMgTW9uamFsb24NCj4gPiA+ID4gPiA+IDx0aG9t YXNAbW9uamFsb24ubmV0PjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47 DQo+ID4gPiBBbmRyZXcNCj4gPiA+ID4gPiA+IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bv a3RldGxhYnMucnU+OyBEdW1pdHJlc2N1LA0KPiBDcmlzdGlhbg0KPiA+ID4gPiA+ID4gPGNyaXN0 aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IGRldkBkcGRrLm9yZzsg cmFzbGFuZEBudmlkaWEuY29tOyByb25pYmFAbnZpZGlhLmNvbQ0KPiA+ID4gPiA+ID4gU3ViamVj dDogW1BBVENIIDEvMl0gW1JGQ106IGV0aGRldjogYWRkIHByZS1kZWZpbmVkIG1ldGVyIHBvbGlj eQ0KPiBBUEkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBDdXJyZW50bHksIHRoZSBmbG93IG1l dGVyIHBvbGljeSBkb2VzIG5vdCBzdXBwb3J0IG11bHRpcGxlIGFjdGlvbnMNCj4gcGVyDQo+ID4g PiA+ID4gPiBjb2xvcjsgYWxzbyB0aGUgYWxsb3dlZCBhY3Rpb24gdHlwZXMgcGVyIGNvbG9yIGFy ZSB2ZXJ5IGxpbWl0ZWQuDQo+ID4gPiA+ID4gPiBJbiBhZGRpdGlvbiwgdGhlIHBvbGljeSBjYW5u b3QgYmUgcHJlLWRlZmluZWQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRHVlIHRvIHRoZSBn cm93aW5nIGluIGZsb3cgYWN0aW9ucyBvZmZsb2FkIGFiaWxpdGllcyB0aGVyZSBpcyBhDQo+ID4g PiA+ID4gPiBwb3RlbnRpYWwgZm9yIHRoZSB1c2VyIHRvIHVzZSB2YXJpZXR5IG9mIGFjdGlvbnMg cGVyIGNvbG9yIGRpZmZlcmVudGx5Lg0KPiA+ID4gPiA+ID4gVGhpcyBuZXcgbWV0ZXIgcG9saWN5 IEFQSSBjb21lcyB0byBhbGxvdyB0aGlzIHBvdGVudGlhbCBpbiB0aGUgbW9zdA0KPiA+ID4gPiA+ ID4gZXRoZGV2IGNvbW1vbiB3YXkgdXNpbmcgcnRlX2Zsb3cgYWN0aW9uIGRlZmluaXRpb24uDQo+ ID4gPiA+ID4gPiBBIGxpc3Qgb2YgcnRlX2Zsb3cgYWN0aW9ucyB3aWxsIGJlIHByb3ZpZGVkIGJ5 IHRoZSB1c2VyIHBlciBjb2xvciBpbg0KPiA+ID4gPiA+ID4gb3JkZXIgdG8gY3JlYXRlIGEgbWV0 ZXIgcG9saWN5Lg0KPiA+ID4gPiA+ID4gSW4gYWRkaXRpb24sIHRoZSBBUEkgZm9yY2VzIHRvIHBy ZS1kZWZpbmUgdGhlIHBvbGljeSBiZWZvcmUgdGhlDQo+IG1ldGVycw0KPiA+ID4gPiA+ID4gY3Jl YXRpb24gaW4gb3JkZXIgdG8gYWxsb3cgc2hhcmluZyBvZiBzaW5nbGUgcG9saWN5IHdpdGggbXVs dGlwbGUNCj4gPiA+ID4gPiA+IG1ldGVycyBlZmZpY2llbnRseS4NCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiBtZXRlcl9wb2xpY3lfaWQgaXMgYWRkZWQgaW50byBzdHJ1Y3QgcnRlX210cl9wYXJh bXMuDQo+ID4gPiA+ID4gPiBTbyB0aGF0IGl0IGNhbiBnZXQgdGhlIHBvbGljeSBkdXJpbmcgdGhl IG1ldGVycyBjcmVhdGlvbi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBQb2xpY3kgaWQgMCBp cyBkZWZhdWx0IHBvbGljeS4gQWN0aW9uIHBlciBjb2xvciBhcyBiZWxvdzoNCj4gPiA+ID4gPiA+ IGdyZWVuIC0gbm8gYWN0aW9uLCB5ZWxsb3cgLSBubyBhY3Rpb24sIHJlZCAtIGRyb3ANCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBBbGxvdyBjb2xvcmluZyB0aGUgcGFja2V0IHVzaW5nIGEgbmV3 IHJ0ZV9mbG93X2FjdGlvbl9jb2xvciBhcw0KPiBjb3VsZA0KPiA+ID4gPiA+ID4gYmUgZG9uZSBi eSB0aGUgb2xkIHBvbGljeSBBUEksDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g VGhlIHByb3Bvc2FsIGVzc2VudGlhbGx5IGlzIHRvIGRlZmluZSB0aGUgbWV0ZXIgcG9saWN5IGJh c2VkIG9uDQo+IHJ0ZV9mbG93DQo+ID4gPiA+IGFjdGlvbnMNCj4gPiA+ID4gPiByYXRoZXIgdGhh biBhIHJlZHVjZWQgYWN0aW9uIHNldCBkZWZpbmVkIHNwZWNpZmljYWxseSBqdXN0IGZvciBtZXRl cg0KPiBvYmplY3QuDQo+ID4gPiA+IFRoaXMNCj4gPiA+ID4gPiBtYWtlcyBzZW5zZSB0byBtZS4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlIG5leHQgQVBJIGZ1bmN0aW9uIHdlcmUgYWRkZWQ6 DQo+ID4gPiA+ID4gPiAtIHJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2FkZA0KPiA+ID4gPiA+ID4gLSBy dGVfbXRyX21ldGVyX3BvbGljeV9kZWxldGUNCj4gPiA+ID4gPiA+IC0gcnRlX210cl9tZXRlcl9w b2xpY3lfdXBkYXRlDQo+ID4gPiA+ID4gPiAtIHJ0ZV9tdHJfbWV0ZXJfcG9saWN5X3ZhbGlkYXRl DQo+ID4gPiA+ID4gPiBUaGUgbmV4dCBzdHJ1Y3Qgd2FzIGNoYW5nZWQ6DQo+ID4gPiA+ID4gPiAt IHJ0ZV9tdHJfcGFyYW1zDQo+ID4gPiA+ID4gPiAtIHJ0ZV9tdHJfY2FwYWJpbGl0aWVzDQo+ID4g PiA+ID4gPiBUaGUgbmV4dCBBUEkgd2FzIGRlbGV0ZWQ6DQo+ID4gPiA+ID4gPiAtIHJ0ZV9tdHJf cG9saWNlcl9hY3Rpb25zX3VwZGF0ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IExpIFpoYW5nIDxsaXpoQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ ID4gPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oICAgICAgIHwgIDE4ICsrKysNCj4g PiA+ID4gPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfbXRyLmMgICAgICAgIHwgIDU1ICsrKysr KysrLS0NCj4gPiA+ID4gPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfbXRyLmggICAgICAgIHwg MTY2ICsrKysrKysrKysrKysrKysrKysrLS0tLQ0KPiAtLS0tLQ0KPiA+ID4gPiA+ID4gIGxpYi9s aWJydGVfZXRoZGV2L3J0ZV9tdHJfZHJpdmVyLmggfCAgNDUgKysrKysrLS0NCj4gPiA+ID4gPiA+ ICA0IGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkNCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRl X2Zsb3cuaA0KPiA+ID4gPiA+ID4gYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oIGluZGV4 IDY2OWU2NzdlOTEuLjVmMzhhYTdmYTQNCj4gMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0gYS9saWIv bGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gPiA+ID4gPiArKysgYi9saWIvbGlicnRlX2V0 aGRldi9ydGVfZmxvdy5oDQo+ID4gPiA+ID4gPiBAQCAtMzEsNiArMzEsNyBAQA0KPiA+ID4gPiA+ ID4gICNpbmNsdWRlIDxydGVfZWNwcmkuaD4NCj4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8cnRlX21i dWYuaD4NCj4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8cnRlX21idWZfZHluLmg+DQo+ID4gPiA+ID4g PiArI2luY2x1ZGUgPHJ0ZV9tZXRlci5oPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAjaWZk ZWYgX19jcGx1c3BsdXMNCj4gPiA+ID4gPiA+ICBleHRlcm4gIkMiIHsNCj4gPiA+ID4gPiA+IEBA IC0yMjM2LDYgKzIyMzcsMTMgQEAgZW51bSBydGVfZmxvd19hY3Rpb25fdHlwZSB7DQo+ID4gPiA+ ID4gPiAgICAgICAgKiBTZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9tb2RpZnlfZmllbGQuDQo+ ID4gPiA+ID4gPiAgICAgICAgKi8NCj4gPiA+ID4gPiA+ICAgICAgIFJURV9GTE9XX0FDVElPTl9U WVBFX01PRElGWV9GSUVMRCwNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsgICAgIC8qKg0K PiA+ID4gPiA+ID4gKyAgICAgICogQ29sb3IgdGhlIHBhY2tldCB0byByZWZsZWN0IHRoZSBtZXRl ciBjb2xvciByZXN1bHQuDQo+ID4gPiA+ID4gPiArICAgICAgKg0KPiA+ID4gPiA+ID4gKyAgICAg ICogU2VlIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fY29sb3IuDQo+ID4gPiA+ID4gPiArICAgICAg Ki8NCj4gPiA+ID4gPiA+ICsgICAgIFJURV9GTE9XX0FDVElPTl9UWVBFX0NPbE9SLA0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gVHlwbyBoZXJlLCBpdCBzaG91bGQgYmUgUlRFX0ZMT1dfQUNUSU9OX1RZ UEVfQ09MT1IuDQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiBXaHkgZG8gd2UgbmVlZCB0aGlzIGFj dGlvbj8NCj4gPg0KPiA+IFdlIG5lZWQgdGhpcyBuZXcgcHJvcG9zZWQgUlRFX0ZMT1dfQUNUSU9O X1RZUEVfQ09MT1IgYWN0aW9uIHRvDQo+IHNldCB0aGUNCj4gPiBwYWNrZXQgY29sb3IgaW4gdGhl IHBhY2tldCBtYnVmIChpLmUuIGluIHRoZSBtYnVmOjpzY2hlZDpjb2xvciBmaWVsZCkgaW4gb3Jk ZXINCj4gdG8NCj4gPiB0ZWxsIHRoZSBsYXRlciBzdGFnZXMgb2YgdGhlIHBpcGVsaW5lIHdoYXQg dGhlIHBhY2tldCBjb2xvciBpcy4NCj4gPg0KPiA+ID4gaWYgaXQgaXMgdG8gc2F2ZSB0aGUgY29s b3IgaXQgc2hvdWxkIGJlIGRvbmUgYnkgdXNpbmcgbWFyay9tZXRhZGF0YQ0KPiA+DQo+ID4gQXMg c3RhdGVkIGluIGl0cyBkZXNjcmlwdGlvbiwgdGhlICBSVEVfRkxPV19BQ1RJT05fVFlQRV9NQVJL IGFjdGlvbiBJcw0KPiA+IHNldHRpbmcgdGhlIG1idWY6Omhhc2guZmRpci5oaSBmaWVsZCwgd2hp Y2ggaXMgdXNlZCBmb3IgYSBkaWZmZXJlbnQgcHVycG9zZQ0KPiB0aGF0IGlzDQo+ID4gdW5yZWxh dGVkIHRvIHRoZSBwYWNrZXQgY29sb3IsIHdoaWNoIGhhcyBpdHMgb3duIGZpZWxkIHdpdGhpbiB0 aGUgbWJ1Zi4NCj4gPg0KPiANCj4gQWdyZWUsDQo+IA0KPiA+ID4gT3IgYnkgdGhlIGFjdGlvbiBv ZiBtZXRlci4NCj4gPg0KPiA+IFRoZSBuZXcgcHJvcG9zZWQgUlRFX0ZMT1dfQUNUSU9OX1RZUEVf Q09MT1IgYWN0aW9uIGlzIGluZGVlZCBhbg0KPiBhY3Rpb24NCj4gPiBvZiB0aGUgbWV0ZXIgYW5k IG1ldGVyIG9ubHksIHJpZ2h0Pw0KPiA+DQo+ID4gRm9yIGV4YW1wbGUgeW91IGNhbiBzZWUNCj4g PiA+IFJURV9GTE9XX0FDVElPTl9UWVBFX1NFQ1VSSVRZDQo+ID4gPiBXaGljaCBpZiBleGlzdCBz YXZlcyB0aGUgc2Vzc2lvbiBpZCB0byBhIGRlZGljYXRlZCBtYnVmIGZpZWxkLg0KPiA+ID4NCj4g Pg0KPiA+IFRoZSBtZXRlciBwcm9jZXNzaW5nIGFuZCBhY3Rpb24gdGFrZSBwbGFjZSBpbmRlcGVu ZGVudGx5IG9mIHRoZSBzZWN1cml0eQ0KPiBBUEk6IGl0DQo+ID4gY2FuIGJlIGVuYWJsZWQgd2hl biB0aGUgc2VjdXJpdHkgQVBJIGlzIGRpc2FibGVkIGFuZCBpcyBub3QgY29uZGl0aW9uZWQgaW4N Cj4gYW55DQo+ID4gd2F5IGJ5IHRoZSBzZWN1cml0eSBBUEkuIFRvIGJlIGhvbmVzdCwgSSBkb24n dCB1bmRlcnN0YW5kIHRoZSBjb25uZWN0aW9uDQo+IHdpdGgNCj4gPiB0aGUgc2VjdXJpdHkgQVBJ IHRoYXQgeW91IGFyZSB0cnlpbmcgdG8gbWFrZSBoZXJlLg0KPiA+DQo+IA0KPiBTb3JyeSBmb3Ig bm90IGJlaW5nIGNsZWFyLA0KPiBJIGRpZG7igJl0IG1lYW4gdXNlIHRoZSBzZWN1cml0eSBhY3Rp b24sIHdoYXQgSSBtZWFudCBpcyBqdXN0IGxpa2UgdGhlIHNlY3VyaXR5DQo+IGFjdGlvbg0KPiB3 aGljaCB3aGVuIGdpdmVuLCBpdCB3aWxsIHNhdmVzIHRoZSBzZXNzaW9uIGFuZCBwYXNzIGl0IHRv IHRoZSBTVyBpbiBkZWRpY2F0ZWQNCj4gbWVtYmVyIGluIHRoZQ0KPiBtYnVmLCB0aGUgc2FtZSB3 aXRoIG1ldGVyIGlmIHRoZSBtZXRlciBhY3Rpb24gaXMgcHJlc2VudCB0aGVuDQo+IHRoZSBQTUQg c2hvdWxkIGtub3cgdG8gc2F2ZSB0aGUgY29sb3IgdmFsdWUgYW5kIGV4dHJhY3QgaXQgdG8gdGhl IGNvcnJlY3QNCj4gbWJ1ZiBtZW1iZXIuDQo+IA0KPiBEb2VzIHRoYXQgbWFrZSBzZW5zZT8NCj4g DQoNClllcywgSSBkb2VzLCBJIGd1ZXNzIHdlIGFyZSB1c2luZyB0aGUgc2FtZSBwcmluY2lwbGUg Zm9yIHRoZSBwcm9wb3NlZCBSVEVfRkxPV19BQ1RJT05fVFlQRV9DT0xPUiBhY3Rpb24sIHJpZ2h0 Pw0KDQo+IA0KPiA+ID4gPiA+ID4gIH07DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIC8qKg0K PiA+ID4NCj4gPiA+IFtTbmlwXQ0KPiA+ID4NCj4gPiA+ID4gPiBJIHN1Z2dlc3QgeW91IGRvIG5v dCByZWR1bmRhbnRseSBzcGVjaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgZGVmYXVsdA0KPiBwb2xpY3kg SUQNCj4gPiA+IGluDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+IGNvbW1lbnQuIFJlcGxhY2UgYnkg IkRlZmF1bHQgcG9saWN5IElELiINCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAqIEFjdGlvbiBw ZXIgY29sb3IgYXMgYmVsb3c6DQo+ID4gPiA+ID4gPiArICogZ3JlZW4gLSBubyBhY3Rpb24sIHll bGxvdyAtIG5vIGFjdGlvbiwgcmVkIC0gZHJvcA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhpcyBk b2VzIG5vdCBtYWtlIHNlbnNlIHRvIG1lIGFzIHRoZSBkZWZhdWx0IHBvbGljeS4gVGhlIGRlZmF1 bHQNCj4gcG9saWN5DQo+ID4gPiA+IHNob3VsZA0KPiA+ID4gPiA+IGJlICJubyBjaGFuZ2UiLCBp LmUuIGdyZWVuIC0+IGdyZWVuIChubyBjaGFuZ2UpLCB5ZWxsb3cgLT4geWVsbG93IChubw0KPiA+ ID4gY2hhbmdlKSwNCj4gPiA+ID4gPiByZWQgLT4gcmVkIChubyBjaGFuZ2UpLg0KPiA+ID4gPg0K PiA+ID4gPiBDYW4geW91IGV4cGxhaW4gd2h5IGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byB5b3U/ DQo+ID4gPiA+DQo+ID4gPiA+IE1ldGVyIHdpdGggIm5vIGNoYW5nZSIgZm9yIGFsbCBjb2xvcnMg aGFzIG5vIGVmZmVjdCBvbiB0aGUgcGFja2V0cyBzbyBpdA0KPiBpcw0KPiA+ID4gPiByZWR1bmRh bnQgYWN0aW9uIHdoaWNoIGp1c3QgY29zdHMgcGVyZm9ybWFuY2UgYW5kIHJlc291cmNlcyAtDQo+ IHByb2JhYmx5DQo+ID4gPiBuZXZlcg0KPiA+ID4gPiBiZSB1c2VkLg0KPiA+ID4gPg0KPiA+ID4g PiBUaGUgbW9zdCBjb21tb24gdXNhZ2UgZm9yIG1ldGVyIGlzIHRvIGRyb3AgYWxsIHRoZSBwYWNr ZXRzIGNvbWUNCj4gYWJvdmUNCj4gPiA+IHRoZQ0KPiA+ID4gPiBkZWZpbmVkIHJhdGUgbGltaXQg LSBzbyBpdCBtYWtlcyBzZW5zZSB0byB0YWtlIHRoaXMgYmVoYXZpb3IgYXMgZGVmYXVsdC4NCj4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBJIHN1Z2dlc3Qgd2UgYXZvaWQgdGhlICJubyBhY3Rp b24iIHN0YXRlbWVudCwgYXMgaXQgbWlnaHQgYmUNCj4gY29uZnVzaW5nLg0KPiA+ID4gPg0KPiA+ ID4gPiBNYXliZSAiZG8gbm90aGluZyIgaXMgYmV0dGVyPw0KPiA+ID4gPg0KPiA+ID4gTWF5YmUg cGFzc3Rocm91Z2g/IE9yIGluIHJ0ZV9mbG93IHBhc3N0aHJ1DQo+ID4gPg0KPiA+DQo+ID4gTm8s IHdlIG5lZWQgdG8gc2F2ZSB0aGUgcGFja2V0IGNvbG9yIGluIHRoZSBwYWNrZXQgbWJ1Zg0KPiAo bWJ1Zjo6c2NoZWQ6Y29sb3IpLA0KPiA+IGFuZCB0aGUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfUEFT U1RIUlUgYWN0aW9uIGlzIG5vdCBkb2luZyB0aGlzLg0KPiA+DQo+IA0KPiBQbGVhc2Ugc2VlIG15 IGNvbW1lbnQgYWJvdmUuDQo+IFRoZSBzYXZpbmcgb2YgY29sb3Igd2lsbCBiZSBkb25lIGF1dG9t YXRpY2FsbHkuDQoNClRoZSAiYXV0b21hdGljYWxseSIgcGFydCBtaWdodCBiZSB0aGUgcHJvYmxl bSBmb3Igc29tZSBhcHBzLCBsaWtlIHRoZSBvbmUgTWF0YW4gaXMgZGVzY3JpYmluZy4NCg0KSWYg Zm9yIGV4YW1wbGUgYWxsIHRoYXQgdXNlciB3YW50cyBpcyB0byBkcm9wIGFsbCB0aGUgUkVEIHBh Y2tldHMgaW1tZWRpYXRlbHkgd2l0aCBubyBuZWVkIHRvIGNvbnNpZGVyIHRoZSBwYWNrZXQgY29s b3IgbGF0ZXIgaW4gdGhlIENQVSBhcHAsIHRoZW4gdGhlIHVzZXIgcG9saWN5IGlzIHNpbXBseTog W0dSRUVOID0+IHBhc3MtdGhyb3VnaDsgWUVMTE9XID0+IHBhc3MtdGhyb3VnaDsgUkVEID0+IGRy b3BdIHdpdGggbm8gbmVlZCB0byB1c2UgdGhlIFJURV9GTE9XX0FDVElPTl9UWVBFX0NPTE9SIGFj dGlvbiB0byBzZXQgdGhlIGNvbG9yIGluIHRoZSBtYnVmOjpzY2hlZDo6Y29sb3IgZmllbGQsIGFz IHRoZSBhcHAgZG9lcyBub3QgbmVlZCB0byBrbm93IHRoZSBjb2xvci4gVGhpcyBpcyB0aGUgdXNl LWNhc2UgZGVzY3JpYmVkIGJ5IE1hdGFuLg0KDQpJZiBmb3IgZXhhbXBsZSB0aGUgdXNlciB1dGls aXplcyB0aGUgcGFja2V0IGNvbG9yIG9uIHRoZSBDUFUgYXBwIGFzIHRoZSBwYWNrZXQgZHJvcCBw cmlvcml0eSBpbiBjYXNlIG9mIGNvbmdlc3Rpb24sIHRoZW4gdGhlIHVzZXIgcG9saWN5IGlzIHNp bXBseTogW0dSRUVOID0+IGNvbG9yOyBZRUxMT1cgPT4gY29sb3I7IFJFRCA9PiBjb2xvcl0sIHNv IHRoZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9DT0xPUiBhY3Rpb24gaXMgdXNlZCB0byBzZXQgdGhl IGNvbG9yIGluIHRoZSBtYnVmOjpzY2hlZDpjb2xvciBmaWVsZC4gVGhpcyBpcyB0aGUgdXNlLWNh c2UgSSBkZXNjcmliZWQgaW4gZWFybGllciBlbWFpbHMuDQoNClNvIGl0IGlzIHByb2JhYmx5IHRo ZSBiZXN0IG9wdGlvbiB0byBoYXZlIHRoZSB1c2VyIHRvIGV4cGxpY2l0bHkgc2V0IC8gbm90IHNl dCB0aGUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQ09MT1IgYWN0aW9uIGFzIG9wcG9zZWQgdG8gaGF2 ZSB0aGlzIGFjdGlvbiBhbHdheXMgZXhlY3V0ZWQgYXV0b21hdGljYWxseS9pbXBsaWNpdGx5Lg0K DQpNYWtlcyBzZW5zZT8NCg0KPiANCj4gPiA+DQo+ID4gPiA+ID4gPiArICogSXQgY2FuIGJlIHVz ZWQgd2l0aG91dCBjcmVhdGluZyBpdCBieSB0aGUNCj4gcnRlX210cl9tZXRlcl9wb2xpY3lfYWRk DQo+ID4gPiA+ID4gPiBmdW5jdGlvbi4NCj4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+DQo+ID4gPg0K PiA+ID4gQmVzdCwNCj4gPiA+IE9yaQ0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBDcmlzdGlhbg0K PiANCj4gQmVzdCwNCj4gT3JpDQoNClJlZ2FyZHMsDQpDcmlzdGlhbg0K