From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 6/7] drm/i915/fbc: move from crtc_state->enable_fbc to plane_state->enable_fbc Date: Mon, 14 Nov 2016 22:26:42 +0200 Message-ID: <20161114202642.GG31595@intel.com> References: <1478883461-20201-1-git-send-email-paulo.r.zanoni@intel.com> <1478883461-20201-7-git-send-email-paulo.r.zanoni@intel.com> <20161111185129.GS31595@intel.com> <1478890914.19391.31.camel@intel.com> <20161111191309.GT31595@intel.com> <1478894248.19391.43.camel@intel.com> <20161111202453.GU31595@intel.com> <1478897399.19391.61.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4F266E507 for ; Mon, 14 Nov 2016 20:26:53 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1478897399.19391.61.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: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMTEsIDIwMTYgYXQgMDY6NDk6NTlQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEVtIFNleCwgMjAxNi0xMS0xMSDDoHMgMjI6MjQgKzAyMDAsIFZpbGxlIFN5cmrDpGzD pCBlc2NyZXZldToKPiA+IE9uIEZyaSwgTm92IDExLCAyMDE2IGF0IDA1OjU3OjI4UE0gLTAyMDAs IFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gCj4gPiA+IEVtIFNleCwgMjAxNi0xMS0xMSDDoHMg MjE6MTMgKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCBlc2NyZXZldToKPiA+ID4gPiAKPiA+ID4gPiBP biBGcmksIE5vdiAxMSwgMjAxNiBhdCAwNTowMTo1NFBNIC0wMjAwLCBQYXVsbyBaYW5vbmkgd3Jv dGU6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gRW0gU2V4LCAyMDE2LTExLTExIMOg cyAyMDo1MSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIGVzY3JldmV1Ogo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE9uIEZyaSwgTm92IDExLCAyMDE2IGF0IDAyOjU3OjQwUE0g LTAyMDAsIFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBWaWxsZSBwb2ludGVkIG91dCB0aGF0IGludGVs X2ZiY19jaG9vc2VfY3J0YygpIGlzIGl0ZXJhdGluZwo+ID4gPiA+ID4gPiA+IG92ZXIKPiA+ID4g PiA+ID4gPiBhbGwKPiA+ID4gPiA+ID4gPiBwbGFuZXMgaW5zdGVhZCBvZiBqdXN0IHRoZSBwcmlt YXJ5IHBsYW5lcy4gVGhlcmUgYXJlIG5vCj4gPiA+ID4gPiA+ID4gcmVhbAo+ID4gPiA+ID4gPiA+ IGNvbnNlcXVlbmNlcyBvZiB0aGlzIHByb2JsZW0gZm9yIEhTVyssIGFuZCBmb3IgdGhlIG90aGVy Cj4gPiA+ID4gPiA+ID4gcGxhdGZvcm1zCj4gPiA+ID4gPiA+ID4gaXQKPiA+ID4gPiA+ID4gPiBq dXN0IG1lYW5zIHRoYXQgaW4gc29tZSBvYnNjdXJlIG11bHRpLXNjcmVlbiBjYXNlcyB3ZSdsbAo+ ID4gPiA+ID4gPiA+IGtlZXAKPiA+ID4gPiA+ID4gPiBGQkMKPiA+ID4gPiA+ID4gPiBkaXNhYmxl ZCB3aGVuIHdlIGNvdWxkIGhhdmUgZW5hYmxlZCBpdC4gU3RpbGwsIGl0ZXJhdGluZwo+ID4gPiA+ ID4gPiA+IG92ZXIKPiA+ID4gPiA+ID4gPiBhbGwKPiA+ID4gPiA+ID4gPiBwbGFuZXMgZG9lc24n dCBzZWVtIHRvIGJlIHRoZSBiZXN0IHRoaW5nIHRvIGRvLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+IE15IGluaXRpYWwgaWRlYSB3YXMgdG8ganVzdCBhZGQgYSBjaGVjayBmb3IgcGxhbmUt PnR5cGUgYW5kCj4gPiA+ID4gPiA+ID4gYmUKPiA+ID4gPiA+ID4gPiBkb25lLAo+ID4gPiA+ID4g PiA+IGJ1dCB0aGVuIEkgcmVhbGl6ZWQgdGhhdCBpbiBjb21taXRzIG5vdCBpbnZvbHZpbmcgdGhl Cj4gPiA+ID4gPiA+ID4gcHJpbWFyeQo+ID4gPiA+ID4gPiA+IHBsYW5lCj4gPiA+ID4gPiA+ID4g d2UKPiA+ID4gPiA+ID4gPiB3b3VsZCByZXNldCBjcnRjX3N0YXRlLT5lbmFibGVfZmJjIGJhY2sg dG8gZmFsc2UgZXZlbiB3aGVuCj4gPiA+ID4gPiA+ID4gRkJDCj4gPiA+ID4gPiA+ID4gaXMKPiA+ ID4gPiA+ID4gPiBlbmFibGVkLiBUaGF0IGFsc28gd291bGRuJ3QgcmVzdWx0IGluIGEgYnVnIGR1 ZSB0byB0aGUgd2F5Cj4gPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gZW5hYmxlX2ZiYyB2 YXJpYWJsZSBpcyBjaGVja2VkLCBidXQsIHN0aWxsLCBvdXIgY29kZSBjYW4gYmUKPiA+ID4gPiA+ ID4gPiBiZXR0ZXIKPiA+ID4gPiA+ID4gPiB0aGFuIHRoaXMuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gU28gSSB3ZW50IGZvciB0aGUgc29sdXRpb24gdGhhdCBpbnZvbHZlcyB0cmFja2lu Zwo+ID4gPiA+ID4gPiA+IGVuYWJsZV9mYmMgaW4KPiA+ID4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+ ID4gPiBwcmltYXJ5IHBsYW5lIHN0YXRlIGluc3RlYWQgb2YgdGhlIENSVEMgc3RhdGUuIFRoaXMg d2F5LCBpZgo+ID4gPiA+ID4gPiA+IGEKPiA+ID4gPiA+ID4gPiBjb21taXQKPiA+ID4gPiA+ID4g PiBkb2Vzbid0IGludm9sdmUgdGhlIHByaW1hcnkgcGxhbmUgZm9yIHRoZSBDUlRDIHdlIHdvbid0 IGJlCj4gPiA+ID4gPiA+ID4gcmVzZXR0aW5nCj4gPiA+ID4gPiA+ID4gZW5hYmxlX2ZiYyBiYWNr IHRvIGZhbHNlLCBzbyB0aGUgdmFyaWFibGUgd2lsbCBhbHdheXMKPiA+ID4gPiA+ID4gPiByZWZs ZWN0Cj4gPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gcmVhbGl0eS4gQW5kIHRoaXMgY2hh bmdlIGFsc28gbWFrZXMgbW9yZSBzZW5zZSBzaW5jZSBGQkMgaXMKPiA+ID4gPiA+ID4gPiBhY3R1 YWxseQo+ID4gPiA+ID4gPiA+IHRpZWQgdG8gdGhlIHNpbmdsZSBwbGFuZSBhbmQgbm90IHRoZSBm dWxsIHBpcGUuIEFzIGEgYm9udXMsCj4gPiA+ID4gPiA+ID4gd2UKPiA+ID4gPiA+ID4gPiBvbmx5 Cj4gPiA+ID4gPiA+ID4gaXRlcmF0ZSBvdmVyIHRoZSBDUlRDcyBpbnN0ZWFkIG9mIGl0ZXJhdGlu ZyBvdmVyIGFsbAo+ID4gPiA+ID4gPiA+IHBsYW5lcy4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiA+ID4gPiA+ID4gPiBSZXBvcnRlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5v bmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiA+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHzCoMKgNCArKy0tCj4gPiA+ ID4gPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyB8IDM2ICsrKysrKysr KysrKysrKysrKystCj4gPiA+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gPiA+IC0tLS0KPiA+ID4g PiA+ID4gPiAtLS0tLS0tLQo+ID4gPiA+ID4gPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNl cnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiA+ID4g PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gPiA+ID4gaW5kZXgg MDAzYWZiOC4uMDI1Y2I3NCAxMDA2NDQKPiA+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gPiA+ID4gQEAgLTQwMyw2ICs0MDMsOCBAQCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgewo+ID4gPiA+ID4gPiA+IMKgCWludCBzY2FsZXJfaWQ7Cj4gPiA+ ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiDCoAlzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xv cmtleSBja2V5Owo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCWJvb2wgZW5hYmxlX2Zi YzsKPiA+ID4gPiA+ID4gPiDCoH07Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiDCoHN0 cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyB7Cj4gPiA+ID4gPiA+ID4gQEAgLTY0OCw4 ICs2NTAsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ ID4gPiA+ID4gPiDCoAlib29sIGlwc19lbmFibGVkOwo+ID4gPiA+ID4gPiA+IMKgCj4gPiA+ID4g PiA+ID4gLQlib29sIGVuYWJsZV9mYmM7Cj4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+IMKg CWJvb2wgZG91YmxlX3dpZGU7Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiDCoAlib29s IGRwX2VuY29kZXJfaXNfbXN0Owo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJjLmMKPiA+ID4gPiA+ID4gPiBpbmRleCBiMDk1MTc1Li5mYzRhYzU3IDEwMDY0 NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4g PiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4g PiA+ID4gPiBAQCAtMTA1NSwxNiArMTA1NSwxNyBAQCB2b2lkIGludGVsX2ZiY19jaG9vc2VfY3J0 YyhzdHJ1Y3QKPiA+ID4gPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4g PiA+ID4gPiDCoAkJCcKgwqDCoHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4g PiA+ID4gPiDCoHsKPiA+ID4gPiA+ID4gPiDCoAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmZGV2 X3ByaXYtPmZiYzsKPiA+ID4gPiA+ID4gPiAtCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ID4g PiA+ID4gPiA+IC0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPiA+ID4g PiA+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+ID4gPiA+ID4gwqAJYm9vbCBjcnRjX2Nob3Nl biA9IGZhbHNlOwo+ID4gPiA+ID4gPiA+IMKgCWludCBpOwo+ID4gPiA+ID4gPiA+IMKgCj4gPiA+ ID4gPiA+ID4gwqAJbXV0ZXhfbG9jaygmZmJjLT5sb2NrKTsKPiA+ID4gPiA+ID4gPiDCoAo+ID4g PiA+ID4gPiA+IC0JLyogRG9lcyB0aGlzIGF0b21pYyBjb21taXQgaW52b2x2ZSB0aGUgQ1JUQwo+ ID4gPiA+ID4gPiA+IGN1cnJlbnRseQo+ID4gPiA+ID4gPiA+IHRpZWQKPiA+ID4gPiA+ID4gPiB0 byBGQkM/ICovCj4gPiA+ID4gPiA+ID4gKwkvKiBEb2VzIHRoaXMgYXRvbWljIGNvbW1pdCBpbnZv bHZlIHRoZSBwbGFuZQo+ID4gPiA+ID4gPiA+IGN1cnJlbnRseQo+ID4gPiA+ID4gPiA+IHRpZWQg dG8gRkJDPyAqLwo+ID4gPiA+ID4gPiA+IMKgCWlmIChmYmMtPmNydGMgJiYKPiA+ID4gPiA+ID4g PiAtCcKgwqDCoMKgIWRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUoc3RhdGUsCj4g PiA+ID4gPiA+ID4gJmZiYy0KPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gY3J0Yy0K PiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gYmFzZSkpCj4gPiA+ID4gPiA+ID4gKwnC oMKgwqDCoCFkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShzdGF0ZSwKPiA+ID4g PiA+ID4gPiArCQkJCQkJwqBmYmMtCj4gPiA+ID4gPiA+ID4gPmNydGMtCj4gPiA+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gYmFzZS5wcmltYXJ5KSkKPiA+ID4g PiA+ID4gPiDCoAkJZ290byBvdXQ7Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiDCoAlp ZiAoIWludGVsX2ZiY19jYW5fZW5hYmxlKGRldl9wcml2KSkKPiA+ID4gPiA+ID4gPiBAQCAtMTA3 NCwyNSArMTA3NSwyNiBAQCB2b2lkIGludGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QKPiA+ID4g PiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ID4gPiDCoAnCoCog cGxhbmUuIFdlIGNvdWxkIGdvIGZvciBmYW5jaWVyIHNjaGVtZXMgc3VjaCBhcwo+ID4gPiA+ID4g PiA+IGNoZWNraW5nCj4gPiA+ID4gPiA+ID4gdGhlIHBsYW5lCj4gPiA+ID4gPiA+ID4gwqAJwqAq IHNpemUsIGJ1dCB0aGlzIHdvdWxkIGp1c3QgYWZmZWN0IHRoZSBmZXcKPiA+ID4gPiA+ID4gPiBw bGF0Zm9ybXMKPiA+ID4gPiA+ID4gPiB0aGF0Cj4gPiA+ID4gPiA+ID4gZG9uJ3QgdGllIEZCQwo+ ID4gPiA+ID4gPiA+IMKgCcKgKiB0byBwaXBlIG9yIHBsYW5lIEEuICovCj4gPiA+ID4gPiA+ID4g LQlmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLAo+ID4g PiA+ID4gPiA+IGkpCj4gPiA+ID4gPiA+ID4gewo+ID4gPiA+ID4gPiA+IC0JCXN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZQo+ID4gPiA+ID4gPiA+ICppbnRlbF9wbGFuZV9zdGF0ZSA9Cj4gPiA+ID4g PiA+ID4gLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKTsKPiA+ID4gPiA+ID4g PiAtCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKPiA+ID4gPiA+ ID4gPiAtCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9Cj4gPiA+ID4gPiA+ID4gdG9faW50ZWxf Y3J0YyhwbGFuZV9zdGF0ZS0+Y3J0Yyk7Cj4gPiA+ID4gPiA+ID4gKwlmb3JfZWFjaF9jcnRjX2lu X3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQo+ID4gPiA+ID4gPiA+IHsKPiA+ID4g PiA+ID4gPiArCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KPiA+ID4g PiA+ID4gPiB0b19pbnRlbF9wbGFuZV9zdGF0ZSgKPiA+ID4gPiA+ID4gPiArCQkJZHJtX2F0b21p Y19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdAo+ID4gPiA+ID4gPiA+IGUoc3QKPiA+ID4gPiA+ID4g PiBhdGUsCj4gPiA+ID4gPiA+ID4gKwkJCQkJCQnCoMKgCj4gPiA+ID4gPiA+ID4gwqDCoGNyCj4g PiA+ID4gPiA+ID4gdGMtCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+ID4gcHJpbWFyeSkpOwo+ID4gPiA+ID4gPiA+ICsJCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0KPiA+ID4gPiA+ID4gPiB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gPiA+ID4g PiA+IMKgCj4gPiA+ID4gPiA+ID4gLQkJaWYgKCFpbnRlbF9wbGFuZV9zdGF0ZS0+YmFzZS52aXNp YmxlKQo+ID4gPiA+ID4gPiA+ICsJCWlmICghcGxhbmVfc3RhdGUpCj4gPiA+ID4gPiA+ID4gwqAJ CQljb250aW51ZTsKPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IC0JCWlmIChmYmNfb25f cGlwZV9hX29ubHkoZGV2X3ByaXYpICYmIGNydGMtCj4gPiA+ID4gPiA+ID4gPnBpcGXCoAo+ID4g PiA+ID4gPiA+ICE9Cj4gPiA+ID4gPiA+ID4gUElQRV9BKQo+ID4gPiA+ID4gPiA+ICsJCWlmICgh cGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSkKPiA+ID4gPiA+ID4gPiDCoAkJCWNvbnRpbnVlOwo+ ID4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+ID4gLQkJaWYgKGZiY19vbl9wbGFuZV9hX29ubHko ZGV2X3ByaXYpICYmIGNydGMtCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IHBsYW5l Cj4gPiA+ID4gPiA+ID4gIT0gUExBTkVfQSkKPiA+ID4gPiA+ID4gPiArCQlpZiAoZmJjX29uX3Bp cGVfYV9vbmx5KGRldl9wcml2KSAmJgo+ID4gPiA+ID4gPiA+IGludGVsX2NydGMtCj4gPiA+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gcGlwZSAhPSBQSVBFX0Ep Cj4gPiA+ID4gPiA+ID4gwqAJCQljb250aW51ZTsKPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4g PiA+IC0JCWludGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKAo+ID4gPiA+ID4g PiA+IC0JCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlCj4gPiA+ID4gPiA+ID4g KHN0YQo+ID4gPiA+ID4gPiA+IHRlLAo+ID4gPiA+ID4gPiA+ICZjcnRjLT5iYXNlKSk7Cj4gPiA+ ID4gPiA+ID4gKwkJaWYgKGZiY19vbl9wbGFuZV9hX29ubHkoZGV2X3ByaXYpICYmCj4gPiA+ID4g PiA+ID4gKwkJwqDCoMKgwqBpbnRlbF9jcnRjLT5wbGFuZSAhPSBQTEFORV9BKQo+ID4gPiA+ID4g PiA+ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IC0JCWludGVs X2NydGNfc3RhdGUtPmVuYWJsZV9mYmMgPSB0cnVlOwo+ID4gPiA+ID4gPiA+ICsJCXBsYW5lX3N0 YXRlLT5lbmFibGVfZmJjID0gdHJ1ZTsKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFNvIGxvb2tp bmcgYXQgdGhpcyB3aG9sZSB0aGluZywgSSBjYW4ndCBzZWUgYW55dGhpbmcgdGhhdAo+ID4gPiA+ ID4gPiB3b3VsZAo+ID4gPiA+ID4gPiBwcmV2ZW50Cj4gPiA+ID4gPiA+IGVuYWJsZV9mYmMgYmVp bmcgdHJ1ZSBmb3IgbXVsdGlwbGUgcHJpbWFyeSBwbGFuZXMgYXQgdGhlIHNhbWUKPiA+ID4gPiA+ ID4gdGltZQo+ID4gPiA+ID4gPiBXZWxsLCBhcGFydCBmcm9tIHRoZSB3aG9sZSAid2UgZW5hYmxl IGl0IG9ubHkgZm9yIHBsYXRmb3Jtcwo+ID4gPiA+ID4gPiB0aGF0Cj4gPiA+ID4gPiA+IGNhbgo+ ID4gPiA+ID4gPiBvbmx5IGRvCj4gPiA+ID4gPiA+IHBpcGUgQSIgdGhpbmcuCj4gPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiBTbyB3aGF0IGhhcHBlbnMgaW4gdGhhdCBjYXNlPyBGQkMganVzdCBlbmRz IHVwIGdldHRpbmcKPiA+ID4gPiA+ID4gZW5hYmxpbmcKPiA+ID4gPiA+ID4gb24KPiA+ID4gPiA+ ID4gb25lIG9mIHRoZSBwaXBlcyBiYXNlZCBvbiB0aGUgb3JkZXIgaW50ZWxfZmJjX2VuYWJsZSgp IGdldHMKPiA+ID4gPiA+ID4gY2FsbGVkLAo+ID4gPiA+ID4gPiBvciBzb21ldGhpbmc/Cj4gPiA+ ID4gPiAKPiA+ID4gPiA+IFRoZSBmaXJzdCBjaGVjayBvZiBpbnRlbF9mYmNfY2hvb3NlX2NydGMo KSBpcyBzdXBwb3NlZCB0bwo+ID4gPiA+ID4gcHJldmVudAo+ID4gPiA+ID4gdGhpcwo+ID4gPiA+ ID4gY2FzZTogaWYgZmJjLT5jcnRjLT5wcmltYXJ5IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgY29t bWl0IHdlCj4gPiA+ID4gPiBqdXN0Cj4gPiA+ID4gPiByZXR1cm4gd2l0aG91dCBzZWxlY3Rpbmcg YW55IHBsYW5lLgo+ID4gPiA+IAo+ID4gPiA+IFRoZSBmYmMtPmNydGMgdGhpbmcgb25seSB3b3Jr cyBpZiBpbnRlbF9mYmNfZW5hYmxlKCkgd2FzIGFscmVhZHkKPiA+ID4gPiBjYWxsZWQKPiA+ID4g PiBmb3Igc29tZSBjcnRjLiBCdXQgd2hhdCBpdCBpdCB3YXNuJ3Q/Cj4gPiA+ID4gCj4gPiA+ID4g PiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gT3RoZXJ3aXNlLCB3ZSBvbmx5IHBpY2sgb25lIENSVEMK PiA+ID4gPiA+IGR1ZSB0byB0aGUgImJyZWFrOyIgc3RhdGVtZW50IGFmdGVyIHNldHRpbmcgcGxh bmVfc3RhdGUtCj4gPiA+ID4gPiA+ZW5hYmxlX2ZiY8KgCj4gPiA+ID4gPiB0bwo+ID4gPiA+ID4g dHJ1ZS4KPiA+ID4gPiAKPiA+ID4gPiBPbmx5IG9uZSBwZXIgYXRvbWljIG9wZXJhdGlvbi4gQnV0 IHdoYXQgaWYgdGhlcmUgYXJlIHNldmVyYWwKPiA+ID4gPiBoYXBwZW5pbmcKPiA+ID4gPiBpbiBw YXJhbGxlbCBvbiBkaWZmZXJlbnQgY3J0Y3M/Cj4gPiA+IAo+ID4gPiBJIHNlZSB5b3VyIHBvaW50 IG5vdy4gWWVhaCwgd2UnbGwgZW5kIHVwIHdpdGgKPiA+ID4gcGxhbmVfc3RhdGUuZW5hYmxlX2Zi Yz10cnVlIGZvciB0d28gZGlmZmVyZW50IHBsYW5lcy4gTGF0ZXIsIHRoZQo+ID4gPiBmaXJzdAo+ ID4gPiBvbmUgdG8gY2FsbCBpbnRlbF9mYmNfZW5hYmxlKCkgd2lsbCB3aW4sIGFuZCB0aGUgb3Ro ZXJzIHdpbGwgYmUKPiA+ID4gaWdub3JlZCwgc28gd2UnbGwgaW5kZWVkIGVuZCB1cCB3aXRoIHBs YW5lIHN0YXRlcyBoYXZpbmcKPiA+ID4gZW5hYmxlX2ZiYz10cnVlIGJ1dCBGQkMgbm90IGVuYWJs ZWQgYnkgdGhlbS4gTm90IGEgcmVhbCBidWcsIEkKPiA+ID4gd291bGQKPiA+ID4gc3RpbGwgbGlr ZSB0byBhdm9pZCB0aGlzIGNvbmZ1c2lvbi4KPiA+ID4gCj4gPiA+IFRoZSBzaW1wbGVzdCBzb2x1 dGlvbiBJIGNhbiB0aGluayB3b3VsZCBiZSB0byBqdXN0Cj4gPiA+IHMvcGxhbmVfc3RhdGUuZW5h YmxlX2ZiYy9wbGFuZV9zdGF0ZS5jYW5fZW5hYmxlX2ZiYy8gYW5kIGp1c3QgbGV0Cj4gPiA+IHRo ZQo+ID4gPiBmaXJzdCBvbmUgdG8gY2FsbCBpbnRlbF9mYmNfZW5hYmxlKCkgd2luLi4uIEFuZCB0 aGVuLCBpZiB3ZSBldmVyCj4gPiA+IGRlY2lkZQo+ID4gPiB0byBlbmFibGUgRkJDIG9uIHRoZSBv bGRlciBwbGF0Zm9ybXMsIHdlIGNhbiBjaG9vc2UgdG8gbWF5YmUKPiA+ID4gaW1wbGVtZW50Cj4g PiA+IGEgYmV0dGVyIG1ldGhvZAo+ID4gCj4gPiBNYXliZSBzb21ldGhpbmcgbGlrZSAiZmJjX3Nj b3JlIj8gOykKPiAKPiBUaGUgZGVzaWduIG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uIHdhcyBzdXBw b3NlZCB0byBhbGxvdyBWaWxsZSB0bwo+IGltcGxlbWVudCBoaXMgZmJjX3Njb3JlIGluIGNhc2Ug aGUgd2FudGVkLiBCdXQgdGhpcyBjZXJ0YWlubHkgZGlkbid0Cj4gdGFrZSBpbnRvIGFjY291bnQg bXVsdGlwbGUgcGFyYWxsZWwgY29tbWl0czogaXQgd291bGQgb25seSB3b3JrIGlmCj4gbXVsdGlw bGUgQ1JUQ3Mgd2VyZSBpbmNsdWRlZCBpbiB0aGUgc2FtZSBjb21taXQgKGFzIHlvdSBqdXN0IHBv aW50ZWQKPiB0b2RheSkuCj4gCj4gQnV0IHRoZW46IGlmIHdlJ3JlIGhhdmluZyBzZXBhcmF0ZSBw YXJhbGxlbCBjb21taXRzLCB3aGVuIHdvdWxkIHdlIGJlCj4gYWJsZSB0byBsb29wIHRocm91Z2gg dGhlIHNjb3JlcyB0byBvbmx5IGFjdHVhbGx5IGVuYWJsZSBGQkMgb24gdGhlIGJlc3QKPiBzY29y ZT/CoAo+IAo+IEZvciBleGFtcGxlLCBpZiB3ZSBkbyB0d28gcGFyYWxsZWwgYXRvbWljX2NoZWNr KClzIGFuZCBlbmQgd2l0aAo+IHBsYW5lX2Ffc2NvcmU9MSBhbmQgcGxhbmVfYl9zY29yZT0yLCB0 aGVuIGxhdGVyIHdlIGRvIEEncyBjb21taXQoKSBhbmQKPiBjYWxsIGludGVsX2ZiY19lbmFibGUo KSBmb3IgaXQsIGhvdyBkbyB3ZSBjb25jbHVkZSB0aGF0IHdlIHNob3VsZG4ndAo+IGVuYWJsZSBG QkMgZm9yIHBsYW5lIEE/IFdlJ3JlIG5vdCBldmVuIHN1cmUgaWYgcGxhbmUgQiBpcyBnb2luZyB0 bwo+IGFjdHVhbGx5IGNvbW1pdCB0aGUgcGxhbmUgc3RhdGUgaXQgY2FsY3VsYXRlZCAobWF5YmUg aXQgd2FzCj4gY2hlY2tfb25seSkuCj4gCj4gQW5kIHRoZW4sIGlmIHdlIGRlY2lkZSB0byBvbmx5 IGNvbXB1dGUgZXZlcnl0aGluZyBkdXJpbmcgY29tbWl0KCkKPiBpbnN0ZWFkIG9mIGNoZWNrKCks IHdlJ2xsIGp1c3QgYWxzbyBlbmQgdXAgZW5hYmxpbmcgRkJDIGZvciBwbGFuZSBBCj4gc2luY2Ug QSdzIGNvbW1pdCgpIHdpbGwgcnVuIGZpcnN0IGFuZCB3ZSdsbCBoYXZlIG5vIGlkZWEgdGhhdCBC J3MKPiBjb21taXQgaXMgaW5jb21pbmcuCj4gCj4gVGhlIG9ubHkgb3B0aW9uIHdvdWxkIGJlIHRv IGRpc2FibGUgRkJDIGZvciBwbGFuZSBBIGFuZCBlbmFibGUgZm9yCj4gcGxhbmUgQiBkdXJpbmcg QidzIGNvbW1pdC4gQnV0IEknbSBub3QgbG9va2luZyBmb3J3YXJkIHRvIGltcGxlbWVudAo+IHRo aXMgcmlnaHQgbm93LgoKQWxsIHRoZSBlbmFibGUvZGlzYWJsZSBzaG91bGQgYmUgdG90YWxseSBh c3luYyBhbmQgc28geW91IHNob3VsZCBiZQphYmxlIHRvIGtpY2sgdGhlbSBvZmYgZnJvbSBhbnl3 aGVyZS4gQWxsIHRoZSBzdGF0ZSwgaW5jbHVkaW5nIHRoZSBzY29yZXMsCndvdWxkIGJlIHByb3Rl Y3RlZCBieSB0aGUgZmJjIG11dGV4LiBJIGhhZCBhIHZibGFuayB3b3JrZXIgdHlwZSBvZgp0aGlu ZyBmb3IgdGhpcyBwdXJwb3NlIGluIG15IHBhdGNoZXMuCgotLSAKVmlsbGUgU3lyasOkbMOkCklu dGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK