From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 66E9DA04B3; Fri, 8 Nov 2019 12:48:42 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 148021C0D8; Fri, 8 Nov 2019 12:48:41 +0100 (CET) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00047.outbound.protection.outlook.com [40.107.0.47]) by dpdk.org (Postfix) with ESMTP id F38E51BFFC for ; Fri, 8 Nov 2019 12:48:39 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CSeHK484hTiskQgPoBZY95/Cr8B5UtsSOnTgPKOQW5m2voV3H+lVKcqFglr+Adf4+6sAgRHskX2y4LpdVPoRacXleSaBl4zxOhJINyL/wv9AUsrLV6wfC5FSBBjoKH1QpsXxhx08B02MYrvL4oFUjZLSrIcW+9Nna6+M8sPotCdiQdHGxasSPlh+zP4nG+Qchvc/4m2KRnPNRzPeOczEQk/wlSKNDwGdRJX34jEWDWP12x/JOluzw61RRDotZSZywq9UqtlVjOKAJwO5z7/WzwwNS0fK5SLQg/EC7+FY8eEah8DCjRY8V5l1udLdTue8fRSFqtN6uvMLg3puznyYvQ== 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=6Se8NMjHkSeEwOYAB0nfXZfpeDkIryef7eyMQemaxNU=; b=f9ODqcnI8ZP/tKR89UAlBGc2b/itt1oiOuUELzRZ1Dsca6OBozB2AI6U6pmPVTuxHp8coFNKmGAi6tP13zEnoZt9JUtPz2cEWy8lNPneK/w+k+C6d3gWPiSaDSIOMQ2DFSirzWVgmsv7by91ss3g4AtK6a3OZcU5wOimtTwjtAdFQUghpD6Yqg/bzQ2DTpQJ+jb9hN/XqR/cUzUjh4Z5pjZAqCX3ChtwoPoBxikILs3eI/ajYXjvXb7E4aM8tS3f+NYGKNgeyMJbhuPh0C9UUmSLOKXRmtVsuMzVTARFxtPZtk/4WKr7He6iGj7vFAz9l5ldMnFn3rYMAsuYQJf1MA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6Se8NMjHkSeEwOYAB0nfXZfpeDkIryef7eyMQemaxNU=; b=KNG9UcSqKh4jnxW/91SJQVbLmEZ2EaeKt+sSHU45MXvVFoY1WiiXJSfRVXqLpi/lTcOQDO6lPbDV1eGXR3EQqm6NoX8MHtRQbHdSsfzF+686NcSBY9EPlKlQg05HY2zf5xcEWoq8IDobHBD9jV8BWM3yrayHteojrNU1/F/5Buo= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.39.139) by AM0PR0502MB3793.eurprd05.prod.outlook.com (52.133.48.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2408.24; Fri, 8 Nov 2019 11:48:36 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::fd7a:e5a8:deec:c1b0]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::fd7a:e5a8:deec:c1b0%7]) with mapi id 15.20.2430.023; Fri, 8 Nov 2019 11:48:36 +0000 From: Matan Azrad To: Andrew Rybchenko , Pavan Nikhilesh Bhagavatula , "ferruh.yigit@intel.com" , Jerin Jacob Kollanukkaran , Thomas Monjalon CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v15 3/7] ethdev: add validation to offloads set by PMD Thread-Index: AQHVkKQy9cRH0wytkUuPwqxEr75O2Kd5AfEwgABcroCAAAJbkIADLIIAgAAOhFCAAA/fgIABC80AgAAaygCAAXr+oIAByz6AgAAAy7CAABN8AIAABTRQ Date: Fri, 8 Nov 2019 11:48:35 +0000 Message-ID: References: <20191029050312.2715-1-pbhagavatula@marvell.com> <0547e0a0-1ccd-84ee-46f1-5b35e1d25680@solarflare.com> <2564228e-e5c5-35f6-0c0a-c0608551083f@solarflare.com> <0eea9d34-4201-2035-b266-d9b9e60e5dc5@solarflare.com> <5f9c6b88-84f4-1d0a-e955-fc6b139fd521@solarflare.com> In-Reply-To: <5f9c6b88-84f4-1d0a-e955-fc6b139fd521@solarflare.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [77.127.71.76] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: fad94688-3ed4-4242-cbd1-08d7644196c7 x-ms-traffictypediagnostic: AM0PR0502MB3793: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0215D7173F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(136003)(396003)(346002)(366004)(376002)(199004)(51444003)(189003)(99286004)(478600001)(66066001)(81166006)(81156014)(2501003)(102836004)(11346002)(256004)(6246003)(446003)(229853002)(14444005)(76116006)(26005)(14454004)(71190400001)(7696005)(66446008)(3846002)(476003)(6116002)(2906002)(64756008)(52536014)(66556008)(66476007)(8676002)(66946007)(6506007)(4326008)(486006)(186003)(76176011)(5660300002)(8936002)(110136005)(9686003)(71200400001)(53546011)(6436002)(7736002)(25786009)(305945005)(33656002)(30864003)(55016002)(86362001)(316002)(74316002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3793; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: m3J5+dIXwVUt8FY8M6ZLrmzcUBRPOMV910x4CSQKzvFv602GKWjd1Zk3CUSl6QJMIoP8hApi9qvqxocWPXzhAKTQ+gVNPIxjijO8YrLgsgSkAIkZszklnzGOBMOmt9zk5lAnPSpgjIaTOOBb4onXNuxQC1UFwgMeG6PbFZcq+tQo1zO9SMY9yDNIjFgPRys1UctT/h9rKGVXIVv2SXzvrC9HPuZuUbmfEyoQK8je1gOh2qXDMJihK98kRpXDjXwgdnGepqQISX8j3LUtkB7D2fJsPylWDwNNcM2QsT/6Qg0K245H1pXb1Y/2L84HQSJXi3SS5e/0ChTUvw3PCdNRk/rHOxKMcRwQoROrRNPbgwn90sVir+TSMwChzGFxApTVMDpbvv8LNVMBwViYhatLwHQqg+OY47xJOBP5eFYm552twCjynVjeP/oX7xkUbvSP x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: fad94688-3ed4-4242-cbd1-08d7644196c7 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2019 11:48:36.0033 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QNKAodhIqFvqt1MQkgV2CXuXQvhUy906olGiajuNLrQ83/9mJaRYUEJIrzDsVueiR6TVPWAcF3GBUo8+H61a0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3793 Subject: Re: [dpdk-dev] [PATCH v15 3/7] ethdev: add validation to offloads set by PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" DQoNCkZyb206IEFuZHJldyBSeWJjaGVua28NCj4gT24gMTEvOC8xOSAxOjI5IFBNLCBNYXRhbiBB enJhZCB3cm90ZToNCj4gPg0KPiA+DQo+ID4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbw0KPiA+PiBT ZW50OiBGcmlkYXksIE5vdmVtYmVyIDgsIDIwMTkgMTI6MTIgUE0NCj4gPj4gVG86IE1hdGFuIEF6 cmFkIDxtYXRhbkBtZWxsYW5veC5jb20+OyBQYXZhbiBOaWtoaWxlc2ggQmhhZ2F2YXR1bGENCj4g Pj4gPHBiaGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT47IGZlcnJ1aC55aWdpdEBpbnRlbC5jb207IEpl cmluIEphY29iDQo+ID4+IEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47IFRob21h cyBNb25qYWxvbg0KPiA+PiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gPj4gQ2M6IGRldkBkcGRr Lm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjE1IDMvN10gZXRoZGV2 OiBhZGQgdmFsaWRhdGlvbiB0bw0KPiA+PiBvZmZsb2FkcyBzZXQgYnkgUE1EDQo+ID4+DQo+ID4+ IE9uIDExLzcvMTkgOTo1NiBBTSwgTWF0YW4gQXpyYWQgd3JvdGU6DQo+ID4+PiBIaQ0KPiA+Pj4N Cj4gPj4+IEZyb206IEFuZHJldyBSeWJjaGVua28NCj4gPj4+PiBPbiAxMS82LzE5IDk6NTggQU0s IE1hdGFuIEF6cmFkIHdyb3RlOg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBGcm9tOiBBbmRy ZXcgUnliY2hlbmtvDQo+ID4+Pj4+PiBPbiAxMS81LzE5IDU6MDUgUE0sIE1hdGFuIEF6cmFkIHdy b3RlOg0KPiA+Pj4+Pj4+IEZyb206IEFuZHJldyBSeWJjaGVua28NCj4gPj4+Pj4+Pj4gT24gMTEv My8xOSA2OjE2IFBNLCBNYXRhbiBBenJhZCB3cm90ZQ0KPiA+Pj4+Pj4+Pj4gRnJvbTogQW5kcmV3 IFJ5YmNoZW5rbw0KPiA+Pj4+Pj4+Pj4+IE9uIDExLzMvMTkgOTo1NyBBTSwgTWF0YW4gQXpyYWQg d3JvdGU6DQo+ID4+Pj4+Pj4+Pj4+IEhpDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IEZy b206IEFuZHJldyBSeWJjaGVua28NCj4gPj4+Pj4+Pj4+Pj4+IE9uIDEwLzMxLzE5IDc6MzMgUE0s IFBhdmFuIE5pa2hpbGVzaCBCaGFnYXZhdHVsYQ0KPiA+Pj4+Pj4+Pj4+Pj4gd3JvdGU6DQo+ID4+ Pj4+Pj4+Pj4+Pj4+IEZyb206IFBhdmFuIE5pa2hpbGVzaCBCaGFnYXZhdHVsYQ0KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4gSGkgTWF0YW4sDQo+ID4+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ IEhpIFBhdmFuDQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBGcm9tOiBQ YXZhbiBOaWtoaWxlc2gNCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiA8cGJoYWdhdmF0dWxhQG1hcnZlbGwu Y29tPg0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBTb21lIFBNRHMgY2Fubm90IHdvcmsgd2hlbiBjZXJ0 YWluIG9mZmxvYWRzIGFyZQ0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBlbmFibGUvZGlzYWJsZWQsIGFz IGEgd29ya2Fyb3VuZCBQTURzIGF1dG8NCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4gZW5hYmxlL2Rpc2Fi bGUgb2ZmbG9hZHMgaW50ZXJuYWxseSBhbmQgZXhwb3NlIGl0DQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ IHRocm91Z2gNCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4gZGV2LT5kYXRhLWRldl9jb25mLnJ4bW9kZS5v ZmZsb2Fkcy4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4gQWZ0ZXIg ZGV2aWNlIHNwZWNpZmljIGRldl9jb25maWd1cmUgaXMgY2FsbGVkIGNvbXBhcmUNCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4gdGhlIHJlcXVlc3RlZCBvZmZsb2FkcyB0byB0aGUgb2ZmbG9hZHMgZXhwb3Nl ZCBieQ0KPiB0aGUNCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4gUE1EIGFuZCwgaWYgdGhlIFBNRCBmYWls ZWQgdG8gZW5hYmxlIGEgZ2l2ZW4gb2ZmbG9hZA0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiB0aGVuIGxv ZyBpdCBhbmQgcmV0dXJuIC1FSU5WQUwgZnJvbQ0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBydGVfZXRo X2Rldl9jb25maWd1cmUsIGVsc2UgaWYgdGhlIFBNRCBmYWlsZWQgdG8NCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4gZGlzYWJsZSBhIGdpdmVuIG9mZmxvYWQgbG9nIGFuZCBjb250aW51ZSB3aXRoDQo+IHJ0 ZV9ldGhfZGV2X2NvbmZpZ3VyZS4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+ Pj4+PiBydGVfZXRoX2Rldl9jb25maWd1cmUgY2FuIGJlIGNhbGxlZCBtb3JlIHRoYW4gMSB0aW1l DQo+IGluDQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gdGhlIGRldmljZSBsaWZlIHRpbWUsIEhvdyBjYW4g eW91IGtub3cgd2hhdCBpcyB0aGUNCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBtaW5pbXVtIG9mZmxvYWQg Y29uZmlndXJhdGlvbnMgcmVxdWlyZWQgYnkgdGhlIHBvcnQNCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBh ZnRlciB0aGUgZmlyc3QgY2FsbD8NCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBNYXliZSBwdXR0aW5nIGl0 IGluIGRldiBpbmZvIGlzIGJldHRlciwgd2hhdCBkbyB5b3UNCj4gdGhpbms/DQo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+IFdlIG9ubHkgcmV0dXJuIC1FSU5WQUwgaW4gdGhl IGNhc2Ugd2hlcmUgd2UgZW5hYmxlIGFuDQo+ID4+Pj4+Pj4+Pj4+Pj4+PiBvZmZsb2FkIGFkdmVy dGlzZWQgYnkgZGV2X2luZm8gYW5kIHRoZSBwb3J0IHN0aWxsIGZhaWxzDQo+ID4+Pj4+Pj4+Pj4+ Pj4+PiB0byBlbmFibGUgaXQuDQo+ID4+Pj4+Pj4+Pj4+Pj4+IEFyZSB5b3Ugc3VyZSBpdCBpcyBv ayB0aGF0IGRldmljZXMgbWF5IGRpc2FibGVcZW5hYmxlDQo+ID4+Pj4+Pj4+Pj4+Pj4+IG9mZmxv YWRzIHVuZGVyIHRoZSBob29kIHdpdGhvdXQgdXNlciBub3RpZmljYXRpb24/DQo+ID4+Pj4+Pj4+ Pj4+Pj4gU29tZSBkZXZpY2VzIGFscmVhZHkgZG8gaXQuIFRoZSBhYm92ZSBjaGVjayBhZGRzDQo+ ID4+Pj4+Pj4+Pj4+Pj4gdmFsaWRhdGlvbiBmb3IgdGhlIHNhbWUuDQo+ID4+Pj4+Pj4+Pj4+PiBU aGUgcHJvYmxlbSBpcyB0aGF0IHNvbWUgb2ZmbG9hZHMgY2Fubm90IGJlIGRpc2FibGVkLg0KPiA+ Pj4+Pj4+Pj4+PiBZZXMsIEkgdW5kZXJzdGFuZCBpdC4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+Pj4+IElmIGFwcGxpY2F0aW9uIGRvZXMgbm90IHJlcXVlc3QgUnggY2hlY2tzdW0gb2ZmbG9h ZCBzaW5jZQ0KPiA+Pj4+Pj4+Pj4+Pj4gaXQgZG9lcyB1c2UgaXQsIGl0IGlzIG5vdCBhIHByb2Js ZW0gdG8gcmVwb3J0IGl0Lg0KPiA+Pj4+Pj4+Pj4+PiBZZXMsIGZvciBSWCBjaGVja3N1bSBJIHRl bmQgdG8gYWdyZWUgdGhhdCBhcHBsaWNhdGlvbg0KPiA+Pj4+Pj4+Pj4+PiBkb2Vzbid0IGNhcmUg aWYgdGhlDQo+ID4+Pj4+Pj4+Pj4gUE1EIHdpbGwgY2FsY3VsYXRlIHRoZSBjaGVja3N1bSBpbiBz cGl0ZSBvZiB0aGUgb2ZmbG9hZCBpcw0KPiA+Pj4+Pj4+Pj4+IGRpc2FibGVkLg0KPiA+Pj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBCdXQgd2hhdCdzIGFib3V0IG90aGVyIG9mZmxvYWRzOiBGb3Ig ZXhhbXBsZSBpbiBSWDogTFJPLA0KPiA+Pj4+Pj4+Pj4+PiBDUkNfS0VFUCwgVkxBTl9TVFJJUCwg SlVNQk8gSWYgdGhlIFBNRCB3aWxsIHN0YXkgdGhlbSBvbg0KPiA+Pj4+Pj4+Pj4+PiB3aGlsZSB0 aGUgYXBwIGlzIGRpc2FibGluZyBpdCwgSXQgY2FuIGNhdXNlIGEgcHJvYmxlbXMgdG8NCj4gPj4+ Pj4+Pj4+Pj4gdGhlDQo+ID4+Pj4+Pj4+Pj4gYXBwbGljYXRpb24gKGFmZmVjdHMgdGhlIHBhY2tl dCBsZW5ndGgpLg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gWWVzLCBJIGFncmVlIHRoYXQg c29tZSBvZmZsb2FkcyBhcmUgY3JpdGljYWwgdG8gYmUgZGlzYWJsZWQsDQo+ID4+Pj4+Pj4+Pj4g YnV0IFJTU19IQVNIIGRpc2N1c3NlZCBpbiB0aGUgY2hhbmdlc2V0IGlzIG5vdCBjcml0aWNhbC4N Cj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBTbywgYXJlIHlvdSBhZ3JlZSBJdCBzaG91bGQgbm90 IGJlIGNoZWNrZWQgZ2xvYmFsbHkgZm9yIGFsbA0KPiA+Pj4+Pj4+Pj4gdGhlIG9mZmxvYWRzIGlu DQo+ID4+Pj4+Pj4+IGV0aGRldiBsYXllcj8NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gSWYgb2Zm bG9hZCBpcyBub3QgcmVxdWVzdGVkLCBidXQgZW5hYmxlZCAoc2luY2UgUE1EIGNhbm5vdA0KPiA+ Pj4+Pj4+PiBkaXNhYmxlIGl0KSwgcmlnaHQgbm90IGl0IHdpbGwgbm90IGZhaWwgY29uZmlndXJl LCBidXQgd2Fybg0KPiA+Pj4+Pj4+PiBhYm91dCBpdCBpbiBsb2dzLg0KPiA+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+DQo+ID4+Pj4+Pj4gSW4gdGhpcyBjYXNlIHdhcm5pbmcgcHJpbnQgaXMgbm90IGVub3Vn aCBzaW5jZSBpdCBjYW4gYmUNCj4gPj4+Pj4+PiBjcml0aWNhbCBmb3IgdGhlDQo+ID4+Pj4+PiBh cHBsaWNhdGlvbiBmb3Igc29tZSBvZmZsb2Fkcy4NCj4gPj4+Pj4+PiBJdCBjYW4gYmUgdmVyeSB3 ZWlyZCBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIHNlZSB0aGF0IHNvbWUNCj4gPj4+Pj4+PiBvZmZs b2FkIGFyZSBvbg0KPiA+Pj4+Pj4gd2hpbGUgdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3QgZXhwZWN0 IHRoZW0gdG8gYmUgb24uDQo+ID4+Pj4+Pj4gaXQgZXZlbiBjYW4gY2F1c2UgYXBwIGNyYXNoKGF0 IGxlYXN0IGZvciB0aGUgUlggb2ZmbG9hZCBJIHdyb3RlDQo+ID4+Pj4+Pj4gYWJvdmUpLg0KPiA+ Pj4+Pj4NCj4gPj4+Pj4+IFRoZSBwYXRjaCBpbXByb3ZlcyB0aGUgc2l0dWF0aW9uLiBFYXJsaWVy IGl0IHdhcyBzaWxlbnQsIG5vdyBpdA0KPiA+Pj4+Pj4gd2lsbCBiZSBhdCBsZWFzdCB2aXNpYmxl Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBXZSBjYW4gZG8gaXQgdmlzaWJsZSBpbnNpZGUgdGhlIGxpbWl0 ZWQgUE1Ecy4NCj4gPj4+Pg0KPiA+Pj4+IFdoeT8NCj4gPj4+DQo+ID4+PiBCZWNhdXNlIHRoaXMg aXMgbm90IGFjY29yZGluZyB0byB3aGF0IGFwcGxpY2F0aW9uIHNob3VsZCB1bmRlcnN0YW5kDQo+ ID4+PiBmcm9tDQo+ID4+IHRoZSBldGhkZXYgQVBJLg0KPiA+Pg0KPiA+PiBJdCBkb2VzIG5vdCBh bnN3ZXIgd2h5IGl0IHNob3VsZCBiZSBpbnNpZGUgdGhlIGxpbWl0ZWQgUE1EcyBpbnN0ZWFkDQo+ ID4+IG9mIGV0aGRldiBsYXllci4NCj4gPg0KPiA+IFdoeSBub3Q/DQo+ID4gQXBwbGljYXRpb24g ZG9lc24ndCBleHBlY3QgdG8gaXQgYW5kIGl0IG1heSBhZmZlY3QgaXQuDQo+ID4NCj4gPj4+Pj4+ IEknbSBhZnJhaWQgdGhhdCBpbiAxOS4xMSByZWxlYXNlIGN5Y2xlIHdlIGNhbm5vdCBjaGFuZ2Ug aXQgdG8NCj4gPj4+Pj4+IGZhaWwgZGV2X2NvbmZpZ3VyZS4gSSB0aGluayBpdCB3aWxsIGJlIHRv byBkZXN0cnVjdGl2ZS4gRnV0dXJlDQo+ID4+Pj4+PiBpbXByb3ZlbWVudCBzaG91bGQgYmUgZGlz Y3Vzc2VkIHNlcGFyYXRlbHkuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNvIHdlIGNhbiByZW1vdmUgdGhp cyBldGhkZXYgcGF0Y2ggbm93IGFuZCBsZXQgdGhlIFBNRCB0byBkbyBpdA0KPiA+Pj4+PiB1bnRp bCB3ZSB3aWxsIGZpbmQgYmV0dGVyIHNvbHV0aW9uIGxhdGVyLg0KPiA+Pj4+DQo+ID4+Pj4gU29y cnksIGJ1dCBJIGRvbid0IHRoaW5rIHNvLg0KPiA+Pj4+DQo+ID4+Pj4+Pj4+PiBJdCBldmVuIGJl IG1vcmUgcHJvYmxlbWF0aWMgaWYgdGhlIGR5bmFtaWMgb2ZmbG9hZCBmaWVsZCBpbg0KPiA+Pj4+ Pj4+Pj4gbWJ1ZiBpcyBub3QgZXhpc3QgYXQgYWxsLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQW55 IGFuc3dlciBoZXJlPw0KPiA+Pj4+Pg0KPiA+Pj4+PiBBIFJ4IG9mZmxvYWQgcmVxdWlyZXMgZHlu YW1pYyBtYnVmIGZpZWxkIGNhbm5vdCBzdGF5IHZpc2libGUgd2hpbGUNCj4gPj4+Pj4gdGhlIGFw cCBkaXNhYmxpbmcgaXQuIEJlY2F1c2UgdGhlIGR5bmFtaWMgbWJ1ZiBmaWVsZCBwcm9iYWJseSBp cw0KPiA+Pj4+PiBub3Qgc2V0IGluIHRoZSBtYnVmLiBNYXkgY2F1c2UgcHJvYmxlbXMuDQo+ID4+ Pj4+DQo+ID4+Pj4+PiBQbGVhc2UsIGNsYXJpZnkgdGhlIHF1ZXN0aW9uLg0KPiA+Pj4+Pj4NCj4g Pj4+DQo+ID4+PiBObyBhbnN3ZXIgaGVyZS4NCj4gPj4NCj4gPj4gU29ycnksIGJ1dCBJIGRvbid0 IHVuZGVyc3RhbmQgdGhlIHByb2JsZW0uDQo+ID4+IElmIHRoZXJlIGlzIG5vIGR5bmFtaWMgZmll bGQsIGl0IHdpbGwgbm90IGJlIHNldC4NCj4gPiBXaHkgbm90PyBUaGUgb2ZmbG9hZCBpcyBlbmFi bGVkIGZvciB0aGUgUE1EIHBlcnNwZWN0aXZlLg0KPiA+DQo+ID4+IElmIHRoZXJlIGlzIGR5bmFt aWMgZmllbGQsIGl0IGlzIHRoZSBzYW1lIGFzIHJlZ3VsYXIgZmllbGRzLg0KPiA+Pg0KPiA+Pj4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IEZvciBleGFtcGxlIGluIFRYOiBUU08sIFZMQU4sIE1VTFRJ X1NFRy4uLi4uDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBUeCBpcyBub3QgdGhhdCBjcml0 aWNhbCBzaW5jZSBhcHBsaWNhdGlvbiBzaG91bGQgbm90IHJlcXVlc3QNCj4gPj4+Pj4+Pj4+PiB0 aGVzZSBvZmZsb2FkcyBwZXItIHBhY2tldC4gVHggb2ZmbG9hZHMgYXJlIG1haW5seSByZXF1aXJl ZA0KPiA+Pj4+Pj4+Pj4+IHRvIGVuc3VyZSB0aGF0IGFwcGxpY2F0aW9uIG1heSByZXF1ZXN0IHRo ZSBvZmZsb2FkIHBlciBwYWNrZXQNCj4gPj4+Pj4+Pj4+PiBhbmQgaXQgd2lsbCBiZSBkb25lLg0K PiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IHllcywgeW91IHJpZ2h0LCBJbiBUWCBpdCBsb29rcyBs ZXNzIGNyaXRpY2FsIChmb3Igbm93KS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4+IE9mIGNvdXJzZSwgaXQgY291bGQgYmUgYSBwcm9ibGVtIGlmIHRoZSBvZmZsb2Fk IGlzIHVzZWQsDQo+ID4+Pj4+Pj4+Pj4+PiBidXQgYXBwbGljYXRpb24gd2FudHMgdG8gZGlzYWJs ZSBpdCwgZm9yIGV4YW1wbGUsIGZvcg0KPiA+Pj4+Pj4+Pj4+Pj4gZGVidWdnaW5nIHB1cnBvc2Vz LiBJbiB0aGlzIGNhc2UsIHRoZSBzb2x1dGlvbiBpcyB0byBtYXNrDQo+ID4+Pj4+Pj4+Pj4+PiBv ZmZsb2FkcyBvbiBhcHBsaWNhdGlvbiBsZXZlbCwgd2hpY2ggaXMgbm90IGlkZWFsIGFzIHdlbGwu DQo+ID4+Pj4+Pj4+Pj4+IFdoeSBub3QgaWRlYWw/DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ PiBJdCBlYXRzIENQVSBjeWNsZXMuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gU29ycnksIEkg ZG9uJ3QgdW5kZXJzdGFuZCB5b3VyIHVzZSBjYXNlIGhlcmUuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+IElmIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHRyeSBjb2RlIHBhdGggd2l0aG91dCwgZm9yIGV4 YW1wbGUsIFJ4DQo+ID4+Pj4+Pj4+IGNoZWNrc3VtIG9mZmxvYWQsIGl0IGNvdWxkIGJlIGluc3Vm ZmljaWVudCB0byBkaXNhYmxlIHRoZQ0KPiA+Pj4+Pj4+PiBvZmZsb2FkIHJpZ2h0IG5vdywgYnV0 IGFsc28gcmVxdWlyZWQgdG8gY2xlYW51cCBvZmZsb2FkIHJlc3VsdHMNCj4gPj4+Pj4+Pj4gZmxh Z3MgaW4gZWFjaCBtYnVmIChpZiBQTUQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgb2ZmbG9hZCBkaXNh YmxpbmcpLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gV2hhdCBpcyAicmlnaHQgbm93Ij8gQ29uZmln dXJhdGlvbiB0aW1lPw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFJpZ2h0IG5vdyBpcyB0aGUgY3VycmVu dCBzdGF0ZSBvZiBzb21lIGRyaXZlcnMgaW4gRFBESyB0cmVlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4N Cj4gPj4+Pj4gT0suIEkgdGhpbmsgdGhlIG9mZmxvYWQgY29uZmlndXJhdGlvbiBpcyBpbiBjb25m aWd1cmF0aW9uIHRpbWUuIE5vDQo+ID4+Pj4+IGRhdGEtcGF0aC4NCj4gPj4+Pj4NCj4gPj4+Pj4+ PiBJZiBhcHBsaWNhdGlvbiB3aWxsIGtub3cgdGhhdCBQTUQgY2Fubm90IGRpc2FibGUgdGhlIHJ4 LWNoZWNrc3VtDQo+ID4+Pj4+Pj4gaW4gY29uZmlndXJhdGlvbiB0aW1lLCBJdCBjYW4gcGxhbiB0 byBub3QgY2xlYW4gdGhpcyBmbGFnIGluDQo+ID4+Pj4+Pj4gbWJ1ZiBmb3IgZWFjaCByeA0KPiA+ Pj4+Pj4gbWJ1Zi4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBZZXMgYW5kIGFwcGxpY2F0aW9uIGhhcyBh IHdheSB0byBrbm93IGl0IC0gdGFrZSBhIGxvb2sgYXQNCj4gPj4+Pj4+IGRldi0+ZGF0YS0+ZGV2 X2NvbmYucnhtb2RlLm9mZmxvYWRzLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBBcyBJIHVuZGVyc3RhbmQs IGJlZm9yZSB0aGlzIHBhdGNoLCB0aGlzIGZpZWxkIHVzZWQgZm9yIGV0aGRldg0KPiA+Pj4+PiBs YXllciBrbm93bGVkZ2UgdG8gdHJhY2sgb24gdGhlIGFwcGxpY2F0aW9uIFJ4IG9mZmxvYWQNCj4g Pj4+Pj4gY29uZmlndXJhdGlvbi4gQW0gSSB3cm9uZz8NCj4gPj4+Pg0KPiA+Pj4+IEkgdGhpbmsg aXQgaXMganVzdCBSeCBvZmZsb2FkcyBjb25maWd1cmF0aW9uLg0KPiA+Pj4+IEl0IGlzIGJldHRl ciB0byBoYXZlIHJlYWwgb2ZmbG9hZHMgaGVyZSBzaW5jZSBpdCBpcyB1c2VkIG9uIFJ4DQo+ID4+ Pj4gcXVldWUgc2V0dXAgdG8gbWFzayBhbHJlYWR5IGVuYWJsZWQgb2ZmbG9hZHMuDQo+ID4+Pg0K PiA+Pj4gQW5kIGluIERQREsgb3IgYW55IFNXIG1hbmFnZW1lbnQgY29udHJvbHMgYSBkZXZpY2Us IHRoZQ0KPiA+Pj4gY29uZmlndXJhdGlvbg0KPiA+PiBtdXN0IGJlIHNldCBieSB0aGUgdXNlci4N Cj4gPj4+IFNvLCBpdCBzaG91bGQgcmVmbGVjdCB0aGUgdXNlciBjb25maWd1cmF0aW9uIGFzIGlz Lg0KPiA+Pg0KPiA+PiBJdCBpcyBpZGVhbCB3b3JsZCB3aGljaCBpcyB1bmZvcnR1bmF0ZWx5IHRv byBmYXIgZnJvbSByZWFsIGxpZmUuDQo+ID4+IFRoZXJlIGlzIGFsd2F5cyBhIHRyYWRlIG9mZi4g SXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIHRvbyByZXN0cmljdGl2ZQ0KPiA+PiBpbnRlcmZhY2Ug d2hpY2ggd2lsbCBlbmZvcmNlIGNvbXBsaWNhdGVkIGltcGxlbWVudGF0aW9uIHdpdGggYmFkDQo+ ID4+IHBlcmZvcm1hbmNlIGNoYXJhY3RlcmlzdGljcyBmb3Igbm8gcmVhbCB2YWx1ZS4NCj4gPj4N Cj4gPj4gSW4gYW55IGNhc2UsIHRoZSBwYXRjaCBzaW1wbHkgbWFrZXMgdGhlIGRpZmZlcmVuY2Ug dmlzaWJsZS4NCj4gPj4gSXQgZG9lcyBub3QgZW5mb3JjZSBhbnkgcnVsZXMgZXhjZXB0IHRvIGZh aWwgY29uZmlndXJlIGlmIHJlcXVlc3RlZA0KPiA+PiBvZmZsb2FkIGlzIG5vdCBlbmFibGVkIHdo aWNoIGlzIGEgc3Ryb25nIHZpb2xhdGlvbiBvZiB0aGUgaW50ZXJmYWNlLg0KPiA+PiBJZiB5b3Ug ZG9uJ3QgbGlrZSBpdCwgd2UgY2FuIGRpc2N1c3MgdGhlIHBvaW50LiBJbiB0aGUgYXJlYSBvZiBu b3QNCj4gPj4gcmVxdWVzdGVkIGJ1dCBlbmFibGVkIG9mZmxvYWRzLCBpdCBqdXN0IGFkZHMgbG9n cy4gTm8gY2hhbmdlcyBpbg0KPiA+PiBiZWhhdmlvdXIuIEknbSBzdHJvbmdseSBhZ2FpbnN0IG1h a2luZyBpdCBoYXJkIGZhaWx1cmUgaW4gMTkuMTEgc2luY2UNCj4gPj4gaXQgaXMgdG9vIGxhdGUg Zm9yIHRoZSBkZWNpc2lvbi4gV2UgY2FuIGRpc2N1c3MgaXQgbGF0ZXIgc2VwYXJhdGVseSBmcm9t IHRoZQ0KPiBwYXRjaC4NCj4gPj4NCj4gPiBXaGlsZSBJIGRvbid0IGFncmVlIHdpdGggdGhlIHBh dGNoIGFuZCB0aGUgaWRlYSBoZXJlLCAgd2UgY2FuIGNvbnRpbnVlDQo+IGRpc2N1c3MgbGF0ZXIu DQo+ID4gSSB0aGluayB3ZSB1bmRlcnN0YW5kIHRoZSBpZGVhcyBvZiBib3RoIG9mIHVzIGFuZCB3 ZSBjYW4gZGlnIHRvIGl0IGxhdGVyLg0KPiANCj4gSSBhZ3JlZSB0aGF0IGl0IGlzIHRpbWUgdG8g d3JhcCB0aGUgZGlzY3Vzc2lvbi4NCj4gQ291bGQgeW91IG1ha2UgaXQgY2xlYXIgd2hhdCB5b3Ug ZG9uJ3QgbGlrZSBpbiB0aGUgcGF0Y2ggYW5kIHdoeS4NCj4gDQo+IEl0IGRvZXMgMyB0aGluZ3Mg Zm9yIGFsbCBwb3J0IGF0IHRoZSBlbmQgb2YgcnRlX2V0aF9kZXZfY29uZmlndXJlKCkgYmFzZWQg b24NCj4gZGV2LT5kYXRhLT5kZXZfY29uZiAoaWYgUE1EIHVwZGF0ZXMgaXQgaW4gdGhlIGNhc2Ug b2YgdmlvbGF0aW9ucykuDQo+IA0KPiAxLiBJZiByZXF1ZXN0ZWQgb2ZmbG9hZCBpcyBub3QgZW5h YmxlZCwgbG9nIGVycm9yIG1lc3NhZ2UuDQo+IA0KPiAyLiBJZiByZXF1ZXN0ZWQgb2ZmbG9hZCBp cyBub3QgZW5hYmxlZCwgZmFpbCBkZXZfY29uZmlndXJlIGJ5DQo+ICAgIHJldHVybmluZyBlcnJv ciBhbmQgZGVjb25maWd1cmluZyBhbGwgcXVldWVzLg0KPiANCj4gMy4gSWYgbm90IHJlcXVlc3Rl ZCBvZmZsb2FkIGlzIGVuYWJsZWQsIGxvZyBpbmZvIG1lc3NhZ2UuDQo+IA0KPiBBYm92ZSBpcyBk b25lIGZvciBSeCBhbmQgVHggb2ZmbG9hZHMuDQoNCkFncmVlIHdpdGggeW91ciBzdW1tYXJ5Lg0K DQpNeSBwcm9ibGVtIGluIHRoaXMgcGF0Y2ggaXMgcGFydCAzOg0KVGhpcyBwYXJ0IGltcGxpZXMg YnkgYSBmb3JtYWwgd2F5KGV0aGRldikgdGhhdCB0aGVyZSBhcmUgMiBjb25maWd1cmF0aW9uczoN CjEuIFRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLg0KMi4gVGhlIGFjdHVhbCBkZXZpY2Ug Y29uZmlndXJhdGlvbi4NCg0KSSB0aGluayB0aGF0IGZvcm1hbGx5IGlmIHRoZXJlIGlzIGEgZGlm ZmVyZW5jZSBiZXR3ZWVuIGJvdGgsIGFuIGVycm9yIG11c3QgYmUgcmV0dXJuZWQuDQpJbmZvcm1h bGx5LCBQTUQgY2FuIGRvIHdoYXRldmVyIGl0IHdhbnQgd2l0aCBnb29kIGRvY3VtZW50YXRpb24g aW4gaXRzIGRvYyBmaWxlLiAgIA0KDQoNCk1hdGFuLg0K