From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [MIPI SEQ PARSING v2 PATCH 03/11] drm/i915: Parsing VBT if size of VBT exceeds 6KB Date: Thu, 10 Sep 2015 04:54:22 +0530 Message-ID: <1441841070-11532-4-git-send-email-m.deepak@intel.com> References: <1441841070-11532-1-git-send-email-m.deepak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 53E116E318 for ; Wed, 9 Sep 2015 16:20:48 -0700 (PDT) In-Reply-To: <1441841070-11532-1-git-send-email-m.deepak@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 Cc: Deepak M List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5IHRoZSBpb21hcCBmb3IgVkJUIHdvcmtzIG9ubHkgaWYgdGhlIHNpemUgb2YgdGhl ClZCVCBpcyBsZXNzIHRoYW4gNktCLCBidXQgaWYgdGhlIHNpemUgb2YgdGhlIFZCVCBleGNlZWRz CjZLQiB0aGFuIHRoZSBwaHlzaWNhbCBhZGRyZXNzIGFuZCB0aGUgc2l6ZSBvZiB0aGUgVkJUIHRv CmJlIGlvbWFwcGVkIGlzIHNwZWNpZmllZCBpbiB0aGUgbWFpbGJveDMgYW5kIGlzIGlvbWFwcGVk CmFjY29yZGluZ2x5LgoKdjI6IC0gTW92aW5nIHRoZSB2YWxpZGF0ZV92YnQgdG8gb3ByZWdpb24g ZmlsZSAoSmFuaSkKICAgIC0gRml4IHRoZSBpOTE1X29wcmVnaW9uKCkgaW4gZGVidWdmcyAoSmFu aSkKClNpZ25lZC1vZmYtYnk6IERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICB8ICAgMjQgKystCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgICAgNCArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9iaW9zLmMgICAgIHwgICA0OSArLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX29wcmVnaW9uLmMgfCAgMjc5ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uaCB8ICAyMzAgKysrKysrKysrKysr KysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDMyOSBpbnNlcnRpb25zKCspLCAyNTcg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfb3ByZWdpb24uaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNDE2Mjlm YS4uNTUzNGFhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTI2LDYgKzI2 LDggQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KKyNpbmNsdWRlIDxhY3Bp L3ZpZGVvLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9j aXJjX2J1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CkBAIC0zOSw2ICs0MSw3IEBACiAj aW5jbHVkZSAiaW50ZWxfcmluZ2J1ZmZlci5oIgogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgog I2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfb3ByZWdpb24uaCIKIAogZW51 bSB7CiAJQUNUSVZFX0xJU1QsCkBAIC0xODMyLDcgKzE4MzUsNyBAQCBzdGF0aWMgaW50IGk5MTVf b3ByZWdpb24oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gKm9w cmVnaW9uID0gJmRldl9wcml2LT5vcHJlZ2lvbjsKLQl2b2lkICpkYXRhID0ga21hbGxvYyhPUFJF R0lPTl9TSVpFLCBHRlBfS0VSTkVMKTsKKwl2b2lkICpkYXRhID0ga21hbGxvYyhPUFJFR0lPTl9W QlRfT0ZGU0VULCBHRlBfS0VSTkVMKTsKIAlpbnQgcmV0OwogCiAJaWYgKGRhdGEgPT0gTlVMTCkK QEAgLTE4NDMsMTIgKzE4NDYsMjUgQEAgc3RhdGljIGludCBpOTE1X29wcmVnaW9uKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQlnb3RvIG91dDsKIAogCWlmIChvcHJlZ2lvbi0+ aGVhZGVyKSB7Ci0JCW1lbWNweV9mcm9taW8oZGF0YSwgb3ByZWdpb24tPmhlYWRlciwgT1BSRUdJ T05fU0laRSk7Ci0JCXNlcV93cml0ZShtLCBkYXRhLCBPUFJFR0lPTl9TSVpFKTsKKwkJbWVtY3B5 X2Zyb21pbyhkYXRhLCBvcHJlZ2lvbi0+aGVhZGVyLCBPUFJFR0lPTl9WQlRfT0ZGU0VUKTsKKwkJ c2VxX3dyaXRlKG0sIGRhdGEsIE9QUkVHSU9OX1ZCVF9PRkZTRVQpOworCQlrZnJlZShkYXRhKTsK KwkJaWYgKG9wcmVnaW9uLT5hc2xlLT5ydmRhKSB7CisJCQlkYXRhID0ga21hbGxvYyhvcHJlZ2lv bi0+YXNsZS0+cnZkcywgR0ZQX0tFUk5FTCk7CisJCQltZW1jcHlfZnJvbWlvKGRhdGEsCisJCQkJ KGNvbnN0IHZvaWQgX19pb21lbSAqKSBvcHJlZ2lvbi0+YXNsZS0+cnZkYSwKKwkJCQlvcHJlZ2lv bi0+YXNsZS0+cnZkcyk7CisJCQlzZXFfd3JpdGUobSwgZGF0YSwgb3ByZWdpb24tPmFzbGUtPnJ2 ZHMpOworCQl9IGVsc2UgeworCQkJZGF0YSA9IGttYWxsb2MoT1BSRUdJT05fU0laRSAtIE9QUkVH SU9OX1ZCVF9PRkZTRVQsCisJCQkJCUdGUF9LRVJORUwpOworCQkJbWVtY3B5X2Zyb21pbyhkYXRh LCBvcHJlZ2lvbi0+dmJ0LAorCQkJCQlPUFJFR0lPTl9TSVpFIC0gT1BSRUdJT05fVkJUX09GRlNF VCk7CisJCQlzZXFfd3JpdGUobSwgZGF0YSwgT1BSRUdJT05fU0laRSAtIE9QUkVHSU9OX1ZCVF9P RkZTRVQpOworCQl9CiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0K IG91dDoKIAlrZnJlZShkYXRhKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IDEyODcwMDcuLjUwN2Q1N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTc4MCw2 ICsxNzgwLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXN0cnVjdCBpOTE1X2hvdHBs dWcgaG90cGx1ZzsKIAlzdHJ1Y3QgaTkxNV9mYmMgZmJjOwogCXN0cnVjdCBpOTE1X2RycnMgZHJy czsKKwljb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiX3N0YXJ0OwogCXN0cnVjdCBpbnRlbF9v cHJlZ2lvbiBvcHJlZ2lvbjsKIAlzdHJ1Y3QgaW50ZWxfdmJ0X2RhdGEgdmJ0OwogCkBAIC0zMzA2 LDYgKzMzMDcsOSBAQCBpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfYWRhcHRlcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBwY2lfcG93ZXJfdCBzdGF0ZSkKIH0KICNlbmRpZgogCitjb25zdCBzdHJ1Y3Qg YmRiX2hlYWRlciAqdmFsaWRhdGVfdmJ0KGNvbnN0IHZvaWQgX19pb21lbSAqX3ZidCwKKwkJCXNp emVfdCBzaXplLCBjb25zdCBjaGFyICpzb3VyY2UpOworCiAvKiBpbnRlbF9hY3BpLmMgKi8KICNp ZmRlZiBDT05GSUdfQUNQSQogZXh0ZXJuIHZvaWQgaW50ZWxfcmVnaXN0ZXJfZHNtX2hhbmRsZXIo dm9pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKaW5kZXggMGJmMDk0Mi4uMTkzMmE4NiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwpAQCAtMTIyNyw0OSArMTIyNyw2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBpbnRlbF9ub19vcHJlZ2lvbl92YnRbXSA9IHsK IAl7IH0KIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqdmFsaWRhdGVfdmJ0 KGNvbnN0IHZvaWQgX19pb21lbSAqX2Jhc2UsCi0JCQkJCSAgICAgc2l6ZV90IHNpemUsCi0JCQkJ CSAgICAgY29uc3Qgdm9pZCBfX2lvbWVtICpfdmJ0LAotCQkJCQkgICAgIGNvbnN0IGNoYXIgKnNv dXJjZSkKLXsKLQkvKgotCSAqIFRoaXMgaXMgdGhlIG9uZSBwbGFjZSB3aGVyZSB3ZSBleHBsaWNp dGx5IGRpc2NhcmQgdGhlIGFkZHJlc3Mgc3BhY2UKLQkgKiAoX19pb21lbSkgb2YgdGhlIEJJT1Mv VkJULiAoQW5kIHRoaXMgd2lsbCBjYXVzZSBhIHNwYXJzZSBjb21wbGFpbnQuKQotCSAqIEZyb20g bm93IG9uIGV2ZXJ5dGhpbmcgaXMgYmFzZWQgb24gJ2Jhc2UnLCBhbmQgdHJlYXRlZCBhcyByZWd1 bGFyCi0JICogbWVtb3J5LgotCSAqLwotCWNvbnN0IHZvaWQgKmJhc2UgPSAoY29uc3Qgdm9pZCAq KSBfYmFzZTsKLQlzaXplX3Qgb2Zmc2V0ID0gX3ZidCAtIF9iYXNlOwotCWNvbnN0IHN0cnVjdCB2 YnRfaGVhZGVyICp2YnQgPSBiYXNlICsgb2Zmc2V0OwotCWNvbnN0IHN0cnVjdCBiZGJfaGVhZGVy ICpiZGI7Ci0KLQlpZiAob2Zmc2V0ICsgc2l6ZW9mKHN0cnVjdCB2YnRfaGVhZGVyKSA+IHNpemUp IHsKLQkJRFJNX0RFQlVHX0RSSVZFUigiVkJUIGhlYWRlciBpbmNvbXBsZXRlXG4iKTsKLQkJcmV0 dXJuIE5VTEw7Ci0JfQotCi0JaWYgKG1lbWNtcCh2YnQtPnNpZ25hdHVyZSwgIiRWQlQiLCA0KSkg ewotCQlEUk1fREVCVUdfRFJJVkVSKCJWQlQgaW52YWxpZCBzaWduYXR1cmVcbiIpOwotCQlyZXR1 cm4gTlVMTDsKLQl9Ci0KLQlvZmZzZXQgKz0gdmJ0LT5iZGJfb2Zmc2V0OwotCWlmIChvZmZzZXQg KyBzaXplb2Yoc3RydWN0IGJkYl9oZWFkZXIpID4gc2l6ZSkgewotCQlEUk1fREVCVUdfRFJJVkVS KCJCREIgaGVhZGVyIGluY29tcGxldGVcbiIpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0KLQliZGIg PSBiYXNlICsgb2Zmc2V0OwotCWlmIChvZmZzZXQgKyBiZGItPmJkYl9zaXplID4gc2l6ZSkgewot CQlEUk1fREVCVUdfRFJJVkVSKCJCREIgaW5jb21wbGV0ZVxuIik7Ci0JCXJldHVybiBOVUxMOwot CX0KLQotCURSTV9ERUJVR19LTVMoIlVzaW5nIFZCVCBmcm9tICVzOiAlMjBzXG4iLAotCQkgICAg ICBzb3VyY2UsIHZidC0+c2lnbmF0dXJlKTsKLQlyZXR1cm4gYmRiOwotfQotCiBzdGF0aWMgY29u c3Qgc3RydWN0IGJkYl9oZWFkZXIgKmZpbmRfdmJ0KHZvaWQgX19pb21lbSAqYmlvcywgc2l6ZV90 IHNpemUpCiB7CiAJY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYiA9IE5VTEw7CkBAIC0xMjc4 LDcgKzEyMzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmZpbmRfdmJ0KHZv aWQgX19pb21lbSAqYmlvcywgc2l6ZV90IHNpemUpCiAJLyogU2NvdXIgbWVtb3J5IGxvb2tpbmcg Zm9yIHRoZSBWQlQgc2lnbmF0dXJlLiAqLwogCWZvciAoaSA9IDA7IGkgKyA0IDwgc2l6ZTsgaSsr KSB7CiAJCWlmIChpb3JlYWQzMihiaW9zICsgaSkgPT0gKigoY29uc3QgdTMyICopICIkVkJUIikp IHsKLQkJCWJkYiA9IHZhbGlkYXRlX3ZidChiaW9zLCBzaXplLCBiaW9zICsgaSwgIlBDSSBST00i KTsKKwkJCWJkYiA9IHZhbGlkYXRlX3ZidChiaW9zICsgaSwgc2l6ZSAtIGksICJQQ0kgUk9NIik7 CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTEzMDgsMTAgKzEyNjUsOCBAQCBpbnRlbF9wYXJzZV9i aW9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpbml0X3ZidF9kZWZhdWx0cyhkZXZfcHJp dik7CiAKLQkvKiBYWFggU2hvdWxkIHRoaXMgdmFsaWRhdGlvbiBiZSBtb3ZlZCB0byBpbnRlbF9v cHJlZ2lvbi5jPyAqLwogCWlmICghZG1pX2NoZWNrX3N5c3RlbShpbnRlbF9ub19vcHJlZ2lvbl92 YnQpICYmIGRldl9wcml2LT5vcHJlZ2lvbi52YnQpCi0JCWJkYiA9IHZhbGlkYXRlX3ZidChkZXZf cHJpdi0+b3ByZWdpb24uaGVhZGVyLCBPUFJFR0lPTl9TSVpFLAotCQkJCSAgIGRldl9wcml2LT5v cHJlZ2lvbi52YnQsICJPcFJlZ2lvbiIpOworCQliZGIgPSBkZXZfcHJpdi0+YmRiX3N0YXJ0Owog CiAJaWYgKGJkYiA9PSBOVUxMKSB7CiAJCXNpemVfdCBzaXplOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX29wcmVnaW9uLmMKaW5kZXggZjQ2MjMxZi4uM2E0M2RiOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9vcHJlZ2lvbi5jCkBAIC0zMiwyMTAgKzMyLDcgQEAKICNpbmNsdWRlIDxkcm0vaTkx NV9kcm0uaD4KICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2Rydi5oIgot Ci0jZGVmaW5lIFBDSV9BU0xFCQkweGU0Ci0jZGVmaW5lIFBDSV9BU0xTCQkweGZjCi0jZGVmaW5l IFBDSV9TV1NDSQkJMHhlOAotI2RlZmluZSBQQ0lfU1dTQ0lfU0NJU0VMCSgxIDw8IDE1KQotI2Rl ZmluZSBQQ0lfU1dTQ0lfR1NTQ0lFCSgxIDw8IDApCi0KLSNkZWZpbmUgT1BSRUdJT05fSEVBREVS X09GRlNFVCAwCi0jZGVmaW5lIE9QUkVHSU9OX0FDUElfT0ZGU0VUICAgMHgxMDAKLSNkZWZpbmUg ICBBQ1BJX0NMSUQgMHgwMWFjIC8qIGN1cnJlbnQgbGlkIHN0YXRlIGluZGljYXRvciAqLwotI2Rl ZmluZSAgIEFDUElfQ0RDSyAweDAxYjAgLyogY3VycmVudCBkb2NraW5nIHN0YXRlIGluZGljYXRv ciAqLwotI2RlZmluZSBPUFJFR0lPTl9TV1NDSV9PRkZTRVQgIDB4MjAwCi0jZGVmaW5lIE9QUkVH SU9OX0FTTEVfT0ZGU0VUICAgMHgzMDAKLSNkZWZpbmUgT1BSRUdJT05fVkJUX09GRlNFVCAgICAw eDQwMAotCi0jZGVmaW5lIE9QUkVHSU9OX1NJR05BVFVSRSAiSW50ZWxHcmFwaGljc01lbSIKLSNk ZWZpbmUgTUJPWF9BQ1BJICAgICAgKDE8PDApCi0jZGVmaW5lIE1CT1hfU1dTQ0kgICAgICgxPDwx KQotI2RlZmluZSBNQk9YX0FTTEUgICAgICAoMTw8MikKLSNkZWZpbmUgTUJPWF9BU0xFX0VYVCAg KDE8PDQpCi0KLXN0cnVjdCBvcHJlZ2lvbl9oZWFkZXIgewotCXU4IHNpZ25hdHVyZVsxNl07Ci0J dTMyIHNpemU7Ci0JdTMyIG9wcmVnaW9uX3ZlcjsKLQl1OCBiaW9zX3ZlclszMl07Ci0JdTggdmJp b3NfdmVyWzE2XTsKLQl1OCBkcml2ZXJfdmVyWzE2XTsKLQl1MzIgbWJveGVzOwotCXUzMiBkcml2 ZXJfbW9kZWw7Ci0JdTMyIHBjb247Ci0JdTggZHZlclszMl07Ci0JdTggcnN2ZFsxMjRdOwotfSBf X3BhY2tlZDsKLQotLyogT3BSZWdpb24gbWFpbGJveCAjMTogcHVibGljIEFDUEkgbWV0aG9kcyAq Lwotc3RydWN0IG9wcmVnaW9uX2FjcGkgewotCXUzMiBkcmR5OyAgICAgICAvKiBkcml2ZXIgcmVh ZGluZXNzICovCi0JdTMyIGNzdHM7ICAgICAgIC8qIG5vdGlmaWNhdGlvbiBzdGF0dXMgKi8KLQl1 MzIgY2V2dDsgICAgICAgLyogY3VycmVudCBldmVudCAqLwotCXU4IHJzdmQxWzIwXTsKLQl1MzIg ZGlkbFs4XTsgICAgLyogc3VwcG9ydGVkIGRpc3BsYXkgZGV2aWNlcyBJRCBsaXN0ICovCi0JdTMy IGNwZGxbOF07ICAgIC8qIGN1cnJlbnRseSBwcmVzZW50ZWQgZGlzcGxheSBsaXN0ICovCi0JdTMy IGNhZGxbOF07ICAgIC8qIGN1cnJlbnRseSBhY3RpdmUgZGlzcGxheSBsaXN0ICovCi0JdTMyIG5h ZGxbOF07ICAgIC8qIG5leHQgYWN0aXZlIGRldmljZXMgbGlzdCAqLwotCXUzMiBhc2xwOyAgICAg ICAvKiBBU0wgc2xlZXAgdGltZS1vdXQgKi8KLQl1MzIgdGlkeDsgICAgICAgLyogdG9nZ2xlIHRh YmxlIGluZGV4ICovCi0JdTMyIGNocGQ7ICAgICAgIC8qIGN1cnJlbnQgaG90cGx1ZyBlbmFibGUg aW5kaWNhdG9yICovCi0JdTMyIGNsaWQ7ICAgICAgIC8qIGN1cnJlbnQgbGlkIHN0YXRlKi8KLQl1 MzIgY2RjazsgICAgICAgLyogY3VycmVudCBkb2NraW5nIHN0YXRlICovCi0JdTMyIHN4c3c7ICAg ICAgIC8qIFN4IHN0YXRlIHJlc3VtZSAqLwotCXUzMiBldnRzOyAgICAgICAvKiBBU0wgc3VwcG9y dGVkIGV2ZW50cyAqLwotCXUzMiBjbm90OyAgICAgICAvKiBjdXJyZW50IE9TIG5vdGlmaWNhdGlv biAqLwotCXUzMiBucmR5OyAgICAgICAvKiBkcml2ZXIgc3RhdHVzICovCi0JdTMyIGRpZDJbN107 CS8qIGV4dGVuZGVkIHN1cHBvcnRlZCBkaXNwbGF5IGRldmljZXMgSUQgbGlzdCAqLwotCXUzMiBj cGQyWzddOwkvKiBleHRlbmRlZCBhdHRhY2hlZCBkaXNwbGF5IGRldmljZXMgbGlzdCAqLwotCXU4 IHJzdmQyWzRdOwotfSBfX3BhY2tlZDsKLQotLyogT3BSZWdpb24gbWFpbGJveCAjMjogU1dTQ0kg Ki8KLXN0cnVjdCBvcHJlZ2lvbl9zd3NjaSB7Ci0JdTMyIHNjaWM7ICAgICAgIC8qIFNXU0NJIGNv bW1hbmR8c3RhdHVzfGRhdGEgKi8KLQl1MzIgcGFybTsgICAgICAgLyogY29tbWFuZCBwYXJhbWV0 ZXJzICovCi0JdTMyIGRzbHA7ICAgICAgIC8qIGRyaXZlciBzbGVlcCB0aW1lLW91dCAqLwotCXU4 IHJzdmRbMjQ0XTsKLX0gX19wYWNrZWQ7Ci0KLS8qIE9wUmVnaW9uIG1haWxib3ggIzM6IEFTTEUg Ki8KLXN0cnVjdCBvcHJlZ2lvbl9hc2xlIHsKLQl1MzIgYXJkeTsgICAgICAgLyogZHJpdmVyIHJl YWRpbmVzcyAqLwotCXUzMiBhc2xjOyAgICAgICAvKiBBU0xFIGludGVycnVwdCBjb21tYW5kICov Ci0JdTMyIHRjaGU7ICAgICAgIC8qIHRlY2hub2xvZ3kgZW5hYmxlZCBpbmRpY2F0b3IgKi8KLQl1 MzIgYWxzaTsgICAgICAgLyogY3VycmVudCBBTFMgaWxsdW1pbmFuY2UgcmVhZGluZyAqLwotCXUz MiBiY2xwOyAgICAgICAvKiBiYWNrbGlnaHQgYnJpZ2h0bmVzcyB0byBzZXQgKi8KLQl1MzIgcGZp dDsgICAgICAgLyogcGFuZWwgZml0dGluZyBzdGF0ZSAqLwotCXUzMiBjYmx2OyAgICAgICAvKiBj dXJyZW50IGJyaWdodG5lc3MgbGV2ZWwgKi8KLQl1MTYgYmNsbVsyMF07ICAgLyogYmFja2xpZ2h0 IGxldmVsIGR1dHkgY3ljbGUgbWFwcGluZyB0YWJsZSAqLwotCXUzMiBjcGZtOyAgICAgICAvKiBj dXJyZW50IHBhbmVsIGZpdHRpbmcgbW9kZSAqLwotCXUzMiBlcGZtOyAgICAgICAvKiBlbmFibGVk IHBhbmVsIGZpdHRpbmcgbW9kZXMgKi8KLQl1OCBwbHV0Wzc0XTsgICAgLyogcGFuZWwgTFVUIGFu ZCBpZGVudGlmaWVyICovCi0JdTMyIHBmbWI7ICAgICAgIC8qIFBXTSBmcmVxIGFuZCBtaW4gYnJp Z2h0bmVzcyAqLwotCXUzMiBjZGR2OyAgICAgICAvKiBjb2xvciBjb3JyZWN0aW9uIGRlZmF1bHQg dmFsdWVzICovCi0JdTMyIHBjZnQ7ICAgICAgIC8qIHBvd2VyIGNvbnNlcnZhdGlvbiBmZWF0dXJl cyAqLwotCXUzMiBzcm90OyAgICAgICAvKiBzdXBwb3J0ZWQgcm90YXRpb24gYW5nbGVzICovCi0J dTMyIGl1ZXI7ICAgICAgIC8qIElVRVIgZXZlbnRzICovCi0JdTY0IGZkc3M7Ci0JdTMyIGZkc3A7 Ci0JdTMyIHN0YXQ7Ci0JdTY0IHJ2ZGE7CS8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgcmF3IHZidCBk YXRhICovCi0JdTMyIHJ2ZHM7CS8qIFNpemUgb2YgcmF3IHZidCBkYXRhICovCi0JdTggcnN2ZFs1 OF07Ci19IF9fcGFja2VkOwotCi0vKiBEcml2ZXIgcmVhZGluZXNzIGluZGljYXRvciAqLwotI2Rl ZmluZSBBU0xFX0FSRFlfUkVBRFkJCSgxIDw8IDApCi0jZGVmaW5lIEFTTEVfQVJEWV9OT1RfUkVB RFkJKDAgPDwgMCkKLQotLyogQVNMRSBJbnRlcnJ1cHQgQ29tbWFuZCAoQVNMQykgYml0cyAqLwot I2RlZmluZSBBU0xDX1NFVF9BTFNfSUxMVU0JCSgxIDw8IDApCi0jZGVmaW5lIEFTTENfU0VUX0JB Q0tMSUdIVAkJKDEgPDwgMSkKLSNkZWZpbmUgQVNMQ19TRVRfUEZJVAkJCSgxIDw8IDIpCi0jZGVm aW5lIEFTTENfU0VUX1BXTV9GUkVRCQkoMSA8PCAzKQotI2RlZmluZSBBU0xDX1NVUFBPUlRFRF9S T1RBVElPTl9BTkdMRVMJKDEgPDwgNCkKLSNkZWZpbmUgQVNMQ19CVVRUT05fQVJSQVkJCSgxIDw8 IDUpCi0jZGVmaW5lIEFTTENfQ09OVkVSVElCTEVfSU5ESUNBVE9SCSgxIDw8IDYpCi0jZGVmaW5l IEFTTENfRE9DS0lOR19JTkRJQ0FUT1IJCSgxIDw8IDcpCi0jZGVmaW5lIEFTTENfSVNDVF9TVEFU RV9DSEFOR0UJCSgxIDw8IDgpCi0jZGVmaW5lIEFTTENfUkVRX01TSwkJCTB4MWZmCi0vKiByZXNw b25zZSBiaXRzICovCi0jZGVmaW5lIEFTTENfQUxTX0lMTFVNX0ZBSUxFRAkJKDEgPDwgMTApCi0j ZGVmaW5lIEFTTENfQkFDS0xJR0hUX0ZBSUxFRAkJKDEgPDwgMTIpCi0jZGVmaW5lIEFTTENfUEZJ VF9GQUlMRUQJCSgxIDw8IDE0KQotI2RlZmluZSBBU0xDX1BXTV9GUkVRX0ZBSUxFRAkJKDEgPDwg MTYpCi0jZGVmaW5lIEFTTENfUk9UQVRJT05fQU5HTEVTX0ZBSUxFRAkoMSA8PCAxOCkKLSNkZWZp bmUgQVNMQ19CVVRUT05fQVJSQVlfRkFJTEVECSgxIDw8IDIwKQotI2RlZmluZSBBU0xDX0NPTlZF UlRJQkxFX0ZBSUxFRAkJKDEgPDwgMjIpCi0jZGVmaW5lIEFTTENfRE9DS0lOR19GQUlMRUQJCSgx IDw8IDI0KQotI2RlZmluZSBBU0xDX0lTQ1RfU1RBVEVfRkFJTEVECQkoMSA8PCAyNikKLQotLyog VGVjaG5vbG9neSBlbmFibGVkIGluZGljYXRvciAqLwotI2RlZmluZSBBU0xFX1RDSEVfQUxTX0VO CSgxIDw8IDApCi0jZGVmaW5lIEFTTEVfVENIRV9CTENfRU4JKDEgPDwgMSkKLSNkZWZpbmUgQVNM RV9UQ0hFX1BGSVRfRU4JKDEgPDwgMikKLSNkZWZpbmUgQVNMRV9UQ0hFX1BGTUJfRU4JKDEgPDwg MykKLQotLyogQVNMRSBiYWNrbGlnaHQgYnJpZ2h0bmVzcyB0byBzZXQgKi8KLSNkZWZpbmUgQVNM RV9CQ0xQX1ZBTElEICAgICAgICAgICAgICAgICgxPDwzMSkKLSNkZWZpbmUgQVNMRV9CQ0xQX01T SyAgICAgICAgICAofigxPDwzMSkpCi0KLS8qIEFTTEUgcGFuZWwgZml0dGluZyByZXF1ZXN0ICov Ci0jZGVmaW5lIEFTTEVfUEZJVF9WQUxJRCAgICAgICAgICgxPDwzMSkKLSNkZWZpbmUgQVNMRV9Q RklUX0NFTlRFUiAoMTw8MCkKLSNkZWZpbmUgQVNMRV9QRklUX1NUUkVUQ0hfVEVYVCAoMTw8MSkK LSNkZWZpbmUgQVNMRV9QRklUX1NUUkVUQ0hfR0ZYICgxPDwyKQotCi0vKiBQV00gZnJlcXVlbmN5 IGFuZCBtaW5pbXVtIGJyaWdodG5lc3MgKi8KLSNkZWZpbmUgQVNMRV9QRk1CX0JSSUdIVE5FU1Nf TUFTSyAoMHhmZikKLSNkZWZpbmUgQVNMRV9QRk1CX0JSSUdIVE5FU1NfVkFMSUQgKDE8PDgpCi0j ZGVmaW5lIEFTTEVfUEZNQl9QV01fTUFTSyAoMHg3ZmZmZmUwMCkKLSNkZWZpbmUgQVNMRV9QRk1C X1BXTV9WQUxJRCAoMTw8MzEpCi0KLSNkZWZpbmUgQVNMRV9DQkxWX1ZBTElEICAgICAgICAgKDE8 PDMxKQotCi0vKiBJVUVSICovCi0jZGVmaW5lIEFTTEVfSVVFUl9ET0NLSU5HCQkoMSA8PCA3KQot I2RlZmluZSBBU0xFX0lVRVJfQ09OVkVSVElCTEUJCSgxIDw8IDYpCi0jZGVmaW5lIEFTTEVfSVVF Ul9ST1RBVElPTl9MT0NLX0JUTgkoMSA8PCA0KQotI2RlZmluZSBBU0xFX0lVRVJfVk9MVU1FX0RP V05fQlROCSgxIDw8IDMpCi0jZGVmaW5lIEFTTEVfSVVFUl9WT0xVTUVfVVBfQlROCQkoMSA8PCAy KQotI2RlZmluZSBBU0xFX0lVRVJfV0lORE9XU19CVE4JCSgxIDw8IDEpCi0jZGVmaW5lIEFTTEVf SVVFUl9QT1dFUl9CVE4JCSgxIDw8IDApCi0KLS8qIFNvZnR3YXJlIFN5c3RlbSBDb250cm9sIElu dGVycnVwdCAoU1dTQ0kpICovCi0jZGVmaW5lIFNXU0NJX1NDSUNfSU5ESUNBVE9SCQkoMSA8PCAw KQotI2RlZmluZSBTV1NDSV9TQ0lDX01BSU5fRlVOQ1RJT05fU0hJRlQJMQotI2RlZmluZSBTV1ND SV9TQ0lDX01BSU5fRlVOQ1RJT05fTUFTSwkoMHhmIDw8IDEpCi0jZGVmaW5lIFNXU0NJX1NDSUNf U1VCX0ZVTkNUSU9OX1NISUZUCTgKLSNkZWZpbmUgU1dTQ0lfU0NJQ19TVUJfRlVOQ1RJT05fTUFT SwkoMHhmZiA8PCA4KQotI2RlZmluZSBTV1NDSV9TQ0lDX0VYSVRfUEFSQU1FVEVSX1NISUZUCTgK LSNkZWZpbmUgU1dTQ0lfU0NJQ19FWElUX1BBUkFNRVRFUl9NQVNLCSgweGZmIDw8IDgpCi0jZGVm aW5lIFNXU0NJX1NDSUNfRVhJVF9TVEFUVVNfU0hJRlQJNQotI2RlZmluZSBTV1NDSV9TQ0lDX0VY SVRfU1RBVFVTX01BU0sJKDcgPDwgNSkKLSNkZWZpbmUgU1dTQ0lfU0NJQ19FWElUX1NUQVRVU19T VUNDRVNTCTEKLQotI2RlZmluZSBTV1NDSV9GVU5DVElPTl9DT0RFKG1haW4sIHN1YikgXAotCSgo bWFpbikgPDwgU1dTQ0lfU0NJQ19NQUlOX0ZVTkNUSU9OX1NISUZUIHwgXAotCSAoc3ViKSA8PCBT V1NDSV9TQ0lDX1NVQl9GVU5DVElPTl9TSElGVCkKLQotLyogU1dTQ0k6IEdldCBCSU9TIERhdGEg KEdCREEpICovCi0jZGVmaW5lIFNXU0NJX0dCREEJCQk0Ci0jZGVmaW5lIFNXU0NJX0dCREFfU1VQ UE9SVEVEX0NBTExTCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfR0JEQSwgMCkKLSNkZWZpbmUg U1dTQ0lfR0JEQV9SRVFVRVNURURfQ0FMTEJBQ0tTCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lf R0JEQSwgMSkKLSNkZWZpbmUgU1dTQ0lfR0JEQV9CT09UX0RJU1BMQVlfUFJFRglTV1NDSV9GVU5D VElPTl9DT0RFKFNXU0NJX0dCREEsIDQpCi0jZGVmaW5lIFNXU0NJX0dCREFfUEFORUxfREVUQUlM UwlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX0dCREEsIDUpCi0jZGVmaW5lIFNXU0NJX0dCREFf VFZfU1RBTkRBUkQJCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfR0JEQSwgNikKLSNkZWZpbmUg U1dTQ0lfR0JEQV9JTlRFUk5BTF9HUkFQSElDUwlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX0dC REEsIDcpCi0jZGVmaW5lIFNXU0NJX0dCREFfU1BSRUFEX1NQRUNUUlVNCVNXU0NJX0ZVTkNUSU9O X0NPREUoU1dTQ0lfR0JEQSwgMTApCi0KLS8qIFNXU0NJOiBTeXN0ZW0gQklPUyBDYWxsYmFja3Mg KFNCQ0IpICovCi0jZGVmaW5lIFNXU0NJX1NCQ0IJCQk2Ci0jZGVmaW5lIFNXU0NJX1NCQ0JfU1VQ UE9SVEVEX0NBTExCQUNLUwlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX1NCQ0IsIDApCi0jZGVm aW5lIFNXU0NJX1NCQ0JfSU5JVF9DT01QTEVUSU9OCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lf U0JDQiwgMSkKLSNkZWZpbmUgU1dTQ0lfU0JDQl9QUkVfSElSRVNfU0VUX01PREUJU1dTQ0lfRlVO Q1RJT05fQ09ERShTV1NDSV9TQkNCLCAzKQotI2RlZmluZSBTV1NDSV9TQkNCX1BPU1RfSElSRVNf U0VUX01PREUJU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1NDSV9TQkNCLCA0KQotI2RlZmluZSBTV1ND SV9TQkNCX0RJU1BMQVlfU1dJVENICVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfU0JDQiwgNSkK LSNkZWZpbmUgU1dTQ0lfU0JDQl9TRVRfVFZfRk9STUFUCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dT Q0lfU0JDQiwgNikKLSNkZWZpbmUgU1dTQ0lfU0JDQl9BREFQVEVSX1BPV0VSX1NUQVRFCVNXU0NJ X0ZVTkNUSU9OX0NPREUoU1dTQ0lfU0JDQiwgNykKLSNkZWZpbmUgU1dTQ0lfU0JDQl9ESVNQTEFZ X1BPV0VSX1NUQVRFCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfU0JDQiwgOCkKLSNkZWZpbmUg U1dTQ0lfU0JDQl9TRVRfQk9PVF9ESVNQTEFZCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfU0JD QiwgOSkKLSNkZWZpbmUgU1dTQ0lfU0JDQl9TRVRfUEFORUxfREVUQUlMUwlTV1NDSV9GVU5DVElP Tl9DT0RFKFNXU0NJX1NCQ0IsIDEwKQotI2RlZmluZSBTV1NDSV9TQkNCX1NFVF9JTlRFUk5BTF9H RlgJU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1NDSV9TQkNCLCAxMSkKLSNkZWZpbmUgU1dTQ0lfU0JD Ql9QT1NUX0hJUkVTX1RPX0RPU19GUwlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX1NCQ0IsIDE2 KQotI2RlZmluZSBTV1NDSV9TQkNCX1NVU1BFTkRfUkVTVU1FCVNXU0NJX0ZVTkNUSU9OX0NPREUo U1dTQ0lfU0JDQiwgMTcpCi0jZGVmaW5lIFNXU0NJX1NCQ0JfU0VUX1NQUkVBRF9TUEVDVFJVTQlT V1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX1NCQ0IsIDE4KQotI2RlZmluZSBTV1NDSV9TQkNCX1BP U1RfVkJFX1BNCQlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX1NCQ0IsIDE5KQotI2RlZmluZSBT V1NDSV9TQkNCX0VOQUJMRV9ESVNBQkxFX0FVRElPCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lf U0JDQiwgMjEpCi0KLSNkZWZpbmUgQUNQSV9PVEhFUl9PVVRQVVQgKDA8PDgpCi0jZGVmaW5lIEFD UElfVkdBX09VVFBVVCAoMTw8OCkKLSNkZWZpbmUgQUNQSV9UVl9PVVRQVVQgKDI8PDgpCi0jZGVm aW5lIEFDUElfRElHSVRBTF9PVVRQVVQgKDM8PDgpCi0jZGVmaW5lIEFDUElfTFZEU19PVVRQVVQg KDQ8PDgpCi0KLSNkZWZpbmUgTUFYX0RTTFAJMTUwMAorI2luY2x1ZGUgImludGVsX29wcmVnaW9u LmgiCiAKICNpZmRlZiBDT05GSUdfQUNQSQogc3RhdGljIGludCBzd3NjaShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1MzIgZnVuY3Rpb24sIHUzMiBwYXJtLCB1MzIgKnBhcm1fb3V0KQpAQCAtODky LDEzICs2ODksNTUgQEAgc3RhdGljIHZvaWQgc3dzY2lfc2V0dXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHN0YXRpYyBpbmxpbmUgdm9pZCBzd3NjaV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KSB7fQogI2VuZGlmICAvKiBDT05GSUdfQUNQSSAqLwogCitjb25zdCBzdHJ1Y3QgYmRiX2hl YWRlciAqdmFsaWRhdGVfdmJ0KGNvbnN0IHZvaWQgX19pb21lbSAqX3ZidCwKKwkJCQkJc2l6ZV90 IHNpemUsCisJCQkJCWNvbnN0IGNoYXIgKnNvdXJjZSkKK3sKKwkvKgorCSAqIFRoaXMgaXMgdGhl IG9uZSBwbGFjZSB3aGVyZSB3ZSBleHBsaWNpdGx5IGRpc2NhcmQgdGhlIGFkZHJlc3Mgc3BhY2UK KwkgKiAoX19pb21lbSkgb2YgdGhlIEJJT1MvVkJULiAoQW5kIHRoaXMgd2lsbCBjYXVzZSBhIHNw YXJzZSBjb21wbGFpbnQuKQorCSAqLworCWNvbnN0IHN0cnVjdCB2YnRfaGVhZGVyICp2YnQgPSAo Y29uc3Qgc3RydWN0IHZidF9oZWFkZXIgKilfdmJ0OworCWNvbnN0IHN0cnVjdCBiZGJfaGVhZGVy ICpiZGI7CisJc2l6ZV90IG9mZnNldDsKKworCWlmIChzaXplb2Yoc3RydWN0IHZidF9oZWFkZXIp ID4gc2l6ZSkgeworCQlEUk1fREVCVUdfRFJJVkVSKCJWQlQgaGVhZGVyIGluY29tcGxldGVcbiIp OworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAobWVtY21wKHZidC0+c2lnbmF0dXJlLCAiJFZC VCIsIDQpKSB7CisJCURSTV9ERUJVR19EUklWRVIoIlZCVCBpbnZhbGlkIHNpZ25hdHVyZVxuIik7 CisJCXJldHVybiBOVUxMOworCX0KKworCW9mZnNldCA9IHZidC0+YmRiX29mZnNldDsKKwlpZiAo b2Zmc2V0ICsgc2l6ZW9mKHN0cnVjdCBiZGJfaGVhZGVyKSA+IHNpemUpIHsKKwkJRFJNX0RFQlVH X0RSSVZFUigiQkRCIGhlYWRlciBpbmNvbXBsZXRlXG4iKTsKKwkJcmV0dXJuIE5VTEw7CisJfQor CisJYmRiID0gKGNvbnN0IHZvaWQgKilfdmJ0ICsgb2Zmc2V0OworCWlmIChvZmZzZXQgKyBiZGIt PmJkYl9zaXplID4gc2l6ZSkgeworCQlEUk1fREVCVUdfRFJJVkVSKCJCREIgaW5jb21wbGV0ZVxu Iik7CisJCXJldHVybiBOVUxMOworCX0KKworCURSTV9ERUJVR19LTVMoIlVzaW5nIFZCVCBmcm9t ICVzOiAlMjBzXG4iLAorCQkJc291cmNlLCB2YnQtPnNpZ25hdHVyZSk7CisJcmV0dXJuIGJkYjsK K30KKwogaW50IGludGVsX29wcmVnaW9uX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gKm9wcmVnaW9uID0gJmRldl9wcml2LT5vcHJlZ2lvbjsK IAl2b2lkIF9faW9tZW0gKmJhc2U7CisJdm9pZCBfX2lvbWVtICp2YnRfYmFzZTsKIAl1MzIgYXNs cywgbWJveGVzOwogCWNoYXIgYnVmW3NpemVvZihPUFJFR0lPTl9TSUdOQVRVUkUpXTsKKwljb25z dCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiID0gTlVMTDsKKwlzaXplX3Qgc2l6ZTsKIAlpbnQgZXJy ID0gMDsKIAogCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IG9wcmVnaW9uX2hlYWRlcikgIT0g MHgxMDApOwpAQCAtOTE3LDcgKzc1Niw3IEBAIGludCBpbnRlbF9vcHJlZ2lvbl9zZXR1cChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCUlOSVRfV09SSygmb3ByZWdpb24tPmFzbGVfd29yaywgYXNs ZV93b3JrKTsKICNlbmRpZgogCi0JYmFzZSA9IGFjcGlfb3NfaW9yZW1hcChhc2xzLCBPUFJFR0lP Tl9TSVpFKTsKKwliYXNlID0gYWNwaV9vc19pb3JlbWFwKGFzbHMsIE9QUkVHSU9OX1ZCVF9PRkZT RVQpOwogCWlmICghYmFzZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTkyOSw3ICs3NjgsMzMg QEAgaW50IGludGVsX29wcmVnaW9uX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWdv dG8gZXJyX291dDsKIAl9CiAJb3ByZWdpb24tPmhlYWRlciA9IGJhc2U7Ci0Jb3ByZWdpb24tPnZi dCA9IGJhc2UgKyBPUFJFR0lPTl9WQlRfT0ZGU0VUOworCS8qIEFzc2lnbmluZyB0aGUgYWxzZSB0 byB0aGUgbWFpbGJveCAzIG9mIHRoZSBvcHJlZ2lvbiAqLworCW9wcmVnaW9uLT5hc2xlID0gYmFz ZSArIE9QUkVHSU9OX0FTTEVfT0ZGU0VUOworCisJLyoKKwkgKiBOb24temVybyB2YWx1ZSBpbiBy dmRhIGZpZWxkIGlzIGFuIGluZGljYXRpb24gdG8gZHJpdmVyIHRoYXQgYQorCSAqIHZhbGlkIFJh dyBWQlQgaXMgc3RvcmVkIGluIHRoYXQgYWRkcmVzcyBhbmQgZHJpdmVyIHNob3VsZCBub3QgcmVm ZXIKKwkgKiB0byBtYWlsYm94NCBmb3IgZ2V0dGluZyBWQlQuCisJICovCisJaWYgKG9wcmVnaW9u LT5oZWFkZXItPm9wcmVnaW9uX3ZlciA+PSAyICYmIG9wcmVnaW9uLT5hc2xlLT5ydmRhKSB7CisJ CQlzaXplID0gb3ByZWdpb24tPmFzbGUtPnJ2ZHM7CisJCQl2YnRfYmFzZSA9IGFjcGlfb3NfaW9y ZW1hcChvcHJlZ2lvbi0+YXNsZS0+cnZkYSwKKwkJCQkJc2l6ZSk7CisJfSBlbHNlIHsKKwkJCXNp emUgPSBPUFJFR0lPTl9TSVpFIC0gT1BSRUdJT05fVkJUX09GRlNFVDsKKwkJCXZidF9iYXNlID0g YWNwaV9vc19pb3JlbWFwKGFzbHMgKyBPUFJFR0lPTl9WQlRfT0ZGU0VULAorCQkJCQlzaXplKTsK Kwl9CisKKwliZGIgPSB2YWxpZGF0ZV92YnQodmJ0X2Jhc2UsIHNpemUsICJPcFJlZ2lvbiIpOwor CisJaWYgKGJkYiA9PSBOVUxMKSB7CisJCWVyciA9IC1FSU5WQUw7CisJCWdvdG8gZXJyX3ZidDsK Kwl9CisKKwlkZXZfcHJpdi0+YmRiX3N0YXJ0ID0gYmRiOworCW9wcmVnaW9uLT52YnQgPSB2YnRf YmFzZTsKIAogCW9wcmVnaW9uLT5saWRfc3RhdGUgPSBiYXNlICsgQUNQSV9DTElEOwogCkBAIC05 NTMsNiArODE4LDggQEAgaW50IGludGVsX29wcmVnaW9uX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAKIAlyZXR1cm4gMDsKIAorZXJyX3ZidDoKKwlpb3VubWFwKHZidF9iYXNlKTsKIGVy cl9vdXQ6CiAJaW91bm1hcChiYXNlKTsKIAlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX29wcmVnaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNiNDVl YwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9u LmgKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwOCBJbnRlbCBDb3Jwb3Jh dGlvbiA8aG9uZy5saXVAaW50ZWwuY29tPgorICogQ29weXJpZ2h0IDIwMDggUmVkIEhhdCA8bWpn QHJlZGhhdC5jb20+CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCisgKiBhIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyAqICJTb2Z0d2Fy ZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcKKyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwKKyAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNlLCBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKyAqIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworICogdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCisgKiBuZXh0IHBhcmFn cmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbAorICog cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorICogRVhQUkVTUyBPUiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisg KiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAor ICogTk9OLUlORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIElOVEVMIEFORC9PUiBJVFMg U1VQUExJRVJTIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZU V0FSRS4KKyAqCisgKi8KKworI2RlZmluZSBQQ0lfQVNMRQkJMHhlNAorI2RlZmluZSBQQ0lfQVNM UwkJMHhmYworI2RlZmluZSBQQ0lfU1dTQ0kJCTB4ZTgKKyNkZWZpbmUgUENJX1NXU0NJX1NDSVNF TAkoMSA8PCAxNSkKKyNkZWZpbmUgUENJX1NXU0NJX0dTU0NJRQkoMSA8PCAwKQorCisjZGVmaW5l IE9QUkVHSU9OX0hFQURFUl9PRkZTRVQgMAorI2RlZmluZSBPUFJFR0lPTl9BQ1BJX09GRlNFVCAg IDB4MTAwCisjZGVmaW5lICAgQUNQSV9DTElEIDB4MDFhYyAvKiBjdXJyZW50IGxpZCBzdGF0ZSBp bmRpY2F0b3IgKi8KKyNkZWZpbmUgICBBQ1BJX0NEQ0sgMHgwMWIwIC8qIGN1cnJlbnQgZG9ja2lu ZyBzdGF0ZSBpbmRpY2F0b3IgKi8KKyNkZWZpbmUgT1BSRUdJT05fU1dTQ0lfT0ZGU0VUICAweDIw MAorI2RlZmluZSBPUFJFR0lPTl9BU0xFX09GRlNFVCAgIDB4MzAwCisjZGVmaW5lIE9QUkVHSU9O X1ZCVF9PRkZTRVQgICAgMHg0MDAKKworI2RlZmluZSBPUFJFR0lPTl9TSUdOQVRVUkUgIkludGVs R3JhcGhpY3NNZW0iCisjZGVmaW5lIE1CT1hfQUNQSSAgICAgICgxPDwwKQorI2RlZmluZSBNQk9Y X1NXU0NJICAgICAoMTw8MSkKKyNkZWZpbmUgTUJPWF9BU0xFICAgICAgKDE8PDIpCisjZGVmaW5l IE1CT1hfQVNMRV9FWFQgICgxPDw0KQorCitzdHJ1Y3Qgb3ByZWdpb25faGVhZGVyIHsKKwl1OCBz aWduYXR1cmVbMTZdOworCXUzMiBzaXplOworCXUzMiBvcHJlZ2lvbl92ZXI7CisJdTggYmlvc192 ZXJbMzJdOworCXU4IHZiaW9zX3ZlclsxNl07CisJdTggZHJpdmVyX3ZlclsxNl07CisJdTMyIG1i b3hlczsKKwl1MzIgZHJpdmVyX21vZGVsOworCXUzMiBwY29uOworCXU4IGR2ZXJbMzJdOworCXU4 IHJzdmRbMTI0XTsKK30gX19wYWNrZWQ7CisKKy8qIE9wUmVnaW9uIG1haWxib3ggIzE6IHB1Ymxp YyBBQ1BJIG1ldGhvZHMgKi8KK3N0cnVjdCBvcHJlZ2lvbl9hY3BpIHsKKwl1MzIgZHJkeTsgICAg ICAgLyogZHJpdmVyIHJlYWRpbmVzcyAqLworCXUzMiBjc3RzOyAgICAgICAvKiBub3RpZmljYXRp b24gc3RhdHVzICovCisJdTMyIGNldnQ7ICAgICAgIC8qIGN1cnJlbnQgZXZlbnQgKi8KKwl1OCBy c3ZkMVsyMF07CisJdTMyIGRpZGxbOF07ICAgIC8qIHN1cHBvcnRlZCBkaXNwbGF5IGRldmljZXMg SUQgbGlzdCAqLworCXUzMiBjcGRsWzhdOyAgICAvKiBjdXJyZW50bHkgcHJlc2VudGVkIGRpc3Bs YXkgbGlzdCAqLworCXUzMiBjYWRsWzhdOyAgICAvKiBjdXJyZW50bHkgYWN0aXZlIGRpc3BsYXkg bGlzdCAqLworCXUzMiBuYWRsWzhdOyAgICAvKiBuZXh0IGFjdGl2ZSBkZXZpY2VzIGxpc3QgKi8K Kwl1MzIgYXNscDsgICAgICAgLyogQVNMIHNsZWVwIHRpbWUtb3V0ICovCisJdTMyIHRpZHg7ICAg ICAgIC8qIHRvZ2dsZSB0YWJsZSBpbmRleCAqLworCXUzMiBjaHBkOyAgICAgICAvKiBjdXJyZW50 IGhvdHBsdWcgZW5hYmxlIGluZGljYXRvciAqLworCXUzMiBjbGlkOyAgICAgICAvKiBjdXJyZW50 IGxpZCBzdGF0ZSovCisJdTMyIGNkY2s7ICAgICAgIC8qIGN1cnJlbnQgZG9ja2luZyBzdGF0ZSAq LworCXUzMiBzeHN3OyAgICAgICAvKiBTeCBzdGF0ZSByZXN1bWUgKi8KKwl1MzIgZXZ0czsgICAg ICAgLyogQVNMIHN1cHBvcnRlZCBldmVudHMgKi8KKwl1MzIgY25vdDsgICAgICAgLyogY3VycmVu dCBPUyBub3RpZmljYXRpb24gKi8KKwl1MzIgbnJkeTsgICAgICAgLyogZHJpdmVyIHN0YXR1cyAq LworCXUzMiBkaWQyWzddOwkvKiBleHRlbmRlZCBzdXBwb3J0ZWQgZGlzcGxheSBkZXZpY2VzIElE IGxpc3QgKi8KKwl1MzIgY3BkMls3XTsJLyogZXh0ZW5kZWQgYXR0YWNoZWQgZGlzcGxheSBkZXZp Y2VzIGxpc3QgKi8KKwl1OCByc3ZkMls0XTsKK30gX19wYWNrZWQ7CisKKy8qIE9wUmVnaW9uIG1h aWxib3ggIzI6IFNXU0NJICovCitzdHJ1Y3Qgb3ByZWdpb25fc3dzY2kgeworCXUzMiBzY2ljOyAg ICAgICAvKiBTV1NDSSBjb21tYW5kfHN0YXR1c3xkYXRhICovCisJdTMyIHBhcm07ICAgICAgIC8q IGNvbW1hbmQgcGFyYW1ldGVycyAqLworCXUzMiBkc2xwOyAgICAgICAvKiBkcml2ZXIgc2xlZXAg dGltZS1vdXQgKi8KKwl1OCByc3ZkWzI0NF07Cit9IF9fcGFja2VkOworCisvKiBPcFJlZ2lvbiBt YWlsYm94ICMzOiBBU0xFICovCitzdHJ1Y3Qgb3ByZWdpb25fYXNsZSB7CisJdTMyIGFyZHk7ICAg ICAgIC8qIGRyaXZlciByZWFkaW5lc3MgKi8KKwl1MzIgYXNsYzsgICAgICAgLyogQVNMRSBpbnRl cnJ1cHQgY29tbWFuZCAqLworCXUzMiB0Y2hlOyAgICAgICAvKiB0ZWNobm9sb2d5IGVuYWJsZWQg aW5kaWNhdG9yICovCisJdTMyIGFsc2k7ICAgICAgIC8qIGN1cnJlbnQgQUxTIGlsbHVtaW5hbmNl IHJlYWRpbmcgKi8KKwl1MzIgYmNscDsgICAgICAgLyogYmFja2xpZ2h0IGJyaWdodG5lc3MgdG8g c2V0ICovCisJdTMyIHBmaXQ7ICAgICAgIC8qIHBhbmVsIGZpdHRpbmcgc3RhdGUgKi8KKwl1MzIg Y2JsdjsgICAgICAgLyogY3VycmVudCBicmlnaHRuZXNzIGxldmVsICovCisJdTE2IGJjbG1bMjBd OyAgIC8qIGJhY2tsaWdodCBsZXZlbCBkdXR5IGN5Y2xlIG1hcHBpbmcgdGFibGUgKi8KKwl1MzIg Y3BmbTsgICAgICAgLyogY3VycmVudCBwYW5lbCBmaXR0aW5nIG1vZGUgKi8KKwl1MzIgZXBmbTsg ICAgICAgLyogZW5hYmxlZCBwYW5lbCBmaXR0aW5nIG1vZGVzICovCisJdTggcGx1dFs3NF07ICAg IC8qIHBhbmVsIExVVCBhbmQgaWRlbnRpZmllciAqLworCXUzMiBwZm1iOyAgICAgICAvKiBQV00g ZnJlcSBhbmQgbWluIGJyaWdodG5lc3MgKi8KKwl1MzIgY2RkdjsgICAgICAgLyogY29sb3IgY29y cmVjdGlvbiBkZWZhdWx0IHZhbHVlcyAqLworCXUzMiBwY2Z0OyAgICAgICAvKiBwb3dlciBjb25z ZXJ2YXRpb24gZmVhdHVyZXMgKi8KKwl1MzIgc3JvdDsgICAgICAgLyogc3VwcG9ydGVkIHJvdGF0 aW9uIGFuZ2xlcyAqLworCXUzMiBpdWVyOyAgICAgICAvKiBJVUVSIGV2ZW50cyAqLworCXU2NCBm ZHNzOworCXUzMiBmZHNwOworCXUzMiBzdGF0OworCXU2NCBydmRhOwkvKiBQaHlzaWNhbCBhZGRy ZXNzIG9mIHJhdyB2YnQgZGF0YSAqLworCXUzMiBydmRzOwkvKiBTaXplIG9mIHJhdyB2YnQgZGF0 YSAqLworCXU4IHJzdmRbNThdOworfSBfX3BhY2tlZDsKKworLyogRHJpdmVyIHJlYWRpbmVzcyBp bmRpY2F0b3IgKi8KKyNkZWZpbmUgQVNMRV9BUkRZX1JFQURZCQkoMSA8PCAwKQorI2RlZmluZSBB U0xFX0FSRFlfTk9UX1JFQURZCSgwIDw8IDApCisKKy8qIEFTTEUgSW50ZXJydXB0IENvbW1hbmQg KEFTTEMpIGJpdHMgKi8KKyNkZWZpbmUgQVNMQ19TRVRfQUxTX0lMTFVNCQkoMSA8PCAwKQorI2Rl ZmluZSBBU0xDX1NFVF9CQUNLTElHSFQJCSgxIDw8IDEpCisjZGVmaW5lIEFTTENfU0VUX1BGSVQJ CQkoMSA8PCAyKQorI2RlZmluZSBBU0xDX1NFVF9QV01fRlJFUQkJKDEgPDwgMykKKyNkZWZpbmUg QVNMQ19TVVBQT1JURURfUk9UQVRJT05fQU5HTEVTCSgxIDw8IDQpCisjZGVmaW5lIEFTTENfQlVU VE9OX0FSUkFZCQkoMSA8PCA1KQorI2RlZmluZSBBU0xDX0NPTlZFUlRJQkxFX0lORElDQVRPUgko MSA8PCA2KQorI2RlZmluZSBBU0xDX0RPQ0tJTkdfSU5ESUNBVE9SCQkoMSA8PCA3KQorI2RlZmlu ZSBBU0xDX0lTQ1RfU1RBVEVfQ0hBTkdFCQkoMSA8PCA4KQorI2RlZmluZSBBU0xDX1JFUV9NU0sJ CQkweDFmZgorLyogcmVzcG9uc2UgYml0cyAqLworI2RlZmluZSBBU0xDX0FMU19JTExVTV9GQUlM RUQJCSgxIDw8IDEwKQorI2RlZmluZSBBU0xDX0JBQ0tMSUdIVF9GQUlMRUQJCSgxIDw8IDEyKQor I2RlZmluZSBBU0xDX1BGSVRfRkFJTEVECQkoMSA8PCAxNCkKKyNkZWZpbmUgQVNMQ19QV01fRlJF UV9GQUlMRUQJCSgxIDw8IDE2KQorI2RlZmluZSBBU0xDX1JPVEFUSU9OX0FOR0xFU19GQUlMRUQJ KDEgPDwgMTgpCisjZGVmaW5lIEFTTENfQlVUVE9OX0FSUkFZX0ZBSUxFRAkoMSA8PCAyMCkKKyNk ZWZpbmUgQVNMQ19DT05WRVJUSUJMRV9GQUlMRUQJCSgxIDw8IDIyKQorI2RlZmluZSBBU0xDX0RP Q0tJTkdfRkFJTEVECQkoMSA8PCAyNCkKKyNkZWZpbmUgQVNMQ19JU0NUX1NUQVRFX0ZBSUxFRAkJ KDEgPDwgMjYpCisKKy8qIFRlY2hub2xvZ3kgZW5hYmxlZCBpbmRpY2F0b3IgKi8KKyNkZWZpbmUg QVNMRV9UQ0hFX0FMU19FTgkoMSA8PCAwKQorI2RlZmluZSBBU0xFX1RDSEVfQkxDX0VOCSgxIDw8 IDEpCisjZGVmaW5lIEFTTEVfVENIRV9QRklUX0VOCSgxIDw8IDIpCisjZGVmaW5lIEFTTEVfVENI RV9QRk1CX0VOCSgxIDw8IDMpCisKKy8qIEFTTEUgYmFja2xpZ2h0IGJyaWdodG5lc3MgdG8gc2V0 ICovCisjZGVmaW5lIEFTTEVfQkNMUF9WQUxJRCAgICAgICAgICAgICAgICAoMTw8MzEpCisjZGVm aW5lIEFTTEVfQkNMUF9NU0sgICAgICAgICAgKH4oMTw8MzEpKQorCisvKiBBU0xFIHBhbmVsIGZp dHRpbmcgcmVxdWVzdCAqLworI2RlZmluZSBBU0xFX1BGSVRfVkFMSUQgICAgICAgICAoMTw8MzEp CisjZGVmaW5lIEFTTEVfUEZJVF9DRU5URVIgKDE8PDApCisjZGVmaW5lIEFTTEVfUEZJVF9TVFJF VENIX1RFWFQgKDE8PDEpCisjZGVmaW5lIEFTTEVfUEZJVF9TVFJFVENIX0dGWCAoMTw8MikKKwor LyogUFdNIGZyZXF1ZW5jeSBhbmQgbWluaW11bSBicmlnaHRuZXNzICovCisjZGVmaW5lIEFTTEVf UEZNQl9CUklHSFRORVNTX01BU0sgKDB4ZmYpCisjZGVmaW5lIEFTTEVfUEZNQl9CUklHSFRORVNT X1ZBTElEICgxPDw4KQorI2RlZmluZSBBU0xFX1BGTUJfUFdNX01BU0sgKDB4N2ZmZmZlMDApCisj ZGVmaW5lIEFTTEVfUEZNQl9QV01fVkFMSUQgKDE8PDMxKQorCisjZGVmaW5lIEFTTEVfQ0JMVl9W QUxJRCAgICAgICAgICgxPDwzMSkKKworLyogSVVFUiAqLworI2RlZmluZSBBU0xFX0lVRVJfRE9D S0lORwkJKDEgPDwgNykKKyNkZWZpbmUgQVNMRV9JVUVSX0NPTlZFUlRJQkxFCQkoMSA8PCA2KQor I2RlZmluZSBBU0xFX0lVRVJfUk9UQVRJT05fTE9DS19CVE4JKDEgPDwgNCkKKyNkZWZpbmUgQVNM RV9JVUVSX1ZPTFVNRV9ET1dOX0JUTgkoMSA8PCAzKQorI2RlZmluZSBBU0xFX0lVRVJfVk9MVU1F X1VQX0JUTgkJKDEgPDwgMikKKyNkZWZpbmUgQVNMRV9JVUVSX1dJTkRPV1NfQlROCQkoMSA8PCAx KQorI2RlZmluZSBBU0xFX0lVRVJfUE9XRVJfQlROCQkoMSA8PCAwKQorCisvKiBTb2Z0d2FyZSBT eXN0ZW0gQ29udHJvbCBJbnRlcnJ1cHQgKFNXU0NJKSAqLworI2RlZmluZSBTV1NDSV9TQ0lDX0lO RElDQVRPUgkJKDEgPDwgMCkKKyNkZWZpbmUgU1dTQ0lfU0NJQ19NQUlOX0ZVTkNUSU9OX1NISUZU CTEKKyNkZWZpbmUgU1dTQ0lfU0NJQ19NQUlOX0ZVTkNUSU9OX01BU0sJKDB4ZiA8PCAxKQorI2Rl ZmluZSBTV1NDSV9TQ0lDX1NVQl9GVU5DVElPTl9TSElGVAk4CisjZGVmaW5lIFNXU0NJX1NDSUNf U1VCX0ZVTkNUSU9OX01BU0sJKDB4ZmYgPDwgOCkKKyNkZWZpbmUgU1dTQ0lfU0NJQ19FWElUX1BB UkFNRVRFUl9TSElGVAk4CisjZGVmaW5lIFNXU0NJX1NDSUNfRVhJVF9QQVJBTUVURVJfTUFTSwko MHhmZiA8PCA4KQorI2RlZmluZSBTV1NDSV9TQ0lDX0VYSVRfU1RBVFVTX1NISUZUCTUKKyNkZWZp bmUgU1dTQ0lfU0NJQ19FWElUX1NUQVRVU19NQVNLCSg3IDw8IDUpCisjZGVmaW5lIFNXU0NJX1ND SUNfRVhJVF9TVEFUVVNfU1VDQ0VTUwkxCisKKyNkZWZpbmUgU1dTQ0lfRlVOQ1RJT05fQ09ERSht YWluLCBzdWIpIFwKKwkoKG1haW4pIDw8IFNXU0NJX1NDSUNfTUFJTl9GVU5DVElPTl9TSElGVCB8 IFwKKwkgKHN1YikgPDwgU1dTQ0lfU0NJQ19TVUJfRlVOQ1RJT05fU0hJRlQpCisKKy8qIFNXU0NJ OiBHZXQgQklPUyBEYXRhIChHQkRBKSAqLworI2RlZmluZSBTV1NDSV9HQkRBCQkJNAorI2RlZmlu ZSBTV1NDSV9HQkRBX1NVUFBPUlRFRF9DQUxMUwlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX0dC REEsIDApCisjZGVmaW5lIFNXU0NJX0dCREFfUkVRVUVTVEVEX0NBTExCQUNLUwlTV1NDSV9GVU5D VElPTl9DT0RFKFNXU0NJX0dCREEsIDEpCisjZGVmaW5lIFNXU0NJX0dCREFfQk9PVF9ESVNQTEFZ X1BSRUYJU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1NDSV9HQkRBLCA0KQorI2RlZmluZSBTV1NDSV9H QkRBX1BBTkVMX0RFVEFJTFMJU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1NDSV9HQkRBLCA1KQorI2Rl ZmluZSBTV1NDSV9HQkRBX1RWX1NUQU5EQVJECQlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX0dC REEsIDYpCisjZGVmaW5lIFNXU0NJX0dCREFfSU5URVJOQUxfR1JBUEhJQ1MJU1dTQ0lfRlVOQ1RJ T05fQ09ERShTV1NDSV9HQkRBLCA3KQorI2RlZmluZSBTV1NDSV9HQkRBX1NQUkVBRF9TUEVDVFJV TQlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX0dCREEsIDEwKQorCisvKiBTV1NDSTogU3lzdGVt IEJJT1MgQ2FsbGJhY2tzIChTQkNCKSAqLworI2RlZmluZSBTV1NDSV9TQkNCCQkJNgorI2RlZmlu ZSBTV1NDSV9TQkNCX1NVUFBPUlRFRF9DQUxMQkFDS1MJU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1ND SV9TQkNCLCAwKQorI2RlZmluZSBTV1NDSV9TQkNCX0lOSVRfQ09NUExFVElPTglTV1NDSV9GVU5D VElPTl9DT0RFKFNXU0NJX1NCQ0IsIDEpCisjZGVmaW5lIFNXU0NJX1NCQ0JfUFJFX0hJUkVTX1NF VF9NT0RFCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfU0JDQiwgMykKKyNkZWZpbmUgU1dTQ0lf U0JDQl9QT1NUX0hJUkVTX1NFVF9NT0RFCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfU0JDQiwg NCkKKyNkZWZpbmUgU1dTQ0lfU0JDQl9ESVNQTEFZX1NXSVRDSAlTV1NDSV9GVU5DVElPTl9DT0RF KFNXU0NJX1NCQ0IsIDUpCisjZGVmaW5lIFNXU0NJX1NCQ0JfU0VUX1RWX0ZPUk1BVAlTV1NDSV9G VU5DVElPTl9DT0RFKFNXU0NJX1NCQ0IsIDYpCisjZGVmaW5lIFNXU0NJX1NCQ0JfQURBUFRFUl9Q T1dFUl9TVEFURQlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX1NCQ0IsIDcpCisjZGVmaW5lIFNX U0NJX1NCQ0JfRElTUExBWV9QT1dFUl9TVEFURQlTV1NDSV9GVU5DVElPTl9DT0RFKFNXU0NJX1NC Q0IsIDgpCisjZGVmaW5lIFNXU0NJX1NCQ0JfU0VUX0JPT1RfRElTUExBWQlTV1NDSV9GVU5DVElP Tl9DT0RFKFNXU0NJX1NCQ0IsIDkpCisjZGVmaW5lIFNXU0NJX1NCQ0JfU0VUX1BBTkVMX0RFVEFJ TFMJU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1NDSV9TQkNCLCAxMCkKKyNkZWZpbmUgU1dTQ0lfU0JD Ql9TRVRfSU5URVJOQUxfR0ZYCVNXU0NJX0ZVTkNUSU9OX0NPREUoU1dTQ0lfU0JDQiwgMTEpCisj ZGVmaW5lIFNXU0NJX1NCQ0JfUE9TVF9ISVJFU19UT19ET1NfRlMJU1dTQ0lfRlVOQ1RJT05fQ09E RShTV1NDSV9TQkNCLCAxNikKKyNkZWZpbmUgU1dTQ0lfU0JDQl9TVVNQRU5EX1JFU1VNRQlTV1ND SV9GVU5DVElPTl9DT0RFKFNXU0NJX1NCQ0IsIDE3KQorI2RlZmluZSBTV1NDSV9TQkNCX1NFVF9T UFJFQURfU1BFQ1RSVU0JU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1NDSV9TQkNCLCAxOCkKKyNkZWZp bmUgU1dTQ0lfU0JDQl9QT1NUX1ZCRV9QTQkJU1dTQ0lfRlVOQ1RJT05fQ09ERShTV1NDSV9TQkNC LCAxOSkKKyNkZWZpbmUgU1dTQ0lfU0JDQl9FTkFCTEVfRElTQUJMRV9BVURJTwlTV1NDSV9GVU5D VElPTl9DT0RFKFNXU0NJX1NCQ0IsIDIxKQorCisjZGVmaW5lIEFDUElfT1RIRVJfT1VUUFVUICgw PDw4KQorI2RlZmluZSBBQ1BJX1ZHQV9PVVRQVVQgKDE8PDgpCisjZGVmaW5lIEFDUElfVFZfT1VU UFVUICgyPDw4KQorI2RlZmluZSBBQ1BJX0RJR0lUQUxfT1VUUFVUICgzPDw4KQorI2RlZmluZSBB Q1BJX0xWRFNfT1VUUFVUICg0PDw4KQorCisjZGVmaW5lIE1BWF9EU0xQCTE1MDAKLS0gCjEuNy45 LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==