From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nathan Chancellor Subject: Re: [CI,5/5] drm/i915: Expand subslice mask Date: Wed, 29 May 2019 00:58:36 -0700 Message-ID: <20190529075836.GA62087@archlinux-epyc> References: <20190524154022.13575-6-stuart.summers@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD9696E288 for ; Wed, 29 May 2019 07:58:40 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id g13so2301272edu.5 for ; Wed, 29 May 2019 00:58:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190524154022.13575-6-stuart.summers@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Stuart Summers Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGkgU3R1YXJ0LAoKT24gRnJpLCBNYXkgMjQsIDIwMTkgYXQgMDg6NDA6MjJBTSAtMDcwMCwgU3R1 YXJ0IFN1bW1lcnMgd3JvdGU6Cj4gQ3VycmVudGx5LCB0aGUgc3Vic2xpY2VfbWFzayBydW50aW1l IHBhcmFtZXRlciBpcyBzdG9yZWQgYXMgYW4KPiBhcnJheSBvZiBzdWJzbGljZXMgcGVyIHNsaWNl LiBFeHBhbmQgdGhlIHN1YnNsaWNlIG1hc2sgYXJyYXkgdG8KPiBiZXR0ZXIgbWF0Y2ggd2hhdCBp cyBwcmVzZW50ZWQgdG8gdXNlcnNwYWNlIHRocm91Z2ggdGhlCj4gSTkxNV9RVUVSWV9UT1BPTE9H WV9JTkZPIGlvY3RsLiBUaGUgaW5kZXggaW50byB0aGlzIGFycmF5IGlzCj4gdGhlbiBjYWxjdWxh dGVkOgo+ICAgc2xpY2UgKiBzdWJzbGljZSBzdHJpZGUgKyBzdWJzbGljZSBpbmRleCAvIDgKPiAK PiB2MjogZml4IHNwYWNpbmcgaW4gc2V0X3NzZXVfaW5mbyBhcmdzCj4gICAgIHVzZSBzZXRfc3Nl dV9pbmZvIHRvIGluaXRpYWxpemUgc3NldSBkYXRhIHdoZW4gYnVpbGRpbmcKPiAgICAgZGV2aWNl IHN0YXR1cyBpbiBkZWJ1Z2ZzCj4gICAgIHJlbmFtZSB2YXJpYWJsZXMgaW4gaW50ZWxfZW5naW5l X3R5cGVzLmggdG8gYXZvaWQgY2hlY2twYXRjaAo+ICAgICB3YXJuaW5ncwo+IHYzOiB1cGRhdGUg aGVhZGVycyBpbiBpbnRlbF9zc2V1LmgKPiB2NDogYWRkIGNvbnN0IHRvIHNvbWUgc3NldV9kZXZf aW5mbyB2YXJpYWJsZXMKPiAgICAgdXNlIHNzZXUtPmV1X3N0cmlkZSBmb3IgRVUgc3RyaWRlIGNh bGN1bGF0aW9ucwo+IHY1OiBhZGRyZXNzIHJldmlldyBjb21tZW50cyBmcm9tIFR2cnRrbyBhbmQg RGFuaWVsZQo+IHY2OiByZW1vdmUgZXh0cmEgc3BhY2UgaW4gaW50ZWxfc3NldV9nZXRfc3Vic2xp Y2VzCj4gICAgIHJldHVybiB0aGUgY29ycmVjdCBzdWJzbGljZSBlbmFibGUgaW4gZm9yX2VhY2hf aW5zdGRvbmUKPiAgICAgYWRkIEdFTV9CVUdfT04gdG8gZW5zdXJlIHVzZXIgZG9lc24ndCBwYXNz IGludmFsaWQgc3NfbWFzayBzaXplCj4gICAgIHVzZSBwcmludGsgZm9ybWF0dGVkIHN0cmluZyBm b3Igc3Vic2xpY2UgbWFzawo+IHY3OiByZW1vdmUgc3RyaW5nLmggaGVhZGVyIGFuZCByZWJhc2UK PiAKPiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGlu dGVsLmNvbT4KPiBDYzogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50 ZWwuY29tPgo+IEFja2VkLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxp bkBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmll bGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogU3R1YXJ0IFN1bW1l cnMgPHN0dWFydC5zdW1tZXJzQGludGVsLmNvbT4KPiAtLS0KCjxzbmlwPgoKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiBpbmRleCA5N2Y3NDI1MzBmYTEuLjM2MjVm Nzc3ZjNhMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2Vf aW5mby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+ IEBAIC05Miw5ICs5Miw5IEBAIHN0YXRpYyB2b2lkIHNzZXVfZHVtcChjb25zdCBzdHJ1Y3Qgc3Nl dV9kZXZfaW5mbyAqc3NldSwgc3RydWN0IGRybV9wcmludGVyICpwKQo+ICAJCSAgIGh3ZWlnaHQ4 KHNzZXUtPnNsaWNlX21hc2spLCBzc2V1LT5zbGljZV9tYXNrKTsKPiAgCWRybV9wcmludGYocCwg InN1YnNsaWNlIHRvdGFsOiAldVxuIiwgaW50ZWxfc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSk7 Cj4gIAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7Cj4gLQkJZHJtX3By aW50ZihwLCAic2xpY2UlZDogJXUgc3Vic2xpY2VzLCBtYXNrPSUwNHhcbiIsCj4gKwkJZHJtX3By aW50ZihwLCAic2xpY2UlZDogJXUgc3Vic2xpY2VzLCBtYXNrPSUwOHhcbiIsCj4gIAkJCSAgIHMs IGludGVsX3NzZXVfc3Vic2xpY2VzX3Blcl9zbGljZShzc2V1LCBzKSwKPiAtCQkJICAgc3NldS0+ c3Vic2xpY2VfbWFza1tzXSk7Cj4gKwkJCSAgIGludGVsX3NzZXVfZ2V0X3N1YnNsaWNlcyhzc2V1 LCBzKSk7Cj4gIAl9Cj4gIAlkcm1fcHJpbnRmKHAsICJFVSB0b3RhbDogJXVcbiIsIHNzZXUtPmV1 X3RvdGFsKTsKPiAgCWRybV9wcmludGYocCwgIkVVIHBlciBzdWJzbGljZTogJXVcbiIsIHNzZXUt PmV1X3Blcl9zdWJzbGljZSk7Cj4gQEAgLTExNywxMCArMTE3LDkgQEAgdm9pZCBpbnRlbF9kZXZp Y2VfaW5mb19kdW1wX3J1bnRpbWUoY29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5m bywKPiAgc3RhdGljIGludCBzc2V1X2V1X2lkeChjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAq c3NldSwgaW50IHNsaWNlLAo+ICAJCSAgICAgICBpbnQgc3Vic2xpY2UpCj4gIHsKPiAtCWludCBz dWJzbGljZV9zdHJpZGUgPSBHRU5fU1NFVV9TVFJJREUoc3NldS0+bWF4X2V1c19wZXJfc3Vic2xp Y2UpOwo+IC0JaW50IHNsaWNlX3N0cmlkZSA9IHNzZXUtPm1heF9zdWJzbGljZXMgKiBzdWJzbGlj ZV9zdHJpZGU7Cj4gKwlpbnQgc2xpY2Vfc3RyaWRlID0gc3NldS0+bWF4X3N1YnNsaWNlcyAqIHNz ZXUtPmV1X3N0cmlkZTsKPiAgCj4gLQlyZXR1cm4gc2xpY2UgKiBzbGljZV9zdHJpZGUgKyBzdWJz bGljZSAqIHN1YnNsaWNlX3N0cmlkZTsKPiArCXJldHVybiBzbGljZSAqIHNsaWNlX3N0cmlkZSAr IHN1YnNsaWNlICogc3NldS0+ZXVfc3RyaWRlOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdTE2IHNzZXVf Z2V0X2V1cyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgaW50IHNsaWNlLAo+IEBA IC0xMjksNyArMTI4LDcgQEAgc3RhdGljIHUxNiBzc2V1X2dldF9ldXMoY29uc3Qgc3RydWN0IHNz ZXVfZGV2X2luZm8gKnNzZXUsIGludCBzbGljZSwKPiAgCWludCBpLCBvZmZzZXQgPSBzc2V1X2V1 X2lkeChzc2V1LCBzbGljZSwgc3Vic2xpY2UpOwo+ICAJdTE2IGV1X21hc2sgPSAwOwo+ICAKPiAt CWZvciAoaSA9IDA7IGkgPCBHRU5fU1NFVV9TVFJJREUoc3NldS0+bWF4X2V1c19wZXJfc3Vic2xp Y2UpOyBpKyspIHsKPiArCWZvciAoaSA9IDA7IGkgPCBzc2V1LT5ldV9zdHJpZGU7IGkrKykgewo+ ICAJCWV1X21hc2sgfD0gKCh1MTYpc3NldS0+ZXVfbWFza1tvZmZzZXQgKyBpXSkgPDwKPiAgCQkJ KGkgKiBCSVRTX1BFUl9CWVRFKTsKPiAgCX0KPiBAQCAtMTQyLDcgKzE0MSw3IEBAIHN0YXRpYyB2 b2lkIHNzZXVfc2V0X2V1cyhzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgaW50IHNsaWNlLCBp bnQgc3Vic2xpY2UsCj4gIHsKPiAgCWludCBpLCBvZmZzZXQgPSBzc2V1X2V1X2lkeChzc2V1LCBz bGljZSwgc3Vic2xpY2UpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBHRU5fU1NFVV9TVFJJREUo c3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UpOyBpKyspIHsKPiArCWZvciAoaSA9IDA7IGkgPCBz c2V1LT5ldV9zdHJpZGU7IGkrKykgewo+ICAJCXNzZXUtPmV1X21hc2tbb2Zmc2V0ICsgaV0gPQo+ ICAJCQkoZXVfbWFzayA+PiAoQklUU19QRVJfQllURSAqIGkpKSAmIDB4ZmY7Cj4gIAl9Cj4gQEAg LTE1OSw5ICsxNTgsOSBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX2R1bXBfdG9wb2xvZ3koY29u c3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsCj4gIAl9Cj4gIAo+ICAJZm9yIChzID0gMDsg cyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewo+IC0JCWRybV9wcmludGYocCwgInNsaWNlJWQ6 ICV1IHN1YnNsaWNlKHMpICgweCVoaHgpOlxuIiwKPiArCQlkcm1fcHJpbnRmKHAsICJzbGljZSVk OiAldSBzdWJzbGljZShzKSAoMHglMDh4KTpcbiIsCj4gIAkJCSAgIHMsIGludGVsX3NzZXVfc3Vi c2xpY2VzX3Blcl9zbGljZShzc2V1LCBzKSwKPiAtCQkJICAgc3NldS0+c3Vic2xpY2VfbWFza1tz XSk7Cj4gKwkJCSAgIGludGVsX3NzZXVfZ2V0X3N1YnNsaWNlcyhzc2V1LCBzKSk7Cj4gIAo+ICAJ CWZvciAoc3MgPSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNzKyspIHsKPiAgCQkJdTE2 IGVuYWJsZWRfZXVzID0gc3NldV9nZXRfZXVzKHNzZXUsIHMsIHNzKTsKPiBAQCAtMTkwLDE1ICsx ODksMTAgQEAgc3RhdGljIHZvaWQgZ2VuMTFfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJdTggZXVfZW47Cj4gIAlpbnQgczsKPiAgCj4gLQlpZiAo SVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKSB7Cj4gLQkJc3NldS0+bWF4X3NsaWNlcyA9IDE7Cj4g LQkJc3NldS0+bWF4X3N1YnNsaWNlcyA9IDQ7Cj4gLQkJc3NldS0+bWF4X2V1c19wZXJfc3Vic2xp Y2UgPSA4Owo+IC0JfSBlbHNlIHsKPiAtCQlzc2V1LT5tYXhfc2xpY2VzID0gMTsKPiAtCQlzc2V1 LT5tYXhfc3Vic2xpY2VzID0gODsKPiAtCQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7 Cj4gLQl9Cj4gKwlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKQo+ICsJCWludGVsX3NzZXVf c2V0X2luZm8oc3NldSwgMSwgNCwgOCk7Cj4gKwllbHNlCj4gKwkJaW50ZWxfc3NldV9zZXRfaW5m byhzc2V1LCAxLCA4LCA4KTsKPiAgCj4gIAlzX2VuID0gSTkxNV9SRUFEKEdFTjExX0dUX1NMSUNF X0VOQUJMRSkgJiBHRU4xMV9HVF9TX0VOQV9NQVNLOwo+ICAJc3NfZW4gPSB+STkxNV9SRUFEKEdF TjExX0dUX1NVQlNMSUNFX0RJU0FCTEUpOwo+IEBAIC0yMDcsMTUgKzIwMSwxNSBAQCBzdGF0aWMg dm9pZCBnZW4xMV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAo+ICAJZm9yIChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewo+ICAJ CWlmIChzX2VuICYgQklUKHMpKSB7Cj4gLQkJCWludCBzc19pZHggPSBzc2V1LT5tYXhfc3Vic2xp Y2VzICogczsKPiAgCQkJaW50IHNzOwo+ICAKPiAgCQkJc3NldS0+c2xpY2VfbWFzayB8PSBCSVQo cyk7Cj4gLQkJCXNzZXUtPnN1YnNsaWNlX21hc2tbc10gPSAoc3NfZW4gPj4gc3NfaWR4KSAmIHNz X2VuX21hc2s7Cj4gLQkJCWZvciAoc3MgPSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNz KyspIHsKPiAtCQkJCWlmIChzc2V1LT5zdWJzbGljZV9tYXNrW3NdICYgQklUKHNzKSkKPiArCj4g KwkJCWludGVsX3NzZXVfc2V0X3N1YnNsaWNlcyhzc2V1LCBzLCBzc19lbl9tYXNrKTsKPiArCj4g KwkJCWZvciAoc3MgPSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNzKyspCj4gKwkJCQlp ZiAoaW50ZWxfc3NldV9oYXNfc3Vic2xpY2Uoc3NldSwgcywgc3MpKQo+ICAJCQkJCXNzZXVfc2V0 X2V1cyhzc2V1LCBzLCBzcywgZXVfZW4pOwo+IC0JCQl9Cj4gIAkJfQo+ICAJfQo+ICAJc3NldS0+ ZXVfcGVyX3N1YnNsaWNlID0gaHdlaWdodDgoZXVfZW4pOwo+IEBAIC0yMzUsMjMgKzIyOSwxMCBA QCBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gIAljb25zdCBpbnQgZXVfbWFzayA9IDB4ZmY7Cj4gIAl1MzIgc3Vic2xp Y2VfbWFzaywgZXVfZW47Cj4gIAo+ICsJaW50ZWxfc3NldV9zZXRfaW5mbyhzc2V1LCA2LCA0LCA4 KTsKPiArCj4gIAlzc2V1LT5zbGljZV9tYXNrID0gKGZ1c2UyICYgR0VOMTBfRjJfU19FTkFfTUFT SykgPj4KPiAgCQkJICAgIEdFTjEwX0YyX1NfRU5BX1NISUZUOwo+IC0Jc3NldS0+bWF4X3NsaWNl cyA9IDY7Cj4gLQlzc2V1LT5tYXhfc3Vic2xpY2VzID0gNDsKPiAtCXNzZXUtPm1heF9ldXNfcGVy X3N1YnNsaWNlID0gODsKPiAtCj4gLQlzdWJzbGljZV9tYXNrID0gKDEgPDwgNCkgLSAxOwo+IC0J c3Vic2xpY2VfbWFzayAmPSB+KChmdXNlMiAmIEdFTjEwX0YyX1NTX0RJU19NQVNLKSA+Pgo+IC0J CQkgICBHRU4xMF9GMl9TU19ESVNfU0hJRlQpOwo+IC0KPiAtCS8qCj4gLQkgKiBTbGljZTAgY2Fu IGhhdmUgdXAgdG8gMyBzdWJzbGljZXMsIGJ1dCB0aGVyZSBhcmUgb25seSAyIGluCj4gLQkgKiBz bGljZTEvMi4KPiAtCSAqLwo+IC0Jc3NldS0+c3Vic2xpY2VfbWFza1swXSA9IHN1YnNsaWNlX21h c2s7Cj4gLQlmb3IgKHMgPSAxOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKQo+IC0JCXNzZXUt PnN1YnNsaWNlX21hc2tbc10gPSBzdWJzbGljZV9tYXNrICYgMHgzOwo+ICAKPiAgCS8qIFNsaWNl MCAqLwo+ICAJZXVfZW4gPSB+STkxNV9SRUFEKEdFTjhfRVVfRElTQUJMRTApOwo+IEBAIC0yNzYs MTQgKzI1NywyMiBAQCBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlldV9lbiA9IH5JOTE1X1JFQUQoR0VOMTBfRVVf RElTQUJMRTMpOwo+ICAJc3NldV9zZXRfZXVzKHNzZXUsIDUsIDEsIGV1X2VuICYgZXVfbWFzayk7 Cj4gIAo+IC0JLyogRG8gYSBzZWNvbmQgcGFzcyB3aGVyZSB3ZSBtYXJrIHRoZSBzdWJzbGljZXMg ZGlzYWJsZWQgaWYgYWxsIHRoZWlyCj4gLQkgKiBldXMgYXJlIG9mZi4KPiAtCSAqLwo+ICsJc3Vi c2xpY2VfbWFzayA9ICgxIDw8IDQpIC0gMTsKPiArCXN1YnNsaWNlX21hc2sgJj0gfigoZnVzZTIg JiBHRU4xMF9GMl9TU19ESVNfTUFTSykgPj4KPiArCQkJICAgR0VOMTBfRjJfU1NfRElTX1NISUZU KTsKPiArCj4gIAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7Cj4gIAkJ Zm9yIChzcyA9IDA7IHNzIDwgc3NldS0+bWF4X3N1YnNsaWNlczsgc3MrKykgewo+ICAJCQlpZiAo c3NldV9nZXRfZXVzKHNzZXUsIHMsIHNzKSA9PSAwKQo+IC0JCQkJc3NldS0+c3Vic2xpY2VfbWFz a1tzXSAmPSB+QklUKHNzKTsKPiArCQkJCXN1YnNsaWNlX21hc2sgJj0gfkJJVChzcyk7Cj4gIAkJ fQo+ICsKPiArCQkvKgo+ICsJCSAqIFNsaWNlMCBjYW4gaGF2ZSB1cCB0byAzIHN1YnNsaWNlcywg YnV0IHRoZXJlIGFyZSBvbmx5IDIgaW4KPiArCQkgKiBzbGljZTEvMi4KPiArCQkgKi8KPiArCQlp bnRlbF9zc2V1X3NldF9zdWJzbGljZXMoc3NldSwgcywgcyA9PSAwID8gc3Vic2xpY2VfbWFzayA6 Cj4gKwkJCQkJCQkgICBzdWJzbGljZV9tYXNrICYgMHgzKTsKPiAgCX0KPiAgCj4gIAlzc2V1LT5l dV90b3RhbCA9IGNvbXB1dGVfZXVfdG90YWwoc3NldSk7Cj4gQEAgLTMwOSwxMyArMjk4LDEyIEBA IHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZS VU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1Owo+ICAJdTMyIGZ1c2U7Cj4gKwl1OCBzdWJzbGlj ZV9tYXNrOwo+ICAKPiAgCWZ1c2UgPSBJOTE1X1JFQUQoQ0hWX0ZVU0VfR1QpOwo+ICAKPiAgCXNz ZXUtPnNsaWNlX21hc2sgPSBCSVQoMCk7Cj4gLQlzc2V1LT5tYXhfc2xpY2VzID0gMTsKPiAtCXNz ZXUtPm1heF9zdWJzbGljZXMgPSAyOwo+IC0Jc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UgPSA4 Owo+ICsJaW50ZWxfc3NldV9zZXRfaW5mbyhzc2V1LCAxLCAyLCA4KTsKPiAgCj4gIAlpZiAoIShm dXNlICYgQ0hWX0ZHVF9ESVNBQkxFX1NTMCkpIHsKPiAgCQl1OCBkaXNhYmxlZF9tYXNrID0KPiBA QCAtMzI0LDcgKzMxMiw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCQkoKChmdXNlICYgQ0hWX0ZH VF9FVV9ESVNfU1MwX1IxX01BU0spID4+Cj4gIAkJCSAgQ0hWX0ZHVF9FVV9ESVNfU1MwX1IxX1NI SUZUKSA8PCA0KTsKPiAgCj4gLQkJc3NldS0+c3Vic2xpY2VfbWFza1swXSB8PSBCSVQoMCk7Cj4g KwkJc3Vic2xpY2VfbWFzayB8PSBCSVQoMCk7CgpXaGVuIGJ1aWxkaW5nIHdpdGggLVd1bmluaXRp YWxpemVkLCBjbGFuZyB3YXJuczoKCmRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9p bmZvLmM6MzE1OjM6IHdhcm5pbmc6IHZhcmlhYmxlICdzdWJzbGljZV9tYXNrJyBpcyB1bmluaXRp YWxpemVkIHdoZW4gdXNlZCBoZXJlIFstV3VuaW5pdGlhbGl6ZWRdCiAgICAgICAgICAgICAgICBz dWJzbGljZV9tYXNrIHw9IEJJVCgwKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYzozMDE6MTg6IG5vdGU6IGluaXRp YWxpemUgdGhlIHZhcmlhYmxlICdzdWJzbGljZV9tYXNrJyB0byBzaWxlbmNlIHRoaXMgd2Fybmlu ZwogICAgICAgIHU4IHN1YnNsaWNlX21hc2s7CiAgICAgICAgICAgICAgICAgICAgICAgIF4KICAg ICAgICAgICAgICAgICAgICAgICAgID0gJ1wwJwoKSSBhc3N1bWUgdGhhdCBpdCBzaG91bGQgYmUg aW5pdGlhbGl6ZWQgdG8gemVybyBidXQgbWF5YmUgeW91IGludGVuZGVkCnNvbWV0aGluZyBkaWZm ZXJlbnQ/CgpUaGFua3MsCk5hdGhhbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=