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=-12.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6019AC433DB for ; Thu, 21 Jan 2021 13:45:38 +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 0196323444 for ; Thu, 21 Jan 2021 13:45:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0196323444 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 1C4D06E8EB; Thu, 21 Jan 2021 13:45:37 +0000 (UTC) Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by gabe.freedesktop.org (Postfix) with ESMTPS id 839B86E8EA for ; Thu, 21 Jan 2021 13:45:34 +0000 (UTC) Received: by mail-ed1-x531.google.com with SMTP id c2so2259444edr.11 for ; Thu, 21 Jan 2021 05:45:34 -0800 (PST) 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=qnirS3GqTcwk9D0P+eFx0TU9NnldRu2cG0ta5vqKm0I=; b=iX32aVfZJfScRJYz7CV7e3AMWaNv5g00d2U8MOwMQMvxiAqStAIBdTafimzcitJXdd ZyGjmUkrnus8tGGg3bYcMEDxCXLcnCSwPeb9GJjotZOv4O774DQ5dbW2oh+VJOvragiK KqTbfOC5bdpc/SS7j0T31W938wkU2so48CcFBZgXiHEPkmhiSmwSgJFp1GJVYZnNL2Nb 5bUlsQEC5sMaMc+slVFlBYvG7TL5p3fqfUmEIBUMPoOiH8OyKSDjq0GvlPOK0MX2DOT2 Bw0z6PeGMxf811cC1J/eHmJsU1DjanHXe6qbz62KX4RMwI+8Iwjb5BHa3bWlMVYVJwYJ D2NQ== 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=qnirS3GqTcwk9D0P+eFx0TU9NnldRu2cG0ta5vqKm0I=; b=KIB9sdKlcFGtnpz9X3BINce+FRIsr152yvUch0sZIm4ba3HkwKrXUeqoBgMzOK4o+I eEZ7Nl9qsk/s6Unt+AT/Xp/8PctvDzabp9W9cKiBJjNvM6KTeJcKIRfNeXjQuZHZbolr la5qP0sMxPPcNgW77437Sk0Qqw3SKX8FSroEnMzU+uvzwtHVIcHajqrngWsZRyyG65If 77VKN5oyMnwdD9lggbAp6mpQG1dVVWuy+MOxDlO+qdrW+1bxmzYCK0RbRPXRwwWqOWo1 Zd9cKTuLLrQWmfvAiPwyvD/KGfLZNpRoQTEnbkZHFOBva+3VAYSzhkNQFZQ5ApGIIl4X BvoA== X-Gm-Message-State: AOAM532PN/22SoihSnBjNDuOWSLkvtUaOQUXy4QtUPw57oOP+RGjt+lr gt6GC4Mx/nDTjkcjeViKBV8= X-Google-Smtp-Source: ABdhPJzB9bOIJBDFKXVqHXyJtqaXhNCYWp+nf/naPuw+fMfVCWGHxGyQQWqga61v3pq6SyAGNWTgLw== X-Received: by 2002:a05:6402:1f4:: with SMTP id i20mr10894537edy.180.1611236730727; Thu, 21 Jan 2021 05:45:30 -0800 (PST) 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 a2sm2246578ejk.80.2021.01.21.05.45.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Jan 2021 05:45:29 -0800 (PST) Subject: Re: [PATCH] drm/ttm: device naming cleanup To: Daniel Vetter References: <20210121115818.2482-1-christian.koenig@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <39b534d7-ef1e-9ccc-9cfb-06bf86073413@gmail.com> Date: Thu, 21 Jan 2021 14:45:28 +0100 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" QW0gMjEuMDEuMjEgdW0gMTQ6Mzkgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFRodSwgSmFu IDIxLCAyMDIxIGF0IDEyOjU4IFBNIENocmlzdGlhbiBLw7ZuaWcKPiA8Y2tvZW5pZy5sZWljaHR6 dW1lcmtlbkBnbWFpbC5jb20+IHdyb3RlOgo+PiBSZW5hbWUgdHRtX2JvX2RldmljZSB0byB0dG1f ZGV2aWNlLgo+PiBSZW5hbWUgdHRtX2JvX2RyaXZlciB0byB0dG1fZGV2aWNlX2Z1bmNzLgo+PiBS ZW5hbWUgdHRtX2JvX2dsb2JhbCB0byB0dG1fZ2xvYmFsLgo+Pgo+PiBNb3ZlIGdsb2JhbCBhbmQg ZGV2aWNlIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIHR0bV9kZXZpY2UuW2NoXS4KPj4KPj4gTm8gZnVu Y3Rpb25hbCBjaGFuZ2UuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNo cmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiBJIGRpZG4ndCBjaGVjayBpdCBhbGwsIGJ1dCBtYWtl cyBhIGxvdCBvZiBzZW5zZSB0byBkbyB0aGlzLgoKWWVhaCwgbW9zdGx5IGF1dG9tYXRlZCBnZW5l cmF0ZWQuCgo+IEFja2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgoKR29pbmcgdG8gcHVzaCB0aGF0IG5vdyBiZWZvcmUgSSBnZXQgZXZlbiBtb3JlIGNvbmZsaWN0 cyA6KQoKVGhhbmtzLApDaHJpc3RpYW4uCgo+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgICAgICB8ICAgMiArLQo+PiAgIC4uLi9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9mZW5jZS5jICB8ICAgNiArLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMgICAgICB8ICAgMiArLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyAgICAgICB8ICAyNiArLQo+PiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCAgICAgICB8ICAgMiArLQo+PiAgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAgICAgICB8ICAgOCArLQo+PiAg IGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAgICAgICB8ICAxNCArLQo+ PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYyAgICAgICAgICB8ICAyMCAr LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaCAgICAgICAgICB8ICAg MiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmggICAgICAgICB8 ICAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc2dkbWEuYyAgICAg ICB8ICAgNiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmMgICAg ICAgICB8ICAxMCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmgg ICAgICAgICB8ICAgOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oICAgICAg ICAgICAgICAgICB8ICAgNCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2Uu YyAgICAgICAgICAgICB8ICAgNiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5j ICAgICAgICAgICAgICAgICB8ICAxOSArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uLmggICAgICAgICAgICAgICB8ICAgNiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX29iamVjdC5jICAgICAgICB8ICAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3R0bS5jICAgICAgICAgICB8ICAzOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90 dG0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2FncF9iYWNrZW5kLmMgICAgICAgICB8ICAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICB8IDI1NiArKystLS0tLS0tLS0tLQo+ PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyAgICAgICAgICAgICB8ICAyNCAr LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgICAgICAgICAgICAgICB8ICAy NCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jICAgICAgICAgICAgICB8 IDE5NSArKysrKysrKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRp bC5jICAgICAgICB8ICAgOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3JhbmdlX21h bmFnZXIuYyAgICAgICB8ICAgNCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Jlc291 cmNlLmMgICAgICAgICAgICB8ICAgNCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0 LmMgICAgICAgICAgICAgICAgICB8ICAyNiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2JsaXQuYyAgICAgICAgICB8ICAgNCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2JvLmMgICAgICAgICAgICB8ICAgNCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5jICAgICAgICAgICB8ICAxNiArLQo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5oICAgICAgICAgICB8ICAgNCArLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgICAgICB8ICAgMiArLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYyAgICB8ICAxNCArLQo+PiAgIGluY2x1 ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaCAgICAgICAgICAgICB8ICAgNiArLQo+PiAgIGlu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggICAgICAgICAgICAgICAgICB8ICAzNSArLQo+PiAg IGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAgICB8IDMyOCArLS0t LS0tLS0tLS0tLS0tLS0KPj4gICBpbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5oICAgICAgICAg ICAgICAgICAgfCAzMTkgKysrKysrKysrKysrKysrKysKPj4gICBpbmNsdWRlL2RybS90dG0vdHRt X3Jlc291cmNlLmggICAgICAgICAgICAgICAgfCAgIDQgKy0KPj4gICBpbmNsdWRlL2RybS90dG0v dHRtX3R0LmggICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KPj4gICA0MSBmaWxlcyBjaGFu Z2VkLCA3NTkgaW5zZXJ0aW9ucygrKSwgNzE1IGRlbGV0aW9ucygtKQo+PiAgIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYwo+PiAgIGNyZWF0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL2RybS90dG0vdHRtX2RldmljZS5oCj4+Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdS5oCj4+IGluZGV4IGY3NzQ0M2NkOWMxNy4uYWI0YWMzYjI2NTFlIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+PiBAQCAtMTA1Myw3ICsxMDUzLDcg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2RldmljZSAqYWRldl90b19kcm0oc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCj4+ICAgICAgICAgIHJldHVybiAmYWRldi0+ZGRldjsKPj4gICB9 Cj4+Cj4+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZGV2aWNlICphbWRncHVfdHRtX2Fk ZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCj4+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBh bWRncHVfZGV2aWNlICphbWRncHVfdHRtX2FkZXYoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYpCj4+ ICAgewo+PiAgICAgICAgICByZXR1cm4gY29udGFpbmVyX29mKGJkZXYsIHN0cnVjdCBhbWRncHVf ZGV2aWNlLCBtbWFuLmJkZXYpOwo+PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9hbWRrZmRfZmVuY2UuYwo+PiBpbmRleCAzMTA3Yjk1NzU5MjkuLjVhZjQ2 NDkzMzk3NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2FtZGtmZF9mZW5jZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9hbWRrZmRfZmVuY2UuYwo+PiBAQCAtNDAsMTMgKzQwLDEzIEBAIHN0YXRpYyBhdG9taWNfdCBm ZW5jZV9zZXEgPSBBVE9NSUNfSU5JVCgwKTsKPj4gICAgKiBBbGwgdGhlIEJPcyBpbiBhIHByb2Nl c3Mgc2hhcmUgYW4gZXZpY3Rpb24gZmVuY2UuIFdoZW4gcHJvY2VzcyBYIHdhbnRzCj4+ICAgICog dG8gbWFwIFZSQU0gbWVtb3J5IGJ1dCBUVE0gY2FuJ3QgZmluZCBlbm91Z2ggc3BhY2UsIFRUTSB3 aWxsIGF0dGVtcHQgdG8KPj4gICAgKiBldmljdCBCT3MgZnJvbSBpdHMgTFJVIGxpc3QuIFRUTSBj aGVja3MgaWYgdGhlIEJPIGlzIHZhbHVhYmxlIHRvIGV2aWN0Cj4+IC0gKiBieSBjYWxsaW5nIHR0 bV9ib19kcml2ZXItPmV2aWN0aW9uX3ZhbHVhYmxlKCkuCj4+ICsgKiBieSBjYWxsaW5nIHR0bV9k ZXZpY2VfZnVuY3MtPmV2aWN0aW9uX3ZhbHVhYmxlKCkuCj4+ICAgICoKPj4gLSAqIHR0bV9ib19k cml2ZXItPmV2aWN0aW9uX3ZhbHVhYmxlKCkgLSB3aWxsIHJldHVybiBmYWxzZSBpZiB0aGUgQk8g YmVsb25ncwo+PiArICogdHRtX2RldmljZV9mdW5jcy0+ZXZpY3Rpb25fdmFsdWFibGUoKSAtIHdp bGwgcmV0dXJuIGZhbHNlIGlmIHRoZSBCTyBiZWxvbmdzCj4+ICAgICogIHRvIHByb2Nlc3MgWC4g T3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0cnVlIHRvIGluZGljYXRlIEJPIGNhbiBiZQo+PiAg ICAqICBldmljdGVkIGJ5IFRUTS4KPj4gICAgKgo+PiAtICogSWYgdHRtX2JvX2RyaXZlci0+ZXZp Y3Rpb25fdmFsdWFibGUgcmV0dXJucyB0cnVlLCB0aGVuIFRUTSB3aWxsIGNvbnRpbnVlCj4+ICsg KiBJZiB0dG1fZGV2aWNlX2Z1bmNzLT5ldmljdGlvbl92YWx1YWJsZSByZXR1cm5zIHRydWUsIHRo ZW4gVFRNIHdpbGwgY29udGludWUKPj4gICAgKiB0aGUgZXZjaXRpb24gcHJvY2VzcyBmb3IgdGhh dCBCTyBieSBjYWxsaW5nIHR0bV9ib19ldmljdCAtLT4gYW1kZ3B1X2JvX21vdmUKPj4gICAgKiAt LT4gYW1kZ3B1X2NvcHlfYnVmZmVyKCkuIFRoaXMgc2V0cyB1cCBqb2IgaW4gR1BVIHNjaGVkdWxl ci4KPj4gICAgKgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2dhcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKPj4g aW5kZXggMGRiOTMzMDI2NzIyLi5mZGUyZDg5OWIyYzQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYwo+PiBAQCAtNzEsNyArNzEsNyBAQAo+PiAgICAqLwo+ PiAgIHN0YXRpYyBpbnQgYW1kZ3B1X2dhcnRfZHVtbXlfcGFnZV9pbml0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQo+PiAgIHsKPj4gLSAgICAgICBzdHJ1Y3QgcGFnZSAqZHVtbXlfcGFnZSA9 IHR0bV9ib19nbG9iLmR1bW15X3JlYWRfcGFnZTsKPj4gKyAgICAgICBzdHJ1Y3QgcGFnZSAqZHVt bXlfcGFnZSA9IHR0bV9nbG9iLmR1bW15X3JlYWRfcGFnZTsKPj4KPj4gICAgICAgICAgaWYgKGFk ZXYtPmR1bW15X3BhZ2VfYWRkcikKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+PiBpbmRleCA5ZmQyMTU3YjEzM2Eu LjI5Y2ZiMDgwOTYzNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3R0bS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uYwo+PiBAQCAtNjEsMTAgKzYxLDEwIEBACj4+Cj4+ICAgI2RlZmluZSBBTURHUFVfVFRNX1ZS QU1fTUFYX0RXX1JFQUQgICAgKHNpemVfdCkxMjgKPj4KPj4gLXN0YXRpYyBpbnQgYW1kZ3B1X3R0 bV9iYWNrZW5kX2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgaW50 IGFtZGdwdV90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKmJv X21lbSk7Cj4+IC1zdGF0aWMgdm9pZCBhbWRncHVfdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV9iYWNrZW5kX3Vu YmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4KPj4gICBzdGF0aWMgaW50IGFt ZGdwdV90dG1faW5pdF9vbl9jaGlwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+PiBAQCAt NjQ2LDcgKzY0Niw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX21vdmUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPj4gICAgKgo+PiAgICAqIENhbGxlZCBieSB0dG1f bWVtX2lvX3Jlc2VydmUoKSB1bHRpbWF0ZWx5IHZpYSB0dG1fYm9fdm1fZmF1bHQoKQo+PiAgICAq Lwo+PiAtc3RhdGljIGludCBhbWRncHVfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICtzdGF0aWMgaW50IGFt ZGdwdV90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fcmVzb3VyY2UgKm1lbSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJkZXYpOwo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX21t X25vZGUgKm1tX25vZGUgPSBtZW0tPm1tX25vZGU7Cj4+IEBAIC04OTMsNyArODkzLDcgQEAgdm9p ZCBhbWRncHVfdHRtX3R0X3NldF91c2VyX3BhZ2VzKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0 IHBhZ2UgKipwYWdlcykKPj4gICAgKgo+PiAgICAqIENhbGxlZCBieSBhbWRncHVfdHRtX2JhY2tl bmRfYmluZCgpCj4+ICAgICoqLwo+PiAtc3RhdGljIGludCBhbWRncHVfdHRtX3R0X3Bpbl91c2Vy cHRyKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIGludCBhbWRncHVfdHRt X3R0X3Bpbl91c2VycHRyKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ICAg ICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJkZXYp Owo+PiBAQCAtOTMxLDcgKzkzMSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9waW5fdXNl cnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAvKgo+PiAgICAqIGFtZGdwdV90 dG1fdHRfdW5waW5fdXNlcnB0ciAtIFVucGluIGFuZCB1bm1hcCB1c2VycHRyIHBhZ2VzCj4+ICAg ICovCj4+IC1zdGF0aWMgdm9pZCBhbWRncHVfdHRtX3R0X3VucGluX3VzZXJwdHIoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCBhbWRncHVfdHRtX3R0X3VucGluX3Vz ZXJwdHIoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAg c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYmRldik7Cj4+IEBA IC0xMDE1LDcgKzEwMTUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV90dG1fZ2FydF9iaW5kKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAo+PiAgICAqIENhbGxlZCBieSB0dG1fdHRfYmluZCgpIG9u IGJlaGFsZiBvZiB0dG1fYm9faGFuZGxlX21vdmVfbWVtKCkuCj4+ICAgICogVGhpcyBoYW5kbGVz IGJpbmRpbmcgR1RUIG1lbW9yeSB0byB0aGUgZGV2aWNlIGFkZHJlc3Mgc3BhY2UuCj4+ICAgICov Cj4+IC1zdGF0aWMgaW50IGFtZGdwdV90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiArc3RhdGljIGludCBhbWRncHVfdHRtX2JhY2tlbmRfYmluZChzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR0bV90dCAqdHRtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpib19tZW0pCj4+ICAgewo+PiBAQCAtMTE1NSw3ICsxMTU1 LDcgQEAgaW50IGFtZGdwdV90dG1fcmVjb3Zlcl9nYXJ0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqdGJvKQo+PiAgICAqIENhbGxlZCBieSB0dG1fdHRfdW5iaW5kKCkgb24gYmVoYWxmIG9mIHR0 bV9ib19tb3ZlX3R0bSgpIGFuZAo+PiAgICAqIHR0bV90dF9kZXN0cm95KCkuCj4+ICAgICovCj4+ IC1zdGF0aWMgdm9pZCBhbWRncHVfdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV9iYWNrZW5kX3VuYmluZChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYmRldik7Cj4+IEBAIC0xMTgwLDcgKzEx ODAsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICBndHQtPmJvdW5kID0gZmFsc2U7Cj4+ICAgfQo+ Pgo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV9iYWNrZW5kX2Rlc3Ryb3koc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCBhbWRncHVfdHRtX2JhY2tlbmRfZGVzdHJv eShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVj dCBhbWRncHVfdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKPj4gQEAgLTEyMzQsNyArMTIzNCw3 IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX3R0ICphbWRncHVfdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAqIE1hcCB0aGUgcGFnZXMgb2YgYSB0dG1fdHQgb2Jq ZWN0IHRvIGFuIGFkZHJlc3Mgc3BhY2UgdmlzaWJsZQo+PiAgICAqIHRvIHRoZSB1bmRlcmx5aW5n IGRldmljZS4KPj4gICAgKi8KPj4gLXN0YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZShz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9w b3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+ICAgewo+PiBA QCAtMTI3OCw3ICsxMjc4LDcgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX3R0X3BvcHVsYXRlKHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAqIFVubWFwcyBwYWdlcyBvZiBhIHR0bV90 dCBvYmplY3QgZnJvbSB0aGUgZGV2aWNlIGFkZHJlc3Mgc3BhY2UgYW5kCj4+ICAgICogdW5wb3B1 bGF0ZXMgdGhlIHBhZ2UgYXJyYXkgYmFja2luZyBpdC4KPj4gICAgKi8KPj4gLXN0YXRpYyB2b2lk IGFtZGdwdV90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4g K3N0YXRpYyB2b2lkIGFtZGdwdV90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X3R0ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3R0bV90dCAqZ3R0ID0g KHZvaWQgKil0dG07Cj4+IEBAIC0xNjAzLDcgKzE2MDMsNyBAQCBhbWRncHVfYm9fZGVsZXRlX21l bV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICAgICAgICAgYW1kZ3B1 X2JvX21vdmVfbm90aWZ5KGJvLCBmYWxzZSwgTlVMTCk7Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHN0 cnVjdCB0dG1fYm9fZHJpdmVyIGFtZGdwdV9ib19kcml2ZXIgPSB7Cj4+ICtzdGF0aWMgc3RydWN0 IHR0bV9kZXZpY2VfZnVuY3MgYW1kZ3B1X2JvX2RyaXZlciA9IHsKPj4gICAgICAgICAgLnR0bV90 dF9jcmVhdGUgPSAmYW1kZ3B1X3R0bV90dF9jcmVhdGUsCj4+ICAgICAgICAgIC50dG1fdHRfcG9w dWxhdGUgPSAmYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZSwKPj4gICAgICAgICAgLnR0bV90dF91bnBv cHVsYXRlID0gJmFtZGdwdV90dG1fdHRfdW5wb3B1bGF0ZSwKPj4gQEAgLTE3ODUsNyArMTc4NSw3 IEBAIGludCBhbWRncHVfdHRtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+ICAg ICAgICAgIG11dGV4X2luaXQoJmFkZXYtPm1tYW4uZ3R0X3dpbmRvd19sb2NrKTsKPj4KPj4gICAg ICAgICAgLyogTm8gb3RoZXJzIHVzZXIgb2YgYWRkcmVzcyBzcGFjZSBzbyBzZXQgaXQgdG8gMCAq Lwo+PiAtICAgICAgIHIgPSB0dG1fYm9fZGV2aWNlX2luaXQoJmFkZXYtPm1tYW4uYmRldiwgJmFt ZGdwdV9ib19kcml2ZXIsIGFkZXYtPmRldiwKPj4gKyAgICAgICByID0gdHRtX2RldmljZV9pbml0 KCZhZGV2LT5tbWFuLmJkZXYsICZhbWRncHVfYm9fZHJpdmVyLCBhZGV2LT5kZXYsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRldl90b19kcm0oYWRldiktPmFub25faW5vZGUt PmlfbWFwcGluZywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGV2X3RvX2Ry bShhZGV2KS0+dm1hX29mZnNldF9tYW5hZ2VyLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFkZXYtPm5lZWRfc3dpb3RsYiwKPj4gQEAgLTE5MjYsNyArMTkyNiw3IEBAIHZvaWQg YW1kZ3B1X3R0bV9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+PiAgICAgICAgICB0 dG1fcmFuZ2VfbWFuX2ZpbmkoJmFkZXYtPm1tYW4uYmRldiwgQU1ER1BVX1BMX0dEUyk7Cj4+ICAg ICAgICAgIHR0bV9yYW5nZV9tYW5fZmluaSgmYWRldi0+bW1hbi5iZGV2LCBBTURHUFVfUExfR1dT KTsKPj4gICAgICAgICAgdHRtX3JhbmdlX21hbl9maW5pKCZhZGV2LT5tbWFuLmJkZXYsIEFNREdQ VV9QTF9PQSk7Cj4+IC0gICAgICAgdHRtX2JvX2RldmljZV9yZWxlYXNlKCZhZGV2LT5tbWFuLmJk ZXYpOwo+PiArICAgICAgIHR0bV9kZXZpY2VfZmluaSgmYWRldi0+bW1hbi5iZGV2KTsKPj4gICAg ICAgICAgYWRldi0+bW1hbi5pbml0aWFsaXplZCA9IGZhbHNlOwo+PiAgICAgICAgICBEUk1fSU5G TygiYW1kZ3B1OiB0dG0gZmluYWxpemVkXG4iKTsKPj4gICB9Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmgKPj4gaW5kZXggZDI5ODc1MzZkN2NkLi43MTg5ZjgzNzAxMDgg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4gQEAgLTYw LDcgKzYwLDcgQEAgc3RydWN0IGFtZGdwdV9ndHRfbWdyIHsKPj4gICB9Owo+Pgo+PiAgIHN0cnVj dCBhbWRncHVfbW1hbiB7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgICAgICAgICAg ICBiZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICAgICAgICAgICAgICAgYmRldjsK Pj4gICAgICAgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplZDsK Pj4gICAgICAgICAgdm9pZCBfX2lvbWVtICAgICAgICAgICAgICAgICAgICAqYXBlcl9iYXNlX2th ZGRyOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+PiBpbmRleCBh ZDkxYzBjM2M0MjMuLjlkMTkwNzgyNDZjOCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3ZtLmMKPj4gQEAgLTYzOCwxNSArNjM4LDE1IEBAIHZvaWQgYW1kZ3B1X3ZtX21v dmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICAgICAgICAgIHN0 cnVjdCBhbWRncHVfdm1fYm9fYmFzZSAqYm9fYmFzZTsKPj4KPj4gICAgICAgICAgaWYgKHZtLT5i dWxrX21vdmVhYmxlKSB7Cj4+IC0gICAgICAgICAgICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9i LmxydV9sb2NrKTsKPj4gKyAgICAgICAgICAgICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xv Y2spOwo+PiAgICAgICAgICAgICAgICAgIHR0bV9ib19idWxrX21vdmVfbHJ1X3RhaWwoJnZtLT5s cnVfYnVsa19tb3ZlKTsKPj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xv Yi5scnVfbG9jayk7Cj4+ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1 X2xvY2spOwo+PiAgICAgICAgICAgICAgICAgIHJldHVybjsKPj4gICAgICAgICAgfQo+Pgo+PiAg ICAgICAgICBtZW1zZXQoJnZtLT5scnVfYnVsa19tb3ZlLCAwLCBzaXplb2Yodm0tPmxydV9idWxr X21vdmUpKTsKPj4KPj4gLSAgICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsK Pj4gKyAgICAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4gICAgICAgICAgbGlz dF9mb3JfZWFjaF9lbnRyeShib19iYXNlLCAmdm0tPmlkbGUsIHZtX3N0YXR1cykgewo+PiAgICAg ICAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFzZS0+Ym87Cj4+Cj4+IEBA IC02NjAsNyArNjYwLDcgQEAgdm9pZCBhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZiby0+c2hhZG93LT50Ym8ubWVtLAo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZtLT5scnVfYnVsa19tb3ZlKTsKPj4g ICAgICAgICAgfQo+PiAtICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7 Cj4+ICsgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4gICAgICAg ICAgdm0tPmJ1bGtfbW92ZWFibGUgPSB0cnVlOwo+PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dl bV92cmFtX2hlbHBlci5jCj4+IGluZGV4IDAyY2EyMmU5MDI5MC4uMGIxM2M4NTA3Njg4IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKPj4gQEAgLTE4Nyw3ICsxODcs NyBAQCBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZHJtX2dlbV92cmFtX2NyZWF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVj dCAqZ2JvOwo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbTsKPj4gICAgICAg ICAgc3RydWN0IGRybV92cmFtX21tICp2bW0gPSBkZXYtPnZyYW1fbW07Cj4+IC0gICAgICAgc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJk ZXY7Cj4+ICAgICAgICAgIGludCByZXQ7Cj4+ICAgICAgICAgIHNpemVfdCBhY2Nfc2l6ZTsKPj4K Pj4gQEAgLTU1MSw3ICs1NTEsNyBAQCBpbnQgZHJtX2dlbV92cmFtX2ZpbGxfY3JlYXRlX2R1bWIo c3RydWN0IGRybV9maWxlICpmaWxlLAo+PiAgIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2Zp bGxfY3JlYXRlX2R1bWIpOwo+Pgo+PiAgIC8qCj4+IC0gKiBIZWxwZXJzIGZvciBzdHJ1Y3QgdHRt X2JvX2RyaXZlcgo+PiArICogSGVscGVycyBmb3Igc3RydWN0IHR0bV9kZXZpY2VfZnVuY3MKPj4g ICAgKi8KPj4KPj4gICBzdGF0aWMgYm9vbCBkcm1faXNfZ2VtX3ZyYW0oc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibykKPj4gQEAgLTg5Myw3ICs4OTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9nZW1fb2JqZWN0X2Z1bmNzIGRybV9nZW1fdnJhbV9vYmplY3RfZnVuY3MgPSB7Cj4+ICAg ICogVFRNIFRUCj4+ICAgICovCj4+Cj4+IC1zdGF0aWMgdm9pZCBib19kcml2ZXJfdHRtX3R0X2Rl c3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0KQo+PiAr c3RhdGljIHZvaWQgYm9fZHJpdmVyX3R0bV90dF9kZXN0cm95KHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dCkKPj4gICB7Cj4+ICAgICAgICAgIHR0bV90dF9kZXN0cm95 X2NvbW1vbihiZGV2LCB0dCk7Cj4+ICAgICAgICAgIHR0bV90dF9maW5pKHR0KTsKPj4gQEAgLTk2 NSw3ICs5NjUsNyBAQCBzdGF0aWMgaW50IGJvX2RyaXZlcl9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4+ICAgICAgICAgIHJldHVybiBkcm1fZ2VtX3ZyYW1fYm9fZHJpdmVyX21v dmUoZ2JvLCBldmljdCwgY3R4LCBuZXdfbWVtKTsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgaW50IGJv X2RyaXZlcl9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3N0 YXRpYyBpbnQgYm9fZHJpdmVyX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNv dXJjZSAqbWVtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IGRybV92cmFtX21tICp2bW0gPSBk cm1fdnJhbV9tbV9vZl9iZGV2KGJkZXYpOwo+PiBAQCAtOTg1LDcgKzk4NSw3IEBAIHN0YXRpYyBp bnQgYm9fZHJpdmVyX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgc3RydWN0IHR0bV9ib19k cml2ZXIgYm9fZHJpdmVyID0gewo+PiArc3RhdGljIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIGJv X2RyaXZlciA9IHsKPj4gICAgICAgICAgLnR0bV90dF9jcmVhdGUgPSBib19kcml2ZXJfdHRtX3R0 X2NyZWF0ZSwKPj4gICAgICAgICAgLnR0bV90dF9kZXN0cm95ID0gYm9fZHJpdmVyX3R0bV90dF9k ZXN0cm95LAo+PiAgICAgICAgICAuZXZpY3Rpb25fdmFsdWFibGUgPSB0dG1fYm9fZXZpY3Rpb25f dmFsdWFibGUsCj4+IEBAIC0xMDM2LDcgKzEwMzYsNyBAQCBzdGF0aWMgaW50IGRybV92cmFtX21t X2luaXQoc3RydWN0IGRybV92cmFtX21tICp2bW0sIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ ICAgICAgICAgIHZtbS0+dnJhbV9iYXNlID0gdnJhbV9iYXNlOwo+PiAgICAgICAgICB2bW0tPnZy YW1fc2l6ZSA9IHZyYW1fc2l6ZTsKPj4KPj4gLSAgICAgICByZXQgPSB0dG1fYm9fZGV2aWNlX2lu aXQoJnZtbS0+YmRldiwgJmJvX2RyaXZlciwgZGV2LT5kZXYsCj4+ICsgICAgICAgcmV0ID0gdHRt X2RldmljZV9pbml0KCZ2bW0tPmJkZXYsICZib19kcml2ZXIsIGRldi0+ZGV2LAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5hbm9uX2lub2RlLT5pX21hcHBpbmcsCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPnZtYV9vZmZzZXRfbWFuYWdl ciwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cnVlKTsKPj4g QEAgLTEwNTQsNyArMTA1NCw3IEBAIHN0YXRpYyBpbnQgZHJtX3ZyYW1fbW1faW5pdChzdHJ1Y3Qg ZHJtX3ZyYW1fbW0gKnZtbSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICBzdGF0aWMgdm9p ZCBkcm1fdnJhbV9tbV9jbGVhbnVwKHN0cnVjdCBkcm1fdnJhbV9tbSAqdm1tKQo+PiAgIHsKPj4g ICAgICAgICAgdHRtX3JhbmdlX21hbl9maW5pKCZ2bW0tPmJkZXYsIFRUTV9QTF9WUkFNKTsKPj4g LSAgICAgICB0dG1fYm9fZGV2aWNlX3JlbGVhc2UoJnZtbS0+YmRldik7Cj4+ICsgICAgICAgdHRt X2RldmljZV9maW5pKCZ2bW0tPmJkZXYpOwo+PiAgIH0KPj4KPj4gICAvKgo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jIGIvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9iby5jCj4+IGluZGV4IDMzZGM4ODZkMWQ2ZC4uYzE3Nzk0MGQ2ZTJj IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4+IEBAIC00Myw5ICs0 Myw5IEBACj4+ICAgI2luY2x1ZGUgPG52aWYvaWY1MDBiLmg+Cj4+ICAgI2luY2x1ZGUgPG52aWYv aWY5MDBiLmg+Cj4+Cj4+IC1zdGF0aWMgaW50IG5vdXZlYXVfdHRtX3R0X2JpbmQoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gK3N0YXRpYyBpbnQgbm91 dmVhdV90dG1fdHRfYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAq dHRtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgKnJlZyk7Cj4+IC1zdGF0aWMgdm9pZCBub3V2ZWF1X3R0bV90dF91bmJpbmQoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICtzdGF0aWMgdm9pZCBu b3V2ZWF1X3R0bV90dF91bmJpbmQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f dHQgKnR0bSk7Cj4+Cj4+ICAgLyoKPj4gICAgKiBOVjEwLU5WNDAgdGlsaW5nIGhlbHBlcnMKPj4g QEAgLTY3NCw3ICs2NzQsNyBAQCBub3V2ZWF1X3R0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywgdWludDMyX3QgcGFnZV9mbGFncykKPj4gICB9Cj4+Cj4+ICAgc3RhdGlj IGludAo+PiAtbm91dmVhdV90dG1fdHRfYmluZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwg c3RydWN0IHR0bV90dCAqdHRtLAo+PiArbm91dmVhdV90dG1fdHRfYmluZChzdHJ1Y3QgdHRtX2Rl dmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtLAo+PiAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4+ICAgewo+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJ R19BR1ApCj4+IEBAIC02OTAsNyArNjkwLDcgQEAgbm91dmVhdV90dG1fdHRfYmluZChzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtLAo+PiAgIH0KPj4KPj4gICBz dGF0aWMgdm9pZAo+PiAtbm91dmVhdV90dG1fdHRfdW5iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICtub3V2ZWF1X3R0bV90dF91bmJpbmQoc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ICAgI2lm IElTX0VOQUJMRUQoQ09ORklHX0FHUCkKPj4gICAgICAgICAgc3RydWN0IG5vdXZlYXVfZHJtICpk cm0gPSBub3V2ZWF1X2JkZXYoYmRldik7Cj4+IEBAIC0xMDU1LDcgKzEwNTUsNyBAQCBub3V2ZWF1 X3R0bV9pb19tZW1fZnJlZV9sb2NrZWQoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0sCj4+ICAgfQo+ Pgo+PiAgIHN0YXRpYyBpbnQKPj4gLW5vdXZlYXVfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4+ICtub3V2ZWF1 X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9y ZXNvdXJjZSAqcmVnKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0g PSBub3V2ZWF1X2JkZXYoYmRldik7Cj4+ICAgICAgICAgIHN0cnVjdCBudmttX2RldmljZSAqZGV2 aWNlID0gbnZ4eF9kZXZpY2UoJmRybS0+Y2xpZW50LmRldmljZSk7Cj4+IEBAIC0xMTYzLDcgKzEx NjMsNyBAQCBub3V2ZWF1X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnKQo+PiAgIH0KPj4KPj4gICBzdGF0aWMgdm9p ZAo+PiAtbm91dmVhdV90dG1faW9fbWVtX2ZyZWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs IHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZykKPj4gK25vdXZlYXVfdHRtX2lvX21lbV9mcmVlKHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4+ICAgewo+ PiAgICAgICAgICBzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfYmRldihiZGV2KTsK Pj4KPj4gQEAgLTEyMjMsNyArMTIyMyw3IEBAIHZtX2ZhdWx0X3Qgbm91dmVhdV90dG1fZmF1bHRf cmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICB9Cj4+Cj4+ ICAgc3RhdGljIGludAo+PiAtbm91dmVhdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCj4+ICtub3V2ZWF1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwg c3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qg dHRtX3R0ICp0dG1fZG1hID0gKHZvaWQgKil0dG07Cj4+IEBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBu b3V2ZWF1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICB9 Cj4+Cj4+ICAgc3RhdGljIHZvaWQKPj4gLW5vdXZlYXVfdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtub3V2ZWF1X3R0bV90dF91bnBvcHVsYXRlKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybTsK Pj4gQEAgLTEyNjQsNyArMTI2NCw3IEBAIG5vdXZlYXVfdHRtX3R0X3VucG9wdWxhdGUoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkCj4+IC1ub3V2 ZWF1X3R0bV90dF9kZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArbm91dmVh dV90dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAjaWYgSVNfRU5BQkxF RChDT05GSUdfQUdQKQo+PiBAQCAtMTI5Niw3ICsxMjk2LDcgQEAgbm91dmVhdV9ib19kZWxldGVf bWVtX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAgICAgICAgICBub3V2 ZWF1X2JvX21vdmVfbnRmeShibywgZmFsc2UsIE5VTEwpOwo+PiAgIH0KPj4KPj4gLXN0cnVjdCB0 dG1fYm9fZHJpdmVyIG5vdXZlYXVfYm9fZHJpdmVyID0gewo+PiArc3RydWN0IHR0bV9kZXZpY2Vf ZnVuY3Mgbm91dmVhdV9ib19kcml2ZXIgPSB7Cj4+ICAgICAgICAgIC50dG1fdHRfY3JlYXRlID0g Jm5vdXZlYXVfdHRtX3R0X2NyZWF0ZSwKPj4gICAgICAgICAgLnR0bV90dF9wb3B1bGF0ZSA9ICZu b3V2ZWF1X3R0bV90dF9wb3B1bGF0ZSwKPj4gICAgICAgICAgLnR0bV90dF91bnBvcHVsYXRlID0g Jm5vdXZlYXVfdHRtX3R0X3VucG9wdWxhdGUsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2JvLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2JvLmgKPj4gaW5kZXggNjA0NWI4NWE3NjJhLi5jMmQzZjljNDhlYmEgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaAo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmgKPj4gQEAgLTY4LDcgKzY4LDcgQEAgbm91dmVhdV9i b19yZWYoc3RydWN0IG5vdXZlYXVfYm8gKnJlZiwgc3RydWN0IG5vdXZlYXVfYm8gKipwbnZibykK Pj4gICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+Pgo+PiAtZXh0ZXJuIHN0cnVjdCB0dG1fYm9f ZHJpdmVyIG5vdXZlYXVfYm9fZHJpdmVyOwo+PiArZXh0ZXJuIHN0cnVjdCB0dG1fZGV2aWNlX2Z1 bmNzIG5vdXZlYXVfYm9fZHJpdmVyOwo+Pgo+PiAgIHZvaWQgbm91dmVhdV9ib19tb3ZlX2luaXQo c3RydWN0IG5vdXZlYXVfZHJtICopOwo+PiAgIHN0cnVjdCBub3V2ZWF1X2JvICpub3V2ZWF1X2Jv X2FsbG9jKHN0cnVjdCBub3V2ZWF1X2NsaSAqLCB1NjQgKnNpemUsIGludCAqYWxpZ24sCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaAo+PiBpbmRleCBjODAyZDNkMWJhMzkuLmVk ZjlkMWVlOWQ1OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4+ IEBAIC0xNTEsNyArMTUxLDcgQEAgc3RydWN0IG5vdXZlYXVfZHJtIHsKPj4KPj4gICAgICAgICAg LyogVFRNIGludGVyZmFjZSBzdXBwb3J0ICovCj4+ICAgICAgICAgIHN0cnVjdCB7Cj4+IC0gICAg ICAgICAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSBiZGV2Owo+PiArICAgICAgICAgICAgICAg c3RydWN0IHR0bV9kZXZpY2UgYmRldjsKPj4gICAgICAgICAgICAgICAgICBhdG9taWNfdCB2YWxp ZGF0ZV9zZXF1ZW5jZTsKPj4gICAgICAgICAgICAgICAgICBpbnQgKCptb3ZlKShzdHJ1Y3Qgbm91 dmVhdV9jaGFubmVsICosCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICosCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X3NnZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NnZG1h LmMKPj4gaW5kZXggMWNmNTI2MzVlYTc0Li4yNTZlYzViMzU0NzMgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc2dkbWEuYwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NnZG1hLmMKPj4gQEAgLTE2LDcgKzE2LDcgQEAgc3RydWN0 IG5vdXZlYXVfc2dkbWFfYmUgewo+PiAgIH07Cj4+Cj4+ICAgdm9pZAo+PiAtbm91dmVhdV9zZ2Rt YV9kZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0p Cj4+ICtub3V2ZWF1X3NnZG1hX2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVj dCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X3NnZG1hX2Jl ICpudmJlID0gKHN0cnVjdCBub3V2ZWF1X3NnZG1hX2JlICopdHRtOwo+Pgo+PiBAQCAtMjksNyAr MjksNyBAQCBub3V2ZWF1X3NnZG1hX2Rlc3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs IHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB9Cj4+Cj4+ICAgaW50Cj4+IC1ub3V2ZWF1X3NnZG1h X2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwgc3Ry dWN0IHR0bV9yZXNvdXJjZSAqcmVnKQo+PiArbm91dmVhdV9zZ2RtYV9iaW5kKHN0cnVjdCB0dG1f ZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJl ZykKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X3NnZG1hX2JlICpudmJlID0gKHN0 cnVjdCBub3V2ZWF1X3NnZG1hX2JlICopdHRtOwo+PiAgICAgICAgICBzdHJ1Y3Qgbm91dmVhdV9k cm0gKmRybSA9IG5vdXZlYXVfYmRldihiZGV2KTsKPj4gQEAgLTU2LDcgKzU2LDcgQEAgbm91dmVh dV9zZ2RtYV9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0 dG0sIHN0cnVjdCB0dG1fcmUKPj4gICB9Cj4+Cj4+ICAgdm9pZAo+PiAtbm91dmVhdV9zZ2RtYV91 bmJpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4g K25vdXZlYXVfc2dkbWFfdW5iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qgbm91dmVhdV9zZ2RtYV9iZSAqbnZi ZSA9IChzdHJ1Y3Qgbm91dmVhdV9zZ2RtYV9iZSAqKXR0bTsKPj4gICAgICAgICAgaWYgKG52YmUt Pm1lbSkgewo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90 dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmMKPj4gaW5kZXggYTM3 YmMzZDdiMzhiLi40OTUyODgxODJjMmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfdHRtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91 dmVhdV90dG0uYwo+PiBAQCAtMzI0LDEwICszMjQsMTAgQEAgbm91dmVhdV90dG1faW5pdChzdHJ1 Y3Qgbm91dmVhdV9kcm0gKmRybSkKPj4gICAgICAgICAgbmVlZF9zd2lvdGxiID0gISFzd2lvdGxi X25yX3RibCgpOwo+PiAgICNlbmRpZgo+Pgo+PiAtICAgICAgIHJldCA9IHR0bV9ib19kZXZpY2Vf aW5pdCgmZHJtLT50dG0uYmRldiwgJm5vdXZlYXVfYm9fZHJpdmVyLAo+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkcm0tPmRldi0+ZGV2LCBkZXYtPmFub25faW5vZGUtPmlfbWFw cGluZywKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT52bWFfb2Zmc2V0 X21hbmFnZXIsIG5lZWRfc3dpb3RsYiwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZHJtLT5jbGllbnQubW11LmRtYWJpdHMgPD0gMzIpOwo+PiArICAgICAgIHJldCA9IHR0bV9k ZXZpY2VfaW5pdCgmZHJtLT50dG0uYmRldiwgJm5vdXZlYXVfYm9fZHJpdmVyLCBkcm0tPmRldi0+ ZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5hbm9uX2lub2Rl LT5pX21hcHBpbmcsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPnZt YV9vZmZzZXRfbWFuYWdlciwgbmVlZF9zd2lvdGxiLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZHJtLT5jbGllbnQubW11LmRtYWJpdHMgPD0gMzIpOwo+PiAgICAgICAgICBp ZiAocmV0KSB7Cj4+ICAgICAgICAgICAgICAgICAgTlZfRVJST1IoZHJtLCAiZXJyb3IgaW5pdGlh bGlzaW5nIGJvIGRyaXZlciwgJWRcbiIsIHJldCk7Cj4+ICAgICAgICAgICAgICAgICAgcmV0dXJu IHJldDsKPj4gQEAgLTM3Nyw3ICszNzcsNyBAQCBub3V2ZWF1X3R0bV9maW5pKHN0cnVjdCBub3V2 ZWF1X2RybSAqZHJtKQo+PiAgICAgICAgICBub3V2ZWF1X3R0bV9maW5pX3ZyYW0oZHJtKTsKPj4g ICAgICAgICAgbm91dmVhdV90dG1fZmluaV9ndHQoZHJtKTsKPj4KPj4gLSAgICAgICB0dG1fYm9f ZGV2aWNlX3JlbGVhc2UoJmRybS0+dHRtLmJkZXYpOwo+PiArICAgICAgIHR0bV9kZXZpY2VfZmlu aSgmZHJtLT50dG0uYmRldik7Cj4+Cj4+ICAgICAgICAgIGFyY2hfcGh5c193Y19kZWwoZHJtLT50 dG0ubXRycik7Cj4+ICAgICAgICAgIGRybS0+dHRtLm10cnIgPSAwOwo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfdHRtLmgKPj4gaW5kZXggNjk1NTIwNDliYjk2Li5kYmY2ZGMyMzhlZmQg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmgKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0uaAo+PiBAQCAtMyw3ICsz LDcgQEAKPj4gICAjZGVmaW5lIF9fTk9VVkVBVV9UVE1fSF9fCj4+Cj4+ICAgc3RhdGljIGlubGlu ZSBzdHJ1Y3Qgbm91dmVhdV9kcm0gKgo+PiAtbm91dmVhdV9iZGV2KHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZCkKPj4gK25vdXZlYXVfYmRldihzdHJ1Y3QgdHRtX2RldmljZSAqYmQpCj4+ICAgewo+ PiAgICAgICAgICByZXR1cm4gY29udGFpbmVyX29mKGJkLCBzdHJ1Y3Qgbm91dmVhdV9kcm0sIHR0 bS5iZGV2KTsKPj4gICB9Cj4+IEBAIC0yMiw3ICsyMiw3IEBAIGludCAgbm91dmVhdV90dG1fbW1h cChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKik7Cj4+ICAgaW50ICBub3V2 ZWF1X3R0bV9nbG9iYWxfaW5pdChzdHJ1Y3Qgbm91dmVhdV9kcm0gKik7Cj4+ICAgdm9pZCBub3V2 ZWF1X3R0bV9nbG9iYWxfcmVsZWFzZShzdHJ1Y3Qgbm91dmVhdV9kcm0gKik7Cj4+Cj4+IC1pbnQg bm91dmVhdV9zZ2RtYV9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZyk7Cj4+IC12b2lkIG5vdXZlYXVfc2dk bWFfdW5iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0p Owo+PiAtdm9pZCBub3V2ZWF1X3NnZG1hX2Rlc3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICtpbnQgbm91dmVhdV9zZ2RtYV9iaW5kKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgKnJlZyk7Cj4+ICt2b2lkIG5vdXZlYXVfc2dkbWFfdW5iaW5kKHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiArdm9pZCBub3V2ZWF1X3NnZG1hX2Rlc3Ry b3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICAgI2Vu ZGlmCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCj4+IGluZGV4IDgzYjU0ZjBkYWQ2MS4uMDEzNTRiNDNj NDEzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAo+PiBAQCAtMTI1LDcgKzEyNSw3IEBAIHN0 cnVjdCBxeGxfb3V0cHV0IHsKPj4gICAjZGVmaW5lIGRybV9lbmNvZGVyX3RvX3F4bF9vdXRwdXQo eCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBxeGxfb3V0cHV0LCBlbmMpCj4+Cj4+ICAgc3RydWN0 IHF4bF9tbWFuIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAgICAgICAgICAgIGJk ZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgICAgICAgICAgICAgICBiZGV2Owo+PiAg IH07Cj4+Cj4+ICAgc3RydWN0IHF4bF9tZW1zbG90IHsKPj4gQEAgLTMzNSw3ICszMzUsNyBAQCBp bnQgcXhsX21vZGVfZHVtYl9tbWFwKHN0cnVjdCBkcm1fZmlsZSAqZmlscCwKPj4gICAvKiBxeGwg dHRtICovCj4+ICAgaW50IHF4bF90dG1faW5pdChzdHJ1Y3QgcXhsX2RldmljZSAqcWRldik7Cj4+ ICAgdm9pZCBxeGxfdHRtX2Zpbmkoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYpOwo+PiAtaW50IHF4 bF90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtpbnQg cXhsX3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4+Cj4+ICAg LyogcXhsIGltYWdlICovCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9y ZWxlYXNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKPj4gaW5kZXggMGZj ZmM5NTJkNWU5Li5jNTI0MTI3MjRjMjYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX3JlbGVhc2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNl LmMKPj4gQEAgLTQyOSw3ICs0MjksNyBAQCB2b2lkIHF4bF9yZWxlYXNlX3VubWFwKHN0cnVjdCBx eGxfZGV2aWNlICpxZGV2LAo+PiAgIHZvaWQgcXhsX3JlbGVhc2VfZmVuY2VfYnVmZmVyX29iamVj dHMoc3RydWN0IHF4bF9yZWxlYXNlICpyZWxlYXNlKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldjsKPj4gICAgICAgICAgc3Ry dWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgKmVudHJ5Owo+PiAgICAgICAgICBzdHJ1Y3QgcXhsX2Rl dmljZSAqcWRldjsKPj4KPj4gQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIHF4bF9yZWxlYXNlX2Zl bmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBxeGxfcmVsZWFzZSAqcmVsZWFzZSkKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgcmVsZWFzZS0+aWQgfCAweGYwMDAwMDAwLCByZWxlYXNlLT5iYXNl LnNlcW5vKTsKPj4gICAgICAgICAgdHJhY2VfZG1hX2ZlbmNlX2VtaXQoJnJlbGVhc2UtPmJhc2Up Owo+Pgo+PiAtICAgICAgIHNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAg ICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pgo+PiAgICAgICAgICBsaXN0X2Zv cl9lYWNoX2VudHJ5KGVudHJ5LCAmcmVsZWFzZS0+Ym9zLCBoZWFkKSB7Cj4+ICAgICAgICAgICAg ICAgICAgYm8gPSBlbnRyeS0+Ym87Cj4+IEBAIC00NTksNyArNDU5LDcgQEAgdm9pZCBxeGxfcmVs ZWFzZV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3QgcXhsX3JlbGVhc2UgKnJlbGVhc2UpCj4+ ICAgICAgICAgICAgICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sICZiby0+bWVtLCBO VUxMKTsKPj4gICAgICAgICAgICAgICAgICBkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7 Cj4+ICAgICAgICAgIH0KPj4gLSAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xv Y2spOwo+PiArICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ICAgICAg ICAgIHd3X2FjcXVpcmVfZmluaSgmcmVsZWFzZS0+dGlja2V0KTsKPj4gICB9Cj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX3R0bS5jCj4+IGluZGV4IDMzYzA5ZGM5NGY4Yi4uYjdmNzdlYjY4NWNiIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcXhsL3F4bF90dG0uYwo+PiBAQCAtMzYsNyArMzYsNyBAQAo+PiAgICNpbmNsdWRlICJx eGxfZHJ2LmgiCj4+ICAgI2luY2x1ZGUgInF4bF9vYmplY3QuaCIKPj4KPj4gLXN0YXRpYyBzdHJ1 Y3QgcXhsX2RldmljZSAqcXhsX2dldF9xZGV2KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQo+ PiArc3RhdGljIHN0cnVjdCBxeGxfZGV2aWNlICpxeGxfZ2V0X3FkZXYoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYpCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgcXhsX21tYW4gKm1tYW47Cj4+ICAg ICAgICAgIHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2Owo+PiBAQCAtNjksNyArNjksNyBAQCBzdGF0 aWMgdm9pZCBxeGxfZXZpY3RfZmxhZ3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4g ICAgICAgICAgKnBsYWNlbWVudCA9IHFiby0+cGxhY2VtZW50Owo+PiAgIH0KPj4KPj4gLWludCBx eGxfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAraW50 IHF4bF90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICAgewo+ PiAgICAgICAgICBzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiA9IHF4bF9nZXRfcWRldihiZGV2KTsK Pj4gQEAgLTk4LDggKzk4LDcgQEAgaW50IHF4bF90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgLyoKPj4gICAgKiBUVE0gYmFja2VuZCBmdW5jdGlvbnMu Cj4+ICAgICovCj4+IC1zdGF0aWMgdm9pZCBxeGxfdHRtX2JhY2tlbmRfZGVzdHJveShzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiArc3RhdGljIHZvaWQgcXhsX3R0bV9iYWNrZW5kX2Rl c3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7 Cj4+ICAgICAgICAgIHR0bV90dF9kZXN0cm95X2NvbW1vbihiZGV2LCB0dG0pOwo+PiAgICAgICAg ICB0dG1fdHRfZmluaSh0dG0pOwo+PiBAQCAtMTcwLDcgKzE2OSw3IEBAIHN0YXRpYyB2b2lkIHF4 bF9ib19kZWxldGVfbWVtX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAg ICAgICAgICBxeGxfYm9fbW92ZV9ub3RpZnkoYm8sIGZhbHNlLCBOVUxMKTsKPj4gICB9Cj4+Cj4+ IC1zdGF0aWMgc3RydWN0IHR0bV9ib19kcml2ZXIgcXhsX2JvX2RyaXZlciA9IHsKPj4gK3N0YXRp YyBzdHJ1Y3QgdHRtX2RldmljZV9mdW5jcyBxeGxfYm9fZHJpdmVyID0gewo+PiAgICAgICAgICAu dHRtX3R0X2NyZWF0ZSA9ICZxeGxfdHRtX3R0X2NyZWF0ZSwKPj4gICAgICAgICAgLnR0bV90dF9k ZXN0cm95ID0gJnF4bF90dG1fYmFja2VuZF9kZXN0cm95LAo+PiAgICAgICAgICAuZXZpY3Rpb25f dmFsdWFibGUgPSB0dG1fYm9fZXZpY3Rpb25fdmFsdWFibGUsCj4+IEBAIC0xOTMsMTAgKzE5Miwx MCBAQCBpbnQgcXhsX3R0bV9pbml0KHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2KQo+PiAgICAgICAg ICBpbnQgbnVtX2lvX3BhZ2VzOyAvKiAhPSByb20tPm51bV9pb19wYWdlcywgd2UgaW5jbHVkZSBz dXJmYWNlMCAqLwo+Pgo+PiAgICAgICAgICAvKiBObyBvdGhlcnMgdXNlciBvZiBhZGRyZXNzIHNw YWNlIHNvIHNldCBpdCB0byAwICovCj4+IC0gICAgICAgciA9IHR0bV9ib19kZXZpY2VfaW5pdCgm cWRldi0+bW1hbi5iZGV2LCAmcXhsX2JvX2RyaXZlciwgTlVMTCwKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHFkZXYtPmRkZXYuYW5vbl9pbm9kZS0+aV9tYXBwaW5nLAo+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRldi0+ZGRldi52bWFfb2Zmc2V0X21hbmFnZXIs Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgZmFsc2UpOwo+PiArICAg ICAgIHIgPSB0dG1fZGV2aWNlX2luaXQoJnFkZXYtPm1tYW4uYmRldiwgJnF4bF9ib19kcml2ZXIs IE5VTEwsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBxZGV2LT5kZGV2LmFub25faW5v ZGUtPmlfbWFwcGluZywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHFkZXYtPmRkZXYu dm1hX29mZnNldF9tYW5hZ2VyLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2Us IGZhbHNlKTsKPj4gICAgICAgICAgaWYgKHIpIHsKPj4gICAgICAgICAgICAgICAgICBEUk1fRVJS T1IoImZhaWxlZCBpbml0aWFsaXppbmcgYnVmZmVyIG9iamVjdCBkcml2ZXIoJWQpLlxuIiwgcik7 Cj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+IEBAIC0yMjcsNyArMjI2LDcgQEAgdm9p ZCBxeGxfdHRtX2Zpbmkoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYpCj4+ICAgewo+PiAgICAgICAg ICB0dG1fcmFuZ2VfbWFuX2ZpbmkoJnFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+PiAg ICAgICAgICB0dG1fcmFuZ2VfbWFuX2ZpbmkoJnFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1BSSVYp Owo+PiAtICAgICAgIHR0bV9ib19kZXZpY2VfcmVsZWFzZSgmcWRldi0+bW1hbi5iZGV2KTsKPj4g KyAgICAgICB0dG1fZGV2aWNlX2ZpbmkoJnFkZXYtPm1tYW4uYmRldik7Cj4+ICAgICAgICAgIERS TV9JTkZPKCJxeGw6IHR0bSBmaW5hbGl6ZWRcbiIpOwo+PiAgIH0KPj4KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbi5oCj4+IGluZGV4IGYwOTk4OWJkY2U5OC4uNDQ5YmEwMDk1ZWQ5IDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uLmgKPj4gQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdHJ1Y3QgcmFkZW9u X3N1cmZhY2VfcmVnIHsKPj4gICAgKiBUVE0uCj4+ICAgICovCj4+ICAgc3RydWN0IHJhZGVvbl9t bWFuIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAgICAgICAgICAgIGJkZXY7Cj4+ ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgICAgICAgICAgICAgICBiZGV2Owo+PiAgICAgICAg ICBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkOwo+Pgo+PiAgICNp ZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKPj4gQEAgLTI4MjIsNyArMjgyMiw3IEBAIGV4dGVy biBpbnQgcmFkZW9uX3R0bV90dF9zZXRfdXNlcnB0cihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmbGFn cyk7Cj4+ICAgZXh0ZXJuIGJvb2wgcmFkZW9uX3R0bV90dF9oYXNfdXNlcnB0cihzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4gICBleHRlcm4gYm9vbCBy YWRlb25fdHRtX3R0X2lzX3JlYWRvbmx5KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1 Y3QgdHRtX3R0ICp0dG0pOwo+PiAtYm9vbCByYWRlb25fdHRtX3R0X2lzX2JvdW5kKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiArYm9vbCByYWRlb25f dHRtX3R0X2lzX2JvdW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0 dG0pOwo+PiAgIGV4dGVybiB2b2lkIHJhZGVvbl92cmFtX2xvY2F0aW9uKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX21jICptYywgdTY0IGJhc2UpOwo+PiAgIGV4dGVy biB2b2lkIHJhZGVvbl9ndHRfbG9jYXRpb24oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0 cnVjdCByYWRlb25fbWMgKm1jKTsKPj4gICBleHRlcm4gaW50IHJhZGVvbl9yZXN1bWVfa21zKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcmVzdW1lLCBib29sIGZiY29uKTsKPj4gQEAgLTI4 MzIsNyArMjgzMiw3IEBAIGV4dGVybiB2b2lkIHJhZGVvbl90dG1fc2V0X2FjdGl2ZV92cmFtX3Np emUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHU2NCBzaXplCj4+ICAgZXh0ZXJuIHZvaWQg cmFkZW9uX3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2Uoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB1MzIgKnJlZ2lzdGVycywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHUzMiBhcnJheV9zaXplKTsKPj4gLXN0cnVjdCByYWRlb25fZGV2aWNl ICpyYWRlb25fZ2V0X3JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpOwo+PiArc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJhZGVvbl9nZXRfcmRldihzdHJ1Y3QgdHRtX2RldmljZSAqYmRldik7 Cj4+Cj4+ICAgLyogS01TICovCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVj dC5jCj4+IGluZGV4IDliODE3ODY3ODJkZS4uNmEzMzYyODQ0NjZmIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+PiBAQCAtMzcyLDcgKzM3Miw3IEBAIHZvaWQg cmFkZW9uX2JvX3VucGluKHN0cnVjdCByYWRlb25fYm8gKmJvKQo+Pgo+PiAgIGludCByYWRlb25f Ym9fZXZpY3RfdnJhbShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPj4gICB7Cj4+IC0gICAg ICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSAmcmRldi0+bW1hbi5iZGV2Owo+PiArICAg ICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gJnJkZXYtPm1tYW4uYmRldjsKPj4gICAgICAg ICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4+Cj4+ICAgICAgICAgIC8qIGxh dGUgMi42LjMzIGZpeCBJR1AgaGliZXJuYXRlIC0gd2UgbmVlZCBwbSBvcHMgdG8gZG8gdGhpcyBj b3JyZWN0ICovCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90 dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCj4+IGluZGV4IGM2ZDU3 NWY1MGM0OC4uNWVkNmE0ODI0NmQ2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl90dG0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90 dG0uYwo+PiBAQCAtNTUsMTMgKzU1LDExIEBACj4+ICAgc3RhdGljIGludCByYWRlb25fdHRtX2Rl YnVnZnNfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4+ICAgc3RhdGljIHZvaWQg cmFkZW9uX3R0bV9kZWJ1Z2ZzX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+Pgo+ PiAtc3RhdGljIGludCByYWRlb25fdHRtX3R0X2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwK Pj4gK3N0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlICpib19tZW0pOwo+PiAtc3RhdGljIHZvaWQgcmFkZW9uX3R0bV90 dF91bmJpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICtzdGF0aWMgdm9pZCByYWRl b25fdHRtX3R0X3VuYmluZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAq dHRtKTsKPj4KPj4gLXN0cnVjdCByYWRlb25fZGV2aWNlICpyYWRlb25fZ2V0X3JkZXYoc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYpCj4+ICtzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmFkZW9uX2dl dF9yZGV2KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0 IHJhZGVvbl9tbWFuICptbWFuOwo+PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl djsKPj4gQEAgLTI4MCw3ICsyNzgsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9ib19tb3ZlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCj4+ICAgICAgICAgIHJldHVybiAw Owo+PiAgIH0KPj4KPj4gLXN0YXRpYyBpbnQgcmFkZW9uX3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+PiArc3Rh dGljIGludCByYWRlb25fdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldihiZGV2KTsKPj4gICAgICAgICAgc2l6 ZV90IGJ1c19zaXplID0gKHNpemVfdCltZW0tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwo+PiBA QCAtMzQ3LDcgKzM0NSw3IEBAIHN0cnVjdCByYWRlb25fdHRtX3R0IHsKPj4gICB9Owo+Pgo+PiAg IC8qIHByZXBhcmUgdGhlIHNnIHRhYmxlIHdpdGggdGhlIHVzZXIgcGFnZXMgKi8KPj4gLXN0YXRp YyBpbnQgcmFkZW9uX3R0bV90dF9waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiArc3RhdGljIGludCByYWRlb25fdHRtX3R0X3Bpbl91 c2VycHRyKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAg ewo+PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRl dihiZGV2KTsKPj4gICAgICAgICAgc3RydWN0IHJhZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICop dHRtOwo+PiBAQCAtNDA4LDcgKzQwNiw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9waW5f dXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqCj4+ICAg ICAgICAgIHJldHVybiByOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRf dW5waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAq dHRtKQo+PiArc3RhdGljIHZvaWQgcmFkZW9uX3R0bV90dF91bnBpbl91c2VycHRyKHN0cnVjdCB0 dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldihiZGV2KTsKPj4gICAg ICAgICAgc3RydWN0IHJhZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwo+PiBAQCAtNDQ0 LDcgKzQ0Miw3IEBAIHN0YXRpYyBib29sIHJhZGVvbl90dG1fYmFja2VuZF9pc19ib3VuZChzdHJ1 Y3QgdHRtX3R0ICp0dG0pCj4+ICAgICAgICAgIHJldHVybiAoZ3R0LT5ib3VuZCk7Cj4+ICAgfQo+ Pgo+PiAtc3RhdGljIGludCByYWRlb25fdHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwKPj4gK3N0YXRpYyBpbnQgcmFkZW9uX3R0bV9iYWNrZW5kX2JpbmQoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+PiAgIHsKPj4gQEAgLTQ4MCw3ICs0Nzgs NyBAQCBzdGF0aWMgaW50IHJhZGVvbl90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9p ZCByYWRlb25fdHRtX2JhY2tlbmRfdW5iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBz dHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICtzdGF0aWMgdm9pZCByYWRlb25fdHRtX2JhY2tlbmRfdW5i aW5kKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+ PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX3R0bV90dCAqZ3R0ID0gKHZvaWQgKil0dG07Cj4+ICAg ICAgICAgIHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gcmFkZW9uX2dldF9yZGV2KGJkZXYp Owo+PiBAQCAtNDk1LDcgKzQ5Myw3IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl90dG1fYmFja2VuZF91 bmJpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQKPj4gICAgICAg ICAgZ3R0LT5ib3VuZCA9IGZhbHNlOwo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHJhZGVvbl90 dG1fYmFja2VuZF9kZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0pCj4+ICtzdGF0aWMgdm9pZCByYWRlb25fdHRtX2JhY2tlbmRfZGVzdHJveShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAg ICAgc3RydWN0IHJhZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwo+Pgo+PiBAQCAtNTU0 LDcgKzU1Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX3R0bV90dCAqcmFkZW9uX3R0bV90dF90 b19ndHQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4+ICAgICAgICAgIHJldHVybiBjb250 YWluZXJfb2YodHRtLCBzdHJ1Y3QgcmFkZW9uX3R0bV90dCwgdHRtKTsKPj4gICB9Cj4+Cj4+IC1z dGF0aWMgaW50IHJhZGVvbl90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCj4+ICtzdGF0aWMgaW50IHJhZGVvbl90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0 bV90dCAqdHRtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+PiAgIHsKPj4gQEAgLTU4MCw3ICs1NzgsNyBAQCBzdGF0 aWMgaW50IHJhZGVvbl90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+ICAgICAgICAgIHJldHVybiB0dG1fcG9vbF9hbGxvYygmcmRldi0+bW1hbi5iZGV2LnBvb2ws IHR0bSwgY3R4KTsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCByYWRlb25fdHRtX3R0X3VucG9w dWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4g K3N0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYgPSByYWRlb25fZ2V0X3JkZXYoYmRldik7Cj4+ICAgICAgICAgIHN0cnVj dCByYWRlb25fdHRtX3R0ICpndHQgPSByYWRlb25fdHRtX3R0X3RvX2d0dChyZGV2LCB0dG0pOwo+ PiBAQCAtNjEzLDcgKzYxMSw3IEBAIGludCByYWRlb25fdHRtX3R0X3NldF91c2VycHRyKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+Cj4+ IC1ib29sIHJhZGVvbl90dG1fdHRfaXNfYm91bmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+ICtib29sIHJhZGVvbl90dG1fdHRfaXNfYm91bmQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYs Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAg IHsKPj4gICAjaWYgSVNfRU5BQkxFRChDT05GSUdfQUdQKQo+PiBAQCAtNjI0LDcgKzYyMiw3IEBA IGJvb2wgcmFkZW9uX3R0bV90dF9pc19ib3VuZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwK Pj4gICAgICAgICAgcmV0dXJuIHJhZGVvbl90dG1fYmFja2VuZF9pc19ib3VuZCh0dG0pOwo+PiAg IH0KPj4KPj4gLXN0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiArc3RhdGljIGludCByYWRlb25fdHRtX3R0X2JpbmQoc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X3R0ICp0dG0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jl c291cmNlICpib19tZW0pCj4+ICAgewo+PiBAQCAtNjQyLDcgKzY0MCw3IEBAIHN0YXRpYyBpbnQg cmFkZW9uX3R0bV90dF9iaW5kKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAg ICByZXR1cm4gcmFkZW9uX3R0bV9iYWNrZW5kX2JpbmQoYmRldiwgdHRtLCBib19tZW0pOwo+PiAg IH0KPj4KPj4gLXN0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5iaW5kKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIHZvaWQgcmFkZW9uX3R0bV90dF91bmJpbmQoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19BR1Ap Cj4+IEBAIC02NTYsNyArNjU0LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX3R0bV90dF91bmJpbmQo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgIHJhZGVvbl90dG1fYmFja2Vu ZF91bmJpbmQoYmRldiwgdHRtKTsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCByYWRlb25fdHRt X3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCBy YWRlb25fdHRtX3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4g ICAjaWYgSVNfRU5BQkxFRChDT05GSUdfQUdQKQo+PiBAQCAtNzAwLDcgKzY5OCw3IEBAIHJhZGVv bl9ib19kZWxldGVfbWVtX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAg ICAgICAgICByYWRlb25fYm9fbW92ZV9ub3RpZnkoYm8sIGZhbHNlLCBOVUxMKTsKPj4gICB9Cj4+ Cj4+IC1zdGF0aWMgc3RydWN0IHR0bV9ib19kcml2ZXIgcmFkZW9uX2JvX2RyaXZlciA9IHsKPj4g K3N0YXRpYyBzdHJ1Y3QgdHRtX2RldmljZV9mdW5jcyByYWRlb25fYm9fZHJpdmVyID0gewo+PiAg ICAgICAgICAudHRtX3R0X2NyZWF0ZSA9ICZyYWRlb25fdHRtX3R0X2NyZWF0ZSwKPj4gICAgICAg ICAgLnR0bV90dF9wb3B1bGF0ZSA9ICZyYWRlb25fdHRtX3R0X3BvcHVsYXRlLAo+PiAgICAgICAg ICAudHRtX3R0X3VucG9wdWxhdGUgPSAmcmFkZW9uX3R0bV90dF91bnBvcHVsYXRlLAo+PiBAQCAt NzE4LDcgKzcxNiw3IEBAIGludCByYWRlb25fdHRtX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYpCj4+ICAgICAgICAgIGludCByOwo+Pgo+PiAgICAgICAgICAvKiBObyBvdGhlcnMgdXNl ciBvZiBhZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCj4+IC0gICAgICAgciA9IHR0bV9i b19kZXZpY2VfaW5pdCgmcmRldi0+bW1hbi5iZGV2LCAmcmFkZW9uX2JvX2RyaXZlciwgcmRldi0+ ZGV2LAo+PiArICAgICAgIHIgPSB0dG1fZGV2aWNlX2luaXQoJnJkZXYtPm1tYW4uYmRldiwgJnJh ZGVvbl9ib19kcml2ZXIsIHJkZXYtPmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZGV2LT5kZGV2LT5hbm9uX2lub2RlLT5pX21hcHBpbmcsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmRldi0+ZGRldi0+dm1hX29mZnNldF9tYW5hZ2VyLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJkZXYtPm5lZWRfc3dpb3RsYiwKPj4gQEAgLTc5 MSw3ICs3ODksNyBAQCB2b2lkIHJhZGVvbl90dG1fZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldikKPj4gICAgICAgICAgfQo+PiAgICAgICAgICB0dG1fcmFuZ2VfbWFuX2ZpbmkoJnJkZXYt Pm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+PiAgICAgICAgICB0dG1fcmFuZ2VfbWFuX2Zpbmko JnJkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1RUKTsKPj4gLSAgICAgICB0dG1fYm9fZGV2aWNlX3Jl bGVhc2UoJnJkZXYtPm1tYW4uYmRldik7Cj4+ICsgICAgICAgdHRtX2RldmljZV9maW5pKCZyZGV2 LT5tbWFuLmJkZXYpOwo+PiAgICAgICAgICByYWRlb25fZ2FydF9maW5pKHJkZXYpOwo+PiAgICAg ICAgICByZGV2LT5tbWFuLmluaXRpYWxpemVkID0gZmFsc2U7Cj4+ICAgICAgICAgIERSTV9JTkZP KCJyYWRlb246IHR0bSBmaW5hbGl6ZWRcbiIpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3R0bS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUKPj4gaW5kZXgg YjZmNWY4N2IyNzBmLi44ZTY0MzdlYWRhYmUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vTWFrZWZpbGUKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS9NYWtlZmlsZQo+PiBA QCAtNSw3ICs1LDcgQEAKPj4gICB0dG0teSA6PSB0dG1fbWVtb3J5Lm8gdHRtX3R0Lm8gdHRtX2Jv Lm8gXAo+PiAgICAgICAgICB0dG1fYm9fdXRpbC5vIHR0bV9ib192bS5vIHR0bV9tb2R1bGUubyBc Cj4+ICAgICAgICAgIHR0bV9leGVjYnVmX3V0aWwubyB0dG1fcmFuZ2VfbWFuYWdlci5vIFwKPj4g LSAgICAgICB0dG1fcmVzb3VyY2UubyB0dG1fcG9vbC5vCj4+ICsgICAgICAgdHRtX3Jlc291cmNl Lm8gdHRtX3Bvb2wubyB0dG1fZGV2aWNlLm8KPj4gICB0dG0tJChDT05GSUdfQUdQKSArPSB0dG1f YWdwX2JhY2tlbmQubwo+Pgo+PiAgIG9iai0kKENPTkZJR19EUk1fVFRNKSArPSB0dG0ubwo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYyBiL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2FncF9iYWNrZW5kLmMKPj4gaW5kZXggOGY5ZmE0MTg4ODk3Li4w MjI2YWU2OWQzYWIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2FncF9i YWNrZW5kLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYwo+ PiBAQCAtNDksNyArNDksNyBAQCBzdHJ1Y3QgdHRtX2FncF9iYWNrZW5kIHsKPj4gICBpbnQgdHRt X2FncF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVt KQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHR0bV9hZ3BfYmFja2VuZCAqYWdwX2JlID0gY29u dGFpbmVyX29mKHR0bSwgc3RydWN0IHR0bV9hZ3BfYmFja2VuZCwgdHRtKTsKPj4gLSAgICAgICBz dHJ1Y3QgcGFnZSAqZHVtbXlfcmVhZF9wYWdlID0gdHRtX2JvX2dsb2IuZHVtbXlfcmVhZF9wYWdl Owo+PiArICAgICAgIHN0cnVjdCBwYWdlICpkdW1teV9yZWFkX3BhZ2UgPSB0dG1fZ2xvYi5kdW1t eV9yZWFkX3BhZ2U7Cj4+ICAgICAgICAgIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSA9IGJvX21l bS0+bW1fbm9kZTsKPj4gICAgICAgICAgc3RydWN0IGFncF9tZW1vcnkgKm1lbTsKPj4gICAgICAg ICAgaW50IHJldCwgY2FjaGVkID0gdHRtLT5jYWNoaW5nID09IHR0bV9jYWNoZWQ7Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fYm8uYwo+PiBpbmRleCBjMjg5YTZhMzdmZjkuLjIwMjU2Nzk3ZjNhNiAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9iby5jCj4+IEBAIC00NCwxNCArNDQsNiBAQAo+Pgo+PiAgICNpbmNsdWRlICJ0 dG1fbW9kdWxlLmgiCj4+Cj4+IC0vKgo+PiAtICogdHRtX2dsb2JhbF9tdXRleCAtIHByb3RlY3Rp bmcgdGhlIGdsb2JhbCBCTyBzdGF0ZQo+PiAtICovCj4+IC1ERUZJTkVfTVVURVgodHRtX2dsb2Jh bF9tdXRleCk7Cj4+IC11bnNpZ25lZCB0dG1fYm9fZ2xvYl91c2VfY291bnQ7Cj4+IC1zdHJ1Y3Qg dHRtX2JvX2dsb2JhbCB0dG1fYm9fZ2xvYjsKPj4gLUVYUE9SVF9TWU1CT0wodHRtX2JvX2dsb2Ip Owo+PiAtCj4+ICAgLyogZGVmYXVsdCBkZXN0cnVjdG9yICovCj4+ICAgc3RhdGljIHZvaWQgdHRt X2JvX2RlZmF1bHRfZGVzdHJveShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAgIHsK Pj4gQEAgLTc5LDEzICs3MSwxMyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fbWVtX3NwYWNlX2RlYnVn KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+Cj4+ICAgc3RhdGljIHZvaWQgdHRtX2Jv X2RlbF9mcm9tX2xydShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAgIHsKPj4gLSAg ICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+Cj4+ICAgICAgICAgIGxpc3RfZGVs X2luaXQoJmJvLT5zd2FwKTsKPj4gICAgICAgICAgbGlzdF9kZWxfaW5pdCgmYm8tPmxydSk7Cj4+ Cj4+IC0gICAgICAgaWYgKGJkZXYtPmRyaXZlci0+ZGVsX2Zyb21fbHJ1X25vdGlmeSkKPj4gLSAg ICAgICAgICAgICAgIGJkZXYtPmRyaXZlci0+ZGVsX2Zyb21fbHJ1X25vdGlmeShibyk7Cj4+ICsg ICAgICAgaWYgKGJkZXYtPmZ1bmNzLT5kZWxfZnJvbV9scnVfbm90aWZ5KQo+PiArICAgICAgICAg ICAgICAgYmRldi0+ZnVuY3MtPmRlbF9mcm9tX2xydV9ub3RpZnkoYm8pOwo+PiAgIH0KPj4KPj4g ICBzdGF0aWMgdm9pZCB0dG1fYm9fYnVsa19tb3ZlX3NldF9wb3Moc3RydWN0IHR0bV9scnVfYnVs a19tb3ZlX3BvcyAqcG9zLAo+PiBAQCAtMTAwLDcgKzkyLDcgQEAgdm9pZCB0dG1fYm9fbW92ZV90 b19scnVfdGFpbChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0sCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVsaykKPj4gICB7 Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAg ICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPj4KPj4gICAgICAgICAgZG1hX3Jlc3ZfYXNz ZXJ0X2hlbGQoYm8tPmJhc2UucmVzdik7Cj4+IEBAIC0xMTcsMTIgKzEwOSwxMiBAQCB2b2lkIHR0 bV9ib19tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFRNX1BBR0VfRkxBR19TV0FQUEVE KSkpIHsKPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpzd2FwOwo+Pgo+PiAt ICAgICAgICAgICAgICAgc3dhcCA9ICZ0dG1fYm9fZ2xvYi5zd2FwX2xydVtiby0+cHJpb3JpdHld Owo+PiArICAgICAgICAgICAgICAgc3dhcCA9ICZ0dG1fZ2xvYi5zd2FwX2xydVtiby0+cHJpb3Jp dHldOwo+PiAgICAgICAgICAgICAgICAgIGxpc3RfbW92ZV90YWlsKCZiby0+c3dhcCwgc3dhcCk7 Cj4+ICAgICAgICAgIH0KPj4KPj4gLSAgICAgICBpZiAoYmRldi0+ZHJpdmVyLT5kZWxfZnJvbV9s cnVfbm90aWZ5KQo+PiAtICAgICAgICAgICAgICAgYmRldi0+ZHJpdmVyLT5kZWxfZnJvbV9scnVf bm90aWZ5KGJvKTsKPj4gKyAgICAgICBpZiAoYmRldi0+ZnVuY3MtPmRlbF9mcm9tX2xydV9ub3Rp ZnkpCj4+ICsgICAgICAgICAgICAgICBiZGV2LT5mdW5jcy0+ZGVsX2Zyb21fbHJ1X25vdGlmeShi byk7Cj4+Cj4+ICAgICAgICAgIGlmIChidWxrICYmICFiby0+cGluX2NvdW50KSB7Cj4+ICAgICAg ICAgICAgICAgICAgc3dpdGNoIChiby0+bWVtLm1lbV90eXBlKSB7Cj4+IEBAIC0xODUsNyArMTc3 LDcgQEAgdm9pZCB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtf bW92ZSAqYnVsaykKPj4gICAgICAgICAgICAgICAgICBkbWFfcmVzdl9hc3NlcnRfaGVsZChwb3Mt PmZpcnN0LT5iYXNlLnJlc3YpOwo+PiAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X2Fzc2VydF9o ZWxkKHBvcy0+bGFzdC0+YmFzZS5yZXN2KTsKPj4KPj4gLSAgICAgICAgICAgICAgIGxydSA9ICZ0 dG1fYm9fZ2xvYi5zd2FwX2xydVtpXTsKPj4gKyAgICAgICAgICAgICAgIGxydSA9ICZ0dG1fZ2xv Yi5zd2FwX2xydVtpXTsKPj4gICAgICAgICAgICAgICAgICBsaXN0X2J1bGtfbW92ZV90YWlsKGxy dSwgJnBvcy0+Zmlyc3QtPnN3YXAsICZwb3MtPmxhc3QtPnN3YXApOwo+PiAgICAgICAgICB9Cj4+ ICAgfQo+PiBAQCAtMTk2LDcgKzE4OCw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3Zl X21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2UgKmhvcCkKPj4gICB7 Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAg ICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm9sZF9tYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYs IGJvLT5tZW0ubWVtX3R5cGUpOwo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKm5ld19tYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+PiAg ICAgICAgICBpbnQgcmV0Owo+PiBAQCAtMjIyLDcgKzIxNCw3IEBAIHN0YXRpYyBpbnQgdHRtX2Jv X2hhbmRsZV9tb3ZlX21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAg ICAgICAgICAgIH0KPj4gICAgICAgICAgfQo+Pgo+PiAtICAgICAgIHJldCA9IGJkZXYtPmRyaXZl ci0+bW92ZShibywgZXZpY3QsIGN0eCwgbWVtLCBob3ApOwo+PiArICAgICAgIHJldCA9IGJkZXYt PmZ1bmNzLT5tb3ZlKGJvLCBldmljdCwgY3R4LCBtZW0sIGhvcCk7Cj4+ICAgICAgICAgIGlmIChy ZXQpIHsKPj4gICAgICAgICAgICAgICAgICBpZiAocmV0ID09IC1FTVVMVElIT1ApCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiBAQCAtMjUwLDggKzI0Miw4IEBAIHN0 YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+Pgo+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19jbGVhbnVwX21lbXR5cGVfdXNlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+ICAgewo+PiAtICAgICAgIGlmIChiby0+YmRldi0+ ZHJpdmVyLT5kZWxldGVfbWVtX25vdGlmeSkKPj4gLSAgICAgICAgICAgICAgIGJvLT5iZGV2LT5k cml2ZXItPmRlbGV0ZV9tZW1fbm90aWZ5KGJvKTsKPj4gKyAgICAgICBpZiAoYm8tPmJkZXYtPmZ1 bmNzLT5kZWxldGVfbWVtX25vdGlmeSkKPj4gKyAgICAgICAgICAgICAgIGJvLT5iZGV2LT5mdW5j cy0+ZGVsZXRlX21lbV9ub3RpZnkoYm8pOwo+Pgo+PiAgICAgICAgICB0dG1fYm9fdHRfZGVzdHJv eShibyk7Cj4+ICAgICAgICAgIHR0bV9yZXNvdXJjZV9mcmVlKGJvLCAmYm8tPm1lbSk7Cj4+IEBA IC0yNzYsOSArMjY4LDkgQEAgc3RhdGljIGludCB0dG1fYm9faW5kaXZpZHVhbGl6ZV9yZXN2KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+ICAgICAgICAgICAgICAgICAgICogcmVmZXJl bmNlIGl0IGFueSBtb3JlLiBUaGUgb25seSB0cmlja3kgY2FzZSBpcyB0aGUgdHJ5bG9jayBvbgo+ PiAgICAgICAgICAgICAgICAgICAqIHRoZSByZXN2IG9iamVjdCB3aGlsZSBob2xkaW5nIHRoZSBs cnVfbG9jay4KPj4gICAgICAgICAgICAgICAgICAgKi8KPj4gLSAgICAgICAgICAgICAgIHNwaW5f bG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgICAgICAgICAgc3Bpbl9sb2Nr KCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ICAgICAgICAgICAgICAgICAgYm8tPmJhc2UucmVzdiA9 ICZiby0+YmFzZS5fcmVzdjsKPj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9f Z2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2Iu bHJ1X2xvY2spOwo+PiAgICAgICAgICB9Cj4+Cj4+ICAgICAgICAgIHJldHVybiByOwo+PiBAQCAt MzM3LDcgKzMyOSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+Pgo+PiAgICAgICAgICAgICAgICAgIGlmICh1bmxvY2tfcmVz dikKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5y ZXN2KTsKPj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9j ayk7Cj4+ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+ Pgo+PiAgICAgICAgICAgICAgICAgIGxyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KHJl c3YsIHRydWUsIGludGVycnVwdGlibGUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMzAgKiBIWik7Cj4+IEBAIC0zNDcsNyArMzM5LDcgQEAgc3Rh dGljIGludCB0dG1fYm9fY2xlYW51cF9yZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s Cj4+ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobHJldCA9PSAwKQo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FQlVTWTsKPj4KPj4gLSAgICAgICAgICAgICAgIHNwaW5fbG9j aygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0 dG1fZ2xvYi5scnVfbG9jayk7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHVubG9ja19yZXN2ICYm ICFkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7Cj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAvKgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICogV2UgcmFjZWQsIGFuZCBs b3N0LCBzb21lb25lIGVsc2UgaG9sZHMgdGhlIHJlc2VydmF0aW9uIG5vdywKPj4gQEAgLTM1Nyw3 ICszNDksNyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAqIGRlbGF5ZWQgZGVz dHJ1Y3Rpb24gd291bGQgc3VjY2VlZCwgc28ganVzdCByZXR1cm4gc3VjY2Vzcwo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICogaGVyZS4KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAq Lwo+PiAtICAgICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1 X2xvY2spOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2Iu bHJ1X2xvY2spOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgICAg ICAgICAgICAgICAgfQo+PiAgICAgICAgICAgICAgICAgIHJldCA9IDA7Cj4+IEBAIC0zNjYsMTMg KzM1OCwxMyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgaWYgKHJldCB8fCB1bmxpa2VseShsaXN0X2VtcHR5 KCZiby0+ZGRlc3Ryb3kpKSkgewo+PiAgICAgICAgICAgICAgICAgIGlmICh1bmxvY2tfcmVzdikK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2 KTsKPj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7 Cj4+ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAg ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICAgICAgICAgIH0KPj4KPj4gICAgICAgICAg dHRtX2JvX2RlbF9mcm9tX2xydShibyk7Cj4+ICAgICAgICAgIGxpc3RfZGVsX2luaXQoJmJvLT5k ZGVzdHJveSk7Cj4+IC0gICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsK Pj4gKyAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICB0 dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Cj4+Cj4+ICAgICAgICAgIGlmICh1bmxvY2tf cmVzdikKPj4gQEAgLTM4Nyw5ICszNzksOSBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3Jl ZnMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgKiBUcmF2ZXJzZSB0aGUgZGVs YXllZCBsaXN0LCBhbmQgY2FsbCB0dG1fYm9fY2xlYW51cF9yZWZzIG9uIGFsbAo+PiAgICAqIGVu Y291bnRlcmVkIGJ1ZmZlcnMuCj4+ICAgICovCj4+IC1zdGF0aWMgYm9vbCB0dG1fYm9fZGVsYXll ZF9kZWxldGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2FsbCkKPj4g K2Jvb2wgdHRtX2JvX2RlbGF5ZWRfZGVsZXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBib29s IHJlbW92ZV9hbGwpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9i ID0gJnR0bV9ib19nbG9iOwo+PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0 bV9nbG9iOwo+PiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIHJlbW92ZWQ7Cj4+ICAgICAgICAg IGJvb2wgZW1wdHk7Cj4+Cj4+IEBAIC00MjgsMjEgKzQyMCwxMSBAQCBzdGF0aWMgYm9vbCB0dG1f Ym9fZGVsYXllZF9kZWxldGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGJvb2wgcmVtb3Zl X2FsbCkKPj4gICAgICAgICAgcmV0dXJuIGVtcHR5Owo+PiAgIH0KPj4KPj4gLXN0YXRpYyB2b2lk IHR0bV9ib19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+IC17 Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPQo+PiAtICAgICAgICAgICBj b250YWluZXJfb2Yod29yaywgc3RydWN0IHR0bV9ib19kZXZpY2UsIHdxLndvcmspOwo+PiAtCj4+ IC0gICAgICAgaWYgKCF0dG1fYm9fZGVsYXllZF9kZWxldGUoYmRldiwgZmFsc2UpKQo+PiAtICAg ICAgICAgICAgICAgc2NoZWR1bGVfZGVsYXllZF93b3JrKCZiZGV2LT53cSwKPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEhaIC8gMTAwKSA8IDEpID8gMSA6IEhaIC8g MTAwKTsKPj4gLX0KPj4gLQo+PiAgIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVjdCBr cmVmICprcmVmKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi byA9Cj4+ICAgICAgICAgICAgICBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0LCBrcmVmKTsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJv LT5iZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ ICAgICAgICAgIHNpemVfdCBhY2Nfc2l6ZSA9IGJvLT5hY2Nfc2l6ZTsKPj4gICAgICAgICAgaW50 IHJldDsKPj4KPj4gQEAgLTQ1Niw4ICs0MzgsOCBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFz ZShzdHJ1Y3Qga3JlZiAqa3JlZikKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMzAgKiBIWik7Cj4+ICAgICAgICAgICAgICAgICAgfQo+Pgo+PiAt ICAgICAgICAgICAgICAgaWYgKGJvLT5iZGV2LT5kcml2ZXItPnJlbGVhc2Vfbm90aWZ5KQo+PiAt ICAgICAgICAgICAgICAgICAgICAgICBiby0+YmRldi0+ZHJpdmVyLT5yZWxlYXNlX25vdGlmeShi byk7Cj4+ICsgICAgICAgICAgICAgICBpZiAoYm8tPmJkZXYtPmZ1bmNzLT5yZWxlYXNlX25vdGlm eSkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgYm8tPmJkZXYtPmZ1bmNzLT5yZWxlYXNlX25v dGlmeShibyk7Cj4+Cj4+ICAgICAgICAgICAgICAgICAgZHJtX3ZtYV9vZmZzZXRfcmVtb3ZlKGJk ZXYtPnZtYV9tYW5hZ2VyLCAmYm8tPmJhc2Uudm1hX25vZGUpOwo+PiAgICAgICAgICAgICAgICAg IHR0bV9tZW1faW9fZnJlZShiZGV2LCAmYm8tPm1lbSk7Cj4+IEBAIC00NjksNyArNDUxLDcgQEAg c3RhdGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4+ICAgICAgICAg ICAgICAgICAgdHRtX2JvX2ZsdXNoX2FsbF9mZW5jZXMoYm8pOwo+PiAgICAgICAgICAgICAgICAg IGJvLT5kZWxldGVkID0gdHJ1ZTsKPj4KPj4gLSAgICAgICAgICAgICAgIHNwaW5fbG9jaygmdHRt X2JvX2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xv Yi5scnVfbG9jayk7Cj4+Cj4+ICAgICAgICAgICAgICAgICAgLyoKPj4gICAgICAgICAgICAgICAg ICAgKiBNYWtlIHBpbm5lZCBib3MgaW1tZWRpYXRlbHkgYXZhaWxhYmxlIHRvCj4+IEBAIC00ODMs MjIgKzQ2NSwyMiBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3Jl ZikKPj4KPj4gICAgICAgICAgICAgICAgICBrcmVmX2luaXQoJmJvLT5rcmVmKTsKPj4gICAgICAg ICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZiby0+ZGRlc3Ryb3ksICZiZGV2LT5kZGVzdHJveSk7 Cj4+IC0gICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+ PiArICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4g ICAgICAgICAgICAgICAgICBzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmJkZXYtPndxLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEhaIC8gMTAwKSA8IDEpID8gMSA6 IEhaIC8gMTAwKTsKPj4gICAgICAgICAgICAgICAgICByZXR1cm47Cj4+ICAgICAgICAgIH0KPj4K Pj4gLSAgICAgICBzcGluX2xvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAgICAgICBz cGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4gICAgICAgICAgdHRtX2JvX2RlbF9mcm9t X2xydShibyk7Cj4+ICAgICAgICAgIGxpc3RfZGVsKCZiby0+ZGRlc3Ryb3kpOwo+PiAtICAgICAg IHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgc3Bpbl91bmxv Y2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4gICAgICAgICAgdHRtX2JvX2NsZWFudXBfbWVt dHlwZV91c2UoYm8pOwo+PiAgICAgICAgICBkbWFfcmVzdl91bmxvY2soYm8tPmJhc2UucmVzdik7 Cj4+Cj4+IC0gICAgICAgYXRvbWljX2RlYygmdHRtX2JvX2dsb2IuYm9fY291bnQpOwo+PiArICAg ICAgIGF0b21pY19kZWMoJnR0bV9nbG9iLmJvX2NvdW50KTsKPj4gICAgICAgICAgZG1hX2ZlbmNl X3B1dChiby0+bW92aW5nKTsKPj4gICAgICAgICAgaWYgKCF0dG1fYm9fdXNlc19lbWJlZGRlZF9n ZW1fb2JqZWN0KGJvKSkKPj4gICAgICAgICAgICAgICAgICBkbWFfcmVzdl9maW5pKCZiby0+YmFz ZS5fcmVzdik7Cj4+IEBAIC01MTIsMTMgKzQ5NCwxMyBAQCB2b2lkIHR0bV9ib19wdXQoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9f cHV0KTsKPj4KPj4gLWludCB0dG1fYm9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldikKPj4gK2ludCB0dG1fYm9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZShz dHJ1Y3QgdHRtX2RldmljZSAqYmRldikKPj4gICB7Cj4+ICAgICAgICAgIHJldHVybiBjYW5jZWxf ZGVsYXllZF93b3JrX3N5bmMoJmJkZXYtPndxKTsKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0 dG1fYm9fbG9ja19kZWxheWVkX3dvcmtxdWV1ZSk7Cj4+Cj4+IC12b2lkIHR0bV9ib191bmxvY2tf ZGVsYXllZF93b3JrcXVldWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIGludCByZXNjaGVk KQo+PiArdm9pZCB0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LCBpbnQgcmVzY2hlZCkKPj4gICB7Cj4+ICAgICAgICAgIGlmIChyZXNjaGVkKQo+ PiAgICAgICAgICAgICAgICAgIHNjaGVkdWxlX2RlbGF5ZWRfd29yaygmYmRldi0+d3EsCj4+IEBA IC01MjksNyArNTExLDcgQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29y a3F1ZXVlKTsKPj4gICBzdGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRp b25fY3R4ICpjdHgpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 ID0gYm8tPmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRl djsKPj4gICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSBldmljdF9tZW07Cj4+ICAgICAgICAg IHN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPj4gICAgICAgICAgc3RydWN0IHR0bV9w bGFjZSBob3A7Cj4+IEBAIC01NDEsNyArNTIzLDcgQEAgc3RhdGljIGludCB0dG1fYm9fZXZpY3Qo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4KPj4gICAgICAgICAgcGxhY2VtZW50Lm51 bV9wbGFjZW1lbnQgPSAwOwo+PiAgICAgICAgICBwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50 ID0gMDsKPj4gLSAgICAgICBiZGV2LT5kcml2ZXItPmV2aWN0X2ZsYWdzKGJvLCAmcGxhY2VtZW50 KTsKPj4gKyAgICAgICBiZGV2LT5mdW5jcy0+ZXZpY3RfZmxhZ3MoYm8sICZwbGFjZW1lbnQpOwo+ Pgo+PiAgICAgICAgICBpZiAoIXBsYWNlbWVudC5udW1fcGxhY2VtZW50ICYmICFwbGFjZW1lbnQu bnVtX2J1c3lfcGxhY2VtZW50KSB7Cj4+ICAgICAgICAgICAgICAgICAgdHRtX2JvX3dhaXQoYm8s IGZhbHNlLCBmYWxzZSk7Cj4+IEBAIC02NTcsNyArNjM5LDcgQEAgc3RhdGljIGludCB0dG1fbWVt X2V2aWN0X3dhaXRfYnVzeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJ1c3lfYm8sCj4+ICAg ICAgICAgIHJldHVybiByID09IC1FREVBRExLID8gLUVCVVNZIDogcjsKPj4gICB9Cj4+Cj4+IC1p bnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK2lu dCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+ PiBAQCAtNjY4LDcgKzY1MCw3IEBAIGludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICB1bnNpZ25lZCBpOwo+PiAgICAgICAgICBpbnQg cmV0Owo+Pgo+PiAtICAgICAgIHNwaW5fbG9jaygmdHRtX2JvX2dsb2IubHJ1X2xvY2spOwo+PiAr ICAgICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICBmb3IgKGkg PSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklUWTsgKytpKSB7Cj4+ICAgICAgICAgICAgICAgICAg bGlzdF9mb3JfZWFjaF9lbnRyeShibywgJm1hbi0+bHJ1W2ldLCBscnUpIHsKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgYnVzeTsKPj4gQEAgLTY4MSw3ICs2NjMsNyBAQCBpbnQgdHRt X21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICB9Cj4+Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFjZSAmJiAhYmRldi0+ ZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZShibywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg aWYgKHBsYWNlICYmICFiZGV2LT5mdW5jcy0+ZXZpY3Rpb25fdmFsdWFibGUoYm8sCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGxhY2UpKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChsb2NrZWQpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1h X3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+PiBAQCAtNzA1LDcgKzY4Nyw3IEBAIGludCB0 dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAg ICBpZiAoIWJvKSB7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKGJ1c3lfYm8gJiYgIXR0bV9ib19n ZXRfdW5sZXNzX3plcm8oYnVzeV9ibykpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBidXN5 X2JvID0gTlVMTDsKPj4gLSAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5s cnVfbG9jayk7Cj4+ICsgICAgICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xv Y2spOwo+PiAgICAgICAgICAgICAgICAgIHJldCA9IHR0bV9tZW1fZXZpY3Rfd2FpdF9idXN5KGJ1 c3lfYm8sIGN0eCwgdGlja2V0KTsKPj4gICAgICAgICAgICAgICAgICBpZiAoYnVzeV9ibykKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgIHR0bV9ib19wdXQoYnVzeV9ibyk7Cj4+IEBAIC03MTks NyArNzAxLDcgQEAgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gICAgICAgICAgfQo+Pgo+ PiAtICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAg c3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4gICAgICAgICAgcmV0ID0gdHRt X2JvX2V2aWN0KGJvLCBjdHgpOwo+PiAgICAgICAgICBpZiAobG9ja2VkKQo+PiBAQCAtNzc0LDcg Kzc1Niw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9mb3JjZV9zcGFjZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICB7Cj4+IC0gICAgICAgc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4+ ICAgICAgICAgIHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0Owo+PiAgICAgICAgICBpbnQg cmV0Owo+PiBAQCAtODA5LDcgKzc5MSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9wbGFjZW1l bnQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPj4gICB7Cj4+ IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAgICAg ICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPj4KPj4gICAgICAgICAgbWFuID0gdHRtX21hbmFn ZXJfdHlwZShiZGV2LCBwbGFjZS0+bWVtX3R5cGUpOwo+PiBAQCAtODE5LDkgKzgwMSw5IEBAIHN0 YXRpYyBpbnQgdHRtX2JvX21lbV9wbGFjZW1lbnQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKPj4gICAgICAgICAgbWVtLT5tZW1fdHlwZSA9IHBsYWNlLT5tZW1fdHlwZTsKPj4gICAgICAg ICAgbWVtLT5wbGFjZW1lbnQgPSBwbGFjZS0+ZmxhZ3M7Cj4+Cj4+IC0gICAgICAgc3Bpbl9sb2Nr KCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5s cnVfbG9jayk7Cj4+ICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCBtZW0sIE5V TEwpOwo+PiAtICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsg ICAgICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4KPj4gICAgICAgICAgcmV0 dXJuIDA7Cj4+ICAgfQo+PiBAQCAtODM5LDcgKzgyMSw3IEBAIGludCB0dG1fYm9fbWVtX3NwYWNl KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICB7Cj4+IC0gICAgICAgc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiA9IGJvLT5iZGV2Owo+PiAgICAgICAgICBib29sIHR5cGVfZm91bmQgPSBmYWxzZTsK Pj4gICAgICAgICAgaW50IGksIHJldDsKPj4KPj4gQEAgLTEwNTcsNyArMTAzOSw3IEBAIGludCB0 dG1fYm9fdmFsaWRhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICB9Cj4+ICAg RVhQT1JUX1NZTUJPTCh0dG1fYm9fdmFsaWRhdGUpOwo+Pgo+PiAtaW50IHR0bV9ib19pbml0X3Jl c2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAraW50IHR0bV9ib19pbml0X3Jl c2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZV90IHNpemUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSB0dG1f Ym9fdHlwZSB0eXBlLAo+PiBAQCAtMTExNyw3ICsxMDk5LDcgQEAgaW50IHR0bV9ib19pbml0X3Jl c2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgIGRt YV9yZXN2X2luaXQoJmJvLT5iYXNlLl9yZXN2KTsKPj4gICAgICAgICAgICAgICAgICBkcm1fdm1h X25vZGVfcmVzZXQoJmJvLT5iYXNlLnZtYV9ub2RlKTsKPj4gICAgICAgICAgfQo+PiAtICAgICAg IGF0b21pY19pbmMoJnR0bV9ib19nbG9iLmJvX2NvdW50KTsKPj4gKyAgICAgICBhdG9taWNfaW5j KCZ0dG1fZ2xvYi5ib19jb3VudCk7Cj4+Cj4+ICAgICAgICAgIC8qCj4+ICAgICAgICAgICAqIEZv ciB0dG1fYm9fdHlwZV9kZXZpY2UgYnVmZmVycywgYWxsb2NhdGUKPj4gQEAgLTExNTMsNyArMTEz NSw3IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9faW5pdF9yZXNlcnZlZCk7Cj4+Cj4+ IC1pbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtpbnQgdHRt X2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6 ZSwKPj4gICAgICAgICAgICAgICAgICBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+IEBAIC0xMTgx LDcgKzExNjMsNyBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+ICAgfQo+PiAgIEVYUE9SVF9TWU1CT0wodHRtX2JvX2luaXQpOwo+Pgo+PiAtc2l6ZV90IHR0 bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzaXplX3Qg dHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYm9fc2l6ZSwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIHN0cnVjdF9zaXplKQo+PiAgIHsKPj4gQEAgLTExOTUs MTQ4ICsxMTc3LDEzIEBAIHNpemVfdCB0dG1fYm9fZG1hX2FjY19zaXplKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MKHR0bV9ib19kbWFfYWNjX3Np emUpOwo+Pgo+PiAtc3RhdGljIHZvaWQgdHRtX2JvX2dsb2JhbF9yZWxlYXNlKHZvaWQpCj4+IC17 Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSAmdHRtX2JvX2dsb2I7Cj4+ IC0KPj4gLSAgICAgICBtdXRleF9sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKPj4gLSAgICAgICBp ZiAoLS10dG1fYm9fZ2xvYl91c2VfY291bnQgPiAwKQo+PiAtICAgICAgICAgICAgICAgZ290byBv dXQ7Cj4+IC0KPj4gLSAgICAgICBrb2JqZWN0X2RlbCgmZ2xvYi0+a29iaik7Cj4+IC0gICAgICAg a29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwo+PiAtICAgICAgIHR0bV9tZW1fZ2xvYmFsX3JlbGVh c2UoJnR0bV9tZW1fZ2xvYik7Cj4+IC0gICAgICAgX19mcmVlX3BhZ2UoZ2xvYi0+ZHVtbXlfcmVh ZF9wYWdlKTsKPj4gLSAgICAgICBtZW1zZXQoZ2xvYiwgMCwgc2l6ZW9mKCpnbG9iKSk7Cj4+IC1v dXQ6Cj4+IC0gICAgICAgbXV0ZXhfdW5sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKPj4gLX0KPj4g LQo+PiAtc3RhdGljIGludCB0dG1fYm9fZ2xvYmFsX2luaXQodm9pZCkKPj4gLXsKPj4gLSAgICAg ICBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fYm9fZ2xvYjsKPj4gLSAgICAgICBp bnQgcmV0ID0gMDsKPj4gLSAgICAgICB1bnNpZ25lZCBpOwo+PiAtCj4+IC0gICAgICAgbXV0ZXhf bG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+IC0gICAgICAgaWYgKCsrdHRtX2JvX2dsb2JfdXNl X2NvdW50ID4gMSkKPj4gLSAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+PiAtCj4+IC0gICAgICAg cmV0ID0gdHRtX21lbV9nbG9iYWxfaW5pdCgmdHRtX21lbV9nbG9iKTsKPj4gLSAgICAgICBpZiAo cmV0KQo+PiAtICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4+IC0KPj4gLSAgICAgICBzcGluX2xv Y2tfaW5pdCgmZ2xvYi0+bHJ1X2xvY2spOwo+PiAtICAgICAgIGdsb2ItPmR1bW15X3JlYWRfcGFn ZSA9IGFsbG9jX3BhZ2UoX19HRlBfWkVSTyB8IEdGUF9ETUEzMik7Cj4+IC0KPj4gLSAgICAgICBp ZiAodW5saWtlbHkoZ2xvYi0+ZHVtbXlfcmVhZF9wYWdlID09IE5VTEwpKSB7Cj4+IC0gICAgICAg ICAgICAgICByZXQgPSAtRU5PTUVNOwo+PiAtICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4+IC0g ICAgICAgfQo+PiAtCj4+IC0gICAgICAgZm9yIChpID0gMDsgaSA8IFRUTV9NQVhfQk9fUFJJT1JJ VFk7ICsraSkKPj4gLSAgICAgICAgICAgICAgIElOSVRfTElTVF9IRUFEKCZnbG9iLT5zd2FwX2xy dVtpXSk7Cj4+IC0gICAgICAgSU5JVF9MSVNUX0hFQUQoJmdsb2ItPmRldmljZV9saXN0KTsKPj4g LSAgICAgICBhdG9taWNfc2V0KCZnbG9iLT5ib19jb3VudCwgMCk7Cj4+IC0KPj4gLSAgICAgICBk ZWJ1Z2ZzX2NyZWF0ZV9hdG9taWNfdCgiYnVmZmVyX29iamVjdHMiLCAwNDQ0LCB0dG1fZGVidWdm c19yb290LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnbG9iLT5ib19jb3Vu dCk7Cj4+IC1vdXQ6Cj4+IC0gICAgICAgbXV0ZXhfdW5sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsK Pj4gLSAgICAgICByZXR1cm4gcmV0Owo+PiAtfQo+PiAtCj4+IC1pbnQgdHRtX2JvX2RldmljZV9y ZWxlYXNlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KQo+PiAtewo+PiAtICAgICAgIHN0cnVj dCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gJnR0bV9ib19nbG9iOwo+PiAtICAgICAgIGludCByZXQg PSAwOwo+PiAtICAgICAgIHVuc2lnbmVkIGk7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyICptYW47Cj4+IC0KPj4gLSAgICAgICBtYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJk ZXYsIFRUTV9QTF9TWVNURU0pOwo+PiAtICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91 c2VkKG1hbiwgZmFsc2UpOwo+PiAtICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIoYmRldiwg VFRNX1BMX1NZU1RFTSwgTlVMTCk7Cj4+IC0KPj4gLSAgICAgICBtdXRleF9sb2NrKCZ0dG1fZ2xv YmFsX211dGV4KTsKPj4gLSAgICAgICBsaXN0X2RlbCgmYmRldi0+ZGV2aWNlX2xpc3QpOwo+PiAt ICAgICAgIG11dGV4X3VubG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+IC0KPj4gLSAgICAgICBj YW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmJkZXYtPndxKTsKPj4gLQo+PiAtICAgICAgIGlmICh0 dG1fYm9fZGVsYXllZF9kZWxldGUoYmRldiwgdHJ1ZSkpCj4+IC0gICAgICAgICAgICAgICBwcl9k ZWJ1ZygiRGVsYXllZCBkZXN0cm95IGxpc3Qgd2FzIGNsZWFuXG4iKTsKPj4gLQo+PiAtICAgICAg IHNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+PiAtICAgICAgIGZvciAoaSA9IDA7IGkgPCBU VE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpCj4+IC0gICAgICAgICAgICAgICBpZiAobGlzdF9lbXB0 eSgmbWFuLT5scnVbMF0pKQo+PiAtICAgICAgICAgICAgICAgICAgICAgICBwcl9kZWJ1ZygiU3dh cCBsaXN0ICVkIHdhcyBjbGVhblxuIiwgaSk7Cj4+IC0gICAgICAgc3Bpbl91bmxvY2soJmdsb2It PmxydV9sb2NrKTsKPj4gLQo+PiAtICAgICAgIHR0bV9wb29sX2ZpbmkoJmJkZXYtPnBvb2wpOwo+ PiAtCj4+IC0gICAgICAgaWYgKCFyZXQpCj4+IC0gICAgICAgICAgICAgICB0dG1fYm9fZ2xvYmFs X3JlbGVhc2UoKTsKPj4gLQo+PiAtICAgICAgIHJldHVybiByZXQ7Cj4+IC19Cj4+IC1FWFBPUlRf U1lNQk9MKHR0bV9ib19kZXZpY2VfcmVsZWFzZSk7Cj4+IC0KPj4gLXN0YXRpYyB2b2lkIHR0bV9i b19pbml0X3N5c21hbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPj4gLXsKPj4gLSAgICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5zeXNtYW47Cj4+IC0K Pj4gLSAgICAgICAvKgo+PiAtICAgICAgICAqIEluaXRpYWxpemUgdGhlIHN5c3RlbSBtZW1vcnkg YnVmZmVyIHR5cGUuCj4+IC0gICAgICAgICogT3RoZXIgdHlwZXMgbmVlZCB0byBiZSBkcml2ZXIg LyBJT0NUTCBpbml0aWFsaXplZC4KPj4gLSAgICAgICAgKi8KPj4gLSAgICAgICBtYW4tPnVzZV90 dCA9IHRydWU7Cj4+IC0KPj4gLSAgICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9pbml0KG1hbiwg MCk7Cj4+IC0gICAgICAgdHRtX3NldF9kcml2ZXJfbWFuYWdlcihiZGV2LCBUVE1fUExfU1lTVEVN LCBtYW4pOwo+PiAtICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1 ZSk7Cj4+IC19Cj4+IC0KPj4gLWludCB0dG1fYm9fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9ib19kcml2 ZXIgKmRyaXZlciwKPj4gLSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYs Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV92bWFfb2Zmc2V0X21hbmFnZXIg KnZtYV9tYW5hZ2VyLAo+PiAtICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdXNlX2RtYV9hbGxv YywgYm9vbCB1c2VfZG1hMzIpCj4+IC17Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19nbG9iYWwg Kmdsb2IgPSAmdHRtX2JvX2dsb2I7Cj4+IC0gICAgICAgaW50IHJldDsKPj4gLQo+PiAtICAgICAg IGlmIChXQVJOX09OKHZtYV9tYW5hZ2VyID09IE5VTEwpKQo+PiAtICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7Cj4+IC0KPj4gLSAgICAgICByZXQgPSB0dG1fYm9fZ2xvYmFsX2luaXQoKTsK Pj4gLSAgICAgICBpZiAocmV0KQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gLQo+ PiAtICAgICAgIGJkZXYtPmRyaXZlciA9IGRyaXZlcjsKPj4gLQo+PiAtICAgICAgIHR0bV9ib19p bml0X3N5c21hbihiZGV2KTsKPj4gLSAgICAgICB0dG1fcG9vbF9pbml0KCZiZGV2LT5wb29sLCBk ZXYsIHVzZV9kbWFfYWxsb2MsIHVzZV9kbWEzMik7Cj4+IC0KPj4gLSAgICAgICBiZGV2LT52bWFf bWFuYWdlciA9IHZtYV9tYW5hZ2VyOwo+PiAtICAgICAgIElOSVRfREVMQVlFRF9XT1JLKCZiZGV2 LT53cSwgdHRtX2JvX2RlbGF5ZWRfd29ya3F1ZXVlKTsKPj4gLSAgICAgICBJTklUX0xJU1RfSEVB RCgmYmRldi0+ZGRlc3Ryb3kpOwo+PiAtICAgICAgIGJkZXYtPmRldl9tYXBwaW5nID0gbWFwcGlu ZzsKPj4gLSAgICAgICBtdXRleF9sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKPj4gLSAgICAgICBs aXN0X2FkZF90YWlsKCZiZGV2LT5kZXZpY2VfbGlzdCwgJmdsb2ItPmRldmljZV9saXN0KTsKPj4g LSAgICAgICBtdXRleF91bmxvY2soJnR0bV9nbG9iYWxfbXV0ZXgpOwo+PiAtCj4+IC0gICAgICAg cmV0dXJuIDA7Cj4+IC19Cj4+IC1FWFBPUlRfU1lNQk9MKHR0bV9ib19kZXZpY2VfaW5pdCk7Cj4+ IC0KPj4gICAvKgo+PiAgICAqIGJ1ZmZlciBvYmplY3Qgdm0gZnVuY3Rpb25zLgo+PiAgICAqLwo+ Pgo+PiAgIHZvaWQgdHRtX2JvX3VubWFwX3ZpcnR1YWwoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibykKPj4gICB7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+ YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+Pgo+ PiAgICAgICAgICBkcm1fdm1hX25vZGVfdW5tYXAoJmJvLT5iYXNlLnZtYV9ub2RlLCBiZGV2LT5k ZXZfbWFwcGluZyk7Cj4+ICAgICAgICAgIHR0bV9tZW1faW9fZnJlZShiZGV2LCAmYm8tPm1lbSk7 Cj4+IEBAIC0xMzc0LDcgKzEyMjEsNyBAQCBFWFBPUlRfU1lNQk9MKHR0bV9ib193YWl0KTsKPj4g ICAgKi8KPj4gICBpbnQgdHRtX2JvX3N3YXBvdXQoc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpj dHgpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gJnR0bV9i b19nbG9iOwo+PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOwo+ PiAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvOwo+PiAgICAgICAgICBpbnQg cmV0ID0gLUVCVVNZOwo+PiAgICAgICAgICBib29sIGxvY2tlZDsKPj4gQEAgLTE0NTIsOCArMTI5 OSw4IEBAIGludCB0dG1fYm9fc3dhcG91dChzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkK Pj4gICAgICAgICAgICogYW55b25lIHRyaWVzIHRvIGFjY2VzcyBhIHR0bSBwYWdlLgo+PiAgICAg ICAgICAgKi8KPj4KPj4gLSAgICAgICBpZiAoYm8tPmJkZXYtPmRyaXZlci0+c3dhcF9ub3RpZnkp Cj4+IC0gICAgICAgICAgICAgICBiby0+YmRldi0+ZHJpdmVyLT5zd2FwX25vdGlmeShibyk7Cj4+ ICsgICAgICAgaWYgKGJvLT5iZGV2LT5mdW5jcy0+c3dhcF9ub3RpZnkpCj4+ICsgICAgICAgICAg ICAgICBiby0+YmRldi0+ZnVuY3MtPnN3YXBfbm90aWZ5KGJvKTsKPj4KPj4gICAgICAgICAgcmV0 ID0gdHRtX3R0X3N3YXBvdXQoYm8tPmJkZXYsIGJvLT50dG0pOwo+PiAgIG91dDoKPj4gQEAgLTE0 NzgsNCArMTMyNSwzIEBAIHZvaWQgdHRtX2JvX3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKPj4gICAgICAgICAgdHRtX3R0X2Rlc3Ryb3koYm8tPmJkZXYsIGJvLT50dG0p Owo+PiAgICAgICAgICBiby0+dHRtID0gTlVMTDsKPj4gICB9Cj4+IC0KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvX3V0aWwuYwo+PiBpbmRleCAzOThkNTAxM2ZjMzkuLmRiMGYyNjYxZDUwNCAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwo+PiBAQCAtNDYsMzMgKzQ2LDMzIEBAIHN0cnVj dCB0dG1fdHJhbnNmZXJfb2JqIHsKPj4gICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibzsKPj4gICB9Owo+Pgo+PiAtaW50IHR0bV9tZW1faW9fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKPj4gK2ludCB0dG1fbWVtX2lvX3Jlc2VydmUoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2Ug Km1lbSkKPj4gICB7Cj4+ICAgICAgICAgIGlmIChtZW0tPmJ1cy5vZmZzZXQgfHwgbWVtLT5idXMu YWRkcikKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4KPj4gICAgICAgICAgbWVtLT5i dXMuaXNfaW9tZW0gPSBmYWxzZTsKPj4gLSAgICAgICBpZiAoIWJkZXYtPmRyaXZlci0+aW9fbWVt X3Jlc2VydmUpCj4+ICsgICAgICAgaWYgKCFiZGV2LT5mdW5jcy0+aW9fbWVtX3Jlc2VydmUpCj4+ ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+Cj4+IC0gICAgICAgcmV0dXJuIGJkZXYtPmRy aXZlci0+aW9fbWVtX3Jlc2VydmUoYmRldiwgbWVtKTsKPj4gKyAgICAgICByZXR1cm4gYmRldi0+ ZnVuY3MtPmlvX21lbV9yZXNlcnZlKGJkZXYsIG1lbSk7Cj4+ICAgfQo+Pgo+PiAtdm9pZCB0dG1f bWVtX2lvX2ZyZWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICt2b2lkIHR0bV9tZW1f aW9fZnJlZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPj4gICB7Cj4+ICAgICAgICAgIGlmICghbWVtLT5i dXMub2Zmc2V0ICYmICFtZW0tPmJ1cy5hZGRyKQo+PiAgICAgICAgICAgICAgICAgIHJldHVybjsK Pj4KPj4gLSAgICAgICBpZiAoYmRldi0+ZHJpdmVyLT5pb19tZW1fZnJlZSkKPj4gLSAgICAgICAg ICAgICAgIGJkZXYtPmRyaXZlci0+aW9fbWVtX2ZyZWUoYmRldiwgbWVtKTsKPj4gKyAgICAgICBp ZiAoYmRldi0+ZnVuY3MtPmlvX21lbV9mcmVlKQo+PiArICAgICAgICAgICAgICAgYmRldi0+ZnVu Y3MtPmlvX21lbV9mcmVlKGJkZXYsIG1lbSk7Cj4+Cj4+ICAgICAgICAgIG1lbS0+YnVzLm9mZnNl dCA9IDA7Cj4+ICAgICAgICAgIG1lbS0+YnVzLmFkZHIgPSBOVUxMOwo+PiAgIH0KPj4KPj4gLXN0 YXRpYyBpbnQgdHRtX3Jlc291cmNlX2lvcmVtYXAoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+ICtzdGF0aWMgaW50IHR0bV9yZXNvdXJjZV9pb3JlbWFwKHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgKm1lbSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqdmlydHVh bCkKPj4gICB7Cj4+IEBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIGludCB0dG1fcmVzb3VyY2Vf aW9yZW1hcChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgcmV0dXJuIDA7 Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHZvaWQgdHRtX3Jlc291cmNlX2lvdW5tYXAoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCB0dG1fcmVzb3VyY2VfaW91bm1hcChz dHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2b2lkICp2aXJ0dWFsKQo+PiAgIHsKPj4gQEAgLTE3Miw3ICsxNzIsNyBAQCBpbnQg dHRtX2JvX21vdmVfbWVtY3B5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKQo+PiAgIHsK Pj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiArICAg ICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICAgICAgICAgIHN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBuZXdf bWVtLT5tZW1fdHlwZSk7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSA9IGJvLT50dG07 Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm9sZF9tZW0gPSAmYm8tPm1lbTsKPj4g QEAgLTMwMCw3ICszMDAsNyBAQCBzdGF0aWMgaW50IHR0bV9idWZmZXJfb2JqZWN0X3RyYW5zZmVy KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAqIFRPRE86IEV4cGxp Y2l0IG1lbWJlciBjb3B5IHdvdWxkIHByb2JhYmx5IGJlIGJldHRlciBoZXJlLgo+PiAgICAgICAg ICAgKi8KPj4KPj4gLSAgICAgICBhdG9taWNfaW5jKCZ0dG1fYm9fZ2xvYi5ib19jb3VudCk7Cj4+ ICsgICAgICAgYXRvbWljX2luYygmdHRtX2dsb2IuYm9fY291bnQpOwo+PiAgICAgICAgICBJTklU X0xJU1RfSEVBRCgmZmJvLT5iYXNlLmRkZXN0cm95KTsKPj4gICAgICAgICAgSU5JVF9MSVNUX0hF QUQoJmZiby0+YmFzZS5scnUpOwo+PiAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmZmJvLT5iYXNl LnN3YXApOwo+PiBAQCAtNjAyLDcgKzYwMiw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21vdmVfdG9f Z2hvc3Qoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICBzdGF0aWMgdm9pZCB0dG1f Ym9fbW92ZV9waXBlbGluZV9ldmljdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8t PmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPj4g ICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICpmcm9tID0gdHRtX21hbmFnZXJf dHlwZShiZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPj4KPj4gICAgICAgICAgLyoqCj4+IEBAIC02 MjgsNyArNjI4LDcgQEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg cGlwZWxpbmUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jl c291cmNlICpuZXdfbWVtKQo+PiAgIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8t PmJkZXY7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqZnJvbSA9IHR0 bV9tYW5hZ2VyX3R5cGUoYmRldiwgYm8tPm1lbS5tZW1fdHlwZSk7Cj4+ICAgICAgICAgIHN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBuZXdf bWVtLT5tZW1fdHlwZSk7Cj4+ICAgICAgICAgIGludCByZXQgPSAwOwo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvX3ZtLmMKPj4gaW5kZXggNmRjOTZjZjY2NzQ0Li5iMzFiMTgwNTg5NjUgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm9fdm0uYwo+PiBAQCAtOTUsMTAgKzk1LDEwIEBAIHN0YXRpYyB2bV9mYXVs dF90IHR0bV9ib192bV9mYXVsdF9pZGxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ ICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdHRtX2JvX2lvX21lbV9wZm4oc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgcGFnZV9vZmZzZXQpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYgPSBiby0+YmRldjsKPj4KPj4gLSAgICAgICBpZiAoYmRldi0+ZHJpdmVyLT5pb19tZW1f cGZuKQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIGJkZXYtPmRyaXZlci0+aW9fbWVtX3Bmbihi bywgcGFnZV9vZmZzZXQpOwo+PiArICAgICAgIGlmIChiZGV2LT5mdW5jcy0+aW9fbWVtX3BmbikK Pj4gKyAgICAgICAgICAgICAgIHJldHVybiBiZGV2LT5mdW5jcy0+aW9fbWVtX3BmbihibywgcGFn ZV9vZmZzZXQpOwo+Pgo+PiAgICAgICAgICByZXR1cm4gKGJvLT5tZW0uYnVzLm9mZnNldCA+PiBQ QUdFX1NISUZUKSArIHBhZ2Vfb2Zmc2V0Owo+PiAgIH0KPj4gQEAgLTIxNiw3ICsyMTYsNyBAQCBz dGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1faW5zZXJ0X2h1Z2Uoc3RydWN0IHZtX2ZhdWx0ICp2 bWYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFnZV90b19wZm4odHRtLT5wYWdl c1twYWdlX29mZnNldCArIGldKSAhPSBwZm4gKyBpKQo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnb3RvIG91dF9mYWxsYmFjazsKPj4gICAgICAgICAgICAgICAgICB9Cj4+IC0g ICAgICAgfSBlbHNlIGlmIChiby0+YmRldi0+ZHJpdmVyLT5pb19tZW1fcGZuKSB7Cj4+ICsgICAg ICAgfSBlbHNlIGlmIChiby0+YmRldi0+ZnVuY3MtPmlvX21lbV9wZm4pIHsKPj4gICAgICAgICAg ICAgICAgICBmb3IgKGkgPSAxOyBpIDwgZmF1bHRfcGFnZV9zaXplOyArK2kpIHsKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICh0dG1fYm9faW9fbWVtX3BmbihibywgcGFnZV9vZmZzZXQg KyBpKSAhPSBwZm4gKyBpKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Rv IG91dF9mYWxsYmFjazsKPj4gQEAgLTI3OCw3ICsyNzgsNyBAQCB2bV9mYXVsdF90IHR0bV9ib192 bV9mYXVsdF9yZXNlcnZlZChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwKPj4gICB7Cj4+ICAgICAgICAg IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gdm1mLT52bWE7Cj4+ICAgICAgICAgIHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8gPSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsKPj4gLSAgICAg ICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICAgICAgICAgIHVuc2lnbmVkIGxvbmcg cGFnZV9vZmZzZXQ7Cj4+ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGFnZV9sYXN0Owo+PiAgICAg ICAgICB1bnNpZ25lZCBsb25nIHBmbjsKPj4gQEAgLTQ4OCw4ICs0ODgsOCBAQCBpbnQgdHRtX2Jv X3ZtX2FjY2VzcyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRy LAo+PiAgICAgICAgICAgICAgICAgIHJldCA9IHR0bV9ib192bV9hY2Nlc3Nfa21hcChibywgb2Zm c2V0LCBidWYsIGxlbiwgd3JpdGUpOwo+PiAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiAgICAg ICAgICBkZWZhdWx0Ogo+PiAtICAgICAgICAgICAgICAgaWYgKGJvLT5iZGV2LT5kcml2ZXItPmFj Y2Vzc19tZW1vcnkpCj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHJldCA9IGJvLT5iZGV2LT5k cml2ZXItPmFjY2Vzc19tZW1vcnkoCj4+ICsgICAgICAgICAgICAgICBpZiAoYm8tPmJkZXYtPmZ1 bmNzLT5hY2Nlc3NfbWVtb3J5KQo+PiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBiby0+ YmRldi0+ZnVuY3MtPmFjY2Vzc19tZW1vcnkoCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvLCBvZmZzZXQsIGJ1ZiwgbGVuLCB3cml0ZSk7Cj4+ICAgICAgICAgICAgICAgICAg ZWxzZQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTzsKPj4gQEAgLTUwOCw3 ICs1MDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHR0bV9i b192bV9vcHMgPSB7Cj4+ICAgICAgICAgIC5hY2Nlc3MgPSB0dG1fYm9fdm1fYWNjZXNzLAo+PiAg IH07Cj4+Cj4+IC1zdGF0aWMgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0dG1fYm9fdm1fbG9v a3VwKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqdHRtX2JvX3ZtX2xvb2t1cChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBvZmZzZXQsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGFnZXMpCj4+ICAgewo+PiBAQCAtNTU1LDkgKzU1 NSw4IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19tbWFwX3ZtYV9zZXR1cChzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLCBzdHJ1Y3Qgdm1fYXJlYV9zCj4+ICAgfQo+Pgo+PiAgIGludCB0dG1fYm9f bW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4+IC0g ICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPj4gKyAgICAgICAgICAg ICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KQo+PiAgIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRt X2JvX2RyaXZlciAqZHJpdmVyOwo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvOwo+PiAgICAgICAgICBpbnQgcmV0Owo+Pgo+PiBAQCAtNTY4LDEyICs1NjcsMTEgQEAgaW50 IHR0bV9ib19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSwKPj4gICAgICAgICAgaWYgKHVubGlrZWx5KCFibykpCj4+ICAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7Cj4+Cj4+IC0gICAgICAgZHJpdmVyID0gYm8tPmJkZXYtPmRyaXZlcjsKPj4g LSAgICAgICBpZiAodW5saWtlbHkoIWRyaXZlci0+dmVyaWZ5X2FjY2VzcykpIHsKPj4gKyAgICAg ICBpZiAodW5saWtlbHkoIWJvLT5iZGV2LT5mdW5jcy0+dmVyaWZ5X2FjY2VzcykpIHsKPj4gICAg ICAgICAgICAgICAgICByZXQgPSAtRVBFUk07Cj4+ICAgICAgICAgICAgICAgICAgZ290byBvdXRf dW5yZWY7Cj4+ICAgICAgICAgIH0KPj4gLSAgICAgICByZXQgPSBkcml2ZXItPnZlcmlmeV9hY2Nl c3MoYm8sIGZpbHApOwo+PiArICAgICAgIHJldCA9IGJvLT5iZGV2LT5mdW5jcy0+dmVyaWZ5X2Fj Y2VzcyhibywgZmlscCk7Cj4+ICAgICAgICAgIGlmICh1bmxpa2VseShyZXQgIT0gMCkpCj4+ICAg ICAgICAgICAgICAgICAgZ290byBvdXRfdW5yZWY7Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Rldmlj ZS5jCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uYWMwOTAz YzllNjBhCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f ZGV2aWNlLmMKPj4gQEAgLTAsMCArMSwxOTUgQEAKPj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wIE9SIE1JVCAqLwo+PiArCj4+ICsvKgo+PiArICogQ29weXJpZ2h0IChjKSAy MDA2LTIwMDkgVk13YXJlLCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBCj4+ICsgKiBDb3B5cmln aHQgMjAyMCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCj4+ICsgKgo+PiArICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEKPj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4+ICsgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u Cj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+PiArICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+PiArICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4+ICsgKgo+PiArICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKPj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+PiArICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCj4+ICsgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPj4gKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+PiArICogQVJJ U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SCj4+ICsgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+ PiArICogQXV0aG9yczogQ2hyaXN0aWFuIEvDtm5pZwo+PiArICovCj4+ICsKPj4gKyNkZWZpbmUg cHJfZm10KGZtdCkgIltUVE0gREVWSUNFXSAiIGZtdAo+PiArCj4+ICsjaW5jbHVkZSA8ZHJtL3R0 bS90dG1fZGV2aWNlLmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+Cj4+ICsj aW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Cj4+ICsKPj4gKyNpbmNsdWRlICJ0dG1f bW9kdWxlLmgiCj4+ICsKPj4gKy8qKgo+PiArICogdHRtX2dsb2JhbF9tdXRleCAtIHByb3RlY3Rp bmcgdGhlIGdsb2JhbCBzdGF0ZQo+PiArICovCj4+ICtERUZJTkVfTVVURVgodHRtX2dsb2JhbF9t dXRleCk7Cj4+ICt1bnNpZ25lZCB0dG1fZ2xvYl91c2VfY291bnQ7Cj4+ICtzdHJ1Y3QgdHRtX2ds b2JhbCB0dG1fZ2xvYjsKPj4gK0VYUE9SVF9TWU1CT0wodHRtX2dsb2IpOwo+PiArCj4+ICtzdGF0 aWMgdm9pZCB0dG1fZ2xvYmFsX3JlbGVhc2Uodm9pZCkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3Qg dHRtX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fZ2xvYjsKPj4gKwo+PiArICAgICAgIG11dGV4X2xvY2so JnR0bV9nbG9iYWxfbXV0ZXgpOwo+PiArICAgICAgIGlmICgtLXR0bV9nbG9iX3VzZV9jb3VudCA+ IDApCj4+ICsgICAgICAgICAgICAgICBnb3RvIG91dDsKPj4gKwo+PiArICAgICAgIGtvYmplY3Rf ZGVsKCZnbG9iLT5rb2JqKTsKPj4gKyAgICAgICBrb2JqZWN0X3B1dCgmZ2xvYi0+a29iaik7Cj4+ ICsgICAgICAgdHRtX21lbV9nbG9iYWxfcmVsZWFzZSgmdHRtX21lbV9nbG9iKTsKPj4gKyAgICAg ICBfX2ZyZWVfcGFnZShnbG9iLT5kdW1teV9yZWFkX3BhZ2UpOwo+PiArICAgICAgIG1lbXNldChn bG9iLCAwLCBzaXplb2YoKmdsb2IpKTsKPj4gK291dDoKPj4gKyAgICAgICBtdXRleF91bmxvY2so JnR0bV9nbG9iYWxfbXV0ZXgpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IHR0bV9nbG9iYWxf aW5pdCh2b2lkKQo+PiArewo+PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0 bV9nbG9iOwo+PiArICAgICAgIGludCByZXQgPSAwOwo+PiArICAgICAgIHVuc2lnbmVkIGk7Cj4+ ICsKPj4gKyAgICAgICBtdXRleF9sb2NrKCZ0dG1fZ2xvYmFsX211dGV4KTsKPj4gKyAgICAgICBp ZiAoKyt0dG1fZ2xvYl91c2VfY291bnQgPiAxKQo+PiArICAgICAgICAgICAgICAgZ290byBvdXQ7 Cj4+ICsKPj4gKyAgICAgICByZXQgPSB0dG1fbWVtX2dsb2JhbF9pbml0KCZ0dG1fbWVtX2dsb2Ip Owo+PiArICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAgICAgICBnb3RvIG91dDsKPj4gKwo+ PiArICAgICAgIHNwaW5fbG9ja19pbml0KCZnbG9iLT5scnVfbG9jayk7Cj4+ICsgICAgICAgZ2xv Yi0+ZHVtbXlfcmVhZF9wYWdlID0gYWxsb2NfcGFnZShfX0dGUF9aRVJPIHwgR0ZQX0RNQTMyKTsK Pj4gKwo+PiArICAgICAgIGlmICh1bmxpa2VseShnbG9iLT5kdW1teV9yZWFkX3BhZ2UgPT0gTlVM TCkpIHsKPj4gKyAgICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07Cj4+ICsgICAgICAgICAgICAg ICBnb3RvIG91dDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwg VFRNX01BWF9CT19QUklPUklUWTsgKytpKQo+PiArICAgICAgICAgICAgICAgSU5JVF9MSVNUX0hF QUQoJmdsb2ItPnN3YXBfbHJ1W2ldKTsKPj4gKyAgICAgICBJTklUX0xJU1RfSEVBRCgmZ2xvYi0+ ZGV2aWNlX2xpc3QpOwo+PiArICAgICAgIGF0b21pY19zZXQoJmdsb2ItPmJvX2NvdW50LCAwKTsK Pj4gKwo+PiArICAgICAgIGRlYnVnZnNfY3JlYXRlX2F0b21pY190KCJidWZmZXJfb2JqZWN0cyIs IDA0NDQsIHR0bV9kZWJ1Z2ZzX3Jvb3QsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmdsb2ItPmJvX2NvdW50KTsKPj4gK291dDoKPj4gKyAgICAgICBtdXRleF91bmxvY2soJnR0 bV9nbG9iYWxfbXV0ZXgpOwo+PiArICAgICAgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0 YXRpYyB2b2lkIHR0bV9pbml0X3N5c21hbihzdHJ1Y3QgdHRtX2RldmljZSAqYmRldikKPj4gK3sK Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5zeXNt YW47Cj4+ICsKPj4gKyAgICAgICAvKgo+PiArICAgICAgICAqIEluaXRpYWxpemUgdGhlIHN5c3Rl bSBtZW1vcnkgYnVmZmVyIHR5cGUuCj4+ICsgICAgICAgICogT3RoZXIgdHlwZXMgbmVlZCB0byBi ZSBkcml2ZXIgLyBJT0NUTCBpbml0aWFsaXplZC4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBt YW4tPnVzZV90dCA9IHRydWU7Cj4+ICsKPj4gKyAgICAgICB0dG1fcmVzb3VyY2VfbWFuYWdlcl9p bml0KG1hbiwgMCk7Cj4+ICsgICAgICAgdHRtX3NldF9kcml2ZXJfbWFuYWdlcihiZGV2LCBUVE1f UExfU1lTVEVNLCBtYW4pOwo+PiArICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2Vk KG1hbiwgdHJ1ZSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIHR0bV9kZXZpY2VfZGVsYXll ZF93b3JrcXVldWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+PiArewo+PiArICAgICAgIHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0KPj4gKyAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZih3 b3JrLCBzdHJ1Y3QgdHRtX2RldmljZSwgd3Eud29yayk7Cj4+ICsKPj4gKyAgICAgICBpZiAoIXR0 bV9ib19kZWxheWVkX2RlbGV0ZShiZGV2LCBmYWxzZSkpCj4+ICsgICAgICAgICAgICAgICBzY2hl ZHVsZV9kZWxheWVkX3dvcmsoJmJkZXYtPndxLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoSFogLyAxMDApIDwgMSkgPyAxIDogSFogLyAxMDApOwo+PiArfQo+PiAr Cj4+ICsvKioKPj4gKyAqIHR0bV9kZXZpY2VfaW5pdAo+PiArICoKPj4gKyAqIEBiZGV2OiBBIHBv aW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX2RldmljZSB0byBpbml0aWFsaXplLgo+PiArICogQGZ1bmNz OiBGdW5jdGlvbiB0YWJsZSBmb3IgdGhlIGRldmljZS4KPj4gKyAqIEBkZXY6IFRoZSBjb3JlIGtl cm5lbCBkZXZpY2UgcG9pbnRlciBmb3IgRE1BIG1hcHBpbmdzIGFuZCBhbGxvY2F0aW9ucy4KPj4g KyAqIEBtYXBwaW5nOiBUaGUgYWRkcmVzcyBzcGFjZSB0byB1c2UgZm9yIHRoaXMgYm8uCj4+ICsg KiBAdm1hX21hbmFnZXI6IEEgcG9pbnRlciB0byBhIHZtYSBtYW5hZ2VyLgo+PiArICogQHVzZV9k bWFfYWxsb2M6IElmIGNvaGVyZW50IERNQSBhbGxvY2F0aW9uIEFQSSBzaG91bGQgYmUgdXNlZC4K Pj4gKyAqIEB1c2VfZG1hMzI6IElmIHdlIHNob3VsZCB1c2UgR0ZQX0RNQTMyIGZvciBkZXZpY2Ug bWVtb3J5IGFsbG9jYXRpb25zLgo+PiArICoKPj4gKyAqIEluaXRpYWxpemVzIGEgc3RydWN0IHR0 bV9kZXZpY2U6Cj4+ICsgKiBSZXR1cm5zOgo+PiArICogITA6IEZhaWx1cmUuCj4+ICsgKi8KPj4g K2ludCB0dG1fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f ZGV2aWNlX2Z1bmNzICpmdW5jcywKPj4gKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAo+PiArICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBkcm1fdm1hX29mZnNldF9tYW5hZ2VyICp2bWFfbWFuYWdlciwKPj4gKyAgICAg ICAgICAgICAgICAgICBib29sIHVzZV9kbWFfYWxsb2MsIGJvb2wgdXNlX2RtYTMyKQo+PiArewo+ PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOwo+PiArICAgICAg IGludCByZXQ7Cj4+ICsKPj4gKyAgICAgICBpZiAoV0FSTl9PTih2bWFfbWFuYWdlciA9PSBOVUxM KSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsgICAgICAgcmV0 ID0gdHRtX2dsb2JhbF9pbml0KCk7Cj4+ICsgICAgICAgaWYgKHJldCkKPj4gKyAgICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4+ICsKPj4gKyAgICAgICBiZGV2LT5mdW5jcyA9IGZ1bmNzOwo+PiAr Cj4+ICsgICAgICAgdHRtX2luaXRfc3lzbWFuKGJkZXYpOwo+PiArICAgICAgIHR0bV9wb29sX2lu aXQoJmJkZXYtPnBvb2wsIGRldiwgdXNlX2RtYV9hbGxvYywgdXNlX2RtYTMyKTsKPj4gKwo+PiAr ICAgICAgIGJkZXYtPnZtYV9tYW5hZ2VyID0gdm1hX21hbmFnZXI7Cj4+ICsgICAgICAgSU5JVF9E RUxBWUVEX1dPUksoJmJkZXYtPndxLCB0dG1fZGV2aWNlX2RlbGF5ZWRfd29ya3F1ZXVlKTsKPj4g KyAgICAgICBJTklUX0xJU1RfSEVBRCgmYmRldi0+ZGRlc3Ryb3kpOwo+PiArICAgICAgIGJkZXYt PmRldl9tYXBwaW5nID0gbWFwcGluZzsKPj4gKyAgICAgICBtdXRleF9sb2NrKCZ0dG1fZ2xvYmFs X211dGV4KTsKPj4gKyAgICAgICBsaXN0X2FkZF90YWlsKCZiZGV2LT5kZXZpY2VfbGlzdCwgJmds b2ItPmRldmljZV9saXN0KTsKPj4gKyAgICAgICBtdXRleF91bmxvY2soJnR0bV9nbG9iYWxfbXV0 ZXgpOwo+PiArCj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MKHR0 bV9kZXZpY2VfaW5pdCk7Cj4+ICsKPj4gK3ZvaWQgdHRtX2RldmljZV9maW5pKHN0cnVjdCB0dG1f ZGV2aWNlICpiZGV2KQo+PiArewo+PiArICAgICAgIHN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0g JnR0bV9nbG9iOwo+PiArICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ PiArICAgICAgIHVuc2lnbmVkIGk7Cj4+ICsKPj4gKyAgICAgICBtYW4gPSB0dG1fbWFuYWdlcl90 eXBlKGJkZXYsIFRUTV9QTF9TWVNURU0pOwo+PiArICAgICAgIHR0bV9yZXNvdXJjZV9tYW5hZ2Vy X3NldF91c2VkKG1hbiwgZmFsc2UpOwo+PiArICAgICAgIHR0bV9zZXRfZHJpdmVyX21hbmFnZXIo YmRldiwgVFRNX1BMX1NZU1RFTSwgTlVMTCk7Cj4+ICsKPj4gKyAgICAgICBtdXRleF9sb2NrKCZ0 dG1fZ2xvYmFsX211dGV4KTsKPj4gKyAgICAgICBsaXN0X2RlbCgmYmRldi0+ZGV2aWNlX2xpc3Qp Owo+PiArICAgICAgIG11dGV4X3VubG9jaygmdHRtX2dsb2JhbF9tdXRleCk7Cj4+ICsKPj4gKyAg ICAgICBjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmJkZXYtPndxKTsKPj4gKwo+PiArICAgICAg IGlmICh0dG1fYm9fZGVsYXllZF9kZWxldGUoYmRldiwgdHJ1ZSkpCj4+ICsgICAgICAgICAgICAg ICBwcl9kZWJ1ZygiRGVsYXllZCBkZXN0cm95IGxpc3Qgd2FzIGNsZWFuXG4iKTsKPj4gKwo+PiAr ICAgICAgIHNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+PiArICAgICAgIGZvciAoaSA9IDA7 IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpCj4+ICsgICAgICAgICAgICAgICBpZiAobGlz dF9lbXB0eSgmbWFuLT5scnVbMF0pKQo+PiArICAgICAgICAgICAgICAgICAgICAgICBwcl9kZWJ1 ZygiU3dhcCBsaXN0ICVkIHdhcyBjbGVhblxuIiwgaSk7Cj4+ICsgICAgICAgc3Bpbl91bmxvY2so Jmdsb2ItPmxydV9sb2NrKTsKPj4gKwo+PiArICAgICAgIHR0bV9wb29sX2ZpbmkoJmJkZXYtPnBv b2wpOwo+PiArICAgICAgIHR0bV9nbG9iYWxfcmVsZWFzZSgpOwo+PiArfQo+PiArRVhQT1JUX1NZ TUJPTCh0dG1fZGV2aWNlX2ZpbmkpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fZXhlY2J1Zl91dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0 aWwuYwo+PiBpbmRleCA5ZmEzNmVkNTk0MjkuLjY5MGFiOTdkNTJiNyAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKPj4gQEAgLTUxLDE0ICs1MSwxNCBAQCB2b2lk IHR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0 LAo+PiAgICAgICAgICBpZiAobGlzdF9lbXB0eShsaXN0KSkKPj4gICAgICAgICAgICAgICAgICBy ZXR1cm47Cj4+Cj4+IC0gICAgICAgc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ ICsgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ICAgICAgICAgIGxpc3Rf Zm9yX2VhY2hfZW50cnkoZW50cnksIGxpc3QsIGhlYWQpIHsKPj4gICAgICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gZW50cnktPmJvOwo+Pgo+PiAgICAgICAgICAg ICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCAmYm8tPm1lbSwgTlVMTCk7Cj4+ICAg ICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+PiAgICAgICAg ICB9Cj4+IC0gICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAg ICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pgo+PiAgICAgICAgICBpZiAo dGlja2V0KQo+PiAgICAgICAgICAgICAgICAgIHd3X2FjcXVpcmVfZmluaSh0aWNrZXQpOwo+PiBA QCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVj dCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAo+PiAgICAgICAgICBpZiAobGlzdF9lbXB0eShsaXN0 KSkKPj4gICAgICAgICAgICAgICAgICByZXR1cm47Cj4+Cj4+IC0gICAgICAgc3Bpbl9sb2NrKCZ0 dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVf bG9jayk7Cj4+ICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksIGxpc3QsIGhlYWQp IHsKPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gZW50 cnktPmJvOwo+Pgo+PiBAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgdHRtX2V1X2ZlbmNlX2J1ZmZl cl9vYmplY3RzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAo+PiAgICAgICAgICAgICAg ICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCAmYm8tPm1lbSwgTlVMTCk7Cj4+ICAgICAg ICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+PiAgICAgICAgICB9 Cj4+IC0gICAgICAgc3Bpbl91bmxvY2soJnR0bV9ib19nbG9iLmxydV9sb2NrKTsKPj4gKyAgICAg ICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+PiAgICAgICAgICBpZiAodGlja2V0 KQo+PiAgICAgICAgICAgICAgICAgIHd3X2FjcXVpcmVfZmluaSh0aWNrZXQpOwo+PiAgIH0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3JhbmdlX21hbmFnZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX3JhbmdlX21hbmFnZXIuYwo+PiBpbmRleCBhMzkzMDVmNzQy ZGEuLjcwN2U1YzE1Mjg5NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f cmFuZ2VfbWFuYWdlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3JhbmdlX21h bmFnZXIuYwo+PiBAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyB2b2lkIHR0bV9yYW5nZV9tYW5f ZnJlZShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPj4KPj4gICBzdGF0aWMgY29u c3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgdHRtX3JhbmdlX21hbmFnZXJfZnVu YzsKPj4KPj4gLWludCB0dG1fcmFuZ2VfbWFuX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCj4+ICtpbnQgdHRtX3JhbmdlX21hbl9pbml0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+ PiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0eXBlLCBib29sIHVzZV90dCwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwX3NpemUpCj4+ICAgewo+PiBA QCAtMTM4LDcgKzEzOCw3IEBAIGludCB0dG1fcmFuZ2VfbWFuX2luaXQoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCj4+ICAgfQo+PiAgIEVYUE9SVF9TWU1CT0wodHRtX3JhbmdlX21hbl9pbml0 KTsKPj4KPj4gLWludCB0dG1fcmFuZ2VfbWFuX2Zpbmkoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCj4+ICtpbnQgdHRtX3JhbmdlX21hbl9maW5pKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+ PiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0eXBlKQo+PiAgIHsKPj4gICAgICAg ICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJk ZXYsIHR5cGUpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmVzb3Vy Y2UuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Jlc291cmNlLmMKPj4gaW5kZXggYjYwNjk5 YmY0ODE2Li5lZDE2NzJhOWYzMzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX3Jlc291cmNlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmVzb3VyY2Uu Ywo+PiBAQCAtODMsNyArODMsNyBAQCBFWFBPUlRfU1lNQk9MKHR0bV9yZXNvdXJjZV9tYW5hZ2Vy X2luaXQpOwo+PiAgICAqIEV2aWN0IGFsbCB0aGUgb2JqZWN0cyBvdXQgb2YgYSBtZW1vcnkgbWFu YWdlciB1bnRpbCBpdCBpcyBlbXB0eS4KPj4gICAgKiBQYXJ0IG9mIG1lbW9yeSBtYW5hZ2VyIGNs ZWFudXAgc2VxdWVuY2UuCj4+ICAgICovCj4+IC1pbnQgdHRtX3Jlc291cmNlX21hbmFnZXJfZXZp Y3RfYWxsKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAraW50IHR0bV9yZXNvdXJjZV9t YW5hZ2VyX2V2aWN0X2FsbChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4p Cj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+PiBA QCAtOTEsNyArOTEsNyBAQCBpbnQgdHRtX3Jlc291cmNlX21hbmFnZXJfZXZpY3RfYWxsKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgIC5ub193YWl0X2dwdSA9 IGZhbHNlLAo+PiAgICAgICAgICAgICAgICAgIC5mb3JjZV9hbGxvYyA9IHRydWUKPj4gICAgICAg ICAgfTsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fYm9fZ2xv YjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fZ2xvYjsKPj4gICAg ICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4+ICAgICAgICAgIGludCByZXQ7Cj4+ICAg ICAgICAgIHVuc2lnbmVkIGk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV90dC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYwo+PiBpbmRleCA3Zjc1YTEzMTYz ZjAuLjc3ODJkNTM5M2M3YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f dHQuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4+IEBAIC00Myw3ICs0 Myw3IEBACj4+ICAgICovCj4+ICAgaW50IHR0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywgYm9vbCB6ZXJvX2FsbG9jKQo+PiAgIHsKPj4gLSAgICAgICBzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICAgICAgICAgIHVpbnQzMl90IHBhZ2VfZmxhZ3MgPSAwOwo+ Pgo+PiAgICAgICAgICBkbWFfcmVzdl9hc3NlcnRfaGVsZChiby0+YmFzZS5yZXN2KTsKPj4gQEAg LTY2LDcgKzY2LDcgQEAgaW50IHR0bV90dF9jcmVhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywgYm9vbCB6ZXJvX2FsbG9jKQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFM Owo+PiAgICAgICAgICB9Cj4+Cj4+IC0gICAgICAgYm8tPnR0bSA9IGJkZXYtPmRyaXZlci0+dHRt X3R0X2NyZWF0ZShibywgcGFnZV9mbGFncyk7Cj4+ICsgICAgICAgYm8tPnR0bSA9IGJkZXYtPmZ1 bmNzLT50dG1fdHRfY3JlYXRlKGJvLCBwYWdlX2ZsYWdzKTsKPj4gICAgICAgICAgaWYgKHVubGlr ZWx5KGJvLT50dG0gPT0gTlVMTCkpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07 Cj4+Cj4+IEBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGljIGludCB0dG1fc2dfdHRfYWxsb2NfcGFn ZV9kaXJlY3Rvcnkoc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgICAgICAgICByZXR1cm4gMDsKPj4g ICB9Cj4+Cj4+IC12b2lkIHR0bV90dF9kZXN0cm95X2NvbW1vbihzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiArdm9pZCB0dG1fdHRfZGVzdHJveV9jb21t b24oc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB7Cj4+ ICAgICAgICAgIHR0bV90dF91bnBvcHVsYXRlKGJkZXYsIHR0bSk7Cj4+Cj4+IEBAIC0xMTksOSAr MTE5LDkgQEAgdm9pZCB0dG1fdHRfZGVzdHJveV9jb21tb24oc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1f dHRfZGVzdHJveV9jb21tb24pOwo+Pgo+PiAtdm9pZCB0dG1fdHRfZGVzdHJveShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiArdm9pZCB0dG1fdHRfZGVz dHJveShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsK Pj4gLSAgICAgICBiZGV2LT5kcml2ZXItPnR0bV90dF9kZXN0cm95KGJkZXYsIHR0bSk7Cj4+ICsg ICAgICAgYmRldi0+ZnVuY3MtPnR0bV90dF9kZXN0cm95KGJkZXYsIHR0bSk7Cj4+ICAgfQo+Pgo+ PiAgIHN0YXRpYyB2b2lkIHR0bV90dF9pbml0X2ZpZWxkcyhzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4+ IEBAIC0yMjMsNyArMjIzLDcgQEAgaW50IHR0bV90dF9zd2FwaW4oc3RydWN0IHR0bV90dCAqdHRt KQo+PiAgICAgICAgICByZXR1cm4gcmV0Owo+PiAgIH0KPj4KPj4gLWludCB0dG1fdHRfc3dhcG91 dChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAraW50 IHR0bV90dF9zd2Fwb3V0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0 dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqc3dhcF9zcGFjZTsK Pj4gICAgICAgICAgc3RydWN0IGZpbGUgKnN3YXBfc3RvcmFnZTsKPj4gQEAgLTI3MSw3ICsyNzEs NyBAQCBpbnQgdHRtX3R0X3N3YXBvdXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVj dCB0dG1fdHQgKnR0bSkKPj4gICAgICAgICAgcmV0dXJuIHJldDsKPj4gICB9Cj4+Cj4+IC1zdGF0 aWMgdm9pZCB0dG1fdHRfYWRkX21hcHBpbmcoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0 cnVjdCB0dG1fdHQgKnR0bSkKPj4gK3N0YXRpYyB2b2lkIHR0bV90dF9hZGRfbWFwcGluZyhzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAg ICAgcGdvZmZfdCBpOwo+Pgo+PiBAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHR0bV90 dF9hZGRfbWFwcGluZyhzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAq dHRtKQo+PiAgICAgICAgICAgICAgICAgIHR0bS0+cGFnZXNbaV0tPm1hcHBpbmcgPSBiZGV2LT5k ZXZfbWFwcGluZzsKPj4gICB9Cj4+Cj4+IC1pbnQgdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+PiAraW50IHR0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4gICB7Cj4+ICAgICAgICAgIGludCByZXQ7Cj4+ IEBAIC0yOTMsOCArMjkzLDggQEAgaW50IHR0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwKPj4gICAgICAgICAgaWYgKHR0bV90dF9pc19wb3B1bGF0ZWQodHRtKSkKPj4g ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4KPj4gLSAgICAgICBpZiAoYmRldi0+ZHJpdmVy LT50dG1fdHRfcG9wdWxhdGUpCj4+IC0gICAgICAgICAgICAgICByZXQgPSBiZGV2LT5kcml2ZXIt PnR0bV90dF9wb3B1bGF0ZShiZGV2LCB0dG0sIGN0eCk7Cj4+ICsgICAgICAgaWYgKGJkZXYtPmZ1 bmNzLT50dG1fdHRfcG9wdWxhdGUpCj4+ICsgICAgICAgICAgICAgICByZXQgPSBiZGV2LT5mdW5j cy0+dHRtX3R0X3BvcHVsYXRlKGJkZXYsIHR0bSwgY3R4KTsKPj4gICAgICAgICAgZWxzZQo+PiAg ICAgICAgICAgICAgICAgIHJldCA9IHR0bV9wb29sX2FsbG9jKCZiZGV2LT5wb29sLCB0dG0sIGN0 eCk7Cj4+ICAgICAgICAgIGlmIChyZXQpCj4+IEBAIC0zMjgsMTUgKzMyOCwxNSBAQCBzdGF0aWMg dm9pZCB0dG1fdHRfY2xlYXJfbWFwcGluZyhzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgICAgICAg IH0KPj4gICB9Cj4+Cj4+IC12b2lkIHR0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiArdm9pZCB0dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAg IHsKPj4gICAgICAgICAgaWYgKCF0dG1fdHRfaXNfcG9wdWxhdGVkKHR0bSkpCj4+ICAgICAgICAg ICAgICAgICAgcmV0dXJuOwo+Pgo+PiAgICAgICAgICB0dG1fdHRfY2xlYXJfbWFwcGluZyh0dG0p Owo+PiAtICAgICAgIGlmIChiZGV2LT5kcml2ZXItPnR0bV90dF91bnBvcHVsYXRlKQo+PiAtICAg ICAgICAgICAgICAgYmRldi0+ZHJpdmVyLT50dG1fdHRfdW5wb3B1bGF0ZShiZGV2LCB0dG0pOwo+ PiArICAgICAgIGlmIChiZGV2LT5mdW5jcy0+dHRtX3R0X3VucG9wdWxhdGUpCj4+ICsgICAgICAg ICAgICAgICBiZGV2LT5mdW5jcy0+dHRtX3R0X3VucG9wdWxhdGUoYmRldiwgdHRtKTsKPj4gICAg ICAgICAgZWxzZQo+PiAgICAgICAgICAgICAgICAgIHR0bV9wb29sX2ZyZWUoJmJkZXYtPnBvb2ws IHR0bSk7Cj4+ICAgICAgICAgIHR0bS0+cGFnZV9mbGFncyAmPSB+VFRNX1BBR0VfRkxBR19QUklW X1BPUFVMQVRFRDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2JsaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYwo+PiBpbmRleCAx MThkYjI0ZWI3NTYuLjNhNDM4YWU0ZDNmNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfYmxpdC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2JsaXQuYwo+PiBAQCAtNDY2LDEzICs0NjYsMTMgQEAgaW50IHZtd19ib19jcHVfYmxpdChz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmRzdCwKPj4gICAgICAgICAgICAgICAgICBkbWFfcmVz dl9hc3NlcnRfaGVsZChzcmMtPmJhc2UucmVzdik7Cj4+Cj4+ICAgICAgICAgIGlmICghdHRtX3R0 X2lzX3BvcHVsYXRlZChkc3QtPnR0bSkpIHsKPj4gLSAgICAgICAgICAgICAgIHJldCA9IGRzdC0+ YmRldi0+ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUoZHN0LT5iZGV2LCBkc3QtPnR0bSwgJmN0eCk7 Cj4+ICsgICAgICAgICAgICAgICByZXQgPSBkc3QtPmJkZXYtPmZ1bmNzLT50dG1fdHRfcG9wdWxh dGUoZHN0LT5iZGV2LCBkc3QtPnR0bSwgJmN0eCk7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHJl dCkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICAgICAgICAgIH0K Pj4KPj4gICAgICAgICAgaWYgKCF0dG1fdHRfaXNfcG9wdWxhdGVkKHNyYy0+dHRtKSkgewo+PiAt ICAgICAgICAgICAgICAgcmV0ID0gc3JjLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZShz cmMtPmJkZXYsIHNyYy0+dHRtLCAmY3R4KTsKPj4gKyAgICAgICAgICAgICAgIHJldCA9IHNyYy0+ YmRldi0+ZnVuY3MtPnR0bV90dF9wb3B1bGF0ZShzcmMtPmJkZXYsIHNyYy0+dHRtLCAmY3R4KTsK Pj4gICAgICAgICAgICAgICAgICBpZiAocmV0KQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHJldDsKPj4gICAgICAgICAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMK Pj4gaW5kZXggYWIwODQ0YjQ3ZDRkLi42YjNiZmQ4YzY3OGEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfYm8uYwo+PiBAQCAtNTQ1LDcgKzU0NSw3IEBAIGludCB2bXdfYm9faW5pdChz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgICAgICAgICAgICAgICAgIHZvaWQgKCpi b19mcmVlKShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKSkKPj4gICB7Cj4+ICAgICAgICAg IHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGludGVycnVwdGlibGUsIGZhbHNlIH07 Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSAmZGV2X3ByaXYtPmJkZXY7 Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSAmZGV2X3ByaXYtPmJkZXY7Cj4+ ICAgICAgICAgIHNpemVfdCBhY2Nfc2l6ZTsKPj4gICAgICAgICAgaW50IHJldDsKPj4gICAgICAg ICAgYm9vbCB1c2VyID0gKGJvX2ZyZWUgPT0gJnZtd191c2VyX2JvX2Rlc3Ryb3kpOwo+PiBAQCAt MTA1OCw3ICsxMDU4LDcgQEAgaW50IHZtd191c2VyX2JvX3JlZmVyZW5jZShzdHJ1Y3QgdHRtX29i amVjdF9maWxlICp0ZmlsZSwKPj4gICB2b2lkIHZtd19ib19mZW5jZV9zaW5nbGUoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dm13X2ZlbmNlX29iaiAqZmVuY2UpCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYg PSBiby0+YmRldjsKPj4KPj4gICAgICAgICAgc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9 Cj4+ICAgICAgICAgICAgICAgICAgY29udGFpbmVyX29mKGJkZXYsIHN0cnVjdCB2bXdfcHJpdmF0 ZSwgYmRldik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCj4+IGluZGV4IGViOTk3 ZjQ2NzhkZS4uYjQ1NGQ4MGMyNzNlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9kcnYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuYwo+PiBAQCAtODg0LDEyICs4ODQsMTIgQEAgc3RhdGljIGludCB2bXdfZHJpdmVyX2xvYWQo c3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaV9pZCkKPj4gICAgICAgICAgZHJt X3ZtYV9vZmZzZXRfbWFuYWdlcl9pbml0KCZkZXZfcHJpdi0+dm1hX21hbmFnZXIsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fRklMRV9QQUdFX09GRlNFVF9TVEFS VCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9GSUxFX1BBR0Vf T0ZGU0VUX1NJWkUpOwo+PiAtICAgICAgIHJldCA9IHR0bV9ib19kZXZpY2VfaW5pdCgmZGV2X3By aXYtPmJkZXYsICZ2bXdfYm9fZHJpdmVyLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXZfcHJpdi0+ZHJtLmRldiwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGV2X3ByaXYtPmRybS5hbm9uX2lub2RlLT5pX21hcHBpbmcsCj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZkZXZfcHJpdi0+dm1hX21hbmFnZXIsCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT5tYXBfbW9kZSA9PSB2bXdfZG1hX2FsbG9j X2NvaGVyZW50LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7Cj4+ ICsgICAgICAgcmV0ID0gdHRtX2RldmljZV9pbml0KCZkZXZfcHJpdi0+YmRldiwgJnZtd19ib19k cml2ZXIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT5kcm0uZGV2 LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+ZHJtLmFub25faW5v ZGUtPmlfbWFwcGluZywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRldl9wcml2 LT52bWFfbWFuYWdlciwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2X3ByaXYt Pm1hcF9tb2RlID09IHZtd19kbWFfYWxsb2NfY29oZXJlbnQsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZhbHNlKTsKPj4gICAgICAgICAgaWYgKHVubGlrZWx5KHJldCAhPSAwKSkg ewo+PiAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiRmFpbGVkIGluaXRpYWxpemluZyBUVE0g YnVmZmVyIG9iamVjdCBkcml2ZXIuXG4iKTsKPj4gICAgICAgICAgICAgICAgICBnb3RvIG91dF9u b19iZGV2Owo+PiBAQCAtMTAwNiw3ICsxMDA2LDcgQEAgc3RhdGljIGludCB2bXdfZHJpdmVyX2xv YWQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaV9pZCkKPj4gICAgICAgICAg ICAgICAgICB2bXdfZ21yaWRfbWFuX2ZpbmkoZGV2X3ByaXYsIFZNV19QTF9HTVIpOwo+PiAgICAg ICAgICB2bXdfdnJhbV9tYW5hZ2VyX2ZpbmkoZGV2X3ByaXYpOwo+PiAgIG91dF9ub192cmFtOgo+ PiAtICAgICAgICh2b2lkKXR0bV9ib19kZXZpY2VfcmVsZWFzZSgmZGV2X3ByaXYtPmJkZXYpOwo+ PiArICAgICAgIHR0bV9kZXZpY2VfZmluaSgmZGV2X3ByaXYtPmJkZXYpOwo+PiAgIG91dF9ub19i ZGV2Ogo+PiAgICAgICAgICB2bXdfZmVuY2VfbWFuYWdlcl90YWtlZG93bihkZXZfcHJpdi0+Zm1h bik7Cj4+ICAgb3V0X25vX2ZtYW46Cj4+IEBAIC0xMDUzLDcgKzEwNTMsNyBAQCBzdGF0aWMgdm9p ZCB2bXdfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgICAgICAgICBp ZiAoZGV2X3ByaXYtPmhhc19tb2IpCj4+ICAgICAgICAgICAgICAgICAgdm13X2dtcmlkX21hbl9m aW5pKGRldl9wcml2LCBWTVdfUExfTU9CKTsKPj4gICAgICAgICAgdm13X3ZyYW1fbWFuYWdlcl9m aW5pKGRldl9wcml2KTsKPj4gLSAgICAgICAodm9pZCkgdHRtX2JvX2RldmljZV9yZWxlYXNlKCZk ZXZfcHJpdi0+YmRldik7Cj4+ICsgICAgICAgdHRtX2RldmljZV9maW5pKCZkZXZfcHJpdi0+YmRl dik7Cj4+ICAgICAgICAgIGRybV92bWFfb2Zmc2V0X21hbmFnZXJfZGVzdHJveSgmZGV2X3ByaXYt PnZtYV9tYW5hZ2VyKTsKPj4gICAgICAgICAgdm13X3JlbGVhc2VfZGV2aWNlX2xhdGUoZGV2X3By aXYpOwo+PiAgICAgICAgICB2bXdfZmVuY2VfbWFuYWdlcl90YWtlZG93bihkZXZfcHJpdi0+Zm1h bik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCj4+IGluZGV4IDMzNmY1MDg2Y2Ey Ni4uZTY1YjAwZjgzMzZkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAo+ PiBAQCAtNDg0LDcgKzQ4NCw3IEBAIGVudW0gdm13X3NtX3R5cGUgewo+Pgo+PiAgIHN0cnVjdCB2 bXdfcHJpdmF0ZSB7Cj4+ICAgICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlIGRybTsKPj4gLSAgICAg ICBzdHJ1Y3QgdHRtX2JvX2RldmljZSBiZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNl IGJkZXY7Cj4+Cj4+ICAgICAgICAgIHN0cnVjdCB2bXdfZmlmb19zdGF0ZSBmaWZvOwo+Pgo+PiBA QCAtOTk5LDcgKzk5OSw3IEBAIGV4dGVybiBzdHJ1Y3QgdHRtX3BsYWNlbWVudCB2bXdfZXZpY3Rh YmxlX3BsYWNlbWVudDsKPj4gICBleHRlcm4gc3RydWN0IHR0bV9wbGFjZW1lbnQgdm13X3NyZl9w bGFjZW1lbnQ7Cj4+ICAgZXh0ZXJuIHN0cnVjdCB0dG1fcGxhY2VtZW50IHZtd19tb2JfcGxhY2Vt ZW50Owo+PiAgIGV4dGVybiBzdHJ1Y3QgdHRtX3BsYWNlbWVudCB2bXdfbm9uZml4ZWRfcGxhY2Vt ZW50Owo+PiAtZXh0ZXJuIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHZtd19ib19kcml2ZXI7Cj4+ICtl eHRlcm4gc3RydWN0IHR0bV9kZXZpY2VfZnVuY3Mgdm13X2JvX2RyaXZlcjsKPj4gICBleHRlcm4g Y29uc3Qgc3RydWN0IHZtd19zZ190YWJsZSAqCj4+ICAgdm13X2JvX3NnX3RhYmxlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+PiAgIGV4dGVybiBpbnQgdm13X2JvX2NyZWF0ZV9hbmRf cG9wdWxhdGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCj4+IGluZGV4IGM0ZGY1MWEyYTkyNi4uYzNhNzI0ZTM3 MTA0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJj ZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKPj4g QEAgLTg1Niw3ICs4NTYsNyBAQCB2b2lkIHZtd19xdWVyeV9tb3ZlX25vdGlmeShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR0bV9yZXNvdXJjZSAqbWVtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHZtd19idWZmZXJf b2JqZWN0ICpkeF9xdWVyeV9tb2I7Cj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYgPSBiby0+YmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5i ZGV2Owo+PiAgICAgICAgICBzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2Owo+Pgo+Pgo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCj4+IGluZGV4IDZhNDQ1 NjdlNGJhNS4uZDFiZmE1OTU3OWYxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfdHRtX2J1ZmZlci5jCj4+IEBAIC00ODMsNyArNDgzLDcgQEAgY29uc3Qgc3RydWN0IHZt d19zZ190YWJsZSAqdm13X2JvX3NnX3RhYmxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8p Cj4+ICAgfQo+Pgo+Pgo+PiAtc3RhdGljIGludCB2bXdfdHRtX2JpbmQoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgaW50IHZtd190dG1fYmluZChzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwg c3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHZt d190dG1fdHQgKnZtd19iZSA9Cj4+IEBAIC01MjcsNyArNTI3LDcgQEAgc3RhdGljIGludCB2bXdf dHRtX2JpbmQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgIHJldHVybiBy ZXQ7Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHZvaWQgdm13X3R0bV91bmJpbmQoc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCB2bXdfdHRtX3VuYmluZChzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f dHQgKnR0bSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfYmUgPQo+ PiBAQCAtNTUzLDcgKzU1Myw3IEBAIHN0YXRpYyB2b2lkIHZtd190dG1fdW5iaW5kKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAgIH0KPj4KPj4KPj4gLXN0YXRpYyB2b2lkIHZtd190dG1f ZGVzdHJveShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKQo+ PiArc3RhdGljIHZvaWQgdm13X3R0bV9kZXN0cm95KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBz dHJ1Y3QgdHRtX3R0ICp0dG0pCj4+ICAgewo+PiAgICAgICAgICBzdHJ1Y3Qgdm13X3R0bV90dCAq dm13X2JlID0KPj4gICAgICAgICAgICAgICAgICBjb250YWluZXJfb2YodHRtLCBzdHJ1Y3Qgdm13 X3R0bV90dCwgZG1hX3R0bSk7Cj4+IEBAIC01NzMsNyArNTczLDcgQEAgc3RhdGljIHZvaWQgdm13 X3R0bV9kZXN0cm95KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0 dG0pCj4+ICAgfQo+Pgo+Pgo+PiAtc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LAo+PiArc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4+ICAgewo+PiAg ICAgICAgICAvKiBUT0RPOiBtYXliZSBjb21wbGV0ZWx5IGRyb3AgdGhpcyA/ICovCj4+IEBAIC01 ODMsNyArNTgzLDcgQEAgc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICByZXR1cm4gdHRtX3Bvb2xfYWxsb2MoJmJkZXYtPnBv b2wsIHR0bSwgY3R4KTsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCB2bXdfdHRtX3VucG9wdWxh dGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICtzdGF0aWMgdm9pZCB2bXdfdHRtX3Vu cG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR0bV90dCAqdHRtKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0 IHZtd190dG1fdHQgKnZtd190dCA9IGNvbnRhaW5lcl9vZih0dG0sIHN0cnVjdCB2bXdfdHRtX3R0 LAo+PiBAQCAtNjQwLDcgKzY0MCw3IEBAIHN0YXRpYyBpbnQgdm13X3ZlcmlmeV9hY2Nlc3Moc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IGZpbGUgKmZpbHApCj4+ICAgICAgICAg IHJldHVybiB2bXdfdXNlcl9ib192ZXJpZnlfYWNjZXNzKGJvLCB0ZmlsZSk7Cj4+ICAgfQo+Pgo+ PiAtc3RhdGljIGludCB2bXdfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4+ICtzdGF0aWMgaW50IHZtd190dG1f aW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgKm1lbSkKPj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYg PSBjb250YWluZXJfb2YoYmRldiwgc3RydWN0IHZtd19wcml2YXRlLCBiZGV2KTsKPj4KPj4gQEAg LTc0NCw3ICs3NDQsNyBAQCB2bXdfZGVsZXRlX21lbV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKPj4gICAgICAgICAgdm13X21vdmVfbm90aWZ5KGJvLCBmYWxzZSwgTlVMTCk7 Cj4+ICAgfQo+Pgo+PiAtc3RydWN0IHR0bV9ib19kcml2ZXIgdm13X2JvX2RyaXZlciA9IHsKPj4g K3N0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIHZtd19ib19kcml2ZXIgPSB7Cj4+ICAgICAgICAgIC50 dG1fdHRfY3JlYXRlID0gJnZtd190dG1fdHRfY3JlYXRlLAo+PiAgICAgICAgICAudHRtX3R0X3Bv cHVsYXRlID0gJnZtd190dG1fcG9wdWxhdGUsCj4+ICAgICAgICAgIC50dG1fdHRfdW5wb3B1bGF0 ZSA9ICZ2bXdfdHRtX3VucG9wdWxhdGUsCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f Z2VtX3ZyYW1faGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmgKPj4g aW5kZXggYTRiYWMwMjI0OWMyLi4yODgwNTVkMzk3ZDkgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUv ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuaAo+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fZ2VtX3Zy YW1faGVscGVyLmgKPj4gQEAgLTE3MiwxOSArMTcyLDE5IEBAIHN0cnVjdCBkcm1fdnJhbV9tbSB7 Cj4+ICAgICAgICAgIHVpbnQ2NF90IHZyYW1fYmFzZTsKPj4gICAgICAgICAgc2l6ZV90IHZyYW1f c2l6ZTsKPj4KPj4gLSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RldmljZSBiZGV2Owo+PiArICAgICAg IHN0cnVjdCB0dG1fZGV2aWNlIGJkZXY7Cj4+ICAgfTsKPj4KPj4gICAvKioKPj4gICAgKiBkcm1f dnJhbV9tbV9vZl9iZGV2KCkgLSBcCj4+IC0gICAgICAgUmV0dXJucyB0aGUgY29udGFpbmVyIG9m IHR5cGUgJnN0cnVjdCB0dG1fYm9fZGV2aWNlIGZvciBmaWVsZCBiZGV2Lgo+PiArICAgICAgIFJl dHVybnMgdGhlIGNvbnRhaW5lciBvZiB0eXBlICZzdHJ1Y3QgdHRtX2RldmljZSBmb3IgZmllbGQg YmRldi4KPj4gICAgKiBAYmRldjogICAgICB0aGUgVFRNIEJPIGRldmljZQo+PiAgICAqCj4+ICAg ICogUmV0dXJuczoKPj4gICAgKiBUaGUgY29udGFpbmluZyBpbnN0YW5jZSBvZiAmc3RydWN0IGRy bV92cmFtX21tCj4+ICAgICovCj4+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3ZyYW1fbW0g KmRybV92cmFtX21tX29mX2JkZXYoCj4+IC0gICAgICAgc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYpCj4+ICsgICAgICAgc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYpCj4+ICAgewo+PiAgICAgICAg ICByZXR1cm4gY29udGFpbmVyX29mKGJkZXYsIHN0cnVjdCBkcm1fdnJhbV9tbSwgYmRldik7Cj4+ ICAgfQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1 ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKPj4gaW5kZXggZTE3YmUzMjRkOTVmLi42MjczNGRiMGI0 MjEgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKPj4gKysrIGIv aW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+PiBAQCAtNDQsOSArNDQsOSBAQAo+Pgo+PiAg ICNpbmNsdWRlICJ0dG1fcmVzb3VyY2UuaCIKPj4KPj4gLXN0cnVjdCB0dG1fYm9fZ2xvYmFsOwo+ PiArc3RydWN0IHR0bV9nbG9iYWw7Cj4+Cj4+IC1zdHJ1Y3QgdHRtX2JvX2RldmljZTsKPj4gK3N0 cnVjdCB0dG1fZGV2aWNlOwo+Pgo+PiAgIHN0cnVjdCBkbWFfYnVmX21hcDsKPj4KPj4gQEAgLTEy Miw3ICsxMjIsNyBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qgewo+PiAgICAgICAgICAgKiBN ZW1iZXJzIGNvbnN0YW50IGF0IGluaXQuCj4+ICAgICAgICAgICAqLwo+Pgo+PiAtICAgICAgIHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2Owo+PiArICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2Owo+PiAgICAgICAgICBlbnVtIHR0bV9ib190eXBlIHR5cGU7Cj4+ICAgICAgICAgIHZvaWQg KCpkZXN0cm95KSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopOwo+PiAgICAgICAgICBzaXpl X3QgYWNjX3NpemU7Cj4+IEBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCB0dG1fYm9fcHV0KHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+PiAgICAqIEBidWxrOiBvcHRpb25hbCBidWxrIG1v dmUgc3RydWN0dXJlIHRvIHJlbWVtYmVyIEJPIHBvc2l0aW9ucwo+PiAgICAqCj4+ICAgICogTW92 ZSB0aGlzIEJPIHRvIHRoZSB0YWlsIG9mIGFsbCBscnUgbGlzdHMgdXNlZCB0byBsb29rdXAgYW5k IHJlc2VydmUgYW4KPj4gLSAqIG9iamVjdC4gVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3 aXRoIHN0cnVjdCB0dG1fYm9fZ2xvYmFsOjpscnVfbG9jawo+PiArICogb2JqZWN0LiBUaGlzIGZ1 bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdpdGggc3RydWN0IHR0bV9nbG9iYWw6OmxydV9sb2NrCj4+ ICAgICogaGVsZCwgYW5kIGlzIHVzZWQgdG8gbWFrZSBhIEJPIGxlc3MgbGlrZWx5IHRvIGJlIGNv bnNpZGVyZWQgZm9yIGV2aWN0aW9uLgo+PiAgICAqLwo+PiAgIHZvaWQgdHRtX2JvX21vdmVfdG9f bHJ1X3RhaWwoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gQEAgLTMyNiw3ICszMjYs NyBAQCB2b2lkIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4+ICAgICogQGJ1bGs6IGJ1bGsgbW92ZSBzdHJ1Y3R1cmUKPj4gICAgKgo+PiAgICAq IEJ1bGsgbW92ZSBCT3MgdG8gdGhlIExSVSB0YWlsLCBvbmx5IHZhbGlkIHRvIHVzZSB3aGVuIGRy aXZlciBtYWtlcyBzdXJlIHRoYXQKPj4gLSAqIEJPIG9yZGVyIG5ldmVyIGNoYW5nZXMuIFNob3Vs ZCBiZSBjYWxsZWQgd2l0aCB0dG1fYm9fZ2xvYmFsOjpscnVfbG9jayBoZWxkLgo+PiArICogQk8g b3JkZXIgbmV2ZXIgY2hhbmdlcy4gU2hvdWxkIGJlIGNhbGxlZCB3aXRoIHR0bV9nbG9iYWw6Omxy dV9sb2NrIGhlbGQuCj4+ICAgICovCj4+ICAgdm9pZCB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWls KHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVsayk7Cj4+Cj4+IEBAIC0zMzcsMTQgKzMzNywx NCBAQCB2b2lkIHR0bV9ib19idWxrX21vdmVfbHJ1X3RhaWwoc3RydWN0IHR0bV9scnVfYnVsa19t b3ZlICpidWxrKTsKPj4gICAgKiBSZXR1cm5zCj4+ICAgICogVHJ1ZSBpZiB0aGUgd29ya3F1ZXVl IHdhcyBxdWV1ZWQgYXQgdGhlIHRpbWUKPj4gICAgKi8KPj4gLWludCB0dG1fYm9fbG9ja19kZWxh eWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldik7Cj4+ICtpbnQgdHRtX2Jv X2xvY2tfZGVsYXllZF93b3JrcXVldWUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYpOwo+Pgo+PiAg IC8qKgo+PiAgICAqIHR0bV9ib191bmxvY2tfZGVsYXllZF93b3JrcXVldWUKPj4gICAgKgo+PiAg ICAqIEFsbG93cyB0aGUgZGVsYXllZCB3b3JrcXVldWUgdG8gcnVuLgo+PiAgICAqLwo+PiAtdm9p ZCB0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LCBpbnQgcmVzY2hlZCk7Cj4+ICt2b2lkIHR0bV9ib191bmxvY2tfZGVsYXllZF93b3JrcXVl dWUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIGludCByZXNjaGVkKTsKPj4KPj4gICAvKioKPj4g ICAgKiB0dG1fYm9fZXZpY3Rpb25fdmFsdWFibGUKPj4gQEAgLTM1NywxNCArMzU3LDE0IEBAIHZv aWQgdHRtX2JvX3VubG9ja19kZWxheWVkX3dvcmtxdWV1ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiwgaW50IHJlc2NoZWQpOwo+PiAgIGJvb2wgdHRtX2JvX2V2aWN0aW9uX3ZhbHVhYmxlKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSk7Cj4+Cj4+IC1zaXplX3QgdHRtX2Jv X2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gK3NpemVfdCB0dG1f Ym9fZG1hX2FjY19zaXplKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBib19zaXplLAo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgc3RydWN0X3NpemUpOwo+Pgo+PiAgIC8qKgo+PiAgICAqIHR0 bV9ib19pbml0X3Jlc2VydmVkCj4+ICAgICoKPj4gLSAqIEBiZGV2OiBQb2ludGVyIHRvIGEgdHRt X2JvX2RldmljZSBzdHJ1Y3QuCj4+ICsgKiBAYmRldjogUG9pbnRlciB0byBhIHR0bV9kZXZpY2Ug c3RydWN0Lgo+PiAgICAqIEBibzogUG9pbnRlciB0byBhIHR0bV9idWZmZXJfb2JqZWN0IHRvIGJl IGluaXRpYWxpemVkLgo+PiAgICAqIEBzaXplOiBSZXF1ZXN0ZWQgc2l6ZSBvZiBidWZmZXIgb2Jq ZWN0Lgo+PiAgICAqIEB0eXBlOiBSZXF1ZXN0ZWQgdHlwZSBvZiBidWZmZXIgb2JqZWN0Lgo+PiBA QCAtMzk2LDcgKzM5Niw3IEBAIHNpemVfdCB0dG1fYm9fZG1hX2FjY19zaXplKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+PiAgICAqIC1FUkVTVEFSVFNZUzogSW50ZXJydXB0ZWQgYnkgc2ln bmFsIHdoaWxlIHNsZWVwaW5nIHdhaXRpbmcgZm9yIHJlc291cmNlcy4KPj4gICAgKi8KPj4KPj4g LWludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4g K2ludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5 cGUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBs YWNlbWVudCwKPj4gQEAgLTQwOSw3ICs0MDksNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+ICAgLyoqCj4+ICAgICogdHRtX2JvX2luaXQK Pj4gICAgKgo+PiAtICogQGJkZXY6IFBvaW50ZXIgdG8gYSB0dG1fYm9fZGV2aWNlIHN0cnVjdC4K Pj4gKyAqIEBiZGV2OiBQb2ludGVyIHRvIGEgdHRtX2RldmljZSBzdHJ1Y3QuCj4+ICAgICogQGJv OiBQb2ludGVyIHRvIGEgdHRtX2J1ZmZlcl9vYmplY3QgdG8gYmUgaW5pdGlhbGl6ZWQuCj4+ICAg ICogQHNpemU6IFJlcXVlc3RlZCBzaXplIG9mIGJ1ZmZlciBvYmplY3QuCj4+ICAgICogQHR5cGU6 IFJlcXVlc3RlZCB0eXBlIG9mIGJ1ZmZlciBvYmplY3QuCj4+IEBAIC00NDMsNyArNDQzLDcgQEAg aW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAg ICAqIC1FSU5WQUw6IEludmFsaWQgcGxhY2VtZW50IGZsYWdzLgo+PiAgICAqIC1FUkVTVEFSVFNZ UzogSW50ZXJydXB0ZWQgYnkgc2lnbmFsIHdoaWxlIHNsZWVwaW5nIHdhaXRpbmcgZm9yIHJlc291 cmNlcy4KPj4gICAgKi8KPj4gLWludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gK2ludCB0dG1fYm9faW5pdChz dHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4g ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwgZW51bSB0dG1fYm9fdHlwZSB0eXBlLAo+PiAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCj4+ICAgICAg ICAgICAgICAgICAgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsIGJvb2wgaW50ZXJydWJ0aWJsZSwg c2l6ZV90IGFjY19zaXplLAo+PiBAQCAtNTM3LDE4ICs1MzcsMTggQEAgaW50IHR0bV9ib19tbWFw X29iaihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibyk7Cj4+ICAgICoKPj4gICAgKiBAZmlscDogICAgICBmaWxwIGFzIGlucHV0IGZyb20gdGhl IG1tYXAgbWV0aG9kLgo+PiAgICAqIEB2bWE6ICAgICAgIHZtYSBhcyBpbnB1dCBmcm9tIHRoZSBt bWFwIG1ldGhvZC4KPj4gLSAqIEBiZGV2OiAgICAgIFBvaW50ZXIgdG8gdGhlIHR0bV9ib19kZXZp Y2Ugd2l0aCB0aGUgYWRkcmVzcyBzcGFjZSBtYW5hZ2VyLgo+PiArICogQGJkZXY6ICAgICAgUG9p bnRlciB0byB0aGUgdHRtX2RldmljZSB3aXRoIHRoZSBhZGRyZXNzIHNwYWNlIG1hbmFnZXIuCj4+ ICAgICoKPj4gICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBieSB0 aGUgZGV2aWNlIG1tYXAgbWV0aG9kLgo+PiAgICAqIGlmIHRoZSBkZXZpY2UgYWRkcmVzcyBzcGFj ZSBpcyB0byBiZSBiYWNrZWQgYnkgdGhlIGJvIG1hbmFnZXIuCj4+ICAgICovCj4+ICAgaW50IHR0 bV9ib19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwK Pj4gLSAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KTsKPj4gKyAgICAg ICAgICAgICAgIHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2KTsKPj4KPj4gICAvKioKPj4gICAgKiB0 dG1fYm9faW8KPj4gICAgKgo+PiAtICogQGJkZXY6ICAgICAgUG9pbnRlciB0byB0aGUgc3RydWN0 IHR0bV9ib19kZXZpY2UuCj4+ICsgKiBAYmRldjogICAgICBQb2ludGVyIHRvIHRoZSBzdHJ1Y3Qg dHRtX2RldmljZS4KPj4gICAgKiBAZmlscDogICAgICBQb2ludGVyIHRvIHRoZSBzdHJ1Y3QgZmls ZSBhdHRlbXB0aW5nIHRvIHJlYWQgLyB3cml0ZS4KPj4gICAgKiBAd2J1ZjogICAgICBVc2VyLXNw YWNlIHBvaW50ZXIgdG8gYWRkcmVzcyBvZiBidWZmZXIgdG8gd3JpdGUuIE5VTEwgb24gcmVhZC4K Pj4gICAgKiBAcmJ1ZjogICAgICBVc2VyLXNwYWNlIHBvaW50ZXIgdG8gYWRkcmVzcyBvZiBidWZm ZXIgdG8gcmVhZCBpbnRvLgo+PiBAQCAtNTY1LDcgKzU2NSw3IEBAIGludCB0dG1fYm9fbW1hcChz dHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4+ICAgICogdGhl IGZ1bmN0aW9uIG1heSByZXR1cm4gLUVSRVNUQVJUU1lTIGlmCj4+ICAgICogaW50ZXJydXB0ZWQg YnkgYSBzaWduYWwuCj4+ICAgICovCj4+IC1zc2l6ZV90IHR0bV9ib19pbyhzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwgc3RydWN0IGZpbGUgKmZpbHAsCj4+ICtzc2l6ZV90IHR0bV9ib19pbyhz dHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IGZpbGUgKmZpbHAsCj4+ICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyIF9fdXNlciAqd2J1ZiwgY2hhciBfX3VzZXIgKnJidWYsCj4+ICAg ICAgICAgICAgICAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqZl9wb3MsIGJvb2wgd3JpdGUp Owo+Pgo+PiBAQCAtNjE3LDcgKzYxNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fYm9fdW5w aW4oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICAgICAgICAgLS1iby0+cGluX2Nv dW50Owo+PiAgIH0KPj4KPj4gLWludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+PiAraW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXIgKm1hbiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0 dG1fcGxhY2UgKnBsYWNlLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4ICpjdHgsCj4+IEBAIC02NDIsNSArNjQyLDYgQEAgdm9pZCB0dG1fYm9fdm1f Y2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwo+Pgo+PiAgIGludCB0dG1fYm9fdm1f YWNjZXNzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCj4+ ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpidWYsIGludCBsZW4sIGludCB3cml0ZSk7Cj4+ ICtib29sIHR0bV9ib19kZWxheWVkX2RlbGV0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgYm9v bCByZW1vdmVfYWxsKTsKPj4KPj4gICAjZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4+ IGluZGV4IDQyMzM0ODQxNGM1OS4uMWM5YmY5OTNlMjUyIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9f ZHJpdmVyLmgKPj4gQEAgLTM3LDMwMSArMzcsMTQgQEAKPj4gICAjaW5jbHVkZSA8bGludXgvc3Bp bmxvY2suaD4KPj4gICAjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KPj4KPj4gKyNpbmNsdWRl IDxkcm0vdHRtL3R0bV9kZXZpY2UuaD4KPj4gKwo+PiAgICNpbmNsdWRlICJ0dG1fYm9fYXBpLmgi Cj4+ICAgI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKPj4gICAjaW5jbHVkZSAidHRtX3BsYWNlbWVu dC5oIgo+PiAgICNpbmNsdWRlICJ0dG1fdHQuaCIKPj4gICAjaW5jbHVkZSAidHRtX3Bvb2wuaCIK Pj4KPj4gLS8qKgo+PiAtICogc3RydWN0IHR0bV9ib19kcml2ZXIKPj4gLSAqCj4+IC0gKiBAY3Jl YXRlX3R0bV9iYWNrZW5kX2VudHJ5OiBDYWxsYmFjayB0byBjcmVhdGUgYSBzdHJ1Y3QgdHRtX2Jh Y2tlbmQuCj4+IC0gKiBAZXZpY3RfZmxhZ3M6IENhbGxiYWNrIHRvIG9idGFpbiBwbGFjZW1lbnQg ZmxhZ3Mgd2hlbiBhIGJ1ZmZlciBpcyBldmljdGVkLgo+PiAtICogQG1vdmU6IENhbGxiYWNrIGZv ciBhIGRyaXZlciB0byBob29rIGluIGFjY2VsZXJhdGVkIGZ1bmN0aW9ucyB0bwo+PiAtICogbW92 ZSBhIGJ1ZmZlci4KPj4gLSAqIElmIHNldCB0byBOVUxMLCBhIHBvdGVudGlhbGx5IHNsb3cgbWVt Y3B5KCkgbW92ZSBpcyB1c2VkLgo+PiAtICovCj4+IC0KPj4gLXN0cnVjdCB0dG1fYm9fZHJpdmVy IHsKPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiB0dG1fdHRfY3JlYXRlCj4+IC0gICAgICAg ICoKPj4gLSAgICAgICAgKiBAYm86IFRoZSBidWZmZXIgb2JqZWN0IHRvIGNyZWF0ZSB0aGUgdHRt IGZvci4KPj4gLSAgICAgICAgKiBAcGFnZV9mbGFnczogUGFnZSBmbGFncyBhcyBpZGVudGlmaWVk IGJ5IFRUTV9QQUdFX0ZMQUdfWFggZmxhZ3MuCj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBD cmVhdGUgYSBzdHJ1Y3QgdHRtX3R0IHRvIGJhY2sgZGF0YSB3aXRoIHN5c3RlbSBtZW1vcnkgcGFn ZXMuCj4+IC0gICAgICAgICogTm8gcGFnZXMgYXJlIGFjdHVhbGx5IGFsbG9jYXRlZC4KPj4gLSAg ICAgICAgKiBSZXR1cm5zOgo+PiAtICAgICAgICAqIE5VTEw6IE91dCBvZiBtZW1vcnkuCj4+IC0g ICAgICAgICovCj4+IC0gICAgICAgc3RydWN0IHR0bV90dCAqKCp0dG1fdHRfY3JlYXRlKShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgcGFnZV9mbGFncyk7Cj4+IC0KPj4gLSAgICAgICAvKioKPj4g LSAgICAgICAgKiB0dG1fdHRfcG9wdWxhdGUKPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIEB0 dG06IFRoZSBzdHJ1Y3QgdHRtX3R0IHRvIGNvbnRhaW4gdGhlIGJhY2tpbmcgcGFnZXMuCj4+IC0g ICAgICAgICoKPj4gLSAgICAgICAgKiBBbGxvY2F0ZSBhbGwgYmFja2luZyBwYWdlcwo+PiAtICAg ICAgICAqIFJldHVybnM6Cj4+IC0gICAgICAgICogLUVOT01FTTogT3V0IG9mIG1lbW9yeS4KPj4g LSAgICAgICAgKi8KPj4gLSAgICAgICBpbnQgKCp0dG1fdHRfcG9wdWxhdGUpKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR0bV90dCAqdHRtLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0 bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICog dHRtX3R0X3VucG9wdWxhdGUKPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIEB0dG06IFRoZSBz dHJ1Y3QgdHRtX3R0IHRvIGNvbnRhaW4gdGhlIGJhY2tpbmcgcGFnZXMuCj4+IC0gICAgICAgICoK Pj4gLSAgICAgICAgKiBGcmVlIGFsbCBiYWNraW5nIHBhZ2UKPj4gLSAgICAgICAgKi8KPj4gLSAg ICAgICB2b2lkICgqdHRtX3R0X3VucG9wdWxhdGUpKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICog dHRtX3R0X2Rlc3Ryb3kKPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIEBiZGV2OiBQb2ludGVy IHRvIGEgdHRtIGRldmljZQo+PiAtICAgICAgICAqIEB0dG06IFBvaW50ZXIgdG8gYSBzdHJ1Y3Qg dHRtX3R0Lgo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogRGVzdHJveSB0aGUgYmFja2VuZC4g VGhpcyB3aWxsIGJlIGNhbGwgYmFjayBmcm9tIHR0bV90dF9kZXN0cm95IHNvCj4+IC0gICAgICAg ICogZG9uJ3QgY2FsbCB0dG1fdHRfZGVzdHJveSBmcm9tIHRoZSBjYWxsYmFjayBvciBpbmZpbml0 ZSBsb29wLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIHZvaWQgKCp0dG1fdHRfZGVzdHJveSko c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+IC0KPj4g LSAgICAgICAvKioKPj4gLSAgICAgICAgKiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBtZW1iZXIgZXZp Y3Rpb25fdmFsdWFibGUKPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIEBibzogdGhlIGJ1ZmZl ciBvYmplY3QgdG8gYmUgZXZpY3RlZAo+PiAtICAgICAgICAqIEBwbGFjZTogcGxhY2VtZW50IHdl IG5lZWQgcm9vbSBmb3IKPj4gLSAgICAgICAgKgo+PiAtICAgICAgICAqIENoZWNrIHdpdGggdGhl IGRyaXZlciBpZiBpdCBpcyB2YWx1YWJsZSB0byBldmljdCBhIEJPIHRvIG1ha2Ugcm9vbQo+PiAt ICAgICAgICAqIGZvciBhIGNlcnRhaW4gcGxhY2VtZW50Lgo+PiAtICAgICAgICAqLwo+PiAtICAg ICAgIGJvb2wgKCpldmljdGlvbl92YWx1YWJsZSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1f cGxhY2UgKnBsYWNlKTsKPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiBzdHJ1Y3QgdHRtX2Jv X2RyaXZlciBtZW1iZXIgZXZpY3RfZmxhZ3M6Cj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBA Ym86IHRoZSBidWZmZXIgb2JqZWN0IHRvIGJlIGV2aWN0ZWQKPj4gLSAgICAgICAgKgo+PiAtICAg ICAgICAqIFJldHVybiB0aGUgYm8gZmxhZ3MgZm9yIGEgYnVmZmVyIHdoaWNoIGlzIG5vdCBtYXBw ZWQgdG8gdGhlIGhhcmR3YXJlLgo+PiAtICAgICAgICAqIFRoZXNlIHdpbGwgYmUgcGxhY2VkIGlu IHByb3Bvc2VkX2ZsYWdzIHNvIHRoYXQgd2hlbiB0aGUgbW92ZSBpcwo+PiAtICAgICAgICAqIGZp bmlzaGVkLCB0aGV5J2xsIGVuZCB1cCBpbiBiby0+bWVtLmZsYWdzCj4+IC0gICAgICAgICogVGhp cyBzaG91bGQgbm90IGNhdXNlIG11bHRpaG9wIGV2aWN0aW9ucywgYW5kIHRoZSBjb3JlIHdpbGwg d2Fybgo+PiAtICAgICAgICAqIGlmIG9uZSBpcyBwcm9wb3NlZC4KPj4gLSAgICAgICAgKi8KPj4g LQo+PiAtICAgICAgIHZvaWQgKCpldmljdF9mbGFncykoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50 ICpwbGFjZW1lbnQpOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICogc3RydWN0IHR0 bV9ib19kcml2ZXIgbWVtYmVyIG1vdmU6Cj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBAYm86 IHRoZSBidWZmZXIgdG8gbW92ZQo+PiAtICAgICAgICAqIEBldmljdDogd2hldGhlciB0aGlzIG1v dGlvbiBpcyBldmljdGluZyB0aGUgYnVmZmVyIGZyb20KPj4gLSAgICAgICAgKiB0aGUgZ3JhcGhp Y3MgYWRkcmVzcyBzcGFjZQo+PiAtICAgICAgICAqIEBjdHg6IGNvbnRleHQgZm9yIHRoaXMgbW92 ZSB3aXRoIHBhcmFtZXRlcnMKPj4gLSAgICAgICAgKiBAbmV3X21lbTogdGhlIG5ldyBtZW1vcnkg cmVnaW9uIHJlY2VpdmluZyB0aGUgYnVmZmVyCj4+IC0gICAgICAgIEAgQGhvcDogcGxhY2VtZW50 IGZvciBkcml2ZXIgZGlyZWN0ZWQgaW50ZXJtZWRpYXRlIGhvcAo+PiAtICAgICAgICAqCj4+IC0g ICAgICAgICogTW92ZSBhIGJ1ZmZlciBiZXR3ZWVuIHR3byBtZW1vcnkgcmVnaW9ucy4KPj4gLSAg ICAgICAgKiBSZXR1cm5zIGVycm5vIC1FTVVMVElIT1AgaWYgZHJpdmVyIHJlcXVlc3RzIGEgaG9w Cj4+IC0gICAgICAgICovCj4+IC0gICAgICAgaW50ICgqbW92ZSkoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywgYm9vbCBldmljdCwKPj4gLSAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X29wZXJhdGlvbl9jdHggKmN0eCwKPj4gLSAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jl c291cmNlICpuZXdfbWVtLAo+PiAtICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2Ug KmhvcCk7Cj4+IC0KPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiBzdHJ1Y3QgdHRtX2JvX2Ry aXZlcl9tZW1iZXIgdmVyaWZ5X2FjY2Vzcwo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQGJv OiBQb2ludGVyIHRvIGEgYnVmZmVyIG9iamVjdC4KPj4gLSAgICAgICAgKiBAZmlscDogUG9pbnRl ciB0byBhIHN0cnVjdCBmaWxlIHRyeWluZyB0byBhY2Nlc3MgdGhlIG9iamVjdC4KPj4gLSAgICAg ICAgKgo+PiAtICAgICAgICAqIENhbGxlZCBmcm9tIHRoZSBtYXAgLyB3cml0ZSAvIHJlYWQgbWV0 aG9kcyB0byB2ZXJpZnkgdGhhdCB0aGUKPj4gLSAgICAgICAgKiBjYWxsZXIgaXMgcGVybWl0dGVk IHRvIGFjY2VzcyB0aGUgYnVmZmVyIG9iamVjdC4KPj4gLSAgICAgICAgKiBUaGlzIG1lbWJlciBt YXkgYmUgc2V0IHRvIE5VTEwsIHdoaWNoIHdpbGwgcmVmdXNlIHRoaXMga2luZCBvZgo+PiAtICAg ICAgICAqIGFjY2VzcyBmb3IgYWxsIGJ1ZmZlciBvYmplY3RzLgo+PiAtICAgICAgICAqIFRoaXMg ZnVuY3Rpb24gc2hvdWxkIHJldHVybiAwIGlmIGFjY2VzcyBpcyBncmFudGVkLCAtRVBFUk0gb3Ro ZXJ3aXNlLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIGludCAoKnZlcmlmeV9hY2Nlc3MpKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGZpbGUgKmZpbHApOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICog SG9vayB0byBub3RpZnkgZHJpdmVyIGFib3V0IGEgcmVzb3VyY2UgZGVsZXRlLgo+PiAtICAgICAg ICAqLwo+PiAtICAgICAgIHZvaWQgKCpkZWxldGVfbWVtX25vdGlmeSkoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibyk7Cj4+IC0KPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiBub3RpZnkg dGhlIGRyaXZlciB0aGF0IHdlJ3JlIGFib3V0IHRvIHN3YXAgb3V0IHRoaXMgYm8KPj4gLSAgICAg ICAgKi8KPj4gLSAgICAgICB2b2lkICgqc3dhcF9ub3RpZnkpKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8pOwo+PiAtCj4+IC0gICAgICAgLyoqCj4+IC0gICAgICAgICogRHJpdmVyIGNhbGxi YWNrIG9uIHdoZW4gbWFwcGluZyBpbyBtZW1vcnkgKGZvciBib19tb3ZlX21lbWNweQo+PiAtICAg ICAgICAqIGZvciBpbnN0YW5jZSkuIFRUTSB3aWxsIHRha2UgY2FyZSB0byBjYWxsIGlvX21lbV9m cmVlIHdoZW5ldmVyCj4+IC0gICAgICAgICogdGhlIG1hcHBpbmcgaXMgbm90IHVzZSBhbnltb3Jl LiBpb19tZW1fcmVzZXJ2ZSAmIGlvX21lbV9mcmVlCj4+IC0gICAgICAgICogYXJlIGJhbGFuY2Vk Lgo+PiAtICAgICAgICAqLwo+PiAtICAgICAgIGludCAoKmlvX21lbV9yZXNlcnZlKShzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPj4gLSAgICAgICB2b2lkICgqaW9fbWVtX2ZyZWUpKHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPj4gLQo+PiAtICAgICAgIC8qKgo+PiAtICAgICAg ICAqIFJldHVybiB0aGUgcGZuIGZvciBhIGdpdmVuIHBhZ2Vfb2Zmc2V0IGluc2lkZSB0aGUgQk8u Cj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBAYm86IHRoZSBCTyB0byBsb29rIHVwIHRoZSBw Zm4gZm9yCj4+IC0gICAgICAgICogQHBhZ2Vfb2Zmc2V0OiB0aGUgb2Zmc2V0IHRvIGxvb2sgdXAK Pj4gLSAgICAgICAgKi8KPj4gLSAgICAgICB1bnNpZ25lZCBsb25nICgqaW9fbWVtX3Bmbikoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBwYWdlX29mZnNldCk7Cj4+IC0KPj4gLSAgICAgICAvKioK Pj4gLSAgICAgICAgKiBSZWFkL3dyaXRlIG1lbW9yeSBidWZmZXJzIGZvciBwdHJhY2UgYWNjZXNz Cj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBAYm86IHRoZSBCTyB0byBhY2Nlc3MKPj4gLSAg ICAgICAgKiBAb2Zmc2V0OiB0aGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBCTwo+PiAt ICAgICAgICAqIEBidWY6IHBvaW50ZXIgdG8gc291cmNlL2Rlc3RpbmF0aW9uIGJ1ZmZlcgo+PiAt ICAgICAgICAqIEBsZW46IG51bWJlciBvZiBieXRlcyB0byBjb3B5Cj4+IC0gICAgICAgICogQHdy aXRlOiB3aGV0aGVyIHRvIHJlYWQgKDApIGZyb20gb3Igd3JpdGUgKG5vbi0wKSB0byBCTwo+PiAt ICAgICAgICAqCj4+IC0gICAgICAgICogSWYgc3VjY2Vzc2Z1bCwgdGhpcyBmdW5jdGlvbiBzaG91 bGQgcmV0dXJuIHRoZSBudW1iZXIgb2YKPj4gLSAgICAgICAgKiBieXRlcyBjb3BpZWQsIC1FSU8g b3RoZXJ3aXNlLiBJZiB0aGUgbnVtYmVyIG9mIGJ5dGVzCj4+IC0gICAgICAgICogcmV0dXJuZWQg aXMgPCBsZW4sIHRoZSBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFnYWluIHdpdGgKPj4gLSAgICAg ICAgKiB0aGUgcmVtYWluZGVyIG9mIHRoZSBidWZmZXIgdG8gY29weS4KPj4gLSAgICAgICAgKi8K Pj4gLSAgICAgICBpbnQgKCphY2Nlc3NfbWVtb3J5KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICpidWYsIGludCBsZW4sIGludCB3cml0ZSk7Cj4+IC0KPj4gLSAgICAgICAvKioKPj4g LSAgICAgICAgKiBzdHJ1Y3QgdHRtX2JvX2RyaXZlciBtZW1iZXIgZGVsX2Zyb21fbHJ1X25vdGlm eQo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICogQGJvOiB0aGUgYnVmZmVyIG9iamVjdCBkZWxl dGVkIGZyb20gbHJ1Cj4+IC0gICAgICAgICoKPj4gLSAgICAgICAgKiBub3RpZnkgZHJpdmVyIHRo YXQgYSBCTyB3YXMgZGVsZXRlZCBmcm9tIExSVS4KPj4gLSAgICAgICAgKi8KPj4gLSAgICAgICB2 b2lkICgqZGVsX2Zyb21fbHJ1X25vdGlmeSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7 Cj4+IC0KPj4gLSAgICAgICAvKioKPj4gLSAgICAgICAgKiBOb3RpZnkgdGhlIGRyaXZlciB0aGF0 IHdlJ3JlIGFib3V0IHRvIHJlbGVhc2UgYSBCTwo+PiAtICAgICAgICAqCj4+IC0gICAgICAgICog QGJvOiBCTyB0aGF0IGlzIGFib3V0IHRvIGJlIHJlbGVhc2VkCj4+IC0gICAgICAgICoKPj4gLSAg ICAgICAgKiBHaXZlcyB0aGUgZHJpdmVyIGEgY2hhbmNlIHRvIGRvIGFueSBjbGVhbnVwLCBpbmNs dWRpbmcKPj4gLSAgICAgICAgKiBhZGRpbmcgZmVuY2VzIHRoYXQgbWF5IGZvcmNlIGEgZGVsYXll ZCBkZWxldGUKPj4gLSAgICAgICAgKi8KPj4gLSAgICAgICB2b2lkICgqcmVsZWFzZV9ub3RpZnkp KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+PiAtfTsKPj4gLQo+PiAtLyoqCj4+IC0g KiBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAtIEJ1ZmZlciBvYmplY3QgZHJpdmVyIGdsb2JhbCBkYXRh Lgo+PiAtICoKPj4gLSAqIEBkdW1teV9yZWFkX3BhZ2U6IFBvaW50ZXIgdG8gYSBkdW1teSBwYWdl IHVzZWQgZm9yIG1hcHBpbmcgcmVxdWVzdHMKPj4gLSAqIG9mIHVucG9wdWxhdGVkIHBhZ2VzLgo+ PiAtICogQHNocmluazogQSBzaHJpbmsgY2FsbGJhY2sgb2JqZWN0IHVzZWQgZm9yIGJ1ZmZlciBv YmplY3Qgc3dhcC4KPj4gLSAqIEBkZXZpY2VfbGlzdF9tdXRleDogTXV0ZXggcHJvdGVjdGluZyB0 aGUgZGV2aWNlIGxpc3QuCj4+IC0gKiBUaGlzIG11dGV4IGlzIGhlbGQgd2hpbGUgdHJhdmVyc2lu ZyB0aGUgZGV2aWNlIGxpc3QgZm9yIHBtIG9wdGlvbnMuCj4+IC0gKiBAbHJ1X2xvY2s6IFNwaW5s b2NrIHByb3RlY3RpbmcgdGhlIGJvIHN1YnN5c3RlbSBscnUgbGlzdHMuCj4+IC0gKiBAZGV2aWNl X2xpc3Q6IExpc3Qgb2YgYnVmZmVyIG9iamVjdCBkZXZpY2VzLgo+PiAtICogQHN3YXBfbHJ1OiBM cnUgbGlzdCBvZiBidWZmZXIgb2JqZWN0cyB1c2VkIGZvciBzd2FwcGluZy4KPj4gLSAqLwo+PiAt Cj4+IC1leHRlcm4gc3RydWN0IHR0bV9ib19nbG9iYWwgewo+PiAtCj4+IC0gICAgICAgLyoqCj4+ IC0gICAgICAgICogQ29uc3RhbnQgYWZ0ZXIgaW5pdC4KPj4gLSAgICAgICAgKi8KPj4gLQo+PiAt ICAgICAgIHN0cnVjdCBrb2JqZWN0IGtvYmo7Cj4+IC0gICAgICAgc3RydWN0IHBhZ2UgKmR1bW15 X3JlYWRfcGFnZTsKPj4gLSAgICAgICBzcGlubG9ja190IGxydV9sb2NrOwo+PiAtCj4+IC0gICAg ICAgLyoqCj4+IC0gICAgICAgICogUHJvdGVjdGVkIGJ5IHR0bV9nbG9iYWxfbXV0ZXguCj4+IC0g ICAgICAgICovCj4+IC0gICAgICAgc3RydWN0IGxpc3RfaGVhZCBkZXZpY2VfbGlzdDsKPj4gLQo+ PiAtICAgICAgIC8qKgo+PiAtICAgICAgICAqIFByb3RlY3RlZCBieSB0aGUgbHJ1X2xvY2suCj4+ IC0gICAgICAgICovCj4+IC0gICAgICAgc3RydWN0IGxpc3RfaGVhZCBzd2FwX2xydVtUVE1fTUFY X0JPX1BSSU9SSVRZXTsKPj4gLQo+PiAtICAgICAgIC8qKgo+PiAtICAgICAgICAqIEludGVybmFs IHByb3RlY3Rpb24uCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgYXRvbWljX3QgYm9fY291bnQ7 Cj4+IC19IHR0bV9ib19nbG9iOwo+PiAtCj4+IC0KPj4gLSNkZWZpbmUgVFRNX05VTV9NRU1fVFlQ RVMgOAo+PiAtCj4+IC0vKioKPj4gLSAqIHN0cnVjdCB0dG1fYm9fZGV2aWNlIC0gQnVmZmVyIG9i amVjdCBkcml2ZXIgZGV2aWNlLXNwZWNpZmljIGRhdGEuCj4+IC0gKgo+PiAtICogQGRyaXZlcjog UG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHN0cnVjdCBzZXR1cCBieSB0aGUgZHJp dmVyLgo+PiAtICogQG1hbjogQW4gYXJyYXkgb2YgcmVzb3VyY2VfbWFuYWdlcnMuCj4+IC0gKiBA dm1hX21hbmFnZXI6IEFkZHJlc3Mgc3BhY2UgbWFuYWdlciAocG9pbnRlcikKPj4gLSAqIGxydV9s b2NrOiBTcGlubG9jayB0aGF0IHByb3RlY3RzIHRoZSBidWZmZXIrZGV2aWNlIGxydSBsaXN0cyBh bmQKPj4gLSAqIGRkZXN0cm95IGxpc3RzLgo+PiAtICogQGRldl9tYXBwaW5nOiBBIHBvaW50ZXIg dG8gdGhlIHN0cnVjdCBhZGRyZXNzX3NwYWNlIHJlcHJlc2VudGluZyB0aGUKPj4gLSAqIGRldmlj ZSBhZGRyZXNzIHNwYWNlLgo+PiAtICogQHdxOiBXb3JrIHF1ZXVlIHN0cnVjdHVyZSBmb3IgdGhl IGRlbGF5ZWQgZGVsZXRlIHdvcmtxdWV1ZS4KPj4gLSAqCj4+IC0gKi8KPj4gLQo+PiAtc3RydWN0 IHR0bV9ib19kZXZpY2Ugewo+PiAtCj4+IC0gICAgICAgLyoKPj4gLSAgICAgICAgKiBDb25zdGFu dCBhZnRlciBibyBkZXZpY2UgaW5pdCAvIGF0b21pYy4KPj4gLSAgICAgICAgKi8KPj4gLSAgICAg ICBzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0Owo+PiAtICAgICAgIHN0cnVjdCB0dG1fYm9f ZHJpdmVyICpkcml2ZXI7Cj4+IC0gICAgICAgLyoKPj4gLSAgICAgICAgKiBhY2Nlc3MgdmlhIHR0 bV9tYW5hZ2VyX3R5cGUuCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyIHN5c21hbjsKPj4gLSAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKm1hbl9kcnZbVFRNX05VTV9NRU1fVFlQRVNdOwo+PiAtICAgICAgIC8qCj4+IC0gICAgICAg ICogUHJvdGVjdGVkIGJ5IGludGVybmFsIGxvY2tzLgo+PiAtICAgICAgICAqLwo+PiAtICAgICAg IHN0cnVjdCBkcm1fdm1hX29mZnNldF9tYW5hZ2VyICp2bWFfbWFuYWdlcjsKPj4gLSAgICAgICBz dHJ1Y3QgdHRtX3Bvb2wgcG9vbDsKPj4gLQo+PiAtICAgICAgIC8qCj4+IC0gICAgICAgICogUHJv dGVjdGVkIGJ5IHRoZSBnbG9iYWw6bHJ1IGxvY2suCj4+IC0gICAgICAgICovCj4+IC0gICAgICAg c3RydWN0IGxpc3RfaGVhZCBkZGVzdHJveTsKPj4gLQo+PiAtICAgICAgIC8qCj4+IC0gICAgICAg ICogUHJvdGVjdGVkIGJ5IGxvYWQgLyBmaXJzdG9wZW4gLyBsYXN0Y2xvc2UgL3VubG9hZCBzeW5j Lgo+PiAtICAgICAgICAqLwo+PiAtCj4+IC0gICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmRl dl9tYXBwaW5nOwo+PiAtCj4+IC0gICAgICAgLyoKPj4gLSAgICAgICAgKiBJbnRlcm5hbCBwcm90 ZWN0aW9uLgo+PiAtICAgICAgICAqLwo+PiAtCj4+IC0gICAgICAgc3RydWN0IGRlbGF5ZWRfd29y ayB3cTsKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICp0dG1fbWFuYWdlcl90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgbWVtX3R5cGUpCj4+IC17Cj4+IC0gICAgICAgcmV0dXJuIGJkZXYtPm1hbl9kcnZbbWVt X3R5cGVdOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgaW5saW5lIHZvaWQgdHRtX3NldF9kcml2ZXJf bWFuYWdlcihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUsCj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuYWdl cikKPj4gLXsKPj4gLSAgICAgICBiZGV2LT5tYW5fZHJ2W3R5cGVdID0gbWFuYWdlcjsKPj4gLX0K Pj4gLQo+PiAgIC8qKgo+PiAgICAqIHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZV9wb3MKPj4gICAg Kgo+PiBAQCAtMzg4LDMxICsxMDEsNiBAQCBpbnQgdHRtX2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9y ZXNvdXJjZSAqbWVtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9vcGVyYXRp b25fY3R4ICpjdHgpOwo+Pgo+PiAtaW50IHR0bV9ib19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldik7Cj4+IC0KPj4gLS8qKgo+PiAtICogdHRtX2JvX2RldmljZV9pbml0 Cj4+IC0gKgo+PiAtICogQGJkZXY6IEEgcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYm9fZGV2aWNl IHRvIGluaXRpYWxpemUuCj4+IC0gKiBAZ2xvYjogQSBwb2ludGVyIHRvIGFuIGluaXRpYWxpemVk IHN0cnVjdCB0dG1fYm9fZ2xvYmFsLgo+PiAtICogQGRyaXZlcjogQSBwb2ludGVyIHRvIGEgc3Ry dWN0IHR0bV9ib19kcml2ZXIgc2V0IHVwIGJ5IHRoZSBjYWxsZXIuCj4+IC0gKiBAZGV2OiBUaGUg Y29yZSBrZXJuZWwgZGV2aWNlIHBvaW50ZXIgZm9yIERNQSBtYXBwaW5ncyBhbmQgYWxsb2NhdGlv bnMuCj4+IC0gKiBAbWFwcGluZzogVGhlIGFkZHJlc3Mgc3BhY2UgdG8gdXNlIGZvciB0aGlzIGJv Lgo+PiAtICogQHZtYV9tYW5hZ2VyOiBBIHBvaW50ZXIgdG8gYSB2bWEgbWFuYWdlci4KPj4gLSAq IEB1c2VfZG1hX2FsbG9jOiBJZiBjb2hlcmVudCBETUEgYWxsb2NhdGlvbiBBUEkgc2hvdWxkIGJl IHVzZWQuCj4+IC0gKiBAdXNlX2RtYTMyOiBJZiB3ZSBzaG91bGQgdXNlIEdGUF9ETUEzMiBmb3Ig ZGV2aWNlIG1lbW9yeSBhbGxvY2F0aW9ucy4KPj4gLSAqCj4+IC0gKiBJbml0aWFsaXplcyBhIHN0 cnVjdCB0dG1fYm9fZGV2aWNlOgo+PiAtICogUmV0dXJuczoKPj4gLSAqICEwOiBGYWlsdXJlLgo+ PiAtICovCj4+IC1pbnQgdHRtX2JvX2RldmljZV9pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2LAo+PiAtICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYm9fZHJpdmVyICpkcml2 ZXIsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2LAo+PiAtICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAo+PiAtICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fdm1hX29mZnNldF9tYW5hZ2VyICp2bWFfbWFu YWdlciwKPj4gLSAgICAgICAgICAgICAgICAgICAgICBib29sIHVzZV9kbWFfYWxsb2MsIGJvb2wg dXNlX2RtYTMyKTsKPj4gLQo+PiAgIC8qKgo+PiAgICAqIHR0bV9ib191bm1hcF92aXJ0dWFsCj4+ ICAgICoKPj4gQEAgLTQ5NCw5ICsxODIsOSBAQCBzdGF0aWMgaW5saW5lIGludCB0dG1fYm9fcmVz ZXJ2ZV9zbG93cGF0aChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgIHN0YXRpYyBp bmxpbmUgdm9pZAo+PiAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsX3VubG9ja2VkKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+ICAgewo+PiAtICAgICAgIHNwaW5fbG9jaygmdHRtX2Jv X2dsb2IubHJ1X2xvY2spOwo+PiArICAgICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2sp Owo+PiAgICAgICAgICB0dG1fYm9fbW92ZV90b19scnVfdGFpbChibywgJmJvLT5tZW0sIE5VTEwp Owo+PiAtICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7Cj4+ICsgICAg ICAgc3Bpbl91bmxvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGlj IGlubGluZSB2b2lkIHR0bV9ib19hc3NpZ25fbWVtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCj4+IEBAIC01MzgsOSArMjI2LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHR0bV9ib191bnJl c2VydmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4gICAvKgo+PiAgICAqIHR0bV9i b191dGlsLmMKPj4gICAgKi8KPj4gLWludCB0dG1fbWVtX2lvX3Jlc2VydmUoc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYsCj4+ICtpbnQgdHRtX21lbV9pb19yZXNlcnZlKHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNl ICptZW0pOwo+PiAtdm9pZCB0dG1fbWVtX2lvX2ZyZWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCj4+ICt2b2lkIHR0bV9tZW1faW9fZnJlZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4g ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4+Cj4+ICAg LyoqCj4+IEBAIC02MzEsNyArMzE5LDcgQEAgdm9pZCB0dG1fYm9fdHRfZGVzdHJveShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKPj4gICAgKiBJbml0aWFsaXNlIGEgZ2VuZXJpYyByYW5n ZSBtYW5hZ2VyIGZvciB0aGUgc2VsZWN0ZWQgbWVtb3J5IHR5cGUuCj4+ICAgICogVGhlIHJhbmdl IG1hbmFnZXIgaXMgaW5zdGFsbGVkIGZvciB0aGlzIGRldmljZSBpbiB0aGUgdHlwZSBzbG90Lgo+ PiAgICAqLwo+PiAtaW50IHR0bV9yYW5nZV9tYW5faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiwKPj4gK2ludCB0dG1fcmFuZ2VfbWFuX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYs Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHR5cGUsIGJvb2wgdXNlX3R0LAo+ PiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBfc2l6ZSk7Cj4+Cj4+IEBA IC02NDMsNyArMzMxLDcgQEAgaW50IHR0bV9yYW5nZV9tYW5faW5pdChzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwKPj4gICAgKgo+PiAgICAqIFJlbW92ZSB0aGUgZ2VuZXJpYyByYW5nZSBtYW5h Z2VyIGZyb20gYSBzbG90IGFuZCB0ZWFyIGl0IGRvd24uCj4+ICAgICovCj4+IC1pbnQgdHRtX3Jh bmdlX21hbl9maW5pKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+PiAraW50IHR0bV9yYW5n ZV9tYW5fZmluaShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgdHlwZSk7Cj4+Cj4+ICAgI2VuZGlmCj4+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS90dG0vdHRtX2RldmljZS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9kZXZpY2UuaAo+ PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjdiYzhiYjc5NzE2 MQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fZGV2aWNlLmgK Pj4gQEAgLTAsMCArMSwzMTkgQEAKPj4gKy8qCj4+ICsgKiBDb3B5cmlnaHQgMjAyMCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuCj4+ICsgKgo+PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPj4gKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4+ICsgKiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+PiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4+ICsgKgo+PiArICogVEhFIFNPRlRXQVJFIElTIFBS T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IK Pj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4+ICsgKiBUSEUg Q09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IKPj4gKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+PiArICogQVJJU0lORyBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4+ICsg KiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiArICogQXV0aG9yczog Q2hyaXN0aWFuIEvDtm5pZwo+PiArICovCj4+ICsKPj4gKyNpZm5kZWYgX1RUTV9ERVZJQ0VfSF8K Pj4gKyNkZWZpbmUgX1RUTV9ERVZJQ0VfSF8KPj4gKwo+PiArI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL3R0 bS90dG1fcmVzb3VyY2UuaD4KPj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wb29sLmg+Cj4+ICsK Pj4gKyNkZWZpbmUgVFRNX05VTV9NRU1fVFlQRVMgOAo+PiArCj4+ICtzdHJ1Y3QgdHRtX2Rldmlj ZTsKPj4gK3N0cnVjdCB0dG1fcGxhY2VtZW50Owo+PiArc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 Owo+PiArc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4Owo+PiArCj4+ICsvKioKPj4gKyAqIHN0cnVj dCB0dG1fZ2xvYmFsIC0gQnVmZmVyIG9iamVjdCBkcml2ZXIgZ2xvYmFsIGRhdGEuCj4+ICsgKgo+ PiArICogQGR1bW15X3JlYWRfcGFnZTogUG9pbnRlciB0byBhIGR1bW15IHBhZ2UgdXNlZCBmb3Ig bWFwcGluZyByZXF1ZXN0cwo+PiArICogb2YgdW5wb3B1bGF0ZWQgcGFnZXMuCj4+ICsgKiBAc2hy aW5rOiBBIHNocmluayBjYWxsYmFjayBvYmplY3QgdXNlZCBmb3IgYnVmZmVyIG9iamVjdCBzd2Fw Lgo+PiArICogQGRldmljZV9saXN0X211dGV4OiBNdXRleCBwcm90ZWN0aW5nIHRoZSBkZXZpY2Ug bGlzdC4KPj4gKyAqIFRoaXMgbXV0ZXggaXMgaGVsZCB3aGlsZSB0cmF2ZXJzaW5nIHRoZSBkZXZp Y2UgbGlzdCBmb3IgcG0gb3B0aW9ucy4KPj4gKyAqIEBscnVfbG9jazogU3BpbmxvY2sgcHJvdGVj dGluZyB0aGUgYm8gc3Vic3lzdGVtIGxydSBsaXN0cy4KPj4gKyAqIEBkZXZpY2VfbGlzdDogTGlz dCBvZiBidWZmZXIgb2JqZWN0IGRldmljZXMuCj4+ICsgKiBAc3dhcF9scnU6IExydSBsaXN0IG9m IGJ1ZmZlciBvYmplY3RzIHVzZWQgZm9yIHN3YXBwaW5nLgo+PiArICovCj4+ICtleHRlcm4gc3Ry dWN0IHR0bV9nbG9iYWwgewo+PiArCj4+ICsgICAgICAgLyoqCj4+ICsgICAgICAgICogQ29uc3Rh bnQgYWZ0ZXIgaW5pdC4KPj4gKyAgICAgICAgKi8KPj4gKwo+PiArICAgICAgIHN0cnVjdCBrb2Jq ZWN0IGtvYmo7Cj4+ICsgICAgICAgc3RydWN0IHBhZ2UgKmR1bW15X3JlYWRfcGFnZTsKPj4gKyAg ICAgICBzcGlubG9ja190IGxydV9sb2NrOwo+PiArCj4+ICsgICAgICAgLyoqCj4+ICsgICAgICAg ICogUHJvdGVjdGVkIGJ5IHR0bV9nbG9iYWxfbXV0ZXguCj4+ICsgICAgICAgICovCj4+ICsgICAg ICAgc3RydWN0IGxpc3RfaGVhZCBkZXZpY2VfbGlzdDsKPj4gKwo+PiArICAgICAgIC8qKgo+PiAr ICAgICAgICAqIFByb3RlY3RlZCBieSB0aGUgbHJ1X2xvY2suCj4+ICsgICAgICAgICovCj4+ICsg ICAgICAgc3RydWN0IGxpc3RfaGVhZCBzd2FwX2xydVtUVE1fTUFYX0JPX1BSSU9SSVRZXTsKPj4g Kwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIEludGVybmFsIHByb3RlY3Rpb24uCj4+ICsg ICAgICAgICovCj4+ICsgICAgICAgYXRvbWljX3QgYm9fY291bnQ7Cj4+ICt9IHR0bV9nbG9iOwo+ PiArCj4+ICtzdHJ1Y3QgdHRtX2RldmljZV9mdW5jcyB7Cj4+ICsgICAgICAgLyoqCj4+ICsgICAg ICAgICogdHRtX3R0X2NyZWF0ZQo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQGJvOiBUaGUg YnVmZmVyIG9iamVjdCB0byBjcmVhdGUgdGhlIHR0bSBmb3IuCj4+ICsgICAgICAgICogQHBhZ2Vf ZmxhZ3M6IFBhZ2UgZmxhZ3MgYXMgaWRlbnRpZmllZCBieSBUVE1fUEFHRV9GTEFHX1hYIGZsYWdz Lgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQ3JlYXRlIGEgc3RydWN0IHR0bV90dCB0byBi YWNrIGRhdGEgd2l0aCBzeXN0ZW0gbWVtb3J5IHBhZ2VzLgo+PiArICAgICAgICAqIE5vIHBhZ2Vz IGFyZSBhY3R1YWxseSBhbGxvY2F0ZWQuCj4+ICsgICAgICAgICogUmV0dXJuczoKPj4gKyAgICAg ICAgKiBOVUxMOiBPdXQgb2YgbWVtb3J5Lgo+PiArICAgICAgICAqLwo+PiArICAgICAgIHN0cnVj dCB0dG1fdHQgKigqdHRtX3R0X2NyZWF0ZSkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBhZ2Vf ZmxhZ3MpOwo+PiArCj4+ICsgICAgICAgLyoqCj4+ICsgICAgICAgICogdHRtX3R0X3BvcHVsYXRl Cj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBAdHRtOiBUaGUgc3RydWN0IHR0bV90dCB0byBj b250YWluIHRoZSBiYWNraW5nIHBhZ2VzLgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQWxs b2NhdGUgYWxsIGJhY2tpbmcgcGFnZXMKPj4gKyAgICAgICAgKiBSZXR1cm5zOgo+PiArICAgICAg ICAqIC1FTk9NRU06IE91dCBvZiBtZW1vcnkuCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgaW50 ICgqdHRtX3R0X3BvcHVsYXRlKShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKPj4gKwo+ PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIHR0bV90dF91bnBvcHVsYXRlCj4+ICsgICAgICAg ICoKPj4gKyAgICAgICAgKiBAdHRtOiBUaGUgc3RydWN0IHR0bV90dCB0byBjb250YWluIHRoZSBi YWNraW5nIHBhZ2VzLgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogRnJlZSBhbGwgYmFja2lu ZyBwYWdlCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgdm9pZCAoKnR0bV90dF91bnBvcHVsYXRl KShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAg ICAgKiB0dG1fdHRfZGVzdHJveQo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQGJkZXY6IFBv aW50ZXIgdG8gYSB0dG0gZGV2aWNlCj4+ICsgICAgICAgICogQHR0bTogUG9pbnRlciB0byBhIHN0 cnVjdCB0dG1fdHQuCj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBEZXN0cm95IHRoZSBiYWNr ZW5kLiBUaGlzIHdpbGwgYmUgY2FsbCBiYWNrIGZyb20gdHRtX3R0X2Rlc3Ryb3kgc28KPj4gKyAg ICAgICAgKiBkb24ndCBjYWxsIHR0bV90dF9kZXN0cm95IGZyb20gdGhlIGNhbGxiYWNrIG9yIGlu ZmluaXRlIGxvb3AuCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgdm9pZCAoKnR0bV90dF9kZXN0 cm95KShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4gKwo+ PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIHN0cnVjdCB0dG1fYm9fZHJpdmVyIG1lbWJlciBl dmljdGlvbl92YWx1YWJsZQo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQGJvOiB0aGUgYnVm ZmVyIG9iamVjdCB0byBiZSBldmljdGVkCj4+ICsgICAgICAgICogQHBsYWNlOiBwbGFjZW1lbnQg d2UgbmVlZCByb29tIGZvcgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogQ2hlY2sgd2l0aCB0 aGUgZHJpdmVyIGlmIGl0IGlzIHZhbHVhYmxlIHRvIGV2aWN0IGEgQk8gdG8gbWFrZSByb29tCj4+ ICsgICAgICAgICogZm9yIGEgY2VydGFpbiBwbGFjZW1lbnQuCj4+ICsgICAgICAgICovCj4+ICsg ICAgICAgYm9vbCAoKmV2aWN0aW9uX3ZhbHVhYmxlKShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0 bV9wbGFjZSAqcGxhY2UpOwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIHN0cnVjdCB0dG1f Ym9fZHJpdmVyIG1lbWJlciBldmljdF9mbGFnczoKPj4gKyAgICAgICAgKgo+PiArICAgICAgICAq IEBibzogdGhlIGJ1ZmZlciBvYmplY3QgdG8gYmUgZXZpY3RlZAo+PiArICAgICAgICAqCj4+ICsg ICAgICAgICogUmV0dXJuIHRoZSBibyBmbGFncyBmb3IgYSBidWZmZXIgd2hpY2ggaXMgbm90IG1h cHBlZCB0byB0aGUgaGFyZHdhcmUuCj4+ICsgICAgICAgICogVGhlc2Ugd2lsbCBiZSBwbGFjZWQg aW4gcHJvcG9zZWRfZmxhZ3Mgc28gdGhhdCB3aGVuIHRoZSBtb3ZlIGlzCj4+ICsgICAgICAgICog ZmluaXNoZWQsIHRoZXknbGwgZW5kIHVwIGluIGJvLT5tZW0uZmxhZ3MKPj4gKyAgICAgICAgKiBU aGlzIHNob3VsZCBub3QgY2F1c2UgbXVsdGlob3AgZXZpY3Rpb25zLCBhbmQgdGhlIGNvcmUgd2ls bCB3YXJuCj4+ICsgICAgICAgICogaWYgb25lIGlzIHByb3Bvc2VkLgo+PiArICAgICAgICAqLwo+ PiArCj4+ICsgICAgICAgdm9pZCAoKmV2aWN0X2ZsYWdzKShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9wbGFjZW1l bnQgKnBsYWNlbWVudCk7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAgICAgKiBzdHJ1Y3Qg dHRtX2JvX2RyaXZlciBtZW1iZXIgbW92ZToKPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIEBi bzogdGhlIGJ1ZmZlciB0byBtb3ZlCj4+ICsgICAgICAgICogQGV2aWN0OiB3aGV0aGVyIHRoaXMg bW90aW9uIGlzIGV2aWN0aW5nIHRoZSBidWZmZXIgZnJvbQo+PiArICAgICAgICAqIHRoZSBncmFw aGljcyBhZGRyZXNzIHNwYWNlCj4+ICsgICAgICAgICogQGN0eDogY29udGV4dCBmb3IgdGhpcyBt b3ZlIHdpdGggcGFyYW1ldGVycwo+PiArICAgICAgICAqIEBuZXdfbWVtOiB0aGUgbmV3IG1lbW9y eSByZWdpb24gcmVjZWl2aW5nIHRoZSBidWZmZXIKPj4gKyAgICAgICAgQCBAaG9wOiBwbGFjZW1l bnQgZm9yIGRyaXZlciBkaXJlY3RlZCBpbnRlcm1lZGlhdGUgaG9wCj4+ICsgICAgICAgICoKPj4g KyAgICAgICAgKiBNb3ZlIGEgYnVmZmVyIGJldHdlZW4gdHdvIG1lbW9yeSByZWdpb25zLgo+PiAr ICAgICAgICAqIFJldHVybnMgZXJybm8gLUVNVUxUSUhPUCBpZiBkcml2ZXIgcmVxdWVzdHMgYSBo b3AKPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBpbnQgKCptb3ZlKShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLCBib29sIGV2aWN0LAo+PiArICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+PiArICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKm5ld19tZW0sCj4+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9wbGFj ZSAqaG9wKTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIHN0cnVjdCB0dG1fYm9f ZHJpdmVyX21lbWJlciB2ZXJpZnlfYWNjZXNzCj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBA Ym86IFBvaW50ZXIgdG8gYSBidWZmZXIgb2JqZWN0Lgo+PiArICAgICAgICAqIEBmaWxwOiBQb2lu dGVyIHRvIGEgc3RydWN0IGZpbGUgdHJ5aW5nIHRvIGFjY2VzcyB0aGUgb2JqZWN0Lgo+PiArICAg ICAgICAqCj4+ICsgICAgICAgICogQ2FsbGVkIGZyb20gdGhlIG1hcCAvIHdyaXRlIC8gcmVhZCBt ZXRob2RzIHRvIHZlcmlmeSB0aGF0IHRoZQo+PiArICAgICAgICAqIGNhbGxlciBpcyBwZXJtaXR0 ZWQgdG8gYWNjZXNzIHRoZSBidWZmZXIgb2JqZWN0Lgo+PiArICAgICAgICAqIFRoaXMgbWVtYmVy IG1heSBiZSBzZXQgdG8gTlVMTCwgd2hpY2ggd2lsbCByZWZ1c2UgdGhpcyBraW5kIG9mCj4+ICsg ICAgICAgICogYWNjZXNzIGZvciBhbGwgYnVmZmVyIG9iamVjdHMuCj4+ICsgICAgICAgICogVGhp cyBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIDAgaWYgYWNjZXNzIGlzIGdyYW50ZWQsIC1FUEVSTSBv dGhlcndpc2UuCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgaW50ICgqdmVyaWZ5X2FjY2Vzcyko c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgZmlsZSAqZmlscCk7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAgICAg KiBIb29rIHRvIG5vdGlmeSBkcml2ZXIgYWJvdXQgYSByZXNvdXJjZSBkZWxldGUuCj4+ICsgICAg ICAgICovCj4+ICsgICAgICAgdm9pZCAoKmRlbGV0ZV9tZW1fbm90aWZ5KShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvKTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIG5vdGlm eSB0aGUgZHJpdmVyIHRoYXQgd2UncmUgYWJvdXQgdG8gc3dhcCBvdXQgdGhpcyBibwo+PiArICAg ICAgICAqLwo+PiArICAgICAgIHZvaWQgKCpzd2FwX25vdGlmeSkoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibyk7Cj4+ICsKPj4gKyAgICAgICAvKioKPj4gKyAgICAgICAgKiBEcml2ZXIgY2Fs bGJhY2sgb24gd2hlbiBtYXBwaW5nIGlvIG1lbW9yeSAoZm9yIGJvX21vdmVfbWVtY3B5Cj4+ICsg ICAgICAgICogZm9yIGluc3RhbmNlKS4gVFRNIHdpbGwgdGFrZSBjYXJlIHRvIGNhbGwgaW9fbWVt X2ZyZWUgd2hlbmV2ZXIKPj4gKyAgICAgICAgKiB0aGUgbWFwcGluZyBpcyBub3QgdXNlIGFueW1v cmUuIGlvX21lbV9yZXNlcnZlICYgaW9fbWVtX2ZyZWUKPj4gKyAgICAgICAgKiBhcmUgYmFsYW5j ZWQuCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgaW50ICgqaW9fbWVtX3Jlc2VydmUpKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+PiArICAgICAgIHZvaWQgKCppb19tZW1fZnJlZSkoc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+PiArCj4+ICsgICAgICAgLyoqCj4+ICsgICAgICAgICog UmV0dXJuIHRoZSBwZm4gZm9yIGEgZ2l2ZW4gcGFnZV9vZmZzZXQgaW5zaWRlIHRoZSBCTy4KPj4g KyAgICAgICAgKgo+PiArICAgICAgICAqIEBibzogdGhlIEJPIHRvIGxvb2sgdXAgdGhlIHBmbiBm b3IKPj4gKyAgICAgICAgKiBAcGFnZV9vZmZzZXQ6IHRoZSBvZmZzZXQgdG8gbG9vayB1cAo+PiAr ICAgICAgICAqLwo+PiArICAgICAgIHVuc2lnbmVkIGxvbmcgKCppb19tZW1fcGZuKShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0KTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiAr ICAgICAgICAqIFJlYWQvd3JpdGUgbWVtb3J5IGJ1ZmZlcnMgZm9yIHB0cmFjZSBhY2Nlc3MKPj4g KyAgICAgICAgKgo+PiArICAgICAgICAqIEBibzogdGhlIEJPIHRvIGFjY2Vzcwo+PiArICAgICAg ICAqIEBvZmZzZXQ6IHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIEJPCj4+ICsgICAg ICAgICogQGJ1ZjogcG9pbnRlciB0byBzb3VyY2UvZGVzdGluYXRpb24gYnVmZmVyCj4+ICsgICAg ICAgICogQGxlbjogbnVtYmVyIG9mIGJ5dGVzIHRvIGNvcHkKPj4gKyAgICAgICAgKiBAd3JpdGU6 IHdoZXRoZXIgdG8gcmVhZCAoMCkgZnJvbSBvciB3cml0ZSAobm9uLTApIHRvIEJPCj4+ICsgICAg ICAgICoKPj4gKyAgICAgICAgKiBJZiBzdWNjZXNzZnVsLCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBy ZXR1cm4gdGhlIG51bWJlciBvZgo+PiArICAgICAgICAqIGJ5dGVzIGNvcGllZCwgLUVJTyBvdGhl cndpc2UuIElmIHRoZSBudW1iZXIgb2YgYnl0ZXMKPj4gKyAgICAgICAgKiByZXR1cm5lZCBpcyA8 IGxlbiwgdGhlIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgYWdhaW4gd2l0aAo+PiArICAgICAgICAq IHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlciB0byBjb3B5Lgo+PiArICAgICAgICAqLwo+PiAr ICAgICAgIGludCAoKmFjY2Vzc19tZW1vcnkpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s IHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv aWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRlKTsKPj4gKwo+PiArICAgICAgIC8qKgo+PiArICAg ICAgICAqIHN0cnVjdCB0dG1fYm9fZHJpdmVyIG1lbWJlciBkZWxfZnJvbV9scnVfbm90aWZ5Cj4+ ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBAYm86IHRoZSBidWZmZXIgb2JqZWN0IGRlbGV0ZWQg ZnJvbSBscnUKPj4gKyAgICAgICAgKgo+PiArICAgICAgICAqIG5vdGlmeSBkcml2ZXIgdGhhdCBh IEJPIHdhcyBkZWxldGVkIGZyb20gTFJVLgo+PiArICAgICAgICAqLwo+PiArICAgICAgIHZvaWQg KCpkZWxfZnJvbV9scnVfbm90aWZ5KShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKPj4g Kwo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIE5vdGlmeSB0aGUgZHJpdmVyIHRoYXQgd2Un cmUgYWJvdXQgdG8gcmVsZWFzZSBhIEJPCj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBAYm86 IEJPIHRoYXQgaXMgYWJvdXQgdG8gYmUgcmVsZWFzZWQKPj4gKyAgICAgICAgKgo+PiArICAgICAg ICAqIEdpdmVzIHRoZSBkcml2ZXIgYSBjaGFuY2UgdG8gZG8gYW55IGNsZWFudXAsIGluY2x1ZGlu Zwo+PiArICAgICAgICAqIGFkZGluZyBmZW5jZXMgdGhhdCBtYXkgZm9yY2UgYSBkZWxheWVkIGRl bGV0ZQo+PiArICAgICAgICAqLwo+PiArICAgICAgIHZvaWQgKCpyZWxlYXNlX25vdGlmeSkoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4+ICt9Owo+PiArCj4+ICsvKioKPj4gKyAqIHN0 cnVjdCB0dG1fZGV2aWNlIC0gQnVmZmVyIG9iamVjdCBkcml2ZXIgZGV2aWNlLXNwZWNpZmljIGRh dGEuCj4+ICsgKgo+PiArICogQGRldmljZV9saXN0OiBPdXIgZW50cnkgaW4gdGhlIGdsb2JhbCBk ZXZpY2UgbGlzdC4KPj4gKyAqIEBmdW5jczogRnVuY3Rpb24gdGFibGUgZm9yIHRoZSBkZXZpY2Uu Cj4+ICsgKiBAc3lzbWFuOiBSZXNvdXJjZSBtYW5hZ2VyIGZvciB0aGUgc3lzdGVtIGRvbWFpbi4K Pj4gKyAqIEBtYW5fZHJ2OiBBbiBhcnJheSBvZiByZXNvdXJjZV9tYW5hZ2Vycy4KPj4gKyAqIEB2 bWFfbWFuYWdlcjogQWRkcmVzcyBzcGFjZSBtYW5hZ2VyLgo+PiArICogQHBvb2w6IHBhZ2UgcG9v bCBmb3IgdGhlIGRldmljZS4KPj4gKyAqIEBkZXZfbWFwcGluZzogQSBwb2ludGVyIHRvIHRoZSBz dHJ1Y3QgYWRkcmVzc19zcGFjZSByZXByZXNlbnRpbmcgdGhlCj4+ICsgKiBkZXZpY2UgYWRkcmVz cyBzcGFjZS4KPj4gKyAqIEB3cTogV29yayBxdWV1ZSBzdHJ1Y3R1cmUgZm9yIHRoZSBkZWxheWVk IGRlbGV0ZSB3b3JrcXVldWUuCj4+ICsgKi8KPj4gK3N0cnVjdCB0dG1fZGV2aWNlIHsKPj4gKyAg ICAgICAvKgo+PiArICAgICAgICAqIENvbnN0YW50IGFmdGVyIGJvIGRldmljZSBpbml0Cj4+ICsg ICAgICAgICovCj4+ICsgICAgICAgc3RydWN0IGxpc3RfaGVhZCBkZXZpY2VfbGlzdDsKPj4gKyAg ICAgICBzdHJ1Y3QgdHRtX2RldmljZV9mdW5jcyAqZnVuY3M7Cj4+ICsKPj4gKyAgICAgICAvKgo+ PiArICAgICAgICAqIEFjY2VzcyB2aWEgdHRtX21hbmFnZXJfdHlwZS4KPj4gKyAgICAgICAgKi8K Pj4gKyAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgc3lzbWFuOwo+PiArICAgICAg IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuX2RydltUVE1fTlVNX01FTV9UWVBFU107 Cj4+ICsKPj4gKyAgICAgICAvKgo+PiArICAgICAgICAqIFByb3RlY3RlZCBieSBpbnRlcm5hbCBs b2Nrcy4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbWFu YWdlciAqdm1hX21hbmFnZXI7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9wb29sIHBvb2w7Cj4+ICsK Pj4gKyAgICAgICAvKgo+PiArICAgICAgICAqIFByb3RlY3RlZCBieSB0aGUgZ2xvYmFsOmxydSBs b2NrLgo+PiArICAgICAgICAqLwo+PiArICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGRlc3Ryb3k7 Cj4+ICsKPj4gKyAgICAgICAvKgo+PiArICAgICAgICAqIFByb3RlY3RlZCBieSBsb2FkIC8gZmly c3RvcGVuIC8gbGFzdGNsb3NlIC91bmxvYWQgc3luYy4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAg ICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqZGV2X21hcHBpbmc7Cj4+ICsKPj4gKyAgICAgICAvKgo+ PiArICAgICAgICAqIEludGVybmFsIHByb3RlY3Rpb24uCj4+ICsgICAgICAgICovCj4+ICsgICAg ICAgc3RydWN0IGRlbGF5ZWRfd29yayB3cTsKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUg c3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICoKPj4gK3R0bV9tYW5hZ2VyX3R5cGUoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsIGludCBtZW1fdHlwZSkKPj4gK3sKPj4gKyAgICAgICByZXR1cm4g YmRldi0+bWFuX2RydlttZW1fdHlwZV07Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUgdm9p ZCB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBpbnQgdHlw ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW5hZ2VyKQo+PiArewo+PiArICAgICAgIGJkZXYtPm1hbl9k cnZbdHlwZV0gPSBtYW5hZ2VyOwo+PiArfQo+PiArCj4+ICtpbnQgdHRtX2RldmljZV9pbml0KHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2RldmljZV9mdW5jcyAqZnVuY3MsCj4+ ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywKPj4gKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZz ZXRfbWFuYWdlciAqdm1hX21hbmFnZXIsCj4+ICsgICAgICAgICAgICAgICAgICAgYm9vbCB1c2Vf ZG1hX2FsbG9jLCBib29sIHVzZV9kbWEzMik7Cj4+ICt2b2lkIHR0bV9kZXZpY2VfZmluaShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldik7Cj4+ICsKPj4gKyNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJj ZS5oCj4+IGluZGV4IGRhMGVkN2U4YzkxNS4uNjE2NGNjZjRmMzA4IDEwMDY0NAo+PiAtLS0gYS9p bmNsdWRlL2RybS90dG0vdHRtX3Jlc291cmNlLmgKPj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0 bV9yZXNvdXJjZS5oCj4+IEBAIC0zMyw3ICszMyw3IEBACj4+Cj4+ICAgI2RlZmluZSBUVE1fTUFY X0JPX1BSSU9SSVRZICAgIDRVCj4+Cj4+IC1zdHJ1Y3QgdHRtX2JvX2RldmljZTsKPj4gK3N0cnVj dCB0dG1fZGV2aWNlOwo+PiAgIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlcjsKPj4gICBzdHJ1 Y3QgdHRtX3Jlc291cmNlOwo+PiAgIHN0cnVjdCB0dG1fcGxhY2U7Cj4+IEBAIC0yMzMsNyArMjMz LDcgQEAgdm9pZCB0dG1fcmVzb3VyY2VfZnJlZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZXMpOwo+PiAgIHZvaWQgdHRtX3Jlc291cmNlX21hbmFn ZXJfaW5pdChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBfc2l6ZSk7Cj4+Cj4+IC1pbnQgdHRt X3Jlc291cmNlX21hbmFnZXJfZXZpY3RfYWxsKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ PiAraW50IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2V2aWN0X2FsbChzdHJ1Y3QgdHRtX2RldmljZSAq YmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyICptYW4pOwo+Pgo+PiAgIHZvaWQgdHRtX3Jlc291cmNlX21hbmFnZXJf ZGVidWcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4+IGRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS90dG0vdHRtX3R0LmggYi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKPj4gaW5k ZXggNmM4ZWI5YTRkZTgxLi4wMDIwYTA1ODg5ODUgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJt L3R0bS90dG1fdHQuaAo+PiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKPj4gQEAgLTEx OCwxNCArMTE4LDE0IEBAIHZvaWQgdHRtX3R0X2Zpbmkoc3RydWN0IHR0bV90dCAqdHRtKTsKPj4g ICAgKgo+PiAgICAqIFVuYmluZCwgdW5wb3B1bGF0ZSBhbmQgZGVzdHJveSBjb21tb24gc3RydWN0 IHR0bV90dC4KPj4gICAgKi8KPj4gLXZvaWQgdHRtX3R0X2Rlc3Ryb3koc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4+ICt2b2lkIHR0bV90dF9kZXN0cm95 KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+Pgo+PiAgIC8q Kgo+PiAgICAqIHR0bV90dF9kZXN0cm95X2NvbW1vbjoKPj4gICAgKgo+PiAgICAqIENhbGxlZCBm cm9tIGRyaXZlciB0byBkZXN0cm95IGNvbW1vbiBwYXRoLgo+PiAgICAqLwo+PiAtdm9pZCB0dG1f dHRfZGVzdHJveV9jb21tb24oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f dHQgKnR0bSk7Cj4+ICt2b2lkIHR0bV90dF9kZXN0cm95X2NvbW1vbihzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4KPj4gICAvKioKPj4gICAgKiB0dG1fdHRf c3dhcGluOgo+PiBAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgdHRtX3R0X2Rlc3Ryb3lfY29tbW9u KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiAgICAq IFN3YXAgaW4gYSBwcmV2aW91c2x5IHN3YXAgb3V0IHR0bV90dC4KPj4gICAgKi8KPj4gICBpbnQg dHRtX3R0X3N3YXBpbihzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiAtaW50IHR0bV90dF9zd2Fwb3V0 KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiAraW50 IHR0bV90dF9zd2Fwb3V0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0 dG0pOwo+Pgo+PiAgIC8qKgo+PiAgICAqIHR0bV90dF9wb3B1bGF0ZSAtIGFsbG9jYXRlIHBhZ2Vz IGZvciBhIHR0bQo+PiBAQCAtMTQ0LDcgKzE0NCw3IEBAIGludCB0dG1fdHRfc3dhcG91dChzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4gICAgKgo+PiAg ICAqIENhbGxzIHRoZSBkcml2ZXIgbWV0aG9kIHRvIGFsbG9jYXRlIHBhZ2VzIGZvciBhIHR0bQo+ PiAgICAqLwo+PiAtaW50IHR0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7Cj4+ ICtpbnQgdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRt X3R0ICp0dG0sIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKPj4KPj4gICAvKioKPj4g ICAgKiB0dG1fdHRfdW5wb3B1bGF0ZSAtIGZyZWUgcGFnZXMgZnJvbSBhIHR0bQo+PiBAQCAtMTUz LDcgKzE1Myw3IEBAIGludCB0dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vCj4+ICAgICoKPj4gICAgKiBDYWxs cyB0aGUgZHJpdmVyIG1ldGhvZCB0byBmcmVlIGFsbCBwYWdlcyBmcm9tIGEgdHRtCj4+ICAgICov Cj4+IC12b2lkIHR0bV90dF91bnBvcHVsYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBz dHJ1Y3QgdHRtX3R0ICp0dG0pOwo+PiArdm9pZCB0dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsKPj4KPj4gICAjaWYgSVNfRU5BQkxF RChDT05GSUdfQUdQKQo+PiAgICNpbmNsdWRlIDxsaW51eC9hZ3BfYmFja2VuZC5oPgo+PiAtLQo+ PiAyLjI1LjEKPj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==