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=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham 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 398C7C4743C for ; Mon, 21 Jun 2021 10:59:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EB94760FEA for ; Mon, 21 Jun 2021 10:59:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB94760FEA Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 983C389E3F; Mon, 21 Jun 2021 10:59:53 +0000 (UTC) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2082.outbound.protection.outlook.com [40.107.93.82]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25FB889E3F for ; Mon, 21 Jun 2021 10:59:52 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I0yvHhQqPpGG3O5M5dg3VwejkfbwA0z6rbYLJfle5GLLjPDcpFXpBTPFfbll48yHV4RVPvD+M35nXNcJTf0Igvra43BAIa4tkExUKIzBqY05cv/bh1Y+bfqFykBPSLon3oeaoJ6yDXix0PUmPKu8QY6ceOSg7glmT3aw21z7Ekqwc9vUV+2M4OPGov/K5CtZpHQGrsQOsPldjNCkYoaEgCdfArlRAuvG8XvVhNIbF4day6BnmRqM+H3sTZr6HqrCtW+jbLiSwJArdPhH/RzlHXtpVydzFmtTpoKZei8RhjHgHgBZ1dgpu77VNXeGxMvJUjn6L3EjsL0/IntJXTKEyg== 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=Fg3+tROqQBjKDQG1gb2fXn7Geg6T3t6dFccDZBxLNPU=; b=gsAbabR8Iqwts0aL94nS8ntw0QcYpmz8au4v8wmWuOjufKYdi5LYh/din0tD6C4iRPL4cg0mjh962aCSrpVWmVVuYhZuY9wHqxKLkGsGePJ7py98jJKK6hrP0tq9Fa8uuvu8S+Pqn3ZLOSwn2V5Mkz74CgjNPdm45rgAZ9NpWD24SsHuFJ8Rm4TjHwIO6hfibuAOu1SQoY1VpJgCijCQvbDBOm1VpycqQaS8QXEHhVbKrN4gt/J2c13eYJNzvwQsXQZAcY7kQt6zoOpVcqTbJNRJM8+qirpQ4gPmVqw2lT1o4tDHDH3quCLT0Dt/8MVw+On50FmHyub2V1yq9+qeKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Fg3+tROqQBjKDQG1gb2fXn7Geg6T3t6dFccDZBxLNPU=; b=0VNQT45l1ztXl67HnC+5eb6NOYGdKTqK0ateMITmhqVaH1V0hxYv14rP/Z95Pym3/QE+LNTLyHAMo0Jzjzagz+TfdswVMz5870mVVRXqQxkmFOmNGth2cwxDuA/V1OPeIfsgIIKHmCns7h3eliyVs7pwyqYg7nQO8D0SdepaeJM= Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by BL0PR12MB2484.namprd12.prod.outlook.com (2603:10b6:207:4e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.19; Mon, 21 Jun 2021 10:59:49 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756%5]) with mapi id 15.20.4242.023; Mon, 21 Jun 2021 10:59:49 +0000 Subject: Re: [PATCH 1/1] drm/amdgpu: add helper function for vm pasid To: "Das, Nirmoy" , amd-gfx@lists.freedesktop.org References: <20210617130334.15366-1-nirmoy.das@amd.com> <5745d21a-93e2-4446-3299-f7a807136817@amd.com> <6ae31f0a-712b-0404-5885-c2a7ca244d38@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <26ce2800-e2f0-2dd6-bf7d-b837a55a3c42@amd.com> Date: Mon, 21 Jun 2021 12:59:45 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: <6ae31f0a-712b-0404-5885-c2a7ca244d38@amd.com> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:aae5:6e05:c:d69] X-ClientProxiedBy: FR3P281CA0026.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::17) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:aae5:6e05:c:d69] (2a02:908:1252:fb60:aae5:6e05:c:d69) by FR3P281CA0026.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.7 via Frontend Transport; Mon, 21 Jun 2021 10:59:48 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 29b8fa4f-19f5-4f35-6814-08d934a3b05b X-MS-TrafficTypeDiagnostic: BL0PR12MB2484: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hYav6jjePutI1oIaJmNGor7fP4khDdO3nzLzWd82rKGZ+ilpF5aUpPAfm3aWvfQ7w7QAKPY595ib+AF+FDQ+QZIMDMGImJ6ECFNII77N2a33NSktzo0euYZIpJigImMTIRVAOjHH5/qZrONaywizCgw6a5D+Dy4rzu8efRxDeWZxqFAK7yLxIX7K0rPOtjTZ4QHuXWRtGDNwvGHA50s6wcpwUx8kfiixBsR7aGOFv8tDOP5qO7n6vLxOSMCSgfwzrZIHu7/skKVovIuzFSi4iZh3ekCHFowffbXF5vSEH/g1HGZMQI0PesAaO7GODNDky2GqISu+BRCtPiqWYAIMZWcVTArUyXcWDjLL79OrT7cHks57/mazsSKv1bPTzzn2h0mdC5K0QkdBpcvPPVZm9XQTNs0qos54t6rxejOi6l04+wofc9syVuwnYiKky76Cg8GPlIgzVI53I6optvmpj5KeNUR9IaHtS08cE1CL/uzzWvDiLEkIgn+/hQ1fHnN2viOY7rWAL1Pm3DY9tVfgovcMFp/zZU+Zl9bAG8tf2xK2eo0g+JIPhFAGD+Ina8qUeogW5b+VfmuAXbnBuqWWGwYP/ZeebF9QkQytqCCcVygKISGs4lcr7vPa8aUQt4qgLtvprH5J7UVVOCU8kNflUlH6c7ky+xUXvJw3vro+jtvAkuSSuNieVbOL1Xm7dPX+ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(376002)(136003)(346002)(39860400002)(86362001)(66476007)(8936002)(2906002)(2616005)(66556008)(316002)(53546011)(6666004)(4326008)(31686004)(38100700002)(36756003)(31696002)(30864003)(66946007)(8676002)(478600001)(83380400001)(66574015)(6486002)(5660300002)(186003)(16526019)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q0pKZnk3T1A5YlYxdkJNYUhxbDUvNWswM2pCS0RBSHlwM2M1NUVzQTNBcHN4?= =?utf-8?B?bU5ZK2ZMbzd4ZlpqcjRSTkNYWUN5RzB2STZnbkVKYkNLT0lrTVpwaUdkT0Zs?= =?utf-8?B?eVMwWjFkSHZRaGd6UlVHeEt5K1owZDV4MmFYU2NjNFNENzZuUjlOdWtIdGt4?= =?utf-8?B?ME9WcGdydmJiWllJVW1aNjlwY1hEVlpCampBT0dTbkpPbXdMc28xS2hUOUVW?= =?utf-8?B?bU5tQVpITCtyYXArVDdoNVp4K1BnS0RTTHpSUkZxbHhNaW9xODFsZURaVnhH?= =?utf-8?B?bC9MUmVJMkxhczdpd1Y2SFluR1FCWHlnTHo2VmJEa3pncy9NcFlqZTg3RTln?= =?utf-8?B?VEE2bVgxMzZXa2JWYXFRcmx0ai9CY0I1NUhRZitKZDJUTDd2Q3pLZmxwTEY5?= =?utf-8?B?QXNGcGthMldLZ3RGdDJGWElkdmhMTnpFMGZhTllYV21OL3lqRVlVeUNXbFNh?= =?utf-8?B?Vm1JM3VYOCtINjJjYkJjQnBnUkt4emR3bWhYSVg0SjhWU3M5NEppTGpnMXJv?= =?utf-8?B?ZFM1OG81aS9DcmZNTG9Wdi9mNGVSd015UEtwSVNBMFh2ZW1OeTBCU2M3M0NX?= =?utf-8?B?SnZxNzFxdDFWcjRqMWw0N0N4b1hxbWtTZ1o2M3loZTI5WXRiYWRCUmRvTTNw?= =?utf-8?B?bG9SOGxoVlR0QXVkOWlEaGU4TmRyMm4xdGJyaE4yc3pGQm9vakpqMytzVTBK?= =?utf-8?B?UEhZN0xESmg4VGVRbTF1TXpIem9wNE9Hb2lhWWtMRlhSREpvSml6NUhEVmwy?= =?utf-8?B?SGxxZGp2ZUlZaWxCTFNrY2x3cEMvY28zcVVBMWpWZ1FPVTFmb3MzTGtPbnY2?= =?utf-8?B?VnlsTGlYa05ZKzRZcTBvRDR4ZEJrNVltYVhCYThTT1lBRVE4bExOc29VZDZt?= =?utf-8?B?VmVsbGJGdlpqYzl3dzgwRTdMeVI0Y2RJdkwydG9tWTg4akZLa0dON3AxcW1G?= =?utf-8?B?RzQ5TGV4c3lQbzhLZWdOLzBiZFFFSlBXZ3ZqRjJkcFlGZ29iQXBPQ2lBZ1BW?= =?utf-8?B?ajdLcjc2bkUwR0R0TFFPenN6K2ZrcFdPb1IrNjFVR3BHa0J0OXBNVC9sWjlW?= =?utf-8?B?eDFHczc1RG10UmhJY3VUZGU5MVlWNlIwM0hiZWYwOWRHSlBnK0FoMHdocW9N?= =?utf-8?B?VFRETjNXdURaaFZlRGF4am5VOHhPMkJ2dkZlOXpiUjRPeG4yMUFvMDBpNFRN?= =?utf-8?B?RWdsS29MV3o4dHNBUmQ5U1B0Sm1aVlU4aWh3cW9wbVpJVnV1Z0ZBTUtOcjNm?= =?utf-8?B?ZUtDVzd1NDRsMUlpVnY4T3puZGxtcEwyajRrNmhoUjBpVVZtaEZsN1hkdVFV?= =?utf-8?B?T1kyalJmVjdTSGRiT0thR1FrUlVwcFo0R2NyUUdoUC9wRjJsWWtIQ1JmOVFm?= =?utf-8?B?SU9KeEs1YzZSckhJeXRWWnQyZTNtQ1MrOER3a01RTVNWYzhYMXlwR2p0UStL?= =?utf-8?B?YVlpMTJCQXo3bWR0UW5kaEl6cTBQOTVHY2UxTTh5dUlCTmJPYVczSUdTWGd4?= =?utf-8?B?MHJWay90YlJKdHRZK1duU0c4djVjeHlYdTBBYkxwM05qZlNQaGVDR0prMXZO?= =?utf-8?B?cm1jSURZZ043Qy9rTytma1NBd3oyTWMyV1h1QkJGR05ubzlpUkVtRXVJK2Iw?= =?utf-8?B?SnBkdm1ORlEwTkJCNkFRME1tUGJLZlVocFhsSW1Vbk1sTWhNR3lyYUd4aDh4?= =?utf-8?B?d3MwdFl0WWdmck54VmVIRitLNkRnNVRHVlFNWHNZNTVXQ0h4azlZT1lRR1Nt?= =?utf-8?B?TTJTWkJ5dnc2Z1VudGMxcUszS3JSVHZ6UEdvLzRFSkNZUkNwZW05Z3JmaGhi?= =?utf-8?B?bjg4aEdDNlBnN2VuR2puSEd0b3Jlckl0a1FYSjZEQUlqR0s1MEdvV0p0cS9w?= =?utf-8?Q?mlBTcyernf+au?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29b8fa4f-19f5-4f35-6814-08d934a3b05b X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2021 10:59:49.3829 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JyMEn8PWZKtHQFBVTS8ibEAn9bAcnAW5OGjF6e4VNA4HU6+X8mMcGW14Z46CE21l X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB2484 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Felix.Kuehling@amd.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMjEuMDYuMjEgdW0gMTI6NTYgc2NocmllYiBEYXMsIE5pcm1veToKPgo+IE9uIDYvMjEvMjAy MSAxMjoyNiBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4gV2VsbCB5b3UgY29tcGxldGVs eSBicmVhayB0aGUgaGFuZGxpbmcgaW4gYW1kZ3B1X3ZtX2hhbmRsZV9mYXVsdCgpIAo+PiB3aXRo IHRoaXMuCj4KPgo+IEkgc2VlIG9uZSBpc3N1ZSB3aXRoOsKgIGlmICghdm0gfHwgKHZtICYmIHZt LT5yb290LmJvICE9IHJvb3QpKSAuIEkgCj4gd2lsbCBzcGxpdCBpdCBhbmQgcmVzZW5kLgo+Cj4g QW0gSSBtaXNzaW5nIHNvbWV0aGluZyBlbHNlID8KClRoZSBwcm9ibGVtIGlzIHlvdSBkcm9wIGFu ZCByZS10YWtlIHRoZSBsb2NrIG5vdyBhdCB0aGUgd3JvbmcgdGltZS4KCkkgZG9uJ3QgdGhpbmsg d2hhdCB5b3UgdHJ5IHRvIGRvIGhlcmUgaXMgcG9zc2libGUgYXQgYWxsLgoKQ2hyaXN0aWFuLgoK Pgo+Cj4gUmVnYXJkcywKPgo+IE5pcm1veQo+Cj4KPgo+Pgo+PiBDaHJpc3RpYW4uCj4+Cj4+IEFt IDIxLjA2LjIxIHVtIDExOjQ3IHNjaHJpZWIgRGFzLCBOaXJtb3k6Cj4+PiBwaW5nLgo+Pj4KPj4+ IE9uIDYvMTcvMjAyMSAzOjAzIFBNLCBOaXJtb3kgRGFzIHdyb3RlOgo+Pj4+IENsZWFudXAgY29k ZSByZWxhdGVkIHRvIHZtIHBhc2lkIGJ5IGFkZGluZyBoZWxwZXIgZnVuY3Rpb24uCj4+Pj4gVGhp cyByZWR1Y2VzIGxvdHMgY29kZSBkdXBsaWNhdGlvbi4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6 IE5pcm1veSBEYXMgPG5pcm1veS5kYXNAYW1kLmNvbT4KPj4+PiAtLS0KPj4+PiDCoCBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgfMKgIDE3ICstLQo+Pj4+IMKgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jwqAgfCAxNzYgCj4+Pj4gKysrKysrKysr KysrLS0tLS0tLS0tLS0tCj4+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmjCoCB8wqDCoCAyICstCj4+Pj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25z KCspLCA5OSBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfa21zLmMKPj4+PiBpbmRleCBjYmI5MzJmOTczNTUuLjI3ODUxZmIwZTI1YiAx MDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMK Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKPj4+PiBA QCAtMTE0OSw3ICsxMTQ5LDcgQEAgaW50IGFtZGdwdV9kcml2ZXJfb3Blbl9rbXMoc3RydWN0IGRy bV9kZXZpY2UgCj4+Pj4gKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4+Pj4gwqAg ewo+Pj4+IMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkcm1fdG9fYWRl dihkZXYpOwo+Pj4+IMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV9mcHJpdiAqZnByaXY7Cj4+Pj4g LcKgwqDCoCBpbnQgciwgcGFzaWQ7Cj4+Pj4gK8KgwqDCoCBpbnQgcjsKPj4+PiDCoCDCoMKgwqDC oMKgIC8qIEVuc3VyZSBJQiB0ZXN0cyBhcmUgcnVuIG9uIHJpbmcgKi8KPj4+PiDCoMKgwqDCoMKg IGZsdXNoX2RlbGF5ZWRfd29yaygmYWRldi0+ZGVsYXllZF9pbml0X3dvcmspOwo+Pj4+IEBAIC0x MTcyLDE1ICsxMTcyLDkgQEAgaW50IGFtZGdwdV9kcml2ZXJfb3Blbl9rbXMoc3RydWN0IGRybV9k ZXZpY2UgCj4+Pj4gKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgIGdvdG8gb3V0X3N1c3BlbmQ7Cj4+Pj4gwqDCoMKgwqDCoCB9Cj4+Pj4gwqAg LcKgwqDCoCBwYXNpZCA9IGFtZGdwdV9wYXNpZF9hbGxvYygxNik7Cj4+Pj4gLcKgwqDCoCBpZiAo cGFzaWQgPCAwKSB7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGRldl93YXJuKGFkZXYtPmRldiwgIk5v IG1vcmUgUEFTSURzIGF2YWlsYWJsZSEiKTsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgcGFzaWQgPSAw Owo+Pj4+IC3CoMKgwqAgfQo+Pj4+IC0KPj4+PiAtwqDCoMKgIHIgPSBhbWRncHVfdm1faW5pdChh ZGV2LCAmZnByaXYtPnZtLCBwYXNpZCk7Cj4+Pj4gK8KgwqDCoCByID0gYW1kZ3B1X3ZtX2luaXQo YWRldiwgJmZwcml2LT52bSk7Cj4+Pj4gwqDCoMKgwqDCoCBpZiAocikKPj4+PiAtwqDCoMKgwqDC oMKgwqAgZ290byBlcnJvcl9wYXNpZDsKPj4+PiArwqDCoMKgwqDCoMKgwqAgZ290byBmcmVlX2Zw cml2Owo+Pj4+IMKgIMKgwqDCoMKgwqAgZnByaXYtPnBydF92YSA9IGFtZGdwdV92bV9ib19hZGQo YWRldiwgJmZwcml2LT52bSwgTlVMTCk7Cj4+Pj4gwqDCoMKgwqDCoCBpZiAoIWZwcml2LT5wcnRf dmEpIHsKPj4+PiBAQCAtMTIwOCwxMCArMTIwMiw3IEBAIGludCBhbWRncHVfZHJpdmVyX29wZW5f a21zKHN0cnVjdCBkcm1fZGV2aWNlIAo+Pj4+ICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KQo+Pj4+IMKgIGVycm9yX3ZtOgo+Pj4+IMKgwqDCoMKgwqAgYW1kZ3B1X3ZtX2ZpbmkoYWRl diwgJmZwcml2LT52bSk7Cj4+Pj4gwqAgLWVycm9yX3Bhc2lkOgo+Pj4+IC3CoMKgwqAgaWYgKHBh c2lkKQo+Pj4+IC3CoMKgwqDCoMKgwqDCoCBhbWRncHVfcGFzaWRfZnJlZShwYXNpZCk7Cj4+Pj4g LQo+Pj4+ICtmcmVlX2Zwcml2Ogo+Pj4+IMKgwqDCoMKgwqAga2ZyZWUoZnByaXYpOwo+Pj4+IMKg IMKgIG91dF9zdXNwZW5kOgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdm0uYyAKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92bS5jCj4+Pj4gaW5kZXggNjM5NzViZGE4ZTc2Li41NjJjMmM0OGEzYTMgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4+IEBAIC04Nyw2ICs4Nyw2 OSBAQCBzdHJ1Y3QgYW1kZ3B1X3BydF9jYiB7Cj4+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZG1hX2Zl bmNlX2NiIGNiOwo+Pj4+IMKgIH07Cj4+Pj4gwqAgK3N0YXRpYyBpbnQgYW1kZ3B1X3ZtX3Bhc2lk X2FsbG9jKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgdW5zaWduZWQgaW50IHBhc2lk KQo+Pj4+ICt7Cj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzOwo+Pj4+ICvCoMKgwqAg aW50IHI7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgaWYgKCFwYXNpZCkKPj4+PiArwqDCoMKgwqDCoMKg wqAgcmV0dXJuIDA7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgc3Bpbl9sb2NrX2lycXNhdmUoJmFkZXYt PnZtX21hbmFnZXIucGFzaWRfbG9jaywgZmxhZ3MpOwo+Pj4+ICvCoMKgwqAgciA9IGlkcl9hbGxv YygmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9pZHIsIHZtLCBwYXNpZCwgcGFzaWQgKyAxLAo+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHRlBfQVRPTUlDKTsKPj4+PiArIHNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmFkZXYtPnZtX21hbmFnZXIucGFzaWRfbG9jaywgZmxhZ3MpOwo+Pj4+ ICvCoMKgwqAgaWYgKHIgPCAwKQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcjsKPj4+PiAr Cj4+Pj4gK8KgwqDCoCB2bS0+cGFzaWQgPSBwYXNpZDsKPj4+PiArwqDCoMKgIHJldHVybiAwOwo+ Pj4+ICt9Cj4+Pj4gK3N0YXRpYyB2b2lkIGFtZGdwdV92bV9wYXNpZF9yZW1vdmVfaWQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgcGFzaWQpCj4+Pj4gK3sKPj4+PiArwqDCoMKgIHVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgaWYgKCFwYXNpZCkKPj4+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+Pj4+ICsKPj4+PiArwqDCoMKgIHNwaW5fbG9ja19pcnFz YXZlKCZhZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2xvY2ssIGZsYWdzKTsKPj4+PiArwqDCoMKgIGlk cl9yZW1vdmUoJmFkZXYtPnZtX21hbmFnZXIucGFzaWRfaWRyLCBwYXNpZCk7Cj4+Pj4gKyBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZhZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2xvY2ssIGZsYWdzKTsK Pj4+PiArCj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0YXRpYyB2b2lkIGFtZGdwdV92bV9wYXNpZF9y ZW1vdmUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKPj4+PiArewo+Pj4+ICvC oMKgwqAgYW1kZ3B1X3ZtX3Bhc2lkX3JlbW92ZV9pZChhZGV2LCB2bS0+cGFzaWQpOwo+Pj4+ICvC oMKgwqAgdm0tPnBhc2lkID0gMDsKPj4+PiArfQo+Pj4+ICsKPj4+PiArc3RhdGljIHZvaWQgYW1k Z3B1X3ZtX3Bhc2lkX2ZyZWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfdm0gKnZtKQo+Pj4+ICt7 Cj4+Pj4gK8KgwqDCoCBpZiAoIXZtLT5wYXNpZCkKPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJu Owo+Pj4+ICsKPj4+PiArwqDCoMKgIGFtZGdwdV9wYXNpZF9mcmVlKHZtLT5wYXNpZCk7Cj4+Pj4g K8KgwqDCoCBhbWRncHVfdm1fcGFzaWRfcmVtb3ZlKGFkZXYsIHZtKTsKPj4+PiArfQo+Pj4+ICsK Pj4+PiArc3RhdGljIHN0cnVjdCBhbWRncHVfdm0gKmFtZGdwdV92bV9wYXNpZF9maW5kKHN0cnVj dCBhbWRncHVfZGV2aWNlIAo+Pj4+ICphZGV2LAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgcGFzaWQpCj4+Pj4gK3sK Pj4+PiArwqDCoMKgIHN0cnVjdCBhbWRncHVfdm0gKnZtOwo+Pj4+ICvCoMKgwqAgdW5zaWduZWQg bG9uZyBmbGFnczsKPj4+PiArCj4+Pj4gK8KgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+ dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4+Pj4gK8KgwqDCoCB2bSA9IGlkcl9maW5k KCZhZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2lkciwgcGFzaWQpOwo+Pj4+ICsgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4+Pj4gKwo+ Pj4+ICvCoMKgwqAgcmV0dXJuIHZtOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+IMKgIC8qCj4+Pj4gwqDC oCAqIHZtIGV2aWN0aW9uX2xvY2sgY2FuIGJlIHRha2VuIGluIE1NVSBub3RpZmllcnMuIE1ha2Ug c3VyZSBubyAKPj4+PiByZWNsYWltLUZTCj4+Pj4gwqDCoCAqIGhhcHBlbnMgd2hpbGUgaG9sZGlu ZyB0aGlzIGxvY2sgYW55d2hlcmUgdG8gcHJldmVudCBkZWFkbG9ja3MgCj4+Pj4gd2hlbgo+Pj4+ IEBAIC0yODU5LDE3ICsyOTIyLDE3IEBAIGxvbmcgYW1kZ3B1X3ZtX3dhaXRfaWRsZShzdHJ1Y3Qg YW1kZ3B1X3ZtIAo+Pj4+ICp2bSwgbG9uZyB0aW1lb3V0KQo+Pj4+IMKgwqAgKgo+Pj4+IMKgwqAg KiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCj4+Pj4gwqDCoCAqIEB2bTogcmVxdWVzdGVk IHZtCj4+Pj4gLSAqIEBwYXNpZDogUHJvY2VzcyBhZGRyZXNzIHNwYWNlIGlkZW50aWZpZXIKPj4+ PiDCoMKgICoKPj4+PiDCoMKgICogSW5pdCBAdm0gZmllbGRzLgo+Pj4+IMKgwqAgKgo+Pj4+IMKg wqAgKiBSZXR1cm5zOgo+Pj4+IMKgwqAgKiAwIGZvciBzdWNjZXNzLCBlcnJvciBmb3IgZmFpbHVy ZS4KPj4+PiDCoMKgICovCj4+Pj4gLWludCBhbWRncHVfdm1faW5pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAKPj4+PiAqdm0sIHUzMiBwYXNpZCkKPj4+PiAr aW50IGFtZGdwdV92bV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1k Z3B1X3ZtICp2bSkKPj4+PiDCoCB7Cj4+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2JvICpy b290X2JvOwo+Pj4+IMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV9ib192bSAqcm9vdDsKPj4+PiAr wqDCoMKgIHVuc2lnbmVkIGludCBwYXNpZDsKPj4+PiDCoMKgwqDCoMKgIGludCByLCBpOwo+Pj4+ IMKgIMKgwqDCoMKgwqAgdm0tPnZhID0gUkJfUk9PVF9DQUNIRUQ7Cj4+Pj4gQEAgLTI5NDAsMTkg KzMwMDMsMTUgQEAgaW50IGFtZGdwdV92bV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlIAo+Pj4+ ICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgdTMyIHBhc2lkKQo+Pj4+IMKgIMKgwqDCoMKg wqAgYW1kZ3B1X2JvX3VucmVzZXJ2ZSh2bS0+cm9vdC5ibyk7Cj4+Pj4gwqAgLcKgwqDCoCBpZiAo cGFzaWQpIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4+PiAt Cj4+Pj4gLSBzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBm bGFncyk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIHIgPSBpZHJfYWxsb2MoJmFkZXYtPnZtX21hbmFn ZXIucGFzaWRfaWRyLCB2bSwgcGFzaWQsIAo+Pj4+IHBhc2lkICsgMSwKPj4+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHRlBfQVRPTUlDKTsKPj4+PiAtIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmFkZXYtPnZtX21hbmFnZXIucGFzaWRfbG9jaywgZmxhZ3MpOwo+Pj4+IC3C oMKgwqDCoMKgwqDCoCBpZiAociA8IDApCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290 byBlcnJvcl9mcmVlX3Jvb3Q7Cj4+Pj4gLQo+Pj4+IC3CoMKgwqDCoMKgwqDCoCB2bS0+cGFzaWQg PSBwYXNpZDsKPj4+PiArwqDCoMKgIHBhc2lkID0gYW1kZ3B1X3Bhc2lkX2FsbG9jKDE2KTsKPj4+ PiArwqDCoMKgIGlmIChwYXNpZCA8IDApIHsKPj4+PiArwqDCoMKgwqDCoMKgwqAgZGV2X3dhcm4o YWRldi0+ZGV2LCAiTm8gbW9yZSBQQVNJRHMgYXZhaWxhYmxlISIpOwo+Pj4+ICvCoMKgwqDCoMKg wqDCoCBwYXNpZCA9IDA7Cj4+Pj4gwqDCoMKgwqDCoCB9Cj4+Pj4gwqAgK8KgwqDCoCBpZiAoYW1k Z3B1X3ZtX3Bhc2lkX2FsbG9jKGFkZXYsIHZtLCBwYXNpZCkpCj4+Pj4gK8KgwqDCoMKgwqDCoMKg IGdvdG8gZXJyb3JfZnJlZV9wYXNpZDsKPj4+PiArCj4+Pj4gwqDCoMKgwqDCoCBJTklUX0tGSUZP KHZtLT5mYXVsdHMpOwo+Pj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4gQEAgLTI5NjAs NiArMzAxOSwxMCBAQCBpbnQgYW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgCj4+ Pj4gKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLCB1MzIgcGFzaWQpCj4+Pj4gwqAgZXJyb3Jf dW5yZXNlcnZlOgo+Pj4+IMKgwqDCoMKgwqAgYW1kZ3B1X2JvX3VucmVzZXJ2ZSh2bS0+cm9vdC5i byk7Cj4+Pj4gwqAgK2Vycm9yX2ZyZWVfcGFzaWQ6Cj4+Pj4gK8KgwqDCoCBpZiAocGFzaWQpCj4+ Pj4gK8KgwqDCoMKgwqDCoMKgIGFtZGdwdV9wYXNpZF9mcmVlKHBhc2lkKTsKPj4+PiArCj4+Pj4g wqAgZXJyb3JfZnJlZV9yb290Ogo+Pj4+IMKgwqDCoMKgwqAgYW1kZ3B1X2JvX3VucmVmKCZyb290 LT5zaGFkb3cpOwo+Pj4+IMKgwqDCoMKgwqAgYW1kZ3B1X2JvX3VucmVmKCZyb290X2JvKTsKPj4+ PiBAQCAtMzAzOSwxOCArMzEwMiwxMSBAQCBpbnQgYW1kZ3B1X3ZtX21ha2VfY29tcHV0ZShzdHJ1 Y3QgCj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCj4+Pj4g wqDCoMKgwqDCoCBpZiAocikKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byB1bnJlc2VydmVf Ym87Cj4+Pj4gwqAgLcKgwqDCoCBpZiAocGFzaWQpIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgdW5z aWduZWQgbG9uZyBmbGFnczsKPj4+PiAtCj4+Pj4gLSBzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+ dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIHIgPSBp ZHJfYWxsb2MoJmFkZXYtPnZtX21hbmFnZXIucGFzaWRfaWRyLCB2bSwgcGFzaWQsIAo+Pj4+IHBh c2lkICsgMSwKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHRlBfQVRP TUlDKTsKPj4+PiAtIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnZtX21hbmFnZXIucGFz aWRfbG9jaywgZmxhZ3MpOwo+Pj4+ICvCoMKgwqAgciA9IGFtZGdwdV92bV9wYXNpZF9hbGxvYyhh ZGV2LCB2bSwgcGFzaWQpOwo+Pj4+ICvCoMKgwqAgaWYgKHIgPT3CoCAtRU5PU1BDKQo+Pj4+ICvC oMKgwqDCoMKgwqDCoCBnb3RvIHVucmVzZXJ2ZV9ibzsKPj4+PiDCoCAtwqDCoMKgwqDCoMKgwqAg aWYgKHIgPT0gLUVOT1NQQykKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHVucmVz ZXJ2ZV9ibzsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgciA9IDA7Cj4+Pj4gLcKgwqDCoCB9Cj4+Pj4g K8KgwqDCoCByID0gMDsKPj4+PiDCoCDCoMKgwqDCoMKgIC8qIENoZWNrIGlmIFBEIG5lZWRzIHRv IGJlIHJlaW5pdGlhbGl6ZWQgYW5kIGRvIGl0IGJlZm9yZQo+Pj4+IMKgwqDCoMKgwqDCoCAqIGNo YW5naW5nIGFueSBvdGhlciBzdGF0ZSwgaW4gY2FzZSBpdCBmYWlscy4KPj4+PiBAQCAtMzA4OCwx OSArMzE0NCw3IEBAIGludCBhbWRncHVfdm1fbWFrZV9jb21wdXRlKHN0cnVjdCAKPj4+PiBhbWRn cHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPj4+PiDCoMKgwqDCoMKgIHZt LT5sYXN0X3VwZGF0ZSA9IE5VTEw7Cj4+Pj4gwqDCoMKgwqDCoCB2bS0+aXNfY29tcHV0ZV9jb250 ZXh0ID0gdHJ1ZTsKPj4+PiDCoCAtwqDCoMKgIGlmICh2bS0+cGFzaWQpIHsKPj4+PiAtwqDCoMKg wqDCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4+PiAtCj4+Pj4gLSBzcGluX2xvY2tfaXJx c2F2ZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4+Pj4gLcKgwqDCoMKg wqDCoMKgIGlkcl9yZW1vdmUoJmFkZXYtPnZtX21hbmFnZXIucGFzaWRfaWRyLCB2bS0+cGFzaWQp Owo+Pj4+IC0gc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9s b2NrLCBmbGFncyk7Cj4+Pj4gLQo+Pj4+IC3CoMKgwqDCoMKgwqDCoCAvKiBGcmVlIHRoZSBvcmln aW5hbCBhbWRncHUgYWxsb2NhdGVkIHBhc2lkCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqAgKiBXaWxs IGJlIHJlcGxhY2VkIHdpdGgga2ZkIGFsbG9jYXRlZCBwYXNpZAo+Pj4+IC3CoMKgwqDCoMKgwqDC oMKgICovCj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGFtZGdwdV9wYXNpZF9mcmVlKHZtLT5wYXNpZCk7 Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIHZtLT5wYXNpZCA9IDA7Cj4+Pj4gLcKgwqDCoCB9Cj4+Pj4g K8KgwqDCoCBhbWRncHVfdm1fcGFzaWRfZnJlZShhZGV2LCB2bSk7Cj4+Pj4gwqAgwqDCoMKgwqDC oCAvKiBGcmVlIHRoZSBzaGFkb3cgYm8gZm9yIGNvbXB1dGUgVk0gKi8KPj4+PiBhbWRncHVfYm9f dW5yZWYoJnRvX2FtZGdwdV9ib192bSh2bS0+cm9vdC5ibyktPnNoYWRvdyk7Cj4+Pj4gQEAgLTMx MTEsMTMgKzMxNTUsOCBAQCBpbnQgYW1kZ3B1X3ZtX21ha2VfY29tcHV0ZShzdHJ1Y3QgCj4+Pj4g YW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCj4+Pj4gwqDCoMKgwqDC oCBnb3RvIHVucmVzZXJ2ZV9ibzsKPj4+PiDCoCDCoCBmcmVlX2lkcjoKPj4+PiAtwqDCoMKgIGlm IChwYXNpZCkgewo+Pj4+IC3CoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzOwo+Pj4+ ICvCoMKgwqAgYW1kZ3B1X3ZtX3Bhc2lkX3JlbW92ZV9pZChhZGV2LCBwYXNpZCk7Cj4+Pj4gwqAg LSBzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7 Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGlkcl9yZW1vdmUoJmFkZXYtPnZtX21hbmFnZXIucGFzaWRf aWRyLCBwYXNpZCk7Cj4+Pj4gLSBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGV2LT52bV9tYW5h Z2VyLnBhc2lkX2xvY2ssIGZsYWdzKTsKPj4+PiAtwqDCoMKgIH0KPj4+PiDCoCB1bnJlc2VydmVf Ym86Cj4+Pj4gwqDCoMKgwqDCoCBhbWRncHVfYm9fdW5yZXNlcnZlKHZtLT5yb290LmJvKTsKPj4+ PiDCoMKgwqDCoMKgIHJldHVybiByOwo+Pj4+IEBAIC0zMTMzLDE0ICszMTcyLDcgQEAgaW50IGFt ZGdwdV92bV9tYWtlX2NvbXB1dGUoc3RydWN0IAo+Pj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0 cnVjdCBhbWRncHVfdm0gKnZtLAo+Pj4+IMKgwqAgKi8KPj4+PiDCoCB2b2lkIGFtZGdwdV92bV9y ZWxlYXNlX2NvbXB1dGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCAKPj4+PiBh bWRncHVfdm0gKnZtKQo+Pj4+IMKgIHsKPj4+PiAtwqDCoMKgIGlmICh2bS0+cGFzaWQpIHsKPj4+ PiAtwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4+PiAtCj4+Pj4gLSBzcGlu X2xvY2tfaXJxc2F2ZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4+Pj4g LcKgwqDCoMKgwqDCoMKgIGlkcl9yZW1vdmUoJmFkZXYtPnZtX21hbmFnZXIucGFzaWRfaWRyLCB2 bS0+cGFzaWQpOwo+Pj4+IC0gc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRldi0+dm1fbWFuYWdl ci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4+Pj4gLcKgwqDCoCB9Cj4+Pj4gLcKgwqDCoCB2bS0+cGFz aWQgPSAwOwo+Pj4+ICvCoMKgwqAgYW1kZ3B1X3ZtX3Bhc2lkX3JlbW92ZShhZGV2LCB2bSk7Cj4+ Pj4gwqDCoMKgwqDCoCB2bS0+aXNfY29tcHV0ZV9jb250ZXh0ID0gZmFsc2U7Cj4+Pj4gwqAgfQo+ Pj4+IMKgIEBAIC0zMTY0LDE1ICszMTk2LDcgQEAgdm9pZCBhbWRncHVfdm1fZmluaShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAKPj4+PiAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pCj4+Pj4gwqAg wqDCoMKgwqDCoCByb290ID0gYW1kZ3B1X2JvX3JlZih2bS0+cm9vdC5ibyk7Cj4+Pj4gwqDCoMKg wqDCoCBhbWRncHVfYm9fcmVzZXJ2ZShyb290LCB0cnVlKTsKPj4+PiAtwqDCoMKgIGlmICh2bS0+ cGFzaWQpIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4+PiAt Cj4+Pj4gLSBzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBm bGFncyk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGlkcl9yZW1vdmUoJmFkZXYtPnZtX21hbmFnZXIu cGFzaWRfaWRyLCB2bS0+cGFzaWQpOwo+Pj4+IC0gc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRl di0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIHZt LT5wYXNpZCA9IDA7Cj4+Pj4gLcKgwqDCoCB9Cj4+Pj4gLQo+Pj4+ICvCoMKgwqAgYW1kZ3B1X3Zt X3Bhc2lkX3JlbW92ZShhZGV2LCB2bSk7Cj4+Pj4gwqDCoMKgwqDCoCBkbWFfZmVuY2Vfd2FpdCh2 bS0+bGFzdF91bmxvY2tlZCwgZmFsc2UpOwo+Pj4+IMKgwqDCoMKgwqAgZG1hX2ZlbmNlX3B1dCh2 bS0+bGFzdF91bmxvY2tlZCk7Cj4+Pj4gwqAgQEAgLTMzMzQsMTYgKzMzNTgsMTAgQEAgaW50IGFt ZGdwdV92bV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAKPj4+PiAqZGV2LCB2b2lkICpkYXRhLCBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCj4+Pj4gwqAgdm9pZCBhbWRncHVfdm1fZ2V0X3Rhc2tfaW5m byhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHBhc2lkLAo+Pj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8gKnRhc2tfaW5mbykKPj4+ PiDCoCB7Cj4+Pj4gLcKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bTsKPj4+PiAtwqDCoMKgIHVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4+Pj4gK8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9IGFt ZGdwdV92bV9wYXNpZF9maW5kKGFkZXYsIHBhc2lkKTsKPj4+PiDCoCAtIHNwaW5fbG9ja19pcnFz YXZlKCZhZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2xvY2ssIGZsYWdzKTsKPj4+PiAtCj4+Pj4gLcKg wqDCoCB2bSA9IGlkcl9maW5kKCZhZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2lkciwgcGFzaWQpOwo+ Pj4+IMKgwqDCoMKgwqAgaWYgKHZtKQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAqdGFza19pbmZv ID0gdm0tPnRhc2tfaW5mbzsKPj4+PiAtCj4+Pj4gLSBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZh ZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2xvY2ssIGZsYWdzKTsKPj4+PiDCoCB9Cj4+Pj4gwqAgwqAg LyoqCj4+Pj4gQEAgLTMzODAsMjQgKzMzOTgsMTYgQEAgYm9vbCBhbWRncHVfdm1faGFuZGxlX2Zh dWx0KHN0cnVjdCAKPj4+PiBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgcGFzaWQsCj4+Pj4gwqAg ewo+Pj4+IMKgwqDCoMKgwqAgYm9vbCBpc19jb21wdXRlX2NvbnRleHQgPSBmYWxzZTsKPj4+PiDC oMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfYm8gKnJvb3Q7Cj4+Pj4gLcKgwqDCoCB1bnNpZ25lZCBs b25nIGlycWZsYWdzOwo+Pj4+IMKgwqDCoMKgwqAgdWludDY0X3QgdmFsdWUsIGZsYWdzOwo+Pj4+ IMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV92bSAqdm07Cj4+Pj4gwqDCoMKgwqDCoCBpbnQgcjsK Pj4+PiDCoCAtIHNwaW5fbG9ja19pcnFzYXZlKCZhZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2xvY2ss IGlycWZsYWdzKTsKPj4+PiAtwqDCoMKgIHZtID0gaWRyX2ZpbmQoJmFkZXYtPnZtX21hbmFnZXIu cGFzaWRfaWRyLCBwYXNpZCk7Cj4+Pj4gLcKgwqDCoCBpZiAodm0pIHsKPj4+PiAtwqDCoMKgwqDC oMKgwqAgcm9vdCA9IGFtZGdwdV9ib19yZWYodm0tPnJvb3QuYm8pOwo+Pj4+IC3CoMKgwqDCoMKg wqDCoCBpc19jb21wdXRlX2NvbnRleHQgPSB2bS0+aXNfY29tcHV0ZV9jb250ZXh0Owo+Pj4+IC3C oMKgwqAgfSBlbHNlIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgcm9vdCA9IE5VTEw7Cj4+Pj4gLcKg wqDCoCB9Cj4+Pj4gLSBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGV2LT52bV9tYW5hZ2VyLnBh c2lkX2xvY2ssIGlycWZsYWdzKTsKPj4+PiAtCj4+Pj4gLcKgwqDCoCBpZiAoIXJvb3QpCj4+Pj4g K8KgwqDCoCB2bSA9IGFtZGdwdV92bV9wYXNpZF9maW5kKGFkZXYsIHBhc2lkKTsKPj4+PiArwqDC oMKgIGlmICghdm0pCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBmYWxzZTsKPj4+PiDC oCArwqDCoMKgIHJvb3QgPSBhbWRncHVfYm9fcmVmKHZtLT5yb290LmJvKTsKPj4+PiArwqDCoMKg wqDCoMKgwqAgaXNfY29tcHV0ZV9jb250ZXh0ID0gdm0tPmlzX2NvbXB1dGVfY29udGV4dDsKPj4+ PiDCoMKgwqDCoMKgIGFkZHIgLz0gQU1ER1BVX0dQVV9QQUdFX1NJWkU7Cj4+Pj4gwqAgwqDCoMKg wqDCoCBpZiAoaXNfY29tcHV0ZV9jb250ZXh0ICYmCj4+Pj4gQEAgLTM0MTEsMTIgKzM0MjEsOCBA QCBib29sIGFtZGdwdV92bV9oYW5kbGVfZmF1bHQoc3RydWN0IAo+Pj4+IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHUzMiBwYXNpZCwKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJvcl91bnJl ZjsKPj4+PiDCoCDCoMKgwqDCoMKgIC8qIERvdWJsZSBjaGVjayB0aGF0IHRoZSBWTSBzdGlsbCBl eGlzdHMgKi8KPj4+PiAtwqDCoMKgIHNwaW5fbG9ja19pcnFzYXZlKCZhZGV2LT52bV9tYW5hZ2Vy LnBhc2lkX2xvY2ssIGlycWZsYWdzKTsKPj4+PiAtwqDCoMKgIHZtID0gaWRyX2ZpbmQoJmFkZXYt PnZtX21hbmFnZXIucGFzaWRfaWRyLCBwYXNpZCk7Cj4+Pj4gLcKgwqDCoCBpZiAodm0gJiYgdm0t PnJvb3QuYm8gIT0gcm9vdCkKPj4+PiAtwqDCoMKgwqDCoMKgwqAgdm0gPSBOVUxMOwo+Pj4+IC0g c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBpcnFm bGFncyk7Cj4+Pj4gLcKgwqDCoCBpZiAoIXZtKQo+Pj4+ICvCoMKgwqAgdm0gPSBhbWRncHVfdm1f cGFzaWRfZmluZChhZGV2LCBwYXNpZCk7Cj4+Pj4gK8KgwqDCoCBpZiAoIXZtIHx8ICh2bSAmJiB2 bS0+cm9vdC5ibyAhPSByb290KSkKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJvcl91 bmxvY2s7Cj4+Pj4gwqAgwqDCoMKgwqDCoCBmbGFncyA9IEFNREdQVV9QVEVfVkFMSUQgfCBBTURH UFVfUFRFX1NOT09QRUQgfAo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdm0uaCAKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92bS5oCj4+Pj4gaW5kZXggZGRiODVhODVjYmJhLi5lZTk5NGUyMWRmZmEgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+Pj4+IEBAIC0zNzYsNyArMzc2 LDcgQEAgdm9pZCBhbWRncHVfdm1fbWFuYWdlcl9pbml0KHN0cnVjdCAKPj4+PiBhbWRncHVfZGV2 aWNlICphZGV2KTsKPj4+PiDCoCB2b2lkIGFtZGdwdV92bV9tYW5hZ2VyX2Zpbmkoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpOwo+Pj4+IMKgIMKgIGxvbmcgYW1kZ3B1X3ZtX3dhaXRfaWRsZShz dHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgbG9uZyB0aW1lb3V0KTsKPj4+PiAtaW50IGFtZGdwdV92bV9p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtIAo+Pj4+ICp2 bSwgdTMyIHBhc2lkKTsKPj4+PiAraW50IGFtZGdwdV92bV9pbml0KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSk7Cj4+Pj4gwqAgaW50IGFtZGdwdV92bV9t YWtlX2NvbXB1dGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCAKPj4+PiBhbWRn cHVfdm0gKnZtLCB1MzIgcGFzaWQpOwo+Pj4+IMKgIHZvaWQgYW1kZ3B1X3ZtX3JlbGVhc2VfY29t cHV0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IAo+Pj4+IGFtZGdwdV92bSAq dm0pOwo+Pj4+IMKgIHZvaWQgYW1kZ3B1X3ZtX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHN0cnVjdCBhbWRncHVfdm0gCj4+Pj4gKnZtKTsKPj4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeAo=