From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 9/9] drm/i915: Tidy watermark computation local types Date: Fri, 7 Oct 2016 16:48:48 +0300 Message-ID: <20161007134848.GV4329@intel.com> References: <1475847252-31580-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1475847252-31580-10-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 23F5F6EBAA for ; Fri, 7 Oct 2016 13:48:52 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1475847252-31580-10-git-send-email-tvrtko.ursulin@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: Tvrtko Ursulin Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMDcsIDIwMTYgYXQgMDI6MzQ6MTJQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K PiAKPiBDb252ZXJ0IHRvIGZyb20gc2lnbmVkIHRvIHVuc2lnbmVkIGFuZCBmcm9tIGxvbmdzCgpE ZGkgeW91IGNoZWNrIHRoYXQgd2UgY2FuJ3QgZ2V0IG5lZ2F0aXZlIHZhbHVlcz8gRGVwZW5kaW5n IG9uIGhvdyB5b3UgZG8KdGhpbmdzIHRoYXQgY2FuIGJlIHBvc3NpYmxlIG9uIGdtY2ggcGxhdGZv cm1zIG9uIGFjY291bnQgb2YgdGhlCndhdGVybWFya3MgYmVpbmcgaW52ZXJ0ZWQuIElJUkMgd2Ug bWlnaHQgaGF2ZSBwbGFjZXMgd2VyZSBuZWdhdGl2ZQp2YWx1ZXMgbWlnaHQgYmUgcHJlc2VudCBp biB0ZW1wb3JhcnkgcmVzdWx0cy4KCj4gdG8gaW50ZWdlcnMgd2hlcmUgYXBwcm9wcmlhdGUuCj4g Cj4gU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8IDYwICsrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAyOCBp bnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK PiBpbmRleCAzMDhlZGM0Mzc4ZmEuLjEyMDNhN2E4MGU5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+IEBAIC03MTEsMTQgKzcxMSwxNCBAQCBzdGF0aWMgYm9vbCBnNHhfY29tcHV0ZV93 bTAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJICAgIHVuc2lnbmVkIGludCBkaXNwbGF5 X2xhdGVuY3lfbnMsCj4gIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFt cyAqY3Vyc29yLAo+ICAJCQkgICAgdW5zaWduZWQgaW50IGN1cnNvcl9sYXRlbmN5X25zLAo+IC0J CQkgICAgaW50ICpwbGFuZV93bSwKPiAtCQkJICAgIGludCAqY3Vyc29yX3dtKQo+ICsJCQkgICAg dW5zaWduZWQgaW50ICpwbGFuZV93bSwKPiArCQkJICAgIHVuc2lnbmVkIGludCAqY3Vyc29yX3dt KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZTsKPiAgCWludCBodG90YWwsIGhkaXNwbGF5LCBjbG9j aywgY3BwOwo+IC0JaW50IGxpbmVfdGltZV91cywgbGluZV9jb3VudDsKPiAtCWludCBlbnRyaWVz LCB0bGJfbWlzczsKPiArCXVuc2lnbmVkIGludCBsaW5lX3RpbWVfdXMsIGxpbmVfY291bnQsIGVu dHJpZXM7Cj4gKwlpbnQgdGxiX21pc3M7Cj4gIAo+ICAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zv cl9wbGFuZShkZXYsIHBsYW5lKTsKPiAgCWlmICghaW50ZWxfY3J0Y19hY3RpdmUoY3J0YykpIHsK PiBAQCAtNzQwLDcgKzc0MCw3IEBAIHN0YXRpYyBib29sIGc0eF9jb21wdXRlX3dtMChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAJCWVudHJpZXMgKz0gdGxiX21pc3M7Cj4gIAllbnRyaWVzID0g RElWX1JPVU5EX1VQKGVudHJpZXMsIGRpc3BsYXktPmNhY2hlbGluZV9zaXplKTsKPiAgCSpwbGFu ZV93bSA9IGVudHJpZXMgKyBkaXNwbGF5LT5ndWFyZF9zaXplOwo+IC0JaWYgKCpwbGFuZV93bSA+ IChpbnQpZGlzcGxheS0+bWF4X3dtKQo+ICsJaWYgKCpwbGFuZV93bSA+IGRpc3BsYXktPm1heF93 bSkKPiAgCQkqcGxhbmVfd20gPSBkaXNwbGF5LT5tYXhfd207Cj4gIAo+ICAJLyogVXNlIHRoZSBs YXJnZSBidWZmZXIgbWV0aG9kIHRvIGNhbGN1bGF0ZSBjdXJzb3Igd2F0ZXJtYXJrICovCj4gQEAg LTc1Miw4ICs3NTIsOCBAQCBzdGF0aWMgYm9vbCBnNHhfY29tcHV0ZV93bTAoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgCQllbnRyaWVzICs9IHRsYl9taXNzOwo+ICAJZW50cmllcyA9IERJVl9S T1VORF9VUChlbnRyaWVzLCBjdXJzb3ItPmNhY2hlbGluZV9zaXplKTsKPiAgCSpjdXJzb3Jfd20g PSBlbnRyaWVzICsgY3Vyc29yLT5ndWFyZF9zaXplOwo+IC0JaWYgKCpjdXJzb3Jfd20gPiAoaW50 KWN1cnNvci0+bWF4X3dtKQo+IC0JCSpjdXJzb3Jfd20gPSAoaW50KWN1cnNvci0+bWF4X3dtOwo+ ICsJaWYgKCpjdXJzb3Jfd20gPiBjdXJzb3ItPm1heF93bSkKPiArCQkqY3Vyc29yX3dtID0gY3Vy c29yLT5tYXhfd207Cj4gIAo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiBAQCAtNzY2LDIxICs3NjYs MjEgQEAgc3RhdGljIGJvb2wgZzR4X2NvbXB1dGVfd20wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAqIG11c3QgYmUgZGlzYWJsZWQuCj4gICAqLwo+ICBzdGF0aWMgYm9vbCBnNHhfY2hlY2tf c3J3bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkgICBpbnQgZGlzcGxheV93bSwgaW50 IGN1cnNvcl93bSwKPiArCQkJICAgdW5zaWduZWQgaW50IGRpc3BsYXlfd20sIHVuc2lnbmVkIGlu dCBjdXJzb3Jfd20sCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF93YXRlcm1hcmtfcGFyYW1z ICpkaXNwbGF5LAo+ICAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFtcyAq Y3Vyc29yKQo+ICB7Cj4gLQlEUk1fREVCVUdfS01TKCJTUiB3YXRlcm1hcms6IGRpc3BsYXkgcGxh bmUgJWQsIGN1cnNvciAlZFxuIiwKPiArCURSTV9ERUJVR19LTVMoIlNSIHdhdGVybWFyazogZGlz cGxheSBwbGFuZSAldSwgY3Vyc29yICV1XG4iLAo+ICAJCSAgICAgIGRpc3BsYXlfd20sIGN1cnNv cl93bSk7Cj4gIAo+ICAJaWYgKGRpc3BsYXlfd20gPiBkaXNwbGF5LT5tYXhfd20pIHsKPiAtCQlE Uk1fREVCVUdfS01TKCJkaXNwbGF5IHdhdGVybWFyayBpcyB0b28gbGFyZ2UoJWQvJXUpLCBkaXNh YmxpbmdcbiIsCj4gKwkJRFJNX0RFQlVHX0tNUygiZGlzcGxheSB3YXRlcm1hcmsgaXMgdG9vIGxh cmdlKCV1LyV1KSwgZGlzYWJsaW5nXG4iLAo+ICAJCQkgICAgICBkaXNwbGF5X3dtLCBkaXNwbGF5 LT5tYXhfd20pOwo+ICAJCXJldHVybiBmYWxzZTsKPiAgCX0KPiAgCj4gIAlpZiAoY3Vyc29yX3dt ID4gY3Vyc29yLT5tYXhfd20pIHsKPiAtCQlEUk1fREVCVUdfS01TKCJjdXJzb3Igd2F0ZXJtYXJr IGlzIHRvbyBsYXJnZSglZC8ldSksIGRpc2FibGluZ1xuIiwKPiArCQlEUk1fREVCVUdfS01TKCJj dXJzb3Igd2F0ZXJtYXJrIGlzIHRvbyBsYXJnZSgldS8ldSksIGRpc2FibGluZ1xuIiwKPiAgCQkJ ICAgICAgY3Vyc29yX3dtLCBjdXJzb3ItPm1heF93bSk7Cj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAJ fQo+IEBAIC03OTgsMTUgKzc5OCwxMyBAQCBzdGF0aWMgYm9vbCBnNHhfY29tcHV0ZV9zcndtKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCSAgICAgdW5zaWduZWQgaW50IGxhdGVuY3lfbnMs Cj4gIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgKmRpc3BsYXks Cj4gIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3dhdGVybWFya19wYXJhbXMgKmN1cnNvciwK PiAtCQkJICAgICBpbnQgKmRpc3BsYXlfd20sIGludCAqY3Vyc29yX3dtKQo+ICsJCQkgICAgIHVu c2lnbmVkIGludCAqZGlzcGxheV93bSwgdW5zaWduZWQgaW50ICpjdXJzb3Jfd20pCj4gIHsKPiAg CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlOwo+ICAJaW50IGhkaXNwbGF5LCBodG90YWwsIGNwcCwgY2xvY2s7Cj4g LQl1bnNpZ25lZCBsb25nIGxpbmVfdGltZV91czsKPiAtCWludCBsaW5lX2NvdW50LCBsaW5lX3Np emU7Cj4gLQlpbnQgc21hbGwsIGxhcmdlOwo+IC0JaW50IGVudHJpZXM7Cj4gKwl1bnNpZ25lZCBp bnQgbGluZV90aW1lX3VzLCBsaW5lX2NvdW50LCBsaW5lX3NpemU7Cj4gKwl1bnNpZ25lZCBpbnQg c21hbGwsIGxhcmdlLCBlbnRyaWVzOwo+ICAKPiAgCWlmICghbGF0ZW5jeV9ucykgewo+ICAJCSpk aXNwbGF5X3dtID0gKmN1cnNvcl93bSA9IDA7Cj4gQEAgLTgzNiw5ICs4MzQsNyBAQCBzdGF0aWMg Ym9vbCBnNHhfY29tcHV0ZV9zcndtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAllbnRyaWVz ID0gRElWX1JPVU5EX1VQKGVudHJpZXMsIGN1cnNvci0+Y2FjaGVsaW5lX3NpemUpOwo+ICAJKmN1 cnNvcl93bSA9IGVudHJpZXMgKyBjdXJzb3ItPmd1YXJkX3NpemU7Cj4gIAo+IC0JcmV0dXJuIGc0 eF9jaGVja19zcndtKGRldiwKPiAtCQkJICAgICAgKmRpc3BsYXlfd20sICpjdXJzb3Jfd20sCj4g LQkJCSAgICAgIGRpc3BsYXksIGN1cnNvcik7Cj4gKwlyZXR1cm4gZzR4X2NoZWNrX3Nyd20oZGV2 LCAqZGlzcGxheV93bSwgKmN1cnNvcl93bSwgZGlzcGxheSwgY3Vyc29yKTsKPiAgfQo+ICAKPiAg I2RlZmluZSBGV19XTV9WTFYodmFsdWUsIHBsYW5lKSBcCj4gQEAgLTEzODYsOCArMTM4Miw5IEBA IHN0YXRpYyB2b2lkIGc0eF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0YXRpYyBjb25zdCB1bnNpZ25l ZCBpbnQgc3JfbGF0ZW5jeV9ucyA9IDEyMDAwOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0JaW50IHBsYW5lYV93bSwgcGxhbmViX3dtLCBj dXJzb3JhX3dtLCBjdXJzb3JiX3dtOwo+IC0JaW50IHBsYW5lX3NyLCBjdXJzb3Jfc3I7Cj4gKwl1 bnNpZ25lZCBpbnQgcGxhbmVhX3dtLCBwbGFuZWJfd207Cj4gKwl1bnNpZ25lZCBpbnQgY3Vyc29y YV93bSwgY3Vyc29yYl93bTsKPiArCXVuc2lnbmVkIGludCBwbGFuZV9zciwgY3Vyc29yX3NyOwo+ ICAJdW5zaWduZWQgaW50IGVuYWJsZWQgPSAwOwo+ICAJYm9vbCBjeHNyX2VuYWJsZWQ7Cj4gIAo+ IEBAIC0xNDE2LDggKzE0MTMsOCBAQCBzdGF0aWMgdm9pZCBnNHhfdXBkYXRlX3dtKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiAgCQlwbGFuZV9zciA9IGN1cnNvcl9zciA9IDA7Cj4gIAl9Cj4gIAo+ IC0JRFJNX0RFQlVHX0tNUygiU2V0dGluZyBGSUZPIHdhdGVybWFya3MgLSBBOiBwbGFuZT0lZCwg Y3Vyc29yPSVkLCAiCj4gLQkJICAgICAgIkI6IHBsYW5lPSVkLCBjdXJzb3I9JWQsIFNSOiBwbGFu ZT0lZCwgY3Vyc29yPSVkXG4iLAo+ICsJRFJNX0RFQlVHX0tNUygiU2V0dGluZyBGSUZPIHdhdGVy bWFya3MgLSBBOiBwbGFuZT0ldSwgY3Vyc29yPSV1LCAiCj4gKwkJICAgICAgIkI6IHBsYW5lPSV1 LCBjdXJzb3I9JXUsIFNSOiBwbGFuZT0ldSwgY3Vyc29yPSV1XG4iLAo+ICAJCSAgICAgIHBsYW5l YV93bSwgY3Vyc29yYV93bSwKPiAgCQkgICAgICBwbGFuZWJfd20sIGN1cnNvcmJfd20sCj4gIAkJ ICAgICAgcGxhbmVfc3IsIGN1cnNvcl9zcik7Cj4gQEAgLTE0NTgsOCArMTQ1NSw3IEBAIHN0YXRp YyB2b2lkIGk5NjVfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqdW51c2VkX2NydGMpCj4gIAkJ aW50IGh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOwo+ICAJCWludCBoZGlzcGxh eSA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiAgCQlpbnQgY3Bw ID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5waXhlbF9m b3JtYXQsIDApOwo+IC0JCXVuc2lnbmVkIGxvbmcgbGluZV90aW1lX3VzOwo+IC0JCWludCBlbnRy aWVzOwo+ICsJCXVuc2lnbmVkIGludCBsaW5lX3RpbWVfdXMsIGVudHJpZXM7Cj4gIAo+ICAJCWxp bmVfdGltZV91cyA9IG1heChodG90YWwgKiAxMDAwIC8gY2xvY2ssIDEpOwo+ICAKPiBAQCAtMTUx OCw5ICsxNTE0LDEwIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0 YyAqdW51c2VkX2NydGMpCj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gdW51c2VkX2NydGMt PmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF93YXRlcm1hcmtfcGFyYW1zICp3bV9pbmZvOwo+IC0J dWludDMyX3QgZndhdGVyX2xvOwo+IC0JdWludDMyX3QgZndhdGVyX2hpOwo+IC0JaW50IGN3bSwg c3J3bSA9IDE7Cj4gKwl1MzIgZndhdGVyX2xvOwo+ICsJdTMyIGZ3YXRlcl9oaTsKPiArCXVuc2ln bmVkIGludCBjd207Cj4gKwlpbnQgc3J3bSA9IDE7Cj4gIAl1bnNpZ25lZCBpbnQgZmlmb19zaXpl LCBwbGFuZWFfd20sIHBsYW5lYl93bTsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywgKmVuYWJs ZWQgPSBOVUxMOwo+ICAKPiBAQCAtMTYwNCw4ICsxNjAxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF91 cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCQlpbnQgaHRvdGFsID0g YWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7Cj4gIAkJaW50IGhkaXNwbGF5ID0gdG9faW50ZWxf Y3J0YyhlbmFibGVkKS0+Y29uZmlnLT5waXBlX3NyY193Owo+ICAJCWludCBjcHAgPSBkcm1fZm9y bWF0X3BsYW5lX2NwcChlbmFibGVkLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCwg MCk7Cj4gLQkJdW5zaWduZWQgbG9uZyBsaW5lX3RpbWVfdXM7Cj4gLQkJaW50IGVudHJpZXM7Cj4g KwkJdW5zaWduZWQgaW50IGxpbmVfdGltZV91cywgZW50cmllczsKPiAgCj4gIAkJaWYgKElTX0k5 MTVHTShkZXYpIHx8IElTX0k5NDVHTShkZXYpKQo+ICAJCQljcHAgPSA0Owo+IEBAIC0xNjE2LDcg KzE2MTIsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVu dXNlZF9jcnRjKQo+ICAJCWVudHJpZXMgPSAoKChzcl9sYXRlbmN5X25zIC8gbGluZV90aW1lX3Vz KSArIDEwMDApIC8gMTAwMCkgKgo+ICAJCQljcHAgKiBoZGlzcGxheTsKPiAgCQllbnRyaWVzID0g RElWX1JPVU5EX1VQKGVudHJpZXMsIHdtX2luZm8tPmNhY2hlbGluZV9zaXplKTsKPiAtCQlEUk1f REVCVUdfS01TKCJzZWxmLXJlZnJlc2ggZW50cmllczogJWRcbiIsIGVudHJpZXMpOwo+ICsJCURS TV9ERUJVR19LTVMoInNlbGYtcmVmcmVzaCBlbnRyaWVzOiAldVxuIiwgZW50cmllcyk7Cj4gIAkJ c3J3bSA9IHdtX2luZm8tPmZpZm9fc2l6ZSAtIGVudHJpZXM7Cj4gIAkJaWYgKHNyd20gPCAwKQo+ ICAJCQlzcndtID0gMTsKPiBAQCAtMTYyOCw3ICsxNjI0LDcgQEAgc3RhdGljIHZvaWQgaTl4eF91 cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCQkJSTkxNV9XUklURShG V19CTENfU0VMRiwgc3J3bSAmIDB4M2YpOwo+ICAJfQo+ICAKPiAtCURSTV9ERUJVR19LTVMoIlNl dHRpbmcgRklGTyB3YXRlcm1hcmtzIC0gQTogJWQsIEI6ICVkLCBDOiAlZCwgU1IgJWRcbiIsCj4g KwlEUk1fREVCVUdfS01TKCJTZXR0aW5nIEZJRk8gd2F0ZXJtYXJrcyAtIEE6ICV1LCBCOiAldSwg QzogJXUsIFNSICVkXG4iLAo+ICAJCSAgICAgIHBsYW5lYV93bSwgcGxhbmViX3dtLCBjd20sIHNy d20pOwo+ICAKPiAgCWZ3YXRlcl9sbyA9ICgocGxhbmViX3dtICYgMHgzZikgPDwgMTYpIHwgKHBs YW5lYV93bSAmIDB4M2YpOwo+IC0tIAo+IDIuNy40Cj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVs IE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK