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=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 0EEF3C433ED for ; Tue, 6 Apr 2021 15:28:03 +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 BB1E4608FE for ; Tue, 6 Apr 2021 15:28:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BB1E4608FE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=nouveau-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AD7CE6E864; Tue, 6 Apr 2021 15:27:56 +0000 (UTC) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2044.outbound.protection.outlook.com [40.107.220.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id DD2FF6E85A; Tue, 6 Apr 2021 15:27:54 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FJQpXM73orpDIgvD/yEJTz4UljXOVb1HZR7MQ86Xhkp5NojaOqIk7jI5wxECtG/BSDd1SIQOBa7JOTMm9K4wvz4VLxgp9EYIt7IIwR3g1GWMh0p6sdBoYQsuu+08hKcCBT1ESnm145qee6BlPE56raHF80UhEFUJsPH0rXTnEjOlF4pPnYgaOdEbP9JXCluX6inuciReUha1nTDnexfh0lmq35cdYljHjoHqYKZnPKqMH76zT3Ao6UHHz7CNmFs7clyOrO/KfzmepVwi622ma94WhvNBaw7vsum5vAsl94U7hZCFfFFLIj4mgkhR2DnTS1ePAKZ5m0ESrxEPgLutjA== 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=nBL3MUlT6PcYGNo9S+0xmb/OAM6D1NV7/RnuNbthHSo=; b=V4Vw3XAlPeEqwQ18jn3cxjl2oBE6bhx5QiGEAp1F4UuzILx1J22Yfs9kHtQENmxj+WN4KBYNZVvCpnYgG/u8MHkj63DP7RPO1EXLGT1ELmisnz/0oRj9q3mba/uS7Gt99Gc1bh7Tli865UnY1eKaVH2IXHLkuLfN2TeX/9gEhCVDwDTbBz19Dx+8FkvfY3+kEVpeA1siphwKHW01Yit6lQ8RB2Cpz+67/LNAJ42mMbGcYWdNbQx8mXsnJ0lUhRvW3KgaSQ80wOGMSvsnRUth4tRxQ8H+4bDINysME1LuVxVj/gtYlnM4WZGidYfDoXNt/90oyKGsjIMLNvgG3C5Jag== 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=nBL3MUlT6PcYGNo9S+0xmb/OAM6D1NV7/RnuNbthHSo=; b=pmc1bMlofw0F2fRMLvRNquJCpHh61BXsKs56R3+Q3hDJ0/zkO655bSlom4t7CwTFfzrgHiQsPj6sy2vzcRkP0/CrsPMyMw9n/2irbWEsRQisx/CFaCuQnT3oUgtPdtyxkN1aO7wU1Tra1ZIjWoodNfNj5boKJq6v9BOFkYYYUuQ= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Received: from BL0PR12MB4948.namprd12.prod.outlook.com (2603:10b6:208:1cc::20) by MN2PR12MB4317.namprd12.prod.outlook.com (2603:10b6:208:1d0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.29; Tue, 6 Apr 2021 15:27:53 +0000 Received: from BL0PR12MB4948.namprd12.prod.outlook.com ([fe80::70f5:99ed:65a1:c033]) by BL0PR12MB4948.namprd12.prod.outlook.com ([fe80::70f5:99ed:65a1:c033%7]) with mapi id 15.20.3933.039; Tue, 6 Apr 2021 15:27:53 +0000 To: Thomas Zimmermann , =?UTF-8?Q?Christian_K=c3=b6nig?= , alexander.deucher@amd.com, airlied@linux.ie, daniel@ffwll.ch, bskeggs@redhat.com, ray.huang@amd.com, linux-graphics-maintainer@vmware.com, sroland@vmware.com, zackr@vmware.com, shashank.sharma@amd.com, sam@ravnborg.org, emil.velikov@collabora.com, nirmoy.das@amd.com References: <20210406090903.7019-1-tzimmermann@suse.de> <20210406090903.7019-4-tzimmermann@suse.de> <6b261dab-4a4d-f0c6-95c0-f720c7df12c1@amd.com> From: Felix Kuehling Message-ID: <9db18654-770f-459b-a89a-c57dc8a21bac@amd.com> Date: Tue, 6 Apr 2021 11:27:50 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: Content-Language: en-US X-Originating-IP: [142.116.84.209] X-ClientProxiedBy: YT2PR01CA0011.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::16) To BL0PR12MB4948.namprd12.prod.outlook.com (2603:10b6:208:1cc::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.2.100] (142.116.84.209) by YT2PR01CA0011.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.32 via Frontend Transport; Tue, 6 Apr 2021 15:27:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cd4ce3de-fad9-4312-af50-08d8f9108b73 X-MS-TrafficTypeDiagnostic: MN2PR12MB4317: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wx0j1IqcuqTVRQN5tYKZwxJ5Mrps567cah+JlqXtCl/pbSwxsDw63ovc4FjeNxCUBQd4Uydoe8uuZE2SbywIxbGCJdqcni73lixjZ43GcQjz8SW0qSo4wo1S1SDHnhqVTPdrMoYZQ6HL4UeLk2y7ge4PZFvDt9vs5I3TNOxeo+ZInubKJTGiFnpJScb83elfnm1y+8D3picWpEayvtnxcaiv7PErDhC7mUkl2GvxPO+UtWhsN8aWdjcWCdBJzhSIEqo15cdEYmvFC5f43OgA1H+iD2+csTIbforOWDzixnG26rhvDHW02QNWPEn+F5DaJDTxQBY3BAR642VJSutkU8pI/NHyPzAxcWTg+nisXtsrNwSjBluHQXb0+J7U/YKPlH7Ao6SUZug37A/2KUvS3SUj3TSdO9OqBQFqfRyJqewxCqmKpNxbow2oyofb30HFuKFYyuqfPaXJpdSee1P5QPpkodi7Up6RYzdT7A+yOhTF6CDgKlpTro6YIvpAoNseeMPH0M51/Rx3m7TH+dS7w1BtPCZXgItgk4F84Yxei+Qc1DEG7/gREmooG+DFTQFs2D8mJR5U2nJwlCpcWCev+F0/Dm9y0fKGKQ6HHgcreYd6q5lg8vnNEhbq3mRro3yhhS0kORdefVFt/4srVPufX+TVgT3eQKqg8qOcyJOa1pv3c0tTCLGd6xGD5dRFm7mbvMfKmsj4tWkkGp6KeWTPlawpjaBPPduj1DD9LIoZUUdTm+9R7MQeJctGEAZVOyjyJnylXWE4SmrZRrT2ZcKk5Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR12MB4948.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(346002)(376002)(39860400002)(136003)(6636002)(31686004)(38100700001)(86362001)(30864003)(36756003)(5660300002)(6486002)(16526019)(186003)(316002)(16576012)(2906002)(4326008)(7416002)(8676002)(110136005)(31696002)(83380400001)(66946007)(921005)(478600001)(8936002)(66556008)(966005)(2616005)(26005)(44832011)(66476007)(956004)(66574015)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?QmczekJnS0JaQXdzVjh1cXRUQitDKzFWMm8vN1hoWHhzcGk1T3FFcEhzWGhy?= =?utf-8?B?TU82MGJOU1kyTEpycjVXQ0JlNnNTVGR2RWFNSTN6TTN1d0s0SEdmRU4vbmRt?= =?utf-8?B?bC9jazR3Y2ZkM3RvSHkwQ2N0YXBkNGhyTEhvMzRMa0hYRVh6b1ZMdVhDS0Qr?= =?utf-8?B?RGQ2R3lHRU5nZ0RSZ2loelo0aXNSZFhQL3N0SzVacE1tYUk0NEY3TEVVRVlo?= =?utf-8?B?T3F2V3l5VE1kN01mM0R2Tm5sRm5RUnRQQjZsY0ZCR3ZQRzU0TTFPWXh5RmtI?= =?utf-8?B?b3g0Z0hPY3FoQkJ4RTRMQXNTR1RjL2FQVWhaUzhGS1F0R1dQN2FqUDg5eFdE?= =?utf-8?B?eHBHSjBOVk9hWG9ORHdBc2ZCQkt5Z0VGM05FUkVPaDZqbTN3MmFxZldRVnBq?= =?utf-8?B?aC8zNGtVU2s5cmpGU05SczJ2TUhXTGtEWGVjczBEWFdIK0w0cGVoeHAxYUtJ?= =?utf-8?B?VDdtaGxQaXBvRFczcUcrTE54dnpaY0ZIOTdjZkJBN0JFOTQ2ejhmRWVFMDMz?= =?utf-8?B?RHlxMW5zZDB1cG1veWpiWSthS0RkbWUvbEpJTmI3RDl3cis4RFFqTkZuOGhE?= =?utf-8?B?VS9ON1kzYzRvR2VKQnpSclh2NHNoam4xYkMzZ1M4Z3FJS3VETUdpQjlpY0d5?= =?utf-8?B?bzFTd3RnOG8rNFBNNDlJMkdaWkZjSWNWOHovczRZS0hQbHFOeVJReUFKTXVR?= =?utf-8?B?QkJZcFk4c3pMOXh2anphYU1ReXlndTJETXZBT3FuNk1KTXZKYnpleURBYUww?= =?utf-8?B?UElzRnExYm9aMlc1YStwS1I4SmkvNUJQMmF4SXBiMlJpOVQzM3RnWlhYMy9W?= =?utf-8?B?emQzWGpqZVNLaVRORmlWUkxlZXAwVjFyVVlKNS9FZDR3UUZXOEJIemRjY0xy?= =?utf-8?B?UGJYbU4rSHROTDRpR1kyaENLQ0RlQ3NUNlVtM2dpNTBYZXFJMnhmVkJIajd6?= =?utf-8?B?aDc1eCswbGM0MTBPOVRFZUhrcTl6NkN4QWMrNG14Q1VtbXdOMHdhaHc4eEJx?= =?utf-8?B?RlFQbENaMjZhbGFDNHlrNnhEN1lUb2tGNW9mRC9hbGVTazh0SnExVjlKZWtQ?= =?utf-8?B?Qkc2VERXNi83TXlXcHczR0UvLy9Oc2lYVk5Lem0vbGJMVWY2dkdueTBNaklC?= =?utf-8?B?UkhSMFM4SStJanZWVm1LY0Fha1VPckhBeG16eUQyNnlMSHF2eUFnOTdaY3Y3?= =?utf-8?B?ZVZuQWZRSTVkcnpqSGUydVorSDVRVE9LUE1wdmNtSkI1OEpwdy9CeFY4eFMy?= =?utf-8?B?Yno0MXArOEYzR251cExaUS9WbE9sc3V3T0FDYlNKWENZUkFqQ1FmYkZvREQ1?= =?utf-8?B?N0NROXdqSnNnS29EM1hMZTQ1eFp6QVlhS055V2xxWUlkVWJhVm9PRHlRZGo4?= =?utf-8?B?Z0FsWmlweGlRbDdJeGljZzB0UWthL2F0YW1ZOUZqYUlncHF5cTFwdmFjVEdE?= =?utf-8?B?OHNJUnRpWFVRT2tVbysxekdha0tqM0lYakNDNkZDdmY2MHI1K2NoUnhJVXF3?= =?utf-8?B?TSs5d0YxRjJRWEljVmd2R3JHb2lwTEZPa01kRUlTU25nZW1mVHRBbHhkUmdK?= =?utf-8?B?cldrRWhMWTRlSUV0cG5jL2JyUVRRRXA3K24rUmRQVWIxWkpKQXIyRzc5MWlU?= =?utf-8?B?L3hQNFp3KzI0SjZyU1NMdEJpRTJPR2pLR0ZrZnRkeExTMTFkMVppYW0xSXE2?= =?utf-8?B?d3kvS3hSZThWdUMydnRvZlcxUlJ6NC9NaHBvTjQydHc2aWJBMjZVWm1TUllG?= =?utf-8?Q?QW39Pr3JISW0aFohRpHh7gCuRLAx/e/vdAa0Rzr?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd4ce3de-fad9-4312-af50-08d8f9108b73 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB4948.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2021 15:27:52.9383 (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: 3C+fm8Vo6BpI7Lk7r/CKFCdWlFuBc4XgBLy5f+DIEMAy17N0WE7yd1ARn9+rUeeYO6/lCziMTmbpi0WrTj5Q3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4317 Subject: Re: [Nouveau] [PATCH 3/8] drm/amdgpu: Implement mmap as GEM object function X-BeenThere: nouveau@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Nouveau development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: nouveau@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: nouveau-bounces@lists.freedesktop.org Sender: "Nouveau" QW0gMjAyMS0wNC0wNiB1bSA2OjM4IGEubS4gc2NocmllYiBUaG9tYXMgWmltbWVybWFubjoKPiBI aQo+Cj4gQW0gMDYuMDQuMjEgdW0gMTE6MzUgc2NocmllYiBDaHJpc3RpYW4gS8O2bmlnOgo+PiBB bSAwNi4wNC4yMSB1bSAxMTowOCBzY2hyaWViIFRob21hcyBaaW1tZXJtYW5uOgo+Pj4gTW92aW5n IHRoZSBkcml2ZXItc3BlY2lmaWMgbW1hcCBjb2RlIGludG8gYSBHRU0gb2JqZWN0IGZ1bmN0aW9u IGFsbG93cwo+Pj4gZm9yIHVzaW5nIERSTSBoZWxwZXJzIGZvciB2YXJpb3VzIG1tYXAgY2FsbGJh Y2tzLgo+Pj4KPj4+IFRoaXMgY2hhbmdlIHJlc29sdmVzIHNldmVyYWwgaW5jb25zaXN0ZW5jaWVz IGJldHdlZW4gcmVndWxhciBtbWFwIGFuZAo+Pj4gcHJpbWUtYmFzZWQgbW1hcC4gVGhlIHZtX29w cyBmaWVsZCBpbiB2bWEgaXMgbm93IHNldCBmb3IgYWxsIG1tYXAnZWQKPj4+IGFyZWFzLiBQcmV2 aW91c2x5IGl0IHdheSBvbmx5IHNldCBmb3IgcmVndWxhciBtbWFwIGNhbGxzLCBwcmltZS1iYXNl ZAo+Pj4gbW1hcCB1c2VkIFRUTSdzIGRlZmF1bHQgdm1fb3BzLiBUaGUgY2hlY2sgZm9yIGtmZF9i byBoYXMgYmVlbiB0YWtlbgo+Pj4gZnJvbSBhbWRncHVfdmVyaWZ5X2FjY2VzcygpLCB3aGljaCBp cyBub3QgY2FsbGVkIGFueSBsb25nZXIgYW5kIGhhcwo+Pj4gYmVlbiByZW1vdmVkLgo+Pj4KPj4+ IEFzIGEgc2lkZSBlZmZlY3QsIGFtZGdwdV90dG1fdm1fb3BzIGFuZCBhbWRncHVfdHRtX2ZhdWx0 KCkgYXJlIG5vdwo+Pj4gaW1wbGVtZW50ZWQgaW4gYW1kZ3B1J3MgR0VNIGNvZGUuCj4+Pgo+Pj4g U2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Cj4+ PiAtLS0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMg fCA0NiAtLS0tLS0tLS0tLS0tCj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZG1hX2J1Zi5oIHzCoCAyIC0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kcnYuY8KgwqDCoMKgIHzCoCA0ICstCj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZ2VtLmPCoMKgwqDCoCB8IDY0ICsrKysrKysrKysrKysrKysrKysKPj4+IMKg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uY8KgwqDCoMKgIHwgNzEKPj4+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3R0bS5owqDCoMKgwqAgfMKgIDEgLQo+Pj4gwqAgNiBmaWxlcyBjaGFuZ2VkLCA2NiBp bnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMKPj4+IGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwo+Pj4gaW5kZXggZTBjNGY3YzdmMWI5Li4x OWM1YWIwOGQ5ZWMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZG1hX2J1Zi5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZG1hX2J1Zi5jCj4+PiBAQCAtNDIsNTIgKzQyLDYgQEAKPj4+IMKgICNpbmNsdWRlIDxsaW51 eC9wY2ktcDJwZG1hLmg+Cj4+PiDCoCAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgo+Pj4g LS8qKgo+Pj4gLSAqIGFtZGdwdV9nZW1fcHJpbWVfbW1hcCAtICZkcm1fZHJpdmVyLmdlbV9wcmlt ZV9tbWFwIGltcGxlbWVudGF0aW9uCj4+PiAtICogQG9iajogR0VNIEJPCj4+PiAtICogQHZtYTog VmlydHVhbCBtZW1vcnkgYXJlYQo+Pj4gLSAqCj4+PiAtICogU2V0cyB1cCBhIHVzZXJzcGFjZSBt YXBwaW5nIG9mIHRoZSBCTydzIG1lbW9yeSBpbiB0aGUgZ2l2ZW4KPj4+IC0gKiB2aXJ0dWFsIG1l bW9yeSBhcmVhLgo+Pj4gLSAqCj4+PiAtICogUmV0dXJuczoKPj4+IC0gKiAwIG9uIHN1Y2Nlc3Mg b3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+PiAtICovCj4+PiAtaW50IGFt ZGdwdV9nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPj4+IC17 Cj4+PiAtwqDCoMKgIHN0cnVjdCBhbWRncHVfYm8gKmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhvYmop Owo+Pj4gLcKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRl dihiby0+dGJvLmJkZXYpOwo+Pj4gLcKgwqDCoCB1bnNpZ25lZCBhc2l6ZSA9IGFtZGdwdV9ib19z aXplKGJvKTsKPj4+IC3CoMKgwqAgaW50IHJldDsKPj4+IC0KPj4+IC3CoMKgwqAgaWYgKCF2bWEt PnZtX2ZpbGUpCj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9ERVY7Cj4+PiAtCj4+PiAt wqDCoMKgIGlmIChhZGV2ID09IE5VTEwpCj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9E RVY7Cj4+PiAtCj4+PiAtwqDCoMKgIC8qIENoZWNrIGZvciB2YWxpZCBzaXplLiAqLwo+Pj4gLcKg wqDCoCBpZiAoYXNpemUgPCB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQpCj4+PiAtwqDCoMKg wqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAtCj4+PiAtwqDCoMKgIGlmIChhbWRncHVfdHRt X3R0X2dldF91c2VybW0oYm8tPnRiby50dG0pIHx8Cj4+PiAtwqDCoMKgwqDCoMKgwqAgKGJvLT5m bGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX05PX0NQVV9BQ0NFU1MpKSB7Cj4+PiAtwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FUEVSTTsKPj4+IC3CoMKgwqAgfQo+Pj4gLcKgwqDCoCB2bWEtPnZtX3Bn b2ZmICs9IGFtZGdwdV9ib19tbWFwX29mZnNldChibykgPj4gUEFHRV9TSElGVDsKPj4+IC0KPj4+ IC3CoMKgwqAgLyogcHJpbWUgbW1hcCBkb2VzIG5vdCBuZWVkIHRvIGNoZWNrIGFjY2Vzcywgc28g YWxsb3cgaGVyZSAqLwo+Pj4gLcKgwqDCoCByZXQgPSBkcm1fdm1hX25vZGVfYWxsb3coJm9iai0+ dm1hX25vZGUsCj4+PiB2bWEtPnZtX2ZpbGUtPnByaXZhdGVfZGF0YSk7Cj4+PiAtwqDCoMKgIGlm IChyZXQpCj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+IC0KPj4+IC3CoMKgwqAg cmV0ID0gdHRtX2JvX21tYXAodm1hLT52bV9maWxlLCB2bWEsICZhZGV2LT5tbWFuLmJkZXYpOwo+ Pj4gLcKgwqDCoCBkcm1fdm1hX25vZGVfcmV2b2tlKCZvYmotPnZtYV9ub2RlLCB2bWEtPnZtX2Zp bGUtPnByaXZhdGVfZGF0YSk7Cj4+PiAtCj4+PiAtwqDCoMKgIHJldHVybiByZXQ7Cj4+PiAtfQo+ Pj4gLQo+Pj4gwqAgc3RhdGljIGludAo+Pj4gwqAgX19kbWFfcmVzdl9tYWtlX2V4Y2x1c2l2ZShz dHJ1Y3QgZG1hX3Jlc3YgKm9iaikKPj4+IMKgIHsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1Zi5oCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmgKPj4+IGluZGV4IDM5YjViOTYxNmZkOC4uM2U5M2I5 YjQwN2E5IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2RtYV9idWYuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rt YV9idWYuaAo+Pj4gQEAgLTMxLDggKzMxLDYgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0Cj4+PiAq YW1kZ3B1X2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFf YnVmICpkbWFfYnVmKTsKPj4+IMKgIGJvb2wgYW1kZ3B1X2RtYWJ1Zl9pc194Z21pX2FjY2Vzc2li bGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfYm8gKmJvKTsKPj4+IC1pbnQg YW1kZ3B1X2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAo+Pj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPj4+ IMKgIGV4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgYW1kZ3B1X2RtYWJ1Zl9vcHM7Cj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+ PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+Pj4gaW5kZXggNzZm NDhmNzljNzBiLi5lOTZkMjc1OGY0YmIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kcnYuYwo+Pj4gQEAgLTE2NTYsNyArMTY1Niw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZmlsZV9vcGVyYXRpb25zCj4+PiBhbWRncHVfZHJpdmVyX2ttc19mb3BzID0gewo+Pj4g wqDCoMKgwqDCoCAuZmx1c2ggPSBhbWRncHVfZmx1c2gsCj4+PiDCoMKgwqDCoMKgIC5yZWxlYXNl ID0gZHJtX3JlbGVhc2UsCj4+PiDCoMKgwqDCoMKgIC51bmxvY2tlZF9pb2N0bCA9IGFtZGdwdV9k cm1faW9jdGwsCj4+PiAtwqDCoMKgIC5tbWFwID0gYW1kZ3B1X21tYXAsCj4+PiArwqDCoMKgIC5t bWFwID0gZHJtX2dlbV9tbWFwLAo+Pj4gwqDCoMKgwqDCoCAucG9sbCA9IGRybV9wb2xsLAo+Pj4g wqDCoMKgwqDCoCAucmVhZCA9IGRybV9yZWFkLAo+Pj4gwqAgI2lmZGVmIENPTkZJR19DT01QQVQK Pj4+IEBAIC0xNzE5LDcgKzE3MTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kcml2ZXIK Pj4+IGFtZGdwdV9rbXNfZHJpdmVyID0gewo+Pj4gwqDCoMKgwqDCoCAucHJpbWVfaGFuZGxlX3Rv X2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCj4+PiDCoMKgwqDCoMKgIC5wcmltZV9m ZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKPj4+IMKgwqDCoMKgwqAg LmdlbV9wcmltZV9pbXBvcnQgPSBhbWRncHVfZ2VtX3ByaW1lX2ltcG9ydCwKPj4+IC3CoMKgwqAg LmdlbV9wcmltZV9tbWFwID0gYW1kZ3B1X2dlbV9wcmltZV9tbWFwLAo+Pj4gK8KgwqDCoCAuZ2Vt X3ByaW1lX21tYXAgPSBkcm1fZ2VtX3ByaW1lX21tYXAsCj4+PiDCoMKgwqDCoMKgIC5uYW1lID0g RFJJVkVSX05BTUUsCj4+PiDCoMKgwqDCoMKgIC5kZXNjID0gRFJJVkVSX0RFU0MsCj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCj4+PiBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwo+Pj4gaW5kZXggZmI3MTcxZTU1 MDdjLi5mZTkzZmFhZDA1ZjIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZ2VtLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9nZW0uYwo+Pj4gQEAgLTQxLDYgKzQxLDM2IEBACj4+PiDCoCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIGFtZGdwdV9nZW1fb2JqZWN0X2Z1bmNzOwo+Pj4gK3N0 YXRpYyB2bV9mYXVsdF90IGFtZGdwdV90dG1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4+ Cj4+IFBsZWFzZSBuYW1lIHRoYXQgZnVuY3Rpb24gYW1kZ3B1X2dlbV9mYXVsdCBvciBhbWRncHVf Z2VtX29iamVjdF9mYXVsdAo+Pgo+Pj4gK3sKPj4+ICvCoMKgwqAgc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibyA9IHZtZi0+dm1hLT52bV9wcml2YXRlX2RhdGE7Cj4+PiArwqDCoMKgIHZtX2Zh dWx0X3QgcmV0Owo+Pj4gKwo+Pj4gK8KgwqDCoCByZXQgPSB0dG1fYm9fdm1fcmVzZXJ2ZShibywg dm1mKTsKPj4+ICvCoMKgwqAgaWYgKHJldCkKPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0 Owo+Pj4gKwo+Pj4gK8KgwqDCoCByZXQgPSBhbWRncHVfYm9fZmF1bHRfcmVzZXJ2ZV9ub3RpZnko Ym8pOwo+Pj4gK8KgwqDCoCBpZiAocmV0KQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gdW5sb2Nr Owo+Pj4gKwo+Pj4gK8KgwqDCoCByZXQgPSB0dG1fYm9fdm1fZmF1bHRfcmVzZXJ2ZWQodm1mLCB2 bWYtPnZtYS0+dm1fcGFnZV9wcm90LAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIFRUTV9CT19WTV9OVU1fUFJFRkFVTFQsIDEpOwo+Pj4gK8KgwqDCoCBp ZiAocmV0ID09IFZNX0ZBVUxUX1JFVFJZICYmICEodm1mLT5mbGFncyAmCj4+PiBGQVVMVF9GTEFH X1JFVFJZX05PV0FJVCkpCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+ICsKPj4+ ICt1bmxvY2s6Cj4+PiArwqDCoMKgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPj4+ ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGNvbnN0IHN0cnVj dCB2bV9vcGVyYXRpb25zX3N0cnVjdCBhbWRncHVfdHRtX3ZtX29wcyA9IHsKPj4+ICvCoMKgwqAg LmZhdWx0ID0gYW1kZ3B1X3R0bV9mYXVsdCwKPj4+ICvCoMKgwqAgLm9wZW4gPSB0dG1fYm9fdm1f b3BlbiwKPj4+ICvCoMKgwqAgLmNsb3NlID0gdHRtX2JvX3ZtX2Nsb3NlLAo+Pj4gK8KgwqDCoCAu YWNjZXNzID0gdHRtX2JvX3ZtX2FjY2Vzcwo+Pj4gK307Cj4+PiArCj4+PiDCoCBzdGF0aWMgdm9p ZCBhbWRncHVfZ2VtX29iamVjdF9mcmVlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaikKPj4+ IMKgIHsKPj4+IMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV9ibyAqcm9iaiA9IGdlbV90b19hbWRn cHVfYm8oZ29iaik7Cj4+PiBAQCAtMjAxLDYgKzIzMSwzOCBAQCBzdGF0aWMgdm9pZCBhbWRncHVf Z2VtX29iamVjdF9jbG9zZShzdHJ1Y3QKPj4+IGRybV9nZW1fb2JqZWN0ICpvYmosCj4+PiDCoMKg wqDCoMKgIHR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKCZ0aWNrZXQsICZsaXN0KTsKPj4+IMKg IH0KPj4+ICtzdGF0aWMgaW50IGFtZGdwdV9nZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaiwgc3RydWN0Cj4+PiB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+Pj4gK3sKPj4+ICvC oMKgwqAgc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKG9iaik7Cj4+PiAr wqDCoMKgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJvLT50 Ym8uYmRldik7Cj4+PiArwqDCoMKgIHVuc2lnbmVkIGxvbmcgYXNpemUgPSBhbWRncHVfYm9fc2l6 ZShibyk7Cj4+PiArCj4+PiArwqDCoMKgIGlmICghdm1hLT52bV9maWxlKQo+Pj4gK8KgwqDCoMKg wqDCoMKgIHJldHVybiAtRU5PREVWOwo+Pj4gKwo+Pj4gK8KgwqDCoCBpZiAoIWFkZXYpCj4+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9ERVY7Cj4+PiArCj4+PiArwqDCoMKgIC8qIENoZWNr IGZvciB2YWxpZCBzaXplLiAqLwo+Pj4gK8KgwqDCoCBpZiAoYXNpemUgPCB2bWEtPnZtX2VuZCAt IHZtYS0+dm1fc3RhcnQpCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+Cj4+ PiArCj4+PiArwqDCoMKgIC8qCj4+PiArwqDCoMKgwqAgKiBEb24ndCB2ZXJpZnkgYWNjZXNzIGZv ciBLRkQgQk9zLiBUaGV5IGRvbid0IGhhdmUgYSBHRU0KPj4+ICvCoMKgwqDCoCAqIG9iamVjdCBh c3NvY2lhdGVkIHdpdGggdGhlbS4KPj4+ICvCoMKgwqDCoCAqLwo+Pj4gK8KgwqDCoCBpZiAoYm8t PmtmZF9ibykKPj4+ICvCoMKgwqDCoMKgwqDCoCBnb3RvIG91dDsKPj4KPj4gV2hvIGRvZXMgdGhl IGFjY2VzcyB2ZXJpZmljYXRpb24gbm93Pwo+Cj4gVGhpcyBpcyBzb21ld2hhdCBjb25mdXNpbmcu Cj4KPiBJIHRvb2sgdGhpcyBjaGVjayBhcy1pcywgaW5jbHVkaW5nIHRoZSBjb21tZW50LCBmcm9t IGFtZGdwdSdzCj4gdmVyaWZ5X2FjY2VzcyBmdW5jdGlvbi4gVGhlIHZlcmlmeV9hY2Nlc3MgZnVu Y3Rpb24gd2FzIGNhbGxlZCBieQo+IHR0bV9ib19tbWFwLiBJdCByZXR1cm5lZCAwIGFuZCB0dG1f Ym9fbW1hcCBkaWQgdGhlIG1hcHBpbmcuCgpUaGlzIGlzIHByb2JhYmx5IGEgbGVmdC1vdmVyIGZy b20gd2hlbiB3ZSBtYXBwZWQgQk9zIHVzaW5nIC9kZXYva2ZkLiBXZQpjaGFuZ2VkIHRoaXMgdG8g dXNlIC9kZXYvZHJpL3JlbmRlckQqIGEgbG9uZyB0aW1lIGFnbyB0byBmaXggQ1BVIG1hcHBpbmcK aW52YWxpZGF0aW9ucyBvbiBtZW1vcnkgZXZpY3Rpb25zLiBJIHRoaW5rIHdlIGNhbiBsZXQgR0VN IGRvIHRoZSBhY2Nlc3MKY2hlY2suCgpSZWdhcmRzLArCoCBGZWxpeAoKCj4KPj4KPj4gQ2hyaXN0 aWFuLgo+Pgo+Pj4gKwo+Pj4gK8KgwqDCoCBpZiAoYW1kZ3B1X3R0bV90dF9nZXRfdXNlcm1tKGJv LT50Ym8udHRtKSB8fAo+Pj4gK8KgwqDCoMKgwqDCoMKgIChiby0+ZmxhZ3MgJiBBTURHUFVfR0VN X0NSRUFURV9OT19DUFVfQUNDRVNTKSkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRVBF Uk07Cj4+PiArwqDCoMKgIH0KPj4+ICsKPj4+ICtvdXQ6Cj4+PiArwqDCoMKgIHJldHVybiBkcm1f Z2VtX3R0bV9tbWFwKG9iaiwgdm1hKTsKPj4+ICt9Cj4+PiArCj4+PiDCoCBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIGFtZGdwdV9nZW1fb2JqZWN0X2Z1bmNzID0gewo+ Pj4gwqDCoMKgwqDCoCAuZnJlZSA9IGFtZGdwdV9nZW1fb2JqZWN0X2ZyZWUsCj4+PiDCoMKgwqDC oMKgIC5vcGVuID0gYW1kZ3B1X2dlbV9vYmplY3Rfb3BlbiwKPj4+IEBAIC0yMDgsNiArMjcwLDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcwo+Pj4gYW1kZ3B1X2dl bV9vYmplY3RfZnVuY3MgPSB7Cj4+PiDCoMKgwqDCoMKgIC5leHBvcnQgPSBhbWRncHVfZ2VtX3By aW1lX2V4cG9ydCwKPj4+IMKgwqDCoMKgwqAgLnZtYXAgPSBkcm1fZ2VtX3R0bV92bWFwLAo+Pj4g wqDCoMKgwqDCoCAudnVubWFwID0gZHJtX2dlbV90dG1fdnVubWFwLAo+Pj4gK8KgwqDCoCAubW1h cCA9IGFtZGdwdV9nZW1fcHJpbWVfbW1hcCwKPj4+ICvCoMKgwqAgLnZtX29wcyA9ICZhbWRncHVf dHRtX3ZtX29wcywKPj4+IMKgIH07Cj4+PiDCoCAvKgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmMKPj4+IGluZGV4IDFjNjEzMTQ4OWE4NS4uZDlkZTkxYTUxN2M2 IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5j Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4+IEBA IC0xNTIsMzIgKzE1Miw2IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9ldmljdF9mbGFncyhzdHJ1Y3QK Pj4+IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+IMKgwqDCoMKgwqAgKnBsYWNlbWVudCA9IGFi by0+cGxhY2VtZW50Owo+Pj4gwqAgfQo+Pj4gLS8qKgo+Pj4gLSAqIGFtZGdwdV92ZXJpZnlfYWNj ZXNzIC0gVmVyaWZ5IGFjY2VzcyBmb3IgYSBtbWFwIGNhbGwKPj4+IC0gKgo+Pj4gLSAqIEBibzrC oMKgwqAgVGhlIGJ1ZmZlciBvYmplY3QgdG8gbWFwCj4+PiAtICogQGZpbHA6IFRoZSBmaWxlIHBv aW50ZXIgZnJvbSB0aGUgcHJvY2VzcyBwZXJmb3JtaW5nIHRoZSBtbWFwCj4+PiAtICoKPj4+IC0g KiBUaGlzIGlzIGNhbGxlZCBieSB0dG1fYm9fbW1hcCgpIHRvIHZlcmlmeSB3aGV0aGVyIGEgcHJv Y2Vzcwo+Pj4gLSAqIGhhcyB0aGUgcmlnaHQgdG8gbW1hcCBhIEJPIHRvIHRoZWlyIHByb2Nlc3Mg c3BhY2UuCj4+PiAtICovCj4+PiAtc3RhdGljIGludCBhbWRncHVfdmVyaWZ5X2FjY2VzcyhzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4gc3RydWN0IGZpbGUgKmZpbHApCj4+PiAtewo+ Pj4gLcKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2JvICphYm8gPSB0dG1fdG9fYW1kZ3B1X2JvKGJvKTsK Pj4+IC0KPj4+IC3CoMKgwqAgLyoKPj4+IC3CoMKgwqDCoCAqIERvbid0IHZlcmlmeSBhY2Nlc3Mg Zm9yIEtGRCBCT3MuIFRoZXkgZG9uJ3QgaGF2ZSBhIEdFTQo+Pj4gLcKgwqDCoMKgICogb2JqZWN0 IGFzc29jaWF0ZWQgd2l0aCB0aGVtLgo+Pj4gLcKgwqDCoMKgICovCj4+PiAtwqDCoMKgIGlmIChh Ym8tPmtmZF9ibykKPj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+IC0KPj4+IC3CoMKg wqAgaWYgKGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJtbShiby0+dHRtKSkKPj4+IC3CoMKgwqDCoMKg wqDCoCByZXR1cm4gLUVQRVJNOwo+Pj4gLcKgwqDCoCByZXR1cm4gZHJtX3ZtYV9ub2RlX3Zlcmlm eV9hY2Nlc3MoJmFiby0+dGJvLmJhc2Uudm1hX25vZGUsCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZpbHAtPnByaXZhdGVfZGF0YSk7Cj4+PiAtfQo+Cj4g SGVyZSdzIHRoZSBvcmlnbmFsIHZlcmlmaWNhdGlvbiBjb2RlLiBJdCBnaXZlcyBhIGZyZWUgcGFz cyB0byBLRkQuCj4KPj4+IC0KPj4+IMKgIC8qKgo+Pj4gwqDCoCAqIGFtZGdwdV90dG1fbWFwX2J1 ZmZlciAtIE1hcCBtZW1vcnkgaW50byB0aGUgR0FSVCB3aW5kb3dzCj4+PiDCoMKgICogQGJvOiBi dWZmZXIgb2JqZWN0IHRvIG1hcAo+Pj4gQEAgLTE1MzEsNyArMTUwNSw2IEBAIHN0YXRpYyBzdHJ1 Y3QgdHRtX2RldmljZV9mdW5jcwo+Pj4gYW1kZ3B1X2JvX2RyaXZlciA9IHsKPj4+IMKgwqDCoMKg wqAgLmV2aWN0aW9uX3ZhbHVhYmxlID0gYW1kZ3B1X3R0bV9ib19ldmljdGlvbl92YWx1YWJsZSwK Pj4+IMKgwqDCoMKgwqAgLmV2aWN0X2ZsYWdzID0gJmFtZGdwdV9ldmljdF9mbGFncywKPj4+IMKg wqDCoMKgwqAgLm1vdmUgPSAmYW1kZ3B1X2JvX21vdmUsCj4+PiAtwqDCoMKgIC52ZXJpZnlfYWNj ZXNzID0gJmFtZGdwdV92ZXJpZnlfYWNjZXNzLAo+Pj4gwqDCoMKgwqDCoCAuZGVsZXRlX21lbV9u b3RpZnkgPSAmYW1kZ3B1X2JvX2RlbGV0ZV9tZW1fbm90aWZ5LAo+Pj4gwqDCoMKgwqDCoCAucmVs ZWFzZV9ub3RpZnkgPSAmYW1kZ3B1X2JvX3JlbGVhc2Vfbm90aWZ5LAo+Pj4gwqDCoMKgwqDCoCAu aW9fbWVtX3Jlc2VydmUgPSAmYW1kZ3B1X3R0bV9pb19tZW1fcmVzZXJ2ZSwKPj4+IEBAIC0xOTA2 LDUwICsxODc5LDYgQEAgdm9pZAo+Pj4gYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1 cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbAo+Pj4gZW5hYmxlKQo+Pj4gwqDCoMKg wqDCoCBhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19lbmFibGVkID0gZW5hYmxlOwo+Pj4gwqAgfQo+ Pj4gLXN0YXRpYyB2bV9mYXVsdF90IGFtZGdwdV90dG1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2 bWYpCj4+PiAtewo+Pj4gLcKgwqDCoCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gdm1m LT52bWEtPnZtX3ByaXZhdGVfZGF0YTsKPj4+IC3CoMKgwqAgdm1fZmF1bHRfdCByZXQ7Cj4+PiAt Cj4+PiAtwqDCoMKgIHJldCA9IHR0bV9ib192bV9yZXNlcnZlKGJvLCB2bWYpOwo+Pj4gLcKgwqDC oCBpZiAocmV0KQo+Pj4gLcKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+PiAtCj4+PiAtwqDC oMKgIHJldCA9IGFtZGdwdV9ib19mYXVsdF9yZXNlcnZlX25vdGlmeShibyk7Cj4+PiAtwqDCoMKg IGlmIChyZXQpCj4+PiAtwqDCoMKgwqDCoMKgwqAgZ290byB1bmxvY2s7Cj4+PiAtCj4+PiAtwqDC oMKgIHJldCA9IHR0bV9ib192bV9mYXVsdF9yZXNlcnZlZCh2bWYsIHZtZi0+dm1hLT52bV9wYWdl X3Byb3QsCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg VFRNX0JPX1ZNX05VTV9QUkVGQVVMVCwgMSk7Cj4+PiAtwqDCoMKgIGlmIChyZXQgPT0gVk1fRkFV TFRfUkVUUlkgJiYgISh2bWYtPmZsYWdzICYKPj4+IEZBVUxUX0ZMQUdfUkVUUllfTk9XQUlUKSkK Pj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+Pj4gLQo+Pj4gLXVubG9jazoKPj4+IC3C oMKgwqAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+Pj4gLcKgwqDCoCByZXR1cm4g cmV0Owo+Pj4gLX0KPj4+IC0KPj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNf c3RydWN0IGFtZGdwdV90dG1fdm1fb3BzID0gewo+Pj4gLcKgwqDCoCAuZmF1bHQgPSBhbWRncHVf dHRtX2ZhdWx0LAo+Pj4gLcKgwqDCoCAub3BlbiA9IHR0bV9ib192bV9vcGVuLAo+Pj4gLcKgwqDC oCAuY2xvc2UgPSB0dG1fYm9fdm1fY2xvc2UsCj4+PiAtwqDCoMKgIC5hY2Nlc3MgPSB0dG1fYm9f dm1fYWNjZXNzCj4+PiAtfTsKPj4+IC0KPj4+IC1pbnQgYW1kZ3B1X21tYXAoc3RydWN0IGZpbGUg KmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+Pj4gLXsKPj4+IC3CoMKgwqAgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7Cj4+PiAtwqDCoMKg IHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZHJtX3RvX2FkZXYoZmlsZV9wcml2LT5taW5v ci0+ZGV2KTsKPj4+IC3CoMKgwqAgaW50IHI7Cj4+PiAtCj4+PiAtwqDCoMKgIHIgPSB0dG1fYm9f bW1hcChmaWxwLCB2bWEsICZhZGV2LT5tbWFuLmJkZXYpOwo+Pj4gLcKgwqDCoCBpZiAodW5saWtl bHkociAhPSAwKSkKPj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gcjsKPj4+IC0KPj4+IC3CoMKg wqAgdm1hLT52bV9vcHMgPSAmYW1kZ3B1X3R0bV92bV9vcHM7Cj4+PiAtwqDCoMKgIHJldHVybiAw Owo+Pj4gLX0KPgo+IEFuZCB0aGlzIHdhcyB0aGUgbW1hcCBjYWxsYmFjayBpbiBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zLiBJdCBjYWxscwo+IHR0bV9ib19tbWFwKCksIHdoaWNoIHNraXBzIHZlcmlm aWNhdGlvbiBmb3IgS0ZEIEJPcy4gVG8gdGhlIGJlc3Qgb2YgbXkKPiBrbm93bGVkZ2UsIHRoZXJl IHdhcyBubyBhZGRpdGlvbmFsIHZlcmlmaWNhdGlvbiBmb3IgdGhlc2UgS0ZEIEJPcy4KPgo+IFRo ZSBvcmlnaW5hbCBjb2RlIGluIGFtZGdwdV9nZW1fcHJpbWVfbW1hcCgpIGRpZCBzZW9tIHZlcmlm aWNhdGlvbiwKPiBidXQgZGlkbid0IGhhbmRsZSBLRkQgc3BlY2lhbGx5LiBJIGd1ZXNzLCBQUklN RSBuZWVkcyBHRU0gYW5kIEtGRCBCT3MKPiB3b3VsZG4ndCBxdWFpbGlmeS4KPgo+IEluIHRoZSBl bmQgSSB3ZW50IHdpdGggdGhlIHNlbWFudGljcyBJIGZvdW5kIGluIGFtZGdwdV9tbWFwKCkgYW5k Cj4gaGFuZGxlZCBLRkQgc3BlY2lhbGx5LiBMZXQgbWUga25vdyBpZiB0aGlzIHJlcXVpcmVzIHRv IGJlIGNoYW5nZWQuCj4KPiBCZXN0IHJlZ2FyZHMKPiBUaG9tYXMKPgo+Pj4gLQo+Pj4gwqAgaW50 IGFtZGdwdV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2NF90IHNy Y19vZmZzZXQsCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50NjRfdCBk c3Rfb2Zmc2V0LCB1aW50MzJfdCBieXRlX2NvdW50LAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+IGluZGV4IGRlYzBkYjhiMGIxMy4uNmU1MWZhYWQ3 MzcxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+ IEBAIC0xNDYsNyArMTQ2LDYgQEAgaW50IGFtZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1 X2JvICpibywKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfcmVzdiAq cmVzdiwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2UgKipm ZW5jZSk7Cj4+PiAtaW50IGFtZGdwdV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSk7Cj4+PiDCoCBpbnQgYW1kZ3B1X3R0bV9hbGxvY19nYXJ0KHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+Pj4gwqAgaW50IGFtZGdwdV90dG1fcmVjb3Zlcl9n YXJ0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvKTsKPj4+IMKgIHVpbnQ2NF90IGFtZGdw dV90dG1fZG9tYWluX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gdWludDMy X3QgdHlwZSk7Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVhdQo=