From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17753 invoked by alias); 20 Nov 2013 01:02:52 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 17741 invoked by uid 89); 20 Nov 2013 01:02:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.3 required=5.0 tests=AWL,BAYES_95,RDNS_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: mail-oa0-f47.google.com Received: from Unknown (HELO mail-oa0-f47.google.com) (209.85.219.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Wed, 20 Nov 2013 01:02:48 +0000 Received: by mail-oa0-f47.google.com with SMTP id k1so4571757oag.6 for ; Tue, 19 Nov 2013 17:02:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=03mXbMU3WypqdStOOZVWNY0zJl9Qtkm5S0+KyaM9HbU=; b=TVNAyqGLr4H5b2mbMXBJPa0GFX7i1PN+xNJy4lQWOHmv3BnqnqTW9fIC+N/DlHBh55 5M/QCcRs4lFMLDU2NfO82o1YgKE3LjHWg6BsnSKxX+IYK5jHC0BftnwYMNxS+U4waDcD ca0K86u65HzX9dZILcOyvw5d2Xia+fcDqQoSKC1UX9TgHQ9pIm82CpyVgr4kOvKw4vWo Rhcw2HMIleStt0qQdIV81rcdOQxwlVqzftmuvY5ZLmRdjfaIsGQyh3mpZzZACkA6efoq i/JDqUr2SShc2maqd2qxTUEM34wdjEtuE7IUyDhoo/F3821qTVUunz2+5BuK+TUf+5GT s/Jg== X-Gm-Message-State: ALoCoQl6EPLRlymd5oMapY/cohp1wXuIkz9O7iKy+41HJpXVQjnOUU3+USaMTzWL+7m8d6e0HAeXdGKSvyEox1Oi3Xnl6LkGkzE9Nmc/IqlUyfpOSfoa1ynRmYSgwOufvJo8/GJ6VCM7op1xCu818Eoz8lraS1z6piV1r6JOtYl69GaTjARBDzKlV+P2LnWZ8M8j6gMpdlL/OP5W6ha293WvzxPFEJ0D2g== MIME-Version: 1.0 X-Received: by 10.182.29.98 with SMTP id j2mr11402600obh.30.1384909360643; Tue, 19 Nov 2013 17:02:40 -0800 (PST) Received: by 10.182.32.39 with HTTP; Tue, 19 Nov 2013 17:02:40 -0800 (PST) In-Reply-To: References: <20121221064539.0E1A7100704@rong.mtv.corp.google.com> <20121221092532.GA7055@kam.mff.cuni.cz> <50EB31B7.9090307@redhat.com> Date: Wed, 20 Nov 2013 07:03:00 -0000 Message-ID: Subject: Re: atomic update of profile counters (issue7000044) From: Rong Xu To: Richard Henderson Cc: Richard Biener , Andrew Pinski , Xinliang David Li , Jan Hubicka , GCC Patches , reply@codereview.appspotmail.com Content-Type: multipart/mixed; boundary=001a11c2c4847ceb3504eb9156da X-IsSubscribed: yes X-SW-Source: 2013-11/txt/msg02444.txt.bz2 --001a11c2c4847ceb3504eb9156da Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1969 Hi all, I merged this old patch with current trunk. I also make the following changes (1) not using weak references. Now every *profile_atomic() has it's own .o so that none of them will be in the final binary if -fprofile-generate-atomic is not specified. (2) more value profilers have the atomic version. (3) not link to libatomic. I used to link the libatomic in the presence of -fprofile-generate-atomic, per Andrew's suggestion. It used to work. But now if I can add -latomic in the SPEC, it cannot find the libatomic.so.1 (unless I specify the PATH). I did not find an easy way to statically link libatomic.a. Andrew: Do you have any suggestion? Or should we let the user link to libatomic.a if the builtins are not expanded? Is this OK for trunk? Thanks, -Rong On Mon, Jan 7, 2013 at 12:55 PM, Rong Xu wrote: > Function __gcov_indirect_call_profiler_atomic (which contains call to > the atomic function) is always emitted in libgcov. > Since we only link libatomic when -fprofile-gen-atomic is specified, > we have to make the atomic function weak -- otherwise, there is a > unsat for regular FDO gen build (of course, when the builtin is not > expanded). > > An alternative it to always link libatomic together with libgcov. Then > we don't need the weak stuff. I'm not sure when one is better. > > -Rong > > On Mon, Jan 7, 2013 at 12:36 PM, Richard Henderson wrote: >> On 01/03/2013 04:42 PM, Rong Xu wrote: >>> It links libatomic when -fprofile-gen-atomic is specified for FDO >>> instrumentation build. Here I assume libatomic is always installed. >>> Andrew: do you think if this is reasonable? >>> >>> It also disables the functionality if target does not support weak >>> (ie. TARGET_SUPPORTS_WEAK == 0). >> >> Since you're linking libatomic, you don't need weak references. >> >> I think its ok to assume libatomic is installed, given that the >> user has had to explicitly use the command-line option. >> >> >> r~ --001a11c2c4847ceb3504eb9156da Content-Type: text/plain; charset=US-ASCII; name="libgcov_atomic_new.txt" Content-Disposition: attachment; filename="libgcov_atomic_new.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ho7v7olg0 Content-length: 23998 MjAxMy0xMS0xOSAgUm9uZyBYdSAgPHh1ckBnb29nbGUuY29tPgoKCSogZ2Nj L2djb3YtaW8uaDogQWRkIGF0b21pYyBmdW5jdGlvbiBtYWNyb3MgZm9yIGNv bXBpbGVyIHVzZS4KCSogZ2NjL2NvbW1vbi5vcHQgKGZwcm9maWxlLWdlbmVy YXRlLWF0b21pYyk6IE5ldyBvcHRpb24uCgkqIGdjYy90cmVlLXByb2ZpbGUu YyAoZ2ltcGxlX2luaXRfZWRnZV9wcm9maWxlcik6IFN1cHBvcnQgZm9yCiAg ICAgICAgYXRvbWljIGNvdW50ZXIgdXBkYXRlLgoJKGdpbXBsZV9nZW5fZWRn ZV9wcm9maWxlcik6IERpdHRvLgoJKiBsaWJnY2MvbGliZ2Nvdi1wcm9maWxl ci5jIAoJKF9fZ2Nvdl9pbnRlcnZhbF9wcm9maWxlcl9hdG9taWMpOiBEaXR0 by4KCShfX2djb3ZfcG93Ml9wcm9maWxlcl9hdG9taWMpOiBEaXR0by4KCShf X2djb3Zfb25lX3ZhbHVlX3Byb2ZpbGVyX2JvZHlfYXRvbWljKTogRGl0dG8u CgkoX19nY292X29uZV92YWx1ZV9wcm9maWxlcl9hdG9taWMpOiBEaXR0by4K CShfX2djb3ZfaW5kaXJlY3RfY2FsbF9wcm9maWxlcl9hdG9taWMpOiBEaXR0 by4KCShfX2djb3ZfaW5kaXJlY3RfY2FsbF9wcm9maWxlcl92Ml9hdG9taWMp OiBEaXR0by4KCShfX2djb3ZfdGltZV9wcm9maWxlcl9hdG9taWMpOiBEaXR0 by4KCShfX2djb3ZfYXZlcmFnZV9wcm9maWxlcl9hdG9taWMpOiBEaXR0by4K CSogZ2NjL2djYy5jOiBMaW5rIGxpYmF0b21pYyB3aGVuIC1mcHJvZmlsZS1n ZW5lcmF0ZS1hdG9taWMgdXNlZC4KCSogbGliZ2NjL01ha2VmaWxlLmluOiBB ZGQgYXRvbWljIG9iamVjdHMuCgpJbmRleDogZ2NjL2NvbW1vbi5vcHQKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2NvbW1vbi5vcHQJKHJldmlz aW9uIDIwNTA1MykKKysrIGdjYy9jb21tb24ub3B0CSh3b3JraW5nIGNvcHkp CkBAIC0xNjg0LDYgKzE2ODQsMTUgQEAgZnByb2ZpbGUtY29ycmVjdGlvbgog Q29tbW9uIFJlcG9ydCBWYXIoZmxhZ19wcm9maWxlX2NvcnJlY3Rpb24pCiBF bmFibGUgY29ycmVjdGlvbiBvZiBmbG93IGluY29uc2lzdGVudCBwcm9maWxl IGRhdGEgaW5wdXQKIAorOyBmcHJvZmlsZS1nZW5lcmF0ZS1hdG9taWM9MDog ZGVmYXVsdCBhbmQgZGlzYWJsZSBhdG9taWNhbCB1cGRhdGUuCis7IGZwcm9m aWxlLWdlbmVyYXRlLWF0b21pYz0xOiBhdG9taWNhbGx5IHVwZGF0ZSBlZGdl IHByb2ZpbGUgY291bnRlcnMuCis7IGZwcm9maWxlLWdlbmVyYXRlLWF0b21p Yz0yOiBhdG9taWNhbGx5IHVwZGF0ZSB2YWx1ZSBwcm9maWxlIGNvdW50ZXJz LgorOyBmcHJvZmlsZS1nZW5lcmF0ZS1hdG9taWM9MzogYXRvbWljYWxseSB1 cGRhdGUgZWRnZSBhbmQgdmFsdWUgcHJvZmlsZSBjb3VudGVycy4KKzsgb3Ro ZXIgdmFsdWVzIHdpbGwgYmUgaWdub3JlZCAoZmFsbCBiYWNrIHRvIHRoZSBk ZWZhdWx0IG9mIDApLgorZnByb2ZpbGUtZ2VuZXJhdGUtYXRvbWljPQorQ29t bW9uIEpvaW5lZCBVSW50ZWdlciBSZXBvcnQgVmFyKGZsYWdfcHJvZmlsZV9n ZW5lcmF0ZV9hdG9taWMpIEluaXQoMykgT3B0aW1pemF0aW9uCitmcHJvZmls ZS1nZW5lcmF0ZS1hdG9taWM9WzAuLjNdIEF0b21pY2FsIGluY3JlbWVudHMg b2YgcHJvZmlsZSBjb3VudGVycy4KKwogZnByb2ZpbGUtZ2VuZXJhdGUKIENv bW1vbgogRW5hYmxlIGNvbW1vbiBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHBy b2ZpbGUgaW5mbyBmb3IgcHJvZmlsZSBmZWVkYmFjayBkaXJlY3RlZCBvcHRp bWl6YXRpb25zCkluZGV4OiBnY2MvdHJlZS1wcm9maWxlLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZ2NjL3RyZWUtcHJvZmlsZS5jCShyZXZpc2lv biAyMDUwNTMpCisrKyBnY2MvdHJlZS1wcm9maWxlLmMJKHdvcmtpbmcgY29w eSkKQEAgLTE1NSw2ICsxNTUsOSBAQCBnaW1wbGVfaW5pdF9lZGdlX3Byb2Zp bGVyICh2b2lkKQogICB0cmVlIGljX3Byb2ZpbGVyX2ZuX3R5cGU7CiAgIHRy ZWUgYXZlcmFnZV9wcm9maWxlcl9mbl90eXBlOwogICB0cmVlIHRpbWVfcHJv ZmlsZXJfZm5fdHlwZTsKKyAgY29uc3QgY2hhciAqZm5fbmFtZTsKKyAgYm9v bCBwcm9maWxlX2dlbl92YWx1ZV9hdG9taWMgPSAoZmxhZ19wcm9maWxlX2dl bmVyYXRlX2F0b21pYyA9PSAyIHx8CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZsYWdfcHJvZmlsZV9nZW5lcmF0ZV9hdG9taWMgPT0g Myk7CiAKICAgaWYgKCFnY292X3R5cGVfbm9kZSkKICAgICB7CkBAIC0xNjcs OSArMTcwLDEwIEBAIGdpbXBsZV9pbml0X2VkZ2VfcHJvZmlsZXIgKHZvaWQp CiAJCQkJCSAgZ2Nvdl90eXBlX3B0ciwgZ2Nvdl90eXBlX25vZGUsCiAJCQkJ CSAgaW50ZWdlcl90eXBlX25vZGUsCiAJCQkJCSAgdW5zaWduZWRfdHlwZV9u b2RlLCBOVUxMX1RSRUUpOworICAgICAgZm5fbmFtZSA9IHByb2ZpbGVfZ2Vu X3ZhbHVlX2F0b21pYyA/ICJfX2djb3ZfaW50ZXJ2YWxfcHJvZmlsZXJfYXRv bWljIiA6IAorICAgICAgICAgICAgICAgICAiX19nY292X2ludGVydmFsX3By b2ZpbGVyIjsKICAgICAgIHRyZWVfaW50ZXJ2YWxfcHJvZmlsZXJfZm4KLQkg ICAgICA9IGJ1aWxkX2ZuX2RlY2wgKCJfX2djb3ZfaW50ZXJ2YWxfcHJvZmls ZXIiLAotCQkJCSAgICAgaW50ZXJ2YWxfcHJvZmlsZXJfZm5fdHlwZSk7CisJ ICAgICAgPSBidWlsZF9mbl9kZWNsIChmbl9uYW1lLCBpbnRlcnZhbF9wcm9m aWxlcl9mbl90eXBlKTsKICAgICAgIFRSRUVfTk9USFJPVyAodHJlZV9pbnRl cnZhbF9wcm9maWxlcl9mbikgPSAxOwogICAgICAgREVDTF9BVFRSSUJVVEVT ICh0cmVlX2ludGVydmFsX3Byb2ZpbGVyX2ZuKQogCT0gdHJlZV9jb25zIChn ZXRfaWRlbnRpZmllciAoImxlYWYiKSwgTlVMTCwKQEAgLTE4MCwyMSArMTg0 LDIzIEBAIGdpbXBsZV9pbml0X2VkZ2VfcHJvZmlsZXIgKHZvaWQpCiAJICAg ICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKHZvaWRfdHlwZV9ub2Rl LAogCQkJCQkgIGdjb3ZfdHlwZV9wdHIsIGdjb3ZfdHlwZV9ub2RlLAogCQkJ CQkgIE5VTExfVFJFRSk7Ci0gICAgICB0cmVlX3BvdzJfcHJvZmlsZXJfZm4g PSBidWlsZF9mbl9kZWNsICgiX19nY292X3BvdzJfcHJvZmlsZXIiLAotCQkJ CQkJICAgcG93Ml9wcm9maWxlcl9mbl90eXBlKTsKKyAgICAgIGZuX25hbWUg PSBwcm9maWxlX2dlbl92YWx1ZV9hdG9taWMgPyAiX19nY292X3BvdzJfcHJv ZmlsZXJfYXRvbWljIiA6IAorICAgICAgICAgICAgICAgICAiX19nY292X3Bv dzJfcHJvZmlsZXIiOworICAgICAgdHJlZV9wb3cyX3Byb2ZpbGVyX2ZuID0g YnVpbGRfZm5fZGVjbCAoZm5fbmFtZSwgcG93Ml9wcm9maWxlcl9mbl90eXBl KTsKICAgICAgIFRSRUVfTk9USFJPVyAodHJlZV9wb3cyX3Byb2ZpbGVyX2Zu KSA9IDE7CiAgICAgICBERUNMX0FUVFJJQlVURVMgKHRyZWVfcG93Ml9wcm9m aWxlcl9mbikKIAk9IHRyZWVfY29ucyAoZ2V0X2lkZW50aWZpZXIgKCJsZWFm IiksIE5VTEwsCiAJCSAgICAgREVDTF9BVFRSSUJVVEVTICh0cmVlX3BvdzJf cHJvZmlsZXJfZm4pKTsKIAogICAgICAgLyogdm9pZCAoKikgKGdjb3ZfdHlw ZSAqLCBnY292X3R5cGUpICAqLworICAgICAgZm5fbmFtZSA9IHByb2ZpbGVf Z2VuX3ZhbHVlX2F0b21pYyA/ICJfX2djb3Zfb25lX3ZhbHVlX3Byb2ZpbGVy X2F0b21pYyIgOgorICAgICAgICAgICAgICAgICAiX19nY292X29uZV92YWx1 ZV9wcm9maWxlciI7CiAgICAgICBvbmVfdmFsdWVfcHJvZmlsZXJfZm5fdHlw ZQogCSAgICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0ICh2b2lkX3R5 cGVfbm9kZSwKIAkJCQkJICBnY292X3R5cGVfcHRyLCBnY292X3R5cGVfbm9k ZSwKIAkJCQkJICBOVUxMX1RSRUUpOwogICAgICAgdHJlZV9vbmVfdmFsdWVf cHJvZmlsZXJfZm4KLQkgICAgICA9IGJ1aWxkX2ZuX2RlY2wgKCJfX2djb3Zf b25lX3ZhbHVlX3Byb2ZpbGVyIiwKLQkJCQkgICAgIG9uZV92YWx1ZV9wcm9m aWxlcl9mbl90eXBlKTsKKwkgICAgICA9IGJ1aWxkX2ZuX2RlY2wgKGZuX25h bWUsIG9uZV92YWx1ZV9wcm9maWxlcl9mbl90eXBlKTsKICAgICAgIFRSRUVf Tk9USFJPVyAodHJlZV9vbmVfdmFsdWVfcHJvZmlsZXJfZm4pID0gMTsKICAg ICAgIERFQ0xfQVRUUklCVVRFUyAodHJlZV9vbmVfdmFsdWVfcHJvZmlsZXJf Zm4pCiAJPSB0cmVlX2NvbnMgKGdldF9pZGVudGlmaWVyICgibGVhZiIpLCBO VUxMLApAQCAtMjExLDkgKzIxNywxMCBAQCBnaW1wbGVfaW5pdF9lZGdlX3By b2ZpbGVyICh2b2lkKQogCQkJCQkgICAgICBnY292X3R5cGVfcHRyLCBnY292 X3R5cGVfbm9kZSwKIAkJCQkJICAgICAgcHRyX3ZvaWQsIHB0cl92b2lkLAog CQkJCQkgICAgICBOVUxMX1RSRUUpOworICAgICAgICAgIGZuX25hbWUgPSBw cm9maWxlX2dlbl92YWx1ZV9hdG9taWMgPyAiX19nY292X2luZGlyZWN0X2Nh bGxfcHJvZmlsZXJfYXRvbWljIiA6IAorICAgICAgICAgICAgICAgICAgICAg Il9fZ2Nvdl9pbmRpcmVjdF9jYWxsX3Byb2ZpbGVyIjsKIAkgIHRyZWVfaW5k aXJlY3RfY2FsbF9wcm9maWxlcl9mbgotCQkgID0gYnVpbGRfZm5fZGVjbCAo Il9fZ2Nvdl9pbmRpcmVjdF9jYWxsX3Byb2ZpbGVyIiwKLQkJCQkJIGljX3By b2ZpbGVyX2ZuX3R5cGUpOworCQkgID0gYnVpbGRfZm5fZGVjbCAoZm5fbmFt ZSwgaWNfcHJvZmlsZXJfZm5fdHlwZSk7CiAgICAgICAgIH0KICAgICAgIGVs c2UKICAgICAgICAgewpAQCAtMjIzLDkgKzIzMCwxMCBAQCBnaW1wbGVfaW5p dF9lZGdlX3Byb2ZpbGVyICh2b2lkKQogCQkJCQkgICAgICBnY292X3R5cGVf bm9kZSwKIAkJCQkJICAgICAgcHRyX3ZvaWQsCiAJCQkJCSAgICAgIE5VTExf VFJFRSk7CisgICAgICAgICAgZm5fbmFtZSA9IHByb2ZpbGVfZ2VuX3ZhbHVl X2F0b21pYyA/ICJfX2djb3ZfaW5kaXJlY3RfY2FsbF9wcm9maWxlcl92Ml9h dG9taWMiIDogCisgICAgICAgICAgICAgICAgICAgICAiX19nY292X2luZGly ZWN0X2NhbGxfcHJvZmlsZXJfdjIiOwogCSAgdHJlZV9pbmRpcmVjdF9jYWxs X3Byb2ZpbGVyX2ZuCi0JCSAgPSBidWlsZF9mbl9kZWNsICgiX19nY292X2lu ZGlyZWN0X2NhbGxfcHJvZmlsZXJfdjIiLAotCQkJCQkgaWNfcHJvZmlsZXJf Zm5fdHlwZSk7CisJCSAgPSBidWlsZF9mbl9kZWNsIChmbl9uYW1lLCBpY19w cm9maWxlcl9mbl90eXBlKTsKICAgICAgICAgfQogICAgICAgVFJFRV9OT1RI Uk9XICh0cmVlX2luZGlyZWN0X2NhbGxfcHJvZmlsZXJfZm4pID0gMTsKICAg ICAgIERFQ0xfQVRUUklCVVRFUyAodHJlZV9pbmRpcmVjdF9jYWxsX3Byb2Zp bGVyX2ZuKQpAQCAtMjM2LDkgKzI0NCwxMCBAQCBnaW1wbGVfaW5pdF9lZGdl X3Byb2ZpbGVyICh2b2lkKQogICAgICAgdGltZV9wcm9maWxlcl9mbl90eXBl CiAJICAgICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0ICh2b2lkX3R5 cGVfbm9kZSwKIAkJCQkJICBnY292X3R5cGVfcHRyLCBOVUxMX1RSRUUpOwor ICAgICAgZm5fbmFtZSA9IHByb2ZpbGVfZ2VuX3ZhbHVlX2F0b21pYyA/ICJf X2djb3ZfdGltZV9wcm9maWxlcl9hdG9taWMiIDogCisgICAgICAgICAgICAg ICAgICJfX2djb3ZfdGltZV9wcm9maWxlciI7CiAgICAgICB0cmVlX3RpbWVf cHJvZmlsZXJfZm4KLQkgICAgICA9IGJ1aWxkX2ZuX2RlY2wgKCJfX2djb3Zf dGltZV9wcm9maWxlciIsCi0JCQkJICAgICB0aW1lX3Byb2ZpbGVyX2ZuX3R5 cGUpOworCSAgICAgID0gYnVpbGRfZm5fZGVjbCAoZm5fbmFtZSwgdGltZV9w cm9maWxlcl9mbl90eXBlKTsKICAgICAgIFRSRUVfTk9USFJPVyAodHJlZV90 aW1lX3Byb2ZpbGVyX2ZuKSA9IDE7CiAgICAgICBERUNMX0FUVFJJQlVURVMg KHRyZWVfdGltZV9wcm9maWxlcl9mbikKIAk9IHRyZWVfY29ucyAoZ2V0X2lk ZW50aWZpZXIgKCJsZWFmIiksIE5VTEwsCkBAIC0yNDgsOSArMjU3LDEwIEBA IGdpbXBsZV9pbml0X2VkZ2VfcHJvZmlsZXIgKHZvaWQpCiAgICAgICBhdmVy YWdlX3Byb2ZpbGVyX2ZuX3R5cGUKIAkgICAgICA9IGJ1aWxkX2Z1bmN0aW9u X3R5cGVfbGlzdCAodm9pZF90eXBlX25vZGUsCiAJCQkJCSAgZ2Nvdl90eXBl X3B0ciwgZ2Nvdl90eXBlX25vZGUsIE5VTExfVFJFRSk7CisgICAgICBmbl9u YW1lID0gcHJvZmlsZV9nZW5fdmFsdWVfYXRvbWljID8gIl9fZ2Nvdl9hdmVy YWdlX3Byb2ZpbGVyX2F0b21pYyIgOiAKKyAgICAgICAgICAgICAgICAgIl9f Z2Nvdl9hdmVyYWdlX3Byb2ZpbGVyIjsKICAgICAgIHRyZWVfYXZlcmFnZV9w cm9maWxlcl9mbgotCSAgICAgID0gYnVpbGRfZm5fZGVjbCAoIl9fZ2Nvdl9h dmVyYWdlX3Byb2ZpbGVyIiwKLQkJCQkgICAgIGF2ZXJhZ2VfcHJvZmlsZXJf Zm5fdHlwZSk7CisJICAgICAgPSBidWlsZF9mbl9kZWNsIChmbl9uYW1lLCBh dmVyYWdlX3Byb2ZpbGVyX2ZuX3R5cGUpOwogICAgICAgVFJFRV9OT1RIUk9X ICh0cmVlX2F2ZXJhZ2VfcHJvZmlsZXJfZm4pID0gMTsKICAgICAgIERFQ0xf QVRUUklCVVRFUyAodHJlZV9hdmVyYWdlX3Byb2ZpbGVyX2ZuKQogCT0gdHJl ZV9jb25zIChnZXRfaWRlbnRpZmllciAoImxlYWYiKSwgTlVMTCwKQEAgLTI4 NCw5ICsyOTQsMjQgQEAgZ2ltcGxlX2dlbl9lZGdlX3Byb2ZpbGVyIChpbnQg ZWRnZW5vLCBlZGdlIGUpCiB7CiAgIHRyZWUgcmVmLCBvbmUsIGdjb3ZfdHlw ZV90bXBfdmFyOwogICBnaW1wbGUgc3RtdDEsIHN0bXQyLCBzdG10MzsKKyAg Ym9vbCBwcm9maWxlX2dlbl9lZGdlX2F0b21pYyA9IChmbGFnX3Byb2ZpbGVf Z2VuZXJhdGVfYXRvbWljID09IDEgfHwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmbGFnX3Byb2ZpbGVfZ2VuZXJhdGVfYXRvbWljID09 IDMpOwogCisgIG9uZSA9IGJ1aWxkX2ludF9jc3QgKGdjb3ZfdHlwZV9ub2Rl LCAxKTsKKyAgaWYgKHByb2ZpbGVfZ2VuX2VkZ2VfYXRvbWljKQorICAgIHsK KyAgICAgIHJlZiA9IHRyZWVfY292ZXJhZ2VfY291bnRlcl9hZGRyIChHQ09W X0NPVU5URVJfQVJDUywgZWRnZW5vKTsKKyAgICAgIC8qIF9fYXRvbWljX2Zl dGNoX2FkZCAoJmNvdW50ZXIsIDEsIE1FTU1PREVMX1JFTEFYRUQpOyAqLwor ICAgICAgc3RtdDEgPSBnaW1wbGVfYnVpbGRfY2FsbCAoYnVpbHRpbl9kZWNs X2V4cGxpY2l0ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0NPVl9UWVBFX0FUT01JQ19GRVRDSF9BREQpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMywgcmVmLCBvbmUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBidWlsZF9pbnRfY3N0IChpbnRlZ2Vy X3R5cGVfbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTUVNTU9ERUxfUkVMQVhFRCkpOworICAgICAgZ3NpX2luc2VydF9vbl9l ZGdlIChlLCBzdG10MSk7CisgICAgICByZXR1cm47CisgICAgfQorCiAgIHJl ZiA9IHRyZWVfY292ZXJhZ2VfY291bnRlcl9yZWYgKEdDT1ZfQ09VTlRFUl9B UkNTLCBlZGdlbm8pOwotICBvbmUgPSBidWlsZF9pbnRfY3N0IChnY292X3R5 cGVfbm9kZSwgMSk7CiAgIGdjb3ZfdHlwZV90bXBfdmFyID0gbWFrZV90ZW1w X3NzYV9uYW1lIChnY292X3R5cGVfbm9kZSwKIAkJCQkJICBOVUxMLCAiUFJP Rl9lZGdlX2NvdW50ZXIiKTsKICAgc3RtdDEgPSBnaW1wbGVfYnVpbGRfYXNz aWduIChnY292X3R5cGVfdG1wX3ZhciwgcmVmKTsKSW5kZXg6IGdjYy9nY292 LWlvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2djb3YtaW8u aAkocmV2aXNpb24gMjA1MDUzKQorKysgZ2NjL2djb3YtaW8uaAkod29ya2lu ZyBjb3B5KQpAQCAtMjExLDYgKzIxMSwxNSBAQCB0eXBlZGVmIHVuc2lnbmVk IGdjb3ZfdHlwZV91bnNpZ25lZCBfX2F0dHJpYnV0ZV9fCiAjZWxzZSAvKiAh SU5fTElCR0NPViAqLwogLyogQWJvdXQgdGhlIGhvc3QgKi8KIAorLyogTWFj cm9zIGZvciBhdG9taWNhbCBjb3VudGVyIHVwZGF0ZS4gICovCisjaWYgTE9O R19MT05HX1RZUEVfU0laRSA+IDMyCisjZGVmaW5lIEdDT1ZfVFlQRV9BVE9N SUNfRkVUQ0hfQUREX0ZOIF9fYXRvbWljX2ZldGNoX2FkZF84CisjZGVmaW5l IEdDT1ZfVFlQRV9BVE9NSUNfRkVUQ0hfQUREIEJVSUxUX0lOX0FUT01JQ19G RVRDSF9BRERfOAorI2Vsc2UKKyNkZWZpbmUgR0NPVl9UWVBFX0FUT01JQ19G RVRDSF9BRERfRk4gX19hdG9taWNfZmV0Y2hfYWRkXzQKKyNkZWZpbmUgR0NP Vl9UWVBFX0FUT01JQ19GRVRDSF9BREQgQlVJTFRfSU5fQVRPTUlDX0ZFVENI X0FERF80CisjZW5kaWYKKwogdHlwZWRlZiB1bnNpZ25lZCBnY292X3Vuc2ln bmVkX3Q7CiB0eXBlZGVmIHVuc2lnbmVkIGdjb3ZfcG9zaXRpb25fdDsKIC8q IGdjb3ZfdHlwZSBpcyB0eXBlZGVmJ2QgZWxzZXdoZXJlIGZvciB0aGUgY29t cGlsZXIgKi8KSW5kZXg6IGxpYmdjYy9saWJnY292LXByb2ZpbGVyLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gbGliZ2NjL2xpYmdjb3YtcHJvZmls ZXIuYwkocmV2aXNpb24gMjA1MDUzKQorKysgbGliZ2NjL2xpYmdjb3YtcHJv ZmlsZXIuYwkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTUgQEAgc2Vl IHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3Bl Y3QKICNkZWZpbmUgSU5fTElCR0NPViAxCiAjaW5jbHVkZSAiZ2Nvdi1pby5o IgogCisvKiBNYWNyb3MgZm9yIGF0b21pY2FsIGNvdW50ZXIgdXBkYXRlLiAg Ki8KKyNpZiBMT05HX0xPTkdfVFlQRV9TSVpFID4gMzIKKyNkZWZpbmUgR0NP Vl9UWVBFX0FUT01JQ19GRVRDSF9BRERfRk4gX19hdG9taWNfZmV0Y2hfYWRk XzgKKyNkZWZpbmUgR0NPVl9UWVBFX0FUT01JQ19GRVRDSF9BREQgQlVJTFRf SU5fQVRPTUlDX0ZFVENIX0FERF84CisjZWxzZQorI2RlZmluZSBHQ09WX1RZ UEVfQVRPTUlDX0ZFVENIX0FERF9GTiBfX2F0b21pY19mZXRjaF9hZGRfNAor I2RlZmluZSBHQ09WX1RZUEVfQVRPTUlDX0ZFVENIX0FERCBCVUlMVF9JTl9B VE9NSUNfRkVUQ0hfQUREXzQKKyNlbmRpZgorCiAjaWZkZWYgTF9nY292X2lu dGVydmFsX3Byb2ZpbGVyCiAvKiBJZiBWQUxVRSBpcyBpbiBpbnRlcnZhbCA8 U1RBUlQsIFNUQVJUICsgU1RFUFMgLSAxPiwgdGhlbiBpbmNyZWFzZXMgdGhl CiAgICBjb3JyZXNwb25kaW5nIGNvdW50ZXIgaW4gQ09VTlRFUlMuICBJZiB0 aGUgVkFMVUUgaXMgYWJvdmUgb3IgYmVsb3cKQEAgLTUzLDYgKzYyLDIxIEBA IF9fZ2Nvdl9pbnRlcnZhbF9wcm9maWxlciAoZ2Nvdl90eXBlICpjb3VudGVy cywgZ2NvCiB9CiAjZW5kaWYKIAorI2lmZGVmIExfZ2Nvdl9pbnRlcnZhbF9w cm9maWxlcl9hdG9taWMKK3ZvaWQKK19fZ2Nvdl9pbnRlcnZhbF9wcm9maWxl cl9hdG9taWMgKGdjb3ZfdHlwZSAqY291bnRlcnMsIGdjb3ZfdHlwZSB2YWx1 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFy dCwgdW5zaWduZWQgc3RlcHMpCit7CisgIGdjb3ZfdHlwZSBkZWx0YSA9IHZh bHVlIC0gc3RhcnQ7CisgIGlmIChkZWx0YSA8IDApCisgICAgR0NPVl9UWVBF X0FUT01JQ19GRVRDSF9BRERfRk4gKCZjb3VudGVyc1tzdGVwcyArIDFdLCAx LCBNRU1NT0RFTF9SRUxBWEVEKTsKKyAgZWxzZSBpZiAoZGVsdGEgPj0gc3Rl cHMpCisgICAgR0NPVl9UWVBFX0FUT01JQ19GRVRDSF9BRERfRk4gKCZjb3Vu dGVyc1tzdGVwc10sIDEsIE1FTU1PREVMX1JFTEFYRUQpOworICBlbHNlCisg ICAgR0NPVl9UWVBFX0FUT01JQ19GRVRDSF9BRERfRk4gKCZjb3VudGVyc1tk ZWx0YV0sIDEsIE1FTU1PREVMX1JFTEFYRUQpOworfQorI2VuZGlmCisKICNp ZmRlZiBMX2djb3ZfcG93Ml9wcm9maWxlcgogLyogSWYgVkFMVUUgaXMgYSBw b3dlciBvZiB0d28sIENPVU5URVJTWzFdIGlzIGluY3JlbWVudGVkLiAgT3Ro ZXJ3aXNlCiAgICBDT1VOVEVSU1swXSBpcyBpbmNyZW1lbnRlZC4gICovCkBA IC02Nyw2ICs5MSwxNyBAQCBfX2djb3ZfcG93Ml9wcm9maWxlciAoZ2Nvdl90 eXBlICpjb3VudGVycywgZ2Nvdl90eQogfQogI2VuZGlmCiAKKyNpZmRlZiBM X2djb3ZfcG93Ml9wcm9maWxlcl9hdG9taWMKK3ZvaWQKK19fZ2Nvdl9wb3cy X3Byb2ZpbGVyX2F0b21pYyAoZ2Nvdl90eXBlICpjb3VudGVycywgZ2Nvdl90 eXBlIHZhbHVlKQoreworICBpZiAodmFsdWUgJiAodmFsdWUgLSAxKSkKKyAg ICBHQ09WX1RZUEVfQVRPTUlDX0ZFVENIX0FERF9GTiAoJmNvdW50ZXJzWzBd LCAxLCBNRU1NT0RFTF9SRUxBWEVEKTsKKyAgZWxzZQorICAgIEdDT1ZfVFlQ RV9BVE9NSUNfRkVUQ0hfQUREX0ZOICgmY291bnRlcnNbMV0sIDEsIE1FTU1P REVMX1JFTEFYRUQpOworfQorI2VuZGlmCisKIC8qIFRyaWVzIHRvIGRldGVy bWluZSB0aGUgbW9zdCBjb21tb24gdmFsdWUgYW1vbmcgaXRzIGlucHV0cy4g IENoZWNrcyBpZiB0aGUKICAgIHZhbHVlIHN0b3JlZCBpbiBDT1VOVEVSU1sw XSBtYXRjaGVzIFZBTFVFLiAgSWYgdGhpcyBpcyB0aGUgY2FzZSwgQ09VTlRF UlNbMV0KICAgIGlzIGluY3JlbWVudGVkLiAgSWYgdGhpcyBpcyBub3QgdGhl IGNhc2UgYW5kIENPVU5URVJTWzFdIGlzIG5vdCB6ZXJvLApAQCAtOTIsNiAr MTI3LDIyIEBAIF9fZ2Nvdl9vbmVfdmFsdWVfcHJvZmlsZXJfYm9keSAoZ2Nv dl90eXBlICpjb3VudGVyCiAgIGNvdW50ZXJzWzJdKys7CiB9CiAKKy8qIEF0 b21pYyB1cGRhdGUgdmVyc2lvbiBvZiBfX2djb3Zfb25lX3ZhbHVlX3Byb2Zp bGVfYm9keSgpLiAgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAKK19fZ2Nvdl9v bmVfdmFsdWVfcHJvZmlsZXJfYm9keV9hdG9taWMgKGdjb3ZfdHlwZSAqY291 bnRlcnMsIGdjb3ZfdHlwZSB2YWx1ZSkKK3sKKyAgaWYgKHZhbHVlID09IGNv dW50ZXJzWzBdKQorICAgIEdDT1ZfVFlQRV9BVE9NSUNfRkVUQ0hfQUREX0ZO ICgmY291bnRlcnNbMV0sIDEsIE1FTU1PREVMX1JFTEFYRUQpOworICBlbHNl IGlmIChjb3VudGVyc1sxXSA9PSAwKQorICAgIHsgICAgCisgICAgICBjb3Vu dGVyc1sxXSA9IDE7IAorICAgICAgY291bnRlcnNbMF0gPSB2YWx1ZTsKKyAg ICB9ICAgIAorICBlbHNlIAorICAgIEdDT1ZfVFlQRV9BVE9NSUNfRkVUQ0hf QUREX0ZOICgmY291bnRlcnNbMV0sIC0xLCBNRU1NT0RFTF9SRUxBWEVEKTsK KyAgR0NPVl9UWVBFX0FUT01JQ19GRVRDSF9BRERfRk4gKCZjb3VudGVyc1sy XSwgMSwgTUVNTU9ERUxfUkVMQVhFRCk7Cit9CisKICNpZmRlZiBMX2djb3Zf b25lX3ZhbHVlX3Byb2ZpbGVyCiB2b2lkCiBfX2djb3Zfb25lX3ZhbHVlX3By b2ZpbGVyIChnY292X3R5cGUgKmNvdW50ZXJzLCBnY292X3R5cGUgdmFsdWUp CkBAIC0xMDAsOSArMTUxLDEzIEBAIF9fZ2Nvdl9vbmVfdmFsdWVfcHJvZmls ZXIgKGdjb3ZfdHlwZSAqY291bnRlcnMsIGdjCiB9CiAjZW5kaWYKIAotI2lm ZGVmIExfZ2Nvdl9pbmRpcmVjdF9jYWxsX3Byb2ZpbGVyCi0vKiBUaGlzIGZ1 bmN0aW9uIGV4aXN0IG9ubHkgZm9yIHdvcmthcm91bmQgb2YgYmludXRpbHMg YnVnIDE0MzQyLgotICAgT25jZSB0aGlzIGNvbXBhdGliaWxpdHkgaGFjayBp cyBvYnNvbGV0dGUsIGl0IGNhbiBiZSByZW1vdmVkLiAgKi8KKyNpZmRlZiBM X2djb3Zfb25lX3ZhbHVlX3Byb2ZpbGVyX2F0b21pYwordm9pZAorX19nY292 X29uZV92YWx1ZV9wcm9maWxlcl9hdG9taWMgKGdjb3ZfdHlwZSAqY291bnRl cnMsIGdjb3ZfdHlwZSB2YWx1ZSkKK3sKKyAgX19nY292X29uZV92YWx1ZV9w cm9maWxlcl9ib2R5X2F0b21pYyAoY291bnRlcnMsIHZhbHVlKTsKK30KKyNl bmRpZgogCiAvKiBCeSBkZWZhdWx0LCB0aGUgQysrIGNvbXBpbGVyIHdpbGwg dXNlIGZ1bmN0aW9uIGFkZHJlc3NlcyBpbiB0aGUKICAgIHZ0YWJsZSBlbnRy aWVzLiAgU2V0dGluZyBUQVJHRVRfVlRBQkxFX1VTRVNfREVTQ1JJUFRPUlMg dG8gbm9uemVybwpAQCAtMTIxLDYgKzE3NiwxMCBAQCBfX2djb3Zfb25lX3Zh bHVlX3Byb2ZpbGVyIChnY292X3R5cGUgKmNvdW50ZXJzLCBnYwogI2RlZmlu ZSBWVEFCTEVfVVNFU19ERVNDUklQVE9SUyAwCiAjZW5kaWYKIAorI2lmZGVm IExfZ2Nvdl9pbmRpcmVjdF9jYWxsX3Byb2ZpbGVyCisvKiBUaGlzIGZ1bmN0 aW9uIGV4aXN0IG9ubHkgZm9yIHdvcmthcm91bmQgb2YgYmludXRpbHMgYnVn IDE0MzQyLgorICAgT25jZSB0aGlzIGNvbXBhdGliaWxpdHkgaGFjayBpcyBv YnNvbGV0dGUsIGl0IGNhbiBiZSByZW1vdmVkLiAgKi8KKwogLyogVHJpZXMg dG8gZGV0ZXJtaW5lIHRoZSBtb3N0IGNvbW1vbiB2YWx1ZSBhbW9uZyBpdHMg aW5wdXRzLiAqLwogdm9pZAogX19nY292X2luZGlyZWN0X2NhbGxfcHJvZmls ZXIgKGdjb3ZfdHlwZSogY291bnRlciwgZ2Nvdl90eXBlIHZhbHVlLApAQCAt MTM0LDggKzE5MywyMSBAQCBfX2djb3ZfaW5kaXJlY3RfY2FsbF9wcm9maWxl ciAoZ2Nvdl90eXBlKiBjb3VudGVyLAogICAgICAgICAgICYmICoodm9pZCAq KikgY3VyX2Z1bmMgPT0gKih2b2lkICoqKSBjYWxsZWVfZnVuYykpCiAgICAg X19nY292X29uZV92YWx1ZV9wcm9maWxlcl9ib2R5IChjb3VudGVyLCB2YWx1 ZSk7CiB9CisjZW5kaWYKIAorI2lmZGVmIExfZ2Nvdl9pbmRpcmVjdF9jYWxs X3Byb2ZpbGVyX2F0b21pYworLyogQXRvbWljIHVwZGF0ZSB2ZXJzaW9uIG9m IF9fZ2Nvdl9pbmRpcmVjdF9jYWxsX3Byb2ZpbGVyKCkuICAqLwordm9pZAor X19nY292X2luZGlyZWN0X2NhbGxfcHJvZmlsZXJfYXRvbWljIChnY292X3R5 cGUqIGNvdW50ZXIsIGdjb3ZfdHlwZSB2YWx1ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogY3VyX2Z1bmMsIHZvaWQq IGNhbGxlZV9mdW5jKQoreworICBpZiAoY3VyX2Z1bmMgPT0gY2FsbGVlX2Z1 bmMKKyAgICAgIHx8IChWVEFCTEVfVVNFU19ERVNDUklQVE9SUyAmJiBjYWxs ZWVfZnVuYworICAgICAgICAgICYmICoodm9pZCAqKikgY3VyX2Z1bmMgPT0g Kih2b2lkICoqKSBjYWxsZWVfZnVuYykpCisgICAgX19nY292X29uZV92YWx1 ZV9wcm9maWxlcl9ib2R5X2F0b21pYyAoY291bnRlciwgdmFsdWUpOworfQog I2VuZGlmCisKICNpZmRlZiBMX2djb3ZfaW5kaXJlY3RfY2FsbF9wcm9maWxl cl92MgogCiAvKiBUaGVzZSB0d28gdmFyaWFibGVzIGFyZSB1c2VkIHRvIGFj dHVhbGx5IHRyYWNrIGNhbGxlciBhbmQgY2FsbGVlLiAgS2VlcApAQCAtMTUy LDIzICsyMjQsNiBAQCBfX3RocmVhZAogI2VuZGlmCiBnY292X3R5cGUgKiBf X2djb3ZfaW5kaXJlY3RfY2FsbF9jb3VudGVyczsKIAotLyogQnkgZGVmYXVs dCwgdGhlIEMrKyBjb21waWxlciB3aWxsIHVzZSBmdW5jdGlvbiBhZGRyZXNz ZXMgaW4gdGhlCi0gICB2dGFibGUgZW50cmllcy4gIFNldHRpbmcgVEFSR0VU X1ZUQUJMRV9VU0VTX0RFU0NSSVBUT1JTIHRvIG5vbnplcm8KLSAgIHRlbGxz IHRoZSBjb21waWxlciB0byB1c2UgZnVuY3Rpb24gZGVzY3JpcHRvcnMgaW5z dGVhZC4gIFRoZSB2YWx1ZQotICAgb2YgdGhpcyBtYWNybyBzYXlzIGhvdyBt YW55IHdvcmRzIHdpZGUgdGhlIGRlc2NyaXB0b3IgaXMgKG5vcm1hbGx5IDIp LAotICAgYnV0IGl0IG1heSBiZSBkZXBlbmRlbnQgb24gdGFyZ2V0IGZsYWdz LiAgU2luY2Ugd2UgZG8gbm90IGhhdmUgYWNjZXNzCi0gICB0byB0aGUgdGFy Z2V0IGZsYWdzIGhlcmUgd2UganVzdCBjaGVjayB0byBzZWUgaWYgaXQgaXMg c2V0IGFuZCB1c2UKLSAgIHRoYXQgdG8gc2V0IFZUQUJMRV9VU0VTX0RFU0NS SVBUT1JTIHRvIDAgb3IgMS4KLQotICAgSXQgaXMgYXNzdW1lZCB0aGF0IHRo ZSBhZGRyZXNzIG9mIGEgZnVuY3Rpb24gZGVzY3JpcHRvciBtYXkgYmUgdHJl YXRlZAotICAgYXMgYSBwb2ludGVyIHRvIGEgZnVuY3Rpb24uICAqLwotCi0j aWZkZWYgVEFSR0VUX1ZUQUJMRV9VU0VTX0RFU0NSSVBUT1JTCi0jZGVmaW5l IFZUQUJMRV9VU0VTX0RFU0NSSVBUT1JTIDEKLSNlbHNlCi0jZGVmaW5lIFZU QUJMRV9VU0VTX0RFU0NSSVBUT1JTIDAKLSNlbmRpZgotCiAvKiBUcmllcyB0 byBkZXRlcm1pbmUgdGhlIG1vc3QgY29tbW9uIHZhbHVlIGFtb25nIGl0cyBp bnB1dHMuICovCiB2b2lkCiBfX2djb3ZfaW5kaXJlY3RfY2FsbF9wcm9maWxl cl92MiAoZ2Nvdl90eXBlIHZhbHVlLCB2b2lkKiBjdXJfZnVuYykKQEAgLTE4 MywxMCArMjM4LDMwIEBAIF9fZ2Nvdl9pbmRpcmVjdF9jYWxsX3Byb2ZpbGVy X3YyIChnY292X3R5cGUgdmFsdWUsCiB9CiAjZW5kaWYKIAorI2lmZGVmIExf Z2Nvdl9pbmRpcmVjdF9jYWxsX3Byb2ZpbGVyX3YyX2F0b21pYworCisjaWYg ZGVmaW5lZChIQVZFX0NDX1RMUykgJiYgIWRlZmluZWQgKFVTRV9FTVVUTFMp CitleHRlcm4gX190aHJlYWQgdm9pZCAqIF9fZ2Nvdl9pbmRpcmVjdF9jYWxs X2NhbGxlZTsKK2V4dGVybiBfX3RocmVhZCBnY292X3R5cGUgKiBfX2djb3Zf aW5kaXJlY3RfY2FsbF9jb3VudGVyczsKKyNlbHNlCitleHRlcm4gdm9pZCAq IF9fZ2Nvdl9pbmRpcmVjdF9jYWxsX2NhbGxlZTsKK2V4dGVybiBnY292X3R5 cGUgKiBfX2djb3ZfaW5kaXJlY3RfY2FsbF9jb3VudGVyczsKKyNlbmRpZgor Cit2b2lkCitfX2djb3ZfaW5kaXJlY3RfY2FsbF9wcm9maWxlcl92Ml9hdG9t aWMgKGdjb3ZfdHlwZSB2YWx1ZSwgdm9pZCogY3VyX2Z1bmMpCit7CisgIGlm IChjdXJfZnVuYyA9PSBfX2djb3ZfaW5kaXJlY3RfY2FsbF9jYWxsZWUKKyAg ICAgIHx8IChWVEFCTEVfVVNFU19ERVNDUklQVE9SUyAmJiBfX2djb3ZfaW5k aXJlY3RfY2FsbF9jYWxsZWUKKyAgICAgICAgICAmJiAqKHZvaWQgKiopIGN1 cl9mdW5jID09ICoodm9pZCAqKikgX19nY292X2luZGlyZWN0X2NhbGxfY2Fs bGVlKSkKKyAgICBfX2djb3Zfb25lX3ZhbHVlX3Byb2ZpbGVyX2JvZHlfYXRv bWljIChfX2djb3ZfaW5kaXJlY3RfY2FsbF9jb3VudGVycywgdmFsdWUpOwor fQorI2VuZGlmCisKICNpZmRlZiBMX2djb3ZfdGltZV9wcm9maWxlcgogCiAv KiBDb3VudGVyIGZvciBmaXJzdCB2aXNpdCBvZiBlYWNoIGZ1bmN0aW9uLiAg Ki8KLXN0YXRpYyBnY292X3R5cGUgZnVuY3Rpb25fY291bnRlcjsKK2djb3Zf dHlwZSBmdW5jdGlvbl9jb3VudGVyOwogCiAvKiBTZXRzIGNvcnJlc3BvbmRp bmcgQ09VTlRFUlMgaWYgdGhlcmUgaXMgbm8gdmFsdWUuICAqLwogCkBAIC0x OTgsNiArMjczLDE2IEBAIF9fZ2Nvdl90aW1lX3Byb2ZpbGVyIChnY292X3R5 cGUqIGNvdW50ZXJzKQogfQogI2VuZGlmCiAKKyNpZmRlZiBMX2djb3ZfdGlt ZV9wcm9maWxlcl9hdG9taWMKK2V4dGVybiBnY292X3R5cGUgZnVuY3Rpb25f Y291bnRlcjsKK3ZvaWQKK19fZ2Nvdl90aW1lX3Byb2ZpbGVyX2F0b21pYyAo Z2Nvdl90eXBlKiBjb3VudGVycykKK3sKKyAgaWYgKCFjb3VudGVyc1swXSkK KyAgICBjb3VudGVyc1swXSA9IEdDT1ZfVFlQRV9BVE9NSUNfRkVUQ0hfQURE X0ZOICgmZnVuY3Rpb25fY291bnRlciwgMSwgTUVNTU9ERUxfUkVMQVhFRCk7 Cit9CisjZW5kaWYKKwogI2lmZGVmIExfZ2Nvdl9hdmVyYWdlX3Byb2ZpbGVy CiAvKiBJbmNyZWFzZSBjb3JyZXNwb25kaW5nIENPVU5URVIgYnkgVkFMVUUu ICBGSVhNRTogUGVyaGFwcyB3ZSB3YW50CiAgICB0byBzYXR1cmF0ZSB1cC4g ICovCkBAIC0yMDUsMTEgKzI5MCwyMCBAQCBfX2djb3ZfdGltZV9wcm9maWxl ciAoZ2Nvdl90eXBlKiBjb3VudGVycykKIHZvaWQKIF9fZ2Nvdl9hdmVyYWdl X3Byb2ZpbGVyIChnY292X3R5cGUgKmNvdW50ZXJzLCBnY292X3R5cGUgdmFs dWUpCiB7Ci0gIGNvdW50ZXJzWzBdICs9IHZhbHVlOwotICBjb3VudGVyc1sx XSArKzsKKyAgR0NPVl9UWVBFX0FUT01JQ19GRVRDSF9BRERfRk4gKCZjb3Vu dGVyc1swXSwgdmFsdWUsIE1FTU1PREVMX1JFTEFYRUQpOworICBHQ09WX1RZ UEVfQVRPTUlDX0ZFVENIX0FERF9GTiAoJmNvdW50ZXJzWzFdLCAxLCBNRU1N T0RFTF9SRUxBWEVEKTsKIH0KICNlbmRpZgogCisjaWZkZWYgTF9nY292X2F2 ZXJhZ2VfcHJvZmlsZXJfYXRvbWljCit2b2lkCitfX2djb3ZfYXZlcmFnZV9w cm9maWxlcl9hdG9taWMgKGdjb3ZfdHlwZSAqY291bnRlcnMsIGdjb3ZfdHlw ZSB2YWx1ZSkKK3sKKyAgR0NPVl9UWVBFX0FUT01JQ19GRVRDSF9BRERfRk4g KCZjb3VudGVyc1swXSwgdmFsdWUsIE1FTU1PREVMX1JFTEFYRUQpOworICBH Q09WX1RZUEVfQVRPTUlDX0ZFVENIX0FERF9GTiAoJmNvdW50ZXJzWzFdLCAx LCBNRU1NT0RFTF9SRUxBWEVEKTsKK30KKyNlbmRpZgorCiAjaWZkZWYgTF9n Y292X2lvcl9wcm9maWxlcgogLyogQml0d2lzZS1PUiBWQUxVRSBpbnRvIENP VU5URVIuICAqLwogCkluZGV4OiBsaWJnY2MvTWFrZWZpbGUuaW4KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gbGliZ2NjL01ha2VmaWxlLmluCShyZXZp c2lvbiAyMDUwNTMpCisrKyBsaWJnY2MvTWFrZWZpbGUuaW4JKHdvcmtpbmcg Y29weSkKQEAgLTg2MywxNSArODYzLDIwIEBAIExJQkdDT1ZfRFJJVkVSID0g X2djb3YKIAogbGliZ2Nvdi1tZXJnZS1vYmplY3RzID0gJChwYXRzdWJzdCAl LCUkKG9iamV4dCksJChMSUJHQ09WX01FUkdFKSkKIGxpYmdjb3YtcHJvZmls ZXItb2JqZWN0cyA9ICQocGF0c3Vic3QgJSwlJChvYmpleHQpLCQoTElCR0NP Vl9QUk9GSUxFUikpCitsaWJnY292LXByb2ZpbGVyLWF0b21pYy1vYmplY3Rz ID0gJChwYXRzdWJzdCAlLCVfYXRvbWljJChvYmpleHQpLCQoTElCR0NPVl9Q Uk9GSUxFUikpCiBsaWJnY292LWludGVyZmFjZS1vYmplY3RzID0gJChwYXRz dWJzdCAlLCUkKG9iamV4dCksJChMSUJHQ09WX0lOVEVSRkFDRSkpCiBsaWJn Y292LWRyaXZlci1vYmplY3RzID0gJChwYXRzdWJzdCAlLCUkKG9iamV4dCks JChMSUJHQ09WX0RSSVZFUikpCiBsaWJnY292LW9iamVjdHMgPSAkKGxpYmdj b3YtbWVyZ2Utb2JqZWN0cykgJChsaWJnY292LXByb2ZpbGVyLW9iamVjdHMp IFwKLSAgICAgICAgICAgICAgICAgJChsaWJnY292LWludGVyZmFjZS1vYmpl Y3RzKSAkKGxpYmdjb3YtZHJpdmVyLW9iamVjdHMpCisgICAgICAgICAgICAg ICAgICQobGliZ2Nvdi1pbnRlcmZhY2Utb2JqZWN0cykgJChsaWJnY292LWRy aXZlci1vYmplY3RzKSBcCisgICAgICAgICAgICAgICAgICQobGliZ2Nvdi1w cm9maWxlci1hdG9taWMtb2JqZWN0cykKIAorCiAkKGxpYmdjb3YtbWVyZ2Ut b2JqZWN0cyk6ICUkKG9iamV4dCk6ICQoc3JjZGlyKS9saWJnY292LW1lcmdl LmMKIAkkKGdjY19jb21waWxlKSAtREwkKiAtYyAkKHNyY2RpcikvbGliZ2Nv di1tZXJnZS5jCiAkKGxpYmdjb3YtcHJvZmlsZXItb2JqZWN0cyk6ICUkKG9i amV4dCk6ICQoc3JjZGlyKS9saWJnY292LXByb2ZpbGVyLmMKIAkkKGdjY19j b21waWxlKSAtREwkKiAtYyAkKHNyY2RpcikvbGliZ2Nvdi1wcm9maWxlci5j CiskKGxpYmdjb3YtcHJvZmlsZXItYXRvbWljLW9iamVjdHMpOiAlJChvYmpl eHQpOiAkKHNyY2RpcikvbGliZ2Nvdi1wcm9maWxlci5jCisJJChnY2NfY29t cGlsZSkgLURMJCogLWMgJChzcmNkaXIpL2xpYmdjb3YtcHJvZmlsZXIuYwog JChsaWJnY292LWludGVyZmFjZS1vYmplY3RzKTogJSQob2JqZXh0KTogJChz cmNkaXIpL2xpYmdjb3YtaW50ZXJmYWNlLmMKIAkkKGdjY19jb21waWxlKSAt REwkKiAtYyAkKHNyY2RpcikvbGliZ2Nvdi1pbnRlcmZhY2UuYwogJChsaWJn Y292LWRyaXZlci1vYmplY3RzKTogJSQob2JqZXh0KTogJChzcmNkaXIpL2xp Ymdjb3YtZHJpdmVyLmMgXAo= --001a11c2c4847ceb3504eb9156da--