From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 08/60] drm/bridge: Extend bridge API to disable connector creation Date: Thu, 8 Aug 2019 17:25:25 +0300 Message-ID: <20190808142525.GL6055@pendragon.ideasonboard.com> References: <20190707180852.5512-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-5-laurent.pinchart@ideasonboard.com> <8b51b540-61ec-435e-e87a-da0dfbbc70a6@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id F30746E840 for ; Thu, 8 Aug 2019 14:25:30 +0000 (UTC) Content-Disposition: inline In-Reply-To: <8b51b540-61ec-435e-e87a-da0dfbbc70a6@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda Cc: Maxime Ripard , Sebastian Reichel , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Sean Paul List-Id: dri-devel@lists.freedesktop.org SGkgQW5kcnplaiwKCk9uIFdlZCwgSnVsIDE3LCAyMDE5IGF0IDA4OjM5OjQ3QU0gKzAyMDAsIEFu ZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gT24gMDcuMDcuMjAxOSAyMDoxOCwgTGF1cmVudCBQaW5jaGFy dCB3cm90ZToKPiA+IE1vc3QgYnJpZGdlIGRyaXZlcnMgY3JlYXRlIGEgRFJNIGNvbm5lY3RvciB0 byBtb2RlbCB0aGUgY29ubmVjdG9yIGF0IHRoZQo+ID4gb3V0cHV0IG9mIHRoZSBicmlkZ2UuIFRo aXMgbW9kZWwgaXMgaGlzdG9yaWNhbCBhbmQgaGFzIHdvcmtlZCBwcmV0dHkKPiA+IHdlbGwgc28g ZmFyLCBidXQgY2F1c2VzIHNldmVyYWwgaXNzdWVzOgo+ID4KPiA+IC0gSXQgcHJldmVudHMgc3Vw cG9ydGluZyBtb3JlIGNvbXBsZXggZGlzcGxheSBwaXBlbGluZXMgd2hlcmUgRFJNCj4gPiBjb25u ZWN0b3Igb3BlcmF0aW9ucyBhcmUgc3BsaXQgb3ZlciBtdWx0aXBsZSBjb21wb25lbnRzLiBGb3Ig aW5zdGFuY2UgYQo+ID4gcGlwZWxpbmUgd2l0aCBhIGJyaWRnZSBjb25uZWN0ZWQgdG8gdGhlIERE QyBzaWduYWxzIHRvIHJlYWQgRURJRCBkYXRhLAo+ID4gYW5kIGFub3RoZXIgb25lIGNvbm5lY3Rl ZCB0byB0aGUgSFBEIHNpZ25hbCB0byBkZXRlY3QgY29ubmVjdGlvbiBhbmQKPiA+IGRpc2Nvbm5l Y3Rpb24sIHdpbGwgbm90IGJlIHBvc3NpYmxlIHRvIHN1cHBvcnQgdGhyb3VnaCB0aGlzIG1vZGVs Lgo+ID4KPiA+IC0gSXQgcmVxdWlyZXMgZXZlcnkgYnJpZGdlIGRyaXZlciB0byBpbXBsZW1lbnQg c2ltaWxhciBjb25uZWN0b3IKPiA+IGhhbmRsaW5nIGNvZGUsIHJlc3VsdGluZyBpbiBjb2RlIGR1 cGxpY2F0aW9uLgo+ID4KPiA+IC0gSXQgYXNzdW1lcyB0aGF0IGEgYnJpZGdlIHdpbGwgZWl0aGVy IGJlIHdpcmVkIHRvIGEgY29ubmVjdG9yIG9yIHRvCj4gPiBhbm90aGVyIGJyaWRnZSwgYnV0IGRv ZXNuJ3Qgc3VwcG9ydCBicmlkZ2VzIHRoYXQgY2FuIGJlIHVzZWQgaW4gYm90aAo+ID4gcG9zaXRp b25zIHZlcnkgd2VsbCAoYWx0aG91Z2ggdGhlcmUgaXMgc29tZSBhZC1ob2Mgc3VwcG9ydCBmb3Ig dGhpcyBpbgo+ID4gdGhlIGFuYWxvZ2l4X2RwIGJyaWRnZSBkcml2ZXIpLgo+ID4KPiA+IEluIG9y ZGVyIHRvIHNvbHZlIHRoZXNlIGlzc3Vlcywgb3duZXJzaGlwIG9mIHRoZSBjb25uZWN0b3Igc2hv dWxkIGJlCj4gPiBtb3ZlZCB0byB0aGUgZGlzcGxheSBjb250cm9sbGVyIGRyaXZlciAod2hlcmUg aXQgY2FuIGJlIGltcGxlbWVudGVkCj4gPiB1c2luZyBoZWxwZXJzIHByb3ZpZGVkIGJ5IHRoZSBj b3JlKS4KPiA+Cj4gPiBFeHRlbmQgdGhlIGJyaWRnZSBBUEkgdG8gYWxsb3cgZGlzYWJsaW5nIGNv bm5lY3RvciBjcmVhdGlvbiBpbiBicmlkZ2UKPiA+IGRyaXZlcnMgYXMgYSBmaXJzdCBzdGVwIHRv d2FyZHMgdGhlIG5ldyBtb2RlbC4gVGhlIG5ldyBjcmVhdGVfY29ubmVjdG9yCj4gPiBhcmd1bWVu dCB0byB0aGUgYnJpZGdlIC5hdHRhY2goKSBvcGVyYXRpb24gdGVsbHMgdGhlIGJyaWRnZSBkcml2 ZXIKPiA+IHdoZXRoZXIgdG8gY3JlYXRlIGEgY29ubmVjdG9yLiBTZXQgdGhlIGFyZ3VtZW50IHRv IHRydWUgdW5jb25kaXRpb25hbGx5LAo+ID4gYW5kIG1vZGlmeSBhbGwgZXhpc3RpbmcgYnJpZGdl IGRyaXZlcnMgdG8gcmV0dXJuIGFuIGVycm9yIHdoZW4gY29ubmVjdG9yCj4gPiBjcmVhdGlvbiBp cyBub3QgcmVxdWVzdGVkIGFzIHRoZXkgZG9uJ3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUgeWV0Lgo+ ID4KPiA+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRA aWRlYXNvbmJvYXJkLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hcmMvYXJjcGd1 X2hkbWkuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYyAgICAgICAgIHwgMiArLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jICAgICAgICAgICAgIHwg NiArKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYyAg ICAgICAgICAgICAgICB8IDYgKysrKystCj4gPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFs b2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgICAgICAgfCA4ICsrKysrKy0tCj4gPiAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9jZG5zLWRzaS5jICAgICAgICAgICAgICAgICAgICAgICAgfCA2ICsrKyst LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbHZkcy1lbmNvZGVyLmMgICAgICAgICAgICAg ICAgICAgIHwgNCArKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9tZWdhY2hpcHMtc3Rk cHh4eHgtZ2UtYjg1MHYzLWZ3LmMgfCA2ICsrKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2UvbnhwLXB0bjM0NjAuYyAgICAgICAgICAgICAgICAgICAgIHwgNiArKysrKy0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3BhbmVsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDUg KysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIuYyAgICAgICAg ICAgICAgICAgICB8IDUgKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMngu YyAgICAgICAgICAgICAgICAgICAgICAgICB8IDYgKysrKystCj4gPiAgZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zaWwtc2lpODYyMC5jICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPiAgZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9zaW1wbGUtYnJpZGdlLmMgICAgICAgICAgICAgICAgICAgfCA2 ICsrKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jICAg ICAgICAgICAgICAgIHwgOCArKysrKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lu b3BzeXMvZHctbWlwaS1kc2kuYyAgICAgICAgICAgIHwgOCArKysrKy0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgNSArKysr LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYyAgICAgICAgICAgICAgICAg ICAgICAgIHwgNSArKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGhjNjNsdmQxMDI0 LmMgICAgICAgICAgICAgICAgICAgIHwgNSArKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2UvdGktc242NWRzaTg2LmMgICAgICAgICAgICAgICAgICAgIHwgNSArKysrLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvdGktdGZwNDEwLmMgICAgICAgICAgICAgICAgICAgICAgIHwgNSAr KysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgNSArKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19o ZWxwZXIuYyAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RwLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMgICAgICAgICAgICAgICAgICB8IDQgKyst LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYyAgICAgICAgICAgICAg ICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX3Jn Yi5jICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v a2lyaW4vZHdfZHJtX2RzaS5jICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pMmMvdGRhOTk4eF9kcnYuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgOCArKysrKystLQo+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jICAg ICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tY2RlL21jZGVfZHNp LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNiArKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RwaS5jICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jICAgICAgICAgICAgICAgICAgICAgICB8 IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyAgICAgICAgICAg ICAgICAgICAgICB8IDggKysrKysrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lf bWFuYWdlci5jICAgICAgICAgICAgICAgICAgICB8IDQgKystLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9tc20vZWRwL2VkcF9icmlkZ2UuYyAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jICAgICAgICAgICAgICAgICAgIHwg MiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMgICAgICAgICAgICAg ICAgICAgICAgIHwgMyArKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Vu Y29kZXIuYyAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2x2ZHMuYyAgICAgICAgICAgICAgICAgICAgICB8IDcgKysrKystLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMgICAgICAgICAgICAgICAgIHwgMiAr LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9yZ2IuYyAgICAgICAgICAg ICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hk YS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9zdGkvc3RpX2hkbWkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9zdG0vbHRkYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMgICAgICAgICAgICAg ICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMv dGlsY2RjX2V4dGVybmFsLmMgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2RwaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RzaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMiArLQo+ID4gIGluY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNCArKy0tCj4gPiAgNTMgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2VydGlv bnMoKyksIDY3IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYXJjL2FyY3BndV9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1pLmMK PiA+IGluZGV4IDk4YWFjNzQzY2MyNi4uNzM5ZjIzNThmMWQ1IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJjL2FyY3BndV9oZG1pLmMKPiA+IEBAIC0zOSw3ICszOSw3IEBAIGludCBhcmNwZ3VfZHJtX2hk bWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+ ID4gIAkJcmV0dXJuIHJldDsKPiA+ICAKPiA+ICAJLyogTGluayBkcm1fYnJpZGdlIHRvIGVuY29k ZXIgKi8KPiA+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxM KTsKPiA+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0 cnVlKTsKPiAKPiBGZXcgc3VnZ2VzdGlvbnM6Cj4gCj4gMS4gTWF5YmUgaXQgd291bGQgYmUgbW9y ZSBjb252ZW5pZW50IHRvIGFkZCBmbGFncyBhcmd1bWVudCBpbnN0ZWFkIG9mIGJvb2w6Cj4gCj4g LSBjb2RlIHNob3VsZCBiZSBtb3JlIHJlYWRhYmxlOiByZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChl bmNvZGVyLCBicmlkZ2UsCj4gTlVMTCwgRFJNX0JSSURHRV9GTEFHX05PX0NPTk5FQ1RPUikKPiAK PiAtIGl0IGNhbiBiZSBlYXNpbHkgZXhwYW5kZWQgbGF0ZXIgd2l0aCBvdGhlciBmbGFncywgdGhl cmUgYXQgbGVhc3QgdHdvCj4gZHJpdmVycyB3aGljaCB3b3VsZCBiZW5lZml0IGZyb20gRFJNX0JS SURHRV9GTEFHX05PX0NIQUlOSU5HIGZsYWcuCgpQbGVhc2Ugbm90ZSB0aGF0IEkgdGhpbmsgdGhp cyBmbGFnIHNob3VsZCBkaXNhcHBlYXIgb25jZSBkcml2ZXJzIGdldApjb252ZXJ0ZWQgdG8gdGhl IG5ldyBtb2RlbC4gVGhpcyB3aWxsIGhvd2V2ZXIgdGFrZSBzb21lIHRpbWUuIEknbSBub3QKb3Bw b3NlZCB0byB0dXJuaW5nIHRoZSBib29rIGludG8gYSBmbGFnIHRob3VnaC4gSSB3YXMgaG9waW5n IHRvIHJlY2VpdmUKbW9yZSByZXZpZXcgY29tbWVudHMgb24gdGhpcyBwYXJ0aWN1bGFyIHBhdGNo LCBidXQgYXMgdGhhdCdzIG5vdCB0aGUKY2FzZSwgSSBjYW4gYWxyZWFkeSBwcm9jZWVkIHdpdGgg dGhlIGNoYW5nZS4KCldoYXQgd291bGQgdGhlIERSTV9CUklER0VfRkxBR19OT19DSEFJTklORyBm bGFnIGJlIHVzZWQgZm9yID8KCj4gMi4gSWYgdGhlIHBhdGNoIGNhbiBiZSBhcHBsaWVkIGF0b21p Y2FsbHkgaXQgaXMgT0sgYXMgaXMsIGlmIG5vdCB5b3UgY2FuCj4gdXNlIHByZXByb2Nlc3NvciB2 YXJhcmcgbWFnaWMgdG8gc3VwcG9ydCBuZXcgYW5kIG9sZCBzeW50YXgsIHN0aCBsaWtlOgo+IAo+ ICNkZWZpbmUgX2RybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgcHJldiwgZmxhZ3Ms IG9wdGFyZy4uLikKPiBfX2RybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgcHJldiwg ZmxhZ3MpCj4gCj4gI2RlZmluZSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIHBy ZXYsIG9wdGFyZy4uLikKPiBfZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBwcmV2 LCAjI29wdGFyZywgMCkKCkdvb2QgcG9pbnQuIEknbGwgdHJ5IHRvIGRvIHRoaXMgYXRvbWljYWxs eSwgYnV0IGlmIGl0IGZhaWxzIEknbGwgZm9sbG93CnlvdXIgc3VnZ2VzdGlvbi4KCj4gMy4gTWF5 YmUgbW9yZSBjb252ZW5pZW50IHdvdWxkIGJlIHRvIGp1c3Qgc2V0IHRoZSBmbGFncyBkaXJlY3Rs eSBiZWZvcmUKPiBhdHRhY2htZW50Ogo+IAo+IMKgwqDCoCBicmlkZ2UtPmRvbnRfY3JlYXRlX2Nv bm5lY3RvciA9IHRydWU7Cj4gCj4gwqDCoMKgIHJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29k ZXIsIGJyaWRnZSwgTlVMTCk7Cj4gCj4gwqDCoMKgIFRoaXMgd2F5IGl0IHdpbGwgYmUgc3RpbGwg ZXhwYW5kYWJsZSwgYW5kIGxlc3MgY2hhbmdlcy4KCkJyaWRnZXMgdGhhdCBhcmUgY2hhaW5lZCB3 b3VsZCBuZWVkIHRvIHNldCB0aGUgZG9udF9jcmVhdGVfY29ubmVjdG9yCmZsYWcgb2YgdGhlIG5l eHQgYnJpZGdlLiBJdCB3b3VsZCBiZSBhIGJpdCB1Z2x5LCBidXQgd291bGQgbWFrZSB0aGlzCnBh dGNoIHNtYWxsZXIuIE9uIHRoZSBvdGhlciBoYW5kIHdlIHdvdWxkIG5lZWQgdG8ga2VlcCB0aGUg aWYKKCFjcmVhdGVfY29ubmVjdG9yKSBjaGVjayBpbiB0aGUgLmF0dGFjaCgpIGhhbmRsZXJzLCBh bmQgaXQgd291bGQgYmUKZWFzaWVyIHRvIG1pc3MgaXQgaW4gYnJpZGdlIGRyaXZlcnMgKGN1cnJl bnQgb3IgbmV3KSB0aGFuIHdpdGggYW4KZXhwbGljaXQgYXJndW1lbnQgdG8gdGhlIC5hdHRhY2go KSBvcGVyYXRpb24uIEkgd291bGQgdGh1cyBoYXZlIGEKcHJlZmVyZW5jZSBmb3IgdGhlIG5ldyBh cmd1bWVudCB0byAuYXR0YWNoKCkuIEVzcGVjaWFsbHkgaWYgaXQgY2FuIGhlbHAKeW91IHdpdGgg RFJNX0JSSURHRV9GTEFHX05PX0NIQUlOSU5HIDotKQoKPiA+ICAJaWYgKHJldCkKPiA+ICAJCWRy bV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX291dHB1dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX291dHB1dC5jCj4gPiBpbmRleCBmNzNkOGE5MjI3 NGUuLjYwNjg0MWQyYzBiMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1o bGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVs LWhsY2RjL2F0bWVsX2hsY2RjX291dHB1dC5jCj4gPiBAQCAtMTIzLDcgKzEyMyw3IEBAIHN0YXRp YyBpbnQgYXRtZWxfaGxjZGNfYXR0YWNoX2VuZHBvaW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBlbmRwb2ludCkKPiA+ICAJfQo+ID4gIAo+ID4gIAlpZiAoYnJpZGdlKSB7Cj4gPiAtCQly ZXQgPSBkcm1fYnJpZGdlX2F0dGFjaCgmb3V0cHV0LT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ ID4gKwkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJm91dHB1dC0+ZW5jb2RlciwgYnJpZGdlLCBO VUxMLCB0cnVlKTsKPiA+ICAJCWlmICghcmV0KQo+ID4gIAkJCXJldHVybiAwOwo+ID4gIAo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMKPiA+IGluZGV4 IGY2ZDI2ODFmNjkyNy4uYzY3YmEzMGVkZWM0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jCj4gPiBAQCAtODQ3LDExICs4NDcsMTUgQEAg c3RhdGljIHZvaWQgYWR2NzUxMV9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKPiA+ICAJYWR2NzUxMV9tb2RlX3NldChhZHYsIG1vZGUsIGFkal9tb2RlKTsKPiA+ICB9 Cj4gPiAgCj4gPiAtc3RhdGljIGludCBhZHY3NTExX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSkKPiA+ICtzdGF0aWMgaW50IGFkdjc1MTFfYnJpZGdlX2F0dGFjaChzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4gKwkJCQkgYm9vbCBjcmVhdGVfY29ubmVjdG9yKQo+ ID4gIHsKPiA+ICAJc3RydWN0IGFkdjc1MTEgKmFkdiA9IGJyaWRnZV90b19hZHY3NTExKGJyaWRn ZSk7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiArCWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiA+ ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ ID4gIAkJRFJNX0VSUk9SKCJQYXJlbnQgZW5jb2RlciBvYmplY3Qgbm90IGZvdW5kIik7Cj4gPiAg CQlyZXR1cm4gLUVOT0RFVjsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2FuYWxvZ2l4LWFueDc4eHguYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgtYW54 Nzh4eC5jCj4gPiBpbmRleCAzYzdjYzVhZjczNWMuLmY3Mjc1NWU1OWUxMiAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgtYW54Nzh4eC5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYwo+ID4gQEAgLTk5OCwxMSAr OTk4LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBhbng3OHh4 X2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gPiAgfTsKPiA+ICAKPiA+IC1z dGF0aWMgaW50IGFueDc4eHhfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl KQo+ID4gK3N0YXRpYyBpbnQgYW54Nzh4eF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCj4gPiArCQkJCSBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gPiAgewo+ID4gIAlz dHJ1Y3QgYW54Nzh4eCAqYW54Nzh4eCA9IGJyaWRnZV90b19hbng3OHh4KGJyaWRnZSk7Cj4gPiAg CWludCBlcnI7Cj4gPiAgCj4gPiArCWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICsJCXJldHVy biAtRUlOVkFMOwo+ID4gKwo+ID4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ID4gIAkJRFJN X0VSUk9SKCJQYXJlbnQgZW5jb2RlciBvYmplY3Qgbm90IGZvdW5kIik7Cj4gPiAgCQlyZXR1cm4g LUVOT0RFVjsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4 L2FuYWxvZ2l4X2RwX2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5h bG9naXhfZHBfY29yZS5jCj4gPiBpbmRleCAzZjdmNDg4MGJlMDkuLmY2YTFiZGNjMDlkNiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBf Y29yZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4 X2RwX2NvcmUuYwo+ID4gQEAgLTExNzksMTMgKzExNzksMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX2Z1bmNzIGFuYWxvZ2l4X2RwX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+ ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rl c3Ryb3lfc3RhdGUsCj4gPiAgfTsKPiA+ICAKPiA+IC1zdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2Jy aWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ICtzdGF0aWMgaW50IGFu YWxvZ2l4X2RwX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+ICsJ CQkJICAgICBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlICpkcCA9IGJyaWRnZS0+ZHJpdmVyX3ByaXZhdGU7Cj4gPiAgCXN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciA9IGRwLT5lbmNvZGVyOwo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gTlVMTDsKPiA+ICAJaW50IHJldCA9IDA7Cj4gPiAgCj4gPiArCWlm ICghY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gIAlp ZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ID4gIAkJRFJNX0VSUk9SKCJQYXJlbnQgZW5jb2RlciBv YmplY3Qgbm90IGZvdW5kIik7Cj4gPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiA+IEBAIC0xNDYzLDcg KzE0NjcsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2NyZWF0ZV9icmlkZ2Uoc3RydWN0IGRy bV9kZXZpY2UgKmRybV9kZXYsCj4gPiAgCWJyaWRnZS0+ZHJpdmVyX3ByaXZhdGUgPSBkcDsKPiA+ ICAJYnJpZGdlLT5mdW5jcyA9ICZhbmFsb2dpeF9kcF9icmlkZ2VfZnVuY3M7Cj4gPiAgCj4gPiAt CXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGRwLT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ID4g KwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChkcC0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVl KTsKPiA+ICAJaWYgKHJldCkgewo+ID4gIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYXR0YWNoIGRy bSBicmlkZ2VcbiIpOwo+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9jZG5zLWRzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9j ZG5zLWRzaS5jCj4gPiBpbmRleCA2MTY2ZGNhNmJlODEuLjQ1ZjUwODUyY2ZiYiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1kc2kuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9jZG5zLWRzaS5jCj4gPiBAQCAtNjQ1LDcgKzY0NSw4IEBAIHN0YXRp YyBpbnQgY2Ruc19kc2lfY2hlY2tfY29uZihzdHJ1Y3QgY2Ruc19kc2kgKmRzaSwKPiA+ICAJcmV0 dXJuIDA7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBpbnQgY2Ruc19kc2lfYnJpZGdlX2F0dGFj aChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ID4gK3N0YXRpYyBpbnQgY2Ruc19kc2lfYnJp ZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4gKwkJCQkgIGJvb2wgY3Jl YXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBjZG5zX2RzaV9pbnB1dCAqaW5wdXQg PSBicmlkZ2VfdG9fY2Ruc19kc2lfaW5wdXQoYnJpZGdlKTsKPiA+ICAJc3RydWN0IGNkbnNfZHNp ICpkc2kgPSBpbnB1dF90b19kc2koaW5wdXQpOwo+ID4gQEAgLTY1Nyw3ICs2NTgsOCBAQCBzdGF0 aWMgaW50IGNkbnNfZHNpX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkK PiA+ICAJCXJldHVybiAtRU5PVFNVUFA7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JcmV0dXJuIGRybV9i cmlkZ2VfYXR0YWNoKGJyaWRnZS0+ZW5jb2Rlciwgb3V0cHV0LT5icmlkZ2UsIGJyaWRnZSk7Cj4g PiArCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChicmlkZ2UtPmVuY29kZXIsIG91dHB1dC0+YnJp ZGdlLCBicmlkZ2UsCj4gPiArCQkJCSBjcmVhdGVfY29ubmVjdG9yKTsKPiA+ICB9Cj4gPiAgCj4g PiAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbHZk cy1lbmNvZGVyLmMKPiA+IGluZGV4IDJhYjJjMjM0ZjI2Yy4uYmFmYWI5NzUyMWFmIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYwo+ID4gQEAgLTE4LDE0ICsxOCwx NCBAQCBzdHJ1Y3QgbHZkc19lbmNvZGVyIHsKPiA+ICAJc3RydWN0IGdwaW9fZGVzYyAqcG93ZXJk b3duX2dwaW87Cj4gPiAgfTsKPiA+ICAKPiA+IC1zdGF0aWMgaW50IGx2ZHNfZW5jb2Rlcl9hdHRh Y2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ICtzdGF0aWMgaW50IGx2ZHNfZW5jb2Rl cl9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgYm9vbCBjcmVhdGVfY29ubmVjdG9y KQo+ID4gIHsKPiA+ICAJc3RydWN0IGx2ZHNfZW5jb2RlciAqbHZkc19lbmNvZGVyID0gY29udGFp bmVyX29mKGJyaWRnZSwKPiA+ICAJCQkJCQkJIHN0cnVjdCBsdmRzX2VuY29kZXIsCj4gPiAgCQkJ CQkJCSBicmlkZ2UpOwo+ID4gIAo+ID4gIAlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdl LT5lbmNvZGVyLCBsdmRzX2VuY29kZXItPnBhbmVsX2JyaWRnZSwKPiA+IC0JCQkJIGJyaWRnZSk7 Cj4gPiArCQkJCSBicmlkZ2UsIGNyZWF0ZV9jb25uZWN0b3IpOwo+ID4gIH0KPiA+ICAKPiA+ICBz dGF0aWMgdm9pZCBsdmRzX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9tZWdhY2hpcHMtc3RkcHh4 eHgtZ2UtYjg1MHYzLWZ3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL21lZ2FjaGlwcy1zdGRw eHh4eC1nZS1iODUwdjMtZncuYwo+ID4gaW5kZXggNzkzMTFmODM1NGJkLi40MjUwZTIyMzVmNTAg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL21lZ2FjaGlwcy1zdGRweHh4 eC1nZS1iODUwdjMtZncuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9tZWdhY2hp cHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMKPiA+IEBAIC0yMDYsMTMgKzIwNiwxNyBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgZ2VfYjg1MHYzX2x2ZHNfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAq ZGV2X2lkKQo+ID4gIAlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRp YyBpbnQgZ2VfYjg1MHYzX2x2ZHNfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4g PiArc3RhdGljIGludCBnZV9iODUwdjNfbHZkc19hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKPiA+ICsJCQkJIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAgCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmZ2VfYjg1MHYzX2x2ZHNfcHRyLT5jb25uZWN0 b3I7Cj4gPiAgCXN0cnVjdCBpMmNfY2xpZW50ICpzdGRwNDAyOF9pMmMKPiA+ICAJCQk9IGdlX2I4 NTB2M19sdmRzX3B0ci0+c3RkcDQwMjhfaTJjOwo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gKwlp ZiAoIWNyZWF0ZV9jb25uZWN0b3IpCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICAJ aWYgKCFicmlkZ2UtPmVuY29kZXIpIHsKPiA+ICAJCURSTV9FUlJPUigiUGFyZW50IGVuY29kZXIg b2JqZWN0IG5vdCBmb3VuZCIpOwo+ID4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9ueHAtcHRuMzQ2MC5jCj4gPiBpbmRleCA5OGJjNjUwYjhjOTUuLjZiZWY0MzkyNjFk YSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jCj4gPiBAQCAtMjM4 LDExICsyMzgsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHB0 bjM0NjBfY29ubmVjdG9yX2Z1bmNzID0gewo+ID4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBk cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiA+ICB9Owo+ID4gIAo+ ID4gLXN0YXRpYyBpbnQgcHRuMzQ2MF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UpCj4gPiArc3RhdGljIGludCBwdG4zNDYwX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiA+ICsJCQkJIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4g PiAgCXN0cnVjdCBwdG4zNDYwX2JyaWRnZSAqcHRuX2JyaWRnZSA9IGJyaWRnZV90b19wdG4zNDYw KGJyaWRnZSk7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiArCWlmICghY3JlYXRlX2Nvbm5lY3Rv cikKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rl cikgewo+ID4gIAkJRFJNX0VSUk9SKCJQYXJlbnQgZW5jb2RlciBvYmplY3Qgbm90IGZvdW5kIik7 Cj4gPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhbmVsLmMKPiA+IGluZGV4 IGIxMmFlM2E0YzVmMS4uOThhZDRhYmYyNDA5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9wYW5lbC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhbmVs LmMKPiA+IEBAIC01MiwxMiArNTIsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2Z1bmNzIHBhbmVsX2JyaWRnZV9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gPiAgCS5hdG9taWNf ZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRl LAo+ID4gIH07Cj4gPiAgCj4gPiAtc3RhdGljIGludCBwYW5lbF9icmlkZ2VfYXR0YWNoKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiArc3RhdGljIGludCBwYW5lbF9icmlkZ2VfYXR0YWNo KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBwYW5lbF9icmlkZ2UgKnBhbmVsX2JyaWRnZSA9IGRybV9icmlkZ2VfdG9f cGFuZWxfYnJpZGdlKGJyaWRnZSk7Cj4gPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSAmcGFuZWxfYnJpZGdlLT5jb25uZWN0b3I7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiAr CWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4g IAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ID4gIAkJRFJNX0VSUk9SKCJNaXNzaW5nIGVuY29k ZXJcbiIpOwo+ID4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3Bh cmFkZS1wczg2MjIuYwo+ID4gaW5kZXggMmQ4ODE0NmU0ODM2Li5iOTI0M2Q1MTQ4OWIgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIuYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMKPiA+IEBAIC00NzYsMTEg KzQ3NiwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgcHM4NjIy X2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gPiAgfTsKPiA+ICAKPiA+IC1z dGF0aWMgaW50IHBzODYyMl9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ICtz dGF0aWMgaW50IHBzODYyMl9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgYm9vbCBj cmVhdGVfY29ubmVjdG9yKQo+ID4gIHsKPiA+ICAJc3RydWN0IHBzODYyMl9icmlkZ2UgKnBzODYy MiA9IGJyaWRnZV90b19wczg2MjIoYnJpZGdlKTsKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ICsJ aWYgKCFjcmVhdGVfY29ubmVjdG9yKQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiAg CWlmICghYnJpZGdlLT5lbmNvZGVyKSB7Cj4gPiAgCQlEUk1fRVJST1IoIlBhcmVudCBlbmNvZGVy IG9iamVjdCBub3QgZm91bmQiKTsKPiA+ICAJCXJldHVybiAtRU5PREVWOwo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9zaWk5MDJ4LmMKPiA+IGluZGV4IGRkN2FhNDY2YjI4MC4uMTg5MDRiMTA4MmI2IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCj4gPiBAQCAtMzk2LDEyICszOTYsMTYgQEAg c3RhdGljIHZvaWQgc2lpOTAyeF9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKPiA+ICAJbXV0ZXhfdW5sb2NrKCZzaWk5MDJ4LT5tdXRleCk7Cj4gPiAgfQo+ID4gIAo+ ID4gLXN0YXRpYyBpbnQgc2lpOTAyeF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UpCj4gPiArc3RhdGljIGludCBzaWk5MDJ4X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiA+ICsJCQkJIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4g PiAgCXN0cnVjdCBzaWk5MDJ4ICpzaWk5MDJ4ID0gYnJpZGdlX3RvX3NpaTkwMngoYnJpZGdlKTsK PiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGJyaWRnZS0+ZGV2Owo+ID4gIAlpbnQgcmV0 Owo+ID4gIAo+ID4gKwlpZiAoIWNyZWF0ZV9jb25uZWN0b3IpCj4gPiArCQlyZXR1cm4gLUVJTlZB TDsKPiA+ICsKPiA+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZzaWk5MDJ4LT5jb25uZWN0 b3IsCj4gPiAgCQkJCSAmc2lpOTAyeF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiA+ICAKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMKPiA+IGluZGV4IDBjYzI5M2E2YWMyNC4u ZWE2NTI5ZGY3ZDljIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwt c2lpODYyMC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMK PiA+IEBAIC0yMjAzLDcgKzIyMDMsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBzaWk4NjIwICpi cmlkZ2VfdG9fc2lpODYyMChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ID4gIAlyZXR1cm4g Y29udGFpbmVyX29mKGJyaWRnZSwgc3RydWN0IHNpaTg2MjAsIGJyaWRnZSk7Cj4gPiAgfQo+ID4g IAo+ID4gLXN0YXRpYyBpbnQgc2lpODYyMF9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSkKPiA+ICtzdGF0aWMgaW50IHNpaTg2MjBfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBzaWk4NjIwICpj dHggPSBicmlkZ2VfdG9fc2lpODYyMChicmlkZ2UpOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2ltcGxlLWJyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9zaW1wbGUtYnJpZGdlLmMKPiA+IGluZGV4IDc0OTViOWJlZjg2NS4uODY4ODVlYjZlMjhk IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaW1wbGUtYnJpZGdlLmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2ltcGxlLWJyaWRnZS5jCj4gPiBAQCAt MTA4LDExICsxMDgsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNz IHNpbXBsZV9icmlkZ2VfY29uX2Z1bmNzID0gewo+ID4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUJ PSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiA+ICB9Owo+ID4g IAo+ID4gLXN0YXRpYyBpbnQgc2ltcGxlX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSkKPiA+ICtzdGF0aWMgaW50IHNpbXBsZV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UsCj4gPiArCQkJCWJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4g PiAgCXN0cnVjdCBzaW1wbGVfYnJpZGdlICpzYnJpZGdlID0gZHJtX2JyaWRnZV90b19zaW1wbGVf YnJpZGdlKGJyaWRnZSk7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiArCWlmICghY3JlYXRlX2Nv bm5lY3RvcikKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rl cikgewo+ID4gIAkJRFJNX0VSUk9SKCJNaXNzaW5nIGVuY29kZXJcbiIpOwo+ID4gIAkJcmV0dXJu IC1FTk9ERVY7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5 cy9kdy1oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+ ID4gaW5kZXggYzY0OTA5NDlkOWRiLi45MzBkNjdjNjE4ZGQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMKPiA+IEBAIC0yMTc0LDEyICsyMTc0LDE2 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgZHdfaGRt aV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0KPiA+ICAJLmdldF9tb2RlcyA9IGR3X2hkbWlfY29u bmVjdG9yX2dldF9tb2RlcywKPiA+ICB9Owo+ID4gIAo+ID4gLXN0YXRpYyBpbnQgZHdfaGRtaV9i cmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiArc3RhdGljIGludCBk d19oZG1pX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+ICsJCQkJ IGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkd19oZG1pICpoZG1p ID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKPiA+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyID0gYnJpZGdlLT5lbmNvZGVyOwo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gJmhkbWktPmNvbm5lY3RvcjsKPiA+ICAKPiA+ICsJaWYgKCFjcmVhdGVfY29ubmVjdG9y KQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiAgCWNvbm5lY3Rvci0+aW50ZXJsYWNl X2FsbG93ZWQgPSAxOwo+ID4gIAljb25uZWN0b3ItPnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9M TF9IUEQ7Cj4gPiAgCj4gPiBAQCAtMjg1Nyw3ICsyODYxLDcgQEAgc3RydWN0IGR3X2hkbWkgKmR3 X2hkbWlfYmluZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ID4gIAlpZiAoSVNfRVJS KGhkbWkpKQo+ID4gIAkJcmV0dXJuIGhkbWk7Cj4gPiAgCj4gPiAtCXJldCA9IGRybV9icmlkZ2Vf YXR0YWNoKGVuY29kZXIsICZoZG1pLT5icmlkZ2UsIE5VTEwpOwo+ID4gKwlyZXQgPSBkcm1fYnJp ZGdlX2F0dGFjaChlbmNvZGVyLCAmaGRtaS0+YnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ICAJaWYg KHJldCkgewo+ID4gIAkJZHdfaGRtaV9yZW1vdmUoaGRtaSk7Cj4gPiAgCQlEUk1fRVJST1IoIkZh aWxlZCB0byBpbml0aWFsaXplIGJyaWRnZSB3aXRoIGRybVxuIik7Cj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jIGIvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jCj4gPiBpbmRleCAyODFjNThiYWIx YTEuLjA1Y2Y5N2FkNTI0ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv c3lub3BzeXMvZHctbWlwaS1kc2kuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z eW5vcHN5cy9kdy1taXBpLWRzaS5jCj4gPiBAQCAtOTA2LDcgKzkwNiw4IEBAIGR3X21pcGlfZHNp X2JyaWRnZV9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPiAgCXJldHVy biBtb2RlX3N0YXR1czsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIGludCBkd19taXBpX2RzaV9i cmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiArc3RhdGljIGludCBk d19taXBpX2RzaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPiAr CQkJCSAgICAgYm9vbCBjcmVhdGVfY29ubmVjdG9yKQo+ID4gIHsKPiA+ICAJc3RydWN0IGR3X21p cGlfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJyaWRnZSk7Cj4gPiAgCj4gPiBAQCAtOTE5LDcg KzkyMCw4IEBAIHN0YXRpYyBpbnQgZHdfbWlwaV9kc2lfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlKQo+ID4gIAlicmlkZ2UtPmVuY29kZXItPmVuY29kZXJfdHlwZSA9IERS TV9NT0RFX0VOQ09ERVJfRFNJOwo+ID4gIAo+ID4gIAkvKiBBdHRhY2ggdGhlIHBhbmVsLWJyaWRn ZSB0byB0aGUgZHNpIGJyaWRnZSAqLwo+ID4gLQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJp ZGdlLT5lbmNvZGVyLCBkc2ktPnBhbmVsX2JyaWRnZSwgYnJpZGdlKTsKPiA+ICsJcmV0dXJuIGRy bV9icmlkZ2VfYXR0YWNoKGJyaWRnZS0+ZW5jb2RlciwgZHNpLT5wYW5lbF9icmlkZ2UsIGJyaWRn ZSwKPiA+ICsJCQkJIGNyZWF0ZV9jb25uZWN0b3IpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgZHdfbWlwaV9kc2lfYnJpZGdlX2Z1bmNzID0g ewo+ID4gQEAgLTEwNjQsNyArMTA2Niw3IEBAIGludCBkd19taXBpX2RzaV9iaW5kKHN0cnVjdCBk d19taXBpX2RzaSAqZHNpLCBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gPiAgewo+ID4g IAlpbnQgcmV0Owo+ID4gIAo+ID4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCAm ZHNpLT5icmlkZ2UsIE5VTEwpOwo+ID4gKwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVy LCAmZHNpLT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ID4gIAlpZiAocmV0KSB7Cj4gPiAgCQlEUk1f RVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIGJyaWRnZSB3aXRoIGRybVxuIik7Cj4gPiAgCQly ZXR1cm4gcmV0Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3 NjQuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYwo+ID4gaW5kZXggMTcwZjE2 MmZmYTU1Li42MDE2ZjNhYWU0MmYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3RjMzU4NzY0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQu Ywo+ID4gQEAgLTM0OCwxMiArMzQ4LDE1IEBAIHN0YXRpYyB2b2lkIHRjMzU4NzY0X2VuYWJsZShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ID4gIAkJZGV2X2VycihjdHgtPmRldiwgImVycm9y IGVuYWJsaW5nIHBhbmVsICglZClcbiIsIHJldCk7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBp bnQgdGMzNTg3NjRfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiArc3RhdGlj IGludCB0YzM1ODc2NF9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgYm9vbCBjcmVh dGVfY29ubmVjdG9yKQo+ID4gIHsKPiA+ICAJc3RydWN0IHRjMzU4NzY0ICpjdHggPSBicmlkZ2Vf dG9fdGMzNTg3NjQoYnJpZGdlKTsKPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGJyaWRn ZS0+ZGV2Owo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gKwlpZiAoIWNyZWF0ZV9jb25uZWN0b3Ip Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICAJY3R4LT5jb25uZWN0b3IucG9sbGVk ID0gRFJNX0NPTk5FQ1RPUl9QT0xMX0hQRDsKPiA+ICAJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0 KGRybSwgJmN0eC0+Y29ubmVjdG9yLAo+ID4gIAkJCQkgJnRjMzU4NzY0X2Nvbm5lY3Rvcl9mdW5j cywKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMKPiA+IGluZGV4IDEzYWRlMjhhMzZhOC4u ZTJiMmQyNjYwYWRjIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1 ODc2Ny5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMKPiA+IEBA IC0xMjczLDEzICsxMjczLDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9m dW5jcyB0Y19jb25uZWN0b3JfZnVuY3MgPSB7Cj4gPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9 IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ID4gIH07Cj4gPiAg Cj4gPiAtc3RhdGljIGludCB0Y19icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UpCj4gPiArc3RhdGljIGludCB0Y19icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAgCXUzMiBidXNfZm9ybWF0 ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKPiA+ICAJc3RydWN0IHRjX2RhdGEgKnRjID0g YnJpZGdlX3RvX3RjKGJyaWRnZSk7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBicmlk Z2UtPmRldjsKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ICsJaWYgKCFjcmVhdGVfY29ubmVjdG9y KQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiAgCS8qIENyZWF0ZSBEUC9lRFAgY29u bmVjdG9yICovCj4gPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmdGMtPmNvbm5lY3Rvciwg JnRjX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ID4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX2lu aXQoZHJtLCAmdGMtPmNvbm5lY3RvciwgJnRjX2Nvbm5lY3Rvcl9mdW5jcywKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RoYzYzbHZkMTAyNC5jIGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQuYwo+ID4gaW5kZXggM2Q3NDEyOWIyOTk1Li44NmYzYjk2 Zjk1ZGIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RoYzYzbHZkMTAy NC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RoYzYzbHZkMTAyNC5jCj4gPiBA QCAtNDIsMTEgKzQyLDEyIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRoYzYzX2RldiAqdG9fdGhj NjMoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ICAJcmV0dXJuIGNvbnRhaW5lcl9vZihi cmlkZ2UsIHN0cnVjdCB0aGM2M19kZXYsIGJyaWRnZSk7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRp YyBpbnQgdGhjNjNfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiArc3RhdGlj IGludCB0aGM2M19hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgYm9vbCBjcmVhdGVf Y29ubmVjdG9yKQo+ID4gIHsKPiA+ICAJc3RydWN0IHRoYzYzX2RldiAqdGhjNjMgPSB0b190aGM2 MyhicmlkZ2UpOwo+ID4gIAo+ID4gLQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5l bmNvZGVyLCB0aGM2My0+bmV4dCwgYnJpZGdlKTsKPiA+ICsJcmV0dXJuIGRybV9icmlkZ2VfYXR0 YWNoKGJyaWRnZS0+ZW5jb2RlciwgdGhjNjMtPm5leHQsIGJyaWRnZSwKPiA+ICsJCQkJIGNyZWF0 ZV9jb25uZWN0b3IpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0 dXMgdGhjNjNfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMgYi9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL3RpLXNuNjVkc2k4Ni5jCj4gPiBpbmRleCBiNzdhNTJkMDUwNjEuLmRiZTI2 NWY3MTEyZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRz aTg2LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMKPiA+ IEBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIGludCB0aV9zbl9icmlkZ2VfcGFyc2VfcmVndWxh dG9ycyhzdHJ1Y3QgdGlfc25fYnJpZGdlICpwZGF0YSkKPiA+ICAJCQkJICAgICAgIHBkYXRhLT5z dXBwbGllcyk7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBpbnQgdGlfc25fYnJpZGdlX2F0dGFj aChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ID4gK3N0YXRpYyBpbnQgdGlfc25fYnJpZGdl X2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLCBib29sIGNyZWF0ZV9jb25uZWN0b3Ip Cj4gPiAgewo+ID4gIAlpbnQgcmV0LCB2YWw7Cj4gPiAgCXN0cnVjdCB0aV9zbl9icmlkZ2UgKnBk YXRhID0gYnJpZGdlX3RvX3RpX3NuX2JyaWRnZShicmlkZ2UpOwo+ID4gQEAgLTIzNSw2ICsyMzUs OSBAQCBzdGF0aWMgaW50IHRpX3NuX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSkKPiA+ICAJCQkJCQkgICAubm9kZSA9IE5VTEwsCj4gPiAgCQkJCQkJIH07Cj4gPiAgCj4g PiArCWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ ID4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoYnJpZGdlLT5kZXYsICZwZGF0YS0+Y29ubmVj dG9yLAo+ID4gIAkJCQkgJnRpX3NuX2JyaWRnZV9jb25uZWN0b3JfZnVuY3MsCj4gPiAgCQkJCSBE Uk1fTU9ERV9DT05ORUNUT1JfZURQKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RpLXRmcDQxMC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS10ZnA0MTAuYwo+ ID4gaW5kZXggNGU3NmIyYjI3Mzc0Li44ZDQ2OTBlNDM2YzMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RpLXRmcDQxMC5jCj4gPiBAQCAtMTIxLDExICsxMjEsMTQgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHRmcDQxMF9jb25fZnVuY3MgPSB7Cj4gPiAgCS5h dG9taWNfZGVzdHJveV9zdGF0ZQk9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95 X3N0YXRlLAo+ID4gIH07Cj4gPiAgCj4gPiAtc3RhdGljIGludCB0ZnA0MTBfYXR0YWNoKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiArc3RhdGljIGludCB0ZnA0MTBfYXR0YWNoKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAg CXN0cnVjdCB0ZnA0MTAgKmR2aSA9IGRybV9icmlkZ2VfdG9fdGZwNDEwKGJyaWRnZSk7Cj4gPiAg CWludCByZXQ7Cj4gPiAgCj4gPiArCWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICsJCXJldHVy biAtRUlOVkFMOwo+ID4gKwo+ID4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ID4gIAkJZGV2 X2VycihkdmktPmRldiwgIk1pc3NpbmcgZW5jb2RlclxuIik7Cj4gPiAgCQlyZXR1cm4gLUVOT0RF VjsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+ID4gaW5kZXggY2JhNTM3Yzk5ZTQzLi41MTk1NzdmMzYz ZTMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCj4gPiBAQCAtOTUsNiArOTUsNyBAQCBFWFBP UlRfU1lNQk9MKGRybV9icmlkZ2VfcmVtb3ZlKTsKPiA+ICAgKiBAZW5jb2RlcjogRFJNIGVuY29k ZXIKPiA+ICAgKiBAYnJpZGdlOiBicmlkZ2UgdG8gYXR0YWNoCj4gPiAgICogQHByZXZpb3VzOiBw cmV2aW91cyBicmlkZ2UgaW4gdGhlIGNoYWluIChvcHRpb25hbCkKPiA+ICsgKiBAY3JlYXRlX2Nv bm5lY3RvcjogdHJ1ZSBpZiB0aGUgYnJpZGdlIHNob3VsZCBjcmVhdGUgYSBkcm1fY29ubmVjdG9y Cj4gPiAgICoKPiA+ICAgKiBDYWxsZWQgYnkgYSBrbXMgZHJpdmVyIHRvIGxpbmsgdGhlIGJyaWRn ZSB0byBhbiBlbmNvZGVyJ3MgY2hhaW4uIFRoZSBwcmV2aW91cwo+ID4gICAqIGFyZ3VtZW50IHNw ZWNpZmllcyB0aGUgcHJldmlvdXMgYnJpZGdlIGluIHRoZSBjaGFpbi4gSWYgTlVMTCwgdGhlIGJy aWRnZSBpcwo+ID4gQEAgLTExMiw3ICsxMTMsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9icmlkZ2Vf cmVtb3ZlKTsKPiA+ICAgKiBaZXJvIG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUgb24gZmFpbHVyZQo+ ID4gICAqLwo+ID4gIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPiAtCQkgICAgICBzdHJ1Y3QgZHJt X2JyaWRnZSAqcHJldmlvdXMpCj4gPiArCQkgICAgICBzdHJ1Y3QgZHJtX2JyaWRnZSAqcHJldmlv dXMsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4g PiBAQCAtMTI5LDcgKzEzMCw3IEBAIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPiAgCWJyaWRnZS0+ ZW5jb2RlciA9IGVuY29kZXI7Cj4gPiAgCj4gPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5hdHRhY2gp IHsKPiA+IC0JCXJldCA9IGJyaWRnZS0+ZnVuY3MtPmF0dGFjaChicmlkZ2UpOwo+ID4gKwkJcmV0 ID0gYnJpZGdlLT5mdW5jcy0+YXR0YWNoKGJyaWRnZSwgY3JlYXRlX2Nvbm5lY3Rvcik7Cj4gPiAg CQlpZiAocmV0IDwgMCkgewo+ID4gIAkJCWJyaWRnZS0+ZGV2ID0gTlVMTDsKPiA+ICAJCQlicmlk Z2UtPmVuY29kZXIgPSBOVUxMOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f c2ltcGxlX2ttc19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxw ZXIuYwo+ID4gaW5kZXggYjExOTEwZjE0YzQ2Li5hMzY3ZWYxZTUwODEgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYwo+ID4gQEAgLTIyOCw3ICsyMjgsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBkcm1fc2ltcGxlX2ttc19wbGFu ZV9mdW5jcyA9IHsKPiA+ICBpbnQgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfYXR0YWNoX2JyaWRn ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCj4gPiAgCQkJCQkgIHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiAgewo+ID4gLQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRh Y2goJnBpcGUtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gPiArCXJldHVybiBkcm1fYnJpZGdl X2F0dGFjaCgmcGlwZS0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ICB9Cj4gPiAg RVhQT1JUX1NZTUJPTChkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9hdHRhY2hfYnJpZGdlKTsKPiA+ ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYwo+ID4gaW5kZXggM2EwZjBiYThjNjNh Li4wMmI5OGU2Y2E1MmQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcC5jCj4g PiBAQCAtMTA1LDcgKzEwNSw4IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RwX2JyaWRnZV9hdHRhY2go c3RydWN0IGFuYWxvZ2l4X2RwX3BsYXRfZGF0YSAqcGxhdF9kYXRhLAo+ID4gIAo+ID4gIAkvKiBQ cmUtZW1wdCBEUCBjb25uZWN0b3IgY3JlYXRpb24gaWYgdGhlcmUncyBhIGJyaWRnZSAqLwo+ID4g IAlpZiAoZHAtPnB0bl9icmlkZ2UpIHsKPiA+IC0JCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKCZk cC0+ZW5jb2RlciwgZHAtPnB0bl9icmlkZ2UsIGJyaWRnZSk7Cj4gPiArCQlyZXQgPSBkcm1fYnJp ZGdlX2F0dGFjaCgmZHAtPmVuY29kZXIsIGRwLT5wdG5fYnJpZGdlLCBicmlkZ2UsCj4gPiArCQkJ CQl0cnVlKTsKPiA+ICAJCWlmIChyZXQpIHsKPiA+ICAJCQlEUk1fREVWX0VSUk9SKGRwLT5kZXYs Cj4gPiAgCQkJCSAgICAgICJGYWlsZWQgdG8gYXR0YWNoIGJyaWRnZSB0byBkcm1cbiIpOwo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYyBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+ID4gaW5kZXggNWY2ZjUyMzgy MWEyLi43NjhhY2M3OWQxMGMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fZHNpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV9kc2kuYwo+ID4gQEAgLTE1MjIsNyArMTUyMiw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2Rz aV9ob3N0X2F0dGFjaChzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKPiA+ICAKPiA+ICAJb3V0 X2JyaWRnZSAgPSBvZl9kcm1fZmluZF9icmlkZ2UoZGV2aWNlLT5kZXYub2Zfbm9kZSk7Cj4gPiAg CWlmIChvdXRfYnJpZGdlKSB7Cj4gPiAtCQlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBvdXRf YnJpZGdlLCBOVUxMKTsKPiA+ICsJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIG91dF9icmlk Z2UsIE5VTEwsIHRydWUpOwo+ID4gIAkJZHNpLT5vdXRfYnJpZGdlID0gb3V0X2JyaWRnZTsKPiA+ ICAJCWVuY29kZXItPmJyaWRnZSA9IE5VTEw7Cj4gPiAgCX0gZWxzZSB7Cj4gPiBAQCAtMTY5OCw3 ICsxNjk4LDcgQEAgc3RhdGljIGludCBleHlub3NfZHNpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gPiAgCWlmIChkc2ktPmluX2JyaWRnZV9ub2RlKSB7 Cj4gPiAgCQlpbl9icmlkZ2UgPSBvZl9kcm1fZmluZF9icmlkZ2UoZHNpLT5pbl9icmlkZ2Vfbm9k ZSk7Cj4gPiAgCQlpZiAoaW5fYnJpZGdlKQo+ID4gLQkJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29k ZXIsIGluX2JyaWRnZSwgTlVMTCk7Cj4gPiArCQkJZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rlciwg aW5fYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ICAJfQo+ID4gIAo+ID4gIAlyZXR1cm4gbWlwaV9k c2lfaG9zdF9yZWdpc3RlcigmZHNpLT5kc2lfaG9zdCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfaGRtaS5jCj4gPiBpbmRleCBiYzE1NjVmMTgyMmEuLjgwOGM5ODEwMWQ1NiAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jCj4gPiBAQCAtOTUyLDcgKzk1Miw3 IEBAIHN0YXRpYyBpbnQgaGRtaV9jcmVhdGVfY29ubmVjdG9yKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKPiA+ICAJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVu Y29kZXIpOwo+ID4gIAo+ID4gIAlpZiAoaGRhdGEtPmJyaWRnZSkgewo+ID4gLQkJcmV0ID0gZHJt X2JyaWRnZV9hdHRhY2goZW5jb2RlciwgaGRhdGEtPmJyaWRnZSwgTlVMTCk7Cj4gPiArCQlyZXQg PSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBoZGF0YS0+YnJpZGdlLCBOVUxMLCB0cnVlKTsK PiA+ICAJCWlmIChyZXQpCj4gPiAgCQkJRFJNX0RFVl9FUlJPUihoZGF0YS0+ZGV2LCAiRmFpbGVk IHRvIGF0dGFjaCBicmlkZ2VcbiIpOwo+ID4gIAl9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcmdiLmMgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRj dS9mc2xfZGN1X2RybV9yZ2IuYwo+ID4gaW5kZXggYzQ5ZTllMzc0MGY4Li44ZDIyNjE4Y2NmMmUg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2Iu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcmdiLmMKPiA+ IEBAIC0xNTksNSArMTU5LDUgQEAgaW50IGZzbF9kY3VfY3JlYXRlX291dHB1dHMoc3RydWN0IGZz bF9kY3VfZHJtX2RldmljZSAqZnNsX2RldikKPiA+ICAJCXJldHVybiBmc2xfZGN1X2F0dGFjaF9w YW5lbChmc2xfZGV2LCBwYW5lbCk7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JcmV0dXJuIGRybV9icmlk Z2VfYXR0YWNoKCZmc2xfZGV2LT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ID4gKwlyZXR1cm4g ZHJtX2JyaWRnZV9hdHRhY2goJmZzbF9kZXYtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7 Cj4gPiAgfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4v ZHdfZHJtX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9kd19kcm1fZHNp LmMKPiA+IGluZGV4IDNkNmM0NTA5N2Y1MS4uZWFjOGVjMTUxMmFiIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9kd19kcm1fZHNpLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vZHdfZHJtX2RzaS5jCj4gPiBAQCAtNzgwLDcg Kzc4MCw3IEBAIHN0YXRpYyBpbnQgZHNpX2JyaWRnZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkd19kc2kgKmRzaSkKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ICAJLyogYXNz b2NpYXRlIHRoZSBicmlkZ2UgdG8gZHNpIGVuY29kZXIgKi8KPiA+IC0JcmV0ID0gZHJtX2JyaWRn ZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiA+ICsJcmV0ID0gZHJtX2JyaWRnZV9h dHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ICAJaWYgKHJldCkgewo+ID4g IAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYXR0YWNoIGV4dGVybmFsIGJyaWRnZVxuIik7Cj4gPiAg CQlyZXR1cm4gcmV0Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4 eF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYwo+ID4gaW5kZXggM2Qz NjhjNDMxODVmLi42YjJlNjQ4YjZjNGQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTJjL3RkYTk5OHhfZHJ2LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9k cnYuYwo+ID4gQEAgLTEzNjYsMTAgKzEzNjYsMTQgQEAgc3RhdGljIGludCB0ZGE5OTh4X2Nvbm5l Y3Rvcl9pbml0KHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnByaXYsCj4gPiAgCj4gPiAgLyogRFJNIGJy aWRnZSBmdW5jdGlvbnMgKi8KPiA+ICAKPiA+IC1zdGF0aWMgaW50IHRkYTk5OHhfYnJpZGdlX2F0 dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ID4gK3N0YXRpYyBpbnQgdGRhOTk4eF9i cmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPiArCQkJCSBib29sIGNy ZWF0ZV9jb25uZWN0b3IpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2ID0g YnJpZGdlX3RvX3RkYTk5OHhfcHJpdihicmlkZ2UpOwo+ID4gIAo+ID4gKwlpZiAoIWNyZWF0ZV9j b25uZWN0b3IpCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICAJcmV0dXJuIHRkYTk5 OHhfY29ubmVjdG9yX2luaXQocHJpdiwgYnJpZGdlLT5kZXYpOwo+ID4gIH0KPiA+ICAKPiA+IEBA IC0yMDMzLDcgKzIwMzcsNyBAQCBzdGF0aWMgaW50IHRkYTk5OHhfZW5jb2Rlcl9pbml0KHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiA+ICAJaWYgKHJldCkKPiA+ ICAJCWdvdG8gZXJyX2VuY29kZXI7Cj4gPiAgCj4gPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNo KCZwcml2LT5lbmNvZGVyLCAmcHJpdi0+YnJpZGdlLCBOVUxMKTsKPiA+ICsJcmV0ID0gZHJtX2Jy aWRnZV9hdHRhY2goJnByaXYtPmVuY29kZXIsICZwcml2LT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ ID4gIAlpZiAocmV0KQo+ID4gIAkJZ290byBlcnJfYnJpZGdlOwo+ID4gIAo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9p bXgtbGRiLmMKPiA+IGluZGV4IDM4MzczMzMwMjI4MC4uODQ1ZWFkMjVhZGU3IDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pbXgvaW14LWxkYi5jCj4gPiBAQCAtNDQ2LDcgKzQ0Niw3IEBAIHN0YXRpYyBpbnQgaW14 X2xkYl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ID4gIAo+ID4gIAlpZiAoaW14 X2xkYl9jaC0+YnJpZGdlKSB7Cj4gPiAgCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaCgmaW14X2xk Yl9jaC0+ZW5jb2RlciwKPiA+IC0JCQkJCWlteF9sZGJfY2gtPmJyaWRnZSwgTlVMTCk7Cj4gPiAr CQkJCQlpbXhfbGRiX2NoLT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ID4gIAkJaWYgKHJldCkgewo+ ID4gIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgYnJpZGdlIHdpdGggZHJtXG4i KTsKPiA+ICAJCQlyZXR1cm4gcmV0Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p bXgvcGFyYWxsZWwtZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNw bGF5LmMKPiA+IGluZGV4IDFhNzZkZTFlOGU3Yi4uY2Q3NDY1OTJkMmE3IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gPiBAQCAtMTgyLDcgKzE4Miw3IEBA IHN0YXRpYyBpbnQgaW14X3BkX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gPiAg CQlkcm1fcGFuZWxfYXR0YWNoKGlteHBkLT5wYW5lbCwgJmlteHBkLT5jb25uZWN0b3IpOwo+ID4g IAo+ID4gIAlpZiAoaW14cGQtPmJyaWRnZSkgewo+ID4gLQkJcmV0ID0gZHJtX2JyaWRnZV9hdHRh Y2goZW5jb2RlciwgaW14cGQtPmJyaWRnZSwgTlVMTCk7Cj4gPiArCQlyZXQgPSBkcm1fYnJpZGdl X2F0dGFjaChlbmNvZGVyLCBpbXhwZC0+YnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ICAJCWlmIChy ZXQgPCAwKSB7Cj4gPiAgCQkJZGV2X2VycihpbXhwZC0+ZGV2LCAiZmFpbGVkIHRvIGF0dGFjaCBi cmlkZ2U6ICVkXG4iLAo+ID4gIAkJCQlyZXQpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tY2RlL21jZGVfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWNkZS9tY2RlX2RzaS5jCj4g PiBpbmRleCAwN2Y3MDkwZDA4YjMuLmYyZGVhZGM5ODBmOCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tY2RlL21jZGVfZHNpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tY2Rl L21jZGVfZHNpLmMKPiA+IEBAIC04MTcsMTIgKzgxNywxNiBAQCBtY2RlX2RzaV9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzID0gewo+ID4gIAkuZ2V0X21vZGVzID0gbWNkZV9kc2lfZ2V0X21vZGVzLAo+ ID4gIH07Cj4gPiAgCj4gPiAtc3RhdGljIGludCBtY2RlX2RzaV9icmlkZ2VfYXR0YWNoKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiArc3RhdGljIGludCBtY2RlX2RzaV9icmlkZ2VfYXR0 YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPiArCQkJCSAgYm9vbCBjcmVhdGVfY29u bmVjdG9yKQo+ID4gIHsKPiA+ICAJc3RydWN0IG1jZGVfZHNpICpkID0gYnJpZGdlX3RvX21jZGVf ZHNpKGJyaWRnZSk7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBicmlkZ2UtPmRldjsK PiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ICsJaWYgKCFjcmVhdGVfY29ubmVjdG9yKQo+ID4gKwkJ cmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmZC0+ Y29ubmVjdG9yLAo+ID4gIAkJCQkgJm1jZGVfZHNpX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gPiBpbmRleCBiYWNkOTg5Y2M5 YWEuLjFmZjI3YmIxNzAxNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHBpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMK PiA+IEBAIC02MDQsNyArNjA0LDcgQEAgc3RhdGljIGludCBtdGtfZHBpX2JpbmQoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gPiAgCS8qIEN1 cnJlbnRseSBEUEkwIGlzIGZpeGVkIHRvIGJlIGRyaXZlbiBieSBPVkwxICovCj4gPiAgCWRwaS0+ ZW5jb2Rlci5wb3NzaWJsZV9jcnRjcyA9IEJJVCgxKTsKPiA+ICAKPiA+IC0JcmV0ID0gZHJtX2Jy aWRnZV9hdHRhY2goJmRwaS0+ZW5jb2RlciwgZHBpLT5icmlkZ2UsIE5VTEwpOwo+ID4gKwlyZXQg PSBkcm1fYnJpZGdlX2F0dGFjaCgmZHBpLT5lbmNvZGVyLCBkcGktPmJyaWRnZSwgTlVMTCwgdHJ1 ZSk7Cj4gPiAgCWlmIChyZXQpIHsKPiA+ICAJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGF0dGFj aCBicmlkZ2U6ICVkXG4iLCByZXQpOwo+ID4gIAkJZ290byBlcnJfY2xlYW51cDsKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jIGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kc2kuYwo+ID4gaW5kZXggYjkxYzQ2MTY2NDRhLi45YzViYWM0OGI0 NGYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCj4gPiBAQCAtODE5LDcg KzgxOSw3IEBAIHN0YXRpYyBpbnQgbXRrX2RzaV9jcmVhdGVfY29ubl9lbmMoc3RydWN0IGRybV9k ZXZpY2UgKmRybSwgc3RydWN0IG10a19kc2kgKmRzaSkKPiA+ICAKPiA+ICAJLyogSWYgdGhlcmUn cyBhIGJyaWRnZSwgYXR0YWNoIHRvIGl0IGFuZCBsZXQgaXQgY3JlYXRlIHRoZSBjb25uZWN0b3Ig Ki8KPiA+ICAJaWYgKGRzaS0+YnJpZGdlKSB7Cj4gPiAtCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFj aCgmZHNpLT5lbmNvZGVyLCBkc2ktPmJyaWRnZSwgTlVMTCk7Cj4gPiArCQlyZXQgPSBkcm1fYnJp ZGdlX2F0dGFjaCgmZHNpLT5lbmNvZGVyLCBkc2ktPmJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gPiAg CQlpZiAocmV0KSB7Cj4gPiAgCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIGJyaWRnZSB0 byBkcm1cbiIpOwo+ID4gIAkJCWdvdG8gZXJyX2VuY29kZXJfY2xlYW51cDsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfaGRtaS5jCj4gPiBpbmRleCA1ZDZhOWYwOTRkZjUuLmQzMjQ4YTg4MWNm MCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYwo+ID4gQEAgLTEyOTAs MTEgKzEyOTAsMTUgQEAgc3RhdGljIHZvaWQgbXRrX2hkbWlfaHBkX2V2ZW50KGJvb2wgaHBkLCBz dHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiAgICogQnJpZGdlIGNhbGxiYWNrcwo+ID4gICAqLwo+ID4g IAo+ID4gLXN0YXRpYyBpbnQgbXRrX2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ID4gK3N0YXRpYyBpbnQgbXRrX2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4gKwkJCQkgIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiA+ ICB7Cj4gPiAgCXN0cnVjdCBtdGtfaGRtaSAqaGRtaSA9IGhkbWlfY3R4X2Zyb21fYnJpZGdlKGJy aWRnZSk7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiArCWlmICghY3JlYXRlX2Nvbm5lY3RvcikK PiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX2lu aXQoYnJpZGdlLT5lbmNvZGVyLT5kZXYsICZoZG1pLT5jb25uLAo+ID4gIAkJCQkgJm10a19oZG1p X2Nvbm5lY3Rvcl9mdW5jcywKPiA+ICAJCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSk7Cj4g PiBAQCAtMTMxOCw3ICsxMzIyLDcgQEAgc3RhdGljIGludCBtdGtfaGRtaV9icmlkZ2VfYXR0YWNo KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPiAgCj4gPiAgCWlmIChoZG1pLT5uZXh0X2Jy aWRnZSkgewo+ID4gIAkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLCBo ZG1pLT5uZXh0X2JyaWRnZSwKPiA+IC0JCQkJCWJyaWRnZSk7Cj4gPiArCQkJCQlicmlkZ2UsIGNy ZWF0ZV9jb25uZWN0b3IpOwo+ID4gIAkJaWYgKHJldCkgewo+ID4gIAkJCWRldl9lcnIoaGRtaS0+ ZGV2LAo+ID4gIAkJCQkiRmFpbGVkIHRvIGF0dGFjaCBleHRlcm5hbCBicmlkZ2U6ICVkXG4iLCBy ZXQpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2Vy LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jCj4gPiBpbmRleCAyNzFh YTdiYmNhOTIuLmNhNzMzMDg2MDQxYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZHNpL2RzaV9tYW5hZ2VyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2Rz aV9tYW5hZ2VyLmMKPiA+IEBAIC02NjQsNyArNjY0LDcgQEAgc3RydWN0IGRybV9icmlkZ2UgKm1z bV9kc2lfbWFuYWdlcl9icmlkZ2VfaW5pdCh1OCBpZCkKPiA+ICAJYnJpZGdlID0gJmRzaV9icmlk Z2UtPmJhc2U7Cj4gPiAgCWJyaWRnZS0+ZnVuY3MgPSAmZHNpX21ncl9icmlkZ2VfZnVuY3M7Cj4g PiAgCj4gPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCk7 Cj4gPiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1 ZSk7Cj4gPiAgCWlmIChyZXQpCj4gPiAgCQlnb3RvIGZhaWw7Cj4gPiAgCj4gPiBAQCAtNjkzLDcg KzY5Myw3IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yICptc21fZHNpX21hbmFnZXJfZXh0X2JyaWRn ZV9pbml0KHU4IGlkKQo+ID4gIAllbmNvZGVyID0gbXNtX2RzaS0+ZW5jb2RlcjsKPiA+ICAKPiA+ ICAJLyogbGluayB0aGUgaW50ZXJuYWwgZHNpIGJyaWRnZSB0byB0aGUgZXh0ZXJuYWwgYnJpZGdl ICovCj4gPiAtCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGV4dF9icmlkZ2UsIGludF9icmlk Z2UpOwo+ID4gKwlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBleHRfYnJpZGdlLCBpbnRfYnJp ZGdlLCB0cnVlKTsKPiA+ICAKPiA+ICAJLyoKPiA+ICAJICogd2UgbmVlZCB0aGUgZHJtX2Nvbm5l Y3RvciBjcmVhdGVkIGJ5IHRoZSBleHRlcm5hbCBicmlkZ2UKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2VkcC9lZHBfYnJpZGdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Vk cC9lZHBfYnJpZGdlLmMKPiA+IGluZGV4IDI5NTBiYmE0YWNhOS4uMzJhNDYzYzg0Y2MxIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9lZHAvZWRwX2JyaWRnZS5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2VkcC9lZHBfYnJpZGdlLmMKPiA+IEBAIC05MSw3ICs5MSw3 IEBAIHN0cnVjdCBkcm1fYnJpZGdlICptc21fZWRwX2JyaWRnZV9pbml0KHN0cnVjdCBtc21fZWRw ICplZHApCj4gPiAgCWJyaWRnZSA9ICZlZHBfYnJpZGdlLT5iYXNlOwo+ID4gIAlicmlkZ2UtPmZ1 bmNzID0gJmVkcF9icmlkZ2VfZnVuY3M7Cj4gPiAgCj4gPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0 YWNoKGVkcC0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiA+ICsJcmV0ID0gZHJtX2JyaWRnZV9h dHRhY2goZWRwLT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwsIHRydWUpOwo+ID4gIAlpZiAocmV0KQo+ ID4gIAkJZ290byBmYWlsOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vaGRtaS9oZG1pX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfYnJp ZGdlLmMKPiA+IGluZGV4IDAzMTk3Yjg5NTliYS4uZDc3MzhhYWZjZmY4IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfYnJpZGdlLmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jCj4gPiBAQCAtMjk2LDcgKzI5Niw3IEBA IHN0cnVjdCBkcm1fYnJpZGdlICptc21faGRtaV9icmlkZ2VfaW5pdChzdHJ1Y3QgaGRtaSAqaGRt aSkKPiA+ICAJYnJpZGdlID0gJmhkbWlfYnJpZGdlLT5iYXNlOwo+ID4gIAlicmlkZ2UtPmZ1bmNz ID0gJm1zbV9oZG1pX2JyaWRnZV9mdW5jczsKPiA+ICAKPiA+IC0JcmV0ID0gZHJtX2JyaWRnZV9h dHRhY2goaGRtaS0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiA+ICsJcmV0ID0gZHJtX2JyaWRn ZV9hdHRhY2goaGRtaS0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ICAJaWYgKHJl dCkKPiA+ICAJCWdvdG8gZmFpbDsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vb21hcGRybS9vbWFwX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYu Ywo+ID4gaW5kZXggNjcyZTBmOGFkMTFjLi44MzdkMGNkMjBkZDEgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vb21hcGRybS9vbWFwX2Rydi5jCj4gPiBAQCAtMzAxLDcgKzMwMSw4IEBAIHN0YXRpYyBpbnQg b21hcF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAKPiA+ICAJCWlm IChwaXBlLT5vdXRwdXQtPmJyaWRnZSkgewo+ID4gIAkJCXJldCA9IGRybV9icmlkZ2VfYXR0YWNo KHBpcGUtPmVuY29kZXIsCj4gPiAtCQkJCQkJcGlwZS0+b3V0cHV0LT5icmlkZ2UsIE5VTEwpOwo+ ID4gKwkJCQkJCXBpcGUtPm91dHB1dC0+YnJpZGdlLCBOVUxMLAo+ID4gKwkJCQkJCXRydWUpOwo+ ID4gIAkJCWlmIChyZXQgPCAwKQo+ID4gIAkJCQlyZXR1cm4gcmV0Owo+ID4gIAkJfQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jIGIvZHJp dmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9lbmNvZGVyLmMKPiA+IGluZGV4IDBmMDBiZGZl MjM2Ni4uNzRjMmFlNWNlNjg3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9kdV9lbmNvZGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfZW5jb2Rlci5jCj4gPiBAQCAtMTIwLDcgKzEyMCw3IEBAIGludCByY2FyX2R1X2VuY29k ZXJfaW5pdChzdHJ1Y3QgcmNhcl9kdV9kZXZpY2UgKnJjZHUsCj4gPiAgCSAqIEF0dGFjaCB0aGUg YnJpZGdlIHRvIHRoZSBlbmNvZGVyLiBUaGUgYnJpZGdlIHdpbGwgY3JlYXRlIHRoZQo+ID4gIAkg KiBjb25uZWN0b3IuCj4gPiAgCSAqLwo+ID4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNv ZGVyLCBicmlkZ2UsIE5VTEwpOwo+ID4gKwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVy LCBicmlkZ2UsIE5VTEwsIHRydWUpOwo+ID4gIAlpZiAocmV0KSB7Cj4gPiAgCQlkcm1fZW5jb2Rl cl9jbGVhbnVwKGVuY29kZXIpOwo+ID4gIAkJcmV0dXJuIHJldDsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfbHZkcy5jCj4gPiBpbmRleCAxYzYyNTc4NTkwZjQuLmE4ZDhiMDVjNDczMSAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYwo+ID4gQEAgLTYwNSw3ICs2MDUs NyBAQCBzdGF0aWMgdm9pZCByY2FyX2x2ZHNfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKPiA+ICAJcmNhcl9sdmRzX2dldF9sdmRzX21vZGUobHZkcyk7Cj4gPiAgfQo+ID4gIAo+ ID4gLXN0YXRpYyBpbnQgcmNhcl9sdmRzX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl KQo+ID4gK3N0YXRpYyBpbnQgcmNhcl9sdmRzX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlLCBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgcmNhcl9sdmRz ICpsdmRzID0gYnJpZGdlX3RvX3JjYXJfbHZkcyhicmlkZ2UpOwo+ID4gIAlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gJmx2ZHMtPmNvbm5lY3RvcjsKPiA+IEBAIC02MTUsNyArNjE1 LDEwIEBAIHN0YXRpYyBpbnQgcmNhcl9sdmRzX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlKQo+ID4gIAkvKiBJZiB3ZSBoYXZlIGEgbmV4dCBicmlkZ2UganVzdCBhdHRhY2ggaXQuICov Cj4gPiAgCWlmIChsdmRzLT5uZXh0X2JyaWRnZSkKPiA+ICAJCXJldHVybiBkcm1fYnJpZGdlX2F0 dGFjaChicmlkZ2UtPmVuY29kZXIsIGx2ZHMtPm5leHRfYnJpZGdlLAo+ID4gLQkJCQkJIGJyaWRn ZSk7Cj4gPiArCQkJCQkgYnJpZGdlLCBjcmVhdGVfY29ubmVjdG9yKTsKPiA+ICsKPiA+ICsJaWYg KCFjcmVhdGVfY29ubmVjdG9yKQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiAgCj4gPiAgCS8q IE90aGVyd2lzZSBpZiB3ZSBoYXZlIGEgcGFuZWwsIGNyZWF0ZSBhIGNvbm5lY3Rvci4gKi8KPiA+ ICAJaWYgKCFsdmRzLT5wYW5lbCkKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2x2ZHMuYwo+ID4gaW5kZXggODMwODU4YTgwOWU1Li43Y2E0MTJkMjk0YjIgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfbHZkcy5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfbHZkcy5jCj4gPiBAQCAtNDQwLDcgKzQ0 MCw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfbHZkc19iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLAo+ID4gIAkJCWdvdG8gZXJyX2ZyZWVfY29ubmVjdG9yOwo+ ID4gIAkJfQo+ID4gIAl9IGVsc2Ugewo+ID4gLQkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5j b2RlciwgbHZkcy0+YnJpZGdlLCBOVUxMKTsKPiA+ICsJCXJldCA9IGRybV9icmlkZ2VfYXR0YWNo KGVuY29kZXIsIGx2ZHMtPmJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gPiAgCQlpZiAocmV0KSB7Cj4g PiAgCQkJRFJNX0RFVl9FUlJPUihkcm1fZGV2LT5kZXYsCj4gPiAgCQkJCSAgICAgICJmYWlsZWQg dG8gYXR0YWNoIGJyaWRnZTogJWRcbiIsIHJldCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3JnYi5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX3JnYi5jCj4gPiBpbmRleCBjZTRkODJkMjkzZTQuLjgyMThiYmQwOWE3MiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9yZ2IuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3JnYi5jCj4gPiBAQCAtMTQz LDcgKzE0Myw3IEBAIHN0cnVjdCByb2NrY2hpcF9yZ2IgKnJvY2tjaGlwX3JnYl9pbml0KHN0cnVj dCBkZXZpY2UgKmRldiwKPiA+ICAKPiA+ICAJcmdiLT5icmlkZ2UgPSBicmlkZ2U7Cj4gPiAgCj4g PiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIHJnYi0+YnJpZGdlLCBOVUxMKTsK PiA+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgcmdiLT5icmlkZ2UsIE5VTEws IHRydWUpOwo+ID4gIAlpZiAocmV0KSB7Cj4gPiAgCQlEUk1fREVWX0VSUk9SKGRybV9kZXYtPmRl diwKPiA+ICAJCQkgICAgICAiZmFpbGVkIHRvIGF0dGFjaCBicmlkZ2U6ICVkXG4iLCByZXQpOwo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jIGIvZHJpdmVycy9n cHUvZHJtL3N0aS9zdGlfZHZvLmMKPiA+IGluZGV4IDllNmQ1ZDhiNzAzMC4uZjA5MjA5NjIxNTY4 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCj4gPiBAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0 YXRpYyBpbnQgc3RpX2R2b19iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAq bWFzdGVyLCB2b2lkICpkYXRhKQo+ID4gIAlicmlkZ2UtPm9mX25vZGUgPSBkdm8tPmRldi5vZl9u b2RlOwo+ID4gIAlkcm1fYnJpZGdlX2FkZChicmlkZ2UpOwo+ID4gIAo+ID4gLQllcnIgPSBkcm1f YnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ID4gKwllcnIgPSBkcm1fYnJp ZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwsIHRydWUpOwo+ID4gIAlpZiAoZXJyKSB7 Cj4gPiAgCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhdHRhY2ggYnJpZGdlXG4iKTsKPiA+ICAJCXJl dHVybiBlcnI7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRhLmMg Yi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEuYwo+ID4gaW5kZXggOTRlNDA0ZjEzMjM0Li44 N2UwZmI3NDJkYzggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRhLmMKPiA+IEBAIC03MDAsNyAr NzAwLDcgQEAgc3RhdGljIGludCBzdGlfaGRhX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gPiAgCj4gPiAgCWJyaWRnZS0+ZHJpdmVy X3ByaXZhdGUgPSBoZGE7Cj4gPiAgCWJyaWRnZS0+ZnVuY3MgPSAmc3RpX2hkYV9icmlkZ2VfZnVu Y3M7Cj4gPiAtCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gPiAr CWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gPiAgCj4g PiAgCWNvbm5lY3Rvci0+ZW5jb2RlciA9IGVuY29kZXI7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlf aGRtaS5jCj4gPiBpbmRleCBmMDNkNjE3ZWRjNGMuLjhjMGZmZTY4MzNmOSAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3N0aS9zdGlfaGRtaS5jCj4gPiBAQCAtMTI3Niw3ICsxMjc2LDcgQEAgc3RhdGljIGludCBz dGlfaGRtaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2 b2lkICpkYXRhKQo+ID4gIAo+ID4gIAlicmlkZ2UtPmRyaXZlcl9wcml2YXRlID0gaGRtaTsKPiA+ ICAJYnJpZGdlLT5mdW5jcyA9ICZzdGlfaGRtaV9icmlkZ2VfZnVuY3M7Cj4gPiAtCWRybV9icmlk Z2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gPiArCWRybV9icmlkZ2VfYXR0YWNo KGVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gPiAgCj4gPiAgCWNvbm5lY3Rvci0+ZW5j b2RlciA9IGVuY29kZXI7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0 bS9sdGRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYwo+ID4gaW5kZXggMmZlNmM0YThk OTE1Li4xMGE5Zjg0OGM1ZjYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0 ZGMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N0bS9sdGRjLmMKPiA+IEBAIC0xMDUzLDcg KzEwNTMsNyBAQCBzdGF0aWMgaW50IGx0ZGNfZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZGV2LCBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ID4gIAlkcm1fZW5jb2Rlcl9pbml0 KGRkZXYsIGVuY29kZXIsICZsdGRjX2VuY29kZXJfZnVuY3MsCj4gPiAgCQkJIERSTV9NT0RFX0VO Q09ERVJfRFBJLCBOVUxMKTsKPiA+ICAKPiA+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5j b2RlciwgYnJpZGdlLCBOVUxMKTsKPiA+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rl ciwgYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ICAJaWYgKHJldCkgewo+ID4gIAkJZHJtX2VuY29k ZXJfY2xlYW51cChlbmNvZGVyKTsKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0v c3VuNGkvc3VuNGlfbHZkcy5jCj4gPiBpbmRleCAzYTNiYTk5ZmVkMjIuLjNlNTE3MGZhMWU2NyAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMKPiA+IEBAIC0xNTUsNyArMTU1 LDcgQEAgaW50IHN1bjRpX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3Qg c3VuNGlfdGNvbiAqdGNvbikKPiA+ICAJfQo+ID4gIAo+ID4gIAlpZiAoYnJpZGdlKSB7Cj4gPiAt CQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ID4gKwkJ cmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiA+ ICAJCWlmIChyZXQpIHsKPiA+ICAJCQlkZXZfZXJyKGRybS0+ZGV2LCAiQ291bGRuJ3QgYXR0YWNo IG91ciBicmlkZ2VcbiIpOwo+ID4gIAkJCWdvdG8gZXJyX2NsZWFudXBfY29ubmVjdG9yOwo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYyBiL2RyaXZlcnMv Z3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYwo+ID4gaW5kZXggYTkwMWVjNjg5YjYyLi4zZjg2Mjk0 NDVmYmIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfcmdiLmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYwo+ID4gQEAgLTI1Miw3 ICsyNTIsNyBAQCBpbnQgc3VuNGlfcmdiX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3Ry dWN0IHN1bjRpX3Rjb24gKnRjb24pCj4gPiAgCX0KPiA+ICAKPiA+ICAJaWYgKHJnYi0+YnJpZGdl KSB7Cj4gPiAtCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCByZ2ItPmJyaWRnZSwg TlVMTCk7Cj4gPiArCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCByZ2ItPmJyaWRn ZSwgTlVMTCwgdHJ1ZSk7Cj4gPiAgCQlpZiAocmV0KSB7Cj4gPiAgCQkJZGV2X2Vycihkcm0tPmRl diwgIkNvdWxkbid0IGF0dGFjaCBvdXIgYnJpZGdlXG4iKTsKPiA+ICAJCQlnb3RvIGVycl9jbGVh bnVwX2Nvbm5lY3RvcjsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3Rp bGNkY19leHRlcm5hbC5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJuYWwu Ywo+ID4gaW5kZXggZTk5NjljZDM2NjEwLi5lYzY5M2MxMWU0NTUgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5jCj4gPiBAQCAtMTY4LDcgKzE2OCw3IEBA IGludCB0aWxjZGNfYXR0YWNoX2JyaWRnZShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiwgc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ICAKPiA+ICAJcHJpdi0+ZXh0ZXJuYWxfZW5jb2Rlci0+ cG9zc2libGVfY3J0Y3MgPSBCSVQoMCk7Cj4gPiAgCj4gPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0 YWNoKHByaXYtPmV4dGVybmFsX2VuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gPiArCXJldCA9IGRy bV9icmlkZ2VfYXR0YWNoKHByaXYtPmV4dGVybmFsX2VuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1 ZSk7Cj4gPiAgCWlmIChyZXQpIHsKPiA+ICAJCWRldl9lcnIoZGRldi0+ZGV2LCAiZHJtX2JyaWRn ZV9hdHRhY2goKSBmYWlsZWQgJWRcbiIsIHJldCk7Cj4gPiAgCQlyZXR1cm4gcmV0Owo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jIGIvZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfZHBpLmMKPiA+IGluZGV4IDM0ZjkwY2E4ZjQ3OS4uMmQ3YzVjZjBkNDY4IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHBpLmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jCj4gPiBAQCAtMjYyLDcgKzI2Miw3IEBAIHN0YXRpYyBp bnQgdmM0X2RwaV9pbml0X2JyaWRnZShzdHJ1Y3QgdmM0X2RwaSAqZHBpKQo+ID4gIAlpZiAocGFu ZWwpCj4gPiAgCQlicmlkZ2UgPSBkcm1fcGFuZWxfYnJpZGdlX2FkZChwYW5lbCwgRFJNX01PREVf Q09OTkVDVE9SX0RQSSk7Cj4gPiAgCj4gPiAtCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChkcGkt PmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gPiArCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChk cGktPmVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRp YyBpbnQgdmM0X2RwaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFz dGVyLCB2b2lkICpkYXRhKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMKPiA+IGluZGV4IDJlYTRlMjBi N2I4YS4uM2VkZDdmZmM3MzgzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92 YzRfZHNpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RzaS5jCj4gPiBAQCAt MTYwNyw3ICsxNjA3LDcgQEAgc3RhdGljIGludCB2YzRfZHNpX2JpbmQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gPiAgCQkJIERSTV9NT0RF X0VOQ09ERVJfRFNJLCBOVUxMKTsKPiA+ICAJZHJtX2VuY29kZXJfaGVscGVyX2FkZChkc2ktPmVu Y29kZXIsICZ2YzRfZHNpX2VuY29kZXJfaGVscGVyX2Z1bmNzKTsKPiA+ICAKPiA+IC0JcmV0ID0g ZHJtX2JyaWRnZV9hdHRhY2goZHNpLT5lbmNvZGVyLCBkc2ktPmJyaWRnZSwgTlVMTCk7Cj4gPiAr CXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGRzaS0+ZW5jb2RlciwgZHNpLT5icmlkZ2UsIE5VTEws IHRydWUpOwo+ID4gIAlpZiAocmV0KSB7Cj4gPiAgCQlkZXZfZXJyKGRldiwgImJyaWRnZSBhdHRh Y2ggZmFpbGVkOiAlZFxuIiwgcmV0KTsKPiA+ICAJCXJldHVybiByZXQ7Cj4gPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oIGIvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oCj4g PiBpbmRleCA3NjE2ZjY1NjJmZTQuLjA4ZGMxNWY5M2RlZCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1 ZGUvZHJtL2RybV9icmlkZ2UuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oCj4g PiBAQCAtNDgsNyArNDgsNyBAQCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyB7Cj4gPiAgCSAqCj4g PiAgCSAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ID4gIAkgKi8K PiA+IC0JaW50ICgqYXR0YWNoKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiA+ICsJaW50 ICgqYXR0YWNoKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLCBib29sIGNyZWF0ZV9jb25uZWN0 b3IpOwo+ID4gIAo+ID4gIAkvKioKPiA+ICAJICogQGRldGFjaDoKPiA+IEBAIC00MDQsNyArNDA0 LDcgQEAgdm9pZCBkcm1fYnJpZGdlX2FkZChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiA+ ICB2b2lkIGRybV9icmlkZ2VfcmVtb3ZlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ID4g IHN0cnVjdCBkcm1fYnJpZGdlICpvZl9kcm1fZmluZF9icmlkZ2Uoc3RydWN0IGRldmljZV9ub2Rl ICpucCk7Cj4gPiAgaW50IGRybV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2Rlciwgc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+IC0JCSAgICAgIHN0cnVjdCBkcm1f YnJpZGdlICpwcmV2aW91cyk7Cj4gPiArCQkgICAgICBzdHJ1Y3QgZHJtX2JyaWRnZSAqcHJldmlv dXMsIGJvb2wgY3JlYXRlX2Nvbm5lY3Rvcik7Cj4gPiAgCj4gPiAgYm9vbCBkcm1fYnJpZGdlX21v ZGVfZml4dXAoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+ICAJCQkgICBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFy dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=