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: Fri, 11 Nov 2016 22:24:53 +0200 Message-ID: <20161111202453.GU31595@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 962B26E01B for ; Fri, 11 Nov 2016 20:24:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1478894248.19391.43.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 T24gRnJpLCBOb3YgMTEsIDIwMTYgYXQgMDU6NTc6MjhQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEVtIFNleCwgMjAxNi0xMS0xMSDDoHMgMjE6MTMgKzAyMDAsIFZpbGxlIFN5cmrDpGzD pCBlc2NyZXZldToKPiA+IE9uIEZyaSwgTm92IDExLCAyMDE2IGF0IDA1OjAxOjU0UE0gLTAyMDAs IFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gCj4gPiA+IEVtIFNleCwgMjAxNi0xMS0xMSDDoHMg MjA6NTEgKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCBlc2NyZXZldToKPiA+ID4gPiAKPiA+ID4gPiBP biBGcmksIE5vdiAxMSwgMjAxNiBhdCAwMjo1Nzo0MFBNIC0wMjAwLCBQYXVsbyBaYW5vbmkgd3Jv dGU6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gVmlsbGUgcG9pbnRlZCBvdXQgdGhh dCBpbnRlbF9mYmNfY2hvb3NlX2NydGMoKSBpcyBpdGVyYXRpbmcKPiA+ID4gPiA+IG92ZXIKPiA+ ID4gPiA+IGFsbAo+ID4gPiA+ID4gcGxhbmVzIGluc3RlYWQgb2YganVzdCB0aGUgcHJpbWFyeSBw bGFuZXMuIFRoZXJlIGFyZSBubyByZWFsCj4gPiA+ID4gPiBjb25zZXF1ZW5jZXMgb2YgdGhpcyBw cm9ibGVtIGZvciBIU1crLCBhbmQgZm9yIHRoZSBvdGhlcgo+ID4gPiA+ID4gcGxhdGZvcm1zCj4g PiA+ID4gPiBpdAo+ID4gPiA+ID4ganVzdCBtZWFucyB0aGF0IGluIHNvbWUgb2JzY3VyZSBtdWx0 aS1zY3JlZW4gY2FzZXMgd2UnbGwga2VlcAo+ID4gPiA+ID4gRkJDCj4gPiA+ID4gPiBkaXNhYmxl ZCB3aGVuIHdlIGNvdWxkIGhhdmUgZW5hYmxlZCBpdC4gU3RpbGwsIGl0ZXJhdGluZyBvdmVyCj4g PiA+ID4gPiBhbGwKPiA+ID4gPiA+IHBsYW5lcyBkb2Vzbid0IHNlZW0gdG8gYmUgdGhlIGJlc3Qg dGhpbmcgdG8gZG8uCj4gPiA+ID4gPiAKPiA+ID4gPiA+IE15IGluaXRpYWwgaWRlYSB3YXMgdG8g anVzdCBhZGQgYSBjaGVjayBmb3IgcGxhbmUtPnR5cGUgYW5kIGJlCj4gPiA+ID4gPiBkb25lLAo+ ID4gPiA+ID4gYnV0IHRoZW4gSSByZWFsaXplZCB0aGF0IGluIGNvbW1pdHMgbm90IGludm9sdmlu ZyB0aGUgcHJpbWFyeQo+ID4gPiA+ID4gcGxhbmUKPiA+ID4gPiA+IHdlCj4gPiA+ID4gPiB3b3Vs ZCByZXNldCBjcnRjX3N0YXRlLT5lbmFibGVfZmJjIGJhY2sgdG8gZmFsc2UgZXZlbiB3aGVuIEZC Qwo+ID4gPiA+ID4gaXMKPiA+ID4gPiA+IGVuYWJsZWQuIFRoYXQgYWxzbyB3b3VsZG4ndCByZXN1 bHQgaW4gYSBidWcgZHVlIHRvIHRoZSB3YXkgdGhlCj4gPiA+ID4gPiBlbmFibGVfZmJjIHZhcmlh YmxlIGlzIGNoZWNrZWQsIGJ1dCwgc3RpbGwsIG91ciBjb2RlIGNhbiBiZQo+ID4gPiA+ID4gYmV0 dGVyCj4gPiA+ID4gPiB0aGFuIHRoaXMuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFNvIEkgd2VudCBm b3IgdGhlIHNvbHV0aW9uIHRoYXQgaW52b2x2ZXMgdHJhY2tpbmcgZW5hYmxlX2ZiYyBpbgo+ID4g PiA+ID4gdGhlCj4gPiA+ID4gPiBwcmltYXJ5IHBsYW5lIHN0YXRlIGluc3RlYWQgb2YgdGhlIENS VEMgc3RhdGUuIFRoaXMgd2F5LCBpZiBhCj4gPiA+ID4gPiBjb21taXQKPiA+ID4gPiA+IGRvZXNu J3QgaW52b2x2ZSB0aGUgcHJpbWFyeSBwbGFuZSBmb3IgdGhlIENSVEMgd2Ugd29uJ3QgYmUKPiA+ ID4gPiA+IHJlc2V0dGluZwo+ID4gPiA+ID4gZW5hYmxlX2ZiYyBiYWNrIHRvIGZhbHNlLCBzbyB0 aGUgdmFyaWFibGUgd2lsbCBhbHdheXMgcmVmbGVjdAo+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiBy ZWFsaXR5LiBBbmQgdGhpcyBjaGFuZ2UgYWxzbyBtYWtlcyBtb3JlIHNlbnNlIHNpbmNlIEZCQyBp cwo+ID4gPiA+ID4gYWN0dWFsbHkKPiA+ID4gPiA+IHRpZWQgdG8gdGhlIHNpbmdsZSBwbGFuZSBh bmQgbm90IHRoZSBmdWxsIHBpcGUuIEFzIGEgYm9udXMsIHdlCj4gPiA+ID4gPiBvbmx5Cj4gPiA+ ID4gPiBpdGVyYXRlIG92ZXIgdGhlIENSVENzIGluc3RlYWQgb2YgaXRlcmF0aW5nIG92ZXIgYWxs IHBsYW5lcy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiBSZXBvcnRlZC1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPiA+ID4g LS0tCj4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHzCoMKgNCAr Ky0tCj4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIHwgMzYgKysr KysrKysrKysrKysrKysrKy0tLS0tCj4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiAtLS0tLS0tLQo+ ID4gPiA+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9u cygtKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKPiA+ID4gPiA+IGluZGV4IDAwM2FmYjguLjAyNWNiNzQgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiA+IEBAIC00MDMsNiArNDAzLDggQEAg c3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHsKPiA+ID4gPiA+IMKgCWludCBzY2FsZXJfaWQ7Cj4g PiA+ID4gPiDCoAo+ID4gPiA+ID4gwqAJc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkg Y2tleTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJYm9vbCBlbmFibGVfZmJjOwo+ID4gPiA+ID4g wqB9Owo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IMKgc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVf Y29uZmlnIHsKPiA+ID4gPiA+IEBAIC02NDgsOCArNjUwLDYgQEAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgewo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IMKgCWJvb2wgaXBzX2VuYWJsZWQ7Cj4gPiA+ ID4gPiDCoAo+ID4gPiA+ID4gLQlib29sIGVuYWJsZV9mYmM7Cj4gPiA+ID4gPiAtCj4gPiA+ID4g PiDCoAlib29sIGRvdWJsZV93aWRlOwo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IMKgCWJvb2wgZHBf ZW5jb2Rlcl9pc19tc3Q7Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJjLmMKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJj LmMKPiA+ID4gPiA+IGluZGV4IGIwOTUxNzUuLmZjNGFjNTcgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gPiA+IEBAIC0xMDU1LDE2ICsxMDU1LDE3 IEBAIHZvaWQgaW50ZWxfZmJjX2Nob29zZV9jcnRjKHN0cnVjdAo+ID4gPiA+ID4gZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiDCoAkJCcKgwqDCoHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiA+ID4gPiA+IMKgewo+ID4gPiA+ID4gwqAJc3RydWN0IGludGVsX2Zi YyAqZmJjID0gJmRldl9wcml2LT5mYmM7Cj4gPiA+ID4gPiAtCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lOwo+ID4gPiA+ID4gLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiA+ ID4gPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+ID4gPiDCoAlib29sIGNydGNfY2hvc2VuID0gZmFs c2U7Cj4gPiA+ID4gPiDCoAlpbnQgaTsKPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiDCoAltdXRleF9s b2NrKCZmYmMtPmxvY2spOwo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IC0JLyogRG9lcyB0aGlzIGF0 b21pYyBjb21taXQgaW52b2x2ZSB0aGUgQ1JUQyBjdXJyZW50bHkKPiA+ID4gPiA+IHRpZWQKPiA+ ID4gPiA+IHRvIEZCQz8gKi8KPiA+ID4gPiA+ICsJLyogRG9lcyB0aGlzIGF0b21pYyBjb21taXQg aW52b2x2ZSB0aGUgcGxhbmUgY3VycmVudGx5Cj4gPiA+ID4gPiB0aWVkIHRvIEZCQz8gKi8KPiA+ ID4gPiA+IMKgCWlmIChmYmMtPmNydGMgJiYKPiA+ID4gPiA+IC0JwqDCoMKgwqAhZHJtX2F0b21p Y19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZSwgJmZiYy0KPiA+ID4gPiA+ID5jcnRjLQo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gYmFzZSkpCj4gPiA+ID4gPiArCcKgwqDCoMKgIWRybV9h dG9taWNfZ2V0X2V4aXN0aW5nX3BsYW5lX3N0YXRlKHN0YXRlLAo+ID4gPiA+ID4gKwkJCQkJCcKg ZmJjLT5jcnRjLQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gYmFzZS5wcmltYXJ5KSkKPiA+ID4g PiA+IMKgCQlnb3RvIG91dDsKPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiDCoAlpZiAoIWludGVsX2Zi Y19jYW5fZW5hYmxlKGRldl9wcml2KSkKPiA+ID4gPiA+IEBAIC0xMDc0LDI1ICsxMDc1LDI2IEBA IHZvaWQgaW50ZWxfZmJjX2Nob29zZV9jcnRjKHN0cnVjdAo+ID4gPiA+ID4gZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiDCoAnCoCogcGxhbmUuIFdlIGNvdWxkIGdvIGZvciBm YW5jaWVyIHNjaGVtZXMgc3VjaCBhcwo+ID4gPiA+ID4gY2hlY2tpbmcKPiA+ID4gPiA+IHRoZSBw bGFuZQo+ID4gPiA+ID4gwqAJwqAqIHNpemUsIGJ1dCB0aGlzIHdvdWxkIGp1c3QgYWZmZWN0IHRo ZSBmZXcgcGxhdGZvcm1zCj4gPiA+ID4gPiB0aGF0Cj4gPiA+ID4gPiBkb24ndCB0aWUgRkJDCj4g PiA+ID4gPiDCoAnCoCogdG8gcGlwZSBvciBwbGFuZSBBLiAqLwo+ID4gPiA+ID4gLQlmb3JfZWFj aF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKQo+ID4gPiA+ID4g ewo+ID4gPiA+ID4gLQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9wbGFuZV9zdGF0 ZSA9Cj4gPiA+ID4gPiAtCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpOwo+ID4g PiA+ID4gLQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7Cj4gPiA+ ID4gPiAtCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9Cj4gPiA+ID4gPiB0b19pbnRlbF9jcnRj KHBsYW5lX3N0YXRlLT5jcnRjKTsKPiA+ID4gPiA+ICsJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ID4gPiA+ID4gKwkJc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9Cj4gPiA+ID4gPiB0b19pbnRlbF9wbGFuZV9zdGF0ZSgK PiA+ID4gPiA+ICsJCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShzdAo+ID4g PiA+ID4gYXRlLAo+ID4gPiA+ID4gKwkJCQkJCQnCoMKgwqDCoGNyCj4gPiA+ID4gPiB0Yy0KPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+IHByaW1hcnkpKTsKPiA+ID4gPiA+ICsJCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0KPiA+ID4gPiA+IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPiA+ ID4gPiDCoAo+ID4gPiA+ID4gLQkJaWYgKCFpbnRlbF9wbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxl KQo+ID4gPiA+ID4gKwkJaWYgKCFwbGFuZV9zdGF0ZSkKPiA+ID4gPiA+IMKgCQkJY29udGludWU7 Cj4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gLQkJaWYgKGZiY19vbl9waXBlX2Ffb25seShkZXZfcHJp dikgJiYgY3J0Yy0+cGlwZSAKPiA+ID4gPiA+ICE9Cj4gPiA+ID4gPiBQSVBFX0EpCj4gPiA+ID4g PiArCQlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUpCj4gPiA+ID4gPiDCoAkJCWNvbnRp bnVlOwo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IC0JCWlmIChmYmNfb25fcGxhbmVfYV9vbmx5KGRl dl9wcml2KSAmJiBjcnRjLQo+ID4gPiA+ID4gPnBsYW5lCj4gPiA+ID4gPiAhPSBQTEFORV9BKQo+ ID4gPiA+ID4gKwkJaWYgKGZiY19vbl9waXBlX2Ffb25seShkZXZfcHJpdikgJiYKPiA+ID4gPiA+ IGludGVsX2NydGMtCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBwaXBlICE9IFBJUEVfQSkKPiA+ ID4gPiA+IMKgCQkJY29udGludWU7Cj4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gLQkJaW50ZWxfY3J0 Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoCj4gPiA+ID4gPiAtCQkJZHJtX2F0b21pY19n ZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGEKPiA+ID4gPiA+IHRlLAo+ID4gPiA+ID4gJmNydGMt PmJhc2UpKTsKPiA+ID4gPiA+ICsJCWlmIChmYmNfb25fcGxhbmVfYV9vbmx5KGRldl9wcml2KSAm Jgo+ID4gPiA+ID4gKwkJwqDCoMKgwqBpbnRlbF9jcnRjLT5wbGFuZSAhPSBQTEFORV9BKQo+ID4g PiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IC0JCWludGVsX2NydGNf c3RhdGUtPmVuYWJsZV9mYmMgPSB0cnVlOwo+ID4gPiA+ID4gKwkJcGxhbmVfc3RhdGUtPmVuYWJs ZV9mYmMgPSB0cnVlOwo+ID4gPiA+IAo+ID4gPiA+IFNvIGxvb2tpbmcgYXQgdGhpcyB3aG9sZSB0 aGluZywgSSBjYW4ndCBzZWUgYW55dGhpbmcgdGhhdCB3b3VsZAo+ID4gPiA+IHByZXZlbnQKPiA+ ID4gPiBlbmFibGVfZmJjIGJlaW5nIHRydWUgZm9yIG11bHRpcGxlIHByaW1hcnkgcGxhbmVzIGF0 IHRoZSBzYW1lCj4gPiA+ID4gdGltZQo+ID4gPiA+IFdlbGwsIGFwYXJ0IGZyb20gdGhlIHdob2xl ICJ3ZSBlbmFibGUgaXQgb25seSBmb3IgcGxhdGZvcm1zIHRoYXQKPiA+ID4gPiBjYW4KPiA+ID4g PiBvbmx5IGRvCj4gPiA+ID4gcGlwZSBBIiB0aGluZy4KPiA+ID4gPiAKPiA+ID4gPiBTbyB3aGF0 IGhhcHBlbnMgaW4gdGhhdCBjYXNlPyBGQkMganVzdCBlbmRzIHVwIGdldHRpbmcgZW5hYmxpbmcK PiA+ID4gPiBvbgo+ID4gPiA+IG9uZSBvZiB0aGUgcGlwZXMgYmFzZWQgb24gdGhlIG9yZGVyIGlu dGVsX2ZiY19lbmFibGUoKSBnZXRzCj4gPiA+ID4gY2FsbGVkLAo+ID4gPiA+IG9yIHNvbWV0aGlu Zz8KPiA+ID4gCj4gPiA+IFRoZSBmaXJzdCBjaGVjayBvZiBpbnRlbF9mYmNfY2hvb3NlX2NydGMo KSBpcyBzdXBwb3NlZCB0byBwcmV2ZW50Cj4gPiA+IHRoaXMKPiA+ID4gY2FzZTogaWYgZmJjLT5j cnRjLT5wcmltYXJ5IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgY29tbWl0IHdlIGp1c3QKPiA+ID4g cmV0dXJuIHdpdGhvdXQgc2VsZWN0aW5nIGFueSBwbGFuZS4KPiA+IAo+ID4gVGhlIGZiYy0+Y3J0 YyB0aGluZyBvbmx5IHdvcmtzIGlmIGludGVsX2ZiY19lbmFibGUoKSB3YXMgYWxyZWFkeQo+ID4g Y2FsbGVkCj4gPiBmb3Igc29tZSBjcnRjLiBCdXQgd2hhdCBpdCBpdCB3YXNuJ3Q/Cj4gPiAKPiA+ ID4gCj4gPiA+IE90aGVyd2lzZSwgd2Ugb25seSBwaWNrIG9uZSBDUlRDCj4gPiA+IGR1ZSB0byB0 aGUgImJyZWFrOyIgc3RhdGVtZW50IGFmdGVyIHNldHRpbmcgcGxhbmVfc3RhdGUtPmVuYWJsZV9m YmMgCj4gPiA+IHRvCj4gPiA+IHRydWUuCj4gPiAKPiA+IE9ubHkgb25lIHBlciBhdG9taWMgb3Bl cmF0aW9uLiBCdXQgd2hhdCBpZiB0aGVyZSBhcmUgc2V2ZXJhbAo+ID4gaGFwcGVuaW5nCj4gPiBp biBwYXJhbGxlbCBvbiBkaWZmZXJlbnQgY3J0Y3M/Cj4gCj4gSSBzZWUgeW91ciBwb2ludCBub3cu IFllYWgsIHdlJ2xsIGVuZCB1cCB3aXRoCj4gcGxhbmVfc3RhdGUuZW5hYmxlX2ZiYz10cnVlIGZv ciB0d28gZGlmZmVyZW50IHBsYW5lcy4gTGF0ZXIsIHRoZSBmaXJzdAo+IG9uZSB0byBjYWxsIGlu dGVsX2ZiY19lbmFibGUoKSB3aWxsIHdpbiwgYW5kIHRoZSBvdGhlcnMgd2lsbCBiZQo+IGlnbm9y ZWQsIHNvIHdlJ2xsIGluZGVlZCBlbmQgdXAgd2l0aCBwbGFuZSBzdGF0ZXMgaGF2aW5nCj4gZW5h YmxlX2ZiYz10cnVlIGJ1dCBGQkMgbm90IGVuYWJsZWQgYnkgdGhlbS4gTm90IGEgcmVhbCBidWcs IEkgd291bGQKPiBzdGlsbCBsaWtlIHRvIGF2b2lkIHRoaXMgY29uZnVzaW9uLgo+IAo+IFRoZSBz aW1wbGVzdCBzb2x1dGlvbiBJIGNhbiB0aGluayB3b3VsZCBiZSB0byBqdXN0Cj4gcy9wbGFuZV9z dGF0ZS5lbmFibGVfZmJjL3BsYW5lX3N0YXRlLmNhbl9lbmFibGVfZmJjLyBhbmQganVzdCBsZXQg dGhlCj4gZmlyc3Qgb25lIHRvIGNhbGwgaW50ZWxfZmJjX2VuYWJsZSgpIHdpbi4uLiBBbmQgdGhl biwgaWYgd2UgZXZlciBkZWNpZGUKPiB0byBlbmFibGUgRkJDIG9uIHRoZSBvbGRlciBwbGF0Zm9y bXMsIHdlIGNhbiBjaG9vc2UgdG8gbWF5YmUgaW1wbGVtZW50Cj4gYSBiZXR0ZXIgbWV0aG9kCgpN YXliZSBzb21ldGhpbmcgbGlrZSAiZmJjX3Njb3JlIj8gOykKCj4gKGFuZCBmaXggYWxsIHRoZSBw b3NzaWJsZSBGQkMgcHJvYmxlbXMgZm9yIHRob3NlCj4gcGxhdGZvcm1zKS4KCkkgdGhpbmsgSSBm aXhlZCBhbGwgdGhlIHBsYXRmb3JtcyBzcGVjaWZpYyBpc3N1ZXMgYmFjayBpbiB0aGUgZGF5LiBB bGwKdGhlIGFjdHVhbCBwcm9ibGVtcyB3ZXJlIGluIHRoZSBjb21tb24gY29kZS4gQWx0aG91Z2gg SSBndWVzcyBzb21lIG9mCm15IHBhdGNoZXMgbWlnaHQgbm90IGhhdmUgbWFkZSBpdCBpbiwgb3Ig SSBqdXN0IG1pc3NlZCBzb21lIHRoaW5ncy4KCj4gSXMgdGhpcyBzb2x1dGlvbiB3b3J0aCBhIFIt QiBmcm9tIHlvdT8KPiAKPiBJZiB5b3UgaGF2ZSBhbnkgYmV0dGVyIGlkZWEgaGVyZSwgZmVlbCBm cmVlIHRvIHN1Z2dlc3QgaXQuIEknbSBub3Qgc3VyZQo+IGl0J3MgcG9zc2libGUgdG8gY29tZSB1 cCB3aXRoIHNvbWV0aGluZyBtdWNoIGJldHRlciBkdWUgdG8gYWxsIHRoZQo+IHBhcmFsbGVsaXNt IGludm9sdmVkLiBNYWtpbmcgb25lIENSVEMgInRha2Ugb3ZlciIgRkJDIGZyb20gdGhlIG90aGVy IGlzCj4gc29tZXRoaW5nIEknZCByZWFsbHkgbG92ZSB0byBhdm9pZC4KClllYWgsIGl0IGxvb2tl ZCBzYWZlIGVub3VnaCB0byBtZSB0byBoYXZlIHRoZSB0aGluZyBzZXQgdG8gdHJ1ZSBvbgptdWx0 aXBsZSBwbGFuZXMsIGFuZCBpZiB5b3UgY2FtZSB0byB0aGUgc2FtZSBjb25jbHVzaW9uIEkgdGhp bmsgd2UKc2hvdWxkIGJlIGdvb2QuCgpXaXRoIHRoZSByZW5hbWUgb2YgdGhlIGZsYWcgdG8gYXZv aWQgY29uZnVzaW9uOgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KCj4gCj4gVGhhbmtzLAo+IFBhdWxvCj4gCj4gPiAKPiA+ID4gCj4g PiA+IAo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiAKPiA+ID4gPiA+IMKg CQljcnRjX2Nob3NlbiA9IHRydWU7Cj4gPiA+ID4gPiDCoAkJYnJlYWs7Cj4gPiA+ID4gPiDCoAl9 Cj4gPiA+ID4gPiBAQCAtMTEzMCwxMyArMTEzMiwxMyBAQCB2b2lkIGludGVsX2ZiY19lbmFibGUo c3RydWN0IGludGVsX2NydGMKPiA+ID4gPiA+ICpjcnRjLAo+ID4gPiA+ID4gwqAJaWYgKGZiYy0+ ZW5hYmxlZCkgewo+ID4gPiA+ID4gwqAJCVdBUk5fT04oZmJjLT5jcnRjID09IE5VTEwpOwo+ID4g PiA+ID4gwqAJCWlmIChmYmMtPmNydGMgPT0gY3J0Yykgewo+ID4gPiA+ID4gLQkJCVdBUk5fT04o IWNydGNfc3RhdGUtPmVuYWJsZV9mYmMpOwo+ID4gPiA+ID4gKwkJCVdBUk5fT04oIXBsYW5lX3N0 YXRlLT5lbmFibGVfZmJjKTsKPiA+ID4gPiA+IMKgCQkJV0FSTl9PTihmYmMtPmFjdGl2ZSk7Cj4g PiA+ID4gPiDCoAkJfQo+ID4gPiA+ID4gwqAJCWdvdG8gb3V0Owo+ID4gPiA+ID4gwqAJfQo+ID4g PiA+ID4gwqAKPiA+ID4gPiA+IC0JaWYgKCFjcnRjX3N0YXRlLT5lbmFibGVfZmJjKQo+ID4gPiA+ ID4gKwlpZiAoIXBsYW5lX3N0YXRlLT5lbmFibGVfZmJjKQo+ID4gPiA+ID4gwqAJCWdvdG8gb3V0 Owo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IMKgCVdBUk5fT04oZmJjLT5hY3RpdmUpOwo+ID4gPiA+ ID4gLS3CoAo+ID4gPiA+ID4gMi43LjQKPiA+ID4gPiAKPiA+IAoKLS0gClZpbGxlIFN5cmrDpGzD pApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==