From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, HK_RANDOM_FROM,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D087EC4740A for ; Tue, 10 Sep 2019 14:19:12 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 392692081B for ; Tue, 10 Sep 2019 14:19:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 392692081B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 916DA1EE0C; Tue, 10 Sep 2019 16:19:10 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id A20131EDB6 for ; Tue, 10 Sep 2019 16:19:08 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Sep 2019 07:19:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,489,1559545200"; d="scan'208";a="335933426" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga004.jf.intel.com with ESMTP; 10 Sep 2019 07:19:07 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 07:19:07 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 07:19:06 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.113]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.53]) with mapi id 14.03.0439.000; Tue, 10 Sep 2019 22:19:04 +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 Date: Tue, 10 Sep 2019 14:19:04 +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> In-Reply-To: <4672dfa1-a553-28fc-686e-1e14186a040a@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzZjZjYxZmEtNjFhNS00NzA2LTg4ZjctM2Y2NGFhZThhY2E5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiT081dGEwajdaWEdXZVVSUGdrZzNwZ0l1Y0w4dm56TlNPS050dmpNcVhUcmlDZE04enZ2bFBmcG5UOEs5V250YSJ9 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 bnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxMCwgMjAxOSAxNzoxNQ0KPiBUbzogV2FuZywgSGFpeXVl IDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+DQo+IENjOiBSYXkgS2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBkZXZA ZHBkay5vcmc7IFN1biwgQ2hlbm1pbiA8Y2hlbm1pbi5zdW5AaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUkZDIHYyIDEvM10gZXRoZGV2OiBhZGQgdGhlIEFQSSBmb3IgZ2V0 dGluZyB0cmFjZSBpbmZvcm1hdGlvbg0KPiANCj4gT24gOS8xMC8yMDE5IDk6MzcgQU0sIFdhbmcs IEhhaXl1ZSB3cm90ZToNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogWWlnaXQsIEZlcnJ1aA0KPiA+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTkg MTY6MDcNCj4gPj4gVG86IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPjsgUmlj aGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPg0KPiA+PiBDYzogUmF5 IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1PjsgZGV2QGRwZGsub3JnOyBTdW4sIENoZW5taW4gPGNo ZW5taW4uc3VuQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2 MiAxLzNdIGV0aGRldjogYWRkIHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24N Cj4gPj4NCj4gPj4gT24gOS8xMC8yMDE5IDU6MzYgQU0sIFdhbmcsIEhhaXl1ZSB3cm90ZToNCj4g Pj4+IFRoYW5rcyBGZXJydWgsIEJydWNlLg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IFlpZ2l0LCBGZXJydWgNCj4gPj4+PiBTZW50OiBNb25k YXksIFNlcHRlbWJlciA5LCAyMDE5IDIxOjE4DQo+ID4+Pj4gVG86IFJpY2hhcmRzb24sIEJydWNl IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4NCj4gPj4+PiBDYzogV2FuZywgSGFpeXVlIDxo YWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSYXkgS2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBkZXZA ZHBkay5vcmc7IFN1biwNCj4gQ2hlbm1pbg0KPiA+Pj4+IDxjaGVubWluLnN1bkBpbnRlbC5jb20+ DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2MiAxLzNdIGV0aGRldjogYWRk IHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24NCj4gPj4+Pg0KPiA+Pj4+IE9u IDkvOS8yMDE5IDE6NTAgUE0sIEZlcnJ1aCBZaWdpdCB3cm90ZToNCj4gPj4+Pj4gT24gOS85LzIw MTkgMTo0MCBQTSwgQnJ1Y2UgUmljaGFyZHNvbiB3cm90ZToNCj4gPj4+Pj4+IE9uIE1vbiwgU2Vw IDA5LCAyMDE5IGF0IDEyOjIzOjM2UE0gKzAxMDAsIEZlcnJ1aCBZaWdpdCB3cm90ZToNCj4gPj4+ Pj4+PiBPbiA5LzcvMjAxOSAzOjQyIEFNLCBXYW5nLCBIYWl5dWUgd3JvdGU6DQo+ID4+Pj4+Pj4+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+Pj4gRnJvbTogWWlnaXQsIEZl cnJ1aA0KPiA+Pj4+Pj4+Pj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgNiwgMjAxOSAyMjoyMg0K PiA+Pj4+Pj4+Pj4gVG86IFJheSBLaW5zZWxsYSA8bWRyQGFzaHJvZS5ldT47IFdhbmcsIEhhaXl1 ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+Pj4gQ2M6IGRldkBkcGRrLm9yZw0K PiA+Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2MiAxLzNdIGV0aGRldjog YWRkIHRoZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24NCj4gPj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+PiBPbiA4LzEzLzIwMTkgMTo1MSBQTSwgUmF5IEtpbnNlbGxhIHdyb3RlOg0KPiA+ Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBPbiAxMy8wOC8yMDE5IDA0OjI0 LCBTdGVwaGVuIEhlbW1pbmdlciB3cm90ZToNCj4gPj4+Pj4+Pj4+Pj4gT24gVHVlLCAxMyBBdWcg MjAxOSAxMTowNjoxMCArMDgwMA0KPiA+Pj4+Pj4+Pj4+PiBIYWl5dWUgV2FuZyA8aGFpeXVlLndh bmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IEVuaGFu Y2UgdGhlIFBNRCB0byBzdXBwb3J0IHJldHJpZXZpbmcgdHJhY2UgaW5mb3JtYXRpb24gbGlrZQ0K PiA+Pj4+Pj4+Pj4+Pj4gUngvVHggYnVyc3Qgc2VsZWN0aW9uIGV0Yy4NCj4gPj4+Pj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBIYWl5dWUgV2FuZyA8aGFpeXVlLndhbmdA aW50ZWwuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4+PiAgbGliL2xpYnJ0 ZV9ldGhkZXYvcnRlX2V0aGRldi5jICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysNCj4gPj4+ Pj4+Pj4+Pj4+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmggICAgICB8ICA5ICsrKysr KysrKw0KPiA+Pj4+Pj4+Pj4+Pj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5o IHwgIDQgKysrKw0KPiA+Pj4+Pj4+Pj4+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9u cygrKQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbGli cnRlX2V0aGRldi9ydGVfZXRoZGV2LmMgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmMN Cj4gPj4+Pj4+Pj4+Pj4+IGluZGV4IDE3ZDE4M2UuLjYwOThmYWQgMTAwNjQ0DQo+ID4+Pj4+Pj4+ Pj4+PiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmMNCj4gPj4+Pj4+Pj4+Pj4+ ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+Pj4+Pj4gQEAg LTQwODMsNiArNDA4MywyNCBAQCBydGVfZXRoX3R4X3F1ZXVlX2luZm9fZ2V0KHVpbnQxNl90IHBv cnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+Pj4+Pj4+Pj4+Pj4gIH0NCj4gPj4+Pj4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiAgaW50DQo+ID4+Pj4+Pj4+Pj4+PiArcnRlX2V0aF90cmFjZV9p bmZvX2dldCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPj4+Pj4+Pj4+ Pj4+ICsJCSAgICAgICBlbnVtIHJ0ZV9ldGhfdHJhY2UgdHlwZSwgY2hhciAqYnVmLCBpbnQgc3op DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQmV0dGVyIHRvIHVzZSBzdHJ1Y3QgYXMgYXJndW1l bnQgaW5zdGVhZCBvZiBpbmRpdmlkdWFsIHZhcmlhYmxlcyBiZWNhdXNlIGl0IGlzDQo+ID4+Pj4+ Pj4+PiBlYXNpZXIgdG8gZXh0ZW5kIHRoZSBzdHJ1Y3QgbGF0ZXIgaWYgbmVlZGVkLg0KPiA+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+ICt7DQo+ID4+Pj4+Pj4+Pj4+PiArCXN0cnVjdCBydGVfZXRo X2RldiAqZGV2Ow0KPiA+Pj4+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4+Pj4gKwlSVEVfRVRIX1ZB TElEX1BPUlRJRF9PUl9FUlJfUkVUKHBvcnRfaWQsIC1FTk9ERVYpOw0KPiA+Pj4+Pj4+Pj4+Pj4g Kw0KPiA+Pj4+Pj4+Pj4+Pj4gKwlpZiAoYnVmID09IE5VTEwpDQo+ID4+Pj4+Pj4+Pj4+PiArCQly ZXR1cm4gLUVJTlZBTDsNCj4gPj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+Pj4+ICsJZGV2ID0g JnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ Pj4+ICsJUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29wcy0+dHJhY2VfaW5mb19n ZXQsIC1FTk9UU1VQKTsNCj4gPj4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+Pj4+ICsJcmV0dXJu IGRldi0+ZGV2X29wcy0+dHJhY2VfaW5mb19nZXQoZGV2LCBxdWV1ZV9pZCwgdHlwZSwgYnVmLCBz eik7DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFdoYXQgaWYgcXVldWVpZCBpcyBvdXQg b2YgYm91bmRzPw0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBUaGUgYmlnZ2VyIHByb2Js ZW0gaXMgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIGxpa2UgYSBsb2cgbWVzc2FnZQ0KPiA+Pj4+ Pj4+Pj4+PiBhbmQgdW5zdHJ1Y3R1cmVkLCB3aGljaCBtYWtlcyBpdCBkZXZpY2Ugc3BlY2lmaWMg YW5kIHVzZWxlc3MgZm9yIGF1dG9tYXRpb24uDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBJ TUhPIC0gdGhpcyBpcyBtdWNoIGJldHRlciBpbXBsZW1lbnRlZCBhcyBhIGNhcGFiaWxpdHkgYml0 ZmllbGQsIHRoYXQNCj4gPj4+Pj4+Pj4+PiBjYW4gYmUgcXVlcmllZC4NCj4gPj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+PiArMSB0byByZXR1cm4gdGhlIGRhdGFwYXRoIGNhcGFiaWxpdHkgYXMgYml0Zmll bGQuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQWxzbyArMSB0byBoYXZlIGEgbmV3IEFQSSwN Cj4gPj4+Pj4+Pj4+IC0gSSBhbSBub3Qgc3VyZSBhYm91dCB0aGUgQVBJIG5hbWUsICdydGVfZXRo X3RyYWNlX2luZm9fZ2V0KCknLCBjYW4gd2UgZmluZA0KPiA+Pj4+Pj4+Pj4gc29tZXRoaW5nIGJl dHRlciBpbnN0ZWFkIG9mICd0cmFjZScgdGhlcmUuDQo+ID4+Pj4+Pj4+PiAtIEkgdGhpbmsgd2Ug c2hvdWxkIGxpbWl0IHRoaXMgQVBJIG9ubHkgdG8gZ2V0IGN1cnJlbnQgZGF0YXBhdGggY29uZmln dXJhdGlvbiwNCj4gPj4+Pj4+Pj4+IGZvciBjbGFyaXR5IG9mIHRoZSBBUEkgZG9uJ3QgcmV0dXJu IGNhcGFiaWxpdHkgb3Igbm90IGRhdGFwYXRoIHJlbGF0ZWQgY29uZmlnLg0KPiA+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+IEFsc28gdGhpcyBpbmZvcm1hdGlvbiBub3QgYWx3YXlzIHN1cHBvcnRlZCBp biBxdWV1ZSBsZXZlbCwgd2hhdCBkbyB5b3UgdGhpbmsNCj4gPj4+Pj4+Pj4+IGhhdmluZyBhYmls aXR5IHRvIGdldCB0aGlzIGluZm9ybWF0aW9uIGluIHBvcnQgbGV2ZWwsDQo+ID4+Pj4+Pj4+PiBs aWtlIHRoaXMgQVBJIGNhbiByZXR1cm4gYSBzdHJ1Y3QsIHdoaWNoIG1heSBoYXZlIGEgZmllbGQg dGhhdCBzYXlzIGlmIHRoZQ0KPiA+Pj4+Pj4+Pj4gb3V0cHV0IGlzIGZvciBxdWV1ZSBvciBwb3J0 LCBvciB0aGlzIGNhbiBiZSBhbm90aGVyIGJpdGZpZWxkLCB3aGF0IGRvIHlvdSB0aGluaz8NCj4g Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ICNkZWZpbmUgUlhfU0NBTEFSCSgxVUxM IDwgMCkNCj4gPj4+Pj4+Pj4gI2RlZmluZSBSWF9WRUNUT1JfQVZYMiAgLi4uDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiBXaGF0IGFib3V0IGhhdmluZyBSWF9WRUNUT1IgdmFsdWUsIGxhdGVyIGFub3Ro ZXIgYml0IGdyb3VwIGZvciB0aGUgZGV0YWlscyBvZg0KPiA+Pj4+Pj4+IHRoZSB2ZWN0b3JpemF0 aW9uOg0KPiA+Pj4+Pj4+IFNTRQ0KPiA+Pj4+Pj4+IEFWWDINCj4gPj4+Pj4+PiBBVlg1MTINCj4g Pj4+Pj4+PiBORU9ODQo+ID4+Pj4+Pj4gQUxUSVZFQw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gU2lu Y2UgYWJvdmUgb3B0aW9ucyBjYW4gZXhpc3QgdG9nZXRoZXIsIHdoYXQgYWJvdXQgdXNpbmcgdmFs dWVzIGZvciB0aGVtIGluc3RlYWQNCj4gPj4+Pj4+PiBvZiBiaXRmaWVsZHM/IFJlc2VydmluZyA0 IGJpdHMsIDJeNCA9IDE2LCBjYW4gYmUgZW5vdWdoIEkgdGhpbmsgZm9yIGxvbmcgdGVybS4NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4gUmF0aGVyIHRoYW4gaGF2aW5nIG5hbWVkIHZlY3RvciB0eXBlcywg d2UganVzdCBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZSBvbmVzDQo+ID4+Pj4+PiBmb3IgdGhlIGN1 cnJlbnQgYXJjaGl0ZWN0dXJlLiBUaGVyZWZvcmUgSSdkIHN1Z2dlc3QganVzdCB1c2luZyB2ZWN0 b3INCj4gPj4+Pj4+IHdpZHRocywgb25lIGJpdCBlYWNoIGZvciAxNkIsIDMyQiBhbmQgNjRCIHZl Y3RvciBzdXBwb3J0LiBGb3Igc3VwcG9ydGluZw0KPiA+Pj4+Pj4gbXVsdGlwbGUgdmFsdWVzLCAx NiBjb21iaW5hdGlvbnMgaXMgbm90IGVub3VnaCBmb3IgYWxsIHRoZSBwb3NzaWJpbGl0aWVzLg0K PiA+Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+DQo+ID4+PiBlbnVtIHJ0ZV9ldGhfYnVyc3RfbW9kZV9v cHRpb24gew0KPiA+Pj4gCUJVUlNUX1NDQUxBUiA9ICgxIDw8IDApLA0KPiA+Pj4gCUJVUlNUX1ZF Q1RPUiA9ICgxIDw8IDEpLA0KPiA+Pj4NCj4gPj4+IAlCVVJTVF9WRUNUT1JfTU9ERV9NQVNLID0g KDB4M0YgPDwgMiksDQo+ID4+PiAJQlVSU1RfQUxUSVZFQyAgICAgICAgICA9ICgxIDw8IDIpLA0K PiA+Pj4gCUJVUlNUX05FT04gICAgICAgICAgICAgPSAoMiA8PCAyKSwNCj4gPj4+IAlCVVJTVF9T U0UgICAgICAgICAgICAgID0gKDMgPDwgMiksDQo+ID4+PiAJQlVSU1RfQVZYMiAgICAgICAgICAg ICA9ICg0IDw8IDIpLA0KPiA+Pj4gCUJVUlNUX0FWWDUxMiAgICAgICAgICAgPSAoNSA8PCAyKSwN Cj4gPj4NCj4gPj4gRG8gd2UgbmVlZCB0byBoYXZlIGJpdGZpZWxkcyBmb3IgdGhpcywgSSB3YXMg c3VnZ2VzdGluZyByZXNlcnZlIDQgYml0cywgYml0IDItNQ0KPiA+PiAoaW5jbHVzaXZlKSBhbmQg dXNlIHRoZWlyIHZhbHVlOg0KPiA+Pg0KPiA+PiBCVVJTVF9WRUNUT1JfTU9ERV9JRFggID0gMg0K PiA+PiBCVVJTVF9WRUNUT1JfTU9ERV9TSVpFID0gNA0KPiA+PiBCVVJTVF9WRUNUT1JfTU9ERV9N QVNLID0NCj4gPj4gCSgoMSA8PCBCVVJTVF9WRUNUT1JfTU9ERV9TSVpFKSAtIDEpIDw8IEJVUlNU X1ZFQ1RPUl9NT0RFX0lEWA0KPiA+Pg0KPiA+PiB2ZWN0b3JfbW9kZSA9IChvcHRpb25zICYgQlVS U1RfVkVDVE9SX01PREVfTUFTSykgPj4gQlVSU1RfVkVDVE9SX01PREVfSURYDQo+ID4+DQo+ID4+ IGlmICh2ZWN0b3JfbW9kZSA9PSAwKSAvLyBCVVJTVF9TU0UNCj4gPj4gaWYgKHZlY3Rvcl9tb2Rl ID09IDEpIC8vIEJVUlNUX0FWWDINCj4gPj4gaWYgKHZlY3Rvcl9tb2RlID09IDIpIC8vIEJVUlNU X0FWWDUxMg0KPiA+PiBpZiAodmVjdG9yX21vZGUgPT0gMykgLy8gQlVSU1RfTkVPTg0KPiA+IH0N Cj4gPg0KPiANCj4gSSBjYW4gc2VlIGhvdyB5b3UgaW50ZW5kZWQgdXNlIGl0LCBvbmx5IHRoZXkg ZG9uJ3QgbmVlZCB0byBiZSBiaXRmaWVsZCBhbmQgdXNpbmcNCj4gd2l0aCB2YWx1ZSBzYXZlcyBi aXRzLg0KPiBBbHNvIEkgdGhpbmsgZ29vZCB0byByZXNlcnZlIHNvbWUgYml0cyBmb3IgZnV0dXJl IG1vZGVzLg0KPiANCg0KSSB0aGluayBJIHVuZGVyc3RhbmQgeW91ciAndmFsdWUgc2F2ZXMgYml0 cycgY29uY2VybiBub3c6DQoNCldoYXQgeW91IG1lbnRpb25lZCB2YWx1ZSBzdWNoIGFzIDEsIDIs IDMgaGFzIGJlZW4gKnNoaWZ0ZWQqIGFzIG5ldyBvcHRpb25zOiAoMSA8PCAyKSwNCigyIDw8IDIp LCAoMyA8PCAyKS4gVGhlICpzaGlmdGVkKiB2YWx1ZSBzZWVtcyBiZSBlYXNpbHkgZm9yIHVzaW5n LCBsaWtlLCB5b3UgZG9uJ3QNCm5lZWQgdG8gcmUtZGVmaW5lIGFub3RoZXIgZW51bSBsaWtlIGVu dW0gLi4udmVjdG9yX21vZGUgeyBTU0UsIEFWWDIgfSBmb3IgYWNjZXNzaW5nLg0KQW5kIHdlIGNh biBleHRyYWN0IHRoZSB2ZWN0b3IgbW9kZSBlYXN5OiBvcHRpb25zICYgQlVSU1RfVkVDVE9SX01P REVfTUFTSywgbm8gbmVlZCB0bw0Kc2hpZnQgcmlnaHQgYWdhaW4gZm9yIGdldHRpbmcgdGhlIHB1 cmUgbnVtYmVyLiBBbmQgZm9yIGRpc3BsYXlpbmcgbmFtZSwgaXQgYWxzbyBzaG91bGQNCmJlIGNv bnNpc3RlbnQ6DQoJLi4uDQoJY2FzZSBSVEVfRVRIX0JVUlNUX1ZFQ1RPUjogcmV0dXJuICJWZWN0 b3IiOw0KCWNhc2UgUlRFX0VUSF9CVVJTVF9BTFRJVkVDOiByZXR1cm4gIkFsdGlWZWMiOw0KCWNh c2UgUlRFX0VUSF9CVVJTVF9ORU9OOiByZXR1cm4gIk5lb24iOw0K