From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 02/26] drm/i915: don't stop+start FBC at every flip Date: Wed, 28 Oct 2015 19:20:12 +0200 Message-ID: <20151028172012.GS4437@intel.com> References: <1445964628-30226-1-git-send-email-paulo.r.zanoni@intel.com> <1445964628-30226-3-git-send-email-paulo.r.zanoni@intel.com> <20151027183231.GN4437@intel.com> <1446051398.2750.3.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id E7E6C6E951 for ; Wed, 28 Oct 2015 10:20:34 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1446051398.2750.3.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Zanoni, Paulo R" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjgsIDIwMTUgYXQgMDQ6NTY6MzlQTSArMDAwMCwgWmFub25pLCBQYXVsbyBS IHdyb3RlOgo+IEVtIFRlciwgMjAxNS0xMC0yNyDDoHMgMjA6MzIgKzAyMDAsIFZpbGxlIFN5cmrD pGzDpCBlc2NyZXZldToKPiA+IE9uIFR1ZSwgT2N0IDI3LCAyMDE1IGF0IDAyOjUwOjA0UE0gLTAy MDAsIFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gVGhlIGhhcmR3YXJlIGFscmVhZHkgdGFrZXMg Y2FyZSBvZiBkaXNhYmxpbmcgYW5kIHJlY29tcHJlc3NpbmcgRkJDCj4gPiA+IHdoZW4gd2UgZG8g YSBwYWdlIGZsaXAsIHNvIGFsbCB3ZSBuZWVkIHRvIGRvIGlzIHRvIHVwZGF0ZSB0aGUgZmVuY2UK PiA+ID4gcmVnaXN0ZXJzIGFuZCBtb3ZlIG9uLgo+ID4gPiAKPiA+ID4gT25lIG9mIHRoZSBpbXBv cnRhbnQgdGhpbmdzIHRvIG5vdGljZSBpcyB0aGF0IG9uIHRoZSBwcmUtZ2VuNgo+ID4gPiBwbGF0 Zm9ybXMgdGhlIGZlbmNlIGlzIHByb2dyYW1tZWQgb24gdGhlIEZCQyBjb250cm9sIHJlZ2lzdGVy IGFuZAo+ID4gPiB0aGUKPiA+ID4gZG9jdW1lbnRhdGlvbiBzYXlzIHdlIGNhbid0IHVwZGF0ZSB0 aGUgY29udHJvbCByZWdpc3RlciB3aGlsZSBGQkMKPiA+ID4gaXMKPiA+ID4gZW5hYmxlZC4gVGhp cyB3b3VsZCBiYXNpY2FsbHkgbWVhbiB3ZSdkIGhhdmUgdG8gdG8gZGlzYWJsZStlbmFibGUKPiA+ ID4gRkJDCj4gPiA+IGF0IGV2ZXJ5IGZsaXAgaW4gb3JkZXIgdG8gbWFrZSBzdXJlIHRoZSBoYXJk d2FyZSB0cmFja2luZyBzdGlsbAo+ID4gPiB3b3JrcywKPiA+ID4gd2hpY2ggZG9lc24ndCBzZWVt IHRvIG1ha2UgdG9vIG11Y2ggc2Vuc2UuIFNvIEkgc2VudCBhbiBlbWFpbCB0bwo+ID4gPiB0aGUK PiA+ID4gaGFyZHdhcmUgdGVhbSByZXF1ZXN0aW5nIHNvbWUgY2xhcmlmaWNhdGlvbi4gVGhlIGlu Zm9ybWF0aW9uIEkgZ290Cj4gPiA+IHdhcwo+ID4gPiB0aGlzOgo+ID4gPiAKPiA+ID4gIkkgZG9u J3QgdGhpbmsgYW55IGhhcmR3YXJlIGlzIGxhdGNoaW5nIG9uIHRvIDB4MTAwMTAwLCAweDEwMDEw NCwKPiA+ID4gb3IKPiA+ID4gdGhlIG9sZCBmZW5jZSBudW1iZXIgaW4gRkJDX0NUTC4gSW5zdHJ1 Y3Rpb25zIGFnYWluc3QgY2hhbmdpbmcgb24KPiA+ID4gdGhlCj4gPiA+IGZseSB3b3VsZCBiZSB0 byBzaW1wbGlmeSB0ZXN0aW5nIGFuZCBlbnN1cmUgeW91IGRvbid0IG1pc3MgYW55Cj4gPiA+IGlu dmFsaWRhdGlvbiB0aGF0IGhhcHBlbmVkIHJpZ2h0IGF0IHRoYXQgdGltZS4iCj4gPiA+IAo+ID4g PiBTbyBJIGd1ZXNzIHdlJ3JlIGZpbmUgZm9yIGZsaXBzLiBCdXQgSSBjYW4ndCByZWFsbHkgc2F5 IEkgdGVzdGVkCj4gPiA+IEZCQwo+ID4gPiBvbiB0aGVzZSBhbmNpZW50IHBsYXRmb3JtcyAtIG5v ciB0aGF0IEknbGwgZXZlciBwcm9wb3NlIGVuYWJsaW5nCj4gPiA+IEZCQwo+ID4gPiBieSBkZWZh dWx0IG9uIHRoZW0gZXhhY3RseSBiZWNhdXNlIG9mIHByb2JsZW1zIGxpa2UgdGhlc2UuCj4gPiAK PiA+IFllYWgsIEkgZGlkIHRoaXMgaW4gbXkgcGF0Y2hlcyB0b28sIGFuZCBJSVJDIGl0IHNlZW1l ZCB0byB3b3JrIGp1c3QKPiA+IGZpbmUKPiA+IGJhY2sgdGhlbi4KPiA+IAo+ID4gPiAKPiA+ID4g djI6IEFkZCBjb21tZW50IGF0IGZsdXNoKCkgKENocmlzKS4KPiA+ID4gCj4gPiA+IFRlc3RjYXNl OiBpZ3Qva21zX2Zyb250YnVmZmVyX3RyYWNraW5nL2ZiYyotZmxpcHRyYWNrCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPiAt LS0KPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKgwqDC oMKgwqB8wqDCoMKgMSArCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaMKg wqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDMgKwo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuY8KgwqDCoMKgwqB8wqDCoMKgMSAtCj4gPiA+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmjCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgMiArCj4gPiA+IMKg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmPCoMKgwqDCoMKgwqDCoMKgwqB8IDEwMwo+ ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiA+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYyB8wqDCoMKgMSArCj4gPiA+IMKgNiBmaWxlcyBj aGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBpbmRleCBlZTE0OTYyLi43N2RhNTAwIDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gQEAgLTkyOCw2ICs5Mjgs NyBAQCBzdHJ1Y3QgaTkxNV9mYmMgewo+ID4gPiDCoAlib29sICgqZmJjX2VuYWJsZWQpKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiA+IMKgCXZvaWQgKCplbmFibGVfZmJj KShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gPiA+IMKgCXZvaWQgKCpkaXNhYmxlX2ZiYyko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+ID4gKwl2b2lkICgqZmxpcF9w cmVwYXJlKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gPiDCoH07Cj4g PiA+IMKgCj4gPiA+IMKgLyoqCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4g PiBpbmRleCA4OTQyNTMyLi4zZDU5OGEyIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiA+ID4gQEAgLTIwMjgsNiArMjAyOCw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2Vs bHMgewo+ID4gPiDCoCNkZWZpbmXCoMKgwqBGQkNfQ1RMX0MzX0lETEUJKDE8PDEzKQo+ID4gPiDC oCNkZWZpbmXCoMKgwqBGQkNfQ1RMX1NUUklERV9TSElGVAkoNSkKPiA+ID4gwqAjZGVmaW5lwqDC oMKgRkJDX0NUTF9GRU5DRU5PX1NISUZUCSgwKQo+ID4gPiArI2RlZmluZcKgwqDCoEZCQ19DVExf RkVOQ0VOT19NQVNLCTB4Rgo+ID4gCj4gPiBJdCdzIG9ubHkgdGhyZWUgYml0cyBvbiBnZW4yLiBC dXQgYml0IDMgaXMgTUJaIGFuZCB0aGVyZSBhcmUgb25seSA4Cj4gPiBmZW5jZSByZWdpc3RlcnMg b24gdGhvc2UgcGxhdGZvcm1zLCBzbyB0aGlzIGlzIE9LLgo+ID4gCj4gPiA+IMKgI2RlZmluZSBG QkNfQ09NTUFORAkJMHgwMzIwYwo+ID4gPiDCoCNkZWZpbmXCoMKgwqBGQkNfQ01EX0NPTVBSRVNT CSgxPDwwKQo+ID4gPiDCoCNkZWZpbmUgRkJDX1NUQVRVUwkJMHgwMzIxMAo+ID4gPiBAQCAtMjA2 NCw2ICsyMDY1LDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPiA+IMKgI2RlZmlu ZcKgwqDCoERQRkNfQ1RMX0xJTUlUXzFYCSgwPDw2KQo+ID4gPiDCoCNkZWZpbmXCoMKgwqBEUEZD X0NUTF9MSU1JVF8yWAkoMTw8NikKPiA+ID4gwqAjZGVmaW5lwqDCoMKgRFBGQ19DVExfTElNSVRf NFgJKDI8PDYpCj4gPiA+ICsjZGVmaW5lwqDCoMKgRFBGQ19DVExfRkVOQ0VfTUFTSwkweEYKPiA+ ID4gwqAjZGVmaW5lIERQRkNfUkVDT01QX0NUTAkJMHgzMjBjCj4gPiA+IMKgI2RlZmluZcKgwqDC oERQRkNfUkVDT01QX1NUQUxMX0VOCSgxPDwyNykKPiA+ID4gwqAjZGVmaW5lwqDCoMKgRFBGQ19S RUNPTVBfU1RBTExfV01fU0hJRlQgKDE2KQo+ID4gPiBAQCAtMjA4Niw2ICsyMDg4LDcgQEAgZW51 bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPiA+IMKgI2RlZmluZcKgwqDCoEZCQ19DVExfRkFM U0VfQ09MT1IJKDE8PDEwKQo+ID4gPiDCoC8qIFRoZSBiaXQgMjgtOCBpcyByZXNlcnZlZCAqLwo+ ID4gPiDCoCNkZWZpbmXCoMKgwqBEUEZDX1JFU0VSVkVECQkoMHgxRkZGRkYwMCkKPiA+ID4gKyNk ZWZpbmXCoMKgwqBJTEtfRFBGQ19GRU5DRV9NQVNLCTB4Rgo+ID4gPiDCoCNkZWZpbmUgSUxLX0RQ RkNfUkVDT01QX0NUTAkweDQzMjBjCj4gPiA+IMKgI2RlZmluZSBJTEtfRFBGQ19TVEFUVVMJCTB4 NDMyMTAKPiA+ID4gwqAjZGVmaW5lIElMS19EUEZDX0ZFTkNFX1lPRkYJMHg0MzIxOAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IGluZGV4IGJjMTkwN2Uu LmQ5Mzc4YzMgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiA+ID4gQEAgLTExNTAyLDcgKzExNTAyLDYgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2Vf ZmxpcChzdHJ1Y3QKPiA+ID4gZHJtX2NydGMgKmNydGMsCj4gPiA+IMKgCQkJwqDCoHRvX2ludGVs X3BsYW5lKHByaW1hcnkpLQo+ID4gPiA+ZnJvbnRidWZmZXJfYml0KTsKPiA+ID4gwqAJbXV0ZXhf dW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiA+IMKgCj4gPiA+IC0JaW50ZWxfZmJjX2Rp c2FibGVfY3J0YyhpbnRlbF9jcnRjKTsKPiA+ID4gwqAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcF9w cmVwYXJlKGRldiwKPiA+ID4gwqAJCQkJwqDCoMKgwqDCoMKgwqB0b19pbnRlbF9wbGFuZShwcmlt YXJ5KS0KPiA+ID4gPmZyb250YnVmZmVyX2JpdCk7Cj4gPiA+IMKgCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IGluZGV4IDA4ODQ3ZDAuLjkwNjVhOGYgMTAwNjQ0Cj4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IEBAIC0xMzA1LDYgKzEzMDUsOCBA QCB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ID4gwqAJCQnCoMKgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKPiA+ ID4gwqB2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+IMKgCQnCoMKgwqDCoMKgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsIGVu dW0KPiA+ID4gZmJfb3Bfb3JpZ2luIG9yaWdpbik7Cj4gPiA+ICt2b2lkIGludGVsX2ZiY19mbGlw X3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiArCQkJwqDC oMKgwqB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cyk7Cj4gPiA+IMKgdm9pZCBpbnRlbF9m YmNfY2xlYW51cF9jZmIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+ID4g wqAKPiA+ID4gwqAvKiBpbnRlbF9oZG1pLmMgKi8KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJjLmMKPiA+ID4gaW5kZXggZDlkN2U1NC4uNjJmMTU4YiAxMDA2NDQKPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gQEAgLTgyLDYgKzgyLDIyIEBAIHN0YXRpYyB2b2lk IGk4eHhfZmJjX2Rpc2FibGUoc3RydWN0Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ID4gPiDCoAlEUk1fREVCVUdfS01TKCJkaXNhYmxlZCBGQkNcbiIpOwo+ID4gPiDCoH0KPiA+ ID4gwqAKPiA+ID4gK3N0YXRpYyB2b2lkIGk4eHhfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3ByaXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNydGM7Cj4gPiA+ICsJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwo+ID4gPiArCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ID4gPiArCXVpbnQz Ml90IHZhbDsKPiA+ID4gKwo+ID4gPiArCS8qIEFsdGhvdWdoIHRoZSBkb2N1bWVudGF0aW9uIHN1 Z2dlc3RzIHdlIGNhbid0IGNoYW5nZQo+ID4gPiBEUEZDX0NPTlRST0wKPiA+ID4gKwnCoCogd2hp bGUgY29tcHJlc3Npb24gaXMgZW5hYmxlZCwgdGhlIGhhcmR3YXJlIGd1eXMgc2FpZAo+ID4gPiB0 aGF0IHVwZGF0aW5nCj4gPiA+ICsJwqAqIHRoZSBmZW5jZSByZWdpc3RlciBiaXRzIGR1cmluZyBh IGZsaXAgaXMgZmluZS4gKi8KPiA+ID4gKwl2YWwgPSBJOTE1X1JFQUQoRkJDX0NPTlRST0wpOwo+ ID4gPiArCXZhbCAmPSB+RkJDX0NUTF9GRU5DRU5PX01BU0s7Cj4gPiA+ICsJdmFsIHw9IG9iai0+ ZmVuY2VfcmVnOwo+ID4gPiArCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wsIHZhbCk7Cj4gPiA+ICt9 Cj4gPiAKPiA+IElJUkMgSSBqdXN0IGNhbGxlZCB0aGUgZW5hYmxlIGZ1bmN0aW9uIHRvIHJlY29u c3RydWN0IHRoZSBlbnRpcmUKPiA+IHJlZ2lzdGVyIGNvbnRlbnRzIHRvIGF2b2lkIGNvZGUgZHVw bGljYXRpb24uIEJ1dCBtYXliZSB0aGF0J3Mgbm90Cj4gPiBwb3NzaWJsZSB3aXRob3V0IHJlb3dy a2luZyB0aGUgZmJjIHN0YXRlIGhhbmRsaW5nIGVudGlyZWx5Cj4gPiAod2hpY2ggSSBoYWQgZG9u ZSkuCj4gPiA+ICsKPiA+ID4gwqBzdGF0aWMgdm9pZCBpOHh4X2ZiY19lbmFibGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCj4gPiA+IMKgewo+ID4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0KPiA+ID4gPmRldl9wcml2YXRlOwo+ID4gPiBA QCAtMTYxLDYgKzE3NywyMiBAQCBzdGF0aWMgdm9pZCBnNHhfZmJjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfY3J0Ywo+ID4gPiAqY3J0YykKPiA+ID4gwqAJRFJNX0RFQlVHX0tNUygiZW5hYmxlZCBmYmMg b24gcGxhbmUgJWNcbiIsCj4gPiA+IHBsYW5lX25hbWUoY3J0Yy0+cGxhbmUpKTsKPiA+ID4gwqB9 Cj4gPiA+IMKgCj4gPiA+ICtzdGF0aWMgdm9pZCBnNHhfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3ByaXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNydGM7Cj4gPiA+ICsJc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwo+ID4gPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ID4gPiArCXVp bnQzMl90IHZhbDsKPiA+ID4gKwo+ID4gPiArCS8qIEFsdGhvdWdoIHRoZSBkb2N1bWVudGF0aW9u IHN1Z2dlc3RzIHdlIGNhbid0IGNoYW5nZQo+ID4gPiBEUEZDX0NPTlRST0wKPiA+ID4gKwnCoCog d2hpbGUgY29tcHJlc3Npb24gaXMgZW5hYmxlZCwgdGhlIGhhcmR3YXJlIGd1eXMgc2FpZAo+ID4g PiB0aGF0IHVwZGF0aW5nCj4gPiA+ICsJwqAqIHRoZSBmZW5jZSByZWdpc3RlciBiaXRzIGR1cmlu ZyBhIGZsaXAgaXMgZmluZS4gKi8KPiA+ID4gKwl2YWwgPSBJOTE1X1JFQUQoRFBGQ19DT05UUk9M KTsKPiA+ID4gKwl2YWwgJj0gfkRQRkNfQ1RMX0ZFTkNFX01BU0s7Cj4gPiA+ICsJdmFsIHw9IG9i ai0+ZmVuY2VfcmVnOwo+ID4gPiArCUk5MTVfV1JJVEUoRFBGQ19DT05UUk9MLCB2YWwpOwo+ID4g PiArfQo+ID4gPiArCj4gPiA+IMKgc3RhdGljIHZvaWQgZzR4X2ZiY19kaXNhYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gwqB7Cj4gPiA+IMKgCXUzMiBkcGZjX2N0 bDsKPiA+ID4gQEAgLTIzNiw2ICsyNjgsMzEgQEAgc3RhdGljIHZvaWQgaWxrX2ZiY19lbmFibGUo c3RydWN0IGludGVsX2NydGMKPiA+ID4gKmNydGMpCj4gPiA+IMKgCURSTV9ERUJVR19LTVMoImVu YWJsZWQgZmJjIG9uIHBsYW5lICVjXG4iLAo+ID4gPiBwbGFuZV9uYW1lKGNydGMtPnBsYW5lKSk7 Cj4gPiA+IMKgfQo+ID4gPiDCoAo+ID4gPiArc3RhdGljIHZvaWQgaWxrX2ZiY19mbGlwX3ByZXBh cmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gKmRldl9wcml2KQo+ID4gPiArewo+ID4g PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gZGV2X3ByaXYtPmZiYy5jcnRjOwo+ID4gPiAr CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiA+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsK PiA+ID4gKwl1aW50MzJfdCB2YWw7Cj4gPiA+ICsKPiA+ID4gKwkvKiBBbHRob3VnaCB0aGUgZG9j dW1lbnRhdGlvbiBzdWdnZXN0cyB3ZSBjYW4ndCBjaGFuZ2UKPiA+ID4gRFBGQ19DT05UUk9MCj4g PiA+ICsJwqAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQsIHRoZSBoYXJkd2FyZSBndXlz IHNhaWQKPiA+ID4gdGhhdCB1cGRhdGluZwo+ID4gPiArCcKgKiB0aGUgZmVuY2UgcmVnaXN0ZXIg Yml0cyBkdXJpbmcgYSBmbGlwIGlzIGZpbmUuICovCj4gPiA+ICsJdmFsID0gSTkxNV9SRUFEKElM S19EUEZDX0NPTlRST0wpOwo+ID4gPiArCXZhbCAmPSB+SUxLX0RQRkNfRkVOQ0VfTUFTSzsKPiA+ ID4gKwl2YWwgfD0gb2JqLT5mZW5jZV9yZWc7Cj4gPiA+ICsJSTkxNV9XUklURShJTEtfRFBGQ19D T05UUk9MLCB2YWwpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBzbmJfZmJj X2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3ByaXYpCj4g PiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNy dGM7Cj4gPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1h cnktPmZiOwo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9m Yl9vYmooZmIpOwo+ID4gPiArCj4gPiA+ICsJSTkxNV9XUklURShTTkJfRFBGQ19DVExfU0EsIFNO Ql9DUFVfRkVOQ0VfRU5BQkxFIHwgb2JqLQo+ID4gPiA+ZmVuY2VfcmVnKTsKPiA+ID4gK30KPiA+ ID4gKwo+ID4gPiDCoHN0YXRpYyB2b2lkIGlsa19mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+IMKgewo+ID4gPiDCoAl1MzIgZHBmY19jdGw7Cj4gPiA+ IEBAIC0xMDIxLDEzICsxMDc4LDQ4IEBAIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdAo+ID4g PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gwqAJaWYgKG9yaWdpbiA9PSBPUklH SU5fR1RUKQo+ID4gPiDCoAkJcmV0dXJuOwo+ID4gPiDCoAo+ID4gPiArCS8qIEhhcmR3YXJlIHRy YWNraW5nIGFscmVhZHkgcmVjb21wcmVzc2VzIHRoZSBDRkIgKG51a2UpCj4gPiA+IGZvciB1cyBp ZiBGQkMKPiA+ID4gKwnCoCogaXMgZW5hYmxlZCBhbmQgd2UgZG8gYSBwYWdlIGZsaXAsIHNvIHdl IGNhbiBzYWZlbHkKPiA+ID4gaWdub3JlIGl0IGhlcmUuCj4gPiA+ICsJwqAqIEZCQyBtYXkgYmUg ZGlzYWJsZWQgaW4gY2FzZSB3ZSBnb3QgYW4gaW52YWxpZGF0ZSgpCj4gPiA+IGJlZm9yZSB0aGUK PiA+ID4gKwnCoCogZmx1c2goKSwgc28gd2UnbGwgc3RpbGwgaGF2ZSB0byBjaGVjayB0aGF0IGNh c2UgYmVsb3cuCj4gPiA+ICovCj4gPiA+ICsJaWYgKG9yaWdpbiA9PSBPUklHSU5fRkxJUCAmJiBk ZXZfcHJpdi0+ZmJjLmVuYWJsZWQpCj4gPiA+ICsJCXJldHVybjsKPiA+ID4gKwo+ID4gPiDCoAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ID4gPiDCoAo+ID4gPiDCoAlkZXZfcHJp di0+ZmJjLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKPiA+ID4gwqAKPiA+ID4gwqAJ aWYgKCFkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykgewo+ID4gPiAtCQlfX2ludGVsX2ZiY19kaXNh YmxlKGRldl9wcml2KTsKPiA+ID4gLQkJX19pbnRlbF9mYmNfdXBkYXRlKGRldl9wcml2KTsKPiA+ ID4gKwkJaWYgKG9yaWdpbiA9PSBPUklHSU5fRkxJUCkgewo+ID4gPiArCQkJX19pbnRlbF9mYmNf dXBkYXRlKGRldl9wcml2KTsKPiA+ID4gKwkJfSBlbHNlIHsKPiA+ID4gKwkJCV9faW50ZWxfZmJj X2Rpc2FibGUoZGV2X3ByaXYpOwo+ID4gPiArCQkJX19pbnRlbF9mYmNfdXBkYXRlKGRldl9wcml2 KTsKPiA+ID4gKwkJfQo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmZiYy5sb2NrKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArdm9pZCBpbnRlbF9mYmNf ZmxpcF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gKwkJ CcKgwqDCoMKgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMpCj4gPiA+ICt7Cj4gPiA+ICsJ dW5zaWduZWQgaW50IGZiY19iaXRzOwo+ID4gPiArCj4gPiA+ICsJaWYgKCFmYmNfc3VwcG9ydGVk KGRldl9wcml2KSkKPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiArCj4gPiA+ICsJbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiA+ID4gKwo+ID4gPiArCWlmIChkZXZfcHJpdi0+ZmJjLmVu YWJsZWQpIHsKPiA+ID4gKwkJZmJjX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKGRl dl9wcml2LQo+ID4gPiA+ZmJjLmNydGMtPnBpcGUpOwo+ID4gCj4gPiBwcmltYXJ5LT5mcm9udGJ1 ZmZlcl9iaXQgd291bGQgc2VlbSBiZXR0ZXIuCj4gCj4gV2h5PwoKV2h5IG5vdD8gSXQncyB0aGVy ZSBhbHJlYWR5IHN0YXNoZWQgYXdheSBmb3IgeW91IHRvIHVzZS4gTm8gbmVlZCB0bwpzcHJpbmts ZSB0aGVzZSBJTlRFTF9GUk9OVEJVRkZFUi4uLiB0aGluZ3MgYWxsIG92ZXIgdGhlIHBsYWNlLgoK PiAKPiA+IAo+ID4gPiArCQlpZiAoZmJjX2JpdHMgJiBmcm9udGJ1ZmZlcl9iaXRzKQo+ID4gPiAr CQkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUoZGV2X3ByaXYpOwo+ID4gCj4gPiBZb3Ugd291 bGQgc3RpbGwgaGF2ZSB0byBkaXNhYmxlK3JlZW5hYmxlIGlmIHlvdSBuZWVkIHRvIGVnLgo+ID4g cmVhbGxvY2F0ZQo+ID4gdGhlIGNvbXByZXNzZWQgYnVmZmVyLCBvZiBpZiB0aGUgbmV3IGZiIGlz bid0IHN1aXRhYmxlIGZvciBmYmMsIG9yCj4gPiBtYXliZQo+ID4gaWYgeW91IG5lZWQgdG8gY2hh bmdlIGFueXRoaW5nIGVsc2UgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXIuCj4gCj4gWWVzLCBidXQg YXMgZmFyIGFzIEkgdW5kZXJzdGFuZCB0aGUgZnJvbnRidWZmZXIgdHJhY2tpbmcsIHRoaXMgY2Fz ZQo+IHdvbid0IGhhcHBlbiBoZXJlLiBJJ20gYXNzdW1pbmcgd2UnbGwgYWx3YXlzIGdvIHRocm91 Z2gKPiBpbnRlbF9mYmNfdXBkYXRlKCkgb24gdGhlc2UgY2FzZXMuCgpQZXJoYXBzLCBidXQgbW9y ZSBieSBsdWNrIHRoYW4gYnkgZGVzaWduLiBXaXRoIHRoZSBzZXRwbGFuZSBhbmQgYXRvbWljCkFQ SXMgdGhlcmUncyBubyBkaWZmZXJlbmNlIGJldHdlZW4gYSBwYWdlIGZsaXAgYW5kIG90aGVyIHBs YW5lIHVwZGF0ZXMuClNvIGlmIHlvdSB3YW50IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBodyBm bGlwIG51a2UsIHlvdSB3b3VsZCBuZWVkIHRvCmNoZWNrIGhvdyB0aGUgcGxhbmUgc3RhdGUgaXMg Z29pbmcgdG8gY2hhbmdlLCBhbmQgYmFzZWQgb24gdGhhdCBkZWNpZGUKd2hldGhlciBhIGZlbmNl IHVwZGF0ZSBpcyBlbm91Z2ggb3IgZGlzYWJsZStyZS1lbmFibGUgaXMgbmVlZGVkLiBBbmQgaW4K ZmFjdCBJIGRvbid0IHNlZSBhbnkgZmJjX2Rpc2FibGUgYmVmb3JlIHRoZSBmbGlwLCBqdXN0IGFu IGZiY191cGRhdGUKYWZ0ZXIgdGhlIGZhY3QuIFNvIHNlZW1zIHRvIG1lIHRoZSBkaXNhYmxlIHJl YWxseSBzaG91bGQgYmUgaW4geW91cgpmbGlwX3ByZXBhcmUgaG9vayBpbiB0aGlzIGNhc2UuIEFu ZCBpbiBmYWN0IHRoZSB3aG9sZSBmbGlwX3ByZXBhcmUKdGhpbmcgaXNuJ3QgZXZlbiBjYWxsZWQg ZnJvbSB0aGUgc2V0cGxhbmUvYXRvbWljIHBhdGguCgo+IAo+ID4gCj4gPiBXaGF0IEkgaGFkIHdh czoKPiA+ICIKPiA+IHN0YXRpYyBib29sIGludGVsX2ZiY19uZWVkX3JlaW5pdChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKPiA+IHsKPiA+IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBjcnRjLT5iYXNlLmRldi0KPiA+ID5kZXZfcHJpdmF0ZTsKPiA+IAlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2UucHJpbWFyeS0+ZmI7Cj4gPiAJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0KPiA+ID5vYmo7 Cj4gPiAKPiA+IAlyZXR1cm4gY3J0YyAhPSBkZXZfcHJpdi0+ZmJjLmNydGMgfHwKPiA+IAnCoMKg wqDCoMKgwqDCoG9iai0+YmFzZS5zaXplID4gZGV2X3ByaXYtPmZiYy5zaXplIHx8Cj4gPiAJwqDC oMKgwqDCoMKgwqBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKSAhPQo+ ID4gCcKgwqDCoMKgwqDCoMKgZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZGV2X3ByaXYtPmZiYy5waXhl bF9mb3JtYXQsIDApIHx8Cj4gPiAJwqDCoMKgwqDCoMKgwqBmYi0+cGl0Y2hlc1swXSAhPSBkZXZf cHJpdi0+ZmJjLnBpdGNoOwo+ID4gfQo+ID4gaW50ZWxfZmJjX3ByZV9wYWdlX2ZsaXAoKQo+ID4g ewo+ID4gCS4uLgo+ID4gCWludGVsX2ZiY191cGRhdGVfcGVuZGluZ19zY29yZShjcnRjKTsKPiA+ IAo+ID4gCS8qCj4gPiAJICogSWYgZmJjIHdhcyBhbHJlYWR5IHBvc3NpYmxlIHdlIGNhbiB1cGRh dGUgaW1tZWRpYXRlbHksCj4gPiAJICogb3RoZXJ3aXNlIHdlIHdpbGwgd2FpdCB1bnRpbCB0aGUg ZmxpcCBpcyBmaW5pc2hlZC4KPiA+IAkgKi8KPiA+IAlpZiAoY3J0Yy0+ZmJjLnNjb3JlICE9IDAp Cj4gPiAJCWNydGMtPmZiYy5zY29yZSA9IGNydGMtPmZiYy5wZW5kaW5nX3Njb3JlOwo+ID4gCj4g PiAJLyoKPiA+IAkgKiBEaXNhYmxlIGZiYyBpZiB3ZSdyZSBub3QgKHlldCkgY2FwYWJsZSwgb3Ig aWYKPiA+IAkgKiB3ZSBqdXN0IG5lZWQgYSBmdWxsIGRpc2FibGUrZW5hYmxlIHJlaW5pdC4KPiA+ IAkgKi8KPiA+IAlpZiAoY3J0Yy0+ZmJjLnNjb3JlID09IDAgfHwgaW50ZWxfZmJjX25lZWRfcmVp bml0KGNydGMpKQo+ID4gCQlfX2ludGVsX2ZiY19kaXNhYmxlKGNydGMpOwo+ID4gCS4uLgo+ID4g fQo+ID4gIgo+ID4gCj4gPiA+ICsJfSBlbHNlIGlmIChkZXZfcHJpdi0+ZmJjLmZiY193b3JrKSB7 Cj4gPiA+ICsJCWZiY19iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWSgKPiA+ID4gKwkJ CQlkZXZfcHJpdi0+ZmJjLmZiY193b3JrLT5jcnRjLQo+ID4gPiA+cGlwZSk7Cj4gPiA+ICsJCWlm IChmYmNfYml0cyAmIGZyb250YnVmZmVyX2JpdHMpCj4gPiA+ICsJCQlfX2ludGVsX2ZiY19kaXNh YmxlKGRldl9wcml2KTsKPiA+ID4gwqAJfQo+ID4gPiDCoAo+ID4gPiDCoAltdXRleF91bmxvY2so JmRldl9wcml2LT5mYmMubG9jayk7Cj4gPiA+IEBAIC0xMDYzLDE4ICsxMTU1LDI1IEBAIHZvaWQg aW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gKmRldl9wcml2KQo+ ID4gPiDCoAkJZGV2X3ByaXYtPmZiYy5mYmNfZW5hYmxlZCA9IGlsa19mYmNfZW5hYmxlZDsKPiA+ ID4gwqAJCWRldl9wcml2LT5mYmMuZW5hYmxlX2ZiYyA9IGdlbjdfZmJjX2VuYWJsZTsKPiA+ID4g wqAJCWRldl9wcml2LT5mYmMuZGlzYWJsZV9mYmMgPSBpbGtfZmJjX2Rpc2FibGU7Cj4gPiA+ICsJ CWRldl9wcml2LT5mYmMuZmxpcF9wcmVwYXJlID0gc25iX2ZiY19mbGlwX3ByZXBhcmU7Cj4gPiA+ IMKgCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA1KSB7Cj4gPiA+IMKg CQlkZXZfcHJpdi0+ZmJjLmZiY19lbmFibGVkID0gaWxrX2ZiY19lbmFibGVkOwo+ID4gPiDCoAkJ ZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gaWxrX2ZiY19lbmFibGU7Cj4gPiA+IMKgCQlkZXZf cHJpdi0+ZmJjLmRpc2FibGVfZmJjID0gaWxrX2ZiY19kaXNhYmxlOwo+ID4gPiArCQlpZiAoSU5U RUxfSU5GTyhkZXZfcHJpdiktPmdlbiA9PSA1KQo+ID4gPiArCQkJZGV2X3ByaXYtPmZiYy5mbGlw X3ByZXBhcmUgPQo+ID4gPiBpbGtfZmJjX2ZsaXBfcHJlcGFyZTsKPiA+ID4gKwkJZWxzZQo+ID4g PiArCQkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUgPQo+ID4gPiBzbmJfZmJjX2ZsaXBfcHJl cGFyZTsKPiA+ID4gwqAJfSBlbHNlIGlmIChJU19HTTQ1KGRldl9wcml2KSkgewo+ID4gPiDCoAkJ ZGV2X3ByaXYtPmZiYy5mYmNfZW5hYmxlZCA9IGc0eF9mYmNfZW5hYmxlZDsKPiA+ID4gwqAJCWRl dl9wcml2LT5mYmMuZW5hYmxlX2ZiYyA9IGc0eF9mYmNfZW5hYmxlOwo+ID4gPiDCoAkJZGV2X3By aXYtPmZiYy5kaXNhYmxlX2ZiYyA9IGc0eF9mYmNfZGlzYWJsZTsKPiA+ID4gKwkJZGV2X3ByaXYt PmZiYy5mbGlwX3ByZXBhcmUgPSBnNHhfZmJjX2ZsaXBfcHJlcGFyZTsKPiA+ID4gwqAJfSBlbHNl IHsKPiA+ID4gwqAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBpOHh4X2ZiY19lbmFibGVk Owo+ID4gPiDCoAkJZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gaTh4eF9mYmNfZW5hYmxlOwo+ ID4gPiDCoAkJZGV2X3ByaXYtPmZiYy5kaXNhYmxlX2ZiYyA9IGk4eHhfZmJjX2Rpc2FibGU7Cj4g PiA+ICsJCWRldl9wcml2LT5mYmMuZmxpcF9wcmVwYXJlID0KPiA+ID4gaTh4eF9mYmNfZmxpcF9w cmVwYXJlOwo+ID4gPiDCoAo+ID4gPiDCoAkJLyogVGhpcyB2YWx1ZSB3YXMgcHVsbGVkIG91dCBv ZiBzb21lb25lJ3MgaGF0ICovCj4gPiA+IMKgCQlJOTE1X1dSSVRFKEZCQ19DT05UUk9MLCA1MDAg PDwKPiA+ID4gRkJDX0NUTF9JTlRFUlZBTF9TSElGVCk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYwo+ID4gPiBpbmRleCBhYzg1MzU3Li4zMWExYWQz IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZl ci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMK PiA+ID4gQEAgLTE5Miw2ICsxOTIsNyBAQCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXBfcHJl cGFyZShzdHJ1Y3QKPiA+ID4gZHJtX2RldmljZSAqZGV2LAo+ID4gPiDCoAltdXRleF91bmxvY2so JmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKPiA+ID4gwqAKPiA+ID4gwqAJaW50ZWxfcHNy X3NpbmdsZV9mcmFtZV91cGRhdGUoZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiA+ID4gKwlpbnRl bF9mYmNfZmxpcF9wcmVwYXJlKGRldl9wcml2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiA+ID4gwqB9 Cj4gPiA+IMKgCj4gPiA+IMKgLyoqCj4gPiA+IC0tIAo+ID4gPiAyLjYuMQo+ID4gPiAKPiA+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gPiA+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngKPiA+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK