From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: Re: [PATCH 09/60] drm/bridge: Add connector-related bridge operations and data Date: Thu, 11 Jul 2019 14:41:01 +0200 Message-ID: <1d48919c-e876-152c-0f05-64eb4c62fcaf@samsung.com> References: <20190707180852.5512-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-6-laurent.pinchart@ideasonboard.com> <1f98e5f0-d513-d3f2-420d-80e0e0c3c71b@samsung.com> <20190711073548.GD15868@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 37E676E21B for ; Thu, 11 Jul 2019 12:41:02 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20190711124100euoutp023cdce805f4cb85d93e5959c34e4fbcac~wWsIeQGqU1716917169euoutp02Z for ; Thu, 11 Jul 2019 12:41:00 +0000 (GMT) In-Reply-To: <20190711073548.GD15868@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Maxime Ripard , Sebastian Reichel , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Laurent Pinchart , Sean Paul List-Id: dri-devel@lists.freedesktop.org T24gMTEuMDcuMjAxOSAwOTozNSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBXZWQsIEp1bCAx MCwgMjAxOSBhdCAwMjoxMjoxNFBNICswMjAwLCBBbmRyemVqIEhhamRhIHdyb3RlOgo+PiBIaSBM YXVyZW50LAo+Pgo+Pgo+PiBJIGxpa2UgdGhlIGFwcHJvYWNoLCBjdXJyZW50IHByYWN0aWNlIHdo ZW4gYWxtb3N0IGV2ZXJ5IGJyaWRnZSBzaG91bGQKPj4gb3B0aW9uYWxseSBpbXBsZW1lbnQgY29u bmVjdG9yLCBvciBhbHRlcm5hdGl2ZWx5IGRvd25zdHJlYW0gYnJpZGdlIG9yCj4+IHBhbmVsIGlz IHZlcnkgcGFpbmZ1bC4KPiBZZWFoIEkgdGhpbmsgdGhpcyBsb29rcyBtb3N0bHkgcmVhc29uYWJs ZS4gU29tZSBhcGkgZGVzaWduIGNvbW1lbnRzIG9uIHRvcAo+IG9mIEFuZHJ6ZWonLCB3aXRoIHRo ZSBmYWlyIHdhcm5pbmcgdGhhdCBJIGRpZG4ndCBib3RoZXIgdG8gcmVhZCB1cCBvbiBob3cKPiBp dCdzIGFsbCB1c2VkIGluIHRoZSBlbmQuIEkgcHJvYmFibHkgc2hvdWxkIGdvIGFuZCBkbyB0aGF0 LCBhdCBsZWFzdCB0bwo+IGdldCBhIGZlZWxpbmcgZm9yIHdoYXQgeW91ciBocGRfY2IgdXN1YWxs eSBkb2VzLgo+Cj4+IE1vcmUgY29tbWVudHMgaW5saW5lZC4KPj4KPj4gT24gMDcuMDcuMjAxOSAy MDoxOCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPj4+IFRvIHN1cHBvcnQgaW1wbGVtZW50YXRp b24gb2YgRFJNIGNvbm5lY3RvcnMgb24gdG9wIG9mIERSTSBicmlkZ2VzCj4+PiBpbnN0ZWFkIG9m IGJ5IGJyaWRnZXMsIHRoZSBkcm1fYnJpZGdlIG5lZWRzIHRvIGV4cG9zZSBuZXcgb3BlcmF0aW9u cyBhbmQKPj4+IGRhdGE6Cj4+Pgo+Pj4gLSBPdXRwdXQgZGV0ZWN0aW9uLCBob3QtcGx1ZyBub3Rp ZmljYXRpb24sIG1vZGUgcmV0cmlldmFsIGFuZCBFRElECj4+PiAgIHJldHJpZXZhbCBvcGVyYXRp b25zCj4+PiAtIEJpdG1hc2sgb2Ygc3VwcG9ydGVkIG9wZXJhdGlvbnMKPj4KPj4gV2h5IGRvIHdl IG5lZWQgdGhlc2UgYml0bWFzayBhdCBhbGw/IFdoeSBjYW5ub3Qgd2UgcmVseSBvbiBwcmVzZW5j ZSBvZgo+PiBvcGVyYXRpb24ncyBjYWxsYmFjaz8KPiBZZWFoIGFsc28gbm90IGEgaHVnZSBmYW4g b2YgdGhlc2UgYml0bWFza3MuIFNtZWxscyBsaWtlCj4gRFJJVkVSX0dFTXxEUklWRVJfTU9ERVNF VCwgYW5kIEkgcGVyc29uYWxseSByZWFsbHkgaGF0ZSB0aG9zZS4gRWFzeSB0bwo+IGFkZCwgZ2Vu ZXJhbGx5IGdvb2QgZXhjdXNlIHRvIG5vdCBoYXZlIHRvIHRoaW5rIHRocm91Z2ggdGhlIGRlc2ln biBiZXR3ZWVuCj4gZGlmZmVyZW50IHBhcnRzIG9mIGRyaXZlcnMgLSAianVzdCIgYWRkIGFub3Ro ZXIgZmxhZy4KPj4KPj4+IC0gQnJpZGdlIG91dHB1dCB0eXBlCj4+Pgo+Pj4gQWRkIGFuZCBkb2N1 bWVudCB0aGVzZS4KPj4+Cj4+PiBUaHJlZSBuZXcgYnJpZGdlIGhlbHBlciBmdW5jdGlvbnMgYXJl IGFsc28gYWRkZWQgdG8gaGFuZGxlIGhvdCBwbHVnCj4+PiBub3RpZmljYXRpb24gaW4gYSB3YXkg dGhhdCBpcyBhcyB0cmFuc3BhcmVudCBhcyBwb3NzaWJsZSBmb3IgdGhlCj4+PiBicmlkZ2VzLgo+ Pgo+PiBEb2N1bWVudGF0aW9uIG9mIG5ldyBvcHNlcyBkb2VzIG5vdCBleHBsYWluIGhvdyBpdCBz aG91bGQgY29vcGVyYXRlIHdpdGgKPj4gYnJpZGdlIGNoYWluaW5nLCBJIHN1cHBvc2UgdGhleSBz aG91bGQgYmUgY2hhaW5lZCBleHBsaWNpdGx5LCBhbSBJCj4+IHJpZ2h0PyBNb3JlIGNvbW1lbnRz IGFib3V0IGl0IGxhdGVyLgo+Pgo+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogTGF1cmVudCBQaW5jaGFy dCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgo+Pj4gLS0tCj4+PiAgZHJpdmVy cy9ncHUvZHJtL2RybV9icmlkZ2UuYyB8ICA5MiArKysrKysrKysrKysrKysrKysrCj4+PiAgaW5j bHVkZS9kcm0vZHJtX2JyaWRnZS5oICAgICB8IDE3MCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQo+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMjYxIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2Uu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPj4+IGluZGV4IDUxOTU3N2YzNjNlMy4u M2MyYTI1NWRmN2FmIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2Uu Ywo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+Pj4gQEAgLTcwLDYgKzcw LDggQEAgc3RhdGljIExJU1RfSEVBRChicmlkZ2VfbGlzdCk7Cj4+PiAgICovCj4+PiAgdm9pZCBk cm1fYnJpZGdlX2FkZChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+Pj4gIHsKPj4+ICsJbXV0 ZXhfaW5pdCgmYnJpZGdlLT5ocGRfbXV0ZXgpOwo+Pj4gKwo+Pj4gIAltdXRleF9sb2NrKCZicmlk Z2VfbG9jayk7Cj4+PiAgCWxpc3RfYWRkX3RhaWwoJmJyaWRnZS0+bGlzdCwgJmJyaWRnZV9saXN0 KTsKPj4+ICAJbXV0ZXhfdW5sb2NrKCZicmlkZ2VfbG9jayk7Cj4+PiBAQCAtODYsNiArODgsOCBA QCB2b2lkIGRybV9icmlkZ2VfcmVtb3ZlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4+PiAg CW11dGV4X2xvY2soJmJyaWRnZV9sb2NrKTsKPj4+ICAJbGlzdF9kZWxfaW5pdCgmYnJpZGdlLT5s aXN0KTsKPj4+ICAJbXV0ZXhfdW5sb2NrKCZicmlkZ2VfbG9jayk7Cj4+PiArCj4+PiArCW11dGV4 X2Rlc3Ryb3koJmJyaWRnZS0+aHBkX211dGV4KTsKPj4+ICB9Cj4+PiAgRVhQT1JUX1NZTUJPTChk cm1fYnJpZGdlX3JlbW92ZSk7Cj4+PiAgCj4+PiBAQCAtNDYzLDYgKzQ2Nyw5NCBAQCB2b2lkIGRy bV9hdG9taWNfYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+Pj4gIH0K Pj4+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX2VuYWJsZSk7Cj4+PiAgCj4+PiAr LyoqCj4+PiArICogZHJtX2JyaWRnZV9ocGRfZW5hYmxlIC0gZW5hYmxlIGhvdCBwbHVnIGRldGVj dGlvbiBmb3IgdGhlIGJyaWRnZQo+Pj4gKyAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVj dHVyZQo+Pj4gKyAqIEBjYjogaG90LXBsdWcgZGV0ZWN0aW9uIGNhbGxiYWNrCj4+PiArICogQGRh dGE6IGRhdGEgdG8gYmUgcGFzc2VkIHRvIHRoZSBob3QtcGx1ZyBkZXRlY3Rpb24gY2FsbGJhY2sK Pj4+ICsgKgo+Pj4gKyAqIENhbGwgJmRybV9icmlkZ2VfZnVuY3MuaHBkX2VuYWJsZSBhbmQgcmVn aXN0ZXIgdGhlIGdpdmVuIEBjYiBhbmQgQGRhdGEgYXMKPj4+ICsgKiBob3QgcGx1ZyBub3RpZmlj YXRpb24gY2FsbGJhY2suIEZyb20gbm93IG9uIHRoZSBAY2Igd2lsbCBiZSBjYWxsZWQgd2l0aAo+ Pj4gKyAqIEBkYXRhIHdoZW4gYW4gb3V0cHV0IHN0YXR1cyBjaGFuZ2UgaXMgZGV0ZWN0ZWQgYnkg dGhlIGJyaWRnZSwgdW50aWwgaG90IHBsdWcKPj4+ICsgKiBub3RpZmljYXRpb24gZ2V0cyBkaXNh YmxlZCB3aXRoIGRybV9icmlkZ2VfaHBkX2Rpc2FibGUoKS4KPj4+ICsgKgo+Pj4gKyAqIEhvdCBw bHVnIGRldGVjdGlvbiBpcyBzdXBwb3J0ZWQgb25seSBpZiB0aGUgRFJNX0JSSURHRV9PUF9IUEQg ZmxhZyBpcyBzZXQgaW4KPj4+ICsgKiBicmlkZ2UtPm9wcy4gVGhpcyBmdW5jdGlvbiBzaGFsbCBu b3QgYmUgY2FsbGVkIHdoZW4gdGhlIGZsYWcgaXMgbm90IHNldC4KPj4+ICsgKgo+Pj4gKyAqIE9u bHkgb25lIGhvdCBwbHVnIGRldGVjdGlvbiBjYWxsYmFjayBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBh IHRpbWUsIGl0IGlzIGFuCj4+PiArICogZXJyb3IgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4g aG90IHBsdWcgZGV0ZWN0aW9uIGlzIGFscmVhZHkgZW5hYmxlZCBmb3IKPj4+ICsgKiB0aGUgYnJp ZGdlLgo+Pj4gKyAqLwo+Pgo+PiBUbyBzaW1wbGlmeSBhcmNoaXRlY3R1cmUgbWF5YmUgd291bGQg YmUgYmV0dGVyIHRvIGVuYWJsZSBocGQganVzdCBvbgo+PiBicmlkZ2UgYXR0YWNoOgo+Pgo+PiBi cmlkZ2UtPmhwZF9jYiA9IGNiOwo+Pgo+PiBicmlkZ2UtPmhwZF9kYXRhID0gZGF0YTsKPj4KPj4g cmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goLi4uKTsKPiBZZWFoIEkgbGlrZSB0aGlzIG1vcmUuIFRo ZSBvdGhlciBwcm9ibGVtIGhlcmUgaXMsIHdoYXQgaWYgeW91IG5lZWQgbW9yZQo+IHRoYW4gMSBj YWxsYmFjayByZWdpc3RlcnMgb24gdGhlIHNhbWUgYnJpZGdlIGhkcCBzaWduYWw/Cj4KPgo+PiBU aGlzIHdheSB3ZSBjb3VsZCBhdm9pZCBhZGRpbmcgbmV3IGNhbGxiYWNrcyBocGRfKGVuYWJsZXxk aXNhYmxlKQo+PiB3aXRob3V0IGJpZyBzYWNyaWZpY2VzLgo+Pgo+Pgo+PiBPbmUgbW9yZSB0aGlu ZzogSFBEIGluIERpc3BsYXlQb3J0L0hETUkgYmVzaWRlIHNpZ25hbGxpbmcgcGx1Zy91bnBsdWcs Cj4+IG5vdGlmaWVzIGFib3V0IHNpbmsgc3RhdHVzIGNoYW5nZSwgaG93IGl0IHRyYW5zbGF0ZXMg dG8gdGhpcyBjYj8KPj4KPj4KPj4+ICt2b2lkIGRybV9icmlkZ2VfaHBkX2VuYWJsZShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+Pj4gKwkJCSAgIHZvaWQgKCpjYikodm9pZCAqZGF0YSwKPj4+ ICsJCQkJICAgICAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpLAo+Pj4gKwkJCSAg IHZvaWQgKmRhdGEpCj4+PiArewo+Pj4gKwlpZiAoIWJyaWRnZSB8fCAhYnJpZGdlLT5mdW5jcy0+ aHBkX2VuYWJsZSkKPj4+ICsJCXJldHVybjsKPj4+ICsKPj4+ICsJbXV0ZXhfbG9jaygmYnJpZGdl LT5ocGRfbXV0ZXgpOwo+Pj4gKwo+Pj4gKwlpZiAoV0FSTihicmlkZ2UtPmhwZF9jYiwgIkhvdCBw bHVnIGRldGVjdGlvbiBhbHJlYWR5IGVuYWJsZWRcbiIpKQo+Pj4gKwkJZ290byB1bmxvY2s7Cj4+ PiArCj4+PiArCWJyaWRnZS0+aHBkX2NiID0gY2I7Cj4+PiArCWJyaWRnZS0+aHBkX2RhdGEgPSBk YXRhOwo+Pj4gKwo+Pj4gKwlicmlkZ2UtPmZ1bmNzLT5ocGRfZW5hYmxlKGJyaWRnZSk7Cj4+PiAr Cj4+PiArdW5sb2NrOgo+Pj4gKwltdXRleF91bmxvY2soJmJyaWRnZS0+aHBkX211dGV4KTsKPj4+ ICt9Cj4+PiArRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2JyaWRnZV9ocGRfZW5hYmxlKTsKPj4+ICsK Pj4+ICsvKioKPj4+ICsgKiBkcm1fYnJpZGdlX2hwZF9kaXNhYmxlIC0gZGlzYWJsZSBob3QgcGx1 ZyBkZXRlY3Rpb24gZm9yIHRoZSBicmlkZ2UKPj4+ICsgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJv bCBzdHJ1Y3R1cmUKPj4+ICsgKgo+Pj4gKyAqIENhbGwgJmRybV9icmlkZ2VfZnVuY3MuaHBkX2Rp c2FibGUgYW5kIHVucmVnaXN0ZXIgdGhlIGhvdCBwbHVnIGRldGVjdGlvbgo+Pj4gKyAqIGNhbGxi YWNrIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIGRybV9icmlkZ2VfaHBkX2VuYWJsZSgpLiBP bmNlIHRoaXMKPj4+ICsgKiBmdW5jdGlvbiByZXR1cm5zIHRoZSBjYWxsYmFjayB3aWxsIG5vdCBi ZSBjYWxsZWQgYnkgdGhlIGJyaWRnZSB3aGVuIGFuCj4+PiArICogb3V0cHV0IHN0YXR1cyBjaGFu Z2Ugb2NjdXJzLgo+Pj4gKyAqCj4+PiArICogSG90IHBsdWcgZGV0ZWN0aW9uIGlzIHN1cHBvcnRl ZCBvbmx5IGlmIHRoZSBEUk1fQlJJREdFX09QX0hQRCBmbGFnIGlzIHNldCBpbgo+Pj4gKyAqIGJy aWRnZS0+b3BzLiBUaGlzIGZ1bmN0aW9uIHNoYWxsIG5vdCBiZSBjYWxsZWQgd2hlbiB0aGUgZmxh ZyBpcyBub3Qgc2V0Lgo+Pj4gKyAqLwo+Pj4gK3ZvaWQgZHJtX2JyaWRnZV9ocGRfZGlzYWJsZShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+Pj4gK3sKPj4+ICsJaWYgKCFicmlkZ2UgfHwgIWJy aWRnZS0+ZnVuY3MtPmhwZF9kaXNhYmxlKQo+Pj4gKwkJcmV0dXJuOwo+Pj4gKwo+Pj4gKwltdXRl eF9sb2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4+PiArCWJyaWRnZS0+ZnVuY3MtPmhwZF9kaXNh YmxlKGJyaWRnZSk7Cj4+PiArCj4+PiArCWJyaWRnZS0+aHBkX2NiID0gTlVMTDsKPj4+ICsJYnJp ZGdlLT5ocGRfZGF0YSA9IE5VTEw7Cj4+PiArCW11dGV4X3VubG9jaygmYnJpZGdlLT5ocGRfbXV0 ZXgpOwo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9MX0dQTChkcm1fYnJpZGdlX2hwZF9kaXNhYmxl KTsKPj4+ICsKPj4+ICsvKioKPj4+ICsgKiBkcm1fYnJpZGdlX2hwZF9ub3RpZnkgLSBub3RpZnkg aG90IHBsdWcgZGV0ZWN0aW9uIGV2ZW50cwo+Pj4gKyAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9s IHN0cnVjdHVyZQo+Pj4gKyAqIEBzdGF0dXM6IG91dHB1dCBjb25uZWN0aW9uIHN0YXR1cwo+Pj4g KyAqCj4+PiArICogQnJpZGdlIGRyaXZlcnMgc2hhbGwgY2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHJl cG9ydCBob3QgcGx1ZyBldmVudHMgd2hlbiB0aGV5Cj4+PiArICogZGV0ZWN0IGEgY2hhbmdlIGlu IHRoZSBvdXRwdXQgc3RhdHVzLCB3aGVuIGhvdCBwbHVnIGRldGVjdGlvbiBoYXMgYmVlbgo+Pj4g KyAqIGVuYWJsZWQgYnkgdGhlICZkcm1fYnJpZGdlX2Z1bmNzLmhwZF9lbmFibGUgY2FsbGJhY2su Cj4+PiArICoKPj4+ICsgKiBUaGlzIGZ1bmN0aW9uIHNoYWxsIGJlIGNhbGxlZCBpbiBhIGNvbnRl eHQgdGhhdCBjYW4gc2xlZXAuCj4+PiArICovCj4+PiArdm9pZCBkcm1fYnJpZGdlX2hwZF9ub3Rp Znkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPj4+ICsJCQkgICBlbnVtIGRybV9jb25uZWN0 b3Jfc3RhdHVzIHN0YXR1cykKPj4+ICt7Cj4+PiArCW11dGV4X2xvY2soJmJyaWRnZS0+aHBkX211 dGV4KTsKPj4+ICsJaWYgKGJyaWRnZS0+aHBkX2NiKQo+Pj4gKwkJYnJpZGdlLT5ocGRfY2IoYnJp ZGdlLT5ocGRfZGF0YSwgc3RhdHVzKTsKPiBTbyB0aGlzIGlzbid0IHF1aXRlIHdoYXQgSSBoYWQg aW4gbWluZC4gSW5zdGVhZCBzb21ldGhpbmcgbGlrZSB0aGlzOgo+Cj4gCS8qIGl0ZXJhdGVzIG92 ZXIgYWxsIGJyaWRnZXMgaW4gdGhlIGNoYWluIGNvbnRhaW5pbmcgQGJyaWRnZSAqLwo+IAlmb3Jf ZWFjaF9icmlkZ2UodG1wX2JyaWRnZSwgYnJpZGdlKSB7Cj4gCQlpZiAodG1wX2JyaWRnZSA9PSBi cmlkZ2UpCj4gCQkJY29udGludWU7Cj4gCQlpZiAoYnJpZGdlLT5ocGRfbm90aWZ5KTsKPiAJCQli cmlkZ2UtPmhwZF9ub3RpZnkodG1wX2JyaWRnZSwgYnJpZGdlLCBzdGF0dXMpOwo+IAl9Cj4KPiAJ ZW5jb2RlciA9IGVuY29kZXJfZm9yX2JyaWRnZShicmlkZ2UpOwo+IAlpZiAoZW5jb2Rlci0+aGVs cGVyX3ByaXZhdGUtPmJyaWRnZV9ocGRfbm90aWZ5KQo+IAkJZW5jb2Rlci0+aGVscGVyX3ByaXZh dGUtPmJyaWRnZV9ocGRfbm90aWZ5KGVuY29kZXIsIGJyaWRnZSwgc3RhdHVzKTsKPgo+IAlkZXYg PSBicmlkZ2UtPmRldgo+IAlpZiAoZGV2LT5tb2RlX2NvbmZpZy5oZWxwZXJfcHJpdmF0ZS0+YnJp ZGdlX2hwZF9ub3RpZnkpCj4gCQlkZXYtPm1vZGVfY29uZmlnLmhlbHBlcl9wcml2YXRlLT5icmlk Z2VfaHBkX25vdGlmeShkZXYsIGJyaWRnZSwgc3RhdHVzKQo+Cj4gTm8gcmVnaXN0ZXIgY2FsbGJh Y2sgbmVlZGVkLCBubyBsb2NraW5nIG5lZWRlZCwgZXZlcnlvbmUgZ2V0cyBleGFjdGx5IHRoZQo+ IGhwZCB0aGV5IHdhbnQvbmVlZC4KCgpBcyBJIHVuZGVyc3RhbmQgeW91IHdhbnQgdG8gbm90aWZ5 IGV2ZXJ5IG1lbWJlciBvZiB0aGUgcGlwZWxpbmUuCgpJIHRoaW5rIGl0IHNob3VsZCBiZSBlbm91 Z2ggdG8gbm90aWZ5IG9ubHkgdGhlIHNvdXJjZSwgYW5kIHRoZW4gc291cmNlCnNob3VsZCBkZWNp ZGUgaWYvd2hlbiB0aGUgaHBkIHNob3VsZCBiZSBwcm9wYWdhdGVkIHVwc3RyZWFtLgoKSXQgbG9v a3MgbW9yZSBnZW5lcmljIGZvciBtZS4KCgpSZWdhcmRzCgpBbmRyemVqCgoKPgo+Pj4gKwltdXRl eF91bmxvY2soJmJyaWRnZS0+aHBkX211dGV4KTsKPj4+ICt9Cj4+PiArRVhQT1JUX1NZTUJPTF9H UEwoZHJtX2JyaWRnZV9ocGRfbm90aWZ5KTsKPj4+ICsKPj4+ICAjaWZkZWYgQ09ORklHX09GCj4+ PiAgLyoqCj4+PiAgICogb2ZfZHJtX2ZpbmRfYnJpZGdlIC0gZmluZCB0aGUgYnJpZGdlIGNvcnJl c3BvbmRpbmcgdG8gdGhlIGRldmljZSBub2RlIGluCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2JyaWRnZS5oIGIvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oCj4+PiBpbmRleCAwOGRj MTVmOTNkZWQuLmI5NDQ1YWE1YjFlZiAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9i cmlkZ2UuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oCj4+PiBAQCAtMjMsOCAr MjMsOSBAQAo+Pj4gICNpZm5kZWYgX19EUk1fQlJJREdFX0hfXwo+Pj4gICNkZWZpbmUgX19EUk1f QlJJREdFX0hfXwo+Pj4gIAo+Pj4gLSNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4+PiAgI2luY2x1 ZGUgPGxpbnV4L2N0eXBlLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KPj4+ICsjaW5j bHVkZSA8bGludXgvbXV0ZXguaD4KPj4+ICAjaW5jbHVkZSA8ZHJtL2RybV9tb2RlX29iamVjdC5o Pgo+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+Cj4+PiAgCj4+PiBAQCAtMzM0LDYgKzMz NSwxMTAgQEAgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mgewo+Pj4gIAkgKi8KPj4+ICAJdm9pZCAo KmF0b21pY19wb3N0X2Rpc2FibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4+PiAgCQkJ CSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+Pj4gKwo+Pj4gKwkvKioKPj4+ ICsJICogQGRldGVjdDoKPj4+ICsJICoKPj4+ICsJICogQ2hlY2sgaWYgYW55dGhpbmcgaXMgYXR0 YWNoZWQgdG8gdGhlIGJyaWRnZSBvdXRwdXQuCj4+PiArCSAqCj4+PiArCSAqIFRoaXMgY2FsbGJh Y2sgaXMgb3B0aW9uYWwsIGlmIG5vdCBpbXBsZW1lbnRlZCB0aGUgYnJpZGdlIHdpbGwgYmUKPj4+ ICsJICogY29uc2lkZXJlZCBhcyBhbHdheXMgaGF2aW5nIGEgY29tcG9uZW50IGF0dGFjaGVkIHRv IGl0cyBvdXRwdXQuCj4+PiArCSAqIEJyaWRnZXMgdGhhdCBpbXBsZW1lbnQgdGhpcyBjYWxsYmFj ayBzaGFsbCBzZXQgdGhlCj4+PiArCSAqIERSTV9CUklER0VfT1BfREVURUNUIGZsYWcgaW4gdGhl aXIgJmRybV9icmlkZ2UtPm9wcy4KPj4+ICsJICoKPj4+ICsJICogUkVUVVJOUzoKPj4+ICsJICoK Pj4+ICsJICogZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgaW5kaWNhdGluZyB0aGUgYnJpZGdlIG91dHB1 dCBzdGF0dXMuCj4+PiArCSAqLwo+Pj4gKwllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzICgqZGV0 ZWN0KShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPj4+ICsKPj4+ICsJLyoqCj4+PiArCSAq IEBnZXRfbW9kZXM6Cj4+PiArCSAqCj4+PiArCSAqIEZpbGwgYWxsIG1vZGVzIGN1cnJlbnRseSB2 YWxpZCBmb3IgdGhlIHNpbmsgaW50byB0aGUgJmRybV9jb25uZWN0b3IKPj4+ICsJICogd2l0aCBk cm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4+PiArCSAqCj4+PiArCSAqIFRoZSBAZ2V0X21vZGVzIGNh bGxiYWNrIGlzIG1vc3RseSBpbnRlbmRlZCB0byBzdXBwb3J0IG5vbi1wcm9iYWJsZQo+Pj4gKwkg KiBkaXNwbGF5cyBzdWNoIGFzIG1hbnkgZml4ZWQgcGFuZWxzLiBCcmlkZ2VzIHRoYXQgc3VwcG9y dCByZWFkaW5nCj4+PiArCSAqIEVESUQgc2hhbGwgbGVhdmUgQGdldF9tb2RlcyB1bmltcGxlbWVu dGVkIGFuZCBpbXBsZW1lbnQgdGhlCj4+PiArCSAqICZkcm1fYnJpZGdlX2Z1bmNzLT5nZXRfZWRp ZCBjYWxsYmFjayBpbnN0ZWFkLgo+Pj4gKwkgKgo+Pj4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9w dGlvbmFsLiBCcmlkZ2VzIHRoYXQgaW1wbGVtZW50IGl0IHNoYWxsIHNldCB0aGUKPj4+ICsJICog RFJNX0JSSURHRV9PUF9NT0RFUyBmbGFnIGluIHRoZWlyICZkcm1fYnJpZGdlLT5vcHMuCj4+PiAr CSAqCj4+PiArCSAqIFJFVFVSTlM6Cj4+PiArCSAqCj4+PiArCSAqIFRoZSBudW1iZXIgb2YgbW9k ZXMgYWRkZWQgYnkgY2FsbGluZyBkcm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4+PiArCSAqLwo+Pj4g KwlpbnQgKCpnZXRfbW9kZXMpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4+PiArCQkJIHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+Pj4gKwo+Pj4gKwkvKioKPj4+ICsJICog QGdldF9lZGlkOgo+Pj4gKwkgKgo+Pj4gKwkgKiBSZWFkIGFuZCBwYXJzZSB0aGUgRURJRCBkYXRh IG9mIHRoZSBjb25uZWN0ZWQgZGlzcGxheS4KPj4+ICsJICoKPj4+ICsJICogVGhlIEBnZXRfZWRp ZCBjYWxsYmFjayBpcyB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgbW9kZQo+Pj4gKwkg KiBpbmZvcm1hdGlvbiBmb3IgYSBkaXNwbGF5IGNvbm5lY3RlZCB0byB0aGUgYnJpZGdlIG91dHB1 dC4gQnJpZGdlcwo+Pj4gKwkgKiB0aGF0IHN1cHBvcnQgcmVhZGluZCBFRElEIHNoYWxsIGltcGxl bWVudCB0aGlzIGNhbGxiYWNrIGFuZCBsZWF2ZQo+Pj4gKwkgKiB0aGUgQGdldF9tb2RlcyBjYWxs YmFjayB1bmltcGxlbWVudGVkLgo+Pj4gKwkgKgo+Pj4gKwkgKiBUaGUgY2FsbGVyIG9mIHRoaXMg b3BlcmF0aW9uIHNoYWxsIGZpcnN0IHZlcmlmeSB0aGUgb3V0cHV0Cj4+PiArCSAqIGNvbm5lY3Rp b24gc3RhdHVzIGFuZCByZWZyYWluIGZyb20gcmVhZGluZyBFRElEIGZyb20gYSBkaXNjb25uZWN0 ZWQKPj4+ICsJICogb3V0cHV0Lgo+Pj4gKwkgKgo+Pj4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9w dGlvbmFsLiBCcmlkZ2VzIHRoYXQgaW1wbGVtZW50IGl0IHNoYWxsIHNldCB0aGUKPj4+ICsJICog RFJNX0JSSURHRV9PUF9FRElEIGZsYWcgaW4gdGhlaXIgJmRybV9icmlkZ2UtPm9wcy4KPj4+ICsJ ICoKPj4+ICsJICogUkVUVVJOUzoKPj4+ICsJICoKPj4+ICsJICogQW4gZWRpZCBzdHJ1Y3R1cmUg bmV3bHkgYWxsb2NhdGVkIHdpdGgga21hbGxvYygpIChvciBzaW1pbGFyKSBvbgo+Pj4gKwkgKiBz dWNjZXNzLCBvciBOVUxMIG90aGVyd2lzZS4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3Ig ZnJlZWluZwo+Pj4gKwkgKiB0aGUgcmV0dXJuZWQgZWRpZCBzdHJ1Y3R1cmUgd2l0aCBrZnJlZSgp Lgo+Pj4gKwkgKi8KPj4+ICsJc3RydWN0IGVkaWQgKigqZ2V0X2VkaWQpKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UsCj4+PiArCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsK Pj4KPj4gSXQgb3ZlcmxhcHMgd2l0aCBnZXRfbW9kZXMsIEkgZ3Vlc3MgcHJlc2VuY2Ugb2Ygb25l IG9wcyBzaG91bGQgZGlzYWxsb3cKPj4gcHJlc2VuY2Ugb2YgYW5vdGhlciBvbmU/Cj4+Cj4+IEkg YW0gbm90IHJlYWxseSBjb252aW5jZWQgd2UgbmVlZCB0aGlzIG9wIGF0IGFsbCwgY2Fubm90IHdl IGp1c3QgYXNzaWduCj4+IHNvbWUgaGVscGVyIGZ1bmN0aW9uIHRvIC5nZXRfbW9kZXMgY2IsIHdo aWNoIHdpbGwgZG8gdGhlIHNhbWU/Cj4gUGxhbiBCKTogZGl0Y2ggLT5nZXRfZWRpZCwgcmVxdWly ZSB0aGF0IHRoZSBkcml2ZXIgaGFzIC0+Z2V0X21vZGVzIGluIHRoYXQKPiBjYXNlLCBhbmQgcmVx dWlyZSB0aGF0IGlmIGl0IGhhcyBhbiBlZGlkIGl0IG11c3QgZmlsbCBvdXQgY29ubmVjdG9yLT5p bmZvCj4gYW5kIGNvbm5lY3Rvci0+ZWRpZCBjb3JyZWN0bHkuCj4KPiBCdHcgaWYgYSBocGQgaGFw cGVucywgd2hvJ3MgcmVzcG9uaWJsZSBmb3IgbWFraW5nIHN1cmUgdGhlIGVkaWQvbW9kZSBsaXN0 Cj4gaW4gdGhlIGNvbm5lY3RvciBpcyB1cC10by1kYXRlPyBXaXRoIHlvdXIgY3VycmVudCBjYWxs YmFjayBkZXNpZ24gdGhhdCdzCj4gdXAgdG8gdGhlIGNhbGxiYWNrLCB3aGljaCBkb2Vzbid0IGZl ZWwgZ3JlYXQuIE1heWJlICBkcm1fYnJpZGdlX2hwZF9ub3RpZnkKPiBzaG91bGQgZ3VhcmFudGVl IHRoYXQgaXQnbGwgZmlyc3Qgd2FsayB0aGUgY29ubmVjdG9ycyB0byB1cGRhdGUgc3RhdHVzIGFu ZAo+IGVkaWQvbW9kZSBsaXN0IGZvciB0aGUgZmluYWwgZHJtX2Nvbm5lY3Rvci4gQW5kIHRoZW4g aW5zdGVhZCBvZiBqdXN0Cj4gcGFzc2luZyB0aGUgc2ltcGxlICJzdGF0dXMiLCBpdCdsbCBwYXNz IHRoZSBjb25uZWN0b3IsIHdpdGggZXZlcnl0aGluZwo+IGNvcnJlY3RseSB1cGRhdGVkLgo+Cj4g T3RoZXJ3aXNlIGV2ZXJ5b25lIGludGVyZXN0ZWQgaW4gdGhhdCBocGQgc2lnbmFsIHdpbGwgZ28g YW5kIHJlLWZldGNoIHRoZQo+IGVkaWQsIHdoaWNoIGlzIG5vdCBzbyBhd2Vzb21lIDotKQo+IC1E YW5pZWwKPgo+Pgo+PiBSZWdhcmRzCj4+Cj4+IEFuZHJ6ZWoKPj4KPj4KPj4+ICsKPj4+ICsJLyoq Cj4+PiArCSAqIEBsb3N0X2hvdHBsdWc6Cj4+PiArCSAqCj4+PiArCSAqIE5vdGlmeSB0aGUgYnJp ZGdlIG9mIGRpc3BsYXkgZGlzY29ubmVjdGlvbi4KPj4+ICsJICoKPj4+ICsJICogVGhpcyBjYWxs YmFjayBpcyBvcHRpb25hbCwgaXQgbWF5IGJlIGltcGxlbWVudGVkIGJ5IGJyaWRnZXMgdGhhdAo+ Pj4gKwkgKiBuZWVkIHRvIGJlIG5vdGlmaWVkIG9mIGRpc3BsYXkgZGlzY29ubmVjdGlvbiBmb3Ig aW50ZXJuYWwgcmVhc29ucy4KPj4+ICsJICogT25lIHVzZSBjYXNlIGlzIHRvIHJlc2V0IHRoZSBp bnRlcm5hbCBzdGF0ZSBvZiBDRUMgY29udHJvbGxlcnMgZm9yCj4+PiArCSAqIEhETUkgYnJpZGdl cy4KPj4+ICsJICovCj4+PiArCXZvaWQgKCpsb3N0X2hvdHBsdWcpKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpOwo+Pj4gKwo+Pj4gKwkvKioKPj4+ICsJICogQGhwZF9lbmFibGU6Cj4+PiArCSAq Cj4+PiArCSAqIEVuYWJsZSBob3QgcGx1ZyBkZXRlY3Rpb24uIEZyb20gbm93IG9uIHRoZSBicmlk Z2Ugc2hhbGwgY2FsbAo+Pj4gKwkgKiBkcm1fYnJpZGdlX2hwZF9ub3RpZnkoKSBlYWNoIHRpbWUg YSBjaGFuZ2UgaXMgZGV0ZWN0ZWQgaW4gdGhlIG91dHB1dAo+Pj4gKwkgKiBjb25uZWN0aW9uIHN0 YXR1cywgdW50aWwgaG90IHBsdWcgZGV0ZWN0aW9uIGdldHMgZGlzYWJsZWQgd2l0aAo+Pj4gKwkg KiBAaHBkX2Rpc2FibGUuCj4+PiArCSAqCj4+PiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9u YWwgYW5kIHNoYWxsIG9ubHkgYmUgaW1wbGVtZW50ZWQgYnkgYnJpZGdlcwo+Pj4gKwkgKiB0aGF0 IHN1cHBvcnQgaG90LXBsdWcgbm90aWZpY2F0aW9uIHdpdGhvdXQgcG9sbGluZy4gQnJpZGdlcyB0 aGF0Cj4+PiArCSAqIGltcGxlbWVudCBpdCBzaGFsbCBhbHNvIGltcGxlbWVudCB0aGUgQGhwZF9k aXNhYmxlIGNhbGxiYWNrIGFuZCBzZXQKPj4+ICsJICogdGhlIERSTV9CUklER0VfT1BfSFBEIGZs YWcgaW4gdGhlaXIgJmRybV9icmlkZ2UtPm9wcy4KPj4+ICsJICovCj4+PiArCXZvaWQgKCpocGRf ZW5hYmxlKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPj4+ICsKPj4+ICsJLyoqCj4+PiAr CSAqIEBocGRfZGlzYWJsZToKPj4+ICsJICoKPj4+ICsJICogRGlzYWJsZSBob3QgcGx1ZyBkZXRl Y3Rpb24uIE9uY2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBicmlkZ2UKPj4+ICsJICogc2hh bGwgbm90IGNhbGwgZHJtX2JyaWRnZV9ocGRfbm90aWZ5KCkgd2hlbiBhIGNoYW5nZSBpbiB0aGUg b3V0cHV0Cj4+PiArCSAqIGNvbm5lY3Rpb24gc3RhdHVzIG9jY3Vycy4KPj4+ICsJICoKPj4+ICsJ ICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbCBhbmQgc2hhbGwgb25seSBiZSBpbXBsZW1lbnRl ZCBieSBicmlkZ2VzCj4+PiArCSAqIHRoYXQgc3VwcG9ydCBob3QtcGx1ZyBub3RpZmljYXRpb24g d2l0aG91dCBwb2xsaW5nLiBCcmlkZ2VzIHRoYXQKPj4+ICsJICogaW1wbGVtZW50IGl0IHNoYWxs IGFsc28gaW1wbGVtZW50IHRoZSBAaHBkX2VuYWJsZSBjYWxsYmFjayBhbmQgc2V0Cj4+PiArCSAq IHRoZSBEUk1fQlJJREdFX09QX0hQRCBmbGFnIGluIHRoZWlyICZkcm1fYnJpZGdlLT5vcHMuCj4+ PiArCSAqLwo+Pj4gKwl2b2lkICgqaHBkX2Rpc2FibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UpOwo+Pj4gIH07Cj4+PiAgCj4+PiAgLyoqCj4+PiBAQCAtMzcyLDYgKzQ3NywzOCBAQCBzdHJ1 Y3QgZHJtX2JyaWRnZV90aW1pbmdzIHsKPj4+ICAJYm9vbCBkdWFsX2xpbms7Cj4+PiAgfTsKPj4+ ICAKPj4+ICsvKioKPj4+ICsgKiBlbnVtIGRybV9icmlkZ2Vfb3BzIC0gQml0bWFzayBvZiBvcGVy YXRpb25zIHN1cHBvcnRlZCBieSB0aGUgYnJpZGdlCj4+PiArICovCj4+PiArZW51bSBkcm1fYnJp ZGdlX29wcyB7Cj4+PiArCS8qKgo+Pj4gKwkgKiBARFJNX0JSSURHRV9PUF9ERVRFQ1Q6IFRoZSBi cmlkZ2UgY2FuIGRldGVjdCBkaXNwbGF5cyBjb25uZWN0ZWQgdG8KPj4+ICsJICogaXRzIG91dHB1 dC4gQnJpZGdlcyB0aGF0IHNldCB0aGlzIGZsYWcgc2hhbGwgaW1wbGVtZW50IHRoZQo+Pj4gKwkg KiAmZHJtX2JyaWRnZV9mdW5jcy0+ZGV0ZWN0IGNhbGxiYWNrLgo+Pj4gKwkgKi8KPj4+ICsJRFJN X0JSSURHRV9PUF9ERVRFQ1QgPSBCSVQoMCksCj4+PiArCS8qKgo+Pj4gKwkgKiBARFJNX0JSSURH RV9PUF9FRElEOiBUaGUgYnJpZGdlIGNhbiByZXRyaWV2ZSB0aGUgRURJRCBvZiB0aGUgZGlzcGxh eQo+Pj4gKwkgKiBjb25uZWN0ZWQgdG8gaXRzIG91dHB1dC4gQnJpZGdlcyB0aGF0IHNldCB0aGlz IGZsYWcgc2hhbGwgaW1wbGVtZW50Cj4+PiArCSAqIHRoZSAmZHJtX2JyaWRnZV9mdW5jcy0+Z2V0 X2VkaWQgY2FsbGJhY2suCj4+PiArCSAqLwo+Pj4gKwlEUk1fQlJJREdFX09QX0VESUQgPSBCSVQo MSksCj4+PiArCS8qKgo+Pj4gKwkgKiBARFJNX0JSSURHRV9PUF9IUEQ6IFRoZSBicmlkZ2UgY2Fu IGRldGVjdCBob3QtcGx1ZyBhbmQgaG90LXVucGx1Zwo+Pj4gKwkgKiB3aXRob3V0IHJlcXVpcmlu ZyBwb2xsaW5nLiBCcmlkZ2VzIHRoYXQgc2V0IHRoaXMgZmxhZyBzaGFsbAo+Pj4gKwkgKiBpbXBs ZW1lbnQgdGhlICZkcm1fYnJpZGdlX2Z1bmNzLT5ocGRfZW5hYmxlIGFuZAo+Pj4gKwkgKiAmZHJt X2JyaWRnZV9mdW5jcy0+ZGlzYWJsZV9ocGRfY2IgY2FsbGJhY2tzLgo+Pj4gKwkgKi8KPj4+ICsJ RFJNX0JSSURHRV9PUF9IUEQgPSBCSVQoMiksCj4+PiArCS8qKgo+Pj4gKwkgKiBARFJNX0JSSURH RV9PUF9NT0RFUzogVGhlIGJyaWRnZSBjYW4gcmV0cmlldmluZyB0aGUgbW9kZXMgc3VwcG9ydGVk Cj4+PiArCSAqIGJ5IHRoZSBkaXNwbGF5IGF0IGl0cyBvdXRwdXQuIFRoaXMgZG9lcyBub3QgaW5j bHVkZSByZWFkaW5kIEVESUQKPj4+ICsJICogd2hpY2ggaXMgc2VwYXJhdGVseSBjb3ZlcmVkIGJ5 IEBEUk1fQlJJREdFX09QX0VESUQuIEJyaWRnZXMgdGhhdCBzZXQKPj4+ICsJICogdGhpcyBmbGFn IHNoYWxsIGltcGxlbWVudCB0aGUgJmRybV9icmlkZ2VfZnVuY3MtPmdldF9tb2RlcyBjYWxsYmFj ay4KPj4+ICsJICovCj4+PiArCURSTV9CUklER0VfT1BfTU9ERVMgPSBCSVQoMyksCj4+PiArfTsK Pj4+ICsKPj4+ICAvKioKPj4+ICAgKiBzdHJ1Y3QgZHJtX2JyaWRnZSAtIGNlbnRyYWwgRFJNIGJy aWRnZSBjb250cm9sIHN0cnVjdHVyZQo+Pj4gICAqLwo+Pj4gQEAgLTM5OCw2ICs1MzUsMjkgQEAg c3RydWN0IGRybV9icmlkZ2Ugewo+Pj4gIAljb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyAq ZnVuY3M7Cj4+PiAgCS8qKiBAZHJpdmVyX3ByaXZhdGU6IHBvaW50ZXIgdG8gdGhlIGJyaWRnZSBk cml2ZXIncyBpbnRlcm5hbCBjb250ZXh0ICovCj4+PiAgCXZvaWQgKmRyaXZlcl9wcml2YXRlOwo+ Pj4gKwkvKiogQG9wczogYml0bWFzayBvZiBvcGVyYXRpb25zIHN1cHBvcnRlZCBieSB0aGUgYnJp ZGdlICovCj4+PiArCWVudW0gZHJtX2JyaWRnZV9vcHMgb3BzOwo+Pj4gKwkvKioKPj4+ICsJICog QHR5cGU6IFR5cGUgb2YgdGhlIGNvbm5lY3Rpb24gYXQgdGhlIGJyaWRnZSBvdXRwdXQKPj4+ICsJ ICogKERSTV9NT0RFX0NPTk5FQ1RPUl8qKS4gRm9yIGJyaWRnZXMgYXQgdGhlIGVuZCBvZiB0aGlz IGNoYWluIHRoaXMKPj4+ICsJICogaWRlbnRpZmllcyB0aGUgdHlwZSBvZiBjb25uZWN0ZWQgZGlz cGxheS4KPj4+ICsJICovCj4+PiArCWludCB0eXBlOwo+Pj4gKwkvKiogcHJpdmF0ZTogKi8KPj4+ ICsJLyoqCj4+PiArCSAqIEBocGRfbXV0ZXg6IFByb3RlY3RzIHRoZSBAaHBkX2NiIGFuZCBAaHBk X2RhdGEgZmllbGRzLgo+Pj4gKwkgKi8KPj4+ICsJc3RydWN0IG11dGV4IGhwZF9tdXRleDsKPj4+ ICsJLyoqCj4+PiArCSAqIEBocGRfY2I6IEhvdCBwbHVnIGRldGVjdGlvbiBjYWxsYmFjaywgcmVn aXN0ZXJlZCB3aXRoCj4+PiArCSAqIGRybV9icmlkZ2VfaHBkX2VuYWJsZSgpLgo+Pj4gKwkgKi8K Pj4+ICsJdm9pZCAoKmhwZF9jYikodm9pZCAqZGF0YSwgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1 cyBzdGF0dXMpOwo+Pj4gKwkvKioKPj4+ICsJICogQGhwZF9kYXRhOiBQcml2YXRlIGRhdGEgcGFz c2VkIHRvIHRoZSBIb3QgcGx1ZyBkZXRlY3Rpb24gY2FsbGJhY2sKPj4+ICsJICogQGhwZF9jYi4K Pj4+ICsJICovCj4+PiArCXZvaWQgKmhwZF9kYXRhOwo+Pj4gIH07Cj4+PiAgCj4+PiAgdm9pZCBk cm1fYnJpZGdlX2FkZChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPj4+IEBAIC00MjgsNiAr NTg4LDE0IEBAIHZvaWQgZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlLAo+Pj4gIHZvaWQgZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UsCj4+PiAgCQkJICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKTsKPj4+ICAKPj4+ICt2b2lkIGRybV9icmlkZ2VfaHBkX2VuYWJsZShzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLAo+Pj4gKwkJCSAgIHZvaWQgKCpjYikodm9pZCAqZGF0YSwKPj4+ICsJ CQkJICAgICAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpLAo+Pj4gKwkJCSAgIHZv aWQgKmRhdGEpOwo+Pj4gK3ZvaWQgZHJtX2JyaWRnZV9ocGRfZGlzYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKTsKPj4+ICt2b2lkIGRybV9icmlkZ2VfaHBkX25vdGlmeShzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLAo+Pj4gKwkJCSAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3Rh dHVzKTsKPj4+ICsKPj4+ICAjaWZkZWYgQ09ORklHX0RSTV9QQU5FTF9CUklER0UKPj4+ICBzdHJ1 Y3QgZHJtX2JyaWRnZSAqZHJtX3BhbmVsX2JyaWRnZV9hZGQoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwsCj4+PiAgCQkJCQl1MzIgY29ubmVjdG9yX3R5cGUpOwo+PgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs