From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 03/22] drm/i915: Factor out intel_tile_width() Date: Wed, 21 Oct 2015 12:15:42 +0200 Message-ID: <20151021101542.GU13786@phenom.ffwll.local> References: <1444840154-7804-1-git-send-email-ville.syrjala@linux.intel.com> <1444840154-7804-4-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-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id 123A96E903 for ; Wed, 21 Oct 2015 03:15:47 -0700 (PDT) Received: by wicfv8 with SMTP id fv8so67503638wic.0 for ; Wed, 21 Oct 2015 03:15:45 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1444840154-7804-4-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMTQsIDIwMTUgYXQgMDc6Mjg6NTVQTSArMDMwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBQdWxsIHRoZSB0aWxlIHdpZHRoIGNhbGN1bGF0aW9u cyBmcm9tIGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoKSBpbnRvIGEKPiBuZXcgZnVuY3Rpb24g aW50ZWxfdGlsZV93aWR0aCgpLgo+IAo+IEFsc28gdGFrZSB0aGUgb3Bwb3J0dW5pdHkgdG8gcGFz cyBhcm91biBkZXZfcHJpdiBpbnN0ZWFkIG9mIGRldiB0bwo+IGludGVsX2ZiX3N0cmlkZV9hbGln bm1lbnQoKS4KPiAKPiB2MjogUmVvcmRlciBhcmd1bW5lbnRzIHRvIGJlIG1vcmUgY29uc2lzdGVu dCB3aXRoIG90aGVyIGZ1bmN0aW9ucwo+ICAgICBDaGFuZ2UgaW50ZWxfZmJfc3RyaWRlX2FsaWdu bWVudCgpIHRvIGFjY2VwdCBkZXZfcHJpdiBpbnN0ZWFkIG9mIGRldgo+IAo+IFNpZ25lZC1vZmYt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDc2ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgfCAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAg fCAgMiArLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA2YWRkOGQx Li5jMzFmZTQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0y MjE0LDYgKzIyMTQsNDEgQEAgc3RhdGljIGJvb2wgbmVlZF92dGRfd2Eoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCXJldHVybiBmYWxzZTsKPiAgfQo+ICAKPiArc3RhdGljIHVuc2lnbmVkIGlu dCBpbnRlbF90aWxlX3dpZHRoKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiArCQkJCSAgICAgdWludDY0X3QgZmJfbW9kaWZpZXIsIHVuc2lnbmVkIGludCBjcHApCj4g K3sKPiArCXN3aXRjaCAoZmJfbW9kaWZpZXIpIHsKPiArCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTk9O RToKPiArCQlyZXR1cm4gY3BwOwo+ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKPiAr CQlyZXR1cm4gSVNfR0VOMihkZXZfcHJpdikgPyAxMjggOiA1MTI7Cj4gKwljYXNlIEk5MTVfRk9S TUFUX01PRF9ZX1RJTEVEOgo+ICsJCS8qIE5vIG5lZWQgdG8gY2hlY2sgZm9yIG9sZCBnZW5zIGFu ZCBZIHRpbGluZyBzaW5jZSB0aGlzIGlzCj4gKwkJICogYWJvdXQgdGhlIGRpc3BsYXkgZW5naW5l IGFuZCB0aG9zZSB3aWxsIGJlIGJsb2NrZWQgYmVmb3JlCj4gKwkJICogd2UgZ2V0IGhlcmUuCj4g KwkJICovCj4gKwkJcmV0dXJuIDEyODsKCkltbyBqdXN0IGRyb3AgdGhlIGNvbW1lbnQgYW5kIGNo YW5nZSB0aGlzIHRvCgoJCXJldHVybiBIQVNfMTI4X0JZVEVfWV9USUxJTkcoZGV2KSAxMjggOiA1 MTI7CgpKdXN0IHRvIGF2b2lkIHd0ZiBtb21lbnRzLiBJdCdzIGxlc3MgY29kZSB0aGFuIHRoZSBj b21tZW50IHRvby4KCkFub3RoZXIgb25lOiBFbmZvcmNpbmcgcG90IGFsaWdubWVudCBmb3IgZ2Vu Mi8zIGlzIGZhaXJseSBoYXB6YXJkb3VzIC0gd2UKZG8gaXQgYWNjaWRlbnRhbGx5IGJ5IHJlcXVp cmluZyB0aGF0IGZvciBYLXRpbGVkIHRoZSB1bmRlcmx5aW5nIG9iaiBpcwphbHNvIFgtdGlsZWQg YW5kIHRoYXQgc3RyaWRlcyBtYXRjaC4gQ29tbWVudCBmb3IgdGhpcyB3b3VsZCBiZSBnb29kIGhl cmUuCgo+ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6Cj4gKwkJc3dpdGNoIChjcHAp IHsKPiArCQljYXNlIDE6Cj4gKwkJCXJldHVybiA2NDsKPiArCQljYXNlIDI6Cj4gKwkJY2FzZSA0 Ogo+ICsJCQlyZXR1cm4gMTI4OwoKV2l0aCA0IGNwcCB3ZSBoYXZlIDR4NCBwaXhlbHMgZm9yIHRo ZSA2NGIgY2FjaGVsaW5lLiBTbyA4eDggZm9yIHRoZSAyNTZiCmJsb2NrIHdpdGggMToxIGFzcGVj dCByYXRpbywgaGVuY2UgNjR4NjQgcGl4ZWwgdGlsZSBmb3IgdGhlIGZ1bGwgcGFnZS4KCj4gKwkJ Y2FzZSA4OgoKV2l0aCA4IGNwcCB3ZSBoYXZlIDJ4NCBwaXhlbHMgZm9yIHRoZSA2NGIgY2FjaGVs aW5lLiBTbyA4eDQgZm9yIHRoZSAyNTZiCmJsb2NrIHdpdGggMjoxIGFzcGVjdCByYXRpbywgaGVu Y2UgNjR4MzIgcGl4ZWwgdGlsZSBmb3IgdGhlIGZ1bGwgcGFnZS4KCj4gKwkJY2FzZSAxNjoKPiAr CQkJcmV0dXJuIDI1NjsKCldpdGggMTYgY3BwIHdlIGhhdmUgMXg0IHBpeGVscyBmb3IgdGhlIDY0 YiBjYWNoZWxpbmUuIFNvIDR4NCBmb3IgdGhlIDI1NmIKYmxvY2sgd2l0aCAxOjEgYXNwZWN0IHJh dGlvLCBoZW5jZSAzMngzMiBwaXhlbCB0aWxlIGZvciB0aGUgZnVsbCBwYWdlLgoKT3RoZXJ3aXNl IGxvb2tzIGdvb2QgdG8gbWUsIFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgpvbmNlIHdlIGNsb3NlIHRoZSBhYm92ZS4KCkNoZWVycywgRGFuaWVsCgo+ ICsJCWRlZmF1bHQ6Cj4gKwkJCU1JU1NJTkdfQ0FTRShjcHApOwo+ICsJCQlyZXR1cm4gY3BwOwo+ ICsJCX0KPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJTUlTU0lOR19DQVNFKGZiX21vZGlm aWVyKTsKPiArCQlyZXR1cm4gY3BwOwo+ICsJfQo+ICt9Cj4gKwo+ICB1bnNpZ25lZCBpbnQKPiAg aW50ZWxfdGlsZV9oZWlnaHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3QgcGl4ZWxf Zm9ybWF0LAo+ICAJCSAgdWludDY0X3QgZmJfZm9ybWF0X21vZGlmaWVyLCB1bnNpZ25lZCBpbnQg cGxhbmUpCj4gQEAgLTI4OTUsMzcgKzI5MzAsMjAgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfdXBk YXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJUE9TVElOR19SRUFE KHJlZyk7Cj4gIH0KPiAgCj4gLXUzMiBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVpbnQ2NF90IGZiX21vZGlmaWVyLAo+IC0JCQkgICAgICB1aW50MzJf dCBwaXhlbF9mb3JtYXQpCj4gK3UzMiBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgICAgdWludDY0X3QgZmJf bW9kaWZpZXIsIHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkKPiAgewo+IC0JdTMyIGJpdHNfcGVyX3Bp eGVsID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAocGl4ZWxfZm9ybWF0LCAwKSAqIDg7Cj4gLQo+ICAJ LyoKPiAgCSAqIFRoZSBzdHJpZGUgaXMgZWl0aGVyIGV4cHJlc3NlZCBhcyBhIG11bHRpcGxlIG9m IDY0IGJ5dGVzCj4gIAkgKiBjaHVua3MgZm9yIGxpbmVhciBidWZmZXJzIG9yIGluIG51bWJlciBv ZiB0aWxlcyBmb3IgdGlsZWQKPiAgCSAqIGJ1ZmZlcnMuCj4gIAkgKi8KPiAtCXN3aXRjaCAoZmJf bW9kaWZpZXIpIHsKPiAtCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTk9ORToKPiAtCQlyZXR1cm4gNjQ7 Cj4gLQljYXNlIEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOgo+IC0JCWlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA9PSAyKQo+IC0JCQlyZXR1cm4gMTI4Owo+IC0JCXJldHVybiA1MTI7Cj4gLQljYXNl IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOgo+IC0JCS8qIE5vIG5lZWQgdG8gY2hlY2sgZm9yIG9s ZCBnZW5zIGFuZCBZIHRpbGluZyBzaW5jZSB0aGlzIGlzCj4gLQkJICogYWJvdXQgdGhlIGRpc3Bs YXkgZW5naW5lIGFuZCB0aG9zZSB3aWxsIGJlIGJsb2NrZWQgYmVmb3JlCj4gLQkJICogd2UgZ2V0 IGhlcmUuCj4gLQkJICovCj4gLQkJcmV0dXJuIDEyODsKPiAtCWNhc2UgSTkxNV9GT1JNQVRfTU9E X1lmX1RJTEVEOgo+IC0JCWlmIChiaXRzX3Blcl9waXhlbCA9PSA4KQo+IC0JCQlyZXR1cm4gNjQ7 Cj4gLQkJZWxzZQo+IC0JCQlyZXR1cm4gMTI4Owo+IC0JZGVmYXVsdDoKPiAtCQlNSVNTSU5HX0NB U0UoZmJfbW9kaWZpZXIpOwo+ICsJaWYgKGZiX21vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX05P TkUpIHsKPiAgCQlyZXR1cm4gNjQ7Cj4gKwl9IGVsc2Ugewo+ICsJCXVuc2lnbmVkIGludCBjcHAg PSBkcm1fZm9ybWF0X3BsYW5lX2NwcChwaXhlbF9mb3JtYXQsIDApOwo+ICsKPiArCQlyZXR1cm4g aW50ZWxfdGlsZV93aWR0aChkZXZfcHJpdiwgZmJfbW9kaWZpZXIsIGNwcCk7Cj4gIAl9Cj4gIH0K PiAgCj4gQEAgLTMxMDYsNyArMzEyNCw3IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3By aW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJcGxhbmVfY3RsIHw9IHNrbF9w bGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwo+ICAKPiAgCW9iaiA9IGludGVsX2ZiX29iaihm Yik7Cj4gLQlzdHJpZGVfZGl2ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXYsIGZiLT5t b2RpZmllclswXSwKPiArCXN0cmlkZV9kaXYgPSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGRl dl9wcml2LCBmYi0+bW9kaWZpZXJbMF0sCj4gIAkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQp Owo+ICAJc3VyZl9hZGRyID0gaW50ZWxfcGxhbmVfb2JqX29mZnNldCh0b19pbnRlbF9wbGFuZShw bGFuZSksIG9iaiwgMCk7Cj4gIAo+IEBAIC05MDY2LDcgKzkwODQsNyBAQCBza3lsYWtlX2dldF9p bml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCWZiLT53aWR0 aCA9ICgodmFsID4+IDApICYgMHgxZmZmKSArIDE7Cj4gIAo+ICAJdmFsID0gSTkxNV9SRUFEKFBM QU5FX1NUUklERShwaXBlLCAwKSk7Cj4gLQlzdHJpZGVfbXVsdCA9IGludGVsX2ZiX3N0cmlkZV9h bGlnbm1lbnQoZGV2LCBmYi0+bW9kaWZpZXJbMF0sCj4gKwlzdHJpZGVfbXVsdCA9IGludGVsX2Zi X3N0cmlkZV9hbGlnbm1lbnQoZGV2X3ByaXYsIGZiLT5tb2RpZmllclswXSwKPiAgCQkJCQkJZmIt PnBpeGVsX2Zvcm1hdCk7Cj4gIAlmYi0+cGl0Y2hlc1swXSA9ICh2YWwgJiAweDNmZikgKiBzdHJp ZGVfbXVsdDsKPiAgCj4gQEAgLTExMTM3LDcgKzExMTU1LDcgQEAgc3RhdGljIHZvaWQgc2tsX2Rv X21taW9fZmxpcChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCSAqIGxpbmVhciBi dWZmZXJzIG9yIGluIG51bWJlciBvZiB0aWxlcyBmb3IgdGlsZWQgYnVmZmVycy4KPiAgCSAqLwo+ ICAJc3RyaWRlID0gZmItPnBpdGNoZXNbMF0gLwo+IC0JCSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25t ZW50KGRldiwgZmItPm1vZGlmaWVyWzBdLAo+ICsJCSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50 KGRldl9wcml2LCBmYi0+bW9kaWZpZXJbMF0sCj4gIAkJCQkJICAgZmItPnBpeGVsX2Zvcm1hdCk7 Cj4gIAo+ICAJLyoKPiBAQCAtMTQyMTQsNiArMTQyMzIsNyBAQCBzdGF0aWMgaW50IGludGVsX2Zy YW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCSAgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+ICAJCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gIAl1bnNpZ25lZCBpbnQgYWxpZ25lZF9oZWlnaHQ7Cj4gIAlpbnQgcmV0 Owo+ICAJdTMyIHBpdGNoX2xpbWl0LCBzdHJpZGVfYWxpZ25tZW50Owo+IEBAIC0xNDI1NSw3ICsx NDI3NCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCXN0cmlkZV9hbGln bm1lbnQgPSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGRldiwgbW9kZV9jbWQtPm1vZGlmaWVy WzBdLAo+ICsJc3RyaWRlX2FsaWdubWVudCA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2 X3ByaXYsCj4gKwkJCQkJCSAgICAgbW9kZV9jbWQtPm1vZGlmaWVyWzBdLAo+ICAJCQkJCQkgICAg IG1vZGVfY21kLT5waXhlbF9mb3JtYXQpOwo+ICAJaWYgKG1vZGVfY21kLT5waXRjaGVzWzBdICYg KHN0cmlkZV9hbGlnbm1lbnQgLSAxKSkgewo+ICAJCURSTV9ERUJVRygicGl0Y2ggKCVkKSBtdXN0 IGJlIGF0IGxlYXN0ICV1IGJ5dGUgYWxpZ25lZFxuIiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IGluZGV4IDExNTI1NjYuLjk4YThkMzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IEBAIC0xMDE3LDggKzEwMTcsOCBAQCB1bnNpZ25lZCBpbnQgaW50ZWxfZmJfYWxpZ25faGVp Z2h0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgICB1aW50NjRfdCBmYl9mb3JtYXRf bW9kaWZpZXIpOwo+ICB2b2lkIGludGVsX2ZiX29ial9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLCBib29sIHJldGlyZSwKPiAgCQkJZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2lu KTsKPiAtdTMyIGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdWludDY0X3QgZmJfbW9kaWZpZXIsCj4gLQkJCSAgICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1h dCk7Cj4gK3UzMiBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGNvbnN0IHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgICAgdWludDY0X3QgZmJfbW9kaWZpZXIsIHVp bnQzMl90IHBpeGVsX2Zvcm1hdCk7Cj4gIAo+ICAvKiBpbnRlbF9hdWRpby5jICovCj4gIHZvaWQg aW50ZWxfaW5pdF9hdWRpbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDkwZTI3YzguLjNkOTY4NzEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0yMTUsNyArMjE1LDcgQEAgc2tsX3VwZGF0ZV9w bGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK PiAgCQkJCSAgICAgICBwaXhlbF9zaXplLCB0cnVlLAo+ICAJCQkJICAgICAgIHNyY193ICE9IGNy dGNfdyB8fCBzcmNfaCAhPSBjcnRjX2gpOwo+ICAKPiAtCXN0cmlkZV9kaXYgPSBpbnRlbF9mYl9z dHJpZGVfYWxpZ25tZW50KGRldiwgZmItPm1vZGlmaWVyWzBdLAo+ICsJc3RyaWRlX2RpdiA9IGlu dGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2X3ByaXYsIGZiLT5tb2RpZmllclswXSwKPiAgCQkJ CQkgICAgICAgZmItPnBpeGVsX2Zvcm1hdCk7Cj4gIAo+ICAJc2NhbGVyX2lkID0gdG9faW50ZWxf cGxhbmVfc3RhdGUoZHJtX3BsYW5lLT5zdGF0ZSktPnNjYWxlcl9pZDsKPiAtLSAKPiAyLjQuOQo+ IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cgot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK