From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 04/19] drm/i915: Allocate a crtc_state also when the crtc is being disabled Date: Fri, 20 Mar 2015 10:40:37 +0200 Message-ID: <1426840837.2316.42.camel@gmail.com> References: <1426240142-24538-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1426240142-24538-5-git-send-email-ander.conselvan.de.oliveira@intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36F7B41B@fmsmsx101.amr.corp.intel.com> <1426751521.2824.42.camel@gmail.com> <76A9B330A4D78C4D99CB292C4CC06C0E36F7DBB0@fmsmsx101.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f49.google.com (mail-pa0-f49.google.com [209.85.220.49]) by gabe.freedesktop.org (Postfix) with ESMTP id B813C6EBA8 for ; Fri, 20 Mar 2015 01:40:42 -0700 (PDT) Received: by pacwe9 with SMTP id we9so102570859pac.1 for ; Fri, 20 Mar 2015 01:40:42 -0700 (PDT) In-Reply-To: <76A9B330A4D78C4D99CB292C4CC06C0E36F7DBB0@fmsmsx101.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Konduru, Chandra" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE1LTAzLTE5IGF0IDIzOjIzICswMDAwLCBLb25kdXJ1LCBDaGFuZHJhIHdyb3Rl Ogo+IAo+IAo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZyb206IEFuZGVyIENv bnNlbHZhbiBEZSBPbGl2ZWlyYSBbbWFpbHRvOmNvbnNlbHZhbjJAZ21haWwuY29tXQo+ID4gU2Vu dDogVGh1cnNkYXksIE1hcmNoIDE5LCAyMDE1IDEyOjUyIEFNCj4gPiBUbzogS29uZHVydSwgQ2hh bmRyYQo+ID4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IFN1YmplY3Q6 IFJlOiBbUEFUQ0ggMDQvMTldIGRybS9pOTE1OiBBbGxvY2F0ZSBhIGNydGNfc3RhdGUgYWxzbyB3 aGVuIHRoZSBjcnRjIGlzCj4gPiBiZWluZyBkaXNhYmxlZAo+ID4gCj4gPiBPbiBUaHUsIDIwMTUt MDMtMTkgYXQgMDA6MTIgKzAwMDAsIEtvbmR1cnUsIENoYW5kcmEgd3JvdGU6Cj4gPiA+Cj4gPiA+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ID4gPiBGcm9tOiBDb25zZWx2YW4gRGUg T2xpdmVpcmEsIEFuZGVyCj4gPiA+ID4gU2VudDogRnJpZGF5LCBNYXJjaCAxMywgMjAxNSAyOjQ5 IEFNCj4gPiA+ID4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiBD YzogS29uZHVydSwgQ2hhbmRyYTsgQ29uc2VsdmFuIERlIE9saXZlaXJhLCBBbmRlcgo+ID4gPiA+ IFN1YmplY3Q6IFtQQVRDSCAwNC8xOV0gZHJtL2k5MTU6IEFsbG9jYXRlIGEgY3J0Y19zdGF0ZSBh bHNvIHdoZW4gdGhlCj4gPiA+ID4gY3J0YyBpcyBiZWluZyBkaXNhYmxlZAo+ID4gPiA+Cj4gPiA+ ID4gRm9yIGNvbnNpc3RlbmN5LCBhbGxvY2F0ZSBhIG5ldyBjcnRjX3N0YXRlIGZvciBhIGNydGMg dGhhdCBpcyBiZWluZyBkaXNhYmxlZC4KPiA+ID4gPiBQcmV2aW91c2x5IG9ubHkgdGhlIGVuYWJs ZWQgdmFsdWUgb2YgdGhlIGN1cnJlbnQgc3RhdGUgd291bGQgY2hhbmdlLgo+ID4gPiA+Cj4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhCj4gPiA+ID4gPGFu ZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDM2Cj4gPiA+ID4gKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiA+ID4gLS0tCj4gPiA+ID4gIDEgZmlsZSBj aGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPiA+ID4gPgo+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4g PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+IGluZGV4IGI2 MWUzZjYuLjYyYjkwMjEgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gPiA+ID4gQEAgLTExMTg4LDE0ICsxMTE4OCwyMSBAQCBpbnRlbF9tb2Rlc2V0 X2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+ID4gPiA+IGRybV9jcnRjICpjcnRjLAo+ID4gPiA+ICAJ CQkgICAgIHVuc2lnbmVkICpwcmVwYXJlX3BpcGVzLAo+ID4gPiA+ICAJCQkgICAgIHVuc2lnbmVk ICpkaXNhYmxlX3BpcGVzKQo+ID4gPiA+ICB7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gPiA+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnID0gTlVMTDsKPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ ID4gPiA+ICAJaW50IHJldCA9IDA7Cj4gPiA+ID4KPiA+ID4gPiAgCWludGVsX21vZGVzZXRfYWZm ZWN0ZWRfcGlwZXMoY3J0YywgbW9kZXNldF9waXBlcywKPiA+ID4gPiAgCQkJCSAgICAgcHJlcGFy ZV9waXBlcywgZGlzYWJsZV9waXBlcyk7Cj4gPiA+ID4KPiA+ID4gPiAtCWlmICgoKm1vZGVzZXRf cGlwZXMpID09IDApCj4gPiA+ID4gLQkJcmV0dXJuIE5VTEw7Cj4gPiA+ID4gKwlmb3JfZWFjaF9p bnRlbF9jcnRjX21hc2tlZChkZXYsICpkaXNhYmxlX3BpcGVzLCBpbnRlbF9jcnRjKSB7Cj4gPiA+ ID4gKwkJcGlwZV9jb25maWcgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGlu dGVsX2NydGMpOwo+ID4gPiA+ICsJCWlmIChJU19FUlIocGlwZV9jb25maWcpKQo+ID4gPiA+ICsJ CQlyZXR1cm4gcGlwZV9jb25maWc7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJCXBpcGVfY29uZmlnLT5i YXNlLmVuYWJsZSA9IGZhbHNlOwo+ID4gPiA+ICsJfQo+ID4gPiA+Cj4gPiA+ID4gIAkvKgo+ID4g PiA+ICAJICogTm90ZSB0aGlzIG5lZWRzIGNoYW5nZXMgd2hlbiB3ZSBzdGFydCB0cmFja2luZyBt dWx0aXBsZSBtb2Rlcwo+ID4gPiA+IEBAIC0KPiA+ID4gPiAxMTIwMywxOCArMTEyMTAsMjUgQEAg aW50ZWxfbW9kZXNldF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMKPiA+ICpjcnRjLAo+ ID4gPiA+ICAJICogKGkuZS4gb25lIHBpcGVfY29uZmlnIGZvciBlYWNoIGNydGMpIHJhdGhlciB0 aGFuIGp1c3QgdGhlIG9uZQo+ID4gPiA+ICAJICogZm9yIHRoaXMgY3J0Yy4KPiA+ID4gPiAgCSAq Lwo+ID4gPiA+IC0JcmV0ID0gaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhjcnRjLCBmYiwgbW9k ZSwgc3RhdGUpOwo+ID4gPiA+IC0JaWYgKHJldCkKPiA+ID4gPiAtCQlyZXR1cm4gRVJSX1BUUihy ZXQpOwo+ID4gPiA+ICsJZm9yX2VhY2hfaW50ZWxfY3J0Y19tYXNrZWQoZGV2LCAqbW9kZXNldF9w aXBlcywgaW50ZWxfY3J0Yykgewo+ID4gPiA+ICsJCS8qIEZJWE1FOiBGb3Igbm93IHdlIHN0aWxs IGV4cGVjdCBtb2Rlc2V0X3BpcGVzIGhhcyBhdCBtb3N0Cj4gPiA+ID4gKwkJICogb25lIGJpdCBz ZXQuICovCj4gPiA+ID4gKwkJaWYgKFdBUk5fT04oJmludGVsX2NydGMtPmJhc2UgIT0gY3J0Yykp Cj4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiA+Cj4gPiA+ID4gLQlwaXBlX2NvbmZpZyA9IGlu dGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgdG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4g PiA+ID4gLQlpZiAoSVNfRVJSKHBpcGVfY29uZmlnKSkKPiA+ID4gPiAtCQlyZXR1cm4gcGlwZV9j b25maWc7Cj4gPiA+ID4gKwkJcmV0ID0gaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhjcnRjLCBm YiwgbW9kZSwgc3RhdGUpOwo+ID4gPiA+ICsJCWlmIChyZXQpCj4gPiA+ID4gKwkJCXJldHVybiBF UlJfUFRSKHJldCk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJCXBpcGVfY29uZmlnID0gaW50ZWxfYXRv bWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKPiA+ID4gPiArCQlpZiAoSVNf RVJSKHBpcGVfY29uZmlnKSkKPiA+ID4gPiArCQkJcmV0dXJuIHBpcGVfY29uZmlnOwo+ID4gPiA+ Cj4gPiA+ID4gLQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHRvX2ludGVsX2NydGMoY3J0YyksIHBp cGVfY29uZmlnLAo+ID4gPiA+IC0JCQkgICAgICAgIlttb2Rlc2V0XSIpOwo+ID4gPiA+ICsJCWlu dGVsX2R1bXBfcGlwZV9jb25maWcodG9faW50ZWxfY3J0YyhjcnRjKSwgcGlwZV9jb25maWcsCj4g PiA+ID4gKwkJCQkgICAgICAgIlttb2Rlc2V0XSIpOwo+ID4gPiA+ICsJfQo+ID4gPiA+Cj4gPiA+ ID4gLQlyZXR1cm4gcGlwZV9jb25maWc7Cj4gPiA+ID4gKwlyZXR1cm4gaW50ZWxfYXRvbWljX2dl dF9jcnRjX3N0YXRlKHN0YXRlLCB0b19pbnRlbF9jcnRjKGNydGMpKTsKPiA+ID4gPiAgfQo+ID4g Pgo+ID4gPiBJbnN0ZWFkIG9mIGNhbGxpbmcgMyBzZXBhcmF0ZSBpbnRlbF9hdG9taWNfZ2V0X2Ny dGNfc3RhdGUoKSBDYW4geW91Cj4gPiA+IGhhdmUgc29tZXRoaW5nIGxpa2U6Cj4gPiA+IGludGVs X21vZGVzZXRfY29tcHV0ZV9jb25maWcoKQo+ID4gPiB7Cj4gPiA+IAlwaXBlX2NvbmZpZyA9IGlu dGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gPiA+Cj4gPiA+IAlmb3Ig ZWFjaCBkaXNhYmxlZCBwaXBlIHsKPiA+ID4gCQl1c2UgcGlwZV9jb25maWc7Cj4gPiA+IAl9Cj4g PiA+Cj4gPiA+IAlmb3IgZWFjaCBtb2RlX3NldCBwaXBlIHsKPiA+ID4gCQl1c2UgcGlwZV9jb25m aWc7Cj4gPiA+IAl9Cj4gPiA+Cj4gPiA+IAlyZXR1cm4gcGlwZV9jb25maWc7Cj4gPiA+IH0KPiA+ ID4KPiA+ID4KPiA+ID4gT3IgdGhlIHdheSBjdXJyZW50bHkgZG9uZSBpcyB0byBjb3ZlciB3aGVy ZSBkaXNhYmxlX3BpcGVzICE9IG1vZGVzZXRfcGlwZXM/Cj4gPiA+IEJ5IHRoZSB3YXksIHdoZW4g Y2FuIGl0IGhhcHBlbj8KPiA+IAo+ID4gWWVwLCBkaXNhYmxlX3BpcGVzIGNhbiBiZSBkaWZmZXJl bnQgdGhhbiBtb2Rlc2V0X3BpcGVzIGlmIHdlIHRoZSBtb2RlIHNldAo+ID4gInN0ZWFscyIgYSBj b25uZWN0b3IuIEZvciBpbnN0YW5jZSwgd2UgY291bGQgaGF2ZSBwaXBlIEEgZHJpdmluZwo+ID4g SERNSS0xIGFuZCB0aGVuIG1vZGUgc2V0IHRvIHBpcGUgQiB0byBkcml2ZSBIRE1JLTEuIFBpcGUg QiB3aWxsIHN0ZWFsIHRoZQo+ID4gZW5jb2RlciBmcm9tIHBpcGUgQSwgYW5kIGNhdXNlIGl0IHRv IGJlIGRpc2FibGUuIEluIHRoYXQgY2FzZSBkaXNhYmxlX3BpcGVzIHdpbGwKPiA+IGhhdmUgdGhl IGJpdCBmb3IgcGlwZSBBIHNldCwgd2hpbGUgbW9kZXNldF9waXBlcyB3aWxsIGhhdmUgdGhlIGJp dCBmb3IgcGlwZSBCIHNldC4KPiAKPiAxKSAKPiBDb25zaWRlciB0d28gc2ltcGxlIHNjZW5hcmlv czogIAo+IENhc2UxOiBVc2VyIGNvZGUgbW92aW5nIEhETUkgZnJvbSBBIHRvIEI6Cj4gZHJtTW9k ZVNldENydGMoY3J0Y0EsIEhETUkpOwo+IGRybU1vZGVTZXRDcnRjKGNydGNCLCBIRE1JKTsgLyog bW92aW5nIEhETUkgdG8gcGlwZSBCICovCj4gCj4gQ2FzZTI6IFVzZXIgY29kZSB0dXJuaW5nIG9m ZiBIRE1JOgo+IGRybU1vZGVTZXRDcnRjKGNydGNBLCBIRE1JKTsKPiBkcm1Nb2RlU2V0Q3J0Yyhj cnRjQSwgZGlzYWJsZSk7Cj4gCj4gSW4gYm90aCBjYXNlcywgZHJpdmVyIHdpbGwgYmUgZGlzYWJs aW5nIGNydGMgZm9yIHBpcGUgQS4gCj4gSW4gY2FzZSAxLCB0aGVyZSBpcyBubyBhc3NvY2lhdGVk IGNydGNfc3RhdGUgb3IgY29tcHV0ZSAmIGNvbW1pdCBidXQgCj4gZGlyZWN0bHkgdHJpZ2dlcmlu ZyBjcnRjX2Rpc2FibGUoY3J0Y0EpLgo+IEluIGNhc2UgMiwgdGhlcmUgaXMgYXNzb2NpYXRlZCBj cnRjX3N0YXRlIGFuZCBhc3NvY2lhdGVkIGNvbXB1dGUgYW5kIHNldG1vZGUKPiBjYWxscyBjcnRj X2Rpc2FibGUoY3J0Y0EpOwo+IAo+IFdvbid0IHRoaXMgY2F1c2UgdHJvdWJsZSBmb3IgbG93IGxl dmVsIGZ1bmN0aW9ucyAoZGlzYWJsZSBjbG9ja3MsIGNvbm5lY3RvcnMsIAo+IGVuY29kZXJzLCBw bGFuZXMgZXRjLiBldGMuLi4pIGFjdGluZyBvbiB2YXJpYWJsZXMgYmVpbmcgY29tcHV0ZWQgYW5k IHN0YWdlZCAKPiBpbiB0aGVpciByZXNwZWN0aXZlIHN0YXRlcz8KPiAgICAgd2hlcmUgY2FzZSAx IGNhbGxzIHdpdGggY3VycmVudCBjcnRjLT5jb25maWcsIAo+ICAgICBhbmQgY2FzZSAyIGNhbGxz IGNydC0+Y29uZmlnIHdoaWNoIGlzIGNvbXB1dGVkIGNydGNfc3RhdGUKCkl0IGlzIGluY29uc2lz dGVudCwgeWVzLiBCdXQgYXQgdGhlIG1vbWVudCwgZm9yIHRoZSBkaXNhYmxlIGNhc2UsIHdlCmp1 c3QgZHVwbGljYXRlIHRoZSBjcnRjX3N0YXRlIGFuZCBzZXQgY3J0Y19zdGF0ZS0+YmFzZS5lbmFi bGUgPSBmYWxzZS4KQXMgdGhpbmdzIHN0YW5kIGF0IHRoZSBtb21lbnQsIHRoZSBuZXQgZWZmZWN0 IHNob3VsZCBiZSB0aGUgc2FtZTogd2UKY2FsbCB0aGUgZGlzYWJsZSBob29rIGJlZm9yZSBjaGFu Z2luZyB0aGUgY3VycmVudCBzdGF0ZSwgYW5kIGFmdGVyIHdlCmNoYW5nZSB0aGUgc3RhdGVzLCB0 aGUgb25seSBmaWVsZCB0aGF0IGNoYW5nZWQgd2FzCmNydGNfc3RhdGUtPmJhc2UuZW5hYmxlLiBU aGUgb25seSBkaWZmZXJlbmNlIGlzIHdoYXQgZG9lcwppbnRlbF9jcnRjLT5jb25maWcgcG9pbnRz IHRvLgoKPiAyKQo+IEZvciBleGFtcGxlLCB0byBkaXNhYmxlIGEgcGxhbmUgZGlmZmVyZW50aWF0 ZSBiZXR3ZWVuIGJlbG93IHR3bzoKPiBwbGFuZSBiZWluZyBjYWxsZWQgdG8gZGlzYWJsZSB3aXRo IGZiIGlzIHZhbGlkCj4gCXZzLgo+IHBsYW5lIGJlaW5nIGNhbGxlZCB0byBkaXNhYmxlIHdpdGgg ZmIgaXMgbnVsbC4KPiAKPiBUaGVyZSBpcyBjcnRjLT5hY3RpdmUgc29tZWhvdyB0byB0YWtlIGNh cmUgdGhpcywgYnV0IEkgdGhpbmsgdGhpcyBzaG91bGQgCj4gbW92ZSB0byBjcnRjX3N0YXRlLiBT YW1lIGFwcGxpZXMgZm9yIGFueSBzdWNoIG90aGVyIHZhcmlhYmxlcyBpbiBjcnRjLiAKPiBBbmQg cmVzcGVjdGl2ZSByZXNvdXJjZSdzIGZ1bmN0aW9ucyBzaG91bGQgY2hlY2sgaXRzIGhvc3Rpbmcg Y3J0Y19zdGF0ZSAKPiBhbG9uZyB3aXRoIGl0cyBvd24gY29uZGl0aW9ucyB0byBhY3Qgb24gaXRz IHJlc291cmNlLgo+IAo+IElmIG5vdCBnZXR0aW5nIGludG8gdGhpcyBwYXRjaCBzZXJpZXMsIHRo ZXNlIGNoYW5nZXMgc2hvdWxkIGdvIGludG8gbmV4dCAKPiBzZXJpZXMgZm9yIGFjaGlldmluZyBj cnRjIGF0b21pY2l0eS4KClRoZXJlJ3MgYmVlbiBkaXNjdXNzaW9uIGFib3V0IGNydGMtPmFjdGl2 ZSB2cy4gY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUKYWxyZWFkeS4gT25lIHByb2JsZW0gaXMgdGhh dCB0aGUgYXRvbWljIHNlbWFudGljcyBpcyBkaWZmZXJlbnQgdGhhbiB0aGUKaTkxNSBvbmUuIFdl IHVzZSBjcnRjLT5hY3RpdmUgaW50ZXJuYWxseSB0byBtZWFuIHRoZSBwaXBlIGlzIHJlYWxseQph Y3RpdmUsIHNvIHdlIG9ubHkgdHVybiB0aGF0IG9uIGluIHRoZSBlbmFibGUgY3J0YyBob29rIGFu ZCBpbW1lZGlhdGVseQpkaXNhYmxlIGl0IGluIHRoZSBkaXNhYmxlIGhvb2suIFdlIHRoZW4gdXNl IHRoYXQgdmFsdWUgZm9yIHNhbml0eQpjaGVja2luZy4KClRoZSBhdG9taWMgYWN0aXZlIGZpZWxk IG1heSBhY3R1YWxseSBiZSB0cnVlIGJlZm9yZSB3ZSBhcmUgZmluaXNoZWQKY29tbWl0dGluZywg c28gaXQgbWF5IGJlIHRydWUgd2hpbGUgdGhlIGNydGMgaXMgc3RpbGwgb2ZmLgoKSSB0aGluayBN YXR0IGhhZCBwYXRjaGVzIGZvciB0aGlzLCBidXQgdGhleSB3ZXJlIGRlZmVycmVkIHVudGlsIG15 IHBhdGNoCnNlcmllcyBnb2VzIGluLgoKPiAzKQo+IEFsc28gbG93IGxldmVsIGVuYWJsZS9kaXNh YmxlIGZ1bmN0aW9ucyBjYW4gc3RhcnQgY2F1c2luZyBjb25mdXNpb24gCj4gaWYgdGhleSBhcmVu J3QgcmVhZC9pbnRlcnByZXRlZCBjb3JyZWN0bHkuIEVpdGhlciB3ZSBzaG91bGQgaGF2ZSByZXNv dXJjZV9jb21taXQgCj4gd2hpY2ggZnVydGhlciBjYWxscyByZXNvdXJjZS0+ZW5hYmxlKCkgb3Ig cmVzb3VyY2UtPmRpc2FibGUoKSBkZXBlbmRpbmcgCj4gb24gaXRzIG93biBzdGF0ZSBhbmQgaXRz IGhvc3RpbmcgcmVzb3VyY2Ugc3RhdGU7IG9yIGhhdmUgcmVzb3VyY2VfY29tbWl0IAo+IGNhbGxp bmcgcmVzb3VyY2UtPnVwZGF0ZSgpIHdoZXJlIGl0IGRvZXMgZWl0aGVyIGVuYWJsZSBvciBkaXNh YmxlIGJhc2VkIAo+IG9uIHN0YXRlLgo+IAo+IFdlIGRvbid0IGhhdmUgYWJvdmUgZm9yIGNydGMg YnV0IHNob3VsZCBiZSBkb25lIHNvbWV0aGluZyBsaWtlIHRoaXMgCj4gaWYgbm90IGluIHRoaXMg cGF0Y2ggYnV0IHNvbWV0aW1lIGFmdGVyIGluIG9yZGVyIHRvIGFjaGlldmUgY3J0YyBhdG9taWNp dHkuCgpXZSB3aWxsIG5lZWQgc29tZXRoaW5nIGxpa2UgdGhhdCBmb3IgdGhlIGltcGxlbWVudGF0 aW9uIG9mIHRoZSBhdG9taWMKbW9kZSBzZXQsIGJ1dCBJIHRoaW5rIHdlIGNhbiB0cmVhdCB0aGF0 IGFzIGFuIGluZGVwZW5kZW50IGlzc3VlIGZyb20KdGhpcyBwYXRjaCBzZXJpZXMuCgoKQW5kZXIK Cj4gCj4gCj4gPiAKPiA+IAo+ID4gQW5kZXIKPiA+IAo+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gIHN0 YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9zZXR1cF9wbGxzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gPiA+ID4gLS0KPiA+ID4gPiAyLjEuMAo+ID4gPgo+ID4gCj4gCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK