From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/6] drm/i915: Store aux power domain in intel_dp Date: Thu, 16 Feb 2017 14:28:52 +0200 Message-ID: <87y3x6mi9n.fsf@intel.com> References: <20170210132959.16594-1-ander.conselvan.de.oliveira@intel.com> <20170210132959.16594-2-ander.conselvan.de.oliveira@intel.com> <20170216090505.GA18432@ideak-desk.fi.intel.com> <1487247792.3185.15.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id B56156E2AD for ; Thu, 16 Feb 2017 12:28:54 +0000 (UTC) In-Reply-To: <1487247792.3185.15.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , imre.deak@intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxNiBGZWIgMjAxNywgQW5kZXIgQ29uc2VsdmFuIERlIE9saXZlaXJhIDxjb25zZWx2 YW4yQGdtYWlsLmNvbT4gd3JvdGU6Cj4gT24gVGh1LCAyMDE3LTAyLTE2IGF0IDExOjA1ICswMjAw LCBJbXJlIERlYWsgd3JvdGU6Cj4+IE9uIEZyaSwgRmViIDEwLCAyMDE3IGF0IDAzOjI5OjU0UE0g KzAyMDAsIEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2ZWlyYSB3cm90ZToKPj4gPiBUaGUgYXV4IHBv d2VyIGRvbWFpbiBvbmx5IG1ha2VzIHNlbnNlIGluIHRoZSBEUCBjb2RlLiBTdG9yaW5nIGl0IGlu Cj4+ID4gc3RydWN0IGludGVsX2RwIGF2b2lkcyBzb21lIGluZGlyZWN0aW9uLgo+PiA+IAo+PiA+ IHYyOiBSZWJhc2UKPj4gPiBTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVp cmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDUwIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAg ICB8IDYxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMyArLQo+PiA+ICAzIGZpbGVzIGNoYW5n ZWQsIDI0IGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQo+PiA+IAo+PiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gPiBpbmRleCBhYjc4ZGY5Li4xZTcwNzc2IDEwMDY0 NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiA+IEBAIC01NTg5LDI2 ICs1NTg5LDYgQEAgc3RhdGljIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG9ydF90 b19wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpCj4+ID4gIAl9Cj4+ID4gIH0KPj4gPiAgCj4+ ID4gLXN0YXRpYyBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvcnRfdG9fYXV4X3Bv d2VyX2RvbWFpbihlbnVtIHBvcnQgcG9ydCkKPj4gPiAtewo+PiA+IC0Jc3dpdGNoIChwb3J0KSB7 Cj4+ID4gLQljYXNlIFBPUlRfQToKPj4gPiAtCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwo+ PiA+IC0JY2FzZSBQT1JUX0I6Cj4+ID4gLQkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQjsKPj4g PiAtCWNhc2UgUE9SVF9DOgo+PiA+IC0JCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0M7Cj4+ID4g LQljYXNlIFBPUlRfRDoKPj4gPiAtCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9EOwo+PiA+IC0J Y2FzZSBQT1JUX0U6Cj4+ID4gLQkJLyogRklYTUU6IENoZWNrIFZCVCBmb3IgYWN0dWFsIHdpcmlu ZyBvZiBQT1JUIEUgKi8KPj4gPiAtCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9EOwo+PiA+IC0J ZGVmYXVsdDoKPj4gPiAtCQlNSVNTSU5HX0NBU0UocG9ydCk7Cj4+ID4gLQkJcmV0dXJuIFBPV0VS X0RPTUFJTl9BVVhfQTsKPj4gPiAtCX0KPj4gPiAtfQo+PiA+IC0KPj4gPiAgZW51bSBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbgo+PiA+ICBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWlu KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+PiA+ICB7Cj4+ID4gQEAgLTU2 MzYsMzYgKzU2MTYsNiBAQCBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+PiA+ICAJfQo+PiA+ICB9Cj4+ID4gIAo+PiA+ IC1lbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4+ID4gLWludGVsX2Rpc3BsYXlfcG9y dF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ PiA+IC17Cj4+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGludGVsX2VuY29kZXItPmJhc2UuZGV2KTsKPj4gPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0Owo+PiA+IC0KPj4gPiAtCXN3aXRjaCAoaW50ZWxfZW5jb2Rlci0+ dHlwZSkgewo+PiA+IC0JY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoKPj4gPiAtCWNhc2UgSU5U RUxfT1VUUFVUX0hETUk6Cj4+ID4gLQkJLyoKPj4gPiAtCQkgKiBPbmx5IERESSBwbGF0Zm9ybXMg c2hvdWxkIGV2ZXIgdXNlIHRoZXNlIG91dHB1dCB0eXBlcy4KPj4gPiAtCQkgKiBXZSBjYW4gZ2V0 IGhlcmUgYWZ0ZXIgdGhlIEhETUkgZGV0ZWN0IGNvZGUgaGFzIGFscmVhZHkgc2V0Cj4+ID4gLQkJ ICogdGhlIHR5cGUgb2YgdGhlIHNoYXJlZCBlbmNvZGVyLiBTaW5jZSB3ZSBjYW4ndCBiZSBzdXJl Cj4+ID4gLQkJICogd2hhdCdzIHRoZSBzdGF0dXMgb2YgdGhlIGdpdmVuIGNvbm5lY3RvcnMsIHBs YXkgc2FmZSBhbmQKPj4gPiAtCQkgKiBydW4gdGhlIERQIGRldGVjdGlvbiB0b28uCj4+ID4gLQkJ ICovCj4+ID4gLQkJV0FSTl9PTl9PTkNFKCFIQVNfRERJKGRldl9wcml2KSk7Cj4+ID4gLQljYXNl IElOVEVMX09VVFBVVF9EUDoKPj4gPiAtCWNhc2UgSU5URUxfT1VUUFVUX0VEUDoKPj4gPiAtCQlp bnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4+ ID4gLQkJcmV0dXJuIHBvcnRfdG9fYXV4X3Bvd2VyX2RvbWFpbihpbnRlbF9kaWdfcG9ydC0+cG9y dCk7Cj4+ID4gLQljYXNlIElOVEVMX09VVFBVVF9EUF9NU1Q6Cj4+ID4gLQkJaW50ZWxfZGlnX3Bv cnQgPSBlbmNfdG9fbXN0KCZpbnRlbF9lbmNvZGVyLT5iYXNlKS0+cHJpbWFyeTsKPj4gPiAtCQly ZXR1cm4gcG9ydF90b19hdXhfcG93ZXJfZG9tYWluKGludGVsX2RpZ19wb3J0LT5wb3J0KTsKPj4g Cj4+IEkgd2FzIHdvbmRlcmluZyB3aGVyZSB0aGUgZHAtPmF1eF9wb3dlcl9kb21haW4gZ2V0cyBp bml0ZWQgZm9yIHRoZSBNU1QgY2FzZSwKPj4gYnV0IGxvb2tzIGxpa2UgdGhpcyBjYXNlIGNvdWxk IG5ldmVyIGhhcHBlbiBldmVuIG5vdy4gVGhlIHBhdGNoIGxvb2tzIG9rOgo+Cj4gTG9va3MgbGlr ZSBJIGZvcmdvdCB0byBDYyBKYW5pLCBidXQgaGUgaGFkIHRoZSBzYW1lIGNvbmNlcm46IGh0dHBz Oi8vbGlzdHMuZnJlZWQKPiBlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE3LUZlYnJ1 YXJ5LzExOTAyNy5odG1sCgpZZWFoLCBzb3JyeSBJIGZhaWxlZCB0byBmb2xsb3ctdXAgaGVyZS4g L29cCgo+Cj4gVGhlIGltcG9ydGFudCBwYXJ0IGlzIHRoYXQgd2hlbiB0aGUgTVNUIGNvbm5lY3Rv ciBpcyBpbml0aWFsaXplZCwgaXQgcmVjZWl2ZXMgYQo+IHN0cnVjdCBpbnRlbF9kcCBhcyBhIHBh cmFtZXRlciwgYW5kIHRoYXQgc3RydWN0IGhhcyB0aGUgYXV4IHBvd2VyIGRvbWFpbgo+IGluaXRp YWxpemVkLiBUaGF0IGlzIHdoYXQgZW5kcyB1cCBpbiB0aGUgLT5wcmltYXJ5IGZpZWxkIHdoaWNo IHRoZSBmdW5jdGlvbgo+IGFib3ZlIHVzZXMuCj4KPj4gUmV2aWV3ZWQtYnk6IEltcmUgRGVhayA8 aW1yZS5kZWFrQGludGVsLmNvbT4KPgo+IFRoYW5rcywKPiBBbmRlcgo+Cj4+IAo+PiA+IC0JZGVm YXVsdDoKPj4gPiAtCQlNSVNTSU5HX0NBU0UoaW50ZWxfZW5jb2Rlci0+dHlwZSk7Cj4+ID4gLQkJ cmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQTsKPj4gPiAtCX0KPj4gPiAtfQo+PiA+IC0KPj4gPiAg c3RhdGljIHU2NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK Pj4gPiAgCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ID4gIHsK Pj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gPiBpbmRleCBmYTc3ZTk2Li5lMmU0NzY2IDEw MDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ID4gQEAgLTM5NiwxNCArMzk2LDEy IEBAIHN0YXRpYyB2b2lkIHBwc19sb2NrKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ID4g IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9kaWdfcG9ydC0+YmFzZTsK Pj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPj4gPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4gPiAt CWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+PiA+ICAKPj4g PiAgCS8qCj4+ID4gIAkgKiBTZWUgdmx2X3Bvd2VyX3NlcXVlbmNlcl9yZXNldCgpIHdoeSB3ZSBu ZWVkCj4+ID4gIAkgKiBhIHBvd2VyIGRvbWFpbiByZWZlcmVuY2UgaGVyZS4KPj4gPiAgCSAqLwo+ PiA+IC0JcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4o ZW5jb2Rlcik7Cj4+ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJf ZG9tYWluKTsKPj4gPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBpbnRlbF9k cC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4+ID4gIAo+PiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYt PnBwc19tdXRleCk7Cj4+ID4gIH0KPj4gPiBAQCAtNDE0LDEyICs0MTIsMTAgQEAgc3RhdGljIHZv aWQgcHBzX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiA+ICAJc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4+ID4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4+ID4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+ID4gLQllbnVtIGludGVs X2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPj4gPiAgCj4+ID4gIAltdXRleF91 bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+PiA+ICAKPj4gPiAtCXBvd2VyX2RvbWFpbiA9 IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKGVuY29kZXIpOwo+PiA+IC0JaW50 ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4+ID4gKwlpbnRl bF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4p Owo+PiA+ICB9Cj4+ID4gIAo+PiA+ICBzdGF0aWMgdm9pZAo+PiA+IEBAIC0yMDA1LDkgKzIwMDEs NyBAQCBzdGF0aWMgYm9vbCBlZHBfcGFuZWxfdmRkX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4+ID4gIHsKPj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApOwo+PiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciA9ICZpbnRlbF9kaWdfcG9ydC0+YmFzZTsKPj4gPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4gPiAtCWVudW0g aW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+PiA+ICAJdTMyIHBwOwo+ PiA+ICAJaTkxNV9yZWdfdCBwcF9zdGF0X3JlZywgcHBfY3RybF9yZWc7Cj4+ID4gIAlib29sIG5l ZWRfdG9fZGlzYWJsZSA9ICFpbnRlbF9kcC0+d2FudF9wYW5lbF92ZGQ7Cj4+ID4gQEAgLTIwMjMs OCArMjAxNyw3IEBAIHN0YXRpYyBib29sIGVkcF9wYW5lbF92ZGRfb24oc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPj4gPiAgCWlmIChlZHBfaGF2ZV9wYW5lbF92ZGQoaW50ZWxfZHApKQo+PiA+ ICAJCXJldHVybiBuZWVkX3RvX2Rpc2FibGU7Cj4+ID4gIAo+PiA+IC0JcG93ZXJfZG9tYWluID0g aW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4+ID4g LQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPj4gPiAr CWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2Rv bWFpbik7Cj4+ID4gIAo+PiA+ICAJRFJNX0RFQlVHX0tNUygiVHVybmluZyBlRFAgcG9ydCAlYyBW REQgb25cbiIsCj4+ID4gIAkJICAgICAgcG9ydF9uYW1lKGludGVsX2RpZ19wb3J0LT5wb3J0KSk7 Cj4+ID4gQEAgLTIwODIsOCArMjA3NSw2IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2Zm X3N5bmMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPj4gPiAgCQlkcF90b19kaWdfcG9ydChpbnRlbF9k cCk7Cj4+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9ICZpbnRlbF9k aWdfcG9ydC0+YmFzZTsKPj4gPiAtCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93 ZXJfZG9tYWluOwo+PiA+ICAJdTMyIHBwOwo+PiA+ICAJaTkxNV9yZWdfdCBwcF9zdGF0X3JlZywg cHBfY3RybF9yZWc7Cj4+ID4gIAo+PiA+IEBAIC0yMTEzLDggKzIxMDQsNyBAQCBzdGF0aWMgdm9p ZCBlZHBfcGFuZWxfdmRkX29mZl9zeW5jKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ID4g IAlpZiAoKHBwICYgUEFORUxfUE9XRVJfT04pID09IDApCj4+ID4gIAkJaW50ZWxfZHAtPnBhbmVs X3Bvd2VyX29mZl90aW1lID0ga3RpbWVfZ2V0X2Jvb3R0aW1lKCk7Cj4+ID4gIAo+PiA+IC0JcG93 ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5j b2Rlcik7Cj4+ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9t YWluKTsKPj4gPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBpbnRlbF9kcC0+ YXV4X3Bvd2VyX2RvbWFpbik7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gIHN0YXRpYyB2b2lkIGVkcF9w YW5lbF92ZGRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKPj4gPiBAQCAtMjIyNywx MSArMjIxNyw4IEBAIHZvaWQgaW50ZWxfZWRwX3BhbmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCj4+ID4gIAo+PiA+ICBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4+ID4gIHsKPj4gPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+PiA+IC0Jc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4+ ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsK Pj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK Pj4gPiAtCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+PiA+ ICAJdTMyIHBwOwo+PiA+ICAJaTkxNV9yZWdfdCBwcF9jdHJsX3JlZzsKPj4gPiAgCj4+ID4gQEAg LTIyNjMsOCArMjI1MCw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF9vZmYoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPj4gPiAgCXdhaXRfcGFuZWxfb2ZmKGludGVsX2RwKTsKPj4gPiAgCj4+ ID4gIAkvKiBXZSBnb3QgYSByZWZlcmVuY2Ugd2hlbiB3ZSBlbmFibGVkIHRoZSBWREQuICovCj4+ ID4gLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihp bnRlbF9lbmNvZGVyKTsKPj4gPiAtCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBw b3dlcl9kb21haW4pOwo+PiA+ICsJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIGlu dGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgdm9pZCBpbnRl bF9lZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ID4gQEAgLTQ1ODcs MTEgKzQ1NzMsOSBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmludGVsX2Nvbm5lY3RvcikKPj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+PiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNvbm5lY3Rvci0+ZGV2Owo+PiA+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0 dXM7Cj4+ID4gLQllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsK Pj4gPiAgCXU4IHNpbmtfaXJxX3ZlY3RvciA9IDA7Cj4+ID4gIAo+PiA+IC0JcG93ZXJfZG9tYWlu ID0gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4+ ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7 Cj4+ID4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0b19pOTE1KGRldiksIGludGVsX2RwLT5h dXhfcG93ZXJfZG9tYWluKTsKPj4gPiAgCj4+ID4gIAkvKiBDYW4ndCBkaXNjb25uZWN0IGVEUCwg YnV0IHlvdSBjYW4gY2xvc2UgdGhlIGxpZC4uLiAqLwo+PiA+ICAJaWYgKGlzX2VkcChpbnRlbF9k cCkpCj4+ID4gQEAgLTQ2ODgsNyArNDY3Miw3IEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+PiA+ICAJaWYgKHN0YXR1cyAhPSBj b25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCAmJiAhaW50ZWxfZHAtPmlzX21zdCkKPj4gPiAgCQlp bnRlbF9kcF91bnNldF9lZGlkKGludGVsX2RwKTsKPj4gPiAgCj4+ID4gLQlpbnRlbF9kaXNwbGF5 X3Bvd2VyX3B1dCh0b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4+ID4gKwlpbnRlbF9kaXNw bGF5X3Bvd2VyX3B1dCh0b19pOTE1KGRldiksIGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsK Pj4gPiAgCXJldHVybiBzdGF0dXM7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gQEAgLTQ3MTYsNyArNDcw MCw2IEBAIGludGVsX2RwX2ZvcmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVj dG9yKTsKPj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsKPj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiA+IC0JZW51 bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4+ID4gIAo+PiA+ICAJ RFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc11cbiIsCj4+ID4gIAkJICAgICAgY29ubmVj dG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOwo+PiA+IEBAIC00NzI1LDEyICs0NzA4LDEx IEBAIGludGVsX2RwX2ZvcmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ID4g IAlpZiAoY29ubmVjdG9yLT5zdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQpCj4+ ID4gIAkJcmV0dXJuOwo+PiA+ICAKPj4gPiAtCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlf cG9ydF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+PiA+IC0JaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4+ID4gKwlpbnRlbF9kaXNwbGF5 X3Bvd2VyX2dldChkZXZfcHJpdiwgaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4pOwo+PiA+ICAK Pj4gPiAgCWludGVsX2RwX3NldF9lZGlkKGludGVsX2RwKTsKPj4gPiAgCj4+ID4gLQlpbnRlbF9k aXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPj4gPiArCWludGVsX2Rp c3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4+ ID4gIAo+PiA+ICAJaWYgKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkK Pj4gPiAgCQlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RQOwo+PiA+IEBAIC00 OTY1LDcgKzQ5NDcsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXpl KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPj4gPiAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPj4g PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4g PiAtCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+PiA+ICAK Pj4gPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+PiA+ICAK Pj4gPiBAQCAtNDk3OSw4ICs0OTYwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZWRwX3BhbmVsX3Zk ZF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiA+ICAJICogaW5kZWZpbml0 ZWx5Lgo+PiA+ICAJICovCj4+ID4gIAlEUk1fREVCVUdfS01TKCJWREQgbGVmdCBvbiBieSBCSU9T LCBhZGp1c3Rpbmcgc3RhdGUgdHJhY2tpbmdcbiIpOwo+PiA+IC0JcG93ZXJfZG9tYWluID0gaW50 ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oJmludGVsX2RpZ19wb3J0LT5iYXNlKTsK Pj4gPiAtCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ PiA+ICsJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIGludGVsX2RwLT5hdXhfcG93 ZXJfZG9tYWluKTsKPj4gPiAgCj4+ID4gIAllZHBfcGFuZWxfdmRkX3NjaGVkdWxlX29mZihpbnRl bF9kcCk7Cj4+ID4gIH0KPj4gPiBAQCAtNTA1MiwxMCArNTAzMiw4IEBAIGVudW0gaXJxcmV0dXJu Cj4+ID4gIGludGVsX2RwX2hwZF9wdWxzZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCwgYm9vbCBsb25nX2hwZCkKPj4gPiAgewo+PiA+ICAJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciA9ICZpbnRlbF9kaWdfcG9ydC0+YmFzZTsKPj4gPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPj4gPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4gPiAt CWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+PiA+ICAJZW51 bSBpcnFyZXR1cm4gcmV0ID0gSVJRX05PTkU7Cj4+ID4gIAo+PiA+ICAJaWYgKGludGVsX2RpZ19w b3J0LT5iYXNlLnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCAmJgo+PiA+IEBAIC01MDgzLDggKzUw NjEsNyBAQCBpbnRlbF9kcF9ocGRfcHVsc2Uoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsIGJvb2wgbG9uZ19ocGQpCj4+ID4gIAkJcmV0dXJuIElSUV9OT05FOwo+PiA+ ICAJfQo+PiA+ICAKPj4gPiAtCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9hdXhf cG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwo+PiA+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9n ZXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4+ID4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dl dChkZXZfcHJpdiwgaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4pOwo+PiA+ICAKPj4gPiAgCWlm IChpbnRlbF9kcC0+aXNfbXN0KSB7Cj4+ID4gIAkJaWYgKGludGVsX2RwX2NoZWNrX21zdF9zdGF0 dXMoaW50ZWxfZHApID09IC1FSU5WQUwpIHsKPj4gPiBAQCAtNTExMiw3ICs1MDg5LDcgQEAgaW50 ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 LCBib29sIGxvbmdfaHBkKQo+PiA+ICAJcmV0ID0gSVJRX0hBTkRMRUQ7Cj4+ID4gIAo+PiA+ICBw dXRfcG93ZXI6Cj4+ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJf ZG9tYWluKTsKPj4gPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBpbnRlbF9k cC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4+ID4gIAo+PiA+ICAJcmV0dXJuIHJldDsKPj4gPiAgfQo+ PiA+IEBAIC01OTAzLDI3ICs1ODgwLDM1IEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nv bm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+PiA+ICAJcmV0dXJuIGZhbHNlOwo+ PiA+ICB9Cj4+ID4gIAo+PiA+ICsvKiBTZXQgdXAgdGhlIGhvdHBsdWcgcGluIGFuZCBhdXggcG93 ZXIgZG9tYWluLiAqLwo+PiA+ICBzdGF0aWMgdm9pZAo+PiA+ICBpbnRlbF9kcF9pbml0X2Nvbm5l Y3Rvcl9wb3J0X2luZm8oc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQp Cj4+ID4gIHsKPj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2Rp Z19wb3J0LT5iYXNlOwo+PiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9k aWdfcG9ydC0+ZHA7Cj4+ID4gIAo+PiA+IC0JLyogU2V0IHVwIHRoZSBob3RwbHVnIHBpbi4gKi8K Pj4gPiAgCXN3aXRjaCAoaW50ZWxfZGlnX3BvcnQtPnBvcnQpIHsKPj4gPiAgCWNhc2UgUE9SVF9B Ogo+PiA+ICAJCWVuY29kZXItPmhwZF9waW4gPSBIUERfUE9SVF9BOwo+PiA+ICsJCWludGVsX2Rw LT5hdXhfcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX0FVWF9BOwo+PiA+ICAJCWJyZWFrOwo+ PiA+ICAJY2FzZSBQT1JUX0I6Cj4+ID4gIAkJZW5jb2Rlci0+aHBkX3BpbiA9IEhQRF9QT1JUX0I7 Cj4+ID4gKwkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0I7 Cj4+ID4gIAkJYnJlYWs7Cj4+ID4gIAljYXNlIFBPUlRfQzoKPj4gPiAgCQllbmNvZGVyLT5ocGRf cGluID0gSFBEX1BPUlRfQzsKPj4gPiArCQlpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbiA9IFBP V0VSX0RPTUFJTl9BVVhfQzsKPj4gPiAgCQlicmVhazsKPj4gPiAgCWNhc2UgUE9SVF9EOgo+PiA+ ICAJCWVuY29kZXItPmhwZF9waW4gPSBIUERfUE9SVF9EOwo+PiA+ICsJCWludGVsX2RwLT5hdXhf cG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX0FVWF9EOwo+PiA+ICAJCWJyZWFrOwo+PiA+ICAJ Y2FzZSBQT1JUX0U6Cj4+ID4gIAkJZW5jb2Rlci0+aHBkX3BpbiA9IEhQRF9QT1JUX0U7Cj4+ID4g Kwo+PiA+ICsJCS8qIEZJWE1FOiBDaGVjayBWQlQgZm9yIGFjdHVhbCB3aXJpbmcgb2YgUE9SVCBF ICovCj4+ID4gKwkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVY X0Q7Cj4+ID4gIAkJYnJlYWs7Cj4+ID4gIAlkZWZhdWx0Ogo+PiA+ICAJCU1JU1NJTkdfQ0FTRShp bnRlbF9kaWdfcG9ydC0+cG9ydCk7Cj4+ID4gQEAgLTYwMDMsNiArNTk4OCw4IEBAIGludGVsX2Rw X2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 LAo+PiA+ICAJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IHRydWU7Cj4+ID4gIAljb25u ZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IDA7Cj4+ID4gIAo+PiA+ICsJaW50ZWxfZHBfaW5p dF9jb25uZWN0b3JfcG9ydF9pbmZvKGludGVsX2RpZ19wb3J0KTsKPj4gPiArCj4+ID4gIAlpbnRl bF9kcF9hdXhfaW5pdChpbnRlbF9kcCk7Cj4+ID4gIAo+PiA+ICAJSU5JVF9ERUxBWUVEX1dPUkso JmludGVsX2RwLT5wYW5lbF92ZGRfd29yaywKPj4gPiBAQCAtNjAxNSw4ICs2MDAyLDYgQEAgaW50 ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQsCj4+ID4gIAllbHNlCj4+ID4gIAkJaW50ZWxfY29ubmVjdG9yLT5nZXRfaHdfc3RhdGUg PSBpbnRlbF9jb25uZWN0b3JfZ2V0X2h3X3N0YXRlOwo+PiA+ICAKPj4gPiAtCWludGVsX2RwX2lu aXRfY29ubmVjdG9yX3BvcnRfaW5mbyhpbnRlbF9kaWdfcG9ydCk7Cj4+ID4gLQo+PiA+ICAJLyog aW5pdCBNU1Qgb24gcG9ydHMgdGhhdCBjYW4gc3VwcG9ydCBpdCAqLwo+PiA+ICAJaWYgKEhBU19E UF9NU1QoZGV2X3ByaXYpICYmICFpc19lZHAoaW50ZWxfZHApICYmCj4+ID4gIAkgICAgKHBvcnQg PT0gUE9SVF9CIHx8IHBvcnQgPT0gUE9SVF9DIHx8IHBvcnQgPT0gUE9SVF9EKSkKPj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+IGluZGV4IDZlMzdmYmEuLjNkZGVhYTYgMTAwNjQ0Cj4+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+IEBAIC05NTAsNiArOTUwLDcgQEAgc3Ry dWN0IGludGVsX2RwIHsKPj4gPiAgCS8qIHNpbmsgb3IgYnJhbmNoIGRlc2NyaXB0b3IgKi8KPj4g PiAgCXN0cnVjdCBpbnRlbF9kcF9kZXNjIGRlc2M7Cj4+ID4gIAlzdHJ1Y3QgZHJtX2RwX2F1eCBh dXg7Cj4+ID4gKwllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGF1eF9wb3dlcl9kb21h aW47Cj4+ID4gIAl1aW50OF90IHRyYWluX3NldFs0XTsKPj4gPiAgCWludCBwYW5lbF9wb3dlcl91 cF9kZWxheTsKPj4gPiAgCWludCBwYW5lbF9wb3dlcl9kb3duX2RlbGF5Owo+PiA+IEBAIC0xNDIx LDggKzE0MjIsNiBAQCB2b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj KTsKPj4gPiAgdm9pZCBoc3dfZGlzYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ PiA+ICBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4+ID4gIGludGVsX2Rpc3BsYXlf cG9ydF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwo+ PiA+IC1lbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCj4+ID4gLWludGVsX2Rpc3BsYXlf cG9ydF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy KTsKPj4gPiAgdm9pZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUsCj4+ID4gIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKTsKPj4gPiAgCj4+ID4gLS0gCj4+ID4gMi45LjMKPj4gPiAKPj4gPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiA+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+ID4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPj4gCj4+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoK LS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK