From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id C380C385771E; Sat, 7 Oct 2023 19:32:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C380C385771E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-406650da82bso29464695e9.3; Sat, 07 Oct 2023 12:32:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696707175; x=1697311975; darn=gcc.gnu.org; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=IHMyOh61gDE83K6U9mkJ0MOiGoQ+Jg7vrALXkhZ3pI0=; b=ZT4/oEZxiotlBsHihVJxWY/dj5CtApWqhFFF7goB7GqziQj/3vnBuFzduK+BWEfCS9 eGX4SeHNQGbipeO3SO5O6SzDNThQ5gy5166KbuOC990WvK4xTn06kla3Bi02lIGwXpcI rvUMgyrx9KIm62vQprNxc6pTnJ3uPwAi+euzFYpgV0+Llh7o9PbXM2N8cU3Bvj/w5Aej VdSJ4DBiK69CUX7T/Lphdc7Cd0P6xIuINDLmIB8iTYcJttv/doj6mm0Jvv03PhpKjnPE +lrg7yvYWWj/8GlhkSDUSVZJqoeu3zYi4+jTlcugCFG9Krb+zb4TtoKsD8DV6FMYBHN5 hAng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696707175; x=1697311975; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=IHMyOh61gDE83K6U9mkJ0MOiGoQ+Jg7vrALXkhZ3pI0=; b=svxImZnoOPsKaRw8KX02oLp6okVlXg2Vws6c+Q9xOuEzmg3LfOxMQcuwt+TikFYZX8 7/Fc7UNy/K3EtEqvte+kxSJISge2X8cHyVTDuIDTylEnvudpxLohGltC+iVoYWo6i++J GUkt3CRUt5f0PvT/3htfHhKXasyFiyjGQxxuoyEVdNhFOoSFMoYL+wse1639EkoUIv2c bUowaKW7g78DBFTyaTYBMg4LxdCxTTij/duiHv78yZu5BhOJR0W6bqfuzk8kWtzLKM9K ZAPbUzDut6HYzYoeVYW9T+qTGUxwVUniWS0/di4JNddl6UE8Y7fypFKq3awiWgfeEt0i nFLw== X-Gm-Message-State: AOJu0YzkzkKZM5pKM7a94a6dpZ1+iG/FZyay3IQi0lHm4Bqw3tbJ6YwO h7udSF88rSSfBhosgDGmtz8= X-Google-Smtp-Source: AGHT+IEUhoFpaXkm0nkrDl7dbqBn+WhpGWFqd+aHNeFQCOx+tVrIERT6BdUS13DdgUf3+kzBtIaxCw== X-Received: by 2002:a05:600c:b49:b0:406:7232:1431 with SMTP id k9-20020a05600c0b4900b0040672321431mr10841081wmr.33.1696707175017; Sat, 07 Oct 2023 12:32:55 -0700 (PDT) Received: from ?IPV6:2a01:e0a:1dc:b1c0:bc:e1ab:e1fa:9c14? ([2a01:e0a:1dc:b1c0:bc:e1ab:e1fa:9c14]) by smtp.gmail.com with ESMTPSA id x11-20020a05600c21cb00b00405bbfd5d16sm6935861wmj.7.2023.10.07.12.32.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 07 Oct 2023 12:32:54 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------SIryYXPFRKGdNJLuCPP25Nxh" Message-ID: <5306fc1f-603b-43ef-beec-420cbe0ebfca@gmail.com> Date: Sat, 7 Oct 2023 21:32:53 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] sso-string@gnu-versioned-namespace [PR83077] Content-Language: en-US From: =?UTF-8?Q?Fran=C3=A7ois_Dumont?= To: Jonathan Wakely Cc: Jonathan Wakely , libstdc++ , gcc-patches References: <1dc681f4-41b7-d171-02ac-b0194617bdee@gmail.com> <91dc6383-6bff-ce6c-b24d-81cd2ab2dce8@gmail.com> In-Reply-To: X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------SIryYXPFRKGdNJLuCPP25Nxh Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit I've been told that previous patch generated with 'git diff -b' was not applying properly so here is the same patch again with a simple 'git diff'. On 07/10/2023 14:25, François Dumont wrote: > Hi > > Here is a rebased version of this patch. > > There are few test failures when running 'make check-c++' but nothing > new. > > Still, there are 2 patches awaiting validation to fix some of them, PR > c++/111524 to fix another bunch and I fear that we will have to live > with the others. > >     libstdc++: [_GLIBCXX_INLINE_VERSION] Use cxx11 abi [PR83077] > >     Use cxx11 abi when activating versioned namespace mode. To do support >     a new configuration mode where !_GLIBCXX_USE_DUAL_ABI and > _GLIBCXX_USE_CXX11_ABI. > >     The main change is that std::__cow_string is now defined whenever > _GLIBCXX_USE_DUAL_ABI >     or _GLIBCXX_USE_CXX11_ABI is true. Implementation is using > available std::string in >     case of dual abi and a subset of it when it's not. > >     On the other side std::__sso_string is defined only when > _GLIBCXX_USE_DUAL_ABI is true >     and _GLIBCXX_USE_CXX11_ABI is false. Meaning that > std::__sso_string is a typedef for the >     cow std::string implementation when dual abi is disabled and cow > string is being used. > >     libstdcxx-v3/ChangeLog: > >             PR libstdc++/83077 >             * acinclude.m4 [GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI]: > Default to "new" libstdcxx abi >             when enable_symvers is gnu-versioned-namespace. >             * config/locale/dragonfly/monetary_members.cc > [!_GLIBCXX_USE_DUAL_ABI]: Define money_base >             members. >             * config/locale/generic/monetary_members.cc > [!_GLIBCXX_USE_DUAL_ABI]: Likewise. >             * config/locale/gnu/monetary_members.cc > [!_GLIBCXX_USE_DUAL_ABI]: Likewise. >             * config/locale/gnu/numeric_members.cc >             [!_GLIBCXX_USE_DUAL_ABI](__narrow_multibyte_chars): Define. >             * configure: Regenerate. >             * include/bits/c++config >             [_GLIBCXX_INLINE_VERSION](_GLIBCXX_NAMESPACE_CXX11, > _GLIBCXX_BEGIN_NAMESPACE_CXX11): >             Define empty. > [_GLIBCXX_INLINE_VERSION](_GLIBCXX_END_NAMESPACE_CXX11, > _GLIBCXX_DEFAULT_ABI_TAG): >             Likewise. >             * include/bits/cow_string.h [!_GLIBCXX_USE_CXX11_ABI]: > Define a light version of COW >             basic_string as __std_cow_string for use in stdexcept. >             * include/std/stdexcept [_GLIBCXX_USE_CXX11_ABI]: Define > __cow_string. >             (__cow_string(const char*)): New. >             (__cow_string::c_str()): New. >             * python/libstdcxx/v6/printers.py > (StdStringPrinter::__init__): Set self.new_string to True >             when std::__8::basic_string type is found. >             * src/Makefile.am > [ENABLE_SYMVERS_GNU_NAMESPACE](ldbl_alt128_compat_sources): Define empty. >             * src/Makefile.in: Regenerate. >             * src/c++11/Makefile.am (cxx11_abi_sources): Rename into... >             (dual_abi_sources): ...this. Also move cow-local_init.cc, > cxx11-hash_tr1.cc, >             cxx11-ios_failure.cc entries to... >             (sources): ...this. >             (extra_string_inst_sources): Move cow-fstream-inst.cc, > cow-sstream-inst.cc, cow-string-inst.cc, >             cow-string-io-inst.cc, cow-wtring-inst.cc, > cow-wstring-io-inst.cc, cxx11-locale-inst.cc, >             cxx11-wlocale-inst.cc entries to... >             (inst_sources): ...this. >             * src/c++11/Makefile.in: Regenerate. >             * src/c++11/cow-fstream-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-locale_init.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-sstream-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-stdexcept.cc [_GLIBCXX_USE_CXX11_ABI]: > Include . >             [_GLIBCXX_USE_DUAL_ABI || > _GLIBCXX_USE_CXX11_ABI](__cow_string): Redefine before >             including . Define > _GLIBCXX_DEFINE_STDEXCEPT_INSTANTIATIONS so that >             __cow_string definition in is skipped. >             [_GLIBCXX_USE_CXX11_ABI]: Skip Transaction Memory TS > definitions. >             * src/c++11/string-inst.cc: Add sizeof/alignof > static_assert on stdexcept >             __cow_string definition. >             (_GLIBCXX_DEFINING_CXX11_ABI_INSTANTIATIONS): Define > following _GLIBCXX_USE_CXX11_ABI >             value. >             [_GLIBCXX_USE_CXX11_ABI && > !_GLIBCXX_DEFINING_CXX11_ABI_INSTANTIATIONS]: >             Define _GLIBCXX_DEFINING_COW_STRING_INSTANTIATIONS. > Include . >             Define basic_string as __std_cow_string for the current > translation unit. >             * src/c++11/cow-string-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-string-io-inst.cc > [_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++11/cow-wstring-inst.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cow-wstring-io-inst.cc > [_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++11/cxx11-hash_tr1.cc [!_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cxx11-ios_failure.cc > [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             [!_GLIBCXX_USE_DUAL_ABI] (__ios_failure): Remove. >             * src/c++11/cxx11-locale-inst.cc: Cleanup, just include > locale-inst.cc. >             * src/c++11/cxx11-stdexcept.cc [!_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++11/cxx11-wlocale-inst.cc > [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++11/locale-inst-numeric.h > [!_GLIBCXX_USE_DUAL_ABI](std::use_facet>, > std::use_facet>): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](std::has_facet>, > std::has_facet>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](std::num_get istreambuf_iterator>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](std::num_put ostreambuf_iterator>): Instantiate. >             * src/c++11/locale-inst.cc [!_GLIBCXX_USE_DUAL_ABI]: Build > only when configured >             _GLIBCXX_USE_CXX11_ABI is equal to currently built abi. >             [!_GLIBCXX_USE_DUAL_ABI](__moneypunct_cache): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__moneypunct_cache): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__numpunct_cache): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__timepunct): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__timepunct_cache): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](time_put ostreambuf_iterator>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](time_put_byname ostreambuf_iterator>): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](__ctype_abstract_base): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](ctype_byname): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__codecvt_abstract_base mbstate_t>): Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](codecvt_byname mbstate_t>): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](use_facet mbstate_t>>(const locale&)): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](use_facet<__timepunct>(const locale&)): > Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): > Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](has_facet>(const locale&)): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](has_facet mbstate_t>>(const locale&)): Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](has_facet<__timepunct>(const locale&)): > Instantiate. > [!_GLIBCXX_USE_DUAL_ABI](has_facet>(const locale&)): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__add_grouping): Define. >             [!_GLIBCXX_USE_DUAL_ABI](__pad>): > Instantiate. >             [!_GLIBCXX_USE_DUAL_ABI](__int_to_char(C*, unsigned long, > const C*, >             ios_base::fmtflags, bool)): Define. >             [!_GLIBCXX_USE_DUAL_ABI](__int_to_char(C*, unsigned long > long, const C*, >             ios_base::fmtflags, bool)): Define. >             * src/c++11/wlocale-inst.cc [!_GLIBCXX_USE_CXX11_ABI]: > Skip definitions. >             * src/c++98/Makefile.am (cxx11_abi_sources): Remove, > unique cow-istream-string.cc entry >             move to... >             (inst_sources): ...this. >             * src/c++98/Makefile.in: Regenerate. >             * src/c++98/cow-istream-string.cc: Include > . >             [_GLIBCXX_USE_CXX11_ABI]: Skip definitions. >             * src/c++98/hash_tr1.cc [_GLIBCXX_USE_CXX11_ABI]: Skip > definitions. >             * src/c++98/ios_failure.cc > [_GLIBCXX_USE_CXX11_ABI][_GLIBCXX_USE_DUAL_ABI]: Skip definitions. >             * src/c++98/istream-string.cc [!_GLIBCXX_USE_DUAL_ABI]: > Build only when configured >             _GLIBCXX_USE_CXX11_ABI is equal to currently built abi. >             * src/c++98/locale_facets.cc > [_GLIBCXX_USE_CXX11_ABI](__verify_grouping): Remove. >             * src/c++98/stdexcept.cc >             [_GLIBCXX_USE_CXX11_ABI](logic_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](domain_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](invalid_argument(const string&): > Remove. >             [_GLIBCXX_USE_CXX11_ABI](length_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](out_of_range(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](runtime_error(const string&): > Remove. >             [_GLIBCXX_USE_CXX11_ABI](range_error(const string&): Remove. >             [_GLIBCXX_USE_CXX11_ABI](overflow_error(const string&): > Remove. >             [_GLIBCXX_USE_CXX11_ABI](underflow_error(const string&): > Remove. >             * src/c++98/compatibility.cc [_GLIBCXX_USE_CXX11_ABI]: > Skip all definitions appart from >             istream::ignore(streamsize). > > Tested under Linux x64_86, ok to commit ? > > François > > > On 17/08/2023 19:22, Jonathan Wakely wrote: >> On Sun, 13 Aug 2023 at 14:27, François Dumont via Libstdc++ >> wrote: >>> Here is the fixed patch tested in all 3 modes: >>> >>> - _GLIBCXX_USE_DUAL_ABI >>> >>> - !_GLIBCXX_USE_DUAL_ABI && !_GLIBCXX_USE_CXX11_ABI >>> >>> - !_GLIBCXX_USE_DUAL_ABI && _GLIBCXX_USE_CXX11_ABI >>> >>> I don't know what you have in mind for the change below but I wanted to >>> let you know that I tried to put COW std::basic_string into a nested >>> __cow namespace when _GLIBCXX_USE_CXX11_ABI. But it had more impact on >>> string-inst.cc so I preferred the macro substitution approach. >> I was thinking of implementing the necessary special members functions >> of __cow_string directly, so they are ABI compatible with the COW >> std::basic_string but don't actually reuse the code. That would mean >> we don't need to compile and instantiate the whole COW string just to >> use a few members from it. But that can be done later, the macro >> approach seems OK for now. >> >>> There are some test failing when !_GLIBCXX_USE_CXX11_ABI that are >>> unrelated with my changes. I'll propose fixes in coming days. >> Which tests? I run the entire testsuite with >> -D_GLIBCXX_USE_CXX11_ABI=0 several times per day and I'm not seeing >> failures. >> >> I'll review the patch ASAP, thanks for working on it. >> --------------SIryYXPFRKGdNJLuCPP25Nxh Content-Type: text/x-patch; charset=UTF-8; name="cxx11_gnu-versioned-ns.patch" Content-Disposition: attachment; filename="cxx11_gnu-versioned-ns.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9hY2luY2x1ZGUubTQgYi9saWJzdGRjKystdjMv YWNpbmNsdWRlLm00CmluZGV4IGQ4ZjBiYTFjM2UyLi43OTM0NzEyMTZlNiAxMDA2NDQKLS0t IGEvbGlic3RkYysrLXYzL2FjaW5jbHVkZS5tNAorKysgYi9saWJzdGRjKystdjMvYWNpbmNs dWRlLm00CkBAIC00ODc1LDEyICs0ODc1LDE2IEBAIGRubAogQUNfREVGVU4oW0dMSUJDWFhf RU5BQkxFX0xJQlNURENYWF9EVUFMX0FCSV0sIFsKICAgR0xJQkNYWF9FTkFCTEUobGlic3Rk Y3h4LWR1YWwtYWJpLCQxLCxbc3VwcG9ydCB0d28gdmVyc2lvbnMgb2Ygc3RkOjpzdHJpbmdd KQogICBpZiB0ZXN0IHgkZW5hYmxlX3N5bXZlcnMgPSB4Z251LXZlcnNpb25lZC1uYW1lc3Bh Y2U7IHRoZW4KLSAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNlIGlzIGluY29tcGF0aWJs ZSB3aXRoIHRoZSBkdWFsIEFCSS4KLSAgICBlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpPSJu byIKLSAgZmkKLSAgaWYgdGVzdCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4 eWVzOyB0aGVuCisgICAgIyBnbnUtdmVyc2lvbmVkLW5hbWVzcGFjZSBpcyBpbmNvbXBhdGli bGUgd2l0aCB0aGUgZHVhbCBBQkkuLi4KICAgICBBQ19NU0dfTk9USUNFKFtkdWFsIEFCSSBp cyBkaXNhYmxlZF0pCi0gICAgZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGli bGUiCisgICAgZW5hYmxlX2xpYnN0ZGN4eF9kdWFsX2FiaT0ibm8iCisgICAgIyAuLi4gYW5k IHVzZSB0aGUgY3h4MTEgb25lLgorICAgIGRlZmF1bHRfbGlic3RkY3h4X2FiaT0ibmV3Igor ICBlbHNlCisgICAgaWYgdGVzdCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4 eWVzOyB0aGVuCisgICAgICBBQ19NU0dfTk9USUNFKFtkdWFsIEFCSSBpcyBkaXNhYmxlZF0p CisgICAgICBkZWZhdWx0X2xpYnN0ZGN4eF9hYmk9ImdjYzQtY29tcGF0aWJsZSIKKyAgICBm aQogICBmaQogICBHTElCQ1hYX0NPTkRJVElPTkFMKEVOQUJMRV9EVUFMX0FCSSwgdGVzdCAk ZW5hYmxlX2xpYnN0ZGN4eF9kdWFsX2FiaSA9IHllcykKIF0pCmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvbW9uZXRhcnlfbWVtYmVycy5jYyBi L2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS9tb25ldGFyeV9tZW1iZXJz LmNjCmluZGV4IGY1MzRiYmU0YWViLi4zZjk2ZjJiOWYxMSAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJlcnMuY2MKKysr IGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJl cnMuY2MKQEAgLTM5LDcgKzM5LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJ T04KIAogLy8gVGhpcyBmaWxlIG1pZ2h0IGJlIGNvbXBpbGVkIHR3aWNlLCBidXQgd2Ugb25s eSB3YW50IHRvIGRlZmluZSB0aGUgbWVtYmVycwogLy8gb2YgbW9uZXlfYmFzZSBvbmNlLgot I2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogCiAgIC8vIENvbnN0cnVjdCBhbmQg cmV0dXJuIHZhbGlkIHBhdHRlcm4gY29uc2lzdGluZyBvZiBzb21lIGNvbWJpbmF0aW9uIG9m OgogICAvLyBzcGFjZSBub25lIHN5bWJvbCBzaWduIHZhbHVlCkBAIC0yMDcsNyArMjA3LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIH0KICAgICByZXR1 cm4gX19yZXQ7CiAgIH0KLSNlbmRpZgorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogCiAgIHRlbXBsYXRlPD4KICAgICB2 b2lkCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmljL21v bmV0YXJ5X21lbWJlcnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmlj L21vbmV0YXJ5X21lbWJlcnMuY2MKaW5kZXggMmMxY2ZlZmYwOTQuLmExYWUxMzZiZTA0IDEw MDY0NAotLS0gYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmljL21vbmV0YXJ5 X21lbWJlcnMuY2MKKysrIGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ2VuZXJpYy9t b25ldGFyeV9tZW1iZXJzLmNjCkBAIC0zNiw3ICszNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAKIC8vIFRoaXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2lj ZSwgYnV0IHdlIG9ubHkgd2FudCB0byBkZWZpbmUgdGhlIG1lbWJlcnMKIC8vIG9mIG1vbmV5 X2Jhc2Ugb25jZS4KLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICAvLyBD b25zdHJ1Y3QgYW5kIHJldHVybiB2YWxpZCBwYXR0ZXJuIGNvbnNpc3Rpbmcgb2Ygc29tZSBj b21iaW5hdGlvbiBvZjoKICAgLy8gc3BhY2Ugbm9uZSBzeW1ib2wgc2lnbiB2YWx1ZQpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ251L21vbmV0YXJ5X21lbWJl cnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nbnUvbW9uZXRhcnlfbWVtYmVy cy5jYwppbmRleCAxZjQ2ZWEyZjUzZi4uODc1NjFiY2M4MjEgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9tb25ldGFyeV9tZW1iZXJzLmNjCisrKyBiL2xp YnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9tb25ldGFyeV9tZW1iZXJzLmNjCkBAIC0z Nyw3ICszNyw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIC8vIFRo aXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2ljZSwgYnV0IHdlIG9ubHkgd2FudCB0byBk ZWZpbmUgdGhlIG1lbWJlcnMKIC8vIG9mIG1vbmV5X2Jhc2Ugb25jZS4KLSNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICAvLyBDb25zdHJ1Y3QgYW5kIHJldHVybiB2YWxp ZCBwYXR0ZXJuIGNvbnNpc3Rpbmcgb2Ygc29tZSBjb21iaW5hdGlvbiBvZjoKICAgLy8gc3Bh Y2Ugbm9uZSBzeW1ib2wgc2lnbiB2YWx1ZQpAQCAtMjA1LDcgKzIwNSw3IEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICB9CiAgICAgcmV0dXJuIF9fcmV0Owog ICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICBleHRlcm4gY2hhciBfX25hcnJvd19tdWx0aWJ5 dGVfY2hhcnMoY29uc3QgY2hhciogcywgX19sb2NhbGVfdCBjbG9jKTsKIApkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ251L251bWVyaWNfbWVtYmVycy5jYyBi L2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9udW1lcmljX21lbWJlcnMuY2MKaW5k ZXggMjIwYTBmOGM1MTAuLmNiODA5NWU2YWM3IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv Y29uZmlnL2xvY2FsZS9nbnUvbnVtZXJpY19tZW1iZXJzLmNjCisrKyBiL2xpYnN0ZGMrKy12 My9jb25maWcvbG9jYWxlL2dudS9udW1lcmljX21lbWJlcnMuY2MKQEAgLTM5LDcgKzM5LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgZXh0ZXJuIGNoYXIgX19u YXJyb3dfbXVsdGlieXRlX2NoYXJzKGNvbnN0IGNoYXIqIHMsIF9fbG9jYWxlX3QgY2xvYyk7 CiAKIC8vIFRoaXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2ljZSwgYnV0IHdlIG9ubHkg d2FudCB0byBkZWZpbmUgdGhpcyBvbmNlLgotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFM X0FCSQogICBjaGFyCiAgIF9fbmFycm93X211bHRpYnl0ZV9jaGFycyhjb25zdCBjaGFyKiBz LCBfX2xvY2FsZV90IGNsb2MpCiAgIHsKQEAgLTg0LDcgKzg0LDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIH0KICAgICByZXR1cm4gJ1wwJzsKICAgfQot I2VuZGlmCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJD WFhfVVNFX0RVQUxfQUJJCiAKICAgdGVtcGxhdGU8PgogICAgIHZvaWQKZGlmZiAtLWdpdCBh L2xpYnN0ZGMrKy12My9jb25maWd1cmUgYi9saWJzdGRjKystdjMvY29uZmlndXJlCmluZGV4 IDEzZmMwM2IyYTNmLi41OGUwMWY3ZDE2ZiAxMDA3NTUKLS0tIGEvbGlic3RkYysrLXYzL2Nv bmZpZ3VyZQorKysgYi9saWJzdGRjKystdjMvY29uZmlndXJlCkBAIC03MDcwMiwxMyArNzA3 MDIsMTggQEAgZmkKIAogCiAgIGlmIHRlc3QgeCRlbmFibGVfc3ltdmVycyA9IHhnbnUtdmVy c2lvbmVkLW5hbWVzcGFjZTsgdGhlbgotICAgICMgZ251LXZlcnNpb25lZC1uYW1lc3BhY2Ug aXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGR1YWwgQUJJLgotICAgIGVuYWJsZV9saWJzdGRj eHhfZHVhbF9hYmk9Im5vIgotICBmaQotICBpZiB0ZXN0IHgiJGVuYWJsZV9saWJzdGRjeHhf ZHVhbF9hYmkiICE9IHh5ZXM7IHRoZW4KKyAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNl IGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBkdWFsIEFCSS4uLgogICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4m NQogJGFzX2VjaG8gIiRhc19tZTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4mNjt9Ci0gICAg ZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGlibGUiCisgICAgZW5hYmxlX2xp YnN0ZGN4eF9kdWFsX2FiaT0ibm8iCisgICAgIyAuLi4gYW5kIHVzZSB0aGUgY3h4MTEgb25l LgorICAgIGRlZmF1bHRfbGlic3RkY3h4X2FiaT0ibmV3IgorICBlbHNlCisgICAgaWYgdGVz dCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4eWVzOyB0aGVuCisgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGR1YWwgQUJJIGlzIGRp c2FibGVkIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IGR1YWwgQUJJIGlzIGRpc2FibGVkIiA+ JjY7fQorICAgICAgZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGlibGUiCisg ICAgZmkKICAgZmkKIAogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRz L2MrK2NvbmZpZyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYysrY29uZmlnCmluZGV4 IDQxMGMxMzZlMWIxLi4zMzY3MTc5YzFjMyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvYml0cy9jKytjb25maWcKKysrIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9j Kytjb25maWcKQEAgLTMzNywyNiArMzM3LDYgQEAgbmFtZXNwYWNlIHN0ZAogI2RlZmluZSBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAjZW5kaWYKIAotI2lmIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKLW5hbWVzcGFjZSBzdGQKLXsKLSAgaW5saW5lIG5hbWVzcGFjZSBfX2N4eDExIF9f YXR0cmlidXRlX18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQotfQotbmFtZXNwYWNl IF9fZ251X2N4eAotewotICBpbmxpbmUgbmFtZXNwYWNlIF9fY3h4MTEgX19hdHRyaWJ1dGVf XygoX19hYmlfdGFnX18gKCJjeHgxMSIpKSkgeyB9Ci19Ci0jIGRlZmluZSBfR0xJQkNYWF9O QU1FU1BBQ0VfQ1hYMTEgX19jeHgxMTo6Ci0jIGRlZmluZSBfR0xJQkNYWF9CRUdJTl9OQU1F U1BBQ0VfQ1hYMTEgbmFtZXNwYWNlIF9fY3h4MTEgewotIyBkZWZpbmUgX0dMSUJDWFhfRU5E X05BTUVTUEFDRV9DWFgxMSB9Ci0jIGRlZmluZSBfR0xJQkNYWF9ERUZBVUxUX0FCSV9UQUcg X0dMSUJDWFhfQUJJX1RBR19DWFgxMQotI2Vsc2UKLSMgZGVmaW5lIF9HTElCQ1hYX05BTUVT UEFDRV9DWFgxMQotIyBkZWZpbmUgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCi0j IGRlZmluZSBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCi0jIGRlZmluZSBfR0xJQkNY WF9ERUZBVUxUX0FCSV9UQUcKLSNlbmRpZgotCiAvLyBOb24temVybyBpZiBpbmxpbmUgbmFt ZXNwYWNlcyBhcmUgdXNlZCBmb3IgdmVyc2lvbmluZyB0aGUgZW50aXJlIGxpYnJhcnkuCiAj ZGVmaW5lIF9HTElCQ1hYX0lOTElORV9WRVJTSU9OIAogCkBAIC00MTUsNyArMzk1LDcgQEAg X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgLy8gTm9uLWlubGluZSBuYW1l c3BhY2UgZm9yIGNvbXBvbmVudHMgcmVwbGFjZWQgYnkgYWx0ZXJuYXRlcyBpbiBhY3RpdmUg bW9kZS4KICAgbmFtZXNwYWNlIF9fY3h4MTk5OAogICB7Ci0jIGlmIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKKyMgaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAmJiAhIF9HTElCQ1hYX0lO TElORV9WRVJTSU9OCiAgIGlubGluZSBuYW1lc3BhY2UgX19jeHgxMSBfX2F0dHJpYnV0ZV9f KChfX2FiaV90YWdfXyAoImN4eDExIikpKSB7IH0KICMgZW5kaWYKICAgfQpAQCAtNDQ1LDYg KzQyNSwyNiBAQCBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KICMgZW5kaWYKICNl bmRpZgogCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAmJiAhIF9HTElCQ1hYX0lOTElO RV9WRVJTSU9OCituYW1lc3BhY2Ugc3RkCit7CisgIGlubGluZSBuYW1lc3BhY2UgX19jeHgx MSBfX2F0dHJpYnV0ZV9fKChfX2FiaV90YWdfXyAoImN4eDExIikpKSB7IH0KK30KK25hbWVz cGFjZSBfX2dudV9jeHgKK3sKKyAgaW5saW5lIG5hbWVzcGFjZSBfX2N4eDExIF9fYXR0cmli dXRlX18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQorfQorIyBkZWZpbmUgX0dMSUJD WFhfTkFNRVNQQUNFX0NYWDExIF9fY3h4MTE6OgorIyBkZWZpbmUgX0dMSUJDWFhfQkVHSU5f TkFNRVNQQUNFX0NYWDExIG5hbWVzcGFjZSBfX2N4eDExIHsKKyMgZGVmaW5lIF9HTElCQ1hY X0VORF9OQU1FU1BBQ0VfQ1hYMTEgfQorIyBkZWZpbmUgX0dMSUJDWFhfREVGQVVMVF9BQklf VEFHIF9HTElCQ1hYX0FCSV9UQUdfQ1hYMTEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9O QU1FU1BBQ0VfQ1hYMTEKKyMgZGVmaW5lIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9DWFgx MQorIyBkZWZpbmUgX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9DWFgxMQorIyBkZWZpbmUgX0dM SUJDWFhfREVGQVVMVF9BQklfVEFHCisjZW5kaWYKKwogLy8gTWFjcm9zIGZvciBuYW1lc3Bh Y2Ugc2NvcGUuIEVpdGhlciBuYW1lc3BhY2Ugc3RkOjogb3IgdGhlIG5hbWUKIC8vIG9mIHNv bWUgbmVzdGVkIG5hbWVzcGFjZSB3aXRoaW4gaXQgY29ycmVzcG9uZGluZyB0byB0aGUgYWN0 aXZlIG1vZGUuCiAvLyBfR0xJQkNYWF9TVERfQQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYz L2luY2x1ZGUvYml0cy9jb3dfc3RyaW5nLmggYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRz L2Nvd19zdHJpbmcuaAppbmRleCA1NDExZGZlMzJhOS4uNzAyZDU5ZmFlZmUgMTAwNjQ0Ci0t LSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvY293X3N0cmluZy5oCisrKyBiL2xpYnN0 ZGMrKy12My9pbmNsdWRlL2JpdHMvY293X3N0cmluZy5oCkBAIC0zMiwxMyArMzIsMTUgQEAK ICNpZm5kZWYgX0NPV19TVFJJTkdfSAogI2RlZmluZSBfQ09XX1NUUklOR19IIDEKIAotI2lm ICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQotCiAjaW5jbHVkZSA8ZXh0L2F0b21pY2l0eS5o PiAvLyBfQXRvbWljX3dvcmQsIF9faXNfc2luZ2xlX3RocmVhZGVkCiAKICNkZWZpbmUgX19n bGliY3h4X3dhbnRfY29uc3RleHByX3N0cmluZwogI2luY2x1ZGUgPGJpdHMvdmVyc2lvbi5o PgogCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBkZWZpbmUgYmFzaWNfc3RyaW5n IF9fc3RkX2Nvd19zdHJpbmcKKyNlbmRpZgorCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJ U0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CkBAIC04MzAsNiArODMyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgICAgIGVuZCgpIGNvbnN0IF9HTElCQ1hYX05PRVhDRVBUCiAgICAgICB7IHJldHVybiBj b25zdF9pdGVyYXRvcihfTV9kYXRhKCkgKyB0aGlzLT5zaXplKCkpOyB9CiAKKyNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8qKgogICAgICAgICogIFJldHVybnMgYSBy ZWFkL3dyaXRlIHJldmVyc2UgaXRlcmF0b3IgdGhhdCBwb2ludHMgdG8gdGhlIGxhc3QKICAg ICAgICAqICBjaGFyYWN0ZXIgaW4gdGhlICVzdHJpbmcuICBJdGVyYXRpb24gaXMgZG9uZSBp biByZXZlcnNlIGVsZW1lbnQKQEAgLTkwMSw2ICs5MDQsNyBAQCBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogICAgICAgY3JlbmQoKSBjb25zdCBub2V4Y2VwdAogICAgICAg eyByZXR1cm4gY29uc3RfcmV2ZXJzZV9pdGVyYXRvcih0aGlzLT5iZWdpbigpKTsgfQogI2Vu ZGlmCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICAgICBwdWJsaWM6 CiAgICAgICAvLyBDYXBhY2l0eToKQEAgLTkyOCw2ICs5MzIsNyBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgbWF4X3NpemUoKSBjb25zdCBfR0xJQkNYWF9O T0VYQ0VQVAogICAgICAgeyByZXR1cm4gX1JlcDo6X1NfbWF4X3NpemU7IH0KIAorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgQGJyaWVmICBS ZXNpemVzIHRoZSAlc3RyaW5nIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNoYXJhY3Rl cnMuCiAgICAgICAgKiAgQHBhcmFtICBfX24gIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRoZSAl c3RyaW5nIHNob3VsZCBjb250YWluLgpAQCAtMTAwNyw2ICsxMDEyLDcgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAlfX3Jlc2l6ZV9hbmRfb3ZlcndyaXRlKHNpemVf dHlwZSBfX24sIF9PcGVyYXRpb24gX19vcCk7CiAjZW5kaWYKIAorI2VuZGlmIC8vICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgUmV0dXJucyB0aGUg dG90YWwgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCB0aGUgJXN0cmluZyBjYW4gaG9sZAog ICAgICAgICogIGJlZm9yZSBuZWVkaW5nIHRvIGFsbG9jYXRlIG1vcmUgbWVtb3J5LgpAQCAt MTAxNSw2ICsxMDIxLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAg ICAgIGNhcGFjaXR5KCkgY29uc3QgX0dMSUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJu IF9NX3JlcCgpLT5fTV9jYXBhY2l0eTsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYgIEF0dGVtcHQgdG8gcHJlYWxsb2Nh dGUgZW5vdWdoIG1lbW9yeSBmb3Igc3BlY2lmaWVkIG51bWJlciBvZgogICAgICAgICogICAg ICAgICAgY2hhcmFjdGVycy4KQEAgLTEwNjMsNiArMTA3MCw3IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBjbGVhcigpCiAgICAgICB7IF9NX211dGF0ZSgw LCB0aGlzLT5zaXplKCksIDApOyB9CiAjZW5kaWYKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkKIAogICAgICAgLyoqCiAgICAgICAgKiAgUmV0dXJucyB0cnVlIGlmIHRo ZSAlc3RyaW5nIGlzIGVtcHR5LiAgRXF1aXZhbGVudCB0bwpAQCAtMTA3Miw2ICsxMDgwLDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGVtcHR5KCkgY29u c3QgX0dMSUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJuIHRoaXMtPnNpemUoKSA9PSAw OyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8vIEVsZW1lbnQg YWNjZXNzOgogICAgICAgLyoqCiAgICAgICAgKiAgQGJyaWVmICBTdWJzY3JpcHQgYWNjZXNz IHRvIHRoZSBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgJXN0cmluZy4KQEAgLTEzODIsNiArMTM5 MSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJdHJhaXRzX3R5cGU6 OmFzc2lnbihfTV9kYXRhKClbdGhpcy0+c2l6ZSgpXSwgX19jKTsKIAlfTV9yZXAoKS0+X01f c2V0X2xlbmd0aF9hbmRfc2hhcmFibGUoX19sZW4pOwogICAgICAgfQorI2VuZGlmIC8vICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYg IFNldCB2YWx1ZSB0byBjb250ZW50cyBvZiBhbm90aGVyIHN0cmluZy4KQEAgLTE1MjYsNiAr MTUzNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJfQogI2VuZGlm IC8vIEMrKzE3CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8qKgog ICAgICAgICogIEBicmllZiAgSW5zZXJ0IG11bHRpcGxlIGNoYXJhY3RlcnMuCiAgICAgICAg KiAgQHBhcmFtIF9fcCAgSXRlcmF0b3IgcmVmZXJlbmNpbmcgbG9jYXRpb24gaW4gc3RyaW5n IHRvIGluc2VydCBhdC4KQEAgLTIxNDQsNiArMjE1NSw3IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAJICByZXR1cm4gdGhpcy0+cmVwbGFjZShfX2kxIC0gYmVnaW4o KSwgX19pMiAtIF9faTEsIF9fc3YpOwogCX0KICNlbmRpZiAvLyBDKysxNworI2VuZGlmIC8v ICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAgICAgcHJpdmF0ZToKICAgICAgIHRlbXBs YXRlPGNsYXNzIF9JbnRlZ2VyPgpAQCAtMjIxNSw2ICsyMjI3LDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogICAgIHB1YmxpYzoKIAorI2lmICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgQGJyaWVmICBDb3B5IHN1YnN0 cmluZyBpbnRvIEMgc3RyaW5nLgogICAgICAgICogIEBwYXJhbSBfX3MgIEMgc3RyaW5nIHRv IGNvcHkgdmFsdWUgaW50by4KQEAgLTIyMjksNiArMjI0Miw3IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICAqLwogICAgICAgc2l6ZV90eXBlCiAgICAgICBj b3B5KF9DaGFyVCogX19zLCBzaXplX3R5cGUgX19uLCBzaXplX3R5cGUgX19wb3MgPSAwKSBj b25zdDsKKyNlbmRpZgogCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYgIFN3YXAgY29u dGVudHMgd2l0aCBhbm90aGVyIHN0cmluZy4KQEAgLTIyODYsNiArMjMwMCw3IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBnZXRfYWxsb2NhdG9yKCkgY29u c3QgX0dMSUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJuIF9NX2RhdGFwbHVzOyB9CiAK KyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8qKgogICAgICAgICogIEBi cmllZiAgRmluZCBwb3NpdGlvbiBvZiBhIEMgc3Vic3RyaW5nLgogICAgICAgICogIEBwYXJh bSBfX3MgIEMgc3RyaW5nIHRvIGxvY2F0ZS4KQEAgLTMwOTEsNiArMzEwNiw3IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBjb250YWlucyhjb25zdCBfQ2hh clQqIF9feCkgY29uc3Qgbm9leGNlcHQKICAgICAgIHsgcmV0dXJuIF9fc3ZfdHlwZSh0aGlz LT5kYXRhKCksIHRoaXMtPnNpemUoKSkuY29udGFpbnMoX194KTsgfQogI2VuZGlmIC8vIEMr KzIzCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICMgaWZkZWYgX0dM SUJDWFhfVE1fVFNfSU5URVJOQUwKICAgICAgIGZyaWVuZCB2b2lkCkBAIC0zMjk0LDYgKzMz MTAsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCX0KICAgICAgfQog CisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9D aGFyVCwgdHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAgIGJhc2ljX3N0 cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9BbGxvYz4mCiAgICAgYmFzaWNfc3RyaW5nPF9DaGFy VCwgX1RyYWl0cywgX0FsbG9jPjo6CkBAIC0zNDU3LDYgKzM0NzQsNyBAQCBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCSAgIHJldHVybiBfTV9yZXBsYWNlX3NhZmUoX19w b3MsIF9fbjEsIF9fdG1wLl9NX2RhdGEoKSwgX19uMik7CiAJIH0KICAgICAgfQorI2VuZGlm IC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9D aGFyVCwgdHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAgIHZvaWQKQEAg LTM1MTgsNiArMzUzNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAg ICAgICBfTV9yZXAoKS0+X01fc2V0X2xlbmd0aF9hbmRfc2hhcmFibGUoX19uZXdfc2l6ZSk7 CiAgICAgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIHRlbXBsYXRlPHR5 cGVuYW1lIF9DaGFyVCwgdHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAg IHZvaWQKICAgICBiYXNpY19zdHJpbmc8X0NoYXJULCBfVHJhaXRzLCBfQWxsb2M+OjoKQEAg LTM1NDMsNiArMzU2Miw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAg ICAgICBfTV9yZXAoKS0+X01fZGlzcG9zZShfX2EpOwogICAgICAgX01fZGF0YShfX3RtcCk7 CiAgICAgfQorI2VuZGlmCiAKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFt ZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgdm9pZApAQCAtMzY2Niw2ICszNjg2 LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIHJldHVybiBf X3ItPl9NX3JlZmRhdGEoKTsKICAgICB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBl bmFtZSBfQWxsb2M+CiAgICAgdm9pZAogICAgIGJhc2ljX3N0cmluZzxfQ2hhclQsIF9UcmFp dHMsIF9BbGxvYz46OgpAQCAtMzY3OSw2ICszNzAwLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KIAl0aGlzLT5lcmFzZShfX24pOwogICAgICAgLy8gZWxzZSBub3Ro aW5nIChpbiBwYXJ0aWN1bGFyLCBhdm9pZCBjYWxsaW5nIF9NX211dGF0ZSgpIHVubmVjZXNz YXJpbHkuKQogICAgIH0KKyNlbmRpZgogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9DaGFyVCwg dHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAgIHRlbXBsYXRlPHR5cGVu YW1lIF9JbnB1dEl0ZXJhdG9yPgpAQCAtMzcxOSw2ICszNzQxLDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKKyNp ZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJU LCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgdm9pZAogICAgIGJh c2ljX3N0cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9BbGxvYz46OgpAQCAtMzgwMCw4ICszODIz LDExIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgfQogI2VuZGlm IC8vIEMrKzExCiAKLQorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogX0dM SUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZSBzdGQKLSNlbmRp ZiAgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisKKyNpZiBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCisjIHVuZGVmIGJhc2ljX3N0cmluZworI2VuZGlmCiAjZW5kaWYgIC8vIF9DT1df U1RSSU5HX0gKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9zdGRleGNl cHQgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvc3RkZXhjZXB0CmluZGV4IDY2Yzg1NzJk MGNkLi4zMzMwNjUwODY5NSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvc3Rk L3N0ZGV4Y2VwdAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvc3RkZXhjZXB0CkBA IC00Miw4ICs0Miw4IEBAIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZh dWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAotI2lmIF9HTElC Q1hYX1VTRV9EVUFMX0FCSQotI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dM SUJDWFhfREVGSU5FX1NUREVYQ0VQVF9JTlNUQU5USUFUSU9OUwogICAvLyBFbXVsYXRlcyBh biBvbGQgQ09XIHN0cmluZyB3aGVuIHRoZSBuZXcgc3RkOjpzdHJpbmcgaXMgaW4gdXNlLgog ICBzdHJ1Y3QgX19jb3dfc3RyaW5nCiAgIHsKQEAgLTU0LDYgKzU0LDcgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogICAgIF9fY293X3N0cmluZygpOwogICAgIF9f Y293X3N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYpOworICAgIF9fY293X3N0cmluZyhjb25z dCBjaGFyKik7CiAgICAgX19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqLCBzaXplX3QpOwogICAg IF9fY293X3N0cmluZyhjb25zdCBfX2Nvd19zdHJpbmcmKSBfR0xJQkNYWF9OT1RIUk9XOwog ICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KGNvbnN0IF9fY293X3N0cmluZyYpIF9HTElC Q1hYX05PVEhST1c7CkBAIC02MiwxMiArNjMsMTQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICAgICBfX2Nvd19zdHJpbmcoX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0 OwogICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KF9fY293X3N0cmluZyYmKSBub2V4Y2Vw dDsKICNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3QgX0dMSUJDWFhfTk9F WENFUFQ7CiAgIH07Ci0KLSAgdHlwZWRlZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19zc29fc3Ry aW5nOwotI2Vsc2UgLy8gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2VuZGlmIC8vICEgX0dM SUJDWFhfREVGSU5FX1NUREVYQ0VQVF9JTlNUQU5USUFUSU9OUworI2Vsc2UKICAgdHlwZWRl ZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19jb3dfc3RyaW5nOworI2VuZGlmCiAKKyNpZiBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkgJiYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIC8vIEVt dWxhdGVzIGEgbmV3IFNTTyBzdHJpbmcgd2hlbiB0aGUgb2xkIHN0ZDo6c3RyaW5nIGlzIGlu IHVzZS4KICAgc3RydWN0IF9fc3NvX3N0cmluZwogICB7CkBAIC05NCwxMCArOTcsOCBAQCBf R0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIF9fc3NvX3N0cmluZyYgb3Bl cmF0b3I9KF9fc3NvX3N0cmluZyYmKSBub2V4Y2VwdDsKICNlbmRpZgogICB9OwotI2VuZGlm IC8vIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKLSNlbHNlICAvLyBfR0xJQkNYWF9VU0VfRFVB TF9BQkkKKyNlbHNlCiAgIHR5cGVkZWYgYmFzaWNfc3RyaW5nPGNoYXI+IF9fc3NvX3N0cmlu ZzsKLSAgdHlwZWRlZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19jb3dfc3RyaW5nOwogI2VuZGlm CiAKICAgLyoqCkBAIC0xMjcsNyArMTI4LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KICAgICBsb2dpY19lcnJvciYgb3BlcmF0b3I9KGxvZ2ljX2Vycm9yJiYpIG5v ZXhjZXB0OwogI2VuZGlmCiAKLSNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8IF9HTElC Q1hYX0RFRklORV9TVERFWENFUFRfQ09QWV9PUFMKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJIHx8IF9HTElCQ1hYX0RFRklORV9TVERFWENFUFRfSU5TVEFOVElBVElPTlMKICAgICBs b2dpY19lcnJvcihjb25zdCBsb2dpY19lcnJvciYpIF9HTElCQ1hYX05PVEhST1c7CiAgICAg bG9naWNfZXJyb3ImIG9wZXJhdG9yPShjb25zdCBsb2dpY19lcnJvciYpIF9HTElCQ1hYX05P VEhST1c7CiAjZWxpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCkBAIC0yMzMsNyArMjM0LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICBydW50aW1lX2Vycm9y JiBvcGVyYXRvcj0ocnVudGltZV9lcnJvciYmKSBub2V4Y2VwdDsKICNlbmRpZgogCi0jaWYg X0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCBfR0xJQkNYWF9ERUZJTkVfU1RERVhDRVBUX0NP UFlfT1BTCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCBfR0xJQkNYWF9ERUZJTkVf U1RERVhDRVBUX0lOU1RBTlRJQVRJT05TCiAgICAgcnVudGltZV9lcnJvcihjb25zdCBydW50 aW1lX2Vycm9yJikgX0dMSUJDWFhfTk9USFJPVzsKICAgICBydW50aW1lX2Vycm9yJiBvcGVy YXRvcj0oY29uc3QgcnVudGltZV9lcnJvciYpIF9HTElCQ1hYX05PVEhST1c7CiAjZWxpZiBf X2NwbHVzcGx1cyA+PSAyMDExMDNMCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvcHl0aG9u L2xpYnN0ZGN4eC92Ni9wcmludGVycy5weSBiL2xpYnN0ZGMrKy12My9weXRob24vbGlic3Rk Y3h4L3Y2L3ByaW50ZXJzLnB5CmluZGV4IDdlMTZhNDlhZWIwLi44MTc4NWE2ZTY2YiAxMDA2 NDQKLS0tIGEvbGlic3RkYysrLXYzL3B5dGhvbi9saWJzdGRjeHgvdjYvcHJpbnRlcnMucHkK KysrIGIvbGlic3RkYysrLXYzL3B5dGhvbi9saWJzdGRjeHgvdjYvcHJpbnRlcnMucHkKQEAg LTEwMjksNiArMTAyOSw4IEBAIGNsYXNzIFN0ZFN0cmluZ1ByaW50ZXIocHJpbnRlcl9iYXNl KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgdHlwZW5hbWUsIHZhbCk6CiAgICAgICAgIHNl bGYuX3ZhbCA9IHZhbAogICAgICAgICBzZWxmLl9uZXdfc3RyaW5nID0gdHlwZW5hbWUuZmlu ZCgiOjpfX2N4eDExOjpiYXNpY19zdHJpbmciKSAhPSAtMQorICAgICAgICBpZiBub3Qgc2Vs Zi5fbmV3X3N0cmluZzoKKyAgICAgICAgICAgIHNlbGYuX25ld19zdHJpbmcgPSB0eXBlbmFt ZS5maW5kKCI6OiIgKyBfdmVyc2lvbmVkX25hbWVzcGFjZSArICJiYXNpY19zdHJpbmciKSAh PSAtMQogCiAgICAgZGVmIHRvX3N0cmluZyhzZWxmKToKICAgICAgICAgIyBNYWtlIHN1cmUg JnN0cmluZyB3b3JrcywgdG9vLgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9NYWtl ZmlsZS5hbSBiL2xpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuYW0KaW5kZXggMzJkZTUzMDQx MjIuLjE2ZjQ2ZmFmOTFhIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL01ha2VmaWxl LmFtCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuYW0KQEAgLTkxLDYgKzkxLDkg QEAgZWxzZQogbGRibF9jb21wYXRfc291cmNlcyA9CiBlbmRpZgogCitpZiBFTkFCTEVfU1lN VkVSU19HTlVfTkFNRVNQQUNFCitsZGJsX2FsdDEyOF9jb21wYXRfc291cmNlcyA9CitlbHNl CiBpZiBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVAogaWYgRU5BQkxFX0RVQUxfQUJJCiBs ZGJsX2FsdDEyOF9jb21wYXRfY3h4MTFfc291cmNlcyA9IFwKQEAgLTEwNCw2ICsxMDcsNyBA QCBsZGJsX2FsdDEyOF9jb21wYXRfc291cmNlcyA9IFwKIGVsc2UKIGxkYmxfYWx0MTI4X2Nv bXBhdF9zb3VyY2VzID0KIGVuZGlmCitlbmRpZgogCiBpZiBFTkFCTEVfU1lNVkVSU19HTlVf TkFNRVNQQUNFCiBjeHgweF9jb21wYXRfc291cmNlcyA9CmRpZmYgLS1naXQgYS9saWJzdGRj KystdjMvc3JjL01ha2VmaWxlLmluIGIvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5pbgpp bmRleCBjNWQwMWU3YmViYS4uMTc2MThjMjc4YmMgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12 My9zcmMvTWFrZWZpbGUuaW4KKysrIGIvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5pbgpA QCAtMTU3LDEwICsxNTcsOSBAQCBhbV9fb2JqZWN0c18yID0gY29tcGF0aWJpbGl0eS5sbyBj b21wYXRpYmlsaXR5LWRlYnVnX2xpc3QubG8gXAogQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1F U1BBQ0VfRkFMU0VACWNvbXBhdGliaWxpdHktY2hyb25vLmxvIFwKIEBFTkFCTEVfU1lNVkVS U19HTlVfTkFNRVNQQUNFX0ZBTFNFQAljb21wYXRpYmlsaXR5LWNvbmR2YXIubG8gXAogQEVO QUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VACWNvbXBhdGliaWxpdHktdGhyZWFk LWMrKzB4LmxvCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVAQEdMSUJDWFhfTERCTF9BTFQxMjhf Q09NUEFUX1RSVUVAYW1fX29iamVjdHNfNCA9IGNvbXBhdGliaWxpdHktbGRibC1hbHQxMjgt Y3h4MTEubG8KLUBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQGFtX19vYmplY3Rz XzUgPSAgXAotQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVACWNvbXBhdGliaWxp dHktbGRibC1hbHQxMjgubG8gXAotQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVA CSQoYW1fX29iamVjdHNfNCkKK0BFTkFCTEVfRFVBTF9BQklfVFJVRUBARU5BQkxFX1NZTVZF UlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJV RUBhbV9fb2JqZWN0c180ID0gY29tcGF0aWJpbGl0eS1sZGJsLWFsdDEyOC1jeHgxMS5sbwor QEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQx MjhfQ09NUEFUX1RSVUVAYW1fX29iamVjdHNfNSA9IGNvbXBhdGliaWxpdHktbGRibC1hbHQx MjgubG8gXAorQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhf TERCTF9BTFQxMjhfQ09NUEFUX1RSVUVACSQoYW1fX29iamVjdHNfNCkKIGFtX19vYmplY3Rz XzYgPSAkKGFtX19vYmplY3RzXzMpICQoYW1fX29iamVjdHNfNSkKIEBHTElCQ1hYX0hPU1RF RF9UUlVFQGFtX2xpYnN0ZGNfX19sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18yKSBcCiBA R0xJQkNYWF9IT1NURURfVFJVRUAJJChhbV9fb2JqZWN0c182KQpAQCAtNTEyLDE0ICs1MTEs MTUgQEAgU1VCRElSUyA9IGMrKzk4IGMrKzExIGMrKzE3IGMrKzIwIGMrKzIzIFwKIAogQEdM SUJDWFhfTERCTF9DT01QQVRfRkFMU0VAbGRibF9jb21wYXRfc291cmNlcyA9IAogQEdMSUJD WFhfTERCTF9DT01QQVRfVFJVRUBsZGJsX2NvbXBhdF9zb3VyY2VzID0gY29tcGF0aWJpbGl0 eS1sZGJsLmNjCi1ARU5BQkxFX0RVQUxfQUJJX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4 X0NPTVBBVF9UUlVFQGxkYmxfYWx0MTI4X2NvbXBhdF9jeHgxMV9zb3VyY2VzID0gCi1ARU5B QkxFX0RVQUxfQUJJX1RSVUVAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAbGRi bF9hbHQxMjhfY29tcGF0X2N4eDExX3NvdXJjZXMgPSBcCi1ARU5BQkxFX0RVQUxfQUJJX1RS VUVAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVACWNvbXBhdGliaWxpdHktbGRi bC1hbHQxMjgtY3h4MTEuY2MKLQotQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX0ZBTFNF QGxkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0gCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9D T01QQVRfVFJVRUBsZGJsX2FsdDEyOF9jb21wYXRfc291cmNlcyA9IFwKLUBHTElCQ1hYX0xE QkxfQUxUMTI4X0NPTVBBVF9UUlVFQAljb21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LmNjIFwK LUBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQAkke2xkYmxfYWx0MTI4X2NvbXBh dF9jeHgxMV9zb3VyY2VzfQorQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VA QEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX0ZBTFNFQGxkYmxfYWx0MTI4X2NvbXBhdF9z b3VyY2VzID0gCitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNY WF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUBsZGJsX2FsdDEyOF9jb21wYXRfc291cmNlcyA9 IFwKK0BFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxf QUxUMTI4X0NPTVBBVF9UUlVFQAljb21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LmNjIFwKK0BF TkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4 X0NPTVBBVF9UUlVFQAkke2xkYmxfYWx0MTI4X2NvbXBhdF9jeHgxMV9zb3VyY2VzfQorCitA RU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9UUlVFQGxkYmxfYWx0MTI4X2NvbXBhdF9z b3VyY2VzID0gCitARU5BQkxFX0RVQUxfQUJJX0ZBTFNFQEBFTkFCTEVfU1lNVkVSU19HTlVf TkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQGxkYmxf YWx0MTI4X2NvbXBhdF9jeHgxMV9zb3VyY2VzID0gCitARU5BQkxFX0RVQUxfQUJJX1RSVUVA QEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQx MjhfQ09NUEFUX1RSVUVAbGRibF9hbHQxMjhfY29tcGF0X2N4eDExX3NvdXJjZXMgPSBcCitA RU5BQkxFX0RVQUxfQUJJX1RSVUVAQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFM U0VAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVACWNvbXBhdGliaWxpdHktbGRi bC1hbHQxMjgtY3h4MTEuY2MKIAogQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFM U0VAY3h4MHhfY29tcGF0X3NvdXJjZXMgPSBcCiBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVT UEFDRV9GQUxTRUAJY29tcGF0aWJpbGl0eS1hdG9taWMtYysrMHguY2MgXApkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9NYWtlZmlsZS5hbSBiL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvTWFrZWZpbGUuYW0KaW5kZXggOWNkZGI5Nzg5MjguLmJlOGUzNTc1NGI4IDEw MDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL01ha2VmaWxlLmFtCisrKyBiL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuYW0KQEAgLTQ4LDE1ICs0OCwxMSBAQCBi YXNpY19maWxlLmNjOiAke2dsaWJjeHhfc3JjZGlyfS8kKEJBU0lDX0ZJTEVfQ0MpCiAJJChM Tl9TKSAke2dsaWJjeHhfc3JjZGlyfS8kKEJBU0lDX0ZJTEVfQ0MpIC4vJEAgfHwgdHJ1ZQog CiBpZiBFTkFCTEVfRFVBTF9BQkkKLWN4eDExX2FiaV9zb3VyY2VzID0gXAotCWNvdy1sb2Nh bGVfaW5pdC5jYyBcCitkdWFsX2FiaV9zb3VyY2VzID0gXAogCWNvdy1zaGltX2ZhY2V0cy5j YyBcCi0JY3h4MTEtaGFzaF90cjEuY2MgXAotCWN4eDExLWlvc19mYWlsdXJlLmNjIFwKLQlj eHgxMS1zaGltX2ZhY2V0cy5jYyBcCi0JY3h4MTEtc3RkZXhjZXB0LmNjCisJY3h4MTEtc2hp bV9mYWNldHMuY2MKIGVsc2UKLWN4eDExX2FiaV9zb3VyY2VzID0KK2R1YWxfYWJpX3NvdXJj ZXMgPQogZW5kaWYKIAogc291cmNlc19mcmVlc3RhbmRpbmcgPSBcCkBAIC02OCw4ICs2NCwx MiBAQCBzb3VyY2VzID0gXAogCWNocm9uby5jYyBcCiAJY29kZWN2dC5jYyBcCiAJY29uZGl0 aW9uX3ZhcmlhYmxlLmNjIFwKKwljb3ctbG9jYWxlX2luaXQuY2MgXAogCWNvdy1zdGRleGNl cHQuY2MgXAogCWN0eXBlLmNjIFwKKwljeHgxMS1oYXNoX3RyMS5jYyBcCisJY3h4MTEtaW9z X2ZhaWx1cmUuY2MgXAorCWN4eDExLXN0ZGV4Y2VwdC5jYyBcCiAJZGVidWcuY2MgXAogCWZ1 bmN0ZXhjZXB0LmNjIFwKIAlmdW5jdGlvbmFsLmNjIFwKQEAgLTg4LDIwICs4OCwxMiBAQCBz b3VyY2VzID0gXAogCXNucHJpbnRmX2xpdGUuY2MgXAogCXN5c3RlbV9lcnJvci5jYyBcCiAJ dGhyZWFkLmNjIFwKLQkke2N4eDExX2FiaV9zb3VyY2VzfSBcCisJJHtkdWFsX2FiaV9zb3Vy Y2VzfSBcCiAJJHtob3N0X3NvdXJjZXN9IFwKIAkke2hvc3Rfc291cmNlc19leHRyYX0KIAog aWYgRU5BQkxFX0RVQUxfQUJJCiBleHRyYV9zdHJpbmdfaW5zdF9zb3VyY2VzID0gXAotCWNv dy1mc3RyZWFtLWluc3QuY2MgXAotCWNvdy1zc3RyZWFtLWluc3QuY2MgXAotCWNvdy1zdHJp bmctaW5zdC5jYyBcCi0JY293LXN0cmluZy1pby1pbnN0LmNjIFwKLQljb3ctd3N0cmluZy1p bnN0LmNjIFwKLQljb3ctd3N0cmluZy1pby1pbnN0LmNjIFwKLQljeHgxMS1sb2NhbGUtaW5z dC5jYyBcCi0JY3h4MTEtd2xvY2FsZS1pbnN0LmNjIFwKIAlzc29fc3RyaW5nLmNjCiBlbHNl CiBleHRyYV9zdHJpbmdfaW5zdF9zb3VyY2VzID0KQEAgLTExMSw2ICsxMDMsMTQgQEAgaWYg RU5BQkxFX0VYVEVSTl9URU1QTEFURQogIyBYVEVNUExBVEVfRkxBR1MgPSAtZm5vLWltcGxp Y2l0LXRlbXBsYXRlcwogaW5zdF9zb3VyY2VzID0gXAogCSQoZXh0cmFfc3RyaW5nX2luc3Rf c291cmNlcykgXAorCWNvdy1mc3RyZWFtLWluc3QuY2MgXAorCWNvdy1zc3RyZWFtLWluc3Qu Y2MgXAorCWNvdy1zdHJpbmctaW5zdC5jYyBcCisJY293LXN0cmluZy1pby1pbnN0LmNjIFwK Kwljb3ctd3N0cmluZy1pbnN0LmNjIFwKKwljb3ctd3N0cmluZy1pby1pbnN0LmNjIFwKKwlj eHgxMS1sb2NhbGUtaW5zdC5jYyBcCisJY3h4MTEtd2xvY2FsZS1pbnN0LmNjIFwKIAlleHQx MS1pbnN0LmNjIFwKIAlmc3RyZWFtLWluc3QuY2MgXAogCWlvcy1pbnN0LmNjIFwKZGlmZiAt LWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuaW4gYi9saWJzdGRjKyst djMvc3JjL2MrKzExL01ha2VmaWxlLmluCmluZGV4IGU2ZDM3YzU0NjRjLi4xNzFmZjFhZGYx NiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9NYWtlZmlsZS5pbgorKysg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL01ha2VmaWxlLmluCkBAIC0xMjIsMjcgKzEyMiwy OCBAQCBDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQogTFRMSUJSQVJJRVMgPSAkKG5vaW5z dF9MVExJQlJBUklFUykKIGxpYmNfXzExY29udmVuaWVuY2VfbGFfTElCQUREID0KIGFtX19v YmplY3RzXzEgPSBsaW1pdHMubG8gcGxhY2Vob2xkZXJzLmxvCi1ARU5BQkxFX0RVQUxfQUJJ X1RSVUVAYW1fX29iamVjdHNfMiA9IGNvdy1sb2NhbGVfaW5pdC5sbyBcCi1ARU5BQkxFX0RV QUxfQUJJX1RSVUVACWNvdy1zaGltX2ZhY2V0cy5sbyBjeHgxMS1oYXNoX3RyMS5sbyBcCi1A RU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLWlvc19mYWlsdXJlLmxvIFwKLUBFTkFCTEVf RFVBTF9BQklfVFJVRUAJY3h4MTEtc2hpbV9mYWNldHMubG8gY3h4MTEtc3RkZXhjZXB0Lmxv CitARU5BQkxFX0RVQUxfQUJJX1RSVUVAYW1fX29iamVjdHNfMiA9IGNvdy1zaGltX2ZhY2V0 cy5sbyBcCitARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLXNoaW1fZmFjZXRzLmxvCiBh bV9fb2JqZWN0c18zID0gY3R5cGVfY29uZmlndXJlX2NoYXIubG8gY3R5cGVfbWVtYmVycy5s bwogYW1fX29iamVjdHNfNCA9IGJhc2ljX2ZpbGUubG8KIGFtX19vYmplY3RzXzUgPSBhc3Nl cnRfZmFpbC5sbyBjaHJvbm8ubG8gY29kZWN2dC5sbyBcCi0JY29uZGl0aW9uX3ZhcmlhYmxl LmxvIGNvdy1zdGRleGNlcHQubG8gY3R5cGUubG8gZGVidWcubG8gXAotCWZ1bmN0ZXhjZXB0 LmxvIGZ1bmN0aW9uYWwubG8gZnV0ZXgubG8gZnV0dXJlLmxvIGhhc2hfYysrMHgubG8gXAot CWhhc2h0YWJsZV9jKysweC5sbyBpb3MubG8gaW9zX2VycmNhdC5sbyBsb2NhbGVfaW5pdC5s byBcCi0JbG9jYWxlbmFtZS5sbyBtdXRleC5sbyByYW5kb20ubG8gcmVnZXgubG8gc2hhcmVk X3B0ci5sbyBcCi0Jc25wcmludGZfbGl0ZS5sbyBzeXN0ZW1fZXJyb3IubG8gdGhyZWFkLmxv ICQoYW1fX29iamVjdHNfMikgXAotCSQoYW1fX29iamVjdHNfMykgJChhbV9fb2JqZWN0c180 KQotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGFtX19vYmplY3RzXzYgPSBjb3ctZnN0cmVhbS1p bnN0LmxvIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY293LXNzdHJlYW0taW5zdC5sbyBj b3ctc3RyaW5nLWluc3QubG8gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctc3RyaW5n LWlvLWluc3QubG8gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctd3N0cmluZy1pbnN0 LmxvIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY293LXdzdHJpbmctaW8taW5zdC5sbyBc Ci1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLWxvY2FsZS1pbnN0LmxvIFwKLUBFTkFC TEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtd2xvY2FsZS1pbnN0LmxvIHNzb19zdHJpbmcubG8K Kwljb25kaXRpb25fdmFyaWFibGUubG8gY293LWxvY2FsZV9pbml0LmxvIGNvdy1zdGRleGNl cHQubG8gXAorCWN0eXBlLmxvIGN4eDExLWhhc2hfdHIxLmxvIGN4eDExLWlvc19mYWlsdXJl LmxvIFwKKwljeHgxMS1zdGRleGNlcHQubG8gZGVidWcubG8gZnVuY3RleGNlcHQubG8gZnVu Y3Rpb25hbC5sbyBcCisJZnV0ZXgubG8gZnV0dXJlLmxvIGhhc2hfYysrMHgubG8gaGFzaHRh YmxlX2MrKzB4LmxvIGlvcy5sbyBcCisJaW9zX2VycmNhdC5sbyBsb2NhbGVfaW5pdC5sbyBs b2NhbGVuYW1lLmxvIG11dGV4LmxvIHJhbmRvbS5sbyBcCisJcmVnZXgubG8gc2hhcmVkX3B0 ci5sbyBzbnByaW50Zl9saXRlLmxvIHN5c3RlbV9lcnJvci5sbyBcCisJdGhyZWFkLmxvICQo YW1fX29iamVjdHNfMikgJChhbV9fb2JqZWN0c18zKSAkKGFtX19vYmplY3RzXzQpCitARU5B QkxFX0RVQUxfQUJJX1RSVUVAYW1fX29iamVjdHNfNiA9IHNzb19zdHJpbmcubG8KIEBFTkFC TEVfRVhURVJOX1RFTVBMQVRFX1RSVUVAYW1fX29iamVjdHNfNyA9ICQoYW1fX29iamVjdHNf NikgXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293LWZzdHJlYW0taW5zdC5s byBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctc3N0cmVhbS1pbnN0Lmxv IFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zdHJpbmctaW5zdC5sbyBc CitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctc3RyaW5nLWlvLWluc3QubG8g XAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXdzdHJpbmctaW5zdC5sbyBc CitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctd3N0cmluZy1pby1pbnN0Lmxv IFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWN4eDExLWxvY2FsZS1pbnN0Lmxv IFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWN4eDExLXdsb2NhbGUtaW5zdC5s byBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAlleHQxMS1pbnN0LmxvIGZzdHJl YW0taW5zdC5sbyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAlpb3MtaW5zdC5s byBpb3N0cmVhbS1pbnN0LmxvIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWlz dHJlYW0taW5zdC5sbyBsb2NhbGUtaW5zdC5sbyBcCkBAIC00NjksMTQgKzQ3MCwxMCBAQCBo b3N0X3NvdXJjZXMgPSBcCiBob3N0X3NvdXJjZXNfZXh0cmEgPSBcCiAJYmFzaWNfZmlsZS5j YwogCi1ARU5BQkxFX0RVQUxfQUJJX0ZBTFNFQGN4eDExX2FiaV9zb3VyY2VzID0gCi1ARU5B QkxFX0RVQUxfQUJJX1RSVUVAY3h4MTFfYWJpX3NvdXJjZXMgPSBcCi1ARU5BQkxFX0RVQUxf QUJJX1RSVUVACWNvdy1sb2NhbGVfaW5pdC5jYyBcCitARU5BQkxFX0RVQUxfQUJJX0ZBTFNF QGR1YWxfYWJpX3NvdXJjZXMgPSAKK0BFTkFCTEVfRFVBTF9BQklfVFJVRUBkdWFsX2FiaV9z b3VyY2VzID0gXAogQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctc2hpbV9mYWNldHMuY2Mg XAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS1oYXNoX3RyMS5jYyBcCi1ARU5BQkxF X0RVQUxfQUJJX1RSVUVACWN4eDExLWlvc19mYWlsdXJlLmNjIFwKLUBFTkFCTEVfRFVBTF9B QklfVFJVRUAJY3h4MTEtc2hpbV9mYWNldHMuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVF QAljeHgxMS1zdGRleGNlcHQuY2MKK0BFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtc2hp bV9mYWNldHMuY2MKIAogc291cmNlc19mcmVlc3RhbmRpbmcgPSBcCiAJbGltaXRzLmNjIFwK QEAgLTQ4Nyw4ICs0ODQsMTIgQEAgc291cmNlcyA9IFwKIAljaHJvbm8uY2MgXAogCWNvZGVj dnQuY2MgXAogCWNvbmRpdGlvbl92YXJpYWJsZS5jYyBcCisJY293LWxvY2FsZV9pbml0LmNj IFwKIAljb3ctc3RkZXhjZXB0LmNjIFwKIAljdHlwZS5jYyBcCisJY3h4MTEtaGFzaF90cjEu Y2MgXAorCWN4eDExLWlvc19mYWlsdXJlLmNjIFwKKwljeHgxMS1zdGRleGNlcHQuY2MgXAog CWRlYnVnLmNjIFwKIAlmdW5jdGV4Y2VwdC5jYyBcCiAJZnVuY3Rpb25hbC5jYyBcCkBAIC01 MDcsMjAgKzUwOCwxMiBAQCBzb3VyY2VzID0gXAogCXNucHJpbnRmX2xpdGUuY2MgXAogCXN5 c3RlbV9lcnJvci5jYyBcCiAJdGhyZWFkLmNjIFwKLQkke2N4eDExX2FiaV9zb3VyY2VzfSBc CisJJHtkdWFsX2FiaV9zb3VyY2VzfSBcCiAJJHtob3N0X3NvdXJjZXN9IFwKIAkke2hvc3Rf c291cmNlc19leHRyYX0KIAogQEVOQUJMRV9EVUFMX0FCSV9GQUxTRUBleHRyYV9zdHJpbmdf aW5zdF9zb3VyY2VzID0gCiBARU5BQkxFX0RVQUxfQUJJX1RSVUVAZXh0cmFfc3RyaW5nX2lu c3Rfc291cmNlcyA9IFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY293LWZzdHJlYW0taW5z dC5jYyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1zc3RyZWFtLWluc3QuY2MgXAot QEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctc3RyaW5nLWluc3QuY2MgXAotQEVOQUJMRV9E VUFMX0FCSV9UUlVFQAljb3ctc3RyaW5nLWlvLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FC SV9UUlVFQAljb3ctd3N0cmluZy1pbnN0LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJ Y293LXdzdHJpbmctaW8taW5zdC5jYyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDEx LWxvY2FsZS1pbnN0LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtd2xvY2Fs ZS1pbnN0LmNjIFwKIEBFTkFCTEVfRFVBTF9BQklfVFJVRUAJc3NvX3N0cmluZy5jYwogCiAj IFhURU1QTEFURV9GTEFHUyA9CkBAIC01MjksNiArNTIyLDE0IEBAIHNvdXJjZXMgPSBcCiAj IFhURU1QTEFURV9GTEFHUyA9IC1mbm8taW1wbGljaXQtdGVtcGxhdGVzCiBARU5BQkxFX0VY VEVSTl9URU1QTEFURV9UUlVFQGluc3Rfc291cmNlcyA9IFwKIEBFTkFCTEVfRVhURVJOX1RF TVBMQVRFX1RSVUVACSQoZXh0cmFfc3RyaW5nX2luc3Rfc291cmNlcykgXAorQEVOQUJMRV9F WFRFUk5fVEVNUExBVEVfVFJVRUAJY293LWZzdHJlYW0taW5zdC5jYyBcCitARU5BQkxFX0VY VEVSTl9URU1QTEFURV9UUlVFQAljb3ctc3N0cmVhbS1pbnN0LmNjIFwKK0BFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zdHJpbmctaW5zdC5jYyBcCitARU5BQkxFX0VYVEVS Tl9URU1QTEFURV9UUlVFQAljb3ctc3RyaW5nLWlvLWluc3QuY2MgXAorQEVOQUJMRV9FWFRF Uk5fVEVNUExBVEVfVFJVRUAJY293LXdzdHJpbmctaW5zdC5jYyBcCitARU5BQkxFX0VYVEVS Tl9URU1QTEFURV9UUlVFQAljb3ctd3N0cmluZy1pby1pbnN0LmNjIFwKK0BFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWN4eDExLWxvY2FsZS1pbnN0LmNjIFwKK0BFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWN4eDExLXdsb2NhbGUtaW5zdC5jYyBcCiBARU5BQkxFX0VY VEVSTl9URU1QTEFURV9UUlVFQAlleHQxMS1pbnN0LmNjIFwKIEBFTkFCTEVfRVhURVJOX1RF TVBMQVRFX1RSVUVACWZzdHJlYW0taW5zdC5jYyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFU RV9UUlVFQAlpb3MtaW5zdC5jYyBcCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2Mr KzExL2Nvdy1mc3RyZWFtLWluc3QuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1m c3RyZWFtLWluc3QuY2MKaW5kZXggMDU2MmJjNmM5Y2IuLjgxNTMzODdkYWVhIDEwMDY0NAot LS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1mc3RyZWFtLWluc3QuY2MKKysrIGIv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctZnN0cmVhbS1pbnN0LmNjCkBAIC0yOSwxMCAr MjksNyBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlIDxm c3RyZWFtPgogCi0jaWYgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBm aWxlIHNob3VsZCBub3QgYmUgY29tcGlsZWQgZm9yIHRoaXMgY29uZmlndXJhdGlvbi4KLSNl bmRpZgotCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiBuYW1lc3BhY2Ugc3RkIF9H TElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFD RV9WRVJTSU9OCkBAIC03NiwzICs3Myw0IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3Bh Y2UKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctbG9j YWxlX2luaXQuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1sb2NhbGVfaW5pdC5j YwppbmRleCBmNDg1NjFmNWIxMi4uYmZlMWQxOWRiMDQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY293LWxvY2FsZV9pbml0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvY293LWxvY2FsZV9pbml0LmNjCkBAIC0yNCwxMCArMjQsNyBAQAogI2RlZmlu ZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlIDxsb2NhbGU+CiAKLSNpZiAh IF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBi ZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2VuZGlmCi0KKyNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElU WShkZWZhdWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KQEAgLTE2 Niw2ICsxNjMsNyBAQCBuYW1lc3BhY2UKICNlbmRpZgogICB9CiAKKyNpZiBfR0xJQkNYWF9V U0VfRFVBTF9BQkkKIC8vIFRPRE8gc2hvdWxkIGJlIGluIGFub3RoZXIgZmlsZQogICBzdHJp bmcKICAgbG9jYWxlOjpuYW1lKCkgY29uc3QKQEAgLTE5MSw2ICsxODksOCBAQCBuYW1lc3Bh Y2UKICAgICAgIH0KICAgICByZXR1cm4gX19yZXQ7CiAgIH0KKyNlbmRpZgogCiBfR0xJQkNY WF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KIH0KKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXNzdHJl YW0taW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXNzdHJlYW0taW5zdC5j YwppbmRleCAwMzVhMjY3ZDlkOC4uNzY5OTE3MGQxM2QgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY293LXNzdHJlYW0taW5zdC5jYworKysgYi9saWJzdGRjKystdjMv c3JjL2MrKzExL2Nvdy1zc3RyZWFtLWluc3QuY2MKQEAgLTI3LDggKzI3LDggQEAKIC8vCiAK ICNkZWZpbmUgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAwCi0jaW5jbHVkZSAic3N0cmVhbS1p bnN0LmNjIgorI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+CiAKLSNpZiAhIF9HTElCQ1hY X1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxl ZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQorIyBpbmNsdWRlICJzc3RyZWFtLWluc3QuY2MiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0ZGV4Y2VwdC5jYyBiL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvY293LXN0ZGV4Y2VwdC5jYwppbmRleCA4ZDFjYzQ2MDVkNC4uMjNmODUzZWFk YWMgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0ZGV4Y2VwdC5j YworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1zdGRleGNlcHQuY2MKQEAgLTQz LDExICs0Myw1MiBAQCBfdHhuYWxfcnVudGltZV9lcnJvcl9nZXRfbXNnKHZvaWQqIGUpOwog CiAvLyBBbGwgZXhjZXB0aW9uIGNsYXNzZXMgc3RpbGwgdXNlIHRoZSBjbGFzc2ljIENPVyBz dGQ6OnN0cmluZy4KICNkZWZpbmUgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAwCi0jZGVmaW5l IF9HTElCQ1hYX0RFRklORV9TVERFWENFUFRfQ09QWV9PUFMgMQotI2RlZmluZSBfX2Nvd19z dHJpbmcgX19jb3dfc3RyaW5neHh4CisjaW5jbHVkZSA8c3RyaW5nPgorCisjaWYgX0dMSUJD WFhfVVNFX0RVQUxfQUJJIHx8IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgaWYgX0dMSUJD WFhfVVNFX0NYWDExX0FCSQorIyAgaW5jbHVkZSA8Yml0cy9jb3dfc3RyaW5nLmg+CisjIGVu ZGlmCisKK25hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQorewor X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KKworIyBpZiBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJCisgIHR5cGVkZWYgc3RkOjpfX3N0ZF9jb3dfc3RyaW5nPGNoYXIsIHN0ZDo6 Y2hhcl90cmFpdHM8Y2hhcj4sCisJCQkJc3RkOjphbGxvY2F0b3I8Y2hhcj4+IGNvd3N0cjsK KyMgZWxzZQorICB0eXBlZGVmIHN0ZDo6c3RyaW5nIGNvd3N0cjsKKyMgZW5kaWYKKworICAv LyBSZWRlZmluZSBfX2Nvd19zdHJpbmcgc28gdGhhdCB3ZSBjYW4gZGVmaW5lIGFuZCBleHBv cnQgaXRzIG1lbWJlcnMKKyAgLy8gaW4gdGVybXMgb2YgdGhlIENPVyBzdGQ6OnN0cmluZy4K KyAgc3RydWN0IF9fY293X3N0cmluZworICB7CisgICAgdW5pb24geworICAgICAgY29uc3Qg Y2hhciogX01fcDsKKyAgICAgIGNoYXIgX01fYnl0ZXNbc2l6ZW9mKF9NX3ApXTsKKyAgICAg IGNvd3N0ciBfTV9zdHI7CisgICAgfTsKKworICAgIF9fY293X3N0cmluZygpOworICAgIF9f Y293X3N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgcyk7CisgICAgX19jb3dfc3RyaW5nKGNv bnN0IGNoYXIqKTsKKyAgICBfX2Nvd19zdHJpbmcoY29uc3QgY2hhciosIHNpemVfdCk7Cisg ICAgX19jb3dfc3RyaW5nKGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0OworICAgIF9f Y293X3N0cmluZyYgb3BlcmF0b3I9KGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0Owor ICAgIH5fX2Nvd19zdHJpbmcoKTsKKyAgICBfX2Nvd19zdHJpbmcoX19jb3dfc3RyaW5nJiYp IG5vZXhjZXB0OworICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KF9fY293X3N0cmluZyYm KSBub2V4Y2VwdDsKKyAgICBjb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0IG5vZXhjZXB0Owor ICB9OworX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCit9CisjZW5kaWYKKworI2Rl ZmluZSBfR0xJQkNYWF9ERUZJTkVfU1RERVhDRVBUX0lOU1RBTlRJQVRJT05TIDEKICNpbmNs dWRlIDxzdGRleGNlcHQ+CiAjaW5jbHVkZSA8c3lzdGVtX2Vycm9yPgotI3VuZGVmIF9fY293 X3N0cmluZwogCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkK IHsKQEAgLTExNCwzMCArMTU1LDE2IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgIC8vIENvbnZlcnRpbmcgY29uc3RydWN0b3IgZnJvbSBDT1cgc3RkOjpzdHJpbmcg dG8gU1NPIHN0cmluZy4KICAgX19zc29fc3RyaW5nOjpfX3Nzb19zdHJpbmcoY29uc3Qgc3Ry aW5nJiBzKQogICA6IF9fc3NvX3N0cmluZyhzLmNfc3RyKCksIHMubGVuZ3RoKCkpIHsgfQor I2VuZGlmCiAKLSAgLy8gUmVkZWZpbmUgX19jb3dfc3RyaW5nIHNvIHRoYXQgd2UgY2FuIGRl ZmluZSBhbmQgZXhwb3J0IGl0cyBtZW1iZXJzCi0gIC8vIGluIHRlcm1zIG9mIHRoZSBDT1cg c3RkOjpzdHJpbmcuCi0gIHN0cnVjdCBfX2Nvd19zdHJpbmcKLSAgewotICAgIHVuaW9uIHsK LSAgICAgIGNvbnN0IGNoYXIqIF9NX3A7Ci0gICAgICBjaGFyIF9NX2J5dGVzW3NpemVvZihf TV9wKV07Ci0gICAgICBzdGQ6OnN0cmluZyBfTV9zdHI7Ci0gICAgfTsKLQotICAgIF9fY293 X3N0cmluZygpOwotICAgIF9fY293X3N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgcyk7Ci0g ICAgX19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqLCBzaXplX3Qgbik7Ci0gICAgX19jb3dfc3Ry aW5nKGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0OwotICAgIF9fY293X3N0cmluZyYg b3BlcmF0b3I9KGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0OwotICAgIH5fX2Nvd19z dHJpbmcoKTsKLSAgICBfX2Nvd19zdHJpbmcoX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0Owot ICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KF9fY293X3N0cmluZyYmKSBub2V4Y2VwdDsK LSAgfTsKLQorI2lmIF9HTElCQ1hYX1VTRV9EVUFMX0FCSSB8fCBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAgIF9fY293X3N0cmluZzo6X19jb3dfc3RyaW5nKCkgOiBfTV9zdHIoKSB7IH0K IAorI2lmICFfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIF9fY293X3N0cmluZzo6X19jb3df c3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSA6IF9NX3N0cihzKSB7IH0KKyNlbmRpZgor CisgIF9fY293X3N0cmluZzo6X19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqIHMpIDogX01fc3Ry KHMpIHsgfQogCiAgIF9fY293X3N0cmluZzo6X19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqIHMs IHNpemVfdCBuKSA6IF9NX3N0cihzLCBuKSB7IH0KIApAQCAtMTUxLDcgKzE3OCw3IEBAIF9H TElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgcmV0dXJuICp0aGlzOwogICB9 CiAKLSAgX19jb3dfc3RyaW5nOjp+X19jb3dfc3RyaW5nKCkgeyBfTV9zdHIufmJhc2ljX3N0 cmluZygpOyB9CisgIF9fY293X3N0cmluZzo6fl9fY293X3N0cmluZygpIHsgX01fc3RyLn5j b3dzdHIoKTsgfQogCiAgIF9fY293X3N0cmluZzo6X19jb3dfc3RyaW5nKF9fY293X3N0cmlu ZyYmIHMpIG5vZXhjZXB0CiAgIDogX01fc3RyKHN0ZDo6bW92ZShzLl9NX3N0cikpIHsgfQpA QCAtMTYzLDEyICsxOTAsMTcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgICByZXR1cm4gKnRoaXM7CiAgIH0KIAotICBzdGF0aWNfYXNzZXJ0KHNpemVvZihfX2Nv d19zdHJpbmcpID09IHNpemVvZihzdGQ6OnN0cmluZyksCisgIGNvbnN0IGNoYXIqCisgIF9f Y293X3N0cmluZzo6Y19zdHIoKSBjb25zdCBub2V4Y2VwdAorICB7IHJldHVybiBfTV9zdHIu Y19zdHIoKTsgfQorCisgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKF9fY293X3N0cmluZykgPT0g c2l6ZW9mKGNvd3N0ciksCiAgICAgICAgICAgICAgICAgInNpemVvZihzdGQ6OnN0cmluZykg aGFzIGNoYW5nZWQiKTsKLSAgc3RhdGljX2Fzc2VydChhbGlnbm9mKF9fY293X3N0cmluZykg PT0gYWxpZ25vZihzdGQ6OnN0cmluZyksCisgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihfX2Nv d19zdHJpbmcpID09IGFsaWdub2YoY293c3RyKSwKICAgICAgICAgICAgICAgICAiYWxpZ25v ZihzdGQ6OnN0cmluZykgaGFzIGNoYW5nZWQiKTsKLSNlbmRpZgorI2VuZGlmIC8vIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAv LyBSZXR1cm4gZXJyb3JfY2F0ZWdvcnk6Om1lc3NhZ2UoKSBhcyBhbiBTU08gc3RyaW5nCiAg IF9fc3NvX3N0cmluZwogICBlcnJvcl9jYXRlZ29yeTo6X01fbWVzc2FnZShpbnQgaSkgY29u c3QKQEAgLTE3NiwxMCArMjA4LDEyIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgICAgc3RyaW5nIG1zZyA9IHRoaXMtPm1lc3NhZ2UoaSk7CiAgICAgcmV0dXJuIHtt c2cuY19zdHIoKSwgbXNnLmxlbmd0aCgpfTsKICAgfQorI2VuZGlmCiAKIF9HTElCQ1hYX0VO RF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKIAorI2lmICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSQogLy8gU3VwcG9ydCBmb3IgdGhlIFRyYW5zYWN0aW9uYWwgTWVtb3J5 IFRTIChONDUxNCkuCiAvLwogLy8gbG9naWNfZXJyb3IgYW5kIHJ1bnRpbWVfZXJyb3IgYm90 aCBjYXJyeSBhIG1lc3NhZ2UgaW4gdGhlIGZvcm0gb2YgYSBDT1cKQEAgLTQ2MywzICs0OTcs NCBAQCBDVE9SRFRPUigxNXVuZGVyZmxvd19lcnJvciwgc3RkOjp1bmRlcmZsb3dfZXJyb3Is IHJ1bnRpbWVfZXJyb3IpCiAKICNlbmRpZiAgLy8gX0dMSUJDWFhfVVNFX0M5OV9TVERJTlQK ICNlbmRpZiAgLy8gX0dMSUJDWFhfVVNFX1dFQUtfUkVGCisjZW5kaWYgIC8vICEgX0dMSUJD WFhfVVNFX0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9j b3ctc3RyaW5nLWluc3QuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1zdHJpbmct aW5zdC5jYwppbmRleCA1YTJiOGZmYTU2OC4uNTdjMjgxMjlmMDAgMTAwNjQ0Ci0tLSBhL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0cmluZy1pbnN0LmNjCisrKyBiL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY293LXN0cmluZy1pbnN0LmNjCkBAIC0yOSwxMCArMjksNyBAQAog I2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlICJzdHJpbmctaW5z dC5jYyIKIAotI2lmICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmls ZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5k aWYKLQorI2lmIF9HTElCQ1hYX1VTRV9EVUFMX0FCSSAmJiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKICNpbmNsdWRlIDxyYW5kb20+CiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklT SUJJTElUWShkZWZhdWx0KQpAQCAtNDUsMyArNDIsNCBAQCBuYW1lc3BhY2Ugc3RkIF9HTElC Q1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKICAgcmFuZG9tX2RldmljZTo6X01faW5pdF9wcmV0 cjEoY29uc3Qgc3RkOjpzdHJpbmcmIHRva2VuKQogICB7IF9NX2luaXQodG9rZW4uY19zdHIo KSwgdG9rZW4ubGVuZ3RoKCkpOyB9CiB9IC8vIG5hbWVzcGFjZQorI2VuZGlmCmRpZmYgLS1n aXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1zdHJpbmctaW8taW5zdC5jYyBiL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0cmluZy1pby1pbnN0LmNjCmluZGV4IDUwNWJj OWRkMzg0Li45YWJjOWI0N2U1MiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysx MS9jb3ctc3RyaW5nLWlvLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9j b3ctc3RyaW5nLWlvLWluc3QuY2MKQEAgLTMwLDEwICszMCw3IEBACiAjaW5jbHVkZSA8aXN0 cmVhbT4KICNpbmNsdWRlIDxvc3RyZWFtPgogCi0jaWYgISBfR0xJQkNYWF9VU0VfRFVBTF9B QkkKLSMgZXJyb3IgVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgY29tcGlsZWQgZm9yIHRoaXMg Y29uZmlndXJhdGlvbi4KLSNlbmRpZgotCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ CiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCkBAIC01NywzICs1NCw0IEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVS U0lPTgogfSAvLyBuYW1lc3BhY2UKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jb3ctd3N0cmluZy1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysx MS9jb3ctd3N0cmluZy1pbnN0LmNjCmluZGV4IGNlNTMzZWE4ZmE1Li5kM2MzYjBjMjk3ZSAx MDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1pbnN0LmNj CisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXdzdHJpbmctaW5zdC5jYwpAQCAt MjksMTIgKzI5LDkgQEAKICNkZWZpbmUgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAwCiAjaW5j bHVkZSA8Yml0cy9jKytjb25maWcuaD4KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQogI2lmZGVmIF9HTElCQ1hYX1VTRV9XQ0hBUl9UCiAjZGVmaW5lIEMgd2NoYXJfdAogI2lu Y2x1ZGUgInN0cmluZy1pbnN0LmNjIgotCi0jaWYgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkK LSMgZXJyb3IgVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgY29tcGlsZWQgZm9yIHRoaXMgY29u ZmlndXJhdGlvbi4KICNlbmRpZgotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY293LXdzdHJpbmctaW8taW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMv YysrMTEvY293LXdzdHJpbmctaW8taW5zdC5jYwppbmRleCA0OTM5NGIwZTI3NS4uMGU2Y2M0 OTBmYTQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXdzdHJpbmct aW8taW5zdC5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy13c3RyaW5nLWlv LWluc3QuY2MKQEAgLTI5LDE0ICsyOSwxMSBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJIDAKICNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgogCisjaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCiAjaWZkZWYgX0dMSUJDWFhfVVNFX1dDSEFSX1QKICNpbmNsdWRl IDxvc3RyZWFtPgogI2luY2x1ZGUgPGlzdHJlYW0+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9E VUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3Ig dGhpcyBjb25maWd1cmF0aW9uLgotI2VuZGlmCi0KIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhf VklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJ T04KQEAgLTYxLDMgKzU4LDQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K IF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKICNlbmRp ZgorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWhh c2hfdHIxLmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1oYXNoX3RyMS5jYwpp bmRleCAyMmE3Njg1ZWVjYS4uMGI5ZmMyOGNlYWEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY3h4MTEtaGFzaF90cjEuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9j KysxMS9jeHgxMS1oYXNoX3RyMS5jYwpAQCAtMjUsOSArMjUsNyBAQAogI2RlZmluZSBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJIDEKICNpbmNsdWRlIDxzdHJpbmc+CiAKLSNpZiAhIF9HTElC Q1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21w aWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2VuZGlmCisjaWYgX0dMSUJDWFhfVVNF X0NYWDExX0FCSQogCiAjaW5jbHVkZSA8dHIxL2Z1bmN0aW9uYWw+CiBuYW1lc3BhY2Ugc3Rk IF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKQEAgLTU3LDMgKzU1LDUgQEAgbmFtZXNw YWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCiAjZW5kaWYKICAgfQogfQor CisjZW5kaWYgLy8gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3Rk YysrLXYzL3NyYy9jKysxMS9jeHgxMS1pb3NfZmFpbHVyZS5jYyBiL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvY3h4MTEtaW9zX2ZhaWx1cmUuY2MKaW5kZXggZTBlODE2YjQ1M2IuLjQ2YmZk YTMyOWRlIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWlvc19m YWlsdXJlLmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtaW9zX2ZhaWx1 cmUuY2MKQEAgLTM4LDkgKzM4LDcgQEAKICMgZGVmaW5lIF8obXNnaWQpICAgKG1zZ2lkKQog I2VuZGlmCiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZp bGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2Vu ZGlmCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiBuYW1lc3BhY2Ugc3RkIF9HTElC Q1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKQEAgLTYyLDcgKzYwLDcgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgaW9zX2Jhc2U6OmZhaWx1cmU6OndoYXQoKSBj b25zdCB0aHJvdygpCiAgIHsgcmV0dXJuIHJ1bnRpbWVfZXJyb3I6OndoYXQoKTsgfQogCi0j aWYgX19jcHBfcnR0aQorI2lmIF9HTElCQ1hYX1VTRV9EVUFMX0FCSSAmJiBfX2NwcF9ydHRp CiAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBpbiBzcmMvYysrOTgvaW9zX2Zh aWx1cmUuY2MKICAgZXh0ZXJuIHZvaWQgX19jb25zdHJ1Y3RfaW9zX2ZhaWx1cmUodm9pZCos IGNvbnN0IGNoYXIqKTsKICAgZXh0ZXJuIHZvaWQgX19kZXN0cm95X2lvc19mYWlsdXJlKHZv aWQqKTsKQEAgLTExOCw3ICsxMTYsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVS U0lPTgogICAgIC8vIE90aGVyd2lzZSBwcm9jZWVkIGFzIG5vcm1hbCB0byBzZWUgaWYgdGhl IGhhbmRsZXIgbWF0Y2hlcy4KICAgICByZXR1cm4gX19jbGFzc190eXBlX2luZm86Ol9fZG9f dXBjYXN0KGRzdF90eXBlLCBvYmpfcHRyKTsKICAgfQotI2Vsc2UgLy8gISBfX2NwcF9ydHRp CisjZWxzZSAvLyAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSSB8fCAhIF9fY3BwX3J0dGkKICAg dXNpbmcgX19pb3NfZmFpbHVyZSA9IGlvczo6ZmFpbHVyZTsKICNlbmRpZgogCkBAIC0xMzYs MyArMTM0LDUgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogX0dMSUJD WFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8g X0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9j KysxMS9jeHgxMS1sb2NhbGUtaW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4 MTEtbG9jYWxlLWluc3QuY2MKaW5kZXggOTRiMTgxODg2ZDMuLmUyMWNjNTU0OGJmIDEwMDY0 NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWxvY2FsZS1pbnN0LmNjCisr KyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtbG9jYWxlLWluc3QuY2MKQEAgLTI3 LDExICsyNyw1IEBACiAvLyBGYWNldCBpbnN0YW50aWF0aW9ucyB1c2luZyBuZXcgQUJJIHN0 cmluZ3MuCiAKICNkZWZpbmUgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAxCi0jaW5jbHVkZSA8 Yml0cy9jKytjb25maWcuaD4KLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJv ciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0 aW9uLgotI2VuZGlmCiAKLSNkZWZpbmUgQyBjaGFyCi0jZGVmaW5lIENfaXNfY2hhcgotIyBp bmNsdWRlICJsb2NhbGUtaW5zdC5jYyIKKyNpbmNsdWRlICJsb2NhbGUtaW5zdC5jYyIKZGlm ZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtc3RkZXhjZXB0LmNjIGIv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1zdGRleGNlcHQuY2MKaW5kZXggNzRjMDcw YzA0MzkuLjM4YWIzNTY5MmEzIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzEx L2N4eDExLXN0ZGV4Y2VwdC5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDEx LXN0ZGV4Y2VwdC5jYwpAQCAtMjksOSArMjksNyBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJIDEKICNpbmNsdWRlIDxzdGRleGNlcHQ+CiAKLSNpZiAhIF9HTElCQ1hYX1VT RV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBm b3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2VuZGlmCisjaWYgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQogCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsK QEAgLTc2LDMgKzc0LDUgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAog X0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZQorCisjZW5k aWYgLy8gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jeHgxMS13bG9jYWxlLWluc3QuY2MgYi9saWJzdGRjKystdjMvc3JjL2Mr KzExL2N4eDExLXdsb2NhbGUtaW5zdC5jYwppbmRleCAxMWZiMTVkOTYwMi4uZmFmZjIzNmMx ZGYgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtd2xvY2FsZS1p bnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtd2xvY2FsZS1pbnN0 LmNjCkBAIC0yOCwxMSArMjgsMTAgQEAKIAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJIDEKICNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgotI2lmICEgX0dMSUJDWFhfVVNF X0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZv ciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKIAotI2lmZGVmIF9HTElCQ1hYX1VTRV9X Q0hBUl9UCi0jZGVmaW5lIEMgd2NoYXJfdAotI2luY2x1ZGUgImxvY2FsZS1pbnN0LmNjIgor I2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgaWZkZWYgX0dMSUJDWFhfVVNFX1dDSEFS X1QKKyMgIGRlZmluZSBDIHdjaGFyX3QKKyMgIGluY2x1ZGUgImxvY2FsZS1pbnN0LmNjIgor IyBlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2xv Y2FsZS1pbnN0LW51bWVyaWMuaCBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWlu c3QtbnVtZXJpYy5oCmluZGV4IGI5MTdmZTU4MDJlLi4yMTFlMTljN2ZmOSAxMDA2NDQKLS0t IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9sb2NhbGUtaW5zdC1udW1lcmljLmgKKysrIGIv bGlic3RkYysrLXYzL3NyYy9jKysxMS9sb2NhbGUtaW5zdC1udW1lcmljLmgKQEAgLTMwLDcg KzMwLDcgQEAKIAogbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQp CiB7Ci0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAvLyB1c2VfZmFjZXQgYW5k IGhhc19mYWNldCBpbnN0YW50aWF0aW9ucwogSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JT KG51bV9nZXQ8Qz4pOwogSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKG51bV9wdXQ8Qz4p OwpAQCAtMzgsNyArMzgsNyBAQCBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMobnVtX3B1 dDxDPik7CiAKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9MREJMCiAKLSNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgdGVtcGxhdGUgY2xhc3MgbnVtX2dldDxDLCBpc3Ry ZWFtYnVmX2l0ZXJhdG9yPEM+ID47CiAgIHRlbXBsYXRlIGNsYXNzIG51bV9wdXQ8Qywgb3N0 cmVhbWJ1Zl9pdGVyYXRvcjxDPiA+OwogI2VuZGlmCkBAIC04OCw3ICs4OCw3IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9MREJMCiAJCSAgIHVuc2lnbmVkIGxvbmcgbG9uZyYpIGNv bnN0OwogI2VuZGlmCiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgLy8g bnVtX3B1dCBtZW1iZXIgZnVuY3Rpb24gdGVtcGxhdGVzCiAgIHRlbXBsYXRlCiAgICAgb3N0 cmVhbWJ1Zl9pdGVyYXRvcjxDPgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysx MS9sb2NhbGUtaW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWluc3Qu Y2MKaW5kZXggM2E1YzY4NDRmMWIuLmVlMzM3NWQ3MDQwIDEwMDY0NAotLS0gYS9saWJzdGRj KystdjMvc3JjL2MrKzExL2xvY2FsZS1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMv YysrMTEvbG9jYWxlLWluc3QuY2MKQEAgLTM1LDggKzM1LDE3IEBACiAjIGRlZmluZSBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNlbmRpZgogCi0jaW5jbHVkZSA8bG9jYWxlPgorI2lm IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgZGVmaW5lIF9HTElCQ1hYX0JVSUxEX0NYWDEx X0FCSSAxCisjZWxzZQorIyBkZWZpbmUgX0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJIDAKKyNl bmRpZgorCisjaW5jbHVkZSA8Yml0cy9jKytjb25maWcuaD4KIAorI2lmIF9HTElCQ1hYX0JV SUxEX0NYWDExX0FCSSA9PSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisKKyNpbmNsdWRlIDxs b2NhbGU+CiAvLyBJbnN0YW50aWF0aW9uIGNvbmZpZ3VyYXRpb24uCiAjaWZuZGVmIEMKICMg ZGVmaW5lIEMgY2hhcgpAQCAtNTIsNyArNjEsNyBAQCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hY X1ZJU0lCSUxJVFkoZGVmYXVsdCkKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CiAKICAgLy8gbW9uZXlwdW5jdCwgbW9uZXlfZ2V0LCBhbmQgbW9uZXlfcHV0Ci0jaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8 ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAgIHRlbXBsYXRlIHN0cnVjdCBfX21vbmV5cHVu Y3RfY2FjaGU8QywgZmFsc2U+OwogICB0ZW1wbGF0ZSBzdHJ1Y3QgX19tb25leXB1bmN0X2Nh Y2hlPEMsIHRydWU+OwogI2VuZGlmCkBAIC02NCw3ICs3Myw3IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9DWFgxMQogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9DWFgxMQogCiAgIC8v IG51bXB1bmN0LCBudW1wdW5jdF9ieW5hbWUsIG51bV9nZXQsIGFuZCBudW1fcHV0Ci0jaWYg ISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ IHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAgIHRlbXBsYXRlIHN0cnVjdCBfX251bXB1 bmN0X2NhY2hlPEM+OwogI2VuZGlmCiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfQ1hYMTEK QEAgLTczLDcgKzgyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCiBfR0xJ QkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCiAKICAgLy8gdGltZV9nZXQgYW5kIHRpbWVfcHV0 Ci0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAgIHRlbXBsYXRlIGNsYXNzIF9f dGltZXB1bmN0PEM+OwogICB0ZW1wbGF0ZSBzdHJ1Y3QgX190aW1lcHVuY3RfY2FjaGU8Qz47 CiAgIHRlbXBsYXRlIGNsYXNzIHRpbWVfcHV0PEMsIG9zdHJlYW1idWZfaXRlcmF0b3I8Qz4g PjsKQEAgLTk3LDEzICsxMDYsMTMgQEAgX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9DWFgxMQog ICBjdHlwZV9ieW5hbWU8Qz46OmN0eXBlX2J5bmFtZShjb25zdCBzdHJpbmcmIF9fcywgc2l6 ZV90IF9fcmVmcykKICAgOiBjdHlwZV9ieW5hbWUoX19zLmNfc3RyKCksIF9fcmVmcykgeyB9 CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgaW5saW5lIHRlbXBsYXRl IGNsYXNzIF9fY3R5cGVfYWJzdHJhY3RfYmFzZTxDPjsKICAgdGVtcGxhdGUgY2xhc3MgY3R5 cGVfYnluYW1lPEM+OwogI2VuZGlmCiAKICAgLy8gY29kZWN2dAotI2lmICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElC Q1hYX1VTRV9EVUFMX0FCSQogICBpbmxpbmUgdGVtcGxhdGUgY2xhc3MgX19jb2RlY3Z0X2Fi c3RyYWN0X2Jhc2U8QywgY2hhciwgbWJzdGF0ZV90PjsKICAgdGVtcGxhdGUgY2xhc3MgY29k ZWN2dF9ieW5hbWU8QywgY2hhciwgbWJzdGF0ZV90PjsKICNlbHNlCkBAIC0xMTgsNyArMTI3 LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCiBfR0xJQkNYWF9FTkRfTkFN RVNQQUNFX0NYWDExCiAKIC8vIHVzZV9mYWNldCBhbmQgaGFzX2ZhY2V0IGluc3RhbnRpYXRp b25zCi0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiBJTlNUQU5USUFURV9GQUNF VF9BQ0NFU1NPUlMoY3R5cGU8Qz4pOwogSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKGNv ZGVjdnQ8QywgY2hhciwgbWJzdGF0ZV90Pik7CiAjZW5kaWYKQEAgLTEyNywxNCArMTM2LDE0 IEBAIElOU1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyhudW1wdW5jdDxDPik7CiBJTlNUQU5U SUFURV9GQUNFVF9BQ0NFU1NPUlMobW9uZXlwdW5jdDxDLCBmYWxzZT4pOwogLy8gTm8gZXhw bGljaXQgaW5zdGFudGlhdGlvbiBvZiBoYXNfZmFjZXQ8bW9uZXlwdW5jdDxDLCB0cnVlPj4g Zm9yIHNvbWUgcmVhc29uLgogSU5TVEFOVElBVEVfVVNFX0ZBQ0VUICAgICAgKG1vbmV5cHVu Y3Q8QywgdHJ1ZT4pOwotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogSU5TVEFO VElBVEVfRkFDRVRfQUNDRVNTT1JTKF9fdGltZXB1bmN0PEM+KTsKIElOU1RBTlRJQVRFX0ZB Q0VUX0FDQ0VTU09SUyh0aW1lX3B1dDxDPik7CiAjZW5kaWYKIElOU1RBTlRJQVRFX0ZBQ0VU X0FDQ0VTU09SUyh0aW1lX2dldDxDPik7CiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMo bWVzc2FnZXM8Qz4pOwogCi0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAgIC8v IGxvY2FsZSBmdW5jdGlvbnMuCiAgIHRlbXBsYXRlCiAgICAgQyoKQEAgLTE2MywzICsxNzIs NSBAQCBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KICNpZiBkZWZpbmVkIF9HTElC Q1hYX0xPTkdfRE9VQkxFX0NPTVBBVCAmJiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICNp bmNsdWRlICJjb21wYXRpYmlsaXR5LWxkYmwtZmFjZXRzLWFsaWFzZXMuaCIKICNlbmRpZiAv LyBfR0xJQkNYWF9MT05HX0RPVUJMRV9DT01QQVQKKworI2VuZGlmIC8vICBfR0xJQkNYWF9C VUlMRF9DWFgxMV9BQkkgPT0gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL3NyYy9jKysxMS9zdHJpbmctaW5zdC5jYyBiL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvc3RyaW5nLWluc3QuY2MKaW5kZXggZGRhYWZjMDgxOTkuLmYyOTE3NmRmYzg4 IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL3N0cmluZy1pbnN0LmNjCisr KyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvc3RyaW5nLWluc3QuY2MKQEAgLTM1LDYgKzM1 LDEyIEBACiAjIGRlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDEKICNlbmRpZgogCisj aWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBkZWZpbmUgX0dMSUJDWFhfREVGSU5JTkdf Q1hYMTFfQUJJX0lOU1RBTlRJQVRJT05TIDEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9E RUZJTklOR19DWFgxMV9BQklfSU5TVEFOVElBVElPTlMgMAorI2VuZGlmCisKIC8vIFByZXZl bnQgdGhlIGJhc2ljX3N0cmluZyhjb25zdCBfQ2hhclQqLCBjb25zdCBfQWxsb2MmKSBhbmQK IC8vIGJhc2ljX3N0cmluZyhzaXplX3R5cGUsIF9DaGFyVCwgY29uc3QgX0FsbG9jJikgY29u c3RydWN0b3JzIGZyb20gYmVpbmcKIC8vIHJlcGxhY2VkIGJ5IGNvbnN0cmFpbmVkIGZ1bmN0 aW9uIHRlbXBsYXRlcywgc28gdGhhdCB3ZSBpbnN0YW50aWF0ZSB0aGUKQEAgLTQ1LDYgKzUx LDI5IEBACiAKICNpbmNsdWRlIDxzdHJpbmc+CiAKKyNpZiBfR0xJQkNYWF9VU0VfRFVBTF9B QkkgfHwgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KKwor I2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgaW5jbHVkZSA8Yml0cy9jb3dfc3RyaW5n Lmg+Cit0eXBlZGVmIHN0ZDo6X19zdGRfY293X3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJh aXRzPGNoYXI+LAorCQkJICAgICAgc3RkOjphbGxvY2F0b3I8Y2hhcj4+IGNvd3N0cjsKKyNl bHNlCit0eXBlZGVmIHN0ZDo6c3RyaW5nIGNvd3N0cjsKKyNlbmRpZgorCitzdGF0aWNfYXNz ZXJ0KHNpemVvZihzdGQ6Ol9fY293X3N0cmluZykgPT0gc2l6ZW9mKGNvd3N0ciksCisJICAg ICAgInNpemVvZihzdGQ6OnN0cmluZykgaGFzIGNoYW5nZWQiKTsKK3N0YXRpY19hc3NlcnQo YWxpZ25vZihzdGQ6Ol9fY293X3N0cmluZykgPT0gYWxpZ25vZihjb3dzdHIpLAorCSAgICAg ICJhbGlnbm9mKHN0ZDo6c3RyaW5nKSBoYXMgY2hhbmdlZCIpOworI2VuZGlmIC8vIF9HTElC Q1hYX1VTRV9EVUFMX0FCSSB8fCBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisKKyNpZiBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJICYmICEgX0dMSUJDWFhfREVGSU5JTkdfQ1hYMTFfQUJJX0lO U1RBTlRJQVRJT05TCisjIGRlZmluZSBfR0xJQkNYWF9ERUZJTklOR19DT1dfU1RSSU5HX0lO U1RBTlRJQVRJT05TIDEKKyMgaW5jbHVkZSA8Yml0cy9jb3dfc3RyaW5nLmg+CisjIGRlZmlu ZSBiYXNpY19zdHJpbmcgX19zdGRfY293X3N0cmluZworI2VuZGlmCisKIC8vIEluc3RhbnRp YXRpb24gY29uZmlndXJhdGlvbi4KICNpZm5kZWYgQwogIyBkZWZpbmUgQyBjaGFyCkBAIC01 NCwxMiArODMsMTQgQEAgbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1 bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCi0gIHR5cGVkZWYg YmFzaWNfc3RyaW5nPEM+IFM7Cit0eXBlZGVmIGJhc2ljX3N0cmluZzxDLCBzdGQ6OmNoYXJf dHJhaXRzPEM+LCBzdGQ6OmFsbG9jYXRvcjxDPj4gUzsKIAotICB0ZW1wbGF0ZSBjbGFzcyBi YXNpY19zdHJpbmc8Qz47CisgIHRlbXBsYXRlIGNsYXNzIGJhc2ljX3N0cmluZzxDLCBzdGQ6 OmNoYXJfdHJhaXRzPEM+LCBzdGQ6OmFsbG9jYXRvcjxDPj47CisjaWYgISBfR0xJQkNYWF9E RUZJTklOR19DT1dfU1RSSU5HX0lOU1RBTlRJQVRJT05TCiAgIHRlbXBsYXRlIFMgb3BlcmF0 b3IrKGNvbnN0IEMqLCBjb25zdCBTJik7CiAgIHRlbXBsYXRlIFMgb3BlcmF0b3IrKEMsIGNv bnN0IFMmKTsKICAgdGVtcGxhdGUgUyBvcGVyYXRvcisoY29uc3QgUyYsIGNvbnN0IFMmKTsK KyNlbmRpZgogCiAgIC8vIE9ubHkgb25lIHRlbXBsYXRlIGtleXdvcmQgYWxsb3dlZCBoZXJl LgogICAvLyBTZWUgY29yZSBpc3N1ZSAjNDYgKE5BRCkKQEAgLTczLDcgKzEwNCw3IEBAIF9H TElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgIHRlbXBsYXRlCiAgICAgUzo6YmFz aWNfc3RyaW5nKFM6Oml0ZXJhdG9yLCBTOjppdGVyYXRvciwgY29uc3QgYWxsb2NhdG9yPEM+ Jik7CiAKLSNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgX0dMSUJDWFhfVVNFX0NY WDExX0FCSSAmJiAhIF9HTElCQ1hYX0RFRklOSU5HX0NPV19TVFJJTkdfSU5TVEFOVElBVElP TlMKICAgdGVtcGxhdGUKICAgICB2b2lkCiAgICAgUzo6X01fY29uc3RydWN0KFM6Oml0ZXJh dG9yLCBTOjppdGVyYXRvciwgZm9yd2FyZF9pdGVyYXRvcl90YWcpOwpAQCAtOTEsNyArMTIy LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICB2b2lkCiAgICAg Uzo6X01fY29uc3RydWN0KGNvbnN0IEMqLCBjb25zdCBDKiwgZm9yd2FyZF9pdGVyYXRvcl90 YWcpOwogCi0jZWxzZSAvLyAhX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2Vsc2UgLy8gISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8IF9HTElCQ1hYX0RFRklOSU5HX0NPV19TVFJJTkdf SU5TVEFOVElBVElPTlMKIAogICB0ZW1wbGF0ZQogICAgIEMqCkBAIC0xMTEsNiArMTQyLDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIF9HTElCQ1hYX0VORF9OQU1F U1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKIAorI2lmICEgX0dMSUJDWFhfREVGSU5J TkdfQ09XX1NUUklOR19JTlNUQU5USUFUSU9OUwogbmFtZXNwYWNlIF9fZ251X2N4eCBfR0xJ QkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0Vf VkVSU0lPTgpAQCAtMTIxLDMgKzE1Myw0IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3Bh Y2UKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS93bG9jYWxl LWluc3QuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL3dsb2NhbGUtaW5zdC5jYwppbmRl eCBkYzJkMjM0OTA1NS4uYjVjNzk4YmZlNjQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvd2xvY2FsZS1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEv d2xvY2FsZS1pbnN0LmNjCkBAIC0zMCw3ICszMCw5IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkgMAogI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+CiAKLSNpZmRlZiBf R0xJQkNYWF9VU0VfV0NIQVJfVAotI2RlZmluZSBDIHdjaGFyX3QKLSNpbmNsdWRlICJsb2Nh bGUtaW5zdC5jYyIKLSNlbmRpZiAvLyBfR0xJQkNYWF9VU0VfV0NIQVJfVAorI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQorIyBpZmRlZiBfR0xJQkNYWF9VU0VfV0NIQVJfVAorIyAg ZGVmaW5lIEMgd2NoYXJfdAorIyAgaW5jbHVkZSAibG9jYWxlLWluc3QuY2MiCisjIGVuZGlm IC8vIF9HTElCQ1hYX1VTRV9XQ0hBUl9UCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMr Ky12My9zcmMvYysrOTgvTWFrZWZpbGUuYW0gYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L01h a2VmaWxlLmFtCmluZGV4IDcyYmUyZDJkMmVhLi44NjI0MjM5N2QzMyAxMDA2NDQKLS0tIGEv bGlic3RkYysrLXYzL3NyYy9jKys5OC9NYWtlZmlsZS5hbQorKysgYi9saWJzdGRjKystdjMv c3JjL2MrKzk4L01ha2VmaWxlLmFtCkBAIC04NiwxMiArODYsOCBAQCBob3N0X3NvdXJjZXNf ZXh0cmEgPSBcCiBjKytsb2NhbGUuY2M6ICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQ0xPQ0FMRV9D QykKIAkkKExOX1MpICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQ0xPQ0FMRV9DQykgLi8kQCB8fCB0 cnVlCiAKLWlmIEVOQUJMRV9EVUFMX0FCSQotY3h4MTFfYWJpX3NvdXJjZXMgPSBcCi0JY293 LWlzdHJlYW0tc3RyaW5nLmNjCi1lbHNlCi1jeHgxMV9hYmlfc291cmNlcyA9Ci1lbmRpZgor YmFzaWNfZmlsZS5jYzogJHtnbGliY3h4X3NyY2Rpcn0vJChCQVNJQ19GSUxFX0NDKQorCSQo TE5fUykgJHtnbGliY3h4X3NyY2Rpcn0vJChCQVNJQ19GSUxFX0NDKSAuLyRAIHx8IHRydWUK IAogaWYgRU5BQkxFX0VYVEVSTl9URU1QTEFURQogIyBYVEVNUExBVEVfRkxBR1MgPSAtZm5v LWltcGxpY2l0LXRlbXBsYXRlcwpAQCAtMTE0LDYgKzExMCw3IEBAIHNvdXJjZXMgPSBcCiAJ bXRfYWxsb2NhdG9yLmNjIFwKIAljb2RlY3Z0LmNjIFwKIAljb21wbGV4X2lvLmNjIFwKKwlj b3ctaXN0cmVhbS1zdHJpbmcuY2MgXAogCWdsb2JhbHNfaW8uY2MgXAogCWhhc2hfdHIxLmNj IFwKIAloYXNodGFibGVfdHIxLmNjIFwKQEAgLTEzNiw3ICsxMzMsNiBAQCBzb3VyY2VzID0g XAogCWlzdHJlYW0tc3RyaW5nLmNjIFwKIAlzdHJlYW1idWYuY2MgXAogCXZhbGFycmF5LmNj IFwKLQkke2N4eDExX2FiaV9zb3VyY2VzfSBcCiAJJHtob3N0X3NvdXJjZXN9IFwKIAkke2hv c3Rfc291cmNlc19leHRyYX0gXAogCSR7aW5zdF9zb3VyY2VzfSBcCmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvc3JjL2MrKzk4L01ha2VmaWxlLmluIGIvbGlic3RkYysrLXYzL3NyYy9j Kys5OC9NYWtlZmlsZS5pbgppbmRleCA5NWU5MDliMTA0OS4uNzYxZmJjZjYxMzUgMTAwNjQ0 Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvTWFrZWZpbGUuaW4KKysrIGIvbGlic3Rk YysrLXYzL3NyYy9jKys5OC9NYWtlZmlsZS5pbgpAQCAtMTIxLDMwICsxMjEsMjkgQEAgQ09O RklHX0NMRUFOX0ZJTEVTID0KIENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CiBMVExJQlJB UklFUyA9ICQobm9pbnN0X0xUTElCUkFSSUVTKQogbGliY19fOThjb252ZW5pZW5jZV9sYV9M SUJBREQgPQotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGFtX19vYmplY3RzXzEgPSBjb3ctaXN0 cmVhbS1zdHJpbmcubG8KLUBFTkFCTEVfRFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c18yID0g Y29sbGF0ZV9tZW1iZXJzX2Nvdy5sbyBcCitARU5BQkxFX0RVQUxfQUJJX1RSVUVAYW1fX29i amVjdHNfMSA9IGNvbGxhdGVfbWVtYmVyc19jb3cubG8gXAogQEVOQUJMRV9EVUFMX0FCSV9U UlVFQAltZXNzYWdlc19tZW1iZXJzX2Nvdy5sbyBcCiBARU5BQkxFX0RVQUxfQUJJX1RSVUVA CW1vbmV0YXJ5X21lbWJlcnNfY293LmxvIFwKIEBFTkFCTEVfRFVBTF9BQklfVFJVRUAJbnVt ZXJpY19tZW1iZXJzX2Nvdy5sbwotYW1fX29iamVjdHNfMyA9ICQoYW1fX29iamVjdHNfMikg Y29kZWN2dF9tZW1iZXJzLmxvIGNvbGxhdGVfbWVtYmVycy5sbyBcCithbV9fb2JqZWN0c18y ID0gJChhbV9fb2JqZWN0c18xKSBjb2RlY3Z0X21lbWJlcnMubG8gY29sbGF0ZV9tZW1iZXJz LmxvIFwKIAltZXNzYWdlc19tZW1iZXJzLmxvIG1vbmV0YXJ5X21lbWJlcnMubG8gbnVtZXJp Y19tZW1iZXJzLmxvIFwKIAl0aW1lX21lbWJlcnMubG8KLWFtX19vYmplY3RzXzQgPSBjKyts b2NhbGUubG8KLUBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVAYW1fX29iamVjdHNfNSA9 IGFsbG9jYXRvci1pbnN0LmxvIFwKK2FtX19vYmplY3RzXzMgPSBjKytsb2NhbGUubG8KK0BF TkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVAYW1fX29iamVjdHNfNCA9IGFsbG9jYXRvci1p bnN0LmxvIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvbmNlcHQtaW5zdC5s byBleHQtaW5zdC5sbyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAltaXNjLWlu c3QubG8KLWFtX19vYmplY3RzXzYgPSBwYXJhbGxlbF9zZXR0aW5ncy5sbwotYW1fX29iamVj dHNfNyA9IGJpdG1hcF9hbGxvY2F0b3IubG8gcG9vbF9hbGxvY2F0b3IubG8gbXRfYWxsb2Nh dG9yLmxvIFwKLQljb2RlY3Z0LmxvIGNvbXBsZXhfaW8ubG8gZ2xvYmFsc19pby5sbyBoYXNo X3RyMS5sbyBcCi0JaGFzaHRhYmxlX3RyMS5sbyBpb3NfZmFpbHVyZS5sbyBpb3NfaW5pdC5s byBpb3NfbG9jYWxlLmxvIFwKLQlsaXN0LmxvIGxpc3QtYXV4LmxvIGxpc3QtYXV4LTIubG8g bGlzdF9hc3NvY2lhdGVkLmxvIFwKLQlsaXN0X2Fzc29jaWF0ZWQtMi5sbyBsb2NhbGUubG8g bG9jYWxlX2ZhY2V0cy5sbyBcCi0JbWF0aF9zdHVic19mbG9hdC5sbyBtYXRoX3N0dWJzX2xv bmdfZG91YmxlLmxvIHN0ZGV4Y2VwdC5sbyBcCi0Jc3Ryc3RyZWFtLmxvIHRyZWUubG8gaXN0 cmVhbS5sbyBpc3RyZWFtLXN0cmluZy5sbyBzdHJlYW1idWYubG8gXAotCXZhbGFycmF5Lmxv ICQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18zKSAkKGFtX19vYmplY3RzXzQpIFwK LQkkKGFtX19vYmplY3RzXzUpICQoYW1fX29iamVjdHNfNikKK2FtX19vYmplY3RzXzUgPSBw YXJhbGxlbF9zZXR0aW5ncy5sbworYW1fX29iamVjdHNfNiA9IGJpdG1hcF9hbGxvY2F0b3Iu bG8gcG9vbF9hbGxvY2F0b3IubG8gbXRfYWxsb2NhdG9yLmxvIFwKKwljb2RlY3Z0LmxvIGNv bXBsZXhfaW8ubG8gY293LWlzdHJlYW0tc3RyaW5nLmxvIGdsb2JhbHNfaW8ubG8gXAorCWhh c2hfdHIxLmxvIGhhc2h0YWJsZV90cjEubG8gaW9zX2ZhaWx1cmUubG8gaW9zX2luaXQubG8g XAorCWlvc19sb2NhbGUubG8gbGlzdC5sbyBsaXN0LWF1eC5sbyBsaXN0LWF1eC0yLmxvIFwK KwlsaXN0X2Fzc29jaWF0ZWQubG8gbGlzdF9hc3NvY2lhdGVkLTIubG8gbG9jYWxlLmxvIFwK Kwlsb2NhbGVfZmFjZXRzLmxvIG1hdGhfc3R1YnNfZmxvYXQubG8gbWF0aF9zdHVic19sb25n X2RvdWJsZS5sbyBcCisJc3RkZXhjZXB0LmxvIHN0cnN0cmVhbS5sbyB0cmVlLmxvIGlzdHJl YW0ubG8gaXN0cmVhbS1zdHJpbmcubG8gXAorCXN0cmVhbWJ1Zi5sbyB2YWxhcnJheS5sbyAk KGFtX19vYmplY3RzXzIpICQoYW1fX29iamVjdHNfMykgXAorCSQoYW1fX29iamVjdHNfNCkg JChhbV9fb2JqZWN0c181KQogQEdMSUJDWFhfSE9TVEVEX1RSVUVAYW1fbGliY19fOThjb252 ZW5pZW5jZV9sYV9PQkpFQ1RTID0gIFwKLUBHTElCQ1hYX0hPU1RFRF9UUlVFQAkkKGFtX19v YmplY3RzXzcpCitAR0xJQkNYWF9IT1NURURfVFJVRUAJJChhbV9fb2JqZWN0c182KQogbGli Y19fOThjb252ZW5pZW5jZV9sYV9PQkpFQ1RTID0gJChhbV9saWJjX185OGNvbnZlbmllbmNl X2xhX09CSkVDVFMpCiBBTV9WX2x0ID0gJChhbV9fdl9sdF9AQU1fVkApCiBhbV9fdl9sdF8g PSAkKGFtX192X2x0X0BBTV9ERUZBVUxUX1ZAKQpAQCAtNDY5LDEwICs0NjgsNiBAQCBob3N0 X3NvdXJjZXMgPSBcCiBob3N0X3NvdXJjZXNfZXh0cmEgPSBcCiAJYysrbG9jYWxlLmNjCiAK LUBFTkFCTEVfRFVBTF9BQklfRkFMU0VAY3h4MTFfYWJpX3NvdXJjZXMgPSAKLUBFTkFCTEVf RFVBTF9BQklfVFJVRUBjeHgxMV9hYmlfc291cmNlcyA9IFwKLUBFTkFCTEVfRFVBTF9BQklf VFJVRUAJY293LWlzdHJlYW0tc3RyaW5nLmNjCi0KICMgWFRFTVBMQVRFX0ZMQUdTID0KIEBF TkFCTEVfRVhURVJOX1RFTVBMQVRFX0ZBTFNFQGluc3Rfc291cmNlcyA9IAogCkBAIC00OTIs NiArNDg3LDcgQEAgc291cmNlcyA9IFwKIAltdF9hbGxvY2F0b3IuY2MgXAogCWNvZGVjdnQu Y2MgXAogCWNvbXBsZXhfaW8uY2MgXAorCWNvdy1pc3RyZWFtLXN0cmluZy5jYyBcCiAJZ2xv YmFsc19pby5jYyBcCiAJaGFzaF90cjEuY2MgXAogCWhhc2h0YWJsZV90cjEuY2MgXApAQCAt NTE0LDcgKzUxMCw2IEBAIHNvdXJjZXMgPSBcCiAJaXN0cmVhbS1zdHJpbmcuY2MgXAogCXN0 cmVhbWJ1Zi5jYyBcCiAJdmFsYXJyYXkuY2MgXAotCSR7Y3h4MTFfYWJpX3NvdXJjZXN9IFwK IAkke2hvc3Rfc291cmNlc30gXAogCSR7aG9zdF9zb3VyY2VzX2V4dHJhfSBcCiAJJHtpbnN0 X3NvdXJjZXN9IFwKQEAgLTg2OSw2ICs4NjQsOSBAQCB0aW1lX21lbWJlcnMuY2M6ICR7Z2xp YmN4eF9zcmNkaXJ9LyQoQ1RJTUVfQ0MpCiBjKytsb2NhbGUuY2M6ICR7Z2xpYmN4eF9zcmNk aXJ9LyQoQ0xPQ0FMRV9DQykKIAkkKExOX1MpICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQ0xPQ0FM RV9DQykgLi8kQCB8fCB0cnVlCiAKK2Jhc2ljX2ZpbGUuY2M6ICR7Z2xpYmN4eF9zcmNkaXJ9 LyQoQkFTSUNfRklMRV9DQykKKwkkKExOX1MpICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQkFTSUNf RklMRV9DQykgLi8kQCB8fCB0cnVlCisKIHZwYXRoICUgJCh0b3Bfc3JjZGlyKS9zcmMvYysr OTgKIAogIyBVc2Ugc3BlY2lhbCBydWxlcyB0byBjb21waWxlIHdpdGggLWZpbXBsaWNpdC10 ZW1wbGF0ZXMuCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2NvbXBhdGli aWxpdHkuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2NvbXBhdGliaWxpdHkuY2MKaW5k ZXggNWZmMjFmMDljNDMuLmI3ZmVhZTI2NDlkIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv c3JjL2MrKzk4L2NvbXBhdGliaWxpdHkuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKys5 OC9jb21wYXRpYmlsaXR5LmNjCkBAIC0yNSw3ICsyNSw4IEBACiAjZGVmaW5lIF9HTElCQ1hY X1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+CiAKLSNpZiBk ZWZpbmVkKF9HTElCQ1hYX1NZTVZFUl9HTlUpICYmIGRlZmluZWQoX0dMSUJDWFhfU0hBUkVE KSBcCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIFwKKyAgICAmJiBkZWZpbmVkKF9H TElCQ1hYX1NZTVZFUl9HTlUpICYmIGRlZmluZWQoX0dMSUJDWFhfU0hBUkVEKQlcCiAgICAg JiYgZGVmaW5lZChfR0xJQkNYWF9IQVZFX0FTX1NZTVZFUl9ESVJFQ1RJVkUpXAogICAgICYm IGRlZmluZWQoX0dMSUJDWFhfSEFWRV9TWU1WRVJfU1lNQk9MX1JFTkFNSU5HX1JVTlRJTUVf U1VQUE9SVCkKICNkZWZpbmUgaXN0cmVhbWJ1Zl9pdGVyYXRvciBpc3RyZWFtYnVmX2l0ZXJh dG9yWFgKQEAgLTIyMCw3ICsyMjEsOCBAQCBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJ T04KIAogLy8gTkI6IFRoZXNlIHN5bWJvbHMgcmVuYW1lcyBzaG91bGQgZ28gaW50byB0aGUg c2hhcmVkIGxpYnJhcnkgb25seSwKIC8vIGFuZCBvbmx5IHRob3NlIHNoYXJlZCBsaWJyYXJp ZXMgdGhhdCBzdXBwb3J0IHZlcnNpb25pbmcuCi0jaWYgZGVmaW5lZChfR0xJQkNYWF9TWU1W RVJfR05VKSAmJiBkZWZpbmVkKF9HTElCQ1hYX1NIQVJFRCkgXAorI2lmICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSSBcCisgICAgJiYgZGVmaW5lZChfR0xJQkNYWF9TWU1WRVJfR05VKSAm JiBkZWZpbmVkKF9HTElCQ1hYX1NIQVJFRCkJXAogICAgICYmIGRlZmluZWQoX0dMSUJDWFhf SEFWRV9BU19TWU1WRVJfRElSRUNUSVZFKSBcCiAgICAgJiYgZGVmaW5lZChfR0xJQkNYWF9I QVZFX1NZTVZFUl9TWU1CT0xfUkVOQU1JTkdfUlVOVElNRV9TVVBQT1JUKQogCkBAIC01MjUs NyArNTI3LDcgQEAgX0dMSUJDWFhfTUFUSExfV1JBUFBFUjEgKHRhbiwgR0xJQkNYWF8zLjQp OwogI2VuZGlmCiAjZW5kaWYgLy8gX0dMSUJDWFhfTE9OR19ET1VCTEVfQ09NUEFUCiAKLSNl bmRpZgorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAjaWZkZWYgX0dM SUJDWFhfTE9OR19ET1VCTEVfQ09NUEFUCiBleHRlcm4gdm9pZCAqX1pUVk4xMF9fY3h4YWJp djEyM19fZnVuZGFtZW50YWxfdHlwZV9pbmZvRVtdOwpkaWZmIC0tZ2l0IGEvbGlic3RkYysr LXYzL3NyYy9jKys5OC9jb3ctaXN0cmVhbS1zdHJpbmcuY2MgYi9saWJzdGRjKystdjMvc3Jj L2MrKzk4L2Nvdy1pc3RyZWFtLXN0cmluZy5jYwppbmRleCA0MDVmOWVjYjc4MS4uZjAwY2Jj MDlmNjkgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvY293LWlzdHJlYW0t c3RyaW5nLmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvY293LWlzdHJlYW0tc3Ry aW5nLmNjCkBAIC0yNyw0ICsyNyw4IEBACiAvLwogCiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkgMAotI2luY2x1ZGUgImlzdHJlYW0tc3RyaW5nLmNjIgorI2luY2x1ZGUgPGJp dHMvYysrY29uZmlnLmg+CisKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgaW5j bHVkZSAiaXN0cmVhbS1zdHJpbmcuY2MiCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMr Ky12My9zcmMvYysrOTgvaGFzaF90cjEuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2hh c2hfdHIxLmNjCmluZGV4IGUxMzJjMDFiZjhlLi5hMmNkMmM1MDlmMyAxMDA2NDQKLS0tIGEv bGlic3RkYysrLXYzL3NyYy9jKys5OC9oYXNoX3RyMS5jYworKysgYi9saWJzdGRjKystdjMv c3JjL2MrKzk4L2hhc2hfdHIxLmNjCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJo YXNoLWxvbmctZG91YmxlLXRyMS1hdXguY2MiCiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewog ICBuYW1lc3BhY2UgdHIxCkBAIC01NywzICs1OCw0IEBAIG5hbWVzcGFjZSBzdGQgX0dMSUJD WFhfVklTSUJJTElUWShkZWZhdWx0KQogI2VuZGlmCiAgIH0KIH0KKyNlbmRpZiAvLyAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysr OTgvaW9zX2ZhaWx1cmUuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2lvc19mYWlsdXJl LmNjCmluZGV4IDI3NDc2ZWNjYmRiLi40MzI5MTg3MTE5NiAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL3NyYy9jKys5OC9pb3NfZmFpbHVyZS5jYworKysgYi9saWJzdGRjKystdjMvc3Jj L2MrKzk4L2lvc19mYWlsdXJlLmNjCkBAIC0yOSwyMiArMjksMjQgQEAKICNkZWZpbmUgX0dM SUJDWFhfVVNFX0NYWDExX0FCSSAwCiAjaW5jbHVkZSA8aW9zPgogCi0jaWYgX0dMSUJDWFhf VVNFX0RVQUxfQUJJICYmIF9fY3BwX3J0dGkKLSNpbmNsdWRlIDxjeHhhYmkuaD4KLSNpbmNs dWRlIDx0eXBlaW5mbz4KLSNlbmRpZgotCi0jaWZkZWYgX0dMSUJDWFhfVVNFX05MUwotIyBp bmNsdWRlIDxsaWJpbnRsLmg+Ci0jIGRlZmluZSBfKG1zZ2lkKSAgIGdldHRleHQgKG1zZ2lk KQotI2Vsc2UKLSMgZGVmaW5lIF8obXNnaWQpICAgKG1zZ2lkKQotI2VuZGlmCisjaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCisjIGlm IF9HTElCQ1hYX1VTRV9EVUFMX0FCSSAmJiBfX2NwcF9ydHRpCisjICBpbmNsdWRlIDxjeHhh YmkuaD4KKyMgIGluY2x1ZGUgPHR5cGVpbmZvPgorIyBlbmRpZgorCisjIGlmZGVmIF9HTElC Q1hYX1VTRV9OTFMKKyMgIGluY2x1ZGUgPGxpYmludGwuaD4KKyMgIGRlZmluZSBfKG1zZ2lk KSAgIGdldHRleHQgKG1zZ2lkKQorIyBlbHNlCisjICBkZWZpbmUgXyhtc2dpZCkgICAobXNn aWQpCisjIGVuZGlmCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZh dWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAorI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQogICBpb3NfYmFzZTo6ZmFpbHVyZTo6ZmFpbHVyZShjb25z dCBzdHJpbmcmIF9fc3RyKSB0aHJvdygpCiAgIDogX01fbXNnKF9fc3RyKSB7IH0KIApAQCAt NTQsNiArNTYsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICBjb25z dCBjaGFyKgogICBpb3NfYmFzZTo6ZmFpbHVyZTo6d2hhdCgpIGNvbnN0IHRocm93KCkKICAg eyByZXR1cm4gX01fbXNnLmNfc3RyKCk7IH0KKyNlbmRpZgogCiAjaWYgX0dMSUJDWFhfVVNF X0RVQUxfQUJJCiAgIC8vIFdoZW4gdGhlIGR1YWwgQUJJIGlzIGVuYWJsZWQgX190aHJvd19p b3NfZmFpbHVyZSgpIGlzIGRlZmluZWQgaW4KQEAgLTgyLDcgKzg1LDcgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgfQogI2VuZGlmIC8vIF9fY3BwX3J0dGkKIAot I2Vsc2UgLy8gISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKKyNlbGlmICEgX0dMSUJDWFhfVVNF X0NYWDExX0FCSQogCiAgIHZvaWQKICAgX190aHJvd19pb3NfZmFpbHVyZShjb25zdCBjaGFy KiBfX3MgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCkBAIC05Miw3ICs5NSw5IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgIF9fdGhyb3dfaW9zX2ZhaWx1cmUoY29u c3QgY2hhciogc3RyLCBpbnQpCiAgIHsgX190aHJvd19pb3NfZmFpbHVyZShzdHIpOyB9CiAK LSNlbmRpZiAvLyBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKKyNlbmRpZiAvLyAhIF9HTElCQ1hY X1VTRV9DWFgxMV9BQkkKIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8v IG5hbWVzcGFjZQorCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEg X0dMSUJDWFhfVVNFX0RVQUxfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2Mr Kzk4L2lzdHJlYW0tc3RyaW5nLmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9pc3RyZWFt LXN0cmluZy5jYwppbmRleCA0ODU5OTg3ZmNjMi4uYjY0MzQ3Zjc5NmUgMTAwNjQ0Ci0tLSBh L2xpYnN0ZGMrKy12My9zcmMvYysrOTgvaXN0cmVhbS1zdHJpbmcuY2MKKysrIGIvbGlic3Rk YysrLXYzL3NyYy9jKys5OC9pc3RyZWFtLXN0cmluZy5jYwpAQCAtMzEsNiArMzEsMTYgQEAK IC8vIGJ5IGFub3RoZXIgZmlsZSB3aGljaCBkZWZpbmVzIF9HTElCQ1hYX1VTRV9DWFgxMV9B Qkk9MC4KICMgZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMQogI2VuZGlmCisKKyNp ZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjIGRlZmluZSBfR0xJQkNYWF9CVUlMRF9DWFgx MV9BQkkgMQorI2Vsc2UKKyMgZGVmaW5lIF9HTElCQ1hYX0JVSUxEX0NYWDExX0FCSSAwCisj ZW5kaWYKKworI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+CisKKyNpZiBfR0xJQkNYWF9C VUlMRF9DWFgxMV9BQkkgPT0gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogI2luY2x1ZGUgPGlz dHJlYW0+CiAjaW5jbHVkZSA8c3RyaW5nPgogCkBAIC0yODksMyArMjk5LDQgQEAgX0dMSUJD WFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9W RVJTSU9OCiB9IC8vIG5hbWVzcGFjZQorI2VuZGlmIC8vIF9HTElCQ1hYX0JVSUxEX0NYWDEx X0FCSSA9PSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKyst djMvc3JjL2MrKzk4L2xvY2FsZV9mYWNldHMuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4 L2xvY2FsZV9mYWNldHMuY2MKaW5kZXggYzBiYjdmZDE4MWQuLjdhOTI5ZDUxYmU0IDEwMDY0 NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2xvY2FsZV9mYWNldHMuY2MKKysrIGIv bGlic3RkYysrLXYzL3NyYy9jKys5OC9sb2NhbGVfZmFjZXRzLmNjCkBAIC0xMjUsNiArMTI1 LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICByZXR1cm4gX190 ZXN0OwogICB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgYm9vbAogICBf X3ZlcmlmeV9ncm91cGluZyhjb25zdCBjaGFyKiBfX2dyb3VwaW5nLCBzaXplX3QgX19ncm91 cGluZ19zaXplLAogCQkgICAgY29uc3Qgc3RyaW5nJiBfX2dyb3VwaW5nX3RtcCkgdGhyb3co KQpAQCAtMTMzLDYgKzEzNCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19ncm91cGluZ190bXAuY19z dHIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2dyb3VwaW5nX3Rt cC5zaXplKCkpOwogICB9CisjZW5kaWYKIAogICBuYW1lc3BhY2UKICAgewpkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9zdGRleGNlcHQuY2MgYi9saWJzdGRjKystdjMv c3JjL2MrKzk4L3N0ZGV4Y2VwdC5jYwppbmRleCBlOGM5MWY1YzFjZC4uZTgyNTU0ZTBhZWMg MTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvc3RkZXhjZXB0LmNjCisrKyBi L2xpYnN0ZGMrKy12My9zcmMvYysrOTgvc3RkZXhjZXB0LmNjCkBAIC0zNSw4ICszNSwxMCBA QCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKICAgbG9naWNfZXJyb3I6OmxvZ2ljX2Vycm9yKGNvbnN0IHN0cmluZyYgX19hcmcp CiAgIDogZXhjZXB0aW9uKCksIF9NX21zZyhfX2FyZykgeyB9CisjZW5kaWYKIAogICBsb2dp Y19lcnJvcjo6fmxvZ2ljX2Vycm9yKCkgX0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCkBA IC00NCwyOCArNDYsMzggQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAg bG9naWNfZXJyb3I6OndoYXQoKSBjb25zdCBfR0xJQkNYWF9VU0VfTk9FWENFUFQKICAgeyBy ZXR1cm4gX01fbXNnLmNfc3RyKCk7IH0KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQogICBkb21haW5fZXJyb3I6OmRvbWFpbl9lcnJvcihjb25zdCBzdHJpbmcmIF9fYXJnKQog ICA6IGxvZ2ljX2Vycm9yKF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIGRvbWFpbl9lcnJvcjo6 fmRvbWFpbl9lcnJvcigpIF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0KIAorI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQogICBpbnZhbGlkX2FyZ3VtZW50OjppbnZhbGlkX2FyZ3Vt ZW50KGNvbnN0IHN0cmluZyYgX19hcmcpCiAgIDogbG9naWNfZXJyb3IoX19hcmcpIHsgfQor I2VuZGlmCiAKICAgaW52YWxpZF9hcmd1bWVudDo6fmludmFsaWRfYXJndW1lbnQoKSBfR0xJ QkNYWF9VU0VfTk9FWENFUFQgeyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkK ICAgbGVuZ3RoX2Vycm9yOjpsZW5ndGhfZXJyb3IoY29uc3Qgc3RyaW5nJiBfX2FyZykKICAg OiBsb2dpY19lcnJvcihfX2FyZykgeyB9CisjZW5kaWYKIAogICBsZW5ndGhfZXJyb3I6On5s ZW5ndGhfZXJyb3IoKSBfR0xJQkNYWF9VU0VfTk9FWENFUFQgeyB9CiAKKyNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKICAgb3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UoY29uc3Qg c3RyaW5nJiBfX2FyZykKICAgOiBsb2dpY19lcnJvcihfX2FyZykgeyB9CisjZW5kaWYKIAog ICBvdXRfb2ZfcmFuZ2U6On5vdXRfb2ZfcmFuZ2UoKSBfR0xJQkNYWF9VU0VfTk9FWENFUFQg eyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgcnVudGltZV9lcnJvcjo6 cnVudGltZV9lcnJvcihjb25zdCBzdHJpbmcmIF9fYXJnKQogICA6IGV4Y2VwdGlvbigpLCBf TV9tc2coX19hcmcpIHsgfQorI2VuZGlmCiAKICAgcnVudGltZV9lcnJvcjo6fnJ1bnRpbWVf ZXJyb3IoKSBfR0xJQkNYWF9VU0VfTk9FWENFUFQgeyB9CiAKQEAgLTczLDE4ICs4NSwyNCBA QCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICBydW50aW1lX2Vycm9yOjp3 aGF0KCkgY29uc3QgX0dMSUJDWFhfVVNFX05PRVhDRVBUCiAgIHsgcmV0dXJuIF9NX21zZy5j X3N0cigpOyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgcmFuZ2VfZXJy b3I6OnJhbmdlX2Vycm9yKGNvbnN0IHN0cmluZyYgX19hcmcpCiAgIDogcnVudGltZV9lcnJv cihfX2FyZykgeyB9CisjZW5kaWYKIAogICByYW5nZV9lcnJvcjo6fnJhbmdlX2Vycm9yKCkg X0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJCiAgIG92ZXJmbG93X2Vycm9yOjpvdmVyZmxvd19lcnJvcihjb25zdCBzdHJpbmcmIF9f YXJnKQogICA6IHJ1bnRpbWVfZXJyb3IoX19hcmcpIHsgfQorI2VuZGlmCiAKICAgb3ZlcmZs b3dfZXJyb3I6On5vdmVyZmxvd19lcnJvcigpIF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0K IAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICB1bmRlcmZsb3dfZXJyb3I6OnVu ZGVyZmxvd19lcnJvcihjb25zdCBzdHJpbmcmIF9fYXJnKQogICA6IHJ1bnRpbWVfZXJyb3Io X19hcmcpIHsgfQorI2VuZGlmCiAKICAgdW5kZXJmbG93X2Vycm9yOjp+dW5kZXJmbG93X2Vy cm9yKCkgX0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCg== --------------SIryYXPFRKGdNJLuCPP25Nxh--