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 2E5E7A0A02; Thu, 25 Mar 2021 07:56:44 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9EE20140EF8; Thu, 25 Mar 2021 07:56:43 +0100 (CET) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam08on2059.outbound.protection.outlook.com [40.107.100.59]) by mails.dpdk.org (Postfix) with ESMTP id 42981140EEA for ; Thu, 25 Mar 2021 07:56:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=THP9jX1ZebdrMABR4po04oWwe4V0uk+HLs8REeDAPSAjpXdPKaG+KoTV10YrHWF2R329gPSmmDKIIwKFOzeOf22D4/ore5ANoPfvPxwN0gZ9VM9j6WdMNbLJ4LXx+rAslZIuHqK5ZMl0K2lm8exwfYMxuKYgyGakdw8r46ofBfXpcJLgNtkIfsSobCQpeUIX0iRRllitaQERoaOKL1eX/PcPNbRRPgx7JGHDeamP56WFwNAoGgnmtjuIwmzqvWKd2x3dk6sAl7C9fg4zJj4dp/CN8kx454KMk5F8uwta3iCrq43eJzTrSAnafvLiqaUUHm1sy4yqTHZmlC3u9/FJOg== 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=4tEgngCKQQUb1VmdB/UpwxHXmE3XJj2DUDdi9C6/RhU=; b=it7CabrApedzNXqyzzXa3m6yvFM8xtSakwEbCbMa0fxp53Y67Iya4TF7G4vknNP4NFL7q5erhtm3pNzPZox9whJvKTHYtoG4A0gy8m63Y+iNtwJ9VB+NPnMsdjuj1MDgsje/Q2zr/L9z1FhDLY6J+SLV04nJ6AWPn/ODzXDOfTtJfGA8zNxfPJ6WtNlG7+NKCV0V+AOFE/YX85G3Xepa/GShTLJ13zKiIRFBsKqoFSFFduAL/+vvKE683lmIV5pjUzlLJ6M4Ld1DSE6OSm6bF4/CrtYCsrGjWAwnNyjiUrBr7wmAtVaBB630GeXlXLbGEn2mUqqxYtTTjrxYAEDbUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4tEgngCKQQUb1VmdB/UpwxHXmE3XJj2DUDdi9C6/RhU=; b=TKgeN+F2KBwz751d4fWWoNNC4awYgUKn5AF1ocpkZK35WCF4FKnLCDa7eRWeofyZRJOjfyE4wLqWeHfuubZt0JTCsYG7AFZUiVHBDgqXdUXGPmaEdO8PSMvOyTthzu/XqEQH7Y8MB5sGpzFepP+LKcJ/Z+lTa8fjh1grmin7hRy19kvZq2SXTvPAeBJxlQKXMhLOyW0BPGdKTHeF7/RWW4aUJygwcPMX/o1/ZxK1do8fj2GjKkE9lsDqz4jQKXBI3j/YIyn2Fwfi1AJlkQTd/bLq2yPkOhWhQokfuxW6VXJ6xAFbXdrxp8XT++8tZ+jInRfjV8F8idrn3V/9RBUBCg== Received: from MW2PR12MB2492.namprd12.prod.outlook.com (2603:10b6:907:8::19) by MW3PR12MB4586.namprd12.prod.outlook.com (2603:10b6:303:53::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.23; Thu, 25 Mar 2021 06:56:39 +0000 Received: from MW2PR12MB2492.namprd12.prod.outlook.com ([fe80::99f2:8567:2f9e:c351]) by MW2PR12MB2492.namprd12.prod.outlook.com ([fe80::99f2:8567:2f9e:c351%4]) with mapi id 15.20.3890.038; Thu, 25 Mar 2021 06:56:39 +0000 From: Matan Azrad To: "Dumitrescu, Cristian" , Li Zhang , Dekel Peled , Ori Kam , Slava Ovsiienko , Shahaf Shuler , "lironh@marvell.com" , "Singh, Jasvinder" , NBU-Contact-Thomas Monjalon , "Yigit, Ferruh" , Andrew Rybchenko , Jerin Jacob , Hemant Agrawal , Ajit Khaparde CC: "dev@dpdk.org" , Raslan Darawsheh , Roni Bar Yanai Thread-Topic: [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API Thread-Index: AQHXG9TfQQoAjqHHdkiTwqLR9JFkW6qSGBmAgAIzQrA= Date: Thu, 25 Mar 2021 06:56:39 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [79.176.34.40] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dc5a3ab2-6a0a-4d4f-6704-08d8ef5b23e1 x-ms-traffictypediagnostic: MW3PR12MB4586: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FiJVjUflT58Xs5wJci+S6OfY3QZJkOClunWWYqfvu0A2DP6Z1qf2dO0E4ynin2yIOJqiK8zFJsxQLdqkFyrQ34iFX//cipAL63Qrxxiu9HpEq8WT9yeH8nORfHLW6VUm1/nw8Q4ke4Kh3MZK3vaa3KzBMCtJ32AvgWqttK5oucS21w6+tp7Iu7OAjlyC1uW8dxacDT1E0ePtKZAjytWlMYPb5DYKPD1Bk+v6iC/1a/3qEKW5NRSta7dkje/+vFOAALR0oJw5CfljsVAXrQwzK63yLLsmqZdStu8gEs9BfAZPB9WtVfGdikKSpT6/muIDjasojIIy5J91lRflbYuivxnJrBrwHMrxk+Ur/96OFILw4ORGhvRwB4D8vQPJNQAuMQU143HDnqV1ZzKsQE8c3/f8G5FrPajjcQ1d2t/dlKEzJLbnkOZAHkEeVPMze6xyTz9pFTDNDjg12fp2hdRLRez1zRWWkrr1YPU7lhyrZXGqvbHu5FHSXwZFClFAzNF9UYpSqH8m0yr3aLuptf4yyIx6iWn6BCInaAWlQ0W6+xurapVXdOlbKtuFpUFo4cdVFGtfV3cNCcz6H9bRh/g4oaNXGacPdhcE+s3RRS7JP2nbrI2svlVb34TPbOasxF/F5gwZaugvorUNGd55awd9ha12PeaZSK7ZSScENtEPb9yZga7YF8JTDY3AwxPwakUm x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB2492.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(396003)(376002)(136003)(39860400002)(316002)(478600001)(66946007)(76116006)(921005)(38100700001)(66446008)(66556008)(26005)(53546011)(30864003)(66476007)(2906002)(7416002)(4326008)(7696005)(6506007)(5660300002)(8676002)(71200400001)(64756008)(33656002)(9686003)(55016002)(83380400001)(110136005)(8936002)(186003)(86362001)(54906003)(52536014)(107886003)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?RWNzME0wWTZKd3E2dzNRWHpOTG1nRFVKNUNCcERWS2g1cE9rRFY3NnBQaXBG?= =?utf-8?B?cDFFcGZxOWRGb21PeFlwK1BZb0d1MlV6cXZyR3hMcy80WEZzeUpiZjBVWVJX?= =?utf-8?B?S203dzJseENKK2Y2bS82MlJJTmZBQThuWjVSdHBicWRDZGdLSGpRT1FCaHla?= =?utf-8?B?RUx3N0xEK3RSdytqTTVyMkladmtkV2M3TTIyTDh2d0FseGFDM1o0bVFpMjA1?= =?utf-8?B?c01idEY5UjF5UEovbGJ6ZXZpT3lyYm5nZU9XN0MvaUhFNkdPNGVwVTVaTFd0?= =?utf-8?B?dGcwdlZEaS8zWVRWZEZBSjBla1NqSlFHUkNFa0VBSmR3c3FEQXVidEVuQURw?= =?utf-8?B?Ymczb2RpMTZNSXR3Rm5NdlIzeFhYbDVEUzVzYnhqTTdzclkxV1V4aGNOck1M?= =?utf-8?B?SlAwTWp6dU52MjJUK2tRK1luekNSVkt0Z05McURKQmZZQWpPUjJUVnNodXFG?= =?utf-8?B?blBmRGcranl0anNYM3lSak96bVRzVXlEOTMyL09na2ttaGdjRzhxOWtWWnNX?= =?utf-8?B?YTgyalpFK0xKc0tsWnBPamFMWUF5QXI4Sm5yRmdTcXdmUC91bFZmbi9reTVS?= =?utf-8?B?RVNoc0RJTlVsSUNJOFRlRG1NZzExN2FaZHV3WGxMTU1aU24xUUpOcUV4cTZX?= =?utf-8?B?dUE0VW05cEczQm1TS0JaV3k3bUpRZHlSVFBGd2V4Z21iOUdBcGRrc2VNdjJX?= =?utf-8?B?NmU4N09kN2FZVXZSUEw4MU4xaGcrZE4rWG02ZTI4RTBqZmNRNFNXMzdjNXAv?= =?utf-8?B?QUJpYVN0QUxoUVJ6NktHdXBSRzFWLzJUcmRySSs4WlluMUxCZ0ZpYlVGRnhk?= =?utf-8?B?RWlubzVjMk1SRytadUI0SCtrOHRkZ1U2VW5CRUhCZjFXOTAwOU9pMDNEUWNN?= =?utf-8?B?WVd4RDU0R3c0YlVJdkVRb1ZCdVNxMEFzVktPOFlvNmhFSS9tdThEckZuM2I4?= =?utf-8?B?MWRvNzRnem4wNHVMQzhEb1NuZ2FoaWpWR01RV2I4b24yUTh5NExoL1ZranRp?= =?utf-8?B?dGRTczNXaER5MU1lN0xZc2hvQTZjajc0T3JOS1I1RWNkalhEN3JOd3g2ZUJ0?= =?utf-8?B?cDhuMCsxMUEvbTkwSU1aay9CTUNxcjFEREU2dllQdTlVRkVTenZ2UldQZmt4?= =?utf-8?B?elBickx6NVBQN0NuNHpsR3V2Qy9hbVdBR0V6Q1F2SkdMYUFSbkR4VU9KYXZX?= =?utf-8?B?Q2hRbHc5cmtXZDhZVUd4VFV2QklzUkl2NDkvdjhNYTNVZVBxL01tbTlWaTB5?= =?utf-8?B?Z0JVMVRWQUltZllEbDJjOE9iaDFIY2M3WHhhcGRjSzBSVU8xWnJrMkxmUjZO?= =?utf-8?B?MXV2TTV1NUk2S1d1TXlWdzA1ZnZUVVV2dnpFa2podVU3VVNTMjBwKzd5RUp5?= =?utf-8?B?a1U1SWsxQ1pTNzRFYVlxcXh1aHV1TEJUUi8xNnl3Vys5YVowNWUrNzJWZVRx?= =?utf-8?B?bW9PaFdnVW92MlErYXZ3WnZMZWtwWS9FUVhEWExaR2kyQ05FakpBcjJSbkdJ?= =?utf-8?B?VzRyb1c4RnF1U1JWMGRTbW56MitFYUdaMm9oUTFlSFNTalhoU0FHeWpZR0pQ?= =?utf-8?B?TDJVc1psQm1qOVNZYXlEbFFqYWxHZkF4M3o3bXE4K1BXTFRjSzRCaG9HVDVG?= =?utf-8?B?MWlIVjBYQkIrTUNvanE5MWoyaGFUTk1GU3RseU5ZUGVRTGpobXBOYU5qVEd0?= =?utf-8?B?dFVzZlJ2U25aRDU3aEVtMDIvTjBwS3cvc2s1UmphdVJhZVU1bkRoVTdBV0Fx?= =?utf-8?Q?Xlhl8iPlgd+gUPuTY8=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB2492.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc5a3ab2-6a0a-4d4f-6704-08d8ef5b23e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2021 06:56:39.4033 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wIql6GXsrpKxGEhodCKKyvJZWVGqq0/16XY/d36hD8i7Nlys8EUY9qIX9QvOsmuHub8lQnWeu4cJEaZKV/7Nwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4586 Subject: Re: [dpdk-dev] [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API 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" SGkgQ3Jpc3RpYW4NCg0KVGhhbmsgeW91IGZvciB5b3VyIGltcG9ydGFudCByZXZpZXchDQpJIGFn cmVlIHdpdGggYWxsIHlvdXIgY29tbWVudHMgZXhjZXB0IG9uZSwgcGxlYXNlIHNlZSBpbmxpbmUu DQoNCkZyb206IER1bWl0cmVzY3UsIENyaXN0aWFuDQo+IEhpIExpIGFuZCBNYXRhbiwNCj4gDQo+ IFRoYW5rIHlvdSBmb3IgeW91ciBwcm9wb3NhbCwgc29tZSBjb21tZW50cyBiZWxvdy4NCj4gDQo+ IEkgYW0gYWxzbyBhZGRpbmcgSmVyaW4gYW5kIEhlbWFudCB0byB0aGlzIHRocmVhZCwgYXMgdGhl eSBhbHNvIHBhcnRpY2lwYXRlZCBpbg0KPiB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgcnRlX210ciBB UEkgaW4gMjAxNy4gQWxzbyBBaml0IGV4cHJlc3NlZCBzb21lIGludGVyZXN0IGluIGENCj4gcHJl dmlvdXMgZW1haWwuDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJv bTogTGkgWmhhbmcgPGxpemhAbnZpZGlhLmNvbT4NCj4gPiBTZW50OiBUaHVyc2RheSwgTWFyY2gg MTgsIDIwMjEgODo1OCBBTQ0KPiA+IFRvOiBkZWtlbHBAbnZpZGlhLmNvbTsgb3Jpa2FAbnZpZGlh LmNvbTsgdmlhY2hlc2xhdm9AbnZpZGlhLmNvbTsNCj4gPiBtYXRhbkBudmlkaWEuY29tOyBzaGFo YWZzQG52aWRpYS5jb207IGxpcm9uaEBtYXJ2ZWxsLmNvbTsgU2luZ2gsDQo+ID4gSmFzdmluZGVy IDxqYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tPjsgVGhvbWFzIE1vbmphbG9uDQo+ID4gPHRob21h c0Btb25qYWxvbi5uZXQ+OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsg QW5kcmV3DQo+ID4gUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT47IER1 bWl0cmVzY3UsIENyaXN0aWFuDQo+ID4gPGNyaXN0aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29tPg0K PiA+IENjOiBkZXZAZHBkay5vcmc7IHJhc2xhbmRAbnZpZGlhLmNvbTsgcm9uaWJhQG52aWRpYS5j b20NCj4gPiBTdWJqZWN0OiBbUEFUQ0ggMS8yXSBbUkZDXTogZXRoZGV2OiBhZGQgcHJlLWRlZmlu ZWQgbWV0ZXIgcG9saWN5IEFQSQ0KPiA+DQo+ID4gQ3VycmVudGx5LCB0aGUgZmxvdyBtZXRlciBw b2xpY3kgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBhY3Rpb25zIHBlcg0KPiA+IGNvbG9yOyBh bHNvIHRoZSBhbGxvd2VkIGFjdGlvbiB0eXBlcyBwZXIgY29sb3IgYXJlIHZlcnkgbGltaXRlZC4N Cj4gPiBJbiBhZGRpdGlvbiwgdGhlIHBvbGljeSBjYW5ub3QgYmUgcHJlLWRlZmluZWQuDQo+ID4N Cj4gPiBEdWUgdG8gdGhlIGdyb3dpbmcgaW4gZmxvdyBhY3Rpb25zIG9mZmxvYWQgYWJpbGl0aWVz IHRoZXJlIGlzIGENCj4gPiBwb3RlbnRpYWwgZm9yIHRoZSB1c2VyIHRvIHVzZSB2YXJpZXR5IG9m IGFjdGlvbnMgcGVyIGNvbG9yIGRpZmZlcmVudGx5Lg0KPiA+IFRoaXMgbmV3IG1ldGVyIHBvbGlj eSBBUEkgY29tZXMgdG8gYWxsb3cgdGhpcyBwb3RlbnRpYWwgaW4gdGhlIG1vc3QNCj4gPiBldGhk ZXYgY29tbW9uIHdheSB1c2luZyBydGVfZmxvdyBhY3Rpb24gZGVmaW5pdGlvbi4NCj4gPiBBIGxp c3Qgb2YgcnRlX2Zsb3cgYWN0aW9ucyB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIHBlciBj b2xvciBpbg0KPiA+IG9yZGVyIHRvIGNyZWF0ZSBhIG1ldGVyIHBvbGljeS4NCj4gPiBJbiBhZGRp dGlvbiwgdGhlIEFQSSBmb3JjZXMgdG8gcHJlLWRlZmluZSB0aGUgcG9saWN5IGJlZm9yZSB0aGUg bWV0ZXJzDQo+ID4gY3JlYXRpb24gaW4gb3JkZXIgdG8gYWxsb3cgc2hhcmluZyBvZiBzaW5nbGUg cG9saWN5IHdpdGggbXVsdGlwbGUNCj4gPiBtZXRlcnMgZWZmaWNpZW50bHkuDQo+ID4NCj4gPiBt ZXRlcl9wb2xpY3lfaWQgaXMgYWRkZWQgaW50byBzdHJ1Y3QgcnRlX210cl9wYXJhbXMuDQo+ID4g U28gdGhhdCBpdCBjYW4gZ2V0IHRoZSBwb2xpY3kgZHVyaW5nIHRoZSBtZXRlcnMgY3JlYXRpb24u DQo+ID4NCj4gPiBQb2xpY3kgaWQgMCBpcyBkZWZhdWx0IHBvbGljeS4gQWN0aW9uIHBlciBjb2xv ciBhcyBiZWxvdzoNCj4gPiBncmVlbiAtIG5vIGFjdGlvbiwgeWVsbG93IC0gbm8gYWN0aW9uLCBy ZWQgLSBkcm9wDQo+ID4NCj4gPiBBbGxvdyBjb2xvcmluZyB0aGUgcGFja2V0IHVzaW5nIGEgbmV3 IHJ0ZV9mbG93X2FjdGlvbl9jb2xvciBhcyBjb3VsZA0KPiA+IGJlIGRvbmUgYnkgdGhlIG9sZCBw b2xpY3kgQVBJLA0KPiA+DQo+IA0KPiBUaGUgcHJvcG9zYWwgZXNzZW50aWFsbHkgaXMgdG8gZGVm aW5lIHRoZSBtZXRlciBwb2xpY3kgYmFzZWQgb24gcnRlX2Zsb3cgYWN0aW9ucw0KPiByYXRoZXIg dGhhbiBhIHJlZHVjZWQgYWN0aW9uIHNldCBkZWZpbmVkIHNwZWNpZmljYWxseSBqdXN0IGZvciBt ZXRlciBvYmplY3QuIFRoaXMNCj4gbWFrZXMgc2Vuc2UgdG8gbWUuDQo+IA0KPiA+IFRoZSBuZXh0 IEFQSSBmdW5jdGlvbiB3ZXJlIGFkZGVkOg0KPiA+IC0gcnRlX210cl9tZXRlcl9wb2xpY3lfYWRk DQo+ID4gLSBydGVfbXRyX21ldGVyX3BvbGljeV9kZWxldGUNCj4gPiAtIHJ0ZV9tdHJfbWV0ZXJf cG9saWN5X3VwZGF0ZQ0KPiA+IC0gcnRlX210cl9tZXRlcl9wb2xpY3lfdmFsaWRhdGUNCj4gPiBU aGUgbmV4dCBzdHJ1Y3Qgd2FzIGNoYW5nZWQ6DQo+ID4gLSBydGVfbXRyX3BhcmFtcw0KPiA+IC0g cnRlX210cl9jYXBhYmlsaXRpZXMNCj4gPiBUaGUgbmV4dCBBUEkgd2FzIGRlbGV0ZWQ6DQo+ID4g LSBydGVfbXRyX3BvbGljZXJfYWN0aW9uc191cGRhdGUNCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6 IExpIFpoYW5nIDxsaXpoQG52aWRpYS5jb20+DQo+ID4gLS0tDQo+ID4gIGxpYi9saWJydGVfZXRo ZGV2L3J0ZV9mbG93LmggICAgICAgfCAgMTggKysrKw0KPiA+ICBsaWIvbGlicnRlX2V0aGRldi9y dGVfbXRyLmMgICAgICAgIHwgIDU1ICsrKysrKysrLS0NCj4gPiAgbGliL2xpYnJ0ZV9ldGhkZXYv cnRlX210ci5oICAgICAgICB8IDE2NiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfbXRyX2RyaXZlci5oIHwgIDQ1ICsrKysrKy0tDQo+ID4g IDQgZmlsZXMgY2hhbmdlZCwgMjEwIGluc2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQ0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiBiL2xp Yi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmggaW5kZXggNjY5ZTY3N2U5MS4uNWYzOGFhN2ZhNCAx MDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gKysrIGIv bGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+IEBAIC0zMSw2ICszMSw3IEBADQo+ID4g ICNpbmNsdWRlIDxydGVfZWNwcmkuaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9tYnVmLmg+DQo+ID4g ICNpbmNsdWRlIDxydGVfbWJ1Zl9keW4uaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9tZXRlci5oPg0K PiA+DQo+ID4gICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ICBleHRlcm4gIkMiIHsNCj4gPiBAQCAt MjIzNiw2ICsyMjM3LDEzIEBAIGVudW0gcnRlX2Zsb3dfYWN0aW9uX3R5cGUgew0KPiA+ICAgICAg ICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21vZGlmeV9maWVsZC4NCj4gPiAgICAgICAg Ki8NCj4gPiAgICAgICBSVEVfRkxPV19BQ1RJT05fVFlQRV9NT0RJRllfRklFTEQsDQo+ID4gKw0K PiA+ICsgICAgIC8qKg0KPiA+ICsgICAgICAqIENvbG9yIHRoZSBwYWNrZXQgdG8gcmVmbGVjdCB0 aGUgbWV0ZXIgY29sb3IgcmVzdWx0Lg0KPiA+ICsgICAgICAqDQo+ID4gKyAgICAgICogU2VlIHN0 cnVjdCBydGVfZmxvd19hY3Rpb25fY29sb3IuDQo+ID4gKyAgICAgICovDQo+ID4gKyAgICAgUlRF X0ZMT1dfQUNUSU9OX1RZUEVfQ09sT1IsDQo+IA0KPiBUeXBvIGhlcmUsIGl0IHNob3VsZCBiZSBS VEVfRkxPV19BQ1RJT05fVFlQRV9DT0xPUi4NCj4gDQo+ID4gIH07DQo+ID4NCj4gPiAgLyoqDQo+ ID4gQEAgLTI4MjgsNiArMjgzNiwxNiBAQCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3NldF9kc2Nw IHsNCj4gPiAgICovDQo+ID4gIHN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uOw0KPiA+DQo+ ID4gKy8qKg0KPiA+ICsgKiBSVEVfRkxPV19BQ1RJT05fVFlQRV9DT0xPUg0KPiA+ICsgKg0KPiA+ ICsgKiBUaGUgbWV0ZXIgY29sb3Igc2hvdWxkIGJlIHNldCBpbiB0aGUgcGFja2V0IG1ldGEtZGF0 YQ0KPiA+ICsgKiAoaS5lLiBzdHJ1Y3QgcnRlX21idWY6OnNjaGVkOjpjb2xvcikuDQo+ID4gKyAq Lw0KPiA+ICtzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2NvbG9yIHsNCj4gPiArICAgICBlbnVtIHJ0 ZV9jb2xvciBjb2xvcjsgLyoqPCBHcmVlbi9ZZWxsb3cvUmVkLiAqLw0KPiANCj4gSSB3b3VsZCBh dm9pZCBleHBhbmRpbmcgdGhlIGxpc3Qgb2YgY29sb3JzIGluIHRoZSBjb21tZW50LCBhcyB3ZSBt aWdodCBoYXZlIHRvDQo+IHN1cHBvcnQgbW9yZSB0aGFuIDMgY29sb3JzIGluIHRoZSBmdXR1cmUu IEkgd291bGQgc2ltcGx5IHdyaXRlOiAiUGFja2V0IGNvbG9yLiINCj4gDQo+ID4gK307DQo+ID4g Kw0KPiA+ICAvKioNCj4gPiAgICogRmllbGQgSURzIGZvciBNT0RJRllfRklFTEQgYWN0aW9uLg0K PiA+ICAgKi8NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5jIGIv bGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5jDQo+ID4gaW5kZXggMzA3M2FjMDNmMi4uZmNjZWMz NzYwYiAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfbXRyLmMNCj4gPiAr KysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfbXRyLmMNCj4gPiBAQCAtOTEsNiArOTEsNDAgQEAg cnRlX210cl9tZXRlcl9wcm9maWxlX2RlbGV0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICAgICAg ICAgICAgICAgbWV0ZXJfcHJvZmlsZV9pZCwgZXJyb3IpOyAgfQ0KPiA+DQo+ID4gKy8qIE1UUiBt ZXRlciBwb2xpY3kgdmFsaWRhdGUgKi8NCj4gPiAraW50DQo+ID4gK3J0ZV9tdHJfbWV0ZXJfcG9s aWN5X3ZhbGlkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gKyAgICAgY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbiAqYWN0aW9uc1tSVEVfQ09MT1JTXSwNCj4gPiArICAgICBzdHJ1Y3QgcnRl X210cl9lcnJvciAqZXJyb3IpDQo+ID4gK3sNCj4gPiArICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4gKyAgICAgcmV0dXJuIFJURV9N VFJfRlVOQyhwb3J0X2lkLCBtZXRlcl9wb2xpY3lfdmFsaWRhdGUpKGRldiwNCj4gPiArICAgICAg ICAgICAgIGFjdGlvbnMsIGVycm9yKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyogTVRSIG1ldGVy IHBvbGljeSBhZGQgKi8NCj4gPiAraW50DQo+ID4gK3J0ZV9tdHJfbWV0ZXJfcG9saWN5X2FkZCh1 aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsgICAgIHVpbnQzMl90IHBvbGljeV9pZCwNCj4gPiArICAg ICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb25zW1JURV9DT0xPUlNdLA0KPiA+ ICsgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcikNCj4gPiArew0KPiA+ICsgICAgIHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPiAr ICAgICByZXR1cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQsIG1ldGVyX3BvbGljeV9hZGQpKGRldiwN Cj4gPiArICAgICAgICAgICAgIHBvbGljeV9pZCwgYWN0aW9ucywgZXJyb3IpOyB9DQo+ID4gKw0K PiA+ICsvKiogTVRSIG1ldGVyIHBvbGljeSBkZWxldGUgKi8NCj4gPiAraW50DQo+ID4gK3J0ZV9t dHJfbWV0ZXJfcG9saWN5X2RlbGV0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsgICAgIHVpbnQz Ml90IHBvbGljeV9pZCwNCj4gPiArICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpDQo+ ID4gK3sNCj4gPiArICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2Rldmlj ZXNbcG9ydF9pZF07DQo+ID4gKyAgICAgcmV0dXJuIFJURV9NVFJfRlVOQyhwb3J0X2lkLCBtZXRl cl9wb2xpY3lfZGVsZXRlKShkZXYsDQo+ID4gKyAgICAgICAgICAgICBwb2xpY3lfaWQsIGVycm9y KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgLyoqIE1UUiBvYmplY3QgY3JlYXRlICovDQo+ID4gIGlu dA0KPiA+ICBydGVfbXRyX2NyZWF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+IEBAIC0xNDksMjkg KzE4MywyOCBAQCBydGVfbXRyX21ldGVyX3Byb2ZpbGVfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQs DQo+ID4gICAgICAgICAgICAgICBtdHJfaWQsIG1ldGVyX3Byb2ZpbGVfaWQsIGVycm9yKTsgIH0N Cj4gPg0KPiA+IC0vKiogTVRSIG9iamVjdCBtZXRlciBEU0NQIHRhYmxlIHVwZGF0ZSAqLw0KPiA+ ICsvKiogTVRSIG9iamVjdCBtZXRlciBwb2xpY3kgdXBkYXRlICovDQo+ID4gIGludA0KPiA+IC1y dGVfbXRyX21ldGVyX2RzY3BfdGFibGVfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gK3J0 ZV9tdHJfbWV0ZXJfcG9saWN5X3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICAgICAgIHVp bnQzMl90IG10cl9pZCwNCj4gPiAtICAgICBlbnVtIHJ0ZV9jb2xvciAqZHNjcF90YWJsZSwNCj4g PiArICAgICB1aW50MzJfdCBtZXRlcl9wb2xpY3lfaWQsDQo+ID4gICAgICAgc3RydWN0IHJ0ZV9t dHJfZXJyb3IgKmVycm9yKQ0KPiA+ICB7DQo+ID4gICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+IC0gICAgIHJldHVybiBSVEVfTVRS X0ZVTkMocG9ydF9pZCwgbWV0ZXJfZHNjcF90YWJsZV91cGRhdGUpKGRldiwNCj4gPiAtICAgICAg ICAgICAgIG10cl9pZCwgZHNjcF90YWJsZSwgZXJyb3IpOw0KPiA+ICsgICAgIHJldHVybiBSVEVf TVRSX0ZVTkMocG9ydF9pZCwgbWV0ZXJfcG9saWN5X3VwZGF0ZSkoZGV2LA0KPiA+ICsgICAgICAg ICAgICAgbXRyX2lkLCBtZXRlcl9wb2xpY3lfaWQsIGVycm9yKTsNCj4gPiAgfQ0KPiA+DQo+ID4g LS8qKiBNVFIgb2JqZWN0IHBvbGljZXIgYWN0aW9uIHVwZGF0ZSAqLw0KPiA+ICsvKiogTVRSIG9i amVjdCBtZXRlciBEU0NQIHRhYmxlIHVwZGF0ZSAqLw0KPiA+ICBpbnQNCj4gPiAtcnRlX210cl9w b2xpY2VyX2FjdGlvbnNfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gK3J0ZV9tdHJfbWV0 ZXJfZHNjcF90YWJsZV91cGRhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiAgICAgICB1aW50MzJf dCBtdHJfaWQsDQo+ID4gLSAgICAgdWludDMyX3QgYWN0aW9uX21hc2ssDQo+ID4gLSAgICAgZW51 bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uICphY3Rpb25zLA0KPiA+ICsgICAgIGVudW0gcnRlX2Nv bG9yICpkc2NwX3RhYmxlLA0KPiA+ICAgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcikN Cj4gPiAgew0KPiA+ICAgICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2 aWNlc1twb3J0X2lkXTsNCj4gPiAtICAgICByZXR1cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQsIHBv bGljZXJfYWN0aW9uc191cGRhdGUpKGRldiwNCj4gPiAtICAgICAgICAgICAgIG10cl9pZCwgYWN0 aW9uX21hc2ssIGFjdGlvbnMsIGVycm9yKTsNCj4gPiArICAgICByZXR1cm4gUlRFX01UUl9GVU5D KHBvcnRfaWQsIG1ldGVyX2RzY3BfdGFibGVfdXBkYXRlKShkZXYsDQo+ID4gKyAgICAgICAgICAg ICBtdHJfaWQsIGRzY3BfdGFibGUsIGVycm9yKTsNCj4gPiAgfQ0KPiA+DQo+ID4gIC8qKiBNVFIg b2JqZWN0IGVuYWJsZWQgc3RhdHMgdXBkYXRlICovIGRpZmYgLS1naXQNCj4gPiBhL2xpYi9saWJy dGVfZXRoZGV2L3J0ZV9tdHIuaCBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9tdHIuaCBpbmRleA0K PiA+IDkxNmEwOWM1YzMuLjA3OTYxZjI3NzcgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9l dGhkZXYvcnRlX210ci5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5oDQo+ ID4gQEAgLTQ5LDYgKzQ5LDcgQEANCj4gPiAgI2luY2x1ZGUgPHJ0ZV9jb21wYXQuaD4NCj4gPiAg I2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9tZXRlci5oPg0KPiA+ ICsjaW5jbHVkZSA8cnRlX2Zsb3cuaD4NCj4gPg0KPiA+ICAjaWZkZWYgX19jcGx1c3BsdXMNCj4g PiAgZXh0ZXJuICJDIiB7DQo+ID4gQEAgLTE3NCwyMyArMTc1LDYgQEAgc3RydWN0IHJ0ZV9tdHJf bWV0ZXJfcHJvZmlsZSB7DQo+ID4gICAgICAgfTsNCj4gPiAgfTsNCj4gPg0KPiA+IC0vKioNCj4g PiAtICogUG9saWNlciBhY3Rpb25zDQo+ID4gLSAqLw0KPiA+IC1lbnVtIHJ0ZV9tdHJfcG9saWNl cl9hY3Rpb24gew0KPiA+IC0gICAgIC8qKiBSZWNvbG9yIHRoZSBwYWNrZXQgYXMgZ3JlZW4uICov DQo+ID4gLSAgICAgTVRSX1BPTElDRVJfQUNUSU9OX0NPTE9SX0dSRUVOID0gMCwNCj4gPiAtDQo+ ID4gLSAgICAgLyoqIFJlY29sb3IgdGhlIHBhY2tldCBhcyB5ZWxsb3cuICovDQo+ID4gLSAgICAg TVRSX1BPTElDRVJfQUNUSU9OX0NPTE9SX1lFTExPVywNCj4gPiAtDQo+ID4gLSAgICAgLyoqIFJl Y29sb3IgdGhlIHBhY2tldCBhcyByZWQuICovDQo+ID4gLSAgICAgTVRSX1BPTElDRVJfQUNUSU9O X0NPTE9SX1JFRCwNCj4gPiAtDQo+ID4gLSAgICAgLyoqIERyb3AgdGhlIHBhY2tldC4gKi8NCj4g PiAtICAgICBNVFJfUE9MSUNFUl9BQ1RJT05fRFJPUCwNCj4gPiAtfTsNCj4gPiAtDQo+ID4gIC8q Kg0KPiA+ICAgKiBQYXJhbWV0ZXJzIGZvciBlYWNoIHRyYWZmaWMgbWV0ZXJpbmcgJiBwb2xpY2lu ZyBvYmplY3QNCj4gPiAgICoNCj4gPiBAQCAtMjMyLDEzICsyMTYsMTMgQEAgc3RydWN0IHJ0ZV9t dHJfcGFyYW1zIHsNCj4gPiAgICAgICAgKi8NCj4gPiAgICAgICBpbnQgbWV0ZXJfZW5hYmxlOw0K PiA+DQo+ID4gLSAgICAgLyoqIFBvbGljZXIgYWN0aW9ucyAocGVyIG1ldGVyIG91dHB1dCBjb2xv cikuICovDQo+ID4gLSAgICAgZW51bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uIGFjdGlvbltSVEVf Q09MT1JTXTsNCj4gPiAtDQo+ID4gICAgICAgLyoqIFNldCBvZiBzdGF0cyBjb3VudGVycyB0byBi ZSBlbmFibGVkLg0KPiA+ICAgICAgICAqIEBzZWUgZW51bSBydGVfbXRyX3N0YXRzX3R5cGUNCj4g PiAgICAgICAgKi8NCj4gPiAgICAgICB1aW50NjRfdCBzdGF0c19tYXNrOw0KPiA+ICsNCj4gPiAr ICAgICAvKiogTWV0ZXIgcG9saWN5IElELiAqLw0KPiA+ICsgICAgIHVpbnQzMl90IG1ldGVyX3Bv bGljeV9pZDsNCj4gPiAgfTsNCj4gPg0KPiA+ICAvKioNCj4gPiBAQCAtMzI0LDYgKzMwOCwxMyBA QCBzdHJ1Y3QgcnRlX210cl9jYXBhYmlsaXRpZXMgew0KPiA+ICAgICAgICAqLw0KPiA+ICAgICAg IHVpbnQ2NF90IG1ldGVyX3JhdGVfbWF4Ow0KPiA+DQo+ID4gKyAgICAgLyoqDQo+ID4gKyAgICAg ICogTWF4aW11bSBudW1iZXIgb2YgcG9saWN5IG9iamVjdHMgdGhhdCBjYW4gaGF2ZS4NCj4gPiAr ICAgICAgKiBUaGUgdmFsdWUgb2YgMCBpcyBpbnZhbGlkLiBQb2xpY3kgbXVzdCBiZSBzdXBwb3J0 ZWQgZm9yIG1ldGVyLg0KPiA+ICsgICAgICAqIFRoZSBtYXhpbXVtIHZhbHVlIGlzICpuX21heCou DQo+ID4gKyAgICAgICovDQo+ID4gKyAgICAgdWludDY0X3QgbWV0ZXJfcG9saWN5X25fbWF4Ow0K PiA+ICsNCj4gPiAgICAgICAvKioNCj4gPiAgICAgICAgKiBXaGVuIG5vbi16ZXJvLCBpdCBpbmRp Y2F0ZXMgdGhhdCBjb2xvciBhd2FyZSBtb2RlIGlzDQo+ID4gc3VwcG9ydGVkIGZvcg0KPiA+ICAg ICAgICAqIHRoZSBzclRDTSBSRkMgMjY5NyBtZXRlcmluZyBhbGdvcml0aG0uDQo+ID4gQEAgLTM0 MiwxOCArMzMzLDYgQEAgc3RydWN0IHJ0ZV9tdHJfY2FwYWJpbGl0aWVzIHsNCj4gPiAgICAgICAg Ki8NCj4gPiAgICAgICBpbnQgY29sb3JfYXdhcmVfdHJ0Y21fcmZjNDExNV9zdXBwb3J0ZWQ7DQo+ ID4NCj4gPiAtICAgICAvKiogV2hlbiBub24temVybywgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHBv bGljZXIgcGFja2V0IHJlY29sb3INCj4gPiBhY3Rpb25zDQo+ID4gLSAgICAgICogYXJlIHN1cHBv cnRlZC4NCj4gPiAtICAgICAgKiBAc2VlIGVudW0gcnRlX210cl9wb2xpY2VyX2FjdGlvbg0KPiA+ IC0gICAgICAqLw0KPiA+IC0gICAgIGludCBwb2xpY2VyX2FjdGlvbl9yZWNvbG9yX3N1cHBvcnRl ZDsNCj4gPiAtDQo+ID4gLSAgICAgLyoqIFdoZW4gbm9uLXplcm8sIGl0IGluZGljYXRlcyB0aGF0 IHRoZSBwb2xpY2VyIHBhY2tldCBkcm9wIGFjdGlvbiBpcw0KPiA+IC0gICAgICAqIHN1cHBvcnRl ZC4NCj4gPiAtICAgICAgKiBAc2VlIGVudW0gcnRlX210cl9wb2xpY2VyX2FjdGlvbg0KPiA+IC0g ICAgICAqLw0KPiA+IC0gICAgIGludCBwb2xpY2VyX2FjdGlvbl9kcm9wX3N1cHBvcnRlZDsNCj4g PiAtDQo+ID4gICAgICAgLyoqIFNldCBvZiBzdXBwb3J0ZWQgc3RhdGlzdGljcyBjb3VudGVyIHR5 cGVzLg0KPiA+ICAgICAgICAqIEBzZWUgZW51bSBydGVfbXRyX3N0YXRzX3R5cGUNCj4gPiAgICAg ICAgKi8NCj4gPiBAQCAtNDYyLDYgKzQ0MSw5NCBAQCBydGVfbXRyX21ldGVyX3Byb2ZpbGVfZGVs ZXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gICAgICAgdWludDMyX3QgbWV0ZXJfcHJvZmlsZV9p ZCwNCj4gPiAgICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiA+DQo+ID4gKy8q Kg0KPiA+ICsgKiBQb2xpY3kgaWQgMCBpcyBkZWZhdWx0IHBvbGljeS4NCj4gDQo+IEkgc3VnZ2Vz dCB5b3UgZG8gbm90IHJlZHVuZGFudGx5IHNwZWNpZnkgdGhlIHZhbHVlIG9mIHRoZSBkZWZhdWx0 IHBvbGljeSBJRCBpbiB0aGUNCj4gY29tbWVudC4gUmVwbGFjZSBieSAiRGVmYXVsdCBwb2xpY3kg SUQuIg0KPiANCj4gPiArICogQWN0aW9uIHBlciBjb2xvciBhcyBiZWxvdzoNCj4gPiArICogZ3Jl ZW4gLSBubyBhY3Rpb24sIHllbGxvdyAtIG5vIGFjdGlvbiwgcmVkIC0gZHJvcA0KPiANCj4gVGhp cyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIG1lIGFzIHRoZSBkZWZhdWx0IHBvbGljeS4gVGhlIGRl ZmF1bHQgcG9saWN5IHNob3VsZA0KPiBiZSAibm8gY2hhbmdlIiwgaS5lLiBncmVlbiAtPiBncmVl biAobm8gY2hhbmdlKSwgeWVsbG93IC0+IHllbGxvdyAobm8gY2hhbmdlKSwNCj4gcmVkIC0+IHJl ZCAobm8gY2hhbmdlKS4NCg0KQ2FuIHlvdSBleHBsYWluIHdoeSBpdCBkb2Vzbid0IG1ha2Ugc2Vu c2UgdG8geW91Pw0KDQpNZXRlciB3aXRoICJubyBjaGFuZ2UiIGZvciBhbGwgY29sb3JzIGhhcyBu byBlZmZlY3Qgb24gdGhlIHBhY2tldHMgc28gaXQgaXMgcmVkdW5kYW50IGFjdGlvbiB3aGljaCBq dXN0IGNvc3RzIHBlcmZvcm1hbmNlIGFuZCByZXNvdXJjZXMgLSBwcm9iYWJseSBuZXZlciBiZSB1 c2VkLg0KDQpUaGUgbW9zdCBjb21tb24gdXNhZ2UgZm9yIG1ldGVyIGlzIHRvIGRyb3AgYWxsIHRo ZSBwYWNrZXRzIGNvbWUgYWJvdmUgdGhlIGRlZmluZWQgcmF0ZSBsaW1pdCAtIHNvIGl0IG1ha2Vz IHNlbnNlIHRvIHRha2UgdGhpcyBiZWhhdmlvciBhcyBkZWZhdWx0Lg0KDQoNCj4gSSBzdWdnZXN0 IHdlIGF2b2lkIHRoZSAibm8gYWN0aW9uIiBzdGF0ZW1lbnQsIGFzIGl0IG1pZ2h0IGJlIGNvbmZ1 c2luZy4NCg0KTWF5YmUgImRvIG5vdGhpbmciIGlzIGJldHRlcj8NCg0KDQo+ID4gKyAqIEl0IGNh biBiZSB1c2VkIHdpdGhvdXQgY3JlYXRpbmcgaXQgYnkgdGhlIHJ0ZV9tdHJfbWV0ZXJfcG9saWN5 X2FkZA0KPiA+IGZ1bmN0aW9uLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBSVEVfTVRSX0RFRkFV TFRfUE9MSUNZX0lEIDANCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBDaGVjayB3aGV0aGVyIGEg bWV0ZXIgcG9saWN5IGNhbiBiZSBjcmVhdGVkIG9uIGEgZ2l2ZW4gcG9ydC4NCj4gPiArICoNCj4g PiArICogVGhlIG1ldGVyIHBvbGljeSBpcyB2YWxpZGF0ZWQgZm9yIGNvcnJlY3RuZXNzIGFuZA0K PiA+ICsgKiB3aGV0aGVyIGl0IGNvdWxkIGJlIGFjY2VwdGVkIGJ5IHRoZSBkZXZpY2UgZ2l2ZW4g c3VmZmljaWVudCByZXNvdXJjZXMuDQo+ID4gKyAqIFRoZSBwb2xpY3kgaXMgY2hlY2tlZCBhZ2Fp bnN0IHRoZSBjdXJyZW50IGNhcGFiaWxpdHkgaW5mb3JtYXRpb24NCj4gPiArICogbWV0ZXJfcG9s aWN5X25fbWF4IGNvbmZpZ3VyYXRpb24uDQo+ID4gKyAqIFRoZSBwb2xpY3kgbWF5IGFsc28gb3B0 aW9uYWxseSBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBleGlzdGluZw0KPiA+ICsgKiBkZXZpY2UgcG9s aWN5IHJlc291cmNlcy4NCj4gPiArICogVGhpcyBmdW5jdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRo ZSB0YXJnZXQgZGV2aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4g PiArICogICBUaGUgcG9ydCBpZGVudGlmaWVyIG9mIHRoZSBFdGhlcm5ldCBkZXZpY2UuDQo+ID4g KyAqIEBwYXJhbVtpbl0gcG9saWN5X2lkDQo+ID4gKyAqICAgUG9saWN5IGlkZW50aWZpZXIgZm9y IHRoZSBuZXcgbWV0ZXIgcG9saWN5Lg0KPiA+ICsgKiBAcGFyYW1baW5dIGFjdGlvbnMNCj4gPiAr ICogICBBc3NvY2lhdGVkIGFjdGlvbiBsaXN0IHBlciBjb2xvci4NCj4gPiArICogICBsaXN0IE5V TEwgaXMgbGVnYWwgYW5kIG1lYW5zIG5vIHNwZWNpYWwgYWN0aW9uLg0KPiA+ICsgKiAgIChsaXN0 IHRlcm1pbmF0ZWQgYnkgdGhlIEVORCBhY3Rpb24pLg0KPiA+ICsgKiBAcGFyYW1bb3V0XSBlcnJv cg0KPiA+ICsgKiAgIEVycm9yIGRldGFpbHMuIEZpbGxlZCBpbiBvbmx5IG9uIGVycm9yLCB3aGVu IG5vdCBOVUxMLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgMCBvbiBzdWNj ZXNzLCBub24temVybyBlcnJvciBjb2RlIG90aGVyd2lzZS4NCj4gPiArICoNCj4gPiArICovDQo+ ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ICtpbnQNCj4gPiArcnRlX210cl9tZXRlcl9wb2xp Y3lfdmFsaWRhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiArICAgICB1aW50MzJfdCBwb2xpY3lf aWQsDQo+ID4gKyAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9uc1tSVEVf Q09MT1JTXSwNCj4gPiArICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiA+ICsN Cj4gDQo+IFRoaXMgZW50aXJlIHByb3Bvc2FsIGlzIGFib3V0IGRlZmluaW5nIGEgbWV0ZXIgcG9s aWN5LCB5ZXQgdGhlcmUgaXMgbm8gc3RydWN0dXJlDQo+IGRlZmluaW5nIHdoYXQgZXhhY3RseSB0 aGUgbWV0ZXIgcG9saWN5IGlzIQ0KPiANCj4gUGxlYXNlIGxldCdzIHVzZSB0aGUgZm9sbG93aW5n IHN0cnVjdHVyZSBmb3IgdGhlIHBvbGljeSBwYXJhbWV0ZXJzIGZvciB0aGUgcG9saWN5DQo+IHZh bGlkYXRlL2FkZC9kZWxldGUgQVBJIGZ1bmN0aW9uczoNCj4gDQo+IHN0cnVjdCBydGVfbXRyX21l dGVyX3BvbGljeV9wYXJhbXMgew0KPiAgICAgICAgIHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFj dGlvbnNbUlRFX0NPTE9SU107IH07DQo+IA0KPiBUaGlzIHdvdWxkIGFsc28gZ2l2ZSB1cyB0aGUg Y2hhbmNlIHRvIGRvY3VtZW50IHRoZSBwb2xpY3kgY29uY2VwdCBpbiBkZXRhaWwNCj4gb25jZSBh bmQgbm90IHJlcGVhdCB0aGUgc2FtZSBleHBsYW5hdGlvbiBvdmVyIGFuZCBvdmVyLiBGb3IgZXhh bXBsZSwgd2UNCj4gbmVlZCB0byBleHBsYWluIGNsZWFybHkgdGhhdCBhY3Rpb25zW2ldIHBvdGVu dGlhbGx5IHJlcHJlc2VudHMgYSBjaGFpbiBvZiBydGVfZmxvdw0KPiBhY3Rpb25zIHRlcm1pbmF0 ZWQgYnkgdGhlIEVORCBhY3Rpb24sIGV4YWN0bHkgYXMgc3BlY2lmaWVkIGJ5IHRoZSBydGVfZmxv dyBBUEkNCj4gZm9yIHRoZSBmbG93IGRlZmluaXRpb24sIGFuZCBub3QganVzdCBhIHNpbmdsZSBh Y3Rpb24uIFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQgYW5kDQo+IHlldCBub3QgZW50aXJlbHkgY2xl YXIgZnJvbSB0aGUgYWJvdmUgZGVzY3JpcHRpb24uDQo+IA0KPiBUaGlzIHdvdWxkIGFsc28gZ2l2 ZSB1cyB0aGUgY2hhbmNlIHRvIGFkZCBtb3JlIGF0dHJpYnV0ZXMgdG8gdGhlIG1ldGVyIHBvbGlj eQ0KPiBsYXRlciwgaWYvd2hlbiBuZWVkZWQsIHdpdGggbWluaW1hbCBpbXBhY3QgdG8gdGhlIEFQ SS4NCj4gDQo+ID4gKy8qKg0KPiA+ICsgKiBNZXRlciBwb2xpY3kgYWRkDQo+ID4gKyAqDQo+ID4g KyAqIENyZWF0ZSBhIG5ldyBtZXRlciBwb2xpY3kuIFRoZSBuZXcgcG9saWN5DQo+ID4gKyAqIGlz IHVzZWQgdG8gY3JlYXRlIHNpbmdsZSBvciBtdWx0aXBsZSBNVFIgb2JqZWN0cy4NCj4gPiArICoN Cj4gPiArICogQHBhcmFtW2luXSBwb3J0X2lkDQo+ID4gKyAqICAgVGhlIHBvcnQgaWRlbnRpZmll ciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW1baW5dIHBvbGljeV9pZA0K PiA+ICsgKiAgIFBvbGljeSBpZGVudGlmaWVyIGZvciB0aGUgbmV3IG1ldGVyIHBvbGljeS4NCj4g PiArICogQHBhcmFtW2luXSBhY3Rpb25zDQo+ID4gKyAqICAgQXNzb2NpYXRlZCBhY3Rpb25zIHBl ciBjb2xvci4NCj4gPiArICogICBsaXN0IE5VTEwgaXMgbGVnYWwgYW5kIG1lYW5zIG5vIHNwZWNp YWwgYWN0aW9uLg0KPiA+ICsgKiAgIChsaXN0IHRlcm1pbmF0ZWQgYnkgdGhlIEVORCBhY3Rpb24p Lg0KPiA+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ICsgKiAgIEVycm9yIGRldGFpbHMuIEZp bGxlZCBpbiBvbmx5IG9uIGVycm9yLCB3aGVuIG5vdCBOVUxMLg0KPiA+ICsgKiBAcmV0dXJuDQo+ ID4gKyAqICAgMCBvbiBzdWNjZXNzLCBub24temVybyBlcnJvciBjb2RlIG90aGVyd2lzZS4NCj4g PiArICovDQo+ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ICtpbnQNCj4gPiArcnRlX210cl9t ZXRlcl9wb2xpY3lfYWRkKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gKyAgICAgdWludDMyX3QgcG9s aWN5X2lkLA0KPiA+ICsgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNb UlRFX0NPTE9SU10sDQo+ID4gKyAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4g PiArDQo+ID4gKy8qKg0KPiA+ICsgKiBNZXRlciBwb2xpY3kgZGVsZXRlDQo+ID4gKyAqDQo+ID4g KyAqIERlbGV0ZSBhbiBleGlzdGluZyBtZXRlciBwb2xpY3kuIFRoaXMgb3BlcmF0aW9uIGZhaWxz IHdoZW4gdGhlcmUNCj4gPiAraXMNCj4gPiArICogY3VycmVudGx5IGF0IGxlYXN0IG9uZSB1c2Vy IChpLmUuIE1UUiBvYmplY3QpIG9mIHRoaXMgcG9saWN5Lg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFy YW1baW5dIHBvcnRfaWQNCj4gPiArICogICBUaGUgcG9ydCBpZGVudGlmaWVyIG9mIHRoZSBFdGhl cm5ldCBkZXZpY2UuDQo+ID4gKyAqIEBwYXJhbVtpbl0gcG9saWN5X2lkDQo+ID4gKyAqICAgUG9s aWN5IGlkZW50aWZpZXIuDQo+ID4gKyAqIEBwYXJhbVtvdXRdIGVycm9yDQo+ID4gKyAqICAgRXJy b3IgZGV0YWlscy4gRmlsbGVkIGluIG9ubHkgb24gZXJyb3IsIHdoZW4gbm90IE5VTEwuDQo+ID4g KyAqIEByZXR1cm4NCj4gPiArICogICAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIGVycm9yIGNvZGUg b3RoZXJ3aXNlLg0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2ludA0K PiA+ICtydGVfbXRyX21ldGVyX3BvbGljeV9kZWxldGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiAr ICAgICB1aW50MzJfdCBwb2xpY3lfaWQsDQo+ID4gKyAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3Ig KmVycm9yKTsNCj4gPiArDQo+ID4gIC8qKg0KPiA+ICAgKiBNVFIgb2JqZWN0IGNyZWF0ZQ0KPiA+ ICAgKg0KPiA+IEBAIC01ODcsMTggKzY1NCwxNCBAQCBydGVfbXRyX21ldGVyX3Byb2ZpbGVfdXBk YXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gICAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVy cm9yKTsNCj4gPg0KPiA+ICAvKioNCj4gPiAtICogTVRSIG9iamVjdCBEU0NQIHRhYmxlIHVwZGF0 ZQ0KPiA+ICsgKiBNVFIgb2JqZWN0IG1ldGVyIHBvbGljeSB1cGRhdGUNCj4gPiAgICoNCj4gPiAg ICogQHBhcmFtW2luXSBwb3J0X2lkDQo+ID4gICAqICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0 aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiA+ICAgKiBAcGFyYW1baW5dIG10cl9pZA0KPiA+ICAgKiAg IE1UUiBvYmplY3QgSUQuIE5lZWRzIHRvIGJlIHZhbGlkLg0KPiA+IC0gKiBAcGFyYW1baW5dIGRz Y3BfdGFibGUNCj4gPiAtICogICBXaGVuIG5vbi1OVUxMOiBpdCBwb2ludHMgdG8gYSBwcmUtYWxs b2NhdGVkIGFuZCBwcmUtcG9wdWxhdGVkIHRhYmxlDQo+ID4gd2l0aA0KPiA+IC0gKiAgIGV4YWN0 bHkgNjQgZWxlbWVudHMgcHJvdmlkaW5nIHRoZSBpbnB1dCBjb2xvciBmb3IgZWFjaCB2YWx1ZSBv ZiB0aGUNCj4gPiAtICogICBJUHY0L0lQdjYgRGlmZmVyZW50aWF0ZWQgU2VydmljZXMgQ29kZSBQ b2ludCAoRFNDUCkgaW5wdXQgcGFja2V0IGZpZWxkLg0KPiA+IC0gKiAgIFdoZW4gTlVMTDogaXQg aXMgZXF1aXZhbGVudCB0byBzZXR0aW5nIHRoaXMgcGFyYW1ldGVyIHRvIGFuIMOi4oKsxZNhbGwt DQo+ID4gZ3JlZW7DouKCrMKdDQo+ID4gLSAqICAgcG9wdWxhdGVkIHRhYmxlIChpLmUuIHRhYmxl IHdpdGggYWxsIHRoZSA2NCBlbGVtZW50cyBzZXQgdG8gZ3JlZW4gY29sb3IpLg0KPiA+ICsgKiBA cGFyYW1baW5dIG1ldGVyX3BvbGljeV9pZA0KPiA+ICsgKiAgIE1ldGVyIHBvbGljeSBJRCBmb3Ig dGhlIGN1cnJlbnQgTVRSIG9iamVjdC4gTmVlZHMgdG8gYmUgdmFsaWQuDQo+ID4gICAqIEBwYXJh bVtvdXRdIGVycm9yDQo+ID4gICAqICAgRXJyb3IgZGV0YWlscy4gRmlsbGVkIGluIG9ubHkgb24g ZXJyb3IsIHdoZW4gbm90IE5VTEwuDQo+ID4gICAqIEByZXR1cm4NCj4gPiBAQCAtNjA2LDI2ICs2 NjksMjQgQEAgcnRlX210cl9tZXRlcl9wcm9maWxlX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0K PiA+ICAgKi8NCj4gPiAgX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gIGludA0KPiA+IC1ydGVfbXRy X21ldGVyX2RzY3BfdGFibGVfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gK3J0ZV9tdHJf bWV0ZXJfcG9saWN5X3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICAgICAgIHVpbnQzMl90 IG10cl9pZCwNCj4gPiAtICAgICBlbnVtIHJ0ZV9jb2xvciAqZHNjcF90YWJsZSwNCj4gPiArICAg ICB1aW50MzJfdCBtZXRlcl9wb2xpY3lfaWQsDQo+ID4gICAgICAgc3RydWN0IHJ0ZV9tdHJfZXJy b3IgKmVycm9yKTsNCj4gPg0KPiA+ICAvKioNCj4gPiAtICogTVRSIG9iamVjdCBwb2xpY2VyIGFj dGlvbnMgdXBkYXRlDQo+ID4gKyAqIE1UUiBvYmplY3QgRFNDUCB0YWJsZSB1cGRhdGUNCj4gPiAg ICoNCj4gPiAgICogQHBhcmFtW2luXSBwb3J0X2lkDQo+ID4gICAqICAgVGhlIHBvcnQgaWRlbnRp ZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiA+ICAgKiBAcGFyYW1baW5dIG10cl9pZA0K PiA+ICAgKiAgIE1UUiBvYmplY3QgSUQuIE5lZWRzIHRvIGJlIHZhbGlkLg0KPiA+IC0gKiBAcGFy YW1baW5dIGFjdGlvbl9tYXNrDQo+ID4gLSAqICAgQml0IG1hc2sgaW5kaWNhdGluZyB3aGljaCBw b2xpY2VyIGFjdGlvbnMgbmVlZCB0byBiZSB1cGRhdGVkLiBPbmUgb3INCj4gPiBtb3JlDQo+ID4g LSAqICAgcG9saWNlciBhY3Rpb25zIGNhbiBiZSB1cGRhdGVkIGluIGEgc2luZ2xlIGZ1bmN0aW9u IGludm9jYXRpb24uIFRvIHVwZGF0ZQ0KPiA+IC0gKiAgIHRoZSBwb2xpY2VyIGFjdGlvbiBhc3Nv Y2lhdGVkIHdpdGggY29sb3IgQywgYml0ICgxIDw8IEMpIG5lZWRzIHRvIGJlIHNldCBpbg0KPiA+ IC0gKiAgICphY3Rpb25fbWFzayogYW5kIGVsZW1lbnQgYXQgcG9zaXRpb24gQyBpbiB0aGUgKmFj dGlvbnMqIGFycmF5IG5lZWRzIHRvDQo+ID4gYmUNCj4gPiAtICogICB2YWxpZC4NCj4gPiAtICog QHBhcmFtW2luXSBhY3Rpb25zDQo+ID4gLSAqICAgUHJlLWFsbG9jYXRlZCBhbmQgcHJlLXBvcHVs YXRlZCBhcnJheSBvZiBwb2xpY2VyIGFjdGlvbnMuDQo+ID4gKyAqIEBwYXJhbVtpbl0gZHNjcF90 YWJsZQ0KPiA+ICsgKiAgIFdoZW4gbm9uLU5VTEw6IGl0IHBvaW50cyB0byBhIHByZS1hbGxvY2F0 ZWQgYW5kIHByZS1wb3B1bGF0ZWQgdGFibGUNCj4gPiB3aXRoDQo+ID4gKyAqICAgZXhhY3RseSA2 NCBlbGVtZW50cyBwcm92aWRpbmcgdGhlIGlucHV0IGNvbG9yIGZvciBlYWNoIHZhbHVlIG9mIHRo ZQ0KPiA+ICsgKiAgIElQdjQvSVB2NiBEaWZmZXJlbnRpYXRlZCBTZXJ2aWNlcyBDb2RlIFBvaW50 IChEU0NQKSBpbnB1dCBwYWNrZXQgZmllbGQuDQo+ID4gKyAqICAgV2hlbiBOVUxMOiBpdCBpcyBl cXVpdmFsZW50IHRvIHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gYW4gw6LigqzFk2FsbC0NCj4g PiBncmVlbsOi4oKswp0NCj4gPiArICogICBwb3B1bGF0ZWQgdGFibGUgKGkuZS4gdGFibGUgd2l0 aCBhbGwgdGhlIDY0IGVsZW1lbnRzIHNldCB0byBncmVlbiBjb2xvcikuDQo+ID4gICAqIEBwYXJh bVtvdXRdIGVycm9yDQo+ID4gICAqICAgRXJyb3IgZGV0YWlscy4gRmlsbGVkIGluIG9ubHkgb24g ZXJyb3IsIHdoZW4gbm90IE5VTEwuDQo+ID4gICAqIEByZXR1cm4NCj4gPiBAQCAtNjMzLDEwICs2 OTQsOSBAQCBydGVfbXRyX21ldGVyX2RzY3BfdGFibGVfdXBkYXRlKHVpbnQxNl90DQo+ID4gcG9y dF9pZCwNCj4gPiAgICovDQo+ID4gIF9fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ICBpbnQNCj4gPiAt cnRlX210cl9wb2xpY2VyX2FjdGlvbnNfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gK3J0 ZV9tdHJfbWV0ZXJfZHNjcF90YWJsZV91cGRhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiAgICAg ICB1aW50MzJfdCBtdHJfaWQsDQo+ID4gLSAgICAgdWludDMyX3QgYWN0aW9uX21hc2ssDQo+ID4g LSAgICAgZW51bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uICphY3Rpb25zLA0KPiA+ICsgICAgIGVu dW0gcnRlX2NvbG9yICpkc2NwX3RhYmxlLA0KPiA+ICAgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9y ICplcnJvcik7DQo+ID4NCj4gPiAgLyoqDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9tdHJfZHJpdmVyLmgNCj4gPiBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9tdHJfZHJp dmVyLmgNCj4gPiBpbmRleCBhMGRkYzJiNWY0Li4xYWQ4ZmI0YzQwIDEwMDY0NA0KPiA+IC0tLSBh L2xpYi9saWJydGVfZXRoZGV2L3J0ZV9tdHJfZHJpdmVyLmgNCj4gPiArKysgYi9saWIvbGlicnRl X2V0aGRldi9ydGVfbXRyX2RyaXZlci5oDQo+ID4gQEAgLTQxLDYgKzQxLDIzIEBAIHR5cGVkZWYg aW50DQo+ID4gKCpydGVfbXRyX21ldGVyX3Byb2ZpbGVfZGVsZXRlX3QpKHN0cnVjdA0KPiA+IHJ0 ZV9ldGhfZGV2ICpkZXYsDQo+ID4gICAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsN Cj4gPiAgLyoqPCBAaW50ZXJuYWwgTVRSIG1ldGVyIHByb2ZpbGUgZGVsZXRlICovDQo+ID4NCj4g PiArdHlwZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX3BvbGljeV92YWxpZGF0ZV90KShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwNCj4gPiArICAgICB1aW50MzJfdCBwb2xpY3lfaWQsDQo+ID4gKyAg ICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9uc1tSVEVfQ09MT1JTXSwNCj4g PiArICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiA+ICsvKio8IEBpbnRlcm5h bCBNVFIgbWV0ZXIgcG9saWN5IHZhbGlkYXRlICovDQo+ID4gKw0KPiA+ICt0eXBlZGVmIGludCAo KnJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2FkZF90KShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4g PiArICAgICB1aW50MzJfdCBwb2xpY3lfaWQsDQo+ID4gKyAgICAgY29uc3Qgc3RydWN0IHJ0ZV9m bG93X2FjdGlvbiAqYWN0aW9uc1tSVEVfQ09MT1JTXSwNCj4gPiArICAgICBzdHJ1Y3QgcnRlX210 cl9lcnJvciAqZXJyb3IpOw0KPiA+ICsvKio8IEBpbnRlcm5hbCBNVFIgbWV0ZXIgcG9saWN5IGFk ZCAqLw0KPiA+ICsNCj4gPiArdHlwZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX3BvbGljeV9kZWxl dGVfdCkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gKyAgICAgdWludDMyX3QgcG9saWN5 X2lkLA0KPiA+ICsgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ID4gKy8qKjwg QGludGVybmFsIE1UUiBtZXRlciBwb2xpY3kgZGVsZXRlICovDQo+ID4gKw0KPiA+ICB0eXBlZGVm IGludCAoKnJ0ZV9tdHJfY3JlYXRlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICAg ICAgIHVpbnQzMl90IG10cl9pZCwNCj4gPiAgICAgICBzdHJ1Y3QgcnRlX210cl9wYXJhbXMgKnBh cmFtcywNCj4gPiBAQCAtNjksMTggKzg2LDE3IEBAIHR5cGVkZWYgaW50DQo+ID4gKCpydGVfbXRy X21ldGVyX3Byb2ZpbGVfdXBkYXRlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICAg ICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ID4gIC8qKjwgQGludGVybmFsIE1U UiBvYmplY3QgbWV0ZXIgcHJvZmlsZSB1cGRhdGUgKi8NCj4gPg0KPiA+IC10eXBlZGVmIGludCAo KnJ0ZV9tdHJfbWV0ZXJfZHNjcF90YWJsZV91cGRhdGVfdCkoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ ID4gKmRldiwNCj4gPiArdHlwZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX3BvbGljeV91cGRhdGVf dCkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gICAgICAgdWludDMyX3QgbXRyX2lkLA0K PiA+IC0gICAgIGVudW0gcnRlX2NvbG9yICpkc2NwX3RhYmxlLA0KPiA+ICsgICAgIHVpbnQzMl90 IG1ldGVyX3BvbGljeV9pZCwNCj4gPiAgICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3Ip Ow0KPiA+IC0vKio8IEBpbnRlcm5hbCBNVFIgb2JqZWN0IG1ldGVyIERTQ1AgdGFibGUgdXBkYXRl ICovDQo+ID4gKy8qKjwgQGludGVybmFsIE1UUiBvYmplY3QgbWV0ZXIgcG9saWN5IHVwZGF0ZSAq Lw0KPiA+DQo+ID4gLXR5cGVkZWYgaW50ICgqcnRlX210cl9wb2xpY2VyX2FjdGlvbnNfdXBkYXRl X3QpKHN0cnVjdCBydGVfZXRoX2Rldg0KPiA+ICpkZXYsDQo+ID4gK3R5cGVkZWYgaW50ICgqcnRl X210cl9tZXRlcl9kc2NwX3RhYmxlX3VwZGF0ZV90KShzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gPiAq ZGV2LA0KPiA+ICAgICAgIHVpbnQzMl90IG10cl9pZCwNCj4gPiAtICAgICB1aW50MzJfdCBhY3Rp b25fbWFzaywNCj4gPiAtICAgICBlbnVtIHJ0ZV9tdHJfcG9saWNlcl9hY3Rpb24gKmFjdGlvbnMs DQo+ID4gKyAgICAgZW51bSBydGVfY29sb3IgKmRzY3BfdGFibGUsDQo+ID4gICAgICAgc3RydWN0 IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gPiAtLyoqPCBAaW50ZXJuYWwgTVRSIG9iamVjdCBw b2xpY2VyIGFjdGlvbiB1cGRhdGUqLw0KPiA+ICsvKio8IEBpbnRlcm5hbCBNVFIgb2JqZWN0IG1l dGVyIERTQ1AgdGFibGUgdXBkYXRlICovDQo+ID4NCj4gPiAgdHlwZWRlZiBpbnQgKCpydGVfbXRy X3N0YXRzX3VwZGF0ZV90KShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiAgICAgICB1aW50 MzJfdCBtdHJfaWQsDQo+ID4gQEAgLTEyNCwxNCArMTQwLDIzIEBAIHN0cnVjdCBydGVfbXRyX29w cyB7DQo+ID4gICAgICAgLyoqIE1UUiBvYmplY3QgbWV0ZXIgRFNDUCB0YWJsZSB1cGRhdGUgKi8N Cj4gPiAgICAgICBydGVfbXRyX21ldGVyX2RzY3BfdGFibGVfdXBkYXRlX3QgbWV0ZXJfZHNjcF90 YWJsZV91cGRhdGU7DQo+ID4NCj4gPiAtICAgICAvKiogTVRSIG9iamVjdCBwb2xpY2VyIGFjdGlv biB1cGRhdGUgKi8NCj4gPiAtICAgICBydGVfbXRyX3BvbGljZXJfYWN0aW9uc191cGRhdGVfdCBw b2xpY2VyX2FjdGlvbnNfdXBkYXRlOw0KPiA+IC0NCj4gPiAgICAgICAvKiogTVRSIG9iamVjdCBl bmFibGVkIHN0YXRzIHVwZGF0ZSAqLw0KPiA+ICAgICAgIHJ0ZV9tdHJfc3RhdHNfdXBkYXRlX3Qg c3RhdHNfdXBkYXRlOw0KPiA+DQo+ID4gICAgICAgLyoqIE1UUiBvYmplY3Qgc3RhdHMgcmVhZCAq Lw0KPiA+ICAgICAgIHJ0ZV9tdHJfc3RhdHNfcmVhZF90IHN0YXRzX3JlYWQ7DQo+ID4gKw0KPiA+ ICsgICAgIC8qKiBNVFIgbWV0ZXIgcG9saWN5IHZhbGlkYXRlICovDQo+ID4gKyAgICAgcnRlX210 cl9tZXRlcl9wb2xpY3lfdmFsaWRhdGVfdCBtZXRlcl9wb2xpY3lfdmFsaWRhdGU7DQo+ID4gKw0K PiA+ICsgICAgIC8qKiBNVFIgbWV0ZXIgcG9saWN5IGFkZCAqLw0KPiA+ICsgICAgIHJ0ZV9tdHJf bWV0ZXJfcG9saWN5X2FkZF90IG1ldGVyX3BvbGljeV9hZGQ7DQo+ID4gKw0KPiA+ICsgICAgIC8q KiBNVFIgbWV0ZXIgcG9saWN5IGRlbGV0ZSAqLw0KPiA+ICsgICAgIHJ0ZV9tdHJfbWV0ZXJfcG9s aWN5X2RlbGV0ZV90IG1ldGVyX3BvbGljeV9kZWxldGU7DQo+ID4gKw0KPiA+ICsgICAgIC8qKiBN VFIgb2JqZWN0IG1ldGVyIHBvbGljeSB1cGRhdGUgKi8NCj4gPiArICAgICBydGVfbXRyX21ldGVy X3BvbGljeV91cGRhdGVfdCBtZXRlcl9wb2xpY3lfdXBkYXRlOw0KPiA+ICB9Ow0KPiA+DQo+ID4g IC8qKg0KPiA+IC0tDQo+ID4gMi4yMS4wDQo+IA0KPiBSZWdhcmRzLA0KPiBDcmlzdGlhbg0KVGhh bmtzIQ0K