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 C46A4A00C5; Thu, 30 Apr 2020 09:36:11 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3B9431D959; Thu, 30 Apr 2020 09:36:11 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40048.outbound.protection.outlook.com [40.107.4.48]) by dpdk.org (Postfix) with ESMTP id 580D51D6FC for ; Thu, 30 Apr 2020 09:36:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DdhppvU0k2VYjpFbQCggHQ4HA3CsDSwWK+tx9PQCdNWWZcR4L0+WqbvrssNqgFwXnX04XPfvxNgHtBjFWvtEYCWeEsp1CeieIv8acfdaDMPgm6c6K8K4nteWU92VFysRtv4S9kLsCtGaqZ54EqzzZq4vUSqAPhCpstyICsNW9rS7Xpu/cKta5GkRzCHJuh6rL9g+pHlN/zHtojbJrLth5tssFEhy4LZzJC5rSAtc2Sfj37AVU5px+M0F6PUtkIgtUSOONvdl7Vgu4DDIUfMGQzFnZRlWEjGYd4mnupfnj6mdDLUzUMo4xuVPAR1i8Jq8BQiwz+eQA7Z9enKCEkWERg== 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=W9v4/h68F9e8wN+8eBt6iXt8mppzAFqVpaweYvmpGbc=; b=WeVdkV/qVLyZ/C5KmV0aiGMAUJItG6ZBJwubts3R9dUXYZMxlTBR1d1x3P9XQwsuazqkgIOgAMPg27jo0FjAKsy964MWPocrIzWQwM5TVCmauJLIkujd416VAd2P014Ld+8PqqxmHhRHY+kSDn6lpX3j9Il2Lz8Lh5gr54T7KeuOIkv4DJeR0kcwl2+5a95PhBNWX248OQ7EKhQjM5TTzO3FL4Ghz7LzvwBtNBtYlxyspa0STcMNfeY20t5vGulHY82crN1KugNFKBPjyKKLegHgSrAuNw5HqF9Yy19K9oiGdGHMHCqKlG33eA10YmOmC9hOuZ+cRrnKcZ8H6oK1Wg== 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=W9v4/h68F9e8wN+8eBt6iXt8mppzAFqVpaweYvmpGbc=; b=d/pkVKdompfHLUxfybv7BxwJhgFqDkGA4O72XWr5YjZrEMWIS7e4+3c9mWyV63xGBZaxIXNU/vtbxcyExPwzN5+RdIrqf3h2v3wP46iGyRUOwSbO2CO05M0PG73+BHca4lj5SGGlDgmaFJ45J9NOwjm/7vKEz4+SJEEk4uh0jY0= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (2603:10a6:208:f::11) by AM0PR0502MB3619.eurprd05.prod.outlook.com (2603:10a6:208:1d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.19; Thu, 30 Apr 2020 07:36:09 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::a564:a117:9022:1fee]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::a564:a117:9022:1fee%7]) with mapi id 15.20.2958.019; Thu, 30 Apr 2020 07:36:09 +0000 From: Matan Azrad To: Tom Barbette , Bill Zhou , Ori Kam , "wenzhuo.lu@intel.com" , "jingjing.wu@intel.com" , "bernard.iremonger@intel.com" , "john.mcnamara@intel.com" , "marko.kovacevic@intel.com" , Thomas Monjalon , "ferruh.yigit@intel.com" , "arybchenko@solarflare.com" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v4] ethdev: support flow aging Thread-Index: AQHWF8VCfCAkgP/iRUe+XNMku8oXbKiQO5CAgAEXqZA= Date: Thu, 30 Apr 2020 07:36:08 +0000 Message-ID: References: <20200421062204.27892-1-dongz@mellanox.com> <20200421101138.18546-1-dongz@mellanox.com> <40b91801-a225-fcff-6349-8df361f3ba0b@kth.se> In-Reply-To: <40b91801-a225-fcff-6349-8df361f3ba0b@kth.se> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: kth.se; dkim=none (message not signed) header.d=none;kth.se; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [77.126.88.104] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 8b5862fd-4fb5-4d5a-71cf-08d7ecd92640 x-ms-traffictypediagnostic: AM0PR0502MB3619:|AM0PR0502MB3619: 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:478; x-forefront-prvs: 0389EDA07F x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: X+RAY0KV5Z1pj9zHX3uvBp6/sY+vbkKj271lHATPns5yA+gHxzOtUzFo+830xVKh2btJBkxqZCEkJbYYm+IRrAWGShRuXl/2g9eICxBclRWkkfwPGtJmAkshJeAaoX3D0NkT7hGRJhk/saygyFBaUIi87sgO7buXTyQ58UAlX6o6S/hIX2pdmUVpgoll5miXlwYKc7NVvKM6NFe1u6pXaizJaIdhkXOVlrUpbB0S0f0boPBrVAwDGLa3pQoXEBeDZjOT7uoAIuiJDu83ibOyYpqUqJmEdqH1OYEDrQa7ywLOMaPD8Tpm0C9KIO4rPmPZ7o0M0WRYl79qmnGIALMPtvSu48yvqkEB4lKkqsjIPSwqsAgQF34MbxoMAQY+82YPD9vQdb8hGaGFnRzC2d5xUuIuM9e7k2L7I0jq37pxunJLMTsLpBD3qdga8Awlgpwmvkp7sHYXTfEwZfvSutrHSyi5lDip5BxNRZcPHspW3r4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(346002)(396003)(376002)(39860400002)(366004)(55016002)(66574012)(8676002)(5660300002)(30864003)(52536014)(71200400001)(478600001)(33656002)(186003)(26005)(86362001)(316002)(6506007)(4326008)(9686003)(66946007)(76116006)(66476007)(8936002)(2906002)(110136005)(7696005)(66446008)(66556008)(64756008)(7416002)(921003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 2iaTDngFZ9TbmG4H88pk/W39f8hJ+DpoTqdPmlCWfzUZKuBQNStPlTOfn9VFNK2Z0OqdlyRcEexC4/Q22xpebhbd1psDxpeHUcCD/8Fag1Jo8iGjvUtHAi99HNqk+JlnRFFk7zhqDkNix1m5o4Fd5nShSUcc0dTN64ssIIaAdAl+U+OGw17vZBM34tSgmJ9I6UyTkAq/9Esc3PYLV4yHn23Q+Y2eWxPB/sKJ5VxNJuRON/6PeOHhmwZ8M0OKa/jKMordnRKQAVlk9V9MKzcPRaZuYwMZDjCImc84vGawl499D9VIDOUDpC/0l+16yrPTZwyEqC5G4IOBjCWpoNJZijG4aCJs4xFVUP18OX7Cxfob8Bnoa9AL9yIyiZkWp/RuusPsaMr8VBbGdQDNxC5jcQEVdCAt96b8XNa3gEn0FrT9/5HUZcRLUYQ1wVgxAtfuJ0SROff2/LRB4AYUAFjK6Uk/o8+d1LmA23x9ixkrRS5l4bG85aRznTnd7hquFK90y1geMdMR5+qKiNu+fNrjj4fm5FOw0TyglziTl/AEIJn2XzRMlxHCV4dZAmJv+Yms7SffDgils1xjHU+gHtx6LHRXlIW3+vj59FF85ggscZFzzB5xbh7cKjWVvcYEP5otojg9ZiHcjDQUmo1VLoZhejqoSIeMkq2+BTVW0ghl8yXrFJYkjsb6+qhA0E9KsdFOz/H1oiMHUB3Wxic+vubFDUfSONsmJNqMda73XoS93tLJjCGXIZmsohy8RKa5yxTsyKBS4WuIT2heS0HDGM1zM2QqH3kF6R/AKEBBqqKEW6Y= 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: 8b5862fd-4fb5-4d5a-71cf-08d7ecd92640 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2020 07:36:08.9456 (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: MIsVBaChUv2MqMh3Xa/GtPZjqA1HgN/w4ikiR4W/yy3hhGOZA2UMzjNMBIZ6W5Lg2H8zLZULv5jTf56oB6uy/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3619 Subject: Re: [dpdk-dev] [PATCH v4] ethdev: support flow aging 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" DQpIaSBUb20NCg0KRnJvbTogVG9tIEJhcmJldHRlDQo+IEdyZWF0IG5ld3MhDQo+IA0KPiAtIEkg Y2FuIHVuZGVyc3RhbmQgd2h5IHRoZXJlIGlzIG5vIHRpbWVvdXQgdW5pdC4gQnV0IHRoYXQncyBj YWxsaW5nIGZvciB1c2VyDQo+IG5pZ2h0bWFyZS4gRWcgSSBjb3VsZCBvbmx5IGdldCBmcm9tIHRo ZSBjb2RlIChhbmQgbm90IGZyb20gZG9jdW1lbnRhdGlvbg0KPiB5ZXQ/ICkgb2YgdGhlIGZvbGxv d2luZyBtbHg1IGRyaXZlciBwYXRjaCB0aGF0IHRoZSB2YWx1ZSBzaG91bGQgYmUgaW4gdGVudGgg b2YNCj4gc2Vjb25kcy4gSWYgSSBidWlsZCBhbiBhcHBsaWNhdGlvbiB0aGF0IGlzIHN1cHBvc2Vk IHRvIHdvcmsgd2l0aCAiYW55IE5JQyIsDQo+IHdoYXQgY2FuIEkgZG8/IFdlJ2QgbmVlZCBhIHdh eSB0byBxdWVyeSB0aGUgdGltZW91dCB1bml0IChoYXZlIGl0IGluDQo+IGRldl9pbmZvIHByb2Jh Ymx5KS4NCg0KUGxlYXNlIHNlZSB0aGUgbmV3IGFnZSBhY3Rpb24gc3RydWN0dXJlIGluIHJ0ZV9m bG93LmgNCllvdSBjYW4gc2VlIGNvbW1lbnRzIHRoZXJlIHRoYXQgdGltZW91dCB1bml0cyBpcyBp biBzZWNvbmRzLi4uLg0KDQo+IC0gSXQncyBub3QgdG90YWxseSBjbGVhciBpZiB0aGUgcnVsZSBp cyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgb3Igbm90LiBpcyB0aGlzIGENCj4gaGVscGVyIG9yIGFu IE9wZW5GbG93LWxpa2Ugbm90aWZpY2F0aW9uPw0KDQpPbmx5IG5vdGlmaWNhdGlvbiwgdGhlIGFn ZWQtb3V0IGZsb3cgc2hvdWxkIGJlIGRlc3Ryb3llZCAob3Igb3RoZXIgYWN0aW9uKSBieSB0aGUg YXBwbGljYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBhcHBsaWNhdGlvbiBuZWVkcy4uLg0KDQo+IC0g RmluZCBhIHR5cG8gYW5kIGdyYW1tYXIgZml4IGlubGluZS4NCj4gLSBSZWNlbnRseSwgTWVsbGFu b3ggaW50cm9kdWNlZCB0aGUgYWJpbGl0eSB0byBjcmVhdGUgMzMwSyBmbG93cy9zLiBBbnkNCj4g cGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnMgaWYgdGhvc2UgZmxvdyAiZXhwaXJlIiBhdCB0aGUg c2FtZSByYXRlPw0KDQpXZSBkaWRuJ3Qgc2VlIHBlcmZvcm1hbmNlIGltcGFjdCAoc2hvdWxkIGJl IHNhbWUgcmF0ZSBsaWtlIGNvdW50IGFjdGlvbikuDQoNCj4gDQo+IEhvcGUgaXQncyBoZWxwZnVs bCwNCj4gDQo+IFRvbQ0KPiANCj4gTGUgMjEvMDQvMjAyMCDDoCAxMjoxMSwgQmlsbCBaaG91IGEg w6ljcml0wqA6DQo+ID4gRnJvbTogRG9uZyBaaG91IDxkb25nekBtZWxsYW5veC5jb20+DQo+ID4N Cj4gPiBPbmUgb2YgdGhlIHJlYXNvbnMgdG8gZGVzdHJveSBhIGZsb3cgaXMgdGhlIGZhY3QgdGhh dCBubyBwYWNrZXQNCj4gPiBtYXRjaGVzIHRoZSBmbG93IGZvciAidGltZW91dCIgdGltZS4NCj4g PiBGb3IgZXhhbXBsZSwgd2hlbiBUQ1BcVURQIHNlc3Npb25zIGFyZSBzdWRkZW5seSBjbG9zZWQu DQo+ID4NCj4gPiBDdXJyZW50bHksIHRoZXJlIGlzIG5vdCBhbnkgRFBESyBtZWNoYW5pc20gZm9y IGZsb3cgYWdpbmcgYW5kIHRoZQ0KPiA+IGFwcGxpY2F0aW9ucyB1c2UgdGhlaXIgb3duIHdheXMg dG8gZGV0ZWN0IGFuZCBkZXN0cm95IGFnZWQtb3V0IGZsb3dzLg0KPiA+DQo+ID4gVGhlIGZsb3cg YWdpbmcgaW1wbGVtZW50YXRpb24gbmVlZCBpbmNsdWRlOg0KPiA+IC0gQSBuZXcgcnRlX2Zsb3cg YWN0aW9uOiBSVEVfRkxPV19BQ1RJT05fVFlQRV9BR0UgdG8gc2V0IHRoZSB0aW1lb3V0DQo+IGFu ZA0KPiA+ICAgIHRoZSBhcHBsaWNhdGlvbiBmbG93IGNvbnRleHQgZm9yIGVhY2ggZmxvdy4NCj4g PiAtIEEgbmV3IGV0aGRldiBldmVudDogUlRFX0VUSF9FVkVOVF9GTE9XX0FHRUQgZm9yIHRoZSBk cml2ZXIgdG8NCj4gcmVwb3J0DQo+ID4gICAgdGhhdCB0aGVyZSBhcmUgbmV3IGFnZWQtb3V0IGZs b3dzLg0KPiA+IC0gQSBuZXcgcnRlX2Zsb3cgQVBJOiBydGVfZmxvd19nZXRfYWdlZF9mbG93cyB0 byBnZXQgdGhlIGFnZWQtb3V0IGZsb3dzDQo+ID4gICAgY29udGV4dHMgZnJvbSB0aGUgcG9ydC4N Cj4gPiAtIFN1cHBvcnQgaW5wdXQgZmxvdyBhZ2luZyBjb21tYW5kIGxpbmUgaW4gVGVzdHBtZC4N Cj4gPg0KPiA+IFRoZSBuZXcgZXZlbnQgdHlwZSBhZGRpdGlvbiBpbiB0aGUgZW51bSBpcyBmbGFn Z2VkIGFzIGFuIEFCSSBicmVha2FnZSwNCj4gPiBzbyBhbiBpZ25vcmUgcnVsZSBpcyBhZGRlZCBm b3IgdGhlc2UgcmVhc29uczoNCj4gPiAtIEl0IGlzIG5vdCBjaGFuZ2luZyB2YWx1ZSBvZiBleGlz dGluZyB0eXBlcyAoZXhjZXB0IE1BWCkNCj4gPiAtIFRoZSBuZXcgdmFsdWUgaXMgbm90IHVzZWQg YnkgZXhpc3RpbmcgQVBJIGlmIHRoZSBldmVudCBpcyBub3QNCj4gPiByZWdpc3RlcmVkIEluIGdl bmVyYWwsIGl0IGlzIHNhZmUgYWRkaW5nIG5ldyBldGhkZXYgZXZlbnQgdHlwZXMgYXQgdGhlDQo+ ID4gZW5kIG9mIHRoZSBlbnVtLCBiZWNhdXNlIG9mIGV2ZW50IGNhbGxiYWNrIHJlZ2lzdHJhdGlv biBtZWNoYW5pc20uDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBEb25nIFpob3UgPGRvbmd6QG1l bGxhbm94LmNvbT4NCj4gPiAtLS0NCj4gPiB2MjogUmVtb3ZpbmcgIiogQWRkZWQgc3VwcG9ydCBm b3IgZmxvdyBBZ2luZyBtZWNoYW5pc20gYmFzZSBvbg0KPiBjb3VudGVyLiINCj4gPiB0aGlzIGxp bmUgZnJvbSBkb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIwXzA1LnJzdCwgdGhpcyBwYXRj aCBkb2VzDQo+ID4gbm90IGluY2x1ZGUgdGhpcyBzdXBwb3J0Lg0KPiA+DQo+ID4gdjM6IFVwZGF0 ZSBmaWxlIGxpYmFiaWdhaWwuYWJpZ25vcmUsIGFkZCBvbmUgbmV3IHN1cHByZXNzZWQNCj4gPiBl bnVtZXJhdGlvbiB0eXBlIGZvciBSVEVfRVRIX0VWRU5UX01BWC4NCj4gPg0KPiA+IHY0OiBBZGQg anVzdGlmaWNhdGlvbiBpbiBkZXZ0b29scy9saWJhYmlnYWlsLmFiaWdub3JlIGFuZCBpbiB0aGUN Cj4gPiBjb21taXQgbG9nIGFib3V0IHRoZSBtb2RpZmljYXRpb24gb2YgdjMuDQo+ID4gLS0tDQo+ ID4gICBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMgICAgICAgICAgICAgIHwgMjYgKysrKysr KysrKw0KPiA+ICAgZGV2dG9vbHMvbGliYWJpZ2FpbC5hYmlnbm9yZSAgICAgICAgICAgICB8ICA2 ICsrKw0KPiA+ICAgZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdCAgICAgICB8IDIy ICsrKysrKysrKw0KPiA+ICAgZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMF8wNS5yc3Qg ICB8IDExICsrKysrDQo+ID4gICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmggICAgICAg ICAgIHwgIDEgKw0KPiA+ICAgbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1h cCB8ICAzICsrDQo+ID4gICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5jICAgICAgICAgICAg IHwgMTggKysrKysrKw0KPiA+ICAgbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaCAgICAgICAg ICAgICB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICAgbGliL2xpYnJ0ZV9ldGhk ZXYvcnRlX2Zsb3dfZHJpdmVyLmggICAgICB8ICA2ICsrKw0KPiA+ICAgOSBmaWxlcyBjaGFuZ2Vk LCAxNTUgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0LXBtZC9j bWRsaW5lX2Zsb3cuYyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYw0KPiA+IGluZGV4IGU2 YWI4ZmYyZjcuLjQ1YmNmZjNjZjUgMTAwNjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QtcG1kL2NtZGxp bmVfZmxvdy5jDQo+ID4gKysrIGIvYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jDQo+ID4gQEAg LTM0Myw2ICszNDMsOCBAQCBlbnVtIGluZGV4IHsNCj4gPiAgIAlBQ1RJT05fU0VUX0lQVjRfRFND UF9WQUxVRSwNCj4gPiAgIAlBQ1RJT05fU0VUX0lQVjZfRFNDUCwNCj4gPiAgIAlBQ1RJT05fU0VU X0lQVjZfRFNDUF9WQUxVRSwNCj4gPiArCUFDVElPTl9BR0UsDQo+ID4gKwlBQ1RJT05fQUdFX1RJ TUVPVVQsDQo+ID4gICB9Ow0KPiA+DQo+ID4gICAvKiogTWF4aW11bSBzaXplIGZvciBwYXR0ZXJu IGluIHN0cnVjdCBydGVfZmxvd19pdGVtX3Jhdy4gKi8gQEANCj4gPiAtMTE0NSw2ICsxMTQ3LDcg QEAgc3RhdGljIGNvbnN0IGVudW0gaW5kZXggbmV4dF9hY3Rpb25bXSA9IHsNCj4gPiAgIAlBQ1RJ T05fU0VUX01FVEEsDQo+ID4gICAJQUNUSU9OX1NFVF9JUFY0X0RTQ1AsDQo+ID4gICAJQUNUSU9O X1NFVF9JUFY2X0RTQ1AsDQo+ID4gKwlBQ1RJT05fQUdFLA0KPiA+ICAgCVpFUk8sDQo+ID4gICB9 Ow0KPiA+DQo+ID4gQEAgLTEzNzAsNiArMTM3MywxMyBAQCBzdGF0aWMgY29uc3QgZW51bSBpbmRl eCBhY3Rpb25fc2V0X2lwdjZfZHNjcFtdDQo+ID0gew0KPiA+ICAgCVpFUk8sDQo+ID4gICB9Ow0K PiA+DQo+ID4gK3N0YXRpYyBjb25zdCBlbnVtIGluZGV4IGFjdGlvbl9hZ2VbXSA9IHsNCj4gPiAr CUFDVElPTl9BR0UsDQo+ID4gKwlBQ1RJT05fQUdFX1RJTUVPVVQsDQo+ID4gKwlBQ1RJT05fTkVY VCwNCj4gPiArCVpFUk8sDQo+ID4gK307DQo+ID4gKw0KPiA+ICAgc3RhdGljIGludCBwYXJzZV9z ZXRfcmF3X2VuY2FwX2RlY2FwKHN0cnVjdCBjb250ZXh0ICosIGNvbnN0IHN0cnVjdA0KPiB0b2tl biAqLA0KPiA+ICAgCQkJCSAgICAgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQsDQo+ID4gICAJ CQkJICAgICB2b2lkICosIHVuc2lnbmVkIGludCk7DQo+ID4gQEAgLTM2OTQsNiArMzcwNCwyMiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHRva2VuIHRva2VuX2xpc3RbXSA9IHsNCj4gPiAgIAkJCSAg ICAgKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fc2V0X2RzY3AsIGRzY3ApKSwNCj4gPiAgIAkJLmNh bGwgPSBwYXJzZV92Y19jb25mLA0KPiA+ICAgCX0sDQo+ID4gKwlbQUNUSU9OX0FHRV0gPSB7DQo+ ID4gKwkJLm5hbWUgPSAiYWdlIiwNCj4gPiArCQkuaGVscCA9ICJzZXQgYSBzcGVjaWZpYyBtZXRh ZGF0YSBoZWFkZXIiLA0KPiA+ICsJCS5uZXh0ID0gTkVYVChhY3Rpb25fYWdlKSwNCj4gPiArCQku cHJpdiA9IFBSSVZfQUNUSU9OKEFHRSwNCj4gPiArCQkJc2l6ZW9mKHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fYWdlKSksDQo+ID4gKwkJLmNhbGwgPSBwYXJzZV92YywNCj4gPiArCX0sDQo+ID4gKwlb QUNUSU9OX0FHRV9USU1FT1VUXSA9IHsNCj4gPiArCQkubmFtZSA9ICJ0aW1lb3V0IiwNCj4gPiAr CQkuaGVscCA9ICJmbG93IGFnZSB0aW1lb3V0IHZhbHVlIiwNCj4gPiArCQkuYXJncyA9IEFSR1Mo QVJHU19FTlRSWV9CRihzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2FnZSwNCj4gPiArCQkJCQkgICB0 aW1lb3V0LCAyNCkpLA0KPiA+ICsJCS5uZXh0ID0gTkVYVChhY3Rpb25fYWdlLCBORVhUX0VOVFJZ KFVOU0lHTkVEKSksDQo+ID4gKwkJLmNhbGwgPSBwYXJzZV92Y19jb25mLA0KPiA+ICsJfSwNCj4g PiAgIH07DQo+ID4NCj4gPiAgIC8qKiBSZW1vdmUgYW5kIHJldHVybiBsYXN0IGVudHJ5IGZyb20g YXJndW1lbnQgc3RhY2suICovIGRpZmYgLS1naXQNCj4gPiBhL2RldnRvb2xzL2xpYmFiaWdhaWwu YWJpZ25vcmUgYi9kZXZ0b29scy9saWJhYmlnYWlsLmFiaWdub3JlIGluZGV4DQo+ID4gYTU5ZGY4 ZjEzNS4uYzA0N2FkYmQ3OSAxMDA2NDQNCj4gPiAtLS0gYS9kZXZ0b29scy9saWJhYmlnYWlsLmFi aWdub3JlDQo+ID4gKysrIGIvZGV2dG9vbHMvbGliYWJpZ2FpbC5hYmlnbm9yZQ0KPiA+IEBAIC0x MSwzICsxMSw5IEBADQo+ID4gICAgICAgICAgIHR5cGVfa2luZCA9IGVudW0NCj4gPiAgICAgICAg ICAgbmFtZSA9IHJ0ZV9jcnlwdG9fYXN5bV94Zm9ybV90eXBlDQo+ID4gICAgICAgICAgIGNoYW5n ZWRfZW51bWVyYXRvcnMgPQ0KPiBSVEVfQ1JZUFRPX0FTWU1fWEZPUk1fVFlQRV9MSVNUX0VORA0K PiA+ICs7IElnbm9yZSBldGhkZXYgZXZlbnQgZW51bSB1cGRhdGUgYmVjYXVzZSBuZXcgZXZlbnQg Y2Fubm90IGJlIDsNCj4gPiArcmVjZWl2ZWQgaWYgbm90IHJlZ2lzdGVyZWQgW3N1cHByZXNzX3R5 cGVdDQo+ID4gKyAgICAgICAgdHlwZV9raW5kID0gZW51bQ0KPiA+ICsgICAgICAgIG5hbWUgPSBy dGVfZXRoX2V2ZW50X3R5cGUNCj4gPiArICAgICAgICBjaGFuZ2VkX2VudW1lcmF0b3JzID0gUlRF X0VUSF9FVkVOVF9NQVgNCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0 ZV9mbG93LnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+ IGluZGV4IDQxYzE0NzkxM2MuLmNmNDM2OGUxYzQgMTAwNjQ0DQo+ID4gLS0tIGEvZG9jL2d1aWRl cy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvcHJvZ19ndWlk ZS9ydGVfZmxvdy5yc3QNCj4gPiBAQCAtMjYxNiw2ICsyNjE2LDI4IEBAIE90aGVyd2lzZSwgUlRF X0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04NCj4gZXJyb3Igd2lsbCBiZSByZXR1cm5lZC4NCj4gPiAg ICAgIHwgYGBkc2NwYGAgIHwgRFNDUCBpbiBsb3cgNiBiaXRzLCByZXN0IGlnbm9yZSB8DQo+ID4g ICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ DQo+ID4gK0FjdGlvbjogYGBBR0VgYA0KPiA+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eDQo+ ID4gKw0KPiA+ICtTZXQgYWdlaW5nIHRpbWVvdXQgY29uZmlndXJhdGlvbiB0byBhIGZsb3cuDQo+ ID4gKw0KPiA+ICtFdmVudCBSVEVfRVRIX0VWRU5UX0ZMT1dfQUdFRCB3aWxsIGJlIHJlcG9ydGVk IGlmIHRpbWVvdXQgcGFzc2VkDQo+ID4gK3dpdGhvdXQgYW55IG1hdGNoaW5nIG9uIHRoZSBmbG93 Lg0KPiA+ICsNCj4gPiArLi4gX3RhYmxlX3J0ZV9mbG93X2FjdGlvbl9hZ2U6DQo+ID4gKw0KPiA+ ICsuLiB0YWJsZTo6IEFHRQ0KPiA+ICsNCj4gPiArICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArICAgfCBGaWVsZCAgICAgICAgfCBWYWx1 ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArICAgKz09PT09PT09PT09PT09Kz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsNCj4gPiArICAgfCBgYHRpbWVvdXRgYCAg fCAyNCBiaXRzIHRpbWVvdXQgdmFsdWUgICAgICAgICAgIHwNCj4gPiArICAgKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArICAgfCBgYHJlc2Vy dmVkYGAgfCA4IGJpdHMgcmVzZXJ2ZWQsIG11c3QgYmUgemVybyAgIHwNCj4gPiArICAgKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArICAgfCBg YGNvbnRleHRgYCAgfCB1c2VyIGlucHV0IGZsb3cgY29udGV4dCAgICAgICAgIHwNCj4gPiArICAg Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiAr DQo+ID4gICBOZWdhdGl2ZSB0eXBlcw0KPiA+ICAgfn5+fn5+fn5+fn5+fn4NCj4gPg0KPiA+IGRp ZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIwXzA1LnJzdA0KPiA+IGIv ZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMF8wNS5yc3QNCj4gPiBpbmRleCBiYWNkNGM2 NWEyLi5mZjBjZjlmMWQ2IDEwMDY0NA0KPiA+IC0tLSBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3Jl bGVhc2VfMjBfMDUucnN0DQo+ID4gKysrIGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8y MF8wNS5yc3QNCj4gPiBAQCAtMTM1LDYgKzEzNSwxNyBAQCBOZXcgRmVhdHVyZXMNCj4gPiAgICAg YnkgbWFraW5nIHVzZSBvZiB0aGUgZXZlbnQgZGV2aWNlIGNhcGFiaWxpdGllcy4gVGhlIGV2ZW50 IG1vZGUgY3VycmVudGx5DQo+IHN1cHBvcnRzDQo+ID4gICAgIG9ubHkgaW5saW5lIElQc2VjIHBy b3RvY29sIG9mZmxvYWQuDQo+ID4NCj4gPiArKiAqKkFkZGVkIGZsb3cgQWdpbmcgU3VwcG9ydC4q Kg0KPiA+ICsNCj4gPiArICBBZGRlZCBmbG93IEFnaW5nIHN1cHBvcnQgdG8gZGV0ZWN0IGFuZCBy ZXBvcnQgYWdlZC1vdXQgZmxvd3MsDQo+IGluY2x1ZGluZzoNCj4gPiArDQo+ID4gKyAgKiBBZGRl ZCBuZXcgYWN0aW9uOiBSVEVfRkxPV19BQ1RJT05fVFlQRV9BR0UgdG8gc2V0IHRoZSB0aW1lb3V0 DQo+IGFuZCB0aGUNCj4gPiArICAgIGFwcGxpY2F0aW9uIGZsb3cgY29udGV4dCBmb3IgZWFjaCBm bG93Lg0KPiA+ICsgICogQWRkZWQgbmV3IGV2ZW50OiBSVEVfRVRIX0VWRU5UX0ZMT1dfQUdFRCBm b3IgdGhlIGRyaXZlciB0bw0KPiByZXBvcnQgdGhhdA0KPiA+ICsgICAgdGhlcmUgYXJlIG5ldyBh Z2VkLW91dCBmbG93cy4NCj4gPiArICAqIEFkZGVkIG5ldyBBUEk6IHJ0ZV9mbG93X2dldF9hZ2Vk X2Zsb3dzIHRvIGdldCB0aGUgYWdlZC1vdXQgZmxvd3MNCj4gY29udGV4dHMNCj4gPiArICAgIGZy b20gdGhlIHBvcnQuDQo+ID4gKw0KPiA+DQo+ID4gICBSZW1vdmVkIEl0ZW1zDQo+ID4gICAtLS0t LS0tLS0tLS0tDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYu aA0KPiA+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oIGluZGV4IDhkNjliODhmOWUu LjAwY2M3YjQwNTIgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRl di5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4gQEAgLTMw MTgsNiArMzAxOCw3IEBAIGVudW0gcnRlX2V0aF9ldmVudF90eXBlIHsNCj4gPiAgIAlSVEVfRVRI X0VWRU5UX05FVywgICAgICAvKio8IHBvcnQgaXMgcHJvYmVkICovDQo+ID4gICAJUlRFX0VUSF9F VkVOVF9ERVNUUk9ZLCAgLyoqPCBwb3J0IGlzIHJlbGVhc2VkICovDQo+ID4gICAJUlRFX0VUSF9F VkVOVF9JUFNFQywgICAgLyoqPCBJUHNlYyBvZmZsb2FkIHJlbGF0ZWQgZXZlbnQgKi8NCj4gPiAr CVJURV9FVEhfRVZFTlRfRkxPV19BR0VELC8qKjwgTmV3IGFnZWQtb3V0IGZsb3dzIGlzIGRldGVj dGVkDQo+ICovDQo+ID4gICAJUlRFX0VUSF9FVkVOVF9NQVggICAgICAgLyoqPCBtYXggdmFsdWUg b2YgdGhpcyBlbnVtICovDQo+ID4gICB9Ow0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJy dGVfZXRoZGV2L3J0ZV9ldGhkZXZfdmVyc2lvbi5tYXANCj4gPiBiL2xpYi9saWJydGVfZXRoZGV2 L3J0ZV9ldGhkZXZfdmVyc2lvbi5tYXANCj4gPiBpbmRleCAzZjMyZmRlY2Y3Li5mYTRiNTgxNmJl IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXZfdmVyc2lvbi5t YXANCj4gPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2X3ZlcnNpb24ubWFwDQo+ ID4gQEAgLTIzMCw0ICsyMzAsNyBAQCBFWFBFUklNRU5UQUwgew0KPiA+DQo+ID4gICAJIyBhZGRl ZCBpbiAyMC4wMg0KPiA+ICAgCXJ0ZV9mbG93X2Rldl9kdW1wOw0KPiA+ICsNCj4gPiArCSMgYWRk ZWQgaW4gMjAuMDUNCj4gPiArCXJ0ZV9mbG93X2dldF9hZ2VkX2Zsb3dzOw0KPiA+ICAgfTsNCj4g PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuYw0KPiA+IGIvbGliL2xp YnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuYyBpbmRleCBhNWFjMWM3ZmJkLi4zNjk5ZWRjZTQ5IDEwMDY0 NA0KPiA+IC0tLSBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmMNCj4gPiArKysgYi9saWIv bGlicnRlX2V0aGRldi9ydGVfZmxvdy5jDQo+ID4gQEAgLTE3Miw2ICsxNzIsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X2Rlc2NfZGF0YQ0KPiBydGVfZmxvd19kZXNjX2FjdGlvbltd ID0gew0KPiA+ICAgCU1LX0ZMT1dfQUNUSU9OKFNFVF9NRVRBLCBzaXplb2Yoc3RydWN0DQo+IHJ0 ZV9mbG93X2FjdGlvbl9zZXRfbWV0YSkpLA0KPiA+ICAgCU1LX0ZMT1dfQUNUSU9OKFNFVF9JUFY0 X0RTQ1AsIHNpemVvZihzdHJ1Y3QNCj4gcnRlX2Zsb3dfYWN0aW9uX3NldF9kc2NwKSksDQo+ID4g ICAJTUtfRkxPV19BQ1RJT04oU0VUX0lQVjZfRFNDUCwgc2l6ZW9mKHN0cnVjdA0KPiA+IHJ0ZV9m bG93X2FjdGlvbl9zZXRfZHNjcCkpLA0KPiA+ICsJTUtfRkxPV19BQ1RJT04oQUdFLCBzaXplb2Yo c3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9hZ2UpKSwNCj4gPiAgIH07DQo+ID4NCj4gPiAgIGludA0K PiA+IEBAIC0xMjMyLDMgKzEyMzMsMjAgQEAgcnRlX2Zsb3dfZGV2X2R1bXAodWludDE2X3QgcG9y dF9pZCwgRklMRSAqZmlsZSwNCj4gc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcikNCj4gPiAg IAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gICAJCQkJICBOVUxM LCBydGVfc3RyZXJyb3IoRU5PU1lTKSk7DQo+ID4gICB9DQo+ID4gKw0KPiA+ICtpbnQNCj4gPiAr cnRlX2Zsb3dfZ2V0X2FnZWRfZmxvd3ModWludDE2X3QgcG9ydF9pZCwgdm9pZCAqKmNvbnRleHRz LA0KPiA+ICsJCSAgICB1aW50MzJfdCBuYl9jb250ZXh0cywgc3RydWN0IHJ0ZV9mbG93X2Vycm9y ICplcnJvcikgew0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZp Y2VzW3BvcnRfaWRdOw0KPiA+ICsJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wcyAqb3BzID0gcnRl X2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ID4gKw0KPiA+ICsJaWYgKHVubGlrZWx5 KCFvcHMpKQ0KPiA+ICsJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ICsJaWYgKGxpa2VseSghIW9w cy0+Z2V0X2FnZWRfZmxvd3MpKQ0KPiA+ICsJCXJldHVybiBmbG93X2Vycihwb3J0X2lkLCBvcHMt PmdldF9hZ2VkX2Zsb3dzKGRldiwNCj4gY29udGV4dHMsDQo+ID4gKwkJCQluYl9jb250ZXh0cywg ZXJyb3IpLCBlcnJvcik7DQo+ID4gKwlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBF Tk9UU1VQLA0KPiA+ICsJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiA+ ICsJCQkJICBOVUxMLCBydGVfc3RyZXJyb3IoRU5PVFNVUCkpOw0KPiA+ICt9DQo+ID4gZGlmZiAt LWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiBiL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9mbG93LmggaW5kZXggN2YzZTA4ZmFkMy4uZmFiNDRmNmMwYiAxMDA2NDQNCj4gPiAt LS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9l dGhkZXYvcnRlX2Zsb3cuaA0KPiA+IEBAIC0yMDgxLDYgKzIwODEsMTYgQEAgZW51bSBydGVfZmxv d19hY3Rpb25fdHlwZSB7DQo+ID4gICAJICogU2VlIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fc2V0 X2RzY3AuDQo+ID4gICAJICovDQo+ID4gICAJUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX0lQVjZf RFNDUCwNCj4gPiArDQo+ID4gKwkvKioNCj4gPiArCSAqIFJlcG9ydCBhcyBhZ2VkIGZsb3cgaWYg dGltZW91dCBwYXNzZWQgd2l0aG91dCBhbnkgbWF0Y2hpbmcgb24gdGhlDQo+ID4gKwkgKiBmbG93 Lg0KPiA+ICsJICoNCj4gPiArCSAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2FnZS4NCj4g PiArCSAqIFNlZSBmdW5jdGlvbiBydGVfZmxvd19nZXRfYWdlZF9mbG93cw0KPiA+ICsJICogc2Vl IGVudW0gUlRFX0VUSF9FVkVOVF9GTE9XX0FHRUQNCj4gPiArCSAqLw0KPiA+ICsJUlRFX0ZMT1df QUNUSU9OX1RZUEVfQUdFLA0KPiA+ICAgfTsNCj4gPg0KPiA+ICAgLyoqDQo+ID4gQEAgLTIxMjIs NiArMjEzMiwyNSBAQCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3F1ZXVlIHsNCj4gPiAgIAl1aW50 MTZfdCBpbmRleDsgLyoqPCBRdWV1ZSBpbmRleCB0byB1c2UuICovDQo+ID4gICB9Ow0KPiA+DQo+ ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMg c3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCj4gPiArICoNCj4gPiAr ICogUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQUdFDQo+ID4gKyAqDQo+ID4gKyAqIFJlcG9ydCBmbG93 IGFzIGFnZWQtb3V0IGlmIHRpbWVvdXQgcGFzc2VkIHdpdGhvdXQgYW55IG1hdGNoaW5nDQo+ID4g KyAqIG9uIHRoZSBmbG93LiBSVEVfRVRIX0VWRU5UX0ZMT1dfQUdFRCBldmVudCBpcyB0cmlnZ2Vy ZWQgd2hlbiBhDQo+ID4gKyAqIHBvcnQgZGV0ZWN0cyBuZXcgYWdlZC1vdXQgZmxvd3MuDQo+ID4g KyAqDQo+ID4gKyAqIFRoZSBmbG93IGNvbnRleHQgYW5kIHRoZSBmbG93IGhhbmRsZSB3aWxsIGJl IHJlcG9ydGVkIGJ5IHRoZQ0KPiA+ICsgKiBydGVfZmxvd19nZXRfYWdlZF9mbG93cyBBUEkuDQo+ ID4gKyAqLw0KPiA+ICtzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2FnZSB7DQo+ID4gKwl1aW50MzJf dCB0aW1lb3V0OjI0OyAvKio8IFRpbWUgaW4gc2Vjb25kcy4gKi8NCj4gPiArCXVpbnQzMl90IHJl c2VydmVkOjg7IC8qKjwgUmVzZXJ2ZWQsIG11c3QgYmUgemVyby4gKi8NCj4gPiArCXZvaWQgKmNv bnRleHQ7DQo+ID4gKwkJLyoqPCBUaGUgdXNlciBmbG93IGNvbnRleHQsIE5VTEwgbWVhbnMgdGhl IHJ0ZV9mbG93DQo+IHBvaW50ZXIuICovIH07DQo+ID4NCj4gPiAgIC8qKg0KPiA+ICAgICogQHdh cm5pbmcNCj4gPiBAQCAtMzI1NCw2ICszMjgzLDM5IEBAIHJ0ZV9mbG93X2NvbnYoZW51bSBydGVf Zmxvd19jb252X29wIG9wLA0KPiA+ICAgCSAgICAgIGNvbnN0IHZvaWQgKnNyYywNCj4gPiAgIAkg ICAgICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPg0KPiA+ICsvKioNCj4gPiAr ICogR2V0IGFnZWQtb3V0IGZsb3dzIG9mIGEgZ2l2ZW4gcG9ydC4NCj4gPiArICoNCj4gPiArICog UlRFX0VUSF9FVkVOVF9GTE9XX0FHRUQgZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBhdCBs ZWFzdA0KPiBvbmUNCj4gPiArbmV3IGFnZWQNCj4gPiArICogb3V0IGZsb3cgd2FzIGRldGVjdGVk IGFmdGVyIHRoZSBsYXN0IGNhbGwgdG8gcnRlX2Zsb3dfZ2V0X2FnZWRfZmxvd3MuDQo+ID4gKyAq IFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB0byBnZXQgdGhlIGFnZWQgZmxvd3MgdXN5bmNo cm9ub3VzbHkNCj4gPiArZnJvbSB0aGUNCj4gdXN5bmNocm9ub3VzbHkNCj4gPiArICogZXZlbnQg Y2FsbGJhY2sgb3Igc3luY2hyb25vdXNseSByZWdhcmRsZXNzIHRoZSBldmVudC4NCj4gPiArICog VGhpcyBpcyBub3Qgc2FmZSB0byBjYWxsIHJ0ZV9mbG93X2dldF9hZ2VkX2Zsb3dzIGZ1bmN0aW9u IHdpdGgNCj4gPiArIG90aGVyIGZsb3cNCj4gSXQgaXMgbm90IHNhZmUgdG8NCj4gPiArICogZnVu Y3Rpb25zIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBzaW11bHRhbmVvdXNseS4NCj4gPiArICoNCj4g PiArICogQHBhcmFtIHBvcnRfaWQNCj4gPiArICogICBQb3J0IGlkZW50aWZpZXIgb2YgRXRoZXJu ZXQgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW1baW4sIG91dF0gY29udGV4dHMNCj4gPiArICogICBU aGUgYWRkcmVzcyBvZiBhbiBhcnJheSBvZiBwb2ludGVycyB0byB0aGUgYWdlZC1vdXQgZmxvd3Mg Y29udGV4dHMuDQo+ID4gKyAqIEBwYXJhbVtpbl0gbmJfY29udGV4dHMNCj4gPiArICogICBUaGUg bGVuZ3RoIG9mIGNvbnRleHQgYXJyYXkgcG9pbnRlcnMuDQo+ID4gKyAqIEBwYXJhbVtvdXRdIGVy cm9yDQo+ID4gKyAqICAgUGVyZm9ybSB2ZXJib3NlIGVycm9yIHJlcG9ydGluZyBpZiBub3QgTlVM TC4gSW5pdGlhbGl6ZWQgaW4gY2FzZSBvZg0KPiA+ICsgKiAgIGVycm9yIG9ubHkuDQo+ID4gKyAq DQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICBpZiBuYl9jb250ZXh0cyBpcyAwLCByZXR1cm4g dGhlIGFtb3VudCBvZiBhbGwgYWdlZCBjb250ZXh0cy4NCj4gPiArICogICBpZiBuYl9jb250ZXh0 cyBpcyBub3QgMCAsIHJldHVybiB0aGUgYW1vdW50IG9mIGFnZWQgZmxvd3MgcmVwb3J0ZWQNCj4g PiArICogICBpbiB0aGUgY29udGV4dCBhcnJheSwgb3RoZXJ3aXNlIG5lZ2F0aXZlIGVycm5vIHZh bHVlLg0KPiA+ICsgKg0KPiA+ICsgKiBAc2VlIHJ0ZV9mbG93X2FjdGlvbl9hZ2UNCj4gPiArICog QHNlZSBSVEVfRVRIX0VWRU5UX0ZMT1dfQUdFRA0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJp bWVudGFsDQo+ID4gK2ludA0KPiA+ICtydGVfZmxvd19nZXRfYWdlZF9mbG93cyh1aW50MTZfdCBw b3J0X2lkLCB2b2lkICoqY29udGV4dHMsDQo+ID4gKwkJCXVpbnQzMl90IG5iX2NvbnRleHRzLCBz dHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPiArDQo+ID4gICAjaWZkZWYgX19jcGx1 c3BsdXMNCj4gPiAgIH0NCj4gPiAgICNlbmRpZg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRl X2V0aGRldi9ydGVfZmxvd19kcml2ZXIuaA0KPiA+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zs b3dfZHJpdmVyLmgNCj4gPiBpbmRleCA1MWE5YTU3YTBmLi44ODFjYzQ2OWI3IDEwMDY0NA0KPiA+ IC0tLSBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93X2RyaXZlci5oDQo+ID4gKysrIGIvbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3dfZHJpdmVyLmgNCj4gPiBAQCAtMTAxLDYgKzEwMSwxMiBA QCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzIHsNCj4gPiAgIAkJKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LA0KPiA+ICAgCQkgRklMRSAqZmlsZSwNCj4gPiAgIAkJIHN0cnVjdCBydGVfZmxvd19lcnJvciAq ZXJyb3IpOw0KPiA+ICsJLyoqIFNlZSBydGVfZmxvd19nZXRfYWdlZF9mbG93cygpICovDQo+ID4g KwlpbnQgKCpnZXRfYWdlZF9mbG93cykNCj4gPiArCQkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs DQo+ID4gKwkJIHZvaWQgKipjb250ZXh0LA0KPiA+ICsJCSB1aW50MzJfdCBuYl9jb250ZXh0cywN Cj4gPiArCQkgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnIpOw0KPiA+ICAgfTsNCj4gPg0KPiA+ ICAgLyoqDQo+ID4NCg==