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.2 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, URIBL_BLOCKED,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 85AA6C433E0 for ; Wed, 3 Feb 2021 08:20:41 +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 245D964F67 for ; Wed, 3 Feb 2021 08:20:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 245D964F67 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5C7BF6EA0D; Wed, 3 Feb 2021 08:20:40 +0000 (UTC) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2088.outbound.protection.outlook.com [40.107.243.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 074436EA0D for ; Wed, 3 Feb 2021 08:20:38 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NKTiNZMf7cLdbLDCvXs7UsF2zj07ecDR3X9G1IGLiRFrjHHR9nCcFqPwC/K9Wls74dBsvwIDj5PTAR3GZjKrgrRqsxd1xNglYjq58Pmlo0PKJ4OIh2jT34UNMVCzUEl+XQVEISUD+AeymVk8u2mNt1rStCUmoP3oG67U7w3864SXTcGn67+/KQfHhPz7gz0jW6mrvSr3cWusQRhCV+KIKVZjhTaVZP+lwa/x8Ocgyn+haAVIGYiAs8WTfQdcv8QC3+7Psd13j96cXgKQW6NBYv69YN4SbnVaKIAgWcQXqiJdDoZQqC40iphBXoJzrQODQQwYGLnXntzkNZ6t072iGA== 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=52WG4ezdJU7u6Z7bXl7X8GUTmFTbO+rliCPc/uHFQf4=; b=V2KJQhQ+w6WzEodwAi67wQ/GCF8Oqo9hINnt4FYi+iYzavveHRowo3AOR0w/Ixc0w2kdr6nTbCdZo7AWxw8XwWWJ/C6dOaZYRLKz/G2jX+Rn7uSXkN7gtSiYXq4X6mBmm53T35EPp5heuV8t3L2LrKMNw7+tMDd28jhUEiR4n7q9c2y7DpZPTnTKZqaR2ZbCeDeGnRrh2Ap+SIU4gbMd4fHtds6UJ5x5KM3VzGWu17Jg9zq1johmnGx17EGo1IhIUUycuLV5Ft7Vv6MfLwgolIWR1VwlZUYZ2NObFuXYBN6dvbEUC5v5G+LoGpl+210xQpYrn1bSU9+Jm28ha3YxKA== 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=52WG4ezdJU7u6Z7bXl7X8GUTmFTbO+rliCPc/uHFQf4=; b=FxIPQ5nHZ0/pSiGuuCqPfvJmaCJShbiH+JrAkYBpcBLXJnSdh2oXAjmRoV4YD9CHZu8iayna+Nrh2Bo5jN8skYnXtOVor53qorNnQSx5Klpvy9akzrY9/DSDVhhcWGfULqzjXteGnbBOEH4m0E9twe9Z+XK1syfMDUYNLZCT80E= Authentication-Results: ffwll.ch; dkim=none (message not signed) header.d=none;ffwll.ch; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB3694.namprd12.prod.outlook.com (2603:10b6:208:165::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.11; Wed, 3 Feb 2021 08:20:35 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5%3]) with mapi id 15.20.3805.024; Wed, 3 Feb 2021 08:20:35 +0000 Subject: Re: [Linux-graphics-maintainer] [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx v3 To: Zack Rusin References: <20210128131604.149660-1-christian.koenig@amd.com> <20210128131604.149660-2-christian.koenig@amd.com> <071AC444-2B1A-4333-83FA-CA1A53E35C1C@vmware.com> <003b1e64-2510-5d96-be62-f8f45843023b@amd.com> <5CBDA1F3-5801-45BA-B84A-A5B83FA95BEB@vmware.com> <9CB18811-DA0A-40C3-A719-A9EFAA98D0CE@vmware.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Wed, 3 Feb 2021 09:20:26 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <9CB18811-DA0A-40C3-A719-A9EFAA98D0CE@vmware.com> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM0PR02CA0217.eurprd02.prod.outlook.com (2603:10a6:20b:28f::24) 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:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by AM0PR02CA0217.eurprd02.prod.outlook.com (2603:10a6:20b:28f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.19 via Frontend Transport; Wed, 3 Feb 2021 08:20:34 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e4264186-787f-47c7-5435-08d8c81c9493 X-MS-TrafficTypeDiagnostic: MN2PR12MB3694: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BlDxiIoIS1XIXXsBSLtBhCFtZ9LAvLTZTF6LWuuMuKF1ONwFgkUVyqUgC9CeFDxyK/Td6CnZIiG6nsWzPXrOfa/f4KPGV/agvbF9oAuuxYccd8pizm9xBOWL585IN0QU73i6AHfstLGPK1TS5LFqp8etZVWdFtaHACQAL+sx5Xp77pw8KyUWTyrZRsPNfjdLzj6zcN1g5sifwgBqLJFZIyQd09nuPaIuu7PpgVMHg1qUsrqdz0ZBUE8b1eUBjDKW87upCY4912gRAudIq92t4m6Rt6XNOboVd3NqUwObja25PJIHUc6NZO3iVnPY7CPqWWWpzAlkyKeYfcZydbWTDjT2WzIDEHz5hzYEuozI1fcFpEWBKw0cSE4z/PzJdWkWFkgpebHlM+kJKpGRjqVPdyT+vj81rUbW379Wu4Z3ixvr14RxGdzkwH1KB2dmVdGff7ALbXqiN6/jD18Llfu83Aac6XtFQfOptbMzxpu9f4w0pXjzwzpYTtFr9D2vfFdxlOqWI8bcMLNtUF8geGTYUOheAyQpuSedYXYNtKLU6qaFAdvBacvnWee9OKBhGdLg/3nEjJImsNAj0BID6bpk8ykEiuO7ghrfM+D/g5QS8ShASNLF7uCtivEhJoennSAd 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)(39860400002)(376002)(136003)(366004)(346002)(6486002)(66574015)(52116002)(6916009)(6666004)(478600001)(186003)(2616005)(8676002)(66946007)(53546011)(45080400002)(8936002)(4326008)(2906002)(966005)(30864003)(86362001)(16526019)(31686004)(66476007)(31696002)(54906003)(5660300002)(66556008)(15650500001)(83380400001)(316002)(36756003)(40753002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?TVR3Qkd0NGlBZTczTDkvcEpzem42OWdDRGx4VWVpME9vV0N6cHU3MWdiYnlm?= =?utf-8?B?cmhDVzh1K1BGVCtDV0MxdlRYdUJBclMwTnFGT2tEeFFsdTIwNUlITXhNM0hT?= =?utf-8?B?a29HV2RwYkI3c1h5WHBJSkQvaVNqckE2aUJYMEpMY1JUZFUwTks3SHY5QXdN?= =?utf-8?B?dWdpMlhkUWNxa1ZsVHBaTDdRQjJYSVlIQkdyZ2xyWk53ZmRwZy9vQmxYU3BT?= =?utf-8?B?SlhSeEg4Z2srcHJWMTFTT241Q0xwdGg3Tm16eTVHRnFiU0VQQWZvMHRFUExx?= =?utf-8?B?b0p1MDZkcFdOMS92d012aWpoU3lVVlB0SDFwZ1VrUmhhaWpVdWtSdjg1ZnJt?= =?utf-8?B?bGJlY3Nma2JZUlFJT21SVHhCbXZsK2ZqaXJhc1VRQy9JMEdyVHJ4dUZmY29t?= =?utf-8?B?WUw3dm5kUVdNRnVkWUI4bFMzVzhXVnY1U2pWV2ExOFBrcXo1dnMrV0xpY3o4?= =?utf-8?B?TTJTSDZTOXpuSzZIZ2k5NnNYWGtRZjNYRGFPYU5LSjZmRzJFYXQ5RnF5bnlx?= =?utf-8?B?cjlEcHhUQWQzZE1Cb0pxRS84QTdFSnZHeWJPWitodWErMDNkbC9uMHRPek1s?= =?utf-8?B?SkduZEVMV3RYZ2krVGlTTHZTWllvNFVzbFd2YWsvcHdOb3RFYnhSVEQxdy9I?= =?utf-8?B?YWEvSG4vN3p2SnpTZ2d5N2U0VzhXOHdpYXBxUnp5VXFnMjF6R3Ryc2FmVkN6?= =?utf-8?B?UGx1cGI4QWw5Q1JvbEVLWVJTcnd5MVpleHdCbE9zQXBrT2w0bHVtRFJzb1lk?= =?utf-8?B?cm50aklnYXNTMmszREdvbFRCa2Q1Wk1Ib0hUS1BBbDlWSSt6QnprQ1FpUXVh?= =?utf-8?B?YXdOeTBUNmhxdENqWXhKQ0NDRnliWTYrYnRZTktWQWk2UllOcXUzNjdxV0VX?= =?utf-8?B?OEYrVWtGSDNJNmdkSnpNMm1mc09ucUtxUDFSYzhIREl5UmVSVXJGajZKSmVW?= =?utf-8?B?Mk1tcVdKMVVIc0x0MWh4NkM4U3hMYTdRWnBvSXV3S25uQjk0VHRyK3RuZ1lO?= =?utf-8?B?UGJ3akpySFI5NjlGU1Z3bG85ck05V21XaUtOd1RwN3NMRzdpb2orQ3hEUCty?= =?utf-8?B?VnBrMXFnWm51N1ZwOVZkaElnMmNNMVRZcjVYbFBWcTJ1UGJ3UjFicFBsWmpi?= =?utf-8?B?czhHSlNmNkRScEFSRkFPWjM5OWpuNysrZXMrT1pyVXpDNjdwVWRpMmpjb29B?= =?utf-8?B?WmJSK3hPMmpqdVBhenZsVFZ4eWJ2QzcxbmdqN3RiK3dmV2JxVjQ0S3RQanJr?= =?utf-8?B?TEpYMlFzY2kvZTVOZWZqbXEraXNOdnQxY3JjTmZTZ1ZHK1VCV0FZRm41Tk1Y?= =?utf-8?B?TG9tNkRGOG04M0RJVDlrSFJKYTcxak9jMnkwaU8rWDJWRHp6QVdlK2JHWFg5?= =?utf-8?B?ZmI1MnRUYStUcGNneHRDKzNiSzJLdnk1Rk01cWNCL3l5ZGJMOE9rUnBLQm5l?= =?utf-8?B?MThBRTZsZnRjSUZHMFl3ZDJHU09DUDA2WkttY0hnb2FseXBNdTlaQkNDQWcz?= =?utf-8?B?UlN2Z2NsN0ZieEpPR1Z5L015MU9DQzNYOVNhTlFzUHhReXdSVW1DbldHWVFU?= =?utf-8?B?VVhNWkgyOWtDMWppbmFOOXlRTVZEM1grZWdtUzAzWjBwMWE2NWxTcEJNY3pU?= =?utf-8?B?dmJDamY4OWRRWWJsc1lmanJoSHdENjlrTk91VmErcVdaSEFwMmpFYmtxWi9M?= =?utf-8?B?eDB6WlVHOWpCTk41bVljMm5wVDRVbm54VTNVWDUyMnBYQWRrZjFqUVZEcndY?= =?utf-8?B?cGRZcEVhNTkwbDhLZlRJSGhxbEtWMTBBWk9mWTZNQ3psR3R1dzYra3p4QWYx?= =?utf-8?B?Y0R2cndOQ1Nwd3NndXF0bG84SjZuOEQ3b3ROejAxQmQxVmU5S1ovUUNSa0or?= =?utf-8?Q?ImPxqBSMSg91I?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4264186-787f-47c7-5435-08d8c81c9493 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2021 08:20:35.4215 (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: UFOBpk1yKNrU8EfKmZ0Xhm7XeTcJ42ypmc19QwfOhtuA+IfvG2QklAhSSc92GBtv X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3694 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Linux-graphics-maintainer , "dri-devel@lists.freedesktop.org" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgWmFjaywKCnRoYW5rcyBJIGNhbiB0YWtlIG92ZXIgYWdhaW4gZnJvbSBoZXJlIG9uLgoKUXVp dGUgYnVzeSB0b2RheSwgYnV0IEkgdGhpbmsgSSBjYW4gZ28gb3ZlciB0aGUgY29kZSBvbmNlIG1v cmUgdG9tb3Jyb3cuCgpUaGFua3MgZm9yIHRoZSBoZWxwLApDaHJpc3RpYW4uCgpBbSAwMy4wMi4y MSB1bSAwMzo0NSBzY2hyaWViIFphY2sgUnVzaW46Cj4gSnVzdCBoYWQgYSBxdWljayBwZWVrLiBU aGUgaXNzdWUgaXMgdGhhdCB5b3UgY2Fu4oCZdCBhdHRhY2ggdG8gdGhlIGRybSBkZXZpY2UgKGNh cmQwKSBiZWNhdXNlIGl0IGhhc27igJl0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQgKGRybSBkZXZpY2Ug cmVnaXN0cmF0aW9uIGlzIGxhc3QgaW4gdGhlIHZtd19wcm9iZSBpbiB2bXdnZnhfZHJ2LmMgdmlh IHRoZSBkcm1fZGV2X3JlZ2lzdGVyKS4gU28gZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqIHRoYXQg eW914oCZcmUgdXNpbmcgYXMgYXJndW1lbnQgdG8ga29iamVjdF9pbml0X2FuZF9hZGQgaW4gdHRt X21lbV9nbG9iYWxfaW5pdCBoYXNu4oCZdCBiZWVuIGluaXRpYWxpemVkIHlldC4gU28gdGhhdCBw YXJ0aWN1bGFyIHN5c2ZzIGNvZGUgd291bGQgbGlrZWx5IGhhdmUgdG8gYmUgcmVmYWN0b3JlZCBv dXQgb2YgdHRtX21lbV9nbG9iYWxfaW5pdCB0byBhbm90aGVyIGZ1bmN0aW9uIHRoYXQgY291bGQg YmUgY2FsbGVkIGFmdGVyIGRybSByZWdpc3RyYWN0aW9uLiBJIGNvdWxkIHRha2UgdGhpcyBvbiBi dXQgbm90IHVudGlsIEZyaWRheSBvciBzby4KPgo+IHoKPgo+Cj4+IE9uIEZlYiAyLCAyMDIxLCBh dCAxMjo0MiwgWmFjayBSdXNpbiA8emFja3JAdm13YXJlLmNvbT4gd3JvdGU6Cj4+Cj4+IEFoLCB5 ZXMsIHNvcnJ5LCBJIG1pc3NlZCB0aGF0LiBJIGp1c3QgZG91YmxlIGNoZWNrZWQgYW5kIGl0IGZh aWxzIHdpdGg6Cj4+Cj4+IGtvYmplY3RfYWRkX2ludGVybmFsIGZhaWxlZCBmb3IgbWVtb3J5X2Fj Y291bnRpbmcgKGVycm9yOiAtMiBwYXJlbnQ6IGNhcmQwKQo+Pgo+PiB3aGljaCBicmVha3MgdGhl IHByb2JlIGFuZCB0aGUgZHJpdmVyIHdvbuKAmXQgbG9hZC4gSSB3b27igJl0IGhhdmUgdGltZSB0 byBsb29rIGludG8gaXQgdW50aWwgdG9tb3Jyb3cgdGhvdWdoLgo+Pgo+PiB6Cj4+Cj4+PiBPbiBG ZWIgMiwgMjAyMSwgYXQgMTA6MTYsIENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdA YW1kLmNvbT4gd3JvdGU6Cj4+Pgo+Pj4gSGkgWmFjaywKPj4+Cj4+PiBjYW4geW91IGFsc28gZ2l2 ZSBpdCBhIHF1aWNrIHNtb2tlIHRlc3Q/Cj4+Pgo+Pj4gSSdtIG5vdCBzdXJlIGlmIEkgd2lyZWQg dXAgYWxsIHRoZSBzeXNmcyBtYWdpYyBjb3JyZWN0bHkgaW5zaWRlIHZtd2dmeCwgYnV0IEkgY3Vy cmVudGx5IGRvbid0IGhhdmUgYSBzZXR1cCB3aGVyZSBJIGNhbiB0ZXN0IHRoaXMuCj4+Pgo+Pj4g VGhhbmtzLAo+Pj4gQ2hyaXN0aWFuLgo+Pj4KPj4+IEFtIDAyLjAyLjIxIHVtIDE2OjE0IHNjaHJp ZWIgWmFjayBSdXNpbjoKPj4+PiBMb29rcyBnb29kLiBUaGVyZeKAmXMgcHJvYmFibHkgbm90IG11 Y2ggcmVhc29uIHRvIGNhbGwgaXQgdHRtX21lbW9yeSBhbnltb3JlIGFzIGl0IG9ubHkgZGVhbHMg d2l0aCB0dG1fbWVtX2dsb2IsIHdl4oCZbGwgbGlrZWx5IGZvbGQgaXQgaW4gYWZ0ZXIgeW91IHN1 Ym1pdC4gVGhhbmtzLgo+Pj4+Cj4+Pj4gUmV2aWV3ZWQtYnk6IFphY2sgUnVzaW4gPHphY2tyQHZt d2FyZS5jb20+Cj4+Pj4KPj4+PiB6Cj4+Pj4KPj4+Pj4gT24gRmViIDIsIDIwMjEsIGF0IDA4OjA0 LCBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+IHdyb3RlOgo+Pj4+ Pgo+Pj4+PiBQaW5nPwo+Pj4+Pgo+Pj4+PiBFc3BlY2lhbGx5IFJvbGFuZCBhbmQgWmFjayBkbyB5 b3UgaGF2ZSBhbnkgb2JqZWN0aW9ucyB0byB0aGlzPwo+Pj4+Pgo+Pj4+PiBSZWdhcmRzLAo+Pj4+ PiBDaHJpc3RpYW4uCj4+Pj4+Cj4+Pj4+IEFtIDI4LjAxLjIxIHVtIDE0OjE2IHNjaHJpZWIgQ2hy aXN0aWFuIEvDtm5pZzoKPj4+Pj4+IFRoaXMgaXMganVzdCBhbm90aGVyIGZlYXR1cmUgd2hpY2gg aXMgb25seSB1c2VkIGJ5IFZNV0dGWCwgc28gbW92ZQo+Pj4+Pj4gaXQgaW50byB0aGUgZHJpdmVy IGluc3RlYWQuCj4+Pj4+Pgo+Pj4+Pj4gSSd2ZSB0cmllZCB0byBhZGQgdGhlIGFjY291bnRpbmcg c3lzZnMgZmlsZSB0byB0aGUga29iamVjdCBvZiB0aGUgZHJtCj4+Pj4+PiBtaW5vciwgYnV0IEkn bSBub3QgMTAwJSBzdXJlIGlmIHRoaXMgd29ya3MgYXMgZXhwZWN0ZWQuCj4+Pj4+Pgo+Pj4+Pj4g djI6IGZpeCB0eXBvIGluIEtGRCBhbmQgYXZvaWQgNjRiaXQgZGl2aWRlCj4+Pj4+PiB2MzogZml4 IGluaXQgb3JkZXIgaW4gVk1XR0ZYCj4+Pj4+Pgo+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4+Pj4gLS0tCj4+Pj4+PiAu Li4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyAgfCAxNiArKysrKyst LS0KPj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyAgICB8 ICA4ICsrLS0tCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jICAg ICAgICAgfCAgNiArKy0tCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jv LmMgICAgICAgICAgfCAgNyArKy0tCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2Rydi5oICAgICAgICAgfCAgMSAtCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9v YmplY3QuYyAgICAgICAgICAgICAgfCAgNCArLS0KPj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX29iamVjdC5jICAgICAgICB8ICA4ICsrLS0tCj4+Pj4+PiBkcml2ZXJzL2dwdS9k cm0vdHRtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgNyArKy0tCj4+Pj4+PiBkcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAgICAgICAgICAgfCAzMyArLS0tLS0tLS0tLS0t LS0tLS0tCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAgICAgICAg ICAgfCAgMSAtCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYyAgICAgICAg ICAgICAgfCAyMiArKysrKysrKysrLS0tCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9w b29sLmMgICAgICAgICAgICAgICAgfCAxMyArLS0tLS0tLQo+Pj4+Pj4gZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgIDIgKy0KPj4+Pj4+IGRyaXZlcnMvZ3B1 L2RybS97dHRtID0+IHZtd2dmeH0vdHRtX21lbW9yeS5jICB8IDE5ICsrKystLS0tLS0tCj4+Pj4+ PiAuLi4vZ3B1L2RybS92bXdnZnh9L3R0bV9tZW1vcnkuaCAgICAgICAgICAgICAgfCAgNSArLS0K Pj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX29iamVjdC5oICAgICAgICAgICB8ICAz ICstCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jICAgICAgICAgICAg fCAyMiArKysrKysrKysrLS0tCj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuYyAgICAgICAgICAgfCAgNSArKysKPj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3R0bV9idWZmZXIuYyAgICB8IDI4ICsrKysrKysrKysrKysrKy0KPj4+Pj4+IGluY2x1ZGUv ZHJtL3R0bS90dG1fYm9fYXBpLmggICAgICAgICAgICAgICAgICB8IDEzICsrLS0tLS0tCj4+Pj4+ PiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oICAgICAgICAgICAgICAgfCAgMSAtCj4+ Pj4+PiBpbmNsdWRlL2RybS90dG0vdHRtX3R0LmggICAgICAgICAgICAgICAgICAgICAgfCAgMSAr Cj4+Pj4+PiAyMiBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgMTE1IGRlbGV0aW9u cygtKQo+Pj4+Pj4gcmVuYW1lIGRyaXZlcnMvZ3B1L2RybS97dHRtID0+IHZtd2dmeH0vdHRtX21l bW9yeS5jICg5NyUpCj4+Pj4+PiByZW5hbWUge2luY2x1ZGUvZHJtL3R0bSA9PiBkcml2ZXJzL2dw dS9kcm0vdm13Z2Z4fS90dG1fbWVtb3J5LmggKDk3JSkKPj4+Pj4+Cj4+Pj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4+Pj4+PiBpbmRl eCAwODQ5YjY4ZTc4NGYuLmU0NDBhZjM3ZGRlOCAxMDA2NDQKPj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+Pj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4+Pj4+PiBAQCAt MTE4LDYgKzExOCwxNiBAQCB2b2lkIGFtZGdwdV9hbWRrZmRfZ3B1dm1faW5pdF9tZW1fbGltaXRz KHZvaWQpCj4+Pj4+PiAgICovCj4+Pj4+PiAjZGVmaW5lIEVTVElNQVRFX1BUX1NJWkUobWVtX3Np emUpICgobWVtX3NpemUpID4+IDE0KQo+Pj4+Pj4gK3N0YXRpYyBzaXplX3QgYW1kZ3B1X2FtZGtm ZF9hY2Nfc2l6ZSh1aW50NjRfdCBzaXplKQo+Pj4+Pj4gK3sKPj4+Pj4+ICtzaXplID4+PSBQQUdF X1NISUZUOwo+Pj4+Pj4gK3NpemUgKj0gc2l6ZW9mKGRtYV9hZGRyX3QpICsgc2l6ZW9mKHZvaWQg Kik7Cj4+Pj4+PiArCj4+Pj4+PiArcmV0dXJuIF9fcm91bmR1cF9wb3dfb2ZfdHdvKHNpemVvZihz dHJ1Y3QgYW1kZ3B1X2JvKSkgKwo+Pj4+Pj4gK19fcm91bmR1cF9wb3dfb2ZfdHdvKHNpemVvZihz dHJ1Y3QgdHRtX3R0KSkgKwo+Pj4+Pj4gK1BBR0VfQUxJR04oc2l6ZSk7Cj4+Pj4+PiArfQo+Pj4+ Pj4gKwo+Pj4+Pj4gc3RhdGljIGludCBhbWRncHVfYW1ka2ZkX3Jlc2VydmVfbWVtX2xpbWl0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+Pj4gdWludDY0X3Qgc2l6ZSwgdTMyIGRvbWFp biwgYm9vbCBzZykKPj4+Pj4+IHsKPj4+Pj4+IEBAIC0xMjYsOCArMTM2LDcgQEAgc3RhdGljIGlu dCBhbWRncHVfYW1ka2ZkX3Jlc2VydmVfbWVtX2xpbWl0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAo+Pj4+Pj4gc2l6ZV90IGFjY19zaXplLCBzeXN0ZW1fbWVtX25lZWRlZCwgdHRtX21lbV9u ZWVkZWQsIHZyYW1fbmVlZGVkOwo+Pj4+Pj4gaW50IHJldCA9IDA7Cj4+Pj4+PiAtYWNjX3NpemUg PSB0dG1fYm9fZG1hX2FjY19zaXplKCZhZGV2LT5tbWFuLmJkZXYsIHNpemUsCj4+Pj4+PiAtICAg ICAgIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2JvKSk7Cj4+Pj4+PiArYWNjX3NpemUgPSBhbWRncHVf YW1ka2ZkX2FjY19zaXplKHNpemUpOwo+Pj4+Pj4gICAgdnJhbV9uZWVkZWQgPSAwOwo+Pj4+Pj4g aWYgKGRvbWFpbiA9PSBBTURHUFVfR0VNX0RPTUFJTl9HVFQpIHsKPj4+Pj4+IEBAIC0xNzQsOCAr MTgzLDcgQEAgc3RhdGljIHZvaWQgdW5yZXNlcnZlX21lbV9saW1pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKPj4+Pj4+IHsKPj4+Pj4+IHNpemVfdCBhY2Nfc2l6ZTsKPj4+Pj4+IC1hY2Nf c2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4uYmRldiwgc2l6ZSwKPj4+Pj4+ IC0gICAgICAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPj4+Pj4+ICthY2Nfc2l6ZSA9IGFt ZGdwdV9hbWRrZmRfYWNjX3NpemUoc2l6ZSk7Cj4+Pj4+PiAgICBzcGluX2xvY2soJmtmZF9tZW1f bGltaXQubWVtX2xpbWl0X2xvY2spOwo+Pj4+Pj4gaWYgKGRvbWFpbiA9PSBBTURHUFVfR0VNX0RP TUFJTl9HVFQpIHsKPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2Jq ZWN0LmMKPj4+Pj4+IGluZGV4IDZjYzk5MTliMTJjYy4uNTk5YzlhMTMyZWI2IDEwMDY0NAo+Pj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+Pj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+Pj4+ IEBAIC01MjMsNyArNTIzLDYgQEAgc3RhdGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+Pj4gfTsKPj4+Pj4+IHN0cnVjdCBhbWRncHVfYm8g KmJvOwo+Pj4+Pj4gdW5zaWduZWQgbG9uZyBwYWdlX2FsaWduLCBzaXplID0gYnAtPnNpemU7Cj4+ Pj4+PiAtc2l6ZV90IGFjY19zaXplOwo+Pj4+Pj4gaW50IHI7Cj4+Pj4+PiAgICAvKiBOb3RlIHRo YXQgR0RTL0dXUy9PQSBhbGxvY2F0ZXMgMSBwYWdlIHBlciBieXRlL3Jlc291cmNlLiAqLwo+Pj4+ Pj4gQEAgLTU0Niw5ICs1NDUsNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19kb19jcmVhdGUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4+PiAgICAqYm9fcHRyID0gTlVMTDsKPj4+Pj4+ IC1hY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4uYmRldiwgc2l6ZSwK Pj4+Pj4+IC0gICAgICAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPj4+Pj4+IC0KPj4+Pj4+ IGJvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFtZGdwdV9ibyksIEdGUF9LRVJORUwpOwo+Pj4+ Pj4gaWYgKGJvID09IE5VTEwpCj4+Pj4+PiByZXR1cm4gLUVOT01FTTsKPj4+Pj4+IEBAIC01Nzcs OCArNTczLDggQEAgc3RhdGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAo+Pj4+Pj4gYm8tPnRiby5wcmlvcml0eSA9IDE7Cj4+Pj4+PiAgICByID0g dHRtX2JvX2luaXRfcmVzZXJ2ZWQoJmFkZXYtPm1tYW4uYmRldiwgJmJvLT50Ym8sIHNpemUsIGJw LT50eXBlLAo+Pj4+Pj4gLSAmYm8tPnBsYWNlbWVudCwgcGFnZV9hbGlnbiwgJmN0eCwgYWNjX3Np emUsCj4+Pj4+PiAtIE5VTEwsIGJwLT5yZXN2LCAmYW1kZ3B1X2JvX2Rlc3Ryb3kpOwo+Pj4+Pj4g KyAmYm8tPnBsYWNlbWVudCwgcGFnZV9hbGlnbiwgJmN0eCwgIE5VTEwsCj4+Pj4+PiArIGJwLT5y ZXN2LCAmYW1kZ3B1X2JvX2Rlc3Ryb3kpOwo+Pj4+Pj4gaWYgKHVubGlrZWx5KHIgIT0gMCkpCj4+ Pj4+PiByZXR1cm4gcjsKPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dl bV92cmFtX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwo+ Pj4+Pj4gaW5kZXggMGIxM2M4NTA3Njg4Li5hMDk5MmYwYjhhZmQgMTAwNjQ0Cj4+Pj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4+Pj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4+Pj4+PiBAQCAtMTg5LDcgKzE4OSw2 IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpkcm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+PiBzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSA9IGRldi0+ dnJhbV9tbTsKPj4+Pj4+IHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2Owo+Pj4+Pj4gaW50IHJldDsK Pj4+Pj4+IC1zaXplX3QgYWNjX3NpemU7Cj4+Pj4+PiAgICBpZiAoV0FSTl9PTkNFKCF2bW0sICJW UkFNIE1NIG5vdCBpbml0aWFsaXplZCIpKQo+Pj4+Pj4gcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 Cj4+Pj4+PiBAQCAtMjE2LDcgKzIxNSw2IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpk cm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+PiB9Cj4+Pj4+ PiAgICBiZGV2ID0gJnZtbS0+YmRldjsKPj4+Pj4+IC1hY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNj X3NpemUoYmRldiwgc2l6ZSwgc2l6ZW9mKCpnYm8pKTsKPj4+Pj4+ICAgIGdiby0+Ym8uYmRldiA9 IGJkZXY7Cj4+Pj4+PiBkcm1fZ2VtX3ZyYW1fcGxhY2VtZW50KGdibywgRFJNX0dFTV9WUkFNX1BM X0ZMQUdfU1lTVEVNKTsKPj4+Pj4+IEBAIC0yMjYsOCArMjI0LDggQEAgc3RydWN0IGRybV9nZW1f dnJhbV9vYmplY3QgKmRybV9nZW1fdnJhbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK Pj4+Pj4+ICAgKiB0byByZWxlYXNlIGdiby0+Ym8uYmFzZSBhbmQga2ZyZWUgZ2JvLgo+Pj4+Pj4g ICAqLwo+Pj4+Pj4gcmV0ID0gdHRtX2JvX2luaXQoYmRldiwgJmdiby0+Ym8sIHNpemUsIHR0bV9i b190eXBlX2RldmljZSwKPj4+Pj4+IC0gICZnYm8tPnBsYWNlbWVudCwgcGdfYWxpZ24sIGZhbHNl LCBhY2Nfc2l6ZSwKPj4+Pj4+IC0gIE5VTEwsIE5VTEwsIHR0bV9idWZmZXJfb2JqZWN0X2Rlc3Ry b3kpOwo+Pj4+Pj4gKyAgJmdiby0+cGxhY2VtZW50LCBwZ19hbGlnbiwgZmFsc2UsIE5VTEwsIE5V TEwsCj4+Pj4+PiArICB0dG1fYnVmZmVyX29iamVjdF9kZXN0cm95KTsKPj4+Pj4+IGlmIChyZXQp Cj4+Pj4+PiByZXR1cm4gRVJSX1BUUihyZXQpOwo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfYm8uYwo+Pj4+Pj4gaW5kZXggYzE3Nzk0MGQ2ZTJjLi5jYTJhOGFlMTkzOGUgMTAwNjQ0 Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4+Pj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYwo+Pj4+Pj4gQEAgLTMw MCwxOCArMzAwLDE1IEBAIG5vdXZlYXVfYm9faW5pdChzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywg dTY0IHNpemUsIGludCBhbGlnbiwgdTMyIGRvbWFpbiwKPj4+Pj4+IHN0cnVjdCBzZ190YWJsZSAq c2csIHN0cnVjdCBkbWFfcmVzdiAqcm9iaikKPj4+Pj4+IHsKPj4+Pj4+IGludCB0eXBlID0gc2cg PyB0dG1fYm9fdHlwZV9zZyA6IHR0bV9ib190eXBlX2RldmljZTsKPj4+Pj4+IC1zaXplX3QgYWNj X3NpemU7Cj4+Pj4+PiBpbnQgcmV0Owo+Pj4+Pj4gLWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nf c2l6ZShudmJvLT5iby5iZGV2LCBzaXplLCBzaXplb2YoKm52Ym8pKTsKPj4+Pj4+IC0KPj4+Pj4+ IG52Ym8tPmJvLm1lbS5udW1fcGFnZXMgPSBzaXplID4+IFBBR0VfU0hJRlQ7Cj4+Pj4+PiBub3V2 ZWF1X2JvX3BsYWNlbWVudF9zZXQobnZibywgZG9tYWluLCAwKTsKPj4+Pj4+IElOSVRfTElTVF9I RUFEKCZudmJvLT5pb19yZXNlcnZlX2xydSk7Cj4+Pj4+PiAgICByZXQgPSB0dG1fYm9faW5pdChu dmJvLT5iby5iZGV2LCAmbnZiby0+Ym8sIHNpemUsIHR5cGUsCj4+Pj4+PiAtICAmbnZiby0+cGxh Y2VtZW50LCBhbGlnbiA+PiBQQUdFX1NISUZULCBmYWxzZSwKPj4+Pj4+IC0gIGFjY19zaXplLCBz Zywgcm9iaiwgbm91dmVhdV9ib19kZWxfdHRtKTsKPj4+Pj4+ICsgICZudmJvLT5wbGFjZW1lbnQs IGFsaWduID4+IFBBR0VfU0hJRlQsIGZhbHNlLCBzZywKPj4+Pj4+ICsgIHJvYmosIG5vdXZlYXVf Ym9fZGVsX3R0bSk7Cj4+Pj4+PiBpZiAocmV0KSB7Cj4+Pj4+PiAvKiB0dG0gd2lsbCBjYWxsIG5v dXZlYXVfYm9fZGVsX3R0bSBpZiBpdCBmYWlscy4uICovCj4+Pj4+PiByZXR1cm4gcmV0Owo+Pj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4+Pj4+PiBpbmRleCBlZGY5ZDFl ZTlkNTguLmE0OTFjMmMxYzU2ZSAxMDA2NDQKPj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfZHJ2LmgKPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfZHJ2LmgKPj4+Pj4+IEBAIC01NCw3ICs1NCw2IEBACj4+Pj4+PiAjaW5jbHVkZSA8 ZHJtL3R0bS90dG1fYm9fYXBpLmg+Cj4+Pj4+PiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJp dmVyLmg+Cj4+Pj4+PiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Cj4+Pj4+PiAt I2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgo+Pj4+Pj4gICAgI2luY2x1ZGUgPGRybS9k cm1fYXVkaW9fY29tcG9uZW50Lmg+Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuYwo+Pj4+ Pj4gaW5kZXggY2VlYmM1ODgxZjY4Li43MDViNTE1MzU0OTIgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuYwo+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfb2JqZWN0LmMKPj4+Pj4+IEBAIC0xMzgsOCArMTM4LDggQEAgaW50IHF4bF9i b19jcmVhdGUoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYsCj4+Pj4+PiBxeGxfdHRtX3BsYWNlbWVu dF9mcm9tX2RvbWFpbihibywgZG9tYWluKTsKPj4+Pj4+ICAgIHIgPSB0dG1fYm9faW5pdF9yZXNl cnZlZCgmcWRldi0+bW1hbi5iZGV2LCAmYm8tPnRibywgc2l6ZSwgdHlwZSwKPj4+Pj4+IC0gJmJv LT5wbGFjZW1lbnQsIDAsICZjdHgsIHNpemUsCj4+Pj4+PiAtIE5VTEwsIE5VTEwsICZxeGxfdHRt X2JvX2Rlc3Ryb3kpOwo+Pj4+Pj4gKyAmYm8tPnBsYWNlbWVudCwgMCwgJmN0eCwgTlVMTCwgTlVM TCwKPj4+Pj4+ICsgJnF4bF90dG1fYm9fZGVzdHJveSk7Cj4+Pj4+PiBpZiAodW5saWtlbHkociAh PSAwKSkgewo+Pj4+Pj4gaWYgKHIgIT0gLUVSRVNUQVJUU1lTKQo+Pj4+Pj4gZGV2X2VycihxZGV2 LT5kZGV2LmRldiwKPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4+ Pj4+PiBpbmRleCA2YTMzNjI4NDQ2NmYuLjgwNGY3YTQyN2JlNyAxMDA2NDQKPj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4+Pj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+Pj4+Pj4gQEAgLTE1OSw3ICsxNTks NiBAQCBpbnQgcmFkZW9uX2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPj4+ Pj4+IHN0cnVjdCByYWRlb25fYm8gKmJvOwo+Pj4+Pj4gZW51bSB0dG1fYm9fdHlwZSB0eXBlOwo+ Pj4+Pj4gdW5zaWduZWQgbG9uZyBwYWdlX2FsaWduID0gcm91bmR1cChieXRlX2FsaWduLCBQQUdF X1NJWkUpID4+IFBBR0VfU0hJRlQ7Cj4+Pj4+PiAtc2l6ZV90IGFjY19zaXplOwo+Pj4+Pj4gaW50 IHI7Cj4+Pj4+PiAgICBzaXplID0gQUxJR04oc2l6ZSwgUEFHRV9TSVpFKTsKPj4+Pj4+IEBAIC0x NzMsOSArMTcyLDYgQEAgaW50IHJhZGVvbl9ib19jcmVhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsCj4+Pj4+PiB9Cj4+Pj4+PiAqYm9fcHRyID0gTlVMTDsKPj4+Pj4+IC1hY2Nfc2l6ZSA9 IHR0bV9ib19kbWFfYWNjX3NpemUoJnJkZXYtPm1tYW4uYmRldiwgc2l6ZSwKPj4+Pj4+IC0gICAg ICAgc2l6ZW9mKHN0cnVjdCByYWRlb25fYm8pKTsKPj4+Pj4+IC0KPj4+Pj4+IGJvID0ga3phbGxv YyhzaXplb2Yoc3RydWN0IHJhZGVvbl9ibyksIEdGUF9LRVJORUwpOwo+Pj4+Pj4gaWYgKGJvID09 IE5VTEwpCj4+Pj4+PiByZXR1cm4gLUVOT01FTTsKPj4+Pj4+IEBAIC0yMzAsOCArMjI2LDggQEAg aW50IHJhZGVvbl9ib19jcmVhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4+Pj4+PiAv KiBLZXJuZWwgYWxsb2NhdGlvbiBhcmUgdW5pbnRlcnJ1cHRpYmxlICovCj4+Pj4+PiBkb3duX3Jl YWQoJnJkZXYtPnBtLm1jbGtfbG9jayk7Cj4+Pj4+PiByID0gdHRtX2JvX2luaXQoJnJkZXYtPm1t YW4uYmRldiwgJmJvLT50Ym8sIHNpemUsIHR5cGUsCj4+Pj4+PiAtJmJvLT5wbGFjZW1lbnQsIHBh Z2VfYWxpZ24sICFrZXJuZWwsIGFjY19zaXplLAo+Pj4+Pj4gLXNnLCByZXN2LCAmcmFkZW9uX3R0 bV9ib19kZXN0cm95KTsKPj4+Pj4+ICsmYm8tPnBsYWNlbWVudCwgcGFnZV9hbGlnbiwgIWtlcm5l bCwgc2csIHJlc3YsCj4+Pj4+PiArJnJhZGVvbl90dG1fYm9fZGVzdHJveSk7Cj4+Pj4+PiB1cF9y ZWFkKCZyZGV2LT5wbS5tY2xrX2xvY2spOwo+Pj4+Pj4gaWYgKHVubGlrZWx5KHIgIT0gMCkpIHsK Pj4+Pj4+IHJldHVybiByOwo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0v TWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlCj4+Pj4+PiBpbmRleCA4ZTY0 MzdlYWRhYmUuLjQwZTVlOWRhNzk1MyAxMDA2NDQKPj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vTWFrZWZpbGUKPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUK Pj4+Pj4+IEBAIC0yLDEwICsyLDkgQEAKPj4+Pj4+ICMKPj4+Pj4+ICMgTWFrZWZpbGUgZm9yIHRo ZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRo ZQo+Pj4+Pj4gLXR0bS15IDo9IHR0bV9tZW1vcnkubyB0dG1fdHQubyB0dG1fYm8ubyBcCj4+Pj4+ PiAtdHRtX2JvX3V0aWwubyB0dG1fYm9fdm0ubyB0dG1fbW9kdWxlLm8gXAo+Pj4+Pj4gLXR0bV9l eGVjYnVmX3V0aWwubyB0dG1fcmFuZ2VfbWFuYWdlci5vIFwKPj4+Pj4+IC10dG1fcmVzb3VyY2Uu byB0dG1fcG9vbC5vIHR0bV9kZXZpY2Uubwo+Pj4+Pj4gK3R0bS15IDo9IHR0bV90dC5vIHR0bV9i by5vIHR0bV9ib191dGlsLm8gdHRtX2JvX3ZtLm8gdHRtX21vZHVsZS5vIFwKPj4+Pj4+ICt0dG1f ZXhlY2J1Zl91dGlsLm8gdHRtX3JhbmdlX21hbmFnZXIubyB0dG1fcmVzb3VyY2UubyB0dG1fcG9v bC5vIFwKPj4+Pj4+ICt0dG1fZGV2aWNlLm8KPj4+Pj4+IHR0bS0kKENPTkZJR19BR1ApICs9IHR0 bV9hZ3BfYmFja2VuZC5vCj4+Pj4+PiAgICBvYmotJChDT05GSUdfRFJNX1RUTSkgKz0gdHRtLm8K Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+Pj4+Pj4gaW5kZXggNjQzYmVmYzFhNmYyLi5lMzgxMDIy ODJmZDUgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+Pj4+PiBAQCAtNDI1LDcg KzQyNSw2IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQo+ Pj4+Pj4gc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9Cj4+Pj4+PiAgICAgIGNvbnRhaW5l cl9vZihrcmVmLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QsIGtyZWYpOwo+Pj4+Pj4gc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4+Pj4+IC1zaXplX3QgYWNjX3NpemUgPSBi by0+YWNjX3NpemU7Cj4+Pj4+PiBpbnQgcmV0Owo+Pj4+Pj4gICAgaWYgKCFiby0+ZGVsZXRlZCkg ewo+Pj4+Pj4gQEAgLTQ4NSw3ICs0ODQsNiBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZShz dHJ1Y3Qga3JlZiAqa3JlZikKPj4+Pj4+IGlmICghdHRtX2JvX3VzZXNfZW1iZWRkZWRfZ2VtX29i amVjdChibykpCj4+Pj4+PiBkbWFfcmVzdl9maW5pKCZiby0+YmFzZS5fcmVzdik7Cj4+Pj4+PiBi by0+ZGVzdHJveShibyk7Cj4+Pj4+PiAtdHRtX21lbV9nbG9iYWxfZnJlZSgmdHRtX21lbV9nbG9i LCBhY2Nfc2l6ZSk7Cj4+Pj4+PiB9Cj4+Pj4+PiAgICB2b2lkIHR0bV9ib19wdXQoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibykKPj4+Pj4+IEBAIC0xMDQ2LDI1ICsxMDQ0LDEzIEBAIGludCB0 dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+ICAgc3Ry dWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKPj4+Pj4+ICAgdWludDMyX3QgcGFnZV9hbGln bm1lbnQsCj4+Pj4+PiAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+Pj4+Pj4gLSBz aXplX3QgYWNjX3NpemUsCj4+Pj4+PiAgIHN0cnVjdCBzZ190YWJsZSAqc2csCj4+Pj4+PiAgIHN0 cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+ICAgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKikpCj4+Pj4+PiB7Cj4+Pj4+PiAtc3RydWN0IHR0bV9tZW1fZ2xvYmFs ICptZW1fZ2xvYiA9ICZ0dG1fbWVtX2dsb2I7Cj4+Pj4+PiBib29sIGxvY2tlZDsKPj4+Pj4+IGlu dCByZXQgPSAwOwo+Pj4+Pj4gLXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKG1lbV9nbG9iLCBh Y2Nfc2l6ZSwgY3R4KTsKPj4+Pj4+IC1pZiAocmV0KSB7Cj4+Pj4+PiAtcHJfZXJyKCJPdXQgb2Yg a2VybmVsIG1lbW9yeVxuIik7Cj4+Pj4+PiAtaWYgKGRlc3Ryb3kpCj4+Pj4+PiAtKCpkZXN0cm95 KShibyk7Cj4+Pj4+PiAtZWxzZQo+Pj4+Pj4gLWtmcmVlKGJvKTsKPj4+Pj4+IC1yZXR1cm4gLUVO T01FTTsKPj4+Pj4+IC19Cj4+Pj4+PiAtCj4+Pj4+PiBiby0+ZGVzdHJveSA9IGRlc3Ryb3kgPyBk ZXN0cm95IDogdHRtX2JvX2RlZmF1bHRfZGVzdHJveTsKPj4+Pj4+ICAgIGtyZWZfaW5pdCgmYm8t PmtyZWYpOwo+Pj4+Pj4gQEAgLTEwODEsNyArMTA2Nyw2IEBAIGludCB0dG1fYm9faW5pdF9yZXNl cnZlZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+IGJvLT5tZW0uYnVzLmFkZHIgPSBO VUxMOwo+Pj4+Pj4gYm8tPm1vdmluZyA9IE5VTEw7Cj4+Pj4+PiBiby0+bWVtLnBsYWNlbWVudCA9 IDA7Cj4+Pj4+PiAtYm8tPmFjY19zaXplID0gYWNjX3NpemU7Cj4+Pj4+PiBiby0+cGluX2NvdW50 ID0gMDsKPj4+Pj4+IGJvLT5zZyA9IHNnOwo+Pj4+Pj4gaWYgKHJlc3YpIHsKPj4+Pj4+IEBAIC0x MTQyLDcgKzExMjcsNiBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYs Cj4+Pj4+PiBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAo+Pj4+Pj4gdWludDMyX3Qg cGFnZV9hbGlnbm1lbnQsCj4+Pj4+PiBib29sIGludGVycnVwdGlibGUsCj4+Pj4+PiAtc2l6ZV90 IGFjY19zaXplLAo+Pj4+Pj4gc3RydWN0IHNnX3RhYmxlICpzZywKPj4+Pj4+IHN0cnVjdCBkbWFf cmVzdiAqcmVzdiwKPj4+Pj4+IHZvaWQgKCpkZXN0cm95KSAoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICopKQo+Pj4+Pj4gQEAgLTExNTEsOCArMTEzNSw3IEBAIGludCB0dG1fYm9faW5pdChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+IGludCByZXQ7Cj4+Pj4+PiAgICByZXQgPSB0dG1f Ym9faW5pdF9yZXNlcnZlZChiZGV2LCBibywgc2l6ZSwgdHlwZSwgcGxhY2VtZW50LAo+Pj4+Pj4g LSAgIHBhZ2VfYWxpZ25tZW50LCAmY3R4LCBhY2Nfc2l6ZSwKPj4+Pj4+IC0gICBzZywgcmVzdiwg ZGVzdHJveSk7Cj4+Pj4+PiArICAgcGFnZV9hbGlnbm1lbnQsICZjdHgsIHNnLCByZXN2LCBkZXN0 cm95KTsKPj4+Pj4+IGlmIChyZXQpCj4+Pj4+PiByZXR1cm4gcmV0Owo+Pj4+Pj4gQEAgLTExNjMs MjAgKzExNDYsNiBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ Pj4+PiB9Cj4+Pj4+PiBFWFBPUlRfU1lNQk9MKHR0bV9ib19pbml0KTsKPj4+Pj4+IC1zaXplX3Qg dHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+IC0gICB1 bnNpZ25lZCBsb25nIGJvX3NpemUsCj4+Pj4+PiAtICAgdW5zaWduZWQgc3RydWN0X3NpemUpCj4+ Pj4+PiAtewo+Pj4+Pj4gLXVuc2lnbmVkIG5wYWdlcyA9IChQQUdFX0FMSUdOKGJvX3NpemUpKSA+ PiBQQUdFX1NISUZUOwo+Pj4+Pj4gLXNpemVfdCBzaXplID0gMDsKPj4+Pj4+IC0KPj4+Pj4+IC1z aXplICs9IHR0bV9yb3VuZF9wb3Qoc3RydWN0X3NpemUpOwo+Pj4+Pj4gLXNpemUgKz0gdHRtX3Jv dW5kX3BvdChucGFnZXMgKiAoMipzaXplb2Yodm9pZCAqKSArIHNpemVvZihkbWFfYWRkcl90KSkp Owo+Pj4+Pj4gLXNpemUgKz0gdHRtX3JvdW5kX3BvdChzaXplb2Yoc3RydWN0IHR0bV90dCkpOwo+ Pj4+Pj4gLXJldHVybiBzaXplOwo+Pj4+Pj4gLX0KPj4+Pj4+IC1FWFBPUlRfU1lNQk9MKHR0bV9i b19kbWFfYWNjX3NpemUpOwo+Pj4+Pj4gLQo+Pj4+Pj4gLyoKPj4+Pj4+ICAgKiBidWZmZXIgb2Jq ZWN0IHZtIGZ1bmN0aW9ucy4KPj4+Pj4+ICAgKi8KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191 dGlsLmMKPj4+Pj4+IGluZGV4IGRiMGYyNjYxZDUwNC4uMDMxZTU4MTlmZWM0IDEwMDY0NAo+Pj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4+Pj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPj4+Pj4+IEBAIC0zMDksNyArMzA5LDYg QEAgc3RhdGljIGludCB0dG1fYnVmZmVyX29iamVjdF90cmFuc2ZlcihzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAo+Pj4+Pj4gICAga3JlZl9pbml0KCZmYm8tPmJhc2Uua3JlZik7Cj4+Pj4+ PiBmYm8tPmJhc2UuZGVzdHJveSA9ICZ0dG1fdHJhbnNmZXJlZF9kZXN0cm95Owo+Pj4+Pj4gLWZi by0+YmFzZS5hY2Nfc2l6ZSA9IDA7Cj4+Pj4+PiBmYm8tPmJhc2UucGluX2NvdW50ID0gMDsKPj4+ Pj4+IGlmIChiby0+dHlwZSAhPSB0dG1fYm9fdHlwZV9zZykKPj4+Pj4+IGZiby0+YmFzZS5iYXNl LnJlc3YgPSAmZmJvLT5iYXNlLmJhc2UuX3Jlc3Y7Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZp Y2UuYwo+Pj4+Pj4gaW5kZXggYWMwOTAzYzllNjBhLi42YmRlMzQ0ZTVkYTcgMTAwNjQ0Cj4+Pj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYwo+Pj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPj4+Pj4+IEBAIC0yNyw5ICsyNywxMiBAQAo+ Pj4+Pj4gICAgI2RlZmluZSBwcl9mbXQoZm10KSAiW1RUTSBERVZJQ0VdICIgZm10Cj4+Pj4+PiAr I2luY2x1ZGUgPGxpbnV4L21tLmg+Cj4+Pj4+PiArCj4+Pj4+PiAjaW5jbHVkZSA8ZHJtL3R0bS90 dG1fZGV2aWNlLmg+Cj4+Pj4+PiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgo+Pj4+ Pj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV90dC5oPgo+Pj4+Pj4gI2luY2x1ZGUgPGRybS90dG0v dHRtX3BsYWNlbWVudC5oPgo+Pj4+Pj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4K Pj4+Pj4+ICAgICNpbmNsdWRlICJ0dG1fbW9kdWxlLmgiCj4+Pj4+PiBAQCAtNDksOSArNTIsMTEg QEAgc3RhdGljIHZvaWQgdHRtX2dsb2JhbF9yZWxlYXNlKHZvaWQpCj4+Pj4+PiBpZiAoLS10dG1f Z2xvYl91c2VfY291bnQgPiAwKQo+Pj4+Pj4gZ290byBvdXQ7Cj4+Pj4+PiArdHRtX3Bvb2xfbWdy X2ZpbmkoKTsKPj4+Pj4+ICt0dG1fdHRfbWdyX2ZpbmkoKTsKPj4+Pj4+ICsKPj4+Pj4+IGtvYmpl Y3RfZGVsKCZnbG9iLT5rb2JqKTsKPj4+Pj4+IGtvYmplY3RfcHV0KCZnbG9iLT5rb2JqKTsKPj4+ Pj4+IC10dG1fbWVtX2dsb2JhbF9yZWxlYXNlKCZ0dG1fbWVtX2dsb2IpOwo+Pj4+Pj4gX19mcmVl X3BhZ2UoZ2xvYi0+ZHVtbXlfcmVhZF9wYWdlKTsKPj4+Pj4+IG1lbXNldChnbG9iLCAwLCBzaXpl b2YoKmdsb2IpKTsKPj4+Pj4+IG91dDoKPj4+Pj4+IEBAIC02MSw2ICs2Niw4IEBAIHN0YXRpYyB2 b2lkIHR0bV9nbG9iYWxfcmVsZWFzZSh2b2lkKQo+Pj4+Pj4gc3RhdGljIGludCB0dG1fZ2xvYmFs X2luaXQodm9pZCkKPj4+Pj4+IHsKPj4+Pj4+IHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0 bV9nbG9iOwo+Pj4+Pj4gK3Vuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwo+Pj4+Pj4gK3N0cnVjdCBz eXNpbmZvIHNpOwo+Pj4+Pj4gaW50IHJldCA9IDA7Cj4+Pj4+PiB1bnNpZ25lZCBpOwo+Pj4+Pj4g QEAgLTY4LDkgKzc1LDE0IEBAIHN0YXRpYyBpbnQgdHRtX2dsb2JhbF9pbml0KHZvaWQpCj4+Pj4+ PiBpZiAoKyt0dG1fZ2xvYl91c2VfY291bnQgPiAxKQo+Pj4+Pj4gZ290byBvdXQ7Cj4+Pj4+PiAt cmV0ID0gdHRtX21lbV9nbG9iYWxfaW5pdCgmdHRtX21lbV9nbG9iKTsKPj4+Pj4+IC1pZiAocmV0 KQo+Pj4+Pj4gLWdvdG8gb3V0Owo+Pj4+Pj4gK3NpX21lbWluZm8oJnNpKTsKPj4+Pj4+ICsKPj4+ Pj4+ICsvKiBMaW1pdCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBwb29sIHRvIGFib3V0IDUw JSBvZiB0aGUgdG90YWwKPj4+Pj4+ICsgKiBzeXN0ZW0gbWVtb3J5Lgo+Pj4+Pj4gKyAqLwo+Pj4+ Pj4gK251bV9wYWdlcyA9ICgodTY0KXNpLnRvdGFscmFtICogc2kubWVtX3VuaXQpID4+IFBBR0Vf U0hJRlQ7Cj4+Pj4+PiArdHRtX3Bvb2xfbWdyX2luaXQobnVtX3BhZ2VzICogNTAgLyAxMDApOwo+ Pj4+Pj4gK3R0bV90dF9tZ3JfaW5pdCgpOwo+Pj4+Pj4gICAgc3Bpbl9sb2NrX2luaXQoJmdsb2It PmxydV9sb2NrKTsKPj4+Pj4+IGdsb2ItPmR1bW15X3JlYWRfcGFnZSA9IGFsbG9jX3BhZ2UoX19H RlBfWkVSTyB8IEdGUF9ETUEzMik7Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fcG9vbC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jCj4+Pj4+PiBp bmRleCBlMDYxNzcxNzExM2YuLjZiMGY5NTdkNjNkNSAxMDA2NDQKPj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYwo+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fcG9vbC5jCj4+Pj4+PiBAQCAtNDA0LDE2ICs0MDQsMTAgQEAgaW50IHR0bV9wb29sX2Fs bG9jKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwgc3RydWN0IHR0bV90dCAqdHQsCj4+Pj4+PiBjYWNo aW5nID0gcGFnZXMgKyAoMSA8PCBvcmRlcik7Cj4+Pj4+PiB9Cj4+Pj4+PiAtciA9IHR0bV9tZW1f Z2xvYmFsX2FsbG9jX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgcCwKPj4+Pj4+IC0gICAgICAoMSA8PCBv cmRlcikgKiBQQUdFX1NJWkUsCj4+Pj4+PiAtICAgICAgY3R4KTsKPj4+Pj4+IC1pZiAocikKPj4+ Pj4+IC1nb3RvIGVycm9yX2ZyZWVfcGFnZTsKPj4+Pj4+IC0KPj4+Pj4+IGlmIChkbWFfYWRkcikg ewo+Pj4+Pj4gciA9IHR0bV9wb29sX21hcChwb29sLCBvcmRlciwgcCwgJmRtYV9hZGRyKTsKPj4+ Pj4+IGlmIChyKQo+Pj4+Pj4gLWdvdG8gZXJyb3JfZ2xvYmFsX2ZyZWU7Cj4+Pj4+PiArZ290byBl cnJvcl9mcmVlX3BhZ2U7Cj4+Pj4+PiB9Cj4+Pj4+PiAgICBudW1fcGFnZXMgLT0gMSA8PCBvcmRl cjsKPj4+Pj4+IEBAIC00MjcsOSArNDIxLDYgQEAgaW50IHR0bV9wb29sX2FsbG9jKHN0cnVjdCB0 dG1fcG9vbCAqcG9vbCwgc3RydWN0IHR0bV90dCAqdHQsCj4+Pj4+PiAgICByZXR1cm4gMDsKPj4+ Pj4+IC1lcnJvcl9nbG9iYWxfZnJlZToKPj4+Pj4+IC10dG1fbWVtX2dsb2JhbF9mcmVlX3BhZ2Uo JnR0bV9tZW1fZ2xvYiwgcCwgKDEgPDwgb3JkZXIpICogUEFHRV9TSVpFKTsKPj4+Pj4+IC0KPj4+ Pj4+IGVycm9yX2ZyZWVfcGFnZToKPj4+Pj4+IHR0bV9wb29sX2ZyZWVfcGFnZShwb29sLCB0dC0+ Y2FjaGluZywgb3JkZXIsIHApOwo+Pj4+Pj4gQEAgLTQ2NCw4ICs0NTUsNiBAQCB2b2lkIHR0bV9w b29sX2ZyZWUoc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3QgdHRtX3R0ICp0dCkKPj4+Pj4+ ICAgIG9yZGVyID0gdHRtX3Bvb2xfcGFnZV9vcmRlcihwb29sLCBwKTsKPj4+Pj4+IG51bV9wYWdl cyA9IDFVTEwgPDwgb3JkZXI7Cj4+Pj4+PiAtdHRtX21lbV9nbG9iYWxfZnJlZV9wYWdlKCZ0dG1f bWVtX2dsb2IsIHAsCj4+Pj4+PiAtIG51bV9wYWdlcyAqIFBBR0VfU0laRSk7Cj4+Pj4+PiBpZiAo dHQtPmRtYV9hZGRyZXNzKQo+Pj4+Pj4gdHRtX3Bvb2xfdW5tYXAocG9vbCwgdHQtPmRtYV9hZGRy ZXNzW2ldLCBudW1fcGFnZXMpOwo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01ha2VmaWxlCj4+Pj4+PiBp bmRleCBjYzRjZGNhNzE3NmUuLjhjMDJmYTU4NTJlNyAxMDA2NDQKPj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUKPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvTWFrZWZpbGUKPj4+Pj4+IEBAIC05LDcgKzksNyBAQCB2bXdnZngteSA6PSB2bXdnZnhf ZXhlY2J1Zi5vIHZtd2dmeF9nbXIubyB2bXdnZnhfa21zLm8gdm13Z2Z4X2Rydi5vIFwKPj4+Pj4+ ICAgICAgdm13Z2Z4X2NvdGFibGUubyB2bXdnZnhfc28ubyB2bXdnZnhfYmluZGluZy5vIHZtd2dm eF9tc2cubyBcCj4+Pj4+PiAgICAgIHZtd2dmeF9zaW1wbGVfcmVzb3VyY2UubyB2bXdnZnhfdmEu byB2bXdnZnhfYmxpdC5vIFwKPj4+Pj4+ICAgICAgdm13Z2Z4X3ZhbGlkYXRpb24ubyB2bXdnZnhf cGFnZV9kaXJ0eS5vIHZtd2dmeF9zdHJlYW1vdXRwdXQubyBcCj4+Pj4+PiAtICAgIHR0bV9vYmpl Y3QubyB0dG1fbG9jay5vCj4+Pj4+PiArICAgIHR0bV9vYmplY3QubyB0dG1fbG9jay5vIHR0bV9t ZW1vcnkubwo+Pj4+Pj4gICAgdm13Z2Z4LSQoQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFKSAr PSB2bXdnZnhfdGhwLm8KPj4+Pj4+IG9iai0kKENPTkZJR19EUk1fVk1XR0ZYKSA6PSB2bXdnZngu bwo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX21lbW9yeS5jIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmMKPj4+Pj4+IHNpbWlsYXJpdHkgaW5k ZXggOTclCj4+Pj4+PiByZW5hbWUgZnJvbSBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnku Ywo+Pj4+Pj4gcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX21lbW9yeS5jCj4+ Pj4+PiBpbmRleCA2MzRhODVjMmRjNGMuLjEzMDZkOWUwZjA5NSAxMDA2NDQKPj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX21lbW9yeS5jCj4+Pj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYwo+Pj4+Pj4gQEAgLTI4LDcgKzI4LDYgQEAKPj4+Pj4+ ICAgICNkZWZpbmUgcHJfZm10KGZtdCkgIltUVE1dICIgZm10Cj4+Pj4+PiAtI2luY2x1ZGUgPGRy bS90dG0vdHRtX21lbW9yeS5oPgo+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Cj4+ Pj4+PiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KPj4+Pj4+ICNpbmNsdWRlIDxsaW51eC93YWl0 Lmg+Cj4+Pj4+PiBAQCAtMzYsMTAgKzM1LDExIEBACj4+Pj4+PiAjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+Cj4+Pj4+PiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+Pj4+Pj4gI2luY2x1ZGUgPGxp bnV4L3N3YXAuaD4KPj4+Pj4+IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fcG9vbC5oPgo+Pj4+Pj4g LSNpbmNsdWRlIDxkcm0vdHRtL3R0bV90dC5oPgo+Pj4+Pj4gLSNpbmNsdWRlICJ0dG1fbW9kdWxl LmgiCj4+Pj4+PiArI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+Cj4+Pj4+PiArI2luY2x1ZGUg PGRybS9kcm1fZmlsZS5oPgo+Pj4+Pj4gKwo+Pj4+Pj4gKyNpbmNsdWRlICJ0dG1fbWVtb3J5Lmgi Cj4+Pj4+PiAgICAjZGVmaW5lIFRUTV9NRU1PUllfQUxMT0NfUkVUUklFUyA0Cj4+Pj4+PiBAQCAt NDE0LDcgKzQxNCw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9pbml0X2RtYTMyX3pvbmUoc3RydWN0 IHR0bV9tZW1fZ2xvYmFsICpnbG9iLAo+Pj4+Pj4gfQo+Pj4+Pj4gI2VuZGlmCj4+Pj4+PiAtaW50 IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQo+Pj4+Pj4g K2ludCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPj4+Pj4+IHsKPj4+Pj4+IHN0cnVjdCBzeXNpbmZvIHNpOwo+ Pj4+Pj4gaW50IHJldDsKPj4+Pj4+IEBAIC00MjUsNyArNDI1LDggQEAgaW50IHR0bV9tZW1fZ2xv YmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQo+Pj4+Pj4gZ2xvYi0+c3dhcF9x dWV1ZSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKCJ0dG1fc3dhcCIpOwo+Pj4+Pj4g SU5JVF9XT1JLKCZnbG9iLT53b3JrLCB0dG1fc2hyaW5rX3dvcmspOwo+Pj4+Pj4gcmV0ID0ga29i amVjdF9pbml0X2FuZF9hZGQoCj4+Pj4+PiAtJmdsb2ItPmtvYmosICZ0dG1fbWVtX2dsb2Jfa29i al90eXBlLCB0dG1fZ2V0X2tvYmooKSwgIm1lbW9yeV9hY2NvdW50aW5nIik7Cj4+Pj4+PiArJmds b2ItPmtvYmosICZ0dG1fbWVtX2dsb2Jfa29ial90eXBlLCAmZGV2LT5wcmltYXJ5LT5rZGV2LT5r b2JqLAo+Pj4+Pj4gKyJtZW1vcnlfYWNjb3VudGluZyIpOwo+Pj4+Pj4gaWYgKHVubGlrZWx5KHJl dCAhPSAwKSkgewo+Pj4+Pj4ga29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwo+Pj4+Pj4gcmV0dXJu IHJldDsKPj4+Pj4+IEBAIC00NTMsOCArNDU0LDYgQEAgaW50IHR0bV9tZW1fZ2xvYmFsX2luaXQo c3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQo+Pj4+Pj4gcHJfaW5mbygiWm9uZSAlN3M6IEF2 YWlsYWJsZSBncmFwaGljcyBtZW1vcnk6ICVsbHUgS2lCXG4iLAo+Pj4+Pj4gem9uZS0+bmFtZSwg KHVuc2lnbmVkIGxvbmcgbG9uZyl6b25lLT5tYXhfbWVtID4+IDEwKTsKPj4+Pj4+IH0KPj4+Pj4+ IC10dG1fcG9vbF9tZ3JfaW5pdChnbG9iLT56b25lX2tlcm5lbC0+bWF4X21lbS8oMipQQUdFX1NJ WkUpKTsKPj4+Pj4+IC10dG1fdHRfbWdyX2luaXQoKTsKPj4+Pj4+IHJldHVybiAwOwo+Pj4+Pj4g b3V0X25vX3pvbmU6Cj4+Pj4+PiB0dG1fbWVtX2dsb2JhbF9yZWxlYXNlKGdsb2IpOwo+Pj4+Pj4g QEAgLTQ2NiwxMCArNDY1LDYgQEAgdm9pZCB0dG1fbWVtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB0 dG1fbWVtX2dsb2JhbCAqZ2xvYikKPj4+Pj4+IHN0cnVjdCB0dG1fbWVtX3pvbmUgKnpvbmU7Cj4+ Pj4+PiB1bnNpZ25lZCBpbnQgaTsKPj4+Pj4+IC0vKiBsZXQgdGhlIHBhZ2UgYWxsb2NhdG9yIGZp cnN0IHN0b3AgdGhlIHNocmluayB3b3JrLiAqLwo+Pj4+Pj4gLXR0bV9wb29sX21ncl9maW5pKCk7 Cj4+Pj4+PiAtdHRtX3R0X21ncl9maW5pKCk7Cj4+Pj4+PiAtCj4+Pj4+PiBmbHVzaF93b3JrcXVl dWUoZ2xvYi0+c3dhcF9xdWV1ZSk7Cj4+Pj4+PiBkZXN0cm95X3dvcmtxdWV1ZShnbG9iLT5zd2Fw X3F1ZXVlKTsKPj4+Pj4+IGdsb2ItPnN3YXBfcXVldWUgPSBOVUxMOwo+Pj4+Pj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3R0bV9tZW1vcnkuaAo+Pj4+Pj4gc2ltaWxhcml0eSBpbmRleCA5NyUKPj4+Pj4+IHJlbmFtZSBm cm9tIGluY2x1ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmgKPj4+Pj4+IHJlbmFtZSB0byBkcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaAo+Pj4+Pj4gaW5kZXggYzFmMTY3ODgxZTMzLi44 NTBlZTZjODY3ZGEgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX21lbW9y eS5oCj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaAo+Pj4+ Pj4gQEAgLTM1LDcgKzM1LDggQEAKPj4+Pj4+ICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+Pj4+ Pj4gI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KPj4+Pj4+ICNpbmNsdWRlIDxsaW51eC9tbS5o Pgo+Pj4+Pj4gLSNpbmNsdWRlICJ0dG1fYm9fYXBpLmgiCj4+Pj4+PiArCj4+Pj4+PiArI2luY2x1 ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgo+Pj4+Pj4gICAgLyoqCj4+Pj4+PiAgICogc3RydWN0 IHR0bV9tZW1fZ2xvYmFsIC0gR2xvYmFsIG1lbW9yeSBhY2NvdW50aW5nIHN0cnVjdHVyZS4KPj4+ Pj4+IEBAIC03OSw3ICs4MCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgewo+Pj4+ Pj4gI2VuZGlmCj4+Pj4+PiB9IHR0bV9tZW1fZ2xvYjsKPj4+Pj4+IC1pbnQgdHRtX21lbV9nbG9i YWxfaW5pdChzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IpOwo+Pj4+Pj4gK2ludCB0dG1fbWVt X2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4+Pj4+PiB2b2lkIHR0bV9tZW1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0IHR0bV9t ZW1fZ2xvYmFsICpnbG9iKTsKPj4+Pj4+IGludCB0dG1fbWVtX2dsb2JhbF9hbGxvYyhzdHJ1Y3Qg dHRtX21lbV9nbG9iYWwgKmdsb2IsIHVpbnQ2NF90IG1lbW9yeSwKPj4+Pj4+ICAgc3RydWN0IHR0 bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdHRtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0 LmgKPj4+Pj4+IGluZGV4IGVkZTI2ZGY4N2M5My4uNDliMDY0ZjBjYjE5IDEwMDY0NAo+Pj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgKPj4+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX29iamVjdC5oCj4+Pj4+PiBAQCAtNDMsNyArNDMsOCBA QAo+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+Cj4+Pj4+PiAgICAjaW5jbHVkZSA8 ZHJtL2RybV9oYXNodGFiLmg+Cj4+Pj4+PiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5o Pgo+Pj4+Pj4gKwo+Pj4+Pj4gKyNpbmNsdWRlICJ0dG1fbWVtb3J5LmgiCj4+Pj4+PiAgICAvKioK Pj4+Pj4+ICAgKiBlbnVtIHR0bV9yZWZfdHlwZQo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9iby5jCj4+Pj4+PiBpbmRleCA2YjNiZmQ4YzY3OGEuLjUwZTUyOWEwMTY3NyAxMDA2NDQKPj4+ Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKPj4+Pj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKPj4+Pj4+IEBAIC01MDcsMTEgKzUw NywxNiBAQCBpbnQgdm13X2JvX2NyZWF0ZV9rZXJuZWwoc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwgdW5zaWduZWQgbG9uZyBzaXplLAo+Pj4+Pj4gYWNjX3NpemUgPSB0dG1fcm91bmRfcG90 KHNpemVvZigqYm8pKTsKPj4+Pj4+IGFjY19zaXplICs9IHR0bV9yb3VuZF9wb3QobnBhZ2VzICog c2l6ZW9mKHZvaWQgKikpOwo+Pj4+Pj4gYWNjX3NpemUgKz0gdHRtX3JvdW5kX3BvdChzaXplb2Yo c3RydWN0IHR0bV90dCkpOwo+Pj4+Pj4gKwo+Pj4+Pj4gK3JldCA9IHR0bV9tZW1fZ2xvYmFsX2Fs bG9jKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplLCAmY3R4KTsKPj4+Pj4+ICtpZiAodW5saWtlbHko cmV0KSkKPj4+Pj4+ICtnb3RvIGVycm9yX2ZyZWU7Cj4+Pj4+PiArCj4+Pj4+PiByZXQgPSB0dG1f Ym9faW5pdF9yZXNlcnZlZCgmZGV2X3ByaXYtPmJkZXYsIGJvLCBzaXplLAo+Pj4+Pj4gICAgIHR0 bV9ib190eXBlX2RldmljZSwgcGxhY2VtZW50LCAwLAo+Pj4+Pj4gLSAgICZjdHgsIGFjY19zaXpl LCBOVUxMLCBOVUxMLCBOVUxMKTsKPj4+Pj4+ICsgICAmY3R4LCBOVUxMLCBOVUxMLCBOVUxMKTsK Pj4+Pj4+IGlmICh1bmxpa2VseShyZXQpKQo+Pj4+Pj4gLWdvdG8gZXJyb3JfZnJlZTsKPj4+Pj4+ ICtnb3RvIGVycm9yX2FjY291bnQ7Cj4+Pj4+PiAgICB0dG1fYm9fcGluKGJvKTsKPj4+Pj4+IHR0 bV9ib191bnJlc2VydmUoYm8pOwo+Pj4+Pj4gQEAgLTUxOSw2ICs1MjQsOSBAQCBpbnQgdm13X2Jv X2NyZWF0ZV9rZXJuZWwoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgbG9u ZyBzaXplLAo+Pj4+Pj4gICAgcmV0dXJuIDA7Cj4+Pj4+PiArZXJyb3JfYWNjb3VudDoKPj4+Pj4+ ICt0dG1fbWVtX2dsb2JhbF9mcmVlKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplKTsKPj4+Pj4+ICsK Pj4+Pj4+IGVycm9yX2ZyZWU6Cj4+Pj4+PiBrZnJlZShibyk7Cj4+Pj4+PiByZXR1cm4gcmV0Owo+ Pj4+Pj4gQEAgLTU1OCwxMSArNTY2LDE3IEBAIGludCB2bXdfYm9faW5pdChzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAo+Pj4+Pj4gdm13X2JvLT5iYXNlLnByaW9yaXR5ID0gMzsKPj4+Pj4+ IHZtd19iby0+cmVzX3RyZWUgPSBSQl9ST09UOwo+Pj4+Pj4gK3JldCA9IHR0bV9tZW1fZ2xvYmFs X2FsbG9jKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplLCAmY3R4KTsKPj4+Pj4+ICtpZiAodW5saWtl bHkocmV0KSkKPj4+Pj4+ICtyZXR1cm4gcmV0Owo+Pj4+Pj4gKwo+Pj4+Pj4gcmV0ID0gdHRtX2Jv X2luaXRfcmVzZXJ2ZWQoYmRldiwgJnZtd19iby0+YmFzZSwgc2l6ZSwKPj4+Pj4+ICAgICB0dG1f Ym9fdHlwZV9kZXZpY2UsIHBsYWNlbWVudCwKPj4+Pj4+IC0gICAwLCAmY3R4LCBhY2Nfc2l6ZSwg TlVMTCwgTlVMTCwgYm9fZnJlZSk7Cj4+Pj4+PiAtaWYgKHVubGlrZWx5KHJldCkpCj4+Pj4+PiAr ICAgMCwgJmN0eCwgTlVMTCwgTlVMTCwgYm9fZnJlZSk7Cj4+Pj4+PiAraWYgKHVubGlrZWx5KHJl dCkpIHsKPj4+Pj4+ICt0dG1fbWVtX2dsb2JhbF9mcmVlKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXpl KTsKPj4+Pj4+IHJldHVybiByZXQ7Cj4+Pj4+PiArfQo+Pj4+Pj4gICAgaWYgKHBpbikKPj4+Pj4+ IHR0bV9ib19waW4oJnZtd19iby0+YmFzZSk7Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9kcnYuYwo+Pj4+Pj4gaW5kZXggNzEwYmE1MTY5YTc0Li42YzBjYTEwMTE2MjkgMTAwNjQ0Cj4+ Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwo+Pj4+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKPj4+Pj4+IEBAIC0xMjY4LDYg KzEyNjgsNyBAQCBzdGF0aWMgdm9pZCB2bXdfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ Pj4+Pj4gewo+Pj4+Pj4gc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBjaV9nZXRfZHJ2ZGF0YShw ZGV2KTsKPj4+Pj4+ICt0dG1fbWVtX2dsb2JhbF9yZWxlYXNlKCZ0dG1fbWVtX2dsb2IpOwo+Pj4+ Pj4gZHJtX2Rldl91bnJlZ2lzdGVyKGRldik7Cj4+Pj4+PiB2bXdfZHJpdmVyX3VubG9hZChkZXYp Owo+Pj4+Pj4gfQo+Pj4+Pj4gQEAgLTE1MTgsNiArMTUxOSwxMCBAQCBzdGF0aWMgaW50IHZtd19w cm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVu dCkKPj4+Pj4+ICAgIHBjaV9zZXRfZHJ2ZGF0YShwZGV2LCAmdm13LT5kcm0pOwo+Pj4+Pj4gK3Jl dCA9IHR0bV9tZW1fZ2xvYmFsX2luaXQoJnR0bV9tZW1fZ2xvYiwgJnZtdy0+ZHJtKTsKPj4+Pj4+ ICtpZiAocmV0KQo+Pj4+Pj4gK3JldHVybiByZXQ7Cj4+Pj4+PiArCj4+Pj4+PiByZXQgPSB2bXdf ZHJpdmVyX2xvYWQodm13LCBlbnQtPmRldmljZSk7Cj4+Pj4+PiBpZiAocmV0KQo+Pj4+Pj4gcmV0 dXJuIHJldDsKPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF90dG1fYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVy LmMKPj4+Pj4+IGluZGV4IGQxYmZhNTk1NzlmMS4uNjNmMTBjODY1MDYxIDEwMDY0NAo+Pj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCj4+Pj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPj4+Pj4+IEBA IC01NzYsMTEgKzU3NiwzMSBAQCBzdGF0aWMgdm9pZCB2bXdfdHRtX2Rlc3Ryb3koc3RydWN0IHR0 bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4+Pj4+IHN0YXRpYyBpbnQgdm13 X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+ICAgICAgc3RydWN0 IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4+Pj4+IHsKPj4+ Pj4+ICt1bnNpZ25lZCBpbnQgaTsKPj4+Pj4+ICtpbnQgcmV0Owo+Pj4+Pj4gKwo+Pj4+Pj4gLyog VE9ETzogbWF5YmUgY29tcGxldGVseSBkcm9wIHRoaXMgPyAqLwo+Pj4+Pj4gaWYgKHR0bV90dF9p c19wb3B1bGF0ZWQodHRtKSkKPj4+Pj4+IHJldHVybiAwOwo+Pj4+Pj4gLXJldHVybiB0dG1fcG9v bF9hbGxvYygmYmRldi0+cG9vbCwgdHRtLCBjdHgpOwo+Pj4+Pj4gK3JldCA9IHR0bV9wb29sX2Fs bG9jKCZiZGV2LT5wb29sLCB0dG0sIGN0eCk7Cj4+Pj4+PiAraWYgKHJldCkKPj4+Pj4+ICtyZXR1 cm4gcmV0Owo+Pj4+Pj4gKwo+Pj4+Pj4gK2ZvciAoaSA9IDA7IGkgPCB0dG0tPm51bV9wYWdlczsg KytpKSB7Cj4+Pj4+PiArcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2NfcGFnZSgmdHRtX21lbV9n bG9iLCB0dG0tPnBhZ2VzW2ldLAo+Pj4+Pj4gK1BBR0VfU0laRSwgY3R4KTsKPj4+Pj4+ICtpZiAo cmV0KQo+Pj4+Pj4gK2dvdG8gZXJyb3I7Cj4+Pj4+PiArfQo+Pj4+Pj4gK3JldHVybiAwOwo+Pj4+ Pj4gKwo+Pj4+Pj4gK2Vycm9yOgo+Pj4+Pj4gK3doaWxlIChpLS0pCj4+Pj4+PiArdHRtX21lbV9n bG9iYWxfZnJlZV9wYWdlKCZ0dG1fbWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0sCj4+Pj4+PiArIFBB R0VfU0laRSk7Cj4+Pj4+PiArdHRtX3Bvb2xfZnJlZSgmYmRldi0+cG9vbCwgdHRtKTsKPj4+Pj4+ ICtyZXR1cm4gcmV0Owo+Pj4+Pj4gfQo+Pj4+Pj4gICAgc3RhdGljIHZvaWQgdm13X3R0bV91bnBv cHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4+Pj4gQEAgLTU4OCw2ICs2MDgsNyBA QCBzdGF0aWMgdm9pZCB2bXdfdHRtX3VucG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYs Cj4+Pj4+PiB7Cj4+Pj4+PiBzdHJ1Y3Qgdm13X3R0bV90dCAqdm13X3R0ID0gY29udGFpbmVyX29m KHR0bSwgc3RydWN0IHZtd190dG1fdHQsCj4+Pj4+PiAgIGRtYV90dG0pOwo+Pj4+Pj4gK3Vuc2ln bmVkIGludCBpOwo+Pj4+Pj4gICAgaWYgKHZtd190dC0+bW9iKSB7Cj4+Pj4+PiB2bXdfbW9iX2Rl c3Ryb3kodm13X3R0LT5tb2IpOwo+Pj4+Pj4gQEAgLTU5NSw2ICs2MTYsMTEgQEAgc3RhdGljIHZv aWQgdm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4+Pj4gfQo+ Pj4+Pj4gICAgdm13X3R0bV91bm1hcF9kbWEodm13X3R0KTsKPj4+Pj4+ICsKPj4+Pj4+ICtmb3Ig KGkgPSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7ICsraSkKPj4+Pj4+ICt0dG1fbWVtX2dsb2JhbF9m cmVlX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgdHRtLT5wYWdlc1tpXSwKPj4+Pj4+ICsgUEFHRV9TSVpF KTsKPj4+Pj4+ICsKPj4+Pj4+IHR0bV9wb29sX2ZyZWUoJmJkZXYtPnBvb2wsIHR0bSk7Cj4+Pj4+ PiB9Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKPj4+Pj4+IGluZGV4IDEyOTdhOGZiN2NjYi4uNGZi NTIzZGZhYjMyIDEwMDY0NAo+Pj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGku aAo+Pj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+Pj4+Pj4gQEAgLTg4 LDcgKzg4LDYgQEAgc3RydWN0IHR0bV90dDsKPj4+Pj4+ICAgKiBAdHlwZTogVGhlIGJvIHR5cGUu Cj4+Pj4+PiAgICogQGRlc3Ryb3k6IERlc3RydWN0aW9uIGZ1bmN0aW9uLiBJZiBOVUxMLCBrZnJl ZSBpcyB1c2VkLgo+Pj4+Pj4gICAqIEBudW1fcGFnZXM6IEFjdHVhbCBudW1iZXIgb2YgcGFnZXMu Cj4+Pj4+PiAtICogQGFjY19zaXplOiBBY2NvdW50ZWQgc2l6ZSBmb3IgdGhpcyBvYmplY3QuCj4+ Pj4+PiAgICogQGtyZWY6IFJlZmVyZW5jZSBjb3VudCBvZiB0aGlzIGJ1ZmZlciBvYmplY3QuIFdo ZW4gdGhpcyByZWZjb3VudCByZWFjaGVzCj4+Pj4+PiAgICogemVybywgdGhlIG9iamVjdCBpcyBk ZXN0cm95ZWQgb3IgcHV0IG9uIHRoZSBkZWxheWVkIGRlbGV0ZSBsaXN0Lgo+Pj4+Pj4gICAqIEBt ZW06IHN0cnVjdHVyZSBkZXNjcmliaW5nIGN1cnJlbnQgcGxhY2VtZW50Lgo+Pj4+Pj4gQEAgLTEy NSw3ICsxMjQsNiBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qgewo+Pj4+Pj4gc3RydWN0IHR0 bV9kZXZpY2UgKmJkZXY7Cj4+Pj4+PiBlbnVtIHR0bV9ib190eXBlIHR5cGU7Cj4+Pj4+PiB2b2lk ICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKTsKPj4+Pj4+IC1zaXplX3Qg YWNjX3NpemU7Cj4+Pj4+PiAgICAvKioKPj4+Pj4+ICogTWVtYmVycyBub3QgbmVlZGluZyBwcm90 ZWN0aW9uLgo+Pj4+Pj4gQEAgLTM1NywxMCArMzU1LDYgQEAgdm9pZCB0dG1fYm9fdW5sb2NrX2Rl bGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBpbnQgcmVzY2hlZCk7Cj4+ Pj4+PiBib29sIHR0bV9ib19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+Pj4+Pj4gICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlKTsKPj4+ Pj4+IC1zaXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwK Pj4+Pj4+IC0gICB1bnNpZ25lZCBsb25nIGJvX3NpemUsCj4+Pj4+PiAtICAgdW5zaWduZWQgc3Ry dWN0X3NpemUpOwo+Pj4+Pj4gLQo+Pj4+Pj4gLyoqCj4+Pj4+PiAgICogdHRtX2JvX2luaXRfcmVz ZXJ2ZWQKPj4+Pj4+ICAgKgo+Pj4+Pj4gQEAgLTM3MSw3ICszNjUsNiBAQCBzaXplX3QgdHRtX2Jv X2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+Pj4+ICAgKiBAZmxhZ3M6 IEluaXRpYWwgcGxhY2VtZW50IGZsYWdzLgo+Pj4+Pj4gICAqIEBwYWdlX2FsaWdubWVudDogRGF0 YSBhbGlnbm1lbnQgaW4gcGFnZXMuCj4+Pj4+PiAgICogQGN0eDogVFRNIG9wZXJhdGlvbiBjb250 ZXh0IGZvciBtZW1vcnkgYWxsb2NhdGlvbi4KPj4+Pj4+IC0gKiBAYWNjX3NpemU6IEFjY291bnRl ZCBzaXplIGZvciB0aGlzIG9iamVjdC4KPj4+Pj4+ICAgKiBAcmVzdjogUG9pbnRlciB0byBhIGRt YV9yZXN2LCBvciBOVUxMIHRvIGxldCB0dG0gYWxsb2NhdGUgb25lLgo+Pj4+Pj4gICAqIEBkZXN0 cm95OiBEZXN0cm95IGZ1bmN0aW9uLiBVc2UgTlVMTCBmb3Iga2ZyZWUoKS4KPj4+Pj4+ICAgKgo+ Pj4+Pj4gQEAgLTQwMiw4ICszOTUsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsCj4+Pj4+PiAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1l bnQsCj4+Pj4+PiAgIHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAo+Pj4+Pj4gICBzdHJ1Y3QgdHRt X29wZXJhdGlvbl9jdHggKmN0eCwKPj4+Pj4+IC0gc2l6ZV90IGFjY19zaXplLCBzdHJ1Y3Qgc2df dGFibGUgKnNnLAo+Pj4+Pj4gLSBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCj4+Pj4+PiArIHN0cnVj dCBzZ190YWJsZSAqc2csIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+ICAgdm9pZCAoKmRl c3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpOwo+Pj4+Pj4gICAgLyoqCj4+Pj4+ PiBAQCAtNDIxLDcgKzQxMyw2IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiwKPj4+Pj4+ICAgKiBob2xkcyBhIHBvaW50ZXIgdG8gYSBwZXJzaXN0ZW50 IHNobWVtIG9iamVjdC4gVHlwaWNhbGx5LCB0aGlzIHdvdWxkCj4+Pj4+PiAgICogcG9pbnQgdG8g dGhlIHNobWVtIG9iamVjdCBiYWNraW5nIGEgR0VNIG9iamVjdCBpZiBUVE0gaXMgdXNlZCB0byBi YWNrIGEKPj4+Pj4+ICAgKiBHRU0gdXNlciBpbnRlcmZhY2UuCj4+Pj4+PiAtICogQGFjY19zaXpl OiBBY2NvdW50ZWQgc2l6ZSBmb3IgdGhpcyBvYmplY3QuCj4+Pj4+PiAgICogQHJlc3Y6IFBvaW50 ZXIgdG8gYSBkbWFfcmVzdiwgb3IgTlVMTCB0byBsZXQgdHRtIGFsbG9jYXRlIG9uZS4KPj4+Pj4+ ICAgKiBAZGVzdHJveTogRGVzdHJveSBmdW5jdGlvbi4gVXNlIE5VTEwgZm9yIGtmcmVlKCkuCj4+ Pj4+PiAgICoKPj4+Pj4+IEBAIC00NDYsNyArNDM3LDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2Vy dmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4+Pj4gaW50IHR0bV9ib19pbml0KHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4+Pj4g c2l6ZV90IHNpemUsIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKPj4+Pj4+IHN0cnVjdCB0dG1fcGxh Y2VtZW50ICpwbGFjZW1lbnQsCj4+Pj4+PiAtdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsIGJvb2wg aW50ZXJydWJ0aWJsZSwgc2l6ZV90IGFjY19zaXplLAo+Pj4+Pj4gK3VpbnQzMl90IHBhZ2VfYWxp Z25tZW50LCBib29sIGludGVycnVidGlibGUsCj4+Pj4+PiBzdHJ1Y3Qgc2dfdGFibGUgKnNnLCBz dHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCj4+Pj4+PiB2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqKSk7Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPj4+Pj4+IGlu ZGV4IDFjOWJmOTkzZTI1Mi4uODk1OWMwMDc1Y2ZkIDEwMDY0NAo+Pj4+Pj4gLS0tIGEvaW5jbHVk ZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+Pj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaAo+Pj4+Pj4gQEAgLTQwLDcgKzQwLDYgQEAKPj4+Pj4+ICNpbmNsdWRlIDxk cm0vdHRtL3R0bV9kZXZpY2UuaD4KPj4+Pj4+ICAgICNpbmNsdWRlICJ0dG1fYm9fYXBpLmgiCj4+ Pj4+PiAtI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKPj4+Pj4+ICNpbmNsdWRlICJ0dG1fcGxhY2Vt ZW50LmgiCj4+Pj4+PiAjaW5jbHVkZSAidHRtX3R0LmgiCj4+Pj4+PiAjaW5jbHVkZSAidHRtX3Bv b2wuaCIKPj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmggYi9pbmNs dWRlL2RybS90dG0vdHRtX3R0LmgKPj4+Pj4+IGluZGV4IGNjZTU3ZmI0OWUyYy4uMDY5ZjgxMzAy NDFhIDEwMDY0NAo+Pj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oCj4+Pj4+PiAr KysgYi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKPj4+Pj4+IEBAIC0zMCw2ICszMCw3IEBACj4+ Pj4+PiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPj4+Pj4+ICNpbmNsdWRlIDxkcm0vdHRtL3R0 bV9jYWNoaW5nLmg+Cj4+Pj4+PiArc3RydWN0IHR0bV9ib19kZXZpY2U7Cj4+Pj4+PiBzdHJ1Y3Qg dHRtX3R0Owo+Pj4+Pj4gc3RydWN0IHR0bV9yZXNvdXJjZTsKPj4+Pj4+IHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdDsKPj4KPj4KPj4gLS0tLS0tLS0tLQo+Pgo+PiBZb3UncmUgcmVjZWl2aW5nIHRo aXMgbWVzc2FnZSBiZWNhdXNlIHlvdSdyZSBhIG1lbWJlciBvZiB0aGUgTGludXgtZ3JhcGhpY3Mt bWFpbnRhaW5lciBncm91cCBmcm9tIFZNd2FyZSwgSW5jLi4KPj4KPj4gTGVhdmUgZ3JvdXA6Cj4+ IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRw cyUzQSUyRiUyRm91dGxvb2sub2ZmaWNlMzY1LmNvbSUyRm93YSUyRkxpbnV4LWdyYXBoaWNzLW1h aW50YWluZXIlNDB2bXdhcmUuY29tJTJGZ3JvdXBzdWJzY3JpcHRpb24uYXNoeCUzRnNvdXJjZSUz REVzY2FsYXRlZE1lc3NhZ2UlMjZhY3Rpb24lM0RsZWF2ZSUyNkd1ZXN0SWQlM0Q2OWQzYmY2Zi01 MjQyLTRiZTQtYjg2My1iNzk0OTc1MmYzNjMmYW1wO2RhdGE9MDQlN0MwMSU3Q2NocmlzdGlhbi5r b2VuaWclNDBhbWQuY29tJTdDY2NmOTAwZTZkMjM2NDhlZjBiMDgwOGQ4YzdlZGI3NjAlN0MzZGQ4 OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NDc5MTcxMTAzMzg0MDcy JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1 TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPWY4WSUy Qnl6Qm50OUd4eG1tN1haM2hwWnFUZGJZMDVvZzl5bG9BckxDTEl4MCUzRCZhbXA7cmVzZXJ2ZWQ9 MAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBT ZW50IHRvIGxpbnV4LWdyYXBoaWNzLW1haW50YWluZXJAdm13YXJlLmNvbQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==