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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 67003C433E0 for ; Mon, 8 Feb 2021 13:40:09 +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 040E96186A for ; Mon, 8 Feb 2021 13:40:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 040E96186A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 57DC66E8DC; Mon, 8 Feb 2021 13:40:08 +0000 (UTC) Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com [IPv6:2607:f8b0:4864:20::22a]) by gabe.freedesktop.org (Postfix) with ESMTPS id 379FC6E8DC for ; Mon, 8 Feb 2021 13:40:07 +0000 (UTC) Received: by mail-oi1-x22a.google.com with SMTP id i3so4718598oif.1 for ; Mon, 08 Feb 2021 05:40:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=SPZdhHUkDLwbZOJ+SrnWzaDLbiJXhERyeRWyrfvpou0=; b=FT188v8FMdAfwiDnZv6ivLh2XN4M95Wh+mv+Z+YpGoHQhX5MPETj9tRfwcVUzV+NHJ DqHFTnGHkWLv54IoaSfgPCjTONS8CQFOAXiNhRLHktI5u9XqWFg6eHH9AAeJ/0MBNGZc 5WiiHGGuCVXVT7I4+uGlPPYBqJA054VWbLHHk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=SPZdhHUkDLwbZOJ+SrnWzaDLbiJXhERyeRWyrfvpou0=; b=Y7TkbJBeRZ5pOmktWd8mJyVGvOCDABkO/V62twmuPV/nZeRlUdszq9xc+SGdB5CLvp tzliLBbVLDJ9HB5QBpRGvk+4NeyyXI5CR2vDHXbrnNW67CAgJDwJ+QAHd6R9Lo316Ar2 3Un/10xkoSrzbB2RaneKig9Bjaz7sUtV68fx9Wvvc60Qhl0rgG7wUlWPYbHP4sRYuyk6 xPJqH0mMgIBCAjB8kgAxtwnbmiyIafc1xQKmo605g7SeAng6rFIExeZa74pzSqK+ooUL rdMCx7xFu7q0y3MyoaL5Skspw9RGYTpbbMll4HGhvFavMnHbhV9SQz/HWtCyaEjli+uQ BRcg== X-Gm-Message-State: AOAM5324dKk94xgZdkhW0hN9ZxFHSzV0m2M9WqGSodgw0XzOaPuT8Jqa 0ZUTREuMmqal3N4pHinDEhBSFeIwt0nwFt+rTyi4Gg== X-Google-Smtp-Source: ABdhPJx/IZZ16Sp4ySIvOAt2CKwkQabxDg5w79mQN+Swy7cx3+hiGYDhzuUA1FIELjkClucPyJPsvVbhNenu03V3Uw0= X-Received: by 2002:aca:1906:: with SMTP id l6mr11193780oii.101.1612791606089; Mon, 08 Feb 2021 05:40:06 -0800 (PST) MIME-Version: 1.0 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> <8d14d1b6-e3eb-87ad-a386-681f787ecf94@amd.com> In-Reply-To: <8d14d1b6-e3eb-87ad-a386-681f787ecf94@amd.com> From: Daniel Vetter Date: Mon, 8 Feb 2021 14:39:54 +0100 Message-ID: Subject: Re: [Linux-graphics-maintainer] [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx v3 To: =?UTF-8?Q?Christian_K=C3=B6nig?= 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: "Das, Nirmoy" , Linux-graphics-maintainer , "dri-devel@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gTW9uLCBGZWIgOCwgMjAyMSBhdCAyOjM1IFBNIENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4KPiBIaSBaYWNrLAo+Cj4gb2sgd2UgZmlndXJlZCBv dXQgaG93IHRvIGRvIHRoaXMgY29ycmVjdGx5Lgo+Cj4gQmFzaWNhbGx5IHVzaW5nIHRoZSBwZGV2 LT5rb2JqIGluc3RlYWQgb2YgdGhlIGRybS0+cHJpbWFyeS0+a2Rldi0+a29iago+IHBvaW50ZXIg d29ya2VkIHF1aXRlIHdlbGwuCgpOb3RlIGRybV9kZXZpY2UtPnBkZXYgaXMgZ29uZSwgc28gbWFr ZSBzdXJlIGV2ZXJ5dGhpbmcgc3RpbGwgY29tcGlsZXMuCllvdSBuZWVkIGRybV9kZXZpY2UtPmRl di0+a29iaiBub3cgKHRoZXkndmUgYWx3YXlzIHBvaW50ZWQgYXQgdGhlIHNhbWUKb2JqZWN0IGFu eXdheSwganVzdCBkaWZmZXJlbnQgY2FzdHMgZm9yIGhpc3RvcmljYWwgcmVhc29ucykuCi1EYW5p ZWwKCj4gSSd2ZSBqdXN0IHNlbmQgdGhlIGxhdGVzdCBwYXRjaGVzIHRvIHRoZSBtYWlsaW5nIGxp c3QuIElmIHlvdSBkb24ndCBoYXZlCj4gYW55IG9iamVjdGlvbnMgSSB3aWxsIGNvbW1pdCB0aGF0 IHRvbW9ycm93IHdpdGggeW91ciBhbmQgRGFuaWVscyByYi4KPgo+IFRoYW5rcywKPiBDaHJpc3Rp YW4uCj4KPiBBbSAwMy4wMi4yMSB1bSAwOToyMCBzY2hyaWViIENocmlzdGlhbiBLw7ZuaWc6Cj4g PiBIaSBaYWNrLAo+ID4KPiA+IHRoYW5rcyBJIGNhbiB0YWtlIG92ZXIgYWdhaW4gZnJvbSBoZXJl IG9uLgo+ID4KPiA+IFF1aXRlIGJ1c3kgdG9kYXksIGJ1dCBJIHRoaW5rIEkgY2FuIGdvIG92ZXIg dGhlIGNvZGUgb25jZSBtb3JlIHRvbW9ycm93Lgo+ID4KPiA+IFRoYW5rcyBmb3IgdGhlIGhlbHAs Cj4gPiBDaHJpc3RpYW4uCj4gPgo+ID4gQW0gMDMuMDIuMjEgdW0gMDM6NDUgc2NocmllYiBaYWNr IFJ1c2luOgo+ID4+IEp1c3QgaGFkIGEgcXVpY2sgcGVlay4gVGhlIGlzc3VlIGlzIHRoYXQgeW91 IGNhbuKAmXQgYXR0YWNoIHRvIHRoZSBkcm0KPiA+PiBkZXZpY2UgKGNhcmQwKSBiZWNhdXNlIGl0 IGhhc27igJl0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQgKGRybSBkZXZpY2UKPiA+PiByZWdpc3RyYXRp b24gaXMgbGFzdCBpbiB0aGUgdm13X3Byb2JlIGluIHZtd2dmeF9kcnYuYyB2aWEgdGhlCj4gPj4g ZHJtX2Rldl9yZWdpc3RlcikuIFNvIGRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiB0aGF0IHlvdeKA mXJlIHVzaW5nIGFzCj4gPj4gYXJndW1lbnQgdG8ga29iamVjdF9pbml0X2FuZF9hZGQgaW4gdHRt X21lbV9nbG9iYWxfaW5pdCBoYXNu4oCZdCBiZWVuCj4gPj4gaW5pdGlhbGl6ZWQgeWV0LiBTbyB0 aGF0IHBhcnRpY3VsYXIgc3lzZnMgY29kZSB3b3VsZCBsaWtlbHkgaGF2ZSB0bwo+ID4+IGJlIHJl ZmFjdG9yZWQgb3V0IG9mIHR0bV9tZW1fZ2xvYmFsX2luaXQgdG8gYW5vdGhlciBmdW5jdGlvbiB0 aGF0Cj4gPj4gY291bGQgYmUgY2FsbGVkIGFmdGVyIGRybSByZWdpc3RyYWN0aW9uLiBJIGNvdWxk IHRha2UgdGhpcyBvbiBidXQgbm90Cj4gPj4gdW50aWwgRnJpZGF5IG9yIHNvLgo+ID4+Cj4gPj4g ego+ID4+Cj4gPj4KPiA+Pj4gT24gRmViIDIsIDIwMjEsIGF0IDEyOjQyLCBaYWNrIFJ1c2luIDx6 YWNrckB2bXdhcmUuY29tPiB3cm90ZToKPiA+Pj4KPiA+Pj4gQWgsIHllcywgc29ycnksIEkgbWlz c2VkIHRoYXQuIEkganVzdCBkb3VibGUgY2hlY2tlZCBhbmQgaXQgZmFpbHMgd2l0aDoKPiA+Pj4K PiA+Pj4ga29iamVjdF9hZGRfaW50ZXJuYWwgZmFpbGVkIGZvciBtZW1vcnlfYWNjb3VudGluZyAo ZXJyb3I6IC0yIHBhcmVudDoKPiA+Pj4gY2FyZDApCj4gPj4+Cj4gPj4+IHdoaWNoIGJyZWFrcyB0 aGUgcHJvYmUgYW5kIHRoZSBkcml2ZXIgd29u4oCZdCBsb2FkLiBJIHdvbuKAmXQgaGF2ZSB0aW1l Cj4gPj4+IHRvIGxvb2sgaW50byBpdCB1bnRpbCB0b21vcnJvdyB0aG91Z2guCj4gPj4+Cj4gPj4+ IHoKPiA+Pj4KPiA+Pj4+IE9uIEZlYiAyLCAyMDIxLCBhdCAxMDoxNiwgQ2hyaXN0aWFuIEvDtm5p Zwo+ID4+Pj4gPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4gPj4+Pgo+ID4+Pj4g SGkgWmFjaywKPiA+Pj4+Cj4gPj4+PiBjYW4geW91IGFsc28gZ2l2ZSBpdCBhIHF1aWNrIHNtb2tl IHRlc3Q/Cj4gPj4+Pgo+ID4+Pj4gSSdtIG5vdCBzdXJlIGlmIEkgd2lyZWQgdXAgYWxsIHRoZSBz eXNmcyBtYWdpYyBjb3JyZWN0bHkgaW5zaWRlCj4gPj4+PiB2bXdnZngsIGJ1dCBJIGN1cnJlbnRs eSBkb24ndCBoYXZlIGEgc2V0dXAgd2hlcmUgSSBjYW4gdGVzdCB0aGlzLgo+ID4+Pj4KPiA+Pj4+ IFRoYW5rcywKPiA+Pj4+IENocmlzdGlhbi4KPiA+Pj4+Cj4gPj4+PiBBbSAwMi4wMi4yMSB1bSAx NjoxNCBzY2hyaWViIFphY2sgUnVzaW46Cj4gPj4+Pj4gTG9va3MgZ29vZC4gVGhlcmXigJlzIHBy b2JhYmx5IG5vdCBtdWNoIHJlYXNvbiB0byBjYWxsIGl0IHR0bV9tZW1vcnkKPiA+Pj4+PiBhbnlt b3JlIGFzIGl0IG9ubHkgZGVhbHMgd2l0aCB0dG1fbWVtX2dsb2IsIHdl4oCZbGwgbGlrZWx5IGZv bGQgaXQKPiA+Pj4+PiBpbiBhZnRlciB5b3Ugc3VibWl0LiBUaGFua3MuCj4gPj4+Pj4KPiA+Pj4+ PiBSZXZpZXdlZC1ieTogWmFjayBSdXNpbiA8emFja3JAdm13YXJlLmNvbT4KPiA+Pj4+Pgo+ID4+ Pj4+IHoKPiA+Pj4+Pgo+ID4+Pj4+PiBPbiBGZWIgMiwgMjAyMSwgYXQgMDg6MDQsIENocmlzdGlh biBLw7ZuaWcKPiA+Pj4+Pj4gPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4gPj4+ Pj4+Cj4gPj4+Pj4+IFBpbmc/Cj4gPj4+Pj4+Cj4gPj4+Pj4+IEVzcGVjaWFsbHkgUm9sYW5kIGFu ZCBaYWNrIGRvIHlvdSBoYXZlIGFueSBvYmplY3Rpb25zIHRvIHRoaXM/Cj4gPj4+Pj4+Cj4gPj4+ Pj4+IFJlZ2FyZHMsCj4gPj4+Pj4+IENocmlzdGlhbi4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gQW0gMjgu MDEuMjEgdW0gMTQ6MTYgc2NocmllYiBDaHJpc3RpYW4gS8O2bmlnOgo+ID4+Pj4+Pj4gVGhpcyBp cyBqdXN0IGFub3RoZXIgZmVhdHVyZSB3aGljaCBpcyBvbmx5IHVzZWQgYnkgVk1XR0ZYLCBzbyBt b3ZlCj4gPj4+Pj4+PiBpdCBpbnRvIHRoZSBkcml2ZXIgaW5zdGVhZC4KPiA+Pj4+Pj4+Cj4gPj4+ Pj4+PiBJJ3ZlIHRyaWVkIHRvIGFkZCB0aGUgYWNjb3VudGluZyBzeXNmcyBmaWxlIHRvIHRoZSBr b2JqZWN0IG9mCj4gPj4+Pj4+PiB0aGUgZHJtCj4gPj4+Pj4+PiBtaW5vciwgYnV0IEknbSBub3Qg MTAwJSBzdXJlIGlmIHRoaXMgd29ya3MgYXMgZXhwZWN0ZWQuCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4g djI6IGZpeCB0eXBvIGluIEtGRCBhbmQgYXZvaWQgNjRiaXQgZGl2aWRlCj4gPj4+Pj4+PiB2Mzog Zml4IGluaXQgb3JkZXIgaW4gVk1XR0ZYCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gU2lnbmVkLW9mZi1i eTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+ID4+Pj4+Pj4g LS0tCj4gPj4+Pj4+PiAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0u YyAgfCAxNiArKysrKystLS0KPiA+Pj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9vYmplY3QuYyAgICB8ICA4ICsrLS0tCj4gPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vZHJt X2dlbV92cmFtX2hlbHBlci5jICAgICAgICAgfCAgNiArKy0tCj4gPj4+Pj4+PiBkcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgfCAgNyArKy0tCj4gPj4+Pj4+PiBk cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oICAgICAgICAgfCAgMSAtCj4gPj4+ Pj4+PiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuYyAgICAgICAgICAgICAgfCAgNCAr LS0KPiA+Pj4+Pj4+IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jICAgICAg ICB8ICA4ICsrLS0tCj4gPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlICAgICAg ICAgICAgICAgICAgfCAgNyArKy0tCj4gPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i by5jICAgICAgICAgICAgICAgICAgfCAzMwo+ID4+Pj4+Pj4gKy0tLS0tLS0tLS0tLS0tLS0tLQo+ ID4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgIHwg IDEgLQo+ID4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgICAgICAgICAg ICAgIHwgMjIgKysrKysrKysrKy0tLQo+ID4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f cG9vbC5jICAgICAgICAgICAgICAgIHwgMTMgKy0tLS0tLS0KPiA+Pj4+Pj4+IGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAyICstCj4gPj4+Pj4+PiBkcml2 ZXJzL2dwdS9kcm0ve3R0bSA9PiB2bXdnZnh9L3R0bV9tZW1vcnkuYyAgfCAxOSArKysrLS0tLS0t LQo+ID4+Pj4+Pj4gLi4uL2dwdS9kcm0vdm13Z2Z4fS90dG1fbWVtb3J5LmggICAgICAgICAgICAg IHwgIDUgKy0tCj4gPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaCAg ICAgICAgICAgfCAgMyArLQo+ID4+Pj4+Pj4gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf Ym8uYyAgICAgICAgICAgIHwgMjIgKysrKysrKysrKy0tLQo+ID4+Pj4+Pj4gZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgICAgIHwgIDUgKysrCj4gPj4+Pj4+PiBkcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMgICAgfCAyOCArKysrKysrKysr KysrKystCj4gPj4+Pj4+PiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAgICAg ICAgICAgfCAxMyArKy0tLS0tLQo+ID4+Pj4+Pj4gaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2 ZXIuaCAgICAgICAgICAgICAgIHwgIDEgLQo+ID4+Pj4+Pj4gaW5jbHVkZS9kcm0vdHRtL3R0bV90 dC5oICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwo+ID4+Pj4+Pj4gMjIgZmlsZXMgY2hhbmdl ZCwgMTEwIGluc2VydGlvbnMoKyksIDExNSBkZWxldGlvbnMoLSkKPiA+Pj4+Pj4+IHJlbmFtZSBk cml2ZXJzL2dwdS9kcm0ve3R0bSA9PiB2bXdnZnh9L3R0bV9tZW1vcnkuYyAoOTclKQo+ID4+Pj4+ Pj4gcmVuYW1lIHtpbmNsdWRlL2RybS90dG0gPT4gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeH0vdHRt X21lbW9yeS5oCj4gPj4+Pj4+PiAoOTclKQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMKPiA+Pj4+ Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4g Pj4+Pj4+PiBpbmRleCAwODQ5YjY4ZTc4NGYuLmU0NDBhZjM3ZGRlOCAxMDA2NDQKPiA+Pj4+Pj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+ ID4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9n cHV2bS5jCj4gPj4+Pj4+PiBAQCAtMTE4LDYgKzExOCwxNiBAQCB2b2lkIGFtZGdwdV9hbWRrZmRf Z3B1dm1faW5pdF9tZW1fbGltaXRzKHZvaWQpCj4gPj4+Pj4+PiAgICovCj4gPj4+Pj4+PiAjZGVm aW5lIEVTVElNQVRFX1BUX1NJWkUobWVtX3NpemUpICgobWVtX3NpemUpID4+IDE0KQo+ID4+Pj4+ Pj4gK3N0YXRpYyBzaXplX3QgYW1kZ3B1X2FtZGtmZF9hY2Nfc2l6ZSh1aW50NjRfdCBzaXplKQo+ ID4+Pj4+Pj4gK3sKPiA+Pj4+Pj4+ICtzaXplID4+PSBQQUdFX1NISUZUOwo+ID4+Pj4+Pj4gK3Np emUgKj0gc2l6ZW9mKGRtYV9hZGRyX3QpICsgc2l6ZW9mKHZvaWQgKik7Cj4gPj4+Pj4+PiArCj4g Pj4+Pj4+PiArcmV0dXJuIF9fcm91bmR1cF9wb3dfb2ZfdHdvKHNpemVvZihzdHJ1Y3QgYW1kZ3B1 X2JvKSkgKwo+ID4+Pj4+Pj4gK19fcm91bmR1cF9wb3dfb2ZfdHdvKHNpemVvZihzdHJ1Y3QgdHRt X3R0KSkgKwo+ID4+Pj4+Pj4gK1BBR0VfQUxJR04oc2l6ZSk7Cj4gPj4+Pj4+PiArfQo+ID4+Pj4+ Pj4gKwo+ID4+Pj4+Pj4gc3RhdGljIGludCBhbWRncHVfYW1ka2ZkX3Jlc2VydmVfbWVtX2xpbWl0 KHN0cnVjdCBhbWRncHVfZGV2aWNlCj4gPj4+Pj4+PiAqYWRldiwKPiA+Pj4+Pj4+IHVpbnQ2NF90 IHNpemUsIHUzMiBkb21haW4sIGJvb2wgc2cpCj4gPj4+Pj4+PiB7Cj4gPj4+Pj4+PiBAQCAtMTI2 LDggKzEzNiw3IEBAIHN0YXRpYyBpbnQKPiA+Pj4+Pj4+IGFtZGdwdV9hbWRrZmRfcmVzZXJ2ZV9t ZW1fbGltaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gPj4+Pj4+PiBzaXplX3QgYWNj X3NpemUsIHN5c3RlbV9tZW1fbmVlZGVkLCB0dG1fbWVtX25lZWRlZCwgdnJhbV9uZWVkZWQ7Cj4g Pj4+Pj4+PiBpbnQgcmV0ID0gMDsKPiA+Pj4+Pj4+IC1hY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNj X3NpemUoJmFkZXYtPm1tYW4uYmRldiwgc2l6ZSwKPiA+Pj4+Pj4+IC0gICAgICAgc2l6ZW9mKHN0 cnVjdCBhbWRncHVfYm8pKTsKPiA+Pj4+Pj4+ICthY2Nfc2l6ZSA9IGFtZGdwdV9hbWRrZmRfYWNj X3NpemUoc2l6ZSk7Cj4gPj4+Pj4+PiAgICB2cmFtX25lZWRlZCA9IDA7Cj4gPj4+Pj4+PiBpZiAo ZG9tYWluID09IEFNREdQVV9HRU1fRE9NQUlOX0dUVCkgewo+ID4+Pj4+Pj4gQEAgLTE3NCw4ICsx ODMsNyBAQCBzdGF0aWMgdm9pZCB1bnJlc2VydmVfbWVtX2xpbWl0KHN0cnVjdAo+ID4+Pj4+Pj4g YW1kZ3B1X2RldmljZSAqYWRldiwKPiA+Pj4+Pj4+IHsKPiA+Pj4+Pj4+IHNpemVfdCBhY2Nfc2l6 ZTsKPiA+Pj4+Pj4+IC1hY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4u YmRldiwgc2l6ZSwKPiA+Pj4+Pj4+IC0gICAgICAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsK PiA+Pj4+Pj4+ICthY2Nfc2l6ZSA9IGFtZGdwdV9hbWRrZmRfYWNjX3NpemUoc2l6ZSk7Cj4gPj4+ Pj4+PiAgICBzcGluX2xvY2soJmtmZF9tZW1fbGltaXQubWVtX2xpbWl0X2xvY2spOwo+ID4+Pj4+ Pj4gaWYgKGRvbWFpbiA9PSBBTURHUFVfR0VNX0RPTUFJTl9HVFQpIHsKPiA+Pj4+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPiA+Pj4+ Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4gPj4+Pj4+ PiBpbmRleCA2Y2M5OTE5YjEyY2MuLjU5OWM5YTEzMmViNiAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+ID4+Pj4+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4gPj4+Pj4+PiBA QCAtNTIzLDcgKzUyMyw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX2RvX2NyZWF0ZShzdHJ1Y3QK PiA+Pj4+Pj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gPj4+Pj4+PiB9Owo+ID4+Pj4+Pj4gc3Ry dWN0IGFtZGdwdV9ibyAqYm87Cj4gPj4+Pj4+PiB1bnNpZ25lZCBsb25nIHBhZ2VfYWxpZ24sIHNp emUgPSBicC0+c2l6ZTsKPiA+Pj4+Pj4+IC1zaXplX3QgYWNjX3NpemU7Cj4gPj4+Pj4+PiBpbnQg cjsKPiA+Pj4+Pj4+ICAgIC8qIE5vdGUgdGhhdCBHRFMvR1dTL09BIGFsbG9jYXRlcyAxIHBhZ2Ug cGVyIGJ5dGUvcmVzb3VyY2UuICovCj4gPj4+Pj4+PiBAQCAtNTQ2LDkgKzU0NSw2IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X2JvX2RvX2NyZWF0ZShzdHJ1Y3QKPiA+Pj4+Pj4+IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCj4gPj4+Pj4+PiAgICAqYm9fcHRyID0gTlVMTDsKPiA+Pj4+Pj4+IC1hY2Nfc2l6ZSA9 IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4uYmRldiwgc2l6ZSwKPiA+Pj4+Pj4+IC0g ICAgICAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPiA+Pj4+Pj4+IC0KPiA+Pj4+Pj4+IGJv ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFtZGdwdV9ibyksIEdGUF9LRVJORUwpOwo+ID4+Pj4+ Pj4gaWYgKGJvID09IE5VTEwpCj4gPj4+Pj4+PiByZXR1cm4gLUVOT01FTTsKPiA+Pj4+Pj4+IEBA IC01NzcsOCArNTczLDggQEAgc3RhdGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdAo+ ID4+Pj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPiA+Pj4+Pj4+IGJvLT50Ym8ucHJpb3JpdHkg PSAxOwo+ID4+Pj4+Pj4gICAgciA9IHR0bV9ib19pbml0X3Jlc2VydmVkKCZhZGV2LT5tbWFuLmJk ZXYsICZiby0+dGJvLCBzaXplLAo+ID4+Pj4+Pj4gYnAtPnR5cGUsCj4gPj4+Pj4+PiAtICZiby0+ cGxhY2VtZW50LCBwYWdlX2FsaWduLCAmY3R4LCBhY2Nfc2l6ZSwKPiA+Pj4+Pj4+IC0gTlVMTCwg YnAtPnJlc3YsICZhbWRncHVfYm9fZGVzdHJveSk7Cj4gPj4+Pj4+PiArICZiby0+cGxhY2VtZW50 LCBwYWdlX2FsaWduLCAmY3R4LCAgTlVMTCwKPiA+Pj4+Pj4+ICsgYnAtPnJlc3YsICZhbWRncHVf Ym9fZGVzdHJveSk7Cj4gPj4+Pj4+PiBpZiAodW5saWtlbHkociAhPSAwKSkKPiA+Pj4+Pj4+IHJl dHVybiByOwo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3Zy YW1faGVscGVyLmMKPiA+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxw ZXIuYwo+ID4+Pj4+Pj4gaW5kZXggMGIxM2M4NTA3Njg4Li5hMDk5MmYwYjhhZmQgMTAwNjQ0Cj4g Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4gPj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4gPj4+Pj4+ PiBAQCAtMTg5LDcgKzE4OSw2IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0Cj4gPj4+Pj4+ PiAqZHJtX2dlbV92cmFtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+Pj4+Pj4g c3RydWN0IGRybV92cmFtX21tICp2bW0gPSBkZXYtPnZyYW1fbW07Cj4gPj4+Pj4+PiBzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldjsKPiA+Pj4+Pj4+IGludCByZXQ7Cj4gPj4+Pj4+PiAtc2l6ZV90IGFj Y19zaXplOwo+ID4+Pj4+Pj4gICAgaWYgKFdBUk5fT05DRSghdm1tLCAiVlJBTSBNTSBub3QgaW5p dGlhbGl6ZWQiKSkKPiA+Pj4+Pj4+IHJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ID4+Pj4+Pj4g QEAgLTIxNiw3ICsyMTUsNiBAQCBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdAo+ID4+Pj4+Pj4g KmRybV9nZW1fdnJhbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+Pj4+Pj4+IH0K PiA+Pj4+Pj4+ICAgIGJkZXYgPSAmdm1tLT5iZGV2Owo+ID4+Pj4+Pj4gLWFjY19zaXplID0gdHRt X2JvX2RtYV9hY2Nfc2l6ZShiZGV2LCBzaXplLCBzaXplb2YoKmdibykpOwo+ID4+Pj4+Pj4gICAg Z2JvLT5iby5iZGV2ID0gYmRldjsKPiA+Pj4+Pj4+IGRybV9nZW1fdnJhbV9wbGFjZW1lbnQoZ2Jv LCBEUk1fR0VNX1ZSQU1fUExfRkxBR19TWVNURU0pOwo+ID4+Pj4+Pj4gQEAgLTIyNiw4ICsyMjQs OCBAQCBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdAo+ID4+Pj4+Pj4gKmRybV9nZW1fdnJhbV9j cmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+Pj4+Pj4+ICAgKiB0byByZWxlYXNlIGdi by0+Ym8uYmFzZSBhbmQga2ZyZWUgZ2JvLgo+ID4+Pj4+Pj4gICAqLwo+ID4+Pj4+Pj4gcmV0ID0g dHRtX2JvX2luaXQoYmRldiwgJmdiby0+Ym8sIHNpemUsIHR0bV9ib190eXBlX2RldmljZSwKPiA+ Pj4+Pj4+IC0gICZnYm8tPnBsYWNlbWVudCwgcGdfYWxpZ24sIGZhbHNlLCBhY2Nfc2l6ZSwKPiA+ Pj4+Pj4+IC0gIE5VTEwsIE5VTEwsIHR0bV9idWZmZXJfb2JqZWN0X2Rlc3Ryb3kpOwo+ID4+Pj4+ Pj4gKyAgJmdiby0+cGxhY2VtZW50LCBwZ19hbGlnbiwgZmFsc2UsIE5VTEwsIE5VTEwsCj4gPj4+ Pj4+PiArICB0dG1fYnVmZmVyX29iamVjdF9kZXN0cm95KTsKPiA+Pj4+Pj4+IGlmIChyZXQpCj4g Pj4+Pj4+PiByZXR1cm4gRVJSX1BUUihyZXQpOwo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYwo+ID4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPiA+Pj4+Pj4+IGluZGV4IGMxNzc5NDBkNmUyYy4uY2Ey YThhZTE5MzhlIDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9iby5jCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2JvLmMKPiA+Pj4+Pj4+IEBAIC0zMDAsMTggKzMwMCwxNSBAQCBub3V2ZWF1X2JvX2luaXQo c3RydWN0IG5vdXZlYXVfYm8gKm52Ym8sCj4gPj4+Pj4+PiB1NjQgc2l6ZSwgaW50IGFsaWduLCB1 MzIgZG9tYWluLAo+ID4+Pj4+Pj4gc3RydWN0IHNnX3RhYmxlICpzZywgc3RydWN0IGRtYV9yZXN2 ICpyb2JqKQo+ID4+Pj4+Pj4gewo+ID4+Pj4+Pj4gaW50IHR5cGUgPSBzZyA/IHR0bV9ib190eXBl X3NnIDogdHRtX2JvX3R5cGVfZGV2aWNlOwo+ID4+Pj4+Pj4gLXNpemVfdCBhY2Nfc2l6ZTsKPiA+ Pj4+Pj4+IGludCByZXQ7Cj4gPj4+Pj4+PiAtYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXpl KG52Ym8tPmJvLmJkZXYsIHNpemUsCj4gPj4+Pj4+PiBzaXplb2YoKm52Ym8pKTsKPiA+Pj4+Pj4+ IC0KPiA+Pj4+Pj4+IG52Ym8tPmJvLm1lbS5udW1fcGFnZXMgPSBzaXplID4+IFBBR0VfU0hJRlQ7 Cj4gPj4+Pj4+PiBub3V2ZWF1X2JvX3BsYWNlbWVudF9zZXQobnZibywgZG9tYWluLCAwKTsKPiA+ Pj4+Pj4+IElOSVRfTElTVF9IRUFEKCZudmJvLT5pb19yZXNlcnZlX2xydSk7Cj4gPj4+Pj4+PiAg ICByZXQgPSB0dG1fYm9faW5pdChudmJvLT5iby5iZGV2LCAmbnZiby0+Ym8sIHNpemUsIHR5cGUs Cj4gPj4+Pj4+PiAtICAmbnZiby0+cGxhY2VtZW50LCBhbGlnbiA+PiBQQUdFX1NISUZULCBmYWxz ZSwKPiA+Pj4+Pj4+IC0gIGFjY19zaXplLCBzZywgcm9iaiwgbm91dmVhdV9ib19kZWxfdHRtKTsK PiA+Pj4+Pj4+ICsgICZudmJvLT5wbGFjZW1lbnQsIGFsaWduID4+IFBBR0VfU0hJRlQsIGZhbHNl LCBzZywKPiA+Pj4+Pj4+ICsgIHJvYmosIG5vdXZlYXVfYm9fZGVsX3R0bSk7Cj4gPj4+Pj4+PiBp ZiAocmV0KSB7Cj4gPj4+Pj4+PiAvKiB0dG0gd2lsbCBjYWxsIG5vdXZlYXVfYm9fZGVsX3R0bSBp ZiBpdCBmYWlscy4uICovCj4gPj4+Pj4+PiByZXR1cm4gcmV0Owo+ID4+Pj4+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmgKPiA+Pj4+Pj4+IGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaAo+ID4+Pj4+Pj4gaW5kZXggZWRmOWQx ZWU5ZDU4Li5hNDkxYzJjMWM1NmUgMTAwNjQ0Cj4gPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4gPj4+Pj4+PiBAQCAtNTQsNyArNTQsNiBAQAo+ID4+Pj4+ Pj4gI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgo+ID4+Pj4+Pj4gI2luY2x1ZGUgPGRy bS90dG0vdHRtX2JvX2RyaXZlci5oPgo+ID4+Pj4+Pj4gI2luY2x1ZGUgPGRybS90dG0vdHRtX3Bs YWNlbWVudC5oPgo+ID4+Pj4+Pj4gLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tZW1vcnkuaD4KPiA+ Pj4+Pj4+ICAgICNpbmNsdWRlIDxkcm0vZHJtX2F1ZGlvX2NvbXBvbmVudC5oPgo+ID4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jCj4gPj4+Pj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jCj4gPj4+Pj4+PiBpbmRleCBjZWViYzU4 ODFmNjguLjcwNWI1MTUzNTQ5MiAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX29iamVjdC5jCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9vYmplY3QuYwo+ID4+Pj4+Pj4gQEAgLTEzOCw4ICsxMzgsOCBAQCBpbnQgcXhsX2JvX2NyZWF0 ZShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwKPiA+Pj4+Pj4+IHF4bF90dG1fcGxhY2VtZW50X2Zy b21fZG9tYWluKGJvLCBkb21haW4pOwo+ID4+Pj4+Pj4gICAgciA9IHR0bV9ib19pbml0X3Jlc2Vy dmVkKCZxZGV2LT5tbWFuLmJkZXYsICZiby0+dGJvLCBzaXplLCB0eXBlLAo+ID4+Pj4+Pj4gLSAm Ym8tPnBsYWNlbWVudCwgMCwgJmN0eCwgc2l6ZSwKPiA+Pj4+Pj4+IC0gTlVMTCwgTlVMTCwgJnF4 bF90dG1fYm9fZGVzdHJveSk7Cj4gPj4+Pj4+PiArICZiby0+cGxhY2VtZW50LCAwLCAmY3R4LCBO VUxMLCBOVUxMLAo+ID4+Pj4+Pj4gKyAmcXhsX3R0bV9ib19kZXN0cm95KTsKPiA+Pj4+Pj4+IGlm ICh1bmxpa2VseShyICE9IDApKSB7Cj4gPj4+Pj4+PiBpZiAociAhPSAtRVJFU1RBUlRTWVMpCj4g Pj4+Pj4+PiBkZXZfZXJyKHFkZXYtPmRkZXYuZGV2LAo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4gPj4+Pj4+PiBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4gPj4+Pj4+PiBpbmRleCA2YTMzNjI4NDQ2 NmYuLjgwNGY3YTQyN2JlNyAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX29iamVjdC5jCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9vYmplY3QuYwo+ID4+Pj4+Pj4gQEAgLTE1OSw3ICsxNTksNiBAQCBpbnQgcmFk ZW9uX2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZQo+ID4+Pj4+Pj4gKnJkZXYsCj4gPj4+ Pj4+PiBzdHJ1Y3QgcmFkZW9uX2JvICpibzsKPiA+Pj4+Pj4+IGVudW0gdHRtX2JvX3R5cGUgdHlw ZTsKPiA+Pj4+Pj4+IHVuc2lnbmVkIGxvbmcgcGFnZV9hbGlnbiA9IHJvdW5kdXAoYnl0ZV9hbGln biwgUEFHRV9TSVpFKSA+Pgo+ID4+Pj4+Pj4gUEFHRV9TSElGVDsKPiA+Pj4+Pj4+IC1zaXplX3Qg YWNjX3NpemU7Cj4gPj4+Pj4+PiBpbnQgcjsKPiA+Pj4+Pj4+ICAgIHNpemUgPSBBTElHTihzaXpl LCBQQUdFX1NJWkUpOwo+ID4+Pj4+Pj4gQEAgLTE3Myw5ICsxNzIsNiBAQCBpbnQgcmFkZW9uX2Jv X2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZQo+ID4+Pj4+Pj4gKnJkZXYsCj4gPj4+Pj4+PiB9 Cj4gPj4+Pj4+PiAqYm9fcHRyID0gTlVMTDsKPiA+Pj4+Pj4+IC1hY2Nfc2l6ZSA9IHR0bV9ib19k bWFfYWNjX3NpemUoJnJkZXYtPm1tYW4uYmRldiwgc2l6ZSwKPiA+Pj4+Pj4+IC0gICAgICAgc2l6 ZW9mKHN0cnVjdCByYWRlb25fYm8pKTsKPiA+Pj4+Pj4+IC0KPiA+Pj4+Pj4+IGJvID0ga3phbGxv YyhzaXplb2Yoc3RydWN0IHJhZGVvbl9ibyksIEdGUF9LRVJORUwpOwo+ID4+Pj4+Pj4gaWYgKGJv ID09IE5VTEwpCj4gPj4+Pj4+PiByZXR1cm4gLUVOT01FTTsKPiA+Pj4+Pj4+IEBAIC0yMzAsOCAr MjI2LDggQEAgaW50IHJhZGVvbl9ib19jcmVhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UKPiA+Pj4+ Pj4+ICpyZGV2LAo+ID4+Pj4+Pj4gLyogS2VybmVsIGFsbG9jYXRpb24gYXJlIHVuaW50ZXJydXB0 aWJsZSAqLwo+ID4+Pj4+Pj4gZG93bl9yZWFkKCZyZGV2LT5wbS5tY2xrX2xvY2spOwo+ID4+Pj4+ Pj4gciA9IHR0bV9ib19pbml0KCZyZGV2LT5tbWFuLmJkZXYsICZiby0+dGJvLCBzaXplLCB0eXBl LAo+ID4+Pj4+Pj4gLSZiby0+cGxhY2VtZW50LCBwYWdlX2FsaWduLCAha2VybmVsLCBhY2Nfc2l6 ZSwKPiA+Pj4+Pj4+IC1zZywgcmVzdiwgJnJhZGVvbl90dG1fYm9fZGVzdHJveSk7Cj4gPj4+Pj4+ PiArJmJvLT5wbGFjZW1lbnQsIHBhZ2VfYWxpZ24sICFrZXJuZWwsIHNnLCByZXN2LAo+ID4+Pj4+ Pj4gKyZyYWRlb25fdHRtX2JvX2Rlc3Ryb3kpOwo+ID4+Pj4+Pj4gdXBfcmVhZCgmcmRldi0+cG0u bWNsa19sb2NrKTsKPiA+Pj4+Pj4+IGlmICh1bmxpa2VseShyICE9IDApKSB7Cj4gPj4+Pj4+PiBy ZXR1cm4gcjsKPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2Vm aWxlCj4gPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUKPiA+Pj4+Pj4+IGlu ZGV4IDhlNjQzN2VhZGFiZS4uNDBlNWU5ZGE3OTUzIDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3R0bS9NYWtlZmlsZQo+ID4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3R0bS9NYWtlZmlsZQo+ID4+Pj4+Pj4gQEAgLTIsMTAgKzIsOSBAQAo+ID4+Pj4+Pj4gIwo+ID4+ Pj4+Pj4gIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIg cHJvdmlkZXMKPiA+Pj4+Pj4+IHN1cHBvcnQgZm9yIHRoZQo+ID4+Pj4+Pj4gLXR0bS15IDo9IHR0 bV9tZW1vcnkubyB0dG1fdHQubyB0dG1fYm8ubyBcCj4gPj4+Pj4+PiAtdHRtX2JvX3V0aWwubyB0 dG1fYm9fdm0ubyB0dG1fbW9kdWxlLm8gXAo+ID4+Pj4+Pj4gLXR0bV9leGVjYnVmX3V0aWwubyB0 dG1fcmFuZ2VfbWFuYWdlci5vIFwKPiA+Pj4+Pj4+IC10dG1fcmVzb3VyY2UubyB0dG1fcG9vbC5v IHR0bV9kZXZpY2Uubwo+ID4+Pj4+Pj4gK3R0bS15IDo9IHR0bV90dC5vIHR0bV9iby5vIHR0bV9i b191dGlsLm8gdHRtX2JvX3ZtLm8KPiA+Pj4+Pj4+IHR0bV9tb2R1bGUubyBcCj4gPj4+Pj4+PiAr dHRtX2V4ZWNidWZfdXRpbC5vIHR0bV9yYW5nZV9tYW5hZ2VyLm8gdHRtX3Jlc291cmNlLm8gdHRt X3Bvb2wubyBcCj4gPj4+Pj4+PiArdHRtX2RldmljZS5vCj4gPj4+Pj4+PiB0dG0tJChDT05GSUdf QUdQKSArPSB0dG1fYWdwX2JhY2tlbmQubwo+ID4+Pj4+Pj4gICAgb2JqLSQoQ09ORklHX0RSTV9U VE0pICs9IHR0bS5vCj4gPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm8uYwo+ID4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4gPj4+Pj4+ PiBpbmRleCA2NDNiZWZjMWE2ZjIuLmUzODEwMjI4MmZkNSAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiA+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvLmMKPiA+Pj4+Pj4+IEBAIC00MjUsNyArNDI1LDYgQEAgc3RhdGljIHZv aWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4gPj4+Pj4+PiBzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvID0KPiA+Pj4+Pj4+ICAgICAgY29udGFpbmVyX29mKGtyZWYsIHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCwga3JlZik7Cj4gPj4+Pj4+PiBzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiA9IGJvLT5iZGV2Owo+ID4+Pj4+Pj4gLXNpemVfdCBhY2Nfc2l6ZSA9IGJvLT5hY2Nf c2l6ZTsKPiA+Pj4+Pj4+IGludCByZXQ7Cj4gPj4+Pj4+PiAgICBpZiAoIWJvLT5kZWxldGVkKSB7 Cj4gPj4+Pj4+PiBAQCAtNDg1LDcgKzQ4NCw2IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNl KHN0cnVjdCBrcmVmICprcmVmKQo+ID4+Pj4+Pj4gaWYgKCF0dG1fYm9fdXNlc19lbWJlZGRlZF9n ZW1fb2JqZWN0KGJvKSkKPiA+Pj4+Pj4+IGRtYV9yZXN2X2ZpbmkoJmJvLT5iYXNlLl9yZXN2KTsK PiA+Pj4+Pj4+IGJvLT5kZXN0cm95KGJvKTsKPiA+Pj4+Pj4+IC10dG1fbWVtX2dsb2JhbF9mcmVl KCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplKTsKPiA+Pj4+Pj4+IH0KPiA+Pj4+Pj4+ICAgIHZvaWQg dHRtX2JvX3B1dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+ID4+Pj4+Pj4gQEAgLTEw NDYsMjUgKzEwNDQsMTMgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdAo+ID4+Pj4+ Pj4gdHRtX2RldmljZSAqYmRldiwKPiA+Pj4+Pj4+ICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBs YWNlbWVudCwKPiA+Pj4+Pj4+ICAgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsCj4gPj4+Pj4+PiAg IHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+ID4+Pj4+Pj4gLSBzaXplX3QgYWNjX3Np emUsCj4gPj4+Pj4+PiAgIHN0cnVjdCBzZ190YWJsZSAqc2csCj4gPj4+Pj4+PiAgIHN0cnVjdCBk bWFfcmVzdiAqcmVzdiwKPiA+Pj4+Pj4+ICAgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKikpCj4gPj4+Pj4+PiB7Cj4gPj4+Pj4+PiAtc3RydWN0IHR0bV9tZW1fZ2xv YmFsICptZW1fZ2xvYiA9ICZ0dG1fbWVtX2dsb2I7Cj4gPj4+Pj4+PiBib29sIGxvY2tlZDsKPiA+ Pj4+Pj4+IGludCByZXQgPSAwOwo+ID4+Pj4+Pj4gLXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9j KG1lbV9nbG9iLCBhY2Nfc2l6ZSwgY3R4KTsKPiA+Pj4+Pj4+IC1pZiAocmV0KSB7Cj4gPj4+Pj4+ PiAtcHJfZXJyKCJPdXQgb2Yga2VybmVsIG1lbW9yeVxuIik7Cj4gPj4+Pj4+PiAtaWYgKGRlc3Ry b3kpCj4gPj4+Pj4+PiAtKCpkZXN0cm95KShibyk7Cj4gPj4+Pj4+PiAtZWxzZQo+ID4+Pj4+Pj4g LWtmcmVlKGJvKTsKPiA+Pj4+Pj4+IC1yZXR1cm4gLUVOT01FTTsKPiA+Pj4+Pj4+IC19Cj4gPj4+ Pj4+PiAtCj4gPj4+Pj4+PiBiby0+ZGVzdHJveSA9IGRlc3Ryb3kgPyBkZXN0cm95IDogdHRtX2Jv X2RlZmF1bHRfZGVzdHJveTsKPiA+Pj4+Pj4+ICAgIGtyZWZfaW5pdCgmYm8tPmtyZWYpOwo+ID4+ Pj4+Pj4gQEAgLTEwODEsNyArMTA2Nyw2IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1 Y3QgdHRtX2RldmljZQo+ID4+Pj4+Pj4gKmJkZXYsCj4gPj4+Pj4+PiBiby0+bWVtLmJ1cy5hZGRy ID0gTlVMTDsKPiA+Pj4+Pj4+IGJvLT5tb3ZpbmcgPSBOVUxMOwo+ID4+Pj4+Pj4gYm8tPm1lbS5w bGFjZW1lbnQgPSAwOwo+ID4+Pj4+Pj4gLWJvLT5hY2Nfc2l6ZSA9IGFjY19zaXplOwo+ID4+Pj4+ Pj4gYm8tPnBpbl9jb3VudCA9IDA7Cj4gPj4+Pj4+PiBiby0+c2cgPSBzZzsKPiA+Pj4+Pj4+IGlm IChyZXN2KSB7Cj4gPj4+Pj4+PiBAQCAtMTE0Miw3ICsxMTI3LDYgQEAgaW50IHR0bV9ib19pbml0 KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+ID4+Pj4+Pj4gc3RydWN0IHR0bV9wbGFjZW1lbnQg KnBsYWNlbWVudCwKPiA+Pj4+Pj4+IHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAo+ID4+Pj4+Pj4g Ym9vbCBpbnRlcnJ1cHRpYmxlLAo+ID4+Pj4+Pj4gLXNpemVfdCBhY2Nfc2l6ZSwKPiA+Pj4+Pj4+ IHN0cnVjdCBzZ190YWJsZSAqc2csCj4gPj4+Pj4+PiBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCj4g Pj4+Pj4+PiB2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKSkKPiA+ Pj4+Pj4+IEBAIC0xMTUxLDggKzExMzUsNyBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsCj4gPj4+Pj4+PiBpbnQgcmV0Owo+ID4+Pj4+Pj4gICAgcmV0ID0gdHRtX2Jv X2luaXRfcmVzZXJ2ZWQoYmRldiwgYm8sIHNpemUsIHR5cGUsIHBsYWNlbWVudCwKPiA+Pj4+Pj4+ IC0gICBwYWdlX2FsaWdubWVudCwgJmN0eCwgYWNjX3NpemUsCj4gPj4+Pj4+PiAtICAgc2csIHJl c3YsIGRlc3Ryb3kpOwo+ID4+Pj4+Pj4gKyAgIHBhZ2VfYWxpZ25tZW50LCAmY3R4LCBzZywgcmVz diwgZGVzdHJveSk7Cj4gPj4+Pj4+PiBpZiAocmV0KQo+ID4+Pj4+Pj4gcmV0dXJuIHJldDsKPiA+ Pj4+Pj4+IEBAIC0xMTYzLDIwICsxMTQ2LDYgQEAgaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1f ZGV2aWNlICpiZGV2LAo+ID4+Pj4+Pj4gfQo+ID4+Pj4+Pj4gRVhQT1JUX1NZTUJPTCh0dG1fYm9f aW5pdCk7Cj4gPj4+Pj4+PiAtc2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsCj4gPj4+Pj4+PiAtICAgdW5zaWduZWQgbG9uZyBib19zaXplLAo+ID4+Pj4+ Pj4gLSAgIHVuc2lnbmVkIHN0cnVjdF9zaXplKQo+ID4+Pj4+Pj4gLXsKPiA+Pj4+Pj4+IC11bnNp Z25lZCBucGFnZXMgPSAoUEFHRV9BTElHTihib19zaXplKSkgPj4gUEFHRV9TSElGVDsKPiA+Pj4+ Pj4+IC1zaXplX3Qgc2l6ZSA9IDA7Cj4gPj4+Pj4+PiAtCj4gPj4+Pj4+PiAtc2l6ZSArPSB0dG1f cm91bmRfcG90KHN0cnVjdF9zaXplKTsKPiA+Pj4+Pj4+IC1zaXplICs9IHR0bV9yb3VuZF9wb3Qo bnBhZ2VzICogKDIqc2l6ZW9mKHZvaWQgKikgKwo+ID4+Pj4+Pj4gc2l6ZW9mKGRtYV9hZGRyX3Qp KSk7Cj4gPj4+Pj4+PiAtc2l6ZSArPSB0dG1fcm91bmRfcG90KHNpemVvZihzdHJ1Y3QgdHRtX3R0 KSk7Cj4gPj4+Pj4+PiAtcmV0dXJuIHNpemU7Cj4gPj4+Pj4+PiAtfQo+ID4+Pj4+Pj4gLUVYUE9S VF9TWU1CT0wodHRtX2JvX2RtYV9hY2Nfc2l6ZSk7Cj4gPj4+Pj4+PiAtCj4gPj4+Pj4+PiAvKgo+ ID4+Pj4+Pj4gICAqIGJ1ZmZlciBvYmplY3Qgdm0gZnVuY3Rpb25zLgo+ID4+Pj4+Pj4gICAqLwo+ ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwo+ ID4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPiA+Pj4+Pj4+IGlu ZGV4IGRiMGYyNjYxZDUwNC4uMDMxZTU4MTlmZWM0IDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPiA+Pj4+Pj4+IEBAIC0zMDksNyArMzA5LDYgQEAgc3Rh dGljIGludCB0dG1fYnVmZmVyX29iamVjdF90cmFuc2ZlcihzdHJ1Y3QKPiA+Pj4+Pj4+IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPiA+Pj4+Pj4+ICAgIGtyZWZfaW5pdCgmZmJvLT5iYXNlLmtyZWYp Owo+ID4+Pj4+Pj4gZmJvLT5iYXNlLmRlc3Ryb3kgPSAmdHRtX3RyYW5zZmVyZWRfZGVzdHJveTsK PiA+Pj4+Pj4+IC1mYm8tPmJhc2UuYWNjX3NpemUgPSAwOwo+ID4+Pj4+Pj4gZmJvLT5iYXNlLnBp bl9jb3VudCA9IDA7Cj4gPj4+Pj4+PiBpZiAoYm8tPnR5cGUgIT0gdHRtX2JvX3R5cGVfc2cpCj4g Pj4+Pj4+PiBmYm8tPmJhc2UuYmFzZS5yZXN2ID0gJmZiby0+YmFzZS5iYXNlLl9yZXN2Owo+ID4+ Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jCj4gPj4+ Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jCj4gPj4+Pj4+PiBpbmRleCBh YzA5MDNjOWU2MGEuLjZiZGUzNDRlNWRhNyAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2RldmljZS5jCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9kZXZpY2UuYwo+ID4+Pj4+Pj4gQEAgLTI3LDkgKzI3LDEyIEBACj4gPj4+Pj4+PiAg ICAjZGVmaW5lIHByX2ZtdChmbXQpICJbVFRNIERFVklDRV0gIiBmbXQKPiA+Pj4+Pj4+ICsjaW5j bHVkZSA8bGludXgvbW0uaD4KPiA+Pj4+Pj4+ICsKPiA+Pj4+Pj4+ICNpbmNsdWRlIDxkcm0vdHRt L3R0bV9kZXZpY2UuaD4KPiA+Pj4+Pj4+IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+ Cj4gPj4+Pj4+PiArI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+Cj4gPj4+Pj4+PiAjaW5jbHVk ZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Cj4gPj4+Pj4+PiArI2luY2x1ZGUgPGRybS90dG0v dHRtX2JvX2FwaS5oPgo+ID4+Pj4+Pj4gICAgI2luY2x1ZGUgInR0bV9tb2R1bGUuaCIKPiA+Pj4+ Pj4+IEBAIC00OSw5ICs1MiwxMSBAQCBzdGF0aWMgdm9pZCB0dG1fZ2xvYmFsX3JlbGVhc2Uodm9p ZCkKPiA+Pj4+Pj4+IGlmICgtLXR0bV9nbG9iX3VzZV9jb3VudCA+IDApCj4gPj4+Pj4+PiBnb3Rv IG91dDsKPiA+Pj4+Pj4+ICt0dG1fcG9vbF9tZ3JfZmluaSgpOwo+ID4+Pj4+Pj4gK3R0bV90dF9t Z3JfZmluaSgpOwo+ID4+Pj4+Pj4gKwo+ID4+Pj4+Pj4ga29iamVjdF9kZWwoJmdsb2ItPmtvYmop Owo+ID4+Pj4+Pj4ga29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwo+ID4+Pj4+Pj4gLXR0bV9tZW1f Z2xvYmFsX3JlbGVhc2UoJnR0bV9tZW1fZ2xvYik7Cj4gPj4+Pj4+PiBfX2ZyZWVfcGFnZShnbG9i LT5kdW1teV9yZWFkX3BhZ2UpOwo+ID4+Pj4+Pj4gbWVtc2V0KGdsb2IsIDAsIHNpemVvZigqZ2xv YikpOwo+ID4+Pj4+Pj4gb3V0Ogo+ID4+Pj4+Pj4gQEAgLTYxLDYgKzY2LDggQEAgc3RhdGljIHZv aWQgdHRtX2dsb2JhbF9yZWxlYXNlKHZvaWQpCj4gPj4+Pj4+PiBzdGF0aWMgaW50IHR0bV9nbG9i YWxfaW5pdCh2b2lkKQo+ID4+Pj4+Pj4gewo+ID4+Pj4+Pj4gc3RydWN0IHR0bV9nbG9iYWwgKmds b2IgPSAmdHRtX2dsb2I7Cj4gPj4+Pj4+PiArdW5zaWduZWQgbG9uZyBudW1fcGFnZXM7Cj4gPj4+ Pj4+PiArc3RydWN0IHN5c2luZm8gc2k7Cj4gPj4+Pj4+PiBpbnQgcmV0ID0gMDsKPiA+Pj4+Pj4+ IHVuc2lnbmVkIGk7Cj4gPj4+Pj4+PiBAQCAtNjgsOSArNzUsMTQgQEAgc3RhdGljIGludCB0dG1f Z2xvYmFsX2luaXQodm9pZCkKPiA+Pj4+Pj4+IGlmICgrK3R0bV9nbG9iX3VzZV9jb3VudCA+IDEp Cj4gPj4+Pj4+PiBnb3RvIG91dDsKPiA+Pj4+Pj4+IC1yZXQgPSB0dG1fbWVtX2dsb2JhbF9pbml0 KCZ0dG1fbWVtX2dsb2IpOwo+ID4+Pj4+Pj4gLWlmIChyZXQpCj4gPj4+Pj4+PiAtZ290byBvdXQ7 Cj4gPj4+Pj4+PiArc2lfbWVtaW5mbygmc2kpOwo+ID4+Pj4+Pj4gKwo+ID4+Pj4+Pj4gKy8qIExp bWl0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIHBvb2wgdG8gYWJvdXQgNTAlIG9mIHRoZSB0 b3RhbAo+ID4+Pj4+Pj4gKyAqIHN5c3RlbSBtZW1vcnkuCj4gPj4+Pj4+PiArICovCj4gPj4+Pj4+ PiArbnVtX3BhZ2VzID0gKCh1NjQpc2kudG90YWxyYW0gKiBzaS5tZW1fdW5pdCkgPj4gUEFHRV9T SElGVDsKPiA+Pj4+Pj4+ICt0dG1fcG9vbF9tZ3JfaW5pdChudW1fcGFnZXMgKiA1MCAvIDEwMCk7 Cj4gPj4+Pj4+PiArdHRtX3R0X21ncl9pbml0KCk7Cj4gPj4+Pj4+PiAgICBzcGluX2xvY2tfaW5p dCgmZ2xvYi0+bHJ1X2xvY2spOwo+ID4+Pj4+Pj4gZ2xvYi0+ZHVtbXlfcmVhZF9wYWdlID0gYWxs b2NfcGFnZShfX0dGUF9aRVJPIHwgR0ZQX0RNQTMyKTsKPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKPiA+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fcG9vbC5jCj4gPj4+Pj4+PiBpbmRleCBlMDYxNzcxNzExM2YuLjZiMGY5NTdkNjNk NSAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYwo+ ID4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jCj4gPj4+Pj4+PiBA QCAtNDA0LDE2ICs0MDQsMTAgQEAgaW50IHR0bV9wb29sX2FsbG9jKHN0cnVjdCB0dG1fcG9vbCAq cG9vbCwKPiA+Pj4+Pj4+IHN0cnVjdCB0dG1fdHQgKnR0LAo+ID4+Pj4+Pj4gY2FjaGluZyA9IHBh Z2VzICsgKDEgPDwgb3JkZXIpOwo+ID4+Pj4+Pj4gfQo+ID4+Pj4+Pj4gLXIgPSB0dG1fbWVtX2ds b2JhbF9hbGxvY19wYWdlKCZ0dG1fbWVtX2dsb2IsIHAsCj4gPj4+Pj4+PiAtICAgICAgKDEgPDwg b3JkZXIpICogUEFHRV9TSVpFLAo+ID4+Pj4+Pj4gLSAgICAgIGN0eCk7Cj4gPj4+Pj4+PiAtaWYg KHIpCj4gPj4+Pj4+PiAtZ290byBlcnJvcl9mcmVlX3BhZ2U7Cj4gPj4+Pj4+PiAtCj4gPj4+Pj4+ PiBpZiAoZG1hX2FkZHIpIHsKPiA+Pj4+Pj4+IHIgPSB0dG1fcG9vbF9tYXAocG9vbCwgb3JkZXIs IHAsICZkbWFfYWRkcik7Cj4gPj4+Pj4+PiBpZiAocikKPiA+Pj4+Pj4+IC1nb3RvIGVycm9yX2ds b2JhbF9mcmVlOwo+ID4+Pj4+Pj4gK2dvdG8gZXJyb3JfZnJlZV9wYWdlOwo+ID4+Pj4+Pj4gfQo+ ID4+Pj4+Pj4gICAgbnVtX3BhZ2VzIC09IDEgPDwgb3JkZXI7Cj4gPj4+Pj4+PiBAQCAtNDI3LDkg KzQyMSw2IEBAIGludCB0dG1fcG9vbF9hbGxvYyhzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsCj4gPj4+ Pj4+PiBzdHJ1Y3QgdHRtX3R0ICp0dCwKPiA+Pj4+Pj4+ICAgIHJldHVybiAwOwo+ID4+Pj4+Pj4g LWVycm9yX2dsb2JhbF9mcmVlOgo+ID4+Pj4+Pj4gLXR0bV9tZW1fZ2xvYmFsX2ZyZWVfcGFnZSgm dHRtX21lbV9nbG9iLCBwLCAoMSA8PCBvcmRlcikgKgo+ID4+Pj4+Pj4gUEFHRV9TSVpFKTsKPiA+ Pj4+Pj4+IC0KPiA+Pj4+Pj4+IGVycm9yX2ZyZWVfcGFnZToKPiA+Pj4+Pj4+IHR0bV9wb29sX2Zy ZWVfcGFnZShwb29sLCB0dC0+Y2FjaGluZywgb3JkZXIsIHApOwo+ID4+Pj4+Pj4gQEAgLTQ2NCw4 ICs0NTUsNiBAQCB2b2lkIHR0bV9wb29sX2ZyZWUoc3RydWN0IHR0bV9wb29sICpwb29sLAo+ID4+ Pj4+Pj4gc3RydWN0IHR0bV90dCAqdHQpCj4gPj4+Pj4+PiAgICBvcmRlciA9IHR0bV9wb29sX3Bh Z2Vfb3JkZXIocG9vbCwgcCk7Cj4gPj4+Pj4+PiBudW1fcGFnZXMgPSAxVUxMIDw8IG9yZGVyOwo+ ID4+Pj4+Pj4gLXR0bV9tZW1fZ2xvYmFsX2ZyZWVfcGFnZSgmdHRtX21lbV9nbG9iLCBwLAo+ID4+ Pj4+Pj4gLSBudW1fcGFnZXMgKiBQQUdFX1NJWkUpOwo+ID4+Pj4+Pj4gaWYgKHR0LT5kbWFfYWRk cmVzcykKPiA+Pj4+Pj4+IHR0bV9wb29sX3VubWFwKHBvb2wsIHR0LT5kbWFfYWRkcmVzc1tpXSwg bnVtX3BhZ2VzKTsKPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L01ha2VmaWxlCj4gPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUKPiA+ Pj4+Pj4+IGluZGV4IGNjNGNkY2E3MTc2ZS4uOGMwMmZhNTg1MmU3IDEwMDY0NAo+ID4+Pj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9NYWtlZmlsZQo+ID4+Pj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC9NYWtlZmlsZQo+ID4+Pj4+Pj4gQEAgLTksNyArOSw3IEBAIHZt d2dmeC15IDo9IHZtd2dmeF9leGVjYnVmLm8gdm13Z2Z4X2dtci5vCj4gPj4+Pj4+PiB2bXdnZnhf a21zLm8gdm13Z2Z4X2Rydi5vIFwKPiA+Pj4+Pj4+ICAgICAgdm13Z2Z4X2NvdGFibGUubyB2bXdn Znhfc28ubyB2bXdnZnhfYmluZGluZy5vIHZtd2dmeF9tc2cubyBcCj4gPj4+Pj4+PiAgICAgIHZt d2dmeF9zaW1wbGVfcmVzb3VyY2UubyB2bXdnZnhfdmEubyB2bXdnZnhfYmxpdC5vIFwKPiA+Pj4+ Pj4+ICAgICAgdm13Z2Z4X3ZhbGlkYXRpb24ubyB2bXdnZnhfcGFnZV9kaXJ0eS5vCj4gPj4+Pj4+ PiB2bXdnZnhfc3RyZWFtb3V0cHV0Lm8gXAo+ID4+Pj4+Pj4gLSAgICB0dG1fb2JqZWN0Lm8gdHRt X2xvY2subwo+ID4+Pj4+Pj4gKyAgICB0dG1fb2JqZWN0Lm8gdHRtX2xvY2subyB0dG1fbWVtb3J5 Lm8KPiA+Pj4+Pj4+ICAgIHZtd2dmeC0kKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgKz0g dm13Z2Z4X3RocC5vCj4gPj4+Pj4+PiBvYmotJChDT05GSUdfRFJNX1ZNV0dGWCkgOj0gdm13Z2Z4 Lm8KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnku Ywo+ID4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYwo+ID4+Pj4+ Pj4gc2ltaWxhcml0eSBpbmRleCA5NyUKPiA+Pj4+Pj4+IHJlbmFtZSBmcm9tIGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX21lbW9yeS5jCj4gPj4+Pj4+PiByZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC90dG1fbWVtb3J5LmMKPiA+Pj4+Pj4+IGluZGV4IDYzNGE4NWMyZGM0Yy4uMTMwNmQ5 ZTBmMDk1IDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fbWVt b3J5LmMKPiA+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX21lbW9yeS5j Cj4gPj4+Pj4+PiBAQCAtMjgsNyArMjgsNiBAQAo+ID4+Pj4+Pj4gICAgI2RlZmluZSBwcl9mbXQo Zm10KSAiW1RUTV0gIiBmbXQKPiA+Pj4+Pj4+IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5 Lmg+Cj4gPj4+Pj4+PiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KPiA+Pj4+Pj4+ICNpbmNs dWRlIDxsaW51eC9zY2hlZC5oPgo+ID4+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KPiA+ Pj4+Pj4+IEBAIC0zNiwxMCArMzUsMTEgQEAKPiA+Pj4+Pj4+ICNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KPiA+Pj4+Pj4+ICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPj4+Pj4+PiAjaW5jbHVk ZSA8bGludXgvc3dhcC5oPgo+ID4+Pj4+Pj4gLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wb29sLmg+ Cj4gPj4+Pj4+PiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+Cj4gPj4+Pj4+PiAtI2luY2x1 ZGUgInR0bV9tb2R1bGUuaCIKPiA+Pj4+Pj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4K PiA+Pj4+Pj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+Cj4gPj4+Pj4+PiArCj4gPj4+Pj4+ PiArI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKPiA+Pj4+Pj4+ICAgICNkZWZpbmUgVFRNX01FTU9S WV9BTExPQ19SRVRSSUVTIDQKPiA+Pj4+Pj4+IEBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIGlu dCB0dG1fbWVtX2luaXRfZG1hMzJfem9uZShzdHJ1Y3QKPiA+Pj4+Pj4+IHR0bV9tZW1fZ2xvYmFs ICpnbG9iLAo+ID4+Pj4+Pj4gfQo+ID4+Pj4+Pj4gI2VuZGlmCj4gPj4+Pj4+PiAtaW50IHR0bV9t ZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQo+ID4+Pj4+Pj4gK2lu dCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0 Cj4gPj4+Pj4+PiBkcm1fZGV2aWNlICpkZXYpCj4gPj4+Pj4+PiB7Cj4gPj4+Pj4+PiBzdHJ1Y3Qg c3lzaW5mbyBzaTsKPiA+Pj4+Pj4+IGludCByZXQ7Cj4gPj4+Pj4+PiBAQCAtNDI1LDcgKzQyNSw4 IEBAIGludCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdAo+ID4+Pj4+Pj4gdHRtX21lbV9nbG9i YWwgKmdsb2IpCj4gPj4+Pj4+PiBnbG9iLT5zd2FwX3F1ZXVlID0gY3JlYXRlX3NpbmdsZXRocmVh ZF93b3JrcXVldWUoInR0bV9zd2FwIik7Cj4gPj4+Pj4+PiBJTklUX1dPUksoJmdsb2ItPndvcmss IHR0bV9zaHJpbmtfd29yayk7Cj4gPj4+Pj4+PiByZXQgPSBrb2JqZWN0X2luaXRfYW5kX2FkZCgK PiA+Pj4+Pj4+IC0mZ2xvYi0+a29iaiwgJnR0bV9tZW1fZ2xvYl9rb2JqX3R5cGUsIHR0bV9nZXRf a29iaigpLAo+ID4+Pj4+Pj4gIm1lbW9yeV9hY2NvdW50aW5nIik7Cj4gPj4+Pj4+PiArJmdsb2It PmtvYmosICZ0dG1fbWVtX2dsb2Jfa29ial90eXBlLCAmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2Jq LAo+ID4+Pj4+Pj4gKyJtZW1vcnlfYWNjb3VudGluZyIpOwo+ID4+Pj4+Pj4gaWYgKHVubGlrZWx5 KHJldCAhPSAwKSkgewo+ID4+Pj4+Pj4ga29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwo+ID4+Pj4+ Pj4gcmV0dXJuIHJldDsKPiA+Pj4+Pj4+IEBAIC00NTMsOCArNDU0LDYgQEAgaW50IHR0bV9tZW1f Z2xvYmFsX2luaXQoc3RydWN0Cj4gPj4+Pj4+PiB0dG1fbWVtX2dsb2JhbCAqZ2xvYikKPiA+Pj4+ Pj4+IHByX2luZm8oIlpvbmUgJTdzOiBBdmFpbGFibGUgZ3JhcGhpY3MgbWVtb3J5OiAlbGx1IEtp QlxuIiwKPiA+Pj4+Pj4+IHpvbmUtPm5hbWUsICh1bnNpZ25lZCBsb25nIGxvbmcpem9uZS0+bWF4 X21lbSA+PiAxMCk7Cj4gPj4+Pj4+PiB9Cj4gPj4+Pj4+PiAtdHRtX3Bvb2xfbWdyX2luaXQoZ2xv Yi0+em9uZV9rZXJuZWwtPm1heF9tZW0vKDIqUEFHRV9TSVpFKSk7Cj4gPj4+Pj4+PiAtdHRtX3R0 X21ncl9pbml0KCk7Cj4gPj4+Pj4+PiByZXR1cm4gMDsKPiA+Pj4+Pj4+IG91dF9ub196b25lOgo+ ID4+Pj4+Pj4gdHRtX21lbV9nbG9iYWxfcmVsZWFzZShnbG9iKTsKPiA+Pj4+Pj4+IEBAIC00NjYs MTAgKzQ2NSw2IEBAIHZvaWQgdHRtX21lbV9nbG9iYWxfcmVsZWFzZShzdHJ1Y3QKPiA+Pj4+Pj4+ IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQo+ID4+Pj4+Pj4gc3RydWN0IHR0bV9tZW1fem9uZSAqem9u ZTsKPiA+Pj4+Pj4+IHVuc2lnbmVkIGludCBpOwo+ID4+Pj4+Pj4gLS8qIGxldCB0aGUgcGFnZSBh bGxvY2F0b3IgZmlyc3Qgc3RvcCB0aGUgc2hyaW5rIHdvcmsuICovCj4gPj4+Pj4+PiAtdHRtX3Bv b2xfbWdyX2ZpbmkoKTsKPiA+Pj4+Pj4+IC10dG1fdHRfbWdyX2ZpbmkoKTsKPiA+Pj4+Pj4+IC0K PiA+Pj4+Pj4+IGZsdXNoX3dvcmtxdWV1ZShnbG9iLT5zd2FwX3F1ZXVlKTsKPiA+Pj4+Pj4+IGRl c3Ryb3lfd29ya3F1ZXVlKGdsb2ItPnN3YXBfcXVldWUpOwo+ID4+Pj4+Pj4gZ2xvYi0+c3dhcF9x dWV1ZSA9IE5VTEw7Cj4gPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9t ZW1vcnkuaAo+ID4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaAo+ ID4+Pj4+Pj4gc2ltaWxhcml0eSBpbmRleCA5NyUKPiA+Pj4+Pj4+IHJlbmFtZSBmcm9tIGluY2x1 ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmgKPiA+Pj4+Pj4+IHJlbmFtZSB0byBkcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3R0bV9tZW1vcnkuaAo+ID4+Pj4+Pj4gaW5kZXggYzFmMTY3ODgxZTMzLi44NTBl ZTZjODY3ZGEgMTAwNjQ0Cj4gPj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX21lbW9y eS5oCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaAo+ ID4+Pj4+Pj4gQEAgLTM1LDcgKzM1LDggQEAKPiA+Pj4+Pj4+ICNpbmNsdWRlIDxsaW51eC9lcnJu by5oPgo+ID4+Pj4+Pj4gI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KPiA+Pj4+Pj4+ICNpbmNs dWRlIDxsaW51eC9tbS5oPgo+ID4+Pj4+Pj4gLSNpbmNsdWRlICJ0dG1fYm9fYXBpLmgiCj4gPj4+ Pj4+PiArCj4gPj4+Pj4+PiArI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgo+ID4+Pj4+ Pj4gICAgLyoqCj4gPj4+Pj4+PiAgICogc3RydWN0IHR0bV9tZW1fZ2xvYmFsIC0gR2xvYmFsIG1l bW9yeSBhY2NvdW50aW5nIHN0cnVjdHVyZS4KPiA+Pj4+Pj4+IEBAIC03OSw3ICs4MCw3IEBAIGV4 dGVybiBzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgewo+ID4+Pj4+Pj4gI2VuZGlmCj4gPj4+Pj4+PiB9 IHR0bV9tZW1fZ2xvYjsKPiA+Pj4+Pj4+IC1pbnQgdHRtX21lbV9nbG9iYWxfaW5pdChzdHJ1Y3Qg dHRtX21lbV9nbG9iYWwgKmdsb2IpOwo+ID4+Pj4+Pj4gK2ludCB0dG1fbWVtX2dsb2JhbF9pbml0 KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0Cj4gPj4+Pj4+PiBkcm1fZGV2aWNl ICpkZXYpOwo+ID4+Pj4+Pj4gdm9pZCB0dG1fbWVtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB0dG1f bWVtX2dsb2JhbCAqZ2xvYik7Cj4gPj4+Pj4+PiBpbnQgdHRtX21lbV9nbG9iYWxfYWxsb2Moc3Ry dWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCB1aW50NjRfdAo+ID4+Pj4+Pj4gbWVtb3J5LAo+ID4+ Pj4+Pj4gICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7Cj4gPj4+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgKPiA+Pj4+Pj4+IGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgKPiA+Pj4+Pj4+IGluZGV4IGVkZTI2ZGY4 N2M5My4uNDliMDY0ZjBjYjE5IDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC90dG1fb2JqZWN0LmgKPiA+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn ZngvdHRtX29iamVjdC5oCj4gPj4+Pj4+PiBAQCAtNDMsNyArNDMsOCBAQAo+ID4+Pj4+Pj4gI2lu Y2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+Cj4gPj4+Pj4+PiAgICAjaW5jbHVkZSA8ZHJtL2RybV9o YXNodGFiLmg+Cj4gPj4+Pj4+PiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgo+ID4+ Pj4+Pj4gKwo+ID4+Pj4+Pj4gKyNpbmNsdWRlICJ0dG1fbWVtb3J5LmgiCj4gPj4+Pj4+PiAgICAv KioKPiA+Pj4+Pj4+ICAgKiBlbnVtIHR0bV9yZWZfdHlwZQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKPiA+Pj4+Pj4+IGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYwo+ID4+Pj4+Pj4gaW5kZXggNmIzYmZkOGM2NzhhLi41 MGU1MjlhMDE2NzcgMTAwNjQ0Cj4gPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9iby5jCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9iby5jCj4gPj4+Pj4+PiBAQCAtNTA3LDExICs1MDcsMTYgQEAgaW50IHZtd19ib19jcmVhdGVf a2VybmVsKHN0cnVjdAo+ID4+Pj4+Pj4gdm13X3ByaXZhdGUgKmRldl9wcml2LCB1bnNpZ25lZCBs b25nIHNpemUsCj4gPj4+Pj4+PiBhY2Nfc2l6ZSA9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKCpibykp Owo+ID4+Pj4+Pj4gYWNjX3NpemUgKz0gdHRtX3JvdW5kX3BvdChucGFnZXMgKiBzaXplb2Yodm9p ZCAqKSk7Cj4gPj4+Pj4+PiBhY2Nfc2l6ZSArPSB0dG1fcm91bmRfcG90KHNpemVvZihzdHJ1Y3Qg dHRtX3R0KSk7Cj4gPj4+Pj4+PiArCj4gPj4+Pj4+PiArcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxs b2MoJnR0bV9tZW1fZ2xvYiwgYWNjX3NpemUsICZjdHgpOwo+ID4+Pj4+Pj4gK2lmICh1bmxpa2Vs eShyZXQpKQo+ID4+Pj4+Pj4gK2dvdG8gZXJyb3JfZnJlZTsKPiA+Pj4+Pj4+ICsKPiA+Pj4+Pj4+ IHJldCA9IHR0bV9ib19pbml0X3Jlc2VydmVkKCZkZXZfcHJpdi0+YmRldiwgYm8sIHNpemUsCj4g Pj4+Pj4+PiAgICAgdHRtX2JvX3R5cGVfZGV2aWNlLCBwbGFjZW1lbnQsIDAsCj4gPj4+Pj4+PiAt ICAgJmN0eCwgYWNjX3NpemUsIE5VTEwsIE5VTEwsIE5VTEwpOwo+ID4+Pj4+Pj4gKyAgICZjdHgs IE5VTEwsIE5VTEwsIE5VTEwpOwo+ID4+Pj4+Pj4gaWYgKHVubGlrZWx5KHJldCkpCj4gPj4+Pj4+ PiAtZ290byBlcnJvcl9mcmVlOwo+ID4+Pj4+Pj4gK2dvdG8gZXJyb3JfYWNjb3VudDsKPiA+Pj4+ Pj4+ICAgIHR0bV9ib19waW4oYm8pOwo+ID4+Pj4+Pj4gdHRtX2JvX3VucmVzZXJ2ZShibyk7Cj4g Pj4+Pj4+PiBAQCAtNTE5LDYgKzUyNCw5IEBAIGludCB2bXdfYm9fY3JlYXRlX2tlcm5lbChzdHJ1 Y3Qgdm13X3ByaXZhdGUKPiA+Pj4+Pj4+ICpkZXZfcHJpdiwgdW5zaWduZWQgbG9uZyBzaXplLAo+ ID4+Pj4+Pj4gICAgcmV0dXJuIDA7Cj4gPj4+Pj4+PiArZXJyb3JfYWNjb3VudDoKPiA+Pj4+Pj4+ ICt0dG1fbWVtX2dsb2JhbF9mcmVlKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplKTsKPiA+Pj4+Pj4+ ICsKPiA+Pj4+Pj4+IGVycm9yX2ZyZWU6Cj4gPj4+Pj4+PiBrZnJlZShibyk7Cj4gPj4+Pj4+PiBy ZXR1cm4gcmV0Owo+ID4+Pj4+Pj4gQEAgLTU1OCwxMSArNTY2LDE3IEBAIGludCB2bXdfYm9faW5p dChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+Pj4+Pj4gdm13X2JvLT5iYXNlLnBy aW9yaXR5ID0gMzsKPiA+Pj4+Pj4+IHZtd19iby0+cmVzX3RyZWUgPSBSQl9ST09UOwo+ID4+Pj4+ Pj4gK3JldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplLCAm Y3R4KTsKPiA+Pj4+Pj4+ICtpZiAodW5saWtlbHkocmV0KSkKPiA+Pj4+Pj4+ICtyZXR1cm4gcmV0 Owo+ID4+Pj4+Pj4gKwo+ID4+Pj4+Pj4gcmV0ID0gdHRtX2JvX2luaXRfcmVzZXJ2ZWQoYmRldiwg JnZtd19iby0+YmFzZSwgc2l6ZSwKPiA+Pj4+Pj4+ICAgICB0dG1fYm9fdHlwZV9kZXZpY2UsIHBs YWNlbWVudCwKPiA+Pj4+Pj4+IC0gICAwLCAmY3R4LCBhY2Nfc2l6ZSwgTlVMTCwgTlVMTCwgYm9f ZnJlZSk7Cj4gPj4+Pj4+PiAtaWYgKHVubGlrZWx5KHJldCkpCj4gPj4+Pj4+PiArICAgMCwgJmN0 eCwgTlVMTCwgTlVMTCwgYm9fZnJlZSk7Cj4gPj4+Pj4+PiAraWYgKHVubGlrZWx5KHJldCkpIHsK PiA+Pj4+Pj4+ICt0dG1fbWVtX2dsb2JhbF9mcmVlKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplKTsK PiA+Pj4+Pj4+IHJldHVybiByZXQ7Cj4gPj4+Pj4+PiArfQo+ID4+Pj4+Pj4gICAgaWYgKHBpbikK PiA+Pj4+Pj4+IHR0bV9ib19waW4oJnZtd19iby0+YmFzZSk7Cj4gPj4+Pj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKPiA+Pj4+Pj4+IGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKPiA+Pj4+Pj4+IGluZGV4IDcxMGJhNTE2OWE3 NC4uNmMwY2ExMDExNjI5IDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZHJ2LmMKPiA+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2Rydi5jCj4gPj4+Pj4+PiBAQCAtMTI2OCw2ICsxMjY4LDcgQEAgc3RhdGljIHZvaWQg dm13X3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiA+Pj4+Pj4+IHsKPiA+Pj4+Pj4+IHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7Cj4gPj4+Pj4+PiAr dHRtX21lbV9nbG9iYWxfcmVsZWFzZSgmdHRtX21lbV9nbG9iKTsKPiA+Pj4+Pj4+IGRybV9kZXZf dW5yZWdpc3RlcihkZXYpOwo+ID4+Pj4+Pj4gdm13X2RyaXZlcl91bmxvYWQoZGV2KTsKPiA+Pj4+ Pj4+IH0KPiA+Pj4+Pj4+IEBAIC0xNTE4LDYgKzE1MTksMTAgQEAgc3RhdGljIGludCB2bXdfcHJv YmUoc3RydWN0IHBjaV9kZXYKPiA+Pj4+Pj4+ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2Rldmlj ZV9pZCAqZW50KQo+ID4+Pj4+Pj4gICAgcGNpX3NldF9kcnZkYXRhKHBkZXYsICZ2bXctPmRybSk7 Cj4gPj4+Pj4+PiArcmV0ID0gdHRtX21lbV9nbG9iYWxfaW5pdCgmdHRtX21lbV9nbG9iLCAmdm13 LT5kcm0pOwo+ID4+Pj4+Pj4gK2lmIChyZXQpCj4gPj4+Pj4+PiArcmV0dXJuIHJldDsKPiA+Pj4+ Pj4+ICsKPiA+Pj4+Pj4+IHJldCA9IHZtd19kcml2ZXJfbG9hZCh2bXcsIGVudC0+ZGV2aWNlKTsK PiA+Pj4+Pj4+IGlmIChyZXQpCj4gPj4+Pj4+PiByZXR1cm4gcmV0Owo+ID4+Pj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYwo+ID4+Pj4+ Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPiA+Pj4+Pj4+ IGluZGV4IGQxYmZhNTk1NzlmMS4uNjNmMTBjODY1MDYxIDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCj4gPj4+Pj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPiA+Pj4+Pj4+IEBA IC01NzYsMTEgKzU3NiwzMSBAQCBzdGF0aWMgdm9pZCB2bXdfdHRtX2Rlc3Ryb3koc3RydWN0Cj4g Pj4+Pj4+PiB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gPj4+Pj4+PiBz dGF0aWMgaW50IHZtd190dG1fcG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4gPj4+ Pj4+PiAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpj dHgpCj4gPj4+Pj4+PiB7Cj4gPj4+Pj4+PiArdW5zaWduZWQgaW50IGk7Cj4gPj4+Pj4+PiAraW50 IHJldDsKPiA+Pj4+Pj4+ICsKPiA+Pj4+Pj4+IC8qIFRPRE86IG1heWJlIGNvbXBsZXRlbHkgZHJv cCB0aGlzID8gKi8KPiA+Pj4+Pj4+IGlmICh0dG1fdHRfaXNfcG9wdWxhdGVkKHR0bSkpCj4gPj4+ Pj4+PiByZXR1cm4gMDsKPiA+Pj4+Pj4+IC1yZXR1cm4gdHRtX3Bvb2xfYWxsb2MoJmJkZXYtPnBv b2wsIHR0bSwgY3R4KTsKPiA+Pj4+Pj4+ICtyZXQgPSB0dG1fcG9vbF9hbGxvYygmYmRldi0+cG9v bCwgdHRtLCBjdHgpOwo+ID4+Pj4+Pj4gK2lmIChyZXQpCj4gPj4+Pj4+PiArcmV0dXJuIHJldDsK PiA+Pj4+Pj4+ICsKPiA+Pj4+Pj4+ICtmb3IgKGkgPSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7ICsr aSkgewo+ID4+Pj4+Pj4gK3JldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2UoJnR0bV9tZW1f Z2xvYiwgdHRtLT5wYWdlc1tpXSwKPiA+Pj4+Pj4+ICtQQUdFX1NJWkUsIGN0eCk7Cj4gPj4+Pj4+ PiAraWYgKHJldCkKPiA+Pj4+Pj4+ICtnb3RvIGVycm9yOwo+ID4+Pj4+Pj4gK30KPiA+Pj4+Pj4+ ICtyZXR1cm4gMDsKPiA+Pj4+Pj4+ICsKPiA+Pj4+Pj4+ICtlcnJvcjoKPiA+Pj4+Pj4+ICt3aGls ZSAoaS0tKQo+ID4+Pj4+Pj4gK3R0bV9tZW1fZ2xvYmFsX2ZyZWVfcGFnZSgmdHRtX21lbV9nbG9i LCB0dG0tPnBhZ2VzW2ldLAo+ID4+Pj4+Pj4gKyBQQUdFX1NJWkUpOwo+ID4+Pj4+Pj4gK3R0bV9w b29sX2ZyZWUoJmJkZXYtPnBvb2wsIHR0bSk7Cj4gPj4+Pj4+PiArcmV0dXJuIHJldDsKPiA+Pj4+ Pj4+IH0KPiA+Pj4+Pj4+ICAgIHN0YXRpYyB2b2lkIHZtd190dG1fdW5wb3B1bGF0ZShzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwKPiA+Pj4+Pj4+IEBAIC01ODgsNiArNjA4LDcgQEAgc3RhdGljIHZv aWQgdm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdAo+ID4+Pj4+Pj4gdHRtX2RldmljZSAqYmRldiwK PiA+Pj4+Pj4+IHsKPiA+Pj4+Pj4+IHN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfdHQgPSBjb250YWlu ZXJfb2YodHRtLCBzdHJ1Y3Qgdm13X3R0bV90dCwKPiA+Pj4+Pj4+ICAgZG1hX3R0bSk7Cj4gPj4+ Pj4+PiArdW5zaWduZWQgaW50IGk7Cj4gPj4+Pj4+PiAgICBpZiAodm13X3R0LT5tb2IpIHsKPiA+ Pj4+Pj4+IHZtd19tb2JfZGVzdHJveSh2bXdfdHQtPm1vYik7Cj4gPj4+Pj4+PiBAQCAtNTk1LDYg KzYxNiwxMSBAQCBzdGF0aWMgdm9pZCB2bXdfdHRtX3VucG9wdWxhdGUoc3RydWN0Cj4gPj4+Pj4+ PiB0dG1fZGV2aWNlICpiZGV2LAo+ID4+Pj4+Pj4gfQo+ID4+Pj4+Pj4gICAgdm13X3R0bV91bm1h cF9kbWEodm13X3R0KTsKPiA+Pj4+Pj4+ICsKPiA+Pj4+Pj4+ICtmb3IgKGkgPSAwOyBpIDwgdHRt LT5udW1fcGFnZXM7ICsraSkKPiA+Pj4+Pj4+ICt0dG1fbWVtX2dsb2JhbF9mcmVlX3BhZ2UoJnR0 bV9tZW1fZ2xvYiwgdHRtLT5wYWdlc1tpXSwKPiA+Pj4+Pj4+ICsgUEFHRV9TSVpFKTsKPiA+Pj4+ Pj4+ICsKPiA+Pj4+Pj4+IHR0bV9wb29sX2ZyZWUoJmJkZXYtPnBvb2wsIHR0bSk7Cj4gPj4+Pj4+ PiB9Cj4gPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+ ID4+Pj4+Pj4gYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCj4gPj4+Pj4+PiBpbmRleCAx Mjk3YThmYjdjY2IuLjRmYjUyM2RmYWIzMiAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fYXBpLmgKPiA+Pj4+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1f Ym9fYXBpLmgKPiA+Pj4+Pj4+IEBAIC04OCw3ICs4OCw2IEBAIHN0cnVjdCB0dG1fdHQ7Cj4gPj4+ Pj4+PiAgICogQHR5cGU6IFRoZSBibyB0eXBlLgo+ID4+Pj4+Pj4gICAqIEBkZXN0cm95OiBEZXN0 cnVjdGlvbiBmdW5jdGlvbi4gSWYgTlVMTCwga2ZyZWUgaXMgdXNlZC4KPiA+Pj4+Pj4+ICAgKiBA bnVtX3BhZ2VzOiBBY3R1YWwgbnVtYmVyIG9mIHBhZ2VzLgo+ID4+Pj4+Pj4gLSAqIEBhY2Nfc2l6 ZTogQWNjb3VudGVkIHNpemUgZm9yIHRoaXMgb2JqZWN0Lgo+ID4+Pj4+Pj4gICAqIEBrcmVmOiBS ZWZlcmVuY2UgY291bnQgb2YgdGhpcyBidWZmZXIgb2JqZWN0LiBXaGVuIHRoaXMKPiA+Pj4+Pj4+ IHJlZmNvdW50IHJlYWNoZXMKPiA+Pj4+Pj4+ICAgKiB6ZXJvLCB0aGUgb2JqZWN0IGlzIGRlc3Ry b3llZCBvciBwdXQgb24gdGhlIGRlbGF5ZWQgZGVsZXRlCj4gPj4+Pj4+PiBsaXN0Lgo+ID4+Pj4+ Pj4gICAqIEBtZW06IHN0cnVjdHVyZSBkZXNjcmliaW5nIGN1cnJlbnQgcGxhY2VtZW50Lgo+ID4+ Pj4+Pj4gQEAgLTEyNSw3ICsxMjQsNiBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qgewo+ID4+ Pj4+Pj4gc3RydWN0IHR0bV9kZXZpY2UgKmJkZXY7Cj4gPj4+Pj4+PiBlbnVtIHR0bV9ib190eXBl IHR5cGU7Cj4gPj4+Pj4+PiB2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqKTsKPiA+Pj4+Pj4+IC1zaXplX3QgYWNjX3NpemU7Cj4gPj4+Pj4+PiAgICAvKioKPiA+Pj4+ Pj4+ICogTWVtYmVycyBub3QgbmVlZGluZyBwcm90ZWN0aW9uLgo+ID4+Pj4+Pj4gQEAgLTM1Nywx MCArMzU1LDYgQEAgdm9pZCB0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdAo+ ID4+Pj4+Pj4gdHRtX2RldmljZSAqYmRldiwgaW50IHJlc2NoZWQpOwo+ID4+Pj4+Pj4gYm9vbCB0 dG1fYm9fZXZpY3Rpb25fdmFsdWFibGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiA+ Pj4+Pj4+ICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSk7Cj4gPj4+Pj4+PiAt c2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4gPj4+ Pj4+PiAtICAgdW5zaWduZWQgbG9uZyBib19zaXplLAo+ID4+Pj4+Pj4gLSAgIHVuc2lnbmVkIHN0 cnVjdF9zaXplKTsKPiA+Pj4+Pj4+IC0KPiA+Pj4+Pj4+IC8qKgo+ID4+Pj4+Pj4gICAqIHR0bV9i b19pbml0X3Jlc2VydmVkCj4gPj4+Pj4+PiAgICoKPiA+Pj4+Pj4+IEBAIC0zNzEsNyArMzY1LDYg QEAgc2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9kZXZpY2UKPiA+Pj4+Pj4+ ICpiZGV2LAo+ID4+Pj4+Pj4gICAqIEBmbGFnczogSW5pdGlhbCBwbGFjZW1lbnQgZmxhZ3MuCj4g Pj4+Pj4+PiAgICogQHBhZ2VfYWxpZ25tZW50OiBEYXRhIGFsaWdubWVudCBpbiBwYWdlcy4KPiA+ Pj4+Pj4+ICAgKiBAY3R4OiBUVE0gb3BlcmF0aW9uIGNvbnRleHQgZm9yIG1lbW9yeSBhbGxvY2F0 aW9uLgo+ID4+Pj4+Pj4gLSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRoaXMgb2Jq ZWN0Lgo+ID4+Pj4+Pj4gICAqIEByZXN2OiBQb2ludGVyIHRvIGEgZG1hX3Jlc3YsIG9yIE5VTEwg dG8gbGV0IHR0bSBhbGxvY2F0ZSBvbmUuCj4gPj4+Pj4+PiAgICogQGRlc3Ryb3k6IERlc3Ryb3kg ZnVuY3Rpb24uIFVzZSBOVUxMIGZvciBrZnJlZSgpLgo+ID4+Pj4+Pj4gICAqCj4gPj4+Pj4+PiBA QCAtNDAyLDggKzM5NSw3IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2Rl dmljZQo+ID4+Pj4+Pj4gKmJkZXYsCj4gPj4+Pj4+PiAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpw bGFjZW1lbnQsCj4gPj4+Pj4+PiAgIHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAo+ID4+Pj4+Pj4g ICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPiA+Pj4+Pj4+IC0gc2l6ZV90IGFjY19z aXplLCBzdHJ1Y3Qgc2dfdGFibGUgKnNnLAo+ID4+Pj4+Pj4gLSBzdHJ1Y3QgZG1hX3Jlc3YgKnJl c3YsCj4gPj4+Pj4+PiArIHN0cnVjdCBzZ190YWJsZSAqc2csIHN0cnVjdCBkbWFfcmVzdiAqcmVz diwKPiA+Pj4+Pj4+ICAgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KikpOwo+ID4+Pj4+Pj4gICAgLyoqCj4gPj4+Pj4+PiBAQCAtNDIxLDcgKzQxMyw2IEBAIGludCB0 dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2RldmljZQo+ID4+Pj4+Pj4gKmJkZXYsCj4g Pj4+Pj4+PiAgICogaG9sZHMgYSBwb2ludGVyIHRvIGEgcGVyc2lzdGVudCBzaG1lbSBvYmplY3Qu IFR5cGljYWxseSwKPiA+Pj4+Pj4+IHRoaXMgd291bGQKPiA+Pj4+Pj4+ICAgKiBwb2ludCB0byB0 aGUgc2htZW0gb2JqZWN0IGJhY2tpbmcgYSBHRU0gb2JqZWN0IGlmIFRUTSBpcwo+ID4+Pj4+Pj4g dXNlZCB0byBiYWNrIGEKPiA+Pj4+Pj4+ICAgKiBHRU0gdXNlciBpbnRlcmZhY2UuCj4gPj4+Pj4+ PiAtICogQGFjY19zaXplOiBBY2NvdW50ZWQgc2l6ZSBmb3IgdGhpcyBvYmplY3QuCj4gPj4+Pj4+ PiAgICogQHJlc3Y6IFBvaW50ZXIgdG8gYSBkbWFfcmVzdiwgb3IgTlVMTCB0byBsZXQgdHRtIGFs bG9jYXRlIG9uZS4KPiA+Pj4+Pj4+ICAgKiBAZGVzdHJveTogRGVzdHJveSBmdW5jdGlvbi4gVXNl IE5VTEwgZm9yIGtmcmVlKCkuCj4gPj4+Pj4+PiAgICoKPiA+Pj4+Pj4+IEBAIC00NDYsNyArNDM3 LDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlCj4gPj4+Pj4+ PiAqYmRldiwKPiA+Pj4+Pj4+IGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwgc3RydWN0Cj4gPj4+Pj4+PiB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gPj4+Pj4+PiBzaXpl X3Qgc2l6ZSwgZW51bSB0dG1fYm9fdHlwZSB0eXBlLAo+ID4+Pj4+Pj4gc3RydWN0IHR0bV9wbGFj ZW1lbnQgKnBsYWNlbWVudCwKPiA+Pj4+Pj4+IC11aW50MzJfdCBwYWdlX2FsaWdubWVudCwgYm9v bCBpbnRlcnJ1YnRpYmxlLCBzaXplX3QgYWNjX3NpemUsCj4gPj4+Pj4+PiArdWludDMyX3QgcGFn ZV9hbGlnbm1lbnQsIGJvb2wgaW50ZXJydWJ0aWJsZSwKPiA+Pj4+Pj4+IHN0cnVjdCBzZ190YWJs ZSAqc2csIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPiA+Pj4+Pj4+IHZvaWQgKCpkZXN0cm95KSAo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopKTsKPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4gPj4+Pj4+PiBiL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fZHJpdmVyLmgKPiA+Pj4+Pj4+IGluZGV4IDFjOWJmOTkzZTI1Mi4uODk1OWMwMDc1Y2Zk IDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+ ID4+Pj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+ID4+Pj4+Pj4g QEAgLTQwLDcgKzQwLDYgQEAKPiA+Pj4+Pj4+ICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9kZXZpY2Uu aD4KPiA+Pj4+Pj4+ICAgICNpbmNsdWRlICJ0dG1fYm9fYXBpLmgiCj4gPj4+Pj4+PiAtI2luY2x1 ZGUgInR0bV9tZW1vcnkuaCIKPiA+Pj4+Pj4+ICNpbmNsdWRlICJ0dG1fcGxhY2VtZW50LmgiCj4g Pj4+Pj4+PiAjaW5jbHVkZSAidHRtX3R0LmgiCj4gPj4+Pj4+PiAjaW5jbHVkZSAidHRtX3Bvb2wu aCIKPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmggYi9pbmNs dWRlL2RybS90dG0vdHRtX3R0LmgKPiA+Pj4+Pj4+IGluZGV4IGNjZTU3ZmI0OWUyYy4uMDY5Zjgx MzAyNDFhIDEwMDY0NAo+ID4+Pj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oCj4g Pj4+Pj4+PiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKPiA+Pj4+Pj4+IEBAIC0zMCw2 ICszMCw3IEBACj4gPj4+Pj4+PiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiA+Pj4+Pj4+ICNp bmNsdWRlIDxkcm0vdHRtL3R0bV9jYWNoaW5nLmg+Cj4gPj4+Pj4+PiArc3RydWN0IHR0bV9ib19k ZXZpY2U7Cj4gPj4+Pj4+PiBzdHJ1Y3QgdHRtX3R0Owo+ID4+Pj4+Pj4gc3RydWN0IHR0bV9yZXNv dXJjZTsKPiA+Pj4+Pj4+IHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdDsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gLS0tLS0tLS0tLQo+ID4+Pgo+ID4+PiBZb3UncmUgcmVjZWl2aW5nIHRoaXMgbWVzc2FnZSBi ZWNhdXNlIHlvdSdyZSBhIG1lbWJlciBvZiB0aGUKPiA+Pj4gTGludXgtZ3JhcGhpY3MtbWFpbnRh aW5lciBncm91cCBmcm9tIFZNd2FyZSwgSW5jLi4KPiA+Pj4KPiA+Pj4gTGVhdmUgZ3JvdXA6Cj4g Pj4+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1o dHRwcyUzQSUyRiUyRm91dGxvb2sub2ZmaWNlMzY1LmNvbSUyRm93YSUyRkxpbnV4LWdyYXBoaWNz LW1haW50YWluZXIlNDB2bXdhcmUuY29tJTJGZ3JvdXBzdWJzY3JpcHRpb24uYXNoeCUzRnNvdXJj ZSUzREVzY2FsYXRlZE1lc3NhZ2UlMjZhY3Rpb24lM0RsZWF2ZSUyNkd1ZXN0SWQlM0Q2OWQzYmY2 Zi01MjQyLTRiZTQtYjg2My1iNzk0OTc1MmYzNjMmYW1wO2RhdGE9MDQlN0MwMSU3Q2NocmlzdGlh bi5rb2VuaWclNDBhbWQuY29tJTdDY2NmOTAwZTZkMjM2NDhlZjBiMDgwOGQ4YzdlZGI3NjAlN0Mz ZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NDc5MTcxMTAzMzg0 MDcyJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lW Mmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPWY4 WSUyQnl6Qm50OUd4eG1tN1haM2hwWnFUZGJZMDVvZzl5bG9BckxDTEl4MCUzRCZhbXA7cmVzZXJ2 ZWQ9MAo+ID4+Pgo+ID4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4+PiBTZW50IHRvIGxpbnV4LWdyYXBoaWNzLW1haW50YWluZXJAdm13YXJlLmNv bQo+ID4KPgoKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK