From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id E5B4F3858C5F for ; Tue, 6 Jun 2023 09:37:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E5B4F3858C5F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="6.00,219,1681200000"; d="scan'208";a="7974276" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 06 Jun 2023 01:37:27 -0800 IronPort-SDR: 1XA+shZbxbqTTmO0ua3YC0qN51IDDVcNhE6nuRP22QOg7dIRUMxt69T0mwBqxNMFLbJm19ZkBr XySWzsF0LtUyovuO0k4VSaRWIfSE1UR2YUTTeEyYJB0ToOCLPW8xhRwJvXYrVkeFWWpakmv5ik PASMxh33ky0DoupaGXp+qFmy6xWcgKSsB8QzANZQtxr4NXxKW0MvrfyIBrf9OTs+x6/vv1nY3N NH85AHeaXA1iuijBp8refB0Jcx8aQ2beNIdWSGePWLDecjjRXB9zfxLA1MmkUusyTJptcP0kM8 mQs= Content-Type: multipart/mixed; boundary="------------Lk80Jvkt6qRngFkl1Yf058o0" Message-ID: Date: Tue, 6 Jun 2023 10:37:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.11.0 Subject: Re: [PATCH] Add COMPLEX_VECTOR_INT modes Content-Language: en-GB To: Richard Biener CC: "gcc-patches@gcc.gnu.org" References: <77479c6f-5ce4-12fa-f429-c49ffbff3542@codesourcery.com> From: Andrew Stubbs In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,NICE_REPLY_A,SCC_10_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: --------------Lk80Jvkt6qRngFkl1Yf058o0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit On 06/06/2023 07:40, Richard Biener wrote: > On Mon, Jun 5, 2023 at 3:49 PM Andrew Stubbs wrote: >> >> On 30/05/2023 07:26, Richard Biener wrote: >>> On Fri, May 26, 2023 at 4:35 PM Andrew Stubbs wrote: >>>> >>>> Hi all, >>>> >>>> I want to implement a vector DIVMOD libfunc for amdgcn, but I can't just >>>> do it because the GCC middle-end models DIVMOD's return value as >>>> "complex int" type, and there are no vector equivalents of that type. >>>> >>>> Therefore, this patch adds minimal support for "complex vector int" >>>> modes. I have not attempted to provide any means to use these modes >>>> from C, so they're really only useful for DIVMOD. The actual libfunc >>>> implementation will pack the data into wider vector modes manually. >>>> >>>> A knock-on effect of this is that I needed to increase the range of >>>> "mode_unit_size" (several of the vector modes supported by amdgcn exceed >>>> the previous 255-byte limit). >>>> >>>> Since this change would add a large number of new, unused modes to many >>>> architectures, I have elected to *not* enable them, by default, in >>>> machmode.def (where the other complex modes are created). The new modes >>>> are therefore inactive on all architectures but amdgcn, for now. >>>> >>>> OK for mainline? (I've not done a full test yet, but I will.) >>> >>> I think it makes more sense to map vector CSImode to vector SImode with >>> the double number of lanes. In fact since divmod is a libgcc function >>> I wonder where your vector variant would reside and how GCC decides to >>> emit calls to it? That is, there's no way to OMP simd declare this function? >> >> The divmod implementation lives in libgcc. It's not too difficult to >> write using vector extensions and some asm tricks. I did try an OMP simd >> declare implementation, but it didn't vectorize well, and that's a yack >> I don't wish to shave right now. >> >> In any case, the OMP simd declare will not help us here, directly, >> because the DIVMOD transformation happens too late in the pass pipeline, >> long after ifcvt and vect. My implementation (not yet posted), uses a >> libfunc and the TARGET_EXPAND_DIVMOD_LIBFUNC hook in the standard way. >> It just needs the complex vector modes to exist. >> >> Using vectors twice the length is problematic also. If I create a new >> V128SImode that spans across two 64-lane vector registers then that will >> probably have the desired effect ("real" quotient in v8, "imaginary" >> remainder in v9), but if I use V64SImode to represent two V32SImode >> vectors then that's a one-register mode, and I'll have to use a >> permutation (a memory operation) to extract lanes 32-63 into lanes 0-31, >> and if we ever want to implement instructions that operate on these >> modes (as opposed to the odd/even add/sub complex patterns we have now) >> then the masking will be all broken and we'd need to constantly >> disassemble the double length vectors to operate on them. > > I'm a bit confused as I don't see the difference between V64SCImode and > V128SImode since both contain 128 SImode values. And I would expect > the imag/real parts to be _always_ interleaved, irrespective of whether > the result fits one or two vector registers. The patch doesn't create "V64SCImode", it creates "CV64SImode". GET_UNIT_SIZE returns the size of V64SImode, so it is a tuple with a vector in each field. For GCN specifically, I think this would make sense (hypothetically); it would give each notional SIMT "thread" a real and complex part in consecutive registers, meaning it can add all the reals in one instruction, and subtract all the imaginaries in another instruction, and then multiply them together (or whatever) in a very natural way. Meanwhile, the interleaved approach requires masking half the lanes to do the add, mask the other lanes to do the subtract, do a permutation to operate on them together, and then do it all again for the other half of the values in the other vector. GCN also has load/store instructions that can interleave two, three, or four, registers when storing them (this is what V64DImode and V64TImode do already), so there's no extra pain there. Anyway, I didn't actually want to do any of that, at this time, I just want DIVMOD to work but the middle-end models it as having a complex int return value. If the complex modes do not exist then the middle-end does not fail, but the code expands to nonsense RTL because the types are all VOIDmode. >> The implementation I proposed is essentially a struct containing two >> vectors placed in consecutive registers. This is the natural >> representation for the architecture. > > I don't think you did that? Or at least I don't see how vectors of > complex modes would match that. It would be a complex of a vector > mode instead, no? > > I do see that internal functions with more than one output would be > desirable and I think I proposed ASMs with a "coded text" aka > something like a pattern ID or an optab identifier would be the best > fit on GIMPLE but TARGET_EXPAND_DIVMOD_LIBFUNC for this > particular case should be a good fit as well, no? > > Can you share what you needed to change to get your complex vector int > code actually working? What does the divmod pattern matching create > for the return type? The pass has > > /* Disable the transform if either is a constant, since division-by-constant > may have specialized expansion. */ > if (CONSTANT_CLASS_P (op1)) > return false; > > if (CONSTANT_CLASS_P (op2)) > { > if (integer_pow2p (op2)) > return false; > > if (TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT > && TYPE_PRECISION (type) <= BITS_PER_WORD) > return false; > > at least the TYPE_PRECISION query is bogus when type is a vector type > and the IFN building does > > /* Part 3: Create libcall to internal fn DIVMOD: > divmod_tmp = DIVMOD (op1, op2). */ > > gcall *call_stmt = gimple_build_call_internal (IFN_DIVMOD, 2, op1, op2); > tree res = make_temp_ssa_name (build_complex_type (TREE_TYPE (op1)), > call_stmt, "divmod_tmp"); > > so that builds a complex type with a vector component, not a vector > with complex components. In my libgcc __divmodv64si4 routine I return a V64DImode value with the two values as the high and low parts. GCN supports DImode values as pairs of SImode registers, and V64DImode is a pair of V64SImode registers such that each vector lane works exactly like the scalar case (indeed, scalars are basically "V1DImode" for many operators, since the scalar registers do not have a full set of instructions). This means that the quotients are returned in v8 and the remainders are returned in v9, and because all the compiler sees the wider mode it doesn't treat them as an aggregate. Then in my TARGET_EXPAND_DIVMOD_LIBFUNC implementation I have this (simplified slightly to illustrate only the SImode case): emit_library_call_value (libfunc, gen_rtx_REG (widemode, RETURN_VALUE_REG), LCT_NORMAL, widemode, op0, mode, op1, mode); *quot = gen_rtx_REG (mode, RETURN_VALUE_REG); *rem = gen_rtx_REG (mode, RETURN_VALUE_REG + 1); I think this hook is necessary because this libfunc can have a custom ABI? Maybe this isn't how a CV64SImode would actually get returned? Anyway, this is how this libfunc works. When CV64SImode exists the above works, otherwise I get an ICE because it tries to store a VOIDmode register using my scatter_store_v64si instruction and that isn't valid. >> Anyway, you don't like this patch and I see that AArch64 is picking >> apart BLKmode to see if there's complex inside, so maybe I can make >> something like that work here? AArch64 doesn't seem to use >> TARGET_EXPAND_DIVMOD_LIBFUNC though, and I'm pretty sure the problem I >> was trying to solve was in the way the expand pass handles the BLKmode >> complex, outside the control of the backend hook (I'm still paging this >> stuff back in, post vacation). I have attempted to get expand_DIVMOD to do the right thing without the new complex-of-vectors but there's no way to fix it with the existing hooks. I have experimented with simply fixing up the VOIDmode values in the backend, but the dataflow remains broken (the register it tries to store is not connected to the "quot" and "rem" values provided by my hook). I'll need to change the way DIVMOD works, somehow, but it's relying on the complex int representation to pass the return values onward so if I can't provide that then I'll need to code some kind of non-obvious alternative. Any suggestions? My unfinished patches are attached (I think I only need to tidy a few bits and write a changelog). Thanks Andrew --------------Lk80Jvkt6qRngFkl1Yf058o0 Content-Type: text/plain; charset="UTF-8"; name="230606-draft-divmod.patch" Content-Disposition: attachment; filename="230606-draft-divmod.patch" Content-Transfer-Encoding: base64 YW1kZ2NuOiB2ZWN0b3IgZGl2LCBtb2QsIGFuZCBkaXZtb2QKCgpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9nY24vZ2NuLmNjIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLmNjCmluZGV4IGVkYzJh YmNhZDI2Li4wY2U1YjBjNDYxZCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9nY24vZ2NuLmNj CisrKyBiL2djYy9jb25maWcvZ2NuL2djbi5jYwpAQCAtMjkzMCw4ICsyOTMwLDkgQEAgZ2Nu X3JldHVybl9pbl9tZW1vcnkgKGNvbnN0X3RyZWUgdHlwZSwgY29uc3RfdHJlZSBBUkdfVU5V U0VEIChmbnR5cGUpKQogICBpZiAobW9kZSA9PSBCTEttb2RlKQogICAgIHJldHVybiB0cnVl OwogCi0gIGlmICgoIVZFQ1RPUl9UWVBFX1AgKHR5cGUpICYmIHNpemUgPiAyICogVU5JVFNf UEVSX1dPUkQpCi0gICAgICB8fCBzaXplID4gMiAqIFVOSVRTX1BFUl9XT1JEICogNjQpCisg IGlmICghVkVDVE9SX1RZUEVfUCAodHlwZSkKKyAgICAgID8gc2l6ZSA+IDYgKiBVTklUU19Q RVJfV09SRAorICAgICAgOiBzaXplID4gNiAqIFVOSVRTX1BFUl9XT1JEICogNjQpCiAgICAg cmV0dXJuIHRydWU7CiAKICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc4Miw2ICszNzgzLDQ3IEBA IGdjbl90cmFtcG9saW5lX2luaXQgKHJ0eCBtX3RyYW1wLCB0cmVlIGZuZGVjbCwgcnR4IGNo YWluX3ZhbHVlKQogCQkJCQkgICAgICBUUkFNUE9MSU5FX1NJWkUpKSk7CiB9CiAKKy8qIElt cGxlbWVudCBUQVJHRVRfRVhQQU5EX0RJVk1PRF9MSUJGVU5DLgorCisgICBUaGVyZSBhcmUg ZGl2bW9kIGxpYmZ1bmNzIGZvciBhbGwgbW9kZXMgZXhjZXB0IFRJbW9kZS4gIFRoZXkgcmV0 dXJuIHRoZQorICAgdHdvIHZhbHVlcyBwYWNrZWQgaW50byBhIGxhcmdlciBpbnRlZ2VyL3Zl Y3Rvci4gICovCisKK3ZvaWQKK2djbl9leHBhbmRfZGl2bW9kX2xpYmZ1bmMgKHJ0eCBsaWJm dW5jLCBtYWNoaW5lX21vZGUgbW9kZSwgcnR4IG9wMCwgcnR4IG9wMSwKKwkJCSAgIHJ0eCAq cXVvdCwgcnR4ICpyZW0pCit7CisgIG1hY2hpbmVfbW9kZSBpbm5lcm1vZGUgPSAoVkVDVE9S X01PREVfUCAobW9kZSkKKwkJCSAgICA/IEdFVF9NT0RFX0lOTkVSIChtb2RlKSA6IG1vZGUp OworICBtYWNoaW5lX21vZGUgd2lkZWlubmVybW9kZSA9IFZPSURtb2RlOworICBtYWNoaW5l X21vZGUgd2lkZW1vZGUgPSBWT0lEbW9kZTsKKworICBzd2l0Y2ggKGlubmVybW9kZSkKKyAg ICB7CisgICAgY2FzZSBFX1FJbW9kZToKKyAgICBjYXNlIEVfSEltb2RlOgorICAgIGNhc2Ug RV9TSW1vZGU6CisgICAgICB3aWRlaW5uZXJtb2RlID0gREltb2RlOworICAgICAgYnJlYWs7 CisgICAgY2FzZSBFX0RJbW9kZToKKyAgICAgIHdpZGVpbm5lcm1vZGUgPSBUSW1vZGU7Cisg ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOwor ICAgIH0KKworICBpZiAoVkVDVE9SX01PREVfUCAobW9kZSkpCisgICAgd2lkZW1vZGUgPSBW bk1PREUgKEdFVF9NT0RFX05VTklUUyAobW9kZSksIHdpZGVpbm5lcm1vZGUpOworICBlbHNl CisgICAgd2lkZW1vZGUgPSB3aWRlaW5uZXJtb2RlOworCisgIGVtaXRfbGlicmFyeV9jYWxs X3ZhbHVlIChsaWJmdW5jLCBnZW5fcnR4X1JFRyAod2lkZW1vZGUsIFJFVFVSTl9WQUxVRV9S RUcpLAorCQkJICAgTENUX05PUk1BTCwgd2lkZW1vZGUsIG9wMCwgbW9kZSwgb3AxLCBtb2Rl KTsKKworICAqcXVvdCA9IGdlbl9ydHhfUkVHIChtb2RlLCBSRVRVUk5fVkFMVUVfUkVHKTsK KyAgKnJlbSA9IGdlbl9ydHhfUkVHIChtb2RlLAorCQkgICAgICBSRVRVUk5fVkFMVUVfUkVH ICsgKHdpZGVpbm5lcm1vZGUgPT0gVEltb2RlID8gMiA6IDEpKTsKK30KKwogLyogfX19ICAq LwogLyoge3t7IE1pc2NlbGxhbmVvdXMuICAqLwogCkBAIC00MjIwLDYgKzQyNjIsMTYxIEBA IGdjbl9pbml0X2xpYmZ1bmNzICh2b2lkKQogICBzZXRfb3B0YWJfbGliZnVuYyAocG9wY291 bnRfb3B0YWIsIFRJbW9kZSwgIl9fcG9wY291bnR0aTIiKTsKICAgc2V0X29wdGFiX2xpYmZ1 bmMgKHBhcml0eV9vcHRhYiwgVEltb2RlLCAiX19wYXJpdHl0aTIiKTsKICAgc2V0X29wdGFi X2xpYmZ1bmMgKGJzd2FwX29wdGFiLCBUSW1vZGUsICJfX2Jzd2FwdGkyIik7CisKKyAgc2V0 X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIEhJbW9kZSwgIl9fZGl2bW9kaGk0Iik7 CisgIHNldF9vcHRhYl9saWJmdW5jICh1ZGl2bW9kX29wdGFiLCBISW1vZGUsICJfX3VkaXZt b2RoaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFNJbW9kZSwg Il9fZGl2bW9kc2k0Iik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1ZGl2bW9kX29wdGFiLCBT SW1vZGUsICJfX3VkaXZtb2RzaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rf b3B0YWIsIERJbW9kZSwgIl9fZGl2bW9kZGk0Iik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1 ZGl2bW9kX29wdGFiLCBESW1vZGUsICJfX3VkaXZtb2RkaTQiKTsKKworICBzZXRfb3B0YWJf bGliZnVuYyAoc2Rpdl9vcHRhYiwgVjJRSW1vZGUsICJfX2RpdnYycWkzIik7CisgIHNldF9v cHRhYl9saWJmdW5jICh1ZGl2X29wdGFiLCBWMlFJbW9kZSwgIl9fdWRpdnYycWkzIik7Cisg IHNldF9vcHRhYl9saWJmdW5jIChzbW9kX29wdGFiLCBWMlFJbW9kZSwgIl9fbW9kdjJxaTMi KTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFYyUUltb2RlLCAiX191bW9k djJxaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFYyUUltb2Rl LCAiX19kaXZtb2R2MnFpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdm1vZF9vcHRh YiwgVjJRSW1vZGUsICJfX3VkaXZtb2R2MnFpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAo c2Rpdl9vcHRhYiwgVjRRSW1vZGUsICJfX2RpdnY0cWkzIik7CisgIHNldF9vcHRhYl9saWJm dW5jICh1ZGl2X29wdGFiLCBWNFFJbW9kZSwgIl9fdWRpdnY0cWkzIik7CisgIHNldF9vcHRh Yl9saWJmdW5jIChzbW9kX29wdGFiLCBWNFFJbW9kZSwgIl9fbW9kdjRxaTMiKTsKKyAgc2V0 X29wdGFiX2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFY0UUltb2RlLCAiX191bW9kdjRxaTMiKTsK KyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFY0UUltb2RlLCAiX19kaXZt b2R2NHFpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdm1vZF9vcHRhYiwgVjRRSW1v ZGUsICJfX3VkaXZtb2R2NHFpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdl9vcHRh YiwgVjhRSW1vZGUsICJfX2RpdnY4cWkzIik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1ZGl2 X29wdGFiLCBWOFFJbW9kZSwgIl9fdWRpdnY4cWkzIik7CisgIHNldF9vcHRhYl9saWJmdW5j IChzbW9kX29wdGFiLCBWOFFJbW9kZSwgIl9fbW9kdjhxaTMiKTsKKyAgc2V0X29wdGFiX2xp YmZ1bmMgKHVtb2Rfb3B0YWIsIFY4UUltb2RlLCAiX191bW9kdjhxaTMiKTsKKyAgc2V0X29w dGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFY4UUltb2RlLCAiX19kaXZtb2R2OHFpNCIp OworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdm1vZF9vcHRhYiwgVjhRSW1vZGUsICJfX3Vk aXZtb2R2OHFpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdl9vcHRhYiwgVjE2UUlt b2RlLCAiX19kaXZ2MTZxaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZfb3B0YWIs IFYxNlFJbW9kZSwgIl9fdWRpdnYxNnFpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc21v ZF9vcHRhYiwgVjE2UUltb2RlLCAiX19tb2R2MTZxaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1 bmMgKHVtb2Rfb3B0YWIsIFYxNlFJbW9kZSwgIl9fdW1vZHYxNnFpMyIpOworICBzZXRfb3B0 YWJfbGliZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjE2UUltb2RlLCAiX19kaXZtb2R2MTZxaTQi KTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZtb2Rfb3B0YWIsIFYxNlFJbW9kZSwgIl9f dWRpdm1vZHYxNnFpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdl9vcHRhYiwgVjMy UUltb2RlLCAiX19kaXZ2MzJxaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZfb3B0 YWIsIFYzMlFJbW9kZSwgIl9fdWRpdnYzMnFpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAo c21vZF9vcHRhYiwgVjMyUUltb2RlLCAiX19tb2R2MzJxaTMiKTsKKyAgc2V0X29wdGFiX2xp YmZ1bmMgKHVtb2Rfb3B0YWIsIFYzMlFJbW9kZSwgIl9fdW1vZHYzMnFpMyIpOworICBzZXRf b3B0YWJfbGliZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjMyUUltb2RlLCAiX19kaXZtb2R2MzJx aTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZtb2Rfb3B0YWIsIFYzMlFJbW9kZSwg Il9fdWRpdm1vZHYzMnFpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdl9vcHRhYiwg VjY0UUltb2RlLCAiX19kaXZ2NjRxaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZf b3B0YWIsIFY2NFFJbW9kZSwgIl9fdWRpdnY2NHFpMyIpOworICBzZXRfb3B0YWJfbGliZnVu YyAoc21vZF9vcHRhYiwgVjY0UUltb2RlLCAiX19tb2R2NjRxaTMiKTsKKyAgc2V0X29wdGFi X2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFY2NFFJbW9kZSwgIl9fdW1vZHY2NHFpMyIpOworICBz ZXRfb3B0YWJfbGliZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjY0UUltb2RlLCAiX19kaXZtb2R2 NjRxaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZtb2Rfb3B0YWIsIFY2NFFJbW9k ZSwgIl9fdWRpdm1vZHY2NHFpNCIpOworCisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2X29w dGFiLCBWMkhJbW9kZSwgIl9fZGl2djJoaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVk aXZfb3B0YWIsIFYySEltb2RlLCAiX191ZGl2djJoaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1 bmMgKHNtb2Rfb3B0YWIsIFYySEltb2RlLCAiX19tb2R2MmhpMyIpOworICBzZXRfb3B0YWJf bGliZnVuYyAodW1vZF9vcHRhYiwgVjJISW1vZGUsICJfX3Vtb2R2MmhpMyIpOworICBzZXRf b3B0YWJfbGliZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjJISW1vZGUsICJfX2Rpdm1vZHYyaGk0 Iik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1ZGl2bW9kX29wdGFiLCBWMkhJbW9kZSwgIl9f dWRpdm1vZHYyaGk0Iik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2X29wdGFiLCBWNEhJ bW9kZSwgIl9fZGl2djRoaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZfb3B0YWIs IFY0SEltb2RlLCAiX191ZGl2djRoaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNtb2Rf b3B0YWIsIFY0SEltb2RlLCAiX19tb2R2NGhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAo dW1vZF9vcHRhYiwgVjRISW1vZGUsICJfX3Vtb2R2NGhpMyIpOworICBzZXRfb3B0YWJfbGli ZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjRISW1vZGUsICJfX2Rpdm1vZHY0aGk0Iik7CisgIHNl dF9vcHRhYl9saWJmdW5jICh1ZGl2bW9kX29wdGFiLCBWNEhJbW9kZSwgIl9fdWRpdm1vZHY0 aGk0Iik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2X29wdGFiLCBWOEhJbW9kZSwgIl9f ZGl2djhoaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZfb3B0YWIsIFY4SEltb2Rl LCAiX191ZGl2djhoaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNtb2Rfb3B0YWIsIFY4 SEltb2RlLCAiX19tb2R2OGhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodW1vZF9vcHRh YiwgVjhISW1vZGUsICJfX3Vtb2R2OGhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rp dm1vZF9vcHRhYiwgVjhISW1vZGUsICJfX2Rpdm1vZHY4aGk0Iik7CisgIHNldF9vcHRhYl9s aWJmdW5jICh1ZGl2bW9kX29wdGFiLCBWOEhJbW9kZSwgIl9fdWRpdm1vZHY4aGk0Iik7Cisg IHNldF9vcHRhYl9saWJmdW5jIChzZGl2X29wdGFiLCBWMTZISW1vZGUsICJfX2RpdnYxNmhp MyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdl9vcHRhYiwgVjE2SEltb2RlLCAiX191 ZGl2djE2aGkzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzbW9kX29wdGFiLCBWMTZISW1v ZGUsICJfX21vZHYxNmhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodW1vZF9vcHRhYiwg VjE2SEltb2RlLCAiX191bW9kdjE2aGkzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2 bW9kX29wdGFiLCBWMTZISW1vZGUsICJfX2Rpdm1vZHYxNmhpNCIpOworICBzZXRfb3B0YWJf bGliZnVuYyAodWRpdm1vZF9vcHRhYiwgVjE2SEltb2RlLCAiX191ZGl2bW9kdjE2aGk0Iik7 CisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2X29wdGFiLCBWMzJISW1vZGUsICJfX2RpdnYz MmhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdl9vcHRhYiwgVjMySEltb2RlLCAi X191ZGl2djMyaGkzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzbW9kX29wdGFiLCBWMzJI SW1vZGUsICJfX21vZHYzMmhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodW1vZF9vcHRh YiwgVjMySEltb2RlLCAiX191bW9kdjMyaGkzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChz ZGl2bW9kX29wdGFiLCBWMzJISW1vZGUsICJfX2Rpdm1vZHYzMmhpNCIpOworICBzZXRfb3B0 YWJfbGliZnVuYyAodWRpdm1vZF9vcHRhYiwgVjMySEltb2RlLCAiX191ZGl2bW9kdjMyaGk0 Iik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2X29wdGFiLCBWNjRISW1vZGUsICJfX2Rp dnY2NGhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdl9vcHRhYiwgVjY0SEltb2Rl LCAiX191ZGl2djY0aGkzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzbW9kX29wdGFiLCBW NjRISW1vZGUsICJfX21vZHY2NGhpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodW1vZF9v cHRhYiwgVjY0SEltb2RlLCAiX191bW9kdjY0aGkzIik7CisgIHNldF9vcHRhYl9saWJmdW5j IChzZGl2bW9kX29wdGFiLCBWNjRISW1vZGUsICJfX2Rpdm1vZHY2NGhpNCIpOworICBzZXRf b3B0YWJfbGliZnVuYyAodWRpdm1vZF9vcHRhYiwgVjY0SEltb2RlLCAiX191ZGl2bW9kdjY0 aGk0Iik7CisKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZfb3B0YWIsIFYyU0ltb2RlLCAi X19kaXZ2MnNpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdl9vcHRhYiwgVjJTSW1v ZGUsICJfX3VkaXZ2MnNpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc21vZF9vcHRhYiwg VjJTSW1vZGUsICJfX21vZHYyc2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1bW9kX29w dGFiLCBWMlNJbW9kZSwgIl9fdW1vZHYyc2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChz ZGl2bW9kX29wdGFiLCBWMlNJbW9kZSwgIl9fZGl2bW9kdjJzaTQiKTsKKyAgc2V0X29wdGFi X2xpYmZ1bmMgKHVkaXZtb2Rfb3B0YWIsIFYyU0ltb2RlLCAiX191ZGl2bW9kdjJzaTQiKTsK KyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZfb3B0YWIsIFY0U0ltb2RlLCAiX19kaXZ2NHNp MyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdl9vcHRhYiwgVjRTSW1vZGUsICJfX3Vk aXZ2NHNpMyIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc21vZF9vcHRhYiwgVjRTSW1vZGUs ICJfX21vZHY0c2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1bW9kX29wdGFiLCBWNFNJ bW9kZSwgIl9fdW1vZHY0c2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2bW9kX29w dGFiLCBWNFNJbW9kZSwgIl9fZGl2bW9kdjRzaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMg KHVkaXZtb2Rfb3B0YWIsIFY0U0ltb2RlLCAiX191ZGl2bW9kdjRzaTQiKTsKKyAgc2V0X29w dGFiX2xpYmZ1bmMgKHNkaXZfb3B0YWIsIFY4U0ltb2RlLCAiX19kaXZ2OHNpMyIpOworICBz ZXRfb3B0YWJfbGliZnVuYyAodWRpdl9vcHRhYiwgVjhTSW1vZGUsICJfX3VkaXZ2OHNpMyIp OworICBzZXRfb3B0YWJfbGliZnVuYyAoc21vZF9vcHRhYiwgVjhTSW1vZGUsICJfX21vZHY4 c2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1bW9kX29wdGFiLCBWOFNJbW9kZSwgIl9f dW1vZHY4c2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzZGl2bW9kX29wdGFiLCBWOFNJ bW9kZSwgIl9fZGl2bW9kdjhzaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZtb2Rf b3B0YWIsIFY4U0ltb2RlLCAiX191ZGl2bW9kdjhzaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1 bmMgKHNkaXZfb3B0YWIsIFYxNlNJbW9kZSwgIl9fZGl2djE2c2kzIik7CisgIHNldF9vcHRh Yl9saWJmdW5jICh1ZGl2X29wdGFiLCBWMTZTSW1vZGUsICJfX3VkaXZ2MTZzaTMiKTsKKyAg c2V0X29wdGFiX2xpYmZ1bmMgKHNtb2Rfb3B0YWIsIFYxNlNJbW9kZSwgIl9fbW9kdjE2c2kz Iik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1bW9kX29wdGFiLCBWMTZTSW1vZGUsICJfX3Vt b2R2MTZzaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFYxNlNJ bW9kZSwgIl9fZGl2bW9kdjE2c2k0Iik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1ZGl2bW9k X29wdGFiLCBWMTZTSW1vZGUsICJfX3VkaXZtb2R2MTZzaTQiKTsKKyAgc2V0X29wdGFiX2xp YmZ1bmMgKHNkaXZfb3B0YWIsIFYzMlNJbW9kZSwgIl9fZGl2djMyc2kzIik7CisgIHNldF9v cHRhYl9saWJmdW5jICh1ZGl2X29wdGFiLCBWMzJTSW1vZGUsICJfX3VkaXZ2MzJzaTMiKTsK KyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNtb2Rfb3B0YWIsIFYzMlNJbW9kZSwgIl9fbW9kdjMy c2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1bW9kX29wdGFiLCBWMzJTSW1vZGUsICJf X3Vtb2R2MzJzaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFYz MlNJbW9kZSwgIl9fZGl2bW9kdjMyc2k0Iik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1ZGl2 bW9kX29wdGFiLCBWMzJTSW1vZGUsICJfX3VkaXZtb2R2MzJzaTQiKTsKKyAgc2V0X29wdGFi X2xpYmZ1bmMgKHNkaXZfb3B0YWIsIFY2NFNJbW9kZSwgIl9fZGl2djY0c2kzIik7CisgIHNl dF9vcHRhYl9saWJmdW5jICh1ZGl2X29wdGFiLCBWNjRTSW1vZGUsICJfX3VkaXZ2NjRzaTMi KTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNtb2Rfb3B0YWIsIFY2NFNJbW9kZSwgIl9fbW9k djY0c2kzIik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1bW9kX29wdGFiLCBWNjRTSW1vZGUs ICJfX3Vtb2R2NjRzaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIs IFY2NFNJbW9kZSwgIl9fZGl2bW9kdjY0c2k0Iik7CisgIHNldF9vcHRhYl9saWJmdW5jICh1 ZGl2bW9kX29wdGFiLCBWNjRTSW1vZGUsICJfX3VkaXZtb2R2NjRzaTQiKTsKKworICBzZXRf b3B0YWJfbGliZnVuYyAoc2Rpdl9vcHRhYiwgVjJESW1vZGUsICJfX2RpdnYyZGkzIik7Cisg IHNldF9vcHRhYl9saWJmdW5jICh1ZGl2X29wdGFiLCBWMkRJbW9kZSwgIl9fdWRpdnYyZGkz Iik7CisgIHNldF9vcHRhYl9saWJmdW5jIChzbW9kX29wdGFiLCBWMkRJbW9kZSwgIl9fbW9k djJkaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFYyREltb2RlLCAi X191bW9kdjJkaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFYy REltb2RlLCAiX19kaXZtb2R2MmRpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdm1v ZF9vcHRhYiwgVjJESW1vZGUsICJfX3VkaXZtb2R2MmRpNCIpOworICBzZXRfb3B0YWJfbGli ZnVuYyAoc2Rpdl9vcHRhYiwgVjRESW1vZGUsICJfX2RpdnY0ZGkzIik7CisgIHNldF9vcHRh Yl9saWJmdW5jICh1ZGl2X29wdGFiLCBWNERJbW9kZSwgIl9fdWRpdnY0ZGkzIik7CisgIHNl dF9vcHRhYl9saWJmdW5jIChzbW9kX29wdGFiLCBWNERJbW9kZSwgIl9fbW9kdjRkaTMiKTsK KyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFY0REltb2RlLCAiX191bW9kdjRk aTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFY0REltb2RlLCAi X19kaXZtb2R2NGRpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdm1vZF9vcHRhYiwg VjRESW1vZGUsICJfX3VkaXZtb2R2NGRpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rp dl9vcHRhYiwgVjhESW1vZGUsICJfX2RpdnY4ZGkzIik7CisgIHNldF9vcHRhYl9saWJmdW5j ICh1ZGl2X29wdGFiLCBWOERJbW9kZSwgIl9fdWRpdnY4ZGkzIik7CisgIHNldF9vcHRhYl9s aWJmdW5jIChzbW9kX29wdGFiLCBWOERJbW9kZSwgIl9fbW9kdjhkaTMiKTsKKyAgc2V0X29w dGFiX2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFY4REltb2RlLCAiX191bW9kdjhkaTMiKTsKKyAg c2V0X29wdGFiX2xpYmZ1bmMgKHNkaXZtb2Rfb3B0YWIsIFY4REltb2RlLCAiX19kaXZtb2R2 OGRpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAodWRpdm1vZF9vcHRhYiwgVjhESW1vZGUs ICJfX3VkaXZtb2R2OGRpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdl9vcHRhYiwg VjE2REltb2RlLCAiX19kaXZ2MTZkaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZf b3B0YWIsIFYxNkRJbW9kZSwgIl9fdWRpdnYxNmRpMyIpOworICBzZXRfb3B0YWJfbGliZnVu YyAoc21vZF9vcHRhYiwgVjE2REltb2RlLCAiX19tb2R2MTZkaTMiKTsKKyAgc2V0X29wdGFi X2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFYxNkRJbW9kZSwgIl9fdW1vZHYxNmRpMyIpOworICBz ZXRfb3B0YWJfbGliZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjE2REltb2RlLCAiX19kaXZtb2R2 MTZkaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZtb2Rfb3B0YWIsIFYxNkRJbW9k ZSwgIl9fdWRpdm1vZHYxNmRpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdl9vcHRh YiwgVjMyREltb2RlLCAiX19kaXZ2MzJkaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVk aXZfb3B0YWIsIFYzMkRJbW9kZSwgIl9fdWRpdnYzMmRpMyIpOworICBzZXRfb3B0YWJfbGli ZnVuYyAoc21vZF9vcHRhYiwgVjMyREltb2RlLCAiX19tb2R2MzJkaTMiKTsKKyAgc2V0X29w dGFiX2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFYzMkRJbW9kZSwgIl9fdW1vZHYzMmRpMyIpOwor ICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjMyREltb2RlLCAiX19kaXZt b2R2MzJkaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZtb2Rfb3B0YWIsIFYzMkRJ bW9kZSwgIl9fdWRpdm1vZHYzMmRpNCIpOworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdl9v cHRhYiwgVjY0REltb2RlLCAiX19kaXZ2NjRkaTMiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMg KHVkaXZfb3B0YWIsIFY2NERJbW9kZSwgIl9fdWRpdnY2NGRpMyIpOworICBzZXRfb3B0YWJf bGliZnVuYyAoc21vZF9vcHRhYiwgVjY0REltb2RlLCAiX19tb2R2NjRkaTMiKTsKKyAgc2V0 X29wdGFiX2xpYmZ1bmMgKHVtb2Rfb3B0YWIsIFY2NERJbW9kZSwgIl9fdW1vZHY2NGRpMyIp OworICBzZXRfb3B0YWJfbGliZnVuYyAoc2Rpdm1vZF9vcHRhYiwgVjY0REltb2RlLCAiX19k aXZtb2R2NjRkaTQiKTsKKyAgc2V0X29wdGFiX2xpYmZ1bmMgKHVkaXZtb2Rfb3B0YWIsIFY2 NERJbW9kZSwgIl9fdWRpdm1vZHY2NGRpNCIpOwogfQogCiAvKiBFeHBhbmQgdGhlIENNUF9T V0FQIEdDTiBidWlsdGlucy4gIFdlIGhhdmUgb3VyIG93biB2ZXJzaW9ucyB0aGF0IGRvCkBA IC03NDkyLDYgKzc2ODksOCBAQCBnY25fZHdhcmZfcmVnaXN0ZXJfc3BhbiAocnR4IHJ0bCkK ICNkZWZpbmUgVEFSR0VUX0VNVVRMU19WQVJfSU5JVCBnY25fZW11dGxzX3Zhcl9pbml0CiAj dW5kZWYgIFRBUkdFVF9FWFBBTkRfQlVJTFRJTgogI2RlZmluZSBUQVJHRVRfRVhQQU5EX0JV SUxUSU4gZ2NuX2V4cGFuZF9idWlsdGluCisjdW5kZWYgIFRBUkdFVF9FWFBBTkRfRElWTU9E X0xJQkZVTkMKKyNkZWZpbmUgVEFSR0VUX0VYUEFORF9ESVZNT0RfTElCRlVOQyBnY25fZXhw YW5kX2Rpdm1vZF9saWJmdW5jCiAjdW5kZWYgIFRBUkdFVF9GUkFNRV9QT0lOVEVSX1JFUVVJ UkVECiAjZGVmaW5lIFRBUkdFVF9GUkFNRV9QT0lOVEVSX1JFUVVJUkVEIGdjbl9mcmFtZV9w b2ludGVyX3JxZAogI3VuZGVmICBUQVJHRVRfRlVOQ1RJT05fQVJHCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9wcmVkY29tLTIuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3RyZWUtc3NhL3ByZWRjb20tMi5jCmluZGV4IGQ4ZmU1MWM1YTZjLi4xYzU0 Njc5YzAyMiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHJl ZGNvbS0yLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHJlZGNvbS0y LmMKQEAgLTEsNSArMSw2IEBACiAvKiB7IGRnLWRvIHJ1biB9ICovCiAvKiB7IGRnLW9wdGlv bnMgIi1PMiAtZnVucm9sbC1sb29wcyAtLXBhcmFtIG1heC11bnJvbGwtdGltZXM9OCAtZnBy ZWRpY3RpdmUtY29tbW9uaW5nIC1mZHVtcC10cmVlLXBjb20tZGV0YWlscyAtZm5vLXRyZWUt cHJlIiB9ICovCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZuby10cmVlLXZlY3Rv cml6ZSIgeyB0YXJnZXQgYW1kZ2NuLSotKiB9IH0gKi8KIAogdm9pZCBhYm9ydCAodm9pZCk7 CiAKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Vucm9sbC04LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy91bnJvbGwtOC5jCmluZGV4IGRmY2ZlMmVlYmYwLi5jNGY2YWM5 MTU4MSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdW5yb2xsLTguYworKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy91bnJvbGwtOC5jCkBAIC0xLDUgKzEsNyBAQAogLyog eyBkZy1kbyBjb21waWxlIH0gKi8KIC8qIHsgZGctb3B0aW9ucyAiLU8yIC1mZHVtcC1ydGwt bG9vcDJfdW5yb2xsIC1mdW5yb2xsLWxvb3BzIiB9ICovCisvKiB7IGRnLWFkZGl0aW9uYWwt b3B0aW9ucyAiLWZuby10cmVlLXZlY3Rvcml6ZSIgeyB0YXJnZXQgYW1kZ2NuLSotKiB9IH0g Ki8KKwogc3RydWN0IGEge2ludCBhWzddO307CiBpbnQgdChzdHJ1Y3QgYSAqYSwgaW50IG4p CiB7CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3NscC0yNi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9zbHAtMjYuYwppbmRleCAwMWY0ZTRlZTMyZS4u ZjhiNDlmZjYwM2MgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Qvc2xw LTI2LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9zbHAtMjYuYwpAQCAtNDYs NyArNDYsNyBAQCBpbnQgbWFpbiAodm9pZCkKICAgcmV0dXJuIDA7CiB9CiAKLS8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAidmVjdG9yaXplZCAwIGxvb3BzIiAxICJ2 ZWN0IiB7IHRhcmdldCB7ICEgbWlwc19tc2EgfSB9IH0gfSAqLwotLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemVkIDEgbG9vcHMiIDEgInZlY3QiIHsg dGFyZ2V0IHsgbWlwc19tc2EgfSB9IH0gfSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemluZyBzdG10cyB1c2luZyBTTFAiIDAgInZlY3QiIHsg dGFyZ2V0IHsgISBtaXBzX21zYSB9IH0gfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgInZlY3Rvcml6aW5nIHN0bXRzIHVzaW5nIFNMUCIgMSAidmVjdCIg eyB0YXJnZXQgeyBtaXBzX21zYSB9IH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgInZlY3Rvcml6ZWQgMCBsb29wcyIgMSAidmVjdCIgeyB0YXJnZXQg eyAhIHsgbWlwc19tc2EgfHwgYW1kZ2NuLSotKiB9IH0gfSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIiAxICJ2ZWN0 IiB7IHRhcmdldCB7IG1pcHNfbXNhIHx8IGFtZGdjbi0qLSogfSB9IH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemluZyBzdG10cyB1c2lu ZyBTTFAiIDAgInZlY3QiIHsgdGFyZ2V0IHsgISB7IG1pcHNfbXNhIHx8IGFtZGdjbi0qLSog fSB9IH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInZl Y3Rvcml6aW5nIHN0bXRzIHVzaW5nIFNMUCIgMSAidmVjdCIgeyB0YXJnZXQgeyBtaXBzX21z YSB8fCBhbWRnY24tKi0qIH0gfSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vc2ltZC1tYXRoLTMtMTYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYjBmODhiNGIzZTMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLTE2LmMKQEAgLTAsMCArMSwxMyBAQAor I2RlZmluZSBTVFlQRSB2MTZzaQorI2RlZmluZSBVVFlQRSB2MTZ1c2kKKyNkZWZpbmUgTiAx NgorI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7X19kaXZtb2R2MTZzaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1vZHYxNnNpNEByZWwz MkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 X19kaXZ2MTZzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge19fdWRpdnYxNnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2MTZzaTNAcmVsMzJAbG99 IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1v ZHYxNnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X19kaXZzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnNpM0ByZWwzMkBsb30gMSB9IH0gKi8K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMt Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy0yLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhNGE1ZGE1ODI3Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgt My0yLmMKQEAgLTAsMCArMSwxMyBAQAorI2RlZmluZSBTVFlQRSB2MnNpCisjZGVmaW5lIFVU WVBFIHYydXNpCisjZGVmaW5lIE4gMgorI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCisKKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2MnNpNEByZWwz MkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 X191ZGl2bW9kdjJzaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge19fZGl2djJzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYyc2kzQHJlbDMyQGxv fSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21v ZHYyc2kzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtfX3Vtb2R2MnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZzaTNAcmVsMzJAbG99IDEgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnNpM0ByZWwz MkBsb30gMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vc2ltZC1tYXRoLTMtMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2lt ZC1tYXRoLTMtMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NjMyOTU4MTUwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3NpbWQtbWF0aC0zLTMyLmMKQEAgLTAsMCArMSwxMyBAQAorI2RlZmluZSBTVFlQ RSB2MzJzaQorI2RlZmluZSBVVFlQRSB2MzJ1c2kKKyNkZWZpbmUgTiAzMgorI2luY2x1ZGUg InNpbWQtbWF0aC0zLmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X19kaXZtb2R2MzJzaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1vZHYzMnNpNEByZWwzMkBsb30gMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2MzJzaTNA cmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge19fdWRpdnYzMnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2MzJzaTNAcmVsMzJAbG99IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHYzMnNpM0ByZWwz MkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 X19kaXZzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fdWRpdnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy00LmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMyNjg2YjY2ZWRhCi0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy00LmMKQEAgLTAs MCArMSwxMyBAQAorI2RlZmluZSBTVFlQRSB2NHNpCisjZGVmaW5lIFVUWVBFIHY0dXNpCisj ZGVmaW5lIE4gNAorI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCisKKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2NHNpNEByZWwzMkBsb30gMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191ZGl2bW9kdjRz aTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fZGl2djRzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY0c2kzQHJlbDMyQGxvfSAxIH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHY0c2kzQHJlbDMy QGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtf X3Vtb2R2NHNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7X19kaXZzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnNpM0ByZWwzMkBsb30gMSB9IH0g Ki8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTMtOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy04LmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRlZmEyZWIwMWRjCi0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1h dGgtMy04LmMKQEAgLTAsMCArMSwxMyBAQAorI2RlZmluZSBTVFlQRSB2OHNpCisjZGVmaW5l IFVUWVBFIHY4dXNpCisjZGVmaW5lIE4gOAorI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCisK Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2OHNpNEBy ZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X191ZGl2bW9kdjhzaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djhzaTNAcmVsMzJAbG99IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY4c2kzQHJlbDMy QGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtf X21vZHY4c2kzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtfX3Vtb2R2OHNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZzaTNAcmVsMzJAbG99IDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnNpM0By ZWwzMkBsb30gMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vc2ltZC1tYXRoLTMtY2hhci0xNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9zaW1kLW1hdGgtMy1jaGFyLTE2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmUxYzhmZGU3NGIwCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1jaGFyLTE2LmMKQEAgLTAsMCArMSwx MSBAQAorI2RlZmluZSBTVFlQRSB2MTZxaQorI2RlZmluZSBVVFlQRSB2MTZ1cWkKKyNkZWZp bmUgTiAxNgorI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCisKKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2MTZxaTRAcmVsMzJAbG99IDEgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1vZHYxNnFp NEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7X19kaXZ2MTZxaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYxNnFpM0ByZWwzMkBsb30gMSB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2MTZxaTNAcmVs MzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e19fdW1vZHYxNnFpM0ByZWwzMkBsb30gMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtY2hhci0yLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNoYXItMi5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNmRiNjFkYzNhZAotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtY2hhci0yLmMK QEAgLTAsMCArMSwxMSBAQAorI2RlZmluZSBTVFlQRSB2MnFpCisjZGVmaW5lIFVUWVBFIHYy dXFpCisjZGVmaW5lIE4gMgorI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCisKKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2MnFpNEByZWwzMkBsb30g MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191ZGl2 bW9kdjJxaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fZGl2djJxaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYycWkzQHJlbDMyQGxvfSAxIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHYycWkz QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtfX3Vtb2R2MnFpM0ByZWwzMkBsb30gMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtY2hhci0zMi5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1jaGFyLTMyLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg4ODVhYmQyMDkyCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1jaGFy LTMyLmMKQEAgLTAsMCArMSwxMSBAQAorI2RlZmluZSBTVFlQRSB2MzJxaQorI2RlZmluZSBV VFlQRSB2MzJ1cWkKKyNkZWZpbmUgTiAzMgorI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCisK Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2MzJxaTRA cmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge19fdWRpdm1vZHYzMnFpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2MzJxaTNAcmVsMzJAbG99IDEgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYzMnFpM0By ZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X19tb2R2MzJxaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge19fdW1vZHYzMnFpM0ByZWwzMkBsb30gMSB9IH0gKi8KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtY2hh ci00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNoYXIt NC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NmJhYzUwYzFl ZQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2lt ZC1tYXRoLTMtY2hhci00LmMKQEAgLTAsMCArMSwxMSBAQAorI2RlZmluZSBTVFlQRSB2NHFp CisjZGVmaW5lIFVUWVBFIHY0dXFpCisjZGVmaW5lIE4gNAorI2luY2x1ZGUgInNpbWQtbWF0 aC0zLmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZt b2R2NHFpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X191ZGl2bW9kdjRxaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djRxaTNAcmVsMzJAbG99IDEg fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY0 cWkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtfX21vZHY0cWkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2NHFpM0ByZWwzMkBsb30gMSB9IH0gKi8K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMt Y2hhci04LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNo YXItOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43Y2IzYjRj MmQyOAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v c2ltZC1tYXRoLTMtY2hhci04LmMKQEAgLTAsMCArMSwxMSBAQAorI2RlZmluZSBTVFlQRSB2 OHFpCisjZGVmaW5lIFVUWVBFIHY4dXFpCisjZGVmaW5lIE4gOAorI2luY2x1ZGUgInNpbWQt bWF0aC0zLmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19k aXZtb2R2OHFpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7X191ZGl2bW9kdjhxaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djhxaTNAcmVsMzJAbG99 IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRp dnY4cWkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtfX21vZHY4cWkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2OHFpM0ByZWwzMkBsb30gMSB9IH0g Ki8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTMtY2hhci1ydW4tMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1t YXRoLTMtY2hhci1ydW4tMTYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMTU5Yjk4MDJiMDcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNoYXItcnVuLTE2LmMKQEAgLTAsMCArMSwyIEBA CisvKiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTMtY2hhci0xNi5j IgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgt My1jaGFyLXJ1bi0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC0zLWNoYXItcnVuLTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNmU3MzBkMDdhMDMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNoYXItcnVuLTIuYwpAQCAtMCwwICsxLDIgQEAKKy8q IHsgZGctZG8gcnVuIH0gKi8KKyNpbmNsdWRlICJzaW1kLW1hdGgtMy1jaGFyLTIuYyIKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtY2hh ci1ydW4tMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMt Y2hhci1ydW4tMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u OGU0OTMyYmY1YjkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3NpbWQtbWF0aC0zLWNoYXItcnVuLTMyLmMKQEAgLTAsMCArMSwyIEBACisvKiB7 IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTMtY2hhci0zMi5jIgpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1jaGFy LXJ1bi00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNo YXItcnVuLTQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDA3 YTQzMTgzOTAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL3NpbWQtbWF0aC0zLWNoYXItcnVuLTQuYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGct ZG8gcnVuIH0gKi8KKyNpbmNsdWRlICJzaW1kLW1hdGgtMy1jaGFyLTQuYyIKZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtY2hhci1ydW4t OC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1jaGFyLXJ1 bi04LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY0Zjc4OWE0 NTI4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9z aW1kLW1hdGgtMy1jaGFyLXJ1bi04LmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1 biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTMtY2hhci04LmMiCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNoYXItcnVuLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWNoYXItcnVuLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMmQ0YzBhMTlhCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgt My1jaGFyLXJ1bi5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworI2lu Y2x1ZGUgInNpbWQtbWF0aC0zLWNoYXIuYyIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtY2hhci5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1jaGFyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmMzMzhhZGI4NGUyCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1jaGFyLmMKQEAgLTAsMCArMSwx MCBAQAorI2RlZmluZSBTVFlQRSB2NjRxaQorI2RlZmluZSBVVFlQRSB2NjR1cWkKKyNpbmNs dWRlICJzaW1kLW1hdGgtMy5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fZGl2bW9kdjY0cWk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZtb2R2NjRxaTRAcmVsMzJAbG99IDEg fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djY0 cWkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtfX3VkaXZ2NjRxaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fbW9kdjY0cWkzQHJlbDMyQGxvfSAxIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2NjRxaTNA cmVsMzJAbG99IDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3NpbWQtbWF0aC0zLWxvbmctMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vc2ltZC1tYXRoLTMtbG9uZy0xNi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi43NDhmNGFjYmY4MwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtbG9uZy0xNi5jCkBAIC0wLDAgKzEs MTEgQEAKKyNkZWZpbmUgU1RZUEUgdjE2ZGkKKyNkZWZpbmUgVVRZUEUgdjE2dWRpCisjZGVm aW5lIE4gMTYKKyNpbmNsdWRlICJzaW1kLW1hdGgtMy5jIgorCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjE2ZGk0QHJlbDMyQGxvfSAxIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZtb2R2MTZk aTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fZGl2djE2ZGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2MTZkaTNAcmVsMzJAbG99IDEgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fbW9kdjE2ZGkzQHJl bDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtfX3Vtb2R2MTZkaTNAcmVsMzJAbG99IDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWxvbmctMi5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1sb25nLTIuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2FlNjM5NzhlZDIKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWxvbmctMi5j CkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUgdjJkaQorI2RlZmluZSBVVFlQRSB2 MnVkaQorI2RlZmluZSBOIDIKKyNpbmNsdWRlICJzaW1kLW1hdGgtMy5jIgorCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjJkaTRAcmVsMzJAbG99 IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRp dm1vZHYyZGk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtfX2RpdnYyZGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2MmRpM0ByZWwzMkBsb30gMSB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2MmRp M0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7X191bW9kdjJkaTNAcmVsMzJAbG99IDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWxvbmctMzIuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtbG9uZy0zMi5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNzMyZGU0ZTU0ZAotLS0gL2Rldi9u dWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtbG9u Zy0zMi5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUgdjMyZGkKKyNkZWZpbmUg VVRZUEUgdjMydWRpCisjZGVmaW5lIE4gMzIKKyNpbmNsdWRlICJzaW1kLW1hdGgtMy5jIgor CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjMyZGk0 QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtfX3VkaXZtb2R2MzJkaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djMyZGkzQHJlbDMyQGxvfSAxIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2MzJkaTNA cmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge19fbW9kdjMyZGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2MzJkaTNAcmVsMzJAbG99IDEgfSB9ICovCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWxv bmctNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1sb25n LTQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTBiNGYyNjkz YzIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3Np bWQtbWF0aC0zLWxvbmctNC5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUgdjRk aQorI2RlZmluZSBVVFlQRSB2NHVkaQorI2RlZmluZSBOIDQKKyNpbmNsdWRlICJzaW1kLW1h dGgtMy5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2 bW9kdjRkaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fdWRpdm1vZHY0ZGk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnY0ZGkzQHJlbDMyQGxvfSAx IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2 NGRpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7X19tb2R2NGRpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191bW9kdjRkaTNAcmVsMzJAbG99IDEgfSB9ICov CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0z LWxvbmctOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1s b25nLTguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTA4NDFi ODFjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L3NpbWQtbWF0aC0zLWxvbmctOC5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUg djhkaQorI2RlZmluZSBVVFlQRSB2OHVkaQorI2RlZmluZSBOIDgKKyNpbmNsdWRlICJzaW1k LW1hdGgtMy5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19f ZGl2bW9kdjhkaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge19fdWRpdm1vZHY4ZGk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnY4ZGkzQHJlbDMyQGxv fSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vk aXZ2OGRpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X19tb2R2OGRpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191bW9kdjhkaTNAcmVsMzJAbG99IDEgfSB9 ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC0zLWxvbmctcnVuLTE2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQt bWF0aC0zLWxvbmctcnVuLTE2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjdjZTljOTJhN2EwCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1sb25nLXJ1bi0xNi5jCkBAIC0wLDAgKzEsMiBA QAorLyogeyBkZy1kbyBydW4gfSAqLworI2luY2x1ZGUgInNpbWQtbWF0aC0zLWxvbmctMTYu YyIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTMtbG9uZy1ydW4tMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1h dGgtMy1sb25nLXJ1bi0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjIwOTk2YTU2ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1sb25nLXJ1bi0yLmMKQEAgLTAsMCArMSwyIEBACisv KiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTMtbG9uZy0yLmMiCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWxv bmctcnVuLTMyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0z LWxvbmctcnVuLTMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjFjYTI1YWM5YjUxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtMy1sb25nLXJ1bi0zMi5jCkBAIC0wLDAgKzEsMiBAQAorLyog eyBkZy1kbyBydW4gfSAqLworI2luY2x1ZGUgInNpbWQtbWF0aC0zLWxvbmctMzIuYyIKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtbG9u Zy1ydW4tNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1s b25nLXJ1bi00LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIz MTc2OWFkMGJjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9zaW1kLW1hdGgtMy1sb25nLXJ1bi00LmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRn LWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTMtbG9uZy00LmMiCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWxvbmctcnVu LTguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtbG9uZy1y dW4tOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MzAyNTZh MGZjNwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v c2ltZC1tYXRoLTMtbG9uZy1ydW4tOC5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBy dW4gfSAqLworI2luY2x1ZGUgInNpbWQtbWF0aC0zLWxvbmctOC5jIgpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1sb25nLXJ1bi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1sb25nLXJ1bi5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNjNlNDI1NzNkMgotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTMtbG9uZy1ydW4uYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKyNp bmNsdWRlICJzaW1kLW1hdGgtMy1sb25nLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLWxvbmcuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vc2ltZC1tYXRoLTMtbG9uZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi45ZDI2MzI0MTUzNgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtbG9uZy5jCkBAIC0wLDAgKzEs MTAgQEAKKyNkZWZpbmUgU1RZUEUgdjY0ZGkKKyNkZWZpbmUgVVRZUEUgdjY0dWRpCisjaW5j bHVkZSAic2ltZC1tYXRoLTMuYyIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtfX2Rpdm1vZHY2NGRpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191ZGl2bW9kdjY0ZGk0QHJlbDMyQGxvfSAx IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnY2 NGRpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7X191ZGl2djY0ZGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHY2NGRpM0ByZWwzMkBsb30gMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191bW9kdjY0ZGkz QHJlbDMyQGxvfSAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtMy1ydW4tMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vc2ltZC1tYXRoLTMtcnVuLTE2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmFlOGNkYmZmYTFkCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1ydW4tMTYuYwpAQCAtMCwwICsxLDIg QEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKyNpbmNsdWRlICJzaW1kLW1hdGgtMy0xNi5jIgpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1y dW4tMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1ydW4t Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ZDgwMzgyZjIz YgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2lt ZC1tYXRoLTMtcnVuLTIuYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8K KyNpbmNsdWRlICJzaW1kLW1hdGgtMy0yLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXJ1bi0zMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1ydW4tMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMTI3ZmQzNmYwZjQKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXJ1bi0zMi5jCkBAIC0w LDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworI2luY2x1ZGUgInNpbWQtbWF0aC0z LTMyLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQt bWF0aC0zLXJ1bi00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC0zLXJ1bi00LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUx ZDViNWRlNWMxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9zaW1kLW1hdGgtMy1ydW4tNC5jCkBAIC0wLDAgKzEsMyBAQAorLyogeyBkZy1kbyBy dW4gfSAqLworI2luY2x1ZGUgInNpbWQtbWF0aC0zLTQuYyIKKwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1ydW4tOC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1ydW4tOC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYzk4YjYwYWUyZQotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtcnVuLTgu YwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKyNpbmNsdWRlICJzaW1k LW1hdGgtMy04LmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L3NpbWQtbWF0aC0zLXJ1bi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1k LW1hdGgtMy1ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u YWNhNTA4Y2JjMjUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3NpbWQtbWF0aC0zLXJ1bi5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBy dW4gfSAqLworI2luY2x1ZGUgInNpbWQtbWF0aC0zLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LTE2LmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LTE2LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAxOWU2OTU0MzA2Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1zaG9y dC0xNi5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUgdjE2aGkKKyNkZWZpbmUg VVRZUEUgdjE2dWhpCisjZGVmaW5lIE4gMTYKKyNpbmNsdWRlICJzaW1kLW1hdGgtMy5jIgor CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjE2aGk0 QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtfX3VkaXZtb2R2MTZoaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djE2aGkzQHJlbDMyQGxvfSAxIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2MTZoaTNA cmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge19fbW9kdjE2aGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2MTZoaTNAcmVsMzJAbG99IDEgfSB9ICovCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNo b3J0LTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtc2hv cnQtMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYjg2N2My ZGJlMwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v c2ltZC1tYXRoLTMtc2hvcnQtMi5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUg djJoaQorI2RlZmluZSBVVFlQRSB2MnVoaQorI2RlZmluZSBOIDIKKyNpbmNsdWRlICJzaW1k LW1hdGgtMy5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19f ZGl2bW9kdjJoaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge19fdWRpdm1vZHYyaGk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnYyaGkzQHJlbDMyQGxv fSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vk aXZ2MmhpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X19tb2R2MmhpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191bW9kdjJoaTNAcmVsMzJAbG99IDEgfSB9 ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC0zLXNob3J0LTMyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC0zLXNob3J0LTMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjJhNmZjMmM5ZmJmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtMy1zaG9ydC0zMi5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZp bmUgU1RZUEUgdjMyaGkKKyNkZWZpbmUgVVRZUEUgdjMydWhpCisjZGVmaW5lIE4gMzIKKyNp bmNsdWRlICJzaW1kLW1hdGgtMy5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge19fZGl2bW9kdjMyaGk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZtb2R2MzJoaTRAcmVsMzJAbG99 IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2 djMyaGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtfX3VkaXZ2MzJoaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fbW9kdjMyaGkzQHJlbDMyQGxvfSAxIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2MzJo aTNAcmVsMzJAbG99IDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vc2ltZC1tYXRoLTMtc2hvcnQtNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi42MWVmOGI1NWYyMQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtc2hvcnQtNC5jCkBAIC0wLDAg KzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUgdjRoaQorI2RlZmluZSBVVFlQRSB2NHVoaQorI2Rl ZmluZSBOIDQKKyNpbmNsdWRlICJzaW1kLW1hdGgtMy5jIgorCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjRoaTRAcmVsMzJAbG99IDEgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1vZHY0aGk0 QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtfX2RpdnY0aGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2NGhpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2NGhpM0ByZWwzMkBs b30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191 bW9kdjRoaTNAcmVsMzJAbG99IDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LTguYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtc2hvcnQtOC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNzE2ZDRhMWYwMAotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtc2hvcnQtOC5jCkBA IC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgU1RZUEUgdjhoaQorI2RlZmluZSBVVFlQRSB2OHVo aQorI2RlZmluZSBOIDgKKyNpbmNsdWRlICJzaW1kLW1hdGgtMy5jIgorCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjhoaTRAcmVsMzJAbG99IDEg fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1v ZHY4aGk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtfX2RpdnY4aGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2OGhpM0ByZWwzMkBsb30gMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2OGhpM0By ZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X191bW9kdjhoaTNAcmVsMzJAbG99IDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LXJ1bi0xNi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1zaG9ydC1ydW4tMTYuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGNhODY2Y2UyMWYKLS0t IC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC0zLXNob3J0LXJ1bi0xNi5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAq LworI2luY2x1ZGUgInNpbWQtbWF0aC0zLXNob3J0LTE2LmMiCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LXJ1bi0yLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LXJ1bi0yLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjNmQ4YjY4ZjI4Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1h dGgtMy1zaG9ydC1ydW4tMi5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAq LworI2luY2x1ZGUgInNpbWQtbWF0aC0zLXNob3J0LTIuYyIKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtc2hvcnQtcnVuLTMyLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LXJ1bi0zMi5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44YzMwZWJjNTUyOAot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1t YXRoLTMtc2hvcnQtcnVuLTMyLmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9 ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTMtc2hvcnQtMzIuYyIKZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtc2hvcnQtcnVuLTQuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTMtc2hvcnQtcnVuLTQu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTcwNjk3ZTZlNDIK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQt bWF0aC0zLXNob3J0LXJ1bi00LmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9 ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTMtc2hvcnQtNC5jIgpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1zaG9ydC1ydW4tOC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1zaG9ydC1ydW4tOC5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45Y2I5YTZmZTI5Nwot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1t YXRoLTMtc2hvcnQtcnVuLTguYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0g Ki8KKyNpbmNsdWRlICJzaW1kLW1hdGgtMy1zaG9ydC04LmMiCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LXJ1bi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1zaG9ydC1ydW4uYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDhmNzI2NzFlOTYKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0z LXNob3J0LXJ1bi5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworI2lu Y2x1ZGUgInNpbWQtbWF0aC0zLXNob3J0LmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL3NpbWQtbWF0aC0zLXNob3J0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjdkNDcyM2NhNDNlCi0tLSAvZGV2L251bGwKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtMy1zaG9ydC5jCkBAIC0wLDAg KzEsMTAgQEAKKyNkZWZpbmUgU1RZUEUgdjY0aGkKKyNkZWZpbmUgVVRZUEUgdjY0dWhpCisj aW5jbHVkZSAic2ltZC1tYXRoLTMuYyIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtfX2Rpdm1vZHY2NGhpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191ZGl2bW9kdjY0aGk0QHJlbDMyQGxv fSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2Rp dnY2NGhpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X191ZGl2djY0aGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHY2NGhpM0ByZWwzMkBsb30gMSB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191bW9kdjY0 aGkzQHJlbDMyQGxvfSAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9zaW1kLW1hdGgtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2dj bi9zaW1kLW1hdGgtMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li45MGEyZTZmNTQ4OAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vc2ltZC1tYXRoLTMuYwpAQCAtMCwwICsxLDE4NiBAQAorLyogVGVzdCB0aGF0 IHNpZ25lZCBhbmQgdW5zaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsdXMgdXNlIHRoZSBjb3Jy ZWN0CisgICB2ZWN0b3Igcm91dGluZXMgYW5kIGdpdmUgdGhlIGNvcnJlY3QgcmVzdWx0cy4g ICovCisKKy8qIFNldHRpbmcgaXQgdGhpcyB3YXkgZW5zdXJlcyB0aGUgcnVuIHRlc3RzIHVz ZSB0aGUgc2FtZSBmbGFnIGFzIHRoZQorICAgY29tcGlsZSB0ZXN0cy4gICovCisjcHJhZ21h IEdDQyBvcHRpbWl6ZSgiTzIiKQorCit0eXBlZGVmIHNpZ25lZCBjaGFyIHYycWkgX19hdHRy aWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgyKSkpOwordHlwZWRlZiBzaWduZWQgY2hhciB2NHFp IF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNCkpKTsKK3R5cGVkZWYgc2lnbmVkIGNo YXIgdjhxaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDgpKSk7Cit0eXBlZGVmIHNp Z25lZCBjaGFyIHYxNnFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMTYpKSk7Cit0 eXBlZGVmIHNpZ25lZCBjaGFyIHYzMnFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAo MzIpKSk7Cit0eXBlZGVmIHNpZ25lZCBjaGFyIHY2NHFpIF9fYXR0cmlidXRlX18gKCh2ZWN0 b3Jfc2l6ZSAoNjQpKSk7CisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB2MnVxaSBfX2F0dHJp YnV0ZV9fICgodmVjdG9yX3NpemUgKDIpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdjR1 cWkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg0KSkpOwordHlwZWRlZiB1bnNpZ25l ZCBjaGFyIHY4dXFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoOCkpKTsKK3R5cGVk ZWYgdW5zaWduZWQgY2hhciB2MTZ1cWkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgx NikpKTsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB2MzJ1cWkgX19hdHRyaWJ1dGVfXyAoKHZl Y3Rvcl9zaXplICgzMikpKTsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB2NjR1cWkgX19hdHRy aWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg2NCkpKTsKKwordHlwZWRlZiBzaG9ydCB2MmhpIF9f YXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNCkpKTsKK3R5cGVkZWYgc2hvcnQgdjRoaSBf X2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDgpKSk7Cit0eXBlZGVmIHNob3J0IHY4aGkg X19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxNikpKTsKK3R5cGVkZWYgc2hvcnQgdjE2 aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgzMikpKTsKK3R5cGVkZWYgc2hvcnQg djMyaGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg2NCkpKTsKK3R5cGVkZWYgc2hv cnQgdjY0aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxMjgpKSk7CisKK3R5cGVk ZWYgdW5zaWduZWQgc2hvcnQgdjJ1aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg0 KSkpOwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB2NHVoaSBfX2F0dHJpYnV0ZV9fICgodmVj dG9yX3NpemUgKDgpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHY4dWhpIF9fYXR0cmli dXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMTYpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHYx NnVoaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDMyKSkpOwordHlwZWRlZiB1bnNp Z25lZCBzaG9ydCB2MzJ1aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg2NCkpKTsK K3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgdjY0dWhpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jf c2l6ZSAoMTI4KSkpOworCit0eXBlZGVmIGludCB2MnNpIF9fYXR0cmlidXRlX18gKCh2ZWN0 b3Jfc2l6ZSAoOCkpKTsKK3R5cGVkZWYgaW50IHY0c2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rv cl9zaXplICgxNikpKTsKK3R5cGVkZWYgaW50IHY4c2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rv cl9zaXplICgzMikpKTsKK3R5cGVkZWYgaW50IHYxNnNpIF9fYXR0cmlidXRlX18gKCh2ZWN0 b3Jfc2l6ZSAoNjQpKSk7Cit0eXBlZGVmIGludCB2MzJzaSBfX2F0dHJpYnV0ZV9fICgodmVj dG9yX3NpemUgKDEyOCkpKTsKK3R5cGVkZWYgaW50IHY2NHNpIF9fYXR0cmlidXRlX18gKCh2 ZWN0b3Jfc2l6ZSAoMjU2KSkpOworCit0eXBlZGVmIHVuc2lnbmVkIGludCB2MnVzaSBfX2F0 dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDgpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIGludCB2 NHVzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDE2KSkpOwordHlwZWRlZiB1bnNp Z25lZCBpbnQgdjh1c2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgzMikpKTsKK3R5 cGVkZWYgdW5zaWduZWQgaW50IHYxNnVzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUg KDY0KSkpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdjMydXNpIF9fYXR0cmlidXRlX18gKCh2 ZWN0b3Jfc2l6ZSAoMTI4KSkpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdjY0dXNpIF9fYXR0 cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMjU2KSkpOworCit0eXBlZGVmIGxvbmcgdjJkaSBf X2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDE2KSkpOwordHlwZWRlZiBsb25nIHY0ZGkg X19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgzMikpKTsKK3R5cGVkZWYgbG9uZyB2OGRp IF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNjQpKSk7Cit0eXBlZGVmIGxvbmcgdjE2 ZGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxMjgpKSk7Cit0eXBlZGVmIGxvbmcg djMyZGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgyNTYpKSk7Cit0eXBlZGVmIGxv bmcgdjY0ZGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg1MTIpKSk7CisKK3R5cGVk ZWYgdW5zaWduZWQgbG9uZyB2MnVkaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDE2 KSkpOwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHY0dWRpIF9fYXR0cmlidXRlX18gKCh2ZWN0 b3Jfc2l6ZSAoMzIpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdjh1ZGkgX19hdHRyaWJ1 dGVfXyAoKHZlY3Rvcl9zaXplICg2NCkpKTsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB2MTZ1 ZGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxMjgpKSk7Cit0eXBlZGVmIHVuc2ln bmVkIGxvbmcgdjMydWRpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMjU2KSkpOwor dHlwZWRlZiB1bnNpZ25lZCBsb25nIHY2NHVkaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3Np emUgKDUxMikpKTsKKworI2lmbmRlZiBTVFlQRQorI2RlZmluZSBTVFlQRSB2NjRzaQorI2Rl ZmluZSBVVFlQRSB2NjR1c2kKKyNlbmRpZgorI2lmbmRlZiBOCisjZGVmaW5lIE4gNjQKKyNl bmRpZgorCitTVFlQRSBhOworU1RZUEUgYjsKK1VUWVBFIHVhOworVVRZUEUgdWI7CisKK2lu dCBtYWluKCkKK3sKKyAgaW50IGk7CisgIFNUWVBFIHNxdW90LCBzcmVtOworICBVVFlQRSB1 c3F1b3QsIHVzcmVtOworICBTVFlQRSB2cXVvdCwgdnJlbTsKKyAgVVRZUEUgdXZxdW90LCB1 dnJlbTsKKyAgU1RZUEUgdnF1b3QyLCB2cmVtMjsKKyAgVVRZUEUgdXZxdW90MiwgdXZyZW0y OworICBTVFlQRSByZWZxdW90LCByZWZyZW07CisgIFVUWVBFIHVyZWZxdW90LCB1cmVmcmVt OworCisgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgYVtpXSA9IGkg KiAoaSA+PiAyKSArIChpID4+IDEpOworICAgICAgdWFbaV0gPSBhW2ldOworICAgICAgYltp XSA9IGk7CisgICAgICB1YltpXSA9IGk7CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkgPCBO OyBpKyspCisgICAgeworICAgICAgLyogQ2FsY3VsYXRlIHJlZmVyZW5jZSB2YWx1ZXMgdXNp bmcgcmVndWxhciBzY2FsYXIgZGl2IGFuZCBtb2QuICAqLworICAgICAgcmVmcXVvdFtpXSA9 IGFbaV0gLyBiW2ldOworICAgICAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnkiKTsKKyAgICAg IHJlZnJlbVtpXSA9IGFbaV0gJSBiW2ldOworICAgICAgdXJlZnF1b3RbaV0gPSB1YVtpXSAv IHViW2ldOworICAgICAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnkiKTsKKyAgICAgIHVyZWZy ZW1baV0gPSB1YVtpXSAlIHViW2ldOworICAgIH0KKworICBfX2FzbV9fICgiIiA6OjogIm1l bW9yeSIpOworICAvKiBTY2FsYXIgd2l0aCBkaXZtb2QuICAqLworICBmb3IgKGkgPSAwOyBp IDwgTjsgaSsrKQorICAgIHsKKyAgICAgIHNxdW90W2ldID0gYVtpXSAvIGJbaV07CisgICAg ICBzcmVtW2ldID0gYVtpXSAlIGJbaV07CisgICAgICB1c3F1b3RbaV0gPSB1YVtpXSAvIHVi W2ldOworICAgICAgdXNyZW1baV0gPSB1YVtpXSAlIHViW2ldOworICAgIH0KKworICBfX2Fz bV9fICgiIiA6OjogIm1lbW9yeSIpOworICAvKiBWZWN0b3JpemVkIHdpdGggZGl2bW9kLiAg Ki8KKyAgdnF1b3QgPSBhIC8gYjsKKyAgdnJlbSA9IGEgJSBiOworICB1dnF1b3QgPSB1YSAv IHViOworICB1dnJlbSA9IHVhICUgdWI7CisKKyAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnki KTsKKyAgLyogVmVjdG9yaXplZCB3aXRoIHNlcGFydGUgZGl2IGFuZCBtb2QuICAqLworICB2 cXVvdDIgPSBhIC8gYjsKKyAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnkiKTsKKyAgdnJlbTIg PSBhICUgYjsKKyAgdXZxdW90MiA9IHVhIC8gdWI7CisgIF9fYXNtX18gKCIiIDo6OiAibWVt b3J5Iik7CisgIHV2cmVtMiA9IHVhICUgdWI7CisKKyNpZmRlZiBERUJVRworI2RlZmluZSBE VU1QKFZBUikgXAorICBfX2J1aWx0aW5fcHJpbnRmICgiJThzOiAiLCAjVkFSKTsgXAorICBm b3IgKGkgPSAwOyBpIDwgTjsgaSsrKSBcCisgICAgX19idWlsdGluX3ByaW50ZiAoIiVkICIs IChpbnQpVkFSW2ldKTsgXAorICBfX2J1aWx0aW5fcHJpbnRmICgiXG4iKTsKKyAgRFVNUCAo cmVmcXVvdCkKKyAgRFVNUCAoc3F1b3QpCisgIERVTVAgKHZxdW90KQorICBEVU1QICh2cXVv dDIpCisgIF9fYnVpbHRpbl9wcmludGYgKCJcbiIpOworICBEVU1QICh1cmVmcXVvdCkKKyAg RFVNUCAodXNxdW90KQorICBEVU1QICh1dnF1b3QpCisgIERVTVAgKHV2cXVvdDIpCisgIF9f YnVpbHRpbl9wcmludGYgKCJcbiIpOworICBEVU1QIChyZWZyZW0pCisgIERVTVAgKHNyZW0p CisgIERVTVAgKHZyZW0pCisgIERVTVAgKHZyZW0yKQorICBfX2J1aWx0aW5fcHJpbnRmICgi XG4iKTsKKyAgRFVNUCAodXJlZnJlbSkKKyAgRFVNUCAodXNyZW0pCisgIERVTVAgKHV2cmVt KQorICBEVU1QICh1dnJlbTIpCisgIF9fYnVpbHRpbl9wcmludGYgKCJcbiIpOworI2VuZGlm CisKKyAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICBpZiAoc3F1b3RbaV0gIT0gcmVm cXVvdFtpXQorCXx8IHZxdW90W2ldICE9IHJlZnF1b3RbaV0KKwl8fCB2cXVvdDJbaV0gIT0g cmVmcXVvdFtpXQorCXx8IHVzcXVvdFtpXSAhPSB1cmVmcXVvdFtpXQorCXx8IHV2cXVvdFtp XSAhPSB1cmVmcXVvdFtpXQorCXx8IHV2cXVvdDJbaV0gIT0gdXJlZnF1b3RbaV0KKwl8fCBz cmVtW2ldICE9IHJlZnJlbVtpXQorCXx8IHZyZW1baV0gIT0gcmVmcmVtW2ldCisJfHwgdnJl bTJbaV0gIT0gcmVmcmVtW2ldCisJfHwgdXNyZW1baV0gIT0gdXJlZnJlbVtpXQorCXx8IHV2 cmVtW2ldICE9IHVyZWZyZW1baV0KKwl8fCB1dnJlbTJbaV0gIT0gdXJlZnJlbVtpXSkKKyAg ICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgcmV0dXJuIDA7Cit9CisKKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2NjRzaTRAcmVsMzJAbG99IDEg fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1v ZHY2NHNpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X19kaXZ2NjRzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY2NHNpM0ByZWwzMkBsb30gMSB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2NjRz aTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fdW1vZHY2NHNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZzaTNAcmVsMzJAbG99IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnNpM0ByZWwzMkBs b30gMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v c2ltZC1tYXRoLTQtY2hhci1ydW4uYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v c2ltZC1tYXRoLTQtY2hhci1ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uYjMyOGEzZWVlYzUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC00LWNoYXItcnVuLmMKQEAgLTAsMCArMSwyIEBA CisvKiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTQtY2hhci5jIgpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNC1j aGFyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC00LWNoYXIu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk5YjhlMjg4NjUK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQt bWF0aC00LWNoYXIuYwpAQCAtMCwwICsxLDkgQEAKKyNkZWZpbmUgVFlQRSB2NjRxaQorI2lu Y2x1ZGUgInNpbWQtbWF0aC00LmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7X19kaXZtb2R2NjRxaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1vZHY2NHFpNEByZWwzMkBsb30g MCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2 NjRxaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge19fdWRpdnY2NHFpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2NjRxaTNAcmVsMzJAbG99IDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHY2NHFp M0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vc2ltZC1tYXRoLTQtbG9uZy1ydW4uYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vc2ltZC1tYXRoLTQtbG9uZy1ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMzRjYmM0Njc3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC00LWxvbmctcnVuLmMKQEAgLTAs MCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTQt bG9uZy5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1k LW1hdGgtNC1sb25nLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC00LWxvbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmZm OWY1NzcxZTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL3NpbWQtbWF0aC00LWxvbmcuYwpAQCAtMCwwICsxLDkgQEAKKyNkZWZpbmUgVFlQRSB2 NjRkaQorI2luY2x1ZGUgInNpbWQtbWF0aC00LmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2NjRkaTRAcmVsMzJAbG99IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdm1vZHY2NGRpNEBy ZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X19kaXZ2NjRkaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY2NGRpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2NjRkaTNAcmVsMzJA bG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19f dW1vZHY2NGRpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTQtcnVuLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL3NpbWQtbWF0aC00LXJ1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi4zYjk4YzBlNzczOAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTQtcnVuLmMKQEAgLTAsMCArMSwy IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTQuYyIKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTQtc2hv cnQtcnVuLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC00LXNo b3J0LXJ1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40Y2Jl Yjk3NDMyZQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vc2ltZC1tYXRoLTQtc2hvcnQtcnVuLmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRv IHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTQtc2hvcnQuYyIKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTQtc2hvcnQuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTQtc2hvcnQuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2FmNGFkMWJlN2UKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC00LXNo b3J0LmMKQEAgLTAsMCArMSw5IEBACisjZGVmaW5lIFRZUEUgdjY0aGkKKyNpbmNsdWRlICJz aW1kLW1hdGgtNC5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e19fZGl2bW9kdjY0aGk0QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZtb2R2NjRoaTRAcmVsMzJAbG99IDAgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djY0aGkzQHJl bDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtfX3VkaXZ2NjRoaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge19fbW9kdjY0aGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2NjRoaTNAcmVsMzJA bG99IDAgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L3NpbWQtbWF0aC00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC00LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM5ZmE2YzU2 Zjk2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9z aW1kLW1hdGgtNC5jCkBAIC0wLDAgKzEsOTkgQEAKKy8qIFRlc3QgdGhhdCBzaWduZWQgZGl2 aXNpb24gYW5kIG1vZHVsdXMgZ2l2ZSB0aGUgY29ycmVjdCByZXN1bHQgd2l0aAorICAgZGlm ZmVyZW50IHZhcmlhdGlvbnMgb2Ygc2lnbmVkbmVzcy4gICovCisKKy8qIFNldHRpbmcgaXQg dGhpcyB3YXkgZW5zdXJlcyB0aGUgcnVuIHRlc3RzIHVzZSB0aGUgc2FtZSBmbGFnIGFzIHRo ZQorICAgY29tcGlsZSB0ZXN0cy4gICovCisjcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzIiKQor Cit0eXBlZGVmIGNoYXIgdjY0cWkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg2NCkp KTsKK3R5cGVkZWYgc2hvcnQgdjY0aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgx MjgpKSk7Cit0eXBlZGVmIGludCB2NjRzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUg KDI1NikpKTsKK3R5cGVkZWYgbG9uZyB2NjRkaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3Np emUgKDUxMikpKTsKKworI2lmbmRlZiBUWVBFCisjZGVmaW5lIFRZUEUgdjY0c2kKKyNlbmRp ZgorI2RlZmluZSBOIDY0CisKK1RZUEUgYTsKK1RZUEUgYjsKKworaW50IG1haW4oKQorewor ICBpbnQgaTsKKyAgVFlQRSBzcXVvdCwgc3JlbTsKKyAgVFlQRSB1c3F1b3QsIHVzcmVtOwor ICBUWVBFIHZxdW90LCB2cmVtOworICBUWVBFIHZxdW90MiwgdnJlbTI7CisgIFRZUEUgcmVm cXVvdCwgcmVmcmVtOworCisgIGZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKQorICAgIHsKKyAg ICAgIGFbaV0gPSBpICogKGkgPj4gMikgKiAoaSYxID8gLTEgOiAxKTsKKyAgICAgIGJbaV0g PSBpICogKGkmMiA/IC0xIDogMSk7CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkgPCBOOyBp KyspCisgICAgeworICAgICAgLyogQ2FsY3VsYXRlIHJlZmVyZW5jZSB2YWx1ZXMgdXNpbmcg cmVndWxhciBzY2FsYXIgZGl2IGFuZCBtb2QuICAqLworICAgICAgcmVmcXVvdFtpXSA9IGFb aV0gLyBiW2ldOworICAgICAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnkiKTsKKyAgICAgIHJl ZnJlbVtpXSA9IGFbaV0gJSBiW2ldOworICAgIH0KKworICBfX2FzbV9fICgiIiA6OjogIm1l bW9yeSIpOworICAvKiBTY2FsYXIgd2l0aCBkaXZtb2QuICAqLworICBmb3IgKGkgPSAwOyBp IDwgTjsgaSsrKQorICAgIHsKKyAgICAgIHNxdW90W2ldID0gYVtpXSAvIGJbaV07CisgICAg ICBzcmVtW2ldID0gYVtpXSAlIGJbaV07CisgICAgfQorCisgIF9fYXNtX18gKCIiIDo6OiAi bWVtb3J5Iik7CisgIC8qIFZlY3Rvcml6ZWQgd2l0aCBkaXZtb2QuICAqLworICB2cXVvdCA9 IGEgLyBiOworICB2cmVtID0gYSAlIGI7CisKKyAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnki KTsKKyAgLyogVmVjdG9yaXplZCB3aXRoIHNlcGFydGUgZGl2IGFuZCBtb2QuICAqLworICB2 cXVvdDIgPSBhIC8gYjsKKyAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnkiKTsKKyAgdnJlbTIg PSBhICUgYjsKKworI2lmZGVmIERFQlVHCisjZGVmaW5lIERVTVAoVkFSKSBcCisgIF9fYnVp bHRpbl9wcmludGYgKCIlOHM6ICIsICNWQVIpOyBcCisgIGZvciAoaSA9IDA7IGkgPCBOOyBp KyspIFwKKyAgICBfX2J1aWx0aW5fcHJpbnRmICgiJWQgIiwgKGludClWQVJbaV0pOyBcCisg IF9fYnVpbHRpbl9wcmludGYgKCJcbiIpOworICBEVU1QIChyZWZxdW90KQorICBEVU1QIChz cXVvdCkKKyAgRFVNUCAodnF1b3QpCisgIERVTVAgKHZxdW90MikKKyAgX19idWlsdGluX3By aW50ZiAoIlxuIik7CisgIERVTVAgKHJlZnJlbSkKKyAgRFVNUCAoc3JlbSkKKyAgRFVNUCAo dnJlbSkKKyAgRFVNUCAodnJlbTIpCisgIF9fYnVpbHRpbl9wcmludGYgKCJcbiIpOworI2Vu ZGlmCisKKyAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICBpZiAoc3F1b3RbaV0gIT0g cmVmcXVvdFtpXQorCXx8IHZxdW90W2ldICE9IHJlZnF1b3RbaV0KKwl8fCB2cXVvdDJbaV0g IT0gcmVmcXVvdFtpXQorCXx8IHNyZW1baV0gIT0gcmVmcmVtW2ldCisJfHwgdnJlbVtpXSAh PSByZWZyZW1baV0KKwl8fCB2cmVtMltpXSAhPSByZWZyZW1baV0pCisgICAgICBfX2J1aWx0 aW5fYWJvcnQgKCk7CisgIHJldHVybiAwOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge19fZGl2bW9kdjY0c2k0QHJlbDMyQGxvfSAxIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZtb2R2NjRzaTRAcmVs MzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e19fZGl2djY0c2kzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2NjRzaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fbW9kdjY0c2kzQHJlbDMyQGxv fSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vt b2R2NjRzaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fZGl2c2kzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZzaTNAcmVsMzJAbG99IDAgfSB9ICov CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01 LTE2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LTE2LmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI0MTU4OWJmY2I1Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1h dGgtNS0xNi5jCkBAIC0wLDAgKzEsOCBAQAorI2RlZmluZSBOIDE2CisjaW5jbHVkZSAic2lt ZC1tYXRoLTUuYyIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtf X2Rpdm1vZHYxNnNpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7X19kaXZ2MTZzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYxNnNpM0ByZWwzMkBs b30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19t b2R2MTZzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fdW1vZHYxNnNpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtMzIuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtMzIuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODAzZTJhOTY2YWUKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LTMyLmMK QEAgLTAsMCArMSw4IEBACisjZGVmaW5lIE4gMzIKKyNpbmNsdWRlICJzaW1kLW1hdGgtNS5j IgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjMy c2k0QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtfX2RpdnYzMnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191ZGl2djMyc2kzQHJlbDMyQGxvfSAwIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHYzMnNpM0By ZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X191bW9kdjMyc2kzQHJlbDMyQGxvfSAwIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS00LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LTQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMDhkZjQ1MTU0YTUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LTQuYwpAQCAtMCwwICsxLDgg QEAKKyNkZWZpbmUgTiA0CisjaW5jbHVkZSAic2ltZC1tYXRoLTUuYyIKKworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2Rpdm1vZHY0c2k0QHJlbDMyQGxvfSAx IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnY0 c2kzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtfX3VkaXZ2NHNpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2NHNpM0ByZWwzMkBsb30gMSB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191bW9kdjRzaTNAcmVs MzJAbG99IDAgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL3NpbWQtbWF0aC01LTguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2lt ZC1tYXRoLTUtOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40 N2FmYjM1YTBhOQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vc2ltZC1tYXRoLTUtOC5jCkBAIC0wLDAgKzEsOCBAQAorI2RlZmluZSBOIDgKKyNp bmNsdWRlICJzaW1kLW1hdGgtNS5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge19fZGl2bW9kdjhzaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djhzaTNAcmVsMzJAbG99IDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY4c2kz QHJlbDMyQGxvfSAwIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtfX21vZHY4c2kzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2OHNpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtY2hh ci0xNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1jaGFy LTE2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlYmY2NDBk YzhjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9z aW1kLW1hdGgtNS1jaGFyLTE2LmMKQEAgLTAsMCArMSwxMSBAQAorI2RlZmluZSBUWVBFIGNo YXIKKyNkZWZpbmUgTiAxNgorI2luY2x1ZGUgInNpbWQtbWF0aC01LmMiCisKKy8qIEMgaW50 ZWdlciBwcm9tb3Rpb24gbWVhbnMgdGhhdCBkaXYgdXNlcyBISW1vZGUgYW5kIGRpdm1vZCBk b2Vzbid0IG1hdGNoLiAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X19kaXZtb2QxNi5pNEByZWwzMkBsb30gMSB7IHhmYWlsICotKi0qIH0gfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djE2aGkzQHJlbDMy QGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtf X2RpdnYxNnFpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7X191ZGl2djE2cWkzQHJlbDMyQGxvfSAwIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHYxNnFpM0ByZWwzMkBsb30g MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191bW9k djE2cWkzQHJlbDMyQGxvfSAwIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1jaGFyLTMyLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWNoYXItMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMDkwNWYzMTA0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWNoYXItMzIuYwpAQCAt MCwwICsxLDExIEBACisjZGVmaW5lIFRZUEUgY2hhcgorI2RlZmluZSBOIDMyCisjaW5jbHVk ZSAic2ltZC1tYXRoLTUuYyIKKworLyogQyBpbnRlZ2VyIHByb21vdGlvbiBtZWFucyB0aGF0 IGRpdiB1c2VzIEhJbW9kZSBhbmQgZGl2bW9kIGRvZXNuJ3QgbWF0Y2guICAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2Rpdm1vZDMyLmk0QHJlbDMyQGxv fSAxIHsgeGZhaWwgKi0qLSogfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X19kaXZ2MzJoaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djMycWkzQHJlbDMyQGxvfSAwIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2MzJx aTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fbW9kdjMycWkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3Vtb2R2MzJxaTNAcmVsMzJAbG99IDAgfSB9ICov CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01 LWNoYXItNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1j aGFyLTQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzcyZmUz N2ZlODEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L3NpbWQtbWF0aC01LWNoYXItNC5jCkBAIC0wLDAgKzEsMTEgQEAKKyNkZWZpbmUgVFlQRSBj aGFyCisjZGVmaW5lIE4gNAorI2luY2x1ZGUgInNpbWQtbWF0aC01LmMiCisKKy8qIEMgaW50 ZWdlciBwcm9tb3Rpb24gbWVhbnMgdGhhdCBkaXYgdXNlcyBISW1vZGUgYW5kIGRpdm1vZCBk b2Vzbid0IG1hdGNoLiAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7X19kaXZtb2Q0Lmk0QHJlbDMyQGxvfSAxIHsgeGZhaWwgKi0qLSogfSB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2NGhpM0ByZWwzMkBs b30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19k aXZ2NHFpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7X191ZGl2djRxaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fbW9kdjRxaTNAcmVsMzJAbG99IDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHY0cWkz QHJlbDMyQGxvfSAwIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtNS1jaGFyLTguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vc2ltZC1tYXRoLTUtY2hhci04LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjUzOWNlOWE3ZjkxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1jaGFyLTguYwpAQCAtMCwwICsxLDEx IEBACisjZGVmaW5lIFRZUEUgY2hhcgorI2RlZmluZSBOIDgKKyNpbmNsdWRlICJzaW1kLW1h dGgtNS5jIgorCisvKiBDIGludGVnZXIgcHJvbW90aW9uIG1lYW5zIHRoYXQgZGl2IHVzZXMg SEltb2RlIGFuZCBkaXZtb2QgZG9lc24ndCBtYXRjaC4gICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kOC5pNEByZWwzMkBsb30gMSB7IHhmYWls ICotKi0qIH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e19fZGl2djhoaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge19fZGl2djhxaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY4cWkzQHJlbDMyQGxvfSAw IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHY4 cWkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtfX3Vtb2R2OHFpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtY2hhci1ydW4tMTYuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtY2hhci1ydW4tMTYu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGYxYWYwODU4Y2EK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQt bWF0aC01LWNoYXItcnVuLTE2LmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9 ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTUtY2hhci0xNi5jIgpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1jaGFyLXJ1bi0zMi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1jaGFyLXJ1bi0zMi5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMjc5NGM4NGE4Mwot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1t YXRoLTUtY2hhci1ydW4tMzIuYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0g Ki8KKyNpbmNsdWRlICJzaW1kLW1hdGgtNS1jaGFyLTMyLmMiCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWNoYXItcnVuLTQuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtY2hhci1ydW4tNC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hOGU0MTg3NzBmZgotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTUtY2hhci1ydW4tNC5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLwor I2luY2x1ZGUgInNpbWQtbWF0aC01LWNoYXItNC5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1jaGFyLXJ1bi04LmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWNoYXItcnVuLTguYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2E2YTk1OTIyY2MKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWNo YXItcnVuLTguYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKyNpbmNs dWRlICJzaW1kLW1hdGgtNS1jaGFyLTguYyIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtY2hhci1ydW4uYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtY2hhci1ydW4uYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDNjYTc3NWY2YTkKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWNoYXItcnVuLmMK QEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1t YXRoLTUtY2hhci5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2dj bi9zaW1kLW1hdGgtNS1jaGFyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3Np bWQtbWF0aC01LWNoYXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uMjMyMWM4MzkwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWNoYXIuYwpAQCAtMCwwICsxLDEwIEBACisjZGVmaW5l IFRZUEUgY2hhcgorI2luY2x1ZGUgInNpbWQtbWF0aC01LmMiCisKKy8qIEMgaW50ZWdlciBw cm9tb3Rpb24gbWVhbnMgdGhhdCBkaXYgdXNlcyBISW1vZGUgYW5kIGRpdm1vZCBkb2Vzbid0 IG1hdGNoLiAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19k aXZtb2R2NjRzaTRAcmVsMzJAbG99IDEgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnY2NGhpM0ByZWwzMkBsb30g MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2 NjRxaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge19fdWRpdnY2NHFpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2NjRxaTNAcmVsMzJAbG99IDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHY2NHFp M0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy0xNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtNS1sb25nLTE2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjIxYTQ0N2M4NGU2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1sb25nLTE2LmMKQEAgLTAsMCAr MSw5IEBACisjZGVmaW5lIFRZUEUgbG9uZworI2RlZmluZSBOIDE2CisjaW5jbHVkZSAic2lt ZC1tYXRoLTUuYyIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtf X2Rpdm1vZHYxNmRpNEByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7X19kaXZ2MTZkaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYxNmRpM0ByZWwzMkBs b30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19t b2R2MTZkaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fdW1vZHYxNmRpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy0zMi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1sb25nLTMyLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyNGI2MDk3OTUzCi0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1h dGgtNS1sb25nLTMyLmMKQEAgLTAsMCArMSw5IEBACisjZGVmaW5lIFRZUEUgbG9uZworI2Rl ZmluZSBOIDMyCisjaW5jbHVkZSAic2ltZC1tYXRoLTUuYyIKKworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2Rpdm1vZHYzMmRpNEByZWwzMkBsb30gMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2MzJkaTNA cmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge19fdWRpdnYzMmRpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2MzJkaTNAcmVsMzJAbG99IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHYzMmRpM0ByZWwz MkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vc2ltZC1tYXRoLTUtbG9uZy00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L3NpbWQtbWF0aC01LWxvbmctNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4xMGNmNzFlNjc3MAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy00LmMKQEAgLTAsMCArMSw5IEBACisj ZGVmaW5lIFRZUEUgbG9uZworI2RlZmluZSBOIDQKKyNpbmNsdWRlICJzaW1kLW1hdGgtNS5j IgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kdjRk aTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fZGl2djRkaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY0ZGkzQHJlbDMyQGxvfSAwIH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX21vZHY0ZGkzQHJlbDMy QGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtf X3Vtb2R2NGRpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy04LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWxvbmctOC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zYjI2NGY2Y2IzZQotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy04LmMKQEAg LTAsMCArMSw5IEBACisjZGVmaW5lIFRZUEUgbG9uZworI2RlZmluZSBOIDgKKyNpbmNsdWRl ICJzaW1kLW1hdGgtNS5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge19fZGl2bW9kdjhkaTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2djhkaTNAcmVsMzJAbG99IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY4ZGkzQHJlbDMy QGxvfSAwIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtf X21vZHY4ZGkzQHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtfX3Vtb2R2OGRpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy1ydW4t MTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy1y dW4tMTYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjA5MTky NTU0MDQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L3NpbWQtbWF0aC01LWxvbmctcnVuLTE2LmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRv IHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTUtbG9uZy0xNi5jIgpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1sb25nLXJ1bi0z Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1sb25nLXJ1 bi0zMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jN2ZmN2Nh NTJiOQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v c2ltZC1tYXRoLTUtbG9uZy1ydW4tMzIuYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8g cnVuIH0gKi8KKyNpbmNsdWRlICJzaW1kLW1hdGgtNS1sb25nLTMyLmMiCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWxvbmctcnVuLTQu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy1ydW4t NC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNmNmMzM0NGVj NAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2lt ZC1tYXRoLTUtbG9uZy1ydW4tNC5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4g fSAqLworI2luY2x1ZGUgInNpbWQtbWF0aC01LWxvbmctNC5jIgpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1sb25nLXJ1bi04LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWxvbmctcnVuLTguYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODVmZGY2ZmZlMWIKLS0t IC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC01LWxvbmctcnVuLTguYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8K KyNpbmNsdWRlICJzaW1kLW1hdGgtNS1sb25nLTguYyIKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy1ydW4uYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtbG9uZy1ydW4uYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjk0OGZhMDhjN2UKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWxvbmct cnVuLmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAi c2ltZC1tYXRoLTUtbG9uZy5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtNS1sb25nLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL3NpbWQtbWF0aC01LWxvbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZGYxNWI3NGNjYjgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LWxvbmcuYwpAQCAtMCwwICsxLDggQEAKKyNk ZWZpbmUgVFlQRSBsb25nCisjaW5jbHVkZSAic2ltZC1tYXRoLTUuYyIKKworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2Rpdm1vZHY2NGRpNEByZWwzMkBsb30g MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2 NjRkaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge19fdWRpdnY2NGRpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2NjRkaTNAcmVsMzJAbG99IDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHY2NGRp M0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vc2ltZC1tYXRoLTUtcnVuLTE2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3NpbWQtbWF0aC01LXJ1bi0xNi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4yMDkxOTI1NTQwNAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtcnVuLTE2LmMKQEAgLTAsMCArMSwy IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisjaW5jbHVkZSAic2ltZC1tYXRoLTUtbG9uZy0x Ni5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1h dGgtNS1ydW4tMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTUtcnVuLTMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3 ZmY3Y2E1MmI5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9zaW1kLW1hdGgtNS1ydW4tMzIuYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8g cnVuIH0gKi8KKyNpbmNsdWRlICJzaW1kLW1hdGgtNS1sb25nLTMyLmMiCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXJ1bi00LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXJ1bi00LmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM2Y2YzMzQ0ZWM0Ci0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1y dW4tNC5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworI2luY2x1ZGUg InNpbWQtbWF0aC01LWxvbmctNC5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1ydW4tOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtNS1ydW4tOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi44NWZkZjZmZmUxYgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtcnVuLTguYwpAQCAtMCwwICsxLDIg QEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKyNpbmNsdWRlICJzaW1kLW1hdGgtNS1sb25nLTgu YyIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTUtcnVuLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXJ1 bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kZTY1MDRjNzM3 YwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2lt ZC1tYXRoLTUtcnVuLmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisj aW5jbHVkZSAic2ltZC1tYXRoLTUuYyIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vc2ltZC1tYXRoLTUtc2hvcnQtMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vc2ltZC1tYXRoLTUtc2hvcnQtMTYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNWQ1OTUzYmM2MDQKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXNob3J0LTE2LmMKQEAg LTAsMCArMSwxMSBAQAorI2RlZmluZSBUWVBFIHNob3J0CisjZGVmaW5lIE4gMTYKKyNpbmNs dWRlICJzaW1kLW1hdGgtNS5jIgorCisvKiBDIGludGVnZXIgcHJvbW90aW9uIG1lYW5zIHRo YXQgZGl2IHVzZXMgU0ltb2RlIGFuZCBkaXZtb2QgZG9lc24ndCBtYXRjaC4gICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fZGl2bW9kMTYuaTRAcmVsMzJA bG99IDEgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtfX2RpdnYxNnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2MTZoaTNAcmVsMzJAbG99IDAg fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYx NmhpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7X19tb2R2MTZoaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHYxNmhpM0ByZWwzMkBsb30gMCB9IH0g Ki8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTUtc2hvcnQtMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRo LTUtc2hvcnQtMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u YmY4YTNhZGRmYzQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3NpbWQtbWF0aC01LXNob3J0LTMyLmMKQEAgLTAsMCArMSwxMSBAQAorI2RlZmlu ZSBUWVBFIHNob3J0CisjZGVmaW5lIE4gMzIKKyNpbmNsdWRlICJzaW1kLW1hdGgtNS5jIgor CisvKiBDIGludGVnZXIgcHJvbW90aW9uIG1lYW5zIHRoYXQgZGl2IHVzZXMgU0ltb2RlIGFu ZCBkaXZtb2QgZG9lc24ndCBtYXRjaC4gICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fZGl2bW9kMzIuaTRAcmVsMzJAbG99IDEgeyB4ZmFpbCAqLSotKiB9 IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnYz MnNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7X19kaXZ2MzJoaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnYzMmhpM0ByZWwzMkBsb30gMCB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2MzJoaTNA cmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge19fdW1vZHYzMmhpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtc2hvcnQtNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1zaG9ydC00LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEyY2I0NmM4NjQ2Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1zaG9y dC00LmMKQEAgLTAsMCArMSwxMSBAQAorI2RlZmluZSBUWVBFIHNob3J0CisjZGVmaW5lIE4g NAorI2luY2x1ZGUgInNpbWQtbWF0aC01LmMiCisKKy8qIEMgaW50ZWdlciBwcm9tb3Rpb24g bWVhbnMgdGhhdCBkaXYgdXNlcyBTSW1vZGUgYW5kIGRpdm1vZCBkb2Vzbid0IG1hdGNoLiAg Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2Q0Lmk0 QHJlbDMyQGxvfSAxIHsgeGZhaWwgKi0qLSogfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2NHNpM0ByZWwzMkBsb30gMSB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2NGhpM0ByZWwzMkBs b30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191 ZGl2djRoaTNAcmVsMzJAbG99IDAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge19fbW9kdjRoaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHY0aGkzQHJlbDMyQGxvfSAwIH0g fSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1h dGgtNS1zaG9ydC04LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0 aC01LXNob3J0LTguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZmEzNDNlNTI2MmUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3NpbWQtbWF0aC01LXNob3J0LTguYwpAQCAtMCwwICsxLDExIEBACisjZGVmaW5l IFRZUEUgc2hvcnQKKyNkZWZpbmUgTiA4CisjaW5jbHVkZSAic2ltZC1tYXRoLTUuYyIKKwor LyogQyBpbnRlZ2VyIHByb21vdGlvbiBtZWFucyB0aGF0IGRpdiB1c2VzIFNJbW9kZSBhbmQg ZGl2bW9kIGRvZXNuJ3QgbWF0Y2guICAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtfX2Rpdm1vZDguaTRAcmVsMzJAbG99IDEgeyB4ZmFpbCAqLSotKiB9IH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX2RpdnY4c2kz QHJlbDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtfX2RpdnY4aGkzQHJlbDMyQGxvfSAwIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2OGhpM0ByZWwzMkBsb30gMCB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19tb2R2OGhpM0ByZWwzMkBs b30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X191 bW9kdjhoaTNAcmVsMzJAbG99IDAgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXNob3J0LXJ1bi0xNi5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1zaG9ydC1ydW4tMTYuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2ZjOTQ2ZTJlMDkKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXNo b3J0LXJ1bi0xNi5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworI2lu Y2x1ZGUgInNpbWQtbWF0aC01LXNob3J0LTE2LmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXNob3J0LXJ1bi0zMi5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1zaG9ydC1ydW4tMzIuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzRiMWQ3NWZhOGUKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01 LXNob3J0LXJ1bi0zMi5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLwor I2luY2x1ZGUgInNpbWQtbWF0aC01LXNob3J0LTMyLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXNob3J0LXJ1bi00LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LXNob3J0LXJ1bi00LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA5Mzg1Yzc4YmM0Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgt NS1zaG9ydC1ydW4tNC5jCkBAIC0wLDAgKzEsMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLwor I2luY2x1ZGUgInNpbWQtbWF0aC01LXNob3J0LTQuYyIKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtc2hvcnQtcnVuLTguYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtc2hvcnQtcnVuLTguYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWRlNGQyNjMxYjMKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01 LXNob3J0LXJ1bi04LmMKQEAgLTAsMCArMSwyIEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisj aW5jbHVkZSAic2ltZC1tYXRoLTUtc2hvcnQtOC5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1zaG9ydC1ydW4uYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtc2hvcnQtcnVuLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlMGM0OTBmZGQ5Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1zaG9y dC1ydW4uYwpAQCAtMCwwICsxLDIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKyNpbmNsdWRl ICJzaW1kLW1hdGgtNS1zaG9ydC5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9zaW1kLW1hdGgtNS1zaG9ydC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9zaW1kLW1hdGgtNS1zaG9ydC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi44NGNkYzliNWZkZAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vc2ltZC1tYXRoLTUtc2hvcnQuYwpAQCAtMCwwICsxLDEw IEBACisjZGVmaW5lIFRZUEUgc2hvcnQKKyNpbmNsdWRlICJzaW1kLW1hdGgtNS5jIgorCisv KiBDIGludGVnZXIgcHJvbW90aW9uIG1lYW5zIHRoYXQgZGl2IHVzZXMgU0ltb2RlIGFuZCBk aXZtb2QgZG9lc24ndCBtYXRjaC4gICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge19fZGl2bW9kdjY0c2k0QHJlbDMyQGxvfSAxIHsgeGZhaWwgKi0qLSogfSB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2NjRz aTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fZGl2djY0aGkzQHJlbDMyQGxvfSAwIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtfX3VkaXZ2NjRoaTNAcmVsMzJAbG99IDAgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fbW9kdjY0aGkzQHJl bDMyQGxvfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtfX3Vtb2R2NjRoaTNAcmVsMzJAbG99IDAgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL3NpbWQtbWF0aC01LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjI2ZTk3MDcwYmY5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9zaW1kLW1hdGgtNS5jCkBAIC0wLDAgKzEsODggQEAKKy8q IFRlc3QgdGhhdCB0aGUgYXV0by12ZWN0b3JpemVyIHVzZXMgdGhlIGxpYmdjYyB2ZWN0b3Jp emVkIGRpdmlzaW9uIGFuZAorICAgbW9kdWx1cyBmdW5jdGlvbnMuICAqLworCisvKiBTZXR0 aW5nIGl0IHRoaXMgd2F5IGVuc3VyZXMgdGhlIHJ1biB0ZXN0cyB1c2UgdGhlIHNhbWUgZmxh ZyBhcyB0aGUKKyAgIGNvbXBpbGUgdGVzdHMuICAqLworI3ByYWdtYSBHQ0Mgb3B0aW1pemUo Ik8yIikKKworI2lmbmRlZiBUWVBFCisjZGVmaW5lIFRZUEUgaW50CisjZW5kaWYKKyNpZm5k ZWYgTgorI2RlZmluZSBOIDY0CisjZW5kaWYKKworVFlQRSBhW05dOworVFlQRSBiW05dOwor CitpbnQgbWFpbigpCit7CisgIGludCBpOworICBUWVBFIHF1b3RbTl0sIHJlbVtOXTsKKyAg VFlQRSBxdW90MltOXSwgcmVtMltOXTsKKyAgVFlQRSByZWZxdW90W05dLCByZWZyZW1bTl07 CisKKyAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAgICB7CisgICAgICBhW2ldID0gaSAq IChpID4+IDIpICsgKGkgPj4gMSk7CisgICAgICBiW2ldID0gaTsKKyAgICB9CisgIF9fYXNt X18gKCIiIDo6OiAibWVtb3J5Iik7CisKKyAgLyogVmVjdG9yIGRpdm1vZC4gICovCisgIGZv ciAoaSA9IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgcXVvdFtpXSA9IChUWVBFKWFb aV0gLyAoVFlQRSliW2ldOworICAgICAgcmVtW2ldID0gKFRZUEUpYVtpXSAlIChUWVBFKWJb aV07CisgICAgfQorICBfX2FzbV9fICgiIiA6OjogIm1lbW9yeSIpOworCisgIC8qIFZlY3Rv ciBkaXYuICAqLworICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQorICAgIHF1b3QyW2ldID0g KFRZUEUpYVtpXSAvIChUWVBFKWJbaV07CisgIF9fYXNtX18gKCIiIDo6OiAibWVtb3J5Iik7 CisKKyAgLyogVmVjdG9yIG1vZC4gICovCisgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspCisg ICAgcmVtMltpXSA9IChUWVBFKWFbaV0gJSAoVFlQRSliW2ldOworCisgIC8qIENhbGN1bGF0 ZSByZWZlcmVuY2UgdmFsdWVzIHdpdGggbm8gdmVjdG9yaXphdGlvbi4gICovCisgIGZvciAo aSA9IDA7IGkgPCBOOyBpKyspCisgICAgeworICAgICAgcmVmcXVvdFtpXSA9IChUWVBFKWFb aV0gLyAoVFlQRSliW2ldOworICAgICAgX19hc21fXyAoIiIgOjo6ICJtZW1vcnkiKTsKKyAg ICAgIHJlZnJlbVtpXSA9IChUWVBFKWFbaV0gJSAoVFlQRSliW2ldOworICAgIH0KKworI2lm ZGVmIERFQlVHCisjZGVmaW5lIERVTVAoVkFSKSBcCisgIF9fYnVpbHRpbl9wcmludGYgKCIl OHM6ICIsICNWQVIpOyBcCisgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspIFwKKyAgICBfX2J1 aWx0aW5fcHJpbnRmICgiJWQgIiwgKGludClWQVJbaV0pOyBcCisgIF9fYnVpbHRpbl9wcmlu dGYgKCJcbiIpOworICBEVU1QIChyZWZxdW90KQorICBEVU1QIChxdW90KQorICBEVU1QIChx dW90MikKKyAgX19idWlsdGluX3ByaW50ZiAoIlxuIik7CisgIERVTVAgKHJlZnJlbSkKKyAg RFVNUCAocmVtKQorICBEVU1QIChyZW0yKQorI2VuZGlmCisKKyAgZm9yIChpID0gMDsgaSA8 IE47IGkrKykKKyAgICBpZiAocXVvdFtpXSAhPSByZWZxdW90W2ldCisJfHwgcXVvdDJbaV0g IT0gcmVmcXVvdFtpXQorCXx8IHJlbVtpXSAhPSByZWZyZW1baV0KKwl8fCByZW0yW2ldICE9 IHJlZnJlbVtpXSkKKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgcmV0dXJuIDA7Cit9 CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZtb2R2NjRz aTRAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge19fdWRpdm1vZHY2NHNpNEByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZ2NjRzaTNAcmVsMzJAbG99IDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19fdWRpdnY2NHNp M0ByZWwzMkBsb30gMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7X19tb2R2NjRzaTNAcmVsMzJAbG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge19fdW1vZHY2NHNpM0ByZWwzMkBsb30gMCB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7X19kaXZzaTNAcmVsMzJA bG99IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge19f dWRpdnNpM0ByZWwzMkBsb30gMCB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv bGliL3RhcmdldC1zdXBwb3J0cy5leHAgYi9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3Vw cG9ydHMuZXhwCmluZGV4IDk1Y2JiMWFmYTE2Li4yZWIzNzM4ZDkyMSAxMDA2NDQKLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorKysgYi9nY2MvdGVzdHN1 aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwCkBAIC04NDMyLDggKzg0MzIsOSBAQCBwcm9j IGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfdmVjdF9sb25nX211bHQgeyB9IHsKIAogcHJvYyBj aGVja19lZmZlY3RpdmVfdGFyZ2V0X3ZlY3RfaW50X21vZCB7IH0gewogICAgIHJldHVybiBb Y2hlY2tfY2FjaGVkX2VmZmVjdGl2ZV90YXJnZXRfaW5kZXhlZCB2ZWN0X2ludF9tb2Qgewot ICAgICAgZXhwciB7IFtpc3RhcmdldCBwb3dlcnBjKi0qLSpdCi0JICAgICAmJiBbY2hlY2tf ZWZmZWN0aXZlX3RhcmdldF9oYXNfYXJjaF9wd3IxMF0gfX1dCisgICAgICBleHByIHsgKFtp c3RhcmdldCBwb3dlcnBjKi0qLSpdCisJICAgICAgJiYgW2NoZWNrX2VmZmVjdGl2ZV90YXJn ZXRfaGFzX2FyY2hfcHdyMTBdKQorICAgICAgICAgICAgIHx8IFtpc3RhcmdldCBhbWRnY24t Ki0qXSB9fV0KIH0KIAogIyBSZXR1cm4gMSBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIHZlY3Rv ciBldmVuL29kZCBlbGVtZW50cyBleHRyYWN0aW9uLCAwIG90aGVyd2lzZS4KQEAgLTExNTY2 LDcgKzExNTY3LDggQEAgcHJvYyBjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2Rpdm1vZCB7IH0g ewogICAgICNUT0RPOiBBZGQgY2hlY2tzIGZvciBhbGwgdGFyZ2V0cyB0aGF0IGhhdmUgZWl0 aGVyIGhhcmR3YXJlIGRpdm1vZCBpbnNuCiAgICAgIyBvciBkZWZpbmUgbGliZnVuYyBmb3Ig ZGl2bW9kLgogICAgIGlmIHsgW2lzdGFyZ2V0IGFybSotKi0qXQotCSB8fCBbaXN0YXJnZXQg aT84Ni0qLSpdIHx8IFtpc3RhcmdldCB4ODZfNjQtKi0qXSB9IHsKKwkgfHwgW2lzdGFyZ2V0 IGk/ODYtKi0qXSB8fCBbaXN0YXJnZXQgeDg2XzY0LSotKl0KKyAgICAgICAgIHx8IFtpc3Rh cmdldCBhbWRnY24tKi0qXSB9IHsKIAlyZXR1cm4gMQogICAgIH0KICAgICByZXR1cm4gMApk aWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1nZW5lcmljLmNjIGIvZ2NjL3RyZWUtdmVjdC1n ZW5lcmljLmNjCmluZGV4IDQ0NWRhNTMyOTJlLi4xYzZmYTUwMWE1ZCAxMDA2NDQKLS0tIGEv Z2NjL3RyZWUtdmVjdC1nZW5lcmljLmNjCisrKyBiL2djYy90cmVlLXZlY3QtZ2VuZXJpYy5j YwpAQCAtNDQsNiArNDQsNyBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQogI2luY2x1ZGUgImdpbXBsZS1mb2xkLmgiCiAjaW5jbHVkZSAi Z2ltcGxlLW1hdGNoLmgiCiAjaW5jbHVkZSAicmVjb2cuaCIJCS8qIEZJWE1FOiBmb3IgaW5z bl9kYXRhICovCisjaW5jbHVkZSAib3B0YWJzLWxpYmZ1bmNzLmgiCiAKIAogLyogQnVpbGQg YSB0ZXJuYXJ5IG9wZXJhdGlvbiBhbmQgZ2ltcGxpZnkgaXQuICBFbWl0IGNvZGUgYmVmb3Jl IEdTSS4KQEAgLTE3NDMsNyArMTc0NCw4IEBAIGdldF9jb21wdXRlX3R5cGUgKGVudW0gdHJl ZV9jb2RlIGNvZGUsIG9wdGFiIG9wLCB0cmVlIHR5cGUpCiAgICAgICBtYWNoaW5lX21vZGUg Y29tcHV0ZV9tb2RlID0gVFlQRV9NT0RFIChjb21wdXRlX3R5cGUpOwogICAgICAgaWYgKFZF Q1RPUl9NT0RFX1AgKGNvbXB1dGVfbW9kZSkpCiAJewotCSAgaWYgKG9wICYmIG9wdGFiX2hh bmRsZXIgKG9wLCBjb21wdXRlX21vZGUpICE9IENPREVfRk9SX25vdGhpbmcpCisJICBpZiAo b3AgJiYgKG9wdGFiX2hhbmRsZXIgKG9wLCBjb21wdXRlX21vZGUpICE9IENPREVfRk9SX25v dGhpbmcKKwkJICAgICB8fCBvcHRhYl9saWJmdW5jIChvcCwgY29tcHV0ZV9tb2RlKSkpCiAJ ICAgIHJldHVybiBjb21wdXRlX3R5cGU7CiAJICBpZiAoY29kZSA9PSBNVUxUX0hJR0hQQVJU X0VYUFIKIAkgICAgICAmJiBjYW5fbXVsdF9oaWdocGFydF9wIChjb21wdXRlX21vZGUsCmRp ZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjIGIvZ2NjL3RyZWUtdmVjdC1zdG10 cy5jYwppbmRleCAyNzI4MzlhNjU4Yy4uNWY0OTBhOGQyODAgMTAwNjQ0Ci0tLSBhL2djYy90 cmVlLXZlY3Qtc3RtdHMuY2MKKysrIGIvZ2NjL3RyZWUtdmVjdC1zdG10cy5jYwpAQCAtNTUs NiArNTUsNyBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYg bm90IHNlZQogI2luY2x1ZGUgImdpbXBsZS1mb2xkLmgiCiAjaW5jbHVkZSAicmVncy5oIgog I2luY2x1ZGUgImF0dHJpYnMuaCIKKyNpbmNsdWRlICJvcHRhYnMtbGliZnVuY3MuaCIKIAog LyogRm9yIGxhbmdfaG9va3MudHlwZXMudHlwZV9mb3JfbW9kZS4gICovCiAjaW5jbHVkZSAi bGFuZ2hvb2tzLmgiCkBAIC02Mzc3LDggKzYzNzgsOCBAQCB2ZWN0b3JpemFibGVfb3BlcmF0 aW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJu byBvcHRhYi5cbiIpOwogCSAgcmV0dXJuIGZhbHNlOwogCX0KLSAgICAgIHRhcmdldF9zdXBw b3J0X3AgPSAob3B0YWJfaGFuZGxlciAob3B0YWIsIHZlY19tb2RlKQotCQkJICAhPSBDT0RF X0ZPUl9ub3RoaW5nKTsKKyAgICAgIHRhcmdldF9zdXBwb3J0X3AgPSAob3B0YWJfaGFuZGxl ciAob3B0YWIsIHZlY19tb2RlKSAhPSBDT0RFX0ZPUl9ub3RoaW5nCisJCQkgIHx8IG9wdGFi X2xpYmZ1bmMgKG9wdGFiLCB2ZWNfbW9kZSkpOwogICAgIH0KIAogICBib29sIHVzaW5nX2Vt dWxhdGVkX3ZlY3RvcnNfcCA9IHZlY3RfZW11bGF0ZWRfdmVjdG9yX3AgKHZlY3R5cGUpOwpk aWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9nY24vYW1kZ2NuX3ZlY2xpYi5oIGIvbGliZ2Nj L2NvbmZpZy9nY24vYW1kZ2NuX3ZlY2xpYi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zYmJkNzFlZDA3NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdjYy9j b25maWcvZ2NuL2FtZGdjbl92ZWNsaWIuaApAQCAtMCwwICsxLDMxNCBAQAorLyoKKyAqIENv cHlyaWdodCAyMDIzIFNpZW1lbnMKKyAqCisgKiBUaGUgYXV0aG9ycyBoZXJlYnkgZ3JhbnQg cGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSwKKyAqIGFuZCBs aWNlbnNlIHRoaXMgc29mdHdhcmUgYW5kIGl0cyBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVy cG9zZSwgcHJvdmlkZWQKKyAqIHRoYXQgZXhpc3RpbmcgY29weXJpZ2h0IG5vdGljZXMgYXJl IHJldGFpbmVkIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgdGhpcworICogbm90aWNlIGlzIGlu Y2x1ZGVkIHZlcmJhdGltIGluIGFueSBkaXN0cmlidXRpb25zLiAgTm8gd3JpdHRlbiBhZ3Jl ZW1lbnQsCisgKiBsaWNlbnNlLCBvciByb3lhbHR5IGZlZSBpcyByZXF1aXJlZCBmb3IgYW55 IG9mIHRoZSBhdXRob3JpemVkIHVzZXMuCisgKiBNb2RpZmljYXRpb25zIHRvIHRoaXMgc29m dHdhcmUgbWF5IGJlIGNvcHlyaWdodGVkIGJ5IHRoZWlyIGF1dGhvcnMKKyAqIGFuZCBuZWVk IG5vdCBmb2xsb3cgdGhlIGxpY2Vuc2luZyB0ZXJtcyBkZXNjcmliZWQgaGVyZSwgcHJvdmlk ZWQgdGhhdAorICogdGhlIG5ldyB0ZXJtcyBhcmUgY2xlYXJseSBpbmRpY2F0ZWQgb24gdGhl IGZpcnN0IHBhZ2Ugb2YgZWFjaCBmaWxlIHdoZXJlCisgKiB0aGV5IGFwcGx5LgorICovCisK Ky8qIE1hY3JvIGxpYnJhcnkgdXNlZCB0byBoZWxwIGR1cmluZyBjb252ZXJzaW9uIG9mIHNj YWxhciBtYXRoIGZ1bmN0aW9ucyB0bworICAgdmVjdG9yaXplZCBTSU1EIGVxdWl2YWxlbnRz IG9uIEFNRCBHQ04uICAqLworCit0eXBlZGVmIHVuaW9uIHsKKyAgdjJzZiB0X3Yyc2Y7Cisg IHY0c2YgdF92NHNmOworICB2OHNmIHRfdjhzZjsKKyAgdjE2c2YgdF92MTZzZjsKKyAgdjMy c2YgdF92MzJzZjsKKyAgdjY0c2YgdF92NjRzZjsKKworICB2MmRmIHRfdjJkZjsKKyAgdjRk ZiB0X3Y0ZGY7CisgIHY4ZGYgdF92OGRmOworICB2MTZkZiB0X3YxNmRmOworICB2MzJkZiB0 X3YzMmRmOworICB2NjRkZiB0X3Y2NGRmOworCisgIHY2NHFpIHRfdjY0cWk7CisgIHY2NGhp IHRfdjY0aGk7CisKKyAgdjJzaSB0X3Yyc2k7CisgIHY0c2kgdF92NHNpOworICB2OHNpIHRf djhzaTsKKyAgdjE2c2kgdF92MTZzaTsKKyAgdjMyc2kgdF92MzJzaTsKKyAgdjY0c2kgdF92 NjRzaTsKKworICB2NjR1c2kgdF92NjR1c2k7CisKKyAgdjJkaSB0X3YyZGk7CisgIHY0ZGkg dF92NGRpOworICB2OGRpIHRfdjhkaTsKKyAgdjE2ZGkgdF92MTZkaTsKKyAgdjMyZGkgdF92 MzJkaTsKKyAgdjY0ZGkgdF92NjRkaTsKK30gdmVjdG9yX3VuaW9uOworCisvKiBDYXN0IGJl dHdlZW4gdmVjdG9ycyB3aXRoIGEgZGlmZmVyZW50IG51bWJlciBvZiBlbGVtZW50cywgb3Ig dHlwZS4gICovCisKKyNkZWZpbmUgVkdQUl9DQVNUKHRvX3QsIGZyb20pIFwKKyh7IFwKKyAg dG9fdCBfX3JlczsgXAorICBfX2FzbV9fICgiIiA6ICI9diIoX19yZXMpIDogIjAiKGZyb20p KTsgXAorICBfX3JlczsgXAorfSkKKworI2RlZmluZSBQQUNLX1NJX1BBSVIobG93LCBoaWdo KSBcCisoeyBcCisgIHY2NHVkaSBfX3JlczsgXAorICBhc20gKCJ2X21vdl9iMzJcdCVMMCwg JTFcblx0IiBcCisgICAgICAgInZfbW92X2IzMlx0JUgwLCAlMiIgXAorICAgICAgIDogIj0m diIoX19yZXMpIDogInYwIihsb3cpLCAidiIoaGlnaCksICJlIigtMUwpKTsgXAorICBfX3Jl czsgXAorIH0pCisKKyNkZWZpbmUgVU5QQUNLX1NJX0xPVyh0b190LCBwYWlyKSBWR1BSX0NB U1QodG9fdCwgcGFpcikKKyNkZWZpbmUgVU5QQUNLX1NJX0hJR0godG9fdCwgcGFpcikgXAor KHsgXAorICB0b190IF9fcmVzOyBcCisgIGFzbSAoInZfbW92X2IzMlx0JTAsICVIMSIgOiAi PXYiKF9fcmVzKSA6ICJ2IihwYWlyKSwgImUiKC0xTCkpOyBcCisgIF9fcmVzOyBcCisgfSkK KworI2RlZmluZSBQQUNLX0RJX1BBSVIobG93LCBoaWdoKSBcCisoeyBcCisgIHY2NHV0aSBf X3JlczsgXAorICBhc20gKCJ2X21vdl9iMzJcdCVMMCwgJUwxXG5cdCIgXAorICAgICAgICJ2 X21vdl9iMzJcdCVIMCwgJUgxXG5cdCIgXAorICAgICAgICJ2X21vdl9iMzJcdCVKMCwgJUwy XG5cdCIgXAorICAgICAgICJ2X21vdl9iMzJcdCVLMCwgJUgyIiBcCisgICAgICAgOiAiPSZ2 IihfX3JlcykgOiAidjAiKGxvdyksICJ2IihoaWdoKSwgImUiKC0xTCkpOyBcCisgIF9fcmVz OyBcCisgfSkKKworI2RlZmluZSBVTlBBQ0tfRElfTE9XKHRvX3QsIHBhaXIpIFZHUFJfQ0FT VCh0b190LCBwYWlyKQorI2RlZmluZSBVTlBBQ0tfRElfSElHSCh0b190LCBwYWlyKSBcCiso eyBcCisgIHRvX3QgX19yZXM7IFwKKyAgYXNtICgidl9tb3ZfYjMyXHQlTDAsICVKMVxuXHQi IFwKKyAgICAgICAidl9tb3ZfYjMyXHQlSDAsICVLMSIgOiAiPXYiKF9fcmVzKSA6ICJ2Iihw YWlyKSwgImUiKC0xTCkpOyBcCisgIF9fcmVzOyBcCisgfSkKKworI2RlZmluZSBOT19DT05E IF9fbWFzaworCisvKiBOb3RlIC0gX19tYXNrIGlzIF9ub3RfIGFjY291bnRlZCBmb3IgaW4g VkVDVE9SX01FUkdFISAgKi8KKyNkZWZpbmUgVkVDVE9SX01FUkdFKHZlYzEsIHZlYzIsIGNv bmQpIFwKKyh7IFwKKyAgX1N0YXRpY19hc3NlcnQgKF9fYnVpbHRpbl90eXBlc19jb21wYXRp YmxlX3AgKHR5cGVvZiAodmVjMSksIHR5cGVvZiAodmVjMikpKTsgXAorICB1bmlvbiB7IFwK KyAgICB0eXBlb2YgKHZlYzEpIHZhbDsgXAorICAgIHY2NHFpIHRfdjY0cWk7IFwKKyAgICB2 NjRoaSB0X3Y2NGhpOyBcCisgICAgdjY0c2kgdF92NjRzaTsgXAorICAgIHY2NGRpIHRfdjY0 ZGk7IFwKKyAgfSBfX3ZlYzEsIF9fdmVjMiwgX19yZXM7IFwKKyAgX192ZWMxLnZhbCA9ICh2 ZWMxKTsgXAorICBfX3ZlYzIudmFsID0gKHZlYzIpOyBcCisgIF9fYnVpbHRpbl9jaG9vc2Vf ZXhwciAoIFwKKyAgICAgICAgc2l6ZW9mICh2ZWMxKSA9PSBzaXplb2YgKHY2NHNpKSwgXAor ICAgICAgICAoeyBcCisgICAgICAgICAgdjY0c2kgX19iaXRtYXNrID0gX19idWlsdGluX2Nv bnZlcnR2ZWN0b3IgKChjb25kKSwgdjY0c2kpOyBcCisgICAgICAgICAgX19yZXMudF92NjRz aSA9IChfX3ZlYzEudF92NjRzaSAmIF9fYml0bWFzaykgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICB8IChfX3ZlYzIudF92NjRzaSAmIH5fX2JpdG1hc2spOyBcCisgICAgICAgIH0p LCBcCisJX19idWlsdGluX2Nob29zZV9leHByICggXAorCSAgc2l6ZW9mICh2ZWMxKSA9PSBz aXplb2YgKHY2NGhpKSwgXAorCSAgKHsgXAorCSAgICB2NjRoaSBfX2JpdG1hc2sgPSBfX2J1 aWx0aW5fY29udmVydHZlY3RvciAoKGNvbmQpLCB2NjRoaSk7IFwKKwkgICAgX19yZXMudF92 NjRoaSA9IChfX3ZlYzEudF92NjRoaSAmIF9fYml0bWFzaykgXAorCQkJICAgIHwgKF9fdmVj Mi50X3Y2NGhpICYgfl9fYml0bWFzayk7IFwKKwkgICB9KSwgXAorCSAgIF9fYnVpbHRpbl9j aG9vc2VfZXhwciAoIFwKKwkgICAgIHNpemVvZiAodmVjMSkgPT0gc2l6ZW9mICh2NjRxaSks IFwKKwkgICAgICh7IFwKKwkgICAgIHY2NHFpIF9fYml0bWFzayA9IF9fYnVpbHRpbl9jb252 ZXJ0dmVjdG9yICgoY29uZCksIHY2NHFpKTsgXAorCSAgICAgX19yZXMudF92NjRxaSA9IChf X3ZlYzEudF92NjRxaSAmIF9fYml0bWFzaykgXAorCQkJICAgICAgfCAoX192ZWMyLnRfdjY0 cWkgJiB+X19iaXRtYXNrKTsgXAorCSAgICAgfSksIFwKKwkgICAgICh7IFwKKwkgICAgICB2 NjRkaSBfX2JpdG1hc2sgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvciAoKGNvbmQpLCB2NjRk aSk7IFwKKwkgICAgICBfX3Jlcy50X3Y2NGRpID0gKF9fdmVjMS50X3Y2NGRpICYgX19iaXRt YXNrKSBcCisJCQkgICAgICB8IChfX3ZlYzIudF92NjRkaSAmIH5fX2JpdG1hc2spOyBcCisJ ICAgICAgfSkpKSk7IFwKKyAgX19yZXMudmFsOyBcCit9KQorCisjZGVmaW5lIFZFQ1RPUl9D T05EX01PVkUodmFyLCB2YWwsIGNvbmQpIFwKK2RvIHsgXAorICBfU3RhdGljX2Fzc2VydCAo X19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCAodHlwZW9mICh2YXIpLCB0eXBlb2YgKHZh bCkpKTsgXAorICBfX2F1dG9fdHlwZSBfX2NvbmQgPSBfX2J1aWx0aW5fY29udmVydHZlY3Rv ciAoKGNvbmQpLCB0eXBlb2YgKF9fbWFzaykpOyBcCisgIHZhciA9IFZFQ1RPUl9NRVJHRSAo KHZhbCksIHZhciwgX19jb25kICYgX19tYXNrKTsgXAorfSB3aGlsZSAoMCkKKworI2RlZmlu ZSBWRUNUT1JfSUYoY29uZCwgY29uZF92YXIpIFwKK3sgXAorICBfX2F1dG9fdHlwZSBjb25k X3ZhciA9IChjb25kKTsgXAorICBfX2F1dG9fdHlwZSBfX2ludl9jb25kIF9fYXR0cmlidXRl X18oKHVudXNlZCkpID0gfmNvbmRfdmFyOyBcCisgIGlmICghQUxMX1pFUk9FU19QIChjb25k X3ZhcikpIFwKKyAgeworCisjZGVmaW5lIFZFQ1RPUl9FTFNFSUYoY29uZCwgY29uZF92YXIp IFwKKyAgfSBcCisgIGNvbmRfdmFyID0gX19pbnZfY29uZCAmIChjb25kKTsgXAorICBfX2lu dl9jb25kICY9IH4oY29uZCk7IFwKKyAgaWYgKCFBTExfWkVST0VTX1AgKGNvbmRfdmFyKSkg XAorICB7CisKKyNkZWZpbmUgVkVDVE9SX0VMU0UoY29uZF92YXIpIFwKKyAgfSBcCisgIGNv bmRfdmFyID0gX19pbnZfY29uZDsgXAorICBpZiAoIUFMTF9aRVJPRVNfUCAoY29uZF92YXIp KSBcCisgIHsKKworI2RlZmluZSBWRUNUT1JfSUYyKGNvbmQsIGNvbmRfdmFyLCBwcmV2X2Nv bmRfdmFyKSBcCit7IFwKKyAgX19hdXRvX3R5cGUgY29uZF92YXIgPSAoY29uZCkgJiBfX2J1 aWx0aW5fY29udmVydHZlY3RvciAocHJldl9jb25kX3ZhciwgdHlwZW9mIChjb25kKSk7IFwK KyAgX19hdXRvX3R5cGUgX19pbnZfY29uZCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSA9IH5j b25kX3ZhcjsgXAorICBpZiAoIUFMTF9aRVJPRVNfUCAoY29uZF92YXIpKSBcCisgIHsKKwor I2RlZmluZSBWRUNUT1JfRUxTRUlGMihjb25kLCBjb25kX3ZhciwgcHJldl9jb25kX3Zhcikg XAorICB9IFwKKyAgY29uZF92YXIgPSAoY29uZCkgJiBfX2ludl9jb25kICYgX19idWlsdGlu X2NvbnZlcnR2ZWN0b3IgKHByZXZfY29uZF92YXIsIHR5cGVvZiAoY29uZCkpOyBcCisgIF9f aW52X2NvbmQgJj0gfihjb25kKTsgXAorICBpZiAoIUFMTF9aRVJPRVNfUCAoY29uZF92YXIp KSBcCisgIHsKKworI2RlZmluZSBWRUNUT1JfRUxTRTIoY29uZF92YXIsIHByZXZfY29uZF92 YXIpIFwKKyAgfSBcCisgIGNvbmRfdmFyID0gX19pbnZfY29uZCAmIF9fYnVpbHRpbl9jb252 ZXJ0dmVjdG9yIChwcmV2X2NvbmRfdmFyLCB0eXBlb2YgKF9faW52X2NvbmQpKTsgXAorICBp ZiAoIUFMTF9aRVJPRVNfUCAoY29uZF92YXIpKSBcCisgIHsKKworCisjZGVmaW5lIFZFQ1RP Ul9FTkRJRiBcCisgIH0gXAorfQorCisjZGVmaW5lIFZFQ1RPUl9JTklUX0FVWCh4LCB0eXBl KSBcCisoeyBcCisgIHR5cGVvZiAoeCkgX19lID0gKHgpOyBcCisgIHR5cGUgX190bXAgPSB7 IFwKKyAgICBfX2UsIF9fZSwgX19lLCBfX2UsIF9fZSwgX19lLCBfX2UsIF9fZSwgXAorICAg IF9fZSwgX19lLCBfX2UsIF9fZSwgX19lLCBfX2UsIF9fZSwgX19lLCBcCisgICAgX19lLCBf X2UsIF9fZSwgX19lLCBfX2UsIF9fZSwgX19lLCBfX2UsIFwKKyAgICBfX2UsIF9fZSwgX19l LCBfX2UsIF9fZSwgX19lLCBfX2UsIF9fZSwgXAorICAgIF9fZSwgX19lLCBfX2UsIF9fZSwg X19lLCBfX2UsIF9fZSwgX19lLCBcCisgICAgX19lLCBfX2UsIF9fZSwgX19lLCBfX2UsIF9f ZSwgX19lLCBfX2UsIFwKKyAgICBfX2UsIF9fZSwgX19lLCBfX2UsIF9fZSwgX19lLCBfX2Us IF9fZSwgXAorICAgIF9fZSwgX19lLCBfX2UsIF9fZSwgX19lLCBfX2UsIF9fZSwgX19lIH07 IFwKKyAgX190bXA7IFwKK30pCisKKyNkZWZpbmUgVkVDVE9SX0lOSVQoeCkgXAorICAoX0dl bmVyaWMgKCh4KSwgaW50OiBWRUNUT1JfSU5JVF9BVVggKCh4KSwgdjY0c2kpLCBcCisgICAg ICAgICAgICAgICAgICB1bnNpZ25lZDogVkVDVE9SX0lOSVRfQVVYICgoeCksIHY2NHVzaSks IFwKKyAgICAgICAgICAgICAgICAgIGNoYXI6IFZFQ1RPUl9JTklUX0FVWCAoKHgpLCB2NjRx aSksIFwKKyAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXI6IFZFQ1RPUl9JTklUX0FV WCAoKHgpLCB2NjR1cWkpLCBcCisgICAgICAgICAgICAgICAgICBzaG9ydDogVkVDVE9SX0lO SVRfQVVYICgoeCksIHY2NGhpKSwgXAorICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hv cnQ6IFZFQ1RPUl9JTklUX0FVWCAoKHgpLCB2NjR1aGkpLCBcCisgICAgICAgICAgICAgICAg ICBsb25nOiBWRUNUT1JfSU5JVF9BVVggKCh4KSwgdjY0ZGkpLCBcCisgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nOiBWRUNUT1JfSU5JVF9BVVggKCh4KSwgdjY0dWRpKSwgXAor ICAgICAgICAgICAgICAgICAgZmxvYXQ6IFZFQ1RPUl9JTklUX0FVWCAoKHgpLCB2NjRzZiks IFwKKyAgICAgICAgICAgICAgICAgIGRvdWJsZTogVkVDVE9SX0lOSVRfQVVYICgoeCksIHY2 NGRmKSkpCisKKworI2lmIGRlZmluZWQgKF9fR0NOM19fKSB8fCBkZWZpbmVkIChfX0dDTjVf XykgXAorICAgIHx8IGRlZmluZWQgKF9fQ0ROQTFfXykgfHwgZGVmaW5lZCAoX19DRE5BMl9f KQorI2RlZmluZSBDRE5BM19QTFVTIDAKKyNlbHNlCisjZGVmaW5lIENETkEzX1BMVVMgMQor I2VuZGlmCisKKyNkZWZpbmUgVkVDVE9SX0lOSVRfTUFTSyhDT1VOVCkgXAorKHsgXAorICBN QVNLTU9ERSBfX21hc2s7IFwKKyAgaW50IGNvdW50ID0gKENPVU5UKTsgXAorICBpZiAoY291 bnQgPT0gNjQpIFwKKyAgICB7IFwKKyAgICAgIGlmIChzaXplb2YgKE1BU0tNT0RFKSA8IDUx MiB8fCBDRE5BM19QTFVTKSBcCisJYXNtICgidl9tb3YlQjBcdCUwLCAtMSIgOiAiPXYiKF9f bWFzaykgOiAiZSIoLTFMKSk7IFwKKyAgICAgIGVsc2UgXAorCWFzbSAoInZfbW92X2IzMlx0 JUwwLCAtMVxuXHQiIFwKKwkgICAgICJ2X21vdl9iMzJcdCVIMCwgLTEiIDogIj12IihfX21h c2spIDogImUiKC0xTCkpOyBcCisgICAgfSBcCisgIGVsc2UgXAorICAgIHsgXAorICAgICAg bG9uZyBiaXRtYXNrID0gKGNvdW50ID09IDY0ID8gLTEgOiAoMTw8Y291bnQpLTEpOyBcCisg ICAgICBpZiAoc2l6ZW9mIChNQVNLTU9ERSkgPCA1MTIgfHwgQ0ROQTNfUExVUykgXAorICAg ICAgICB7IFwKKwkgIGFzbSAoInZfbW92JUIwXHQlMCwgMCIgOiAiPXYiKF9fbWFzaykgOiAi ZSIoLTFMKSk7IFwKKwkgIGFzbSAoInZfbW92JUIwXHQlMCwgLTEiIDogIit2IihfX21hc2sp IDogImUiKGJpdG1hc2spKTsgXAorCX0gXAorICAgICAgZWxzZSBcCisgICAgICAgIHsgXAor CSAgYXNtICgidl9tb3ZfYjMyXHQlTDAsIDBcblx0IiBcCisJICAgICAgICJ2X21vdl9iMzJc dCVIMCwgMCIgOiAiPXYiKF9fbWFzaykgOiAiZSIoLTFMKSk7IFwKKwkgIGFzbSAoInZfbW92 X2IzMlx0JUwwLCAtMVxuXHQiIFwKKwkgICAgICAgInZfbW92X2IzMlx0JUgwLCAtMSIgOiAi K3YiKF9fbWFzaykgOiAiZSIoYml0bWFzaykpOyBcCisJfSBcCisgICAgfSBcCisgIF9fbWFz azsgXAorfSkKKworI2RlZmluZSBBTExfWkVST0VTX1AoeCkgKENPTkRfVE9fQklUTUFTSyh4 KSA9PSAwKQorCisjZGVmaW5lIENPTkRfVE9fQklUTUFTSyh4KSBcCisoeyBcCisgIGxvbmcg X190bXAgPSAwOyBcCisgIF9fYXV0b190eXBlIF9feCA9IF9fYnVpbHRpbl9jb252ZXJ0dmVj dG9yKCh4KSwgdHlwZW9mIChfX21hc2spKSAmIF9fbWFzazsgXAorICBfX2J1aWx0aW5fY2hv b3NlX2V4cHIgKHNpemVvZiAoX19tYXNrKSAhPSA1MTIsIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAoeyBhc20gKCJ2X2NtcF9uZV91MzJfZTY0ICUwLCAlMSwgMCIgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPVNnIiAoX190bXApIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogInYiIChfX3gpKTsgfSksIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAoeyBhc20gKCJ2X2NtcF9uZV91NjRfZTY0ICUwLCAlMSwgMCIg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPVNnIiAoX190bXApIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogInYiIChfX3gpKTsgfSkpOyBc CisgIF9fdG1wOyBcCit9KQorCisjZGVmaW5lIFZFQ1RPUl9XSElMRShjb25kLCBjb25kX3Zh ciwgcHJldl9jb25kX3ZhcikgXAoreyBcCisgIF9fYXV0b190eXBlIGNvbmRfdmFyID0gcHJl dl9jb25kX3ZhcjsgXAorICBmb3IgKDs7KSB7IFwKKyAgICBjb25kX3ZhciAmPSAoY29uZCk7 IFwKKyAgICBpZiAoQUxMX1pFUk9FU19QIChjb25kX3ZhcikpIFwKKyAgICAgIGJyZWFrOwor CisjZGVmaW5lIFZFQ1RPUl9FTkRXSElMRSBcCisgIH0gXAorfQorCisjZGVmaW5lIERFRl9W QVJJQU5UKEZVTiwgU1VGRklYLCBPVFlQRSwgVFlQRSwgQ09VTlQpIFwKK3YjI0NPVU5UIyNP VFlQRSBcCitGVU4jI3YjI0NPVU5UIyNTVUZGSVggKHYjI0NPVU5UIyNUWVBFIF9fYXJnMSwg diMjQ09VTlQjI1RZUEUgX19hcmcyKSBcCit7IFwKKyAgX19hdXRvX3R5cGUgX191cHNpemVk X2FyZzEgPSBWR1BSX0NBU1QgKHY2NCMjVFlQRSwgX19hcmcxKTsgXAorICBfX2F1dG9fdHlw ZSBfX3Vwc2l6ZWRfYXJnMiA9IFZHUFJfQ0FTVCAodjY0IyNUWVBFLCBfX2FyZzIpOyBcCisg IF9fYXV0b190eXBlIF9fbWFzayA9IFZFQ1RPUl9JTklUX01BU0sgKENPVU5UKTsgXAorICBf X2F1dG9fdHlwZSBfX3Jlc3VsdCA9IEZVTiMjdjY0IyNTVUZGSVgjI19hdXggKF9fdXBzaXpl ZF9hcmcxLCBfX3Vwc2l6ZWRfYXJnMiwgX19tYXNrKTsgXAorICByZXR1cm4gVkdQUl9DQVNU ICh2IyNDT1VOVCMjT1RZUEUsIF9fcmVzdWx0KTsgXAorfQorCisjZGVmaW5lIERFRl9WQVJJ QU5UUyhGVU4sIFNVRkZJWCwgVFlQRSkgXAorICBERUZfVkFSSUFOVCAoRlVOLCBTVUZGSVgs IFRZUEUsIFRZUEUsIDIpIFwKKyAgREVGX1ZBUklBTlQgKEZVTiwgU1VGRklYLCBUWVBFLCBU WVBFLCA0KSBcCisgIERFRl9WQVJJQU5UIChGVU4sIFNVRkZJWCwgVFlQRSwgVFlQRSwgOCkg XAorICBERUZfVkFSSUFOVCAoRlVOLCBTVUZGSVgsIFRZUEUsIFRZUEUsIDE2KSBcCisgIERF Rl9WQVJJQU5UIChGVU4sIFNVRkZJWCwgVFlQRSwgVFlQRSwgMzIpIFwKKyAgREVGX1ZBUklB TlQgKEZVTiwgU1VGRklYLCBUWVBFLCBUWVBFLCA2NCkKKworI2RlZmluZSBERUZfVkFSSUFO VFNfQihGVU4sIFNVRkZJWCwgT1RZUEUsIFRZUEUpIFwKKyAgREVGX1ZBUklBTlQgKEZVTiwg U1VGRklYLCBPVFlQRSwgVFlQRSwgMikgXAorICBERUZfVkFSSUFOVCAoRlVOLCBTVUZGSVgs IE9UWVBFLCBUWVBFLCA0KSBcCisgIERFRl9WQVJJQU5UIChGVU4sIFNVRkZJWCwgT1RZUEUs IFRZUEUsIDgpIFwKKyAgREVGX1ZBUklBTlQgKEZVTiwgU1VGRklYLCBPVFlQRSwgVFlQRSwg MTYpIFwKKyAgREVGX1ZBUklBTlQgKEZVTiwgU1VGRklYLCBPVFlQRSwgVFlQRSwgMzIpIFwK KyAgREVGX1ZBUklBTlQgKEZVTiwgU1VGRklYLCBPVFlQRSwgVFlQRSwgNjQpCmRpZmYgLS1n aXQgYS9saWJnY2MvY29uZmlnL2djbi9saWIyLWRpdm1vZC1kaS5jIGIvbGliZ2NjL2NvbmZp Zy9nY24vbGliMi1kaXZtb2QtZGkuYwppbmRleCBhOTAyMzc3MGMyNy4uZDAzODVmM2IyOGMg MTAwNjQ0Ci0tLSBhL2xpYmdjYy9jb25maWcvZ2NuL2xpYjItZGl2bW9kLWRpLmMKKysrIGIv bGliZ2NjL2NvbmZpZy9nY24vbGliMi1kaXZtb2QtZGkuYwpAQCAtMjIsMTQgKzIyLDEwMSBA QCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2 ZWx5LiAgSWYgbm90LCBzZWUKIAogI2luY2x1ZGUgImxpYjItZ2NuLmgiCiAKLS8qIFdlIHJl YWxseSB3YW50IERJbW9kZSBoZXJlOiBvdmVycmlkZSBMSUJHQ0MyX1VOSVRTX1BFUl9XT1JE LiAgKi8KLSNkZWZpbmUgTElCR0NDMl9VTklUU19QRVJfV09SRCA0Ci0jZGVmaW5lIFRBUkdF VF9IQVNfTk9fSFdfRElWSURFCisvKiA2NC1iaXQgU0kgZGl2aWRlIGFuZCBtb2R1bG8gYXMg dXNlZCBpbiBnY24uICAqLwogCi0jZGVmaW5lIExfZGl2bW9kZGk0Ci0jZGVmaW5lIExfZGl2 ZGkzCi0jZGVmaW5lIExfbW9kZGkzCi0jZGVmaW5lIExfdWRpdmRpMwotI2RlZmluZSBMX3Vt b2RkaTMKK3VuaW9uIHBhY2sgeworICBVVEl0eXBlIHRpOworICBzdHJ1Y3Qge0RJdHlwZSBx dW90LCByZW07fSBwYWlyOworfTsKK3VuaW9uIHVwYWNrIHsKKyAgVVRJdHlwZSB0aTsKKyAg c3RydWN0IHtVREl0eXBlIHF1b3QsIHJlbTt9IHBhaXI7Cit9OworCitVVEl0eXBlCitfX3Vk aXZtb2RkaTQgKFVESXR5cGUgbnVtLCBVREl0eXBlIGRlbikKK3sKKyAgVURJdHlwZSBiaXQg PSAxOworICB1bmlvbiB1cGFjayByZXMgPSB7MH07CisKKyAgd2hpbGUgKGRlbiA8IG51bSAm JiBiaXQgJiYgIShkZW4gJiAoMUw8PDYzKSkpCisgICAgeworICAgICAgZGVuIDw8PTE7Cisg ICAgICBiaXQgPDw9MTsKKyAgICB9CisgIHdoaWxlIChiaXQpCisgICAgeworICAgICAgaWYg KG51bSA+PSBkZW4pCisJeworCSAgbnVtIC09IGRlbjsKKwkgIHJlcy5wYWlyLnF1b3QgfD0g Yml0OworCX0KKyAgICAgIGJpdCA+Pj0xOworICAgICAgZGVuID4+PTE7CisgICAgfQorICBy ZXMucGFpci5yZW0gPSBudW07CisgIHJldHVybiByZXMudGk7Cit9CisKK1VUSXR5cGUKK19f ZGl2bW9kZGk0IChESXR5cGUgYSwgREl0eXBlIGIpCit7CisgIHdvcmRfdHlwZSBuZWdhID0g MCwgbmVnYiA9IDA7CisgIHVuaW9uIHBhY2sgcmVzOworCisgIGlmIChhIDwgMCkKKyAgICB7 CisgICAgICBhID0gLWE7CisgICAgICBuZWdhID0gMTsKKyAgICB9CisKKyAgaWYgKGIgPCAw KQorICAgIHsKKyAgICAgIGIgPSAtYjsKKyAgICAgIG5lZ2IgPSAxOworICAgIH0KKworICBy ZXMudGkgPSBfX3VkaXZtb2RkaTQgKGEsIGIpOworCisgIGlmIChuZWdhKQorICAgIHJlcy5w YWlyLnJlbSA9IC1yZXMucGFpci5yZW07CisgIGlmIChuZWdhIF4gbmVnYikKKyAgICByZXMu cGFpci5xdW90ID0gLXJlcy5wYWlyLnF1b3Q7CisKKyAgcmV0dXJuIHJlcy50aTsKK30KKwor CitESXR5cGUKK19fZGl2ZGkzIChESXR5cGUgYSwgREl0eXBlIGIpCit7CisgIHVuaW9uIHBh Y2sgdTsKKyAgdS50aSA9IF9fZGl2bW9kZGk0IChhLCBiKTsKKyAgcmV0dXJuIHUucGFpci5x dW90OworfQorCitESXR5cGUKK19fbW9kZGkzIChESXR5cGUgYSwgREl0eXBlIGIpCit7Cisg IHVuaW9uIHBhY2sgdTsKKyAgdS50aSA9IF9fZGl2bW9kZGk0IChhLCBiKTsKKyAgcmV0dXJu IHUucGFpci5yZW07Cit9CisKKworVURJdHlwZQorX191ZGl2ZGkzIChVREl0eXBlIGEsIFVE SXR5cGUgYikKK3sKKyAgdW5pb24gcGFjayB1OworICB1LnRpID0gX191ZGl2bW9kZGk0IChh LCBiKTsKKyAgcmV0dXJuIHUucGFpci5xdW90OworfQorCitVREl0eXBlCitfX3Vtb2RkaTMg KFVESXR5cGUgYSwgVURJdHlwZSBiKQoreworICB1bmlvbiBwYWNrIHU7CisgdS50aSA9IF9f dWRpdm1vZGRpNCAoYSwgYik7CisgcmV0dXJuIHUucGFpci5yZW07Cit9CiAKLSNpbmNsdWRl ICJsaWJnY2MyLmMiCmRpZmYgLS1naXQgYS9saWJnY2MvY29uZmlnL2djbi9saWIyLWRpdm1v ZC1oaS5jIGIvbGliZ2NjL2NvbmZpZy9nY24vbGliMi1kaXZtb2QtaGkuYwppbmRleCBmNDU4 NGFhYmNkOS4uZDZmNGJkMzdhNzIgMTAwNjQ0Ci0tLSBhL2xpYmdjYy9jb25maWcvZ2NuL2xp YjItZGl2bW9kLWhpLmMKKysrIGIvbGliZ2NjL2NvbmZpZy9nY24vbGliMi1kaXZtb2QtaGku YwpAQCAtMjQsMTEgKzI0LDIwIEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJ TkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQogCiAvKiAxNi1iaXQgSEkg ZGl2aWRlIGFuZCBtb2R1bG8gYXMgdXNlZCBpbiBnY24uICAqLwogCi1zdGF0aWMgVUhJdHlw ZQotdWRpdm1vZGhpNCAoVUhJdHlwZSBudW0sIFVISXR5cGUgZGVuLCB3b3JkX3R5cGUgbW9k d2FudGVkKQordW5pb24gcGFjayB7CisgIFVESXR5cGUgZGk7CisgIHN0cnVjdCB7SEl0eXBl IHF1b3QsIHJlbTt9IHBhaXI7Cit9OwordW5pb24gdXBhY2sgeworICBVREl0eXBlIGRpOwor ICBzdHJ1Y3Qge1VISXR5cGUgcXVvdCwgcmVtO30gcGFpcjsKK307CisKK1VESXR5cGUKK19f dWRpdm1vZGhpNCAoVUhJdHlwZSBudW0sIFVISXR5cGUgZGVuKQogewogICBVSEl0eXBlIGJp dCA9IDE7Ci0gIFVISXR5cGUgcmVzID0gMDsKKyAgdW5pb24gdXBhY2sgcmVzID0gezB9Owog CiAgIHdoaWxlIChkZW4gPCBudW0gJiYgYml0ICYmICEoZGVuICYgKDFMPDwxNSkpKQogICAg IHsKQEAgLTQwLDc4ICs0OSw3NSBAQCB1ZGl2bW9kaGk0IChVSEl0eXBlIG51bSwgVUhJdHlw ZSBkZW4sIHdvcmRfdHlwZSBtb2R3YW50ZWQpCiAgICAgICBpZiAobnVtID49IGRlbikKIAl7 CiAJICBudW0gLT0gZGVuOwotCSAgcmVzIHw9IGJpdDsKKwkgIHJlcy5wYWlyLnF1b3QgfD0g Yml0OwogCX0KICAgICAgIGJpdCA+Pj0xOwogICAgICAgZGVuID4+PTE7CiAgICAgfQotICBp ZiAobW9kd2FudGVkKQotICAgIHJldHVybiBudW07Ci0gIHJldHVybiByZXM7CisgIHJlcy5w YWlyLnJlbSA9IG51bTsKKyAgcmV0dXJuIHJlcy5kaTsKIH0KIAotCi1ISXR5cGUKLV9fZGl2 aGkzIChISXR5cGUgYSwgSEl0eXBlIGIpCitVREl0eXBlCitfX2Rpdm1vZGhpNCAoSEl0eXBl IGEsIEhJdHlwZSBiKQogewotICB3b3JkX3R5cGUgbmVnID0gMDsKLSAgSEl0eXBlIHJlczsK KyAgd29yZF90eXBlIG5lZ2EgPSAwLCBuZWdiOworICB1bmlvbiBwYWNrIHJlczsKIAogICBp ZiAoYSA8IDApCiAgICAgewogICAgICAgYSA9IC1hOwotICAgICAgbmVnID0gIW5lZzsKKyAg ICAgIG5lZ2EgPSAxOwogICAgIH0KIAogICBpZiAoYiA8IDApCiAgICAgewogICAgICAgYiA9 IC1iOwotICAgICAgbmVnID0gIW5lZzsKKyAgICAgIG5lZ2IgPSAxOwogICAgIH0KIAotICBy ZXMgPSB1ZGl2bW9kaGk0IChhLCBiLCAwKTsKKyAgcmVzLmRpID0gX191ZGl2bW9kaGk0IChh LCBiKTsKIAotICBpZiAobmVnKQotICAgIHJlcyA9IC1yZXM7CisgIGlmIChuZWdhKQorICAg IHJlcy5wYWlyLnJlbSA9IC1yZXMucGFpci5yZW07CisgIGlmIChuZWdhIF4gbmVnYikKKyAg ICByZXMucGFpci5xdW90ID0gLXJlcy5wYWlyLnF1b3Q7CiAKLSAgcmV0dXJuIHJlczsKKyAg cmV0dXJuIHJlcy5kaTsKIH0KIAogCiBISXR5cGUKLV9fbW9kaGkzIChISXR5cGUgYSwgSEl0 eXBlIGIpCitfX2RpdmhpMyAoSEl0eXBlIGEsIEhJdHlwZSBiKQogewotICB3b3JkX3R5cGUg bmVnID0gMDsKLSAgSEl0eXBlIHJlczsKLQotICBpZiAoYSA8IDApCi0gICAgewotICAgICAg YSA9IC1hOwotICAgICAgbmVnID0gMTsKLSAgICB9Ci0KLSAgaWYgKGIgPCAwKQotICAgIGIg PSAtYjsKLQotICByZXMgPSB1ZGl2bW9kaGk0IChhLCBiLCAxKTsKLQotICBpZiAobmVnKQot ICAgIHJlcyA9IC1yZXM7CisgIHVuaW9uIHBhY2sgdTsKKyAgdS5kaSA9IF9fZGl2bW9kaGk0 IChhLCBiKTsKKyAgcmV0dXJuIHUucGFpci5xdW90OworfQogCi0gIHJldHVybiByZXM7CitI SXR5cGUKK19fbW9kaGkzIChISXR5cGUgYSwgSEl0eXBlIGIpCit7CisgIHVuaW9uIHBhY2sg dTsKKyAgdS5kaSA9IF9fZGl2bW9kaGk0IChhLCBiKTsKKyAgcmV0dXJuIHUucGFpci5yZW07 CiB9CiAKIAogVUhJdHlwZQogX191ZGl2aGkzIChVSEl0eXBlIGEsIFVISXR5cGUgYikKIHsK LSAgcmV0dXJuIHVkaXZtb2RoaTQgKGEsIGIsIDApOworICB1bmlvbiBwYWNrIHU7CisgIHUu ZGkgPSBfX3VkaXZtb2RoaTQgKGEsIGIpOworICByZXR1cm4gdS5wYWlyLnF1b3Q7CiB9CiAK IAogVUhJdHlwZQogX191bW9kaGkzIChVSEl0eXBlIGEsIFVISXR5cGUgYikKIHsKLSAgcmV0 dXJuIHVkaXZtb2RoaTQgKGEsIGIsIDEpOworICB1bmlvbiBwYWNrIHU7CisgdS5kaSA9IF9f dWRpdm1vZGhpNCAoYSwgYik7CisgcmV0dXJuIHUucGFpci5yZW07CiB9CiAKZGlmZiAtLWdp dCBhL2xpYmdjYy9jb25maWcvZ2NuL2xpYjItZGl2bW9kLmMgYi9saWJnY2MvY29uZmlnL2dj bi9saWIyLWRpdm1vZC5jCmluZGV4IGMzNTBmNzg1OGYxLi5kNzAxZDFhNGY1OCAxMDA2NDQK LS0tIGEvbGliZ2NjL2NvbmZpZy9nY24vbGliMi1kaXZtb2QuYworKysgYi9saWJnY2MvY29u ZmlnL2djbi9saWIyLWRpdm1vZC5jCkBAIC0yNCwxMSArMjQsMjAgQEAgc2VlIHRoZSBmaWxl cyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwg c2VlCiAKIC8qIDMyLWJpdCBTSSBkaXZpZGUgYW5kIG1vZHVsbyBhcyB1c2VkIGluIGdjbi4g ICovCiAKLXN0YXRpYyBVU0l0eXBlCi11ZGl2bW9kc2k0IChVU0l0eXBlIG51bSwgVVNJdHlw ZSBkZW4sIHdvcmRfdHlwZSBtb2R3YW50ZWQpCit1bmlvbiBwYWNrIHsKKyAgVURJdHlwZSBk aTsKKyAgc3RydWN0IHtTSXR5cGUgcXVvdCwgcmVtO30gcGFpcjsKK307Cit1bmlvbiB1cGFj ayB7CisgIFVESXR5cGUgZGk7CisgIHN0cnVjdCB7VVNJdHlwZSBxdW90LCByZW07fSBwYWly OworfTsKKworVURJdHlwZQorX191ZGl2bW9kc2k0IChVU0l0eXBlIG51bSwgVVNJdHlwZSBk ZW4pCiB7CiAgIFVTSXR5cGUgYml0ID0gMTsKLSAgVVNJdHlwZSByZXMgPSAwOworICB1bmlv biB1cGFjayByZXMgPSB7MH07CiAKICAgd2hpbGUgKGRlbiA8IG51bSAmJiBiaXQgJiYgIShk ZW4gJiAoMUw8PDMxKSkpCiAgICAgewpAQCAtNDAsNzggKzQ5LDc1IEBAIHVkaXZtb2RzaTQg KFVTSXR5cGUgbnVtLCBVU0l0eXBlIGRlbiwgd29yZF90eXBlIG1vZHdhbnRlZCkKICAgICAg IGlmIChudW0gPj0gZGVuKQogCXsKIAkgIG51bSAtPSBkZW47Ci0JICByZXMgfD0gYml0Owor CSAgcmVzLnBhaXIucXVvdCB8PSBiaXQ7CiAJfQogICAgICAgYml0ID4+PTE7CiAgICAgICBk ZW4gPj49MTsKICAgICB9Ci0gIGlmIChtb2R3YW50ZWQpCi0gICAgcmV0dXJuIG51bTsKLSAg cmV0dXJuIHJlczsKKyAgcmVzLnBhaXIucmVtID0gbnVtOworICByZXR1cm4gcmVzLmRpOwog fQogCi0KLVNJdHlwZQotX19kaXZzaTMgKFNJdHlwZSBhLCBTSXR5cGUgYikKK1VESXR5cGUK K19fZGl2bW9kc2k0IChTSXR5cGUgYSwgU0l0eXBlIGIpCiB7Ci0gIHdvcmRfdHlwZSBuZWcg PSAwOwotICBTSXR5cGUgcmVzOworICB3b3JkX3R5cGUgbmVnYSA9IDAsIG5lZ2IgPSAwOwor ICB1bmlvbiBwYWNrIHJlczsKIAogICBpZiAoYSA8IDApCiAgICAgewogICAgICAgYSA9IC1h OwotICAgICAgbmVnID0gIW5lZzsKKyAgICAgIG5lZ2EgPSAxOwogICAgIH0KIAogICBpZiAo YiA8IDApCiAgICAgewogICAgICAgYiA9IC1iOwotICAgICAgbmVnID0gIW5lZzsKKyAgICAg IG5lZ2IgPSAxOwogICAgIH0KIAotICByZXMgPSB1ZGl2bW9kc2k0IChhLCBiLCAwKTsKKyAg cmVzLmRpID0gX191ZGl2bW9kc2k0IChhLCBiKTsKIAotICBpZiAobmVnKQotICAgIHJlcyA9 IC1yZXM7CisgIGlmIChuZWdhKQorICAgIHJlcy5wYWlyLnJlbSA9IC1yZXMucGFpci5yZW07 CisgIGlmIChuZWdhIF4gbmVnYikKKyAgICByZXMucGFpci5xdW90ID0gLXJlcy5wYWlyLnF1 b3Q7CiAKLSAgcmV0dXJuIHJlczsKKyAgcmV0dXJuIHJlcy5kaTsKIH0KIAogCiBTSXR5cGUK LV9fbW9kc2kzIChTSXR5cGUgYSwgU0l0eXBlIGIpCitfX2RpdnNpMyAoU0l0eXBlIGEsIFNJ dHlwZSBiKQogewotICB3b3JkX3R5cGUgbmVnID0gMDsKLSAgU0l0eXBlIHJlczsKLQotICBp ZiAoYSA8IDApCi0gICAgewotICAgICAgYSA9IC1hOwotICAgICAgbmVnID0gMTsKLSAgICB9 Ci0KLSAgaWYgKGIgPCAwKQotICAgIGIgPSAtYjsKLQotICByZXMgPSB1ZGl2bW9kc2k0IChh LCBiLCAxKTsKLQotICBpZiAobmVnKQotICAgIHJlcyA9IC1yZXM7CisgIHVuaW9uIHBhY2sg dTsKKyAgdS5kaSA9IF9fZGl2bW9kc2k0IChhLCBiKTsKKyAgcmV0dXJuIHUucGFpci5xdW90 OworfQogCi0gIHJldHVybiByZXM7CitTSXR5cGUKK19fbW9kc2kzIChTSXR5cGUgYSwgU0l0 eXBlIGIpCit7CisgIHVuaW9uIHBhY2sgdTsKKyAgdS5kaSA9IF9fZGl2bW9kc2k0IChhLCBi KTsKKyAgcmV0dXJuIHUucGFpci5yZW07CiB9CiAKIAogVVNJdHlwZQogX191ZGl2c2kzIChV U0l0eXBlIGEsIFVTSXR5cGUgYikKIHsKLSAgcmV0dXJuIHVkaXZtb2RzaTQgKGEsIGIsIDAp OworICB1bmlvbiBwYWNrIHU7CisgIHUuZGkgPSBfX3VkaXZtb2RzaTQgKGEsIGIpOworICBy ZXR1cm4gdS5wYWlyLnF1b3Q7CiB9CiAKIAogVVNJdHlwZQogX191bW9kc2kzIChVU0l0eXBl IGEsIFVTSXR5cGUgYikKIHsKLSAgcmV0dXJuIHVkaXZtb2RzaTQgKGEsIGIsIDEpOworICB1 bmlvbiBwYWNrIHU7CisgdS5kaSA9IF9fdWRpdm1vZHNpNCAoYSwgYik7CisgcmV0dXJuIHUu cGFpci5yZW07CiB9CiAKZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcvZ2NuL2xpYjItZ2Nu LmggYi9saWJnY2MvY29uZmlnL2djbi9saWIyLWdjbi5oCmluZGV4IDY0NTI0NWIyMTI4Li5i MDA0ZDAzOWRmMyAxMDA2NDQKLS0tIGEvbGliZ2NjL2NvbmZpZy9nY24vbGliMi1nY24uaAor KysgYi9saWJnY2MvY29uZmlnL2djbi9saWIyLWdjbi5oCkBAIC0zOSwxOSArMzksMTM1IEBA IHR5cGVkZWYgaW50IFRJdHlwZSBfX2F0dHJpYnV0ZV9fICgobW9kZSAoVEkpKSk7CiB0eXBl ZGVmIHVuc2lnbmVkIGludCBVVEl0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChUSSkpKTsK IHR5cGVkZWYgaW50IHdvcmRfdHlwZSBfX2F0dHJpYnV0ZV9fICgobW9kZSAoX193b3JkX18p KSk7CiAKK3R5cGVkZWYgZmxvYXQgdjJzZiBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUg KDgpKSk7Cit0eXBlZGVmIGZsb2F0IHY0c2YgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXpl ICgxNikpKTsKK3R5cGVkZWYgZmxvYXQgdjhzZiBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3Np emUgKDMyKSkpOwordHlwZWRlZiBmbG9hdCB2MTZzZiBfX2F0dHJpYnV0ZV9fICgodmVjdG9y X3NpemUgKDY0KSkpOwordHlwZWRlZiBmbG9hdCB2MzJzZiBfX2F0dHJpYnV0ZV9fICgodmVj dG9yX3NpemUgKDEyOCkpKTsKK3R5cGVkZWYgZmxvYXQgdjY0c2YgX19hdHRyaWJ1dGVfXyAo KHZlY3Rvcl9zaXplICgyNTYpKSk7CisKK3R5cGVkZWYgZG91YmxlIHYyZGYgX19hdHRyaWJ1 dGVfXyAoKHZlY3Rvcl9zaXplICgxNikpKTsKK3R5cGVkZWYgZG91YmxlIHY0ZGYgX19hdHRy aWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgzMikpKTsKK3R5cGVkZWYgZG91YmxlIHY4ZGYgX19h dHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg2NCkpKTsKK3R5cGVkZWYgZG91YmxlIHYxNmRm IF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMTI4KSkpOwordHlwZWRlZiBkb3VibGUg djMyZGYgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgyNTYpKSk7Cit0eXBlZGVmIGRv dWJsZSB2NjRkZiBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDUxMikpKTsKKwordHlw ZWRlZiBzaWduZWQgY2hhciB2MnFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMikp KTsKK3R5cGVkZWYgc2lnbmVkIGNoYXIgdjRxaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3Np emUgKDQpKSk7Cit0eXBlZGVmIHNpZ25lZCBjaGFyIHY4cWkgX19hdHRyaWJ1dGVfXyAoKHZl Y3Rvcl9zaXplICg4KSkpOwordHlwZWRlZiBzaWduZWQgY2hhciB2MTZxaSBfX2F0dHJpYnV0 ZV9fICgodmVjdG9yX3NpemUgKDE2KSkpOwordHlwZWRlZiBzaWduZWQgY2hhciB2MzJxaSBf X2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDMyKSkpOwordHlwZWRlZiBzaWduZWQgY2hh ciB2NjRxaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDY0KSkpOworCit0eXBlZGVm IHVuc2lnbmVkIGNoYXIgdjJ1cWkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgyKSkp OwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIHY0dXFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jf c2l6ZSAoNCkpKTsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB2OHVxaSBfX2F0dHJpYnV0ZV9f ICgodmVjdG9yX3NpemUgKDgpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdjE2dXFpIF9f YXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMTYpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIGNo YXIgdjMydXFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMzIpKSk7Cit0eXBlZGVm IHVuc2lnbmVkIGNoYXIgdjY0dXFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNjQp KSk7CisKK3R5cGVkZWYgc2hvcnQgdjJoaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUg KDQpKSk7Cit0eXBlZGVmIHNob3J0IHY0aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXpl ICg4KSkpOwordHlwZWRlZiBzaG9ydCB2OGhpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6 ZSAoMTYpKSk7Cit0eXBlZGVmIHNob3J0IHYxNmhpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jf c2l6ZSAoMzIpKSk7Cit0eXBlZGVmIHNob3J0IHYzMmhpIF9fYXR0cmlidXRlX18gKCh2ZWN0 b3Jfc2l6ZSAoNjQpKSk7Cit0eXBlZGVmIHNob3J0IHY2NGhpIF9fYXR0cmlidXRlX18gKCh2 ZWN0b3Jfc2l6ZSAoMTI4KSkpOworCit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHYydWhpIF9f YXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNCkpKTsKK3R5cGVkZWYgdW5zaWduZWQgc2hv cnQgdjR1aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg4KSkpOwordHlwZWRlZiB1 bnNpZ25lZCBzaG9ydCB2OHVoaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDE2KSkp OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB2MTZ1aGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rv cl9zaXplICgzMikpKTsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgdjMydWhpIF9fYXR0cmli dXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNjQpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHY2 NHVoaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDEyOCkpKTsKKwordHlwZWRlZiBp bnQgdjJzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDgpKSk7Cit0eXBlZGVmIGlu dCB2NHNpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMTYpKSk7Cit0eXBlZGVmIGlu dCB2OHNpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMzIpKSk7Cit0eXBlZGVmIGlu dCB2MTZzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDY0KSkpOwordHlwZWRlZiBp bnQgdjMyc2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxMjgpKSk7Cit0eXBlZGVm IGludCB2NjRzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDI1NikpKTsKKwordHlw ZWRlZiB1bnNpZ25lZCBpbnQgdjJ1c2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg4 KSkpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdjR1c2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rv cl9zaXplICgxNikpKTsKK3R5cGVkZWYgdW5zaWduZWQgaW50IHY4dXNpIF9fYXR0cmlidXRl X18gKCh2ZWN0b3Jfc2l6ZSAoMzIpKSk7Cit0eXBlZGVmIHVuc2lnbmVkIGludCB2MTZ1c2kg X19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg2NCkpKTsKK3R5cGVkZWYgdW5zaWduZWQg aW50IHYzMnVzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDEyOCkpKTsKK3R5cGVk ZWYgdW5zaWduZWQgaW50IHY2NHVzaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDI1 NikpKTsKKwordHlwZWRlZiBsb25nIHYyZGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXpl ICgxNikpKTsKK3R5cGVkZWYgbG9uZyB2NGRpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6 ZSAoMzIpKSk7Cit0eXBlZGVmIGxvbmcgdjhkaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3Np emUgKDY0KSkpOwordHlwZWRlZiBsb25nIHYxNmRpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jf c2l6ZSAoMTI4KSkpOwordHlwZWRlZiBsb25nIHYzMmRpIF9fYXR0cmlidXRlX18gKCh2ZWN0 b3Jfc2l6ZSAoMjU2KSkpOwordHlwZWRlZiBsb25nIHY2NGRpIF9fYXR0cmlidXRlX18gKCh2 ZWN0b3Jfc2l6ZSAoNTEyKSkpOworCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdjJ1ZGkgX19h dHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxNikpKTsKK3R5cGVkZWYgdW5zaWduZWQgbG9u ZyB2NHVkaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDMyKSkpOwordHlwZWRlZiB1 bnNpZ25lZCBsb25nIHY4dWRpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNjQpKSk7 Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdjE2dWRpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jf c2l6ZSAoMTI4KSkpOwordHlwZWRlZiB1bnNpZ25lZCBsb25nIHYzMnVkaSBfX2F0dHJpYnV0 ZV9fICgodmVjdG9yX3NpemUgKDI1NikpKTsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB2NjR1 ZGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICg1MTIpKSk7CisKK3R5cGVkZWYgVVRJ dHlwZSB2MnV0aSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDMyKSkpOwordHlwZWRl ZiBVVEl0eXBlIHY0dXRpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoNjQpKSk7Cit0 eXBlZGVmIFVUSXR5cGUgdjh1dGkgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxMjgp KSk7Cit0eXBlZGVmIFVUSXR5cGUgdjE2dXRpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6 ZSAoMjU2KSkpOwordHlwZWRlZiBVVEl0eXBlIHYzMnV0aSBfX2F0dHJpYnV0ZV9fICgodmVj dG9yX3NpemUgKDUxMikpKTsKK3R5cGVkZWYgVVRJdHlwZSB2NjR1dGkgX19hdHRyaWJ1dGVf XyAoKHZlY3Rvcl9zaXplICgxMDI0KSkpOworCiAvKiBFeHBvcnRlZCBmdW5jdGlvbnMuICAq LwogZXh0ZXJuIERJdHlwZSBfX2RpdmRpMyAoREl0eXBlLCBESXR5cGUpOwogZXh0ZXJuIERJ dHlwZSBfX21vZGRpMyAoREl0eXBlLCBESXR5cGUpOworZXh0ZXJuIFVUSXR5cGUgX19kaXZt b2RkaTQgKERJdHlwZSwgREl0eXBlKTsKIGV4dGVybiBVREl0eXBlIF9fdWRpdmRpMyAoVURJ dHlwZSwgVURJdHlwZSk7CiBleHRlcm4gVURJdHlwZSBfX3Vtb2RkaTMgKFVESXR5cGUsIFVE SXR5cGUpOworZXh0ZXJuIFVUSXR5cGUgX191ZGl2bW9kZGk0IChVREl0eXBlLCBVREl0eXBl KTsKIGV4dGVybiBTSXR5cGUgX19kaXZzaTMgKFNJdHlwZSwgU0l0eXBlKTsKIGV4dGVybiBT SXR5cGUgX19tb2RzaTMgKFNJdHlwZSwgU0l0eXBlKTsKK2V4dGVybiBVREl0eXBlIF9fZGl2 bW9kc2k0IChTSXR5cGUsIFNJdHlwZSk7CiBleHRlcm4gVVNJdHlwZSBfX3VkaXZzaTMgKFVT SXR5cGUsIFVTSXR5cGUpOwogZXh0ZXJuIFVTSXR5cGUgX191bW9kc2kzIChVU0l0eXBlLCBV U0l0eXBlKTsKK2V4dGVybiBVREl0eXBlIF9fdWRpdm1vZHNpNCAoVVNJdHlwZSwgVVNJdHlw ZSk7CiBleHRlcm4gSEl0eXBlIF9fZGl2aGkzIChISXR5cGUsIEhJdHlwZSk7CiBleHRlcm4g SEl0eXBlIF9fbW9kaGkzIChISXR5cGUsIEhJdHlwZSk7CitleHRlcm4gVURJdHlwZSBfX2Rp dm1vZGhpNCAoSEl0eXBlLCBISXR5cGUpOwogZXh0ZXJuIFVISXR5cGUgX191ZGl2aGkzIChV SEl0eXBlLCBVSEl0eXBlKTsKIGV4dGVybiBVSEl0eXBlIF9fdW1vZGhpMyAoVUhJdHlwZSwg VUhJdHlwZSk7CitleHRlcm4gVURJdHlwZSBfX3VkaXZtb2RoaTQgKFVISXR5cGUsIFVISXR5 cGUpOwogZXh0ZXJuIFNJdHlwZSBfX211bHNpMyAoU0l0eXBlLCBTSXR5cGUpOwogCisjZGVm aW5lIFZFQ1RPUl9QUk9UT1RZUEVTKFNJWkUpIFwKKyAgZXh0ZXJuIHYjI1NJWkUjI3FpICBf X2RpdnYjI1NJWkUjI3FpMyAgICAgKHYjI1NJWkUjI3FpLCAgdiMjU0laRSMjcWkpOyAgXAor ICBleHRlcm4gdiMjU0laRSMjcWkgIF9fbW9kdiMjU0laRSMjcWkzICAgICAodiMjU0laRSMj cWksICB2IyNTSVpFIyNxaSk7ICBcCisgIGV4dGVybiB2IyNTSVpFIyN1ZGkgX19kaXZtb2R2 IyNTSVpFIyNxaTQgICh2IyNTSVpFIyNxaSwgIHYjI1NJWkUjI3FpKTsgIFwKKyAgZXh0ZXJu IHYjI1NJWkUjI3VxaSBfX3VkaXZ2IyNTSVpFIyNxaTMgICAgKHYjI1NJWkUjI3VxaSwgdiMj U0laRSMjdXFpKTsgXAorICBleHRlcm4gdiMjU0laRSMjdXFpIF9fdW1vZHYjI1NJWkUjI3Fp MyAgICAodiMjU0laRSMjdXFpLCB2IyNTSVpFIyN1cWkpOyBcCisgIGV4dGVybiB2IyNTSVpF IyN1ZGkgX191ZGl2bW9kdiMjU0laRSMjcWk0ICh2IyNTSVpFIyN1cWksIHYjI1NJWkUjI3Vx aSk7ICBcCisgIGV4dGVybiB2IyNTSVpFIyNoaSAgX19kaXZ2IyNTSVpFIyNoaTMgICAgICh2 IyNTSVpFIyNoaSwgIHYjI1NJWkUjI2hpKTsgIFwKKyAgZXh0ZXJuIHYjI1NJWkUjI2hpICBf X21vZHYjI1NJWkUjI2hpMyAgICAgKHYjI1NJWkUjI2hpLCAgdiMjU0laRSMjaGkpOyAgXAor ICBleHRlcm4gdiMjU0laRSMjdWRpIF9fZGl2bW9kdiMjU0laRSMjaGk0ICAodiMjU0laRSMj aGksICB2IyNTSVpFIyNoaSk7ICBcCisgIGV4dGVybiB2IyNTSVpFIyN1aGkgX191ZGl2diMj U0laRSMjaGkzICAgICh2IyNTSVpFIyN1aGksIHYjI1NJWkUjI3VoaSk7IFwKKyAgZXh0ZXJu IHYjI1NJWkUjI3VoaSBfX3Vtb2R2IyNTSVpFIyNoaTMgICAgKHYjI1NJWkUjI3VoaSwgdiMj U0laRSMjdWhpKTsgXAorICBleHRlcm4gdiMjU0laRSMjdWRpIF9fdWRpdm1vZHYjI1NJWkUj I2hpNCAodiMjU0laRSMjdWhpLCB2IyNTSVpFIyN1aGkpOyBcCisgIGV4dGVybiB2IyNTSVpF IyNzaSAgX19kaXZ2IyNTSVpFIyNzaTMgICAgICh2IyNTSVpFIyNzaSwgIHYjI1NJWkUjI3Np KTsgIFwKKyAgZXh0ZXJuIHYjI1NJWkUjI3NpICBfX21vZHYjI1NJWkUjI3NpMyAgICAgKHYj I1NJWkUjI3NpLCAgdiMjU0laRSMjc2kpOyAgXAorICBleHRlcm4gdiMjU0laRSMjdWRpIF9f ZGl2bW9kdiMjU0laRSMjc2k0ICAodiMjU0laRSMjc2ksICB2IyNTSVpFIyNzaSk7ICBcCisg IGV4dGVybiB2IyNTSVpFIyN1c2kgX191ZGl2diMjU0laRSMjc2kzICAgICh2IyNTSVpFIyN1 c2ksIHYjI1NJWkUjI3VzaSk7IFwKKyAgZXh0ZXJuIHYjI1NJWkUjI3VzaSBfX3Vtb2R2IyNT SVpFIyNzaTMgICAgKHYjI1NJWkUjI3VzaSwgdiMjU0laRSMjdXNpKTsgXAorICBleHRlcm4g diMjU0laRSMjdWRpIF9fdWRpdm1vZHYjI1NJWkUjI3NpNCAodiMjU0laRSMjdXNpLCB2IyNT SVpFIyN1c2kpOyBcCisgIGV4dGVybiB2IyNTSVpFIyNkaSAgX19kaXZ2IyNTSVpFIyNkaTMg ICAgICh2IyNTSVpFIyNkaSwgIHYjI1NJWkUjI2RpKTsgIFwKKyAgZXh0ZXJuIHYjI1NJWkUj I2RpICBfX21vZHYjI1NJWkUjI2RpMyAgICAgKHYjI1NJWkUjI2RpLCAgdiMjU0laRSMjZGkp OyAgXAorICBleHRlcm4gdiMjU0laRSMjdXRpIF9fZGl2bW9kdiMjU0laRSMjZGk0ICAodiMj U0laRSMjZGksICB2IyNTSVpFIyNkaSk7ICBcCisgIGV4dGVybiB2IyNTSVpFIyN1ZGkgX191 ZGl2diMjU0laRSMjZGkzICAgICh2IyNTSVpFIyN1ZGksIHYjI1NJWkUjI3VkaSk7IFwKKyAg ZXh0ZXJuIHYjI1NJWkUjI3VkaSBfX3Vtb2R2IyNTSVpFIyNkaTMgICAgKHYjI1NJWkUjI3Vk aSwgdiMjU0laRSMjdWRpKTsgXAorICBleHRlcm4gdiMjU0laRSMjdXRpIF9fdWRpdm1vZHYj I1NJWkUjI2RpNCAodiMjU0laRSMjdWRpLCB2IyNTSVpFIyN1ZGkpOworVkVDVE9SX1BST1RP VFlQRVMgKDIpCitWRUNUT1JfUFJPVE9UWVBFUyAoNCkKK1ZFQ1RPUl9QUk9UT1RZUEVTICg4 KQorVkVDVE9SX1BST1RPVFlQRVMgKDE2KQorVkVDVE9SX1BST1RPVFlQRVMgKDMyKQorVkVD VE9SX1BST1RPVFlQRVMgKDY0KQorI3VuZGVmIFZFQ1RPUl9QUk9UT1RZUEVTCisKICNlbmRp ZiAvKiBMSUIyX0dDTl9IICovCmRpZmYgLS1naXQgYS9saWJnY2MvY29uZmlnL2djbi9saWIy LXZlY19kaXZtb2QtZGkuYyBiL2xpYmdjYy9jb25maWcvZ2NuL2xpYjItdmVjX2Rpdm1vZC1k aS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZjRhMDM1ZjE5 OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdjYy9jb25maWcvZ2NuL2xpYjItdmVjX2Rpdm1v ZC1kaS5jCkBAIC0wLDAgKzEsMTE4IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIENvbnRyaWJ1dGVkIGJ5IEFsdGVy YSBhbmQgTWVudG9yIEdyYXBoaWNzLCBJbmMuCisKK1RoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cit1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUKK0ZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKK2xhdGVyIHZlcnNpb24uCisKK1RoaXMgZmlsZSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQK K1dJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKK01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisKK1VuZGVyIFNlY3Rpb24gNyBvZiBHUEwgdmVyc2lvbiAzLCB5b3UgYXJlIGdy YW50ZWQgYWRkaXRpb25hbAorcGVybWlzc2lvbnMgZGVzY3JpYmVkIGluIHRoZSBHQ0MgUnVu dGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiwgdmVyc2lvbgorMy4xLCBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCithIGNv cHkgb2YgdGhlIEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtOworc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1F IHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCis8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworCisjaW5jbHVkZSAibGliMi1nY24uaCIKKworLyogNjQtYml0IFY2NFNJ IGRpdmlkZSBhbmQgbW9kdWxvIGFzIHVzZWQgaW4gZ2NuLgorICAgVGhpcyBpcyBhIHNpbXBs ZSBjb252ZXJzaW9uIGZyb20gbGliMi1kaXZtb2QuYy4gICovCisKKyNkZWZpbmUgTUFTS01P REUgdjY0ZGkKKyNpbmNsdWRlICJhbWRnY25fdmVjbGliLmgiCisKK3N0YXRpYyB2NjR1dGkK K19fdWRpdm1vZHY2NGRpNF9hdXggKHY2NHVkaSBudW0sIHY2NHVkaSBkZW4sIHY2NGRpIF9f bWFzaykKK3sKKyAgdjY0dWRpIGJpdCA9IFZFQ1RPUl9JTklUICgxVUwpOworICB2NjR1ZGkg cmVzID0gVkVDVE9SX0lOSVQgKDBVTCk7CisKKyAgVkVDVE9SX1dISUxFICgoZGVuIDwgbnVt KSAmIChiaXQgIT0gMCkgJiAoKGRlbiAmICgxTDw8MzEpKSA9PSAwKSwKKwkJY29uZCwgTk9f Q09ORCkKKyAgICBWRUNUT1JfQ09ORF9NT1ZFIChkZW4sIGRlbiA8PCAxLCBjb25kKTsKKyAg ICBWRUNUT1JfQ09ORF9NT1ZFIChiaXQsIGJpdCA8PCAxLCBjb25kKTsKKyAgVkVDVE9SX0VO RFdISUxFCisgIFZFQ1RPUl9XSElMRSAoYml0ICE9IDAsIGxvb3Bjb25kLCBOT19DT05EKQor ICAgIFZFQ1RPUl9JRjIgKG51bSA+PSBkZW4sIGlmY29uZCwgbG9vcGNvbmQpCisgICAgICBW RUNUT1JfQ09ORF9NT1ZFIChudW0sIG51bSAtIGRlbiwgaWZjb25kKTsKKyAgICAgIFZFQ1RP Ul9DT05EX01PVkUgKHJlcywgcmVzIHwgYml0LCBpZmNvbmQpOworICAgIFZFQ1RPUl9FTkRJ RgorICAgIFZFQ1RPUl9DT05EX01PVkUgKGJpdCwgYml0ID4+IDEsIGxvb3Bjb25kKTsKKyAg ICBWRUNUT1JfQ09ORF9NT1ZFIChkZW4sIGRlbiA+PiAxLCBsb29wY29uZCk7CisgIFZFQ1RP Ul9FTkRXSElMRQorCisgIHJldHVybiBQQUNLX0RJX1BBSVIgKHJlcywgbnVtKTsKK30KKwor c3RhdGljIHY2NHV0aQorX19kaXZtb2R2NjRkaTRfYXV4ICh2NjRkaSBhLCB2NjRkaSBiLCB2 NjRkaSBfX21hc2spCit7CisgIHY2NGRpIG5lZ2EgPSBWRUNUT1JfSU5JVCAoMEwpOworICB2 NjRkaSBuZWdiID0gVkVDVE9SX0lOSVQgKDBMKTsKKworICBWRUNUT1JfSUYgKGEgPCAwLCBj b25kKQorICAgIFZFQ1RPUl9DT05EX01PVkUgKGEsIC1hLCBjb25kKTsKKyAgICBuZWdhID0g Y29uZDsKKyAgVkVDVE9SX0VORElGCisKKyAgVkVDVE9SX0lGIChiIDwgMCwgY29uZCkKKyAg ICBWRUNUT1JfQ09ORF9NT1ZFIChiLCAtYiwgY29uZCk7CisgICAgbmVnYiA9IGNvbmQ7Cisg IFZFQ1RPUl9FTkRJRgorCisgIHY2NHVkaSB1YSA9IF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9y IChhLCB2NjR1ZGkpOworICB2NjR1ZGkgdWIgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvciAo YiwgdjY0dWRpKTsKKyAgdjY0dXRpIHBhaXIgPSBfX3VkaXZtb2R2NjRkaTRfYXV4ICh1YSwg dWIsIF9fbWFzayk7CisKKyAgdjY0ZGkgcXVvdCA9IFVOUEFDS19ESV9MT1cgKHY2NGRpLCBw YWlyKTsKKyAgdjY0ZGkgcmVtID0gVU5QQUNLX0RJX0hJR0ggKHY2NGRpLCBwYWlyKTsKKyAg VkVDVE9SX0NPTkRfTU9WRSAocXVvdCwgLXF1b3QsIG5lZ2EgXiBuZWdiKTsKKyAgVkVDVE9S X0NPTkRfTU9WRSAocmVtLCAtcmVtLCBuZWdhKTsKKyAgcGFpciA9IFBBQ0tfRElfUEFJUiAo cXVvdCwgcmVtKTsKKworICByZXR1cm4gcGFpcjsKK30KKworCitzdGF0aWMgaW5saW5lIHY2 NGRpCitfX2RpdnY2NGRpM19hdXggKHY2NGRpIGEsIHY2NGRpIGIsIHY2NGRpIF9fbWFzaykK K3sKKyAgdjY0dXRpIHBhaXIgPSBfX2Rpdm1vZHY2NGRpNF9hdXggKGEsIGIsIF9fbWFzayk7 CisgIHJldHVybiBVTlBBQ0tfRElfTE9XICh2NjRkaSwgcGFpcik7Cit9CisKK3N0YXRpYyBp bmxpbmUgdjY0ZGkKK19fbW9kdjY0ZGkzX2F1eCAodjY0ZGkgYSwgdjY0ZGkgYiwgdjY0ZGkg X19tYXNrKQoreworICB2NjR1dGkgcGFpciA9IF9fZGl2bW9kdjY0ZGk0X2F1eCAoYSwgYiwg X19tYXNrKTsKKyAgcmV0dXJuIFVOUEFDS19ESV9ISUdIICh2NjRkaSwgcGFpcik7Cit9CisK Kworc3RhdGljIGlubGluZSB2NjR1ZGkKK19fdWRpdnY2NGRpM19hdXggKHY2NHVkaSBhLCB2 NjR1ZGkgYiwgdjY0ZGkgX19tYXNrKQoreworICB2NjR1dGkgcGFpciA9IF9fdWRpdm1vZHY2 NGRpNF9hdXggKGEsIGIsIF9fbWFzayk7CisgIHJldHVybiBVTlBBQ0tfRElfTE9XICh2NjR1 ZGksIHBhaXIpOworfQorCitzdGF0aWMgaW5saW5lIHY2NHVkaQorX191bW9kdjY0ZGkzX2F1 eCAodjY0dWRpIGEsIHY2NHVkaSBiLCB2NjRkaSBfX21hc2spCit7CisgIHY2NHV0aSBwYWly ID0gX191ZGl2bW9kdjY0ZGk0X2F1eCAoYSwgYiwgX19tYXNrKTsKKyAgcmV0dXJuIFVOUEFD S19ESV9ISUdIICh2NjR1ZGksIHBhaXIpOworfQorCitERUZfVkFSSUFOVFMgKF9fZGl2LCBk aTMsIGRpKQorREVGX1ZBUklBTlRTIChfX21vZCwgZGkzLCBkaSkKK0RFRl9WQVJJQU5UU19C IChfX2Rpdm1vZCwgZGk0LCB1dGksIGRpKQorREVGX1ZBUklBTlRTIChfX3VkaXYsIGRpMywg dWRpKQorREVGX1ZBUklBTlRTIChfX3Vtb2QsIGRpMywgdWRpKQorREVGX1ZBUklBTlRTX0Ig KF9fdWRpdm1vZCwgZGk0LCB1dGksIHVkaSkKZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcv Z2NuL2xpYjItdmVjX2Rpdm1vZC1oaS5jIGIvbGliZ2NjL2NvbmZpZy9nY24vbGliMi12ZWNf ZGl2bW9kLWhpLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE3 NWRkZjg0YmIyCi0tLSAvZGV2L251bGwKKysrIGIvbGliZ2NjL2NvbmZpZy9nY24vbGliMi12 ZWNfZGl2bW9kLWhpLmMKQEAgLTAsMCArMSwxMTggQEAKKy8qIENvcHlyaWdodCAoQykgMjAx Mi0yMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgQ29udHJpYnV0ZWQg YnkgQWx0ZXJhIGFuZCBNZW50b3IgR3JhcGhpY3MsIEluYy4KKworVGhpcyBmaWxlIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQK K3VuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZQorRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pIGFueQorbGF0ZXIgdmVyc2lvbi4KKworVGhp cyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsIGJ1dAorV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKK0dlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworVW5kZXIgU2VjdGlvbiA3IG9mIEdQTCB2ZXJzaW9uIDMsIHlv dSBhcmUgZ3JhbnRlZCBhZGRpdGlvbmFsCitwZXJtaXNzaW9ucyBkZXNjcmliZWQgaW4gdGhl IEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uLCB2ZXJzaW9uCiszLjEsIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCitZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh bmQKK2EgY29weSBvZiB0aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24gYWxvbmcg d2l0aCB0aGlzIHByb2dyYW07CitzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5H LlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKKzxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlICJsaWIyLWdjbi5oIgorCisvKiAxNi1i aXQgVjY0SEkgZGl2aWRlIGFuZCBtb2R1bG8gYXMgdXNlZCBpbiBnY24uCisgICBUaGlzIGlz IGEgc2ltcGxlIGNvbnZlcnNpb24gZnJvbSBsaWIyLWRpdm1vZC5jLiAgKi8KKworI2RlZmlu ZSBNQVNLTU9ERSB2NjRoaQorI2luY2x1ZGUgImFtZGdjbl92ZWNsaWIuaCIKKworc3RhdGlj IHY2NHVkaQorX191ZGl2bW9kdjY0aGk0X2F1eCAodjY0dWhpIG51bSwgdjY0dWhpIGRlbiwg djY0aGkgX19tYXNrKQoreworICB2NjR1aGkgYml0ID0gVkVDVE9SX0lOSVQgKCh1bnNpZ25l ZCBzaG9ydCkxVSk7CisgIHY2NHVoaSByZXMgPSBWRUNUT1JfSU5JVCAoKHVuc2lnbmVkIHNo b3J0KTBVKTsKKworICBWRUNUT1JfV0hJTEUgKChkZW4gPCBudW0pICYgKGJpdCAhPSAwKSAm ICgoZGVuICYgKDFMPDwxNSkpID09IDApLAorCQljb25kLCBOT19DT05EKQorICAgIFZFQ1RP Ul9DT05EX01PVkUgKGRlbiwgZGVuIDw8IDEsIGNvbmQpOworICAgIFZFQ1RPUl9DT05EX01P VkUgKGJpdCwgYml0IDw8IDEsIGNvbmQpOworICBWRUNUT1JfRU5EV0hJTEUKKyAgVkVDVE9S X1dISUxFIChiaXQgIT0gMCwgbG9vcGNvbmQsIE5PX0NPTkQpCisgICAgVkVDVE9SX0lGMiAo bnVtID49IGRlbiwgaWZjb25kLCBsb29wY29uZCkKKyAgICAgIFZFQ1RPUl9DT05EX01PVkUg KG51bSwgbnVtIC0gZGVuLCBpZmNvbmQpOworICAgICAgVkVDVE9SX0NPTkRfTU9WRSAocmVz LCByZXMgfCBiaXQsIGlmY29uZCk7CisgICAgVkVDVE9SX0VORElGCisgICAgVkVDVE9SX0NP TkRfTU9WRSAoYml0LCBiaXQgPj4gMSwgbG9vcGNvbmQpOworICAgIFZFQ1RPUl9DT05EX01P VkUgKGRlbiwgZGVuID4+IDEsIGxvb3Bjb25kKTsKKyAgVkVDVE9SX0VORFdISUxFCisKKyAg cmV0dXJuIFBBQ0tfU0lfUEFJUiAocmVzLCBudW0pOworfQorCitzdGF0aWMgdjY0dWRpCitf X2Rpdm1vZHY2NGhpNF9hdXggKHY2NGhpIGEsIHY2NGhpIGIsICB2NjRoaSBfX21hc2spCit7 CisgIHY2NGhpIG5lZ2EgPSBWRUNUT1JfSU5JVCAoKHNob3J0KTApOworICB2NjRoaSBuZWdi ID0gVkVDVE9SX0lOSVQgKChzaG9ydCkwKTsKKworICBWRUNUT1JfSUYgKGEgPCAwLCBjb25k KQorICAgIFZFQ1RPUl9DT05EX01PVkUgKGEsIC1hLCBjb25kKTsKKyAgICBuZWdhID0gY29u ZDsKKyAgVkVDVE9SX0VORElGCisKKyAgVkVDVE9SX0lGIChiIDwgMCwgY29uZCkKKyAgICBW RUNUT1JfQ09ORF9NT1ZFIChiLCAtYiwgY29uZCk7CisgICAgbmVnYiA9IGNvbmQ7CisgIFZF Q1RPUl9FTkRJRgorCisgIHY2NHVoaSB1YSA9IF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yIChh LCB2NjR1aGkpOworICB2NjR1aGkgdWIgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvciAoYiwg djY0dWhpKTsKKyAgdjY0dWRpIHBhaXIgPSBfX3VkaXZtb2R2NjRoaTRfYXV4ICh1YSwgdWIs IF9fbWFzayk7CisKKyAgdjY0aGkgcXVvdCA9IFVOUEFDS19TSV9MT1cgKHY2NGhpLCBwYWly KTsKKyAgdjY0aGkgcmVtID0gVU5QQUNLX1NJX0hJR0ggKHY2NGhpLCBwYWlyKTsKKyAgVkVD VE9SX0NPTkRfTU9WRSAocXVvdCwgLXF1b3QsIG5lZ2EgXiBuZWdiKTsKKyAgVkVDVE9SX0NP TkRfTU9WRSAocmVtLCAtcmVtLCBuZWdhKTsKKyAgcGFpciA9IFBBQ0tfU0lfUEFJUiAocXVv dCwgcmVtKTsKKworICByZXR1cm4gcGFpcjsKK30KKworCitzdGF0aWMgaW5saW5lIHY2NGhp CitfX2RpdnY2NGhpM19hdXggKHY2NGhpIGEsIHY2NGhpIGIsIHY2NGhpIF9fbWFzaykKK3sK KyAgdjY0dWRpIHBhaXIgPSBfX2Rpdm1vZHY2NGhpNF9hdXggKGEsIGIsIF9fbWFzayk7Cisg IHJldHVybiBVTlBBQ0tfU0lfTE9XICh2NjRoaSwgcGFpcik7Cit9CisKK3N0YXRpYyBpbmxp bmUgdjY0aGkKK19fbW9kdjY0aGkzX2F1eCAodjY0aGkgYSwgdjY0aGkgYiwgdjY0aGkgX19t YXNrKQoreworICB2NjR1ZGkgcGFpciA9IF9fZGl2bW9kdjY0aGk0X2F1eCAoYSwgYiwgX19t YXNrKTsKKyAgcmV0dXJuIFVOUEFDS19TSV9ISUdIICh2NjRoaSwgcGFpcik7Cit9CisKKwor c3RhdGljIGlubGluZSB2NjR1aGkKK19fdWRpdnY2NGhpM19hdXggKHY2NHVoaSBhLCB2NjR1 aGkgYiwgdjY0aGkgX19tYXNrKQoreworICB2NjR1ZGkgcGFpciA9IF9fdWRpdm1vZHY2NGhp NF9hdXggKGEsIGIsIF9fbWFzayk7CisgIHJldHVybiBVTlBBQ0tfU0lfTE9XICh2NjR1aGks IHBhaXIpOworfQorCitzdGF0aWMgaW5saW5lIHY2NHVoaQorX191bW9kdjY0aGkzX2F1eCAo djY0dWhpIGEsIHY2NHVoaSBiLCB2NjRoaSBfX21hc2spCit7CisgIHY2NHVkaSBwYWlyID0g X191ZGl2bW9kdjY0aGk0X2F1eCAoYSwgYiwgX19tYXNrKTsKKyAgcmV0dXJuIFVOUEFDS19T SV9ISUdIICh2NjR1aGksIHBhaXIpOworfQorCitERUZfVkFSSUFOVFMgKF9fZGl2LCBoaTMs IGhpKQorREVGX1ZBUklBTlRTIChfX21vZCwgaGkzLCBoaSkKK0RFRl9WQVJJQU5UU19CIChf X2Rpdm1vZCwgaGk0LCB1ZGksIGhpKQorREVGX1ZBUklBTlRTIChfX3VkaXYsIGhpMywgdWhp KQorREVGX1ZBUklBTlRTIChfX3Vtb2QsIGhpMywgdWhpKQorREVGX1ZBUklBTlRTX0IgKF9f dWRpdm1vZCwgaGk0LCB1ZGksIHVoaSkKZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcvZ2Nu L2xpYjItdmVjX2Rpdm1vZC1xaS5jIGIvbGliZ2NjL2NvbmZpZy9nY24vbGliMi12ZWNfZGl2 bW9kLXFpLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmNmI1 YzJlN2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliZ2NjL2NvbmZpZy9nY24vbGliMi12ZWNf ZGl2bW9kLXFpLmMKQEAgLTAsMCArMSwxMTggQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMi0y MDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgQ29udHJpYnV0ZWQgYnkg QWx0ZXJhIGFuZCBNZW50b3IgR3JhcGhpY3MsIEluYy4KKworVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKK3Vu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZQorRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzLCBvciAoYXQgeW91ciBvcHRpb24pIGFueQorbGF0ZXIgdmVyc2lvbi4KKworVGhpcyBm aWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws IGJ1dAorV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKK0dlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKworVW5kZXIgU2VjdGlvbiA3IG9mIEdQTCB2ZXJzaW9uIDMsIHlvdSBh cmUgZ3JhbnRlZCBhZGRpdGlvbmFsCitwZXJtaXNzaW9ucyBkZXNjcmliZWQgaW4gdGhlIEdD QyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uLCB2ZXJzaW9uCiszLjEsIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCitZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbmQK K2EgY29weSBvZiB0aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24gYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW07CitzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJV TlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKKzxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlICJsaWIyLWdjbi5oIgorCisvKiA4LWJpdCBW NjRRSSBkaXZpZGUgYW5kIG1vZHVsbyBhcyB1c2VkIGluIGdjbi4KKyAgIFRoaXMgaXMgYSBz aW1wbGUgY29udmVyc2lvbiBmcm9tIGxpYjItZGl2bW9kLmMuICAqLworCisjZGVmaW5lIE1B U0tNT0RFIHY2NHFpCisjaW5jbHVkZSAiYW1kZ2NuX3ZlY2xpYi5oIgorCitzdGF0aWMgdjY0 dWRpCitfX3VkaXZtb2R2NjRxaTRfYXV4ICh2NjR1cWkgbnVtLCB2NjR1cWkgZGVuLCB2NjRx aSBfX21hc2spCit7CisgIHY2NHVxaSBiaXQgPSBWRUNUT1JfSU5JVCAoKHVuc2lnbmVkIGNo YXIpMVUpOworICB2NjR1cWkgcmVzID0gVkVDVE9SX0lOSVQgKCh1bnNpZ25lZCBjaGFyKTBV KTsKKworICBWRUNUT1JfV0hJTEUgKChkZW4gPCBudW0pICYgKGJpdCAhPSAwKSAmICgoZGVu ICYgKDE8PDcpKSA9PSAwKSwKKwkJY29uZCwgTk9fQ09ORCkKKyAgICBWRUNUT1JfQ09ORF9N T1ZFIChkZW4sIGRlbiA8PCAxLCBjb25kKTsKKyAgICBWRUNUT1JfQ09ORF9NT1ZFIChiaXQs IGJpdCA8PCAxLCBjb25kKTsKKyAgVkVDVE9SX0VORFdISUxFCisgIFZFQ1RPUl9XSElMRSAo Yml0ICE9IDAsIGxvb3Bjb25kLCBOT19DT05EKQorICAgIFZFQ1RPUl9JRjIgKG51bSA+PSBk ZW4sIGlmY29uZCwgbG9vcGNvbmQpCisgICAgICBWRUNUT1JfQ09ORF9NT1ZFIChudW0sIG51 bSAtIGRlbiwgaWZjb25kKTsKKyAgICAgIFZFQ1RPUl9DT05EX01PVkUgKHJlcywgcmVzIHwg Yml0LCBpZmNvbmQpOworICAgIFZFQ1RPUl9FTkRJRgorICAgIFZFQ1RPUl9DT05EX01PVkUg KGJpdCwgYml0ID4+IDEsIGxvb3Bjb25kKTsKKyAgICBWRUNUT1JfQ09ORF9NT1ZFIChkZW4s IGRlbiA+PiAxLCBsb29wY29uZCk7CisgIFZFQ1RPUl9FTkRXSElMRQorCisgIHJldHVybiBQ QUNLX1NJX1BBSVIgKHJlcywgbnVtKTsKK30KKworc3RhdGljIHY2NHVkaQorX19kaXZtb2R2 NjRxaTRfYXV4ICh2NjRxaSBhLCB2NjRxaSBiLCB2NjRxaSBfX21hc2spCit7CisgIHY2NHFp IG5lZ2EgPSBWRUNUT1JfSU5JVCAoKGNoYXIpMCk7CisgIHY2NHFpIG5lZ2IgPSBWRUNUT1Jf SU5JVCAoKGNoYXIpMCk7CisKKyAgVkVDVE9SX0lGIChhIDwgMCwgY29uZCkKKyAgICBWRUNU T1JfQ09ORF9NT1ZFIChhLCAtYSwgY29uZCk7CisgICAgbmVnYSA9IGNvbmQ7CisgIFZFQ1RP Ul9FTkRJRgorCisgIFZFQ1RPUl9JRiAoYiA8IDAsIGNvbmQpCisgICAgVkVDVE9SX0NPTkRf TU9WRSAoYiwgLWIsIGNvbmQpOworICAgIG5lZ2IgPSBjb25kOworICBWRUNUT1JfRU5ESUYK KworICB2NjR1cWkgdWEgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvciAoYSwgdjY0dXFpKTsK KyAgdjY0dXFpIHViID0gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IgKGIsIHY2NHVxaSk7Cisg IHY2NHVkaSBwYWlyID0gX191ZGl2bW9kdjY0cWk0X2F1eCAodWEsIHViLCBfX21hc2spOwor CisgIHY2NHFpIHF1b3QgPSBVTlBBQ0tfU0lfTE9XICh2NjRxaSwgcGFpcik7CisgIHY2NHFp IHJlbSA9IFVOUEFDS19TSV9ISUdIICh2NjRxaSwgcGFpcik7CisgIFZFQ1RPUl9DT05EX01P VkUgKHF1b3QsIC1xdW90LCBuZWdhIF4gbmVnYik7CisgIFZFQ1RPUl9DT05EX01PVkUgKHJl bSwgLXJlbSwgbmVnYSk7CisgIHBhaXIgPSBQQUNLX1NJX1BBSVIgKHF1b3QsIHJlbSk7CisK KyAgcmV0dXJuIHBhaXI7Cit9CisKKworc3RhdGljIGlubGluZSB2NjRxaQorX19kaXZ2NjRx aTNfYXV4ICh2NjRxaSBhLCB2NjRxaSBiLCB2NjRxaSBfX21hc2spCit7CisgIHY2NHVkaSBw YWlyID0gX19kaXZtb2R2NjRxaTRfYXV4IChhLCBiLCBfX21hc2spOworICByZXR1cm4gVU5Q QUNLX1NJX0xPVyAodjY0cWksIHBhaXIpOworfQorCitzdGF0aWMgaW5saW5lIHY2NHFpCitf X21vZHY2NHFpM19hdXggKHY2NHFpIGEsIHY2NHFpIGIsIHY2NHFpIF9fbWFzaykKK3sKKyAg djY0dWRpIHBhaXIgPSBfX2Rpdm1vZHY2NHFpNF9hdXggKGEsIGIsIF9fbWFzayk7CisgIHJl dHVybiBVTlBBQ0tfU0lfSElHSCAodjY0cWksIHBhaXIpOworfQorCisKK3N0YXRpYyBpbmxp bmUgdjY0dXFpCitfX3VkaXZ2NjRxaTNfYXV4ICh2NjR1cWkgYSwgdjY0dXFpIGIsIHY2NHFp IF9fbWFzaykKK3sKKyAgdjY0dWRpIHBhaXIgPSBfX3VkaXZtb2R2NjRxaTRfYXV4IChhLCBi LCBfX21hc2spOworICByZXR1cm4gVU5QQUNLX1NJX0xPVyAodjY0dXFpLCBwYWlyKTsKK30K Kworc3RhdGljIGlubGluZSB2NjR1cWkKK19fdW1vZHY2NHFpM19hdXggKHY2NHVxaSBhLCB2 NjR1cWkgYiwgdjY0cWkgX19tYXNrKQoreworICB2NjR1ZGkgcGFpciA9IF9fdWRpdm1vZHY2 NHFpNF9hdXggKGEsIGIsIF9fbWFzayk7CisgIHJldHVybiBVTlBBQ0tfU0lfSElHSCAodjY0 dXFpLCBwYWlyKTsKK30KKworREVGX1ZBUklBTlRTIChfX2RpdiwgcWkzLCBxaSkKK0RFRl9W QVJJQU5UUyAoX19tb2QsIHFpMywgcWkpCitERUZfVkFSSUFOVFNfQiAoX19kaXZtb2QsIHFp NCwgdWRpLCBxaSkKK0RFRl9WQVJJQU5UUyAoX191ZGl2LCBxaTMsIHVxaSkKK0RFRl9WQVJJ QU5UUyAoX191bW9kLCBxaTMsIHVxaSkKK0RFRl9WQVJJQU5UU19CIChfX3VkaXZtb2QsIHFp NCwgdWRpLCB1cWkpCmRpZmYgLS1naXQgYS9saWJnY2MvY29uZmlnL2djbi9saWIyLXZlY19k aXZtb2QuYyBiL2xpYmdjYy9jb25maWcvZ2NuL2xpYjItdmVjX2Rpdm1vZC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMTY2NzY2OGU2OAotLS0gL2Rldi9u dWxsCisrKyBiL2xpYmdjYy9jb25maWcvZ2NuL2xpYjItdmVjX2Rpdm1vZC5jCkBAIC0wLDAg KzEsMTE4IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMyBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKyAgIENvbnRyaWJ1dGVkIGJ5IEFsdGVyYSBhbmQgTWVudG9yIEdy YXBoaWNzLCBJbmMuCisKK1RoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cit1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKK0ZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkKK2xhdGVyIHZlcnNpb24uCisKK1RoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKK1dJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKK01FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKK1VuZGVy IFNlY3Rpb24gNyBvZiBHUEwgdmVyc2lvbiAzLCB5b3UgYXJlIGdyYW50ZWQgYWRkaXRpb25h bAorcGVybWlzc2lvbnMgZGVzY3JpYmVkIGluIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4 Y2VwdGlvbiwgdmVyc2lvbgorMy4xLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbi4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCithIGNvcHkgb2YgdGhlIEdDQyBS dW50aW1lIExpYnJhcnkgRXhjZXB0aW9uIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOworc2Vl IHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4g IElmIG5vdCwgc2VlCis8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisj aW5jbHVkZSAibGliMi1nY24uaCIKKworLyogMzItYml0IFY2NFNJIGRpdmlkZSBhbmQgbW9k dWxvIGFzIHVzZWQgaW4gZ2NuLgorICAgVGhpcyBpcyBhIHNpbXBsZSBjb252ZXJzaW9uIGZy b20gbGliMi1kaXZtb2QuYy4gICovCisKKyNkZWZpbmUgTUFTS01PREUgdjY0c2kKKyNpbmNs dWRlICJhbWRnY25fdmVjbGliLmgiCisKK3N0YXRpYyB2NjR1ZGkKK19fdWRpdm1vZHY2NHNp NF9hdXggKHY2NHVzaSBudW0sIHY2NHVzaSBkZW4sIHY2NHNpIF9fbWFzaykKK3sKKyAgdjY0 dXNpIGJpdCA9IFZFQ1RPUl9JTklUICgxVSk7CisgIHY2NHVzaSByZXMgPSBWRUNUT1JfSU5J VCAoMFUpOworCisgIFZFQ1RPUl9XSElMRSAoKGRlbiA8IG51bSkgJiAoYml0ICE9IDApICYg KChkZW4gJiAoMUw8PDMxKSkgPT0gMCksCisJCWNvbmQsIE5PX0NPTkQpCisgICAgVkVDVE9S X0NPTkRfTU9WRSAoZGVuLCBkZW4gPDwgMSwgY29uZCk7CisgICAgVkVDVE9SX0NPTkRfTU9W RSAoYml0LCBiaXQgPDwgMSwgY29uZCk7CisgIFZFQ1RPUl9FTkRXSElMRQorICBWRUNUT1Jf V0hJTEUgKGJpdCAhPSAwLCBsb29wY29uZCwgTk9fQ09ORCkKKyAgICBWRUNUT1JfSUYyIChu dW0gPj0gZGVuLCBpZmNvbmQsIGxvb3Bjb25kKQorICAgICAgVkVDVE9SX0NPTkRfTU9WRSAo bnVtLCBudW0gLSBkZW4sIGlmY29uZCk7CisgICAgICBWRUNUT1JfQ09ORF9NT1ZFIChyZXMs IHJlcyB8IGJpdCwgaWZjb25kKTsKKyAgICBWRUNUT1JfRU5ESUYKKyAgICBWRUNUT1JfQ09O RF9NT1ZFIChiaXQsIGJpdCA+PiAxLCBsb29wY29uZCk7CisgICAgVkVDVE9SX0NPTkRfTU9W RSAoZGVuLCBkZW4gPj4gMSwgbG9vcGNvbmQpOworICBWRUNUT1JfRU5EV0hJTEUKKworICBy ZXR1cm4gUEFDS19TSV9QQUlSIChyZXMsIG51bSk7Cit9CisKK3N0YXRpYyB2NjR1ZGkKK19f ZGl2bW9kdjY0c2k0X2F1eCAodjY0c2kgYSwgdjY0c2kgYiwgdjY0c2kgX19tYXNrKQorewor ICB2NjRzaSBuZWdhID0gVkVDVE9SX0lOSVQgKDApOworICB2NjRzaSBuZWdiID0gVkVDVE9S X0lOSVQgKDApOworCisgIFZFQ1RPUl9JRiAoYSA8IDAsIGNvbmQpCisgICAgVkVDVE9SX0NP TkRfTU9WRSAoYSwgLWEsIGNvbmQpOworICAgIG5lZ2EgPSBjb25kOworICBWRUNUT1JfRU5E SUYKKworICBWRUNUT1JfSUYgKGIgPCAwLCBjb25kKQorICAgIFZFQ1RPUl9DT05EX01PVkUg KGIsIC1iLCBjb25kKTsKKyAgICBuZWdiID0gY29uZDsKKyAgVkVDVE9SX0VORElGCisKKyAg djY0dXNpIHVhID0gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IgKGEsIHY2NHVzaSk7CisgIHY2 NHVzaSB1YiA9IF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yIChiLCB2NjR1c2kpOworICB2NjR1 ZGkgcGFpciA9IF9fdWRpdm1vZHY2NHNpNF9hdXggKHVhLCB1YiwgX19tYXNrKTsKKworICB2 NjRzaSBxdW90ID0gVU5QQUNLX1NJX0xPVyAodjY0c2ksIHBhaXIpOworICB2NjRzaSByZW0g PSBVTlBBQ0tfU0lfSElHSCAodjY0c2ksIHBhaXIpOworICBWRUNUT1JfQ09ORF9NT1ZFIChx dW90LCAtcXVvdCwgbmVnYSBeIG5lZ2IpOworICBWRUNUT1JfQ09ORF9NT1ZFIChyZW0sIC1y ZW0sIG5lZ2EpOworICBwYWlyID0gUEFDS19TSV9QQUlSIChxdW90LCByZW0pOworCisgIHJl dHVybiBwYWlyOworfQorCisKK3N0YXRpYyBpbmxpbmUgdjY0c2kKK19fZGl2djY0c2kzX2F1 eCAodjY0c2kgYSwgdjY0c2kgYiwgdjY0c2kgX19tYXNrKQoreworICB2NjR1ZGkgcGFpciA9 IF9fZGl2bW9kdjY0c2k0X2F1eCAoYSwgYiwgX19tYXNrKTsKKyAgcmV0dXJuIFVOUEFDS19T SV9MT1cgKHY2NHNpLCBwYWlyKTsKK30KKworc3RhdGljIGlubGluZSB2NjRzaQorX19tb2R2 NjRzaTNfYXV4ICh2NjRzaSBhLCB2NjRzaSBiLCB2NjRzaSBfX21hc2spCit7CisgIHY2NHVk aSBwYWlyID0gX19kaXZtb2R2NjRzaTRfYXV4IChhLCBiLCBfX21hc2spOworICByZXR1cm4g VU5QQUNLX1NJX0hJR0ggKHY2NHNpLCBwYWlyKTsKK30KKworCitzdGF0aWMgaW5saW5lIHY2 NHVzaQorX191ZGl2djY0c2kzX2F1eCAodjY0dXNpIGEsIHY2NHVzaSBiLCB2NjRzaSBfX21h c2spCit7CisgIHY2NHVkaSBwYWlyID0gX191ZGl2bW9kdjY0c2k0X2F1eCAoYSwgYiwgX19t YXNrKTsKKyAgcmV0dXJuIFVOUEFDS19TSV9MT1cgKHY2NHVzaSwgcGFpcik7Cit9CisKK3N0 YXRpYyBpbmxpbmUgdjY0dXNpCitfX3Vtb2R2NjRzaTNfYXV4ICh2NjR1c2kgYSwgdjY0dXNp IGIsIHY2NHNpIF9fbWFzaykKK3sKKyAgdjY0dWRpIHBhaXIgPSBfX3VkaXZtb2R2NjRzaTRf YXV4IChhLCBiLCBfX21hc2spOworICByZXR1cm4gVU5QQUNLX1NJX0hJR0ggKHY2NHVzaSwg cGFpcik7Cit9CisKK0RFRl9WQVJJQU5UUyAoX19kaXYsIHNpMywgc2kpCitERUZfVkFSSUFO VFMgKF9fbW9kLCBzaTMsIHNpKQorREVGX1ZBUklBTlRTX0IgKF9fZGl2bW9kLCBzaTQsIHVk aSwgc2kpCitERUZfVkFSSUFOVFMgKF9fdWRpdiwgc2kzLCB1c2kpCitERUZfVkFSSUFOVFMg KF9fdW1vZCwgc2kzLCB1c2kpCitERUZfVkFSSUFOVFNfQiAoX191ZGl2bW9kLCBzaTQsIHVk aSwgdXNpKQpkaWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9nY24vdC1hbWRnY24gYi9saWJn Y2MvY29uZmlnL2djbi90LWFtZGdjbgppbmRleCAzOGJkZTU0YTA5Ni4uNDNhNDk2YTE5MWMg MTAwNjQ0Ci0tLSBhL2xpYmdjYy9jb25maWcvZ2NuL3QtYW1kZ2NuCisrKyBiL2xpYmdjYy9j b25maWcvZ2NuL3QtYW1kZ2NuCkBAIC0yLDYgKzIsMTAgQEAgTElCMkFERCArPSAkKHNyY2Rp cikvY29uZmlnL2djbi9hdG9taWMuYyBcCiAJICAgJChzcmNkaXIpL2NvbmZpZy9nY24vbGli Mi1kaXZtb2QuYyBcCiAJICAgJChzcmNkaXIpL2NvbmZpZy9nY24vbGliMi1kaXZtb2QtaGku YyBcCiAJICAgJChzcmNkaXIpL2NvbmZpZy9nY24vbGliMi1kaXZtb2QtZGkuYyBcCisJICAg JChzcmNkaXIpL2NvbmZpZy9nY24vbGliMi12ZWNfZGl2bW9kLmMgXAorCSAgICQoc3JjZGly KS9jb25maWcvZ2NuL2xpYjItdmVjX2Rpdm1vZC1xaS5jIFwKKwkgICAkKHNyY2RpcikvY29u ZmlnL2djbi9saWIyLXZlY19kaXZtb2QtaGkuYyBcCisJICAgJChzcmNkaXIpL2NvbmZpZy9n Y24vbGliMi12ZWNfZGl2bW9kLWRpLmMgXAogCSAgICQoc3JjZGlyKS9jb25maWcvZ2NuL2xp YjItYnN3YXB0aTIuYyBcCiAJICAgJChzcmNkaXIpL2NvbmZpZy9nY24vdW53aW5kLWdjbi5j CiAK --------------Lk80Jvkt6qRngFkl1Yf058o0 Content-Type: text/plain; charset="UTF-8"; name="230606-v64timode.patch" Content-Disposition: attachment; filename="230606-v64timode.patch" Content-Transfer-Encoding: base64 YW1kZ2NuOiBtaW5pbWFsIFY2NFRJbW9kZSB2ZWN0b3Igc3VwcG9ydAoKSnVzdCBlbm91Z2gg c3VwcG9ydCBmb3IgVEltb2RlIHZlY3RvcnMgdG8gZXhpc3QsIGxvYWQsIHN0b3JlLCBtb3Zl LAp3aXRob3V0IGFueSByZWFsIGluc3RydWN0aW9ucyBhdmFpbGFibGUuCgpUaGlzIGlzIHBy aW1hcmlseSBmb3IgdGhlIHVzZSBvZiBkaXZtb2R2NjRkaTQsIHdoaWNoIHVzZXMgVEltb2Rl IHRvCnJldHVybiBhIHBhaXIgb2YgREltb2RlIHZhbHVlcy4KCmdjYy9DaGFuZ2VMb2c6CgoJ KiBjb25maWcvZ2NuL2djbi1wcm90b3MuaCAodmdwcl80cmVnX21vZGVfcCk6IE5ldyBmdW5j dGlvbi4KCSogY29uZmlnL2djbi9nY24tdmFsdS5tZCAoVl80UkVHLCBWXzRSRUdfQUxUKTog TmV3IGl0ZXJhdG9ycy4KCShWX01PViwgVl9NT1ZfQUxUKTogTGlrZXdpc2UuCgkoc2NhbGFy X21vZGUsIFNDQUxBUl9NT0RFKTogQWRkIFRJbW9kZS4KCSh2bnNpLCBWblNJLCB2bmRpLCBW bkRJKTogTGlrZXdpc2UuCgkodmVjX21lcmdlLCB2ZWNfbWVyZ2Vfd2l0aF9jbG9iYmVyLCB2 ZWNfbWVyZ2Vfd2l0aF92Y2MpOiBVc2UgVl9NT1YuCgkobW92PG1vZGU+LCBtb3Y8bW9kZT5f dW5zcGVjKTogVXNlIFZfTU9WLgoJKCptb3Y8bW9kZT5fNHJlZyk6IE5ldyBpbnNuLgoJKG1v djxtb2RlPl9leGVjKTogTmV3IDRyZWcgdmFyaWFudC4KCShtb3Y8bW9kZT5fc2dwcmJhc2Up OiBMaWtld2lzZS4KCShyZWxvYWRfaW48bW9kZT4sIHJlbG9hZF9vdXQ8bW9kZT4pOiBVc2Ug Vl9NT1YuCgkodmVjX3NldDxtb2RlPik6IExpa2V3aXNlLgoJKHZlY19kdXBsaWNhdGU8bW9k ZT48ZXhlYz4pOiBOZXcgNHJlZyB2YXJpYW50LgoJKHZlY19leHRyYWN0PG1vZGU+PHNjYWxh cl9tb2RlPik6IExpa2V3aXNlLgoJKHZlY19leHRyYWN0PFZfQUxMOm1vZGU+PFZfQUxMX0FM VDptb2RlPik6IFJlbmFtZSB0byAuLi4KCSh2ZWNfZXh0cmFjdDxWX01PVjptb2RlPjxWX01P Vl9BTFQ6bW9kZT4pOiAuLi4gdGhpcywgYW5kIHVzZSBWX01PVi4KCSh2ZWNfZXh0cmFjdDxW XzRSRUc6bW9kZT48Vl80UkVHX0FMVDptb2RlPl9ub3ApOiBOZXcgNHJlZyB2YXJpYW50LgoJ KGZvbGRfZXh0cmFjdF9sYXN0Xzxtb2RlPik6IFVzZSBWX01PVi4KCSh2ZWNfaW5pdDxWX0FM TDptb2RlPjxWX0FMTF9BTFQ6bW9kZT4pOiBSZW5hbWUgdG8gLi4uCgkodmVjX2luaXQ8Vl9N T1Y6bW9kZT48Vl9NT1ZfQUxUOm1vZGU+KTogLi4uIHRoaXMsIGFuZCB1c2UgVl9NT1YuCgko Z2F0aGVyX2xvYWQ8bW9kZT48dm5zaT4sIGdhdGhlcjxtb2RlPl9leHByPGV4ZWM+LAoJZ2F0 aGVyPG1vZGU+X2luc25fMW9mZnNldDxleGVjPiwgZ2F0aGVyPG1vZGU+X2luc25fMW9mZnNl dF9kczxleGVjPiwKCWdhdGhlcjxtb2RlPl9pbnNuXzJvZmZzZXRzPGV4ZWM+KTogVXNlIFZf TU9WLgoJKHNjYXR0ZXJfc3RvcmU8bW9kZT48dm5zaT4sIHNjYXR0ZXI8bW9kZT5fZXhwcjxl eGVjX3NjYXR0ZXI+LAoJc2NhdHRlcjxtb2RlPl9pbnNuXzFvZmZzZXQ8ZXhlY19zY2F0dGVy PiwKCXNjYXR0ZXI8bW9kZT5faW5zbl8xb2Zmc2V0X2RzPGV4ZWNfc2NhdHRlcj4sCglzY2F0 dGVyPG1vZGU+X2luc25fMm9mZnNldHM8ZXhlY19zY2F0dGVyPik6IExpa2V3aXNlLgoJKG1h c2tsb2FkPG1vZGU+ZGksIG1hc2tzdG9yZTxtb2RlPmRpLCBtYXNrX2dhdGhlcl9sb2FkPG1v ZGU+PHZuc2k+LAoJbWFza19zY2F0dGVyX3N0b3JlPG1vZGU+PHZuc2k+KTogTGlrZXdpc2Uu CgkqIGNvbmZpZy9nY24vZ2NuLmNjIChnY25fY2xhc3NfbWF4X25yZWdzKTogVXNlIHZncHJf NHJlZ19tb2RlX3AuCgkoZ2NuX2hhcmRfcmVnbm9fbW9kZV9vayk6IExpa2V3aXNlLgoJKEdF Tl9WTk0pOiBBZGQgVEltb2RlIHN1cHBvcnQuCgkoVVNFX1RJKTogTmV3IG1hY3JvLiBTZXBh cmF0ZSBUSW1vZGUgb3BlcmF0aW9ucyBmcm9tIG5vbi1USW1vZGUgb25lcy4KCShnY25fdmVj dG9yX21vZGVfc3VwcG9ydGVkX3ApOiBBZGQgVjY0VEltb2RlLCBWMzJUSW1vZGUsIFYxNlRJ bW9kZSwKCVY4VEltb2RlLCBhbmQgVjJUSW1vZGUuCgkocHJpbnRfb3BlcmFuZCk6ICBBZGQg J0onIGFuZCAnSycgcHJpbnQgY29kZXMuCgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9nY24v Z2NuLXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLXByb3Rvcy5oCmluZGV4IDI4N2Nl MTdkNDIyLi4zYmVmYjJiN2NhYSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9nY24vZ2NuLXBy b3Rvcy5oCisrKyBiL2djYy9jb25maWcvZ2NuL2djbi1wcm90b3MuaApAQCAtMTM2LDYgKzEz NiwxNyBAQCB2Z3ByXzJyZWdfbW9kZV9wIChtYWNoaW5lX21vZGUgbW9kZSkKICAgcmV0dXJu IChtb2RlID09IERJbW9kZSB8fCBtb2RlID09IERGbW9kZSk7CiB9CiAKKy8qIFJldHVybiB0 cnVlIGlmIE1PREUgaXMgdmFsaWQgZm9yIGZvdXIgVkdQUiByZWdpc3RlcnMuICAqLworCitp bmxpbmUgYm9vbAordmdwcl80cmVnX21vZGVfcCAobWFjaGluZV9tb2RlIG1vZGUpCit7Cisg IGlmIChWRUNUT1JfTU9ERV9QIChtb2RlKSkKKyAgICBtb2RlID0gR0VUX01PREVfSU5ORVIg KG1vZGUpOworCisgIHJldHVybiAobW9kZSA9PSBUSW1vZGUpOworfQorCiAvKiBSZXR1cm4g dHJ1ZSBpZiBNT0RFIGNhbiBiZSBoYW5kbGVkIGRpcmVjdGx5IGJ5IFZHUFIgb3BlcmF0aW9u cy4gICovCiAKIGlubGluZSBib29sCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2djbi9nY24t dmFsdS5tZCBiL2djYy9jb25maWcvZ2NuL2djbi12YWx1Lm1kCmluZGV4IDQ0YzQ4NDY4ZGQ2 Li5hYTZjOGZlMjdjMiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9nY24vZ2NuLXZhbHUubWQK KysrIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLXZhbHUubWQKQEAgLTk2LDYgKzk2LDEwIEBAIChk ZWZpbmVfbW9kZV9pdGVyYXRvciBWXzJSRUdfQUxUCiAJCSAgICAgICBWMzJESSBWMzJERgog CQkgICAgICAgVjY0REkgVjY0REZdKQogCis7IFZlY3RvciBtb2RlcyBmb3IgZm91ciB2ZWN0 b3IgcmVnaXN0ZXJzCisoZGVmaW5lX21vZGVfaXRlcmF0b3IgVl80UkVHIFtWMlRJIFY0VEkg VjhUSSBWMTZUSSBWMzJUSSBWNjRUSV0pCisoZGVmaW5lX21vZGVfaXRlcmF0b3IgVl80UkVH X0FMVCBbVjJUSSBWNFRJIFY4VEkgVjE2VEkgVjMyVEkgVjY0VEldKQorCiA7IFZlY3RvciBt b2RlcyB3aXRoIG5hdGl2ZSBzdXBwb3J0CiAoZGVmaW5lX21vZGVfaXRlcmF0b3IgVl9ub1FJ CiAJCSAgICAgIFtWMkhJIFYySEYgVjJTSSBWMlNGIFYyREkgVjJERgpAQCAtMTM2LDcgKzE0 MCw3IEBAIChkZWZpbmVfbW9kZV9pdGVyYXRvciBTVl9TRkRGCiAJCSAgICAgICBWMzJTRiBW MzJERgogCQkgICAgICAgVjY0U0YgVjY0REZdKQogCi07IEFsbCBvZiBhYm92ZQorOyBBbGwg bW9kZXMgaW4gd2hpY2ggd2Ugd2FudCB0byBkbyBtb3JlIHRoYW4ganVzdCBtb3Zlcy4KIChk ZWZpbmVfbW9kZV9pdGVyYXRvciBWX0FMTAogCQkgICAgICBbVjJRSSBWMkhJIFYySEYgVjJT SSBWMlNGIFYyREkgVjJERgogCQkgICAgICAgVjRRSSBWNEhJIFY0SEYgVjRTSSBWNFNGIFY0 REkgVjRERgpAQCAtMTc1LDk3ICsxNzksMTEzIEBAIChkZWZpbmVfbW9kZV9pdGVyYXRvciBT Vl9GUAogCQkgICAgICAgVjMySEYgVjMyU0YgVjMyREYKIAkJICAgICAgIFY2NEhGIFY2NFNG IFY2NERGXSkKIAorOyBBbGwgbW9kZXMgdGhhdCBuZWVkIG1vdmVzLCBpbmNsdWRpbmcgdGhv c2Ugd2l0aG91dCBtYW55IGluc25zLgorKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZfTU9WCisJ CSAgICAgIFtWMlFJIFYySEkgVjJIRiBWMlNJIFYyU0YgVjJESSBWMkRGIFYyVEkKKwkJICAg ICAgIFY0UUkgVjRISSBWNEhGIFY0U0kgVjRTRiBWNERJIFY0REYgVjRUSQorCQkgICAgICAg VjhRSSBWOEhJIFY4SEYgVjhTSSBWOFNGIFY4REkgVjhERiBWOFRJCisJCSAgICAgICBWMTZR SSBWMTZISSBWMTZIRiBWMTZTSSBWMTZTRiBWMTZESSBWMTZERiBWMTZUSQorCQkgICAgICAg VjMyUUkgVjMySEkgVjMySEYgVjMyU0kgVjMyU0YgVjMyREkgVjMyREYgVjMyVEkKKwkJICAg ICAgIFY2NFFJIFY2NEhJIFY2NEhGIFY2NFNJIFY2NFNGIFY2NERJIFY2NERGIFY2NFRJXSkK KyhkZWZpbmVfbW9kZV9pdGVyYXRvciBWX01PVl9BTFQKKwkJICAgICAgW1YyUUkgVjJISSBW MkhGIFYyU0kgVjJTRiBWMkRJIFYyREYgVjJUSQorCQkgICAgICAgVjRRSSBWNEhJIFY0SEYg VjRTSSBWNFNGIFY0REkgVjRERiBWNFRJCisJCSAgICAgICBWOFFJIFY4SEkgVjhIRiBWOFNJ IFY4U0YgVjhESSBWOERGIFY4VEkKKwkJICAgICAgIFYxNlFJIFYxNkhJIFYxNkhGIFYxNlNJ IFYxNlNGIFYxNkRJIFYxNkRGIFYxNlRJCisJCSAgICAgICBWMzJRSSBWMzJISSBWMzJIRiBW MzJTSSBWMzJTRiBWMzJESSBWMzJERiBWMzJUSQorCQkgICAgICAgVjY0UUkgVjY0SEkgVjY0 SEYgVjY0U0kgVjY0U0YgVjY0REkgVjY0REYgVjY0VEldKQorCiAoZGVmaW5lX21vZGVfYXR0 ciBzY2FsYXJfbW9kZQotICBbKFFJICJxaSIpIChISSAiaGkiKSAoU0kgInNpIikKKyAgWyhR SSAicWkiKSAoSEkgImhpIikgKFNJICJzaSIpIChUSSAidGkiKQogICAgKEhGICJoZiIpIChT RiAic2YiKSAoREkgImRpIikgKERGICJkZiIpCi0gICAoVjJRSSAicWkiKSAoVjJISSAiaGki KSAoVjJTSSAic2kiKQorICAgKFYyUUkgInFpIikgKFYySEkgImhpIikgKFYyU0kgInNpIikg KFYyVEkgInRpIikKICAgIChWMkhGICJoZiIpIChWMlNGICJzZiIpIChWMkRJICJkaSIpIChW MkRGICJkZiIpCi0gICAoVjRRSSAicWkiKSAoVjRISSAiaGkiKSAoVjRTSSAic2kiKQorICAg KFY0UUkgInFpIikgKFY0SEkgImhpIikgKFY0U0kgInNpIikgKFY0VEkgInRpIikKICAgIChW NEhGICJoZiIpIChWNFNGICJzZiIpIChWNERJICJkaSIpIChWNERGICJkZiIpCi0gICAoVjhR SSAicWkiKSAoVjhISSAiaGkiKSAoVjhTSSAic2kiKQorICAgKFY4UUkgInFpIikgKFY4SEkg ImhpIikgKFY4U0kgInNpIikgKFY4VEkgInRpIikKICAgIChWOEhGICJoZiIpIChWOFNGICJz ZiIpIChWOERJICJkaSIpIChWOERGICJkZiIpCi0gICAoVjE2UUkgInFpIikgKFYxNkhJICJo aSIpIChWMTZTSSAic2kiKQorICAgKFYxNlFJICJxaSIpIChWMTZISSAiaGkiKSAoVjE2U0kg InNpIikgKFYxNlRJICJ0aSIpCiAgICAoVjE2SEYgImhmIikgKFYxNlNGICJzZiIpIChWMTZE SSAiZGkiKSAoVjE2REYgImRmIikKLSAgIChWMzJRSSAicWkiKSAoVjMySEkgImhpIikgKFYz MlNJICJzaSIpCisgICAoVjMyUUkgInFpIikgKFYzMkhJICJoaSIpIChWMzJTSSAic2kiKSAo VjMyVEkgInRpIikKICAgIChWMzJIRiAiaGYiKSAoVjMyU0YgInNmIikgKFYzMkRJICJkaSIp IChWMzJERiAiZGYiKQotICAgKFY2NFFJICJxaSIpIChWNjRISSAiaGkiKSAoVjY0U0kgInNp IikKKyAgIChWNjRRSSAicWkiKSAoVjY0SEkgImhpIikgKFY2NFNJICJzaSIpIChWNjRUSSAi dGkiKQogICAgKFY2NEhGICJoZiIpIChWNjRTRiAic2YiKSAoVjY0REkgImRpIikgKFY2NERG ICJkZiIpXSkKIAogKGRlZmluZV9tb2RlX2F0dHIgU0NBTEFSX01PREUKLSAgWyhRSSAiUUki KSAoSEkgIkhJIikgKFNJICJTSSIpCisgIFsoUUkgIlFJIikgKEhJICJISSIpIChTSSAiU0ki KSAoVEkgIlRJIikKICAgIChIRiAiSEYiKSAoU0YgIlNGIikgKERJICJESSIpIChERiAiREYi KQotICAgKFYyUUkgIlFJIikgKFYySEkgIkhJIikgKFYyU0kgIlNJIikKKyAgIChWMlFJICJR SSIpIChWMkhJICJISSIpIChWMlNJICJTSSIpIChWMlRJICJUSSIpCiAgICAoVjJIRiAiSEYi KSAoVjJTRiAiU0YiKSAoVjJESSAiREkiKSAoVjJERiAiREYiKQotICAgKFY0UUkgIlFJIikg KFY0SEkgIkhJIikgKFY0U0kgIlNJIikKKyAgIChWNFFJICJRSSIpIChWNEhJICJISSIpIChW NFNJICJTSSIpIChWNFRJICJUSSIpCiAgICAoVjRIRiAiSEYiKSAoVjRTRiAiU0YiKSAoVjRE SSAiREkiKSAoVjRERiAiREYiKQotICAgKFY4UUkgIlFJIikgKFY4SEkgIkhJIikgKFY4U0kg IlNJIikKKyAgIChWOFFJICJRSSIpIChWOEhJICJISSIpIChWOFNJICJTSSIpIChWOFRJICJU SSIpCiAgICAoVjhIRiAiSEYiKSAoVjhTRiAiU0YiKSAoVjhESSAiREkiKSAoVjhERiAiREYi KQotICAgKFYxNlFJICJRSSIpIChWMTZISSAiSEkiKSAoVjE2U0kgIlNJIikKKyAgIChWMTZR SSAiUUkiKSAoVjE2SEkgIkhJIikgKFYxNlNJICJTSSIpIChWMTZUSSAiVEkiKQogICAgKFYx NkhGICJIRiIpIChWMTZTRiAiU0YiKSAoVjE2REkgIkRJIikgKFYxNkRGICJERiIpCi0gICAo VjMyUUkgIlFJIikgKFYzMkhJICJISSIpIChWMzJTSSAiU0kiKQorICAgKFYzMlFJICJRSSIp IChWMzJISSAiSEkiKSAoVjMyU0kgIlNJIikgKFYzMlRJICJUSSIpCiAgICAoVjMySEYgIkhG IikgKFYzMlNGICJTRiIpIChWMzJESSAiREkiKSAoVjMyREYgIkRGIikKLSAgIChWNjRRSSAi UUkiKSAoVjY0SEkgIkhJIikgKFY2NFNJICJTSSIpCisgICAoVjY0UUkgIlFJIikgKFY2NEhJ ICJISSIpIChWNjRTSSAiU0kiKSAoVjY0VEkgIlRJIikKICAgIChWNjRIRiAiSEYiKSAoVjY0 U0YgIlNGIikgKFY2NERJICJESSIpIChWNjRERiAiREYiKV0pCiAKIChkZWZpbmVfbW9kZV9h dHRyIHZuc2kKLSAgWyhRSSAic2kiKSAoSEkgInNpIikgKFNJICJzaSIpCisgIFsoUUkgInNp IikgKEhJICJzaSIpIChTSSAic2kiKSAoVEkgInNpIikKICAgIChIRiAic2kiKSAoU0YgInNp IikgKERJICJzaSIpIChERiAic2kiKQogICAgKFYyUUkgInYyc2kiKSAoVjJISSAidjJzaSIp IChWMkhGICJ2MnNpIikgKFYyU0kgInYyc2kiKQotICAgKFYyU0YgInYyc2kiKSAoVjJESSAi djJzaSIpIChWMkRGICJ2MnNpIikKKyAgIChWMlNGICJ2MnNpIikgKFYyREkgInYyc2kiKSAo VjJERiAidjJzaSIpIChWMlRJICJ2MnNpIikKICAgIChWNFFJICJ2NHNpIikgKFY0SEkgInY0 c2kiKSAoVjRIRiAidjRzaSIpIChWNFNJICJ2NHNpIikKLSAgIChWNFNGICJ2NHNpIikgKFY0 REkgInY0c2kiKSAoVjRERiAidjRzaSIpCisgICAoVjRTRiAidjRzaSIpIChWNERJICJ2NHNp IikgKFY0REYgInY0c2kiKSAoVjRUSSAidjRzaSIpCiAgICAoVjhRSSAidjhzaSIpIChWOEhJ ICJ2OHNpIikgKFY4SEYgInY4c2kiKSAoVjhTSSAidjhzaSIpCi0gICAoVjhTRiAidjhzaSIp IChWOERJICJ2OHNpIikgKFY4REYgInY4c2kiKQorICAgKFY4U0YgInY4c2kiKSAoVjhESSAi djhzaSIpIChWOERGICJ2OHNpIikgKFY4VEkgInY4c2kiKQogICAgKFYxNlFJICJ2MTZzaSIp IChWMTZISSAidjE2c2kiKSAoVjE2SEYgInYxNnNpIikgKFYxNlNJICJ2MTZzaSIpCi0gICAo VjE2U0YgInYxNnNpIikgKFYxNkRJICJ2MTZzaSIpIChWMTZERiAidjE2c2kiKQorICAgKFYx NlNGICJ2MTZzaSIpIChWMTZESSAidjE2c2kiKSAoVjE2REYgInYxNnNpIikgKFYxNlRJICJ2 MTZzaSIpCiAgICAoVjMyUUkgInYzMnNpIikgKFYzMkhJICJ2MzJzaSIpIChWMzJIRiAidjMy c2kiKSAoVjMyU0kgInYzMnNpIikKLSAgIChWMzJTRiAidjMyc2kiKSAoVjMyREkgInYzMnNp IikgKFYzMkRGICJ2MzJzaSIpCisgICAoVjMyU0YgInYzMnNpIikgKFYzMkRJICJ2MzJzaSIp IChWMzJERiAidjMyc2kiKSAoVjMyVEkgInYzMnNpIikKICAgIChWNjRRSSAidjY0c2kiKSAo VjY0SEkgInY2NHNpIikgKFY2NEhGICJ2NjRzaSIpIChWNjRTSSAidjY0c2kiKQotICAgKFY2 NFNGICJ2NjRzaSIpIChWNjRESSAidjY0c2kiKSAoVjY0REYgInY2NHNpIildKQorICAgKFY2 NFNGICJ2NjRzaSIpIChWNjRESSAidjY0c2kiKSAoVjY0REYgInY2NHNpIikgKFY2NFRJICJ2 NjRzaSIpXSkKIAogKGRlZmluZV9tb2RlX2F0dHIgVm5TSQotICBbKFFJICJTSSIpIChISSAi U0kiKSAoU0kgIlNJIikKKyAgWyhRSSAiU0kiKSAoSEkgIlNJIikgKFNJICJTSSIpIChUSSAi U0kiKQogICAgKEhGICJTSSIpIChTRiAiU0kiKSAoREkgIlNJIikgKERGICJTSSIpCiAgICAo VjJRSSAiVjJTSSIpIChWMkhJICJWMlNJIikgKFYySEYgIlYyU0kiKSAoVjJTSSAiVjJTSSIp Ci0gICAoVjJTRiAiVjJTSSIpIChWMkRJICJWMlNJIikgKFYyREYgIlYyU0kiKQorICAgKFYy U0YgIlYyU0kiKSAoVjJESSAiVjJTSSIpIChWMkRGICJWMlNJIikgKFYyVEkgIlYyU0kiKQog ICAgKFY0UUkgIlY0U0kiKSAoVjRISSAiVjRTSSIpIChWNEhGICJWNFNJIikgKFY0U0kgIlY0 U0kiKQotICAgKFY0U0YgIlY0U0kiKSAoVjRESSAiVjRTSSIpIChWNERGICJWNFNJIikKKyAg IChWNFNGICJWNFNJIikgKFY0REkgIlY0U0kiKSAoVjRERiAiVjRTSSIpIChWNFRJICJWNFNJ IikKICAgIChWOFFJICJWOFNJIikgKFY4SEkgIlY4U0kiKSAoVjhIRiAiVjhTSSIpIChWOFNJ ICJWOFNJIikKLSAgIChWOFNGICJWOFNJIikgKFY4REkgIlY4U0kiKSAoVjhERiAiVjhTSSIp CisgICAoVjhTRiAiVjhTSSIpIChWOERJICJWOFNJIikgKFY4REYgIlY4U0kiKSAoVjhUSSAi VjhTSSIpCiAgICAoVjE2UUkgIlYxNlNJIikgKFYxNkhJICJWMTZTSSIpIChWMTZIRiAiVjE2 U0kiKSAoVjE2U0kgIlYxNlNJIikKLSAgIChWMTZTRiAiVjE2U0kiKSAoVjE2REkgIlYxNlNJ IikgKFYxNkRGICJWMTZTSSIpCisgICAoVjE2U0YgIlYxNlNJIikgKFYxNkRJICJWMTZTSSIp IChWMTZERiAiVjE2U0kiKSAoVjE2VEkgIlYxNlNJIikKICAgIChWMzJRSSAiVjMyU0kiKSAo VjMySEkgIlYzMlNJIikgKFYzMkhGICJWMzJTSSIpIChWMzJTSSAiVjMyU0kiKQotICAgKFYz MlNGICJWMzJTSSIpIChWMzJESSAiVjMyU0kiKSAoVjMyREYgIlYzMlNJIikKKyAgIChWMzJT RiAiVjMyU0kiKSAoVjMyREkgIlYzMlNJIikgKFYzMkRGICJWMzJTSSIpIChWMzJUSSAiVjMy U0kiKQogICAgKFY2NFFJICJWNjRTSSIpIChWNjRISSAiVjY0U0kiKSAoVjY0SEYgIlY2NFNJ IikgKFY2NFNJICJWNjRTSSIpCi0gICAoVjY0U0YgIlY2NFNJIikgKFY2NERJICJWNjRTSSIp IChWNjRERiAiVjY0U0kiKV0pCisgICAoVjY0U0YgIlY2NFNJIikgKFY2NERJICJWNjRTSSIp IChWNjRERiAiVjY0U0kiKSAoVjY0VEkgIlY2NFNJIildKQogCiAoZGVmaW5lX21vZGVfYXR0 ciB2bmRpCiAgIFsoVjJRSSAidjJkaSIpIChWMkhJICJ2MmRpIikgKFYySEYgInYyZGkiKSAo VjJTSSAidjJkaSIpCi0gICAoVjJTRiAidjJkaSIpIChWMkRJICJ2MmRpIikgKFYyREYgInYy ZGkiKQorICAgKFYyU0YgInYyZGkiKSAoVjJESSAidjJkaSIpIChWMkRGICJ2MmRpIikgKFYy VEkgInYyZGkiKQogICAgKFY0UUkgInY0ZGkiKSAoVjRISSAidjRkaSIpIChWNEhGICJ2NGRp IikgKFY0U0kgInY0ZGkiKQotICAgKFY0U0YgInY0ZGkiKSAoVjRESSAidjRkaSIpIChWNERG ICJ2NGRpIikKKyAgIChWNFNGICJ2NGRpIikgKFY0REkgInY0ZGkiKSAoVjRERiAidjRkaSIp IChWNFRJICJ2NGRpIikKICAgIChWOFFJICJ2OGRpIikgKFY4SEkgInY4ZGkiKSAoVjhIRiAi djhkaSIpIChWOFNJICJ2OGRpIikKLSAgIChWOFNGICJ2OGRpIikgKFY4REkgInY4ZGkiKSAo VjhERiAidjhkaSIpCisgICAoVjhTRiAidjhkaSIpIChWOERJICJ2OGRpIikgKFY4REYgInY4 ZGkiKSAoVjhUSSAidjhkaSIpCiAgICAoVjE2UUkgInYxNmRpIikgKFYxNkhJICJ2MTZkaSIp IChWMTZIRiAidjE2ZGkiKSAoVjE2U0kgInYxNmRpIikKLSAgIChWMTZTRiAidjE2ZGkiKSAo VjE2REkgInYxNmRpIikgKFYxNkRGICJ2MTZkaSIpCisgICAoVjE2U0YgInYxNmRpIikgKFYx NkRJICJ2MTZkaSIpIChWMTZERiAidjE2ZGkiKSAoVjE2VEkgInYxNmRpIikKICAgIChWMzJR SSAidjMyZGkiKSAoVjMySEkgInYzMmRpIikgKFYzMkhGICJ2MzJkaSIpIChWMzJTSSAidjMy ZGkiKQotICAgKFYzMlNGICJ2MzJkaSIpIChWMzJESSAidjMyZGkiKSAoVjMyREYgInYzMmRp IikKKyAgIChWMzJTRiAidjMyZGkiKSAoVjMyREkgInYzMmRpIikgKFYzMkRGICJ2MzJkaSIp IChWMzJUSSAidjMyZGkiKQogICAgKFY2NFFJICJ2NjRkaSIpIChWNjRISSAidjY0ZGkiKSAo VjY0SEYgInY2NGRpIikgKFY2NFNJICJ2NjRkaSIpCi0gICAoVjY0U0YgInY2NGRpIikgKFY2 NERJICJ2NjRkaSIpIChWNjRERiAidjY0ZGkiKV0pCisgICAoVjY0U0YgInY2NGRpIikgKFY2 NERJICJ2NjRkaSIpIChWNjRERiAidjY0ZGkiKSAoVjY0VEkgInY2NGRpIildKQogCiAoZGVm aW5lX21vZGVfYXR0ciBWbkRJCiAgIFsoVjJRSSAiVjJESSIpIChWMkhJICJWMkRJIikgKFYy SEYgIlYyREkiKSAoVjJTSSAiVjJESSIpCi0gICAoVjJTRiAiVjJESSIpIChWMkRJICJWMkRJ IikgKFYyREYgIlYyREkiKQorICAgKFYyU0YgIlYyREkiKSAoVjJESSAiVjJESSIpIChWMkRG ICJWMkRJIikgKFYyVEkgIlYyREkiKQogICAgKFY0UUkgIlY0REkiKSAoVjRISSAiVjRESSIp IChWNEhGICJWNERJIikgKFY0U0kgIlY0REkiKQotICAgKFY0U0YgIlY0REkiKSAoVjRESSAi VjRESSIpIChWNERGICJWNERJIikKKyAgIChWNFNGICJWNERJIikgKFY0REkgIlY0REkiKSAo VjRERiAiVjRESSIpIChWNFRJICJWNERJIikKICAgIChWOFFJICJWOERJIikgKFY4SEkgIlY4 REkiKSAoVjhIRiAiVjhESSIpIChWOFNJICJWOERJIikKLSAgIChWOFNGICJWOERJIikgKFY4 REkgIlY4REkiKSAoVjhERiAiVjhESSIpCisgICAoVjhTRiAiVjhESSIpIChWOERJICJWOERJ IikgKFY4REYgIlY4REkiKSAoVjhUSSAiVjhESSIpCiAgICAoVjE2UUkgIlYxNkRJIikgKFYx NkhJICJWMTZESSIpIChWMTZIRiAiVjE2REkiKSAoVjE2U0kgIlYxNkRJIikKLSAgIChWMTZT RiAiVjE2REkiKSAoVjE2REkgIlYxNkRJIikgKFYxNkRGICJWMTZESSIpCisgICAoVjE2U0Yg IlYxNkRJIikgKFYxNkRJICJWMTZESSIpIChWMTZERiAiVjE2REkiKSAoVjE2VEkgIlYxNkRJ IikKICAgIChWMzJRSSAiVjMyREkiKSAoVjMySEkgIlYzMkRJIikgKFYzMkhGICJWMzJESSIp IChWMzJTSSAiVjMyREkiKQotICAgKFYzMlNGICJWMzJESSIpIChWMzJESSAiVjMyREkiKSAo VjMyREYgIlYzMkRJIikKKyAgIChWMzJTRiAiVjMyREkiKSAoVjMyREkgIlYzMkRJIikgKFYz MkRGICJWMzJESSIpIChWMzJUSSAiVjMyREkiKQogICAgKFY2NFFJICJWNjRESSIpIChWNjRI SSAiVjY0REkiKSAoVjY0SEYgIlY2NERJIikgKFY2NFNJICJWNjRESSIpCi0gICAoVjY0U0Yg IlY2NERJIikgKFY2NERJICJWNjRESSIpIChWNjRERiAiVjY0REkiKV0pCisgICAoVjY0U0Yg IlY2NERJIikgKFY2NERJICJWNjRESSIpIChWNjRERiAiVjY0REkiKSAoVjY0VEkgIlY2NERJ IildKQogCiAoZGVmaW5lX21vZGVfYXR0ciBzZHdhCiAgIFsoVjJRSSAiQllURV8wIikgKFYy SEkgIldPUkRfMCIpIChWMlNJICJEV09SRCIpCkBAIC0yODgsMzggKzMwOCwzOCBAQCAoZGVm aW5lX3N1YnN0X2F0dHIgImV4ZWNfc2NhdHRlciIgInNjYXR0ZXJfc3RvcmUiCiAJCSAgICIi ICJfZXhlYyIpCiAKIChkZWZpbmVfc3Vic3QgInZlY19tZXJnZSIKLSAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6Vl9BTEwgMCkKLQkobWF0Y2hfb3BlcmFuZDpWX0FMTCAxKSldCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZfTU9WIDApCisJKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMSkpXQog ICAiIgogICBbKHNldCAobWF0Y2hfZHVwIDApCi0JKHZlY19tZXJnZTpWX0FMTAorCSh2ZWNf bWVyZ2U6Vl9NT1YKIAkgIChtYXRjaF9kdXAgMSkKLQkgIChtYXRjaF9vcGVyYW5kOlZfQUxM IDMgImdjbl9yZWdpc3Rlcl9vcl91bnNwZWNfb3BlcmFuZCIgIlUwIikKKwkgIChtYXRjaF9v cGVyYW5kOlZfTU9WIDMgImdjbl9yZWdpc3Rlcl9vcl91bnNwZWNfb3BlcmFuZCIgIlUwIikK IAkgIChtYXRjaF9vcGVyYW5kOkRJIDQgImdjbl9leGVjX3JlZ19vcGVyYW5kIiAiZSIpKSld KQogCiAoZGVmaW5lX3N1YnN0ICJ2ZWNfbWVyZ2Vfd2l0aF9jbG9iYmVyIgotICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWX0FMTCAwKQotCShtYXRjaF9vcGVyYW5kOlZfQUxMIDEpKQorICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWX01PViAwKQorCShtYXRjaF9vcGVyYW5kOlZfTU9WIDEp KQogICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQgMikpXQogICAiIgogICBbKHNldCAobWF0 Y2hfZHVwIDApCi0JKHZlY19tZXJnZTpWX0FMTAorCSh2ZWNfbWVyZ2U6Vl9NT1YKIAkgICht YXRjaF9kdXAgMSkKLQkgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDMgImdjbl9yZWdpc3Rlcl9v cl91bnNwZWNfb3BlcmFuZCIgIlUwIikKKwkgIChtYXRjaF9vcGVyYW5kOlZfTU9WIDMgImdj bl9yZWdpc3Rlcl9vcl91bnNwZWNfb3BlcmFuZCIgIlUwIikKIAkgIChtYXRjaF9vcGVyYW5k OkRJIDQgImdjbl9leGVjX3JlZ19vcGVyYW5kIiAiZSIpKSkKICAgIChjbG9iYmVyIChtYXRj aF9kdXAgMikpXSkKIAogKGRlZmluZV9zdWJzdCAidmVjX21lcmdlX3dpdGhfdmNjIgotICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwKQotCShtYXRjaF9vcGVyYW5kOlZfQUxMIDEp KQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX01PViAwKQorCShtYXRjaF9vcGVyYW5kOlZf TU9WIDEpKQogICAgKHNldCAobWF0Y2hfb3BlcmFuZDpESSAyKQogCShtYXRjaF9vcGVyYW5k OkRJIDMpKV0KICAgIiIKICAgWyhwYXJhbGxlbAogICAgICBbKHNldCAobWF0Y2hfZHVwIDAp Ci0JICAgKHZlY19tZXJnZTpWX0FMTAorCSAgICh2ZWNfbWVyZ2U6Vl9NT1YKIAkgICAgICht YXRjaF9kdXAgMSkKLQkgICAgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDQgImdjbl9yZWdpc3Rl cl9vcl91bnNwZWNfb3BlcmFuZCIgIlUwIikKKwkgICAgIChtYXRjaF9vcGVyYW5kOlZfTU9W IDQgImdjbl9yZWdpc3Rlcl9vcl91bnNwZWNfb3BlcmFuZCIgIlUwIikKIAkgICAgIChtYXRj aF9vcGVyYW5kOkRJIDUgImdjbl9leGVjX3JlZ19vcGVyYW5kIiAiZSIpKSkKICAgICAgIChz ZXQgKG1hdGNoX2R1cCAyKQogCSAgIChhbmQ6REkgKG1hdGNoX2R1cCAzKQpAQCAtMzUxLDgg KzM3MSw4IEBAIChkZWZpbmVfc3Vic3QgInNjYXR0ZXJfc3RvcmUiCiA7IGdhdGhlci9zY2F0 dGVyLCBtYXNrbG9hZC9zdG9yZSwgZXRjLgogCiAoZGVmaW5lX2V4cGFuZCAibW92PG1vZGU+ IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwICJub25pbW1lZGlhdGVfb3BlcmFu ZCIpCi0JKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAiZ2VuZXJhbF9vcGVyYW5kIikpXQorICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWX01PViAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCisJ KG1hdGNoX29wZXJhbmQ6Vl9NT1YgMSAiZ2VuZXJhbF9vcGVyYW5kIikpXQogICAiIgogICB7 CiAgICAgLyogQml0d2lzZSByZWludGVycHJldCBjYXN0cyB2aWEgU1VCUkVHIGRvbid0IHdv cmsgd2l0aCBHQ04gdmVjdG9yCkBAIC00MjEsOCArNDQxLDggQEAgKGRlZmluZV9leHBhbmQg Im1vdjxtb2RlPiIKIDsgQSBwc2V1ZG8gaW5zdHJ1Y3Rpb24gdGhhdCBoZWxwcyBMUkEgdXNl IHRoZSAiVTAiIGNvbnN0cmFpbnQuCiAKIChkZWZpbmVfaW5zbiAibW92PG1vZGU+X3Vuc3Bl YyIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAibm9uaW1tZWRpYXRlX29wZXJh bmQiICI9diIpCi0JKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAiZ2NuX3Vuc3BlY19vcGVyYW5k IiAgICIgVSIpKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMCAibm9uaW1tZWRp YXRlX29wZXJhbmQiICI9diIpCisJKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMSAiZ2NuX3Vuc3Bl Y19vcGVyYW5kIiAgICIgVSIpKV0KICAgIiIKICAgIiIKICAgWyhzZXRfYXR0ciAidHlwZSIg InVua25vd24iKQpAQCAtNTI3LDYgKzU0Nyw2OSBAQCAoZGVmaW5lX2luc24gIm1vdjxtb2Rl Pl9leGVjIgogICBbKHNldF9hdHRyICJ0eXBlIiAidm11bHQsdm11bHQsdm11bHQsKiwqIikK ICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMTYsMTYsMTYsMTYsMTYiKV0pCiAKKyhkZWZpbmVf aW5zbiAiKm1vdjxtb2RlPl80cmVnIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWXzRSRUcg MCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9diIpCisJKG1hdGNoX29wZXJhbmQ6Vl80UkVH IDEgImdlbmVyYWxfb3BlcmFuZCIgICAgICAidkRCIikpXQorICAiIgorICB7CisgICAgcmV0 dXJuICJ2X21vdl9iMzJcdCVMMCwgJUwxXDsiCisgICAgICAgICAgICJ2X21vdl9iMzJcdCVI MCwgJUgxXDsiCisgICAgICAgICAgICJ2X21vdl9iMzJcdCVKMCwgJUoxXDsiCisgICAgICAg ICAgICJ2X21vdl9iMzJcdCVLMCwgJUsxXDsiOworICB9CisgIFsoc2V0X2F0dHIgInR5cGUi ICJ2bXVsdCIpCisgICAoc2V0X2F0dHIgImxlbmd0aCIgIjE2IildKQorCisoZGVmaW5lX2lu c24gIm1vdjxtb2RlPl9leGVjIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWXzRSRUcgMCAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICI9IHYsICAgdiwgICB2LCB2LCBtIikKKwkodmVjX21l cmdlOlZfNFJFRworCSAgKG1hdGNoX29wZXJhbmQ6Vl80UkVHIDEgImdlbmVyYWxfb3BlcmFu ZCIgICAgInZEQiwgIHYwLCAgdjAsIG0sIHYiKQorCSAgKG1hdGNoX29wZXJhbmQ6Vl80UkVH IDIgImdjbl9hbHVfb3JfdW5zcGVjX29wZXJhbmQiCisJCQkJCQkgICAgICAgIiBVMCx2REEw LHZEQTAsVTAsVTAiKQorCSAgKG1hdGNoX29wZXJhbmQ6REkgMyAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgIiAgZSwgIGNWLCAgU3YsIGUsIGUiKSkpCisgICAoY2xvYmJlciAobWF0Y2hf c2NyYXRjaDo8Vm5EST4gNAkJICAgICAgICI9IFgsICAgWCwgICBYLCZ2LCZ2IikpXQorICAi IU1FTV9QIChvcGVyYW5kc1swXSkgfHwgUkVHX1AgKG9wZXJhbmRzWzFdKSIKKyAgeworICAg IGlmICghUkVHX1AgKG9wZXJhbmRzWzFdKSB8fCBSRUdOTyAob3BlcmFuZHNbMF0pIDw9IFJF R05PIChvcGVyYW5kc1sxXSkpCisgICAgICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZlKQor CXsKKwljYXNlIDA6CisJICByZXR1cm4gInZfbW92X2IzMlx0JUwwLCAlTDFcO3ZfbW92X2Iz Mlx0JUgwLCAlSDFcOyIKKyAgICAgICAgICAgICAgICAgInZfbW92X2IzMlx0JUowLCAlSjFc O3ZfbW92X2IzMlx0JUswLCAlSzEiOworCWNhc2UgMToKKwkgIHJldHVybiAidl9jbmRtYXNr X2IzMlx0JUwwLCAlTDIsICVMMSwgdmNjXDsiCisJCSAidl9jbmRtYXNrX2IzMlx0JUgwLCAl SDIsICVIMSwgdmNjXDsiCisJCSAidl9jbmRtYXNrX2IzMlx0JUowLCAlSjIsICVKMSwgdmNj XDsiCisJCSAidl9jbmRtYXNrX2IzMlx0JUswLCAlSzIsICVLMSwgdmNjIjsKKwljYXNlIDI6 CisJICByZXR1cm4gInZfY25kbWFza19iMzJcdCVMMCwgJUwyLCAlTDEsICUzXDsiCisJCSAi dl9jbmRtYXNrX2IzMlx0JUgwLCAlSDIsICVIMSwgJTNcOyIKKwkJICJ2X2NuZG1hc2tfYjMy XHQlSjAsICVKMiwgJUoxLCAlM1w7IgorCQkgInZfY25kbWFza19iMzJcdCVLMCwgJUsyLCAl SzEsICUzIjsKKwl9CisgICAgZWxzZQorICAgICAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2 ZSkKKwl7CisJY2FzZSAwOgorCSAgcmV0dXJuICJ2X21vdl9iMzJcdCVIMCwgJUgxXDt2X21v dl9iMzJcdCVMMCwgJUwxXDsiCisgICAgICAgICAgICAgICAgICJ2X21vdl9iMzJcdCVKMCwg JUoxXDt2X21vdl9iMzJcdCVLMCwgJUsxIjsKKwljYXNlIDE6CisJICByZXR1cm4gInZfY25k bWFza19iMzJcdCVIMCwgJUgyLCAlSDEsIHZjY1w7IgorCQkgInZfY25kbWFza19iMzJcdCVM MCwgJUwyLCAlTDEsIHZjY1w7IgorCQkgInZfY25kbWFza19iMzJcdCVKMCwgJUoyLCAlSjEs IHZjY1w7IgorCQkgInZfY25kbWFza19iMzJcdCVLMCwgJUsyLCAlSzEsIHZjYyI7CisJY2Fz ZSAyOgorCSAgcmV0dXJuICJ2X2NuZG1hc2tfYjMyXHQlSDAsICVIMiwgJUgxLCAlM1w7Igor CQkgInZfY25kbWFza19iMzJcdCVMMCwgJUwyLCAlTDEsICUzXDsiCisJCSAidl9jbmRtYXNr X2IzMlx0JUowLCAlSjIsICVKMSwgJTNcOyIKKwkJICJ2X2NuZG1hc2tfYjMyXHQlSzAsICVL MiwgJUsxLCAlMyI7CisJfQorCisgICAgcmV0dXJuICIjIjsKKyAgfQorICBbKHNldF9hdHRy ICJ0eXBlIiAidm11bHQsdm11bHQsdm11bHQsKiwqIikKKyAgIChzZXRfYXR0ciAibGVuZ3Ro IiAiMzIiKV0pCisKIDsgVGhpcyB2YXJpYW50IGRvZXMgbm90IGFjY2VwdCBhbiB1bnNwZWMs IGJ1dCBkb2VzIHBlcm1pdCBNRU0KIDsgcmVhZC9tb2RpZnkvd3JpdGUgd2hpY2ggaXMgbmVj ZXNzYXJ5IGZvciBtYXNrc3RvcmUuCiAKQEAgLTU5MiwxMiArNjc1LDI1IEBAIChkZWZpbmVf aW5zbiAibW92PG1vZGU+X3NncHJiYXNlIgogICBbKHNldF9hdHRyICJ0eXBlIiAidm11bHQs KiwqIikKICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiOCwxMiwxMiIpXSkKIAorKGRlZmluZV9p bnNuICJtb3Y8bW9kZT5fc2dwcmJhc2UiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfNFJF RyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj0gdiwgdiwgbSIpCisJKHVuc3BlYzpWXzRS RUcKKwkgIFsobWF0Y2hfb3BlcmFuZDpWXzRSRUcgMSAiZ2VuZXJhbF9vcGVyYW5kIiAgICJ2 REIsIG0sIHYiKV0KKwkgIFVOU1BFQ19TR1BSQkFTRSkpCisgICAoY2xvYmJlciAobWF0Y2hf b3BlcmFuZDo8Vm5EST4gMiAicmVnaXN0ZXJfb3BlcmFuZCIgICI9JnYsJnYsJnYiKSldCisg ICJscmFfaW5fcHJvZ3Jlc3MgfHwgcmVsb2FkX2NvbXBsZXRlZCIKKyAgInZfbW92X2IzMlx0 JUwwLCAlTDFcO3ZfbW92X2IzMlx0JUgwLCAlSDFcO3ZfbW92X2IzMlx0JUowLCAlSjFcO3Zf bW92X2IzMlx0JUswLCAlSzEKKyAgICMKKyAgICMiCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2 bXVsdCwqLCoiKQorICAgKHNldF9hdHRyICJsZW5ndGgiICI4LDEyLDEyIildKQorCiA7IHJl bG9hZF9pbiB3YXMgb25jZSBhIHN0YW5kYXJkIG5hbWUsIGJ1dCBoZXJlIGl0J3Mgb25seSBy ZWZlcmVuY2VkIGJ5CiA7IGdjbl9zZWNvbmRhcnlfcmVsb2FkLiAgSXQgYWxsb3dzIGEgcmVs b2FkIHdpdGggYSBzY3JhdGNoIHJlZ2lzdGVyLgogCiAoZGVmaW5lX2V4cGFuZCAicmVsb2Fk X2luPG1vZGU+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwICJyZWdpc3Rlcl9v cGVyYW5kIiAgICAgIj0gdiIpCi0JKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAibWVtb3J5X29w ZXJhbmQiCSAgICAgICIgIG0iKSkKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgICAgICI9IHYiKQorCShtYXRjaF9vcGVyYW5kOlZfTU9WIDEg Im1lbW9yeV9vcGVyYW5kIgkgICAgICAiICBtIikpCiAgICAoY2xvYmJlciAobWF0Y2hfb3Bl cmFuZDo8Vm5EST4gMiAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mdiIpKV0KICAgIiIKICAgewpA QCAtNjA4LDggKzcwNCw4IEBAIChkZWZpbmVfZXhwYW5kICJyZWxvYWRfaW48bW9kZT4iCiA7 IHJlbG9hZF9vdXQgaXMgc2ltaWxhciB0byByZWxvYWRfaW4sIGFib3ZlLgogCiAoZGVmaW5l X2V4cGFuZCAicmVsb2FkX291dDxtb2RlPiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9B TEwgMCAibWVtb3J5X29wZXJhbmQiCSAgICAgICI9IG0iKQotCShtYXRjaF9vcGVyYW5kOlZf QUxMIDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAiICB2IikpCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZfTU9WIDAgIm1lbW9yeV9vcGVyYW5kIgkgICAgICAiPSBtIikKKwkobWF0Y2hf b3BlcmFuZDpWX01PViAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgIiAgdiIpKQogICAgKGNs b2JiZXIgKG1hdGNoX29wZXJhbmQ6PFZuREk+IDIgInJlZ2lzdGVyX29wZXJhbmQiICI9JnYi KSldCiAgICIiCiAgIHsKQEAgLTYyMCw5ICs3MTYsOSBAQCAoZGVmaW5lX2V4cGFuZCAicmVs b2FkX291dDxtb2RlPiIKIDsgRXhwYW5kIHNjYWxhciBhZGRyZXNzZXMgaW50byBnYXRoZXIv c2NhdHRlciBwYXR0ZXJucwogCiAoZGVmaW5lX3NwbGl0Ci0gIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZfQUxMIDAgIm1lbW9yeV9vcGVyYW5kIikKLQkodW5zcGVjOlZfQUxMCi0JICBbKG1h dGNoX29wZXJhbmQ6Vl9BTEwgMSAiZ2VuZXJhbF9vcGVyYW5kIildCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlZfTU9WIDAgIm1lbW9yeV9vcGVyYW5kIikKKwkodW5zcGVjOlZfTU9WCisJ ICBbKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMSAiZ2VuZXJhbF9vcGVyYW5kIildCiAJICBVTlNQ RUNfU0dQUkJBU0UpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6PFZuREk+IDIpKV0K ICAgIiIKQEAgLTYzOCwxMCArNzM0LDEwIEBAIChkZWZpbmVfc3BsaXQKICAgfSkKIAogKGRl ZmluZV9zcGxpdAotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwICJtZW1vcnlfb3Bl cmFuZCIpCi0JKHZlY19tZXJnZTpWX0FMTAotCSAgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAi Z2VuZXJhbF9vcGVyYW5kIikKLQkgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDIgIiIpCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZfTU9WIDAgIm1lbW9yeV9vcGVyYW5kIikKKwkodmVjX21l cmdlOlZfTU9WCisJICAobWF0Y2hfb3BlcmFuZDpWX01PViAxICJnZW5lcmFsX29wZXJhbmQi KQorCSAgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMiAiIikKIAkgIChtYXRjaF9vcGVyYW5kOkRJ IDMgImdjbl9leGVjX3JlZ19vcGVyYW5kIikpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0 Y2g6PFZuREk+IDQpKV0KICAgIiIKQEAgLTY1OSwxNCArNzU1LDE0IEBAIChkZWZpbmVfc3Bs aXQKICAgfSkKIAogKGRlZmluZV9zcGxpdAotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FM TCAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCi0JKHVuc3BlYzpWX0FMTAotCSAgWyhtYXRj aF9vcGVyYW5kOlZfQUxMIDEgIm1lbW9yeV9vcGVyYW5kIildCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZfTU9WIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIikKKwkodW5zcGVjOlZfTU9W CisJICBbKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMSAibWVtb3J5X29wZXJhbmQiKV0KIAkgIFVO U1BFQ19TR1BSQkFTRSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDo8Vm5EST4gMikp XQogICAiIgogICBbKHNldCAobWF0Y2hfZHVwIDApCi0JKHVuc3BlYzpWX0FMTCBbKG1hdGNo X2R1cCA1KSAobWF0Y2hfZHVwIDYpIChtYXRjaF9kdXAgNykKKwkodW5zcGVjOlZfTU9WIFso bWF0Y2hfZHVwIDUpIChtYXRjaF9kdXAgNikgKG1hdGNoX2R1cCA3KQogCQkgICAgICAgKG1l bTpCTEsgKHNjcmF0Y2gpKV0KIAkJICAgICAgVU5TUEVDX0dBVEhFUikpXQogICB7CkBAIC02 NzgsMTYgKzc3NCwxNiBAQCAoZGVmaW5lX3NwbGl0CiAgIH0pCiAKIChkZWZpbmVfc3BsaXQK LSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQi KQotCSh2ZWNfbWVyZ2U6Vl9BTEwKLQkgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDEgIm1lbW9y eV9vcGVyYW5kIikKLQkgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDIgIiIpCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZfTU9WIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIikKKwkodmVjX21l cmdlOlZfTU9WCisJICAobWF0Y2hfb3BlcmFuZDpWX01PViAxICJtZW1vcnlfb3BlcmFuZCIp CisJICAobWF0Y2hfb3BlcmFuZDpWX01PViAyICIiKQogCSAgKG1hdGNoX29wZXJhbmQ6REkg MyAiZ2NuX2V4ZWNfcmVnX29wZXJhbmQiKSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRj aDo8Vm5EST4gNCkpXQogICAiIgogICBbKHNldCAobWF0Y2hfZHVwIDApCi0JKHZlY19tZXJn ZTpWX0FMTAotCSAgKHVuc3BlYzpWX0FMTCBbKG1hdGNoX2R1cCA1KSAobWF0Y2hfZHVwIDYp IChtYXRjaF9kdXAgNykKKwkodmVjX21lcmdlOlZfTU9WCisJICAodW5zcGVjOlZfTU9WIFso bWF0Y2hfZHVwIDUpIChtYXRjaF9kdXAgNikgKG1hdGNoX2R1cCA3KQogCQkJIChtZW06QkxL IChzY3JhdGNoKSldCiAJCQkgVU5TUEVDX0dBVEhFUikKIAkgIChtYXRjaF9kdXAgMikKQEAg LTc0NCw5ICs4NDAsOSBAQCAoZGVmaW5lX2luc24gIip2ZWNfc2V0PG1vZGU+IgogICAgKHNl dF9hdHRyICJsYW5lc2VsZWN0IiAieWVzIildKQogCiAoZGVmaW5lX2V4cGFuZCAidmVjX3Nl dDxtb2RlPiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAicmVnaXN0ZXJfb3Bl cmFuZCIpCi0JKHZlY19tZXJnZTpWX0FMTAotCSAgKHZlY19kdXBsaWNhdGU6Vl9BTEwKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisJKHZl Y19tZXJnZTpWX01PVgorCSAgKHZlY19kdXBsaWNhdGU6Vl9NT1YKIAkgICAgKG1hdGNoX29w ZXJhbmQ6PFNDQUxBUl9NT0RFPiAxICJyZWdpc3Rlcl9vcGVyYW5kIikpCiAJICAobWF0Y2hf ZHVwIDApCiAJICAoYXNoaWZ0IChjb25zdF9pbnQgMSkgKG1hdGNoX29wZXJhbmQ6U0kgMiAi Z2NuX2FsdV9vcGVyYW5kIikpKSldCkBAIC04MDQsNiArOTAwLDE1IEBAIChkZWZpbmVfaW5z biAidmVjX2R1cGxpY2F0ZTxtb2RlPjxleGVjPiIKICAgWyhzZXRfYXR0ciAidHlwZSIgInZv cDNhIikKICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMTYiKV0pCiAKKyhkZWZpbmVfaW5zbiAi dmVjX2R1cGxpY2F0ZTxtb2RlPjxleGVjPiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl80 UkVHIDAgInJlZ2lzdGVyX29wZXJhbmQiCSAgICI9ICB2IikKKwkodmVjX2R1cGxpY2F0ZTpW XzRSRUcKKwkgIChtYXRjaF9vcGVyYW5kOjxTQ0FMQVJfTU9ERT4gMSAiZ2NuX2FsdV9vcGVy YW5kIiAiU3ZEQiIpKSldCisgICIiCisgICJ2X21vdl9iMzJcdCVMMCwgJUwxXDt2X21vdl9i MzJcdCVIMCwgJUgxXDt2X21vdl9iMzJcdCVKMCwgJUoxXDt2X21vdl9iMzJcdCVLMCwgJUsx IgorICBbKHNldF9hdHRyICJ0eXBlIiAibXVsdCIpCisgICAoc2V0X2F0dHIgImxlbmd0aCIg IjMyIildKQorCiAoZGVmaW5lX2luc24gInZlY19leHRyYWN0PG1vZGU+PHNjYWxhcl9tb2Rl PiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFNDQUxBUl9NT0RFPiAwICJyZWdpc3Rlcl9v cGVyYW5kIiAgIj1TZyIpCiAJKHZlY19zZWxlY3Q6PFNDQUxBUl9NT0RFPgpAQCAtODI4LDYg KzkzMywxOCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0PG1vZGU+PHNjYWxhcl9tb2Rl PiIKICAgIChzZXRfYXR0ciAiZXhlYyIgIm5vbmUiKQogICAgKHNldF9hdHRyICJsYW5lc2Vs ZWN0IiAieWVzIildKQogCisoZGVmaW5lX2luc24gInZlY19leHRyYWN0PG1vZGU+PHNjYWxh cl9tb2RlPiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFNDQUxBUl9NT0RFPiAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgIj0mU2ciKQorCSh2ZWNfc2VsZWN0OjxTQ0FMQVJfTU9ERT4KKwkg IChtYXRjaF9vcGVyYW5kOlZfNFJFRyAxICJyZWdpc3Rlcl9vcGVyYW5kIgkgICAiICAgdiIp CisJICAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOlNJIDIgImdjbl9hbHVfb3BlcmFuZCIg IiBTdkIiKV0pKSldCisgICIiCisgICJ2X3JlYWRsYW5lX2IzMiAlTDAsICVMMSwgJTJcO3Zf cmVhZGxhbmVfYjMyICVIMCwgJUgxLCAlMlw7dl9yZWFkbGFuZV9iMzIgJUowLCAlSjEsICUy XDt2X3JlYWRsYW5lX2IzMiAlSzAsICVLMSwgJTIiCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2 bXVsdCIpCisgICAoc2V0X2F0dHIgImxlbmd0aCIgIjMyIikKKyAgIChzZXRfYXR0ciAiZXhl YyIgIm5vbmUiKQorICAgKHNldF9hdHRyICJsYW5lc2VsZWN0IiAieWVzIildKQorCiAoZGVm aW5lX2luc24gInZlY19leHRyYWN0PFZfMVJFRzptb2RlPjxWXzFSRUdfQUxUOm1vZGU+X25v cCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl8xUkVHX0FMVCAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXYsdiIpCiAJKHZlY19zZWxlY3Q6Vl8xUkVHX0FMVApAQCAtODU0LDM5ICs5NzEs NTIgQEAgKGRlZmluZV9pbnNuICJ2ZWNfZXh0cmFjdDxWXzJSRUc6bW9kZT48Vl8yUkVHX0FM VDptb2RlPl9ub3AiCiAgIFsoc2V0X2F0dHIgInR5cGUiICJ2bXVsdCIpCiAgICAoc2V0X2F0 dHIgImxlbmd0aCIgIjAsOCIpXSkKICAgCi0oZGVmaW5lX2V4cGFuZCAidmVjX2V4dHJhY3Q8 Vl9BTEw6bW9kZT48Vl9BTExfQUxUOm1vZGU+IgotICBbKG1hdGNoX29wZXJhbmQ6Vl9BTExf QUxUIDAgInJlZ2lzdGVyX29wZXJhbmQiKQotICAgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAi cmVnaXN0ZXJfb3BlcmFuZCIpCisoZGVmaW5lX2luc24gInZlY19leHRyYWN0PFZfNFJFRzpt b2RlPjxWXzRSRUdfQUxUOm1vZGU+X25vcCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl80 UkVHX0FMVCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYsdiIpCisJKHZlY19zZWxlY3Q6Vl80 UkVHX0FMVAorCSAgKG1hdGNoX29wZXJhbmQ6Vl80UkVHIDEgInJlZ2lzdGVyX29wZXJhbmQi ICAgIiAwLHYiKQorCSAgKG1hdGNoX29wZXJhbmQgMiAiYXNjZW5kaW5nX3plcm9faW50X3Bh cmFsbGVsIiAiIikpKV0KKyAgIk1PREVfVkYgKDxWXzRSRUdfQUxUOk1PREU+bW9kZSkgPCBN T0RFX1ZGICg8Vl80UkVHOk1PREU+bW9kZSkKKyAgICYmIDxWXzRSRUdfQUxUOlNDQUxBUl9N T0RFPm1vZGUgPT0gPFZfNFJFRzpTQ0FMQVJfTU9ERT5tb2RlIgorICAiQAorICA7IGluLXBs YWNlIGV4dHJhY3QgJTAKKyAgdl9tb3ZfYjMyXHQlTDAsICVMMVw7dl9tb3ZfYjMyXHQlSDAs ICVIMVw7dl9tb3ZfYjMyXHQlSjAsICVKMVw7dl9tb3ZfYjMyXHQlSzAsICVLMSIKKyAgWyhz ZXRfYXR0ciAidHlwZSIgInZtdWx0IikKKyAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMCwxNiIp XSkKKyAgCisoZGVmaW5lX2V4cGFuZCAidmVjX2V4dHJhY3Q8Vl9NT1Y6bW9kZT48Vl9NT1Zf QUxUOm1vZGU+IgorICBbKG1hdGNoX29wZXJhbmQ6Vl9NT1ZfQUxUIDAgInJlZ2lzdGVyX29w ZXJhbmQiKQorICAgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMSAicmVnaXN0ZXJfb3BlcmFuZCIp CiAgICAobWF0Y2hfb3BlcmFuZCAyICJpbW1lZGlhdGVfb3BlcmFuZCIpXQotICAiTU9ERV9W RiAoPFZfQUxMX0FMVDpNT0RFPm1vZGUpIDwgTU9ERV9WRiAoPFZfQUxMOk1PREU+bW9kZSkK LSAgICYmIDxWX0FMTF9BTFQ6U0NBTEFSX01PREU+bW9kZSA9PSA8Vl9BTEw6U0NBTEFSX01P REU+bW9kZSIKKyAgIk1PREVfVkYgKDxWX01PVl9BTFQ6TU9ERT5tb2RlKSA8IE1PREVfVkYg KDxWX01PVjpNT0RFPm1vZGUpCisgICAmJiA8Vl9NT1ZfQUxUOlNDQUxBUl9NT0RFPm1vZGUg PT0gPFZfTU9WOlNDQUxBUl9NT0RFPm1vZGUiCiAgIHsKLSAgICBpbnQgbnVtbGFuZXMgPSBH RVRfTU9ERV9OVU5JVFMgKDxWX0FMTF9BTFQ6TU9ERT5tb2RlKTsKKyAgICBpbnQgbnVtbGFu ZXMgPSBHRVRfTU9ERV9OVU5JVFMgKDxWX01PVl9BTFQ6TU9ERT5tb2RlKTsKICAgICBpbnQg Zmlyc3RsYW5lID0gSU5UVkFMIChvcGVyYW5kc1syXSkgKiBudW1sYW5lczsKICAgICBydHgg dG1wOwogCiAgICAgaWYgKGZpcnN0bGFuZSA9PSAwKQogICAgICAgewotCXJ0eCBwYXJhbGxl bCA9IGdlbl9ydHhfUEFSQUxMRUwgKDxWX0FMTDpNT0RFPm1vZGUsCisJcnR4IHBhcmFsbGVs ID0gZ2VuX3J0eF9QQVJBTExFTCAoPFZfTU9WOk1PREU+bW9kZSwKIAkJCQkJICBydHZlY19h bGxvYyAobnVtbGFuZXMpKTsKIAlmb3IgKGludCBpID0gMDsgaSA8IG51bWxhbmVzOyBpKysp CiAJICBYVkVDRVhQIChwYXJhbGxlbCwgMCwgaSkgPSBHRU5fSU5UIChpKTsKLQllbWl0X2lu c24gKGdlbl92ZWNfZXh0cmFjdDxWX0FMTDptb2RlPjxWX0FMTF9BTFQ6bW9kZT5fbm9wCisJ ZW1pdF9pbnNuIChnZW5fdmVjX2V4dHJhY3Q8Vl9NT1Y6bW9kZT48Vl9NT1ZfQUxUOm1vZGU+ X25vcAogCQkgICAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBwYXJhbGxlbCkpOwogICAg ICAgfSBlbHNlIHsKICAgICAgICAgLyogRklYTUU6IG9wdGltaXplIHRoaXMgYnkgdXNpbmcg RFBQIHdoZXJlIGF2YWlsYWJsZS4gICovCiAKLSAgICAgICAgcnR4IHBlcm11dGF0aW9uID0g Z2VuX3JlZ19ydHggKDxWX0FMTDpWblNJPm1vZGUpOwotCWVtaXRfaW5zbiAoZ2VuX3ZlY19z ZXJpZXM8Vl9BTEw6dm5zaT4gKHBlcm11dGF0aW9uLAorICAgICAgICBydHggcGVybXV0YXRp b24gPSBnZW5fcmVnX3J0eCAoPFZfTU9WOlZuU0k+bW9kZSk7CisJZW1pdF9pbnNuIChnZW5f dmVjX3NlcmllczxWX01PVjp2bnNpPiAocGVybXV0YXRpb24sCiAJCQkJCSAgICAgICBHRU5f SU5UIChmaXJzdGxhbmUqNCksCiAJCQkJCSAgICAgICBHRU5fSU5UICg0KSkpOwogCi0JdG1w ID0gZ2VuX3JlZ19ydHggKDxWX0FMTDpNT0RFPm1vZGUpOwotCWVtaXRfaW5zbiAoZ2VuX2Rz X2JwZXJtdXRlPFZfQUxMOm1vZGU+ICh0bXAsIHBlcm11dGF0aW9uLCBvcGVyYW5kc1sxXSwK LQkJCQkJCWdldF9leGVjICg8Vl9BTEw6TU9ERT5tb2RlKSkpOworCXRtcCA9IGdlbl9yZWdf cnR4ICg8Vl9NT1Y6TU9ERT5tb2RlKTsKKwllbWl0X2luc24gKGdlbl9kc19icGVybXV0ZTxW X01PVjptb2RlPiAodG1wLCBwZXJtdXRhdGlvbiwgb3BlcmFuZHNbMV0sCisJCQkJCQlnZXRf ZXhlYyAoPFZfTU9WOk1PREU+bW9kZSkpKTsKIAogCWVtaXRfbW92ZV9pbnNuIChvcGVyYW5k c1swXSwKLQkJCWdlbl9ydHhfU1VCUkVHICg8Vl9BTExfQUxUOk1PREU+bW9kZSwgdG1wLCAw KSk7CisJCQlnZW5fcnR4X1NVQlJFRyAoPFZfTU9WX0FMVDpNT0RFPm1vZGUsIHRtcCwgMCkp OwogICAgICAgfQogICAgIERPTkU7CiAgIH0pCkBAIC04OTQsNyArMTAyNCw3IEBAIChkZWZp bmVfZXhwYW5kICJ2ZWNfZXh0cmFjdDxWX0FMTDptb2RlPjxWX0FMTF9BTFQ6bW9kZT4iCiAo ZGVmaW5lX2V4cGFuZCAiZXh0cmFjdF9sYXN0Xzxtb2RlPiIKICAgWyhtYXRjaF9vcGVyYW5k OjxTQ0FMQVJfTU9ERT4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpCiAgICAobWF0Y2hfb3BlcmFu ZDpESSAxICJnY25fYWx1X29wZXJhbmQiKQotICAgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMiAi cmVnaXN0ZXJfb3BlcmFuZCIpXQorICAgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMiAicmVnaXN0 ZXJfb3BlcmFuZCIpXQogICAiY2FuX2NyZWF0ZV9wc2V1ZG9fcCAoKSIKICAgewogICAgIHJ0 eCBkc3QgPSBvcGVyYW5kc1swXTsKQEAgLTkxMiw3ICsxMDQyLDcgQEAgKGRlZmluZV9leHBh bmQgImZvbGRfZXh0cmFjdF9sYXN0Xzxtb2RlPiIKICAgWyhtYXRjaF9vcGVyYW5kOjxTQ0FM QVJfTU9ERT4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpCiAgICAobWF0Y2hfb3BlcmFuZDo8U0NB TEFSX01PREU+IDEgImdjbl9hbHVfb3BlcmFuZCIpCiAgICAobWF0Y2hfb3BlcmFuZDpESSAy ICJnY25fYWx1X29wZXJhbmQiKQotICAgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMyAicmVnaXN0 ZXJfb3BlcmFuZCIpXQorICAgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMyAicmVnaXN0ZXJfb3Bl cmFuZCIpXQogICAiY2FuX2NyZWF0ZV9wc2V1ZG9fcCAoKSIKICAgewogICAgIHJ0eCBkc3Qg PSBvcGVyYW5kc1swXTsKQEAgLTkzNCw3ICsxMDY0LDcgQEAgKGRlZmluZV9leHBhbmQgImZv bGRfZXh0cmFjdF9sYXN0Xzxtb2RlPiIKICAgfSkKIAogKGRlZmluZV9leHBhbmQgInZlY19p bml0PG1vZGU+PHNjYWxhcl9tb2RlPiIKLSAgWyhtYXRjaF9vcGVyYW5kOlZfQUxMIDAgInJl Z2lzdGVyX29wZXJhbmQiKQorICBbKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMCAicmVnaXN0ZXJf b3BlcmFuZCIpCiAgICAobWF0Y2hfb3BlcmFuZCAxKV0KICAgIiIKICAgewpAQCAtOTQyLDEx ICsxMDcyLDExIEBAIChkZWZpbmVfZXhwYW5kICJ2ZWNfaW5pdDxtb2RlPjxzY2FsYXJfbW9k ZT4iCiAgICAgRE9ORTsKICAgfSkKIAotKGRlZmluZV9leHBhbmQgInZlY19pbml0PFZfQUxM Om1vZGU+PFZfQUxMX0FMVDptb2RlPiIKLSAgWyhtYXRjaF9vcGVyYW5kOlZfQUxMIDAgInJl Z2lzdGVyX29wZXJhbmQiKQotICAgKG1hdGNoX29wZXJhbmQ6Vl9BTExfQUxUIDEpXQotICAi PFZfQUxMOlNDQUxBUl9NT0RFPm1vZGUgPT0gPFZfQUxMX0FMVDpTQ0FMQVJfTU9ERT5tb2Rl Ci0gICAmJiBNT0RFX1ZGICg8Vl9BTExfQUxUOk1PREU+bW9kZSkgPCBNT0RFX1ZGICg8Vl9B TEw6TU9ERT5tb2RlKSIKKyhkZWZpbmVfZXhwYW5kICJ2ZWNfaW5pdDxWX01PVjptb2RlPjxW X01PVl9BTFQ6bW9kZT4iCisgIFsobWF0Y2hfb3BlcmFuZDpWX01PViAwICJyZWdpc3Rlcl9v cGVyYW5kIikKKyAgIChtYXRjaF9vcGVyYW5kOlZfTU9WX0FMVCAxKV0KKyAgIjxWX01PVjpT Q0FMQVJfTU9ERT5tb2RlID09IDxWX01PVl9BTFQ6U0NBTEFSX01PREU+bW9kZQorICAgJiYg TU9ERV9WRiAoPFZfTU9WX0FMVDpNT0RFPm1vZGUpIDwgTU9ERV9WRiAoPFZfTU9WOk1PREU+ bW9kZSkiCiAgIHsKICAgICBnY25fZXhwYW5kX3ZlY3Rvcl9pbml0IChvcGVyYW5kc1swXSwg b3BlcmFuZHNbMV0pOwogICAgIERPTkU7CkBAIC05ODgsNyArMTExOCw3IEBAIChkZWZpbmVf ZXhwYW5kICJ2ZWNfaW5pdDxWX0FMTDptb2RlPjxWX0FMTF9BTFQ6bW9kZT4iCiA7OyBUT0RP OiBpbXBsZW1lbnQgY29tYmluZWQgZ2F0aGVyIGFuZCB6ZXJvX2V4dGVuZCwgYnV0IG9ubHkg Zm9yIC1tc3JhbS1lY2M9b24KIAogKGRlZmluZV9leHBhbmQgImdhdGhlcl9sb2FkPG1vZGU+ PHZuc2k+IgotICBbKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAicmVnaXN0ZXJfb3BlcmFuZCIp CisgIFsobWF0Y2hfb3BlcmFuZDpWX01PViAwICJyZWdpc3Rlcl9vcGVyYW5kIikKICAgICht YXRjaF9vcGVyYW5kOkRJIDEgInJlZ2lzdGVyX29wZXJhbmQiKQogICAgKG1hdGNoX29wZXJh bmQ6PFZuU0k+IDIgInJlZ2lzdGVyX29wZXJhbmQiKQogICAgKG1hdGNoX29wZXJhbmQgMyAi aW1tZWRpYXRlX29wZXJhbmQiKQpAQCAtMTAxMSw4ICsxMTQxLDggQEAgKGRlZmluZV9leHBh bmQgImdhdGhlcl9sb2FkPG1vZGU+PHZuc2k+IgogCiA7IEFsbG93IGFueSBhZGRyZXNzIGV4 cHJlc3Npb24KIChkZWZpbmVfZXhwYW5kICJnYXRoZXI8bW9kZT5fZXhwcjxleGVjPiIKLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCi0JKHVu c3BlYzpWX0FMTAorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX01PViAwICJyZWdpc3Rlcl9v cGVyYW5kIikKKwkodW5zcGVjOlZfTU9WCiAJICBbKG1hdGNoX29wZXJhbmQgMSAiIikKIAkg ICAobWF0Y2hfb3BlcmFuZCAyICJpbW1lZGlhdGVfb3BlcmFuZCIpCiAJICAgKG1hdGNoX29w ZXJhbmQgMyAiaW1tZWRpYXRlX29wZXJhbmQiKQpAQCAtMTAyMiw4ICsxMTUyLDggQEAgKGRl ZmluZV9leHBhbmQgImdhdGhlcjxtb2RlPl9leHByPGV4ZWM+IgogICAgIHt9KQogCiAoZGVm aW5lX2luc24gImdhdGhlcjxtb2RlPl9pbnNuXzFvZmZzZXQ8ZXhlYz4iCi0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZfQUxMIDAgInJlZ2lzdGVyX29wZXJhbmQiCQkgICAiPXYiKQotCSh1 bnNwZWM6Vl9BTEwKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9NT1YgMCAicmVnaXN0ZXJf b3BlcmFuZCIJCSAgICI9diIpCisJKHVuc3BlYzpWX01PVgogCSAgWyhwbHVzOjxWbkRJPiAo bWF0Y2hfb3BlcmFuZDo8Vm5EST4gMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2IikKIAkJCSh2 ZWNfZHVwbGljYXRlOjxWbkRJPgogCQkJICAobWF0Y2hfb3BlcmFuZCAyICJpbW1lZGlhdGVf b3BlcmFuZCIJICAgIiBuIikpKQpAQCAtMTA2MSw4ICsxMTkxLDggQEAgKGRlZmluZV9pbnNu ICJnYXRoZXI8bW9kZT5faW5zbl8xb2Zmc2V0PGV4ZWM+IgogICAgKHNldF9hdHRyICJsZW5n dGgiICIxMiIpXSkKIAogKGRlZmluZV9pbnNuICJnYXRoZXI8bW9kZT5faW5zbl8xb2Zmc2V0 X2RzPGV4ZWM+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX0FMTCAwICJyZWdpc3Rlcl9v cGVyYW5kIgkJICAgIj12IikKLQkodW5zcGVjOlZfQUxMCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZfTU9WIDAgInJlZ2lzdGVyX29wZXJhbmQiCQkgICAiPXYiKQorCSh1bnNwZWM6Vl9N T1YKIAkgIFsocGx1czo8Vm5TST4gKG1hdGNoX29wZXJhbmQ6PFZuU0k+IDEgInJlZ2lzdGVy X29wZXJhbmQiICIgdiIpCiAJCQkodmVjX2R1cGxpY2F0ZTo8Vm5TST4KIAkJCSAgKG1hdGNo X29wZXJhbmQgMiAiaW1tZWRpYXRlX29wZXJhbmQiCSAgICIgbiIpKSkKQEAgLTEwODMsOCAr MTIxMyw4IEBAIChkZWZpbmVfaW5zbiAiZ2F0aGVyPG1vZGU+X2luc25fMW9mZnNldF9kczxl eGVjPiIKICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMTIiKV0pCiAKIChkZWZpbmVfaW5zbiAi Z2F0aGVyPG1vZGU+X2luc25fMm9mZnNldHM8ZXhlYz4iCi0gIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZfQUxMIDAgInJlZ2lzdGVyX29wZXJhbmQiCQkJIj12IikKLQkodW5zcGVjOlZfQUxM CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfTU9WIDAgInJlZ2lzdGVyX29wZXJhbmQiCQkJ Ij12IikKKwkodW5zcGVjOlZfTU9WCiAJICBbKHBsdXM6PFZuREk+CiAJICAgICAocGx1czo8 Vm5EST4KIAkgICAgICAgKHZlY19kdXBsaWNhdGU6PFZuREk+CkBAIC0xMTE5LDcgKzEyNDks NyBAQCAoZGVmaW5lX2V4cGFuZCAic2NhdHRlcl9zdG9yZTxtb2RlPjx2bnNpPiIKICAgICht YXRjaF9vcGVyYW5kOjxWblNJPiAxICJyZWdpc3Rlcl9vcGVyYW5kIikKICAgIChtYXRjaF9v cGVyYW5kIDIgImltbWVkaWF0ZV9vcGVyYW5kIikKICAgIChtYXRjaF9vcGVyYW5kOlNJIDMg Imdjbl9hbHVfb3BlcmFuZCIpCi0gICAobWF0Y2hfb3BlcmFuZDpWX0FMTCA0ICJyZWdpc3Rl cl9vcGVyYW5kIildCisgICAobWF0Y2hfb3BlcmFuZDpWX01PViA0ICJyZWdpc3Rlcl9vcGVy YW5kIildCiAgICIiCiAgIHsKICAgICBydHggYWRkciA9IGdjbl9leHBhbmRfc2NhbGVkX29m ZnNldHMgKERFRkFVTFRfQUREUl9TUEFDRSwgb3BlcmFuZHNbMF0sCkBAIC0xMTQxLDcgKzEy NzEsNyBAQCAoZGVmaW5lX2V4cGFuZCAic2NhdHRlcjxtb2RlPl9leHByPGV4ZWNfc2NhdHRl cj4iCiAgIFsoc2V0IChtZW06QkxLIChzY3JhdGNoKSkKIAkodW5zcGVjOkJMSwogCSAgWyht YXRjaF9vcGVyYW5kOjxWbkRJPiAwICIiKQotCSAgIChtYXRjaF9vcGVyYW5kOlZfQUxMIDEg InJlZ2lzdGVyX29wZXJhbmQiKQorCSAgIChtYXRjaF9vcGVyYW5kOlZfTU9WIDEgInJlZ2lz dGVyX29wZXJhbmQiKQogCSAgIChtYXRjaF9vcGVyYW5kIDIgImltbWVkaWF0ZV9vcGVyYW5k IikKIAkgICAobWF0Y2hfb3BlcmFuZCAzICJpbW1lZGlhdGVfb3BlcmFuZCIpXQogCSAgVU5T UEVDX1NDQVRURVIpKV0KQEAgLTExNTQsNyArMTI4NCw3IEBAIChkZWZpbmVfaW5zbiAic2Nh dHRlcjxtb2RlPl9pbnNuXzFvZmZzZXQ8ZXhlY19zY2F0dGVyPiIKIAkgIFsocGx1czo8Vm5E ST4gKG1hdGNoX29wZXJhbmQ6PFZuREk+IDAgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKIAkJ CSh2ZWNfZHVwbGljYXRlOjxWbkRJPgogCQkJICAobWF0Y2hfb3BlcmFuZCAxICJpbW1lZGlh dGVfb3BlcmFuZCIJICAgIm4iKSkpCi0JICAgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMiAicmVn aXN0ZXJfb3BlcmFuZCIJCSAgICJ2IikKKwkgICAobWF0Y2hfb3BlcmFuZDpWX01PViAyICJy ZWdpc3Rlcl9vcGVyYW5kIgkJICAgInYiKQogCSAgIChtYXRjaF9vcGVyYW5kIDMgImltbWVk aWF0ZV9vcGVyYW5kIgkJCSAgICJuIikKIAkgICAobWF0Y2hfb3BlcmFuZCA0ICJpbW1lZGlh dGVfb3BlcmFuZCIJCQkgICAibiIpXQogCSAgVU5TUEVDX1NDQVRURVIpKV0KQEAgLTExOTIs NyArMTMyMiw3IEBAIChkZWZpbmVfaW5zbiAic2NhdHRlcjxtb2RlPl9pbnNuXzFvZmZzZXRf ZHM8ZXhlY19zY2F0dGVyPiIKIAkgIFsocGx1czo8Vm5TST4gKG1hdGNoX29wZXJhbmQ6PFZu U0k+IDAgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKIAkJCSh2ZWNfZHVwbGljYXRlOjxWblNJ PgogCQkJICAobWF0Y2hfb3BlcmFuZCAxICJpbW1lZGlhdGVfb3BlcmFuZCIJICAgIm4iKSkp Ci0JICAgKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMiAicmVnaXN0ZXJfb3BlcmFuZCIJCSAgICJ2 IikKKwkgICAobWF0Y2hfb3BlcmFuZDpWX01PViAyICJyZWdpc3Rlcl9vcGVyYW5kIgkJICAg InYiKQogCSAgIChtYXRjaF9vcGVyYW5kIDMgImltbWVkaWF0ZV9vcGVyYW5kIgkJCSAgICJu IikKIAkgICAobWF0Y2hfb3BlcmFuZCA0ICJpbW1lZGlhdGVfb3BlcmFuZCIJCQkgICAibiIp XQogCSAgVU5TUEVDX1NDQVRURVIpKV0KQEAgLTEyMTgsNyArMTM0OCw3IEBAIChkZWZpbmVf aW5zbiAic2NhdHRlcjxtb2RlPl9pbnNuXzJvZmZzZXRzPGV4ZWNfc2NhdHRlcj4iCiAJICAg ICAgIChzaWduX2V4dGVuZDo8Vm5EST4KIAkJIChtYXRjaF9vcGVyYW5kOjxWblNJPiAxICJy ZWdpc3Rlcl9vcGVyYW5kIgkJIiB2IikpKQogCSAgICAgKHZlY19kdXBsaWNhdGU6PFZuREk+ IChtYXRjaF9vcGVyYW5kIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiIG4iKSkpCi0JICAgKG1h dGNoX29wZXJhbmQ6Vl9BTEwgMyAicmVnaXN0ZXJfb3BlcmFuZCIJCQkiIHYiKQorCSAgICht YXRjaF9vcGVyYW5kOlZfTU9WIDMgInJlZ2lzdGVyX29wZXJhbmQiCQkJIiB2IikKIAkgICAo bWF0Y2hfb3BlcmFuZCA0ICJpbW1lZGlhdGVfb3BlcmFuZCIJCQkJIiBuIikKIAkgICAobWF0 Y2hfb3BlcmFuZCA1ICJpbW1lZGlhdGVfb3BlcmFuZCIJCQkJIiBuIildCiAJICBVTlNQRUNf U0NBVFRFUikpXQpAQCAtMzc5Nyw4ICszOTI3LDggQEAgKGRlZmluZV9leHBhbmQgIndoaWxl X3VsdHNpZGkiCiAgIH0pCiAKIChkZWZpbmVfZXhwYW5kICJtYXNrbG9hZDxtb2RlPmRpIgot ICBbKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCi0gICAobWF0 Y2hfb3BlcmFuZDpWX0FMTCAxICJtZW1vcnlfb3BlcmFuZCIpCisgIFsobWF0Y2hfb3BlcmFu ZDpWX01PViAwICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChtYXRjaF9vcGVyYW5kOlZfTU9W IDEgIm1lbW9yeV9vcGVyYW5kIikKICAgIChtYXRjaF9vcGVyYW5kIDIgIiIpXQogICAiIgog ICB7CkBAIC0zODE3LDggKzM5NDcsOCBAQCAoZGVmaW5lX2V4cGFuZCAibWFza2xvYWQ8bW9k ZT5kaSIKICAgfSkKIAogKGRlZmluZV9leHBhbmQgIm1hc2tzdG9yZTxtb2RlPmRpIgotICBb KG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAibWVtb3J5X29wZXJhbmQiKQotICAgKG1hdGNoX29w ZXJhbmQ6Vl9BTEwgMSAicmVnaXN0ZXJfb3BlcmFuZCIpCisgIFsobWF0Y2hfb3BlcmFuZDpW X01PViAwICJtZW1vcnlfb3BlcmFuZCIpCisgICAobWF0Y2hfb3BlcmFuZDpWX01PViAxICJy ZWdpc3Rlcl9vcGVyYW5kIikKICAgIChtYXRjaF9vcGVyYW5kIDIgIiIpXQogICAiIgogICB7 CkBAIC0zODMyLDcgKzM5NjIsNyBAQCAoZGVmaW5lX2V4cGFuZCAibWFza3N0b3JlPG1vZGU+ ZGkiCiAgIH0pCiAKIChkZWZpbmVfZXhwYW5kICJtYXNrX2dhdGhlcl9sb2FkPG1vZGU+PHZu c2k+IgotICBbKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisg IFsobWF0Y2hfb3BlcmFuZDpWX01PViAwICJyZWdpc3Rlcl9vcGVyYW5kIikKICAgIChtYXRj aF9vcGVyYW5kOkRJIDEgInJlZ2lzdGVyX29wZXJhbmQiKQogICAgKG1hdGNoX29wZXJhbmQ6 PFZuU0k+IDIgInJlZ2lzdGVyX29wZXJhbmQiKQogICAgKG1hdGNoX29wZXJhbmQgMyAiaW1t ZWRpYXRlX29wZXJhbmQiKQpAQCAtMzg2Nyw3ICszOTk3LDcgQEAgKGRlZmluZV9leHBhbmQg Im1hc2tfc2NhdHRlcl9zdG9yZTxtb2RlPjx2bnNpPiIKICAgIChtYXRjaF9vcGVyYW5kOjxW blNJPiAxICJyZWdpc3Rlcl9vcGVyYW5kIikKICAgIChtYXRjaF9vcGVyYW5kIDIgImltbWVk aWF0ZV9vcGVyYW5kIikKICAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImdjbl9hbHVfb3BlcmFu ZCIpCi0gICAobWF0Y2hfb3BlcmFuZDpWX0FMTCA0ICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAg IChtYXRjaF9vcGVyYW5kOlZfTU9WIDQgInJlZ2lzdGVyX29wZXJhbmQiKQogICAgKG1hdGNo X29wZXJhbmQ6REkgNSAiIildCiAgICIiCiAgIHsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcv Z2NuL2djbi5jYyBiL2djYy9jb25maWcvZ2NuL2djbi5jYwppbmRleCA1NjA4ZDg1YTFhMC4u ZWRjMmFiY2FkMjYgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZ2NuL2djbi5jYworKysgYi9n Y2MvY29uZmlnL2djbi9nY24uY2MKQEAgLTQ4Nyw3ICs0ODcsNyBAQCBnY25fY2xhc3NfbWF4 X25yZWdzIChyZWdfY2xhc3NfdCByY2xhc3MsIG1hY2hpbmVfbW9kZSBtb2RlKQogICAgICAg aWYgKHZncHJfMnJlZ19tb2RlX3AgKG1vZGUpKQogCXJldHVybiAyOwogICAgICAgLyogVElt b2RlIGlzIHVzZWQgYnkgREltb2RlIGNvbXBhcmVfYW5kX3N3YXAuICAqLwotICAgICAgaWYg KG1vZGUgPT0gVEltb2RlKQorICAgICAgaWYgKHZncHJfNHJlZ19tb2RlX3AgKG1vZGUpKQog CXJldHVybiA0OwogICAgIH0KICAgZWxzZSBpZiAocmNsYXNzID09IFZDQ19DT05ESVRJT05B TF9SRUcgJiYgbW9kZSA9PSBCSW1vZGUpCkBAIC01OTAsOSArNTkwLDkgQEAgZ2NuX2hhcmRf cmVnbm9fbW9kZV9vayAodW5zaWduZWQgaW50IHJlZ25vLCBtYWNoaW5lX21vZGUgbW9kZSkK ICAgICAgICBUaGVyZWZvcmUsIHdlIHJlc3RyaWN0IG91cnNlbHZlZCB0byBhbGlnbmVkIHJl Z2lzdGVycy4gICovCiAgICAgcmV0dXJuICh2Z3ByXzFyZWdfbW9kZV9wIChtb2RlKQogCSAg ICB8fCAoISgocmVnbm8gLSBGSVJTVF9WR1BSX1JFRykgJiAxKSAmJiB2Z3ByXzJyZWdfbW9k ZV9wIChtb2RlKSkKLQkgICAgLyogVEltb2RlIGlzIHVzZWQgYnkgREltb2RlIGNvbXBhcmVf YW5kX3N3YXAuICAqLwotCSAgICB8fCAobW9kZSA9PSBUSW1vZGUKLQkJJiYgISgocmVnbm8g LSBGSVJTVF9WR1BSX1JFRykgJiAzKSkpOworCSAgICAvKiBUSW1vZGUgaXMgdXNlZCBieSBE SW1vZGUgY29tcGFyZV9hbmRfc3dhcCwKKwkgICAgICAgYW5kIGJ5IERJVk1PRCBWNjRESW1v ZGUgbGliZnVuY3MuICAqLworCSAgICB8fCAoISgocmVnbm8gLSBGSVJTVF9WR1BSX1JFRykg JiAzKSAmJiB2Z3ByXzRyZWdfbW9kZV9wIChtb2RlKSkpOwogICByZXR1cm4gZmFsc2U7CiB9 CiAKQEAgLTEzMjQsNiArMTMyNCw3IEBAIEdFTl9WTiAoUFJFRklYLCBzaSMjU1VGRklYLCBB KFBBUkFNUyksIEEoQVJHUykpIFwKIEdFTl9WTiAoUFJFRklYLCBzZiMjU1VGRklYLCBBKFBB UkFNUyksIEEoQVJHUykpIFwKIEdFTl9WTiAoUFJFRklYLCBkaSMjU1VGRklYLCBBKFBBUkFN UyksIEEoQVJHUykpIFwKIEdFTl9WTiAoUFJFRklYLCBkZiMjU1VGRklYLCBBKFBBUkFNUyks IEEoQVJHUykpIFwKK1VTRV9USSAoR0VOX1ZOIChQUkVGSVgsIHRpIyNTVUZGSVgsIEEoUEFS QU1TKSwgQShBUkdTKSkpIFwKIHN0YXRpYyBydHggXAogZ2VuXyMjUFJFRklYIyN2Tm0jI1NV RkZJWCAoUEFSQU1TLCBydHggbWVyZ2Vfc3JjPU5VTEwsIHJ0eCBleGVjPU5VTEwpIFwKIHsg XApAQCAtMTMzOCw2ICsxMzM5LDggQEAgZ2VuXyMjUFJFRklYIyN2Tm0jI1NVRkZJWCAoUEFS QU1TLCBydHggbWVyZ2Vfc3JjPU5VTEwsIHJ0eCBleGVjPU5VTEwpIFwKICAgICBjYXNlIEVf U0Ztb2RlOiByZXR1cm4gZ2VuXyMjUFJFRklYIyN2TnNmIyNTVUZGSVggKEFSR1MsIG1lcmdl X3NyYywgZXhlYyk7IFwKICAgICBjYXNlIEVfREltb2RlOiByZXR1cm4gZ2VuXyMjUFJFRklY IyN2TmRpIyNTVUZGSVggKEFSR1MsIG1lcmdlX3NyYywgZXhlYyk7IFwKICAgICBjYXNlIEVf REZtb2RlOiByZXR1cm4gZ2VuXyMjUFJFRklYIyN2TmRmIyNTVUZGSVggKEFSR1MsIG1lcmdl X3NyYywgZXhlYyk7IFwKKyAgICBjYXNlIEVfVEltb2RlOiBcCisJVVNFX1RJIChyZXR1cm4g Z2VuXyMjUFJFRklYIyN2TnRpIyNTVUZGSVggKEFSR1MsIG1lcmdlX3NyYywgZXhlYyk7KSBc CiAgICAgZGVmYXVsdDogXAogICAgICAgYnJlYWs7IFwKICAgICB9IFwKQEAgLTEzNDYsNiAr MTM0OSwxNCBAQCBnZW5fIyNQUkVGSVgjI3ZObSMjU1VGRklYIChQQVJBTVMsIHJ0eCBtZXJn ZV9zcmM9TlVMTCwgcnR4IGV4ZWM9TlVMTCkgXAogICByZXR1cm4gTlVMTF9SVFg7IFwKIH0K IAorLyogVGhlc2UgaGF2ZSBUSW1vZGUgc3VwcG9ydC4gICovCisjZGVmaW5lIFVTRV9USShB UkdTKSBBUkdTCitHRU5fVk5NIChtb3YsLCBBKHJ0eCBkZXN0LCBydHggc3JjKSwgQShkZXN0 LCBzcmMpKQorR0VOX1ZOTSAodmVjX2R1cGxpY2F0ZSwsIEEocnR4IGRlc3QsIHJ0eCBzcmMp LCBBKGRlc3QsIHNyYykpCisKKy8qIFRoZXNlIGRvIG5vdCBoYXZlIFRJbW9kZSBzdXBwb3J0 LiAgKi8KKyN1bmRlZiBVU0VfVEkKKyNkZWZpbmUgVVNFX1RJKEFSR1MpCiBHRU5fVk5NIChh ZGQsMywgQShydHggZGVzdCwgcnR4IHNyYzEsIHJ0eCBzcmMyKSwgQShkZXN0LCBzcmMxLCBz cmMyKSkKIEdFTl9WTiAoYWRkLHNpM19kdXAsIEEocnR4IGRlc3QsIHJ0eCBzcmMxLCBydHgg c3JjMiksIEEoZGVzdCwgc3JjMSwgc3JjMikpCiBHRU5fVk4gKGFkZCxzaTNfdmNjX2R1cCwg QShydHggZGVzdCwgcnR4IHNyYzEsIHJ0eCBzcmMyLCBydHggdmNjKSwKQEAgLTEzNjQsMTIg KzEzNzUsMTEgQEAgR0VOX1ZOTV9OT0VYRUMgKGRzX2JwZXJtdXRlLCwgQShydHggZGVzdCwg cnR4IGFkZHIsIHJ0eCBzcmMsIHJ0eCBleGVjKSwKIAkJQShkZXN0LCBhZGRyLCBzcmMsIGV4 ZWMpKQogR0VOX1ZOTSAoZ2F0aGVyLF9leHByLCBBKHJ0eCBkZXN0LCBydHggYWRkciwgcnR4 IGFzLCBydHggdm9sKSwKIAkgQShkZXN0LCBhZGRyLCBhcywgdm9sKSkKLUdFTl9WTk0gKG1v diwsIEEocnR4IGRlc3QsIHJ0eCBzcmMpLCBBKGRlc3QsIHNyYykpCiBHRU5fVk4gKG11bCxz aTNfZHVwLCBBKHJ0eCBkZXN0LCBydHggc3JjMSwgcnR4IHNyYzIpLCBBKGRlc3QsIHNyYzEs IHNyYzIpKQogR0VOX1ZOIChzdWIsc2kzLCBBKHJ0eCBkZXN0LCBydHggc3JjMSwgcnR4IHNy YzIpLCBBKGRlc3QsIHNyYzEsIHNyYzIpKQotR0VOX1ZOTSAodmVjX2R1cGxpY2F0ZSwsIEEo cnR4IGRlc3QsIHJ0eCBzcmMpLCBBKGRlc3QsIHNyYykpCiBHRU5fVk5fTk9FWEVDICh2ZWNf c2VyaWVzLHNpLCBBKHJ0eCBkZXN0LCBydHggeCwgcnR4IGMpLCBBKGRlc3QsIHgsIGMpKQog CisjdW5kZWYgVVNFX1RJCiAjdW5kZWYgR0VOX1ZOTQogI3VuZGVmIEdFTl9WTgogI3VuZGVm IEdFVF9WTl9GTgpAQCAtNDg5Myw3ICs0OTAzLDEzIEBAIGdjbl92ZWN0b3JfbW9kZV9zdXBw b3J0ZWRfcCAobWFjaGluZV9tb2RlIG1vZGUpCiAJICB8fCBtb2RlID09IFY0U0Ztb2RlIHx8 IG1vZGUgPT0gVjRERm1vZGUKIAkgIHx8IG1vZGUgPT0gVjJRSW1vZGUgfHwgbW9kZSA9PSBW MkhJbW9kZQogCSAgfHwgbW9kZSA9PSBWMlNJbW9kZSB8fCBtb2RlID09IFYyREltb2RlCi0J ICB8fCBtb2RlID09IFYyU0Ztb2RlIHx8IG1vZGUgPT0gVjJERm1vZGUpOworCSAgfHwgbW9k ZSA9PSBWMlNGbW9kZSB8fCBtb2RlID09IFYyREZtb2RlCisJICAvKiBUSW1vZGUgdmVjdG9y cyBhcmUgYWxsb3dlZCB0byBleGlzdCBmb3IgZGl2bW9kLCBidXQgdGhlcmUKKwkgICAgIGFy ZSBhbG1vc3Qgbm8gaW5zdHJ1Y3Rpb25zIGRlZmluZWQgZm9yIHRoZW0sIGFuZCB0aGUKKwkg ICAgIGF1dG92ZWN0b3JpemVyIGRvZXMgbm90IHVzZSB0aGVtLiAgKi8KKwkgIHx8IG1vZGUg PT0gVjY0VEltb2RlIHx8IG1vZGUgPT0gVjMyVEltb2RlCisJICB8fCBtb2RlID09IFYxNlRJ bW9kZSB8fCBtb2RlID09IFY4VEltb2RlCisJICB8fCBtb2RlID09IFY0VEltb2RlIHx8IG1v ZGUgPT0gVjJUSW1vZGUpOwogfQogCiAvKiBJbXBsZW1lbnQgVEFSR0VUX1ZFQ1RPUklaRV9Q UkVGRVJSRURfU0lNRF9NT0RFLgpAQCAtNjcyMSw2ICs2NzM3LDEwIEBAIHByaW50X29wZXJh bmRfYWRkcmVzcyAoRklMRSAqZmlsZSwgcnR4IG1lbSkKICAgIE8gLSBwcmludCBvZmZzZXQ6 biBmb3IgZGF0YSBzaGFyZSBvcGVyYXRpb25zLgogICAgXiAtIHByaW50ICJfY28iIHN1ZmZp eCBmb3IgR0NONSBtbmVtb25pY3MKICAgIGcgLSBwcmludCAiZ2xjIiwgaWYgYXBwcm9wcmlh dGUgZm9yIGdpdmVuIE1FTQorICAgTCAtIHByaW50IGxvdy1wYXJ0IG9mIGEgbXVsdGktcmVn IHZhbHVlCisgICBIIC0gcHJpbnQgc2Vjb25kIHBhcnQgb2YgYSBtdWx0aS1yZWcgdmFsdWUg KGhpZ2gtcGFydCBvZiAyLXJlZyB2YWx1ZSkKKyAgIEogLSBwcmludCB0aGlyZCBwYXJ0IG9m IGEgbXVsdGktcmVnIHZhbHVlCisgICBLIC0gcHJpbnQgZm91cnRoIHBhcnQgb2YgYSBtdWx0 aS1yZWcgdmFsdWUKICAqLwogCiB2b2lkCkBAIC03MjYwLDYgKzcyODAsMTIgQEAgcHJpbnRf b3BlcmFuZCAoRklMRSAqZmlsZSwgcnR4IHgsIGludCBjb2RlKQogICAgIGNhc2UgJ0gnOgog ICAgICAgcHJpbnRfb3BlcmFuZCAoZmlsZSwgZ2NuX29wZXJhbmRfcGFydCAoR0VUX01PREUg KHgpLCB4LCAxKSwgMCk7CiAgICAgICByZXR1cm47CisgICAgY2FzZSAnSic6CisgICAgICBw cmludF9vcGVyYW5kIChmaWxlLCBnY25fb3BlcmFuZF9wYXJ0IChHRVRfTU9ERSAoeCksIHgs IDIpLCAwKTsKKyAgICAgIHJldHVybjsKKyAgICBjYXNlICdLJzoKKyAgICAgIHByaW50X29w ZXJhbmQgKGZpbGUsIGdjbl9vcGVyYW5kX3BhcnQgKEdFVF9NT0RFICh4KSwgeCwgMyksIDAp OworICAgICAgcmV0dXJuOwogICAgIGNhc2UgJ1InOgogICAgICAgLyogUHJpbnQgYSBzY2Fs YXIgcmVnaXN0ZXIgbnVtYmVyIGFzIGFuIGludGVnZXIuICBUZW1wb3JhcnkgaGFjay4gICov CiAgICAgICBnY2NfYXNzZXJ0IChSRUdfUCAoeCkpOwo= --------------Lk80Jvkt6qRngFkl1Yf058o0--