From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27310 invoked by alias); 20 Dec 2007 19:40:35 -0000 Received: (qmail 27300 invoked by uid 22791); 20 Dec 2007 19:40:33 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 20 Dec 2007 19:40:21 +0000 Received: from zps76.corp.google.com (zps76.corp.google.com [172.25.146.76]) by smtp-out.google.com with ESMTP id lBKJe9Il011743 for ; Thu, 20 Dec 2007 19:40:10 GMT Received: from wa-out-1112.google.com (wahv27.prod.google.com [10.114.248.27]) by zps76.corp.google.com with ESMTP id lBKJcHYV029979 for ; Thu, 20 Dec 2007 11:40:06 -0800 Received: by wa-out-1112.google.com with SMTP id v27so4141wah.4 for ; Thu, 20 Dec 2007 11:40:06 -0800 (PST) Received: by 10.114.175.16 with SMTP id x16mr375652wae.116.1198179606574; Thu, 20 Dec 2007 11:40:06 -0800 (PST) Received: by 10.115.107.7 with HTTP; Thu, 20 Dec 2007 11:40:06 -0800 (PST) Message-ID: Date: Thu, 20 Dec 2007 19:49:00 -0000 From: "Doug Evans" To: gdb-patches@sourceware.org Subject: Re: [RFA] patch for 2384, dangling TYPE_VPTR_BASETYPE In-Reply-To: <20071214002920.GA1208@caradoc.them.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_19977_13619321.1198179606575" References: <20071214002920.GA1208@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: 2007-12/txt/msg00352.txt.bz2 ------=_Part_19977_13619321.1198179606575 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 938 On Dec 13, 2007 4:29 PM, Daniel Jacobowitz wrote: > On Thu, Dec 13, 2007 at 04:10:55PM -0800, Doug Evans wrote: > > Ok to check in? Or any suggestions for what's needed instead? > > Your patch seems strange to me. Do we need the new fieldno / > basetype, or not? If we don't, we shouldn't be calculating it at all; > if we do, there should be something detectable which breaks when you > do this. It's not just a cache, since the interface doesn't offer any > other way to return the new fieldno / basetype besides in-place > modification. > > I happen to know that for GNU v3 - which is in practice the only thing > that any GDB users use nowadays - we don't need these fields any more. > We still use them, but we could do without, since the ABI is quite > clear on where to find the vtable pointer. > > For GNU v2, which is theoretically still supported, we do need this > information. Silly me. How about this? ------=_Part_19977_13619321.1198179606575 Content-Type: text/x-patch; name=gdb-071220-2384-3.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fafp5t340 Content-Disposition: attachment; filename=gdb-071220-2384-3.patch Content-length: 21224 MjAwNy0xMi0yMCAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCVBS IDIzODQKCSogZ2RidHlwZXMuYyAoZ2V0X3ZwdHJfZmllbGRubyk6IFJlbmFt ZWQgZnJvbSBmaWxsX2luX3ZwdHJfZmllbGRuby4KCVJldHVybiBiYXNldHlw ZSwgZmllbGRubyBpZiBmb3VuZC4gIEFsbCBjYWxsZXJzIHVwZGF0ZWQuCglE b24ndCBjYWNoZSBUWVBFX1ZQVFJfRklFTEROTywgVFlQRV9WUFRSX0JBU0VU WVBFIGlmIGZyb20gZGlmZmVyZW50CglvYmpmaWxlLgoJKiBnZGJ0eXBlcy5o IChnZXRfdnB0cl9maWVsZG5vKTogUmVuYW1lZCBmcm9tIGZpbGxfaW5fdnB0 cl9maWVsZG5vLgoJKiBzeW1maWxlLmggKGZpbGxfaW5fdnB0cl9maWVsZG5v KTogRGVsZXRlLgoKCSogZ2RiLmNwL2dkYjIzODQuZXhwOiBOZXcgZmlsZS4K CSogZ2RiLmNwL2dkYjIzODQuY2M6IE5ldyBmaWxlLgoJKiBnZGIuY3AvZ2Ri MjM4NC1iYXNlLmg6IE5ldyBmaWxlLgoJKiBnZGIuY3AvZ2RiMjM4NC1iYXNl LmNjOiBOZXcgZmlsZS4KCkluZGV4OiBnZGJ0eXBlcy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZ2RidHlw ZXMuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNDEKZGlmZiAtdSAtcCAt dSAtcCAtcjEuMTQxIGdkYnR5cGVzLmMKLS0tIGdkYnR5cGVzLmMJMjAgRGVj IDIwMDcgMTc6MTc6MjEgLTAwMDAJMS4xNDEKKysrIGdkYnR5cGVzLmMJMjAg RGVjIDIwMDcgMTk6MjU6NTkgLTAwMDAKQEAgLTEyODIsMTUgKzEyODIsMTkg QEAgbG9va3VwX3N0cnVjdF9lbHRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAog ICByZXR1cm4gKHN0cnVjdCB0eXBlICopIC0xOwkvKiBGb3IgbGludCAqLwog fQogCi0vKiBJZiBwb3NzaWJsZSwgbWFrZSB0aGUgdnB0cl9maWVsZG5vIGFu ZCB2cHRyX2Jhc2V0eXBlIGZpZWxkcyBvZiBUWVBFCi0gICB2YWxpZC4gIENh bGxlcnMgc2hvdWxkIGJlIGF3YXJlIHRoYXQgaW4gc29tZSBjYXNlcyAoZm9y IGV4YW1wbGUsCisvKiBMb29rdXAgdGhlIHZwdHIgYmFzZXR5cGUvZmllbGRu byB2YWx1ZXMgZm9yIFRZUEUuCisgICBJZiBmb3VuZCBzdG9yZSB2cHRyX2Jh c2V0eXBlIGluICpCQVNFVFlQRVAgaWYgbm9uLU5VTEwsIGFuZCByZXR1cm4K KyAgIHZwdHJfZmllbGRuby4gIEFsc28sIGlmIGZvdW5kIGFuZCBiYXNldHlw ZSBpcyBmcm9tIHRoZSBzYW1lIG9iamZpbGUsCisgICBjYWNoZSB0aGUgcmVz dWx0cy4KKyAgIElmIG5vdCBmb3VuZCwgcmV0dXJuIC0xIGFuZCBpZ25vcmUg QkFTRVRZUEVQLgorICAgQ2FsbGVycyBzaG91bGQgYmUgYXdhcmUgdGhhdCBp biBzb21lIGNhc2VzIChmb3IgZXhhbXBsZSwKICAgIHRoZSB0eXBlIG9yIG9u ZSBvZiBpdHMgYmFzZWNsYXNzZXMgaXMgYSBzdHViIHR5cGUgYW5kIHdlIGFy ZQogICAgZGVidWdnaW5nIGEgLm8gZmlsZSksIHRoaXMgZnVuY3Rpb24gd2ls bCBub3QgYmUgYWJsZSB0byBmaW5kIHRoZQogICAgdmlydHVhbCBmdW5jdGlv biB0YWJsZSBwb2ludGVyLCBhbmQgdnB0cl9maWVsZG5vIHdpbGwgcmVtYWlu IC0xIGFuZAotICAgdnB0cl9iYXNldHlwZSB3aWxsIHJlbWFpbiBOVUxMLiAg Ki8KKyAgIHZwdHJfYmFzZXR5cGUgd2lsbCByZW1haW4gTlVMTCBvciBpbmNv bXBsZXRlLiAgKi8KIAotdm9pZAotZmlsbF9pbl92cHRyX2ZpZWxkbm8gKHN0 cnVjdCB0eXBlICp0eXBlKQoraW50CitnZXRfdnB0cl9maWVsZG5vIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKipiYXNldHlwZXApCiB7CiAg IENIRUNLX1RZUEVERUYgKHR5cGUpOwogCkBAIC0xMzAyLDE2ICsxMzA2LDM0 IEBAIGZpbGxfaW5fdnB0cl9maWVsZG5vIChzdHJ1Y3QgdHlwZSAqdHlwZSkK ICAgICAgICAgIGlzIHZpcnR1YWwgKGFuZCBoZW5jZSB3ZSBjYW5ub3Qgc2hh cmUgdGhlIHRhYmxlIHBvaW50ZXIpLiAgKi8KICAgICAgIGZvciAoaSA9IDA7 IGkgPCBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOyBpKyspCiAJewotCSAg c3RydWN0IHR5cGUgKmJhc2VjbGFzcyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVf QkFTRUNMQVNTICh0eXBlLAotCQkJCQkJCQkgIGkpKTsKLQkgIGZpbGxfaW5f dnB0cl9maWVsZG5vIChiYXNlY2xhc3MpOwotCSAgaWYgKFRZUEVfVlBUUl9G SUVMRE5PIChiYXNlY2xhc3MpID49IDApCisJICBzdHJ1Y3QgdHlwZSAqYmFz ZWNsYXNzID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKHR5cGUs IGkpKTsKKwkgIGludCBmaWVsZG5vOworCSAgc3RydWN0IHR5cGUgKmJhc2V0 eXBlOworCisJICBmaWVsZG5vID0gZ2V0X3ZwdHJfZmllbGRubyAoYmFzZWNs YXNzLCAmYmFzZXR5cGUpOworCSAgaWYgKGZpZWxkbm8gPj0gMCkKIAkgICAg ewotCSAgICAgIFRZUEVfVlBUUl9GSUVMRE5PICh0eXBlKSA9IFRZUEVfVlBU Ul9GSUVMRE5PIChiYXNlY2xhc3MpOwotCSAgICAgIFRZUEVfVlBUUl9CQVNF VFlQRSAodHlwZSkgPSBUWVBFX1ZQVFJfQkFTRVRZUEUgKGJhc2VjbGFzcyk7 Ci0JICAgICAgYnJlYWs7CisJICAgICAgLyogSWYgdGhlIHR5cGUgY29tZXMg ZnJvbSBhIGRpZmZlcmVudCBvYmpmaWxlIHdlIGNhbid0IGNhY2hlCisJCSBp dCwgaXQgbWF5IGhhdmUgYSBkaWZmZXJlbnQgbGlmZXRpbWUuIFBSIDIzODQg Ki8KKwkgICAgICBpZiAoVFlQRV9PQkpGSUxFICh0eXBlKSA9PSBUWVBFX09C SkZJTEUgKGJhc2VjbGFzcykpCisJCXsKKwkJICBUWVBFX1ZQVFJfRklFTERO TyAodHlwZSkgPSBmaWVsZG5vOworCQkgIFRZUEVfVlBUUl9CQVNFVFlQRSAo dHlwZSkgPSBiYXNldHlwZTsKKwkJfQorCSAgICAgIGlmIChiYXNldHlwZXAp CisJCSpiYXNldHlwZXAgPSBiYXNldHlwZTsKKwkgICAgICByZXR1cm4gZmll bGRubzsKIAkgICAgfQogCX0KKworICAgICAgLyogTm90IGZvdW5kLiAgKi8K KyAgICAgIHJldHVybiAtMTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAg ICBpZiAoYmFzZXR5cGVwKQorCSpiYXNldHlwZXAgPSBUWVBFX1ZQVFJfQkFT RVRZUEUgKHR5cGUpOworICAgICAgcmV0dXJuIFRZUEVfVlBUUl9GSUVMRE5P ICh0eXBlKTsKICAgICB9CiB9CiAKSW5kZXg6IGdkYnR5cGVzLmgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9n ZGJ0eXBlcy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgyCmRpZmYgLXUg LXAgLXUgLXAgLXIxLjgyIGdkYnR5cGVzLmgKLS0tIGdkYnR5cGVzLmgJNCBE ZWMgMjAwNyAyMzozMzowMCAtMDAwMAkxLjgyCisrKyBnZGJ0eXBlcy5oCTIw IERlYyAyMDA3IDE5OjI1OjU5IC0wMDAwCkBAIC0zNzUsNyArMzc1LDkgQEAg c3RydWN0IG1haW5fdHlwZQogICAvKiBGaWVsZCBudW1iZXIgb2YgdGhlIHZp cnR1YWwgZnVuY3Rpb24gdGFibGUgcG9pbnRlciBpbgogICAgICBWUFRSX0JB U0VUWVBFLiAgSWYgLTEsIHdlIHdlcmUgdW5hYmxlIHRvIGZpbmQgdGhlIHZp cnR1YWwKICAgICAgZnVuY3Rpb24gdGFibGUgcG9pbnRlciBpbiBpbml0aWFs IHN5bWJvbCByZWFkaW5nLCBhbmQKLSAgICAgZmlsbF9pbl92cHRyX2ZpZWxk bm8gc2hvdWxkIGJlIGNhbGxlZCB0byBmaW5kIGl0IGlmIHBvc3NpYmxlLgor ICAgICBnZXRfdnB0cl9maWVsZG5vIHNob3VsZCBiZSBjYWxsZWQgdG8gZmlu ZCBpdCBpZiBwb3NzaWJsZS4KKyAgICAgZ2V0X3ZwdHJfZmllbGRubyB3aWxs IHVwZGF0ZSB0aGlzIGZpZWxkIGlmIHBvc3NpYmxlLgorICAgICBPdGhlcndp c2UgdGhlIHZhbHVlIGlzIGxlZnQgYXQgLTEuCiAKICAgICAgVW51c2VkIGlm IHRoaXMgdHlwZSBkb2VzIG5vdCBoYXZlIHZpcnR1YWwgZnVuY3Rpb25zLiAg Ki8KIApAQCAtMTI3NCw3ICsxMjc2LDcgQEAgZXh0ZXJuIHN0cnVjdCB0eXBl ICpsb29rdXBfdHlwZW5hbWUgKGNoYQogZXh0ZXJuIHN0cnVjdCB0eXBlICps b29rdXBfdGVtcGxhdGVfdHlwZSAoY2hhciAqLCBzdHJ1Y3QgdHlwZSAqLAog CQkJCQkgIHN0cnVjdCBibG9jayAqKTsKIAotZXh0ZXJuIHZvaWQgZmlsbF9p bl92cHRyX2ZpZWxkbm8gKHN0cnVjdCB0eXBlICopOworZXh0ZXJuIGludCBn ZXRfdnB0cl9maWVsZG5vIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAq Kik7CiAKIGV4dGVybiBpbnQgZ2V0X2Rlc3RydWN0b3JfZm5fZmllbGQgKHN0 cnVjdCB0eXBlICosIGludCAqLCBpbnQgKik7CiAKSW5kZXg6IHN5bWZpbGUu aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9z cmMvZ2RiL3N5bWZpbGUuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40Mwpk aWZmIC11IC1wIC11IC1wIC1yMS40MyBzeW1maWxlLmgKLS0tIHN5bWZpbGUu aAkyMiBPY3QgMjAwNyAwMToxNjozNCAtMDAwMAkxLjQzCisrKyBzeW1maWxl LmgJMjAgRGVjIDIwMDcgMTk6MjU6NTkgLTAwMDAKQEAgLTIwNyw4ICsyMDcs NiBAQCBleHRlcm4gc3RydWN0IHN5bXRhYiAqYWxsb2NhdGVfc3ltdGFiIChj CiAKIGV4dGVybiBpbnQgZnJlZV9uYW1lZF9zeW10YWJzIChjaGFyICopOwog Ci1leHRlcm4gdm9pZCBmaWxsX2luX3ZwdHJfZmllbGRubyAoc3RydWN0IHR5 cGUgKik7Ci0KIGV4dGVybiB2b2lkIGFkZF9zeW10YWJfZm5zIChzdHJ1Y3Qg c3ltX2ZucyAqKTsKIAogZXh0ZXJuIHZvaWQgc3ltc19mcm9tX29iamZpbGUg KHN0cnVjdCBvYmpmaWxlICosCkluZGV4OiBnbnUtdjItYWJpLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9n bnUtdjItYWJpLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjYKZGlmZiAt dSAtcCAtdSAtcCAtcjEuMjYgZ251LXYyLWFiaS5jCi0tLSBnbnUtdjItYWJp LmMJNSBTZXAgMjAwNyAwMDowNzowNyAtMDAwMAkxLjI2CisrKyBnbnUtdjIt YWJpLmMJMjAgRGVjIDIwMDcgMTk6MjU6NTkgLTAwMDAKQEAgLTg4LDggKzg4 LDYgQEAgZ251djJfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoq YQogewogICBzdHJ1Y3QgdmFsdWUgKmFyZzEgPSAqYXJnMXA7CiAgIHN0cnVj dCB0eXBlICp0eXBlMSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy ZzEpKTsKLQotCiAgIHN0cnVjdCB0eXBlICplbnRyeV90eXBlOwogICAvKiBG aXJzdCwgZ2V0IHRoZSB2aXJ0dWFsIGZ1bmN0aW9uIHRhYmxlIHBvaW50ZXIu ICBUaGF0IGNvbWVzCiAgICAgIHdpdGggYSBzdHJhbmdlIHR5cGUsIHNvIGNh c3QgaXQgdG8gdHlwZSBgcG9pbnRlciB0byBsb25nJyAod2hpY2gKQEAgLTEw Miw2ICsxMDAsOSBAQCBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3Qg dmFsdWUgKiphCiAJCQkJICAgICAoTE9OR0VTVCkgVFlQRV9GTl9GSUVMRF9W T0ZGU0VUIChmLCBqKSk7CiAgIHN0cnVjdCB0eXBlICpmY29udGV4dCA9IFRZ UEVfRk5fRklFTERfRkNPTlRFWFQgKGYsIGopOwogICBzdHJ1Y3QgdHlwZSAq Y29udGV4dDsKKyAgc3RydWN0IHR5cGUgKmNvbnRleHRfdnB0cl9iYXNldHlw ZTsKKyAgaW50IGNvbnRleHRfdnB0cl9maWVsZG5vOworCiAgIGlmIChmY29u dGV4dCA9PSBOVUxMKQogICAgIC8qIFdlIGRvbid0IGhhdmUgYW4gZmNvbnRl eHQgKGUuZy4gdGhlIHByb2dyYW0gd2FzIGNvbXBpbGVkIHdpdGgKICAgICAg ICBnKysgdmVyc2lvbiAxKS4gIFRyeSB0byBnZXQgdGhlIHZ0YmwgZnJvbSB0 aGUgVFlQRV9WUFRSX0JBU0VUWVBFLgpAQCAtMTIzLDEzICsxMjQsMTMgQEAg Z251djJfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQogICAv KiBUaGlzIHR5cGUgbWF5IGhhdmUgYmVlbiBkZWZpbmVkIGJlZm9yZSBpdHMg dmlydHVhbCBmdW5jdGlvbiB0YWJsZQogICAgICB3YXMuICBJZiBzbywgZmls bCBpbiB0aGUgdmlydHVhbCBmdW5jdGlvbiB0YWJsZSBlbnRyeSBmb3IgdGhl CiAgICAgIHR5cGUgbm93LiAgKi8KLSAgaWYgKFRZUEVfVlBUUl9GSUVMRE5P IChjb250ZXh0KSA8IDApCi0gICAgZmlsbF9pbl92cHRyX2ZpZWxkbm8gKGNv bnRleHQpOworICBjb250ZXh0X3ZwdHJfZmllbGRubyA9IGdldF92cHRyX2Zp ZWxkbm8gKGNvbnRleHQsICZjb250ZXh0X3ZwdHJfYmFzZXR5cGUpOworICAv KiBGSVhNRTogV2hhdCB0byBkbyBpZiB2cHRyX2ZpZWxkbm8gaXMgc3RpbGwg LTE/ICAqLwogCiAgIC8qIFRoZSB2aXJ0dWFsIGZ1bmN0aW9uIHRhYmxlIGlz IG5vdyBhbiBhcnJheSBvZiBzdHJ1Y3R1cmVzCiAgICAgIHdoaWNoIGhhdmUg dGhlIGZvcm0geyBpbnQxNiBvZmZzZXQsIGRlbHRhOyB2b2lkICpwZm47IH0u ICAqLwotICB2dGJsID0gdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChhcmcxLCAw LCBUWVBFX1ZQVFJfRklFTEROTyAoY29udGV4dCksCi0JCQkJVFlQRV9WUFRS X0JBU0VUWVBFIChjb250ZXh0KSk7CisgIHZ0YmwgPSB2YWx1ZV9wcmltaXRp dmVfZmllbGQgKGFyZzEsIDAsIGNvbnRleHRfdnB0cl9maWVsZG5vLAorCQkJ CWNvbnRleHRfdnB0cl9iYXNldHlwZSk7CiAKICAgLyogV2l0aCBvbGRlciB2 ZXJzaW9ucyBvZiBnKyssIHRoZSB2dGJsIGZpZWxkIHBvaW50ZWQgdG8gYW4g YXJyYXkKICAgICAgb2Ygc3RydWN0dXJlcy4gIE5vd2FkYXlzIGl0IHBvaW50 cyBkaXJlY3RseSB0byB0aGUgc3RydWN0dXJlLiAqLwpAQCAtMTk0LDYgKzE5 NSw4IEBAIGdudXYyX3ZhbHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2 LCAKICAgc3RydWN0IHN5bWJvbCAqc3ltOwogICBjaGFyICpkZW1hbmdsZWRf bmFtZSwgKnA7CiAgIHN0cnVjdCB0eXBlICpidHlwZTsKKyAgc3RydWN0IHR5 cGUgKmtub3duX3R5cGVfdnB0cl9iYXNldHlwZTsKKyAgaW50IGtub3duX3R5 cGVfdnB0cl9maWVsZG5vOwogCiAgIGlmIChmdWxsKQogICAgICpmdWxsID0g MDsKQEAgLTIxNCwxOCArMjE3LDE4IEBAIGdudXYyX3ZhbHVlX3J0dGlfdHlw ZSAoc3RydWN0IHZhbHVlICp2LCAKICAgICAgdGhlIHR5cGUgaW5mbyBmdW5j dGlvbnMsIHdoaWNoIGFyZSBhbHdheXMgcmlnaHQuICBEZWFsIHdpdGggaXQK ICAgICAgdW50aWwgdGhlbi4gICovCiAKLSAgLyogSWYgdGhlIHR5cGUgaGFz IG5vIHZwdHIgZmllbGRubywgdHJ5IHRvIGdldCBpdCBmaWxsZWQgaW4gKi8K LSAgaWYgKFRZUEVfVlBUUl9GSUVMRE5PKGtub3duX3R5cGUpIDwgMCkKLSAg ICBmaWxsX2luX3ZwdHJfZmllbGRubyhrbm93bl90eXBlKTsKKyAgLyogVHJ5 IHRvIGdldCB0aGUgdnB0ciBiYXNldHlwZSwgZmllbGRuby4gICovCisgIGtu b3duX3R5cGVfdnB0cl9maWVsZG5vID0gZ2V0X3ZwdHJfZmllbGRubyAoa25v d25fdHlwZSwKKwkJCQkJICAgICAgJmtub3duX3R5cGVfdnB0cl9iYXNldHlw ZSk7CiAKLSAgLyogSWYgd2Ugc3RpbGwgY2FuJ3QgZmluZCBvbmUsIGdpdmUg dXAgKi8KLSAgaWYgKFRZUEVfVlBUUl9GSUVMRE5PKGtub3duX3R5cGUpIDwg MCkKKyAgLyogSWYgd2UgY2FuJ3QgZmluZCBpdCwgZ2l2ZSB1cC4gICovCisg IGlmIChrbm93bl90eXBlX3ZwdHJfZmllbGRubyA8IDApCiAgICAgcmV0dXJu IE5VTEw7CiAKICAgLyogTWFrZSBzdXJlIG91ciBiYXNldHlwZSBhbmQga25v d24gdHlwZSBtYXRjaCwgb3RoZXJ3aXNlLCBjYXN0CiAgICAgIHNvIHdlIGNh biBnZXQgYXQgdGhlIHZ0YWJsZSBwcm9wZXJseS4KICAgKi8KLSAgYnR5cGUg PSBUWVBFX1ZQVFJfQkFTRVRZUEUgKGtub3duX3R5cGUpOworICBidHlwZSA9 IGtub3duX3R5cGVfdnB0cl9iYXNldHlwZTsKICAgQ0hFQ0tfVFlQRURFRiAo YnR5cGUpOwogICBpZiAoYnR5cGUgIT0ga25vd25fdHlwZSApCiAgICAgewpA QCAtMjM4LDEwICsyNDEsMTAgQEAgZ251djJfdmFsdWVfcnR0aV90eXBlIChz dHJ1Y3QgdmFsdWUgKnYsIAogICAgIHdlJ2Qgd2FzdGUgYSBidW5jaCBvZiB0 aW1lIGZpZ3VyaW5nIG91dCB3ZSBhbHJlYWR5IGtub3cgdGhlIHR5cGUuCiAg ICAgQmVzaWRlcywgd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgdHlwZSwganVz dCB0aGUgYWN0dWFsIHBvaW50ZXIKICAgKi8KLSAgaWYgKFZBTFVFX0FERFJF U1MgKHZhbHVlX2ZpZWxkICh2LCBUWVBFX1ZQVFJfRklFTEROTyAoa25vd25f dHlwZSkpKSA9PSAwKQorICBpZiAoVkFMVUVfQUREUkVTUyAodmFsdWVfZmll bGQgKHYsIGtub3duX3R5cGVfdnB0cl9maWVsZG5vKSkgPT0gMCkKICAgICBy ZXR1cm4gTlVMTDsKIAotICB2dGJsPXZhbHVlX2FzX2FkZHJlc3ModmFsdWVf ZmllbGQodixUWVBFX1ZQVFJfRklFTEROTyhrbm93bl90eXBlKSkpOworICB2 dGJsID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsdWVfZmllbGQgKHYsIGtub3du X3R5cGVfdnB0cl9maWVsZG5vKSk7CiAKICAgLyogVHJ5IHRvIGZpbmQgYSBz eW1ib2wgdGhhdCBpcyB0aGUgdnRhYmxlICovCiAgIG1pbnN5bT1sb29rdXBf bWluaW1hbF9zeW1ib2xfYnlfcGModnRibCk7CkluZGV4OiBnbnUtdjMtYWJp LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMv c3JjL2dkYi9nbnUtdjMtYWJpLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu MzgKZGlmZiAtdSAtcCAtdSAtcCAtcjEuMzggZ251LXYzLWFiaS5jCi0tLSBn bnUtdjMtYWJpLmMJNyBOb3YgMjAwNyAwNjo1Mzo0MSAtMDAwMAkxLjM4Cisr KyBnbnUtdjMtYWJpLmMJMjAgRGVjIDIwMDcgMTk6MjY6MDAgLTAwMDAKQEAg LTIwMSw2ICsyMDEsOCBAQCBnbnV2M19ydHRpX3R5cGUgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUsCiAgIHN0cnVjdCB0eXBlICpydW5fdGltZV90eXBlOwogICBz dHJ1Y3QgdHlwZSAqYmFzZV90eXBlOwogICBMT05HRVNUIG9mZnNldF90b190 b3A7CisgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZV92cHRyX2Jhc2V0eXBl OworICBpbnQgdmFsdWVzX3R5cGVfdnB0cl9maWVsZG5vOwogCiAgIC8qIFdl IG9ubHkgaGF2ZSBSVFRJIGZvciBjbGFzcyBvYmplY3RzLiAgKi8KICAgaWYg KFRZUEVfQ09ERSAodmFsdWVzX3R5cGUpICE9IFRZUEVfQ09ERV9DTEFTUykK QEAgLTIwOCw4ICsyMTAsOSBAQCBnbnV2M19ydHRpX3R5cGUgKHN0cnVjdCB2 YWx1ZSAqdmFsdWUsCiAKICAgLyogSWYgd2UgY2FuJ3QgZmluZCB0aGUgdmly dHVhbCB0YWJsZSBwb2ludGVyIGZvciB2YWx1ZXNfdHlwZSwgd2UKICAgICAg Y2FuJ3QgZmluZCB0aGUgUlRUSS4gICovCi0gIGZpbGxfaW5fdnB0cl9maWVs ZG5vICh2YWx1ZXNfdHlwZSk7Ci0gIGlmIChUWVBFX1ZQVFJfRklFTEROTyAo dmFsdWVzX3R5cGUpID09IC0xKQorICB2YWx1ZXNfdHlwZV92cHRyX2ZpZWxk bm8gPSBnZXRfdnB0cl9maWVsZG5vICh2YWx1ZXNfdHlwZSwKKwkJCQkJICAg ICAgICZ2YWx1ZXNfdHlwZV92cHRyX2Jhc2V0eXBlKTsKKyAgaWYgKHZhbHVl c190eXBlX3ZwdHJfZmllbGRubyA9PSAtMSkKICAgICByZXR1cm4gTlVMTDsK IAogICBpZiAodXNpbmdfZW5jX3ApCkBAIC0yMTcsNyArMjIwLDcgQEAgZ251 djNfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAogCiAgIC8qIEZl dGNoIFZBTFVFJ3MgdmlydHVhbCB0YWJsZSBwb2ludGVyLCBhbmQgdHdlYWsg aXQgdG8gcG9pbnQgYXQKICAgICAgYW4gaW5zdGFuY2Ugb2Ygb3VyIGltYWdp bmFyeSBnZGJfZ251X3YzX2FiaV92dGFibGUgc3RydWN0dXJlLiAgKi8KLSAg YmFzZV90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9WUFRSX0JBU0VUWVBF ICh2YWx1ZXNfdHlwZSkpOworICBiYXNlX3R5cGUgPSBjaGVja190eXBlZGVm ICh2YWx1ZXNfdHlwZV92cHRyX2Jhc2V0eXBlKTsKICAgaWYgKHZhbHVlc190 eXBlICE9IGJhc2VfdHlwZSkKICAgICB7CiAgICAgICB2YWx1ZSA9IHZhbHVl X2Nhc3QgKGJhc2VfdHlwZSwgdmFsdWUpOwpAQCAtMjI1LDcgKzIyOCw3IEBA IGdudXYzX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKIAkqdXNp bmdfZW5jX3AgPSAxOwogICAgIH0KICAgdnRhYmxlX2FkZHJlc3MKLSAgICA9 IHZhbHVlX2FzX2FkZHJlc3MgKHZhbHVlX2ZpZWxkICh2YWx1ZSwgVFlQRV9W UFRSX0ZJRUxETk8gKHZhbHVlc190eXBlKSkpOworICAgID0gdmFsdWVfYXNf YWRkcmVzcyAodmFsdWVfZmllbGQgKHZhbHVlLCB2YWx1ZXNfdHlwZV92cHRy X2ZpZWxkbm8pKTsKICAgdnRhYmxlID0gdmFsdWVfYXRfbGF6eSAodnRhYmxl X3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ0YWJsZV9hZGRy ZXNzIC0gdnRhYmxlX2FkZHJlc3NfcG9pbnRfb2Zmc2V0ICgpKTsKICAgCkBA IC0zODEsNiArMzg0LDcgQEAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3Ry dWN0IHR5cGUgKnR5cAogICBzdHJ1Y3QgdmFsdWUgKm9mZnNldF92YWwsICp2 YmFzZV9hcnJheTsKICAgQ09SRV9BRERSIHZ0YWJsZV9hZGRyZXNzOwogICBs b25nIGludCBjdXJfYmFzZV9vZmZzZXQsIGJhc2Vfb2Zmc2V0OworICBpbnQg dmJhc2V0eXBlX3ZwdHJfZmllbGRubzsKIAogICAvKiBJZiBpdCBpc24ndCBh IHZpcnR1YWwgYmFzZSwgdGhpcyBpcyBlYXN5LiAgVGhlIG9mZnNldCBpcyBp biB0aGUKICAgICAgdHlwZSBkZWZpbml0aW9uLiAgKi8KQEAgLTQxNCwxMSAr NDE4LDEwIEBAIGdudXYzX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBl ICp0eXAKICAgICAgd2UgaGF2ZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9y IHRoYXQgYmFzZWNsYXNzLiAgKi8KIAogICB2YmFzZXR5cGUgPSBUWVBFX1ZQ VFJfQkFTRVRZUEUgKHR5cGUpOwotICBpZiAoVFlQRV9WUFRSX0ZJRUxETk8g KHZiYXNldHlwZSkgPCAwKQotICAgIGZpbGxfaW5fdnB0cl9maWVsZG5vICh2 YmFzZXR5cGUpOworICB2YmFzZXR5cGVfdnB0cl9maWVsZG5vID0gZ2V0X3Zw dHJfZmllbGRubyAodmJhc2V0eXBlLCBOVUxMKTsKIAotICBpZiAoVFlQRV9W UFRSX0ZJRUxETk8gKHZiYXNldHlwZSkgPj0gMAotICAgICAgJiYgVFlQRV9G SUVMRF9CSVRQT1MgKHZiYXNldHlwZSwgVFlQRV9WUFRSX0ZJRUxETk8gKHZi YXNldHlwZSkpICE9IDApCisgIGlmICh2YmFzZXR5cGVfdnB0cl9maWVsZG5v ID49IDAKKyAgICAgICYmIFRZUEVfRklFTERfQklUUE9TICh2YmFzZXR5cGUs IHZiYXNldHlwZV92cHRyX2ZpZWxkbm8pICE9IDApCiAgICAgZXJyb3IgKF8o IklsbGVnYWwgdnB0ciBvZmZzZXQgaW4gY2xhc3MgJXMiKSwKIAkgICBUWVBF X05BTUUgKHZiYXNldHlwZSkgPyBUWVBFX05BTUUgKHZiYXNldHlwZSkgOiAi PHVua25vd24+Iik7CiAKSW5kZXg6IHRlc3RzdWl0ZS9nZGIuY3AvZ2RiMjM4 NC1iYXNlLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IHRl c3RzdWl0ZS9nZGIuY3AvZ2RiMjM4NC1iYXNlLmNjCmRpZmYgLU4gdGVzdHN1 aXRlL2dkYi5jcC9nZGIyMzg0LWJhc2UuY2MKLS0tIC9kZXYvbnVsbAkxIEph biAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0ZXN0c3VpdGUvZ2RiLmNwL2dk YjIzODQtYmFzZS5jYwkyMCBEZWMgMjAwNyAxOToyNjowMCAtMDAwMApAQCAt MCwwICsxLDEyIEBACisjaW5jbHVkZSAiZ2RiMjM4NC1iYXNlLmgiCisKK2Jh c2U6OmJhc2UgKGludCBfeCkKKyAgOiB4IChfeCkKK3sKK30KKworaW50Citi YXNlOjptZXRoICgpCit7CisgIHJldHVybiB4OworfQpJbmRleDogdGVzdHN1 aXRlL2dkYi5jcC9nZGIyMzg0LWJhc2UuaAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClJDUyBmaWxlOiB0ZXN0c3VpdGUvZ2RiLmNwL2dkYjIzODQtYmFzZS5o CmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5jcC9nZGIyMzg0LWJhc2UuaAotLS0g L2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHRlc3Rz dWl0ZS9nZGIuY3AvZ2RiMjM4NC1iYXNlLmgJMjAgRGVjIDIwMDcgMTk6MjY6 MDAgLTAwMDAKQEAgLTAsMCArMSw3IEBACitjbGFzcyBiYXNlCit7CisgcHVi bGljOgorICBiYXNlIChpbnQgX3gpOworICBpbnQgeDsKKyAgdmlydHVhbCBp bnQgbWV0aCAoKTsKK307CkluZGV4OiB0ZXN0c3VpdGUvZ2RiLmNwL2dkYjIz ODQuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1 aXRlL2dkYi5jcC9nZGIyMzg0LmNjCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5j cC9nZGIyMzg0LmNjCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDow MCAtMDAwMAorKysgdGVzdHN1aXRlL2dkYi5jcC9nZGIyMzg0LmNjCTIwIERl YyAyMDA3IDE5OjI2OjAwIC0wMDAwCkBAIC0wLDAgKzEsMjIgQEAKKyNpbmNs dWRlICJnZGIyMzg0LWJhc2UuaCIKKworY2xhc3MgZGVyaXZlZCA6IHB1Ymxp YyBiYXNlCit7CisgcHVibGljOgorICBkZXJpdmVkIChpbnQpOworfTsKKwor ZGVyaXZlZDo6ZGVyaXZlZCAoaW50IF94KQorICA6IGJhc2UgKF94KQorewor fQorCitpbnQgZzsKKworaW50CittYWluICgpCit7CisgIGRlcml2ZWQgZCAo NDIpOworICBnID0gZC5tZXRoICgpOyAvLyBzZXQgYnJlYWtwb2ludCBoZXJl CisgIHJldHVybiAwOworfQpJbmRleDogdGVzdHN1aXRlL2dkYi5jcC9nZGIy Mzg0LmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiB0ZXN0 c3VpdGUvZ2RiLmNwL2dkYjIzODQuZXhwCmRpZmYgLU4gdGVzdHN1aXRlL2dk Yi5jcC9nZGIyMzg0LmV4cAotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6 MDA6MDAgLTAwMDAKKysrIHRlc3RzdWl0ZS9nZGIuY3AvZ2RiMjM4NC5leHAJ MjAgRGVjIDIwMDcgMTk6MjY6MDAgLTAwMDAKQEAgLTAsMCArMSw5OSBAQAor IyBDb3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKworIyBXaGVuIGdkYiByZXNvbHZlcyB0 eXBlIGluZm9ybWF0aW9uIGZvciBjbGFzcyAiZGVyaXZlZCIgZnJvbSBvYmpm aWxlCisjIGdkYjIzODQsIGl0IHVzZSB0byBmaWxsIGluIHRoZSBUWVBFX1ZQ VFJfQkFTRVRZUEUgZmllbGQgd2l0aCBjbGFzcyAiYmFzZSIKKyMgZnJvbSBv YmpmaWxlIGdkYjIzODQtYmFzZS5zby4gIFdoZW4gdGhlIHByb2dyYW0gaXMg cmVydW4gdGhlIHR5cGUKKyMgaW5mb3JtYXRpb24gZm9yIGJhc2UtaW4tc28t YmFzZS5zbyBpcyBkaXNjYXJkZWQgbGVhdmluZworIyBUWVBFX1ZQVFJfQkFT RVRZUEUgZGFuZ2xpbmcuCisKK2lmICR0cmFjZWxldmVsIHRoZW4geworICAg IHN0cmFjZSAkdHJhY2VsZXZlbAorfQorCitpZiB7IFtza2lwX2NwbHVzX3Rl c3RzXSB9IHsgY29udGludWUgfQorCitzZXQgcHJtc19pZCAyMzg0CitzZXQg YnVnX2lkIDAKKworc2V0IHRlc3RmaWxlICJnZGIyMzg0Igorc2V0IHNyY2Zp bGUgJHt0ZXN0ZmlsZX0uY2MKK3NldCBiaW5maWxlICRvYmpkaXIvJHN1YmRp ci8kdGVzdGZpbGUKKworc2V0IGxpYmZpbGUgImdkYjIzODQtYmFzZSIKK3Nl dCBsaWJzcmNmaWxlICR7bGliZmlsZX0uY2MKK3NldCBzb2ZpbGUgJG9iamRp ci8kc3ViZGlyLyR7bGliZmlsZX0uc28KKworIyBDcmVhdGUgYW5kIHNvdXJj ZSB0aGUgZmlsZSB0aGF0IHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRo ZSBjb21waWxlcgorIyB1c2VkIHRvIGNvbXBpbGUgdGhlIHRlc3QgY2FzZS4K K2lmIFtnZXRfY29tcGlsZXJfaW5mbyAke2JpbmZpbGV9ICJjKysiXSB7Cisg ICAgcmV0dXJuIC0xCit9CisKK2lmIHsgW2dkYl9jb21waWxlX3NobGliICRz cmNkaXIvJHN1YmRpci8kbGlic3JjZmlsZSAkc29maWxlIHtkZWJ1ZyBjKyt9 XSAhPSAiIgorICAgICB8fCBbZ2RiX2NvbXBpbGUgJHNyY2Rpci8kc3ViZGly LyRzcmNmaWxlICRiaW5maWxlIGV4ZWN1dGFibGUgW2xpc3QgZGVidWcgImMr KyIgc2hsaWI9JHtzb2ZpbGV9XV0gIT0gIiJ9IHsKKyAgICB1bnRlc3RlZCBn ZGIyMzg0LmV4cAorICAgIHJldHVybiAtMQorfQorCitnZGJfZXhpdAorZ2Ri X3N0YXJ0CitnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIK K2dkYl9sb2FkICR7YmluZmlsZX0KKyNnZGJfbG9hZF9zaGxpYnMgJHtzb2Zp bGV9CisKK3NldCBicF9sb2NhdGlvbiBbZ2RiX2dldF9saW5lX251bWJlciAi c2V0IGJyZWFrcG9pbnQgaGVyZSJdCisKKyMgU2V0IGEgYnJlYWtwb2ludCB3 aXRoIG11bHRpcGxlIGxvY2F0aW9ucy4KKworZ2RiX3Rlc3QgImJyZWFrICRz cmNmaWxlOiRicF9sb2NhdGlvbiIgXAorICAgICJCcmVha3BvaW50LiphdC4q IGZpbGUgLiokc3JjZmlsZSwgbGluZS4qIiBcCisgICAgInNldCBicmVha3Bv aW50IgorCitnZGJfcnVuX2NtZAorZ2RiX2V4cGVjdCB7CisgICAgLXJlICJC cmVha3BvaW50IFxbMC05XF0rLC4qbWFpbiBcXCguKlxcKS4qJGdkYl9wcm9t cHQgJCIgeworCXBhc3MgInJ1biB0byBicmVha3BvaW50IgorICAgIH0KKyAg ICAtcmUgIiRnZGJfcHJvbXB0ICQiIHsKKwlmYWlsICJydW4gdG8gYnJlYWtw b2ludCIKKyAgICB9CisgICAgdGltZW91dCB7CisJZmFpbCAicnVuIHRvIGJy ZWFrcG9pbnQgKHRpbWVvdXQpIgorICAgIH0KK30KKworZ2RiX3Rlc3QgInBy aW50IGQubWV0aCAoKSIgXAorICAgICIuKjQyLioiIFwKKyAgICAicHJpbnQg ZC5tZXRoICgpIgorCisjIE5vdyB0cnkgYWdhaW4uICBnZGIncyB3aXRob3V0 IHRoZSBmaXggd2lsbCBob3BlZnVsbHkgc2VndiBoZXJlCisKK2dkYl9ydW5f Y21kCitnZGJfZXhwZWN0IHsKKyAgICAtcmUgIkJyZWFrcG9pbnQgXFswLTlc XSssLiptYWluIFxcKC4qXFwpLiokZ2RiX3Byb21wdCAkIiB7CisJcGFzcyAi cnVuIHRvIGJyZWFrcG9pbnQgIzIiCisgICAgfQorICAgIC1yZSAiJGdkYl9w cm9tcHQgJCIgeworCWZhaWwgInJ1biB0byBicmVha3BvaW50ICMyIgorICAg IH0KKyAgICB0aW1lb3V0IHsKKwlmYWlsICJydW4gdG8gYnJlYWtwb2ludCAj MiAodGltZW91dCkiCisgICAgfQorfQorCitnZGJfdGVzdCAicHJpbnQgZC5t ZXRoICgpIiBcCisgICAgIi4qNDIuKiIgXAorICAgICJnZGIyMzg0Igo= ------=_Part_19977_13619321.1198179606575--