From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 02/17 v5] xen/arm: vpl011: Rename vgic_reg* functions definitions and calls to vreg_reg* Date: Thu, 22 Jun 2017 13:08:37 +0530 Message-ID: <1498117132-27139-3-git-send-email-bhupinder.thakur@linaro.org> References: <1498117132-27139-1-git-send-email-bhupinder.thakur@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dNwho-0005MY-3G for xen-devel@lists.xenproject.org; Thu, 22 Jun 2017 07:39:08 +0000 Received: by mail-pf0-f182.google.com with SMTP id e7so5149663pfk.0 for ; Thu, 22 Jun 2017 00:39:05 -0700 (PDT) In-Reply-To: <1498117132-27139-1-git-send-email-bhupinder.thakur@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andre Przywara , Julien Grall , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW5hbWVzIHRoZSB2Z2ljX3JlZyogYWNjZXNzIGZ1bmN0aW9ucyBkZWZpbmVk IGluIHZyZWcuaCB0byB2cmVnX3JlZyoKYW5kIHJlcGxhY2VzIGFsbCBjYWxscyB0byB2Z2ljX3Jl ZyogZnVuY3Rpb25zIGluIHZnaWMvaXRzIGVtdWxhdGlvbiBjb2RlIHRvIHZyZWdfcmVnKi4KCnZy ZWdfcmVnKiBhcmUgZ2VuZXJpYyBmdW5jdGlvbnMsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIG9wZXJh dGUgb24gMzIvNjQtYml0IHJlZ2lzdGVycy4KClNCU0EgVUFSVCBlbXVsYXRpb24gY29kZSB3aWxs IGFsc28gdXNlIHZyZWdfcmVnKiBhY2Nlc3MgZnVuY3Rpb25zIGZvcgphY2Nlc3NpbmcgZW11bGF0 ZWQgcGwwMTEgcmVnaXN0ZXJzLgoKU2lnbmVkLW9mZi1ieTogQmh1cGluZGVyIFRoYWt1ciA8Ymh1 cGluZGVyLnRoYWt1ckBsaW5hcm8ub3JnPgotLS0KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0 YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5j b20+CkNDOiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6eXdhcmFAYXJtLmNvbT4KCkNoYW5nZXMg c2luY2UgdjQ6Ci0gUmVuYW1lZCB0aGUgdmdpY19yZWcqIGNhbGxzIGluIElUUyBjb2RlIHRvIHZy ZWdfcmVnKi4KCkNoYW5nZXMgc2luY2UgdjM6Ci0gUmVuYW1lZCBERUZJTkVfVlJFR19SRUdfSEVM UEVSUyB0byBWUkVHX1JFR19IRUxQRVJTLgoKIHhlbi9hcmNoL2FybS92Z2ljLXYyLmMgICAgIHwg MjggKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL2FybS92Z2ljLXYzLWl0cy5j IHwgMjggKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL2FybS92Z2ljLXYzLmMg ICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog eGVuL2luY2x1ZGUvYXNtLWFybS92cmVnLmggfCA0NiArKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgNzYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjIuYyBiL3hlbi9h cmNoL2FybS92Z2ljLXYyLmMKaW5kZXggZWI1ZjM1NC4uY2Y0YWI4OSAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL3ZnaWMtdjIuYworKysgYi94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCkBAIC0xNzks NyArMTc5LDcgQEAgc3RhdGljIGludCB2Z2ljX3YyX2Rpc3RyX21taW9fcmVhZChzdHJ1Y3QgdmNw dSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCiAgICAgY2FzZSBWUkVHMzIoR0lDRF9DVExSKToKICAg ICAgICAgaWYgKCBkYWJ0LnNpemUgIT0gREFCVF9XT1JEICkgZ290byBiYWRfd2lkdGg7CiAgICAg ICAgIHZnaWNfbG9jayh2KTsKLSAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3Qodi0+ZG9t YWluLT5hcmNoLnZnaWMuY3RsciwgaW5mbyk7CisgICAgICAgICpyID0gdnJlZ19yZWczMl9leHRy YWN0KHYtPmRvbWFpbi0+YXJjaC52Z2ljLmN0bHIsIGluZm8pOwogICAgICAgICB2Z2ljX3VubG9j ayh2KTsKICAgICAgICAgcmV0dXJuIDE7CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCBzdGF0aWMgaW50 IHZnaWNfdjJfZGlzdHJfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5m bywKICAgICAgICAgICAgIHwgRElWX1JPVU5EX1VQKHYtPmRvbWFpbi0+YXJjaC52Z2ljLm5yX3Nw aXMsIDMyKTsKICAgICAgICAgdmdpY191bmxvY2sodik7CiAKLSAgICAgICAgKnIgPSB2Z2ljX3Jl ZzMyX2V4dHJhY3QodHlwZXIsIGluZm8pOworICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0cmFj dCh0eXBlciwgaW5mbyk7CiAKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQpAQCAtMjA1LDcgKzIw NSw3IEBAIHN0YXRpYyBpbnQgdmdpY192Ml9kaXN0cl9tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYs IG1taW9faW5mb190ICppbmZvLAogICAgICAgICAgKiBYWFggRG8gd2UgbmVlZCBhIEpFUDEwNiBt YW51ZmFjdHVyZXIgSUQ/CiAgICAgICAgICAqIEp1c3QgdXNlIHRoZSBwaHlzaWNhbCBoL3cgdmFs dWUgZm9yIG5vdwogICAgICAgICAgKi8KLSAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3Qo MHgwMDAwMDQzYiwgaW5mbyk7CisgICAgICAgICpyID0gdnJlZ19yZWczMl9leHRyYWN0KDB4MDAw MDA0M2IsIGluZm8pOwogICAgICAgICByZXR1cm4gMTsKIAogICAgIGNhc2UgVlJBTkdFMzIoMHgw MEMsIDB4MDFDKToKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgaW50IHZnaWNfdjJfZGlzdHJf bW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgcmFu ayA9IHZnaWNfcmFua19vZmZzZXQodiwgMSwgZ2ljZF9yZWcgLSBHSUNEX0lTRU5BQkxFUiwgREFC VF9XT1JEKTsKICAgICAgICAgaWYgKCByYW5rID09IE5VTEwpIGdvdG8gcmVhZF9hc196ZXJvOwog ICAgICAgICB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7Ci0gICAgICAgICpyID0gdmdp Y19yZWczMl9leHRyYWN0KHJhbmstPmllbmFibGUsIGluZm8pOworICAgICAgICAqciA9IHZyZWdf cmVnMzJfZXh0cmFjdChyYW5rLT5pZW5hYmxlLCBpbmZvKTsKICAgICAgICAgdmdpY191bmxvY2tf cmFuayh2LCByYW5rLCBmbGFncyk7CiAgICAgICAgIHJldHVybiAxOwogCkBAIC0yMzUsNyArMjM1 LDcgQEAgc3RhdGljIGludCB2Z2ljX3YyX2Rpc3RyX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwg bW1pb19pbmZvX3QgKmluZm8sCiAgICAgICAgIHJhbmsgPSB2Z2ljX3Jhbmtfb2Zmc2V0KHYsIDEs IGdpY2RfcmVnIC0gR0lDRF9JQ0VOQUJMRVIsIERBQlRfV09SRCk7CiAgICAgICAgIGlmICggcmFu ayA9PSBOVUxMKSBnb3RvIHJlYWRfYXNfemVybzsKICAgICAgICAgdmdpY19sb2NrX3Jhbmsodiwg cmFuaywgZmxhZ3MpOwotICAgICAgICAqciA9IHZnaWNfcmVnMzJfZXh0cmFjdChyYW5rLT5pZW5h YmxlLCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QocmFuay0+aWVuYWJs ZSwgaW5mbyk7CiAgICAgICAgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOwogICAg ICAgICByZXR1cm4gMTsKIApAQCAtMjYyLDcgKzI2Miw3IEBAIHN0YXRpYyBpbnQgdmdpY192Ml9k aXN0cl9tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLAogICAgICAg ICB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7CiAgICAgICAgIGlwcmlvcml0eXIgPSBB Q0NFU1NfT05DRShyYW5rLT5pcHJpb3JpdHlyW3JhbmtfaW5kZXhdKTsKICAgICAgICAgdmdpY191 bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7Ci0gICAgICAgICpyID0gdmdpY19yZWczMl9leHRy YWN0KGlwcmlvcml0eXIsIGluZm8pOworICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0cmFjdChp cHJpb3JpdHlyLCBpbmZvKTsKIAogICAgICAgICByZXR1cm4gMTsKICAgICB9CkBAIC0yODAsNyAr MjgwLDcgQEAgc3RhdGljIGludCB2Z2ljX3YyX2Rpc3RyX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAq diwgbW1pb19pbmZvX3QgKmluZm8sCiAgICAgICAgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZs YWdzKTsKICAgICAgICAgaXRhcmdldHNyID0gdmdpY19mZXRjaF9pdGFyZ2V0c3IocmFuaywgZ2lj ZF9yZWcgLSBHSUNEX0lUQVJHRVRTUik7CiAgICAgICAgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFu aywgZmxhZ3MpOwotICAgICAgICAqciA9IHZnaWNfcmVnMzJfZXh0cmFjdChpdGFyZ2V0c3IsIGlu Zm8pOworICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0cmFjdChpdGFyZ2V0c3IsIGluZm8pOwog CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KQEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgaW50 IHZnaWNfdjJfZGlzdHJfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5m bywKICAgICAgICAgaWNmZ3IgPSByYW5rLT5pY2ZnW1JFR19SQU5LX0lOREVYKDIsIGdpY2RfcmVn IC0gR0lDRF9JQ0ZHUiwgREFCVF9XT1JEKV07CiAgICAgICAgIHZnaWNfdW5sb2NrX3Jhbmsodiwg cmFuaywgZmxhZ3MpOwogCi0gICAgICAgICpyID0gdmdpY19yZWczMl9leHRyYWN0KGljZmdyLCBp bmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QoaWNmZ3IsIGluZm8pOwogCiAg ICAgICAgIHJldHVybiAxOwogICAgIH0KQEAgLTQyNCw3ICs0MjQsNyBAQCBzdGF0aWMgaW50IHZn aWNfdjJfZGlzdHJfbW1pb193cml0ZShzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8s CiAgICAgICAgIGlmICggZGFidC5zaXplICE9IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOwog ICAgICAgICAvKiBJZ25vcmUgYWxsIGJ1dCB0aGUgZW5hYmxlIGJpdCAqLwogICAgICAgICB2Z2lj X2xvY2sodik7Ci0gICAgICAgIHZnaWNfcmVnMzJfdXBkYXRlKCZ2LT5kb21haW4tPmFyY2gudmdp Yy5jdGxyLCByLCBpbmZvKTsKKyAgICAgICAgdnJlZ19yZWczMl91cGRhdGUoJnYtPmRvbWFpbi0+ YXJjaC52Z2ljLmN0bHIsIHIsIGluZm8pOwogICAgICAgICB2LT5kb21haW4tPmFyY2gudmdpYy5j dGxyICY9IEdJQ0RfQ1RMX0VOQUJMRTsKICAgICAgICAgdmdpY191bmxvY2sodik7CiAKQEAgLTQ1 NCw3ICs0NTQsNyBAQCBzdGF0aWMgaW50IHZnaWNfdjJfZGlzdHJfbW1pb193cml0ZShzdHJ1Y3Qg dmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCiAgICAgICAgIGlmICggcmFuayA9PSBOVUxMKSBn b3RvIHdyaXRlX2lnbm9yZTsKICAgICAgICAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3Mp OwogICAgICAgICB0ciA9IHJhbmstPmllbmFibGU7Ci0gICAgICAgIHZnaWNfcmVnMzJfc2V0Yml0 cygmcmFuay0+aWVuYWJsZSwgciwgaW5mbyk7CisgICAgICAgIHZyZWdfcmVnMzJfc2V0Yml0cygm cmFuay0+aWVuYWJsZSwgciwgaW5mbyk7CiAgICAgICAgIHZnaWNfZW5hYmxlX2lycXModiwgKHJh bmstPmllbmFibGUpICYgKH50ciksIHJhbmstPmluZGV4KTsKICAgICAgICAgdmdpY191bmxvY2tf cmFuayh2LCByYW5rLCBmbGFncyk7CiAgICAgICAgIHJldHVybiAxOwpAQCAtNDY1LDcgKzQ2NSw3 IEBAIHN0YXRpYyBpbnQgdmdpY192Ml9kaXN0cl9tbWlvX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCBt bWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgaWYgKCByYW5rID09IE5VTEwpIGdvdG8gd3JpdGVf aWdub3JlOwogICAgICAgICB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7CiAgICAgICAg IHRyID0gcmFuay0+aWVuYWJsZTsKLSAgICAgICAgdmdpY19yZWczMl9jbGVhcmJpdHMoJnJhbmst PmllbmFibGUsIHIsIGluZm8pOworICAgICAgICB2cmVnX3JlZzMyX2NsZWFyYml0cygmcmFuay0+ aWVuYWJsZSwgciwgaW5mbyk7CiAgICAgICAgIHZnaWNfZGlzYWJsZV9pcnFzKHYsICh+cmFuay0+ aWVuYWJsZSkgJiB0ciwgcmFuay0+aW5kZXgpOwogICAgICAgICB2Z2ljX3VubG9ja19yYW5rKHYs IHJhbmssIGZsYWdzKTsKICAgICAgICAgcmV0dXJuIDE7CkBAIC01MDksNyArNTA5LDcgQEAgc3Rh dGljIGludCB2Z2ljX3YyX2Rpc3RyX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYsIG1taW9faW5m b190ICppbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2ljZF9yZWcgLSBHSUNEX0lQUklPUklUWVIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQUJUX1dPUkQpXTsKICAgICAgICAg cHJpb3JpdHkgPSBBQ0NFU1NfT05DRSgqaXByaW9yaXR5cik7Ci0gICAgICAgIHZnaWNfcmVnMzJf dXBkYXRlKCZwcmlvcml0eSwgciwgaW5mbyk7CisgICAgICAgIHZyZWdfcmVnMzJfdXBkYXRlKCZw cmlvcml0eSwgciwgaW5mbyk7CiAgICAgICAgIEFDQ0VTU19PTkNFKCppcHJpb3JpdHlyKSA9IHBy aW9yaXR5OwogCiAgICAgICAgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOwpAQCAt NTMyLDcgKzUzMiw3IEBAIHN0YXRpYyBpbnQgdmdpY192Ml9kaXN0cl9tbWlvX3dyaXRlKHN0cnVj dCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgaWYgKCByYW5rID09IE5VTEwp IGdvdG8gd3JpdGVfaWdub3JlOwogICAgICAgICB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFn cyk7CiAgICAgICAgIGl0YXJnZXRzciA9IHZnaWNfZmV0Y2hfaXRhcmdldHNyKHJhbmssIGdpY2Rf cmVnIC0gR0lDRF9JVEFSR0VUU1IpOwotICAgICAgICB2Z2ljX3JlZzMyX3VwZGF0ZSgmaXRhcmdl dHNyLCByLCBpbmZvKTsKKyAgICAgICAgdnJlZ19yZWczMl91cGRhdGUoJml0YXJnZXRzciwgciwg aW5mbyk7CiAgICAgICAgIHZnaWNfc3RvcmVfaXRhcmdldHNyKHYtPmRvbWFpbiwgcmFuaywgZ2lj ZF9yZWcgLSBHSUNEX0lUQVJHRVRTUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRh cmdldHNyKTsKICAgICAgICAgdmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7CkBAIC01 NTQsNyArNTU0LDcgQEAgc3RhdGljIGludCB2Z2ljX3YyX2Rpc3RyX21taW9fd3JpdGUoc3RydWN0 IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLAogICAgICAgICByYW5rID0gdmdpY19yYW5rX29m ZnNldCh2LCAyLCBnaWNkX3JlZyAtIEdJQ0RfSUNGR1IsIERBQlRfV09SRCk7CiAgICAgICAgIGlm ICggcmFuayA9PSBOVUxMKSBnb3RvIHdyaXRlX2lnbm9yZTsKICAgICAgICAgdmdpY19sb2NrX3Jh bmsodiwgcmFuaywgZmxhZ3MpOwotICAgICAgICB2Z2ljX3JlZzMyX3VwZGF0ZSgmcmFuay0+aWNm Z1tSRUdfUkFOS19JTkRFWCgyLCBnaWNkX3JlZyAtIEdJQ0RfSUNGR1IsCisgICAgICAgIHZyZWdf cmVnMzJfdXBkYXRlKCZyYW5rLT5pY2ZnW1JFR19SQU5LX0lOREVYKDIsIGdpY2RfcmVnIC0gR0lD RF9JQ0ZHUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgREFCVF9XT1JEKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHIsIGluZm8pOwog ICAgICAgICB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKaW5k ZXggYmZjNWFjYy4uOWVmNzkyZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRz LmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKQEAgLTEwMTUsMTMgKzEwMTUsMTMg QEAgc3RhdGljIGludCB2Z2ljX3YzX2l0c19tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9f aW5mb190ICppbmZvLAogICAgICAgICBpZiAoIGhhdmVfY21kX2xvY2sgKQogICAgICAgICAgICAg c3Bpbl91bmxvY2soJml0cy0+dmNtZF9sb2NrKTsKIAotICAgICAgICAqciA9IHZnaWNfcmVnMzJf ZXh0cmFjdChyZWcsIGluZm8pOworICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0cmFjdChyZWcs IGluZm8pOwogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBjYXNlIFZSRUczMihHSVRTX0lJ RFIpOgogICAgICAgICBpZiAoIGluZm8tPmRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJh ZF93aWR0aDsKLSAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3QoR0lUU19JSURSX1ZBTFVF LCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QoR0lUU19JSURSX1ZBTFVF LCBpbmZvKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFZSRUc2NChHSVRTX1RZUEVSKToK QEAgLTEwMzEsNyArMTAzMSw3IEBAIHN0YXRpYyBpbnQgdmdpY192M19pdHNfbW1pb19yZWFkKHN0 cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgcmVnIHw9IChzaXplb2Yo c3RydWN0IHZpdHNfaXR0ZSkgLSAxKSA8PCBHSVRTX1RZUEVSX0lUVF9TSVpFX1NISUZUOwogICAg ICAgICByZWcgfD0gKGl0cy0+ZXZpZF9iaXRzIC0gMSkgPDwgR0lUU19UWVBFUl9JREJJVFNfU0hJ RlQ7CiAgICAgICAgIHJlZyB8PSAoaXRzLT5kZXZpZF9iaXRzIC0gMSkgPDwgR0lUU19UWVBFUl9E RVZJRFNfU0hJRlQ7Ci0gICAgICAgICpyID0gdmdpY19yZWc2NF9leHRyYWN0KHJlZywgaW5mbyk7 CisgICAgICAgICpyID0gdnJlZ19yZWc2NF9leHRyYWN0KHJlZywgaW5mbyk7CiAgICAgICAgIGJy ZWFrOwogCiAgICAgY2FzZSBWUkFOR0UzMigweDAwMTgsIDB4MDAxQyk6CkBAIC0xMDQ0LDcgKzEw NDQsNyBAQCBzdGF0aWMgaW50IHZnaWNfdjNfaXRzX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwg bW1pb19pbmZvX3QgKmluZm8sCiAgICAgY2FzZSBWUkVHNjQoR0lUU19DQkFTRVIpOgogICAgICAg ICBpZiAoICF2Z2ljX3JlZzY0X2NoZWNrX2FjY2VzcyhpbmZvLT5kYWJ0KSApIGdvdG8gYmFkX3dp ZHRoOwogICAgICAgICBzcGluX2xvY2soJml0cy0+aXRzX2xvY2spOwotICAgICAgICAqciA9IHZn aWNfcmVnNjRfZXh0cmFjdChpdHMtPmNiYXNlciwgaW5mbyk7CisgICAgICAgICpyID0gdnJlZ19y ZWc2NF9leHRyYWN0KGl0cy0+Y2Jhc2VyLCBpbmZvKTsKICAgICAgICAgc3Bpbl91bmxvY2soJml0 cy0+aXRzX2xvY2spOwogICAgICAgICBicmVhazsKIApAQCAtMTA1Myw3ICsxMDUzLDcgQEAgc3Rh dGljIGludCB2Z2ljX3YzX2l0c19tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190 ICppbmZvLAogCiAgICAgICAgIC8qIENXUklURVIgaXMgb25seSB3cml0dGVuIGJ5IHRoZSBndWVz dCwgc28gbm8gZXh0cmEgbG9ja2luZyBoZXJlLiAqLwogICAgICAgICByZWcgPSBpdHMtPmN3cml0 ZXI7Ci0gICAgICAgICpyID0gdmdpY19yZWc2NF9leHRyYWN0KHJlZywgaW5mbyk7CisgICAgICAg ICpyID0gdnJlZ19yZWc2NF9leHRyYWN0KHJlZywgaW5mbyk7CiAgICAgICAgIGJyZWFrOwogCiAg ICAgY2FzZSBWUkVHNjQoR0lUU19DUkVBRFIpOgpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgc3RhdGlj IGludCB2Z2ljX3YzX2l0c19tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICpp bmZvLAogICAgICAgICAgKiBwcm9ncmVzcy4KICAgICAgICAgICovCiAgICAgICAgIHJlZyA9IHJl YWRfdTY0X2F0b21pYygmaXRzLT5jcmVhZHIpOwotICAgICAgICAqciA9IHZnaWNfcmVnNjRfZXh0 cmFjdChyZWcsIGluZm8pOworICAgICAgICAqciA9IHZyZWdfcmVnNjRfZXh0cmFjdChyZWcsIGlu Zm8pOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVlJBTkdFNjQoMHgwMDk4LCAweDAwRjgp OgpAQCAtMTA3NSwxNCArMTA3NSwxNCBAQCBzdGF0aWMgaW50IHZnaWNfdjNfaXRzX21taW9fcmVh ZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCiAgICAgY2FzZSBWUkVHNjQoR0lU U19CQVNFUjApOiAgICAgICAgICAgLyogZGV2aWNlIHRhYmxlICovCiAgICAgICAgIGlmICggIXZn aWNfcmVnNjRfY2hlY2tfYWNjZXNzKGluZm8tPmRhYnQpICkgZ290byBiYWRfd2lkdGg7CiAgICAg ICAgIHNwaW5fbG9jaygmaXRzLT5pdHNfbG9jayk7Ci0gICAgICAgICpyID0gdmdpY19yZWc2NF9l eHRyYWN0KGl0cy0+YmFzZXJfZGV2LCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzY0X2V4 dHJhY3QoaXRzLT5iYXNlcl9kZXYsIGluZm8pOwogICAgICAgICBzcGluX3VubG9jaygmaXRzLT5p dHNfbG9jayk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBWUkVHNjQoR0lUU19CQVNFUjEp OiAgICAgICAgICAgLyogY29sbGVjdGlvbiB0YWJsZSAqLwogICAgICAgICBpZiAoICF2Z2ljX3Jl ZzY0X2NoZWNrX2FjY2VzcyhpbmZvLT5kYWJ0KSApIGdvdG8gYmFkX3dpZHRoOwogICAgICAgICBz cGluX2xvY2soJml0cy0+aXRzX2xvY2spOwotICAgICAgICAqciA9IHZnaWNfcmVnNjRfZXh0cmFj dChpdHMtPmJhc2VyX2NvbGwsIGluZm8pOworICAgICAgICAqciA9IHZyZWdfcmVnNjRfZXh0cmFj dChpdHMtPmJhc2VyX2NvbGwsIGluZm8pOwogICAgICAgICBzcGluX3VubG9jaygmaXRzLT5pdHNf bG9jayk7CiAgICAgICAgIGJyZWFrOwogCkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBzdGF0aWMgaW50 IHZnaWNfdjNfaXRzX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8s CiAKICAgICBjYXNlIFZSRUczMihHSVRTX1BJRFIyKToKICAgICAgICAgaWYgKCBpbmZvLT5kYWJ0 LnNpemUgIT0gREFCVF9XT1JEICkgZ290byBiYWRfd2lkdGg7Ci0gICAgICAgICpyID0gdmdpY19y ZWczMl9leHRyYWN0KEdJQ19QSURSMl9BUkNIX0dJQ3YzLCBpbmZvKTsKKyAgICAgICAgKnIgPSB2 cmVnX3JlZzMyX2V4dHJhY3QoR0lDX1BJRFIyX0FSQ0hfR0lDdjMsIGluZm8pOwogICAgICAgICBi cmVhazsKIAogICAgIGNhc2UgVlJBTkdFMzIoMHhGRkVDLCAweEZGRkMpOgpAQCAtMTI1OCw3ICsx MjU4LDcgQEAgc3RhdGljIGludCB2Z2ljX3YzX2l0c19tbWlvX3dyaXRlKHN0cnVjdCB2Y3B1ICp2 LCBtbWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgc3Bpbl9sb2NrKCZpdHMtPml0c19sb2NrKTsK ICAgICAgICAgY3RsciA9IGl0cy0+ZW5hYmxlZCA/IEdJVFNfQ1RMUl9FTkFCTEUgOiAwOwogICAg ICAgICByZWczMiA9IGN0bHI7Ci0gICAgICAgIHZnaWNfcmVnMzJfdXBkYXRlKCZyZWczMiwgciwg aW5mbyk7CisgICAgICAgIHZyZWdfcmVnMzJfdXBkYXRlKCZyZWczMiwgciwgaW5mbyk7CiAKICAg ICAgICAgaWYgKCBjdGxyIF4gcmVnMzIgKQogICAgICAgICAgICAgaXRzLT5lbmFibGVkID0gdmdp Y192M192ZXJpZnlfaXRzX3N0YXR1cyhpdHMsCkBAIC0xMjk1LDcgKzEyOTUsNyBAQCBzdGF0aWMg aW50IHZnaWNfdjNfaXRzX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICpp bmZvLAogICAgICAgICB9CiAKICAgICAgICAgcmVnID0gaXRzLT5jYmFzZXI7Ci0gICAgICAgIHZn aWNfcmVnNjRfdXBkYXRlKCZyZWcsIHIsIGluZm8pOworICAgICAgICB2cmVnX3JlZzY0X3VwZGF0 ZSgmcmVnLCByLCBpbmZvKTsKICAgICAgICAgc2FuaXRpemVfaXRzX2Jhc2VfcmVnKCZyZWcpOwog CiAgICAgICAgIGl0cy0+Y2Jhc2VyID0gcmVnOwpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgc3RhdGlj IGludCB2Z2ljX3YzX2l0c19tbWlvX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAq aW5mbywKIAogICAgICAgICBzcGluX2xvY2soJml0cy0+dmNtZF9sb2NrKTsKICAgICAgICAgcmVn ID0gSVRTX0NNRF9PRkZTRVQoaXRzLT5jd3JpdGVyKTsKLSAgICAgICAgdmdpY19yZWc2NF91cGRh dGUoJnJlZywgciwgaW5mbyk7CisgICAgICAgIHZyZWdfcmVnNjRfdXBkYXRlKCZyZWcsIHIsIGlu Zm8pOwogICAgICAgICBpdHMtPmN3cml0ZXIgPSBJVFNfQ01EX09GRlNFVChyZWcpOwogCiAgICAg ICAgIGlmICggaXRzLT5lbmFibGVkICkKQEAgLTEzNDQsNyArMTM0NCw3IEBAIHN0YXRpYyBpbnQg dmdpY192M19pdHNfbW1pb193cml0ZShzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8s CiAgICAgICAgIH0KIAogICAgICAgICByZWcgPSBpdHMtPmJhc2VyX2RldjsKLSAgICAgICAgdmdp Y19yZWc2NF91cGRhdGUoJnJlZywgciwgaW5mbyk7CisgICAgICAgIHZyZWdfcmVnNjRfdXBkYXRl KCZyZWcsIHIsIGluZm8pOwogCiAgICAgICAgIC8qIFdlIGRvbid0IHN1cHBvcnQgaW5kaXJlY3Qg dGFibGVzIGZvciBub3cuICovCiAgICAgICAgIHJlZyAmPSB+KEdJVFNfQkFTRVJfUk9fTUFTSyB8 IEdJVFNfQkFTRVJfSU5ESVJFQ1QpOwpAQCAtMTM4MSw3ICsxMzgxLDcgQEAgc3RhdGljIGludCB2 Z2ljX3YzX2l0c19tbWlvX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywK ICAgICAgICAgfQogCiAgICAgICAgIHJlZyA9IGl0cy0+YmFzZXJfY29sbDsKLSAgICAgICAgdmdp Y19yZWc2NF91cGRhdGUoJnJlZywgciwgaW5mbyk7CisgICAgICAgIHZyZWdfcmVnNjRfdXBkYXRl KCZyZWcsIHIsIGluZm8pOwogICAgICAgICAvKiBObyBpbmRpcmVjdCB0YWJsZXMgZm9yIHRoZSBj b2xsZWN0aW9uIHRhYmxlLiAqLwogICAgICAgICByZWcgJj0gfihHSVRTX0JBU0VSX1JPX01BU0sg fCBHSVRTX0JBU0VSX0lORElSRUNUKTsKICAgICAgICAgcmVnIHw9IChzaXplb2YoY29sbF90YWJs ZV9lbnRyeV90KSAtIDEpIDw8IEdJVFNfQkFTRVJfRU5UUllfU0laRV9TSElGVDsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy12My5jCmluZGV4 IDQyODdhZTEuLjQ4Yzc2ODIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMKKysr IGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwpAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBpbnQg X192Z2ljX3YzX3JkaXN0cl9yZF9tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190 ICppbmZvLAogICAgICAgICBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93 aWR0aDsKIAogICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdi0+YXJjaC52Z2ljLmxvY2ssIGZs YWdzKTsKLSAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3QoISEodi0+YXJjaC52Z2ljLmZs YWdzICYgVkdJQ19WM19MUElTX0VOQUJMRUQpLAorICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0 cmFjdCghISh2LT5hcmNoLnZnaWMuZmxhZ3MgJiBWR0lDX1YzX0xQSVNfRU5BQkxFRCksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8pOwogICAgICAgICBzcGluX3VubG9ja19p cnFyZXN0b3JlKCZ2LT5hcmNoLnZnaWMubG9jaywgZmxhZ3MpOwogICAgICAgICByZXR1cm4gMTsK QEAgLTE4Niw3ICsxODYsNyBAQCBzdGF0aWMgaW50IF9fdmdpY192M19yZGlzdHJfcmRfbW1pb19y ZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKIAogICAgIGNhc2UgVlJFRzMy KEdJQ1JfSUlEUik6CiAgICAgICAgIGlmICggZGFidC5zaXplICE9IERBQlRfV09SRCApIGdvdG8g YmFkX3dpZHRoOwotICAgICAgICAqciA9IHZnaWNfcmVnMzJfZXh0cmFjdChHSUNWM19HSUNSX0lJ RFJfVkFMLCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QoR0lDVjNfR0lD Ul9JSURSX1ZBTCwgaW5mbyk7CiAgICAgICAgIHJldHVybiAxOwogCiAgICAgY2FzZSBWUkVHNjQo R0lDUl9UWVBFUik6CkBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfcmRp c3RyX3JkX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCiAgICAg ICAgIGlmICggdi0+ZG9tYWluLT5hcmNoLnZnaWMuaGFzX2l0cyApCiAgICAgICAgICAgICB0eXBl ciB8PSBHSUNSX1RZUEVSX1BMUElTOwogCi0gICAgICAgICpyID0gdmdpY19yZWc2NF9leHRyYWN0 KHR5cGVyLCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzY0X2V4dHJhY3QodHlwZXIsIGlu Zm8pOwogCiAgICAgICAgIHJldHVybiAxOwogICAgIH0KQEAgLTI0NCw3ICsyNDQsNyBAQCBzdGF0 aWMgaW50IF9fdmdpY192M19yZGlzdHJfcmRfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlv X2luZm9fdCAqaW5mbywKICAgICAgICAgaWYgKCAhdmdpY19yZWc2NF9jaGVja19hY2Nlc3MoZGFi dCkgKSBnb3RvIGJhZF93aWR0aDsKIAogICAgICAgICB2Z2ljX2xvY2sodik7Ci0gICAgICAgICpy ID0gdmdpY19yZWc2NF9leHRyYWN0KHYtPmRvbWFpbi0+YXJjaC52Z2ljLnJkaXN0X3Byb3BiYXNl LCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzY0X2V4dHJhY3Qodi0+ZG9tYWluLT5hcmNo LnZnaWMucmRpc3RfcHJvcGJhc2UsIGluZm8pOwogICAgICAgICB2Z2ljX3VubG9jayh2KTsKICAg ICAgICAgcmV0dXJuIDE7CiAKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgaW50IF9fdmdpY192 M19yZGlzdHJfcmRfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywK ICAgICAgICAgaWYgKCAhdmdpY19yZWc2NF9jaGVja19hY2Nlc3MoZGFidCkgKSBnb3RvIGJhZF93 aWR0aDsKIAogICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdi0+YXJjaC52Z2ljLmxvY2ssIGZs YWdzKTsKLSAgICAgICAgKnIgPSB2Z2ljX3JlZzY0X2V4dHJhY3Qodi0+YXJjaC52Z2ljLnJkaXN0 X3BlbmRiYXNlLCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzY0X2V4dHJhY3Qodi0+YXJj aC52Z2ljLnJkaXN0X3BlbmRiYXNlLCBpbmZvKTsKICAgICAgICAgKnIgJj0gfkdJQ1JfUEVOREJB U0VSX1BUWjsgICAgICAgLyogV08sIHJlYWRzIGFzIDAgKi8KICAgICAgICAgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmdi0+YXJjaC52Z2ljLmxvY2ssIGZsYWdzKTsKICAgICAgICAgcmV0dXJuIDE7 CkBAIC0yODMsNyArMjgzLDcgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfcmRpc3RyX3JkX21taW9f cmVhZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCiAgICAgY2FzZSBWUkVHMzIo R0lDUl9TWU5DUik6CiAgICAgICAgIGlmICggZGFidC5zaXplICE9IERBQlRfV09SRCApIGdvdG8g YmFkX3dpZHRoOwogICAgICAgICAvKiBSTyAuIEJ1dCB3aGVuIHJlYWQgaXQgYWx3YXlzIHJldHVy bnMgYnVzeSBiaXRvIGJpdFswXSAqLwotICAgICAgICAqciA9IHZnaWNfcmVnMzJfZXh0cmFjdChH SUNSX1NZTkNSX05PVF9CVVNZLCBpbmZvKTsKKyAgICAgICAgKnIgPSB2cmVnX3JlZzMyX2V4dHJh Y3QoR0lDUl9TWU5DUl9OT1RfQlVTWSwgaW5mbyk7CiAgICAgICAgIHJldHVybiAxOwogCiAgICAg Y2FzZSAweDAwQzg6CkBAIC0zMTAsNyArMzEwLDcgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfcmRp c3RyX3JkX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCiAKICAg ICBjYXNlIFZSRUczMihHSUNSX1BJRFIyKToKICAgICAgICAgaWYgKCBkYWJ0LnNpemUgIT0gREFC VF9XT1JEICkgZ290byBiYWRfd2lkdGg7Ci0gICAgICAgICpyID0gdmdpY19yZWczMl9leHRyYWN0 KEdJQ1YzX0dJQ1JfUElEUjIsIGluZm8pOworICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0cmFj dChHSUNWM19HSUNSX1BJRFIyLCBpbmZvKTsKICAgICAgICAgIHJldHVybiAxOwogCiAgICAgY2Fz ZSAweEZGRUMgLi4uIDB4RkZGQzoKQEAgLTM1NCw3ICszNTQsNyBAQCByZWFkX3Jlc2VydmVkOgog ICAgIHJldHVybiAxOwogCiByZWFkX3Vua25vd246Ci0gICAgKnIgPSB2Z2ljX3JlZzY0X2V4dHJh Y3QoMHhkZWFkYmVhZmRlYWRiZWFmLCBpbmZvKTsKKyAgICAqciA9IHZyZWdfcmVnNjRfZXh0cmFj dCgweGRlYWRiZWFmZGVhZGJlYWYsIGluZm8pOwogICAgIHJldHVybiAxOwogfQogCkBAIC01NTMs NyArNTUzLDcgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfcmRpc3RyX3JkX21taW9fd3JpdGUoc3Ry dWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLAogICAgICAgICBpZiAoICEodi0+ZG9tYWlu LT5hcmNoLnZnaWMucmRpc3RzX2VuYWJsZWQpICkKICAgICAgICAgewogICAgICAgICAgICAgcmVn ID0gdi0+ZG9tYWluLT5hcmNoLnZnaWMucmRpc3RfcHJvcGJhc2U7Ci0gICAgICAgICAgICB2Z2lj X3JlZzY0X3VwZGF0ZSgmcmVnLCByLCBpbmZvKTsKKyAgICAgICAgICAgIHZyZWdfcmVnNjRfdXBk YXRlKCZyZWcsIHIsIGluZm8pOwogICAgICAgICAgICAgcmVnID0gc2FuaXRpemVfcHJvcGJhc2Vy KHJlZyk7CiAgICAgICAgICAgICB2LT5kb21haW4tPmFyY2gudmdpYy5yZGlzdF9wcm9wYmFzZSA9 IHJlZzsKICAgICAgICAgfQpAQCAtNTc2LDcgKzU3Niw3IEBAIHN0YXRpYyBpbnQgX192Z2ljX3Yz X3JkaXN0cl9yZF9tbWlvX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywK ICAgICAgICAgaWYgKCAhKHYtPmFyY2gudmdpYy5mbGFncyAmIFZHSUNfVjNfTFBJU19FTkFCTEVE KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJlZyA9IHYtPmFyY2gudmdpYy5yZGlzdF9wZW5k YmFzZTsKLSAgICAgICAgICAgIHZnaWNfcmVnNjRfdXBkYXRlKCZyZWcsIHIsIGluZm8pOworICAg ICAgICAgICAgdnJlZ19yZWc2NF91cGRhdGUoJnJlZywgciwgaW5mbyk7CiAgICAgICAgICAgICBy ZWcgPSBzYW5pdGl6ZV9wZW5kYmFzZXIocmVnKTsKICAgICAgICAgICAgIHYtPmFyY2gudmdpYy5y ZGlzdF9wZW5kYmFzZSA9IHJlZzsKICAgICAgICAgfQpAQCAtNjkwLDcgKzY5MCw3IEBAIHN0YXRp YyBpbnQgX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3JlYWQoY29uc3QgY2hhciAqbmFtZSwg c3RydWN0IHZjcHUgKnYsCiAgICAgICAgIHJhbmsgPSB2Z2ljX3Jhbmtfb2Zmc2V0KHYsIDEsIHJl ZyAtIEdJQ0RfSVNFTkFCTEVSLCBEQUJUX1dPUkQpOwogICAgICAgICBpZiAoIHJhbmsgPT0gTlVM TCApIGdvdG8gcmVhZF9hc196ZXJvOwogICAgICAgICB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBm bGFncyk7Ci0gICAgICAgICpyID0gdmdpY19yZWczMl9leHRyYWN0KHJhbmstPmllbmFibGUsIGlu Zm8pOworICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0cmFjdChyYW5rLT5pZW5hYmxlLCBpbmZv KTsKICAgICAgICAgdmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7CiAgICAgICAgIHJl dHVybiAxOwogCkBAIC02OTksNyArNjk5LDcgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfZGlzdHJf Y29tbW9uX21taW9fcmVhZChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwKICAgICAg ICAgcmFuayA9IHZnaWNfcmFua19vZmZzZXQodiwgMSwgcmVnIC0gR0lDRF9JQ0VOQUJMRVIsIERB QlRfV09SRCk7CiAgICAgICAgIGlmICggcmFuayA9PSBOVUxMICkgZ290byByZWFkX2FzX3plcm87 CiAgICAgICAgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKLSAgICAgICAgKnIgPSB2 Z2ljX3JlZzMyX2V4dHJhY3QocmFuay0+aWVuYWJsZSwgaW5mbyk7CisgICAgICAgICpyID0gdnJl Z19yZWczMl9leHRyYWN0KHJhbmstPmllbmFibGUsIGluZm8pOwogICAgICAgICB2Z2ljX3VubG9j a19yYW5rKHYsIHJhbmssIGZsYWdzKTsKICAgICAgICAgcmV0dXJuIDE7CiAKQEAgLTcyNyw3ICs3 MjcsNyBAQCBzdGF0aWMgaW50IF9fdmdpY192M19kaXN0cl9jb21tb25fbW1pb19yZWFkKGNvbnN0 IGNoYXIgKm5hbWUsIHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICBpcHJpb3JpdHlyID0gQUNDRVNT X09OQ0UocmFuay0+aXByaW9yaXR5cltyYW5rX2luZGV4XSk7CiAgICAgICAgIHZnaWNfdW5sb2Nr X3JhbmsodiwgcmFuaywgZmxhZ3MpOwogCi0gICAgICAgICpyID0gdmdpY19yZWczMl9leHRyYWN0 KGlwcmlvcml0eXIsIGluZm8pOworICAgICAgICAqciA9IHZyZWdfcmVnMzJfZXh0cmFjdChpcHJp b3JpdHlyLCBpbmZvKTsKIAogICAgICAgICByZXR1cm4gMTsKICAgICB9CkBAIC03NDMsNyArNzQz LDcgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9fcmVhZChjb25zdCBj aGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgaWNmZ3IgPSByYW5rLT5pY2ZnW1JF R19SQU5LX0lOREVYKDIsIHJlZyAtIEdJQ0RfSUNGR1IsIERBQlRfV09SRCldOwogICAgICAgICB2 Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKIAotICAgICAgICAqciA9IHZnaWNfcmVn MzJfZXh0cmFjdChpY2ZnciwgaW5mbyk7CisgICAgICAgICpyID0gdnJlZ19yZWczMl9leHRyYWN0 KGljZmdyLCBpbmZvKTsKIAogICAgICAgICByZXR1cm4gMTsKICAgICB9CkBAIC03ODcsNyArNzg3 LDcgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9fd3JpdGUoY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IHZjcHUgKnYsCiAgICAgICAgIGlmICggcmFuayA9PSBOVUxMICkg Z290byB3cml0ZV9pZ25vcmU7CiAgICAgICAgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdz KTsKICAgICAgICAgdHIgPSByYW5rLT5pZW5hYmxlOwotICAgICAgICB2Z2ljX3JlZzMyX3NldGJp dHMoJnJhbmstPmllbmFibGUsIHIsIGluZm8pOworICAgICAgICB2cmVnX3JlZzMyX3NldGJpdHMo JnJhbmstPmllbmFibGUsIHIsIGluZm8pOwogICAgICAgICB2Z2ljX2VuYWJsZV9pcnFzKHYsIChy YW5rLT5pZW5hYmxlKSAmICh+dHIpLCByYW5rLT5pbmRleCk7CiAgICAgICAgIHZnaWNfdW5sb2Nr X3JhbmsodiwgcmFuaywgZmxhZ3MpOwogICAgICAgICByZXR1cm4gMTsKQEAgLTc5OCw3ICs3OTgs NyBAQCBzdGF0aWMgaW50IF9fdmdpY192M19kaXN0cl9jb21tb25fbW1pb193cml0ZShjb25zdCBj aGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgaWYgKCByYW5rID09IE5VTEwgKSBn b3RvIHdyaXRlX2lnbm9yZTsKICAgICAgICAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3Mp OwogICAgICAgICB0ciA9IHJhbmstPmllbmFibGU7Ci0gICAgICAgIHZnaWNfcmVnMzJfY2xlYXJi aXRzKCZyYW5rLT5pZW5hYmxlLCByLCBpbmZvKTsKKyAgICAgICAgdnJlZ19yZWczMl9jbGVhcmJp dHMoJnJhbmstPmllbmFibGUsIHIsIGluZm8pOwogICAgICAgICB2Z2ljX2Rpc2FibGVfaXJxcyh2 LCAofnJhbmstPmllbmFibGUpICYgdHIsIHJhbmstPmluZGV4KTsKICAgICAgICAgdmdpY191bmxv Y2tfcmFuayh2LCByYW5rLCBmbGFncyk7CiAgICAgICAgIHJldHVybiAxOwpAQCAtODQxLDcgKzg0 MSw3IEBAIHN0YXRpYyBpbnQgX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3dyaXRlKGNvbnN0 IGNoYXIgKm5hbWUsIHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICBpcHJpb3JpdHlyID0gJnJhbmst Pmlwcmlvcml0eXJbUkVHX1JBTktfSU5ERVgoOCwgcmVnIC0gR0lDRF9JUFJJT1JJVFlSLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFCVF9X T1JEKV07CiAgICAgICAgIHByaW9yaXR5ID0gQUNDRVNTX09OQ0UoKmlwcmlvcml0eXIpOwotICAg ICAgICB2Z2ljX3JlZzMyX3VwZGF0ZSgmcHJpb3JpdHksIHIsIGluZm8pOworICAgICAgICB2cmVn X3JlZzMyX3VwZGF0ZSgmcHJpb3JpdHksIHIsIGluZm8pOwogICAgICAgICBBQ0NFU1NfT05DRSgq aXByaW9yaXR5cikgPSBwcmlvcml0eTsKICAgICAgICAgdmdpY191bmxvY2tfcmFuayh2LCByYW5r LCBmbGFncyk7CiAgICAgICAgIHJldHVybiAxOwpAQCAtODU3LDcgKzg1Nyw3IEBAIHN0YXRpYyBp bnQgX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3dyaXRlKGNvbnN0IGNoYXIgKm5hbWUsIHN0 cnVjdCB2Y3B1ICp2LAogICAgICAgICByYW5rID0gdmdpY19yYW5rX29mZnNldCh2LCAyLCByZWcg LSBHSUNEX0lDRkdSLCBEQUJUX1dPUkQpOwogICAgICAgICBpZiAoIHJhbmsgPT0gTlVMTCApIGdv dG8gd3JpdGVfaWdub3JlOwogICAgICAgICB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7 Ci0gICAgICAgIHZnaWNfcmVnMzJfdXBkYXRlKCZyYW5rLT5pY2ZnW1JFR19SQU5LX0lOREVYKDIs IHJlZyAtIEdJQ0RfSUNGR1IsCisgICAgICAgIHZyZWdfcmVnMzJfdXBkYXRlKCZyYW5rLT5pY2Zn W1JFR19SQU5LX0lOREVYKDIsIHJlZyAtIEdJQ0RfSUNGR1IsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBQlRfV09SRCldLAogICAgICAgICAg ICAgICAgICAgICAgICAgICByLCBpbmZvKTsKICAgICAgICAgdmdpY191bmxvY2tfcmFuayh2LCBy YW5rLCBmbGFncyk7CkBAIC0xMTA1LDcgKzExMDUsNyBAQCBzdGF0aWMgaW50IHZnaWNfdjNfZGlz dHJfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKICAgICBjYXNl IFZSRUczMihHSUNEX0NUTFIpOgogICAgICAgICBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQg KSBnb3RvIGJhZF93aWR0aDsKICAgICAgICAgdmdpY19sb2NrKHYpOwotICAgICAgICAqciA9IHZn aWNfcmVnMzJfZXh0cmFjdCh2LT5kb21haW4tPmFyY2gudmdpYy5jdGxyLCBpbmZvKTsKKyAgICAg ICAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3Qodi0+ZG9tYWluLT5hcmNoLnZnaWMuY3RsciwgaW5m byk7CiAgICAgICAgIHZnaWNfdW5sb2NrKHYpOwogICAgICAgICByZXR1cm4gMTsKIApAQCAtMTEz MiwxNCArMTEzMiwxNCBAQCBzdGF0aWMgaW50IHZnaWNfdjNfZGlzdHJfbW1pb19yZWFkKHN0cnVj dCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKIAogICAgICAgICB0eXBlciB8PSAodi0+ZG9t YWluLT5hcmNoLnZnaWMuaW50aWRfYml0cyAtIDEpIDw8IEdJQ0RfVFlQRV9JRF9CSVRTX1NISUZU OwogCi0gICAgICAgICpyID0gdmdpY19yZWczMl9leHRyYWN0KHR5cGVyLCBpbmZvKTsKKyAgICAg ICAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QodHlwZXIsIGluZm8pOwogCiAgICAgICAgIHJldHVy biAxOwogICAgIH0KIAogICAgIGNhc2UgVlJFRzMyKEdJQ0RfSUlEUik6CiAgICAgICAgIGlmICgg ZGFidC5zaXplICE9IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOwotICAgICAgICAqciA9IHZn aWNfcmVnMzJfZXh0cmFjdChHSUNWM19HSUNEX0lJRFJfVkFMLCBpbmZvKTsKKyAgICAgICAgKnIg PSB2cmVnX3JlZzMyX2V4dHJhY3QoR0lDVjNfR0lDRF9JSURSX1ZBTCwgaW5mbyk7CiAgICAgICAg IHJldHVybiAxOwogCiAgICAgY2FzZSBWUkVHMzIoMHgwMDBDKToKQEAgLTEyMzIsNyArMTIzMiw3 IEBAIHN0YXRpYyBpbnQgdmdpY192M19kaXN0cl9tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1t aW9faW5mb190ICppbmZvLAogICAgICAgICBpcm91dGVyID0gdmdpY19mZXRjaF9pcm91dGVyKHJh bmssIGdpY2RfcmVnIC0gR0lDRF9JUk9VVEVSKTsKICAgICAgICAgdmdpY191bmxvY2tfcmFuayh2 LCByYW5rLCBmbGFncyk7CiAKLSAgICAgICAgKnIgPSB2Z2ljX3JlZzY0X2V4dHJhY3QoaXJvdXRl ciwgaW5mbyk7CisgICAgICAgICpyID0gdnJlZ19yZWc2NF9leHRyYWN0KGlyb3V0ZXIsIGluZm8p OwogCiAgICAgICAgIHJldHVybiAxOwogICAgIH0KQEAgLTEyNTAsNyArMTI1MCw3IEBAIHN0YXRp YyBpbnQgdmdpY192M19kaXN0cl9tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190 ICppbmZvLAogICAgIGNhc2UgVlJFRzMyKEdJQ0RfUElEUjIpOgogICAgICAgICAvKiBHSUN2MyBp ZGVudGlmaWNhdGlvbiB2YWx1ZSAqLwogICAgICAgICBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dP UkQgKSBnb3RvIGJhZF93aWR0aDsKLSAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3QoR0lD VjNfR0lDRF9QSURSMiwgaW5mbyk7CisgICAgICAgICpyID0gdnJlZ19yZWczMl9leHRyYWN0KEdJ Q1YzX0dJQ0RfUElEUjIsIGluZm8pOwogICAgICAgICByZXR1cm4gMTsKIAogICAgIGNhc2UgVlJB TkdFMzIoMHhGRkVDLCAweEZGRkMpOgpAQCAtMTMxMyw3ICsxMzEzLDcgQEAgc3RhdGljIGludCB2 Z2ljX3YzX2Rpc3RyX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZv LAogCiAgICAgICAgIHZnaWNfbG9jayh2KTsKIAotICAgICAgICB2Z2ljX3JlZzMyX3VwZGF0ZSgm Y3RsciwgciwgaW5mbyk7CisgICAgICAgIHZyZWdfcmVnMzJfdXBkYXRlKCZjdGxyLCByLCBpbmZv KTsKIAogICAgICAgICAvKiBPbmx5IEVuYWJsZUdycDFBIGNhbiBiZSBjaGFuZ2VkICovCiAgICAg ICAgIGlmICggY3RsciAmIEdJQ0RfQ1RMUl9FTkFCTEVfRzFBICkKQEAgLTE0MTksNyArMTQxOSw3 IEBAIHN0YXRpYyBpbnQgdmdpY192M19kaXN0cl9tbWlvX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCBt bWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgaWYgKCByYW5rID09IE5VTEwgKSBnb3RvIHdyaXRl X2lnbm9yZTsKICAgICAgICAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOwogICAgICAg ICBpcm91dGVyID0gdmdpY19mZXRjaF9pcm91dGVyKHJhbmssIGdpY2RfcmVnIC0gR0lDRF9JUk9V VEVSKTsKLSAgICAgICAgdmdpY19yZWc2NF91cGRhdGUoJmlyb3V0ZXIsIHIsIGluZm8pOworICAg ICAgICB2cmVnX3JlZzY0X3VwZGF0ZSgmaXJvdXRlciwgciwgaW5mbyk7CiAgICAgICAgIHZnaWNf c3RvcmVfaXJvdXRlcih2LT5kb21haW4sIHJhbmssIGdpY2RfcmVnIC0gR0lDRF9JUk9VVEVSLCBp cm91dGVyKTsKICAgICAgICAgdmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7CiAgICAg ICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS92cmVnLmggYi94 ZW4vaW5jbHVkZS9hc20tYXJtL3ZyZWcuaAppbmRleCAzNDg1ODRmLi4xMjUzNzUzIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3ZyZWcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJt L3ZyZWcuaApAQCAtMTA3LDk5ICsxMDcsOTkgQEAgc3RhdGljIGlubGluZSBib29sIHZyZWdfZW11 bGF0ZV9zeXNyZWc2NChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdW5pb24gaHNyIGgKIAog I2VuZGlmCiAKLSNkZWZpbmUgVkdJQ19SRUdfTUFTSyhzaXplKSAoKH4wVUwpID4+IChCSVRTX1BF Ul9MT05HIC0gKCgxIDw8IChzaXplKSkgKiA4KSkpCisjZGVmaW5lIFZSRUdfUkVHX01BU0soc2l6 ZSkgKCh+MFVMKSA+PiAoQklUU19QRVJfTE9ORyAtICgoMSA8PCAoc2l6ZSkpICogOCkpKQogCiAv KgogICogVGhlIGNoZWNrIG9uIHRoZSBzaXplIHN1cHBvcnRlZCBieSB0aGUgcmVnaXN0ZXIgaGFz IHRvIGJlIGRvbmUgYnkKLSAqIHRoZSBjYWxsZXIgb2YgdmdpY19yZWdOXyouCisgKiB0aGUgY2Fs bGVyIG9mIHZyZWdfcmVnTl8qLgogICoKLSAqIHZnaWNfcmVnXyogc2hvdWxkIG5ldmVyIGJlIGNh bGxlZCBkaXJlY3RseS4gSW5zdGVhZCB1c2UgdGhlIHZnaWNfcmVnTl8qCisgKiB2cmVnX3JlZ18q IHNob3VsZCBuZXZlciBiZSBjYWxsZWQgZGlyZWN0bHkuIEluc3RlYWQgdXNlIHRoZSB2cmVnX3Jl Z05fKgogICogYWNjb3JkaW5nIHRvIHNpemUgb2YgdGhlIGVtdWxhdGVkIHJlZ2lzdGVyCiAgKgog ICogTm90ZSB0aGF0IHRoZSBhbGlnbm1lbnQgZmF1bHQgd2lsbCBhbHdheXMgYmUgdGFrZW4gaW4g dGhlIGd1ZXN0CiAgKiAoc2VlIEIzLjEyLjcgRERJMDQwNi5iKS4KICAqLwotc3RhdGljIGlubGlu ZSByZWdpc3Rlcl90IHZnaWNfcmVnX2V4dHJhY3QodW5zaWduZWQgbG9uZyByZWcsCitzdGF0aWMg aW5saW5lIHJlZ2lzdGVyX3QgdnJlZ19yZWdfZXh0cmFjdCh1bnNpZ25lZCBsb25nIHJlZywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvZmZz ZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGRhYnRf c2l6ZSBzaXplKQogewogICAgIHJlZyA+Pj0gOCAqIG9mZnNldDsKLSAgICByZWcgJj0gVkdJQ19S RUdfTUFTSyhzaXplKTsKKyAgICByZWcgJj0gVlJFR19SRUdfTUFTSyhzaXplKTsKIAogICAgIHJl dHVybiByZWc7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB2Z2ljX3JlZ191cGRhdGUodW5zaWdu ZWQgbG9uZyAqcmVnLCByZWdpc3Rlcl90IHZhbCwKK3N0YXRpYyBpbmxpbmUgdm9pZCB2cmVnX3Jl Z191cGRhdGUodW5zaWduZWQgbG9uZyAqcmVnLCByZWdpc3Rlcl90IHZhbCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9mZnNldCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkYWJ0X3NpemUgc2l6ZSkKIHsKLSAgICB1bnNp Z25lZCBsb25nIG1hc2sgPSBWR0lDX1JFR19NQVNLKHNpemUpOworICAgIHVuc2lnbmVkIGxvbmcg bWFzayA9IFZSRUdfUkVHX01BU0soc2l6ZSk7CiAgICAgaW50IHNoaWZ0ID0gb2Zmc2V0ICogODsK IAogICAgICpyZWcgJj0gfihtYXNrIDw8IHNoaWZ0KTsKICAgICAqcmVnIHw9ICgodW5zaWduZWQg bG9uZyl2YWwgJiBtYXNrKSA8PCBzaGlmdDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHZnaWNf cmVnX3NldGJpdHModW5zaWduZWQgbG9uZyAqcmVnLCByZWdpc3Rlcl90IGJpdHMsCitzdGF0aWMg aW5saW5lIHZvaWQgdnJlZ19yZWdfc2V0Yml0cyh1bnNpZ25lZCBsb25nICpyZWcsIHJlZ2lzdGVy X3QgYml0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGRhYnRf c2l6ZSBzaXplKQogewotICAgIHVuc2lnbmVkIGxvbmcgbWFzayA9IFZHSUNfUkVHX01BU0soc2l6 ZSk7CisgICAgdW5zaWduZWQgbG9uZyBtYXNrID0gVlJFR19SRUdfTUFTSyhzaXplKTsKICAgICBp bnQgc2hpZnQgPSBvZmZzZXQgKiA4OwogCiAgICAgKnJlZyB8PSAoKHVuc2lnbmVkIGxvbmcpYml0 cyAmIG1hc2spIDw8IHNoaWZ0OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgdmdpY19yZWdfY2xl YXJiaXRzKHVuc2lnbmVkIGxvbmcgKnJlZywgcmVnaXN0ZXJfdCBiaXRzLAorc3RhdGljIGlubGlu ZSB2b2lkIHZyZWdfcmVnX2NsZWFyYml0cyh1bnNpZ25lZCBsb25nICpyZWcsIHJlZ2lzdGVyX3Qg Yml0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkYWJ0 X3NpemUgc2l6ZSkKIHsKLSAgICB1bnNpZ25lZCBsb25nIG1hc2sgPSBWR0lDX1JFR19NQVNLKHNp emUpOworICAgIHVuc2lnbmVkIGxvbmcgbWFzayA9IFZSRUdfUkVHX01BU0soc2l6ZSk7CiAgICAg aW50IHNoaWZ0ID0gb2Zmc2V0ICogODsKIAogICAgICpyZWcgJj0gfigoKHVuc2lnbmVkIGxvbmcp Yml0cyAmIG1hc2spIDw8IHNoaWZ0KTsKIH0KIAogLyogTi1iaXQgcmVnaXN0ZXIgaGVscGVycyAq LwotI2RlZmluZSBWR0lDX1JFR19IRUxQRVJTKHN6LCBvZmZtYXNrKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotc3RhdGljIGlubGluZSByZWdpc3Rlcl90IHZnaWNfcmVnIyNz eiMjX2V4dHJhY3QodWludCMjc3ojI190IHJlZywgICAgICAgXAorI2RlZmluZSBWUkVHX1JFR19I RUxQRVJTKHN6LCBvZmZtYXNrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor c3RhdGljIGlubGluZSByZWdpc3Rlcl90IHZyZWdfcmVnIyNzeiMjX2V4dHJhY3QodWludCMjc3oj I190IHJlZywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgbW1pb19pbmZvX3QgKmluZm8pXAogeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg IHJldHVybiB2Z2ljX3JlZ19leHRyYWN0KHJlZywgaW5mby0+Z3BhICYgb2ZmbWFzaywgICAgICAg ICAgICAgICAgICAgXAorICAgIHJldHVybiB2cmVnX3JlZ19leHRyYWN0KHJlZywgaW5mby0+Z3Bh ICYgb2ZmbWFzaywgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluZm8tPmRhYnQuc2l6ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotc3RhdGljIGlubGluZSB2b2lkIHZnaWNfcmVn IyNzeiMjX3VwZGF0ZSh1aW50IyNzeiMjX3QgKnJlZywgICAgICAgICAgICAgXAorc3RhdGljIGlu bGluZSB2b2lkIHZyZWdfcmVnIyNzeiMjX3VwZGF0ZSh1aW50IyNzeiMjX3QgKnJlZywgICAgICAg ICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rl cl90IHZhbCwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBtbWlvX2luZm9fdCAqaW5mbykgICAgICAgXAogeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgIHVuc2lnbmVkIGxvbmcgdG1wID0gKnJlZzsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHZnaWNfcmVnX3Vw ZGF0ZSgmdG1wLCB2YWwsIGluZm8tPmdwYSAmIG9mZm1hc2ssICAgICAgICAgICAgICAgICAgICAg XAorICAgIHZyZWdfcmVnX3VwZGF0ZSgmdG1wLCB2YWwsIGluZm8tPmdwYSAmIG9mZm1hc2ssICAg ICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICBpbmZvLT5kYWJ0LnNpemUp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgICpyZWcgPSB0bXA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotc3Rh dGljIGlubGluZSB2b2lkIHZnaWNfcmVnIyNzeiMjX3NldGJpdHModWludCMjc3ojI190ICpyZWcs ICAgICAgICAgICAgXAorc3RhdGljIGlubGluZSB2b2lkIHZyZWdfcmVnIyNzeiMjX3NldGJpdHMo dWludCMjc3ojI190ICpyZWcsICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBiaXRzLCAgICAgICAgICAgICAgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW1pb19pbmZvX3QgKmlu Zm8pICAgICAgXAogeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHVuc2lnbmVkIGxvbmcgdG1wID0gKnJl ZzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotICAgIHZnaWNfcmVnX3NldGJpdHMoJnRtcCwgYml0cywgaW5mby0+Z3BhICYgb2Zm bWFzaywgICAgICAgICAgICAgICAgICAgXAorICAgIHZyZWdfcmVnX3NldGJpdHMoJnRtcCwgYml0 cywgaW5mby0+Z3BhICYgb2ZmbWFzaywgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg ICAgICAgICAgaW5mby0+ZGFidC5zaXplKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogICAgICpyZWcgPSB0bXA7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotc3RhdGljIGlubGluZSB2b2lkIHZnaWNfcmVnIyNzeiMjX2Ns ZWFyYml0cyh1aW50IyNzeiMjX3QgKnJlZywgICAgICAgICAgXAorc3RhdGljIGlubGluZSB2b2lk IHZyZWdfcmVnIyNzeiMjX2NsZWFyYml0cyh1aW50IyNzeiMjX3QgKnJlZywgICAgICAgICAgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90IGJp dHMsICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBtbWlvX2luZm9fdCAqaW5mbykgICAgXAogeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg IHVuc2lnbmVkIGxvbmcgdG1wID0gKnJlZzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHZnaWNfcmVnX2NsZWFyYml0cygm dG1wLCBiaXRzLCBpbmZvLT5ncGEgJiBvZmZtYXNrLCAgICAgICAgICAgICAgICAgXAorICAgIHZy ZWdfcmVnX2NsZWFyYml0cygmdG1wLCBiaXRzLCBpbmZvLT5ncGEgJiBvZmZtYXNrLCAgICAgICAg ICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5kYWJ0LnNpemUpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICpyZWcg PSB0bXA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXApAQCAtMjExLDEwICsyMTEsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHZnaWNfcmVn IyNzeiMjX2NsZWFyYml0cyh1aW50IyNzeiMjX3QgKnJlZywgICAgICAgICAgXAogICogdW5zaWdu ZWQgbG9uZyByYXRoZXIgdGhhbiB1aW50NjRfdAogICovCiAjaWYgQklUU19QRVJfTE9ORyA9PSA2 NAotVkdJQ19SRUdfSEVMUEVSUyg2NCwgMHg3KTsKK1ZSRUdfUkVHX0hFTFBFUlMoNjQsIDB4Nyk7 CiAjZW5kaWYKLVZHSUNfUkVHX0hFTFBFUlMoMzIsIDB4Myk7CitWUkVHX1JFR19IRUxQRVJTKDMy LCAweDMpOwogCi0jdW5kZWYgVkdJQ19SRUdfSEVMUEVSUworI3VuZGVmIFZSRUdfUkVHX0hFTFBF UlMKIAogI2VuZGlmIC8qIF9fQVNNX0FSTV9WUkVHX18gKi8KLS0gCjIuNy40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==