From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 02/22] drm/i915: introduce intel_memory_region Date: Thu, 3 Oct 2019 20:24:24 +0100 Message-ID: <20191003192444.10113-3-matthew.auld@intel.com> References: <20191003192444.10113-1-matthew.auld@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 B82696E201 for ; Thu, 3 Oct 2019 19:24:51 +0000 (UTC) In-Reply-To: <20191003192444.10113-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U3VwcG9ydCBtZW1vcnkgcmVnaW9ucywgYXMgZGVmaW5lZCBieSBhIGdpdmVuIChzdGFydCwgZW5k KSwgYW5kIGFsbG93CmNyZWF0aW5nIEdFTSBvYmplY3RzIHdoaWNoIGFyZSBiYWNrZWQgYnkgc2Fp ZCByZWdpb24uIFRoZSBpbW1lZGlhdGUgZ29hbApoZXJlIGlzIHRvIGhhdmUgc29tZXRoaW5nIHRv IHJlcHJlc2VudCBvdXIgZGV2aWNlIG1lbW9yeSwgYnV0IGxhdGVyIG9uCndlIGFsc28gd2FudCB0 byByZXByZXNlbnQgZXZlcnkgbWVtb3J5IGRvbWFpbiB3aXRoIGEgcmVnaW9uLCBzbyBzdG9sZW4s CnNobWVtLCBhbmQgb2YgY291cnNlIGRldmljZS4gQXQgc29tZSBwb2ludCB3ZSBhcmUgcHJvYmFi bHkgZ29pbmcgdG8gd2FudAp1c2UgYSBjb21tb24gc3RydWN0IGhlcmUsIHN1Y2ggdGhhdCB3ZSBh cmUgYmV0dGVyIGFsaWduZWQgd2l0aCBzYXkgVFRNLgoKU2lnbmVkLW9mZi1ieTogTWF0dGhldyBB dWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBYmRpZWwgSmFudWxn dWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE5pcmFu amFuYSBWaXNod2FuYXRoYXB1cmEgPG5pcmFuamFuYS52aXNod2FuYXRoYXB1cmFAaW50ZWwuY29t PgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMiAr CiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgIDkgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jICAgIHwgMTM0ICsrKysr KysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oICAgIHwg IDI4ICsrKwogLi4uL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyAgIHwg IDczICsrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAg ICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgICAg fCAxOTEgKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1v cnlfcmVnaW9uLmggICAgfCAgODMgKysrKysrKysKIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV9tb2NrX3NlbGZ0ZXN0cy5oICB8ICAgMSArCiAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVs X21lbW9yeV9yZWdpb24uYyAgfCAxMTggKysrKysrKysrKysKIC4uLi9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja19yZWdpb24uYyAgfCAgNTkgKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvbW9ja19yZWdpb24uaCAgfCAgMTYgKysKIDEzIGZpbGVzIGNoYW5nZWQsIDcx NiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX3JlZ2lvbi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3Jl Z2lvbi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L21vY2tfcmVnaW9uLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IGQyYjUzYjVhZGQ4MS4uZGE2 MWIwZGZlMTA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNTAsNiArNTAsNyBAQCBpOTE1LXkg Kz0gaTkxNV9kcnYubyBcCiAJICBpOTE1X3V0aWxzLm8gXAogCSAgaW50ZWxfY3NyLm8gXAogCSAg aW50ZWxfZGV2aWNlX2luZm8ubyBcCisJICBpbnRlbF9tZW1vcnlfcmVnaW9uLm8gXAogCSAgaW50 ZWxfcGNoLm8gXAogCSAgaW50ZWxfcG0ubyBcCiAJICBpbnRlbF9ydW50aW1lX3BtLm8gXApAQCAt MTE5LDYgKzEyMCw3IEBAIGdlbS15ICs9IFwKIAlnZW0vaTkxNV9nZW1fcGFnZXMubyBcCiAJZ2Vt L2k5MTVfZ2VtX3BoeXMubyBcCiAJZ2VtL2k5MTVfZ2VtX3BtLm8gXAorCWdlbS9pOTE1X2dlbV9y ZWdpb24ubyBcCiAJZ2VtL2k5MTVfZ2VtX3NobWVtLm8gXAogCWdlbS9pOTE1X2dlbV9zaHJpbmtl ci5vIFwKIAlnZW0vaTkxNV9nZW1fc3RvbGVuLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCmluZGV4IGUxYWFiMmZkMWNkOS4uY2ZmNTI3 ZTc5NjYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2Jq ZWN0X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dF90eXBlcy5oCkBAIC0xNTksNiArMTU5LDE1IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 IHsKIAkJYXRvbWljX3QgcGFnZXNfcGluX2NvdW50OwogCQlhdG9taWNfdCBzaHJpbmtfcGluOwog CisJCS8qKgorCQkgKiBNZW1vcnkgcmVnaW9uIGZvciB0aGlzIG9iamVjdC4KKwkJICovCisJCXN0 cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICpyZWdpb247CisJCS8qKgorCQkgKiBMaXN0IG9mIG1l bW9yeSByZWdpb24gYmxvY2tzIGFsbG9jYXRlZCBmb3IgdGhpcyBvYmplY3QuCisJCSAqLworCQlz dHJ1Y3QgbGlzdF9oZWFkIGJsb2NrczsKKwogCQlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzOwogCQl2 b2lkICptYXBwaW5nOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9u LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZmM2ZTQ1NDBmODIK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcmVn aW9uLmMKQEAgLTAsMCArMSwxMzQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNs dWRlICJpbnRlbF9tZW1vcnlfcmVnaW9uLmgiCisjaW5jbHVkZSAiaTkxNV9nZW1fcmVnaW9uLmgi CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKwordm9pZAoraTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdl c19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAorCQkJCXN0cnVjdCBzZ190 YWJsZSAqcGFnZXMpCit7CisJX19pbnRlbF9tZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeShv YmotPm1tLnJlZ2lvbiwgJm9iai0+bW0uYmxvY2tzKTsKKworCW9iai0+bW0uZGlydHkgPSBmYWxz ZTsKKwlzZ19mcmVlX3RhYmxlKHBhZ2VzKTsKKwlrZnJlZShwYWdlcyk7Cit9CisKK2ludAoraTkx NV9nZW1fb2JqZWN0X2dldF9wYWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQoreworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0gPSBvYmotPm1tLnJlZ2lv bjsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpibG9ja3MgPSAmb2JqLT5tbS5ibG9ja3M7CisJdW5zaWdu ZWQgaW50IGZsYWdzID0gSTkxNV9BTExPQ19NSU5fUEFHRV9TSVpFOworCXJlc291cmNlX3NpemVf dCBzaXplID0gb2JqLT5iYXNlLnNpemU7CisJcmVzb3VyY2Vfc2l6ZV90IHByZXZfZW5kOworCXN0 cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwlzdHJ1Y3Qgc2dfdGFibGUgKnN0OworCXN0 cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJdW5zaWduZWQgaW50IHNnX3BhZ2Vfc2l6ZXM7CisJdW5z aWduZWQgbG9uZyBpOworCWludCByZXQ7CisKKwlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdG UF9LRVJORUwpOworCWlmICghc3QpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKHNnX2FsbG9j X3RhYmxlKHN0LCBzaXplID4+IGlsb2cyKG1lbS0+bW0uY2h1bmtfc2l6ZSksIEdGUF9LRVJORUwp KSB7CisJCWtmcmVlKHN0KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcmV0ID0gX19pbnRl bF9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShtZW0sIHNpemUsIGZsYWdzLCBibG9ja3Mp OworCWlmIChyZXQpCisJCWdvdG8gZXJyX2ZyZWVfc2c7CisKKwlHRU1fQlVHX09OKGxpc3RfZW1w dHkoYmxvY2tzKSk7CisKKwlzZyA9IHN0LT5zZ2w7CisJc3QtPm5lbnRzID0gMDsKKwlzZ19wYWdl X3NpemVzID0gMDsKKwlpID0gMDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoYmxvY2ssIGJsb2Nr cywgbGluaykgeworCQl1NjQgYmxvY2tfc2l6ZSwgb2Zmc2V0OworCisJCWJsb2NrX3NpemUgPSBp OTE1X2J1ZGR5X2Jsb2NrX3NpemUoJm1lbS0+bW0sIGJsb2NrKTsKKwkJb2Zmc2V0ID0gaTkxNV9i dWRkeV9ibG9ja19vZmZzZXQoYmxvY2spOworCisJCUdFTV9CVUdfT04ob3ZlcmZsb3dzX3R5cGUo YmxvY2tfc2l6ZSwgc2ctPmxlbmd0aCkpOworCisJCWlmICghaSB8fCBvZmZzZXQgIT0gcHJldl9l bmQgfHwKKwkJICAgIGFkZF9vdmVyZmxvd3NfdCh0eXBlb2Yoc2ctPmxlbmd0aCksIHNnLT5sZW5n dGgsIGJsb2NrX3NpemUpKSB7CisJCQlpZiAoaSkgeworCQkJCXNnX3BhZ2Vfc2l6ZXMgfD0gc2ct Pmxlbmd0aDsKKwkJCQlzZyA9IF9fc2dfbmV4dChzZyk7CisJCQl9CisKKwkJCXNnX2RtYV9hZGRy ZXNzKHNnKSA9IG1lbS0+cmVnaW9uLnN0YXJ0ICsgb2Zmc2V0OworCQkJc2dfZG1hX2xlbihzZykg PSBibG9ja19zaXplOworCisJCQlzZy0+bGVuZ3RoID0gYmxvY2tfc2l6ZTsKKworCQkJc3QtPm5l bnRzKys7CisJCX0gZWxzZSB7CisJCQlzZy0+bGVuZ3RoICs9IGJsb2NrX3NpemU7CisJCQlzZ19k bWFfbGVuKHNnKSArPSBibG9ja19zaXplOworCQl9CisKKwkJcHJldl9lbmQgPSBvZmZzZXQgKyBi bG9ja19zaXplOworCQlpKys7CisJfTsKKworCXNnX3BhZ2Vfc2l6ZXMgfD0gc2ctPmxlbmd0aDsK KwlzZ19tYXJrX2VuZChzZyk7CisJaTkxNV9zZ190cmltKHN0KTsKKworCV9faTkxNV9nZW1fb2Jq ZWN0X3NldF9wYWdlcyhvYmosIHN0LCBzZ19wYWdlX3NpemVzKTsKKworCXJldHVybiAwOworCitl cnJfZnJlZV9zZzoKKwlzZ19mcmVlX3RhYmxlKHN0KTsKKwlrZnJlZShzdCk7CisJcmV0dXJuIHJl dDsKK30KKwordm9pZCBpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1vcnlfcmVnaW9uKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkJCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICptZW0pCit7CisJSU5JVF9MSVNUX0hFQUQoJm9iai0+bW0uYmxvY2tzKTsKKwlvYmotPm1tLnJl Z2lvbiA9IGludGVsX21lbW9yeV9yZWdpb25fZ2V0KG1lbSk7Cit9CisKK3ZvaWQgaTkxNV9nZW1f b2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQoreworCWludGVsX21lbW9yeV9yZWdpb25fcHV0KG9iai0+bW0ucmVnaW9uKTsKK30KKwor c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgoraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdp b24oc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCSAgICAgIHJlc291cmNlX3Np emVfdCBzaXplLAorCQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmo7CisKKwlpZiAoIW1lbSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVO T0RFVik7CisKKwlzaXplID0gcm91bmRfdXAoc2l6ZSwgbWVtLT5taW5fcGFnZV9zaXplKTsKKwor CUdFTV9CVUdfT04oIXNpemUpOworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQoc2l6ZSwgSTkxNV9H VFRfTUlOX0FMSUdOTUVOVCkpOworCisJaWYgKHNpemUgPj4gUEFHRV9TSElGVCA+IElOVF9NQVgp CisJCXJldHVybiBFUlJfUFRSKC1FMkJJRyk7CisKKwlpZiAob3ZlcmZsb3dzX3R5cGUoc2l6ZSwg b2JqLT5iYXNlLnNpemUpKQorCQlyZXR1cm4gRVJSX1BUUigtRTJCSUcpOworCisJcmV0dXJuIG1l bS0+b3BzLT5jcmVhdGVfb2JqZWN0KG1lbSwgc2l6ZSwgZmxhZ3MpOworfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uZWJkZGM4NmQ3OGY3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oCkBAIC0wLDAgKzEsMjggQEAKKy8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJ bnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X0dFTV9SRUdJT05fSF9fCisj ZGVmaW5lIF9fSTkxNV9HRU1fUkVHSU9OX0hfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K Kworc3RydWN0IGludGVsX21lbW9yeV9yZWdpb247CitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dDsKK3N0cnVjdCBzZ190YWJsZTsKKworaW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfYnVk ZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cit2b2lkIGk5MTVfZ2VtX29iamVj dF9wdXRfcGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkg ICAgIHN0cnVjdCBzZ190YWJsZSAqcGFnZXMpOworCit2b2lkIGk5MTVfZ2VtX29iamVjdF9pbml0 X21lbW9yeV9yZWdpb24oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkJc3Ry dWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSk7Cit2b2lkIGk5MTVfZ2VtX29iamVjdF9yZWxl YXNlX21lbW9yeV9yZWdpb24oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CisKK3N0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKK2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfcmVnaW9u KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCisJCQkgICAgICByZXNvdXJjZV9zaXpl X3Qgc2l6ZSwKKwkJCSAgICAgIHVuc2lnbmVkIGludCBmbGFncyk7CisKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwppbmRleCBjNWNl YTQzNzkyMTYuLjEzMTNjN2Y5M2VmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMKQEAgLTgsNiArOCw3IEBACiAKICNpbmNsdWRlICJpOTE1 X3NlbGZ0ZXN0LmgiCiAKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcmVnaW9uLmgiCiAjaW5jbHVk ZSAiZ2VtL2k5MTVfZ2VtX3BtLmgiCiAKICNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgpAQCAtMTcs NiArMTgsNyBAQAogCiAjaW5jbHVkZSAic2VsZnRlc3RzL21vY2tfZHJtLmgiCiAjaW5jbHVkZSAi c2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5oIgorI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2NrX3Jl Z2lvbi5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X3JhbmRvbS5oIgogCiBzdGF0aWMgY29u c3QgdW5zaWduZWQgaW50IHBhZ2Vfc2l6ZXNbXSA9IHsKQEAgLTQ0Nyw2ICs0NDksNzYgQEAgc3Rh dGljIGludCBpZ3RfbW9ja19leGhhdXN0X2RldmljZV9zdXBwb3J0ZWRfcGFnZXModm9pZCAqYXJn KQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X21vY2tfbWVtb3J5X3JlZ2lvbl9o dWdlX3BhZ2VzKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQgPSBhcmc7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBwcGd0dC0+dm0uaTkxNTsKKwl1bnNp Z25lZCBsb25nIHN1cHBvcnRlZCA9IElOVEVMX0lORk8oaTkxNSktPnBhZ2Vfc2l6ZXM7CisJc3Ry dWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCWludCBiaXQ7CisJaW50IGVyciA9IDA7 CisKKwltZW0gPSBtb2NrX3JlZ2lvbl9jcmVhdGUoaTkxNSwgMCwgU1pfMkcsIEk5MTVfR1RUX1BB R0VfU0laRV80SywgMCk7CisJaWYgKElTX0VSUihtZW0pKSB7CisJCXByX2VycigiZmFpbGVkIHRv IGNyZWF0ZSBtZW1vcnkgcmVnaW9uXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIobWVtKTsKKwl9CisK Kwlmb3JfZWFjaF9zZXRfYml0KGJpdCwgJnN1cHBvcnRlZCwgaWxvZzIoSTkxNV9HVFRfTUFYX1BB R0VfU0laRSkgKyAxKSB7CisJCXVuc2lnbmVkIGludCBwYWdlX3NpemUgPSBCSVQoYml0KTsKKwkJ cmVzb3VyY2Vfc2l6ZV90IHBoeXM7CisKKwkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9y ZWdpb24obWVtLCBwYWdlX3NpemUsIDApOworCQlpZiAoSVNfRVJSKG9iaikpIHsKKwkJCWVyciA9 IFBUUl9FUlIob2JqKTsKKwkJCWdvdG8gb3V0X3JlZ2lvbjsKKwkJfQorCisJCXZtYSA9IGk5MTVf dm1hX2luc3RhbmNlKG9iaiwgJnBwZ3R0LT52bSwgTlVMTCk7CisJCWlmIChJU19FUlIodm1hKSkg eworCQkJZXJyID0gUFRSX0VSUih2bWEpOworCQkJZ290byBvdXRfcHV0OworCQl9CisKKwkJZXJy ID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX1VTRVIpOworCQlpZiAoZXJyKQorCQkJZ290 byBvdXRfY2xvc2U7CisKKwkJcGh5cyA9IGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Mo b2JqLCAwKTsKKwkJaWYgKCFJU19BTElHTkVEKHBoeXMsIHBhZ2Vfc2l6ZSkpIHsKKwkJCXByX2Vy cigibWVtb3J5IHJlZ2lvbiBtaXNhbGlnbmVkKCVwYSlcbiIsICZwaHlzKTsKKwkJCWVyciA9IC1F SU5WQUw7CisJCQlnb3RvIG91dF9jbG9zZTsKKwkJfQorCisJCWlmICh2bWEtPnBhZ2Vfc2l6ZXMu Z3R0ICE9IHBhZ2Vfc2l6ZSkgeworCQkJcHJfZXJyKCJwYWdlX3NpemVzLmd0dD0ldSwgZXhwZWN0 ZWQ9JXVcbiIsCisJCQkgICAgICAgdm1hLT5wYWdlX3NpemVzLmd0dCwgcGFnZV9zaXplKTsKKwkJ CWVyciA9IC1FSU5WQUw7CisJCQlnb3RvIG91dF91bnBpbjsKKwkJfQorCisJCWk5MTVfdm1hX3Vu cGluKHZtYSk7CisJCWk5MTVfdm1hX2Nsb3NlKHZtYSk7CisKKwkJaTkxNV9nZW1fb2JqZWN0X3B1 dChvYmopOworCX0KKworCWdvdG8gb3V0X3JlZ2lvbjsKKworb3V0X3VucGluOgorCWk5MTVfdm1h X3VucGluKHZtYSk7CitvdXRfY2xvc2U6CisJaTkxNV92bWFfY2xvc2Uodm1hKTsKK291dF9wdXQ6 CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworb3V0X3JlZ2lvbjoKKwlpbnRlbF9tZW1vcnlf cmVnaW9uX3B1dChtZW0pOworCXJldHVybiBlcnI7Cit9CisKIHN0YXRpYyBpbnQgaWd0X21vY2tf cHBndHRfbWlzYWxpZ25lZF9kbWEodm9pZCAqYXJnKQogewogCXN0cnVjdCBpOTE1X3BwZ3R0ICpw cGd0dCA9IGFyZzsKQEAgLTE2MTAsNiArMTY4Miw3IEBAIGludCBpOTE1X2dlbV9odWdlX3BhZ2Vf bW9ja19zZWxmdGVzdHModm9pZCkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVz dCB0ZXN0c1tdID0gewogCQlTVUJURVNUKGlndF9tb2NrX2V4aGF1c3RfZGV2aWNlX3N1cHBvcnRl ZF9wYWdlcyksCisJCVNVQlRFU1QoaWd0X21vY2tfbWVtb3J5X3JlZ2lvbl9odWdlX3BhZ2VzKSwK IAkJU1VCVEVTVChpZ3RfbW9ja19wcGd0dF9taXNhbGlnbmVkX2RtYSksCiAJCVNVQlRFU1QoaWd0 X21vY2tfcHBndHRfaHVnZV9maWxsKSwKIAkJU1VCVEVTVChpZ3RfbW9ja19wcGd0dF82NEspLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMzM3ZDgzMDY0MTZhLi4zYTMyZjllMDA5MDUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgImludGVs X2RldmljZV9pbmZvLmgiCiAjaW5jbHVkZSAiaW50ZWxfcGNoLmgiCiAjaW5jbHVkZSAiaW50ZWxf cnVudGltZV9wbS5oIgorI2luY2x1ZGUgImludGVsX21lbW9yeV9yZWdpb24uaCIKICNpbmNsdWRl ICJpbnRlbF91bmNvcmUuaCIKICNpbmNsdWRlICJpbnRlbF93YWtlcmVmLmgiCiAjaW5jbHVkZSAi aW50ZWxfd29wY20uaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21l bW9yeV9yZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24u YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJlZjY3YzM5N2ZjYQot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdp b24uYwpAQCAtMCwwICsxLDE5MSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAor LyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1 ZGUgImludGVsX21lbW9yeV9yZWdpb24uaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCitzdGF0 aWMgdTY0CitpbnRlbF9tZW1vcnlfcmVnaW9uX2ZyZWVfcGFnZXMoc3RydWN0IGludGVsX21lbW9y eV9yZWdpb24gKm1lbSwKKwkJCSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpibG9ja3MpCit7CisJ c3RydWN0IGk5MTVfYnVkZHlfYmxvY2sgKmJsb2NrLCAqb247CisJdTY0IHNpemUgPSAwOworCisJ bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJsb2NrLCBvbiwgYmxvY2tzLCBsaW5rKSB7CisJCXNp emUgKz0gaTkxNV9idWRkeV9ibG9ja19zaXplKCZtZW0tPm1tLCBibG9jayk7CisJCWk5MTVfYnVk ZHlfZnJlZSgmbWVtLT5tbSwgYmxvY2spOworCX0KKwlJTklUX0xJU1RfSEVBRChibG9ja3MpOwor CisJcmV0dXJuIHNpemU7Cit9CisKK3ZvaWQKK19faW50ZWxfbWVtb3J5X3JlZ2lvbl9wdXRfcGFn ZXNfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCQkgICAgICBzdHJ1 Y3QgbGlzdF9oZWFkICpibG9ja3MpCit7CisJbXV0ZXhfbG9jaygmbWVtLT5tbV9sb2NrKTsKKwlp bnRlbF9tZW1vcnlfcmVnaW9uX2ZyZWVfcGFnZXMobWVtLCBibG9ja3MpOworCW11dGV4X3VubG9j aygmbWVtLT5tbV9sb2NrKTsKK30KKwordm9pZAorX19pbnRlbF9tZW1vcnlfcmVnaW9uX3B1dF9i bG9ja19idWRkeShzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqYmxvY2spCit7CisJc3RydWN0IGxp c3RfaGVhZCBibG9ja3M7CisKKwlJTklUX0xJU1RfSEVBRCgmYmxvY2tzKTsKKwlsaXN0X2FkZCgm YmxvY2stPmxpbmssICZibG9ja3MpOworCV9faW50ZWxfbWVtb3J5X3JlZ2lvbl9wdXRfcGFnZXNf YnVkZHkoYmxvY2stPnByaXZhdGUsICZibG9ja3MpOworfQorCitpbnQKK19faW50ZWxfbWVtb3J5 X3JlZ2lvbl9nZXRfcGFnZXNfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwK KwkJCQkgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJCQkgICAgICB1bnNpZ25lZCBpbnQg ZmxhZ3MsCisJCQkJICAgICAgc3RydWN0IGxpc3RfaGVhZCAqYmxvY2tzKQoreworCXVuc2lnbmVk IGxvbmcgbl9wYWdlcyA9IHNpemUgPj4gaWxvZzIobWVtLT5tbS5jaHVua19zaXplKTsKKwl1bnNp Z25lZCBpbnQgbWluX29yZGVyID0gMDsKKworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQoc2l6ZSwg bWVtLT5tbS5jaHVua19zaXplKSk7CisJR0VNX0JVR19PTighbGlzdF9lbXB0eShibG9ja3MpKTsK KworCWlmIChmbGFncyAmIEk5MTVfQUxMT0NfTUlOX1BBR0VfU0laRSkgeworCQltaW5fb3JkZXIg PSBpbG9nMihtZW0tPm1pbl9wYWdlX3NpemUpIC0KKwkJCSAgICBpbG9nMihtZW0tPm1tLmNodW5r X3NpemUpOworCX0KKworCW11dGV4X2xvY2soJm1lbS0+bW1fbG9jayk7CisKKwlkbyB7CisJCXN0 cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwkJdW5zaWduZWQgaW50IG9yZGVyOworCisJ CW9yZGVyID0gZmxzKG5fcGFnZXMpIC0gMTsKKwkJR0VNX0JVR19PTihvcmRlciA+IG1lbS0+bW0u bWF4X29yZGVyKTsKKwkJR0VNX0JVR19PTihvcmRlciA8IG1pbl9vcmRlcik7CisKKwkJZG8gewor CQkJYmxvY2sgPSBpOTE1X2J1ZGR5X2FsbG9jKCZtZW0tPm1tLCBvcmRlcik7CisJCQlpZiAoIUlT X0VSUihibG9jaykpCisJCQkJYnJlYWs7CisKKwkJCWlmIChvcmRlci0tID09IG1pbl9vcmRlcikK KwkJCQlnb3RvIGVycl9mcmVlX2Jsb2NrczsKKwkJfSB3aGlsZSAoMSk7CisKKwkJbl9wYWdlcyAt PSBCSVQob3JkZXIpOworCisJCWJsb2NrLT5wcml2YXRlID0gbWVtOworCQlsaXN0X2FkZCgmYmxv Y2stPmxpbmssIGJsb2Nrcyk7CisKKwkJaWYgKCFuX3BhZ2VzKQorCQkJYnJlYWs7CisJfSB3aGls ZSAoMSk7CisKKwltdXRleF91bmxvY2soJm1lbS0+bW1fbG9jayk7CisJcmV0dXJuIDA7CisKK2Vy cl9mcmVlX2Jsb2NrczoKKwlpbnRlbF9tZW1vcnlfcmVnaW9uX2ZyZWVfcGFnZXMobWVtLCBibG9j a3MpOworCW11dGV4X3VubG9jaygmbWVtLT5tbV9sb2NrKTsKKwlyZXR1cm4gLUVOWElPOworfQor CitzdHJ1Y3QgaTkxNV9idWRkeV9ibG9jayAqCitfX2ludGVsX21lbW9yeV9yZWdpb25fZ2V0X2Js b2NrX2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCisJCQkJICAgICAgcmVz b3VyY2Vfc2l6ZV90IHNpemUsCisJCQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0 cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jazsKKwlMSVNUX0hFQUQoYmxvY2tzKTsKKwlpbnQg cmV0OworCisJcmV0ID0gX19pbnRlbF9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShtZW0s IHNpemUsIGZsYWdzLCAmYmxvY2tzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gRVJSX1BUUihyZXQp OworCisJYmxvY2sgPSBsaXN0X2ZpcnN0X2VudHJ5KCZibG9ja3MsIHR5cGVvZigqYmxvY2spLCBs aW5rKTsKKwlsaXN0X2RlbF9pbml0KCZibG9jay0+bGluayk7CisJcmV0dXJuIGJsb2NrOworfQor CitpbnQgaW50ZWxfbWVtb3J5X3JlZ2lvbl9pbml0X2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlf cmVnaW9uICptZW0pCit7CisJcmV0dXJuIGk5MTVfYnVkZHlfaW5pdCgmbWVtLT5tbSwgcmVzb3Vy Y2Vfc2l6ZSgmbWVtLT5yZWdpb24pLAorCQkJICAgICAgIFBBR0VfU0laRSk7Cit9CisKK3ZvaWQg aW50ZWxfbWVtb3J5X3JlZ2lvbl9yZWxlYXNlX2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVn aW9uICptZW0pCit7CisJaTkxNV9idWRkeV9maW5pKCZtZW0tPm1tKTsKK30KKworc3RydWN0IGlu dGVsX21lbW9yeV9yZWdpb24gKgoraW50ZWxfbWVtb3J5X3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICByZXNvdXJjZV9zaXplX3Qgc3RhcnQsCisJCQkg ICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJCSAgIHJlc291cmNlX3NpemVfdCBtaW5fcGFnZV9z aXplLAorCQkJICAgcmVzb3VyY2Vfc2l6ZV90IGlvX3N0YXJ0LAorCQkJICAgY29uc3Qgc3RydWN0 IGludGVsX21lbW9yeV9yZWdpb25fb3BzICpvcHMpCit7CisJc3RydWN0IGludGVsX21lbW9yeV9y ZWdpb24gKm1lbTsKKwlpbnQgZXJyOworCisJbWVtID0ga3phbGxvYyhzaXplb2YoKm1lbSksIEdG UF9LRVJORUwpOworCWlmICghbWVtKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCW1l bS0+aTkxNSA9IGk5MTU7CisJbWVtLT5yZWdpb24gPSAoc3RydWN0IHJlc291cmNlKURFRklORV9S RVNfTUVNKHN0YXJ0LCBzaXplKTsKKwltZW0tPmlvX3N0YXJ0ID0gaW9fc3RhcnQ7CisJbWVtLT5t aW5fcGFnZV9zaXplID0gbWluX3BhZ2Vfc2l6ZTsKKwltZW0tPm9wcyA9IG9wczsKKworCW11dGV4 X2luaXQoJm1lbS0+bW1fbG9jayk7CisKKwlpZiAob3BzLT5pbml0KSB7CisJCWVyciA9IG9wcy0+ aW5pdChtZW0pOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlrcmVmX2lu aXQoJm1lbS0+a3JlZik7CisJcmV0dXJuIG1lbTsKKworZXJyX2ZyZWU6CisJa2ZyZWUobWVtKTsK KwlyZXR1cm4gRVJSX1BUUihlcnIpOworfQorCitzdGF0aWMgdm9pZCBfX2ludGVsX21lbW9yeV9y ZWdpb25fZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKK3sKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbiAqbWVtID0KKwkJY29udGFpbmVyX29mKGtyZWYsIHR5cGVvZigqbWVtKSwga3JlZik7 CisKKwlpZiAobWVtLT5vcHMtPnJlbGVhc2UpCisJCW1lbS0+b3BzLT5yZWxlYXNlKG1lbSk7CisK KwltdXRleF9kZXN0cm95KCZtZW0tPm1tX2xvY2spOworCWtmcmVlKG1lbSk7Cit9CisKK3N0cnVj dCBpbnRlbF9tZW1vcnlfcmVnaW9uICoKK2ludGVsX21lbW9yeV9yZWdpb25fZ2V0KHN0cnVjdCBp bnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCit7CisJa3JlZl9nZXQoJm1lbS0+a3JlZik7CisJcmV0 dXJuIG1lbTsKK30KKwordm9pZCBpbnRlbF9tZW1vcnlfcmVnaW9uX3B1dChzdHJ1Y3QgaW50ZWxf bWVtb3J5X3JlZ2lvbiAqbWVtKQoreworCWtyZWZfcHV0KCZtZW0tPmtyZWYsIF9faW50ZWxfbWVt b3J5X3JlZ2lvbl9kZXN0cm95KTsKK30KKworI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1 X1NFTEZURVNUKQorI2luY2x1ZGUgInNlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMiCisj aW5jbHVkZSAic2VsZnRlc3RzL21vY2tfcmVnaW9uLmMiCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmViMzA0YTNlZDZhZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaApAQCAtMCwwICsxLDgzIEBACisvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50 ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9fSU5URUxfTUVNT1JZX1JFR0lPTl9IX18K KyNkZWZpbmUgX19JTlRFTF9NRU1PUllfUkVHSU9OX0hfXworCisjaW5jbHVkZSA8bGludXgva3Jl Zi5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+ CisjaW5jbHVkZSA8bGludXgvaW8tbWFwcGluZy5oPgorCisjaW5jbHVkZSAiaTkxNV9idWRkeS5o IgorCitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 Oworc3RydWN0IGludGVsX21lbW9yeV9yZWdpb247CitzdHJ1Y3Qgc2dfdGFibGU7CisKKyNkZWZp bmUgSTkxNV9BTExPQ19NSU5fUEFHRV9TSVpFICAgQklUKDApCisKK3N0cnVjdCBpbnRlbF9tZW1v cnlfcmVnaW9uX29wcyB7CisJdW5zaWduZWQgaW50IGZsYWdzOworCisJaW50ICgqaW5pdCkoc3Ry dWN0IGludGVsX21lbW9yeV9yZWdpb24gKik7CisJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBpbnRl bF9tZW1vcnlfcmVnaW9uICopOworCisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgorCSgq Y3JlYXRlX29iamVjdCkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKiwKKwkJCSByZXNvdXJj ZV9zaXplX3QsCisJCQkgdW5zaWduZWQgaW50KTsKK307CisKK3N0cnVjdCBpbnRlbF9tZW1vcnlf cmVnaW9uIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKworCWNvbnN0IHN0cnVj dCBpbnRlbF9tZW1vcnlfcmVnaW9uX29wcyAqb3BzOworCisJc3RydWN0IGlvX21hcHBpbmcgaW9t YXA7CisJc3RydWN0IHJlc291cmNlIHJlZ2lvbjsKKworCXN0cnVjdCBpOTE1X2J1ZGR5X21tIG1t OworCXN0cnVjdCBtdXRleCBtbV9sb2NrOworCisJc3RydWN0IGtyZWYga3JlZjsKKworCXJlc291 cmNlX3NpemVfdCBpb19zdGFydDsKKwlyZXNvdXJjZV9zaXplX3QgbWluX3BhZ2Vfc2l6ZTsKKwor CXVuc2lnbmVkIGludCB0eXBlOworCXVuc2lnbmVkIGludCBpbnN0YW5jZTsKKwl1bnNpZ25lZCBp bnQgaWQ7Cit9OworCitpbnQgaW50ZWxfbWVtb3J5X3JlZ2lvbl9pbml0X2J1ZGR5KHN0cnVjdCBp bnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOwordm9pZCBpbnRlbF9tZW1vcnlfcmVnaW9uX3JlbGVh c2VfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSk7CisKK2ludCBfX2ludGVs X21lbW9yeV9yZWdpb25fZ2V0X3BhZ2VzX2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICptZW0sCisJCQkJCSAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCQkJCSAgdW5zaWduZWQgaW50 IGZsYWdzLAorCQkJCQkgIHN0cnVjdCBsaXN0X2hlYWQgKmJsb2Nrcyk7CitzdHJ1Y3QgaTkxNV9i dWRkeV9ibG9jayAqCitfX2ludGVsX21lbW9yeV9yZWdpb25fZ2V0X2Jsb2NrX2J1ZGR5KHN0cnVj dCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCisJCQkJICAgICByZXNvdXJjZV9zaXplX3Qgc2l6 ZSwKKwkJCQkgICAgIHVuc2lnbmVkIGludCBmbGFncyk7Cit2b2lkIF9faW50ZWxfbWVtb3J5X3Jl Z2lvbl9wdXRfcGFnZXNfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJ CQkJICBzdHJ1Y3QgbGlzdF9oZWFkICpibG9ja3MpOwordm9pZCBfX2ludGVsX21lbW9yeV9yZWdp b25fcHV0X2Jsb2NrX2J1ZGR5KHN0cnVjdCBpOTE1X2J1ZGR5X2Jsb2NrICpibG9jayk7CisKK3N0 cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICoKK2ludGVsX21lbW9yeV9yZWdpb25fY3JlYXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJICAgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0 LAorCQkJICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCisJCQkgICByZXNvdXJjZV9zaXplX3QgbWlu X3BhZ2Vfc2l6ZSwKKwkJCSAgIHJlc291cmNlX3NpemVfdCBpb19zdGFydCwKKwkJCSAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uX29wcyAqb3BzKTsKKworc3RydWN0IGludGVsX21l bW9yeV9yZWdpb24gKgoraW50ZWxfbWVtb3J5X3JlZ2lvbl9nZXQoc3RydWN0IGludGVsX21lbW9y eV9yZWdpb24gKm1lbSk7Cit2b2lkIGludGVsX21lbW9yeV9yZWdpb25fcHV0KHN0cnVjdCBpbnRl bF9tZW1vcnlfcmVnaW9uICptZW0pOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X21vY2tfc2VsZnRlc3RzLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9tb2NrX3NlbGZ0ZXN0cy5oCmluZGV4IGI4ODA4NGZlMzI2 OS4uYWE1YTBlN2Y1ZDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaTkxNV9tb2NrX3NlbGZ0ZXN0cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X21vY2tfc2VsZnRlc3RzLmgKQEAgLTI2LDMgKzI2LDQgQEAgc2VsZnRlc3QoZ3R0 LCBpOTE1X2dlbV9ndHRfbW9ja19zZWxmdGVzdHMpCiBzZWxmdGVzdChodWdlcGFnZXMsIGk5MTVf Z2VtX2h1Z2VfcGFnZV9tb2NrX3NlbGZ0ZXN0cykKIHNlbGZ0ZXN0KGNvbnRleHRzLCBpOTE1X2dl bV9jb250ZXh0X21vY2tfc2VsZnRlc3RzKQogc2VsZnRlc3QoYnVkZHksIGk5MTVfYnVkZHlfbW9j a19zZWxmdGVzdHMpCitzZWxmdGVzdChtZW1vcnlfcmVnaW9uLCBpbnRlbF9tZW1vcnlfcmVnaW9u X21vY2tfc2VsZnRlc3RzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2ludGVsX21lbW9yeV9yZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi40MmRhZDYwNjdjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCkBAIC0wLDAgKzEsMTE4IEBACisv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkg SW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvcHJpbWVfbnVtYmVycy5o PgorCisjaW5jbHVkZSAiLi4vaTkxNV9zZWxmdGVzdC5oIgorCisjaW5jbHVkZSAibW9ja19kcm0u aCIKKyNpbmNsdWRlICJtb2NrX2dlbV9kZXZpY2UuaCIKKyNpbmNsdWRlICJtb2NrX3JlZ2lvbi5o IgorCisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5oIgorI2luY2x1ZGUgImdlbS9zZWxm dGVzdHMvbW9ja19jb250ZXh0LmgiCisKK3N0YXRpYyB2b2lkIGNsb3NlX29iamVjdHMoc3RydWN0 IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKKwkJCSAgc3RydWN0IGxpc3RfaGVhZCAqb2JqZWN0 cykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG1lbS0+aTkxNTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCAqb247CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUob2JqLCBvbiwgb2JqZWN0cywgc3RfbGluaykgeworCQlpZiAoaTkxNV9nZW1fb2JqZWN0 X2hhc19waW5uZWRfcGFnZXMob2JqKSkKKwkJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhv YmopOworCQkvKiBObyBwb2xsdXRpbmcgdGhlIG1lbW9yeSByZWdpb24gYmV0d2VlbiB0ZXN0cyAq LworCQlfX2k5MTVfZ2VtX29iamVjdF9wdXRfcGFnZXMob2JqLCBJOTE1X01NX05PUk1BTCk7CisJ CWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwkJbGlzdF9kZWwoJm9iai0+c3RfbGluayk7CisJ fQorCisJY29uZF9yZXNjaGVkKCk7CisKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3Rf bXV0ZXgpOworCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoaTkxNSk7CisJbXV0ZXhfbG9j aygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cit9CisKK3N0YXRpYyBpbnQgaWd0X21vY2tfZmls bCh2b2lkICphcmcpCit7CisJc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSA9IGFyZzsK KwlyZXNvdXJjZV9zaXplX3QgdG90YWwgPSByZXNvdXJjZV9zaXplKCZtZW0tPnJlZ2lvbik7CisJ cmVzb3VyY2Vfc2l6ZV90IHBhZ2Vfc2l6ZTsKKwlyZXNvdXJjZV9zaXplX3QgcmVtOworCXVuc2ln bmVkIGxvbmcgbWF4X3BhZ2VzOworCXVuc2lnbmVkIGxvbmcgcGFnZV9udW07CisJTElTVF9IRUFE KG9iamVjdHMpOworCWludCBlcnIgPSAwOworCisJcGFnZV9zaXplID0gbWVtLT5tbS5jaHVua19z aXplOworCW1heF9wYWdlcyA9IGRpdjY0X3U2NCh0b3RhbCwgcGFnZV9zaXplKTsKKwlyZW0gPSB0 b3RhbDsKKworCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKHBhZ2VfbnVtLCAxLCBtYXhfcGFn ZXMpIHsKKwkJcmVzb3VyY2Vfc2l6ZV90IHNpemUgPSBwYWdlX251bSAqIHBhZ2Vfc2l6ZTsKKwkJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKworCQlvYmogPSBpOTE1X2dlbV9vYmpl Y3RfY3JlYXRlX3JlZ2lvbihtZW0sIHNpemUsIDApOworCQlpZiAoSVNfRVJSKG9iaikpIHsKKwkJ CWVyciA9IFBUUl9FUlIob2JqKTsKKwkJCWJyZWFrOworCQl9CisKKwkJZXJyID0gaTkxNV9nZW1f b2JqZWN0X3Bpbl9wYWdlcyhvYmopOworCQlpZiAoZXJyKSB7CisJCQlpOTE1X2dlbV9vYmplY3Rf cHV0KG9iaik7CisJCQlicmVhazsKKwkJfQorCisJCWxpc3RfYWRkKCZvYmotPnN0X2xpbmssICZv YmplY3RzKTsKKwkJcmVtIC09IHNpemU7CisJfQorCisJaWYgKGVyciA9PSAtRU5PTUVNKQorCQll cnIgPSAwOworCWlmIChlcnIgPT0gLUVOWElPKSB7CisJCWlmIChwYWdlX251bSAqIHBhZ2Vfc2l6 ZSA8PSByZW0pIHsKKwkJCXByX2VycigiaWd0X21vY2tfZmlsbCBmYWlsZWQsIHNwYWNlIHN0aWxs IGxlZnQgaW4gcmVnaW9uXG4iKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCX0gZWxzZSB7CisJCQll cnIgPSAwOworCQl9CisJfQorCisJY2xvc2Vfb2JqZWN0cyhtZW0sICZvYmplY3RzKTsKKworCXJl dHVybiBlcnI7Cit9CisKK2ludCBpbnRlbF9tZW1vcnlfcmVnaW9uX21vY2tfc2VsZnRlc3RzKHZv aWQpCit7CisJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKKwkJ U1VCVEVTVChpZ3RfbW9ja19maWxsKSwKKwl9OworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICptZW07CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CisJaW50IGVycjsKKworCWk5 MTUgPSBtb2NrX2dlbV9kZXZpY2UoKTsKKwlpZiAoIWk5MTUpCisJCXJldHVybiAtRU5PTUVNOwor CisJbWVtID0gbW9ja19yZWdpb25fY3JlYXRlKGk5MTUsIDAsIFNaXzJHLCBJOTE1X0dUVF9QQUdF X1NJWkVfNEssIDApOworCWlmIChJU19FUlIobWVtKSkgeworCQlwcl9lcnIoImZhaWxlZCB0byBj cmVhdGUgbWVtb3J5IHJlZ2lvblxuIik7CisJCWVyciA9IFBUUl9FUlIobWVtKTsKKwkJZ290byBv dXRfdW5yZWY7CisJfQorCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJ ZXJyID0gaTkxNV9zdWJ0ZXN0cyh0ZXN0cywgbWVtKTsKKwltdXRleF91bmxvY2soJmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOworCisJaW50ZWxfbWVtb3J5X3JlZ2lvbl9wdXQobWVtKTsKK291dF91 bnJlZjoKKwlkcm1fZGV2X3B1dCgmaTkxNS0+ZHJtKTsKKwlyZXR1cm4gZXJyOworfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCmluZGV4IDI0 NDgwNjc4MjJhZi4uOTgwOWIxNzA4M2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi bW9ja19nZW1fZGV2aWNlLmgiCiAjaW5jbHVkZSAibW9ja19ndHQuaCIKICNpbmNsdWRlICJtb2Nr X3VuY29yZS5oIgorI2luY2x1ZGUgIm1vY2tfcmVnaW9uLmgiCiAKICNpbmNsdWRlICJnZW0vc2Vs ZnRlc3RzL21vY2tfY29udGV4dC5oIgogI2luY2x1ZGUgImdlbS9zZWxmdGVzdHMvbW9ja19nZW1f b2JqZWN0LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9j a19yZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlZ2lvbi5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMGU5YTU3NWVkZTNiCi0t LSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVn aW9uLmMKQEAgLTAsMCArMSw1OSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAor LyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1 ZGUgImdlbS9pOTE1X2dlbV9yZWdpb24uaCIKKyNpbmNsdWRlICJpbnRlbF9tZW1vcnlfcmVnaW9u LmgiCisKKyNpbmNsdWRlICJtb2NrX3JlZ2lvbi5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3Rfb3BzIG1vY2tfcmVnaW9uX29ial9vcHMgPSB7CisJLmdldF9wYWdl cyA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfYnVkZHksCisJLnB1dF9wYWdlcyA9IGk5MTVf Z2VtX29iamVjdF9wdXRfcGFnZXNfYnVkZHksCisJLnJlbGVhc2UgPSBpOTE1X2dlbV9vYmplY3Rf cmVsZWFzZV9tZW1vcnlfcmVnaW9uLAorfTsKKworc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICoKK21vY2tfb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAq bWVtLAorCQkgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJICAgdW5zaWduZWQgaW50IGZsYWdz KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gbWVtLT5pOTE1OworCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisKKwlpZiAoc2l6ZSA+IEJJVChtZW0tPm1tLm1h eF9vcmRlcikgKiBtZW0tPm1tLmNodW5rX3NpemUpCisJCXJldHVybiBFUlJfUFRSKC1FMkJJRyk7 CisKKwlvYmogPSBpOTE1X2dlbV9vYmplY3RfYWxsb2MoKTsKKwlpZiAoIW9iaikKKwkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7CisKKwlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoJmk5MTUt PmRybSwgJm9iai0+YmFzZSwgc2l6ZSk7CisJaTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAmbW9j a19yZWdpb25fb2JqX29wcyk7CisKKwlvYmotPnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJ Tl9DUFUgfCBJOTE1X0dFTV9ET01BSU5fR1RUOworCisJaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNo ZV9jb2hlcmVuY3kob2JqLCBJOTE1X0NBQ0hFX05PTkUpOworCisJaTkxNV9nZW1fb2JqZWN0X2lu aXRfbWVtb3J5X3JlZ2lvbihvYmosIG1lbSk7CisKKwlyZXR1cm4gb2JqOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IGludGVsX21lbW9yeV9yZWdpb25fb3BzIG1vY2tfcmVnaW9uX29wcyA9IHsK KwkuaW5pdCA9IGludGVsX21lbW9yeV9yZWdpb25faW5pdF9idWRkeSwKKwkucmVsZWFzZSA9IGlu dGVsX21lbW9yeV9yZWdpb25fcmVsZWFzZV9idWRkeSwKKwkuY3JlYXRlX29iamVjdCA9IG1vY2tf b2JqZWN0X2NyZWF0ZSwKK307CisKK3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICoKK21vY2tf cmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJICAgcmVzb3Vy Y2Vfc2l6ZV90IHN0YXJ0LAorCQkgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkJICAgcmVzb3Vy Y2Vfc2l6ZV90IG1pbl9wYWdlX3NpemUsCisJCSAgIHJlc291cmNlX3NpemVfdCBpb19zdGFydCkK K3sKKwlyZXR1cm4gaW50ZWxfbWVtb3J5X3JlZ2lvbl9jcmVhdGUoaTkxNSwgc3RhcnQsIHNpemUs IG1pbl9wYWdlX3NpemUsCisJCQkJCSAgaW9fc3RhcnQsICZtb2NrX3JlZ2lvbl9vcHMpOworfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI0NjA4MDg5ZDgzMwotLS0gL2Rldi9udWxs CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlZ2lvbi5oCkBAIC0w LDAgKzEsMTYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBD b3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19NT0NL X1JFR0lPTl9ICisjZGVmaW5lIF9fTU9DS19SRUdJT05fSAorCitzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbiAqCittb2NrX3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCisJCSAgIHJlc291cmNlX3NpemVfdCBzdGFydCwKKwkJICAgcmVzb3VyY2Vfc2l6ZV90IHNp emUsCisJCSAgIHJlc291cmNlX3NpemVfdCBtaW5fcGFnZV9zaXplLAorCQkgICByZXNvdXJjZV9z aXplX3QgaW9fc3RhcnQpOworCisjZW5kaWYgLyogIV9fTU9DS19SRUdJT05fSCAqLwotLSAKMi4y MC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=