From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 4/7] drm/i915: Move load time display/audio callback init earlier Date: Thu, 10 Mar 2016 13:24:10 +0200 Message-ID: <1457609050.18917.63.camel@intel.com> References: <1457537506-12455-1-git-send-email-imre.deak@intel.com> <1457537506-12455-5-git-send-email-imre.deak@intel.com> <1457600319.4631.25.camel@gmail.com> Reply-To: imre.deak@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 2631D6E942 for ; Thu, 10 Mar 2016 11:24:13 +0000 (UTC) In-Reply-To: <1457600319.4631.25.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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTYtMDMtMTAgYXQgMTA6NTggKzAyMDAsIEFuZGVyIENvbnNlbHZhbiBEZSBPbGl2 ZWlyYSB3cm90ZToKPiBPbiBXZWQsIDIwMTYtMDMtMDkgYXQgMTc6MzEgKzAyMDAsIEltcmUgRGVh ayB3cm90ZToKPiA+IEFsbCBvZiB0aGlzIGlzIFNXIG9ubHkgaW5pdGlhbGl6YXRpb24gc28gd2Ug Y2FuIG1vdmUgdGhlbSBlYXJsaWVyLgo+ID4gTW92ZQo+ID4gdGhlIG11dGV4IGluaXQgd2hlcmUg dGhlIHJlc3Qgb2YgdGhlIGxvY2tzIGFyZSBpbml0ZWQuIFdoaWxlIGF0IGl0Cj4gPiBhbHNvCj4g PiBjb252ZXJ0IGRldiB0byBkZXZfcHJpdi4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBE ZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZG1hLmPCoMKgwqDCoMKgwqB8wqDCoDMgKysKPiA+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXVkaW8uY8KgwqDCoHwgMTIgKysrLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDc3ICsrKysrKysrKysrKysrKystLS0tLS0KPiA+IC0t LS0tLS0tLS0tLS0KPiA+IC0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmjC oMKgwqDCoMKgfMKgwqAzICstCj4gPiDCoDQgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygr KSwgNTAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RtYS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiA+ IGluZGV4IDliM2VkMDAuLjU1YjBjNjIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RtYS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5j Cj4gPiBAQCAtMTAxNiw2ICsxMDE2LDcgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiA+IHVuc2lnbmVkCj4gPiBsb25nIGZsYWdzKQo+ID4gwqAJbXV0ZXhf aW5pdCgmZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9sb2NrKTsKPiA+IMKgCW11dGV4X2luaXQo JmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiDCoAltdXRleF9pbml0KCZkZXZfcHJpdi0+d20ud21f bXV0ZXgpOwo+ID4gKwltdXRleF9pbml0KCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiA+IMKgCj4g PiDCoAlyZXQgPSBpOTE1X3dvcmtxdWV1ZXNfaW5pdChkZXZfcHJpdik7Cj4gPiDCoAlpZiAocmV0 IDwgMCkKPiA+IEBAIC0xMDI4LDYgKzEwMjksOCBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gdW5zaWduZWQKPiA+IGxvbmcgZmxhZ3MpCj4gPiDCoAlp bnRlbF9pbml0X2RwaW8oZGV2X3ByaXYpOwo+ID4gwqAJaW50ZWxfcG93ZXJfZG9tYWluc19pbml0 KGRldl9wcml2KTsKPiA+IMKgCWludGVsX2lycV9pbml0KGRldl9wcml2KTsKPiA+ICsJaW50ZWxf aW5pdF9kaXNwbGF5X2NhbGxiYWNrcyhkZXZfcHJpdik7Cj4gPiArCWludGVsX2luaXRfYXVkaW9f Y2FsbGJhY2tzKGRldl9wcml2KTsKPiA+IMKgCj4gPiDCoAlpbnRlbF9ydW50aW1lX3BtX2dldChk ZXZfcHJpdik7Cj4gPiDCoAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4g aW5kZXggMzBmOTIxNC4uMTkzNjc1MiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMKPiA+IEBAIC01NjcsMjAgKzU2NywxOCBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2Rp c2FibGUoc3RydWN0Cj4gPiBpbnRlbF9lbmNvZGVyCj4gPiAqaW50ZWxfZW5jb2RlcikKPiA+IMKg ICogaW50ZWxfaW5pdF9hdWRpbyAtIFNldCB1cCBjaGlwIHNwZWNpZmljIGF1ZGlvIGZ1bmN0aW9u cwo+ID4gwqAgKiBAZGV2OiBkcm0gZGV2aWNlCj4gPiDCoCAqLwo+ID4gLXZvaWQgaW50ZWxfaW5p dF9hdWRpbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gK3ZvaWQgaW50ZWxfaW5pdF9hdWRp b19jYWxsYmFja3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gwqB7Cj4g PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gPiAtCj4gPiAtCWlmIChJU19HNFgoZGV2KSkgewo+ID4gKwlpZiAoSVNfRzRYKGRldl9wcml2 KSkgewo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2VuYWJsZSA9Cj4gPiBn NHhfYXVkaW9fY29kZWNfZW5hYmxlOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2Nv ZGVjX2Rpc2FibGUgPQo+ID4gZzR4X2F1ZGlvX2NvZGVjX2Rpc2FibGU7Cj4gPiAtCX0gZWxzZSBp ZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ID4gKwl9IGVs c2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8Cj4gPiBJU19DSEVSUllWSUVXKGRldl9w cml2KSkgewo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2VuYWJsZSA9Cj4g PiBpbGtfYXVkaW9fY29kZWNfZW5hYmxlOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlv X2NvZGVjX2Rpc2FibGUgPQo+ID4gaWxrX2F1ZGlvX2NvZGVjX2Rpc2FibGU7Cj4gPiAtCX0gZWxz ZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKPiA+ ICsJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJTlRFTF9JTkZPKGRldl9wcml2 KS0KPiA+ID5nZW4gPj0gOCkgewo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVj X2VuYWJsZSA9Cj4gPiBoc3dfYXVkaW9fY29kZWNfZW5hYmxlOwo+ID4gwqAJCWRldl9wcml2LT5k aXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUgPQo+ID4gaHN3X2F1ZGlvX2NvZGVjX2Rpc2FibGU7 Cj4gPiAtCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXYpKSB7Cj4gPiArCX0gZWxzZSBpZiAo SEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRp b19jb2RlY19lbmFibGUgPQo+ID4gaWxrX2F1ZGlvX2NvZGVjX2VuYWJsZTsKPiA+IMKgCQlkZXZf cHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlID0KPiA+IGlsa19hdWRpb19jb2RlY19k aXNhYmxlOwo+ID4gwqAJfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiA+IGluZGV4IDYyZDM2YTcuLjUxNzA3MTggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTE1MDk1LDIyICsxNTA5NSwyMCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcwo+ID4gaW50ZWxfbW9kZV9mdW5jcyA9IHsKPiA+ IMKgfTsKPiA+IMKgCj4gPiDCoC8qIFNldCB1cCBjaGlwIHNwZWNpZmljIGRpc3BsYXkgZnVuY3Rp b25zICovCj4gPiAtc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPiArdm9pZCBpbnRlbF9pbml0X2Rpc3BsYXlfY2FsbGJhY2tzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlCj4gPiAqZGV2X3ByaXYpCj4gPiDCoHsKPiA+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IC0KPiA+IC0JaWYg KEhBU19QQ0hfU1BMSVQoZGV2KSB8fCBJU19HNFgoZGV2KSkKPiA+ICsJaWYgKEhBU19QQ0hfU1BM SVQoZGV2X3ByaXYpIHx8IElTX0c0WChkZXZfcHJpdikpCj4gPiDCoAkJZGV2X3ByaXYtPmRpc3Bs YXkuZmluZF9kcGxsID0gZzR4X2ZpbmRfYmVzdF9kcGxsOwo+ID4gLQllbHNlIGlmIChJU19DSEVS UllWSUVXKGRldikpCj4gPiArCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4g wqAJCWRldl9wcml2LT5kaXNwbGF5LmZpbmRfZHBsbCA9IGNodl9maW5kX2Jlc3RfZHBsbDsKPiA+ IC0JZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKQo+ID4gKwllbHNlIGlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2KSkKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5maW5kX2RwbGwgPSB2bHZf ZmluZF9iZXN0X2RwbGw7Cj4gPiAtCWVsc2UgaWYgKElTX1BJTkVWSUVXKGRldikpCj4gPiArCWVs c2UgaWYgKElTX1BJTkVWSUVXKGRldl9wcml2KSkKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5m aW5kX2RwbGwgPSBwbnZfZmluZF9iZXN0X2RwbGw7Cj4gPiDCoAllbHNlCj4gPiDCoAkJZGV2X3By aXYtPmRpc3BsYXkuZmluZF9kcGxsID0gaTl4eF9maW5kX2Jlc3RfZHBsbDsKPiA+IMKgCj4gPiAt CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Cj4gPiArCWlmIChJTlRFTF9JTkZPKGRl dl9wcml2KS0+Z2VuID49IDkpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9j b25maWcgPQo+ID4gaGFzd2VsbF9nZXRfcGlwZV9jb25maWc7Cj4gPiDCoAkJZGV2X3ByaXYtPmRp c3BsYXkuZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnID0KPiA+IMKgCQkJc2t5bGFrZV9nZXRfaW5p dGlhbF9wbGFuZV9jb25maWc7Cj4gPiBAQCAtMTUxMTgsNyArMTUxMTYsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9pbml0X2Rpc3BsYXkoc3RydWN0Cj4gPiBkcm1fZGV2aWNlICpkZXYpCj4gPiDCoAkJ CWhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmNy dGNfZW5hYmxlID0KPiA+IGhhc3dlbGxfY3J0Y19lbmFibGU7Cj4gPiDCoAkJZGV2X3ByaXYtPmRp c3BsYXkuY3J0Y19kaXNhYmxlID0KPiA+IGhhc3dlbGxfY3J0Y19kaXNhYmxlOwo+ID4gLQl9IGVs c2UgaWYgKEhBU19EREkoZGV2KSkgewo+ID4gKwl9IGVsc2UgaWYgKEhBU19EREkoZGV2X3ByaXYp KSB7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnID0KPiA+IGhhc3dl bGxfZ2V0X3BpcGVfY29uZmlnOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9pbml0aWFs X3BsYW5lX2NvbmZpZyA9Cj4gPiDCoAkJCWlyb25sYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZp ZzsKPiA+IEBAIC0xNTEyNiw3ICsxNTEyNCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlz cGxheShzdHJ1Y3QKPiA+IGRybV9kZXZpY2UgKmRldikKPiA+IMKgCQkJaGFzd2VsbF9jcnRjX2Nv bXB1dGVfY2xvY2s7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19lbmFibGUgPQo+ID4g aGFzd2VsbF9jcnRjX2VuYWJsZTsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2Fi bGUgPQo+ID4gaGFzd2VsbF9jcnRjX2Rpc2FibGU7Cj4gPiAtCX0gZWxzZSBpZiAoSEFTX1BDSF9T UExJVChkZXYpKSB7Cj4gPiArCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsK PiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcgPQo+ID4gaXJvbmxha2Vf Z2V0X3BpcGVfY29uZmlnOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9pbml0aWFsX3Bs YW5lX2NvbmZpZyA9Cj4gPiDCoAkJCWlyb25sYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZzsK PiA+IEBAIC0xNTEzNCw3ICsxNTEzMiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlzcGxh eShzdHJ1Y3QKPiA+IGRybV9kZXZpY2UgKmRldikKPiA+IMKgCQkJaXJvbmxha2VfY3J0Y19jb21w dXRlX2Nsb2NrOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlID0KPiA+IGly b25sYWtlX2NydGNfZW5hYmxlOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZGlzYWJs ZSA9Cj4gPiBpcm9ubGFrZV9jcnRjX2Rpc2FibGU7Cj4gPiAtCX0gZWxzZSBpZiAoSVNfVkFMTEVZ VklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ID4gKwl9IGVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8Cj4gPiBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ID4g wqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyA9Cj4gPiBpOXh4X2dldF9waXBl X2NvbmZpZzsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfaW5pdGlhbF9wbGFuZV9jb25m aWcgPQo+ID4gwqAJCQlpOXh4X2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZzsKPiA+IEBAIC0xNTE1 MSw4OSArMTUxNDksODkgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5KHN0cnVjdAo+ ID4gZHJtX2RldmljZQo+ID4gKmRldikKPiA+IMKgCX0KPiA+IMKgCj4gPiDCoAkvKiBSZXR1cm5z IHRoZSBjb3JlIGRpc3BsYXkgY2xvY2sgc3BlZWQgKi8KPiA+IC0JaWYgKElTX1NLWUxBS0UoZGV2 KSB8fCBJU19LQUJZTEFLRShkZXYpKQo+ID4gKwlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwg SVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNw bGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJc2t5bGFrZV9nZXRfZGlzcGxheV9jbG9ja19zcGVl ZDsKPiA+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+ID4gKwllbHNlIGlmIChJU19CUk9Y VE9OKGRldl9wcml2KSkKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9j a19zcGVlZCA9Cj4gPiDCoAkJCWJyb3h0b25fZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQ7Cj4gPiAt CWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKQo+ID4gKwllbHNlIGlmIChJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3Nw ZWVkID0KPiA+IMKgCQkJYnJvYWR3ZWxsX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQll bHNlIGlmIChJU19IQVNXRUxMKGRldikpCj4gPiArCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3By aXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0K PiA+IMKgCQkJaGFzd2VsbF9nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0JZWxzZSBpZiAo SVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKPiA+ICsJZWxzZSBpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwKPiA+IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKg CQkJdmFsbGV5dmlld19nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0JZWxzZSBpZiAoSVNf R0VONShkZXYpKQo+ID4gKwllbHNlIGlmIChJU19HRU41KGRldl9wcml2KSkKPiA+IMKgCQlkZXZf cHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZCA9Cj4gPiDCoAkJCWlsa19nZXRf ZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0JZWxzZSBpZiAoSVNfSTk0NUcoZGV2KSB8fCBJU19C Uk9BRFdBVEVSKGRldikgfHwKPiA+IC0JCcKgSVNfR0VONihkZXYpIHx8IElTX0lWWUJSSURHRShk ZXYpKQo+ID4gKwllbHNlIGlmIChJU19JOTQ1RyhkZXZfcHJpdikgfHwgSVNfQlJPQURXQVRFUihk ZXZfcHJpdikgfHwKPiA+ICsJCcKgSVNfR0VONihkZXZfcHJpdikgfHwgSVNfSVZZQlJJREdFKGRl dl9wcml2KSkKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVl ZCA9Cj4gPiDCoAkJCWk5NDVfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQ7Cj4gPiAtCWVsc2UgaWYg KElTX0dNNDUoZGV2KSkKPiA+ICsJZWxzZSBpZiAoSVNfR000NShkZXZfcHJpdikpCj4gPiDCoAkJ ZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ID4gwqAJCQlnbTQ1 X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19DUkVTVExJTkUoZGV2 KSkKPiA+ICsJZWxzZSBpZiAoSVNfQ1JFU1RMSU5FKGRldl9wcml2KSkKPiA+IMKgCQlkZXZfcHJp di0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZCA9Cj4gPiDCoAkJCWk5NjVnbV9nZXRf ZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0JZWxzZSBpZiAoSVNfUElORVZJRVcoZGV2KSkKPiA+ ICsJZWxzZSBpZiAoSVNfUElORVZJRVcoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNw bGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJcG52X2dldF9kaXNwbGF5X2Ns b2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19HMzMoZGV2KSB8fCBJU19HNFgoZGV2KSkKPiA+ ICsJZWxzZSBpZiAoSVNfRzMzKGRldl9wcml2KSB8fCBJU19HNFgoZGV2X3ByaXYpKQo+ID4gwqAJ CWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJZzMz X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19JOTE1RyhkZXYpKQo+ ID4gKwllbHNlIGlmIChJU19JOTE1RyhkZXZfcHJpdikpCj4gPiDCoAkJZGV2X3ByaXYtPmRpc3Bs YXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ID4gwqAJCQlpOTE1X2dldF9kaXNwbGF5X2Ns b2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19JOTQ1R00oZGV2KSB8fCBJU184NDVHKGRldikp Cj4gPiArCWVsc2UgaWYgKElTX0k5NDVHTShkZXZfcHJpdikgfHwgSVNfODQ1RyhkZXZfcHJpdikp Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ID4g wqAJCQlpOXh4X21pc2NfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQ7Cj4gPiAtCWVsc2UgaWYgKElT X0k5MTVHTShkZXYpKQo+ID4gKwllbHNlIGlmIChJU19JOTE1R00oZGV2X3ByaXYpKQo+ID4gwqAJ CWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJaTkx NWdtX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19JODY1RyhkZXYp KQo+ID4gKwllbHNlIGlmIChJU19JODY1RyhkZXZfcHJpdikpCj4gPiDCoAkJZGV2X3ByaXYtPmRp c3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ID4gwqAJCQlpODY1X2dldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19JODVYKGRldikpCj4gPiArCWVsc2UgaWYg KElTX0k4NVgoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJaTg1eF9nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+ IMKgCWVsc2UgeyAvKiA4MzAgKi8KPiA+IC0JCVdBUk4oIUlTX0k4MzAoZGV2KSwgIlVua25vd24g cGxhdGZvcm0uIEFzc3VtaW5nCj4gPiAxMzMgTUh6Cj4gPiBDRENMS1xuIik7Cj4gPiArCQlXQVJO KCFJU19JODMwKGRldl9wcml2KSwgIlVua25vd24gcGxhdGZvcm0uCj4gPiBBc3N1bWluZyAxMzMg TUh6Cj4gPiBDRENMS1xuIik7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlf Y2xvY2tfc3BlZWQgPQo+ID4gwqAJCQlpODMwX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4g wqAJfQo+ID4gwqAKPiA+IC0JaWYgKElTX0dFTjUoZGV2KSkgewo+ID4gKwlpZiAoSVNfR0VONShk ZXZfcHJpdikpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5mZGlfbGlua190cmFpbiA9Cj4g PiBpcm9ubGFrZV9mZGlfbGlua190cmFpbjsKPiA+IC0JfSBlbHNlIGlmIChJU19HRU42KGRldikp IHsKPiA+ICsJfSBlbHNlIGlmIChJU19HRU42KGRldl9wcml2KSkgewo+ID4gwqAJCWRldl9wcml2 LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluID0KPiA+IGdlbjZfZmRpX2xpbmtfdHJhaW47Cj4gPiAt CX0gZWxzZSBpZiAoSVNfSVZZQlJJREdFKGRldikpIHsKPiA+ICsJfSBlbHNlIGlmIChJU19JVllC UklER0UoZGV2X3ByaXYpKSB7Cj4gPiDCoAkJLyogRklYTUU6IGRldGVjdCBCMCsgc3RlcHBpbmcg YW5kIHVzZSBhdXRvCj4gPiB0cmFpbmluZyAqLwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmZk aV9saW5rX3RyYWluID0KPiA+IGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJhaW47Cj4gPiAtCX0gZWxz ZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7Cj4gPiArCX0gZWxz ZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiA+ IHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5mZGlfbGlua190cmFpbiA9Cj4gPiBoc3dfZmRp X2xpbmtfdHJhaW47Cj4gPiAtCQlpZiAoSVNfQlJPQURXRUxMKGRldikpIHsKPiA+ICsJCWlmIChJ U19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gPiDCoAkJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVz ZXRfY29tbWl0X2NkY2xrID0KPiA+IMKgCQkJCWJyb2Fkd2VsbF9tb2Rlc2V0X2NvbW1pdF9jZGNs azsKPiA+IMKgCQkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiA+IMKg CQkJCWJyb2Fkd2VsbF9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiDCoAkJfQo+ID4gLQl9IGVsc2Ug aWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKPiA+ICsJfSBl bHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fAo+ID4gSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9 Cj4gPiDCoAkJCXZhbGxleXZpZXdfbW9kZXNldF9jb21taXRfY2RjbGs7Cj4gPiDCoAkJZGV2X3By aXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiA+IMKgCQkJdmFsbGV5dmlld19tb2Rl c2V0X2NhbGNfY2RjbGs7Cj4gPiAtCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gPiAr CX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlz cGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9Cj4gPiDCoAkJCWJyb3h0b25fbW9kZXNldF9jb21t aXRfY2RjbGs7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0K PiA+IMKgCQkJYnJveHRvbl9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiDCoAl9Cj4gCj4gV291bGQg aXQgbWFrZSBzZW5zZSB0byBjaGFuZ2UgdGhlc2UgaWYgbGFkZGVycyBpbnRvIGEgc3RydWN0cyBv ZiBmdW5jdGlvbgo+IHBvaW50ZXJzIGFuZCBwb2ludCB0byB0aG9zZSBmcm9tIHN0cnVjdCBpbnRl bF9kZXZpY2VfaW5mbz8gVGhlIEhBU19QQ0hfU1BMSVQoKQo+IGNoZWNrIGNvdWxkIGJlIGEgYml0 IHRyaWNreSwgYnV0IHRob3NlIHVzdWFsbHkgZ28gYXMKPiAKPiDCoCBpZiAoSEFTX0RESSgpKQo+ IAkuLi4KPiDCoCBlbHNlIGlmIChIQVNfUENIX1NQTElUKCkpCj4gCS4uLiwKPiAKPiBzbyB0aGV5 IHVzdWFsbHkgbWVhbiBJTEssIFNOQiBhbmQgSVZCLgoKWWVzLCBhIGdvb2QgaWRlYSwgd291bGQg Y2xhcmlmeSB0aGluZ3MuCgo+IEknbSBub3Qgc2F5aW5nIHRoaXMgc2hvdWxkIGJlIHBhcnQgb2Yg dGhpcyBzZXJpZXMsIGJ1dCBqdXN0IHdhbnRlZCB0byB0aHJvdyB0aGUKPiBpZGVhIG91dCB0aGVy ZS4KCkknbSBub3Qgc3VyZSB5ZXQgaG93IG1hbnkgdmFyaWF0aW9ucyBvZiBuZXcgZnVuY3Rpb24g c3RydWN0cyB3ZSBuZWVkIHRvCnNwYXduIGRlcGVuZGluZyBvbiBwbGF0Zm9ybSBkaWZmZXJlbmNl cyB0aGF0IHlvdSBhbHNvIG1lbnRpb24gKEFGQUlDUwp0aGVyZSBhcmUgc2ltaWxhciBvbmVzIGZv ciBvbGRlciBwbGF0Zm9ybXMgdG9vKS4gV2Ugd291bGQgYWxzbyBuZWVkIHRvCnJlbW92ZSBmaXJz dCB0aGUgY29uZGl0aW9uYWwgYXNzaWdubWVudHMgdG8gY2FsbGJhY2tzIChzZWUgdGhlIG5leHQK cGF0Y2gpLiBCdXQgSSB0aGluayBhZnRlciBoYXZpbmcgYWxsIGNhbGxiYWNrIGluaXRpYWxpemF0 aW9ucyBjb2xsZWN0ZWQKdG8gb25lIHBsYWNlLCB3ZSdkIGhhdmUgYSBiZXR0ZXIgb3ZlcnZpZXcg YW5kIGNvdWxkIGdvIGZvciB3aGF0IHlvdQpzdWdnZXN0ZWQuCgotLUltcmUKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==