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 4264AA0A0A; Tue, 23 Mar 2021 22:02:59 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B500B4014D; Tue, 23 Mar 2021 22:02:57 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 1B4E640143 for ; Tue, 23 Mar 2021 22:02:55 +0100 (CET) IronPort-SDR: 5QVPo+os3vVACbf8qlICPy/IN+xFY8yijaSI+BslWwsXTwoA0jHOIZBbA668cScReKqTrjw1Me 5zLk99A8TmyA== X-IronPort-AV: E=McAfee;i="6000,8403,9932"; a="169896595" X-IronPort-AV: E=Sophos;i="5.81,272,1610438400"; d="scan'208";a="169896595" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2021 14:02:55 -0700 IronPort-SDR: 1SOsxN7XTPNXDzfua//e3vix1oLypECJgokS0lu4Mii2Hg71ZOlokTwFvAyWWIYnGIsAW6zmaj QZl5UHpQIv4w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,272,1610438400"; d="scan'208";a="524987091" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga004.jf.intel.com with ESMTP; 23 Mar 2021 14:02:54 -0700 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 23 Mar 2021 14:02:53 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Tue, 23 Mar 2021 14:02:53 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Tue, 23 Mar 2021 14:02:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hCdmMudGFqoEfA6kqpDsyMdX5iAOqc9y+WrZ/a7HuXV6aDasR8PhHuY1s1XVXqPoqjEBl7N1sY9sLdB1kL8zjMD25AET6gq5wJfKRmrRbCi7SDB4u5hCpknDRfhAYKfzT7Yq3RahwKy4JZfZC3KcRlouvAt6CplAi60WGTzviz3fK9O9dWneu5C81N4m9AVseh/O962KrZJDs8tOQgM+C7hj7stiruM39YWnFEGlKk0GEWh323xhiTCzFAnuUd1A47ff1ucpnqPuHZSyn22zXIQLWNrJxeXZnRKT9gZJIAo9qs/9MJ1FVe3QuxGgbMcb74KvdHOUo6vFiW4HCCCr2A== 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=UqXfDHlf2xR5edFSYQx9HecPs7pBCYL61hqm5145kb0=; b=mDk4bfQArSOJjYoVfOSoNMsiFXsZYndfcPX2DrOvhuenGdm06OuYl7A0ujJbUpr0ndfyMM0Qy+PB16eaEoTJblZfBH12Fv3nCSF/v08U4kQ8ucjsNk51trZzcJ2MnQcAuCTIp0Gs1Tj00QsIQpP1zxzAKIUzazwmY0AuU6UhE/NWpgg9nfwRqqKf5C+S63a1dlqsNR5fp4LAxDmwdrEPWBRxO232uAu7Ag+Nn9dc6lyD0UtubqoTkAg+lUuHRutvo9+oEFHJIcCvf0dUInJPzUgi49n5JBnPghGIZbTiu6No0GJRxtgU5kLuO/OLqQaafUhasxfkYbRv7+rQyjnGWQ== 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=UqXfDHlf2xR5edFSYQx9HecPs7pBCYL61hqm5145kb0=; b=r4K9DXkEya1skUb2Pm+NzmXaKAkUP+m7o17VDM6H/QipMtgOYhwJ/4nwrdf5DJuJxFnFUqmAxhvDt/SIPLNd4IahQRlih1nJ4dhf48DLQ7GMROMmlehpyhYEiw4DJcNPEQQOqdk+zVoSZC+xkSMmMZywXQIR4pLcd786JqN5H64= Received: from DM6PR11MB2796.namprd11.prod.outlook.com (2603:10b6:5:c8::23) by DM5PR1101MB2362.namprd11.prod.outlook.com (2603:10b6:3:9d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Tue, 23 Mar 2021 21:02:50 +0000 Received: from DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::b5d2:6f20:3c0:3627]) by DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::b5d2:6f20:3c0:3627%7]) with mapi id 15.20.3955.027; Tue, 23 Mar 2021 21:02:50 +0000 From: "Dumitrescu, Cristian" To: Li Zhang , "dekelp@nvidia.com" , "orika@nvidia.com" , "viacheslavo@nvidia.com" , "matan@nvidia.com" , "shahafs@nvidia.com" , "lironh@marvell.com" , "Singh, Jasvinder" , "Thomas Monjalon" , "Yigit, Ferruh" , Andrew Rybchenko , Jerin Jacob , Hemant Agrawal , "Ajit Khaparde" CC: "dev@dpdk.org" , "rasland@nvidia.com" , "roniba@nvidia.com" Thread-Topic: [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API Thread-Index: AQHXG9Tf/DPc1Me1jEakhj0VntDGc6qR9aKw Date: Tue, 23 Mar 2021 21:02:49 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> In-Reply-To: <20210318085815.804896-1-lizh@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [51.37.64.137] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 719e4255-1ac0-4c72-9185-08d8ee3f04ae x-ms-traffictypediagnostic: DM5PR1101MB2362: 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:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2UT8xDo1P0Hovlv/kqzcf2jw5CNtbgwNIc1lr7+Hzxo545GY7zZzEMgYQJFid9+AhySyM3earNHOMjtgwFrZluiEr6IPoNnrTvWC9vPcOulHAitFdfULLUrBT6VoAv8xv6g3RDK+gqKNt+00EU+fgQot3SnlFH7a9epUuP2YDuSFbv8QpSMXpi05WmdTx6nyDTLubqdYlZV8JcuHGkJgSgqgYdcXGvFSDH3l82dBMdThrQBtj4cpH7tVarg650e4fXSAfBmL+DUOYjESj1jPuuOlMwgA6GxcM8nB2thzasE7GnSjKitPBl1FRvBW7zccTviR41KurCAiz/nadfgbQIVSSAr9UyAnuweBv711Kt/yV9e2ZoeH1d5jE13+1OU7TTqaOORMTm527ynRtboTkWEecPyHb8Er/hrd0s4rotxMb51yriuXo9olrV1kzsdV/dXEzobynHQnAAqe1d8rWOJjNgfjrxVIysSI9bJFM4C5CwLqdvCppxInxG7cMpew0Z5p8A94cdSwoJ0iaoIYzHVpcvI1vQLhAGGqtXeja2za1TD2QSkKPNKMLoazS+v5ykaWAz3qWHvZNSxUy0c1bNh2Q2a5oQ0aZspvduDNknG32O/tDS2ZTP92f9I8WUjvkBdywuQsMa1Ka1cKKlQokLYgTBJ+Uh3LfsEL75wnXE3IF3F5UElke7pPpMPqPb46 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB2796.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(39860400002)(376002)(366004)(136003)(396003)(346002)(54906003)(66446008)(316002)(30864003)(478600001)(5660300002)(66946007)(86362001)(8936002)(52536014)(4326008)(2906002)(76116006)(71200400001)(38100700001)(83380400001)(66556008)(110136005)(64756008)(55016002)(7416002)(66476007)(26005)(33656002)(53546011)(6506007)(8676002)(9686003)(921005)(186003)(7696005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?WUF1a041MjhqRmxqaXlHVTFqQnZETlE1Y0lySEptMjJaU2UxSjhpRHZqZnJh?= =?utf-8?B?SGljeWZwY1RsN3AyWkwrdStQS0IvUUgwVmdnZDRhWnc0aWlreWpJRVM2di9t?= =?utf-8?B?QUV0SjYzS0gzbzZJSktNbTFvV3Jya0tZOEhoMTFNVE1kMm1adG11cVdMT3VI?= =?utf-8?B?dk4xamg0Q2JIeWtCS2Y3VEd0WVJKSmxQYjhDS1FrUXNyVWJEekZRRnlhenBX?= =?utf-8?B?TjhwenhXRzdLQ0NxYXNmY2VSY0FYV2ZFQmNrVEczcFRMQysyZ1loYzdqckRs?= =?utf-8?B?SXVnOXFaU2poQVVSTm5acVJFYW1Wb0lKd243a09UZ0JrK3hDSEdPcUF5dk1O?= =?utf-8?B?ZDk4Sm4xMEZsVGtidnZWbmZXbjRqTWg0TGovdVlxVUlXM09aNTd6V1kzd25V?= =?utf-8?B?VFRwZ0lldGVESkpJS01GMDFZY3lEenk2QkZIMDlkZkJ2YXdzUklJWDBWQ0NO?= =?utf-8?B?UUd5djIvRm1GZzVRa3dkMklsOVhzTmRNR3R5cTZRdjJCZ2JERDcxRU5Uak9W?= =?utf-8?B?ckYxbkc4di96OHZ2OG9qWHdGUDQ1RzVJdnhUbWIrT3ZMNEJRRVhhbUpzSjFV?= =?utf-8?B?RGdwVlNHV1JVOUEwR2NZSXZ0NzlhZzdIM3dGcXVVMm9DYkdDb1Y0WEdBaWVG?= =?utf-8?B?OTRDbHg4UVhNanFqYkFLTEo0WGs2MHdwK0JZdzFraCtOM0JVMTE3Wlc5NG0x?= =?utf-8?B?WkFEWEsxb0svd0NndWdaRFZSeUMydDdqL3o3eDhUcWlDbTBmcDd4SGhTa1RK?= =?utf-8?B?ZDhTMmE2THcwN3RpcXkrOUNUSURYWDRRSWxzTERJY2RadXFPcTAvNHNQSlpK?= =?utf-8?B?aGM5WFpjRzhURlAvWjN5OUZXVkpEVGFMRTJMdmxLS3FEYU52QnQrWUtxaWIy?= =?utf-8?B?OEF3ZWdteWlHS3VEcFJPNWR0cDIvM3k4RFZSVkM1TWMyMjFjUVI2b0tSYk9N?= =?utf-8?B?WTNlcEFvU2U4N2JzVzJFQTVkTEVzZDlEamhjbnFFRFNQcjNidFIyUlRJSTk2?= =?utf-8?B?VWM4R3BYRERvNUh6NkNzSVB6UWhrMHNrdmJGakFHR09OVExUR0JPR1RPMDFX?= =?utf-8?B?YUdKcnA0K1BXYVF0alhDRjFmdUdFTnhzRkFaQlNCYWR0bWFobDNxMmFndXlj?= =?utf-8?B?bVRlVHZzWFlzWW82SERnaG16eHphTE9rQmVFL1VjOGdJcnZEVTRRd1hDcGVJ?= =?utf-8?B?UFpLOUg4ZmRJNE1EaVdCTENjVkNMOUhTMWQ0Njk0dGkvbG44ZDBqRW9wRlRu?= =?utf-8?B?cExrV0dEVzJUbXdJNFBrekFVNEZVOG5BWVlRY3BkODA3VGhsWlNvSkZqTHN1?= =?utf-8?B?Smp6N28rMXkyNkNjeUovZXNXT0lIS2kvcFlscXBKWjViaFY5S0xYbFJabHFw?= =?utf-8?B?MlRJY01Fd0JxYWRBMHd3VGlVdEdJK1hBb0lSNUZ5bkp1RHpNd00xWXI2bGp3?= =?utf-8?B?eVBYSjdqT1ZSc1Q4Vmt4K2JQQkVTZHp6NUVHRzQ1alZkenJKcGZvdUkzaVdr?= =?utf-8?B?OXFLS1dpQU45Z0JHZHJKS3NPcDF5UHB1M0ZTRm9Wa3BxS0NnL0ViRERhUTJJ?= =?utf-8?B?QUJtbStJS2dOcXhjRzRLUCtnUUhlV2djMm1WYjJ4NGRtbnZHNndOanI4anV3?= =?utf-8?B?QWNobG1VZnFoTEM0eStIeUtJSHFyczBwVys3SVdhaG9HaHRPS1dtMFFaZHN5?= =?utf-8?B?MnFBMWpmNVBZbTY5TWlkU1Bpekc2SWJobzBzRnpSMTRzZlBBblkxNldFdzJs?= =?utf-8?Q?1VmLeU5AUtbLqFteqc=3D?= 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: DM6PR11MB2796.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 719e4255-1ac0-4c72-9185-08d8ee3f04ae X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2021 21:02:50.0875 (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: B4nJ5m8KgHL3rguyCXOqYN+T1O/slM2YNTtxcDuquYCxxu3jny4RKgmMiqws1J9MMqL9kvQLe9mNubWx2nuGbEwatWV83ucvTmRlYIe+y/w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1101MB2362 X-OriginatorOrg: intel.com 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" SGkgTGkgYW5kIE1hdGFuLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcHJvcG9zYWwsIHNvbWUgY29t bWVudHMgYmVsb3cuDQoNCkkgYW0gYWxzbyBhZGRpbmcgSmVyaW4gYW5kIEhlbWFudCB0byB0aGlz IHRocmVhZCwgYXMgdGhleSBhbHNvIHBhcnRpY2lwYXRlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZiB0 aGUgcnRlX210ciBBUEkgaW4gMjAxNy4gQWxzbyBBaml0IGV4cHJlc3NlZCBzb21lIGludGVyZXN0 IGluIGEgcHJldmlvdXMgZW1haWwuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogTGkgWmhhbmcgPGxpemhAbnZpZGlhLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIE1hcmNo IDE4LCAyMDIxIDg6NTggQU0NCj4gVG86IGRla2VscEBudmlkaWEuY29tOyBvcmlrYUBudmlkaWEu Y29tOyB2aWFjaGVzbGF2b0BudmlkaWEuY29tOw0KPiBtYXRhbkBudmlkaWEuY29tOyBzaGFoYWZz QG52aWRpYS5jb207IGxpcm9uaEBtYXJ2ZWxsLmNvbTsgU2luZ2gsDQo+IEphc3ZpbmRlciA8amFz dmluZGVyLnNpbmdoQGludGVsLmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA8dGhvbWFzQG1vbmph bG9uLm5ldD47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBBbmRyZXcN Cj4gUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT47IER1bWl0cmVzY3Us IENyaXN0aWFuDQo+IDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbT4NCj4gQ2M6IGRldkBk cGRrLm9yZzsgcmFzbGFuZEBudmlkaWEuY29tOyByb25pYmFAbnZpZGlhLmNvbQ0KPiBTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBbUkZDXTogZXRoZGV2OiBhZGQgcHJlLWRlZmluZWQgbWV0ZXIgcG9saWN5 IEFQSQ0KPiANCj4gQ3VycmVudGx5LCB0aGUgZmxvdyBtZXRlciBwb2xpY3kgZG9lcyBub3Qgc3Vw cG9ydCBtdWx0aXBsZSBhY3Rpb25zDQo+IHBlciBjb2xvcjsgYWxzbyB0aGUgYWxsb3dlZCBhY3Rp b24gdHlwZXMgcGVyIGNvbG9yIGFyZSB2ZXJ5IGxpbWl0ZWQuDQo+IEluIGFkZGl0aW9uLCB0aGUg cG9saWN5IGNhbm5vdCBiZSBwcmUtZGVmaW5lZC4NCj4gDQo+IER1ZSB0byB0aGUgZ3Jvd2luZyBp biBmbG93IGFjdGlvbnMgb2ZmbG9hZCBhYmlsaXRpZXMgdGhlcmUgaXMgYSBwb3RlbnRpYWwNCj4g Zm9yIHRoZSB1c2VyIHRvIHVzZSB2YXJpZXR5IG9mIGFjdGlvbnMgcGVyIGNvbG9yIGRpZmZlcmVu dGx5Lg0KPiBUaGlzIG5ldyBtZXRlciBwb2xpY3kgQVBJIGNvbWVzIHRvIGFsbG93IHRoaXMgcG90 ZW50aWFsIGluIHRoZSBtb3N0IGV0aGRldg0KPiBjb21tb24gd2F5IHVzaW5nIHJ0ZV9mbG93IGFj dGlvbiBkZWZpbml0aW9uLg0KPiBBIGxpc3Qgb2YgcnRlX2Zsb3cgYWN0aW9ucyB3aWxsIGJlIHBy b3ZpZGVkIGJ5IHRoZSB1c2VyIHBlciBjb2xvcg0KPiBpbiBvcmRlciB0byBjcmVhdGUgYSBtZXRl ciBwb2xpY3kuDQo+IEluIGFkZGl0aW9uLCB0aGUgQVBJIGZvcmNlcyB0byBwcmUtZGVmaW5lIHRo ZSBwb2xpY3kgYmVmb3JlDQo+IHRoZSBtZXRlcnMgY3JlYXRpb24gaW4gb3JkZXIgdG8gYWxsb3cg c2hhcmluZyBvZiBzaW5nbGUgcG9saWN5DQo+IHdpdGggbXVsdGlwbGUgbWV0ZXJzIGVmZmljaWVu dGx5Lg0KPiANCj4gbWV0ZXJfcG9saWN5X2lkIGlzIGFkZGVkIGludG8gc3RydWN0IHJ0ZV9tdHJf cGFyYW1zLg0KPiBTbyB0aGF0IGl0IGNhbiBnZXQgdGhlIHBvbGljeSBkdXJpbmcgdGhlIG1ldGVy cyBjcmVhdGlvbi4NCj4gDQo+IFBvbGljeSBpZCAwIGlzIGRlZmF1bHQgcG9saWN5LiBBY3Rpb24g cGVyIGNvbG9yIGFzIGJlbG93Og0KPiBncmVlbiAtIG5vIGFjdGlvbiwgeWVsbG93IC0gbm8gYWN0 aW9uLCByZWQgLSBkcm9wDQo+IA0KPiBBbGxvdyBjb2xvcmluZyB0aGUgcGFja2V0IHVzaW5nIGEg bmV3IHJ0ZV9mbG93X2FjdGlvbl9jb2xvcg0KPiBhcyBjb3VsZCBiZSBkb25lIGJ5IHRoZSBvbGQg cG9saWN5IEFQSSwNCj4gDQoNClRoZSBwcm9wb3NhbCBlc3NlbnRpYWxseSBpcyB0byBkZWZpbmUg dGhlIG1ldGVyIHBvbGljeSBiYXNlZCBvbiBydGVfZmxvdyBhY3Rpb25zIHJhdGhlciB0aGFuIGEg cmVkdWNlZCBhY3Rpb24gc2V0IGRlZmluZWQgc3BlY2lmaWNhbGx5IGp1c3QgZm9yIG1ldGVyIG9i amVjdC4gVGhpcyBtYWtlcyBzZW5zZSB0byBtZS4NCg0KPiBUaGUgbmV4dCBBUEkgZnVuY3Rpb24g d2VyZSBhZGRlZDoNCj4gLSBydGVfbXRyX21ldGVyX3BvbGljeV9hZGQNCj4gLSBydGVfbXRyX21l dGVyX3BvbGljeV9kZWxldGUNCj4gLSBydGVfbXRyX21ldGVyX3BvbGljeV91cGRhdGUNCj4gLSBy dGVfbXRyX21ldGVyX3BvbGljeV92YWxpZGF0ZQ0KPiBUaGUgbmV4dCBzdHJ1Y3Qgd2FzIGNoYW5n ZWQ6DQo+IC0gcnRlX210cl9wYXJhbXMNCj4gLSBydGVfbXRyX2NhcGFiaWxpdGllcw0KPiBUaGUg bmV4dCBBUEkgd2FzIGRlbGV0ZWQ6DQo+IC0gcnRlX210cl9wb2xpY2VyX2FjdGlvbnNfdXBkYXRl DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBMaSBaaGFuZyA8bGl6aEBudmlkaWEuY29tPg0KPiAtLS0N Cj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmggICAgICAgfCAgMTggKysrKw0KPiAgbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5jICAgICAgICB8ICA1NSArKysrKysrKy0tDQo+ICBsaWIv bGlicnRlX2V0aGRldi9ydGVfbXRyLmggICAgICAgIHwgMTY2ICsrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tDQo+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfbXRyX2RyaXZlci5oIHwgIDQ1ICsr KysrKy0tDQo+ICA0IGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlv bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oIGIv bGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiBpbmRleCA2NjllNjc3ZTkxLi41ZjM4YWE3 ZmE0IDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ICsrKyBi L2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gQEAgLTMxLDYgKzMxLDcgQEANCj4gICNp bmNsdWRlIDxydGVfZWNwcmkuaD4NCj4gICNpbmNsdWRlIDxydGVfbWJ1Zi5oPg0KPiAgI2luY2x1 ZGUgPHJ0ZV9tYnVmX2R5bi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9tZXRlci5oPg0KPiANCj4gICNp ZmRlZiBfX2NwbHVzcGx1cw0KPiAgZXh0ZXJuICJDIiB7DQo+IEBAIC0yMjM2LDYgKzIyMzcsMTMg QEAgZW51bSBydGVfZmxvd19hY3Rpb25fdHlwZSB7DQo+ICAJICogU2VlIHN0cnVjdCBydGVfZmxv d19hY3Rpb25fbW9kaWZ5X2ZpZWxkLg0KPiAgCSAqLw0KPiAgCVJURV9GTE9XX0FDVElPTl9UWVBF X01PRElGWV9GSUVMRCwNCj4gKw0KPiArCS8qKg0KPiArCSAqIENvbG9yIHRoZSBwYWNrZXQgdG8g cmVmbGVjdCB0aGUgbWV0ZXIgY29sb3IgcmVzdWx0Lg0KPiArCSAqDQo+ICsJICogU2VlIHN0cnVj dCBydGVfZmxvd19hY3Rpb25fY29sb3IuDQo+ICsJICovDQo+ICsJUlRFX0ZMT1dfQUNUSU9OX1RZ UEVfQ09sT1IsDQoNClR5cG8gaGVyZSwgaXQgc2hvdWxkIGJlIFJURV9GTE9XX0FDVElPTl9UWVBF X0NPTE9SLg0KDQo+ICB9Ow0KPiANCj4gIC8qKg0KPiBAQCAtMjgyOCw2ICsyODM2LDE2IEBAIHN0 cnVjdCBydGVfZmxvd19hY3Rpb25fc2V0X2RzY3Agew0KPiAgICovDQo+ICBzdHJ1Y3QgcnRlX2Zs b3dfc2hhcmVkX2FjdGlvbjsNCj4gDQo+ICsvKioNCj4gKyAqIFJURV9GTE9XX0FDVElPTl9UWVBF X0NPTE9SDQo+ICsgKg0KPiArICogVGhlIG1ldGVyIGNvbG9yIHNob3VsZCBiZSBzZXQgaW4gdGhl IHBhY2tldCBtZXRhLWRhdGENCj4gKyAqIChpLmUuIHN0cnVjdCBydGVfbWJ1Zjo6c2NoZWQ6OmNv bG9yKS4NCj4gKyAqLw0KPiArc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9jb2xvciB7DQo+ICsJZW51 bSBydGVfY29sb3IgY29sb3I7IC8qKjwgR3JlZW4vWWVsbG93L1JlZC4gKi8NCg0KSSB3b3VsZCBh dm9pZCBleHBhbmRpbmcgdGhlIGxpc3Qgb2YgY29sb3JzIGluIHRoZSBjb21tZW50LCBhcyB3ZSBt aWdodCBoYXZlIHRvIHN1cHBvcnQgbW9yZSB0aGFuIDMgY29sb3JzIGluIHRoZSBmdXR1cmUuIEkg d291bGQgc2ltcGx5IHdyaXRlOiAiUGFja2V0IGNvbG9yLiINCg0KPiArfTsNCj4gKw0KPiAgLyoq DQo+ICAgKiBGaWVsZCBJRHMgZm9yIE1PRElGWV9GSUVMRCBhY3Rpb24uDQo+ICAgKi8NCj4gZGlm ZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9tdHIuYyBiL2xpYi9saWJydGVfZXRoZGV2 L3J0ZV9tdHIuYw0KPiBpbmRleCAzMDczYWMwM2YyLi5mY2NlYzM3NjBiIDEwMDY0NA0KPiAtLS0g YS9saWIvbGlicnRlX2V0aGRldi9ydGVfbXRyLmMNCj4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYv cnRlX210ci5jDQo+IEBAIC05MSw2ICs5MSw0MCBAQCBydGVfbXRyX21ldGVyX3Byb2ZpbGVfZGVs ZXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ICAJCW1ldGVyX3Byb2ZpbGVfaWQsIGVycm9yKTsNCj4g IH0NCj4gDQo+ICsvKiBNVFIgbWV0ZXIgcG9saWN5IHZhbGlkYXRlICovDQo+ICtpbnQNCj4gK3J0 ZV9tdHJfbWV0ZXJfcG9saWN5X3ZhbGlkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJY29uc3Qg c3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9uc1tSVEVfQ09MT1JTXSwNCj4gKwlzdHJ1Y3Qg cnRlX210cl9lcnJvciAqZXJyb3IpDQo+ICt7DQo+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYg PSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiArCXJldHVybiBSVEVfTVRSX0ZVTkMocG9y dF9pZCwgbWV0ZXJfcG9saWN5X3ZhbGlkYXRlKShkZXYsDQo+ICsJCWFjdGlvbnMsIGVycm9yKTsN Cj4gK30NCj4gKw0KPiArLyogTVRSIG1ldGVyIHBvbGljeSBhZGQgKi8NCj4gK2ludA0KPiArcnRl X210cl9tZXRlcl9wb2xpY3lfYWRkKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJdWludDMyX3QgcG9s aWN5X2lkLA0KPiArCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNbUlRFX0NP TE9SU10sDQo+ICsJc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKQ0KPiArew0KPiArCXN0cnVj dCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gKwlyZXR1 cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQsIG1ldGVyX3BvbGljeV9hZGQpKGRldiwNCj4gKwkJcG9s aWN5X2lkLCBhY3Rpb25zLCBlcnJvcik7DQo+ICt9DQo+ICsNCj4gKy8qKiBNVFIgbWV0ZXIgcG9s aWN5IGRlbGV0ZSAqLw0KPiAraW50DQo+ICtydGVfbXRyX21ldGVyX3BvbGljeV9kZWxldGUodWlu dDE2X3QgcG9ydF9pZCwNCj4gKwl1aW50MzJfdCBwb2xpY3lfaWQsDQo+ICsJc3RydWN0IHJ0ZV9t dHJfZXJyb3IgKmVycm9yKQ0KPiArew0KPiArCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0 ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gKwlyZXR1cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQs IG1ldGVyX3BvbGljeV9kZWxldGUpKGRldiwNCj4gKwkJcG9saWN5X2lkLCBlcnJvcik7DQo+ICt9 DQo+ICsNCj4gIC8qKiBNVFIgb2JqZWN0IGNyZWF0ZSAqLw0KPiAgaW50DQo+ICBydGVfbXRyX2Ny ZWF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiBAQCAtMTQ5LDI5ICsxODMsMjggQEAgcnRlX210cl9t ZXRlcl9wcm9maWxlX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiAgCQltdHJfaWQsIG1ldGVy X3Byb2ZpbGVfaWQsIGVycm9yKTsNCj4gIH0NCj4gDQo+IC0vKiogTVRSIG9iamVjdCBtZXRlciBE U0NQIHRhYmxlIHVwZGF0ZSAqLw0KPiArLyoqIE1UUiBvYmplY3QgbWV0ZXIgcG9saWN5IHVwZGF0 ZSAqLw0KPiAgaW50DQo+IC1ydGVfbXRyX21ldGVyX2RzY3BfdGFibGVfdXBkYXRlKHVpbnQxNl90 IHBvcnRfaWQsDQo+ICtydGVfbXRyX21ldGVyX3BvbGljeV91cGRhdGUodWludDE2X3QgcG9ydF9p ZCwNCj4gIAl1aW50MzJfdCBtdHJfaWQsDQo+IC0JZW51bSBydGVfY29sb3IgKmRzY3BfdGFibGUs DQo+ICsJdWludDMyX3QgbWV0ZXJfcG9saWN5X2lkLA0KPiAgCXN0cnVjdCBydGVfbXRyX2Vycm9y ICplcnJvcikNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2Rl dmljZXNbcG9ydF9pZF07DQo+IC0JcmV0dXJuIFJURV9NVFJfRlVOQyhwb3J0X2lkLCBtZXRlcl9k c2NwX3RhYmxlX3VwZGF0ZSkoZGV2LA0KPiAtCQltdHJfaWQsIGRzY3BfdGFibGUsIGVycm9yKTsN Cj4gKwlyZXR1cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQsIG1ldGVyX3BvbGljeV91cGRhdGUpKGRl diwNCj4gKwkJbXRyX2lkLCBtZXRlcl9wb2xpY3lfaWQsIGVycm9yKTsNCj4gIH0NCj4gDQo+IC0v KiogTVRSIG9iamVjdCBwb2xpY2VyIGFjdGlvbiB1cGRhdGUgKi8NCj4gKy8qKiBNVFIgb2JqZWN0 IG1ldGVyIERTQ1AgdGFibGUgdXBkYXRlICovDQo+ICBpbnQNCj4gLXJ0ZV9tdHJfcG9saWNlcl9h Y3Rpb25zX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiArcnRlX210cl9tZXRlcl9kc2NwX3Rh YmxlX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiAgCXVpbnQzMl90IG10cl9pZCwNCj4gLQl1 aW50MzJfdCBhY3Rpb25fbWFzaywNCj4gLQllbnVtIHJ0ZV9tdHJfcG9saWNlcl9hY3Rpb24gKmFj dGlvbnMsDQo+ICsJZW51bSBydGVfY29sb3IgKmRzY3BfdGFibGUsDQo+ICAJc3RydWN0IHJ0ZV9t dHJfZXJyb3IgKmVycm9yKQ0KPiAgew0KPiAgCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0 ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gLQlyZXR1cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQs IHBvbGljZXJfYWN0aW9uc191cGRhdGUpKGRldiwNCj4gLQkJbXRyX2lkLCBhY3Rpb25fbWFzaywg YWN0aW9ucywgZXJyb3IpOw0KPiArCXJldHVybiBSVEVfTVRSX0ZVTkMocG9ydF9pZCwgbWV0ZXJf ZHNjcF90YWJsZV91cGRhdGUpKGRldiwNCj4gKwkJbXRyX2lkLCBkc2NwX3RhYmxlLCBlcnJvcik7 DQo+ICB9DQo+IA0KPiAgLyoqIE1UUiBvYmplY3QgZW5hYmxlZCBzdGF0cyB1cGRhdGUgKi8NCj4g ZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9tdHIuaCBiL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9tdHIuaA0KPiBpbmRleCA5MTZhMDljNWMzLi4wNzk2MWYyNzc3IDEwMDY0NA0KPiAt LS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfbXRyLmgNCj4gKysrIGIvbGliL2xpYnJ0ZV9ldGhk ZXYvcnRlX210ci5oDQo+IEBAIC00OSw2ICs0OSw3IEBADQo+ICAjaW5jbHVkZSA8cnRlX2NvbXBh dC5oPg0KPiAgI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gICNpbmNsdWRlIDxydGVfbWV0ZXIu aD4NCj4gKyNpbmNsdWRlIDxydGVfZmxvdy5oPg0KPiANCj4gICNpZmRlZiBfX2NwbHVzcGx1cw0K PiAgZXh0ZXJuICJDIiB7DQo+IEBAIC0xNzQsMjMgKzE3NSw2IEBAIHN0cnVjdCBydGVfbXRyX21l dGVyX3Byb2ZpbGUgew0KPiAgCX07DQo+ICB9Ow0KPiANCj4gLS8qKg0KPiAtICogUG9saWNlciBh Y3Rpb25zDQo+IC0gKi8NCj4gLWVudW0gcnRlX210cl9wb2xpY2VyX2FjdGlvbiB7DQo+IC0JLyoq IFJlY29sb3IgdGhlIHBhY2tldCBhcyBncmVlbi4gKi8NCj4gLQlNVFJfUE9MSUNFUl9BQ1RJT05f Q09MT1JfR1JFRU4gPSAwLA0KPiAtDQo+IC0JLyoqIFJlY29sb3IgdGhlIHBhY2tldCBhcyB5ZWxs b3cuICovDQo+IC0JTVRSX1BPTElDRVJfQUNUSU9OX0NPTE9SX1lFTExPVywNCj4gLQ0KPiAtCS8q KiBSZWNvbG9yIHRoZSBwYWNrZXQgYXMgcmVkLiAqLw0KPiAtCU1UUl9QT0xJQ0VSX0FDVElPTl9D T0xPUl9SRUQsDQo+IC0NCj4gLQkvKiogRHJvcCB0aGUgcGFja2V0LiAqLw0KPiAtCU1UUl9QT0xJ Q0VSX0FDVElPTl9EUk9QLA0KPiAtfTsNCj4gLQ0KPiAgLyoqDQo+ICAgKiBQYXJhbWV0ZXJzIGZv ciBlYWNoIHRyYWZmaWMgbWV0ZXJpbmcgJiBwb2xpY2luZyBvYmplY3QNCj4gICAqDQo+IEBAIC0y MzIsMTMgKzIxNiwxMyBAQCBzdHJ1Y3QgcnRlX210cl9wYXJhbXMgew0KPiAgCSAqLw0KPiAgCWlu dCBtZXRlcl9lbmFibGU7DQo+IA0KPiAtCS8qKiBQb2xpY2VyIGFjdGlvbnMgKHBlciBtZXRlciBv dXRwdXQgY29sb3IpLiAqLw0KPiAtCWVudW0gcnRlX210cl9wb2xpY2VyX2FjdGlvbiBhY3Rpb25b UlRFX0NPTE9SU107DQo+IC0NCj4gIAkvKiogU2V0IG9mIHN0YXRzIGNvdW50ZXJzIHRvIGJlIGVu YWJsZWQuDQo+ICAJICogQHNlZSBlbnVtIHJ0ZV9tdHJfc3RhdHNfdHlwZQ0KPiAgCSAqLw0KPiAg CXVpbnQ2NF90IHN0YXRzX21hc2s7DQo+ICsNCj4gKwkvKiogTWV0ZXIgcG9saWN5IElELiAqLw0K PiArCXVpbnQzMl90IG1ldGVyX3BvbGljeV9pZDsNCj4gIH07DQo+IA0KPiAgLyoqDQo+IEBAIC0z MjQsNiArMzA4LDEzIEBAIHN0cnVjdCBydGVfbXRyX2NhcGFiaWxpdGllcyB7DQo+ICAJICovDQo+ ICAJdWludDY0X3QgbWV0ZXJfcmF0ZV9tYXg7DQo+IA0KPiArCS8qKg0KPiArCSAqIE1heGltdW0g bnVtYmVyIG9mIHBvbGljeSBvYmplY3RzIHRoYXQgY2FuIGhhdmUuDQo+ICsJICogVGhlIHZhbHVl IG9mIDAgaXMgaW52YWxpZC4gUG9saWN5IG11c3QgYmUgc3VwcG9ydGVkIGZvciBtZXRlci4NCj4g KwkgKiBUaGUgbWF4aW11bSB2YWx1ZSBpcyAqbl9tYXgqLg0KPiArCSAqLw0KPiArCXVpbnQ2NF90 IG1ldGVyX3BvbGljeV9uX21heDsNCj4gKw0KPiAgCS8qKg0KPiAgCSAqIFdoZW4gbm9uLXplcm8s IGl0IGluZGljYXRlcyB0aGF0IGNvbG9yIGF3YXJlIG1vZGUgaXMgc3VwcG9ydGVkDQo+IGZvcg0K PiAgCSAqIHRoZSBzclRDTSBSRkMgMjY5NyBtZXRlcmluZyBhbGdvcml0aG0uDQo+IEBAIC0zNDIs MTggKzMzMyw2IEBAIHN0cnVjdCBydGVfbXRyX2NhcGFiaWxpdGllcyB7DQo+ICAJICovDQo+ICAJ aW50IGNvbG9yX2F3YXJlX3RydGNtX3JmYzQxMTVfc3VwcG9ydGVkOw0KPiANCj4gLQkvKiogV2hl biBub24temVybywgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHBvbGljZXIgcGFja2V0IHJlY29sb3IN Cj4gYWN0aW9ucw0KPiAtCSAqIGFyZSBzdXBwb3J0ZWQuDQo+IC0JICogQHNlZSBlbnVtIHJ0ZV9t dHJfcG9saWNlcl9hY3Rpb24NCj4gLQkgKi8NCj4gLQlpbnQgcG9saWNlcl9hY3Rpb25fcmVjb2xv cl9zdXBwb3J0ZWQ7DQo+IC0NCj4gLQkvKiogV2hlbiBub24temVybywgaXQgaW5kaWNhdGVzIHRo YXQgdGhlIHBvbGljZXIgcGFja2V0IGRyb3AgYWN0aW9uIGlzDQo+IC0JICogc3VwcG9ydGVkLg0K PiAtCSAqIEBzZWUgZW51bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uDQo+IC0JICovDQo+IC0JaW50 IHBvbGljZXJfYWN0aW9uX2Ryb3Bfc3VwcG9ydGVkOw0KPiAtDQo+ICAJLyoqIFNldCBvZiBzdXBw b3J0ZWQgc3RhdGlzdGljcyBjb3VudGVyIHR5cGVzLg0KPiAgCSAqIEBzZWUgZW51bSBydGVfbXRy X3N0YXRzX3R5cGUNCj4gIAkgKi8NCj4gQEAgLTQ2Miw2ICs0NDEsOTQgQEAgcnRlX210cl9tZXRl cl9wcm9maWxlX2RlbGV0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiAgCXVpbnQzMl90IG1ldGVyX3By b2ZpbGVfaWQsDQo+ICAJc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gDQo+ICsvKioN Cj4gKyAqIFBvbGljeSBpZCAwIGlzIGRlZmF1bHQgcG9saWN5Lg0KDQpJIHN1Z2dlc3QgeW91IGRv IG5vdCByZWR1bmRhbnRseSBzcGVjaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwb2xpY3kg SUQgaW4gdGhlIGNvbW1lbnQuIFJlcGxhY2UgYnkgIkRlZmF1bHQgcG9saWN5IElELiINCg0KPiAr ICogQWN0aW9uIHBlciBjb2xvciBhcyBiZWxvdzoNCj4gKyAqIGdyZWVuIC0gbm8gYWN0aW9uLCB5 ZWxsb3cgLSBubyBhY3Rpb24sIHJlZCAtIGRyb3ANCg0KVGhpcyBkb2VzIG5vdCBtYWtlIHNlbnNl IHRvIG1lIGFzIHRoZSBkZWZhdWx0IHBvbGljeS4gVGhlIGRlZmF1bHQgcG9saWN5IHNob3VsZCBi ZSAibm8gY2hhbmdlIiwgaS5lLiBncmVlbiAtPiBncmVlbiAobm8gY2hhbmdlKSwgeWVsbG93IC0+ IHllbGxvdyAobm8gY2hhbmdlKSwgcmVkIC0+IHJlZCAobm8gY2hhbmdlKS4NCg0KSSBzdWdnZXN0 IHdlIGF2b2lkIHRoZSAibm8gYWN0aW9uIiBzdGF0ZW1lbnQsIGFzIGl0IG1pZ2h0IGJlIGNvbmZ1 c2luZy4NCg0KPiArICogSXQgY2FuIGJlIHVzZWQgd2l0aG91dCBjcmVhdGluZyBpdCBieSB0aGUg cnRlX210cl9tZXRlcl9wb2xpY3lfYWRkDQo+IGZ1bmN0aW9uLg0KPiArICovDQo+ICsjZGVmaW5l IFJURV9NVFJfREVGQVVMVF9QT0xJQ1lfSUQgMA0KPiArDQo+ICsvKioNCj4gKyAqIENoZWNrIHdo ZXRoZXIgYSBtZXRlciBwb2xpY3kgY2FuIGJlIGNyZWF0ZWQgb24gYSBnaXZlbiBwb3J0Lg0KPiAr ICoNCj4gKyAqIFRoZSBtZXRlciBwb2xpY3kgaXMgdmFsaWRhdGVkIGZvciBjb3JyZWN0bmVzcyBh bmQNCj4gKyAqIHdoZXRoZXIgaXQgY291bGQgYmUgYWNjZXB0ZWQgYnkgdGhlIGRldmljZSBnaXZl biBzdWZmaWNpZW50IHJlc291cmNlcy4NCj4gKyAqIFRoZSBwb2xpY3kgaXMgY2hlY2tlZCBhZ2Fp bnN0IHRoZSBjdXJyZW50IGNhcGFiaWxpdHkgaW5mb3JtYXRpb24NCj4gKyAqIG1ldGVyX3BvbGlj eV9uX21heCBjb25maWd1cmF0aW9uLg0KPiArICogVGhlIHBvbGljeSBtYXkgYWxzbyBvcHRpb25h bGx5IGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGV4aXN0aW5nDQo+ICsgKiBkZXZpY2UgcG9saWN5IHJl c291cmNlcy4NCj4gKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgdGFyZ2V0 IGRldmljZS4NCj4gKyAqDQo+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gKyAqICAgVGhlIHBv cnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiArICogQHBhcmFtW2luXSBw b2xpY3lfaWQNCj4gKyAqICAgUG9saWN5IGlkZW50aWZpZXIgZm9yIHRoZSBuZXcgbWV0ZXIgcG9s aWN5Lg0KPiArICogQHBhcmFtW2luXSBhY3Rpb25zDQo+ICsgKiAgIEFzc29jaWF0ZWQgYWN0aW9u IGxpc3QgcGVyIGNvbG9yLg0KPiArICogICBsaXN0IE5VTEwgaXMgbGVnYWwgYW5kIG1lYW5zIG5v IHNwZWNpYWwgYWN0aW9uLg0KPiArICogICAobGlzdCB0ZXJtaW5hdGVkIGJ5IHRoZSBFTkQgYWN0 aW9uKS4NCj4gKyAqIEBwYXJhbVtvdXRdIGVycm9yDQo+ICsgKiAgIEVycm9yIGRldGFpbHMuIEZp bGxlZCBpbiBvbmx5IG9uIGVycm9yLCB3aGVuIG5vdCBOVUxMLg0KPiArICoNCj4gKyAqIEByZXR1 cm4NCj4gKyAqICAgMCBvbiBzdWNjZXNzLCBub24temVybyBlcnJvciBjb2RlIG90aGVyd2lzZS4N Cj4gKyAqDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiAraW50DQo+ICtydGVfbXRy X21ldGVyX3BvbGljeV92YWxpZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiArCXVpbnQzMl90IHBv bGljeV9pZCwNCj4gKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb25zW1JURV9D T0xPUlNdLA0KPiArCXN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ICsNCg0KVGhpcyBl bnRpcmUgcHJvcG9zYWwgaXMgYWJvdXQgZGVmaW5pbmcgYSBtZXRlciBwb2xpY3ksIHlldCB0aGVy ZSBpcyBubyBzdHJ1Y3R1cmUgZGVmaW5pbmcgd2hhdCBleGFjdGx5IHRoZSBtZXRlciBwb2xpY3kg aXMhDQoNClBsZWFzZSBsZXQncyB1c2UgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgZm9yIHRoZSBw b2xpY3kgcGFyYW1ldGVycyBmb3IgdGhlIHBvbGljeSB2YWxpZGF0ZS9hZGQvZGVsZXRlIEFQSSBm dW5jdGlvbnM6DQoNCnN0cnVjdCBydGVfbXRyX21ldGVyX3BvbGljeV9wYXJhbXMgew0KCXN0cnVj dCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNbUlRFX0NPTE9SU107DQp9Ow0KDQpUaGlzIHdvdWxk IGFsc28gZ2l2ZSB1cyB0aGUgY2hhbmNlIHRvIGRvY3VtZW50IHRoZSBwb2xpY3kgY29uY2VwdCBp biBkZXRhaWwgb25jZSBhbmQgbm90IHJlcGVhdCB0aGUgc2FtZSBleHBsYW5hdGlvbiBvdmVyIGFu ZCBvdmVyLiBGb3IgZXhhbXBsZSwgd2UgbmVlZCB0byBleHBsYWluIGNsZWFybHkgdGhhdCBhY3Rp b25zW2ldIHBvdGVudGlhbGx5IHJlcHJlc2VudHMgYSBjaGFpbiBvZiBydGVfZmxvdyBhY3Rpb25z IHRlcm1pbmF0ZWQgYnkgdGhlIEVORCBhY3Rpb24sIGV4YWN0bHkgYXMgc3BlY2lmaWVkIGJ5IHRo ZSBydGVfZmxvdyBBUEkgZm9yIHRoZSBmbG93IGRlZmluaXRpb24sIGFuZCBub3QganVzdCBhIHNp bmdsZSBhY3Rpb24uIFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQgYW5kIHlldCBub3QgZW50aXJlbHkg Y2xlYXIgZnJvbSB0aGUgYWJvdmUgZGVzY3JpcHRpb24uDQoNClRoaXMgd291bGQgYWxzbyBnaXZl IHVzIHRoZSBjaGFuY2UgdG8gYWRkIG1vcmUgYXR0cmlidXRlcyB0byB0aGUgbWV0ZXIgcG9saWN5 IGxhdGVyLCBpZi93aGVuIG5lZWRlZCwgd2l0aCBtaW5pbWFsIGltcGFjdCB0byB0aGUgQVBJLg0K DQo+ICsvKioNCj4gKyAqIE1ldGVyIHBvbGljeSBhZGQNCj4gKyAqDQo+ICsgKiBDcmVhdGUgYSBu ZXcgbWV0ZXIgcG9saWN5LiBUaGUgbmV3IHBvbGljeQ0KPiArICogaXMgdXNlZCB0byBjcmVhdGUg c2luZ2xlIG9yIG11bHRpcGxlIE1UUiBvYmplY3RzLg0KPiArICoNCj4gKyAqIEBwYXJhbVtpbl0g cG9ydF9pZA0KPiArICogICBUaGUgcG9ydCBpZGVudGlmaWVyIG9mIHRoZSBFdGhlcm5ldCBkZXZp Y2UuDQo+ICsgKiBAcGFyYW1baW5dIHBvbGljeV9pZA0KPiArICogICBQb2xpY3kgaWRlbnRpZmll ciBmb3IgdGhlIG5ldyBtZXRlciBwb2xpY3kuDQo+ICsgKiBAcGFyYW1baW5dIGFjdGlvbnMNCj4g KyAqICAgQXNzb2NpYXRlZCBhY3Rpb25zIHBlciBjb2xvci4NCj4gKyAqICAgbGlzdCBOVUxMIGlz IGxlZ2FsIGFuZCBtZWFucyBubyBzcGVjaWFsIGFjdGlvbi4NCj4gKyAqICAgKGxpc3QgdGVybWlu YXRlZCBieSB0aGUgRU5EIGFjdGlvbikuDQo+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiArICog ICBFcnJvciBkZXRhaWxzLiBGaWxsZWQgaW4gb25seSBvbiBlcnJvciwgd2hlbiBub3QgTlVMTC4N Cj4gKyAqIEByZXR1cm4NCj4gKyAqICAgMCBvbiBzdWNjZXNzLCBub24temVybyBlcnJvciBjb2Rl IG90aGVyd2lzZS4NCj4gKyAqLw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICtpbnQNCj4gK3J0 ZV9tdHJfbWV0ZXJfcG9saWN5X2FkZCh1aW50MTZfdCBwb3J0X2lkLA0KPiArCXVpbnQzMl90IHBv bGljeV9pZCwNCj4gKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb25zW1JURV9D T0xPUlNdLA0KPiArCXN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ICsNCj4gKy8qKg0K PiArICogTWV0ZXIgcG9saWN5IGRlbGV0ZQ0KPiArICoNCj4gKyAqIERlbGV0ZSBhbiBleGlzdGlu ZyBtZXRlciBwb2xpY3kuIFRoaXMgb3BlcmF0aW9uIGZhaWxzIHdoZW4gdGhlcmUgaXMNCj4gKyAq IGN1cnJlbnRseSBhdCBsZWFzdCBvbmUgdXNlciAoaS5lLiBNVFIgb2JqZWN0KSBvZiB0aGlzIHBv bGljeS4NCj4gKyAqDQo+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gKyAqICAgVGhlIHBvcnQg aWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiArICogQHBhcmFtW2luXSBwb2xp Y3lfaWQNCj4gKyAqICAgUG9saWN5IGlkZW50aWZpZXIuDQo+ICsgKiBAcGFyYW1bb3V0XSBlcnJv cg0KPiArICogICBFcnJvciBkZXRhaWxzLiBGaWxsZWQgaW4gb25seSBvbiBlcnJvciwgd2hlbiBu b3QgTlVMTC4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgMCBvbiBzdWNjZXNzLCBub24temVybyBl cnJvciBjb2RlIG90aGVyd2lzZS4NCj4gKyAqLw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICtp bnQNCj4gK3J0ZV9tdHJfbWV0ZXJfcG9saWN5X2RlbGV0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiAr CXVpbnQzMl90IHBvbGljeV9pZCwNCj4gKwlzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0K PiArDQo+ICAvKioNCj4gICAqIE1UUiBvYmplY3QgY3JlYXRlDQo+ICAgKg0KPiBAQCAtNTg3LDE4 ICs2NTQsMTQgQEAgcnRlX210cl9tZXRlcl9wcm9maWxlX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lk LA0KPiAgCXN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+IA0KPiAgLyoqDQo+IC0gKiBN VFIgb2JqZWN0IERTQ1AgdGFibGUgdXBkYXRlDQo+ICsgKiBNVFIgb2JqZWN0IG1ldGVyIHBvbGlj eSB1cGRhdGUNCj4gICAqDQo+ICAgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gICAqICAgVGhlIHBv cnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiAgICogQHBhcmFtW2luXSBt dHJfaWQNCj4gICAqICAgTVRSIG9iamVjdCBJRC4gTmVlZHMgdG8gYmUgdmFsaWQuDQo+IC0gKiBA cGFyYW1baW5dIGRzY3BfdGFibGUNCj4gLSAqICAgV2hlbiBub24tTlVMTDogaXQgcG9pbnRzIHRv IGEgcHJlLWFsbG9jYXRlZCBhbmQgcHJlLXBvcHVsYXRlZCB0YWJsZQ0KPiB3aXRoDQo+IC0gKiAg IGV4YWN0bHkgNjQgZWxlbWVudHMgcHJvdmlkaW5nIHRoZSBpbnB1dCBjb2xvciBmb3IgZWFjaCB2 YWx1ZSBvZiB0aGUNCj4gLSAqICAgSVB2NC9JUHY2IERpZmZlcmVudGlhdGVkIFNlcnZpY2VzIENv ZGUgUG9pbnQgKERTQ1ApIGlucHV0IHBhY2tldCBmaWVsZC4NCj4gLSAqICAgV2hlbiBOVUxMOiBp dCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gYW4gw6LigqzFk2Fs bC0NCj4gZ3JlZW7DouKCrMKdDQo+IC0gKiAgIHBvcHVsYXRlZCB0YWJsZSAoaS5lLiB0YWJsZSB3 aXRoIGFsbCB0aGUgNjQgZWxlbWVudHMgc2V0IHRvIGdyZWVuIGNvbG9yKS4NCj4gKyAqIEBwYXJh bVtpbl0gbWV0ZXJfcG9saWN5X2lkDQo+ICsgKiAgIE1ldGVyIHBvbGljeSBJRCBmb3IgdGhlIGN1 cnJlbnQgTVRSIG9iamVjdC4gTmVlZHMgdG8gYmUgdmFsaWQuDQo+ICAgKiBAcGFyYW1bb3V0XSBl cnJvcg0KPiAgICogICBFcnJvciBkZXRhaWxzLiBGaWxsZWQgaW4gb25seSBvbiBlcnJvciwgd2hl biBub3QgTlVMTC4NCj4gICAqIEByZXR1cm4NCj4gQEAgLTYwNiwyNiArNjY5LDI0IEBAIHJ0ZV9t dHJfbWV0ZXJfcHJvZmlsZV91cGRhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gICAqLw0KPiAgX19y dGVfZXhwZXJpbWVudGFsDQo+ICBpbnQNCj4gLXJ0ZV9tdHJfbWV0ZXJfZHNjcF90YWJsZV91cGRh dGUodWludDE2X3QgcG9ydF9pZCwNCj4gK3J0ZV9tdHJfbWV0ZXJfcG9saWN5X3VwZGF0ZSh1aW50 MTZfdCBwb3J0X2lkLA0KPiAgCXVpbnQzMl90IG10cl9pZCwNCj4gLQllbnVtIHJ0ZV9jb2xvciAq ZHNjcF90YWJsZSwNCj4gKwl1aW50MzJfdCBtZXRlcl9wb2xpY3lfaWQsDQo+ICAJc3RydWN0IHJ0 ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gDQo+ICAvKioNCj4gLSAqIE1UUiBvYmplY3QgcG9saWNl ciBhY3Rpb25zIHVwZGF0ZQ0KPiArICogTVRSIG9iamVjdCBEU0NQIHRhYmxlIHVwZGF0ZQ0KPiAg ICoNCj4gICAqIEBwYXJhbVtpbl0gcG9ydF9pZA0KPiAgICogICBUaGUgcG9ydCBpZGVudGlmaWVy IG9mIHRoZSBFdGhlcm5ldCBkZXZpY2UuDQo+ICAgKiBAcGFyYW1baW5dIG10cl9pZA0KPiAgICog ICBNVFIgb2JqZWN0IElELiBOZWVkcyB0byBiZSB2YWxpZC4NCj4gLSAqIEBwYXJhbVtpbl0gYWN0 aW9uX21hc2sNCj4gLSAqICAgQml0IG1hc2sgaW5kaWNhdGluZyB3aGljaCBwb2xpY2VyIGFjdGlv bnMgbmVlZCB0byBiZSB1cGRhdGVkLiBPbmUgb3INCj4gbW9yZQ0KPiAtICogICBwb2xpY2VyIGFj dGlvbnMgY2FuIGJlIHVwZGF0ZWQgaW4gYSBzaW5nbGUgZnVuY3Rpb24gaW52b2NhdGlvbi4gVG8g dXBkYXRlDQo+IC0gKiAgIHRoZSBwb2xpY2VyIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggY29sb3Ig QywgYml0ICgxIDw8IEMpIG5lZWRzIHRvIGJlIHNldCBpbg0KPiAtICogICAqYWN0aW9uX21hc2sq IGFuZCBlbGVtZW50IGF0IHBvc2l0aW9uIEMgaW4gdGhlICphY3Rpb25zKiBhcnJheSBuZWVkcyB0 bw0KPiBiZQ0KPiAtICogICB2YWxpZC4NCj4gLSAqIEBwYXJhbVtpbl0gYWN0aW9ucw0KPiAtICog ICBQcmUtYWxsb2NhdGVkIGFuZCBwcmUtcG9wdWxhdGVkIGFycmF5IG9mIHBvbGljZXIgYWN0aW9u cy4NCj4gKyAqIEBwYXJhbVtpbl0gZHNjcF90YWJsZQ0KPiArICogICBXaGVuIG5vbi1OVUxMOiBp dCBwb2ludHMgdG8gYSBwcmUtYWxsb2NhdGVkIGFuZCBwcmUtcG9wdWxhdGVkIHRhYmxlDQo+IHdp dGgNCj4gKyAqICAgZXhhY3RseSA2NCBlbGVtZW50cyBwcm92aWRpbmcgdGhlIGlucHV0IGNvbG9y IGZvciBlYWNoIHZhbHVlIG9mIHRoZQ0KPiArICogICBJUHY0L0lQdjYgRGlmZmVyZW50aWF0ZWQg U2VydmljZXMgQ29kZSBQb2ludCAoRFNDUCkgaW5wdXQgcGFja2V0IGZpZWxkLg0KPiArICogICBX aGVuIE5VTEw6IGl0IGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGlzIHBhcmFtZXRlciB0byBh biDDouKCrMWTYWxsLQ0KPiBncmVlbsOi4oKswp0NCj4gKyAqICAgcG9wdWxhdGVkIHRhYmxlIChp LmUuIHRhYmxlIHdpdGggYWxsIHRoZSA2NCBlbGVtZW50cyBzZXQgdG8gZ3JlZW4gY29sb3IpLg0K PiAgICogQHBhcmFtW291dF0gZXJyb3INCj4gICAqICAgRXJyb3IgZGV0YWlscy4gRmlsbGVkIGlu IG9ubHkgb24gZXJyb3IsIHdoZW4gbm90IE5VTEwuDQo+ICAgKiBAcmV0dXJuDQo+IEBAIC02MzMs MTAgKzY5NCw5IEBAIHJ0ZV9tdHJfbWV0ZXJfZHNjcF90YWJsZV91cGRhdGUodWludDE2X3QNCj4g cG9ydF9pZCwNCj4gICAqLw0KPiAgX19ydGVfZXhwZXJpbWVudGFsDQo+ICBpbnQNCj4gLXJ0ZV9t dHJfcG9saWNlcl9hY3Rpb25zX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiArcnRlX210cl9t ZXRlcl9kc2NwX3RhYmxlX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiAgCXVpbnQzMl90IG10 cl9pZCwNCj4gLQl1aW50MzJfdCBhY3Rpb25fbWFzaywNCj4gLQllbnVtIHJ0ZV9tdHJfcG9saWNl cl9hY3Rpb24gKmFjdGlvbnMsDQo+ICsJZW51bSBydGVfY29sb3IgKmRzY3BfdGFibGUsDQo+ICAJ c3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gDQo+ICAvKioNCj4gZGlmZiAtLWdpdCBh L2xpYi9saWJydGVfZXRoZGV2L3J0ZV9tdHJfZHJpdmVyLmgNCj4gYi9saWIvbGlicnRlX2V0aGRl di9ydGVfbXRyX2RyaXZlci5oDQo+IGluZGV4IGEwZGRjMmI1ZjQuLjFhZDhmYjRjNDAgMTAwNjQ0 DQo+IC0tLSBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9tdHJfZHJpdmVyLmgNCj4gKysrIGIvbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX210cl9kcml2ZXIuaA0KPiBAQCAtNDEsNiArNDEsMjMgQEAgdHlw ZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX3Byb2ZpbGVfZGVsZXRlX3QpKHN0cnVjdA0KPiBydGVf ZXRoX2RldiAqZGV2LA0KPiAgCXN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ICAvKio8 IEBpbnRlcm5hbCBNVFIgbWV0ZXIgcHJvZmlsZSBkZWxldGUgKi8NCj4gDQo+ICt0eXBlZGVmIGlu dCAoKnJ0ZV9tdHJfbWV0ZXJfcG9saWN5X3ZhbGlkYXRlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LA0KPiArCXVpbnQzMl90IHBvbGljeV9pZCwNCj4gKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uICphY3Rpb25zW1JURV9DT0xPUlNdLA0KPiArCXN0cnVjdCBydGVfbXRyX2Vycm9yICpl cnJvcik7DQo+ICsvKio8IEBpbnRlcm5hbCBNVFIgbWV0ZXIgcG9saWN5IHZhbGlkYXRlICovDQo+ ICsNCj4gK3R5cGVkZWYgaW50ICgqcnRlX210cl9tZXRlcl9wb2xpY3lfYWRkX3QpKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LA0KPiArCXVpbnQzMl90IHBvbGljeV9pZCwNCj4gKwljb25zdCBzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb25zW1JURV9DT0xPUlNdLA0KPiArCXN0cnVjdCBydGVf bXRyX2Vycm9yICplcnJvcik7DQo+ICsvKio8IEBpbnRlcm5hbCBNVFIgbWV0ZXIgcG9saWN5IGFk ZCAqLw0KPiArDQo+ICt0eXBlZGVmIGludCAoKnJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2RlbGV0ZV90 KShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gKwl1aW50MzJfdCBwb2xpY3lfaWQsDQo+ICsJ c3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gKy8qKjwgQGludGVybmFsIE1UUiBtZXRl ciBwb2xpY3kgZGVsZXRlICovDQo+ICsNCj4gIHR5cGVkZWYgaW50ICgqcnRlX210cl9jcmVhdGVf dCkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ICAJdWludDMyX3QgbXRyX2lkLA0KPiAgCXN0 cnVjdCBydGVfbXRyX3BhcmFtcyAqcGFyYW1zLA0KPiBAQCAtNjksMTggKzg2LDE3IEBAIHR5cGVk ZWYgaW50DQo+ICgqcnRlX210cl9tZXRlcl9wcm9maWxlX3VwZGF0ZV90KShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldiwNCj4gIAlzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiAgLyoqPCBA aW50ZXJuYWwgTVRSIG9iamVjdCBtZXRlciBwcm9maWxlIHVwZGF0ZSAqLw0KPiANCj4gLXR5cGVk ZWYgaW50ICgqcnRlX210cl9tZXRlcl9kc2NwX3RhYmxlX3VwZGF0ZV90KShzdHJ1Y3QgcnRlX2V0 aF9kZXYNCj4gKmRldiwNCj4gK3R5cGVkZWYgaW50ICgqcnRlX210cl9tZXRlcl9wb2xpY3lfdXBk YXRlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiAgCXVpbnQzMl90IG10cl9pZCwNCj4g LQllbnVtIHJ0ZV9jb2xvciAqZHNjcF90YWJsZSwNCj4gKwl1aW50MzJfdCBtZXRlcl9wb2xpY3lf aWQsDQo+ICAJc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gLS8qKjwgQGludGVybmFs IE1UUiBvYmplY3QgbWV0ZXIgRFNDUCB0YWJsZSB1cGRhdGUgKi8NCj4gKy8qKjwgQGludGVybmFs IE1UUiBvYmplY3QgbWV0ZXIgcG9saWN5IHVwZGF0ZSAqLw0KPiANCj4gLXR5cGVkZWYgaW50ICgq cnRlX210cl9wb2xpY2VyX2FjdGlvbnNfdXBkYXRlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LA0KPiArdHlwZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX2RzY3BfdGFibGVfdXBkYXRlX3QpKHN0 cnVjdCBydGVfZXRoX2Rldg0KPiAqZGV2LA0KPiAgCXVpbnQzMl90IG10cl9pZCwNCj4gLQl1aW50 MzJfdCBhY3Rpb25fbWFzaywNCj4gLQllbnVtIHJ0ZV9tdHJfcG9saWNlcl9hY3Rpb24gKmFjdGlv bnMsDQo+ICsJZW51bSBydGVfY29sb3IgKmRzY3BfdGFibGUsDQo+ICAJc3RydWN0IHJ0ZV9tdHJf ZXJyb3IgKmVycm9yKTsNCj4gLS8qKjwgQGludGVybmFsIE1UUiBvYmplY3QgcG9saWNlciBhY3Rp b24gdXBkYXRlKi8NCj4gKy8qKjwgQGludGVybmFsIE1UUiBvYmplY3QgbWV0ZXIgRFNDUCB0YWJs ZSB1cGRhdGUgKi8NCj4gDQo+ICB0eXBlZGVmIGludCAoKnJ0ZV9tdHJfc3RhdHNfdXBkYXRlX3Qp KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiAgCXVpbnQzMl90IG10cl9pZCwNCj4gQEAgLTEy NCwxNCArMTQwLDIzIEBAIHN0cnVjdCBydGVfbXRyX29wcyB7DQo+ICAJLyoqIE1UUiBvYmplY3Qg bWV0ZXIgRFNDUCB0YWJsZSB1cGRhdGUgKi8NCj4gIAlydGVfbXRyX21ldGVyX2RzY3BfdGFibGVf dXBkYXRlX3QgbWV0ZXJfZHNjcF90YWJsZV91cGRhdGU7DQo+IA0KPiAtCS8qKiBNVFIgb2JqZWN0 IHBvbGljZXIgYWN0aW9uIHVwZGF0ZSAqLw0KPiAtCXJ0ZV9tdHJfcG9saWNlcl9hY3Rpb25zX3Vw ZGF0ZV90IHBvbGljZXJfYWN0aW9uc191cGRhdGU7DQo+IC0NCj4gIAkvKiogTVRSIG9iamVjdCBl bmFibGVkIHN0YXRzIHVwZGF0ZSAqLw0KPiAgCXJ0ZV9tdHJfc3RhdHNfdXBkYXRlX3Qgc3RhdHNf dXBkYXRlOw0KPiANCj4gIAkvKiogTVRSIG9iamVjdCBzdGF0cyByZWFkICovDQo+ICAJcnRlX210 cl9zdGF0c19yZWFkX3Qgc3RhdHNfcmVhZDsNCj4gKw0KPiArCS8qKiBNVFIgbWV0ZXIgcG9saWN5 IHZhbGlkYXRlICovDQo+ICsJcnRlX210cl9tZXRlcl9wb2xpY3lfdmFsaWRhdGVfdCBtZXRlcl9w b2xpY3lfdmFsaWRhdGU7DQo+ICsNCj4gKwkvKiogTVRSIG1ldGVyIHBvbGljeSBhZGQgKi8NCj4g KwlydGVfbXRyX21ldGVyX3BvbGljeV9hZGRfdCBtZXRlcl9wb2xpY3lfYWRkOw0KPiArDQo+ICsJ LyoqIE1UUiBtZXRlciBwb2xpY3kgZGVsZXRlICovDQo+ICsJcnRlX210cl9tZXRlcl9wb2xpY3lf ZGVsZXRlX3QgbWV0ZXJfcG9saWN5X2RlbGV0ZTsNCj4gKw0KPiArCS8qKiBNVFIgb2JqZWN0IG1l dGVyIHBvbGljeSB1cGRhdGUgKi8NCj4gKwlydGVfbXRyX21ldGVyX3BvbGljeV91cGRhdGVfdCBt ZXRlcl9wb2xpY3lfdXBkYXRlOw0KPiAgfTsNCj4gDQo+ICAvKioNCj4gLS0NCj4gMi4yMS4wDQoN ClJlZ2FyZHMsDQpDcmlzdGlhbg0K