From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 1/8] drm/i915/skl+: calculate pixel_rate & relative_data_rate in fixed point Date: Thu, 16 Mar 2017 15:48:13 -0300 Message-ID: <1489690093.2442.165.camel@intel.com> References: <20170228113143.8280-1-mahesh1.kumar@intel.com> <20170228113143.8280-2-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 04B836EB9E for ; Thu, 16 Mar 2017 18:48:17 +0000 (UTC) In-Reply-To: <20170228113143.8280-2-mahesh1.kumar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mahesh Kumar , intel-gfx@lists.freedesktop.org Cc: maarten.lankhorst@intel.com List-Id: intel-gfx@lists.freedesktop.org RW0gVGVyLCAyMDE3LTAyLTI4IMOgcyAxNzowMSArMDUzMCwgTWFoZXNoIEt1bWFyIGVzY3JldmV1 Ogo+IFRoaXMgcGF0Y2ggbWFrZSBjaGFuZ2VzIHRvIGNhbGN1bGF0ZSBhZGp1c3RlZCBwbGFuZSBw aXhlbCByYXRlICYKPiBwbGFuZSBkb3duc2NhbGUgYW1vdW50IHVzaW5nIGZpeGVkX3BvaW50IGZ1 bmN0aW9ucyBhdmFpbGFibGUuIFRoaXMKPiBhbHNvCj4gYWRkcyBmZXcgZml4ZWQgcG9pbnQgZnVu Y3Rpb24gdG8gZmFjaWxpdGF0ZSBjYWxjdWxhdGlvbi4KCkJlZm9yZSB3ZSBnbyBpbnRvIHRoZSBm dWxsIHJldmlldyBJIG5lZWQgdG8gYXNrOiBidXQgd2h5IGRvZXMgdGhlIHBhdGNoCmRvIHdoYXQg aXQgc2F5cyBpdCBkb2VzPyBJcyB0aGlzIGEgYnVnIGZpeD8gSXMgdGhpcyBuZWVkZWQgZm9yIHNv bWUKcmV3b3JrIGxhdGVyIGluIHRoZSBzZXJpZXM/IFdoYXQgaGFwcGVucyBpZiB3ZSBkb24ndCBt ZXJnZSB0aGlzIHBhdGNoCmJ1dCB0cnkgdG8gbWVyZ2UgdGhlIG90aGVycyB3aXRob3V0IGl0PyBI YXZpbmcgdGhvc2UgcXVlc3Rpb25zIGFuc3dlcmVkCmluIHRoZSBjb21taXQgbWVzc2FnZSBoZWxw IG5vdCBvbmx5IHRoZSBwYXRjaCByZXZpZXdlcnMsIGJ1dCBhbHNvIGFsbAp0aGUgZnV0dXJlIGdp dC1iaXNlY3RlcnMgYW5kIGFueWJvZHkgZWxzZSB3aG8gaGFwcGVucyB0byBlbmQgdXAKdG91Y2hp bmcgdGhpcyBjb2RlIGNoYW5nZS4KCgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1haGVzaCBLdW1hciA8 bWFoZXNoMS5rdW1hckBpbnRlbC5jb20+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAtLS0tCj4gwqBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwgNDIgKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0KPiDCoDIgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9u cygrKSwgMjUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRl eCBlZWQ5ZWFkMWI1OTIuLmYyNmY2MWIwZTdjOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IEBAIC0xNzAsOCArMTcwLDggQEAgc3RhdGljIGlubGluZSB1aW50X2ZpeGVkXzE2XzE2X3QK PiBtYXhfZml4ZWRfMTZfMTYodWludF9maXhlZF8xNl8xNl90IG1heDEsCj4gwqAJcmV0dXJuIG1h eDsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgaW5saW5lIHVpbnRfZml4ZWRfMTZfMTZfdCBmaXhlZF8x Nl8xNl9kaXZfcm91bmRfdXAodWludDMyX3QKPiB2YWwsCj4gLQkJCQkJCQnCoMKgdWludDMyX3QK PiBkKQo+ICtzdGF0aWMgaW5saW5lIHVpbnRfZml4ZWRfMTZfMTZfdCBmaXhlZF8xNl8xNl9kaXYo dWludDMyX3QgdmFsLAo+ICsJCQkJCQnCoHVpbnQzMl90IGQpCgpXaHkgYXJlIHdlIHJlbmFtaW5n IHRoaXM/IEl0IHN0aWxsIHJvdW5kcyB1cC4KCj4gwqB7Cj4gwqAJdWludF9maXhlZF8xNl8xNl90 IGZwLCByZXM7Cj4gwqAKPiBAQCAtMTgwLDggKzE4MCw4IEBAIHN0YXRpYyBpbmxpbmUgdWludF9m aXhlZF8xNl8xNl90Cj4gZml4ZWRfMTZfMTZfZGl2X3JvdW5kX3VwKHVpbnQzMl90IHZhbCwKPiDC oAlyZXR1cm4gcmVzOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBpbmxpbmUgdWludF9maXhlZF8xNl8x Nl90Cj4gZml4ZWRfMTZfMTZfZGl2X3JvdW5kX3VwX3U2NCh1aW50MzJfdCB2YWwsCj4gLQkJCQkJ CQnCoMKgwqDCoMKgwqB1aW50MzIKPiBfdCBkKQo+ICtzdGF0aWMgaW5saW5lIHVpbnRfZml4ZWRf MTZfMTZfdCBmaXhlZF8xNl8xNl9kaXZfdTY0KHVpbnQzMl90IHZhbCwKPiArCQkJCQkJwqDCoMKg wqDCoHVpbnQzMl90IGQpCgpXaHkgYXJlIHdlIHJlbmFtaW5nIHRoaXM/IEl0IHN0aWxsIHJvdW5k cyB1cC4KCj4gwqB7Cj4gwqAJdWludF9maXhlZF8xNl8xNl90IHJlczsKPiDCoAl1aW50NjRfdCBp bnRlcm1fdmFsOwo+IEBAIC0yMDYsNiArMjA2LDMyIEBAIHN0YXRpYyBpbmxpbmUgdWludF9maXhl ZF8xNl8xNl90Cj4gbXVsX3UzMl9maXhlZF8xNl8xNih1aW50MzJfdCB2YWwsCj4gwqAJcmV0dXJu IGZwOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgbXVsX3UzMl9maXhlZF8x Nl8xNl9yb3VuZF91cCh1aW50MzJfdCB2YWwsCj4gKwkJCQkJCcKgwqDCoMKgdWludF9maXhlZF8x Nl8xNgo+IF90IG11bCkKPiArewo+ICsJdWludDY0X3QgaW50ZXJtZWRpYXRlX3ZhbDsKPiArCXVp bnQzMl90IHJlc3VsdDsKPiArCj4gKwlpbnRlcm1lZGlhdGVfdmFsID0gKHVpbnQ2NF90KSB2YWwg KiBtdWwudmFsOwo+ICsJaW50ZXJtZWRpYXRlX3ZhbCA9IERJVl9ST1VORF9VUF9VTEwoaW50ZXJt ZWRpYXRlX3ZhbCwgMSA8PAo+IDE2KTsKPiArCVdBUk5fT04oaW50ZXJtZWRpYXRlX3ZhbCA+PiAz Mik7Cj4gKwlyZXN1bHQgPSBjbGFtcF90KHVpbnQzMl90LCBpbnRlcm1lZGlhdGVfdmFsLCAwLCB+ MCk7Cj4gKwlyZXR1cm4gcmVzdWx0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHVpbnRfZml4 ZWRfMTZfMTZfdCBtdWxfZml4ZWRfMTZfMTYodWludF9maXhlZF8xNl8xNl90Cj4gdmFsLAo+ICsJ CQkJCQnCoHVpbnRfZml4ZWRfMTZfMTZfdAo+IG11bCkKPiArewo+ICsJdWludDY0X3QgaW50ZXJt ZWRpYXRlX3ZhbDsKPiArCXVpbnRfZml4ZWRfMTZfMTZfdCBmcDsKPiArCj4gKwlpbnRlcm1lZGlh dGVfdmFsID0gKHVpbnQ2NF90KSB2YWwudmFsICogbXVsLnZhbDsKPiArCWludGVybWVkaWF0ZV92 YWwgPSBpbnRlcm1lZGlhdGVfdmFsID4+IDE2Owo+ICsJV0FSTl9PTihpbnRlcm1lZGlhdGVfdmFs ID4+IDMyKTsKPiArCWZwLnZhbCA9IGNsYW1wX3QodWludDMyX3QsIGludGVybWVkaWF0ZV92YWws IDAsIH4wKTsKPiArCXJldHVybiBmcDsKPiArfQo+ICsKPiDCoHN0YXRpYyBpbmxpbmUgY29uc3Qg Y2hhciAqeWVzbm8oYm9vbCB2KQo+IMKgewo+IMKgCXJldHVybiB2ID8gInllcyIgOiAibm8iOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggMTY5YzQ5MDhhZDViLi4wOTU2MmQ4NmMw ZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtMzE2MSwyOCArMzE2MSwzMCBA QCB2b2lkIHNrbF9kZGJfZ2V0X2h3X3N0YXRlKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+IMKgICogUmV0dXJuIHZhbHVlIGlzIHByb3ZpZGVkIGluIDE2LjE2IGZpeGVkIHBv aW50IGZvcm0gdG8gcmV0YWluCj4gZnJhY3Rpb25hbCBwYXJ0Lgo+IMKgICogQ2FsbGVyIHNob3Vs ZCB0YWtlIGNhcmUgb2YgZGl2aWRpbmcgJiByb3VuZGluZyBvZmYgdGhlIHZhbHVlLgo+IMKgICov Cj4gLXN0YXRpYyB1aW50MzJfdAo+ICtzdGF0aWMgdWludF9maXhlZF8xNl8xNl90Cj4gwqBza2xf cGxhbmVfZG93bnNjYWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBz dGF0ZSkKPiDCoHsKPiAtCXVpbnQzMl90IGRvd25zY2FsZV9oLCBkb3duc2NhbGVfdzsKPiDCoAl1 aW50MzJfdCBzcmNfdywgc3JjX2gsIGRzdF93LCBkc3RfaDsKPiArCXVpbnRfZml4ZWRfMTZfMTZf dCBmcF93X3JhdGlvLCBmcF9oX3JhdGlvOwo+ICsJdWludF9maXhlZF8xNl8xNl90IGRvd25zY2Fs ZV9oLCBkb3duc2NhbGVfdzsKPiDCoAo+IMKgCWlmIChXQVJOX09OKCFwc3RhdGUtPmJhc2Uudmlz aWJsZSkpCj4gLQkJcmV0dXJuIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKPiArCQlyZXR1 cm4gdTMyX3RvX2ZpeGVkXzE2XzE2KDApOwo+IMKgCj4gLQkvKiBuLmIuLCBzcmMgaXMgMTYuMTYg Zml4ZWQgcG9pbnQsIGRzdCBpcyB3aG9sZSBpbnRlZ2VyICovCj4gLQlzcmNfdyA9IGRybV9yZWN0 X3dpZHRoKCZwc3RhdGUtPmJhc2Uuc3JjKTsKPiAtCXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZw c3RhdGUtPmJhc2Uuc3JjKTsKPiArCXNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+YmFz ZS5zcmMpID4+IDE2Owo+ICsJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBzdGF0ZS0+YmFzZS5z cmMpID4+IDE2Owo+IMKgCWRzdF93ID0gZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+YmFzZS5kc3Qp Owo+IMKgCWRzdF9oID0gZHJtX3JlY3RfaGVpZ2h0KCZwc3RhdGUtPmJhc2UuZHN0KTsKPiDCoAlp ZiAoZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwc3RhdGUtPmJhc2Uucm90YXRpb24pKQo+IMKgCQlz d2FwKGRzdF93LCBkc3RfaCk7Cj4gwqAKPiAtCWRvd25zY2FsZV9oID0gbWF4KHNyY19oIC8gZHN0 X2gsCj4gKHVpbnQzMl90KURSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORyk7Cj4gLQlkb3duc2Nh bGVfdyA9IG1heChzcmNfdyAvIGRzdF93LAo+ICh1aW50MzJfdClEUk1fUExBTkVfSEVMUEVSX05P X1NDQUxJTkcpOwo+ICsJZnBfd19yYXRpbyA9IGZpeGVkXzE2XzE2X2RpdihzcmNfdywgZHN0X3cp Owo+ICsJZnBfaF9yYXRpbyA9IGZpeGVkXzE2XzE2X2RpdihzcmNfaCwgZHN0X2gpOwo+ICsJZG93 bnNjYWxlX3cgPSBtYXhfZml4ZWRfMTZfMTYoZnBfd19yYXRpbywKPiB1MzJfdG9fZml4ZWRfMTZf MTYoMSkpOwo+ICsJZG93bnNjYWxlX2ggPSBtYXhfZml4ZWRfMTZfMTYoZnBfaF9yYXRpbywKPiB1 MzJfdG9fZml4ZWRfMTZfMTYoMSkpOwo+IMKgCj4gwqAJLyogUHJvdmlkZSByZXN1bHQgaW4gMTYu MTYgZml4ZWQgcG9pbnQgKi8KPiAtCXJldHVybiAodWludDY0X3QpZG93bnNjYWxlX3cgKiBkb3du c2NhbGVfaCA+PiAxNjsKPiArCXJldHVybiBtdWxfZml4ZWRfMTZfMTYoZG93bnNjYWxlX3csIGRv d25zY2FsZV9oKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIHVuc2lnbmVkIGludAo+IEBAIC0zMTkx LDEwICszMTkzLDExIEBAIHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0 Cj4gaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+IMKgCQkJwqDCoMKgwqDCoGludCB5KQo+IMKg ewo+IMKgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlID0KPiB0b19pbnRl bF9wbGFuZV9zdGF0ZShwc3RhdGUpOwo+IC0JdWludDMyX3QgZG93bl9zY2FsZV9hbW91bnQsIGRh dGFfcmF0ZTsKPiArCXVpbnQzMl90IGRhdGFfcmF0ZTsKPiDCoAl1aW50MzJfdCB3aWR0aCA9IDAs IGhlaWdodCA9IDA7Cj4gwqAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gwqAJdTMyIGZv cm1hdDsKPiArCXVpbnRfZml4ZWRfMTZfMTZfdCBkb3duc2NhbGVfYW1vdW50Owo+IMKgCj4gwqAJ aWYgKCFpbnRlbF9wc3RhdGUtPmJhc2UudmlzaWJsZSkKPiDCoAkJcmV0dXJuIDA7Cj4gQEAgLTMy MjYsOSArMzIyOSw5IEBAIHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0 Cj4gaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+IMKgCQlkYXRhX3JhdGUgPSB3aWR0aCAqIGhl aWdodCAqIGZiLT5mb3JtYXQtPmNwcFswXTsKPiDCoAl9Cj4gwqAKPiAtCWRvd25fc2NhbGVfYW1v dW50ID0KPiBza2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChpbnRlbF9wc3RhdGUpOwo+ICsJZG93 bnNjYWxlX2Ftb3VudCA9IHNrbF9wbGFuZV9kb3duc2NhbGVfYW1vdW50KGludGVsX3BzdGF0ZSk7 Cj4gwqAKPiAtCXJldHVybiAodWludDY0X3QpZGF0YV9yYXRlICogZG93bl9zY2FsZV9hbW91bnQg Pj4gMTY7Cj4gKwlyZXR1cm4gbXVsX3UzMl9maXhlZF8xNl8xNl9yb3VuZF91cChkYXRhX3JhdGUs Cj4gZG93bnNjYWxlX2Ftb3VudCk7Cj4gwqB9Cj4gwqAKPiDCoC8qCj4gQEAgLTM0ODgsNyArMzQ5 MSw3IEBAIHN0YXRpYyB1aW50X2ZpeGVkXzE2XzE2X3QKPiBza2xfd21fbWV0aG9kMSh1aW50MzJf dCBwaXhlbF9yYXRlLCB1aW50OF90IGNwcCwKPiDCoAkJcmV0dXJuIEZQXzE2XzE2X01BWDsKPiDC oAo+IMKgCXdtX2ludGVybWVkaWF0ZV92YWwgPSBsYXRlbmN5ICogcGl4ZWxfcmF0ZSAqIGNwcDsK PiAtCXJldCA9IGZpeGVkXzE2XzE2X2Rpdl9yb3VuZF91cF91NjQod21faW50ZXJtZWRpYXRlX3Zh bCwgMTAwMAo+ICogNTEyKTsKPiArCXJldCA9IGZpeGVkXzE2XzE2X2Rpdl91NjQod21faW50ZXJt ZWRpYXRlX3ZhbCwgMTAwMCAqIDUxMik7Cj4gwqAJcmV0dXJuIHJldDsKPiDCoH0KPiDCoAo+IEBA IC0zNTE0LDggKzM1MTcsNyBAQCBzdGF0aWMgdWludDMyX3QKPiBza2xfYWRqdXN0ZWRfcGxhbmVf cGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0Cj4gwqAJCQkJCcKg wqDCoMKgwqDCoHN0cnVjdAo+IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUpCj4gwqB7Cj4gwqAJ dWludDY0X3QgYWRqdXN0ZWRfcGl4ZWxfcmF0ZTsKPiAtCXVpbnQ2NF90IGRvd25zY2FsZV9hbW91 bnQ7Cj4gLQl1aW50NjRfdCBwaXhlbF9yYXRlOwo+ICsJdWludF9maXhlZF8xNl8xNl90IGRvd25z Y2FsZV9hbW91bnQ7Cj4gwqAKPiDCoAkvKiBTaG91bGRuJ3QgcmVhY2ggaGVyZSBvbiBkaXNhYmxl ZCBwbGFuZXMuLi4gKi8KPiDCoAlpZiAoV0FSTl9PTighcHN0YXRlLT5iYXNlLnZpc2libGUpKQo+ IEBAIC0zNTI4LDEwICszNTMwLDggQEAgc3RhdGljIHVpbnQzMl90Cj4gc2tsX2FkanVzdGVkX3Bs YW5lX3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdAo+IMKgCWFk anVzdGVkX3BpeGVsX3JhdGUgPSBjc3RhdGUtPnBpeGVsX3JhdGU7Cj4gwqAJZG93bnNjYWxlX2Ft b3VudCA9IHNrbF9wbGFuZV9kb3duc2NhbGVfYW1vdW50KHBzdGF0ZSk7Cj4gwqAKPiAtCXBpeGVs X3JhdGUgPSBhZGp1c3RlZF9waXhlbF9yYXRlICogZG93bnNjYWxlX2Ftb3VudCA+PiAxNjsKPiAt CVdBUk5fT04ocGl4ZWxfcmF0ZSAhPSBjbGFtcF90KHVpbnQzMl90LCBwaXhlbF9yYXRlLCAwLCB+ MCkpOwo+IC0KPiAtCXJldHVybiBwaXhlbF9yYXRlOwo+ICsJcmV0dXJuIG11bF91MzJfZml4ZWRf MTZfMTZfcm91bmRfdXAoYWRqdXN0ZWRfcGl4ZWxfcmF0ZSwKPiArCQkJCQnCoMKgwqDCoGRvd25z Y2FsZV9hbW91bnQpOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5l X3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+IEBAIC0zNjE3 LDggKzM2MTcsOCBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVj dAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCWlmICh5X3RpbGVkKSB7Cj4gwqAJ CWludGVybV9wYnBsID0gRElWX1JPVU5EX1VQKHBsYW5lX2J5dGVzX3Blcl9saW5lICoKPiDCoAkJ CQkJwqDCoMKgeV9taW5fc2NhbmxpbmVzLCA1MTIpOwo+IC0JCXBsYW5lX2Jsb2Nrc19wZXJfbGlu ZSA9Cj4gLQkJwqDCoMKgwqDCoMKgZml4ZWRfMTZfMTZfZGl2X3JvdW5kX3VwKGludGVybV9wYnBs LAo+IHlfbWluX3NjYW5saW5lcyk7Cj4gKwkJcGxhbmVfYmxvY2tzX3Blcl9saW5lID0gZml4ZWRf MTZfMTZfZGl2KGludGVybV9wYnBsLAo+ICsJCQkJCQkJeV9taW5fc2NhbmxpCj4gbmVzKTsKPiDC oAl9IGVsc2UgaWYgKHhfdGlsZWQpIHsKPiDCoAkJaW50ZXJtX3BicGwgPSBESVZfUk9VTkRfVVAo cGxhbmVfYnl0ZXNfcGVyX2xpbmUsCj4gNTEyKTsKPiDCoAkJcGxhbmVfYmxvY2tzX3Blcl9saW5l ID0KPiB1MzJfdG9fZml4ZWRfMTZfMTYoaW50ZXJtX3BicGwpOwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK