From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id 177873858D37; Sat, 7 Oct 2023 12:25:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 177873858D37 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-x32e.google.com with SMTP id 5b1f17b1804b1-4065f29e933so29258005e9.1; Sat, 07 Oct 2023 05:25:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696681504; x=1697286304; darn=gcc.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=HgK9k8tucCM9PNR05Pu7FtBoQh44VSQzG8/05RKB/jw=; b=YCPaB/6hr6tviRzHdtafWSunebbx6r90BKtRDKtWkOF9D52LaxeQRvm9kBtyCszge/ Z36RysDE0ygu0qzdSiZLlnNTAZiXcAn9QZqGDcCT4L4gwh69phkpIf8N/gqJvz3sXOLM 6ooVyZVHrdTA4zmAclLui5RlkkEGc2k3yKIc5ig0Jm6JqESw7tHGvixYcQVR+pkgeWrC MyH4D6OQ2ECbJcajnLsrbkfDJzxvHG2Xc+etIzIgAxP0z7ol4o81lZJG6Y3vdnGafURJ JGgrc0LMYgHEVLrL+mCg2ZpNoKg2d2j9B1eYXwcCx9/b4ZnV0X0GPAJ4OELwlQVYDZdG zMRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696681504; x=1697286304; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=HgK9k8tucCM9PNR05Pu7FtBoQh44VSQzG8/05RKB/jw=; b=DTIs2Uw6gTqSr+bGNAuh2WEBcDbDY2WnJbJfHO1zxgVlbFHXMnloekOIQqnwFl6DFQ lp2944tJh66bhVDzkLnw4JghvFpKmR37YDao3/I7/GmN/0hdALGpRM2uR1DIFQ+rZNKB GUZ+kOrkAxO0SdWrMRpJf+7GT9fkXWEyF89N7yf3MrPeXPAA/Ua4ZP9Djc+Zff5P2jqW BtlLGs0UEnkFnz7RMlzmvrnVJ2EjO8YQtHyYLjeiIKGLoA/xQehhlCDZ7DPJ680yB7O5 TiNi0rS/APGDS2nP1JPhlGbtHE4jk4C4kYURj6KzXAqsLsNwdyI+JOC/j0q9LAEWoNRa p37w== X-Gm-Message-State: AOJu0YyAnqrIUxvB9XSZMzQ/gF5YraWltzNGlVDdjErxHgWbO2foKa8G aPaKaU63/ECuROLU5+xFbEw= X-Google-Smtp-Source: AGHT+IFwmrv738xfzwDDFMAfVhVVL03mNJAlZXRLQVljVNGWBp6KmsDbJcplcXGQxN/5aCuY1D/Zyg== X-Received: by 2002:a05:600c:2116:b0:406:53c0:3c71 with SMTP id u22-20020a05600c211600b0040653c03c71mr9365895wml.37.1696681503341; Sat, 07 Oct 2023 05:25:03 -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 z18-20020a05600c221200b0040607da271asm8301873wml.31.2023.10.07.05.25.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 07 Oct 2023 05:25:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------K7vDB54S6YaD31svKh0Xth0U" Message-ID: Date: Sat, 7 Oct 2023 14:25:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] sso-string@gnu-versioned-namespace [PR83077] To: Jonathan Wakely Cc: Jonathan Wakely , libstdc++ , gcc-patches References: <1dc681f4-41b7-d171-02ac-b0194617bdee@gmail.com> <91dc6383-6bff-ce6c-b24d-81cd2ab2dce8@gmail.com> Content-Language: en-US From: =?UTF-8?Q?Fran=C3=A7ois_Dumont?= 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. --------------K7vDB54S6YaD31svKh0Xth0U Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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>): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](std::num_put>): 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>): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](time_put_byname>): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](__ctype_abstract_base): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](ctype_byname): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__codecvt_abstract_base): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](codecvt_byname): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](use_facet>(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>(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. > --------------K7vDB54S6YaD31svKh0Xth0U 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 dWRlLm00CkBAIC00ODc1LDEzICs0ODc1LDE3IEBAIGRubAogQUNfREVGVU4oW0dMSUJDWFhf RU5BQkxFX0xJQlNURENYWF9EVUFMX0FCSV0sIFsKICAgR0xJQkNYWF9FTkFCTEUobGlic3Rk Y3h4LWR1YWwtYWJpLCQxLCxbc3VwcG9ydCB0d28gdmVyc2lvbnMgb2Ygc3RkOjpzdHJpbmdd KQogICBpZiB0ZXN0IHgkZW5hYmxlX3N5bXZlcnMgPSB4Z251LXZlcnNpb25lZC1uYW1lc3Bh Y2U7IHRoZW4KLSAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNlIGlzIGluY29tcGF0aWJs ZSB3aXRoIHRoZSBkdWFsIEFCSS4KKyAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNlIGlz IGluY29tcGF0aWJsZSB3aXRoIHRoZSBkdWFsIEFCSS4uLgorICAgIEFDX01TR19OT1RJQ0Uo W2R1YWwgQUJJIGlzIGRpc2FibGVkXSkKICAgICBlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJp PSJubyIKLSAgZmkKKyAgICAjIC4uLiBhbmQgdXNlIHRoZSBjeHgxMSBvbmUuCisgICAgZGVm YXVsdF9saWJzdGRjeHhfYWJpPSJuZXciCisgIGVsc2UKICAgICBpZiB0ZXN0IHgiJGVuYWJs ZV9saWJzdGRjeHhfZHVhbF9hYmkiICE9IHh5ZXM7IHRoZW4KICAgICAgIEFDX01TR19OT1RJ Q0UoW2R1YWwgQUJJIGlzIGRpc2FibGVkXSkKICAgICAgIGRlZmF1bHRfbGlic3RkY3h4X2Fi aT0iZ2NjNC1jb21wYXRpYmxlIgogICAgIGZpCisgIGZpCiAgIEdMSUJDWFhfQ09ORElUSU9O QUwoRU5BQkxFX0RVQUxfQUJJLCB0ZXN0ICRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpID0g eWVzKQogXSkKIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJh Z29uZmx5L21vbmV0YXJ5X21lbWJlcnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2Fs ZS9kcmFnb25mbHkvbW9uZXRhcnlfbWVtYmVycy5jYwppbmRleCBmNTM0YmJlNGFlYi4uM2Y5 NmYyYjlmMTEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2RyYWdv bmZseS9tb25ldGFyeV9tZW1iZXJzLmNjCisrKyBiL2xpYnN0ZGMrKy12My9jb25maWcvbG9j YWxlL2RyYWdvbmZseS9tb25ldGFyeV9tZW1iZXJzLmNjCkBAIC0zOSw3ICszOSw3IEBAIF9H TElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIC8vIFRoaXMgZmlsZSBtaWdodCBi ZSBjb21waWxlZCB0d2ljZSwgYnV0IHdlIG9ubHkgd2FudCB0byBkZWZpbmUgdGhlIG1lbWJl cnMKIC8vIG9mIG1vbmV5X2Jhc2Ugb25jZS4KLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVB TF9BQkkKIAogICAvLyBDb25zdHJ1Y3QgYW5kIHJldHVybiB2YWxpZCBwYXR0ZXJuIGNvbnNp c3Rpbmcgb2Ygc29tZSBjb21iaW5hdGlvbiBvZjoKICAgLy8gc3BhY2Ugbm9uZSBzeW1ib2wg c2lnbiB2YWx1ZQpAQCAtMjA3LDcgKzIwNyw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFD RV9WRVJTSU9OCiAgICAgICB9CiAgICAgcmV0dXJuIF9fcmV0OwogICB9Ci0jZW5kaWYKKyNl bmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVB TF9BQkkKIAogICB0ZW1wbGF0ZTw+CiAgICAgdm9pZApkaWZmIC0tZ2l0IGEvbGlic3RkYysr LXYzL2NvbmZpZy9sb2NhbGUvZ2VuZXJpYy9tb25ldGFyeV9tZW1iZXJzLmNjIGIvbGlic3Rk YysrLXYzL2NvbmZpZy9sb2NhbGUvZ2VuZXJpYy9tb25ldGFyeV9tZW1iZXJzLmNjCmluZGV4 IDJjMWNmZWZmMDk0Li5hMWFlMTM2YmUwNCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2Nv bmZpZy9sb2NhbGUvZ2VuZXJpYy9tb25ldGFyeV9tZW1iZXJzLmNjCisrKyBiL2xpYnN0ZGMr Ky12My9jb25maWcvbG9jYWxlL2dlbmVyaWMvbW9uZXRhcnlfbWVtYmVycy5jYwpAQCAtMzYs NyArMzYsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCiAvLyBUaGlz IGZpbGUgbWlnaHQgYmUgY29tcGlsZWQgdHdpY2UsIGJ1dCB3ZSBvbmx5IHdhbnQgdG8gZGVm aW5lIHRoZSBtZW1iZXJzCiAvLyBvZiBtb25leV9iYXNlIG9uY2UuCi0jaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dM SUJDWFhfVVNFX0RVQUxfQUJJCiAKICAgLy8gQ29uc3RydWN0IGFuZCByZXR1cm4gdmFsaWQg cGF0dGVybiBjb25zaXN0aW5nIG9mIHNvbWUgY29tYmluYXRpb24gb2Y6CiAgIC8vIHNwYWNl IG5vbmUgc3ltYm9sIHNpZ24gdmFsdWUKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9jb25m aWcvbG9jYWxlL2dudS9tb25ldGFyeV9tZW1iZXJzLmNjIGIvbGlic3RkYysrLXYzL2NvbmZp Zy9sb2NhbGUvZ251L21vbmV0YXJ5X21lbWJlcnMuY2MKaW5kZXggMWY0NmVhMmY1M2YuLjg3 NTYxYmNjODIxIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nbnUv bW9uZXRhcnlfbWVtYmVycy5jYworKysgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9n bnUvbW9uZXRhcnlfbWVtYmVycy5jYwpAQCAtMzcsNyArMzcsNyBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogCiAvLyBUaGlzIGZpbGUgbWlnaHQgYmUgY29tcGlsZWQg dHdpY2UsIGJ1dCB3ZSBvbmx5IHdhbnQgdG8gZGVmaW5lIHRoZSBtZW1iZXJzCiAvLyBvZiBt b25leV9iYXNlIG9uY2UuCi0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAKICAg Ly8gQ29uc3RydWN0IGFuZCByZXR1cm4gdmFsaWQgcGF0dGVybiBjb25zaXN0aW5nIG9mIHNv bWUgY29tYmluYXRpb24gb2Y6CiAgIC8vIHNwYWNlIG5vbmUgc3ltYm9sIHNpZ24gdmFsdWUK QEAgLTIwNSw3ICsyMDUsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog ICAgICAgfQogICAgIHJldHVybiBfX3JldDsKICAgfQotI2VuZGlmCisjZW5kaWYgLy8gISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAKICAg ZXh0ZXJuIGNoYXIgX19uYXJyb3dfbXVsdGlieXRlX2NoYXJzKGNvbnN0IGNoYXIqIHMsIF9f bG9jYWxlX3QgY2xvYyk7CiAKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9jb25maWcvbG9j YWxlL2dudS9udW1lcmljX21lbWJlcnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2Fs ZS9nbnUvbnVtZXJpY19tZW1iZXJzLmNjCmluZGV4IDIyMGEwZjhjNTEwLi5jYjgwOTVlNmFj NyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ251L251bWVyaWNf bWVtYmVycy5jYworKysgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nbnUvbnVtZXJp Y19tZW1iZXJzLmNjCkBAIC0zOSw3ICszOSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFD RV9WRVJTSU9OCiAgIGV4dGVybiBjaGFyIF9fbmFycm93X211bHRpYnl0ZV9jaGFycyhjb25z dCBjaGFyKiBzLCBfX2xvY2FsZV90IGNsb2MpOwogCiAvLyBUaGlzIGZpbGUgbWlnaHQgYmUg Y29tcGlsZWQgdHdpY2UsIGJ1dCB3ZSBvbmx5IHdhbnQgdG8gZGVmaW5lIHRoaXMgb25jZS4K LSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgY2hhcgogICBfX25hcnJvd19t dWx0aWJ5dGVfY2hhcnMoY29uc3QgY2hhciogcywgX19sb2NhbGVfdCBjbG9jKQogICB7CkBA IC04NCw3ICs4NCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAg ICB9CiAgICAgcmV0dXJuICdcMCc7CiAgIH0KLSNlbmRpZgorI2VuZGlmIC8vICEgX0dMSUJD WFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogCiAgIHRlbXBs YXRlPD4KICAgICB2b2lkCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvY29uZmlndXJlIGIv bGlic3RkYysrLXYzL2NvbmZpZ3VyZQppbmRleCAxM2ZjMDNiMmEzZi4uNThlMDFmN2QxNmYg MTAwNzU1Ci0tLSBhL2xpYnN0ZGMrKy12My9jb25maWd1cmUKKysrIGIvbGlic3RkYysrLXYz L2NvbmZpZ3VyZQpAQCAtNzA3MDIsMTQgKzcwNzAyLDE5IEBAIGZpCiAKIAogICBpZiB0ZXN0 IHgkZW5hYmxlX3N5bXZlcnMgPSB4Z251LXZlcnNpb25lZC1uYW1lc3BhY2U7IHRoZW4KLSAg ICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNlIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBk dWFsIEFCSS4KKyAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNlIGlzIGluY29tcGF0aWJs ZSB3aXRoIHRoZSBkdWFsIEFCSS4uLgorICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4mNQorJGFzX2VjaG8gIiRh c19tZTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4mNjt9CiAgICAgZW5hYmxlX2xpYnN0ZGN4 eF9kdWFsX2FiaT0ibm8iCi0gIGZpCisgICAgIyAuLi4gYW5kIHVzZSB0aGUgY3h4MTEgb25l LgorICAgIGRlZmF1bHRfbGlic3RkY3h4X2FiaT0ibmV3IgorICBlbHNlCiAgICAgaWYgdGVz dCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4eWVzOyB0aGVuCiAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGR1YWwgQUJJIGlzIGRp c2FibGVkIiA+JjUKICRhc19lY2hvICIkYXNfbWU6IGR1YWwgQUJJIGlzIGRpc2FibGVkIiA+ JjY7fQogICAgICAgZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGlibGUiCiAg ICAgZmkKKyAgZmkKIAogCiAKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2Jp dHMvYysrY29uZmlnIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9jKytjb25maWcKaW5k ZXggNDEwYzEzNmUxYjEuLjMzNjcxNzljMWMzIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv aW5jbHVkZS9iaXRzL2MrK2NvbmZpZworKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRz L2MrK2NvbmZpZwpAQCAtMzM3LDI2ICszMzcsNiBAQCBuYW1lc3BhY2Ugc3RkCiAjZGVmaW5l IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICNlbmRpZgogCi0jaWYgX0dMSUJDWFhfVVNFX0NY WDExX0FCSQotbmFtZXNwYWNlIHN0ZAotewotICBpbmxpbmUgbmFtZXNwYWNlIF9fY3h4MTEg X19hdHRyaWJ1dGVfXygoX19hYmlfdGFnX18gKCJjeHgxMSIpKSkgeyB9Ci19Ci1uYW1lc3Bh Y2UgX19nbnVfY3h4Ci17Ci0gIGlubGluZSBuYW1lc3BhY2UgX19jeHgxMSBfX2F0dHJpYnV0 ZV9fKChfX2FiaV90YWdfXyAoImN4eDExIikpKSB7IH0KLX0KLSMgZGVmaW5lIF9HTElCQ1hY X05BTUVTUEFDRV9DWFgxMSBfX2N4eDExOjoKLSMgZGVmaW5lIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9DWFgxMSBuYW1lc3BhY2UgX19jeHgxMSB7Ci0jIGRlZmluZSBfR0xJQkNYWF9F TkRfTkFNRVNQQUNFX0NYWDExIH0KLSMgZGVmaW5lIF9HTElCQ1hYX0RFRkFVTFRfQUJJX1RB RyBfR0xJQkNYWF9BQklfVEFHX0NYWDExCi0jZWxzZQotIyBkZWZpbmUgX0dMSUJDWFhfTkFN RVNQQUNFX0NYWDExCi0jIGRlZmluZSBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfQ1hYMTEK LSMgZGVmaW5lIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfQ1hYMTEKLSMgZGVmaW5lIF9HTElC Q1hYX0RFRkFVTFRfQUJJX1RBRwotI2VuZGlmCi0KIC8vIE5vbi16ZXJvIGlmIGlubGluZSBu YW1lc3BhY2VzIGFyZSB1c2VkIGZvciB2ZXJzaW9uaW5nIHRoZSBlbnRpcmUgbGlicmFyeS4K ICNkZWZpbmUgX0dMSUJDWFhfSU5MSU5FX1ZFUlNJT04gCiAKQEAgLTQxNSw3ICszOTUsNyBA QCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAvLyBOb24taW5saW5lIG5h bWVzcGFjZSBmb3IgY29tcG9uZW50cyByZXBsYWNlZCBieSBhbHRlcm5hdGVzIGluIGFjdGl2 ZSBtb2RlLgogICBuYW1lc3BhY2UgX19jeHgxOTk4CiAgIHsKLSMgaWYgX0dMSUJDWFhfVVNF X0NYWDExX0FCSQorIyBpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJICYmICEgX0dMSUJDWFhf SU5MSU5FX1ZFUlNJT04KICAgaW5saW5lIG5hbWVzcGFjZSBfX2N4eDExIF9fYXR0cmlidXRl X18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQogIyBlbmRpZgogICB9CkBAIC00NDUs NiArNDI1LDI2IEBAIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogIyBlbmRpZgog I2VuZGlmCiAKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJICYmICEgX0dMSUJDWFhfSU5M SU5FX1ZFUlNJT04KK25hbWVzcGFjZSBzdGQKK3sKKyAgaW5saW5lIG5hbWVzcGFjZSBfX2N4 eDExIF9fYXR0cmlidXRlX18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQorfQorbmFt ZXNwYWNlIF9fZ251X2N4eAoreworICBpbmxpbmUgbmFtZXNwYWNlIF9fY3h4MTEgX19hdHRy aWJ1dGVfXygoX19hYmlfdGFnX18gKCJjeHgxMSIpKSkgeyB9Cit9CisjIGRlZmluZSBfR0xJ QkNYWF9OQU1FU1BBQ0VfQ1hYMTEgX19jeHgxMTo6CisjIGRlZmluZSBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfQ1hYMTEgbmFtZXNwYWNlIF9fY3h4MTEgeworIyBkZWZpbmUgX0dMSUJD WFhfRU5EX05BTUVTUEFDRV9DWFgxMSB9CisjIGRlZmluZSBfR0xJQkNYWF9ERUZBVUxUX0FC SV9UQUcgX0dMSUJDWFhfQUJJX1RBR19DWFgxMQorI2Vsc2UKKyMgZGVmaW5lIF9HTElCQ1hY X05BTUVTUEFDRV9DWFgxMQorIyBkZWZpbmUgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NY WDExCisjIGRlZmluZSBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCisjIGRlZmluZSBf R0xJQkNYWF9ERUZBVUxUX0FCSV9UQUcKKyNlbmRpZgorCiAvLyBNYWNyb3MgZm9yIG5hbWVz cGFjZSBzY29wZS4gRWl0aGVyIG5hbWVzcGFjZSBzdGQ6OiBvciB0aGUgbmFtZQogLy8gb2Yg c29tZSBuZXN0ZWQgbmFtZXNwYWNlIHdpdGhpbiBpdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBh Y3RpdmUgbW9kZS4KIC8vIF9HTElCQ1hYX1NURF9BCmRpZmYgLS1naXQgYS9saWJzdGRjKyst djMvaW5jbHVkZS9iaXRzL2Nvd19zdHJpbmcuaCBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2Jp dHMvY293X3N0cmluZy5oCmluZGV4IDU0MTFkZmUzMmE5Li43MDJkNTlmYWVmZSAxMDA2NDQK LS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9jb3dfc3RyaW5nLmgKKysrIGIvbGli c3RkYysrLXYzL2luY2x1ZGUvYml0cy9jb3dfc3RyaW5nLmgKQEAgLTMyLDEzICszMiwxNSBA QAogI2lmbmRlZiBfQ09XX1NUUklOR19ICiAjZGVmaW5lIF9DT1dfU1RSSU5HX0ggMQogCi0j aWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCi0KICNpbmNsdWRlIDxleHQvYXRvbWljaXR5 Lmg+IC8vIF9BdG9taWNfd29yZCwgX19pc19zaW5nbGVfdGhyZWFkZWQKIAogI2RlZmluZSBf X2dsaWJjeHhfd2FudF9jb25zdGV4cHJfc3RyaW5nCiAjaW5jbHVkZSA8Yml0cy92ZXJzaW9u Lmg+CiAKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjIGRlZmluZSBiYXNpY19zdHJp bmcgX19zdGRfY293X3N0cmluZworI2VuZGlmCisKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhf VklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJ T04KQEAgLTgzMCw2ICs4MzIsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lP TgogICAgICAgZW5kKCkgY29uc3QgX0dMSUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJu IGNvbnN0X2l0ZXJhdG9yKF9NX2RhdGEoKSArIHRoaXMtPnNpemUoKSk7IH0KIAorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgUmV0dXJucyBh IHJlYWQvd3JpdGUgcmV2ZXJzZSBpdGVyYXRvciB0aGF0IHBvaW50cyB0byB0aGUgbGFzdAog ICAgICAgICogIGNoYXJhY3RlciBpbiB0aGUgJXN0cmluZy4gIEl0ZXJhdGlvbiBpcyBkb25l IGluIHJldmVyc2UgZWxlbWVudApAQCAtOTAxLDYgKzkwNCw3IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBjcmVuZCgpIGNvbnN0IG5vZXhjZXB0CiAgICAg ICB7IHJldHVybiBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yKHRoaXMtPmJlZ2luKCkpOyB9CiAj ZW5kaWYKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIAogICAgIHB1Ymxp YzoKICAgICAgIC8vIENhcGFjaXR5OgpAQCAtOTI4LDYgKzkzMiw3IEBAIF9HTElCQ1hYX0JF R0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBtYXhfc2l6ZSgpIGNvbnN0IF9HTElCQ1hY X05PRVhDRVBUCiAgICAgICB7IHJldHVybiBfUmVwOjpfU19tYXhfc2l6ZTsgfQogCisjaWYg ISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYg IFJlc2l6ZXMgdGhlICVzdHJpbmcgdG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgY2hhcmFj dGVycy4KICAgICAgICAqICBAcGFyYW0gIF9fbiAgTnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhl ICVzdHJpbmcgc2hvdWxkIGNvbnRhaW4uCkBAIC0xMDA3LDYgKzEwMTIsNyBAQCBfR0xJQkNY WF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCV9fcmVzaXplX2FuZF9vdmVyd3JpdGUoc2l6 ZV90eXBlIF9fbiwgX09wZXJhdGlvbiBfX29wKTsKICNlbmRpZgogCisjZW5kaWYgLy8gISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgICAgICAvKioKICAgICAgICAqICBSZXR1cm5zIHRo ZSB0b3RhbCBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IHRoZSAlc3RyaW5nIGNhbiBob2xk CiAgICAgICAgKiAgYmVmb3JlIG5lZWRpbmcgdG8gYWxsb2NhdGUgbW9yZSBtZW1vcnkuCkBA IC0xMDE1LDYgKzEwMjEsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog ICAgICAgY2FwYWNpdHkoKSBjb25zdCBfR0xJQkNYWF9OT0VYQ0VQVAogICAgICAgeyByZXR1 cm4gX01fcmVwKCktPl9NX2NhcGFjaXR5OyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKICAgICAgIC8qKgogICAgICAgICogIEBicmllZiAgQXR0ZW1wdCB0byBwcmVhbGxv Y2F0ZSBlbm91Z2ggbWVtb3J5IGZvciBzcGVjaWZpZWQgbnVtYmVyIG9mCiAgICAgICAgKiAg ICAgICAgICBjaGFyYWN0ZXJzLgpAQCAtMTA2Myw2ICsxMDcwLDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGNsZWFyKCkKICAgICAgIHsgX01fbXV0YXRl KDAsIHRoaXMtPnNpemUoKSwgMCk7IH0KICNlbmRpZgorI2VuZGlmIC8vICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSQogCiAgICAgICAvKioKICAgICAgICAqICBSZXR1cm5zIHRydWUgaWYg dGhlICVzdHJpbmcgaXMgZW1wdHkuICBFcXVpdmFsZW50IHRvCkBAIC0xMDcyLDYgKzEwODAs NyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgZW1wdHkoKSBj b25zdCBfR0xJQkNYWF9OT0VYQ0VQVAogICAgICAgeyByZXR1cm4gdGhpcy0+c2l6ZSgpID09 IDA7IH0KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLy8gRWxlbWVu dCBhY2Nlc3M6CiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYgIFN1YnNjcmlwdCBhY2Nl c3MgdG8gdGhlIGRhdGEgY29udGFpbmVkIGluIHRoZSAlc3RyaW5nLgpAQCAtMTM4Miw2ICsx MzkxLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAl0cmFpdHNfdHlw ZTo6YXNzaWduKF9NX2RhdGEoKVt0aGlzLT5zaXplKCldLCBfX2MpOwogCV9NX3JlcCgpLT5f TV9zZXRfbGVuZ3RoX2FuZF9zaGFyYWJsZShfX2xlbik7CiAgICAgICB9CisjZW5kaWYgLy8g ISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICAgICAgIC8qKgogICAgICAgICogIEBicmll ZiAgU2V0IHZhbHVlIHRvIGNvbnRlbnRzIG9mIGFub3RoZXIgc3RyaW5nLgpAQCAtMTUyNiw2 ICsxNTM2LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAl9CiAjZW5k aWYgLy8gQysrMTcKIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoq CiAgICAgICAgKiAgQGJyaWVmICBJbnNlcnQgbXVsdGlwbGUgY2hhcmFjdGVycy4KICAgICAg ICAqICBAcGFyYW0gX19wICBJdGVyYXRvciByZWZlcmVuY2luZyBsb2NhdGlvbiBpbiBzdHJp bmcgdG8gaW5zZXJ0IGF0LgpAQCAtMjE0NCw2ICsyMTU1LDcgQEAgX0dMSUJDWFhfQkVHSU5f TkFNRVNQQUNFX1ZFUlNJT04KIAkgIHJldHVybiB0aGlzLT5yZXBsYWNlKF9faTEgLSBiZWdp bigpLCBfX2kyIC0gX19pMSwgX19zdik7CiAJfQogI2VuZGlmIC8vIEMrKzE3CisjZW5kaWYg Ly8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICAgICBwcml2YXRlOgogICAgICAgdGVt cGxhdGU8Y2xhc3MgX0ludGVnZXI+CkBAIC0yMjE1LDYgKzIyMjcsNyBAQCBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCiAgICAgcHVibGljOgogCisjaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYgIENvcHkgc3Vi c3RyaW5nIGludG8gQyBzdHJpbmcuCiAgICAgICAgKiAgQHBhcmFtIF9fcyAgQyBzdHJpbmcg dG8gY29weSB2YWx1ZSBpbnRvLgpAQCAtMjIyOSw2ICsyMjQyLDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgICovCiAgICAgICBzaXplX3R5cGUKICAgICAg IGNvcHkoX0NoYXJUKiBfX3MsIHNpemVfdHlwZSBfX24sIHNpemVfdHlwZSBfX3BvcyA9IDAp IGNvbnN0OworI2VuZGlmCiAKICAgICAgIC8qKgogICAgICAgICogIEBicmllZiAgU3dhcCBj b250ZW50cyB3aXRoIGFub3RoZXIgc3RyaW5nLgpAQCAtMjI4Niw2ICsyMzAwLDcgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGdldF9hbGxvY2F0b3IoKSBj b25zdCBfR0xJQkNYWF9OT0VYQ0VQVAogICAgICAgeyByZXR1cm4gX01fZGF0YXBsdXM7IH0K IAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAg QGJyaWVmICBGaW5kIHBvc2l0aW9uIG9mIGEgQyBzdWJzdHJpbmcuCiAgICAgICAgKiAgQHBh cmFtIF9fcyAgQyBzdHJpbmcgdG8gbG9jYXRlLgpAQCAtMzA5MSw2ICszMTA2LDcgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGNvbnRhaW5zKGNvbnN0IF9D aGFyVCogX194KSBjb25zdCBub2V4Y2VwdAogICAgICAgeyByZXR1cm4gX19zdl90eXBlKHRo aXMtPmRhdGEoKSwgdGhpcy0+c2l6ZSgpKS5jb250YWlucyhfX3gpOyB9CiAjZW5kaWYgLy8g QysrMjMKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIAogIyBpZmRlZiBf R0xJQkNYWF9UTV9UU19JTlRFUk5BTAogICAgICAgZnJpZW5kIHZvaWQKQEAgLTMyOTQsNiAr MzMxMCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJfQogICAgICB9 CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgdGVtcGxhdGU8dHlwZW5hbWUg X0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgYmFzaWNf c3RyaW5nPF9DaGFyVCwgX1RyYWl0cywgX0FsbG9jPiYKICAgICBiYXNpY19zdHJpbmc8X0No YXJULCBfVHJhaXRzLCBfQWxsb2M+OjoKQEAgLTM0NTcsNiArMzQ3NCw3IEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJICAgcmV0dXJuIF9NX3JlcGxhY2Vfc2FmZShf X3BvcywgX19uMSwgX190bXAuX01fZGF0YSgpLCBfX24yKTsKIAkgfQogICAgICB9CisjZW5k aWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICAgdGVtcGxhdGU8dHlwZW5hbWUg X0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgdm9pZApA QCAtMzUxOCw2ICszNTM2LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgICAgIF9NX3JlcCgpLT5fTV9zZXRfbGVuZ3RoX2FuZF9zaGFyYWJsZShfX25ld19zaXpl KTsKICAgICB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgdGVtcGxhdGU8 dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAg ICAgdm9pZAogICAgIGJhc2ljX3N0cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9BbGxvYz46OgpA QCAtMzU0Myw2ICszNTYyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgICAgIF9NX3JlcCgpLT5fTV9kaXNwb3NlKF9fYSk7CiAgICAgICBfTV9kYXRhKF9fdG1w KTsKICAgICB9CisjZW5kaWYKIAogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfQ2hhclQsIHR5cGVu YW1lIF9UcmFpdHMsIHR5cGVuYW1lIF9BbGxvYz4KICAgICB2b2lkCkBAIC0zNjY2LDYgKzM2 ODYsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgcmV0dXJu IF9fci0+X01fcmVmZGF0YSgpOwogICAgIH0KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfQ2hhclQsIHR5cGVuYW1lIF9UcmFpdHMsIHR5 cGVuYW1lIF9BbGxvYz4KICAgICB2b2lkCiAgICAgYmFzaWNfc3RyaW5nPF9DaGFyVCwgX1Ry YWl0cywgX0FsbG9jPjo6CkBAIC0zNjc5LDYgKzM3MDAsNyBAQCBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogCXRoaXMtPmVyYXNlKF9fbik7CiAgICAgICAvLyBlbHNlIG5v dGhpbmcgKGluIHBhcnRpY3VsYXIsIGF2b2lkIGNhbGxpbmcgX01fbXV0YXRlKCkgdW5uZWNl c3NhcmlseS4pCiAgICAgfQorI2VuZGlmCiAKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJU LCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgdGVtcGxhdGU8dHlw ZW5hbWUgX0lucHV0SXRlcmF0b3I+CkBAIC0zNzE5LDYgKzM3NDEsNyBAQCBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAor I2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfQ2hh clQsIHR5cGVuYW1lIF9UcmFpdHMsIHR5cGVuYW1lIF9BbGxvYz4KICAgICB2b2lkCiAgICAg YmFzaWNfc3RyaW5nPF9DaGFyVCwgX1RyYWl0cywgX0FsbG9jPjo6CkBAIC0zODAwLDggKzM4 MjMsMTEgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICB9CiAjZW5k aWYgLy8gQysrMTEKIAotCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiBf R0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KIH0gLy8gbmFtZXNwYWNlIHN0ZAotI2Vu ZGlmICAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKworI2lmIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKKyMgdW5kZWYgYmFzaWNfc3RyaW5nCisjZW5kaWYKICNlbmRpZiAgLy8gX0NP V19TVFJJTkdfSApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvc3RkL3N0ZGV4 Y2VwdCBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9zdGRleGNlcHQKaW5kZXggNjZjODU3 MmQwY2QuLjMzMzA2NTA4Njk1IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvaW5jbHVkZS9z dGQvc3RkZXhjZXB0CisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9zdGRleGNlcHQK QEAgLTQyLDggKzQyLDggQEAgbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRl ZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCi0jaWYgX0dM SUJDWFhfVVNFX0RVQUxfQUJJCi0jaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmIF9H TElCQ1hYX1VTRV9EVUFMX0FCSSB8fCBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBf R0xJQkNYWF9ERUZJTkVfU1RERVhDRVBUX0lOU1RBTlRJQVRJT05TCiAgIC8vIEVtdWxhdGVz IGFuIG9sZCBDT1cgc3RyaW5nIHdoZW4gdGhlIG5ldyBzdGQ6OnN0cmluZyBpcyBpbiB1c2Uu CiAgIHN0cnVjdCBfX2Nvd19zdHJpbmcKICAgewpAQCAtNTQsNiArNTQsNyBAQCBfR0xJQkNY WF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCiAgICAgX19jb3dfc3RyaW5nKCk7CiAgICAg X19jb3dfc3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJik7CisgICAgX19jb3dfc3RyaW5nKGNv bnN0IGNoYXIqKTsKICAgICBfX2Nvd19zdHJpbmcoY29uc3QgY2hhciosIHNpemVfdCk7CiAg ICAgX19jb3dfc3RyaW5nKGNvbnN0IF9fY293X3N0cmluZyYpIF9HTElCQ1hYX05PVEhST1c7 CiAgICAgX19jb3dfc3RyaW5nJiBvcGVyYXRvcj0oY29uc3QgX19jb3dfc3RyaW5nJikgX0dM SUJDWFhfTk9USFJPVzsKQEAgLTYyLDEyICs2MywxNCBAQCBfR0xJQkNYWF9CRUdJTl9OQU1F U1BBQ0VfVkVSU0lPTgogICAgIF9fY293X3N0cmluZyhfX2Nvd19zdHJpbmcmJikgbm9leGNl cHQ7CiAgICAgX19jb3dfc3RyaW5nJiBvcGVyYXRvcj0oX19jb3dfc3RyaW5nJiYpIG5vZXhj ZXB0OwogI2VuZGlmCisgICAgY29uc3QgY2hhciogY19zdHIoKSBjb25zdCBfR0xJQkNYWF9O T0VYQ0VQVDsKICAgfTsKLQotICB0eXBlZGVmIGJhc2ljX3N0cmluZzxjaGFyPiBfX3Nzb19z dHJpbmc7Ci0jZWxzZSAvLyBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjZW5kaWYgLy8gISBf R0xJQkNYWF9ERUZJTkVfU1RERVhDRVBUX0lOU1RBTlRJQVRJT05TCisjZWxzZQogICB0eXBl ZGVmIGJhc2ljX3N0cmluZzxjaGFyPiBfX2Nvd19zdHJpbmc7CisjZW5kaWYKIAorI2lmIF9H TElCQ1hYX1VTRV9EVUFMX0FCSSAmJiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgLy8g RW11bGF0ZXMgYSBuZXcgU1NPIHN0cmluZyB3aGVuIHRoZSBvbGQgc3RkOjpzdHJpbmcgaXMg aW4gdXNlLgogICBzdHJ1Y3QgX19zc29fc3RyaW5nCiAgIHsKQEAgLTk0LDEwICs5Nyw4IEBA IF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgX19zc29fc3RyaW5nJiBv cGVyYXRvcj0oX19zc29fc3RyaW5nJiYpIG5vZXhjZXB0OwogI2VuZGlmCiAgIH07Ci0jZW5k aWYgLy8gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQotI2Vsc2UgIC8vIF9HTElCQ1hYX1VTRV9E VUFMX0FCSQorI2Vsc2UKICAgdHlwZWRlZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19zc29fc3Ry aW5nOwotICB0eXBlZGVmIGJhc2ljX3N0cmluZzxjaGFyPiBfX2Nvd19zdHJpbmc7CiAjZW5k aWYKIAogICAvKioKQEAgLTEyNyw3ICsxMjgsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BB Q0VfVkVSU0lPTgogICAgIGxvZ2ljX2Vycm9yJiBvcGVyYXRvcj0obG9naWNfZXJyb3ImJikg bm9leGNlcHQ7CiAjZW5kaWYKIAotI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgX0dM SUJDWFhfREVGSU5FX1NUREVYQ0VQVF9DT1BZX09QUworI2lmIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkgfHwgX0dMSUJDWFhfREVGSU5FX1NUREVYQ0VQVF9JTlNUQU5USUFUSU9OUwogICAg IGxvZ2ljX2Vycm9yKGNvbnN0IGxvZ2ljX2Vycm9yJikgX0dMSUJDWFhfTk9USFJPVzsKICAg ICBsb2dpY19lcnJvciYgb3BlcmF0b3I9KGNvbnN0IGxvZ2ljX2Vycm9yJikgX0dMSUJDWFhf Tk9USFJPVzsKICNlbGlmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKQEAgLTIzMyw3ICsyMzQs NyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIHJ1bnRpbWVfZXJy b3ImIG9wZXJhdG9yPShydW50aW1lX2Vycm9yJiYpIG5vZXhjZXB0OwogI2VuZGlmCiAKLSNp ZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8IF9HTElCQ1hYX0RFRklORV9TVERFWENFUFRf Q09QWV9PUFMKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8IF9HTElCQ1hYX0RFRklO RV9TVERFWENFUFRfSU5TVEFOVElBVElPTlMKICAgICBydW50aW1lX2Vycm9yKGNvbnN0IHJ1 bnRpbWVfZXJyb3ImKSBfR0xJQkNYWF9OT1RIUk9XOwogICAgIHJ1bnRpbWVfZXJyb3ImIG9w ZXJhdG9yPShjb25zdCBydW50aW1lX2Vycm9yJikgX0dMSUJDWFhfTk9USFJPVzsKICNlbGlm IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9weXRo b24vbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5IGIvbGlic3RkYysrLXYzL3B5dGhvbi9saWJz dGRjeHgvdjYvcHJpbnRlcnMucHkKaW5kZXggN2UxNmE0OWFlYjAuLjgxNzg1YTZlNjZiIDEw MDY0NAotLS0gYS9saWJzdGRjKystdjMvcHl0aG9uL2xpYnN0ZGN4eC92Ni9wcmludGVycy5w eQorKysgYi9saWJzdGRjKystdjMvcHl0aG9uL2xpYnN0ZGN4eC92Ni9wcmludGVycy5weQpA QCAtMTAyOSw2ICsxMDI5LDggQEAgY2xhc3MgU3RkU3RyaW5nUHJpbnRlcihwcmludGVyX2Jh c2UpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0eXBlbmFtZSwgdmFsKToKICAgICAgICAg c2VsZi5fdmFsID0gdmFsCiAgICAgICAgIHNlbGYuX25ld19zdHJpbmcgPSB0eXBlbmFtZS5m aW5kKCI6Ol9fY3h4MTE6OmJhc2ljX3N0cmluZyIpICE9IC0xCisgICAgICAgIGlmIG5vdCBz ZWxmLl9uZXdfc3RyaW5nOgorICAgICAgICAgICAgc2VsZi5fbmV3X3N0cmluZyA9IHR5cGVu YW1lLmZpbmQoIjo6IiArIF92ZXJzaW9uZWRfbmFtZXNwYWNlICsgImJhc2ljX3N0cmluZyIp ICE9IC0xCiAKICAgICBkZWYgdG9fc3RyaW5nKHNlbGYpOgogICAgICAgICAjIE1ha2Ugc3Vy ZSAmc3RyaW5nIHdvcmtzLCB0b28uCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL01h a2VmaWxlLmFtIGIvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5hbQppbmRleCAzMmRlNTMw NDEyMi4uMTZmNDZmYWY5MWEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvTWFrZWZp bGUuYW0KKysrIGIvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5hbQpAQCAtOTEsNiArOTEs OSBAQCBlbHNlCiBsZGJsX2NvbXBhdF9zb3VyY2VzID0KIGVuZGlmCiAKK2lmIEVOQUJMRV9T WU1WRVJTX0dOVV9OQU1FU1BBQ0UKK2xkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0KK2Vs c2UKIGlmIEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUCiBpZiBFTkFCTEVfRFVBTF9BQkkK IGxkYmxfYWx0MTI4X2NvbXBhdF9jeHgxMV9zb3VyY2VzID0gXApAQCAtMTA0LDYgKzEwNyw3 IEBAIGxkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0gXAogZWxzZQogbGRibF9hbHQxMjhf Y29tcGF0X3NvdXJjZXMgPQogZW5kaWYKK2VuZGlmCiAKIGlmIEVOQUJMRV9TWU1WRVJTX0dO VV9OQU1FU1BBQ0UKIGN4eDB4X2NvbXBhdF9zb3VyY2VzID0KZGlmZiAtLWdpdCBhL2xpYnN0 ZGMrKy12My9zcmMvTWFrZWZpbGUuaW4gYi9saWJzdGRjKystdjMvc3JjL01ha2VmaWxlLmlu CmluZGV4IGM1ZDAxZTdiZWJhLi4xNzYxOGMyNzhiYyAxMDA2NDQKLS0tIGEvbGlic3RkYysr LXYzL3NyYy9NYWtlZmlsZS5pbgorKysgYi9saWJzdGRjKystdjMvc3JjL01ha2VmaWxlLmlu CkBAIC0xNTcsMTAgKzE1Nyw5IEBAIGFtX19vYmplY3RzXzIgPSBjb21wYXRpYmlsaXR5Lmxv IGNvbXBhdGliaWxpdHktZGVidWdfbGlzdC5sbyBcCiBARU5BQkxFX1NZTVZFUlNfR05VX05B TUVTUEFDRV9GQUxTRUAJY29tcGF0aWJpbGl0eS1jaHJvbm8ubG8gXAogQEVOQUJMRV9TWU1W RVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VACWNvbXBhdGliaWxpdHktY29uZHZhci5sbyBcCiBA RU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUAJY29tcGF0aWJpbGl0eS10aHJl YWQtYysrMHgubG8KLUBFTkFCTEVfRFVBTF9BQklfVFJVRUBAR0xJQkNYWF9MREJMX0FMVDEy OF9DT01QQVRfVFJVRUBhbV9fb2JqZWN0c180ID0gY29tcGF0aWJpbGl0eS1sZGJsLWFsdDEy OC1jeHgxMS5sbwotQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAYW1fX29iamVj dHNfNSA9ICBcCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0aWJp bGl0eS1sZGJsLWFsdDEyOC5sbyBcCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJV RUAJJChhbV9fb2JqZWN0c180KQorQEVOQUJMRV9EVUFMX0FCSV9UUlVFQEBFTkFCTEVfU1lN VkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9U UlVFQGFtX19vYmplY3RzXzQgPSBjb21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LWN4eDExLmxv CitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNYWF9MREJMX0FM VDEyOF9DT01QQVRfVFJVRUBhbV9fb2JqZWN0c181ID0gY29tcGF0aWJpbGl0eS1sZGJsLWFs dDEyOC5sbyBcCitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNY WF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJJChhbV9fb2JqZWN0c180KQogYW1fX29iamVj dHNfNiA9ICQoYW1fX29iamVjdHNfMykgJChhbV9fb2JqZWN0c181KQogQEdMSUJDWFhfSE9T VEVEX1RSVUVAYW1fbGlic3RkY19fX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzIpIFwK IEBHTElCQ1hYX0hPU1RFRF9UUlVFQAkkKGFtX19vYmplY3RzXzYpCkBAIC01MTIsMTQgKzUx MSwxNSBAQCBTVUJESVJTID0gYysrOTggYysrMTEgYysrMTcgYysrMjAgYysrMjMgXAogCiBA R0xJQkNYWF9MREJMX0NPTVBBVF9GQUxTRUBsZGJsX2NvbXBhdF9zb3VyY2VzID0gCiBAR0xJ QkNYWF9MREJMX0NPTVBBVF9UUlVFQGxkYmxfY29tcGF0X3NvdXJjZXMgPSBjb21wYXRpYmls aXR5LWxkYmwuY2MKLUBFTkFCTEVfRFVBTF9BQklfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQx MjhfQ09NUEFUX1RSVUVAbGRibF9hbHQxMjhfY29tcGF0X2N4eDExX3NvdXJjZXMgPSAKLUBF TkFCTEVfRFVBTF9BQklfVFJVRUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUBs ZGJsX2FsdDEyOF9jb21wYXRfY3h4MTFfc291cmNlcyA9IFwKLUBFTkFCTEVfRFVBTF9BQklf VFJVRUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0aWJpbGl0eS1s ZGJsLWFsdDEyOC1jeHgxMS5jYwotCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfRkFM U0VAbGRibF9hbHQxMjhfY29tcGF0X3NvdXJjZXMgPSAKLUBHTElCQ1hYX0xEQkxfQUxUMTI4 X0NPTVBBVF9UUlVFQGxkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0gXAotQEdMSUJDWFhf TERCTF9BTFQxMjhfQ09NUEFUX1RSVUVACWNvbXBhdGliaWxpdHktbGRibC1hbHQxMjguY2Mg XAotQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVACSR7bGRibF9hbHQxMjhfY29t cGF0X2N4eDExX3NvdXJjZXN9CitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxT RUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfRkFMU0VAbGRibF9hbHQxMjhfY29tcGF0 X3NvdXJjZXMgPSAKK0BFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElC Q1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQGxkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2Vz ID0gXAorQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhfTERC TF9BTFQxMjhfQ09NUEFUX1RSVUVACWNvbXBhdGliaWxpdHktbGRibC1hbHQxMjguY2MgXAor QEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQx MjhfQ09NUEFUX1RSVUVACSR7bGRibF9hbHQxMjhfY29tcGF0X2N4eDExX3NvdXJjZXN9CisK K0BFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX1RSVUVAbGRibF9hbHQxMjhfY29tcGF0 X3NvdXJjZXMgPSAKK0BFTkFCTEVfRFVBTF9BQklfRkFMU0VAQEVOQUJMRV9TWU1WRVJTX0dO VV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAbGRi bF9hbHQxMjhfY29tcGF0X2N4eDExX3NvdXJjZXMgPSAKK0BFTkFCTEVfRFVBTF9BQklfVFJV RUBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNYWF9MREJMX0FM VDEyOF9DT01QQVRfVFJVRUBsZGJsX2FsdDEyOF9jb21wYXRfY3h4MTFfc291cmNlcyA9IFwK K0BFTkFCTEVfRFVBTF9BQklfVFJVRUBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9G QUxTRUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0aWJpbGl0eS1s ZGJsLWFsdDEyOC1jeHgxMS5jYwogCiBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9G QUxTRUBjeHgweF9jb21wYXRfc291cmNlcyA9IFwKIEBFTkFCTEVfU1lNVkVSU19HTlVfTkFN RVNQQUNFX0ZBTFNFQAljb21wYXRpYmlsaXR5LWF0b21pYy1jKysweC5jYyBcCmRpZmYgLS1n aXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL01ha2VmaWxlLmFtIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9NYWtlZmlsZS5hbQppbmRleCA5Y2RkYjk3ODkyOC4uYmU4ZTM1NzU0Yjgg MTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuYW0KKysrIGIv bGlic3RkYysrLXYzL3NyYy9jKysxMS9NYWtlZmlsZS5hbQpAQCAtNDgsMTUgKzQ4LDExIEBA IGJhc2ljX2ZpbGUuY2M6ICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQkFTSUNfRklMRV9DQykKIAkk KExOX1MpICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQkFTSUNfRklMRV9DQykgLi8kQCB8fCB0cnVl CiAKIGlmIEVOQUJMRV9EVUFMX0FCSQotY3h4MTFfYWJpX3NvdXJjZXMgPSBcCi0JY293LWxv Y2FsZV9pbml0LmNjIFwKK2R1YWxfYWJpX3NvdXJjZXMgPSBcCiAJY293LXNoaW1fZmFjZXRz LmNjIFwKLQljeHgxMS1oYXNoX3RyMS5jYyBcCi0JY3h4MTEtaW9zX2ZhaWx1cmUuY2MgXAot CWN4eDExLXNoaW1fZmFjZXRzLmNjIFwKLQljeHgxMS1zdGRleGNlcHQuY2MKKwljeHgxMS1z aGltX2ZhY2V0cy5jYwogZWxzZQotY3h4MTFfYWJpX3NvdXJjZXMgPQorZHVhbF9hYmlfc291 cmNlcyA9CiBlbmRpZgogCiBzb3VyY2VzX2ZyZWVzdGFuZGluZyA9IFwKQEAgLTY4LDggKzY0 LDEyIEBAIHNvdXJjZXMgPSBcCiAJY2hyb25vLmNjIFwKIAljb2RlY3Z0LmNjIFwKIAljb25k aXRpb25fdmFyaWFibGUuY2MgXAorCWNvdy1sb2NhbGVfaW5pdC5jYyBcCiAJY293LXN0ZGV4 Y2VwdC5jYyBcCiAJY3R5cGUuY2MgXAorCWN4eDExLWhhc2hfdHIxLmNjIFwKKwljeHgxMS1p b3NfZmFpbHVyZS5jYyBcCisJY3h4MTEtc3RkZXhjZXB0LmNjIFwKIAlkZWJ1Zy5jYyBcCiAJ ZnVuY3RleGNlcHQuY2MgXAogCWZ1bmN0aW9uYWwuY2MgXApAQCAtODgsMjAgKzg4LDEyIEBA IHNvdXJjZXMgPSBcCiAJc25wcmludGZfbGl0ZS5jYyBcCiAJc3lzdGVtX2Vycm9yLmNjIFwK IAl0aHJlYWQuY2MgXAotCSR7Y3h4MTFfYWJpX3NvdXJjZXN9IFwKKwkke2R1YWxfYWJpX3Nv dXJjZXN9IFwKIAkke2hvc3Rfc291cmNlc30gXAogCSR7aG9zdF9zb3VyY2VzX2V4dHJhfQog CiBpZiBFTkFCTEVfRFVBTF9BQkkKIGV4dHJhX3N0cmluZ19pbnN0X3NvdXJjZXMgPSBcCi0J Y293LWZzdHJlYW0taW5zdC5jYyBcCi0JY293LXNzdHJlYW0taW5zdC5jYyBcCi0JY293LXN0 cmluZy1pbnN0LmNjIFwKLQljb3ctc3RyaW5nLWlvLWluc3QuY2MgXAotCWNvdy13c3RyaW5n LWluc3QuY2MgXAotCWNvdy13c3RyaW5nLWlvLWluc3QuY2MgXAotCWN4eDExLWxvY2FsZS1p bnN0LmNjIFwKLQljeHgxMS13bG9jYWxlLWluc3QuY2MgXAogCXNzb19zdHJpbmcuY2MKIGVs c2UKIGV4dHJhX3N0cmluZ19pbnN0X3NvdXJjZXMgPQpAQCAtMTExLDYgKzEwMywxNCBAQCBp ZiBFTkFCTEVfRVhURVJOX1RFTVBMQVRFCiAjIFhURU1QTEFURV9GTEFHUyA9IC1mbm8taW1w bGljaXQtdGVtcGxhdGVzCiBpbnN0X3NvdXJjZXMgPSBcCiAJJChleHRyYV9zdHJpbmdfaW5z dF9zb3VyY2VzKSBcCisJY293LWZzdHJlYW0taW5zdC5jYyBcCisJY293LXNzdHJlYW0taW5z dC5jYyBcCisJY293LXN0cmluZy1pbnN0LmNjIFwKKwljb3ctc3RyaW5nLWlvLWluc3QuY2Mg XAorCWNvdy13c3RyaW5nLWluc3QuY2MgXAorCWNvdy13c3RyaW5nLWlvLWluc3QuY2MgXAor CWN4eDExLWxvY2FsZS1pbnN0LmNjIFwKKwljeHgxMS13bG9jYWxlLWluc3QuY2MgXAogCWV4 dDExLWluc3QuY2MgXAogCWZzdHJlYW0taW5zdC5jYyBcCiAJaW9zLWluc3QuY2MgXApkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9NYWtlZmlsZS5pbiBiL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvTWFrZWZpbGUuaW4KaW5kZXggZTZkMzdjNTQ2NGMuLjE3MWZmMWFk ZjE2IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL01ha2VmaWxlLmluCisr KyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuaW4KQEAgLTEyMiwyNyArMTIy LDI4IEBAIENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CiBMVExJQlJBUklFUyA9ICQobm9p bnN0X0xUTElCUkFSSUVTKQogbGliY19fMTFjb252ZW5pZW5jZV9sYV9MSUJBREQgPQogYW1f X29iamVjdHNfMSA9IGxpbWl0cy5sbyBwbGFjZWhvbGRlcnMubG8KLUBFTkFCTEVfRFVBTF9B QklfVFJVRUBhbV9fb2JqZWN0c18yID0gY293LWxvY2FsZV9pbml0LmxvIFwKLUBFTkFCTEVf RFVBTF9BQklfVFJVRUAJY293LXNoaW1fZmFjZXRzLmxvIGN4eDExLWhhc2hfdHIxLmxvIFwK LUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtaW9zX2ZhaWx1cmUubG8gXAotQEVOQUJM RV9EVUFMX0FCSV9UUlVFQAljeHgxMS1zaGltX2ZhY2V0cy5sbyBjeHgxMS1zdGRleGNlcHQu bG8KK0BFTkFCTEVfRFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c18yID0gY293LXNoaW1fZmFj ZXRzLmxvIFwKK0BFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtc2hpbV9mYWNldHMubG8K IGFtX19vYmplY3RzXzMgPSBjdHlwZV9jb25maWd1cmVfY2hhci5sbyBjdHlwZV9tZW1iZXJz LmxvCiBhbV9fb2JqZWN0c180ID0gYmFzaWNfZmlsZS5sbwogYW1fX29iamVjdHNfNSA9IGFz c2VydF9mYWlsLmxvIGNocm9uby5sbyBjb2RlY3Z0LmxvIFwKLQljb25kaXRpb25fdmFyaWFi bGUubG8gY293LXN0ZGV4Y2VwdC5sbyBjdHlwZS5sbyBkZWJ1Zy5sbyBcCi0JZnVuY3RleGNl cHQubG8gZnVuY3Rpb25hbC5sbyBmdXRleC5sbyBmdXR1cmUubG8gaGFzaF9jKysweC5sbyBc Ci0JaGFzaHRhYmxlX2MrKzB4LmxvIGlvcy5sbyBpb3NfZXJyY2F0LmxvIGxvY2FsZV9pbml0 LmxvIFwKLQlsb2NhbGVuYW1lLmxvIG11dGV4LmxvIHJhbmRvbS5sbyByZWdleC5sbyBzaGFy ZWRfcHRyLmxvIFwKLQlzbnByaW50Zl9saXRlLmxvIHN5c3RlbV9lcnJvci5sbyB0aHJlYWQu bG8gJChhbV9fb2JqZWN0c18yKSBcCi0JJChhbV9fb2JqZWN0c18zKSAkKGFtX19vYmplY3Rz XzQpCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVAYW1fX29iamVjdHNfNiA9IGNvdy1mc3RyZWFt LWluc3QubG8gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctc3N0cmVhbS1pbnN0Lmxv IGNvdy1zdHJpbmctaW5zdC5sbyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1zdHJp bmctaW8taW5zdC5sbyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy13c3RyaW5nLWlu c3QubG8gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctd3N0cmluZy1pby1pbnN0Lmxv IFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtbG9jYWxlLWluc3QubG8gXAotQEVO QUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS13bG9jYWxlLWluc3QubG8gc3NvX3N0cmluZy5s bworCWNvbmRpdGlvbl92YXJpYWJsZS5sbyBjb3ctbG9jYWxlX2luaXQubG8gY293LXN0ZGV4 Y2VwdC5sbyBcCisJY3R5cGUubG8gY3h4MTEtaGFzaF90cjEubG8gY3h4MTEtaW9zX2ZhaWx1 cmUubG8gXAorCWN4eDExLXN0ZGV4Y2VwdC5sbyBkZWJ1Zy5sbyBmdW5jdGV4Y2VwdC5sbyBm dW5jdGlvbmFsLmxvIFwKKwlmdXRleC5sbyBmdXR1cmUubG8gaGFzaF9jKysweC5sbyBoYXNo dGFibGVfYysrMHgubG8gaW9zLmxvIFwKKwlpb3NfZXJyY2F0LmxvIGxvY2FsZV9pbml0Lmxv IGxvY2FsZW5hbWUubG8gbXV0ZXgubG8gcmFuZG9tLmxvIFwKKwlyZWdleC5sbyBzaGFyZWRf cHRyLmxvIHNucHJpbnRmX2xpdGUubG8gc3lzdGVtX2Vycm9yLmxvIFwKKwl0aHJlYWQubG8g JChhbV9fb2JqZWN0c18yKSAkKGFtX19vYmplY3RzXzMpICQoYW1fX29iamVjdHNfNCkKK0BF TkFCTEVfRFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c182ID0gc3NvX3N0cmluZy5sbwogQEVO QUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUBhbV9fb2JqZWN0c183ID0gJChhbV9fb2JqZWN0 c182KSBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctZnN0cmVhbS1pbnN0 LmxvIFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zc3RyZWFtLWluc3Qu bG8gXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXN0cmluZy1pbnN0Lmxv IFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zdHJpbmctaW8taW5zdC5s byBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctd3N0cmluZy1pbnN0Lmxv IFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy13c3RyaW5nLWlvLWluc3Qu bG8gXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY3h4MTEtbG9jYWxlLWluc3Qu bG8gXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY3h4MTEtd2xvY2FsZS1pbnN0 LmxvIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWV4dDExLWluc3QubG8gZnN0 cmVhbS1pbnN0LmxvIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWlvcy1pbnN0 LmxvIGlvc3RyZWFtLWluc3QubG8gXAogQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJ aXN0cmVhbS1pbnN0LmxvIGxvY2FsZS1pbnN0LmxvIFwKQEAgLTQ2OSwxNCArNDcwLDEwIEBA IGhvc3Rfc291cmNlcyA9IFwKIGhvc3Rfc291cmNlc19leHRyYSA9IFwKIAliYXNpY19maWxl LmNjCiAKLUBFTkFCTEVfRFVBTF9BQklfRkFMU0VAY3h4MTFfYWJpX3NvdXJjZXMgPSAKLUBF TkFCTEVfRFVBTF9BQklfVFJVRUBjeHgxMV9hYmlfc291cmNlcyA9IFwKLUBFTkFCTEVfRFVB TF9BQklfVFJVRUAJY293LWxvY2FsZV9pbml0LmNjIFwKK0BFTkFCTEVfRFVBTF9BQklfRkFM U0VAZHVhbF9hYmlfc291cmNlcyA9IAorQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGR1YWxfYWJp X3NvdXJjZXMgPSBcCiBARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1zaGltX2ZhY2V0cy5j YyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLWhhc2hfdHIxLmNjIFwKLUBFTkFC TEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtaW9zX2ZhaWx1cmUuY2MgXAotQEVOQUJMRV9EVUFM X0FCSV9UUlVFQAljeHgxMS1zaGltX2ZhY2V0cy5jYyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RS VUVACWN4eDExLXN0ZGV4Y2VwdC5jYworQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS1z aGltX2ZhY2V0cy5jYwogCiBzb3VyY2VzX2ZyZWVzdGFuZGluZyA9IFwKIAlsaW1pdHMuY2Mg XApAQCAtNDg3LDggKzQ4NCwxMiBAQCBzb3VyY2VzID0gXAogCWNocm9uby5jYyBcCiAJY29k ZWN2dC5jYyBcCiAJY29uZGl0aW9uX3ZhcmlhYmxlLmNjIFwKKwljb3ctbG9jYWxlX2luaXQu Y2MgXAogCWNvdy1zdGRleGNlcHQuY2MgXAogCWN0eXBlLmNjIFwKKwljeHgxMS1oYXNoX3Ry MS5jYyBcCisJY3h4MTEtaW9zX2ZhaWx1cmUuY2MgXAorCWN4eDExLXN0ZGV4Y2VwdC5jYyBc CiAJZGVidWcuY2MgXAogCWZ1bmN0ZXhjZXB0LmNjIFwKIAlmdW5jdGlvbmFsLmNjIFwKQEAg LTUwNywyMCArNTA4LDEyIEBAIHNvdXJjZXMgPSBcCiAJc25wcmludGZfbGl0ZS5jYyBcCiAJ c3lzdGVtX2Vycm9yLmNjIFwKIAl0aHJlYWQuY2MgXAotCSR7Y3h4MTFfYWJpX3NvdXJjZXN9 IFwKKwkke2R1YWxfYWJpX3NvdXJjZXN9IFwKIAkke2hvc3Rfc291cmNlc30gXAogCSR7aG9z dF9zb3VyY2VzX2V4dHJhfQogCiBARU5BQkxFX0RVQUxfQUJJX0ZBTFNFQGV4dHJhX3N0cmlu Z19pbnN0X3NvdXJjZXMgPSAKIEBFTkFCTEVfRFVBTF9BQklfVFJVRUBleHRyYV9zdHJpbmdf aW5zdF9zb3VyY2VzID0gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctZnN0cmVhbS1p bnN0LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY293LXNzdHJlYW0taW5zdC5jYyBc Ci1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1zdHJpbmctaW5zdC5jYyBcCi1ARU5BQkxF X0RVQUxfQUJJX1RSVUVACWNvdy1zdHJpbmctaW8taW5zdC5jYyBcCi1ARU5BQkxFX0RVQUxf QUJJX1RSVUVACWNvdy13c3RyaW5nLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVF QAljb3ctd3N0cmluZy1pby1pbnN0LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4 MTEtbG9jYWxlLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS13bG9j YWxlLWluc3QuY2MgXAogQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAlzc29fc3RyaW5nLmNjCiAK ICMgWFRFTVBMQVRFX0ZMQUdTID0KQEAgLTUyOSw2ICs1MjIsMTQgQEAgc291cmNlcyA9IFwK ICMgWFRFTVBMQVRFX0ZMQUdTID0gLWZuby1pbXBsaWNpdC10ZW1wbGF0ZXMKIEBFTkFCTEVf RVhURVJOX1RFTVBMQVRFX1RSVUVAaW5zdF9zb3VyY2VzID0gXAogQEVOQUJMRV9FWFRFUk5f VEVNUExBVEVfVFJVRUAJJChleHRyYV9zdHJpbmdfaW5zdF9zb3VyY2VzKSBcCitARU5BQkxF X0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctZnN0cmVhbS1pbnN0LmNjIFwKK0BFTkFCTEVf RVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zc3RyZWFtLWluc3QuY2MgXAorQEVOQUJMRV9F WFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXN0cmluZy1pbnN0LmNjIFwKK0BFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zdHJpbmctaW8taW5zdC5jYyBcCitARU5BQkxFX0VY VEVSTl9URU1QTEFURV9UUlVFQAljb3ctd3N0cmluZy1pbnN0LmNjIFwKK0BFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWNvdy13c3RyaW5nLWlvLWluc3QuY2MgXAorQEVOQUJMRV9F WFRFUk5fVEVNUExBVEVfVFJVRUAJY3h4MTEtbG9jYWxlLWluc3QuY2MgXAorQEVOQUJMRV9F WFRFUk5fVEVNUExBVEVfVFJVRUAJY3h4MTEtd2xvY2FsZS1pbnN0LmNjIFwKIEBFTkFCTEVf RVhURVJOX1RFTVBMQVRFX1RSVUVACWV4dDExLWluc3QuY2MgXAogQEVOQUJMRV9FWFRFUk5f VEVNUExBVEVfVFJVRUAJZnN0cmVhbS1pbnN0LmNjIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBM QVRFX1RSVUVACWlvcy1pbnN0LmNjIFwKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMv YysrMTEvY293LWZzdHJlYW0taW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293 LWZzdHJlYW0taW5zdC5jYwppbmRleCAwNTYyYmM2YzljYi4uODE1MzM4N2RhZWEgMTAwNjQ0 Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LWZzdHJlYW0taW5zdC5jYworKysg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1mc3RyZWFtLWluc3QuY2MKQEAgLTI5LDEw ICsyOSw3IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUg PGZzdHJlYW0+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlz IGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgot I2VuZGlmCi0KKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIG5hbWVzcGFjZSBzdGQg X0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KQEAgLTc2LDMgKzczLDQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVz cGFjZQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1s b2NhbGVfaW5pdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LWxvY2FsZV9pbml0 LmNjCmluZGV4IGY0ODU2MWY1YjEyLi5iZmUxZDE5ZGIwNCAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL3NyYy9jKysxMS9jb3ctbG9jYWxlX2luaXQuY2MKKysrIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jb3ctbG9jYWxlX2luaXQuY2MKQEAgLTI0LDEwICsyNCw3IEBACiAjZGVm aW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUgPGxvY2FsZT4KIAotI2lm ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90 IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKLQorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklM SVRZKGRlZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpAQCAt MTY2LDYgKzE2Myw3IEBAIG5hbWVzcGFjZQogI2VuZGlmCiAgIH0KIAorI2lmIF9HTElCQ1hY X1VTRV9EVUFMX0FCSQogLy8gVE9ETyBzaG91bGQgYmUgaW4gYW5vdGhlciBmaWxlCiAgIHN0 cmluZwogICBsb2NhbGU6Om5hbWUoKSBjb25zdApAQCAtMTkxLDYgKzE4OSw4IEBAIG5hbWVz cGFjZQogICAgICAgfQogICAgIHJldHVybiBfX3JldDsKICAgfQorI2VuZGlmCiAKIF9HTElC Q1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfQorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNF X0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3N0 cmVhbS1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3N0cmVhbS1pbnN0 LmNjCmluZGV4IDAzNWEyNjdkOWQ4Li43Njk5MTcwZDEzZCAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL3NyYy9jKysxMS9jb3ctc3N0cmVhbS1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY293LXNzdHJlYW0taW5zdC5jYwpAQCAtMjcsOCArMjcsOCBAQAogLy8K IAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKLSNpbmNsdWRlICJzc3RyZWFt LWluc3QuY2MiCisjaW5jbHVkZSA8Yml0cy9jKytjb25maWcuaD4KIAotI2lmICEgX0dMSUJD WFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBp bGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJCisjIGluY2x1ZGUgInNzdHJlYW0taW5zdC5jYyIKICNlbmRpZgpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RkZXhjZXB0LmNjIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jb3ctc3RkZXhjZXB0LmNjCmluZGV4IDhkMWNjNDYwNWQ0Li4yM2Y4NTNl YWRhYyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RkZXhjZXB0 LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0ZGV4Y2VwdC5jYwpAQCAt NDMsMTEgKzQzLDUyIEBAIF90eG5hbF9ydW50aW1lX2Vycm9yX2dldF9tc2codm9pZCogZSk7 CiAKIC8vIEFsbCBleGNlcHRpb24gY2xhc3NlcyBzdGlsbCB1c2UgdGhlIGNsYXNzaWMgQ09X IHN0ZDo6c3RyaW5nLgogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKLSNkZWZp bmUgX0dMSUJDWFhfREVGSU5FX1NUREVYQ0VQVF9DT1BZX09QUyAxCi0jZGVmaW5lIF9fY293 X3N0cmluZyBfX2Nvd19zdHJpbmd4eHgKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpZiBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBpZiBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJCisjICBpbmNsdWRlIDxiaXRzL2Nvd19zdHJpbmcuaD4KKyMg ZW5kaWYKKworbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCit7 CitfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgorCisjIGlmIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkKKyAgdHlwZWRlZiBzdGQ6Ol9fc3RkX2Nvd19zdHJpbmc8Y2hhciwgc3Rk OjpjaGFyX3RyYWl0czxjaGFyPiwKKwkJCQlzdGQ6OmFsbG9jYXRvcjxjaGFyPj4gY293c3Ry OworIyBlbHNlCisgIHR5cGVkZWYgc3RkOjpzdHJpbmcgY293c3RyOworIyBlbmRpZgorCisg IC8vIFJlZGVmaW5lIF9fY293X3N0cmluZyBzbyB0aGF0IHdlIGNhbiBkZWZpbmUgYW5kIGV4 cG9ydCBpdHMgbWVtYmVycworICAvLyBpbiB0ZXJtcyBvZiB0aGUgQ09XIHN0ZDo6c3RyaW5n LgorICBzdHJ1Y3QgX19jb3dfc3RyaW5nCisgIHsKKyAgICB1bmlvbiB7CisgICAgICBjb25z dCBjaGFyKiBfTV9wOworICAgICAgY2hhciBfTV9ieXRlc1tzaXplb2YoX01fcCldOworICAg ICAgY293c3RyIF9NX3N0cjsKKyAgICB9OworCisgICAgX19jb3dfc3RyaW5nKCk7CisgICAg X19jb3dfc3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKTsKKyAgICBfX2Nvd19zdHJpbmco Y29uc3QgY2hhciopOworICAgIF9fY293X3N0cmluZyhjb25zdCBjaGFyKiwgc2l6ZV90KTsK KyAgICBfX2Nvd19zdHJpbmcoY29uc3QgX19jb3dfc3RyaW5nJikgbm9leGNlcHQ7CisgICAg X19jb3dfc3RyaW5nJiBvcGVyYXRvcj0oY29uc3QgX19jb3dfc3RyaW5nJikgbm9leGNlcHQ7 CisgICAgfl9fY293X3N0cmluZygpOworICAgIF9fY293X3N0cmluZyhfX2Nvd19zdHJpbmcm Jikgbm9leGNlcHQ7CisgICAgX19jb3dfc3RyaW5nJiBvcGVyYXRvcj0oX19jb3dfc3RyaW5n JiYpIG5vZXhjZXB0OworICAgIGNvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3Qgbm9leGNlcHQ7 CisgIH07CitfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KK30KKyNlbmRpZgorCisj ZGVmaW5lIF9HTElCQ1hYX0RFRklORV9TVERFWENFUFRfSU5TVEFOVElBVElPTlMgMQogI2lu Y2x1ZGUgPHN0ZGV4Y2VwdD4KICNpbmNsdWRlIDxzeXN0ZW1fZXJyb3I+Ci0jdW5kZWYgX19j b3dfc3RyaW5nCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0 KQogewpAQCAtMTE0LDMwICsxNTUsMTYgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZF UlNJT04KICAgLy8gQ29udmVydGluZyBjb25zdHJ1Y3RvciBmcm9tIENPVyBzdGQ6OnN0cmlu ZyB0byBTU08gc3RyaW5nLgogICBfX3Nzb19zdHJpbmc6Ol9fc3NvX3N0cmluZyhjb25zdCBz dHJpbmcmIHMpCiAgIDogX19zc29fc3RyaW5nKHMuY19zdHIoKSwgcy5sZW5ndGgoKSkgeyB9 CisjZW5kaWYKIAotICAvLyBSZWRlZmluZSBfX2Nvd19zdHJpbmcgc28gdGhhdCB3ZSBjYW4g ZGVmaW5lIGFuZCBleHBvcnQgaXRzIG1lbWJlcnMKLSAgLy8gaW4gdGVybXMgb2YgdGhlIENP VyBzdGQ6OnN0cmluZy4KLSAgc3RydWN0IF9fY293X3N0cmluZwotICB7Ci0gICAgdW5pb24g ewotICAgICAgY29uc3QgY2hhciogX01fcDsKLSAgICAgIGNoYXIgX01fYnl0ZXNbc2l6ZW9m KF9NX3ApXTsKLSAgICAgIHN0ZDo6c3RyaW5nIF9NX3N0cjsKLSAgICB9OwotCi0gICAgX19j b3dfc3RyaW5nKCk7Ci0gICAgX19jb3dfc3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKTsK LSAgICBfX2Nvd19zdHJpbmcoY29uc3QgY2hhciosIHNpemVfdCBuKTsKLSAgICBfX2Nvd19z dHJpbmcoY29uc3QgX19jb3dfc3RyaW5nJikgbm9leGNlcHQ7Ci0gICAgX19jb3dfc3RyaW5n JiBvcGVyYXRvcj0oY29uc3QgX19jb3dfc3RyaW5nJikgbm9leGNlcHQ7Ci0gICAgfl9fY293 X3N0cmluZygpOwotICAgIF9fY293X3N0cmluZyhfX2Nvd19zdHJpbmcmJikgbm9leGNlcHQ7 Ci0gICAgX19jb3dfc3RyaW5nJiBvcGVyYXRvcj0oX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0 OwotICB9OwotCisjaWYgX0dMSUJDWFhfVVNFX0RVQUxfQUJJIHx8IF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKICAgX19jb3dfc3RyaW5nOjpfX2Nvd19zdHJpbmcoKSA6IF9NX3N0cigpIHsg fQogCisjaWYgIV9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgX19jb3dfc3RyaW5nOjpfX2Nv d19zdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIDogX01fc3RyKHMpIHsgfQorI2VuZGlm CisKKyAgX19jb3dfc3RyaW5nOjpfX2Nvd19zdHJpbmcoY29uc3QgY2hhciogcykgOiBfTV9z dHIocykgeyB9CiAKICAgX19jb3dfc3RyaW5nOjpfX2Nvd19zdHJpbmcoY29uc3QgY2hhciog cywgc2l6ZV90IG4pIDogX01fc3RyKHMsIG4pIHsgfQogCkBAIC0xNTEsNyArMTc4LDcgQEAg X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICByZXR1cm4gKnRoaXM7CiAg IH0KIAotICBfX2Nvd19zdHJpbmc6On5fX2Nvd19zdHJpbmcoKSB7IF9NX3N0ci5+YmFzaWNf c3RyaW5nKCk7IH0KKyAgX19jb3dfc3RyaW5nOjp+X19jb3dfc3RyaW5nKCkgeyBfTV9zdHIu fmNvd3N0cigpOyB9CiAKICAgX19jb3dfc3RyaW5nOjpfX2Nvd19zdHJpbmcoX19jb3dfc3Ry aW5nJiYgcykgbm9leGNlcHQKICAgOiBfTV9zdHIoc3RkOjptb3ZlKHMuX01fc3RyKSkgeyB9 CkBAIC0xNjMsMTIgKzE5MCwxNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lP TgogICAgIHJldHVybiAqdGhpczsKICAgfQogCi0gIHN0YXRpY19hc3NlcnQoc2l6ZW9mKF9f Y293X3N0cmluZykgPT0gc2l6ZW9mKHN0ZDo6c3RyaW5nKSwKKyAgY29uc3QgY2hhcioKKyAg X19jb3dfc3RyaW5nOjpjX3N0cigpIGNvbnN0IG5vZXhjZXB0CisgIHsgcmV0dXJuIF9NX3N0 ci5jX3N0cigpOyB9CisKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoX19jb3dfc3RyaW5nKSA9 PSBzaXplb2YoY293c3RyKSwKICAgICAgICAgICAgICAgICAic2l6ZW9mKHN0ZDo6c3RyaW5n KSBoYXMgY2hhbmdlZCIpOwotICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoX19jb3dfc3RyaW5n KSA9PSBhbGlnbm9mKHN0ZDo6c3RyaW5nKSwKKyAgc3RhdGljX2Fzc2VydChhbGlnbm9mKF9f Y293X3N0cmluZykgPT0gYWxpZ25vZihjb3dzdHIpLAogICAgICAgICAgICAgICAgICJhbGln bm9mKHN0ZDo6c3RyaW5nKSBoYXMgY2hhbmdlZCIpOwotI2VuZGlmCisjZW5kaWYgLy8gX0dM SUJDWFhfVVNFX0NYWDExX0FCSQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAg IC8vIFJldHVybiBlcnJvcl9jYXRlZ29yeTo6bWVzc2FnZSgpIGFzIGFuIFNTTyBzdHJpbmcK ICAgX19zc29fc3RyaW5nCiAgIGVycm9yX2NhdGVnb3J5OjpfTV9tZXNzYWdlKGludCBpKSBj b25zdApAQCAtMTc2LDEwICsyMDgsMTIgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZF UlNJT04KICAgICBzdHJpbmcgbXNnID0gdGhpcy0+bWVzc2FnZShpKTsKICAgICByZXR1cm4g e21zZy5jX3N0cigpLCBtc2cubGVuZ3RoKCl9OwogICB9CisjZW5kaWYKIAogX0dMSUJDWFhf RU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZQogCisjaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCiAvLyBTdXBwb3J0IGZvciB0aGUgVHJhbnNhY3Rpb25hbCBNZW1v cnkgVFMgKE40NTE0KS4KIC8vCiAvLyBsb2dpY19lcnJvciBhbmQgcnVudGltZV9lcnJvciBi b3RoIGNhcnJ5IGEgbWVzc2FnZSBpbiB0aGUgZm9ybSBvZiBhIENPVwpAQCAtNDYzLDMgKzQ5 Nyw0IEBAIENUT1JEVE9SKDE1dW5kZXJmbG93X2Vycm9yLCBzdGQ6OnVuZGVyZmxvd19lcnJv ciwgcnVudGltZV9lcnJvcikKIAogI2VuZGlmICAvLyBfR0xJQkNYWF9VU0VfQzk5X1NURElO VAogI2VuZGlmICAvLyBfR0xJQkNYWF9VU0VfV0VBS19SRUYKKyNlbmRpZiAgLy8gISBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzEx L2Nvdy1zdHJpbmctaW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0cmlu Zy1pbnN0LmNjCmluZGV4IDVhMmI4ZmZhNTY4Li41N2MyODEyOWYwMCAxMDA2NDQKLS0tIGEv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RyaW5nLWluc3QuY2MKKysrIGIvbGlic3Rk YysrLXYzL3NyYy9jKysxMS9jb3ctc3RyaW5nLWluc3QuY2MKQEAgLTI5LDEwICsyOSw3IEBA CiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUgInN0cmluZy1p bnN0LmNjIgogCi0jaWYgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBm aWxlIHNob3VsZCBub3QgYmUgY29tcGlsZWQgZm9yIHRoaXMgY29uZmlndXJhdGlvbi4KLSNl bmRpZgotCisjaWYgX0dMSUJDWFhfVVNFX0RVQUxfQUJJICYmICEgX0dMSUJDWFhfVVNFX0NY WDExX0FCSQogI2luY2x1ZGUgPHJhbmRvbT4KIAogbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9W SVNJQklMSVRZKGRlZmF1bHQpCkBAIC00NSwzICs0Miw0IEBAIG5hbWVzcGFjZSBzdGQgX0dM SUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogICByYW5kb21fZGV2aWNlOjpfTV9pbml0X3By ZXRyMShjb25zdCBzdGQ6OnN0cmluZyYgdG9rZW4pCiAgIHsgX01faW5pdCh0b2tlbi5jX3N0 cigpLCB0b2tlbi5sZW5ndGgoKSk7IH0KIH0gLy8gbmFtZXNwYWNlCisjZW5kaWYKZGlmZiAt LWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0cmluZy1pby1pbnN0LmNjIGIv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RyaW5nLWlvLWluc3QuY2MKaW5kZXggNTA1 YmM5ZGQzODQuLjlhYmM5YjQ3ZTUyIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2Mr KzExL2Nvdy1zdHJpbmctaW8taW5zdC5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzEx L2Nvdy1zdHJpbmctaW8taW5zdC5jYwpAQCAtMzAsMTAgKzMwLDcgQEAKICNpbmNsdWRlIDxp c3RyZWFtPgogI2luY2x1ZGUgPG9zdHJlYW0+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFM X0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhp cyBjb25maWd1cmF0aW9uLgotI2VuZGlmCi0KKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KQEAgLTU3LDMgKzU0LDQgQEAgX0dMSUJD WFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9W RVJTSU9OCiB9IC8vIG5hbWVzcGFjZQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJzdGRjKyst djMvc3JjL2MrKzExL2Nvdy13c3RyaW5nLWluc3QuY2MgYi9saWJzdGRjKystdjMvc3JjL2Mr KzExL2Nvdy13c3RyaW5nLWluc3QuY2MKaW5kZXggY2U1MzNlYThmYTUuLmQzYzNiMGMyOTdl IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy13c3RyaW5nLWluc3Qu Y2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1pbnN0LmNjCkBA IC0yOSwxMiArMjksOSBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNp bmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJCiAjaWZkZWYgX0dMSUJDWFhfVVNFX1dDSEFSX1QKICNkZWZpbmUgQyB3Y2hhcl90CiAj aW5jbHVkZSAic3RyaW5nLWluc3QuY2MiCi0KLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FC SQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBj b25maWd1cmF0aW9uLgogI2VuZGlmCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlic3RkYysr LXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1pby1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3Ny Yy9jKysxMS9jb3ctd3N0cmluZy1pby1pbnN0LmNjCmluZGV4IDQ5Mzk0YjBlMjc1Li4wZTZj YzQ5MGZhNCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctd3N0cmlu Zy1pby1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXdzdHJpbmct aW8taW5zdC5jYwpAQCAtMjksMTQgKzI5LDExIEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkgMAogI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+CiAKKyNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKICNpZmRlZiBfR0xJQkNYWF9VU0VfV0NIQVJfVAogI2luY2x1 ZGUgPG9zdHJlYW0+CiAjaW5jbHVkZSA8aXN0cmVhbT4KIAotI2lmICEgX0dMSUJDWFhfVVNF X0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZv ciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKLQogbmFtZXNwYWNlIHN0ZCBfR0xJQkNY WF9WSVNJQklMSVRZKGRlZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVS U0lPTgpAQCAtNjEsMyArNTgsNCBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lP TgogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZQogI2Vu ZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEt aGFzaF90cjEuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWhhc2hfdHIxLmNj CmluZGV4IDIyYTc2ODVlZWNhLi4wYjlmYzI4Y2VhYSAxMDA2NDQKLS0tIGEvbGlic3RkYysr LXYzL3NyYy9jKysxMS9jeHgxMS1oYXNoX3RyMS5jYworKysgYi9saWJzdGRjKystdjMvc3Jj L2MrKzExL2N4eDExLWhhc2hfdHIxLmNjCkBAIC0yNSw5ICsyNSw3IEBACiAjZGVmaW5lIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkgMQogI2luY2x1ZGUgPHN0cmluZz4KIAotI2lmICEgX0dM SUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNv bXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKKyNpZiBfR0xJQkNYWF9V U0VfQ1hYMTFfQUJJCiAKICNpbmNsdWRlIDx0cjEvZnVuY3Rpb25hbD4KIG5hbWVzcGFjZSBz dGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQpAQCAtNTcsMyArNTUsNSBAQCBuYW1l c3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKICNlbmRpZgogICB9CiB9 CisKKyNlbmRpZiAvLyBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvc3JjL2MrKzExL2N4eDExLWlvc19mYWlsdXJlLmNjIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jeHgxMS1pb3NfZmFpbHVyZS5jYwppbmRleCBlMGU4MTZiNDUzYi4uNDZi ZmRhMzI5ZGUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtaW9z X2ZhaWx1cmUuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1pb3NfZmFp bHVyZS5jYwpAQCAtMzgsOSArMzgsNyBAQAogIyBkZWZpbmUgXyhtc2dpZCkgICAobXNnaWQp CiAjZW5kaWYKIAotI2lmICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMg ZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0j ZW5kaWYKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKIG5hbWVzcGFjZSBzdGQgX0dM SUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewpAQCAtNjIsNyArNjAsNyBAQCBfR0xJQkNY WF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICBpb3NfYmFzZTo6ZmFpbHVyZTo6d2hhdCgp IGNvbnN0IHRocm93KCkKICAgeyByZXR1cm4gcnVudGltZV9lcnJvcjo6d2hhdCgpOyB9CiAK LSNpZiBfX2NwcF9ydHRpCisjaWYgX0dMSUJDWFhfVVNFX0RVQUxfQUJJICYmIF9fY3BwX3J0 dGkKICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBkZWZpbmVkIGluIHNyYy9jKys5OC9pb3Nf ZmFpbHVyZS5jYwogICBleHRlcm4gdm9pZCBfX2NvbnN0cnVjdF9pb3NfZmFpbHVyZSh2b2lk KiwgY29uc3QgY2hhciopOwogICBleHRlcm4gdm9pZCBfX2Rlc3Ryb3lfaW9zX2ZhaWx1cmUo dm9pZCopOwpAQCAtMTE4LDcgKzExNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAgICAgLy8gT3RoZXJ3aXNlIHByb2NlZWQgYXMgbm9ybWFsIHRvIHNlZSBpZiB0 aGUgaGFuZGxlciBtYXRjaGVzLgogICAgIHJldHVybiBfX2NsYXNzX3R5cGVfaW5mbzo6X19k b191cGNhc3QoZHN0X3R5cGUsIG9ial9wdHIpOwogICB9Ci0jZWxzZSAvLyAhIF9fY3BwX3J0 dGkKKyNlbHNlIC8vICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJIHx8ICEgX19jcHBfcnR0aQog ICB1c2luZyBfX2lvc19mYWlsdXJlID0gaW9zOjpmYWlsdXJlOwogI2VuZGlmCiAKQEAgLTEz NiwzICsxMzQsNSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCiBfR0xJ QkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KIH0gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAv LyBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3Jj L2MrKzExL2N4eDExLWxvY2FsZS1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9j eHgxMS1sb2NhbGUtaW5zdC5jYwppbmRleCA5NGIxODE4ODZkMy4uZTIxY2M1NTQ4YmYgMTAw NjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtbG9jYWxlLWluc3QuY2MK KysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1sb2NhbGUtaW5zdC5jYwpAQCAt MjcsMTEgKzI3LDUgQEAKIC8vIEZhY2V0IGluc3RhbnRpYXRpb25zIHVzaW5nIG5ldyBBQkkg c3RyaW5ncy4KIAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDEKLSNpbmNsdWRl IDxiaXRzL2MrK2NvbmZpZy5oPgotI2lmICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVy cm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3Vy YXRpb24uCi0jZW5kaWYKIAotI2RlZmluZSBDIGNoYXIKLSNkZWZpbmUgQ19pc19jaGFyCi0j IGluY2x1ZGUgImxvY2FsZS1pbnN0LmNjIgorI2luY2x1ZGUgImxvY2FsZS1pbnN0LmNjIgpk aWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1zdGRleGNlcHQuY2Mg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLXN0ZGV4Y2VwdC5jYwppbmRleCA3NGMw NzBjMDQzOS4uMzhhYjM1NjkyYTMgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysr MTEvY3h4MTEtc3RkZXhjZXB0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4 MTEtc3RkZXhjZXB0LmNjCkBAIC0yOSw5ICsyOSw3IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkgMQogI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KIAotI2lmICEgX0dMSUJDWFhf VVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVk IGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKKyNpZiBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQog ewpAQCAtNzYsMyArNzQsNSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog CiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KIH0gLy8gbmFtZXNwYWNlCisKKyNl bmRpZiAvLyBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKyst djMvc3JjL2MrKzExL2N4eDExLXdsb2NhbGUtaW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMv YysrMTEvY3h4MTEtd2xvY2FsZS1pbnN0LmNjCmluZGV4IDExZmIxNWQ5NjAyLi5mYWZmMjM2 YzFkZiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS13bG9jYWxl LWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS13bG9jYWxlLWlu c3QuY2MKQEAgLTI4LDExICsyOCwxMCBAQAogCiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkgMQogI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+Ci0jaWYgISBfR0xJQkNYWF9V U0VfRFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgY29tcGlsZWQg Zm9yIHRoaXMgY29uZmlndXJhdGlvbi4KLSNlbmRpZgogCi0jaWZkZWYgX0dMSUJDWFhfVVNF X1dDSEFSX1QKLSNkZWZpbmUgQyB3Y2hhcl90Ci0jaW5jbHVkZSAibG9jYWxlLWluc3QuY2Mi CisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBpZmRlZiBfR0xJQkNYWF9VU0VfV0NI QVJfVAorIyAgZGVmaW5lIEMgd2NoYXJfdAorIyAgaW5jbHVkZSAibG9jYWxlLWluc3QuY2Mi CisjIGVuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEv bG9jYWxlLWluc3QtbnVtZXJpYy5oIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9sb2NhbGUt aW5zdC1udW1lcmljLmgKaW5kZXggYjkxN2ZlNTgwMmUuLjIxMWUxOWM3ZmY5IDEwMDY0NAot LS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2xvY2FsZS1pbnN0LW51bWVyaWMuaAorKysg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL2xvY2FsZS1pbnN0LW51bWVyaWMuaApAQCAtMzAs NyArMzAsNyBAQAogCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVs dCkKIHsKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKIC8vIHVzZV9mYWNldCBh bmQgaGFzX2ZhY2V0IGluc3RhbnRpYXRpb25zCiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NP UlMobnVtX2dldDxDPik7CiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMobnVtX3B1dDxD Pik7CkBAIC0zOCw3ICszOCw3IEBAIElOU1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyhudW1f cHV0PEM+KTsKIAogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0xEQkwKIAotI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAh IF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogICB0ZW1wbGF0ZSBjbGFzcyBudW1fZ2V0PEMsIGlz dHJlYW1idWZfaXRlcmF0b3I8Qz4gPjsKICAgdGVtcGxhdGUgY2xhc3MgbnVtX3B1dDxDLCBv c3RyZWFtYnVmX2l0ZXJhdG9yPEM+ID47CiAjZW5kaWYKQEAgLTg4LDcgKzg4LDcgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX0xEQkwKIAkJICAgdW5zaWduZWQgbG9uZyBsb25nJikg Y29uc3Q7CiAjZW5kaWYKIAotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogICAv LyBudW1fcHV0IG1lbWJlciBmdW5jdGlvbiB0ZW1wbGF0ZXMKICAgdGVtcGxhdGUKICAgICBv c3RyZWFtYnVmX2l0ZXJhdG9yPEM+CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2Mr KzExL2xvY2FsZS1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9sb2NhbGUtaW5z dC5jYwppbmRleCAzYTVjNjg0NGYxYi4uZWUzMzc1ZDcwNDAgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3Ny Yy9jKysxMS9sb2NhbGUtaW5zdC5jYwpAQCAtMzUsOCArMzUsMTcgQEAKICMgZGVmaW5lIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2VuZGlmCiAKLSNpbmNsdWRlIDxsb2NhbGU+Cisj aWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBkZWZpbmUgX0dMSUJDWFhfQlVJTERfQ1hY MTFfQUJJIDEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9CVUlMRF9DWFgxMV9BQkkgMAor I2VuZGlmCisKKyNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgogCisjaWYgX0dMSUJDWFhf QlVJTERfQ1hYMTFfQUJJID09IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKworI2luY2x1ZGUg PGxvY2FsZT4KIC8vIEluc3RhbnRpYXRpb24gY29uZmlndXJhdGlvbi4KICNpZm5kZWYgQwog IyBkZWZpbmUgQyBjaGFyCkBAIC01Miw3ICs2MSw3IEBAIG5hbWVzcGFjZSBzdGQgX0dMSUJD WFhfVklTSUJJTElUWShkZWZhdWx0KQogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJ T04KIAogICAvLyBtb25leXB1bmN0LCBtb25leV9nZXQsIGFuZCBtb25leV9wdXQKLSNpZiAh IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkg fHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgdGVtcGxhdGUgc3RydWN0IF9fbW9uZXlw dW5jdF9jYWNoZTxDLCBmYWxzZT47CiAgIHRlbXBsYXRlIHN0cnVjdCBfX21vbmV5cHVuY3Rf Y2FjaGU8QywgdHJ1ZT47CiAjZW5kaWYKQEAgLTY0LDcgKzczLDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX0NYWDExCiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCiAKICAg Ly8gbnVtcHVuY3QsIG51bXB1bmN0X2J5bmFtZSwgbnVtX2dldCwgYW5kIG51bV9wdXQKLSNp ZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgdGVtcGxhdGUgc3RydWN0IF9fbnVt cHVuY3RfY2FjaGU8Qz47CiAjZW5kaWYKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9DWFgx MQpAQCAtNzMsNyArODIsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfQ1hYMTEKIF9H TElCQ1hYX0VORF9OQU1FU1BBQ0VfQ1hYMTEKIAogICAvLyB0aW1lX2dldCBhbmQgdGltZV9w dXQKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgdGVtcGxhdGUgY2xhc3Mg X190aW1lcHVuY3Q8Qz47CiAgIHRlbXBsYXRlIHN0cnVjdCBfX3RpbWVwdW5jdF9jYWNoZTxD PjsKICAgdGVtcGxhdGUgY2xhc3MgdGltZV9wdXQ8Qywgb3N0cmVhbWJ1Zl9pdGVyYXRvcjxD PiA+OwpAQCAtOTcsMTMgKzEwNiwxMyBAQCBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDEx CiAgIGN0eXBlX2J5bmFtZTxDPjo6Y3R5cGVfYnluYW1lKGNvbnN0IHN0cmluZyYgX19zLCBz aXplX3QgX19yZWZzKQogICA6IGN0eXBlX2J5bmFtZShfX3MuY19zdHIoKSwgX19yZWZzKSB7 IH0KIAotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNF X0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogICBpbmxpbmUgdGVtcGxh dGUgY2xhc3MgX19jdHlwZV9hYnN0cmFjdF9iYXNlPEM+OwogICB0ZW1wbGF0ZSBjbGFzcyBj dHlwZV9ieW5hbWU8Qz47CiAjZW5kaWYKIAogICAvLyBjb2RlY3Z0Ci0jaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dM SUJDWFhfVVNFX0RVQUxfQUJJCiAgIGlubGluZSB0ZW1wbGF0ZSBjbGFzcyBfX2NvZGVjdnRf YWJzdHJhY3RfYmFzZTxDLCBjaGFyLCBtYnN0YXRlX3Q+OwogICB0ZW1wbGF0ZSBjbGFzcyBj b2RlY3Z0X2J5bmFtZTxDLCBjaGFyLCBtYnN0YXRlX3Q+OwogI2Vsc2UKQEAgLTExOCw3ICsx MjcsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfQ1hYMTEKIF9HTElCQ1hYX0VORF9O QU1FU1BBQ0VfQ1hYMTEKIAogLy8gdXNlX2ZhY2V0IGFuZCBoYXNfZmFjZXQgaW5zdGFudGlh dGlvbnMKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKIElOU1RBTlRJQVRFX0ZB Q0VUX0FDQ0VTU09SUyhjdHlwZTxDPik7CiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMo Y29kZWN2dDxDLCBjaGFyLCBtYnN0YXRlX3Q+KTsKICNlbmRpZgpAQCAtMTI3LDE0ICsxMzYs MTQgQEAgSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKG51bXB1bmN0PEM+KTsKIElOU1RB TlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyhtb25leXB1bmN0PEMsIGZhbHNlPik7CiAvLyBObyBl eHBsaWNpdCBpbnN0YW50aWF0aW9uIG9mIGhhc19mYWNldDxtb25leXB1bmN0PEMsIHRydWU+ PiBmb3Igc29tZSByZWFzb24uCiBJTlNUQU5USUFURV9VU0VfRkFDRVQgICAgICAobW9uZXlw dW5jdDxDLCB0cnVlPik7Ci0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiBJTlNU QU5USUFURV9GQUNFVF9BQ0NFU1NPUlMoX190aW1lcHVuY3Q8Qz4pOwogSU5TVEFOVElBVEVf RkFDRVRfQUNDRVNTT1JTKHRpbWVfcHV0PEM+KTsKICNlbmRpZgogSU5TVEFOVElBVEVfRkFD RVRfQUNDRVNTT1JTKHRpbWVfZ2V0PEM+KTsKIElOU1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09S UyhtZXNzYWdlczxDPik7CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAh IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAg Ly8gbG9jYWxlIGZ1bmN0aW9ucy4KICAgdGVtcGxhdGUKICAgICBDKgpAQCAtMTYzLDMgKzE3 Miw1IEBAIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogI2lmIGRlZmluZWQgX0dM SUJDWFhfTE9OR19ET1VCTEVfQ09NUEFUICYmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQog I2luY2x1ZGUgImNvbXBhdGliaWxpdHktbGRibC1mYWNldHMtYWxpYXNlcy5oIgogI2VuZGlm IC8vIF9HTElCQ1hYX0xPTkdfRE9VQkxFX0NPTVBBVAorCisjZW5kaWYgLy8gIF9HTElCQ1hY X0JVSUxEX0NYWDExX0FCSSA9PSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQg YS9saWJzdGRjKystdjMvc3JjL2MrKzExL3N0cmluZy1pbnN0LmNjIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9zdHJpbmctaW5zdC5jYwppbmRleCBkZGFhZmMwODE5OS4uZjI5MTc2ZGZj ODggMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvc3RyaW5nLWluc3QuY2MK KysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9zdHJpbmctaW5zdC5jYwpAQCAtMzUsNiAr MzUsMTIgQEAKICMgZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMQogI2VuZGlmCiAK KyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjIGRlZmluZSBfR0xJQkNYWF9ERUZJTklO R19DWFgxMV9BQklfSU5TVEFOVElBVElPTlMgMQorI2Vsc2UKKyMgZGVmaW5lIF9HTElCQ1hY X0RFRklOSU5HX0NYWDExX0FCSV9JTlNUQU5USUFUSU9OUyAwCisjZW5kaWYKKwogLy8gUHJl dmVudCB0aGUgYmFzaWNfc3RyaW5nKGNvbnN0IF9DaGFyVCosIGNvbnN0IF9BbGxvYyYpIGFu ZAogLy8gYmFzaWNfc3RyaW5nKHNpemVfdHlwZSwgX0NoYXJULCBjb25zdCBfQWxsb2MmKSBj b25zdHJ1Y3RvcnMgZnJvbSBiZWluZwogLy8gcmVwbGFjZWQgYnkgY29uc3RyYWluZWQgZnVu Y3Rpb24gdGVtcGxhdGVzLCBzbyB0aGF0IHdlIGluc3RhbnRpYXRlIHRoZQpAQCAtNDUsNiAr NTEsMjkgQEAKIAogI2luY2x1ZGUgPHN0cmluZz4KIAorI2lmIF9HTElCQ1hYX1VTRV9EVUFM X0FCSSB8fCBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaW5jbHVkZSA8c3RkZXhjZXB0Pgor CisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBpbmNsdWRlIDxiaXRzL2Nvd19zdHJp bmcuaD4KK3R5cGVkZWYgc3RkOjpfX3N0ZF9jb3dfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90 cmFpdHM8Y2hhcj4sCisJCQkgICAgICBzdGQ6OmFsbG9jYXRvcjxjaGFyPj4gY293c3RyOwor I2Vsc2UKK3R5cGVkZWYgc3RkOjpzdHJpbmcgY293c3RyOworI2VuZGlmCisKK3N0YXRpY19h c3NlcnQoc2l6ZW9mKHN0ZDo6X19jb3dfc3RyaW5nKSA9PSBzaXplb2YoY293c3RyKSwKKwkg ICAgICAic2l6ZW9mKHN0ZDo6c3RyaW5nKSBoYXMgY2hhbmdlZCIpOworc3RhdGljX2Fzc2Vy dChhbGlnbm9mKHN0ZDo6X19jb3dfc3RyaW5nKSA9PSBhbGlnbm9mKGNvd3N0ciksCisJICAg ICAgImFsaWdub2Yoc3RkOjpzdHJpbmcpIGhhcyBjaGFuZ2VkIik7CisjZW5kaWYgLy8gX0dM SUJDWFhfVVNFX0RVQUxfQUJJIHx8IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKworI2lmIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkgJiYgISBfR0xJQkNYWF9ERUZJTklOR19DWFgxMV9BQklf SU5TVEFOVElBVElPTlMKKyMgZGVmaW5lIF9HTElCQ1hYX0RFRklOSU5HX0NPV19TVFJJTkdf SU5TVEFOVElBVElPTlMgMQorIyBpbmNsdWRlIDxiaXRzL2Nvd19zdHJpbmcuaD4KKyMgZGVm aW5lIGJhc2ljX3N0cmluZyBfX3N0ZF9jb3dfc3RyaW5nCisjZW5kaWYKKwogLy8gSW5zdGFu dGlhdGlvbiBjb25maWd1cmF0aW9uLgogI2lmbmRlZiBDCiAjIGRlZmluZSBDIGNoYXIKQEAg LTU0LDEyICs4MywxNCBAQCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVm YXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKLSAgdHlwZWRl ZiBiYXNpY19zdHJpbmc8Qz4gUzsKK3R5cGVkZWYgYmFzaWNfc3RyaW5nPEMsIHN0ZDo6Y2hh cl90cmFpdHM8Qz4sIHN0ZDo6YWxsb2NhdG9yPEM+PiBTOwogCi0gIHRlbXBsYXRlIGNsYXNz IGJhc2ljX3N0cmluZzxDPjsKKyAgdGVtcGxhdGUgY2xhc3MgYmFzaWNfc3RyaW5nPEMsIHN0 ZDo6Y2hhcl90cmFpdHM8Qz4sIHN0ZDo6YWxsb2NhdG9yPEM+PjsKKyNpZiAhIF9HTElCQ1hY X0RFRklOSU5HX0NPV19TVFJJTkdfSU5TVEFOVElBVElPTlMKICAgdGVtcGxhdGUgUyBvcGVy YXRvcisoY29uc3QgQyosIGNvbnN0IFMmKTsKICAgdGVtcGxhdGUgUyBvcGVyYXRvcisoQywg Y29uc3QgUyYpOwogICB0ZW1wbGF0ZSBTIG9wZXJhdG9yKyhjb25zdCBTJiwgY29uc3QgUyYp OworI2VuZGlmCiAKICAgLy8gT25seSBvbmUgdGVtcGxhdGUga2V5d29yZCBhbGxvd2VkIGhl cmUuCiAgIC8vIFNlZSBjb3JlIGlzc3VlICM0NiAoTkFEKQpAQCAtNzMsNyArMTA0LDcgQEAg X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgdGVtcGxhdGUKICAgICBTOjpi YXNpY19zdHJpbmcoUzo6aXRlcmF0b3IsIFM6Oml0ZXJhdG9yLCBjb25zdCBhbGxvY2F0b3I8 Qz4mKTsKIAotI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJICYmICEgX0dMSUJDWFhfREVGSU5JTkdfQ09XX1NUUklOR19JTlNUQU5USUFU SU9OUwogICB0ZW1wbGF0ZQogICAgIHZvaWQKICAgICBTOjpfTV9jb25zdHJ1Y3QoUzo6aXRl cmF0b3IsIFM6Oml0ZXJhdG9yLCBmb3J3YXJkX2l0ZXJhdG9yX3RhZyk7CkBAIC05MSw3ICsx MjIsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIHZvaWQKICAg ICBTOjpfTV9jb25zdHJ1Y3QoY29uc3QgQyosIGNvbnN0IEMqLCBmb3J3YXJkX2l0ZXJhdG9y X3RhZyk7CiAKLSNlbHNlIC8vICFfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjZWxzZSAvLyAh IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgX0dMSUJDWFhfREVGSU5JTkdfQ09XX1NUUklO R19JTlNUQU5USUFUSU9OUwogCiAgIHRlbXBsYXRlCiAgICAgQyoKQEAgLTExMSw2ICsxNDIs NyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogX0dMSUJDWFhfRU5EX05B TUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZQogCisjaWYgISBfR0xJQkNYWF9ERUZJ TklOR19DT1dfU1RSSU5HX0lOU1RBTlRJQVRJT05TCiBuYW1lc3BhY2UgX19nbnVfY3h4IF9H TElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFD RV9WRVJTSU9OCkBAIC0xMjEsMyArMTUzLDQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVz cGFjZQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL3dsb2Nh bGUtaW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvd2xvY2FsZS1pbnN0LmNjCmlu ZGV4IGRjMmQyMzQ5MDU1Li5iNWM3OThiZmU2NCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L3NyYy9jKysxMS93bG9jYWxlLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysx MS93bG9jYWxlLWluc3QuY2MKQEAgLTMwLDcgKzMwLDkgQEAKICNkZWZpbmUgX0dMSUJDWFhf VVNFX0NYWDExX0FCSSAwCiAjaW5jbHVkZSA8Yml0cy9jKytjb25maWcuaD4KIAotI2lmZGVm IF9HTElCQ1hYX1VTRV9XQ0hBUl9UCi0jZGVmaW5lIEMgd2NoYXJfdAotI2luY2x1ZGUgImxv Y2FsZS1pbnN0LmNjIgotI2VuZGlmIC8vIF9HTElCQ1hYX1VTRV9XQ0hBUl9UCisjaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjIGlmZGVmIF9HTElCQ1hYX1VTRV9XQ0hBUl9UCisj ICBkZWZpbmUgQyB3Y2hhcl90CisjICBpbmNsdWRlICJsb2NhbGUtaW5zdC5jYyIKKyMgZW5k aWYgLy8gX0dMSUJDWFhfVVNFX1dDSEFSX1QKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlic3Rk YysrLXYzL3NyYy9jKys5OC9NYWtlZmlsZS5hbSBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgv TWFrZWZpbGUuYW0KaW5kZXggNzJiZTJkMmQyZWEuLjg2MjQyMzk3ZDMzIDEwMDY0NAotLS0g YS9saWJzdGRjKystdjMvc3JjL2MrKzk4L01ha2VmaWxlLmFtCisrKyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrOTgvTWFrZWZpbGUuYW0KQEAgLTg2LDEyICs4Niw4IEBAIGhvc3Rfc291cmNl c19leHRyYSA9IFwKIGMrK2xvY2FsZS5jYzogJHtnbGliY3h4X3NyY2Rpcn0vJChDTE9DQUxF X0NDKQogCSQoTE5fUykgJHtnbGliY3h4X3NyY2Rpcn0vJChDTE9DQUxFX0NDKSAuLyRAIHx8 IHRydWUKIAotaWYgRU5BQkxFX0RVQUxfQUJJCi1jeHgxMV9hYmlfc291cmNlcyA9IFwKLQlj b3ctaXN0cmVhbS1zdHJpbmcuY2MKLWVsc2UKLWN4eDExX2FiaV9zb3VyY2VzID0KLWVuZGlm CitiYXNpY19maWxlLmNjOiAke2dsaWJjeHhfc3JjZGlyfS8kKEJBU0lDX0ZJTEVfQ0MpCisJ JChMTl9TKSAke2dsaWJjeHhfc3JjZGlyfS8kKEJBU0lDX0ZJTEVfQ0MpIC4vJEAgfHwgdHJ1 ZQogCiBpZiBFTkFCTEVfRVhURVJOX1RFTVBMQVRFCiAjIFhURU1QTEFURV9GTEFHUyA9IC1m bm8taW1wbGljaXQtdGVtcGxhdGVzCkBAIC0xMTQsNiArMTEwLDcgQEAgc291cmNlcyA9IFwK IAltdF9hbGxvY2F0b3IuY2MgXAogCWNvZGVjdnQuY2MgXAogCWNvbXBsZXhfaW8uY2MgXAor CWNvdy1pc3RyZWFtLXN0cmluZy5jYyBcCiAJZ2xvYmFsc19pby5jYyBcCiAJaGFzaF90cjEu Y2MgXAogCWhhc2h0YWJsZV90cjEuY2MgXApAQCAtMTM2LDcgKzEzMyw2IEBAIHNvdXJjZXMg PSBcCiAJaXN0cmVhbS1zdHJpbmcuY2MgXAogCXN0cmVhbWJ1Zi5jYyBcCiAJdmFsYXJyYXku Y2MgXAotCSR7Y3h4MTFfYWJpX3NvdXJjZXN9IFwKIAkke2hvc3Rfc291cmNlc30gXAogCSR7 aG9zdF9zb3VyY2VzX2V4dHJhfSBcCiAJJHtpbnN0X3NvdXJjZXN9IFwKZGlmZiAtLWdpdCBh L2xpYnN0ZGMrKy12My9zcmMvYysrOTgvTWFrZWZpbGUuaW4gYi9saWJzdGRjKystdjMvc3Jj L2MrKzk4L01ha2VmaWxlLmluCmluZGV4IDk1ZTkwOWIxMDQ5Li43NjFmYmNmNjEzNSAxMDA2 NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9NYWtlZmlsZS5pbgorKysgYi9saWJz dGRjKystdjMvc3JjL2MrKzk4L01ha2VmaWxlLmluCkBAIC0xMjEsMzAgKzEyMSwyOSBAQCBD T05GSUdfQ0xFQU5fRklMRVMgPQogQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KIExUTElC UkFSSUVTID0gJChub2luc3RfTFRMSUJSQVJJRVMpCiBsaWJjX185OGNvbnZlbmllbmNlX2xh X0xJQkFERCA9Ci1ARU5BQkxFX0RVQUxfQUJJX1RSVUVAYW1fX29iamVjdHNfMSA9IGNvdy1p c3RyZWFtLXN0cmluZy5sbwotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGFtX19vYmplY3RzXzIg PSBjb2xsYXRlX21lbWJlcnNfY293LmxvIFwKK0BFTkFCTEVfRFVBTF9BQklfVFJVRUBhbV9f b2JqZWN0c18xID0gY29sbGF0ZV9tZW1iZXJzX2Nvdy5sbyBcCiBARU5BQkxFX0RVQUxfQUJJ X1RSVUVACW1lc3NhZ2VzX21lbWJlcnNfY293LmxvIFwKIEBFTkFCTEVfRFVBTF9BQklfVFJV RUAJbW9uZXRhcnlfbWVtYmVyc19jb3cubG8gXAogQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAlu dW1lcmljX21lbWJlcnNfY293LmxvCi1hbV9fb2JqZWN0c18zID0gJChhbV9fb2JqZWN0c18y KSBjb2RlY3Z0X21lbWJlcnMubG8gY29sbGF0ZV9tZW1iZXJzLmxvIFwKK2FtX19vYmplY3Rz XzIgPSAkKGFtX19vYmplY3RzXzEpIGNvZGVjdnRfbWVtYmVycy5sbyBjb2xsYXRlX21lbWJl cnMubG8gXAogCW1lc3NhZ2VzX21lbWJlcnMubG8gbW9uZXRhcnlfbWVtYmVycy5sbyBudW1l cmljX21lbWJlcnMubG8gXAogCXRpbWVfbWVtYmVycy5sbwotYW1fX29iamVjdHNfNCA9IGMr K2xvY2FsZS5sbwotQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUBhbV9fb2JqZWN0c181 ID0gYWxsb2NhdG9yLWluc3QubG8gXAorYW1fX29iamVjdHNfMyA9IGMrK2xvY2FsZS5sbwor QEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUBhbV9fb2JqZWN0c180ID0gYWxsb2NhdG9y LWluc3QubG8gXAogQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY29uY2VwdC1pbnN0 LmxvIGV4dC1pbnN0LmxvIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACW1pc2Mt aW5zdC5sbwotYW1fX29iamVjdHNfNiA9IHBhcmFsbGVsX3NldHRpbmdzLmxvCi1hbV9fb2Jq ZWN0c183ID0gYml0bWFwX2FsbG9jYXRvci5sbyBwb29sX2FsbG9jYXRvci5sbyBtdF9hbGxv Y2F0b3IubG8gXAotCWNvZGVjdnQubG8gY29tcGxleF9pby5sbyBnbG9iYWxzX2lvLmxvIGhh c2hfdHIxLmxvIFwKLQloYXNodGFibGVfdHIxLmxvIGlvc19mYWlsdXJlLmxvIGlvc19pbml0 LmxvIGlvc19sb2NhbGUubG8gXAotCWxpc3QubG8gbGlzdC1hdXgubG8gbGlzdC1hdXgtMi5s byBsaXN0X2Fzc29jaWF0ZWQubG8gXAotCWxpc3RfYXNzb2NpYXRlZC0yLmxvIGxvY2FsZS5s byBsb2NhbGVfZmFjZXRzLmxvIFwKLQltYXRoX3N0dWJzX2Zsb2F0LmxvIG1hdGhfc3R1YnNf bG9uZ19kb3VibGUubG8gc3RkZXhjZXB0LmxvIFwKLQlzdHJzdHJlYW0ubG8gdHJlZS5sbyBp c3RyZWFtLmxvIGlzdHJlYW0tc3RyaW5nLmxvIHN0cmVhbWJ1Zi5sbyBcCi0JdmFsYXJyYXku bG8gJChhbV9fb2JqZWN0c18xKSAkKGFtX19vYmplY3RzXzMpICQoYW1fX29iamVjdHNfNCkg XAotCSQoYW1fX29iamVjdHNfNSkgJChhbV9fb2JqZWN0c182KQorYW1fX29iamVjdHNfNSA9 IHBhcmFsbGVsX3NldHRpbmdzLmxvCithbV9fb2JqZWN0c182ID0gYml0bWFwX2FsbG9jYXRv ci5sbyBwb29sX2FsbG9jYXRvci5sbyBtdF9hbGxvY2F0b3IubG8gXAorCWNvZGVjdnQubG8g Y29tcGxleF9pby5sbyBjb3ctaXN0cmVhbS1zdHJpbmcubG8gZ2xvYmFsc19pby5sbyBcCisJ aGFzaF90cjEubG8gaGFzaHRhYmxlX3RyMS5sbyBpb3NfZmFpbHVyZS5sbyBpb3NfaW5pdC5s byBcCisJaW9zX2xvY2FsZS5sbyBsaXN0LmxvIGxpc3QtYXV4LmxvIGxpc3QtYXV4LTIubG8g XAorCWxpc3RfYXNzb2NpYXRlZC5sbyBsaXN0X2Fzc29jaWF0ZWQtMi5sbyBsb2NhbGUubG8g XAorCWxvY2FsZV9mYWNldHMubG8gbWF0aF9zdHVic19mbG9hdC5sbyBtYXRoX3N0dWJzX2xv bmdfZG91YmxlLmxvIFwKKwlzdGRleGNlcHQubG8gc3Ryc3RyZWFtLmxvIHRyZWUubG8gaXN0 cmVhbS5sbyBpc3RyZWFtLXN0cmluZy5sbyBcCisJc3RyZWFtYnVmLmxvIHZhbGFycmF5Lmxv ICQoYW1fX29iamVjdHNfMikgJChhbV9fb2JqZWN0c18zKSBcCisJJChhbV9fb2JqZWN0c180 KSAkKGFtX19vYmplY3RzXzUpCiBAR0xJQkNYWF9IT1NURURfVFJVRUBhbV9saWJjX185OGNv bnZlbmllbmNlX2xhX09CSkVDVFMgPSAgXAotQEdMSUJDWFhfSE9TVEVEX1RSVUVACSQoYW1f X29iamVjdHNfNykKK0BHTElCQ1hYX0hPU1RFRF9UUlVFQAkkKGFtX19vYmplY3RzXzYpCiBs aWJjX185OGNvbnZlbmllbmNlX2xhX09CSkVDVFMgPSAkKGFtX2xpYmNfXzk4Y29udmVuaWVu Y2VfbGFfT0JKRUNUUykKIEFNX1ZfbHQgPSAkKGFtX192X2x0X0BBTV9WQCkKIGFtX192X2x0 XyA9ICQoYW1fX3ZfbHRfQEFNX0RFRkFVTFRfVkApCkBAIC00NjksMTAgKzQ2OCw2IEBAIGhv c3Rfc291cmNlcyA9IFwKIGhvc3Rfc291cmNlc19leHRyYSA9IFwKIAljKytsb2NhbGUuY2MK IAotQEVOQUJMRV9EVUFMX0FCSV9GQUxTRUBjeHgxMV9hYmlfc291cmNlcyA9IAotQEVOQUJM RV9EVUFMX0FCSV9UUlVFQGN4eDExX2FiaV9zb3VyY2VzID0gXAotQEVOQUJMRV9EVUFMX0FC SV9UUlVFQAljb3ctaXN0cmVhbS1zdHJpbmcuY2MKLQogIyBYVEVNUExBVEVfRkxBR1MgPQog QEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfRkFMU0VAaW5zdF9zb3VyY2VzID0gCiAKQEAgLTQ5 Miw2ICs0ODcsNyBAQCBzb3VyY2VzID0gXAogCW10X2FsbG9jYXRvci5jYyBcCiAJY29kZWN2 dC5jYyBcCiAJY29tcGxleF9pby5jYyBcCisJY293LWlzdHJlYW0tc3RyaW5nLmNjIFwKIAln bG9iYWxzX2lvLmNjIFwKIAloYXNoX3RyMS5jYyBcCiAJaGFzaHRhYmxlX3RyMS5jYyBcCkBA IC01MTQsNyArNTEwLDYgQEAgc291cmNlcyA9IFwKIAlpc3RyZWFtLXN0cmluZy5jYyBcCiAJ c3RyZWFtYnVmLmNjIFwKIAl2YWxhcnJheS5jYyBcCi0JJHtjeHgxMV9hYmlfc291cmNlc30g XAogCSR7aG9zdF9zb3VyY2VzfSBcCiAJJHtob3N0X3NvdXJjZXNfZXh0cmF9IFwKIAkke2lu c3Rfc291cmNlc30gXApAQCAtODY5LDYgKzg2NCw5IEBAIHRpbWVfbWVtYmVycy5jYzogJHtn bGliY3h4X3NyY2Rpcn0vJChDVElNRV9DQykKIGMrK2xvY2FsZS5jYzogJHtnbGliY3h4X3Ny Y2Rpcn0vJChDTE9DQUxFX0NDKQogCSQoTE5fUykgJHtnbGliY3h4X3NyY2Rpcn0vJChDTE9D QUxFX0NDKSAuLyRAIHx8IHRydWUKIAorYmFzaWNfZmlsZS5jYzogJHtnbGliY3h4X3NyY2Rp cn0vJChCQVNJQ19GSUxFX0NDKQorCSQoTE5fUykgJHtnbGliY3h4X3NyY2Rpcn0vJChCQVNJ Q19GSUxFX0NDKSAuLyRAIHx8IHRydWUKKwogdnBhdGggJSAkKHRvcF9zcmNkaXIpL3NyYy9j Kys5OAogCiAjIFVzZSBzcGVjaWFsIHJ1bGVzIHRvIGNvbXBpbGUgd2l0aCAtZmltcGxpY2l0 LXRlbXBsYXRlcy4KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvY29tcGF0 aWJpbGl0eS5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvY29tcGF0aWJpbGl0eS5jYwpp bmRleCA1ZmYyMWYwOWM0My4uYjdmZWFlMjY0OWQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12 My9zcmMvYysrOTgvY29tcGF0aWJpbGl0eS5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2Mr Kzk4L2NvbXBhdGliaWxpdHkuY2MKQEAgLTI1LDcgKzI1LDggQEAKICNkZWZpbmUgX0dMSUJD WFhfVVNFX0NYWDExX0FCSSAwCiAjaW5jbHVkZSA8Yml0cy9jKytjb25maWcuaD4KIAotI2lm IGRlZmluZWQoX0dMSUJDWFhfU1lNVkVSX0dOVSkgJiYgZGVmaW5lZChfR0xJQkNYWF9TSEFS RUQpIFwKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgXAorICAgICYmIGRlZmluZWQo X0dMSUJDWFhfU1lNVkVSX0dOVSkgJiYgZGVmaW5lZChfR0xJQkNYWF9TSEFSRUQpCVwKICAg ICAmJiBkZWZpbmVkKF9HTElCQ1hYX0hBVkVfQVNfU1lNVkVSX0RJUkVDVElWRSlcCiAgICAg JiYgZGVmaW5lZChfR0xJQkNYWF9IQVZFX1NZTVZFUl9TWU1CT0xfUkVOQU1JTkdfUlVOVElN RV9TVVBQT1JUKQogI2RlZmluZSBpc3RyZWFtYnVmX2l0ZXJhdG9yIGlzdHJlYW1idWZfaXRl cmF0b3JYWApAQCAtMjIwLDcgKzIyMSw4IEBAIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVS U0lPTgogCiAvLyBOQjogVGhlc2Ugc3ltYm9scyByZW5hbWVzIHNob3VsZCBnbyBpbnRvIHRo ZSBzaGFyZWQgbGlicmFyeSBvbmx5LAogLy8gYW5kIG9ubHkgdGhvc2Ugc2hhcmVkIGxpYnJh cmllcyB0aGF0IHN1cHBvcnQgdmVyc2lvbmluZy4KLSNpZiBkZWZpbmVkKF9HTElCQ1hYX1NZ TVZFUl9HTlUpICYmIGRlZmluZWQoX0dMSUJDWFhfU0hBUkVEKSBcCisjaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJIFwKKyAgICAmJiBkZWZpbmVkKF9HTElCQ1hYX1NZTVZFUl9HTlUp ICYmIGRlZmluZWQoX0dMSUJDWFhfU0hBUkVEKQlcCiAgICAgJiYgZGVmaW5lZChfR0xJQkNY WF9IQVZFX0FTX1NZTVZFUl9ESVJFQ1RJVkUpIFwKICAgICAmJiBkZWZpbmVkKF9HTElCQ1hY X0hBVkVfU1lNVkVSX1NZTUJPTF9SRU5BTUlOR19SVU5USU1FX1NVUFBPUlQpCiAKQEAgLTUy NSw3ICs1MjcsNyBAQCBfR0xJQkNYWF9NQVRITF9XUkFQUEVSMSAodGFuLCBHTElCQ1hYXzMu NCk7CiAjZW5kaWYKICNlbmRpZiAvLyBfR0xJQkNYWF9MT05HX0RPVUJMRV9DT01QQVQKIAot I2VuZGlmCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICNpZmRlZiBf R0xJQkNYWF9MT05HX0RPVUJMRV9DT01QQVQKIGV4dGVybiB2b2lkICpfWlRWTjEwX19jeHhh Yml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FW107CmRpZmYgLS1naXQgYS9saWJzdGRj KystdjMvc3JjL2MrKzk4L2Nvdy1pc3RyZWFtLXN0cmluZy5jYyBiL2xpYnN0ZGMrKy12My9z cmMvYysrOTgvY293LWlzdHJlYW0tc3RyaW5nLmNjCmluZGV4IDQwNWY5ZWNiNzgxLi5mMDBj YmMwOWY2OSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9jb3ctaXN0cmVh bS1zdHJpbmcuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9jb3ctaXN0cmVhbS1z dHJpbmcuY2MKQEAgLTI3LDQgKzI3LDggQEAKIC8vCiAKICNkZWZpbmUgX0dMSUJDWFhfVVNF X0NYWDExX0FCSSAwCi0jaW5jbHVkZSAiaXN0cmVhbS1zdHJpbmcuY2MiCisjaW5jbHVkZSA8 Yml0cy9jKytjb25maWcuaD4KKworI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBp bmNsdWRlICJpc3RyZWFtLXN0cmluZy5jYyIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlic3Rk YysrLXYzL3NyYy9jKys5OC9oYXNoX3RyMS5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgv aGFzaF90cjEuY2MKaW5kZXggZTEzMmMwMWJmOGUuLmEyY2QyYzUwOWYzIDEwMDY0NAotLS0g YS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2hhc2hfdHIxLmNjCisrKyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrOTgvaGFzaF90cjEuY2MKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg Imhhc2gtbG9uZy1kb3VibGUtdHIxLWF1eC5jYyIKIAorI2lmICEgX0dMSUJDWFhfVVNFX0NY WDExX0FCSQogbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCiB7 CiAgIG5hbWVzcGFjZSB0cjEKQEAgLTU3LDMgKzU4LDQgQEAgbmFtZXNwYWNlIHN0ZCBfR0xJ QkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCiAjZW5kaWYKICAgfQogfQorI2VuZGlmIC8vICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9j Kys5OC9pb3NfZmFpbHVyZS5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvaW9zX2ZhaWx1 cmUuY2MKaW5kZXggMjc0NzZlY2NiZGIuLjQzMjkxODcxMTk2IDEwMDY0NAotLS0gYS9saWJz dGRjKystdjMvc3JjL2MrKzk4L2lvc19mYWlsdXJlLmNjCisrKyBiL2xpYnN0ZGMrKy12My9z cmMvYysrOTgvaW9zX2ZhaWx1cmUuY2MKQEAgLTI5LDIyICsyOSwyNCBAQAogI2RlZmluZSBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlIDxpb3M+CiAKLSNpZiBfR0xJQkNY WF9VU0VfRFVBTF9BQkkgJiYgX19jcHBfcnR0aQotI2luY2x1ZGUgPGN4eGFiaS5oPgotI2lu Y2x1ZGUgPHR5cGVpbmZvPgotI2VuZGlmCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ IHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCisjIGlmIF9HTElCQ1hYX1VTRV9EVUFMX0FC SSAmJiBfX2NwcF9ydHRpCisjICBpbmNsdWRlIDxjeHhhYmkuaD4KKyMgIGluY2x1ZGUgPHR5 cGVpbmZvPgorIyBlbmRpZgogCi0jaWZkZWYgX0dMSUJDWFhfVVNFX05MUworIyBpZmRlZiBf R0xJQkNYWF9VU0VfTkxTCiAjICBpbmNsdWRlIDxsaWJpbnRsLmg+CiAjICBkZWZpbmUgXyht c2dpZCkgICBnZXR0ZXh0IChtc2dpZCkKLSNlbHNlCisjIGVsc2UKICMgIGRlZmluZSBfKG1z Z2lkKSAgIChtc2dpZCkKLSNlbmRpZgorIyBlbmRpZgogCiBuYW1lc3BhY2Ugc3RkIF9HTElC Q1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgaW9zX2Jhc2U6OmZh aWx1cmU6OmZhaWx1cmUoY29uc3Qgc3RyaW5nJiBfX3N0cikgdGhyb3coKQogICA6IF9NX21z ZyhfX3N0cikgeyB9CiAKQEAgLTU0LDYgKzU2LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICAgY29uc3QgY2hhcioKICAgaW9zX2Jhc2U6OmZhaWx1cmU6OndoYXQo KSBjb25zdCB0aHJvdygpCiAgIHsgcmV0dXJuIF9NX21zZy5jX3N0cigpOyB9CisjZW5kaWYK IAogI2lmIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogICAvLyBXaGVuIHRoZSBkdWFsIEFCSSBp cyBlbmFibGVkIF9fdGhyb3dfaW9zX2ZhaWx1cmUoKSBpcyBkZWZpbmVkIGluCkBAIC04Miw3 ICs4NSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgIH0KICNlbmRp ZiAvLyBfX2NwcF9ydHRpCiAKLSNlbHNlIC8vICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCisj ZWxpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIAogICB2b2lkCiAgIF9fdGhyb3dfaW9z X2ZhaWx1cmUoY29uc3QgY2hhciogX19zIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQpAQCAt OTIsNyArOTUsOSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICBfX3Ro cm93X2lvc19mYWlsdXJlKGNvbnN0IGNoYXIqIHN0ciwgaW50KQogICB7IF9fdGhyb3dfaW9z X2ZhaWx1cmUoc3RyKTsgfQogCi0jZW5kaWYgLy8gX0dMSUJDWFhfVVNFX0RVQUxfQUJJCisj ZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKIF9HTElCQ1hYX0VORF9OQU1F U1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL3NyYy9jKys5OC9pc3RyZWFtLXN0cmluZy5jYyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrOTgvaXN0cmVhbS1zdHJpbmcuY2MKaW5kZXggNDg1OTk4N2ZjYzIuLmI2NDM0 N2Y3OTZlIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2lzdHJlYW0tc3Ry aW5nLmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvaXN0cmVhbS1zdHJpbmcuY2MK QEAgLTMxLDYgKzMxLDE2IEBACiAvLyBieSBhbm90aGVyIGZpbGUgd2hpY2ggZGVmaW5lcyBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJPTAuCiAjIGRlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJIDEKICNlbmRpZgorCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBkZWZpbmUg X0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJIDEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9C VUlMRF9DWFgxMV9BQkkgMAorI2VuZGlmCisKKyNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5o PgorCisjaWYgX0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJID09IF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKICNpbmNsdWRlIDxpc3RyZWFtPgogI2luY2x1ZGUgPHN0cmluZz4KIApAQCAtMjg5 LDMgKzI5OSw0IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIF9HTElC Q1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKKyNlbmRpZiAvLyBf R0xJQkNYWF9CVUlMRF9DWFgxMV9BQkkgPT0gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9sb2NhbGVfZmFjZXRzLmNjIGIvbGli c3RkYysrLXYzL3NyYy9jKys5OC9sb2NhbGVfZmFjZXRzLmNjCmluZGV4IGMwYmI3ZmQxODFk Li43YTkyOWQ1MWJlNCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9sb2Nh bGVfZmFjZXRzLmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvbG9jYWxlX2ZhY2V0 cy5jYwpAQCAtMTI1LDYgKzEyNSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgICAgcmV0dXJuIF9fdGVzdDsKICAgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAgIGJvb2wKICAgX192ZXJpZnlfZ3JvdXBpbmcoY29uc3QgY2hhciogX19ncm91 cGluZywgc2l6ZV90IF9fZ3JvdXBpbmdfc2l6ZSwKIAkJICAgIGNvbnN0IHN0cmluZyYgX19n cm91cGluZ190bXApIHRocm93KCkKQEAgLTEzMyw2ICsxMzQsNyBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9fZ3JvdXBpbmdfdG1wLmNfc3RyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX19ncm91cGluZ190bXAuc2l6ZSgpKTsKICAgfQorI2VuZGlmCiAKICAgbmFtZXNw YWNlCiAgIHsKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvc3RkZXhjZXB0 LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9zdGRleGNlcHQuY2MKaW5kZXggZThjOTFm NWMxY2QuLmU4MjU1NGUwYWVjIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzk4 L3N0ZGV4Y2VwdC5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L3N0ZGV4Y2VwdC5j YwpAQCAtMzUsOCArMzUsMTAgQEAgbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZ KGRlZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCisjaWYg ISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIGxvZ2ljX2Vycm9yOjpsb2dpY19lcnJvcihj b25zdCBzdHJpbmcmIF9fYXJnKQogICA6IGV4Y2VwdGlvbigpLCBfTV9tc2coX19hcmcpIHsg fQorI2VuZGlmCiAKICAgbG9naWNfZXJyb3I6On5sb2dpY19lcnJvcigpIF9HTElCQ1hYX1VT RV9OT0VYQ0VQVCB7IH0KIApAQCAtNDQsMjggKzQ2LDM4IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAgIGxvZ2ljX2Vycm9yOjp3aGF0KCkgY29uc3QgX0dMSUJDWFhf VVNFX05PRVhDRVBUCiAgIHsgcmV0dXJuIF9NX21zZy5jX3N0cigpOyB9CiAKKyNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgZG9tYWluX2Vycm9yOjpkb21haW5fZXJyb3IoY29u c3Qgc3RyaW5nJiBfX2FyZykKICAgOiBsb2dpY19lcnJvcihfX2FyZykgeyB9CisjZW5kaWYK IAogICBkb21haW5fZXJyb3I6On5kb21haW5fZXJyb3IoKSBfR0xJQkNYWF9VU0VfTk9FWENF UFQgeyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgaW52YWxpZF9hcmd1 bWVudDo6aW52YWxpZF9hcmd1bWVudChjb25zdCBzdHJpbmcmIF9fYXJnKQogICA6IGxvZ2lj X2Vycm9yKF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIGludmFsaWRfYXJndW1lbnQ6On5pbnZh bGlkX2FyZ3VtZW50KCkgX0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCisjaWYgISBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJCiAgIGxlbmd0aF9lcnJvcjo6bGVuZ3RoX2Vycm9yKGNvbnN0 IHN0cmluZyYgX19hcmcpCiAgIDogbG9naWNfZXJyb3IoX19hcmcpIHsgfQorI2VuZGlmCiAK ICAgbGVuZ3RoX2Vycm9yOjp+bGVuZ3RoX2Vycm9yKCkgX0dMSUJDWFhfVVNFX05PRVhDRVBU IHsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIG91dF9vZl9yYW5nZTo6 b3V0X29mX3JhbmdlKGNvbnN0IHN0cmluZyYgX19hcmcpCiAgIDogbG9naWNfZXJyb3IoX19h cmcpIHsgfQorI2VuZGlmCiAKICAgb3V0X29mX3JhbmdlOjp+b3V0X29mX3JhbmdlKCkgX0dM SUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ CiAgIHJ1bnRpbWVfZXJyb3I6OnJ1bnRpbWVfZXJyb3IoY29uc3Qgc3RyaW5nJiBfX2FyZykK ICAgOiBleGNlcHRpb24oKSwgX01fbXNnKF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIHJ1bnRp bWVfZXJyb3I6On5ydW50aW1lX2Vycm9yKCkgX0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQog CkBAIC03MywxOCArODUsMjQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgcnVudGltZV9lcnJvcjo6d2hhdCgpIGNvbnN0IF9HTElCQ1hYX1VTRV9OT0VYQ0VQVAog ICB7IHJldHVybiBfTV9tc2cuY19zdHIoKTsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAgIHJhbmdlX2Vycm9yOjpyYW5nZV9lcnJvcihjb25zdCBzdHJpbmcmIF9fYXJn KQogICA6IHJ1bnRpbWVfZXJyb3IoX19hcmcpIHsgfQorI2VuZGlmCiAKICAgcmFuZ2VfZXJy b3I6On5yYW5nZV9lcnJvcigpIF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0KIAorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICBvdmVyZmxvd19lcnJvcjo6b3ZlcmZsb3dfZXJy b3IoY29uc3Qgc3RyaW5nJiBfX2FyZykKICAgOiBydW50aW1lX2Vycm9yKF9fYXJnKSB7IH0K KyNlbmRpZgogCiAgIG92ZXJmbG93X2Vycm9yOjp+b3ZlcmZsb3dfZXJyb3IoKSBfR0xJQkNY WF9VU0VfTk9FWENFUFQgeyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAg dW5kZXJmbG93X2Vycm9yOjp1bmRlcmZsb3dfZXJyb3IoY29uc3Qgc3RyaW5nJiBfX2FyZykK ICAgOiBydW50aW1lX2Vycm9yKF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIHVuZGVyZmxvd19l cnJvcjo6fnVuZGVyZmxvd19lcnJvcigpIF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0KIAo= --------------K7vDB54S6YaD31svKh0Xth0U--