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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, 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 0FC7FCA9EB9 for ; Wed, 23 Oct 2019 09:21:35 +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 E4CAA2084C for ; Wed, 23 Oct 2019 09:21:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E4CAA2084C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4920989176; Wed, 23 Oct 2019 09:21:34 +0000 (UTC) Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id E48D589176 for ; Wed, 23 Oct 2019 09:21:32 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id r1so11430820wrs.9 for ; Wed, 23 Oct 2019 02:21:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=hn8D9HlEsPbkhWg9lbIBIet9NkmHLPjuXeikJJ7gSrw=; b=n5tDAOY48Fu8dHMLalCy1ZtF3DO4Ft1Nwa86FFAUMxqyxwlVwhjDK334e1TyTawHhj YaRtnmvkn6coM5b6gLV5REamUXAtXLNOm/vh9zd9DrON08Z9tI2eG+xVHw0ZifEEjldE VOaZovpm7gIDdrBhrNzjQkPkuCDSS9lQYN5J3C+Gtu6T37yZ0NhLqMs5l9yQakYw7mkp JDdfknhym5FF4cRwUSZJoyBOWgcjamSt4nWwHNHQ9eC1AG2oSI9SSnh2HO5GLjm/4s11 gWm8Zgrj4sbj+HdeRqkzXY1uqxiOBeiTfdusNOK+MYiPzJeBCWUxXyJjcGq6gxFP5+jN KrAg== X-Gm-Message-State: APjAAAWLyzIz5v+VfS4sRY0OoP2TumY9+dh6yiKM73N56DWBduEQqOC1 5R3hqcOLdCFgJCrXsJsgRzTSkw== X-Google-Smtp-Source: APXvYqxdDqv5OQ1s2mqNxW7PHfRsCvksPP87xgwgwjbsBoLbkTSMPzWP19HgkayLkaPl15bCiIxvhA== X-Received: by 2002:a05:6000:118f:: with SMTP id g15mr4045292wrx.242.1571822490034; Wed, 23 Oct 2019 02:21:30 -0700 (PDT) Received: from phenom.ffwll.local (212-51-149-96.fiber7.init7.net. [212.51.149.96]) by smtp.gmail.com with ESMTPSA id d8sm7872047wrr.71.2019.10.23.02.21.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Oct 2019 02:21:29 -0700 (PDT) Date: Wed, 23 Oct 2019 11:21:27 +0200 From: Daniel Vetter To: Rajat Jain Subject: Re: [PATCH] drm: Add support for integrated privacy screens Message-ID: <20191023092127.GY11828@phenom.ffwll.local> Mail-Followup-To: Rajat Jain , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , Chris Wilson , Imre Deak , =?iso-8859-1?Q?Jos=E9?= Roberto de Souza , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, gregkh@linuxfoundation.org, mathewk@google.com, Daniel Thompson , Jonathan Corbet , Pavel Machek , seanpaul@google.com, Duncan Laurie , jsbarnes@google.com, rajatxjain@gmail.com References: <20191023001206.15741-1-rajatja@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191023001206.15741-1-rajatja@google.com> X-Operating-System: Linux phenom 5.2.0-2-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=hn8D9HlEsPbkhWg9lbIBIet9NkmHLPjuXeikJJ7gSrw=; b=STYENaT1GWt3vSQSzL+13on3OtnPcFf/5cKkTZFHx9/Ozl7Albnihj9Ka518G/6eek qIMRPL8mJYaaeIM1PfZz9uH1B5NCFzZDklq5tiETwmNE6HPcTNtTaxwN9K9DuFNQgYKj nJsc7rFhe4EbJ2OouUdAS4pQC0arh+zSCIkos= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: seanpaul@google.com, David Airlie , dri-devel@lists.freedesktop.org, Daniel Thompson , Jonathan Corbet , jsbarnes@google.com, rajatxjain@gmail.com, intel-gfx@lists.freedesktop.org, mathewk@google.com, Rodrigo Vivi , =?iso-8859-1?Q?Jos=E9?= Roberto de Souza , Sean Paul , Duncan Laurie , gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, Pavel Machek Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191023092127.RAzHBRq4f2T8zRRWO2vldrJOyVmAgwy80oU2C2vSvkQ@z> T24gVHVlLCBPY3QgMjIsIDIwMTkgYXQgMDU6MTI6MDZQTSAtMDcwMCwgUmFqYXQgSmFpbiB3cm90 ZToKPiBDZXJ0YWluIGxhcHRvcHMgbm93IGNvbWUgd2l0aCBwYW5lbHMgdGhhdCBoYXZlIGludGVn cmF0ZWQgcHJpdmFjeQo+IHNjcmVlbnMgb24gdGhlbS4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQg Zm9yIHN1Y2ggcGFuZWxzIGJ5IGFkZGluZwo+IGEgcHJpdmFjeS1zY3JlZW4gcHJvcGVydHkgdG8g dGhlIGRybV9jb25uZWN0b3IgZm9yIHRoZSBwYW5lbCwgdGhhdAo+IHRoZSB1c2Vyc3BhY2UgY2Fu IHRoZW4gdXNlIHRvIGNvbnRyb2wgYW5kIGNoZWNrIHRoZSBzdGF0dXMuIFRoZSBpZGVhCj4gd2Fz IGRpc2N1c3NlZCBoZXJlOgo+IAo+IGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE5LzEwLzEvNzg2 Cj4gCj4gQUNQSSBtZXRob2RzIGFyZSB1c2VkIHRvIGlkZW50aWZ5LCBxdWVyeSBhbmQgY29udHJv bCBwcml2YWN5IHNjcmVlbjoKPiAKPiAqIElkZW50aWZ5aW5nIGFuIEFDUEkgb2JqZWN0IGNvcnJl c3BvbmRpbmcgdG8gdGhlIHBhbmVsOiBUaGUgcGF0Y2gKPiBmb2xsb3dzIEFDUEkgU3BlYyA2LjMg KGF2YWlsYWJsZSBhdAo+IGh0dHBzOi8vdWVmaS5vcmcvc2l0ZXMvZGVmYXVsdC9maWxlcy9yZXNv dXJjZXMvQUNQSV82XzNfZmluYWxfSmFuMzAucGRmKS4KPiBQYWdlcyAxMTE5IC0gMTEyMyBkZXNj cmliZSB3aGF0IEkgYmVsaWV2ZSwgaXMgYSBzdGFuZGFyZCB3YXkgb2YKPiBpZGVudGlmeWluZyAv IGFkZHJlc3NpbmcgImRpc3BsYXkgcGFuZWxzIiBpbiB0aGUgQUNQSSB0YWJsZXMsIHRodXMKPiBh bGxvd2luZyBrZXJuZWwgdG8gYXR0YWNoIEFDUEkgbm9kZXMgdG8gdGhlIHBhbmVsLiBJTUhPLCB0 aGlzIGFiaWxpdHkKPiB0byBpZGVudGlmeSBhbmQgYXR0YWNoIEFDUEkgbm9kZXMgdG8gZHJtIGNv bm5lY3RvcnMgbWF5IGJlIHVzZWZ1bCBmb3IKPiByZWFzb25zIG90aGVyIHByaXZhY3ktc2NyZWVu cywgaW4gZnV0dXJlLgo+IAo+ICogSWRlbnRpZnlpbmcgdGhlIHByZXNlbmNlIG9mIHByaXZhY3kg c2NyZWVuLCBhbmQgY29udHJvbGxpbmcgaXQsIGlzIGRvbmUKPiB2aWEgQUNQSSBfRFNNIG1ldGhv ZHMuCj4gCj4gQ3VycmVudGx5LCB0aGlzIGlzIGRvbmUgb25seSBmb3IgdGhlIEludGVsIGRpc3Bs YXkgcG9ydHMuIEJ1dCBpbiBmdXR1cmUsCj4gdGhpcyBjYW4gYmUgZG9uZSBmb3IgYW55IG90aGVy IHBvcnRzIGlmIHRoZSBoYXJkd2FyZSBiZWNvbWVzIGF2YWlsYWJsZQo+IChlLmcuIGV4dGVybmFs IG1vbml0b3JzIHN1cHBvcnRpbmcgaW50ZWdyYXRlZCBwcml2YWN5IHNjcmVlbnM/KS4KPiAKPiBB bHNvLCB0aGlzIGNvZGUgY2FuIGJlIGV4dGVuZGVkIGluIGZ1dHVyZSB0byBzdXBwb3J0IG5vbi1B Q1BJIG1ldGhvZHMKPiAoZS5nLiB1c2luZyBhIGtlcm5lbCBHUElPIGRyaXZlciB0byB0b2dnbGUg YSBncGlvIHRoYXQgY29udHJvbHMgdGhlCj4gcHJpdmFjeS1zY3JlZW4pLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IFJhamF0IEphaW4gPHJhamF0amFAZ29vZ2xlLmNvbT4KCk5ldyBwcm9wZXJ0aWVzIG5l ZWQgcHJvcGVydHkgZG9jcyBpbiB0aGUgcmVsZXZhbnQgc2VjdGlvbjoKCmh0dHBzOi8vZHJpLmZy ZWVkZXNrdG9wLm9yZy9kb2NzL2RybS9ncHUvZHJtLWttcy5odG1sI2ttcy1wcm9wZXJ0aWVzCgok IG1ha2UgaHRtbGRvY3MKCmZvciBidWlsZGluZyB0aGVtIGxvY2FsbHkuCgpDaGVlcnMsIERhbmll bAoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgICAgIHwgICAx ICsKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jICAgICAgIHwgICA1ICsKPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAgIHwgIDM4ICsrKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fcHJpdmFjeV9zY3JlZW4uYyAgICB8IDE3NiArKysrKysrKysrKysr KysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIHwg ICAzICsKPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgICAgIHwgIDE4ICsr Kwo+ICBpbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCAgICAgICAgICAgfCAgIDcgKwo+ICBp bmNsdWRlL2RybS9kcm1fcHJpdmFjeV9zY3JlZW4uaCAgICAgICAgfCAgMzMgKysrKysKPiAgOCBm aWxlcyBjaGFuZ2VkLCAyODEgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2RybV9wcml2YWN5X3NjcmVlbi5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBp bmNsdWRlL2RybS9kcm1fcHJpdmFjeV9zY3JlZW4uaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiBpbmRleCA4MmZm ODI2YjMzY2MuLmUxZmMzM2Q2OWJiNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiBAQCAtMTksNiArMTksNyBA QCBkcm0teSAgICAgICA6PQlkcm1fYXV0aC5vIGRybV9jYWNoZS5vIFwKPiAgCQlkcm1fc3luY29i ai5vIGRybV9sZWFzZS5vIGRybV93cml0ZWJhY2subyBkcm1fY2xpZW50Lm8gXAo+ICAJCWRybV9j bGllbnRfbW9kZXNldC5vIGRybV9hdG9taWNfdWFwaS5vIGRybV9oZGNwLm8KPiAgCj4gK2RybS0k KENPTkZJR19BQ1BJKSArPSBkcm1fcHJpdmFjeV9zY3JlZW4ubwo+ICBkcm0tJChDT05GSUdfRFJN X0xFR0FDWSkgKz0gZHJtX2xlZ2FjeV9taXNjLm8gZHJtX2J1ZnMubyBkcm1fY29udGV4dC5vIGRy bV9kbWEubyBkcm1fc2NhdHRlci5vIGRybV9sb2NrLm8KPiAgZHJtLSQoQ09ORklHX0RSTV9MSUJf UkFORE9NKSArPSBsaWIvZHJtX3JhbmRvbS5vCj4gIGRybS0kKENPTkZJR19EUk1fVk0pICs9IGRy bV92bS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+IGluZGV4IDdhMjZiZmI1MzI5Yy4u NDQxMzExNjVlNGVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3Vh cGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+IEBAIC0zMCw2 ICszMCw3IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgo+ICAjaW5jbHVkZSA8ZHJt L2RybV9wcmludC5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KPiArI2luY2x1ZGUgPGRy bS9kcm1fcHJpdmFjeV9zY3JlZW4uaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fd3JpdGViYWNrLmg+ Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgo+ICAKPiBAQCAtNzY2LDYgKzc2Nyw4IEBA IHN0YXRpYyBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkJCSAgIGZlbmNlX3B0cik7Cj4gIAl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+bWF4X2JwY19wcm9wZXJ0eSkgewo+ICAJCXN0YXRl LT5tYXhfcmVxdWVzdGVkX2JwYyA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29u ZmlnLT5wcml2YWN5X3NjcmVlbl9wcm9wZXJ0eSkgewo+ICsJCWRybV9wcml2YWN5X3NjcmVlbl9z ZXRfdmFsKGNvbm5lY3RvciwgdmFsKTsKPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+ YXRvbWljX3NldF9wcm9wZXJ0eSkgewo+ICAJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9t aWNfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsK PiBAQCAtODQyLDYgKzg0NSw4IEBAIGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCSp2YWwgPSAwOwo+ICAJfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPm1heF9icGNfcHJvcGVydHkpIHsKPiAgCQkqdmFs ID0gc3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBj b25maWctPnByaXZhY3lfc2NyZWVuX3Byb3BlcnR5KSB7Cj4gKwkJKnZhbCA9IGRybV9wcml2YWN5 X3NjcmVlbl9nZXRfdmFsKGNvbm5lY3Rvcik7Cj4gIAl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ZnVu Y3MtPmF0b21pY19nZXRfcHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+ YXRvbWljX2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCj4gIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZh bCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gaW5kZXggNGM3NjY2MjRiMjBkLi5hMzFlMDM4 MjEzMmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiBAQCAtODIxLDYgKzgyMSwxMSBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBkcm1fcGFuZWxfb3JpZW50 YXRpb25fZW51bV9saXN0W10gPSB7Cj4gIAl7IERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1JJ R0hUX1VQLAkiUmlnaHQgU2lkZSBVcCIJfSwKPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3Byb3BfZW51bV9saXN0IGRybV9wcml2YWN5X3NjcmVlbl9lbnVtX2xpc3RbXSA9IHsK PiArCXsgRFJNX1BSSVZBQ1lfU0NSRUVOX0RJU0FCTEVELCAiRGlzYWJsZWQiIH0sCj4gKwl7IERS TV9QUklWQUNZX1NDUkVFTl9FTkFCTEVELCAiRW5hYmxlZCIgfSwKPiArfTsKPiArCj4gIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IGRybV9kdmlfaV9zZWxlY3RfZW51bV9s aXN0W10gPSB7Cj4gIAl7IERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9BdXRvbWF0aWMsICJBdXRvbWF0 aWMiIH0sIC8qIERWSS1JIGFuZCBUVi1vdXQgKi8KPiAgCXsgRFJNX01PREVfU1VCQ09OTkVDVE9S X0RWSUQsICAgICAgIkRWSS1EIiAgICAgfSwgLyogRFZJLUkgICovCj4gQEAgLTIyNTMsNiArMjI1 OCwzOSBAQCBzdGF0aWMgdm9pZCBkcm1fdGlsZV9ncm91cF9mcmVlKHN0cnVjdCBrcmVmICprcmVm KQo+ICAJa2ZyZWUodGcpOwo+ICB9Cj4gIAo+ICsvKioKPiArICogZHJtX2Nvbm5lY3Rvcl9pbml0 X3ByaXZhY3lfc2NyZWVuX3Byb3BlcnR5IC0KPiArICoJY3JlYXRlIGFuZCBhdHRhY2ggdGhlIGNv bm5lY3RlcidzIHByaXZhY3ktc2NyZWVuIHByb3BlcnR5Lgo+ICsgKiBAY29ubmVjdG9yOiBjb25u ZWN0b3IgZm9yIHdoaWNoIHRvIGluaXQgdGhlIHByaXZhY3ktc2NyZWVuIHByb3BlcnR5Lgo+ICsg Kgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYW5kIGF0dGFjaGVzIHRoZSAicHJpdmFjeS1z Y3JlZW4iIHByb3BlcnR5IHRvIHRoZQo+ICsgKiBjb25uZWN0b3IuIEluaXRpYWwgc3RhdGUgb2Yg cHJpdmFjeS1zY3JlZW4gaXMgc2V0IHRvIGRpc2FibGVkLgo+ICsgKgo+ICsgKiBSZXR1cm5zOgo+ ICsgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCj4gKyAqLwo+ ICtpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0X3ByaXZhY3lfc2NyZWVuX3Byb3BlcnR5KHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjb25uZWN0b3ItPmRldjsKPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gKwo+ICsJ cHJvcCA9IGRldi0+bW9kZV9jb25maWcucHJpdmFjeV9zY3JlZW5fcHJvcGVydHk7Cj4gKwlpZiAo IXByb3ApIHsKPiArCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgRFJNX01P REVfUFJPUF9FTlVNLAo+ICsJCQkJInByaXZhY3ktc2NyZWVuIiwgZHJtX3ByaXZhY3lfc2NyZWVu X2VudW1fbGlzdCwKPiArCQkJCUFSUkFZX1NJWkUoZHJtX3ByaXZhY3lfc2NyZWVuX2VudW1fbGlz dCkpOwo+ICsJCWlmICghcHJvcCkKPiArCQkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJCWRldi0+ bW9kZV9jb25maWcucHJpdmFjeV9zY3JlZW5fcHJvcGVydHkgPSBwcm9wOwo+ICsJfQo+ICsKPiAr CWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsIHByb3AsCj4gKwkJ CQkgICBEUk1fUFJJVkFDWV9TQ1JFRU5fRElTQUJMRUQpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr RVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX2luaXRfcHJpdmFjeV9zY3JlZW5fcHJvcGVydHkp Owo+ICsKPiAgLyoqCj4gICAqIGRybV9tb2RlX3B1dF90aWxlX2dyb3VwIC0gZHJvcCBhIHJlZmVy ZW5jZSB0byBhIHRpbGUgZ3JvdXAuCj4gICAqIEBkZXY6IERSTSBkZXZpY2UKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcml2YWN5X3NjcmVlbi5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9wcml2YWN5X3NjcmVlbi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw MDAwMDAwMDAuLjFkNjhlOGFhNmM1Zgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX3ByaXZhY3lfc2NyZWVuLmMKPiBAQCAtMCwwICsxLDE3NiBAQAo+ICsvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgo+ICsvKgo+ICsgKiBEUk0gcHJp dmFjeSBTY3JlZW4gY29kZQo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBHb29nbGUgSW5j Lgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Cj4gKyNpbmNsdWRlIDxsaW51 eC9wY2kuaD4KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgo+ICsjaW5jbHVk ZSA8ZHJtL2RybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KPiArCj4g KyNkZWZpbmUgRFJNX0NPTk5fRFNNX1JFVklEIDEKPiArCj4gKyNkZWZpbmUgRFJNX0NPTk5fRFNN X0ZOX1BSSVZBQ1lfR0VUX1NUQVRVUwkxCj4gKyNkZWZpbmUgRFJNX0NPTk5fRFNNX0ZOX1BSSVZB Q1lfRU5BQkxFCQkyCj4gKyNkZWZpbmUgRFJNX0NPTk5fRFNNX0ZOX1BSSVZBQ1lfRElTQUJMRQkJ Mwo+ICsKPiArc3RhdGljIGNvbnN0IGd1aWRfdCBkcm1fY29ubl9kc21fZ3VpZCA9Cj4gKwlHVUlE X0lOSVQoMHhDNzAzMzExMywgMHg4NzIwLCAweDRDRUIsCj4gKwkJICAweDkwLCAweDkwLCAweDlE LCAweDUyLCAweEIzLCAweEU1LCAweDJELCAweDczKTsKPiArCj4gKy8qCj4gKyAqIE1ha2VzIF9E U00gY2FsbCB0byBzZXQgcHJpdmFjeSBzY3JlZW4gc3RhdHVzIG9yIGdldCBwcml2YWN5IHNjcmVl bi4gUmV0dXJuCj4gKyAqIHZhbHVlIG1hdHRlcnMgb25seSBmb3IgUFJJVkFDWV9HRVRfU1RBVFVT IGNhc2UuIFJldHVybnMgMCBpZiBkaXNhYmxlZCwgMSBpZgo+ICsgKiBlbmFibGVkLgo+ICsgKi8K PiArc3RhdGljIGludCBhY3BpX3ByaXZhY3lfc2NyZWVuX2NhbGxfZHNtKGFjcGlfaGFuZGxlIGNv bm5faGFuZGxlLCB1NjQgZnVuYykKPiArewo+ICsJdW5pb24gYWNwaV9vYmplY3QgKm9iajsKPiAr CWludCByZXQgPSAwOwo+ICsKPiArCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGNvbm5faGFuZGxl LCAmZHJtX2Nvbm5fZHNtX2d1aWQsCj4gKwkJCQlEUk1fQ09OTl9EU01fUkVWSUQsIGZ1bmMsIE5V TEwpOwo+ICsJaWYgKCFvYmopIHsKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJmYWlsZWQgdG8gZXZh bHVhdGUgX0RTTSBmb3IgZm4gJWxseFxuIiwgZnVuYyk7Cj4gKwkJLyogQ2FuJ3QgZG8gbXVjaC4g Rm9yIGdldF92YWwsIGFzc3VtZSBwcml2YWN5X3NjcmVlbiBkaXNhYmxlZCAqLwo+ICsJCWdvdG8g ZG9uZTsKPiArCX0KPiArCj4gKwlpZiAoZnVuYyA9PSBEUk1fQ09OTl9EU01fRk5fUFJJVkFDWV9H RVRfU1RBVFVTICYmCj4gKwkgICAgb2JqLT50eXBlID09IEFDUElfVFlQRV9JTlRFR0VSKQo+ICsJ CXJldCA9ICEhb2JqLT5pbnRlZ2VyLnZhbHVlOwo+ICtkb25lOgo+ICsJQUNQSV9GUkVFKG9iaik7 Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICt2b2lkIGRybV9wcml2YWN5X3NjcmVlbl9zZXRf dmFsKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkgZW51bSBkcm1fcHJp dmFjeV9zY3JlZW4gdmFsKQo+ICt7Cj4gKwlhY3BpX2hhbmRsZSBhY3BpX2hhbmRsZSA9IGNvbm5l Y3Rvci0+cHJpdmFjeV9zY3JlZW5faGFuZGxlOwo+ICsKPiArCWlmICghYWNwaV9oYW5kbGUpCj4g KwkJcmV0dXJuOwo+ICsKPiArCWlmICh2YWwgPT0gRFJNX1BSSVZBQ1lfU0NSRUVOX0RJU0FCTEVE KQo+ICsJCWFjcGlfcHJpdmFjeV9zY3JlZW5fY2FsbF9kc20oYWNwaV9oYW5kbGUsCj4gKwkJCQkJ ICAgICBEUk1fQ09OTl9EU01fRk5fUFJJVkFDWV9ESVNBQkxFKTsKPiArCWVsc2UgaWYgKHZhbCA9 PSBEUk1fUFJJVkFDWV9TQ1JFRU5fRU5BQkxFRCkKPiArCQlhY3BpX3ByaXZhY3lfc2NyZWVuX2Nh bGxfZHNtKGFjcGlfaGFuZGxlLAo+ICsJCQkJCSAgICAgRFJNX0NPTk5fRFNNX0ZOX1BSSVZBQ1lf RU5BQkxFKTsKPiArfQo+ICsKPiArZW51bSBkcm1fcHJpdmFjeV9zY3JlZW4gZHJtX3ByaXZhY3lf c2NyZWVuX2dldF92YWwoc3RydWN0IGRybV9jb25uZWN0b3IKPiArCQkJCQkJICAgKmNvbm5lY3Rv cikKPiArewo+ICsJYWNwaV9oYW5kbGUgYWNwaV9oYW5kbGUgPSBjb25uZWN0b3ItPnByaXZhY3lf c2NyZWVuX2hhbmRsZTsKPiArCj4gKwlpZiAoYWNwaV9oYW5kbGUgJiYKPiArCSAgICBhY3BpX3By aXZhY3lfc2NyZWVuX2NhbGxfZHNtKGFjcGlfaGFuZGxlLAo+ICsJCQkJCSBEUk1fQ09OTl9EU01f Rk5fUFJJVkFDWV9HRVRfU1RBVFVTKSkKPiArCQlyZXR1cm4gRFJNX1BSSVZBQ1lfU0NSRUVOX0VO QUJMRUQ7Cj4gKwo+ICsJcmV0dXJuIERSTV9QUklWQUNZX1NDUkVFTl9ESVNBQkxFRDsKPiArfQo+ ICsKPiArLyoKPiArICogU2VlIEFDUEkgU3BlYyB2Ni4zLCBUYWJsZSBCLTIsICJEaXNwbGF5IFR5 cGUiIGZvciBkZXRhaWxzLgo+ICsgKiBJbiBzaG9ydCwgdGhlc2UgbWFjcm9zIGRlZmluZSB0aGUg YmFzZSBfQURSIHZhbHVlcyBmb3IgQUNQSSBub2Rlcwo+ICsgKi8KPiArI2RlZmluZSBBQ1BJX0JB U0VfQURSX0ZPUl9PVEhFUlMJKDBVTEwgPDwgOCkKPiArI2RlZmluZSBBQ1BJX0JBU0VfQURSX0ZP Ul9WR0EJCSgxVUxMIDw8IDgpCj4gKyNkZWZpbmUgQUNQSV9CQVNFX0FEUl9GT1JfVFYJCSgyVUxM IDw8IDgpCj4gKyNkZWZpbmUgQUNQSV9CQVNFX0FEUl9GT1JfRVhUX01PTgkoM1VMTCA8PCA4KQo+ ICsjZGVmaW5lIEFDUElfQkFTRV9BRFJfRk9SX0lOVEVHUkFURUQJKDRVTEwgPDwgOCkKPiArCj4g KyNkZWZpbmUgQUNQSV9ERVZJQ0VfSURfU0NIRU1FCQkoMVVMTCA8PCAzMSkKPiArI2RlZmluZSBB Q1BJX0ZJUk1XQVJFX0NBTl9ERVRFQ1QJKDFVTEwgPDwgMTYpCj4gKwo+ICsvKgo+ICsgKiBSZWY6 IEFDUEkgU3BlYyA2LjMKPiArICogaHR0cHM6Ly91ZWZpLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVz L3Jlc291cmNlcy9BQ1BJXzZfM19maW5hbF9KYW4zMC5wZGYKPiArICogUGFnZXMgMTExOSAtIDEx MjMgZGVzY3JpYmUsIHdoYXQgSSBiZWxpZXZlLCBhIHN0YW5kYXJkIHdheSBvZgo+ICsgKiBpZGVu dGlmeWluZyAvIGFkZHJlc3NpbmcgImRpc3BsYXkgcGFuZWxzIiBpbiB0aGUgQUNQSS4gVGh1cyBp dCBwcm92aWRlcwo+ICsgKiBhIHdheSBmb3IgdGhlIEFDUEkgdG8gZGVmaW5lIGRldmljZXMgZm9y IHRoZSBkaXNwbGF5IHBhbmVscyBhdHRhY2hlZAo+ICsgKiB0byB0aGUgc3lzdGVtLiBJdCB0aHVz IHByb3ZpZGVzIGEgd2F5IGZvciB0aGUgQklPUyB0byBleHBvcnQgYW55IHBhbmVsCj4gKyAqIHNw ZWNpZmljIHByb3BlcnRpZXMgdG8gdGhlIHN5c3RlbSB2aWEgQUNQSSAobGlrZSBkZXZpY2UgdHJl ZXMpLgo+ICsgKgo+ICsgKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIGxvb2tzIHVwIHRoZSBBQ1BJ IG5vZGUgZm9yIGEgY29ubmVjdG9yIGFuZCBsaW5rcwo+ICsgKiB0byBpdC4gVGVjaG5pY2FsbHkg aXQgaXMgaW5kZXBlbmRlbnQgZnJvbSB0aGUgcHJpdmFjeV9zY3JlZW4gY29kZSwgYW5kCj4gKyAq IGlkZWFsbHkgbWF5IGJlIGNhbGxlZCBmb3IgYWxsIGNvbm5lY3RvcnMuIEl0IGlzIGdlbmVyYWxs eSBhIGdvb2QgaWRlYSB0bwo+ICsgKiBiZSBhYmxlIHRvIGF0dGFjaCBhbiBBQ1BJIG5vZGUgdG8g ZGVzY3JpYmUgYW55dGhpbmcgaWYgbmVlZGVkLiAoVGhpcyBjYW4KPiArICogaGVscCBpbiBmdXR1 cmUgZm9yIG90aGVyIHBhbmVsIHNwZWNpZmljIGZlYXR1cmVzIG1heWJlKS4gSG93ZXZlciwgaXQK PiArICogbmVlZHMgYSAicG9ydCBpbmRleCIgd2hpY2ggSSBiZWxpZXZlIGlzIHRoZSBpbmRleCB3 aXRoaW4gYSBwYXJ0aWN1bGFyCj4gKyAqIHR5cGUgb2YgcG9ydCAoUmVmIHRvIHRoZSBwYWdlcyBv ZiBzcGVjIG1lbnRpb25lZCBhYm92ZSkuIFRoaXMgcG9ydCBpbmRleAo+ICsgKiB1bmZvcnR1bmF0 ZWx5IGlzIG5vdCBhdmFpbGFibGUgaW4gRFJNIGNvZGUsIHNvIGN1cnJlbnRseSBpdHMgY2FsbCBp cwo+ICsgKiBvcmlnaW5hdGVkIGZyb20gaTkxNSBkcml2ZXIuCj4gKyAqLwo+ICtzdGF0aWMgaW50 IGRybV9jb25uZWN0b3JfYXR0YWNoX2FjcGlfbm9kZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ICsJCQkJCSAgdTggcG9ydF9pbmRleCkKPiArewo+ICsJc3RydWN0IGRldmljZSAq ZGV2ID0gJmNvbm5lY3Rvci0+ZGV2LT5wZGV2LT5kZXY7Cj4gKwlzdHJ1Y3QgYWNwaV9kZXZpY2Ug KmNvbm5fZGV2Owo+ICsJdTY0IGNvbm5fYWRkcjsKPiArCj4gKwkvKgo+ICsJICogRGV0ZXJtaW5l IHdoYXQgX0FEUiB0byBsb29rIGZvciwgZGVwZW5kaW5nIG9uIGRldmljZSB0eXBlIGFuZAo+ICsJ ICogcG9ydCBudW1iZXIuIFBvdGVudGlhbGx5IHdlIG9ubHkgY2FyZSBhYm91dCB0aGUKPiArCSAq IGVEUCAvIGludGVncmF0ZWQgZGlzcGxheXM/Cj4gKwkgKi8KPiArCXN3aXRjaCAoY29ubmVjdG9y LT5jb25uZWN0b3JfdHlwZSkgewo+ICsJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfZURQOgo+ICsJ CWNvbm5fYWRkciA9IEFDUElfQkFTRV9BRFJfRk9SX0lOVEVHUkFURUQgKyBwb3J0X2luZGV4Owo+ ICsJCWJyZWFrOwo+ICsJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfVkdBOgo+ICsJCWNvbm5fYWRk ciA9IEFDUElfQkFTRV9BRFJfRk9SX1ZHQSArIHBvcnRfaW5kZXg7Cj4gKwkJYnJlYWs7Cj4gKwlj YXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9UVjoKPiArCQljb25uX2FkZHIgPSBBQ1BJX0JBU0VfQURS X0ZPUl9UViArIHBvcnRfaW5kZXg7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIERSTV9NT0RFX0NPTk5F Q1RPUl9EaXNwbGF5UG9ydDoKPiArCQljb25uX2FkZHIgPSBBQ1BJX0JBU0VfQURSX0ZPUl9FWFRf TU9OICsgcG9ydF9pbmRleDsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuIC1F Tk9UU1VQUDsKPiArCX0KPiArCj4gKwljb25uX2FkZHIgfD0gQUNQSV9ERVZJQ0VfSURfU0NIRU1F Owo+ICsJY29ubl9hZGRyIHw9IEFDUElfRklSTVdBUkVfQ0FOX0RFVEVDVDsKPiArCj4gKwlEUk1f REVWX0RFQlVHKGRldiwgIiVzOiBGaW5kaW5nIGRybV9jb25uZWN0b3IgQUNQSSBub2RlIGF0IF9B RFI9JWxsWFxuIiwKPiArCQkgICAgICBfX2Z1bmNfXywgY29ubl9hZGRyKTsKPiArCj4gKwkvKiBM b29rIHVwIHRoZSBjb25uZWN0b3IgZGV2aWNlLCB1bmRlciB0aGUgUENJIGRldmljZSAqLwo+ICsJ Y29ubl9kZXYgPSBhY3BpX2ZpbmRfY2hpbGRfZGV2aWNlKEFDUElfQ09NUEFOSU9OKGRldiksCj4g KwkJCQkJICBjb25uX2FkZHIsIGZhbHNlKTsKPiArCWlmICghY29ubl9kZXYpCj4gKwkJcmV0dXJu IC1FTk9ERVY7Cj4gKwo+ICsJY29ubmVjdG9yLT5wcml2YWN5X3NjcmVlbl9oYW5kbGUgPSBjb25u X2Rldi0+aGFuZGxlOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK2Jvb2wgZHJtX3ByaXZhY3lf c2NyZWVuX3ByZXNlbnQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTggcG9ydF9p bmRleCkKPiArewo+ICsJYWNwaV9oYW5kbGUgaGFuZGxlOwo+ICsKPiArCWlmIChkcm1fY29ubmVj dG9yX2F0dGFjaF9hY3BpX25vZGUoY29ubmVjdG9yLCBwb3J0X2luZGV4KSkKPiArCQlyZXR1cm4g ZmFsc2U7Cj4gKwo+ICsJaGFuZGxlID0gY29ubmVjdG9yLT5wcml2YWN5X3NjcmVlbl9oYW5kbGU7 Cj4gKwlpZiAoIWFjcGlfY2hlY2tfZHNtKGhhbmRsZSwgJmRybV9jb25uX2RzbV9ndWlkLAo+ICsJ CQkgICAgRFJNX0NPTk5fRFNNX1JFVklELAo+ICsJCQkgICAgMSA8PCBEUk1fQ09OTl9EU01fRk5f UFJJVkFDWV9HRVRfU1RBVFVTIHwKPiArCQkJICAgIDEgPDwgRFJNX0NPTk5fRFNNX0ZOX1BSSVZB Q1lfRU5BQkxFIHwKPiArCQkJICAgIDEgPDwgRFJNX0NPTk5fRFNNX0ZOX1BSSVZBQ1lfRElTQUJM RSkpIHsKPiArCQlEUk1fV0FSTigiJXM6IE9kZCwgY29ubmVjdG9yIEFDUEkgbm9kZSBidXQgbm8g cHJpdmFjeSBzY3JuP1xuIiwKPiArCQkJIGNvbm5lY3Rvci0+ZGV2LT5kZXYpOwo+ICsJCXJldHVy biBmYWxzZTsKPiArCX0KPiArCURSTV9ERVZfSU5GTyhjb25uZWN0b3ItPmRldi0+ZGV2LCAic3Vw cG9ydHMgcHJpdmFjeSBzY3JlZW5cbiIpOwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gaW5kZXggNTdlOWYwYmEzMzFiLi4zZmYz OTYyZDI3ZGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4g QEAgLTM5LDYgKzM5LDcgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+Cj4gICNp bmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1faGRjcC5oPgo+ICsj aW5jbHVkZSA8ZHJtL2RybV9wcml2YWN5X3NjcmVlbi5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9w cm9iZV9oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgo+ICAKPiBAQCAtNjM1 NCw2ICs2MzU1LDggQEAgaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3QKPiAgCj4gIAkJY29ubmVjdG9y LT5zdGF0ZS0+c2NhbGluZ19tb2RlID0gRFJNX01PREVfU0NBTEVfQVNQRUNUOwo+ICAKPiArCQlp ZiAoZHJtX3ByaXZhY3lfc2NyZWVuX3ByZXNlbnQoY29ubmVjdG9yLCBwb3J0IC0gUE9SVF9BKSkK PiArCQkJZHJtX2Nvbm5lY3Rvcl9pbml0X3ByaXZhY3lfc2NyZWVuX3Byb3BlcnR5KGNvbm5lY3Rv cik7Cj4gIAl9Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0 b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IGluZGV4IDY4MWNiNTkwZjk1Mi4u NjNiODMxOGJkNjhjIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IEBAIC0yMjUsNiArMjI1LDIwIEBA IGVudW0gZHJtX2xpbmtfc3RhdHVzIHsKPiAgCURSTV9MSU5LX1NUQVRVU19CQUQgPSBEUk1fTU9E RV9MSU5LX1NUQVRVU19CQUQsCj4gIH07Cj4gIAo+ICsvKioKPiArICogZW51bSBkcm1fcHJpdmFj eV9zY3JlZW4gLSBwcml2YWN5X3NjcmVlbiBzdGF0dXMKPiArICoKPiArICogVGhpcyBlbnVtIGlz IHVzZWQgdG8gdHJhY2sgYW5kIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSBwcml2YWN5IHNjcmVl bi4KPiArICogVGhlcmUgYXJlIG5vIHNlcGFyYXRlICNkZWZpbmVzIGZvciB0aGUgdWFwaSEKPiAr ICoKPiArICogQERSTV9QUklWQUNZX1NDUkVFTl9ESVNBQkxFRDogVGhlIHByaXZhY3ktc2NyZWVu IG9uIHRoZSBwYW5lbCBpcyBkaXNhYmxlZAo+ICsgKiBARFJNX1BSSVZBQ1lfU0NSRUVOX0VOQUJM RUQ6ICBUaGUgcHJpdmFjeS1zY3JlZW4gb24gdGhlIHBhbmVsIGlzIGVuYWJsZWQKPiArICovCj4g K2VudW0gZHJtX3ByaXZhY3lfc2NyZWVuIHsKPiArCURSTV9QUklWQUNZX1NDUkVFTl9ESVNBQkxF RCA9IDAsCj4gKwlEUk1fUFJJVkFDWV9TQ1JFRU5fRU5BQkxFRCA9IDEsCj4gK307Cj4gKwo+ICAv KioKPiAgICogZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gLSBwYW5lbF9vcmllbnRhdGlvbiBp bmZvIGZvciAmZHJtX2Rpc3BsYXlfaW5mbwo+ICAgKgo+IEBAIC0xNDEwLDYgKzE0MjQsOSBAQCBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4gIAo+ICAJLyoqIEBoZHJfc2lua19tZXRhZGF0YTogSERS IE1ldGFkYXRhIEluZm9ybWF0aW9uIHJlYWQgZnJvbSBzaW5rICovCj4gIAlzdHJ1Y3QgaGRyX3Np bmtfbWV0YWRhdGEgaGRyX3NpbmtfbWV0YWRhdGE7Cj4gKwo+ICsJLyogSGFuZGxlIHVzZWQgYnkg cHJpdmFjeSBzY3JlZW4gY29kZSAqLwo+ICsJdm9pZCAqcHJpdmFjeV9zY3JlZW5faGFuZGxlOwo+ ICB9Owo+ICAKPiAgI2RlZmluZSBvYmpfdG9fY29ubmVjdG9yKHgpIGNvbnRhaW5lcl9vZih4LCBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciwgYmFzZSkKPiBAQCAtMTU0Myw2ICsxNTYwLDcgQEAgaW50IGRy bV9jb25uZWN0b3JfaW5pdF9wYW5lbF9vcmllbnRhdGlvbl9wcm9wZXJ0eSgKPiAgCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCB3aWR0aCwgaW50IGhlaWdodCk7Cj4gIGludCBk cm1fY29ubmVjdG9yX2F0dGFjaF9tYXhfYnBjX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gIAkJCQkJICBpbnQgbWluLCBpbnQgbWF4KTsKPiAraW50IGRybV9jb25u ZWN0b3JfaW5pdF9wcml2YWN5X3NjcmVlbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKTsKPiAgCj4gIC8qKgo+ICAgKiBzdHJ1Y3QgZHJtX3RpbGVfZ3JvdXAgLSBUaWxl IGdyb3VwIG1ldGFkYXRhCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZp Zy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiBpbmRleCAzYmNiZTMwMzM5ZjAu LjZkNWQyM2RhOTBkNCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcu aAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gQEAgLTgxMyw2ICs4MTMs MTMgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyB7Cj4gIAkgKi8KPiAgCXN0cnVjdCBkcm1fcHJv cGVydHkgKnBhbmVsX29yaWVudGF0aW9uX3Byb3BlcnR5Owo+ICAKPiArCS8qKgo+ICsJICogQHBy aXZhY3lfc2NyZWVuX3Byb3BlcnR5OiBPcHRpb25hbCBjb25uZWN0b3IgcHJvcGVydHkgdG8gaW5k aWNhdGUKPiArCSAqIGFuZCBjb250cm9sIHRoZSBzdGF0ZSAoZW5hYmxlZCAvIGRpc2FibGVkKSBv ZiBwcml2YWN5LXNjcmVlbiBvbiB0aGUKPiArCSAqIHBhbmVsLCBpZiBwcmVzZW50Lgo+ICsJICov Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcml2YWN5X3NjcmVlbl9wcm9wZXJ0eTsKPiArCj4g IAkvKioKPiAgCSAqIEB3cml0ZWJhY2tfZmJfaWRfcHJvcGVydHk6IFByb3BlcnR5IGZvciB3cml0 ZWJhY2sgY29ubmVjdG9ycywgc3RvcmluZwo+ICAJICogdGhlIElEIG9mIHRoZSBvdXRwdXQgZnJh bWVidWZmZXIuCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wcml2YWN5X3NjcmVlbi5o IGIvaW5jbHVkZS9kcm0vZHJtX3ByaXZhY3lfc2NyZWVuLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYzU4OWJiYzQ3NjU2Cj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL2luY2x1ZGUvZHJtL2RybV9wcml2YWN5X3NjcmVlbi5oCj4gQEAgLTAsMCArMSwzMyBAQAo+ ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLwo+ICsvKgo+ ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBHb29nbGUgSW5jLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYg X19EUk1fUFJJVkFDWV9TQ1JFRU5fSF9fCj4gKyNkZWZpbmUgX19EUk1fUFJJVkFDWV9TQ1JFRU5f SF9fCj4gKwo+ICsjaWZkZWYgQ09ORklHX0FDUEkKPiArYm9vbCBkcm1fcHJpdmFjeV9zY3JlZW5f cHJlc2VudChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1OCBwb3J0KTsKPiArdm9p ZCBkcm1fcHJpdmFjeV9zY3JlZW5fc2V0X3ZhbChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ICsJCQkJZW51bSBkcm1fcHJpdmFjeV9zY3JlZW4gdmFsKTsKPiArZW51bSBkcm1fcHJp dmFjeV9zY3JlZW4gZHJtX3ByaXZhY3lfc2NyZWVuX2dldF92YWwoc3RydWN0IGRybV9jb25uZWN0 b3IKPiArCQkJCQkJICAgKmNvbm5lY3Rvcik7Cj4gKyNlbHNlCj4gK3N0YXRpYyBpbmxpbmUgYm9v bCBkcm1fcHJpdmFjeV9zY3JlZW5fcHJlc2VudChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ICsJCQkJCSAgICAgIHU4IHBvcnQpCj4gK3sKPiArCXJldHVybiBmYWxzZTsKPiArfQo+ ICsKPiArdm9pZCBkcm1fcHJpdmFjeV9zY3JlZW5fc2V0X3ZhbChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+ICsJCQkJZW51bSBkcm1fcHJpdmFjeV9zY3JlZW4gdmFsKQo+ICt7IH0K PiArCj4gK2VudW0gZHJtX3ByaXZhY3lfc2NyZWVuIGRybV9wcml2YWN5X3NjcmVlbl9nZXRfdmFs KAo+ICsJCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXJldHVy biBEUk1fUFJJVkFDWV9TQ1JFRU5fRElTQUJMRUQ7Cj4gK30KPiArI2VuZGlmIC8qIENPTkZJR19B Q1BJICovCj4gKwo+ICsjZW5kaWYgLyogX19EUk1fUFJJVkFDWV9TQ1JFRU5fSF9fICovCj4gLS0g Cj4gMi4yMy4wLjg2Ni5nYjg2OWI5OGQ0Yy1nb29nCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs