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 BE4B2A0093; Wed, 20 May 2020 09:48:49 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E12B41C2E8; Wed, 20 May 2020 09:48:48 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 28AFD1C214 for ; Wed, 20 May 2020 09:48:46 +0200 (CEST) IronPort-SDR: SwR9v0VlVlHsbsF4tHPkSipxSjASC1ILDOH7AtJ3WJu3Hj/lVecwBUoIqppdYplPppod3CC51Q Cm6tqKlGOmaA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2020 00:48:45 -0700 IronPort-SDR: lhU5FO0JehAwilab6Hl2e4KRtZ6EWTqOJ/rQW2GbM2Mr0Ho1gTFifCOM7W3oOymeLsZ6DiAkXv bQkT9ILrEyAA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,413,1583222400"; d="scan'208";a="466435258" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga006.fm.intel.com with ESMTP; 20 May 2020 00:48:45 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 20 May 2020 00:48:45 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 20 May 2020 00:48:45 -0700 Received: from shsmsx105.ccr.corp.intel.com (10.239.4.158) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 20 May 2020 00:48:45 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.241]) by SHSMSX105.ccr.corp.intel.com ([169.254.11.75]) with mapi id 14.03.0439.000; Wed, 20 May 2020 15:48:42 +0800 From: "Zhang, Qi Z" To: "Yan, Xiaoping (NSB - CN/Hangzhou)" , "Guo, Jia" , "Xing, Beilei" CC: "dev@dpdk.org" , Olivier Matz Thread-Topic: [dpdk-dev] incorrect vlan_tci in rte mbuf Thread-Index: AdYqp2VSjUoJKifNSDyWYgDBzswvoQB+tw6AABL2G2AAHn/cAAASeW0AAAnwpTAAJ8yUcAAAVOew Date: Wed, 20 May 2020 07:48:42 +0000 Message-ID: <039ED4275CED7440929022BC67E706115482349E@SHSMSX103.ccr.corp.intel.com> References: <301f18faf1184d7fb3b3958f1dbb1675@nokia-sbell.com> <20200518072405.GG1739@platinum> <30f00b616c0049b9b3f5f26b70b4088f@nokia-sbell.com> <34885cc0-edd9-9889-9799-a7c6d6485edd@intel.com> <1d619997740e4d849e1a35c7f87f3058@nokia-sbell.com> <039ED4275CED7440929022BC67E70611548229FF@SHSMSX103.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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] incorrect vlan_tci in rte mbuf 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWFuLCBYaWFvcGluZyAo TlNCIC0gQ04vSGFuZ3pob3UpIDx4aWFvcGluZy55YW5Abm9raWEtc2JlbGwuY29tPg0KPiBTZW50 OiBXZWRuZXNkYXksIE1heSAyMCwgMjAyMCAzOjQyIFBNDQo+IFRvOiBaaGFuZywgUWkgWiA8cWku ei56aGFuZ0BpbnRlbC5jb20+OyBHdW8sIEppYSA8amlhLmd1b0BpbnRlbC5jb20+OyBYaW5nLA0K PiBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgT2xp dmllciBNYXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPg0KPiBTdWJqZWN0OiBSRTogW2RwZGst ZGV2XSBpbmNvcnJlY3Qgdmxhbl90Y2kgaW4gcnRlIG1idWYNCj4gDQo+IEhpLA0KPiANCj4gSSB0 cmllZCB0aGUgY2hhbmdlLCBhbmQgaXQgc29sdmVkIHRoZSBwcm9ibGVtLg0KPiBTaG91bGQgSSBz dWJtaXQgdGhlIGNoYW5nZSB0byBnaXRodWI/IE9yIHlvdSB3aWxsIGRvIHRoYXQ/DQo+IFRoYW5r IHlvdS4NCg0KTm8gd29ycnksIEkgc2F3IEd1byBKaWEgYWxzbyByZXBseSB0aGlzIG9uIGFub3Ro ZXIgdGhyZWFkIHdpdGggdGhlIHNhbWUgZml4LCBhbmQgaGUgd2lsbCBzdWJtaXQgdGhlIGZpeCwg dGhhbmtzIHRvIHJlcG9ydCB0aGlzIQ0KDQo+IA0KPiBCZXN0IHJlZ2FyZHMNCj4gWWFuIFhpYW9w aW5nDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBaaGFuZywgUWkg WiA8cWkuei56aGFuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IDIwMjDlubQ15pyIMTnml6UgMjA6NDIN Cj4gVG86IFlhbiwgWGlhb3BpbmcgKE5TQiAtIENOL0hhbmd6aG91KSA8eGlhb3BpbmcueWFuQG5v a2lhLXNiZWxsLmNvbT47DQo+IEd1bywgSmlhIDxqaWEuZ3VvQGludGVsLmNvbT47IFhpbmcsIEJl aWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBPbGl2aWVy IE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZd IGluY29ycmVjdCB2bGFuX3RjaSBpbiBydGUgbWJ1Zg0KPiANCj4gSGkgWGlhb3Bpbmc6DQo+IA0K PiAJQWNjb3JkaW5nIHRvIGk0MGUgZGF0YXNoZWV0LCBmb3IgcGFja2V0IHdpdGggbXVsdGlwbGUg YnVmZmVyLCB0aGUgTDJUQUcNCj4gc2hvdWxkIG9ubHkgYmUgdmFsaWQgb24gbGFzdCBSeCBkZXNj cmlwdG9yLg0KPiAJU28gaXQgaXMgaWRlbnRpY2FsIHdpdGggd2hhdCB5b3Ugb2JzZXJ2ZWQgYW5k IGl0IGxvb2tzIGxpa2UgYSBidWcgaW4gdGhlDQo+IHZlY3RvciBwYXRoLg0KPiAJQ291bGQgeW91 IHRyeSBpZiBiZWxvdyBjaGFuZ2UgY2FuIGZpeCB0aGUgaXNzdWU/DQo+IA0KPiAtLS0gYS9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfY29tbW9uLmgNCj4gKysrIGIvZHJpdmVycy9uZXQv aTQwZS9pNDBlX3J4dHhfdmVjX2NvbW1vbi5oDQo+IEBAIC0zNCw2ICszNCw3IEBAIHJlYXNzZW1i bGVfcGFja2V0cyhzdHJ1Y3QgaTQwZV9yeF9xdWV1ZSAqcnhxLCBzdHJ1Y3QNCj4gcnRlX21idWYg KipyeF9idWZzLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGl0J3MgdGhl IGxhc3QgcGFja2V0IG9mIHRoZSBzZXQgKi8NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdGFydC0+aGFzaCA9IGVuZC0+aGFzaDsNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGFydC0+b2xfZmxhZ3MgPSBlbmQtPm9sX2ZsYWdzOw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0YXJ0LT52bGFuX3RjaSA9IGVuZC0+dmxhbl90Y2k7DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2UgbmVlZCB0byBzdHJpcCBjcmMgZm9y IHRoZSB3aG9sZQ0KPiBwYWNrZXQgKi8NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGFydC0+cGt0X2xlbiAtPSByeHEtPmNyY19sZW47DQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKGVuZC0+ZGF0YV9sZW4gPiByeHEtPmNyY19sZW4NCj4gDQo+IFRoYW5r cw0KPiBRaQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRl diA8ZGV2LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBZYW4sIFhpYW9waW5nIChOU0Ig LQ0KPiA+IENOL0hhbmd6aG91KQ0KPiA+IFNlbnQ6IFR1ZXNkYXksIE1heSAxOSwgMjAyMCA0OjMy IFBNDQo+ID4gVG86IEd1bywgSmlhIDxqaWEuZ3VvQGludGVsLmNvbT47IFhpbmcsIEJlaWxlaSA8 YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiA+IENjOiBkZXZAZHBkay5vcmc7IE9saXZpZXIgTWF0 eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBp bmNvcnJlY3Qgdmxhbl90Y2kgaW4gcnRlIG1idWYNCj4gPg0KPiA+IEhpLA0KPiA+DQo+ID4gSSB0 cmllZCB0byB1c2UgZ2RiIHRvIHByaW50IHRoZSByeCBkZXNjcmlwdG9yLCBhbmQgaXQgdHVybmVk IG91dCB0aGF0DQo+ID4gb25seSB0aGUgcnhkIGZvciB0aGUgbGFzdCBzZWdtZW50IGhhcyBjb3Jy ZWN0IGwydGFnMSB2YWx1ZS4NCj4gPiBUZXN0IHN0ZXA6IHBpbmcgeHgueHgueHgueHggLXMgMjUw MCwgICBmcm9tIGEgdmxhbiBpbnRlcmZhY2Ugd2l0aCB2bGFuIGlkDQo+IDE5MDEsDQo+ID4gTVRV IDkwMDAuICh0aGlzIHdpbGwgc2VuZHMgMSBwYWNrZXQsIGFuZCBuZWVkcyB0d28gbWJ1ZiBzZWdt ZW50cyB0bw0KPiA+IHJlY2VpdmUsIGxlbmd0aCBvZiAxc3QgbWJ1ZiBzZWdtZW50IGlzIDIxNzYo bWJ1ZiBzaXplIG9mIG15IGRwZGsNCj4gPiBhcHBsaWNhdGlvbiksIGxlbmd0aCBvZiAybmQgbWJ1 ZiBzZWdtZW50IGlzIDM2NikNCj4gPg0KPiA+IFJ4IGRlc2NyaXB0b3IgcHJpbnRlZCB3aXRoIGdk YjoNCj4gPiBCcmVha3BvaW50IDIgYXQgMHg3ZmZmZjVlZmE0YmI6IGZpbGUNCj4gPg0KPiAvdXNy L3NyYy9kZWJ1Zy9kcGRrLTE4LjExLjEtMi5ub2s2LndmMzEueDg2XzY0L3BhY2thZ2UvZHBkay9k cGRrLTE4LjENCj4gPiAxL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4X3ZlY19hdngyLmMsIGxp bmUgNDk2Lg0KPiA+IChnZGIpIHByaW50ICoocnhxLT5yeF9yaW5nICsgcnhxLT5yeF90YWlsKzEp DQo+ID4gJDQgPSB7cmVhZCA9IHtwa3RfYWRkciA9IDE0ODU4NjE1NTg3MzE5OTA2MzA0LCBoZHJf YWRkciA9DQo+ID4gNTk4MTY0MzkwMjkzNTE3LCByc3ZkMSA9IDAsDQo+ID4gICAgIHJzdmQyID0g MH0sIHdiID0ge3F3b3JkMCA9IHtsb19kd29yZCA9IHttaXJyX2Zjb2UgPQ0KPiA+IHttaXJyb3Jp bmdfc3RhdHVzID0gMCwNCj4gPiAgICAgICAgICAgZmNvZV9jdHhfaWQgPSAwfSwgbDJ0YWcxID0g NzN9LCBoaV9kd29yZCA9IHtyc3MgPSAzNDU5NTQxMDMxLA0KPiA+ICAgICAgICAgZmNvZV9wYXJh bSA9IDM0NTk1NDEwMzEsIGZkX2lkID0gMzQ1OTU0MTAzMX19LCBxd29yZDEgPSB7DQo+ID4gICAg ICAgc3RhdHVzX2Vycm9yX2xlbiA9IDU5ODE2NDM5MDI5MzUxN30sIHF3b3JkMiA9IHtleHRfc3Rh dHVzID0gMCwNCj4gPiByc3ZkID0gMCwNCj4gPiAgICAgICBsMnRhZzJfMSA9IDAsIGwydGFnMl8y ID0gMH0sIHF3b3JkMyA9IHtsb19kd29yZCA9IHtmbGV4X2J5dGVzX2xvID0NCj4gMCwNCj4gPiAg ICAgICAgIHBlX3N0YXR1cyA9IDB9LCBoaV9kd29yZCA9IHtmbGV4X2J5dGVzX2hpID0gMCwgZmRf aWQgPSAwfX19fQ0KPiA+IChnZGIpIHByaW50ICoocnhxLT5yeF9yaW5nICsgcnhxLT5yeF90YWls KzIpDQo+ID4gJDUgPSB7cmVhZCA9IHtwa3RfYWRkciA9IDE0ODU4NjE1NTg3NDM5NzA2MTEyLCBo ZHJfYWRkciA9DQo+ID4gMTAwNjM1Mzc4NzI0ODc5LCByc3ZkMSA9IDAsDQo+ID4gICAgIHJzdmQy ID0gMH0sIHdiID0ge3F3b3JkMCA9IHtsb19kd29yZCA9IHttaXJyX2Zjb2UgPQ0KPiA+IHttaXJy b3Jpbmdfc3RhdHVzID0gMCwNCj4gPiAgICAgICAgICAgZmNvZV9jdHhfaWQgPSAwfSwgbDJ0YWcx ID0gMTkwMX0sIGhpX2R3b3JkID0ge3JzcyA9DQo+IDM0NTk1NDEwMzEsDQo+ID4gICAgICAgICBm Y29lX3BhcmFtID0gMzQ1OTU0MTAzMSwgZmRfaWQgPSAzNDU5NTQxMDMxfX0sIHF3b3JkMSA9IHsN Cj4gPiAgICAgICBzdGF0dXNfZXJyb3JfbGVuID0gMTAwNjM1Mzc4NzI0ODc5fSwgcXdvcmQyID0g e2V4dF9zdGF0dXMgPSAwLA0KPiA+IHJzdmQgPSAwLA0KPiA+ICAgICAgIGwydGFnMl8xID0gMCwg bDJ0YWcyXzIgPSAwfSwgcXdvcmQzID0ge2xvX2R3b3JkID0ge2ZsZXhfYnl0ZXNfbG8gPQ0KPiAw LA0KPiA+ICAgICAgICAgcGVfc3RhdHVzID0gMH0sIGhpX2R3b3JkID0ge2ZsZXhfYnl0ZXNfaGkg PSAwLCBmZF9pZCA9IDB9fX19DQo+ID4NCj4gPiBXaXRoIGZvcm11bGE6CQlsZW5ndGggPSAocXdv cmQxICYNCj4gPiBJNDBFX1JYRF9RVzFfTEVOR1RIX1BCVUZfTUFTSykgPj4NCj4gPiBJNDBFX1JY RF9RVzFfTEVOR1RIX1BCVUZfU0hJRlQ7ICAocXdvcmQxIGlzIHN0YXR1c19lcnJvcl9sZW4gaW4N Cj4gZ2RiDQo+ID4gcHJpbnRvdXQpDQo+ID4gSSBjYW4gZ2V0IGxlbmd0aCBvZiBmaXJzdCBzZWdt ZW50KHJ4cS0+cnhfcmluZyArIHJ4cS0+cnhfdGFpbCsxKSBpcw0KPiA+IDIxNzYsIGFuZCBsZW5n dGggb2Ygc2Vjb25kIHNlZ21lbnQocnhxLT5yeF9yaW5nICsgcnhxLT5yeF90YWlsKzIpIGlzDQo+ ID4gMzY2LCB3aGljaCBwcm92ZXMgdGhleSBhcmUgdGhlIG1idWYgc2VnbWVudHMgdG8gcmVjZWl2 ZS4NCj4gPiBIb3dldmVyIHdlIGNhbiBzZWUgdGhlIGwydGFnMSBvZiBmaXJzdCBzZWdtZW50IGlz IDczKGludmFsaWQpLCBsMnRhZzENCj4gPiBvZiBzZWNvbmQgc2VnbWVudCBpcyAxOTAxKHZhbGlk KS4NCj4gPg0KPiA+IEl0IG1lYW5zIGVpdGhlciBIVyBzaG91bGQgYmUgbW9kaWZpZWQgdG8gZmls bCBsMnRhZzEgY29ycmVjdGx5IGZvcg0KPiA+IGVhY2ggZXZlcnkgc2VnbWVudCwgb3IgX3JlY3Zf cmF3X3BrdHNfdmVjX2F2eDIgc2hvdWxkIGJlIG1vZGlmaWVkIHRvDQo+ID4gcmVhZCBsMnRhZzEg b2YgbGFzdCBzZWdtZW50Pw0KPiA+IFBTOiBpdCBzZWVtcyBpNDBlX3JlY3Zfc2NhdHRlcmVkX3Br dHMgdXNlIHRoZSBsMnRhZzEgb2YgbGFzdCByeGQgKHRvDQo+ID4gc2V0IHZsYW4gdGNpIG9mIGZp cnN0IHNlZ21lbnQpLCBkb24ndCBrbm93IGl0IGlzIGJ5IGFjY2lkZW50KGNvbnZlbmllbmNlKSBv cg0KPiBieSBwdXJwb3NlLg0KPiA+DQo+ID4gRG8geW91IGFncmVlIG9uIG15IGFuYWx5c2lzPw0K PiA+IElmIG15IGFuYWx5c2lzIGlzIGNvcnJlY3QsIGlzIGl0IHBvc3NpYmxlIGZvciB5b3UgdG8g aGVscCBtYWtlIGEgc3cNCj4gPiBwYXRjaCwgYmVjYXVzZSBJJ20gbm90IGZhbWlsaWFyIHdpdGgg dGhpcyB2ZWMgYXZ4IGNvZGUuDQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMNCj4gPiBZYW4gWGlhb3Bp bmcNCj4gPg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSmVmZiBH dW8gPGppYS5ndW9AaW50ZWwuY29tPg0KPiA+IFNlbnQ6IDIwMjDlubQ15pyIMTnml6UgMTU6MDAN Cj4gPiBUbzogWWFuLCBYaWFvcGluZyAoTlNCIC0gQ04vSGFuZ3pob3UpIDx4aWFvcGluZy55YW5A bm9raWEtc2JlbGwuY29tPjsNCj4gPiBiZWlsZWkueGluZ0BpbnRlbC5jb20NCj4gPiBDYzogZGV2 QGRwZGsub3JnOyBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb20+DQo+ID4gU3Vi amVjdDogUmU6IFtkcGRrLWRldl0gaW5jb3JyZWN0IHZsYW5fdGNpIGluIHJ0ZSBtYnVmDQo+ID4N Cj4gPiBoaSwgeGlhb3BpbmcNCj4gPg0KPiA+IE9uIDUvMTgvMjAyMCA0OjMxIFBNLCBZYW4sIFhp YW9waW5nIChOU0IgLSBDTi9IYW5nemhvdSkgd3JvdGU6DQo+ID4gPiBIaSBCZWlsZWkgJiBKaWEs DQo+ID4gPg0KPiA+ID4gSSBnb3QgeW91ciBuYW1lIGZyb20gdGhlIE1BSU5UQUlORVJTICBmb3Ig SW50ZWwgaTQwZS4NCj4gPiA+IENvdWxkIHlvdSBoZWxwIHRvIGhhdmUgYSBsb29rIGF0IHRoZSBp c3N1ZSwgZGVzY3JpYmVkIGluIG15IHByZXZpb3VzDQo+IG1haWw/DQo+ID4gPg0KPiA+ID4gVGhh bmsgeW91Lg0KPiA+ID4NCj4gPiA+IEJlc3QgcmVnYXJkcw0KPiA+ID4gWWFuIFhpYW9waW5nDQo+ ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IE9saXZp ZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4NCj4gPiA+IFNlbnQ6IDIwMjDlubQ15pyI MTjml6UgMTU6MjQNCj4gPiA+IFRvOiBZYW4sIFhpYW9waW5nIChOU0IgLSBDTi9IYW5nemhvdSkg PHhpYW9waW5nLnlhbkBub2tpYS1zYmVsbC5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3JnDQo+ ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBpbmNvcnJlY3Qgdmxhbl90Y2kgaW4gcnRlIG1i dWYNCj4gPiA+DQo+ID4gPiBIaSwNCj4gPiA+DQo+ID4gPiBPbiBGcmksIE1heSAxNSwgMjAyMCBh dCAxMToxMjoyN0FNICswMDAwLCBZYW4sIFhpYW9waW5nIChOU0IgLQ0KPiA+IENOL0hhbmd6aG91 KSB3cm90ZToNCj4gPiA+PiBIaSwNCj4gPiA+Pg0KPiA+ID4+IEknbSB1c2luZyBpNDBlIHZmLCBk cGRrIDE4LjExLCB4ODZfNjQgQ1BVIChyeCBmdW5jdGlvbiBpbiB1c2UgaXMNCj4gPiA+PiBpNDBl X3JlY3Zfc2NhdHRlcmVkX3BrdHNfdmVjX2F2eDIpDQo+ID4gPj4gV2hlbiBlbmFibGUgaHcgdmxh biBzdHJpcDoNCj4gPiA+Pg0KPiA+ID4+ICAgICogICBJZiBwYWNrZXQgZml0IGluIG9uZSBtYnVm IHNlZ21lbnQsIHRoZSB2bGFuX3RjaSBmaWVsZCBpcyBjb3JyZWN0DQo+ID4gPj4gICAgKiAgIElm IHBhY2tldHMgYXJlIHN0b3JlZCBpbiBzZXZlcmFsIG1idWYgc2VnbWVudCwgdGhlIHZsYW5fdGNp IG9mDQo+IGxhc3QNCj4gPiBzZWdtZW50IGlzIGNvcnJlY3QsIHZsYW5fdGNpIG9mIG90aGVyIHNl Z21lbnRzIGFyZSBpbnZhbGlkDQo+ID4gPj4NCj4gPiA+PiBJdCBzZWVtcyBpNDBlX3JlY3Zfc2Nh dHRlcmVkX3BrdHMgaGFzIGNvcnJlY3RseSBzZXQgdGhlIHZsYW5fdGNpLA0KPiA+ID4+IGJ5IGNh bGxpbmcgaTQwZV9yeGRfdG9fdmxhbl90Y2koZmlyc3Rfc2VnLCAmcnhkKTsNCj4gPiA+Pg0KPiA+ ID4+IElzIHRoaXMgYSBidWcgaW4gaTQwZV9yZWN2X3NjYXR0ZXJlZF9wa3RzX3ZlY19hdngyPw0K PiA+ID4+IChJIGRpZG4ndCBmaW5kIHNldHRpbmcgdmxhbl90Y2kgZm9yIGZpcnN0IHNlZ21lbnQs IGJ1dCBpdCdzIGEgYml0DQo+ID4gPj4gZGlmZmljdWx0IGZvciBtZSB0byB1bmRlcnN0YW5kIGNv ZGVzIGluDQo+ID4gPj4gaTQwZV9yZWN2X3NjYXR0ZXJlZF9wa3RzX3ZlY19hdngyLCBzbyBJJ20g bm90IHF1aXRlIHN1cmUpIEkgY2hlY2tlZA0KPiA+ID4+IHRoZSBsYXRlc3QgZHBkayB2ZXJzaW9u IDIwLjAyDQo+ID4gPj4gaHR0cDovL2x4ci5kcGRrLm9yZy9kcGRrL2xhdGVzdC9zb3VyY2UvZHJp dmVycy9uZXQvaTQwZS9pNDBlX3J4dHhfdg0KPiA+ID4+IGVjDQo+ID4gPj4gXw0KPiA+ID4+IGF2 eDIuYyNMNzkxDQo+ID4gPj4gQnV0IHNlZW1zIG5vIGNoYW5nZSBmb3IgdGhpcy4NCj4gPiA+Pg0K PiA+ID4+IEFueSBjb21tZW50IHBsZWFzZT8NCj4gPiA+PiBbLi4uXQ0KPiA+ID4gSSBkb24ndCBr bm93IGFib3V0IHRoZSBpNDBlIGRyaXZlciwgYnV0IEkgY2FuIGNvbmZpcm0gdGhhdCB0aGUgdmxh bg0KPiA+ID4gdGNpIGZsYWcNCj4gPiBzaG91bGQgYmUgaW4gdGhlIGZpcnN0IHNlZ21lbnQsIGFu ZCBub3QgaW4gdGhlIG5leHQgb25lcy4NCj4gPiA+DQo+ID4gPiBJIHN1Z2dlc3QgdG8gQ0MgaTQw ZSBkcml2ZXIgbWFpbnRhaW5lcnMuDQo+ID4gPg0KPiA+ID4gUmVnYXJkcywNCj4gPiA+IE9saXZp ZXINCj4gPg0KPiA+DQo+ID4gT24gb25lIGhhbmQsIGFzIE9saXZpZXIgc2FpZCB0aGF0IHZsYW4g dGNpIGZsYWcgc2hvdWxkIGJlIGluIHRoZSBmaXJzdA0KPiA+IHNlZ21lbnQsIGFuZCBvbiB0aGUg b3RoZXIgaGFuZHMsIHZsYW5fdGNpIGRvIHByb2Nlc3MgaW4NCj4gIl9yZWN2X3Jhd19wa3RzX3Zl Y19hdngyIg0KPiA+IHdoZW4gdXNlIDI1NiBpbnN0aW5jdA0KPiA+DQo+ID4gdG8gcHJvY2VzcyB0 aGUgZGVzY3JpcHRvciB3aXRoIG1idWYswqAgeW91IGNvdWxkIGNoZWNrIGhvdyB0byBwcm9jZXNz DQo+ID4gdGhlIHZsYW5fZmxhZ3Nfc2h1ZiBhbmQgYmxlbmQgaXQgaW50byB0aGUgbWJ1Zi4NCg0K