From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id 1A8463858C1F; Sat, 19 Aug 2023 19:44:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1A8463858C1F 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-wr1-x430.google.com with SMTP id ffacd0b85a97d-313e742a787so1230197f8f.1; Sat, 19 Aug 2023 12:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692474275; x=1693079075; 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=9lz38h0Caj4ZF8SMz1r+x1e4QCxYbJV9fwB4lygebxk=; b=rXSoXtUXhlsLqUJUxJghI/25Au67j+zzK1RMZXpRXGhWrcq0YExvIGZRzP9Au4h6dC 2SPB0ui3BeNM/q9m5J3yLTByo4uwFrgfIhcCUsi15xX5qXTgDPrzi8ZvEi9/I/2wd7AG VQQFstSQbWFwWXfSB2Z/mB1WH4hV20jWrIj+giVCs0dUOFwGhyNweAyEjCUb2YI+EYQC sKlv712yeWgOmgd37bYJUdSk+H+QPhLf5QqMHt50lmarpN++zBVujvK7cDSuqfdtlbDg GvxgBPdQhxn+5Yt309bKoIRIatgwj1hx2xQW9uOqiX9C+cVuA2I0EUQUuclN/c6K92jJ w44g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692474275; x=1693079075; 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=9lz38h0Caj4ZF8SMz1r+x1e4QCxYbJV9fwB4lygebxk=; b=WeBfEGa3YKFjahncybeft/RvmEFerzgxFhHoKchNXNjAa2+xsvINRHbv4MXuGyhQIo nbmKWubkgCN6/tI8Kzufp126nxhoEHCnYY8MaHVcJw3g7ruhrYQjWCMi7/qVmhLw+c8M M9qhidhXAVuhxt5EESLpXoufWnhK+75K3lzeqmKz9fPZc/rNMYCi8e8KQmNDSBIAV/I6 v1DXPoMERihY7/vGZVG5Ci1/xOBHpc25aJTiozqivOLlfXsieljhcXvM/teCrKuekTMy R4PZXlA8W/MW7yp0kK0aRW+vXqR95e9Cb7FZh2H2MJhrrNOf1SYu1/TxlwMOPNgkXDvB HGSQ== X-Gm-Message-State: AOJu0YyDgt9J9B1o0yOS9cyoWs5Ip6RuHH5/RidJBIaxC/rLeii2Hvhm +AqCOUXcgyu+thBygZznRHk= X-Google-Smtp-Source: AGHT+IE+bMqER65jfCmkwrlps2iq1HRHuYSh09j93ZrP7uNeI/qU2q5LETFiiDm48uASTov2b3Ypwg== X-Received: by 2002:adf:f986:0:b0:317:dadc:4a63 with SMTP id f6-20020adff986000000b00317dadc4a63mr1637943wrr.8.1692474275225; Sat, 19 Aug 2023 12:44:35 -0700 (PDT) Received: from ?IPV6:2a01:e0a:1dc:b1c0:3f7c:46e3:115:12fb? ([2a01:e0a:1dc:b1c0:3f7c:46e3:115:12fb]) by smtp.gmail.com with ESMTPSA id q1-20020a1cf301000000b003feea62440bsm428591wmq.43.2023.08.19.12.44.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 19 Aug 2023 12:44:34 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------lHd7L4K1Z0sd7uqaa600qolm" Message-ID: Date: Sat, 19 Aug 2023 21:44:33 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 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> <698fb340-2457-585f-f375-709491faf43e@gmail.com> Content-Language: en-US From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= In-Reply-To: X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,NICE_REPLY_A,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. --------------lHd7L4K1Z0sd7uqaa600qolm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Here is a rebased patch following the resize_and_overwrite change. I confirm that tests are now fixed after the change in tzdb.cc. I'll prepare a fix for those tests still but preparing also a test to detect allocations in the lib. François On 17/08/2023 21:44, Jonathan Wakely wrote: > On Thu, 17 Aug 2023 at 20:37, Jonathan Wakely wrote: >> On Thu, 17 Aug 2023 at 19:59, Jonathan Wakely wrote: >>> On Thu, 17 Aug 2023 at 18:40, François Dumont wrote: >>>> >>>> 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. >>>> You'll see that when cow_string.h is included while >>>> _GLIBCXX_USE_CXX11_ABI == 1 then I am hiding a big part of the >>>> basic_string definition. Initially it was to avoid to have to include >>>> basic_string.tcc but it is also a lot of useless code indeed. >>>> >>>> >>>>>> 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. >>>>> >>>> So far the only issue I found are in the mode !_GLIBCXX_USE_DUAL_ABI && >>>> !_GLIBCXX_USE_CXX11_ABI. They are: >>>> >>>> 23_containers/unordered_map/96088.cc >>>> 23_containers/unordered_multimap/96088.cc >>>> 23_containers/unordered_multiset/96088.cc >>>> 23_containers/unordered_set/96088.cc >>>> ext/debug_allocator/check_new.cc >>>> ext/malloc_allocator/check_new.cc >>>> ext/malloc_allocator/deallocate_local.cc >>>> ext/new_allocator/deallocate_local.cc >>>> ext/pool_allocator/allocate_chunk.cc >>>> ext/throw_allocator/deallocate_local.cc >>> Ah yes, they fail for !USE_DUAL_ABI builds, I wonder why. >>> >>> /home/test/src/gcc/libstdc++-v3/testsuite/23_containers/unordered_map/96088. >>> cc:44: void test01(): Assertion '__gnu_test::counter::count() == 3' failed. >>> FAIL: 23_containers/unordered_map/96088.cc execution test >> It's due to this global object in src/c++20/tzdb.cc: >> 1081 const string tzdata_file = "/tzdata.zi"; >> >> When the library uses COW strings that requires an allocation before >> main, which uses the replacement operator new in the tests, which >> fails to allocate. For example, in 22_locale/locale/cons/12352.cc we >> have this function used by operator new: >> >> int times_to_fail = 0; >> >> void* allocate(std::size_t n) >> { >> if (!times_to_fail--) >> return 0; >> >> The counter is initially zero, so if we try to allocate before it gets >> set to a non-zero value in test01() then we fail. >> >> The test should not assume no allocations before main() begins. The >> simplest way to do that is with another global that says "we have >> started testing" e.g. >> >> --- a/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc >> +++ b/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc >> @@ -26,11 +26,12 @@ >> #include >> #include >> >> +bool tests_started = false; >> int times_to_fail = 0; >> >> void* allocate(std::size_t n) >> { >> - if (!times_to_fail--) >> + if (tests_started && !times_to_fail--) >> return 0; >> >> void* ret = std::malloc(n ? n : 1); >> @@ -106,6 +107,8 @@ void operator delete[](void* p, const >> std::nothrow_t&) throw() >> // libstdc++/12352 >> void test01(int iters) >> { >> + tests_started = true; >> + >> for (int j = 0; j < iters; ++j) >> { >> for (int i = 0; i < 100; ++i) >> >> >> This way the replacement operator new doesn't start intentionally >> failing until we ask it to do so. > I'll replace the global std::string objects with std::string_view > objects, so that they don't allocate even if the library only uses COW > strings. > > We should still fix those tests though. > --------------lHd7L4K1Z0sd7uqaa600qolm 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 YWNpbmNsdWRlLm00CmluZGV4IGIyNTM3OGVhYWNlLi4zMjJmMWU0MjYxMSAxMDA2NDQKLS0t IGEvbGlic3RkYysrLXYzL2FjaW5jbHVkZS5tNAorKysgYi9saWJzdGRjKystdjMvYWNpbmNs dWRlLm00CkBAIC00ODc1LDEyICs0ODc1LDE2IEBAIGRubAogQUNfREVGVU4oW0dMSUJDWFhf RU5BQkxFX0xJQlNURENYWF9EVUFMX0FCSV0sIFsKICAgR0xJQkNYWF9FTkFCTEUobGlic3Rk Y3h4LWR1YWwtYWJpLCQxLCxbc3VwcG9ydCB0d28gdmVyc2lvbnMgb2Ygc3RkOjpzdHJpbmdd KQogICBpZiB0ZXN0IHgkZW5hYmxlX3N5bXZlcnMgPSB4Z251LXZlcnNpb25lZC1uYW1lc3Bh Y2U7IHRoZW4KLSAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNlIGlzIGluY29tcGF0aWJs ZSB3aXRoIHRoZSBkdWFsIEFCSS4KLSAgICBlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpPSJu byIKLSAgZmkKLSAgaWYgdGVzdCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4 eWVzOyB0aGVuCisgICAgIyBnbnUtdmVyc2lvbmVkLW5hbWVzcGFjZSBpcyBpbmNvbXBhdGli bGUgd2l0aCB0aGUgZHVhbCBBQkkuLi4KICAgICBBQ19NU0dfTk9USUNFKFtkdWFsIEFCSSBp cyBkaXNhYmxlZF0pCi0gICAgZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGli bGUiCisgICAgZW5hYmxlX2xpYnN0ZGN4eF9kdWFsX2FiaT0ibm8iCisgICAgIyAuLi4gYW5k IHVzZSB0aGUgY3h4MTEgb25lLgorICAgIGRlZmF1bHRfbGlic3RkY3h4X2FiaT0ibmV3Igor ICBlbHNlCisgICAgaWYgdGVzdCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4 eWVzOyB0aGVuCisgICAgICBBQ19NU0dfTk9USUNFKFtkdWFsIEFCSSBpcyBkaXNhYmxlZF0p CisgICAgICBkZWZhdWx0X2xpYnN0ZGN4eF9hYmk9ImdjYzQtY29tcGF0aWJsZSIKKyAgICBm aQogICBmaQogICBHTElCQ1hYX0NPTkRJVElPTkFMKEVOQUJMRV9EVUFMX0FCSSwgdGVzdCAk ZW5hYmxlX2xpYnN0ZGN4eF9kdWFsX2FiaSA9IHllcykKIF0pCmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvbW9uZXRhcnlfbWVtYmVycy5jYyBi L2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS9tb25ldGFyeV9tZW1iZXJz LmNjCmluZGV4IGY1MzRiYmU0YWViLi4zZjk2ZjJiOWYxMSAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJlcnMuY2MKKysr IGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJl cnMuY2MKQEAgLTM5LDcgKzM5LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJ T04KIAogLy8gVGhpcyBmaWxlIG1pZ2h0IGJlIGNvbXBpbGVkIHR3aWNlLCBidXQgd2Ugb25s eSB3YW50IHRvIGRlZmluZSB0aGUgbWVtYmVycwogLy8gb2YgbW9uZXlfYmFzZSBvbmNlLgot I2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogCiAgIC8vIENvbnN0cnVjdCBhbmQg cmV0dXJuIHZhbGlkIHBhdHRlcm4gY29uc2lzdGluZyBvZiBzb21lIGNvbWJpbmF0aW9uIG9m OgogICAvLyBzcGFjZSBub25lIHN5bWJvbCBzaWduIHZhbHVlCkBAIC0yMDcsNyArMjA3LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIH0KICAgICByZXR1 cm4gX19yZXQ7CiAgIH0KLSNlbmRpZgorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogCiAgIHRlbXBsYXRlPD4KICAgICB2 b2lkCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmljL21v bmV0YXJ5X21lbWJlcnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmlj L21vbmV0YXJ5X21lbWJlcnMuY2MKaW5kZXggMmMxY2ZlZmYwOTQuLmExYWUxMzZiZTA0IDEw MDY0NAotLS0gYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmljL21vbmV0YXJ5 X21lbWJlcnMuY2MKKysrIGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ2VuZXJpYy9t b25ldGFyeV9tZW1iZXJzLmNjCkBAIC0zNiw3ICszNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAKIC8vIFRoaXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2lj ZSwgYnV0IHdlIG9ubHkgd2FudCB0byBkZWZpbmUgdGhlIG1lbWJlcnMKIC8vIG9mIG1vbmV5 X2Jhc2Ugb25jZS4KLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICAvLyBD b25zdHJ1Y3QgYW5kIHJldHVybiB2YWxpZCBwYXR0ZXJuIGNvbnNpc3Rpbmcgb2Ygc29tZSBj b21iaW5hdGlvbiBvZjoKICAgLy8gc3BhY2Ugbm9uZSBzeW1ib2wgc2lnbiB2YWx1ZQpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ251L21vbmV0YXJ5X21lbWJl cnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nbnUvbW9uZXRhcnlfbWVtYmVy cy5jYwppbmRleCAxZjQ2ZWEyZjUzZi4uODc1NjFiY2M4MjEgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9tb25ldGFyeV9tZW1iZXJzLmNjCisrKyBiL2xp YnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9tb25ldGFyeV9tZW1iZXJzLmNjCkBAIC0z Nyw3ICszNyw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIC8vIFRo aXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2ljZSwgYnV0IHdlIG9ubHkgd2FudCB0byBk ZWZpbmUgdGhlIG1lbWJlcnMKIC8vIG9mIG1vbmV5X2Jhc2Ugb25jZS4KLSNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICAvLyBDb25zdHJ1Y3QgYW5kIHJldHVybiB2YWxp ZCBwYXR0ZXJuIGNvbnNpc3Rpbmcgb2Ygc29tZSBjb21iaW5hdGlvbiBvZjoKICAgLy8gc3Bh Y2Ugbm9uZSBzeW1ib2wgc2lnbiB2YWx1ZQpAQCAtMjA1LDcgKzIwNSw3IEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICB9CiAgICAgcmV0dXJuIF9fcmV0Owog ICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICBleHRlcm4gY2hhciBfX25hcnJvd19tdWx0aWJ5 dGVfY2hhcnMoY29uc3QgY2hhciogcywgX19sb2NhbGVfdCBjbG9jKTsKIApkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ251L251bWVyaWNfbWVtYmVycy5jYyBi L2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9udW1lcmljX21lbWJlcnMuY2MKaW5k ZXggMjIwYTBmOGM1MTAuLmNiODA5NWU2YWM3IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv Y29uZmlnL2xvY2FsZS9nbnUvbnVtZXJpY19tZW1iZXJzLmNjCisrKyBiL2xpYnN0ZGMrKy12 My9jb25maWcvbG9jYWxlL2dudS9udW1lcmljX21lbWJlcnMuY2MKQEAgLTM5LDcgKzM5LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgZXh0ZXJuIGNoYXIgX19u YXJyb3dfbXVsdGlieXRlX2NoYXJzKGNvbnN0IGNoYXIqIHMsIF9fbG9jYWxlX3QgY2xvYyk7 CiAKIC8vIFRoaXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2ljZSwgYnV0IHdlIG9ubHkg d2FudCB0byBkZWZpbmUgdGhpcyBvbmNlLgotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFM X0FCSQogICBjaGFyCiAgIF9fbmFycm93X211bHRpYnl0ZV9jaGFycyhjb25zdCBjaGFyKiBz LCBfX2xvY2FsZV90IGNsb2MpCiAgIHsKQEAgLTg0LDcgKzg0LDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIH0KICAgICByZXR1cm4gJ1wwJzsKICAgfQot I2VuZGlmCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJD WFhfVVNFX0RVQUxfQUJJCiAKICAgdGVtcGxhdGU8PgogICAgIHZvaWQKZGlmZiAtLWdpdCBh L2xpYnN0ZGMrKy12My9jb25maWd1cmUgYi9saWJzdGRjKystdjMvY29uZmlndXJlCmluZGV4 IGM0ZGE1NmMzMDQyLi5mZDQzMWYyODU0NyAxMDA3NTUKLS0tIGEvbGlic3RkYysrLXYzL2Nv bmZpZ3VyZQorKysgYi9saWJzdGRjKystdjMvY29uZmlndXJlCkBAIC03MDcwMiwxMyArNzA3 MDIsMTggQEAgZmkKIAogCiAgIGlmIHRlc3QgeCRlbmFibGVfc3ltdmVycyA9IHhnbnUtdmVy c2lvbmVkLW5hbWVzcGFjZTsgdGhlbgotICAgICMgZ251LXZlcnNpb25lZC1uYW1lc3BhY2Ug aXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGR1YWwgQUJJLgotICAgIGVuYWJsZV9saWJzdGRj eHhfZHVhbF9hYmk9Im5vIgotICBmaQotICBpZiB0ZXN0IHgiJGVuYWJsZV9saWJzdGRjeHhf ZHVhbF9hYmkiICE9IHh5ZXM7IHRoZW4KKyAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNl IGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBkdWFsIEFCSS4uLgogICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4m NQogJGFzX2VjaG8gIiRhc19tZTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4mNjt9Ci0gICAg ZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGlibGUiCisgICAgZW5hYmxlX2xp YnN0ZGN4eF9kdWFsX2FiaT0ibm8iCisgICAgIyAuLi4gYW5kIHVzZSB0aGUgY3h4MTEgb25l LgorICAgIGRlZmF1bHRfbGlic3RkY3h4X2FiaT0ibmV3IgorICBlbHNlCisgICAgaWYgdGVz dCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4eWVzOyB0aGVuCisgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGR1YWwgQUJJIGlzIGRp c2FibGVkIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IGR1YWwgQUJJIGlzIGRpc2FibGVkIiA+ JjY7fQorICAgICAgZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGlibGUiCisg ICAgZmkKICAgZmkKIAogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRz L2MrK2NvbmZpZyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYysrY29uZmlnCmluZGV4 IDBhNDFjZGQyOWE5Li5jYTNhY2ZjNjg1ZiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvYml0cy9jKytjb25maWcKKysrIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9j Kytjb25maWcKQEAgLTMzNywyNiArMzM3LDYgQEAgbmFtZXNwYWNlIHN0ZAogI2RlZmluZSBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAjZW5kaWYKIAotI2lmIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKLW5hbWVzcGFjZSBzdGQKLXsKLSAgaW5saW5lIG5hbWVzcGFjZSBfX2N4eDExIF9f YXR0cmlidXRlX18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQotfQotbmFtZXNwYWNl IF9fZ251X2N4eAotewotICBpbmxpbmUgbmFtZXNwYWNlIF9fY3h4MTEgX19hdHRyaWJ1dGVf XygoX19hYmlfdGFnX18gKCJjeHgxMSIpKSkgeyB9Ci19Ci0jIGRlZmluZSBfR0xJQkNYWF9O QU1FU1BBQ0VfQ1hYMTEgX19jeHgxMTo6Ci0jIGRlZmluZSBfR0xJQkNYWF9CRUdJTl9OQU1F U1BBQ0VfQ1hYMTEgbmFtZXNwYWNlIF9fY3h4MTEgewotIyBkZWZpbmUgX0dMSUJDWFhfRU5E X05BTUVTUEFDRV9DWFgxMSB9Ci0jIGRlZmluZSBfR0xJQkNYWF9ERUZBVUxUX0FCSV9UQUcg X0dMSUJDWFhfQUJJX1RBR19DWFgxMQotI2Vsc2UKLSMgZGVmaW5lIF9HTElCQ1hYX05BTUVT UEFDRV9DWFgxMQotIyBkZWZpbmUgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCi0j IGRlZmluZSBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCi0jIGRlZmluZSBfR0xJQkNY WF9ERUZBVUxUX0FCSV9UQUcKLSNlbmRpZgotCiAvLyBOb24temVybyBpZiBpbmxpbmUgbmFt ZXNwYWNlcyBhcmUgdXNlZCBmb3IgdmVyc2lvbmluZyB0aGUgZW50aXJlIGxpYnJhcnkuCiAj ZGVmaW5lIF9HTElCQ1hYX0lOTElORV9WRVJTSU9OIAogCkBAIC00MTUsNyArMzk1LDcgQEAg X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgLy8gTm9uLWlubGluZSBuYW1l c3BhY2UgZm9yIGNvbXBvbmVudHMgcmVwbGFjZWQgYnkgYWx0ZXJuYXRlcyBpbiBhY3RpdmUg bW9kZS4KICAgbmFtZXNwYWNlIF9fY3h4MTk5OAogICB7Ci0jIGlmIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKKyMgaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAmJiAhIF9HTElCQ1hYX0lO TElORV9WRVJTSU9OCiAgIGlubGluZSBuYW1lc3BhY2UgX19jeHgxMSBfX2F0dHJpYnV0ZV9f KChfX2FiaV90YWdfXyAoImN4eDExIikpKSB7IH0KICMgZW5kaWYKICAgfQpAQCAtNDQ1LDYg KzQyNSwyNiBAQCBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KICMgZW5kaWYKICNl bmRpZgogCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAmJiAhIF9HTElCQ1hYX0lOTElO RV9WRVJTSU9OCituYW1lc3BhY2Ugc3RkCit7CisgIGlubGluZSBuYW1lc3BhY2UgX19jeHgx MSBfX2F0dHJpYnV0ZV9fKChfX2FiaV90YWdfXyAoImN4eDExIikpKSB7IH0KK30KK25hbWVz cGFjZSBfX2dudV9jeHgKK3sKKyAgaW5saW5lIG5hbWVzcGFjZSBfX2N4eDExIF9fYXR0cmli dXRlX18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQorfQorIyBkZWZpbmUgX0dMSUJD WFhfTkFNRVNQQUNFX0NYWDExIF9fY3h4MTE6OgorIyBkZWZpbmUgX0dMSUJDWFhfQkVHSU5f TkFNRVNQQUNFX0NYWDExIG5hbWVzcGFjZSBfX2N4eDExIHsKKyMgZGVmaW5lIF9HTElCQ1hY X0VORF9OQU1FU1BBQ0VfQ1hYMTEgfQorIyBkZWZpbmUgX0dMSUJDWFhfREVGQVVMVF9BQklf VEFHIF9HTElCQ1hYX0FCSV9UQUdfQ1hYMTEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9O QU1FU1BBQ0VfQ1hYMTEKKyMgZGVmaW5lIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9DWFgx MQorIyBkZWZpbmUgX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9DWFgxMQorIyBkZWZpbmUgX0dM SUJDWFhfREVGQVVMVF9BQklfVEFHCisjZW5kaWYKKwogLy8gTWFjcm9zIGZvciBuYW1lc3Bh Y2Ugc2NvcGUuIEVpdGhlciBuYW1lc3BhY2Ugc3RkOjogb3IgdGhlIG5hbWUKIC8vIG9mIHNv bWUgbmVzdGVkIG5hbWVzcGFjZSB3aXRoaW4gaXQgY29ycmVzcG9uZGluZyB0byB0aGUgYWN0 aXZlIG1vZGUuCiAvLyBfR0xJQkNYWF9TVERfQQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYz L2luY2x1ZGUvYml0cy9jb3dfc3RyaW5nLmggYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRz L2Nvd19zdHJpbmcuaAppbmRleCA1NDExZGZlMzJhOS4uNzAyZDU5ZmFlZmUgMTAwNjQ0Ci0t LSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvY293X3N0cmluZy5oCisrKyBiL2xpYnN0 ZGMrKy12My9pbmNsdWRlL2JpdHMvY293X3N0cmluZy5oCkBAIC0zMiwxMyArMzIsMTUgQEAK ICNpZm5kZWYgX0NPV19TVFJJTkdfSAogI2RlZmluZSBfQ09XX1NUUklOR19IIDEKIAotI2lm ICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQotCiAjaW5jbHVkZSA8ZXh0L2F0b21pY2l0eS5o PiAvLyBfQXRvbWljX3dvcmQsIF9faXNfc2luZ2xlX3RocmVhZGVkCiAKICNkZWZpbmUgX19n bGliY3h4X3dhbnRfY29uc3RleHByX3N0cmluZwogI2luY2x1ZGUgPGJpdHMvdmVyc2lvbi5o PgogCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBkZWZpbmUgYmFzaWNfc3RyaW5n IF9fc3RkX2Nvd19zdHJpbmcKKyNlbmRpZgorCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJ U0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CkBAIC04MzAsNiArODMyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgICAgIGVuZCgpIGNvbnN0IF9HTElCQ1hYX05PRVhDRVBUCiAgICAgICB7IHJldHVybiBj b25zdF9pdGVyYXRvcihfTV9kYXRhKCkgKyB0aGlzLT5zaXplKCkpOyB9CiAKKyNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8qKgogICAgICAgICogIFJldHVybnMgYSBy ZWFkL3dyaXRlIHJldmVyc2UgaXRlcmF0b3IgdGhhdCBwb2ludHMgdG8gdGhlIGxhc3QKICAg ICAgICAqICBjaGFyYWN0ZXIgaW4gdGhlICVzdHJpbmcuICBJdGVyYXRpb24gaXMgZG9uZSBp biByZXZlcnNlIGVsZW1lbnQKQEAgLTkwMSw2ICs5MDQsNyBAQCBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogICAgICAgY3JlbmQoKSBjb25zdCBub2V4Y2VwdAogICAgICAg eyByZXR1cm4gY29uc3RfcmV2ZXJzZV9pdGVyYXRvcih0aGlzLT5iZWdpbigpKTsgfQogI2Vu ZGlmCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICAgICBwdWJsaWM6 CiAgICAgICAvLyBDYXBhY2l0eToKQEAgLTkyOCw2ICs5MzIsNyBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgbWF4X3NpemUoKSBjb25zdCBfR0xJQkNYWF9O T0VYQ0VQVAogICAgICAgeyByZXR1cm4gX1JlcDo6X1NfbWF4X3NpemU7IH0KIAorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgQGJyaWVmICBS ZXNpemVzIHRoZSAlc3RyaW5nIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNoYXJhY3Rl cnMuCiAgICAgICAgKiAgQHBhcmFtICBfX24gIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRoZSAl c3RyaW5nIHNob3VsZCBjb250YWluLgpAQCAtMTAwNyw2ICsxMDEyLDcgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAlfX3Jlc2l6ZV9hbmRfb3ZlcndyaXRlKHNpemVf dHlwZSBfX24sIF9PcGVyYXRpb24gX19vcCk7CiAjZW5kaWYKIAorI2VuZGlmIC8vICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgUmV0dXJucyB0aGUg dG90YWwgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCB0aGUgJXN0cmluZyBjYW4gaG9sZAog ICAgICAgICogIGJlZm9yZSBuZWVkaW5nIHRvIGFsbG9jYXRlIG1vcmUgbWVtb3J5LgpAQCAt MTAxNSw2ICsxMDIxLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAg ICAgIGNhcGFjaXR5KCkgY29uc3QgX0dMSUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJu IF9NX3JlcCgpLT5fTV9jYXBhY2l0eTsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYgIEF0dGVtcHQgdG8gcHJlYWxsb2Nh dGUgZW5vdWdoIG1lbW9yeSBmb3Igc3BlY2lmaWVkIG51bWJlciBvZgogICAgICAgICogICAg ICAgICAgY2hhcmFjdGVycy4KQEAgLTEwNjMsNiArMTA3MCw3IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBjbGVhcigpCiAgICAgICB7IF9NX211dGF0ZSgw LCB0aGlzLT5zaXplKCksIDApOyB9CiAjZW5kaWYKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkKIAogICAgICAgLyoqCiAgICAgICAgKiAgUmV0dXJucyB0cnVlIGlmIHRo ZSAlc3RyaW5nIGlzIGVtcHR5LiAgRXF1aXZhbGVudCB0bwpAQCAtMTA3Miw2ICsxMDgwLDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGVtcHR5KCkgY29u c3QgX0dMSUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJuIHRoaXMtPnNpemUoKSA9PSAw OyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8vIEVsZW1lbnQg YWNjZXNzOgogICAgICAgLyoqCiAgICAgICAgKiAgQGJyaWVmICBTdWJzY3JpcHQgYWNjZXNz IHRvIHRoZSBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgJXN0cmluZy4KQEAgLTEzODIsNiArMTM5 MSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJdHJhaXRzX3R5cGU6 OmFzc2lnbihfTV9kYXRhKClbdGhpcy0+c2l6ZSgpXSwgX19jKTsKIAlfTV9yZXAoKS0+X01f c2V0X2xlbmd0aF9hbmRfc2hhcmFibGUoX19sZW4pOwogICAgICAgfQorI2VuZGlmIC8vICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYg IFNldCB2YWx1ZSB0byBjb250ZW50cyBvZiBhbm90aGVyIHN0cmluZy4KQEAgLTE1MjYsNiAr MTUzNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJfQogI2VuZGlm IC8vIEMrKzE3CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8qKgog ICAgICAgICogIEBicmllZiAgSW5zZXJ0IG11bHRpcGxlIGNoYXJhY3RlcnMuCiAgICAgICAg KiAgQHBhcmFtIF9fcCAgSXRlcmF0b3IgcmVmZXJlbmNpbmcgbG9jYXRpb24gaW4gc3RyaW5n IHRvIGluc2VydCBhdC4KQEAgLTIxNDQsNiArMjE1NSw3IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAJICByZXR1cm4gdGhpcy0+cmVwbGFjZShfX2kxIC0gYmVnaW4o KSwgX19pMiAtIF9faTEsIF9fc3YpOwogCX0KICNlbmRpZiAvLyBDKysxNworI2VuZGlmIC8v ICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAgICAgcHJpdmF0ZToKICAgICAgIHRlbXBs YXRlPGNsYXNzIF9JbnRlZ2VyPgpAQCAtMjIxNSw2ICsyMjI3LDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogICAgIHB1YmxpYzoKIAorI2lmICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgQGJyaWVmICBDb3B5IHN1YnN0 cmluZyBpbnRvIEMgc3RyaW5nLgogICAgICAgICogIEBwYXJhbSBfX3MgIEMgc3RyaW5nIHRv IGNvcHkgdmFsdWUgaW50by4KQEAgLTIyMjksNiArMjI0Miw3IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICAqLwogICAgICAgc2l6ZV90eXBlCiAgICAgICBj b3B5KF9DaGFyVCogX19zLCBzaXplX3R5cGUgX19uLCBzaXplX3R5cGUgX19wb3MgPSAwKSBj b25zdDsKKyNlbmRpZgogCiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYgIFN3YXAgY29u dGVudHMgd2l0aCBhbm90aGVyIHN0cmluZy4KQEAgLTIyODYsNiArMjMwMCw3IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBnZXRfYWxsb2NhdG9yKCkgY29u c3QgX0dMSUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJuIF9NX2RhdGFwbHVzOyB9CiAK KyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8qKgogICAgICAgICogIEBi cmllZiAgRmluZCBwb3NpdGlvbiBvZiBhIEMgc3Vic3RyaW5nLgogICAgICAgICogIEBwYXJh bSBfX3MgIEMgc3RyaW5nIHRvIGxvY2F0ZS4KQEAgLTMwOTEsNiArMzEwNiw3IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBjb250YWlucyhjb25zdCBfQ2hh clQqIF9feCkgY29uc3Qgbm9leGNlcHQKICAgICAgIHsgcmV0dXJuIF9fc3ZfdHlwZSh0aGlz LT5kYXRhKCksIHRoaXMtPnNpemUoKSkuY29udGFpbnMoX194KTsgfQogI2VuZGlmIC8vIEMr KzIzCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICMgaWZkZWYgX0dM SUJDWFhfVE1fVFNfSU5URVJOQUwKICAgICAgIGZyaWVuZCB2b2lkCkBAIC0zMjk0LDYgKzMz MTAsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCX0KICAgICAgfQog CisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9D aGFyVCwgdHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAgIGJhc2ljX3N0 cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9BbGxvYz4mCiAgICAgYmFzaWNfc3RyaW5nPF9DaGFy VCwgX1RyYWl0cywgX0FsbG9jPjo6CkBAIC0zNDU3LDYgKzM0NzQsNyBAQCBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCSAgIHJldHVybiBfTV9yZXBsYWNlX3NhZmUoX19w b3MsIF9fbjEsIF9fdG1wLl9NX2RhdGEoKSwgX19uMik7CiAJIH0KICAgICAgfQorI2VuZGlm IC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9D aGFyVCwgdHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAgIHZvaWQKQEAg LTM1MTgsNiArMzUzNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAg ICAgICBfTV9yZXAoKS0+X01fc2V0X2xlbmd0aF9hbmRfc2hhcmFibGUoX19uZXdfc2l6ZSk7 CiAgICAgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIHRlbXBsYXRlPHR5 cGVuYW1lIF9DaGFyVCwgdHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAg IHZvaWQKICAgICBiYXNpY19zdHJpbmc8X0NoYXJULCBfVHJhaXRzLCBfQWxsb2M+OjoKQEAg LTM1NDMsNiArMzU2Miw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAg ICAgICBfTV9yZXAoKS0+X01fZGlzcG9zZShfX2EpOwogICAgICAgX01fZGF0YShfX3RtcCk7 CiAgICAgfQorI2VuZGlmCiAKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFt ZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgdm9pZApAQCAtMzY2Niw2ICszNjg2 LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIHJldHVybiBf X3ItPl9NX3JlZmRhdGEoKTsKICAgICB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBl bmFtZSBfQWxsb2M+CiAgICAgdm9pZAogICAgIGJhc2ljX3N0cmluZzxfQ2hhclQsIF9UcmFp dHMsIF9BbGxvYz46OgpAQCAtMzY3OSw2ICszNzAwLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KIAl0aGlzLT5lcmFzZShfX24pOwogICAgICAgLy8gZWxzZSBub3Ro aW5nIChpbiBwYXJ0aWN1bGFyLCBhdm9pZCBjYWxsaW5nIF9NX211dGF0ZSgpIHVubmVjZXNz YXJpbHkuKQogICAgIH0KKyNlbmRpZgogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9DaGFyVCwg dHlwZW5hbWUgX1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAgIHRlbXBsYXRlPHR5cGVu YW1lIF9JbnB1dEl0ZXJhdG9yPgpAQCAtMzcxOSw2ICszNzQxLDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKKyNp ZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJU LCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgdm9pZAogICAgIGJh c2ljX3N0cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9BbGxvYz46OgpAQCAtMzgwMCw4ICszODIz LDExIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgfQogI2VuZGlm IC8vIEMrKzExCiAKLQorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogX0dM SUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZSBzdGQKLSNlbmRp ZiAgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisKKyNpZiBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCisjIHVuZGVmIGJhc2ljX3N0cmluZworI2VuZGlmCiAjZW5kaWYgIC8vIF9DT1df U1RSSU5HX0gKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9zdGRleGNl cHQgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvc3RkZXhjZXB0CmluZGV4IDY2Yzg1NzJk MGNkLi4zMzMwNjUwODY5NSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvc3Rk L3N0ZGV4Y2VwdAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvc3RkZXhjZXB0CkBA IC00Miw4ICs0Miw4IEBAIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZh dWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAotI2lmIF9HTElC Q1hYX1VTRV9EVUFMX0FCSQotI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dM SUJDWFhfREVGSU5FX1NUREVYQ0VQVF9JTlNUQU5USUFUSU9OUwogICAvLyBFbXVsYXRlcyBh biBvbGQgQ09XIHN0cmluZyB3aGVuIHRoZSBuZXcgc3RkOjpzdHJpbmcgaXMgaW4gdXNlLgog ICBzdHJ1Y3QgX19jb3dfc3RyaW5nCiAgIHsKQEAgLTU0LDYgKzU0LDcgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogICAgIF9fY293X3N0cmluZygpOwogICAgIF9f Y293X3N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYpOworICAgIF9fY293X3N0cmluZyhjb25z dCBjaGFyKik7CiAgICAgX19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqLCBzaXplX3QpOwogICAg IF9fY293X3N0cmluZyhjb25zdCBfX2Nvd19zdHJpbmcmKSBfR0xJQkNYWF9OT1RIUk9XOwog ICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KGNvbnN0IF9fY293X3N0cmluZyYpIF9HTElC Q1hYX05PVEhST1c7CkBAIC02MiwxMiArNjMsMTQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICAgICBfX2Nvd19zdHJpbmcoX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0 OwogICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KF9fY293X3N0cmluZyYmKSBub2V4Y2Vw dDsKICNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3QgX0dMSUJDWFhfTk9F WENFUFQ7CiAgIH07Ci0KLSAgdHlwZWRlZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19zc29fc3Ry aW5nOwotI2Vsc2UgLy8gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2VuZGlmIC8vICEgX0dM SUJDWFhfREVGSU5FX1NUREVYQ0VQVF9JTlNUQU5USUFUSU9OUworI2Vsc2UKICAgdHlwZWRl ZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19jb3dfc3RyaW5nOworI2VuZGlmCiAKKyNpZiBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkgJiYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIC8vIEVt dWxhdGVzIGEgbmV3IFNTTyBzdHJpbmcgd2hlbiB0aGUgb2xkIHN0ZDo6c3RyaW5nIGlzIGlu IHVzZS4KICAgc3RydWN0IF9fc3NvX3N0cmluZwogICB7CkBAIC05NCwxMCArOTcsOCBAQCBf R0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIF9fc3NvX3N0cmluZyYgb3Bl cmF0b3I9KF9fc3NvX3N0cmluZyYmKSBub2V4Y2VwdDsKICNlbmRpZgogICB9OwotI2VuZGlm IC8vIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKLSNlbHNlICAvLyBfR0xJQkNYWF9VU0VfRFVB TF9BQkkKKyNlbHNlCiAgIHR5cGVkZWYgYmFzaWNfc3RyaW5nPGNoYXI+IF9fc3NvX3N0cmlu ZzsKLSAgdHlwZWRlZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19jb3dfc3RyaW5nOwogI2VuZGlm CiAKICAgLyoqCkBAIC0xMjcsNyArMTI4LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KICAgICBsb2dpY19lcnJvciYgb3BlcmF0b3I9KGxvZ2ljX2Vycm9yJiYpIG5v ZXhjZXB0OwogI2VuZGlmCiAKLSNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8IF9HTElC Q1hYX0RFRklORV9TVERFWENFUFRfQ09QWV9PUFMKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJIHx8IF9HTElCQ1hYX0RFRklORV9TVERFWENFUFRfSU5TVEFOVElBVElPTlMKICAgICBs b2dpY19lcnJvcihjb25zdCBsb2dpY19lcnJvciYpIF9HTElCQ1hYX05PVEhST1c7CiAgICAg bG9naWNfZXJyb3ImIG9wZXJhdG9yPShjb25zdCBsb2dpY19lcnJvciYpIF9HTElCQ1hYX05P VEhST1c7CiAjZWxpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCkBAIC0yMzMsNyArMjM0LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICBydW50aW1lX2Vycm9y JiBvcGVyYXRvcj0ocnVudGltZV9lcnJvciYmKSBub2V4Y2VwdDsKICNlbmRpZgogCi0jaWYg X0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCBfR0xJQkNYWF9ERUZJTkVfU1RERVhDRVBUX0NP UFlfT1BTCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCBfR0xJQkNYWF9ERUZJTkVf U1RERVhDRVBUX0lOU1RBTlRJQVRJT05TCiAgICAgcnVudGltZV9lcnJvcihjb25zdCBydW50 aW1lX2Vycm9yJikgX0dMSUJDWFhfTk9USFJPVzsKICAgICBydW50aW1lX2Vycm9yJiBvcGVy YXRvcj0oY29uc3QgcnVudGltZV9lcnJvciYpIF9HTElCQ1hYX05PVEhST1c7CiAjZWxpZiBf X2NwbHVzcGx1cyA+PSAyMDExMDNMCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvcHl0aG9u L2xpYnN0ZGN4eC92Ni9wcmludGVycy5weSBiL2xpYnN0ZGMrKy12My9weXRob24vbGlic3Rk Y3h4L3Y2L3ByaW50ZXJzLnB5CmluZGV4IDAxODdjNGI2MGU2Li4zNDc1YWEyNDZlZCAxMDA2 NDQKLS0tIGEvbGlic3RkYysrLXYzL3B5dGhvbi9saWJzdGRjeHgvdjYvcHJpbnRlcnMucHkK KysrIGIvbGlic3RkYysrLXYzL3B5dGhvbi9saWJzdGRjeHgvdjYvcHJpbnRlcnMucHkKQEAg LTk2Myw2ICs5NjMsOCBAQCBjbGFzcyBTdGRTdHJpbmdQcmludGVyOgogICAgIGRlZiBfX2lu aXRfXyhzZWxmLCB0eXBlbmFtZSwgdmFsKToKICAgICAgICAgc2VsZi52YWwgPSB2YWwKICAg ICAgICAgc2VsZi5uZXdfc3RyaW5nID0gdHlwZW5hbWUuZmluZCgiOjpfX2N4eDExOjpiYXNp Y19zdHJpbmciKSAhPSAtMQorICAgICAgICBpZiBub3Qgc2VsZi5uZXdfc3RyaW5nIGFuZCBf dmVyc2lvbmVkX25hbWVzcGFjZToKKyAgICAgICAgICAgIHNlbGYubmV3X3N0cmluZyA9IHR5 cGVuYW1lLmZpbmQoIjo6IiArIF92ZXJzaW9uZWRfbmFtZXNwYWNlICsgImJhc2ljX3N0cmlu ZyIpICE9IC0xCiAKICAgICBkZWYgdG9fc3RyaW5nKHNlbGYpOgogICAgICAgICAjIE1ha2Ug c3VyZSAmc3RyaW5nIHdvcmtzLCB0b28uCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3Jj L01ha2VmaWxlLmFtIGIvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5hbQppbmRleCA1Yjlh ZjQxY2RiOS4uZWMwYzUwMmVjYjEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvTWFr ZWZpbGUuYW0KKysrIGIvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5hbQpAQCAtODksNiAr ODksOSBAQCBlbHNlCiBsZGJsX2NvbXBhdF9zb3VyY2VzID0KIGVuZGlmCiAKK2lmIEVOQUJM RV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0UKK2xkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0K K2Vsc2UKIGlmIEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUCiBpZiBFTkFCTEVfRFVBTF9B QkkKIGxkYmxfYWx0MTI4X2NvbXBhdF9jeHgxMV9zb3VyY2VzID0gXApAQCAtMTAyLDYgKzEw NSw3IEBAIGxkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0gXAogZWxzZQogbGRibF9hbHQx MjhfY29tcGF0X3NvdXJjZXMgPQogZW5kaWYKK2VuZGlmCiAKIGlmIEVOQUJMRV9TWU1WRVJT X0dOVV9OQU1FU1BBQ0UKIGN4eDB4X2NvbXBhdF9zb3VyY2VzID0KZGlmZiAtLWdpdCBhL2xp YnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuaW4gYi9saWJzdGRjKystdjMvc3JjL01ha2VmaWxl LmluCmluZGV4IGY0MmQ5NTdhZjM2Li5jOWMxYjY1ZGI1MiAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL3NyYy9NYWtlZmlsZS5pbgorKysgYi9saWJzdGRjKystdjMvc3JjL01ha2VmaWxl LmluCkBAIC0xNTcsMTAgKzE1Nyw5IEBAIGFtX19vYmplY3RzXzIgPSBjb21wYXRpYmlsaXR5 LmxvIGNvbXBhdGliaWxpdHktZGVidWdfbGlzdC5sbyBcCiBARU5BQkxFX1NZTVZFUlNfR05V X05BTUVTUEFDRV9GQUxTRUAJY29tcGF0aWJpbGl0eS1jaHJvbm8ubG8gXAogQEVOQUJMRV9T WU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VACWNvbXBhdGliaWxpdHktY29uZHZhci5sbyBc CiBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUAJY29tcGF0aWJpbGl0eS10 aHJlYWQtYysrMHgubG8KLUBFTkFCTEVfRFVBTF9BQklfVFJVRUBAR0xJQkNYWF9MREJMX0FM VDEyOF9DT01QQVRfVFJVRUBhbV9fb2JqZWN0c180ID0gY29tcGF0aWJpbGl0eS1sZGJsLWFs dDEyOC1jeHgxMS5sbwotQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAYW1fX29i amVjdHNfNSA9ICBcCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0 aWJpbGl0eS1sZGJsLWFsdDEyOC5sbyBcCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRf VFJVRUAJJChhbV9fb2JqZWN0c180KQorQEVOQUJMRV9EVUFMX0FCSV9UUlVFQEBFTkFCTEVf U1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBB VF9UUlVFQGFtX19vYmplY3RzXzQgPSBjb21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LWN4eDEx LmxvCitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNYWF9MREJM X0FMVDEyOF9DT01QQVRfVFJVRUBhbV9fb2JqZWN0c181ID0gY29tcGF0aWJpbGl0eS1sZGJs LWFsdDEyOC5sbyBcCitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJ QkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJJChhbV9fb2JqZWN0c180KQogYW1fX29i amVjdHNfNiA9ICQoYW1fX29iamVjdHNfMykgJChhbV9fb2JqZWN0c181KQogQEdMSUJDWFhf SE9TVEVEX1RSVUVAYW1fbGlic3RkY19fX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzIp IFwKIEBHTElCQ1hYX0hPU1RFRF9UUlVFQAkkKGFtX19vYmplY3RzXzYpCkBAIC01MTAsMTQg KzUwOSwxNSBAQCBTVUJESVJTID0gYysrOTggYysrMTEgYysrMTcgYysrMjAgJChmaWxlc3lz dGVtX2RpcikgJChiYWNrdHJhY2VfZGlyKSAkKGV4cGVyaW1lbgogCiBAR0xJQkNYWF9MREJM X0NPTVBBVF9GQUxTRUBsZGJsX2NvbXBhdF9zb3VyY2VzID0gCiBAR0xJQkNYWF9MREJMX0NP TVBBVF9UUlVFQGxkYmxfY29tcGF0X3NvdXJjZXMgPSBjb21wYXRpYmlsaXR5LWxkYmwuY2MK LUBFTkFCTEVfRFVBTF9BQklfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RS VUVAbGRibF9hbHQxMjhfY29tcGF0X2N4eDExX3NvdXJjZXMgPSAKLUBFTkFCTEVfRFVBTF9B QklfVFJVRUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUBsZGJsX2FsdDEyOF9j b21wYXRfY3h4MTFfc291cmNlcyA9IFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUBAR0xJQkNY WF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0aWJpbGl0eS1sZGJsLWFsdDEyOC1j eHgxMS5jYwotCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfRkFMU0VAbGRibF9hbHQx MjhfY29tcGF0X3NvdXJjZXMgPSAKLUBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVF QGxkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0gXAotQEdMSUJDWFhfTERCTF9BTFQxMjhf Q09NUEFUX1RSVUVACWNvbXBhdGliaWxpdHktbGRibC1hbHQxMjguY2MgXAotQEdMSUJDWFhf TERCTF9BTFQxMjhfQ09NUEFUX1RSVUVACSR7bGRibF9hbHQxMjhfY29tcGF0X2N4eDExX3Nv dXJjZXN9CitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNYWF9M REJMX0FMVDEyOF9DT01QQVRfRkFMU0VAbGRibF9hbHQxMjhfY29tcGF0X3NvdXJjZXMgPSAK K0BFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxU MTI4X0NPTVBBVF9UUlVFQGxkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzID0gXAorQEVOQUJM RV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09N UEFUX1RSVUVACWNvbXBhdGliaWxpdHktbGRibC1hbHQxMjguY2MgXAorQEVOQUJMRV9TWU1W RVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RS VUVACSR7bGRibF9hbHQxMjhfY29tcGF0X2N4eDExX3NvdXJjZXN9CisKK0BFTkFCTEVfU1lN VkVSU19HTlVfTkFNRVNQQUNFX1RSVUVAbGRibF9hbHQxMjhfY29tcGF0X3NvdXJjZXMgPSAK K0BFTkFCTEVfRFVBTF9BQklfRkFMU0VAQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0Vf RkFMU0VAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAbGRibF9hbHQxMjhfY29t cGF0X2N4eDExX3NvdXJjZXMgPSAKK0BFTkFCTEVfRFVBTF9BQklfVFJVRUBARU5BQkxFX1NZ TVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRf VFJVRUBsZGJsX2FsdDEyOF9jb21wYXRfY3h4MTFfc291cmNlcyA9IFwKK0BFTkFCTEVfRFVB TF9BQklfVFJVRUBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNY WF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0aWJpbGl0eS1sZGJsLWFsdDEyOC1j eHgxMS5jYwogCiBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBjeHgweF9j b21wYXRfc291cmNlcyA9IFwKIEBFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNF QAljb21wYXRpYmlsaXR5LWF0b21pYy1jKysweC5jYyBcCmRpZmYgLS1naXQgYS9saWJzdGRj KystdjMvc3JjL2MrKzExL01ha2VmaWxlLmFtIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9N YWtlZmlsZS5hbQppbmRleCA2ODJiZTE2NjlhNC4uODIyMjczMzg3OTggMTAwNjQ0Ci0tLSBh L2xpYnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuYW0KKysrIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9NYWtlZmlsZS5hbQpAQCAtNDAsMTUgKzQwLDExIEBAIGN0eXBlX21lbWJl cnMuY2M6ICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQ0NUWVBFX0NDKQogCSQoTE5fUykgJHtnbGli Y3h4X3NyY2Rpcn0vJChDQ1RZUEVfQ0MpIC4gfHwgdHJ1ZQogCiBpZiBFTkFCTEVfRFVBTF9B QkkKLWN4eDExX2FiaV9zb3VyY2VzID0gXAotCWNvdy1sb2NhbGVfaW5pdC5jYyBcCitkdWFs X2FiaV9zb3VyY2VzID0gXAogCWNvdy1zaGltX2ZhY2V0cy5jYyBcCi0JY3h4MTEtaGFzaF90 cjEuY2MgXAotCWN4eDExLWlvc19mYWlsdXJlLmNjIFwKLQljeHgxMS1zaGltX2ZhY2V0cy5j YyBcCi0JY3h4MTEtc3RkZXhjZXB0LmNjCisJY3h4MTEtc2hpbV9mYWNldHMuY2MKIGVsc2UK LWN4eDExX2FiaV9zb3VyY2VzID0KK2R1YWxfYWJpX3NvdXJjZXMgPQogZW5kaWYKIAogc291 cmNlc19mcmVlc3RhbmRpbmcgPSBcCkBAIC01OSw4ICs1NSwxMiBAQCBzb3VyY2VzID0gXAog CWNocm9uby5jYyBcCiAJY29kZWN2dC5jYyBcCiAJY29uZGl0aW9uX3ZhcmlhYmxlLmNjIFwK Kwljb3ctbG9jYWxlX2luaXQuY2MgXAogCWNvdy1zdGRleGNlcHQuY2MgXAogCWN0eXBlLmNj IFwKKwljeHgxMS1oYXNoX3RyMS5jYyBcCisJY3h4MTEtaW9zX2ZhaWx1cmUuY2MgXAorCWN4 eDExLXN0ZGV4Y2VwdC5jYyBcCiAJZGVidWcuY2MgXAogCWZ1bmN0ZXhjZXB0LmNjIFwKIAlm dW5jdGlvbmFsLmNjIFwKQEAgLTc3LDE5ICs3NywxMSBAQCBzb3VyY2VzID0gXAogCXNucHJp bnRmX2xpdGUuY2MgXAogCXN5c3RlbV9lcnJvci5jYyBcCiAJdGhyZWFkLmNjIFwKLQkke2N4 eDExX2FiaV9zb3VyY2VzfSBcCisJJHtkdWFsX2FiaV9zb3VyY2VzfSBcCiAJJHtob3N0X3Nv dXJjZXN9CiAKIGlmIEVOQUJMRV9EVUFMX0FCSQogZXh0cmFfc3RyaW5nX2luc3Rfc291cmNl cyA9IFwKLQljb3ctZnN0cmVhbS1pbnN0LmNjIFwKLQljb3ctc3N0cmVhbS1pbnN0LmNjIFwK LQljb3ctc3RyaW5nLWluc3QuY2MgXAotCWNvdy1zdHJpbmctaW8taW5zdC5jYyBcCi0JY293 LXdzdHJpbmctaW5zdC5jYyBcCi0JY293LXdzdHJpbmctaW8taW5zdC5jYyBcCi0JY3h4MTEt bG9jYWxlLWluc3QuY2MgXAotCWN4eDExLXdsb2NhbGUtaW5zdC5jYyBcCiAJc3NvX3N0cmlu Zy5jYwogZWxzZQogZXh0cmFfc3RyaW5nX2luc3Rfc291cmNlcyA9CkBAIC05OSw2ICs5MSwx NCBAQCBpZiBFTkFCTEVfRVhURVJOX1RFTVBMQVRFCiAjIFhURU1QTEFURV9GTEFHUyA9IC1m bm8taW1wbGljaXQtdGVtcGxhdGVzCiBpbnN0X3NvdXJjZXMgPSBcCiAJJChleHRyYV9zdHJp bmdfaW5zdF9zb3VyY2VzKSBcCisJY293LWZzdHJlYW0taW5zdC5jYyBcCisJY293LXNzdHJl YW0taW5zdC5jYyBcCisJY293LXN0cmluZy1pbnN0LmNjIFwKKwljb3ctc3RyaW5nLWlvLWlu c3QuY2MgXAorCWNvdy13c3RyaW5nLWluc3QuY2MgXAorCWNvdy13c3RyaW5nLWlvLWluc3Qu Y2MgXAorCWN4eDExLWxvY2FsZS1pbnN0LmNjIFwKKwljeHgxMS13bG9jYWxlLWluc3QuY2Mg XAogCWV4dDExLWluc3QuY2MgXAogCWZzdHJlYW0taW5zdC5jYyBcCiAJaW9zLWluc3QuY2Mg XApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9NYWtlZmlsZS5pbiBiL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuaW4KaW5kZXggZTdhMDlmZTMyNDYuLjJk OTQ0MjU0ODBiIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL01ha2VmaWxl LmluCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuaW4KQEAgLTEyMiwy NSArMTIyLDI2IEBAIENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CiBMVExJQlJBUklFUyA9 ICQobm9pbnN0X0xUTElCUkFSSUVTKQogbGliY19fMTFjb252ZW5pZW5jZV9sYV9MSUJBREQg PQogYW1fX29iamVjdHNfMSA9IGxpbWl0cy5sbyBwbGFjZWhvbGRlcnMubG8KLUBFTkFCTEVf RFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c18yID0gY293LWxvY2FsZV9pbml0LmxvIFwKLUBF TkFCTEVfRFVBTF9BQklfVFJVRUAJY293LXNoaW1fZmFjZXRzLmxvIGN4eDExLWhhc2hfdHIx LmxvIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtaW9zX2ZhaWx1cmUubG8gXAot QEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS1zaGltX2ZhY2V0cy5sbyBjeHgxMS1zdGRl eGNlcHQubG8KK0BFTkFCTEVfRFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c18yID0gY293LXNo aW1fZmFjZXRzLmxvIFwKK0BFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtc2hpbV9mYWNl dHMubG8KIGFtX19vYmplY3RzXzMgPSBjdHlwZV9jb25maWd1cmVfY2hhci5sbyBjdHlwZV9t ZW1iZXJzLmxvCiBhbV9fb2JqZWN0c180ID0gY2hyb25vLmxvIGNvZGVjdnQubG8gY29uZGl0 aW9uX3ZhcmlhYmxlLmxvIFwKLQljb3ctc3RkZXhjZXB0LmxvIGN0eXBlLmxvIGRlYnVnLmxv IGZ1bmN0ZXhjZXB0LmxvIFwKLQlmdW5jdGlvbmFsLmxvIGZ1dGV4LmxvIGZ1dHVyZS5sbyBo YXNoX2MrKzB4LmxvIFwKKwljb3ctbG9jYWxlX2luaXQubG8gY293LXN0ZGV4Y2VwdC5sbyBj dHlwZS5sbyBjeHgxMS1oYXNoX3RyMS5sbyBcCisJY3h4MTEtaW9zX2ZhaWx1cmUubG8gY3h4 MTEtc3RkZXhjZXB0LmxvIGRlYnVnLmxvIFwKKwlmdW5jdGV4Y2VwdC5sbyBmdW5jdGlvbmFs LmxvIGZ1dGV4LmxvIGZ1dHVyZS5sbyBoYXNoX2MrKzB4LmxvIFwKIAloYXNodGFibGVfYysr MHgubG8gaW9zLmxvIGlvc19lcnJjYXQubG8gbXV0ZXgubG8gcmFuZG9tLmxvIFwKIAlyZWdl eC5sbyBzaGFyZWRfcHRyLmxvIHNucHJpbnRmX2xpdGUubG8gc3lzdGVtX2Vycm9yLmxvIFwK IAl0aHJlYWQubG8gJChhbV9fb2JqZWN0c18yKSAkKGFtX19vYmplY3RzXzMpCi1ARU5BQkxF X0RVQUxfQUJJX1RSVUVAYW1fX29iamVjdHNfNSA9IGNvdy1mc3RyZWFtLWluc3QubG8gXAot QEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctc3N0cmVhbS1pbnN0LmxvIGNvdy1zdHJpbmct aW5zdC5sbyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1zdHJpbmctaW8taW5zdC5s byBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy13c3RyaW5nLWluc3QubG8gXAotQEVO QUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctd3N0cmluZy1pby1pbnN0LmxvIFwKLUBFTkFCTEVf RFVBTF9BQklfVFJVRUAJY3h4MTEtbG9jYWxlLWluc3QubG8gXAotQEVOQUJMRV9EVUFMX0FC SV9UUlVFQAljeHgxMS13bG9jYWxlLWluc3QubG8gc3NvX3N0cmluZy5sbworQEVOQUJMRV9E VUFMX0FCSV9UUlVFQGFtX19vYmplY3RzXzUgPSBzc29fc3RyaW5nLmxvCiBARU5BQkxFX0VY VEVSTl9URU1QTEFURV9UUlVFQGFtX19vYmplY3RzXzYgPSAkKGFtX19vYmplY3RzXzUpIFwK K0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy1mc3RyZWFtLWluc3QubG8gXAor QEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXNzdHJlYW0taW5zdC5sbyBcCitA RU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctc3RyaW5nLWluc3QubG8gXAorQEVO QUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXN0cmluZy1pby1pbnN0LmxvIFwKK0BF TkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy13c3RyaW5nLWluc3QubG8gXAorQEVO QUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXdzdHJpbmctaW8taW5zdC5sbyBcCitA RU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljeHgxMS1sb2NhbGUtaW5zdC5sbyBcCitA RU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljeHgxMS13bG9jYWxlLWluc3QubG8gXAog QEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJZXh0MTEtaW5zdC5sbyBmc3RyZWFtLWlu c3QubG8gXAogQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJaW9zLWluc3QubG8gaW9z dHJlYW0taW5zdC5sbyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAlpc3RyZWFt LWluc3QubG8gbG9jYWxlLWluc3QubG8gXApAQCAtNDYxLDE0ICs0NjIsMTAgQEAgaG9zdF9z b3VyY2VzID0gXAogCWN0eXBlX2NvbmZpZ3VyZV9jaGFyLmNjIFwKIAljdHlwZV9tZW1iZXJz LmNjCiAKLUBFTkFCTEVfRFVBTF9BQklfRkFMU0VAY3h4MTFfYWJpX3NvdXJjZXMgPSAKLUBF TkFCTEVfRFVBTF9BQklfVFJVRUBjeHgxMV9hYmlfc291cmNlcyA9IFwKLUBFTkFCTEVfRFVB TF9BQklfVFJVRUAJY293LWxvY2FsZV9pbml0LmNjIFwKK0BFTkFCTEVfRFVBTF9BQklfRkFM U0VAZHVhbF9hYmlfc291cmNlcyA9IAorQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGR1YWxfYWJp X3NvdXJjZXMgPSBcCiBARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1zaGltX2ZhY2V0cy5j YyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLWhhc2hfdHIxLmNjIFwKLUBFTkFC TEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtaW9zX2ZhaWx1cmUuY2MgXAotQEVOQUJMRV9EVUFM X0FCSV9UUlVFQAljeHgxMS1zaGltX2ZhY2V0cy5jYyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RS VUVACWN4eDExLXN0ZGV4Y2VwdC5jYworQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS1z aGltX2ZhY2V0cy5jYwogCiBzb3VyY2VzX2ZyZWVzdGFuZGluZyA9IFwKIAlsaW1pdHMuY2Mg XApAQCAtNDc4LDggKzQ3NSwxMiBAQCBzb3VyY2VzID0gXAogCWNocm9uby5jYyBcCiAJY29k ZWN2dC5jYyBcCiAJY29uZGl0aW9uX3ZhcmlhYmxlLmNjIFwKKwljb3ctbG9jYWxlX2luaXQu Y2MgXAogCWNvdy1zdGRleGNlcHQuY2MgXAogCWN0eXBlLmNjIFwKKwljeHgxMS1oYXNoX3Ry MS5jYyBcCisJY3h4MTEtaW9zX2ZhaWx1cmUuY2MgXAorCWN4eDExLXN0ZGV4Y2VwdC5jYyBc CiAJZGVidWcuY2MgXAogCWZ1bmN0ZXhjZXB0LmNjIFwKIAlmdW5jdGlvbmFsLmNjIFwKQEAg LTQ5NiwxOSArNDk3LDExIEBAIHNvdXJjZXMgPSBcCiAJc25wcmludGZfbGl0ZS5jYyBcCiAJ c3lzdGVtX2Vycm9yLmNjIFwKIAl0aHJlYWQuY2MgXAotCSR7Y3h4MTFfYWJpX3NvdXJjZXN9 IFwKKwkke2R1YWxfYWJpX3NvdXJjZXN9IFwKIAkke2hvc3Rfc291cmNlc30KIAogQEVOQUJM RV9EVUFMX0FCSV9GQUxTRUBleHRyYV9zdHJpbmdfaW5zdF9zb3VyY2VzID0gCiBARU5BQkxF X0RVQUxfQUJJX1RSVUVAZXh0cmFfc3RyaW5nX2luc3Rfc291cmNlcyA9IFwKLUBFTkFCTEVf RFVBTF9BQklfVFJVRUAJY293LWZzdHJlYW0taW5zdC5jYyBcCi1ARU5BQkxFX0RVQUxfQUJJ X1RSVUVACWNvdy1zc3RyZWFtLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAlj b3ctc3RyaW5nLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctc3RyaW5n LWlvLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctd3N0cmluZy1pbnN0 LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY293LXdzdHJpbmctaW8taW5zdC5jYyBc Ci1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLWxvY2FsZS1pbnN0LmNjIFwKLUBFTkFC TEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtd2xvY2FsZS1pbnN0LmNjIFwKIEBFTkFCTEVfRFVB TF9BQklfVFJVRUAJc3NvX3N0cmluZy5jYwogCiAjIFhURU1QTEFURV9GTEFHUyA9CkBAIC01 MTcsNiArNTEwLDE0IEBAIHNvdXJjZXMgPSBcCiAjIFhURU1QTEFURV9GTEFHUyA9IC1mbm8t aW1wbGljaXQtdGVtcGxhdGVzCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQGluc3Rf c291cmNlcyA9IFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACSQoZXh0cmFfc3Ry aW5nX2luc3Rfc291cmNlcykgXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293 LWZzdHJlYW0taW5zdC5jYyBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ct c3N0cmVhbS1pbnN0LmNjIFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy1z dHJpbmctaW5zdC5jYyBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctc3Ry aW5nLWlvLWluc3QuY2MgXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXdz dHJpbmctaW5zdC5jYyBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctd3N0 cmluZy1pby1pbnN0LmNjIFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWN4eDEx LWxvY2FsZS1pbnN0LmNjIFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWN4eDEx LXdsb2NhbGUtaW5zdC5jYyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAlleHQx MS1pbnN0LmNjIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWZzdHJlYW0taW5z dC5jYyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAlpb3MtaW5zdC5jYyBcCmRp ZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1mc3RyZWFtLWluc3QuY2Mg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1mc3RyZWFtLWluc3QuY2MKaW5kZXggMDU2 MmJjNmM5Y2IuLjgxNTMzODdkYWVhIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2Mr KzExL2Nvdy1mc3RyZWFtLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9j b3ctZnN0cmVhbS1pbnN0LmNjCkBAIC0yOSwxMCArMjksNyBAQAogI2RlZmluZSBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlIDxmc3RyZWFtPgogCi0jaWYgISBfR0xJQkNY WF9VU0VfRFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgY29tcGls ZWQgZm9yIHRoaXMgY29uZmlndXJhdGlvbi4KLSNlbmRpZgotCisjaWYgISBfR0xJQkNYWF9V U0VfQ1hYMTFfQUJJCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVs dCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCkBAIC03NiwzICs3Myw0 IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIF9HTElCQ1hYX0VORF9O QU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctbG9jYWxlX2luaXQuY2MgYi9saWJzdGRjKyst djMvc3JjL2MrKzExL2Nvdy1sb2NhbGVfaW5pdC5jYwppbmRleCA4NTI3Nzc2MzQyNy4uNjgz M2Y5MDNmNDcgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LWxvY2Fs ZV9pbml0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LWxvY2FsZV9pbml0 LmNjCkBAIC0yNCwxMCArMjQsNyBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ IDAKICNpbmNsdWRlIDxsb2NhbGU+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQot IyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25m aWd1cmF0aW9uLgotI2VuZGlmCi0KKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIG5h bWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KQEAgLTE2NSw2ICsxNjIsNyBAQCBuYW1lc3BhY2UK ICNlbmRpZgogICB9CiAKKyNpZiBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKIC8vIFRPRE8gc2hv dWxkIGJlIGluIGFub3RoZXIgZmlsZQogICBzdHJpbmcKICAgbG9jYWxlOjpuYW1lKCkgY29u c3QKQEAgLTE5MCw2ICsxODgsOCBAQCBuYW1lc3BhY2UKICAgICAgIH0KICAgICByZXR1cm4g X19yZXQ7CiAgIH0KKyNlbmRpZgogCiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04K IH0KKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKZGlmZiAtLWdpdCBhL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvY293LXNzdHJlYW0taW5zdC5jYyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY293LXNzdHJlYW0taW5zdC5jYwppbmRleCAwMzVhMjY3ZDlkOC4uNzY5 OTE3MGQxM2QgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXNzdHJl YW0taW5zdC5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1zc3RyZWFtLWlu c3QuY2MKQEAgLTI3LDggKzI3LDggQEAKIC8vCiAKICNkZWZpbmUgX0dMSUJDWFhfVVNFX0NY WDExX0FCSSAwCi0jaW5jbHVkZSAic3N0cmVhbS1pbnN0LmNjIgorI2luY2x1ZGUgPGJpdHMv YysrY29uZmlnLmg+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBU aGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9u LgorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBpbmNsdWRlICJzc3RyZWFtLWlu c3QuY2MiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293 LXN0ZGV4Y2VwdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0ZGV4Y2VwdC5j YwppbmRleCA4ZDFjYzQ2MDVkNC4uMjNmODUzZWFkYWMgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY293LXN0ZGV4Y2VwdC5jYworKysgYi9saWJzdGRjKystdjMvc3Jj L2MrKzExL2Nvdy1zdGRleGNlcHQuY2MKQEAgLTQzLDExICs0Myw1MiBAQCBfdHhuYWxfcnVu dGltZV9lcnJvcl9nZXRfbXNnKHZvaWQqIGUpOwogCiAvLyBBbGwgZXhjZXB0aW9uIGNsYXNz ZXMgc3RpbGwgdXNlIHRoZSBjbGFzc2ljIENPVyBzdGQ6OnN0cmluZy4KICNkZWZpbmUgX0dM SUJDWFhfVVNFX0NYWDExX0FCSSAwCi0jZGVmaW5lIF9HTElCQ1hYX0RFRklORV9TVERFWENF UFRfQ09QWV9PUFMgMQotI2RlZmluZSBfX2Nvd19zdHJpbmcgX19jb3dfc3RyaW5neHh4Cisj aW5jbHVkZSA8c3RyaW5nPgorCisjaWYgX0dMSUJDWFhfVVNFX0RVQUxfQUJJIHx8IF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKKyMgaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyAgaW5j bHVkZSA8Yml0cy9jb3dfc3RyaW5nLmg+CisjIGVuZGlmCisKK25hbWVzcGFjZSBzdGQgX0dM SUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQoreworX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KKworIyBpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisgIHR5cGVkZWYgc3Rk OjpfX3N0ZF9jb3dfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sCisJCQkJ c3RkOjphbGxvY2F0b3I8Y2hhcj4+IGNvd3N0cjsKKyMgZWxzZQorICB0eXBlZGVmIHN0ZDo6 c3RyaW5nIGNvd3N0cjsKKyMgZW5kaWYKKworICAvLyBSZWRlZmluZSBfX2Nvd19zdHJpbmcg c28gdGhhdCB3ZSBjYW4gZGVmaW5lIGFuZCBleHBvcnQgaXRzIG1lbWJlcnMKKyAgLy8gaW4g dGVybXMgb2YgdGhlIENPVyBzdGQ6OnN0cmluZy4KKyAgc3RydWN0IF9fY293X3N0cmluZwor ICB7CisgICAgdW5pb24geworICAgICAgY29uc3QgY2hhciogX01fcDsKKyAgICAgIGNoYXIg X01fYnl0ZXNbc2l6ZW9mKF9NX3ApXTsKKyAgICAgIGNvd3N0ciBfTV9zdHI7CisgICAgfTsK KworICAgIF9fY293X3N0cmluZygpOworICAgIF9fY293X3N0cmluZyhjb25zdCBzdGQ6OnN0 cmluZyYgcyk7CisgICAgX19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqKTsKKyAgICBfX2Nvd19z dHJpbmcoY29uc3QgY2hhciosIHNpemVfdCk7CisgICAgX19jb3dfc3RyaW5nKGNvbnN0IF9f Y293X3N0cmluZyYpIG5vZXhjZXB0OworICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KGNv bnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0OworICAgIH5fX2Nvd19zdHJpbmcoKTsKKyAg ICBfX2Nvd19zdHJpbmcoX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0OworICAgIF9fY293X3N0 cmluZyYgb3BlcmF0b3I9KF9fY293X3N0cmluZyYmKSBub2V4Y2VwdDsKKyAgICBjb25zdCBj aGFyKiBjX3N0cigpIGNvbnN0IG5vZXhjZXB0OworICB9OworX0dMSUJDWFhfRU5EX05BTUVT UEFDRV9WRVJTSU9OCit9CisjZW5kaWYKKworI2RlZmluZSBfR0xJQkNYWF9ERUZJTkVfU1RE RVhDRVBUX0lOU1RBTlRJQVRJT05TIDEKICNpbmNsdWRlIDxzdGRleGNlcHQ+CiAjaW5jbHVk ZSA8c3lzdGVtX2Vycm9yPgotI3VuZGVmIF9fY293X3N0cmluZwogCiBuYW1lc3BhY2Ugc3Rk IF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKQEAgLTExNCwzMCArMTU1LDE2IEBA IF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgIC8vIENvbnZlcnRpbmcgY29u c3RydWN0b3IgZnJvbSBDT1cgc3RkOjpzdHJpbmcgdG8gU1NPIHN0cmluZy4KICAgX19zc29f c3RyaW5nOjpfX3Nzb19zdHJpbmcoY29uc3Qgc3RyaW5nJiBzKQogICA6IF9fc3NvX3N0cmlu ZyhzLmNfc3RyKCksIHMubGVuZ3RoKCkpIHsgfQorI2VuZGlmCiAKLSAgLy8gUmVkZWZpbmUg X19jb3dfc3RyaW5nIHNvIHRoYXQgd2UgY2FuIGRlZmluZSBhbmQgZXhwb3J0IGl0cyBtZW1i ZXJzCi0gIC8vIGluIHRlcm1zIG9mIHRoZSBDT1cgc3RkOjpzdHJpbmcuCi0gIHN0cnVjdCBf X2Nvd19zdHJpbmcKLSAgewotICAgIHVuaW9uIHsKLSAgICAgIGNvbnN0IGNoYXIqIF9NX3A7 Ci0gICAgICBjaGFyIF9NX2J5dGVzW3NpemVvZihfTV9wKV07Ci0gICAgICBzdGQ6OnN0cmlu ZyBfTV9zdHI7Ci0gICAgfTsKLQotICAgIF9fY293X3N0cmluZygpOwotICAgIF9fY293X3N0 cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgcyk7Ci0gICAgX19jb3dfc3RyaW5nKGNvbnN0IGNo YXIqLCBzaXplX3Qgbik7Ci0gICAgX19jb3dfc3RyaW5nKGNvbnN0IF9fY293X3N0cmluZyYp IG5vZXhjZXB0OwotICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KGNvbnN0IF9fY293X3N0 cmluZyYpIG5vZXhjZXB0OwotICAgIH5fX2Nvd19zdHJpbmcoKTsKLSAgICBfX2Nvd19zdHJp bmcoX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0OwotICAgIF9fY293X3N0cmluZyYgb3BlcmF0 b3I9KF9fY293X3N0cmluZyYmKSBub2V4Y2VwdDsKLSAgfTsKLQorI2lmIF9HTElCQ1hYX1VT RV9EVUFMX0FCSSB8fCBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIF9fY293X3N0cmluZzo6 X19jb3dfc3RyaW5nKCkgOiBfTV9zdHIoKSB7IH0KIAorI2lmICFfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAgIF9fY293X3N0cmluZzo6X19jb3dfc3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5n JiBzKSA6IF9NX3N0cihzKSB7IH0KKyNlbmRpZgorCisgIF9fY293X3N0cmluZzo6X19jb3df c3RyaW5nKGNvbnN0IGNoYXIqIHMpIDogX01fc3RyKHMpIHsgfQogCiAgIF9fY293X3N0cmlu Zzo6X19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqIHMsIHNpemVfdCBuKSA6IF9NX3N0cihzLCBu KSB7IH0KIApAQCAtMTUxLDcgKzE3OCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAgICAgcmV0dXJuICp0aGlzOwogICB9CiAKLSAgX19jb3dfc3RyaW5nOjp+X19j b3dfc3RyaW5nKCkgeyBfTV9zdHIufmJhc2ljX3N0cmluZygpOyB9CisgIF9fY293X3N0cmlu Zzo6fl9fY293X3N0cmluZygpIHsgX01fc3RyLn5jb3dzdHIoKTsgfQogCiAgIF9fY293X3N0 cmluZzo6X19jb3dfc3RyaW5nKF9fY293X3N0cmluZyYmIHMpIG5vZXhjZXB0CiAgIDogX01f c3RyKHN0ZDo6bW92ZShzLl9NX3N0cikpIHsgfQpAQCAtMTYzLDEyICsxOTAsMTcgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICByZXR1cm4gKnRoaXM7CiAgIH0K IAotICBzdGF0aWNfYXNzZXJ0KHNpemVvZihfX2Nvd19zdHJpbmcpID09IHNpemVvZihzdGQ6 OnN0cmluZyksCisgIGNvbnN0IGNoYXIqCisgIF9fY293X3N0cmluZzo6Y19zdHIoKSBjb25z dCBub2V4Y2VwdAorICB7IHJldHVybiBfTV9zdHIuY19zdHIoKTsgfQorCisgIHN0YXRpY19h c3NlcnQoc2l6ZW9mKF9fY293X3N0cmluZykgPT0gc2l6ZW9mKGNvd3N0ciksCiAgICAgICAg ICAgICAgICAgInNpemVvZihzdGQ6OnN0cmluZykgaGFzIGNoYW5nZWQiKTsKLSAgc3RhdGlj X2Fzc2VydChhbGlnbm9mKF9fY293X3N0cmluZykgPT0gYWxpZ25vZihzdGQ6OnN0cmluZyks CisgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihfX2Nvd19zdHJpbmcpID09IGFsaWdub2YoY293 c3RyKSwKICAgICAgICAgICAgICAgICAiYWxpZ25vZihzdGQ6OnN0cmluZykgaGFzIGNoYW5n ZWQiKTsKLSNlbmRpZgorI2VuZGlmIC8vIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIAorI2lm ICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAvLyBSZXR1cm4gZXJyb3JfY2F0ZWdvcnk6 Om1lc3NhZ2UoKSBhcyBhbiBTU08gc3RyaW5nCiAgIF9fc3NvX3N0cmluZwogICBlcnJvcl9j YXRlZ29yeTo6X01fbWVzc2FnZShpbnQgaSkgY29uc3QKQEAgLTE3NiwxMCArMjA4LDEyIEBA IF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgc3RyaW5nIG1zZyA9IHRo aXMtPm1lc3NhZ2UoaSk7CiAgICAgcmV0dXJuIHttc2cuY19zdHIoKSwgbXNnLmxlbmd0aCgp fTsKICAgfQorI2VuZGlmCiAKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAv LyBuYW1lc3BhY2UKIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogLy8gU3VwcG9y dCBmb3IgdGhlIFRyYW5zYWN0aW9uYWwgTWVtb3J5IFRTIChONDUxNCkuCiAvLwogLy8gbG9n aWNfZXJyb3IgYW5kIHJ1bnRpbWVfZXJyb3IgYm90aCBjYXJyeSBhIG1lc3NhZ2UgaW4gdGhl IGZvcm0gb2YgYSBDT1cKQEAgLTQ2MywzICs0OTcsNCBAQCBDVE9SRFRPUigxNXVuZGVyZmxv d19lcnJvciwgc3RkOjp1bmRlcmZsb3dfZXJyb3IsIHJ1bnRpbWVfZXJyb3IpCiAKICNlbmRp ZiAgLy8gX0dMSUJDWFhfVVNFX0M5OV9TVERJTlQKICNlbmRpZiAgLy8gX0dMSUJDWFhfVVNF X1dFQUtfUkVGCisjZW5kaWYgIC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZmIC0t Z2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RyaW5nLWluc3QuY2MgYi9saWJz dGRjKystdjMvc3JjL2MrKzExL2Nvdy1zdHJpbmctaW5zdC5jYwppbmRleCA1YTJiOGZmYTU2 OC4uNTdjMjgxMjlmMDAgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293 LXN0cmluZy1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0cmlu Zy1pbnN0LmNjCkBAIC0yOSwxMCArMjksNyBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJIDAKICNpbmNsdWRlICJzdHJpbmctaW5zdC5jYyIKIAotI2lmICEgX0dMSUJDWFhf VVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVk IGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKLQorI2lmIF9HTElCQ1hYX1VTRV9E VUFMX0FCSSAmJiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICNpbmNsdWRlIDxyYW5kb20+ CiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQpAQCAtNDUs MyArNDIsNCBAQCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkK ICAgcmFuZG9tX2RldmljZTo6X01faW5pdF9wcmV0cjEoY29uc3Qgc3RkOjpzdHJpbmcmIHRv a2VuKQogICB7IF9NX2luaXQodG9rZW4uY19zdHIoKSwgdG9rZW4ubGVuZ3RoKCkpOyB9CiB9 IC8vIG5hbWVzcGFjZQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2Mr KzExL2Nvdy1zdHJpbmctaW8taW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293 LXN0cmluZy1pby1pbnN0LmNjCmluZGV4IDUwNWJjOWRkMzg0Li45YWJjOWI0N2U1MiAxMDA2 NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RyaW5nLWlvLWluc3QuY2MK KysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RyaW5nLWlvLWluc3QuY2MKQEAg LTMwLDEwICszMCw3IEBACiAjaW5jbHVkZSA8aXN0cmVhbT4KICNpbmNsdWRlIDxvc3RyZWFt PgogCi0jaWYgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBmaWxlIHNo b3VsZCBub3QgYmUgY29tcGlsZWQgZm9yIHRoaXMgY29uZmlndXJhdGlvbi4KLSNlbmRpZgot CisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hY X1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCkBAIC01NywzICs1NCw0IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CiAKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKKyNl bmRpZgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1p bnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1pbnN0LmNjCmlu ZGV4IGNlNTMzZWE4ZmE1Li5kM2MzYjBjMjk3ZSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jb3ctd3N0cmluZy1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMv YysrMTEvY293LXdzdHJpbmctaW5zdC5jYwpAQCAtMjksMTIgKzI5LDkgQEAKICNkZWZpbmUg X0dMSUJDWFhfVVNFX0NYWDExX0FCSSAwCiAjaW5jbHVkZSA8Yml0cy9jKytjb25maWcuaD4K IAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogI2lmZGVmIF9HTElCQ1hYX1VTRV9X Q0hBUl9UCiAjZGVmaW5lIEMgd2NoYXJfdAogI2luY2x1ZGUgInN0cmluZy1pbnN0LmNjIgot Ci0jaWYgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBmaWxlIHNob3Vs ZCBub3QgYmUgY29tcGlsZWQgZm9yIHRoaXMgY29uZmlndXJhdGlvbi4KICNlbmRpZgotCiAj ZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXdzdHJpbmct aW8taW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXdzdHJpbmctaW8taW5z dC5jYwppbmRleCA0OTM5NGIwZTI3NS4uMGU2Y2M0OTBmYTQgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9zcmMvYysrMTEvY293LXdzdHJpbmctaW8taW5zdC5jYworKysgYi9saWJzdGRj KystdjMvc3JjL2MrKzExL2Nvdy13c3RyaW5nLWlvLWluc3QuY2MKQEAgLTI5LDE0ICsyOSwx MSBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlIDxiaXRz L2MrK2NvbmZpZy5oPgogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAjaWZkZWYg X0dMSUJDWFhfVVNFX1dDSEFSX1QKICNpbmNsdWRlIDxvc3RyZWFtPgogI2luY2x1ZGUgPGlz dHJlYW0+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZp bGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2Vu ZGlmCi0KIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewog X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KQEAgLTYxLDMgKzU4LDQgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0Vf VkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKICNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWhhc2hfdHIxLmNjIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jeHgxMS1oYXNoX3RyMS5jYwppbmRleCAyMmE3Njg1ZWVjYS4uMGI5ZmMy OGNlYWEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtaGFzaF90 cjEuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1oYXNoX3RyMS5jYwpA QCAtMjUsOSArMjUsNyBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDEKICNp bmNsdWRlIDxzdHJpbmc+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJv ciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0 aW9uLgotI2VuZGlmCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAjaW5jbHVkZSA8 dHIxL2Z1bmN0aW9uYWw+CiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVm YXVsdCkKQEAgLTU3LDMgKzU1LDUgQEAgbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklM SVRZKGRlZmF1bHQpCiAjZW5kaWYKICAgfQogfQorCisjZW5kaWYgLy8gX0dMSUJDWFhfVVNF X0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1p b3NfZmFpbHVyZS5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtaW9zX2ZhaWx1 cmUuY2MKaW5kZXggZTBlODE2YjQ1M2IuLjQ2YmZkYTMyOWRlIDEwMDY0NAotLS0gYS9saWJz dGRjKystdjMvc3JjL2MrKzExL2N4eDExLWlvc19mYWlsdXJlLmNjCisrKyBiL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY3h4MTEtaW9zX2ZhaWx1cmUuY2MKQEAgLTM4LDkgKzM4LDcgQEAK ICMgZGVmaW5lIF8obXNnaWQpICAgKG1zZ2lkKQogI2VuZGlmCiAKLSNpZiAhIF9HTElCQ1hY X1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxl ZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2VuZGlmCisjaWYgX0dMSUJDWFhfVVNFX0NY WDExX0FCSQogCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkK IHsKQEAgLTYyLDcgKzYwLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgaW9zX2Jhc2U6OmZhaWx1cmU6OndoYXQoKSBjb25zdCB0aHJvdygpCiAgIHsgcmV0dXJu IHJ1bnRpbWVfZXJyb3I6OndoYXQoKTsgfQogCi0jaWYgX19jcHBfcnR0aQorI2lmIF9HTElC Q1hYX1VTRV9EVUFMX0FCSSAmJiBfX2NwcF9ydHRpCiAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBh cmUgZGVmaW5lZCBpbiBzcmMvYysrOTgvaW9zX2ZhaWx1cmUuY2MKICAgZXh0ZXJuIHZvaWQg X19jb25zdHJ1Y3RfaW9zX2ZhaWx1cmUodm9pZCosIGNvbnN0IGNoYXIqKTsKICAgZXh0ZXJu IHZvaWQgX19kZXN0cm95X2lvc19mYWlsdXJlKHZvaWQqKTsKQEAgLTExOCw3ICsxMTYsNyBA QCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIC8vIE90aGVyd2lzZSBw cm9jZWVkIGFzIG5vcm1hbCB0byBzZWUgaWYgdGhlIGhhbmRsZXIgbWF0Y2hlcy4KICAgICBy ZXR1cm4gX19jbGFzc190eXBlX2luZm86Ol9fZG9fdXBjYXN0KGRzdF90eXBlLCBvYmpfcHRy KTsKICAgfQotI2Vsc2UgLy8gISBfX2NwcF9ydHRpCisjZWxzZSAvLyAhIF9HTElCQ1hYX1VT RV9EVUFMX0FCSSB8fCAhIF9fY3BwX3J0dGkKICAgdXNpbmcgX19pb3NfZmFpbHVyZSA9IGlv czo6ZmFpbHVyZTsKICNlbmRpZgogCkBAIC0xMzYsMyArMTM0LDUgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9O CiB9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQpk aWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1sb2NhbGUtaW5zdC5j YyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtbG9jYWxlLWluc3QuY2MKaW5kZXgg OTRiMTgxODg2ZDMuLmUyMWNjNTU0OGJmIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3Jj L2MrKzExL2N4eDExLWxvY2FsZS1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysr MTEvY3h4MTEtbG9jYWxlLWluc3QuY2MKQEAgLTI3LDExICsyNyw1IEBACiAvLyBGYWNldCBp bnN0YW50aWF0aW9ucyB1c2luZyBuZXcgQUJJIHN0cmluZ3MuCiAKICNkZWZpbmUgX0dMSUJD WFhfVVNFX0NYWDExX0FCSSAxCi0jaW5jbHVkZSA8Yml0cy9jKytjb25maWcuaD4KLSNpZiAh IF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5vdCBi ZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2VuZGlmCiAKLSNkZWZpbmUg QyBjaGFyCi0jZGVmaW5lIENfaXNfY2hhcgotIyBpbmNsdWRlICJsb2NhbGUtaW5zdC5jYyIK KyNpbmNsdWRlICJsb2NhbGUtaW5zdC5jYyIKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvY3h4MTEtc3RkZXhjZXB0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9j eHgxMS1zdGRleGNlcHQuY2MKaW5kZXggNzRjMDcwYzA0MzkuLjM4YWIzNTY5MmEzIDEwMDY0 NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLXN0ZGV4Y2VwdC5jYworKysg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLXN0ZGV4Y2VwdC5jYwpAQCAtMjksOSAr MjksNyBAQAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDEKICNpbmNsdWRlIDxz dGRleGNlcHQ+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlz IGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgot I2VuZGlmCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiBuYW1lc3BhY2Ugc3RkIF9H TElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKQEAgLTc2LDMgKzc0LDUgQEAgX0dMSUJD WFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9W RVJTSU9OCiB9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS13bG9jYWxl LWluc3QuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLXdsb2NhbGUtaW5zdC5j YwppbmRleCAxMWZiMTVkOTYwMi4uZmFmZjIzNmMxZGYgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY3h4MTEtd2xvY2FsZS1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY3h4MTEtd2xvY2FsZS1pbnN0LmNjCkBAIC0yOCwxMSArMjgsMTAgQEAK IAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDEKICNpbmNsdWRlIDxiaXRzL2Mr K2NvbmZpZy5oPgotI2lmICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMg ZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0j ZW5kaWYKIAotI2lmZGVmIF9HTElCQ1hYX1VTRV9XQ0hBUl9UCi0jZGVmaW5lIEMgd2NoYXJf dAotI2luY2x1ZGUgImxvY2FsZS1pbnN0LmNjIgorI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKKyMgaWZkZWYgX0dMSUJDWFhfVVNFX1dDSEFSX1QKKyMgIGRlZmluZSBDIHdjaGFyX3QK KyMgIGluY2x1ZGUgImxvY2FsZS1pbnN0LmNjIgorIyBlbmRpZgogI2VuZGlmCmRpZmYgLS1n aXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2xvY2FsZS1pbnN0LW51bWVyaWMuaCBiL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWluc3QtbnVtZXJpYy5oCmluZGV4IGI5MTdm ZTU4MDJlLi4yMTFlMTljN2ZmOSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysx MS9sb2NhbGUtaW5zdC1udW1lcmljLmgKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9s b2NhbGUtaW5zdC1udW1lcmljLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIHN0 ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCiB7Ci0jaWYgISBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhf VVNFX0RVQUxfQUJJCiAvLyB1c2VfZmFjZXQgYW5kIGhhc19mYWNldCBpbnN0YW50aWF0aW9u cwogSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKG51bV9nZXQ8Qz4pOwogSU5TVEFOVElB VEVfRkFDRVRfQUNDRVNTT1JTKG51bV9wdXQ8Qz4pOwpAQCAtMzgsNyArMzgsNyBAQCBJTlNU QU5USUFURV9GQUNFVF9BQ0NFU1NPUlMobnVtX3B1dDxDPik7CiAKIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9MREJMCiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAh IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAg dGVtcGxhdGUgY2xhc3MgbnVtX2dldDxDLCBpc3RyZWFtYnVmX2l0ZXJhdG9yPEM+ID47CiAg IHRlbXBsYXRlIGNsYXNzIG51bV9wdXQ8Qywgb3N0cmVhbWJ1Zl9pdGVyYXRvcjxDPiA+Owog I2VuZGlmCkBAIC04OCw3ICs4OCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9MREJM CiAJCSAgIHVuc2lnbmVkIGxvbmcgbG9uZyYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwg ISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgLy8gbnVtX3B1dCBtZW1iZXIgZnVuY3Rpb24g dGVtcGxhdGVzCiAgIHRlbXBsYXRlCiAgICAgb3N0cmVhbWJ1Zl9pdGVyYXRvcjxDPgpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9sb2NhbGUtaW5zdC5jYyBiL2xpYnN0 ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWluc3QuY2MKaW5kZXggM2E1YzY4NDRmMWIuLmVl MzM3NWQ3MDQwIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2xvY2FsZS1p bnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWluc3QuY2MKQEAg LTM1LDggKzM1LDE3IEBACiAjIGRlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNl bmRpZgogCi0jaW5jbHVkZSA8bG9jYWxlPgorI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkK KyMgZGVmaW5lIF9HTElCQ1hYX0JVSUxEX0NYWDExX0FCSSAxCisjZWxzZQorIyBkZWZpbmUg X0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJIDAKKyNlbmRpZgorCisjaW5jbHVkZSA8Yml0cy9j Kytjb25maWcuaD4KIAorI2lmIF9HTElCQ1hYX0JVSUxEX0NYWDExX0FCSSA9PSBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCisKKyNpbmNsdWRlIDxsb2NhbGU+CiAvLyBJbnN0YW50aWF0aW9u IGNvbmZpZ3VyYXRpb24uCiAjaWZuZGVmIEMKICMgZGVmaW5lIEMgY2hhcgpAQCAtNTIsNyAr NjEsNyBAQCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIF9H TElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKICAgLy8gbW9uZXlwdW5jdCwgbW9u ZXlfZ2V0LCBhbmQgbW9uZXlfcHV0Ci0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisj aWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJ CiAgIHRlbXBsYXRlIHN0cnVjdCBfX21vbmV5cHVuY3RfY2FjaGU8QywgZmFsc2U+OwogICB0 ZW1wbGF0ZSBzdHJ1Y3QgX19tb25leXB1bmN0X2NhY2hlPEMsIHRydWU+OwogI2VuZGlmCkBA IC02NCw3ICs3Myw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9DWFgxMQogX0dMSUJD WFhfRU5EX05BTUVTUEFDRV9DWFgxMQogCiAgIC8vIG51bXB1bmN0LCBudW1wdW5jdF9ieW5h bWUsIG51bV9nZXQsIGFuZCBudW1fcHV0Ci0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ CisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxf QUJJCiAgIHRlbXBsYXRlIHN0cnVjdCBfX251bXB1bmN0X2NhY2hlPEM+OwogI2VuZGlmCiBf R0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfQ1hYMTEKQEAgLTczLDcgKzgyLDcgQEAgX0dMSUJD WFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDEx CiAKICAgLy8gdGltZV9nZXQgYW5kIHRpbWVfcHV0Ci0jaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNF X0RVQUxfQUJJCiAgIHRlbXBsYXRlIGNsYXNzIF9fdGltZXB1bmN0PEM+OwogICB0ZW1wbGF0 ZSBzdHJ1Y3QgX190aW1lcHVuY3RfY2FjaGU8Qz47CiAgIHRlbXBsYXRlIGNsYXNzIHRpbWVf cHV0PEMsIG9zdHJlYW1idWZfaXRlcmF0b3I8Qz4gPjsKQEAgLTk3LDEzICsxMDYsMTMgQEAg X0dMSUJDWFhfRU5EX05BTUVTUEFDRV9DWFgxMQogICBjdHlwZV9ieW5hbWU8Qz46OmN0eXBl X2J5bmFtZShjb25zdCBzdHJpbmcmIF9fcywgc2l6ZV90IF9fcmVmcykKICAgOiBjdHlwZV9i eW5hbWUoX19zLmNfc3RyKCksIF9fcmVmcykgeyB9CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9V U0VfRFVBTF9BQkkKICAgaW5saW5lIHRlbXBsYXRlIGNsYXNzIF9fY3R5cGVfYWJzdHJhY3Rf YmFzZTxDPjsKICAgdGVtcGxhdGUgY2xhc3MgY3R5cGVfYnluYW1lPEM+OwogI2VuZGlmCiAK ICAgLy8gY29kZWN2dAotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogICBpbmxp bmUgdGVtcGxhdGUgY2xhc3MgX19jb2RlY3Z0X2Fic3RyYWN0X2Jhc2U8QywgY2hhciwgbWJz dGF0ZV90PjsKICAgdGVtcGxhdGUgY2xhc3MgY29kZWN2dF9ieW5hbWU8QywgY2hhciwgbWJz dGF0ZV90PjsKICNlbHNlCkBAIC0xMTgsNyArMTI3LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX0NYWDExCiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCiAKIC8vIHVzZV9m YWNldCBhbmQgaGFzX2ZhY2V0IGluc3RhbnRpYXRpb25zCi0jaWYgISBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhf VVNFX0RVQUxfQUJJCiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMoY3R5cGU8Qz4pOwog SU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKGNvZGVjdnQ8QywgY2hhciwgbWJzdGF0ZV90 Pik7CiAjZW5kaWYKQEAgLTEyNywxNCArMTM2LDE0IEBAIElOU1RBTlRJQVRFX0ZBQ0VUX0FD Q0VTU09SUyhudW1wdW5jdDxDPik7CiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMobW9u ZXlwdW5jdDxDLCBmYWxzZT4pOwogLy8gTm8gZXhwbGljaXQgaW5zdGFudGlhdGlvbiBvZiBo YXNfZmFjZXQ8bW9uZXlwdW5jdDxDLCB0cnVlPj4gZm9yIHNvbWUgcmVhc29uLgogSU5TVEFO VElBVEVfVVNFX0ZBQ0VUICAgICAgKG1vbmV5cHVuY3Q8QywgdHJ1ZT4pOwotI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAh IF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKF9f dGltZXB1bmN0PEM+KTsKIElOU1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyh0aW1lX3B1dDxD Pik7CiAjZW5kaWYKIElOU1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyh0aW1lX2dldDxDPik7 CiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMobWVzc2FnZXM8Qz4pOwogCi0jaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8 ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAgIC8vIGxvY2FsZSBmdW5jdGlvbnMuCiAgIHRl bXBsYXRlCiAgICAgQyoKQEAgLTE2MywzICsxNzIsNSBAQCBfR0xJQkNYWF9FTkRfTkFNRVNQ QUNFX1ZFUlNJT04KICNpZiBkZWZpbmVkIF9HTElCQ1hYX0xPTkdfRE9VQkxFX0NPTVBBVCAm JiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICNpbmNsdWRlICJjb21wYXRpYmlsaXR5LWxk YmwtZmFjZXRzLWFsaWFzZXMuaCIKICNlbmRpZiAvLyBfR0xJQkNYWF9MT05HX0RPVUJMRV9D T01QQVQKKworI2VuZGlmIC8vICBfR0xJQkNYWF9CVUlMRF9DWFgxMV9BQkkgPT0gX0dMSUJD WFhfVVNFX0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9z dHJpbmctaW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvc3RyaW5nLWluc3QuY2MK aW5kZXggZGRhYWZjMDgxOTkuLmYyOTE3NmRmYzg4IDEwMDY0NAotLS0gYS9saWJzdGRjKyst djMvc3JjL2MrKzExL3N0cmluZy1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysr MTEvc3RyaW5nLWluc3QuY2MKQEAgLTM1LDYgKzM1LDEyIEBACiAjIGRlZmluZSBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJIDEKICNlbmRpZgogCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQorIyBkZWZpbmUgX0dMSUJDWFhfREVGSU5JTkdfQ1hYMTFfQUJJX0lOU1RBTlRJQVRJT05T IDEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9ERUZJTklOR19DWFgxMV9BQklfSU5TVEFO VElBVElPTlMgMAorI2VuZGlmCisKIC8vIFByZXZlbnQgdGhlIGJhc2ljX3N0cmluZyhjb25z dCBfQ2hhclQqLCBjb25zdCBfQWxsb2MmKSBhbmQKIC8vIGJhc2ljX3N0cmluZyhzaXplX3R5 cGUsIF9DaGFyVCwgY29uc3QgX0FsbG9jJikgY29uc3RydWN0b3JzIGZyb20gYmVpbmcKIC8v IHJlcGxhY2VkIGJ5IGNvbnN0cmFpbmVkIGZ1bmN0aW9uIHRlbXBsYXRlcywgc28gdGhhdCB3 ZSBpbnN0YW50aWF0ZSB0aGUKQEAgLTQ1LDYgKzUxLDI5IEBACiAKICNpbmNsdWRlIDxzdHJp bmc+CiAKKyNpZiBfR0xJQkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQorI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KKworI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKKyMgaW5jbHVkZSA8Yml0cy9jb3dfc3RyaW5nLmg+Cit0eXBlZGVmIHN0ZDo6X19zdGRf Y293X3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LAorCQkJICAgICAgc3Rk OjphbGxvY2F0b3I8Y2hhcj4+IGNvd3N0cjsKKyNlbHNlCit0eXBlZGVmIHN0ZDo6c3RyaW5n IGNvd3N0cjsKKyNlbmRpZgorCitzdGF0aWNfYXNzZXJ0KHNpemVvZihzdGQ6Ol9fY293X3N0 cmluZykgPT0gc2l6ZW9mKGNvd3N0ciksCisJICAgICAgInNpemVvZihzdGQ6OnN0cmluZykg aGFzIGNoYW5nZWQiKTsKK3N0YXRpY19hc3NlcnQoYWxpZ25vZihzdGQ6Ol9fY293X3N0cmlu ZykgPT0gYWxpZ25vZihjb3dzdHIpLAorCSAgICAgICJhbGlnbm9mKHN0ZDo6c3RyaW5nKSBo YXMgY2hhbmdlZCIpOworI2VuZGlmIC8vIF9HTElCQ1hYX1VTRV9EVUFMX0FCSSB8fCBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJCisKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJICYmICEg X0dMSUJDWFhfREVGSU5JTkdfQ1hYMTFfQUJJX0lOU1RBTlRJQVRJT05TCisjIGRlZmluZSBf R0xJQkNYWF9ERUZJTklOR19DT1dfU1RSSU5HX0lOU1RBTlRJQVRJT05TIDEKKyMgaW5jbHVk ZSA8Yml0cy9jb3dfc3RyaW5nLmg+CisjIGRlZmluZSBiYXNpY19zdHJpbmcgX19zdGRfY293 X3N0cmluZworI2VuZGlmCisKIC8vIEluc3RhbnRpYXRpb24gY29uZmlndXJhdGlvbi4KICNp Zm5kZWYgQwogIyBkZWZpbmUgQyBjaGFyCkBAIC01NCwxMiArODMsMTQgQEAgbmFtZXNwYWNl IHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogCi0gIHR5cGVkZWYgYmFzaWNfc3RyaW5nPEM+IFM7Cit0eXBl ZGVmIGJhc2ljX3N0cmluZzxDLCBzdGQ6OmNoYXJfdHJhaXRzPEM+LCBzdGQ6OmFsbG9jYXRv cjxDPj4gUzsKIAotICB0ZW1wbGF0ZSBjbGFzcyBiYXNpY19zdHJpbmc8Qz47CisgIHRlbXBs YXRlIGNsYXNzIGJhc2ljX3N0cmluZzxDLCBzdGQ6OmNoYXJfdHJhaXRzPEM+LCBzdGQ6OmFs bG9jYXRvcjxDPj47CisjaWYgISBfR0xJQkNYWF9ERUZJTklOR19DT1dfU1RSSU5HX0lOU1RB TlRJQVRJT05TCiAgIHRlbXBsYXRlIFMgb3BlcmF0b3IrKGNvbnN0IEMqLCBjb25zdCBTJik7 CiAgIHRlbXBsYXRlIFMgb3BlcmF0b3IrKEMsIGNvbnN0IFMmKTsKICAgdGVtcGxhdGUgUyBv cGVyYXRvcisoY29uc3QgUyYsIGNvbnN0IFMmKTsKKyNlbmRpZgogCiAgIC8vIE9ubHkgb25l IHRlbXBsYXRlIGtleXdvcmQgYWxsb3dlZCBoZXJlLgogICAvLyBTZWUgY29yZSBpc3N1ZSAj NDYgKE5BRCkKQEAgLTczLDcgKzEwNCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAgIHRlbXBsYXRlCiAgICAgUzo6YmFzaWNfc3RyaW5nKFM6Oml0ZXJhdG9yLCBT OjppdGVyYXRvciwgY29uc3QgYWxsb2NhdG9yPEM+Jik7CiAKLSNpZiBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAmJiAhIF9HTElCQ1hYX0RF RklOSU5HX0NPV19TVFJJTkdfSU5TVEFOVElBVElPTlMKICAgdGVtcGxhdGUKICAgICB2b2lk CiAgICAgUzo6X01fY29uc3RydWN0KFM6Oml0ZXJhdG9yLCBTOjppdGVyYXRvciwgZm9yd2Fy ZF9pdGVyYXRvcl90YWcpOwpAQCAtOTEsNyArMTIyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KICAgICB2b2lkCiAgICAgUzo6X01fY29uc3RydWN0KGNvbnN0IEMq LCBjb25zdCBDKiwgZm9yd2FyZF9pdGVyYXRvcl90YWcpOwogCi0jZWxzZSAvLyAhX0dMSUJD WFhfVVNFX0NYWDExX0FCSQorI2Vsc2UgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8 IF9HTElCQ1hYX0RFRklOSU5HX0NPV19TVFJJTkdfSU5TVEFOVElBVElPTlMKIAogICB0ZW1w bGF0ZQogICAgIEMqCkBAIC0xMTEsNiArMTQyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1l c3BhY2UKIAorI2lmICEgX0dMSUJDWFhfREVGSU5JTkdfQ09XX1NUUklOR19JTlNUQU5USUFU SU9OUwogbmFtZXNwYWNlIF9fZ251X2N4eCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQp CiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpAQCAtMTIxLDMgKzE1Myw0 IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIF9HTElCQ1hYX0VORF9O QU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL3NyYy9jKysxMS93bG9jYWxlLWluc3QuY2MgYi9saWJzdGRjKystdjMv c3JjL2MrKzExL3dsb2NhbGUtaW5zdC5jYwppbmRleCBkYzJkMjM0OTA1NS4uYjVjNzk4YmZl NjQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvd2xvY2FsZS1pbnN0LmNj CisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvd2xvY2FsZS1pbnN0LmNjCkBAIC0zMCw3 ICszMCw5IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUg PGJpdHMvYysrY29uZmlnLmg+CiAKLSNpZmRlZiBfR0xJQkNYWF9VU0VfV0NIQVJfVAotI2Rl ZmluZSBDIHdjaGFyX3QKLSNpbmNsdWRlICJsb2NhbGUtaW5zdC5jYyIKLSNlbmRpZiAvLyBf R0xJQkNYWF9VU0VfV0NIQVJfVAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBp ZmRlZiBfR0xJQkNYWF9VU0VfV0NIQVJfVAorIyAgZGVmaW5lIEMgd2NoYXJfdAorIyAgaW5j bHVkZSAibG9jYWxlLWluc3QuY2MiCisjIGVuZGlmIC8vIF9HTElCQ1hYX1VTRV9XQ0hBUl9U CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvTWFrZWZpbGUu YW0gYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L01ha2VmaWxlLmFtCmluZGV4IDI4NGZmZGEz NDQzLi5lYjI0MzI1YWY2NyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9N YWtlZmlsZS5hbQorKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L01ha2VmaWxlLmFtCkBA IC05MCwxMyArOTAsNiBAQCBjKytsb2NhbGUuY2M6ICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQ0xP Q0FMRV9DQykKIGJhc2ljX2ZpbGUuY2M6ICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQkFTSUNfRklM RV9DQykKIAkkKExOX1MpICR7Z2xpYmN4eF9zcmNkaXJ9LyQoQkFTSUNfRklMRV9DQykgLi8k QCB8fCB0cnVlCiAKLWlmIEVOQUJMRV9EVUFMX0FCSQotY3h4MTFfYWJpX3NvdXJjZXMgPSBc Ci0JY293LWlzdHJlYW0tc3RyaW5nLmNjCi1lbHNlCi1jeHgxMV9hYmlfc291cmNlcyA9Ci1l bmRpZgotCiBpZiBFTkFCTEVfRVhURVJOX1RFTVBMQVRFCiAjIFhURU1QTEFURV9GTEFHUyA9 IC1mbm8taW1wbGljaXQtdGVtcGxhdGVzCiBpbnN0X3NvdXJjZXMgPSBcCkBAIC0xMTgsNiAr MTExLDcgQEAgc291cmNlcyA9IFwKIAltdF9hbGxvY2F0b3IuY2MgXAogCWNvZGVjdnQuY2Mg XAogCWNvbXBsZXhfaW8uY2MgXAorCWNvdy1pc3RyZWFtLXN0cmluZy5jYyBcCiAJZ2xvYmFs c19pby5jYyBcCiAJaGFzaF90cjEuY2MgXAogCWhhc2h0YWJsZV90cjEuY2MgXApAQCAtMTQy LDcgKzEzNiw2IEBAIHNvdXJjZXMgPSBcCiAJaXN0cmVhbS1zdHJpbmcuY2MgXAogCXN0cmVh bWJ1Zi5jYyBcCiAJdmFsYXJyYXkuY2MgXAotCSR7Y3h4MTFfYWJpX3NvdXJjZXN9IFwKIAkk e2hvc3Rfc291cmNlc30gXAogCSR7aG9zdF9zb3VyY2VzX2V4dHJhfQogCmRpZmYgLS1naXQg YS9saWJzdGRjKystdjMvc3JjL2MrKzk4L01ha2VmaWxlLmluIGIvbGlic3RkYysrLXYzL3Ny Yy9jKys5OC9NYWtlZmlsZS5pbgppbmRleCBhMTAwZGY3N2E2ZC4uZDJlZDJhMjIxZjIgMTAw NjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvTWFrZWZpbGUuaW4KKysrIGIvbGli c3RkYysrLXYzL3NyYy9jKys5OC9NYWtlZmlsZS5pbgpAQCAtMTIxLDMxICsxMjEsMzAgQEAg Q09ORklHX0NMRUFOX0ZJTEVTID0KIENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CiBMVExJ QlJBUklFUyA9ICQobm9pbnN0X0xUTElCUkFSSUVTKQogbGliY19fOThjb252ZW5pZW5jZV9s YV9MSUJBREQgPQotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGFtX19vYmplY3RzXzEgPSBjb3ct aXN0cmVhbS1zdHJpbmcubG8KLUBFTkFCTEVfRFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c18y ID0gY29sbGF0ZV9tZW1iZXJzX2Nvdy5sbyBcCitARU5BQkxFX0RVQUxfQUJJX1RSVUVAYW1f X29iamVjdHNfMSA9IGNvbGxhdGVfbWVtYmVyc19jb3cubG8gXAogQEVOQUJMRV9EVUFMX0FC SV9UUlVFQAltZXNzYWdlc19tZW1iZXJzX2Nvdy5sbyBcCiBARU5BQkxFX0RVQUxfQUJJX1RS VUVACW1vbmV0YXJ5X21lbWJlcnNfY293LmxvIFwKIEBFTkFCTEVfRFVBTF9BQklfVFJVRUAJ bnVtZXJpY19tZW1iZXJzX2Nvdy5sbwotYW1fX29iamVjdHNfMyA9ICQoYW1fX29iamVjdHNf MikgY29kZWN2dF9tZW1iZXJzLmxvIGNvbGxhdGVfbWVtYmVycy5sbyBcCithbV9fb2JqZWN0 c18yID0gJChhbV9fb2JqZWN0c18xKSBjb2RlY3Z0X21lbWJlcnMubG8gY29sbGF0ZV9tZW1i ZXJzLmxvIFwKIAltZXNzYWdlc19tZW1iZXJzLmxvIG1vbmV0YXJ5X21lbWJlcnMubG8gbnVt ZXJpY19tZW1iZXJzLmxvIFwKIAl0aW1lX21lbWJlcnMubG8KLUBFTkFCTEVfRVhURVJOX1RF TVBMQVRFX1RSVUVAYW1fX29iamVjdHNfNCA9IGFsbG9jYXRvci1pbnN0LmxvIFwKK0BFTkFC TEVfRVhURVJOX1RFTVBMQVRFX1RSVUVAYW1fX29iamVjdHNfMyA9IGFsbG9jYXRvci1pbnN0 LmxvIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVACWNvbmNlcHQtaW5zdC5sbyBl eHQtaW5zdC5sbyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAltaXNjLWluc3Qu bG8KLWFtX19vYmplY3RzXzUgPSBwYXJhbGxlbF9zZXR0aW5ncy5sbwotYW1fX29iamVjdHNf NiA9IGJhc2ljX2ZpbGUubG8gYysrbG9jYWxlLmxvICQoYW1fX29iamVjdHNfNCkgXAotCSQo YW1fX29iamVjdHNfNSkKLWFtX19vYmplY3RzXzcgPSBiaXRtYXBfYWxsb2NhdG9yLmxvIHBv b2xfYWxsb2NhdG9yLmxvIG10X2FsbG9jYXRvci5sbyBcCi0JY29kZWN2dC5sbyBjb21wbGV4 X2lvLmxvIGdsb2JhbHNfaW8ubG8gaGFzaF90cjEubG8gXAotCWhhc2h0YWJsZV90cjEubG8g aW9zX2ZhaWx1cmUubG8gaW9zX2luaXQubG8gaW9zX2xvY2FsZS5sbyBcCi0JbGlzdC5sbyBs aXN0LWF1eC5sbyBsaXN0LWF1eC0yLmxvIGxpc3RfYXNzb2NpYXRlZC5sbyBcCi0JbGlzdF9h c3NvY2lhdGVkLTIubG8gbG9jYWxlLmxvIGxvY2FsZV9pbml0LmxvIGxvY2FsZV9mYWNldHMu bG8gXAotCWxvY2FsZW5hbWUubG8gbWF0aF9zdHVic19mbG9hdC5sbyBtYXRoX3N0dWJzX2xv bmdfZG91YmxlLmxvIFwKLQlzdGRleGNlcHQubG8gc3Ryc3RyZWFtLmxvIHRyZWUubG8gaXN0 cmVhbS5sbyBpc3RyZWFtLXN0cmluZy5sbyBcCi0Jc3RyZWFtYnVmLmxvIHZhbGFycmF5Lmxv ICQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18zKSBcCi0JJChhbV9fb2JqZWN0c182 KQorYW1fX29iamVjdHNfNCA9IHBhcmFsbGVsX3NldHRpbmdzLmxvCithbV9fb2JqZWN0c181 ID0gYmFzaWNfZmlsZS5sbyBjKytsb2NhbGUubG8gJChhbV9fb2JqZWN0c18zKSBcCisJJChh bV9fb2JqZWN0c180KQorYW1fX29iamVjdHNfNiA9IGJpdG1hcF9hbGxvY2F0b3IubG8gcG9v bF9hbGxvY2F0b3IubG8gbXRfYWxsb2NhdG9yLmxvIFwKKwljb2RlY3Z0LmxvIGNvbXBsZXhf aW8ubG8gY293LWlzdHJlYW0tc3RyaW5nLmxvIGdsb2JhbHNfaW8ubG8gXAorCWhhc2hfdHIx LmxvIGhhc2h0YWJsZV90cjEubG8gaW9zX2ZhaWx1cmUubG8gaW9zX2luaXQubG8gXAorCWlv c19sb2NhbGUubG8gbGlzdC5sbyBsaXN0LWF1eC5sbyBsaXN0LWF1eC0yLmxvIFwKKwlsaXN0 X2Fzc29jaWF0ZWQubG8gbGlzdF9hc3NvY2lhdGVkLTIubG8gbG9jYWxlLmxvIFwKKwlsb2Nh bGVfaW5pdC5sbyBsb2NhbGVfZmFjZXRzLmxvIGxvY2FsZW5hbWUubG8gXAorCW1hdGhfc3R1 YnNfZmxvYXQubG8gbWF0aF9zdHVic19sb25nX2RvdWJsZS5sbyBzdGRleGNlcHQubG8gXAor CXN0cnN0cmVhbS5sbyB0cmVlLmxvIGlzdHJlYW0ubG8gaXN0cmVhbS1zdHJpbmcubG8gc3Ry ZWFtYnVmLmxvIFwKKwl2YWxhcnJheS5sbyAkKGFtX19vYmplY3RzXzIpICQoYW1fX29iamVj dHNfNSkKIEBHTElCQ1hYX0hPU1RFRF9UUlVFQGFtX2xpYmNfXzk4Y29udmVuaWVuY2VfbGFf T0JKRUNUUyA9ICBcCi1AR0xJQkNYWF9IT1NURURfVFJVRUAJJChhbV9fb2JqZWN0c183KQor QEdMSUJDWFhfSE9TVEVEX1RSVUVACSQoYW1fX29iamVjdHNfNikKIGxpYmNfXzk4Y29udmVu aWVuY2VfbGFfT0JKRUNUUyA9ICQoYW1fbGliY19fOThjb252ZW5pZW5jZV9sYV9PQkpFQ1RT KQogQU1fVl9sdCA9ICQoYW1fX3ZfbHRfQEFNX1ZAKQogYW1fX3ZfbHRfID0gJChhbV9fdl9s dF9AQU1fREVGQVVMVF9WQCkKQEAgLTQ3MSwxMCArNDcwLDYgQEAgaG9zdF9zb3VyY2VzX2V4 dHJhID0gXAogCWJhc2ljX2ZpbGUuY2MgYysrbG9jYWxlLmNjIFwKIAkke2luc3Rfc291cmNl c30gJHtwYXJhbGxlbF9zb3VyY2VzfQogCi1ARU5BQkxFX0RVQUxfQUJJX0ZBTFNFQGN4eDEx X2FiaV9zb3VyY2VzID0gCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVAY3h4MTFfYWJpX3NvdXJj ZXMgPSBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1pc3RyZWFtLXN0cmluZy5jYwot CiAjIFhURU1QTEFURV9GTEFHUyA9CiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9GQUxTRUBp bnN0X3NvdXJjZXMgPSAKIApAQCAtNDk0LDYgKzQ4OSw3IEBAIHNvdXJjZXMgPSBcCiAJbXRf YWxsb2NhdG9yLmNjIFwKIAljb2RlY3Z0LmNjIFwKIAljb21wbGV4X2lvLmNjIFwKKwljb3ct aXN0cmVhbS1zdHJpbmcuY2MgXAogCWdsb2JhbHNfaW8uY2MgXAogCWhhc2hfdHIxLmNjIFwK IAloYXNodGFibGVfdHIxLmNjIFwKQEAgLTUxOCw3ICs1MTQsNiBAQCBzb3VyY2VzID0gXAog CWlzdHJlYW0tc3RyaW5nLmNjIFwKIAlzdHJlYW1idWYuY2MgXAogCXZhbGFycmF5LmNjIFwK LQkke2N4eDExX2FiaV9zb3VyY2VzfSBcCiAJJHtob3N0X3NvdXJjZXN9IFwKIAkke2hvc3Rf c291cmNlc19leHRyYX0KIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9j b3ctaXN0cmVhbS1zdHJpbmcuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2Nvdy1pc3Ry ZWFtLXN0cmluZy5jYwppbmRleCA0MDVmOWVjYjc4MS4uZjAwY2JjMDlmNjkgMTAwNjQ0Ci0t LSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvY293LWlzdHJlYW0tc3RyaW5nLmNjCisrKyBi L2xpYnN0ZGMrKy12My9zcmMvYysrOTgvY293LWlzdHJlYW0tc3RyaW5nLmNjCkBAIC0yNyw0 ICsyNyw4IEBACiAvLwogCiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAotI2lu Y2x1ZGUgImlzdHJlYW0tc3RyaW5nLmNjIgorI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+ CisKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgaW5jbHVkZSAiaXN0cmVhbS1z dHJpbmcuY2MiCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgv aGFzaF90cjEuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2hhc2hfdHIxLmNjCmluZGV4 IGUxMzJjMDFiZjhlLi5hMmNkMmM1MDlmMyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Ny Yy9jKys5OC9oYXNoX3RyMS5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2hhc2hf dHIxLmNjCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJoYXNoLWxvbmctZG91Ymxl LXRyMS1hdXguY2MiCiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIG5hbWVzcGFj ZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogICBuYW1lc3BhY2UgdHIx CkBAIC01NywzICs1OCw0IEBAIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShk ZWZhdWx0KQogI2VuZGlmCiAgIH0KIH0KKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvaW9zX2ZhaWx1cmUu Y2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2lvc19mYWlsdXJlLmNjCmluZGV4IDI3NDc2 ZWNjYmRiLi40MzI5MTg3MTE5NiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKys5 OC9pb3NfZmFpbHVyZS5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2lvc19mYWls dXJlLmNjCkBAIC0yOSwyMiArMjksMjQgQEAKICNkZWZpbmUgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSSAwCiAjaW5jbHVkZSA8aW9zPgogCi0jaWYgX0dMSUJDWFhfVVNFX0RVQUxfQUJJICYm IF9fY3BwX3J0dGkKLSNpbmNsdWRlIDxjeHhhYmkuaD4KLSNpbmNsdWRlIDx0eXBlaW5mbz4K LSNlbmRpZgotCi0jaWZkZWYgX0dMSUJDWFhfVVNFX05MUwotIyBpbmNsdWRlIDxsaWJpbnRs Lmg+Ci0jIGRlZmluZSBfKG1zZ2lkKSAgIGdldHRleHQgKG1zZ2lkKQotI2Vsc2UKLSMgZGVm aW5lIF8obXNnaWQpICAgKG1zZ2lkKQotI2VuZGlmCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCisjIGlmIF9HTElCQ1hYX1VTRV9E VUFMX0FCSSAmJiBfX2NwcF9ydHRpCisjICBpbmNsdWRlIDxjeHhhYmkuaD4KKyMgIGluY2x1 ZGUgPHR5cGVpbmZvPgorIyBlbmRpZgorCisjIGlmZGVmIF9HTElCQ1hYX1VTRV9OTFMKKyMg IGluY2x1ZGUgPGxpYmludGwuaD4KKyMgIGRlZmluZSBfKG1zZ2lkKSAgIGdldHRleHQgKG1z Z2lkKQorIyBlbHNlCisjICBkZWZpbmUgXyhtc2dpZCkgICAobXNnaWQpCisjIGVuZGlmCiAK IG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJD WFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQogICBpb3NfYmFzZTo6ZmFpbHVyZTo6ZmFpbHVyZShjb25zdCBzdHJpbmcmIF9fc3Ry KSB0aHJvdygpCiAgIDogX01fbXNnKF9fc3RyKSB7IH0KIApAQCAtNTQsNiArNTYsNyBAQCBf R0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICBjb25zdCBjaGFyKgogICBpb3Nf YmFzZTo6ZmFpbHVyZTo6d2hhdCgpIGNvbnN0IHRocm93KCkKICAgeyByZXR1cm4gX01fbXNn LmNfc3RyKCk7IH0KKyNlbmRpZgogCiAjaWYgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAgIC8v IFdoZW4gdGhlIGR1YWwgQUJJIGlzIGVuYWJsZWQgX190aHJvd19pb3NfZmFpbHVyZSgpIGlz IGRlZmluZWQgaW4KQEAgLTgyLDcgKzg1LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KICAgfQogI2VuZGlmIC8vIF9fY3BwX3J0dGkKIAotI2Vsc2UgLy8gISBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkKKyNlbGlmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCiAg IHZvaWQKICAgX190aHJvd19pb3NfZmFpbHVyZShjb25zdCBjaGFyKiBfX3MgX19hdHRyaWJ1 dGVfXygodW51c2VkKSkpCkBAIC05Miw3ICs5NSw5IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVT UEFDRV9WRVJTSU9OCiAgIF9fdGhyb3dfaW9zX2ZhaWx1cmUoY29uc3QgY2hhciogc3RyLCBp bnQpCiAgIHsgX190aHJvd19pb3NfZmFpbHVyZShzdHIpOyB9CiAKLSNlbmRpZiAvLyBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkK IAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZQorCisj ZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RV QUxfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2lzdHJlYW0tc3Ry aW5nLmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9pc3RyZWFtLXN0cmluZy5jYwppbmRl eCA0ODU5OTg3ZmNjMi4uYjY0MzQ3Zjc5NmUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9z cmMvYysrOTgvaXN0cmVhbS1zdHJpbmcuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKys5 OC9pc3RyZWFtLXN0cmluZy5jYwpAQCAtMzEsNiArMzEsMTYgQEAKIC8vIGJ5IGFub3RoZXIg ZmlsZSB3aGljaCBkZWZpbmVzIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkk9MC4KICMgZGVmaW5l IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMQogI2VuZGlmCisKKyNpZiBfR0xJQkNYWF9VU0Vf Q1hYMTFfQUJJCisjIGRlZmluZSBfR0xJQkNYWF9CVUlMRF9DWFgxMV9BQkkgMQorI2Vsc2UK KyMgZGVmaW5lIF9HTElCQ1hYX0JVSUxEX0NYWDExX0FCSSAwCisjZW5kaWYKKworI2luY2x1 ZGUgPGJpdHMvYysrY29uZmlnLmg+CisKKyNpZiBfR0xJQkNYWF9CVUlMRF9DWFgxMV9BQkkg PT0gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogI2luY2x1ZGUgPGlzdHJlYW0+CiAjaW5jbHVk ZSA8c3RyaW5nPgogCkBAIC0yODksMyArMjk5LDQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5h bWVzcGFjZQorI2VuZGlmIC8vIF9HTElCQ1hYX0JVSUxEX0NYWDExX0FCSSA9PSBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2xv Y2FsZV9mYWNldHMuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L2xvY2FsZV9mYWNldHMu Y2MKaW5kZXggYzBiYjdmZDE4MWQuLjdhOTI5ZDUxYmU0IDEwMDY0NAotLS0gYS9saWJzdGRj KystdjMvc3JjL2MrKzk4L2xvY2FsZV9mYWNldHMuY2MKKysrIGIvbGlic3RkYysrLXYzL3Ny Yy9jKys5OC9sb2NhbGVfZmFjZXRzLmNjCkBAIC0xMjUsNiArMTI1LDcgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICByZXR1cm4gX190ZXN0OwogICB9CiAKKyNp ZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgYm9vbAogICBfX3ZlcmlmeV9ncm91cGlu Zyhjb25zdCBjaGFyKiBfX2dyb3VwaW5nLCBzaXplX3QgX19ncm91cGluZ19zaXplLAogCQkg ICAgY29uc3Qgc3RyaW5nJiBfX2dyb3VwaW5nX3RtcCkgdGhyb3coKQpAQCAtMTMzLDYgKzEz NCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgX19ncm91cGluZ190bXAuY19zdHIoKSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBfX2dyb3VwaW5nX3RtcC5zaXplKCkpOwogICB9 CisjZW5kaWYKIAogICBuYW1lc3BhY2UKICAgewpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYz L3NyYy9jKys5OC9zdGRleGNlcHQuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L3N0ZGV4 Y2VwdC5jYwppbmRleCBlOGM5MWY1YzFjZC4uZTgyNTU0ZTBhZWMgMTAwNjQ0Ci0tLSBhL2xp YnN0ZGMrKy12My9zcmMvYysrOTgvc3RkZXhjZXB0LmNjCisrKyBiL2xpYnN0ZGMrKy12My9z cmMvYysrOTgvc3RkZXhjZXB0LmNjCkBAIC0zNSw4ICszNSwxMCBAQCBuYW1lc3BhY2Ugc3Rk IF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVT UEFDRV9WRVJTSU9OCiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgbG9naWNf ZXJyb3I6OmxvZ2ljX2Vycm9yKGNvbnN0IHN0cmluZyYgX19hcmcpCiAgIDogZXhjZXB0aW9u KCksIF9NX21zZyhfX2FyZykgeyB9CisjZW5kaWYKIAogICBsb2dpY19lcnJvcjo6fmxvZ2lj X2Vycm9yKCkgX0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCkBAIC00NCwyOCArNDYsMzgg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgbG9naWNfZXJyb3I6Ondo YXQoKSBjb25zdCBfR0xJQkNYWF9VU0VfTk9FWENFUFQKICAgeyByZXR1cm4gX01fbXNnLmNf c3RyKCk7IH0KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICBkb21haW5fZXJy b3I6OmRvbWFpbl9lcnJvcihjb25zdCBzdHJpbmcmIF9fYXJnKQogICA6IGxvZ2ljX2Vycm9y KF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIGRvbWFpbl9lcnJvcjo6fmRvbWFpbl9lcnJvcigp IF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQogICBpbnZhbGlkX2FyZ3VtZW50OjppbnZhbGlkX2FyZ3VtZW50KGNvbnN0IHN0cmlu ZyYgX19hcmcpCiAgIDogbG9naWNfZXJyb3IoX19hcmcpIHsgfQorI2VuZGlmCiAKICAgaW52 YWxpZF9hcmd1bWVudDo6fmludmFsaWRfYXJndW1lbnQoKSBfR0xJQkNYWF9VU0VfTk9FWENF UFQgeyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgbGVuZ3RoX2Vycm9y OjpsZW5ndGhfZXJyb3IoY29uc3Qgc3RyaW5nJiBfX2FyZykKICAgOiBsb2dpY19lcnJvcihf X2FyZykgeyB9CisjZW5kaWYKIAogICBsZW5ndGhfZXJyb3I6On5sZW5ndGhfZXJyb3IoKSBf R0xJQkNYWF9VU0VfTk9FWENFUFQgeyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKICAgb3V0X29mX3JhbmdlOjpvdXRfb2ZfcmFuZ2UoY29uc3Qgc3RyaW5nJiBfX2FyZykK ICAgOiBsb2dpY19lcnJvcihfX2FyZykgeyB9CisjZW5kaWYKIAogICBvdXRfb2ZfcmFuZ2U6 On5vdXRfb2ZfcmFuZ2UoKSBfR0xJQkNYWF9VU0VfTk9FWENFUFQgeyB9CiAKKyNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgcnVudGltZV9lcnJvcjo6cnVudGltZV9lcnJvcihj b25zdCBzdHJpbmcmIF9fYXJnKQogICA6IGV4Y2VwdGlvbigpLCBfTV9tc2coX19hcmcpIHsg fQorI2VuZGlmCiAKICAgcnVudGltZV9lcnJvcjo6fnJ1bnRpbWVfZXJyb3IoKSBfR0xJQkNY WF9VU0VfTk9FWENFUFQgeyB9CiAKQEAgLTczLDE4ICs4NSwyNCBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogICBydW50aW1lX2Vycm9yOjp3aGF0KCkgY29uc3QgX0dM SUJDWFhfVVNFX05PRVhDRVBUCiAgIHsgcmV0dXJuIF9NX21zZy5jX3N0cigpOyB9CiAKKyNp ZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgcmFuZ2VfZXJyb3I6OnJhbmdlX2Vycm9y KGNvbnN0IHN0cmluZyYgX19hcmcpCiAgIDogcnVudGltZV9lcnJvcihfX2FyZykgeyB9Cisj ZW5kaWYKIAogICByYW5nZV9lcnJvcjo6fnJhbmdlX2Vycm9yKCkgX0dMSUJDWFhfVVNFX05P RVhDRVBUIHsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIG92ZXJmbG93 X2Vycm9yOjpvdmVyZmxvd19lcnJvcihjb25zdCBzdHJpbmcmIF9fYXJnKQogICA6IHJ1bnRp bWVfZXJyb3IoX19hcmcpIHsgfQorI2VuZGlmCiAKICAgb3ZlcmZsb3dfZXJyb3I6On5vdmVy Zmxvd19lcnJvcigpIF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0KIAorI2lmICEgX0dMSUJD WFhfVVNFX0NYWDExX0FCSQogICB1bmRlcmZsb3dfZXJyb3I6OnVuZGVyZmxvd19lcnJvcihj b25zdCBzdHJpbmcmIF9fYXJnKQogICA6IHJ1bnRpbWVfZXJyb3IoX19hcmcpIHsgfQorI2Vu ZGlmCiAKICAgdW5kZXJmbG93X2Vycm9yOjp+dW5kZXJmbG93X2Vycm9yKCkgX0dMSUJDWFhf VVNFX05PRVhDRVBUIHsgfQogCg== --------------lHd7L4K1Z0sd7uqaa600qolm--