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 983B9A0542; Fri, 7 Feb 2020 13:38:15 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 851CC1C0D1; Fri, 7 Feb 2020 13:38:14 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 19F321C07D for ; Fri, 7 Feb 2020 13:38:12 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Feb 2020 04:38:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,413,1574150400"; d="scan'208";a="264985033" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga002.fm.intel.com with ESMTP; 07 Feb 2020 04:38:11 -0800 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 7 Feb 2020 04:38:11 -0800 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 7 Feb 2020 04:38:10 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 7 Feb 2020 04:38:10 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UvAG74VLANxjhAx59gr201EIPJk3fjTEPzuy8aBz2uxNrxrZt8MNLqErifPnGhLzvrGDdARh0Mp+ZfI/SNgzVuQWkDgd5lQNkB0Re/dPItYW3+dzkCumxIw1O++pv4a5UhZHE8tiyJz9Q0F89DQACtJuLHdF4g5WQPj9bU2bkdgkALn9Fxxdi8J1fHon6N7UwvRJlSAUGH/F8MRENPxKItbFLzsss0RgRCQgZZqgikm5jeoloOLSLNZgYwOnDcJnWI+uZRp+0lVwEksLFWqnN/+VZ3cr9u5uOkliCsG+pNvvw5y4ysBVCDfNWMw4kwIIXXcbn/kdjiYFhYZwwseUnA== 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=EPDbE1Y5IueADyfvZIu3khWLOhjt1wJJpA6R7QNp088=; b=oCzSVwtQ7xZFjHfMNLoqtxGVsdlDRJxSOvc309fLoIBF0QqUjWMMPhYgwJvt/I9nws7c1Zc1+T68U96+OvFNdxu8OqNM9L/xZj+O8zTJP5zbyFzgL7NO0jyL+ti+mt+gwt/86fP+g3SVsLN+iRbTOqSmzDcBM6dEBwJXZ2Pfm2sU6K/wuaxDnAUwezJnfT7vtJQBpuXmouAQqRRPYDCndNOBgHWT7Yv4ROX59EEtv4Xb81CTWUmWleGzzEh6YTALDTBmNILxVdFi77DpfxDdgqzdFqCX+Zrkwj6D3V4gjCoMaZyhsSObvfXnuDTCE12obWaqcm8pwm+h+Zt+cxczNg== 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=EPDbE1Y5IueADyfvZIu3khWLOhjt1wJJpA6R7QNp088=; b=Z/SI6H6N+LKsNqTw+2iNp3td7MZt/PR+5BbO4gBC/p5Y0NyWhNoHJKzrMl9CKcbG0jH1b4CwOruI91Hpad2ohLEATfy3RMOyse+ckjmir7L1hNBMQ6XB4hJ0ZOBgmMIiVpxwNUX7Yr+Sc2637Bu2itdSSoOiZGxpw1QS7tTC/Pc= Received: from SN6PR11MB3086.namprd11.prod.outlook.com (52.135.126.142) by SN6PR11MB3373.namprd11.prod.outlook.com (52.135.109.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.25; Fri, 7 Feb 2020 12:38:09 +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.024; Fri, 7 Feb 2020 12:38:09 +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/Rbt7rs7UfkiCnNgjZknan6gM1b9QgAEqvwCAAFuzMIAADiAAgAEYl2A= Date: Fri, 7 Feb 2020 12:38:09 +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: 7f8a448d-7c43-4185-39c0-08d7abca96d7 x-ms-traffictypediagnostic: SN6PR11MB3373: 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: 0306EE2ED4 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(376002)(346002)(366004)(396003)(136003)(199004)(189003)(64756008)(66476007)(66446008)(66556008)(86362001)(66946007)(5660300002)(71200400001)(76116006)(52536014)(2906002)(8676002)(81156014)(81166006)(478600001)(8936002)(107886003)(6916009)(4326008)(186003)(55016002)(26005)(53546011)(6506007)(316002)(9686003)(33656002)(54906003)(7696005); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR11MB3373; 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: 7AQjnT1A4V5tX6BROfTdgI01RUImdlTKxoWGOwq/DQ9jJGkRcsbI9s9z7Fz4KW84GTmCAvKjeYyihPXbmWh445vp/03VQouBvDzAbwZmyKfyF2CJMsgmESwhbAByX145fAoeQV+h8dw3g00Wz75QzdS9kRpB4yX4MEBAnjB8Dpl5fmEwY2U2ODYa87U/oGWQPGfbrl4OOzI/2Ppg2rBH0+6/D8nlJ//m8gZ37vdcfDyvw/goOGjoFk0iKmGBSG3l8wwyRURba2GYwwuz6iD4xsY3gJVSTWWjCrK7CV5wAkT3F/RZ8SSCeF7QW8J95git80PptEKwcnEHPmtwCPD+ydYQqtbmtyAFoprIrj2UkVH7+bWn/gbi2/gfVieObu5AML8zZlvPna4JaKp24osCBbcg2Gp+DCcb9qFSBolMyUqjWO79BRQRAS2pYr0GTFKV x-ms-exchange-antispam-messagedata: bp706krHUVOwJVhZAgpErcHrwKOvS93dl3fiUHNulgP+kUpQ/Vb2JsxFVcBZfcwi8GQESsLi4MyNQ8KYEd7eGLtGHxjviUob1odTQnuPMq8OlWkNjfmXURy7NdRel95wFIkIDIQ663ccNrC2fDcvCQ== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 7f8a448d-7c43-4185-39c0-08d7abca96d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2020 12:38:09.5877 (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: 6gP5zbEXVPJC+KX9N58sFvq+FG0gnAWgJQet4vR6snYR4yKXvOvZvpoEYFGW5Ys7opz1VUakl/Yfit/sPHcudw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3373 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" SGkgSmVyaW4sIHNlZSBiZWxvdw0KDQo+IA0KPiBPbiBUaHUsIEZlYiA2LCAyMDIwIGF0IDEwOjAx IFBNIENveWxlLCBEYXZpZCA8ZGF2aWQuY295bGVAaW50ZWwuY29tPg0KPiB3cm90ZToNCj4gDQo+ IEhpIERhdmlkLA0KPiANCj4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gLSBYR1MtUE9OIE1BQzog Q3J5cHRvLUNSQy1CSVANCj4gPiA+ID4gPiA+ICAgICAgICAgLSBPcmRlcjoNCj4gPiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAtIERvd25zdHJlYW06IENSQywgRW5jcnlwdCwgQklQDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBJIHVuZGVyc3RhbmQgaWYgdGhlIGNoYWluIGhhcyB0d28gb3BlcmF0aW9u cyB0aGVuIGl0IG1heQ0KPiA+ID4gPiA+IHBvc3NpYmxlIHRvIGhhdmUgaGFuZGNyYWZ0ZWQgU1cg Y29kZSB0byBkbyBib3RoIG9wZXJhdGlvbnMgaW4gb25lDQo+IHBhc3MuDQo+ID4gPiA+ID4gSSB1 bmRlcnN0YW5kIHRoZSBzcGVjIGlzIGFnbm9zdGljIG9uIGEgbnVtYmVyIG9mIHBhc3NlcyBpdCBk b2VzDQo+ID4gPiA+ID4gcmVxdWlyZSB0byBlbmFibGUgdGhlIHhmcm9tIGJ1dCBUbyB1bmRlcnN0 YW5kIHRoZSBTVy9IVw0KPiA+ID4gPiA+IGNhcGFiaWxpdHksIEluIHRoZSBhYm92ZSBjYXNlLCAi Q1JDLCBFbmNyeXB0LCBCSVAiLCBJdCBpcyBkb25lDQo+ID4gPiA+ID4gaW4gb25lIHBhc3MgaW4g U1cgb3IgdGhyZWUgcGFzc2VzIGluIFNXIG9yIG9uZSBwYXNzIHVzaW5nIEhXPw0KPiA+ID4gPg0K PiA+ID4gPiBbRENdIFRoZSBDUkMsIEVuY3J5cHQsIEJJUCBpcyBhbHNvIGN1cnJlbnRseSBkb25l IGFzIDEgcGFzcyBpbg0KPiA+ID4gPiBBRVNOSSBNQg0KPiA+ID4gbGlicmFyeSBTVy4NCj4gPiA+ ID4gSG93ZXZlciwgdGhpcyBjb3VsZCBhbHNvIGJlIHBlcmZvcm1lZCBhcyBhIHNpbmdsZSBwYXNz IGluIGEgSFcNCj4gPiA+ID4gYWNjZWxlcmF0b3INCj4gPiA+DQo+ID4gPiBBcyBhIHNwZWNpZmlj YXRpb24sIGNhc2NhZGluZyB0aGUgeGZvcm0gY2hhaW5zIG1ha2Ugc2Vuc2UuDQo+ID4gPiBEbyB3 ZSBoYXZlIGFueSBIVyB0aGF0IGRvZXMgc3VwcG9ydCBjaGFpbmluZyB0aGUgeGZvcm1zIG1vcmUg dGhhbg0KPiAidHdvIg0KPiA+ID4gaW4gb25lIHBhc3M/DQo+ID4gPiBpLmUgcmVhbCBjaGFpbmlu ZyBmdW5jdGlvbiB3aGVyZSB0d28gYmxvY2tzIG9mIEhXcyB3b3JrIGhhbmQgaW4gaGFuZA0KPiA+ ID4gZm9yIGNoYWluaW5nLg0KPiA+ID4gSWYgbm9uZSwgaXQgbWF5IGJlIGJldHRlciB0byBhYnN0 cmFjdCBhcyBzeW5vbnltb3VzIEFQSShObyBkZXF1ZXVlLA0KPiA+ID4gbm8NCj4gPiA+IGVucXVl dWUpIGZvciB0aGUgQ1BVIHVzZSBjYXNlLg0KPiA+DQo+ID4gW0RDXSBJJ20gbm90IGF3YXJlIG9m IGFueSBIVyB0aGF0IHN1cHBvcnRzIHRoaXMgYXQgdGhlIG1vbWVudCwgYnV0IHRoYXQncw0KPiBu b3QgdG8gc2F5IGl0IGNvdWxkbid0IGluIHRoZSBmdXR1cmUgLSBpZiBhbnlvbmUgZWxzZSBoYXMg YW55IGV4YW1wbGVzIHRob3VnaCwNCj4gcGxlYXNlIGZlZWwgZnJlZSB0byBzaGFyZS4NCj4gPiBS ZWdhcmRsZXNzLCBJIGRvbid0IHNlZSB3aHkgd2Ugd291bGQgaW50cm9kdWNlIGEgZGlmZmVyZW50 IEFQSSBmb3IgU1cNCj4gZGV2aWNlcyBhbmQgSFcgZGV2aWNlcy4NCj4gDQo+IFRoZXJlIGlzIGEg cmlzayBpbiBkcmFmdGluZyBBUEkgdGhhdCBtZWFudCBmb3IgSFcgd2l0aG91dCBhbnkgSFcgZXhp c3RzLg0KPiBCZWNhdXNlIHRoZXJlIGNvdWxkIGJlIGluZWZmaWNpZW5jeSBvbiB0aGUgbWV0YWRh dGEgYW5kIGZhc3QgcGF0aCBBUEkgZm9yDQo+IGJvdGggbW9kZWxzLg0KPiBGb3IgZXhhbXBsZSwg SW4gdGhlIGNhc2Ugb2YgQ1BVIGJhc2VkIHNjaGVtZSwgaXQgd2lsbCBiZSBwdXJlIG92ZXJoZWFk DQo+IGVtdWxhdGUgdGhlICJxdWV1ZSIodGhlIGVucXVldWUgYW5kIGRlcXVldWUpIGZvciB0aGUg c2FrZSBvZiBhYnN0cmFjdGlvbg0KPiB3aGVyZSBDUFUgd29ya3MgYmV0dGVyIGluIHRoZSBzeW5j aHJvbm91cyBtb2RlbCBhbmQgSSBoYXZlIGRvdWJ0IHRoYXQgdGhlDQo+IHNlc3Npb24tYmFzZWQg c2NoZW1lIHdpbGwgd29yayBmb3IgSFcgb3Igbm90IGFzIGJvdGggZGlmZmVyZW5jZSAgSFcgbmVl ZHMNCj4gdG8gd29yayBoYW5kIGluIGhhbmQoSU9NTVUgYXNwZWN0cyBmb3IgdHdvIFBDSSBkZXZp Y2UpDQoNCltEQ10gSSB1bmRlcnN0YW5kIHdoYXQgeW91IGFyZSBzYXlpbmcgYWJvdXQgdGhlIG92 ZXJoZWFkIG9mIGVtdWxhdGluZyB0aGUgInN3IHF1ZXVlIiBidXQgdGhpcyBzYW1lIG1vZGVsIGlz IGFscmVhZHkgdXNlZCBpbiBtYW55IG9mIHRoZSBleGlzdGluZyBkZXZpY2UgUE1Ecy4NCkluIHRo ZSBjYXNlIG9mIFNXIGRldmljZXMsIHN1Y2ggYXMgQUVTTkktTUIgb3IgTlVMTCBmb3IgY3J5cHRv IG9yIHpsaWIgZm9yIGNvbXByZXNzaW9uLCB0aGUgZW5xdWV1ZS9kZXF1ZXVlIGluIHRoZSBQTUQg aXMgZW11bGF0ZWQgdGhyb3VnaCBhbiBydGVfcmluZyB3aGljaCBpcyB2ZXJ5IGVmZmljaWVudC4N ClRoZSBhY2NlbGVyYXRvciBBUEkgd2lsbCB1c2UgdGhlIGV4aXN0aW5nIGRldmljZSBQTURzIHNv IGtlZXBpbmcgdGhlIHNhbWUgbW9kZWwgc2VlbXMgbGlrZSBhIHNlbnNpYmxlIGFwcHJvYWNoLg0K DQpGcm9tIGFuIGFwcGxpY2F0aW9uJ3MgcG9pbnQgb2YgdmlldywgdGhpcyBhYnN0cmFjdGlvbiBv ZiB0aGUgdW5kZXJseWluZyBkZXZpY2UgdHlwZSBpcyBpbXBvcnRhbnQgZm9yIHVzYWJpbGl0eSBh bmQgbWFpbnRhaW5hYmlsaXR5IC0gIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IG5lZWQgdG8ga25v dw0KdGhlIGRldmljZSB0eXBlIGFzIHN1Y2ggYW5kIHRoZXJlZm9yZSBkb2Vzbid0IG5lZWQgdG8g bWFrZSBkaWZmZXJlbnQgQVBJIGNhbGxzLiANCg0KVGhlIGVucXVldWUvZGVxdWV1ZSB0eXBlIEFQ SSB3YXMgYWxzbyB1c2VkIHdpdGggUUFUIGluIG1pbmQuIFdoaWxlIFFBVCBIVyBkb2Vzbid0IHN1 cHBvcnQgdGhlc2UgeGZvcm0gY2hhaW5zIGF0IHRoZSBtb21lbnQsIGl0IGNvdWxkIHBvdGVudGlh bGx5IGRvIHNvIGluIHRoZSBmdXR1cmUuDQpBcyBhIHNpZGUgbm90ZSwgYXMgcGFydCBvZiB0aGUg d29yayBvZiBhZGRpbmcgdGhlIGFjY2VsZXJhdG9yIEFQSSwgdGhlIFFBVCBQTUQgd2lsbCBiZSB1 cGRhdGVkIHRvIHN1cHBvcnQgdGhlIERPQ1NJUyBDcnlwdG8tQ1JDIGFjY2VsZXJhdG9yIHhmb3Jt IGNoYWluLCB3aGVyZSB0aGUgQ3J5cHRvDQppcyBkb25lIG9uIFFBVCBIVyBhbmQgdGhlIENSQyB3 aWxsIGJlIGRvbmUgaW4gU1csIG1vc3QgbGlrZWx5IHRocm91Z2ggYSBjYWxsIHRvIHRoZSBvcHRp bWl6ZWQgcnRlX25ldF9jcmMgbGlicmFyeS4gVGhpcyB3aWxsIGdpdmUgYSBjb25zaXN0ZW50IEFQ SSBmb3IgdGhlIERPQ1NJUy1NQUMgZGF0YS1wbGFuZQ0KcGlwZWxpbmUgcHJvdG90eXBlIHdlIGhh dmUgZGV2ZWxvcGVkLCB3aGljaCB1c2VzIGJvdGggQUVTTkktTUIgYW5kIFFBVCBmb3IgYmVuY2ht YXJrcy4NCg0KV2Ugd2lsbCB0YWtlIHlvdXIgZmVlZGJhY2sgb24gdGhlIGVucXVldWUvZGVxdWV1 ZSBhcHByb2FjaCBmb3IgU1cgZGV2aWNlcyBpbnRvIGNvbnNpZGVyYXRpb24gdGhvdWdoIGR1cmlu ZyBkZXZlbG9wbWVudC4NCg0KRmluYWxseSwgSSdtIHVuc3VyZSB3aGF0IHlvdSBtZWFuIGJ5IHRo aXMgbGluZToNCg0KCSJJIGhhdmUgZG91YnQgdGhhdCB0aGUgc2Vzc2lvbi1iYXNlZCBzY2hlbWUg d2lsbCB3b3JrIGZvciBIVyBvciBub3QgYXMgYm90aCBkaWZmZXJlbmNlICBIVyBuZWVkcyB0byB3 b3JrIGhhbmQgaW4gaGFuZChJT01NVSBhc3BlY3RzIGZvciB0d28gUENJIGRldmljZSkiDQoNCldo YXQgZG8gbWVhbiBieSBkaWZmZXJlbnQgSFcgd29ya2luZyAiaGFuZCBpbiBoYW5kIiBhbmQgInR3 byBQQ0kgZGV2aWNlIj8NClRoZSBpbnRlbnRpb24gaXMgdGhhdCAxIEhXIGRldmljZSAob3IgaXQn cyBQTUQpIHdvdWxkIGhhdmUgdG8gc3VwcG9ydCB0aGUgYWNjZWwgeGZvcm0gY2hhaW4NCg0KPiAN Cj4gSGF2aW5nIHNhaWQgdGhhdCwgSSBhZ3JlZSB3aXRoIHRoZSBuZWVkIGZvciB1c2UgY2FzZSBh bmQgQVBJIGZvciBDUFUgY2FzZS4gVGlsbA0KPiB3ZSBmaW5kIGEgSFcgc3BlYywgd2UgbmVlZCB0 byBtYWtlIHRoZSBzb2x1dGlvbiBhcyBDUFUgc3BlY2lmaWMgYW5kIGxhdHRlcg0KPiBleHRlbmQg YmFzZWQgb24gSFcgbWV0YWRhdGEgcmVxdWlyZWQuDQo+IEFjY2VsZXJhdG9yIEFQSSBzb3VuZHMg bGlrZSBIVyBhY2NlbGVyYXRvciBhbmQgdGhlcmUgaXMgbm8gSFcgc3VwcG9ydCB0aGVuDQo+IGl0 IG1heSBub3QgZ29vZC4gV2UgY2FuIGNoYW5nZSB0aGUgQVBJIHRoYXQgd29ya3MgZm9yIHRoZSB1 c2UgY2FzZXMgdGhhdCB3ZQ0KPiBrbm93IGhvdyBpdCB3b3JrcyBlZmZpY2llbnRseS4NCj4gDQo+ IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+ID4gSXQgd291bGQgYmUgdXAgdG8gZWFjaCB1bmRlcmx5 aW5nIFBNRCB0byBkZWNpZGUgaWYvaG93IGl0IHN1cHBvcnRzIGENCj4gPiBwYXJ0aWN1bGFyIGFj Y2VsZXJhdG9yIHhmb3JtIGNoYWluLCBidXQgZnJvbSBhbiBhcHBsaWNhdGlvbidzIHBvaW50IG9m DQo+ID4gdmlldywgdGhlIGFjY2VsZXJhdG9yIEFQSSBpcyBhbHdheXMgdGhlIHNhbWUNCj4gPg0K PiA+DQo=