From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5372 invoked by alias); 4 Feb 2008 00:34:43 -0000 Received: (qmail 5360 invoked by uid 22791); 4 Feb 2008 00:34:43 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 04 Feb 2008 00:34:25 +0000 Received: from zps75.corp.google.com (zps75.corp.google.com [172.25.146.75]) by smtp-out.google.com with ESMTP id m140YORe006382 for ; Sun, 3 Feb 2008 16:34:24 -0800 Received: from wa-out-1112.google.com (wahj5.prod.google.com [10.114.236.5]) by zps75.corp.google.com with ESMTP id m140YNRS029067 for ; Sun, 3 Feb 2008 16:34:23 -0800 Received: by wa-out-1112.google.com with SMTP id j5so2002847wah.15 for ; Sun, 03 Feb 2008 16:34:23 -0800 (PST) Received: by 10.114.103.1 with SMTP id a1mr6337203wac.59.1202085263120; Sun, 03 Feb 2008 16:34:23 -0800 (PST) Received: by 10.114.13.5 with HTTP; Sun, 3 Feb 2008 16:34:22 -0800 (PST) Message-ID: Date: Mon, 04 Feb 2008 00:34:00 -0000 From: "Doug Evans" To: gdb-patches@sourceware.org Subject: Re: [RFA] BINOP_DIV and ptyp command In-Reply-To: <20080131224802.GB8210@caradoc.them.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_5422_31764689.1202085263112" References: <20080130172852.4CFD413EC2@sebabeach.org> <20080131224802.GB8210@caradoc.them.org> X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-02/txt/msg00062.txt.bz2 ------=_Part_5422_31764689.1202085263112 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 872 On Jan 31, 2008 2:48 PM, Daniel Jacobowitz wrote: > [...] > > Can't call value_free here. That's just a call to free, and values > are kept in a linked list; see value_release and value_free_to_mark. > In general, it's fine to leak values unless you're in a loop. If your > caller cares, it will use value_free_to_mark to clean up; otherwise it > will happen at the top level. > > value_one has the same issue. Ah. Oops. > No la_unop_result_type in this version (which I like best of the > several you posted). Righto. > Yes, Objective-C also. Please clarify that "6.7" is a GDB version > number, or use a date. Or just change it for all languages; > documenting "the value system uses C type promotions" is nice and > simple. Either way is OK with me. > > Beyond that the patch looked OK. Thanks for the review. Attached is what I checked in. ------=_Part_5422_31764689.1202085263112 Content-Type: application/octet-stream; name=gdb-080203-whatis-4.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fc8ah82x0 Content-Disposition: attachment; filename=gdb-080203-whatis-4.patch Content-length: 34315 MjAwOC0wMi0wMyAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog ZXZhbC5jIChldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQpOiBGaXggdHlwZSBv ZiByZXN1bHQgb2YgbWl4ZWQKCWludGVnZXIvZmxvYXQgZGl2aXNpb24gb3Bl cmF0aW9ucyB3aGVuIEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTLgoJKiB2YWxv cHMuYyAodmFsdWVfb25lKTogTmV3IGZ1bmN0aW9uLgoJKiB2YWx1ZS5oICh2 YWx1ZV9vbmUpOiBEZWNsYXJlLgoKCUZpeCBhcmd1bWVudCBwcm9tb3Rpb24g Zm9yIGJpbmFyeSBhcml0aG1ldGljIG9wcyBmb3IgQy4KCSogdmFsYXJpdGgu YyAodW5vcF9yZXN1bHRfdHlwZSk6IE5ldyBmbi4KCShiaW5vcF9yZXN1bHRf dHlwZSk6IE5ldyBmbi4KCSh2YWx1ZV9iaW5vcCk6IE1vdmUgcmVzdWx0IHR5 cGUgY29tcHV0YXRpb24gdG8gYmlub3BfcmVzdWx0X3R5cGUuCgkodmFsdWVf cG9zLCB2YWx1ZV9uZWcsIHZhbHVlX2NvbXBsZW1lbnQpOiBNb3ZlIHJlc3Vs dCB0eXBlCgljb21wdXRhdGlvbiB0byB1bm9wX3Jlc3VsdF90eXBlLgoKCSog Z2RiLmJhc2Uvd2hhdGlzLWV4cC5leHA6IEZpeCBleHBlY3RlZCByZXN1bHQg b2Ygd2hhdGlzIHgreSwgeC15LCB4KnkuCgpJbmRleDogZXZhbC5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIv ZXZhbC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc5CmRpZmYgLXUgLXAg LXUgLXAgLXIxLjc5IGV2YWwuYwotLS0gZXZhbC5jCTMwIEphbiAyMDA4IDE4 OjQ2OjA4IC0wMDAwCTEuNzkKKysrIGV2YWwuYwk0IEZlYiAyMDA4IDAwOjIw OjIyIC0wMDAwCkBAIC0xNTE4LDEyICsxNTE4LDMwIEBAIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKIAlnb3RvIG5vc2lkZXJl dDsKICAgICAgIGlmIChiaW5vcF91c2VyX2RlZmluZWRfcCAob3AsIGFyZzEs IGFyZzIpKQogCXJldHVybiB2YWx1ZV94X2Jpbm9wIChhcmcxLCBhcmcyLCBv cCwgT1BfTlVMTCwgbm9zaWRlKTsKLSAgICAgIGVsc2UgaWYgKG5vc2lkZSA9 PSBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUwotCSAgICAgICAmJiAob3AgPT0g QklOT1BfRElWIHx8IG9wID09IEJJTk9QX1JFTSB8fCBvcCA9PSBCSU5PUF9N T0QKLQkJICAgfHwgb3AgPT0gQklOT1BfSU5URElWKSkKLQlyZXR1cm4gdmFs dWVfemVybyAodmFsdWVfdHlwZSAoYXJnMSksIG5vdF9sdmFsKTsKICAgICAg IGVsc2UKLQlyZXR1cm4gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIG9wKTsK Kwl7CisJICAvKiBJZiBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUyBhbmQgd2Un cmUgZGl2aWRpbmcgYnkgemVybywKKwkgICAgIGZ1ZGdlIGFyZzIgdG8gYXZv aWQgZGl2aXNpb24tYnktemVybywgdGhlIGNhbGxlciBpcworCSAgICAgKHRo ZW9yZXRpY2FsbHkpIG9ubHkgbG9va2luZyBmb3IgdGhlIHR5cGUgb2YgdGhl IHJlc3VsdC4gICovCisJICBpZiAobm9zaWRlID09IEVWQUxfQVZPSURfU0lE RV9FRkZFQ1RTCisJICAgICAgLyogPz8/IERvIHdlIHJlYWxseSB3YW50IHRv IHRlc3QgZm9yIEJJTk9QX01PRCBoZXJlPworCQkgVGhlIGltcGxlbWVudGF0 aW9uIG9mIHZhbHVlX2Jpbm9wIGdpdmVzIGl0IGEgd2VsbC1kZWZpbmVkCisJ CSB2YWx1ZS4gICovCisJICAgICAgJiYgKG9wID09IEJJTk9QX0RJVgorCQkg IHx8IG9wID09IEJJTk9QX0lOVERJVgorCQkgIHx8IG9wID09IEJJTk9QX1JF TQorCQkgIHx8IG9wID09IEJJTk9QX01PRCkKKwkgICAgICAmJiB2YWx1ZV9s b2dpY2FsX25vdCAoYXJnMikpCisJICAgIHsKKwkgICAgICBzdHJ1Y3QgdmFs dWUgKnZfb25lLCAqcmV0dmFsOworCisJICAgICAgdl9vbmUgPSB2YWx1ZV9v bmUgKHZhbHVlX3R5cGUgKGFyZzIpLCBub3RfbHZhbCk7CisJICAgICAgcmV0 dmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIHZfb25lLCBvcCk7CisJICAgICAg cmV0dXJuIHJldHZhbDsKKwkgICAgfQorCSAgZWxzZQorCSAgICByZXR1cm4g dmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIG9wKTsKKwl9CiAKICAgICBjYXNl IEJJTk9QX1JBTkdFOgogICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAo TlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKTsKSW5kZXg6IHZhbGFyaXRo LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMv c3JjL2dkYi92YWxhcml0aC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU3 CmRpZmYgLXUgLXAgLXUgLXAgLXIxLjU3IHZhbGFyaXRoLmMKLS0tIHZhbGFy aXRoLmMJMyBGZWIgMjAwOCAwMTo1MTowNCAtMDAwMAkxLjU3CisrKyB2YWxh cml0aC5jCTQgRmViIDIwMDggMDA6MjA6MjIgLTAwMDAKQEAgLTQwLDYgKzQw LDkgQEAKICNlbmRpZgogCiBzdGF0aWMgc3RydWN0IHZhbHVlICp2YWx1ZV9z dWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFs dWUgKiwgaW50KTsKK3N0YXRpYyBzdHJ1Y3QgdHlwZSAqdW5vcF9yZXN1bHRf dHlwZSAoZW51bSBleHBfb3Bjb2RlIG9wLCBzdHJ1Y3QgdHlwZSAqdHlwZTEp Oworc3RhdGljIHN0cnVjdCB0eXBlICpiaW5vcF9yZXN1bHRfdHlwZSAoZW51 bSBleHBfb3Bjb2RlIG9wLCBzdHJ1Y3QgdHlwZSAqdHlwZTEsCisJCQkJICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlMik7CiAKIHZvaWQgX2luaXRpYWxpemVf dmFsYXJpdGggKHZvaWQpOwogDApAQCAtNzQyLDYgKzc0NSwyOTMgQEAgdmFs dWVfY29uY2F0IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAogICByZXR1 cm4gKG91dHZhbCk7CiB9CiAMCisvKiBSZXR1cm4gcmVzdWx0IHR5cGUgb2Yg T1AgcGVyZm9ybWVkIG9uIFRZUEUxLgorICAgVGhlIHJlc3VsdCB0eXBlIGZv bGxvd3MgQU5TSSBDIHJ1bGVzLgorICAgSWYgdGhlIHJlc3VsdCBpcyBub3Qg YXBwcm9wcm9wcmlhdGUgZm9yIGFueSBwYXJ0aWN1bGFyIGxhbmd1YWdlIHRo ZW4gaXQKKyAgIG5lZWRzIHRvIHBhdGNoIHRoaXMgZnVuY3Rpb24gdG8gcmV0 dXJuIHRoZSBjb3JyZWN0IHR5cGUuICAqLworCitzdGF0aWMgc3RydWN0IHR5 cGUgKgordW5vcF9yZXN1bHRfdHlwZSAoZW51bSBleHBfb3Bjb2RlIG9wLCBz dHJ1Y3QgdHlwZSAqdHlwZTEpCit7CisgIHN0cnVjdCB0eXBlICpyZXN1bHRf dHlwZTsKKworICB0eXBlMSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUxKTsKKyAg cmVzdWx0X3R5cGUgPSB0eXBlMTsKKworICBzd2l0Y2ggKG9wKQorICAgIHsK KyAgICBjYXNlIFVOT1BfUExVUzoKKyAgICBjYXNlIFVOT1BfTkVHOgorICAg ICAgYnJlYWs7CisgICAgY2FzZSBVTk9QX0NPTVBMRU1FTlQ6CisgICAgICAv KiBSZWplY3QgZmxvYXRzIGFuZCBkZWNpbWFsIGZsb2F0cy4gICovCisgICAg ICBpZiAoIWlzX2ludGVncmFsX3R5cGUgKHR5cGUxKSkKKwllcnJvciAoXygi QXJndW1lbnQgdG8gY29tcGxlbWVudCBvcGVyYXRpb24gbm90IGFuIGludGVn ZXIgb3IgYm9vbGVhbi4iKSk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0 OgorICAgICAgZXJyb3IgKF8oIkludmFsaWQgdW5hcnkgb3BlcmF0aW9uIG9u IG51bWJlcnMuIikpOworICAgIH0KKworICBpZiAoVFlQRV9DT0RFICh0eXBl MSkgPT0gVFlQRV9DT0RFX0RFQ0ZMT0FUCisgICAgICB8fCBUWVBFX0NPREUg KHR5cGUxKSA9PSBUWVBFX0NPREVfRkxUKQorICAgIHsKKyAgICAgIHJldHVy biByZXN1bHRfdHlwZTsKKyAgICB9CisgIGVsc2UgaWYgKGlzX2ludGVncmFs X3R5cGUgKHR5cGUxKSkKKyAgICB7CisgICAgICAvKiBQZXJmb3JtIGludGVn cmFsIHByb21vdGlvbiBmb3IgQU5TSSBDL0MrKy4KKwkgSWYgbm90IGFwcHJv cHJvcHJpYXRlIGZvciBhbnkgcGFydGljdWxhciBsYW5ndWFnZSBpdCBuZWVk cyB0bworCSBtb2RpZnkgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIGNv cnJlY3QgcmVzdWx0IGZvciBpdC4gICovCisgICAgICBpZiAoVFlQRV9MRU5H VEggKHR5cGUxKSA8IFRZUEVfTEVOR1RIIChidWlsdGluX3R5cGVfaW50KSkK KwlyZXN1bHRfdHlwZSA9IGJ1aWx0aW5fdHlwZV9pbnQ7CisKKyAgICAgIHJl dHVybiByZXN1bHRfdHlwZTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAg ICBlcnJvciAoXygiQXJndW1lbnQgdG8gdW5hcnkgb3BlcmF0aW9uIG5vdCBh IG51bWJlci4iKSk7CisgICAgICByZXR1cm4gMDsgLyogRm9yIGxpbnQgLS0g bmV2ZXIgcmVhY2hlZCAqLworICAgIH0KK30KKworLyogUmV0dXJuIHJlc3Vs dCB0eXBlIG9mIE9QIHBlcmZvcm1lZCBvbiBUWVBFMSwgVFlQRTIuCisgICBJ ZiB0aGUgcmVzdWx0IGlzIG5vdCBhcHByb3Byb3ByaWF0ZSBmb3IgYW55IHBh cnRpY3VsYXIgbGFuZ3VhZ2UgdGhlbiBpdAorICAgbmVlZHMgdG8gcGF0Y2gg dGhpcyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIGNvcnJlY3QgdHlwZS4gICov CisKK3N0YXRpYyBzdHJ1Y3QgdHlwZSAqCitiaW5vcF9yZXN1bHRfdHlwZSAo ZW51bSBleHBfb3Bjb2RlIG9wLCBzdHJ1Y3QgdHlwZSAqdHlwZTEsIHN0cnVj dCB0eXBlICp0eXBlMikKK3sKKyAgdHlwZTEgPSBjaGVja190eXBlZGVmICh0 eXBlMSk7CisgIHR5cGUyID0gY2hlY2tfdHlwZWRlZiAodHlwZTIpOworCisg IGlmICgoVFlQRV9DT0RFICh0eXBlMSkgIT0gVFlQRV9DT0RFX0ZMVAorICAg ICAgICYmIFRZUEVfQ09ERSAodHlwZTEpICE9IFRZUEVfQ09ERV9ERUNGTE9B VAorICAgICAgICYmICFpc19pbnRlZ3JhbF90eXBlICh0eXBlMSkpCisgICAg ICB8fAorICAgICAgKFRZUEVfQ09ERSAodHlwZTIpICE9IFRZUEVfQ09ERV9G TFQKKyAgICAgICAmJiBUWVBFX0NPREUgKHR5cGUyKSAhPSBUWVBFX0NPREVf REVDRkxPQVQKKyAgICAgICAmJiAhaXNfaW50ZWdyYWxfdHlwZSAodHlwZTIp KSkKKyAgICBlcnJvciAoXygiQXJndW1lbnQgdG8gYXJpdGhtZXRpYyBvcGVy YXRpb24gbm90IGEgbnVtYmVyIG9yIGJvb2xlYW4uIikpOworCisgIGlmIChU WVBFX0NPREUgKHR5cGUxKSA9PSBUWVBFX0NPREVfREVDRkxPQVQKKyAgICAg IHx8IFRZUEVfQ09ERSAodHlwZTIpID09IFRZUEVfQ09ERV9ERUNGTE9BVCkK KyAgICB7CisgICAgICBzd2l0Y2ggKG9wKQorCXsKKwljYXNlIEJJTk9QX0FE RDoKKwljYXNlIEJJTk9QX1NVQjoKKwljYXNlIEJJTk9QX01VTDoKKwljYXNl IEJJTk9QX0RJVjoKKwljYXNlIEJJTk9QX0VYUDoKKwkgIGJyZWFrOworCWRl ZmF1bHQ6CisJICBlcnJvciAoXygiT3BlcmF0aW9uIG5vdCB2YWxpZCBmb3Ig ZGVjaW1hbCBmbG9hdGluZyBwb2ludCBudW1iZXIuIikpOworCX0KKworICAg ICAgaWYgKFRZUEVfQ09ERSAodHlwZTEpICE9IFRZUEVfQ09ERV9ERUNGTE9B VCkKKwkvKiBJZiB0eXBlMSBpcyBub3QgYSBkZWNpbWFsIGZsb2F0LCB0aGUg dHlwZSBvZiB0aGUgcmVzdWx0IGlzIHRoZSB0eXBlCisJICAgb2YgdGhlIGRl Y2ltYWwgZmxvYXQgYXJndW1lbnQsIHR5cGUyLiAgKi8KKwlyZXR1cm4gdHlw ZTI7CisgICAgICBlbHNlIGlmIChUWVBFX0NPREUgKHR5cGUyKSAhPSBUWVBF X0NPREVfREVDRkxPQVQpCisJLyogU2FtZSBsb2dpYywgZm9yIHRoZSBjYXNl IHdoZXJlIHR5cGUyIGlzIG5vdCBhIGRlY2ltYWwgZmxvYXQuICAqLworCXJl dHVybiB0eXBlMTsKKyAgICAgIGVsc2UKKwkvKiBCb3RoIGFyZSBkZWNpbWFs IGZsb2F0cywgdGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBpcyB0aGUgYmlnZ2Vy CisJICAgb2YgdGhlIHR3by4gICovCisJcmV0dXJuIChUWVBFX0xFTkdUSCAo dHlwZTEpID4gVFlQRV9MRU5HVEggKHR5cGUyKSkgPyB0eXBlMSA6IHR5cGUy OworICAgIH0KKyAgZWxzZSBpZiAoVFlQRV9DT0RFICh0eXBlMSkgPT0gVFlQ RV9DT0RFX0ZMVAorCSAgIHx8IFRZUEVfQ09ERSAodHlwZTIpID09IFRZUEVf Q09ERV9GTFQpCisgICAgeworICAgICAgc3dpdGNoIChvcCkKKwl7CisJY2Fz ZSBCSU5PUF9BREQ6CisJY2FzZSBCSU5PUF9TVUI6CisJY2FzZSBCSU5PUF9N VUw6CisJY2FzZSBCSU5PUF9ESVY6CisJY2FzZSBCSU5PUF9FWFA6CisJY2Fz ZSBCSU5PUF9NSU46CisJY2FzZSBCSU5PUF9NQVg6CisJICBicmVhazsKKwlk ZWZhdWx0OgorCSAgZXJyb3IgKF8oIkludGVnZXItb25seSBvcGVyYXRpb24g b24gZmxvYXRpbmcgcG9pbnQgbnVtYmVyLiIpKTsKKwl9CisKKyAgICAgIHN3 aXRjaCAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UpCisJeworCWNh c2UgbGFuZ3VhZ2VfYzoKKwljYXNlIGxhbmd1YWdlX2NwbHVzOgorCWNhc2Ug bGFuZ3VhZ2VfYXNtOgorCWNhc2UgbGFuZ3VhZ2Vfb2JqYzoKKwkgIC8qIFBl cmZvcm0gQU5TSS9JU08tQyBwcm9tb3Rpb25zLgorCSAgICAgSWYgb25seSBv bmUgdHlwZSBpcyBmbG9hdCwgdXNlIGl0cyB0eXBlLgorCSAgICAgT3RoZXJ3 aXNlIHVzZSB0aGUgYmlnZ2VyIHR5cGUuICAqLworCSAgaWYgKFRZUEVfQ09E RSAodHlwZTEpICE9IFRZUEVfQ09ERV9GTFQpCisJICAgIHJldHVybiB0eXBl MjsKKwkgIGVsc2UgaWYgKFRZUEVfQ09ERSAodHlwZTIpICE9IFRZUEVfQ09E RV9GTFQpCisJICAgIHJldHVybiB0eXBlMTsKKwkgIGVsc2UKKwkgICAgcmV0 dXJuIChUWVBFX0xFTkdUSCAodHlwZTEpID4gVFlQRV9MRU5HVEggKHR5cGUy KSkgPyB0eXBlMSA6IHR5cGUyOworCisJZGVmYXVsdDoKKwkgIC8qIEZvciBv dGhlciBsYW5ndWFnZXMgdGhlIHJlc3VsdCB0eXBlIGlzIHVuY2hhbmdlZCBm cm9tIGdkYgorCSAgICAgdmVyc2lvbiA2LjcgZm9yIGJhY2t3YXJkIGNvbXBh dGliaWxpdHkuCisJICAgICBJZiBlaXRoZXIgYXJnIHdhcyBsb25nIGRvdWJs ZSwgbWFrZSBzdXJlIHRoYXQgdmFsdWUgaXMgYWxzbyBsb25nCisJICAgICBk b3VibGUuICBPdGhlcndpc2UgdXNlIGRvdWJsZS4gICovCisJICBpZiAoVFlQ RV9MRU5HVEggKHR5cGUxKSAqIDggPiBnZGJhcmNoX2RvdWJsZV9iaXQgKGN1 cnJlbnRfZ2RiYXJjaCkKKwkgICAgICB8fCBUWVBFX0xFTkdUSCAodHlwZTIp ICogOCA+IGdkYmFyY2hfZG91YmxlX2JpdCAoY3VycmVudF9nZGJhcmNoKSkK KwkgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZV9sb25nX2RvdWJsZTsKKwkgIGVs c2UKKwkgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZV9kb3VibGU7CisJfQorICAg IH0KKyAgZWxzZSBpZiAoVFlQRV9DT0RFICh0eXBlMSkgPT0gVFlQRV9DT0RF X0JPT0wKKwkgICAmJiBUWVBFX0NPREUgKHR5cGUyKSA9PSBUWVBFX0NPREVf Qk9PTCkKKyAgICB7CisgICAgICBzd2l0Y2ggKG9wKQorCXsKKwljYXNlIEJJ Tk9QX0JJVFdJU0VfQU5EOgorCWNhc2UgQklOT1BfQklUV0lTRV9JT1I6CisJ Y2FzZSBCSU5PUF9CSVRXSVNFX1hPUjoKKyAgICAgICAgY2FzZSBCSU5PUF9F UVVBTDoKKyAgICAgICAgY2FzZSBCSU5PUF9OT1RFUVVBTDoKKwkgIGJyZWFr OworCWRlZmF1bHQ6CisJICBlcnJvciAoXygiSW52YWxpZCBvcGVyYXRpb24g b24gYm9vbGVhbnMuIikpOworCX0KKworICAgICAgcmV0dXJuIHR5cGUxOwor ICAgIH0KKyAgZWxzZQorICAgIC8qIEludGVncmFsIG9wZXJhdGlvbnMgaGVy ZS4gICovCisgICAgLyogRklYTUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9v bGVhbnMsIHdpdGggcmVzdWx0IGFuIGludGVnZXIuICAqLworICAgIHsKKyAg ICAgIHVuc2lnbmVkIGludCBwcm9tb3RlZF9sZW4xID0gVFlQRV9MRU5HVEgg KHR5cGUxKTsKKyAgICAgIHVuc2lnbmVkIGludCBwcm9tb3RlZF9sZW4yID0g VFlQRV9MRU5HVEggKHR5cGUyKTsKKyAgICAgIGludCBpc191bnNpZ25lZDEg PSBUWVBFX1VOU0lHTkVEICh0eXBlMSk7CisgICAgICBpbnQgaXNfdW5zaWdu ZWQyID0gVFlQRV9VTlNJR05FRCAodHlwZTIpOworICAgICAgdW5zaWduZWQg aW50IHJlc3VsdF9sZW47CisgICAgICBpbnQgdW5zaWduZWRfb3BlcmF0aW9u OworCisgICAgICAvKiBEZXRlcm1pbmUgdHlwZSBsZW5ndGggYW5kIHNpZ25l ZG5lc3MgYWZ0ZXIgcHJvbW90aW9uIGZvcgorICAgICAgICAgYm90aCBvcGVy YW5kcy4gICovCisgICAgICBpZiAocHJvbW90ZWRfbGVuMSA8IFRZUEVfTEVO R1RIIChidWlsdGluX3R5cGVfaW50KSkKKwl7CisJICBpc191bnNpZ25lZDEg PSAwOworCSAgcHJvbW90ZWRfbGVuMSA9IFRZUEVfTEVOR1RIIChidWlsdGlu X3R5cGVfaW50KTsKKwl9CisgICAgICBpZiAocHJvbW90ZWRfbGVuMiA8IFRZ UEVfTEVOR1RIIChidWlsdGluX3R5cGVfaW50KSkKKwl7CisJICBpc191bnNp Z25lZDIgPSAwOworCSAgcHJvbW90ZWRfbGVuMiA9IFRZUEVfTEVOR1RIIChi dWlsdGluX3R5cGVfaW50KTsKKwl9CisKKyAgICAgIC8qIERldGVybWluZSB0 eXBlIGxlbmd0aCBvZiB0aGUgcmVzdWx0LCBhbmQgaWYgdGhlIG9wZXJhdGlv biBzaG91bGQKKwkgYmUgZG9uZSB1bnNpZ25lZC4gIEZvciBleHBvbmVudGlh dGlvbiBhbmQgc2hpZnQgb3BlcmF0b3JzLAorCSB1c2UgdGhlIGxlbmd0aCBh bmQgdHlwZSBvZiB0aGUgbGVmdCBvcGVyYW5kLiAgT3RoZXJ3aXNlLAorCSB1 c2UgdGhlIHNpZ25lZG5lc3Mgb2YgdGhlIG9wZXJhbmQgd2l0aCB0aGUgZ3Jl YXRlciBsZW5ndGguCisJIElmIGJvdGggb3BlcmFuZHMgYXJlIG9mIGVxdWFs IGxlbmd0aCwgdXNlIHVuc2lnbmVkIG9wZXJhdGlvbgorCSBpZiBvbmUgb2Yg dGhlIG9wZXJhbmRzIGlzIHVuc2lnbmVkLiAgKi8KKyAgICAgIGlmIChvcCA9 PSBCSU5PUF9SU0ggfHwgb3AgPT0gQklOT1BfTFNIIHx8IG9wID09IEJJTk9Q X0VYUCkKKwl7CisJICAvKiBJbiBjYXNlIG9mIHRoZSBzaGlmdCBvcGVyYXRv cnMgYW5kIGV4cG9uZW50aWF0aW9uIHRoZSB0eXBlIG9mCisJICAgICB0aGUg cmVzdWx0IG9ubHkgZGVwZW5kcyBvbiB0aGUgdHlwZSBvZiB0aGUgbGVmdCBv cGVyYW5kLiAgKi8KKwkgIHVuc2lnbmVkX29wZXJhdGlvbiA9IGlzX3Vuc2ln bmVkMTsKKwkgIHJlc3VsdF9sZW4gPSBwcm9tb3RlZF9sZW4xOworCX0KKyAg ICAgIGVsc2UgaWYgKHByb21vdGVkX2xlbjEgPiBwcm9tb3RlZF9sZW4yKQor CXsKKwkgIHVuc2lnbmVkX29wZXJhdGlvbiA9IGlzX3Vuc2lnbmVkMTsKKwkg IHJlc3VsdF9sZW4gPSBwcm9tb3RlZF9sZW4xOworCX0KKyAgICAgIGVsc2Ug aWYgKHByb21vdGVkX2xlbjIgPiBwcm9tb3RlZF9sZW4xKQorCXsKKwkgIHVu c2lnbmVkX29wZXJhdGlvbiA9IGlzX3Vuc2lnbmVkMjsKKwkgIHJlc3VsdF9s ZW4gPSBwcm9tb3RlZF9sZW4yOworCX0KKyAgICAgIGVsc2UKKwl7CisJICB1 bnNpZ25lZF9vcGVyYXRpb24gPSBpc191bnNpZ25lZDEgfHwgaXNfdW5zaWdu ZWQyOworCSAgcmVzdWx0X2xlbiA9IHByb21vdGVkX2xlbjE7CisJfQorCisg ICAgICBzd2l0Y2ggKG9wKQorCXsKKwljYXNlIEJJTk9QX0FERDoKKwljYXNl IEJJTk9QX1NVQjoKKwljYXNlIEJJTk9QX01VTDoKKwljYXNlIEJJTk9QX0RJ VjoKKwljYXNlIEJJTk9QX0lOVERJVjoKKwljYXNlIEJJTk9QX0VYUDoKKwlj YXNlIEJJTk9QX1JFTToKKwljYXNlIEJJTk9QX01PRDoKKwljYXNlIEJJTk9Q X0xTSDoKKwljYXNlIEJJTk9QX1JTSDoKKwljYXNlIEJJTk9QX0JJVFdJU0Vf QU5EOgorCWNhc2UgQklOT1BfQklUV0lTRV9JT1I6CisJY2FzZSBCSU5PUF9C SVRXSVNFX1hPUjoKKwljYXNlIEJJTk9QX0xPR0lDQUxfQU5EOgorCWNhc2Ug QklOT1BfTE9HSUNBTF9PUjoKKwljYXNlIEJJTk9QX01JTjoKKwljYXNlIEJJ Tk9QX01BWDoKKwljYXNlIEJJTk9QX0VRVUFMOgorCWNhc2UgQklOT1BfTk9U RVFVQUw6CisJY2FzZSBCSU5PUF9MRVNTOgorCSAgYnJlYWs7CisKKwlkZWZh dWx0OgorCSAgZXJyb3IgKF8oIkludmFsaWQgYmluYXJ5IG9wZXJhdGlvbiBv biBudW1iZXJzLiIpKTsKKwl9CisKKyAgICAgIHN3aXRjaCAoY3VycmVudF9s YW5ndWFnZS0+bGFfbGFuZ3VhZ2UpCisJeworCWNhc2UgbGFuZ3VhZ2VfYzoK KwljYXNlIGxhbmd1YWdlX2NwbHVzOgorCWNhc2UgbGFuZ3VhZ2VfYXNtOgor CWNhc2UgbGFuZ3VhZ2Vfb2JqYzoKKwkgIGlmIChyZXN1bHRfbGVuIDw9IFRZ UEVfTEVOR1RIIChidWlsdGluX3R5cGVfaW50KSkKKwkgICAgeworCSAgICAg IHJldHVybiAodW5zaWduZWRfb3BlcmF0aW9uCisJCSAgICAgID8gYnVpbHRp bl90eXBlX3Vuc2lnbmVkX2ludAorCQkgICAgICA6IGJ1aWx0aW5fdHlwZV9p bnQpOworCSAgICB9CisJICBlbHNlIGlmIChyZXN1bHRfbGVuIDw9IFRZUEVf TEVOR1RIIChidWlsdGluX3R5cGVfbG9uZykpCisJICAgIHsKKwkgICAgICBy ZXR1cm4gKHVuc2lnbmVkX29wZXJhdGlvbgorCQkgICAgICA/IGJ1aWx0aW5f dHlwZV91bnNpZ25lZF9sb25nCisJCSAgICAgIDogYnVpbHRpbl90eXBlX2xv bmcpOworCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICByZXR1cm4g KHVuc2lnbmVkX29wZXJhdGlvbgorCQkgICAgICA/IGJ1aWx0aW5fdHlwZV91 bnNpZ25lZF9sb25nX2xvbmcKKwkJICAgICAgOiBidWlsdGluX3R5cGVfbG9u Z19sb25nKTsKKwkgICAgfQorCisJZGVmYXVsdDoKKwkgIC8qIEZvciBvdGhl ciBsYW5ndWFnZXMgdGhlIHJlc3VsdCB0eXBlIGlzIHVuY2hhbmdlZCBmcm9t IGdkYgorCSAgICAgdmVyc2lvbiA2LjcgZm9yIGJhY2t3YXJkIGNvbXBhdGli aWxpdHkuCisJICAgICBJZiBlaXRoZXIgYXJnIHdhcyBsb25nIGxvbmcsIG1h a2Ugc3VyZSB0aGF0IHZhbHVlIGlzIGFsc28gbG9uZworCSAgICAgbG9uZy4g IE90aGVyd2lzZSB1c2UgbG9uZy4gICovCisJICBpZiAodW5zaWduZWRfb3Bl cmF0aW9uKQorCSAgICB7CisJICAgICAgaWYgKHJlc3VsdF9sZW4gPiBnZGJh cmNoX2xvbmdfYml0IChjdXJyZW50X2dkYmFyY2gpIC8gSE9TVF9DSEFSX0JJ VCkKKwkJcmV0dXJuIGJ1aWx0aW5fdHlwZV91bnNpZ25lZF9sb25nX2xvbmc7 CisJICAgICAgZWxzZQorCQlyZXR1cm4gYnVpbHRpbl90eXBlX3Vuc2lnbmVk X2xvbmc7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgeworCSAgICAgIGlmIChy ZXN1bHRfbGVuID4gZ2RiYXJjaF9sb25nX2JpdCAoY3VycmVudF9nZGJhcmNo KSAvIEhPU1RfQ0hBUl9CSVQpCisJCXJldHVybiBidWlsdGluX3R5cGVfbG9u Z19sb25nOworCSAgICAgIGVsc2UKKwkJcmV0dXJuIGJ1aWx0aW5fdHlwZV9s b25nOworCSAgICB9CisJfQorICAgIH0KKworICByZXR1cm4gTlVMTDsgLyog YXZvaWQgLVdhbGwgd2FybmluZyAqLworfQogCiAvKiBJbnRlZ2VyIGV4cG9u ZW50aWF0aW9uOiBWMSoqVjIsIHdoZXJlIGJvdGggYXJndW1lbnRzIGFyZQog ICAgaW50ZWdlcnMuICBSZXF1aXJlcyBWMSAhPSAwIGlmIFYyIDwgMC4gIFJl dHVybnMgMSBmb3IgMCAqKiAwLiAgKi8KQEAgLTg3MCwyMyArMTE2MCwxNCBA QCBzdHJ1Y3QgdmFsdWUgKgogdmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAq YXJnMSwgc3RydWN0IHZhbHVlICphcmcyLCBlbnVtIGV4cF9vcGNvZGUgb3Ap CiB7CiAgIHN0cnVjdCB2YWx1ZSAqdmFsOwotICBzdHJ1Y3QgdHlwZSAqdHlw ZTEsICp0eXBlMjsKKyAgc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlOwogCiAg IGFyZzEgPSBjb2VyY2VfcmVmIChhcmcxKTsKICAgYXJnMiA9IGNvZXJjZV9y ZWYgKGFyZzIpOwotICB0eXBlMSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKGFyZzEpKTsKLSAgdHlwZTIgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcyKSk7CiAKLSAgaWYgKChUWVBFX0NPREUgKHR5cGUxKSAhPSBU WVBFX0NPREVfRkxUCi0gICAgICAgJiYgVFlQRV9DT0RFICh0eXBlMSkgIT0g VFlQRV9DT0RFX0RFQ0ZMT0FUICYmICFpc19pbnRlZ3JhbF90eXBlICh0eXBl MSkpCi0gICAgICB8fAotICAgICAgKFRZUEVfQ09ERSAodHlwZTIpICE9IFRZ UEVfQ09ERV9GTFQKLSAgICAgICAmJiBUWVBFX0NPREUgKHR5cGUyKSAhPSBU WVBFX0NPREVfREVDRkxPQVQgJiYgIWlzX2ludGVncmFsX3R5cGUgKHR5cGUy KSkpCi0gICAgZXJyb3IgKF8oIkFyZ3VtZW50IHRvIGFyaXRobWV0aWMgb3Bl cmF0aW9uIG5vdCBhIG51bWJlciBvciBib29sZWFuLiIpKTsKKyAgcmVzdWx0 X3R5cGUgPSBiaW5vcF9yZXN1bHRfdHlwZSAob3AsIHZhbHVlX3R5cGUgKGFy ZzEpLCB2YWx1ZV90eXBlIChhcmcyKSk7CiAKLSAgaWYgKFRZUEVfQ09ERSAo dHlwZTEpID09IFRZUEVfQ09ERV9ERUNGTE9BVAotICAgICAgfHwKLSAgICAg IFRZUEVfQ09ERSAodHlwZTIpID09IFRZUEVfQ09ERV9ERUNGTE9BVCkKKyAg aWYgKFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID09IFRZUEVfQ09ERV9ERUNG TE9BVCkKICAgICB7CiAgICAgICBzdHJ1Y3QgdHlwZSAqdl90eXBlOwogICAg ICAgaW50IGxlbl92MSwgbGVuX3YyLCBsZW5fdjsKQEAgLTkwOSwyMyArMTE5 MCw5IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVj dCAKIAkgIGVycm9yIChfKCJPcGVyYXRpb24gbm90IHZhbGlkIGZvciBkZWNp bWFsIGZsb2F0aW5nIHBvaW50IG51bWJlci4iKSk7CiAJfQogCi0gICAgICBp ZiAoVFlQRV9DT0RFICh0eXBlMSkgIT0gVFlQRV9DT0RFX0RFQ0ZMT0FUKQot CS8qIElmIGFyZzEgaXMgbm90IGEgZGVjaW1hbCBmbG9hdCwgdGhlIHR5cGUg b2YgdGhlIHJlc3VsdCBpcyB0aGUgdHlwZQotCSAgIG9mIHRoZSBkZWNpbWFs IGZsb2F0IGFyZ3VtZW50LCBhcmcyLiAgKi8KLQl2X3R5cGUgPSB0eXBlMjsK LSAgICAgIGVsc2UgaWYgKFRZUEVfQ09ERSAodHlwZTIpICE9IFRZUEVfQ09E RV9ERUNGTE9BVCkKLQkvKiBTYW1lIGxvZ2ljLCBmb3IgdGhlIGNhc2Ugd2hl cmUgYXJnMiBpcyBub3QgYSBkZWNpbWFsIGZsb2F0LiAgKi8KLQl2X3R5cGUg PSB0eXBlMTsKLSAgICAgIGVsc2UKLQkvKiBsZW5fdiBpcyBlcXVhbCBlaXRo ZXIgdG8gbGVuX3YxIG9yIHRvIGxlbl92Mi4gIHRoZSB0eXBlIG9mIHRoZQot CSAgIHJlc3VsdCBpcyB0aGUgdHlwZSBvZiB0aGUgYXJndW1lbnQgd2l0aCB0 aGUgc2FtZSBsZW5ndGggYXMgdi4gICovCi0Jdl90eXBlID0gKGxlbl92ID09 IGxlbl92MSk/IHR5cGUxIDogdHlwZTI7Ci0KLSAgICAgIHZhbCA9IHZhbHVl X2Zyb21fZGVjZmxvYXQgKHZfdHlwZSwgdik7CisgICAgICB2YWwgPSB2YWx1 ZV9mcm9tX2RlY2Zsb2F0IChyZXN1bHRfdHlwZSwgdik7CiAgICAgfQotICBl bHNlIGlmIChUWVBFX0NPREUgKHR5cGUxKSA9PSBUWVBFX0NPREVfRkxUCi0J ICAgfHwKLQkgICBUWVBFX0NPREUgKHR5cGUyKSA9PSBUWVBFX0NPREVfRkxU KQorICBlbHNlIGlmIChUWVBFX0NPREUgKHJlc3VsdF90eXBlKSA9PSBUWVBF X0NPREVfRkxUKQogICAgIHsKICAgICAgIC8qIEZJWE1FLWlmLXBpY2t5LWFi b3V0LWZsb2F0aW5nLWFjY3VyYWN5OiBTaG91bGQgYmUgZG9pbmcgdGhpcwog ICAgICAgICAgaW4gdGFyZ2V0IGZvcm1hdC4gIHJlYWwuYyBpbiBHQ0MgcHJv YmFibHkgaGFzIHRoZSBuZWNlc3NhcnkKQEAgLTkzMyw2ICsxMjAwLDcgQEAg dmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0IAogICAg ICAgRE9VQkxFU1QgdjEsIHYyLCB2ID0gMDsKICAgICAgIHYxID0gdmFsdWVf YXNfZG91YmxlIChhcmcxKTsKICAgICAgIHYyID0gdmFsdWVfYXNfZG91Ymxl IChhcmcyKTsKKwogICAgICAgc3dpdGNoIChvcCkKIAl7CiAJY2FzZSBCSU5P UF9BREQ6CkBAIC05NzAsMjAgKzEyMzgsMTAgQEAgdmFsdWVfYmlub3AgKHN0 cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0IAogCSAgZXJyb3IgKF8oIkludGVn ZXItb25seSBvcGVyYXRpb24gb24gZmxvYXRpbmcgcG9pbnQgbnVtYmVyLiIp KTsKIAl9CiAKLSAgICAgIC8qIElmIGVpdGhlciBhcmcgd2FzIGxvbmcgZG91 YmxlLCBtYWtlIHN1cmUgdGhhdCB2YWx1ZSBpcyBhbHNvIGxvbmcKLSAgICAg ICAgIGRvdWJsZS4gICovCi0KLSAgICAgIGlmIChUWVBFX0xFTkdUSCAodHlw ZTEpICogOCA+IGdkYmFyY2hfZG91YmxlX2JpdCAoY3VycmVudF9nZGJhcmNo KQotCSAgfHwgVFlQRV9MRU5HVEggKHR5cGUyKSAqIDggPiBnZGJhcmNoX2Rv dWJsZV9iaXQgKGN1cnJlbnRfZ2RiYXJjaCkpCi0JdmFsID0gYWxsb2NhdGVf dmFsdWUgKGJ1aWx0aW5fdHlwZV9sb25nX2RvdWJsZSk7Ci0gICAgICBlbHNl Ci0JdmFsID0gYWxsb2NhdGVfdmFsdWUgKGJ1aWx0aW5fdHlwZV9kb3VibGUp OwotCisgICAgICB2YWwgPSBhbGxvY2F0ZV92YWx1ZSAocmVzdWx0X3R5cGUp OwogICAgICAgc3RvcmVfdHlwZWRfZmxvYXRpbmcgKHZhbHVlX2NvbnRlbnRz X3JhdyAodmFsKSwgdmFsdWVfdHlwZSAodmFsKSwgdik7CiAgICAgfQotICBl bHNlIGlmIChUWVBFX0NPREUgKHR5cGUxKSA9PSBUWVBFX0NPREVfQk9PTAot CSAgICYmCi0JICAgVFlQRV9DT0RFICh0eXBlMikgPT0gVFlQRV9DT0RFX0JP T0wpCisgIGVsc2UgaWYgKFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID09IFRZ UEVfQ09ERV9CT09MKQogICAgIHsKICAgICAgIExPTkdFU1QgdjEsIHYyLCB2 ID0gMDsKICAgICAgIHYxID0gdmFsdWVfYXNfbG9uZyAoYXJnMSk7CkBAIC0x MDE1LDc0ICsxMjczLDMzIEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUg KmFyZzEsIHN0cnVjdCAKIAkgIGVycm9yIChfKCJJbnZhbGlkIG9wZXJhdGlv biBvbiBib29sZWFucy4iKSk7CiAJfQogCi0gICAgICB2YWwgPSBhbGxvY2F0 ZV92YWx1ZSAodHlwZTEpOworICAgICAgdmFsID0gYWxsb2NhdGVfdmFsdWUg KHJlc3VsdF90eXBlKTsKICAgICAgIHN0b3JlX3NpZ25lZF9pbnRlZ2VyICh2 YWx1ZV9jb250ZW50c19yYXcgKHZhbCksCi0JCQkgICAgVFlQRV9MRU5HVEgg KHR5cGUxKSwKKwkJCSAgICBUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpLAog CQkJICAgIHYpOwogICAgIH0KICAgZWxzZQogICAgIC8qIEludGVncmFsIG9w ZXJhdGlvbnMgaGVyZS4gICovCi0gICAgLyogRklYTUU6ICBBbHNvIG1peGVk IGludGVncmFsL2Jvb2xlYW5zLCB3aXRoIHJlc3VsdCBhbiBpbnRlZ2VyLiAq LwotICAgIC8qIEZJWE1FOiBUaGlzIGltcGxlbWVudHMgQU5TSSBDIHJ1bGVz IChhbHNvIGNvcnJlY3QgZm9yIEMrKykuCi0gICAgICAgV2hhdCBhYm91dCBG T1JUUkFOIGFuZCAodGhlIGRlbGV0ZWQpIGNoaWxsID8gICovCiAgICAgewot ICAgICAgdW5zaWduZWQgaW50IHByb21vdGVkX2xlbjEgPSBUWVBFX0xFTkdU SCAodHlwZTEpOwotICAgICAgdW5zaWduZWQgaW50IHByb21vdGVkX2xlbjIg PSBUWVBFX0xFTkdUSCAodHlwZTIpOwotICAgICAgaW50IGlzX3Vuc2lnbmVk MSA9IFRZUEVfVU5TSUdORUQgKHR5cGUxKTsKLSAgICAgIGludCBpc191bnNp Z25lZDIgPSBUWVBFX1VOU0lHTkVEICh0eXBlMik7Ci0gICAgICB1bnNpZ25l ZCBpbnQgcmVzdWx0X2xlbjsKLSAgICAgIGludCB1bnNpZ25lZF9vcGVyYXRp b247Ci0KLSAgICAgIC8qIERldGVybWluZSB0eXBlIGxlbmd0aCBhbmQgc2ln bmVkbmVzcyBhZnRlciBwcm9tb3Rpb24gZm9yCi0gICAgICAgICBib3RoIG9w ZXJhbmRzLiAgKi8KLSAgICAgIGlmIChwcm9tb3RlZF9sZW4xIDwgVFlQRV9M RU5HVEggKGJ1aWx0aW5fdHlwZV9pbnQpKQotCXsKLQkgIGlzX3Vuc2lnbmVk MSA9IDA7Ci0JICBwcm9tb3RlZF9sZW4xID0gVFlQRV9MRU5HVEggKGJ1aWx0 aW5fdHlwZV9pbnQpOwotCX0KLSAgICAgIGlmIChwcm9tb3RlZF9sZW4yIDwg VFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlwZV9pbnQpKQotCXsKLQkgIGlzX3Vu c2lnbmVkMiA9IDA7Ci0JICBwcm9tb3RlZF9sZW4yID0gVFlQRV9MRU5HVEgg KGJ1aWx0aW5fdHlwZV9pbnQpOwotCX0KLQotICAgICAgLyogRGV0ZXJtaW5l IHR5cGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQsIGFuZCBpZiB0aGUgb3BlcmF0 aW9uIHNob3VsZAotICAgICAgICAgYmUgZG9uZSB1bnNpZ25lZC4gIEZvciBl eHBvbmVudGlhdGlvbiBhbmQgc2hpZnQgb3BlcmF0b3JzLAotICAgICAgICAg dXNlIHRoZSBsZW5ndGggYW5kIHR5cGUgb2YgdGhlIGxlZnQgb3BlcmFuZC4g IE90aGVyd2lzZSwKLSAgICAgICAgIHVzZSB0aGUgc2lnbmVkbmVzcyBvZiB0 aGUgb3BlcmFuZCB3aXRoIHRoZSBncmVhdGVyIGxlbmd0aC4KLSAgICAgICAg IElmIGJvdGggb3BlcmFuZHMgYXJlIG9mIGVxdWFsIGxlbmd0aCwgdXNlIHVu c2lnbmVkIG9wZXJhdGlvbgotICAgICAgICAgaWYgb25lIG9mIHRoZSBvcGVy YW5kcyBpcyB1bnNpZ25lZC4gICovCi0gICAgICBpZiAob3AgPT0gQklOT1Bf UlNIIHx8IG9wID09IEJJTk9QX0xTSCB8fCBvcCA9PSBCSU5PUF9FWFApCi0J ewotCSAgLyogSW4gY2FzZSBvZiB0aGUgc2hpZnQgb3BlcmF0b3JzIGFuZCBl eHBvbmVudGlhdGlvbiB0aGUgdHlwZSBvZgotCSAgICAgdGhlIHJlc3VsdCBv bmx5IGRlcGVuZHMgb24gdGhlIHR5cGUgb2YgdGhlIGxlZnQgb3BlcmFuZC4g ICovCi0JICB1bnNpZ25lZF9vcGVyYXRpb24gPSBpc191bnNpZ25lZDE7Ci0J ICByZXN1bHRfbGVuID0gcHJvbW90ZWRfbGVuMTsKLQl9Ci0gICAgICBlbHNl IGlmIChwcm9tb3RlZF9sZW4xID4gcHJvbW90ZWRfbGVuMikKLQl7Ci0JICB1 bnNpZ25lZF9vcGVyYXRpb24gPSBpc191bnNpZ25lZDE7Ci0JICByZXN1bHRf bGVuID0gcHJvbW90ZWRfbGVuMTsKLQl9Ci0gICAgICBlbHNlIGlmIChwcm9t b3RlZF9sZW4yID4gcHJvbW90ZWRfbGVuMSkKLQl7Ci0JICB1bnNpZ25lZF9v cGVyYXRpb24gPSBpc191bnNpZ25lZDI7Ci0JICByZXN1bHRfbGVuID0gcHJv bW90ZWRfbGVuMjsKLQl9Ci0gICAgICBlbHNlCi0JewotCSAgdW5zaWduZWRf b3BlcmF0aW9uID0gaXNfdW5zaWduZWQxIHx8IGlzX3Vuc2lnbmVkMjsKLQkg IHJlc3VsdF9sZW4gPSBwcm9tb3RlZF9sZW4xOwotCX0KKyAgICAgIGludCB1 bnNpZ25lZF9vcGVyYXRpb24gPSBUWVBFX1VOU0lHTkVEIChyZXN1bHRfdHlw ZSk7CiAKICAgICAgIGlmICh1bnNpZ25lZF9vcGVyYXRpb24pCiAJeworCSAg dW5zaWduZWQgaW50IGxlbjEsIGxlbjIsIHJlc3VsdF9sZW47CiAJICBMT05H RVNUIHYyX3NpZ25lZCA9IHZhbHVlX2FzX2xvbmcgKGFyZzIpOwogCSAgVUxP TkdFU1QgdjEsIHYyLCB2ID0gMDsKIAkgIHYxID0gKFVMT05HRVNUKSB2YWx1 ZV9hc19sb25nIChhcmcxKTsKIAkgIHYyID0gKFVMT05HRVNUKSB2Ml9zaWdu ZWQ7CiAKLQkgIC8qIFRydW5jYXRlIHZhbHVlcyB0byB0aGUgdHlwZSBsZW5n dGggb2YgdGhlIHJlc3VsdC4gICovCisJICAvKiBUcnVuY2F0ZSB2YWx1ZXMg dG8gdGhlIHR5cGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQuCisJICAgICBUaGlu Z3MgYXJlIG1pbGRseSB0cmlja3kgYmVjYXVzZSBiaW5vcF9yZXN1bHRfdHlw ZSBtYXkKKwkgICAgIHJldHVybiBhIGxvbmcgd2hpY2ggb24gYW1kNjQgaXMg OCBieXRlcywgYW5kIHRoYXQncyBhIHByb2JsZW0gaWYKKwkgICAgIEFSRzEs IEFSRzIgYXJlIGJvdGggPD0gNCBieXRlczogd2UgbmVlZCB0byB0cnVuY2F0 ZSB0aGUgdmFsdWVzCisJICAgICBhdCA0IGJ5dGVzIG5vdCA4LiAgU28gZmV0 Y2ggdGhlIGxlbmd0aHMgb2YgdGhlIG9yaWdpbmFsIHR5cGVzCisJICAgICBh bmQgdHJ1bmNhdGUgYXQgdGhlIGxhcmdlciBvZiB0aGUgdHdvLiAgKi8KKwkg IGxlbjEgPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAoYXJnMSkpOworCSAg bGVuMiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChhcmcxKSk7CisJICBy ZXN1bHRfbGVuID0gbGVuMSA+IGxlbjIgPyBsZW4xIDogbGVuMjsKIAkgIGlm IChyZXN1bHRfbGVuIDwgc2l6ZW9mIChVTE9OR0VTVCkpCiAJICAgIHsKIAkg ICAgICB2MSAmPSAoKExPTkdFU1QpIDEgPDwgSE9TVF9DSEFSX0JJVCAqIHJl c3VsdF9sZW4pIC0gMTsKQEAgLTExODksMTkgKzE0MDYsNyBAQCB2YWx1ZV9i aW5vcCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgCiAJICAgICAgZXJy b3IgKF8oIkludmFsaWQgYmluYXJ5IG9wZXJhdGlvbiBvbiBudW1iZXJzLiIp KTsKIAkgICAgfQogCi0JICAvKiBUaGlzIGlzIGEga2x1ZGdlIHRvIGdldCBh cm91bmQgdGhlIGZhY3QgdGhhdCB3ZSBkb24ndAotCSAgICAga25vdyBob3cg dG8gZGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBmcm9tIHRoZSB0eXBlcyBv ZgotCSAgICAgdGhlIG9wZXJhbmRzLiAgKEknbSBub3QgcmVhbGx5IHN1cmUg aG93IG11Y2ggd2UgZmVlbCB0aGUKLQkgICAgIG5lZWQgdG8gZHVwbGljYXRl IHRoZSBleGFjdCBydWxlcyBvZiB0aGUgY3VycmVudAotCSAgICAgbGFuZ3Vh Z2UuICBUaGV5IGNhbiBnZXQgcmVhbGx5IGhhaXJ5LiAgQnV0IG5vdCB0byBk byBzbwotCSAgICAgbWFrZXMgaXQgaGFyZCB0byBkb2N1bWVudCBqdXN0IHdo YXQgd2UgKmRvKiBkbykuICAqLwotCi0JICAvKiBDYW4ndCBqdXN0IGNhbGwg aW5pdF90eXBlIGJlY2F1c2Ugd2Ugd291bGRuJ3Qga25vdyB3aGF0Ci0JICAg ICBuYW1lIHRvIGdpdmUgdGhlIHR5cGUuICAqLwotCSAgdmFsID0gYWxsb2Nh dGVfdmFsdWUKLQkgICAgKHJlc3VsdF9sZW4gPiBnZGJhcmNoX2xvbmdfYml0 IChjdXJyZW50X2dkYmFyY2gpIC8gSE9TVF9DSEFSX0JJVAotCSAgICAgPyBi dWlsdGluX3R5cGVfdW5zaWduZWRfbG9uZ19sb25nCi0JICAgICA6IGJ1aWx0 aW5fdHlwZV91bnNpZ25lZF9sb25nKTsKKwkgIHZhbCA9IGFsbG9jYXRlX3Zh bHVlIChyZXN1bHRfdHlwZSk7CiAJICBzdG9yZV91bnNpZ25lZF9pbnRlZ2Vy ICh2YWx1ZV9jb250ZW50c19yYXcgKHZhbCksCiAJCQkJICBUWVBFX0xFTkdU SCAodmFsdWVfdHlwZSAodmFsKSksCiAJCQkJICB2KTsKQEAgLTEzMTIsMTkg KzE1MTcsNyBAQCB2YWx1ZV9iaW5vcCAoc3RydWN0IHZhbHVlICphcmcxLCBz dHJ1Y3QgCiAJICAgICAgZXJyb3IgKF8oIkludmFsaWQgYmluYXJ5IG9wZXJh dGlvbiBvbiBudW1iZXJzLiIpKTsKIAkgICAgfQogCi0JICAvKiBUaGlzIGlz IGEga2x1ZGdlIHRvIGdldCBhcm91bmQgdGhlIGZhY3QgdGhhdCB3ZSBkb24n dAotCSAgICAga25vdyBob3cgdG8gZGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlw ZSBmcm9tIHRoZSB0eXBlcyBvZgotCSAgICAgdGhlIG9wZXJhbmRzLiAgKEkn bSBub3QgcmVhbGx5IHN1cmUgaG93IG11Y2ggd2UgZmVlbCB0aGUKLQkgICAg IG5lZWQgdG8gZHVwbGljYXRlIHRoZSBleGFjdCBydWxlcyBvZiB0aGUgY3Vy cmVudAotCSAgICAgbGFuZ3VhZ2UuICBUaGV5IGNhbiBnZXQgcmVhbGx5IGhh aXJ5LiAgQnV0IG5vdCB0byBkbyBzbwotCSAgICAgbWFrZXMgaXQgaGFyZCB0 byBkb2N1bWVudCBqdXN0IHdoYXQgd2UgKmRvKiBkbykuICAqLwotCi0JICAv KiBDYW4ndCBqdXN0IGNhbGwgaW5pdF90eXBlIGJlY2F1c2Ugd2Ugd291bGRu J3Qga25vdyB3aGF0Ci0JICAgICBuYW1lIHRvIGdpdmUgdGhlIHR5cGUuICAq LwotCSAgdmFsID0gYWxsb2NhdGVfdmFsdWUKLQkgICAgKHJlc3VsdF9sZW4g PiBnZGJhcmNoX2xvbmdfYml0IChjdXJyZW50X2dkYmFyY2gpIC8gSE9TVF9D SEFSX0JJVAotCSAgICAgPyBidWlsdGluX3R5cGVfbG9uZ19sb25nCi0JICAg ICA6IGJ1aWx0aW5fdHlwZV9sb25nKTsKKwkgIHZhbCA9IGFsbG9jYXRlX3Zh bHVlIChyZXN1bHRfdHlwZSk7CiAJICBzdG9yZV9zaWduZWRfaW50ZWdlciAo dmFsdWVfY29udGVudHNfcmF3ICh2YWwpLAogCQkJCVRZUEVfTEVOR1RIICh2 YWx1ZV90eXBlICh2YWwpKSwKIAkJCQl2KTsKQEAgLTE1MzYsMjMgKzE3Mjks MTkgQEAgc3RydWN0IHZhbHVlICoKIHZhbHVlX3BvcyAoc3RydWN0IHZhbHVl ICphcmcxKQogewogICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKyAgc3RydWN0IHR5 cGUgKnJlc3VsdF90eXBlOwogCiAgIGFyZzEgPSBjb2VyY2VfcmVmIChhcmcx KTsKLQogICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn MSkpOworICByZXN1bHRfdHlwZSA9IHVub3BfcmVzdWx0X3R5cGUgKFVOT1Bf UExVUywgdmFsdWVfdHlwZSAoYXJnMSkpOwogCiAgIGlmIChUWVBFX0NPREUg KHR5cGUpID09IFRZUEVfQ09ERV9GTFQpCi0gICAgcmV0dXJuIHZhbHVlX2Zy b21fZG91YmxlICh0eXBlLCB2YWx1ZV9hc19kb3VibGUgKGFyZzEpKTsKKyAg ICByZXR1cm4gdmFsdWVfZnJvbV9kb3VibGUgKHJlc3VsdF90eXBlLCB2YWx1 ZV9hc19kb3VibGUgKGFyZzEpKTsKICAgZWxzZSBpZiAoVFlQRV9DT0RFICh0 eXBlKSA9PSBUWVBFX0NPREVfREVDRkxPQVQpCi0gICAgcmV0dXJuIHZhbHVl X2Zyb21fZGVjZmxvYXQgKHR5cGUsIHZhbHVlX2NvbnRlbnRzIChhcmcxKSk7 CisgICAgcmV0dXJuIHZhbHVlX2Zyb21fZGVjZmxvYXQgKHJlc3VsdF90eXBl LCB2YWx1ZV9jb250ZW50cyAoYXJnMSkpOwogICBlbHNlIGlmIChpc19pbnRl Z3JhbF90eXBlICh0eXBlKSkKICAgICB7Ci0gICAgICAvKiBQZXJmb3JtIGlu dGVncmFsIHByb21vdGlvbiBmb3IgQU5TSSBDL0MrKy4gIEZJWE1FOiBXaGF0 IGFib3V0Ci0gICAgICAgICBGT1JUUkFOIGFuZCAodGhlIGRlbGV0ZWQpIGNo aWxsID8gICovCi0gICAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDwgVFlQ RV9MRU5HVEggKGJ1aWx0aW5fdHlwZV9pbnQpKQotCXR5cGUgPSBidWlsdGlu X3R5cGVfaW50OwotCi0gICAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25nZXN0 ICh0eXBlLCB2YWx1ZV9hc19sb25nIChhcmcxKSk7CisgICAgICByZXR1cm4g dmFsdWVfZnJvbV9sb25nZXN0IChyZXN1bHRfdHlwZSwgdmFsdWVfYXNfbG9u ZyAoYXJnMSkpOwogICAgIH0KICAgZWxzZQogICAgIHsKQEAgLTE1NjUsMTEg KzE3NTQsMTEgQEAgc3RydWN0IHZhbHVlICoKIHZhbHVlX25lZyAoc3RydWN0 IHZhbHVlICphcmcxKQogewogICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLSAgc3Ry dWN0IHR5cGUgKnJlc3VsdF90eXBlID0gdmFsdWVfdHlwZSAoYXJnMSk7Cisg IHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZTsKIAogICBhcmcxID0gY29lcmNl X3JlZiAoYXJnMSk7Ci0KICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFyZzEpKTsKKyAgcmVzdWx0X3R5cGUgPSB1bm9wX3Jlc3VsdF90 eXBlIChVTk9QX05FRywgdmFsdWVfdHlwZSAoYXJnMSkpOwogCiAgIGlmIChU WVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9ERUNGTE9BVCkKICAgICB7 CkBAIC0xNTg3LDE2ICsxNzc2LDEwIEBAIHZhbHVlX25lZyAoc3RydWN0IHZh bHVlICphcmcxKQogICAgICAgbWVtY3B5ICh2YWx1ZV9jb250ZW50c19yYXcg KHZhbCksIGRlY2J5dGVzLCBsZW4pOwogICAgICAgcmV0dXJuIHZhbDsKICAg ICB9Ci0KLSAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0ZM VCkKKyAgZWxzZSBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVf RkxUKQogICAgIHJldHVybiB2YWx1ZV9mcm9tX2RvdWJsZSAocmVzdWx0X3R5 cGUsIC12YWx1ZV9hc19kb3VibGUgKGFyZzEpKTsKICAgZWxzZSBpZiAoaXNf aW50ZWdyYWxfdHlwZSAodHlwZSkpCiAgICAgewotICAgICAgLyogUGVyZm9y bSBpbnRlZ3JhbCBwcm9tb3Rpb24gZm9yIEFOU0kgQy9DKysuICBGSVhNRTog V2hhdCBhYm91dAotICAgICAgICAgRk9SVFJBTiBhbmQgKHRoZSBkZWxldGVk KSBjaGlsbCA/ICAqLwotICAgICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA8 IFRZUEVfTEVOR1RIIChidWlsdGluX3R5cGVfaW50KSkKLQlyZXN1bHRfdHlw ZSA9IGJ1aWx0aW5fdHlwZV9pbnQ7Ci0KICAgICAgIHJldHVybiB2YWx1ZV9m cm9tX2xvbmdlc3QgKHJlc3VsdF90eXBlLCAtdmFsdWVfYXNfbG9uZyAoYXJn MSkpOwogICAgIH0KICAgZWxzZQpAQCAtMTYxMCwyMCArMTc5MywxNSBAQCBz dHJ1Y3QgdmFsdWUgKgogdmFsdWVfY29tcGxlbWVudCAoc3RydWN0IHZhbHVl ICphcmcxKQogewogICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLSAgc3RydWN0IHR5 cGUgKnJlc3VsdF90eXBlID0gdmFsdWVfdHlwZSAoYXJnMSk7CisgIHN0cnVj dCB0eXBlICpyZXN1bHRfdHlwZTsKIAogICBhcmcxID0gY29lcmNlX3JlZiAo YXJnMSk7Ci0KICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZzEpKTsKKyAgcmVzdWx0X3R5cGUgPSB1bm9wX3Jlc3VsdF90eXBlIChV Tk9QX0NPTVBMRU1FTlQsIHZhbHVlX3R5cGUgKGFyZzEpKTsKIAogICBpZiAo IWlzX2ludGVncmFsX3R5cGUgKHR5cGUpKQogICAgIGVycm9yIChfKCJBcmd1 bWVudCB0byBjb21wbGVtZW50IG9wZXJhdGlvbiBub3QgYW4gaW50ZWdlciBv ciBib29sZWFuLiIpKTsKIAotICAvKiBQZXJmb3JtIGludGVncmFsIHByb21v dGlvbiBmb3IgQU5TSSBDL0MrKy4KLSAgICAgRklYTUU6IFdoYXQgYWJvdXQg Rk9SVFJBTiA/ICAqLwotICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDwgVFlQ RV9MRU5HVEggKGJ1aWx0aW5fdHlwZV9pbnQpKQotICAgIHJlc3VsdF90eXBl ID0gYnVpbHRpbl90eXBlX2ludDsKLQogICByZXR1cm4gdmFsdWVfZnJvbV9s b25nZXN0IChyZXN1bHRfdHlwZSwgfnZhbHVlX2FzX2xvbmcgKGFyZzEpKTsK IH0KIAwKSW5kZXg6IHZhbG9wcy5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdmFsb3BzLmMsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMTgyCmRpZmYgLXUgLXAgLXUgLXAgLXIxLjE4MiB2 YWxvcHMuYwotLS0gdmFsb3BzLmMJMTggSmFuIDIwMDggMTc6MDc6NDAgLTAw MDAJMS4xODIKKysrIHZhbG9wcy5jCTQgRmViIDIwMDggMDA6MjA6MjIgLTAw MDAKQEAgLTQ3MSw2ICs0NzEsNDAgQEAgdmFsdWVfemVybyAoc3RydWN0IHR5 cGUgKnR5cGUsIGVudW0gbHZhbAogICByZXR1cm4gdmFsOwogfQogCisvKiBD cmVhdGUgYSB2YWx1ZSBvZiBudW1lcmljIHR5cGUgVFlQRSB0aGF0IGlzIG9u ZSwgYW5kIHJldHVybiBpdC4gICovCisKK3N0cnVjdCB2YWx1ZSAqCit2YWx1 ZV9vbmUgKHN0cnVjdCB0eXBlICp0eXBlLCBlbnVtIGx2YWxfdHlwZSBsdikK K3sKKyAgc3RydWN0IHR5cGUgKnR5cGUxID0gY2hlY2tfdHlwZWRlZiAodHlw ZSk7CisgIHN0cnVjdCB2YWx1ZSAqdmFsID0gTlVMTDsgLyogYXZvaWQgLVdh bGwgd2FybmluZyAqLworCisgIGlmIChUWVBFX0NPREUgKHR5cGUxKSA9PSBU WVBFX0NPREVfREVDRkxPQVQpCisgICAgeworICAgICAgc3RydWN0IHZhbHVl ICppbnRfb25lID0gdmFsdWVfZnJvbV9sb25nZXN0IChidWlsdGluX3R5cGVf aW50LCAxKTsKKyAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsOworICAgICAgZ2Ri X2J5dGUgdlsxNl07CisKKyAgICAgIGRlY2ltYWxfZnJvbV9pbnRlZ3JhbCAo aW50X29uZSwgdiwgVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlwZV9pbnQpKTsK KyAgICAgIHZhbCA9IHZhbHVlX2Zyb21fZGVjZmxvYXQgKHR5cGUsIHYpOwor ICAgIH0KKyAgZWxzZSBpZiAoVFlQRV9DT0RFICh0eXBlMSkgPT0gVFlQRV9D T0RFX0ZMVCkKKyAgICB7CisgICAgICB2YWwgPSB2YWx1ZV9mcm9tX2RvdWJs ZSAodHlwZSwgKERPVUJMRVNUKSAxKTsKKyAgICB9CisgIGVsc2UgaWYgKGlz X2ludGVncmFsX3R5cGUgKHR5cGUxKSkKKyAgICB7CisgICAgICB2YWwgPSB2 YWx1ZV9mcm9tX2xvbmdlc3QgKHR5cGUsIChMT05HRVNUKSAxKTsKKyAgICB9 CisgIGVsc2UKKyAgICB7CisgICAgICBlcnJvciAoXygiTm90IGEgbnVtZXJp YyB0eXBlLiIpKTsKKyAgICB9CisKKyAgVkFMVUVfTFZBTCAodmFsKSA9IGx2 OworICByZXR1cm4gdmFsOworfQorCiAvKiBSZXR1cm4gYSB2YWx1ZSB3aXRo IHR5cGUgVFlQRSBsb2NhdGVkIGF0IEFERFIuCiAKICAgIENhbGwgdmFsdWVf YXQgb25seSBpZiB0aGUgZGF0YSBuZWVkcyB0byBiZSBmZXRjaGVkIGltbWVk aWF0ZWx5OwpJbmRleDogdmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3ZhbHVlLmgsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMTA3CmRpZmYgLXUgLXAgLXUgLXAgLXIxLjEwNyB2 YWx1ZS5oCi0tLSB2YWx1ZS5oCTE4IEphbiAyMDA4IDE3OjA3OjQwIC0wMDAw CTEuMTA3CisrKyB2YWx1ZS5oCTQgRmViIDIwMDggMDA6MjA6MjMgLTAwMDAK QEAgLTM5Miw2ICszOTIsOCBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1 ZV9jYXN0IChzdHJ1Y3QgCiAKIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVl X3plcm8gKHN0cnVjdCB0eXBlICp0eXBlLCBlbnVtIGx2YWxfdHlwZSBsdik7 CiAKK2V4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX29uZSAoc3RydWN0IHR5 cGUgKnR5cGUsIGVudW0gbHZhbF90eXBlIGx2KTsKKwogZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqdmFsdWVfcmVwZWF0IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGlu dCBjb3VudCk7CiAKIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNj cmlwdCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICppZHgp OwpJbmRleDogdGVzdHN1aXRlL2dkYi5iYXNlL3doYXRpcy1leHAuZXhwCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3doYXRpcy1leHAuZXhwLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjcKZGlmZiAtdSAtcCAtdSAtcCAtcjEuNyB3aGF0 aXMtZXhwLmV4cAotLS0gdGVzdHN1aXRlL2dkYi5iYXNlL3doYXRpcy1leHAu ZXhwCTEgSmFuIDIwMDggMjI6NTM6MTkgLTAwMDAJMS43CisrKyB0ZXN0c3Vp dGUvZ2RiLmJhc2Uvd2hhdGlzLWV4cC5leHAJNCBGZWIgMjAwOCAwMDoyMDoy NCAtMDAwMApAQCAtMTEyLDcgKzExMiw3IEBAIGdkYl9leHBlY3QgewogCiBz ZW5kX2dkYiAid2hhdGlzIHgreVxuIgogZ2RiX2V4cGVjdCB7Ci0gICAgLXJl ICIuKnR5cGUgPSBsb25nLiokZ2RiX3Byb21wdCAkIiB7CisgICAgLXJlICIu KnR5cGUgPSBpbnQuKiRnZGJfcHJvbXB0ICQiIHsKICAgICAgICAgcGFzcyAi d2hhdGlzIHZhbHVlIG9mIHgreSIKICAgICAgIH0KICAgICAtcmUgIi4qJGdk Yl9wcm9tcHQgJCIgeyBmYWlsICJ3aGF0aXMgdmFsdWUgb2YgeCt5IiB9CkBA IC0xMjEsNyArMTIxLDcgQEAgZ2RiX2V4cGVjdCB7CiAKIHNlbmRfZ2RiICJ3 aGF0aXMgeC15XG4iCiBnZGJfZXhwZWN0IHsKLSAgICAtcmUgIi4qdHlwZSA9 IGxvbmcuKiRnZGJfcHJvbXB0ICQiIHsKKyAgICAtcmUgIi4qdHlwZSA9IGlu dC4qJGdkYl9wcm9tcHQgJCIgewogICAgICAgICBwYXNzICJ3aGF0aXMgdmFs dWUgb2YgeC15IgogICAgICAgfQogICAgIC1yZSAiLiokZ2RiX3Byb21wdCAk IiB7IGZhaWwgIndoYXRpcyB2YWx1ZSBvZiB4LXkiIH0KQEAgLTEzMCw3ICsx MzAsNyBAQCBnZGJfZXhwZWN0IHsKIAogc2VuZF9nZGIgIndoYXRpcyB4Knlc biIKIGdkYl9leHBlY3QgewotICAgIC1yZSAiLip0eXBlID0gbG9uZy4qJGdk Yl9wcm9tcHQgJCIgeworICAgIC1yZSAiLip0eXBlID0gaW50LiokZ2RiX3By b21wdCAkIiB7CiAgICAgICAgIHBhc3MgIndoYXRpcyB2YWx1ZSBvZiB4Knki CiAgICAgICB9CiAgICAgLXJlICIuKiRnZGJfcHJvbXB0ICQiIHsgZmFpbCAi d2hhdGlzIHZhbHVlIG9mIHgqeSIgfQo= ------=_Part_5422_31764689.1202085263112--