From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v5 02/28] libxc/libxl/python/xenstat/ocaml: Use new XEN_VERSION hypercall Date: Thu, 24 Mar 2016 16:00:14 -0400 Message-ID: <1458849640-22588-3-git-send-email-konrad.wilk@oracle.com> References: <1458849640-22588-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ajBRZ-0007RQ-Rc for xen-devel@lists.xenproject.org; Thu, 24 Mar 2016 20:01:22 +0000 In-Reply-To: <1458849640-22588-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, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Wei Liu , Stefano Stabellini , George Dunlap , Konrad Rzeszutek Wilk , Ian Jackson , Julien Grall , David Scott List-Id: xen-devel@lists.xenproject.org V2UgY2hhbmdlIHRoZSB4ZW5fdmVyc2lvbiBsaWJ4YyBjb2RlIHRvIHVzZSB0aGUgbmV3IGh5cGVy Y2FsbC4KV2hpY2ggb2YgY291cnNlIG1lYW5zIGV2ZXJ5IHVzZXIgaW4gdGhlIGNvZGUgYmFzZSBo YXMgdG8KYmUgY2hhbmdlZCBvdmVyLgoKSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGUg eGNfdmVyc2lvbl9vcCBoYXMgYSBkaWZmZXJlbnQKcmV0dXJuIHNlbWFudGljIHRoYW4gdGhlIHBy ZXZpb3VzIG9uZS4gSXQgcmV0dXJucyBuZWdhdGl2ZQp2YWx1ZXMgb24gZXJyb3IgKGxpa2UgdGhl IG9sZCBvbmUpLCBidXQgaXQgYWxzbyByZXR1cm5zCmFuIHBvc2l0aXZlIHZhbHVlIG9uIHN1Y2Nl c3MgKHVubGlrZSB0aGUgb2xkIG9uZSkuIFRoZSBwb3NpdGl2ZQp2YWx1ZSBpcyB0aGUgbnVtYmVy IG9mIGJ5dGVzIGNvcGllZCBpbi4KCk5vdGUgdGhhdCBib3RoIE9jYW1sIGFuZCB4ZW5zdGF0IHVz ZSB0YWJzIGluc3RlYWQgb2YgZm91cgpzcGFjZXMgc28gdGhleSBsb29rIHF1aXRlIG9kZC4KClNp Z25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNv bT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ ClRlc3RlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4gW2Zv ciB0aGUgT2NhbWwgc3R1YnNdCkFja2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFw QGV1LmNpdHJpeC5jb20+IFt4ZW5jdHggYml0c10KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFi ZWxsaW5pQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0u Y29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IERhdmlkIFNjb3R0IDxk YXZlQHJlY29pbC5vcmc+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJp eC5jb20+Cgp2NDogTmV3IHBhdGNoLgogLSBVc2UgeGNfdmVyc2lvbl9vcF92YWxfdCBpbnN0ZWFk IG9mIHVpbnQzMiBvciBzdWNoCiAtICBNYWtlIHN1cmUgdG8gY2hlY2sgcmV0IDwgMCBpbnN0ZWFk IG9mIHJldCAoYXMgaXQgcmV0dXJucyB0aGUgc2l6ZSkgLQogICAgaW4gT2NhbWwgY29kZS4gRm91 bmQgYnkgQW5kcmV3LgogLSBVcGRhdGUgY29tbWVudCBmb3IgeGNfdmVyc2lvbiB0byBtZW50aW9u IHRoZSByZXR1cm4gdGhlIHNpemUKdjU6IFdlaSdzIHJldmlldywgcy9WRVJTSU9OX09QL1ZFUlNJ T04vCi0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgICAgfCAzMiArKysr KysrKysrKysrLQogdG9vbHMvbGlieGMveGNfY29yZS5jICAgICAgICAgICAgICAgICAgfCAzNSAr KysrKysrLS0tLS0tLS0KIHRvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMgICAgICAgICAgICAgIHwg MTIgKysrKystCiB0b29scy9saWJ4Yy94Y19kb21haW4uYyAgICAgICAgICAgICAgICB8ICAzICst CiB0b29scy9saWJ4Yy94Y19wcml2YXRlLmMgICAgICAgICAgICAgICB8IDUzICsrKystLS0tLS0t LS0tLS0tLS0tLS0tCiB0b29scy9saWJ4Yy94Y19wcml2YXRlLmggICAgICAgICAgICAgICB8ICA3 ICstLQogdG9vbHMvbGlieGMveGNfcmVzdW1lLmMgICAgICAgICAgICAgICAgfCAgMyArLQogdG9v bHMvbGlieGMveGNfc3Jfc2F2ZS5jICAgICAgICAgICAgICAgfCAgOSArKy0tCiB0b29scy9saWJ4 Yy94Z19zYXZlX3Jlc3RvcmUuaCAgICAgICAgICB8ICA2ICsrLQogdG9vbHMvbGlieGwvbGlieGwu YyAgICAgICAgICAgICAgICAgICAgfCA3OSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYyAgICB8IDM5ICsrKysrKyst LS0tLS0tLS0tCiB0b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMgICAgICB8IDMwICsr KysrKystLS0tLS0KIHRvb2xzL3hlbnN0YXQvbGlieGVuc3RhdC9zcmMveGVuc3RhdC5jIHwgMTIg KysrLS0tCiB0b29scy94ZW50cmFjZS94ZW5jdHguYyAgICAgICAgICAgICAgICB8ICAzICstCiAx NCBmaWxlcyBjaGFuZ2VkLCAxNzcgaW5zZXJ0aW9ucygrKSwgMTQ2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5j bHVkZS94ZW5jdHJsLmgKaW5kZXggMTUwZDcyNy4uYTllNGRjMSAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJs LmgKQEAgLTE0NzcsNyArMTQ3NywzNyBAQCBpbnQgeGNfdGJ1Zl9zZXRfZXZ0X21hc2soeGNfaW50 ZXJmYWNlICp4Y2gsIHVpbnQzMl90IG1hc2spOwogaW50IHhjX2RvbWN0bCh4Y19pbnRlcmZhY2Ug KnhjaCwgc3RydWN0IHhlbl9kb21jdGwgKmRvbWN0bCk7CiBpbnQgeGNfc3lzY3RsKHhjX2ludGVy ZmFjZSAqeGNoLCBzdHJ1Y3QgeGVuX3N5c2N0bCAqc3lzY3RsKTsKIAotaW50IHhjX3ZlcnNpb24o eGNfaW50ZXJmYWNlICp4Y2gsIGludCBjbWQsIHZvaWQgKmFyZyk7CisvKioKKyAqIFRoaXMgZnVu Y3Rpb24gcmV0dXJucyB0aGUgc2l6ZSBvZiBidWZmZXIgdG8gYmUgYWxsb2NhdGVkIGZvcgorICog dGhlIGNtZC4gVGhlIGNtZCBhcmUgWEVOX1ZFUlNJT05fKi4KKyAqLworc3NpemVfdCB4Y192ZXJz aW9uX2xlbih4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IGNtZCk7CisKKy8qKgorICog VGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIHZlcnNpb25f b3AgaHlwZXJjYWxsLgorICogVGhlIGxlbiBpcyB0aGUgc2l6ZSBvZiB0aGUgYXJnIGJ1ZmZlci4g SWYgYXJnIGlzIE5VTEwsIHdpbGwgbm90CisgKiBwZXJmb3JtIGh5cGVyY2FsbCAtIGluc3RlYWQg d2lsbCBqdXN0IHJldHVybiB0aGUgc2l6ZSBvZiBhcmcKKyAqIGJ1ZmZlciB0aGF0IGlzIG5lZWRl ZC4KKyAqCisgKiBOb3RlIHRoYXQgcHJpb3IgdG8gWGVuIDQuNyB0aGlzIHdvdWxkIHJldHVybiAw IGZvciBzdWNjZXNzIGFuZAorICogbmVnYXRpdmUgdmFsdWUgKC0xKSBmb3IgZXJyb3IgKHdpdGgg dGhlIGVycm9yIGluIGVycm5vKS4gSW4gWGVuIDQuNworICogYW5kIGxhdGVyIGZvciBzdWNjZXNz IGl0IHdpbGwgcmV0dXJuIGFuIHBvc2l0aXZlIHZhbHVlIHdoaWNoIGlzIHRoZQorICogbnVtYmVy IG9mIGJ5dGVzIGNvcGllZCBpbiBhcmcuCisgKgorICogSXQgY2FuIGFsc28gcmV0dXJuIC0xIHdp dGggdmFyaW91cyBlcnJubyB2YWx1ZXM6CisgKiAgLSBFUEVSTSAtIG5vdCBwZXJtaXR0ZWQuCisg KiAgLSBFTk9CVUZTIC0gdGhlIGxlbiB3YXMgdG8gc2hvcnQsIG91dHB1dCBpbiBhcmcgdHJ1bmNh dGVkLgorICogIC0gRU5PU1lTIC0gbm90IGltcGxlbWVudGVkLgorICoKKyAqIEBwYXJtIHhjaCBh IGhhbmRsZSB0byBhbiBvcGVuIGh5cGVydmlzb3IgaW50ZXJmYWNlCisgKiBAcGFybSBjbWQgWEVO X1ZFUlNJT05fKiB2YWx1ZQorICogQHBhcmFtIGFyZyBQb2ludGVyIHRvIHhlbl92ZXJzaW9uX29w X2J1Zl90IG9yIHhlbl92ZXJzaW9uX29wX3ZhbF90CisgKiBAcGFyYW0gbGVuIFNpemUgb2YgYXJn CisgKiBAcmV0dXJuIHNpemUgb2YgYnl0ZXMgY29waWVkIGluIGFyZyBvbiBzdWNjZXNzLCAtMSBv biBmYWlsdXJlIChhbmQKKyAqIGVycm5vIHdpbGwgY29udGFpbiB0aGUgZXJyb3IpCisgKgorICov CitpbnQgeGNfdmVyc2lvbih4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IGNtZCwgdm9p ZCAqYXJnLCBzaXplX3QgbGVuKTsKIAogaW50IHhjX2ZsYXNrX29wKHhjX2ludGVyZmFjZSAqeGNo LCB4ZW5fZmxhc2tfb3BfdCAqb3ApOwogCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19jb3Jl LmMgYi90b29scy9saWJ4Yy94Y19jb3JlLmMKaW5kZXggZDc5MjU2Ni4uY2ZlYmE2YiAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGMveGNfY29yZS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX2NvcmUuYwpA QCAtMjcwLDQyICsyNzAsNDMgQEAgZWxmbm90ZV9maWxsX3hlbl92ZXJzaW9uKHhjX2ludGVyZmFj ZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICp4ZW5fdmVyc2lvbikKIHsKICAgICBp bnQgcmM7CisgICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgdmFsID0gMDsKICAgICBtZW1zZXQoeGVu X3ZlcnNpb24sIDAsIHNpemVvZigqeGVuX3ZlcnNpb24pKTsKIAotICAgIHJjID0geGNfdmVyc2lv bih4Y2gsIFhFTlZFUl92ZXJzaW9uLCBOVUxMKTsKKyAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBY RU5fVkVSU0lPTl92ZXJzaW9uLCAmdmFsLCBzaXplb2YodmFsKSk7CiAgICAgaWYgKCByYyA8IDAg KQogICAgICAgICByZXR1cm4gcmM7Ci0gICAgeGVuX3ZlcnNpb24tPm1ham9yX3ZlcnNpb24gPSBy YyA+PiAxNjsKLSAgICB4ZW5fdmVyc2lvbi0+bWlub3JfdmVyc2lvbiA9IHJjICYgKCgxIDw8IDE2 KSAtIDEpOworICAgIHhlbl92ZXJzaW9uLT5tYWpvcl92ZXJzaW9uID0gdmFsID4+IDE2OworICAg IHhlbl92ZXJzaW9uLT5taW5vcl92ZXJzaW9uID0gdmFsICYgKCgxIDw8IDE2KSAtIDEpOwogCi0g ICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2V4dHJhdmVyc2lvbiwKLSAgICAgICAgICAg ICAgICAgICAgJnhlbl92ZXJzaW9uLT5leHRyYV92ZXJzaW9uKTsKKyAgICByYyA9IHhjX3ZlcnNp b24oeGNoLCBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgIHhl bl92ZXJzaW9uLT5leHRyYV92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVu X3ZlcnNpb24tPmV4dHJhX3ZlcnNpb24pKTsKICAgICBpZiAoIHJjIDwgMCApCiAgICAgICAgIHJl dHVybiByYzsKIAotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTlZFUl9jb21waWxlX2luZm8s Ci0gICAgICAgICAgICAgICAgICAgICZ4ZW5fdmVyc2lvbi0+Y29tcGlsZV9pbmZvKTsKKyAgICBy YyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMsCisgICAgICAgICAg ICAgICAgICAgIHhlbl92ZXJzaW9uLT5jYXBhYmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAg IHNpemVvZih4ZW5fdmVyc2lvbi0+Y2FwYWJpbGl0aWVzKSk7CiAgICAgaWYgKCByYyA8IDAgKQog ICAgICAgICByZXR1cm4gcmM7CiAKLSAgICByYyA9IHhjX3ZlcnNpb24oeGNoLAotICAgICAgICAg ICAgICAgICAgICBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmeGVuX3ZlcnNpb24tPmNhcGFiaWxpdGll cyk7CisgICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJT05fY2hhbmdlc2V0LCB4ZW5f dmVyc2lvbi0+Y2hhbmdlc2V0LAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX3ZlcnNp b24tPmNoYW5nZXNldCkpOwogICAgIGlmICggcmMgPCAwICkKICAgICAgICAgcmV0dXJuIHJjOwog Ci0gICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NoYW5nZXNldCwgJnhlbl92ZXJzaW9u LT5jaGFuZ2VzZXQpOworICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX3BsYXRm b3JtX3BhcmFtZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICZ4ZW5fdmVyc2lvbi0+cGxhdGZv cm1fcGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl92ZXJzaW9uLT5w bGF0Zm9ybV9wYXJhbWV0ZXJzKSk7CiAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICByZXR1cm4g cmM7CiAKLSAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfcGxhdGZvcm1fcGFyYW1ldGVy cywKLSAgICAgICAgICAgICAgICAgICAgJnhlbl92ZXJzaW9uLT5wbGF0Zm9ybV9wYXJhbWV0ZXJz KTsKKyAgICB2YWwgPSAwOworICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX3Bh Z2VzaXplLCAmdmFsLCBzaXplb2YodmFsKSk7CiAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICBy ZXR1cm4gcmM7Ci0KLSAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfcGFnZXNpemUsIE5V TEwpOwotICAgIGlmICggcmMgPCAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotICAgIHhlbl92ZXJz aW9uLT5wYWdlc2l6ZSA9IHJjOworICAgIHhlbl92ZXJzaW9uLT5wYWdlc2l6ZSA9IHZhbDsKIAog ICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyBi L3Rvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMKaW5kZXggNzkxMDQxYi4uYmJmZjcyZSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYworKysgYi90b29scy9saWJ4Yy94Y19kb21f Ym9vdC5jCkBAIC0xMTIsMTEgKzExMiwxOSBAQCBpbnQgeGNfZG9tX2NvbXBhdF9jaGVjayhzdHJ1 Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAKIGludCB4Y19kb21fYm9vdF94ZW5faW5pdChzdHJ1Y3Qg eGNfZG9tX2ltYWdlICpkb20sIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkKQogewor ICAgIHhlbl92ZXJzaW9uX29wX3ZhbF90IHZhbCA9IDA7CisKKyAgICBpZiAoIHhjX3ZlcnNpb24o eGNoLCBYRU5fVkVSU0lPTl92ZXJzaW9uLCAmdmFsLCBzaXplb2YodmFsKSkgPCAwICkKKyAgICB7 CisgICAgICAgIHhjX2RvbV9wYW5pYyh4Y2gsIFhDX0lOVEVSTkFMX0VSUk9SLCAiY2FuJ3QgZ2V0 IFhlbiB2ZXJzaW9uISIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGRvbS0+eGVu X3ZlcnNpb24gPSB2YWw7CiAgICAgZG9tLT54Y2ggPSB4Y2g7CiAgICAgZG9tLT5ndWVzdF9kb21p ZCA9IGRvbWlkOwogCi0gICAgZG9tLT54ZW5fdmVyc2lvbiA9IHhjX3ZlcnNpb24oeGNoLCBYRU5W RVJfdmVyc2lvbiwgTlVMTCk7Ci0gICAgaWYgKCB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NhcGFi aWxpdGllcywgJmRvbS0+eGVuX2NhcHMpIDwgMCApCisgICAgaWYgKCB4Y192ZXJzaW9uKHhjaCwg WEVOX1ZFUlNJT05fY2FwYWJpbGl0aWVzLCBkb20tPnhlbl9jYXBzLAorICAgICAgICAgICAgICAg ICAgICBzaXplb2YoZG9tLT54ZW5fY2FwcykpIDwgMCApCiAgICAgewogICAgICAgICB4Y19kb21f cGFuaWMoeGNoLCBYQ19JTlRFUk5BTF9FUlJPUiwgImNhbid0IGdldCB4ZW4gY2FwYWJpbGl0aWVz Iik7CiAgICAgICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFp bi5jIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKaW5kZXggMDUwMjE2ZS4uOWViZDFkNiAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKKysrIGIvdG9vbHMvbGlieGMveGNfZG9t YWluLmMKQEAgLTIwODQsNyArMjA4NCw4IEBAIGludCB4Y19tYXBfZG9tYWluX21lbWluZm8oeGNf aW50ZXJmYWNlICp4Y2gsIGludCBkb21pZCwKICAgICBfZGkuZ3Vlc3Rfd2lkdGggPSBtaW5mby0+ Z3Vlc3Rfd2lkdGg7CiAKICAgICAvKiBHZXQgcGFnZSB0YWJsZSBsZXZlbHMgKHNlZSBnZXRfcGxh dGZvcm1faW5mbygpIGluIHhnX3NhdmVfcmVzdG9yZS5oICovCi0gICAgaWYgKCB4Y192ZXJzaW9u KHhjaCwgWEVOVkVSX2NhcGFiaWxpdGllcywgJnhlbl9jYXBzKSApCisgICAgaWYgKCB4Y192ZXJz aW9uKHhjaCwgWEVOX1ZFUlNJT05fY2FwYWJpbGl0aWVzLCB4ZW5fY2FwcywKKyAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKHhlbl9jYXBzKSkgPCAwICkKICAgICB7CiAgICAgICAgIFBFUlJPUigi Q291bGQgbm90IGdldCBYZW4gY2FwYWJpbGl0aWVzIChmb3IgcGFnZSB0YWJsZSBsZXZlbHMpIik7 CiAgICAgICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUu YyBiL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUuYwppbmRleCBjNDFlNDMzLi42MzFhZDkxIDEwMDY0 NAotLS0gYS90b29scy9saWJ4Yy94Y19wcml2YXRlLmMKKysrIGIvdG9vbHMvbGlieGMveGNfcHJp dmF0ZS5jCkBAIC00NTcsNTggKzQ1NywyMyBAQCBpbnQgeGNfc3lzY3RsKHhjX2ludGVyZmFjZSAq eGNoLCBzdHJ1Y3QgeGVuX3N5c2N0bCAqc3lzY3RsKQogICAgIHJldHVybiBkb19zeXNjdGwoeGNo LCBzeXNjdGwpOwogfQogCi1pbnQgeGNfdmVyc2lvbih4Y19pbnRlcmZhY2UgKnhjaCwgaW50IGNt ZCwgdm9pZCAqYXJnKQorc3NpemVfdCB4Y192ZXJzaW9uX2xlbih4Y19pbnRlcmZhY2UgKnhjaCwg dW5zaWduZWQgaW50IGNtZCkKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UoYXJnLCAw LCBYQ19IWVBFUkNBTExfQlVGRkVSX0JPVU5DRV9PVVQpOyAvKiBTaXplIHVua25vd24gdW50aWwg Y21kIGRlY29kZWQgKi8KLSAgICBzaXplX3Qgc3o7Ci0gICAgaW50IHJjOwotCi0gICAgc3dpdGNo ICggY21kICkKLSAgICB7Ci0gICAgY2FzZSBYRU5WRVJfdmVyc2lvbjoKLSAgICAgICAgc3ogPSAw OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFhFTlZFUl9leHRyYXZlcnNpb246Ci0gICAgICAg IHN6ID0gc2l6ZW9mKHhlbl9leHRyYXZlcnNpb25fdCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh c2UgWEVOVkVSX2NvbXBpbGVfaW5mbzoKLSAgICAgICAgc3ogPSBzaXplb2YoeGVuX2NvbXBpbGVf aW5mb190KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBYRU5WRVJfY2FwYWJpbGl0aWVzOgot ICAgICAgICBzeiA9IHNpemVvZih4ZW5fY2FwYWJpbGl0aWVzX2luZm9fdCk7Ci0gICAgICAgIGJy ZWFrOwotICAgIGNhc2UgWEVOVkVSX2NoYW5nZXNldDoKLSAgICAgICAgc3ogPSBzaXplb2YoeGVu X2NoYW5nZXNldF9pbmZvX3QpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFhFTlZFUl9wbGF0 Zm9ybV9wYXJhbWV0ZXJzOgotICAgICAgICBzeiA9IHNpemVvZih4ZW5fcGxhdGZvcm1fcGFyYW1l dGVyc190KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBYRU5WRVJfZ2V0X2ZlYXR1cmVzOgot ICAgICAgICBzeiA9IHNpemVvZih4ZW5fZmVhdHVyZV9pbmZvX3QpOwotICAgICAgICBicmVhazsK LSAgICBjYXNlIFhFTlZFUl9wYWdlc2l6ZToKLSAgICAgICAgc3ogPSAwOwotICAgICAgICBicmVh azsKLSAgICBjYXNlIFhFTlZFUl9ndWVzdF9oYW5kbGU6Ci0gICAgICAgIHN6ID0gc2l6ZW9mKHhl bl9kb21haW5faGFuZGxlX3QpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFhFTlZFUl9jb21t YW5kbGluZToKLSAgICAgICAgc3ogPSBzaXplb2YoeGVuX2NvbW1hbmRsaW5lX3QpOwotICAgICAg ICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBFUlJPUigieGNfdmVyc2lvbjogdW5rbm93 biBjb21tYW5kICVkXG4iLCBjbWQpOwotICAgICAgICByZXR1cm4gLUVJTlZBTDsKLSAgICB9Cisg ICAgcmV0dXJuIGRvX3ZlcnNpb25fb3AoeGNoLCBjbWQsIE5VTEwsIDApOworfQogCi0gICAgSFlQ RVJDQUxMX0JPVU5DRV9TRVRfU0laRShhcmcsIHN6KTsKK2ludCB4Y192ZXJzaW9uKHhjX2ludGVy ZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcsIHNpemVfdCBzeikKK3sKKyAg ICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UoYXJnLCBzeiwgWENfSFlQRVJDQUxMX0JVRkZFUl9C T1VOQ0VfT1VUKTsKKyAgICBpbnQgcmM7CiAKLSAgICBpZiAoIChzeiAhPSAwKSAmJiB4Y19oeXBl cmNhbGxfYm91bmNlX3ByZSh4Y2gsIGFyZykgKQorICAgIGlmICggeGNfaHlwZXJjYWxsX2JvdW5j ZV9wcmUoeGNoLCBhcmcpICkKICAgICB7CiAgICAgICAgIFBFUlJPUigiQ291bGQgbm90IGJvdW5j ZSBidWZmZXIgZm9yIHZlcnNpb24gaHlwZXJjYWxsIik7CiAgICAgICAgIHJldHVybiAtRU5PTUVN OwogICAgIH0KIAotICAgIHJjID0gZG9feGVuX3ZlcnNpb24oeGNoLCBjbWQsIEhZUEVSQ0FMTF9C VUZGRVIoYXJnKSk7CisgICAgcmMgPSBkb192ZXJzaW9uX29wKHhjaCwgY21kLCBIWVBFUkNBTExf QlVGRkVSKGFyZyksIHN6KTsKIAogICAgIGlmICggc3ogIT0gMCApCiAgICAgICAgIHhjX2h5cGVy Y2FsbF9ib3VuY2VfcG9zdCh4Y2gsIGFyZyk7CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19w cml2YXRlLmggYi90b29scy9saWJ4Yy94Y19wcml2YXRlLmgKaW5kZXggYWE4ZGFmMS4uNWJlOGZk ZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfcHJpdmF0ZS5oCisrKyBiL3Rvb2xzL2xpYnhj L3hjX3ByaXZhdGUuaApAQCAtMjE0LDExICsyMTQsMTIgQEAgdm9pZCB4Y19faHlwZXJjYWxsX2J1 ZmZlcl9jYWNoZV9yZWxlYXNlKHhjX2ludGVyZmFjZSAqeGNoKTsKICAqIEh5cGVyY2FsbCBpbnRl cmZhY2VzLgogICovCiAKLXN0YXRpYyBpbmxpbmUgaW50IGRvX3hlbl92ZXJzaW9uKHhjX2ludGVy ZmFjZSAqeGNoLCBpbnQgY21kLCB4Y19oeXBlcmNhbGxfYnVmZmVyX3QgKmRlc3QpCitzdGF0aWMg aW5saW5lIGxvbmcgZG9fdmVyc2lvbl9vcCh4Y19pbnRlcmZhY2UgKnhjaCwgaW50IGNtZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfdCAqZGVz dCwgc3NpemVfdCBsZW4pCiB7CiAgICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSX0FSR1VNRU5U KGRlc3QpOwotICAgIHJldHVybiB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfeGVu X3ZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgIGNtZCwgSFlQRVJDQUxMX0JVRkZFUl9BU19B UkcoZGVzdCkpOworICAgIHJldHVybiB4ZW5jYWxsMyh4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1Jf dmVyc2lvbl9vcCwKKyAgICAgICAgICAgICAgICAgICAgY21kLCBIWVBFUkNBTExfQlVGRkVSX0FT X0FSRyhkZXN0KSwgbGVuKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgZG9fcGh5c2Rldl9vcCh4 Y19pbnRlcmZhY2UgKnhjaCwgaW50IGNtZCwgdm9pZCAqb3AsIHNpemVfdCBsZW4pCmRpZmYgLS1n aXQgYS90b29scy9saWJ4Yy94Y19yZXN1bWUuYyBiL3Rvb2xzL2xpYnhjL3hjX3Jlc3VtZS5jCmlu ZGV4IGU2OTJiODEuLjViZjRjZjAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3Jlc3VtZS5j CisrKyBiL3Rvb2xzL2xpYnhjL3hjX3Jlc3VtZS5jCkBAIC01Niw3ICs1Niw4IEBAIHN0YXRpYyBp bnQgbW9kaWZ5X3JldHVybmNvZGUoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkKQog ICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgLyogSFZNIGd1ZXN0cyBoYXZlIGhvc3Qg YWRkcmVzcyB3aWR0aC4gKi8KLSAgICAgICAgaWYgKCB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2Nh cGFiaWxpdGllcywgJmNhcHMpICE9IDAgKQorICAgICAgICBpZiAoIHhjX3ZlcnNpb24oeGNoLCBY RU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMsIGNhcHMsCisgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoY2FwcykpIDwgMCApCiAgICAgICAgIHsKICAgICAgICAgICAgIFBFUlJPUigiQ291bGQg bm90IGdldCBYZW4gY2FwYWJpbGl0aWVzIik7CiAgICAgICAgICAgICByZXR1cm4gLTE7CmRpZmYg LS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9zYXZlLmMgYi90b29scy9saWJ4Yy94Y19zcl9zYXZl LmMKaW5kZXggMzg4YWU3Zi4uN2YxODE4YyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3Jf c2F2ZS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYwpAQCAtOSw3ICs5LDcgQEAKIHN0 YXRpYyBpbnQgd3JpdGVfaGVhZGVycyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LCB1aW50MTZf dCBndWVzdF90eXBlKQogewogICAgIHhjX2ludGVyZmFjZSAqeGNoID0gY3R4LT54Y2g7Ci0gICAg aW50MzJfdCB4ZW5fdmVyc2lvbiA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfdmVyc2lvbiwgTlVM TCk7CisgICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgeGVuX3ZlcnNpb247CiAgICAgc3RydWN0IHhj X3NyX2loZHIgaWhkciA9CiAgICAgICAgIHsKICAgICAgICAgICAgIC5tYXJrZXIgID0gSUhEUl9N QVJLRVIsCkBAIC0yMSwxNSArMjEsMTYgQEAgc3RhdGljIGludCB3cml0ZV9oZWFkZXJzKHN0cnVj dCB4Y19zcl9jb250ZXh0ICpjdHgsIHVpbnQxNl90IGd1ZXN0X3R5cGUpCiAgICAgICAgIHsKICAg ICAgICAgICAgIC50eXBlICAgICAgID0gZ3Vlc3RfdHlwZSwKICAgICAgICAgICAgIC5wYWdlX3No aWZ0ID0gWENfUEFHRV9TSElGVCwKLSAgICAgICAgICAgIC54ZW5fbWFqb3IgID0gKHhlbl92ZXJz aW9uID4+IDE2KSAmIDB4ZmZmZiwKLSAgICAgICAgICAgIC54ZW5fbWlub3IgID0gKHhlbl92ZXJz aW9uKSAgICAgICAmIDB4ZmZmZiwKICAgICAgICAgfTsKIAotICAgIGlmICggeGVuX3ZlcnNpb24g PCAwICkKKyAgICBpZiAoIHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl92ZXJzaW9uLCAmeGVu X3ZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fdmVyc2lvbikpIDwgMCAp CiAgICAgewogICAgICAgICBQRVJST1IoIlVuYWJsZSB0byBvYnRhaW4gWGVuIFZlcnNpb24iKTsK ICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKyAgICBkaGRyLnhlbl9tYWpvciA9ICh4ZW5fdmVy c2lvbiA+PiAxNikgJiAweGZmZmY7CisgICAgZGhkci54ZW5fbWlub3IgPSAoeGVuX3ZlcnNpb24p ICAgICAgICYgMHhmZmZmOwogCiAgICAgaWYgKCB3cml0ZV9leGFjdChjdHgtPmZkLCAmaWhkciwg c2l6ZW9mKGloZHIpKSApCiAgICAgewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGdfc2F2ZV9y ZXN0b3JlLmggYi90b29scy9saWJ4Yy94Z19zYXZlX3Jlc3RvcmUuaAppbmRleCAzMDMwODFkLi4w MDc4NzVmIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Z19zYXZlX3Jlc3RvcmUuaAorKysgYi90 b29scy9saWJ4Yy94Z19zYXZlX3Jlc3RvcmUuaApAQCAtNTcsMTAgKzU3LDEyIEBAIHN0YXRpYyBp bmxpbmUgaW50IGdldF9wbGF0Zm9ybV9pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBk b20sCiAgICAgeGVuX2NhcGFiaWxpdGllc19pbmZvX3QgeGVuX2NhcHMgPSAiIjsKICAgICB4ZW5f cGxhdGZvcm1fcGFyYW1ldGVyc190IHhlbl9wYXJhbXM7CiAKLSAgICBpZiAoeGNfdmVyc2lvbih4 Y2gsIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0ZXJzLCAmeGVuX3BhcmFtcykgIT0gMCkKKyAgICBp ZiAoeGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX3BsYXRmb3JtX3BhcmFtZXRlcnMsICZ4ZW5f cGFyYW1zLAorICAgICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fcGFyYW1zKSkgPCAwKQogICAg ICAgICByZXR1cm4gMDsKIAotICAgIGlmICh4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NhcGFiaWxp dGllcywgJnhlbl9jYXBzKSAhPSAwKQorICAgIGlmICh4Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJ T05fY2FwYWJpbGl0aWVzLCB4ZW5fY2FwcywKKyAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVu X2NhcHMpKSA8IDApCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKHhjX21heGltdW1fcmFt X3BhZ2UoeGNoLCBtYXhfbWZuKSkKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMgYi90 b29scy9saWJ4bC9saWJ4bC5jCmluZGV4IDM0NzFjNGMuLjZjM2VjNDAgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuYwpAQCAtNTIxMiw1MCAr NTIxMiw3MyBAQCBsaWJ4bF9udW1haW5mbyAqbGlieGxfZ2V0X251bWFpbmZvKGxpYnhsX2N0eCAq Y3R4LCBpbnQgKm5yKQogICAgIHJldHVybiByZXQ7CiB9CiAKKworc3RhdGljIGludCBsaWJ4bF9f eGNfdmVyc2lvbl93cmFwcGVyKGxpYnhsX19nYyAqZ2MsIHVuc2lnbmVkIGludCBjbWQsIGNoYXIg KmJ1Ziwgc3NpemVfdCBsZW4sIGNoYXIgKipkc3QpCit7CisgICAgaW50IHI7CisKKyAgICByID0g eGNfdmVyc2lvbihDVFgtPnhjaCwgY21kLCBidWYsIGxlbik7CisgICAgaWYgKCByID09IC1FUEVS TSApCisgICAgeworICAgICAgICBidWZbMF0gPSAnXDAnOworICAgIH0KKyAgICBlbHNlIGlmICgg ciA8IDAgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorICAgICpkc3QgPSBsaWJ4 bF9fc3RyZHVwKE5PR0MsIGJ1Zik7CisgICAgcmV0dXJuIDA7Cit9CisKIGNvbnN0IGxpYnhsX3Zl cnNpb25faW5mbyogbGlieGxfZ2V0X3ZlcnNpb25faW5mbyhsaWJ4bF9jdHggKmN0eCkKIHsKICAg ICBHQ19JTklUKGN0eCk7Ci0gICAgdW5pb24gewotICAgICAgICB4ZW5fZXh0cmF2ZXJzaW9uX3Qg eGVuX2V4dHJhOwotICAgICAgICB4ZW5fY29tcGlsZV9pbmZvX3QgeGVuX2NjOwotICAgICAgICB4 ZW5fY2hhbmdlc2V0X2luZm9fdCB4ZW5fY2hnc2V0OwotICAgICAgICB4ZW5fY2FwYWJpbGl0aWVz X2luZm9fdCB4ZW5fY2FwczsKLSAgICAgICAgeGVuX3BsYXRmb3JtX3BhcmFtZXRlcnNfdCBwX3Bh cm1zOwotICAgICAgICB4ZW5fY29tbWFuZGxpbmVfdCB4ZW5fY29tbWFuZGxpbmU7Ci0gICAgfSB1 OwotICAgIGxvbmcgeGVuX3ZlcnNpb247CisgICAgY2hhciAqYnVmOworICAgIHhlbl92ZXJzaW9u X29wX3ZhbF90IHZhbCA9IDA7CiAgICAgbGlieGxfdmVyc2lvbl9pbmZvICppbmZvID0gJmN0eC0+ dmVyc2lvbl9pbmZvOwogCiAgICAgaWYgKGluZm8tPnhlbl92ZXJzaW9uX2V4dHJhICE9IE5VTEwp CiAgICAgICAgIGdvdG8gb3V0OwogCi0gICAgeGVuX3ZlcnNpb24gPSB4Y192ZXJzaW9uKGN0eC0+ eGNoLCBYRU5WRVJfdmVyc2lvbiwgTlVMTCk7Ci0gICAgaW5mby0+eGVuX3ZlcnNpb25fbWFqb3Ig PSB4ZW5fdmVyc2lvbiA+PiAxNjsKLSAgICBpbmZvLT54ZW5fdmVyc2lvbl9taW5vciA9IHhlbl92 ZXJzaW9uICYgMHhGRjsKKyAgICBpZiAoeGNfdmVyc2lvbihDVFgtPnhjaCwgWEVOX1ZFUlNJT05f cGFnZXNpemUsICZ2YWwsIHNpemVvZih2YWwpKSA8IDApCisgICAgICAgIGdvdG8gb3V0OworCisg ICAgaW5mby0+cGFnZXNpemUgPSB2YWw7CisgICAgLyogNEsgYnVmZmVyLiAqLworICAgIGJ1ZiA9 IGxpYnhsX196YWxsb2MoZ2MsIGluZm8tPnBhZ2VzaXplKTsKIAotICAgIHhjX3ZlcnNpb24oY3R4 LT54Y2gsIFhFTlZFUl9leHRyYXZlcnNpb24sICZ1Lnhlbl9leHRyYSk7Ci0gICAgaW5mby0+eGVu X3ZlcnNpb25fZXh0cmEgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2V4dHJhKTsKKyAgICB2 YWwgPSAwOworICAgIGlmICh4Y192ZXJzaW9uKENUWC0+eGNoLCBYRU5fVkVSU0lPTl92ZXJzaW9u LCAmdmFsLCBzaXplb2YodmFsKSkgPCAwKQorICAgICAgICBnb3RvIG91dDsKKyAgICBpbmZvLT54 ZW5fdmVyc2lvbl9tYWpvciA9IHZhbCA+PiAxNjsKKyAgICBpbmZvLT54ZW5fdmVyc2lvbl9taW5v ciA9IHZhbCAmIDB4RkY7CiAKLSAgICB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfY29tcGls ZV9pbmZvLCAmdS54ZW5fY2MpOwotICAgIGluZm8tPmNvbXBpbGVyID0gbGlieGxfX3N0cmR1cChO T0dDLCB1Lnhlbl9jYy5jb21waWxlcik7Ci0gICAgaW5mby0+Y29tcGlsZV9ieSA9IGxpYnhsX19z dHJkdXAoTk9HQywgdS54ZW5fY2MuY29tcGlsZV9ieSk7Ci0gICAgaW5mby0+Y29tcGlsZV9kb21h aW4gPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NjLmNvbXBpbGVfZG9tYWluKTsKLSAgICBp bmZvLT5jb21waWxlX2RhdGUgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NjLmNvbXBpbGVf ZGF0ZSk7CisgICAgaWYgKGxpYnhsX194Y192ZXJzaW9uX3dyYXBwZXIoZ2MsIFhFTl9WRVJTSU9O X2V4dHJhdmVyc2lvbiwgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu Zm8tPnBhZ2VzaXplLCAmaW5mby0+eGVuX3ZlcnNpb25fZXh0cmEpIDwgMCkKKyAgICAgICAgZ290 byBvdXQ7CiAKLSAgICB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAm dS54ZW5fY2Fwcyk7Ci0gICAgaW5mby0+Y2FwYWJpbGl0aWVzID0gbGlieGxfX3N0cmR1cChOT0dD LCB1Lnhlbl9jYXBzKTsKKyAgICBpbmZvLT5jb21waWxlciA9IGxpYnhsX19zdHJkdXAoTk9HQywg IiIpOworICAgIGluZm8tPmNvbXBpbGVfYnkgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsICIiKTsKKyAg ICBpbmZvLT5jb21waWxlX2RvbWFpbiA9IGxpYnhsX19zdHJkdXAoTk9HQywgIiIpOworICAgIGlu Zm8tPmNvbXBpbGVfZGF0ZSA9IGxpYnhsX19zdHJkdXAoTk9HQywgIiIpOwogCi0gICAgeGNfdmVy c2lvbihjdHgtPnhjaCwgWEVOVkVSX2NoYW5nZXNldCwgJnUueGVuX2NoZ3NldCk7Ci0gICAgaW5m by0+Y2hhbmdlc2V0ID0gbGlieGxfX3N0cmR1cChOT0dDLCB1Lnhlbl9jaGdzZXQpOworICAgIGlm IChsaWJ4bF9feGNfdmVyc2lvbl93cmFwcGVyKGdjLCBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMs IGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5wYWdlc2l6ZSwg JmluZm8tPmNhcGFiaWxpdGllcykgPCAwKQorICAgICAgICBnb3RvIG91dDsKIAotICAgIHhjX3Zl cnNpb24oY3R4LT54Y2gsIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0ZXJzLCAmdS5wX3Bhcm1zKTsK LSAgICBpbmZvLT52aXJ0X3N0YXJ0ID0gdS5wX3Bhcm1zLnZpcnRfc3RhcnQ7CisgICAgaWYgKGxp YnhsX194Y192ZXJzaW9uX3dyYXBwZXIoZ2MsIFhFTl9WRVJTSU9OX2NoYW5nZXNldCwgYnVmLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnBhZ2VzaXplLCAmaW5mby0+ Y2hhbmdlc2V0KSA8IDApCisgICAgICAgIGdvdG8gb3V0OwogCi0gICAgaW5mby0+cGFnZXNpemUg PSB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfcGFnZXNpemUsIE5VTEwpOworICAgIHZhbCA9 IDA7CisgICAgaWYgKHhjX3ZlcnNpb24oQ1RYLT54Y2gsIFhFTl9WRVJTSU9OX3BsYXRmb3JtX3Bh cmFtZXRlcnMsICZ2YWwsCisgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZhbCkpIDwgMCkKKyAg ICAgICAgZ290byBvdXQ7CiAKLSAgICB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfY29tbWFu ZGxpbmUsICZ1Lnhlbl9jb21tYW5kbGluZSk7Ci0gICAgaW5mby0+Y29tbWFuZGxpbmUgPSBsaWJ4 bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NvbW1hbmRsaW5lKTsKKyAgICBpbmZvLT52aXJ0X3N0YXJ0 ID0gdmFsOwogCisgICAgKHZvaWQpbGlieGxfX3hjX3ZlcnNpb25fd3JhcHBlcihnYywgWEVOX1ZF UlNJT05fY29tbWFuZGxpbmUsIGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluZm8tPnBhZ2VzaXplLCAmaW5mby0+Y29tbWFuZGxpbmUpOwogIG91dDoKICAgICBHQ19G UkVFOwogICAgIHJldHVybiBpbmZvOwpkaWZmIC0tZ2l0IGEvdG9vbHMvb2NhbWwvbGlicy94Yy94 ZW5jdHJsX3N0dWJzLmMgYi90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYwppbmRl eCA3NDkyOGU5Li40YWM1ZGNlIDEwMDY0NAotLS0gYS90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0 cmxfc3R1YnMuYworKysgYi90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYwpAQCAt ODUzLDIxICs4NTMsMjEgQEAgQ0FNTHByaW0gdmFsdWUgc3R1Yl94Y192ZXJzaW9uX3ZlcnNpb24o dmFsdWUgeGNoKQogCUNBTUxwYXJhbTEoeGNoKTsKIAlDQU1MbG9jYWwxKHJlc3VsdCk7CiAJeGVu X2V4dHJhdmVyc2lvbl90IGV4dHJhOwotCWxvbmcgcGFja2VkOworCXhlbl92ZXJzaW9uX29wX3Zh bF90IHBhY2tlZDsKIAlpbnQgcmV0dmFsOwogCiAJY2FtbF9lbnRlcl9ibG9ja2luZ19zZWN0aW9u KCk7Ci0JcGFja2VkID0geGNfdmVyc2lvbihfSCh4Y2gpLCBYRU5WRVJfdmVyc2lvbiwgTlVMTCk7 CisJcmV0dmFsID0geGNfdmVyc2lvbihfSCh4Y2gpLCBYRU5fVkVSU0lPTl92ZXJzaW9uLCAmcGFj a2VkLCBzaXplb2YocGFja2VkKSk7CiAJY2FtbF9sZWF2ZV9ibG9ja2luZ19zZWN0aW9uKCk7CiAK LQlpZiAocGFja2VkIDwgMCkKKwlpZiAocmV0dmFsIDwgMCkKIAkJZmFpbHdpdGhfeGMoX0goeGNo KSk7CiAKIAljYW1sX2VudGVyX2Jsb2NraW5nX3NlY3Rpb24oKTsKLQlyZXR2YWwgPSB4Y192ZXJz aW9uKF9IKHhjaCksIFhFTlZFUl9leHRyYXZlcnNpb24sICZleHRyYSk7CisJcmV0dmFsID0geGNf dmVyc2lvbihfSCh4Y2gpLCBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb24sICZleHRyYSwgc2l6ZW9m KGV4dHJhKSk7CiAJY2FtbF9sZWF2ZV9ibG9ja2luZ19zZWN0aW9uKCk7CiAKLQlpZiAocmV0dmFs KQorCWlmIChyZXR2YWwgPCAwKQogCQlmYWlsd2l0aF94YyhfSCh4Y2gpKTsKIAogCXJlc3VsdCA9 IGNhbWxfYWxsb2NfdHVwbGUoMyk7CkBAIC04ODQsMzcgKzg4NCwyOCBAQCBDQU1McHJpbSB2YWx1 ZSBzdHViX3hjX3ZlcnNpb25fY29tcGlsZV9pbmZvKHZhbHVlIHhjaCkKIHsKIAlDQU1McGFyYW0x KHhjaCk7CiAJQ0FNTGxvY2FsMShyZXN1bHQpOwotCXhlbl9jb21waWxlX2luZm9fdCBjaTsKLQlp bnQgcmV0dmFsOwotCi0JY2FtbF9lbnRlcl9ibG9ja2luZ19zZWN0aW9uKCk7Ci0JcmV0dmFsID0g eGNfdmVyc2lvbihfSCh4Y2gpLCBYRU5WRVJfY29tcGlsZV9pbmZvLCAmY2kpOwotCWNhbWxfbGVh dmVfYmxvY2tpbmdfc2VjdGlvbigpOwotCi0JaWYgKHJldHZhbCkKLQkJZmFpbHdpdGhfeGMoX0go eGNoKSk7CiAKIAlyZXN1bHQgPSBjYW1sX2FsbG9jX3R1cGxlKDQpOwogCi0JU3RvcmVfZmllbGQo cmVzdWx0LCAwLCBjYW1sX2NvcHlfc3RyaW5nKGNpLmNvbXBpbGVyKSk7Ci0JU3RvcmVfZmllbGQo cmVzdWx0LCAxLCBjYW1sX2NvcHlfc3RyaW5nKGNpLmNvbXBpbGVfYnkpKTsKLQlTdG9yZV9maWVs ZChyZXN1bHQsIDIsIGNhbWxfY29weV9zdHJpbmcoY2kuY29tcGlsZV9kb21haW4pKTsKLQlTdG9y ZV9maWVsZChyZXN1bHQsIDMsIGNhbWxfY29weV9zdHJpbmcoY2kuY29tcGlsZV9kYXRlKSk7CisJ U3RvcmVfZmllbGQocmVzdWx0LCAwLCBjYW1sX2NvcHlfc3RyaW5nKCIiKSk7CisJU3RvcmVfZmll bGQocmVzdWx0LCAxLCBjYW1sX2NvcHlfc3RyaW5nKCIiKSk7CisJU3RvcmVfZmllbGQocmVzdWx0 LCAyLCBjYW1sX2NvcHlfc3RyaW5nKCIiKSk7CisJU3RvcmVfZmllbGQocmVzdWx0LCAzLCBjYW1s X2NvcHlfc3RyaW5nKCIiKSk7CiAKIAlDQU1McmV0dXJuKHJlc3VsdCk7CiB9CiAKIAotc3RhdGlj IHZhbHVlIHhjX3ZlcnNpb25fc2luZ2xlX3N0cmluZyh2YWx1ZSB4Y2gsIGludCBjb2RlLCB2b2lk ICppbmZvKQorc3RhdGljIHZhbHVlIHhjX3ZlcnNpb25fc2luZ2xlX3N0cmluZyh2YWx1ZSB4Y2gs IGludCBjb2RlLCB2b2lkICppbmZvLCBzc2l6ZV90IGxlbikKIHsKIAlDQU1McGFyYW0xKHhjaCk7 CiAJaW50IHJldHZhbDsKIAogCWNhbWxfZW50ZXJfYmxvY2tpbmdfc2VjdGlvbigpOwotCXJldHZh bCA9IHhjX3ZlcnNpb24oX0goeGNoKSwgY29kZSwgaW5mbyk7CisJcmV0dmFsID0geGNfdmVyc2lv bihfSCh4Y2gpLCBjb2RlLCBpbmZvLCBsZW4pOwogCWNhbWxfbGVhdmVfYmxvY2tpbmdfc2VjdGlv bigpOwogCi0JaWYgKHJldHZhbCkKKwlpZiAocmV0dmFsIDwgMCkKIAkJZmFpbHdpdGhfeGMoX0go eGNoKSk7CiAKIAlDQU1McmV0dXJuKGNhbWxfY29weV9zdHJpbmcoKGNoYXIgKilpbmZvKSk7CkBA IC05MjUsNyArOTE2LDggQEAgQ0FNTHByaW0gdmFsdWUgc3R1Yl94Y192ZXJzaW9uX2NoYW5nZXNl dCh2YWx1ZSB4Y2gpCiB7CiAJeGVuX2NoYW5nZXNldF9pbmZvX3QgY2k7CiAKLQlyZXR1cm4geGNf dmVyc2lvbl9zaW5nbGVfc3RyaW5nKHhjaCwgWEVOVkVSX2NoYW5nZXNldCwgJmNpKTsKKwlyZXR1 cm4geGNfdmVyc2lvbl9zaW5nbGVfc3RyaW5nKHhjaCwgWEVOX1ZFUlNJT05fY2hhbmdlc2V0LAor CQkJCQkmY2ksIHNpemVvZihjaSkpOwogfQogCiAKQEAgLTkzMyw3ICs5MjUsOCBAQCBDQU1McHJp bSB2YWx1ZSBzdHViX3hjX3ZlcnNpb25fY2FwYWJpbGl0aWVzKHZhbHVlIHhjaCkKIHsKIAl4ZW5f Y2FwYWJpbGl0aWVzX2luZm9fdCBjaTsKIAotCXJldHVybiB4Y192ZXJzaW9uX3NpbmdsZV9zdHJp bmcoeGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmY2kpOworCXJldHVybiB4Y192ZXJzaW9uX3Np bmdsZV9zdHJpbmcoeGNoLCBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMsCisJCQkJCSZjaSwgc2l6 ZW9mKGNpKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94 Yy94Yy5jIGIvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jCmluZGV4IGM0MGE0ZTku LjU4NTRkZGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYwor KysgYi90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMKQEAgLTEyMDQsMzQgKzEyMDQs NDAgQEAgc3RhdGljIFB5T2JqZWN0ICpweXhjX3hlbmluZm8oWGNPYmplY3QgKnNlbGYpCiAgICAg eGVuX2NhcGFiaWxpdGllc19pbmZvX3QgeGVuX2NhcHM7CiAgICAgeGVuX3BsYXRmb3JtX3BhcmFt ZXRlcnNfdCBwX3Bhcm1zOwogICAgIHhlbl9jb21tYW5kbGluZV90IHhlbl9jb21tYW5kbGluZTsK LSAgICBsb25nIHhlbl92ZXJzaW9uOwotICAgIGxvbmcgeGVuX3BhZ2VzaXplOworICAgIHhlbl92 ZXJzaW9uX29wX3ZhbF90IHhlbl92ZXJzaW9uOworICAgIHhlbl92ZXJzaW9uX29wX3ZhbF90IHhl bl9wYWdlc2l6ZTsKICAgICBjaGFyIHN0clsxMjhdOwogCi0gICAgeGVuX3ZlcnNpb24gPSB4Y192 ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX3ZlcnNpb24sIE5VTEwpOwotCi0gICAgaWYg KCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX2V4dHJhdmVyc2lvbiwgJnhlbl9l eHRyYSkgIT0gMCApCisgICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOX1ZF UlNJT05fdmVyc2lvbiwgJnhlbl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICBzaXplb2Yo eGVuX3ZlcnNpb24pKSA8IDAgKQogICAgICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRp b24oc2VsZi0+eGNfaGFuZGxlKTsKIAotICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5k bGUsIFhFTlZFUl9jb21waWxlX2luZm8sICZ4ZW5fY2MpICE9IDAgKQorICAgIGlmICggeGNfdmVy c2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbiwgJnhlbl9leHRy YSwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl9leHRyYSkpIDwgMCApCiAgICAgICAg IHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwogCi0gICAg aWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX2NoYW5nZXNldCwgJnhlbl9j aGdzZXQpICE9IDAgKQorICAgIG1lbXNldCgmeGVuX2NjLCAwLCBzaXplb2YoeGVuX2NjKSk7CisK KyAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9jaGFuZ2Vz ZXQsICZ4ZW5fY2hnc2V0LAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX2NoZ3NldCkp IDwgMCApCiAgICAgICAgIHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19o YW5kbGUpOwogCi0gICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX2Nh cGFiaWxpdGllcywgJnhlbl9jYXBzKSAhPSAwICkKKyAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+ eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMsICZ4ZW5fY2FwcywKKyAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mKHhlbl9jYXBzKSkgPCAwICkKICAgICAgICAgcmV0dXJuIHB5eGNf ZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKLSAgICBpZiAoIHhjX3ZlcnNp b24oc2VsZi0+eGNfaGFuZGxlLCBYRU5WRVJfcGxhdGZvcm1fcGFyYW1ldGVycywgJnBfcGFybXMp ICE9IDAgKQorICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9O X3BsYXRmb3JtX3BhcmFtZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICZwX3Bhcm1zLCBzaXpl b2YocF9wYXJtcykpIDwgMCApCiAgICAgICAgIHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlv bihzZWxmLT54Y19oYW5kbGUpOwogCi0gICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRs ZSwgWEVOVkVSX2NvbW1hbmRsaW5lLCAmeGVuX2NvbW1hbmRsaW5lKSAhPSAwICkKKyAgICBpZiAo IHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9jb21tYW5kbGluZSwKKyAg ICAgICAgICAgICAgICAgICAgJnhlbl9jb21tYW5kbGluZSwgc2l6ZW9mKHhlbl9jb21tYW5kbGlu ZSkpIDwgMCApCiAgICAgICAgIHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54 Y19oYW5kbGUpOwogCiAgICAgc25wcmludGYoc3RyLCBzaXplb2Yoc3RyKSwgInZpcnRfc3RhcnQ9 MHglIlBSSV94ZW5fdWxvbmcsIHBfcGFybXMudmlydF9zdGFydCk7CiAKLSAgICB4ZW5fcGFnZXNp emUgPSB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX3BhZ2VzaXplLCBOVUxMKTsK LSAgICBpZiAoeGVuX3BhZ2VzaXplIDwgMCApCisgICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhj X2hhbmRsZSwgWEVOX1ZFUlNJT05fcGFnZXNpemUsICZ4ZW5fcGFnZXNpemUsCisgICAgICAgICAg ICAgICAgICAgIHNpemVvZih4ZW5fcGFnZXNpemUpKSA8IDAgKQogICAgICAgICByZXR1cm4gcHl4 Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFuZGxlKTsKIAogICAgIHJldHVybiBQeV9C dWlsZFZhbHVlKCJ7czppLHM6aSxzOnMsczpzLHM6aSxzOnMsczpzLHM6cyxzOnMsczpzLHM6cyxz OnN9IiwKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0YXQvbGlieGVuc3RhdC9zcmMveGVuc3RhdC5j IGIvdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94ZW5zdGF0LmMKaW5kZXggMzQ5NWYzZi4u ZWZiNjhiNSAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94ZW5zdGF0 LmMKKysrIGIvdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94ZW5zdGF0LmMKQEAgLTYyMSwy MCArNjIxLDE4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyB4ZW5zdGF0X25ldHdvcmtfdGRyb3AoeGVu c3RhdF9uZXR3b3JrICogbmV0d29yaykKIC8qIENvbGxlY3QgWGVuIHZlcnNpb24gaW5mb3JtYXRp b24gKi8KIHN0YXRpYyBpbnQgeGVuc3RhdF9jb2xsZWN0X3hlbl92ZXJzaW9uKHhlbnN0YXRfbm9k ZSAqIG5vZGUpCiB7Ci0JbG9uZyB2bnVtID0gMDsKKwl4ZW5fdmVyc2lvbl9vcF92YWxfdCB2bnVt ID0gMDsKIAl4ZW5fZXh0cmF2ZXJzaW9uX3QgdmVyc2lvbjsKIAogCS8qIENvbGxlY3QgWGVuIHZl cnNpb24gaW5mb3JtYXRpb24gaWYgbm90IGFscmVhZHkgY29sbGVjdGVkICovCiAJaWYgKG5vZGUt PmhhbmRsZS0+eGVuX3ZlcnNpb25bMF0gPT0gJ1wwJykgewogCQkvKiBHZXQgdGhlIFhlbiB2ZXJz aW9uIG51bWJlciBhbmQgZXh0cmF2ZXJzaW9uIHN0cmluZyAqLwotCQl2bnVtID0geGNfdmVyc2lv bihub2RlLT5oYW5kbGUtPnhjX2hhbmRsZSwKLQkJCVhFTlZFUl92ZXJzaW9uLCBOVUxMKTsKLQot CQlpZiAodm51bSA8IDApCisJCWlmICh4Y192ZXJzaW9uKG5vZGUtPmhhbmRsZS0+eGNfaGFuZGxl LAorCQkJICAgICAgIFhFTl9WRVJTSU9OX3ZlcnNpb24sICZ2bnVtLCBzaXplb2Yodm51bSkpIDwg MCkKIAkJCXJldHVybiAwOwogCi0JCWlmICh4Y192ZXJzaW9uKG5vZGUtPmhhbmRsZS0+eGNfaGFu ZGxlLCBYRU5WRVJfZXh0cmF2ZXJzaW9uLAotCQkJJnZlcnNpb24pIDwgMCkKKwkJaWYgKHhjX3Zl cnNpb24obm9kZS0+aGFuZGxlLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbiwK KwkJCSAgICAgICAmdmVyc2lvbiwgc2l6ZW9mKHZlcnNpb24pKSA8IDApCiAJCQlyZXR1cm4gMDsK IAkJLyogRm9ybWF0IHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFzIGEgc3RyaW5nIGFuZCBzdG9y ZSBpdCAqLwogCQlzbnByaW50Zihub2RlLT5oYW5kbGUtPnhlbl92ZXJzaW9uLCBWRVJTSU9OX1NJ WkUsICIlbGQuJWxkJXMiLApkaWZmIC0tZ2l0IGEvdG9vbHMveGVudHJhY2UveGVuY3R4LmMgYi90 b29scy94ZW50cmFjZS94ZW5jdHguYwppbmRleCBlNjQ3MTc5Li5jZDI4MGZjIDEwMDY0NAotLS0g YS90b29scy94ZW50cmFjZS94ZW5jdHguYworKysgYi90b29scy94ZW50cmFjZS94ZW5jdHguYwpA QCAtMTAwMCw3ICsxMDAwLDggQEAgc3RhdGljIHZvaWQgZHVtcF9jdHgoaW50IHZjcHUpCiAgICAg ICAgICAgICBndWVzdF93b3JkX3NpemUgPSAoY3B1Y3R4Lm1zcl9lZmVyICYgMHg0MDApID8gOCA6 CiAgICAgICAgICAgICAgICAgZ3Vlc3RfcHJvdGVjdGVkX21vZGUgPyA0IDogMjsKICAgICAgICAg ICAgIC8qIEhWTSBndWVzdCBjb250ZXh0IHJlY29yZHMgYXJlIGFsd2F5cyBob3N0LXNpemVkICov Ci0gICAgICAgICAgICBpZiAoeGNfdmVyc2lvbih4ZW5jdHgueGNfaGFuZGxlLCBYRU5WRVJfY2Fw YWJpbGl0aWVzLCAmeGVuX2NhcHMpICE9IDApIHsKKyAgICAgICAgICAgIGlmICh4Y192ZXJzaW9u KHhlbmN0eC54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX2NhcGFiaWxpdGllcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICZ4ZW5fY2Fwcywgc2l6ZW9mKHhlbl9jYXBzKSkgPCAwKSB7CiAgICAg ICAgICAgICAgICAgcGVycm9yKCJ4Y192ZXJzaW9uIik7CiAgICAgICAgICAgICAgICAgcmV0dXJu OwogICAgICAgICAgICAgfQotLSAKMi41LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=