From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH] drm/i915: Simplify has_sagv Date: Mon, 22 Oct 2018 17:32:27 -0700 Message-ID: <1540254747.2734.62.camel@intel.com> References: <874ldeh4vi.fsf@intel.com> <20181022165744.11788-1-rodrigo.vivi@intel.com> <1540252130.2734.44.camel@intel.com> <20181023000611.GF5342@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9E43D6E024 for ; Tue, 23 Oct 2018 00:32:28 +0000 (UTC) In-Reply-To: <20181023000611.GF5342@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: Jani Nikula , intel-gfx@lists.freedesktop.org, Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org RW0gU2VnLCAyMDE4LTEwLTIyIMOgcyAxNzowNiAtMDcwMCwgUm9kcmlnbyBWaXZpIGVzY3JldmV1 Ogo+IE9uIE1vbiwgT2N0IDIyLCAyMDE4IGF0IDA0OjQ4OjUwUE0gLTA3MDAsIFBhdWxvIFphbm9u aSB3cm90ZToKPiA+IEVtIFNlZywgMjAxOC0xMC0yMiDDoHMgMDk6NTcgLTA3MDAsIFJvZHJpZ28g Vml2aSBlc2NyZXZldToKPiA+ID4gTGV0J3MgYWRkIGEgcGxhdGZvcm0gaGFzX3NhZ3YgaW5zdGVh ZCBvZiBoYXZpbmcgYSBmdWxsCj4gPiA+IGZ1bmN0aW9uIHRoYXQgaGFuZGxlIHBsYXRmb3JtIGJ5 IHBsYXRmb3JtLgo+ID4gPiAKPiA+ID4gVGhlIHNwZWNpYWxseSBjYXNlIGZvciBTS0wgZm9yIG5v dCBjb250cm9sbGVkIHNhZ3YKPiA+ID4gaXMgYWxyZWFkeSB0YWtlbiBjYXJlIGluc2lkZSBpbnRl bF9lbmFibGVfc2Fndiwgc28gdGhlcmUncwo+ID4gPiBubyBuZWVkIHRvIGR1cGxpY2F0ZSB0aGUg Y2hlY2sgaGVyZS4KPiA+ID4gCj4gPiA+IHYyOiBHbyBvbmUgc3RlcCBmdXJ0aGVyIGFuZCByZW1v dmUgc2tsIHNwZWNpYWwgY2FzZS4gKEphbmkpCj4gPiA+IAo+ID4gPiB2MzogU2VwYXJhdGUgcnVu dGltZSBzdGF0dXMgaGFuZGxlIGZyb20gaGFzX3NhZ3YgZmxhZy4gKEphbmkpCj4gPiAKPiA+IEkg a25vdyB0aGlzIGhhcyBwcm9iYWJseSBiZWVuIGRpc2N1c3NlZCBpbiB0aGUgcGFzdCBhbmQgSSBt aXNzZWQgaXQKPiA+IChzaW5jZSBJIGtub3cgdGhpcyB3YXMgZG9uZSBhIGZldyB0aW1lcyBmb3Ig b3RoZXIgdGhpbmdzKSwgYnV0Cj4gPiBob3cvd2h5Cj4gPiBpcyB0aGlzIGFwcHJvYWNoIGJldHRl ciB0aGFuIHRoZSBjdXJyZW50IG9uZT8gQ2FuIHlvdSBwbGVhc2Ugd3JpdGUKPiA+IGl0Cj4gPiBp biB0aGUgY29tbWl0IG1lc3NhZ2U/Cj4gCj4gbXkgYmFkLi4uIGFmdGVyIHN0cmlwcGluZyB0aGlz IG91dCBvZiBteSBSRkMgc2VyaWVzIHRoaXMgZ290Cj4gaW5kZWVkIG91dCBvZiBjb250ZXh0Lgo+ IAo+IEknbSB0cnlpbmcgdG8gZ2V0IHJpZCBvZiBtYW55IHBsYXRmb3JtIGNvZGVuYW1lIGNoZWNr cyBzcHJlYWQKPiBhcm91bmQgdGhlIGNvZGUuCj4gCj4gSSBiZWxpZXZlIHdlIHNob3VsZCBkbyBt b3N0IG9mIHRoZSBkZWNpc2lvbnMgYmFzZWQgb24gZGlzcGxheV9nZW4KPiBvciBoYXNfZmVhdHVy ZS4gQW5kIHVzZSB0aGUgcGxhdGZvcm0gY29kZW5hbWUgYXMgdGhlIGxhc3QgcmVzb3VyY2UKPiBv bmx5IHdoZW4gZ2VuIG9yIGZlYXR1cmUgY2Fubm90IGRlc2NyaWJlIHRoaW5ncyBiZXR0ZXIuCgpJ biB0ZXJtcyBvZiAiZGVzY3JpYmluZyB0aGluZ3MgYmV0dGVyIiwgSSBkb24ndCBzZWUgYSBsb3Qg b2YgZGlmZmVyZW5jZQpiZXR3ZWVuIEhBU19TT01FVEhJTkcoKSBhbmQgaW50ZWxfaGFzX3NvbWV0 aGluZygpLiBUaGUKaW50ZWxfaGFzX3NvbWV0aGluZygpIHZlcnNpb24gZXZlbiBhbHJlYWR5IGdp dmVzIHVzIGEgc2lnbmFsIHRoYXQgbWF5YmUKdGhlIGRlY2lzaW9uIGlzIG1hZGUgYmFzZWQgb24g cnVudGltZSBpbmZvcm1hdGlvbiBpbnN0ZWFkIG9mIGJlaW5nCnNpbXBseSBwZXItcGxhdGZvcm0s IHdoaWNoIGlzIHRoaXMgY2FzZS4KCj4gCj4gPiBRdWlja2x5IGNoZWNraW5nIHRoZSBpbXBsZW1l bnRhdGlvbiBvZiBpbnRlbF9oYXNfc2FndigpIHNlZW1zIG11Y2gKPiA+IGVhc2llciB0aGFuIHN3 aW1taW5nIHRocm91Z2ggdGhlIG5lc3RlZCBtYWNyb3Mgb2YgaTkxNV9wY2kuYy4gQW5kCj4gPiB0 aGUgCj4gPiBzcGVjaWFsLWNhc2VuZXNzIG9mIHRoZSBOT1RfQ09OVFJPTExFRCBjYXNlIGJlaW5n IHJlc3RyaWN0ZWQgdG8KPiA+IGdlbjkgaW4KPiA+IHRoZSBjdXJyZW50IChub24tcGF0Y2hlZCkg Y29kZSBhbHNvIGF0IGZpcnN0IGFwcGVhcnMgdG8gYmUgYmV0dGVyCj4gPiB0aGFuCj4gPiB0aGlz IHByb3Bvc2FsLiBCdXQgSSdtIHRvdGFsbHkgd2lsbGluZyB0byByZWFkIHlvdXIgYXJndW1lbnRz IGFuZAo+ID4gcmVldmFsdWF0ZSBteSBkZWNpc2lvbnMgYmFzZWQgb24gdGhlbSwgc28gcGxlYXNl IHByZXNlbnQgdGhlbS4KPiAKPiBXaGVuIHlvdSBhcmUgbG9va2luZyBvbmx5IHRvIGEgc2luZ2xl IGZlYXR1cmUgdGhpcyBtaWdodCBiZSB0cnVlLgo+IFdoZW4geW91IGFyZSBsb29raW5nIHRvIHRo ZSBwbGF0Zm9ybSBpdHNlbGYgY29uc29saWRhdGluZyB0aGUKPiBmZWF0dXJlcwo+IGRlZmluaXRp b25zIGluIGEgc2luZ2xlIHBsYWNlIGlzIGVhc2llciB0byBjaGVjayBsZWdhY3kgZmVhdHVyZXMg YW5kCj4gYWRkIG5ldyBwbGF0Zm9ybXMuCgpTbyBwbGVhc2UgbWFrZSBzdXJlIHRoaXMgaXMgaW4g dGhlIGNvbW1pdCBtZXNzYWdlLiBJIG1heSBvciBtYXkgbm90CmFncmVlIHRoaXMgaXMgdGhlIGJl c3Qgd2F5IHRvIHByb2NlZWQsIGJ1dCBhdCBsZWFzdCBub3cgSSBjYW4ga25vdyB3aHkKaXQgaXMg dGhlIHdheSBpdCBpcyB3aGVuIEkgZ2l0LWJsYW1lL2dpdC1sb2cuCgoKPiAKPiBTcGVjaWFsbHkg SSdkIGxpa2UgdG8gYWRkIGEgbmV3IHBsYXRmb3JtIGdlbiBsaW5lIGdlbisrIHdpdGhvdXQKPiBu ZWVkIHRvIHVzZSBhbnkgY29kZW5hbWUuIE9yIHdpdGhvdXQgbWl4aW5nIHRoaW5ncyB1cC4KPiBJ TlRFTF9HRU4gPj0gMTEgfHwgSVNfQ0FOTk9OTEFLRSA6LwoKWW91IGNhbiBhY2hpZXZlIHRoaXMg YnkgcmVkZWZpbmluZyBpbnRlbF9oYXNfc2FndigpIGluc3RlYWQgb2Yga2lsbGluZwppdC4gQ3Vy cmVudGx5LCBvdXIgY29kZSBhc3N1bWVzIG5ldyBwbGF0Zm9ybXMgd29uJ3Qgc3VwcG9ydCBzYWd2 LCBidXQKdGhhdCBzZWVtcyB1bmxpa2VseSBjb25zaWRlcmluZyB0aGUgcmVjZW50IGhpc3Rvcnku IEp1c3QgaW52ZXJ0IGl0OgoKaGFzX3NhZ3YoKSB7CglpZiAoaXNfZ2VuOV9scCB8fCBpbnRlbF9n ZW4gPCA5KQoJCXJldHVybiBmYWxzZTsKCglpZiAoIWlzX3NrbCkKCQlyZXR1cm4gdHJ1ZTsKCgly ZXR1cm4gKHN0YXR1cyAhPSBjb250cm9sbGVkKQp9CgoKTm90ZTogSSdtIG5vdCBibG9ja2luZyB0 aGlzIHBhdGNoLgoKPiAKPiBTbyBhZGRpbmcgZ2VuX24rMSBzaG91bGQgYmUgYXMgdHJpdmlhbAo+ IGFzIGdlbl9uICsgMSBsZWdhY3kuLi4KPiAKPiA+IAo+ID4gPiAKPiA+ID4gQ2M6IEphbmkgTmlr dWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gPiA+IENjOiBMdWNhcyBEZSBNYXJjaGkgPGx1 Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZp IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgfCAgMSArCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BjaS5jICAgICAgICAgIHwgIDEgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGV2aWNlX2luZm8uaCB8ICAxICsKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgICAgICAgICAgfCAyOSArKysrKysrKy0tLS0tLS0tCj4gPiA+IC0tLS0KPiA+ ID4gLS0tLQo+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxOSBkZWxl dGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBp bmRleCAzMDE3ZWYwMzdmZWQuLjliOThjZWIyZDAyOSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gPiA+IEBAIC0yNjUwLDYgKzI2NTAsNyBAQCBpbnRlbF9pbmZvKGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ICpkZXZfcHJpdikKPiA+ID4gICNkZWZpbmUg SEFTX0RESShkZXZfcHJpdikJCSAoKGRldl9wcml2KS0KPiA+ID4gPmluZm8uaGFzX2RkaSkKPiA+ ID4gICNkZWZpbmUgSEFTX0ZQR0FfREJHX1VOQ0xBSU1FRChkZXZfcHJpdikgKChkZXZfcHJpdikt Cj4gPiA+ID4gaW5mby5oYXNfZnBnYV9kYmcpCj4gPiA+IAo+ID4gPiAgI2RlZmluZSBIQVNfUFNS KGRldl9wcml2KQkJICgoZGV2X3ByaXYpLQo+ID4gPiA+aW5mby5oYXNfcHNyKQo+ID4gPiArI2Rl ZmluZSBIQVNfU0FHVihkZXZfcHJpdikJCSAoKGRldl9wcml2KS0KPiA+ID4gPiBpbmZvLmhhc19z YWd2KQo+ID4gPiAKPiA+ID4gIAo+ID4gPiAgI2RlZmluZSBIQVNfUkM2KGRldl9wcml2KQkJICgo ZGV2X3ByaXYpLQo+ID4gPiA+aW5mby5oYXNfcmM2KQo+ID4gPiAgI2RlZmluZSBIQVNfUkM2cChk ZXZfcHJpdikJCSAoKGRldl9wcml2KS0KPiA+ID4gPiBpbmZvLmhhc19yYzZwKQo+ID4gPiAKPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiA+ID4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gPiA+IGluZGV4IDQ0ZTc0NTkyMWFjMS4u MGIwOTE1NWVhYjYyIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BjaS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiA+ID4g QEAgLTQ2NSw2ICs0NjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZv Cj4gPiA+IGludGVsX2NoZXJyeXZpZXdfaW5mbyA9IHsKPiA+ID4gIAkuaGFzX2NzciA9IDEsIFwK PiA+ID4gIAkuaGFzX2d1YyA9IDEsIFwKPiA+ID4gIAkuaGFzX2lwYyA9IDEsIFwKPiA+ID4gKwku aGFzX3NhZ3YgPSAxLCBcCj4gPiA+ICAJLmRkYl9zaXplID0gODk2Cj4gPiA+ICAKPiA+ID4gICNk ZWZpbmUgU0tMX1BMQVRGT1JNIFwKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5oCj4gPiA+IGluZGV4IGFmNzAwMjY0MGNkZi4uZTc3YzhiNjI3ODNmIDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5o Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiA+ ID4gQEAgLTExNyw2ICsxMTcsNyBAQCBlbnVtIGludGVsX3BwZ3R0IHsKPiA+ID4gIAlmdW5jKGh3 c19uZWVkc19waHlzaWNhbCk7IFwKPiA+ID4gIAlmdW5jKG92ZXJsYXlfbmVlZHNfcGh5c2ljYWwp OyBcCj4gPiA+ICAJZnVuYyhzdXBwb3J0c190dik7IFwKPiA+ID4gKwlmdW5jKGhhc19zYWd2KTsg XAo+ID4gPiAgCWZ1bmMoaGFzX2lwYyk7Cj4gPiA+ICAKPiA+ID4gICNkZWZpbmUgR0VOX01BWF9T TElDRVMJCSg2KSAvKiBDTkwgdXBwZXIgYm91bmQgKi8KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCj4gPiA+IGluZGV4IDY3YTRkMDczNTI5MS4uN2UzOGVkODQyMWM3IDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gQEAgLTM2MDksMjAgKzM2MDksNiBA QCBzdGF0aWMgYm9vbCBza2xfbmVlZHNfbWVtb3J5X2J3X3dhKHN0cnVjdAo+ID4gPiBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiAgCXJldHVybiBmYWxzZTsKPiA+ID4gIH0KPiA+ID4g IAo+ID4gPiAtc3RhdGljIGJvb2wKPiA+ID4gLWludGVsX2hhc19zYWd2KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gLXsKPiA+ID4gLQlpZiAoSVNfS0FCWUxBS0UoZGV2 X3ByaXYpIHx8IElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpIHx8Cj4gPiA+IC0JICAgIElTX0NBTk5P TkxBS0UoZGV2X3ByaXYpIHx8IElTX0lDRUxBS0UoZGV2X3ByaXYpKQo+ID4gPiAtCQlyZXR1cm4g dHJ1ZTsKPiA+ID4gLQo+ID4gPiAtCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSAmJgo+ID4gPiAt CSAgICBkZXZfcHJpdi0+c2Fndl9zdGF0dXMgIT0gSTkxNV9TQUdWX05PVF9DT05UUk9MTEVEKQo+ ID4gPiAtCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gLQo+ID4gPiAtCXJldHVybiBmYWxzZTsKPiA+ID4g LX0KPiA+ID4gLQo+ID4gPiAgLyoKPiA+ID4gICAqIFNBR1YgZHluYW1pY2FsbHkgYWRqdXN0cyB0 aGUgc3lzdGVtIGFnZW50IHZvbHRhZ2UgYW5kIGNsb2NrCj4gPiA+IGZyZXF1ZW5jaWVzCj4gPiA+ ICAgKiBkZXBlbmRpbmcgb24gcG93ZXIgYW5kIHBlcmZvcm1hbmNlIHJlcXVpcmVtZW50cy4gVGhl IGRpc3BsYXkKPiA+ID4gZW5naW5lIGFjY2Vzcwo+ID4gPiBAQCAtMzYzOSwxMCArMzYyNSwxMSBA QCBpbnRlbF9lbmFibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3By aXYpCj4gPiA+ICB7Cj4gPiA+ICAJaW50IHJldDsKPiA+ID4gIAo+ID4gPiAtCWlmICghaW50ZWxf aGFzX3NhZ3YoZGV2X3ByaXYpKQo+ID4gPiArCWlmICghSEFTX1NBR1YoZGV2X3ByaXYpKQo+ID4g PiAgCQlyZXR1cm4gMDsKPiA+ID4gIAo+ID4gPiAtCWlmIChkZXZfcHJpdi0+c2Fndl9zdGF0dXMg PT0gSTkxNV9TQUdWX0VOQUJMRUQpCj4gPiA+ICsJaWYgKGRldl9wcml2LT5zYWd2X3N0YXR1cyA9 PSBJOTE1X1NBR1ZfRU5BQkxFRCB8fAo+ID4gPiArCSAgICBkZXZfcHJpdi0+c2Fndl9zdGF0dXMg PT0gSTkxNV9TQUdWX05PVF9DT05UUk9MTEVEKQo+ID4gPiAgCQlyZXR1cm4gMDsKPiA+ID4gIAo+ ID4gPiAgCURSTV9ERUJVR19LTVMoIkVuYWJsaW5nIHRoZSBTQUdWXG4iKTsKPiA+ID4gQEAgLTM2 NzYsMTAgKzM2NjMsMTEgQEAgaW50ZWxfZGlzYWJsZV9zYWd2KHN0cnVjdAo+ID4gPiBkcm1faTkx NV9wcml2YXRlCj4gPiA+ICpkZXZfcHJpdikKPiA+ID4gIHsKPiA+ID4gIAlpbnQgcmV0Owo+ID4g PiAgCj4gPiA+IC0JaWYgKCFpbnRlbF9oYXNfc2FndihkZXZfcHJpdikpCj4gPiA+ICsJaWYgKCFI QVNfU0FHVihkZXZfcHJpdikpCj4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiAgCj4gPiA+IC0JaWYg KGRldl9wcml2LT5zYWd2X3N0YXR1cyA9PSBJOTE1X1NBR1ZfRElTQUJMRUQpCj4gPiA+ICsJaWYg KGRldl9wcml2LT5zYWd2X3N0YXR1cyA9PSBJOTE1X1NBR1ZfRElTQUJMRUQgfHwKPiA+ID4gKwkg ICAgZGV2X3ByaXYtPnNhZ3Zfc3RhdHVzID09IEk5MTVfU0FHVl9OT1RfQ09OVFJPTExFRCkKPiA+ ID4gIAkJcmV0dXJuIDA7Cj4gPiA+ICAKPiA+ID4gIAlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcg dGhlIFNBR1ZcbiIpOwo+ID4gPiBAQCAtMzcyMSw3ICszNzA5LDEwIEBAIGJvb2wgaW50ZWxfY2Fu X2VuYWJsZV9zYWd2KHN0cnVjdAo+ID4gPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4g IAlpbnQgbGV2ZWwsIGxhdGVuY3k7Cj4gPiA+ICAJaW50IHNhZ3ZfYmxvY2tfdGltZV91czsKPiA+ ID4gIAo+ID4gPiAtCWlmICghaW50ZWxfaGFzX3NhZ3YoZGV2X3ByaXYpKQo+ID4gPiArCWlmICgh SEFTX1NBR1YoZGV2X3ByaXYpKQo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsKPiA+ID4g KwlpZiAoZGV2X3ByaXYtPnNhZ3Zfc3RhdHVzID09IEk5MTVfU0FHVl9OT1RfQ09OVFJPTExFRCkK PiA+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gPiAgCj4gPiA+ICAJaWYgKElTX0dFTjkoZGV2X3By aXYpKQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK