From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 10A513B5 for ; Wed, 25 Jan 2017 23:36:24 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP; 25 Jan 2017 14:36:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,286,1477983600"; d="scan'208";a="35503681" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga002.jf.intel.com with ESMTP; 25 Jan 2017 14:36:23 -0800 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 25 Jan 2017 14:36:23 -0800 Received: from fmsmsx108.amr.corp.intel.com ([169.254.9.130]) by fmsmsx101.amr.corp.intel.com ([169.254.1.198]) with mapi id 14.03.0248.002; Wed, 25 Jan 2017 14:36:22 -0800 From: "Eads, Gage" To: "Richardson, Bruce" , 'Jerin Jacob' , "'dev@dpdk.org'" CC: "'thomas.monjalon@6wind.com'" , "'hemant.agrawal@nxp.com'" , "Van Haaren, Harry" , "McDaniel, Timothy" Thread-Topic: [dpdk-dev] [PATCH v4 1/6] eventdev: introduce event driven programming model Thread-Index: AQHSW2xXsGgHA6bcOUyrfHLc4sbJyaFGoaPAgAN/5ID//3vSMIAAYDqg Date: Wed, 25 Jan 2017 22:36:21 +0000 Message-ID: <9184057F7FC11744A2107296B6B8EB1E01E5F3D3@FMSMSX108.amr.corp.intel.com> References: <1480996340-29871-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482312326-2589-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482312326-2589-2-git-send-email-jerin.jacob@caviumnetworks.com> <9184057F7FC11744A2107296B6B8EB1E01E5EF2C@FMSMSX108.amr.corp.intel.com> <59AF69C657FD0841A61C55336867B5B035B8EBB9@IRSMSX103.ger.corp.intel.com> <9184057F7FC11744A2107296B6B8EB1E01E5F0AC@FMSMSX108.amr.corp.intel.com> In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E01E5F0AC@FMSMSX108.amr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmViN2M5MGUtYzlhOC00MzRhLTk1ZGUtNTk1NDU4NDg5NjcxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IkxJT0Nja3d4TWJSSGUwV2hoUTNTVk01Y2ZaVjNGSVBzaWpKY09nZG1VcDg9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.1.200.108] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 1/6] eventdev: introduce event driven programming model 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: , X-List-Received-Date: Wed, 25 Jan 2017 22:36:25 -0000 DQoNCj4gIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ICBGcm9tOiBFYWRzLCBHYWdlDQo+ ICBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMjUsIDIwMTcgMTA6NTQgQU0NCj4gIFRvOiBSaWNo YXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBKZXJpbiBKYWNvYg0K PiAgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT47IGRldkBkcGRrLm9yZw0KPiAgQ2M6 IHRob21hcy5tb25qYWxvbkA2d2luZC5jb207IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207IFZhbiBI YWFyZW4sDQo+ICBIYXJyeSA8aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+OyBNY0RhbmllbCwg VGltb3RoeQ0KPiAgPHRpbW90aHkubWNkYW5pZWxAaW50ZWwuY29tPg0KPiAgU3ViamVjdDogUkU6 IFtkcGRrLWRldl0gW1BBVENIIHY0IDEvNl0gZXZlbnRkZXY6IGludHJvZHVjZSBldmVudCBkcml2 ZW4NCj4gIHByb2dyYW1taW5nIG1vZGVsDQo+ICANCj4gIA0KPiAgDQo+ICA+ICAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiAgPiAgRnJvbTogUmljaGFyZHNvbiwgQnJ1Y2UNCj4gID4gIFNl bnQ6IFdlZG5lc2RheSwgSmFudWFyeSAyNSwgMjAxNyAxMDozNiBBTQ0KPiAgPiAgVG86IEVhZHMs IEdhZ2UgPGdhZ2UuZWFkc0BpbnRlbC5jb20+OyBKZXJpbiBKYWNvYg0KPiAgPiA8amVyaW4uamFj b2JAY2F2aXVtbmV0d29ya3MuY29tPjsgZGV2QGRwZGsub3JnDQo+ICA+ICBDYzogdGhvbWFzLm1v bmphbG9uQDZ3aW5kLmNvbTsgaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgVmFuIEhhYXJlbiwNCj4g ID4gSGFycnkgPGhhcnJ5LnZhbi5oYWFyZW5AaW50ZWwuY29tPjsgTWNEYW5pZWwsIFRpbW90aHkN Cj4gID4gPHRpbW90aHkubWNkYW5pZWxAaW50ZWwuY29tPg0KPiAgPiAgU3ViamVjdDogUkU6IFtk cGRrLWRldl0gW1BBVENIIHY0IDEvNl0gZXZlbnRkZXY6IGludHJvZHVjZSBldmVudA0KPiAgPiBk cml2ZW4gIHByb2dyYW1taW5nIG1vZGVsDQo+ICA+DQo+ICA+DQo+ICA+DQo+ICA+ICA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ICA+ICA+IEZyb206IEVhZHMsIEdhZ2UNCj4gID4gID4g U2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDI1LCAyMDE3IDQ6MzIgUE0gID4gVG86IEplcmluIEph Y29iDQo+ICA+IDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+OyBkZXZAZHBkay5vcmcg ID4gQ2M6DQo+ICA+IHRob21hcy5tb25qYWxvbkA2d2luZC5jb207IFJpY2hhcmRzb24sIEJydWNl ICA+DQo+ICA+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGhlbWFudC5hZ3Jhd2FsQG54 cC5jb207IFZhbiBIYWFyZW4sICA+DQo+ICA+IEhhcnJ5IDxoYXJyeS52YW4uaGFhcmVuQGludGVs LmNvbT47IE1jRGFuaWVsLCBUaW1vdGh5ICA+DQo+ICA+IDx0aW1vdGh5Lm1jZGFuaWVsQGludGVs LmNvbT4gID4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BBVENIIHY0IDEvNl0NCj4gID4gZXZl bnRkZXY6IGludHJvZHVjZSBldmVudCAgPiBkcml2ZW4gcHJvZ3JhbW1pbmcgbW9kZWwgID4gID4g SGkgSmVyaW4sDQo+ICA+ID4gID4gU2VlIHRoZSBib3R0b20gb2YgdGhpcyBlbWFpbCBmb3IgYSBw cm9wb3NlZCB0d2VhayB0byB0aGUgID4NCj4gID4gcnRlX2V2ZW50X2VucXVldWVfYnVyc3QoKSBy ZXR1cm4gdmFsdWUuDQo+ICA+ICA+DQo+ICA+ICA+ID4gIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ICA+ICA+ID4gIEZyb206IEplcmluIEphY29iIFttYWlsdG86amVyaW4uamFjb2JAY2F2 aXVtbmV0d29ya3MuY29tXQ0KPiAgPiAgPiA+ICBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDIx LCAyMDE2IDM6MjUgQU0gID4gPiAgVG86DQo+ICA+IGRldkBkcGRrLm9yZyAgPiA+ICBDYzogdGhv bWFzLm1vbmphbG9uQDZ3aW5kLmNvbTsgUmljaGFyZHNvbiwgQnJ1Y2UgID4NCj4gID4gPiA8YnJ1 Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBoZW1hbnQuYWdyYXdhbEBueHAuY29tOyBFYWRzLCBH YWdlICA+DQo+ICA+ID4gPGdhZ2UuZWFkc0BpbnRlbC5jb20+OyBWYW4gSGFhcmVuLCBIYXJyeSAg PiA+DQo+ICA+IDxoYXJyeS52YW4uaGFhcmVuQGludGVsLmNvbT47IEplcmluIEphY29iICA+ID4N Cj4gID4gPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4gID4gPiAgU3ViamVjdDogW2Rw ZGstZGV2XSBbUEFUQ0ggdjQNCj4gID4gMS82XSBldmVudGRldjogaW50cm9kdWNlIGV2ZW50IGRy aXZlbiAgPiA+IHByb2dyYW1taW5nIG1vZGVsICA+ID4NCj4gID4gPG1lc3NhZ2UgdHJ1bmNhdGVk IGZvciBicmV2aXR5PiAgPiA+ICArLyoqICA+ID4gICsgKiBFbnF1ZXVlIGEgYnVyc3QNCj4gID4g b2YgZXZlbnRzIG9iamVjdHMgb3IgYW4gZXZlbnQgb2JqZWN0IHN1cHBsaWVkICA+ID4gaW4gID4g Pg0KPiAgPiAqcnRlX2V2ZW50KiAgPiA+ICArICogc3RydWN0dXJlIG9uIGFuICBldmVudCBkZXZp Y2UgZGVzaWduYXRlZCBieSBpdHMNCj4gID4gKmRldl9pZCogID4gPiB0aHJvdWdoIHRoZSBldmVu dCAgKyAqIHBvcnQgc3BlY2lmaWVkIGJ5ICpwb3J0X2lkKi4gRWFjaA0KPiAgPiBldmVudCAgPiA+ IG9iamVjdCBzcGVjaWZpZXMgdGhlIGV2ZW50IHF1ZXVlIG9uICArICogd2hpY2ggaXQgd2lsbCBi ZQ0KPiAgPiBlbnF1ZXVlZC4NCj4gID4gID4gPiAgKyAqDQo+ICA+ICA+ID4gICsgKiBUaGUgKm5i X2V2ZW50cyogcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgZXZlbnQgb2JqZWN0cyB0bw0KPiAg PiA+ID4gZW5xdWV1ZSAgd2hpY2ggYXJlICArICogc3VwcGxpZWQgaW4gdGhlICpldiogYXJyYXkg b2YgKnJ0ZV9ldmVudCoNCj4gID4gPiA+IHN0cnVjdHVyZS4NCj4gID4gID4gPiAgKyAqDQo+ICA+ ICA+ID4gICsgKiBUaGUgcnRlX2V2ZW50X2VucXVldWVfYnVyc3QoKSBmdW5jdGlvbiByZXR1cm5z IHRoZSBudW1iZXIgb2YNCj4gID4gKyAgPiA+ICogZXZlbnRzIG9iamVjdHMgaXQgYWN0dWFsbHkg ZW5xdWV1ZWQuIEEgcmV0dXJuIHZhbHVlIGVxdWFsIHRvDQo+ICA+ID4gPiAqbmJfZXZlbnRzKiAg KyAqIG1lYW5zIHRoYXQgYWxsIGV2ZW50IG9iamVjdHMgaGF2ZSBiZWVuIGVucXVldWVkLg0KPiAg PiAgPiA+ICArICoNCj4gID4gID4gPiAgKyAqIEBwYXJhbSBkZXZfaWQNCj4gID4gID4gPiAgKyAq ICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGRldmljZS4NCj4gID4gID4gPiAgKyAqIEBwYXJhbSBw b3J0X2lkDQo+ICA+ICA+ID4gICsgKiAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBldmVudCBwb3J0 Lg0KPiAgPiAgPiA+ICArICogQHBhcmFtIGV2DQo+ICA+ICA+ID4gICsgKiAgIFBvaW50cyB0byBh biBhcnJheSBvZiAqbmJfZXZlbnRzKiBvYmplY3RzIG9mIHR5cGUgKnJ0ZV9ldmVudCoNCj4gID4g ID4gc3RydWN0dXJlDQo+ICA+ICA+ID4gICsgKiAgIHdoaWNoIGNvbnRhaW4gdGhlIGV2ZW50IG9i amVjdCBlbnF1ZXVlIG9wZXJhdGlvbnMgdG8gYmUNCj4gID4gID4gcHJvY2Vzc2VkLg0KPiAgPiAg PiA+ICArICogQHBhcmFtIG5iX2V2ZW50cw0KPiAgPiAgPiA+ICArICogICBUaGUgbnVtYmVyIG9m IGV2ZW50IG9iamVjdHMgdG8gZW5xdWV1ZSwgdHlwaWNhbGx5IG51bWJlciBvZg0KPiAgPiAgPiA+ ICArICogICBydGVfZXZlbnRfcG9ydF9lbnF1ZXVlX2RlcHRoKCkgYXZhaWxhYmxlIGZvciB0aGlz IHBvcnQuDQo+ICA+ICA+ID4gICsgKg0KPiAgPiAgPiA+ICArICogQHJldHVybg0KPiAgPiAgPiA+ ICArICogICBUaGUgbnVtYmVyIG9mIGV2ZW50IG9iamVjdHMgYWN0dWFsbHkgZW5xdWV1ZWQgb24g dGhlIGV2ZW50DQo+ICA+ICA+IGRldmljZS4gVGhlDQo+ICA+ICA+ID4gICsgKiAgIHJldHVybiB2 YWx1ZSBjYW4gYmUgbGVzcyB0aGFuIHRoZSB2YWx1ZSBvZiB0aGUgKm5iX2V2ZW50cyoNCj4gID4g ID4gcGFyYW1ldGVyDQo+ICA+ICA+ID4gIHdoZW4NCj4gID4gID4gPiAgKyAqICAgdGhlIGV2ZW50 IGRldmljZXMgcXVldWUgaXMgZnVsbCBvciBpZiBpbnZhbGlkIHBhcmFtZXRlcnMgYXJlDQo+ICA+ ICA+IHNwZWNpZmllZCBpbiBhDQo+ICA+ICA+ID4gICsgKiAgICpydGVfZXZlbnQqLiBJZiByZXR1 cm4gdmFsdWUgaXMgbGVzcyB0aGFuICpuYl9ldmVudHMqLCB0aGUNCj4gID4gID4gcmVtYWluaW5n IGV2ZW50cw0KPiAgPiAgPiA+ICArICogICBhdCB0aGUgZW5kIG9mIGV2W10gYXJlIG5vdCBjb25z dW1lZCxhbmQgdGhlIGNhbGxlciBoYXMgdG8gdGFrZQ0KPiAgPiAgPiBjYXJlIG9mDQo+ICA+ICA+ ID4gIHRoZW0NCj4gID4gID4gPiAgKyAqDQo+ICA+ICA+ID4gICsgKiBAc2VlIHJ0ZV9ldmVudF9w b3J0X2VucXVldWVfZGVwdGgoKSAgKyAqLyAgK3VpbnQxNl90ICA+ID4NCj4gID4gK3J0ZV9ldmVu dF9lbnF1ZXVlX2J1cnN0KHVpbnQ4X3QgZGV2X2lkLCB1aW50OF90IHBvcnRfaWQsDQo+ICA+ICA+ ID4gICsJCQljb25zdCBzdHJ1Y3QgcnRlX2V2ZW50IGV2W10sIHVpbnQxNl90IG5iX2V2ZW50cyk7 DQo+ICA+ICA+DQo+ICA+ICA+IFRoZXJlIGFyZSBhIG51bWJlciBvZiByZWFzb25zIHRoaXMgb3Bl cmF0aW9uIGNvdWxkIGZhaWwgdG8gZW5xdWV1ZQ0KPiAgPiBhbGwgID4gdGhlIGV2ZW50cywgaW5j bHVkaW5nOg0KPiAgPiAgPiAtIEJhY2twcmVzc3VyZQ0KPiAgPiAgPiAtIEludmFsaWQgcG9ydCBJ RA0KPiAgPiAgPiAtIEludmFsaWQgcXVldWUgSUQNCj4gID4gID4gLSBJbnZhbGlkIHNjaGVkIHR5 cGUgd2hlbiBhIHF1ZXVlIGlzIGNvbmZpZ3VyZWQgZm9yIEFUT01JQ19PTkxZLCAgPg0KPiAgPiBP UkRFUkVEX09OTFksIG9yIFBBUkFMTEVMX09OTFkgID4gLSAuLi4NCj4gID4gID4NCj4gID4gID4g VGhlIGN1cnJlbnQgQVBJIGRvZXNuJ3QgcHJvdmlkZSBhIHN0cmFpZ2h0Zm9yd2FyZCB3YXkgdG8g ZGV0ZXJtaW5lDQo+ICA+IHRoZSAgPiBjYXVzZSBvZiBhIGZhaWx1cmUuIFRoaXMgaXMgYSBwYXJ0 aWN1bGFyIGlzc3VlIG9uIGV2ZW50IFBNRHMNCj4gID4gdGhhdCBjYW4gID4gYmFja3ByZXNzdXJl LCB3aGVyZSB0aGUgYXBwIG1heSB3YW50IHRvIHRyZWF0IHRoYXQgY2FzZQ0KPiAgPiBkaWZmZXJl bnRseSAgPiB0aGFuIHRoZSBvdGhlciBmYWlsdXJlIGNhc2VzLg0KPiAgPiAgPg0KPiAgPiAgPiBD b3VsZCB3ZSBjaGFuZ2UgdGhlIHJldHVybiB0eXBlIHRvIGludDE2X3QsIGFuZCBkZWZpbmUgYSBz ZXQgb2YNCj4gID4gZXJyb3IgID4gY2FzZXMgKGUuZy4gLUVOT1NQQyBmb3IgYmFja3ByZXNzdXJl LCAtRUlOVkFMIGZvciBhbiBpbnZhbGlkDQo+ICBhcmd1bWVudCk/DQo+ICA+ICA+IChXaXRoIGNv cnJlc3BvbmRpbmcgY2hhbmdlcyBuZWVkZWQgaW4gdGhlIFBNRCBBUEkpIFNpbWlsYXJseSB3ZQ0K PiAgPiBjb3VsZCAgPiBjaGFuZ2UgcnRlX2V2ZW50X2RlcXVldWVfYnVyc3QoKSB0byByZXR1cm4g YW4gaW50MTZfdCwgd2l0aA0KPiAgPiAtRUlOVkFMIGFzICA+IGEgcG9zc2libGUgZXJyb3IgY2Fz ZS4NCj4gID4NCj4gID4gIFVzZSBydGVfZXJybm8gaW5zdGVhZCwgSSBzdWdnZXN0LiBUaGF0J3Mg d2hhdCBpdCdzIHRoZXJlIGZvci4NCj4gID4NCj4gID4gIC9CcnVjZQ0KPiAgDQo+ICBUaGF0IG1h a2VzIHNlbnNlLiBJbiB0aGF0IGNhc2UsIHRoZSBBUEkgY29tbWVudCBjb3VsZCBiZSB0d2Vha2Vk IGxpa2Ugc286DQo+ICANCj4gICAgKiBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIGxlc3MgdGhhbiAq bmJfZXZlbnRzKiwgdGhlIHJlbWFpbmluZyBldmVudHMgYXQgdGhlDQo+ICAgICogZW5kIG9mIGV2 W10gYXJlIG5vdCBjb25zdW1lZCBhbmQgdGhlIGNhbGxlciBoYXMgdG8gdGFrZSBjYXJlIG9mIHRo ZW0sIGFuZA0KPiAgICAqIHJ0ZV9lcnJubyBpcyBzZXQgYWNjb3JkaW5nbHkuIFBvc3NpYmxlIGVy cm5vIHZhbHVlcyBpbmNsdWRlOg0KPiAgICAqIC0gRUlOVkFMIC0gVGhlIHBvcnQgSUQgaXMgaW52 YWxpZCwgYW4gZXZlbnQncyBxdWV1ZSBJRCBpcyBpbnZhbGlkLCBvciBhbg0KPiAgICAqICAgICAg ICAgICAgZXZlbnQncyBzY2hlZCB0eXBlIGRvZXNuJ3QgbWF0Y2ggdGhlIGNhcGFiaWxpdGllcyBv ZiB0aGUNCj4gICAgKiAgICAgICAgICAgIGRlc3RpbmF0aW9uIHF1ZXVlLg0KPiAgICAqIC0gRU5P U1BDIC0gVGhlIGV2ZW50IHBvcnQgd2FzIGJhY2twcmVzc3VyZWQgYW5kIHVuYWJsZSB0byBlbnF1 ZXVlIG9uZSBvcg0KPiAgICAqICAgICAgICAgICAgbW9yZSBldmVudHMuDQoNCkhvd2V2ZXIgaXQg c2VlbXMgYmV0dGVyIHRvIHVzZSBhIHNpZ25lZCBpbnRlZ2VyIGZvciB0aGUgZGVxdWV1ZSBidXJz dCByZXR1cm4gdmFsdWUsIGlmIGl0IGlzIHRvIHVzZSBydGVfZXJybm8uIEFwcGxpY2F0aW9uIGNv ZGUgY291bGQgYmUgc2ltcGxpZmllZDoNCg0KKHNpZ25lZCByZXR1cm4gdmFsdWUpDQpyZXQgPSBy dGVfZXZlbnRfZGVxdWV1ZV9idXJzdCguLi4pOw0KaWYgKHJldCA8IDApDQogICAgcnRlX3Bhbmlj KCJEZXF1ZXVlZCByZXR1cm5lZCBlcnJubyAlZFxuIiwgcnRlX2Vycm5vKTsNCg0KdnMuDQoNCih1 bnNpZ25lZCByZXR1cm4gdmFsdWUpDQpyZXQgPSBydGVfZXZlbnRfZGVxdWV1ZV9idXJzdCguLi4p Ow0KaWYgKHJldCA9PSAwICYmIHJ0ZV9lcnJubyAhPSAwKQ0KICAgIHJ0ZV9wYW5pYygiRGVxdWV1 ZWQgcmV0dXJuZWQgZXJybm8gJWRcbiIsIHJ0ZV9lcnJubyk7DQoNCkFuZCB3aXRoIGFuIHVuc2ln bmVkIHJldHVybiB2YWx1ZSwgYWxsIGRlcXVldWUgaW1wbGVtZW50YXRpb25zIHdvdWxkIGhhdmUg dG8gY2xlYXIgcnRlX2Vycm5vIHdoZW4gbm8gZXZlbnRzIGFyZSBkZXF1ZXVlZC4NCg0KVGhhbmtz LA0KR2FnZQ0K