From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 2/5] drm/i915/skl+: Decode memory bandwidth and parameters Date: Thu, 16 Aug 2018 15:35:49 -0700 Message-ID: <20180816223548.GW3725@intel.com> References: <20180726141410.2185-1-mahesh1.kumar@intel.com> <20180726141410.2185-3-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 317306E552 for ; Thu, 16 Aug 2018 22:35:50 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180726141410.2185-3-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMjYsIDIwMTggYXQgMDc6NDQ6MDdQTSArMDUzMCwgTWFoZXNoIEt1bWFyIHdy b3RlOgo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IHRvIGRlY29kZSBzeXN0ZW0gbWVtb3J5IGJh bmR3aWR0aCBhbmQgb3RoZXIKPiBwYXJhbWV0ZXJzIGZvciBza3lsYWtlIGFuZCBHZW45KyBwbGF0 Zm9ybXMsIHdoaWNoIHdpbGwgYmUgdXNlZCBmb3IKPiBhcmJpdHJhdGVkIGRpc3BsYXkgbWVtb3J5 IGJhbmR3aWR0aCBjYWxjdWxhdGlvbiBpbiBHRU45IGJhc2VkCj4gcGxhdGZvcm1zIGFuZCBXTSBs YXRlbmN5IGxldmVsLTAgV29yay1hcm91bmQgY2FsY3VsYXRpb24gb24gR0VOOSsuCj4gCj4gQ2hh bmdlcyBTaW5jZSBWMToKPiAgLSBzL21lbWRldl9pbmZvL2RyYW1faW5mbwo+ICAtIGNyZWF0ZSBh IHN0cnVjdCB0byBob2xkIGNoYW5uZWwgaW5mbwo+IAo+IFNpZ25lZC1vZmYtYnk6IE1haGVzaCBL dW1hciA8bWFoZXNoMS5rdW1hckBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgfCAxMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIHwgICA3ICsrKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIHwgIDIxICsrKysrKysKPiAgMyBmaWxlcyBjaGFu Z2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKPiBpbmRleCAxNjYyOTYwMWM5ZjQuLmRkZjZiZjliNTAwYSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0xMDcwLDYgKzEwNzAsMTE4IEBAIHN0YXRpYyB2b2lkIGlu dGVsX3Nhbml0aXplX29wdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICAJaW50ZWxfZ3Z0X3Nhbml0aXplX29wdGlvbnMoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgaW50Cj4gK3NrbF9kcmFtX2dldF9jaGFubmVsX2luZm8oc3RydWN0IGRyYW1fY2hhbm5lbF9p bmZvICpjaCwgdTMyIHZhbCkKPiArewo+ICsJdTggbF9yYW5rLCBzX3Jhbms7Cj4gKwl1OCBsX3Np emUsIHNfc2l6ZTsKPiArCXU4IGxfd2lkdGgsIHNfd2lkdGg7Cj4gKwllbnVtIGRyYW1fcmFuayBy YW5rOwo+ICsKPiArCWlmICghdmFsKQo+ICsJCXJldHVybiAtMTsKCi1TT01FRVJSTk8/Cgo+ICsK PiArCWxfc2l6ZSA9ICh2YWwgPj4gU0tMX0RSQU1fU0laRV9MX1NISUZUKSAmIFNLTF9EUkFNX1NJ WkVfTUFTSzsKPiArCXNfc2l6ZSA9ICh2YWwgPj4gU0tMX0RSQU1fU0laRV9TX1NISUZUKSAmIFNL TF9EUkFNX1NJWkVfTUFTSzsKPiArCWxfd2lkdGggPSAodmFsID4+IFNLTF9EUkFNX1dJRFRIX0xf U0hJRlQpICYgU0tMX0RSQU1fV0lEVEhfTUFTSzsKPiArCXNfd2lkdGggPSAodmFsID4+IFNLTF9E UkFNX1dJRFRIX1NfU0hJRlQpICYgU0tMX0RSQU1fV0lEVEhfTUFTSzsKPiArCWxfcmFuayA9ICh2 YWwgPj4gU0tMX0RSQU1fUkFOS19MX1NISUZUKSAmIFNLTF9EUkFNX1JBTktfTUFTSzsKPiArCXNf cmFuayA9ICh2YWwgPj4gU0tMX0RSQU1fUkFOS19TX1NISUZUKSAmIFNLTF9EUkFNX1JBTktfTUFT SzsKPiArCj4gKwlpZiAobF9zaXplID09IDAgJiYgc19zaXplID09IDApCj4gKwkJcmV0dXJuIC0x OwoKZGl0dG8KCj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiKHNpemU6d2lkdGg6cmFuaykgTCglZEdC OlglZDolcykgUyglZEdCOlglZDolcylcbiIsCj4gKwkJICAgICAgbF9zaXplLCAoMSA8PCBsX3dp ZHRoKSAqIDgsIGxfcmFuayA/ICJkdWFsIiA6ICJzaW5nbGUiLAo+ICsJCSAgICAgIHNfc2l6ZSwg KDEgPDwgc193aWR0aCkgKiA4LCBzX3JhbmsgPyAiZHVhbCIgOiAic2luZ2xlIik7Cj4gKwo+ICsJ aWYgKGxfcmFuayA9PSBTS0xfRFJBTV9SQU5LX0RVQUwgfHwgc19yYW5rID09IFNLTF9EUkFNX1JB TktfRFVBTCkKPiArCQlyYW5rID0gSTkxNV9EUkFNX1JBTktfRFVBTDsKPiArCWVsc2UgaWYgKChs X3NpemUgJiYgbF9yYW5rID09IFNLTF9EUkFNX1JBTktfU0lOR0xFKSAmJgo+ICsJCSAoc19zaXpl ICYmIHNfcmFuayA9PSBTS0xfRFJBTV9SQU5LX1NJTkdMRSkpCj4gKwkJcmFuayA9IEk5MTVfRFJB TV9SQU5LX0RVQUw7Cj4gKwllbHNlCj4gKwkJcmFuayA9IEk5MTVfRFJBTV9SQU5LX1NJTkdMRTsK PiArCj4gKwljaC0+bF9pbmZvLnNpemUgPSBsX3NpemU7Cj4gKwljaC0+c19pbmZvLnNpemUgPSBz X3NpemU7Cj4gKwljaC0+bF9pbmZvLndpZHRoID0gbF93aWR0aDsKPiArCWNoLT5zX2luZm8ud2lk dGggPSBzX3dpZHRoOwo+ICsJY2gtPmxfaW5mby5yYW5rID0gbF9yYW5rOwo+ICsJY2gtPnNfaW5m by5yYW5rID0gc19yYW5rOwo+ICsJY2gtPnJhbmsgPSByYW5rOwoKY291bGQgd2UgZG8gdGhpcyBk aXJlY3RseSB3aXRob3V0IGludGVybWVkaWF0ZXM/IG5vdCBjbGVhciBpZiB3ZSBjaGFuZ2UKaW4g dGhlIG1pZGRsZSBhZnRlciBwcmludGluZy4uLgoKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArc3RhdGljIGludAo+ICtza2xfZHJhbV9nZXRfY2hhbm5lbHNfaW5mbyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXN0cnVjdCBkcmFtX2luZm8gKmRyYW1faW5m byA9ICZkZXZfcHJpdi0+ZHJhbV9pbmZvOwo+ICsJc3RydWN0IGRyYW1fY2hhbm5lbF9pbmZvIGNo MCwgY2gxOwo+ICsJdTMyIHZhbDsKPiArCWludCByZXQ7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFE KFNLTF9NQURfRElNTV9DSDBfMF8wXzBfTUNIQkFSX01DTUFJTik7Cj4gKwlyZXQgPSBza2xfZHJh bV9nZXRfY2hhbm5lbF9pbmZvKCZjaDAsIHZhbCk7Cj4gKwlpZiAocmV0ID09IDApCj4gKwkJZHJh bV9pbmZvLT5udW1fY2hhbm5lbHMrKzsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQoU0tMX01BRF9E SU1NX0NIMV8wXzBfMF9NQ0hCQVJfTUNNQUlOKTsKPiArCXJldCA9IHNrbF9kcmFtX2dldF9jaGFu bmVsX2luZm8oJmNoMSwgdmFsKTsKPiArCWlmIChyZXQgPT0gMCkKPiArCQlkcmFtX2luZm8tPm51 bV9jaGFubmVscysrOwo+ICsKPiArCWlmIChkcmFtX2luZm8tPm51bV9jaGFubmVscyA9PSAwKSB7 Cj4gKwkJRFJNX0lORk8oIk51bWJlciBvZiBtZW1vcnkgY2hhbm5lbHMgaXMgemVyb1xuIik7Cj4g KwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIElmIGFueSBvZiB0aGUg Y2hhbm5lbCBpcyBzaW5nbGUgcmFuayBjaGFubmVsLCB3b3JzdCBjYXNlIG91dHB1dAo+ICsJICog d2lsbCBiZSBzYW1lIGFzIGlmIHNpbmdsZSByYW5rIG1lbW9yeSwgc28gY29uc2lkZXIgc2luZ2xl IHJhbmsKPiArCSAqIG1lbW9yeS4KPiArCSAqLwo+ICsJaWYgKGNoMC5yYW5rID09IEk5MTVfRFJB TV9SQU5LX1NJTkdMRSB8fAo+ICsJICAgIGNoMS5yYW5rID09IEk5MTVfRFJBTV9SQU5LX1NJTkdM RSkKPiArCQlkcmFtX2luZm8tPnJhbmsgPSBJOTE1X0RSQU1fUkFOS19TSU5HTEU7Cj4gKwllbHNl Cj4gKwkJZHJhbV9pbmZvLT5yYW5rID0gbWF4KGNoMC5yYW5rLCBjaDEucmFuayk7Cj4gKwo+ICsJ aWYgKGRyYW1faW5mby0+cmFuayA9PSBJOTE1X0RSQU1fUkFOS19JTlZBTElEKSB7Cj4gKwkJRFJN X0lORk8oImNvdWxkbid0IGdldCBtZW1vcnkgcmFuayBpbmZvcm1hdGlvblxuIik7Cj4gKwkJcmV0 dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludAo+ ICtza2xfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g K3sKPiArCXN0cnVjdCBkcmFtX2luZm8gKmRyYW1faW5mbyA9ICZkZXZfcHJpdi0+ZHJhbV9pbmZv Owo+ICsJdTMyIG1lbV9mcmVxX2toeiwgdmFsOwo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBz a2xfZHJhbV9nZXRfY2hhbm5lbHNfaW5mbyhkZXZfcHJpdik7Cj4gKwlpZiAocmV0KQo+ICsJCXJl dHVybiByZXQ7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKFNLTF9NQ19CSU9TX0RBVEFfMF8wXzBf TUNIQkFSX1BDVSk7Cj4gKwltZW1fZnJlcV9raHogPSBESVZfUk9VTkRfVVAoKHZhbCAmIFNLTF9S RVFfREFUQV9NQVNLKSAqCj4gKwkJCQkgICAgU0tMX01FTU9SWV9GUkVRX01VTFRJUExJRVJfSFos IDEwMDApOwo+ICsKPiArCWRyYW1faW5mby0+YmFuZHdpZHRoX2ticHMgPSBkcmFtX2luZm8tPm51 bV9jaGFubmVscyAqCj4gKwkJCQkJCQltZW1fZnJlcV9raHogKiA4Owo+ICsKPiArCWlmIChkcmFt X2luZm8tPmJhbmR3aWR0aF9rYnBzID09IDApIHsKPiArCQlEUk1fSU5GTygiQ291bGRuJ3QgZ2V0 IHN5c3RlbSBtZW1vcnkgYmFuZHdpZHRoXG4iKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0K PiArCj4gKwlkcmFtX2luZm8tPnZhbGlkID0gdHJ1ZTsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ ICBzdGF0aWMgaW50Cj4gIGJ4dF9nZXRfZHJhbV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgewo+IEBAIC0xMTU5LDYgKzEyNzEsNyBAQCBzdGF0aWMgdm9pZAo+ICBp bnRlbF9nZXRfZHJhbV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg ewo+ICAJc3RydWN0IGRyYW1faW5mbyAqZHJhbV9pbmZvID0gJmRldl9wcml2LT5kcmFtX2luZm87 Cj4gKwljaGFyIGJhbmR3aWR0aF9zdHJbMzJdOwo+ICAJaW50IHJldDsKPiAgCj4gIAlkcmFtX2lu Zm8tPnZhbGlkID0gZmFsc2U7Cj4gQEAgLTExNjYsMTUgKzEyNzksMjUgQEAgaW50ZWxfZ2V0X2Ry YW1faW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlkcmFtX2luZm8t PmJhbmR3aWR0aF9rYnBzID0gMDsKPiAgCWRyYW1faW5mby0+bnVtX2NoYW5uZWxzID0gMDsKPiAg Cj4gLQlpZiAoIUlTX0JST1hUT04oZGV2X3ByaXYpKQo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPCA5KQo+ICAJCXJldHVybjsKPiAgCj4gLQlyZXQgPSBieHRfZ2V0X2RyYW1faW5mbyhkZXZf cHJpdik7Cj4gKwkvKiBOZWVkIHRvIGNhbGN1bGF0ZSBiYW5kd2lkdGggb25seSBmb3IgR2VuOSAq Lwo+ICsJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICsJCXJldCA9IGJ4dF9nZXRfZHJhbV9p bmZvKGRldl9wcml2KTsKPiArCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSkKPiAr CQlyZXQgPSBza2xfZ2V0X2RyYW1faW5mbyhkZXZfcHJpdik7Cj4gKwllbHNlCj4gKwkJcmV0ID0g c2tsX2RyYW1fZ2V0X2NoYW5uZWxzX2luZm8oZGV2X3ByaXYpOwoKSSBkaW4ndCBnZXQgdGhpcy4u LiB3aHkgbmV3ZXIgcGxhdGZvcm1zIG9ubHkgbmVlZCB0aGlzIHBhcnRpYWwgcGF0aD8KCmFsc28g dGhpcyBoaWdobGlnaHRzIHRoYXQgdGhlIG5hbWVzIG9mIHRoZSBmdW5jdGlvbnMgYXJlIGNvbmZ1 c2luZy4uLgoKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCURSTV9ERUJVR19LTVMo IkRSQU0gYmFuZHdpZHRoOiVkIEtCcHMsIHRvdGFsLWNoYW5uZWxzOiAldVxuIiwKPiAtCQkgICAg ICBkcmFtX2luZm8tPmJhbmR3aWR0aF9rYnBzLCBkcmFtX2luZm8tPm51bV9jaGFubmVscyk7Cj4g KwlpZiAoZHJhbV9pbmZvLT5iYW5kd2lkdGhfa2JwcykKPiArCQlzcHJpbnRmKGJhbmR3aWR0aF9z dHIsICIlZCBLQnBzIiwgZHJhbV9pbmZvLT5iYW5kd2lkdGhfa2Jwcyk7Cj4gKwllbHNlCj4gKwkJ c3ByaW50ZihiYW5kd2lkdGhfc3RyLCAidW5rbm93biIpOwo+ICsJRFJNX0RFQlVHX0tNUygiRFJB TSBiYW5kd2lkdGg6JXMsIHRvdGFsLWNoYW5uZWxzOiAldVxuIiwKPiArCQkgICAgICBiYW5kd2lk dGhfc3RyLCBkcmFtX2luZm8tPm51bV9jaGFubmVscyk7Cj4gIAlEUk1fREVCVUdfS01TKCJEUkFN IHJhbms6ICVzIHJhbmtcbiIsCj4gIAkJICAgICAgKGRyYW1faW5mby0+cmFuayA9PSBJOTE1X0RS QU1fUkFOS19EVUFMKSA/Cj4gIAkJICAgICAgImR1YWwiIDogInNpbmdsZSIpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IGluZGV4IDQ2Zjk0MmZhN2Q2MC4uMmQxMmZjMTUyYjQ5IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIxMjgsNiArMjEyOCwxMyBAQCBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSB7Cj4gIAkgKi8KPiAgfTsKPiAgCj4gK3N0cnVjdCBkcmFtX2NoYW5uZWxf aW5mbyB7Cj4gKwlzdHJ1Y3QgaW5mbyB7Cj4gKwkJdTggc2l6ZSwgd2lkdGgsIHJhbms7Cj4gKwl9 IGxfaW5mbywgc19pbmZvOwo+ICsJZW51bSBkcmFtX3JhbmsgcmFuazsKCndoeSBkbyB3ZSBuZWVk IGR1cGxpY2F0ZWQgcmFuZCBpbmZvcm1hdGlvbj8KCj4gK307Cj4gKwo+ICBzdGF0aWMgaW5saW5l IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICp0b19pOTE1KGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gIHsKPiAgCXJldHVybiBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSwgZHJtKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA2NjkwMGQwMjc1 NzAuLmU0ZDYxMTY3ZmI2NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC05NjY0 LDYgKzk2NjQsMjcgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4gICNkZWZpbmUgIEJYVF9EUkFN X1NJWkVfMTJHQgkJCTB4Mwo+ICAjZGVmaW5lICBCWFRfRFJBTV9TSVpFXzE2R0IJCQkweDQKPiAg Cj4gKyNkZWZpbmUgU0tMX01FTU9SWV9GUkVRX01VTFRJUExJRVJfSFoJCTI2NjY2NjY2Ngo+ICsj ZGVmaW5lIFNLTF9NQ19CSU9TX0RBVEFfMF8wXzBfTUNIQkFSX1BDVQlfTU1JTyhNQ0hCQVJfTUlS Uk9SX0JBU0VfU05CICsgMHg1RTA0KQo+ICsjZGVmaW5lICBTS0xfUkVRX0RBVEFfTUFTSwkJCSgw eEYgPDwgMCkKPiArCj4gKyNkZWZpbmUgU0tMX01BRF9ESU1NX0NIMF8wXzBfMF9NQ0hCQVJfTUNN QUlOCV9NTUlPKE1DSEJBUl9NSVJST1JfQkFTRV9TTkIgKyAweDUwMEMpCj4gKyNkZWZpbmUgU0tM X01BRF9ESU1NX0NIMV8wXzBfMF9NQ0hCQVJfTUNNQUlOCV9NTUlPKE1DSEJBUl9NSVJST1JfQkFT RV9TTkIgKyAweDUwMTApCj4gKyNkZWZpbmUgIFNLTF9EUkFNX1NJWkVfTUFTSwkJCTB4M0YKPiAr I2RlZmluZSAgU0tMX0RSQU1fU0laRV9MX1NISUZUCQkJMAo+ICsjZGVmaW5lICBTS0xfRFJBTV9T SVpFX1NfU0hJRlQJCQkxNgo+ICsjZGVmaW5lICBTS0xfRFJBTV9XSURUSF9NQVNLCQkJMHgzCj4g KyNkZWZpbmUgIFNLTF9EUkFNX1dJRFRIX0xfU0hJRlQJCQk4Cj4gKyNkZWZpbmUgIFNLTF9EUkFN X1dJRFRIX1NfU0hJRlQJCQkyNAo+ICsjZGVmaW5lICBTS0xfRFJBTV9XSURUSF9YOAkJCTB4MAo+ ICsjZGVmaW5lICBTS0xfRFJBTV9XSURUSF9YMTYJCQkweDEKPiArI2RlZmluZSAgU0tMX0RSQU1f V0lEVEhfWDMyCQkJMHgyCj4gKyNkZWZpbmUgIFNLTF9EUkFNX1JBTktfTUFTSwkJCTB4MQo+ICsj ZGVmaW5lICBTS0xfRFJBTV9SQU5LX0xfU0hJRlQJCQkxMAo+ICsjZGVmaW5lICBTS0xfRFJBTV9S QU5LX1NfU0hJRlQJCQkyNgo+ICsjZGVmaW5lICBTS0xfRFJBTV9SQU5LX1NJTkdMRQkJCTB4MAo+ ICsjZGVmaW5lICBTS0xfRFJBTV9SQU5LX0RVQUwJCQkweDEKCgphZ2Fpbiwgc3BlYyBwb2ludGVy cyBwbGVhc2UuCgo+ICsKPiAgLyogUGxlYXNlIHNlZSBoc3dfcmVhZF9kY29tcCgpIGFuZCBoc3df d3JpdGVfZGNvbXAoKSBiZWZvcmUgdXNpbmcgdGhpcyByZWdpc3RlciwKPiAgICogc2luY2Ugb24g SFNXIHdlIGNhbid0IHdyaXRlIHRvIGl0IHVzaW5nIEk5MTVfV1JJVEUuICovCj4gICNkZWZpbmUg RF9DT01QX0hTVwkJCV9NTUlPKE1DSEJBUl9NSVJST1JfQkFTRV9TTkIgKyAweDVGMEMpCj4gLS0g Cj4gMi4xNi4yCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=