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 0ECF8A04C7; Tue, 15 Sep 2020 00:08:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D467EFFA; Tue, 15 Sep 2020 00:08:28 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id A269BE07 for ; Tue, 15 Sep 2020 00:08:26 +0200 (CEST) IronPort-SDR: slEYJrvMkqfqCC2arAofLyGud1lbH7Hu9neUxdVBTOOSqeQr8/TdUMs++c5ZteneuTulSSdvDg 4nVuDRC32Iog== X-IronPort-AV: E=McAfee;i="6000,8403,9744"; a="177233914" X-IronPort-AV: E=Sophos;i="5.76,427,1592895600"; d="scan'208";a="177233914" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2020 15:08:25 -0700 IronPort-SDR: fV1NZzT2e9TJHc2vxAoPq75yz6iWTFR2rH5q+YYBt8Vbzzrb/wGRHl79FFGQeXUNZW+ryK98q1 WWxMTOaJxnNw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,427,1592895600"; d="scan'208";a="301903049" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga003.jf.intel.com with ESMTP; 14 Sep 2020 15:08:25 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 14 Sep 2020 15:08:24 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 14 Sep 2020 15:08:24 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 14 Sep 2020 15:08:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MjfcajB0t+SaulLTthzN/BADS8MAaiVsNDd+0NZCErAQO55E6zjJoK5N43e+dhHvzzYPpxlFJCeWFM0MsBQPB4Nx8kWfy3tM+C3xpxKB/tXKttRzvWOKISm4mU2WjYZzvMnHMXknuxepWNvaIbdGGcLohBSscwSlemVhZfMX3e5rqbLOI37WmK5PVGGDfjObSGEz+QmzuNKAhRczJSaS6rjqpCfd2+WdYC/BfdEPrVO7pY3E+CrZEDIdo+eSVGJZoh2vbmNugjqJDuJ0VQNT9rPXq7Ls7jYfi5x8S/84r/rZ9wz44vegrRo0iBq2bAcXJb91FledYb95FbqcqWRUjg== 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=J36kQ2Rqs8/TT0r6gDd7Qowl8i6toQBRU22ZqL7modQ=; b=Sjh/wCXuvurqvk98prSpH+4rYWyRrf1UP7i/UOkV72uqLnD+rBkxG6mxGtCYZXThoosrgdhM2jZHyvI0u+K0TuodIOyA+J2Afekl1cVLCQXA+pEREWiyjDkpeW2+4G0DZdESG7DSEIIEEvZXmN7o53ooLxkqiy+Egngtscf7NKzVIPCsY3YVfCA5WFmDRiGSvzwbYCuCJmmTEuFCmEfL30cI2x6CXlNS7FXjPxBVkBlJCQ+JtYVDgM4Ddv6xjohkXhjgmnguxBAOtXaNpvEyGaK+4YV1RhYuzJFfho1mqkaPGSAT6ooW6MNc8tSUbOiLPga4A7rG7BHdXBX45ACg2w== 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=J36kQ2Rqs8/TT0r6gDd7Qowl8i6toQBRU22ZqL7modQ=; b=eZcWtJrPZFOoyziiLAQrIbzmk+lR1S/oWlN/gne9QJ1lsD3XayQLlSo0DF5wtDWsEU3Xt57oIei1k0j7PRuiZzpI3xM9F9zbIfGLC+Z3CPIRSkMCGUOPAK1rmRfucHaVprURRtjy3VQ8jptpEiNw/r7QET5lVK7M28DstkJH7uE= Received: from SN6PR11MB2574.namprd11.prod.outlook.com (2603:10b6:805:59::14) by SN6PR11MB3021.namprd11.prod.outlook.com (2603:10b6:805:d1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Mon, 14 Sep 2020 22:08:23 +0000 Received: from SN6PR11MB2574.namprd11.prod.outlook.com ([fe80::54:b143:c75e:41bd]) by SN6PR11MB2574.namprd11.prod.outlook.com ([fe80::54:b143:c75e:41bd%7]) with mapi id 15.20.3370.019; Mon, 14 Sep 2020 22:08:23 +0000 From: "Eads, Gage" To: "McDaniel, Timothy" CC: "dev@dpdk.org" , "Carrillo, Erik G" , "Van Haaren, Harry" , "jerinj@marvell.com" Thread-Topic: [PATCH v4 03/22] event/dlb: add private data structures and constants Thread-Index: AQHWiHDboxO4NuvtIEOQzYc+J5IO06lor6IA Date: Mon, 14 Sep 2020 22:08:22 +0000 Message-ID: References: <1599851920-16802-1-git-send-email-timothy.mcdaniel@intel.com> <1599851920-16802-4-git-send-email-timothy.mcdaniel@intel.com> In-Reply-To: <1599851920-16802-4-git-send-email-timothy.mcdaniel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [68.203.30.51] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 31f9e35b-9dc0-4869-598e-08d858fab270 x-ms-traffictypediagnostic: SN6PR11MB3021: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 20sNexzgqbtdIkpxuXpOVXjJYvY5otch1sHsOVTRGLfbcgCzFU02e9FL3ikaDvFvJIkBg6OfN4UgMCl5bPQHi2fiJl0quish3XvjtzNRg9BppUql9XoNpPMFDacTBt1Uya3khKx2dwSQz+IklbOcdnYZqnJ3N5+zNp2A+ja0QSRitAX6xCCq+iYEbiRVylGYAu+aol0MiUqzWRfKx+1wjFPC7KNz6CPlIGX674fOScg+RgfiKoaxQD5VRyCsbb9u2VY2vsTJBKsF5wv25eu6v/qkEaKEgD4+s2molK366aUkkH6lKn8cDzua+72Az3jHGX/g747xgJI+/YHNeGHB8w== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB2574.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(366004)(376002)(396003)(346002)(6506007)(6862004)(54906003)(2906002)(83380400001)(186003)(8676002)(33656002)(66476007)(7696005)(5660300002)(66556008)(64756008)(8936002)(76116006)(66946007)(66446008)(86362001)(55016002)(478600001)(30864003)(52536014)(6636002)(4326008)(26005)(71200400001)(9686003)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: e06E+lZi1IDd85im+bK0+JhC9Id8SCbtTYAuVaOmRlfMhUTP8xQAZdCnKqA2fWM8sbrrw2zX8knK+LL/XVZciqvtyaeWDBzVaOemJ8cDqUnveRtVcYuECWnRqk10ZM2uPWeygEH3mSpgfx9EO/Mp4tIbDtp2044a9jjjJ326X6MRznK99Q1Q2Cv9qdoyftHVhISE2VuEt59rTFxP1ZeWmqzriBmDRx19G6w4DhP3wHcta+Pw5ma6VY/WbhdVyNOCmRV4zNdAMIEe6TULKXslTts9tA2PPOpDjHfWLEL9BZ7pRn5lc2VgEgnnBVVlZ8NIUVrz2hUwLXBvPizXWQKxlnVW4AFatKQBg2OBb1oqXbXse/BZ/kOhLAGAo2/WnX3hFoyHDUakg6BjM0z7pDNtzPlJqhe+NJqorVcyB54D9KzyOObF6Jw88Kqewk9MrNV41AWwYrxJwqXsFS/r/hbxcUY9Dh7mooqiZNQ/4Ps2zJ2KnSGNnPJAHvQ7zBbKXNf2/RQPsgqtd+tDBy2ra0bfRvZ1sgwP2al0ECf639mdplNe8njGJ9FahxGvGf1DHoKpS9AoGYKkcC467WU53bf4j42LxsQ4YBK4J0ctPAPyAZapb1xWh2krAQ3GUP1zYVbn+u8J4HIdHyc3d2GDylCoTA== 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: SN6PR11MB2574.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31f9e35b-9dc0-4869-598e-08d858fab270 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Sep 2020 22:08:23.0111 (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: YSMYIGjy65H8W1xCXfAmGuxbVVcL00rqoFoMFknhbDIly5vV5Nv2Ff9UjBXsNehL9bG5MRmN3uh5b9l56e4DwA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3021 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v4 03/22] event/dlb: add private data structures and constants 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWNEYW5pZWwsIFRpbW90 aHkgPHRpbW90aHkubWNkYW5pZWxAaW50ZWwuY29tPg0KPiBTZW50OiBGcmlkYXksIFNlcHRlbWJl ciAxMSwgMjAyMCAyOjE4IFBNDQo+IENjOiBkZXZAZHBkay5vcmc7IENhcnJpbGxvLCBFcmlrIEcg PGVyaWsuZy5jYXJyaWxsb0BpbnRlbC5jb20+OyBFYWRzLCBHYWdlDQo+IDxnYWdlLmVhZHNAaW50 ZWwuY29tPjsgVmFuIEhhYXJlbiwgSGFycnkgPGhhcnJ5LnZhbi5oYWFyZW5AaW50ZWwuY29tPjsN Cj4gamVyaW5qQG1hcnZlbGwuY29tDQo+IFN1YmplY3Q6IFtQQVRDSCB2NCAwMy8yMl0gZXZlbnQv ZGxiOiBhZGQgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZXMgYW5kDQo+IGNvbnN0YW50cw0KPiANCj4g QWRkIGhlYWRlcnMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBQTUQuIFRoZXNlIGhlYWRlcnMgYXJl IHVzZWQNCj4gaW50ZXJuYWxseSBieSB0aGUgUE1ELiBUaGV5IGluY2x1ZGUgY29uc3RhbnRzLCBt YWNyb3MgZm9yIGRldmljZQ0KDQpTYWZlIHRvIGRyb3AgZWl0aGVyIHNlbnRlbmNlICMxIG9yICMy IPCfmIoNCg0KWy4uLl0NCg0KTG9va2VkIGxpa2Ugc29tZSBvZiB0aGVzZSBzdHJ1Y3RzIGFuZCBm aWVsZHMgYXJlIHVudXNlZCwgc28gSSBkaWQgYSBmZXcNCnRlc3QgYnVpbGRzIChvZiB0aGUgd2hv bGUgc2VyaWVzKSB0byBjb25maXJtLiBNb3JlIGRldGFpbHMgYmVsb3cuDQoNCj4gKw0KPiArdW5p b24gZGxiX3BvcnRfY29uZmlnIHsNCj4gKwlzdHJ1Y3QgZGxiX2NyZWF0ZV9sZGJfcG9ydF9hcmdz IGxkYjsNCj4gKwlzdHJ1Y3QgZGxiX2NyZWF0ZV9kaXJfcG9ydF9hcmdzIGRpcjsNCj4gK307DQo+ ICsNCj4gK2VudW0gRExCX1BPUlRfU1RBVEUgew0KDQpOaXQ6IGluY29uc2lzdGVudCBjYXBpdGFs aXphdGlvbiAobG93ZXItY2FzZSB1c2VkIGluIGVudW0gbmFtZXMgZWxzZXdoZXJlKQ0KDQo+ICsJ UE9SVF9DTE9TRUQsDQo+ICsJUE9SVF9TVEFSVEVELA0KPiArCVBPUlRfU1RPUFBFRA0KPiArfTsN Cj4gKw0KPiArZW51bSBkbGJfY29uZmlndXJhdGlvbl9zdGF0ZSB7DQo+ICsJLyogVGhlIHJlc291 cmNlIGhhcyBub3QgYmVlbiBjb25maWd1cmVkICovDQo+ICsJRExCX05PVF9DT05GSUdVUkVELA0K PiArCS8qIFRoZSByZXNvdXJjZSB3YXMgY29uZmlndXJlZCwgYnV0IHRoZSBkZXZpY2Ugd2FzIHN0 b3BwZWQgKi8NCj4gKwlETEJfUFJFVl9DT05GSUdVUkVELA0KPiArCS8qIFRoZSByZXNvdXJjZSBp cyBjdXJyZW50bHkgY29uZmlndXJlZCAqLw0KPiArCURMQl9DT05GSUdVUkVEDQo+ICt9Ow0KPiAr DQo+ICtzdHJ1Y3QgZGxiX3BvcnQgew0KPiArCXVpbnQzMl90IGlkOw0KPiArCWJvb2wgaXNfZGly ZWN0ZWQ7DQo+ICsJYm9vbCBnZW5fYml0Ow0KPiArCXVpbnQxNl90IGRpcl9jcmVkaXRzOw0KPiAr CXVpbnQzMl90IGRlcXVldWVfZGVwdGg7DQo+ICsJZW51bSBkbGJfdG9rZW5fcG9wX21vZGUgdG9r ZW5fcG9wX21vZGU7DQo+ICsJdW5pb24gZGxiX3BvcnRfY29uZmlnIGNmZzsNCg0KVGhpcyBmaWVs ZCBpcyBzZXQgYnV0IG5vdCB1c2VkLiBMb29rcyBsaWtlIGl0IGFuZCB0aGUgdW5pb24gY2FuIGJl IGRyb3BwZWQuDQoNCj4gKwlpbnQgcHBfbW1pb19iYXNlOw0KPiArCXVpbnQxNl90IGNhY2hlZF9s ZGJfY3JlZGl0czsNCj4gKwl1aW50MTZfdCBsZGJfcHVzaGNvdW50X2F0X2NyZWRpdF9leHBpcnk7 DQo+ICsJdWludDE2X3QgbGRiX2NyZWRpdHM7DQo+ICsJdWludDE2X3QgY2FjaGVkX2Rpcl9jcmVk aXRzOw0KPiArCXVpbnQxNl90IGRpcl9wdXNoY291bnRfYXRfY3JlZGl0X2V4cGlyeTsNCj4gKwli b29sIGludF9hcm1lZDsNCj4gKwlib29sIHVzZV9yc3ZkX3Rva2VuX3NjaGVtZTsNCj4gKwl1aW50 OF90IGNxX3JzdmRfdG9rZW5fZGVmaWNpdDsNCj4gKwl1aW50MTZfdCBvd2VkX3Rva2VuczsNCj4g KwlpbnQxNl90IGlzc3VlZF9yZWxlYXNlczsNCj4gKwlpbnQxNl90IHRva2VuX3BvcF90aHJlc2g7 DQo+ICsJaW50IGNxX2RlcHRoOw0KPiArCXVpbnQxNl90IGNxX2lkeDsNCj4gKwl1aW50MTZfdCBj cV9pZHhfdW5tYXNrZWQ7DQo+ICsJdWludDE2X3QgY3FfZGVwdGhfbWFzazsNCj4gKwl1aW50MTZf dCBnZW5fYml0X3NoaWZ0Ow0KPiArCWVudW0gRExCX1BPUlRfU1RBVEUgc3RhdGU7DQo+ICsJZW51 bSBkbGJfY29uZmlndXJhdGlvbl9zdGF0ZSBjb25maWdfc3RhdGU7DQo+ICsJaW50IG51bV9tYXBw ZWRfcWlkczsNCj4gKwl1aW50OF90ICpxaWRfbWFwcGluZ3M7DQo+ICsJc3RydWN0IGRsYl9lbnF1 ZXVlX3FlICpxZTQ7IC8qIENhY2hlIGxpbmUncyB3b3J0aCBvZiBRRXMgKDQpICovDQo+ICsJc3Ry dWN0IGRsYl9jcV9wb3BfcWUgKmNvbnN1bWVfcWU7DQo+ICsJc3RydWN0IGRsYl9ldmVudGRldiAq ZGxiOyAvKiBiYWNrIHB0ciAqLw0KPiArCXN0cnVjdCBkbGJfZXZlbnRkZXZfcG9ydCAqZXZfcG9y dDsgLyogYmFjayBwdHIgKi8NCj4gK307DQo+ICsNCj4gKy8qIFBlci1wcm9jZXNzIHBlci1wb3J0 IG1taW8gYW5kIG1lbW9yeSBwb2ludGVycyAqLw0KPiArc3RydWN0IHByb2Nlc3NfbG9jYWxfcG9y dF9kYXRhIHsNCj4gKwl1aW50NjRfdCAqcHBfYWRkcjsNCj4gKwl1aW50MTZfdCAqbGRiX3BvcGNv dW50Ow0KPiArCXVpbnQxNl90ICpkaXJfcG9wY291bnQ7DQo+ICsJc3RydWN0IGRsYl9kZXF1ZXVl X3FlICpjcV9iYXNlOw0KPiArCWJvb2wgbW1hcGVkOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IGRs Yl9jb25maWcgew0KPiArCWludCBjb25maWd1cmVkOw0KPiArCWludCByZXNlcnZlZDsNCj4gKwl1 aW50MzJfdCBsZGJfY3JlZGl0X3Bvb2xfaWQ7DQo+ICsJdWludDMyX3QgZGlyX2NyZWRpdF9wb29s X2lkOw0KPiArCXVpbnQzMl90IG51bV9sZGJfY3JlZGl0czsNCj4gKwl1aW50MzJfdCBudW1fZGly X2NyZWRpdHM7DQo+ICsJc3RydWN0IGRsYl9jcmVhdGVfc2NoZWRfZG9tYWluX2FyZ3MgcmVzb3Vy Y2VzOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IGRsYl9od19kZXYgew0KPiArCWNoYXIgZGV2aWNl X25hbWVbRExCX05BTUVfU0laRV07DQo+ICsJY2hhciBkZXZpY2VfcGF0aFtETEJfTUFYX0RFVklD RV9QQVRIXTsNCg0KZGV2aWNlX25hbWUgYW5kIGRldmljZV9wYXRoIGFyZSB1c2VkIGluIHN0cmlu Z3MgYnV0IG5ldmVyIHNldA0KDQo+ICsJaW50IGRldmljZV9wYXRoX2lkOw0KDQpTZXQgYnV0IG5l dmVyIHVzZWQNCg0KPiArCWNoYXIgZG9tYWluX2RldmljZV9wYXRoW0RMQl9NQVhfREVWSUNFX1BB VEhdOw0KDQpVc2VkIGluIGFuIHhzdGF0cyBwcmludCBidXQgbmV2ZXIgc2V0DQoNCj4gKwlzdHJ1 Y3QgZGxiX2NvbmZpZyBjZmc7DQo+ICsJc3RydWN0IGRsYl9od19yZXNvdXJjZV9pbmZvIGluZm87 DQo+ICsJdm9pZCAqcGZfZGV2OyAvKiBvcGFxdWUgcG9pbnRlciB0byBQRiBQTUQgZGV2IChzdHJ1 Y3QgZGxiX2RldikgKi8NCj4gKwlpbnQgZGV2aWNlX2lkOw0KPiArCXVpbnQzMl90IGRvbWFpbl9p ZDsNCj4gKwlpbnQgZG9tYWluX2lkX3ZhbGlkOw0KPiArCXJ0ZV9zcGlubG9ja190IHJlc291cmNl X2xvY2s7IC8qIGZvciBNUCBzdXBwb3J0ICovDQo+ICt9OyBfX3J0ZV9jYWNoZV9hbGlnbmVkDQo+ ICsNCj4gKy8qIEVuZCBIVyByZWxhdGVkIGRlZmluZXMgYW5kIHN0cnVjdHMgKi8NCj4gKw0KPiAr LyogQmVnaW4gRExCIFBNRCBFdmVudGRldiByZWxhdGVkIGRlZmluZXMgYW5kIHN0cnVjdHMgKi8N Cj4gKw0KPiArI2RlZmluZSBETEJfTUFYX05VTV9RVUVVRVMgXA0KPiArCShETEJfTUFYX05VTV9E SVJfUVVFVUVTICsgRExCX01BWF9OVU1fTERCX1FVRVVFUykNCj4gKw0KPiArI2RlZmluZSBETEJf TUFYX05VTV9QT1JUUyAoRExCX01BWF9OVU1fRElSX1BPUlRTICsNCj4gRExCX01BWF9OVU1fTERC X1BPUlRTKQ0KPiArI2RlZmluZSBETEJfTUFYX0lOUFVUX1FVRVVFX0RFUFRIIDI1Ng0KPiArDQo+ ICsvKiBVc2VkIGZvciBwYXJzaW5nIGRpciBwb3J0cy9xdWV1ZXMuICovDQoNCldoYXQgZG9lcyB0 aGlzIGNvbW1lbnQgcmVmZXIgdG8/DQoNCj4gKw0KPiArLyoqIFN0cnVjdHVyZSB0byBob2xkIHRo ZSBxdWV1ZSB0byBwb3J0IGxpbmsgZXN0YWJsaXNobWVudCBhdHRyaWJ1dGVzICovDQo+ICsNCj4g K3N0cnVjdCBkbGJfZXZlbnRfcXVldWVfbGluayB7DQo+ICsJdWludDhfdCBxdWV1ZV9pZDsNCj4g Kwl1aW50OF90IHByaW9yaXR5Ow0KPiArCWJvb2wgbWFwcGVkOw0KPiArCWJvb2wgdmFsaWQ7DQo+ ICt9Ow0KPiArDQo+ICtzdHJ1Y3QgZGxiX3RyYWZmaWNfc3RhdHMgew0KPiArCXVpbnQ2NF90IHJ4 X29rOw0KPiArCXVpbnQ2NF90IHJ4X2Ryb3A7DQo+ICsJdWludDY0X3QgcnhfaW50ZXJydXB0X3dh aXQ7DQo+ICsJdWludDY0X3QgcnhfdW1vbml0b3JfdW13YWl0Ow0KPiArCXVpbnQ2NF90IHR4X29r Ow0KPiArCXVpbnQ2NF90IHRvdGFsX3BvbGxzOw0KPiArCXVpbnQ2NF90IHplcm9fcG9sbHM7DQo+ ICsJdWludDY0X3QgdHhfbm9zcGNfbGRiX2h3X2NyZWRpdHM7DQo+ICsJdWludDY0X3QgdHhfbm9z cGNfZGlyX2h3X2NyZWRpdHM7DQo+ICsJdWludDY0X3QgdHhfbm9zcGNfaW5mbGlnaHRfbWF4Ow0K PiArCXVpbnQ2NF90IHR4X25vc3BjX25ld19ldmVudF9saW1pdDsNCj4gKwl1aW50NjRfdCB0eF9u b3NwY19pbmZsaWdodF9jcmVkaXRzOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IGRsYl9wb3J0X3N0 YXRzIHsNCj4gKwlzdHJ1Y3QgZGxiX3RyYWZmaWNfc3RhdHMgdHJhZmZpYzsNCj4gKwl1aW50NjRf dCB0eF9vcF9jbnRbNF07IC8qIGluZGV4ZWQgYnkgcnRlX2V2ZW50Lm9wICovDQo+ICsJdWludDY0 X3QgdHhfaW1wbGljaXRfcmVsOw0KPiArCXVpbnQ2NF90IHR4X3NjaGVkX2NudFtETEJfTlVNX0hX X1NDSEVEX1RZUEVTXTsNCj4gKwl1aW50NjRfdCB0eF9pbnZhbGlkOw0KPiArCXVpbnQ2NF90IHJ4 X3NjaGVkX2NudFtETEJfTlVNX0hXX1NDSEVEX1RZUEVTXTsNCj4gKwl1aW50NjRfdCByeF9zY2hl ZF9pbnZhbGlkOw0KPiArCXVpbnQ2NF90IGVucV9va1tETEJfTUFYX05VTV9RVUVVRVNdOyAvKiBw ZXItcXVldWUgZW5xX29rDQo+ICovDQo+ICt9Ow0KPiArDQo+ICtzdHJ1Y3QgZGxiX2V2ZW50ZGV2 X3BvcnQgew0KPiArCXN0cnVjdCBkbGJfcG9ydCBxbV9wb3J0OyAvKiBodyBzcGVjaWZpYyBkYXRh IHN0cnVjdHVyZSAqLw0KPiArCXN0cnVjdCBydGVfZXZlbnRfcG9ydF9jb25mIGNvbmY7IC8qIHVz ZXItc3VwcGxpZWQgY29uZmlndXJhdGlvbiAqLw0KPiArCXVpbnQxNl90IGluZmxpZ2h0X2NyZWRp dHM7IC8qIG51bSBjcmVkaXRzIHRoaXMgcG9ydCBoYXMgcmlnaHQgbm93ICovDQo+ICsJdWludDE2 X3QgY3JlZGl0X3VwZGF0ZV9xdWFudGE7DQo+ICsJc3RydWN0IGRsYl9ldmVudGRldiAqZGxiOyAv KiBiYWNrbGluayBvcHRpbWl6YXRpb24gKi8NCj4gKwlzdHJ1Y3QgZGxiX3BvcnRfc3RhdHMgc3Rh dHMgX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gKwlzdHJ1Y3QgZGxiX2V2ZW50X3F1ZXVlX2xpbmsN Cj4gbGlua1tETEJfTUFYX05VTV9RSURTX1BFUl9MREJfQ1FdOw0KPiArCWludCBudW1fbGlua3M7 DQo+ICsJdWludDMyX3QgaWQ7DQo+ICsJLyogbnVtIHJlbGVhc2VzIHlldCB0byBiZSBjb21wbGV0 ZWQgb24gdGhpcyBwb3J0Lg0KPiArCSAqIE9ubHkgYXBwbGllcyB0byBsb2FkLWJhbGFuY2VkIHBv cnRzLg0KPiArCSAqLw0KPiArCXVpbnQxNl90IG91dHN0YW5kaW5nX3JlbGVhc2VzOw0KPiArCXVp bnQxNl90IGluZmxpZ2h0X21heDsgLyogYXBwIHJlcXVlc3RlZCBtYXggaW5mbGlnaHRzIGZvciB0 aGlzIHBvcnQgKi8NCj4gKwkvKiBzZXR1cF9kb25lIGlzIHNldCB3aGVuIHRoZSBldmVudCBwb3J0 IGlzIHNldHVwICovDQo+ICsJYm9vbCBzZXR1cF9kb25lOw0KPiArCS8qIGVucV9jb25maWd1cmVk IGlzIHNldCB3aGVuIHRoZSBxbSBwb3J0IGlzIGNyZWF0ZWQgKi8NCj4gKwlib29sIGVucV9jb25m aWd1cmVkOw0KPiArCXVpbnQ4X3QgaW1wbGljaXRfcmVsZWFzZTsgLyogcmVsZWFzZSBldmVudHMg YmVmb3JlIGRlcXVldWVpbmcgKi8NCj4gK30gX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gKw0KPiAr c3RydWN0IGRsYl9xdWV1ZSB7DQo+ICsJdWludDMyX3QgbnVtX3FpZF9pbmZsaWdodHM7IC8qIFVz ZXIgY29uZmlnICovDQo+ICsJdWludDMyX3QgbnVtX2F0bV9pbmZsaWdodHM7IC8qIFVzZXIgY29u ZmlnICovDQo+ICsJZW51bSBkbGJfY29uZmlndXJhdGlvbl9zdGF0ZSBjb25maWdfc3RhdGU7DQo+ ICsJaW50IHNjaGVkX3R5cGU7IC8qIExCIHF1ZXVlIG9ubHkgKi8NCj4gKwl1aW50MzJfdCBpZDsN Cj4gKwlib29sIGlzX2RpcmVjdGVkOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IGRsYl9ldmVudGRl dl9xdWV1ZSB7DQo+ICsJc3RydWN0IGRsYl9xdWV1ZSBxbV9xdWV1ZTsNCj4gKwlzdHJ1Y3QgcnRl X2V2ZW50X3F1ZXVlX2NvbmYgY29uZjsgLyogVXNlciBjb25maWcgKi8NCj4gKwl1aW50NjRfdCBl bnFfb2s7DQo+ICsJdWludDMyX3QgaWQ7DQo+ICsJYm9vbCBzZXR1cF9kb25lOw0KPiArCXVpbnQ4 X3QgbnVtX2xpbmtzOw0KPiArfTsNCj4gKw0KPiArZW51bSBkbGJfcnVuX3N0YXRlIHsNCj4gKwlE TEJfUlVOX1NUQVRFX1NUT1BQRUQgPSAwLA0KPiArCURMQl9SVU5fU1RBVEVfU1RPUFBJTkcsDQo+ ICsJRExCX1JVTl9TVEFURV9TVEFSVElORywNCj4gKwlETEJfUlVOX1NUQVRFX1NUQVJURUQNCj4g K307DQo+ICsNCj4gKyNkZWZpbmUgRExCX0lTX1ZERVYgdHJ1ZQ0KPiArI2RlZmluZSBETEJfTk9U X1ZERVYgZmFsc2UNCg0KQm90aCB0aGVzZSBtYWNyb3MgYXJlIHVudXNlZA0KDQo+ICsNCj4gK3N0 cnVjdCBkbGJfZXZlbnRkZXYgew0KPiArCXN0cnVjdCBkbGJfZXZlbnRkZXZfcG9ydCBldl9wb3J0 c1tETEJfTUFYX05VTV9QT1JUU107DQo+ICsJc3RydWN0IGRsYl9ldmVudGRldl9xdWV1ZQ0KPiBl dl9xdWV1ZXNbRExCX01BWF9OVU1fUVVFVUVTXTsNCj4gKwl1aW50OF90IHFtX2xkYl90b19ldl9x dWV1ZV9pZFtETEJfTUFYX05VTV9RVUVVRVNdOw0KPiArCXVpbnQ4X3QgcW1fZGlyX3RvX2V2X3F1 ZXVlX2lkW0RMQl9NQVhfTlVNX1FVRVVFU107DQo+ICsNCj4gKwkvKiBzdG9yZSBudW0gc3RhdHMg YW5kIG9mZnNldCBvZiB0aGUgc3RhdHMgZm9yIGVhY2ggcXVldWUgKi8NCj4gKwl1aW50MTZfdCB4 c3RhdHNfY291bnRfcGVyX3FpZFtETEJfTUFYX05VTV9RVUVVRVNdOw0KPiArCXVpbnQxNl90IHhz dGF0c19vZmZzZXRfZm9yX3FpZFtETEJfTUFYX05VTV9RVUVVRVNdOw0KPiArDQo+ICsJLyogc3Rv cmUgbnVtIHN0YXRzIGFuZCBvZmZzZXQgb2YgdGhlIHN0YXRzIGZvciBlYWNoIHBvcnQgKi8NCj4g Kwl1aW50MTZfdCB4c3RhdHNfY291bnRfcGVyX3BvcnRbRExCX01BWF9OVU1fUE9SVFNdOw0KPiAr CXVpbnQxNl90IHhzdGF0c19vZmZzZXRfZm9yX3BvcnRbRExCX01BWF9OVU1fUE9SVFNdOw0KPiAr CXN0cnVjdCBkbGJfZ2V0X251bV9yZXNvdXJjZXNfYXJncyBod19yc3JjX3F1ZXJ5X3Jlc3VsdHM7 DQo+ICsJdWludDMyX3QgeHN0YXRzX2NvdW50X21vZGVfcXVldWU7DQo+ICsJc3RydWN0IGRsYl9o d19kZXYgcW1faW5zdGFuY2U7IC8qIHN0cmljdGx5IGh3IHJlbGF0ZWQgKi8NCj4gKwl1aW50NjRf dCBnbG9iYWxfZGVxdWV1ZV93YWl0X3RpY2tzOw0KPiArCXN0cnVjdCBkbGJfeHN0YXRzX2VudHJ5 ICp4c3RhdHM7DQo+ICsJc3RydWN0IHJ0ZV9ldmVudGRldiAqZXZlbnRfZGV2OyAvKiBiYWNrbGlu ayB0byBkZXYgKi8NCj4gKwl1aW50MzJfdCB4c3RhdHNfY291bnRfbW9kZV9wb3J0Ow0KPiArCXVp bnQzMl90IHhzdGF0c19jb3VudF9tb2RlX2RldjsNCj4gKwl1aW50MzJfdCB4c3RhdHNfY291bnQ7 DQo+ICsJdWludDMyX3QgaW5mbGlnaHRzOyAvKiB1c2UgX19hdG9taWMgYnVpbHRpbnMgdG8gYWNj ZXNzICovDQo+ICsJdWludDMyX3QgbmV3X2V2ZW50X2xpbWl0Ow0KPiArCWludCBtYXhfbnVtX2V2 ZW50c19vdmVycmlkZTsNCj4gKwlpbnQgbnVtX2Rpcl9jcmVkaXRzX292ZXJyaWRlOw0KPiArCXZv bGF0aWxlIGVudW0gZGxiX3J1bl9zdGF0ZSBydW5fc3RhdGU7DQo+ICsJdWludDE2X3QgbnVtX2Rp cl9xdWV1ZXM7IC8qIHRvdGFsIG51bSBvZiBldmRldiBkaXIgcXVldWVzDQo+IHJlcXVlc3RlZCAq Lw0KPiArCXVpbnQxNl90IG51bV9kaXJfY3JlZGl0czsNCj4gKwl1aW50MTZfdCBudW1fbGRiX2Ny ZWRpdHM7DQo+ICsJdWludDE2X3QgbnVtX3F1ZXVlczsgLyogdG90YWwgcXVldWVzICovDQo+ICsJ dWludDE2X3QgbnVtX2xkYl9xdWV1ZXM7IC8qIHRvdGFsIG51bSBvZiBldmRldiBsZGIgcXVldWVz DQo+IHJlcXVlc3RlZCAqLw0KPiArCXVpbnQxNl90IG51bV9wb3J0czsgLyogdG90YWwgbnVtIG9m IGV2ZGV2IHBvcnRzIHJlcXVlc3RlZCAqLw0KPiArCXVpbnQxNl90IG51bV9sZGJfcG9ydHM7IC8q IHRvdGFsIG51bSBvZiBsZGIgcG9ydHMgcmVxdWVzdGVkICovDQo+ICsJdWludDE2X3QgbnVtX2Rp cl9wb3J0czsgLyogdG90YWwgbnVtIG9mIGRpciBwb3J0cyByZXF1ZXN0ZWQgKi8NCj4gKwlib29s IGlzX3ZkZXY7DQo+ICsJYm9vbCB1bXdhaXRfYWxsb3dlZDsNCj4gKwlib29sIGdsb2JhbF9kZXF1 ZXVlX3dhaXQ7IC8qIE5vdCB1c2luZyBwZXIgZGVxdWV1ZSB3YWl0IGlmIHRydWUgKi8NCj4gKwli b29sIGRlZmVyX3NjaGVkOw0KPiArCXVuc2lnbmVkIGludCBudW1fYXRtX2luZmxpZ2h0c19wZXJf cXVldWU7DQo+ICsJZW51bSBkbGJfY3FfcG9sbF9tb2RlcyBwb2xsX21vZGU7DQo+ICsJdWludDhf dCByZXZpc2lvbjsNCj4gKwlib29sIGNvbmZpZ3VyZWQ7DQo+ICt9Ow0KPiArDQo+ICsvKiBFbmQg RXZlbnRkZXYgcmVsYXRlZCBkZWZpbmVzIGFuZCBzdHJ1Y3RzICovDQo+ICsNCj4gKy8qIGV4dGVy bnMgKi8NCj4gKw0KPiArZXh0ZXJuIHN0cnVjdCBkbGJfZGV2ICpkbGJfcHJvYmUoc3RydWN0IHJ0 ZV9wY2lfZGV2aWNlICpwZGV2KTsNCg0KVGhpcyBleHRlcm4gaXNuJ3QgbmVlZGVkLCB0aGUgZnVu Y3Rpb24gaXMgbGF0ZXIgZGVjbGFyZWQgaW4gcGYvZGxiX21haW4uaA0KDQo+ICtleHRlcm4gc3Ry dWN0IHByb2Nlc3NfbG9jYWxfcG9ydF9kYXRhDQo+IGRsYl9wb3J0W11bTlVNX0RMQl9QT1JUX1RZ UEVTXTsNCj4gKw0KPiArLyogRm9yd2FyZHMgZm9yIG5vbi1pbmxpbmVkIGZ1bmN0aW9ucyAqLw0K PiArDQo+ICt2b2lkIGRsYl9mcmVlX3FlX21lbShzdHJ1Y3QgZGxiX3BvcnQgKnBvcnQpOw0KPiAr DQo+ICtpbnQgZGxiX2luaXRfcWVfbWVtKHN0cnVjdCBkbGJfcG9ydCAqcG9ydCwgY2hhciAqbXpf bmFtZSk7DQo+ICsNCj4gK2ludCBkbGJfaW5pdF9zZW5kX3FlKHN0cnVjdCBkbGJfcG9ydCAqcG9y dCwgY2hhciAqbXpfbmFtZSk7DQo+ICsNCj4gK2ludCBkbGJfaW5pdF9wYXJ0aWFsX3FlKHN0cnVj dCBkbGJfcG9ydCAqcG9ydCwgY2hhciAqbXpfbmFtZSk7DQo+ICsNCj4gK2ludCBkbGJfaW5pdF9m d2RfcWUoc3RydWN0IGRsYl9wb3J0ICpwb3J0LCBjaGFyICptel9uYW1lKTsNCj4gKw0KPiAraW50 IGRsYl9pbml0X2NvbXBsZXRlX3FlKHN0cnVjdCBkbGJfcG9ydCAqcG9ydCwgY2hhciAqbXpfbmFt ZSk7DQo+ICsNCj4gK2ludCBkbGJfaW5pdF9ub29wX3FlKHN0cnVjdCBkbGJfcG9ydCAqcG9ydCwg Y2hhciAqbXpfbmFtZSk7DQoNCmRsYl9pbml0X3FlX21lbSAtPiBkbGJfaW5pdF9ub29wX3FlIGFy ZSBvbmx5IHVzZWQgaW4gZGxiLmMsIGFuZA0KZG9uJ3QgbmVlZCBmb3J3YXJkIGRlY2xhcmF0aW9u cyAoZGxiX2ZyZWVfcWVfbWVtKCkgc2hvdWxkIGJlDQpkZWZpbmVkICdzdGF0aWMnIHRob3VnaCku DQoNCj4gKw0KPiAraW50IGRsYl91bmluaXQoY29uc3QgY2hhciAqbmFtZSk7DQoNClRoaXMgZnVu Y3Rpb24gaXMgbmV2ZXIgZGVmaW5lZA0KDQo+ICsNCj4gK3ZvaWQgZGxiX2V2ZW50ZGV2X2R1bXAo c3RydWN0IHJ0ZV9ldmVudGRldiAqZGV2LCBGSUxFICpmKTsNCj4gKw0KPiAraW50IGRsYl94c3Rh dHNfaW5pdChzdHJ1Y3QgZGxiX2V2ZW50ZGV2ICpkbGIpOw0KPiArDQo+ICt2b2lkIGRsYl94c3Rh dHNfdW5pbml0KHN0cnVjdCBkbGJfZXZlbnRkZXYgKmRsYik7DQo+ICsNCj4gK2ludCBkbGJfZXZl bnRkZXZfeHN0YXRzX2dldChjb25zdCBzdHJ1Y3QgcnRlX2V2ZW50ZGV2ICpkZXYsDQo+ICsJCQkg ICAgZW51bSBydGVfZXZlbnRfZGV2X3hzdGF0c19tb2RlIG1vZGUsDQo+ICsJCQkgICAgdWludDhf dCBxdWV1ZV9wb3J0X2lkLCBjb25zdCB1bnNpZ25lZCBpbnQgaWRzW10sDQo+ICsJCQkgICAgdWlu dDY0X3QgdmFsdWVzW10sIHVuc2lnbmVkIGludCBuKTsNCj4gKw0KPiAraW50IGRsYl9ldmVudGRl dl94c3RhdHNfZ2V0X25hbWVzKGNvbnN0IHN0cnVjdCBydGVfZXZlbnRkZXYgKmRldiwNCj4gKwkJ CQkgIGVudW0gcnRlX2V2ZW50X2Rldl94c3RhdHNfbW9kZSBtb2RlLA0KPiArCQkJCSAgdWludDhf dCBxdWV1ZV9wb3J0X2lkLA0KPiArCQkJCSAgc3RydWN0IHJ0ZV9ldmVudF9kZXZfeHN0YXRzX25h bWUNCj4gKnhzdGF0X25hbWVzLA0KPiArCQkJCSAgdW5zaWduZWQgaW50ICppZHMsIHVuc2lnbmVk IGludCBzaXplKTsNCj4gKw0KPiArdWludDY0X3QgZGxiX2V2ZW50ZGV2X3hzdGF0c19nZXRfYnlf bmFtZShjb25zdCBzdHJ1Y3QgcnRlX2V2ZW50ZGV2DQo+ICpkZXYsDQo+ICsJCQkJCSBjb25zdCBj aGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgKmlkKTsNCj4gKw0KPiAraW50IGRsYl9ldmVudGRldl94 c3RhdHNfcmVzZXQoc3RydWN0IHJ0ZV9ldmVudGRldiAqZGV2LA0KPiArCQkJICAgICAgZW51bSBy dGVfZXZlbnRfZGV2X3hzdGF0c19tb2RlIG1vZGUsDQo+ICsJCQkgICAgICBpbnQxNl90IHF1ZXVl X3BvcnRfaWQsDQo+ICsJCQkgICAgICBjb25zdCB1aW50MzJfdCBpZHNbXSwNCj4gKwkJCSAgICAg IHVpbnQzMl90IG5iX2lkcyk7DQo+ICsNCj4gK2ludCB0ZXN0X2RsYl9ldmVudGRldih2b2lkKTsN Cj4gKw0KPiAraW50IGRsYl9wcmltYXJ5X2V2ZW50ZGV2X3Byb2JlKHN0cnVjdCBydGVfZXZlbnRk ZXYgKmRldiwNCj4gKwkJCSAgICAgICBjb25zdCBjaGFyICpuYW1lLA0KPiArCQkJICAgICAgIHN0 cnVjdCBkbGJfZGV2YXJncyAqZGxiX2FyZ3MsDQo+ICsJCQkgICAgICAgYm9vbCBpc192ZGV2KTsN Cj4gKw0KPiAraW50IGRsYl9zZWNvbmRhcnlfZXZlbnRkZXZfcHJvYmUoc3RydWN0IHJ0ZV9ldmVu dGRldiAqZGV2LA0KPiArCQkJCSBjb25zdCBjaGFyICpuYW1lLA0KPiArCQkJCSBib29sIGlzX3Zk ZXYpOw0KPiArdWludDMyX3QgZGxiX2dldF9xdWV1ZV9kZXB0aChzdHJ1Y3QgZGxiX2V2ZW50ZGV2 ICpkbGIsDQo+ICsJCQkgICAgIHN0cnVjdCBkbGJfZXZlbnRkZXZfcXVldWUgKnF1ZXVlKTsNCj4g Kw0KPiAraW50IHNldF9udW1hX25vZGUoY29uc3QgY2hhciAqa2V5IF9fcnRlX3VudXNlZCwgY29u c3QgY2hhciAqdmFsdWUsDQo+ICsJCSAgdm9pZCAqb3BhcXVlKTsNCj4gKw0KPiAraW50IHNldF9k aXJfcG9ydHMoY29uc3QgY2hhciAqa2V5IF9fcnRlX3VudXNlZCwNCj4gKwkJICBjb25zdCBjaGFy ICp2YWx1ZSBfX3J0ZV91bnVzZWQsDQo+ICsJCSAgdm9pZCAqb3BhcXVlIF9fcnRlX3VudXNlZCk7 DQo+ICsNCj4gK2ludCBzZXRfZGlyX3F1ZXVlcyhjb25zdCBjaGFyICprZXkgX19ydGVfdW51c2Vk LA0KPiArCQkgICBjb25zdCBjaGFyICp2YWx1ZSBfX3J0ZV91bnVzZWQsDQo+ICsJCSAgIHZvaWQg Km9wYXF1ZSBfX3J0ZV91bnVzZWQpOw0KDQpUaGUgc2V0X2Rpcl8qIGZ1bmN0aW9ucyBhcmUgYWxz byB1bmRlZmluZWQNCg0KPiArDQo+ICtpbnQgc2V0X21heF9udW1fZXZlbnRzKGNvbnN0IGNoYXIg KmtleSBfX3J0ZV91bnVzZWQsIGNvbnN0IGNoYXINCj4gKnZhbHVlLA0KPiArCQkgICAgICAgdm9p ZCAqb3BhcXVlKTsNCj4gKw0KPiAraW50IHNldF9udW1fZGlyX2NyZWRpdHMoY29uc3QgY2hhciAq a2V5IF9fcnRlX3VudXNlZCwgY29uc3QgY2hhciAqdmFsdWUsDQo+ICsJCQl2b2lkICpvcGFxdWUp Ow0KPiArDQo+ICt2b2lkIGRsYl9kcmFpbihzdHJ1Y3QgcnRlX2V2ZW50ZGV2ICpkZXYpOw0KDQpP bmx5IHVzZWQgaW4gZGxiLmMsIG5vIG5lZWQgZm9yIGEgZm9yd2FyZCBkZWNsYXJhdGlvbiAtLSBz aG91bGQgYmUgc3RhdGljDQppbnN0ZWFkLg0KDQo+ICsNCj4gK3ZvaWQgZGxiX2VudHJ5X3BvaW50 c19pbml0KHN0cnVjdCBydGVfZXZlbnRkZXYgKmRldik7DQo+ICsNCj4gK2ludCBkbGJfcGFyc2Vf cGFyYW1zKGNvbnN0IGNoYXIgKnBhcmFtcywNCj4gKwkJICAgICBjb25zdCBjaGFyICpuYW1lLA0K PiArCQkgICAgIHN0cnVjdCBkbGJfZGV2YXJncyAqZGxiX2FyZ3MpOw0KPiArDQo+ICtpbnQgZGxi X3N0cmluZ190b19pbnQoaW50ICpyZXN1bHQsIGNvbnN0IGNoYXIgKnN0cik7DQo+ICsNCj4gKyNl bmRpZgkvKiBfRExCX1BSSVZfSF8gKi8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZXZlbnQvZGxi L3J0ZV9wbWRfZGxiLmgNCj4gYi9kcml2ZXJzL2V2ZW50L2RsYi9ydGVfcG1kX2RsYi5oDQoNClRo aXMgZmlsZSBzaG91bGQgYmUgaW50cm9kdWNlZCBpbiB0aGUgY29tbWl0ICJldmVudC9kbGI6IGFk ZCBQTUQncyB0b2tlbiBwb3AgDQpwdWJsaWMgaW50ZXJmYWNlIg0KDQpUaGFua3MsDQpHYWdlDQo=