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 E76C1A31F3 for ; Fri, 18 Oct 2019 18:44:14 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ACA0A1C06C; Fri, 18 Oct 2019 18:44:14 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 2B0051C06B for ; Fri, 18 Oct 2019 18:44:12 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Oct 2019 09:44:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,312,1566889200"; d="scan'208";a="371516998" Received: from irsmsx107.ger.corp.intel.com ([163.33.3.99]) by orsmga005.jf.intel.com with ESMTP; 18 Oct 2019 09:44:07 -0700 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.252]) by IRSMSX107.ger.corp.intel.com ([169.254.10.18]) with mapi id 14.03.0439.000; Fri, 18 Oct 2019 17:44:06 +0100 From: "Ananyev, Konstantin" To: Jerin Jacob , Honnappa Nagarahalli CC: David Christensen , "olivier.matz@6wind.com" , "sthemmin@microsoft.com" , "jerinj@marvell.com" , "Richardson, Bruce" , "david.marchand@redhat.com" , "pbhagavatula@marvell.com" , "dev@dpdk.org" , Dharmik Thakkar , "Ruifeng Wang (Arm Technology China)" , "Gavin Hu (Arm Technology China)" , "stephen@networkplumber.org" , nd Thread-Topic: [dpdk-dev] [PATCH v4 1/2] lib/ring: apis to support configurable element size Thread-Index: AQHVfkvmrG5Kyu6ZXEWJeUYrxswBkqdVxOuAgASfoeCAAGP4AIAAqIDwgALNTICAAIYKsIAAfeKAgAAyfYCAAENBAIAAUAoAgACYtzA= Date: Fri, 18 Oct 2019 16:44:05 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725801A8C6B54E@IRSMSX104.ger.corp.intel.com> References: <20190906190510.11146-1-honnappa.nagarahalli@arm.com> <20191009024709.38144-1-honnappa.nagarahalli@arm.com> <20191009024709.38144-2-honnappa.nagarahalli@arm.com> <2601191342CEEE43887BDE71AB97725801A8C68545@IRSMSX104.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725801A8C68A99@IRSMSX104.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725801A8C6A2DA@IRSMSX104.ger.corp.intel.com> <7df09c22-5b8b-77d8-1e8a-a2714e732036@linux.vnet.ibm.com> In-Reply-To: Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNTM3NjMyN2QtMDQ5ZC00MDVkLWEyMTItYjg1MTkwYzJlODZlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiS29DaFpSUmZicTNJRGhtZ1JEUlpEXC8wOERwWm5MN0hIemZZMDBqZ0c0cGpsRExXZThwN2VqZ1BNOFdCbEtkVjAifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 1/2] lib/ring: apis to support configurable element 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" DQpIaSBldmVyeW9uZSwNCg0KDQo+ID4gPiA+Pj4gSSB0cmllZCB0aGlzLiBPbiB4ODYgKFhlb24o UikgR29sZCA2MTMyIENQVSBAIDIuNjBHSHopLCB0aGUgcmVzdWx0cw0KPiA+ID4gPj4+IGFyZSBh cw0KPiA+ID4gPj4gZm9sbG93cy4gVGhlIG51bWJlcnMgaW4gYnJhY2tldHMgYXJlIHdpdGggdGhl IGNvZGUgb24gbWFzdGVyLg0KPiA+ID4gPj4+IGdjYyAoVWJ1bnR1IDcuNC4wLTF1YnVudHUxfjE4 LjA0LjEpIDcuNC4wDQo+ID4gPiA+Pj4NCj4gPiA+ID4+PiBSVEU+PnJpbmdfcGVyZl9lbGVtX2F1 dG90ZXN0DQo+ID4gPiA+Pj4gIyMjIFRlc3Rpbmcgc2luZ2xlIGVsZW1lbnQgYW5kIGJ1cnN0IGVu cS9kZXEgIyMjIFNQL1NDIHNpbmdsZQ0KPiA+ID4gPj4+IGVucS9kZXF1ZXVlOiA1IE1QL01DIHNp bmdsZSBlbnEvZGVxdWV1ZTogNDAgKDM1KSBTUC9TQyBidXJzdA0KPiA+ID4gPj4+IGVucS9kZXF1 ZXVlIChzaXplOiA4KTogMiBNUC9NQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDYgU1Av U0MNCj4gPiA+ID4+PiBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxICgyKSBNUC9NQyBi dXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZToNCj4gPiA+ID4+PiAzMik6IDINCj4gPiA+ID4+Pg0KPiA+ ID4gPj4+ICMjIyBUZXN0aW5nIGVtcHR5IGRlcXVldWUgIyMjDQo+ID4gPiA+Pj4gU0MgZW1wdHkg ZGVxdWV1ZTogMi4xMQ0KPiA+ID4gPj4+IE1DIGVtcHR5IGRlcXVldWU6IDEuNDEgKDIuMTEpDQo+ ID4gPiA+Pj4NCj4gPiA+ID4+PiAjIyMgVGVzdGluZyB1c2luZyBhIHNpbmdsZSBsY29yZSAjIyMg U1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZToNCj4gPiA+ID4+PiA4KTogMi4xNSAoMi44Nikg TVAvTUMgYnVsayBlbnEvZGVxdWV1ZQ0KPiA+ID4gPj4+IChzaXplOiA4KTogNi4zNSAoNi45MSkg U1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxLjM1DQo+ID4gPiA+Pj4gKDIuMDYp IE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMi4zOCAoMi45NSkNCj4gPiA+ID4+ Pg0KPiA+ID4gPj4+ICMjIyBUZXN0aW5nIHVzaW5nIHR3byBwaHlzaWNhbCBjb3JlcyAjIyMgU1Av U0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZToNCj4gPiA+ID4+PiA4KTogNzMuODEgKDE1LjMzKSBN UC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogNzUuMTAgKDcxLjI3KQ0KPiA+ID4gPj4+ IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMjEuMTQgKDkuNTgpIE1QL01DIGJ1 bGsNCj4gPiA+ID4+PiBlbnEvZGVxdWV1ZQ0KPiA+ID4gPj4+IChzaXplOiAzMik6IDI1Ljc0ICgy MC45MSkNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+ICMjIyBUZXN0aW5nIHVzaW5nIHR3byBOVU1BIG5v ZGVzICMjIyBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOg0KPiA+ID4gPj4+IDgpOiAxNjQu MzIgKDUwLjY2KSBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMTc2LjAyICgxNzMu NDMpDQo+ID4gPiA+Pj4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZToNCj4gPiA+ID4+PiAz Mik6IDUwLjc4ICgyMykgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiA2My4xNyAo NDYuNzQpDQo+ID4gPiA+Pj4NCj4gPiA+ID4+PiBPbiBvbmUgb2YgdGhlIEFybSBwbGF0Zm9ybQ0K PiA+ID4gPj4+IE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMC4zNyAoMC4zMykg KH4xMiUgaGl0LCB0aGUgcmVzdA0KPiA+ID4gPj4+IGFyZQ0KPiA+ID4gPj4+IG9rKQ0KPiA+ID4N Cj4gPiA+IFRyaWVkIHRoaXMgb24gYSBQb3dlcjkgcGxhdGZvcm0gKDMuNkdIeiksIHdpdGggdHdv IG51bWEgbm9kZXMgYW5kIDE2DQo+ID4gPiBjb3Jlcy9ub2RlIChTTVQ9NCkuICBBcHBsaWVkIGFs bCAzIHBhdGNoZXMgaW4gdjUsIHRlc3QgcmVzdWx0cyBhcmUgYXMNCj4gPiA+IGZvbGxvd3M6DQo+ ID4gPg0KPiA+ID4gUlRFPj5yaW5nX3BlcmZfZWxlbV9hdXRvdGVzdA0KPiA+ID4gIyMjIFRlc3Rp bmcgc2luZ2xlIGVsZW1lbnQgYW5kIGJ1cnN0IGVucS9kZXEgIyMjIFNQL1NDIHNpbmdsZSBlbnEv ZGVxdWV1ZToNCj4gPiA+IDQyIE1QL01DIHNpbmdsZSBlbnEvZGVxdWV1ZTogNTkgU1AvU0MgYnVy c3QgZW5xL2RlcXVldWUgKHNpemU6IDgpOiA1DQo+ID4gPiBNUC9NQyBidXJzdCBlbnEvZGVxdWV1 ZSAoc2l6ZTogOCk6IDcgU1AvU0MgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMg0KPiA+ ID4gTVAvTUMgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMg0KPiA+ID4NCj4gPiA+ICMj IyBUZXN0aW5nIGVtcHR5IGRlcXVldWUgIyMjDQo+ID4gPiBTQyBlbXB0eSBkZXF1ZXVlOiA3Ljgx DQo+ID4gPiBNQyBlbXB0eSBkZXF1ZXVlOiA3LjgxDQo+ID4gPg0KPiA+ID4gIyMjIFRlc3Rpbmcg dXNpbmcgYSBzaW5nbGUgbGNvcmUgIyMjDQo+ID4gPiBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChz aXplOiA4KTogNS43Ng0KPiA+ID4gTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDcu NjYNCj4gPiA+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMi4xMA0KPiA+ID4g TVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAyLjU3DQo+ID4gPg0KPiA+ID4gIyMj IFRlc3RpbmcgdXNpbmcgdHdvIGh5cGVydGhyZWFkcyAjIyMNCj4gPiA+IFNQL1NDIGJ1bGsgZW5x L2RlcXVldWUgKHNpemU6IDgpOiAxMy4xMw0KPiA+ID4gTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAo c2l6ZTogOCk6IDEzLjk4DQo+ID4gPiBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6 IDMuNDENCj4gPiA+IE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogNC40NQ0KPiA+ ID4NCj4gPiA+ICMjIyBUZXN0aW5nIHVzaW5nIHR3byBwaHlzaWNhbCBjb3JlcyAjIyMgU1AvU0Mg YnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6DQo+ID4gPiAxMS4wMCBNUC9NQyBidWxrIGVucS9k ZXF1ZXVlIChzaXplOiA4KTogMTAuOTUgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZQ0KPiA+ID4gKHNp emU6IDMyKTogMy4wOCBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDMuNDANCj4g PiA+DQo+ID4gPiAjIyMgVGVzdGluZyB1c2luZyB0d28gTlVNQSBub2RlcyAjIyMNCj4gPiA+IFNQ L1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiA2My40MQ0KPiA+ID4gTVAvTUMgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDYyLjcwDQo+ID4gPiBTUC9TQyBidWxrIGVucS9kZXF1ZXVl IChzaXplOiAzMik6IDE1LjM5IE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6DQo+ID4gPiAz Mik6IDIyLjk2DQo+ID4gPg0KPiA+IFRoYW5rcyBmb3IgcnVubmluZyB0aGlzLiBUaGVyZSBpcyBh bm90aGVyIHRlc3QgJ3JpbmdfcGVyZl9hdXRvdGVzdCcgd2hpY2ggcHJvdmlkZXMgdGhlIG51bWJl cnMgd2l0aCB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24uIFRoZSBnb2FsDQo+IGlzIHRvIG1h a2Ugc3VyZSB0aGUgbnVtYmVycyB3aXRoIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBhcmUg dGhlIHNhbWUgYXMgdGhlc2UuIENhbiB5b3UgcGxlYXNlIHJ1biB0aGF0IGFzIHdlbGw/DQo+IA0K PiBIb25uYXBwYSwNCj4gDQo+IFlvdXIgZWFybGllciBwZXJmIHJlcG9ydCBzaG93cyB0aGUgY3lj bGVzIGFyZSBpbiBsZXNzIHRoYW4gMS4gVGhhdCdzDQo+IGlzIGR1ZSB0byBpdCBpcyB1c2luZyA1 MCBvciAxMDBNSHogY2xvY2sgaW4gRUwwLg0KPiBQbGVhc2UgY2hlY2sgd2l0aCBQTVUgY291bnRl ci4gU2VlICJBUk02NCBwcm9maWxpbmciIGluDQo+IA0KPiBodHRwOi8vZG9jLmRwZGsub3JnL2d1 aWRlcy9wcm9nX2d1aWRlL3Byb2ZpbGVfYXBwLmh0bWwNCj4gDQo+IA0KPiBIZXJlIGlzIHRoZSBv Y3Rlb250eDIgdmFsdWVzLiBUaGVyZSBpcyBhIHJlZ3Jlc3Npb24gaW4gdHdvIGNvcmUgY2FzZXMN Cj4gYXMgeW91IHJlcG9ydGVkIGVhcmxpZXIgaW4geDg2Lg0KPiANCj4gDQo+IFJURT4+cmluZ19w ZXJmX2F1dG90ZXN0DQo+ICMjIyBUZXN0aW5nIHNpbmdsZSBlbGVtZW50IGFuZCBidXJzdCBlbnEv ZGVxICMjIw0KPiBTUC9TQyBzaW5nbGUgZW5xL2RlcXVldWU6IDI4OA0KPiBNUC9NQyBzaW5nbGUg ZW5xL2RlcXVldWU6IDQ1Mg0KPiBTUC9TQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDM5 DQo+IE1QL01DIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXplOiA4KTogNjENCj4gU1AvU0MgYnVyc3Qg ZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMTMNCj4gTVAvTUMgYnVyc3QgZW5xL2RlcXVldWUgKHNp emU6IDMyKTogMjENCj4gDQo+ICMjIyBUZXN0aW5nIGVtcHR5IGRlcXVldWUgIyMjDQo+IFNDIGVt cHR5IGRlcXVldWU6IDYuMzMNCj4gTUMgZW1wdHkgZGVxdWV1ZTogNi42Nw0KPiANCj4gIyMjIFRl c3RpbmcgdXNpbmcgYSBzaW5nbGUgbGNvcmUgIyMjDQo+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUg KHNpemU6IDgpOiAzOC4zNQ0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogNjcu MzYNCj4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxMy4xMA0KPiBNUC9NQyBi dWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDIxLjY0DQo+IA0KPiAjIyMgVGVzdGluZyB1c2lu ZyB0d28gcGh5c2ljYWwgY29yZXMgIyMjDQo+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6 IDgpOiA3NS45NA0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMTA3LjY2DQo+ IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMjQuNTENCj4gTVAvTUMgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAzMy4yMw0KPiBUZXN0IE9LDQo+IFJURT4+DQo+IA0KPiAt LS0tIGFmdGVyIGFwcGx5aW5nIHY1IG9mIHRoZSBwYXRjaCAtLS0tLS0NCj4gDQo+IFJURT4+cmlu Z19wZXJmX2F1dG90ZXN0DQo+ICMjIyBUZXN0aW5nIHNpbmdsZSBlbGVtZW50IGFuZCBidXJzdCBl bnEvZGVxICMjIw0KPiBTUC9TQyBzaW5nbGUgZW5xL2RlcXVldWU6IDI4OQ0KPiBNUC9NQyBzaW5n bGUgZW5xL2RlcXVldWU6IDQ1Mg0KPiBTUC9TQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6 IDQwDQo+IE1QL01DIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXplOiA4KTogNjQNCj4gU1AvU0MgYnVy c3QgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMTMNCj4gTVAvTUMgYnVyc3QgZW5xL2RlcXVldWUg KHNpemU6IDMyKTogMjINCj4gDQo+ICMjIyBUZXN0aW5nIGVtcHR5IGRlcXVldWUgIyMjDQo+IFND IGVtcHR5IGRlcXVldWU6IDYuMzMNCj4gTUMgZW1wdHkgZGVxdWV1ZTogNi42Nw0KPiANCj4gIyMj IFRlc3RpbmcgdXNpbmcgYSBzaW5nbGUgbGNvcmUgIyMjDQo+IFNQL1NDIGJ1bGsgZW5xL2RlcXVl dWUgKHNpemU6IDgpOiAzOS43Mw0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTog NjkuMTMNCj4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxMy40NA0KPiBNUC9N QyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDIyLjAwDQo+IA0KPiAjIyMgVGVzdGluZyB1 c2luZyB0d28gcGh5c2ljYWwgY29yZXMgIyMjDQo+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNp emU6IDgpOiA3Ni4wMg0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMTEyLjUw DQo+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMjQuNzENCj4gTVAvTUMgYnVs ayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAzMy4zNA0KPiBUZXN0IE9LDQo+IFJURT4+DQo+IA0K PiBSVEU+PnJpbmdfcGVyZl9lbGVtX2F1dG90ZXN0DQo+ICMjIyBUZXN0aW5nIHNpbmdsZSBlbGVt ZW50IGFuZCBidXJzdCBlbnEvZGVxICMjIw0KPiBTUC9TQyBzaW5nbGUgZW5xL2RlcXVldWU6IDI5 MA0KPiBNUC9NQyBzaW5nbGUgZW5xL2RlcXVldWU6IDUwMw0KPiBTUC9TQyBidXJzdCBlbnEvZGVx dWV1ZSAoc2l6ZTogOCk6IDM5DQo+IE1QL01DIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXplOiA4KTog NjMNCj4gU1AvU0MgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMTENCj4gTVAvTUMgYnVy c3QgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMTkNCj4gDQo+ICMjIyBUZXN0aW5nIGVtcHR5IGRl cXVldWUgIyMjDQo+IFNDIGVtcHR5IGRlcXVldWU6IDYuMzMNCj4gTUMgZW1wdHkgZGVxdWV1ZTog Ni42Nw0KPiANCj4gIyMjIFRlc3RpbmcgdXNpbmcgYSBzaW5nbGUgbGNvcmUgIyMjDQo+IFNQL1ND IGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAzOC45Mg0KPiBNUC9NQyBidWxrIGVucS9kZXF1 ZXVlIChzaXplOiA4KTogNjIuNTQNCj4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIp OiAxMS40Ng0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDE5Ljg5DQo+IA0K PiAjIyMgVGVzdGluZyB1c2luZyB0d28gcGh5c2ljYWwgY29yZXMgIyMjDQo+IFNQL1NDIGJ1bGsg ZW5xL2RlcXVldWUgKHNpemU6IDgpOiA4Ny41NQ0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChz aXplOiA4KTogOTkuMTANCj4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAyNi42 Mw0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDI5LjkxDQo+IFRlc3QgT0sN Cj4gUlRFPj4NCj4gDQoNCkFzIEkgY2FuIHNlZSwgdGhlcmUgaXMgY29weSZwYXN0ZSBidWcgaW4g cGF0Y2ggIzMNCih0aGF0J3Mgd2h5IGl0IHByb2JhYmx5IHByb2R1Y2VkIHNvbWUgd2VpcmQgbnVt YmVycyBmb3IgbWUgZmlyc3QpLg0KQWZ0ZXIgZml4IGFwcGxpZWQgKHNlZSBwYXRjaCBiZWxvdyks IHRoaW5ncyBsb29rIHByZXR0eSBnb29kIG9uIG15IGJveC4NCkFzIEkgY2FuIHNlZSB0aGVyZSBh cmUgb25seSAzIHJlc3VsdHMgbm90aWNhYmx5IGxvd2VyOg0KICAgU1AvU0MgKHNpemU9OCkgb3Zl ciAyIHBoeXNpY2FsIGNvcmVzIHNhbWUgbnVtYSBzb2NrZXQNCiAgIE1QL01DIChzaXplPTgpIG92 ZXIgMiBwaHlzaWNhbCBjb3JlcyBvbiBkaWZmZXJlbnQgbnVtYSBzb2NrZXRzLiANCkFsbCBvdGhl cnMgc2VlbXMgYWJvdXQgc2FtZSBvciBiZXR0ZXIuIA0KQW55d2F5IEkgd2VudCBhaGVhZCBhbmQg cmV3b3JrZWQgY29kZSBhIGJpdCAoYXMgSSBzdWdnZXN0ZWQgYmVmb3JlKQ0KdG8gZ2V0IHJpZCBv ZiB0aGVzZSBodWdlIEVOUVVFVUUvREVRVUVVRSBtYWNyb3MuDQpSZXN1bHRzIGFyZSB2ZXJ5IGNs b3NlIHRvIGZpeGVkIHBhdGNoICMzIHZlcnNpb24gKHBhdGNoIGlzIGFsc28gYXR0YWNoZWQpLg0K VGhvdWdoIEkgc3VnZ2VzdCBwZW9wbGUgaG9sZCBvbiB0byByZS1ydW4gcGVyZiB0ZXN0cyB0aWxs IHdlJ2xsIG1ha2UgcmluZw0KZnVuY3Rpb25hbCB0ZXN0IHRvIHJ1biBmb3IgX2VsZW1fIGZ1bmN0 aW9ucyB0b28uDQpJIHN0YXJ0ZWQgdG8gd29yayBvbiB0aGF0LCBidXQgbm90IHN1cmUgSSdsbCBm aW5pc2ggdG9kYXkgKG1vc3QgbGlrZWx5IE1vbmRheSkuDQpQZXJmIHJlc3VsdHMgZnJvbSBteSBi b3gsIHBsdXMgcGF0Y2hlcyBiZWxvdy4NCktvbnN0YW50aW4NCg0KcGVyZiByZXN1bHRzDQo9PT09 PT09PT09DQoNCkludGVsKFIpIFhlb24oUikgUGxhdGludW0gODE2MCBDUFUgQCAyLjEwR0h6DQog IA0KQSAtIHJpbmdfcGVyZl9hdXRvdGVzdA0KQiAtIHJpbmdfcGVyZl9lbGVtX2F1dG90ZXN0ICsg cGF0Y2ggIzMgKyBmaXgNCkMgLSBCICsgdXBkYXRlDQoNCiMjIyBUZXN0aW5nIHVzaW5nIGEgc2lu Z2xlIGxjb3JlICMjIwlBCUIJQw0KU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IAk0 LjA2CTMuMDYJMy4yMg0KTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IAkxMC4wNQk5 LjA0CTkuMzgNClNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogCTIuOTMJMS45MQkx Ljg0DQpNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IAk0LjEyCTMuMzkJMy4zNQ0K DQojIyMgVGVzdGluZyB1c2luZyB0d28gaHlwZXJ0aHJlYWRzICMjIw0KU1AvU0MgYnVsayBlbnEv ZGVxdWV1ZSAoc2l6ZTogOCk6IAk5LjI0CTguOTIJOC44OQ0KTVAvTUMgYnVsayBlbnEvZGVxdWV1 ZSAoc2l6ZTogOCk6IAkxNS40NwkxNS4zOQkxNi4wMg0KU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAo c2l6ZTogMzIpOiAJNS43OAkzLjg3CTMuODYNCk1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6 IDMyKTogCTYuNDEJNC41Nwk0LjQ1DQoNCiMjIyBUZXN0aW5nIHVzaW5nIHR3byBwaHlzaWNhbCBj b3JlcyAjIyMNClNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAJMjQuMTQJMjkuODkJ MjcuMDUNCk1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAJNjguNjEJNzAuNTUJNjku ODUNClNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogCTEyLjExCTEyLjk5CTEzLjA0 DQpNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IAkyMi4xNAkxNy44NgkxOC4yNQ0K DQojIyMgVGVzdGluZyB1c2luZyB0d28gTlVNQSBub2RlcyAjIyMNClNQL1NDIGJ1bGsgZW5xL2Rl cXVldWUgKHNpemU6IDgpOiAJNDguNzgJMzEuOTgJMzMuNTcNCk1QL01DIGJ1bGsgZW5xL2RlcXVl dWUgKHNpemU6IDgpOiAJMTY3LjUzCTE5Ny4yOQkxOTIuMTMNClNQL1NDIGJ1bGsgZW5xL2RlcXVl dWUgKHNpemU6IDMyKTogCTMxLjI4CTIxLjY4CTIxLjYxDQpNUC9NQyBidWxrIGVucS9kZXF1ZXVl IChzaXplOiAzMik6IAk1My40NQk0OS45NAk0OC44MQ0KIA0KZml4IHBhdGNoDQo9PT09PT09DQog DQpGcm9tIGEyYmU1YTliMTM2MzMzYTU2ZDQ2NmVmMDQyYzY1NWU1MjJjYTcwMTIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxDQpGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5h bnlldkBpbnRlbC5jb20+DQpEYXRlOiBGcmksIDE4IE9jdCAyMDE5IDE1OjUwOjQzICswMTAwDQpT dWJqZWN0OiBbUEFUQ0hdIGZpeDENCg0KU2lnbmVkLW9mZi1ieTogS29uc3RhbnRpbiBBbmFueWV2 IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KLS0tDQogbGliL2xpYnJ0ZV9yaW5nL3J0 ZV9yaW5nX2VsZW0uaCB8IDQgKystLQ0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9saWIvbGlicnRlX3JpbmcvcnRlX3Jpbmdf ZWxlbS5oIGIvbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2VsZW0uaA0KaW5kZXggOTJlOTJmMTUw Li41ZTE4MTkwNjkgMTAwNjQ0DQotLS0gYS9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5o DQorKysgYi9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oDQpAQCAtMTE4LDcgKzExOCw3 IEBAIHN0cnVjdCBydGVfcmluZyAqcnRlX3JpbmdfY3JlYXRlX2VsZW0oY29uc3QgY2hhciAqbmFt ZSwgdW5zaWduZWQgY291bnQsDQogICAgICAgIHVpbnQzMl90IHN6ID0gbiAqIChlc2l6ZSAvIHNp emVvZih1aW50MzJfdCkpOyBcDQogICAgICAgIGlmIChsaWtlbHkoaWR4ICsgbiA8IHNpemUpKSB7 IFwNCiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgKHN6ICYgKCh+KHVuc2lnbmVkKTB4 NykpKTsgaSArPSA4LCBpZHggKz0gOCkgeyBcDQotICAgICAgICAgICAgICAgICAgICAgICBtZW1j cHkgKHJpbmcgKyBpLCBvYmogKyBpLCA4ICogc2l6ZW9mICh1aW50MzJfdCkpOyBcDQorICAgICAg ICAgICAgICAgICAgICAgICBtZW1jcHkgKHJpbmcgKyBpZHgsIG9iaiArIGksIDggKiBzaXplb2Yg KHVpbnQzMl90KSk7IFwNCiAgICAgICAgICAgICAgICB9IFwNCiAgICAgICAgICAgICAgICBzd2l0 Y2ggKG4gJiAweDcpIHsgXA0KICAgICAgICAgICAgICAgIGNhc2UgNzogXA0KQEAgLTE1Myw3ICsx NTMsNyBAQCBzdHJ1Y3QgcnRlX3JpbmcgKnJ0ZV9yaW5nX2NyZWF0ZV9lbGVtKGNvbnN0IGNoYXIg Km5hbWUsIHVuc2lnbmVkIGNvdW50LA0KICAgICAgICB1aW50MzJfdCBzeiA9IG4gKiAoZXNpemUg LyBzaXplb2YodWludDMyX3QpKTsgXA0KICAgICAgICBpZiAobGlrZWx5KGlkeCArIG4gPCBzaXpl KSkgeyBcDQogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IChzeiAmICgofih1bnNpZ25l ZCkweDcpKSk7IGkgKz0gOCwgaWR4ICs9IDgpIHsgXA0KLSAgICAgICAgICAgICAgICAgICAgICAg bWVtY3B5IChvYmogKyBpLCByaW5nICsgaSwgOCAqIHNpemVvZiAodWludDMyX3QpKTsgXA0KKyAg ICAgICAgICAgICAgICAgICAgICAgbWVtY3B5IChvYmogKyBpLCByaW5nICsgaWR4LCA4ICogc2l6 ZW9mICh1aW50MzJfdCkpOyBcDQogICAgICAgICAgICAgICAgfSBcDQogICAgICAgICAgICAgICAg c3dpdGNoIChuICYgMHg3KSB7IFwNCiAgICAgICAgICAgICAgICBjYXNlIDc6IFwNCi0tDQoyLjE3 LjENCg0KdXBkYXRlIHBhdGNoIChyZW1vdmUgbWFjcm9zKQ0KPT09PT09PT09PT09PT09PT09PT09 PT09PQ0KDQpGcm9tIDE4YjM4OGU4NzdiOTdlMjQzZjgwN2YyN2EzMjNlODc2YjMwODY5ZGQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxDQpGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgPGtvbnN0YW50 aW4uYW5hbnlldkBpbnRlbC5jb20+DQpEYXRlOiBGcmksIDE4IE9jdCAyMDE5IDE3OjM1OjQzICsw MTAwDQpTdWJqZWN0OiBbUEFUQ0hdIHVwZGF0ZTENCg0KU2lnbmVkLW9mZi1ieTogS29uc3RhbnRp biBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KLS0tDQogbGliL2xpYnJ0 ZV9yaW5nL3J0ZV9yaW5nX2VsZW0uaCB8IDE0MSArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCA3MSBkZWxldGlvbnMoLSkN Cg0KZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmggYi9saWIvbGli cnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oDQppbmRleCA1ZTE4MTkwNjkuLmViNzA2YjEyZiAxMDA2 NDQNCi0tLSBhL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmgNCisrKyBiL2xpYi9saWJy dGVfcmluZy9ydGVfcmluZ19lbGVtLmgNCkBAIC0xMDksNzUgKzEwOSw3NCBAQCBfX3J0ZV9leHBl cmltZW50YWwNCiBzdHJ1Y3QgcnRlX3JpbmcgKnJ0ZV9yaW5nX2NyZWF0ZV9lbGVtKGNvbnN0IGNo YXIgKm5hbWUsIHVuc2lnbmVkIGNvdW50LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBlc2l6ZSwgaW50IHNvY2tldF9pZCwgdW5zaWduZWQgZmxhZ3MpOw0KDQotI2Rl ZmluZSBFTlFVRVVFX1BUUlNfR0VOKHIsIHJpbmdfc3RhcnQsIHByb2RfaGVhZCwgb2JqX3RhYmxl LCBlc2l6ZSwgbikgZG8geyBcDQotICAgICAgIHVuc2lnbmVkIGludCBpOyBcDQotICAgICAgIGNv bnN0IHVpbnQzMl90IHNpemUgPSAociktPnNpemU7IFwNCi0gICAgICAgdWludDMyX3QgaWR4ID0g cHJvZF9oZWFkICYgKHIpLT5tYXNrOyBcDQotICAgICAgIHVpbnQzMl90ICpyaW5nID0gKHVpbnQz Ml90ICopcmluZ19zdGFydDsgXA0KLSAgICAgICB1aW50MzJfdCAqb2JqID0gKHVpbnQzMl90ICop b2JqX3RhYmxlOyBcDQotICAgICAgIHVpbnQzMl90IHN6ID0gbiAqIChlc2l6ZSAvIHNpemVvZih1 aW50MzJfdCkpOyBcDQotICAgICAgIGlmIChsaWtlbHkoaWR4ICsgbiA8IHNpemUpKSB7IFwNCi0g ICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgKHN6ICYgKCh+KHVuc2lnbmVkKTB4NykpKTsg aSArPSA4LCBpZHggKz0gOCkgeyBcDQotICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkgKHJp bmcgKyBpZHgsIG9iaiArIGksIDggKiBzaXplb2YgKHVpbnQzMl90KSk7IFwNCi0gICAgICAgICAg ICAgICB9IFwNCi0gICAgICAgICAgICAgICBzd2l0Y2ggKG4gJiAweDcpIHsgXA0KLSAgICAgICAg ICAgICAgIGNhc2UgNzogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgrK10gPSBv YmpbaSsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KLSAgICAgICAgICAgICAgIGNhc2UgNjogXA0K LSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgrK10gPSBvYmpbaSsrXTsgLyogZmFsbHRo cm91Z2ggKi8gXA0KLSAgICAgICAgICAgICAgIGNhc2UgNTogXA0KLSAgICAgICAgICAgICAgICAg ICAgICAgcmluZ1tpZHgrK10gPSBvYmpbaSsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KLSAgICAg ICAgICAgICAgIGNhc2UgNDogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgrK10g PSBvYmpbaSsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KLSAgICAgICAgICAgICAgIGNhc2UgMzog XA0KLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgrK10gPSBvYmpbaSsrXTsgLyogZmFs bHRocm91Z2ggKi8gXA0KLSAgICAgICAgICAgICAgIGNhc2UgMjogXA0KLSAgICAgICAgICAgICAg ICAgICAgICAgcmluZ1tpZHgrK10gPSBvYmpbaSsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KLSAg ICAgICAgICAgICAgIGNhc2UgMTogXA0KLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgr K10gPSBvYmpbaSsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KLSAgICAgICAgICAgICAgIH0gXA0K LSAgICAgICB9IGVsc2UgeyBcDQotICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaWR4IDwgc2l6 ZTsgaSsrLCBpZHgrKylcDQotICAgICAgICAgICAgICAgICAgICAgICByaW5nW2lkeF0gPSBvYmpb aV07IFwNCi0gICAgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGkgPCBuOyBpKyssIGlkeCsrKSBc DQotICAgICAgICAgICAgICAgICAgICAgICByaW5nW2lkeF0gPSBvYmpbaV07IFwNCi0gICAgICAg fSBcDQotfSB3aGlsZSAoMCkNCi0NCi0jZGVmaW5lIERFUVVFVUVfUFRSU19HRU4ociwgcmluZ19z dGFydCwgY29uc19oZWFkLCBvYmpfdGFibGUsIGVzaXplLCBuKSBkbyB7IFwNCi0gICAgICAgdW5z aWduZWQgaW50IGk7IFwNCi0gICAgICAgdWludDMyX3QgaWR4ID0gY29uc19oZWFkICYgKHIpLT5t YXNrOyBcDQotICAgICAgIGNvbnN0IHVpbnQzMl90IHNpemUgPSAociktPnNpemU7IFwNCi0gICAg ICAgdWludDMyX3QgKnJpbmcgPSAodWludDMyX3QgKilyaW5nX3N0YXJ0OyBcDQotICAgICAgIHVp bnQzMl90ICpvYmogPSAodWludDMyX3QgKilvYmpfdGFibGU7IFwNCi0gICAgICAgdWludDMyX3Qg c3ogPSBuICogKGVzaXplIC8gc2l6ZW9mKHVpbnQzMl90KSk7IFwNCi0gICAgICAgaWYgKGxpa2Vs eShpZHggKyBuIDwgc2l6ZSkpIHsgXA0KLSAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAo c3ogJiAoKH4odW5zaWduZWQpMHg3KSkpOyBpICs9IDgsIGlkeCArPSA4KSB7IFwNCi0gICAgICAg ICAgICAgICAgICAgICAgIG1lbWNweSAob2JqICsgaSwgcmluZyArIGlkeCwgOCAqIHNpemVvZiAo dWludDMyX3QpKTsgXA0KLSAgICAgICAgICAgICAgIH0gXA0KLSAgICAgICAgICAgICAgIHN3aXRj aCAobiAmIDB4NykgeyBcDQotICAgICAgICAgICAgICAgY2FzZSA3OiBcDQotICAgICAgICAgICAg ICAgICAgICAgICBvYmpbaSsrXSA9IHJpbmdbaWR4KytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQot ICAgICAgICAgICAgICAgY2FzZSA2OiBcDQotICAgICAgICAgICAgICAgICAgICAgICBvYmpbaSsr XSA9IHJpbmdbaWR4KytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQotICAgICAgICAgICAgICAgY2Fz ZSA1OiBcDQotICAgICAgICAgICAgICAgICAgICAgICBvYmpbaSsrXSA9IHJpbmdbaWR4KytdOyAv KiBmYWxsdGhyb3VnaCAqLyBcDQotICAgICAgICAgICAgICAgY2FzZSA0OiBcDQotICAgICAgICAg ICAgICAgICAgICAgICBvYmpbaSsrXSA9IHJpbmdbaWR4KytdOyAvKiBmYWxsdGhyb3VnaCAqLyBc DQotICAgICAgICAgICAgICAgY2FzZSAzOiBcDQotICAgICAgICAgICAgICAgICAgICAgICBvYmpb aSsrXSA9IHJpbmdbaWR4KytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQotICAgICAgICAgICAgICAg Y2FzZSAyOiBcDQotICAgICAgICAgICAgICAgICAgICAgICBvYmpbaSsrXSA9IHJpbmdbaWR4Kytd OyAvKiBmYWxsdGhyb3VnaCAqLyBcDQotICAgICAgICAgICAgICAgY2FzZSAxOiBcDQotICAgICAg ICAgICAgICAgICAgICAgICBvYmpbaSsrXSA9IHJpbmdbaWR4KytdOyAvKiBmYWxsdGhyb3VnaCAq LyBcDQotICAgICAgICAgICAgICAgfSBcDQotICAgICAgIH0gZWxzZSB7IFwNCi0gICAgICAgICAg ICAgICBmb3IgKGkgPSAwOyBpZHggPCBzaXplOyBpKyssIGlkeCsrKSBcDQotICAgICAgICAgICAg ICAgICAgICAgICBvYmpbaV0gPSByaW5nW2lkeF07IFwNCi0gICAgICAgICAgICAgICBmb3IgKGlk eCA9IDA7IGkgPCBuOyBpKyssIGlkeCsrKSBcDQotICAgICAgICAgICAgICAgICAgICAgICBvYmpb aV0gPSByaW5nW2lkeF07IFwNCi0gICAgICAgfSBcDQotfSB3aGlsZSAoMCkNCitzdGF0aWMgX19y dGVfYWx3YXlzX2lubGluZSB2b2lkDQorY29weV9lbGVtcyh1aW50MzJfdCBkdTMyW10sIGNvbnN0 IHVpbnQzMl90IHN1MzJbXSwgdWludDMyX3QgbnVtLCB1aW50MzJfdCBlc2l6ZSkNCit7DQorICAg ICAgIHVpbnQzMl90IGksIHN6Ow0KKw0KKyAgICAgICBzeiA9IChudW0gKiBlc2l6ZSkgLyBzaXpl b2YodWludDMyX3QpOw0KKw0KKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgKHN6ICYgfjcpOyBpICs9 IDgpDQorICAgICAgICAgICAgICAgbWVtY3B5KGR1MzIgKyBpLCBzdTMyICsgaSwgOCAqIHNpemVv Zih1aW50MzJfdCkpOw0KKw0KKyAgICAgICBzd2l0Y2ggKHN6ICYgNykgew0KKyAgICAgICBjYXNl IDc6IGR1MzJbc3ogLSA3XSA9IHN1MzJbc3ogLSA3XTsgLyogZmFsbHRocm91Z2ggKi8NCisgICAg ICAgY2FzZSA2OiBkdTMyW3N6IC0gNl0gPSBzdTMyW3N6IC0gNl07IC8qIGZhbGx0aHJvdWdoICov DQorICAgICAgIGNhc2UgNTogZHUzMltzeiAtIDVdID0gc3UzMltzeiAtIDVdOyAvKiBmYWxsdGhy b3VnaCAqLw0KKyAgICAgICBjYXNlIDQ6IGR1MzJbc3ogLSA0XSA9IHN1MzJbc3ogLSA0XTsgLyog ZmFsbHRocm91Z2ggKi8NCisgICAgICAgY2FzZSAzOiBkdTMyW3N6IC0gM10gPSBzdTMyW3N6IC0g M107IC8qIGZhbGx0aHJvdWdoICovDQorICAgICAgIGNhc2UgMjogZHUzMltzeiAtIDJdID0gc3Uz MltzeiAtIDJdOyAvKiBmYWxsdGhyb3VnaCAqLw0KKyAgICAgICBjYXNlIDE6IGR1MzJbc3ogLSAx XSA9IHN1MzJbc3ogLSAxXTsgLyogZmFsbHRocm91Z2ggKi8NCisgICAgICAgfQ0KK30NCisNCitz dGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQorZW5xdWV1ZV9lbGVtcyhzdHJ1Y3QgcnRl X3JpbmcgKnIsIHZvaWQgKnJpbmdfc3RhcnQsIHVpbnQzMl90IHByb2RfaGVhZCwNCisgICAgICAg ICAgICAgICB2b2lkICpvYmpfdGFibGUsIHVpbnQzMl90IG51bSwgdWludDMyX3QgZXNpemUpDQor ew0KKyAgICAgICB1aW50MzJfdCBpZHgsIG47DQorICAgICAgIHVpbnQzMl90ICpkdTMyOw0KKyAg ICAgICBjb25zdCB1aW50MzJfdCAqc3UzMjsNCisNCisgICAgICAgY29uc3QgdWludDMyX3Qgc2l6 ZSA9IHItPnNpemU7DQorDQorICAgICAgIGlkeCA9IHByb2RfaGVhZCAmIChyKS0+bWFzazsNCisN CisgICAgICAgZHUzMiA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQgKyBpZHg7DQorICAgICAgIHN1 MzIgPSBvYmpfdGFibGU7DQorDQorICAgICAgIGlmIChpZHggKyBudW0gPCBzaXplKQ0KKyAgICAg ICAgICAgICAgIGNvcHlfZWxlbXMoZHUzMiwgc3UzMiwgbnVtLCBlc2l6ZSk7DQorICAgICAgIGVs c2Ugew0KKyAgICAgICAgICAgICAgIG4gPSBzaXplIC0gaWR4Ow0KKyAgICAgICAgICAgICAgIGNv cHlfZWxlbXMoZHUzMiwgc3UzMiwgbiwgZXNpemUpOw0KKyAgICAgICAgICAgICAgIGNvcHlfZWxl bXMocmluZ19zdGFydCwgc3UzMiArIG4sIG51bSAtIG4sIGVzaXplKTsNCisgICAgICAgfQ0KK30N CisNCitzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQorZGVxdWV1ZV9lbGVtcyhzdHJ1 Y3QgcnRlX3JpbmcgKnIsIHZvaWQgKnJpbmdfc3RhcnQsIHVpbnQzMl90IGNvbnNfaGVhZCwNCisg ICAgICAgICAgICAgICB2b2lkICpvYmpfdGFibGUsIHVpbnQzMl90IG51bSwgdWludDMyX3QgZXNp emUpDQorew0KKyAgICAgICB1aW50MzJfdCBpZHgsIG47DQorICAgICAgIHVpbnQzMl90ICpkdTMy Ow0KKyAgICAgICBjb25zdCB1aW50MzJfdCAqc3UzMjsNCisNCisgICAgICAgY29uc3QgdWludDMy X3Qgc2l6ZSA9IHItPnNpemU7DQorDQorICAgICAgIGlkeCA9IGNvbnNfaGVhZCAmIChyKS0+bWFz azsNCisNCisgICAgICAgc3UzMiA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQgKyBpZHg7DQorICAg ICAgIGR1MzIgPSBvYmpfdGFibGU7DQorDQorICAgICAgIGlmIChpZHggKyBudW0gPCBzaXplKQ0K KyAgICAgICAgICAgICAgIGNvcHlfZWxlbXMoZHUzMiwgc3UzMiwgbnVtLCBlc2l6ZSk7DQorICAg ICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgIG4gPSBzaXplIC0gaWR4Ow0KKyAgICAgICAgICAg ICAgIGNvcHlfZWxlbXMoZHUzMiwgc3UzMiwgbiwgZXNpemUpOw0KKyAgICAgICAgICAgICAgIGNv cHlfZWxlbXMoZHUzMiArIG4sIHJpbmdfc3RhcnQsIG51bSAtIG4sIGVzaXplKTsNCisgICAgICAg fQ0KK30NCg0KIC8qIEJldHdlZW4gbG9hZCBhbmQgbG9hZC4gdGhlcmUgbWlnaHQgYmUgY3B1IHJl b3JkZXIgaW4gd2VhayBtb2RlbA0KICAqIChwb3dlcnBjL2FybSkuDQpAQCAtMjMyLDcgKzIzMSw3 IEBAIF9fcnRlX3JpbmdfZG9fZW5xdWV1ZV9lbGVtKHN0cnVjdCBydGVfcmluZyAqciwgdm9pZCAq IGNvbnN0IG9ial90YWJsZSwNCiAgICAgICAgaWYgKG4gPT0gMCkNCiAgICAgICAgICAgICAgICBn b3RvIGVuZDsNCg0KLSAgICAgICBFTlFVRVVFX1BUUlNfR0VOKHIsICZyWzFdLCBwcm9kX2hlYWQs IG9ial90YWJsZSwgZXNpemUsIG4pOw0KKyAgICAgICBlbnF1ZXVlX2VsZW1zKHIsICZyWzFdLCBw cm9kX2hlYWQsIG9ial90YWJsZSwgbiwgZXNpemUpOw0KDQogICAgICAgIHVwZGF0ZV90YWlsKCZy LT5wcm9kLCBwcm9kX2hlYWQsIHByb2RfbmV4dCwgaXNfc3AsIDEpOw0KIGVuZDoNCkBAIC0yNzks NyArMjc4LDcgQEAgX19ydGVfcmluZ19kb19kZXF1ZXVlX2VsZW0oc3RydWN0IHJ0ZV9yaW5nICpy LCB2b2lkICpvYmpfdGFibGUsDQogICAgICAgIGlmIChuID09IDApDQogICAgICAgICAgICAgICAg Z290byBlbmQ7DQoNCi0gICAgICAgREVRVUVVRV9QVFJTX0dFTihyLCAmclsxXSwgY29uc19oZWFk LCBvYmpfdGFibGUsIGVzaXplLCBuKTsNCisgICAgICAgZGVxdWV1ZV9lbGVtcyhyLCAmclsxXSwg Y29uc19oZWFkLCBvYmpfdGFibGUsIG4sIGVzaXplKTsNCg0KICAgICAgICB1cGRhdGVfdGFpbCgm ci0+Y29ucywgY29uc19oZWFkLCBjb25zX25leHQsIGlzX3NjLCAwKTsNCg0KLS0NCjIuMTcuMQ0K DQoNCg==