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=-10.8 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, NICE_REPLY_A,SIGNED_OFF_BY,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 A2A45C4363C for ; Wed, 7 Oct 2020 08:28:48 +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 0985820B1F for ; Wed, 7 Oct 2020 08:28:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iqLaoPze" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0985820B1F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 136A56E252; Wed, 7 Oct 2020 08:28:47 +0000 (UTC) Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by gabe.freedesktop.org (Postfix) with ESMTPS id D04416E247 for ; Wed, 7 Oct 2020 08:28:44 +0000 (UTC) Received: by mail-qt1-x843.google.com with SMTP id 10so1003644qtx.12 for ; Wed, 07 Oct 2020 01:28:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=EJ7FkeY+GtbIXFJOKnrUONn/w8BahrInVmJVMP8CjiY=; b=iqLaoPzeWsO0Tq/b/S0xbutPerpc478C5MAh/PswEdRZi/0SMepVqB5zE52gaVPNQJ xy7QLSxFiRNQUsWV6AMKIxr6B3mLeVmhHVXfj3IjmrC5oMisoIt4I2cGey2dq5ewUp5x EmZyhcWgbbIUAWqCynkEMZ7trIUz0toRFqLj7Ic2LcanDj4oE4pm5vBussZVztw3qohF boZe/x19oI3V6eTj/Zow0qeR/cERWXYtF6GhC+55J53dddHZ0BEkK35X/WTAjpIOErzV LwDWmjS5KYmdRPkETSPjtsm+Gf5dW1y07O3kleL+ivcUatFCnmezlfvfFwYv5X98ROo8 I6XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:cc:references:from :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding:content-language; bh=EJ7FkeY+GtbIXFJOKnrUONn/w8BahrInVmJVMP8CjiY=; b=NnZO1xZqm/yzt0T+dbjWBsvhLb5NzApUYTbVt8XE1WjjfFGsAtKMnKS4T/mt5KhEuM /rJmL72d1h8z12LEwjcmy4Vg5gquJSqeodO5G6O9zTt80Af5cTsi1Ww/4+nXAkvhTrrZ pjXDMdwBgmSSS8KiFQFW1nwbXEPW/Kmot/ClcuuWcMCUbXWM8l1AYBM6LDgp3qv1GuVy bt4vvSW9ymA/aEOm5tEcK2of74gFVjVh14ByWgtB8sXL/WbR3PoIY94zR1qbklE+dtbv 9gw1HC8lyyyY+KG934cWM3bciRslerBbqxYVD9izGaGHIfjoMSB0PQq+MagQc1WP0zYf /+fA== X-Gm-Message-State: AOAM533CGAH1ARPnTLS1bItH5qBEXGB8cqEoejLwCpKNaIvGj+MMnciB FXmYL3W9spt7ycTV2Ye8Gq8= X-Google-Smtp-Source: ABdhPJzQnyawTW7EsPqIWThv1t9vOooHgpZt2QN3Xn6cIgGg7xJYEefBlrf0ssDEMDWO+oUiLvjamw== X-Received: by 2002:ac8:5a47:: with SMTP id o7mr2086052qta.267.1602059321433; Wed, 07 Oct 2020 01:28:41 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7? ([2a02:908:1252:fb60:be8a:bd56:1f94:86e7]) by smtp.gmail.com with ESMTPSA id l6sm885989qkb.56.2020.10.07.01.28.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Oct 2020 01:28:40 -0700 (PDT) Subject: Re: [PATCH 1/4] drm/ttm: device naming cleanup To: Dave Airlie References: <20201002084707.2203-1-christian.koenig@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Wed, 7 Oct 2020 10:28:37 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US 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: , Reply-To: christian.koenig@amd.com Cc: Huang Rui , dri-devel Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMDYuMTAuMjAgdW0gMDI6MTUgc2NocmllYiBEYXZlIEFpcmxpZToKPiBPbiBGcmksIDIgT2N0 IDIwMjAgYXQgMTg6NDcsIENocmlzdGlhbiBLw7ZuaWcKPiA8Y2tvZW5pZy5sZWljaHR6dW1lcmtl bkBnbWFpbC5jb20+IHdyb3RlOgo+PiBSZW5hbWUgdHRtX2JvX2RldmljZSB0byB0dG1fZGV2aWNl Lgo+PiBSZW5hbWUgdHRtX2JvX2RyaXZlciB0byB0dG1fZGV2aWNlX2Z1bmNzLgo+PiBSZW5hbWUg dHRtX2JvX2dsb2JhbCB0byB0dG1fZ2xvYmFsLgo+Pgo+PiBNb3ZlIGdsb2JhbCBhbmQgZGV2aWNl IHJlbGF0ZWQgZnVuY3Rpb25zIHRvIHR0bV9kZXZpY2UuW2NoXS4KPiBJJ3ZlIGEgcHJvYmxlbSB3 aXRoIGRvaW5nIHRoaXMgbm93LCBzaW5jZSB3ZSBhcmUgY2h1cm5pbmcgYSBsb3Qgb2YKPiBzdHVm ZiBpbnRvIGRybS1taXNjLW5leHQgdGhpcyB3aWxsIG1ha2UgcmV2ZXJ0cyBhIGxvdCBtZXNzaWVy IHRoYW4KPiByZXF1aXJlZCBpbiBvcmRlciB0byBmYWNpbGlhdGUgcmVncmVzc2lvbiB0ZXN0aW5n Lgo+Cj4gSSd2ZSBhbHJlYWR5IGJ1cm5lZCAyLTMgZGF5cyBvbiB2bXdnZnggcmVncmVzc2lvbnMg YW5kIEknbSBub3QgcmVhbGx5Cj4gd2FudGluZyB0byBhZGQgbWFqb3IgcmVuYW1lcyBvciByZXN0 cnVjdHVyZXMgdW50aWwgd2UgaGF2ZSBzZXR0bGVkCj4gdGhpbmdzIGRvd24gYSBiaXQgbW9yZS4K Pgo+IEknbSBub3Qgc3VyZSB3aGVuIHdvdWxkIGJlIGEgZ29vZCB0aW1lLCBhbmQgbWF5YmUgdGhl IGdsb2JhbCBvbmUgd291bGQKPiBiZSBhIGxvdCBsZXNzIG9mIGltcGFjdCB2cyB0aGUgdHRtX2Jv X2RldmljZS0+dHRtX0RldmljZSBvbmUuCgpXZSBjYW4gd2FpdCB3aXRoIHRoYXQgdGlsbCB0aGUg bmV4dCBtZXJnZSB3aW5kb3cgaWYgeW91IGxpa2UsIGJ1dCBJIGhhdmUgCnRvbnMgb2YgcGF0Y2hl cyBpbiB0aGUgcGlwZWxpbmUgYmFzZWQgb24gdGhpcy4KCkVzcGVjaWFsbHkgdGhlIHdob2xlIHN3 YXAgYW5kIGxydSByZXdvcmsgY2xlYW5zIHRoaW5ncyB1cCBtYXNzaXZlbHkgYW5kIAp3b24ndCBi ZSBwb3NzaWJsZSBpZiB3ZSBkb24ndCBzdGFydCB0byBzZXBhcmF0ZSBUVE0gaGFuZGxpbmcgaW50 byAKZGlmZmVyZW50IG9iamVjdHMgKGluc3RlYWQgb2YgcHVuY2hpbmcgZXZlcnl0aGluZyB0b2dl dGhlciBpbiBvbmUgZmlsZSkuCgpJJ20gcGVyZmVjdGx5IGF3YXJlIHRoYXQgdGhpcyBjb3VsZCBj YXVzZSBmYWxsb3V0IGluIHRoZSBkcml2ZXJzIGFuZCAKdGhhdCdzIHRoZSByZWFzb24gSSB3YXMg aG9sZGluZyBiYWNrIHdpdGggdGhpcyBmb3Igc28gbG9uZywgYnV0IHNvb25lciAKb3IgbGF0ZXIg d2UgaGF2ZSB0byB0YWtlIHRoZSBiaXR0ZXIgcGlsbC4KCkNocmlzdGlhbi4KCj4KPiBEYXZlLgo+ PiBObyBmdW5jdGlvbmFsIGNoYW5nZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICAgfCAgIDIgKy0KPj4gICAuLi4vZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZmVuY2UuYyAgfCAgIDYgKy0KPj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jICAgICAgfCAgIDIgKy0KPj4gICBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgICAgfCAgMjQgKy0KPj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmggICAgICAgfCAgIDIgKy0KPj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyAgICAgICAgfCAgIDggKy0K Pj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jICAgICAgICAgfCAgMTQg Ky0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgfCAg MTggKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmggICAgICAgICAg fCAgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oICAgICAg ICAgfCAgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NnZG1hLmMg ICAgICAgfCAgIDYgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5j ICAgICAgICAgfCAgIDQgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0 bS5oICAgICAgICAgfCAgIDggKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaCAg ICAgICAgICAgICAgICAgfCAgIDQgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxl YXNlLmMgICAgICAgICAgICAgfCAgIDYgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90 dG0uYyAgICAgICAgICAgICAgICAgfCAgMTYgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbi5oICAgICAgICAgICAgICAgfCAgIDYgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl90dG0uYyAgICAgICAgICAgfCAgMzQgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0v dHRtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jICAgICAgICAgfCAgIDIgKy0KPj4gICBkcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAgICAgICAgICAgfCAzMDggKysrLS0tLS0tLS0tLS0t Cj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgIHwgIDI0 ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAgICAgICAgICAgIHwg IDI0ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgICAgICAgICAgICAg IHwgMjIyICsrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91 dGlsLmMgICAgICAgIHwgICA4ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fbWVtb3J5 LmMgICAgICAgICAgICAgIHwgICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmFu Z2VfbWFuYWdlci5jICAgICAgIHwgICA0ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f cmVzb3VyY2UuYyAgICAgICAgICAgIHwgICA0ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fdHQuYyAgICAgICAgICAgICAgICAgIHwgIDI2ICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfYmxpdC5jICAgICAgICAgIHwgICA0ICstCj4+ICAgZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfYm8uYyAgICAgICAgICAgIHwgICA0ICstCj4+ICAgZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgICAgIHwgICA2ICstCj4+ICAgZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmggICAgICAgICAgIHwgICA0ICstCj4+ICAgZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyAgICAgIHwgICAyICstCj4+ICAgZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jICAgIHwgIDE0ICstCj4+ICAg aW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oICAgICAgICAgICAgIHwgICA2ICstCj4+ ICAgaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICAgICAgICAgICAgICAgIHwgIDQ0ICst LQo+PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAgICB8IDM1 NyArLS0tLS0tLS0tLS0tLS0tLQo+PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fZGV2aWNlLmggICAg ICAgICAgICAgICAgICB8IDM2NiArKysrKysrKysrKysrKysrKysKPj4gICBpbmNsdWRlL2RybS90 dG0vdHRtX3Jlc291cmNlLmggICAgICAgICAgICAgICAgfCAgIDQgKy0KPj4gICBpbmNsdWRlL2Ry bS90dG0vdHRtX3R0LmggICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KPj4gICA0MSBmaWxl cyBjaGFuZ2VkLCA4MzMgaW5zZXJ0aW9ucygrKSwgNzgwIGRlbGV0aW9ucygtKQo+PiAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYwo+PiAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5oCj4+Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+IGluZGV4IDQwMDlkMmUzMDcyNy4uYTAzZjliZDNlYTRi IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+PiBAQCAtOTk5LDcgKzk5 OSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9kZXZpY2UgKmFkZXZfdG9fZHJtKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQo+PiAgICAgICAgICByZXR1cm4gJmFkZXYtPmRkZXY7Cj4+ ICAgfQo+Pgo+PiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYW1kZ3B1X3R0 bV9hZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQo+PiArc3RhdGljIGlubGluZSBzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYW1kZ3B1X3R0bV9hZGV2KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 KQo+PiAgIHsKPj4gICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcl9vZihiZGV2LCBzdHJ1Y3QgYW1k Z3B1X2RldmljZSwgbW1hbi5iZGV2KTsKPj4gICB9Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2ZlbmNlLmMKPj4gaW5kZXggMzEwN2I5NTc1OTI5Li41 YWY0NjQ5MzM5NzYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9hbWRrZmRfZmVuY2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkX2ZlbmNlLmMKPj4gQEAgLTQwLDEzICs0MCwxMyBAQCBzdGF0aWMgYXRvbWlj X3QgZmVuY2Vfc2VxID0gQVRPTUlDX0lOSVQoMCk7Cj4+ICAgICogQWxsIHRoZSBCT3MgaW4gYSBw cm9jZXNzIHNoYXJlIGFuIGV2aWN0aW9uIGZlbmNlLiBXaGVuIHByb2Nlc3MgWCB3YW50cwo+PiAg ICAqIHRvIG1hcCBWUkFNIG1lbW9yeSBidXQgVFRNIGNhbid0IGZpbmQgZW5vdWdoIHNwYWNlLCBU VE0gd2lsbCBhdHRlbXB0IHRvCj4+ICAgICogZXZpY3QgQk9zIGZyb20gaXRzIExSVSBsaXN0LiBU VE0gY2hlY2tzIGlmIHRoZSBCTyBpcyB2YWx1YWJsZSB0byBldmljdAo+PiAtICogYnkgY2FsbGlu ZyB0dG1fYm9fZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZSgpLgo+PiArICogYnkgY2FsbGluZyB0 dG1fZGV2aWNlX2Z1bmNzLT5ldmljdGlvbl92YWx1YWJsZSgpLgo+PiAgICAqCj4+IC0gKiB0dG1f Ym9fZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZSgpIC0gd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhl IEJPIGJlbG9uZ3MKPj4gKyAqIHR0bV9kZXZpY2VfZnVuY3MtPmV2aWN0aW9uX3ZhbHVhYmxlKCkg LSB3aWxsIHJldHVybiBmYWxzZSBpZiB0aGUgQk8gYmVsb25ncwo+PiAgICAqICB0byBwcm9jZXNz IFguIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdHJ1ZSB0byBpbmRpY2F0ZSBCTyBjYW4gYmUK Pj4gICAgKiAgZXZpY3RlZCBieSBUVE0uCj4+ICAgICoKPj4gLSAqIElmIHR0bV9ib19kcml2ZXIt PmV2aWN0aW9uX3ZhbHVhYmxlIHJldHVybnMgdHJ1ZSwgdGhlbiBUVE0gd2lsbCBjb250aW51ZQo+ PiArICogSWYgdHRtX2RldmljZV9mdW5jcy0+ZXZpY3Rpb25fdmFsdWFibGUgcmV0dXJucyB0cnVl LCB0aGVuIFRUTSB3aWxsIGNvbnRpbnVlCj4+ICAgICogdGhlIGV2Y2l0aW9uIHByb2Nlc3MgZm9y IHRoYXQgQk8gYnkgY2FsbGluZyB0dG1fYm9fZXZpY3QgLS0+IGFtZGdwdV9ib19tb3ZlCj4+ICAg ICogLS0+IGFtZGdwdV9jb3B5X2J1ZmZlcigpLiBUaGlzIHNldHMgdXAgam9iIGluIEdQVSBzY2hl ZHVsZXIuCj4+ICAgICoKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9nYXJ0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5j Cj4+IGluZGV4IGUwMWU2ODFkMmE2MC4uN2YyNWYyYzBkZTM4IDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKPj4gQEAgLTcxLDcgKzcxLDcgQEAKPj4gICAg Ki8KPj4gICBzdGF0aWMgaW50IGFtZGdwdV9nYXJ0X2R1bW15X3BhZ2VfaW5pdChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKPj4gICB7Cj4+IC0gICAgICAgc3RydWN0IHBhZ2UgKmR1bW15X3Bh Z2UgPSB0dG1fYm9fZ2xvYi5kdW1teV9yZWFkX3BhZ2U7Cj4+ICsgICAgICAgc3RydWN0IHBhZ2Ug KmR1bW15X3BhZ2UgPSB0dG1fZ2xvYi5kdW1teV9yZWFkX3BhZ2U7Cj4+Cj4+ICAgICAgICAgIGlm IChhZGV2LT5kdW1teV9wYWdlX2FkZHIpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4gaW5kZXggOGNkZWM1OGI5 MTA2Li4wODhkY2ZjZTZiY2EgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV90dG0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdHRtLmMKPj4gQEAgLTYzLDcgKzYzLDcgQEAKPj4KPj4gICAjZGVmaW5lIEFNREdQVV9UVE1f VlJBTV9NQVhfRFdfUkVBRCAgICAoc2l6ZV90KTEyOAo+Pgo+PiAtc3RhdGljIGludCBhbWRncHVf dHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0YXRpYyBp bnQgYW1kZ3B1X3R0bV9iYWNrZW5kX2JpbmQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAq Ym9fbWVtKTsKPj4KPj4gQEAgLTczNSw3ICs3MzUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19t b3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCj4+ICAgICoKPj4g ICAgKiBDYWxsZWQgYnkgdHRtX21lbV9pb19yZXNlcnZlKCkgdWx0aW1hdGVseSB2aWEgdHRtX2Jv X3ZtX2ZhdWx0KCkKPj4gICAgKi8KPj4gLXN0YXRpYyBpbnQgYW1kZ3B1X3R0bV9pb19tZW1fcmVz ZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVt KQo+PiArc3RhdGljIGludCBhbWRncHVfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICAgewo+PiAgICAgICAgICBz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiZGV2KTsKPj4gICAg ICAgICAgc3RydWN0IGRybV9tbV9ub2RlICptbV9ub2RlID0gbWVtLT5tbV9ub2RlOwo+PiBAQCAt OTgyLDcgKzk4Miw3IEBAIHZvaWQgYW1kZ3B1X3R0bV90dF9zZXRfdXNlcl9wYWdlcyhzdHJ1Y3Qg dHRtX3R0ICp0dG0sIHN0cnVjdCBwYWdlICoqcGFnZXMpCj4+ICAgICoKPj4gICAgKiBDYWxsZWQg YnkgYW1kZ3B1X3R0bV9iYWNrZW5kX2JpbmQoKQo+PiAgICAqKi8KPj4gLXN0YXRpYyBpbnQgYW1k Z3B1X3R0bV90dF9waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0 YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0 ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFt ZGdwdV90dG1fYWRldihiZGV2KTsKPj4gQEAgLTEwMTksNyArMTAxOSw3IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X3R0bV90dF9waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4g ICAvKioKPj4gICAgKiBhbWRncHVfdHRtX3R0X3VucGluX3VzZXJwdHIgLSBVbnBpbiBhbmQgdW5t YXAgdXNlcnB0ciBwYWdlcwo+PiAgICAqLwo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV90dF91 bnBpbl91c2VycHRyKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQg YW1kZ3B1X3R0bV90dF91bnBpbl91c2VycHRyKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0 bSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1 X3R0bV9hZGV2KGJkZXYpOwo+PiBAQCAtMTEwMyw3ICsxMTAzLDcgQEAgc3RhdGljIGludCBhbWRn cHVfdHRtX2dhcnRfYmluZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gICAgKiBDYWxs ZWQgYnkgdHRtX3R0X2JpbmQoKSBvbiBiZWhhbGYgb2YgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbSgp Lgo+PiAgICAqIFRoaXMgaGFuZGxlcyBiaW5kaW5nIEdUVCBtZW1vcnkgdG8gdGhlIGRldmljZSBh ZGRyZXNzIHNwYWNlLgo+PiAgICAqLwo+PiAtc3RhdGljIGludCBhbWRncHVfdHRtX2JhY2tlbmRf YmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0YXRpYyBpbnQgYW1kZ3B1X3R0 bV9iYWNrZW5kX2JpbmQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+PiAg IHsKPj4gQEAgLTEyMzgsNyArMTIzOCw3IEBAIGludCBhbWRncHVfdHRtX3JlY292ZXJfZ2FydChz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibykKPj4gICAgKiBDYWxsZWQgYnkgdHRtX3R0X3Vu YmluZCgpIG9uIGJlaGFsZiBvZiB0dG1fYm9fbW92ZV90dG0oKSBhbmQKPj4gICAgKiB0dG1fdHRf ZGVzdHJveSgpLgo+PiAgICAqLwo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV9iYWNrZW5kX3Vu YmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0YXRpYyB2b2lkIGFtZGdwdV90 dG1fYmFja2VuZF91bmJpbmQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ ICAgICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJk ZXYpOwo+PiBAQCAtMTI2Myw3ICsxMjYzLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV9iYWNr ZW5kX3VuYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgZ3R0LT5i b3VuZCA9IGZhbHNlOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIGFtZGdwdV90dG1fYmFja2Vu ZF9kZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQgYW1k Z3B1X3R0bV9iYWNrZW5kX2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3R0bV90dCAqZ3R0ID0gKHZvaWQgKil0dG07 Cj4+IEBAIC0xMzE2LDcgKzEzMTYsNyBAQCBzdGF0aWMgc3RydWN0IHR0bV90dCAqYW1kZ3B1X3R0 bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgKiBNYXAgdGhl IHBhZ2VzIG9mIGEgdHRtX3R0IG9iamVjdCB0byBhbiBhZGRyZXNzIHNwYWNlIHZpc2libGUKPj4g ICAgKiB0byB0aGUgdW5kZXJseWluZyBkZXZpY2UuCj4+ICAgICovCj4+IC1zdGF0aWMgaW50IGFt ZGdwdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0 aWMgaW50IGFtZGdwdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtLAo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eCAqY3R4KQo+PiAgIHsKPj4gQEAgLTEzNzEsNyArMTM3MSw3IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgKiBV bm1hcHMgcGFnZXMgb2YgYSB0dG1fdHQgb2JqZWN0IGZyb20gdGhlIGRldmljZSBhZGRyZXNzIHNw YWNlIGFuZAo+PiAgICAqIHVucG9wdWxhdGVzIHRoZSBwYWdlIGFycmF5IGJhY2tpbmcgaXQuCj4+ ICAgICovCj4+IC1zdGF0aWMgdm9pZCBhbWRncHVfdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gK3N0YXRpYyB2b2lkIGFt ZGdwdV90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0 bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IGFtZGdwdV90dG1fdHQgKmd0dCA9 ICh2b2lkICopdHRtOwo+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldjsKPj4g QEAgLTE2OTcsNyArMTY5Nyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3R0bV9hY2Nlc3NfbWVtb3J5 KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgIHJldHVybiByZXQ7Cj4+ ICAgfQo+Pgo+PiAtc3RhdGljIHN0cnVjdCB0dG1fYm9fZHJpdmVyIGFtZGdwdV9ib19kcml2ZXIg PSB7Cj4+ICtzdGF0aWMgc3RydWN0IHR0bV9kZXZpY2VfZnVuY3MgYW1kZ3B1X2JvX2RyaXZlciA9 IHsKPj4gICAgICAgICAgLnR0bV90dF9jcmVhdGUgPSAmYW1kZ3B1X3R0bV90dF9jcmVhdGUsCj4+ ICAgICAgICAgIC50dG1fdHRfcG9wdWxhdGUgPSAmYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZSwKPj4g ICAgICAgICAgLnR0bV90dF91bnBvcHVsYXRlID0gJmFtZGdwdV90dG1fdHRfdW5wb3B1bGF0ZSwK Pj4gQEAgLTE4ODEsNyArMTg4MSw3IEBAIGludCBhbWRncHVfdHRtX2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCj4+ICAgICAgICAgIG11dGV4X2luaXQoJmFkZXYtPm1tYW4uZ3R0X3dp bmRvd19sb2NrKTsKPj4KPj4gICAgICAgICAgLyogTm8gb3RoZXJzIHVzZXIgb2YgYWRkcmVzcyBz cGFjZSBzbyBzZXQgaXQgdG8gMCAqLwo+PiAtICAgICAgIHIgPSB0dG1fYm9fZGV2aWNlX2luaXQo JmFkZXYtPm1tYW4uYmRldiwKPj4gKyAgICAgICByID0gdHRtX2RldmljZV9pbml0KCZhZGV2LT5t bWFuLmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFtZGdwdV9ib19k cml2ZXIsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRldl90b19kcm0oYWRl diktPmFub25faW5vZGUtPmlfbWFwcGluZywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhZGV2X3RvX2RybShhZGV2KS0+dm1hX29mZnNldF9tYW5hZ2VyLAo+PiBAQCAtMjAzNiw3 ICsyMDM2LDcgQEAgdm9pZCBhbWRncHVfdHRtX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCj4+ICAgICAgICAgIHR0bV9yYW5nZV9tYW5fZmluaSgmYWRldi0+bW1hbi5iZGV2LCBBTURH UFVfUExfR0RTKTsKPj4gICAgICAgICAgdHRtX3JhbmdlX21hbl9maW5pKCZhZGV2LT5tbWFuLmJk ZXYsIEFNREdQVV9QTF9HV1MpOwo+PiAgICAgICAgICB0dG1fcmFuZ2VfbWFuX2ZpbmkoJmFkZXYt Pm1tYW4uYmRldiwgQU1ER1BVX1BMX09BKTsKPj4gLSAgICAgICB0dG1fYm9fZGV2aWNlX3JlbGVh c2UoJmFkZXYtPm1tYW4uYmRldik7Cj4+ICsgICAgICAgdHRtX2RldmljZV9yZWxlYXNlKCZhZGV2 LT5tbWFuLmJkZXYpOwo+PiAgICAgICAgICBhZGV2LT5tbWFuLmluaXRpYWxpemVkID0gZmFsc2U7 Cj4+ICAgICAgICAgIERSTV9JTkZPKCJhbWRncHU6IHR0bSBmaW5hbGl6ZWRcbiIpOwo+PiAgIH0K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+PiBpbmRleCBhODc5NTFi MmYwNmQuLmU1ZDYxMjQxNWVmZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3R0bS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV90dG0uaAo+PiBAQCAtNTMsNyArNTMsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2d0dF9tZ3Igewo+ PiAgIH07Cj4+Cj4+ICAgc3RydWN0IGFtZGdwdV9tbWFuIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRt X2JvX2RldmljZSAgICAgICAgICAgIGJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2Ug ICAgICAgICAgICAgICBiZGV2Owo+PiAgICAgICAgICBib29sICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1lbV9nbG9iYWxfcmVmZXJlbmNlZDsKPj4gICAgICAgICAgYm9vbCAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbml0aWFsaXplZDsKPj4gICAgICAgICAgdm9pZCBfX2lvbWVtICAg ICAgICAgICAgICAgICAgICAqYXBlcl9iYXNlX2thZGRyOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdm0uYwo+PiBpbmRleCAzZTYyNDM2MjMwODIuLmRmYmI5YjAyNTY1NCAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4gQEAgLTYzOCwxNSAr NjM4LDE1IEBAIHZvaWQgYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCj4+ICAgICAgICAgIHN0cnVjdCBhbWRncHVfdm1fYm9fYmFzZSAqYm9fYmFz ZTsKPj4KPj4gICAgICAgICAgaWYgKHZtLT5idWxrX21vdmVhYmxlKSB7Cj4+IC0gICAgICAgICAg ICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAgICAgICAgICAgICAg IHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICAgICAgICAgIHR0bV9i b19idWxrX21vdmVfbHJ1X3RhaWwoJnZtLT5scnVfYnVsa19tb3ZlKTsKPj4gLSAgICAgICAgICAg ICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgICAgICAg ICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICAgICAgICAgIHJl dHVybjsKPj4gICAgICAgICAgfQo+Pgo+PiAgICAgICAgICBtZW1zZXQoJnZtLT5scnVfYnVsa19t b3ZlLCAwLCBzaXplb2Yodm0tPmxydV9idWxrX21vdmUpKTsKPj4KPj4gLSAgICAgICBzcGluX2xv Y2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAgICAgICBzcGluX2xvY2soJnR0bV9nbG9i LmxydV9sb2NrKTsKPj4gICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShib19iYXNlLCAmdm0t PmlkbGUsIHZtX3N0YXR1cykgewo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfYm8g KmJvID0gYm9fYmFzZS0+Ym87Cj4+Cj4+IEBAIC02NTgsNyArNjU4LDcgQEAgdm9pZCBhbWRncHVf dm1fbW92ZV90b19scnVfdGFpbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+c2hhZG93LT50 Ym8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm dm0tPmxydV9idWxrX21vdmUpOwo+PiAgICAgICAgICB9Cj4+IC0gICAgICAgc3Bpbl91bmxvY2so JnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2Iu bHJ1X2xvY2spOwo+Pgo+PiAgICAgICAgICB2bS0+YnVsa19tb3ZlYWJsZSA9IHRydWU7Cj4+ICAg fQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKPj4gaW5kZXggYjljMGVhNzIw ZWZkLi5mN2EwMjcxMjM5NzUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2Vt X3ZyYW1faGVscGVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxw ZXIuYwo+PiBAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpk cm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgICAgICAgIHN0 cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87Cj4+ICAgICAgICAgIHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqZ2VtOwo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSA9IGRldi0+ dnJhbV9tbTsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldjsKPj4gKyAgICAg ICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldjsKPj4gICAgICAgICAgaW50IHJldDsKPj4gICAgICAg ICAgc2l6ZV90IGFjY19zaXplOwo+Pgo+PiBAQCAtNTU1LDcgKzU1NSw3IEBAIGludCBkcm1fZ2Vt X3ZyYW1fZmlsbF9jcmVhdGVfZHVtYihzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4+ICAgRVhQT1JU X1NZTUJPTChkcm1fZ2VtX3ZyYW1fZmlsbF9jcmVhdGVfZHVtYik7Cj4+Cj4+ICAgLyoKPj4gLSAq IEhlbHBlcnMgZm9yIHN0cnVjdCB0dG1fYm9fZHJpdmVyCj4+ICsgKiBIZWxwZXJzIGZvciBzdHJ1 Y3QgdHRtX2RldmljZV9mdW5jcwo+PiAgICAqLwo+Pgo+PiAgIHN0YXRpYyBib29sIGRybV9pc19n ZW1fdnJhbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiBAQCAtODg2LDcgKzg4Niw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MgZHJtX2dlbV92cmFt X29iamVjdF9mdW5jcyA9IHsKPj4gICAgKiBUVE0gVFQKPj4gICAgKi8KPj4KPj4gLXN0YXRpYyB2 b2lkIGJvX2RyaXZlcl90dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwg c3RydWN0IHR0bV90dCAqdHQpCj4+ICtzdGF0aWMgdm9pZCBib19kcml2ZXJfdHRtX3R0X2Rlc3Ry b3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0KQo+PiAgIHsKPj4g ICAgICAgICAgdHRtX3R0X2Rlc3Ryb3lfY29tbW9uKGJkZXYsIHR0KTsKPj4gICAgICAgICAgdHRt X3R0X2ZpbmkodHQpOwo+PiBAQCAtOTQ3LDcgKzk0Nyw3IEBAIHN0YXRpYyB2b2lkIGJvX2RyaXZl cl9tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICBk cm1fZ2VtX3ZyYW1fYm9fZHJpdmVyX21vdmVfbm90aWZ5KGdibywgZXZpY3QsIG5ld19tZW0pOwo+ PiAgIH0KPj4KPj4gLXN0YXRpYyBpbnQgYm9fZHJpdmVyX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIGludCBib19kcml2ZXJfaW9fbWVtX3Jlc2Vy dmUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICAgewo+PiAgICAgICAgICBz dHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSA9IGRybV92cmFtX21tX29mX2JkZXYoYmRldik7Cj4+IEBA IC05NjcsNyArOTY3LDcgQEAgc3RhdGljIGludCBib19kcml2ZXJfaW9fbWVtX3Jlc2VydmUoc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4K Pj4gLXN0YXRpYyBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBib19kcml2ZXIgPSB7Cj4+ICtzdGF0aWMg c3RydWN0IHR0bV9kZXZpY2VfZnVuY3MgYm9fZHJpdmVyID0gewo+PiAgICAgICAgICAudHRtX3R0 X2NyZWF0ZSA9IGJvX2RyaXZlcl90dG1fdHRfY3JlYXRlLAo+PiAgICAgICAgICAudHRtX3R0X2Rl c3Ryb3kgPSBib19kcml2ZXJfdHRtX3R0X2Rlc3Ryb3ksCj4+ICAgICAgICAgIC5ldmljdGlvbl92 YWx1YWJsZSA9IHR0bV9ib19ldmljdGlvbl92YWx1YWJsZSwKPj4gQEAgLTEwMTcsNyArMTAxNyw3 IEBAIHN0YXRpYyBpbnQgZHJtX3ZyYW1fbW1faW5pdChzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSwg c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAgICAgICAgdm1tLT52cmFtX2Jhc2UgPSB2cmFt X2Jhc2U7Cj4+ICAgICAgICAgIHZtbS0+dnJhbV9zaXplID0gdnJhbV9zaXplOwo+Pgo+PiAtICAg ICAgIHJldCA9IHR0bV9ib19kZXZpY2VfaW5pdCgmdm1tLT5iZGV2LCAmYm9fZHJpdmVyLAo+PiAr ICAgICAgIHJldCA9IHR0bV9kZXZpY2VfaW5pdCgmdm1tLT5iZGV2LCAmYm9fZHJpdmVyLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5hbm9uX2lub2RlLT5pX21hcHBp bmcsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPnZtYV9vZmZzZXRf bWFuYWdlciwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOwo+PiBA QCAtMTAzNSw3ICsxMDM1LDcgQEAgc3RhdGljIGludCBkcm1fdnJhbV9tbV9pbml0KHN0cnVjdCBk cm1fdnJhbV9tbSAqdm1tLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgIHN0YXRpYyB2b2lk IGRybV92cmFtX21tX2NsZWFudXAoc3RydWN0IGRybV92cmFtX21tICp2bW0pCj4+ICAgewo+PiAg ICAgICAgICB0dG1fcmFuZ2VfbWFuX2ZpbmkoJnZtbS0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+PiAt ICAgICAgIHR0bV9ib19kZXZpY2VfcmVsZWFzZSgmdm1tLT5iZGV2KTsKPj4gKyAgICAgICB0dG1f ZGV2aWNlX3JlbGVhc2UoJnZtbS0+YmRldik7Cj4+ICAgfQo+Pgo+PiAgIC8qCj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4gaW5kZXggYjM3ZGZkMTJjN2I5Li45MTJiYzMyMDRj NGUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4gQEAgLTQ0LDcg KzQ0LDcgQEAKPj4gICAjaW5jbHVkZSA8bnZpZi9pZjUwMGIuaD4KPj4gICAjaW5jbHVkZSA8bnZp Zi9pZjkwMGIuaD4KPj4KPj4gLXN0YXRpYyBpbnQgbm91dmVhdV90dG1fdHRfYmluZChzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtLAo+PiArc3RhdGljIGludCBu b3V2ZWF1X3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0 ICp0dG0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNv dXJjZSAqcmVnKTsKPj4KPj4gICAvKgo+PiBAQCAtNjc0LDcgKzY3NCw3IEBAIG5vdXZlYXVfdHRt X3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCB1aW50MzJfdCBwYWdlX2Zs YWdzKQo+PiAgIH0KPj4KPj4gICBzdGF0aWMgaW50Cj4+IC1ub3V2ZWF1X3R0bV90dF9iaW5kKHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+ICtub3V2ZWF1 X3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0s Cj4+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZykKPj4gICB7 Cj4+ICAgI2lmIElTX0VOQUJMRUQoQ09ORklHX0FHUCkKPj4gQEAgLTY5MCw3ICs2OTAsNyBAQCBu b3V2ZWF1X3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0sCj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkCj4+IC1ub3V2ZWF1X3R0bV90dF91 bmJpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4g K25vdXZlYXVfdHRtX3R0X3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0 bV90dCAqdHRtKQo+PiAgIHsKPj4gICAjaWYgSVNfRU5BQkxFRChDT05GSUdfQUdQKQo+PiAgICAg ICAgICBzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfYmRldihiZGV2KTsKPj4gQEAg LTExMDEsNyArMTEwMSw3IEBAIG5vdXZlYXVfdHRtX2lvX21lbV9mcmVlX2xvY2tlZChzdHJ1Y3Qg bm91dmVhdV9kcm0gKmRybSwKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGludAo+PiAtbm91dmVhdV90 dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f cmVzb3VyY2UgKnJlZykKPj4gK25vdXZlYXVfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1f ZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4+ICAgewo+PiAgICAgICAg ICBzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfYmRldihiZGV2KTsKPj4gICAgICAg ICAgc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSBudnh4X2RldmljZSgmZHJtLT5jbGllbnQu ZGV2aWNlKTsKPj4gQEAgLTEyMTAsNyArMTIxMCw3IEBAIG5vdXZlYXVfdHRtX2lvX21lbV9yZXNl cnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcp Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkCj4+IC1ub3V2ZWF1X3R0bV9pb19tZW1fZnJlZShz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnKQo+PiAr bm91dmVhdV90dG1faW9fbWVtX2ZyZWUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fcmVzb3VyY2UgKnJlZykKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X2RybSAq ZHJtID0gbm91dmVhdV9iZGV2KGJkZXYpOwo+Pgo+PiBAQCAtMTI3MCw3ICsxMjcwLDcgQEAgdm1f ZmF1bHRfdCBub3V2ZWF1X3R0bV9mYXVsdF9yZXNlcnZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvKQo+PiAgIH0KPj4KPj4gICBzdGF0aWMgaW50Cj4+IC1ub3V2ZWF1X3R0bV90 dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK25vdXZlYXVfdHRtX3R0 X3BvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkK Pj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1hID0gKHZvaWQgKil0 dG07Cj4+IEBAIC0xMzA3LDcgKzEzMDcsNyBAQCBub3V2ZWF1X3R0bV90dF9wb3B1bGF0ZShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIHZvaWQKPj4gLW5v dXZlYXVfdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtu b3V2ZWF1X3R0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICAg ICAgICBzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtX2RtYSA9ICh2b2lkICopdHRtOwo+PiBAQCAtMTMz OSw3ICsxMzM5LDcgQEAgbm91dmVhdV90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIHZvaWQKPj4gLW5vdXZlYXVfdHRtX3R0 X2Rlc3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtub3V2ZWF1X3R0bV90dF9k ZXN0cm95KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19B R1ApCj4+IEBAIC0xMzY1LDcgKzEzNjUsNyBAQCBub3V2ZWF1X2JvX2ZlbmNlKHN0cnVjdCBub3V2 ZWF1X2JvICpudmJvLCBzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UsIGJvb2wgZXhjbAo+PiAg ICAgICAgICAgICAgICAgIGRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgJmZlbmNlLT5i YXNlKTsKPj4gICB9Cj4+Cj4+IC1zdHJ1Y3QgdHRtX2JvX2RyaXZlciBub3V2ZWF1X2JvX2RyaXZl ciA9IHsKPj4gK3N0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIG5vdXZlYXVfYm9fZHJpdmVyID0gewo+ PiAgICAgICAgICAudHRtX3R0X2NyZWF0ZSA9ICZub3V2ZWF1X3R0bV90dF9jcmVhdGUsCj4+ICAg ICAgICAgIC50dG1fdHRfcG9wdWxhdGUgPSAmbm91dmVhdV90dG1fdHRfcG9wdWxhdGUsCj4+ICAg ICAgICAgIC50dG1fdHRfdW5wb3B1bGF0ZSA9ICZub3V2ZWF1X3R0bV90dF91bnBvcHVsYXRlLAo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oCj4+IGluZGV4IDY0MWVmNjI5OGEwZS4u MmZlZTdkNTBlZjA5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2JvLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oCj4+ IEBAIC03MCw3ICs3MCw3IEBAIG5vdXZlYXVfYm9fcmVmKHN0cnVjdCBub3V2ZWF1X2JvICpyZWYs IHN0cnVjdCBub3V2ZWF1X2JvICoqcG52Ym8pCj4+ICAgICAgICAgIHJldHVybiAwOwo+PiAgIH0K Pj4KPj4gLWV4dGVybiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBub3V2ZWF1X2JvX2RyaXZlcjsKPj4g K2V4dGVybiBzdHJ1Y3QgdHRtX2RldmljZV9mdW5jcyBub3V2ZWF1X2JvX2RyaXZlcjsKPj4KPj4g ICB2b2lkIG5vdXZlYXVfYm9fbW92ZV9pbml0KHN0cnVjdCBub3V2ZWF1X2RybSAqKTsKPj4gICBz dHJ1Y3Qgbm91dmVhdV9ibyAqbm91dmVhdV9ib19hbGxvYyhzdHJ1Y3Qgbm91dmVhdV9jbGkgKiwg dTY0ICpzaXplLCBpbnQgKmFsaWduLAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2 LmgKPj4gaW5kZXggYjgwMjU1MDdhOWU0Li4wY2RlMTYyMTFlNDAgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaAo+PiBAQCAtMTUzLDcgKzE1Myw3IEBAIHN0cnVjdCBu b3V2ZWF1X2RybSB7Cj4+Cj4+ICAgICAgICAgIC8qIFRUTSBpbnRlcmZhY2Ugc3VwcG9ydCAqLwo+ PiAgICAgICAgICBzdHJ1Y3Qgewo+PiAtICAgICAgICAgICAgICAgc3RydWN0IHR0bV9ib19kZXZp Y2UgYmRldjsKPj4gKyAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlIGJkZXY7Cj4+ICAg ICAgICAgICAgICAgICAgYXRvbWljX3QgdmFsaWRhdGVfc2VxdWVuY2U7Cj4+ICAgICAgICAgICAg ICAgICAgaW50ICgqbW92ZSkoc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqLAo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqLAo+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zZ2RtYS5jIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9zZ2RtYS5jCj4+IGluZGV4IGNkNmZkZWJhZTc5NS4uMDQw MGJiNDNmYWM1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X3NnZG1hLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zZ2RtYS5j Cj4+IEBAIC0xNiw3ICsxNiw3IEBAIHN0cnVjdCBub3V2ZWF1X3NnZG1hX2JlIHsKPj4gICB9Owo+ Pgo+PiAgIHZvaWQKPj4gLW5vdXZlYXVfc2dkbWFfZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiArbm91dmVhdV9zZ2RtYV9kZXN0cm95KHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICAg ICAgICBzdHJ1Y3Qgbm91dmVhdV9zZ2RtYV9iZSAqbnZiZSA9IChzdHJ1Y3Qgbm91dmVhdV9zZ2Rt YV9iZSAqKXR0bTsKPj4KPj4gQEAgLTI5LDcgKzI5LDcgQEAgbm91dmVhdV9zZ2RtYV9kZXN0cm95 KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgfQo+ Pgo+PiAgIGludAo+PiAtbm91dmVhdV9zZ2RtYV9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZykKPj4gK25v dXZlYXVfc2dkbWFfYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAq dHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qg bm91dmVhdV9zZ2RtYV9iZSAqbnZiZSA9IChzdHJ1Y3Qgbm91dmVhdV9zZ2RtYV9iZSAqKXR0bTsK Pj4gICAgICAgICAgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2JkZXYoYmRldik7 Cj4+IEBAIC01Niw3ICs1Niw3IEBAIG5vdXZlYXVfc2dkbWFfYmluZChzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3JlCj4+ICAgfQo+Pgo+ PiAgIHZvaWQKPj4gLW5vdXZlYXVfc2dkbWFfdW5iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICtub3V2ZWF1X3NnZG1hX3VuYmluZChzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAg c3RydWN0IG5vdXZlYXVfc2dkbWFfYmUgKm52YmUgPSAoc3RydWN0IG5vdXZlYXVfc2dkbWFfYmUg Kil0dG07Cj4+ICAgICAgICAgIGlmIChudmJlLT5tZW0pIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X3R0bS5jCj4+IGluZGV4IGVkZjNiYjg5YTQ3Zi4uMmZiMTI3ZGEwMjA4IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmMKPj4gQEAgLTMxNSw3ICszMTUs NyBAQCBub3V2ZWF1X3R0bV9pbml0KHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQo+PiAgICAgICAg ICAgICAgICAgIGRybS0+YWdwLmNtYSA9IHBjaS0+YWdwLmNtYTsKPj4gICAgICAgICAgfQo+Pgo+ PiAtICAgICAgIHJldCA9IHR0bV9ib19kZXZpY2VfaW5pdCgmZHJtLT50dG0uYmRldiwKPj4gKyAg ICAgICByZXQgPSB0dG1fZGV2aWNlX2luaXQoJmRybS0+dHRtLmJkZXYsCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm5vdXZlYXVfYm9fZHJpdmVyLAo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+dm1hX29mZnNldF9tYW5hZ2Vy LAo+PiBAQCAtMzY5LDcgKzM2OSw3IEBAIG5vdXZlYXVfdHRtX2Zpbmkoc3RydWN0IG5vdXZlYXVf ZHJtICpkcm0pCj4+ICAgICAgICAgIG5vdXZlYXVfdHRtX2ZpbmlfdnJhbShkcm0pOwo+PiAgICAg ICAgICBub3V2ZWF1X3R0bV9maW5pX2d0dChkcm0pOwo+Pgo+PiAtICAgICAgIHR0bV9ib19kZXZp Y2VfcmVsZWFzZSgmZHJtLT50dG0uYmRldik7Cj4+ICsgICAgICAgdHRtX2RldmljZV9yZWxlYXNl KCZkcm0tPnR0bS5iZGV2KTsKPj4KPj4gICAgICAgICAgYXJjaF9waHlzX3djX2RlbChkcm0tPnR0 bS5tdHJyKTsKPj4gICAgICAgICAgZHJtLT50dG0ubXRyciA9IDA7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5oIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV90dG0uaAo+PiBpbmRleCA2OTU1MjA0OWJiOTYuLmRiZjZkYzIzOGVmZCAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0uaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5oCj4+IEBAIC0zLDcgKzMs NyBAQAo+PiAgICNkZWZpbmUgX19OT1VWRUFVX1RUTV9IX18KPj4KPj4gICBzdGF0aWMgaW5saW5l IHN0cnVjdCBub3V2ZWF1X2RybSAqCj4+IC1ub3V2ZWF1X2JkZXYoc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkKQo+PiArbm91dmVhdV9iZGV2KHN0cnVjdCB0dG1fZGV2aWNlICpiZCkKPj4gICB7Cj4+ ICAgICAgICAgIHJldHVybiBjb250YWluZXJfb2YoYmQsIHN0cnVjdCBub3V2ZWF1X2RybSwgdHRt LmJkZXYpOwo+PiAgIH0KPj4gQEAgLTIyLDcgKzIyLDcgQEAgaW50ICBub3V2ZWF1X3R0bV9tbWFw KHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKPj4gICBpbnQgIG5vdXZl YXVfdHRtX2dsb2JhbF9pbml0KHN0cnVjdCBub3V2ZWF1X2RybSAqKTsKPj4gICB2b2lkIG5vdXZl YXVfdHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCBub3V2ZWF1X2RybSAqKTsKPj4KPj4gLWludCBu b3V2ZWF1X3NnZG1hX2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f dHQgKnR0bSwgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnKTsKPj4gLXZvaWQgbm91dmVhdV9zZ2Rt YV91bmJpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7 Cj4+IC12b2lkIG5vdXZlYXVfc2dkbWFfZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4gK2ludCBub3V2ZWF1X3NnZG1hX2JpbmQoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9yZXNvdXJj ZSAqcmVnKTsKPj4gK3ZvaWQgbm91dmVhdV9zZ2RtYV91bmJpbmQoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICt2b2lkIG5vdXZlYXVfc2dkbWFfZGVzdHJv eShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4gICAjZW5k aWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKPj4gaW5kZXggMzYwMmU4YjM0MTg5Li43OGMwOTY5ZTA0 MDMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCj4+IEBAIC0xMjMsNyArMTIzLDcgQEAgc3Ry dWN0IHF4bF9vdXRwdXQgewo+PiAgICNkZWZpbmUgZHJtX2VuY29kZXJfdG9fcXhsX291dHB1dCh4 KSBjb250YWluZXJfb2YoeCwgc3RydWN0IHF4bF9vdXRwdXQsIGVuYykKPj4KPj4gICBzdHJ1Y3Qg cXhsX21tYW4gewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICAgICAgICAgICAgYmRl djsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAgICAgICAgICAgICAgIGJkZXY7Cj4+ICAg fTsKPj4KPj4gICBzdHJ1Y3QgcXhsX21lbXNsb3Qgewo+PiBAQCAtMzQ4LDcgKzM0OCw3IEBAIGlu dCBxeGxfbW9kZV9kdW1iX21tYXAoc3RydWN0IGRybV9maWxlICpmaWxwLAo+PiAgIC8qIHF4bCB0 dG0gKi8KPj4gICBpbnQgcXhsX3R0bV9pbml0KHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2KTsKPj4g ICB2b2lkIHF4bF90dG1fZmluaShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldik7Cj4+IC1pbnQgcXhs X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2ludCBx eGxfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPj4KPj4gICAv KiBxeGwgaW1hZ2UgKi8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3Jl bGVhc2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYwo+PiBpbmRleCBlNzVl MzY0NjU1YjguLjlhOTBmNGUzM2YwOCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfcmVsZWFzZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2Uu Ywo+PiBAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQgcXhsX3JlbGVhc2VfdW5tYXAoc3RydWN0IHF4 bF9kZXZpY2UgKnFkZXYsCj4+ICAgdm9pZCBxeGxfcmVsZWFzZV9mZW5jZV9idWZmZXJfb2JqZWN0 cyhzdHJ1Y3QgcXhsX3JlbGVhc2UgKnJlbGVhc2UpCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvOwo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2Owo+PiAgICAgICAgICBzdHJ1 Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqZW50cnk7Cj4+ICAgICAgICAgIHN0cnVjdCBxeGxfZGV2 aWNlICpxZGV2Owo+Pgo+PiBAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgcXhsX3JlbGVhc2VfZmVu Y2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHF4bF9yZWxlYXNlICpyZWxlYXNlKQo+PiAgICAgICAg ICAgICAgICAgICAgICAgICByZWxlYXNlLT5pZCB8IDB4ZjAwMDAwMDAsIHJlbGVhc2UtPmJhc2Uu c2Vxbm8pOwo+PiAgICAgICAgICB0cmFjZV9kbWFfZmVuY2VfZW1pdCgmcmVsZWFzZS0+YmFzZSk7 Cj4+Cj4+IC0gICAgICAgc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAg ICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Cj4+ICAgICAgICAgIGxpc3RfZm9y X2VhY2hfZW50cnkoZW50cnksICZyZWxlYXNlLT5ib3MsIGhlYWQpIHsKPj4gICAgICAgICAgICAg ICAgICBibyA9IGVudHJ5LT5ibzsKPj4gQEAgLTQ1OSw3ICs0NTksNyBAQCB2b2lkIHF4bF9yZWxl YXNlX2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBxeGxfcmVsZWFzZSAqcmVsZWFzZSkKPj4g ICAgICAgICAgICAgICAgICB0dG1fYm9fbW92ZV90b19scnVfdGFpbChibywgTlVMTCk7Cj4+ICAg ICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+PiAgICAgICAg ICB9Cj4+IC0gICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAg ICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICB3d19hY3F1 aXJlX2ZpbmkoJnJlbGVhc2UtPnRpY2tldCk7Cj4+ICAgfQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0u Ywo+PiBpbmRleCBkNTM1ZTgzNmJlNzIuLjliNzA3YWY3ZGZkMCAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9x eGxfdHRtLmMKPj4gQEAgLTM4LDcgKzM4LDcgQEAKPj4gICAjaW5jbHVkZSAicXhsX2Rydi5oIgo+ PiAgICNpbmNsdWRlICJxeGxfb2JqZWN0LmgiCj4+Cj4+IC1zdGF0aWMgc3RydWN0IHF4bF9kZXZp Y2UgKnF4bF9nZXRfcWRldihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPj4gK3N0YXRpYyBz dHJ1Y3QgcXhsX2RldmljZSAqcXhsX2dldF9xZGV2KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KQo+ PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHF4bF9tbWFuICptbWFuOwo+PiAgICAgICAgICBzdHJ1 Y3QgcXhsX2RldmljZSAqcWRldjsKPj4gQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHZvaWQgcXhs X2V2aWN0X2ZsYWdzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICpw bGFjZW1lbnQgPSBxYm8tPnBsYWNlbWVudDsKPj4gICB9Cj4+Cj4+IC1pbnQgcXhsX3R0bV9pb19t ZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2ludCBxeGxfdHRtX2lv X21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+PiAgIHsKPj4gICAgICAgICAg c3RydWN0IHF4bF9kZXZpY2UgKnFkZXYgPSBxeGxfZ2V0X3FkZXYoYmRldik7Cj4+IEBAIC0xMDYs NyArMTA2LDcgQEAgc3RydWN0IHF4bF90dG1fdHQgewo+PiAgICAgICAgICB1NjQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldDsKPj4gICB9Owo+Pgo+PiAtc3RhdGljIGludCBxeGxf dHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0YXRpYyBp bnQgcXhsX3R0bV9iYWNrZW5kX2JpbmQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+ PiAgIHsKPj4gQEAgLTEyMSwxMyArMTIxLDEzIEBAIHN0YXRpYyBpbnQgcXhsX3R0bV9iYWNrZW5k X2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgIHJldHVybiAtMTsK Pj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCBxeGxfdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQgcXhsX3R0bV9iYWNrZW5kX3VuYmlu ZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAgLyogTm90IGlt cGxlbWVudGVkICovCj4+ICAgfQo+Pgo+PiAtc3RhdGljIHZvaWQgcXhsX3R0bV9iYWNrZW5kX2Rl c3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCBxeGxfdHRt X2JhY2tlbmRfZGVzdHJveShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ICAg ICAgICAgIHN0cnVjdCBxeGxfdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKPj4gQEAgLTE4OSw3 ICsxODksNyBAQCBzdGF0aWMgdm9pZCBxeGxfYm9fbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICBxeGxfc3VyZmFjZV9ldmljdChxZGV2 LCBxYm8sIG5ld19tZW0gPyB0cnVlIDogZmFsc2UpOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyBzdHJ1 Y3QgdHRtX2JvX2RyaXZlciBxeGxfYm9fZHJpdmVyID0gewo+PiArc3RhdGljIHN0cnVjdCB0dG1f ZGV2aWNlX2Z1bmNzIHF4bF9ib19kcml2ZXIgPSB7Cj4+ICAgICAgICAgIC50dG1fdHRfY3JlYXRl ID0gJnF4bF90dG1fdHRfY3JlYXRlLAo+PiAgICAgICAgICAudHRtX3R0X2JpbmQgPSAmcXhsX3R0 bV9iYWNrZW5kX2JpbmQsCj4+ICAgICAgICAgIC50dG1fdHRfZGVzdHJveSA9ICZxeGxfdHRtX2Jh Y2tlbmRfZGVzdHJveSwKPj4gQEAgLTIxNCw3ICsyMTQsNyBAQCBpbnQgcXhsX3R0bV9pbml0KHN0 cnVjdCBxeGxfZGV2aWNlICpxZGV2KQo+PiAgICAgICAgICBpbnQgbnVtX2lvX3BhZ2VzOyAvKiAh PSByb20tPm51bV9pb19wYWdlcywgd2UgaW5jbHVkZSBzdXJmYWNlMCAqLwo+Pgo+PiAgICAgICAg ICAvKiBObyBvdGhlcnMgdXNlciBvZiBhZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCj4+ IC0gICAgICAgciA9IHR0bV9ib19kZXZpY2VfaW5pdCgmcWRldi0+bW1hbi5iZGV2LAo+PiArICAg ICAgIHIgPSB0dG1fZGV2aWNlX2luaXQoJnFkZXYtPm1tYW4uYmRldiwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcXhsX2JvX2RyaXZlciwKPj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBxZGV2LT5kZGV2LmFub25faW5vZGUtPmlfbWFwcGluZywKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBxZGV2LT5kZGV2LnZtYV9vZmZzZXRfbWFuYWdlciwK Pj4gQEAgLTI0OSw3ICsyNDksNyBAQCB2b2lkIHF4bF90dG1fZmluaShzdHJ1Y3QgcXhsX2Rldmlj ZSAqcWRldikKPj4gICB7Cj4+ICAgICAgICAgIHR0bV9yYW5nZV9tYW5fZmluaSgmcWRldi0+bW1h bi5iZGV2LCBUVE1fUExfVlJBTSk7Cj4+ICAgICAgICAgIHR0bV9yYW5nZV9tYW5fZmluaSgmcWRl di0+bW1hbi5iZGV2LCBUVE1fUExfUFJJVik7Cj4+IC0gICAgICAgdHRtX2JvX2RldmljZV9yZWxl YXNlKCZxZGV2LT5tbWFuLmJkZXYpOwo+PiArICAgICAgIHR0bV9kZXZpY2VfcmVsZWFzZSgmcWRl di0+bW1hbi5iZGV2KTsKPj4gICAgICAgICAgRFJNX0lORk8oInF4bDogdHRtIGZpbmFsaXplZFxu Iik7Cj4+ICAgfQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKPj4gaW5kZXggNWQ1NGJjY2Vi ZDRkLi43NzU1NzY0NzBlNzggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAo+PiBAQCAt NDUyLDcgKzQ1Miw3IEBAIHN0cnVjdCByYWRlb25fc3VyZmFjZV9yZWcgewo+PiAgICAqIFRUTS4K Pj4gICAgKi8KPj4gICBzdHJ1Y3QgcmFkZW9uX21tYW4gewo+PiAtICAgICAgIHN0cnVjdCB0dG1f Ym9fZGV2aWNlICAgICAgICAgICAgYmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAg ICAgICAgICAgICAgIGJkZXY7Cj4+ICAgICAgICAgIGJvb2wgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5pdGlhbGl6ZWQ7Cj4+Cj4+ICAgI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQo+ PiBAQCAtMjgxOSw3ICsyODE5LDcgQEAgZXh0ZXJuIGludCByYWRlb25fdHRtX3R0X3NldF91c2Vy cHRyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzKTsKPj4gICBleHRlcm4gYm9vbCByYWRlb25f dHRtX3R0X2hhc191c2VycHRyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0pOwo+PiAgIGV4dGVybiBib29sIHJhZGVvbl90dG1fdHRfaXNfcmVhZG9ubHkoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+IC1ib29sIHJh ZGVvbl90dG1fdHRfaXNfYm91bmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fdHQgKnR0bSk7Cj4+ICtib29sIHJhZGVvbl90dG1fdHRfaXNfYm91bmQoc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICAgZXh0ZXJuIHZvaWQgcmFkZW9u X3ZyYW1fbG9jYXRpb24oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25f bWMgKm1jLCB1NjQgYmFzZSk7Cj4+ICAgZXh0ZXJuIHZvaWQgcmFkZW9uX2d0dF9sb2NhdGlvbihz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9tYyAqbWMpOwo+PiAgIGV4 dGVybiBpbnQgcmFkZW9uX3Jlc3VtZV9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBy ZXN1bWUsIGJvb2wgZmJjb24pOwo+PiBAQCAtMjgyOSw3ICsyODI5LDcgQEAgZXh0ZXJuIHZvaWQg cmFkZW9uX3R0bV9zZXRfYWN0aXZlX3ZyYW1fc2l6ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwgdTY0IHNpemUKPj4gICBleHRlcm4gdm9pZCByYWRlb25fcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1 ZW5jZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHUzMiAqcmVnaXN0ZXJzLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdTMyIGFycmF5X3Np emUpOwo+PiAtc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJhZGVvbl9nZXRfcmRldihzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldik7Cj4+ICtzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmFkZW9uX2dldF9y ZGV2KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KTsKPj4KPj4gICAvKgo+PiAgICAqIHZtCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCj4+IGluZGV4IGQ2ZjQyZmJjODFmNC4uMzgzNWM5 NDU3YzA2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0u Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwo+PiBAQCAtNTYs MTEgKzU2LDExIEBACj4+ICAgc3RhdGljIGludCByYWRlb25fdHRtX2RlYnVnZnNfaW5pdChzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4+ICAgc3RhdGljIHZvaWQgcmFkZW9uX3R0bV9kZWJ1 Z2ZzX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+Pgo+PiAtc3RhdGljIGludCBy YWRlb25fdHRtX3R0X2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMg aW50IHJhZGVvbl90dG1fdHRfYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKmJvX21lbSk7Cj4+Cj4+ IC1zdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmFkZW9uX2dldF9yZGV2KHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2KQo+PiArc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJhZGVvbl9nZXRfcmRldihzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldikKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCByYWRlb25fbW1h biAqbW1hbjsKPj4gICAgICAgICAgc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXY7Cj4+IEBAIC0z NTEsNyArMzUxLDcgQEAgc3RhdGljIGludCByYWRlb25fYm9fbW92ZShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLCBib29sIGV2aWN0LAo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ Cj4+IC1zdGF0aWMgaW50IHJhZGVvbl90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPj4gK3N0YXRpYyBpbnQgcmFk ZW9uX3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0 bV9yZXNvdXJjZSAqbWVtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYgPSByYWRlb25fZ2V0X3JkZXYoYmRldik7Cj4+ICAgICAgICAgIHNpemVfdCBidXNfc2l6 ZSA9IChzaXplX3QpbWVtLT5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKPj4gQEAgLTQxOCw3ICs0 MTgsNyBAQCBzdHJ1Y3QgcmFkZW9uX3R0bV90dCB7Cj4+ICAgfTsKPj4KPj4gICAvKiBwcmVwYXJl IHRoZSBzZyB0YWJsZSB3aXRoIHRoZSB1c2VyIHBhZ2VzICovCj4+IC1zdGF0aWMgaW50IHJhZGVv bl90dG1fdHRfcGluX3VzZXJwdHIoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fdHQgKnR0bSkKPj4gK3N0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9waW5fdXNlcnB0cihzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAg ICAgc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSByYWRlb25fZ2V0X3JkZXYoYmRldik7Cj4+ ICAgICAgICAgIHN0cnVjdCByYWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKPj4gQEAg LTQ3OSw3ICs0NzksNyBAQCBzdGF0aWMgaW50IHJhZGVvbl90dG1fdHRfcGluX3VzZXJwdHIoc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKgo+PiAgICAgICAgICByZXR1 cm4gcjsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCByYWRlb25fdHRtX3R0X3VucGluX3VzZXJw dHIoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gK3N0 YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYgPSByYWRlb25fZ2V0X3JkZXYoYmRldik7Cj4+ICAgICAgICAgIHN0cnVj dCByYWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKPj4gQEAgLTUxNSw3ICs1MTUsNyBA QCBzdGF0aWMgYm9vbCByYWRlb25fdHRtX2JhY2tlbmRfaXNfYm91bmQoc3RydWN0IHR0bV90dCAq dHRtKQo+PiAgICAgICAgICByZXR1cm4gKGd0dC0+Ym91bmQpOwo+PiAgIH0KPj4KPj4gLXN0YXRp YyBpbnQgcmFkZW9uX3R0bV9iYWNrZW5kX2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+ICtzdGF0aWMgaW50IHJhZGVvbl90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X3R0ICp0dG0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fcmVzb3VyY2UgKmJvX21lbSkKPj4gICB7Cj4+IEBAIC01NTEsNyArNTUxLDcgQEAgc3RhdGlj IGludCByYWRlb25fdHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4gICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHZvaWQgcmFkZW9uX3R0 bV9iYWNrZW5kX3VuYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90 dCAqdHRtKQo+PiArc3RhdGljIHZvaWQgcmFkZW9uX3R0bV9iYWNrZW5kX3VuYmluZChzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAg c3RydWN0IHJhZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwo+PiAgICAgICAgICBzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldihiZGV2KTsKPj4gQEAgLTU2 Niw3ICs1NjYsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0Cj4+ICAgICAgICAgIGd0dC0+Ym91 bmQgPSBmYWxzZTsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCByYWRlb25fdHRtX2JhY2tlbmRf ZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+ PiArc3RhdGljIHZvaWQgcmFkZW9uX3R0bV9iYWNrZW5kX2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBy YWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKPj4KPj4gQEAgLTYyNyw3ICs2MjcsNyBA QCBzdGF0aWMgc3RydWN0IHJhZGVvbl90dG1fdHQgKnJhZGVvbl90dG1fdHRfdG9fZ3R0KHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAo+PiAgICAgICAgICByZXR1cm4gY29udGFpbmVyX29mKHR0 bSwgc3RydWN0IHJhZGVvbl90dG1fdHQsIHR0bS50dG0pOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyBp bnQgcmFkZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4g K3N0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0 dG0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4ICpjdHgpCj4+ICAgewo+PiBAQCAtNjY3LDcgKzY2Nyw3IEBAIHN0YXRpYyBpbnQg cmFkZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAg ICAgICAgcmV0dXJuIHR0bV9wb3B1bGF0ZV9hbmRfbWFwX3BhZ2VzKHJkZXYtPmRldiwgJmd0dC0+ dHRtLCBjdHgpOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5wb3B1 bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAr c3RhdGljIHZvaWQgcmFkZW9uX3R0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldihiZGV2KTsKPj4gICAgICAgICAgc3RydWN0 IHJhZGVvbl90dG1fdHQgKmd0dCA9IHJhZGVvbl90dG1fdHRfdG9fZ3R0KHJkZXYsIHR0bSk7Cj4+ IEBAIC03MTQsNyArNzE0LDcgQEAgaW50IHJhZGVvbl90dG1fdHRfc2V0X3VzZXJwdHIoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4+ICAgICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4KPj4g LWJvb2wgcmFkZW9uX3R0bV90dF9pc19ib3VuZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4gK2Jvb2wgcmFkZW9uX3R0bV90dF9pc19ib3VuZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAg ewo+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCj4+IEBAIC03MjUsNyArNzI1LDcgQEAg Ym9vbCByYWRlb25fdHRtX3R0X2lzX2JvdW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ PiAgICAgICAgICByZXR1cm4gcmFkZW9uX3R0bV9iYWNrZW5kX2lzX2JvdW5kKHR0bSk7Cj4+ICAg fQo+Pgo+PiAtc3RhdGljIGludCByYWRlb25fdHRtX3R0X2JpbmQoc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYsCj4+ICtzdGF0aWMgaW50IHJhZGVvbl90dG1fdHRfYmluZChzdHJ1Y3QgdHRtX2Rl dmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f dHQgKnR0bSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2UgKmJvX21lbSkKPj4gICB7Cj4+IEBAIC03NDMsNyArNzQzLDcgQEAgc3RhdGljIGludCBy YWRlb25fdHRtX3R0X2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAg IHJldHVybiByYWRlb25fdHRtX2JhY2tlbmRfYmluZChiZGV2LCB0dG0sIGJvX21lbSk7Cj4+ICAg fQo+Pgo+PiAtc3RhdGljIHZvaWQgcmFkZW9uX3R0bV90dF91bmJpbmQoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCByYWRlb25fdHRtX3R0X3VuYmluZChzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ICAgI2lmIElTX0VOQUJMRUQoQ09ORklHX0FHUCkK Pj4gQEAgLTc1Nyw3ICs3NTcsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fdHRtX3R0X3VuYmluZChz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgcmFkZW9uX3R0bV9iYWNrZW5k X3VuYmluZChiZGV2LCB0dG0pOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHJhZGVvbl90dG1f dHRfZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0YXRpYyB2b2lkIHJh ZGVvbl90dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAg ICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCj4+IEBAIC03OTUsNyArNzk1LDcgQEAgYm9vbCBy YWRlb25fdHRtX3R0X2lzX3JlYWRvbmx5KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+PiAg ICAgICAgICByZXR1cm4gISEoZ3R0LT51c2VyZmxhZ3MgJiBSQURFT05fR0VNX1VTRVJQVFJfUkVB RE9OTFkpOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyBzdHJ1Y3QgdHRtX2JvX2RyaXZlciByYWRlb25f Ym9fZHJpdmVyID0gewo+PiArc3RhdGljIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIHJhZGVvbl9i b19kcml2ZXIgPSB7Cj4+ICAgICAgICAgIC50dG1fdHRfY3JlYXRlID0gJnJhZGVvbl90dG1fdHRf Y3JlYXRlLAo+PiAgICAgICAgICAudHRtX3R0X3BvcHVsYXRlID0gJnJhZGVvbl90dG1fdHRfcG9w dWxhdGUsCj4+ICAgICAgICAgIC50dG1fdHRfdW5wb3B1bGF0ZSA9ICZyYWRlb25fdHRtX3R0X3Vu cG9wdWxhdGUsCj4+IEBAIC04MTUsNyArODE1LDcgQEAgaW50IHJhZGVvbl90dG1faW5pdChzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPj4gICAgICAgICAgaW50IHI7Cj4+Cj4+ICAgICAgICAg IC8qIE5vIG90aGVycyB1c2VyIG9mIGFkZHJlc3Mgc3BhY2Ugc28gc2V0IGl0IHRvIDAgKi8KPj4g LSAgICAgICByID0gdHRtX2JvX2RldmljZV9pbml0KCZyZGV2LT5tbWFuLmJkZXYsCj4+ICsgICAg ICAgciA9IHR0bV9kZXZpY2VfaW5pdCgmcmRldi0+bW1hbi5iZGV2LAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZyYWRlb25fYm9fZHJpdmVyLAo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJkZXYtPmRkZXYtPmFub25faW5vZGUtPmlfbWFwcGluZywKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZGV2LT5kZGV2LT52bWFfb2Zmc2V0X21hbmFn ZXIsCj4+IEBAIC04ODUsNyArODg1LDcgQEAgdm9pZCByYWRlb25fdHRtX2Zpbmkoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpCj4+ICAgICAgICAgIH0KPj4gICAgICAgICAgdHRtX3JhbmdlX21h bl9maW5pKCZyZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPj4gICAgICAgICAgdHRtX3Jh bmdlX21hbl9maW5pKCZyZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9UVCk7Cj4+IC0gICAgICAgdHRt X2JvX2RldmljZV9yZWxlYXNlKCZyZGV2LT5tbWFuLmJkZXYpOwo+PiArICAgICAgIHR0bV9kZXZp Y2VfcmVsZWFzZSgmcmRldi0+bW1hbi5iZGV2KTsKPj4gICAgICAgICAgcmFkZW9uX2dhcnRfZmlu aShyZGV2KTsKPj4gICAgICAgICAgcmRldi0+bW1hbi5pbml0aWFsaXplZCA9IGZhbHNlOwo+PiAg ICAgICAgICBEUk1fSU5GTygicmFkZW9uOiB0dG0gZmluYWxpemVkXG4iKTsKPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL01h a2VmaWxlCj4+IGluZGV4IDkwYzBkYTg4Y2M5OC4uN2E0NzRlODhkNDdlIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vTWFrZWZpbGUKPj4gQEAgLTUsNyArNSw3IEBACj4+ICAgdHRtLXkgOj0gdHRtX21lbW9yeS5v IHR0bV90dC5vIHR0bV9iby5vIFwKPj4gICAgICAgICAgdHRtX2JvX3V0aWwubyB0dG1fYm9fdm0u byB0dG1fbW9kdWxlLm8gXAo+PiAgICAgICAgICB0dG1fZXhlY2J1Zl91dGlsLm8gdHRtX3BhZ2Vf YWxsb2MubyB0dG1fcmFuZ2VfbWFuYWdlci5vIFwKPj4gLSAgICAgICB0dG1fcmVzb3VyY2Uubwo+ PiArICAgICAgIHR0bV9yZXNvdXJjZS5vIHR0bV9kZXZpY2Uubwo+PiAgIHR0bS0kKENPTkZJR19B R1ApICs9IHR0bV9hZ3BfYmFja2VuZC5vCj4+ICAgdHRtLSQoQ09ORklHX0RSTV9UVE1fRE1BX1BB R0VfUE9PTCkgKz0gdHRtX3BhZ2VfYWxsb2NfZG1hLm8KPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2FncF9iYWNrZW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9hZ3BfYmFja2VuZC5jCj4+IGluZGV4IDRmNzZjOTI4NzE1OS4uYjM4MmQ5MTQxNGExIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2FncF9iYWNrZW5kLmMKPj4gQEAgLTUxLDcgKzUxLDcg QEAgc3RydWN0IHR0bV9hZ3BfYmFja2VuZCB7Cj4+ICAgaW50IHR0bV9hZ3BfYmluZChzdHJ1Y3Qg dHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3VyY2UgKmJvX21lbSkKPj4gICB7Cj4+ICAgICAg ICAgIHN0cnVjdCB0dG1fYWdwX2JhY2tlbmQgKmFncF9iZSA9IGNvbnRhaW5lcl9vZih0dG0sIHN0 cnVjdCB0dG1fYWdwX2JhY2tlbmQsIHR0bSk7Cj4+IC0gICAgICAgc3RydWN0IHBhZ2UgKmR1bW15 X3JlYWRfcGFnZSA9IHR0bV9ib19nbG9iLmR1bW15X3JlYWRfcGFnZTsKPj4gKyAgICAgICBzdHJ1 Y3QgcGFnZSAqZHVtbXlfcmVhZF9wYWdlID0gdHRtX2dsb2IuZHVtbXlfcmVhZF9wYWdlOwo+PiAg ICAgICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUgPSBib19tZW0tPm1tX25vZGU7Cj4+ICAg ICAgICAgIHN0cnVjdCBhZ3BfbWVtb3J5ICptZW07Cj4+ICAgICAgICAgIGludCByZXQsIGNhY2hl ZCA9IHR0bS0+Y2FjaGluZyA9PSB0dG1fY2FjaGVkOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4gaW5k ZXggMmZlNGNiZWZkZTI4Li40MGQxYWM5MWM5YmYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+ PiBAQCAtNDMsMjEgKzQzLDYgQEAKPj4gICAjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+Cj4+ICAg I2luY2x1ZGUgPGxpbnV4L2RtYS1yZXN2Lmg+Cj4+Cj4+IC1zdGF0aWMgdm9pZCB0dG1fYm9fZ2xv YmFsX2tvYmpfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaik7Cj4+IC0KPj4gLS8qKgo+PiAt ICogdHRtX2dsb2JhbF9tdXRleCAtIHByb3RlY3RpbmcgdGhlIGdsb2JhbCBCTyBzdGF0ZQo+PiAt ICovCj4+IC1ERUZJTkVfTVVURVgodHRtX2dsb2JhbF9tdXRleCk7Cj4+IC11bnNpZ25lZCB0dG1f Ym9fZ2xvYl91c2VfY291bnQ7Cj4+IC1zdHJ1Y3QgdHRtX2JvX2dsb2JhbCB0dG1fYm9fZ2xvYjsK Pj4gLUVYUE9SVF9TWU1CT0wodHRtX2JvX2dsb2IpOwo+PiAtCj4+IC1zdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZSB0dG1fYm9fY291bnQgPSB7Cj4+IC0gICAgICAgLm5hbWUgPSAiYm9fY291bnQiLAo+ PiAtICAgICAgIC5tb2RlID0gU19JUlVHTwo+PiAtfTsKPj4gLQo+PiAgIC8qIGRlZmF1bHQgZGVz dHJ1Y3RvciAqLwo+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19kZWZhdWx0X2Rlc3Ryb3koc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICB7Cj4+IEBAIC04MywzNiArNjgsMTAgQEAgc3Rh dGljIHZvaWQgdHRtX2JvX21lbV9zcGFjZV9kZWJ1ZyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+PiAgICAgICAgICB9Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHNzaXplX3QgdHRtX2JvX2ds b2JhbF9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAo+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKPj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNoYXIgKmJ1ZmZlcikKPj4gLXsKPj4gLSAgICAgICBzdHJ1Y3QgdHRt X2JvX2dsb2JhbCAqZ2xvYiA9Cj4+IC0gICAgICAgICAgICAgICBjb250YWluZXJfb2Yoa29iaiwg c3RydWN0IHR0bV9ib19nbG9iYWwsIGtvYmopOwo+PiAtCj4+IC0gICAgICAgcmV0dXJuIHNucHJp bnRmKGJ1ZmZlciwgUEFHRV9TSVpFLCAiJWRcbiIsCj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXRvbWljX3JlYWQoJmdsb2ItPmJvX2NvdW50KSk7Cj4+IC19Cj4+IC0KPj4gLXN0 YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICp0dG1fYm9fZ2xvYmFsX2F0dHJzW10gPSB7Cj4+IC0gICAg ICAgJnR0bV9ib19jb3VudCwKPj4gLSAgICAgICBOVUxMCj4+IC19Owo+PiAtCj4+IC1zdGF0aWMg Y29uc3Qgc3RydWN0IHN5c2ZzX29wcyB0dG1fYm9fZ2xvYmFsX29wcyA9IHsKPj4gLSAgICAgICAu c2hvdyA9ICZ0dG1fYm9fZ2xvYmFsX3Nob3cKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBzdHJ1Y3Qg a29ial90eXBlIHR0bV9ib19nbG9iX2tvYmpfdHlwZSAgPSB7Cj4+IC0gICAgICAgLnJlbGVhc2Ug PSAmdHRtX2JvX2dsb2JhbF9rb2JqX3JlbGVhc2UsCj4+IC0gICAgICAgLnN5c2ZzX29wcyA9ICZ0 dG1fYm9fZ2xvYmFsX29wcywKPj4gLSAgICAgICAuZGVmYXVsdF9hdHRycyA9IHR0bV9ib19nbG9i YWxfYXR0cnMKPj4gLX07Cj4+IC0KPj4gICBzdGF0aWMgdm9pZCB0dG1fYm9fYWRkX21lbV90b19s cnUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICAgewo+PiAtICAgICAg IHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICsgICAgICAgc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gICAgICAgICAgc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyICptYW47Cj4+Cj4+ICAgICAgICAgIGlmICghbGlzdF9lbXB0eSgmYm8tPmxy dSkgfHwgYm8tPnBpbl9jb3VudCkKPj4gQEAgLTEyNCwxMyArODMsMTMgQEAgc3RhdGljIHZvaWQg dHRtX2JvX2FkZF9tZW1fdG9fbHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAg ICAgICAgIGlmIChtYW4tPnVzZV90dCAmJiBiby0+dHRtICYmCj4+ICAgICAgICAgICAgICAhKGJv LT50dG0tPnBhZ2VfZmxhZ3MgJiAoVFRNX1BBR0VfRkxBR19TRyB8Cj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVFRNX1BBR0VfRkxBR19TV0FQUEVEKSkpIHsKPj4gLSAg ICAgICAgICAgICAgIGxpc3RfYWRkX3RhaWwoJmJvLT5zd2FwLCAmdHRtX2JvX2dsb2Iuc3dhcF9s cnVbYm8tPnByaW9yaXR5XSk7Cj4+ICsgICAgICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZiby0+ c3dhcCwgJnR0bV9nbG9iLnN3YXBfbHJ1W2JvLT5wcmlvcml0eV0pOwo+PiAgICAgICAgICB9Cj4+ ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19kZWxfZnJvbV9scnUoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibykKPj4gICB7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYgPSBiby0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJv LT5iZGV2Owo+PiAgICAgICAgICBib29sIG5vdGlmeSA9IGZhbHNlOwo+Pgo+PiAgICAgICAgICBp ZiAoIWxpc3RfZW1wdHkoJmJvLT5zd2FwKSkgewo+PiBAQCAtMTQyLDggKzEwMSw4IEBAIHN0YXRp YyB2b2lkIHR0bV9ib19kZWxfZnJvbV9scnUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykK Pj4gICAgICAgICAgICAgICAgICBub3RpZnkgPSB0cnVlOwo+PiAgICAgICAgICB9Cj4+Cj4+IC0g ICAgICAgaWYgKG5vdGlmeSAmJiBiZGV2LT5kcml2ZXItPmRlbF9mcm9tX2xydV9ub3RpZnkpCj4+ IC0gICAgICAgICAgICAgICBiZGV2LT5kcml2ZXItPmRlbF9mcm9tX2xydV9ub3RpZnkoYm8pOwo+ PiArICAgICAgIGlmIChub3RpZnkgJiYgYmRldi0+ZnVuY3MtPmRlbF9mcm9tX2xydV9ub3RpZnkp Cj4+ICsgICAgICAgICAgICAgICBiZGV2LT5mdW5jcy0+ZGVsX2Zyb21fbHJ1X25vdGlmeShibyk7 Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19idWxrX21vdmVfc2V0X3BvcyhzdHJ1 Y3QgdHRtX2xydV9idWxrX21vdmVfcG9zICpwb3MsCj4+IEBAIC0yMjMsNyArMTgyLDcgQEAgdm9p ZCB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVs aykKPj4gICAgICAgICAgICAgICAgICBkbWFfcmVzdl9hc3NlcnRfaGVsZChwb3MtPmZpcnN0LT5i YXNlLnJlc3YpOwo+PiAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X2Fzc2VydF9oZWxkKHBvcy0+ bGFzdC0+YmFzZS5yZXN2KTsKPj4KPj4gLSAgICAgICAgICAgICAgIGxydSA9ICZ0dG1fYm9fZ2xv Yi5zd2FwX2xydVtpXTsKPj4gKyAgICAgICAgICAgICAgIGxydSA9ICZ0dG1fZ2xvYi5zd2FwX2xy dVtpXTsKPj4gICAgICAgICAgICAgICAgICBsaXN0X2J1bGtfbW92ZV90YWlsKGxydSwgJnBvcy0+ Zmlyc3QtPnN3YXAsICZwb3MtPmxhc3QtPnN3YXApOwo+PiAgICAgICAgICB9Cj4+ICAgfQo+PiBA QCAtMjMzLDcgKzE5Miw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwgYm9vbCBldmljdCwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkK Pj4gICB7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsK Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm9sZF9tYW4gPSB0dG1fbWFuYWdlcl90eXBl KGJkZXYsIGJvLT5tZW0ubWVtX3R5cGUpOwo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXIgKm5ld19tYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbS0+bWVtX3R5cGUp Owo+PiAgICAgICAgICBpbnQgcmV0Owo+PiBAQCAtMjYzLDggKzIyMiw4IEBAIHN0YXRpYyBpbnQg dHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAg ICAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgfQo+Pgo+PiAtICAgICAgIGlmIChiZGV2LT5k cml2ZXItPm1vdmVfbm90aWZ5KQo+PiAtICAgICAgICAgICAgICAgYmRldi0+ZHJpdmVyLT5tb3Zl X25vdGlmeShibywgZXZpY3QsIG1lbSk7Cj4+ICsgICAgICAgaWYgKGJkZXYtPmZ1bmNzLT5tb3Zl X25vdGlmeSkKPj4gKyAgICAgICAgICAgICAgIGJkZXYtPmZ1bmNzLT5tb3ZlX25vdGlmeShibywg ZXZpY3QsIG1lbSk7Cj4+Cj4+ICAgICAgICAgIGlmIChvbGRfbWFuLT51c2VfdHQgJiYgbmV3X21h bi0+dXNlX3R0KSB7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKGJvLT5tZW0ubWVtX3R5cGUgPT0g VFRNX1BMX1NZU1RFTSkgewo+PiBAQCAtMjcyLDE2ICsyMzEsMTYgQEAgc3RhdGljIGludCB0dG1f Ym9faGFuZGxlX21vdmVfbWVtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICByZXQgPSAwOwo+PiAgICAgICAgICAgICAgICAgIH0gZWxzZQo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gdHRtX2JvX21vdmVfdHRtKGJvLCBjdHgs IG1lbSk7Cj4+IC0gICAgICAgfSBlbHNlIGlmIChiZGV2LT5kcml2ZXItPm1vdmUpIHsKPj4gLSAg ICAgICAgICAgICAgIHJldCA9IGJkZXYtPmRyaXZlci0+bW92ZShibywgZXZpY3QsIGN0eCwgbWVt KTsKPj4gKyAgICAgICB9IGVsc2UgaWYgKGJkZXYtPmZ1bmNzLT5tb3ZlKSB7Cj4+ICsgICAgICAg ICAgICAgICByZXQgPSBiZGV2LT5mdW5jcy0+bW92ZShibywgZXZpY3QsIGN0eCwgbWVtKTsKPj4g ICAgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAgICAgICByZXQgPSB0dG1fYm9fbW92ZV9t ZW1jcHkoYm8sIGN0eCwgbWVtKTsKPj4gICAgICAgICAgfQo+Pgo+PiAgICAgICAgICBpZiAocmV0 KSB7Cj4+IC0gICAgICAgICAgICAgICBpZiAoYmRldi0+ZHJpdmVyLT5tb3ZlX25vdGlmeSkgewo+ PiArICAgICAgICAgICAgICAgaWYgKGJkZXYtPmZ1bmNzLT5tb3ZlX25vdGlmeSkgewo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgc3dhcCgqbWVtLCBiby0+bWVtKTsKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgYmRldi0+ZHJpdmVyLT5tb3ZlX25vdGlmeShibywgZmFsc2UsIG1lbSk7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGJkZXYtPmZ1bmNzLT5tb3ZlX25vdGlmeShibywgZmFs c2UsIG1lbSk7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBzd2FwKCptZW0sIGJvLT5tZW0p Owo+PiAgICAgICAgICAgICAgICAgIH0KPj4KPj4gQEAgLTMwOSw4ICsyNjgsOCBAQCBzdGF0aWMg aW50IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK Pj4KPj4gICBzdGF0aWMgdm9pZCB0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAgIHsKPj4gLSAgICAgICBpZiAoYm8tPmJkZXYtPmRyaXZl ci0+bW92ZV9ub3RpZnkpCj4+IC0gICAgICAgICAgICAgICBiby0+YmRldi0+ZHJpdmVyLT5tb3Zl X25vdGlmeShibywgZmFsc2UsIE5VTEwpOwo+PiArICAgICAgIGlmIChiby0+YmRldi0+ZnVuY3Mt Pm1vdmVfbm90aWZ5KQo+PiArICAgICAgICAgICAgICAgYm8tPmJkZXYtPmZ1bmNzLT5tb3ZlX25v dGlmeShibywgZmFsc2UsIE5VTEwpOwo+Pgo+PiAgICAgICAgICB0dG1fYm9fdHRfZGVzdHJveShi byk7Cj4+ICAgICAgICAgIHR0bV9yZXNvdXJjZV9mcmVlKGJvLCAmYm8tPm1lbSk7Cj4+IEBAIC0z MzUsOSArMjk0LDkgQEAgc3RhdGljIGludCB0dG1fYm9faW5kaXZpZHVhbGl6ZV9yZXN2KHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+ICAgICAgICAgICAgICAgICAgICogcmVmZXJlbmNl IGl0IGFueSBtb3JlLiBUaGUgb25seSB0cmlja3kgY2FzZSBpcyB0aGUgdHJ5bG9jayBvbgo+PiAg ICAgICAgICAgICAgICAgICAqIHRoZSByZXN2IG9iamVjdCB3aGlsZSBob2xkaW5nIHRoZSBscnVf bG9jay4KPj4gICAgICAgICAgICAgICAgICAgKi8KPj4gLSAgICAgICAgICAgICAgIHNwaW5fbG9j aygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0 dG1fZ2xvYi5scnVfbG9jayk7Cj4+ICAgICAgICAgICAgICAgICAgYm8tPmJhc2UucmVzdiA9ICZi by0+YmFzZS5fcmVzdjsKPj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xv Yi5scnVfbG9jayk7Cj4+ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1 X2xvY2spOwo+PiAgICAgICAgICB9Cj4+Cj4+ICAgICAgICAgIHJldHVybiByOwo+PiBAQCAtMzk1 LDcgKzM1NCw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAo+Pgo+PiAgICAgICAgICAgICAgICAgIGlmICh1bmxvY2tfcmVzdikK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2 KTsKPj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7 Cj4+ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pgo+ PiAgICAgICAgICAgICAgICAgIGxyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KHJlc3Ys IHRydWUsIGludGVycnVwdGlibGUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMzAgKiBIWik7Cj4+IEBAIC00MDUsNyArMzY0LDcgQEAgc3RhdGlj IGludCB0dG1fYm9fY2xlYW51cF9yZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobHJldCA9PSAwKQo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FQlVTWTsKPj4KPj4gLSAgICAgICAgICAgICAgIHNwaW5fbG9jaygm dHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1f Z2xvYi5scnVfbG9jayk7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHVubG9ja19yZXN2ICYmICFk bWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAvKgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICogV2UgcmFjZWQsIGFuZCBsb3N0 LCBzb21lb25lIGVsc2UgaG9sZHMgdGhlIHJlc2VydmF0aW9uIG5vdywKPj4gQEAgLTQxNSw3ICsz NzQsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAqIGRlbGF5ZWQgZGVzdHJ1 Y3Rpb24gd291bGQgc3VjY2VlZCwgc28ganVzdCByZXR1cm4gc3VjY2Vzcwo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICogaGVyZS4KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ PiAtICAgICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xv Y2spOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1 X2xvY2spOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgICAgICAg ICAgICAgICAgfQo+PiAgICAgICAgICAgICAgICAgIHJldCA9IDA7Cj4+IEBAIC00MjQsMTMgKzM4 MywxMyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPj4gICAgICAgICAgaWYgKHJldCB8fCB1bmxpa2VseShsaXN0X2VtcHR5KCZi by0+ZGRlc3Ryb3kpKSkgewo+PiAgICAgICAgICAgICAgICAgIGlmICh1bmxvY2tfcmVzdikKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsK Pj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAg ICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICAgICAgICAgIH0KPj4KPj4gICAgICAgICAgdHRt X2JvX2RlbF9mcm9tX2xydShibyk7Cj4+ICAgICAgICAgIGxpc3RfZGVsX2luaXQoJmJvLT5kZGVz dHJveSk7Cj4+IC0gICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4g KyAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICB0dG1f Ym9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Cj4+Cj4+ICAgICAgICAgIGlmICh1bmxvY2tfcmVz dikKPj4gQEAgLTQ0NSw5ICs0MDQsOSBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgKiBUcmF2ZXJzZSB0aGUgZGVsYXll ZCBsaXN0LCBhbmQgY2FsbCB0dG1fYm9fY2xlYW51cF9yZWZzIG9uIGFsbAo+PiAgICAqIGVuY291 bnRlcmVkIGJ1ZmZlcnMuCj4+ICAgICovCj4+IC1zdGF0aWMgYm9vbCB0dG1fYm9fZGVsYXllZF9k ZWxldGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2FsbCkKPj4gK2Jv b2wgdHRtX2JvX2RlbGF5ZWRfZGVsZXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBib29sIHJl bW92ZV9hbGwpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0g JnR0bV9ib19nbG9iOwo+PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9n bG9iOwo+PiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIHJlbW92ZWQ7Cj4+ICAgICAgICAgIGJv b2wgZW1wdHk7Cj4+Cj4+IEBAIC00ODYsMjEgKzQ0NSwxMSBAQCBzdGF0aWMgYm9vbCB0dG1fYm9f ZGVsYXllZF9kZWxldGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2Fs bCkKPj4gICAgICAgICAgcmV0dXJuIGVtcHR5Owo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHR0 bV9ib19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+IC17Cj4+ IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPQo+PiAtICAgICAgICAgICBjb250 YWluZXJfb2Yod29yaywgc3RydWN0IHR0bV9ib19kZXZpY2UsIHdxLndvcmspOwo+PiAtCj4+IC0g ICAgICAgaWYgKCF0dG1fYm9fZGVsYXllZF9kZWxldGUoYmRldiwgZmFsc2UpKQo+PiAtICAgICAg ICAgICAgICAgc2NoZWR1bGVfZGVsYXllZF93b3JrKCZiZGV2LT53cSwKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoKEhaIC8gMTAwKSA8IDEpID8gMSA6IEhaIC8gMTAw KTsKPj4gLX0KPj4gLQo+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVm ICprcmVmKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9 Cj4+ICAgICAgICAgICAgICBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0LCBrcmVmKTsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5i ZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICAg ICAgICAgIHNpemVfdCBhY2Nfc2l6ZSA9IGJvLT5hY2Nfc2l6ZTsKPj4gICAgICAgICAgaW50IHJl dDsKPj4KPj4gQEAgLTUxNCw4ICs0NjMsOCBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZShz dHJ1Y3Qga3JlZiAqa3JlZikKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMzAgKiBIWik7Cj4+ICAgICAgICAgICAgICAgICAgfQo+Pgo+PiAtICAg ICAgICAgICAgICAgaWYgKGJvLT5iZGV2LT5kcml2ZXItPnJlbGVhc2Vfbm90aWZ5KQo+PiAtICAg ICAgICAgICAgICAgICAgICAgICBiby0+YmRldi0+ZHJpdmVyLT5yZWxlYXNlX25vdGlmeShibyk7 Cj4+ICsgICAgICAgICAgICAgICBpZiAoYm8tPmJkZXYtPmZ1bmNzLT5yZWxlYXNlX25vdGlmeSkK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgYm8tPmJkZXYtPmZ1bmNzLT5yZWxlYXNlX25vdGlm eShibyk7Cj4+Cj4+ICAgICAgICAgICAgICAgICAgZHJtX3ZtYV9vZmZzZXRfcmVtb3ZlKGJkZXYt PnZtYV9tYW5hZ2VyLCAmYm8tPmJhc2Uudm1hX25vZGUpOwo+PiAgICAgICAgICAgICAgICAgIHR0 bV9tZW1faW9fZnJlZShiZGV2LCAmYm8tPm1lbSk7Cj4+IEBAIC01MjcsNyArNDc2LDcgQEAgc3Rh dGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4+ICAgICAgICAgICAg ICAgICAgdHRtX2JvX2ZsdXNoX2FsbF9mZW5jZXMoYm8pOwo+PiAgICAgICAgICAgICAgICAgIGJv LT5kZWxldGVkID0gdHJ1ZTsKPj4KPj4gLSAgICAgICAgICAgICAgIHNwaW5fbG9jaygmdHRtX2Jv X2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5s cnVfbG9jayk7Cj4+Cj4+ICAgICAgICAgICAgICAgICAgLyoKPj4gICAgICAgICAgICAgICAgICAg KiBNYWtlIHBpbm5lZCBib3MgaW1tZWRpYXRlbHkgYXZhaWxhYmxlIHRvCj4+IEBAIC01NDIsMjIg KzQ5MSwyMiBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikK Pj4KPj4gICAgICAgICAgICAgICAgICBrcmVmX2luaXQoJmJvLT5rcmVmKTsKPj4gICAgICAgICAg ICAgICAgICBsaXN0X2FkZF90YWlsKCZiby0+ZGRlc3Ryb3ksICZiZGV2LT5kZGVzdHJveSk7Cj4+ IC0gICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiAr ICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4gICAg ICAgICAgICAgICAgICBzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmJkZXYtPndxLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEhaIC8gMTAwKSA8IDEpID8gMSA6IEha IC8gMTAwKTsKPj4gICAgICAgICAgICAgICAgICByZXR1cm47Cj4+ICAgICAgICAgIH0KPj4KPj4g LSAgICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAgICAgICBzcGlu X2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4gICAgICAgICAgdHRtX2JvX2RlbF9mcm9tX2xy dShibyk7Cj4+ICAgICAgICAgIGxpc3RfZGVsKCZiby0+ZGRlc3Ryb3kpOwo+PiAtICAgICAgIHNw aW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgc3Bpbl91bmxvY2so JnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4gICAgICAgICAgdHRtX2JvX2NsZWFudXBfbWVtdHlw ZV91c2UoYm8pOwo+PiAgICAgICAgICBkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7Cj4+ Cj4+IC0gICAgICAgYXRvbWljX2RlYygmdHRtX2JvX2dsb2IuYm9fY291bnQpOwo+PiArICAgICAg IGF0b21pY19kZWMoJnR0bV9nbG9iLmJvX2NvdW50KTsKPj4gICAgICAgICAgZG1hX2ZlbmNlX3B1 dChiby0+bW92aW5nKTsKPj4gICAgICAgICAgaWYgKCF0dG1fYm9fdXNlc19lbWJlZGRlZF9nZW1f b2JqZWN0KGJvKSkKPj4gICAgICAgICAgICAgICAgICBkbWFfcmVzdl9maW5pKCZiby0+YmFzZS5f cmVzdik7Cj4+IEBAIC01NzEsMTMgKzUyMCwxMyBAQCB2b2lkIHR0bV9ib19wdXQoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fcHV0 KTsKPj4KPj4gLWludCB0dG1fYm9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldikKPj4gK2ludCB0dG1fYm9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldikKPj4gICB7Cj4+ICAgICAgICAgIHJldHVybiBjYW5jZWxfZGVs YXllZF93b3JrX3N5bmMoJmJkZXYtPndxKTsKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1f Ym9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZSk7Cj4+Cj4+IC12b2lkIHR0bV9ib191bmxvY2tfZGVs YXllZF93b3JrcXVldWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGludCByZXNjaGVkKQo+ PiArdm9pZCB0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2LCBpbnQgcmVzY2hlZCkKPj4gICB7Cj4+ICAgICAgICAgIGlmIChyZXNjaGVkKQo+PiAg ICAgICAgICAgICAgICAgIHNjaGVkdWxlX2RlbGF5ZWRfd29yaygmYmRldi0+d3EsCj4+IEBAIC01 ODgsNyArNTM3LDcgQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1 ZXVlKTsKPj4gICBzdGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25f Y3R4ICpjdHgpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0g Ym8tPmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsK Pj4gICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSBldmljdF9tZW07Cj4+ICAgICAgICAgIHN0 cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPj4gICAgICAgICAgaW50IHJldCA9IDA7Cj4+ IEBAIC01OTcsNyArNTQ2LDcgQEAgc3RhdGljIGludCB0dG1fYm9fZXZpY3Qoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPj4KPj4gICAgICAgICAgcGxhY2VtZW50Lm51bV9wbGFjZW1lbnQg PSAwOwo+PiAgICAgICAgICBwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0gMDsKPj4gLSAg ICAgICBiZGV2LT5kcml2ZXItPmV2aWN0X2ZsYWdzKGJvLCAmcGxhY2VtZW50KTsKPj4gKyAgICAg ICBiZGV2LT5mdW5jcy0+ZXZpY3RfZmxhZ3MoYm8sICZwbGFjZW1lbnQpOwo+Pgo+PiAgICAgICAg ICBpZiAoIXBsYWNlbWVudC5udW1fcGxhY2VtZW50ICYmICFwbGFjZW1lbnQubnVtX2J1c3lfcGxh Y2VtZW50KSB7Cj4+ICAgICAgICAgICAgICAgICAgdHRtX2JvX3dhaXQoYm8sIGZhbHNlLCBmYWxz ZSk7Cj4+IEBAIC03MTIsNyArNjYxLDcgQEAgc3RhdGljIGludCB0dG1fbWVtX2V2aWN0X3dhaXRf YnVzeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJ1c3lfYm8sCj4+ICAgICAgICAgIHJldHVy biByID09IC1FREVBRExLID8gLUVCVVNZIDogcjsKPj4gICB9Cj4+Cj4+IC1pbnQgdHRtX21lbV9l dmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2ludCB0dG1fbWVtX2V2 aWN0X2ZpcnN0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+PiBAQCAtNzIzLDcg KzY3Miw3IEBAIGludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LAo+PiAgICAgICAgICB1bnNpZ25lZCBpOwo+PiAgICAgICAgICBpbnQgcmV0Owo+Pgo+PiAt ICAgICAgIHNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgIHNwaW5f bG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVFRN X01BWF9CT19QUklPUklUWTsgKytpKSB7Cj4+ICAgICAgICAgICAgICAgICAgbGlzdF9mb3JfZWFj aF9lbnRyeShibywgJm1hbi0+bHJ1W2ldLCBscnUpIHsKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgYnVzeTsKPj4gQEAgLTczNiw3ICs2ODUsNyBAQCBpbnQgdHRtX21lbV9ldmljdF9m aXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4+Cj4+ IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFjZSAmJiAhYmRldi0+ZHJpdmVyLT5ldmlj dGlvbl92YWx1YWJsZShibywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYWNlICYm ICFiZGV2LT5mdW5jcy0+ZXZpY3Rpb25fdmFsdWFibGUoYm8sCj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxh Y2UpKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NrZWQpCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2Nr KGJvLT5iYXNlLnJlc3YpOwo+PiBAQCAtNzYwLDcgKzcwOSw3IEBAIGludCB0dG1fbWVtX2V2aWN0 X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICBpZiAoIWJvKSB7 Cj4+ICAgICAgICAgICAgICAgICAgaWYgKGJ1c3lfYm8gJiYgIXR0bV9ib19nZXRfdW5sZXNzX3pl cm8oYnVzeV9ibykpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBidXN5X2JvID0gTlVMTDsK Pj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAg ICAgICAgICAgICAgIHJldCA9IHR0bV9tZW1fZXZpY3Rfd2FpdF9idXN5KGJ1c3lfYm8sIGN0eCwg dGlja2V0KTsKPj4gICAgICAgICAgICAgICAgICBpZiAoYnVzeV9ibykKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgIHR0bV9ib19wdXQoYnVzeV9ibyk7Cj4+IEBAIC03NzQsNyArNzIzLDcgQEAg aW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAg ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gICAgICAgICAgfQo+Pgo+PiAtICAgICAgIHNw aW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgc3Bpbl91bmxvY2so JnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4gICAgICAgICAgcmV0ID0gdHRtX2JvX2V2aWN0KGJv LCBjdHgpOwo+PiAgICAgICAgICBpZiAobG9ja2VkKQo+PiBAQCAtODI5LDcgKzc3OCw3IEBAIHN0 YXRpYyBpbnQgdHRtX2JvX21lbV9mb3JjZV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2UgKm1lbSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICB7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1h biA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4+ICAgICAgICAgIHN0 cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0Owo+PiAgICAgICAgICBpbnQgcmV0Owo+PiBAQCAt ODY2LDcgKzgxNSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9wbGFjZW1lbnQoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICB7Cj4+IC0gICAgICAgc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXIgKm1hbjsKPj4KPj4gICAgICAgICAgbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2 LCBwbGFjZS0+bWVtX3R5cGUpOwo+PiBAQCAtODc2LDEwICs4MjUsMTAgQEAgc3RhdGljIGludCB0 dG1fYm9fbWVtX3BsYWNlbWVudChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAg ICAgICBtZW0tPm1lbV90eXBlID0gcGxhY2UtPm1lbV90eXBlOwo+PiAgICAgICAgICBtZW0tPnBs YWNlbWVudCA9IHBsYWNlLT5mbGFnczsKPj4KPj4gLSAgICAgICBzcGluX2xvY2soJnR0bV9ib19n bG9iLmxydV9sb2NrKTsKPj4gKyAgICAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsK Pj4gICAgICAgICAgdHRtX2JvX2RlbF9mcm9tX2xydShibyk7Cj4+ICAgICAgICAgIHR0bV9ib19h ZGRfbWVtX3RvX2xydShibywgbWVtKTsKPj4gLSAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2ds b2IubHJ1X2xvY2spOwo+PiArICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7 Cj4+Cj4+ICAgICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4gQEAgLTg5Nyw3ICs4NDYsNyBAQCBp bnQgdHRtX2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+ICAgewo+ PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICsgICAg ICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gICAgICAgICAgYm9vbCB0 eXBlX2ZvdW5kID0gZmFsc2U7Cj4+ICAgICAgICAgIGludCBpLCByZXQ7Cj4+Cj4+IEBAIC0xMDc0 LDcgKzEwMjMsNyBAQCBpbnQgdHRtX2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4+ICAgfQo+PiAgIEVYUE9SVF9TWU1CT0wodHRtX2JvX3ZhbGlkYXRlKTsKPj4KPj4g LWludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4g K2ludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+IEBAIC0xMTQ2LDcgKzEw OTUsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCj4+ICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfaW5pdCgmYm8tPmJhc2UuX3Jlc3YpOwo+ PiAgICAgICAgICAgICAgICAgIGRybV92bWFfbm9kZV9yZXNldCgmYm8tPmJhc2Uudm1hX25vZGUp Owo+PiAgICAgICAgICB9Cj4+IC0gICAgICAgYXRvbWljX2luYygmdHRtX2JvX2dsb2IuYm9fY291 bnQpOwo+PiArICAgICAgIGF0b21pY19pbmMoJnR0bV9nbG9iLmJvX2NvdW50KTsKPj4KPj4gICAg ICAgICAgLyoKPj4gICAgICAgICAgICogRm9yIHR0bV9ib190eXBlX2RldmljZSBidWZmZXJzLCBh bGxvY2F0ZQo+PiBAQCAtMTE4Miw3ICsxMTMxLDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVk KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MKHR0 bV9ib19pbml0X3Jlc2VydmVkKTsKPj4KPj4gLWludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKPj4gK2ludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwKPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4gICAgICAgICAgICAgICAgICBl bnVtIHR0bV9ib190eXBlIHR5cGUsCj4+IEBAIC0xMjEwLDcgKzExNTksNyBAQCBpbnQgdHRtX2Jv X2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgfQo+PiAgIEVYUE9SVF9TWU1C T0wodHRtX2JvX2luaXQpOwo+Pgo+PiAtc2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzaXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgYm9fc2l6ZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IHN0cnVjdF9zaXplKQo+PiAgIHsKPj4gQEAgLTEyMjQsNyArMTE3Myw3IEBAIHNpemVfdCB0dG1f Ym9fZG1hX2FjY19zaXplKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgIH0KPj4gICBF WFBPUlRfU1lNQk9MKHR0bV9ib19kbWFfYWNjX3NpemUpOwo+Pgo+PiAtaW50IHR0bV9ib19ldmlj dF9tbShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdW5zaWduZWQgbWVtX3R5cGUpCj4+ICtp bnQgdHRtX2JvX2V2aWN0X21tKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCBtZW1f dHlwZSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu ID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBtZW1fdHlwZSk7Cj4+Cj4+IEBAIC0xMjQyLDE1NCAr MTE5MSwxMyBAQCBpbnQgdHRtX2JvX2V2aWN0X21tKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LCB1bnNpZ25lZCBtZW1fdHlwZSkKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fZXZp Y3RfbW0pOwo+Pgo+PiAtc3RhdGljIHZvaWQgdHRtX2JvX2dsb2JhbF9rb2JqX3JlbGVhc2Uoc3Ry dWN0IGtvYmplY3QgKmtvYmopCj4+IC17Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19nbG9iYWwg Kmdsb2IgPQo+PiAtICAgICAgICAgICAgICAgY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCB0dG1f Ym9fZ2xvYmFsLCBrb2JqKTsKPj4gLQo+PiAtICAgICAgIF9fZnJlZV9wYWdlKGdsb2ItPmR1bW15 X3JlYWRfcGFnZSk7Cj4+IC19Cj4+IC0KPj4gLXN0YXRpYyB2b2lkIHR0bV9ib19nbG9iYWxfcmVs ZWFzZSh2b2lkKQo+PiAtewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0g JnR0bV9ib19nbG9iOwo+PiAtCj4+IC0gICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRl eCk7Cj4+IC0gICAgICAgaWYgKC0tdHRtX2JvX2dsb2JfdXNlX2NvdW50ID4gMCkKPj4gLSAgICAg ICAgICAgICAgIGdvdG8gb3V0Owo+PiAtCj4+IC0gICAgICAga29iamVjdF9kZWwoJmdsb2ItPmtv YmopOwo+PiAtICAgICAgIGtvYmplY3RfcHV0KCZnbG9iLT5rb2JqKTsKPj4gLSAgICAgICB0dG1f bWVtX2dsb2JhbF9yZWxlYXNlKCZ0dG1fbWVtX2dsb2IpOwo+PiAtICAgICAgIG1lbXNldChnbG9i LCAwLCBzaXplb2YoKmdsb2IpKTsKPj4gLW91dDoKPj4gLSAgICAgICBtdXRleF91bmxvY2soJnR0 bV9nbG9iYWxfbXV0ZXgpOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgaW50IHR0bV9ib19nbG9iYWxf aW5pdCh2b2lkKQo+PiAtewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0g JnR0bV9ib19nbG9iOwo+PiAtICAgICAgIGludCByZXQgPSAwOwo+PiAtICAgICAgIHVuc2lnbmVk IGk7Cj4+IC0KPj4gLSAgICAgICBtdXRleF9sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKPj4gLSAg ICAgICBpZiAoKyt0dG1fYm9fZ2xvYl91c2VfY291bnQgPiAxKQo+PiAtICAgICAgICAgICAgICAg Z290byBvdXQ7Cj4+IC0KPj4gLSAgICAgICByZXQgPSB0dG1fbWVtX2dsb2JhbF9pbml0KCZ0dG1f bWVtX2dsb2IpOwo+PiAtICAgICAgIGlmIChyZXQpCj4+IC0gICAgICAgICAgICAgICBnb3RvIG91 dDsKPj4gLQo+PiAtICAgICAgIHNwaW5fbG9ja19pbml0KCZnbG9iLT5scnVfbG9jayk7Cj4+IC0g ICAgICAgZ2xvYi0+ZHVtbXlfcmVhZF9wYWdlID0gYWxsb2NfcGFnZShfX0dGUF9aRVJPIHwgR0ZQ X0RNQTMyKTsKPj4gLQo+PiAtICAgICAgIGlmICh1bmxpa2VseShnbG9iLT5kdW1teV9yZWFkX3Bh Z2UgPT0gTlVMTCkpIHsKPj4gLSAgICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07Cj4+IC0gICAg ICAgICAgICAgICBnb3RvIG91dDsKPj4gLSAgICAgICB9Cj4+IC0KPj4gLSAgICAgICBmb3IgKGkg PSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklUWTsgKytpKQo+PiAtICAgICAgICAgICAgICAgSU5J VF9MSVNUX0hFQUQoJmdsb2ItPnN3YXBfbHJ1W2ldKTsKPj4gLSAgICAgICBJTklUX0xJU1RfSEVB RCgmZ2xvYi0+ZGV2aWNlX2xpc3QpOwo+PiAtICAgICAgIGF0b21pY19zZXQoJmdsb2ItPmJvX2Nv dW50LCAwKTsKPj4gLQo+PiAtICAgICAgIHJldCA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKAo+PiAt ICAgICAgICAgICAgICAgJmdsb2ItPmtvYmosICZ0dG1fYm9fZ2xvYl9rb2JqX3R5cGUsIHR0bV9n ZXRfa29iaigpLCAiYnVmZmVyX29iamVjdHMiKTsKPj4gLSAgICAgICBpZiAodW5saWtlbHkocmV0 ICE9IDApKQo+PiAtICAgICAgICAgICAgICAga29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwo+PiAt b3V0Ogo+PiAtICAgICAgIG11dGV4X3VubG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+IC0gICAg ICAgcmV0dXJuIHJldDsKPj4gLX0KPj4gLQo+PiAtaW50IHR0bV9ib19kZXZpY2VfcmVsZWFzZShz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPj4gLXsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2Jv X2dsb2JhbCAqZ2xvYiA9ICZ0dG1fYm9fZ2xvYjsKPj4gLSAgICAgICBpbnQgcmV0ID0gMDsKPj4g LSAgICAgICB1bnNpZ25lZCBpOwo+PiAtICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdl ciAqbWFuOwo+PiAtCj4+IC0gICAgICAgbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBUVE1f UExfU1lTVEVNKTsKPj4gLSAgICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4s IGZhbHNlKTsKPj4gLSAgICAgICB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKGJkZXYsIFRUTV9QTF9T WVNURU0sIE5VTEwpOwo+PiAtCj4+IC0gICAgICAgbXV0ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRl eCk7Cj4+IC0gICAgICAgbGlzdF9kZWwoJmJkZXYtPmRldmljZV9saXN0KTsKPj4gLSAgICAgICBt dXRleF91bmxvY2soJnR0bV9nbG9iYWxfbXV0ZXgpOwo+PiAtCj4+IC0gICAgICAgY2FuY2VsX2Rl bGF5ZWRfd29ya19zeW5jKCZiZGV2LT53cSk7Cj4+IC0KPj4gLSAgICAgICBpZiAodHRtX2JvX2Rl bGF5ZWRfZGVsZXRlKGJkZXYsIHRydWUpKQo+PiAtICAgICAgICAgICAgICAgcHJfZGVidWcoIkRl bGF5ZWQgZGVzdHJveSBsaXN0IHdhcyBjbGVhblxuIik7Cj4+IC0KPj4gLSAgICAgICBzcGluX2xv Y2soJmdsb2ItPmxydV9sb2NrKTsKPj4gLSAgICAgICBmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9C T19QUklPUklUWTsgKytpKQo+PiAtICAgICAgICAgICAgICAgaWYgKGxpc3RfZW1wdHkoJm1hbi0+ bHJ1WzBdKSkKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgcHJfZGVidWcoIlN3YXAgbGlzdCAl ZCB3YXMgY2xlYW5cbiIsIGkpOwo+PiAtICAgICAgIHNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9j ayk7Cj4+IC0KPj4gLSAgICAgICBpZiAoIXJldCkKPj4gLSAgICAgICAgICAgICAgIHR0bV9ib19n bG9iYWxfcmVsZWFzZSgpOwo+PiAtCj4+IC0gICAgICAgcmV0dXJuIHJldDsKPj4gLX0KPj4gLUVY UE9SVF9TWU1CT0wodHRtX2JvX2RldmljZV9yZWxlYXNlKTsKPj4gLQo+PiAtc3RhdGljIHZvaWQg dHRtX2JvX2luaXRfc3lzbWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQo+PiAtewo+PiAt ICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gJmJkZXYtPnN5c21hbjsK Pj4gLQo+PiAtICAgICAgIC8qCj4+IC0gICAgICAgICogSW5pdGlhbGl6ZSB0aGUgc3lzdGVtIG1l bW9yeSBidWZmZXIgdHlwZS4KPj4gLSAgICAgICAgKiBPdGhlciB0eXBlcyBuZWVkIHRvIGJlIGRy aXZlciAvIElPQ1RMIGluaXRpYWxpemVkLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIG1hbi0+ dXNlX3R0ID0gdHJ1ZTsKPj4gLQo+PiAtICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQo bWFuLCAwKTsKPj4gLSAgICAgICB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKGJkZXYsIFRUTV9QTF9T WVNURU0sIG1hbik7Cj4+IC0gICAgICAgdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3VzZWQobWFu LCB0cnVlKTsKPj4gLX0KPj4gLQo+PiAtaW50IHR0bV9ib19kZXZpY2VfaW5pdChzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKPj4gLSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2Jv X2RyaXZlciAqZHJpdmVyLAo+PiAtICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLAo+PiAtICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fdm1h X29mZnNldF9tYW5hZ2VyICp2bWFfbWFuYWdlciwKPj4gLSAgICAgICAgICAgICAgICAgICAgICBi b29sIG5lZWRfZG1hMzIpCj4+IC17Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19nbG9iYWwgKmds b2IgPSAmdHRtX2JvX2dsb2I7Cj4+IC0gICAgICAgaW50IHJldDsKPj4gLQo+PiAtICAgICAgIGlm IChXQVJOX09OKHZtYV9tYW5hZ2VyID09IE5VTEwpKQo+PiAtICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7Cj4+IC0KPj4gLSAgICAgICByZXQgPSB0dG1fYm9fZ2xvYmFsX2luaXQoKTsKPj4g LSAgICAgICBpZiAocmV0KQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gLQo+PiAt ICAgICAgIGJkZXYtPmRyaXZlciA9IGRyaXZlcjsKPj4gLQo+PiAtICAgICAgIHR0bV9ib19pbml0 X3N5c21hbihiZGV2KTsKPj4gLQo+PiAtICAgICAgIGJkZXYtPnZtYV9tYW5hZ2VyID0gdm1hX21h bmFnZXI7Cj4+IC0gICAgICAgSU5JVF9ERUxBWUVEX1dPUksoJmJkZXYtPndxLCB0dG1fYm9fZGVs YXllZF93b3JrcXVldWUpOwo+PiAtICAgICAgIElOSVRfTElTVF9IRUFEKCZiZGV2LT5kZGVzdHJv eSk7Cj4+IC0gICAgICAgYmRldi0+ZGV2X21hcHBpbmcgPSBtYXBwaW5nOwo+PiAtICAgICAgIGJk ZXYtPm5lZWRfZG1hMzIgPSBuZWVkX2RtYTMyOwo+PiAtICAgICAgIG11dGV4X2xvY2soJnR0bV9n bG9iYWxfbXV0ZXgpOwo+PiAtICAgICAgIGxpc3RfYWRkX3RhaWwoJmJkZXYtPmRldmljZV9saXN0 LCAmZ2xvYi0+ZGV2aWNlX2xpc3QpOwo+PiAtICAgICAgIG11dGV4X3VubG9jaygmdHRtX2dsb2Jh bF9tdXRleCk7Cj4+IC0KPj4gLSAgICAgICByZXR1cm4gMDsKPj4gLX0KPj4gLUVYUE9SVF9TWU1C T0wodHRtX2JvX2RldmljZV9pbml0KTsKPj4gLQo+PiAgIC8qCj4+ICAgICogYnVmZmVyIG9iamVj dCB2bSBmdW5jdGlvbnMuCj4+ICAgICovCj4+Cj4+ICAgdm9pZCB0dG1fYm9fdW5tYXBfdmlydHVh bChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAgIHsKPj4gLSAgICAgICBzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+Cj4+ICAgICAgICAgIGRybV92bWFfbm9kZV91bm1hcCgm Ym8tPmJhc2Uudm1hX25vZGUsIGJkZXYtPmRldl9tYXBwaW5nKTsKPj4gICAgICAgICAgdHRtX21l bV9pb19mcmVlKGJkZXYsICZiby0+bWVtKTsKPj4gQEAgLTE0MjUsNyArMTIzMyw3IEBAIEVYUE9S VF9TWU1CT0wodHRtX2JvX3dhaXQpOwo+PiAgICAqIEEgYnVmZmVyIG9iamVjdCBzaHJpbmsgbWV0 aG9kIHRoYXQgdHJpZXMgdG8gc3dhcCBvdXQgdGhlIGZpcnN0Cj4+ICAgICogYnVmZmVyIG9iamVj dCBvbiB0aGUgYm9fZ2xvYmFsOjpzd2FwX2xydSBsaXN0Lgo+PiAgICAqLwo+PiAtaW50IHR0bV9i b19zd2Fwb3V0KHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iLCBzdHJ1Y3QgdHRtX29wZXJhdGlv bl9jdHggKmN0eCkKPj4gK2ludCB0dG1fYm9fc3dhcG91dChzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xv Yiwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+ICAgewo+PiAgICAgICAgICBzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvOwo+PiAgICAgICAgICBpbnQgcmV0ID0gLUVCVVNZOwo+ PiBAQCAtMTQ5OSw4ICsxMzA3LDggQEAgaW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1fYm9f Z2xvYmFsICpnbG9iLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICAgICAgICAg ICogYW55b25lIHRyaWVzIHRvIGFjY2VzcyBhIHR0bSBwYWdlLgo+PiAgICAgICAgICAgKi8KPj4K Pj4gLSAgICAgICBpZiAoYm8tPmJkZXYtPmRyaXZlci0+c3dhcF9ub3RpZnkpCj4+IC0gICAgICAg ICAgICAgICBiby0+YmRldi0+ZHJpdmVyLT5zd2FwX25vdGlmeShibyk7Cj4+ICsgICAgICAgaWYg KGJvLT5iZGV2LT5mdW5jcy0+c3dhcF9ub3RpZnkpCj4+ICsgICAgICAgICAgICAgICBiby0+YmRl di0+ZnVuY3MtPnN3YXBfbm90aWZ5KGJvKTsKPj4KPj4gICAgICAgICAgcmV0ID0gdHRtX3R0X3N3 YXBvdXQoYm8tPmJkZXYsIGJvLT50dG0pOwo+PiAgIG91dDoKPj4gQEAgLTE1MjQsNyArMTMzMiw3 IEBAIHZvaWQgdHRtX2JvX3N3YXBvdXRfYWxsKHZvaWQpCj4+ICAgICAgICAgICAgICAgICAgLm5v X3dhaXRfZ3B1ID0gZmFsc2UKPj4gICAgICAgICAgfTsKPj4KPj4gLSAgICAgICB3aGlsZSAodHRt X2JvX3N3YXBvdXQoJnR0bV9ib19nbG9iLCAmY3R4KSA9PSAwKTsKPj4gKyAgICAgICB3aGlsZSAo dHRtX2JvX3N3YXBvdXQoJnR0bV9nbG9iLCAmY3R4KSA9PSAwKTsKPj4gICB9Cj4+ICAgRVhQT1JU X1NZTUJPTCh0dG1fYm9fc3dhcG91dF9hbGwpOwo+Pgo+PiBAQCAtMTUzOSwxMCArMTM0NywxMCBA QCB2b2lkIHR0bV9ib190dF9kZXN0cm95KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+ Cj4+ICAgaW50IHR0bV9ib190dF9iaW5kKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0 cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPj4gICB7Cj4+IC0gICAgICAgcmV0dXJuIGJvLT5iZGV2 LT5kcml2ZXItPnR0bV90dF9iaW5kKGJvLT5iZGV2LCBiby0+dHRtLCBtZW0pOwo+PiArICAgICAg IHJldHVybiBiby0+YmRldi0+ZnVuY3MtPnR0bV90dF9iaW5kKGJvLT5iZGV2LCBiby0+dHRtLCBt ZW0pOwo+PiAgIH0KPj4KPj4gICB2b2lkIHR0bV9ib190dF91bmJpbmQoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibykKPj4gICB7Cj4+IC0gICAgICAgYm8tPmJkZXYtPmRyaXZlci0+dHRtX3R0 X3VuYmluZChiby0+YmRldiwgYm8tPnR0bSk7Cj4+ICsgICAgICAgYm8tPmJkZXYtPmZ1bmNzLT50 dG1fdHRfdW5iaW5kKGJvLT5iZGV2LCBiby0+dHRtKTsKPj4gICB9Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9ib191dGlsLmMKPj4gaW5kZXggYmE3YWI1ZWQ4NWQwLi4xNzkwM2YwZTIxMWYgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPj4gQEAgLTg4LDMzICs4OCwzMyBAQCBpbnQgdHRt X2JvX21vdmVfdHRtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgfQo+PiAgIEVY UE9SVF9TWU1CT0wodHRtX2JvX21vdmVfdHRtKTsKPj4KPj4gLWludCB0dG1fbWVtX2lvX3Jlc2Vy dmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtpbnQgdHRtX21lbV9pb19yZXNlcnZl KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICAgewo+PiAgICAgICAgICBpZiAobWVtLT5idXMub2Zm c2V0IHx8IG1lbS0+YnVzLmFkZHIpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+Cj4+ ICAgICAgICAgIG1lbS0+YnVzLmlzX2lvbWVtID0gZmFsc2U7Cj4+IC0gICAgICAgaWYgKCFiZGV2 LT5kcml2ZXItPmlvX21lbV9yZXNlcnZlKQo+PiArICAgICAgIGlmICghYmRldi0+ZnVuY3MtPmlv X21lbV9yZXNlcnZlKQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+Pgo+PiAtICAgICAg IHJldHVybiBiZGV2LT5kcml2ZXItPmlvX21lbV9yZXNlcnZlKGJkZXYsIG1lbSk7Cj4+ICsgICAg ICAgcmV0dXJuIGJkZXYtPmZ1bmNzLT5pb19tZW1fcmVzZXJ2ZShiZGV2LCBtZW0pOwo+PiAgIH0K Pj4KPj4gLXZvaWQgdHRtX21lbV9pb19mcmVlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ PiArdm9pZCB0dG1fbWVtX2lvX2ZyZWUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICAgewo+PiAgICAg ICAgICBpZiAoIW1lbS0+YnVzLm9mZnNldCAmJiAhbWVtLT5idXMuYWRkcikKPj4gICAgICAgICAg ICAgICAgICByZXR1cm47Cj4+Cj4+IC0gICAgICAgaWYgKGJkZXYtPmRyaXZlci0+aW9fbWVtX2Zy ZWUpCj4+IC0gICAgICAgICAgICAgICBiZGV2LT5kcml2ZXItPmlvX21lbV9mcmVlKGJkZXYsIG1l bSk7Cj4+ICsgICAgICAgaWYgKGJkZXYtPmZ1bmNzLT5pb19tZW1fZnJlZSkKPj4gKyAgICAgICAg ICAgICAgIGJkZXYtPmZ1bmNzLT5pb19tZW1fZnJlZShiZGV2LCBtZW0pOwo+Pgo+PiAgICAgICAg ICBtZW0tPmJ1cy5vZmZzZXQgPSAwOwo+PiAgICAgICAgICBtZW0tPmJ1cy5hZGRyID0gTlVMTDsK Pj4gICB9Cj4+Cj4+IC1zdGF0aWMgaW50IHR0bV9yZXNvdXJjZV9pb3JlbWFwKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIGludCB0dG1fcmVzb3VyY2VfaW9yZW1hcChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlICptZW0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdm9pZCAqKnZpcnR1YWwpCj4+ICAgewo+PiBAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyBp bnQgdHRtX3Jlc291cmNlX2lvcmVtYXAoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAg ICAgICAgIHJldHVybiAwOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHR0bV9yZXNvdXJjZV9p b3VubWFwKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQgdHRtX3Jl c291cmNlX2lvdW5tYXAoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmlydHVhbCkKPj4gICB7Cj4+IEBAIC0yMTQs NyArMjE0LDcgQEAgaW50IHR0bV9ib19tb3ZlX21lbWNweShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9j dHggKmN0eCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAq bmV3X21lbSkKPj4gICB7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBi by0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+ PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2Vy X3R5cGUoYmRldiwgbmV3X21lbS0+bWVtX3R5cGUpOwo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3R0 ICp0dG0gPSBiby0+dHRtOwo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVt ID0gJmJvLT5tZW07Cj4+IEBAIC0zNTUsNyArMzU1LDcgQEAgc3RhdGljIGludCB0dG1fYnVmZmVy X29iamVjdF90cmFuc2ZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAg ICAgKiBUT0RPOiBFeHBsaWNpdCBtZW1iZXIgY29weSB3b3VsZCBwcm9iYWJseSBiZSBiZXR0ZXIg aGVyZS4KPj4gICAgICAgICAgICovCj4+Cj4+IC0gICAgICAgYXRvbWljX2luYygmdHRtX2JvX2ds b2IuYm9fY291bnQpOwo+PiArICAgICAgIGF0b21pY19pbmMoJnR0bV9nbG9iLmJvX2NvdW50KTsK Pj4gICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJmZiby0+YmFzZS5kZGVzdHJveSk7Cj4+ICAgICAg ICAgIElOSVRfTElTVF9IRUFEKCZmYm8tPmJhc2UubHJ1KTsKPj4gICAgICAgICAgSU5JVF9MSVNU X0hFQUQoJmZiby0+YmFzZS5zd2FwKTsKPj4gQEAgLTU4NCw3ICs1ODQsNyBAQCBzdGF0aWMgaW50 IHR0bV9ib19tb3ZlX3RvX2dob3N0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAg c3RhdGljIHZvaWQgdHRtX2JvX21vdmVfcGlwZWxpbmVfZXZpY3Qoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQo+PiAgIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 ID0gYm8tPmJkZXY7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqZnJv bSA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgYm8tPm1lbS5tZW1fdHlwZSk7Cj4+Cj4+ICAgICAg ICAgIC8qKgo+PiBAQCAtNjEwLDcgKzYxMCw3IEBAIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVh bnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIHBpcGVsaW5lLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSkKPj4gICB7Cj4+IC0gICAgICAgc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2Rl dmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKmZyb20gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIGJvLT5tZW0ubWVtX3R5cGUpOwo+ PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2Vy X3R5cGUoYmRldiwgbmV3X21lbS0+bWVtX3R5cGUpOwo+PiAgICAgICAgICBpbnQgcmV0ID0gMDsK Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4+IGluZGV4IGVlYWNhNWQxZWZlMy4uNjk3YzA4OGQx MDYzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKPj4gQEAgLTk2LDEwICs5NiwxMCBA QCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAo+PiAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIHR0bV9ib19pb19tZW1fcGZu KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0KQo+PiAgIHsKPj4gLSAg ICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+Cj4+IC0gICAgICAgaWYgKGJkZXYt PmRyaXZlci0+aW9fbWVtX3BmbikKPj4gLSAgICAgICAgICAgICAgIHJldHVybiBiZGV2LT5kcml2 ZXItPmlvX21lbV9wZm4oYm8sIHBhZ2Vfb2Zmc2V0KTsKPj4gKyAgICAgICBpZiAoYmRldi0+ZnVu Y3MtPmlvX21lbV9wZm4pCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gYmRldi0+ZnVuY3MtPmlv X21lbV9wZm4oYm8sIHBhZ2Vfb2Zmc2V0KTsKPj4KPj4gICAgICAgICAgcmV0dXJuIChiby0+bWVt LmJ1cy5vZmZzZXQgPj4gUEFHRV9TSElGVCkgKyBwYWdlX29mZnNldDsKPj4gICB9Cj4+IEBAIC0y MTcsNyArMjE3LDcgQEAgc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2luc2VydF9odWdlKHN0 cnVjdCB2bV9mYXVsdCAqdm1mLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2Vf dG9fcGZuKHR0bS0+cGFnZXNbcGFnZV9vZmZzZXQgKyBpXSkgIT0gcGZuICsgaSkKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXRfZmFsbGJhY2s7Cj4+ICAgICAgICAg ICAgICAgICAgfQo+PiAtICAgICAgIH0gZWxzZSBpZiAoYm8tPmJkZXYtPmRyaXZlci0+aW9fbWVt X3Bmbikgewo+PiArICAgICAgIH0gZWxzZSBpZiAoYm8tPmJkZXYtPmZ1bmNzLT5pb19tZW1fcGZu KSB7Cj4+ICAgICAgICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IGZhdWx0X3BhZ2Vfc2l6ZTsg KytpKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHRtX2JvX2lvX21lbV9wZm4o Ym8sIHBhZ2Vfb2Zmc2V0ICsgaSkgIT0gcGZuICsgaSkKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ290byBvdXRfZmFsbGJhY2s7Cj4+IEBAIC0yNzksNyArMjc5LDcgQEAgdm1f ZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHRfcmVzZXJ2ZWQoc3RydWN0IHZtX2ZhdWx0ICp2bWYsCj4+ ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHZtZi0+dm1hOwo+ PiAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gdm1hLT52bV9wcml2YXRl X2RhdGE7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsK Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAg ICB1bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0Owo+PiAgICAgICAgICB1bnNpZ25lZCBsb25nIHBh Z2VfbGFzdDsKPj4gICAgICAgICAgdW5zaWduZWQgbG9uZyBwZm47Cj4+IEBAIC00OTAsOCArNDkw LDggQEAgaW50IHR0bV9ib192bV9hY2Nlc3Moc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVu c2lnbmVkIGxvbmcgYWRkciwKPj4gICAgICAgICAgICAgICAgICByZXQgPSB0dG1fYm9fdm1fYWNj ZXNzX2ttYXAoYm8sIG9mZnNldCwgYnVmLCBsZW4sIHdyaXRlKTsKPj4gICAgICAgICAgICAgICAg ICBicmVhazsKPj4gICAgICAgICAgZGVmYXVsdDoKPj4gLSAgICAgICAgICAgICAgIGlmIChiby0+ YmRldi0+ZHJpdmVyLT5hY2Nlc3NfbWVtb3J5KQo+PiAtICAgICAgICAgICAgICAgICAgICAgICBy ZXQgPSBiby0+YmRldi0+ZHJpdmVyLT5hY2Nlc3NfbWVtb3J5KAo+PiArICAgICAgICAgICAgICAg aWYgKGJvLT5iZGV2LT5mdW5jcy0+YWNjZXNzX21lbW9yeSkKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgcmV0ID0gYm8tPmJkZXYtPmZ1bmNzLT5hY2Nlc3NfbWVtb3J5KAo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBibywgb2Zmc2V0LCBidWYsIGxlbiwgd3JpdGUpOwo+PiAg ICAgICAgICAgICAgICAgIGVsc2UKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1F SU87Cj4+IEBAIC01MTAsNyArNTEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRp b25zX3N0cnVjdCB0dG1fYm9fdm1fb3BzID0gewo+PiAgICAgICAgICAuYWNjZXNzID0gdHRtX2Jv X3ZtX2FjY2VzcywKPj4gICB9Owo+Pgo+PiAtc3RhdGljIHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqdHRtX2JvX3ZtX2xvb2t1cChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0YXRp YyBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnR0bV9ib192bV9sb29rdXAoc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2VzKQo+PiAgIHsK Pj4gQEAgLTU1Nyw5ICs1NTcsOCBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fbW1hcF92bWFfc2V0dXAo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHZtX2FyZWFfcwo+PiAgIH0KPj4K Pj4gICBpbnQgdHRtX2JvX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLAo+PiAtICAgICAgICAgICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYp Cj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldikKPj4gICB7Cj4+IC0g ICAgICAgc3RydWN0IHR0bV9ib19kcml2ZXIgKmRyaXZlcjsKPj4gICAgICAgICAgc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibzsKPj4gICAgICAgICAgaW50IHJldDsKPj4KPj4gQEAgLTU3MCwx MiArNTY5LDExIEBAIGludCB0dG1fYm9fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsCj4+ICAgICAgICAgIGlmICh1bmxpa2VseSghYm8pKQo+PiAgICAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pgo+PiAtICAgICAgIGRyaXZlciA9IGJvLT5i ZGV2LT5kcml2ZXI7Cj4+IC0gICAgICAgaWYgKHVubGlrZWx5KCFkcml2ZXItPnZlcmlmeV9hY2Nl c3MpKSB7Cj4+ICsgICAgICAgaWYgKHVubGlrZWx5KCFiby0+YmRldi0+ZnVuY3MtPnZlcmlmeV9h Y2Nlc3MpKSB7Cj4+ICAgICAgICAgICAgICAgICAgcmV0ID0gLUVQRVJNOwo+PiAgICAgICAgICAg ICAgICAgIGdvdG8gb3V0X3VucmVmOwo+PiAgICAgICAgICB9Cj4+IC0gICAgICAgcmV0ID0gZHJp dmVyLT52ZXJpZnlfYWNjZXNzKGJvLCBmaWxwKTsKPj4gKyAgICAgICByZXQgPSBiby0+YmRldi0+ ZnVuY3MtPnZlcmlmeV9hY2Nlc3MoYm8sIGZpbHApOwo+PiAgICAgICAgICBpZiAodW5saWtlbHko cmV0ICE9IDApKQo+PiAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X3VucmVmOwo+Pgo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9kZXZpY2UuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAw MDAwMDAwMDAuLjY1YWE2ZTRmNWM2Ywo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2RldmljZS5jCj4+IEBAIC0wLDAgKzEsMjIyIEBACj4+ICsvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQgKi8KPj4gKwo+PiArLyoKPj4gKyAq IENvcHlyaWdodCAoYykgMjAwNi0yMDA5IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVT QQo+PiArICogQ29weXJpZ2h0IDIwMjAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgo+PiAr ICoKPj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+PiArICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgo+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4+ICsgKiBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKPj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPj4g KyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPj4g KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAo+PiArICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVU SE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4+ICsgKiBPVEhFUiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwKPj4gKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+PiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNP RlRXQVJFLgo+PiArICoKPj4gKyAqIEF1dGhvcnM6IENocmlzdGlhbiBLw7ZuaWcKPj4gKyAqLwo+ PiArCj4+ICsjZGVmaW5lIHByX2ZtdChmbXQpICJbVFRNIERFVklDRV0gIiBmbXQKPj4gKwo+PiAr I2luY2x1ZGUgPGRybS90dG0vdHRtX21vZHVsZS5oPgo+PiArI2luY2x1ZGUgPGRybS90dG0vdHRt X2RldmljZS5oPgo+PiArI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgo+PiArI2luY2x1 ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgo+PiArCj4+ICsvKioKPj4gKyAqIHR0bV9nbG9i YWxfbXV0ZXggLSBwcm90ZWN0aW5nIHRoZSBnbG9iYWwgc3RhdGUKPj4gKyAqLwo+PiArREVGSU5F X01VVEVYKHR0bV9nbG9iYWxfbXV0ZXgpOwo+PiArdW5zaWduZWQgdHRtX2dsb2JfdXNlX2NvdW50 Owo+PiArc3RydWN0IHR0bV9nbG9iYWwgdHRtX2dsb2I7Cj4+ICtFWFBPUlRfU1lNQk9MKHR0bV9n bG9iKTsKPj4gKwo+PiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgdHRtX2JvX2NvdW50ID0gewo+ PiArICAgICAgIC5uYW1lID0gImJvX2NvdW50IiwKPj4gKyAgICAgICAubW9kZSA9IFNfSVJVR08K Pj4gK307Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIHR0bV9nbG9iYWxfa29ial9yZWxlYXNlKHN0cnVj dCBrb2JqZWN0ICprb2JqKTsKPj4gKwo+PiArc3RhdGljIHNzaXplX3QgdHRtX2dsb2JhbF9zaG93 KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqYnVmZmVyKQo+PiArewo+PiArICAgICAgIHN0 cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCB0dG1fZ2xv YmFsLCBrb2JqKTsKPj4gKwo+PiArICAgICAgIHJldHVybiBzbnByaW50ZihidWZmZXIsIFBBR0Vf U0laRSwgIiVkXG4iLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21pY19y ZWFkKCZnbG9iLT5ib19jb3VudCkpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgc3RydWN0IGF0dHJp YnV0ZSAqdHRtX2dsb2JhbF9hdHRyc1tdID0gewo+PiArICAgICAgICZ0dG1fYm9fY291bnQsCj4+ ICsgICAgICAgTlVMTAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNmc19v cHMgdHRtX2dsb2JhbF9vcHMgPSB7Cj4+ICsgICAgICAgLnNob3cgPSAmdHRtX2dsb2JhbF9zaG93 Cj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSB0dG1fZ2xvYl9rb2JqX3R5 cGUgID0gewo+PiArICAgICAgIC5yZWxlYXNlID0gJnR0bV9nbG9iYWxfa29ial9yZWxlYXNlLAo+ PiArICAgICAgIC5zeXNmc19vcHMgPSAmdHRtX2dsb2JhbF9vcHMsCj4+ICsgICAgICAgLmRlZmF1 bHRfYXR0cnMgPSB0dG1fZ2xvYmFsX2F0dHJzCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgdm9pZCB0 dG1fZ2xvYmFsX2tvYmpfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaikKPj4gK3sKPj4gKyAg ICAgICBzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9Cj4+ICsgICAgICAgICAgICAgICBjb250YWlu ZXJfb2Yoa29iaiwgc3RydWN0IHR0bV9nbG9iYWwsIGtvYmopOwo+PiArCj4+ICsgICAgICAgX19m cmVlX3BhZ2UoZ2xvYi0+ZHVtbXlfcmVhZF9wYWdlKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZv aWQgdHRtX2dsb2JhbF9yZWxlYXNlKHZvaWQpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9n bG9iYWwgKmdsb2IgPSAmdHRtX2dsb2I7Cj4+ICsKPj4gKyAgICAgICBtdXRleF9sb2NrKCZ0dG1f Z2xvYmFsX211dGV4KTsKPj4gKyAgICAgICBpZiAoLS10dG1fZ2xvYl91c2VfY291bnQgPiAwKQo+ PiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4+ICsKPj4gKyAgICAgICBrb2JqZWN0X2RlbCgm Z2xvYi0+a29iaik7Cj4+ICsgICAgICAga29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwo+PiArICAg ICAgIHR0bV9tZW1fZ2xvYmFsX3JlbGVhc2UoJnR0bV9tZW1fZ2xvYik7Cj4+ICsgICAgICAgbWVt c2V0KGdsb2IsIDAsIHNpemVvZigqZ2xvYikpOwo+PiArb3V0Ogo+PiArICAgICAgIG11dGV4X3Vu bG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgdHRtX2ds b2JhbF9pbml0KHZvaWQpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9nbG9iYWwgKmdsb2Ig PSAmdHRtX2dsb2I7Cj4+ICsgICAgICAgaW50IHJldCA9IDA7Cj4+ICsgICAgICAgdW5zaWduZWQg aTsKPj4gKwo+PiArICAgICAgIG11dGV4X2xvY2soJnR0bV9nbG9iYWxfbXV0ZXgpOwo+PiArICAg ICAgIGlmICgrK3R0bV9nbG9iX3VzZV9jb3VudCA+IDEpCj4+ICsgICAgICAgICAgICAgICBnb3Rv IG91dDsKPj4gKwo+PiArICAgICAgIHJldCA9IHR0bV9tZW1fZ2xvYmFsX2luaXQoJnR0bV9tZW1f Z2xvYik7Cj4+ICsgICAgICAgaWYgKHJldCkKPj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ PiArCj4+ICsgICAgICAgc3Bpbl9sb2NrX2luaXQoJmdsb2ItPmxydV9sb2NrKTsKPj4gKyAgICAg ICBnbG9iLT5kdW1teV9yZWFkX3BhZ2UgPSBhbGxvY19wYWdlKF9fR0ZQX1pFUk8gfCBHRlBfRE1B MzIpOwo+PiArCj4+ICsgICAgICAgaWYgKHVubGlrZWx5KGdsb2ItPmR1bW15X3JlYWRfcGFnZSA9 PSBOVUxMKSkgewo+PiArICAgICAgICAgICAgICAgcmV0ID0gLUVOT01FTTsKPj4gKyAgICAgICAg ICAgICAgIGdvdG8gb3V0Owo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgIGZvciAoaSA9IDA7 IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpCj4+ICsgICAgICAgICAgICAgICBJTklUX0xJ U1RfSEVBRCgmZ2xvYi0+c3dhcF9scnVbaV0pOwo+PiArICAgICAgIElOSVRfTElTVF9IRUFEKCZn bG9iLT5kZXZpY2VfbGlzdCk7Cj4+ICsgICAgICAgYXRvbWljX3NldCgmZ2xvYi0+Ym9fY291bnQs IDApOwo+PiArCj4+ICsgICAgICAgcmV0ID0ga29iamVjdF9pbml0X2FuZF9hZGQoCj4+ICsgICAg ICAgICAgICAgICAmZ2xvYi0+a29iaiwgJnR0bV9nbG9iX2tvYmpfdHlwZSwgdHRtX2dldF9rb2Jq KCksICJidWZmZXJfb2JqZWN0cyIpOwo+PiArICAgICAgIGlmICh1bmxpa2VseShyZXQgIT0gMCkp Cj4+ICsgICAgICAgICAgICAgICBrb2JqZWN0X3B1dCgmZ2xvYi0+a29iaik7Cj4+ICtvdXQ6Cj4+ ICsgICAgICAgbXV0ZXhfdW5sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKPj4gKyAgICAgICByZXR1 cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCB0dG1faW5pdF9zeXNtYW4oc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4gPSAmYmRldi0+c3lzbWFuOwo+PiArCj4+ICsgICAgICAgLyoKPj4gKyAgICAg ICAgKiBJbml0aWFsaXplIHRoZSBzeXN0ZW0gbWVtb3J5IGJ1ZmZlciB0eXBlLgo+PiArICAgICAg ICAqIE90aGVyIHR5cGVzIG5lZWQgdG8gYmUgZHJpdmVyIC8gSU9DVEwgaW5pdGlhbGl6ZWQuCj4+ ICsgICAgICAgICovCj4+ICsgICAgICAgbWFuLT51c2VfdHQgPSB0cnVlOwo+PiArCj4+ICsgICAg ICAgdHRtX3Jlc291cmNlX21hbmFnZXJfaW5pdChtYW4sIDApOwo+PiArICAgICAgIHR0bV9zZXRf ZHJpdmVyX21hbmFnZXIoYmRldiwgVFRNX1BMX1NZU1RFTSwgbWFuKTsKPj4gKyAgICAgICB0dG1f cmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+PiArfQo+PiArCj4+ICtzdGF0 aWMgdm9pZCB0dG1fZGV2aWNlX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9Cj4+ICsgICAg ICAgICAgICAgICBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHR0bV9kZXZpY2UsIHdxLndvcmsp Owo+PiArCj4+ICsgICAgICAgaWYgKCF0dG1fYm9fZGVsYXllZF9kZWxldGUoYmRldiwgZmFsc2Up KQo+PiArICAgICAgICAgICAgICAgc2NoZWR1bGVfZGVsYXllZF93b3JrKCZiZGV2LT53cSwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEhaIC8gMTAwKSA8IDEpID8g MSA6IEhaIC8gMTAwKTsKPj4gK30KPj4gKwo+PiAraW50IHR0bV9kZXZpY2VfaW5pdChzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9kZXZpY2VfZnVuY3MgKmZ1bmNzLAo+PiArICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAo+PiArICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBkcm1fdm1hX29mZnNldF9tYW5hZ2VyICp2bWFfbWFuYWdlciwK Pj4gKyAgICAgICAgICAgICAgICAgICBib29sIG5lZWRfZG1hMzIpCj4+ICt7Cj4+ICsgICAgICAg c3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPSAmdHRtX2dsb2I7Cj4+ICsgICAgICAgaW50IHJldDsK Pj4gKwo+PiArICAgICAgIGlmIChXQVJOX09OKHZtYV9tYW5hZ2VyID09IE5VTEwpKQo+PiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKyAgICAgICByZXQgPSB0dG1fZ2xv YmFsX2luaXQoKTsKPj4gKyAgICAgICBpZiAocmV0KQo+PiArICAgICAgICAgICAgICAgcmV0dXJu IHJldDsKPj4gKwo+PiArICAgICAgIGJkZXYtPmZ1bmNzID0gZnVuY3M7Cj4+ICsKPj4gKyAgICAg ICB0dG1faW5pdF9zeXNtYW4oYmRldik7Cj4+ICsKPj4gKyAgICAgICBiZGV2LT52bWFfbWFuYWdl ciA9IHZtYV9tYW5hZ2VyOwo+PiArICAgICAgIElOSVRfREVMQVlFRF9XT1JLKCZiZGV2LT53cSwg dHRtX2RldmljZV9kZWxheWVkX3dvcmtxdWV1ZSk7Cj4+ICsgICAgICAgSU5JVF9MSVNUX0hFQUQo JmJkZXYtPmRkZXN0cm95KTsKPj4gKyAgICAgICBiZGV2LT5kZXZfbWFwcGluZyA9IG1hcHBpbmc7 Cj4+ICsgICAgICAgYmRldi0+bmVlZF9kbWEzMiA9IG5lZWRfZG1hMzI7Cj4+ICsgICAgICAgbXV0 ZXhfbG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+ICsgICAgICAgbGlzdF9hZGRfdGFpbCgmYmRl di0+ZGV2aWNlX2xpc3QsICZnbG9iLT5kZXZpY2VfbGlzdCk7Cj4+ICsgICAgICAgbXV0ZXhfdW5s b2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKPj4gKwo+PiArICAgICAgIHJldHVybiAwOwo+PiArfQo+ PiArRVhQT1JUX1NZTUJPTCh0dG1fZGV2aWNlX2luaXQpOwo+PiArCj4+ICtpbnQgdHRtX2Rldmlj ZV9yZWxlYXNlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KQo+PiArewo+PiArICAgICAgIHN0cnVj dCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOwo+PiArICAgICAgIHN0cnVjdCB0dG1fcmVz b3VyY2VfbWFuYWdlciAqbWFuOwo+PiArICAgICAgIGludCByZXQgPSAwOwo+PiArICAgICAgIHVu c2lnbmVkIGk7Cj4+ICsKPj4gKyAgICAgICBtYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIFRU TV9QTF9TWVNURU0pOwo+PiArICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1h biwgZmFsc2UpOwo+PiArICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIoYmRldiwgVFRNX1BM X1NZU1RFTSwgTlVMTCk7Cj4+ICsKPj4gKyAgICAgICBtdXRleF9sb2NrKCZ0dG1fZ2xvYmFsX211 dGV4KTsKPj4gKyAgICAgICBsaXN0X2RlbCgmYmRldi0+ZGV2aWNlX2xpc3QpOwo+PiArICAgICAg IG11dGV4X3VubG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+ICsKPj4gKyAgICAgICBjYW5jZWxf ZGVsYXllZF93b3JrX3N5bmMoJmJkZXYtPndxKTsKPj4gKwo+PiArICAgICAgIGlmICh0dG1fYm9f ZGVsYXllZF9kZWxldGUoYmRldiwgdHJ1ZSkpCj4+ICsgICAgICAgICAgICAgICBwcl9kZWJ1Zygi RGVsYXllZCBkZXN0cm95IGxpc3Qgd2FzIGNsZWFuXG4iKTsKPj4gKwo+PiArICAgICAgIHNwaW5f bG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBUVE1fTUFY X0JPX1BSSU9SSVRZOyArK2kpCj4+ICsgICAgICAgICAgICAgICBpZiAobGlzdF9lbXB0eSgmbWFu LT5scnVbMF0pKQo+PiArICAgICAgICAgICAgICAgICAgICAgICBwcl9kZWJ1ZygiU3dhcCBsaXN0 ICVkIHdhcyBjbGVhblxuIiwgaSk7Cj4+ICsgICAgICAgc3Bpbl91bmxvY2soJmdsb2ItPmxydV9s b2NrKTsKPj4gKwo+PiArICAgICAgIGlmICghcmV0KQo+PiArICAgICAgICAgICAgICAgdHRtX2ds b2JhbF9yZWxlYXNlKCk7Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gcmV0Owo+PiArfQo+PiArRVhQ T1JUX1NZTUJPTCh0dG1fZGV2aWNlX3JlbGVhc2UpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9l eGVjYnVmX3V0aWwuYwo+PiBpbmRleCA4YThmMWE2YTgzYTYuLmI5OGViNGMxZTVlYyAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKPj4gQEAgLTUxLDE0ICs1MSwx NCBAQCB2b2lkIHR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKHN0cnVjdCB3d19hY3F1aXJlX2N0 eCAqdGlja2V0LAo+PiAgICAgICAgICBpZiAobGlzdF9lbXB0eShsaXN0KSkKPj4gICAgICAgICAg ICAgICAgICByZXR1cm47Cj4+Cj4+IC0gICAgICAgc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVf bG9jayk7Cj4+ICsgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ICAgICAg ICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksIGxpc3QsIGhlYWQpIHsKPj4gICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gZW50cnktPmJvOwo+Pgo+PiAg ICAgICAgICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCBOVUxMKTsKPj4gICAg ICAgICAgICAgICAgICBkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7Cj4+ICAgICAgICAg IH0KPj4gLSAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAg ICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Cj4+ICAgICAgICAgIGlmICh0 aWNrZXQpCj4+ICAgICAgICAgICAgICAgICAgd3dfYWNxdWlyZV9maW5pKHRpY2tldCk7Cj4+IEBA IC0xNTQsNyArMTU0LDcgQEAgdm9pZCB0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0 IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCj4+ICAgICAgICAgIGlmIChsaXN0X2VtcHR5KGxpc3Qp KQo+PiAgICAgICAgICAgICAgICAgIHJldHVybjsKPj4KPj4gLSAgICAgICBzcGluX2xvY2soJnR0 bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAgICAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9s b2NrKTsKPj4gICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgbGlzdCwgaGVhZCkg ewo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8gPSBlbnRy eS0+Ym87Cj4+Cj4+IEBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCB0dG1fZXVfZmVuY2VfYnVmZmVy X29iamVjdHMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCj4+ICAgICAgICAgICAgICAg ICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOwo+PiAgICAgICAgICAgICAgICAg IGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPj4gICAgICAgICAgfQo+PiAtICAgICAg IHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgc3Bpbl91bmxv Y2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4gICAgICAgICAgaWYgKHRpY2tldCkKPj4gICAgICAg ICAgICAgICAgICB3d19hY3F1aXJlX2ZpbmkodGlja2V0KTsKPj4gICB9Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX21lbW9yeS5jCj4+IGluZGV4IDg5ZDUwZjM4YzBmMi4uNmE2YzEwNzJkODMxIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYwo+PiBAQCAtMjc1LDcgKzI3NSw3IEBAIHN0YXRpYyB2 b2lkIHR0bV9zaHJpbmsoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCBib29sIGZyb21fd3Es Cj4+Cj4+ICAgICAgICAgIHdoaWxlICh0dG1fem9uZXNfYWJvdmVfc3dhcF90YXJnZXQoZ2xvYiwg ZnJvbV93cSwgZXh0cmEpKSB7Cj4+ICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmdsb2It PmxvY2spOwo+PiAtICAgICAgICAgICAgICAgcmV0ID0gdHRtX2JvX3N3YXBvdXQoJnR0bV9ib19n bG9iLCBjdHgpOwo+PiArICAgICAgICAgICAgICAgcmV0ID0gdHRtX2JvX3N3YXBvdXQoJnR0bV9n bG9iLCBjdHgpOwo+PiAgICAgICAgICAgICAgICAgIHNwaW5fbG9jaygmZ2xvYi0+bG9jayk7Cj4+ ICAgICAgICAgICAgICAgICAgaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fcmFuZ2VfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFuYWdl ci5jCj4+IGluZGV4IDFkYTBlMjc3YzUxMS4uYmQzYzZjNmI0MzI4IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2VyLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFuYWdlci5jCj4+IEBAIC0xMTIsNyArMTEyLDcgQEAgc3Rh dGljIHZvaWQgdHRtX3JhbmdlX21hbl9mcmVlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAq bWFuLAo+Pgo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVu YyB0dG1fcmFuZ2VfbWFuYWdlcl9mdW5jOwo+Pgo+PiAtaW50IHR0bV9yYW5nZV9tYW5faW5pdChz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2ludCB0dG1fcmFuZ2VfbWFuX2luaXQoc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IHR5cGUsIGJvb2wgdXNlX3R0LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIHBfc2l6ZSkKPj4gICB7Cj4+IEBAIC0xMzksNyArMTM5LDcgQEAgaW50IHR0bV9yYW5nZV9t YW5faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICB9Cj4+ICAgRVhQT1JUX1NZ TUJPTCh0dG1fcmFuZ2VfbWFuX2luaXQpOwo+Pgo+PiAtaW50IHR0bV9yYW5nZV9tYW5fZmluaShz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2ludCB0dG1fcmFuZ2VfbWFuX2Zpbmkoc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IHR5cGUpCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1h biA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgdHlwZSk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmVz b3VyY2UuYwo+PiBpbmRleCBiMzI1YjkyNjQyMDMuLjdmYWE0YTZhZTI4ZiAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmVzb3VyY2UuYwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jCj4+IEBAIC04Myw3ICs4Myw3IEBAIEVYUE9SVF9TWU1C T0wodHRtX3Jlc291cmNlX21hbmFnZXJfaW5pdCk7Cj4+ICAgICogRm9yY2UgYWxsIHRoZSBvYmpl Y3RzIG91dCBvZiBhIG1lbW9yeSBtYW5hZ2VyIHVudGlsIGNsZWFuLgo+PiAgICAqIFBhcnQgb2Yg bWVtb3J5IG1hbmFnZXIgY2xlYW51cCBzZXF1ZW5jZS4KPj4gICAgKi8KPj4gLWludCB0dG1fcmVz b3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LAo+PiAraW50IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oc3RydWN0IHR0 bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPj4gICB7Cj4+ICAgICAgICAg IHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4+IEBAIC05MSw3ICs5MSw3IEBAIGlu dCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgIC5ub193YWl0X2dwdSA9IGZhbHNlLAo+PiAg ICAgICAgICAgICAgICAgIC5mbGFncyA9IFRUTV9PUFRfRkxBR19GT1JDRV9BTExPQwo+PiAgICAg ICAgICB9Owo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gJnR0bV9ib19n bG9iOwo+PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOwo+PiAg ICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPj4gICAgICAgICAgaW50IHJldDsKPj4g ICAgICAgICAgdW5zaWduZWQgaTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4+IGluZGV4IDNlNWRkNjI3 MWQ0Yy4uOTVkZmZlZTgyOTlkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV90dC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKPj4gQEAgLTQ0LDcg KzQ0LDcgQEAKPj4gICAgKi8KPj4gICBpbnQgdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLCBib29sIHplcm9fYWxsb2MpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYgPSBiby0+YmRldjsKPj4gICAgICAgICAgdWludDMyX3QgcGFnZV9mbGFncyA9IDA7 Cj4+Cj4+ICAgICAgICAgIGRtYV9yZXN2X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwo+PiBA QCAtNzMsNyArNzMsNyBAQCBpbnQgdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLCBib29sIHplcm9fYWxsb2MpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7Cj4+ICAgICAgICAgIH0KPj4KPj4gLSAgICAgICBiby0+dHRtID0gYmRldi0+ZHJpdmVyLT50 dG1fdHRfY3JlYXRlKGJvLCBwYWdlX2ZsYWdzKTsKPj4gKyAgICAgICBiby0+dHRtID0gYmRldi0+ ZnVuY3MtPnR0bV90dF9jcmVhdGUoYm8sIHBhZ2VfZmxhZ3MpOwo+PiAgICAgICAgICBpZiAodW5s aWtlbHkoYm8tPnR0bSA9PSBOVUxMKSkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01F TTsKPj4KPj4gQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMgaW50IHR0bV9zZ190dF9hbGxvY19w YWdlX2RpcmVjdG9yeShzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtKQo+PiAgICAgICAgICByZXR1cm4g MDsKPj4gICB9Cj4+Cj4+IC12b2lkIHR0bV90dF9kZXN0cm95X2NvbW1vbihzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiArdm9pZCB0dG1fdHRfZGVzdHJv eV9jb21tb24oc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4g ICB7Cj4+ICAgICAgICAgIHR0bV90dF91bnBvcHVsYXRlKGJkZXYsIHR0bSk7Cj4+Cj4+IEBAIC0x MjUsOSArMTI1LDkgQEAgdm9pZCB0dG1fdHRfZGVzdHJveV9jb21tb24oc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJP TCh0dG1fdHRfZGVzdHJveV9jb21tb24pOwo+Pgo+PiAtdm9pZCB0dG1fdHRfZGVzdHJveShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiArdm9pZCB0dG1f dHRfZGVzdHJveShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+ PiAgIHsKPj4gLSAgICAgICBiZGV2LT5kcml2ZXItPnR0bV90dF9kZXN0cm95KGJkZXYsIHR0bSk7 Cj4+ICsgICAgICAgYmRldi0+ZnVuY3MtPnR0bV90dF9kZXN0cm95KGJkZXYsIHR0bSk7Cj4+ICAg fQo+Pgo+PiAgIHN0YXRpYyB2b2lkIHR0bV90dF9pbml0X2ZpZWxkcyhzdHJ1Y3QgdHRtX3R0ICp0 dG0sCj4+IEBAIC0yNTgsNyArMjU4LDcgQEAgaW50IHR0bV90dF9zd2FwaW4oc3RydWN0IHR0bV90 dCAqdHRtKQo+PiAgICAgICAgICByZXR1cm4gcmV0Owo+PiAgIH0KPj4KPj4gLWludCB0dG1fdHRf c3dhcG91dChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+ PiAraW50IHR0bV90dF9zd2Fwb3V0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqc3dhcF9z cGFjZTsKPj4gICAgICAgICAgc3RydWN0IGZpbGUgKnN3YXBfc3RvcmFnZTsKPj4gQEAgLTMwOCw3 ICszMDgsNyBAQCBpbnQgdHRtX3R0X3N3YXBvdXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs IHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICAgICAgICAgcmV0dXJuIHJldDsKPj4gICB9Cj4+Cj4+ IC1zdGF0aWMgdm9pZCB0dG1fdHRfYWRkX21hcHBpbmcoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gK3N0YXRpYyB2b2lkIHR0bV90dF9hZGRfbWFwcGlu ZyhzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4g ICAgICAgICAgcGdvZmZfdCBpOwo+Pgo+PiBAQCAtMzE5LDcgKzMxOSw3IEBAIHN0YXRpYyB2b2lk IHR0bV90dF9hZGRfbWFwcGluZyhzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0 bV90dCAqdHRtKQo+PiAgICAgICAgICAgICAgICAgIHR0bS0+cGFnZXNbaV0tPm1hcHBpbmcgPSBi ZGV2LT5kZXZfbWFwcGluZzsKPj4gICB9Cj4+Cj4+IC1pbnQgdHRtX3R0X3BvcHVsYXRlKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAraW50IHR0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRt LCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICB7Cj4+ICAgICAgICAgIGludCBy ZXQ7Cj4+IEBAIC0zMzAsOCArMzMwLDggQEAgaW50IHR0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgaWYgKHR0bV90dF9pc19wb3B1bGF0ZWQodHRt KSkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4KPj4gLSAgICAgICBpZiAoYmRldi0+ ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUpCj4+IC0gICAgICAgICAgICAgICByZXQgPSBiZGV2LT5k cml2ZXItPnR0bV90dF9wb3B1bGF0ZShiZGV2LCB0dG0sIGN0eCk7Cj4+ICsgICAgICAgaWYgKGJk ZXYtPmZ1bmNzLT50dG1fdHRfcG9wdWxhdGUpCj4+ICsgICAgICAgICAgICAgICByZXQgPSBiZGV2 LT5mdW5jcy0+dHRtX3R0X3BvcHVsYXRlKGJkZXYsIHR0bSwgY3R4KTsKPj4gICAgICAgICAgZWxz ZQo+PiAgICAgICAgICAgICAgICAgIHJldCA9IHR0bV9wb29sX3BvcHVsYXRlKHR0bSwgY3R4KTsK Pj4gICAgICAgICAgaWYgKCFyZXQpCj4+IEBAIC0zNTQsMTUgKzM1NCwxNSBAQCBzdGF0aWMgdm9p ZCB0dG1fdHRfY2xlYXJfbWFwcGluZyhzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgICAgICAgIH0K Pj4gICB9Cj4+Cj4+IC12b2lkIHR0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+PiArdm9pZCB0dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsK Pj4gICAgICAgICAgaWYgKCF0dG1fdHRfaXNfcG9wdWxhdGVkKHR0bSkpCj4+ICAgICAgICAgICAg ICAgICAgcmV0dXJuOwo+Pgo+PiAgICAgICAgICB0dG1fdHRfY2xlYXJfbWFwcGluZyh0dG0pOwo+ PiAtICAgICAgIGlmIChiZGV2LT5kcml2ZXItPnR0bV90dF91bnBvcHVsYXRlKQo+PiAtICAgICAg ICAgICAgICAgYmRldi0+ZHJpdmVyLT50dG1fdHRfdW5wb3B1bGF0ZShiZGV2LCB0dG0pOwo+PiAr ICAgICAgIGlmIChiZGV2LT5mdW5jcy0+dHRtX3R0X3VucG9wdWxhdGUpCj4+ICsgICAgICAgICAg ICAgICBiZGV2LT5mdW5jcy0+dHRtX3R0X3VucG9wdWxhdGUoYmRldiwgdHRtKTsKPj4gICAgICAg ICAgZWxzZQo+PiAgICAgICAgICAgICAgICAgIHR0bV9wb29sX3VucG9wdWxhdGUodHRtKTsKPj4g ICB9Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMKPj4gaW5kZXggZjIxODgxZTA4 N2RiLi5kMDIyOGViMTYxNDcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2JsaXQuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0 LmMKPj4gQEAgLTQ2NSwxMyArNDY1LDEzIEBAIGludCB2bXdfYm9fY3B1X2JsaXQoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpkc3QsCj4+ICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfYXNzZXJ0 X2hlbGQoc3JjLT5iYXNlLnJlc3YpOwo+Pgo+PiAgICAgICAgICBpZiAoIXR0bV90dF9pc19wb3B1 bGF0ZWQoZHN0LT50dG0pKSB7Cj4+IC0gICAgICAgICAgICAgICByZXQgPSBkc3QtPmJkZXYtPmRy aXZlci0+dHRtX3R0X3BvcHVsYXRlKGRzdC0+YmRldiwgZHN0LT50dG0sICZjdHgpOwo+PiArICAg ICAgICAgICAgICAgcmV0ID0gZHN0LT5iZGV2LT5mdW5jcy0+dHRtX3R0X3BvcHVsYXRlKGRzdC0+ YmRldiwgZHN0LT50dG0sICZjdHgpOwo+PiAgICAgICAgICAgICAgICAgIGlmIChyZXQpCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiAgICAgICAgICB9Cj4+Cj4+ICAg ICAgICAgIGlmICghdHRtX3R0X2lzX3BvcHVsYXRlZChzcmMtPnR0bSkpIHsKPj4gLSAgICAgICAg ICAgICAgIHJldCA9IHNyYy0+YmRldi0+ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUoc3JjLT5iZGV2 LCBzcmMtPnR0bSwgJmN0eCk7Cj4+ICsgICAgICAgICAgICAgICByZXQgPSBzcmMtPmJkZXYtPmZ1 bmNzLT50dG1fdHRfcG9wdWxhdGUoc3JjLT5iZGV2LCBzcmMtPnR0bSwgJmN0eCk7Cj4+ICAgICAg ICAgICAgICAgICAgaWYgKHJldCkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4+ICAgICAgICAgIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCj4+IGluZGV4 IDlhNjZiYTI1NDMyNi4uY2Y4ZDlmMTE0NWRlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9iby5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2JvLmMKPj4gQEAgLTU0Niw3ICs1NDYsNyBAQCBpbnQgdm13X2JvX2luaXQoc3RydWN0IHZt d19wcml2YXRlICpkZXZfcHJpdiwKPj4gICAgICAgICAgICAgICAgICB2b2lkICgqYm9fZnJlZSko c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykpCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qg dHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBpbnRlcnJ1cHRpYmxlLCBmYWxzZSB9Owo+PiAtICAg ICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gJmRldl9wcml2LT5iZGV2Owo+PiArICAg ICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gJmRldl9wcml2LT5iZGV2Owo+PiAgICAgICAg ICBzaXplX3QgYWNjX3NpemU7Cj4+ICAgICAgICAgIGludCByZXQ7Cj4+ICAgICAgICAgIGJvb2wg dXNlciA9IChib19mcmVlID09ICZ2bXdfdXNlcl9ib19kZXN0cm95KTsKPj4gQEAgLTEwNTgsNyAr MTA1OCw3IEBAIGludCB2bXdfdXNlcl9ib19yZWZlcmVuY2Uoc3RydWN0IHR0bV9vYmplY3RfZmls ZSAqdGZpbGUsCj4+ICAgdm9pZCB2bXdfYm9fZmVuY2Vfc2luZ2xlKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZtd19mZW5j ZV9vYmogKmZlbmNlKQo+PiAgIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJk ZXY7Cj4+Cj4+ICAgICAgICAgIHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+PiAgICAg ICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihiZGV2LCBzdHJ1Y3Qgdm13X3ByaXZhdGUsIGJkZXYp Owo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwo+PiBpbmRleCBiZGI3YTVlOTY1NjAu LmZjZGEzYjc2ZTBkZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZHJ2LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKPj4g QEAgLTg3Miw3ICs4NzIsNyBAQCBzdGF0aWMgaW50IHZtd19kcml2ZXJfbG9hZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGNoaXBzZXQpCj4+ICAgICAgICAgIGRybV92bWFf b2Zmc2V0X21hbmFnZXJfaW5pdCgmZGV2X3ByaXYtPnZtYV9tYW5hZ2VyLAo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0ZJTEVfUEFHRV9PRkZTRVRfU1RBUlQsCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fRklMRV9QQUdFX09GRlNF VF9TSVpFKTsKPj4gLSAgICAgICByZXQgPSB0dG1fYm9fZGV2aWNlX2luaXQoJmRldl9wcml2LT5i ZGV2LAo+PiArICAgICAgIHJldCA9IHR0bV9kZXZpY2VfaW5pdCgmZGV2X3ByaXYtPmJkZXYsCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdm13X2JvX2RyaXZlciwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5n LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRldl9wcml2LT52bWFfbWFu YWdlciwKPj4gQEAgLTk5Myw3ICs5OTMsNyBAQCBzdGF0aWMgaW50IHZtd19kcml2ZXJfbG9hZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGNoaXBzZXQpCj4+ICAgICAgICAg ICAgICAgICAgdm13X2dtcmlkX21hbl9maW5pKGRldl9wcml2LCBWTVdfUExfR01SKTsKPj4gICAg ICAgICAgdm13X3ZyYW1fbWFuYWdlcl9maW5pKGRldl9wcml2KTsKPj4gICBvdXRfbm9fdnJhbToK Pj4gLSAgICAgICAodm9pZCl0dG1fYm9fZGV2aWNlX3JlbGVhc2UoJmRldl9wcml2LT5iZGV2KTsK Pj4gKyAgICAgICAodm9pZCl0dG1fZGV2aWNlX3JlbGVhc2UoJmRldl9wcml2LT5iZGV2KTsKPj4g ICBvdXRfbm9fYmRldjoKPj4gICAgICAgICAgdm13X2ZlbmNlX21hbmFnZXJfdGFrZWRvd24oZGV2 X3ByaXYtPmZtYW4pOwo+PiAgIG91dF9ub19mbWFuOgo+PiBAQCAtMTA0NSw3ICsxMDQ1LDcgQEAg c3RhdGljIHZvaWQgdm13X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4g ICAgICAgICAgaWYgKGRldl9wcml2LT5oYXNfbW9iKQo+PiAgICAgICAgICAgICAgICAgIHZtd19n bXJpZF9tYW5fZmluaShkZXZfcHJpdiwgVk1XX1BMX01PQik7Cj4+ICAgICAgICAgIHZtd192cmFt X21hbmFnZXJfZmluaShkZXZfcHJpdik7Cj4+IC0gICAgICAgKHZvaWQpIHR0bV9ib19kZXZpY2Vf cmVsZWFzZSgmZGV2X3ByaXYtPmJkZXYpOwo+PiArICAgICAgICh2b2lkKSB0dG1fZGV2aWNlX3Jl bGVhc2UoJmRldl9wcml2LT5iZGV2KTsKPj4gICAgICAgICAgZHJtX3ZtYV9vZmZzZXRfbWFuYWdl cl9kZXN0cm95KCZkZXZfcHJpdi0+dm1hX21hbmFnZXIpOwo+PiAgICAgICAgICB2bXdfcmVsZWFz ZV9kZXZpY2VfbGF0ZShkZXZfcHJpdik7Cj4+ICAgICAgICAgIHZtd19mZW5jZV9tYW5hZ2VyX3Rh a2Vkb3duKGRldl9wcml2LT5mbWFuKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgK Pj4gaW5kZXggYjQ1YmVjYmIwMGY4Li5jOGQzZTNlZWVkNDAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5oCj4+IEBAIC00OTAsNyArNDkwLDcgQEAgZW51bSB2bXdfc21fdHlw ZSB7Cj4+ICAgfTsKPj4KPj4gICBzdHJ1Y3Qgdm13X3ByaXZhdGUgewo+PiAtICAgICAgIHN0cnVj dCB0dG1fYm9fZGV2aWNlIGJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgYmRldjsK Pj4KPj4gICAgICAgICAgc3RydWN0IHZtd19maWZvX3N0YXRlIGZpZm87Cj4+Cj4+IEBAIC0xMDE0 LDcgKzEwMTQsNyBAQCBleHRlcm4gc3RydWN0IHR0bV9wbGFjZW1lbnQgdm13X2V2aWN0YWJsZV9w bGFjZW1lbnQ7Cj4+ICAgZXh0ZXJuIHN0cnVjdCB0dG1fcGxhY2VtZW50IHZtd19zcmZfcGxhY2Vt ZW50Owo+PiAgIGV4dGVybiBzdHJ1Y3QgdHRtX3BsYWNlbWVudCB2bXdfbW9iX3BsYWNlbWVudDsK Pj4gICBleHRlcm4gc3RydWN0IHR0bV9wbGFjZW1lbnQgdm13X25vbmZpeGVkX3BsYWNlbWVudDsK Pj4gLWV4dGVybiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciB2bXdfYm9fZHJpdmVyOwo+PiArZXh0ZXJu IHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIHZtd19ib19kcml2ZXI7Cj4+ICAgZXh0ZXJuIGNvbnN0 IHN0cnVjdCB2bXdfc2dfdGFibGUgKgo+PiAgIHZtd19ib19zZ190YWJsZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvKTsKPj4gICBleHRlcm4gaW50IHZtd19ib19jcmVhdGVfYW5kX3BvcHVs YXRlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfcmVzb3VyY2UuYwo+PiBpbmRleCA1ZTkyMmQ5ZDVmMmMuLjIwNTQyNDAxN2UyMyAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCj4+IEBAIC04 NTgsNyArODU4LDcgQEAgdm9pZCB2bXdfcXVlcnlfbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKm1lbSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCAqZHhfcXVlcnlfbW9iOwo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0g Ym8tPmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsK Pj4gICAgICAgICAgc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdjsKPj4KPj4KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYwo+PiBpbmRleCA5NzVkMDZjMmUz NWUuLjgxYWVjZDcyYTk3MSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfdHRtX2J1ZmZlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3R0bV9idWZmZXIuYwo+PiBAQCAtNDg5LDcgKzQ4OSw3IEBAIGNvbnN0IHN0cnVjdCB2bXdfc2df dGFibGUgKnZtd19ib19zZ190YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAg IH0KPj4KPj4KPj4gLXN0YXRpYyBpbnQgdm13X3R0bV9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+PiArc3RhdGljIGludCB2bXdfdHRtX2JpbmQoc3RydWN0IHR0bV9kZXZpY2UgKmJk ZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVj dCB0dG1fcmVzb3VyY2UgKmJvX21lbSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCB2bXdfdHRt X3R0ICp2bXdfYmUgPQo+PiBAQCAtNTMzLDcgKzUzMyw3IEBAIHN0YXRpYyBpbnQgdm13X3R0bV9i aW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICByZXR1cm4gcmV0Owo+ PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHZtd190dG1fdW5iaW5kKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQgdm13X3R0bV91bmJpbmQoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0 dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qgdm13X3R0bV90dCAqdm13X2JlID0KPj4gQEAg LTU1OSw3ICs1NTksNyBAQCBzdGF0aWMgdm9pZCB2bXdfdHRtX3VuYmluZChzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKPj4gICB9Cj4+Cj4+Cj4+IC1zdGF0aWMgdm9pZCB2bXdfdHRtX2Rlc3Ry b3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gK3N0 YXRpYyB2b2lkIHZtd190dG1fZGVzdHJveShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0 IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHZtd190dG1fdHQgKnZtd19i ZSA9Cj4+ICAgICAgICAgICAgICAgICAgY29udGFpbmVyX29mKHR0bSwgc3RydWN0IHZtd190dG1f dHQsIGRtYV90dG0udHRtKTsKPj4gQEAgLTU3OSw3ICs1NzksNyBAQCBzdGF0aWMgdm9pZCB2bXdf dHRtX2Rlc3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0 bSkKPj4gICB9Cj4+Cj4+Cj4+IC1zdGF0aWMgaW50IHZtd190dG1fcG9wdWxhdGUoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgaW50IHZtd190dG1fcG9wdWxhdGUoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICB7Cj4+ICAg ICAgICAgIHN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfdHQgPQo+PiBAQCAtNjA4LDcgKzYwOCw3IEBA IHN0YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4gICAgICAgICAgcmV0dXJuIHJldDsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCB2bXdfdHRt X3VucG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCB2 bXdfdHRtX3VucG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAg ICAgc3RydWN0IHZtd190dG1fdHQgKnZtd190dCA9IGNvbnRhaW5lcl9vZih0dG0sIHN0cnVjdCB2 bXdfdHRtX3R0LAo+PiBAQCAtNjc1LDcgKzY3NSw3IEBAIHN0YXRpYyBpbnQgdm13X3ZlcmlmeV9h Y2Nlc3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IGZpbGUgKmZpbHApCj4+ ICAgICAgICAgIHJldHVybiB2bXdfdXNlcl9ib192ZXJpZnlfYWNjZXNzKGJvLCB0ZmlsZSk7Cj4+ ICAgfQo+Pgo+PiAtc3RhdGljIGludCB2bXdfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICtzdGF0aWMgaW50 IHZtd190dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fcmVzb3VyY2UgKm1lbSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCB2bXdfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBjb250YWluZXJfb2YoYmRldiwgc3RydWN0IHZtd19wcml2YXRlLCBiZGV2KTsK Pj4KPj4gQEAgLTcyNyw3ICs3MjcsNyBAQCBzdGF0aWMgdm9pZCB2bXdfc3dhcF9ub3RpZnkoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICB9Cj4+Cj4+Cj4+IC1zdHJ1Y3QgdHRtX2Jv X2RyaXZlciB2bXdfYm9fZHJpdmVyID0gewo+PiArc3RydWN0IHR0bV9kZXZpY2VfZnVuY3Mgdm13 X2JvX2RyaXZlciA9IHsKPj4gICAgICAgICAgLnR0bV90dF9jcmVhdGUgPSAmdm13X3R0bV90dF9j cmVhdGUsCj4+ICAgICAgICAgIC50dG1fdHRfcG9wdWxhdGUgPSAmdm13X3R0bV9wb3B1bGF0ZSwK Pj4gICAgICAgICAgLnR0bV90dF91bnBvcHVsYXRlID0gJnZtd190dG1fdW5wb3B1bGF0ZSwKPj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaCBiL2luY2x1ZGUv ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaAo+PiBpbmRleCAxMjhmODgxNzRkMzIuLjVlOTJkNzAx NDEyNSAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oCj4+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaAo+PiBAQCAtMTcyLDE5ICsx NzIsMTkgQEAgc3RydWN0IGRybV92cmFtX21tIHsKPj4gICAgICAgICAgdWludDY0X3QgdnJhbV9i YXNlOwo+PiAgICAgICAgICBzaXplX3QgdnJhbV9zaXplOwo+Pgo+PiAtICAgICAgIHN0cnVjdCB0 dG1fYm9fZGV2aWNlIGJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgYmRldjsKPj4g ICB9Owo+Pgo+PiAgIC8qKgo+PiAgICAqIGRybV92cmFtX21tX29mX2JkZXYoKSAtIFwKPj4gLSAg ICAgICBSZXR1cm5zIHRoZSBjb250YWluZXIgb2YgdHlwZSAmc3RydWN0IHR0bV9ib19kZXZpY2Ug Zm9yIGZpZWxkIGJkZXYuCj4+ICsgICAgICAgUmV0dXJucyB0aGUgY29udGFpbmVyIG9mIHR5cGUg JnN0cnVjdCB0dG1fZGV2aWNlIGZvciBmaWVsZCBiZGV2Lgo+PiAgICAqIEBiZGV2OiAgICAgIHRo ZSBUVE0gQk8gZGV2aWNlCj4+ICAgICoKPj4gICAgKiBSZXR1cm5zOgo+PiAgICAqIFRoZSBjb250 YWluaW5nIGluc3RhbmNlIG9mICZzdHJ1Y3QgZHJtX3ZyYW1fbW0KPj4gICAgKi8KPj4gICBzdGF0 aWMgaW5saW5lIHN0cnVjdCBkcm1fdnJhbV9tbSAqZHJtX3ZyYW1fbW1fb2ZfYmRldigKPj4gLSAg ICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2Rl dmljZSAqYmRldikKPj4gICB7Cj4+ICAgICAgICAgIHJldHVybiBjb250YWluZXJfb2YoYmRldiwg c3RydWN0IGRybV92cmFtX21tLCBiZGV2KTsKPj4gICB9Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+PiBp bmRleCBjOTZhMjVkNTcxYzguLmEwMjkzNWUwZDEyMSAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19hcGkuaAo+PiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5o Cj4+IEBAIC00NCw5ICs0NCw5IEBACj4+Cj4+ICAgI2luY2x1ZGUgInR0bV9yZXNvdXJjZS5oIgo+ Pgo+PiAtc3RydWN0IHR0bV9ib19nbG9iYWw7Cj4+ICtzdHJ1Y3QgdHRtX2dsb2JhbDsKPj4KPj4g LXN0cnVjdCB0dG1fYm9fZGV2aWNlOwo+PiArc3RydWN0IHR0bV9kZXZpY2U7Cj4+Cj4+ICAgc3Ry dWN0IGRybV9tbV9ub2RlOwo+Pgo+PiBAQCAtMTIwLDcgKzEyMCw3IEBAIHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCB7Cj4+ICAgICAgICAgICAqIE1lbWJlcnMgY29uc3RhbnQgYXQgaW5pdC4KPj4g ICAgICAgICAgICovCj4+Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXY7Cj4+ ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXY7Cj4+ICAgICAgICAgIGVudW0gdHRtX2Jv X3R5cGUgdHlwZTsKPj4gICAgICAgICAgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKik7Cj4+ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwo+PiBAQCAt MzEwLDcgKzMxMCw3IEBAIHZvaWQgdHRtX2JvX3B1dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvKTsKPj4gICAgKiBAYnVsazogb3B0aW9uYWwgYnVsayBtb3ZlIHN0cnVjdHVyZSB0byByZW1l bWJlciBCTyBwb3NpdGlvbnMKPj4gICAgKgo+PiAgICAqIE1vdmUgdGhpcyBCTyB0byB0aGUgdGFp bCBvZiBhbGwgbHJ1IGxpc3RzIHVzZWQgdG8gbG9va3VwIGFuZCByZXNlcnZlIGFuCj4+IC0gKiBv YmplY3QuIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgd2l0aCBzdHJ1Y3QgdHRtX2JvX2ds b2JhbDo6bHJ1X2xvY2sKPj4gKyAqIG9iamVjdC4gVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxl ZCB3aXRoIHN0cnVjdCB0dG1fZ2xvYmFsOjpscnVfbG9jawo+PiAgICAqIGhlbGQsIGFuZCBpcyB1 c2VkIHRvIG1ha2UgYSBCTyBsZXNzIGxpa2VseSB0byBiZSBjb25zaWRlcmVkIGZvciBldmljdGlv bi4KPj4gICAgKi8KPj4gICB2b2lkIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCj4+IEBAIC0zMjIsNyArMzIyLDcgQEAgdm9pZCB0dG1fYm9fbW92 ZV90b19scnVfdGFpbChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAqIEBidWxr OiBidWxrIG1vdmUgc3RydWN0dXJlCj4+ICAgICoKPj4gICAgKiBCdWxrIG1vdmUgQk9zIHRvIHRo ZSBMUlUgdGFpbCwgb25seSB2YWxpZCB0byB1c2Ugd2hlbiBkcml2ZXIgbWFrZXMgc3VyZSB0aGF0 Cj4+IC0gKiBCTyBvcmRlciBuZXZlciBjaGFuZ2VzLiBTaG91bGQgYmUgY2FsbGVkIHdpdGggdHRt X2JvX2dsb2JhbDo6bHJ1X2xvY2sgaGVsZC4KPj4gKyAqIEJPIG9yZGVyIG5ldmVyIGNoYW5nZXMu IFNob3VsZCBiZSBjYWxsZWQgd2l0aCB0dG1fZ2xvYmFsOjpscnVfbG9jayBoZWxkLgo+PiAgICAq Lwo+PiAgIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1Y3QgdHRtX2xydV9idWxr X21vdmUgKmJ1bGspOwo+Pgo+PiBAQCAtMzMzLDE0ICszMzMsMTQgQEAgdm9pZCB0dG1fYm9fYnVs a19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVsayk7Cj4+ICAgICog UmV0dXJucwo+PiAgICAqIFRydWUgaWYgdGhlIHdvcmtxdWV1ZSB3YXMgcXVldWVkIGF0IHRoZSB0 aW1lCj4+ICAgICovCj4+IC1pbnQgdHRtX2JvX2xvY2tfZGVsYXllZF93b3JrcXVldWUoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYpOwo+PiAraW50IHR0bV9ib19sb2NrX2RlbGF5ZWRfd29ya3F1 ZXVlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KTsKPj4KPj4gICAvKioKPj4gICAgKiB0dG1fYm9f dW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlCj4+ICAgICoKPj4gICAgKiBBbGxvd3MgdGhlIGRlbGF5 ZWQgd29ya3F1ZXVlIHRvIHJ1bi4KPj4gICAgKi8KPj4gLXZvaWQgdHRtX2JvX3VubG9ja19kZWxh eWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgaW50IHJlc2NoZWQpOwo+ PiArdm9pZCB0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2LCBpbnQgcmVzY2hlZCk7Cj4+Cj4+ICAgLyoqCj4+ICAgICogdHRtX2JvX2V2aWN0aW9u X3ZhbHVhYmxlCj4+IEBAIC0zNTMsMTQgKzM1MywxNCBAQCB2b2lkIHR0bV9ib191bmxvY2tfZGVs YXllZF93b3JrcXVldWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGludCByZXNjaGVkKTsK Pj4gICBib29sIHR0bV9ib19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0 bV9wbGFjZSAqcGxhY2UpOwo+Pgo+PiAtc2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzaXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgYm9fc2l6ZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IHN0cnVjdF9zaXplKTsKPj4KPj4gICAvKioKPj4gICAgKiB0dG1fYm9faW5pdF9yZXNlcnZlZAo+ PiAgICAqCj4+IC0gKiBAYmRldjogUG9pbnRlciB0byBhIHR0bV9ib19kZXZpY2Ugc3RydWN0Lgo+ PiArICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG1fZGV2aWNlIHN0cnVjdC4KPj4gICAgKiBAYm86 IFBvaW50ZXIgdG8gYSB0dG1fYnVmZmVyX29iamVjdCB0byBiZSBpbml0aWFsaXplZC4KPj4gICAg KiBAc2l6ZTogUmVxdWVzdGVkIHNpemUgb2YgYnVmZmVyIG9iamVjdC4KPj4gICAgKiBAdHlwZTog UmVxdWVzdGVkIHR5cGUgb2YgYnVmZmVyIG9iamVjdC4KPj4gQEAgLTM5Miw3ICszOTIsNyBAQCBz aXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4g ICAgKiAtRVJFU1RBUlRTWVM6IEludGVycnVwdGVkIGJ5IHNpZ25hbCB3aGlsZSBzbGVlcGluZyB3 YWl0aW5nIGZvciByZXNvdXJjZXMuCj4+ICAgICovCj4+Cj4+IC1pbnQgdHRtX2JvX2luaXRfcmVz ZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtpbnQgdHRtX2JvX2luaXRfcmVz ZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIHNpemUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51 bSB0dG1fYm9fdHlwZSB0eXBlLAo+PiBAQCAtNDA3LDcgKzQwNyw3IEBAIGludCB0dG1fYm9faW5p dF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAvKioKPj4gICAgKiB0 dG1fYm9faW5pdAo+PiAgICAqCj4+IC0gKiBAYmRldjogUG9pbnRlciB0byBhIHR0bV9ib19kZXZp Y2Ugc3RydWN0Lgo+PiArICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG1fZGV2aWNlIHN0cnVjdC4K Pj4gICAgKiBAYm86IFBvaW50ZXIgdG8gYSB0dG1fYnVmZmVyX29iamVjdCB0byBiZSBpbml0aWFs aXplZC4KPj4gICAgKiBAc2l6ZTogUmVxdWVzdGVkIHNpemUgb2YgYnVmZmVyIG9iamVjdC4KPj4g ICAgKiBAdHlwZTogUmVxdWVzdGVkIHR5cGUgb2YgYnVmZmVyIG9iamVjdC4KPj4gQEAgLTQ0MSw3 ICs0NDEsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsCj4+ICAgICogLUVJTlZBTDogSW52YWxpZCBwbGFjZW1lbnQgZmxhZ3MuCj4+ICAgICog LUVSRVNUQVJUU1lTOiBJbnRlcnJ1cHRlZCBieSBzaWduYWwgd2hpbGUgc2xlZXBpbmcgd2FpdGlu ZyBmb3IgcmVzb3VyY2VzLgo+PiAgICAqLwo+PiAtaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAraW50IHR0 bV9ib19pbml0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgZW51bSB0dG1f Ym9fdHlwZSB0eXBlLAo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpw bGFjZW1lbnQsCj4+ICAgICAgICAgICAgICAgICAgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsIGJv b2wgaW50ZXJydWJ0aWJsZSwgc2l6ZV90IGFjY19zaXplLAo+PiBAQCAtNDUxLDcgKzQ1MSw3IEBA IGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPj4gICAvKioKPj4gICAgKiB0dG1fYm9fZXZpY3RfbW0KPj4gICAg Kgo+PiAtICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG1fYm9fZGV2aWNlIHN0cnVjdC4KPj4gKyAq IEBiZGV2OiBQb2ludGVyIHRvIGEgdHRtX2RldmljZSBzdHJ1Y3QuCj4+ICAgICogQG1lbV90eXBl OiBUaGUgbWVtb3J5IHR5cGUuCj4+ICAgICoKPj4gICAgKiBFdmljdHMgYWxsIGJ1ZmZlcnMgb24g dGhlIGxydSBsaXN0IG9mIHRoZSBtZW1vcnkgdHlwZS4KPj4gQEAgLTQ1OSwxNCArNDU5LDE0IEBA IGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPj4gICAgKiBvdXQtb2YtbWVtb3J5LXNwYWNlLWR1ZS10by1mcmFn bWVudGF0aW9uIGhhbmRsZXIuCj4+ICAgICogVGhlIGNhbGxlciBtdXN0IG1ha2Ugc3VyZSB0aGF0 IHRoZXJlIGFyZSBubyBvdGhlciBwcm9jZXNzZXMKPj4gICAgKiBjdXJyZW50bHkgdmFsaWRhdGlu ZyBidWZmZXJzLCBhbmQgY2FuIGRvIHRoYXQgYnkgdGFraW5nIHRoZQo+PiAtICogc3RydWN0IHR0 bV9ib19kZXZpY2U6OnR0bV9sb2NrIGluIHdyaXRlIG1vZGUuCj4+ICsgKiBzdHJ1Y3QgdHRtX2Rl dmljZTo6dHRtX2xvY2sgaW4gd3JpdGUgbW9kZS4KPj4gICAgKgo+PiAgICAqIFJldHVybnM6Cj4+ ICAgICogLUVJTlZBTDogSW52YWxpZCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSB0eXBlLgo+PiAg ICAqIC1FUkVTVEFSVFNZUzogVGhlIGNhbGwgd2FzIGludGVycnVwdGVkIGJ5IGEgc2lnbmFsIHdo aWxlIHdhaXRpbmcgdG8KPj4gICAgKiBldmljdCBhIGJ1ZmZlci4KPj4gICAgKi8KPj4gLWludCB0 dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIG1lbV90 eXBlKTsKPj4gK2ludCB0dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHVu c2lnbmVkIG1lbV90eXBlKTsKPj4KPj4gICAvKioKPj4gICAgKiB0dG1fa21hcF9vYmpfdmlydHVh bAo+PiBAQCAtNTI5LDE4ICs1MjksMTggQEAgaW50IHR0bV9ib19tbWFwX29iaihzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4+ICAgICoK Pj4gICAgKiBAZmlscDogICAgICBmaWxwIGFzIGlucHV0IGZyb20gdGhlIG1tYXAgbWV0aG9kLgo+ PiAgICAqIEB2bWE6ICAgICAgIHZtYSBhcyBpbnB1dCBmcm9tIHRoZSBtbWFwIG1ldGhvZC4KPj4g LSAqIEBiZGV2OiAgICAgIFBvaW50ZXIgdG8gdGhlIHR0bV9ib19kZXZpY2Ugd2l0aCB0aGUgYWRk cmVzcyBzcGFjZSBtYW5hZ2VyLgo+PiArICogQGJkZXY6ICAgICAgUG9pbnRlciB0byB0aGUgdHRt X2RldmljZSB3aXRoIHRoZSBhZGRyZXNzIHNwYWNlIG1hbmFnZXIuCj4+ICAgICoKPj4gICAgKiBU aGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBieSB0aGUgZGV2aWNlIG1tYXAg bWV0aG9kLgo+PiAgICAqIGlmIHRoZSBkZXZpY2UgYWRkcmVzcyBzcGFjZSBpcyB0byBiZSBiYWNr ZWQgYnkgdGhlIGJvIG1hbmFnZXIuCj4+ICAgICovCj4+ICAgaW50IHR0bV9ib19tbWFwKHN0cnVj dCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPj4gLSAgICAgICAgICAg ICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KTsKPj4gKyAgICAgICAgICAgICAgIHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2KTsKPj4KPj4gICAvKioKPj4gICAgKiB0dG1fYm9faW8KPj4gICAg Kgo+PiAtICogQGJkZXY6ICAgICAgUG9pbnRlciB0byB0aGUgc3RydWN0IHR0bV9ib19kZXZpY2Uu Cj4+ICsgKiBAYmRldjogICAgICBQb2ludGVyIHRvIHRoZSBzdHJ1Y3QgdHRtX2RldmljZS4KPj4g ICAgKiBAZmlscDogICAgICBQb2ludGVyIHRvIHRoZSBzdHJ1Y3QgZmlsZSBhdHRlbXB0aW5nIHRv IHJlYWQgLyB3cml0ZS4KPj4gICAgKiBAd2J1ZjogICAgICBVc2VyLXNwYWNlIHBvaW50ZXIgdG8g YWRkcmVzcyBvZiBidWZmZXIgdG8gd3JpdGUuIE5VTEwgb24gcmVhZC4KPj4gICAgKiBAcmJ1Zjog ICAgICBVc2VyLXNwYWNlIHBvaW50ZXIgdG8gYWRkcmVzcyBvZiBidWZmZXIgdG8gcmVhZCBpbnRv Lgo+PiBAQCAtNTU3LDEyICs1NTcsMTEgQEAgaW50IHR0bV9ib19tbWFwKHN0cnVjdCBmaWxlICpm aWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPj4gICAgKiB0aGUgZnVuY3Rpb24gbWF5 IHJldHVybiAtRVJFU1RBUlRTWVMgaWYKPj4gICAgKiBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbC4K Pj4gICAgKi8KPj4gLXNzaXplX3QgdHRtX2JvX2lvKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LCBzdHJ1Y3QgZmlsZSAqZmlscCwKPj4gK3NzaXplX3QgdHRtX2JvX2lvKHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LCBzdHJ1Y3QgZmlsZSAqZmlscCwKPj4gICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgX191c2VyICp3YnVmLCBjaGFyIF9fdXNlciAqcmJ1ZiwKPj4gICAgICAgICAgICAgICAg ICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpmX3BvcywgYm9vbCB3cml0ZSk7Cj4+Cj4+IC1pbnQg dHRtX2JvX3N3YXBvdXQoc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IsCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKPj4gK2ludCB0dG1f Ym9fc3dhcG91dChzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiwgc3RydWN0IHR0bV9vcGVyYXRpb25f Y3R4ICpjdHgpOwo+PiAgIHZvaWQgdHRtX2JvX3N3YXBvdXRfYWxsKHZvaWQpOwo+Pgo+PiAgIC8q Kgo+PiBAQCAtNjA5LDcgKzYwOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fYm9fdW5waW4o c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICAgICAgICAgLS1iby0+cGluX2NvdW50 Owo+PiAgIH0KPj4KPj4gLWludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiAraW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKm1hbiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1f cGxhY2UgKnBsYWNlLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4ICpjdHgsCj4+IEBAIC02MzQsNSArNjMzLDYgQEAgdm9pZCB0dG1fYm9fdm1fY2xv c2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwo+Pgo+PiAgIGludCB0dG1fYm9fdm1fYWNj ZXNzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCj4+ICAg ICAgICAgICAgICAgICAgICAgICB2b2lkICpidWYsIGludCBsZW4sIGludCB3cml0ZSk7Cj4+ICti b29sIHR0bV9ib19kZWxheWVkX2RlbGV0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgYm9vbCBy ZW1vdmVfYWxsKTsKPj4KPj4gICAjZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4+IGlu ZGV4IGEwMjhiNDE4YzZiNC4uNjM4MDFmYTllOTkzIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2Ry bS90dG0vdHRtX2JvX2RyaXZlci5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJp dmVyLmgKPj4gQEAgLTM3LDMzMSArMzcsMTQgQEAKPj4gICAjaW5jbHVkZSA8bGludXgvc3Bpbmxv Y2suaD4KPj4gICAjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KPj4KPj4gKyNpbmNsdWRlIDxk cm0vdHRtL3R0bV9kZXZpY2UuaD4KPj4gKwo+PiAgICNpbmNsdWRlICJ0dG1fYm9fYXBpLmgiCj4+ ICAgI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKPj4gICAjaW5jbHVkZSAidHRtX21vZHVsZS5oIgo+ PiAgICNpbmNsdWRlICJ0dG1fcGxhY2VtZW50LmgiCj4+ICAgI2luY2x1ZGUgInR0bV90dC5oIgo+ Pgo+PiAtLyoqCj4+IC0gKiBzdHJ1Y3QgdHRtX2JvX2RyaXZlcgo+PiAtICoKPj4gLSAqIEBjcmVh dGVfdHRtX2JhY2tlbmRfZW50cnk6IENhbGxiYWNrIHRvIGNyZWF0ZSBhIHN0cnVjdCB0dG1fYmFj a2VuZC4KPj4gLSAqIEBldmljdF9mbGFnczogQ2FsbGJhY2sgdG8gb2J0YWluIHBsYWNlbWVudCBm bGFncyB3aGVuIGEgYnVmZmVyIGlzIGV2aWN0ZWQuCj4+IC0gKiBAbW92ZTogQ2FsbGJhY2sgZm9y IGEgZHJpdmVyIHRvIGhvb2sgaW4gYWNjZWxlcmF0ZWQgZnVuY3Rpb25zIHRvCj4+IC0gKiBtb3Zl IGEgYnVmZmVyLgo+PiAtICogSWYgc2V0IHRvIE5VTEwsIGEgcG90ZW50aWFsbHkgc2xvdyBtZW1j cHkoKSBtb3ZlIGlzIHVzZWQuCj4+IC0gKi8KPj4gLQo+PiAtc3RydWN0IHR0bV9ib19kcml2ZXIg ewo+PiAtICAgICAgIC8qKgo+PiAtICAgICAgICAqIHR0bV90dF9jcmVhdGUKPj4gLSAgICAgICAg Kgo+PiAtICAgICAgICAqIEBibzogVGhlIGJ1ZmZlciBvYmplY3QgdG8gY3JlYXRlIHRoZSB0dG0g Zm9yLgo+PiAtICAgICAgICAqIEBwYWdlX2ZsYWdzOiBQYWdlIGZsYWdzIGFzIGlkZW50aWZpZWQg YnkgVFRNX1BBR0VfRkxBR19YWCBmbGFncy4KPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIENy ZWF0ZSBhIHN0cnVjdCB0dG1fdHQgdG8gYmFjayBkYXRhIHdpdGggc3lzdGVtIG1lbW9yeSBwYWdl cy4KPj4gLSAgICAgICAgKiBObyBwYWdlcyBhcmUgYWN0dWFsbHkgYWxsb2NhdGVkLgo+PiAtICAg ICAgICAqIFJldHVybnM6Cj4+IC0gICAgICAgICogTlVMTDogT3V0IG9mIG1lbW9yeS4KPj4gLSAg ICAgICAgKi8KPj4gLSAgICAgICBzdHJ1Y3QgdHRtX3R0ICooKnR0bV90dF9jcmVhdGUpKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBwYWdlX2ZsYWdzKTsKPj4gLQo+PiAtICAgICAgIC8qKgo+PiAt ICAgICAgICAqIHR0bV90dF9wb3B1bGF0ZQo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQHR0 bTogVGhlIHN0cnVjdCB0dG1fdHQgdG8gY29udGFpbiB0aGUgYmFja2luZyBwYWdlcy4KPj4gLSAg ICAgICAgKgo+PiAtICAgICAgICAqIEFsbG9jYXRlIGFsbCBiYWNraW5nIHBhZ2VzCj4+IC0gICAg ICAgICogUmV0dXJuczoKPj4gLSAgICAgICAgKiAtRU5PTUVNOiBPdXQgb2YgbWVtb3J5Lgo+PiAt ICAgICAgICAqLwo+PiAtICAgICAgIGludCAoKnR0bV90dF9wb3B1bGF0ZSkoc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHRtX3R0ICp0dG0sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X29wZXJhdGlvbl9jdHggKmN0eCk7Cj4+IC0KPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiB0 dG1fdHRfdW5wb3B1bGF0ZQo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQHR0bTogVGhlIHN0 cnVjdCB0dG1fdHQgdG8gY29udGFpbiB0aGUgYmFja2luZyBwYWdlcy4KPj4gLSAgICAgICAgKgo+ PiAtICAgICAgICAqIEZyZWUgYWxsIGJhY2tpbmcgcGFnZQo+PiAtICAgICAgICAqLwo+PiAtICAg ICAgIHZvaWQgKCp0dG1fdHRfdW5wb3B1bGF0ZSkoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs IHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+IC0KPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiB0 dG1fdHRfYmluZAo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQGJkZXY6IFBvaW50ZXIgdG8g YSB0dG0gZGV2aWNlCj4+IC0gICAgICAgICogQHR0bTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1f dHQuCj4+IC0gICAgICAgICogQGJvX21lbTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgZGVzY3JpYmluZyB0aGUKPj4gLSAgICAgICAgKiBtZW1vcnkgdHlwZSBhbmQgbG9jYXRpb24g Zm9yIGJpbmRpbmcuCj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBCaW5kIHRoZSBiYWNrZW5k IHBhZ2VzIGludG8gdGhlIGFwZXJ0dXJlIGluIHRoZSBsb2NhdGlvbgo+PiAtICAgICAgICAqIGlu ZGljYXRlZCBieSBAYm9fbWVtLiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRs ZQo+PiAtICAgICAgICAqIGRpZmZlcmVuY2VzIGJldHdlZW4gYXBlcnR1cmUgYW5kIHN5c3RlbSBw YWdlIHNpemVzLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIGludCAoKnR0bV90dF9iaW5kKShz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRt X3Jlc291cmNlICpib19tZW0pOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICogdHRt X3R0X3VuYmluZAo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQGJkZXY6IFBvaW50ZXIgdG8g YSB0dG0gZGV2aWNlCj4+IC0gICAgICAgICogQHR0bTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1f dHQuCj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBVbmJpbmQgcHJldmlvdXNseSBib3VuZCBi YWNrZW5kIHBhZ2VzLiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZQo+PiAtICAgICAgICAqIGFibGUg dG8gaGFuZGxlIGRpZmZlcmVuY2VzIGJldHdlZW4gYXBlcnR1cmUgYW5kIHN5c3RlbSBwYWdlIHNp emVzLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIHZvaWQgKCp0dG1fdHRfdW5iaW5kKShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4gLQo+PiAtICAg ICAgIC8qKgo+PiAtICAgICAgICAqIHR0bV90dF9kZXN0cm95Cj4+IC0gICAgICAgICoKPj4gLSAg ICAgICAgKiBAYmRldjogUG9pbnRlciB0byBhIHR0bSBkZXZpY2UKPj4gLSAgICAgICAgKiBAdHRt OiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV90dC4KPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAq IERlc3Ryb3kgdGhlIGJhY2tlbmQuIFRoaXMgd2lsbCBiZSBjYWxsIGJhY2sgZnJvbSB0dG1fdHRf ZGVzdHJveSBzbwo+PiAtICAgICAgICAqIGRvbid0IGNhbGwgdHRtX3R0X2Rlc3Ryb3kgZnJvbSB0 aGUgY2FsbGJhY2sgb3IgaW5maW5pdGUgbG9vcC4KPj4gLSAgICAgICAgKi8KPj4gLSAgICAgICB2 b2lkICgqdHRtX3R0X2Rlc3Ryb3kpKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3Qg dHRtX3R0ICp0dG0pOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICogc3RydWN0IHR0 bV9ib19kcml2ZXIgbWVtYmVyIGV2aWN0aW9uX3ZhbHVhYmxlCj4+IC0gICAgICAgICoKPj4gLSAg ICAgICAgKiBAYm86IHRoZSBidWZmZXIgb2JqZWN0IHRvIGJlIGV2aWN0ZWQKPj4gLSAgICAgICAg KiBAcGxhY2U6IHBsYWNlbWVudCB3ZSBuZWVkIHJvb20gZm9yCj4+IC0gICAgICAgICoKPj4gLSAg ICAgICAgKiBDaGVjayB3aXRoIHRoZSBkcml2ZXIgaWYgaXQgaXMgdmFsdWFibGUgdG8gZXZpY3Qg YSBCTyB0byBtYWtlIHJvb20KPj4gLSAgICAgICAgKiBmb3IgYSBjZXJ0YWluIHBsYWNlbWVudC4K Pj4gLSAgICAgICAgKi8KPj4gLSAgICAgICBib29sICgqZXZpY3Rpb25fdmFsdWFibGUpKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSk7Cj4+IC0gICAgICAgLyoqCj4+IC0g ICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIgbWVtYmVyIGV2aWN0X2ZsYWdzOgo+PiAtICAg ICAgICAqCj4+IC0gICAgICAgICogQGJvOiB0aGUgYnVmZmVyIG9iamVjdCB0byBiZSBldmljdGVk Cj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBSZXR1cm4gdGhlIGJvIGZsYWdzIGZvciBhIGJ1 ZmZlciB3aGljaCBpcyBub3QgbWFwcGVkIHRvIHRoZSBoYXJkd2FyZS4KPj4gLSAgICAgICAgKiBU aGVzZSB3aWxsIGJlIHBsYWNlZCBpbiBwcm9wb3NlZF9mbGFncyBzbyB0aGF0IHdoZW4gdGhlIG1v dmUgaXMKPj4gLSAgICAgICAgKiBmaW5pc2hlZCwgdGhleSdsbCBlbmQgdXAgaW4gYm8tPm1lbS5m bGFncwo+PiAtICAgICAgICAqLwo+PiAtCj4+IC0gICAgICAgdm9pZCAoKmV2aWN0X2ZsYWdzKShz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCk7Cj4+IC0KPj4gLSAgICAgICAvKioK Pj4gLSAgICAgICAgKiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBtZW1iZXIgbW92ZToKPj4gLSAgICAg ICAgKgo+PiAtICAgICAgICAqIEBibzogdGhlIGJ1ZmZlciB0byBtb3ZlCj4+IC0gICAgICAgICog QGV2aWN0OiB3aGV0aGVyIHRoaXMgbW90aW9uIGlzIGV2aWN0aW5nIHRoZSBidWZmZXIgZnJvbQo+ PiAtICAgICAgICAqIHRoZSBncmFwaGljcyBhZGRyZXNzIHNwYWNlCj4+IC0gICAgICAgICogQGN0 eDogY29udGV4dCBmb3IgdGhpcyBtb3ZlIHdpdGggcGFyYW1ldGVycwo+PiAtICAgICAgICAqIEBu ZXdfbWVtOiB0aGUgbmV3IG1lbW9yeSByZWdpb24gcmVjZWl2aW5nIHRoZSBidWZmZXIKPj4gLSAg ICAgICAgKgo+PiAtICAgICAgICAqIE1vdmUgYSBidWZmZXIgYmV0d2VlbiB0d28gbWVtb3J5IHJl Z2lvbnMuCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgaW50ICgqbW92ZSkoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPj4gLSAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPj4gLSAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHRtX3Jlc291cmNlICpuZXdfbWVtKTsKPj4gLQo+PiAtICAgICAgIC8qKgo+PiAtICAgICAgICAq IHN0cnVjdCB0dG1fYm9fZHJpdmVyX21lbWJlciB2ZXJpZnlfYWNjZXNzCj4+IC0gICAgICAgICoK Pj4gLSAgICAgICAgKiBAYm86IFBvaW50ZXIgdG8gYSBidWZmZXIgb2JqZWN0Lgo+PiAtICAgICAg ICAqIEBmaWxwOiBQb2ludGVyIHRvIGEgc3RydWN0IGZpbGUgdHJ5aW5nIHRvIGFjY2VzcyB0aGUg b2JqZWN0Lgo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQ2FsbGVkIGZyb20gdGhlIG1hcCAv IHdyaXRlIC8gcmVhZCBtZXRob2RzIHRvIHZlcmlmeSB0aGF0IHRoZQo+PiAtICAgICAgICAqIGNh bGxlciBpcyBwZXJtaXR0ZWQgdG8gYWNjZXNzIHRoZSBidWZmZXIgb2JqZWN0Lgo+PiAtICAgICAg ICAqIFRoaXMgbWVtYmVyIG1heSBiZSBzZXQgdG8gTlVMTCwgd2hpY2ggd2lsbCByZWZ1c2UgdGhp cyBraW5kIG9mCj4+IC0gICAgICAgICogYWNjZXNzIGZvciBhbGwgYnVmZmVyIG9iamVjdHMuCj4+ IC0gICAgICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIDAgaWYgYWNjZXNzIGlzIGdy YW50ZWQsIC1FUEVSTSBvdGhlcndpc2UuCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgaW50ICgq dmVyaWZ5X2FjY2Vzcykoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlscCk7Cj4+IC0KPj4gLSAgICAgICAv KioKPj4gLSAgICAgICAgKiBIb29rIHRvIG5vdGlmeSBkcml2ZXIgYWJvdXQgYSBkcml2ZXIgbW92 ZSBzbyBpdAo+PiAtICAgICAgICAqIGNhbiBkbyB0aWxpbmcgdGhpbmdzIGFuZCBib29rLWtlZXBp bmcuCj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBAZXZpY3Q6IHdoZXRoZXIgdGhpcyBtb3Zl IGlzIGV2aWN0aW5nIHRoZSBidWZmZXIgZnJvbSB0aGUgZ3JhcGhpY3MKPj4gLSAgICAgICAgKiBh ZGRyZXNzIHNwYWNlCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgdm9pZCAoKm1vdmVfbm90aWZ5 KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCBldmljdCwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fcmVzb3VyY2UgKm5ld19tZW0pOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICog bm90aWZ5IHRoZSBkcml2ZXIgdGhhdCB3ZSdyZSBhYm91dCB0byBzd2FwIG91dCB0aGlzIGJvCj4+ IC0gICAgICAgICovCj4+IC0gICAgICAgdm9pZCAoKnN3YXBfbm90aWZ5KShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvKTsKPj4gLQo+PiAtICAgICAgIC8qKgo+PiAtICAgICAgICAqIERyaXZl ciBjYWxsYmFjayBvbiB3aGVuIG1hcHBpbmcgaW8gbWVtb3J5IChmb3IgYm9fbW92ZV9tZW1jcHkK Pj4gLSAgICAgICAgKiBmb3IgaW5zdGFuY2UpLiBUVE0gd2lsbCB0YWtlIGNhcmUgdG8gY2FsbCBp b19tZW1fZnJlZSB3aGVuZXZlcgo+PiAtICAgICAgICAqIHRoZSBtYXBwaW5nIGlzIG5vdCB1c2Ug YW55bW9yZS4gaW9fbWVtX3Jlc2VydmUgJiBpb19tZW1fZnJlZQo+PiAtICAgICAgICAqIGFyZSBi YWxhbmNlZC4KPj4gLSAgICAgICAgKi8KPj4gLSAgICAgICBpbnQgKCppb19tZW1fcmVzZXJ2ZSko c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4+IC0gICAgICAgdm9pZCAoKmlvX21lbV9m cmVlKShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4+IC0KPj4gLSAgICAgICAvKioKPj4g LSAgICAgICAgKiBSZXR1cm4gdGhlIHBmbiBmb3IgYSBnaXZlbiBwYWdlX29mZnNldCBpbnNpZGUg dGhlIEJPLgo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQGJvOiB0aGUgQk8gdG8gbG9vayB1 cCB0aGUgcGZuIGZvcgo+PiAtICAgICAgICAqIEBwYWdlX29mZnNldDogdGhlIG9mZnNldCB0byBs b29rIHVwCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgdW5zaWduZWQgbG9uZyAoKmlvX21lbV9w Zm4pKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGFnZV9vZmZzZXQpOwo+PiAtCj4+IC0gICAg ICAgLyoqCj4+IC0gICAgICAgICogUmVhZC93cml0ZSBtZW1vcnkgYnVmZmVycyBmb3IgcHRyYWNl IGFjY2Vzcwo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQGJvOiB0aGUgQk8gdG8gYWNjZXNz Cj4+IC0gICAgICAgICogQG9mZnNldDogdGhlIG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZiB0aGUg Qk8KPj4gLSAgICAgICAgKiBAYnVmOiBwb2ludGVyIHRvIHNvdXJjZS9kZXN0aW5hdGlvbiBidWZm ZXIKPj4gLSAgICAgICAgKiBAbGVuOiBudW1iZXIgb2YgYnl0ZXMgdG8gY29weQo+PiAtICAgICAg ICAqIEB3cml0ZTogd2hldGhlciB0byByZWFkICgwKSBmcm9tIG9yIHdyaXRlIChub24tMCkgdG8g Qk8KPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIElmIHN1Y2Nlc3NmdWwsIHRoaXMgZnVuY3Rp b24gc2hvdWxkIHJldHVybiB0aGUgbnVtYmVyIG9mCj4+IC0gICAgICAgICogYnl0ZXMgY29waWVk LCAtRUlPIG90aGVyd2lzZS4gSWYgdGhlIG51bWJlciBvZiBieXRlcwo+PiAtICAgICAgICAqIHJl dHVybmVkIGlzIDwgbGVuLCB0aGUgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBhZ2FpbiB3aXRoCj4+ IC0gICAgICAgICogdGhlIHJlbWFpbmRlciBvZiB0aGUgYnVmZmVyIHRvIGNvcHkuCj4+IC0gICAg ICAgICovCj4+IC0gICAgICAgaW50ICgqYWNjZXNzX21lbW9yeSkoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywgdW5zaWduZWQgbG9uZyBvZmZzZXQsCj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQgd3JpdGUpOwo+PiAtCj4+IC0gICAgICAg LyoqCj4+IC0gICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIgbWVtYmVyIGRlbF9mcm9tX2xy dV9ub3RpZnkKPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIEBibzogdGhlIGJ1ZmZlciBvYmpl Y3QgZGVsZXRlZCBmcm9tIGxydQo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogbm90aWZ5IGRy aXZlciB0aGF0IGEgQk8gd2FzIGRlbGV0ZWQgZnJvbSBMUlUuCj4+IC0gICAgICAgICovCj4+IC0g ICAgICAgdm9pZCAoKmRlbF9mcm9tX2xydV9ub3RpZnkpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8pOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICogTm90aWZ5IHRoZSBkcml2 ZXIgdGhhdCB3ZSdyZSBhYm91dCB0byByZWxlYXNlIGEgQk8KPj4gLSAgICAgICAgKgo+PiAtICAg ICAgICAqIEBibzogQk8gdGhhdCBpcyBhYm91dCB0byBiZSByZWxlYXNlZAo+PiAtICAgICAgICAq Cj4+IC0gICAgICAgICogR2l2ZXMgdGhlIGRyaXZlciBhIGNoYW5jZSB0byBkbyBhbnkgY2xlYW51 cCwgaW5jbHVkaW5nCj4+IC0gICAgICAgICogYWRkaW5nIGZlbmNlcyB0aGF0IG1heSBmb3JjZSBh IGRlbGF5ZWQgZGVsZXRlCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgdm9pZCAoKnJlbGVhc2Vf bm90aWZ5KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKPj4gLX07Cj4+IC0KPj4gLS8q Kgo+PiAtICogc3RydWN0IHR0bV9ib19nbG9iYWwgLSBCdWZmZXIgb2JqZWN0IGRyaXZlciBnbG9i YWwgZGF0YS4KPj4gLSAqCj4+IC0gKiBAZHVtbXlfcmVhZF9wYWdlOiBQb2ludGVyIHRvIGEgZHVt bXkgcGFnZSB1c2VkIGZvciBtYXBwaW5nIHJlcXVlc3RzCj4+IC0gKiBvZiB1bnBvcHVsYXRlZCBw YWdlcy4KPj4gLSAqIEBzaHJpbms6IEEgc2hyaW5rIGNhbGxiYWNrIG9iamVjdCB1c2VkIGZvciBi dWZmZXIgb2JqZWN0IHN3YXAuCj4+IC0gKiBAZGV2aWNlX2xpc3RfbXV0ZXg6IE11dGV4IHByb3Rl Y3RpbmcgdGhlIGRldmljZSBsaXN0Lgo+PiAtICogVGhpcyBtdXRleCBpcyBoZWxkIHdoaWxlIHRy YXZlcnNpbmcgdGhlIGRldmljZSBsaXN0IGZvciBwbSBvcHRpb25zLgo+PiAtICogQGxydV9sb2Nr OiBTcGlubG9jayBwcm90ZWN0aW5nIHRoZSBibyBzdWJzeXN0ZW0gbHJ1IGxpc3RzLgo+PiAtICog QGRldmljZV9saXN0OiBMaXN0IG9mIGJ1ZmZlciBvYmplY3QgZGV2aWNlcy4KPj4gLSAqIEBzd2Fw X2xydTogTHJ1IGxpc3Qgb2YgYnVmZmVyIG9iamVjdHMgdXNlZCBmb3Igc3dhcHBpbmcuCj4+IC0g Ki8KPj4gLQo+PiAtZXh0ZXJuIHN0cnVjdCB0dG1fYm9fZ2xvYmFsIHsKPj4gLQo+PiAtICAgICAg IC8qKgo+PiAtICAgICAgICAqIENvbnN0YW50IGFmdGVyIGluaXQuCj4+IC0gICAgICAgICovCj4+ IC0KPj4gLSAgICAgICBzdHJ1Y3Qga29iamVjdCBrb2JqOwo+PiAtICAgICAgIHN0cnVjdCBwYWdl ICpkdW1teV9yZWFkX3BhZ2U7Cj4+IC0gICAgICAgc3BpbmxvY2tfdCBscnVfbG9jazsKPj4gLQo+ PiAtICAgICAgIC8qKgo+PiAtICAgICAgICAqIFByb3RlY3RlZCBieSB0dG1fZ2xvYmFsX211dGV4 Lgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3Q7 Cj4+IC0KPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiBQcm90ZWN0ZWQgYnkgdGhlIGxydV9s b2NrLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc3dhcF9scnVb VFRNX01BWF9CT19QUklPUklUWV07Cj4+IC0KPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiBJ bnRlcm5hbCBwcm90ZWN0aW9uLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIGF0b21pY190IGJv X2NvdW50Owo+PiAtfSB0dG1fYm9fZ2xvYjsKPj4gLQo+PiAtCj4+IC0jZGVmaW5lIFRUTV9OVU1f TUVNX1RZUEVTIDgKPj4gLQo+PiAtLyoqCj4+IC0gKiBzdHJ1Y3QgdHRtX2JvX2RldmljZSAtIEJ1 ZmZlciBvYmplY3QgZHJpdmVyIGRldmljZS1zcGVjaWZpYyBkYXRhLgo+PiAtICoKPj4gLSAqIEBk cml2ZXI6IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBzdHJ1Y3Qgc2V0dXAgYnkg dGhlIGRyaXZlci4KPj4gLSAqIEBtYW46IEFuIGFycmF5IG9mIHJlc291cmNlX21hbmFnZXJzLgo+ PiAtICogQHZtYV9tYW5hZ2VyOiBBZGRyZXNzIHNwYWNlIG1hbmFnZXIgKHBvaW50ZXIpCj4+IC0g KiBscnVfbG9jazogU3BpbmxvY2sgdGhhdCBwcm90ZWN0cyB0aGUgYnVmZmVyK2RldmljZSBscnUg bGlzdHMgYW5kCj4+IC0gKiBkZGVzdHJveSBsaXN0cy4KPj4gLSAqIEBkZXZfbWFwcGluZzogQSBw b2ludGVyIHRvIHRoZSBzdHJ1Y3QgYWRkcmVzc19zcGFjZSByZXByZXNlbnRpbmcgdGhlCj4+IC0g KiBkZXZpY2UgYWRkcmVzcyBzcGFjZS4KPj4gLSAqIEB3cTogV29yayBxdWV1ZSBzdHJ1Y3R1cmUg Zm9yIHRoZSBkZWxheWVkIGRlbGV0ZSB3b3JrcXVldWUuCj4+IC0gKiBAbm9fcmV0cnk6IERvbid0 IHJldHJ5IGFsbG9jYXRpb24gaWYgaXQgZmFpbHMKPj4gLSAqCj4+IC0gKi8KPj4gLQo+PiAtc3Ry dWN0IHR0bV9ib19kZXZpY2Ugewo+PiAtCj4+IC0gICAgICAgLyoKPj4gLSAgICAgICAgKiBDb25z dGFudCBhZnRlciBibyBkZXZpY2UgaW5pdCAvIGF0b21pYy4KPj4gLSAgICAgICAgKi8KPj4gLSAg ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0Owo+PiAtICAgICAgIHN0cnVjdCB0dG1f Ym9fZHJpdmVyICpkcml2ZXI7Cj4+IC0gICAgICAgLyoKPj4gLSAgICAgICAgKiBhY2Nlc3Mgdmlh IHR0bV9tYW5hZ2VyX3R5cGUuCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyIHN5c21hbjsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKm1hbl9kcnZbVFRNX05VTV9NRU1fVFlQRVNdOwo+PiAtICAgICAgIC8qCj4+IC0gICAg ICAgICogUHJvdGVjdGVkIGJ5IGludGVybmFsIGxvY2tzLgo+PiAtICAgICAgICAqLwo+PiAtICAg ICAgIHN0cnVjdCBkcm1fdm1hX29mZnNldF9tYW5hZ2VyICp2bWFfbWFuYWdlcjsKPj4gLQo+PiAt ICAgICAgIC8qCj4+IC0gICAgICAgICogUHJvdGVjdGVkIGJ5IHRoZSBnbG9iYWw6bHJ1IGxvY2su Cj4+IC0gICAgICAgICovCj4+IC0gICAgICAgc3RydWN0IGxpc3RfaGVhZCBkZGVzdHJveTsKPj4g LQo+PiAtICAgICAgIC8qCj4+IC0gICAgICAgICogUHJvdGVjdGVkIGJ5IGxvYWQgLyBmaXJzdG9w ZW4gLyBsYXN0Y2xvc2UgL3VubG9hZCBzeW5jLgo+PiAtICAgICAgICAqLwo+PiAtCj4+IC0gICAg ICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmRldl9tYXBwaW5nOwo+PiAtCj4+IC0gICAgICAgLyoK Pj4gLSAgICAgICAgKiBJbnRlcm5hbCBwcm90ZWN0aW9uLgo+PiAtICAgICAgICAqLwo+PiAtCj4+ IC0gICAgICAgc3RydWN0IGRlbGF5ZWRfd29yayB3cTsKPj4gLQo+PiAtICAgICAgIGJvb2wgbmVl ZF9kbWEzMjsKPj4gLQo+PiAtICAgICAgIGJvb2wgbm9fcmV0cnk7Cj4+IC19Owo+PiAtCj4+IC1z dGF0aWMgaW5saW5lIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqdHRtX21hbmFnZXJfdHlw ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1lbV90eXBlKQo+PiAtewo+ PiAtICAgICAgIHJldHVybiBiZGV2LT5tYW5fZHJ2W21lbV90eXBlXTsKPj4gLX0KPj4gLQo+PiAt c3RhdGljIGlubGluZSB2b2lkIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCB0eXBlLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbmFnZXIpCj4+IC17Cj4+IC0gICAgICAgYmRl di0+bWFuX2Rydlt0eXBlXSA9IG1hbmFnZXI7Cj4+IC19Cj4+IC0KPj4gICAvKioKPj4gICAgKiBz dHJ1Y3QgdHRtX2xydV9idWxrX21vdmVfcG9zCj4+ICAgICoKPj4gQEAgLTQxOCwzMCArMTAxLDYg QEAgaW50IHR0bV9ib19tZW1fc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4g ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPj4gICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKPj4KPj4gLWlu dCB0dG1fYm9fZGV2aWNlX3JlbGVhc2Uoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpOwo+PiAt Cj4+IC0vKioKPj4gLSAqIHR0bV9ib19kZXZpY2VfaW5pdAo+PiAtICoKPj4gLSAqIEBiZGV2OiBB IHBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX2JvX2RldmljZSB0byBpbml0aWFsaXplLgo+PiAtICog QGdsb2I6IEEgcG9pbnRlciB0byBhbiBpbml0aWFsaXplZCBzdHJ1Y3QgdHRtX2JvX2dsb2JhbC4K Pj4gLSAqIEBkcml2ZXI6IEEgcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHNldCB1 cCBieSB0aGUgY2FsbGVyLgo+PiAtICogQG1hcHBpbmc6IFRoZSBhZGRyZXNzIHNwYWNlIHRvIHVz ZSBmb3IgdGhpcyBiby4KPj4gLSAqIEB2bWFfbWFuYWdlcjogQSBwb2ludGVyIHRvIGEgdm1hIG1h bmFnZXIuCj4+IC0gKiBAZmlsZV9wYWdlX29mZnNldDogT2Zmc2V0IGludG8gdGhlIGRldmljZSBh ZGRyZXNzIHNwYWNlIHRoYXQgaXMgYXZhaWxhYmxlCj4+IC0gKiBmb3IgYnVmZmVyIGRhdGEuIFRo aXMgZW5zdXJlcyBjb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgdXNlcnMgb2YgdGhlCj4+IC0gKiBh ZGRyZXNzIHNwYWNlLgo+PiAtICoKPj4gLSAqIEluaXRpYWxpemVzIGEgc3RydWN0IHR0bV9ib19k ZXZpY2U6Cj4+IC0gKiBSZXR1cm5zOgo+PiAtICogITA6IEZhaWx1cmUuCj4+IC0gKi8KPj4gLWlu dCB0dG1fYm9fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+IC0gICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9ib19kcml2ZXIgKmRyaXZlciwKPj4gLSAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKPj4gLSAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbWFuYWdlciAqdm1hX21hbmFn ZXIsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgYm9vbCBuZWVkX2RtYTMyKTsKPj4gLQo+PiAg IC8qKgo+PiAgICAqIHR0bV9ib191bm1hcF92aXJ0dWFsCj4+ICAgICoKPj4gQEAgLTUzMSw5ICsx OTAsOSBAQCBzdGF0aWMgaW5saW5lIGludCB0dG1fYm9fcmVzZXJ2ZV9zbG93cGF0aChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pgo+PiAgIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fYm9f bW92ZV90b19scnVfdGFpbF91bmxvY2tlZChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+ PiAgIHsKPj4gLSAgICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAg ICAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4gICAgICAgICAgdHRtX2JvX21v dmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOwo+PiAtICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9f Z2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2Nr KTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGlubGluZSB2b2lkIHR0bV9ib19hc3NpZ25fbWVtKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IEBAIC01NzYsOSArMjM1LDkgQEAgc3RhdGlj IGlubGluZSB2b2lkIHR0bV9ib191bnJlc2VydmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bykKPj4gICAgKiB0dG1fYm9fdXRpbC5jCj4+ICAgICovCj4+Cj4+IC1pbnQgdHRtX21lbV9pb19y ZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAraW50IHR0bV9tZW1faW9fcmVz ZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPj4gLXZvaWQgdHRtX21lbV9pb19mcmVlKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArdm9pZCB0dG1fbWVtX2lvX2ZyZWUoc3RydWN0IHR0 bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291 cmNlICptZW0pOwo+PiAgIC8qKgo+PiAgICAqIHR0bV9ib19tb3ZlX3R0bQo+PiBAQCAtNzA2LDcg KzM2NSw3IEBAIHZvaWQgdHRtX2JvX3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibyk7Cj4+ICAgICogSW5pdGlhbGlzZSBhIGdlbmVyaWMgcmFuZ2UgbWFuYWdlciBmb3IgdGhl IHNlbGVjdGVkIG1lbW9yeSB0eXBlLgo+PiAgICAqIFRoZSByYW5nZSBtYW5hZ2VyIGlzIGluc3Rh bGxlZCBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIHR5cGUgc2xvdC4KPj4gICAgKi8KPj4gLWludCB0 dG1fcmFuZ2VfbWFuX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtpbnQgdHRt X3JhbmdlX21hbl9pbml0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCB0eXBlLCBib29sIHVzZV90dCwKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBwX3NpemUpOwo+Pgo+PiBAQCAtNzE4LDcgKzM3Nyw3IEBA IGludCB0dG1fcmFuZ2VfbWFuX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAg ICoKPj4gICAgKiBSZW1vdmUgdGhlIGdlbmVyaWMgcmFuZ2UgbWFuYWdlciBmcm9tIGEgc2xvdCBh bmQgdGVhciBpdCBkb3duLgo+PiAgICAqLwo+PiAtaW50IHR0bV9yYW5nZV9tYW5fZmluaShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2ludCB0dG1fcmFuZ2VfbWFuX2Zpbmkoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHR5 cGUpOwo+Pgo+PiAgICNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9k ZXZpY2UuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fZGV2aWNlLmgKPj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAwLi43NWZlZGQzNzhlOGYKPj4gLS0tIC9kZXYvbnVs bAo+PiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5oCj4+IEBAIC0wLDAgKzEsMzY2 IEBACj4+ICsvKgo+PiArICogQ29weXJpZ2h0IDIwMjAgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLgo+PiArICoKPj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4+ICsgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LAo+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4+ICsgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUKPj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+ICsgKgo+PiArICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk ZWQgaW4KPj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4+ICsgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+PiArICogVEhFIENPUFlSSUdIVCBIT0xERVIo UykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4+ICsg KiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwKPj4gKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+PiArICogT1RIRVIgREVBTElOR1Mg SU4gVEhFIFNPRlRXQVJFLgo+PiArICoKPj4gKyAqIEF1dGhvcnM6IENocmlzdGlhbiBLw7ZuaWcK Pj4gKyAqLwo+PiArCj4+ICsjaWZuZGVmIF9UVE1fREVWSUNFX0hfCj4+ICsjZGVmaW5lIF9UVE1f REVWSUNFX0hfCj4+ICsKPj4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+PiArI2luY2x1ZGUg PGxpbnV4L3dvcmtxdWV1ZS5oPgo+PiArI2luY2x1ZGUgPGRybS90dG0vdHRtX3Jlc291cmNlLmg+ Cj4+ICsKPj4gKyNkZWZpbmUgVFRNX05VTV9NRU1fVFlQRVMgOAo+PiArCj4+ICtzdHJ1Y3QgdHRt X2RldmljZTsKPj4gK3N0cnVjdCB0dG1fcmVzb3VyY2U7Cj4+ICtzdHJ1Y3QgdHRtX3BsYWNlbWVu dDsKPj4gK3N0cnVjdCB0dG1fYnVmZmVyX29iamVjdDsKPj4gK3N0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eDsKPj4gKwo+PiArLyoqCj4+ICsgKiBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAtIEJ1ZmZlciBv YmplY3QgZHJpdmVyIGdsb2JhbCBkYXRhLgo+PiArICoKPj4gKyAqIEBkdW1teV9yZWFkX3BhZ2U6 IFBvaW50ZXIgdG8gYSBkdW1teSBwYWdlIHVzZWQgZm9yIG1hcHBpbmcgcmVxdWVzdHMKPj4gKyAq IG9mIHVucG9wdWxhdGVkIHBhZ2VzLgo+PiArICogQHNocmluazogQSBzaHJpbmsgY2FsbGJhY2sg b2JqZWN0IHVzZWQgZm9yIGJ1ZmZlciBvYmplY3Qgc3dhcC4KPj4gKyAqIEBkZXZpY2VfbGlzdF9t dXRleDogTXV0ZXggcHJvdGVjdGluZyB0aGUgZGV2aWNlIGxpc3QuCj4+ICsgKiBUaGlzIG11dGV4 IGlzIGhlbGQgd2hpbGUgdHJhdmVyc2luZyB0aGUgZGV2aWNlIGxpc3QgZm9yIHBtIG9wdGlvbnMu Cj4+ICsgKiBAbHJ1X2xvY2s6IFNwaW5sb2NrIHByb3RlY3RpbmcgdGhlIGJvIHN1YnN5c3RlbSBs cnUgbGlzdHMuCj4+ICsgKiBAZGV2aWNlX2xpc3Q6IExpc3Qgb2YgYnVmZmVyIG9iamVjdCBkZXZp Y2VzLgo+PiArICogQHN3YXBfbHJ1OiBMcnUgbGlzdCBvZiBidWZmZXIgb2JqZWN0cyB1c2VkIGZv ciBzd2FwcGluZy4KPj4gKyAqLwo+PiArZXh0ZXJuIHN0cnVjdCB0dG1fZ2xvYmFsIHsKPj4gKwo+ PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIENvbnN0YW50IGFmdGVyIGluaXQuCj4+ICsgICAg ICAgICovCj4+ICsKPj4gKyAgICAgICBzdHJ1Y3Qga29iamVjdCBrb2JqOwo+PiArICAgICAgIHN0 cnVjdCBwYWdlICpkdW1teV9yZWFkX3BhZ2U7Cj4+ICsgICAgICAgc3BpbmxvY2tfdCBscnVfbG9j azsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIFByb3RlY3RlZCBieSB0dG1fZ2xv YmFsX211dGV4Lgo+PiArICAgICAgICAqLwo+PiArICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGV2 aWNlX2xpc3Q7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAgICAgKiBQcm90ZWN0ZWQgYnkg dGhlIGxydV9sb2NrLgo+PiArICAgICAgICAqLwo+PiArICAgICAgIHN0cnVjdCBsaXN0X2hlYWQg c3dhcF9scnVbVFRNX01BWF9CT19QUklPUklUWV07Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAg ICAgICAgKiBJbnRlcm5hbCBwcm90ZWN0aW9uLgo+PiArICAgICAgICAqLwo+PiArICAgICAgIGF0 b21pY190IGJvX2NvdW50Owo+PiArfSB0dG1fZ2xvYjsKPj4gKwo+PiArc3RydWN0IHR0bV9kZXZp Y2VfZnVuY3Mgewo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIHR0bV90dF9jcmVhdGUKPj4g KyAgICAgICAgKgo+PiArICAgICAgICAqIEBibzogVGhlIGJ1ZmZlciBvYmplY3QgdG8gY3JlYXRl IHRoZSB0dG0gZm9yLgo+PiArICAgICAgICAqIEBwYWdlX2ZsYWdzOiBQYWdlIGZsYWdzIGFzIGlk ZW50aWZpZWQgYnkgVFRNX1BBR0VfRkxBR19YWCBmbGFncy4KPj4gKyAgICAgICAgKgo+PiArICAg ICAgICAqIENyZWF0ZSBhIHN0cnVjdCB0dG1fdHQgdG8gYmFjayBkYXRhIHdpdGggc3lzdGVtIG1l bW9yeSBwYWdlcy4KPj4gKyAgICAgICAgKiBObyBwYWdlcyBhcmUgYWN0dWFsbHkgYWxsb2NhdGVk Lgo+PiArICAgICAgICAqIFJldHVybnM6Cj4+ICsgICAgICAgICogTlVMTDogT3V0IG9mIG1lbW9y eS4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBzdHJ1Y3QgdHRtX3R0ICooKnR0bV90dF9jcmVh dGUpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwYWdlX2ZsYWdzKTsKPj4gKwo+PiArICAgICAg IC8qKgo+PiArICAgICAgICAqIHR0bV90dF9wb3B1bGF0ZQo+PiArICAgICAgICAqCj4+ICsgICAg ICAgICogQHR0bTogVGhlIHN0cnVjdCB0dG1fdHQgdG8gY29udGFpbiB0aGUgYmFja2luZyBwYWdl cy4KPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIEFsbG9jYXRlIGFsbCBiYWNraW5nIHBhZ2Vz Cj4+ICsgICAgICAgICogUmV0dXJuczoKPj4gKyAgICAgICAgKiAtRU5PTUVNOiBPdXQgb2YgbWVt b3J5Lgo+PiArICAgICAgICAqLwo+PiArICAgICAgIGludCAoKnR0bV90dF9wb3B1bGF0ZSkoc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3R0ICp0dG0sCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAg ICAgKiB0dG1fdHRfdW5wb3B1bGF0ZQo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQHR0bTog VGhlIHN0cnVjdCB0dG1fdHQgdG8gY29udGFpbiB0aGUgYmFja2luZyBwYWdlcy4KPj4gKyAgICAg ICAgKgo+PiArICAgICAgICAqIEZyZWUgYWxsIGJhY2tpbmcgcGFnZQo+PiArICAgICAgICAqLwo+ PiArICAgICAgIHZvaWQgKCp0dG1fdHRfdW5wb3B1bGF0ZSkoc3RydWN0IHR0bV9kZXZpY2UgKmJk ZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0 dG0pOwo+PiArCj4+ICsgICAgICAgLyoqCj4+ICsgICAgICAgICogdHRtX3R0X2JpbmQKPj4gKyAg ICAgICAgKgo+PiArICAgICAgICAqIEBiZGV2OiBQb2ludGVyIHRvIGEgdHRtIGRldmljZQo+PiAr ICAgICAgICAqIEB0dG06IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX3R0Lgo+PiArICAgICAgICAq IEBib19tZW06IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX3Jlc291cmNlIGRlc2NyaWJpbmcgdGhl Cj4+ICsgICAgICAgICogbWVtb3J5IHR5cGUgYW5kIGxvY2F0aW9uIGZvciBiaW5kaW5nLgo+PiAr ICAgICAgICAqCj4+ICsgICAgICAgICogQmluZCB0aGUgYmFja2VuZCBwYWdlcyBpbnRvIHRoZSBh cGVydHVyZSBpbiB0aGUgbG9jYXRpb24KPj4gKyAgICAgICAgKiBpbmRpY2F0ZWQgYnkgQGJvX21l bS4gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUKPj4gKyAgICAgICAgKiBk aWZmZXJlbmNlcyBiZXR3ZWVuIGFwZXJ0dXJlIGFuZCBzeXN0ZW0gcGFnZSBzaXplcy4KPj4gKyAg ICAgICAgKi8KPj4gKyAgICAgICBpbnQgKCp0dG1fdHRfYmluZCkoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAg ICAgICAqIHR0bV90dF91bmJpbmQKPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIEBiZGV2OiBQ b2ludGVyIHRvIGEgdHRtIGRldmljZQo+PiArICAgICAgICAqIEB0dG06IFBvaW50ZXIgdG8gYSBz dHJ1Y3QgdHRtX3R0Lgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogVW5iaW5kIHByZXZpb3Vz bHkgYm91bmQgYmFja2VuZCBwYWdlcy4gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUKPj4gKyAgICAg ICAgKiBhYmxlIHRvIGhhbmRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGFwZXJ0dXJlIGFuZCBzeXN0 ZW0gcGFnZSBzaXplcy4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICB2b2lkICgqdHRtX3R0X3Vu YmluZCkoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICsK Pj4gKyAgICAgICAvKioKPj4gKyAgICAgICAgKiB0dG1fdHRfZGVzdHJveQo+PiArICAgICAgICAq Cj4+ICsgICAgICAgICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG0gZGV2aWNlCj4+ICsgICAgICAg ICogQHR0bTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fdHQuCj4+ICsgICAgICAgICoKPj4gKyAg ICAgICAgKiBEZXN0cm95IHRoZSBiYWNrZW5kLiBUaGlzIHdpbGwgYmUgY2FsbCBiYWNrIGZyb20g dHRtX3R0X2Rlc3Ryb3kgc28KPj4gKyAgICAgICAgKiBkb24ndCBjYWxsIHR0bV90dF9kZXN0cm95 IGZyb20gdGhlIGNhbGxiYWNrIG9yIGluZmluaXRlIGxvb3AuCj4+ICsgICAgICAgICovCj4+ICsg ICAgICAgdm9pZCAoKnR0bV90dF9kZXN0cm95KShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3Ry dWN0IHR0bV90dCAqdHRtKTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIHN0cnVj dCB0dG1fYm9fZHJpdmVyIG1lbWJlciBldmljdGlvbl92YWx1YWJsZQo+PiArICAgICAgICAqCj4+ ICsgICAgICAgICogQGJvOiB0aGUgYnVmZmVyIG9iamVjdCB0byBiZSBldmljdGVkCj4+ICsgICAg ICAgICogQHBsYWNlOiBwbGFjZW1lbnQgd2UgbmVlZCByb29tIGZvcgo+PiArICAgICAgICAqCj4+ ICsgICAgICAgICogQ2hlY2sgd2l0aCB0aGUgZHJpdmVyIGlmIGl0IGlzIHZhbHVhYmxlIHRvIGV2 aWN0IGEgQk8gdG8gbWFrZSByb29tCj4+ICsgICAgICAgICogZm9yIGEgY2VydGFpbiBwbGFjZW1l bnQuCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgYm9vbCAoKmV2aWN0aW9uX3ZhbHVhYmxlKShz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UpOwo+PiArICAgICAgIC8qKgo+ PiArICAgICAgICAqIHN0cnVjdCB0dG1fYm9fZHJpdmVyIG1lbWJlciBldmljdF9mbGFnczoKPj4g KyAgICAgICAgKgo+PiArICAgICAgICAqIEBibzogdGhlIGJ1ZmZlciBvYmplY3QgdG8gYmUgZXZp Y3RlZAo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogUmV0dXJuIHRoZSBibyBmbGFncyBmb3Ig YSBidWZmZXIgd2hpY2ggaXMgbm90IG1hcHBlZCB0byB0aGUgaGFyZHdhcmUuCj4+ICsgICAgICAg ICogVGhlc2Ugd2lsbCBiZSBwbGFjZWQgaW4gcHJvcG9zZWRfZmxhZ3Mgc28gdGhhdCB3aGVuIHRo ZSBtb3ZlIGlzCj4+ICsgICAgICAgICogZmluaXNoZWQsIHRoZXknbGwgZW5kIHVwIGluIGJvLT5t ZW0uZmxhZ3MKPj4gKyAgICAgICAgKi8KPj4gKwo+PiArICAgICAgIHZvaWQgKCpldmljdF9mbGFn cykoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQpOwo+PiArCj4+ICsgICAgICAg LyoqCj4+ICsgICAgICAgICogc3RydWN0IHR0bV9ib19kcml2ZXIgbWVtYmVyIG1vdmU6Cj4+ICsg ICAgICAgICoKPj4gKyAgICAgICAgKiBAYm86IHRoZSBidWZmZXIgdG8gbW92ZQo+PiArICAgICAg ICAqIEBldmljdDogd2hldGhlciB0aGlzIG1vdGlvbiBpcyBldmljdGluZyB0aGUgYnVmZmVyIGZy b20KPj4gKyAgICAgICAgKiB0aGUgZ3JhcGhpY3MgYWRkcmVzcyBzcGFjZQo+PiArICAgICAgICAq IEBjdHg6IGNvbnRleHQgZm9yIHRoaXMgbW92ZSB3aXRoIHBhcmFtZXRlcnMKPj4gKyAgICAgICAg KiBAbmV3X21lbTogdGhlIG5ldyBtZW1vcnkgcmVnaW9uIHJlY2VpdmluZyB0aGUgYnVmZmVyCj4+ ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBNb3ZlIGEgYnVmZmVyIGJldHdlZW4gdHdvIG1lbW9y eSByZWdpb25zLgo+PiArICAgICAgICAqLwo+PiArICAgICAgIGludCAoKm1vdmUpKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCj4+ICsgICAgICAgICAgICAgICAgICAg c3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4+ICsgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSk7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAg ICAgKiBzdHJ1Y3QgdHRtX2JvX2RyaXZlcl9tZW1iZXIgdmVyaWZ5X2FjY2Vzcwo+PiArICAgICAg ICAqCj4+ICsgICAgICAgICogQGJvOiBQb2ludGVyIHRvIGEgYnVmZmVyIG9iamVjdC4KPj4gKyAg ICAgICAgKiBAZmlscDogUG9pbnRlciB0byBhIHN0cnVjdCBmaWxlIHRyeWluZyB0byBhY2Nlc3Mg dGhlIG9iamVjdC4KPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIENhbGxlZCBmcm9tIHRoZSBt YXAgLyB3cml0ZSAvIHJlYWQgbWV0aG9kcyB0byB2ZXJpZnkgdGhhdCB0aGUKPj4gKyAgICAgICAg KiBjYWxsZXIgaXMgcGVybWl0dGVkIHRvIGFjY2VzcyB0aGUgYnVmZmVyIG9iamVjdC4KPj4gKyAg ICAgICAgKiBUaGlzIG1lbWJlciBtYXkgYmUgc2V0IHRvIE5VTEwsIHdoaWNoIHdpbGwgcmVmdXNl IHRoaXMga2luZCBvZgo+PiArICAgICAgICAqIGFjY2VzcyBmb3IgYWxsIGJ1ZmZlciBvYmplY3Rz Lgo+PiArICAgICAgICAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIHJldHVybiAwIGlmIGFjY2VzcyBp cyBncmFudGVkLCAtRVBFUk0gb3RoZXJ3aXNlLgo+PiArICAgICAgICAqLwo+PiArICAgICAgIGlu dCAoKnZlcmlmeV9hY2Nlc3MpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZpbGUgKmZpbHApOwo+PiArCj4+ICsgICAg ICAgLyoqCj4+ICsgICAgICAgICogSG9vayB0byBub3RpZnkgZHJpdmVyIGFib3V0IGEgZHJpdmVy IG1vdmUgc28gaXQKPj4gKyAgICAgICAgKiBjYW4gZG8gdGlsaW5nIHRoaW5ncyBhbmQgYm9vay1r ZWVwaW5nLgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQGV2aWN0OiB3aGV0aGVyIHRoaXMg bW92ZSBpcyBldmljdGluZyB0aGUgYnVmZmVyIGZyb20gdGhlIGdyYXBoaWNzCj4+ICsgICAgICAg ICogYWRkcmVzcyBzcGFjZQo+PiArICAgICAgICAqLwo+PiArICAgICAgIHZvaWQgKCptb3ZlX25v dGlmeSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgZXZpY3QsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAgICAg ICAqIG5vdGlmeSB0aGUgZHJpdmVyIHRoYXQgd2UncmUgYWJvdXQgdG8gc3dhcCBvdXQgdGhpcyBi bwo+PiArICAgICAgICAqLwo+PiArICAgICAgIHZvaWQgKCpzd2FwX25vdGlmeSkoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAgICAgKiBE cml2ZXIgY2FsbGJhY2sgb24gd2hlbiBtYXBwaW5nIGlvIG1lbW9yeSAoZm9yIGJvX21vdmVfbWVt Y3B5Cj4+ICsgICAgICAgICogZm9yIGluc3RhbmNlKS4gVFRNIHdpbGwgdGFrZSBjYXJlIHRvIGNh bGwgaW9fbWVtX2ZyZWUgd2hlbmV2ZXIKPj4gKyAgICAgICAgKiB0aGUgbWFwcGluZyBpcyBub3Qg dXNlIGFueW1vcmUuIGlvX21lbV9yZXNlcnZlICYgaW9fbWVtX2ZyZWUKPj4gKyAgICAgICAgKiBh cmUgYmFsYW5jZWQuCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgaW50ICgqaW9fbWVtX3Jlc2Vy dmUpKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+PiArICAgICAgIHZvaWQgKCppb19tZW1f ZnJlZSkoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+PiArCj4+ICsgICAgICAgLyoqCj4+ICsg ICAgICAgICogUmV0dXJuIHRoZSBwZm4gZm9yIGEgZ2l2ZW4gcGFnZV9vZmZzZXQgaW5zaWRlIHRo ZSBCTy4KPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIEBibzogdGhlIEJPIHRvIGxvb2sgdXAg dGhlIHBmbiBmb3IKPj4gKyAgICAgICAgKiBAcGFnZV9vZmZzZXQ6IHRoZSBvZmZzZXQgdG8gbG9v ayB1cAo+PiArICAgICAgICAqLwo+PiArICAgICAgIHVuc2lnbmVkIGxvbmcgKCppb19tZW1fcGZu KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0KTsKPj4gKwo+PiArICAgICAg IC8qKgo+PiArICAgICAgICAqIFJlYWQvd3JpdGUgbWVtb3J5IGJ1ZmZlcnMgZm9yIHB0cmFjZSBh Y2Nlc3MKPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIEBibzogdGhlIEJPIHRvIGFjY2Vzcwo+ PiArICAgICAgICAqIEBvZmZzZXQ6IHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIEJP Cj4+ICsgICAgICAgICogQGJ1ZjogcG9pbnRlciB0byBzb3VyY2UvZGVzdGluYXRpb24gYnVmZmVy Cj4+ICsgICAgICAgICogQGxlbjogbnVtYmVyIG9mIGJ5dGVzIHRvIGNvcHkKPj4gKyAgICAgICAg KiBAd3JpdGU6IHdoZXRoZXIgdG8gcmVhZCAoMCkgZnJvbSBvciB3cml0ZSAobm9uLTApIHRvIEJP Cj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBJZiBzdWNjZXNzZnVsLCB0aGlzIGZ1bmN0aW9u IHNob3VsZCByZXR1cm4gdGhlIG51bWJlciBvZgo+PiArICAgICAgICAqIGJ5dGVzIGNvcGllZCwg LUVJTyBvdGhlcndpc2UuIElmIHRoZSBudW1iZXIgb2YgYnl0ZXMKPj4gKyAgICAgICAgKiByZXR1 cm5lZCBpcyA8IGxlbiwgdGhlIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgYWdhaW4gd2l0aAo+PiAr ICAgICAgICAqIHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlciB0byBjb3B5Lgo+PiArICAgICAg ICAqLwo+PiArICAgICAgIGludCAoKmFjY2Vzc19tZW1vcnkpKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRlKTsKPj4gKwo+PiArICAgICAgIC8q Kgo+PiArICAgICAgICAqIHN0cnVjdCB0dG1fYm9fZHJpdmVyIG1lbWJlciBkZWxfZnJvbV9scnVf bm90aWZ5Cj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBAYm86IHRoZSBidWZmZXIgb2JqZWN0 IGRlbGV0ZWQgZnJvbSBscnUKPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIG5vdGlmeSBkcml2 ZXIgdGhhdCBhIEJPIHdhcyBkZWxldGVkIGZyb20gTFJVLgo+PiArICAgICAgICAqLwo+PiArICAg ICAgIHZvaWQgKCpkZWxfZnJvbV9scnVfbm90aWZ5KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvKTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIE5vdGlmeSB0aGUgZHJpdmVy IHRoYXQgd2UncmUgYWJvdXQgdG8gcmVsZWFzZSBhIEJPCj4+ICsgICAgICAgICoKPj4gKyAgICAg ICAgKiBAYm86IEJPIHRoYXQgaXMgYWJvdXQgdG8gYmUgcmVsZWFzZWQKPj4gKyAgICAgICAgKgo+ PiArICAgICAgICAqIEdpdmVzIHRoZSBkcml2ZXIgYSBjaGFuY2UgdG8gZG8gYW55IGNsZWFudXAs IGluY2x1ZGluZwo+PiArICAgICAgICAqIGFkZGluZyBmZW5jZXMgdGhhdCBtYXkgZm9yY2UgYSBk ZWxheWVkIGRlbGV0ZQo+PiArICAgICAgICAqLwo+PiArICAgICAgIHZvaWQgKCpyZWxlYXNlX25v dGlmeSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4+ICt9Owo+PiArCj4+ICsvKioK Pj4gKyAqIHN0cnVjdCB0dG1fZGV2aWNlIC0gQnVmZmVyIG9iamVjdCBkcml2ZXIgZGV2aWNlLXNw ZWNpZmljIGRhdGEuCj4+ICsgKgo+PiArICogQGRyaXZlcjogUG9pbnRlciB0byBhIHN0cnVjdCB0 dG1fYm9fZHJpdmVyIHN0cnVjdCBzZXR1cCBieSB0aGUgZHJpdmVyLgo+PiArICogQG1hbjogQW4g YXJyYXkgb2YgcmVzb3VyY2VfbWFuYWdlcnMuCj4+ICsgKiBAdm1hX21hbmFnZXI6IEFkZHJlc3Mg c3BhY2UgbWFuYWdlciAocG9pbnRlcikKPj4gKyAqIGxydV9sb2NrOiBTcGlubG9jayB0aGF0IHBy b3RlY3RzIHRoZSBidWZmZXIrZGV2aWNlIGxydSBsaXN0cyBhbmQKPj4gKyAqIGRkZXN0cm95IGxp c3RzLgo+PiArICogQGRldl9tYXBwaW5nOiBBIHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBhZGRyZXNz X3NwYWNlIHJlcHJlc2VudGluZyB0aGUKPj4gKyAqIGRldmljZSBhZGRyZXNzIHNwYWNlLgo+PiAr ICogQHdxOiBXb3JrIHF1ZXVlIHN0cnVjdHVyZSBmb3IgdGhlIGRlbGF5ZWQgZGVsZXRlIHdvcmtx dWV1ZS4KPj4gKyAqIEBub19yZXRyeTogRG9uJ3QgcmV0cnkgYWxsb2NhdGlvbiBpZiBpdCBmYWls cwo+PiArICoKPj4gKyAqLwo+PiArc3RydWN0IHR0bV9kZXZpY2Ugewo+PiArCj4+ICsgICAgICAg LyoKPj4gKyAgICAgICAgKiBDb25zdGFudCBhZnRlciBibyBkZXZpY2UgaW5pdCAvIGF0b21pYy4K Pj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0Owo+ PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzICpmdW5jczsKPj4gKwo+PiArICAgICAg IC8qCj4+ICsgICAgICAgICogYWNjZXNzIHZpYSB0dG1fbWFuYWdlcl90eXBlLgo+PiArICAgICAg ICAqLwo+PiArICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciBzeXNtYW47Cj4+ICsg ICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW5fZHJ2W1RUTV9OVU1fTUVNX1RZ UEVTXTsKPj4gKwo+PiArICAgICAgIC8qCj4+ICsgICAgICAgICogUHJvdGVjdGVkIGJ5IGludGVy bmFsIGxvY2tzLgo+PiArICAgICAgICAqLwo+PiArICAgICAgIHN0cnVjdCBkcm1fdm1hX29mZnNl dF9tYW5hZ2VyICp2bWFfbWFuYWdlcjsKPj4gKwo+PiArICAgICAgIC8qCj4+ICsgICAgICAgICog UHJvdGVjdGVkIGJ5IHRoZSBnbG9iYWw6bHJ1IGxvY2suCj4+ICsgICAgICAgICovCj4+ICsgICAg ICAgc3RydWN0IGxpc3RfaGVhZCBkZGVzdHJveTsKPj4gKwo+PiArICAgICAgIC8qCj4+ICsgICAg ICAgICogUHJvdGVjdGVkIGJ5IGxvYWQgLyBmaXJzdG9wZW4gLyBsYXN0Y2xvc2UgL3VubG9hZCBz eW5jLgo+PiArICAgICAgICAqLwo+PiArCj4+ICsgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug KmRldl9tYXBwaW5nOwo+PiArCj4+ICsgICAgICAgLyoKPj4gKyAgICAgICAgKiBJbnRlcm5hbCBw cm90ZWN0aW9uLgo+PiArICAgICAgICAqLwo+PiArCj4+ICsgICAgICAgc3RydWN0IGRlbGF5ZWRf d29yayB3cTsKPj4gKwo+PiArICAgICAgIGJvb2wgbmVlZF9kbWEzMjsKPj4gKyAgICAgICBib29s IG5vX3JldHJ5Owo+PiArfTsKPj4gKwo+PiArc3RhdGljIGlubGluZSBzdHJ1Y3QgdHRtX3Jlc291 cmNlX21hbmFnZXIgKgo+PiArdHRtX21hbmFnZXJfdHlwZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwgaW50IG1lbV90eXBlKQo+PiArewo+PiArICAgICAgIHJldHVybiBiZGV2LT5tYW5fZHJ2W21l bV90eXBlXTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGlubGluZSB2b2lkCj4+ICt0dG1fc2V0X2Ry aXZlcl9tYW5hZ2VyKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBpbnQgdHlwZSwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbmFnZXIpCj4+ ICt7Cj4+ICsgICAgICAgYmRldi0+bWFuX2Rydlt0eXBlXSA9IG1hbmFnZXI7Cj4+ICt9Cj4+ICsK Pj4gKy8qKgo+PiArICogdHRtX2RldmljZV9pbml0Cj4+ICsgKgo+PiArICogQGJkZXY6IEEgcG9p bnRlciB0byBhIHN0cnVjdCB0dG1fZGV2aWNlIHRvIGluaXRpYWxpemUuCj4+ICsgKiBAZnVuY3M6 IEEgcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHNldCB1cCBieSB0aGUgY2FsbGVy Lgo+PiArICogQG1hcHBpbmc6IFRoZSBhZGRyZXNzIHNwYWNlIHRvIHVzZSBmb3IgdGhpcyBiby4K Pj4gKyAqIEB2bWFfbWFuYWdlcjogQSBwb2ludGVyIHRvIGEgdm1hIG1hbmFnZXIuCj4+ICsgKiBA bmVlZF9kbWEzMjogaWYgcGFnZSBhbGxvY2F0aW9ucyBzaG91bGQgdXNlIERNQTMyCj4+ICsgKgo+ PiArICogSW5pdGlhbGl6ZXMgYSBzdHJ1Y3QgdHRtX2RldmljZToKPj4gKyAqIFJldHVybnM6Cj4+ ICsgKiAhMDogRmFpbHVyZS4KPj4gKyAqLwo+PiAraW50IHR0bV9kZXZpY2VfaW5pdChzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9kZXZpY2VfZnVuY3MgKmZ1bmNzLAo+PiArICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAo+PiArICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBkcm1fdm1hX29mZnNldF9tYW5hZ2VyICp2bWFfbWFuYWdlciwK Pj4gKyAgICAgICAgICAgICAgICAgICBib29sIG5lZWRfZG1hMzIpOwo+PiAraW50IHR0bV9kZXZp Y2VfcmVsZWFzZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldik7Cj4+ICsKPj4gKyNlbmRpZgo+PiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oIGIvaW5jbHVkZS9kcm0v dHRtL3R0bV9yZXNvdXJjZS5oCj4+IGluZGV4IDkxYjY3Y2VjYzZiNi4uYTYwZmZlNDA5YjYwIDEw MDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX3Jlc291cmNlLmgKPj4gKysrIGIvaW5j bHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oCj4+IEBAIC0zMyw3ICszMyw3IEBACj4+Cj4+ICAg I2RlZmluZSBUVE1fTUFYX0JPX1BSSU9SSVRZICAgIDRVCj4+Cj4+IC1zdHJ1Y3QgdHRtX2JvX2Rl dmljZTsKPj4gK3N0cnVjdCB0dG1fZGV2aWNlOwo+PiAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlcjsKPj4gICBzdHJ1Y3QgdHRtX3Jlc291cmNlOwo+PiAgIHN0cnVjdCB0dG1fcGxhY2U7Cj4+ IEBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCB0dG1fcmVzb3VyY2VfZnJlZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZXMpOwo+PiAgIHZvaWQgdHRt X3Jlc291cmNlX21hbmFnZXJfaW5pdChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBfc2l6ZSk7 Cj4+Cj4+IC1pbnQgdHRtX3Jlc291cmNlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbihzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2ludCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9s aXN0X2NsZWFuKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4p Owo+Pgo+PiAgIHZvaWQgdHRtX3Jlc291cmNlX21hbmFnZXJfZGVidWcoc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyICptYW4sCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX3R0 LmggYi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKPj4gaW5kZXggZTA0MmRlYzVlNmMxLi5hNTYw Njc4MTlhNTggMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaAo+PiArKysg Yi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKPj4gQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IHR0 bV9vcGVyYXRpb25fY3R4Owo+PiAgICAqCj4+ICAgICogQHBhZ2VzOiBBcnJheSBvZiBwYWdlcyBi YWNraW5nIHRoZSBkYXRhLgo+PiAgICAqIEBudW1fcGFnZXM6IE51bWJlciBvZiBwYWdlcyBpbiB0 aGUgcGFnZSBhcnJheS4KPj4gLSAqIEBiZGV2OiBQb2ludGVyIHRvIHRoZSBjdXJyZW50IHN0cnVj dCB0dG1fYm9fZGV2aWNlLgo+PiArICogQGJkZXY6IFBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgc3Ry dWN0IHR0bV9kZXZpY2UuCj4+ICAgICogQGJlOiBQb2ludGVyIHRvIHRoZSB0dG0gYmFja2VuZC4K Pj4gICAgKiBAc3dhcF9zdG9yYWdlOiBQb2ludGVyIHRvIHNobWVtIHN0cnVjdCBmaWxlIGZvciBz d2FwIHN0b3JhZ2UuCj4+ICAgICogQGNhY2hpbmdfc3RhdGU6IFRoZSBjdXJyZW50IGNhY2hpbmcg c3RhdGUgb2YgdGhlIHBhZ2VzLgo+PiBAQCAtMTQ3LDE0ICsxNDcsMTQgQEAgdm9pZCB0dG1fZG1h X3R0X2Zpbmkoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEpOwo+PiAgICAqCj4+ICAgICogVW5i aW5kLCB1bnBvcHVsYXRlIGFuZCBkZXN0cm95IGNvbW1vbiBzdHJ1Y3QgdHRtX3R0Lgo+PiAgICAq Lwo+PiAtdm9pZCB0dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3Ry dWN0IHR0bV90dCAqdHRtKTsKPj4gK3ZvaWQgdHRtX3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+Cj4+ICAgLyoqCj4+ICAgICogdHRtX3R0 X2Rlc3Ryb3lfY29tbW9uOgo+PiAgICAqCj4+ICAgICogQ2FsbGVkIGZyb20gZHJpdmVyIHRvIGRl c3Ryb3kgY29tbW9uIHBhdGguCj4+ICAgICovCj4+IC12b2lkIHR0bV90dF9kZXN0cm95X2NvbW1v bihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4gK3Zv aWQgdHRtX3R0X2Rlc3Ryb3lfY29tbW9uKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3Qg dHRtX3R0ICp0dG0pOwo+Pgo+PiAgIC8qKgo+PiAgICAqIHR0bV90dF9zd2FwaW46Cj4+IEBAIC0x NjQsNyArMTY0LDcgQEAgdm9pZCB0dG1fdHRfZGVzdHJveV9jb21tb24oc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICAgICogU3dhcCBpbiBhIHByZXZp b3VzbHkgc3dhcCBvdXQgdHRtX3R0Lgo+PiAgICAqLwo+PiAgIGludCB0dG1fdHRfc3dhcGluKHN0 cnVjdCB0dG1fdHQgKnR0bSk7Cj4+IC1pbnQgdHRtX3R0X3N3YXBvdXQoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICtpbnQgdHRtX3R0X3N3YXBvdXQo c3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+Cj4+ICAgLyoq Cj4+ICAgICogdHRtX3R0X3BvcHVsYXRlIC0gYWxsb2NhdGUgcGFnZXMgZm9yIGEgdHRtCj4+IEBA IC0xNzMsNyArMTczLDcgQEAgaW50IHR0bV90dF9zd2Fwb3V0KHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiAgICAqCj4+ICAgICogQ2FsbHMgdGhlIGRy aXZlciBtZXRob2QgdG8gYWxsb2NhdGUgcGFnZXMgZm9yIGEgdHRtCj4+ICAgICovCj4+IC1pbnQg dHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0 ICp0dG0sIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKPj4gK2ludCB0dG1fdHRfcG9w dWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0 IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+Pgo+PiAgIC8qKgo+PiAgICAqIHR0bV90dF91bnBv cHVsYXRlIC0gZnJlZSBwYWdlcyBmcm9tIGEgdHRtCj4+IEBAIC0xODIsNyArMTgyLDcgQEAgaW50 IHR0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90 dCAqdHRtLCBzdHJ1Y3QgdHRtX28KPj4gICAgKgo+PiAgICAqIENhbGxzIHRoZSBkcml2ZXIgbWV0 aG9kIHRvIGZyZWUgYWxsIHBhZ2VzIGZyb20gYSB0dG0KPj4gICAgKi8KPj4gLXZvaWQgdHRtX3R0 X3VucG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0 bSk7Cj4+ICt2b2lkIHR0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBz dHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pgo+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1ApCj4+ ICAgI2luY2x1ZGUgPGxpbnV4L2FncF9iYWNrZW5kLmg+Cj4+IC0tCj4+IDIuMTcuMQo+PgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==