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 ABFE6A053B; Thu, 6 Feb 2020 17:31:50 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E6CDD1C1B7; Thu, 6 Feb 2020 17:31:49 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id DE9321C1B3 for ; Thu, 6 Feb 2020 17:31:47 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Feb 2020 08:31:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,410,1574150400"; d="scan'208";a="236026338" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga006.jf.intel.com with ESMTP; 06 Feb 2020 08:31:46 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 6 Feb 2020 08:31:46 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020 08:31:45 -0800 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 6 Feb 2020 08:31:45 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.102) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 6 Feb 2020 08:31:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e1nQDJ/+s84RnvRLhP3tMYu839ebllpSIoBMIRMP/G0yK20cog5WXo73sSP/2NcbV2MA07/C//l9l4qndZjyjkiJcfT/5jGuQEdzJnnIPuoV4WRu8cBjd+vITnLILEKTpqBKFZr4nMndyIEKJ0e4tHQRsYryk/Gsudmtk1CGSLaU/Uh8XiqGbn+yY1Qf+K/VKFBGehl67Vap6k8x2iOfv6k7HyanaQzo7iaqNiocmnMTDup7JAxINl2zZonyF+b/F/Vkmlzw+E3XvI1fxWOCucb9kUgwlJuM9tAlH4JDPQ2XYt7DloqDRY0nvmnkaVg/eQ0eejNHZBfQ3M6tdESOGw== 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=HF5i6as4aXdWSeSDf/RMfLdDTxCWFKq1r9vm0hxSnew=; b=cUlyPYbnLI6YugcmRL+q6QnH3gcIMNkHLSMjZuvw0Li/6Ts7YxrgP0Wym1ZwK/Q836dx0J2RvIQS+x5cspDdzVZuS2yGrmc80lNEOpz36LkbaMCfMnbPHHBMne1oRrKoEcPFiIuCEg+UZMmyrN+dfObQ49WzMB50rJw+jfbbuPdAEtSQK2Avnt6haA4e9MQVkngyl9U1p2rApyCH3AVjMT+w8uEhaJAeISbN5ZBGZX4A2iKutfSs3HeHIkCpb4mbKv0iTUTm4kY6txP5vgD/ZFXnvOdvBDIUwhpZdlgPI1T57pX1QW/LsRZDVykFXBmRk2DsVJZDEEqdciCa0oONjw== 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=HF5i6as4aXdWSeSDf/RMfLdDTxCWFKq1r9vm0hxSnew=; b=W+P8K/C/lxNEgfieFiGPanbyfo7WgSk5OlGicYD6Cg8OoXU9HNDp4NZHNs11TpXia2RyNkvY6Tv24dTJJel5kZ2ogAZelspmBGXmpOLujOTdKAlJqi4VK3rKtoI/ApTxfaP0jF7Us8plW9Ed+qYJmZ3Bxnc21QFxqKYHjiEJXnM= Received: from SN6PR11MB3086.namprd11.prod.outlook.com (52.135.126.142) by SN6PR11MB3343.namprd11.prod.outlook.com (52.135.112.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Thu, 6 Feb 2020 16:31:42 +0000 Received: from SN6PR11MB3086.namprd11.prod.outlook.com ([fe80::349a:eac4:f7ec:e806]) by SN6PR11MB3086.namprd11.prod.outlook.com ([fe80::349a:eac4:f7ec:e806%5]) with mapi id 15.20.2707.020; Thu, 6 Feb 2020 16:31:42 +0000 From: "Coyle, David" To: Jerin Jacob CC: dpdk-dev , "Doherty, Declan" , "Trahe, Fiona" Thread-Topic: [dpdk-dev] [RFC] Accelerator API to chain packet processing functions Thread-Index: AQHV252/Rbt7rs7UfkiCnNgjZknan6gM1b9QgAEqvwCAAFuzMA== Date: Thu, 6 Feb 2020 16:31:41 +0000 Message-ID: References: <1580827512-178449-1-git-send-email-david.coyle@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows authentication-results: spf=none (sender IP is ) smtp.mailfrom=david.coyle@intel.com; x-originating-ip: [192.198.151.165] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8e4d9cc8-3738-4a91-3b0d-08d7ab220c74 x-ms-traffictypediagnostic: SN6PR11MB3343: 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:10000; x-forefront-prvs: 0305463112 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(136003)(39860400002)(366004)(396003)(346002)(199004)(189003)(4326008)(86362001)(54906003)(52536014)(76116006)(6916009)(64756008)(66946007)(66556008)(66446008)(66476007)(316002)(107886003)(9686003)(55016002)(81166006)(81156014)(8676002)(8936002)(71200400001)(478600001)(7696005)(186003)(53546011)(2906002)(6506007)(33656002)(26005)(5660300002); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR11MB3343; H:SN6PR11MB3086.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: E4mY7QEzOjIzxDkXoB8co10YMk9HBvXBeltNfNA3rTdFBgAM/H0NrH+hEz3wbqx5Por3/H+EUr+Mtffin97Y3nD0N/QDaeG/5SWIxNBYLxGujfl+THZPenj8SEQJ6XG3a7TDyFI8vSU7Y4DV2yRH2vukiYygDBjm3KhOq0RYabMJ591X4AsUw5g4mSrh/akvxFuwJHtZCLZECaR3ruYBcNhL3O1nOEYEtMxPh4yTGWhCEPaVx1YxpTke9JBicicY4X2WApGWbjEwCVGjAgHs/yvxvgNbfLYinFCN8l7w490D4MJl0MIHFsMUGJf6v5msLeUj0hHoyVT1Xjz/MbjGUsNMgBDn0c83sQXEDCpC7e/UReWonuUFo9bRo5hjOT07LPDqfWPCgZM6aH1DzdZzn1fwYkQAtGxtU0hQtSv4cquMMZHzr0u+ewMu3Nh6/RtP x-ms-exchange-antispam-messagedata: EB7NOUaxaPBGnBE8Y8PN47vjOYfo7o1uJp5pea0Lra02naaMqCHZWSsFKqLoAt1SU0QDCmo/BZ1PGzpqjOMGrOpO2RG4opxnWoqSvdawnsLy+uduJrYZveEo+6DiJI/oCi0V6l6+4+byhbpqfxl7CA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 8e4d9cc8-3738-4a91-3b0d-08d7ab220c74 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2020 16:31:42.0047 (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: uquQbLQoi+MaBGqj6Gvf2qoAHnGtHWaL1630o9GpHbVzciyuz4heFHTwKUJcVD+Q440d3ViE1IRVsFaG7HMGfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3343 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [RFC] Accelerator API to chain packet processing functions 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" SGkgSmVyaW4sIHNlZSByZXBseSBiZWxvdw0KDQo+IE9uIFRodSwgRmViIDYsIDIwMjAgYXQgMzoz NSBQTSBDb3lsZSwgRGF2aWQgPGRhdmlkLmNveWxlQGludGVsLmNvbT4gd3JvdGU6DQo+ID4NCj4g PiBIaSBKZXJpbiwNCj4gDQo+IEhpIERhdmlkLA0KPiANCj4gPiBUaGFua3MgZm9yIHRoZSBjb21t ZW50cy4gUGxlYXNlIHNlZSByZXBsaWVzIGJlbG93Lg0KPiA+DQo+ID4gS2luZCBSZWdhcmRzLA0K PiA+IERhdmlkDQo+ID4NCj4gPiA+IE9uIFR1ZSwgRmViIDQsIDIwMjAgYXQgODoxNSBQTSBEYXZp ZCBDb3lsZSA8ZGF2aWQuY295bGVAaW50ZWwuY29tPg0KPiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ ID4gSW50cm9kdWN0aW9uDQo+ID4gPiA+ID09PT09PT09PT09PQ0KPiA+ID4gPg0KPiA+ID4gPiBU aGlzIFJGQyBpbnRyb2R1Y2VzIGEgbmV3IERQREsgbGlicmFyeSwgcnRlX2FjY2VsZXJhdG9yLg0K PiA+ID4gPg0KPiA+ID4gPiBUaGUgbWFpbiBhaW0gb2YgdGhpcyBsaWJyYXJ5IGlzIHRvIHByb3Zp ZGUgYSBmbGV4aWJsZSBhbmQNCj4gPiA+ID4gZXh0ZW5zaWJsZSB3YXkgb2YNCj4gPiA+IGNvbWJp bmluZyBvbmUgb3IgbW9yZSBwYWNrZXQtcHJvY2Vzc2luZyBmdW5jdGlvbnMgaW50byBhIHNpbmds ZQ0KPiA+ID4gb3BlcmF0aW9uLCB0aGVyZWJ5IGFsbG93aW5nIHRoZXNlIHRvIGJlIHBlcmZvcm1l ZCBpbiBwYXJhbGxlbCBpbg0KPiA+ID4gb3B0aW1pemVkIHNvZnR3YXJlIGxpYnJhcmllcyBvciBp biBhIGhhcmR3YXJlIGFjY2VsZXJhdG9yLiBUaGVzZQ0KPiA+ID4gZnVuY3Rpb25zIGNhbiBpbmNs dWRlIGNyeXB0b2dyYXBoeSwgY29tcHJlc3Npb24gYW5kIENSQy9jaGVja3N1bQ0KPiA+ID4gY2Fs Y3VsYXRpb24sIHdoaWxlIG90aGVycyBjYW4gcG90ZW50aWFsbHkgYmUgYWRkZWQgaW4gdGhlIGZ1 dHVyZS4NCj4gPiA+IFBlcmZvcm1pbmcgdGhlc2UgZnVuY3Rpb25zIGluIHBhcmFsbGVsIGFzIGEg c2luZ2xlIG9wZXJhdGlvbiBjYW4gZW5hYmxlIGENCj4gc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2Ug aW1wcm92ZW1lbnQuDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEJhY2tncm91bmQNCj4gPiA+ ID4gPT09PT09PT09PQ0KPiA+ID4gPg0KPiA+ID4gPiBUaGVyZSBhcmUgYSBudW1iZXIgb2YgYnl0 ZS13aXNlIG9wZXJhdGlvbnMgd2hpY2ggYXJlIHByZXNlbnQgYW5kDQo+ID4gPiBjb21tb24gYWNy b3NzIG1hbnkgYWNjZXNzIG5ldHdvcmsgZGF0YS1wbGFuZSBwaXBlbGluZXMsIHN1Y2ggYXMNCj4g PiA+IENpcGhlciwgQXV0aGVudGljYXRpb24sIENSQywgQml0LUludGVybGVhdmVkLVBhcml0eSAo QklQKSwgb3RoZXINCj4gPiA+IGNoZWNrc3VtcyBldGMuIFNvbWUgcHJvdG90eXBpbmcgaGFzIGJl ZW4gZG9uZSBhdCBJbnRlbCBpbiByZWxhdGlvbg0KPiA+ID4gdG8gdGhlIDAxLm9yZyBhY2Nlc3Mt bmV0d29yay0gZGF0YXBsYW5lcyBwcm9qZWN0IHRvIHByb3ZlIHRoYXQgYQ0KPiA+ID4gc2lnbmlm aWNhbnQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaXMgcG9zc2libGUgd2hlbiBzdWNoIGJ5dGUt d2lzZQ0KPiA+ID4gb3BlcmF0aW9ucyBhcmUgY29tYmluZWQgaW50byBhIHNpbmdsZSBwYXNzIG9m IHBhY2tldCBkYXRhDQo+ID4gPiBwcm9jZXNzaW5nLiBUaGlzIHBlcmZvcm1hbmNlIGJvb3N0IGhh cyBiZWVuIHByb3RvdHlwZWQgZm9yIGJvdGggWEdTLQ0KPiBQT04gTUFDIGRhdGEtcGxhbmUgYW5k IERPQ1NJUyBNQUMgZGF0YS1wbGFuZSBwaXBlbGluZXMuDQo+ID4gPg0KPiA+ID4NCj4gPiA+IENv dWxkIHlvdSBzaGFyZSB0aGUgcmVsYXRpdmUgcGVyZm9ybWFuY2UgbnVtYmVycyB0byBzaG93IHRo ZSBnYWluPw0KPiA+DQo+ID4gW0RDXSBBcyBtZW50aW9uZWQgYWJvdmUsIHRoZSBtYWluIHBlcmZv cm1hbmNlIGdhaW5zIGFyZSB3aGVuIHRoZQ0KPiBwYWNrZXQgcHJvY2Vzc2luZyBvcGVyYXRpb25z IGNhbiBiZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIHBhc3Mgb2YgdGhlDQo+IHBhY2tldC4NCj4g PiBCb3RoIENyeXB0by1DUkMtQklQIChmb3IgWEdTLVBPTiBNQUMpIGFuZCBDcnlwdG8tQ1JDIChm b3IgRE9DU0lTDQo+IE1BQykgaGF2ZSBiZWVuIGltcGxlbWVudGVkIGluIHRoZSBBRVNOSSBNQiBs aWJyYXJ5IGFzIHNpbmdsZSBwYXNzDQo+IG9wZXJhdGlvbiBjaGFpbnMuDQo+ID4NCj4gPiBXZSBo YXZlIG1vZGlmaWVkIHRoZSBkcGRrLWNyeXB0by1wZXJmLXRlc3RlciBhcyBwYXJ0IG9mIG91ciBw cm90b3R5cGluZw0KPiB0byB0ZXN0IHRoZSBjYXNlcyB3aGVyZToNCj4gPiAxKSBlYWNoIHBhY2tl dCBwcm9jZXNzaW5nIGZ1bmN0aW9uIGlzIGRvbmUgYXMgYW4gaW5kZXBlbmRlbnQgc3RhZ2UNCj4g PiAoZS5nLiBjYWxsaW5nIHJ0ZV9uZXRfY3JjIGZvciBDUkMsICBBRVNOSSBNQiB0aHJvdWdoIHJ0 ZV9jcnlwdG9kZXYgZm9yDQo+ID4gY2lwaGVyLCBhbmQgYSBDIGZ1bmN0aW9uIHRvIGNhbGN1bGF0 ZSB0aGUgQklQKQ0KPiA+IDIpIGFsbCBwYWNrZXQgcHJvY2Vzc2luZyBmdW5jdGlvbnMgZG9uZSBh cyBhIHNpbmdsZS1wYXNzIG9wZXJhdGlvbiBpbg0KPiA+IEFFU05JIE1CIHRocm91Z2ggcnRlX2Ny eXB0b2Rldg0KPiA+DQo+ID4gV2Ugc2VlIHRoZSBmb2xsb3dpbmcgcmVzdWx0cyBmb3IgMTAyNCBi eXRlIGlucHV0IGZyYW1lcyBmcm9tIGRwZGstY3J5cHRvLQ0KPiBwZXJmLXRlc3RlcjoNCj4gPiAg ICAgICAgIC0gWEdTLVBPTiBNQUMgKENyeXB0by1DUkMtQklQKToNCj4gPiAgICAgICAgICAgICAg ICAgLSAzIGluZGVwZW5kZW50IHN0YWdlczogMTQyOSBjeWNsZXMvYnVmICgxMy43NUdicHMpDQo+ ID4gICAgICAgICAgICAgICAgIC0gMSBzaW5nbGUtcGFzcyBzdGFnZTogODk2IGN5Y2xlcy9idWYg KDIxLjlHYnBzKQ0KPiA+ICAgICAgICAgICAgICAgICAzNyUgY3ljbGUgcmVkdWN0aW9uDQo+ID4N Cj4gPiAgICAgICAgIC0gRE9DU0lTIE1BQyAoQ3J5cHRvLUNSQyk6DQo+ID4gICAgICAgICAgICAg ICAgIC0gMiBpbmRlcGVuZGVudCBzdGFnZXM6IDE0MjEgY3ljbGVzL2J1ZiAoMTMuODRHYnBzKQ0K PiA+ICAgICAgICAgICAgICAgICAtIDEgc2luZ2xlLXBhc3Mgc3RhZ2U6IDExMzMgY3ljbGVzL2J1 ZiAoMTcuMzRHYnBzKQ0KPiA+ICAgICAgICAgICAgICAgICAyMCUgY3ljbGUgcmVkdWN0aW9uDQo+ ID4NCj4gPiBBZGRpbmcgdGhlIGFjY2VsZXJhdG9yIEFQSSB3aWxsIGFsbG93IHZlbmRvcnMgZ2Fp biB0aGUgYmVuZWZpdHMgb2YNCj4gPiB0aGVzZSBjeWNsZSBzYXZpbmdzDQo+IA0KPiBOdW1iZXJz IG1ha2Ugc2Vuc2UuIEkgaGF2ZSBzZWVuIGEgc2ltaWxhciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVu dCBkb2luZw0KPiBpbiBvbmUgcGFzcyB3aXRoIENQVSBpbnN0cnVjdGlvbnMuDQo+IA0KPiANCj4g PiA+ID4gLSBYR1MtUE9OIE1BQzogQ3J5cHRvLUNSQy1CSVANCj4gPiA+ID4gICAgICAgICAtIE9y ZGVyOg0KPiA+ID4gPiAgICAgICAgICAgICAgICAgLSBEb3duc3RyZWFtOiBDUkMsIEVuY3J5cHQs IEJJUA0KPiA+ID4NCj4gPiA+IEkgdW5kZXJzdGFuZCBpZiB0aGUgY2hhaW4gaGFzIHR3byBvcGVy YXRpb25zIHRoZW4gaXQgbWF5IHBvc3NpYmxlIHRvDQo+ID4gPiBoYXZlIGhhbmRjcmFmdGVkIFNX IGNvZGUgdG8gZG8gYm90aCBvcGVyYXRpb25zIGluIG9uZSBwYXNzLg0KPiA+ID4gSSB1bmRlcnN0 YW5kIHRoZSBzcGVjIGlzIGFnbm9zdGljIG9uIGEgbnVtYmVyIG9mIHBhc3NlcyBpdCBkb2VzDQo+ ID4gPiByZXF1aXJlIHRvIGVuYWJsZSB0aGUgeGZyb20gYnV0IFRvIHVuZGVyc3RhbmQgdGhlIFNX L0hXIGNhcGFiaWxpdHksDQo+ID4gPiBJbiB0aGUgYWJvdmUgY2FzZSwgIkNSQywgRW5jcnlwdCwg QklQIiwgSXQgaXMgZG9uZSBpbiBvbmUgcGFzcyBpbiBTVw0KPiA+ID4gb3IgdGhyZWUgcGFzc2Vz IGluIFNXIG9yIG9uZSBwYXNzIHVzaW5nIEhXPw0KPiA+DQo+ID4gW0RDXSBUaGUgQ1JDLCBFbmNy eXB0LCBCSVAgaXMgYWxzbyBjdXJyZW50bHkgZG9uZSBhcyAxIHBhc3MgaW4gQUVTTkkgTUINCj4g bGlicmFyeSBTVy4NCj4gPiBIb3dldmVyLCB0aGlzIGNvdWxkIGFsc28gYmUgcGVyZm9ybWVkIGFz IGEgc2luZ2xlIHBhc3MgaW4gYSBIVw0KPiA+IGFjY2VsZXJhdG9yDQo+IA0KPiBBcyBhIHNwZWNp ZmljYXRpb24sIGNhc2NhZGluZyB0aGUgeGZvcm0gY2hhaW5zIG1ha2Ugc2Vuc2UuDQo+IERvIHdl IGhhdmUgYW55IEhXIHRoYXQgZG9lcyBzdXBwb3J0IGNoYWluaW5nIHRoZSB4Zm9ybXMgbW9yZSB0 aGFuICJ0d28iDQo+IGluIG9uZSBwYXNzPw0KPiBpLmUgcmVhbCBjaGFpbmluZyBmdW5jdGlvbiB3 aGVyZSB0d28gYmxvY2tzIG9mIEhXcyB3b3JrIGhhbmQgaW4gaGFuZCBmb3INCj4gY2hhaW5pbmcu DQo+IElmIG5vbmUsIGl0IG1heSBiZSBiZXR0ZXIgdG8gYWJzdHJhY3QgYXMgc3lub255bW91cyBB UEkoTm8gZGVxdWV1ZSwgbm8NCj4gZW5xdWV1ZSkgZm9yIHRoZSBDUFUgdXNlIGNhc2UuDQoNCltE Q10gSSdtIG5vdCBhd2FyZSBvZiBhbnkgSFcgdGhhdCBzdXBwb3J0cyB0aGlzIGF0IHRoZSBtb21l bnQsIGJ1dCB0aGF0J3Mgbm90IHRvIHNheSBpdCBjb3VsZG4ndCBpbiB0aGUgZnV0dXJlIC0gaWYg YW55b25lIGVsc2UgaGFzIGFueSBleGFtcGxlcyB0aG91Z2gsIHBsZWFzZSBmZWVsIGZyZWUgdG8g c2hhcmUuDQpSZWdhcmRsZXNzLCBJIGRvbid0IHNlZSB3aHkgd2Ugd291bGQgaW50cm9kdWNlIGEg ZGlmZmVyZW50IEFQSSBmb3IgU1cgZGV2aWNlcyBhbmQgSFcgZGV2aWNlcy4NCkl0IHdvdWxkIGJl IHVwIHRvIGVhY2ggdW5kZXJseWluZyBQTUQgdG8gZGVjaWRlIGlmL2hvdyBpdCBzdXBwb3J0cyBh IHBhcnRpY3VsYXIgYWNjZWxlcmF0b3IgeGZvcm0gY2hhaW4sIGJ1dCBmcm9tIGFuIGFwcGxpY2F0 aW9uJ3MgcG9pbnQgb2YgdmlldywgdGhlIGFjY2VsZXJhdG9yIEFQSSBpcyBhbHdheXMgdGhlIHNh bWUNCg0KDQo=