From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 67E30A0C41; Tue, 22 Jun 2021 10:34:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DA1EA4003F; Tue, 22 Jun 2021 10:34:00 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 503884003C for ; Tue, 22 Jun 2021 10:33:59 +0200 (CEST) IronPort-SDR: wXiiB6wfdVn06OmMdoF7TRC6ufweopuXFUNOxKb03Ff3L0bdAKR4oCS4xfnLaZdrarcedVWVVi sDguSigueU7g== X-IronPort-AV: E=McAfee;i="6200,9189,10022"; a="187392609" X-IronPort-AV: E=Sophos;i="5.83,291,1616482800"; d="scan'208";a="187392609" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jun 2021 01:33:51 -0700 IronPort-SDR: +iUmR9CGO+53vsodhnjCzIl8Ph1iJEecQeq4+lADQNK/uG7xEXPl5fyqup5l3T6B5H/yUBPdqS vRR6ACWMClYQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,291,1616482800"; d="scan'208";a="406258022" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 22 Jun 2021 01:33:51 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Tue, 22 Jun 2021 01:33:51 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Tue, 22 Jun 2021 01:33:51 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Tue, 22 Jun 2021 01:33:51 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.44) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Tue, 22 Jun 2021 01:33:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UgVJ+EbebkzEnX2D9pEi3POiSiEfEcWHd7y00VVNjQzlaXtMX7zJzN5vPIN0CbBValU4uFwV3y7wRXfo0Uf+pIfJvDo9YE5iL+GxkXamswnMfmzHuxc3R0oc1DUB3TjTVRWQKoYIhcnU4kXC4ZICjv3+H1xP06ZrkyYbS4BDx4a1ey2SGJFOyXuChcuDRL7ip/uwY9G78yORJQso23FLV7+hjDE3t/Nva/oWGIEjGHOsmkxvztbXzCbl8tOsxfq+xRxRIma2OnqF/UlSOFjEi5f96R+jSVA4G7q0lGCeFUnLY2nKYuXmNXKE2b0CFzlMa87zYDRgyoKLTX7mXqydmQ== 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=3YtY6ldR5OQlFjhkZhAPtlkooLkopOBSl1701rBf0Ao=; b=L2eIUYwbHEAvc+CPkCufqIDQ5zLoi0jZpS5MJQnQQlpu96dXGKrvQa47w7AaPElC+HLmOEmDPZ3G6YPYMbqkyiEpr57Q2In5fADzg/lvYbMC1BidEzEpbzHNvpBWArj2or7yeL05bMBiiliZuUhYcMKAS5gfevXSyf8SC2LRiH/Azs3Cie5JEvemWWbD8N7LLiucBJMwJosHU+cAl1xb0fx/apdcd2bVWrH8w/LFjX99Zn9znZazIR30IccuC0271BfXLrfIKrzeXMUlgfDFjAOSY1rKaCFhv0sNcboZwj/+mOXkR8MEi6FJloA3RzDbAap4gt+cTFzxL0FgcM2vxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3YtY6ldR5OQlFjhkZhAPtlkooLkopOBSl1701rBf0Ao=; b=JD9TLsMQroSDdsPZm7VzsC2MYHOORf9+7JKY9v+gFN7Z0mm0AoYt9vev5nTNYvnKyukowG7iw/2Wed/AqtiNxQ3MVf/hQSc8PLei54HrvWJE95VO5mfJqhfzr4XYGuQHoaCDOgjrHHj+c7TDrRsM6mDzHAIrizBp8eggSi1n8y4= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB3019.namprd11.prod.outlook.com (2603:10b6:5:67::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.22; Tue, 22 Jun 2021 08:33:48 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4242.023; Tue, 22 Jun 2021 08:33:48 +0000 From: "Ananyev, Konstantin" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Yigit, Ferruh" , Thomas Monjalon , "Richardson, Bruce" CC: "dev@dpdk.org" , "olivier.matz@6wind.com" , "andrew.rybchenko@oktetlabs.ru" , "honnappa.nagarahalli@arm.com" , "jerinj@marvell.com" , "gakhil@marvell.com" Thread-Topic: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays Thread-Index: AQHXYQxT3nKj3OToOE+g04oypCLg2asTbdkAgAAOoICAAATCgIAAFeZggAAOq/CABIvGAIAAHL6ggAAPB4CAATs50IAEplTQgAApWQCAAAaAEIAAD6vwgAE+xUA= Date: Tue, 22 Jun 2021 08:33:48 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> <0bb118ba-2658-a7d7-ad8f-bf27f62849f7@intel.com> <98CBD80474FA8B44BF855DF32C47DC35C6187A@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35C6187B@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35C6187B@smartserver.smartshare.dk> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: smartsharesystems.com; dkim=none (message not signed) header.d=none; smartsharesystems.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d15b5956-4ba4-4c32-d6e1-08d935587508 x-ms-traffictypediagnostic: DM6PR11MB3019: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fInAY85PINVSd0tJhRN5NNScbzxklw/9CSyi2a/GudqCSZfVXzbQerFyhjljyYfVsvVk8Pad9Ovmnclp0XAG/fnBYmhbhy2YEdPx4vOKNGpUkMFP1iX7vQGquYK54HuoxlT2jfichuiP38qZcAATk3hG54UnftnBXwbWjmr/oR0NW+yGj/L8Xhs54laSbFTS/QKAUOnKkhquwSGLSY3xLbrRUwt0Lj8LZi8eWvgIqJaDktS7AC2AGgGSR3ESe1Uby6zn5vicTwlsK6sQcHyOKFEMGNisFNwPAasSap0Cb+KWcQfWivURKw/DvTKVX5DxkE0t2XUMvPhEiJIHGWfn2cNN5ICWblWyPI0sbXCZmOkqGz2MFmDKJw4r3KrH5x3VfjWCwEv6f4OgBQk2+bg7SLsiDDwt2MGkXVI2ayDhgxce0PrvubMmfK/t8/4h5Q0hm6H+KzfbXht8hs1PrF12OAyUvVK2PZ8zzDkTk7YRSpJQ1Q9dNQ+rkaQr4VeR1OxE67kwJkfYENmmZGMBwxJcDX6/wmNhc1LEw0mRUgJwkRC+9uKpj9DlwE0nMZ8vCu90+OhutlSQMl46/tiKh11DnHBEvJ426bcf2ZRak8aSCDY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(39860400002)(346002)(366004)(376002)(396003)(54906003)(55236004)(186003)(4326008)(83380400001)(9686003)(110136005)(6636002)(478600001)(5660300002)(86362001)(26005)(2906002)(66446008)(66556008)(38100700002)(66476007)(52536014)(33656002)(7696005)(6506007)(64756008)(8676002)(8936002)(66946007)(71200400001)(76116006)(55016002)(316002)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UElqemxJTW5KSnBzYTJIaytkUHVCM05NdG9YTFNnVUtNbk8vK2Q4bHNSdHNq?= =?utf-8?B?T0l3d0I3MU1TYW9oeXJBMmFKNXlKMlk0cm1tL001dDZib3J0V0lHZWphU3d3?= =?utf-8?B?NzYzeXpZUGJaNktyOWFaYU95RitIYmIyWm1IdVFDOVA0c1hrN1FONFRhYWd1?= =?utf-8?B?M3BsNUd5bk55THd2djhaMVltNFFEWjJDTlpFbVBmNDZSSW9EbHgwdks4MENX?= =?utf-8?B?Qzc5aUxoM0tRSkw2UGpNL2RsbzErdU1KYjAvVlVXODNuWUdJY2t1MWRncCtT?= =?utf-8?B?R1BFNk1CZGZJSWllQWhrNzR4ay9zY1dZMC9yNExxNmQ4V1prUCthQmQ1c3hN?= =?utf-8?B?UFlzWVFUdmR1YU1pNWxNRHNsOHFkd1JGeTRBTTN4RUNCMW85NXZiNzB2c1dh?= =?utf-8?B?R3o2S3lJZWlMOC8wYk85L2JVbzZXUWN4cjRHK1hmOThocHc3TEdRN1NLbDE2?= =?utf-8?B?TEk4VWtLK0txYUJiV3MxRkhpWlllYU1HT04zRDRjUkIzdHFNTWJ5ZUtka3NR?= =?utf-8?B?QWlDZTFlcUg3TkFEdWJFOXcrd2pHVDFFVXRGTEo5aWdZMnl1eWFKaUZ5WGRP?= =?utf-8?B?cU85S01pME1qcUdHWG9tVGM1VktKZXZ2SzdKSGdMQktFdktvZEg3R0VnTS82?= =?utf-8?B?bHFZWmdiT2FJMFFnTElZQUJkSmVuZHRZOUtzcU9DcmNtNHRrdHlwNGR2TUZ0?= =?utf-8?B?aUlLc0tqbzQ1bG54U1FOR0htQithSmdFK3NLeldwQTArTUxIUWxuQVhsbXpG?= =?utf-8?B?QytwSk9OYXpwODlVUE00WTFtZ3ZFUitxUmZ6bFpSVmxYQU5oKzM5c2tmZFFr?= =?utf-8?B?bVFyWG8ybEZrSFB5Ukh2U3dCK3hkZUNNd0hIdHVpN0ZJbzRZV2tuUW5PTGFF?= =?utf-8?B?NnJJQUpuTW51NUhzNGQwZ3cxS1Y3MC9Mdjc1RVVTK2lreWdaSi9RQWZLMVJ0?= =?utf-8?B?SWxMZlNUQnJOMUg1eWhuRXRuRHBJc0Vhc3JSVThMai9RRkFqL3BKV1Q1RDE1?= =?utf-8?B?RkhSWEY0enhKblRWMmptTlpWRG03VDgwZmtRWWhwK2dkUWhHcFE4TkREZjYv?= =?utf-8?B?ZytVRHpsakZMMERSTUdaeEE1NjR5QkkwKzRLRTRuWEx3ckNSVCtWZzduOGF1?= =?utf-8?B?WVBmZlBUNUNjL1NXUCtEUFJvRkhnN01oVWVsUmh3ZGVWK09MVXlKNGZZVktP?= =?utf-8?B?cjFwMDRadVpobnJPYzVINm9UcHVOZy9uK3BROFJBTUFobG9xM1I2MUtRa0F3?= =?utf-8?B?T0h0MzRhSzE0SUl2MzQra0N6d3JlZ2JMczFTWnVsajRaM3k3Z0VTM2c1cFNm?= =?utf-8?B?UjlZakpRdm5GcllZRTBvQzlVdHhhejc2NnN1a2hYZWZhU2NPWndTaVM4S2VI?= =?utf-8?B?N1ZYQjJHQ2ZaV2dCS2VKRTh5djRIeTN4Vk9YZksrd050MDZTemM1Um9tV2pG?= =?utf-8?B?M0gxQ3huS3cvMS9tOU5WMlNYcXJZRnJsK1RWWVRnMlM2QVc1dkdubUdWK2VZ?= =?utf-8?B?Zk9NMXZmeFBZT2Mya3hMaUdqUTYzU0pJeHJLVmZkU0VDVWNDOUZGdlVsb1ZF?= =?utf-8?B?eWxObzN2M1VDSHgyREVqeWdqNG1VeTZyNy9IeHllWjFyYTNmMSswclhTQlpu?= =?utf-8?B?OUNwSkVCaEFuZ0UwVFVxZW9ldXlCOHR6eWhhQ3hTdVBsOElmekk4aWd0Q1Ry?= =?utf-8?B?QmRtSlFlaHBLYlltdnZwRE5GLzVLWGtUMUpVbkNlcVc0d2xaTTZpeVRZUGsz?= =?utf-8?Q?mNoprsDwXhbL/vS5n1kcRG1p4HQ10k7mg6az0z8?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d15b5956-4ba4-4c32-d6e1-08d935587508 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2021 08:33:48.5704 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jkMWjJhoRBc9BadeoyDvgxZvFc+45vFN8vbooTW0yZofL8aAa269GCKYP/PE/jQRIqqcFKkEMijO3wKjHrkrhzUF5wxNwPv+kUYqnP6eGQw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3019 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" PiANCj4gPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxm IE9mIEFuYW55ZXYsDQo+ID4gS29uc3RhbnRpbg0KPiA+DQo+ID4gPg0KPiA+ID4gPiBGcm9tOiBk ZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIEFuYW55ZXYsDQo+ ID4gPiA+IEtvbnN0YW50aW4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IEhvdyBjYW4gd2UgaGlkZSB0 aGUgY2FsbGJhY2tzIHNpbmNlIHRoZXkgYXJlIHVzZWQgYnkgaW5saW5lDQo+ID4gYnVyc3QNCj4g PiA+ID4gZnVuY3Rpb25zLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBwcm9iYWJseSBJIG93ZSBh IGJldHRlciBleHBsYW5hdGlvbiB0byB3aGF0IEkgbWVhbnQgaW4gZmlyc3QNCj4gPiBtYWlsLg0K PiA+ID4gPiA+IE90aGVyd2lzZSBpdCBzb3VuZHMgY29uZnVzaW5nLg0KPiA+ID4gPiA+IEknbGwg dHJ5IHRvIHdyaXRlIGEgbW9yZSBkZXRhaWxlZCBvbmUgaW4gbmV4dCBmZXcgZGF5cy4NCj4gPiA+ ID4NCj4gPiA+ID4gQWN0dWFsbHkgSSBnYXZlIGl0IGFub3RoZXIgdGhvdWdodCBvdmVyIHdlZWtl bmQsIGFuZCBtaWdodCBiZSB3ZQ0KPiA+IGNhbg0KPiA+ID4gPiBoaWRlIHJ0ZV9ldGhfZGV2X2Ni IGV2ZW4gaW4gYSBzaW1wbGVyIHdheS4gSSdkIHVzZSBldGhfcnhfYnVyc3QoKQ0KPiA+IGFzDQo+ ID4gPiA+IGFuIGV4YW1wbGUsIGJ1dCB0aGUgc2FtZSBwcmluY2lwbGUgYXBwbGllcyB0byBvdGhl ciAnZmFzdCcNCj4gPiBmdW5jdGlvbnMuDQo+ID4gPiA+DQo+ID4gPiA+ICAxLiBOZWVkZWQgY2hh bmdlcyBmb3IgUE1EcyByeF9wa3RfYnVyc3QoKToNCj4gPiA+ID4gICAgIGEpIGNoYW5nZSBmdW5j dGlvbiBwcm90b3R5cGUgdG8gYWNjZXB0ICd1aW50MTZfdCBwb3J0X2lkJyBhbmQNCj4gPiA+ID4g J3VpbnQxNl90IHF1ZXVlX2lkJywNCj4gPiA+ID4gICAgICAgICAgaW5zdGVhZCBvZiBjdXJyZW50 ICd2b2lkIConLg0KPiA+ID4gPiAgICAgYikgRWFjaCBQTUQgcnhfcGt0X2J1cnN0KCkgd2lsbCBo YXZlIHRvIGNhbGwNCj4gPiBydGVfZXRoX3J4X2VwaWxvZygpDQo+ID4gPiA+IGZ1bmN0aW9uIGF0 IHJldHVybi4NCj4gPiA+ID4gICAgICAgICAgVGhpcyAgaW5saW5lIGZ1bmN0aW9uIHdpbGwgZG8g YWxsIENCIGNhbGxzIGZvciB0aGF0IHF1ZXVlLg0KPiA+ID4gPg0KPiA+ID4gPiBUbyBiZSBtb3Jl IHNwZWNpZmljLCBsZXQgc2F5IHdlIGhhdmUgc29tZSBQTUQ6IHh5eiB3aXRoIFJYDQo+ID4gZnVu Y3Rpb246DQo+ID4gPiA+DQo+ID4gPiA+IHVpbnQxNl90DQo+ID4gPiA+IHh5el9yZWN2X3BrdHMo dm9pZCAqcnhfcXVldWUsIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X3BrdHMsIHVpbnQxNl90DQo+ID4g PiA+IG5iX3BrdHMpDQo+ID4gPiA+IHsNCj4gPiA+ID4gICAgICBzdHJ1Y3QgeHl6X3J4X3F1ZXVl ICpyeHEgPSByeF9xdWV1ZTsNCj4gPiA+ID4gICAgICB1aW50MTZfdCBuYl9yeCA9IDA7DQo+ID4g PiA+DQo+ID4gPiA+ICAgICAgLyogZG8gYWN0dWFsIHN0dWZmIGhlcmUgKi8NCj4gPiA+ID4gICAg IC4uLi4NCj4gPiA+ID4gICAgIHJldHVybiBuYl9yeDsNCj4gPiA+ID4gfQ0KPiA+ID4gPg0KPiA+ ID4gPiBJdCB3aWxsIGJlIHRyYW5zZm9ybWVkIHRvOg0KPiA+ID4gPg0KPiA+ID4gPiB1aW50MTZf dA0KPiA+ID4gPiB4eXpfcmVjdl9wa3RzKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVl X2lkLCBzdHJ1Y3QgcnRlX21idWYNCj4gPiA+ID4gKipyeF9wa3RzLCB1aW50MTZfdCBuYl9wa3Rz KQ0KPiA+ID4gPiB7DQo+ID4gPiA+ICAgICAgICAgIHN0cnVjdCB4eXpfcnhfcXVldWUgKnJ4cTsN Cj4gPiA+ID4gICAgICAgICAgdWludDE2X3QgbmJfcng7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAg ICAgIHJ4cSA9IF9ydGVfZXRoX3J4X3Byb2xvZyhwb3J0X2lkLCBxdWV1ZV9pZCk7DQo+ID4gPiA+ ICAgICAgICAgIGlmIChyeHEgPT0gTlVMTCkNCj4gPiA+ID4gICAgICAgICAgICAgIHJldHVybiAw Ow0KPiA+ID4gPiAgICAgICAgICBuYl9yeCA9IF94eXpfcmVhbF9yZWN2X3BrdHMocnhxLCByeF9w a3RzLCBuYl9wa3RzKTsNCj4gPiA+ID4gICAgICAgICAgcmV0dXJuIF9ydGVfZXRoX3J4X2VwaWxv Zyhwb3J0X2lkLCBxdWV1ZV9pZCwgcnhfcGt0cywNCj4gPiA+ID4gbmJfcGt0cyk7DQo+ID4gPiA+ IH0NCj4gPiA+ID4NCj4gPiA+ID4gQW5kIHNvbWV3aGVyZSBpbiBldGhkZXZfcHJpdmF0ZS5oOg0K PiA+ID4gPg0KPiA+ID4gPiBzdGF0aWMgaW5saW5lIHZvaWQgKg0KPiA+ID4gPiBfcnRlX2V0aF9y eF9wcm9sb2codWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQpOw0KPiA+ID4gPiB7 DQo+ID4gPiA+ICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1tw b3J0X2lkXTsNCj4gPiA+ID4NCj4gPiA+ID4gI2lmZGVmIFJURV9FVEhERVZfREVCVUdfUlgNCj4g PiA+ID4gICAgICAgICBSVEVfRVRIX1ZBTElEX1BPUlRJRF9PUl9FUlJfUkVUKHBvcnRfaWQsIE5V TEwpOw0KPiA+ID4gPiAgICAgICAgIFJURV9GVU5DX1BUUl9PUl9FUlJfUkVUKCpkZXYtPnJ4X3Br dF9idXJzdCwgTlVMTCk7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAgaWYgKHF1ZXVlX2lkID49 IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzKSB7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBSVEVf RVRIREVWX0xPRyhFUlIsICJJbnZhbGlkIFJYIHF1ZXVlX2lkPSV1XG4iLA0KPiA+ID4gPiBxdWV1 ZV9pZCk7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gPiA+ID4gICAg ICAgICB9DQo+ID4gPiA+ICNlbmRpZg0KPiA+ID4gPiAgIHJldHVybiBkZXYtPmRhdGEtPnJ4X3F1 ZXVlc1txdWV1ZV9pZF07DQo+ID4gPiA+IH0NCj4gPiA+ID4NCj4gPiA+ID4gc3RhdGljIGlubGlu ZSB1aW50MTZfdA0KPiA+ID4gPiBfcnRlX2V0aF9yeF9lcGlsb2codWludDE2X3QgcG9ydF9pZCwg dWludDE2X3QgcXVldWVfaWQsIHN0cnVjdA0KPiA+IHJ0ZV9tYnVmDQo+ID4gPiA+ICoqcnhfcGt0 cywgY29uc3QgdWludDE2X3QgbmJfcGt0cyk7DQo+ID4gPiA+IHsNCj4gPiA+ID4gICAgIHN0cnVj dCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPiA+ID4N Cj4gPiA+ID4gI2lmZGVmIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MNCj4gPiA+ID4gICAgICAg ICBzdHJ1Y3QgcnRlX2V0aF9yeHR4X2NhbGxiYWNrICpjYjsNCj4gPiA+ID4NCj4gPiA+ID4gICAg ICAgICAvKiBfX0FUT01JQ19SRUxFQVNFIG1lbW9yeSBvcmRlciB3YXMgdXNlZCB3aGVuIHRoZQ0K PiA+ID4gPiAgICAgICAgICAqIGNhbGwgYmFjayB3YXMgaW5zZXJ0ZWQgaW50byB0aGUgbGlzdC4N Cj4gPiA+ID4gICAgICAgICAgKiBTaW5jZSB0aGVyZSBpcyBhIGNsZWFyIGRlcGVuZGVuY3kgYmV0 d2VlbiBsb2FkaW5nDQo+ID4gPiA+ICAgICAgICAgICogY2IgYW5kIGNiLT5mbi9jYi0+bmV4dCwg X19BVE9NSUNfQUNRVUlSRSBtZW1vcnkgb3JkZXIgaXMNCj4gPiA+ID4gICAgICAgICAgKiBub3Qg cmVxdWlyZWQuDQo+ID4gPiA+ICAgICAgICAgICovDQo+ID4gPiA+ICAgICAgICAgY2IgPSBfX2F0 b21pY19sb2FkX24oJmRldi0+cG9zdF9yeF9idXJzdF9jYnNbcXVldWVfaWRdLA0KPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fQVRPTUlDX1JFTEFYRUQpOw0KPiA+ID4g Pg0KPiA+ID4gPiAgICAgICAgIGlmICh1bmxpa2VseShjYiAhPSBOVUxMKSkgew0KPiA+ID4gPiAg ICAgICAgICAgICAgICAgZG8gew0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBuYl9y eCA9IGNiLT5mbi5yeChwb3J0X2lkLCBxdWV1ZV9pZCwNCj4gPiByeF9wa3RzLA0KPiA+ID4gPiBu Yl9yeCwNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmJfcGt0cywgY2ItDQo+ID4gPnBhcmFtKTsNCj4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgY2IgPSBjYi0+bmV4dDsNCj4gPiA+ID4gICAgICAgICAgICAgICAgIH0gd2hpbGUg KGNiICE9IE5VTEwpOw0KPiA+ID4gPiAgICAgICAgIH0NCj4gPiA+ID4gI2VuZGlmDQo+ID4gPiA+ DQo+ID4gPiA+ICAgICAgICAgcnRlX2V0aGRldl90cmFjZV9yeF9idXJzdChwb3J0X2lkLCBxdWV1 ZV9pZCwgKHZvaWQNCj4gPiAqKilyeF9wa3RzLA0KPiA+ID4gPiBuYl9yeCk7DQo+ID4gPiA+ICAg ICAgICAgcmV0dXJuIG5iX3J4Ow0KPiA+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+IFRoYXQgd291bGQg bWFrZSB0aGUgY29tcGlsZXIgaW5saW5lIF9ydGVfZXRoX3J4X2VwaWxvZygpIGludG8gdGhlDQo+ ID4gZHJpdmVyIHdoZW4gY29tcGlsaW5nIHRoZSBEUERLIGxpYnJhcnkuIEJ1dA0KPiA+ID4gUlRF X0VUSERFVl9SWFRYX0NBTExCQUNLUyBpcyBhIGRlZmluaXRpb24gZm9yIHRoZSBhcHBsaWNhdGlv bg0KPiA+IGRldmVsb3BlciB0byB1c2Ugd2hlbiBjb21waWxpbmcgdGhlIERQREsgYXBwbGljYXRp b24uDQo+ID4NCj4gPiBJIGJlbGlldmUgaXQgaXMgZm9yIGJvdGggLSB1c2VyIGFwcCBhbmQgRFBE SyBkcml2ZXJzLg0KPiA+IEFGQUlLLCB0aGV5IGJvdGggaGF2ZSB0byB1c2UgdGhlIHNhbWUgcnRl X2NvbmZpZy5oLCBvdGhlcndpc2UgdGhpbmdzDQo+ID4gd2lsbCBiZSBicm9rZW4uDQo+ID4gSWYg bGV0IHNheSBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTIGlzIG5vdCBlbmFibGVkIGluIGV0aGRl diwgdGhlbg0KPiA+IHVzZXIgd291bGRuJ3QgYmUgYWJsZSB0byBhZGQgYSBjYWxsYmFjayBhdCBm aXJzdCBwbGFjZS4NCj4gDQo+IEluIHRoZSBjYXNlIG9mIFJURV9FVEhERVZfUlhUWF9DQUxMQkFD S1MsIGl0IGlzIGluZGVwZW5kZW50Og0KDQpOb3QgcmVhbGx5Lg0KVGhlcmUgYXJlIGZldyBsaWJy YXJpZXMgd2l0aGluIERQREsgdGhhdCBkbyByZWx5IG9uIHJ4L3R4IGNhbGxiYWNrczoNCmJwZiwg bGF0ZW5jeXN0YXQsIHBkdW1wLCBwb3dlci4NCldpdGggdGhlIGFwcHJvYWNoIGFib3ZlIHRoZWly IGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBicm9rZW4gLQ0Kc2V0dXAgZnVuY3Rpb25zIHdpbGwgcmV0 dXJuIHN1Y2Nlc3MsIGJ1dCBhY3R1YWwgY2FsbGJhY2tzIHdpbGwgbm90IGJlIGludm9rZWQuIA0K RnJvbSBvdGhlciBzaWRlLCBzb21lIGxpYnJhcmllcyBkbyBpbnZva2UgcngvdHggYnVyc3Qgb24g dGhlaXIgb3duOiBpcC1waXBlbGluZSwgZ3JhcGguDQpGb3IgdGhlbSBjYWxsYmFjayBpbnZvY2F0 aW9uIHdpbGwgY29udGludWUgdG8gd29yaywgZXZlbiB3aGVuDQpSVEVfRVRIREVWX1JYVFhfQ0FM TEJBQ0tTIGlzIGRpc2FibGVkIGluIHRoZSBhcHAuDQpJbiBnZW5lcmFsLCBidWlsZGluZyBEUERL IGxpYnMgYW5kIHVzZXIgYXBwIHdpdGggZGlmZmVyZW50IHJ0ZV9jb25maWcuaCBpcyByZWFsbHkg YSBiYWQgaWRlYS4NCkl0IG1pZ2h0IHdvcmsgaW4gc29tZSBjYXNlcywgYnV0IEkgYmVsaWV2ZSBp dCBpcyBub3Qgc3VwcG9ydGVkIGFuZCB1c2VyIHNob3VsZCBub3QgcmVseSBvbiBpdC4NCklmIHVz ZXIgbmVlZHMgdG8gZGlzYWJsZSBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTIGluIGhpcyBhcHAs IHRoZW4gdGhlIHByb3BlciB3YXkgd291bGQgYmU6DQotIHVwZGF0ZSBydGVfY29uZmlnLmgNCi0g cmVidWlsZCBib3RoIERQREsgYW5kIHRoZSBhcHAgd2l0aCBuZXcgY29uZmlnDQoNCj4gDQo+IElm IGl0IGlzIG5vdCBjb21waWxlZCB3aXRoIHRoZSBEUERLIGxpYnJhcnksIGF0dGVtcHRzIHRvIGlu c3RhbGwgY2FsbGJhY2tzIGZyb20gdGhlIGFwcGxpY2F0aW9uIHdpbGwgZmFpbCB3aXRoIEVOT1RT VVAuDQo+IA0KPiBJZiBpdCBpcyBub3QgY29tcGlsZWQgd2l0aCB0aGUgRFBESyBhcHBsaWNhdGlv biwgbm8gdGltZSB3aWxsIGJlIHNwZW50IHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW55IHRoZXJl IGFyZSBhbnkgY2FsbGJhY2tzIHRvIGNhbGwuDQo+IA0KPiA+IEJUVywgIHN1Y2ggY2hhbmdlIHdp bGwgYWxsb3cgdXMgdG8gbWFrZSBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTDQo+ID4gaW50ZXJu YWwgZm9yIGV0aGRldi9QTUQgbGF5ZXIsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyBmcm9tIG15DQo+ ID4gcGVyc3BlY3RpdmUuDQo+IA0KPiBJZiBpdCBjYW4gYmUgZG9uZSB3aXRob3V0IGRlZ3JhZGlu ZyBwZXJmb3JtYW5jZSBmb3IgYXBwbGljYXRpb25zIG5vdCB1c2luZyBjYWxsYmFja3MuDQoNCg==