From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 4561EFFA for ; Mon, 28 Aug 2017 10:10:46 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Aug 2017 01:10:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,440,1498546800"; d="scan'208";a="1008288228" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga003.jf.intel.com with ESMTP; 28 Aug 2017 01:10:45 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 28 Aug 2017 01:10:45 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 28 Aug 2017 01:10:44 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Mon, 28 Aug 2017 16:10:42 +0800 From: "Hu, Jiayu" To: Wisam Monther CC: "users@dpdk.org" , Raslan Darawsheh , Shahaf Shuler , "Yao, Lei A" Thread-Topic: Unable to merge packets using GRO feature Thread-Index: AdMaTiF+8CYSsq4aQZ+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosADMAwaAAAApOLA= Date: Mon, 28 Aug 2017 08:10:41 +0000 Message-ID: References: <20170821091347.GA94297@dpdk15.sh.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.0.0.116 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjYyMTc1NGMtZGU2MC00MzhmLWJmNTktODlkMWViY2UwMmIzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Imw3djFUY2F0UXJWSG9Gc2ZWRXljT3VqeXZJRHJ3RHZUUzkwMTVteFVXSW89In0= x-ctpclassification: CTP_IC 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-users] Unable to merge packets using GRO feature X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Aug 2017 08:10:47 -0000 SGksDQoNClNvcnJ5IHRvIHJlcGx5IHNvIGxhdGUuDQoNCldoZW4gdGVzdCB0aGUgR1JPIGZlYXR1 cmUsIHdlIHVzZSB0aGUgZm9sbG93aW5nIGV4cGVyaW1lbnRhbCBzZXR1cDoNCg0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpNYWNoaW5lIEE6DQoxKSB0d28gcGh5c2ljYWwgRlZMIHBvcnRzIGFyZSBwaHlzaWNhbGx5IGxp bmtlZC4gT25lIGlzIGFzc2lnbmVkIHRvIERQREsgKGNhbGxlZCBwMCkNCmFuZCBhbm90aGVyIGlz IHRvIGtlcm5lbCAoY2FsbGVkIHAxKS4NCjIpIExhdW5jaCB0ZXN0cG1kIHdpdGggYSB2aG9zdCBw b3J0IChjYWxsZWQgdnAwKSBhbmQgcDAuIE9uZSB0aGluZyB0byBub3RpY2U6DQpkb24ndCB1c2Ug dmVjdG9yIFRYIGZ1bmN0aW9uIGZvciBwMCwgc2luY2Ugd2Ugd2lsbCBlbmFibGUgY3N1bSBvZmZs b2FkaW5nIGZvciBwMC4NCjMpIExhdW5jaCBhIFZNIHdpdGggYSB2aXJ0aW8tbmV0IHBvcnQgKGNh bGxlZCB2cDEpIGFuZCAibXJnX3J4YnVmPW9uIi4NCg0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpQMTogZW5hYmxlIFRTTyBhbmQgcnVuIGlwZXJm IGNsaWVudA0KdnAxOiBkaXNhYmxlIGtlcm5lbCBHUk8gYW5kIHJ1biBpcGVyZiBzZXJ2ZXINClRl c3RwbWQ6IGNvbW1lbnQgb3V0IHR3byAiZXRoZXJfYWRkcl9jb3B5KCkiIGluIGNzdW1vbmx5LmMN ClRlc3RwbWQgY29tbWFuZHM6DQo+IHNldCBmd2QgY3N1bQ0KPmNzdW0gc2V0IGlwIGh3IHAwDQo+ Y3N1bSBzZXQgdGNwIGh3IHAwDQo+Y3N1bSBzZXQgdGNwIGh3IHZwMA0KPmdybyBvbiBwMA0KPnN0 YXJ0DQoNCklmIHRoaXMgc2V0dXAgc3RpbGwgZG9lc24ndCB3b3JrIGZvciB5b3UsIEkgY2FuIHNl bmQgeW91IG91ciBkZXRhaWxlZCB0ZXN0IHN0ZXBzLiBBZGRpdGlvbmFsbHksDQpJIHdpbGwgZG91 YmxlLWNoZWNrIGlmIHRoZSBHUk8gZmVhdHVyZSB3b3JrcyBjb3JyZWN0bHkgaW4gYSBzaW1pbGFy IGV4cGVyaW1lbnRhbCB0b3BvbG9neQ0KeW91IHVzZWQuIElmIHlvdSBtZWV0IGFueSBpc3N1ZXMs IHBsZWFzZSBsZXQgbWUga25vdy4NCg0KVGhhbmtzLA0KSmlheXUNCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1lbGxh bm94LmNvbV0NCj4gU2VudDogTW9uZGF5LCBBdWd1c3QgMjgsIDIwMTcgMzozNyBQTQ0KPiBUbzog SHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+IENjOiB1c2Vyc0BkcGRrLm9yZzsgUmFz bGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYNCj4gU2h1bGVyIDxz aGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNr ZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+IA0KPiBIaSBKaWF5dSwNCj4gDQo+IEknbSBzb3JyeSBm b3IgYm90aGVyaW5nIHlvdSwgYnV0IGNvdWxkIHlvdSBjb25mb3JtIHRoYXQgdGhlIGZlYXR1cmUg aXMNCj4gd29ya2luZyBwcm9iYWJseQ0KPiBCZWNhdXNlLCB3aGF0IEkgZXZlciAgZGlkLCBJIGNv dWxkbid0IGdldCB0aGUgbWVyZ2VkIHBhY2tldHMuDQo+IA0KPiBCUnMsDQo+IFdpc2FtIEphZGRv DQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXaXNhbSBNb250aGVy DQo+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjQsIDIwMTcgOToxNSBBTQ0KPiBUbzogJ0h1LCBK aWF5dScNCj4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1 bGVyDQo+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVh dHVyZQ0KPiANCj4gSGksDQo+IA0KPiBJJ20gdXNpbmcgTWVsbGFub3ggTklDcywgYW5kIGl0IGlz IHN1cHBvcnRpbmcgcGFyc2UgcGFja2V0IHR5cGVzLg0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiBX aXNhbSBKYWRkbw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSHUs IEppYXl1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgQXVn dXN0IDI0LCAyMDE3IDg6NDcgQU0NCj4gVG86IFdpc2FtIE1vbnRoZXINCj4gQ2M6IHVzZXJzQGRw ZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+IFN1YmplY3Q6IFJFOiBV bmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiANCj4gSGksDQo+IA0K PiBDYW4geW91IHRlbGwgbWUgd2hhdCdzIHRoZSBOSUMgdHlwZSBvZiB0aGUgR1JPLWVuYWJsZWQg cG9ydD8NCj4gDQo+IFNpbmNlIEdSTyBsaWJyYXJ5IHVzZXMgbWJ1Zi0+cGFja2V0X3R5cGUgdG8g cGFyc2UgcGFja2V0IGhlYWRlcnMsDQo+IGFwcGxpY2F0aW9ucyBuZWVkIHRvIGZpbGwgdGhpcyB2 YWx1ZSBiZWZvcmUgY2FsbGluZyBHUk8gcmVhc3NlbWJseSBBUElzLg0KPiBPdGhlcndpc2UsIHRo ZSBHUk8gY2FuJ3Qgd29yayBjb3JyZWN0bHkuDQo+IA0KPiBJbiBjc3VtIGZvcndhcmRpbmcgZW5n aW5lIG9mIHRlc3RwbWQsIHBhY2tldF90eXBlIGlzIGZpbGxlZCBieSBOSUMgZHJpdmVycy4NCj4g VGhlIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgd29uJ3Qgc2V0IHRoaXMgdmFsdWUuIFNvIGlmIHlv dXIgTklDIGRvZXNu4oCZdA0KPiBzdXBwb3J0IHRvIHBhcnNlIHBhY2tldCB0eXBlcywgdGhlIHZh bHVlIG9mIHBhY2tldF90eXBlIGlzIDAgYW5kIEdSTyBjYW4ndA0KPiB3b3JrIGNvcnJlY3RseS4N Cj4gDQo+IEJScywNCj4gSmlheXUNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1lbGxhbm94LmNvbV0NCj4g PiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIsIDIwMTcgOToyNSBQTQ0KPiA+IFRvOiBIdSwgSmlh eXUgPGppYXl1Lmh1QGludGVsLmNvbT4NCj4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBE YXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsgU2hhaGFmDQo+ID4gU2h1bGVyIDxzaGFo YWZzQG1lbGxhbm94LmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tl dHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IFllcyBpdCBpcywNCj4gPiBUaGUgZnJhZ21l bnRlZCBwYWNrZXRzIGNvbWVzIGZyb20gcG9ydDEgLyBOSUMgYiBmcm9tIG1hY2hpbmUgQSB0byBw b3J0DQo+ID4gMSBpbiBOSUMgQSBmb3IgbWFjaGluZSBiIFNvIGl0J3MgcmVjZWl2ZWQgb24gdGhl IHBvcnQgJzEnLCB3aGljaCBpcw0KPiA+IGNvbmZpZ3VyZWQgZ3JvIGFjdGl2ZSBvbiB0aGlzIHBv cnQuDQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gV2lzYW0gSmFkZG8NCj4gPg0KPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSHUsIEppYXl1IFttYWlsdG86amlh eXUuaHVAaW50ZWwuY29tXQ0KPiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyMiwgMjAxNyA0OjIx IFBNDQo+ID4gVG86IFdpc2FtIE1vbnRoZXINCj4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xh biBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1l cmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IEhpLA0KPiA+DQo+ID4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV2lzYW0gTW9udGhlciBbbWFp bHRvOndpc2FtbUBtZWxsYW5veC5jb21dDQo+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIs IDIwMTcgNzowNyBQTQ0KPiA+ID4gVG86IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPg0K PiA+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoIDxyYXNsYW5kQG1lbGxh bm94LmNvbT47DQo+IFNoYWhhZg0KPiA+ID4gU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4N Cj4gPiA+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVh dHVyZQ0KPiA+ID4NCj4gPiA+IEhleSBKaWF5dSwNCj4gPiA+DQo+ID4gPiBUaGFuayB5b3UgZm9y IHlvdXIgcmVwbHkuDQo+ID4gPiBJIHRyaWVkIHdoYXQgeW91IHNhaWQgd2l0aCB0aGUgY3N1bSBh dCBmd2QgbW9kZS4NCj4gPiA+IEV2ZW4gc28gdGhlIEdSTyBkaWRuJ3Qgd29ya3MgZmluZS4NCj4g PiA+DQo+ID4gPiBJIGV2ZW4gdGVzdGVkIHdpdGggYSBuZXcgbWV0aG9kb2xvZ3kuDQo+ID4gPiBU d28gbWFjaGluZXMgd2l0aCB0d28gZGlmZmVyZW50IG5pYyBmb3IgZWFjaC4NCj4gPiA+IFRoZSBt ZXRob2RvbG9neSB0aGF0IEkgdXNlZCB0byB0ZXN0IGl0IGlzIGRlc2NyaWJlZCBpbiB0aGUgYXR0 YWNoZWQgZmlsZS4NCj4gPiA+DQo+ID4gPiBXaGF0IEkgZGlkIGZyb20gZ3JvIHNpZGU6DQo+ID4g PiAiIiINCj4gPiA+IHRlc3RwbWQ+Z3JvIG9uIDENCj4gPg0KPiA+IERvZXMgdGhlIHBvcnQgbnVt YmVyIG9mIE5JQyBBIGluIG1hY2hpbmUgQiBpcyAnMSc/IFdoZW4geW91IGVuYWJsZSBHUk8NCj4g PiBmb3IgcG9ydCAnMScsIFRlc3RwbWQgb25seSB0cmllcyB0byBtZXJnZSBwYWNrZXRzIHJlY2Vp dmVkIGZyb20gcG9ydCAnMScuDQo+ID4NCj4gPiBCUnMsDQo+ID4gSmlheXUNCj4gPg0KPiA+ID4g VGVzdHBtZD5zZXQgZndkIGNzdW0NCj4gPiA+IFRlc3RwbWQ+c3RhcnQNCj4gPiA+ICIiIg0KPiA+ ID4gQW5kIHRoZSBwYWNrZXQgd2l0aCBjb3JyZWN0IGRzdCBtYWMuDQo+ID4gPg0KPiA+ID4gQmVz dCByZWdhcmRzLA0KPiA+ID4gV2lzYW0gSmFkZG8NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gPiBGcm9tOiBKaWF5dSBIdSBbbWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbV0N Cj4gPiA+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDIxLCAyMDE3IDEyOjE0IFBNDQo+ID4gPiBUbzog V2lzYW0gTW9udGhlcg0KPiA+ID4gQ2M6IFRob21hcyBNb25qYWxvbjsgdXNlcnNAZHBkay5vcmc7 IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiA+IFN1YmplY3Q6IFJlOiBVbmFi bGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4NCj4gPiA+IEhpLA0K PiA+ID4NCj4gPiA+IE9uIE1vbiwgQXVnIDIxLCAyMDE3IGF0IDA3OjI1OjIzQU0gKzAwMDAsIFdp c2FtIE1vbnRoZXIgd3JvdGU6DQo+ID4gPiA+IEhlbGxvIEd1eXMsDQo+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+DQo+ID4gPiA+IEkgaG9wZSB0aGlzIGZpbmRzIHlvdSB3ZWxsLCBJ4oCZbSB0cnlp bmcgdG8gdGVzdCB0aGUgR1JPIGZlYXR1cmUuDQo+ID4gPiA+IEJ1dCBJ4oCZbSBzdHVjayB3aXRo IHRoaXMgc2NlbmFyaW8uDQo+ID4gPiA+DQo+ID4gPiA+IEFzIHlvdSBrbm93LCBHUk8gaXMgb25s eSBzdXBwb3J0IFRDUF9JUFY0IHBhY2tldCB1bnRpbCBub3cuDQo+ID4gPiA+DQo+ID4gPiA+IFNv IEnigJltIHRyeWluZyB0byB0ZXN0IHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBmZWF0 dXJlLCBhcyBmb2xsb3dpbmc6DQo+ID4gPiA+DQo+ID4gPiA+IFN0YXJ0IHRlc3RwbWQ6DQo+ID4g PiA+DQo+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPg0KPiA+ID4gPiAuL3g4Nl82NC1uYXRpdmUt bGludXhhcHAtZ2NjL2J1aWxkL2FwcC90ZXN0LXBtZC90ZXN0cG1kIC1uIDQgIC13DQo+ID4gPiA+ IDAwOjBhLjAgIC13DQo+ID4gPiA+IDAwOjA5LjAgLS0gIC0tYnVyc3Q9NjQgLS1tYmNhY2hlPTUx MiAtLXBvcnRtYXNrIDB4ZiAtaSAgLS10eGQ9NTEyDQo+ID4gPiA+IC0tcnhkPTUxMg0KPiA+ID4g PiAtLW5iLWNvcmVzPTkgIC0tcnhxPTIgLS10eHE9MiAtLXR4cWZsYWdzPTANCj4gPiA+ID4NCj4g PiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFRoZW4g ZW5hYmxlIEdSTyBhdCB0aGUgdHdvIHBvcnRzOg0KPiA+ID4gPg0KPiA+ID4gPiDigJzigJ3igJ0N Cj4gPiA+ID4NCj4gPiA+ID4gVGVzdHBtZD5ncm8gb24gMA0KPiA+ID4gPg0KPiA+ID4gPiBUZXN0 cG1kPmdybyBvbiAxDQo+ID4gPg0KPiA+ID4gV2hlbiB1c2UgR1JPIGluIHRlc3RwbWQsIHRoZXJl IGFyZSBmb2xsb3dpbmcgdGhpbmdzIHRvIG5vdGljZToNCj4gPiA+DQo+ID4gPiAxLiBJbiB0ZXN0 cG1kLCBHUk8gaXMgc3VwcG9ydGVkIGJ5IGNzdW0gZm9yd2FyZGluZyBlbmdpbmUuDQo+ID4gPiBU aGVyZWZvcmUsIHBsZWFzZSB1c2UgJ3NldCBmd2QgY3N1bScgdG8gc3dpdGNoIGZvcndhcmRpbmcg ZW5naW5lLg0KPiA+ID4NCj4gPiA+IDIuIEJ5IGRlZmF1bHQsIGNzdW0gZm9yd2FyZGluZyBlbmdp bmUgY29tcHVsc29yaWx5IGNoYW5nZXMgZXRoZXJuZXQNCj4gPiA+IGFkZHJlc3Nlcy4gU28gcGxl YXNlIG1ha2Ugc3VyZSB0aGF0IE1BQyBhZGRyZXNzZXMgYXJlIGNvcnJlY3QuDQo+ID4gPg0KPiA+ ID4gMy4gV2hlbiBlbmFibGUgR1JPIGZvciBwb3J0MCwgY3N1bSBmb3J3YXJkaW5nIGVuZ2luZSB3 aWxsIG1lcmdlDQo+ID4gPiBwYWNrZXRzIHJlY2VpdmVkIGZyb20gcG9ydDAuIElmIHRoZXJlIGFy ZSBubyBwYWNrZXRzIGZyb20gcG9ydDEgdG8NCj4gPiA+IHBvcnQwLCB5b3UgZG9uJ3QgbmVlZCB0 byBlbmFibGUgR1JPIGZvciBwb3J0MS4NCj4gPiA+DQo+ID4gPiA0LiBHUk8gbGlicmFyeSBkb2Vz bid0IHJlLWNhbGN1bGF0ZSBjaGVja3N1bXMgZm9yIG1lcmdlZCBwYWNrZXRzLiBJZg0KPiA+ID4g eW91IHdhbnQgbWVyZ2VkIHBhY2tldHMgaGF2ZSBjb3JyZWN0IGNoZWNrc3VtLCBwbGVhc2Ugc2Vs ZWN0IEhXIElQDQo+ID4gPiBhbmQgSFcgVENQIGNoZWNrc3VtIGNhbGN1bGF0aW9uIGZvciB0aGUg cG9ydCB3aGljaCB0aGUgbWVyZ2VkDQo+ID4gPiBwYWNrZXRzIGFyZSB0cmFuc21pdHRlZCB0byBp biBjc3VtIGZvcndhcmRpbmcgZW5naW5lLg0KPiA+ID4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtZXJn ZWQgcGFja2V0cyBhcmUgbXVsdGktc2VnbWVudCBtYnVmcywgYnV0IGNzdW0NCj4gPiA+IGZvcndh cmRpbmcgZW5naW5lIGRvZXNuJ3Qgc3VwcG9ydCB0byBjYWxjdWxhdGUgY2hlY2tzdW1zIGZvcg0K PiA+ID4gbXVsdGktc2VnbWVudCBtYnVmcyBpbiBTVy4gU28gd2UgbmVlZCB0byBzZWxlY3QgSFcg Y2hlY2tzdW0NCj4gb2ZmbG9hZGluZy4NCj4gPiA+DQo+ID4gPiBlLmcuIElmIGRhdGEgZmxvdyBp cyAicGFja2V0cyAtPiBwb3J0MCAtPiBwb3J0MSIsIGNvbW1hbmRzIHVzZWQgaW4NCj4gdGVzdHBt ZDoNCj4gPiA+IAlncm8gb24gcG9ydDANCj4gPiA+IAlzZXQgZndkIGNzdW0NCj4gPiA+IAljc3Vt IHNldCBpcCBodyBwb3J0MQ0KPiA+ID4gCWNzdW0gc2V0IHRjcCBodyBwb3J0MQ0KPiA+ID4NCj4g PiA+DQo+ID4gPiBCZXNpZGVzLCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB5b3VyIFBNRCBk cml2ZXIgZG9lc24ndCB1c2UNCj4gPiA+IHZlY3RvciBUWCBmdW5jdGlvbiwgc2luY2UgdmVjdG9y IGZ1bmN0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBjaGVja3N1bQ0KPiBvZmZsb2FkaW5nLg0KPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ ID4gPiA+IEFuZCB0cnlpbmcgdG8gc2VuZCBUQ1BfSVBWNCBmcmFnbWVudGVkIHBhY2tldCDigJxw YWNrZXQgd2l0aCBsZW5ndGgNCj4gPiA+ID4gMTUwMCBmcmFnbWVudGVkIHRvIHRocmVlIHBhY2tl dHMgb2YgNTAw4oCdDQo+ID4gPiA+DQo+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPg0KPiA+ID4g PiBwPUV0aGVyKHNyYz1nZXRfaWZfaHdhZGRyKCdlbnMxMCcpLCBkc3Q9DQo+ID4gPiA+ICcyNDo4 QTowNzo4ODoyNjo2QicpL0lQKCkvVENQKCkNCj4gPiA+ID4NCj4gPiA+ID4gcC5hZGRfcGF5bG9h ZCgnRicqKDE1MDAgLSBsZW4ocCkpKQ0KPiA+ID4gPg0KPiA+ID4gPiBmcmFncz1mcmFnbWVudChw LGZyYWdzaXplPTUwMCkNCj4gPiA+ID4NCj4gPiA+ID4gZm9yIGZyYWdtZW50IGluIGZyYWdzOg0K PiA+ID4gPg0KPiA+ID4gPiAgICAgIHNlbmRwKGZyYWdtZW50LCBpZmFjZT0nZW5zMTAnKQ0KPiA+ ID4gPg0KPiA+ID4gPiDigJzigJ3igJ0NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ ID4gQnV0IHRoZSB0ZXN0cG1kIGZvcndhcmQgdGhlIHBhY2tldHMgYXMgaXQgaXMsIOKAnCBkb2Vz buKAmXQgZG8gYW55IG1lcmdl4oCdDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ IFRjcGR1bXAgYXQgdGhlIFRHIHNpZGUsDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBzZW5kaW5nIGZy YWdtZXRzIHVzaW5nIGVuczEwOg0KPiA+ID4gPg0KPiA+ID4gPiAjdGNwZHVtcCDigJNJIGVuczEw IOKAk3Z2dmVuDQo+ID4gPiA+DQo+ID4gPiA+IDE1OjQ1OjI5LjA4MzUxNCAyNDo4YTowNzo4ODoy Njo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCBldGhlcnR5cGUNCj4gPiA+ID4gSVB2NCAoMHgwODAw KSwgbGVuZ3RoIDUzODogKHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0IDAsIGZsYWdzDQo+ ID4gPiA+IFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+DQo+ID4g PiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6ICBpcC1wcm90by0wIDUwNA0KPiA+ID4gPg0K PiA+ID4gPiAxNTo0NToyOS4xMTUyNjYgMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoy Njo2YiwgZXRoZXJ0eXBlDQo+ID4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3Mg MHgwLCB0dGwgNjQsIGlkIDEsIG9mZnNldCA1MDQsDQo+ID4gPiA+IGZsYWdzIFsrXSwgcHJvdG8g T3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAxMjcuMC4wLjEg PiAxMjcuMC4wLjE6IGlwLXByb3RvLTANCj4gPiA+ID4NCj4gPiA+ID4gMTU6NDU6MjkuMTQ3MjU4 IDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsIGV0aGVydHlwZQ0KPiA+ID4g PiBJUHY0ICgweDA4MDApLCBsZW5ndGggNDkyOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZz ZXQgMTAwOCwNCj4gPiA+ID4gZmxhZ3MgW25vbmVdLCBwcm90byBPcHRpb25zICgwKSwgbGVuZ3Ro IDQ3OCkNCj4gPiA+ID4NCj4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogaXAtcHJv dG8tMA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAjdGNwZHVtcCAtaSBlbnM5 IOKAk3Z2dmVuICAvLy8gaGVyZSB3aWxsIGJlIHJlY2VpdmVkIHRoZSBmb3J3YXJkZWQNCj4gPiA+ ID4gcGFja2V0cyBmcm9tDQo+ID4gPiA+IHRlc3RwbWQ6DQo+ID4gPiA+DQo+ID4gPiA+IDE1OjQ1 OjI5LjA4Mzk5NiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCBldGhlcnR5 cGUNCj4gPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDUzODogKHRvcyAweDAsIHR0bCA2NCwg aWQgMSwgb2Zmc2V0IDAsIGZsYWdzDQo+ID4gPiA+IFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxl bmd0aCA1MjQpDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6ICBp cC1wcm90by0wIDUwNA0KPiA+ID4gPg0KPiA+ID4gPiAxNTo0NToyOS4xMTU0MjUgMjQ6OGE6MDc6 ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgZXRoZXJ0eXBlDQo+ID4gPiA+IElQdjQgKDB4 MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDEsIG9mZnNldCA1MDQsDQo+ ID4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+ DQo+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6IGlwLXByb3RvLTANCj4gPiA+ID4N Cj4gPiA+ID4gMTU6NDU6MjkuMTQ3NDkyIDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6 MjY6NmIsIGV0aGVydHlwZQ0KPiA+ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNDkyOiAodG9z IDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgMTAwOCwNCj4gPiA+ID4gZmxhZ3MgW25vbmVdLCBw cm90byBPcHRpb25zICgwKSwgbGVuZ3RoIDQ3OCkNCj4gPiA+ID4NCj4gPiA+ID4gICAgIDEyNy4w LjAuMSA+IDEyNy4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBBbSBJIGRvaW5nIHNvbWV0aGluZyB3cm9uZz8hIE9y IGl0IGlzIGEgYnVnLg0KPiA+ID4gPg0KPiA+ID4gPiDDqCBBcyB5b3Ugc2VlIHRoZSB0Y3BkdW1w IHNob3dzIHRoZSBvZmZzZXQgb2YgZWFjaCBmcmFnbWVudCwgYW5kDQo+ID4gPiA+IHRlc3RwbWQg cHJpbnRzIEw0X0ZSQUcsIHNvIHRoZSBib3RoIGFyZSByZWNvZ25pemluZyB0aGF0IHRoaXMgaXMg YQ0KPiA+ID4gZnJhZ21lbnRlZCBwYWNrZXQuDQo+ID4gPg0KPiA+ID4gR1JPIGxpYnJhcnkgbWVy Z2VzIFRTT2VkL0dTT2VkIHBhY2tldHMsIHdob3NlIElQIElEcyBhbmQgVENQDQo+ID4gc2VxdWVu Y2VzDQo+ID4gPiBhcmUgYm90aCBjb25zZWN1dGl2ZS4gSWYgaW5wdXQgcGFja2V0cyBoYXZlIHNh bWUgSVAgSURzLCBubyBwYWNrZXRzDQo+ID4gPiB3aWxsIGJlIG1lcmdlZC4NCj4gPiA+DQo+ID4g PiBCVFcsIHlvdSBjYW4gdXNlIGlwZXJmIHRvIHRlc3QgR1JPIGZlYXR1cmUuDQo+ID4gPg0KPiA+ ID4gQmVzdCBSZWdhcmRzLA0KPiA+ID4gSmlheXUNCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ ID4gPiA+DQo+ID4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+ID4NCj4gPiA+ID4gV2lzYW0gSmFk ZG8NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCg==