From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/7] drm/i915: Clean up DP/HDMI limited color range handling Date: Thu, 13 Aug 2015 15:01:02 +0300 Message-ID: <20150813120102.GP5176@intel.com> References: <1436184606-18729-1-git-send-email-ville.syrjala@linux.intel.com> <1436184606-18729-2-git-send-email-ville.syrjala@linux.intel.com> <55CC3658.40308@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 88FB26E33F for ; Thu, 13 Aug 2015 05:01:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55CC3658.40308@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sivakumar Thulasimani Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMTMsIDIwMTUgYXQgMTE6NDY6NTZBTSArMDUzMCwgU2l2YWt1bWFyIFRodWxh c2ltYW5pIHdyb3RlOgo+IHNkdm8gaXMgc3RpbGwgdXNpbmcgY29sb3JfcmFuZ2UgbmFtZSBpbiBp dCdzIGZ1bmN0aW9ucy4gd291bGQgYmUgZ29vZCB0bwo+IHJlbmFtZSB0aGF0IGFzIHdlbGwgYWxv bmcgd2l0aCBkcCAmIGhkbWkgZG9uZSBoZXJlLgoKRG9oLiBJIGZvcmdvdCBhYm91dCBzZHZvIGNv bXBsZXRlbHkuIEknbGwgdGFrZSBhIGxvb2sgdG8gbWFrZSBzdXJlIGl0CmNvbmZvcm1zIHRvIHRo ZSBzYW1lIHN0eWxlLiBUaGFua3MgZm9yIHNwb3R0aW5nIGl0LgoKPiAKPiBvdGhlcndpc2UgY2hh bmdlcyBhcmUgZmluZQo+IFJldmlld2VkLWJ5OiBTaXZha3VtYXIgVGh1bGFzaW1hbmkgPHNpdmFr dW1hci50aHVsYXNpbWFuaUBpbnRlbC5jb20+Cj4gCj4gT24gTW9uZGF5IDA2IEp1bHkgMjAxNSAw NTo0MCBQTSwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gPiBGcm9tOiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4KPiA+IEN1 cnJlbnRseSB3ZSB0cmVhdCBpbnRlbF97ZHAsaGRtaX0tPmNvbG9yX3JhbmdlIGFzIHBhcnRseSB1 c2VyCj4gPiBjb250cm9sbGVyIHZhbHVlICh2aWEgdGhlIHByb3BlcnR5KSBidXQgd2UgYWxzbyBj aGFuZ2UgaXQgZHVyaW5nCj4gPiAuY29tcHV0ZV9jb25maWcoKSB3aGVuIHVzaW5nIHRoZSAiQXV0 b21hdGljIiBtb2RlLiBUaGF0IGlzIGEgYml0Cj4gPiBjb25mdXNpbmcsIHNvIGxldCdzIGp1c3Qg Y2hhbmdlIHRoaW5ncyBzbyB0aGF0IHdlIHN0b3JlIHRoZSB1c2VyCj4gPiBwcm9wZXJ0eSB2YWx1 ZXMgaW4gaW50ZWxfZHAsIGFuZCBvbmx5IGNoYW5nZSB3aGF0J3Mgc3RvcmVkIGluCj4gPiBwaXBl X2NvbmZpZyBkdXJpbmcgLmNvbXB1dGVfY29uZmlnKCkuCj4gPgo+ID4gVGhlcmUgc2hvdWxkIGJl IG5vIGZ1bmN0aW9uYWwgY2hhbmdlLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgIHwgMjUgKysrKysrKysrKysrLS0tLS0tLS0tLS0t LQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgfCAgNCArKy0tCj4gPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8IDI2ICsrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tCj4gPiAgIDMgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMjkgZGVs ZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBmY2M2NGU1 Li5kZWNlZmExIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTE0NTUs MTUgKzE0NTUsMTMgQEAgZm91bmQ6Cj4gPiAgIAkJICogQ0VBLTg2MS1FIC0gNS4xIERlZmF1bHQg RW5jb2RpbmcgUGFyYW1ldGVycwo+ID4gICAJCSAqIFZFU0EgRGlzcGxheVBvcnQgVmVyLjEuMmEg LSA1LjEuMS4xIFZpZGVvIENvbG9yaW1ldHJ5Cj4gPiAgIAkJICovCj4gPiAtCQlpZiAoYnBwICE9 IDE4ICYmIGRybV9tYXRjaF9jZWFfbW9kZShhZGp1c3RlZF9tb2RlKSA+IDEpCj4gPiAtCQkJaW50 ZWxfZHAtPmNvbG9yX3JhbmdlID0gRFBfQ09MT1JfUkFOR0VfMTZfMjM1Owo+ID4gLQkJZWxzZQo+ ID4gLQkJCWludGVsX2RwLT5jb2xvcl9yYW5nZSA9IDA7Cj4gPiArCQlwaXBlX2NvbmZpZy0+bGlt aXRlZF9jb2xvcl9yYW5nZSA9Cj4gPiArCQkJYnBwICE9IDE4ICYmIGRybV9tYXRjaF9jZWFfbW9k ZShhZGp1c3RlZF9tb2RlKSA+IDE7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlwaXBlX2NvbmZpZy0+ bGltaXRlZF9jb2xvcl9yYW5nZSA9Cj4gPiArCQkJaW50ZWxfZHAtPmxpbWl0ZWRfY29sb3JfcmFu Z2U7Cj4gPiAgIAl9Cj4gPiAgIAo+ID4gLQlpZiAoaW50ZWxfZHAtPmNvbG9yX3JhbmdlKQo+ID4g LQkJcGlwZV9jb25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UgPSB0cnVlOwo+ID4gLQo+ID4gICAJ aW50ZWxfZHAtPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ID4gICAKPiA+ICAgCWlmIChpbnRl bF9kcC0+bnVtX3NpbmtfcmF0ZXMpIHsKPiA+IEBAIC0xNjA1LDggKzE2MDMsOSBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kcF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4g ICAJCQl0cmFuc19kcCAmPSB+VFJBTlNfRFBfRU5IX0ZSQU1JTkc7Cj4gPiAgIAkJSTkxNV9XUklU RShUUkFOU19EUF9DVEwoY3J0Yy0+cGlwZSksIHRyYW5zX2RwKTsKPiA+ICAgCX0gZWxzZSB7Cj4g PiAtCQlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2KSAmJiAhSVNfVkFMTEVZVklFVyhkZXYpKQo+ID4g LQkJCWludGVsX2RwLT5EUCB8PSBpbnRlbF9kcC0+Y29sb3JfcmFuZ2U7Cj4gPiArCQlpZiAoIUhB U19QQ0hfU1BMSVQoZGV2KSAmJiAhSVNfVkFMTEVZVklFVyhkZXYpICYmCj4gPiArCQkgICAgY3J0 Yy0+Y29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlKQo+ID4gKwkJCWludGVsX2RwLT5EUCB8PSBE UF9DT0xPUl9SQU5HRV8xNl8yMzU7Cj4gPiAgIAo+ID4gICAJCWlmIChhZGp1c3RlZF9tb2RlLT5m bGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DKQo+ID4gICAJCQlpbnRlbF9kcC0+RFAgfD0gRFBf U1lOQ19IU19ISUdIOwo+ID4gQEAgLTQ2NjMsNyArNDY2Miw3IEBAIGludGVsX2RwX3NldF9wcm9w ZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gICAKPiA+ICAgCWlmIChw cm9wZXJ0eSA9PSBkZXZfcHJpdi0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkgewo+ID4gICAJCWJv b2wgb2xkX2F1dG8gPSBpbnRlbF9kcC0+Y29sb3JfcmFuZ2VfYXV0bzsKPiA+IC0JCXVpbnQzMl90 IG9sZF9yYW5nZSA9IGludGVsX2RwLT5jb2xvcl9yYW5nZTsKPiA+ICsJCWJvb2wgb2xkX3Jhbmdl ID0gaW50ZWxfZHAtPmxpbWl0ZWRfY29sb3JfcmFuZ2U7Cj4gPiAgIAo+ID4gICAJCXN3aXRjaCAo dmFsKSB7Cj4gPiAgIAkJY2FzZSBJTlRFTF9CUk9BRENBU1RfUkdCX0FVVE86Cj4gPiBAQCAtNDY3 MSwxOCArNDY3MCwxOCBAQCBpbnRlbF9kcF9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiA+ICAgCQkJYnJlYWs7Cj4gPiAgIAkJY2FzZSBJTlRFTF9CUk9BRENB U1RfUkdCX0ZVTEw6Cj4gPiAgIAkJCWludGVsX2RwLT5jb2xvcl9yYW5nZV9hdXRvID0gZmFsc2U7 Cj4gPiAtCQkJaW50ZWxfZHAtPmNvbG9yX3JhbmdlID0gMDsKPiA+ICsJCQlpbnRlbF9kcC0+bGlt aXRlZF9jb2xvcl9yYW5nZSA9IGZhbHNlOwo+ID4gICAJCQlicmVhazsKPiA+ICAgCQljYXNlIElO VEVMX0JST0FEQ0FTVF9SR0JfTElNSVRFRDoKPiA+ICAgCQkJaW50ZWxfZHAtPmNvbG9yX3Jhbmdl X2F1dG8gPSBmYWxzZTsKPiA+IC0JCQlpbnRlbF9kcC0+Y29sb3JfcmFuZ2UgPSBEUF9DT0xPUl9S QU5HRV8xNl8yMzU7Cj4gPiArCQkJaW50ZWxfZHAtPmxpbWl0ZWRfY29sb3JfcmFuZ2UgPSB0cnVl Owo+ID4gICAJCQlicmVhazsKPiA+ICAgCQlkZWZhdWx0Ogo+ID4gICAJCQlyZXR1cm4gLUVJTlZB TDsKPiA+ICAgCQl9Cj4gPiAgIAo+ID4gICAJCWlmIChvbGRfYXV0byA9PSBpbnRlbF9kcC0+Y29s b3JfcmFuZ2VfYXV0byAmJgo+ID4gLQkJICAgIG9sZF9yYW5nZSA9PSBpbnRlbF9kcC0+Y29sb3Jf cmFuZ2UpCj4gPiArCQkgICAgb2xkX3JhbmdlID09IGludGVsX2RwLT5saW1pdGVkX2NvbG9yX3Jh bmdlKQo+ID4gICAJCQlyZXR1cm4gMDsKPiA+ICAgCj4gPiAgIAkJZ290byBkb25lOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IDNmMGE4OTAuLjk4M2E3YTcgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC02NjksNyArNjY5LDcgQEAgc3RydWN0 IGN4c3JfbGF0ZW5jeSB7Cj4gPiAgIHN0cnVjdCBpbnRlbF9oZG1pIHsKPiA+ICAgCXUzMiBoZG1p X3JlZzsKPiA+ICAgCWludCBkZGNfYnVzOwo+ID4gLQl1aW50MzJfdCBjb2xvcl9yYW5nZTsKPiA+ ICsJYm9vbCBsaW1pdGVkX2NvbG9yX3JhbmdlOwo+ID4gICAJYm9vbCBjb2xvcl9yYW5nZV9hdXRv Owo+ID4gICAJYm9vbCBoYXNfaGRtaV9zaW5rOwo+ID4gICAJYm9vbCBoYXNfYXVkaW87Cj4gPiBA QCAtNzE0LDcgKzcxNCw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7Cj4gPiAgIAl1aW50MzJfdCBEUDsK PiA+ICAgCWJvb2wgaGFzX2F1ZGlvOwo+ID4gICAJZW51bSBoZG1pX2ZvcmNlX2F1ZGlvIGZvcmNl X2F1ZGlvOwo+ID4gLQl1aW50MzJfdCBjb2xvcl9yYW5nZTsKPiA+ICsJYm9vbCBsaW1pdGVkX2Nv bG9yX3JhbmdlOwo+ID4gICAJYm9vbCBjb2xvcl9yYW5nZV9hdXRvOwo+ID4gICAJdWludDhfdCBs aW5rX2J3Owo+ID4gICAJdWludDhfdCByYXRlX3NlbGVjdDsKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMKPiA+IGluZGV4IGM3ZTkxMmIuLmJhODQ1ZjcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYwo+ID4gQEAgLTg0OCw4ICs4NDgsOCBAQCBzdGF0aWMgdm9pZCBpbnRl bF9oZG1pX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiAgIAl1MzIg aGRtaV92YWw7Cj4gPiAgIAo+ID4gICAJaGRtaV92YWwgPSBTRFZPX0VOQ09ESU5HX0hETUk7Cj4g PiAtCWlmICghSEFTX1BDSF9TUExJVChkZXYpKQo+ID4gLQkJaGRtaV92YWwgfD0gaW50ZWxfaGRt aS0+Y29sb3JfcmFuZ2U7Cj4gPiArCWlmICghSEFTX1BDSF9TUExJVChkZXYpICYmIGNydGMtPmNv bmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkKPiA+ICsJCWhkbWlfdmFsIHw9IEhETUlfQ09MT1Jf UkFOR0VfMTZfMjM1Owo+ID4gICAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVf RkxBR19QVlNZTkMpCj4gPiAgIAkJaGRtaV92YWwgfD0gU0RWT19WU1lOQ19BQ1RJVkVfSElHSDsK PiA+ICAgCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DKQo+ ID4gQEAgLTEyNTcsMTEgKzEyNTcsMTIgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gICAKPiA+ICAgCWlmIChpbnRlbF9o ZG1pLT5jb2xvcl9yYW5nZV9hdXRvKSB7Cj4gPiAgIAkJLyogU2VlIENFQS04NjEtRSAtIDUuMSBE ZWZhdWx0IEVuY29kaW5nIFBhcmFtZXRlcnMgKi8KPiA+IC0JCWlmIChwaXBlX2NvbmZpZy0+aGFz X2hkbWlfc2luayAmJgo+ID4gLQkJICAgIGRybV9tYXRjaF9jZWFfbW9kZShhZGp1c3RlZF9tb2Rl KSA+IDEpCj4gPiAtCQkJaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2UgPSBIRE1JX0NPTE9SX1JBTkdF XzE2XzIzNTsKPiA+IC0JCWVsc2UKPiA+IC0JCQlpbnRlbF9oZG1pLT5jb2xvcl9yYW5nZSA9IDA7 Cj4gPiArCQlwaXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9Cj4gPiArCQkJcGlwZV9j b25maWctPmhhc19oZG1pX3NpbmsgJiYKPiA+ICsJCQlkcm1fbWF0Y2hfY2VhX21vZGUoYWRqdXN0 ZWRfbW9kZSkgPiAxOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJcGlwZV9jb25maWctPmxpbWl0ZWRf Y29sb3JfcmFuZ2UgPQo+ID4gKwkJCWludGVsX2hkbWktPmxpbWl0ZWRfY29sb3JfcmFuZ2U7Cj4g PiAgIAl9Cj4gPiAgIAo+ID4gICAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVf RkxBR19EQkxDTEspIHsKPiA+IEBAIC0xMjcwLDkgKzEyNzEsNiBAQCBib29sIGludGVsX2hkbWlf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgIAkJY2xv Y2tfMTJicGMgKj0gMjsKPiA+ICAgCX0KPiA+ICAgCj4gPiAtCWlmIChpbnRlbF9oZG1pLT5jb2xv cl9yYW5nZSkKPiA+IC0JCXBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlID0gdHJ1ZTsK PiA+IC0KPiA+ICAgCWlmIChIQVNfUENIX1NQTElUKGRldikgJiYgIUhBU19EREkoZGV2KSkKPiA+ ICAgCQlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1ZTsKPiA+ICAgCj4gPiBAQCAt MTQ2Nyw3ICsxNDY1LDcgQEAgaW50ZWxfaGRtaV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAgCj4gPiAgIAlpZiAocHJvcGVydHkgPT0gZGV2X3ByaXYt PmJyb2FkY2FzdF9yZ2JfcHJvcGVydHkpIHsKPiA+ICAgCQlib29sIG9sZF9hdXRvID0gaW50ZWxf aGRtaS0+Y29sb3JfcmFuZ2VfYXV0bzsKPiA+IC0JCXVpbnQzMl90IG9sZF9yYW5nZSA9IGludGVs X2hkbWktPmNvbG9yX3JhbmdlOwo+ID4gKwkJYm9vbCBvbGRfcmFuZ2UgPSBpbnRlbF9oZG1pLT5s aW1pdGVkX2NvbG9yX3JhbmdlOwo+ID4gICAKPiA+ICAgCQlzd2l0Y2ggKHZhbCkgewo+ID4gICAJ CWNhc2UgSU5URUxfQlJPQURDQVNUX1JHQl9BVVRPOgo+ID4gQEAgLTE0NzUsMTggKzE0NzMsMTgg QEAgaW50ZWxfaGRtaV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiA+ICAgCQkJYnJlYWs7Cj4gPiAgIAkJY2FzZSBJTlRFTF9CUk9BRENBU1RfUkdCX0ZVTEw6 Cj4gPiAgIAkJCWludGVsX2hkbWktPmNvbG9yX3JhbmdlX2F1dG8gPSBmYWxzZTsKPiA+IC0JCQlp bnRlbF9oZG1pLT5jb2xvcl9yYW5nZSA9IDA7Cj4gPiArCQkJaW50ZWxfaGRtaS0+bGltaXRlZF9j b2xvcl9yYW5nZSA9IGZhbHNlOwo+ID4gICAJCQlicmVhazsKPiA+ICAgCQljYXNlIElOVEVMX0JS T0FEQ0FTVF9SR0JfTElNSVRFRDoKPiA+ICAgCQkJaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0 byA9IGZhbHNlOwo+ID4gLQkJCWludGVsX2hkbWktPmNvbG9yX3JhbmdlID0gSERNSV9DT0xPUl9S QU5HRV8xNl8yMzU7Cj4gPiArCQkJaW50ZWxfaGRtaS0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRy dWU7Cj4gPiAgIAkJCWJyZWFrOwo+ID4gICAJCWRlZmF1bHQ6Cj4gPiAgIAkJCXJldHVybiAtRUlO VkFMOwo+ID4gICAJCX0KPiA+ICAgCj4gPiAgIAkJaWYgKG9sZF9hdXRvID09IGludGVsX2hkbWkt PmNvbG9yX3JhbmdlX2F1dG8gJiYKPiA+IC0JCSAgICBvbGRfcmFuZ2UgPT0gaW50ZWxfaGRtaS0+ Y29sb3JfcmFuZ2UpCj4gPiArCQkgICAgb2xkX3JhbmdlID09IGludGVsX2hkbWktPmxpbWl0ZWRf Y29sb3JfcmFuZ2UpCj4gPiAgIAkJCXJldHVybiAwOwo+ID4gICAKPiA+ICAgCQlnb3RvIGRvbmU7 Cj4gCj4gLS0gCj4gcmVnYXJkcywKPiBTaXZha3VtYXIgVGh1bGFzaW1hbmkKCi0tIApWaWxsZSBT eXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==