From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH 2/2] drm/i915/skl: Support for 90/270 rotation Date: Tue, 14 Apr 2015 17:49:40 +0530 Message-ID: <552D05DC.7040604@intel.com> References: <1428656849-5004-1-git-send-email-sonika.jindal@intel.com> <1428656849-5004-2-git-send-email-sonika.jindal@intel.com> <20150410141717.GL6092@phenom.ffwll.local> <20150410144419.GA28877@intel.com> <552B40AA.3040504@intel.com> <20150413101045.GA11009@intel.com> <552B991A.7060403@intel.com> <20150413104922.GD11009@intel.com> <20150413233910.GC2804@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 179D17A00C for ; Tue, 14 Apr 2015 05:19:43 -0700 (PDT) In-Reply-To: <20150413233910.GC2804@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , =?windows-1252?Q?Ville_Syrj?= =?windows-1252?Q?=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA0LzE0LzIwMTUgNTowOSBBTSwgTWF0dCBSb3BlciB3cm90ZToKPiBPbiBNb24sIEFwciAx MywgMjAxNSBhdCAwMTo0OToyMlBNICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+IE9u IE1vbiwgQXByIDEzLCAyMDE1IGF0IDAzOjUzOjIyUE0gKzA1MzAsIEppbmRhbCwgU29uaWthIHdy b3RlOgo+Pj4KPj4+Cj4+PiBPbiA0LzEzLzIwMTUgMzo0MCBQTSwgVmlsbGUgU3lyasOkbMOkIHdy b3RlOgo+Pj4+IE9uIE1vbiwgQXByIDEzLCAyMDE1IGF0IDA5OjM2OjAyQU0gKzA1MzAsIEppbmRh bCwgU29uaWthIHdyb3RlOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiA0LzEwLzIwMTUgODoxNCBQTSwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+Pj4+Pj4gT24gRnJpLCBBcHIgMTAsIDIwMTUgYXQgMDQ6 MTc6MTdQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+Pj4+PiBPbiBGcmksIEFwciAx MCwgMjAxNSBhdCAwMjozNzoyOVBNICswNTMwLCBTb25pa2EgSmluZGFsIHdyb3RlOgo+Pj4+Pj4+ PiB2MjogTW92aW5nIGNyZWF0aW9uIG9mIHByb3BlcnR5IGluIGEgZnVuY3Rpb24sIGNoZWNraW5n IGZvciA5MC8yNzAKPj4+Pj4+Pj4gcm90YXRpb24gc2ltdWx0YW5lb3VzbHkgKENocmlzKQo+Pj4+ Pj4+PiBMZXR0aW5nIHByaW1hcnkgcGxhbmUgdG8gYmUgcG9zaXRpb25lZAo+Pj4+Pj4+PiB2Mzog QWRkaW5nIGlmL2Vsc2UgZm9yIDkwLzI3MCBhbmQgcmVzdCBwYXJhbXMgcHJvZ3JhbW1pbmcsIGFk ZGluZyBjaGVjayBmb3IKPj4+Pj4+Pj4gcGl4ZWxfZm9ybWF0LCBzb21lIGNsZWFudXAgKHJldmll dyBjb21tZW50cykKPj4+Pj4+Pj4gdjQ6IEFkZGluZyByaWdodCBwaXhlbF9mb3JtYXRzLCB1c2lu ZyBzcmNfKiBwYXJhbXMgaW5zdGVhZCBvZiBjcnRjXyogZm9yIG9mZnNldAo+Pj4+Pj4+PiBhbmQg c2l6ZSBwcm9ncmFtbWluZyAoVmlsbGUpCj4+Pj4+Pj4+IHY1OiBSZWJhc2VkIG9uIC1uaWdodGx5 IGFuZCBUdnJ0a28ncyBzZXJpZXMgZm9yIGd0dCByZW1hcHBpbmcuCj4+Pj4+Pj4+IHY2OiBSZWJh c2VkIG9uIC1uaWdodGx5IChUdnJ0a28ncyBzZXJpZXMgbWVyZ2VkKQo+Pj4+Pj4+PiB2NzogTW92 aW5nIHBpeGVsX2Zvcm1hdCBjaGVjayB0byBpbnRlbF9hdG9taWNfcGxhbmVfY2hlY2sgKE1hdHQp Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNvbmlrYSBKaW5kYWwgPHNvbmlrYS5q aW5kYWxAaW50ZWwuY29tPgo+Pj4+Pj4+PiBSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8bWF0dGhl dy5kLnJvcGVyQGludGVsLmNvbT4KPj4+Pj4+Pgo+Pj4+Pj4+IFBhdGNoZXMgYXJlIG1pc3Npbmcg dGhlIFRlc3RjYXNlOiB0YWcsIHBsZWFzZSBhZGQgdGhhdC4gQWxzbywgYXJlIGFsbCB0aGUKPj4+ Pj4+PiBpZ3QgY29tbWl0dGVkIG9yIG5vdCB5ZXQ/IFB1bGxlZCB0aGVzZSB0d28gaW4gbWVhbndo aWxlLgo+Pj4+Pj4KPj4+Pj4+IFRoaW5ncyBhcmUgZ29pbmcgc29tZXdoYXQgYnJva2VuIGJlY2F1 c2UgeW91IGRpZG4ndCBhcHBseSBteSBwbGFuZQo+Pj4+Pj4gc3RhdGUgc3R1ZmYuIEhtbS4gQWN0 dWFsbHkgaXQgc29ydCBvZiBsb29rcyB0aGF0IGl0IG1pZ2h0IHdvcmsgYnkgbHVjawo+Pj4+Pj4g YXMgbG9uZyBhcyB0aGUgcHJpbWFyeSBwbGFuZSBkb2Vzbid0IGdldCBjbGlwcGVkIHNpbmNlIHRo aXMgaXMgYmFzaGluZwo+Pj4+Pj4gdGhlIHVzZXIgc3RhdGUgZGlyZWN0bHkgaW50byB0aGUgaGFy ZHdhcmUgcmVnaXN0ZXJzIGFuZCBub3QgdGhlIGRlcml2ZWQKPj4+Pj4+IHN0YXRlIChpZS4gY2xp cHBlZCBjb29yZGluYXRlcykuCj4+Pj4+Pgo+Pj4+PiBJIHdhcyBob3BpbmcgeW91ciBjaGFuZ2Vz IGdldCBtZXJnZWQsIGJ1dCBub3Qgc3VyZSB3aHkgdGhleSBhcmUgaGVsZCB1cC4KPj4+Pj4KPj4+ Pj4+IEFsc28gSSBzZWUgbXkgcmV2aWV3IGNvbW1lbnQgYWJvdXQgdGhlIDkwIHZzLiAyNzAgcm90 YXRpb24gbWl4dXAgd2FzCj4+Pj4+PiBpZ25vcmVkIGF0IGxlYXN0Lgo+Pj4+Pj4KPj4+Pj4gSSBu ZXZlciByZWFsbHkgZ290IHRoZSB0byB1bmRlcnN0YW5kIHRoZSBuZWVkIG9mIHJldmVyc2luZyA5 MCBhbmQgMjcwIDopCj4+Pj4+IFRoZSBsYXN0IGRpc2N1c3Npb24gd2FzIG5vdCBjb25jbHVkZWQs IEFGQUlSLgo+Pj4+PiBUaGluZ3MgbG9vayBjb3JyZWN0IHRvIG1lIGFuZCB3b3JrIGZpbmUgd2l0 aCB0aGUgdGVzdGNhc2UgYWxzby4KPj4+Pj4gSXMgdGhlcmUgc29tZXRoaW5nIGNvbXBsZXRlbHkg ZGlmZmVyZW50IHdoaWNoIEkgYW0gdW5hYmxlIHRvIGdldD8KPj4+Pgo+Pj4+IEJTcGVjIGdpdmVz IG1lIHRoZSBpbXByZXNzaW9uIHRoZSBodyByb3RhdGlvbiBpcyBjdywgd2hlcmVhcyB0aGUgZHJt IG9uZQo+Pj4+IGlzIGNjdy4KPj4+Pgo+Pj4gWWVzLCBIVyByb3RhdGlvbiBpcyBjdyBhcyBwZXIg YnNwZWMuIEluIGRybSwgd2hlcmUgZG8gd2UgY29uc2lkZXIgaXQgYXMKPj4+IGFudGktY3c/IEkg YXNzdW1lIGl0IGlzIGN3IGJlY2F1c2UgYWxsIHRoZSBtYWNyb3Mgd29yayBhcyBleHBlY3RlZCwg aWUgY3cuCj4+Cj4+IFRoZSBjY3cgcnVsZSB3YXMgaW5oZXJpdGVkIGZyb20gWFJhbmRSLiBJJ20g bm90IHN1cmUgd2hhdCBtYWNyb3MgeW91Cj4+IG1lYW4sIGJ1dCBkcm1fcmVjdF9yb3RhdGUoKSB3 aWxsIGNlcnRhaW5seSBnaXZlIHlvdSB3cm9uZyByZXN1bHRzIGlmCj4+IHlvdSBhc3N1bWUgY3cu Cj4KPiBJdCBzZWVtcyBsaWtlIHRoaXMgaW5mb3JtYXRpb24gbmVlZHMgdG8gYmUgYWRkZWQgdG8g dGhlIHByb3BlcnR5IHNlY3Rpb24KPiBvZiB0aGUgRFJNIERvY0Jvb2s7IGNvbnRpbnVpbmcgdG8g Zm9sbG93IFhSYW5kUiBwcm9iYWJseSBtYWtlcyBzZW5zZSBpZgo+IHRoYXQncyB3aGF0J3MgYWdy ZWVkIG9uLCBidXQgdGhlcmUncyBubyBpbmRpY2F0aW9uIG9mIHRoYXQgZGVzaWduCj4gcGhpbG9z b3BoeSBpbiB0aGUgYWN0dWFsIERSTSBkb2N1bWVudGF0aW9uIHRvZGF5LCBzbyB3ZSdyZSBpbiBk YW5nZXIgb2YKPiBoYXZpbmcgZGlmZmVyZW50IGRyaXZlciBhdXRob3JzIHVzZSBjb25mbGljdGlu ZyBpbnRlcnByZXRhdGlvbnMuCj4KT2ssIEkgd2lsbCBjcmVhdGUgYSBEb2NCb29rIHBhdGNoIHdp dGggZGVzY3JpcHRpb24gZm9yIDkwLzI3MCByb3RhdGlvbiAKKEFueXdheXMgOTAvMjcwIHJvdGF0 aW9uIGlzIG5vdCBhZGRlZCBpbiB0aGUgcm90YXRpb24gcHJvcGVydHkgaW4gCmRvY3VtZW50YXRp b24pLiBXaWxsIHRoZXJlIGJlIGFueSBvdGhlciBwbGFjZSBmb3IgdGhpcyBvciBpOTE1J3MgCnJv dGF0aW9uIHByb3BlcnR5PwoKQWxzbywgSSB3aWxsIHNlbmQgYSBwYXRjaCB0byBmbGlwIDkwLzI3 MCBpbiBpOTE1LiBJIGFtIGp1c3Qgd29ycmllZCwgCnRoYXQgaXQgd2lsbCBsb29rIGNvbmZ1c2lu ZyB0byBjaGVjayBmb3IgRFJNX1JPVEFURV85MCBhbmQgdXNlIApQTEFORV9DVExfUk9UQVRFXzI3 MCBmb3IgcHJvZ3JhbW1pbmcuIEkgd2lsbCBhZGQgYSBjb21tZW50IHRob3VnaC4KU291bmRzIGdv b2Q/CgotU29uaWthCj4gOTAvMjcwIHJvdGF0aW9uIGlzIGFscmVhZHkgc3VwcG9ydGVkIGJ5IGV4 aXN0aW5nIGRyaXZlcnMgKG9tYXAgZm9yCj4gc2V2ZXJhbCB5ZWFycyBub3cgYW5kIGF0bWVsLWhs Y2RjIGp1c3QgcmVjZW50bHkpLiAgSSB0aGluayBpdCdzIHRvbyBsYXRlCj4gdG8gdHJ5IHRvIHJl ZGVmaW5lIHRoZSBtZWFuaW5nIG9mIHJvdGF0aW9uIHByb3BlcnR5IHZhbHVlcyB0aGF0IGFyZQo+ IGFscmVhZHkgaW4gYWN0aXZlIHVzZSwgc28gd2UgcHJvYmFibHkgbmVlZCB0byBjaGVjayB3aGV0 aGVyIG9tYXAgaXMKPiB1c2luZyBhIGN3IG9yIGNjdyBzY2hlbWUgYW5kIGZvbGxvdyAoYW5kIGRv Y3VtZW50ISkgdGhhdC4KPgo+Cj4gTWF0dAo+Cj4+Cj4+Pgo+Pj4+Pgo+Pj4+PiAtU29uaWthCj4+ Pj4+Cj4+Pj4+Pj4gLURhbmllbAo+Pj4+Pj4+Cj4+Pj4+Pj4+IC0tLQo+Pj4+Pj4+PiAgICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAgfCAgICAyICsKPj4+Pj4+Pj4g ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIHwgICAyNCArKysr KysrKwo+Pj4+Pj4+PiAgICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAg ICAgfCAgIDg4ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4+Pj4+Pj4+ICAgICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICB8ICAgIDYgKysKPj4+Pj4+Pj4g ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgIHwgICA1MiArKysr KysrKysrKystLS0tLQo+Pj4+Pj4+PiAgICAgNSBmaWxlcyBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9u cygrKSwgNDEgZGVsZXRpb25zKC0pCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+Pj4+Pj4+PiBpbmRleCBiNTIyZWI2Li41NjRiYmQ1IDEwMDY0NAo+Pj4+Pj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4+Pj4+Pj4gQEAgLTQ4NTQsNyArNDg1NCw5IEBAIGVu dW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+Pj4+Pj4+PiAgICAgI2RlZmluZSAgIFBMQU5FX0NU TF9BTFBIQV9IV19QUkVNVUxUSVBMWQkoICAzIDw8IDQpCj4+Pj4+Pj4+ICAgICAjZGVmaW5lICAg UExBTkVfQ1RMX1JPVEFURV9NQVNLCQkJMHgzCj4+Pj4+Pj4+ICAgICAjZGVmaW5lICAgUExBTkVf Q1RMX1JPVEFURV8wCQkJMHgwCj4+Pj4+Pj4+ICsjZGVmaW5lICAgUExBTkVfQ1RMX1JPVEFURV85 MAkJCTB4MQo+Pj4+Pj4+PiAgICAgI2RlZmluZSAgIFBMQU5FX0NUTF9ST1RBVEVfMTgwCQkJMHgy Cj4+Pj4+Pj4+ICsjZGVmaW5lICAgUExBTkVfQ1RMX1JPVEFURV8yNzAJCQkweDMKPj4+Pj4+Pj4g ICAgICNkZWZpbmUgX1BMQU5FX1NUUklERV8xX0EJCQkweDcwMTg4Cj4+Pj4+Pj4+ICAgICAjZGVm aW5lIF9QTEFORV9TVFJJREVfMl9BCQkJMHg3MDI4OAo+Pj4+Pj4+PiAgICAgI2RlZmluZSBfUExB TkVfU1RSSURFXzNfQQkJCTB4NzAzODgKPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljX3BsYW5lLmMKPj4+Pj4+Pj4gaW5kZXggOTc2Yjg5MS4uYTI3ZWU4YyAxMDA2NDQK Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMK Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMK Pj4+Pj4+Pj4gQEAgLTE2Miw2ICsxNjIsMzAgQEAgc3RhdGljIGludCBpbnRlbF9wbGFuZV9hdG9t aWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+Pj4+Pj4+ICAgICAJCQkoMSA8PCBk cm1fcGxhbmVfaW5kZXgocGxhbmUpKTsKPj4+Pj4+Pj4gICAgIAl9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ ICsJaWYgKHN0YXRlLT5mYiAmJiBpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAoc3RhdGUtPnJvdGF0 aW9uKSkgewo+Pj4+Pj4+PiArCQlpZiAoIShzdGF0ZS0+ZmItPm1vZGlmaWVyWzBdID09IEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEIHx8Cj4+Pj4+Pj4+ICsJCQlzdGF0ZS0+ZmItPm1vZGlmaWVyWzBd ID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkpIHsKPj4+Pj4+Pj4gKwkJCURSTV9ERUJVR19L TVMoIlkvWWYgdGlsaW5nIHJlcXVpcmVkIGZvciA5MC8yNzAhXG4iKTsKPj4+Pj4+Pj4gKwkJCXJl dHVybiAtRUlOVkFMOwo+Pj4+Pj4+PiArCQl9Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKwkJLyoKPj4+ Pj4+Pj4gKwkJICogOTAvMjcwIGlzIG5vdCBhbGxvd2VkIHdpdGggUkdCNjQgMTY6MTY6MTY6MTYs Cj4+Pj4+Pj4+ICsJCSAqIFJHQiAxNi1iaXQgNTo2OjUsIGFuZCBJbmRleGVkIDgtYml0Lgo+Pj4+ Pj4+PiArCQkgKiBUQkQ6IEFkZCBSR0I2NCBjYXNlIG9uY2UgaXRzIGFkZGVkIGluIHN1cHBvcnRl ZCBmb3JtYXQgbGlzdC4KPj4+Pj4+Pj4gKwkJICovCj4+Pj4+Pj4+ICsJCXN3aXRjaCAoc3RhdGUt PmZiLT5waXhlbF9mb3JtYXQpIHsKPj4+Pj4+Pj4gKwkJY2FzZSBEUk1fRk9STUFUX0M4Ogo+Pj4+ Pj4+PiArCQljYXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+Pj4+Pj4+PiArCQkJRFJNX0RFQlVHX0tN UygiVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICVzIGZvciA5MC8yNzAhXG4iLAo+Pj4+Pj4+PiAr CQkJCQlkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KSk7Cj4+Pj4+ Pj4+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArCQlkZWZhdWx0Ogo+ Pj4+Pj4+PiArCQkJYnJlYWs7Cj4+Pj4+Pj4+ICsJCX0KPj4+Pj4+Pj4gKwl9Cj4+Pj4+Pj4+ICsK Pj4+Pj4+Pj4gICAgIAlyZXR1cm4gaW50ZWxfcGxhbmUtPmNoZWNrX3BsYW5lKHBsYW5lLCBpbnRl bF9zdGF0ZSk7Cj4+Pj4+Pj4+ICAgICB9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPj4+Pj4+Pj4gaW5kZXggZjBiYmMyMi4uNGRlNTQ0YyAxMDA2NDQK Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4+ Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4+Pj4+PiBA QCAtMjMxMSwxMyArMjMxMSw2IEBAIGludGVsX2ZpbGxfZmJfZ2d0dF92aWV3KHN0cnVjdCBpOTE1 X2dndHRfdmlldyAqdmlldywgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4+Pj4+Pj4+ICAg ICAJaW5mby0+cGl0Y2ggPSBmYi0+cGl0Y2hlc1swXTsKPj4+Pj4+Pj4gICAgIAlpbmZvLT5mYl9t b2RpZmllciA9IGZiLT5tb2RpZmllclswXTsKPj4+Pj4+Pj4KPj4+Pj4+Pj4gLQlpZiAoIShpbmZv LT5mYl9tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAo+Pj4+Pj4+PiAtCSAg ICAgIGluZm8tPmZiX21vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkpIHsKPj4+ Pj4+Pj4gLQkJRFJNX0RFQlVHX0tNUygKPj4+Pj4+Pj4gLQkJCSAgICAgICJZIG9yIFlmIHRpbGlu ZyBpcyBuZWVkZWQgZm9yIDkwLzI3MCByb3RhdGlvbiFcbiIpOwo+Pj4+Pj4+PiAtCQlyZXR1cm4g LUVJTlZBTDsKPj4+Pj4+Pj4gLQl9Cj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4gICAgIAlyZXR1cm4gMDsK Pj4+Pj4+Pj4gICAgIH0KPj4+Pj4+Pj4KPj4+Pj4+Pj4gQEAgLTI5MTksOCArMjkxMiwxMiBAQCBz dGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPj4+Pj4+Pj4gICAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7Cj4+Pj4+Pj4+ICAgICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iajsKPj4+Pj4+Pj4gICAgIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4+Pj4+Pj4+ IC0JdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2RpdjsKPj4+Pj4+Pj4gKwl1MzIgcGxhbmVfY3RsLCBz dHJpZGVfZGl2LCBzdHJpZGU7Cj4+Pj4+Pj4+ICsJdTMyIHRpbGVfaGVpZ2h0LCBwbGFuZV9vZmZz ZXQsIHBsYW5lX3NpemU7Cj4+Pj4+Pj4+ICsJdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+Pj4+Pj4+ PiArCWludCB4X29mZnNldCwgeV9vZmZzZXQ7Cj4+Pj4+Pj4+ICAgICAJdW5zaWduZWQgbG9uZyBz dXJmX2FkZHI7Cj4+Pj4+Pj4+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4+Pj4+Pj4+Cj4+ Pj4+Pj4+ICAgICAJaWYgKCFpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKPj4+Pj4+Pj4g ICAgIAkJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIDApOwo+Pj4+Pj4+PiBAQCAtMjk4 MSwyMSArMjk3OCw1MSBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5l KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4+Pj4+Pj4gICAgIAl9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ ICAgICAJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwo+Pj4+Pj4+ PiAtCWlmIChjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVf MTgwKSkKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArCXBsYW5lID0gY3J0Yy0+cHJpbWFyeTsKPj4+Pj4+ Pj4gKwlyb3RhdGlvbiA9IHBsYW5lLT5zdGF0ZS0+cm90YXRpb247Cj4+Pj4+Pj4+ICsJc3dpdGNo IChyb3RhdGlvbikgewo+Pj4+Pj4+PiArCWNhc2UgQklUKERSTV9ST1RBVEVfOTApOgo+Pj4+Pj4+ PiArCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1JPVEFURV85MDsKPj4+Pj4+Pj4gKwkJYnJlYWs7 Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKwljYXNlIEJJVChEUk1fUk9UQVRFXzE4MCk6Cj4+Pj4+Pj4+ ICAgICAJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzE4MDsKPj4+Pj4+Pj4gKwkJYnJl YWs7Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKwljYXNlIEJJVChEUk1fUk9UQVRFXzI3MCk6Cj4+Pj4+ Pj4+ICsJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzI3MDsKPj4+Pj4+Pj4gKwkJYnJl YWs7Cj4+Pj4+Pj4+ICsJfQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAgICAgCW9iaiA9IGludGVsX2ZiX29i aihmYik7Cj4+Pj4+Pj4+ICAgICAJc3RyaWRlX2RpdiA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1l bnQoZGV2LCBmYi0+bW9kaWZpZXJbMF0sCj4+Pj4+Pj4+ICAgICAJCQkJCSAgICAgICBmYi0+cGl4 ZWxfZm9ybWF0KTsKPj4+Pj4+Pj4gLQlzdXJmX2FkZHIgPSBpbnRlbF9wbGFuZV9vYmpfb2Zmc2V0 KHRvX2ludGVsX3BsYW5lKGNydGMtPnByaW1hcnkpLCBvYmopOwo+Pj4+Pj4+PiArCXN1cmZfYWRk ciA9IGludGVsX3BsYW5lX29ial9vZmZzZXQodG9faW50ZWxfcGxhbmUocGxhbmUpLCBvYmopOwo+ Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsJaWYgKGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChyb3RhdGlv bikpIHsKPj4+Pj4+Pj4gKwkJLyogc3RyaWRlID0gU3VyZmFjZSBoZWlnaHQgaW4gdGlsZXMgKi8K Pj4+Pj4+Pj4gKwkJdGlsZV9oZWlnaHQgPSBpbnRlbF90aWxlX2hlaWdodChkZXYsIGZiLT5iaXRz X3Blcl9waXhlbCwKPj4+Pj4+Pj4gKwkJCQkJCWZiLT5tb2RpZmllclswXSk7Cj4+Pj4+Pj4+ICsJ CXN0cmlkZSA9IERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCB0aWxlX2hlaWdodCk7Cj4+Pj4+Pj4+ ICsJCXhfb2Zmc2V0ID0gc3RyaWRlICogdGlsZV9oZWlnaHQgLSB5IC0gKHBsYW5lLT5zdGF0ZS0+ c3JjX2ggPj4gMTYpOwo+Pj4+Pj4+PiArCQl5X29mZnNldCA9IHg7Cj4+Pj4+Pj4+ICsJCXBsYW5l X3NpemUgPSAoKHBsYW5lLT5zdGF0ZS0+c3JjX3cgPj4gMTYpIC0gMSkgPDwgMTYgfAo+Pj4+Pj4+ PiArCQkJCQkoKHBsYW5lLT5zdGF0ZS0+c3JjX2ggPj4gMTYpIC0gMSk7Cj4+Pj4+Pj4+ICsJfSBl bHNlIHsKPj4+Pj4+Pj4gKwkJc3RyaWRlID0gZmItPnBpdGNoZXNbMF0gLyBzdHJpZGVfZGl2Owo+ Pj4+Pj4+PiArCQl4X29mZnNldCA9IHg7Cj4+Pj4+Pj4+ICsJCXlfb2Zmc2V0ID0geTsKPj4+Pj4+ Pj4gKwkJcGxhbmVfc2l6ZSA9ICgocGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNikgLSAxKSA8PCAx NiB8Cj4+Pj4+Pj4+ICsJCQkoKHBsYW5lLT5zdGF0ZS0+c3JjX3cgPj4gMTYpIC0gMSk7Cj4+Pj4+ Pj4+ICsJfQo+Pj4+Pj4+PiArCXBsYW5lX29mZnNldCA9IHlfb2Zmc2V0IDw8IDE2IHwgeF9vZmZz ZXQ7Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCks IHBsYW5lX2N0bCk7Cj4+Pj4+Pj4+ICAgICAJSTkxNV9XUklURShQTEFORV9QT1MocGlwZSwgMCks IDApOwo+Pj4+Pj4+PiAtCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIDApLCAoeSA8PCAx NikgfCB4KTsKPj4+Pj4+Pj4gLQlJOTE1X1dSSVRFKFBMQU5FX1NJWkUocGlwZSwgMCksCj4+Pj4+ Pj4+IC0JCSAgIChpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX2ggLSAxKSA8PCAxNiB8Cj4+ Pj4+Pj4+IC0JCSAgIChpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3cgLSAxKSk7Cj4+Pj4+ Pj4+IC0JSTkxNV9XUklURShQTEFORV9TVFJJREUocGlwZSwgMCksIGZiLT5waXRjaGVzWzBdIC8g c3RyaWRlX2Rpdik7Cj4+Pj4+Pj4+ICsJSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgMCks IHBsYW5lX29mZnNldCk7Cj4+Pj4+Pj4+ICsJSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUsIDAp LCBwbGFuZV9zaXplKTsKPj4+Pj4+Pj4gKwlJOTE1X1dSSVRFKFBMQU5FX1NUUklERShwaXBlLCAw KSwgc3RyaWRlKTsKPj4+Pj4+Pj4gICAgIAlJOTE1X1dSSVRFKFBMQU5FX1NVUkYocGlwZSwgMCks IHN1cmZfYWRkcik7Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAJUE9TVElOR19SRUFEKFBMQU5FX1NV UkYocGlwZSwgMCkpOwo+Pj4+Pj4+PiBAQCAtMTI0MDYsMjMgKzEyNDMzLDMyIEBAIHN0YXRpYyBz dHJ1Y3QgZHJtX3BsYW5lICppbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+Pj4+Pj4+PiAgICAgCQkJCSBpbnRlbF9wcmltYXJ5X2Zvcm1hdHMsIG51bV9m b3JtYXRzLAo+Pj4+Pj4+PiAgICAgCQkJCSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPj4+Pj4+ Pj4KPj4+Pj4+Pj4gLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkgewo+Pj4+Pj4+PiAt CQlpZiAoIWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4+Pj4+Pj4+IC0JCQlk ZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5ID0KPj4+Pj4+Pj4gLQkJCQlkcm1fbW9k ZV9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoZGV2LAo+Pj4+Pj4+PiAtCQkJCQkJCUJJVChEUk1f Uk9UQVRFXzApIHwKPj4+Pj4+Pj4gLQkJCQkJCQlCSVQoRFJNX1JPVEFURV8xODApKTsKPj4+Pj4+ Pj4gLQkJaWYgKGRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4+Pj4+Pj4+IC0J CQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcHJpbWFyeS0+YmFzZS5iYXNlLAo+Pj4+Pj4+ PiAtCQkJCWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHksCj4+Pj4+Pj4+IC0JCQkJ c3RhdGUtPmJhc2Uucm90YXRpb24pOwo+Pj4+Pj4+PiAtCX0KPj4+Pj4+Pj4gKwlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gNCkKPj4+Pj4+Pj4gKwkJaW50ZWxfY3JlYXRlX3JvdGF0aW9uX3By b3BlcnR5KGRldiwgcHJpbWFyeSk7Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAJZHJtX3BsYW5lX2hl bHBlcl9hZGQoJnByaW1hcnktPmJhc2UsICZpbnRlbF9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+Pj4+ Pj4+Pgo+Pj4+Pj4+PiAgICAgCXJldHVybiAmcHJpbWFyeS0+YmFzZTsKPj4+Pj4+Pj4gICAgIH0K Pj4+Pj4+Pj4KPj4+Pj4+Pj4gK3ZvaWQgaW50ZWxfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4+Pj4+Pj4+ ICt7Cj4+Pj4+Pj4+ICsJaWYgKCFkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5KSB7 Cj4+Pj4+Pj4+ICsJCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBCSVQoRFJNX1JPVEFURV8wKSB8Cj4+ Pj4+Pj4+ICsJCQlCSVQoRFJNX1JPVEFURV8xODApOwo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsJCWlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQo+Pj4+Pj4+PiArCQkJZmxhZ3MgfD0gQklUKERS TV9ST1RBVEVfOTApIHwgQklUKERSTV9ST1RBVEVfMjcwKTsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiAr CQlkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5ID0KPj4+Pj4+Pj4gKwkJCWRybV9t b2RlX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShkZXYsIGZsYWdzKTsKPj4+Pj4+Pj4gKwl9Cj4+ Pj4+Pj4+ICsJaWYgKGRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4+Pj4+Pj4+ ICsJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZS5iYXNlLAo+Pj4+Pj4+ PiArCQkJCWRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHksCj4+Pj4+Pj4+ICsJCQkJ cGxhbmUtPmJhc2Uuc3RhdGUtPnJvdGF0aW9uKTsKPj4+Pj4+Pj4gK30KPj4+Pj4+Pj4gKwo+Pj4+ Pj4+PiAgICAgc3RhdGljIGludAo+Pj4+Pj4+PiAgICAgaW50ZWxfY2hlY2tfY3Vyc29yX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+Pj4+Pj4+PiAgICAgCQkJIHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqc3RhdGUpCj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+Pj4+ Pj4+IGluZGV4IDgxMWExZGIuLmQzMjAyNWEgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4+Pj4+Pj4+IEBAIC05OTUsNiArOTk1LDEyIEBAIGludGVsX3JvdGF0 aW9uXzkwX29yXzI3MCh1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4+Pj4+Pj4+ICAgICAJcmV0dXJu IHJvdGF0aW9uICYgKEJJVChEUk1fUk9UQVRFXzkwKSB8IEJJVChEUk1fUk9UQVRFXzI3MCkpOwo+ Pj4+Pj4+PiAgICAgfQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiArdW5zaWduZWQgaW50Cj4+Pj4+Pj4+ICtp bnRlbF90aWxlX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBiaXRzX3Bl cl9waXhlbCwKPj4+Pj4+Pj4gKwkJICB1aW50NjRfdCBmYl9tb2RpZmllcik7Cj4+Pj4+Pj4+ICt2 b2lkIGludGVsX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+Pj4+Pj4+PiArCQkJCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKTsKPj4+Pj4+Pj4gKwo+ Pj4+Pj4+PiAgICAgYm9vbCBpbnRlbF93bV9uZWVkX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPj4+Pj4+Pj4gICAgIAkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpOwo+ Pj4+Pj4+Pgo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+Pj4+Pj4+PiBp bmRleCBmNDFlODcyLi44M2FkYzliIDEwMDY0NAo+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwo+Pj4+Pj4+PiBAQCAtMTkwLDEwICsxOTAsMTMgQEAgc2tsX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKPj4+Pj4+Pj4gICAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxf ZmJfb2JqKGZiKTsKPj4+Pj4+Pj4gICAgIAljb25zdCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5w aXBlOwo+Pj4+Pj4+PiAgICAgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSAr IDE7Cj4+Pj4+Pj4+IC0JdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2RpdjsKPj4+Pj4+Pj4gKwl1MzIg cGxhbmVfY3RsLCBzdHJpZGVfZGl2LCBzdHJpZGU7Cj4+Pj4+Pj4+ICAgICAJaW50IHBpeGVsX3Np emUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKPj4+Pj4+Pj4g ICAgIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJmludGVs X3BsYW5lLT5ja2V5Owo+Pj4+Pj4+PiAgICAgCXVuc2lnbmVkIGxvbmcgc3VyZl9hZGRyOwo+Pj4+ Pj4+PiArCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwo+Pj4+Pj4+ PiArCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPj4+Pj4+Pj4gKwlpbnQgeF9vZmZzZXQsIHlfb2Zm c2V0Owo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAgICAgCXBsYW5lX2N0bCA9IFBMQU5FX0NUTF9FTkFCTEUg fAo+Pj4+Pj4+PiAgICAgCQlQTEFORV9DVExfUElQRV9DU0NfRU5BQkxFOwo+Pj4+Pj4+PiBAQCAt MjU0LDggKzI1NywyMCBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9w bGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4+Pj4+PiAgICAgCQlNSVNTSU5HX0NBU0Uo ZmItPm1vZGlmaWVyWzBdKTsKPj4+Pj4+Pj4gICAgIAl9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IC0JaWYg KGRybV9wbGFuZS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpCj4+Pj4+ Pj4+ICsJcm90YXRpb24gPSBkcm1fcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPj4+Pj4+Pj4gKwlz d2l0Y2ggKHJvdGF0aW9uKSB7Cj4+Pj4+Pj4+ICsJY2FzZSBCSVQoRFJNX1JPVEFURV85MCk6Cj4+ Pj4+Pj4+ICsJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzkwOwo+Pj4+Pj4+PiArCQli cmVhazsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArCWNhc2UgQklUKERSTV9ST1RBVEVfMTgwKToKPj4+ Pj4+Pj4gICAgIAkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMTgwOwo+Pj4+Pj4+PiAr CQlicmVhazsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArCWNhc2UgQklUKERSTV9ST1RBVEVfMjcwKToK Pj4+Pj4+Pj4gKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMjcwOwo+Pj4+Pj4+PiAr CQlicmVhazsKPj4+Pj4+Pj4gKwl9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAJaW50ZWxfdXBkYXRl X3Nwcml0ZV93YXRlcm1hcmtzKGRybV9wbGFuZSwgY3J0Yywgc3JjX3csIHNyY19oLAo+Pj4+Pj4+ PiAgICAgCQkJCSAgICAgICBwaXhlbF9zaXplLCB0cnVlLAo+Pj4+Pj4+PiBAQCAtMjgzLDEwICsy OTgsMjYgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgIAlzdXJmX2FkZHIgPSBp bnRlbF9wbGFuZV9vYmpfb2Zmc2V0KGludGVsX3BsYW5lLCBvYmopOwo+Pj4+Pj4+Pgo+Pj4+Pj4+ PiAtCUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIHBsYW5lKSwgKHkgPDwgMTYpIHwgeCk7 Cj4+Pj4+Pj4+IC0JSTkxNV9XUklURShQTEFORV9TVFJJREUocGlwZSwgcGxhbmUpLCBmYi0+cGl0 Y2hlc1swXSAvIHN0cmlkZV9kaXYpOwo+Pj4+Pj4+PiArCWlmIChpbnRlbF9yb3RhdGlvbl85MF9v cl8yNzAocm90YXRpb24pKSB7Cj4+Pj4+Pj4+ICsJCS8qIHN0cmlkZTogU3VyZmFjZSBoZWlnaHQg aW4gdGlsZXMgKi8KPj4+Pj4+Pj4gKwkJdGlsZV9oZWlnaHQgPSBpbnRlbF90aWxlX2hlaWdodChk ZXYsIGZiLT5iaXRzX3Blcl9waXhlbCwKPj4+Pj4+Pj4gKwkJCQkJCQlmYi0+bW9kaWZpZXJbMF0p Owo+Pj4+Pj4+PiArCQlzdHJpZGUgPSBESVZfUk9VTkRfVVAoZmItPmhlaWdodCwgdGlsZV9oZWln aHQpOwo+Pj4+Pj4+PiArCQlwbGFuZV9zaXplID0gKHNyY193IDw8IDE2KSB8IHNyY19oOwo+Pj4+ Pj4+PiArCQl4X29mZnNldCA9IHN0cmlkZSAqIHRpbGVfaGVpZ2h0IC0geSAtIChzcmNfaCArIDEp Owo+Pj4+Pj4+PiArCQl5X29mZnNldCA9IHg7Cj4+Pj4+Pj4+ICsJfSBlbHNlIHsKPj4+Pj4+Pj4g KwkJc3RyaWRlID0gZmItPnBpdGNoZXNbMF0gLyBzdHJpZGVfZGl2Owo+Pj4+Pj4+PiArCQlwbGFu ZV9zaXplID0gKHNyY19oIDw8IDE2KSB8IHNyY193Owo+Pj4+Pj4+PiArCQl4X29mZnNldCA9IHg7 Cj4+Pj4+Pj4+ICsJCXlfb2Zmc2V0ID0geTsKPj4+Pj4+Pj4gKwl9Cj4+Pj4+Pj4+ICsJcGxhbmVf b2Zmc2V0ID0geV9vZmZzZXQgPDwgMTYgfCB4X29mZnNldDsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiAr CUk5MTVfV1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIHBsYW5lKSwgcGxhbmVfb2Zmc2V0KTsKPj4+ Pj4+Pj4gKwlJOTE1X1dSSVRFKFBMQU5FX1NUUklERShwaXBlLCBwbGFuZSksIHN0cmlkZSk7Cj4+ Pj4+Pj4+ICAgICAJSTkxNV9XUklURShQTEFORV9QT1MocGlwZSwgcGxhbmUpLCAoY3J0Y195IDw8 IDE2KSB8IGNydGNfeCk7Cj4+Pj4+Pj4+IC0JSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUsIHBs YW5lKSwgKGNydGNfaCA8PCAxNikgfCBjcnRjX3cpOwo+Pj4+Pj4+PiArCUk5MTVfV1JJVEUoUExB TkVfU0laRShwaXBlLCBwbGFuZSksIHBsYW5lX3NpemUpOwo+Pj4+Pj4+PiAgICAgCUk5MTVfV1JJ VEUoUExBTkVfQ1RMKHBpcGUsIHBsYW5lKSwgcGxhbmVfY3RsKTsKPj4+Pj4+Pj4gICAgIAlJOTE1 X1dSSVRFKFBMQU5FX1NVUkYocGlwZSwgcGxhbmUpLCBzdXJmX2FkZHIpOwo+Pj4+Pj4+PiAgICAg CVBPU1RJTkdfUkVBRChQTEFORV9TVVJGKHBpcGUsIHBsYW5lKSk7Cj4+Pj4+Pj4+IEBAIC0xMzEw LDE2ICsxMzQxLDcgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBl bnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+Pj4+Pj4+PiAgICAgCQlnb3RvIG91dDsKPj4+Pj4+ Pj4gICAgIAl9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IC0JaWYgKCFkZXYtPm1vZGVfY29uZmlnLnJvdGF0 aW9uX3Byb3BlcnR5KQo+Pj4+Pj4+PiAtCQlkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3Bl cnR5ID0KPj4+Pj4+Pj4gLQkJCWRybV9tb2RlX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShkZXYs Cj4+Pj4+Pj4+IC0JCQkJCQkJICBCSVQoRFJNX1JPVEFURV8wKSB8Cj4+Pj4+Pj4+IC0JCQkJCQkJ ICBCSVQoRFJNX1JPVEFURV8xODApKTsKPj4+Pj4+Pj4gLQo+Pj4+Pj4+PiAtCWlmIChkZXYtPm1v ZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5KQo+Pj4+Pj4+PiAtCQlkcm1fb2JqZWN0X2F0dGFj aF9wcm9wZXJ0eSgmaW50ZWxfcGxhbmUtPmJhc2UuYmFzZSwKPj4+Pj4+Pj4gLQkJCQkJICAgZGV2 LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSwKPj4+Pj4+Pj4gLQkJCQkJICAgc3RhdGUt PmJhc2Uucm90YXRpb24pOwo+Pj4+Pj4+PiArCWludGVsX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0 eShkZXYsIGludGVsX3BsYW5lKTsKPj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgIAlkcm1fcGxhbmVfaGVs cGVyX2FkZCgmaW50ZWxfcGxhbmUtPmJhc2UsICZpbnRlbF9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+ Pj4+Pj4+Pgo+Pj4+Pj4+PiAtLQo+Pj4+Pj4+PiAxLjcuMTAuNAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+PiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPj4+Pj4+Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo+Pj4+Pj4+Cj4+Pj4+Pj4gLS0KPj4+Pj4+PiBEYW5pZWwgVmV0dGVyCj4+ Pj4+Pj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4+Pj4+Pj4gaHR0cDov L2Jsb2cuZmZ3bGwuY2gKPj4+Pj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+Pj4+Pj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4+Pj4+PiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+Pj4+Pj4KPj4+Pgo+Pgo+PiAtLQo+ PiBWaWxsZSBTeXJqw6Rsw6QKPj4gSW50ZWwgT1RDCj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK