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=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham 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 EC936CA9EB5 for ; Mon, 21 Oct 2019 09:04:47 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 6E7AF20873 for ; Mon, 21 Oct 2019 09:04:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6E7AF20873 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.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 C3A664CE4; Mon, 21 Oct 2019 11:04:46 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 972BA4C99 for ; Mon, 21 Oct 2019 11:04:44 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Oct 2019 02:04:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,323,1566889200"; d="scan'208";a="398601326" Received: from irsmsx106.ger.corp.intel.com ([163.33.3.31]) by fmsmga006.fm.intel.com with ESMTP; 21 Oct 2019 02:04:41 -0700 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.252]) by IRSMSX106.ger.corp.intel.com ([169.254.8.185]) with mapi id 14.03.0439.000; Mon, 21 Oct 2019 10:04:40 +0100 From: "Ananyev, Konstantin" To: Honnappa Nagarahalli , Jerin Jacob 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 , nd Thread-Topic: [dpdk-dev] [PATCH v4 1/2] lib/ring: apis to support configurable element size Thread-Index: AQHVfkvmrG5Kyu6ZXEWJeUYrxswBkqdVxOuAgASfoeCAAGP4AIAAqIDwgALNTICAAIYKsIAAfeKAgAAyfYCAAENBAIAAUAoAgACYtzCAA6ELAIAAnfvQ Date: Mon, 21 Oct 2019 09:04:39 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725801A8C6D3E4@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> <2601191342CEEE43887BDE71AB97725801A8C6B54E@IRSMSX104.ger.corp.intel.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: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTdiZmNhNTUtNGQxZi00MzZlLWExYzktZjUwMDExNTU1MTYzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVWxLVFwvNTV6VXFWYUxXWXpjejdaV2FhQzZQSStsdzVQVGtualJjNnJEYmhZQys3MjlDVyt1NEx3bklVS1dRZk8ifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [163.33.239.182] 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" DQoNCj4gPg0KPiA+IGZpeCBwYXRjaA0KPiA+ID09PT09PT0NCj4gPg0KPiA+IEZyb20gYTJiZTVh OWIxMzYzMzNhNTZkNDY2ZWYwNDJjNjU1ZTUyMmNhNzAxMiBNb24gU2VwIDE3IDAwOjAwOjAwDQo+ ID4gMjAwMQ0KPiA+IEZyb206IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2 QGludGVsLmNvbT4NCj4gPiBEYXRlOiBGcmksIDE4IE9jdCAyMDE5IDE1OjUwOjQzICswMTAwDQo+ ID4gU3ViamVjdDogW1BBVENIXSBmaXgxDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBLb25zdGFu dGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4g IGxpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmggfCA0ICsrLS0NCj4gPiAgMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1n aXQgYS9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oIGIvbGliL2xpYnJ0ZV9yaW5nL3J0 ZV9yaW5nX2VsZW0uaA0KPiA+IGluZGV4IDkyZTkyZjE1MC4uNWUxODE5MDY5IDEwMDY0NA0KPiA+ IC0tLSBhL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmgNCj4gPiArKysgYi9saWIvbGli cnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oDQo+ID4gQEAgLTExOCw3ICsxMTgsNyBAQCBzdHJ1Y3Qg cnRlX3JpbmcgKnJ0ZV9yaW5nX2NyZWF0ZV9lbGVtKGNvbnN0IGNoYXINCj4gPiAqbmFtZSwgdW5z aWduZWQgY291bnQsDQo+ID4gICAgICAgICB1aW50MzJfdCBzeiA9IG4gKiAoZXNpemUgLyBzaXpl b2YodWludDMyX3QpKTsgXA0KPiA+ICAgICAgICAgaWYgKGxpa2VseShpZHggKyBuIDwgc2l6ZSkp IHsgXA0KPiA+ICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgKHN6ICYgKCh+KHVuc2ln bmVkKTB4NykpKTsgaSArPSA4LCBpZHggKz0gOCkgeyBcDQo+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgbWVtY3B5IChyaW5nICsgaSwgb2JqICsgaSwgOCAqIHNpemVvZiAodWludDMyX3QpKTsg XA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweSAocmluZyArIGlkeCwgb2JqICsg aSwgOCAqIHNpemVvZg0KPiA+ICsgKHVpbnQzMl90KSk7IFwNCj4gPiAgICAgICAgICAgICAgICAg fSBcDQo+ID4gICAgICAgICAgICAgICAgIHN3aXRjaCAobiAmIDB4NykgeyBcDQo+ID4gICAgICAg ICAgICAgICAgIGNhc2UgNzogXA0KPiA+IEBAIC0xNTMsNyArMTUzLDcgQEAgc3RydWN0IHJ0ZV9y aW5nICpydGVfcmluZ19jcmVhdGVfZWxlbShjb25zdCBjaGFyDQo+ID4gKm5hbWUsIHVuc2lnbmVk IGNvdW50LA0KPiA+ICAgICAgICAgdWludDMyX3Qgc3ogPSBuICogKGVzaXplIC8gc2l6ZW9mKHVp bnQzMl90KSk7IFwNCj4gPiAgICAgICAgIGlmIChsaWtlbHkoaWR4ICsgbiA8IHNpemUpKSB7IFwN Cj4gPiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IChzeiAmICgofih1bnNpZ25lZCkw eDcpKSk7IGkgKz0gOCwgaWR4ICs9IDgpIHsgXA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg IG1lbWNweSAob2JqICsgaSwgcmluZyArIGksIDggKiBzaXplb2YgKHVpbnQzMl90KSk7IFwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkgKG9iaiArIGksIHJpbmcgKyBpZHgsIDgg KiBzaXplb2YNCj4gQWN0dWFsbHksIHRoaXMgZml4IGFsb25lIGlzIG5vdCBlbm91Z2guICdpZHgn IG5lZWRzIHRvIGJlIG5vcm1hbGl6ZWQgdG8gZWxlbWVudHMgb2YgdHlwZSAndWludDMyX3QnLg0K PiANCj4gPiArICh1aW50MzJfdCkpOyBcDQo+ID4gICAgICAgICAgICAgICAgIH0gXA0KPiA+ICAg ICAgICAgICAgICAgICBzd2l0Y2ggKG4gJiAweDcpIHsgXA0KPiA+ICAgICAgICAgICAgICAgICBj YXNlIDc6IFwNCj4gPiAtLQ0KPiA+IDIuMTcuMQ0KPiA+DQo+ID4gdXBkYXRlIHBhdGNoIChyZW1v dmUgbWFjcm9zKQ0KPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPg0KPiA+IEZyb20g MThiMzg4ZTg3N2I5N2UyNDNmODA3ZjI3YTMyM2U4NzZiMzA4NjlkZCBNb24gU2VwIDE3IDAwOjAw OjAwDQo+ID4gMjAwMQ0KPiA+IEZyb206IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5h bmFueWV2QGludGVsLmNvbT4NCj4gPiBEYXRlOiBGcmksIDE4IE9jdCAyMDE5IDE3OjM1OjQzICsw MTAwDQo+ID4gU3ViamVjdDogW1BBVENIXSB1cGRhdGUxDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5 OiBLb25zdGFudGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+ID4g LS0tDQo+ID4gIGxpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmggfCAxNDEgKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDcwIGluc2VydGlv bnMoKyksIDcxIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVf cmluZy9ydGVfcmluZ19lbGVtLmggYi9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oDQo+ ID4gaW5kZXggNWUxODE5MDY5Li5lYjcwNmIxMmYgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0 ZV9yaW5nL3J0ZV9yaW5nX2VsZW0uaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfcmluZy9ydGVfcmlu Z19lbGVtLmgNCj4gPiBAQCAtMTA5LDc1ICsxMDksNzQgQEAgX19ydGVfZXhwZXJpbWVudGFsICBz dHJ1Y3QgcnRlX3JpbmcNCj4gPiAqcnRlX3JpbmdfY3JlYXRlX2VsZW0oY29uc3QgY2hhciAqbmFt ZSwgdW5zaWduZWQgY291bnQsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBlc2l6ZSwgaW50IHNvY2tldF9pZCwgdW5zaWduZWQgZmxhZ3MpOw0KPiA+DQo+ID4g LSNkZWZpbmUgRU5RVUVVRV9QVFJTX0dFTihyLCByaW5nX3N0YXJ0LCBwcm9kX2hlYWQsIG9ial90 YWJsZSwgZXNpemUsIG4pDQo+ID4gZG8geyBcDQo+ID4gLSAgICAgICB1bnNpZ25lZCBpbnQgaTsg XA0KPiA+IC0gICAgICAgY29uc3QgdWludDMyX3Qgc2l6ZSA9IChyKS0+c2l6ZTsgXA0KPiA+IC0g ICAgICAgdWludDMyX3QgaWR4ID0gcHJvZF9oZWFkICYgKHIpLT5tYXNrOyBcDQo+ID4gLSAgICAg ICB1aW50MzJfdCAqcmluZyA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQ7IFwNCj4gPiAtICAgICAg IHVpbnQzMl90ICpvYmogPSAodWludDMyX3QgKilvYmpfdGFibGU7IFwNCj4gPiAtICAgICAgIHVp bnQzMl90IHN6ID0gbiAqIChlc2l6ZSAvIHNpemVvZih1aW50MzJfdCkpOyBcDQo+ID4gLSAgICAg ICBpZiAobGlrZWx5KGlkeCArIG4gPCBzaXplKSkgeyBcDQo+ID4gLSAgICAgICAgICAgICAgIGZv ciAoaSA9IDA7IGkgPCAoc3ogJiAoKH4odW5zaWduZWQpMHg3KSkpOyBpICs9IDgsIGlkeCArPSA4 KSB7IFwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkgKHJpbmcgKyBpZHgsIG9i aiArIGksIDggKiBzaXplb2YgKHVpbnQzMl90KSk7IFwNCj4gPiAtICAgICAgICAgICAgICAgfSBc DQo+ID4gLSAgICAgICAgICAgICAgIHN3aXRjaCAobiAmIDB4NykgeyBcDQo+ID4gLSAgICAgICAg ICAgICAgIGNhc2UgNzogXA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHJpbmdbaWR4Kytd ID0gb2JqW2krK107IC8qIGZhbGx0aHJvdWdoICovIFwNCj4gPiAtICAgICAgICAgICAgICAgY2Fz ZSA2OiBcDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgrK10gPSBvYmpbaSsr XTsgLyogZmFsbHRocm91Z2ggKi8gXA0KPiA+IC0gICAgICAgICAgICAgICBjYXNlIDU6IFwNCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICByaW5nW2lkeCsrXSA9IG9ialtpKytdOyAvKiBmYWxs dGhyb3VnaCAqLyBcDQo+ID4gLSAgICAgICAgICAgICAgIGNhc2UgNDogXA0KPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgIHJpbmdbaWR4KytdID0gb2JqW2krK107IC8qIGZhbGx0aHJvdWdoICov IFwNCj4gPiAtICAgICAgICAgICAgICAgY2FzZSAzOiBcDQo+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgcmluZ1tpZHgrK10gPSBvYmpbaSsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KPiA+IC0g ICAgICAgICAgICAgICBjYXNlIDI6IFwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICByaW5n W2lkeCsrXSA9IG9ialtpKytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQo+ID4gLSAgICAgICAgICAg ICAgIGNhc2UgMTogXA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHJpbmdbaWR4KytdID0g b2JqW2krK107IC8qIGZhbGx0aHJvdWdoICovIFwNCj4gPiAtICAgICAgICAgICAgICAgfSBcDQo+ ID4gLSAgICAgICB9IGVsc2UgeyBcDQo+ID4gLSAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGlk eCA8IHNpemU7IGkrKywgaWR4KyspXA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHJpbmdb aWR4XSA9IG9ialtpXTsgXA0KPiA+IC0gICAgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGkgPCBu OyBpKyssIGlkeCsrKSBcDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHhdID0g b2JqW2ldOyBcDQo+ID4gLSAgICAgICB9IFwNCj4gPiAtfSB3aGlsZSAoMCkNCj4gPiAtDQo+ID4g LSNkZWZpbmUgREVRVUVVRV9QVFJTX0dFTihyLCByaW5nX3N0YXJ0LCBjb25zX2hlYWQsIG9ial90 YWJsZSwgZXNpemUsIG4pDQo+ID4gZG8geyBcDQo+ID4gLSAgICAgICB1bnNpZ25lZCBpbnQgaTsg XA0KPiA+IC0gICAgICAgdWludDMyX3QgaWR4ID0gY29uc19oZWFkICYgKHIpLT5tYXNrOyBcDQo+ ID4gLSAgICAgICBjb25zdCB1aW50MzJfdCBzaXplID0gKHIpLT5zaXplOyBcDQo+ID4gLSAgICAg ICB1aW50MzJfdCAqcmluZyA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQ7IFwNCj4gPiAtICAgICAg IHVpbnQzMl90ICpvYmogPSAodWludDMyX3QgKilvYmpfdGFibGU7IFwNCj4gPiAtICAgICAgIHVp bnQzMl90IHN6ID0gbiAqIChlc2l6ZSAvIHNpemVvZih1aW50MzJfdCkpOyBcDQo+ID4gLSAgICAg ICBpZiAobGlrZWx5KGlkeCArIG4gPCBzaXplKSkgeyBcDQo+ID4gLSAgICAgICAgICAgICAgIGZv ciAoaSA9IDA7IGkgPCAoc3ogJiAoKH4odW5zaWduZWQpMHg3KSkpOyBpICs9IDgsIGlkeCArPSA4 KSB7IFwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkgKG9iaiArIGksIHJpbmcg KyBpZHgsIDggKiBzaXplb2YgKHVpbnQzMl90KSk7IFwNCj4gPiAtICAgICAgICAgICAgICAgfSBc DQo+ID4gLSAgICAgICAgICAgICAgIHN3aXRjaCAobiAmIDB4NykgeyBcDQo+ID4gLSAgICAgICAg ICAgICAgIGNhc2UgNzogXA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIG9ialtpKytdID0g cmluZ1tpZHgrK107IC8qIGZhbGx0aHJvdWdoICovIFwNCj4gPiAtICAgICAgICAgICAgICAgY2Fz ZSA2OiBcDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgb2JqW2krK10gPSByaW5nW2lkeCsr XTsgLyogZmFsbHRocm91Z2ggKi8gXA0KPiA+IC0gICAgICAgICAgICAgICBjYXNlIDU6IFwNCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICBvYmpbaSsrXSA9IHJpbmdbaWR4KytdOyAvKiBmYWxs dGhyb3VnaCAqLyBcDQo+ID4gLSAgICAgICAgICAgICAgIGNhc2UgNDogXA0KPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgIG9ialtpKytdID0gcmluZ1tpZHgrK107IC8qIGZhbGx0aHJvdWdoICov IFwNCj4gPiAtICAgICAgICAgICAgICAgY2FzZSAzOiBcDQo+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgb2JqW2krK10gPSByaW5nW2lkeCsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KPiA+IC0g ICAgICAgICAgICAgICBjYXNlIDI6IFwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBvYmpb aSsrXSA9IHJpbmdbaWR4KytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQo+ID4gLSAgICAgICAgICAg ICAgIGNhc2UgMTogXA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIG9ialtpKytdID0gcmlu Z1tpZHgrK107IC8qIGZhbGx0aHJvdWdoICovIFwNCj4gPiAtICAgICAgICAgICAgICAgfSBcDQo+ ID4gLSAgICAgICB9IGVsc2UgeyBcDQo+ID4gLSAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGlk eCA8IHNpemU7IGkrKywgaWR4KyspIFwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBvYmpb aV0gPSByaW5nW2lkeF07IFwNCj4gPiAtICAgICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpIDwg bjsgaSsrLCBpZHgrKykgXA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIG9ialtpXSA9IHJp bmdbaWR4XTsgXA0KPiA+IC0gICAgICAgfSBcDQo+ID4gLX0gd2hpbGUgKDApDQo+ID4gK3N0YXRp YyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiArY29weV9lbGVtcyh1aW50MzJfdCBkdTMy W10sIGNvbnN0IHVpbnQzMl90IHN1MzJbXSwgdWludDMyX3QgbnVtLA0KPiA+ICt1aW50MzJfdCBl c2l6ZSkgew0KPiA+ICsgICAgICAgdWludDMyX3QgaSwgc3o7DQo+ID4gKw0KPiA+ICsgICAgICAg c3ogPSAobnVtICogZXNpemUpIC8gc2l6ZW9mKHVpbnQzMl90KTsNCj4gPiArDQo+ID4gKyAgICAg ICBmb3IgKGkgPSAwOyBpIDwgKHN6ICYgfjcpOyBpICs9IDgpDQo+ID4gKyAgICAgICAgICAgICAg IG1lbWNweShkdTMyICsgaSwgc3UzMiArIGksIDggKiBzaXplb2YodWludDMyX3QpKTsNCj4gPiAr DQo+ID4gKyAgICAgICBzd2l0Y2ggKHN6ICYgNykgew0KPiA+ICsgICAgICAgY2FzZSA3OiBkdTMy W3N6IC0gN10gPSBzdTMyW3N6IC0gN107IC8qIGZhbGx0aHJvdWdoICovDQo+ID4gKyAgICAgICBj YXNlIDY6IGR1MzJbc3ogLSA2XSA9IHN1MzJbc3ogLSA2XTsgLyogZmFsbHRocm91Z2ggKi8NCj4g PiArICAgICAgIGNhc2UgNTogZHUzMltzeiAtIDVdID0gc3UzMltzeiAtIDVdOyAvKiBmYWxsdGhy b3VnaCAqLw0KPiA+ICsgICAgICAgY2FzZSA0OiBkdTMyW3N6IC0gNF0gPSBzdTMyW3N6IC0gNF07 IC8qIGZhbGx0aHJvdWdoICovDQo+ID4gKyAgICAgICBjYXNlIDM6IGR1MzJbc3ogLSAzXSA9IHN1 MzJbc3ogLSAzXTsgLyogZmFsbHRocm91Z2ggKi8NCj4gPiArICAgICAgIGNhc2UgMjogZHUzMltz eiAtIDJdID0gc3UzMltzeiAtIDJdOyAvKiBmYWxsdGhyb3VnaCAqLw0KPiA+ICsgICAgICAgY2Fz ZSAxOiBkdTMyW3N6IC0gMV0gPSBzdTMyW3N6IC0gMV07IC8qIGZhbGx0aHJvdWdoICovDQo+ID4g KyAgICAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5l IHZvaWQNCj4gPiArZW5xdWV1ZV9lbGVtcyhzdHJ1Y3QgcnRlX3JpbmcgKnIsIHZvaWQgKnJpbmdf c3RhcnQsIHVpbnQzMl90IHByb2RfaGVhZCwNCj4gPiArICAgICAgICAgICAgICAgdm9pZCAqb2Jq X3RhYmxlLCB1aW50MzJfdCBudW0sIHVpbnQzMl90IGVzaXplKSB7DQo+ID4gKyAgICAgICB1aW50 MzJfdCBpZHgsIG47DQo+ID4gKyAgICAgICB1aW50MzJfdCAqZHUzMjsNCj4gPiArICAgICAgIGNv bnN0IHVpbnQzMl90ICpzdTMyOw0KPiA+ICsNCj4gPiArICAgICAgIGNvbnN0IHVpbnQzMl90IHNp emUgPSByLT5zaXplOw0KPiA+ICsNCj4gPiArICAgICAgIGlkeCA9IHByb2RfaGVhZCAmIChyKS0+ bWFzazsNCj4gU2FtZSBoZXJlLCAnaWR4JyBuZWVkcyB0byBiZSBub3JtYWxpemVkIHRvIGVsZW1l bnRzIG9mIHR5cGUgJ3VpbnQzMl90JyBhbmQgc2ltaWxhciBmaXhlcyBvbiBvdGhlciB2YXJpYWJs ZXMuDQoNClVwcyB0cnVlLCBteSBiYWQuDQoNCj4gSSBoYXZlIGFwcGxpZWQgeW91cg0KPiBzdWdn ZXN0aW9uIGluIDYvNiBpbiB2NiBhbG9uZyB3aXRoIG15IGNvcnJlY3Rpb25zLiBUaGUgcnRlX3Jp bmdfZWxlbSB0ZXN0IGNhc2VzIGFyZSBhZGRlZCBpbiAzLzYuIEkgaGF2ZSB2ZXJpZmllZCB0aGF0 IHRoZXkgYXJlIHJ1bm5pbmcNCj4gZmluZSAodGhleSBhcmUgZG9uZSBmb3IgNjRiIGFsb25lLCB3 aWxsIGFkZCBtb3JlKS4gSG9wZWZ1bGx5LCB0aGVyZSBhcmUgbm8gbW9yZSBlcnJvcnMuDQoNCkNv b2wsIHdlJ2xsIHJlLXJ1biBwZXJmIHRlc3Qgb20gbXkgYm94Lg0KVGhhbmtzDQpLb25zdGFudGlu DQoNCj4gDQo+ID4gKw0KPiA+ICsgICAgICAgZHUzMiA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQg KyBpZHg7DQo+ID4gKyAgICAgICBzdTMyID0gb2JqX3RhYmxlOw0KPiA+ICsNCj4gPiArICAgICAg IGlmIChpZHggKyBudW0gPCBzaXplKQ0KPiA+ICsgICAgICAgICAgICAgICBjb3B5X2VsZW1zKGR1 MzIsIHN1MzIsIG51bSwgZXNpemUpOw0KPiA+ICsgICAgICAgZWxzZSB7DQo+ID4gKyAgICAgICAg ICAgICAgIG4gPSBzaXplIC0gaWR4Ow0KPiA+ICsgICAgICAgICAgICAgICBjb3B5X2VsZW1zKGR1 MzIsIHN1MzIsIG4sIGVzaXplKTsNCj4gPiArICAgICAgICAgICAgICAgY29weV9lbGVtcyhyaW5n X3N0YXJ0LCBzdTMyICsgbiwgbnVtIC0gbiwgZXNpemUpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ID4gK2RlcXVl dWVfZWxlbXMoc3RydWN0IHJ0ZV9yaW5nICpyLCB2b2lkICpyaW5nX3N0YXJ0LCB1aW50MzJfdCBj b25zX2hlYWQsDQo+ID4gKyAgICAgICAgICAgICAgIHZvaWQgKm9ial90YWJsZSwgdWludDMyX3Qg bnVtLCB1aW50MzJfdCBlc2l6ZSkgew0KPiA+ICsgICAgICAgdWludDMyX3QgaWR4LCBuOw0KPiA+ ICsgICAgICAgdWludDMyX3QgKmR1MzI7DQo+ID4gKyAgICAgICBjb25zdCB1aW50MzJfdCAqc3Uz MjsNCj4gPiArDQo+ID4gKyAgICAgICBjb25zdCB1aW50MzJfdCBzaXplID0gci0+c2l6ZTsNCj4g PiArDQo+ID4gKyAgICAgICBpZHggPSBjb25zX2hlYWQgJiAociktPm1hc2s7DQo+ID4gKw0KPiA+ ICsgICAgICAgc3UzMiA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQgKyBpZHg7DQo+ID4gKyAgICAg ICBkdTMyID0gb2JqX3RhYmxlOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChpZHggKyBudW0gPCBz aXplKQ0KPiA+ICsgICAgICAgICAgICAgICBjb3B5X2VsZW1zKGR1MzIsIHN1MzIsIG51bSwgZXNp emUpOw0KPiA+ICsgICAgICAgZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgIG4gPSBzaXplIC0g aWR4Ow0KPiA+ICsgICAgICAgICAgICAgICBjb3B5X2VsZW1zKGR1MzIsIHN1MzIsIG4sIGVzaXpl KTsNCj4gPiArICAgICAgICAgICAgICAgY29weV9lbGVtcyhkdTMyICsgbiwgcmluZ19zdGFydCwg bnVtIC0gbiwgZXNpemUpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4NCj4gPiAgLyogQmV0 d2VlbiBsb2FkIGFuZCBsb2FkLiB0aGVyZSBtaWdodCBiZSBjcHUgcmVvcmRlciBpbiB3ZWFrIG1v ZGVsDQo+ID4gICAqIChwb3dlcnBjL2FybSkuDQo+ID4gQEAgLTIzMiw3ICsyMzEsNyBAQCBfX3J0 ZV9yaW5nX2RvX2VucXVldWVfZWxlbShzdHJ1Y3QgcnRlX3JpbmcgKnIsIHZvaWQNCj4gPiAqIGNv bnN0IG9ial90YWJsZSwNCj4gPiAgICAgICAgIGlmIChuID09IDApDQo+ID4gICAgICAgICAgICAg ICAgIGdvdG8gZW5kOw0KPiA+DQo+ID4gLSAgICAgICBFTlFVRVVFX1BUUlNfR0VOKHIsICZyWzFd LCBwcm9kX2hlYWQsIG9ial90YWJsZSwgZXNpemUsIG4pOw0KPiA+ICsgICAgICAgZW5xdWV1ZV9l bGVtcyhyLCAmclsxXSwgcHJvZF9oZWFkLCBvYmpfdGFibGUsIG4sIGVzaXplKTsNCj4gPg0KPiA+ ICAgICAgICAgdXBkYXRlX3RhaWwoJnItPnByb2QsIHByb2RfaGVhZCwgcHJvZF9uZXh0LCBpc19z cCwgMSk7DQo+ID4gIGVuZDoNCj4gPiBAQCAtMjc5LDcgKzI3OCw3IEBAIF9fcnRlX3JpbmdfZG9f ZGVxdWV1ZV9lbGVtKHN0cnVjdCBydGVfcmluZyAqciwgdm9pZA0KPiA+ICpvYmpfdGFibGUsDQo+ ID4gICAgICAgICBpZiAobiA9PSAwKQ0KPiA+ICAgICAgICAgICAgICAgICBnb3RvIGVuZDsNCj4g Pg0KPiA+IC0gICAgICAgREVRVUVVRV9QVFJTX0dFTihyLCAmclsxXSwgY29uc19oZWFkLCBvYmpf dGFibGUsIGVzaXplLCBuKTsNCj4gPiArICAgICAgIGRlcXVldWVfZWxlbXMociwgJnJbMV0sIGNv bnNfaGVhZCwgb2JqX3RhYmxlLCBuLCBlc2l6ZSk7DQo+ID4NCj4gPiAgICAgICAgIHVwZGF0ZV90 YWlsKCZyLT5jb25zLCBjb25zX2hlYWQsIGNvbnNfbmV4dCwgaXNfc2MsIDApOw0KPiA+DQo+ID4g LS0NCj4gPiAyLjE3LjENCj4gPg0KDQo=