Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3225577pxj; Mon, 7 Jun 2021 05:40:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxfwiMbByfC9sruvDnEaO2RRNYTPy5y5/HNUqB8NCnh/d5GHH3DhsAkSQdbJ+FmyWXq7S1d X-Received: by 2002:aa7:d9d8:: with SMTP id v24mr19498225eds.15.1623069632950; Mon, 07 Jun 2021 05:40:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1623069632; cv=pass; d=google.com; s=arc-20160816; b=YqD1TjLd+rDizH8gVpN7Kv9QsEd5QE6/LGvGV1MyEdwMCjS3uxzQdooMy1qv4N8rJc h9TFVpFqwdCQkoNmqg1W4Ocd1nJMdLbVTTBGjumrfe0Nqs60MCaKaHdNIbG2HEnADLlD 0bdAeu9fsBqfx1yvIPuN7OnJPBHxX5QcDV7vI9u6zSsIEt5+uHoMhGO10W+nZ4J5BCv0 qXfX8CTFEbmMiQqkwwn8wBIp2cJdTKvC/5ZHJzmyZPOBL3j5p2LM3DSNq/Of3s9uugce Dl2cFU/TPW/UcPA5MPfAkWX/kndlAq7LRtfeqv19R8d4mQ30d0v2qZf+C4oyA4hkgJ7i Oawg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=9XK89bvZ6DeV9hcMPa/U5hpX63afl6s2VfJmbyfi1I8=; b=HN72dxkJjBLqLxkQLhTo7u3MwAMIA1pJQjb/VVmVYMaPEpq7CEcb6mysqEl/mkPmZd jfKgyHK3bEACASrgeMBvUNc9xLkFf4LIL3hGJhD3fyrRSXHCZC7MQEUOCuS39LYDFXbx f3QJEqKFt1mfaW5ob5nLMPrkfV0drkGQBxZnJ040ooZILA5RUyYmcX8+mxs1ELuwHcoU Mj0IV61Tyk9EHpKwtnigIXg2MFaLiC7YXKtVQXnft6Lr5ZBNvETRSbO+pFiM4+snz4yh z4bQo4zslj+Z9ucCfwL8EbCl1dJwieqOpflcv5v8A80faZyp6PCCbGqTFKAE5fU79KjW xs7g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=L+uY7rlu; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a19si12283052edy.189.2021.06.07.05.40.10; Mon, 07 Jun 2021 05:40:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=L+uY7rlu; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231235AbhFGMjM (ORCPT + 99 others); Mon, 7 Jun 2021 08:39:12 -0400 Received: from mx0b-0016f401.pphosted.com ([67.231.156.173]:62814 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230254AbhFGMjJ (ORCPT ); Mon, 7 Jun 2021 08:39:09 -0400 Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 157CVU0n007466; Mon, 7 Jun 2021 05:37:10 -0700 Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by mx0b-0016f401.pphosted.com with ESMTP id 391ecv13f3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 07 Jun 2021 05:37:10 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HgDqbW39gRk5EHplGtKbyBRuHOWoTRkN4I3iUUkgCzXbyuDKT89D1AzE9jgTj7SCXkom/HyHHBMkPY3RRDVocnu+0x8ASXK9PpjehiaR27k/+1SwYrVVZ5h5Nl9HgDbCtg0F+6IfQss6lu8KM34Xhz63Y6N+GiUQl20suF/QzO7jr8XM2KzbAvBmgpbZ2a+FUSBElwlZ1F5iokZqWjmtgKoBa1cpQKS741oK9eubh3yfk/KTxWpooBC5WCAFQvli9Ix9l1FzdFYQvC76/3WBTDsbq8A7RsYGPJR3+uIX/y+Mv+4JOFY5oguksu6WYigJ0evLqrnI9QN4TkBxuRftag== 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=9XK89bvZ6DeV9hcMPa/U5hpX63afl6s2VfJmbyfi1I8=; b=K6g3wanzC9DDSsRzABELuIFmZHjqk/ucP+Pf+b3zvHGrZpS7o+Cz0F8Eyr2kOEiPsnf6qhK+PtYtcrdWdvZD9ARHbKIRlcjDm1QAH4Af4bChdH/6eF5FsxwhgXMeVZgOcy5DCmiW11JVpCpNLV+1lQSEvDfVJrBjy5M4GiI7GCDCi2G02DoNb1BgIdGcXgOuRSVDz58WYFETn8bcP9Q+IN2Sd5q0X0uB3P6FzHvz23y4MWzIyRWAiBv51UR+yVsKANjmmv6W7VUTqSaFwwV+oncqa3eNUwsmQZTWVgDnEmagnotdsin51EOcPSiqN8oyhTXgpB8LfaZjm3nCkkSJBw== 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=9XK89bvZ6DeV9hcMPa/U5hpX63afl6s2VfJmbyfi1I8=; b=L+uY7rlup41k//8BQpf/MxON4xk4y7jG49Iahn8S2wKU0i2MFc0CfiQ6fxllntsOZQqWlGxVRJDzIRgu/x72IxY8sKnzvsrlIoLMFa6jLavCsancLdgPQzR1+guwcK/puBmL56jYOetbKihd2lDalQTKuib3MJGTTKyBkr8PXaU= Received: from CY4PR1801MB2070.namprd18.prod.outlook.com (2603:10b6:910:7e::28) by CY4PR18MB0933.namprd18.prod.outlook.com (2603:10b6:903:a6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.22; Mon, 7 Jun 2021 12:37:07 +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 12:37:07 +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: AQHW7yVWdu744GVm7EWWpwnjNVLaQKownUuAgNVtmFCAAzQygIAAFgCw Date: Mon, 7 Jun 2021 12:37:07 +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: dc377424-72c6-4985-28a9-08d929b0f647 x-ms-traffictypediagnostic: CY4PR18MB0933: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3968; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VvsiqgVSMxoD57SH7bGMgdGz5phqujwCzqW5YWBNiogXrd/YBQiigGkUE8IXRUp/Rl+XOF6Su9wcX0dtsFN7BCY/CRbMUklgNKq4SWtorArCORcYIoQBzux1qYdDhG4eTSMjEAS7a7V6oUZj2wN8zfgaapVyGjm14Br3iaZg1D48ESqB2a78uhhha4e40RRxpj0MAO65LdwkLitYzRO+ovk1tuuNVvPnqUZRqhW+5IRETa9hKZ2zjuN4sYvQaKvFyCh41kW95eyBdbaix+BqPg4WnGgyD5ieNVKQHHjReYb9NJVDmyL6ueaEFdG53jQ6JOjJVqCKHsYmGSfilfVLYXfj8BlZDPVrEPp1yj3FN4QOrw6dbwpHOXha1NVAETWZ9TuLudcKrvtKoT2j9Bjci7HJvHl2aG231JY1y61nOdaV6kjLThlYWfg+lNj2nNzrPzCkKnai/EQtvHo7q8VywZi/co8/jj5xuTQ4hhxUjPRZUqCk+zYDtWDw4bZH1qhjLa/QCM6YSdaVAAHS7+96+U7TyKF5SMKfhrx5YVWx6xDEg2038GDQDFjVmK9wuyhPlCe2Se3NbFdVpmhFb8X6IDGCw7UIGp9aLQf6rCziwzJxk/SFwkRrOFfu6BMOwBwmZNVJqhc8+pGJ84VypShSFUOKBU4MyYvdEZzU4OLzgkgOGOfzaL3g9vJwVOc4Egy08uiATZiqLmgWyQCSsDIUZw== 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)(136003)(346002)(39860400002)(396003)(366004)(376002)(478600001)(71200400001)(122000001)(966005)(4326008)(5660300002)(33656002)(6506007)(30864003)(52536014)(55016002)(86362001)(54906003)(316002)(7696005)(76116006)(9686003)(64756008)(66476007)(66446008)(66946007)(66556008)(8936002)(83380400001)(8676002)(186003)(6916009)(38100700002)(2906002)(26005)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?ZVB6WWVreXFseUZIYm4yV2duOGhTakk5ckg2enhveWVlZjcyejdVdkNjYlkz?= =?utf-8?B?bUo5QkFNWllQYzBvLzV1bHpUemRZYlNaY0o4Yk1aeHNQL0ZWdDdQbS9LNVIv?= =?utf-8?B?UkFzZi9TUGl6emdES1VGUG9wYkFvMFNUNFYvZnRUK0tHWVk1ZEd2VFZmVFVK?= =?utf-8?B?SlI0UVJTdWQwUkt1ZlR2cEliRWVadlQxWUp5NTNsdGlzN2xlcnJCOXpQWFlp?= =?utf-8?B?YXB0UVhDZXlYTHNET29XYnBnMUVzRGZqQTNwMGp4NGh4TEt1N0swRXB2VFRU?= =?utf-8?B?SFFwY2NJVVBFalZubThTbHB3YnVlWWMrcTJzSklFYkxsYTNxcmdoWXo5QXpM?= =?utf-8?B?dXp4UlhoT2VxYW5Gc2tQOXBmZ21lV2oyMXgvcFFoR0ozMktzZ3hzL0lpa3Bi?= =?utf-8?B?MGhYTHh0MEl0ZHJFTFhaYTEwVndwNGE5Lyt6emlGZ1Z5WHB5akxBRHFWbmg1?= =?utf-8?B?REkzZDJXYzRXOVRodzFzRG9kMCs2d3ZlUnRlS0ZjVmhYTUJaRmQxVkhIekhu?= =?utf-8?B?UTl6TXk0RDVqTzhoZm1GNWZzb1FIckR1OXI1WE1tNUpZcC83L294TDRzMnM5?= =?utf-8?B?L2ttVE9Nd2hON0Z6bGF0OXd1R1pwS25GK3JMdGZLSFk1STdiOXVEWmtCa29a?= =?utf-8?B?Wml4eTdOdkxGY0V6MGkxL29La01ZZW9yWStDdFVQckI0YytlZFFzKzNEV0th?= =?utf-8?B?ZHBDNElyNm5lYTlCeS9oeGNCSVp6aTRxN2hQcEVzWEFHVXFadDdjUmUrRFRS?= =?utf-8?B?TW50TFJWbk14aG55bEt5RUtiQ01LVjk3NWxVQXcrUVAyb2QvQ2ZjVVh5Y3V5?= =?utf-8?B?d0h5L2cxQnMzS2kyTmRBNmo4QWp5NU55K2orRkRTNHoxRHQvLzVRM0g0YlRo?= =?utf-8?B?ai9QRzBNZE4wVjh2L1lmbXE2WFFlS1lxZnBZMUlodVdnTXkvWWVsSHM5Wno2?= =?utf-8?B?T2UzL0hUUnZFMzNZNFdHeXErRTFtcEYzeDU0eDZTSWcwWGdUY05JN0RJelhj?= =?utf-8?B?d0JaRkpNazFGNlZ1eVQ3RE9uMHRCOGhCZVpyRWJhcUNuZE0yQTdkRzRpd2ZP?= =?utf-8?B?VmlFYm5EYnFTemwwd285ZVMzamRJRGpUTjNYc1JScDNseHNmQWozZHozc1ZF?= =?utf-8?B?NDh4Y29tdGdOb21lRnp5OVltcFRuWXZpcjR2MERaeGtlZG1YcG9LWXBXUzQr?= =?utf-8?B?Yk1qWnpXRm1mMUJDRGtOQTdKNENQa2p1ZHFVMDI5N3BYNjBxbUZOQTlMOVdy?= =?utf-8?B?T0VxRTNidWZhUDFGLzFuSHVyMzdVeEllbmN6a3FXejhtTkpvaGdJVzEva0dn?= =?utf-8?B?NGkrcGhCMlJOUjFkN25DekgyUXVUaFRDVjh5Yi9pR0NHTitORXNUMU9kMmxD?= =?utf-8?B?UDh5d2s3T2dPNU9XTlVUMWliWnQyNm1SY2RONElDUnlwdC8xdzJidmZSVXFm?= =?utf-8?B?cFpUUG5JdjVaTlJlc2NTcUpjL3V5WVNORWhWYmo3V1JUakZOUUY2QnpabFR0?= =?utf-8?B?RWFlQlZLdWJRQkxxN2M1UGhXbVMvdkZyUmtEY0hRR1BiODVjemtXcUE5WHpP?= =?utf-8?B?VXdFZWJnL01ncWNjVzhsRFh5dTFZekg4TmJkZzdqekVzM2NTbDBhekIrUHUv?= =?utf-8?B?N1NvaWxpbUhTdzA2T2VKZE41d2g1NnRSSnBwbWozSTlkV2FibFpNUlhNRTBB?= =?utf-8?B?Nld6UE5vK05hQW1VVkFnbmpyMWFzV013ZEZNSjNnRm1IY0JFUFNXeFZ0Z1c1?= =?utf-8?Q?hRKfYZMmnMWgHx24L3C+eaeWoFWBug1U/dpa+Kv?= 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: dc377424-72c6-4985-28a9-08d929b0f647 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2021 12:37:07.0675 (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: 9IlIHiRfKqHmNonKQnk4vNSwplHkv719V8LWNYqpM5E8LEHgmnxw31m5L6vGN6Qn/9gZRMUBrY3vhAoyd+a+jw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR18MB0933 X-Proofpoint-GUID: 028YIM1t-sQKQCXrb00310pdZC3VLHDW X-Proofpoint-ORIG-GUID: 028YIM1t-sQKQCXrb00310pdZC3VLHDW X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.761 definitions=2021-06-07_10:2021-06-04,2021-06-07 signatures=0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Wy4uLl0NCj5XaGF0IHBhdGNoZXMgYXJlIHlvdSByZWZlcnJpbmcgdG8/DQoNCkkgd2FzIHJlZmVy cmluZyB0byB0aGlzIHBhdGNoLg0KaHR0cDovL2dpdC5pbmZyYWRlYWQub3JnL3VzZXJzL2hjaC9t aXNjLmdpdC9zaG9ydGxvZy9yZWZzL2hlYWRzL3BzdG9yZQ0KDQpUaGFua3MsDQpCaGFza2FyYQ0K DQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBVbGYgSGFuc3NvbiA8dWxmLmhh bnNzb25AbGluYXJvLm9yZz4NCj5TZW50OiBNb25kYXksIEp1bmUgNywgMjAyMSA0OjQ3IFBNDQo+ VG86IEJoYXNrYXJhIEJ1ZGlyZWRsYSA8YmJ1ZGlyZWRsYUBtYXJ2ZWxsLmNvbT4NCj5DYzogS2Vl cyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+OyBDb2xpbiBDcm9zcw0KPjxjY3Jvc3NAYW5k cm9pZC5jb20+OyBUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+OyBTdW5pbCBLb3Z2dXJp DQo+R291dGhhbSA8c2dvdXRoYW1AbWFydmVsbC5jb20+OyBsaW51eC1tbWNAdmdlci5rZXJuZWwu b3JnOyBMaW51eA0KPktlcm5lbCBNYWlsaW5nIExpc3QgPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5l bC5vcmc+OyBsaW51eC1ibG9jayA8bGludXgtDQo+YmxvY2tAdmdlci5rZXJuZWwub3JnPjsgSmVu cyBBeGJvZSA8YXhib2VAa2VybmVsLmRrPjsgQ2hyaXN0b3BoIEhlbGx3aWcNCj48aGNoQGxzdC5k ZT4NCj5TdWJqZWN0OiBSZTogW0VYVF0gUmU6IFtQQVRDSCB2NSAxLzJdIG1tYzogU3VwcG9ydCBr bXNnIGR1bXBlciBiYXNlZCBvbg0KPnBzdG9yZS9ibGsNCj4NCj5PbiBTYXQsIDUgSnVuIDIwMjEg YXQgMTI6MzEsIEJoYXNrYXJhIEJ1ZGlyZWRsYSA8YmJ1ZGlyZWRsYUBtYXJ2ZWxsLmNvbT4NCj53 cm90ZToNCj4+DQo+PiBIaSBVZmZlLA0KPj4NCj4+IFdpdGggZHVlIHJlc3BlY3QgdG8gcHN0b3Jl L2JsayBzdWJzeXN0ZW0gY2hhbmdlcyB3ZSBoYXZlIGJlZW4gd2FpdGluZw0KPnNpbmNlIGxvbmcg dGltZSB0byBzZWUgQ2hyaXN0b3BoIHBhdGNoZXMgdGFrZW4uDQo+DQo+V2hhdCBwYXRjaGVzIGFy ZSB5b3UgcmVmZXJyaW5nIHRvPw0KPg0KPj4gQnV0IHVuZm9ydHVuYXRlbHkgaXQgaXMgc3RpbGwg ZmluZGluZyBhdCB0aGF0IHNhbWUgc3RhZ2Ugb25seS4gQ2FuIHlvdQ0KPj4gcGxlYXNlIHRha2Ug dXAgbXkgcGF0Y2ggaW4gdGhlIGN1cnJlbnQgZm9ybSAod2hpY2ggaXMgYmFzZWQgb24gY3VycmVu dA0KPj4gcHN0b3JlL2JsayBmcmFtZXdvcmspIGluc3RlYWQgb2Ygd2FpdGluZyBpbmRlZmluaXRl bHkuIElmIHBzdG9yZS9ibGsgY29tZXMgdXANCj53aXRoIHRoZSBjaGFuZ2VzIHRoYXQgaGFzIGJl ZW4gZGlzY3Vzc2VkIGJ5IHlvdSBwcmV2aW91c2x5LCBJIHdpbGwgZnVydGhlcg0KPnN1Ym1pdCB0 aGUgY29ycmVzcG9uZGluZyBjaGFuZ2VzIGZvciBlTU1DIGRldmljZXMuDQo+DQo+Tm8sIEkgYW0g c29ycnksIGJ1dCB0aGF0J3Mgbm90IHRoZSB3YXkgaXQgd29ya3MuDQo+DQo+SWYgeW91IHJlYWxs eSB3YW50IHRvIG1vdmUgdGhpbmdzIGZvcndhcmQsIEkgd291bGQgc3VnZ2VzdCB0aGF0IHlvdSB0 cnkgdG8NCj5pbXBsZW1lbnQgc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZiB3aGF0IEkgaGF2 ZSBzdWdnZXN0ZWQuDQo+QW5vdGhlciBvcHRpb24gaXMgdG8gcG9zdCBhbiBSRkQvUkZDIHNvIGFz IHNvbHV0aW9uIGNhbiBiZSBkaXNjdXNzZWQgd2l0aCB0aGUNCj5yZWxldmFudCBwZW9wbGUuDQo+ DQo+S2luZCByZWdhcmRzDQo+VWZmZQ0KPg0KPj4NCj4+IFRoYW5rcywNCj4+IEJoYXNrYXJhDQo+ Pg0KPj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiA+RnJvbTogVWxmIEhhbnNzb24g PHVsZi5oYW5zc29uQGxpbmFyby5vcmc+DQo+PiA+U2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDIw LCAyMDIxIDg6MzYgUE0NCj4+ID5UbzogQmhhc2thcmEgQnVkaXJlZGxhIDxiYnVkaXJlZGxhQG1h cnZlbGwuY29tPjsgS2VlcyBDb29rDQo+PiA+PGtlZXNjb29rQGNocm9taXVtLm9yZz4NCj4+ID5D YzogQ29saW4gQ3Jvc3MgPGNjcm9zc0BhbmRyb2lkLmNvbT47IFRvbnkgTHVjaw0KPj4gPjx0b255 Lmx1Y2tAaW50ZWwuY29tPjsgU3VuaWwgS292dnVyaSBHb3V0aGFtIDxzZ291dGhhbUBtYXJ2ZWxs LmNvbT47DQo+PiA+bGludXgtIG1tY0B2Z2VyLmtlcm5lbC5vcmc7IExpbnV4IEtlcm5lbCBNYWls aW5nIExpc3QgPGxpbnV4LQ0KPj4gPmtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBsaW51eC1ibG9j ayA8bGludXgtYmxvY2tAdmdlci5rZXJuZWwub3JnPjsNCj4+ID5KZW5zIEF4Ym9lIDxheGJvZUBr ZXJuZWwuZGs+OyBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4NCj4+ID5TdWJqZWN0OiBb RVhUXSBSZTogW1BBVENIIHY1IDEvMl0gbW1jOiBTdXBwb3J0IGttc2cgZHVtcGVyIGJhc2VkIG9u DQo+PiA+cHN0b3JlL2Jsaw0KPj4gPg0KPj4gPkV4dGVybmFsIEVtYWlsDQo+PiA+DQo+PiA+LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+PiA+LQ0KPj4gPisgbGludXgtYmxvY2ssIEplbnMsIENocmlzdG9waA0KPj4g Pg0KPj4gPk9uIFdlZCwgMjAgSmFuIDIwMjEgYXQgMTM6MTEsIEJoYXNrYXJhIEJ1ZGlyZWRsYQ0K Pj4gPjxiYnVkaXJlZGxhQG1hcnZlbGwuY29tPiB3cm90ZToNCj4+ID4+DQo+PiA+PiBUaGlzIHBh dGNoIGludHJvZHVjZXMgdG8gbW1jcHN0b3JlLiBUaGUgZnVuY3Rpb25pbmcgb2YgbW1jcHN0b3Jl IGlzDQo+PiA+PiBzaW1pbGFyIHRvIG10ZHBzdG9yZS4gbW1jcHN0b3JlIHdvcmtzIG9uIEZUTCBi YXNlZCBmbGFzaCBkZXZpY2VzDQo+PiA+PiB3aGVyZWFzIG10ZHBzdG9yZSB3b3JrcyBvbiByYXcg Zmxhc2ggZGV2aWNlcy4gV2hlbiB0aGUgc3lzdGVtDQo+PiA+PiBjcmFzaGVzLCBtbWNwc3RvcmUg c3RvcmVzIHRoZSBrbXNnIHBhbmljIGFuZCBvb3BzIGxvZ3MgdG8gYSB1c2VyDQo+PiA+PiBzcGVj aWZpZWQgTU1DIGRldmljZS4NCj4+ID4+DQo+PiA+PiBJdCBjb2xsZWN0cyB0aGUgZGV0YWlscyBh Ym91dCB0aGUgaG9zdCBNTUMgZGV2aWNlIHRocm91Z2gNCj4+ID4+IHBzdG9yZS9ibGsgImJsa2Rl diIgcGFyYW1ldGVyLiBUaGUgdXNlciBjYW4gc3BlY2lmeSB0aGUgTU1DIGRldmljZQ0KPj4gPj4g aW4gbWFueSB3YXlzIGJ5IGNoZWNraW5nIGluIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvcHN0 b3JlLWJsay5yc3QuDQo+PiA+Pg0KPj4gPj4gVGhlIGluZGl2aWR1YWwgbW1jIGhvc3QgZHJpdmVy cyBoYXZlIHRvIGRlZmluZSBzdWl0YWJsZSBwb2xsaW5nIGFuZA0KPj4gPj4gY2xlYW51cCBzdWJy b3V0aW5lcyB0byB3cml0ZSBrbXNnIHBhbmljL29vcHMgbG9ncyB0aHJvdWdoIG1tY3BzdG9yZS4N Cj4+ID4+IFRoZXNlIG5ldyBob3N0IG9wZXJhdGlvbnMgYXJlIG5lZWRlZCBhcyBwc3RvcmUgcGFu aWMgd3JpdGUgcnVucw0KPj4gPj4gd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkLg0KPj4gPg0KPj4g Pk9rYXksIGxldCBtZSBhZ2FpbiB0cnkgdG8gY2xhcmlmeSBvbiBob3cgSSBzZWUgdGhpcyB0byBt b3ZlIHRoaXMgZm9yd2FyZC4NCj4+ID4NCj4+ID4xKQ0KPj4gPkluIG15IG9waW5pb24sIHBzdG9y ZSBzaG91bGRuJ3QgYmUgdXNpbmcgY2FsbGJhY2tzIGZvciAqcmVndWxhciogSS9PDQo+PiA+cmVh ZC93cml0ZXMuIEl0J3MgdXBzaWRlLWRvd24gb2YgaG93IHRoZSBzdG9yYWdlIHN0YWNrIGlzIGRl c2lnbmVkIHRvIHdvcmsuDQo+PiA+DQo+PiA+SW5zdGVhZCwgcHN0b3JlIHNob3VsZCBiZSBpbXBs ZW1lbnRlZCBhcyBhIHJlZ3VsYXIgZmlsZXN5c3RlbSwgdGhhdA0KPj4gPmNhbiBiZSBtb3VudGVk IG9uIHRvcCBvZiBhIHJlZ3VsYXIgYmxvY2sgZGV2aWNlIHBhcnRpdGlvbi4gSW4gdGhpcw0KPj4g PndheSwgdGhlIGxvd2VyIGxheWVyIGJsb2NrIGRldmljZSBkcml2ZXJzIChhcyBtbWMpLCBkb24n dCBuZWVkDQo+PiA+c3BlY2lhbCBzdXBwb3J0IGZvciBwc3RvcmUsIHRoZSByZWd1bGFyIEkvTyBi bG9jayByZWFkL3dyaXRlIHBhdGggd2lsbCBqdXN0DQo+d29yayBhcyBpcy4NCj4+ID4NCj4+ID4y KQ0KPj4gPldoZW4gaXQgY29tZXMgdG8gc3VwcG9ydGluZyAqcGFuaWMqIHdyaXRlcyBmb3IgcHN0 b3JlLCB0aGluZ3MgYmVjb21lDQo+PiA+YSBiaXQgbW9yZSBjb21wbGljYXRlZC4gRm9yIHN1cmUg c29tZSBhZGFwdGF0aW9ucyBhcmUgbmVlZGVkIGluIGVhY2gNCj4+ID5ibG9jayBkZXZpY2UgZHJp dmVyIHRvIHN1cHBvcnQgdGhpcy4NCj4+ID4NCj4+ID5Ib3dldmVyLCB0aGUgY3VycmVudCBtZXRo b2QgbWVhbnMgcmVseWluZyBvbiB0aGUgbG93ZXIgbGV2ZWwgYmxvY2sNCj4+ID5kZXZpY2UgZHJp dmVyIHRvIGZpZ3VyZSBvdXQgdGhlIHBzdG9yZSBwYXJ0aXRpb24uIEJhc2VkIG9uIHRoYXQsIGl0 DQo+PiA+c2hvdWxkIHRoZW4gcmVnaXN0ZXIgaXRzZWxmIGZvciBwc3RvcmUgc3VwcG9ydCBhbmQg aG9vayB1cCBjYWxsYmFja3MNCj4+ID5mb3IgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgZGV2aWNl IGRyaXZlciBpbnN0YW5jZSwgYXQgbGVhc3QgdGhhdCBpcw0KPj4gPndoYXQgaXQgbG9va3MgbGlr ZSB0byBtZS4gQWdhaW4sIEkgdGhpbmsgdGhpcyBpcyB1cHNpZGUtZG93biBmcm9tIHRoZQ0KPj4g PnN0b3JhZ2Ugc3RhY2sgcGVyc3BlY3RpdmUuIFRoZSBwYXJ0aXRpb24gdG8gdXNlIGZvciBwc3Rv cmUsIHNob3VsZCBiZSBiYXNlZA0KPnVwb24gaXRzIGZpbGUgc3lzdGVtIG1vdW50IHBvaW50Lg0K Pj4gPg0KPj4gPkZ1cnRoZXJtb3JlLCBJIHRoaW5rIHRoZSByZXNwb25zaWJpbGl0eSBmb3IgbG93 ZXIgbGF5ZXIgYmxvY2sgZGV2aWNlDQo+PiA+ZHJpdmVycyBzaG91bGQgaW5zdGVhZCBiZSB0byBq dXN0ICJyZWdpc3Rlci9hbm5vdW5jZSIgdGhlbXNlbHZlcyBhcw0KPj4gPmNhcGFibGUgb2Ygc3Vw cG9ydGluZyAicGFuaWMgd3JpdGVzIiwgaWYgdGhleSBjYW4uIEV4YWN0bHkgaG93IHRvDQo+PiA+ YmVzdCBkbyB0aGlzLCBwcm9iYWJseSBuZWVkcyB0byBiZSBkaXNjdXNzZWQgZnVydGhlciB3aXRo IHRoZSBibG9jaw0KPj4gPmRldmljZSBwZW9wbGUsIEkgdGhpbmsuIEkgaGF2ZSBsb29wZWQgaW4g SmVucyBhbmQgQ2hyaXN0b3BoLCBwZXJoYXBzIHRoZXkNCj5jYW4gc2hhcmUgdGhlaXIgb3Bpbmlv biBpbiB0aGlzLg0KPj4gPg0KPj4gPlRoYXQgc2FpZCwgaXQgbG9va3MgdG8gbWUgdGhhdCBwc3Rv cmUgbmVlZHMgbW9yZSB3b3JrIGJlZm9yZSBpdCdzDQo+PiA+cmVhZHkgdG8gYmUgYWRvcHRlZCBm b3IgZ2VuZXJpYyBzdXBwb3J0IGluIGJsb2NrIGRldmljZSBkcml2ZXJzLg0KPj4gPg0KPj4gPktp bmQgcmVnYXJkcw0KPj4gPlVmZmUNCj4+ID4NCj4+ID4+DQo+PiA+PiBTaWduZWQtb2ZmLWJ5OiBC aGFza2FyYSBCdWRpcmVkbGEgPGJidWRpcmVkbGFAbWFydmVsbC5jb20+DQo+PiA+PiAtLS0NCj4+ ID4+ICBkcml2ZXJzL21tYy9jb3JlL0tjb25maWcgICAgIHwgIDE0ICsrLQ0KPj4gPj4gIGRyaXZl cnMvbW1jL2NvcmUvTWFrZWZpbGUgICAgfCAgIDEgKw0KPj4gPj4gIGRyaXZlcnMvbW1jL2NvcmUv YmxvY2suYyAgICAgfCAgMTkgKysrDQo+PiA+PiAgZHJpdmVycy9tbWMvY29yZS9ibG9jay5oICAg ICB8ICAgOSArKw0KPj4gPj4gIGRyaXZlcnMvbW1jL2NvcmUvY29yZS5jICAgICAgfCAgNDQgKysr KysrKw0KPj4gPj4gIGRyaXZlcnMvbW1jL2NvcmUvbW1jcHN0b3JlLmMgfCAyMjcNCj4+ID4rKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gPj4gIGluY2x1ZGUvbGludXgvbW1j L2NvcmUuaCAgICAgfCAgIDUgKw0KPj4gPj4gIGluY2x1ZGUvbGludXgvbW1jL2hvc3QuaCAgICAg fCAgMTIgKysNCj4+ID4+ICA4IGZpbGVzIGNoYW5nZWQsIDMzMCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pICBjcmVhdGUgbW9kZQ0KPj4gPj4gMTAwNjQ0IGRyaXZlcnMvbW1jL2NvcmUvbW1j cHN0b3JlLmMNCj4+ID4+DQo+PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9LY29u ZmlnIGIvZHJpdmVycy9tbWMvY29yZS9LY29uZmlnDQo+PiA+PiBpbmRleA0KPj4gPj4gYzEyZmUx M2U0YjE0Li40YzY1MWRhNGYyZDIgMTAwNjQ0DQo+PiA+PiAtLS0gYS9kcml2ZXJzL21tYy9jb3Jl L0tjb25maWcNCj4+ID4+ICsrKyBiL2RyaXZlcnMvbW1jL2NvcmUvS2NvbmZpZw0KPj4gPj4gQEAg LTM0LDkgKzM0LDIyIEBAIGNvbmZpZyBQV1JTRVFfU0lNUExFDQo+PiA+PiAgICAgICAgICAgVGhp cyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxl DQo+PiA+PiAgICAgICAgICAgd2lsbCBiZSBjYWxsZWQgcHdyc2VxX3NpbXBsZS4NCj4+ID4+DQo+ PiA+PiArY29uZmlnIE1NQ19QU1RPUkVfQkFDS0VORA0KPj4gPj4gKyAgICAgICBib29sICJMb2cg cGFuaWMvb29wcyB0byBhIE1NQyBidWZmZXIiDQo+PiA+PiArICAgICAgIGRlcGVuZHMgb24gTU1D X0JMT0NLDQo+PiA+PiArICAgICAgIGhlbHANCj4+ID4+ICsgICAgICAgICBUaGlzIG9wdGlvbiB3 aWxsIGxldCB5b3UgY3JlYXRlIHBsYXRmb3JtIGJhY2tlbmQgdG8gc3RvcmUga21zZw0KPj4gPj4g KyAgICAgICAgIGNyYXNoIGR1bXBzIHRvIGEgdXNlciBzcGVjaWZpZWQgTU1DIGRldmljZS4gVGhp cyBpcyBwcmltYXJpbHkNCj4+ID4+ICsgICAgICAgICBiYXNlZCBvbiBwc3RvcmUvYmxrLg0KPj4g Pj4gKw0KPj4gPj4gK2NvbmZpZyBNTUNfUFNUT1JFDQo+PiA+PiArICAgICAgIHRyaXN0YXRlDQo+ PiA+PiArICAgICAgIHNlbGVjdCBQU1RPUkVfQkxLDQo+PiA+PiArDQo+PiA+PiAgY29uZmlnIE1N Q19CTE9DSw0KPj4gPj4gICAgICAgICB0cmlzdGF0ZSAiTU1DIGJsb2NrIGRldmljZSBkcml2ZXIi DQo+PiA+PiAgICAgICAgIGRlcGVuZHMgb24gQkxPQ0sNCj4+ID4+ICsgICAgICAgc2VsZWN0IE1N Q19QU1RPUkUgaWYgTU1DX1BTVE9SRV9CQUNLRU5EPXkNCj4+ID4+ICAgICAgICAgZGVmYXVsdCB5 DQo+PiA+PiAgICAgICAgIGhlbHANCj4+ID4+ICAgICAgICAgICBTYXkgWSBoZXJlIHRvIGVuYWJs ZSB0aGUgTU1DIGJsb2NrIGRldmljZSBkcml2ZXIgc3VwcG9ydC4NCj4+ID4+IEBAIC04MCw0ICs5 MywzIEBAIGNvbmZpZyBNTUNfVEVTVA0KPj4gPj4NCj4+ID4+ICAgICAgICAgICBUaGlzIGRyaXZl ciBpcyBvbmx5IG9mIGludGVyZXN0IHRvIHRob3NlIGRldmVsb3Bpbmcgb3INCj4+ID4+ICAgICAg ICAgICB0ZXN0aW5nIGEgaG9zdCBkcml2ZXIuIE1vc3QgcGVvcGxlIHNob3VsZCBzYXkgTiBoZXJl Lg0KPj4gPj4gLQ0KPj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2NvcmUvTWFrZWZpbGUg Yi9kcml2ZXJzL21tYy9jb3JlL01ha2VmaWxlDQo+PiA+PiBpbmRleCA5NWZmZTAwOGViZGYuLjdj YjlhM2FmNDgyNyAxMDA2NDQNCj4+ID4+IC0tLSBhL2RyaXZlcnMvbW1jL2NvcmUvTWFrZWZpbGUN Cj4+ID4+ICsrKyBiL2RyaXZlcnMvbW1jL2NvcmUvTWFrZWZpbGUNCj4+ID4+IEBAIC0xNiw1ICsx Niw2IEBAIG9iai0kKENPTkZJR19QV1JTRVFfRU1NQykgICAgICs9DQo+cHdyc2VxX2VtbWMubw0K Pj4gPj4gIG1tY19jb3JlLSQoQ09ORklHX0RFQlVHX0ZTKSAgICArPSBkZWJ1Z2ZzLm8NCj4+ID4+ ICBvYmotJChDT05GSUdfTU1DX0JMT0NLKSAgICAgICAgICAgICAgICArPSBtbWNfYmxvY2subw0K Pj4gPj4gIG1tY19ibG9jay1vYmpzICAgICAgICAgICAgICAgICA6PSBibG9jay5vIHF1ZXVlLm8N Cj4+ID4+ICttbWNfYmxvY2stJChDT05GSUdfTU1DX1BTVE9SRSkgKz0gbW1jcHN0b3JlLm8NCj4+ ID4+ICBvYmotJChDT05GSUdfTU1DX1RFU1QpICAgICAgICAgKz0gbW1jX3Rlc3Qubw0KPj4gPj4g IG9iai0kKENPTkZJR19TRElPX1VBUlQpICAgICAgICAgICAgICAgICs9IHNkaW9fdWFydC5vDQo+ PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jIGIvZHJpdmVycy9tbWMv Y29yZS9ibG9jay5jDQo+PiA+PiBpbmRleA0KPj4gPj4gNDJlMjdhMjk4MjE4Li42NTkyNzIyY2Q3 YjIgMTAwNjQ0DQo+PiA+PiAtLS0gYS9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMNCj4+ID4+ICsr KyBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suYw0KPj4gPj4gQEAgLTI4NzAsNiArMjg3MCwyMSBA QCBzdGF0aWMgdm9pZCBtbWNfYmxrX3JlbW92ZV9kZWJ1Z2ZzKHN0cnVjdA0KPj4gPj4gbW1jX2Nh cmQgKmNhcmQsDQo+PiA+Pg0KPj4gPj4gICNlbmRpZiAvKiBDT05GSUdfREVCVUdfRlMgKi8NCj4+ ID4+DQo+PiA+PiArI2lmIElTX0VOQUJMRUQoQ09ORklHX01NQ19QU1RPUkUpDQo+PiA+PiArc2Vj dG9yX3QgbW1jX2Jsa19nZXRfcGFydChzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQsIGludCBwYXJ0X251 bSwNCj4+ID4+ICtzZWN0b3JfdCAqc2l6ZSkgew0KPj4gPj4gKyAgICAgICBzdHJ1Y3QgbW1jX2Js a19kYXRhICptZCA9IGRldl9nZXRfZHJ2ZGF0YSgmY2FyZC0+ZGV2KTsNCj4+ID4+ICsgICAgICAg c3RydWN0IGdlbmRpc2sgKmRpc2sgPSBtZC0+ZGlzazsNCj4+ID4+ICsgICAgICAgc3RydWN0IGRp c2tfcGFydF90YmwgKnBhcnRfdGJsID0gZGlzay0+cGFydF90Ymw7DQo+PiA+PiArDQo+PiA+PiAr ICAgICAgIGlmIChwYXJ0X251bSA8IDAgfHwgcGFydF9udW0gPj0gcGFydF90YmwtPmxlbikNCj4+ ID4+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4+ID4+ICsNCj4+ID4+ICsgICAgICAgKnNp emUgPSBwYXJ0X3RibC0+cGFydFtwYXJ0X251bV0tPm5yX3NlY3RzIDw8IFNFQ1RPUl9TSElGVDsN Cj4+ID4+ICsgICAgICAgcmV0dXJuIHBhcnRfdGJsLT5wYXJ0W3BhcnRfbnVtXS0+c3RhcnRfc2Vj dDsNCj4+ID4+ICt9DQo+PiA+PiArI2VuZGlmDQo+PiA+PiArDQo+PiA+PiAgc3RhdGljIGludCBt bWNfYmxrX3Byb2JlKHN0cnVjdCBtbWNfY2FyZCAqY2FyZCkgIHsNCj4+ID4+ICAgICAgICAgc3Ry dWN0IG1tY19ibGtfZGF0YSAqbWQsICpwYXJ0X21kOyBAQCAtMjkxMyw2ICsyOTI4LDkgQEANCj4+ ID4+IHN0YXRpYyBpbnQgbW1jX2Jsa19wcm9iZShzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQpDQo+PiA+ PiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsNCj4+ID4+ICAgICAgICAgfQ0KPj4g Pj4NCj4+ID4+ICsgICAgICAgaWYgKG1tY19jYXJkX21tYyhjYXJkKSB8fCBtbWNfY2FyZF9zZChj YXJkKSkNCj4+ID4+ICsgICAgICAgICAgICAgICBtbWNwc3RvcmVfY2FyZF9zZXQoY2FyZCwgbWQt PmRpc2stPmRpc2tfbmFtZSk7DQo+PiA+PiArDQo+PiA+PiAgICAgICAgIC8qIEFkZCB0d28gZGVi dWdmcyBlbnRyaWVzICovDQo+PiA+PiAgICAgICAgIG1tY19ibGtfYWRkX2RlYnVnZnMoY2FyZCwg bWQpOw0KPj4gPj4NCj4+ID4+IEBAIC0zMDYwLDYgKzMwNzgsNyBAQCBzdGF0aWMgdm9pZCBfX2V4 aXQgbW1jX2Jsa19leGl0KHZvaWQpDQo+PiA+PiAgICAgICAgIHVucmVnaXN0ZXJfYmxrZGV2KE1N Q19CTE9DS19NQUpPUiwgIm1tYyIpOw0KPj4gPj4gICAgICAgICB1bnJlZ2lzdGVyX2NocmRldl9y ZWdpb24obW1jX3JwbWJfZGV2dCwgTUFYX0RFVklDRVMpOw0KPj4gPj4gICAgICAgICBidXNfdW5y ZWdpc3RlcigmbW1jX3JwbWJfYnVzX3R5cGUpOw0KPj4gPj4gKyAgICAgICB1bnJlZ2lzdGVyX21t Y3BzdG9yZSgpOw0KPj4gPj4gIH0NCj4+ID4+DQo+PiA+PiAgbW9kdWxlX2luaXQobW1jX2Jsa19p bml0KTsNCj4+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmggYi9kcml2 ZXJzL21tYy9jb3JlL2Jsb2NrLmgNCj4+ID4+IGluZGV4DQo+PiA+PiAzMTE1M2Y2NTZmNDEuLjJh NGVlNTU2ODE5NCAxMDA2NDQNCj4+ID4+IC0tLSBhL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suaA0K Pj4gPj4gKysrIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5oDQo+PiA+PiBAQCAtMTYsNSArMTYs MTQgQEAgdm9pZCBtbWNfYmxrX21xX3JlY292ZXJ5KHN0cnVjdCBtbWNfcXVldWUNCj4+ID4qbXEp Ow0KPj4gPj4gc3RydWN0IHdvcmtfc3RydWN0Ow0KPj4gPj4NCj4+ID4+ICB2b2lkIG1tY19ibGtf bXFfY29tcGxldGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOw0KPj4gPj4gKyNpZiBJ U19FTkFCTEVEKENPTkZJR19NTUNfUFNUT1JFKQ0KPj4gPj4gK3NlY3Rvcl90IG1tY19ibGtfZ2V0 X3BhcnQoc3RydWN0IG1tY19jYXJkICpjYXJkLCBpbnQgcGFydF9udW0sDQo+PiA+PiArc2VjdG9y X3QgKnNpemUpOyB2b2lkIG1tY3BzdG9yZV9jYXJkX3NldChzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQs DQo+PiA+PiArY29uc3QgY2hhciAqZGlza19uYW1lKTsgdm9pZCB1bnJlZ2lzdGVyX21tY3BzdG9y ZSh2b2lkKTsgI2Vsc2UNCj4+ID4+ICtzdGF0aWMgaW5saW5lIHZvaWQgbW1jcHN0b3JlX2NhcmRf c2V0KHN0cnVjdCBtbWNfY2FyZCAqY2FyZCwNCj4+ID4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkaXNrX25hbWUpIHt9DQo+PiA+PiArc3RhdGlj IGlubGluZSB2b2lkIHVucmVnaXN0ZXJfbW1jcHN0b3JlKHZvaWQpIHt9ICNlbmRpZg0KPj4gPj4N Cj4+ID4+ICAjZW5kaWYNCj4+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL2NvcmUu YyBiL2RyaXZlcnMvbW1jL2NvcmUvY29yZS5jDQo+PiA+PiBpbmRleCAxOWYxZWU1N2ZiMzQuLjdh ZDdmZjFjYWI4YyAxMDA2NDQNCj4+ID4+IC0tLSBhL2RyaXZlcnMvbW1jL2NvcmUvY29yZS5jDQo+ PiA+PiArKysgYi9kcml2ZXJzL21tYy9jb3JlL2NvcmUuYw0KPj4gPj4gQEAgLTU2OSw2ICs1Njks MzAgQEAgaW50IG1tY19jcWVfcmVjb3Zlcnkoc3RydWN0IG1tY19ob3N0ICpob3N0KQ0KPn0NCj4+ ID4+IEVYUE9SVF9TWU1CT0wobW1jX2NxZV9yZWNvdmVyeSk7DQo+PiA+Pg0KPj4gPj4gKyNpZiBJ U19FTkFCTEVEKENPTkZJR19NTUNfUFNUT1JFKQ0KPj4gPj4gKy8qKg0KPj4gPj4gKyAqICAgICBt bWNfd2FpdF9mb3JfcHN0b3JlX3JlcSAtIGluaXRpYXRlIGEgYmxvY2tpbmcgbW1jIHJlcXVlc3QN Cj4+ID4+ICsgKiAgICAgQGhvc3Q6IE1NQyBob3N0IHRvIHN0YXJ0IGNvbW1hbmQNCj4+ID4+ICsg KiAgICAgQG1ycTogTU1DIHJlcXVlc3QgdG8gc3RhcnQNCj4+ID4+ICsgKg0KPj4gPj4gKyAqICAg ICBTdGFydCBhIGJsb2NraW5nIE1NQyByZXF1ZXN0IGZvciBhIGhvc3QgYW5kIHdhaXQgZm9yIHRo ZSByZXF1ZXN0DQo+PiA+PiArICogICAgIHRvIGNvbXBsZXRlIHRoYXQgaXMgYmFzZWQgb24gcG9s bGluZyBhbmQgdGltZW91dC4NCj4+ID4+ICsgKi8NCj4+ID4+ICt2b2lkIG1tY193YWl0X2Zvcl9w c3RvcmVfcmVxKHN0cnVjdCBtbWNfaG9zdCAqaG9zdCwgc3RydWN0DQo+PiA+PiArbW1jX3JlcXVl c3QgKm1ycSkgew0KPj4gPj4gKyAgICAgICB1bnNpZ25lZCBpbnQgdGltZW91dDsNCj4+ID4+ICsN Cj4+ID4+ICsgICAgICAgaG9zdC0+b3BzLT5yZXFfY2xlYW51cF9wZW5kaW5nKGhvc3QpOw0KPj4g Pj4gKyAgICAgICBtbWNfc3RhcnRfcmVxdWVzdChob3N0LCBtcnEpOw0KPj4gPj4gKw0KPj4gPj4g KyAgICAgICBpZiAobXJxLT5kYXRhKSB7DQo+PiA+PiArICAgICAgICAgICAgICAgdGltZW91dCA9 IG1ycS0+ZGF0YS0+dGltZW91dF9ucyAvIE5TRUNfUEVSX01TRUM7DQo+PiA+PiArICAgICAgICAg ICAgICAgaG9zdC0+b3BzLT5yZXFfY29tcGxldGlvbl9wb2xsKGhvc3QsIHRpbWVvdXQpOw0KPj4g Pj4gKyAgICAgICB9DQo+PiA+PiArfQ0KPj4gPj4gK0VYUE9SVF9TWU1CT0wobW1jX3dhaXRfZm9y X3BzdG9yZV9yZXEpOw0KPj4gPj4gKyNlbmRpZg0KPj4gPj4gKw0KPj4gPj4gIC8qKg0KPj4gPj4g ICAqICAgICBtbWNfaXNfcmVxX2RvbmUgLSBEZXRlcm1pbmUgaWYgYSAnY2FwX2NtZF9kdXJpbmdf dGZyJyByZXF1ZXN0IGlzDQo+PiA+ZG9uZQ0KPj4gPj4gICAqICAgICBAaG9zdDogTU1DIGhvc3QN Cj4+ID4+IEBAIC04MTcsNiArODQxLDI2IEBAIGludCBfX21tY19jbGFpbV9ob3N0KHN0cnVjdCBt bWNfaG9zdCAqaG9zdCwNCj4+ID4+IHN0cnVjdCBtbWNfY3R4ICpjdHgsICB9ICBFWFBPUlRfU1lN Qk9MKF9fbW1jX2NsYWltX2hvc3QpOw0KPj4gPj4NCj4+ID4+ICsjaWYgSVNfRU5BQkxFRChDT05G SUdfTU1DX1BTVE9SRSkNCj4+ID4+ICsvKioNCj4+ID4+ICsgKiAgICAgbW1jX2NsYWltX2hvc3Rf YXN5bmMgLSBjbGFpbSBob3N0IGluIGF0b21pYyBjb250ZXh0DQo+PiA+PiArICogICAgIEBob3N0 OiBtbWMgaG9zdCB0byBjbGFpbQ0KPj4gPj4gKyAqDQo+PiA+PiArICogICAgIFRoaXMgcm91dGlu ZSBtYXkgYmUgY2FsbGVkIGluIHBhbmljL29vcHMgc2NlbmFyaW9zLg0KPj4gPj4gKyAqICAgICBS ZXR1cm4gemVybyB3aXRoIGhvc3QgY2xhaW0gc3VjY2VzcywgZWxzZSBidXN5IHN0YXR1cy4NCj4+ ID4+ICsgKi8NCj4+ID4+ICtpbnQgbW1jX2NsYWltX2hvc3RfYXN5bmMoc3RydWN0IG1tY19ob3N0 ICpob3N0KSB7DQo+PiA+PiArICAgICAgIGlmICghaG9zdC0+Y2xhaW1lZCAmJiBwbV9ydW50aW1l X2FjdGl2ZShtbWNfZGV2KGhvc3QpKSkgew0KPj4gPj4gKyAgICAgICAgICAgICAgIGhvc3QtPmNs YWltZWQgPSAxOw0KPj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0KPj4gPj4gKyAgICAg ICB9DQo+PiA+PiArDQo+PiA+PiArICAgICAgIHJldHVybiAtRUJVU1k7DQo+PiA+PiArfQ0KPj4g Pj4gK0VYUE9SVF9TWU1CT0wobW1jX2NsYWltX2hvc3RfYXN5bmMpOw0KPj4gPj4gKyNlbmRpZg0K Pj4gPj4gKw0KPj4gPj4gIC8qKg0KPj4gPj4gICAqICAgICBtbWNfcmVsZWFzZV9ob3N0IC0gcmVs ZWFzZSBhIGhvc3QNCj4+ID4+ICAgKiAgICAgQGhvc3Q6IG1tYyBob3N0IHRvIHJlbGVhc2UNCj4+ ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL21tY3BzdG9yZS5jDQo+PiA+PiBiL2Ry aXZlcnMvbW1jL2NvcmUvbW1jcHN0b3JlLmMgbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4+ ID4+IDAwMDAwMDAwMDAwMC4uZjc4M2VhMjE1ZjE4DQo+PiA+PiAtLS0gL2Rldi9udWxsDQo+PiA+ PiArKysgYi9kcml2ZXJzL21tYy9jb3JlL21tY3BzdG9yZS5jDQo+PiA+PiBAQCAtMCwwICsxLDIy NyBAQA0KPj4gPj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+PiA+PiAr LyoNCj4+ID4+ICsgKiBNTUMgcHN0b3JlIHN1cHBvcnQgYmFzZWQgb24gcHN0b3JlL2Jsaw0KPj4g Pj4gKyAqDQo+PiA+PiArICogQ29weXJpZ2h0IChjKSAyMDIwIE1hcnZlbGwuDQo+PiA+PiArICog QXV0aG9yOiBCaGFza2FyYSBCdWRpcmVkbGEgPGJidWRpcmVkbGFAbWFydmVsbC5jb20+ICAqLw0K Pj4gPj4gKw0KPj4gPj4gKyNkZWZpbmUgcHJfZm10KGZtdCkgIm1tY3BzdG9yZTogIiBmbXQNCj4+ ID4+ICsNCj4+ID4+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+DQo+PiA+PiArI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPg0KPj4gPj4gKyNpbmNsdWRlIDxsaW51eC9wc3RvcmVfYmxrLmg+DQo+ PiA+PiArI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPg0KPj4gPj4gKyNpbmNsdWRlIDxsaW51eC9t b3VudC5oPg0KPj4gPj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+PiA+PiArI2luY2x1ZGUg PGxpbnV4L21tYy9tbWMuaD4NCj4+ID4+ICsjaW5jbHVkZSA8bGludXgvbW1jL2hvc3QuaD4NCj4+ ID4+ICsjaW5jbHVkZSA8bGludXgvbW1jL2NhcmQuaD4NCj4+ID4+ICsjaW5jbHVkZSA8bGludXgv c2NhdHRlcmxpc3QuaD4NCj4+ID4+ICsjaW5jbHVkZSAiYmxvY2suaCINCj4+ID4+ICsjaW5jbHVk ZSAiY2FyZC5oIg0KPj4gPj4gKyNpbmNsdWRlICJjb3JlLmgiDQo+PiA+PiArDQo+PiA+PiArc3Rh dGljIHN0cnVjdCBtbWNwc3RvcmVfY29udGV4dCB7DQo+PiA+PiArICAgICAgIGNoYXIgZGV2X25h bWVbQkRFVk5BTUVfU0laRV07DQo+PiA+PiArICAgICAgIGludCBwYXJ0bm87DQo+PiA+PiArICAg ICAgIHNlY3Rvcl90IHN0YXJ0X3NlY3Q7DQo+PiA+PiArICAgICAgIHNlY3Rvcl90IHNpemU7DQo+ PiA+PiArICAgICAgIHN0cnVjdCBwc3RvcmVfYmxrX2NvbmZpZyBjb25mOw0KPj4gPj4gKyAgICAg ICBzdHJ1Y3QgcHN0b3JlX2Jsa19pbmZvIGluZm87DQo+PiA+PiArDQo+PiA+PiArICAgICAgIHN0 cnVjdCBtbWNfY2FyZCAqY2FyZDsNCj4+ID4+ICsgICAgICAgc3RydWN0IG1tY19yZXF1ZXN0ICpt cnE7DQo+PiA+PiArfSBvb3BzX2N4dDsNCj4+ID4+ICsNCj4+ID4+ICtzdGF0aWMgdm9pZCBtbWNf cHJlcF9yZXEoc3RydWN0IG1tY19yZXF1ZXN0ICptcnEsDQo+PiA+PiArICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IHNlY3Rfb2Zmc2V0LCB1bnNpZ25lZCBpbnQgbnNlY3RzLA0KPj4gPj4gKyAg ICAgICAgICAgICAgIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIHUzMiBvcGNvZGUsIHVuc2lnbmVk IGludA0KPj4gPj4gK2ZsYWdzKSB7DQo+PiA+PiArICAgICAgIG1ycS0+Y21kLT5vcGNvZGUgPSBv cGNvZGU7DQo+PiA+PiArICAgICAgIG1ycS0+Y21kLT5hcmcgPSBzZWN0X29mZnNldDsNCj4+ID4+ ICsgICAgICAgbXJxLT5jbWQtPmZsYWdzID0gTU1DX1JTUF9SMSB8IE1NQ19DTURfQURUQzsNCj4+ ID4+ICsNCj4+ID4+ICsgICAgICAgaWYgKG5zZWN0cyA9PSAxKSB7DQo+PiA+PiArICAgICAgICAg ICAgICAgbXJxLT5zdG9wID0gTlVMTDsNCj4+ID4+ICsgICAgICAgfSBlbHNlIHsNCj4+ID4+ICsg ICAgICAgICAgICAgICBtcnEtPnN0b3AtPm9wY29kZSA9IE1NQ19TVE9QX1RSQU5TTUlTU0lPTjsN Cj4+ID4+ICsgICAgICAgICAgICAgICBtcnEtPnN0b3AtPmFyZyA9IDA7DQo+PiA+PiArICAgICAg ICAgICAgICAgbXJxLT5zdG9wLT5mbGFncyA9IE1NQ19SU1BfUjFCIHwgTU1DX0NNRF9BQzsNCj4+ ID4+ICsgICAgICAgfQ0KPj4gPj4gKw0KPj4gPj4gKyAgICAgICBtcnEtPmRhdGEtPmJsa3N6ID0g U0VDVE9SX1NJWkU7DQo+PiA+PiArICAgICAgIG1ycS0+ZGF0YS0+YmxvY2tzID0gbnNlY3RzOw0K Pj4gPj4gKyAgICAgICBtcnEtPmRhdGEtPmZsYWdzID0gZmxhZ3M7DQo+PiA+PiArICAgICAgIG1y cS0+ZGF0YS0+c2cgPSBzZzsNCj4+ID4+ICsgICAgICAgbXJxLT5kYXRhLT5zZ19sZW4gPSAxOw0K Pj4gPj4gK30NCj4+ID4+ICsNCj4+ID4+ICtzdGF0aWMgaW50IG1tY3BzdG9yZV9wYW5pY193cml0 ZV9yZXEoY29uc3QgY2hhciAqYnVmLA0KPj4gPj4gKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBuc2VjdHMsIHVuc2lnbmVkIGludCBzZWN0X29mZnNldCkgew0KPj4gPj4gKyAgICAgICBzdHJ1 Y3QgbW1jcHN0b3JlX2NvbnRleHQgKmN4dCA9ICZvb3BzX2N4dDsNCj4+ID4+ICsgICAgICAgc3Ry dWN0IG1tY19yZXF1ZXN0ICptcnEgPSBjeHQtPm1ycTsNCj4+ID4+ICsgICAgICAgc3RydWN0IG1t Y19jYXJkICpjYXJkID0gY3h0LT5jYXJkOw0KPj4gPj4gKyAgICAgICBzdHJ1Y3QgbW1jX2hvc3Qg Kmhvc3QgPSBjYXJkLT5ob3N0Ow0KPj4gPj4gKyAgICAgICBzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7 DQo+PiA+PiArICAgICAgIHUzMiBvcGNvZGU7DQo+PiA+PiArICAgICAgIGludCByZXQ7DQo+PiA+ PiArDQo+PiA+PiArICAgICAgIG9wY29kZSA9IChuc2VjdHMgPiAxKSA/IE1NQ19XUklURV9NVUxU SVBMRV9CTE9DSyA6DQo+PiA+TU1DX1dSSVRFX0JMT0NLOw0KPj4gPj4gKyAgICAgICBtbWNfcHJl cF9yZXEobXJxLCBzZWN0X29mZnNldCwgbnNlY3RzLCAmc2csIG9wY29kZSwNCj4+ID5NTUNfREFU QV9XUklURSk7DQo+PiA+PiArICAgICAgIHNnX2luaXRfb25lKCZzZywgYnVmLCAobnNlY3RzIDw8 IFNFQ1RPUl9TSElGVCkpOw0KPj4gPj4gKyAgICAgICBtbWNfc2V0X2RhdGFfdGltZW91dChtcnEt PmRhdGEsIGN4dC0+Y2FyZCk7DQo+PiA+PiArDQo+PiA+PiArICAgICAgIHJldCA9IG1tY19jbGFp bV9ob3N0X2FzeW5jKGhvc3QpOw0KPj4gPj4gKyAgICAgICBpZiAocmV0KQ0KPj4gPj4gKyAgICAg ICAgICAgICAgIHJldHVybiByZXQ7DQo+PiA+PiArDQo+PiA+PiArICAgICAgIG1tY193YWl0X2Zv cl9wc3RvcmVfcmVxKGhvc3QsIG1ycSk7DQo+PiA+PiArICAgICAgIHJldHVybiAwOw0KPj4gPj4g K30NCj4+ID4+ICsNCj4+ID4+ICtzdGF0aWMgaW50IG1tY3BzdG9yZV9wYW5pY193cml0ZShjb25z dCBjaGFyICpidWYsIHNlY3Rvcl90IG9mZiwNCj4+ID4+ICtzZWN0b3JfdCBzZWN0cykgew0KPj4g Pj4gKyAgICAgICBzdHJ1Y3QgbW1jcHN0b3JlX2NvbnRleHQgKmN4dCA9ICZvb3BzX2N4dDsNCj4+ ID4+ICsgICAgICAgaW50IHJldDsNCj4+ID4+ICsNCj4+ID4+ICsgICAgICAgcmV0ID0gbW1jcHN0 b3JlX3BhbmljX3dyaXRlX3JlcShidWYsIHNlY3RzLCBjeHQtPnN0YXJ0X3NlY3QgKyBvZmYpOw0K Pj4gPj4gKyAgICAgICBpZiAocmV0KQ0KPj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7 DQo+PiA+PiArDQo+PiA+PiArICAgICAgIHJldHVybiAwOw0KPj4gPj4gK30NCj4+ID4+ICsNCj4+ ID4+ICtzdGF0aWMgc3RydWN0IGJsb2NrX2RldmljZSAqbW1jcHN0b3JlX29wZW5fYmFja2VuZChj b25zdCBjaGFyDQo+PiA+PiArKmRldmljZSkgew0KPj4gPj4gKyAgICAgICBzdHJ1Y3QgYmxvY2tf ZGV2aWNlICpiZGV2Ow0KPj4gPj4gKyAgICAgICBkZXZfdCBkZXZ0Ow0KPj4gPj4gKw0KPj4gPj4g KyAgICAgICBiZGV2ID0gYmxrZGV2X2dldF9ieV9wYXRoKGRldmljZSwgRk1PREVfUkVBRCwgTlVM TCk7DQo+PiA+PiArICAgICAgIGlmIChJU19FUlIoYmRldikpIHsNCj4+ID4+ICsgICAgICAgICAg ICAgICBkZXZ0ID0gbmFtZV90b19kZXZfdChkZXZpY2UpOw0KPj4gPj4gKyAgICAgICAgICAgICAg IGlmIChkZXZ0ID09IDApDQo+PiA+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJS X1BUUigtRU5PREVWKTsNCj4+ID4+ICsNCj4+ID4+ICsgICAgICAgICAgICAgICBiZGV2ID0gYmxr ZGV2X2dldF9ieV9kZXYoZGV2dCwgRk1PREVfUkVBRCwgTlVMTCk7DQo+PiA+PiArICAgICAgICAg ICAgICAgaWYgKElTX0VSUihiZGV2KSkNCj4+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBiZGV2Ow0KPj4gPj4gKyAgICAgICB9DQo+PiA+PiArDQo+PiA+PiArICAgICAgIHJldHVy biBiZGV2Ow0KPj4gPj4gK30NCj4+ID4+ICsNCj4+ID4+ICtzdGF0aWMgdm9pZCBtbWNwc3RvcmVf Y2xvc2VfYmFja2VuZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KSB7DQo+PiA+PiArICAgICAg IGlmICghYmRldikNCj4+ID4+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+PiA+PiArICAgICAg IGJsa2Rldl9wdXQoYmRldiwgRk1PREVfUkVBRCk7IH0NCj4+ID4+ICsNCj4+ID4+ICt2b2lkIG1t Y3BzdG9yZV9jYXJkX3NldChzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQsIGNvbnN0IGNoYXINCj4+ID4+ ICsqZGlza19uYW1lKSB7DQo+PiA+PiArICAgICAgIHN0cnVjdCBtbWNwc3RvcmVfY29udGV4dCAq Y3h0ID0gJm9vcHNfY3h0Ow0KPj4gPj4gKyAgICAgICBzdHJ1Y3QgcHN0b3JlX2Jsa19jb25maWcg KmNvbmYgPSAmY3h0LT5jb25mOw0KPj4gPj4gKyAgICAgICBzdHJ1Y3QgcHN0b3JlX2Jsa19pbmZv ICppbmZvID0gJmN4dC0+aW5mbzsNCj4+ID4+ICsgICAgICAgc3RydWN0IGJsb2NrX2RldmljZSAq YmRldjsNCj4+ID4+ICsgICAgICAgc3RydWN0IG1tY19jb21tYW5kICpzdG9wOw0KPj4gPj4gKyAg ICAgICBzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZDsNCj4+ID4+ICsgICAgICAgc3RydWN0IG1tY19y ZXF1ZXN0ICptcnE7DQo+PiA+PiArICAgICAgIHN0cnVjdCBtbWNfZGF0YSAqZGF0YTsNCj4+ID4+ ICsgICAgICAgaW50IHJldDsNCj4+ID4+ICsNCj4+ID4+ICsgICAgICAgcmV0ID0gcHN0b3JlX2Js a19nZXRfY29uZmlnKGNvbmYpOw0KPj4gPj4gKyAgICAgICBpZiAoIWNvbmYtPmRldmljZVswXSkg ew0KPj4gPj4gKyAgICAgICAgICAgICAgIHByX2RlYnVnKCJwc2JsayBiYWNrZW5kIGlzIGVtcHR5 XG4iKTsNCj4+ID4+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+PiA+PiArICAgICAgIH0NCj4+ ID4+ICsNCj4+ID4+ICsgICAgICAgLyogTXVsdGlwbGUgYmFja2VuZCBkZXZpY2VzIG5vdCBhbGxv d2VkICovDQo+PiA+PiArICAgICAgIGlmIChjeHQtPmRldl9uYW1lWzBdKQ0KPj4gPj4gKyAgICAg ICAgICAgICAgIHJldHVybjsNCj4+ID4+ICsNCj4+ID4+ICsgICAgICAgYmRldiA9ICBtbWNwc3Rv cmVfb3Blbl9iYWNrZW5kKGNvbmYtPmRldmljZSk7DQo+PiA+PiArICAgICAgIGlmIChJU19FUlIo YmRldikpIHsNCj4+ID4+ICsgICAgICAgICAgICAgICBwcl9lcnIoIiVzIGZhaWxlZCB0byBvcGVu IHdpdGggJWxkXG4iLA0KPj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25m LT5kZXZpY2UsIFBUUl9FUlIoYmRldikpOw0KPj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybjsN Cj4+ID4+ICsgICAgICAgfQ0KPj4gPj4gKw0KPj4gPj4gKyAgICAgICBiZGV2bmFtZShiZGV2LCBj eHQtPmRldl9uYW1lKTsNCj4+ID4+ICsgICAgICAgY3h0LT5wYXJ0bm8gPSBiZGV2LT5iZF9wYXJ0 LT5wYXJ0bm87DQo+PiA+PiArICAgICAgIG1tY3BzdG9yZV9jbG9zZV9iYWNrZW5kKGJkZXYpOw0K Pj4gPj4gKw0KPj4gPj4gKyAgICAgICBpZiAoc3RybmNtcChjeHQtPmRldl9uYW1lLCBkaXNrX25h bWUsIHN0cmxlbihkaXNrX25hbWUpKSkNCj4+ID4+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ PiA+PiArDQo+PiA+PiArICAgICAgIGN4dC0+c3RhcnRfc2VjdCA9IG1tY19ibGtfZ2V0X3BhcnQo Y2FyZCwgY3h0LT5wYXJ0bm8sICZjeHQtPnNpemUpOw0KPj4gPj4gKyAgICAgICBpZiAoIWN4dC0+ c3RhcnRfc2VjdCkgew0KPj4gPj4gKyAgICAgICAgICAgICAgIHByX2VycigiTm9uLWV4aXN0ZW50 IHBhcnRpdGlvbiAlZCBzZWxlY3RlZFxuIiwgY3h0LT5wYXJ0bm8pOw0KPj4gPj4gKyAgICAgICAg ICAgICAgIHJldHVybjsNCj4+ID4+ICsgICAgICAgfQ0KPj4gPj4gKw0KPj4gPj4gKyAgICAgICAv KiBDaGVjayBmb3IgaG9zdCBtbWMgcGFuaWMgd3JpdGUgcG9sbGluZyBmdW5jdGlvbiBkZWZpbml0 aW9ucyAqLw0KPj4gPj4gKyAgICAgICBpZiAoIWNhcmQtPmhvc3QtPm9wcy0+cmVxX2NsZWFudXBf cGVuZGluZyB8fA0KPj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIWNhcmQtPmhvc3QtPm9w cy0+cmVxX2NvbXBsZXRpb25fcG9sbCkNCj4+ID4+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ PiA+PiArDQo+PiA+PiArICAgICAgIGN4dC0+Y2FyZCA9IGNhcmQ7DQo+PiA+PiArDQo+PiA+PiAr ICAgICAgIG1ycSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtbWNfcmVxdWVzdCksIEdGUF9LRVJO RUwpOw0KPj4gPj4gKyAgICAgICBpZiAoIW1ycSkNCj4+ID4+ICsgICAgICAgICAgICAgICBnb3Rv IG91dDsNCj4+ID4+ICsNCj4+ID4+ICsgICAgICAgY21kID0ga3phbGxvYyhzaXplb2Yoc3RydWN0 IG1tY19jb21tYW5kKSwgR0ZQX0tFUk5FTCk7DQo+PiA+PiArICAgICAgIGlmICghY21kKQ0KPj4g Pj4gKyAgICAgICAgICAgICAgIGdvdG8gZnJlZV9tcnE7DQo+PiA+PiArDQo+PiA+PiArICAgICAg IHN0b3AgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbW1jX2NvbW1hbmQpLCBHRlBfS0VSTkVMKTsN Cj4+ID4+ICsgICAgICAgaWYgKCFzdG9wKQ0KPj4gPj4gKyAgICAgICAgICAgICAgIGdvdG8gZnJl ZV9jbWQ7DQo+PiA+PiArDQo+PiA+PiArICAgICAgIGRhdGEgPSBremFsbG9jKHNpemVvZihzdHJ1 Y3QgbW1jX2RhdGEpLCBHRlBfS0VSTkVMKTsNCj4+ID4+ICsgICAgICAgaWYgKCFkYXRhKQ0KPj4g Pj4gKyAgICAgICAgICAgICAgIGdvdG8gZnJlZV9zdG9wOw0KPj4gPj4gKw0KPj4gPj4gKyAgICAg ICBtcnEtPmNtZCA9IGNtZDsNCj4+ID4+ICsgICAgICAgbXJxLT5kYXRhID0gZGF0YTsNCj4+ID4+ ICsgICAgICAgbXJxLT5zdG9wID0gc3RvcDsNCj4+ID4+ICsgICAgICAgY3h0LT5tcnEgPSBtcnE7 DQo+PiA+PiArDQo+PiA+PiArICAgICAgIGluZm8tPm1ham9yID0gTU1DX0JMT0NLX01BSk9SOw0K Pj4gPj4gKyAgICAgICBpbmZvLT5mbGFncyA9IFBTVE9SRV9GTEFHU19ETUVTRzsNCj4+ID4+ICsg ICAgICAgaW5mby0+cGFuaWNfd3JpdGUgPSBtbWNwc3RvcmVfcGFuaWNfd3JpdGU7DQo+PiA+PiAr ICAgICAgIHJldCA9IHJlZ2lzdGVyX3BzdG9yZV9ibGsoaW5mbyk7DQo+PiA+PiArICAgICAgIGlm IChyZXQpIHsNCj4+ID4+ICsgICAgICAgICAgICAgICBwcl9lcnIoIiVzIHJlZ2lzdGVyaW5nIHdp dGggcHNibGsgZmFpbGVkICglZClcbiIsDQo+PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGN4dC0+ZGV2X25hbWUsIHJldCk7DQo+PiA+PiArICAgICAgICAgICAgICAgZ290byBm cmVlX2RhdGE7DQo+PiA+PiArICAgICAgIH0NCj4+ID4+ICsNCj4+ID4+ICsgICAgICAgcHJfaW5m bygiJXMgcmVnaXN0ZXJlZCBhcyBwc2JsayBiYWNrZW5kXG4iLCBjeHQtPmRldl9uYW1lKTsNCj4+ ID4+ICsgICAgICAgcmV0dXJuOw0KPj4gPj4gKw0KPj4gPj4gK2ZyZWVfZGF0YToNCj4+ID4+ICsg ICAgICAga2ZyZWUoZGF0YSk7DQo+PiA+PiArZnJlZV9zdG9wOg0KPj4gPj4gKyAgICAgICBrZnJl ZShzdG9wKTsNCj4+ID4+ICtmcmVlX2NtZDoNCj4+ID4+ICsgICAgICAga2ZyZWUoY21kKTsNCj4+ ID4+ICtmcmVlX21ycToNCj4+ID4+ICsgICAgICAga2ZyZWUobXJxKTsNCj4+ID4+ICtvdXQ6DQo+ PiA+PiArICAgICAgIHJldHVybjsNCj4+ID4+ICt9DQo+PiA+PiArDQo+PiA+PiArdm9pZCB1bnJl Z2lzdGVyX21tY3BzdG9yZSh2b2lkKQ0KPj4gPj4gK3sNCj4+ID4+ICsgICAgICAgc3RydWN0IG1t Y3BzdG9yZV9jb250ZXh0ICpjeHQgPSAmb29wc19jeHQ7DQo+PiA+PiArDQo+PiA+PiArICAgICAg IHVucmVnaXN0ZXJfcHN0b3JlX2JsayhNTUNfQkxPQ0tfTUFKT1IpOw0KPj4gPj4gKyAgICAgICBr ZnJlZShjeHQtPm1ycS0+ZGF0YSk7DQo+PiA+PiArICAgICAgIGtmcmVlKGN4dC0+bXJxLT5zdG9w KTsNCj4+ID4+ICsgICAgICAga2ZyZWUoY3h0LT5tcnEtPmNtZCk7DQo+PiA+PiArICAgICAgIGtm cmVlKGN4dC0+bXJxKTsNCj4+ID4+ICsgICAgICAgY3h0LT5jYXJkID0gTlVMTDsNCj4+ID4+ICt9 DQo+PiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbWMvY29yZS5oIGIvaW5jbHVkZS9s aW51eC9tbWMvY29yZS5oDQo+PiA+PiBpbmRleCAyOWFhNTA3MTE2MjYuLjUzODQwYTM2MWI1YSAx MDA2NDQNCj4+ID4+IC0tLSBhL2luY2x1ZGUvbGludXgvbW1jL2NvcmUuaA0KPj4gPj4gKysrIGIv aW5jbHVkZS9saW51eC9tbWMvY29yZS5oDQo+PiA+PiBAQCAtMTY2LDYgKzE2NiwxMSBAQCBzdHJ1 Y3QgbW1jX3JlcXVlc3Qgew0KPj4gPj4NCj4+ID4+ICBzdHJ1Y3QgbW1jX2NhcmQ7DQo+PiA+Pg0K Pj4gPj4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19NTUNfUFNUT1JFKQ0KPj4gPj4gK3ZvaWQgbW1j X3dhaXRfZm9yX3BzdG9yZV9yZXEoc3RydWN0IG1tY19ob3N0ICpob3N0LCBzdHJ1Y3QNCj4+ID4+ ICttbWNfcmVxdWVzdCAqbXJxKTsgaW50IG1tY19jbGFpbV9ob3N0X2FzeW5jKHN0cnVjdCBtbWNf aG9zdA0KPj4gPj4gKypob3N0KTsgI2VuZGlmDQo+PiA+PiArDQo+PiA+PiAgdm9pZCBtbWNfd2Fp dF9mb3JfcmVxKHN0cnVjdCBtbWNfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19yZXF1ZXN0DQo+PiA+ PiAqbXJxKTsgIGludCBtbWNfd2FpdF9mb3JfY21kKHN0cnVjdCBtbWNfaG9zdCAqaG9zdCwgc3Ry dWN0DQo+PiA+bW1jX2NvbW1hbmQgKmNtZCwNCj4+ID4+ICAgICAgICAgICAgICAgICBpbnQgcmV0 cmllcyk7DQo+PiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbWMvaG9zdC5oIGIvaW5j bHVkZS9saW51eC9tbWMvaG9zdC5oDQo+PiA+PiBpbmRleA0KPj4gPj4gMDFiYmEzNjU0NWM1Li5i YTkwMDE0OThlMDMgMTAwNjQ0DQo+PiA+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L21tYy9ob3N0LmgN Cj4+ID4+ICsrKyBiL2luY2x1ZGUvbGludXgvbW1jL2hvc3QuaA0KPj4gPj4gQEAgLTE3OCw2ICsx NzgsMTggQEAgc3RydWN0IG1tY19ob3N0X29wcyB7DQo+PiA+Pg0KPj4gPj4gICAgICAgICAvKiBJ bml0aWFsaXplIGFuIFNEIGV4cHJlc3MgY2FyZCwgbWFuZGF0b3J5IGZvciBNTUNfQ0FQMl9TRF9F WFAuDQo+Ki8NCj4+ID4+ICAgICAgICAgaW50ICAgICAoKmluaXRfc2RfZXhwcmVzcykoc3RydWN0 IG1tY19ob3N0ICpob3N0LCBzdHJ1Y3QgbW1jX2lvcw0KPippb3MpOw0KPj4gPj4gKw0KPj4gPj4g KyNpZiBJU19FTkFCTEVEKENPTkZJR19NTUNfUFNUT1JFKQ0KPj4gPj4gKyAgICAgICAvKg0KPj4g Pj4gKyAgICAgICAgKiBUaGUgZm9sbG93aW5nIHR3byBBUElzIGFyZSBpbnRyb2R1Y2VkIHRvIHN1 cHBvcnQgbW1jcHN0b3JlDQo+PiA+PiArICAgICAgICAqIGZ1bmN0aW9uYWxpdHkuIENsZWFudXAg QVBJIHRvIHRlcm1pbmF0ZSB0aGUgb25nb2luZyBhbmQNCj4+ID4+ICsgICAgICAgICogcGVuZGlu ZyByZXF1ZXN0cyBiZWZvcmUgYSBwYW5pYyB3cml0ZSBwb3N0LCBhbmQgcG9sbGluZyBBUEkNCj4+ ID4+ICsgICAgICAgICogdG8gZW5zdXJlIHRoYXQgd3JpdGUgc3VjY2VlZHMgYmVmb3JlIHRoZSBL ZXJuZWwgZGllcy4NCj4+ID4+ICsgICAgICAgICovDQo+PiA+PiArICAgICAgIHZvaWQgICAgKCpy ZXFfY2xlYW51cF9wZW5kaW5nKShzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpOw0KPj4gPj4gKyAgICAg ICBpbnQgICAgICgqcmVxX2NvbXBsZXRpb25fcG9sbCkoc3RydWN0IG1tY19ob3N0ICpob3N0LA0K Pj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyB0aW1lb3V0KTsNCj4+ID4+ICsjZW5kaWYNCj4+ID4+ICB9Ow0KPj4gPj4NCj4+ID4+ICBzdHJ1 Y3QgbW1jX2NxZV9vcHMgew0KPj4gPj4gLS0NCj4+ID4+IDIuMTcuMQ0KPj4gPj4NCg==