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=-0.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 8F6B7C43331 for ; Mon, 11 Nov 2019 13:32:42 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id E4E2321925 for ; Mon, 11 Nov 2019 13:32:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="Zn7UkXZF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E4E2321925 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mellanox.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 CBEF7B62; Mon, 11 Nov 2019 14:32:40 +0100 (CET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70048.outbound.protection.outlook.com [40.107.7.48]) by dpdk.org (Postfix) with ESMTP id EAACAA3 for ; Mon, 11 Nov 2019 14:32:39 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l+al/Ky/eK2KcwORPnlLAXdzwT0cbV29crvL7DD5moPpgh+3wdbiZCnehAb30txBc2b747ZbljPp97D9qVj5nqAx84E7frSHe3cxWuLlnBICQ8ao8NoohgNj25dsznhz3OPPS2TbWf/cHfK8tsxNikf6mB+oo5Cuz8VJvuwuna+wg3E2yCynSHSVGVcUmtlt9UeInRqu03zr66IiqYiHlcouXltDHwNNYujhLiXuws3Q3x0NaygD2bTxpXCQ3Swwwxppe2c0dvphmchUeIud8w/koRW9P4ze/OU3BjN1IdDeAlHBmibDwjf4xSyxE10dSNYIcCCjkMXxd4HE/O9otg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h+BhGcf4uSQqB017HabHx4KaFfeT3V2DqR1hid5jXr0=; b=J4DB+IG2bQPBEvgnUnOL2yB+arNo2u+tqSKEC/3Y6zD7e0DsJJl2XYZC09yLSpNgQgo9LX0XzL8PEUEEcIod6GCAdEMDWuwvJX6fOPj1IIli990OfhdqHnmfihqan/7tj9It7b8+ZWNMHmjPeEIJvk3dRN9amlujuFGD7xkoxWXOXE7k92N1phO7ghZEy3s8LcP+XTSEDwVnhGidfhSjOCb2DGqnK3nb17pJlie8yARVuwlRJhnpzDO1QbChSD9+Ncjya+iMIKirGhY7rNsjYbLcZAkBu2wwmYM24Nt0OSB94T1StjNQ3yM/wTMBevSSqeMneFbnBf6Ryecf69N1hQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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:X-MS-Exchange-SenderADCheck; bh=h+BhGcf4uSQqB017HabHx4KaFfeT3V2DqR1hid5jXr0=; b=Zn7UkXZFmVubF7eUSNGAaguRMDQS8Zy7rpCjWqGagjfSeRmnljf1m0siDnh+JRq/NO4dPTxoXBaGtZ1tiqjekk9n6I3gDfb5csUQvNu7jWVgXbdqqtYC2SUcGGn5okXM9YIv+GyQRf8bTlbYapVQPNyk61LFXzxxpOg3TWMpX7s= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.39.139) by AM0PR0502MB4084.eurprd05.prod.outlook.com (52.133.33.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.20; Mon, 11 Nov 2019 13:32:37 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::fd7a:e5a8:deec:c1b0]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::fd7a:e5a8:deec:c1b0%7]) with mapi id 15.20.2430.027; Mon, 11 Nov 2019 13:32:37 +0000 From: Matan Azrad To: Ferruh Yigit , Dekel Peled , "john.mcnamara@intel.com" , "marko.kovacevic@intel.com" , "nhorman@tuxdriver.com" , "ajit.khaparde@broadcom.com" , "somnath.kotur@broadcom.com" , "anatoly.burakov@intel.com" , "xuanziyang2@huawei.com" , "cloud.wangxiaoyun@huawei.com" , "zhouguoyang@huawei.com" , "wenzhuo.lu@intel.com" , "konstantin.ananyev@intel.com" , Shahaf Shuler , Slava Ovsiienko , "rmody@marvell.com" , "shshaikh@marvell.com" , "maxime.coquelin@redhat.com" , "tiwei.bie@intel.com" , "zhihong.wang@intel.com" , "yongwang@vmware.com" , Thomas Monjalon , "arybchenko@solarflare.com" , "jingjing.wu@intel.com" , "bernard.iremonger@intel.com" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v4 1/3] ethdev: support API to set max LRO packet size Thread-Index: AQHVlWf9/5CSpdqhFEGqV2KGBv1gU6eAJYGAgACtI9CAAC3BgIAACULQgAAdZ4CAAAMNMIAAEaUAgAHs+zCAAq77AIAAAmqggAAQK4CAAA51sA== Date: Mon, 11 Nov 2019 13:32:36 +0000 Message-ID: References: <4c64b7941e1e9416ae7946cb44d50a01888d70c4.1573129825.git.dekelp@mellanox.com> <0523c7d7-bc97-7e30-c024-e578f9548797@intel.com> <0a1708e5-70ba-16f8-29b0-bef8d4f20f80@intel.com> <60dc4ef1-7e9a-5073-c534-e3b7a42a9abf@intel.com> <5596d453-4343-e702-9cb1-d70ab06dcfff@intel.com> In-Reply-To: <5596d453-4343-e702-9cb1-d70ab06dcfff@intel.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 534eea9d-8363-4306-bd15-08d766ab9df3 x-ms-traffictypediagnostic: AM0PR0502MB4084:|AM0PR0502MB4084: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0218A015FA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(376002)(366004)(396003)(136003)(39860400002)(199004)(189003)(51444003)(51234002)(99286004)(6506007)(30864003)(7696005)(53546011)(76176011)(478600001)(6436002)(8676002)(66066001)(33656002)(7416002)(5660300002)(6116002)(3846002)(25786009)(486006)(476003)(446003)(11346002)(52536014)(8936002)(2906002)(74316002)(186003)(26005)(102836004)(229853002)(2201001)(66946007)(110136005)(76116006)(66446008)(81166006)(81156014)(4326008)(66476007)(64756008)(316002)(66556008)(71190400001)(86362001)(14454004)(71200400001)(6246003)(305945005)(2501003)(14444005)(256004)(7736002)(9686003)(55016002)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB4084; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ow2VHYy9heSS2djXvULE8PXqjh50ISTLPnAsbrD9osTp0XcMturZFxwRXggFYXJFrQNome3WMHCK1WsJGhvQACeSb6I8xSXUD8sVXntUpBzZk5u4ndBk4scDqzh00SkEpZzWrWh847vJgO5iSpV9NtSAz0hV1aWXh4jTmYNtGt5r+t8xjCyrC793+x5nwGdQ7XiLWS93js2hvn33TM/l0nL7r6S3zDkioiLXuW17I4JWYn5HDy5EFUEGSD/TQC2OvLjoORqRmochpQbqX0VVJFLYj0JqLEQx9/KtDmasQHVQCGj/ufHYHOjLA1qzQbTjb7AEvOT5EDOuIrTXk7wHmmsM48CI/nTy97qd5Yavj/Wd85WZbuG0D+1z4gAz2BohBd3mx3mKxwS3q+wjkSz0KuFbLcBloy5zwsSYZRce3GYo5899jH3H2ES3b9YJCeDQ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 534eea9d-8363-4306-bd15-08d766ab9df3 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2019 13:32:37.0152 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Hb27A5CjYnBivfIupFQGtmV9zJEbcDMaZ7tNhvnJbBdDsD24wIshaeUOOBXmSjzJD7tHPnob3MW5jg462MLikw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB4084 Subject: Re: [dpdk-dev] [PATCH v4 1/3] ethdev: support API to set max LRO packet size 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" DQoNCkZyb206IEZlcnJ1aCBZaWdpdA0KPiBPbiAxMS8xMS8yMDE5IDExOjMzIEFNLCBNYXRhbiBB enJhZCB3cm90ZToNCj4gPg0KPiA+DQo+ID4gRnJvbTogRmVycnVoIFlpZ2l0DQo+ID4+IE9uIDEx LzkvMjAxOSA2OjIwIFBNLCBNYXRhbiBBenJhZCB3cm90ZToNCj4gPj4+IEhpDQo+ID4+Pg0KPiA+ Pj4gRnJvbTogRmVycnVoIFlpZ2l0DQo+ID4+Pj4gT24gMTEvOC8yMDE5IDExOjU2IEFNLCBNYXRh biBBenJhZCB3cm90ZToNCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gRnJvbTogRmVycnVoIFlp Z2l0DQo+ID4+Pj4+PiBPbiAxMS84LzIwMTkgMTA6MTAgQU0sIE1hdGFuIEF6cmFkIHdyb3RlOg0K PiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBGcm9tOiBGZXJydWggWWlnaXQNCj4gPj4+ Pj4+Pj4gT24gMTEvOC8yMDE5IDY6NTQgQU0sIE1hdGFuIEF6cmFkIHdyb3RlOg0KPiA+Pj4+Pj4+ Pj4gSGkNCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBGcm9tOiBGZXJydWggWWlnaXQNCj4gPj4+ Pj4+Pj4+PiBPbiAxMS83LzIwMTkgMTI6MzUgUE0sIERla2VsIFBlbGVkIHdyb3RlOg0KPiA+Pj4+ Pj4+Pj4+PiBAQCAtMTI2Niw2ICsxMjg2LDE4IEBAIHN0cnVjdCBydGVfZXRoX2RldiAqDQo+ID4+ Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gCVJURV9FVEhFUl9NQVhfTEVOOw0KPiA+Pj4+Pj4+Pj4+ PiAgCX0NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gKwkvKg0KPiA+Pj4+Pj4+Pj4+PiAr CSAqIElmIExSTyBpcyBlbmFibGVkLCBjaGVjayB0aGF0IHRoZSBtYXhpbXVtDQo+IGFnZ3JlZ2F0 ZWQNCj4gPj4+Pj4+IHBhY2tldA0KPiA+Pj4+Pj4+Pj4+PiArCSAqIHNpemUgaXMgc3VwcG9ydGVk IGJ5IHRoZSBjb25maWd1cmVkIGRldmljZS4NCj4gPj4+Pj4+Pj4+Pj4gKwkgKi8NCj4gPj4+Pj4+ Pj4+Pj4gKwlpZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmDQo+ID4+Pj4+PiBERVZfUlhf T0ZGTE9BRF9UQ1BfTFJPKSB7DQo+ID4+Pj4+Pj4+Pj4+ICsJCXJldCA9IGNoZWNrX2xyb19wa3Rf c2l6ZSgNCj4gPj4+Pj4+Pj4+Pj4gKwkJCQlwb3J0X2lkLCBkZXZfY29uZi0NCj4gPj4+Pj4+Pj4+ Pj4gcnhtb2RlLm1heF9scm9fcGt0X3NpemUsDQo+ID4+Pj4+Pj4+Pj4+ICsJCQkJZGV2X2luZm8u bWF4X2xyb19wa3Rfc2l6ZSk7DQo+ID4+Pj4+Pj4+Pj4+ICsJCWlmIChyZXQgIT0gMCkNCj4gPj4+ Pj4+Pj4+Pj4gKwkJCWdvdG8gcm9sbGJhY2s7DQo+ID4+Pj4+Pj4+Pj4+ICsJfQ0KPiA+Pj4+Pj4+ Pj4+PiArDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBUaGlzIGNoZWNrIGZvcmNlcyBhcHBs aWNhdGlvbnMgdGhhdCBlbmFibGUgTFJPIHRvIHByb3ZpZGUNCj4gPj4+Pj4+Pj4gJ21heF9scm9f cGt0X3NpemUnDQo+ID4+Pj4+Pj4+Pj4gY29uZmlnIHZhbHVlLg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+IFllcy4od2UgY2FuIGJyZWFrIGFuIEFQSSwgd2Ugbm90aWNlZCBpdCkNCj4gPj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4gSSBhbSBub3QgdGFsa2luZyBhYm91dCBBUEkvQUJJIGJyZWFrYWdlLCB0 aGF0IHBhcnQgaXMgT0suDQo+ID4+Pj4+Pj4+IFdpdGggdGhpcyBjaGVjaywgaWYgdGhlIGFwcGxp Y2F0aW9uIHJlcXVlc3RlZCBMUk8gb2ZmbG9hZCBidXQNCj4gPj4+Pj4+Pj4gbm90IHByb3ZpZGVk ICdtYXhfbHJvX3BrdF9zaXplJyB2YWx1ZSwgZGV2aWNlIGNvbmZpZ3VyYXRpb24gd2lsbA0KPiBm YWlsLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IFllcw0KPiA+Pj4+Pj4+PiBDYW4gdGhlcmUgYmUg YSBjYXNlIGFwcGxpY2F0aW9uIGlzIGdvb2Qgd2l0aCB3aGF0ZXZlciB0aGUgUE1EDQo+ID4+Pj4+ Pj4+IGNhbiBzdXBwb3J0IGFzIG1heD8NCj4gPj4+Pj4+PiBZZXMgY2FuIGJlIC0geW91IGtub3cs IHdlIGNhbiBkbyBldmVyeXRoaW5nIHdlIHdhbnQgYnV0IGl0IGlzDQo+ID4+Pj4+Pj4gYmV0dGVy IHRvIGJlDQo+ID4+Pj4+PiBjb25zaXN0ZW50Og0KPiA+Pj4+Pj4+IER1ZSB0byB0aGUgZmFjdCBv ZiBNYXggcnggcGt0IGxlbiBmaWVsZCBpcyBtYW5kYXRvcnkgZm9yIEpVTUJPDQo+ID4+Pj4+Pj4g b2ZmbG9hZCwgbWF4DQo+ID4+Pj4+PiBscm8gcGt0IGxlbiBzaG91bGQgYmUgbWFuZGF0b3J5IGZv ciBMUk8gb2ZmbG9hZC4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNvIHlvdXIgcXVlc3Rpb24gaXMg YWN0dWFsbHkgd2h5IGJvdGgsIG5vbi1scm8gcGFja2V0cyBhbmQgTFJPDQo+ID4+Pj4+Pj4gcGFj a2V0cyBtYXgNCj4gPj4+Pj4+IHNpemUgYXJlIG1hbmRhdG9yeS4uLg0KPiA+Pj4+Pj4+DQo+ID4+ Pj4+Pj4NCj4gPj4+Pj4+PiBJIHRoaW5rIGl0IHNob3VsZCBiZSBpbXBvcnRhbnQgdmFsdWVzIGZv ciBuZXQgYXBwbGljYXRpb25zDQo+IG1hbmFnZW1lbnQuDQo+ID4+Pj4+Pj4gQWxzbyBnb29kIGZv ciBtYnVmIHNpemUgbWFuYWdlbWVudHMuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4gLSBXaHkgaXQgaXMgbWFuZGF0b3J5IG5vdywgaG93IGl0IHdhcyB3b3JraW5nIGJlZm9y ZSBpZiBpdCBpcw0KPiA+Pj4+Pj4+Pj4+IG1hbmRhdG9yeSB2YWx1ZT8NCj4gPj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+PiBJdCBpcyB0aGUgc2FtZSBhcyBtYXhfcnhfcGt0X2xlbiB3aGljaCBpcyBtYW5k YXRvcnkgZm9yIGp1bWJvDQo+ID4+Pj4+Pj4+PiBmcmFtZQ0KPiA+Pj4+Pj4+PiBvZmZsb2FkLg0K PiA+Pj4+Pj4+Pj4gU28gbm93LCB3aGVuIHRoZSB1c2VyIGNvbmZpZ3VyZXMgYSBMUk8gb2ZmbG9h ZCBoZSBtdXN0IHRvIHNldA0KPiA+Pj4+Pj4+Pj4gbWF4IGxybyBwa3QNCj4gPj4+Pj4+Pj4gbGVu Lg0KPiA+Pj4+Pj4+Pj4gV2UgZG9uJ3Qgd2FudCB0byBjb25mdXNlIHRoZSB1c2VyIGhlcmUgd2l0 aCB0aGUgbWF4IHJ4IHBrdCBsZW4NCj4gPj4+Pj4+Pj4gY29uZmlndXJhdGlvbnMgYW5kIGJlaGF2 aW9ycywgdGhleSBzaG91bGQgYmUgd2l0aCBzYW1lIGxvZ2ljLg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+IFRoaXMgcGFyYW1ldGVyIGRlZmluZXMgd2VsbCB0aGUgTFJPIGJlaGF2aW9yLg0KPiA+ Pj4+Pj4+Pj4gQmVmb3JlIHRoaXMsIGVhY2ggUE1EIHRvb2sgaXRzIG93biBpbnRlcnByZXRhdGlv biB0byB3aGF0DQo+ID4+Pj4+Pj4+PiBzaG91bGQgYmUgdGhlDQo+ID4+Pj4+Pj4+IG1heGltdW0g c2l6ZSBmb3IgTFJPIGFnZ3JlZ2F0ZWQgcGFja2V0cy4NCj4gPj4+Pj4+Pj4+IE5vdywgdGhlIHVz ZXIgbXVzdCBzYXkgd2hhdCBpcyBoaXMgaW50ZW5zaW9uLCBhbmQgdGhlIGV0aGRldg0KPiA+Pj4+ Pj4+Pj4gY2FuIGxpbWl0IGl0DQo+ID4+Pj4+Pj4+IGFjY29yZGluZyB0byB0aGUgZGV2aWNlIGNh cGFiaWxpdHkuDQo+ID4+Pj4+Pj4+PiBCeSB0aGlzIHdheSwgYWxzbywgdGhlIFBNRCBjYW4gb3Jn YW5pemVcb3B0aW1pemUgaXRzIGRhdGEtcGF0aA0KPiA+PiBtb3JlLg0KPiA+Pj4+Pj4+Pj4gQWxz bywgdGhlIGFwcGxpY2F0aW9uIGNhbiBjcmVhdGUgZGlmZmVyZW50IG1lbXBvb2xzIGZvciBMUk8N Cj4gPj4+Pj4+Pj4+IHF1ZXVlcyB0bw0KPiA+Pj4+Pj4+PiBhbGxvdyBiaWdnZXIgcGFja2V0IHJl Y2VpdmluZyBmb3IgTFJPIHRyYWZmaWMuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IC0gV2hh dCBoYXBwZW5zIGlmIFBNRCBkb2Vzbid0IHByb3ZpZGUgJ21heF9scm9fcGt0X3NpemUnLCBzbw0K PiA+Pj4+Pj4+Pj4+IGl0IGlzDQo+ID4+Pj4gJzAnPw0KPiA+Pj4+Pj4+Pj4gWWVzLCB5b3UgY2Fu IHNlZSB0aGUgZmVhdHVyZSBkZXNjcmlwdGlvbiBEZWtlbCBhZGRlZC4NCj4gPj4+Pj4+Pj4+IFRo aXMgcGF0Y2ggYWxzbyB1cGRhdGVzIGFsbCB0aGUgUE1EcyBzdXBwb3J0IGFuIExSTyBmb3Igbm9u LTANCj4gPj4gdmFsdWUuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IE9mIGNvdXJzZSBJIGNhbiBz ZWUgdGhlIHVwZGF0ZXMgTWF0YW4sIG15IHBvaW50IGlzICJXaGF0DQo+ID4+Pj4+Pj4+IGhhcHBl bnMgaWYgUE1EIGRvZXNuJ3QgcHJvdmlkZSAnbWF4X2xyb19wa3Rfc2l6ZSciLA0KPiA+Pj4+Pj4+ PiAxKSBUaGVyZSBpcyBubyBjaGVjayBmb3IgaXQgcmlnaHQsIHNvIGl0IGlzIGFjY2VwdGFibGU/ DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBUaGVyZSBpcyBjaGVjay4NCj4gPj4+Pj4+PiBJZiB0aGUg Y2FwYWJpbGl0eSBpcyAwLCBhbnkgbm9uLXplcm8gY29uZmlndXJhdGlvbiB3aWxsIGZhaWwuDQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gMikgQXJlIHdlIG1ha2luZyB0aGlzIGZpbGVkIG1hbmRhdG9y eSB0byBwcm92aWRlIGZvciBQTURzLCBpdA0KPiA+Pj4+Pj4+PiBpcyBlYXN5IHRvIG1ha2UgbmV3 IGZpZWxkcyBtYW5kYXRvcnkgZm9yIFBNRHMgYnV0IGlzIHRoaXMNCj4gPj4+Pj4+Pj4gcmVhbGx5 DQo+ID4+Pj4gbmVjZXNzYXJ5Pw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gWWVzLCBmb3IgY29uc2lz dGVuY2UuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBhcyBzYW1lIGFzIG1h eCByeCBwa3QgbGVuLCBubz8NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gLSBXaGF0IGRvIHlv dSB0aGluayBzZXR0aW5nICdtYXhfbHJvX3BrdF9zaXplJyBjb25maWcgdmFsdWUNCj4gPj4+Pj4+ Pj4+PiB0byB3aGF0IFBNRCBwcm92aWRlZCBpZiBhcHBsaWNhdGlvbiBkb2Vzbid0IHByb3ZpZGUg aXQ/DQo+ID4+Pj4+Pj4+PiBTYW1lIGFuc3dlcnMgYXMgYWJvdmUuDQo+ID4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBJZiBhcHBsaWNhdGlvbiBkb2Vzbid0IGNhcmUgdGhlIHZhbHVl LCBhcyBpdCBoYXMgYmVlbiB0aWxsIG5vdywNCj4gPj4+Pj4+Pj4gYW5kIG5vdCBwcm92aWRlZCBl eHBsaWNpdCAnbWF4X2xyb19wa3Rfc2l6ZScsIHdoeSBub3QgZXRoZGV2DQo+ID4+Pj4+Pj4+IGxl dmVsIHVzZSB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgUE1EIGluc3RlYWQgb2YgZmFpbGluZz8NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IEFnYWluLCBzYW1lIHF1ZXN0aW9uIHdlIGNhbiBhc2sgb24gbWF4 IHJ4IHBrdCBsZW4uDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBMb29rcyBsaWtlIHRoZSBwYWNrZXQg c2l6ZSBpcyB2ZXJ5IGltcG9ydGFudCB2YWx1ZSB3aGljaCBzaG91bGQNCj4gPj4+Pj4+PiBiZSBz ZXQgYnkNCj4gPj4+Pj4+IHRoZSBhcHBsaWNhdGlvbi4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFBy ZXZpb3VzIGFwcGxpY2F0aW9ucyBoYXZlIG5vIG9wdGlvbiB0byBjb25maWd1cmUgaXQsIHNvIHRo ZXkNCj4gPj4+Pj4+PiBoYXZlbid0DQo+ID4+Pj4+PiBjb25maWd1cmUgaXQsIChwcm9iYWJseSBj b3ZlciBpdCBzb21laG93KSBJIHRoaW5rIGl0IGlzIG91ciBtaXNzDQo+ID4+Pj4+PiB0byBzdXBw bHkgdGhpcyBpbmZvLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gTGV0J3MgZG8gaXQgaW4gc2FtZSB3 YXkgYXMgd2UgZG8gbWF4IHJ4IHBrdCBsZW4gKGFzIHRoaXMgcGF0Y2gNCj4gPj4+Pj4+PiBtYWlu DQo+ID4+IGlkZWEpLg0KPiA+Pj4+Pj4+IExhdGVyLCB3ZSBjYW4gY2hhbmdlIGJvdGggdG8gb3Ro ZXIgbWVhbmluZy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgdGhpbmsgaXQgaXMg bm90IGEgZ29vZCByZWFzb24gdG8gaW50cm9kdWNlIGEgbmV3IG1hbmRhdG9yeQ0KPiA+Pj4+Pj4g Y29uZmlnIG9wdGlvbiBmb3IgYXBwbGljYXRpb24gYmVjYXVzZSBvZiAnbWF4X3J4X3BrdF9sZW4n IGRvZXMgaXQuDQo+ID4+Pj4+DQo+ID4+Pj4+IEl0IGlzIG1hbmRhdG9yeSBvbmx5IGlmIExSTyBv ZmZsb2FkIGlzIGNvbmZpZ3VyZWQuDQo+ID4+Pj4+DQo+ID4+Pj4+PiBXaWxsIGl0IHdvcmssIGlm Og0KPiA+Pj4+Pj4gLSBJZiBhcHBsaWNhdGlvbiBkb2Vzbid0IHByb3ZpZGUgdGhpcyB2YWx1ZSwg dXNlIHRoZSBQTUQgbWF4DQo+ID4+Pj4+DQo+ID4+Pj4+IE1heSBjYXVzZSBhIHByb2JsZW0gaWYg dGhlIG1idWYgc2l6ZSBpcyBub3QgZW5vdWdoIGZvciB0aGUgUE1EDQo+ID4+IG1heGltdW0uDQo+ ID4+Pj4NCj4gPj4+PiBPSywgdGhpcyBpcyB3aGF0IEkgd2FzIG1pc3NpbmcsIGZvciB0aGlzIGNh c2UgSSB3YXMgdGhpbmtpbmcNCj4gPj4+PiBtYXhfcnhfcGt0X2xlbiB3aWxsIGJlIHVzZWQgYnV0 IHlvdSBhbHJlYWR5IGV4cGxhaW5lZCB0aGF0DQo+ID4+Pj4gYXBwbGljYXRpb24gbWF5IHdhbnQg dG8gdXNlIGRpZmZlcmVudCBtZW1wb29scyBmb3IgTFJPIHF1ZXVlcy4NCj4gPj4+Pg0KPiA+Pj4g U28gLCBhcmUgeW91IGFncmVlIHdpdGggdGhlIGlkZWE/DQo+ID4+Pg0KPiA+Pj4+IEZvciB0aGlz IGNhc2Ugc2hvdWxkbid0IFBNRHMgdGFrZSB0aGUgJ3J4bW9kZS5tYXhfbHJvX3BrdF9zaXplJw0K PiA+Pj4+IGludG8gYWNjb3VudCBhbmQgcHJvZ3JhbSB0aGUgZGV2aWNlIGFjY29yZGluZ2x5IChv ZiBjb3Vyc2UgaW4gTFJPDQo+ID4+Pj4gZW5hYmxlZA0KPiA+Pj4+IGNhc2UpID8NCj4gPj4+PiBU aGlzIHBhcnQgc2VlbXMgbWlzc2luZyBhbmQgc2hvdWxkIGJlIGhpZ2hsaWdodGVkIHRvIG90aGVy IFBNRA0KPiA+PiBtYWludGFpbmVycy4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gWWVzLCB5b3UgYXJl IHJpZ2h0Lg0KPiA+Pj4gUE1EcyBtdXN0IGxpbWl0IHRoZSBMUk8gYWdncmVnYXRlZCBwYWNrZXQg YWNjb3JkaW5nIHRvIHRoZSBuZXcNCj4gPj4+IGZpZWxkLCBBbmQgaXQgcHJvYmFibHkgdmVyeSBo YXJkIGZvciB0aGUgcGF0Y2ggaW50cm9kdWNlciB0bw0KPiA+Pj4gdW5kZXJzdGFuZCBob3cgdG8g ZG8NCj4gPj4gaXQgZm9yIGVhY2ggUE1ELg0KPiA+Pj4NCj4gPj4+IEkgdGhpbmsgZWFjaCBuZXcg Y29uZmlndXJhdGlvbiByZXF1aXJlcyBvdGhlciBtYWludGFpbmVyc1xkZXZlbG9wZXJzDQo+ID4+ PiB0bw0KPiA+PiBhZGp1c3QgdGhlaXIgb3duIFBNRCBjb2RlIHRvIHRoZSBuZXcgY29uZmlndXJh dGlvbiBhbmQgaXQgc2hvdWxkIGJlDQo+ID4+IGRvbmUgaW4gbGltaXRlZCB0aW1lLg0KPiA+Pg0K PiA+PiBBZ3JlZS4NCj4gPj4gQnV0IGV4cGVyaWVuY2Ugc2hvd2VkIHRoYXQgdGhpcyBzeW5jaHJv bml6YXRpb24gaXMgbm90IGFzIGVhc3kgYXMgaXQNCj4gPj4gc291bmRzLCB3aG9ldmVyIGNoYW5n aW5nIHRoZSBpbnRlcmZhY2UvbGlicmFyeSBzYXlzIG90aGVyIFBNRHMgc2hvdWxkDQo+ID4+IHJl ZmxlY3QgdGhlIGNoYW5nZSBidXQgbW9zdCBvZiB0aGUgdGltZXMgb3RoZXIgUE1EIG1haW50YWlu ZXJzIG5vdA0KPiA+PiBhd2FyZSBvZiBpdCBvciBpZiB0aGV5IGRvIHRoZXkgaGF2ZSBvdGhlciBw cmlvcml0aWVzIGZvciB0aGUgcmVsZWFzZSwNCj4gPj4gc28gdGhlIGNoYW5nZXMgc2hvdWxkIGJl IGluIGEgd2F5IHRvIGdpdmUgbW9yZSB0aW1lIHRvIFBNRHMgdG8gYWRhcHQNCj4gPj4gaXQgYW5k IGR1cmluZyB0aGlzIHRpbWUgbGlicmFyeSBjaGFuZ2Ugc2hvdWxkbid0IGJyZWFrIG90aGVyIFBN RHMuDQo+ID4+DQo+ID4NCj4gPiBZZXMuDQo+ID4NCj4gPj4+IE15IHN1Z2dlc3Rpb24gaGVyZToN Cj4gPj4+IDEuIFRvIHJlc2VydmUgdGhlIGluZm8gZmllbGQgYW5kIHRoZSBjb25maWd1cmF0aW9u IGZpZWxkIGZvciByYzIuKGlmDQo+ID4+PiBpdCBpcyBjcml0aWNhbCBub3QgdG8gYnJlYWsgQUJJ IGZvciByYzMpIDIuIFRvIG1lcmdlIHRoZSBldGhkZXYNCj4gPj4+IHBhdGNoIGluIHRoZQ0KPiA+ PiBzdGFydCBvZiByYzMuDQo+ID4+PiAzLiBSZXF1ZXN0IGVhY2ggcmVsZXZhbnQgUE1EIHRvIGFk anVzdCBpdHMgUE1EIHRvIHRoZSBuZXcNCj4gPj4+IGNvbmZpZ3VyYXRpb24NCj4gPj4gZm9yIHRo ZSBlbmQgb2YgcmMzLg0KPiA+Pj4gCU5vdGU6IHRoaXMgc2hvdWxkIGJlIHNtYWxsIGNoYW5nZSBh bmQgb25seSBmb3IgfjUgUE1EczoNCj4gPj4+IAkJYS4gSW50cm9kdWNlIHRoZSBpbmZvIGZpZWxk IGFjY29yZGluZyB0byB0aGUgZGV2aWNlIGFiaWxpdHkuDQo+ID4+PiAJCWIuIEZvciBlYWNoIExS TyBxdWV1ZToNCj4gPj4+IAkJCVVzZSB0aGUgTFJPIG1heCBzaXplIGNvbmZpZ3VyYXRpb24gaW5z dGVhZCBvZiB0aGUNCj4gPj4gY3VycmVudCBtYXggcnggcGt0IGxlbiBjb25maWd1cmF0aW9uKGxv b2tzIGxpa2Ugc21hbGwgY29uZGl0aW9uKS4NCj4gPj4+DQo+ID4+PiBXaGF0IGRvIHlvdSB0aGlu az8NCj4gPj4NCj4gPj4gVGhlcmUgaXMgYWxyZWFkeSBhIHY2IHdoaWNoIG9ubHkgdXBkYXRlcyBk ZXZfaW5mbyBmaWVsZHMgdG8gaGF2ZSB0aGUNCj4gPj4gJ21heF9scm9fcGt0bGVuJyBmaWVsZCwg dGhlIFBNRCB1cGRhdGVzIHRoZXJlIGFsc28gbG9va3Mgc2FmZSwgc28gSQ0KPiA+PiB0aGluayB3 ZSBjYW4gZ28gd2l0aCBpdCBmb3IgcmMyLg0KPiA+Pg0KPiA+DQo+ID4gRG9lc27igJl0IG1ha2Ug c2Vuc2UgdG8gZXhwb3NlIHRoZSBpbmZvIGZpZWxkIHdpdGhvdXQgdGhlIGNvbmZpZ3VyYXRpb24u DQo+ID4NCj4gPg0KPiA+PiBGb3IgdGhlIGNvbmZpZ3VyYXRpb24gcGFydCwgSSBzdWdnZXN0IGRl ZmVycmluZyBpdCBuZXh0IHJlbGVhc2UsDQo+ID4+IHdoaWNoIGdpdmVzIG1vcmUgdGltZSBmb3Ig ZGlzY3Vzc2lvbiBhbmQgZW5vdWdoIHRpbWUgZm9yIG90aGVyIFBNRHMgdG8NCj4gaW1wbGVtZW50 IGl0Lg0KPiA+Pg0KPiA+Pg0KPiA+PiBBbmQgcmVsYXRlZCBjb25maWd1cmF0aW9uLCByaWdodCBu b3cgZGV2aWNlcyBhbHJlYWR5IGNvbmZpZ3VyZWQgdG8NCj4gPj4gbGltaXQgdGhlIHBhY2tldCBz aXplIHRvICdtYXhfcnhfcGt0X2xlbicsIGl0IGNhbiBiZSBhbiBvcHRpbWl6YXRpb24NCj4gPj4g dG8gaW5jcmVhc2UgaXQgdG8gJ21heF9scm9fcGt0X2xlbicgZm9yIHRoZSBxdWV1ZXMgTFJPIGlz IHN1cHBvcnRlZCwNCj4gPj4gd2h5IG5vdCBtYWtlIHRoaXMgY29uZmlndXJhdGlvbiBtb3JlIGV4 cGxpY2l0bHkgd2l0aCBzcGVjaWZpYyBBUEkgYXMNCj4gPj4gS29uc3RhbnRpbiBzdWdnZXN0ZWQg WzFdLCB0aGlzIHdheSBpdCBvbmx5IGFmZmVjdHMgdGhlIGFwcGxpY2F0aW9ucw0KPiA+PiB0aGF0 IGFyZSBpbnRlcmVzdGVkIGluIGFuZCB0aGUgUE1EcyB0aGF0IHdhbnQgdG8gc3VwcG9ydCB0aGlz Lg0KPiA+PiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIHVuZGVyICdydGVfZXRoX2Rldl9jb25m aWd1cmUoKScgd2hpY2ggaXMNCj4gPj4gdXNlZCBieSBhbGwgRFBESyBhcHBsaWNhdGlvbnMgYW5k IGltcGFjdCBvZiBjaGFuZ2luZyBpdCBpcyBtdWNoDQo+ID4+IGxhcmdlciwgYWxzbyBpdCBtYWtl cyBtYW5kYXRvcnkgZm9yIGFwcGxpY2F0aW9ucyB0byBwcm92aWRlIHRoaXMNCj4gPj4gY29uZmln IG9wdGlvbiB3aGVuIExSTyBlbmFibGVkLCBleHBsaWNpdCBBUEkgZ2l2ZXMgc2FtZSByZXN1bHQg d2l0aG91dA0KPiBtYWtpbmcgYSBtYW5kYXRvcnkgY29uZmlnIG9wdGlvbi4NCj4gPj4NCj4gPj4g WzFdDQo+ID4+IGludCBydGVfZXRoX2Rldl9zZXRfbWF4X2xybyh1aW50MTZfdCBwb3J0X2lkLCB1 aW50MzJfdCBscm8pOw0KPiA+DQo+ID4gUGxlYXNlIHNlZSBteSBhbnN3ZXJzIHRvIEtvbnN0YW50 aW4gcmVnYXJkaW5nIHRoaXMgdG9waWMuDQo+ID4NCj4gPg0KPiA+DQo+ID4gT25lIG1vcmUgb3B0 aW9uOg0KPiA+IEluIG9yZGVyIHRvIG5vdCBicmVhayBQTURzIGJlY2F1c2Ugb2YgdGhpcyBmZWF0 dXJlOg0KPiA+IDAgaW4gdGhlIGNhcGFiaWxpdHkgZmllbGQgbWVhbnMsIFRoZSBQTUQgZG9lc24n dCBzdXBwb3J0IExSTyBzcGVjaWFsDQo+IGxpbWl0YXRpb24gc28gaWYgdGhlIGFwcGxpY2F0aW9u IGNvbmZpZ3VyYXRpb24gaXMgbm90IHRoZSBzYW1lIGxpa2UNCj4gbWF4X3J4X3BrdF9sZW4gdGhl IHZhbGlkYXRpb24gd2lsbCBmYWlsLg0KPiA+DQo+IA0KPiBJIGRvbid0IHNlZSB0aGlzIGlzIGEg bWFuZGF0b3J5IGZpZWxkIGlmIHRoZSBMUk8gaXMgZW5hYmxlZCwgYW0gSSBtaXNzaW5nDQo+IHNv bWV0aGluZz8NCg0KRnJvbSB0aGUgYXBwbGljYXRpb24gc2l6ZSwgdGhpcyBpcyBtYW5kYXRvcnks IHlvdSByaWdodCBleGFjdGx5IGxpa2UgbWF4X3J4X3BrdF9sZW4uDQoNCj4gQW5kIGN1cnJlbnQg aW1wbGVtZW50YXRpb24gZG9lcyBzbyBieSBmYWlsaW5nIGNvbmZpZ3VyZSgpLCB0aGUNCj4gYWZm ZWN0IHRvIHRoZSBhcHBsaWNhdGlvbnMgaXMgbXkgZmlyc3QgY29uY2Vybi4NCg0KVGhpcyBpcyBh IHNtYWxsIGVmZmVjdCBhcyBhbnkgQVBJIGNoYW5nZS4NCklmIGFuIGV4aXN0cyBhcHBsaWNhdGlv biB3YW50cyB0byBzYXZlIGl0cyBjdXJyZW50IExSTyBiZWhhdmlvciwgaXQganVzdCBuZWVkIHRv IHB1dCBtYXhfbHJvX3BrdF9sZW49bWF4X3J4X3BrdF9sZW4uDQpEbyB5b3UgdGhpbmsgdGhpcyBp cyBhIGJpZyBjaGFuZ2U/IFdoeT8NCg0KDQo+IFNlY29uZCBpcyB3aGVuIGFwcGxpY2F0aW9uIHN1 cHBsaWVkIHRoZSBwcm9wZXIgdmFsdWVzIGJ1dCBQTUQgaXMgbm90IGRvaW5nDQo+IGFueXRoaW5n IHdpdGhvdXQgbGV0dGluZyBhcHBsaWNhdGlvbiBhbnl0aGluZyBkb25lLg0KPiANCg0KUE1EIHdo aWNoIGRvZXNuJ3QgY2hhbmdlIGl0cyBpbmZvIHRvIHZhbHVlICE9IDAsIGFzIEkgc2FpZCwgbWVh bnMgdGhhdCBpdCBkb2Vzbid0IHN1cHBvcnQgTFJPIHF1ZXVlcyBzcGVjaWFsIGxpbWl0ZWQgc2l6 ZS4NCldoZW4gdGhlIFBNRCBtYWludGFpbmVycyBoYXZlIHRpbWUgdG8gc3VwcG9ydCB0aGUgZmVh dHVyZSwgdGhleSBqdXN0IG5lZWQgdG8gY2hhbmdlIHRoZSBpbmZvIHZhbHVlIHRvIGJlICE9MCBh bmQgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIG1heF9scm9fcGt0X2xlbiBpbiBjb25maWd1cmF0 aW9uLg0KDQo+IFRoYXQgaXMgd2h5IEkgdGhpbmsgZXhwbGljaXQgQVBJIG1ha2VzIHRoaXMgY2xl YXIgYW5kIG9ubHkgcmVxdWlyZWQgYnkNCj4gYXBwbGljYXRpb24gd2FudHMgdG8gdXNlIGl0Lg0K DQoNCkkgdGhpbmsgdGhhdCBleHBvc2luZyBhIG5ldyBmdW5jdGlvbiBBUEkgaXMgbm90IGdvb2Qg YmVjYXVzZSBpdCBpbnRyb2R1Y2UgYSBkaWZmZXJlbnQgd2F5IHRvIGxpbWl0IHRoZSBSeCBwYWNr ZXQgc2l6ZS4NCg0KRm9yIHJlZ3VsYXIgcGFja2V0IC0gY29uZmlndXJlIGl0IGluIHRoZSBjb25m aWd1cmF0aW9uIHN0cnVjdC4NCkZvciBMUk8gcGFja2V0cyAtIHVzZSBhIGZ1bmN0aW9uIHRvIGRv IGl0Lg0KDQpJdCBpcyB2ZXJ5IGNvbmZ1c2luZyBhbmQgbm90IGludHVpdGl2ZSBmcm9tIHRoZSB1 c2VyIHNpZGUuDQoNCldoeSBub3QgdG8gc2F2ZSBjb252ZW50aW9uIGFuZCBjb25zaXN0ZW50LCBz bw0KbWF4X3J4X3BrdF9sZW4gIGlzIG1hbmRhdG9yeSAoZm9yIEpVTUJPIG9mZmxvYWQpIGFuZCBp biB0aGUgY29uZmlnIHN0cnVjdHVyZSANCkFsc28gdGhlIG5ldyBscm8gY29uZiBpcyBtYW5kYXRv cnkgKGZvciBMUk8gb2ZmbG9hZCkgYW5kIGluIHRoZSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZS4g DQoNClNvLCBhbGwgdGhlIGNvbmZpZ3VyYXRpb25zIHRvIGxpbWl0IHRoZSBSeCBwYWNrZXQgc2l6 ZSBhcmUgaW4gdGhlIHNhbWUgcGxhY2UgYW5kIGRvbmUgYnkgdGhlIHNhbWUgd2F5Lg0KDQo+IFNp bWlsYXIgY2FuIGJlIGRvbmUgd2l0aCBmb2xsb3dpbmcsIHRoaXMgYWxzbyBkb2Vzbid0IHJlcXVp cmUgYm90aCBhcHBsaWNhdGlvbg0KPiBhbmQgUE1EIGNoYW5nZXMsIHdkeXQ/DQo+IA0KPiBldGhk ZXYsIGNvbmZpZ3VyZSgpOg0KPiBpZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmIERFVl9S WF9PRkZMT0FEX1RDUF9MUk8pIHsNCj4gICBpZiAoZGV2X2NvbmYtPnJ4bW9kZS5tYXhfbHJvX3Br dGxlbikgew0KPiAgICAgaWYgKGRldl9pbmZvLm1heF9scm9fcGt0bGVuKSB7DQo+IAl2YWxpZGF0 ZShyeG1vZGUubWF4X2xyb19wa3RsZW4sIGRldl9pbmZvLm1heF9scm9fcGt0bGVuKQ0KPiAgICAg fSBlbHNlIGlmIChkZXZfaW5mby5tYXhfcnhfcGt0bGVuKQ0KPiAgICAgICAgIHZhbGlkYXRlKHJ4 bW9kZS5tYXhfbHJvX3BrdGxlbiwgZGV2X2luZm8ubWF4X3J4X3BrdGxlbikNCj4gICAgIH0NCj4g ICB9DQo+IH0NCj4gDQo+IA0KPiBpbiBQTUQ6DQo+IGlmIChMUk8pIHsNCj4gCXF1ZXVlLm1heF9w a3RsZW4gPSByeG1vZGUubWF4X2xyb19wa3RsZW4gPw0KPiAJCXJ4bW9kZS5tYXhfbHJvX3BrdGxl biA6DQo+IAkJcnhtb2RlLm1heF90eF9wa3RsZW47DQo+IH0NCg0KQWdhaW4sIG15IG9ubHkgY29u Y2VybiBoZXJlIGlzIHRoZSBjb25zaXN0ZW5jeSBvZiBSeCBwYWNrZXQgc2l6ZSBsaW1pdGF0aW9u IG1hbmRhdG9yeSBmb3IgTFJPIGFuZCBub24tTFJPLg0KDQo=