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 6B558A2EEB for ; Tue, 10 Sep 2019 17:38:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3125F1EF79; Tue, 10 Sep 2019 17:38:28 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id B94AA1EF6C for ; Tue, 10 Sep 2019 17:38:25 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Sep 2019 08:38:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,489,1559545200"; d="scan'208";a="184203326" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga008.fm.intel.com with ESMTP; 10 Sep 2019 08:38:24 -0700 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 08:38:24 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 08:38:23 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.113]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.92]) with mapi id 14.03.0439.000; Tue, 10 Sep 2019 23:38:21 +0800 From: "Wang, Haiyue" To: "Yigit, Ferruh" , "Richardson, Bruce" CC: Ray Kinsella , "dev@dpdk.org" , "Sun, Chenmin" Thread-Topic: [dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information Thread-Index: AQHVUYTDT/0YGy+MOU67JpkccwCfnab35B0AgACeXoCAJdFBAIABT/vQgAM1LQCAABWGAIAAAtKAgAAHf4CAAYRhMP//tyMAgACHaSD//4uOAIAA2KQA//+IywAAEUPtsP//fxyA//95nBA= Date: Tue, 10 Sep 2019 15:38:20 +0000 Message-ID: References: <1565665572-65495-1-git-send-email-haiyue.wang@intel.com> <1565665572-65495-2-git-send-email-haiyue.wang@intel.com> <20190812202436.662e6ca8@hermes.lan> <75f88e4b-97ca-7e1f-1385-8e69f659be7f@intel.com> <20190909124038.GA1889@bricha3-MOBL.ger.corp.intel.com> <8268b844-2815-5e0d-87cf-c6e9ca5c9f34@intel.com> <4672dfa1-a553-28fc-686e-1e14186a040a@intel.com> <57bd696a-49d4-2afd-e380-cce131d55c3b@intel.com> In-Reply-To: <57bd696a-49d4-2afd-e380-cce131d55c3b@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjEzNjcwZDktMzNjNy00MzQ3LWFkMDctN2IyYWYwMzliYjgyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidHFZeEt6MExlZGlRYXhaYkk3UzMrY2dQN1Bqc2R4a2NtdlR3K1ZRclNlSWdab2ROU1NGNm5UT05Qd3Q3R1RYSyJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZaWdpdCwgRmVycnVoDQo+IFNl bnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxMCwgMjAxOSAyMzozNg0KPiBUbzogV2FuZywgSGFpeXVl IDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+DQo+IENjOiBSYXkgS2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBkZXZA ZHBkay5vcmc7IFN1biwgQ2hlbm1pbiA8Y2hlbm1pbi5zdW5AaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUkZDIHYyIDEvM10gZXRoZGV2OiBhZGQgdGhlIEFQSSBmb3IgZ2V0 dGluZyB0cmFjZSBpbmZvcm1hdGlvbg0KPiANCj4gT24gOS8xMC8yMDE5IDQ6MTggUE0sIFdhbmcs IEhhaXl1ZSB3cm90ZToNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogWWlnaXQsIEZlcnJ1aA0KPiA+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTkg MjM6MDMNCj4gPj4gVG86IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPjsgUmlj aGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPg0KPiA+PiBDYzogUmF5 IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1PjsgZGV2QGRwZGsub3JnOyBTdW4sIENoZW5taW4gPGNo ZW5taW4uc3VuQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2 MiAxLzNdIGV0aGRldjogYWRkIHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24N Cj4gPj4NCj4gPj4gT24gOS8xMC8yMDE5IDM6MTkgUE0sIFdhbmcsIEhhaXl1ZSB3cm90ZToNCj4g Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IFlpZ2l0LCBGZXJy dWgNCj4gPj4+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTkgMTc6MTUNCj4gPj4+ PiBUbzogV2FuZywgSGFpeXVlIDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSaWNoYXJkc29uLCBC cnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+ID4+Pj4gQ2M6IFJheSBLaW5zZWxs YSA8bWRyQGFzaHJvZS5ldT47IGRldkBkcGRrLm9yZzsgU3VuLCBDaGVubWluIDxjaGVubWluLnN1 bkBpbnRlbC5jb20+DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2MiAxLzNd IGV0aGRldjogYWRkIHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24NCj4gPj4+ Pg0KPiA+Pj4+IE9uIDkvMTAvMjAxOSA5OjM3IEFNLCBXYW5nLCBIYWl5dWUgd3JvdGU6DQo+ID4+ Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJvbTogWWlnaXQsIEZl cnJ1aA0KPiA+Pj4+Pj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDEwLCAyMDE5IDE2OjA3DQo+ ID4+Pj4+PiBUbzogV2FuZywgSGFpeXVlIDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSaWNoYXJk c29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+ID4+Pj4+PiBDYzogUmF5 IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1PjsgZGV2QGRwZGsub3JnOyBTdW4sIENoZW5taW4gPGNo ZW5taW4uc3VuQGludGVsLmNvbT4NCj4gPj4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtS RkMgdjIgMS8zXSBldGhkZXY6IGFkZCB0aGUgQVBJIGZvciBnZXR0aW5nIHRyYWNlIGluZm9ybWF0 aW9uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT24gOS8xMC8yMDE5IDU6MzYgQU0sIFdhbmcsIEhhaXl1 ZSB3cm90ZToNCj4gPj4+Pj4+PiBUaGFua3MgRmVycnVoLCBCcnVjZS4NCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+PiBGcm9tOiBZaWdp dCwgRmVycnVoDQo+ID4+Pj4+Pj4+IFNlbnQ6IE1vbmRheSwgU2VwdGVtYmVyIDksIDIwMTkgMjE6 MTgNCj4gPj4+Pj4+Pj4gVG86IFJpY2hhcmRzb24sIEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGlu dGVsLmNvbT4NCj4gPj4+Pj4+Pj4gQ2M6IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwu Y29tPjsgUmF5IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1PjsgZGV2QGRwZGsub3JnOyBTdW4sDQo+ ID4+Pj4gQ2hlbm1pbg0KPiA+Pj4+Pj4+PiA8Y2hlbm1pbi5zdW5AaW50ZWwuY29tPg0KPiA+Pj4+ Pj4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUkZDIHYyIDEvM10gZXRoZGV2OiBhZGQgdGhl IEFQSSBmb3IgZ2V0dGluZyB0cmFjZSBpbmZvcm1hdGlvbg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ PiBPbiA5LzkvMjAxOSAxOjUwIFBNLCBGZXJydWggWWlnaXQgd3JvdGU6DQo+ID4+Pj4+Pj4+PiBP biA5LzkvMjAxOSAxOjQwIFBNLCBCcnVjZSBSaWNoYXJkc29uIHdyb3RlOg0KPiA+Pj4+Pj4+Pj4+ IE9uIE1vbiwgU2VwIDA5LCAyMDE5IGF0IDEyOjIzOjM2UE0gKzAxMDAsIEZlcnJ1aCBZaWdpdCB3 cm90ZToNCj4gPj4+Pj4+Pj4+Pj4gT24gOS83LzIwMTkgMzo0MiBBTSwgV2FuZywgSGFpeXVlIHdy b3RlOg0KPiA+Pj4+Pj4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+ Pj4+Pj4+Pj4gRnJvbTogWWlnaXQsIEZlcnJ1aA0KPiA+Pj4+Pj4+Pj4+Pj4+IFNlbnQ6IEZyaWRh eSwgU2VwdGVtYmVyIDYsIDIwMTkgMjI6MjINCj4gPj4+Pj4+Pj4+Pj4+PiBUbzogUmF5IEtpbnNl bGxhIDxtZHJAYXNocm9lLmV1PjsgV2FuZywgSGFpeXVlIDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+ DQo+ID4+Pj4+Pj4+Pj4+Pj4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+Pj4+Pj4+Pj4+Pj4+IFN1Ympl Y3Q6IFJlOiBbZHBkay1kZXZdIFtSRkMgdjIgMS8zXSBldGhkZXY6IGFkZCB0aGUgQVBJIGZvciBn ZXR0aW5nIHRyYWNlIGluZm9ybWF0aW9uDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+ PiBPbiA4LzEzLzIwMTkgMTo1MSBQTSwgUmF5IEtpbnNlbGxhIHdyb3RlOg0KPiA+Pj4+Pj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBPbiAxMy8wOC8yMDE5IDA0 OjI0LCBTdGVwaGVuIEhlbW1pbmdlciB3cm90ZToNCj4gPj4+Pj4+Pj4+Pj4+Pj4+IE9uIFR1ZSwg MTMgQXVnIDIwMTkgMTE6MDY6MTAgKzA4MDANCj4gPj4+Pj4+Pj4+Pj4+Pj4+IEhhaXl1ZSBXYW5n IDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+IHdyb3RlOg0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4+Pj4+PiBFbmhhbmNlIHRoZSBQTUQgdG8gc3VwcG9ydCByZXRyaWV2aW5nIHRyYWNl IGluZm9ybWF0aW9uIGxpa2UNCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBSeC9UeCBidXJzdCBzZWxlY3Rp b24gZXRjLg0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9m Zi1ieTogSGFpeXVlIFdhbmcgPGhhaXl1ZS53YW5nQGludGVsLmNvbT4NCj4gPj4+Pj4+Pj4+Pj4+ Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiAgbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRl di5jICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysNCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiAgbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oICAgICAgfCAgOSArKysrKysrKysNCj4gPj4+Pj4+ Pj4+Pj4+Pj4+PiAgbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmggfCAgNCArKysr DQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKQ0K PiA+Pj4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9s aWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYu Yw0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGluZGV4IDE3ZDE4M2UuLjYwOThmYWQgMTAwNjQ0DQo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5jDQo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5jDQo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4gQEAgLTQwODMsNiArNDA4MywyNCBAQCBydGVfZXRoX3R4X3F1ZXVlX2lu Zm9fZ2V0KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+ICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiAgaW50DQo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4gK3J0ZV9ldGhfdHJhY2VfaW5mb19nZXQodWludDE2X3QgcG9ydF9p ZCwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkJICAgICAgIGVudW0g cnRlX2V0aF90cmFjZSB0eXBlLCBjaGFyICpidWYsIGludCBzeikNCj4gPj4+Pj4+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+Pj4+Pj4+IEJldHRlciB0byB1c2Ugc3RydWN0IGFzIGFyZ3VtZW50IGluc3RlYWQg b2YgaW5kaXZpZHVhbCB2YXJpYWJsZXMgYmVjYXVzZSBpdCBpcw0KPiA+Pj4+Pj4+Pj4+Pj4+IGVh c2llciB0byBleHRlbmQgdGhlIHN0cnVjdCBsYXRlciBpZiBuZWVkZWQuDQo+ID4+Pj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiArew0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXY7DQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJUlRFX0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JFVChwb3J0X2lkLCAtRU5PREVWKTsNCj4g Pj4+Pj4+Pj4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlpZiAoYnVmID09IE5VTEwp DQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4gKw0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lk XTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlSVEVfRlVOQ19Q VFJfT1JfRVJSX1JFVCgqZGV2LT5kZXZfb3BzLT50cmFjZV9pbmZvX2dldCwgLUVOT1RTVVApOw0K PiA+Pj4+Pj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiArCXJldHVybiBkZXYtPmRl dl9vcHMtPnRyYWNlX2luZm9fZ2V0KGRldiwgcXVldWVfaWQsIHR5cGUsIGJ1Ziwgc3opOw0KPiA+ Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+IFdoYXQgaWYgcXVldWVpZCBpcyBvdXQg b2YgYm91bmRzPw0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+IFRoZSBiaWdn ZXIgcHJvYmxlbSBpcyB0aGF0IHRoaXMgaW5mb3JtYXRpb24gaXMgbGlrZSBhIGxvZyBtZXNzYWdl DQo+ID4+Pj4+Pj4+Pj4+Pj4+PiBhbmQgdW5zdHJ1Y3R1cmVkLCB3aGljaCBtYWtlcyBpdCBkZXZp Y2Ugc3BlY2lmaWMgYW5kIHVzZWxlc3MgZm9yIGF1dG9tYXRpb24uDQo+ID4+Pj4+Pj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+Pj4+Pj4+IElNSE8gLSB0aGlzIGlzIG11Y2ggYmV0dGVyIGltcGxlbWVudGVk IGFzIGEgY2FwYWJpbGl0eSBiaXRmaWVsZCwgdGhhdA0KPiA+Pj4+Pj4+Pj4+Pj4+PiBjYW4gYmUg cXVlcmllZC4NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+ICsxIHRvIHJldHVybiB0 aGUgZGF0YXBhdGggY2FwYWJpbGl0eSBhcyBiaXRmaWVsZC4NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4+Pj4+IEFsc28gKzEgdG8gaGF2ZSBhIG5ldyBBUEksDQo+ID4+Pj4+Pj4+Pj4+Pj4g LSBJIGFtIG5vdCBzdXJlIGFib3V0IHRoZSBBUEkgbmFtZSwgJ3J0ZV9ldGhfdHJhY2VfaW5mb19n ZXQoKScsIGNhbiB3ZSBmaW5kDQo+ID4+Pj4+Pj4+Pj4+Pj4gc29tZXRoaW5nIGJldHRlciBpbnN0 ZWFkIG9mICd0cmFjZScgdGhlcmUuDQo+ID4+Pj4+Pj4+Pj4+Pj4gLSBJIHRoaW5rIHdlIHNob3Vs ZCBsaW1pdCB0aGlzIEFQSSBvbmx5IHRvIGdldCBjdXJyZW50IGRhdGFwYXRoIGNvbmZpZ3VyYXRp b24sDQo+ID4+Pj4+Pj4+Pj4+Pj4gZm9yIGNsYXJpdHkgb2YgdGhlIEFQSSBkb24ndCByZXR1cm4g Y2FwYWJpbGl0eSBvciBub3QgZGF0YXBhdGggcmVsYXRlZCBjb25maWcuDQo+ID4+Pj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4+PiBBbHNvIHRoaXMgaW5mb3JtYXRpb24gbm90IGFsd2F5cyBzdXBw b3J0ZWQgaW4gcXVldWUgbGV2ZWwsIHdoYXQgZG8geW91IHRoaW5rDQo+ID4+Pj4+Pj4+Pj4+Pj4g aGF2aW5nIGFiaWxpdHkgdG8gZ2V0IHRoaXMgaW5mb3JtYXRpb24gaW4gcG9ydCBsZXZlbCwNCj4g Pj4+Pj4+Pj4+Pj4+PiBsaWtlIHRoaXMgQVBJIGNhbiByZXR1cm4gYSBzdHJ1Y3QsIHdoaWNoIG1h eSBoYXZlIGEgZmllbGQgdGhhdCBzYXlzIGlmIHRoZQ0KPiA+Pj4+Pj4+Pj4+Pj4+IG91dHB1dCBp cyBmb3IgcXVldWUgb3IgcG9ydCwgb3IgdGhpcyBjYW4gYmUgYW5vdGhlciBiaXRmaWVsZCwgd2hh dCBkbyB5b3UgdGhpbms/DQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+PiAjZGVmaW5lIFJYX1NDQUxBUgkoMVVMTCA8IDApDQo+ID4+Pj4+Pj4+Pj4+PiAjZGVm aW5lIFJYX1ZFQ1RPUl9BVlgyICAuLi4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gV2hh dCBhYm91dCBoYXZpbmcgUlhfVkVDVE9SIHZhbHVlLCBsYXRlciBhbm90aGVyIGJpdCBncm91cCBm b3IgdGhlIGRldGFpbHMgb2YNCj4gPj4+Pj4+Pj4+Pj4gdGhlIHZlY3Rvcml6YXRpb246DQo+ID4+ Pj4+Pj4+Pj4+IFNTRQ0KPiA+Pj4+Pj4+Pj4+PiBBVlgyDQo+ID4+Pj4+Pj4+Pj4+IEFWWDUxMg0K PiA+Pj4+Pj4+Pj4+PiBORU9ODQo+ID4+Pj4+Pj4+Pj4+IEFMVElWRUMNCj4gPj4+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+Pj4gU2luY2UgYWJvdmUgb3B0aW9ucyBjYW4gZXhpc3QgdG9nZXRoZXIsIHdo YXQgYWJvdXQgdXNpbmcgdmFsdWVzIGZvciB0aGVtIGluc3RlYWQNCj4gPj4+Pj4+Pj4+Pj4gb2Yg Yml0ZmllbGRzPyBSZXNlcnZpbmcgNCBiaXRzLCAyXjQgPSAxNiwgY2FuIGJlIGVub3VnaCBJIHRo aW5rIGZvciBsb25nIHRlcm0uDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gUmF0aGVyIHRo YW4gaGF2aW5nIG5hbWVkIHZlY3RvciB0eXBlcywgd2UganVzdCBuZWVkIHRvIHdvcnJ5IGFib3V0 IHRoZSBvbmVzDQo+ID4+Pj4+Pj4+Pj4gZm9yIHRoZSBjdXJyZW50IGFyY2hpdGVjdHVyZS4gVGhl cmVmb3JlIEknZCBzdWdnZXN0IGp1c3QgdXNpbmcgdmVjdG9yDQo+ID4+Pj4+Pj4+Pj4gd2lkdGhz LCBvbmUgYml0IGVhY2ggZm9yIDE2QiwgMzJCIGFuZCA2NEIgdmVjdG9yIHN1cHBvcnQuIEZvciBz dXBwb3J0aW5nDQo+ID4+Pj4+Pj4+Pj4gbXVsdGlwbGUgdmFsdWVzLCAxNiBjb21iaW5hdGlvbnMg aXMgbm90IGVub3VnaCBmb3IgYWxsIHRoZSBwb3NzaWJpbGl0aWVzLg0KPiA+Pj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZW51bSBydGVfZXRoX2J1cnN0X21vZGVf b3B0aW9uIHsNCj4gPj4+Pj4+PiAJQlVSU1RfU0NBTEFSID0gKDEgPDwgMCksDQo+ID4+Pj4+Pj4g CUJVUlNUX1ZFQ1RPUiA9ICgxIDw8IDEpLA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gCUJVUlNUX1ZF Q1RPUl9NT0RFX01BU0sgPSAoMHgzRiA8PCAyKSwNCj4gPj4+Pj4+PiAJQlVSU1RfQUxUSVZFQyAg ICAgICAgICA9ICgxIDw8IDIpLA0KPiA+Pj4+Pj4+IAlCVVJTVF9ORU9OICAgICAgICAgICAgID0g KDIgPDwgMiksDQo+ID4+Pj4+Pj4gCUJVUlNUX1NTRSAgICAgICAgICAgICAgPSAoMyA8PCAyKSwN Cj4gPj4+Pj4+PiAJQlVSU1RfQVZYMiAgICAgICAgICAgICA9ICg0IDw8IDIpLA0KPiA+Pj4+Pj4+ IAlCVVJTVF9BVlg1MTIgICAgICAgICAgID0gKDUgPDwgMiksDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g RG8gd2UgbmVlZCB0byBoYXZlIGJpdGZpZWxkcyBmb3IgdGhpcywgSSB3YXMgc3VnZ2VzdGluZyBy ZXNlcnZlIDQgYml0cywgYml0IDItNQ0KPiA+Pj4+Pj4gKGluY2x1c2l2ZSkgYW5kIHVzZSB0aGVp ciB2YWx1ZToNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBCVVJTVF9WRUNUT1JfTU9ERV9JRFggID0gMg0K PiA+Pj4+Pj4gQlVSU1RfVkVDVE9SX01PREVfU0laRSA9IDQNCj4gPj4+Pj4+IEJVUlNUX1ZFQ1RP Ul9NT0RFX01BU0sgPQ0KPiA+Pj4+Pj4gCSgoMSA8PCBCVVJTVF9WRUNUT1JfTU9ERV9TSVpFKSAt IDEpIDw8IEJVUlNUX1ZFQ1RPUl9NT0RFX0lEWA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IHZlY3Rvcl9t b2RlID0gKG9wdGlvbnMgJiBCVVJTVF9WRUNUT1JfTU9ERV9NQVNLKSA+PiBCVVJTVF9WRUNUT1Jf TU9ERV9JRFgNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBpZiAodmVjdG9yX21vZGUgPT0gMCkgLy8gQlVS U1RfU1NFDQo+ID4+Pj4+PiBpZiAodmVjdG9yX21vZGUgPT0gMSkgLy8gQlVSU1RfQVZYMg0KPiA+ Pj4+Pj4gaWYgKHZlY3Rvcl9tb2RlID09IDIpIC8vIEJVUlNUX0FWWDUxMg0KPiA+Pj4+Pj4gaWYg KHZlY3Rvcl9tb2RlID09IDMpIC8vIEJVUlNUX05FT04NCj4gPj4+Pj4gfQ0KPiA+Pj4+Pg0KPiA+ Pj4+DQo+ID4+Pj4gSSBjYW4gc2VlIGhvdyB5b3UgaW50ZW5kZWQgdXNlIGl0LCBvbmx5IHRoZXkg ZG9uJ3QgbmVlZCB0byBiZSBiaXRmaWVsZCBhbmQgdXNpbmcNCj4gPj4+PiB3aXRoIHZhbHVlIHNh dmVzIGJpdHMuDQo+ID4+Pj4gQWxzbyBJIHRoaW5rIGdvb2QgdG8gcmVzZXJ2ZSBzb21lIGJpdHMg Zm9yIGZ1dHVyZSBtb2Rlcy4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IEkgdGhpbmsgSSB1bmRlcnN0 YW5kIHlvdXIgJ3ZhbHVlIHNhdmVzIGJpdHMnIGNvbmNlcm4gbm93Og0KPiA+Pj4NCj4gPj4+IFdo YXQgeW91IG1lbnRpb25lZCB2YWx1ZSBzdWNoIGFzIDEsIDIsIDMgaGFzIGJlZW4gKnNoaWZ0ZWQq IGFzIG5ldyBvcHRpb25zOiAoMSA8PCAyKSwNCj4gPj4+ICgyIDw8IDIpLCAoMyA8PCAyKS4gVGhl ICpzaGlmdGVkKiB2YWx1ZSBzZWVtcyBiZSBlYXNpbHkgZm9yIHVzaW5nLCBsaWtlLCB5b3UgZG9u J3QNCj4gPj4+IG5lZWQgdG8gcmUtZGVmaW5lIGFub3RoZXIgZW51bSBsaWtlIGVudW0gLi4udmVj dG9yX21vZGUgeyBTU0UsIEFWWDIgfSBmb3IgYWNjZXNzaW5nLg0KPiA+Pj4gQW5kIHdlIGNhbiBl eHRyYWN0IHRoZSB2ZWN0b3IgbW9kZSBlYXN5OiBvcHRpb25zICYgQlVSU1RfVkVDVE9SX01PREVf TUFTSywgbm8gbmVlZCB0bw0KPiA+Pj4gc2hpZnQgcmlnaHQgYWdhaW4gZm9yIGdldHRpbmcgdGhl IHB1cmUgbnVtYmVyLiBBbmQgZm9yIGRpc3BsYXlpbmcgbmFtZSwgaXQgYWxzbyBzaG91bGQNCj4g Pj4+IGJlIGNvbnNpc3RlbnQ6DQo+ID4+PiAJLi4uDQo+ID4+PiAJY2FzZSBSVEVfRVRIX0JVUlNU X1ZFQ1RPUjogcmV0dXJuICJWZWN0b3IiOw0KPiA+Pj4gCWNhc2UgUlRFX0VUSF9CVVJTVF9BTFRJ VkVDOiByZXR1cm4gIkFsdGlWZWMiOw0KPiA+Pj4gCWNhc2UgUlRFX0VUSF9CVVJTVF9ORU9OOiBy ZXR1cm4gIk5lb24iOw0KPiA+Pj4NCj4gPj4NCj4gPj4gWWVwLCB0aGlzIGlzIHdoYXQgSSB3YXMg c3VnZ2VzdGluZywgYWdyZWUgdGhhdCBiaXR3aXNlIGlzIGEgbGl0dGxlIGVhc2llciwgYW5kDQo+ ID4+IHNwZWNpYWxseSBhZnRlciBoYXZpbmcgc2VwYXJhdGUgUngvVHggQVBJcyB0aGVyZSBhcmUg ZW5vdWdoIHJvb20gaW4gdGhlDQo+ID4+IHZhcmlhYmxlLCBzbyBvayB3aXRoIHlvdXIgc3VnZ2Vz dGlvbi4NCj4gPj4gQnV0IHBsZWFzZSByZXNlcnZlIHNvbWUgYWRkaXRpb25hbCByb29tIGZ1dHVy ZSB2ZWN0b3Jpc2F0aW9uIG1vZGVzLCBJIHdvdWxkIHNheQ0KPiA+PiBvdmVyYWxsIDE0IHdvdWxk IGJlIGdvb2QsIHNvIGZpcnN0IHdvcmQgY2FuIGJlIGZvciBtb2Rlcy4NCj4gPg0KPiA+IEdvdCBp dCwgd2lsbCBjaGFuZ2UgNCBiaXRzIGZvciB2ZWN0b3IgbW9kZSBmb3Igc2F2aW5nIHRoZSBiaXQg c3BhY2UuDQo+ID4NCj4gDQo+IFBsZWFzZSBrZWVwIGFzIHlvdSBzdWdnZXN0ZWQsIGFzIGJpdGZp bGVkIGZvciBzaW1wbGljaXR5LCBpdCBsb29rcyBsaWtlIHRoZXJlIGlzDQo+IGFscmVhZHkgZW5v dWdoIHNwYWNlLg0KDQpPSywgcmVtb3ZlIHRoZSAnQlVSU1RfTk9STUFMJyBmcmVlIG9uZSBtb3Jl IGJpdC4NCg==