From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Try to shut up more ILK underruns Date: Wed, 23 Mar 2016 17:32:50 +0100 Message-ID: <20160323163250.GC2510@phenom.ffwll.local> References: <1458746975-11153-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x234.google.com (mail-wm0-x234.google.com [IPv6:2a00:1450:400c:c09::234]) by gabe.freedesktop.org (Postfix) with ESMTPS id 919676E8AA for ; Wed, 23 Mar 2016 16:29:59 +0000 (UTC) Received: by mail-wm0-x234.google.com with SMTP id l68so203563570wml.0 for ; Wed, 23 Mar 2016 09:29:59 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1458746975-11153-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMjMsIDIwMTYgYXQgMDU6Mjk6MzVQTSArMDIwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBUYWtlIGEgYmlnZ2VyIGhhbW1lciB0byB0aGUgdW5k ZXJydW4gc3VwcHJlc3Npb24gb24gSUxLLiBJbnN0ZWFkIG9mCj4gdHJ5aW5nIHRvIHN1cHByZXNz IHRoZW0gYXQgc3BlY2lmaWMgcG9pbnRzIGluIHRoZSBtb2Rlc2V0IHNlcXVlbmNlIGp1c3QKPiBz aWxlbmNlIHRoZW0gYWNyb3NzIHRoZSBlbnRpcmUgc2VxdWVuY2UuIFRoaXMgZ2V0cyByaWQgb2Yg c29tZSB1bmRlcnJ1bnMKPiBhdCBsZWFzdCBvbiBteSBJTEsuIE5vdGUgdGhhdCB0aGlzIGNoYW5n ZXMgU05CIGFuZCBJVkIgdG8gZm9sbG93IHRoZQo+IHNhbWUgYXBwcm9hY2gganVzdCB0byBrZWVw IHRoZSBjb2RlIGxlc3MgY29udm9sdXRlZC4gVGhlIGRpZmZlcmVuY2UgaXMKPiB0aGF0IG9uIHRo b3NlIHBsYXRmb3JtcyB3ZSB3b24ndCBzdXBwcmVzcyBDUFUgdW5kZXJydW5zIGZvciBwb3J0IEEg c2luY2UKPiBpdCBkb2Vzbid0IHNlZW0gdG8gYmUgbmVjZXNzYXJ5Lgo+IAo+IE15IElMSyBoYXMg cG9ydCBBIGVEUCBhbmQgdHdvIFBDSCBIRE1JIHBvcnRzLCBzbyBJIGNhbid0IGJlIHN1cmUgdGhp cyBpcwo+IGFzIGVmZmVjdGl2ZSBvbiBvdGhlciBQQ0ggcG9ydCB0eXBlcy4gUGVyaGFwcyB3ZSBz dGlsbCBuZWVkIHNvbWUgb2YKPiBEYW5pZWwncyBleHRyYSB2Ymxhbmsgd2FpdHMgWzJdPwo+IAo+ IEkndmUgc3RpbGwgYmVlbiBhYmxlIHRvIHRyaWdnZXIgYW4gdW5kZXJydW4gb24gdGhlIG90aGVy IHBpcGUsIGJ1dAo+IGZpeGluZyB0aGF0IHBlcmhhcHMgbmVlZHMgdGhlIExQMSsgZGlzYWJsZSB0 cmljayBJIGltcGxlbWVudGVkIGhlcmUgWzFdCj4gd2hpY2ggbmV2ZXIgZ290IG1lcmdlZC4KPiAK PiBBIGZldyBkZXRhaWxzIHdoaWNoIGhhbXBlciBzdHJlc3MgdGVzdGluZyBvbiBteSBJTEsgYXJl IHRoYXQgc29tZXRpbWVzCj4gdGhlIFBDSCB0cmFuc2NvZGVyIGdldHMgbWVzc2VkIHVwIGFuZCBy ZWZ1c2VzIHRvIHNodXQgZG93biwgYW5kIHNvbWV0aW1lcwo+IGV2ZW4gdGhlIHBhbmVsIHBvd2Vy IHNlcXVlbmNlciBhcHBhcmVudGx5IGdldHMgc3R1Y2sgb24gdGhlIGFsd2F5cyBvbgo+IHBvc2l0 aW9uLgo+IAo+IFsxXSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pbnRl bC1nZngvMjAxNC1NYXJjaC8wNDEzMTcuaHRtbAo+IFsyXSBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9hcmNoaXZlcy9pbnRlbC1nZngvMjAxNi1KYW51YXJ5LzA4NjM5Ny5odG1sCj4gCj4g Q2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gU2lnbmVkLW9mZi1i eTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFncmVl ZCB0aGlzIHNlZW1zIHNlbnNpYmxlIC0gdHJ5aW5nIHRvIG1ha2UgaXQgYWxsIHdvcmsgaW4gdGhl IGRpZmZlcmVudApjYXNlcyBsb29rcyBsaWtlIHdhc3RlZCBlZmZvcnQgZ2l2ZW4gdGhhdCB3ZSBk b24ndCBwbGFuIHRvIGV2ZXIgdG91Y2ggdGhpcwpjb2RlIGFnYWluLiBGb3Igdmx2IGFuZCBkZWZp bml0ZWx5IGZvciBkZGkgcGxhdGZvcm1zIHdlIHNob3VsZCB0YWtlIGEgbW9yZQptZWFzdXJlIGFw cHJvYWNoIHByb2JhYmx5LCB0byBub3QgcmVkdWNlIHRlc3QgY292ZXJhZ2UgdG9vIG11Y2guCgpS ZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCldydCB0 aGUgcmVtYWluaW5nIHVuZGVycnVuJ3MgeW91cmUgc2VlaW5nOiBJJ2Qgc2F5IGxldCdzIG1lcmdl IHRoaXMgZmlyc3QsCnRoZW4gZmlndXJlIG91dCBob3cgbXVjaCBpbGsgdW5kZXJydW5zIGFyZSBz dGlsbCBsZWZ0LiBBYnNvbHV0ZWx5IHdvcnN0CmNhc2Ugd2UganVzdCBoYXZlIHRvIHNodXQgdGhl bSBvZmYgY29tcGxldGVseSBhbmQgdHVuZSBkb3duIHRvIGRlYnVnCmxldmVsLgotRGFuaWVsCgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA0NCArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyAgICAgIHwgMTIgLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDIyIGluc2Vy dGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiBpbmRleCA0NzMzMmExNjRmY2IuLjQ0ZmIzYmE0Yzc5NSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDEyOCwxMiArNDEyOCw2IEBAIHN0YXRpYyB2 b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJSTkxNV9X UklURShGRElfUlhfVFVTSVpFMShwaXBlKSwKPiAgCQkgICBJOTE1X1JFQUQoUElQRV9EQVRBX00x KHBpcGUpKSAmIFRVX1NJWkVfTUFTSyk7Cj4gIAo+IC0JLyoKPiAtCSAqIFNvbWV0aW1lcyBzcHVy aW91cyBDUFUgcGlwZSB1bmRlcnJ1bnMgaGFwcGVuIGR1cmluZyBGREkKPiAtCSAqIHRyYWluaW5n LCBhdCBsZWFzdCB3aXRoIFZHQStIRE1JIGNsb25pbmcuIFN1cHByZXNzIHRoZW0uCj4gLQkgKi8K PiAtCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUs IGZhbHNlKTsKPiAtCj4gIAkvKiBGb3IgUENIIG91dHB1dCwgdHJhaW5pbmcgRkRJIGxpbmsgKi8K PiAgCWRldl9wcml2LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluKGNydGMpOwo+ICAKPiBAQCAtNDE2 OCw4ICs0MTYyLDYgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGNoX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCj4gIAo+ICAJaW50ZWxfZmRpX25vcm1hbF90cmFpbihjcnRjKTsKPiAgCj4g LQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCB0 cnVlKTsKPiAtCj4gIAkvKiBGb3IgUENIIERQLCBlbmFibGUgVFJBTlNfRFBfQ1RMICovCj4gIAlp ZiAoSEFTX1BDSF9DUFQoZGV2KSAmJiBpbnRlbF9jcnRjLT5jb25maWctPmhhc19kcF9lbmNvZGVy KSB7Cj4gIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ IEBAIC00NzY3LDYgKzQ3NTksMTcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJaWYgKFdBUk5fT04oaW50ZWxfY3J0Yy0+YWN0aXZl KSkKPiAgCQlyZXR1cm47Cj4gIAo+ICsJLyoKPiArCSAqIFNvbWV0aW1lcyBzcHVyaW91cyBDUFUg cGlwZSB1bmRlcnJ1bnMgaGFwcGVuIGR1cmluZyBGREkKPiArCSAqIHRyYWluaW5nLCBhdCBsZWFz dCB3aXRoIFZHQStIRE1JIGNsb25pbmcuIFN1cHByZXNzIHRoZW0uCj4gKwkgKgo+ICsJICogT24g SUxLIHdlIGdldCBhbiBvY2Nhc2lvbmFsIHNwdXJpb3VzIENQVSBwaXBlIHVuZGVycnVucwo+ICsJ ICogYmV0d2VlbiBlRFAgcG9ydCBBIGVuYWJsZSBhbmQgdmRkIGVuYWJsZS4KPiArCSAqCj4gKwkg KiBTcHVyaW91cyBQQ0ggdW5kZXJydW5zIGFsc28gb2NjdXIgZHVyaW5nIFBDSCBlbmFibGluZy4K PiArCSAqLwo+ICsJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyIHx8IElT X0dFTjUoZGV2X3ByaXYpKQo+ICsJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRp bmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKPiAgCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhh c19wY2hfZW5jb2RlcikKPiAgCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5n KGRldl9wcml2LCBwaXBlLCBmYWxzZSk7Cj4gIAo+IEBAIC00Nzg4LDggKzQ3OTEsNiBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAo+ ICAJaW50ZWxfY3J0Yy0+YWN0aXZlID0gdHJ1ZTsKPiAgCj4gLQlpbnRlbF9zZXRfY3B1X2ZpZm9f dW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCB0cnVlKTsKPiAtCj4gIAlmb3JfZWFj aF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQo+ICAJCWlmIChlbmNvZGVyLT5w cmVfZW5hYmxlKQo+ICAJCQllbmNvZGVyLT5wcmVfZW5hYmxlKGVuY29kZXIpOwo+IEBAIC00ODMx LDYgKzQ4MzIsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCj4gIAkvKiBNdXN0IHdhaXQgZm9yIHZibGFuayB0byBhdm9pZCBzcHVyaW91 cyBQQ0ggRklGTyB1bmRlcnJ1bnMgKi8KPiAgCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19w Y2hfZW5jb2RlcikKPiAgCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBwaXBlKTsKPiArCWlu dGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUp Owo+ICAJaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGlw ZSwgdHJ1ZSk7Cj4gIH0KPiAgCj4gQEAgLTQ5ODMsOCArNDk4NSwxNSBAQCBzdGF0aWMgdm9pZCBp cm9ubGFrZV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4g IAo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKQo+ICsJLyoKPiAr CSAqIFNvbWV0aW1lcyBzcHVyaW91cyBDUFUgcGlwZSB1bmRlcnJ1bnMgaGFwcGVuIHdoZW4gdGhl Cj4gKwkgKiBwaXBlIGlzIGFscmVhZHkgZGlzYWJsZWQsIGJ1dCBGREkgUlgvVFggaXMgc3RpbGwg ZW5hYmxlZC4KPiArCSAqIEhhcHBlbnMgYXQgbGVhc3Qgd2l0aCBWR0ErSERNSSBjbG9uaW5nLiBT dXBwcmVzcyB0aGVtLgo+ICsJICovCj4gKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNo X2VuY29kZXIpIHsKPiArCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRl dl9wcml2LCBwaXBlLCBmYWxzZSk7Cj4gIAkJaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3Jl cG9ydGluZyhkZXZfcHJpdiwgcGlwZSwgZmFsc2UpOwo+ICsJfQo+ICAKPiAgCWZvcl9lYWNoX2Vu Y29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCj4gIAkJZW5jb2Rlci0+ZGlzYWJsZShl bmNvZGVyKTsKPiBAQCAtNDk5MiwyMiArNTAwMSwxMiBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9j cnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJZHJtX2NydGNfdmJsYW5rX29m ZihjcnRjKTsKPiAgCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7Cj4gIAo+IC0JLyoKPiAt CSAqIFNvbWV0aW1lcyBzcHVyaW91cyBDUFUgcGlwZSB1bmRlcnJ1bnMgaGFwcGVuIHdoZW4gdGhl Cj4gLQkgKiBwaXBlIGlzIGFscmVhZHkgZGlzYWJsZWQsIGJ1dCBGREkgUlgvVFggaXMgc3RpbGwg ZW5hYmxlZC4KPiAtCSAqIEhhcHBlbnMgYXQgbGVhc3Qgd2l0aCBWR0ErSERNSSBjbG9uaW5nLiBT dXBwcmVzcyB0aGVtLgo+IC0JICovCj4gLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNo X2VuY29kZXIpCj4gLQkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZf cHJpdiwgcGlwZSwgZmFsc2UpOwo+IC0KPiAgCWludGVsX2Rpc2FibGVfcGlwZShpbnRlbF9jcnRj KTsKPiAgCj4gIAlpcm9ubGFrZV9wZml0X2Rpc2FibGUoaW50ZWxfY3J0YywgZmFsc2UpOwo+ICAK PiAtCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19wY2hfZW5jb2Rlcikgewo+ICsJaWYgKGlu dGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKQo+ICAJCWlyb25sYWtlX2ZkaV9kaXNh YmxlKGNydGMpOwo+IC0JCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2 X3ByaXYsIHBpcGUsIHRydWUpOwo+IC0JfQo+ICAKPiAgCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0 YyhkZXYsIGNydGMsIGVuY29kZXIpCj4gIAkJaWYgKGVuY29kZXItPnBvc3RfZGlzYWJsZSkKPiBA QCAtNTAzNyw2ICs1MDM2LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQlpcm9ubGFrZV9mZGlfcGxsX2Rpc2FibGUoaW50ZWxf Y3J0Yyk7Cj4gIAl9Cj4gIAo+ICsJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGlu ZyhkZXZfcHJpdiwgcGlwZSwgdHJ1ZSk7Cj4gIAlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5f cmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCB0cnVlKTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiBpbmRleCAzZmY4ZjFkNjc1OTQuLmRkODc5M2ZmMzcyMCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0yNjQwLDE1ICsyNjQwLDYgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJaWYgKElTX1ZB TExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCj4gIAkJdmx2X2luaXRfcGFuZWxf cG93ZXJfc2VxdWVuY2VyKGludGVsX2RwKTsKPiAgCj4gLQkvKgo+IC0JICogV2UgZ2V0IGFuIG9j Y2FzaW9uYWwgc3B1cmlvdXMgdW5kZXJydW4gYmV0d2VlbiB0aGUgcG9ydAo+IC0JICogZW5hYmxl IGFuZCB2ZGQgZW5hYmxlLCB3aGVuIGVuYWJsaW5nIHBvcnQgQSBlRFAuCj4gLQkgKgo+IC0JICog RklYTUU6IE5vdCBzdXJlIGlmIHRoaXMgYXBwbGllcyB0byAoUENIKSBwb3J0IEQgZURQIGFzIHdl bGwKPiAtCSAqLwo+IC0JaWYgKHBvcnQgPT0gUE9SVF9BKQo+IC0JCWludGVsX3NldF9jcHVfZmlm b191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKPiAtCj4gIAlpbnRl bF9kcF9lbmFibGVfcG9ydChpbnRlbF9kcCk7Cj4gIAo+ICAJaWYgKHBvcnQgPT0gUE9SVF9BICYm IElTX0dFTjUoZGV2X3ByaXYpKSB7Cj4gQEAgLTI2NjYsOSArMjY1Nyw2IEBAIHN0YXRpYyB2b2lk IGludGVsX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCWVkcF9w YW5lbF9vbihpbnRlbF9kcCk7Cj4gIAllZHBfcGFuZWxfdmRkX29mZihpbnRlbF9kcCwgdHJ1ZSk7 Cj4gIAo+IC0JaWYgKHBvcnQgPT0gUE9SVF9BKQo+IC0JCWludGVsX3NldF9jcHVfZmlmb191bmRl cnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwo+IC0KPiAgCXBwc191bmxvY2so aW50ZWxfZHApOwo+ICAKPiAgCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklF VyhkZXYpKSB7Cj4gLS0gCj4gMi43LjQKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK