From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v8.1 02/27] Revert "HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane." Date: Wed, 13 Apr 2016 18:01:43 -0400 Message-ID: <1460584928-32440-3-git-send-email-konrad.wilk@oracle.com> References: <1460584928-32440-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqSru-0004DH-Ix for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 22:02:38 +0000 In-Reply-To: <1460584928-32440-1-git-send-email-konrad.wilk@oracle.com> 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, konrad@kernel.org, ross.lagerwall@citrix.com, mpohlack@amazon.com, andrew.cooper3@citrix.com, sasha.levin@oracle.com Cc: Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org VGhpcyByZXZlcnRzIGNvbW1pdCAyNzE2ZDg3NTM3OWQ1MzhjMWRmY2NhZDc4YTk5Y2E3ZGIyZTA5 ZjkwLgoKQXMgaXQgd2FzIGRlY2lkZWQgdGhhdCB0aGUgZXhpc3RpbmcgWEVOVkVSIGh5cGVyY2Fs bCAtIHdoaWxlIGhhdmluZwpncm93biBvcmdhbmljYWxseSBvdmVyIHRoZSB5ZWFycyBjYW4gc3Rp bGwgYmUgZXhwYW5kZWQuCgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtv bnJhZC53aWxrQG9yYWNsZS5jb20+Ci0tLQogdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1 bGVzL3hlbi94ZW4udGUgfCAgIDcgKy0KIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxIC0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAg ICAgICAgICAgIHwgICAxIC0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMgICAg ICAgICAgIHwgICAyIC0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyAgICAgICAgICAgICAg ICAgIHwgICAyIC0KIHhlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jICAgICAgICAgICAgICAgICAg IHwgICAyIC0KIHhlbi9jb21tb24va2VybmVsLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MjEyICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2FyY2gt YXJtLmggICAgICAgICAgICAgICAgfCAgIDIgLQogeGVuL2luY2x1ZGUvcHVibGljL3ZlcnNpb24u aCAgICAgICAgICAgICAgICAgfCAgNzIgKy0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMveGVu LmggICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiB4ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxs LmggICAgICAgICAgICAgICAgICB8ICAgNCAtCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAg ICAgICAgICAgICAgICAgICB8ICAyMSAtLS0KIHhlbi9pbmNsdWRlL3hzbS94c20uaCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA2IC0KIHhlbi94c20vZHVtbXkuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxIC0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDM1IC0tLS0tCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9y cyAgICAgICAgICB8ICAyMSArLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyks IDM0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5 L21vZHVsZXMveGVuL3hlbi50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94 ZW4veGVuLnRlCmluZGV4IGE1NTE3NTYuLjJhMjYzMGQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ZsYXNr L3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGlj eS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCkBAIC03NiwxMiArNzYsMTEgQEAgYWxsb3cgZG9t MF90IHhlbl90OnhlbjIgewogICAgIGdldF9jcHVfZmVhdHVyZXNldAogfTsKIAotIyBBbGxvdyBk b20wIHRvIHVzZSBhbGwgWEVOVkVSXyBzdWJvcHMgYW5kIFZFUlNJT04gc3Vib3BzIHRoYXQgaGF2 ZSBjaGVja3MuCisjIEFsbG93IGRvbTAgdG8gdXNlIGFsbCBYRU5WRVJfIHN1Ym9wcyB0aGF0IGhh dmUgY2hlY2tzLgogIyBOb3RlIHRoYXQgZG9tMCBpcyBwYXJ0IG9mIGRvbWFpbl90eXBlIHNvIHRo aXMgaGFzIGR1cGxpY2F0ZXMuCiBhbGxvdyBkb20wX3QgeGVuX3Q6dmVyc2lvbiB7CiAgICAgeGVu X2V4dHJhdmVyc2lvbiB4ZW5fY29tcGlsZV9pbmZvIHhlbl9jYXBhYmlsaXRpZXMKICAgICB4ZW5f Y2hhbmdlc2V0IHhlbl9wYWdlc2l6ZSB4ZW5fZ3Vlc3RfaGFuZGxlIHhlbl9jb21tYW5kbGluZQot ICAgIGV4dHJhdmVyc2lvbiBjYXBhYmlsaXRpZXMgY2hhbmdlc2V0IHBhZ2VzaXplIGd1ZXN0X2hh bmRsZSBjb21tYW5kbGluZQogfTsKIAogYWxsb3cgZG9tMF90IHhlbl90Om1tdSBtZW1vcnltYXA7 CkBAIC0xNDgsMTIgKzE0NywxMCBAQCBpZiAoZ3Vlc3Rfd3JpdGVjb25zb2xlKSB7CiAjIHBtdV9j dHJsIGlzIGZvcikKIGFsbG93IGRvbWFpbl90eXBlIHhlbl90OnhlbjIgcG11X3VzZTsKIAotIyBG b3Igbm9ybWFsIGd1ZXN0cyBhbGwgcG9zc2libGUgZXhjZXB0IFhFTlZFUl9jb21tYW5kbGluZSwg VkVSU0lPTl9jaGFuZ2VzZXQsCi0jIGFuZCBWRVJTSU9OX2NvbW1hbmRsaW5lCisjIEZvciBub3Jt YWwgZ3Vlc3RzIGFsbCBwb3NzaWJsZSBleGNlcHQgWEVOVkVSX2NvbW1hbmRsaW5lLgogYWxsb3cg ZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7CiAgICAgeGVuX2V4dHJhdmVyc2lvbiB4ZW5fY29t cGlsZV9pbmZvIHhlbl9jYXBhYmlsaXRpZXMKICAgICB4ZW5fY2hhbmdlc2V0IHhlbl9wYWdlc2l6 ZSB4ZW5fZ3Vlc3RfaGFuZGxlCi0gICAgZXh0cmF2ZXJzaW9uIGNhcGFiaWxpdGllcyBwYWdlc2l6 ZSBndWVzdF9oYW5kbGUKIH07CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS90cmFwcy5jIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKaW5kZXggMTUxNmFi ZC4uOWFiZmMzYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3RyYXBzLmMKKysrIGIveGVuL2Fy Y2gvYXJtL3RyYXBzLmMKQEAgLTEyNzQsNyArMTI3NCw2IEBAIHN0YXRpYyBhcm1faHlwZXJjYWxs X3QgYXJtX2h5cGVyY2FsbF90YWJsZVtdID0gewogICAgIEhZUEVSQ0FMTChtdWx0aWNhbGwsIDIp LAogICAgIEhZUEVSQ0FMTChwbGF0Zm9ybV9vcCwgMSksCiAgICAgSFlQRVJDQUxMX0FSTSh2Y3B1 X29wLCAzKSwKLSAgICBIWVBFUkNBTEwodmVyc2lvbl9vcCwgMyksCiB9OwogCiAjaWZuZGVmIE5E RUJVRwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9o dm0vaHZtLmMKaW5kZXggZjI0MTI2ZC4uZjQxYWVkZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC00MDU0LDcgKzQwNTQs NiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICBDT01QQVRfQ0FMTChwbGF0Zm9ybV9vcCks CiAgICAgQ09NUEFUX0NBTEwobW11ZXh0X29wKSwKICAgICBIWVBFUkNBTEwoeGVucG11X29wKSwK LSAgICBIWVBFUkNBTEwodmVyc2lvbl9vcCksCiAgICAgSFlQRVJDQUxMKGFyY2hfMSkKIH07CiAK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMgYi94ZW4vYXJj aC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TCmluZGV4IDBmZjY4MTguLjZjYTRhNTQgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMKKysrIGIveGVuL2FyY2gv eDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUwpAQCAtMzk5LDcgKzM5OSw2IEBAIEVOVFJZKGNvbXBh dF9oeXBlcmNhbGxfdGFibGUpCiAgICAgICAgIC5xdWFkIGRvX3RtZW1fb3AKICAgICAgICAgLnF1 YWQgZG9fbmlfaHlwZXJjYWxsICAgICAgICAgICAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICov CiAgICAgICAgIC5xdWFkIGRvX3hlbnBtdV9vcCAgICAgICAgICAgICAgLyogNDAgKi8KLSAgICAg ICAgLnF1YWQgZG9fdmVyc2lvbl9vcAogICAgICAgICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8w LSgoLi1jb21wYXRfaHlwZXJjYWxsX3RhYmxlKS84KQogICAgICAgICAucXVhZCBjb21wYXRfbmlf aHlwZXJjYWxsCiAgICAgICAgIC5lbmRyCkBAIC00NTEsNyArNDUwLDYgQEAgRU5UUlkoY29tcGF0 X2h5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAxIC8qIGRvX3RtZW1fb3AgICAg ICAgICAgICAgICAqLwogICAgICAgICAuYnl0ZSAwIC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQg ICAqLwogICAgICAgICAuYnl0ZSAyIC8qIGRvX3hlbnBtdV9vcCAgICAgICAgICAgICAqLyAgLyog NDAgKi8KLSAgICAgICAgLmJ5dGUgMyAvKiBkb192ZXJzaW9uX29wICAgICAgICAgICAgKi8KICAg ICAgICAgLnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0oLi1jb21wYXRfaHlwZXJjYWxsX2FyZ3Nf dGFibGUpCiAgICAgICAgIC5ieXRlIDAgLyogY29tcGF0X25pX2h5cGVyY2FsbCAgICAgICovCiAg ICAgICAgIC5lbmRyCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMgYi94 ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKaW5kZXggNjg2NmU4Zi4uZDBmMzI1OSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZf NjQvZW50cnkuUwpAQCAtNzM1LDcgKzczNSw2IEBAIEVOVFJZKGh5cGVyY2FsbF90YWJsZSkKICAg ICAgICAgLnF1YWQgZG9fdG1lbV9vcAogICAgICAgICAucXVhZCBkb19uaV9oeXBlcmNhbGwgICAg ICAgLyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAqLwogICAgICAgICAucXVhZCBkb194ZW5wbXVf b3AgICAgICAgICAgLyogNDAgKi8KLSAgICAgICAgLnF1YWQgZG9fdmVyc2lvbl9vcAogICAgICAg ICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8wLSgoLi1oeXBlcmNhbGxfdGFibGUpLzgpCiAgICAg ICAgIC5xdWFkIGRvX25pX2h5cGVyY2FsbAogICAgICAgICAuZW5kcgpAQCAtNzg3LDcgKzc4Niw2 IEBAIEVOVFJZKGh5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAxIC8qIGRvX3Rt ZW1fb3AgICAgICAgICAgICovCiAgICAgICAgIC5ieXRlIDAgLyogcmVzZXJ2ZWQgZm9yIFhlbkNs aWVudCAqLwogICAgICAgICAuYnl0ZSAyIC8qIGRvX3hlbnBtdV9vcCAgICAgICAgICovICAvKiA0 MCAqLwotICAgICAgICAuYnl0ZSAzIC8qIGRvX3ZlcnNpb25fb3AgICAgICAgICovCiAgICAgICAg IC5yZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAtKC4taHlwZXJjYWxsX2FyZ3NfdGFibGUpCiAgICAg ICAgIC5ieXRlIDAgLyogZG9fbmlfaHlwZXJjYWxsICAgICAgKi8KICAgICAgICAgLmVuZHIKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jIGIveGVuL2NvbW1vbi9jb21wYXQv a2VybmVsLmMKaW5kZXggN2E3Y2E1My4uZGY5M2ZkZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9j b21wYXQva2VybmVsLmMKKysrIGIveGVuL2NvbW1vbi9jb21wYXQva2VybmVsLmMKQEAgLTM5LDgg KzM5LDYgQEAgQ0hFQ0tfVFlQRShjYXBhYmlsaXRpZXNfaW5mbyk7CiAKIENIRUNLX1RZUEUoZG9t YWluX2hhbmRsZSk7CiAKLUNIRUNLX1RZUEUodmVyc2lvbl9vcF92YWwpOwotCiAjZGVmaW5lIHhl bm5taV9jYWxsYmFjayBjb21wYXRfbm1pX2NhbGxiYWNrCiAjZGVmaW5lIHhlbm5taV9jYWxsYmFj a190IGNvbXBhdF9ubWlfY2FsbGJhY2tfdAogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2tlcm5l bC5jIGIveGVuL2NvbW1vbi9rZXJuZWwuYwppbmRleCBhZjI2NzRkLi5hNGEzYzM2IDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL2tlcm5lbC5jCisrKyBiL3hlbi9jb21tb24va2VybmVsLmMKQEAgLTIy MSw0NyArMjIxLDYgQEAgdm9pZCBfX2luaXQgZG9faW5pdGNhbGxzKHZvaWQpCiAKICNlbmRpZgog Ci1zdGF0aWMgaW50IGdldF9mZWF0dXJlcyhzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fZmVhdHVyZV9p bmZvX3QgKmZpKQotewotICAgIHN3aXRjaCAoIGZpLT5zdWJtYXBfaWR4ICkKLSAgICB7Ci0gICAg Y2FzZSAwOgotICAgICAgICBmaS0+c3VibWFwID0gKDFVIDw8IFhFTkZFQVRfbWVtb3J5X29wX3Zu b2RlX3N1cHBvcnRlZCk7Ci0gICAgICAgIGlmICggcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkK LSAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0KLSAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVB VF93cml0YWJsZV9wYWdlX3RhYmxlcykgfAotICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFU X2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKTsKLSAgICAgICAgaWYgKCBpc19oYXJkd2FyZV9kb21h aW4oZCkgKQotICAgICAgICAgICAgZmktPnN1Ym1hcCB8PSAxVSA8PCBYRU5GRUFUX2RvbTA7Ci0j aWZkZWYgQ09ORklHX1g4NgotICAgICAgICBpZiAoIFZNX0FTU0lTVChkLCBwYWVfZXh0ZW5kZWRf Y3IzKSApCi0gICAgICAgICAgICBmaS0+c3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX3BhZV9wZ2Rp cl9hYm92ZV80Z2IpOwotICAgICAgICBzd2l0Y2ggKCBkLT5ndWVzdF90eXBlICkKLSAgICAgICAg ewotICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfcHY6Ci0gICAgICAgICAgICBmaS0+c3VibWFwIHw9 ICgxVSA8PCBYRU5GRUFUX21tdV9wdF91cGRhdGVfcHJlc2VydmVfYWQpIHwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaGlnaG1lbV9hc3Npc3QpIHwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfZ250dGFiX21hcF9hdmFpbF9iaXRzKTsK LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfcHZoOgotICAgICAg ICAgICAgZmktPnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9odm1fc2FmZV9wdmNsb2NrKSB8Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX3N1cGVydmlzb3JfbW9kZV9r ZXJuZWwpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaHZtX2Nh bGxiYWNrX3ZlY3Rvcik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBndWVzdF90 eXBlX2h2bToKLSAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfaHZtX3Nh ZmVfcHZjbG9jaykgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9o dm1fY2FsbGJhY2tfdmVjdG9yKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBY RU5GRUFUX2h2bV9waXJxcyk7Ci0gICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0jZW5kaWYK LSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0g ICAgfQotICAgIHJldHVybiAwOwotfQotCiAvKgogICogU2ltcGxlIGh5cGVyY2FsbHMuCiAgKi8K QEAgLTMzOSwxNCArMjk4LDQ3IEBAIERPKHhlbl92ZXJzaW9uKShpbnQgY21kLCBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICBjYXNlIFhFTlZFUl9nZXRfZmVhdHVyZXM6CiAg ICAgewogICAgICAgICB4ZW5fZmVhdHVyZV9pbmZvX3QgZmk7Ci0gICAgICAgIGludCByYzsKKyAg ICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsKIAogICAgICAgICBpZiAo IGNvcHlfZnJvbV9ndWVzdCgmZmksIGFyZywgMSkgKQogICAgICAgICAgICAgcmV0dXJuIC1FRkFV TFQ7CiAKLSAgICAgICAgcmMgPSBnZXRfZmVhdHVyZXMoY3VycmVudC0+ZG9tYWluLCAmZmkpOwot ICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgc3dpdGNo ICggZmkuc3VibWFwX2lkeCApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAg ICAgZmkuc3VibWFwID0gKDFVIDw8IFhFTkZFQVRfbWVtb3J5X29wX3Zub2RlX3N1cHBvcnRlZCk7 CisgICAgICAgICAgICBpZiAoIFZNX0FTU0lTVChkLCBwYWVfZXh0ZW5kZWRfY3IzKSApCisgICAg ICAgICAgICAgICAgZmkuc3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX3BhZV9wZ2Rpcl9hYm92ZV80 Z2IpOworICAgICAgICAgICAgaWYgKCBwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQorICAgICAg ICAgICAgICAgIGZpLnN1Ym1hcCB8PSAKKyAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZF QVRfd3JpdGFibGVfcGFnZV90YWJsZXMpIHwKKyAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhF TkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApOworICAgICAgICAgICAgaWYgKCBpc19oYXJk d2FyZV9kb21haW4oZCkgKQorICAgICAgICAgICAgICAgIGZpLnN1Ym1hcCB8PSAxVSA8PCBYRU5G RUFUX2RvbTA7CisjaWZkZWYgQ09ORklHX1g4NgorICAgICAgICAgICAgc3dpdGNoICggZC0+Z3Vl c3RfdHlwZSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfcHY6 CisgICAgICAgICAgICAgICAgZmkuc3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX21tdV9wdF91cGRh dGVfcHJlc2VydmVfYWQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhF TkZFQVRfaGlnaG1lbV9hc3Npc3QpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFV IDw8IFhFTkZFQVRfZ250dGFiX21hcF9hdmFpbF9iaXRzKTsKKyAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9wdmg6CisgICAgICAgICAgICAgICAgZmku c3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX2h2bV9zYWZlX3B2Y2xvY2spIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfc3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCkg fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9odm1fY2FsbGJh Y2tfdmVjdG9yKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZ3Vl c3RfdHlwZV9odm06CisgICAgICAgICAgICAgICAgZmkuc3VibWFwIHw9ICgxVSA8PCBYRU5GRUFU X2h2bV9zYWZlX3B2Y2xvY2spIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8 IFhFTkZFQVRfaHZtX2NhbGxiYWNrX3ZlY3RvcikgfAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMVUgPDwgWEVORkVBVF9odm1fcGlycXMpOworICAgICAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs dDoKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgICAgICB9CiAKICAgICAgICAgaWYg KCBfX2NvcHlfdG9fZ3Vlc3QoYXJnLCAmZmksIDEpICkKICAgICAgICAgICAgIHJldHVybiAtRUZB VUxUOwpAQCAtMzg5LDEyMiArMzgxLDYgQEAgRE8oeGVuX3ZlcnNpb24pKGludCBjbWQsIFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgIHJldHVybiAtRU5PU1lTOwogfQogCi0v KiBDb21wdXRlZCBieSBjYXBhYmlsaXRpZXNfY2FjaGVfaW5pdC4gKi8KLXN0YXRpYyB4ZW5fY2Fw YWJpbGl0aWVzX2luZm9fdCBfX3JlYWRfbW9zdGx5IGNhY2hlZF9jYXA7Ci1zdGF0aWMgdW5zaWdu ZWQgaW50IF9fcmVhZF9tb3N0bHkgY2FjaGVkX2NhcF9sZW47Ci0KLS8qCi0gKiBTaW1pbGFyIHRv IEhZUEVSVklTT1JfeGVuX3ZlcnNpb24gYnV0IHdpdGggYSBzYW5lIGludGVyZmFjZQotICogKGhh cyBhIGxlbmd0aCwgb25lIGNhbiBwcm9iZSBmb3IgdGhlIGxlbmd0aCkgYW5kIHdpdGggb25lIGxl c3Mgc3ViLW9wczoKLSAqIG1pc3NpbmcgWEVOVkVSX2NvbXBpbGVfaW5mby4KLSAqLwotRE8odmVy c2lvbl9vcCkodW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBh cmcsCi0gICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGVuKQotewotICAgIHVuaW9uIHsKLSAg ICAgICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgdmFsOwotICAgICAgICB4ZW5fZmVhdHVyZV9pbmZv X3QgZmk7Ci0gICAgfSB1ID0ge307Ci0gICAgdW5zaWduZWQgaW50IHN6ID0gMDsKLSAgICBjb25z dCB2b2lkICpwdHIgPSBOVUxMOwotICAgIGludCByYyA9IHhzbV92ZXJzaW9uX29wKFhTTV9PVEhF UiwgY21kKTsKLQotICAgIGlmICggcmMgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICAvKgot ICAgICAqIFRoZSBIWVBFUlZJU09SX3hlbl92ZXJzaW9uIHN1Yi1vcHMgZGlmZmVyIGluIHRoYXQg c29tZSByZXR1cm4gdGhlIHZhbHVlLAotICAgICAqIGFuZCBzb21lIGNvcHkgaXQgb24gYmFjayBv biBhcmd1bWVudC4gV2UgZm9sbG93IHRoZSBzYW1lIHJ1bGUgZm9yIGFsbAotICAgICAqIHN1Yi1v cHM6IHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG9yIG5lZ2F0aXZlIGVycm5v IG9uCi0gICAgICogZmFpbHVyZSwgYW5kIGFsd2F5cyBjb3B5IHRoZSByZXN1bHQgaW4gYXJnLiBZ ZWV5IHNhbml0eSEKLSAgICAgKi8KLSAgICBzd2l0Y2ggKCBjbWQgKQotICAgIHsKLSAgICBjYXNl IFhFTl9WRVJTSU9OX3ZlcnNpb246Ci0gICAgICAgIHN6ID0gc2l6ZW9mKHhlbl92ZXJzaW9uX29w X3ZhbF90KTsKLSAgICAgICAgdS52YWwgPSAoeGVuX21ham9yX3ZlcnNpb24oKSA8PCAxNikgfCB4 ZW5fbWlub3JfdmVyc2lvbigpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgWEVOX1ZFUlNJ T05fZXh0cmF2ZXJzaW9uOgotICAgICAgICBzeiA9IHN0cmxlbih4ZW5fZXh0cmFfdmVyc2lvbigp KSArIDE7Ci0gICAgICAgIHB0ciA9IHhlbl9leHRyYV92ZXJzaW9uKCk7Ci0gICAgICAgIGJyZWFr OwotCi0gICAgY2FzZSBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXM6Ci0gICAgICAgIHN6ID0gY2Fj aGVkX2NhcF9sZW47Ci0gICAgICAgIHB0ciA9IGNhY2hlZF9jYXA7Ci0gICAgICAgIGJyZWFrOwot Ci0gICAgY2FzZSBYRU5fVkVSU0lPTl9jaGFuZ2VzZXQ6Ci0gICAgICAgIHN6ID0gc3RybGVuKHhl bl9jaGFuZ2VzZXQoKSkgKyAxOwotICAgICAgICBwdHIgPSB4ZW5fY2hhbmdlc2V0KCk7Ci0gICAg ICAgIGJyZWFrOwotCi0gICAgY2FzZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgot ICAgICAgICBzeiA9IHNpemVvZih4ZW5fdmVyc2lvbl9vcF92YWxfdCk7Ci0gICAgICAgIHUudmFs ID0gSFlQRVJWSVNPUl9WSVJUX1NUQVJUOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgWEVO X1ZFUlNJT05fZ2V0X2ZlYXR1cmVzOgotICAgICAgICBzeiA9IHNpemVvZih4ZW5fZmVhdHVyZV9p bmZvX3QpOwotCi0gICAgICAgIGlmICggZ3Vlc3RfaGFuZGxlX2lzX251bGwoYXJnKSApCi0gICAg ICAgICAgICBicmVhazsKLQotICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmdS5maSwgYXJn LCAxKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKLSAgICAgICAgICAg IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIHJjID0gZ2V0X2ZlYXR1cmVzKGN1cnJlbnQtPmRv bWFpbiwgJnUuZmkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgWEVOX1ZFUlNJT05fcGFn ZXNpemU6Ci0gICAgICAgIHN6ID0gc2l6ZW9mKHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKLSAgICAg ICAgdS52YWwgPSBQQUdFX1NJWkU7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBYRU5fVkVS U0lPTl9ndWVzdF9oYW5kbGU6Ci0gICAgICAgIHN6ID0gQVJSQVlfU0laRShjdXJyZW50LT5kb21h aW4tPmhhbmRsZSk7Ci0gICAgICAgIHB0ciA9IGN1cnJlbnQtPmRvbWFpbi0+aGFuZGxlOwotICAg ICAgICBicmVhazsKLQotICAgIGNhc2UgWEVOX1ZFUlNJT05fY29tbWFuZGxpbmU6Ci0gICAgICAg IHN6ID0gc3RybGVuKHNhdmVkX2NtZGxpbmUpICsgMTsKLSAgICAgICAgcHRyID0gc2F2ZWRfY21k bGluZTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBkZWZhdWx0OgotICAgICAgICByYyA9IC1FTk9T WVM7Ci0gICAgfQotCi0gICAgaWYgKCByYyApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIC8q Ci0gICAgICogVGhpcyBoeXBlcmNhbGwgYWxzbyBhbGxvd3MgdGhlIGNsaWVudCB0byBwcm9iZS4g SWYgaXQgcHJvdmlkZXMKLSAgICAgKiBhIE5VTEwgYXJnIHdlIHdpbGwgcmV0dXJuIHRoZSBzaXpl IG9mIHRoZSBzcGFjZSBpdCBoYXMgdG8KLSAgICAgKiBhbGxvY2F0ZSBmb3IgdGhlIHNwZWNpZmlj IHN1Yi1vcC4KLSAgICAgKi8KLSAgICBBU1NFUlQoc3opOwotICAgIGlmICggZ3Vlc3RfaGFuZGxl X2lzX251bGwoYXJnKSApCi0gICAgICAgIHJldHVybiBzejsKLQotICAgIGlmICggIXJjICkKLSAg ICB7Ci0gICAgICAgIHVuc2lnbmVkIGludCBieXRlcyA9IG1pbihzeiwgbGVuKTsKLQotICAgICAg ICBpZiAoIGNvcHlfdG9fZ3Vlc3QoYXJnLCBwdHIgPyA6ICZ1LCBieXRlcykgKQotICAgICAgICAg ICAgcmMgPSAtRUZBVUxUOwotCi0gICAgICAgIC8qIFdlIHJldHVybiBsZW4gKHRydW5jYXRlKSB3 b3J0aCBvZiBkYXRhIGV2ZW4gaWYgd2UgZmFpbC4gKi8KLSAgICAgICAgaWYgKCAhcmMgJiYgc3og PiBsZW4gKQotICAgICAgICAgICAgcmMgPSAtRU5PQlVGUzsKLSAgICB9Ci0KLSAgICByZXR1cm4g cmMgPT0gMCA/IHN6IDogcmM7Ci19Ci0KIERPKG5taV9vcCkodW5zaWduZWQgaW50IGNtZCwgWEVO X0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiB7CiAgICAgc3RydWN0IHhlbm5taV9jYWxs YmFjayBjYjsKQEAgLTU0MiwyMCArNDE4LDYgQEAgRE8obmlfaHlwZXJjYWxsKSh2b2lkKQogICAg IHJldHVybiAtRU5PU1lTOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBjYXBhYmlsaXRpZXNfY2Fj aGVfaW5pdCh2b2lkKQotewotICAgIC8qCi0gICAgICogUHJlLXBvcHVsYXRlIHRoZSBjYWNoZSBz byB3ZSBkbyBub3QgaGF2ZSB0byB3b3JyeSBhYm91dAotICAgICAqIHNpbXVsdGFuZW91cyBpbnZv Y2F0aW9ucyBvbiBzYWZlX3N0cmNhdCBieSBndWVzdHMgYW5kIHRoZSBjYWNoZQotICAgICAqIGRh dGEgYmVjb21pbmcgZ2FyYmFnZS4KLSAgICAgKi8KLSAgICBhcmNoX2dldF94ZW5fY2FwcygmY2Fj aGVkX2NhcCk7Ci0gICAgY2FjaGVkX2NhcF9sZW4gPSBzdHJsZW4oY2FjaGVkX2NhcCkgKyAxOwot Ci0gICAgcmV0dXJuIDA7Ci19Ci1fX2luaXRjYWxsKGNhcGFiaWxpdGllc19jYWNoZV9pbml0KTsK LQogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgK aW5kZXggNWY5MDcxOC4uODcwYmMzYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2Fy Y2gtYXJtLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgKQEAgLTEyOCw4ICsx MjgsNiBAQAogICogICAgKiBWQ1BVT1BfcmVnaXN0ZXJfdmNwdV9pbmZvCiAgKiAgICAqIFZDUFVP UF9yZWdpc3Rlcl9ydW5zdGF0ZV9tZW1vcnlfYXJlYQogICoKLSAqICBIWVBFUlZJU09SX3ZlcnNp b25fb3AKLSAqICAgQWxsIGdlbmVyaWMgc3ViLW9wZXJhdGlvbnMKICAqCiAgKiBPdGhlciBub3Rl cyBvbiB0aGUgQVJNIEFCSToKICAqCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvdmVy c2lvbi5oIGIveGVuL2luY2x1ZGUvcHVibGljL3ZlcnNpb24uaAppbmRleCA3ODk2MWM5Li4yNGE1 ODJmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvdmVyc2lvbi5oCisrKyBiL3hlbi9p bmNsdWRlL3B1YmxpYy92ZXJzaW9uLmgKQEAgLTMwLDE2ICszMCw3IEBACiAKICNpbmNsdWRlICJ4 ZW4uaCIKIAotLyoKLSAqIFRoZXJlIGFyZSB0d28gaHlwZXJjYWxscyBtZW50aW9uZWQgaW4gaGVy ZS4gVGhlIFhFTlZFUl8gYXJlIGZvcgotICogSFlQRVJDQUxMX3hlbl92ZXJzaW9uICgxNyksIHdo aWxlIFZFUlNJT05fIGFyZSBmb3IgdGhlCi0gKiBIWVBFUkNBTExfdmVyc2lvbl9vcCAoNDEpLgot ICoKLSAqIFRoZSBzdWJvcHMgYXJlIHZlcnkgc2ltaWxhciBleGNlcHQgdGhhdCB0aGUgbGF0ZXIg aHlwZXJjYWxsIGhhcyBhCi0gKiBzYW5lIGludGVyZmFjZS4KLSAqCi0gKiBOQi4gQWxsIFhFTlZF Ul8gb3BzIHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIGV4Y2VwdCBYRU5WRVJfe3ZlcnNpb24scGFn ZXNpemV9Ci0gKi8KKy8qIE5CLiBBbGwgb3BzIHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIGV4Y2Vw dCBYRU5WRVJfe3ZlcnNpb24scGFnZXNpemV9ICovCiAKIC8qIGFyZyA9PSBOVUxMOyByZXR1cm5z IG1ham9yOm1pbm9yICgxNjoxNikuICovCiAjZGVmaW5lIFhFTlZFUl92ZXJzaW9uICAgICAgMApA QCAtOTYsNjcgKzg3LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgeGVuX2ZlYXR1cmVfaW5mbyB4ZW5fZmVh dHVyZV9pbmZvX3Q7CiAjZGVmaW5lIFhFTlZFUl9jb21tYW5kbGluZSA5CiB0eXBlZGVmIGNoYXIg eGVuX2NvbW1hbmRsaW5lX3RbMTAyNF07CiAKLS8qCi0gKiBUaGUgSFlQRVJDQUxMX3ZlcnNpb25f b3AgaGFzIGEgc2V0IG9mIHN1Yi1vcHMgd2hpY2ggbWlycm9yIHRoZQotICogc3ViLW9wcyBvZiBI WVBFUkNBTExfeGVuX3ZlcnNpb24uIEhvd2V2ZXIgdGhpcyBoeXBlcmNhbGwgZGlmZmVycwotICog cmFkaWNhbGx5IGZyb20gdGhlIGZvcm1lcjoKLSAqICAtIEl0IHJldHVybnMgdGhlIGFtb3VudCBv ZiBieXRlcyBjb3BpZWQsIG9yCi0gKiAgLSBJdCB3aWxsIHJldHVybiAtWEVOX0VQRVJNIGlmIHRo ZSBzdWItb3AgaXMgZGVuaWVkIHRvIHRoZSBndWVzdC4KLSAqICAgIChBbGJlaXQgWEVOX1ZFUlNJ T05fdmVyc2lvbiwgWEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVycywgYW5kCi0gKiAgICBY RU5fVkVSU0lPTl9nZXRfZmVhdHVyZXMgd2lsbCBhbHdheXMgcmV0dXJuIGFuIHZhbHVlIGFzIGd1 ZXN0IGNhbm5vdAotICogICAgc3Vydml2ZSB3aXRob3V0IHRoaXMgaW5mb3JtYXRpb24pLgotICog IC0gSXQgd2lsbCByZXR1cm4gdGhlIHJlcXVlc3RlZCBkYXRhIGluIGFyZy4KLSAqICAtIEl0IHJl cXVpcmVzIGFuIHRoaXJkIGFyZ3VtZW50IChsZW4pIGZvciB0aGUgbGVuZ3RoIG9mIHRoZQotICog ICAgYXJnLiBOYXR1cmFsbHkgdGhlIGFyZyBoYXMgdG8gZml0IHRoZSByZXF1ZXN0ZWQgZGF0YSBv dGhlcndpc2UKLSAqICAgIC1YRU5fRU5PQlVGUyBpcyByZXR1cm5lZC4KLSAqCi0gKiBJdCBhbHNv IG9mZmVycyBhIG1lY2hhbmlzbSB0byBwcm9iZSBmb3IgdGhlIGFtb3VudCBvZiBieXRlcyBhbgot ICogc3ViLW9wIHdpbGwgcmVxdWlyZS4gSGF2aW5nIHRoZSBhcmcgaGF2ZSBhIE5VTEwgaGFuZGxl IHdpbGwKLSAqIHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVlc3RlZCBmb3IgdGhlIG9w ZXJhdGlvbi4KLSAqIE9yIGEgbmVnYXRpdmUgdmFsdWUgaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVy ZWQuCi0gKi8KLQotdHlwZWRlZiB1aW50NjRfdCB4ZW5fdmVyc2lvbl9vcF92YWxfdDsKLURFRklO RV9YRU5fR1VFU1RfSEFORExFKHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKLQotLyoKLSAqIGFyZyA9 PSB4ZW5fdmVyc2lvbl9vcF92YWxfdC4gRW5jb2RlZCBhcyBtYWpvcjptaW5vciAoMzEuLjE2OjE1 Li4wKSwgd2hpbGUKLSAqIDYzLi4zMiBhcmUgemVyby4KLSAqLwotI2RlZmluZSBYRU5fVkVSU0lP Tl92ZXJzaW9uICAgICAgICAgICAgIDAKLQotLyogYXJnID09IGNoYXJbXS4gQ29udGFpbnMgTlVM IHRlcm1pbmF0ZWQgdXRmLTggc3RyaW5nLiAqLwotI2RlZmluZSBYRU5fVkVSU0lPTl9leHRyYXZl cnNpb24gICAgICAgIDEKLQotLyogYXJnID09IGNoYXJbXS4gQ29udGFpbnMgTlVMIHRlcm1pbmF0 ZWQgdXRmLTggc3RyaW5nLiAqLwotI2RlZmluZSBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMgICAg ICAgIDMKLQotLyogYXJnID09IGNoYXJbXS4gQ29udGFpbnMgTlVMIHRlcm1pbmF0ZWQgdXRmLTgg c3RyaW5nLiAqLwotI2RlZmluZSBYRU5fVkVSU0lPTl9jaGFuZ2VzZXQgICAgICAgICAgIDQKLQot LyogYXJnID09IHhlbl92ZXJzaW9uX29wX3ZhbF90LiAqLwotI2RlZmluZSBYRU5fVkVSU0lPTl9w bGF0Zm9ybV9wYXJhbWV0ZXJzIDUKLQotLyoKLSAqIGFyZyA9IHhlbl9mZWF0dXJlX2luZm9fdCAt IHNoYXJlcyB0aGUgc2FtZSBzdHJ1Y3R1cmUKLSAqIGFzIHRoZSBYRU5WRVJfZ2V0X2ZlYXR1cmVz LgotICovCi0jZGVmaW5lIFhFTl9WRVJTSU9OX2dldF9mZWF0dXJlcyAgICAgICAgNgotCi0vKiBh cmcgPT0geGVuX3ZlcnNpb25fb3BfdmFsX3QuICovCi0jZGVmaW5lIFhFTl9WRVJTSU9OX3BhZ2Vz aXplICAgICAgICAgICAgNwotCi0vKgotICogYXJnID09IHZvaWQuCi0gKgotICogVGhlIHRvb2xz dGFjayBmaWxscyBpdCBvdXQgZm9yIGd1ZXN0IGNvbnN1bXB0aW9uLiBJdCBpcyBpbnRlbmRlZCB0 byBob2xkCi0gKiB0aGUgVVVJRCBvZiB0aGUgZ3Vlc3QuCi0gKi8KLSNkZWZpbmUgWEVOX1ZFUlNJ T05fZ3Vlc3RfaGFuZGxlICAgICAgICA4Ci0KLS8qIGFyZyA9IGNoYXJbXS4gQ29udGFpbnMgTlVM IHRlcm1pbmF0ZWQgdXRmLTggc3RyaW5nLiAqLwotI2RlZmluZSBYRU5fVkVSU0lPTl9jb21tYW5k bGluZSAgICAgICAgIDkKLQogI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19WRVJTSU9OX0hfXyAqLwog CiAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oIGIveGVuL2luY2x1ZGUv cHVibGljL3hlbi5oCmluZGV4IDk3YTVhZTUuLjYxNzAyMGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3B1YmxpYy94ZW4uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKQEAgLTExNSw3 ICsxMTUsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdWxvbmdfdCk7CiAjZGVmaW5l IF9fSFlQRVJWSVNPUl90bWVtX29wICAgICAgICAgICAgICAzOAogI2RlZmluZSBfX0hZUEVSVklT T1JfeGNfcmVzZXJ2ZWRfb3AgICAgICAgMzkgLyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAqLwog I2RlZmluZSBfX0hZUEVSVklTT1JfeGVucG11X29wICAgICAgICAgICAgNDAKLSNkZWZpbmUgX19I WVBFUlZJU09SX3ZlcnNpb25fb3AgICAgICAgICAgIDQxIC8qIHN1cGVyc2VkZXMgeGVuX3ZlcnNp b24gKDE3KSAqLwogCiAvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgaHlwZXJjYWxsIGRlZmluaXRp b25zLiAqLwogI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8wICAgICAgICAgICAgICAgNDgKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaCBiL3hlbi9pbmNsdWRlL3hlbi9o eXBlcmNhbGwuaAppbmRleCBlOGQyYjgxLi4wYzhhZTBlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vaHlwZXJjYWxsLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCkBAIC0x NDcsMTAgKzE0Nyw2IEBAIGRvX3hlbm9wcm9mX29wKGludCBvcCwgWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh2b2lkKSBhcmcpOwogZXh0ZXJuIGxvbmcKIGRvX3hlbnBtdV9vcCh1bnNpZ25lZCBpbnQg b3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX3BtdV9wYXJhbXNfdCkgYXJnKTsKIAotZXh0 ZXJuIGxvbmcKLWRvX3ZlcnNpb25fb3AodW5zaWduZWQgaW50IGNtZCwKLSAgICBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGFyZywgdW5zaWduZWQgaW50IGxlbik7Ci0KICNpZmRlZiBDT05G SUdfQ09NUEFUCiAKIGV4dGVybiBpbnQKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS9kdW1t eS5oIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKaW5kZXggZTVkYWQzNS4uYWJiZTI4MiAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKKysrIGIveGVuL2luY2x1ZGUveHNtL2R1 bW15LmgKQEAgLTc1MSwyNCArNzUxLDMgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV94ZW5f dmVyc2lvbiAoWFNNX0RFRkFVTFRfQVJHIHVpbnQzMl90IG9wKQogICAgICAgICByZXR1cm4geHNt X2RlZmF1bHRfYWN0aW9uKFhTTV9QUklWLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOwogICAgIH0K IH0KLQotc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV92ZXJzaW9uX29wIChYU01fREVGQVVMVF9B UkcgdWludDMyX3Qgb3ApCi17Ci0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX09USEVSKTsKLSAg ICBzd2l0Y2ggKCBvcCApCi0gICAgewotICAgIGNhc2UgWEVOX1ZFUlNJT05fdmVyc2lvbjoKLSAg ICBjYXNlIFhFTl9WRVJTSU9OX3BsYXRmb3JtX3BhcmFtZXRlcnM6Ci0gICAgY2FzZSBYRU5fVkVS U0lPTl9nZXRfZmVhdHVyZXM6Ci0gICAgICAgIC8qIFRoZXNlIE1VU1QgYWx3YXlzIGJlIGFjY2Vz c2libGUgdG8gYW55IGd1ZXN0IGJ5IGRlZmF1bHQuICovCi0gICAgICAgIHJldHVybiAwOwotICAg IGNhc2UgWEVOX1ZFUlNJT05fZXh0cmF2ZXJzaW9uOgotICAgIGNhc2UgWEVOX1ZFUlNJT05fY2Fw YWJpbGl0aWVzOgotICAgIGNhc2UgWEVOX1ZFUlNJT05fcGFnZXNpemU6Ci0gICAgY2FzZSBYRU5f VkVSU0lPTl9ndWVzdF9oYW5kbGU6Ci0gICAgICAgIC8qIFRoZXNlIGNhbiBiZSBhY2Nlc3NpYmxl IHRvIGEgZ3Vlc3QuICovCi0gICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0hP T0ssIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu IHhzbV9kZWZhdWx0X2FjdGlvbihYU01fUFJJViwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKLSAg ICB9Ci19CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94 c20veHNtLmgKaW5kZXggM2NmZDk1My4uOGVkOGVlNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv eHNtL3hzbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTk3LDcgKzE5Nyw2IEBA IHN0cnVjdCB4c21fb3BlcmF0aW9ucyB7CiAgICAgaW50ICgqcG11X29wKSAoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgaW50IG9wKTsKICNlbmRpZgogICAgIGludCAoKnhlbl92ZXJzaW9uKSAo dWludDMyX3QgY21kKTsKLSAgICBpbnQgKCp2ZXJzaW9uX29wKSAodWludDMyX3QgY21kKTsKIH07 CiAKICNpZmRlZiBDT05GSUdfWFNNCkBAIC03NDEsMTEgKzc0MCw2IEBAIHN0YXRpYyBpbmxpbmUg aW50IHhzbV94ZW5fdmVyc2lvbiAoeHNtX2RlZmF1bHRfdCBkZWYsIHVpbnQzMl90IG9wKQogICAg IHJldHVybiB4c21fb3BzLT54ZW5fdmVyc2lvbihvcCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50 IHhzbV92ZXJzaW9uX29wICh4c21fZGVmYXVsdF90IGRlZiwgdWludDMyX3Qgb3ApCi17Ci0gICAg cmV0dXJuIHhzbV9vcHMtPnZlcnNpb25fb3Aob3ApOwotfQotCiAjZW5kaWYgLyogWFNNX05PX1dS QVBQRVJTICovCiAKICNpZmRlZiBDT05GSUdfTVVMVElCT09UCmRpZmYgLS1naXQgYS94ZW4veHNt L2R1bW15LmMgYi94ZW4veHNtL2R1bW15LmMKaW5kZXggNzc2ZGQwOS4uOTc5MWFkNCAxMDA2NDQK LS0tIGEveGVuL3hzbS9kdW1teS5jCisrKyBiL3hlbi94c20vZHVtbXkuYwpAQCAtMTYzLDUgKzE2 Myw0IEBAIHZvaWQgeHNtX2ZpeHVwX29wcyAoc3RydWN0IHhzbV9vcGVyYXRpb25zICpvcHMpCiAg ICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBwbXVfb3ApOwogI2VuZGlmCiAgICAgc2V0X3Rv X2R1bW15X2lmX251bGwob3BzLCB4ZW5fdmVyc2lvbik7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251 bGwob3BzLCB2ZXJzaW9uX29wKTsKIH0KZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svaG9va3Mu YyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCAyMzM2MTJlLi42Mjk1NzY4IDEwMDY0NAot LS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCkBA IC0xNjY0LDQwICsxNjY0LDYgQEAgc3RhdGljIGludCBmbGFza194ZW5fdmVyc2lvbiAodWludDMy X3Qgb3ApCiAgICAgfQogfQogCi1zdGF0aWMgaW50IGZsYXNrX3ZlcnNpb25fb3AgKHVpbnQzMl90 IG9wKQotewotICAgIHUzMiBkc2lkID0gZG9tYWluX3NpZChjdXJyZW50LT5kb21haW4pOwotCi0g ICAgc3dpdGNoICggb3AgKQotICAgIHsKLSAgICBjYXNlIFhFTl9WRVJTSU9OX3ZlcnNpb246Ci0g ICAgY2FzZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgotICAgIGNhc2UgWEVOX1ZF UlNJT05fZ2V0X2ZlYXR1cmVzOgotICAgICAgICAvKiBUaGVzZSBNVVNUIGFsd2F5cyBiZSBhY2Nl c3NpYmxlIHRvIGFueSBndWVzdCBieSBkZWZhdWx0LiAqLwotICAgICAgICByZXR1cm4gMDsKLSAg ICBjYXNlIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbjoKLSAgICAgICAgcmV0dXJuIGF2Y19oYXNf cGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWRVJTSU9OX19FWFRSQVZFUlNJT04sIE5VTEwpOwotICAgIGNhc2Ug WEVOX1ZFUlNJT05fY2FwYWJpbGl0aWVzOgotICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRz aWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZFUlNJT05fX0NBUEFCSUxJVElFUywgTlVMTCk7Ci0gICAgY2FzZSBYRU5fVkVS U0lPTl9jaGFuZ2VzZXQ6Ci0gICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNpZCwgU0VDSU5J VFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg VkVSU0lPTl9fQ0hBTkdFU0VULCBOVUxMKTsKLSAgICBjYXNlIFhFTl9WRVJTSU9OX3BhZ2VzaXpl OgotICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUND TEFTU19WRVJTSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX1BBR0VT SVpFLCBOVUxMKTsKLSAgICBjYXNlIFhFTl9WRVJTSU9OX2d1ZXN0X2hhbmRsZToKLSAgICAgICAg cmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lP TiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX19HVUVTVF9IQU5ETEUsIE5V TEwpOwotICAgIGNhc2UgWEVOX1ZFUlNJT05fY29tbWFuZGxpbmU6Ci0gICAgICAgIHJldHVybiBh dmNfaGFzX3Blcm0oZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTl9fQ09NTUFORExJTkUsIE5VTEwpOwotICAg IGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAtRVBFUk07Ci0gICAgfQotfQotCiBsb25nIGRvX2Zs YXNrX29wKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3ApOwogaW50 IGNvbXBhdF9mbGFza19vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSB1X2ZsYXNr X29wKTsKIApAQCAtMTgzNyw3ICsxODAzLDYgQEAgc3RhdGljIHN0cnVjdCB4c21fb3BlcmF0aW9u cyBmbGFza19vcHMgPSB7CiAgICAgLnBtdV9vcCA9IGZsYXNrX3BtdV9vcCwKICNlbmRpZgogICAg IC54ZW5fdmVyc2lvbiA9IGZsYXNrX3hlbl92ZXJzaW9uLAotICAgIC52ZXJzaW9uX29wID0gZmxh c2tfdmVyc2lvbl9vcCwKIH07CiAKIHN0YXRpYyBfX2luaXQgdm9pZCBmbGFza19pbml0KHZvaWQp CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94 c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDBlYmI1NmIuLmJkYjdiODkgMTAw NjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94 c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBAIC01MDAsMTQgKzUwMCwxMiBAQCBjbGFz cyBzZWN1cml0eQogICAgIGRlbF9vY29udGV4dAogfQogCi0jIENsYXNzIHZlcnNpb24gaXMgdXNl ZCB0byBkZXNjcmliZSB0aGUgWEVOVkVSXyBhbmQgVkVSU0lPTiBoeXBlcmNhbGwuCisjIENsYXNz IHZlcnNpb24gaXMgdXNlZCB0byBkZXNjcmliZSB0aGUgWEVOVkVSXyBoeXBlcmNhbGwuCiAjIEFs bW9zdCBhbGwgc3ViLW9wcyBhcmUgZGVzY3JpYmVkIGhlcmUgLSBpbiB0aGUgZGVmYXVsdCBjYXNl IGFsbCBvZiB0aGVtIHNob3VsZAotIyBiZSBhbGxvd2VkIGV4Y2VwdCB0aGUgWEVOVkVSX2NvbW1h bmRsaW5lLCBWRVJTSU9OX2NvbW1hbmRsaW5lLCBhbmQKLSMgVkVSU0lPTl9jaGFuZ2VzZXQuCisj IGJlIGFsbG93ZWQgZXhjZXB0IHRoZSBYRU5WRVJfY29tbWFuZGxpbmUuCiAjCiAjIFRoZSBvbmVz IHRoYXQgYXJlIG9taXR0ZWQgYXJlIFhFTlZFUl92ZXJzaW9uLCBYRU5WRVJfcGxhdGZvcm1fcGFy YW1ldGVycywKLSMgWEVOVkVSX2dldF9mZWF0dXJlcywgWEVOX1ZFUlNJT05fdmVyc2lvbiwgWEVO X1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVycywKLSMgYW5kIFhFTl9WRVJTSU9OX2dldF9mZWF0 dXJlcyAtIGFzIHRoZXkgTVVTVCBhbHdheXMgYmUgcmV0dXJuZWQgdG8gYSBndWVzdC4KKyMgYW5k IFhFTlZFUl9nZXRfZmVhdHVyZXMgIC0gYXMgdGhleSBNVVNUIGFsd2F5cyBiZSByZXR1cm5lZCB0 byBhIGd1ZXN0LgogIwogY2xhc3MgdmVyc2lvbgogewpAQCAtNTI1LDE3ICs1MjMsNCBAQCBjbGFz cyB2ZXJzaW9uCiAgICAgeGVuX2d1ZXN0X2hhbmRsZQogIyBYZW4gY29tbWFuZCBsaW5lLgogICAg IHhlbl9jb21tYW5kbGluZQotIyAtLS0gVkVSU0lPTiBoeXBlcmNhbGwgLS0tCi0jIEV4dHJhIGlu Zm9ybWF0aW9ucyAoLXVuc3RhYmxlKS4KLSAgICBleHRyYXZlcnNpb24KLSMgU3VjaCBhcyAieGVu LTMuMC14ODZfNjQgeGVuLTMuMC14ODZfMzJwIGh2bS0zLjAteDg2XzMyIGh2bS0zLjAteDg2XzMy cCBodm0tMy4wLXg4Nl82NCIuCi0gICAgY2FwYWJpbGl0aWVzCi0jIFNvdXJjZSBjb2RlIGNoYW5n ZXNldC4KLSAgICBjaGFuZ2VzZXQKLSMgUGFnZSBzaXplIHRoZSBoeXBlcnZpc29yIHVzZXMuCi0g ICAgcGFnZXNpemUKLSMgQW4gdmFsdWUgdGhhdCB0aGUgY29udHJvbCBzdGFjayBjYW4gY2hvb3Nl LgotICAgIGd1ZXN0X2hhbmRsZQotIyBYZW4gY29tbWFuZCBsaW5lLgotICAgIGNvbW1hbmRsaW5l CiB9Ci0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==