From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1126 invoked by alias); 19 Jun 2011 18:39:23 -0000 Received: (qmail 1113 invoked by uid 22791); 19 Jun 2011 18:39:19 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_05,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_GM,TW_PM X-Spam-Check-By: sourceware.org Received: from mail-qy0-f182.google.com (HELO mail-qy0-f182.google.com) (209.85.216.182) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 19 Jun 2011 18:39:02 +0000 Received: by qyk38 with SMTP id 38so544877qyk.20 for ; Sun, 19 Jun 2011 11:39:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.131.32 with SMTP id v32mr3366091qcs.35.1308508740456; Sun, 19 Jun 2011 11:39:00 -0700 (PDT) Received: by 10.229.47.78 with HTTP; Sun, 19 Jun 2011 11:39:00 -0700 (PDT) In-Reply-To: References: Date: Sun, 19 Jun 2011 20:02:00 -0000 Message-ID: Subject: PING: PATCH: PR target/46770: Use .init_array/.fini_array sections From: "H.J. Lu" To: Richard Guenther , Uros Bizjak Cc: GCC Patches Content-Type: multipart/mixed; boundary=001517576d20a9117104a614ee0e X-IsSubscribed: yes 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 X-SW-Source: 2011-06/txt/msg01418.txt.bz2 --001517576d20a9117104a614ee0e Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 5893 On Fri, Jun 3, 2011 at 5:51 AM, H.J. Lu wrote: > On Fri, Jun 3, 2011 at 5:31 AM, Richard Guenther > wrote: >> On Fri, Jun 3, 2011 at 6:31 AM, H.J. Lu wrote: >>> On Wed, May 18, 2011 at 8:57 AM, H.J. Lu wrote: >>>> On Tue, Apr 26, 2011 at 6:05 AM, H.J. Lu wrote: >>>>> On Thu, Mar 31, 2011 at 7:57 AM, H.J. Lu wrote: >>>>>> On Mon, Mar 21, 2011 at 11:40 AM, H.J. Lu wrot= e: >>>>>>> On Mon, Mar 14, 2011 at 12:28 PM, H.J. Lu wro= te: >>>>>>>> On Thu, Jan 27, 2011 at 2:40 AM, Richard Guenther >>>>>>>> wrote: >>>>>>>>> On Thu, Jan 27, 2011 at 12:12 AM, H.J. Lu = wrote: >>>>>>>>>> On Tue, Dec 14, 2010 at 05:20:48PM -0800, H.J. Lu wrote: >>>>>>>>>>> This patch uses .init_array/.fini_array sections instead of >>>>>>>>>>> .ctors/.dtors sections if mixing .init_array/.fini_array and >>>>>>>>>>> .ctors/.dtors sections with init_priority works. >>>>>>>>>>> >>>>>>>>>>> It removes .ctors/.ctors sections from executables and DSOes, w= hich will >>>>>>>>>>> remove one function call at startup time from each executable a= nd DSO. >>>>>>>>>>> It should reduce image size and improve system startup time. >>>>>>>>>>> >>>>>>>>>>> If a platform with a working .init_array/.fini_array support ne= eds a >>>>>>>>>>> different .init_array/.fini_array implementation, it can set >>>>>>>>>>> use_initfini_array to no. >>>>>>>>>>> >>>>>>>>>>> Since .init_array/.fini_array is a target feature. --enable-ini= tfini-array >>>>>>>>>>> is default to no unless the native run-time test is passed. >>>>>>>>>>> >>>>>>>>>>> To pass the native run-time test, a linker with SORT_BY_INIT_PR= IORITY >>>>>>>>>>> support is required. =A0The binutils patch is available at >>>>>>>>>>> >>>>>>>>>>> http://sourceware.org/ml/binutils/2010-12/msg00466.html >>>>>>>>>> >>>>>>>>>> Linker patch has been checked in. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> This patch passed 32bit/64bit regression test on Linux/x86-64. = =A0Any >>>>>>>>>>> comments? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> This updated patch fixes build on Linux/ia64 and should work on = others. >>>>>>>>>> Any comments? >>>>>>>>> >>>>>>>>> Yes. =A0This is stage1 material. >>>>>>>>> >>>>>>>> >>>>>>>> Here is the updated patch. =A0OK for trunk? >>>>>>>> >>>>>>>> Thanks. >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> H.J. >>>>>>>> ---- >>>>>>>> 2011-03-14 =A0H.J. Lu =A0 >>>>>>>> >>>>>>>> =A0 =A0 =A0 =A0PR target/46770 >>>>>>>> =A0 =A0 =A0 =A0* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Removed. >>>>>>>> >>>>>>>> =A0 =A0 =A0 =A0* config.gcc (use_initfini_array): New variable. >>>>>>>> =A0 =A0 =A0 =A0Use initfini-array.o if supported. >>>>>>>> >>>>>>>> =A0 =A0 =A0 =A0* crtstuff.c: Don't generate .ctors nor .dtors sect= ions if >>>>>>>> =A0 =A0 =A0 =A0NO_CTORS_DTORS_SECTIONS is defined. >>>>>>>> >>>>>>>> =A0 =A0 =A0 =A0* configure.ac: Remove gcc_AC_INITFINI_ARRAY. =A0Add >>>>>>>> =A0 =A0 =A0 =A0--enable-initfini-array and check if .init_array ca= n be used with >>>>>>>> =A0 =A0 =A0 =A0.ctors. >>>>>>>> >>>>>>>> =A0 =A0 =A0 =A0* configure: Regenerated. >>>>>>>> >>>>>>>> =A0 =A0 =A0 =A0* config/initfini-array.c: New. >>>>>>>> =A0 =A0 =A0 =A0* config/initfini-array.h: Likewise. >>>>>>>> =A0 =A0 =A0 =A0* config/t-initfini-array: Likewise. >>>>>>>> >>>>>>>> =A0 =A0 =A0 =A0* config/arm/arm.c (arm_asm_init_sections): Call >>>>>>>> =A0 =A0 =A0 =A0elf_initfini_array_init_sections if NO_CTORS_DTORS_= SECTIONS >>>>>>>> =A0 =A0 =A0 =A0is defined. >>>>>>>> =A0 =A0 =A0 =A0* config/avr/avr.c (avr_asm_init_sections): Likewis= e. >>>>>>>> =A0 =A0 =A0 =A0* config/ia64/ia64.c (ia64_asm_init_sections): Like= wise. >>>>>>>> =A0 =A0 =A0 =A0* config/mep/mep.c (mep_asm_init_sections): Likewis= e. >>>>>>>> =A0 =A0 =A0 =A0* config/microblaze/microblaze.c (microblaze_elf_as= m_init_sections): >>>>>>>> =A0 =A0 =A0 =A0Likewise. >>>>>>>> =A0 =A0 =A0 =A0* config/rs6000/rs6000.c (rs6000_elf_asm_init_secti= ons): Likewise. >>>>>>>> =A0 =A0 =A0 =A0* config/stormy16/stormy16.c (xstormy16_asm_init_se= ctions): >>>>>>>> =A0 =A0 =A0 =A0Likewise. >>>>>>>> =A0 =A0 =A0 =A0* config/v850/v850.c (v850_asm_init_sections): Like= wise. >>>>>>>> >>>>>>> >>>>>>> PING: >>>>>>> >>>>>>> http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00760.html >>>>>>> >>>>>> >>>>>> Any comments? =A0Any objections? >>>>>> >>>>> >>>>> Here is the patch updated for the current trunk. =A0OK for trunk? >>>>> >>>> >>>> PING,. >>> >>> Hi Richard, >>> >>> You commented my patch was stage 1 material: >>> >>> http://gcc.gnu.org/ml/gcc-patches/2011-01/msg01989.html >>> >>> Is my patch: >>> >>> http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00760.html >>> >>> OK for trunk? >> >> I can't approve the configury changes and would like to defer >> to target maintainers for the target specific changes. =A0That said, >> I'm not familiar enough with the area of the patch. =A0But yes, >> it's stage1 now - so if anyone else wants to approve this patch... > > My first attempt: > > http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00589.html > > only affects x86. =A0I changed it to generic based on the > feedbacks. =A0But other target maintainers show no interests. > Should I make it x86 only first? =A0Each target can enable it > if needed. > I am enclosing 2 patches here. One only affects Linux/x86 and the other covers all targets. I tested both versions on Linux/x86 without any regressions. Since I only got OK from one target maintainer and I have been pinging on this patch for more than 6 months, I'd like to get it enabled for Linux/x86 soon. Uros, can I check in Linux/x86 version if there are no full feedbacks from the rest of target maintainers for more than 48hours. We can enable other targets on a target by target basis later. Thanks. --=20 H.J. --001517576d20a9117104a614ee0e Content-Type: text/plain; charset=US-ASCII; name="gcc-pr46770-6a.patch" Content-Disposition: attachment; filename="gcc-pr46770-6a.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gp4c37l60 Content-length: 18719 MjAxMS0wNi0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoK CVBSIHRhcmdldC80Njc3MAoJKiBjb25maWcuZ2NjICh1c2VfaW5pdGZpbmlf YXJyYXkpOiBOZXcgdmFyaWFibGUuCglVc2UgaW5pdGZpbmktYXJyYXkubyBp ZiBzdXBwb3J0ZWQuCgoJKiBjcnRzdHVmZi5jOiBEb24ndCBnZW5lcmF0ZSAu Y3RvcnMgbm9yIC5kdG9ycyBzZWN0aW9ucyBpZgoJTk9fQ1RPUlNfRFRPUlNf U0VDVElPTlMgaXMgZGVmaW5lZC4KCgkqIGNvbmZpZy9pbml0ZmluaS1hcnJh eS5jOiBOZXcuCgkqIGNvbmZpZy9pbml0ZmluaS1hcnJheS5oOiBMaWtld2lz ZS4KCSogY29uZmlnL3QtaW5pdGZpbmktYXJyYXk6IExpa2V3aXNlLgoKCSog Y29uZmlnL2FybS9hcm0uYyAoYXJtX2FzbV9pbml0X3NlY3Rpb25zKTogQ2Fs bAoJZWxmX2luaXRmaW5pX2FycmF5X2luaXRfc2VjdGlvbnMgaWYgTk9fQ1RP UlNfRFRPUlNfU0VDVElPTlMKCWlzIGRlZmluZWQuCgkqIGNvbmZpZy9hdnIv YXZyLmMgKGF2cl9hc21faW5pdF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBj b25maWcvaWE2NC9pYTY0LmMgKGlhNjRfYXNtX2luaXRfc2VjdGlvbnMpOiBM aWtld2lzZS4KCSogY29uZmlnL21lcC9tZXAuYyAobWVwX2FzbV9pbml0X3Nl Y3Rpb25zKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taWNyb2JsYXplL21pY3Jv YmxhemUuYyAobWljcm9ibGF6ZV9lbGZfYXNtX2luaXRfc2VjdGlvbnMpOgoJ TGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9l bGZfYXNtX2luaXRfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogY29uZmlnL3N0 b3JteTE2L3N0b3JteTE2LmMgKHhzdG9ybXkxNl9hc21faW5pdF9zZWN0aW9u cyk6CglMaWtld2lzZS4KCSogY29uZmlnL3Y4NTAvdjg1MC5jICh2ODUwX2Fz bV9pbml0X3NlY3Rpb25zKTogTGlrZXdpc2UuCgpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy5nY2MgYi9nY2MvY29uZmlnLmdjYwppbmRleCAyY2Y5MmQyLi5l OGFlZDFjIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnLmdjYworKysgYi9nY2Mv Y29uZmlnLmdjYwpAQCAtMTg2LDYgKzE4Niw5IEBACiAjICBjb25maWd1cmVf ZGVmYXVsdF9vcHRpb25zCiAjCQkJU2V0IHRvIGFuIGluaXRpYWxpemVyIGZv ciBjb25maWd1cmVfZGVmYXVsdF9vcHRpb25zCiAjCQkJaW4gY29uZmlnYXJn cy5oLCBiYXNlZCBvbiAtLXdpdGgtY3B1IGV0IGNldGVyYS4KKyMKKyMgIHVz ZV9pbml0ZmluaV9hcnJheQlJZiBzZXQgdG8geWVzLCAuaW5pdF9hcnJheS8u ZmluaV9hcnJheSBzZWN0aW9ucworIwkJCXdpbGwgYmUgdXNlZCBpZiB0aGV5 IHdvcmsuCiAKICMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHVzZWQg aW4gZWFjaCBjYXNlLWNvbnN0cnVjdCB0byBidWlsZCB1cCB0aGUKICMgb3V0 Z29pbmcgdmFyaWFibGVzOgpAQCAtMjM4LDYgKzI0MSw3IEBAIGRlZmF1bHRf Z251X2luZGlyZWN0X2Z1bmN0aW9uPW5vCiB0YXJnZXRfZ3RmaWxlcz0KIG5l ZWRfNjRiaXRfaHdpbnQ9CiBuZWVkXzY0Yml0X2lzYT0KK3VzZV9pbml0Zmlu aV9hcnJheT15ZXMKIAogIyBEb24ndCBjYXJyeSB0aGVzZSBvdmVyIGJ1aWxk LT5ob3N0LT50YXJnZXQuICBQbGVhc2UuCiB4bV9maWxlPQpAQCAtMzA0Niw2 ICszMDUwLDE2IEBAIGlmIHRlc3QgeCR3aXRoX3NjaGVkdWxlID0geDsgdGhl bgogCWVzYWMKIGZpCiAKKyMgU3VwcG9ydCAtLWVuYWJsZS1pbml0ZmluaS1h cnJheS4gIFVzZSBpbml0ZmluaS1hcnJheS5oIG9ubHkgaWYKKyMgdXNlX2lu aXRmaW5pX2FycmF5IGlzIGFsc28gc2V0IHRvIHllcy4gIFNvbWUgcGxhdGZv cm1zIGRvbid0IG5lZWQgaXQKKyMgZXZlbiBpZiBlbmFibGVfaW5pdGZpbmlf YXJyYXkgaXMgeWVzLgoraWYgdGVzdCB4JGVuYWJsZV9pbml0ZmluaV9hcnJh eSR1c2VfaW5pdGZpbmlfYXJyYXkgPSB4eWVzeWVzOyB0aGVuCisgIHRtX2Zp bGU9IiR7dG1fZmlsZX0gaW5pdGZpbmktYXJyYXkuaCIKKyAgdG1ha2VfZmls ZT0iJHt0bWFrZV9maWxlfSB0LWluaXRmaW5pLWFycmF5IgorICBleHRyYV9v YmpzPSIkZXh0cmFfb2JqcyBpbml0ZmluaS1hcnJheS5vIgorICB0YXJnZXRf Z3RmaWxlcz0iJHRhcmdldF9ndGZpbGVzIFwkKHNyY2RpcikvY29uZmlnL2lu aXRmaW5pLWFycmF5LmMiCitmaQorCiAjIFZhbGlkYXRlIGFuZCBtYXJrIGFz IHZhbGlkIGFueSAtLXdpdGggb3B0aW9ucyBzdXBwb3J0ZWQKICMgYnkgdGhp cyB0YXJnZXQuICBJbiBvcmRlciB0byB1c2UgYSBwYXJ0aWN1bGFyIC0td2l0 aCBvcHRpb24KICMgeW91IG11c3QgbGlzdCBpdCBpbiBzdXBwb3J0ZWRfZGVm YXVsdHM7IHZhbGlkYXRpbmcgdGhlIHZhbHVlCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2FybS9hcm0uYyBiL2djYy9jb25maWcvYXJtL2FybS5jCmluZGV4 IDU0N2FjYzguLjdiNzMwOGYgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJt L2FybS5jCisrKyBiL2djYy9jb25maWcvYXJtL2FybS5jCkBAIC0yMjgzMyw2 ICsyMjgzMyw5IEBAIGFybV9hc21faW5pdF9zZWN0aW9ucyAodm9pZCkKIHsK ICAgZXhjZXB0aW9uX3NlY3Rpb24gPSBnZXRfdW5uYW1lZF9zZWN0aW9uICgw LCBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCiAJCQkJCSAgICJcdC5oYW5kbGVy ZGF0YSIpOworI2lmZGVmIE5PX0NUT1JTX0RUT1JTX1NFQ1RJT05TCisgIGVs Zl9pbml0ZmluaV9hcnJheV9pbml0X3NlY3Rpb25zICgpOworI2VuZGlmCiB9 CiAjZW5kaWYgLyogQVJNX1VOV0lORF9JTkZPICovCiAKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvYXZyL2F2ci5jIGIvZ2NjL2NvbmZpZy9hdnIvYXZyLmMK aW5kZXggZTQ2Y2NkMy4uZmQ3OGU0OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9hdnIvYXZyLmMKKysrIGIvZ2NjL2NvbmZpZy9hdnIvYXZyLmMKQEAgLTUy NzEsNiArNTI3MSwxMCBAQCBhdnJfYXNtX2luaXRfc2VjdGlvbnMgKHZvaWQp CiAJCQkJCSBOVUxMKTsKICAgcmVhZG9ubHlfZGF0YV9zZWN0aW9uID0gZGF0 YV9zZWN0aW9uOwogCisjaWZkZWYgTk9fQ1RPUlNfRFRPUlNfU0VDVElPTlMK KyAgZWxmX2luaXRmaW5pX2FycmF5X2luaXRfc2VjdGlvbnMgKCk7CisjZW5k aWYKKwogICBkYXRhX3NlY3Rpb24tPnVubmFtZWQuY2FsbGJhY2sgPSBhdnJf b3V0cHV0X2RhdGFfc2VjdGlvbl9hc21fb3A7CiAgIGJzc19zZWN0aW9uLT51 bm5hbWVkLmNhbGxiYWNrID0gYXZyX291dHB1dF9ic3Nfc2VjdGlvbl9hc21f b3A7CiB9CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2lhNjQvaWE2NC5jIGIv Z2NjL2NvbmZpZy9pYTY0L2lhNjQuYwppbmRleCA3OGQyNDQxLi5lNjZmOGIx IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2lhNjQvaWE2NC5jCisrKyBiL2dj Yy9jb25maWcvaWE2NC9pYTY0LmMKQEAgLTEwMDQ1LDYgKzEwMDQ1LDkgQEAg aWE2NF9hc21faW5pdF9zZWN0aW9ucyAodm9pZCkKIHsKICAgZXhjZXB0aW9u X3NlY3Rpb24gPSBnZXRfdW5uYW1lZF9zZWN0aW9uICgwLCBvdXRwdXRfc2Vj dGlvbl9hc21fb3AsCiAJCQkJCSAgICJcdC5oYW5kbGVyZGF0YSIpOworI2lm ZGVmIE5PX0NUT1JTX0RUT1JTX1NFQ1RJT05TCisgIGVsZl9pbml0ZmluaV9h cnJheV9pbml0X3NlY3Rpb25zICgpOworI2VuZGlmCiB9CiAKIC8qIEltcGxl bWVudCBUQVJHRVRfREVCVUdfVU5XSU5EX0lORk8uICAqLwpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9pbml0ZmluaS1hcnJheS5jIGIvZ2NjL2NvbmZpZy9p bml0ZmluaS1hcnJheS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmMwNDI3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvY29uZmln L2luaXRmaW5pLWFycmF5LmMKQEAgLTAsMCArMSw4MCBAQAorLyogRGVmaW5p dGlvbnMgZm9yIEVMRiBzeXN0ZW1zIHdpdGggLmluaXRfYXJyYXkvLmZpbmlf YXJyYXkgc2VjdGlvbgorICAgQ29weXJpZ2h0IChDKSAyMDExCisgICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworVGhpcyBmaWxlIGlzIHBh cnQgb2YgR0NDLgorCitHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgordGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyCit2 ZXJzaW9uLgorCitHQ0MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCitXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvcgorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCitmb3Ig bW9yZSBkZXRhaWxzLgorCitZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorYWxvbmcg d2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUK KzxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNs dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJzeXN0ZW0uaCIKKyNpbmNsdWRl ICJjb3JldHlwZXMuaCIKKyNpbmNsdWRlICJ0YXJnZXQuaCIKKyNpbmNsdWRl ICJvdXRwdXQuaCIKKyNpbmNsdWRlICJ0cmVlLmgiCisjaW5jbHVkZSAiaW5p dGZpbmktYXJyYXkuaCIKKyNpbmNsdWRlICJnZ2MuaCIKKworc3RhdGljIEdU WSgoKSkgc2VjdGlvbiAqaW5pdF9hcnJheV9zZWN0aW9uOworc3RhdGljIEdU WSgoKSkgc2VjdGlvbiAqZmluaV9hcnJheV9zZWN0aW9uOworCit2b2lkCitl bGZfaW5pdGZpbmlfYXJyYXlfaW5pdF9zZWN0aW9ucyAodm9pZCkKK3sKKyAg aW5pdF9hcnJheV9zZWN0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAoMCwg b3V0cHV0X3NlY3Rpb25fYXNtX29wLAorCQkJCQkgICAgIlx0LnNlY3Rpb25c dC5pbml0X2FycmF5Iik7CisgIGZpbmlfYXJyYXlfc2VjdGlvbiA9IGdldF91 bm5hbWVkX3NlY3Rpb24gKDAsIG91dHB1dF9zZWN0aW9uX2FzbV9vcCwKKwkJ CQkJICAgICJcdC5zZWN0aW9uXHQuZmluaV9hcnJheSIpOworfQorCitzdGF0 aWMgc2VjdGlvbiAqCitnZXRfZWxmX2luaXRmaW5pX2FycmF5X3ByaW9yaXR5 X3NlY3Rpb24gKGludCBwcmlvcml0eSwKKwkJCQkJIGJvb2wgY29uc3RydWN0 b3JfcCkKK3sKKyAgc2VjdGlvbiAqc2VjOworICBpZiAocHJpb3JpdHkgIT0g REVGQVVMVF9JTklUX1BSSU9SSVRZKQorICAgIHsKKyAgICAgIGNoYXIgYnVm WzE4XTsKKyAgICAgIHNwcmludGYgKGJ1ZiwgIiVzLiUuNXUiLCAKKwkgICAg ICAgY29uc3RydWN0b3JfcCA/ICIuaW5pdF9hcnJheSIgOiAiLmZpbmlfYXJy YXkiLAorCSAgICAgICBwcmlvcml0eSk7CisgICAgICBzZWMgPSBnZXRfc2Vj dGlvbiAoYnVmLCBTRUNUSU9OX1dSSVRFLCBOVUxMX1RSRUUpOworICAgIH0K KyAgZWxzZQorICAgIHNlYyA9IGNvbnN0cnVjdG9yX3AgPyBpbml0X2FycmF5 X3NlY3Rpb24gOiBmaW5pX2FycmF5X3NlY3Rpb247CisgIHJldHVybiBzZWM7 Cit9CisKKy8qIFVzZSAuaW5pdF9hcnJheSBzZWN0aW9uIGZvciBjb25zdHJ1 Y3RvcnMuICovCisKK3ZvaWQKK2VsZl9pbml0X2FycmF5X2FzbV9vdXRfY29u c3RydWN0b3IgKHJ0eCBzeW1ib2wsIGludCBwcmlvcml0eSkKK3sKKyAgc2Vj dGlvbiAqc2VjID0gZ2V0X2VsZl9pbml0ZmluaV9hcnJheV9wcmlvcml0eV9z ZWN0aW9uIChwcmlvcml0eSwKKwkJCQkJCQkgIHRydWUpOworICBhc3NlbWJs ZV9hZGRyX3RvX3NlY3Rpb24gKHN5bWJvbCwgc2VjKTsKK30KKworLyogVXNl IC5maW5pX2FycmF5IHNlY3Rpb24gZm9yIGRlc3RydWN0b3JzLiAqLworCit2 b2lkCitlbGZfZmluaV9hcnJheV9hc21fb3V0X2Rlc3RydWN0b3IgKHJ0eCBz eW1ib2wsIGludCBwcmlvcml0eSkKK3sKKyAgc2VjdGlvbiAqc2VjID0gZ2V0 X2VsZl9pbml0ZmluaV9hcnJheV9wcmlvcml0eV9zZWN0aW9uIChwcmlvcml0 eSwKKwkJCQkJCQkgIGZhbHNlKTsKKyAgYXNzZW1ibGVfYWRkcl90b19zZWN0 aW9uIChzeW1ib2wsIHNlYyk7Cit9CisKKyNpbmNsdWRlICJndC1pbml0Zmlu aS1hcnJheS5oIgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pbml0ZmluaS1h cnJheS5oIGIvZ2NjL2NvbmZpZy9pbml0ZmluaS1hcnJheS5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiYTdlY2EKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvY29uZmlnL2luaXRmaW5pLWFycmF5LmgKQEAgLTAs MCArMSw0NiBAQAorLyogRGVmaW5pdGlvbnMgZm9yIEVMRiBzeXN0ZW1zIHdp dGggLmluaXRfYXJyYXkvLmZpbmlfYXJyYXkgc2VjdGlvbgorICAgc3VwcG9y dC4KKyAgIENvcHlyaWdodCAoQykgMjAxMQorICAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdD Qy4KKworICAgR0NDIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAgIHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkCisgICBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91cgorICAgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgR0NDIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCisgICBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZiBNRVJDSEFOVEFCSUxJVFkKKyAgIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMK KyAgIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUg Q09QWUlORzMuICBJZiBub3Qgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworCisvKiBObyBuZWVkIGZvciAuY3RvcnMvLmR0 b3JzIHNlY3Rpb24gc2luY2UgbGlua2VyIGNhbiBwbGFjZSB0aGVtIGluCisg ICAuaW5pdF9hcnJheS8uZmluaV9hcnJheSBzZWN0aW9uLiAgKi8KKyNkZWZp bmUgTk9fQ1RPUlNfRFRPUlNfU0VDVElPTlMKKworI3VuZGVmIElOSVRfU0VD VElPTl9BU01fT1AKKyN1bmRlZiBGSU5JX1NFQ1RJT05fQVNNX09QCisKKy8q IEZJWE1FOiBJTklUX0FSUkFZX1NFQ1RJT05fQVNNX09QIGFuZCBGSU5JX0FS UkFZX1NFQ1RJT05fQVNNX09QCisJICBhcmVuJ3QgdXNlZCBpbiBhbnkgYXNz ZW1ibHkgY29kZXMuICBCdXQgd2UgaGF2ZSB0byBkZWZpbmUKKwkgIHRoZW0g dG8gc29tZXRoaW5nLiAgKi8KKyNkZWZpbmUgSU5JVF9BUlJBWV9TRUNUSU9O X0FTTV9PUCBTb21ldGhpbmcKKyNkZWZpbmUgRklOSV9BUlJBWV9TRUNUSU9O X0FTTV9PUCBTb21ldGhpbmcKKworI2lmbmRlZiBUQVJHRVRfQVNNX0lOSVRf U0VDVElPTlMKKyNkZWZpbmUgVEFSR0VUX0FTTV9JTklUX1NFQ1RJT05TIGVs Zl9pbml0ZmluaV9hcnJheV9pbml0X3NlY3Rpb25zCisjZW5kaWYKK2V4dGVy biB2b2lkIGVsZl9pbml0ZmluaV9hcnJheV9pbml0X3NlY3Rpb25zICh2b2lk KTsKKworLyogVXNlIC5pbml0X2FycmF5Ly5maW5pX2FycmF5IHNlY3Rpb24g Zm9yIGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuICovCisjdW5kZWYg VEFSR0VUX0FTTV9DT05TVFJVQ1RPUgorI2RlZmluZSBUQVJHRVRfQVNNX0NP TlNUUlVDVE9SIGVsZl9pbml0X2FycmF5X2FzbV9vdXRfY29uc3RydWN0b3IK KyN1bmRlZiBUQVJHRVRfQVNNX0RFU1RSVUNUT1IKKyNkZWZpbmUgVEFSR0VU X0FTTV9ERVNUUlVDVE9SIGVsZl9maW5pX2FycmF5X2FzbV9vdXRfZGVzdHJ1 Y3RvcgorZXh0ZXJuIHZvaWQgZWxmX2luaXRfYXJyYXlfYXNtX291dF9jb25z dHJ1Y3RvciAocnR4LCBpbnQpOworZXh0ZXJuIHZvaWQgZWxmX2ZpbmlfYXJy YXlfYXNtX291dF9kZXN0cnVjdG9yIChydHgsIGludCk7CmRpZmYgLS1naXQg YS9nY2MvY29uZmlnL21lcC9tZXAuYyBiL2djYy9jb25maWcvbWVwL21lcC5j CmluZGV4IGE5NDZjOTMuLmNkZmQyOWEgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvbWVwL21lcC5jCisrKyBiL2djYy9jb25maWcvbWVwL21lcC5jCkBAIC03 MzQxLDYgKzczNDEsOSBAQCBtZXBfYXNtX2luaXRfc2VjdGlvbnMgKHZvaWQp CiAgICAgPSBnZXRfdW5uYW1lZF9zZWN0aW9uIChTRUNUSU9OX0NPREUsIG91 dHB1dF9zZWN0aW9uX2FzbV9vcCwKIAkJCSAgICJcdC5zZWN0aW9uIC5mdGV4 dCxcImF4XCJcblx0LmNvcmUiKTsKIAorI2lmZGVmIE5PX0NUT1JTX0RUT1JT X1NFQ1RJT05TCisgIGVsZl9pbml0ZmluaV9hcnJheV9pbml0X3NlY3Rpb25z ICgpOworI2VuZGlmCiB9CiAMCiAvKiBJbml0aWFsaXplIHRoZSBHQ0MgdGFy Z2V0IHN0cnVjdHVyZS4gICovCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL21p Y3JvYmxhemUvbWljcm9ibGF6ZS5jIGIvZ2NjL2NvbmZpZy9taWNyb2JsYXpl L21pY3JvYmxhemUuYwppbmRleCAyODhiODZmLi42Yjc3ZTRhIDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS5jCisrKyBi L2djYy9jb25maWcvbWljcm9ibGF6ZS9taWNyb2JsYXplLmMKQEAgLTI3NTMs NiArMjc1Myw5IEBAIG1pY3JvYmxhemVfZWxmX2FzbV9pbml0X3NlY3Rpb25z ICh2b2lkKQogICBzZGF0YTJfc2VjdGlvbgogICAgID0gZ2V0X3VubmFtZWRf c2VjdGlvbiAoU0VDVElPTl9XUklURSwgb3V0cHV0X3NlY3Rpb25fYXNtX29w LAogCQkJICAgU0RBVEEyX1NFQ1RJT05fQVNNX09QKTsKKyNpZmRlZiBOT19D VE9SU19EVE9SU19TRUNUSU9OUworICBlbGZfaW5pdGZpbmlfYXJyYXlfaW5p dF9zZWN0aW9ucyAoKTsKKyNlbmRpZgogfQogCiAvKiAgR2VuZXJhdGUgYXNz ZW1ibGVyIGNvZGUgZm9yIGNvbnN0YW50IHBhcnRzIG9mIGEgdHJhbXBvbGlu ZS4gICovCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAu YyBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCmluZGV4IGMxNWMwNGUu LjgzOTY4ZjkgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAw MC5jCisrKyBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCkBAIC0yNDgy OCw2ICsyNDgyOCwxMCBAQCByczYwMDBfZWxmX2FzbV9pbml0X3NlY3Rpb25z ICh2b2lkKQogICBzZGF0YTJfc2VjdGlvbgogICAgID0gZ2V0X3VubmFtZWRf c2VjdGlvbiAoU0VDVElPTl9XUklURSwgb3V0cHV0X3NlY3Rpb25fYXNtX29w LAogCQkJICAgU0RBVEEyX1NFQ1RJT05fQVNNX09QKTsKKworI2lmZGVmIE5P X0NUT1JTX0RUT1JTX1NFQ1RJT05TCisgIGVsZl9pbml0ZmluaV9hcnJheV9p bml0X3NlY3Rpb25zICgpOworI2VuZGlmCiB9CiAKIC8qIEltcGxlbWVudCBU QVJHRVRfU0VMRUNUX1JUWF9TRUNUSU9OLiAgKi8KZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvc3Rvcm15MTYvc3Rvcm15MTYuYyBiL2djYy9jb25maWcvc3Rv cm15MTYvc3Rvcm15MTYuYwppbmRleCA5Nzk2NTI4Li5iMTk0YjQ0IDEwMDY0 NAotLS0gYS9nY2MvY29uZmlnL3N0b3JteTE2L3N0b3JteTE2LmMKKysrIGIv Z2NjL2NvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5jCkBAIC0xNTczLDYgKzE1 NzMsOSBAQCB4c3Rvcm15MTZfYXNtX2luaXRfc2VjdGlvbnMgKHZvaWQpCiAg ICAgPSBnZXRfdW5uYW1lZF9zZWN0aW9uIChTRUNUSU9OX1dSSVRFIHwgU0VD VElPTl9CU1MsCiAJCQkgICBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCiAJCQkg ICAiXHQuc2VjdGlvbiBcIi5ic3NfYmVsb3cxMDBcIixcImF3XCIsQG5vYml0 cyIpOworI2lmZGVmIE5PX0NUT1JTX0RUT1JTX1NFQ1RJT05TCisgIGVsZl9p bml0ZmluaV9hcnJheV9pbml0X3NlY3Rpb25zICgpOworI2VuZGlmCiB9CiAK IC8qIE1hcmsgc3ltYm9scyB3aXRoIHRoZSAiYmVsb3cxMDAiIGF0dHJpYnV0 ZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3QtaW5pdGZpbmktYXJyYXkgYi9nY2MvY29uZmlnL3QtaW5pdGZpbmkt YXJyYXkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgy NGVkNAotLS0gL2Rldi9udWxsCisrKyBiL2djYy9jb25maWcvdC1pbml0Zmlu aS1hcnJheQpAQCAtMCwwICsxLDIzIEBACisjIENvcHlyaWdodCAoQykgMjAx MQorIyAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIwor IyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCisjCisjIEdDQyBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5 b3VyIG9wdGlvbikKKyMgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIEdDQyBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGgg R0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCisjIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworaW5pdGZpbmktYXJy YXkubzogJChzcmNkaXIpL2NvbmZpZy9pbml0ZmluaS1hcnJheS5jIGd0LWlu aXRmaW5pLWFycmF5LmggXAorCSQoQ09ORklHX0gpICQoU1lTVEVNX0gpIGNv cmV0eXBlcy5oICQoVEFSR0VUX0gpIG91dHB1dC5oIFwKKwkkKFRSRUVfSCkg JChHR0NfSCkKKwkkKENPTVBJTEVSKSAtYyAkKEFMTF9DT01QSUxFUkZMQUdT KSAkKEFMTF9DUFBGTEFHUykgJChJTkNMVURFUykgJDwKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvdjg1MC92ODUwLmMgYi9nY2MvY29uZmlnL3Y4NTAvdjg1 MC5jCmluZGV4IDUwNzRlYmUuLjRlNzg3MmEgMTAwNjQ0Ci0tLSBhL2djYy9j b25maWcvdjg1MC92ODUwLmMKKysrIGIvZ2NjL2NvbmZpZy92ODUwL3Y4NTAu YwpAQCAtMjkwMCw2ICsyOTAwLDEwIEBAIHY4NTBfYXNtX2luaXRfc2VjdGlv bnMgKHZvaWQpCiAgICAgPSBnZXRfdW5uYW1lZF9zZWN0aW9uIChTRUNUSU9O X1dSSVRFIHwgU0VDVElPTl9CU1MsCiAJCQkgICBvdXRwdXRfc2VjdGlvbl9h c21fb3AsCiAJCQkgICAiXHQuc2VjdGlvbiAuemJzcyxcImF3XCIiKTsKKwor I2lmZGVmIE5PX0NUT1JTX0RUT1JTX1NFQ1RJT05TCisgIGVsZl9pbml0Zmlu aV9hcnJheV9pbml0X3NlY3Rpb25zICgpOworI2VuZGlmCiB9CiAKIHN0YXRp YyBzZWN0aW9uICoKZGlmZiAtLWdpdCBhL2djYy9jcnRzdHVmZi5jIGIvZ2Nj L2NydHN0dWZmLmMKaW5kZXggYjY1ZjQ5MC4uYmNjZjQ0ZCAxMDA2NDQKLS0t IGEvZ2NjL2NydHN0dWZmLmMKKysrIGIvZ2NjL2NydHN0dWZmLmMKQEAgLTEs NyArMSw4IEBACiAvKiBTcGVjaWFsaXplZCBiaXRzIG9mIGNvZGUgbmVlZGVk IHRvIHN1cHBvcnQgY29uc3RydWN0aW9uIGFuZAogICAgZGVzdHJ1Y3Rpb24g b2YgZmlsZS1zY29wZSBvYmplY3RzIGluIEMrKyBjb2RlLgogICAgQ29weXJp Z2h0IChDKSAxOTkxLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxCi0gICAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorICAgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOSwgMjAxMCwgMjAxMQorICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiAgICBDb250cmlidXRlZCBieSBSb24gR3VpbG1ldHRlIChy ZmdAbW9ua2V5cy5jb20pLgogCiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0Mu CkBAIC0xODksNiArMTkwLDkgQEAgdHlwZWRlZiB2b2lkICgqZnVuY19wdHIp ICh2b2lkKTsKICAgIHJlZmVyIHRvIG9ubHkgdGhlIF9fQ1RPUl9FTkRfXyBz eW1ib2wgaW4gY3J0ZW5kLm8gYW5kIHRoZSBfX0RUT1JfTElTVF9fCiAgICBz eW1ib2wgaW4gY3J0YmVnaW4ubywgd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4g ICovCiAKKy8qIE5vIG5lZWQgZm9yIC5jdG9ycy8uZHRvcnMgc2VjdGlvbiBp ZiBsaW5rZXIgY2FuIHBsYWNlIHRoZW0gaW4KKyAgIC5pbml0X2FycmF5Ly5m aW5pX2FycmF5IHNlY3Rpb24uICAqLworI2lmbmRlZiBOT19DVE9SU19EVE9S U19TRUNUSU9OUwogLyogVGhlIC0xIGlzIGEgZmxhZyB0byBfX2RvX2dsb2Jh bF9bY2RddG9ycyBpbmRpY2F0aW5nIHRoYXQgdGhpcyB0YWJsZQogICAgZG9l cyBub3Qgc3RhcnQgd2l0aCBhIGNvdW50IG9mIGVsZW1lbnRzLiAgKi8KICNp ZmRlZiBDVE9SX0xJU1RfQkVHSU4KQEAgLTIxOSw2ICsyMjMsNyBAQCBTVEFU SUMgZnVuY19wdHIgX19EVE9SX0xJU1RfX1sxXQogICBfX2F0dHJpYnV0ZV9f KChzZWN0aW9uKCIuZHRvcnMiKSwgYWxpZ25lZChzaXplb2YoZnVuY19wdHIp KSkpCiAgID0geyAoZnVuY19wdHIpICgtMSkgfTsKICNlbmRpZiAvKiBfX0RU T1JfTElTVF9fIGFsdGVybmF0aXZlcyAqLworI2VuZGlmIC8qIE5PX0NUT1JT X0RUT1JTX1NFQ1RJT05TICovCiAKICNpZmRlZiBVU0VfRUhfRlJBTUVfUkVH SVNUUlkKIC8qIFN0aWNrIGEgbGFiZWwgYXQgdGhlIGJlZ2lubmluZyBvZiB0 aGUgZnJhbWUgdW53aW5kIGluZm8gc28gd2UgY2FuIHJlZ2lzdGVyCkBAIC00 ODksNiArNDk0LDkgQEAgX19kb19nbG9iYWxfY3RvcnNfMSh2b2lkKQogCiAj ZWxpZiBkZWZpbmVkKENSVF9FTkQpIC8qICEgQ1JUX0JFR0lOICovCiAKKy8q IE5vIG5lZWQgZm9yIC5jdG9ycy8uZHRvcnMgc2VjdGlvbiBpZiBsaW5rZXIg Y2FuIHBsYWNlIHRoZW0gaW4KKyAgIC5pbml0X2FycmF5Ly5maW5pX2FycmF5 IHNlY3Rpb24uICAqLworI2lmbmRlZiBOT19DVE9SU19EVE9SU19TRUNUSU9O UwogLyogUHV0IGEgd29yZCBjb250YWluaW5nIHplcm8gYXQgdGhlIGVuZCBv ZiBlYWNoIG9mIG91ciB0d28gbGlzdHMgb2YgZnVuY3Rpb24KICAgIGFkZHJl c3Nlcy4gIE5vdGUgdGhhdCB0aGUgd29yZHMgZGVmaW5lZCBoZXJlIGdvIGlu dG8gdGhlIC5jdG9ycyBhbmQgLmR0b3JzCiAgICBzZWN0aW9ucyBvZiB0aGUg Y3J0ZW5kLm8gZmlsZSwgYW5kIHNpbmNlIHRoYXQgZmlsZSBpcyBhbHdheXMg bGlua2VkIGluCkBAIC01MzQsNiArNTQyLDcgQEAgU1RBVElDIGZ1bmNfcHRy IF9fRFRPUl9FTkRfX1sxXQogICBfX2F0dHJpYnV0ZV9fKCh1c2VkLCBzZWN0 aW9uKCIuZHRvcnMiKSwgYWxpZ25lZChzaXplb2YoZnVuY19wdHIpKSkpCiAg ID0geyAoZnVuY19wdHIpIDAgfTsKICNlbmRpZgorI2VuZGlmIC8qIE5PX0NU T1JTX0RUT1JTX1NFQ1RJT05TICovCiAKICNpZmRlZiBFSF9GUkFNRV9TRUNU SU9OX05BTUUKIC8qIFRlcm1pbmF0ZSB0aGUgZnJhbWUgdW53aW5kIGluZm8g c2VjdGlvbiB3aXRoIGEgNGJ5dGUgMCBhcyBhIHNlbnRpbmVsOwo= --001517576d20a9117104a614ee0e Content-Type: text/plain; charset=US-ASCII; name="gcc-pr46770-6b.patch" Content-Disposition: attachment; filename="gcc-pr46770-6b.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gp4c4box1 Content-length: 13286 MjAxMS0wNi0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoK CVBSIHRhcmdldC80Njc3MAoJKiBjb25maWcuZ2NjICh1c2VfaW5pdGZpbmlf YXJyYXkpOiBOZXcgdmFyaWFibGUuCglVc2UgaW5pdGZpbmktYXJyYXkubyBm b3IgTGludXgveDg2IGlmIHN1cHBvcnRlZC4KCgkqIGNydHN0dWZmLmM6IERv bid0IGdlbmVyYXRlIC5jdG9ycyBub3IgLmR0b3JzIHNlY3Rpb25zIGlmCglO T19DVE9SU19EVE9SU19TRUNUSU9OUyBpcyBkZWZpbmVkLgoKCSogY29uZmln L2luaXRmaW5pLWFycmF5LmM6IE5ldy4KCSogY29uZmlnL2luaXRmaW5pLWFy cmF5Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvdC1pbml0ZmluaS1hcnJheTog TGlrZXdpc2UuCgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5nY2MgYi9nY2Mv Y29uZmlnLmdjYwppbmRleCAyY2Y5MmQyLi5lMGEyNTNkIDEwMDY0NAotLS0g YS9nY2MvY29uZmlnLmdjYworKysgYi9nY2MvY29uZmlnLmdjYwpAQCAtMTg2 LDYgKzE4Niw5IEBACiAjICBjb25maWd1cmVfZGVmYXVsdF9vcHRpb25zCiAj CQkJU2V0IHRvIGFuIGluaXRpYWxpemVyIGZvciBjb25maWd1cmVfZGVmYXVs dF9vcHRpb25zCiAjCQkJaW4gY29uZmlnYXJncy5oLCBiYXNlZCBvbiAtLXdp dGgtY3B1IGV0IGNldGVyYS4KKyMKKyMgIHVzZV9pbml0ZmluaV9hcnJheQlJ ZiBzZXQgdG8geWVzLCAuaW5pdF9hcnJheS8uZmluaV9hcnJheSBzZWN0aW9u cworIwkJCXdpbGwgYmUgdXNlZCBpZiB0aGV5IHdvcmsuCiAKICMgVGhlIGZv bGxvd2luZyB2YXJpYWJsZXMgYXJlIHVzZWQgaW4gZWFjaCBjYXNlLWNvbnN0 cnVjdCB0byBidWlsZCB1cCB0aGUKICMgb3V0Z29pbmcgdmFyaWFibGVzOgpA QCAtMjM4LDYgKzI0MSw3IEBAIGRlZmF1bHRfZ251X2luZGlyZWN0X2Z1bmN0 aW9uPW5vCiB0YXJnZXRfZ3RmaWxlcz0KIG5lZWRfNjRiaXRfaHdpbnQ9CiBu ZWVkXzY0Yml0X2lzYT0KK3VzZV9pbml0ZmluaV9hcnJheT0KIAogIyBEb24n dCBjYXJyeSB0aGVzZSBvdmVyIGJ1aWxkLT5ob3N0LT50YXJnZXQuICBQbGVh c2UuCiB4bV9maWxlPQpAQCAtMjY2MCw2ICsyNjY0LDcgQEAgZXNhYwogY2Fz ZSAke3RhcmdldH0gaW4KIGlbMzQ1NjddODYtKi1saW51eCogfCB4ODZfNjQt Ki1saW51eCopCiAJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBpMzg2L3Qt cG1tX21hbGxvYyBpMzg2L3QtaTM4NiIKKwl1c2VfaW5pdGZpbmlfYXJyYXk9 eWVzCiAJOzsKIGlbMzQ1NjddODYtKi0qIHwgeDg2XzY0LSotKikKIAl0bWFr ZV9maWxlPSIke3RtYWtlX2ZpbGV9IGkzODYvdC1nbW1fbWFsbG9jIGkzODYv dC1pMzg2IgpAQCAtMzA0Niw2ICszMDUxLDE2IEBAIGlmIHRlc3QgeCR3aXRo X3NjaGVkdWxlID0geDsgdGhlbgogCWVzYWMKIGZpCiAKKyMgU3VwcG9ydCAt LWVuYWJsZS1pbml0ZmluaS1hcnJheS4gIFVzZSBpbml0ZmluaS1hcnJheS5o IG9ubHkgaWYKKyMgdXNlX2luaXRmaW5pX2FycmF5IGlzIGFsc28gc2V0IHRv IHllcy4gIFNvbWUgcGxhdGZvcm1zIGRvbid0IG5lZWQgaXQKKyMgZXZlbiBp ZiBlbmFibGVfaW5pdGZpbmlfYXJyYXkgaXMgeWVzLgoraWYgdGVzdCB4JGVu YWJsZV9pbml0ZmluaV9hcnJheSR1c2VfaW5pdGZpbmlfYXJyYXkgPSB4eWVz eWVzOyB0aGVuCisgIHRtX2ZpbGU9IiR7dG1fZmlsZX0gaW5pdGZpbmktYXJy YXkuaCIKKyAgdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0LWluaXRmaW5p LWFycmF5IgorICBleHRyYV9vYmpzPSIkZXh0cmFfb2JqcyBpbml0ZmluaS1h cnJheS5vIgorICB0YXJnZXRfZ3RmaWxlcz0iJHRhcmdldF9ndGZpbGVzIFwk KHNyY2RpcikvY29uZmlnL2luaXRmaW5pLWFycmF5LmMiCitmaQorCiAjIFZh bGlkYXRlIGFuZCBtYXJrIGFzIHZhbGlkIGFueSAtLXdpdGggb3B0aW9ucyBz dXBwb3J0ZWQKICMgYnkgdGhpcyB0YXJnZXQuICBJbiBvcmRlciB0byB1c2Ug YSBwYXJ0aWN1bGFyIC0td2l0aCBvcHRpb24KICMgeW91IG11c3QgbGlzdCBp dCBpbiBzdXBwb3J0ZWRfZGVmYXVsdHM7IHZhbGlkYXRpbmcgdGhlIHZhbHVl CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2luaXRmaW5pLWFycmF5LmMgYi9n Y2MvY29uZmlnL2luaXRmaW5pLWFycmF5LmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYzA0Mjc2OQotLS0gL2Rldi9udWxsCisrKyBi L2djYy9jb25maWcvaW5pdGZpbmktYXJyYXkuYwpAQCAtMCwwICsxLDgwIEBA CisvKiBEZWZpbml0aW9ucyBmb3IgRUxGIHN5c3RlbXMgd2l0aCAuaW5pdF9h cnJheS8uZmluaV9hcnJheSBzZWN0aW9uCisgICBDb3B5cmlnaHQgKEMpIDIw MTEKKyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlz IGZpbGUgaXMgcGFydCBvZiBHQ0MuCisKK0dDQyBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVu ZGVyCit0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIKK3ZlcnNpb24uCisKK0dDQyBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB TlkKK1dBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCitGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKK2ZvciBtb3JlIGRldGFpbHMuCisKK1lvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCithbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAg SWYgbm90IHNlZQorPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgInN5c3RlbS5o IgorI2luY2x1ZGUgImNvcmV0eXBlcy5oIgorI2luY2x1ZGUgInRhcmdldC5o IgorI2luY2x1ZGUgIm91dHB1dC5oIgorI2luY2x1ZGUgInRyZWUuaCIKKyNp bmNsdWRlICJpbml0ZmluaS1hcnJheS5oIgorI2luY2x1ZGUgImdnYy5oIgor CitzdGF0aWMgR1RZKCgpKSBzZWN0aW9uICppbml0X2FycmF5X3NlY3Rpb247 CitzdGF0aWMgR1RZKCgpKSBzZWN0aW9uICpmaW5pX2FycmF5X3NlY3Rpb247 CisKK3ZvaWQKK2VsZl9pbml0ZmluaV9hcnJheV9pbml0X3NlY3Rpb25zICh2 b2lkKQoreworICBpbml0X2FycmF5X3NlY3Rpb24gPSBnZXRfdW5uYW1lZF9z ZWN0aW9uICgwLCBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCisJCQkJCSAgICAi XHQuc2VjdGlvblx0LmluaXRfYXJyYXkiKTsKKyAgZmluaV9hcnJheV9zZWN0 aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAoMCwgb3V0cHV0X3NlY3Rpb25f YXNtX29wLAorCQkJCQkgICAgIlx0LnNlY3Rpb25cdC5maW5pX2FycmF5Iik7 Cit9CisKK3N0YXRpYyBzZWN0aW9uICoKK2dldF9lbGZfaW5pdGZpbmlfYXJy YXlfcHJpb3JpdHlfc2VjdGlvbiAoaW50IHByaW9yaXR5LAorCQkJCQkgYm9v bCBjb25zdHJ1Y3Rvcl9wKQoreworICBzZWN0aW9uICpzZWM7CisgIGlmIChw cmlvcml0eSAhPSBERUZBVUxUX0lOSVRfUFJJT1JJVFkpCisgICAgeworICAg ICAgY2hhciBidWZbMThdOworICAgICAgc3ByaW50ZiAoYnVmLCAiJXMuJS41 dSIsIAorCSAgICAgICBjb25zdHJ1Y3Rvcl9wID8gIi5pbml0X2FycmF5IiA6 ICIuZmluaV9hcnJheSIsCisJICAgICAgIHByaW9yaXR5KTsKKyAgICAgIHNl YyA9IGdldF9zZWN0aW9uIChidWYsIFNFQ1RJT05fV1JJVEUsIE5VTExfVFJF RSk7CisgICAgfQorICBlbHNlCisgICAgc2VjID0gY29uc3RydWN0b3JfcCA/ IGluaXRfYXJyYXlfc2VjdGlvbiA6IGZpbmlfYXJyYXlfc2VjdGlvbjsKKyAg cmV0dXJuIHNlYzsKK30KKworLyogVXNlIC5pbml0X2FycmF5IHNlY3Rpb24g Zm9yIGNvbnN0cnVjdG9ycy4gKi8KKwordm9pZAorZWxmX2luaXRfYXJyYXlf YXNtX291dF9jb25zdHJ1Y3RvciAocnR4IHN5bWJvbCwgaW50IHByaW9yaXR5 KQoreworICBzZWN0aW9uICpzZWMgPSBnZXRfZWxmX2luaXRmaW5pX2FycmF5 X3ByaW9yaXR5X3NlY3Rpb24gKHByaW9yaXR5LAorCQkJCQkJCSAgdHJ1ZSk7 CisgIGFzc2VtYmxlX2FkZHJfdG9fc2VjdGlvbiAoc3ltYm9sLCBzZWMpOwor fQorCisvKiBVc2UgLmZpbmlfYXJyYXkgc2VjdGlvbiBmb3IgZGVzdHJ1Y3Rv cnMuICovCisKK3ZvaWQKK2VsZl9maW5pX2FycmF5X2FzbV9vdXRfZGVzdHJ1 Y3RvciAocnR4IHN5bWJvbCwgaW50IHByaW9yaXR5KQoreworICBzZWN0aW9u ICpzZWMgPSBnZXRfZWxmX2luaXRmaW5pX2FycmF5X3ByaW9yaXR5X3NlY3Rp b24gKHByaW9yaXR5LAorCQkJCQkJCSAgZmFsc2UpOworICBhc3NlbWJsZV9h ZGRyX3RvX3NlY3Rpb24gKHN5bWJvbCwgc2VjKTsKK30KKworI2luY2x1ZGUg Imd0LWluaXRmaW5pLWFycmF5LmgiCmRpZmYgLS1naXQgYS9nY2MvY29uZmln L2luaXRmaW5pLWFycmF5LmggYi9nY2MvY29uZmlnL2luaXRmaW5pLWFycmF5 LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JhN2Vj YQotLS0gL2Rldi9udWxsCisrKyBiL2djYy9jb25maWcvaW5pdGZpbmktYXJy YXkuaApAQCAtMCwwICsxLDQ2IEBACisvKiBEZWZpbml0aW9ucyBmb3IgRUxG IHN5c3RlbXMgd2l0aCAuaW5pdF9hcnJheS8uZmluaV9hcnJheSBzZWN0aW9u CisgICBzdXBwb3J0LgorICAgQ29weXJpZ2h0IChDKSAyMDExCisgICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR0NDLgorCisgICBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICAgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQKKyAgIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyCisgICBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBHQ0MgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ VEhPVVQKKyAgIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWQorICAgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCBHQ0M7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKKyAgIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIE5vIG5lZWQgZm9y IC5jdG9ycy8uZHRvcnMgc2VjdGlvbiBzaW5jZSBsaW5rZXIgY2FuIHBsYWNl IHRoZW0gaW4KKyAgIC5pbml0X2FycmF5Ly5maW5pX2FycmF5IHNlY3Rpb24u ICAqLworI2RlZmluZSBOT19DVE9SU19EVE9SU19TRUNUSU9OUworCisjdW5k ZWYgSU5JVF9TRUNUSU9OX0FTTV9PUAorI3VuZGVmIEZJTklfU0VDVElPTl9B U01fT1AKKworLyogRklYTUU6IElOSVRfQVJSQVlfU0VDVElPTl9BU01fT1Ag YW5kIEZJTklfQVJSQVlfU0VDVElPTl9BU01fT1AKKwkgIGFyZW4ndCB1c2Vk IGluIGFueSBhc3NlbWJseSBjb2Rlcy4gIEJ1dCB3ZSBoYXZlIHRvIGRlZmlu ZQorCSAgdGhlbSB0byBzb21ldGhpbmcuICAqLworI2RlZmluZSBJTklUX0FS UkFZX1NFQ1RJT05fQVNNX09QIFNvbWV0aGluZworI2RlZmluZSBGSU5JX0FS UkFZX1NFQ1RJT05fQVNNX09QIFNvbWV0aGluZworCisjaWZuZGVmIFRBUkdF VF9BU01fSU5JVF9TRUNUSU9OUworI2RlZmluZSBUQVJHRVRfQVNNX0lOSVRf U0VDVElPTlMgZWxmX2luaXRmaW5pX2FycmF5X2luaXRfc2VjdGlvbnMKKyNl bmRpZgorZXh0ZXJuIHZvaWQgZWxmX2luaXRmaW5pX2FycmF5X2luaXRfc2Vj dGlvbnMgKHZvaWQpOworCisvKiBVc2UgLmluaXRfYXJyYXkvLmZpbmlfYXJy YXkgc2VjdGlvbiBmb3IgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycy4g Ki8KKyN1bmRlZiBUQVJHRVRfQVNNX0NPTlNUUlVDVE9SCisjZGVmaW5lIFRB UkdFVF9BU01fQ09OU1RSVUNUT1IgZWxmX2luaXRfYXJyYXlfYXNtX291dF9j b25zdHJ1Y3RvcgorI3VuZGVmIFRBUkdFVF9BU01fREVTVFJVQ1RPUgorI2Rl ZmluZSBUQVJHRVRfQVNNX0RFU1RSVUNUT1IgZWxmX2ZpbmlfYXJyYXlfYXNt X291dF9kZXN0cnVjdG9yCitleHRlcm4gdm9pZCBlbGZfaW5pdF9hcnJheV9h c21fb3V0X2NvbnN0cnVjdG9yIChydHgsIGludCk7CitleHRlcm4gdm9pZCBl bGZfZmluaV9hcnJheV9hc21fb3V0X2Rlc3RydWN0b3IgKHJ0eCwgaW50KTsK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvdC1pbml0ZmluaS1hcnJheSBiL2dj Yy9jb25maWcvdC1pbml0ZmluaS1hcnJheQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zODI0ZWQ0Ci0tLSAvZGV2L251bGwKKysrIGIv Z2NjL2NvbmZpZy90LWluaXRmaW5pLWFycmF5CkBAIC0wLDAgKzEsMjMgQEAK KyMgQ29weXJpZ2h0IChDKSAyMDExCisjIDIwMDkgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdD Qy4KKyMKKyMgR0NDIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQorIyBhbnkgbGF0ZXIg dmVyc2lvbi4KKyMKKyMgR0NDIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyMgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5H My4gIElmIG5vdCBzZWUKKyMgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorCitpbml0ZmluaS1hcnJheS5vOiAkKHNyY2RpcikvY29uZmlnL2lu aXRmaW5pLWFycmF5LmMgZ3QtaW5pdGZpbmktYXJyYXkuaCBcCisJJChDT05G SUdfSCkgJChTWVNURU1fSCkgY29yZXR5cGVzLmggJChUQVJHRVRfSCkgb3V0 cHV0LmggXAorCSQoVFJFRV9IKSAkKEdHQ19IKQorCSQoQ09NUElMRVIpIC1j ICQoQUxMX0NPTVBJTEVSRkxBR1MpICQoQUxMX0NQUEZMQUdTKSAkKElOQ0xV REVTKSAkPApkaWZmIC0tZ2l0IGEvZ2NjL2NydHN0dWZmLmMgYi9nY2MvY3J0 c3R1ZmYuYwppbmRleCBiNjVmNDkwLi5iY2NmNDRkIDEwMDY0NAotLS0gYS9n Y2MvY3J0c3R1ZmYuYworKysgYi9nY2MvY3J0c3R1ZmYuYwpAQCAtMSw3ICsx LDggQEAKIC8qIFNwZWNpYWxpemVkIGJpdHMgb2YgY29kZSBuZWVkZWQgdG8g c3VwcG9ydCBjb25zdHJ1Y3Rpb24gYW5kCiAgICBkZXN0cnVjdGlvbiBvZiBm aWxlLXNjb3BlIG9iamVjdHMgaW4gQysrIGNvZGUuCiAgICBDb3B5cmlnaHQg KEMpIDE5OTEsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEKLSAgIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs IDIwMDcsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisgICAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy MDA5LCAyMDEwLCAyMDExCisgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICAgIENvbnRyaWJ1dGVkIGJ5IFJvbiBHdWlsbWV0dGUgKHJmZ0Bt b25rZXlzLmNvbSkuCiAKIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KQEAg LTE4OSw2ICsxOTAsOSBAQCB0eXBlZGVmIHZvaWQgKCpmdW5jX3B0cikgKHZv aWQpOwogICAgcmVmZXIgdG8gb25seSB0aGUgX19DVE9SX0VORF9fIHN5bWJv bCBpbiBjcnRlbmQubyBhbmQgdGhlIF9fRFRPUl9MSVNUX18KICAgIHN5bWJv bCBpbiBjcnRiZWdpbi5vLCB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLiAgKi8K IAorLyogTm8gbmVlZCBmb3IgLmN0b3JzLy5kdG9ycyBzZWN0aW9uIGlmIGxp bmtlciBjYW4gcGxhY2UgdGhlbSBpbgorICAgLmluaXRfYXJyYXkvLmZpbmlf YXJyYXkgc2VjdGlvbi4gICovCisjaWZuZGVmIE5PX0NUT1JTX0RUT1JTX1NF Q1RJT05TCiAvKiBUaGUgLTEgaXMgYSBmbGFnIHRvIF9fZG9fZ2xvYmFsX1tj ZF10b3JzIGluZGljYXRpbmcgdGhhdCB0aGlzIHRhYmxlCiAgICBkb2VzIG5v dCBzdGFydCB3aXRoIGEgY291bnQgb2YgZWxlbWVudHMuICAqLwogI2lmZGVm IENUT1JfTElTVF9CRUdJTgpAQCAtMjE5LDYgKzIyMyw3IEBAIFNUQVRJQyBm dW5jX3B0ciBfX0RUT1JfTElTVF9fWzFdCiAgIF9fYXR0cmlidXRlX18oKHNl Y3Rpb24oIi5kdG9ycyIpLCBhbGlnbmVkKHNpemVvZihmdW5jX3B0cikpKSkK ICAgPSB7IChmdW5jX3B0cikgKC0xKSB9OwogI2VuZGlmIC8qIF9fRFRPUl9M SVNUX18gYWx0ZXJuYXRpdmVzICovCisjZW5kaWYgLyogTk9fQ1RPUlNfRFRP UlNfU0VDVElPTlMgKi8KIAogI2lmZGVmIFVTRV9FSF9GUkFNRV9SRUdJU1RS WQogLyogU3RpY2sgYSBsYWJlbCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBm cmFtZSB1bndpbmQgaW5mbyBzbyB3ZSBjYW4gcmVnaXN0ZXIKQEAgLTQ4OSw2 ICs0OTQsOSBAQCBfX2RvX2dsb2JhbF9jdG9yc18xKHZvaWQpCiAKICNlbGlm IGRlZmluZWQoQ1JUX0VORCkgLyogISBDUlRfQkVHSU4gKi8KIAorLyogTm8g bmVlZCBmb3IgLmN0b3JzLy5kdG9ycyBzZWN0aW9uIGlmIGxpbmtlciBjYW4g cGxhY2UgdGhlbSBpbgorICAgLmluaXRfYXJyYXkvLmZpbmlfYXJyYXkgc2Vj dGlvbi4gICovCisjaWZuZGVmIE5PX0NUT1JTX0RUT1JTX1NFQ1RJT05TCiAv KiBQdXQgYSB3b3JkIGNvbnRhaW5pbmcgemVybyBhdCB0aGUgZW5kIG9mIGVh Y2ggb2Ygb3VyIHR3byBsaXN0cyBvZiBmdW5jdGlvbgogICAgYWRkcmVzc2Vz LiAgTm90ZSB0aGF0IHRoZSB3b3JkcyBkZWZpbmVkIGhlcmUgZ28gaW50byB0 aGUgLmN0b3JzIGFuZCAuZHRvcnMKICAgIHNlY3Rpb25zIG9mIHRoZSBjcnRl bmQubyBmaWxlLCBhbmQgc2luY2UgdGhhdCBmaWxlIGlzIGFsd2F5cyBsaW5r ZWQgaW4KQEAgLTUzNCw2ICs1NDIsNyBAQCBTVEFUSUMgZnVuY19wdHIgX19E VE9SX0VORF9fWzFdCiAgIF9fYXR0cmlidXRlX18oKHVzZWQsIHNlY3Rpb24o Ii5kdG9ycyIpLCBhbGlnbmVkKHNpemVvZihmdW5jX3B0cikpKSkKICAgPSB7 IChmdW5jX3B0cikgMCB9OwogI2VuZGlmCisjZW5kaWYgLyogTk9fQ1RPUlNf RFRPUlNfU0VDVElPTlMgKi8KIAogI2lmZGVmIEVIX0ZSQU1FX1NFQ1RJT05f TkFNRQogLyogVGVybWluYXRlIHRoZSBmcmFtZSB1bndpbmQgaW5mbyBzZWN0 aW9uIHdpdGggYSA0Ynl0ZSAwIGFzIGEgc2VudGluZWw7Cg== --001517576d20a9117104a614ee0e--