From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 802FC3978 for ; Tue, 9 Aug 2016 04:18:14 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP; 08 Aug 2016 19:18:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,493,1464678000"; d="scan'208";a="1037614828" Received: from pgsmsx107.gar.corp.intel.com ([10.221.44.105]) by fmsmga002.fm.intel.com with ESMTP; 08 Aug 2016 19:18:12 -0700 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.55]) by PGSMSX107.gar.corp.intel.com ([169.254.7.70]) with mapi id 14.03.0248.002; Tue, 9 Aug 2016 10:18:11 +0800 From: "Zhao1, Wei" To: Kyle Larose CC: "Wu, Jingjing" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2] net/i40e: fix Rx statistic inconsistent Thread-Index: AQHR6XaGdJoJIQuvH0+vFFh/TF6sAKAvIPaAgASvvZCAATTjsIAAO3RAgAAaCICACpjOYA== Date: Tue, 9 Aug 2016 02:18:10 +0000 Message-ID: References: <1469782239-48758-1-git-send-email-wei.zhao1@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjBhOGVkYzEtNGJmYy00Y2U4LWE2ZjAtZTk4NzI0ZWFhMmJmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6InhKMlZnMXFaWWloblNRSjdlWGxrMVJYSXFBMEkrZDJrN1QxQjQzeVRaYm89In0= x-ctpclassification: CTP_IC x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2] net/i40e: fix Rx statistic inconsistent X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Aug 2016 02:18:15 -0000 SGkgLEt5bGUgTGFyb3NlJkppbmdqaW5nDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogS3lsZSBMYXJvc2UgW21haWx0bzplb21lcmVhZGlnQGdtYWlsLmNvbV0NCj4gU2Vu dDogV2VkbmVzZGF5LCBBdWd1c3QgMywgMjAxNiAxMjoyMiBBTQ0KPiBUbzogWmhhbzEsIFdlaSA8 d2VpLnpoYW8xQGludGVsLmNvbT4NCj4gQ2M6IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2 Ml0gbmV0L2k0MGU6IGZpeCBSeCBzdGF0aXN0aWMgaW5jb25zaXN0ZW50DQo+IA0KPiBIZWxsbyBX ZWksDQo+IA0KPiANCj4gT24gVHVlLCBBdWcgMiwgMjAxNiBhdCAyOjU5IEFNLCBaaGFvMSwgV2Vp IDx3ZWkuemhhbzFAaW50ZWwuY29tPiB3cm90ZToNCj4gPiBIaSwgV3VqaW5namluZyBhbmQgS3ls ZSBMYXJvc2UNCj4gPg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPj4gRnJvbTogWmhhbzEsIFdlaQ0KPiA+PiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMiwgMjAx NiAxMToyNyBBTQ0KPiA+PiBUbzogV3UsIEppbmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5jb20+ OyBMdSwgV2Vuemh1bw0KPiA+PiA8d2Vuemh1by5sdUBpbnRlbC5jb20+DQo+ID4+IENjOiBkZXZA ZHBkay5vcmcNCj4gPj4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BBVENIIHYyXSBuZXQvaTQw ZTogZml4IFJ4IHN0YXRpc3RpYw0KPiA+PiBpbmNvbnNpc3RlbnQNCj4gPj4NCj4gPj4gSGksV3Ug amluZ2ppbmcgYW5kIHdlbnpodW8NCj4gPj4NCj4gPj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+PiA+IEZyb206IFpoYW8xLCBXZWkNCj4gPj4gPiBTZW50OiBNb25kYXksIEF1Z3Vz dCAxLCAyMDE2IDQ6NTggUE0NCj4gPj4gPiBUbzogJ0t5bGUgTGFyb3NlJyA8ZW9tZXJlYWRpZ0Bn bWFpbC5jb20+DQo+ID4+ID4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+PiA+IFN1YmplY3Q6IFJFOiBb ZHBkay1kZXZdIFtQQVRDSCB2Ml0gbmV0L2k0MGU6IGZpeCBSeCBzdGF0aXN0aWMNCj4gPj4gPiBp bmNvbnNpc3RlbnQNCj4gPj4gPg0KPiA+PiA+IEhpLCBLeWxlIExhcm9zZQ0KPiA+PiA+ICAgIFRo ZSBjb3JlIHByb2JsZW0gaXMgaTQwZSBoYXMgbm8gc3RhdGlzdGljIG9mIGRpc2NhcmQgYnl0ZXMs IHRoYXQNCj4gPj4gPiBtZWFucyBldmVuIGlmIHdoZW4gcG9ydHMgYXJlIG5vdCBzdG9wcGVkLCB0 aGUgc3RhdGlzdGljDQo+ID4+ID4gcnhfZ29vZF9ieXRlcyBpcyBjb25zaXN0IG9mIGRpc2NhcmQN Cj4gPj4gPiBieXRlc++8jGlzIHRoYXQgcmVhc29uYWJsZT8gSW4gb3RoZXIgd29yZHMsIEkgY2Fu IGp1c3QgbWludXMgZGlzY2FyZA0KPiA+PiA+IGJ5dGVzIGZyb20gcnhfZ29vZF9ieXRlcyBpZiBJ IGNhbiBnZXQgZGlzY2FyZCBieXRlcyBudW1iZXIsIHRoYXQgaXMNCj4gPj4gPiBtdWNoDQo+ID4+ IGJldHRlci4NCj4gPj4gPg0KPiA+PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ ID4gRnJvbTogS3lsZSBMYXJvc2UgW21haWx0bzplb21lcmVhZGlnQGdtYWlsLmNvbV0NCj4gPj4g PiBTZW50OiBTYXR1cmRheSwgSnVseSAzMCwgMjAxNiAxOjE3IEFNDQo+ID4+ID4gVG86IFpoYW8x LCBXZWkgPHdlaS56aGFvMUBpbnRlbC5jb20+DQo+ID4+ID4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+ PiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2Ml0gbmV0L2k0MGU6IGZpeCBSeCBz dGF0aXN0aWMNCj4gPj4gPiBpbmNvbnNpc3RlbnQNCj4gPj4gPg0KPiA+PiA+IE9uIEZyaSwgSnVs IDI5LCAyMDE2IGF0IDQ6NTAgQU0sIFdlaSBaaGFvMSA8d2VpLnpoYW8xQGludGVsLmNvbT4NCj4g d3JvdGU6DQo+ID4+ID4gPiByeF9nb29kX2J5dGVzIGFuZCByeF9nb29kX3BhY2tldHMgc3RhdGlz dGljIGlzIGluY29uc2lzdGVudCB3aGVuDQo+ID4+ID4gPiBwb3J0IHN0b3BwZWQsaXBhY2tldHMg c3RhdGlzdGljIGlzIG1pbnVzIHRoZSBkaXNjYXJkIHBhY2tldHMgYnV0DQo+ID4+ID4gPiByeF9i eXRlcyBzdGF0aXN0aWMgbm90LkFsc28saTQwZSBoYXMgbm8gc3RhdGlzdGljIG9mIGRpc2NhcmQN Cj4gPj4gPiA+IGJ5dGVzLCBzbyB3ZSBoYXZlIHRvIGRlbGV0ZSBkaXNjYXJkIHBhY2tldHMgaXRl bSBmcm9tDQo+IHJ4X2dvb2RfcGFja2V0cyBzdGF0aXN0aWMuDQo+ID4+ID4gPg0KPiA+PiA+ID4g Rml4ZXM6IDlhYWNlNzVmYzgyZSAoImk0MGU6IGZpeCBzdGF0aXN0aWNzIikNCj4gPj4gPiA+DQo+ ID4+ID4gPiBTaWduZWQtb2ZmLWJ5OiBXZWkgWmhhbzEgPHdlaS56aGFvMUBpbnRlbC5jb20+DQo+ ID4+ID4gPiAtLS0NCj4gPj4gPiA+ICBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMgfCAz ICstLQ0KPiA+PiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlv bnMoLSkNCj4gPj4gPiA+DQo+ID4+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jDQo+ID4+ID4gPiBiL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYyBp bmRleCAxMWE1ODA0Li41NTNkZmQ5IDEwMDY0NA0KPiA+PiA+ID4gLS0tIGEvZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jDQo+ID4+ID4gPiArKysgYi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmMNCj4gPj4gPiA+IEBAIC0yMzE5LDggKzIzMTksNyBAQCBpNDBlX2Rldl9zdGF0c19n ZXQoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ID4+ID4gPiBzdHJ1Y3QgcnRlX2V0aF9z dGF0cyAqc3RhdHMpDQo+ID4+ID4gPg0KPiA+PiA+ID4gICAgICAgICBzdGF0cy0+aXBhY2tldHMg PSBwZi0+bWFpbl92c2ktPmV0aF9zdGF0cy5yeF91bmljYXN0ICsNCj4gPj4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIHBmLT5tYWluX3ZzaS0+ZXRoX3N0YXRzLnJ4X211bHRpY2FzdCArDQo+ ID4+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICBwZi0+bWFpbl92c2ktPmV0aF9zdGF0cy5y eF9icm9hZGNhc3QgLQ0KPiA+PiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgcGYtPm1haW5f dnNpLT5ldGhfc3RhdHMucnhfZGlzY2FyZHM7DQo+ID4+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICBwZi0+bWFpbl92c2ktPmV0aF9zdGF0cy5yeF9icm9hZGNhc3Q7DQo+ID4+ID4gPiAgICAg ICAgIHN0YXRzLT5vcGFja2V0cyA9IHBmLT5tYWluX3ZzaS0+ZXRoX3N0YXRzLnR4X3VuaWNhc3Qg Kw0KPiA+PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcGYtPm1haW5fdnNpLT5ldGhfc3Rh dHMudHhfbXVsdGljYXN0ICsNCj4gPj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHBmLT5t YWluX3ZzaS0+ZXRoX3N0YXRzLnR4X2Jyb2FkY2FzdDsNCj4gPj4gPiA+IC0tDQo+ID4+ID4gPiAy LjUuNQ0KPiA+PiA+ID4NCj4gPj4gPg0KPiA+PiA+IElzIGl0IG5vdCB3b3JzZSB0byByZXBvcnQg YSByZWNlaXZlZCBwYWNrZXQgd2hlbiBubyBwYWNrZXQgd2FzDQo+ID4+ID4gYWN0dWFsbHkgcmVj ZWl2ZWQgYnkgdGhlIHVwcGVyIGxheWVycyB1bmRlciBub3JtYWwgb3BlcmF0aW9ucyB0aGFuDQo+ ID4+ID4gdG8gZW5zdXJlIHRoYXQgcGFja2V0cyBhbmQgIGJ5dGVzIGFyZSBjb25zaXN0ZW50IHdo ZW4gYW4gaW50ZXJmYWNlDQo+ID4+ID4gaXMgc3RvcHBlZD8gSXQgc2VlbXMgbGlrZSB0aGUgZmly c3QgY2FzZSBpcyBtdWNoIG1vcmUgbGlrZWx5IHRvDQo+ID4+ID4gb2NjdXIgdGhhbiB0aGUNCj4g Pj4gc2Vjb25kLg0KPiA+PiA+DQo+ID4+ID4gQXJlIHdlIGp1c3QgaW50cm9kdWNpbmcgYSBuZXcg aXNzdWUgdG8gZml4IGFub3RoZXI/DQo+ID4+ID4NCj4gPj4gPiBIb3cgZG9lcyB0aGlzIGJlaGF2 aW91ciBjb21wYXJlIHRvIG90aGVyIE5JQ3M/IERvZXMgdGhlIGl4Z2JlDQo+ID4+ID4gcmVwb3J0 IGRpc2NhcmRlZCBwYWNrZXRzIGluIGl0cyBpcGFja2V0cz8gTXkgcmVhZGluZyBvZiB0aGUgZHJp dmVyIGlzIHRoYXQNCj4gaXQgZG9lcyBub3QuDQo+ID4+ID4gSW4gZmFjdCwgaXQgZG9lcyBzb21l dGhpbmcgaW50ZXJlc3RpbmcgdG8gZGVhbCB3aXRoIHRoZQ0KPiA+PiA+IHByb2JsZW06DQo+ID4+ ID4NCj4gPj4gPiBmcm9tOg0KPiA+PiA+IGh0dHA6Ly9kcGRrLm9yZy9icm93c2UvZHBkay90cmVl L2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4+ID4NCj4gPj4gPiAvKg0KPiA+ PiA+ICogQW4gZXJyYXRhIHN0YXRlcyB0aGF0IGdwcmMgYWN0dWFsbHkgY291bnRzIGdvb2QgKyBt aXNzZWQgcGFja2V0czoNCj4gPj4gPiAqIFdvcmthcm91bmQgdG8gc2V0IGdwcmMgdG8gc3VtbWF0 ZWQgcXVldWUgcGFja2V0IHJlY2VpdmVzICovDQo+ID4+ID4gaHdfc3RhdHMtDQo+ID4+ID4gPmdw cmMgPSAqdG90YWxfcXByYzsNCj4gPj4gPg0KPiA+PiA+IHRvdGFsX2dwcmMgaXMgZXF1YWwgdG8g dGhlIHN1bSBvZiB0aGUgcXByYyBwZXIgcXVldWUuIENhbiB3ZSBkbw0KPiA+PiA+IHNvbWV0aGlu ZyBzaW1pbGFyIG9uIHRoZSBpNDBlIGluc3RlYWQgb2YgYWRkaW5nIHVuaWNhc3QsIG11bGl0Y2Fz dA0KPiA+PiA+IGFuZA0KPiA+PiBicm9hZGNhc3Q/DQo+ID4+DQo+ID4+DQo+ID4+IEkgaGF2ZSBj aGVja2VkIGl4Z2JlIGNvZGUgYWJvdXQgIFJ4IHN0YXRpc3RpYywgaW4gZnVuY3Rpb24NCj4gPj4g aXhnYmVfcmVhZF9zdGF0c19yZWdpc3RlcnMoKSB3ZSBjYW4gZmluZCB0aGUgcnhfZ29vZF9ieXRl cyBhbmQNCj4gPj4gcnhfZ29vZF9wYWNrZXRzIHN0YXRpc3RpYy4NCj4gPj4gSXQgaXMgbGlzdGVk IGJlbG93LCB3ZSAgY2FuIHNlZSByeF9nb29kX3BhY2tldHMgaXMgYWxzbyBqdXN0IGFkZGl0aW9u DQo+ID4+IG9mIFF1ZXVlIFBhY2tldHMgUmVjZWl2ZWQgQ291bnQgYW5kICBub3QgbWludXNlZCAg ZGlzY2FyZCBwYWNrZXQNCj4gbnVtYmVyLg0KPiA+PiBJcyB0aGVyZSBzb21lIHdyb25nIG9mIHVu ZGVyc3RhbmRpbmc/DQo+IA0KPiANCj4gDQo+IE15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHByb2Js ZW0gY2FuIGJlIGJyb2tlbiBpbnRvIHRocmVlIHBhcnRzOg0KPiAgMSkgSW4gVW5pY2FzdC9NdWx0 aWNhc3QvQnJvYWRjYXN0IHBhY2tldCBjb3VudGVycyBhcmUgY291bnRpbmcgcGFja2V0cw0KPiB3 aGljaCB3ZXJlIGRpc2NhcmRlZA0KPiAgMikgVGhlIGNvcnJlc3BvbmRpbmcgYnl0ZSBjb3VudGVy cyBjb3VudCBwYWNrZXRzIHdoaWNoIHdlcmUgZGlzY2FyZGVkLg0KPiAgMykgVGhlcmUgYXJlIG5v IGRpc2NhcmRlZCBieXRlIGNvdW50ZXJzLg0KPiANCj4gT3VyIGluIGJ5dGVzIGNvdW50ZXIgY29u c2lzdHMgb2YgdGhlIHN1bSBvZiBpbiB1bmljYXN0LCBpbiBtdWx0aWNhc3QsIGFuZCBpbg0KPiBi cm9hZGNhc3QuIFRoaXMgc3VtIGluY2x1ZGVzIGRpc2NhcmRlZCBieXRlcywgd2hpY2ggd2UgZG8g bm90IHdhbnQsIGZvciB0d28NCj4gcmVhc29ucy4gRmlyc3QsIGl0IHdvdWxkIGxlYWQgdG8gbWlz bGVhZGluZyBiaXRyYXRlDQo+IHJlcG9ydHM6IHBlb3BsZSBleHBlY3QgdG8gc2VlIHRoZSBhbW91 bnQgb2YgdHJhZmZpYyBhY3R1YWxseSBoYW5kbGVkLg0KPiBTZWNvbmQsIGl0IGNvbmZsaWN0cyB3 aXRoIHRoZSBjdXJyZW50IHBhY2tldCBjb3VudGVycyAodGhlIGNvdW50ZXJzIHdpdGhvdXQNCj4g eW91ciBjaGFuZ2UpLg0KPiANCj4gT2J2aW91c2x5IGlmIHdlIGNvdWxkIGNvdW50IHRoZSBkaXNj YXJkZWQgYnl0ZXMsIHdlIGNvdWxkIHN1YnRyYWN0IHRoZW0uDQo+IEFsdGVybmF0aXZlbHksIGlm IHdlIGNvdWxkIGNvdW50IG9ubHkgcmVjZWl2ZWQgYnl0ZXMgd2hpY2ggd2VyZSBub3QNCj4gZGlz Y2FyZGVkLCB0aGVuIHdlIHdvdWxkIG5vdCBuZWVkIHRvIHN1YnRyYWN0IGRpc2NhcmRlZCBieXRl cyBmcm9tIHRoZQ0KPiByZWNlaXZlZCBieXRlcyBjb3VudGVyLiBUaGUgaXhnYmUgaGFkIGEgc2lt aWxhciBwcm9ibGVtIGZvciBwYWNrZXRzLCBidXQNCj4gcHJlc3VtYWJseSBub3QgYnl0ZXMuIFNv LCBJIGxvb2tlZCB0byBpdCBmb3IgaW5zcGlyYXRpb24uDQo+IA0KPiBQcmVzdW1hYmx5LCB0aGUg aXhnYmUgcGVyLXF1ZXVlIGNvdW50ZXJzIGNvdW50IGFsbCByZWNlaXZlZCBwYWNrZXRzLCBwZXIN Cj4gcXVldWUsIGFuZCBkbyBub3QgY291bnQgZGlzY2FyZGVkIHBhY2tldHMuVGh1cywgaXMgeW91 IHRha2UgdGhlIHN1bSBvZg0KPiByZWNlaXZlZCBwYWNrZXRzIGFjcm9zcyBhbGwgcXVldWVzLCB5 b3UgY2FuIGZpbmQgdGhlIHRvdGFsIG51bWJlciBvZiByZWNlaXZlZA0KPiBwYWNrZXRzIHdpdGhv dXQgZGlzY2FyZHMgaW5jbHVkZWQuDQo+IA0KPiBDYW4gd2Ugbm90IGRvIHRoZSBzYW1lIHRoaW5n IG9uIHRoZSBpNDBlLCBidXQgZm9yIGJ5dGVzPyBJIGp1c3QgdG9vayBhIHF1aWNrDQo+IGxvb2sg YXQgdGhlIGRhdGFzaGVldCwgYW5kIEkgY2Fubm90IHNlZSBhbnl0aGluZyBvZmZoYW5kIHRoYXQg aXMgZXF1aXZhbGVudCB0bw0KPiBxYnJjLCB3aGljaCBpcyB3aGF0IEkgd291bGQgaGF2ZSB1c2Vk IGhlcmUuIFRoYXQgc2FpZCwgSSdtIG5vdCBhbiBpNDBlIGV4cGVydCwNCj4gc28gSSBtYXkgaGF2 ZSBtaXNzZWQgc29tZXRoaW5nLiBUaGF0J3Mgd2h5IEknbSBhc2tpbmcgaWYgaXQncyBwb3NzaWJs ZS4gOikNCj4gDQo+IA0KPiANCj4gPj4NCj4gPj4gZm9yIChpID0gMDsgaSA8IElYR0JFX1FVRVVF X1NUQVRfQ09VTlRFUlM7IGkrKykgeyAuLi4uLi4NCj4gPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKnRvdGFsX3FwcmMgKz0gaHdfc3RhdHMtPnFwcmNbaV07DQo+ID4+ICAgICAg ICAgICAgICAgKnRvdGFsX3FicmMgKz0gaHdfc3RhdHMtPnFicmNbaV07IC4uLi4uLg0KPiA+PiB9 DQo+ID4NCj4gPiAgICBUaGUgcHJvYmxlbSBpcyBpNDBlIGhhcyBubyBzdGF0aXN0aWMgb2YgZGlz Y2FyZCBieXRlcywgc28gaXQgaXMNCj4gPiBpbXBvc3NpYmxlIHRvIG1pbnVzIGRpc2NhcmQgYnl0 ZXMgZnJvbSByeF9nb29kX2J5dGVzIC4gSWYgeW91IHRoaW5rIGl0J3Mgbm90DQo+IHJlYXNvbmFi bGUgdG8gRGVsZXRlICByeF9kaXNjYXJkcyBpdGVybSBmcm9tIHJ4X2dvb2RfcGFja2V0cyBzdGF0 aXN0aWMsIHRoaXMNCj4gcGF0Y2ggd2lsbCBiZSBzdXBlcnNlZGVkLiBCZWNhdXNlIEkgZGlkbid0 IGZpbmQgb3RoZXIgd2F5IHRvIGNvcnJlY3QgdGhpcw0KPiBwcm9ibGVtIGF0IHByZXNlbnQuDQo+ ID4NCj4gDQo+IEkgdW5kZXJzdGFuZCB0aGF0IHRoZXJlIGlzIG5vIGRpc2NhcmQgYnl0ZSBjb3Vu dGVyLiBBcmUgdGhlcmUgcGVyLXF1ZXVlIGJ5dGUNCj4gY291bnRlcnMgb24gdGhlIGk0MGUsIHdo aWNoIGRvIG5vdCBjb3VudCBkaXNjYXJkZWQgYnl0ZSwgd2l0aCB3aGljaCB3ZQ0KPiBjb3VsZCBk byBhIHNpbWlsYXIgdGhpbmcgYXMgdGhlIHBhY2tldCBjb3VudGVycyBvbiB0aGUgaXhnYmU/DQo+ IA0KPiBNeSBjb25jZXJuIGlzIHRoYXQgYm90aCBzb2x1dGlvbnMgYXNpZGUgZnJvbSB0aGF0IGFy ZSBub3QgZ29vZDogZWl0aGVyIHdlDQo+IGNvdW50IGxlc3MgcGFja2V0cyByZWNlaXZlZCB0aGFu IGJ5dGVzIHJlY2VpdmVkLCBvciB3ZSBjb3VudCBkaXNjYXJkZWQNCj4gcGFja2V0cyBhcyByZWNl aXZlZCBwYWNrZXRzLiBJcyB0aGVyZSBhbnkgY2hhbmNlIHRoYXQgYSBmaXJtd2FyZSB1cGRhdGUg aW4NCj4gdGhlIGZ1dHVyZSBjb3VsZCBmaXggdGhpcz8gVGhpcyBzb3J0IG9mIGluY29uc2lzdGVu Y3ksIG9yIGluYWJpbGl0eSB0byBwcm92aWRlDQo+ICpnb29kKiBzdGF0cywgcmVhbGx5IHN1Y2tz IGZvciBhIE5JQy4NCj4gDQo+IFRoYW5rcywNCj4gDQo+IEt5bGUNCg0KDQpBY2NvcmRpbmcgdG8g eW91ciBzdWdnZXN0aW9uIGFuZCBtZWV0aW5nIGxhc3Qgd2VlayB3aXRoIGhhcnJ5ICxJIGhhdmUg c3VwcGx5IGEgdjMgcGF0Y2ggZm9yIHRoaXMgcHJvYmxlbS4NCltkcGRrLWRldix2M10gbmV0L2k0 MGU6IGZpeCBSeCBzdGF0aXN0aWMgaW5jb25zaXN0ZW50ICAsIFBlcm1hbGluayA6L2Rldi9wYXRj aHdvcmsvcGF0Y2gvMTUxNjEvLg0KVGhpcyBmaXggaXMgYXZvaWRpbmcgIHN0YXRpc3RpYyB3b3Jr IHdoZW4gcG9ydCBpcyBzdG9wcGVkLg0KDQo=