From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gert Wollny Subject: Re: [PATCH libdrm] radeon, evergreen: ensure equal sizes for depth-stencil npot textures Date: Tue, 07 Aug 2018 22:37:16 +0200 Message-ID: <1533674236.12805.1.camel@collabora.com> References: <20180806081306.25289-1-gert.wollny@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4D2836E457 for ; Tue, 7 Aug 2018 20:37:56 +0000 (UTC) In-Reply-To: <20180806081306.25289-1-gert.wollny@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SXQgc2VlbXMgSSBkaWQgYSB3cm9uZyBpbmRpY2F0aW9uIGluIHRoZSBzdWJqZWN0LCAKCkFtIE1v bnRhZywgZGVuIDA2LjA4LjIwMTgsIDEwOjEzICswMjAwIHNjaHJpZWIgR2VydCBXb2xsbnk6Cj4g T24gZXZlcmdyZWVuIGRlcHRoLXN0ZW5jaWwgdGV4dHVyZXMgYXJlIGFsbG9jYXRlZCBhcyB0d28g b2JqZWN0cywgYW5kCj4gd2hlbiB1c2luZyB0aGUgZWdfc3VyZmFjZV9pbml0XzFkX21pcHRyZWVz IGNvZGUgcGF0aCB0aGUgc2l6ZQo+IGV2YWx1YXRpb24KPiB1c2VzIHRoZSBnZW5lcmFsaXplZCBz dXJmX21pbmlmeSBmdW5jdGlvbi4gSGVyZSB3aGVuIGFsbG9jYXRpbmcgdGhlCj4gZGVwdGggdGV4 dHVyZSB0aGUgYWxpZ25tZW50IHRha2VzIHRoZSBkZXB0aCBicGUgdmFsdWUgaW50byBhY2NvdW50 LAo+IGFuZAo+IHVzZXMgYnBlPTEgZm9yIHRoZSBzdGVuY2lsIHRleHR1cmUuIEFzIGEgcmVzdWx0 IHRoZSB0ZXh0dXJlIHBhaXIgbWF5Cj4gY29uc2lzdCBvZiB0ZXh0dXJlcyB3aXRoIHR3byBkaWZm ZXJlbnQgbmJsa194IHNpemVzIGFuZCB0aGlzIHNlZW1zIHRvCj4gYmUgYSBwcm9ibGVtIHdpdGgg bnBvdCB0ZXh0dXJlcywgaS5lLiBpZiB0aGUgc28gYWxsb2NhdGVkIGRlcHRoCj4gdGV4dHVyZQo+ IGlzIGxhcmdlciB0aGFuIHRoZSBzdGVuY2lsIHRleHR1cmUsIHRoZW4gdGhlIGtlcm5lbCBtYXkg cmVqZWN0IHNlbnQKPiBkYXRhCj4gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGxpa2U6Cj4gCj4gIGV2 ZXJncmVlbl9jc190cmFja192YWxpZGF0ZV9zdGVuY2lsOjYyMiBzdGVuY2lsIHJlYWQgYm8gdG9v Cj4gICBzbWFsbCAobGF5ZXIgc2l6ZSAxMzEwNzIsIG9mZnNldCA1MjQyODgsIG1heCBsYXllciAx LCBibyBzaXplCj4gNjA2MjA4KQo+IAo+IGJlY2F1c2UgYXBwYXJlbnRseSB0aGUgZXhwZWN0ZWQg bGF5ZXIgc2l6ZSBpcyBldmFsdWF0ZWQgZnJvbSB0aGUKPiBkZXB0aAo+IHRleHR1cmUgc2l6ZSwg YnV0IHRoZSBhY3R1YWwgYm8gc2l6ZSBpcyBldmFsdWF0ZWQgYmFzZWQgb24gdGhlIHRydWUKPiB0 ZXh0dXJlCj4gc2l6ZSB2YWx1ZXMuIElmLCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhlIHN0ZW5jaWwg dGV4dHVyZSBpcyBsYXJnZXIKPiB0aGFuIHRoZQo+IGRlcHRoIHRleHR1cmUsIHRoZW4gdGhlIGRh dGEgaXMgc2VuZCB3aXRoIGEgd3JvbmcgYWxpZ25tZW50LCBhbmQKPiBjZXJ0YWluCj4gZEVRUC1H TEVTMzEgdGVzdHMgZmFpbC4KPiAKPiBJbiBvcmRlciB0byBvYnRhaW4gZXF1YWwgbnBvdCB0ZXh0 dXJlIHNpemVzIG1hZ25pZnkgdGhlIGRlcHRoIHRleHR1cmUKPiBhbGlnbm1lbnQKPiByZXF1aXJl bWVudCBpbiB0aGVzZSBjYXNlcyBieSBpdHMgYnBlLCBzbyB0aGF0IHRoZSByZWxhdGl2ZSBhbGln bm1lbnQKPiBpcwo+IHRoZSBzYW1lIGZvciBkZXB0aCBhbmQgc3RlbmNpbCB0ZXh0dXJlLgo+IAo+ IEZpeGVzIG9uIEJBUlRTOgo+ICAgZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC5zdGVuY2lsX3RleHR1 cmluZy5mb3JtYXQKPiAgICAgLmRlcHRoMzJmX3N0ZW5jaWw4XzJkCj4gICAgIC5kZXB0aDMyZl9z dGVuY2lsOF8yZF9hcnJheQo+ICAgICAuZGVwdGgyNF9zdGVuY2lsOF8yZCBQYXNzCj4gICAgIC5k ZXB0aDI0X3N0ZW5jaWw4XzJkX2FycmF5Cj4gICAgIC5zdGVuY2lsX2luZGV4OF8yZAo+ICAgICAu c3RlbmNpbF9pbmRleDhfMmRfYXJyYXkKPiAgICAgLmRlcHRoMzJmX3N0ZW5jaWw4X2RyYXcKPiAg ICAgLmRlcHRoMjRfc3RlbmNpbDhfZHJhdwo+IAo+ICAgZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC50 ZXh0dXJlLmJvcmRlcl9jbGFtcC5mb3JtYXRzCj4gICAgIC5zdGVuY2lsX2luZGV4OC5uZWFyZXN0 X3NpemVfbnBvdAo+ICAgICAuZGVwdGgyNF9zdGVuY2lsOF9zYW1wbGVfc3RlbmNpbC5uZWFyZXN0 X3NpemVfbnBvdAo+ICAgICAuZGVwdGgzMmZfc3RlbmNpbDhfc2FtcGxlX3N0ZW5jaWwubmVhcmVz dF9zaXplX25wb3QKPiAKPiAgIGRFUVAtCj4gR0xFUzMxLmZ1bmN0aW9uYWwudGV4dHVyZS5ib3Jk ZXJfY2xhbXAucGVyX2F4aXNfd3JhcF9tb2RlLnRleHR1cmVfMmQKPiAgICAgLnVpbnRfc3RlbmNp bC5uZWFyZXN0LnNfY2xhbXBfdG9fZWRnZV90X2NsYW1wX3RvX2JvcmRlcl9ucG90Cj4gICAgIC51 aW50X3N0ZW5jaWwubmVhcmVzdC5zX3JlcGVhdF90X2NsYW1wX3RvX2JvcmRlcl9ucG90Cj4gICAg IC51aW50X3N0ZW5jaWwubmVhcmVzdC5zX21pcnJvcmVkX3JlcGVhdF90X2NsYW1wX3RvX2JvcmRl cl9ucG90Cj4gCj4gU2lnbmVkLW9mZi1ieTogR2VydCBXb2xsbnkgPGdlcnQud29sbG55QGNvbGxh Ym9yYS5jb20+Cj4gLS0tCj4gVGhhbmtzIGZvciByZXZpZXdpbmcgYW5kIGFueSBjb21tZW50cywK PiBHZXJ0Cj4gCj4gUFM6IC0gSSBoYXZlIGNvbW1pdCByaWdodHMgZm9yIG1lc2EsIEknbSBub3Qg c3VyZSB3aGV0aGVyIHRoaXMgYWxzbwo+IGluY2x1ZGVzIGRybS4KPiAgICAgLSBUaGlzIGlzIGEg cmVzZW5kLCBiZWNhdXNlIEkgZmlyc3QgdHJpZWQgd2l0aCBhIG1haWwgYWRkcmVzcwo+IHRoYXQg d2FzIG5vdCAKPiAgICAgICBzdWJzY3JpYmVkIHRvIHRoZSBsaXN0IGFuZCB0aGUgbWFpbCBwcm9i YWJseSBlbmRlZCB1cCBpbiBzb21lCj4gbW9kZXJhdGlvbiAKPiAgICAgICBxdWV1ZSAoc29ycnkp Cj4gCj4gIHJhZGVvbi9yYWRlb25fc3VyZmFjZS5jIHwgMzggKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9yYWRlb24vcmFkZW9uX3N1cmZhY2UuYyBi L3JhZGVvbi9yYWRlb25fc3VyZmFjZS5jCj4gaW5kZXggM2NhZmNmY2IuLjA1NzkzODljIDEwMDY0 NAo+IC0tLSBhL3JhZGVvbi9yYWRlb25fc3VyZmFjZS5jCj4gKysrIGIvcmFkZW9uL3JhZGVvbl9z dXJmYWNlLmMKPiBAQCAtNjEyLDYgKzYxMiw3IEBAIHN0YXRpYyBpbnQgZWdfc3VyZmFjZV9pbml0 XzFkKHN0cnVjdAo+IHJhZGVvbl9zdXJmYWNlX21hbmFnZXIgKnN1cmZfbWFuLAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX3N1cmZhY2UgKnN1cmYsCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByYWRlb25fc3VyZmFjZV9sZXZlbCAq bGV2ZWwsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJwZSwKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWxpZ25fbWFnaW5pZnksCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IG9mZnNldCwgdW5zaWduZWQg c3RhcnRfbGV2ZWwpCj4gIHsKPiAgICAgIHVpbnQzMl90IHhhbGlnbiwgeWFsaWduLCB6YWxpZ24s IHRpbGV3Owo+IEBAIC02MjAsNyArNjIxLDcgQEAgc3RhdGljIGludCBlZ19zdXJmYWNlX2luaXRf MWQoc3RydWN0Cj4gcmFkZW9uX3N1cmZhY2VfbWFuYWdlciAqc3VyZl9tYW4sCj4gICAgICAvKiBj b21wdXRlIGFsaWdubWVudCAqLwo+ICAgICAgdGlsZXcgPSA4Owo+ICAgICAgeGFsaWduID0gc3Vy Zl9tYW4tPmh3X2luZm8uZ3JvdXBfYnl0ZXMgLyAodGlsZXcgKiBicGUgKiBzdXJmLQo+ID5uc2Ft cGxlcyk7Cj4gLSAgICB4YWxpZ24gPSBNQVgyKHRpbGV3LCB4YWxpZ24pOwo+ICsgICAgeGFsaWdu ID0gTUFYMih0aWxldywgeGFsaWduICogYWxpZ25fbWFnaW5pZnkpOwo+ICAgICAgeWFsaWduID0g dGlsZXc7Cj4gICAgICB6YWxpZ24gPSAxOwo+ICAgICAgaWYgKHN1cmYtPmZsYWdzICYgUkFERU9O X1NVUkZfU0NBTk9VVCkgewo+IEBAIC02NTIsNyArNjUzLDggQEAgc3RhdGljIGludCBlZ19zdXJm YWNlX2luaXRfMWQoc3RydWN0Cj4gcmFkZW9uX3N1cmZhY2VfbWFuYWdlciAqc3VyZl9tYW4sCj4g IHN0YXRpYyBpbnQgZWdfc3VyZmFjZV9pbml0XzJkKHN0cnVjdCByYWRlb25fc3VyZmFjZV9tYW5h Z2VyCj4gKnN1cmZfbWFuLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg cmFkZW9uX3N1cmZhY2UgKnN1cmYsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCByYWRlb25fc3VyZmFjZV9sZXZlbCAqbGV2ZWwsCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGJwZSwgdW5zaWduZWQgdGlsZV9zcGxpdCwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnBlLCB1bnNpZ25lZCBhbGlnbl9tYWduaWZ5 LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0aWxlX3NwbGl0LAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBvZmZzZXQsIHVuc2lnbmVk IHN0YXJ0X2xldmVsKQo+ICB7Cj4gICAgICB1bnNpZ25lZCB0aWxldywgdGlsZWgsIHRpbGViOwo+ IEBAIC02OTEsNyArNjkzLDcgQEAgc3RhdGljIGludCBlZ19zdXJmYWNlX2luaXRfMmQoc3RydWN0 Cj4gcmFkZW9uX3N1cmZhY2VfbWFuYWdlciAqc3VyZl9tYW4sCj4gICAgICAgICAgbGV2ZWxbaV0u bW9kZSA9IFJBREVPTl9TVVJGX01PREVfMkQ7Cj4gICAgICAgICAgZWdfc3VyZl9taW5pZnkoc3Vy ZiwgbGV2ZWwraSwgYnBlLCBpLCBzbGljZV9wdCwgbXRpbGV3LAo+IG10aWxlaCwgbXRpbGViLCBv ZmZzZXQpOwo+ICAgICAgICAgIGlmIChsZXZlbFtpXS5tb2RlID09IFJBREVPTl9TVVJGX01PREVf MUQpIHsKPiAtICAgICAgICAgICAgcmV0dXJuIGVnX3N1cmZhY2VfaW5pdF8xZChzdXJmX21hbiwg c3VyZiwgbGV2ZWwsIGJwZSwKPiBvZmZzZXQsIGkpOwo+ICsgICAgICAgICAgICByZXR1cm4gZWdf c3VyZmFjZV9pbml0XzFkKHN1cmZfbWFuLCBzdXJmLCBsZXZlbCwgYnBlLAo+IGFsaWduX21hZ25p ZnksIG9mZnNldCwgaSk7Cj4gICAgICAgICAgfQo+ICAgICAgICAgIC8qIGxldmVsMCBhbmQgZmly c3QgbWlwbWFwIG5lZWQgdG8gaGF2ZSBhbGlnbm1lbnQgKi8KPiAgICAgICAgICBvZmZzZXQgPSBz dXJmLT5ib19zaXplOwo+IEBAIC03OTMsMTYgKzc5NSwyNCBAQCBzdGF0aWMgaW50IGVnX3N1cmZh Y2VfaW5pdF8xZF9taXB0cmVlcyhzdHJ1Y3QKPiByYWRlb25fc3VyZmFjZV9tYW5hZ2VyICpzdXJm X21hbiwKPiAgICAgIC8qIE9sZCBsaWJkcm1fbWFjcm9zLmhlYWRlcnMgZGlkbid0IGhhdmUgc3Rl bmNpbF9sZXZlbCBpbiBpdC4KPiBUaGlzIHByZXZlbnRzIGNyYXNoZXMuICovCj4gICAgICBzdHJ1 Y3QgcmFkZW9uX3N1cmZhY2VfbGV2ZWwgdG1wW1JBREVPTl9TVVJGX01BWF9MRVZFTF07Cj4gICAg ICBzdHJ1Y3QgcmFkZW9uX3N1cmZhY2VfbGV2ZWwgKnN0ZW5jaWxfbGV2ZWwgPQo+IC0gICAgICAg IChzdXJmLT5mbGFncyAmIFJBREVPTl9TVVJGX0hBU19TQlVGRkVSX01JUFRSRUUpID8gc3VyZi0K PiA+c3RlbmNpbF9sZXZlbCA6IHRtcDsKPiArICAgICAgICAgIChzdXJmLT5mbGFncyAmIFJBREVP Tl9TVVJGX0hBU19TQlVGRkVSX01JUFRSRUUpID8gc3VyZi0KPiA+c3RlbmNpbF9sZXZlbCA6IHRt cDsKPiAgCj4gLSAgICByID0gZWdfc3VyZmFjZV9pbml0XzFkKHN1cmZfbWFuLCBzdXJmLCBzdXJm LT5sZXZlbCwgc3VyZi0+YnBlLAo+IDAsIDApOwo+ICsgICAgaW50IG1hZ25pZnlfYWxpZ24gPSBp c19kZXB0aF9zdGVuY2lsICYmIChzdXJmLT5ucGl4X3ggJiAoc3VyZi0KPiA+bnBpeF94IC0gMSkp Owo+ICsKPiArICAgIC8qIFdpdGggY2VydGFpbiBzaXplcyB0aGUgZGVwdGggYW5kIHRoZSBzdGVu Y2lsIHRleHR1cmUgZW5kIHVwCj4gYmVpbmcgb2YKPiArICAgICAqIGRpZmZlcmVudCBibG9jayBz aXplcyB3aGljaCBsYXRlciByZXN1bHRzIGluIHdyb25nIHJlbmRlcmluZwo+IGZvciBucG90Cj4g KyAgICAgKiB0ZXh0dXJlcy4gSW5mbGF0ZSB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB0 aGUgZGVwdGgKPiBzdXJmYWNlIGJ5Cj4gKyAgICAgKiBpdHMgYnBlIGluIG9yZGVyIHRvIG1ha2Ug aXQgYWxsb2NhdGUgYSB0ZXh0dXJlIHRoYXQgaXMgb2YgdGhlCj4gc2FtZQo+ICsgICAgICogYmxv Y2sgc2l6ZSBsaWtlIHRoZSBzdGVuY2lsIHRleHR1cmUgKi8KPiArICAgIHIgPSBlZ19zdXJmYWNl X2luaXRfMWQoc3VyZl9tYW4sIHN1cmYsIHN1cmYtPmxldmVsLCBzdXJmLT5icGUsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1hZ25pZnlfYWxpZ24gPyBzdXJmLT5icGUgOiAxLCAwLCAw KTsKPiAgICAgIGlmIChyKQo+ICAgICAgICAgIHJldHVybiByOwo+ICAKPiAgICAgIGlmIChpc19k ZXB0aF9zdGVuY2lsKSB7Cj4gLSAgICAgICAgciA9IGVnX3N1cmZhY2VfaW5pdF8xZChzdXJmX21h biwgc3VyZiwgc3RlbmNpbF9sZXZlbCwgMSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN1cmYtPmJvX3NpemUsIDApOwo+IC0gICAgICAgIHN1cmYtPnN0ZW5jaWxfb2Zmc2V0ID0g c3RlbmNpbF9sZXZlbFswXS5vZmZzZXQ7Cj4gKyAgICAgICByID0gZWdfc3VyZmFjZV9pbml0XzFk KHN1cmZfbWFuLCBzdXJmLCBzdGVuY2lsX2xldmVsLCAxLCAxLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdXJmLT5ib19zaXplLCAwKTsKPiArICAgICAgIHN1cmYtPnN0ZW5jaWxf b2Zmc2V0ID0gc3RlbmNpbF9sZXZlbFswXS5vZmZzZXQ7Cj4gICAgICB9Cj4gICAgICByZXR1cm4g cjsKPiAgfQo+IEBAIC04MTYsMTYgKzgyNiwyMiBAQCBzdGF0aWMgaW50IGVnX3N1cmZhY2VfaW5p dF8yZF9taXB0cmVlcyhzdHJ1Y3QKPiByYWRlb25fc3VyZmFjZV9tYW5hZ2VyICpzdXJmX21hbiwK PiAgICAgIHN0cnVjdCByYWRlb25fc3VyZmFjZV9sZXZlbCB0bXBbUkFERU9OX1NVUkZfTUFYX0xF VkVMXTsKPiAgICAgIHN0cnVjdCByYWRlb25fc3VyZmFjZV9sZXZlbCAqc3RlbmNpbF9sZXZlbCA9 Cj4gICAgICAgICAgKHN1cmYtPmZsYWdzICYgUkFERU9OX1NVUkZfSEFTX1NCVUZGRVJfTUlQVFJF RSkgPyBzdXJmLQo+ID5zdGVuY2lsX2xldmVsIDogdG1wOwo+ICsgICAgaW50IG1hZ25pZnlfYWxp Z24gPSBpc19kZXB0aF9zdGVuY2lsICYmIChzdXJmLT5ucGl4X3ggJiAoc3VyZi0KPiA+bnBpeF94 IC0gMSkpOwo+ICAKPiArICAgIC8qIEluZmxhdGUgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBm b3IgbnBvdCB0ZXh0dXJlcyB0byBpbnN1cmUKPiB0aGF0Cj4gKyAgICAgKiBzdGVuY2lsIGFuZCBk ZXB0aCB0ZXh0dXJlIGhhdmUgdGhlIHNhbWUgYmxvY2sgc2l6ZS4gVXNlIHRoaXMKPiBvbmx5IGlu Cj4gKyAgICAgKiB0aGUgMWQgY29kZSBwYXRoIHRoYXQgdXNlcyB0aGUgbm9uLXNwZWNpZmljIG1p bmlmeS4gKi8KPiAgICAgIHIgPSBlZ19zdXJmYWNlX2luaXRfMmQoc3VyZl9tYW4sIHN1cmYsIHN1 cmYtPmxldmVsLCBzdXJmLT5icGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hZ25p ZnlfYWxpZ24gPyBzdXJmLT5icGUgOiAxLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dXJmLT50aWxlX3NwbGl0LCAwLCAwKTsKPiAgICAgIGlmIChyKQo+ICAgICAgICAgIHJldHVybiBy Owo+ICAKPiAgICAgIGlmIChpc19kZXB0aF9zdGVuY2lsKSB7Cj4gLSAgICAgICAgciA9IGVnX3N1 cmZhY2VfaW5pdF8yZChzdXJmX21hbiwgc3VyZiwgc3RlbmNpbF9sZXZlbCwgMSwKPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN1cmYtPnN0ZW5jaWxfdGlsZV9zcGxpdCwgc3VyZi0K PiA+Ym9fc2l6ZSwgMCk7Cj4gLSAgICAgICAgc3VyZi0+c3RlbmNpbF9vZmZzZXQgPSBzdGVuY2ls X2xldmVsWzBdLm9mZnNldDsKPiArICAgICAgIHIgPSBlZ19zdXJmYWNlX2luaXRfMmQoc3VyZl9t YW4sIHN1cmYsIHN0ZW5jaWxfbGV2ZWwsIDEsIDEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN1cmYtPnN0ZW5jaWxfdGlsZV9zcGxpdCwgc3VyZi0KPiA+Ym9fc2l6ZSwgMCk7Cj4g KyAgICAgICBzdXJmLT5zdGVuY2lsX29mZnNldCA9IHN0ZW5jaWxfbGV2ZWxbMF0ub2Zmc2V0Owo+ ICsKPiAgICAgIH0KPiAgICAgIHJldHVybiByOwo+ICB9Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=