From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10043.outbound.protection.outlook.com [40.107.1.43]) by dpdk.org (Postfix) with ESMTP id 096FF11C5 for ; Mon, 28 Aug 2017 09:36:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=5AKeQagBIcxpVCvSz+RXDkBb7jJpfOZO9cN5J8z+smo=; b=Vfir82Tvbf4LvGnu151+MeUQfM8zNlOpB09WPu0SXE4RMqZcXLm0aN6fxStaAF6H3SHr76mWMe8jA+Mx7eslLPmVXMduh7ZCw8voYg2rVi1HcivFQ7k55dnsCbiRgMlWHwFbrDvVfUwf3oFAUqEaQsA9W5H4oz04MTFCwxi/6YM= Received: from AM3PR05MB307.eurprd05.prod.outlook.com (10.242.247.152) by AM3PR05MB355.eurprd05.prod.outlook.com (10.242.247.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9; Mon, 28 Aug 2017 07:36:56 +0000 Received: from AM3PR05MB307.eurprd05.prod.outlook.com ([fe80::d563:ce2f:1468:a939]) by AM3PR05MB307.eurprd05.prod.outlook.com ([fe80::d563:ce2f:1468:a939%17]) with mapi id 15.01.1385.013; Mon, 28 Aug 2017 07:36:56 +0000 From: Wisam Monther To: "Hu, Jiayu" CC: "users@dpdk.org" , Raslan Darawsheh , Shahaf Shuler Thread-Topic: Unable to merge packets using GRO feature Thread-Index: AdMaTiF+8CYSsq4aQZ+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosADMAwaA Date: Mon, 28 Aug 2017 07:36:56 +0000 Message-ID: References: <20170821091347.GA94297@dpdk15.sh.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=wisamm@mellanox.com; x-originating-ip: [195.35.85.130] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM3PR05MB355; 6:GQtq0F7UkRTRHAO5+/oOrBUFVKyGe5aQNte95DzsmQCpfAINTFrHmU8aVa2RSHRMKtCp0maF7WjmUm/ZIOlBOcO9RBIsSlldW+CP2IoaHIjKbaVJLT0VGqdYaBw1XSrlhS/6wP9OkvbFWst+DM9bNHlE4zvGt1OEIseOSAnSCMWIb1O/EO0gVvdX57Ks+tm0fK8WahLvtxMVhx8OiS2JF4GNtcZT3CB4ZwQDvnn0j7P/axqauvM3aX0otpJzpTiKylCNQhqvEOtpRAr+Ol5r5E7lIOA3HZTM2Vf+cD7+b/jHISZtp+yyhdh8Wr2fn5IO9zPLHZBSRDMfZiD7ACJI5A==; 5:JjlA7tvKaelSnI+QDmUvSou0YgGGKvt6ktmV+/9UH51Dcwsx4WPXEezu9hjzjW0FbUySM0Aux2Xy6srVpv+fmlem/Kc4tBZsjefzw61LMHRPyJlMpGnrKq4P8c08om/S8yRaC+BgMxmke/iCSZ5dVQ==; 24:YVk1xD5FKXGRVeXptL3lS6NJ7SqM6872tlMvrqRDX8ZDTXTqbj+D1UkBlBGuWQrwJdxxKO6t0gRARaNcy+6HYoT7WtrGCUwOkWwwB+xD8/w=; 7:8GnbhiM2+fGbt7uJ10Lf3SxI5jXIL+JuqtWFiFy9EbrWg6UWUKSxaoLejvBOVpxYhCFDtOFz6wz8hy4bT0o96Ygk9FQrh3DkfLwaYAOIH6T7s6ocRhf8Ow5z+jThzm0u3xQMqv7PJv9Zp1XzpssUbmkT1l3cBrFqCIHtWFrFjRe4ihTH/Eua1AnZ/cFtmqtB0C7m2C/ULW9cooJ9XMY5COjE2xSNA0dpYwt3JFq/a5k= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 73ebef57-b9a7-4a75-8c39-08d4ede78f67 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM3PR05MB355; x-ms-traffictypediagnostic: AM3PR05MB355: x-exchange-antispam-report-test: UriScan:(278428928389397)(228905959029699); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM3PR05MB355; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM3PR05MB355; x-forefront-prvs: 0413C9F1ED x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(199003)(13464003)(189002)(377454003)(24454002)(4326008)(8676002)(86362001)(54356999)(8936002)(25786009)(50986999)(5660300001)(76176999)(2906002)(345774005)(81166006)(81156014)(33656002)(74316002)(7696004)(3660700001)(101416001)(3280700002)(14454004)(55016002)(99286003)(68736007)(6916009)(54906002)(97736004)(2900100001)(6506006)(9686003)(53936002)(66066001)(478600001)(53546010)(93886005)(229853002)(305945005)(5890100001)(5250100002)(6436002)(6246003)(105586002)(6116002)(102836003)(3846002)(189998001)(110136004)(7736002)(107886003)(106356001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR05MB355; H:AM3PR05MB307.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2017 07:36:56.3676 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR05MB355 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 07:37:00 -0000 SGkgSmlheXUsDQoNCkknbSBzb3JyeSBmb3IgYm90aGVyaW5nIHlvdSwgYnV0IGNvdWxkIHlvdSBj b25mb3JtIHRoYXQgdGhlIGZlYXR1cmUgaXMgd29ya2luZyBwcm9iYWJseQ0KQmVjYXVzZSwgd2hh dCBJIGV2ZXIgIGRpZCwgSSBjb3VsZG4ndCBnZXQgdGhlIG1lcmdlZCBwYWNrZXRzLg0KDQpCUnMs DQpXaXNhbSBKYWRkbw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogV2lzYW0g TW9udGhlciANClNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjQsIDIwMTcgOToxNSBBTQ0KVG86ICdI dSwgSmlheXUnDQpDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBT aHVsZXINClN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVh dHVyZQ0KDQpIaSwgDQoNCkknbSB1c2luZyBNZWxsYW5veCBOSUNzLCBhbmQgaXQgaXMgc3VwcG9y dGluZyBwYXJzZSBwYWNrZXQgdHlwZXMuDQoNCkJlc3QgcmVnYXJkcywNCldpc2FtIEphZGRvIA0K DQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogSHUsIEppYXl1IFttYWlsdG86amlh eXUuaHVAaW50ZWwuY29tXQ0KU2VudDogVGh1cnNkYXksIEF1Z3VzdCAyNCwgMjAxNyA4OjQ3IEFN DQpUbzogV2lzYW0gTW9udGhlcg0KQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVo OyBTaGFoYWYgU2h1bGVyDQpTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNp bmcgR1JPIGZlYXR1cmUNCg0KSGksDQoNCkNhbiB5b3UgdGVsbCBtZSB3aGF0J3MgdGhlIE5JQyB0 eXBlIG9mIHRoZSBHUk8tZW5hYmxlZCBwb3J0Pw0KDQpTaW5jZSBHUk8gbGlicmFyeSB1c2VzIG1i dWYtPnBhY2tldF90eXBlIHRvIHBhcnNlIHBhY2tldCBoZWFkZXJzLCBhcHBsaWNhdGlvbnMgbmVl ZCB0byBmaWxsIHRoaXMgdmFsdWUgYmVmb3JlIGNhbGxpbmcgR1JPIHJlYXNzZW1ibHkgQVBJcy4g T3RoZXJ3aXNlLCB0aGUgR1JPIGNhbid0IHdvcmsgY29ycmVjdGx5Lg0KDQpJbiBjc3VtIGZvcndh cmRpbmcgZW5naW5lIG9mIHRlc3RwbWQsIHBhY2tldF90eXBlIGlzIGZpbGxlZCBieSBOSUMgZHJp dmVycy4gVGhlIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgd29uJ3Qgc2V0IHRoaXMgdmFsdWUuIFNv IGlmIHlvdXIgTklDIGRvZXNu4oCZdCBzdXBwb3J0IHRvIHBhcnNlIHBhY2tldCB0eXBlcywgdGhl IHZhbHVlIG9mIHBhY2tldF90eXBlIGlzIDAgYW5kIEdSTyBjYW4ndCB3b3JrIGNvcnJlY3RseS4N Cg0KQlJzLA0KSmlheXUNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBX aXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1lbGxhbm94LmNvbV0NCj4gU2VudDogVHVlc2Rh eSwgQXVndXN0IDIyLCAyMDE3IDk6MjUgUE0NCj4gVG86IEh1LCBKaWF5dSA8amlheXUuaHVAaW50 ZWwuY29tPg0KPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRA bWVsbGFub3guY29tPjsgU2hhaGFmIA0KPiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPg0K PiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUN Cj4gDQo+IFllcyBpdCBpcywNCj4gVGhlIGZyYWdtZW50ZWQgcGFja2V0cyBjb21lcyBmcm9tIHBv cnQxIC8gTklDIGIgZnJvbSBtYWNoaW5lIEEgdG8gcG9ydA0KPiAxIGluIE5JQyBBIGZvciBtYWNo aW5lIGIgU28gaXQncyByZWNlaXZlZCBvbiB0aGUgcG9ydCAnMScsIHdoaWNoIGlzIA0KPiBjb25m aWd1cmVkIGdybyBhY3RpdmUgb24gdGhpcyBwb3J0Lg0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiBX aXNhbSBKYWRkbw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSHUs IEppYXl1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBBdWd1 c3QgMjIsIDIwMTcgNDoyMSBQTQ0KPiBUbzogV2lzYW0gTW9udGhlcg0KPiBDYzogdXNlcnNAZHBk ay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gU3ViamVjdDogUkU6IFVu YWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+IA0KPiBIaSwNCj4gDQo+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBXaXNhbSBNb250aGVyIFtt YWlsdG86d2lzYW1tQG1lbGxhbm94LmNvbV0NCj4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIs IDIwMTcgNzowNyBQTQ0KPiA+IFRvOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT4NCj4g PiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3gu Y29tPjsgU2hhaGFmIA0KPiA+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gU3Vi amVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4N Cj4gPiBIZXkgSmlheXUsDQo+ID4NCj4gPiBUaGFuayB5b3UgZm9yIHlvdXIgcmVwbHkuDQo+ID4g SSB0cmllZCB3aGF0IHlvdSBzYWlkIHdpdGggdGhlIGNzdW0gYXQgZndkIG1vZGUuDQo+ID4gRXZl biBzbyB0aGUgR1JPIGRpZG4ndCB3b3JrcyBmaW5lLg0KPiA+DQo+ID4gSSBldmVuIHRlc3RlZCB3 aXRoIGEgbmV3IG1ldGhvZG9sb2d5Lg0KPiA+IFR3byBtYWNoaW5lcyB3aXRoIHR3byBkaWZmZXJl bnQgbmljIGZvciBlYWNoLg0KPiA+IFRoZSBtZXRob2RvbG9neSB0aGF0IEkgdXNlZCB0byB0ZXN0 IGl0IGlzIGRlc2NyaWJlZCBpbiB0aGUgYXR0YWNoZWQgZmlsZS4NCj4gPg0KPiA+IFdoYXQgSSBk aWQgZnJvbSBncm8gc2lkZToNCj4gPiAiIiINCj4gPiB0ZXN0cG1kPmdybyBvbiAxDQo+IA0KPiBE b2VzIHRoZSBwb3J0IG51bWJlciBvZiBOSUMgQSBpbiBtYWNoaW5lIEIgaXMgJzEnPyBXaGVuIHlv dSBlbmFibGUgR1JPIA0KPiBmb3IgcG9ydCAnMScsIFRlc3RwbWQgb25seSB0cmllcyB0byBtZXJn ZSBwYWNrZXRzIHJlY2VpdmVkIGZyb20gcG9ydCAnMScuDQo+IA0KPiBCUnMsDQo+IEppYXl1DQo+ IA0KPiA+IFRlc3RwbWQ+c2V0IGZ3ZCBjc3VtDQo+ID4gVGVzdHBtZD5zdGFydA0KPiA+ICIiIg0K PiA+IEFuZCB0aGUgcGFja2V0IHdpdGggY29ycmVjdCBkc3QgbWFjLg0KPiA+DQo+ID4gQmVzdCBy ZWdhcmRzLA0KPiA+IFdpc2FtIEphZGRvDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiBGcm9tOiBKaWF5dSBIdSBbbWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbV0NCj4gPiBTZW50 OiBNb25kYXksIEF1Z3VzdCAyMSwgMjAxNyAxMjoxNCBQTQ0KPiA+IFRvOiBXaXNhbSBNb250aGVy DQo+ID4gQ2M6IFRob21hcyBNb25qYWxvbjsgdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3No ZWg7IFNoYWhhZiBTaHVsZXINCj4gPiBTdWJqZWN0OiBSZTogVW5hYmxlIHRvIG1lcmdlIHBhY2tl dHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IEhpLA0KPiA+DQo+ID4gT24gTW9uLCBBdWcg MjEsIDIwMTcgYXQgMDc6MjU6MjNBTSArMDAwMCwgV2lzYW0gTW9udGhlciB3cm90ZToNCj4gPiA+ IEhlbGxvIEd1eXMsDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBJIGhvcGUgdGhpcyBmaW5k cyB5b3Ugd2VsbCwgSeKAmW0gdHJ5aW5nIHRvIHRlc3QgdGhlIEdSTyBmZWF0dXJlLiANCj4gPiA+ IEJ1dCBJ4oCZbSBzdHVjayB3aXRoIHRoaXMgc2NlbmFyaW8uDQo+ID4gPg0KPiA+ID4gQXMgeW91 IGtub3csIEdSTyBpcyBvbmx5IHN1cHBvcnQgVENQX0lQVjQgcGFja2V0IHVudGlsIG5vdy4NCj4g PiA+DQo+ID4gPiBTbyBJ4oCZbSB0cnlpbmcgdG8gdGVzdCB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0 eSBvZiB0aGUgZmVhdHVyZSwgYXMgZm9sbG93aW5nOg0KPiA+ID4NCj4gPiA+IFN0YXJ0IHRlc3Rw bWQ6DQo+ID4gPg0KPiA+ID4g4oCc4oCd4oCdDQo+ID4gPg0KPiA+ID4gLi94ODZfNjQtbmF0aXZl LWxpbnV4YXBwLWdjYy9idWlsZC9hcHAvdGVzdC1wbWQvdGVzdHBtZCAtbiA0ICAtdw0KPiA+ID4g MDA6MGEuMCAgLXcNCj4gPiA+IDAwOjA5LjAgLS0gIC0tYnVyc3Q9NjQgLS1tYmNhY2hlPTUxMiAt LXBvcnRtYXNrIDB4ZiAtaSAgLS10eGQ9NTEyDQo+ID4gPiAtLXJ4ZD01MTINCj4gPiA+IC0tbmIt Y29yZXM9OSAgLS1yeHE9MiAtLXR4cT0yIC0tdHhxZmxhZ3M9MA0KPiA+ID4NCj4gPiA+IOKAnOKA neKAnQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gVGhlbiBlbmFibGUgR1JPIGF0IHRoZSB0 d28gcG9ydHM6DQo+ID4gPg0KPiA+ID4g4oCc4oCd4oCdDQo+ID4gPg0KPiA+ID4gVGVzdHBtZD5n cm8gb24gMA0KPiA+ID4NCj4gPiA+IFRlc3RwbWQ+Z3JvIG9uIDENCj4gPg0KPiA+IFdoZW4gdXNl IEdSTyBpbiB0ZXN0cG1kLCB0aGVyZSBhcmUgZm9sbG93aW5nIHRoaW5ncyB0byBub3RpY2U6DQo+ ID4NCj4gPiAxLiBJbiB0ZXN0cG1kLCBHUk8gaXMgc3VwcG9ydGVkIGJ5IGNzdW0gZm9yd2FyZGlu ZyBlbmdpbmUuIA0KPiA+IFRoZXJlZm9yZSwgcGxlYXNlIHVzZSAnc2V0IGZ3ZCBjc3VtJyB0byBz d2l0Y2ggZm9yd2FyZGluZyBlbmdpbmUuDQo+ID4NCj4gPiAyLiBCeSBkZWZhdWx0LCBjc3VtIGZv cndhcmRpbmcgZW5naW5lIGNvbXB1bHNvcmlseSBjaGFuZ2VzIGV0aGVybmV0IA0KPiA+IGFkZHJl c3Nlcy4gU28gcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IE1BQyBhZGRyZXNzZXMgYXJlIGNvcnJlY3Qu DQo+ID4NCj4gPiAzLiBXaGVuIGVuYWJsZSBHUk8gZm9yIHBvcnQwLCBjc3VtIGZvcndhcmRpbmcg ZW5naW5lIHdpbGwgbWVyZ2UgDQo+ID4gcGFja2V0cyByZWNlaXZlZCBmcm9tIHBvcnQwLiBJZiB0 aGVyZSBhcmUgbm8gcGFja2V0cyBmcm9tIHBvcnQxIHRvIA0KPiA+IHBvcnQwLCB5b3UgZG9uJ3Qg bmVlZCB0byBlbmFibGUgR1JPIGZvciBwb3J0MS4NCj4gPg0KPiA+IDQuIEdSTyBsaWJyYXJ5IGRv ZXNuJ3QgcmUtY2FsY3VsYXRlIGNoZWNrc3VtcyBmb3IgbWVyZ2VkIHBhY2tldHMuIElmIA0KPiA+ IHlvdSB3YW50IG1lcmdlZCBwYWNrZXRzIGhhdmUgY29ycmVjdCBjaGVja3N1bSwgcGxlYXNlIHNl bGVjdCBIVyBJUCANCj4gPiBhbmQgSFcgVENQIGNoZWNrc3VtIGNhbGN1bGF0aW9uIGZvciB0aGUg cG9ydCB3aGljaCB0aGUgbWVyZ2VkIA0KPiA+IHBhY2tldHMgYXJlIHRyYW5zbWl0dGVkIHRvIGlu IGNzdW0gZm9yd2FyZGluZyBlbmdpbmUuDQo+ID4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtZXJnZWQg cGFja2V0cyBhcmUgbXVsdGktc2VnbWVudCBtYnVmcywgYnV0IGNzdW0gDQo+ID4gZm9yd2FyZGlu ZyBlbmdpbmUgZG9lc24ndCBzdXBwb3J0IHRvIGNhbGN1bGF0ZSBjaGVja3N1bXMgZm9yIA0KPiA+ IG11bHRpLXNlZ21lbnQgbWJ1ZnMgaW4gU1cuIFNvIHdlIG5lZWQgdG8gc2VsZWN0IEhXIGNoZWNr c3VtIG9mZmxvYWRpbmcuDQo+ID4NCj4gPiBlLmcuIElmIGRhdGEgZmxvdyBpcyAicGFja2V0cyAt PiBwb3J0MCAtPiBwb3J0MSIsIGNvbW1hbmRzIHVzZWQgaW4gdGVzdHBtZDoNCj4gPiAJZ3JvIG9u IHBvcnQwDQo+ID4gCXNldCBmd2QgY3N1bQ0KPiA+IAljc3VtIHNldCBpcCBodyBwb3J0MQ0KPiA+ IAljc3VtIHNldCB0Y3AgaHcgcG9ydDENCj4gPg0KPiA+DQo+ID4gQmVzaWRlcywgeW91IG5lZWQg dG8gbWFrZSBzdXJlIHRoYXQgeW91ciBQTUQgZHJpdmVyIGRvZXNuJ3QgdXNlIA0KPiA+IHZlY3Rv ciBUWCBmdW5jdGlvbiwgc2luY2UgdmVjdG9yIGZ1bmN0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBjaGVj a3N1bSBvZmZsb2FkaW5nLg0KPiA+DQo+ID4gPg0KPiA+ID4g4oCc4oCd4oCdDQo+ID4gPg0KPiA+ ID4NCj4gPiA+DQo+ID4gPiBBbmQgdHJ5aW5nIHRvIHNlbmQgVENQX0lQVjQgZnJhZ21lbnRlZCBw YWNrZXQg4oCccGFja2V0IHdpdGggbGVuZ3RoDQo+ID4gPiAxNTAwIGZyYWdtZW50ZWQgdG8gdGhy ZWUgcGFja2V0cyBvZiA1MDDigJ0NCj4gPiA+DQo+ID4gPiDigJzigJ3igJ0NCj4gPiA+DQo+ID4g PiBwPUV0aGVyKHNyYz1nZXRfaWZfaHdhZGRyKCdlbnMxMCcpLCBkc3Q9DQo+ID4gPiAnMjQ6OEE6 MDc6ODg6MjY6NkInKS9JUCgpL1RDUCgpDQo+ID4gPg0KPiA+ID4gcC5hZGRfcGF5bG9hZCgnRicq KDE1MDAgLSBsZW4ocCkpKQ0KPiA+ID4NCj4gPiA+IGZyYWdzPWZyYWdtZW50KHAsZnJhZ3NpemU9 NTAwKQ0KPiA+ID4NCj4gPiA+IGZvciBmcmFnbWVudCBpbiBmcmFnczoNCj4gPiA+DQo+ID4gPiAg ICAgIHNlbmRwKGZyYWdtZW50LCBpZmFjZT0nZW5zMTAnKQ0KPiA+ID4NCj4gPiA+IOKAnOKAneKA nQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gQnV0IHRoZSB0ZXN0cG1kIGZvcndhcmQgdGhl IHBhY2tldHMgYXMgaXQgaXMsIOKAnCBkb2VzbuKAmXQgZG8gYW55IG1lcmdl4oCdDQo+ID4gPg0K PiA+ID4NCj4gPiA+DQo+ID4gPiBUY3BkdW1wIGF0IHRoZSBURyBzaWRlLA0KPiA+ID4NCj4gPiA+ IFRoZSBzZW5kaW5nIGZyYWdtZXRzIHVzaW5nIGVuczEwOg0KPiA+ID4NCj4gPiA+ICN0Y3BkdW1w IOKAk0kgZW5zMTAg4oCTdnZ2ZW4NCj4gPiA+DQo+ID4gPiAxNTo0NToyOS4wODM1MTQgMjQ6OGE6 MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgZXRoZXJ0eXBlDQo+ID4gPiBJUHY0ICgw eDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgMCwgZmxh Z3MgDQo+ID4gPiBbK10sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5ndGggNTI0KQ0KPiA+ID4NCj4g PiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6ICBpcC1wcm90by0wIDUwNA0KPiA+ID4NCj4g PiA+IDE1OjQ1OjI5LjExNTI2NiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZi LCBldGhlcnR5cGUNCj4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0 dGwgNjQsIGlkIDEsIG9mZnNldCA1MDQsIA0KPiA+ID4gZmxhZ3MgWytdLCBwcm90byBPcHRpb25z ICgwKSwgbGVuZ3RoIDUyNCkNCj4gPiA+DQo+ID4gPiAgICAgMTI3LjAuMC4xID4gMTI3LjAuMC4x OiBpcC1wcm90by0wDQo+ID4gPg0KPiA+ID4gMTU6NDU6MjkuMTQ3MjU4IDI0OjhhOjA3Ojg4OjI2 OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsIGV0aGVydHlwZQ0KPiA+ID4gSVB2NCAoMHgwODAwKSwg bGVuZ3RoIDQ5MjogKHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0IDEwMDgsIA0KPiA+ID4g ZmxhZ3MgW25vbmVdLCBwcm90byBPcHRpb25zICgwKSwgbGVuZ3RoIDQ3OCkNCj4gPiA+DQo+ID4g PiAgICAgMTI3LjAuMC4xID4gMTI3LjAuMC4xOiBpcC1wcm90by0wDQo+ID4gPg0KPiA+ID4NCj4g PiA+DQo+ID4gPiAjdGNwZHVtcCAtaSBlbnM5IOKAk3Z2dmVuICAvLy8gaGVyZSB3aWxsIGJlIHJl Y2VpdmVkIHRoZSBmb3J3YXJkZWQgDQo+ID4gPiBwYWNrZXRzIGZyb20NCj4gPiA+IHRlc3RwbWQ6 DQo+ID4gPg0KPiA+ID4gMTU6NDU6MjkuMDgzOTk2IDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6 MDc6ODg6MjY6NmIsIGV0aGVydHlwZQ0KPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDUzODog KHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0IDAsIGZsYWdzIA0KPiA+ID4gWytdLCBwcm90 byBPcHRpb25zICgwKSwgbGVuZ3RoIDUyNCkNCj4gPiA+DQo+ID4gPiAgICAgMTI3LjAuMC4xID4g MTI3LjAuMC4xOiAgaXAtcHJvdG8tMCA1MDQNCj4gPiA+DQo+ID4gPiAxNTo0NToyOS4xMTU0MjUg MjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgZXRoZXJ0eXBlDQo+ID4gPiBJ UHY0ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQg NTA0LCANCj4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ ID4gPg0KPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ID4N Cj4gPiA+IDE1OjQ1OjI5LjE0NzQ5MiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2 OjZiLCBldGhlcnR5cGUNCj4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA0OTI6ICh0b3MgMHgw LCB0dGwgNjQsIGlkIDEsIG9mZnNldCAxMDA4LCANCj4gPiA+IGZsYWdzIFtub25lXSwgcHJvdG8g T3B0aW9ucyAoMCksIGxlbmd0aCA0NzgpDQo+ID4gPg0KPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEy Ny4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ ID4gPiBBbSBJIGRvaW5nIHNvbWV0aGluZyB3cm9uZz8hIE9yIGl0IGlzIGEgYnVnLg0KPiA+ID4N Cj4gPiA+IMOoIEFzIHlvdSBzZWUgdGhlIHRjcGR1bXAgc2hvd3MgdGhlIG9mZnNldCBvZiBlYWNo IGZyYWdtZW50LCBhbmQgDQo+ID4gPiB0ZXN0cG1kIHByaW50cyBMNF9GUkFHLCBzbyB0aGUgYm90 aCBhcmUgcmVjb2duaXppbmcgdGhhdCB0aGlzIGlzIGENCj4gPiBmcmFnbWVudGVkIHBhY2tldC4N Cj4gPg0KPiA+IEdSTyBsaWJyYXJ5IG1lcmdlcyBUU09lZC9HU09lZCBwYWNrZXRzLCB3aG9zZSBJ UCBJRHMgYW5kIFRDUA0KPiBzZXF1ZW5jZXMNCj4gPiBhcmUgYm90aCBjb25zZWN1dGl2ZS4gSWYg aW5wdXQgcGFja2V0cyBoYXZlIHNhbWUgSVAgSURzLCBubyBwYWNrZXRzIA0KPiA+IHdpbGwgYmUg bWVyZ2VkLg0KPiA+DQo+ID4gQlRXLCB5b3UgY2FuIHVzZSBpcGVyZiB0byB0ZXN0IEdSTyBmZWF0 dXJlLg0KPiA+DQo+ID4gQmVzdCBSZWdhcmRzLA0KPiA+IEppYXl1DQo+ID4NCj4gPiA+DQo+ID4g Pg0KPiA+ID4NCj4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+DQo+ID4gPiBXaXNhbSBKYWRkbw0K PiA+ID4NCj4gPiA+DQo+ID4gPg0K