From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D859C47095 for ; Mon, 7 Jun 2021 16:30:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5B7F761C81 for ; Mon, 7 Jun 2021 16:30:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231538AbhFGQc0 (ORCPT ); Mon, 7 Jun 2021 12:32:26 -0400 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:13474 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235056AbhFGQaY (ORCPT ); Mon, 7 Jun 2021 12:30:24 -0400 Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 157GF7dS011589; Mon, 7 Jun 2021 09:28:25 -0700 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2108.outbound.protection.outlook.com [104.47.55.108]) by mx0a-0016f401.pphosted.com with ESMTP id 391p4pg8sx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 07 Jun 2021 09:28:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g3dSAUGWrMQf/cRJXKWq/isezo3Y93CadwL/ObPT76Pegkpf+7rQSNb1Cc8O1blhXnfkNSz+kF6Y7bzDdNPUnYpbasgq9GImrHhr3iF0GUZoGVrKDJSPnuD8nFwGsOkt6yy3nrtwa0Hw3UQEHN2e8YiZ2JspsVah/+F5SBF14HPBhQEiiffq/4YmWQJ6YVAzbmdh0OLpWLseIsfSRLNrk0DCp9YFXh3D7qEO6w1jHNZwWTgqZPMi6XuQyatXC1qqblc5q/XZ+5YWi7r++QVncOExrd2zOANVB+SpggUIX0XXkhihqZqiigp76uRpcorfKNjJOppoLOaeAWqpEz/vqg== 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=HDv5ugWXHlU5X3dA7WG11vr3nZHj8ZxWRwIrdiCkrRI=; b=DDm/cXYdeofd6xY0PxiynbVZIjoB14REEbbYv+SjxpuO8/Xy2VHTkCp1OPPdoyx0L8DtCrXOYh6iSCIRqytvmRc1szGaXZITOrbsuGiiiuGv9hQySkd3RG1cBX4K0I4URAdw4gzCVkRujLO7ZixBDMZPz/O0pfVyhqdetYf/n+OWythnX67U8PADIrkAuzyGLX8rEUKdlCf66mLmpbkWGIJ2S2sFmXYGgyH62eV4dJjwFr61oGTcDFCPt9NrHvmk1hfX0YlQYmbQS++ZDwaeS/dDZU2dkME1WZl19nxtfO9c5vK4i4MzwfSltNpxXBN7zqAP98i2PypKU7TcUN+kpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HDv5ugWXHlU5X3dA7WG11vr3nZHj8ZxWRwIrdiCkrRI=; b=T45aTi4NcygLRT5y+YVo2ptBxkoaAiYLkPEa+rN4L2agvQ9szYs5kuTf1JCUeeY84NDNfpcmk2K4GZiRdDV43azQFRGrQnqSzatH/cmkgau55BnUADdPbg+gQ0Plw/dINNgYghVExddm9mtTEnjdsGfbUK7XD/faJ9vqhhbVF3g= Received: from CY4PR1801MB2070.namprd18.prod.outlook.com (2603:10b6:910:7e::28) by CY4PR1801MB1957.namprd18.prod.outlook.com (2603:10b6:910:7c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.26; Mon, 7 Jun 2021 16:28:22 +0000 Received: from CY4PR1801MB2070.namprd18.prod.outlook.com ([fe80::496d:7cd5:45e8:cae]) by CY4PR1801MB2070.namprd18.prod.outlook.com ([fe80::496d:7cd5:45e8:cae%3]) with mapi id 15.20.4195.030; Mon, 7 Jun 2021 16:28:22 +0000 From: Bhaskara Budiredla To: Ulf Hansson CC: Kees Cook , Colin Cross , Tony Luck , Sunil Kovvuri Goutham , "linux-mmc@vger.kernel.org" , Linux Kernel Mailing List , linux-block , Jens Axboe , Christoph Hellwig Subject: RE: [EXT] Re: [PATCH v5 1/2] mmc: Support kmsg dumper based on pstore/blk Thread-Topic: [EXT] Re: [PATCH v5 1/2] mmc: Support kmsg dumper based on pstore/blk Thread-Index: AQHW7yVWdu744GVm7EWWpwnjNVLaQKownUuAgNVtmFCAAzQygIAAFgCwgAAZqoCAACOecA== Date: Mon, 7 Jun 2021 16:28:22 +0000 Message-ID: References: <20210120121047.2601-1-bbudiredla@marvell.com> <20210120121047.2601-2-bbudiredla@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=marvell.com; x-originating-ip: [183.83.172.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ffc12547-d2ed-401b-1a78-08d929d144b3 x-ms-traffictypediagnostic: CY4PR1801MB1957: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3173; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sxwxpxpAsP0Scqto7Lk5MbwkOZpW9KDaP+z1vcUbRZn9oELx+X3/Mk3VzUTaaEvty7z40tqVS5a9zpfj1I5T9sVbJVGtpEb6CB8NmdQ67jJDb2YAGRgfkC95GzOEhUGx0UoRruV/Qu1emabyQgaeku9zHn4wDIRyFUlfUo2Kbwvw6126uZeKrgImfLVIEH0/VXLPrCwxniABSwqInpL524FTy+bn73LltZqbrMRJNcqmtpXRMv0RnXttXmhYpSagQXngkN9hEQbmk/vd1wLl6mMhFJElGyV/8K6LLNjVO5X96HIQgeIl4MCWn5j85yjiX/Z8eyb0Bd4zOz4f2bg6TZT40wy4bsXSii1zkcVWUVNXufjWnYbExmy9EOyb9CKkDUvTPptLqG05hRX5sKptIjC42KS2zJqOblxYGOLOADwO2gu80Y03YfdJaszTlhSQc/y4abKV7/DTjVWo+giOhUKuP7NKtQxA99SlYmmt79gc7N5WXhnMXZqpZgf8KVDLqR6zTCitrTe8ZYajljvgbra+W1Rr5i0NvLj/zH0MXCPAxvQGe0ysuBuaCY06EiHfjjNFpAMqcqR204rd33Z6vdHPpxs7eq2ma37AhPxTSyCEDwQjRx/JVYY96ZVEUwYA6DOEsI5qu722lj+L/GG0twBgKjoKDPn9AlRSS4FFI08LbRLfdyJ3Kx4rrDV3V6DfnWuUBj1zpEEb8ul0ZaBE+NZl+JfHRzNSo3Drq7QaJ+w= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR1801MB2070.namprd18.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39850400004)(346002)(366004)(136003)(396003)(376002)(66446008)(478600001)(55016002)(966005)(19627235002)(8936002)(33656002)(66556008)(64756008)(8676002)(4326008)(66476007)(2906002)(5660300002)(6916009)(9686003)(54906003)(86362001)(52536014)(83380400001)(76116006)(30864003)(66946007)(186003)(122000001)(7696005)(26005)(38100700002)(71200400001)(316002)(6506007)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?cXN3YjM0SFBobjZmaktGVlZxc2VZT1d3SVV3MHpUUG11WE4zSGg3NVczM2Ru?= =?utf-8?B?Q2JQRldUMkdVWTNFb1lBUk8wQld2a0FuOEtoSzEvV1hhNkExY1hjbFQwaThF?= =?utf-8?B?ZFpNQUhXQ0lxV0UwNGtRVmd2M0YyRWViUXU0ZU9JT0QzT0dObmx0Zi9BYnpp?= =?utf-8?B?S29hY3ppTDhCd1ExZVkrNTVSc1RwK1NPZG00czNqNGFCYnEvc3lOdlVaRVNZ?= =?utf-8?B?S2kvY0s0eXdWNWJPTVlkS1JBNmVacjl5T0t6OGQreDB0MlJSVkJ3ZGtCbFd6?= =?utf-8?B?SGhRam1LbDdsY0hBOU83S1pZYXZ4OG1SZTBXZEN4N09tSTl5RTB6QjI2RTRJ?= =?utf-8?B?YWs4WHJMWWg1SFJUTEtaYS9TWE1tTXBWQnVobUw4UWNLaFRhT2VkSnA2TmFq?= =?utf-8?B?ei9ObFpCNGRhdm5TTWpBSHc0TklXY01XM1Frc3JDV2dkRnpIeE1BekVJUSt3?= =?utf-8?B?MlFCbkVYNUtsWkltVXBkTU9XYlV0ZTFnMEU3MkZUOXZNK2p2YmJOZVRMeUN5?= =?utf-8?B?ZGdSKy9lUGE5U2Mxd1RkWFZOOGFHbHFVUk1rTUVaaTlJTHE3QlJncEhtN2lX?= =?utf-8?B?aUV5emZTWnk3T2dyS2w4YjVqMTR2VlJlUXlWRnVHTUVJU2FOMlRhN0kzRUFp?= =?utf-8?B?d3NYR1hONnhJbSthN1hIM0REc2d2aGhHeDczdDdzSW9XM1VPU0xyV1dyYUdL?= =?utf-8?B?U2lNRFhQanhZcWdQZTNiZ3UwMENRV2pEY2JGdmNMSGRSSXNSV2IrNVhiWXNj?= =?utf-8?B?N01Mazd2NEVrMTd4amtPUGs2SFU0OEcyeXM1Wm9XZ0hoOEJIY2hmZmlESUt5?= =?utf-8?B?OHZGeWZyWjhRQWNrWXJ2OVRwME5TbGs0MVkrc2dLTG1vR1pvR29ZSmpScVAw?= =?utf-8?B?ZldJcDM1RTFISjJQeHI1bTY0WnFmMVIwRmY0OFJ5NS93cU85cWZqUGZMai8w?= =?utf-8?B?OFZEaWZOMjgrbXozZ0ZoK1Q3Y1VlODJvbGFLMGdyVUEwWk5id0U5cTB1dENL?= =?utf-8?B?dTdUUHFRNTlaaFZyTzZLTlZpMFpaWE5lTm1rYlBOSjM5YXVWaDErV21rVlBs?= =?utf-8?B?T0FCY2x0dEltQkVKY0pvZTd3MUN0azVrTUd5SldyVGw2Zmx4QVhtZkJKRUdv?= =?utf-8?B?dFJVT3ZXSUo2Yzk4YkdnTnVFRG1ONSsxVDM4ZFJpcHpGdEU4eTFvSktHMkU3?= =?utf-8?B?VXBudmZwT1NCSVpnTllOeDA3bGpSc3hpdFNOdnRjOU5GUnlMQXlveUF3NUFj?= =?utf-8?B?NTlQemF5c0tpQmxEWllRdEdDU25aUTE1d2JXMUh5ckdKTFpNTXNzQmZkdTVW?= =?utf-8?B?cnFOM2RZRERqYTg1S0dFUnd3QmhNNUFtU3dyb3BUNU56ak4xT3JxWFgvTFJR?= =?utf-8?B?cVFHQVdUOFVmdWdEM1cvdVhqYi9jdWwxZXhxZkJoRUxHc09uNm9nTnlyYzA3?= =?utf-8?B?K2dWcHF0Yk1LSDB5dFRnY1ZKVEt1WWx5cWZUT3ZOc3ArRXhYMXV5YkJ1Y0dh?= =?utf-8?B?LzJkeEdwRTBuV053aW96SDZDSmlIZ2FSb1Y1RVloU3hWY2piWkdRV0svNjNp?= =?utf-8?B?ZHpCSC9NVEdJNVNHVUtMMVhYVkJBRkhNbXJxRmphZlNYWWVydjBPOHdGSis5?= =?utf-8?B?RFVySXJ6eVpvR0NKODlqWUFzMFhHZzlnNjVMOXNSQXVaT0doSFl4K2ZUOE82?= =?utf-8?B?QnZ2NE14MmhoWGJOeEVFTzF3THp0dzNYUVZRWDl5emNpTThWckJ5MVZnRk04?= =?utf-8?Q?c/+6DzOb4M5y41qveejYyUwsutiTW+UXTKLlVjC?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1801MB2070.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffc12547-d2ed-401b-1a78-08d929d144b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2021 16:28:22.5505 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: o4/7wT6mB3O1NqpQBYch05CBRiAgLd7Y02JwAZ5e2EYCh/S7kb9y9E10yFrHC1M80kKyPoKDwQEN00fTf0oDlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB1957 X-Proofpoint-ORIG-GUID: lJ2lmAL1rjXNWC6x5tsWMuNYi9g-49mo X-Proofpoint-GUID: lJ2lmAL1rjXNWC6x5tsWMuNYi9g-49mo X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.761 definitions=2021-06-07_14:2021-06-04,2021-06-07 signatures=0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org SGkgQ2hyaXN0b3BoLA0KDQpDb3VsZCB5b3UgcGxlYXNlIHNoYXJlIHRoZSBjdXJyZW50IHN0YXRl IG9mIHlvdXIgd29yayBAaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91 PWh0dHAtM0FfX2dpdC5pbmZyYWRlYWQub3JnXw0KYW5kIHByb3ZpZGUgc29tZSBkaXJlY3Rpb24g b24gVWZmZSdzIGNvbW1lbnRzPw0KDQpUaGFua3MsDQpCaGFza2FyYQ0KDQoNCj4tLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IFVsZiBIYW5zc29uIDx1bGYuaGFuc3NvbkBsaW5hcm8u b3JnPg0KPlNlbnQ6IE1vbmRheSwgSnVuZSA3LCAyMDIxIDc6MzggUE0NCj5UbzogQmhhc2thcmEg QnVkaXJlZGxhIDxiYnVkaXJlZGxhQG1hcnZlbGwuY29tPg0KPkNjOiBLZWVzIENvb2sgPGtlZXNj b29rQGNocm9taXVtLm9yZz47IENvbGluIENyb3NzDQo+PGNjcm9zc0BhbmRyb2lkLmNvbT47IFRv bnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT47IFN1bmlsIEtvdnZ1cmkNCj5Hb3V0aGFtIDxz Z291dGhhbUBtYXJ2ZWxsLmNvbT47IGxpbnV4LW1tY0B2Z2VyLmtlcm5lbC5vcmc7IExpbnV4DQo+ S2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz47IGxpbnV4 LWJsb2NrIDxsaW51eC0NCj5ibG9ja0B2Z2VyLmtlcm5lbC5vcmc+OyBKZW5zIEF4Ym9lIDxheGJv ZUBrZXJuZWwuZGs+OyBDaHJpc3RvcGggSGVsbHdpZw0KPjxoY2hAbHN0LmRlPg0KPlN1YmplY3Q6 IFJlOiBbRVhUXSBSZTogW1BBVENIIHY1IDEvMl0gbW1jOiBTdXBwb3J0IGttc2cgZHVtcGVyIGJh c2VkIG9uDQo+cHN0b3JlL2Jsaw0KPg0KPk9uIE1vbiwgNyBKdW4gMjAyMSBhdCAxNDozNywgQmhh c2thcmEgQnVkaXJlZGxhIDxiYnVkaXJlZGxhQG1hcnZlbGwuY29tPg0KPndyb3RlOg0KPj4NCj4+ IFsuLi5dDQo+PiA+V2hhdCBwYXRjaGVzIGFyZSB5b3UgcmVmZXJyaW5nIHRvPw0KPj4NCj4+IEkg d2FzIHJlZmVycmluZyB0byB0aGlzIHBhdGNoLg0KPj4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29m cG9pbnQuY29tL3YyL3VybD91PWh0dHAtM0FfX2dpdC5pbmZyYWRlYWQub3JnXw0KPj4NCj51c2Vy c19oY2hfbWlzYy5naXRfc2hvcnRsb2dfcmVmc19oZWFkc19wc3RvcmUmZD1Ed0lCYVEmYz1uS2pX ZWMyYjZSMA0KPm1PDQo+Pg0KPnlQYXo3eHRmUSZyPTlQX2xTbGpTTzdLblFOa0NHc2d1OXhfT3A0 bXN0U2RxV04zT2xyNGJVdjAmbT1mbDQyeFUNCj5ZbzRET08NCj4+IEk4dU5OT0U0QXYtZmFuMjVw TWlrOGxYNUg0RzA2OTQmcz10VG1HYmV3TzJwZy0NCj5fOUQwdkFiX0dOdWNKdVpBakpDRmt1U3oN Cj4+IDZ3aEpHaG8mZT0NCj4NCj5BbHJpZ2h0LiBJIGRpZG4ndCBrbm93IGFib3V0IHRoZXNlLCB0 aGFua3MgZm9yIHRoZSBwb2ludGVyLiBMb29rcyBsaWtlIGEgYmlnIHN0ZXANCj5pbiB0aGUgcmln aHQgZGlyZWN0aW9uLg0KPg0KPkkgZ3Vlc3MgQ2hyaXN0b3BoIHNpbXBseSBoYXMgYmVlbiBidXN5 IHdpdGggb3RoZXIgdGhpbmdzLiBQZXJoYXBzIHlvdSBzaG91bGQNCj5hc2sgaWYgeW91IGNhbiBo ZWxwIGFuZCBwaWNrIHVwIGZyb20gd2hlcmUgaGUgbGVmdCB0aGUgc2VyaWVzPw0KPg0KPktpbmQg cmVnYXJkcw0KPlVmZmUNCj4NCj4+DQo+PiBUaGFua3MsDQo+PiBCaGFza2FyYQ0KPj4NCj4+ID4t LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gPkZyb206IFVsZiBIYW5zc29uIDx1bGYuaGFu c3NvbkBsaW5hcm8ub3JnPg0KPj4gPlNlbnQ6IE1vbmRheSwgSnVuZSA3LCAyMDIxIDQ6NDcgUE0N Cj4+ID5UbzogQmhhc2thcmEgQnVkaXJlZGxhIDxiYnVkaXJlZGxhQG1hcnZlbGwuY29tPg0KPj4g PkNjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz47IENvbGluIENyb3NzDQo+PiA+ PGNjcm9zc0BhbmRyb2lkLmNvbT47IFRvbnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT47IFN1 bmlsIEtvdnZ1cmkNCj4+ID5Hb3V0aGFtIDxzZ291dGhhbUBtYXJ2ZWxsLmNvbT47IGxpbnV4LW1t Y0B2Z2VyLmtlcm5lbC5vcmc7IExpbnV4DQo+PiA+S2VybmVsIE1haWxpbmcgTGlzdCA8bGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZz47IGxpbnV4LWJsb2NrDQo+PiA+PGxpbnV4LSBibG9ja0B2 Z2VyLmtlcm5lbC5vcmc+OyBKZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+Ow0KPj4gPkNocmlz dG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPg0KPj4gPlN1YmplY3Q6IFJlOiBbRVhUXSBSZTogW1BB VENIIHY1IDEvMl0gbW1jOiBTdXBwb3J0IGttc2cgZHVtcGVyIGJhc2VkDQo+PiA+b24gcHN0b3Jl L2Jsaw0KPj4gPg0KPj4gPk9uIFNhdCwgNSBKdW4gMjAyMSBhdCAxMjozMSwgQmhhc2thcmEgQnVk aXJlZGxhDQo+PiA+PGJidWRpcmVkbGFAbWFydmVsbC5jb20+DQo+PiA+d3JvdGU6DQo+PiA+Pg0K Pj4gPj4gSGkgVWZmZSwNCj4+ID4+DQo+PiA+PiBXaXRoIGR1ZSByZXNwZWN0IHRvIHBzdG9yZS9i bGsgc3Vic3lzdGVtIGNoYW5nZXMgd2UgaGF2ZSBiZWVuDQo+PiA+PiB3YWl0aW5nDQo+PiA+c2lu Y2UgbG9uZyB0aW1lIHRvIHNlZSBDaHJpc3RvcGggcGF0Y2hlcyB0YWtlbi4NCj4+ID4NCj4+ID5X aGF0IHBhdGNoZXMgYXJlIHlvdSByZWZlcnJpbmcgdG8/DQo+PiA+DQo+PiA+PiBCdXQgdW5mb3J0 dW5hdGVseSBpdCBpcyBzdGlsbCBmaW5kaW5nIGF0IHRoYXQgc2FtZSBzdGFnZSBvbmx5LiBDYW4N Cj4+ID4+IHlvdSBwbGVhc2UgdGFrZSB1cCBteSBwYXRjaCBpbiB0aGUgY3VycmVudCBmb3JtICh3 aGljaCBpcyBiYXNlZCBvbg0KPj4gPj4gY3VycmVudCBwc3RvcmUvYmxrIGZyYW1ld29yaykgaW5z dGVhZCBvZiB3YWl0aW5nIGluZGVmaW5pdGVseS4gSWYNCj4+ID4+IHBzdG9yZS9ibGsgY29tZXMg dXANCj4+ID53aXRoIHRoZSBjaGFuZ2VzIHRoYXQgaGFzIGJlZW4gZGlzY3Vzc2VkIGJ5IHlvdSBw cmV2aW91c2x5LCBJIHdpbGwNCj4+ID5mdXJ0aGVyIHN1Ym1pdCB0aGUgY29ycmVzcG9uZGluZyBj aGFuZ2VzIGZvciBlTU1DIGRldmljZXMuDQo+PiA+DQo+PiA+Tm8sIEkgYW0gc29ycnksIGJ1dCB0 aGF0J3Mgbm90IHRoZSB3YXkgaXQgd29ya3MuDQo+PiA+DQo+PiA+SWYgeW91IHJlYWxseSB3YW50 IHRvIG1vdmUgdGhpbmdzIGZvcndhcmQsIEkgd291bGQgc3VnZ2VzdCB0aGF0IHlvdQ0KPj4gPnRy eSB0byBpbXBsZW1lbnQgc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZiB3aGF0IEkgaGF2ZSBz dWdnZXN0ZWQuDQo+PiA+QW5vdGhlciBvcHRpb24gaXMgdG8gcG9zdCBhbiBSRkQvUkZDIHNvIGFz IHNvbHV0aW9uIGNhbiBiZSBkaXNjdXNzZWQNCj4+ID53aXRoIHRoZSByZWxldmFudCBwZW9wbGUu DQo+PiA+DQo+PiA+S2luZCByZWdhcmRzDQo+PiA+VWZmZQ0KPj4gPg0KPj4gPj4NCj4+ID4+IFRo YW5rcywNCj4+ID4+IEJoYXNrYXJhDQo+PiA+Pg0KPj4gPj4gPi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+PiA+PiA+RnJvbTogVWxmIEhhbnNzb24gPHVsZi5oYW5zc29uQGxpbmFyby5vcmc+ DQo+PiA+PiA+U2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDIwLCAyMDIxIDg6MzYgUE0NCj4+ID4+ ID5UbzogQmhhc2thcmEgQnVkaXJlZGxhIDxiYnVkaXJlZGxhQG1hcnZlbGwuY29tPjsgS2VlcyBD b29rDQo+PiA+PiA+PGtlZXNjb29rQGNocm9taXVtLm9yZz4NCj4+ID4+ID5DYzogQ29saW4gQ3Jv c3MgPGNjcm9zc0BhbmRyb2lkLmNvbT47IFRvbnkgTHVjaw0KPj4gPj4gPjx0b255Lmx1Y2tAaW50 ZWwuY29tPjsgU3VuaWwgS292dnVyaSBHb3V0aGFtDQo+PiA+PiA+PHNnb3V0aGFtQG1hcnZlbGwu Y29tPjsNCj4+ID4+ID5saW51eC0gbW1jQHZnZXIua2VybmVsLm9yZzsgTGludXggS2VybmVsIE1h aWxpbmcgTGlzdCA8bGludXgtDQo+PiA+PiA+a2VybmVsQHZnZXIua2VybmVsLm9yZz47IGxpbnV4 LWJsb2NrDQo+PiA+PiA+PGxpbnV4LWJsb2NrQHZnZXIua2VybmVsLm9yZz47IEplbnMgQXhib2Ug PGF4Ym9lQGtlcm5lbC5kaz47DQo+PiA+PiA+Q2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+ DQo+PiA+PiA+U3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSCB2NSAxLzJdIG1tYzogU3VwcG9ydCBr bXNnIGR1bXBlciBiYXNlZA0KPj4gPj4gPm9uIHBzdG9yZS9ibGsNCj4+ID4+ID4NCj4+ID4+ID5F eHRlcm5hbCBFbWFpbA0KPj4gPj4gPg0KPj4gPj4gPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gPj4gPi0tLQ0KPj4g Pj4gPi0NCj4+ID4+ID4rIGxpbnV4LWJsb2NrLCBKZW5zLCBDaHJpc3RvcGgNCj4+ID4+ID4NCj4+ ID4+ID5PbiBXZWQsIDIwIEphbiAyMDIxIGF0IDEzOjExLCBCaGFza2FyYSBCdWRpcmVkbGENCj4+ ID4+ID48YmJ1ZGlyZWRsYUBtYXJ2ZWxsLmNvbT4gd3JvdGU6DQo+PiA+PiA+Pg0KPj4gPj4gPj4g VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRvIG1tY3BzdG9yZS4gVGhlIGZ1bmN0aW9uaW5nIG9mIG1t Y3BzdG9yZQ0KPj4gPj4gPj4gaXMgc2ltaWxhciB0byBtdGRwc3RvcmUuIG1tY3BzdG9yZSB3b3Jr cyBvbiBGVEwgYmFzZWQgZmxhc2gNCj4+ID4+ID4+IGRldmljZXMgd2hlcmVhcyBtdGRwc3RvcmUg d29ya3Mgb24gcmF3IGZsYXNoIGRldmljZXMuIFdoZW4gdGhlDQo+PiA+PiA+PiBzeXN0ZW0gY3Jh c2hlcywgbW1jcHN0b3JlIHN0b3JlcyB0aGUga21zZyBwYW5pYyBhbmQgb29wcyBsb2dzIHRvDQo+ PiA+PiA+PiBhIHVzZXIgc3BlY2lmaWVkIE1NQyBkZXZpY2UuDQo+PiA+PiA+Pg0KPj4gPj4gPj4g SXQgY29sbGVjdHMgdGhlIGRldGFpbHMgYWJvdXQgdGhlIGhvc3QgTU1DIGRldmljZSB0aHJvdWdo DQo+PiA+PiA+PiBwc3RvcmUvYmxrICJibGtkZXYiIHBhcmFtZXRlci4gVGhlIHVzZXIgY2FuIHNw ZWNpZnkgdGhlIE1NQw0KPj4gPj4gPj4gZGV2aWNlIGluIG1hbnkgd2F5cyBieSBjaGVja2luZyBp biBEb2N1bWVudGF0aW9uL2FkbWluLQ0KPmd1aWRlL3BzdG9yZS1ibGsucnN0Lg0KPj4gPj4gPj4N Cj4+ID4+ID4+IFRoZSBpbmRpdmlkdWFsIG1tYyBob3N0IGRyaXZlcnMgaGF2ZSB0byBkZWZpbmUg c3VpdGFibGUgcG9sbGluZw0KPj4gPj4gPj4gYW5kIGNsZWFudXAgc3Vicm91dGluZXMgdG8gd3Jp dGUga21zZyBwYW5pYy9vb3BzIGxvZ3MgdGhyb3VnaA0KPm1tY3BzdG9yZS4NCj4+ID4+ID4+IFRo ZXNlIG5ldyBob3N0IG9wZXJhdGlvbnMgYXJlIG5lZWRlZCBhcyBwc3RvcmUgcGFuaWMgd3JpdGUg cnVucw0KPj4gPj4gPj4gd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkLg0KPj4gPj4gPg0KPj4gPj4g Pk9rYXksIGxldCBtZSBhZ2FpbiB0cnkgdG8gY2xhcmlmeSBvbiBob3cgSSBzZWUgdGhpcyB0byBt b3ZlIHRoaXMgZm9yd2FyZC4NCj4+ID4+ID4NCj4+ID4+ID4xKQ0KPj4gPj4gPkluIG15IG9waW5p b24sIHBzdG9yZSBzaG91bGRuJ3QgYmUgdXNpbmcgY2FsbGJhY2tzIGZvciAqcmVndWxhcioNCj4+ ID4+ID5JL08gcmVhZC93cml0ZXMuIEl0J3MgdXBzaWRlLWRvd24gb2YgaG93IHRoZSBzdG9yYWdl IHN0YWNrIGlzIGRlc2lnbmVkDQo+dG8gd29yay4NCj4+ID4+ID4NCj4+ID4+ID5JbnN0ZWFkLCBw c3RvcmUgc2hvdWxkIGJlIGltcGxlbWVudGVkIGFzIGEgcmVndWxhciBmaWxlc3lzdGVtLA0KPj4g Pj4gPnRoYXQgY2FuIGJlIG1vdW50ZWQgb24gdG9wIG9mIGEgcmVndWxhciBibG9jayBkZXZpY2Ug cGFydGl0aW9uLiBJbg0KPj4gPj4gPnRoaXMgd2F5LCB0aGUgbG93ZXIgbGF5ZXIgYmxvY2sgZGV2 aWNlIGRyaXZlcnMgKGFzIG1tYyksIGRvbid0DQo+PiA+PiA+bmVlZCBzcGVjaWFsIHN1cHBvcnQg Zm9yIHBzdG9yZSwgdGhlIHJlZ3VsYXIgSS9PIGJsb2NrIHJlYWQvd3JpdGUNCj4+ID4+ID5wYXRo IHdpbGwganVzdA0KPj4gPndvcmsgYXMgaXMuDQo+PiA+PiA+DQo+PiA+PiA+MikNCj4+ID4+ID5X aGVuIGl0IGNvbWVzIHRvIHN1cHBvcnRpbmcgKnBhbmljKiB3cml0ZXMgZm9yIHBzdG9yZSwgdGhp bmdzDQo+PiA+PiA+YmVjb21lIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQuIEZvciBzdXJlIHNvbWUg YWRhcHRhdGlvbnMgYXJlDQo+PiA+PiA+bmVlZGVkIGluIGVhY2ggYmxvY2sgZGV2aWNlIGRyaXZl ciB0byBzdXBwb3J0IHRoaXMuDQo+PiA+PiA+DQo+PiA+PiA+SG93ZXZlciwgdGhlIGN1cnJlbnQg bWV0aG9kIG1lYW5zIHJlbHlpbmcgb24gdGhlIGxvd2VyIGxldmVsIGJsb2NrDQo+PiA+PiA+ZGV2 aWNlIGRyaXZlciB0byBmaWd1cmUgb3V0IHRoZSBwc3RvcmUgcGFydGl0aW9uLiBCYXNlZCBvbiB0 aGF0LA0KPj4gPj4gPml0IHNob3VsZCB0aGVuIHJlZ2lzdGVyIGl0c2VsZiBmb3IgcHN0b3JlIHN1 cHBvcnQgYW5kIGhvb2sgdXANCj4+ID4+ID5jYWxsYmFja3MgZm9yIHRoZSBjb3JyZXNwb25kaW5n IGJsb2NrIGRldmljZSBkcml2ZXIgaW5zdGFuY2UsIGF0DQo+PiA+PiA+bGVhc3QgdGhhdCBpcyB3 aGF0IGl0IGxvb2tzIGxpa2UgdG8gbWUuIEFnYWluLCBJIHRoaW5rIHRoaXMgaXMNCj4+ID4+ID51 cHNpZGUtZG93biBmcm9tIHRoZSBzdG9yYWdlIHN0YWNrIHBlcnNwZWN0aXZlLiBUaGUgcGFydGl0 aW9uIHRvDQo+PiA+PiA+dXNlIGZvciBwc3RvcmUsIHNob3VsZCBiZSBiYXNlZA0KPj4gPnVwb24g aXRzIGZpbGUgc3lzdGVtIG1vdW50IHBvaW50Lg0KPj4gPj4gPg0KPj4gPj4gPkZ1cnRoZXJtb3Jl LCBJIHRoaW5rIHRoZSByZXNwb25zaWJpbGl0eSBmb3IgbG93ZXIgbGF5ZXIgYmxvY2sNCj4+ID4+ ID5kZXZpY2UgZHJpdmVycyBzaG91bGQgaW5zdGVhZCBiZSB0byBqdXN0ICJyZWdpc3Rlci9hbm5v dW5jZSINCj4+ID4+ID50aGVtc2VsdmVzIGFzIGNhcGFibGUgb2Ygc3VwcG9ydGluZyAicGFuaWMg d3JpdGVzIiwgaWYgdGhleSBjYW4uDQo+PiA+PiA+RXhhY3RseSBob3cgdG8gYmVzdCBkbyB0aGlz LCBwcm9iYWJseSBuZWVkcyB0byBiZSBkaXNjdXNzZWQNCj4+ID4+ID5mdXJ0aGVyIHdpdGggdGhl IGJsb2NrIGRldmljZSBwZW9wbGUsIEkgdGhpbmsuIEkgaGF2ZSBsb29wZWQgaW4NCj4+ID4+ID5K ZW5zIGFuZCBDaHJpc3RvcGgsIHBlcmhhcHMgdGhleQ0KPj4gPmNhbiBzaGFyZSB0aGVpciBvcGlu aW9uIGluIHRoaXMuDQo+PiA+PiA+DQo+PiA+PiA+VGhhdCBzYWlkLCBpdCBsb29rcyB0byBtZSB0 aGF0IHBzdG9yZSBuZWVkcyBtb3JlIHdvcmsgYmVmb3JlIGl0J3MNCj4+ID4+ID5yZWFkeSB0byBi ZSBhZG9wdGVkIGZvciBnZW5lcmljIHN1cHBvcnQgaW4gYmxvY2sgZGV2aWNlIGRyaXZlcnMuDQo+ PiA+PiA+DQo+PiA+PiA+S2luZCByZWdhcmRzDQo+PiA+PiA+VWZmZQ0KPj4gPj4gPg0KPj4gPj4g Pj4NCj4+ID4+ID4+IFNpZ25lZC1vZmYtYnk6IEJoYXNrYXJhIEJ1ZGlyZWRsYSA8YmJ1ZGlyZWRs YUBtYXJ2ZWxsLmNvbT4NCj4+ID4+ID4+IC0tLQ0KPj4gPj4gPj4gIGRyaXZlcnMvbW1jL2NvcmUv S2NvbmZpZyAgICAgfCAgMTQgKystDQo+PiA+PiA+PiAgZHJpdmVycy9tbWMvY29yZS9NYWtlZmls ZSAgICB8ICAgMSArDQo+PiA+PiA+PiAgZHJpdmVycy9tbWMvY29yZS9ibG9jay5jICAgICB8ICAx OSArKysNCj4+ID4+ID4+ICBkcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmggICAgIHwgICA5ICsrDQo+ PiA+PiA+PiAgZHJpdmVycy9tbWMvY29yZS9jb3JlLmMgICAgICB8ICA0NCArKysrKysrDQo+PiA+ PiA+PiAgZHJpdmVycy9tbWMvY29yZS9tbWNwc3RvcmUuYyB8IDIyNw0KPj4gPj4gPisrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiA+PiA+PiAgaW5jbHVkZS9saW51eC9tbWMv Y29yZS5oICAgICB8ICAgNSArDQo+PiA+PiA+PiAgaW5jbHVkZS9saW51eC9tbWMvaG9zdC5oICAg ICB8ICAxMiArKw0KPj4gPj4gPj4gIDggZmlsZXMgY2hhbmdlZCwgMzMwIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkgIGNyZWF0ZSBtb2RlDQo+PiA+PiA+PiAxMDA2NDQgZHJpdmVycy9tbWMv Y29yZS9tbWNwc3RvcmUuYw0KPj4gPj4gPj4NCj4+ID4+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L21tYy9jb3JlL0tjb25maWcgYi9kcml2ZXJzL21tYy9jb3JlL0tjb25maWcNCj4+ID4+ID4+IGlu ZGV4DQo+PiA+PiA+PiBjMTJmZTEzZTRiMTQuLjRjNjUxZGE0ZjJkMiAxMDA2NDQNCj4+ID4+ID4+ IC0tLSBhL2RyaXZlcnMvbW1jL2NvcmUvS2NvbmZpZw0KPj4gPj4gPj4gKysrIGIvZHJpdmVycy9t bWMvY29yZS9LY29uZmlnDQo+PiA+PiA+PiBAQCAtMzQsOSArMzQsMjIgQEAgY29uZmlnIFBXUlNF UV9TSU1QTEUNCj4+ID4+ID4+ICAgICAgICAgICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWls dCBhcyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUNCj4+ID4+ID4+ICAgICAgICAgICB3aWxs IGJlIGNhbGxlZCBwd3JzZXFfc2ltcGxlLg0KPj4gPj4gPj4NCj4+ID4+ID4+ICtjb25maWcgTU1D X1BTVE9SRV9CQUNLRU5EDQo+PiA+PiA+PiArICAgICAgIGJvb2wgIkxvZyBwYW5pYy9vb3BzIHRv IGEgTU1DIGJ1ZmZlciINCj4+ID4+ID4+ICsgICAgICAgZGVwZW5kcyBvbiBNTUNfQkxPQ0sNCj4+ ID4+ID4+ICsgICAgICAgaGVscA0KPj4gPj4gPj4gKyAgICAgICAgIFRoaXMgb3B0aW9uIHdpbGwg bGV0IHlvdSBjcmVhdGUgcGxhdGZvcm0gYmFja2VuZCB0byBzdG9yZSBrbXNnDQo+PiA+PiA+PiAr ICAgICAgICAgY3Jhc2ggZHVtcHMgdG8gYSB1c2VyIHNwZWNpZmllZCBNTUMgZGV2aWNlLiBUaGlz IGlzIHByaW1hcmlseQ0KPj4gPj4gPj4gKyAgICAgICAgIGJhc2VkIG9uIHBzdG9yZS9ibGsuDQo+ PiA+PiA+PiArDQo+PiA+PiA+PiArY29uZmlnIE1NQ19QU1RPUkUNCj4+ID4+ID4+ICsgICAgICAg dHJpc3RhdGUNCj4+ID4+ID4+ICsgICAgICAgc2VsZWN0IFBTVE9SRV9CTEsNCj4+ID4+ID4+ICsN Cj4+ID4+ID4+ICBjb25maWcgTU1DX0JMT0NLDQo+PiA+PiA+PiAgICAgICAgIHRyaXN0YXRlICJN TUMgYmxvY2sgZGV2aWNlIGRyaXZlciINCj4+ID4+ID4+ICAgICAgICAgZGVwZW5kcyBvbiBCTE9D Sw0KPj4gPj4gPj4gKyAgICAgICBzZWxlY3QgTU1DX1BTVE9SRSBpZiBNTUNfUFNUT1JFX0JBQ0tF TkQ9eQ0KPj4gPj4gPj4gICAgICAgICBkZWZhdWx0IHkNCj4+ID4+ID4+ICAgICAgICAgaGVscA0K Pj4gPj4gPj4gICAgICAgICAgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBNTUMgYmxvY2sgZGV2 aWNlIGRyaXZlciBzdXBwb3J0Lg0KPj4gPj4gPj4gQEAgLTgwLDQgKzkzLDMgQEAgY29uZmlnIE1N Q19URVNUDQo+PiA+PiA+Pg0KPj4gPj4gPj4gICAgICAgICAgIFRoaXMgZHJpdmVyIGlzIG9ubHkg b2YgaW50ZXJlc3QgdG8gdGhvc2UgZGV2ZWxvcGluZyBvcg0KPj4gPj4gPj4gICAgICAgICAgIHRl c3RpbmcgYSBob3N0IGRyaXZlci4gTW9zdCBwZW9wbGUgc2hvdWxkIHNheSBOIGhlcmUuDQo+PiA+ PiA+PiAtDQo+PiA+PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9NYWtlZmlsZQ0K Pj4gPj4gPj4gYi9kcml2ZXJzL21tYy9jb3JlL01ha2VmaWxlIGluZGV4IDk1ZmZlMDA4ZWJkZi4u N2NiOWEzYWY0ODI3DQo+PiA+PiA+PiAxMDA2NDQNCj4+ID4+ID4+IC0tLSBhL2RyaXZlcnMvbW1j L2NvcmUvTWFrZWZpbGUNCj4+ID4+ID4+ICsrKyBiL2RyaXZlcnMvbW1jL2NvcmUvTWFrZWZpbGUN Cj4+ID4+ID4+IEBAIC0xNiw1ICsxNiw2IEBAIG9iai0kKENPTkZJR19QV1JTRVFfRU1NQykgICAg ICs9DQo+PiA+cHdyc2VxX2VtbWMubw0KPj4gPj4gPj4gIG1tY19jb3JlLSQoQ09ORklHX0RFQlVH X0ZTKSAgICArPSBkZWJ1Z2ZzLm8NCj4+ID4+ID4+ICBvYmotJChDT05GSUdfTU1DX0JMT0NLKSAg ICAgICAgICAgICAgICArPSBtbWNfYmxvY2subw0KPj4gPj4gPj4gIG1tY19ibG9jay1vYmpzICAg ICAgICAgICAgICAgICA6PSBibG9jay5vIHF1ZXVlLm8NCj4+ID4+ID4+ICttbWNfYmxvY2stJChD T05GSUdfTU1DX1BTVE9SRSkgKz0gbW1jcHN0b3JlLm8NCj4+ID4+ID4+ICBvYmotJChDT05GSUdf TU1DX1RFU1QpICAgICAgICAgKz0gbW1jX3Rlc3Qubw0KPj4gPj4gPj4gIG9iai0kKENPTkZJR19T RElPX1VBUlQpICAgICAgICAgICAgICAgICs9IHNkaW9fdWFydC5vDQo+PiA+PiA+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5j DQo+PiA+PiA+PiBpbmRleA0KPj4gPj4gPj4gNDJlMjdhMjk4MjE4Li42NTkyNzIyY2Q3YjIgMTAw NjQ0DQo+PiA+PiA+PiAtLS0gYS9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMNCj4+ID4+ID4+ICsr KyBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suYw0KPj4gPj4gPj4gQEAgLTI4NzAsNiArMjg3MCwy MSBAQCBzdGF0aWMgdm9pZA0KPm1tY19ibGtfcmVtb3ZlX2RlYnVnZnMoc3RydWN0DQo+PiA+PiA+ PiBtbWNfY2FyZCAqY2FyZCwNCj4+ID4+ID4+DQo+PiA+PiA+PiAgI2VuZGlmIC8qIENPTkZJR19E RUJVR19GUyAqLw0KPj4gPj4gPj4NCj4+ID4+ID4+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfTU1D X1BTVE9SRSkgc2VjdG9yX3QNCj4+ID4+ID4+ICttbWNfYmxrX2dldF9wYXJ0KHN0cnVjdCBtbWNf Y2FyZCAqY2FyZCwgaW50IHBhcnRfbnVtLCBzZWN0b3JfdA0KPj4gPj4gPj4gKypzaXplKSB7DQo+ PiA+PiA+PiArICAgICAgIHN0cnVjdCBtbWNfYmxrX2RhdGEgKm1kID0gZGV2X2dldF9kcnZkYXRh KCZjYXJkLT5kZXYpOw0KPj4gPj4gPj4gKyAgICAgICBzdHJ1Y3QgZ2VuZGlzayAqZGlzayA9IG1k LT5kaXNrOw0KPj4gPj4gPj4gKyAgICAgICBzdHJ1Y3QgZGlza19wYXJ0X3RibCAqcGFydF90Ymwg PSBkaXNrLT5wYXJ0X3RibDsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgaWYgKHBhcnRf bnVtIDwgMCB8fCBwYXJ0X251bSA+PSBwYXJ0X3RibC0+bGVuKQ0KPj4gPj4gPj4gKyAgICAgICAg ICAgICAgIHJldHVybiAwOw0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gKyAgICAgICAqc2l6ZSA9IHBh cnRfdGJsLT5wYXJ0W3BhcnRfbnVtXS0+bnJfc2VjdHMgPDwgU0VDVE9SX1NISUZUOw0KPj4gPj4g Pj4gKyAgICAgICByZXR1cm4gcGFydF90YmwtPnBhcnRbcGFydF9udW1dLT5zdGFydF9zZWN0Ow0K Pj4gPj4gPj4gK30NCj4+ID4+ID4+ICsjZW5kaWYNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICBzdGF0 aWMgaW50IG1tY19ibGtfcHJvYmUoc3RydWN0IG1tY19jYXJkICpjYXJkKSAgew0KPj4gPj4gPj4g ICAgICAgICBzdHJ1Y3QgbW1jX2Jsa19kYXRhICptZCwgKnBhcnRfbWQ7IEBAIC0yOTEzLDYgKzI5 MjgsOSBAQA0KPj4gPj4gPj4gc3RhdGljIGludCBtbWNfYmxrX3Byb2JlKHN0cnVjdCBtbWNfY2Fy ZCAqY2FyZCkNCj4+ID4+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4g Pj4gPj4gICAgICAgICB9DQo+PiA+PiA+Pg0KPj4gPj4gPj4gKyAgICAgICBpZiAobW1jX2NhcmRf bW1jKGNhcmQpIHx8IG1tY19jYXJkX3NkKGNhcmQpKQ0KPj4gPj4gPj4gKyAgICAgICAgICAgICAg IG1tY3BzdG9yZV9jYXJkX3NldChjYXJkLCBtZC0+ZGlzay0+ZGlza19uYW1lKTsNCj4+ID4+ID4+ ICsNCj4+ID4+ID4+ICAgICAgICAgLyogQWRkIHR3byBkZWJ1Z2ZzIGVudHJpZXMgKi8NCj4+ID4+ ID4+ICAgICAgICAgbW1jX2Jsa19hZGRfZGVidWdmcyhjYXJkLCBtZCk7DQo+PiA+PiA+Pg0KPj4g Pj4gPj4gQEAgLTMwNjAsNiArMzA3OCw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBtbWNfYmxrX2V4 aXQodm9pZCkNCj4+ID4+ID4+ICAgICAgICAgdW5yZWdpc3Rlcl9ibGtkZXYoTU1DX0JMT0NLX01B Sk9SLCAibW1jIik7DQo+PiA+PiA+PiAgICAgICAgIHVucmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbiht bWNfcnBtYl9kZXZ0LCBNQVhfREVWSUNFUyk7DQo+PiA+PiA+PiAgICAgICAgIGJ1c191bnJlZ2lz dGVyKCZtbWNfcnBtYl9idXNfdHlwZSk7DQo+PiA+PiA+PiArICAgICAgIHVucmVnaXN0ZXJfbW1j cHN0b3JlKCk7DQo+PiA+PiA+PiAgfQ0KPj4gPj4gPj4NCj4+ID4+ID4+ICBtb2R1bGVfaW5pdCht bWNfYmxrX2luaXQpOw0KPj4gPj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2NvcmUvYmxv Y2suaCBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suaA0KPj4gPj4gPj4gaW5kZXgNCj4+ID4+ID4+ IDMxMTUzZjY1NmY0MS4uMmE0ZWU1NTY4MTk0IDEwMDY0NA0KPj4gPj4gPj4gLS0tIGEvZHJpdmVy cy9tbWMvY29yZS9ibG9jay5oDQo+PiA+PiA+PiArKysgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2Nr LmgNCj4+ID4+ID4+IEBAIC0xNiw1ICsxNiwxNCBAQCB2b2lkIG1tY19ibGtfbXFfcmVjb3Zlcnko c3RydWN0IG1tY19xdWV1ZQ0KPj4gPj4gPiptcSk7DQo+PiA+PiA+PiBzdHJ1Y3Qgd29ya19zdHJ1 Y3Q7DQo+PiA+PiA+Pg0KPj4gPj4gPj4gIHZvaWQgbW1jX2Jsa19tcV9jb21wbGV0ZV93b3JrKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7DQo+PiA+PiA+PiArI2lmIElTX0VOQUJMRUQoQ09ORklH X01NQ19QU1RPUkUpIHNlY3Rvcl90DQo+PiA+PiA+PiArbW1jX2Jsa19nZXRfcGFydChzdHJ1Y3Qg bW1jX2NhcmQgKmNhcmQsIGludCBwYXJ0X251bSwgc2VjdG9yX3QNCj4+ID4+ID4+ICsqc2l6ZSk7 IHZvaWQgbW1jcHN0b3JlX2NhcmRfc2V0KHN0cnVjdCBtbWNfY2FyZCAqY2FyZCwgY29uc3QNCj4+ ID4+ID4+ICtjaGFyICpkaXNrX25hbWUpOyB2b2lkIHVucmVnaXN0ZXJfbW1jcHN0b3JlKHZvaWQp OyAjZWxzZSBzdGF0aWMNCj4+ID4+ID4+ICtpbmxpbmUgdm9pZCBtbWNwc3RvcmVfY2FyZF9zZXQo c3RydWN0IG1tY19jYXJkICpjYXJkLA0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRpc2tfbmFtZSkNCj4+ID4+ID4+ICt7fSBzdGF0 aWMgaW5saW5lIHZvaWQgdW5yZWdpc3Rlcl9tbWNwc3RvcmUodm9pZCkge30gI2VuZGlmDQo+PiA+ PiA+Pg0KPj4gPj4gPj4gICNlbmRpZg0KPj4gPj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1j L2NvcmUvY29yZS5jIGIvZHJpdmVycy9tbWMvY29yZS9jb3JlLmMNCj4+ID4+ID4+IGluZGV4IDE5 ZjFlZTU3ZmIzNC4uN2FkN2ZmMWNhYjhjIDEwMDY0NA0KPj4gPj4gPj4gLS0tIGEvZHJpdmVycy9t bWMvY29yZS9jb3JlLmMNCj4+ID4+ID4+ICsrKyBiL2RyaXZlcnMvbW1jL2NvcmUvY29yZS5jDQo+ PiA+PiA+PiBAQCAtNTY5LDYgKzU2OSwzMCBAQCBpbnQgbW1jX2NxZV9yZWNvdmVyeShzdHJ1Y3Qg bW1jX2hvc3QNCj4qaG9zdCkNCj4+ID59DQo+PiA+PiA+PiBFWFBPUlRfU1lNQk9MKG1tY19jcWVf cmVjb3ZlcnkpOw0KPj4gPj4gPj4NCj4+ID4+ID4+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfTU1D X1BTVE9SRSkNCj4+ID4+ID4+ICsvKioNCj4+ID4+ID4+ICsgKiAgICAgbW1jX3dhaXRfZm9yX3Bz dG9yZV9yZXEgLSBpbml0aWF0ZSBhIGJsb2NraW5nIG1tYyByZXF1ZXN0DQo+PiA+PiA+PiArICog ICAgIEBob3N0OiBNTUMgaG9zdCB0byBzdGFydCBjb21tYW5kDQo+PiA+PiA+PiArICogICAgIEBt cnE6IE1NQyByZXF1ZXN0IHRvIHN0YXJ0DQo+PiA+PiA+PiArICoNCj4+ID4+ID4+ICsgKiAgICAg U3RhcnQgYSBibG9ja2luZyBNTUMgcmVxdWVzdCBmb3IgYSBob3N0IGFuZCB3YWl0IGZvciB0aGUg cmVxdWVzdA0KPj4gPj4gPj4gKyAqICAgICB0byBjb21wbGV0ZSB0aGF0IGlzIGJhc2VkIG9uIHBv bGxpbmcgYW5kIHRpbWVvdXQuDQo+PiA+PiA+PiArICovDQo+PiA+PiA+PiArdm9pZCBtbWNfd2Fp dF9mb3JfcHN0b3JlX3JlcShzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QsIHN0cnVjdA0KPj4gPj4gPj4g K21tY19yZXF1ZXN0ICptcnEpIHsNCj4+ID4+ID4+ICsgICAgICAgdW5zaWduZWQgaW50IHRpbWVv dXQ7DQo+PiA+PiA+PiArDQo+PiA+PiA+PiArICAgICAgIGhvc3QtPm9wcy0+cmVxX2NsZWFudXBf cGVuZGluZyhob3N0KTsNCj4+ID4+ID4+ICsgICAgICAgbW1jX3N0YXJ0X3JlcXVlc3QoaG9zdCwg bXJxKTsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgaWYgKG1ycS0+ZGF0YSkgew0KPj4g Pj4gPj4gKyAgICAgICAgICAgICAgIHRpbWVvdXQgPSBtcnEtPmRhdGEtPnRpbWVvdXRfbnMgLyBO U0VDX1BFUl9NU0VDOw0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIGhvc3QtPm9wcy0+cmVxX2Nv bXBsZXRpb25fcG9sbChob3N0LCB0aW1lb3V0KTsNCj4+ID4+ID4+ICsgICAgICAgfQ0KPj4gPj4g Pj4gK30NCj4+ID4+ID4+ICtFWFBPUlRfU1lNQk9MKG1tY193YWl0X2Zvcl9wc3RvcmVfcmVxKTsN Cj4+ID4+ID4+ICsjZW5kaWYNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICAvKioNCj4+ID4+ID4+ICAg KiAgICAgbW1jX2lzX3JlcV9kb25lIC0gRGV0ZXJtaW5lIGlmIGEgJ2NhcF9jbWRfZHVyaW5nX3Rm cicgcmVxdWVzdA0KPmlzDQo+PiA+PiA+ZG9uZQ0KPj4gPj4gPj4gICAqICAgICBAaG9zdDogTU1D IGhvc3QNCj4+ID4+ID4+IEBAIC04MTcsNiArODQxLDI2IEBAIGludCBfX21tY19jbGFpbV9ob3N0 KHN0cnVjdCBtbWNfaG9zdA0KPipob3N0LA0KPj4gPj4gPj4gc3RydWN0IG1tY19jdHggKmN0eCwg IH0gIEVYUE9SVF9TWU1CT0woX19tbWNfY2xhaW1faG9zdCk7DQo+PiA+PiA+Pg0KPj4gPj4gPj4g KyNpZiBJU19FTkFCTEVEKENPTkZJR19NTUNfUFNUT1JFKQ0KPj4gPj4gPj4gKy8qKg0KPj4gPj4g Pj4gKyAqICAgICBtbWNfY2xhaW1faG9zdF9hc3luYyAtIGNsYWltIGhvc3QgaW4gYXRvbWljIGNv bnRleHQNCj4+ID4+ID4+ICsgKiAgICAgQGhvc3Q6IG1tYyBob3N0IHRvIGNsYWltDQo+PiA+PiA+ PiArICoNCj4+ID4+ID4+ICsgKiAgICAgVGhpcyByb3V0aW5lIG1heSBiZSBjYWxsZWQgaW4gcGFu aWMvb29wcyBzY2VuYXJpb3MuDQo+PiA+PiA+PiArICogICAgIFJldHVybiB6ZXJvIHdpdGggaG9z dCBjbGFpbSBzdWNjZXNzLCBlbHNlIGJ1c3kgc3RhdHVzLg0KPj4gPj4gPj4gKyAqLw0KPj4gPj4g Pj4gK2ludCBtbWNfY2xhaW1faG9zdF9hc3luYyhzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpIHsNCj4+ ID4+ID4+ICsgICAgICAgaWYgKCFob3N0LT5jbGFpbWVkICYmIHBtX3J1bnRpbWVfYWN0aXZlKG1t Y19kZXYoaG9zdCkpKSB7DQo+PiA+PiA+PiArICAgICAgICAgICAgICAgaG9zdC0+Y2xhaW1lZCA9 IDE7DQo+PiA+PiA+PiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiA+PiA+PiArICAgICAg IH0NCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgcmV0dXJuIC1FQlVTWTsNCj4+ID4+ID4+ ICt9DQo+PiA+PiA+PiArRVhQT1JUX1NZTUJPTChtbWNfY2xhaW1faG9zdF9hc3luYyk7DQo+PiA+ PiA+PiArI2VuZGlmDQo+PiA+PiA+PiArDQo+PiA+PiA+PiAgLyoqDQo+PiA+PiA+PiAgICogICAg IG1tY19yZWxlYXNlX2hvc3QgLSByZWxlYXNlIGEgaG9zdA0KPj4gPj4gPj4gICAqICAgICBAaG9z dDogbW1jIGhvc3QgdG8gcmVsZWFzZQ0KPj4gPj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1j L2NvcmUvbW1jcHN0b3JlLmMNCj4+ID4+ID4+IGIvZHJpdmVycy9tbWMvY29yZS9tbWNwc3RvcmUu YyBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPj4gPj4gPj4gMDAwMDAwMDAwMDAwLi5mNzgz ZWEyMTVmMTgNCj4+ID4+ID4+IC0tLSAvZGV2L251bGwNCj4+ID4+ID4+ICsrKyBiL2RyaXZlcnMv bW1jL2NvcmUvbW1jcHN0b3JlLmMNCj4+ID4+ID4+IEBAIC0wLDAgKzEsMjI3IEBADQo+PiA+PiA+ PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4+ID4+ID4+ICsvKg0KPj4g Pj4gPj4gKyAqIE1NQyBwc3RvcmUgc3VwcG9ydCBiYXNlZCBvbiBwc3RvcmUvYmxrDQo+PiA+PiA+ PiArICoNCj4+ID4+ID4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjAgTWFydmVsbC4NCj4+ID4+ID4+ ICsgKiBBdXRob3I6IEJoYXNrYXJhIEJ1ZGlyZWRsYSA8YmJ1ZGlyZWRsYUBtYXJ2ZWxsLmNvbT4g ICovDQo+PiA+PiA+PiArDQo+PiA+PiA+PiArI2RlZmluZSBwcl9mbXQoZm10KSAibW1jcHN0b3Jl OiAiIGZtdA0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4N Cj4+ID4+ID4+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+PiA+PiA+PiArI2luY2x1ZGUg PGxpbnV4L3BzdG9yZV9ibGsuaD4NCj4+ID4+ID4+ICsjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+ DQo+PiA+PiA+PiArI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQo+PiA+PiA+PiArI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4NCj4+ID4+ID4+ICsjaW5jbHVkZSA8bGludXgvbW1jL21tYy5oPg0KPj4g Pj4gPj4gKyNpbmNsdWRlIDxsaW51eC9tbWMvaG9zdC5oPg0KPj4gPj4gPj4gKyNpbmNsdWRlIDxs aW51eC9tbWMvY2FyZC5oPg0KPj4gPj4gPj4gKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5o Pg0KPj4gPj4gPj4gKyNpbmNsdWRlICJibG9jay5oIg0KPj4gPj4gPj4gKyNpbmNsdWRlICJjYXJk LmgiDQo+PiA+PiA+PiArI2luY2x1ZGUgImNvcmUuaCINCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICtz dGF0aWMgc3RydWN0IG1tY3BzdG9yZV9jb250ZXh0IHsNCj4+ID4+ID4+ICsgICAgICAgY2hhciBk ZXZfbmFtZVtCREVWTkFNRV9TSVpFXTsNCj4+ID4+ID4+ICsgICAgICAgaW50IHBhcnRubzsNCj4+ ID4+ID4+ICsgICAgICAgc2VjdG9yX3Qgc3RhcnRfc2VjdDsNCj4+ID4+ID4+ICsgICAgICAgc2Vj dG9yX3Qgc2l6ZTsNCj4+ID4+ID4+ICsgICAgICAgc3RydWN0IHBzdG9yZV9ibGtfY29uZmlnIGNv bmY7DQo+PiA+PiA+PiArICAgICAgIHN0cnVjdCBwc3RvcmVfYmxrX2luZm8gaW5mbzsNCj4+ID4+ ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgc3RydWN0IG1tY19jYXJkICpjYXJkOw0KPj4gPj4gPj4g KyAgICAgICBzdHJ1Y3QgbW1jX3JlcXVlc3QgKm1ycTsgfSBvb3BzX2N4dDsNCj4+ID4+ID4+ICsN Cj4+ID4+ID4+ICtzdGF0aWMgdm9pZCBtbWNfcHJlcF9yZXEoc3RydWN0IG1tY19yZXF1ZXN0ICpt cnEsDQo+PiA+PiA+PiArICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNlY3Rfb2Zmc2V0LCB1 bnNpZ25lZCBpbnQgbnNlY3RzLA0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBzY2F0 dGVybGlzdCAqc2csIHUzMiBvcGNvZGUsIHVuc2lnbmVkIGludA0KPj4gPj4gPj4gK2ZsYWdzKSB7 DQo+PiA+PiA+PiArICAgICAgIG1ycS0+Y21kLT5vcGNvZGUgPSBvcGNvZGU7DQo+PiA+PiA+PiAr ICAgICAgIG1ycS0+Y21kLT5hcmcgPSBzZWN0X29mZnNldDsNCj4+ID4+ID4+ICsgICAgICAgbXJx LT5jbWQtPmZsYWdzID0gTU1DX1JTUF9SMSB8IE1NQ19DTURfQURUQzsNCj4+ID4+ID4+ICsNCj4+ ID4+ID4+ICsgICAgICAgaWYgKG5zZWN0cyA9PSAxKSB7DQo+PiA+PiA+PiArICAgICAgICAgICAg ICAgbXJxLT5zdG9wID0gTlVMTDsNCj4+ID4+ID4+ICsgICAgICAgfSBlbHNlIHsNCj4+ID4+ID4+ ICsgICAgICAgICAgICAgICBtcnEtPnN0b3AtPm9wY29kZSA9IE1NQ19TVE9QX1RSQU5TTUlTU0lP TjsNCj4+ID4+ID4+ICsgICAgICAgICAgICAgICBtcnEtPnN0b3AtPmFyZyA9IDA7DQo+PiA+PiA+ PiArICAgICAgICAgICAgICAgbXJxLT5zdG9wLT5mbGFncyA9IE1NQ19SU1BfUjFCIHwgTU1DX0NN RF9BQzsNCj4+ID4+ID4+ICsgICAgICAgfQ0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gKyAgICAgICBt cnEtPmRhdGEtPmJsa3N6ID0gU0VDVE9SX1NJWkU7DQo+PiA+PiA+PiArICAgICAgIG1ycS0+ZGF0 YS0+YmxvY2tzID0gbnNlY3RzOw0KPj4gPj4gPj4gKyAgICAgICBtcnEtPmRhdGEtPmZsYWdzID0g ZmxhZ3M7DQo+PiA+PiA+PiArICAgICAgIG1ycS0+ZGF0YS0+c2cgPSBzZzsNCj4+ID4+ID4+ICsg ICAgICAgbXJxLT5kYXRhLT5zZ19sZW4gPSAxOw0KPj4gPj4gPj4gK30NCj4+ID4+ID4+ICsNCj4+ ID4+ID4+ICtzdGF0aWMgaW50IG1tY3BzdG9yZV9wYW5pY193cml0ZV9yZXEoY29uc3QgY2hhciAq YnVmLA0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuc2VjdHMsIHVuc2ln bmVkIGludCBzZWN0X29mZnNldCkgew0KPj4gPj4gPj4gKyAgICAgICBzdHJ1Y3QgbW1jcHN0b3Jl X2NvbnRleHQgKmN4dCA9ICZvb3BzX2N4dDsNCj4+ID4+ID4+ICsgICAgICAgc3RydWN0IG1tY19y ZXF1ZXN0ICptcnEgPSBjeHQtPm1ycTsNCj4+ID4+ID4+ICsgICAgICAgc3RydWN0IG1tY19jYXJk ICpjYXJkID0gY3h0LT5jYXJkOw0KPj4gPj4gPj4gKyAgICAgICBzdHJ1Y3QgbW1jX2hvc3QgKmhv c3QgPSBjYXJkLT5ob3N0Ow0KPj4gPj4gPj4gKyAgICAgICBzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7 DQo+PiA+PiA+PiArICAgICAgIHUzMiBvcGNvZGU7DQo+PiA+PiA+PiArICAgICAgIGludCByZXQ7 DQo+PiA+PiA+PiArDQo+PiA+PiA+PiArICAgICAgIG9wY29kZSA9IChuc2VjdHMgPiAxKSA/IE1N Q19XUklURV9NVUxUSVBMRV9CTE9DSyA6DQo+PiA+PiA+TU1DX1dSSVRFX0JMT0NLOw0KPj4gPj4g Pj4gKyAgICAgICBtbWNfcHJlcF9yZXEobXJxLCBzZWN0X29mZnNldCwgbnNlY3RzLCAmc2csIG9w Y29kZSwNCj4+ID4+ID5NTUNfREFUQV9XUklURSk7DQo+PiA+PiA+PiArICAgICAgIHNnX2luaXRf b25lKCZzZywgYnVmLCAobnNlY3RzIDw8IFNFQ1RPUl9TSElGVCkpOw0KPj4gPj4gPj4gKyAgICAg ICBtbWNfc2V0X2RhdGFfdGltZW91dChtcnEtPmRhdGEsIGN4dC0+Y2FyZCk7DQo+PiA+PiA+PiAr DQo+PiA+PiA+PiArICAgICAgIHJldCA9IG1tY19jbGFpbV9ob3N0X2FzeW5jKGhvc3QpOw0KPj4g Pj4gPj4gKyAgICAgICBpZiAocmV0KQ0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybiBy ZXQ7DQo+PiA+PiA+PiArDQo+PiA+PiA+PiArICAgICAgIG1tY193YWl0X2Zvcl9wc3RvcmVfcmVx KGhvc3QsIG1ycSk7DQo+PiA+PiA+PiArICAgICAgIHJldHVybiAwOw0KPj4gPj4gPj4gK30NCj4+ ID4+ID4+ICsNCj4+ID4+ID4+ICtzdGF0aWMgaW50IG1tY3BzdG9yZV9wYW5pY193cml0ZShjb25z dCBjaGFyICpidWYsIHNlY3Rvcl90IG9mZiwNCj4+ID4+ID4+ICtzZWN0b3JfdCBzZWN0cykgew0K Pj4gPj4gPj4gKyAgICAgICBzdHJ1Y3QgbW1jcHN0b3JlX2NvbnRleHQgKmN4dCA9ICZvb3BzX2N4 dDsNCj4+ID4+ID4+ICsgICAgICAgaW50IHJldDsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAg ICAgcmV0ID0gbW1jcHN0b3JlX3BhbmljX3dyaXRlX3JlcShidWYsIHNlY3RzLCBjeHQtPnN0YXJ0 X3NlY3QgKw0KPm9mZik7DQo+PiA+PiA+PiArICAgICAgIGlmIChyZXQpDQo+PiA+PiA+PiArICAg ICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgcmV0 dXJuIDA7DQo+PiA+PiA+PiArfQ0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gK3N0YXRpYyBzdHJ1Y3Qg YmxvY2tfZGV2aWNlICptbWNwc3RvcmVfb3Blbl9iYWNrZW5kKGNvbnN0IGNoYXINCj4+ID4+ID4+ ICsqZGV2aWNlKSB7DQo+PiA+PiA+PiArICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXY7 DQo+PiA+PiA+PiArICAgICAgIGRldl90IGRldnQ7DQo+PiA+PiA+PiArDQo+PiA+PiA+PiArICAg ICAgIGJkZXYgPSBibGtkZXZfZ2V0X2J5X3BhdGgoZGV2aWNlLCBGTU9ERV9SRUFELCBOVUxMKTsN Cj4+ID4+ID4+ICsgICAgICAgaWYgKElTX0VSUihiZGV2KSkgew0KPj4gPj4gPj4gKyAgICAgICAg ICAgICAgIGRldnQgPSBuYW1lX3RvX2Rldl90KGRldmljZSk7DQo+PiA+PiA+PiArICAgICAgICAg ICAgICAgaWYgKGRldnQgPT0gMCkNCj4+ID4+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBFUlJfUFRSKC1FTk9ERVYpOw0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gKyAgICAgICAgICAg ICAgIGJkZXYgPSBibGtkZXZfZ2V0X2J5X2RldihkZXZ0LCBGTU9ERV9SRUFELCBOVUxMKTsNCj4+ ID4+ID4+ICsgICAgICAgICAgICAgICBpZiAoSVNfRVJSKGJkZXYpKQ0KPj4gPj4gPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJkZXY7DQo+PiA+PiA+PiArICAgICAgIH0NCj4+ID4+ ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgcmV0dXJuIGJkZXY7DQo+PiA+PiA+PiArfQ0KPj4gPj4g Pj4gKw0KPj4gPj4gPj4gK3N0YXRpYyB2b2lkIG1tY3BzdG9yZV9jbG9zZV9iYWNrZW5kKHN0cnVj dCBibG9ja19kZXZpY2UgKmJkZXYpIHsNCj4+ID4+ID4+ICsgICAgICAgaWYgKCFiZGV2KQ0KPj4g Pj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4+ID4+ID4+ICsgICAgICAgYmxrZGV2X3B1 dChiZGV2LCBGTU9ERV9SRUFEKTsgfQ0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gK3ZvaWQgbW1jcHN0 b3JlX2NhcmRfc2V0KHN0cnVjdCBtbWNfY2FyZCAqY2FyZCwgY29uc3QgY2hhcg0KPj4gPj4gPj4g KypkaXNrX25hbWUpIHsNCj4+ID4+ID4+ICsgICAgICAgc3RydWN0IG1tY3BzdG9yZV9jb250ZXh0 ICpjeHQgPSAmb29wc19jeHQ7DQo+PiA+PiA+PiArICAgICAgIHN0cnVjdCBwc3RvcmVfYmxrX2Nv bmZpZyAqY29uZiA9ICZjeHQtPmNvbmY7DQo+PiA+PiA+PiArICAgICAgIHN0cnVjdCBwc3RvcmVf YmxrX2luZm8gKmluZm8gPSAmY3h0LT5pbmZvOw0KPj4gPj4gPj4gKyAgICAgICBzdHJ1Y3QgYmxv Y2tfZGV2aWNlICpiZGV2Ow0KPj4gPj4gPj4gKyAgICAgICBzdHJ1Y3QgbW1jX2NvbW1hbmQgKnN0 b3A7DQo+PiA+PiA+PiArICAgICAgIHN0cnVjdCBtbWNfY29tbWFuZCAqY21kOw0KPj4gPj4gPj4g KyAgICAgICBzdHJ1Y3QgbW1jX3JlcXVlc3QgKm1ycTsNCj4+ID4+ID4+ICsgICAgICAgc3RydWN0 IG1tY19kYXRhICpkYXRhOw0KPj4gPj4gPj4gKyAgICAgICBpbnQgcmV0Ow0KPj4gPj4gPj4gKw0K Pj4gPj4gPj4gKyAgICAgICByZXQgPSBwc3RvcmVfYmxrX2dldF9jb25maWcoY29uZik7DQo+PiA+ PiA+PiArICAgICAgIGlmICghY29uZi0+ZGV2aWNlWzBdKSB7DQo+PiA+PiA+PiArICAgICAgICAg ICAgICAgcHJfZGVidWcoInBzYmxrIGJhY2tlbmQgaXMgZW1wdHlcbiIpOw0KPj4gPj4gPj4gKyAg ICAgICAgICAgICAgIHJldHVybjsNCj4+ID4+ID4+ICsgICAgICAgfQ0KPj4gPj4gPj4gKw0KPj4g Pj4gPj4gKyAgICAgICAvKiBNdWx0aXBsZSBiYWNrZW5kIGRldmljZXMgbm90IGFsbG93ZWQgKi8N Cj4+ID4+ID4+ICsgICAgICAgaWYgKGN4dC0+ZGV2X25hbWVbMF0pDQo+PiA+PiA+PiArICAgICAg ICAgICAgICAgcmV0dXJuOw0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gKyAgICAgICBiZGV2ID0gIG1t Y3BzdG9yZV9vcGVuX2JhY2tlbmQoY29uZi0+ZGV2aWNlKTsNCj4+ID4+ID4+ICsgICAgICAgaWYg KElTX0VSUihiZGV2KSkgew0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIHByX2VycigiJXMgZmFp bGVkIHRvIG9wZW4gd2l0aCAlbGRcbiIsDQo+PiA+PiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbmYtPmRldmljZSwgUFRSX0VSUihiZGV2KSk7DQo+PiA+PiA+PiArICAgICAg ICAgICAgICAgcmV0dXJuOw0KPj4gPj4gPj4gKyAgICAgICB9DQo+PiA+PiA+PiArDQo+PiA+PiA+ PiArICAgICAgIGJkZXZuYW1lKGJkZXYsIGN4dC0+ZGV2X25hbWUpOw0KPj4gPj4gPj4gKyAgICAg ICBjeHQtPnBhcnRubyA9IGJkZXYtPmJkX3BhcnQtPnBhcnRubzsNCj4+ID4+ID4+ICsgICAgICAg bW1jcHN0b3JlX2Nsb3NlX2JhY2tlbmQoYmRldik7DQo+PiA+PiA+PiArDQo+PiA+PiA+PiArICAg ICAgIGlmIChzdHJuY21wKGN4dC0+ZGV2X25hbWUsIGRpc2tfbmFtZSwgc3RybGVuKGRpc2tfbmFt ZSkpKQ0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4+ID4+ID4+ICsNCj4+ID4+ ID4+ICsgICAgICAgY3h0LT5zdGFydF9zZWN0ID0gbW1jX2Jsa19nZXRfcGFydChjYXJkLCBjeHQt PnBhcnRubywgJmN4dC0NCj4+c2l6ZSk7DQo+PiA+PiA+PiArICAgICAgIGlmICghY3h0LT5zdGFy dF9zZWN0KSB7DQo+PiA+PiA+PiArICAgICAgICAgICAgICAgcHJfZXJyKCJOb24tZXhpc3RlbnQg cGFydGl0aW9uICVkIHNlbGVjdGVkXG4iLCBjeHQtPnBhcnRubyk7DQo+PiA+PiA+PiArICAgICAg ICAgICAgICAgcmV0dXJuOw0KPj4gPj4gPj4gKyAgICAgICB9DQo+PiA+PiA+PiArDQo+PiA+PiA+ PiArICAgICAgIC8qIENoZWNrIGZvciBob3N0IG1tYyBwYW5pYyB3cml0ZSBwb2xsaW5nIGZ1bmN0 aW9uIGRlZmluaXRpb25zICovDQo+PiA+PiA+PiArICAgICAgIGlmICghY2FyZC0+aG9zdC0+b3Bz LT5yZXFfY2xlYW51cF9wZW5kaW5nIHx8DQo+PiA+PiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAhY2FyZC0+aG9zdC0+b3BzLT5yZXFfY29tcGxldGlvbl9wb2xsKQ0KPj4gPj4gPj4gKyAgICAg ICAgICAgICAgIHJldHVybjsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgY3h0LT5jYXJk ID0gY2FyZDsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgbXJxID0ga3phbGxvYyhzaXpl b2Yoc3RydWN0IG1tY19yZXF1ZXN0KSwgR0ZQX0tFUk5FTCk7DQo+PiA+PiA+PiArICAgICAgIGlm ICghbXJxKQ0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4gPj4gPj4gKw0K Pj4gPj4gPj4gKyAgICAgICBjbWQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbW1jX2NvbW1hbmQp LCBHRlBfS0VSTkVMKTsNCj4+ID4+ID4+ICsgICAgICAgaWYgKCFjbWQpDQo+PiA+PiA+PiArICAg ICAgICAgICAgICAgZ290byBmcmVlX21ycTsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAg c3RvcCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtbWNfY29tbWFuZCksIEdGUF9LRVJORUwpOw0K Pj4gPj4gPj4gKyAgICAgICBpZiAoIXN0b3ApDQo+PiA+PiA+PiArICAgICAgICAgICAgICAgZ290 byBmcmVlX2NtZDsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsgICAgICAgZGF0YSA9IGt6YWxsb2Mo c2l6ZW9mKHN0cnVjdCBtbWNfZGF0YSksIEdGUF9LRVJORUwpOw0KPj4gPj4gPj4gKyAgICAgICBp ZiAoIWRhdGEpDQo+PiA+PiA+PiArICAgICAgICAgICAgICAgZ290byBmcmVlX3N0b3A7DQo+PiA+ PiA+PiArDQo+PiA+PiA+PiArICAgICAgIG1ycS0+Y21kID0gY21kOw0KPj4gPj4gPj4gKyAgICAg ICBtcnEtPmRhdGEgPSBkYXRhOw0KPj4gPj4gPj4gKyAgICAgICBtcnEtPnN0b3AgPSBzdG9wOw0K Pj4gPj4gPj4gKyAgICAgICBjeHQtPm1ycSA9IG1ycTsNCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICsg ICAgICAgaW5mby0+bWFqb3IgPSBNTUNfQkxPQ0tfTUFKT1I7DQo+PiA+PiA+PiArICAgICAgIGlu Zm8tPmZsYWdzID0gUFNUT1JFX0ZMQUdTX0RNRVNHOw0KPj4gPj4gPj4gKyAgICAgICBpbmZvLT5w YW5pY193cml0ZSA9IG1tY3BzdG9yZV9wYW5pY193cml0ZTsNCj4+ID4+ID4+ICsgICAgICAgcmV0 ID0gcmVnaXN0ZXJfcHN0b3JlX2JsayhpbmZvKTsNCj4+ID4+ID4+ICsgICAgICAgaWYgKHJldCkg ew0KPj4gPj4gPj4gKyAgICAgICAgICAgICAgIHByX2VycigiJXMgcmVnaXN0ZXJpbmcgd2l0aCBw c2JsayBmYWlsZWQgKCVkKVxuIiwNCj4+ID4+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY3h0LT5kZXZfbmFtZSwgcmV0KTsNCj4+ID4+ID4+ICsgICAgICAgICAgICAgICBnb3Rv IGZyZWVfZGF0YTsNCj4+ID4+ID4+ICsgICAgICAgfQ0KPj4gPj4gPj4gKw0KPj4gPj4gPj4gKyAg ICAgICBwcl9pbmZvKCIlcyByZWdpc3RlcmVkIGFzIHBzYmxrIGJhY2tlbmRcbiIsIGN4dC0+ZGV2 X25hbWUpOw0KPj4gPj4gPj4gKyAgICAgICByZXR1cm47DQo+PiA+PiA+PiArDQo+PiA+PiA+PiAr ZnJlZV9kYXRhOg0KPj4gPj4gPj4gKyAgICAgICBrZnJlZShkYXRhKTsNCj4+ID4+ID4+ICtmcmVl X3N0b3A6DQo+PiA+PiA+PiArICAgICAgIGtmcmVlKHN0b3ApOw0KPj4gPj4gPj4gK2ZyZWVfY21k Og0KPj4gPj4gPj4gKyAgICAgICBrZnJlZShjbWQpOw0KPj4gPj4gPj4gK2ZyZWVfbXJxOg0KPj4g Pj4gPj4gKyAgICAgICBrZnJlZShtcnEpOw0KPj4gPj4gPj4gK291dDoNCj4+ID4+ID4+ICsgICAg ICAgcmV0dXJuOw0KPj4gPj4gPj4gK30NCj4+ID4+ID4+ICsNCj4+ID4+ID4+ICt2b2lkIHVucmVn aXN0ZXJfbW1jcHN0b3JlKHZvaWQpIHsNCj4+ID4+ID4+ICsgICAgICAgc3RydWN0IG1tY3BzdG9y ZV9jb250ZXh0ICpjeHQgPSAmb29wc19jeHQ7DQo+PiA+PiA+PiArDQo+PiA+PiA+PiArICAgICAg IHVucmVnaXN0ZXJfcHN0b3JlX2JsayhNTUNfQkxPQ0tfTUFKT1IpOw0KPj4gPj4gPj4gKyAgICAg ICBrZnJlZShjeHQtPm1ycS0+ZGF0YSk7DQo+PiA+PiA+PiArICAgICAgIGtmcmVlKGN4dC0+bXJx LT5zdG9wKTsNCj4+ID4+ID4+ICsgICAgICAga2ZyZWUoY3h0LT5tcnEtPmNtZCk7DQo+PiA+PiA+ PiArICAgICAgIGtmcmVlKGN4dC0+bXJxKTsNCj4+ID4+ID4+ICsgICAgICAgY3h0LT5jYXJkID0g TlVMTDsNCj4+ID4+ID4+ICt9DQo+PiA+PiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9t bWMvY29yZS5oIGIvaW5jbHVkZS9saW51eC9tbWMvY29yZS5oDQo+PiA+PiA+PiBpbmRleCAyOWFh NTA3MTE2MjYuLjUzODQwYTM2MWI1YSAxMDA2NDQNCj4+ID4+ID4+IC0tLSBhL2luY2x1ZGUvbGlu dXgvbW1jL2NvcmUuaA0KPj4gPj4gPj4gKysrIGIvaW5jbHVkZS9saW51eC9tbWMvY29yZS5oDQo+ PiA+PiA+PiBAQCAtMTY2LDYgKzE2NiwxMSBAQCBzdHJ1Y3QgbW1jX3JlcXVlc3Qgew0KPj4gPj4g Pj4NCj4+ID4+ID4+ICBzdHJ1Y3QgbW1jX2NhcmQ7DQo+PiA+PiA+Pg0KPj4gPj4gPj4gKyNpZiBJ U19FTkFCTEVEKENPTkZJR19NTUNfUFNUT1JFKSB2b2lkDQo+PiA+PiA+PiArbW1jX3dhaXRfZm9y X3BzdG9yZV9yZXEoc3RydWN0IG1tY19ob3N0ICpob3N0LCBzdHJ1Y3QNCj4+ID4+ID4+ICttbWNf cmVxdWVzdCAqbXJxKTsgaW50IG1tY19jbGFpbV9ob3N0X2FzeW5jKHN0cnVjdCBtbWNfaG9zdA0K Pj4gPj4gPj4gKypob3N0KTsgI2VuZGlmDQo+PiA+PiA+PiArDQo+PiA+PiA+PiAgdm9pZCBtbWNf d2FpdF9mb3JfcmVxKHN0cnVjdCBtbWNfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19yZXF1ZXN0DQo+ PiA+PiA+PiAqbXJxKTsgIGludCBtbWNfd2FpdF9mb3JfY21kKHN0cnVjdCBtbWNfaG9zdCAqaG9z dCwgc3RydWN0DQo+PiA+PiA+bW1jX2NvbW1hbmQgKmNtZCwNCj4+ID4+ID4+ICAgICAgICAgICAg ICAgICBpbnQgcmV0cmllcyk7DQo+PiA+PiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9t bWMvaG9zdC5oIGIvaW5jbHVkZS9saW51eC9tbWMvaG9zdC5oDQo+PiA+PiA+PiBpbmRleA0KPj4g Pj4gPj4gMDFiYmEzNjU0NWM1Li5iYTkwMDE0OThlMDMgMTAwNjQ0DQo+PiA+PiA+PiAtLS0gYS9p bmNsdWRlL2xpbnV4L21tYy9ob3N0LmgNCj4+ID4+ID4+ICsrKyBiL2luY2x1ZGUvbGludXgvbW1j L2hvc3QuaA0KPj4gPj4gPj4gQEAgLTE3OCw2ICsxNzgsMTggQEAgc3RydWN0IG1tY19ob3N0X29w cyB7DQo+PiA+PiA+Pg0KPj4gPj4gPj4gICAgICAgICAvKiBJbml0aWFsaXplIGFuIFNEIGV4cHJl c3MgY2FyZCwgbWFuZGF0b3J5IGZvcg0KPk1NQ19DQVAyX1NEX0VYUC4NCj4+ID4qLw0KPj4gPj4g Pj4gICAgICAgICBpbnQgICAgICgqaW5pdF9zZF9leHByZXNzKShzdHJ1Y3QgbW1jX2hvc3QgKmhv c3QsIHN0cnVjdCBtbWNfaW9zDQo+PiA+Kmlvcyk7DQo+PiA+PiA+PiArDQo+PiA+PiA+PiArI2lm IElTX0VOQUJMRUQoQ09ORklHX01NQ19QU1RPUkUpDQo+PiA+PiA+PiArICAgICAgIC8qDQo+PiA+ PiA+PiArICAgICAgICAqIFRoZSBmb2xsb3dpbmcgdHdvIEFQSXMgYXJlIGludHJvZHVjZWQgdG8g c3VwcG9ydCBtbWNwc3RvcmUNCj4+ID4+ID4+ICsgICAgICAgICogZnVuY3Rpb25hbGl0eS4gQ2xl YW51cCBBUEkgdG8gdGVybWluYXRlIHRoZSBvbmdvaW5nIGFuZA0KPj4gPj4gPj4gKyAgICAgICAg KiBwZW5kaW5nIHJlcXVlc3RzIGJlZm9yZSBhIHBhbmljIHdyaXRlIHBvc3QsIGFuZCBwb2xsaW5n IEFQSQ0KPj4gPj4gPj4gKyAgICAgICAgKiB0byBlbnN1cmUgdGhhdCB3cml0ZSBzdWNjZWVkcyBi ZWZvcmUgdGhlIEtlcm5lbCBkaWVzLg0KPj4gPj4gPj4gKyAgICAgICAgKi8NCj4+ID4+ID4+ICsg ICAgICAgdm9pZCAgICAoKnJlcV9jbGVhbnVwX3BlbmRpbmcpKHN0cnVjdCBtbWNfaG9zdCAqaG9z dCk7DQo+PiA+PiA+PiArICAgICAgIGludCAgICAgKCpyZXFfY29tcGxldGlvbl9wb2xsKShzdHJ1 Y3QgbW1jX2hvc3QgKmhvc3QsDQo+PiA+PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOw0KPj4gPj4gPj4gKyNlbmRpZg0KPj4g Pj4gPj4gIH07DQo+PiA+PiA+Pg0KPj4gPj4gPj4gIHN0cnVjdCBtbWNfY3FlX29wcyB7DQo+PiA+ PiA+PiAtLQ0KPj4gPj4gPj4gMi4xNy4xDQo+PiA+PiA+Pg0K