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 E01703858D33 for ; Wed, 1 Mar 2023 16:57:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E01703858D33 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="5.98,225,1673942400"; d="scan'208,223";a="98473317" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 01 Mar 2023 08:56:57 -0800 IronPort-SDR: 1MQHEsmEOf6L/1vtLDIooi/5lNFxONMFnaOupqHehQNqaS9E1rA4ho/snJWEnFSkNQ+jQJdk9v NlBbVL90++BAvKh6c22KL5t/g9cqduxnBhaSiA6o+MPHtOhUMobGVbIxQNJKpBgZLnDvQ/sgY8 QYcxlmNo7+jS7F5q6K8NUFzXSOH3jdtVuE2k9WTU92bFnEDUyeepK5tbl1tGKo89NlJLOSUgYH wEp+cQoyQzZcL8bbu3o6pg1sR9A2e+AyBBg7pHETCtQpEXXA07jzDMJIYYeEQVPx3+EDVeN8ID qns= Content-Type: multipart/mixed; boundary="------------vpjAO0IlKa5ubqZa5HP0JYsZ" Message-ID: <1f1f9f15-e12e-ec4e-7b74-ba7bf3b64449@codesourcery.com> Date: Wed, 1 Mar 2023 17:56:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-GB, fr To: From: Paul-Antoine Arras Subject: [PATCH] amdgcn: Add instruction patterns for conditional min/max operations X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------vpjAO0IlKa5ubqZa5HP0JYsZ Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit This patch introduces instruction patterns for conditional min and max operations (cond_{f|s|u}{max|min}) in the GCN machine description. It also allows the exec register to be saved in SGPRs to avoid spilling to memory. Tested on GCN3 Fiji gfx803. OK for trunk? -- PA --------------vpjAO0IlKa5ubqZa5HP0JYsZ Content-Type: text/x-patch; charset="UTF-8"; name="0001-amdgcn-Add-instruction-patterns-for-conditional-min-.patch" Content-Disposition: attachment; filename*0="0001-amdgcn-Add-instruction-patterns-for-conditional-min-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxY2Q4NmI0NDIwZDlkNDJiY2RlODNkMGFjNTJhMDNhMDdkNGFhODE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsLUFudG9pbmUgQXJyYXMgPHBhQGNvZGVzb3Vy Y2VyeS5jb20+CkRhdGU6IFdlZCwgMSBNYXIgMjAyMyAxNzoyMDoyMSArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIGFtZGdjbjogQWRkIGluc3RydWN0aW9uIHBhdHRlcm5zIGZvciBjb25kaXRp b25hbCBtaW4vbWF4CiBvcGVyYXRpb25zCgpnY2MvQ2hhbmdlTG9nOgoKCSogY29uZmlnL2dj bi9nY24tdmFsdS5tZCAoPGV4cGFuZGVyPjxtb2RlPjNfZXhlYyk6IEFkZCBwYXR0ZXJucyBm b3IKCXtzfHV9e21heHxtaW59IGluIFFJLCBISSBhbmQgREkgbW9kZXMuCgkoPGV4cGFuZGVy Pjxtb2RlPjMpOiBBZGQgcGF0dGVybiBmb3Ige3N8dX17bWF4fG1pbn0gaW4gREkgbW9kZS4K CShjb25kXzxmZXhwYW5kZXI+PG1vZGU+KTogQWRkIHBhdHRlcm4gZm9yIGNvbmRfZnttYXh8 bWlufS4KCShjb25kXzxleHBhbmRlcj48bW9kZT4pOiBBZGQgcGF0dGVybiBmb3IgY29uZF97 c3x1fXttYXh8bWlufS4KCSogY29uZmlnL2djbi9nY24uY2MgKGdjbl9zcGlsbF9jbGFzcyk6 IEFsbG93IHRoZSBleGVjIHJlZ2lzdGVyIHRvIGJlCglzYXZlZCBpbiBTR1BScy4KCmdjYy90 ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fMS5j OiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fMV9ydW4uYzogTmV3 IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzIuYzogTmV3IHRlc3QuCgkq IGdjYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzJfcnVuLmM6IE5ldyB0ZXN0LgoJKiBnY2Mu dGFyZ2V0L2djbi9jb25kX2ZtYXhubV8zLmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2dj bi9jb25kX2ZtYXhubV8zX3J1bi5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29u ZF9mbWF4bm1fNC5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1f NF9ydW4uYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzUuYzog TmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzVfcnVuLmM6IE5ldyB0 ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV82LmM6IE5ldyB0ZXN0LgoJKiBn Y2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV82X3J1bi5jOiBOZXcgdGVzdC4KCSogZ2NjLnRh cmdldC9nY24vY29uZF9mbWF4bm1fNy5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24v Y29uZF9mbWF4bm1fN19ydW4uYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRf Zm1heG5tXzguYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzhf cnVuLmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8xLmM6IE5l dyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8xX3J1bi5jOiBOZXcgdGVz dC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fMi5jOiBOZXcgdGVzdC4KCSogZ2Nj LnRhcmdldC9nY24vY29uZF9mbWlubm1fMl9ydW4uYzogTmV3IHRlc3QuCgkqIGdjYy50YXJn ZXQvZ2NuL2NvbmRfZm1pbm5tXzMuYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2Nv bmRfZm1pbm5tXzNfcnVuLmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX2Zt aW5ubV80LmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV80X3J1 bi5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fNS5jOiBOZXcg dGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fNV9ydW4uYzogTmV3IHRlc3Qu CgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzYuYzogTmV3IHRlc3QuCgkqIGdjYy50 YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzZfcnVuLmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0 L2djbi9jb25kX2ZtaW5ubV83LmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9jb25k X2ZtaW5ubV83X3J1bi5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWlu bm1fOC5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fOF9ydW4u YzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfc21heF8xLmM6IE5ldyB0ZXN0 LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX3NtYXhfMV9ydW4uYzogTmV3IHRlc3QuCgkqIGdj Yy50YXJnZXQvZ2NuL2NvbmRfc21pbl8xLmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2dj bi9jb25kX3NtaW5fMV9ydW4uYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRf dW1heF8xLmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX3VtYXhfMV9ydW4u YzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfdW1pbl8xLmM6IE5ldyB0ZXN0 LgoJKiBnY2MudGFyZ2V0L2djbi9jb25kX3VtaW5fMV9ydW4uYzogTmV3IHRlc3QuCgkqIGdj Yy50YXJnZXQvZ2NuL3NtYXhfMS5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vc21h eF8xX3J1bi5jOiBOZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vc21pbl8xLmM6IE5ldyB0 ZXN0LgoJKiBnY2MudGFyZ2V0L2djbi9zbWluXzFfcnVuLmM6IE5ldyB0ZXN0LgoJKiBnY2Mu dGFyZ2V0L2djbi91bWF4XzEuYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL3VtYXhf MV9ydW4uYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL3VtaW5fMS5jOiBOZXcgdGVz dC4KCSogZ2NjLnRhcmdldC9nY24vdW1pbl8xX3J1bi5jOiBOZXcgdGVzdC4KLS0tCiBnY2Mv Y29uZmlnL2djbi9nY24tdmFsdS5tZCAgICAgICAgICAgICAgICAgICAgfCAxMzQgKysrKysr KysrKysrKysrKystCiBnY2MvY29uZmlnL2djbi9nY24uY2MgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4 bm1fMS5jICB8ICAzNiArKysrKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzFf cnVuLmMgICAgICAgIHwgIDMyICsrKysrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L2NvbmRfZm1heG5tXzIuYyAgfCAgMzUgKysrKysKIC4uLi9nY2MudGFyZ2V0L2djbi9jb25k X2ZtYXhubV8yX3J1bi5jICAgICAgICB8ICAzMSArKysrCiBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzMuYyAgfCAgMzcgKysrKysKIC4uLi9nY2MudGFyZ2V0 L2djbi9jb25kX2ZtYXhubV8zX3J1bi5jICAgICAgICB8ICAzMiArKysrKwogZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV80LmMgIHwgIDM3ICsrKysrCiAuLi4v Z2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNF9ydW4uYyAgICAgICAgfCAgMzIgKysrKysK IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNS5jICB8ICAgOSAr KwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzVfcnVuLmMgICAgICAgIHwgICA0 ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNi5jICB8ICAg OSArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzZfcnVuLmMgICAgICAgIHwg ICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNy5jICB8 ICAgOSArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzdfcnVuLmMgICAgICAg IHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fOC5j ICB8ICAgOSArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzhfcnVuLmMgICAg ICAgIHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1f MS5jICB8ICAxMCArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzFfcnVuLmMg ICAgICAgIHwgICA1ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlu bm1fMi5jICB8ICAxMCArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzJfcnVu LmMgICAgICAgIHwgICA1ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9m bWlubm1fMy5jICB8ICAxMiArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzNf cnVuLmMgICAgICAgIHwgICA1ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29u ZF9mbWlubm1fNC5jICB8ICAxMiArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5t XzRfcnVuLmMgICAgICAgIHwgICA1ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v Y29uZF9mbWlubm1fNS5jICB8ICAxMCArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1p bm5tXzVfcnVuLmMgICAgICAgIHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vY29uZF9mbWlubm1fNi5jICB8ICAxMCArKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRf Zm1pbm5tXzZfcnVuLmMgICAgICAgIHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vY29uZF9mbWlubm1fNy5jICB8ICAxMCArKwogLi4uL2djYy50YXJnZXQvZ2NuL2Nv bmRfZm1pbm5tXzdfcnVuLmMgICAgICAgIHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vY29uZF9mbWlubm1fOC5jICB8ICAxMCArKwogLi4uL2djYy50YXJnZXQvZ2Nu L2NvbmRfZm1pbm5tXzhfcnVuLmMgICAgICAgIHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vY29uZF9zbWF4XzEuYyAgICB8ICA1OSArKysrKysrKwogLi4uL2djYy50 YXJnZXQvZ2NuL2NvbmRfc21heF8xX3J1bi5jICAgICAgICAgIHwgIDUzICsrKysrKysKIGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9zbWluXzEuYyAgICB8ICA1NyArKysr KysrKwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfc21pbl8xX3J1bi5jICAgICAgICAgIHwg IDUzICsrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF91bWF4XzEu YyAgICB8ICA1NCArKysrKysrCiAuLi4vZ2NjLnRhcmdldC9nY24vY29uZF91bWF4XzFfcnVu LmMgICAgICAgICAgfCAgNTMgKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2dj bi9jb25kX3VtaW5fMS5jICAgIHwgIDUzICsrKysrKysKIC4uLi9nY2MudGFyZ2V0L2djbi9j b25kX3VtaW5fMV9ydW4uYyAgICAgICAgICB8ICA1MyArKysrKysrCiBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL3NtYXhfMS5jICAgICAgICAgfCAgNTAgKysrKysrKwogZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9zbWF4XzFfcnVuLmMgICAgIHwgIDQ5ICsrKysrKysK IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc21pbl8xLmMgICAgICAgICB8ICA1MCAr KysrKysrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NtaW5fMV9ydW4uYyAgICAg fCAgNDkgKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi91bWF4XzEuYyAg ICAgICAgIHwgIDQ3ICsrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi91bWF4 XzFfcnVuLmMgICAgIHwgIDQ5ICsrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vdW1pbl8xLmMgICAgICAgICB8ICA0NyArKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vdW1pbl8xX3J1bi5jICAgICB8ICA0OSArKysrKysrCiA1MCBmaWxlcyBjaGFu Z2VkLCAxNDAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV8xLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1h eG5tXzFfcnVuLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL2NvbmRfZm1heG5tXzIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fMl9ydW4uYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fMy5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhu bV8zX3J1bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9jb25kX2ZtYXhubV80LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzRfcnVuLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzUuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1f NV9ydW4uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vY29uZF9mbWF4bm1fNi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV82X3J1bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV83LmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzdf cnVuLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L2NvbmRfZm1heG5tXzguYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vY29uZF9mbWF4bm1fOF9ydW4uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fMS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8xX3J1 bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX2ZtaW5ubV8yLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzJfcnVuLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzMuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fM19ydW4u YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29u ZF9mbWlubm1fNC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9jb25kX2ZtaW5ubV80X3J1bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV81LmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzVfcnVuLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRf Zm1pbm5tXzYuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vY29uZF9mbWlubm1fNl9ydW4uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fNy5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV83X3J1bi5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2Zt aW5ubV84LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL2NvbmRfZm1pbm5tXzhfcnVuLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc21heF8xLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc21heF8xX3J1bi5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NtaW5fMS5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25k X3NtaW5fMV9ydW4uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vY29uZF91bWF4XzEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9nY24vY29uZF91bWF4XzFfcnVuLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfdW1pbl8xLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfdW1pbl8xX3J1 bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9z bWF4XzEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vc21heF8xX3J1bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9zbWluXzEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vc21pbl8xX3J1bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi91bWF4XzEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vdW1heF8xX3J1bi5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi91bWluXzEuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vdW1pbl8xX3J1bi5jCgpk aWZmIC0tZ2l0IGdjYy9jb25maWcvZ2NuL2djbi12YWx1Lm1kIGdjYy9jb25maWcvZ2NuL2dj bi12YWx1Lm1kCmluZGV4IDQ3ZDlkODdkNThhLi4xM2Q3MDEzZGU3NSAxMDA2NDQKLS0tIGdj Yy9jb25maWcvZ2NuL2djbi12YWx1Lm1kCisrKyBnY2MvY29uZmlnL2djbi9nY24tdmFsdS5t ZApAQCAtMjM1OCw2ICsyMzU4LDM0IEBAIChkZWZpbmVfZXhwYW5kICI8ZXhwYW5kZXI+PG1v ZGU+MyIKICAgICBET05FOwogICB9KQogCisoZGVmaW5lX2V4cGFuZCAiPGV4cGFuZGVyPjxt b2RlPjNfZXhlYyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9RSUhJIDAgImdjbl92YWx1 X2RzdF9vcGVyYW5kIikKKwkodmVjX21lcmdlOlZfUUlISQorCSAgKG1pbm1heG9wOlZfUUlI SQorCSAgICAobWF0Y2hfb3BlcmFuZDpWX1FJSEkgMSAiZ2NuX3ZhbHVfc3JjMF9vcGVyYW5k IikKKwkgICAgKG1hdGNoX29wZXJhbmQ6Vl9RSUhJIDIgImdjbl92YWx1X3NyYzFjb21fb3Bl cmFuZCIpKQorCSAgKG1hdGNoX29wZXJhbmQ6Vl9RSUhJIDMgImdjbl9yZWdpc3Rlcl9vcl91 bnNwZWNfb3BlcmFuZCIgIlUwIikKKwkgIChtYXRjaF9vcGVyYW5kOkRJIDQgImdjbl9leGVj X3JlZ19vcGVyYW5kIiAiZSIpKSldCisgICIiCisgIHsKKyAgICBlbnVtIHtzbWluLCB1bWlu LCBzbWF4LCB1bWF4fTsKKyAgICBib29sIHVuc2lnbmVkcCA9ICg8Y29kZT4gPT0gdW1heCB8 fCA8Y29kZT4gPT0gdW1pbik7CisgICAgcnR4IGluc2kxID0gZ2VuX3JlZ19ydHggKDxWblNJ Pm1vZGUpOworICAgIHJ0eCBpbnNpMiA9IGdlbl9yZWdfcnR4ICg8Vm5TST5tb2RlKTsKKyAg ICBydHggb3V0c2kgPSBnZW5fcmVnX3J0eCAoPFZuU0k+bW9kZSk7CisgICAgcnR4IG91dCA9 IG9wZXJhbmRzWzBdOworICAgIHJ0eCBleGVjID0gb3BlcmFuZHNbNF07CisgICAgcnR4IHRt cCA9IGdlbl9yZWdfcnR4ICg8TU9ERT5tb2RlKTsKKworICAgIGNvbnZlcnRfbW92ZSAoaW5z aTEsIG9wZXJhbmRzWzFdLCB1bnNpZ25lZHApOworICAgIGNvbnZlcnRfbW92ZSAoaW5zaTIs IG9wZXJhbmRzWzJdLCB1bnNpZ25lZHApOworICAgIGVtaXRfaW5zbiAoZ2VuXzxjb2RlPjx2 bnNpPjNfZXhlYyAob3V0c2ksIGluc2kxLCBpbnNpMiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2NuX2dlbl91bmRlZig8Vm5TST5tb2RlKSwgZXhlYykpOwor ICAgIGNvbnZlcnRfbW92ZSAodG1wLCBvdXRzaSwgdW5zaWduZWRwKTsKKyAgICBlbWl0X2lu c24gKGdlbl9tb3Y8bW9kZT5fZXhlYyAob3V0LCB0bXAsIG9wZXJhbmRzWzNdLCBleGVjKSk7 CisgICAgRE9ORTsKKyAgfSkKKwogKGRlZmluZV9pbnNuICI8ZXhwYW5kZXI+PHZuc2k+Mzxl eGVjPiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9TSSAwICJnY25fdmFsdV9kc3Rfb3Bl cmFuZCIJICAgIj0gIHYsUkQiKQogCShtaW5tYXhvcDpWX1NJCkBAIC0yMzcwLDYgKzIzOTgs NjkgQEAgKGRlZmluZV9pbnNuICI8ZXhwYW5kZXI+PHZuc2k+MzxleGVjPiIKICAgWyhzZXRf YXR0ciAidHlwZSIgInZvcDIsZHMiKQogICAgKHNldF9hdHRyICJsZW5ndGgiICI4LDgiKV0p CiAKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIjxleHBhbmRlcj48bW9kZT4zIgorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWX0RJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgIj0gIHYi KQorCShtaW5tYXhvcDpWX0RJCisJICAobWF0Y2hfb3BlcmFuZDpWX0RJIDEgImdjbl9hbHVf b3BlcmFuZCIgICAgICIlICB2IikKKyAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWX0RJIDIg Imdjbl9hbHVfb3BlcmFuZCIgICAgICIgICB2IikpKQorICAgIChjbG9iYmVyIChyZWc6REkg VkNDX1JFRykpXQorICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsoY29u c3RfaW50IDApXQorICB7CisgICAgcnR4IG91dCA9IG9wZXJhbmRzWzBdOworICAgIHJ0eCB2 Y2MgPSBnZW5fcnR4X1JFRyAoREltb2RlLCBWQ0NfUkVHKTsKKworICAgIGVudW0ge3NtaW4s IHNtYXgsIHVtaW4sIHVtYXh9OworICAgIGJvb2wgbWlucCA9ICg8Y29kZT4gPT0gc21pbiB8 fCA8Y29kZT4gPT0gdW1pbik7CisgICAgaWYgKDxjb2RlPiA9PSBzbWluIHx8IDxjb2RlPiA9 PSBzbWF4KQorICAgICAgZW1pdF9pbnNuIChnZW5fdmVjX2NtcDxtb2RlPmRpICh2Y2MsIG1p bnAgPyBnZW5fcnR4X0xUIChWT0lEbW9kZSwgMCwgMCkgOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2VuX3J0eF9HVCAoVk9JRG1vZGUsIDAsIDApLCBvcGVyYW5k c1sxXSwgb3BlcmFuZHNbMl0pKTsKKyAgICBlbHNlCisgICAgICBlbWl0X2luc24gKGdlbl92 ZWNfY21wPG1vZGU+ZGkgKHZjYywgbWlucCA/IGdlbl9ydHhfTFRVIChWT0lEbW9kZSwgMCwg MCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX3J0eF9HVFUg KFZPSURtb2RlLCAwLCAwKSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CisgICAgZW1p dF9pbnNuIChnZW5fdmNvbmRfbWFza188bW9kZT5kaSAob3V0LCBvcGVyYW5kc1sxXSwgb3Bl cmFuZHNbMl0sIHZjYykpOworICB9CisgIFsoc2V0X2F0dHIgInR5cGUiICJtdWx0IildKQor CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICI8ZXhwYW5kZXI+PG1vZGU+M19leGVjIgorICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWX0RJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAg ICAgICAgICAiPSAgdiIpCisJKHZlY19tZXJnZTpWX0RJCisgICAgICAgICAgKG1pbm1heG9w OlZfREkKKyAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlZfREkgMSAiZ2NuX2FsdV9vcGVy YW5kIiAgICAgICAgICAgICAgIiUgIHYiKQorICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 Vl9ESSAyICJnY25fYWx1X29wZXJhbmQiICAgICAgICAgICAgICAiICAgdiIpKQorICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlZfREkgMyAiZ2NuX3JlZ2lzdGVyX29yX3Vuc3BlY19vcGVy YW5kIiAiICBVMCIpCisgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6REkgNCAiZ2NuX2V4ZWNf cmVnX29wZXJhbmQiICAiK2UiKSkpCisgICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6PFZu REk+IDUJCSAgICAgICI9ICZ2IikpCisgICAgKGNsb2JiZXIgKHJlZzpESSBWQ0NfUkVHKSld CisgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhjb25zdF9pbnQgMCld CisgIHsKKyAgICBydHggb3V0ID0gb3BlcmFuZHNbMF07CisgICAgcnR4IHZjYyA9IGdlbl9y dHhfUkVHIChESW1vZGUsIFZDQ19SRUcpOworICAgIHJ0eCBleGVjID0gb3BlcmFuZHNbNF07 CisgICAgcnR4IHRtcCA9IG9wZXJhbmRzWzVdOworCisgICAgZW51bSB7c21pbiwgc21heCwg dW1pbiwgdW1heH07CisgICAgYm9vbCBtaW5wID0gKDxjb2RlPiA9PSBzbWluIHx8IDxjb2Rl PiA9PSB1bWluKTsKKyAgICBpZiAoPGNvZGU+ID09IHNtaW4gfHwgPGNvZGU+ID09IHNtYXgp CisgICAgICBlbWl0X2luc24gKGdlbl92ZWNfY21wPG1vZGU+ZGlfZXhlYyAodmNjLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5wID8gZ2VuX3J0eF9M VCAoVk9JRG1vZGUsIDAsIDApIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2VuX3J0eF9HVCAoVk9JRG1vZGUsIDAsIDApLCBvcGVyYW5kc1sxXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZHNbMl0sIGV4 ZWMpKTsKKyAgICBlbHNlCisgICAgICBlbWl0X2luc24gKGdlbl92ZWNfY21wPG1vZGU+ZGlf ZXhlYyAodmNjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt aW5wID8gZ2VuX3J0eF9MVFUgKFZPSURtb2RlLCAwLCAwKSA6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdlbl9ydHhfR1RVIChWT0lEbW9kZSwgMCwgMCks IG9wZXJhbmRzWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvcGVyYW5kc1syXSwgZXhlYykpOworICAgIGVtaXRfaW5zbiAoZ2VuX3Zjb25kX21hc2tf PG1vZGU+ZGkgKHRtcCwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdLCB2Y2MpKTsKKyAgICBl bWl0X2luc24gKGdlbl9tb3Y8bW9kZT5fZXhlYyAob3V0LCB0bXAsIG9wZXJhbmRzWzNdLCBl eGVjKSk7CisgIH0KKyAgWyhzZXRfYXR0ciAidHlwZSIgIm11bHQiKV0pCisKIDs7IH19fQog Ozsge3t7IEludCB1bm9wcwogCkBAIC0zNDY4LDcgKzM1NTksNDggQEAgKGRlZmluZV9leHBh bmQgImNvbmRfPGV4cGFuZGVyPjxtb2RlPiIKICAgICBET05FOwogICB9KQogCi07OyBUT0RP IHNtaW4gdW1pbiBzbWF4IHVtYXgKKyhkZWZpbmVfY29kZV9pdGVyYXRvciBjb25kX2ZtaW5t YXhvcCBbc21pbiBzbWF4XSkKKworKGRlZmluZV9leHBhbmQgImNvbmRfPGZleHBhbmRlcj48 bW9kZT4iCisgIFsobWF0Y2hfb3BlcmFuZDpWX0ZQIDAgInJlZ2lzdGVyX29wZXJhbmQiKQor ICAgKG1hdGNoX29wZXJhbmQ6REkgMSAicmVnaXN0ZXJfb3BlcmFuZCIpCisgICAoY29uZF9m bWlubWF4b3A6Vl9GUAorICAgICAobWF0Y2hfb3BlcmFuZDpWX0ZQIDIgImdjbl9hbHVfb3Bl cmFuZCIpCisgICAgIChtYXRjaF9vcGVyYW5kOlZfRlAgMyAiZ2NuX2FsdV9vcGVyYW5kIikp CisgICAobWF0Y2hfb3BlcmFuZDpWX0ZQIDQgInJlZ2lzdGVyX29wZXJhbmQiKV0KKyAgIiIK KyAgeworICAgIG9wZXJhbmRzWzFdID0gZm9yY2VfcmVnIChESW1vZGUsIG9wZXJhbmRzWzFd KTsKKyAgICBvcGVyYW5kc1syXSA9IGZvcmNlX3JlZyAoPE1PREU+bW9kZSwgb3BlcmFuZHNb Ml0pOworCisgICAgZW1pdF9pbnNuIChnZW5fPGZleHBhbmRlcj48bW9kZT4zX2V4ZWMgKG9w ZXJhbmRzWzBdLCBvcGVyYW5kc1syXSwKKwkJCQkJICAgb3BlcmFuZHNbM10sIG9wZXJhbmRz WzRdLAorCQkJCQkgICBvcGVyYW5kc1sxXSkpOworICAgIERPTkU7CisgIH0pCisKKyhkZWZp bmVfY29kZV9pdGVyYXRvciBjb25kX21pbm1heG9wIFtzbWluIHNtYXggdW1pbiB1bWF4XSkK KworKGRlZmluZV9leHBhbmQgImNvbmRfPGV4cGFuZGVyPjxtb2RlPiIKKyAgWyhtYXRjaF9v cGVyYW5kOlZfSU5UIDAgInJlZ2lzdGVyX29wZXJhbmQiKQorICAgKG1hdGNoX29wZXJhbmQ6 REkgMSAicmVnaXN0ZXJfb3BlcmFuZCIpCisgICAoY29uZF9taW5tYXhvcDpWX0lOVAorICAg ICAobWF0Y2hfb3BlcmFuZDpWX0lOVCAyICJnY25fYWx1X29wZXJhbmQiKQorICAgICAobWF0 Y2hfb3BlcmFuZDpWX0lOVCAzICJnY25fYWx1X29wZXJhbmQiKSkKKyAgIChtYXRjaF9vcGVy YW5kOlZfSU5UIDQgInJlZ2lzdGVyX29wZXJhbmQiKV0KKyAgIiIKKyAgeworICAgIG9wZXJh bmRzWzFdID0gZm9yY2VfcmVnIChESW1vZGUsIG9wZXJhbmRzWzFdKTsKKyAgICBvcGVyYW5k c1syXSA9IGZvcmNlX3JlZyAoPE1PREU+bW9kZSwgb3BlcmFuZHNbMl0pOworICAgIHJ0eCB0 bXAgPSBnZW5fcmVnX3J0eCAoPE1PREU+bW9kZSk7CisKKyAgICBlbWl0X2luc24gKGdlbl88 ZXhwYW5kZXI+PG1vZGU+M19leGVjICh0bXAsIG9wZXJhbmRzWzJdLAorCQkJCQkgICBvcGVy YW5kc1szXSwgZ2NuX2dlbl91bmRlZig8TU9ERT5tb2RlKSwKKwkJCQkJICAgb3BlcmFuZHNb MV0pKTsKKyAgICBlbWl0X2luc24gKGdlbl92Y29uZF9tYXNrXzxtb2RlPmRpIChvcGVyYW5k c1swXSwgdG1wLCBvcGVyYW5kc1s0XSwgb3BlcmFuZHNbMV0pKTsKKyAgICBET05FOworICB9 KQorCiAoZGVmaW5lX2NvZGVfaXRlcmF0b3IgY29uZF9iaXRvcCBbYW5kIGlvciB4b3JdKQog CiAoZGVmaW5lX2V4cGFuZCAiY29uZF88ZXhwYW5kZXI+PG1vZGU+IgpkaWZmIC0tZ2l0IGdj Yy9jb25maWcvZ2NuL2djbi5jYyBnY2MvY29uZmlnL2djbi9nY24uY2MKaW5kZXggMjNhYjAx ZTc1ZDguLmI0MjE2YjczNTIyIDEwMDY0NAotLS0gZ2NjL2NvbmZpZy9nY24vZ2NuLmNjCisr KyBnY2MvY29uZmlnL2djbi9nY24uY2MKQEAgLTc5Nyw3ICs3OTcsNyBAQCBzdGF0aWMgcmVn X2NsYXNzX3QKIGdjbl9zcGlsbF9jbGFzcyAocmVnX2NsYXNzX3QgYywgbWFjaGluZV9tb2Rl IC8qbW9kZSAqLyApCiB7CiAgIGlmIChyZWdfY2xhc3Nlc19pbnRlcnNlY3RfcCAoQUxMX0NP TkRJVElPTkFMX1JFR1MsIGMpCi0gICAgICB8fCBjID09IFZDQ19DT05ESVRJT05BTF9SRUcp CisgICAgICB8fCBjID09IFZDQ19DT05ESVRJT05BTF9SRUcgfHwgYyA9PSBFWEVDX01BU0tf UkVHKQogICAgIHJldHVybiBTR1BSX1JFR1M7CiAgIGVsc2UKICAgICByZXR1cm4gTk9fUkVH UzsKZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5t XzEuYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzEuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjFjMDc5OGIzMGQKLS0tIC9k ZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV8x LmMKQEAgLTAsMCArMSwzNiBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUgLWZmYXN0LW1hdGggLWRwIiB9ICovCisK KyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2lmbmRlZiBGTgorI2RlZmluZSBGTihYKSBfX2J1 aWx0aW5fZm1heCMjWAorI2VuZGlmCisKKyNkZWZpbmUgREVGX0xPT1AoRk4sIFRZUEUsIFBS RURfVFlQRSwgTkFNRSwgQ09OU1QpCVwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9pcGEp KQkJCQlcCisgIHRlc3RfIyNUWVBFIyNfIyNOQU1FIChUWVBFICpfX3Jlc3RyaWN0IHgsCQlc CisJCQlUWVBFICpfX3Jlc3RyaWN0IHksCQlcCisJCQlQUkVEX1RZUEUgKl9fcmVzdHJpY3Qg cHJlZCwJXAorCQkJaW50IG4pCQkJCVwKKyAgewkJCQkJCQlcCisgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuOyArK2kpCQkJCVwKKyAgICAgIHhbaV0gPSBwcmVkW2ldICE9IDEgPyBGTiAo eVtpXSwgQ09OU1QpIDogeVtpXTsJXAorICB9CisKKyNkZWZpbmUgVEVTVF9UWVBFKFQsIEZO LCBUWVBFLCBQUkVEX1RZUEUpIFwKKyAgVCAoRk4sIFRZUEUsIFBSRURfVFlQRSwgemVybywg MCkgXAorICBUIChGTiwgVFlQRSwgUFJFRF9UWVBFLCBvbmUsIDEpIFwKKyAgVCAoRk4sIFRZ UEUsIFBSRURfVFlQRSwgdHdvLCAyKQorCisjZGVmaW5lIFRFU1RfQUxMKFQpIFwKKyAgVEVT VF9UWVBFIChULCBGTiAoZjMyKSwgZmxvYXQsIGludDMyX3QpIFwKKyAgVEVTVF9UWVBFIChU LCBGTiAoZjY0KSwgZG91YmxlLCBpbnQ2NF90KQorCitURVNUX0FMTCAoREVGX0xPT1ApCisK KworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWF4djY0c2YzX2V4 ZWN9IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Nt YXh2NjRkZjNfZXhlY30gMyB9IH0gKi8KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7XHR2X3dyaXRlbGFuZV9iMzJcdHZbMC05XSssIHZjY18uLn0gfSB9ICovClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vY29uZF9mbWF4bm1fMV9ydW4uYyBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL2NvbmRfZm1heG5tXzFfcnVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmVkNGI0NzFjYTRkCi0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fMV9ydW4uYwpAQCAtMCwwICsxLDMyIEBA CisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVj dG9yaXplIC1mZmFzdC1tYXRoIiB9ICovCisKKyNpbmNsdWRlICJjb25kX2ZtYXhubV8xLmMi CisKKyNkZWZpbmUgTiA5OQorCisjZGVmaW5lIFRFU1RfTE9PUChGTiwgVFlQRSwgUFJFRF9U WVBFLCBOQU1FLCBDT05TVCkJCQlcCisgIHsJCQkJCQkJCQlcCisgICAgVFlQRSB4W05dLCB5 W05dOwkJCQkJCQlcCisgICAgUFJFRF9UWVBFIHByZWRbTl07CQkJCQkJCVwKKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IE47ICsraSkJCQkJCQlcCisgICAgICB7CQkJCQkJCQkJXAorCXlb aV0gPSBpICogaTsJCQkJCQkJXAorCXByZWRbaV0gPSBpICUgMzsJCQkJCQlcCisgICAgICB9 CQkJCQkJCQkJXAorICAgIHRlc3RfIyNUWVBFIyNfIyNOQU1FICh4LCB5LCBwcmVkLCBOKTsJ CQkJXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQkJCQkJCVwKKyAgICAgIHsJ CQkJCQkJCQlcCisJVFlQRSBleHBlY3RlZCA9IGkgJSAzICE9IDEgPyBGTiAoeVtpXSwgQ09O U1QpIDogeVtpXTsJCVwKKwlpZiAoeFtpXSAhPSBleHBlY3RlZCkJCQkJCQlcCisJICBfX2J1 aWx0aW5fYWJvcnQgKCk7CQkJCQkJXAorCWFzbSB2b2xhdGlsZSAoIiIgOjo6ICJtZW1vcnki KTsJCQkJCVwKKyAgICAgIH0JCQkJCQkJCQlcCisgIH0KKworaW50CittYWluICh2b2lkKQor eworICBURVNUX0FMTCAoVEVTVF9MT09QKQorICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzIuYyBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uM2QyNWZmY2ZlOTQKLS0tIC9kZXYvbnVsbAorKysgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV8yLmMKQEAgLTAsMCArMSwz NSBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1m dHJlZS12ZWN0b3JpemUgLWZmYXN0LW1hdGggLWRwIiB9ICovCisKKyNpbmNsdWRlIDxzdGRp bnQuaD4KKworI2lmbmRlZiBGTgorI2RlZmluZSBGTihYKSBfX2J1aWx0aW5fZm1heCMjWAor I2VuZGlmCisKKyNkZWZpbmUgREVGX0xPT1AoRk4sIFRZUEUsIE5BTUUsIENPTlNUKQkJCVwK KyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9pcGEpKQkJCQlcCisgIHRlc3RfIyNUWVBFIyNf IyNOQU1FIChUWVBFICpfX3Jlc3RyaWN0IHgsCQlcCisJCQlUWVBFICpfX3Jlc3RyaWN0IHks CQlcCisJCQlUWVBFICpfX3Jlc3RyaWN0IHosCQlcCisJCQlpbnQgbikJCQkJXAorICB7CQkJ CQkJCVwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkJCQkJXAorICAgICAgeFtp XSA9IHlbaV0gPCA4ID8gRk4gKHpbaV0sIENPTlNUKSA6IHlbaV07CVwKKyAgfQorCisjZGVm aW5lIFRFU1RfVFlQRShULCBGTiwgVFlQRSkgXAorICBUIChGTiwgVFlQRSwgemVybywgMCkg XAorICBUIChGTiwgVFlQRSwgb25lLCAxKSBcCisgIFQgKEZOLCBUWVBFLCB0d28sIDIpCisK KyNkZWZpbmUgVEVTVF9BTEwoVCkgXAorICBURVNUX1RZUEUgKFQsIEZOIChmMzIpLCBmbG9h dCkgXAorICBURVNUX1RZUEUgKFQsIEZOIChmNjQpLCBkb3VibGUpCisKK1RFU1RfQUxMIChE RUZfTE9PUCkKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWF4 djY0c2YzX2V4ZWN9IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3NtYXh2NjRkZjNfZXhlY30gMyB9IH0gKi8KKworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7XHR2X3dyaXRlbGFuZV9iMzJcdHZbMC05XSssIHZjY18uLn0g fSB9ICovCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2Zt YXhubV8yX3J1bi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1f Ml9ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTcwZmQ2 Y2ZlNWEKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX2ZtYXhubV8yX3J1bi5jCkBAIC0wLDAgKzEsMzEgQEAKKy8qIHsgZGctZG8gcnVuIH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUgLWZmYXN0LW1hdGgi IH0gKi8KKworI2luY2x1ZGUgImNvbmRfZm1heG5tXzIuYyIKKworI2RlZmluZSBOIDk5CisK KyNkZWZpbmUgVEVTVF9MT09QKEZOLCBUWVBFLCBOQU1FLCBDT05TVCkJCQkJXAorICB7CQkJ CQkJCQkJXAorICAgIFRZUEUgeFtOXSwgeVtOXSwgeltOXTsJCQkJCQlcCisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBOOyArK2kpCQkJCQkJXAorICAgICAgewkJCQkJCQkJCVwKKwl5W2ld ID0gaSAlIDEzOwkJCQkJCQlcCisJeltpXSA9IGkgKiBpOwkJCQkJCQlcCisgICAgICB9CQkJ CQkJCQkJXAorICAgIHRlc3RfIyNUWVBFIyNfIyNOQU1FICh4LCB5LCB6LCBOKTsJCQkJCVwK KyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkJCQkJCQlcCisgICAgICB7CQkJCQkJ CQkJXAorCVRZUEUgZXhwZWN0ZWQgPSB5W2ldIDwgOCA/IEZOICh6W2ldLCBDT05TVCkgOiB5 W2ldOwkJXAorCWlmICh4W2ldICE9IGV4cGVjdGVkKQkJCQkJCVwKKwkgIF9fYnVpbHRpbl9h Ym9ydCAoKTsJCQkJCQlcCisJYXNtIHZvbGF0aWxlICgiIiA6OjogIm1lbW9yeSIpOwkJCQkJ XAorICAgICAgfQkJCQkJCQkJCVwKKyAgfQorCitpbnQKK21haW4gKHZvaWQpCit7CisgIFRF U1RfQUxMIChURVNUX0xPT1ApCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fMy5jIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vY29uZF9mbWF4bm1fMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi41NTU0M2ZlYzRiMAotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzMuYwpAQCAtMCwwICsxLDM3IEBACisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZl Y3Rvcml6ZSAtZmZhc3QtbWF0aCAtZHAiIH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgor CisjaWZuZGVmIEZOCisjZGVmaW5lIEZOKFgpIF9fYnVpbHRpbl9mbWF4IyNYCisjZW5kaWYK KworI2RlZmluZSBERUZfTE9PUChGTiwgVFlQRSwgUFJFRF9UWVBFLCBOQU1FLCBDT05TVCkJ XAorICB2b2lkIF9fYXR0cmlidXRlX18gKChub2lwYSkpCQkJCVwKKyAgdGVzdF8jI1RZUEUj I18jI05BTUUgKFRZUEUgKl9fcmVzdHJpY3QgeCwJCVwKKwkJCVRZUEUgKl9fcmVzdHJpY3Qg eSwJCVwKKwkJCVBSRURfVFlQRSAqX19yZXN0cmljdCBwcmVkLAlcCisJCQlpbnQgbikJCQkJ XAorICB7CQkJCQkJCVwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkJCQkJXAor ICAgICAgeFtpXSA9IHByZWRbaV0gIT0gMSA/IEZOICh5W2ldLCBDT05TVCkgOiA0OwlcCisg IH0KKworI2RlZmluZSBURVNUX1RZUEUoVCwgRk4sIFRZUEUsIFBSRURfVFlQRSkgXAorICBU IChGTiwgVFlQRSwgUFJFRF9UWVBFLCB6ZXJvLCAwKSBcCisgIFQgKEZOLCBUWVBFLCBQUkVE X1RZUEUsIG9uZSwgMSkgXAorICBUIChGTiwgVFlQRSwgUFJFRF9UWVBFLCB0d28sIDIpCisK KyNkZWZpbmUgVEVTVF9BTEwoVCkgXAorICBURVNUX1RZUEUgKFQsIEZOIChmMzIpLCBmbG9h dCwgaW50MzJfdCkgXAorICBURVNUX1RZUEUgKFQsIEZOIChmNjQpLCBkb3VibGUsIGludDY0 X3QpCisKK1RFU1RfQUxMIChERUZfTE9PUCkKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtzbWF4djY0c2YzfSAzIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHttb3Z2NjRzZl9leGVjfSAzIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWF4djY0c2YzfSAzIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHttb3Z2NjRkZl9leGVjfSAzIH0g fSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHZfd3JpdGVs YW5lX2IzMlx0dlswLTldKywgdmNjXy4ufSB9IH0gKi8KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2Zt YXhubV8zX3J1bi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1f M19ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDY5YmVl MTA2NzgKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX2ZtYXhubV8zX3J1bi5jCkBAIC0wLDAgKzEsMzIgQEAKKy8qIHsgZGctZG8gcnVuIH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUgLWZmYXN0LW1hdGgi IH0gKi8KKworI2luY2x1ZGUgImNvbmRfZm1heG5tXzMuYyIKKworI2RlZmluZSBOIDk5CisK KyNkZWZpbmUgVEVTVF9MT09QKEZOLCBUWVBFLCBQUkVEX1RZUEUsIE5BTUUsIENPTlNUKQkg ICAgICAgCVwKKyAgewkJCQkJCQkJXAorICAgIFRZUEUgeFtOXSwgeVtOXTsJCQkJCQlcCisg ICAgUFJFRF9UWVBFIHByZWRbTl07CQkJCQkJXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TjsgKytpKQkJCQkJXAorICAgICAgewkJCQkJCQkJXAorCXlbaV0gPSBpICogaTsJCQkJCQlc CisJcHJlZFtpXSA9IGkgJSAzOwkJCQkJXAorICAgICAgfQkJCQkJCQkJXAorICAgIHRlc3Rf IyNUWVBFIyNfIyNOQU1FICh4LCB5LCBwcmVkLCBOKTsJCQlcCisgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBOOyArK2kpCQkJCQlcCisgICAgICB7CQkJCQkJCQlcCisJVFlQRSBleHBlY3Rl ZCA9IGkgJSAzICE9IDEgPyBGTiAoeVtpXSwgQ09OU1QpIDogNDsJXAorCWlmICh4W2ldICE9 IGV4cGVjdGVkKQkJCQkJXAorCSAgX19idWlsdGluX2Fib3J0ICgpOwkJCQkJXAorCWFzbSB2 b2xhdGlsZSAoIiIgOjo6ICJtZW1vcnkiKTsJCQkJXAorICAgICAgfQkJCQkJCQkJXAorICB9 CisKK2ludAorbWFpbiAodm9pZCkKK3sKKyAgVEVTVF9BTEwgKFRFU1RfTE9PUCkKKyAgcmV0 dXJuIDA7Cit9CmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25k X2ZtYXhubV80LmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV80 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY1ZmMyYTliMzBk Ci0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9m bWF4bm1fNC5jCkBAIC0wLDAgKzEsMzcgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisv KiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1mZmFzdC1tYXRoIC1kcCIg fSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZm5kZWYgRk4KKyNkZWZpbmUgRk4o WCkgX19idWlsdGluX2ZtYXgjI1gKKyNlbmRpZgorCisjZGVmaW5lIERFRl9MT09QKEZOLCBU WVBFLCBQUkVEX1RZUEUsIE5BTUUsIENPTlNUKQlcCisgIHZvaWQgX19hdHRyaWJ1dGVfXyAo KG5vaXBhKSkJCQkJXAorICB0ZXN0XyMjVFlQRSMjXyMjTkFNRSAoVFlQRSAqX19yZXN0cmlj dCB4LAkJXAorCQkJVFlQRSAqX19yZXN0cmljdCB5LAkJXAorCQkJUFJFRF9UWVBFICpfX3Jl c3RyaWN0IHByZWQsCVwKKwkJCWludCBuKQkJCQlcCisgIHsJCQkJCQkJXAorICAgIGZvciAo aW50IGkgPSAwOyBpIDwgbjsgKytpKQkJCQlcCisgICAgICB4W2ldID0gcHJlZFtpXSAhPSAx ID8gRk4gKHlbaV0sIENPTlNUKSA6IDA7CVwKKyAgfQorCisjZGVmaW5lIFRFU1RfVFlQRShU LCBGTiwgVFlQRSwgUFJFRF9UWVBFKSBcCisgIFQgKEZOLCBUWVBFLCBQUkVEX1RZUEUsIHpl cm8sIDApIFwKKyAgVCAoRk4sIFRZUEUsIFBSRURfVFlQRSwgb25lLCAxKSBcCisgIFQgKEZO LCBUWVBFLCBQUkVEX1RZUEUsIHR3bywgMikKKworI2RlZmluZSBURVNUX0FMTChUKSBcCisg IFRFU1RfVFlQRSAoVCwgRk4gKGYzMiksIGZsb2F0LCBpbnQzMl90KSBcCisgIFRFU1RfVFlQ RSAoVCwgRk4gKGY2NCksIGRvdWJsZSwgaW50NjRfdCkKKworVEVTVF9BTEwgKERFRl9MT09Q KQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtYXh2NjRzZjN9 IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge21vdnY2 NHNmX2V4ZWN9IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3NtYXh2NjRzZjN9IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge21vdnY2NGRmX2V4ZWN9IDMgfSB9ICovCisKKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge1x0dl93cml0ZWxhbmVfYjMyXHR2WzAtOV0rLCB2Y2NfLi59 IH0gfSAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzRfcnVuLmMgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV80X3J1bi5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzRkMWQzYmI1NAotLS0gL2Rldi9udWxsCisrKyBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzRfcnVuLmMKQEAgLTAs MCArMSwzMiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIg LWZ0cmVlLXZlY3Rvcml6ZSAtZmZhc3QtbWF0aCIgfSAqLworCisjaW5jbHVkZSAiY29uZF9m bWF4bm1fNC5jIgorCisjZGVmaW5lIE4gOTkKKworI2RlZmluZSBURVNUX0xPT1AoRk4sIFRZ UEUsIFBSRURfVFlQRSwgTkFNRSwgQ09OU1QpCQkJXAorICB7CQkJCQkJCQkJXAorICAgIFRZ UEUgeFtOXSwgeVtOXTsJCQkJCQkJXAorICAgIFBSRURfVFlQRSBwcmVkW05dOwkJCQkJCQlc CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpCQkJCQkJXAorICAgICAgewkJCQkJ CQkJCVwKKwl5W2ldID0gaSAqIGk7CQkJCQkJCVwKKwlwcmVkW2ldID0gaSAlIDM7CQkJCQkJ XAorICAgICAgfQkJCQkJCQkJCVwKKyAgICB0ZXN0XyMjVFlQRSMjXyMjTkFNRSAoeCwgeSwg cHJlZCwgTik7CQkJCVwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkJCQkJCQlc CisgICAgICB7CQkJCQkJCQkJXAorCVRZUEUgZXhwZWN0ZWQgPSBpICUgMyAhPSAxID8gRk4g KHlbaV0sIENPTlNUKSA6IDA7CQlcCisJaWYgKHhbaV0gIT0gZXhwZWN0ZWQpCQkJCQkJXAor CSAgX19idWlsdGluX2Fib3J0ICgpOwkJCQkJCVwKKwlhc20gdm9sYXRpbGUgKCIiIDo6OiAi bWVtb3J5Iik7CQkJCQlcCisgICAgICB9CQkJCQkJCQkJXAorICB9CisKK2ludAorbWFpbiAo dm9pZCkKK3sKKyAgVEVTVF9BTEwgKFRFU1RfTE9PUCkKKyAgcmV0dXJuIDA7Cit9CmRpZmYg LS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV81LmMgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV81LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE0ZDdhYjk5MWRlCi0tLSAvZGV2L251bGwK KysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNS5jCkBAIC0w LDAgKzEsOSBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1mdHJlZS12ZWN0b3JpemUgLWRwIiB9ICovCisKKyNpbmNsdWRlICJjb25kX2ZtYXhu bV8xLmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7c21heHY2 NHNmM19leGVjfSAzIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtzbWF4djY0ZGYzX2V4ZWN9IDMgfSB9ICovCisKKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3Qge1x0dl93cml0ZWxhbmVfYjMyXHR2WzAtOV0rLCB2Y2NfLi59IH0g fSAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzVfcnVuLmMgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV81X3J1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi44YzBiYzJhZTg3NgotLS0gL2Rldi9udWxsCisrKyBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzVfcnVuLmMKQEAgLTAsMCAr MSw0IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRy ZWUtdmVjdG9yaXplIiB9ICovCisKKyNpbmNsdWRlICJjb25kX2ZtYXhubV8xX3J1bi5jIgpk aWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNi5j IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNi5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42YzY0YTAxYmNiYgotLS0gL2Rldi9u dWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzYuYwpA QCAtMCwwICsxLDkgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1kcCIgfSAqLworCisjaW5jbHVkZSAiY29uZF9m bWF4bm1fMi5jIgorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Nt YXh2NjRzZjNfZXhlY30gMyB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7c21heHY2NGRmM19leGVjfSAzIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItbm90IHtcdHZfd3JpdGVsYW5lX2IzMlx0dlswLTldKywgdmNjXy4u fSB9IH0gKi8KZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRf Zm1heG5tXzZfcnVuLmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhu bV82X3J1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YzVk YjQ2YjM5MAotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L2NvbmRfZm1heG5tXzZfcnVuLmMKQEAgLTAsMCArMSw0IEBACisvKiB7IGRnLWRvIHJ1biB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIiB9ICovCisKKyNp bmNsdWRlICJjb25kX2ZtYXhubV8yX3J1bi5jIgpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vY29uZF9mbWF4bm1fNy5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vY29uZF9mbWF4bm1fNy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5iZGIzZjJmOTllZgotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzcuYwpAQCAtMCwwICsxLDkgQEAKKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXpl IC1kcCIgfSAqLworCisjaW5jbHVkZSAiY29uZF9mbWF4bm1fMy5jIgorCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtYXh2NjRzZjNfZXhlY30gMyB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7c21heHY2NGRmM19leGVj fSAzIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHZf d3JpdGVsYW5lX2IzMlx0dlswLTldKywgdmNjXy4ufSB9IH0gKi8KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX2ZtYXhubV83X3J1bi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9m bWF4bm1fN19ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MGFiZTYyNmZkZmIKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9jb25kX2ZtYXhubV83X3J1bi5jCkBAIC0wLDAgKzEsNCBAQAorLyogeyBkZy1kbyBy dW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSIgfSAqLwor CisjaW5jbHVkZSAiY29uZF9mbWF4bm1fM19ydW4uYyIKZGlmZiAtLWdpdCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzguYyBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL2NvbmRfZm1heG5tXzguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYzExNjMzYjUyMzYKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtYXhubV84LmMKQEAgLTAsMCArMSw5IEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rv cml6ZSAtZHAiIH0gKi8KKworI2luY2x1ZGUgImNvbmRfZm1heG5tXzQuYyIKKworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWF4djY0c2YzX2V4ZWN9IDMgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtYXh2NjRkZjNf ZXhlY30gMyB9IH0gKi8KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7 XHR2X3dyaXRlbGFuZV9iMzJcdHZbMC05XSssIHZjY18uLn0gfSB9ICovClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vY29uZF9mbWF4bm1fOF9ydW4uYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2Nv bmRfZm1heG5tXzhfcnVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjQzYjg5MmY5MjJlCi0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vY29uZF9mbWF4bm1fOF9ydW4uYwpAQCAtMCwwICsxLDQgQEAKKy8qIHsgZGct ZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUiIH0g Ki8KKworI2luY2x1ZGUgImNvbmRfZm1heG5tXzRfcnVuLmMiCmRpZmYgLS1naXQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8xLmMgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmJiNDU2ODg3NTY4Ci0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fMS5jCkBAIC0wLDAgKzEsMTAgQEAK Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUt dmVjdG9yaXplIC1mZmFzdC1tYXRoIC1kcCIgfSAqLworCisjZGVmaW5lIEZOKFgpIF9fYnVp bHRpbl9mbWluIyNYCisjaW5jbHVkZSAiY29uZF9mbWF4bm1fMS5jIgorCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtaW52NjRzZjNfZXhlY30gMyB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7c21pbnY2NGRmM19leGVj fSAzIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHZf d3JpdGVsYW5lX2IzMlx0dlswLTldKywgdmNjXy4ufSB9IH0gKi8KZGlmZiAtLWdpdCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzFfcnVuLmMgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8xX3J1bi5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZGQ5ZDQ5OWIzNQotLS0gL2Rldi9udWxsCisr KyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzFfcnVuLmMKQEAg LTAsMCArMSw1IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1P MiAtZnRyZWUtdmVjdG9yaXplIC1mZmFzdC1tYXRoIiB9ICovCisKKyNkZWZpbmUgRk4oWCkg X19idWlsdGluX2ZtaW4jI1gKKyNpbmNsdWRlICJjb25kX2ZtYXhubV8xX3J1bi5jIgpkaWZm IC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fMi5jIGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fMi5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MDJmODk4NzQ5NAotLS0gL2Rldi9udWxs CisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzIuYwpAQCAt MCwwICsxLDEwIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25z ICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAtZmZhc3QtbWF0aCAtZHAiIH0gKi8KKworI2RlZmlu ZSBGTihYKSBfX2J1aWx0aW5fZm1pbiMjWAorI2luY2x1ZGUgImNvbmRfZm1heG5tXzIuYyIK KworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWludjY0c2YzX2V4 ZWN9IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Nt aW52NjRkZjNfZXhlY30gMyB9IH0gKi8KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7XHR2X3dyaXRlbGFuZV9iMzJcdHZbMC05XSssIHZjY18uLn0gfSB9ICovClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9nY24vY29uZF9mbWlubm1fMl9ydW4uYyBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL2NvbmRfZm1pbm5tXzJfcnVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjcyNzg0MjkwMTEzCi0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fMl9ydW4uYwpAQCAtMCwwICsxLDUgQEAK Ky8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0 b3JpemUgLWZmYXN0LW1hdGgiIH0gKi8KKworI2RlZmluZSBGTihYKSBfX2J1aWx0aW5fZm1p biMjWAorI2luY2x1ZGUgImNvbmRfZm1heG5tXzJfcnVuLmMiCmRpZmYgLS1naXQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8zLmMgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV8zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjJlYTFlYjJlYzJjCi0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fMy5jCkBAIC0wLDAgKzEsMTIgQEAK Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUt dmVjdG9yaXplIC1mZmFzdC1tYXRoIC1kcCIgfSAqLworCisjZGVmaW5lIEZOKFgpIF9fYnVp bHRpbl9mbWluIyNYCisjaW5jbHVkZSAiY29uZF9mbWF4bm1fMy5jIgorCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtaW52NjRzZjN9IDMgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge21vdnY2NHNmX2V4ZWN9IDMgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtaW52NjRzZjN9 IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge21vdnY2 NGRmX2V4ZWN9IDMgfSB9ICovCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1u b3Qge1x0dl93cml0ZWxhbmVfYjMyXHR2WzAtOV0rLCB2Y2NfLi59IH0gfSAqLwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL2NvbmRfZm1pbm5tXzNfcnVuLmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2dj bi9jb25kX2ZtaW5ubV8zX3J1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi44Yzk5NGNhZTIwMgotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzNfcnVuLmMKQEAgLTAsMCArMSw1IEBACisvKiB7 IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXpl IC1mZmFzdC1tYXRoIiB9ICovCisKKyNkZWZpbmUgRk4oWCkgX19idWlsdGluX2ZtaW4jI1gK KyNpbmNsdWRlICJjb25kX2ZtYXhubV8zX3J1bi5jIgpkaWZmIC0tZ2l0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fNC5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9nY24vY29uZF9mbWlubm1fNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi4zNjczZWNhZmMyZAotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzQuYwpAQCAtMCwwICsxLDEyIEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rv cml6ZSAtZmZhc3QtbWF0aCAtZHAiIH0gKi8KKworI2RlZmluZSBGTihYKSBfX2J1aWx0aW5f Zm1pbiMjWAorI2luY2x1ZGUgImNvbmRfZm1heG5tXzQuYyIKKworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWludjY0c2YzfSAzIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHttb3Z2NjRzZl9leGVjfSAzIH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWludjY0c2YzfSAzIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHttb3Z2NjRkZl9l eGVjfSAzIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtc dHZfd3JpdGVsYW5lX2IzMlx0dlswLTldKywgdmNjXy4ufSB9IH0gKi8KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2dj bi9jb25kX2ZtaW5ubV80X3J1bi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29u ZF9mbWlubm1fNF9ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNzI4ZjQxMzYwMTUKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2djbi9jb25kX2ZtaW5ubV80X3J1bi5jCkBAIC0wLDAgKzEsNSBAQAorLyogeyBkZy1k byBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAtZmZh c3QtbWF0aCIgfSAqLworCisjZGVmaW5lIEZOKFgpIF9fYnVpbHRpbl9mbWluIyNYCisjaW5j bHVkZSAiY29uZF9mbWF4bm1fNF9ydW4uYyIKZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzUuYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL2NvbmRfZm1pbm5tXzUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYWM5ODk0MWEzNzMKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9jb25kX2ZtaW5ubV81LmMKQEAgLTAsMCArMSwxMCBAQAorLyogeyBkZy1k byBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUg LWRwIiB9ICovCisKKyNkZWZpbmUgRk4oWCkgX19idWlsdGluX2ZtaW4jI1gKKyNpbmNsdWRl ICJjb25kX2ZtYXhubV8xLmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7c21pbnY2NHNmM19leGVjfSAzIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtzbWludjY0ZGYzX2V4ZWN9IDMgfSB9ICovCisKKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge1x0dl93cml0ZWxhbmVfYjMyXHR2WzAtOV0r LCB2Y2NfLi59IH0gfSAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzVfcnVuLmMgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV81X3J1bi5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MjM2YWI1YjIxMQotLS0gL2Rldi9u dWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzVfcnVu LmMKQEAgLTAsMCArMSw0IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIiB9ICovCisKKyNpbmNsdWRlICJjb25kX2ZtaW5u bV8xX3J1bi5jIgpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29u ZF9mbWlubm1fNi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1f Ni5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ZjRkYmEwZDMx NAotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRf Zm1pbm5tXzYuYwpAQCAtMCwwICsxLDEwIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwor LyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAtZHAiIH0gKi8KKworI2Rl ZmluZSBGTihYKSBfX2J1aWx0aW5fZm1pbiMjWAorI2luY2x1ZGUgImNvbmRfZm1heG5tXzIu YyIKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWludjY0c2Yz X2V4ZWN9IDMgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3NtaW52NjRkZjNfZXhlY30gMyB9IH0gKi8KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLW5vdCB7XHR2X3dyaXRlbGFuZV9iMzJcdHZbMC05XSssIHZjY18uLn0gfSB9ICov ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fNl9ydW4uYyBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzZfcnVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmE1ZjkwZDllNzZhCi0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fNl9ydW4uYwpAQCAtMCwwICsxLDQg QEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12 ZWN0b3JpemUiIH0gKi8KKworI2luY2x1ZGUgImNvbmRfZm1pbm5tXzJfcnVuLmMiCmRpZmYg LS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV83LmMgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV83LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVmYWYwYzVjYzU5Ci0tLSAvZGV2L251bGwK KysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9mbWlubm1fNy5jCkBAIC0w LDAgKzEsMTAgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiAtZnRyZWUtdmVjdG9yaXplIC1kcCIgfSAqLworCisjZGVmaW5lIEZOKFgpIF9fYnVp bHRpbl9mbWluIyNYCisjaW5jbHVkZSAiY29uZF9mbWF4bm1fMy5jIgorCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtaW52NjRzZjNfZXhlY30gMyB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7c21pbnY2NGRmM19leGVj fSAzIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHZf d3JpdGVsYW5lX2IzMlx0dlswLTldKywgdmNjXy4ufSB9IH0gKi8KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX2ZtaW5ubV83X3J1bi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9m bWlubm1fN19ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZDdhZDczOGRiNWMKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9jb25kX2ZtaW5ubV83X3J1bi5jCkBAIC0wLDAgKzEsNCBAQAorLyogeyBkZy1kbyBy dW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSIgfSAqLwor CisjaW5jbHVkZSAiY29uZF9mbWlubm1fM19ydW4uYyIKZGlmZiAtLWdpdCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzguYyBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uODlkOTNhYzU5NmEKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV84LmMKQEAgLTAsMCArMSwxMCBAQAorLyog eyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0 b3JpemUgLWRwIiB9ICovCisKKyNkZWZpbmUgRk4oWCkgX19idWlsdGluX2ZtaW4jI1gKKyNp bmNsdWRlICJjb25kX2ZtYXhubV80LmMiCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7c21pbnY2NHNmM19leGVjfSAzIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWludjY0ZGYzX2V4ZWN9IDMgfSB9ICovCisKKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge1x0dl93cml0ZWxhbmVfYjMyXHR2 WzAtOV0rLCB2Y2NfLi59IH0gfSAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5tXzhfcnVu LmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX2ZtaW5ubV84X3J1bi5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZDkyMzUzYWM1NQotLS0g L2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfZm1pbm5t XzhfcnVuLmMKQEAgLTAsMCArMSw0IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRn LW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIiB9ICovCisKKyNpbmNsdWRlICJjb25k X2ZtaW5ubV80X3J1bi5jIgpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vY29uZF9zbWF4XzEuYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc21h eF8xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE4MWFiZDIw OWI1Ci0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29u ZF9zbWF4XzEuYwpAQCAtMCwwICsxLDU5IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwor LyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAtZHAiIH0gKi8KKworI2lu Y2x1ZGUgPHN0ZGludC5oPgorCisjZGVmaW5lIERPX1JFR1JFR19PUFMoVFlQRSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2b2lk IF9fYXR0cmlidXRlX18gKChub2Nsb25lKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgdmFyaXRoXyMjVFlQRSMjX3JlZyAoVFlQRSAqX19y ZXN0cmljdCB4LCBUWVBFICpfX3Jlc3RyaWN0IHksICAgICAgICAgICAgIFwKKwkJICAgICAg IFRZUEUgKl9fcmVzdHJpY3QgcHJlZCwgaW50IGNvdW50KSAgICAgICAgICAgICAgICAgICAg ICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGludCBpID0gMDsg aSA8IGNvdW50OyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICB4W2ldID0gKHByZWRbaV0gIT0gLTEpID8gKHhbaV0gPiB5W2ldID8g eFtpXSA6IHlbaV0pIDogLTQ7ICBcCisgIH0KKworI2RlZmluZSBET19JTU1FRElBVEVfT1BT KFZBTFVFLCBUWVBFLCBOQU1FKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9jbG9uZSkpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZhcml0aGltbV8jI05BTUUjI18j I1RZUEUgKFRZUEUgKl9fcmVzdHJpY3QgeCwgVFlQRSAqX19yZXN0cmljdCBwcmVkLCAgICAg IFwKKwkJCSAgICAgaW50IGNvdW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkg PSAwOyBpIDwgY291bnQ7ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgIHhbaV0gPSAocHJlZFtpXSAhPSAtMSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJID8gKHhbaV0gPiAo VFlQRSkgVkFMVUUgPyB4W2ldIDogKFRZUEUpIFZBTFVFKSAgICAgICAgICAgICBcCisJCSA6 IC00OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICB9CisKKyNkZWZpbmUgRE9fQVJJVEhfT1BTKFJFRywgSU1NLCBUWVBFKQkJCVwK KyAgUkVHIChUWVBFKTsJCQkJXAorICBJTU0gKDAsIFRZUEUsIDApOwkJXAorICBJTU0gKDg2 LCBUWVBFLCA4Nik7CQlcCisgIElNTSAoMTA5LCBUWVBFLCAxMDkpOwkJXAorICBJTU0gKDE0 MSwgVFlQRSwgMTQxKTsJCVwKKyAgSU1NICg5MjEzNzQ0NTM3NiwgVFlQRSwgOTIxMzc0NDUz NzYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICBJTU0gKC0xLCBUWVBFLCBtaW51czEpOwkJXAorICBJTU0gKC0xMTAsIFRZ UEUsIG1pbnVzMTEwKTsJXAorICBJTU0gKC0xNDEsIFRZUEUsIG1pbnVzMTQxKTsgXAorICBJ TU0gKC05MjEzNzQ0NTM3NiwgVFlQRSwgbWludXM5MjEzNzQ0NTM3Nik7ICAgICAgCisKKwor I2RlZmluZSBURVNUX0FMTChSRUcsIElNTSkgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1N LCBpbnQ4X3QpIFwKKyAgRE9fQVJJVEhfT1BTIChSRUcsIElNTSwgaW50MTZfdCkgXAorICBE T19BUklUSF9PUFMgKFJFRywgSU1NLCBpbnQzMl90KSBcCisgIERPX0FSSVRIX09QUyAoUkVH LCBJTU0sIGludDY0X3QpCisKK1RFU1RfQUxMKERPX1JFR1JFR19PUFMsIERPX0lNTUVESUFU RV9PUFMpCisKKy8qIE9uZSBwZXIgdGVzdCBjYXNlIDwgNjQgYml0cyAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtzbWF4djY0c2kzX2V4ZWN9IDMwIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7c21heHY2NHNpMy8wfSB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge1x0dl93cml0ZWxh bmVfYjMyXHR2WzAtOV0rLCB2Y2NfPz8sIDB9IH0gfSAqLworCisvKiBUd28gcGVyIHRlc3Qg Y2FzZTogKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR2X2Nt cF9ndF9pMzJcdHZjYywgc1swLTldKywgdlswLTldK30gODAgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHZfY21weF9ndF9pMzJcdHZjYywgc1swLTld KywgdlswLTldK30gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtcdHNfY21wa19sZ191MzJcdHZjY19sbywgMH0gfSB9ICovCisKKy8qIE9uZSBwZXIgNjQt Yml0IHRlc3QgY2FzZTogKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7XHR2X2NtcF9uZV91NjRcdHNcW1swLTldKzpbMC05XStcXSwgdlxbWzAtOV0rOlswLTld K1xdLCAtMX0gMTAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge1x0dl9jbXBfZ3RfaTY0XHR2Y2MsIHZbWzAtOV0rOlswLTldK10sIHZbWzAtOV0rOlsw LTldK119IDEwIH0gfSAqLwpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vY29uZF9zbWF4XzFfcnVuLmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25k X3NtYXhfMV9ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u Yzk1MWU2MTQ1NzkKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9jb25kX3NtYXhfMV9ydW4uYwpAQCAtMCwwICsxLDUzIEBACisvKiB7IGRnLWRvIHJ1 biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIiB9ICovCisK KyNpbmNsdWRlICJjb25kX3NtYXhfMS5jIgorCisjZGVmaW5lIE4gOTkKKworI2RlZmluZSBU RVNUX1JFR1JFR19PUFMoVFlQRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVFlQ RSB4W05dLCB5W05dOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIFRZUEUgcHJlZFtOXTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBm b3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXhb aV0gPSBpICUgMTM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorCXlbaV0gPSBpICogaTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXByZWRbaV0gPSBpICUg MzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2YXJpdGhfIyNUWVBFIyNf cmVnICh4LCB5LCBwcmVkLCBOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKwlUWVBFIGV4cGVjdGVkID0gaSAlIDMgIT0gLTEgPyAoeFtpXSA+IHlbaV0g PyB4W2ldIDogeVtpXSkgOiAtNDsgICAgICAgIFwKKwlpZiAoeFtpXSAhPSBleHBlY3RlZCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkg IF9fYnVpbHRpbl9hYm9ydCAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKwlhc20gdm9sYXRpbGUgKCIiIDo6OiAibWVtb3J5Iik7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgIH0KKworI2RlZmluZSBURVNUX0lNTUVESUFURV9PUFMoVkFMVUUs IFRZUEUsIE5BTUUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgVFlQRSB4W05dLCB5W05dOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg IFRZUEUgcHJlZFtOXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsr aSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorCXhbaV0gPSBpICogaTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXByZWRb aV0gPSBpICUgMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2YXJpdGhp bW1fIyNOQU1FIyNfIyNUWVBFICh4LCBwcmVkLCBOKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKwlUWVBFIGV4cGVjdGVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkgID0gaSAlIDMgIT0g LTEgPyAoeFtpXSA+IChUWVBFKSBWQUxVRSA/IHhbaV0gOiAoVFlQRSkgVkFMVUUpIDogLTQ7 ICAgIFwKKwlpZiAoeFtpXSAhPSBleHBlY3RlZCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkgIF9fYnVpbHRpbl9hYm9ydCAoKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlhc20g dm9sYXRpbGUgKCIiIDo6OiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworaW50 CittYWluICh2b2lkKQoreworICBURVNUX0FMTCAoVEVTVF9SRUdSRUdfT1BTLCBURVNUX0lN TUVESUFURV9PUFMpCisgIHJldHVybiAwOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc21pbl8x LmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NtaW5fMS5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZDc1YjJjNDdiOAotLS0gL2Rldi9u dWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc21pbl8xLmMKQEAg LTAsMCArMSw1NyBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9u cyAiLU8yIC1mdHJlZS12ZWN0b3JpemUgLWRwIiB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQu aD4KKworI2RlZmluZSBET19SRUdSRUdfT1BTKFRZUEUpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9f ICgobm9jbG9uZSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgIHZhcml0aF8jI1RZUEUjI19yZWcgKFRZUEUgKl9fcmVzdHJpY3QgeCwgVFlQ RSAqX19yZXN0cmljdCB5LCAgICAgICAgICAgICAgICAgXAorCQkgICAgICAgVFlQRSAqX19y ZXN0cmljdCBwcmVkLCBpbnQgY291bnQpICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7 ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgIHhbaV0gPSAocHJlZFtpXSAhPSAtMSkgPyAoeFtpXSA8IHlbaV0gPyB4W2ldIDogeVtp XSkgOiAtNDsgICAgICAgICAgICAgICBcCisgIH0KKworI2RlZmluZSBET19JTU1FRElBVEVf T1BTKFZBTFVFLCBUWVBFLCBOQU1FKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9jbG9uZSkpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZhcml0aGltbV8jI05BTUUj I18jI1RZUEUgKFRZUEUgKl9fcmVzdHJpY3QgeCwgVFlQRSAqX19yZXN0cmljdCBwcmVkLCAg ICAgICAgXAorCQkJICAgICBpbnQgY291bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgeFtpXSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwk9IChwcmVk W2ldICE9IC0xKSA/ICh4W2ldIDwgKFRZUEUpIFZBTFVFID8geFtpXSA6IChUWVBFKSBWQUxV RSkgOiAtNDsgIFwKKyAgfQorCisjZGVmaW5lIERPX0FSSVRIX09QUyhSRUcsIElNTSwgVFlQ RSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBSRUcg KFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgSU1NICgwLCBUWVBFLCAwKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElN TSAoODYsIFRZUEUsIDg2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDEwOSwgVFlQRSwgMTA5KTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg SU1NICgxNDEsIFRZUEUsIDE0MSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoOTIxMzc0NDUzNzYsIFRZUEUsIDky MTM3NDQ1Mzc2KTsgIFwKKyAgSU1NICgtMSwgVFlQRSwgbWludXMxKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoLTEx MCwgVFlQRSwgbWludXMxMTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICBJTU0gKC0xNDEsIFRZUEUsIG1pbnVzMTQxKTsgXAorICBJ TU0gKC05MjEzNzQ0NTM3NiwgVFlQRSwgbWludXM5MjEzNzQ0NTM3Nik7IAorCisjZGVmaW5l IFRFU1RfQUxMKFJFRywgSU1NKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1NLCBpbnQ4X3Qp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgRE9f QVJJVEhfT1BTIChSRUcsIElNTSwgaW50MTZfdCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgIERPX0FSSVRIX09QUyAoUkVHLCBJTU0sIGludDMy X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBE T19BUklUSF9PUFMgKFJFRywgSU1NLCBpbnQ2NF90KQorCitURVNUX0FMTCAoRE9fUkVHUkVH X09QUywgRE9fSU1NRURJQVRFX09QUykKKworLyogT25lIHBlciB0ZXN0IGNhc2UgPCA2NCBi aXRzICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3NtaW52NjRz aTNfZXhlY30gMzAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtzbWludjY0c2kzLzB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7XHR2X3dyaXRlbGFuZV9iMzJcdHZbMC05XSssIHZjY18/PywgMH0gfSB9ICovCisK Ky8qIFR3byBwZXIgdGVzdCBjYXNlOiAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtcdHZfY21wX2d0X2kzMlx0dmNjLCBzWzAtOV0rLCB2WzAtOV0rfSA4MCB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge1x0dl9jbXB4X2d0 X2kzMlx0dmNjLCBzWzAtOV0rLCB2WzAtOV0rfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge1x0c19jbXBrX2xnX3UzMlx0dmNjX2xvLCAwfSB9IH0gKi8K KworLyogT25lIHBlciA2NC1iaXQgdGVzdCBjYXNlOiAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZfY21wX25lX3U2NFx0c1xbWzAtOV0rOlswLTldK1xd LCB2XFtbMC05XSs6WzAtOV0rXF0sIC0xfSAxMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7XHR2X2NtcF9sdF9pNjRcdHZjYywgdltbMC05XSs6WzAt OV0rXSwgdltbMC05XSs6WzAtOV0rXX0gMTAgfSB9ICovCmRpZmYgLS1naXQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NtaW5fMV9ydW4uYyBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL2NvbmRfc21pbl8xX3J1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi40ZDY1NGU3NTIyNgotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc21pbl8xX3J1bi5jCkBAIC0wLDAgKzEsNTMg QEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12 ZWN0b3JpemUiIH0gKi8KKworI2luY2x1ZGUgImNvbmRfc21pbl8xLmMiCisKKyNkZWZpbmUg TiA5OQorCisjZGVmaW5lIFRFU1RfUkVHUkVHX09QUyhUWVBFKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICBUWVBFIHhbTl0sIHlbTl07ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVFlQRSBwcmVkW05d OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisJeFtpXSA9IGkgJSAxMzsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJeVtpXSA9IGkgKiBpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisJcHJlZFtpXSA9IGkgJSAzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg IHZhcml0aF8jI1RZUEUjI19yZWcgKHgsIHksIHByZWQsIE4pOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsr aSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorCVRZUEUgZXhwZWN0ZWQgPSBpICUgMyAhPSAt MSA/ICh4W2ldIDwgeVtpXSA/IHhbaV0gOiB5W2ldKSA6IC00OyAgICAgICAgXAorCWlmICh4 W2ldICE9IGV4cGVjdGVkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisJICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6 OjogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKyNkZWZpbmUgVEVTVF9JTU1F RElBVEVfT1BTKFZBTFVFLCBUWVBFLCBOQU1FKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFRZUEUgeFtOXSwg eVtOXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBUWVBFIHByZWRbTl07ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBOOyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwl4W2ldID0gaSAq IGk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKwlwcmVkW2ldID0gaSAlIDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgdmFyaXRoaW1tXyMjTkFNRSMjXyMjVFlQRSAoeCwgcHJlZCwgTik7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBp IDwgTjsgKytpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJVFlQRSBleHBlY3RlZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisJICA9IGkgJSAzICE9IC0xID8gKHhbaV0gPCAoVFlQRSkgVkFMVUUgPyB4W2ldIDogKFRZ UEUpIFZBTFVFKSA6IC00OyAgICBcCisJaWYgKHhbaV0gIT0gZXhwZWN0ZWQpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJICBfX2J1aWx0 aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6OjogIm1lbW9yeSIpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICB9CisKK2ludAorbWFpbiAodm9pZCkKK3sKKyAgVEVTVF9BTEwgKFRFU1RfUkVH UkVHX09QUywgVEVTVF9JTU1FRElBVEVfT1BTKQorICByZXR1cm4gMDsKK30KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9jb25kX3VtYXhfMS5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF91 bWF4XzEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzg5MjI4 ZjllNGEKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX3VtYXhfMS5jCkBAIC0wLDAgKzEsNTQgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICov CisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1kcCIgfSAqLworCisj aW5jbHVkZSA8c3RkaW50Lmg+CisKKyNkZWZpbmUgRE9fUkVHUkVHX09QUyhUWVBFKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZv aWQgX19hdHRyaWJ1dGVfXyAoKG5vY2xvbmUpKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICB2YXJpdGhfIyNUWVBFIyNfcmVnIChUWVBFICpf X3Jlc3RyaWN0IHgsIFRZUEUgKl9fcmVzdHJpY3QgeSwgICAgICAgICAgICAgICAgIFwKKwkJ ICAgICAgIFRZUEUgKl9fcmVzdHJpY3QgcHJlZCwgaW50IGNvdW50KSAgICAgICAgICAgICAg ICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IGNvdW50OyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICB4W2ldID0gKHByZWRbaV0gIT0gMSkgPyAoeFtpXSA+IHlb aV0gPyB4W2ldIDogeVtpXSkgOiA0OyAgICAgICAgICAgICAgICAgXAorICB9CisKKyNkZWZp bmUgRE9fSU1NRURJQVRFX09QUyhWQUxVRSwgVFlQRSkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vY2xvbmUp KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2 YXJpdGhpbW1fIyNWQUxVRSMjXyMjVFlQRSAoVFlQRSAqX19yZXN0cmljdCB4LCBUWVBFICpf X3Jlc3RyaWN0IHByZWQsICAgICAgIFwKKwkJCSAgICAgIGludCBjb3VudCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHhbaV0gPSAocHJlZFtp XSAhPSAxKSA/ICh4W2ldID4gKFRZUEUpIFZBTFVFID8geFtpXSA6IChUWVBFKSBWQUxVRSkg OiA0OyBcCisgIH0KKworI2RlZmluZSBET19BUklUSF9PUFMoUkVHLCBJTU0sIFRZUEUpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgUkVHIChUWVBF KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgIElNTSAoMiwgVFlQRSk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDg2 LCBUWVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgSU1NICgxMDksIFRZUEUpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAo MTQxLCBUWVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDIyOSwgVFlQRSk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgSU1N ICgyNTUsIFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoOTkyMTM3NDQ1Mzc2LCBUWVBFKTsKKwor I2RlZmluZSBURVNUX0FMTChSRUcsIElNTSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgRE9fQVJJVEhfT1BTIChSRUcsIElNTSwg dWludDhfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgIERPX0FSSVRIX09QUyAoUkVHLCBJTU0sIHVpbnQxNl90KSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1N LCB1aW50MzJfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgRE9fQVJJVEhfT1BTIChSRUcsIElNTSwgdWludDY0X3QpCisKK1RFU1RfQUxMIChE T19SRUdSRUdfT1BTLCBET19JTU1FRElBVEVfT1BTKQorCisvKiBUd28gcGVyIHRlc3QgY2Fz ZSA8IDY0IGJpdHMgd2l0aCB3aWRlLWVub3VnaCB0eXBlOiovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3VtYXh2NjRzaTNfZXhlY30gMjAgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHt1bWF4djY0c2kzLzB9IH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7XHR2X3dyaXRlbGFuZV9iMzJc dHZbMC05XSssIHZjY18/PywgMH0gfSB9ICovCisKKy8qIFR3byBwZXIgdGVzdCBjYXNlIHdp dGggd2lkZS1lbm91Z2ggdHlwZToqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtcdHZfY21wX2d0X2kzMlx0dmNjLCBzWzAtOV0rLCB2WzAtOV0rfSA1NiB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge1x0c19jbXBrX2xnX3Uz Mlx0dmNjX2xvLCAwfSB9IH0gKi8KKworLyogT25lIHBlciA2NC1iaXQgdGVzdCBjYXNlOiAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZfY21wX25lX3U2 NFx0c1xbWzAtOV0rOlswLTldK1xdLCB2XFtbMC05XSs6WzAtOV0rXF0sIDF9IDggfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dl9jbXBfZ3RfdTY0 XHR2Y2MsIHZbWzAtOV0rOlswLTldK10sIHZbWzAtOV0rOlswLTldK119IDggfSB9ICovCisK ZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfdW1heF8xX3J1 bi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF91bWF4XzFfcnVuLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBhYmNmNDZkZDZmCi0tLSAv ZGV2L251bGwKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF91bWF4XzFf cnVuLmMKQEAgLTAsMCArMSw1MyBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1v cHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSIgfSAqLworCisjaW5jbHVkZSAiY29uZF91 bWF4XzEuYyIKKworI2RlZmluZSBOIDk5CisKKyNkZWZpbmUgVEVTVF9SRUdSRUdfT1BTKFRZ UEUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFRZUEUgeFtOXSwgeVtOXTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBUWVBFIHByZWRbTl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBOOyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwl4W2ldID0gaSAlIDEzOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK Kwl5W2ldID0gaSAqIGk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKwlwcmVkW2ldID0gaSAlIDM7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgdmFyaXRoXyMjVFlQRSMjX3JlZyAoeCwgeSwgcHJlZCwg Tik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAo aW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJVFlQRSBl eHBlY3RlZCA9IGkgJSAzICE9IDEgPyAoeFtpXSA+IHlbaV0gPyB4W2ldIDogeVtpXSkgOiA0 OyAgICAgICAgXAorCWlmICh4W2ldICE9IGV4cGVjdGVkKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSAgX19idWlsdGluX2Fib3J0ICgp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor CWFzbSB2b2xhdGlsZSAoIiIgOjo6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQor CisjZGVmaW5lIFRFU1RfSU1NRURJQVRFX09QUyhWQUxVRSwgVFlQRSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICBUWVBFIHhbTl0sIHlbTl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVFlQRSBwcmVkW05dOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisJeFtpXSA9IGkgKiBpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisJcHJlZFtpXSA9IGkgJSAzOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgIHZhcml0aGltbV8jI1ZBTFVFIyNfIyNUWVBFICh4LCBw cmVkLCBOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBOOyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlUWVBF IGV4cGVjdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKwkgID0gaSAlIDMgIT0gMSA/ICh4W2ldID4gKFRZUEUpIFZBTFVF ID8geFtpXSA6IChUWVBFKSBWQUxVRSkgOiA0OyAgICBcCisJaWYgKHhbaV0gIT0gZXhwZWN0 ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisJICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6OjogIm1lbW9yeSIp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICB9CisKK2ludAorbWFpbiAodm9pZCkKK3sKKyAgVEVTVF9B TEwgKFRFU1RfUkVHUkVHX09QUywgVEVTVF9JTU1FRElBVEVfT1BTKQorICByZXR1cm4gMDsK K30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2djbi9jb25kX3VtaW5fMS5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vY29uZF91bWluXzEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYTA0YjU2MzUwOTAKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9jb25kX3VtaW5fMS5jCkBAIC0wLDAgKzEsNTMgQEAKKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1k cCIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNkZWZpbmUgRE9fUkVHUkVHX09Q UyhUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vY2xvbmUpKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2YXJpdGhfIyNUWVBFIyNf cmVnIChUWVBFICpfX3Jlc3RyaWN0IHgsIFRZUEUgKl9fcmVzdHJpY3QgeSwgICAgICAgICAg ICAgICAgIFwKKwkJICAgICAgIFRZUEUgKl9fcmVzdHJpY3QgcHJlZCwgaW50IGNvdW50KSAg ICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB4W2ldID0gKHByZWRbaV0gIT0gMSkg PyAoeFtpXSA8IHlbaV0gPyB4W2ldIDogeVtpXSkgOiA0OyAgICAgICAgICAgICAgICAgXAor ICB9CisKKyNkZWZpbmUgRE9fSU1NRURJQVRFX09QUyhWQUxVRSwgVFlQRSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZvaWQgX19hdHRyaWJ1dGVf XyAoKG5vY2xvbmUpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICB2YXJpdGhpbW1fIyNWQUxVRSMjXyMjVFlQRSAoVFlQRSAqX19yZXN0cmlj dCB4LCBUWVBFICpfX3Jlc3RyaWN0IHByZWQsICAgICAgIFwKKwkJCSAgICAgIGludCBjb3Vu dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHhb aV0gPSAocHJlZFtpXSAhPSAxKSA/ICh4W2ldIDwgKFRZUEUpIFZBTFVFID8geFtpXSA6IChU WVBFKSBWQUxVRSkgOiA0OyBcCisgIH0KKworI2RlZmluZSBET19BUklUSF9PUFMoUkVHLCBJ TU0sIFRZUEUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgUkVHIChUWVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoMiwgVFlQRSk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICBJTU0gKDg2LCBUWVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgSU1NICgxMDksIFRZUEUpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgIElNTSAoMTQxLCBUWVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDIyOSwgVFlQRSk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgSU1NICgyNTUsIFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoOTkyMTM3NDQ1Mzc2 LCBUWVBFKTsKKworI2RlZmluZSBURVNUX0FMTChSRUcsIElNTSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgRE9fQVJJVEhfT1BT IChSRUcsIElNTSwgdWludDhfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1NLCB1aW50MTZfdCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIERPX0FSSVRI X09QUyAoUkVHLCBJTU0sIHVpbnQzMl90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgRE9fQVJJVEhfT1BTIChSRUcsIElNTSwgdWludDY0X3Qp CisKK1RFU1RfQUxMIChET19SRUdSRUdfT1BTLCBET19JTU1FRElBVEVfT1BTKQorCisvKiBU d28gcGVyIHRlc3QgY2FzZSA8IDY0IGJpdHMgd2l0aCB3aWRlLWVub3VnaCB0eXBlOiovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3VtaW52NjRzaTNfZXhlY30g MjAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHt1bWludjY0 c2kzLzB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7XHR2 X3dyaXRlbGFuZV9iMzJcdHZbMC05XSssIHZjY18/PywgMH0gfSB9ICovCisKKy8qIFR3byBw ZXIgdGVzdCBjYXNlIHdpdGggd2lkZS1lbm91Z2ggdHlwZToqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZfY21wX2d0X2kzMlx0dmNjLCBzWzAtOV0rLCB2 WzAtOV0rfSA1NiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e1x0c19jbXBrX2xnX3UzMlx0dmNjX2xvLCAwfSB9IH0gKi8KKworLyogT25lIHBlciA2NC1i aXQgdGVzdCBjYXNlOiAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtcdHZfY21wX25lX3U2NFx0c1xbWzAtOV0rOlswLTldK1xdLCB2XFtbMC05XSs6WzAtOV0r XF0sIDF9IDggfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e1x0dl9jbXBfbHRfdTY0XHR2Y2MsIHZbWzAtOV0rOlswLTldK10sIHZbWzAtOV0rOlswLTld K119IDggfSB9ICovCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX3VtaW5fMV9ydW4uYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfdW1p bl8xX3J1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZGE0 OWViYzY4MQotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L2NvbmRfdW1pbl8xX3J1bi5jCkBAIC0wLDAgKzEsNTMgQEAKKy8qIHsgZGctZG8gcnVuIH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUiIH0gKi8KKworI2lu Y2x1ZGUgImNvbmRfdW1pbl8xLmMiCisKKyNkZWZpbmUgTiA5OQorCisjZGVmaW5lIFRFU1Rf UkVHUkVHX09QUyhUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBUWVBFIHhb Tl0sIHlbTl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgVFlQRSBwcmVkW05dOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAo aW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJeFtpXSA9 IGkgJSAxMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisJeVtpXSA9IGkgKiBpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJcHJlZFtpXSA9IGkgJSAzOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHZhcml0aF8jI1RZUEUjI19yZWcg KHgsIHksIHByZWQsIE4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorCVRZUEUgZXhwZWN0ZWQgPSBpICUgMyAhPSAxID8gKHhbaV0gPCB5W2ldID8geFtp XSA6IHlbaV0pIDogNDsgICAgICAgIFwKKwlpZiAoeFtpXSAhPSBleHBlY3RlZCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkgIF9fYnVp bHRpbl9hYm9ydCAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKwlhc20gdm9sYXRpbGUgKCIiIDo6OiAibWVtb3J5Iik7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgIH0KKworI2RlZmluZSBURVNUX0lNTUVESUFURV9PUFMoVkFMVUUsIFRZUEUp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgVFlQRSB4W05dLCB5W05dOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFRZUEUgcHJlZFtO XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorCXhbaV0gPSBpICogaTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXByZWRbaV0gPSBpICUgMzsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2YXJpdGhpbW1fIyNWQUxVRSMj XyMjVFlQRSAoeCwgcHJlZCwgTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisJVFlQRSBleHBlY3RlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJICA9IGkgJSAzICE9IDEgPyAoeFtpXSA8 IChUWVBFKSBWQUxVRSA/IHhbaV0gOiAoVFlQRSkgVkFMVUUpIDogNDsgICAgXAorCWlmICh4 W2ldICE9IGV4cGVjdGVkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorCSAgX19idWlsdGluX2Fib3J0ICgpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCWFzbSB2b2xhdGlsZSAoIiIg Ojo6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQorCitpbnQKK21haW4gKHZvaWQp Cit7CisgIFRFU1RfQUxMIChURVNUX1JFR1JFR19PUFMsIFRFU1RfSU1NRURJQVRFX09QUykK KyAgcmV0dXJuIDA7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc21heF8xLmMgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9zbWF4XzEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMzJlZDNhNGViODQKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2djbi9zbWF4XzEuYwpAQCAtMCwwICsxLDUwIEBACisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAtZHAi IH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjZGVmaW5lIERPX1JFR1JFR19PUFMo VFlQRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICB2b2lkIF9fYXR0cmlidXRlX18gKChub2Nsb25lKSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdmFyaXRoXyMjVFlQRSMjX3Jl ZyAoVFlQRSAqX19yZXN0cmljdCB4LCBUWVBFICpfX3Jlc3RyaWN0IHksICAgICAgICAgICAg IFwKKwkJICAgICAgIGludCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsg KytpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgeFtpXSA9IHhbaV0gPiB5W2ldID8geFtpXSA6IHlbaV07ICBcCisgIH0KKworI2RlZmlu ZSBET19JTU1FRElBVEVfT1BTKFZBTFVFLCBUWVBFLCBOQU1FKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9jbG9uZSkp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZh cml0aGltbV8jI05BTUUjI18jI1RZUEUgKFRZUEUgKl9fcmVzdHJpY3QgeCwgICAgICBcCisJ CQkgICAgIGludCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGludCBpID0gMDsg aSA8IGNvdW50OyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICB4W2ldID0geFtpXSA+IChUWVBFKSBWQUxVRSA/IHhbaV0gOiAoVFlQ RSkgVkFMVUU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgIH0KKworI2RlZmluZSBET19BUklUSF9PUFMoUkVHLCBJTU0sIFRZUEUp CQkJXAorICBSRUcgKFRZUEUpOwkJCQlcCisgIElNTSAoMCwgVFlQRSwgMCk7CQlcCisgIElN TSAoODYsIFRZUEUsIDg2KTsJCVwKKyAgSU1NICgxMDksIFRZUEUsIDEwOSk7CQlcCisgIElN TSAoMTQxLCBUWVBFLCAxNDEpOwkJXAorICBJTU0gKDkyMTM3NDQ1Mzc2LCBUWVBFLCA5MjEz NzQ0NTM3Nik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgIElNTSAoLTEsIFRZUEUsIG1pbnVzMSk7CQlcCisgIElNTSAoLTEx MCwgVFlQRSwgbWludXMxMTApOwlcCisgIElNTSAoLTE0MSwgVFlQRSwgbWludXMxNDEpOyBc CisgIElNTSAoLTkyMTM3NDQ1Mzc2LCBUWVBFLCBtaW51czkyMTM3NDQ1Mzc2KTsgICAgICAK KworCisjZGVmaW5lIFRFU1RfQUxMKFJFRywgSU1NKSBcCisgIERPX0FSSVRIX09QUyAoUkVH LCBJTU0sIGludDhfdCkgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1NLCBpbnQxNl90KSBc CisgIERPX0FSSVRIX09QUyAoUkVHLCBJTU0sIGludDMyX3QpIFwKKyAgRE9fQVJJVEhfT1BT IChSRUcsIElNTSwgaW50NjRfdCkKKworVEVTVF9BTEwoRE9fUkVHUkVHX09QUywgRE9fSU1N RURJQVRFX09QUykKKworLyogT25lIHBlciA2NC1iaXQgdGVzdCBjYXNlOiAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZWNfY21wdjY0ZGlkaX0gMTAgfSB9 ICovCisKKy8qIFR3byBwZXIgdGVzdCBjYXNlOiAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtcdHZfY21wX2d0X2k2NFx0dmNjLCB2W1swLTldKzpbMC05XStd LCB2W1swLTldKzpbMC05XStdfSAxMCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7XHR2X2NtcHhfZ3RfaTMyXHR2Y2MsIHNbMC05XSssIHZbMC05XSt9 IDgwIH0gfSAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NtYXhfMV9ydW4uYyBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL3NtYXhfMV9ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uZjEyZmVmMWQ2OTcKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2djbi9zbWF4XzFfcnVuLmMKQEAgLTAsMCArMSw0OSBAQAorLyogeyBk Zy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSIg fSAqLworCisjaW5jbHVkZSAic21heF8xLmMiCisKKyNkZWZpbmUgTiA5OQorCisjZGVmaW5l IFRFU1RfUkVHUkVHX09QUyhUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBU WVBFIHhbTl0sIHlbTl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKwl4W2ldID0gaSAlIDEzOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwl5W2ldID0g aSAqIGk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdmFyaXRoXyMj VFlQRSMjX3JlZyAoeCwgeSwgTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisJVFlQRSBleHBlY3RlZCA9IHhbaV0gPiB5W2ldID8geFtpXSA6IHlbaV07 ICAgICAgICBcCisJaWYgKHhbaV0gIT0gZXhwZWN0ZWQpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJICBfX2J1aWx0aW5fYWJvcnQgKCk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJ YXNtIHZvbGF0aWxlICgiIiA6OjogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisK KyNkZWZpbmUgVEVTVF9JTU1FRElBVEVfT1BTKFZBTFVFLCBUWVBFLCBOQU1FKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgIFRZUEUgeFtOXSwgeVtOXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8 IE47ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXhbaV0gPSBpICogaTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2YXJpdGhpbW1fIyNOQU1FIyNfIyNU WVBFICh4LCBOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlU WVBFIGV4cGVjdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKwkgID0geFtpXSA+IChUWVBFKSBWQUxVRSA/IHhbaV0gOiAo VFlQRSkgVkFMVUU7ICAgIFwKKwlpZiAoeFtpXSAhPSBleHBlY3RlZCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkgIF9fYnVpbHRpbl9h Ym9ydCAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKwlhc20gdm9sYXRpbGUgKCIiIDo6OiAibWVtb3J5Iik7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgIH0KKworaW50CittYWluICh2b2lkKQoreworICBURVNUX0FMTCAoVEVTVF9SRUdSRUdf T1BTLCBURVNUX0lNTUVESUFURV9PUFMpCisgIHJldHVybiAwOworfQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2Nu L3NtaW5fMS5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc21pbl8xLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU3MGI3YjFmYjFlCi0tLSAvZGV2 L251bGwKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc21pbl8xLmMKQEAgLTAs MCArMSw1MCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1mdHJlZS12ZWN0b3JpemUgLWRwIiB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4K KworI2RlZmluZSBET19SRUdSRUdfT1BTKFRZUEUpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgo bm9jbG9uZSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgIHZhcml0aF8jI1RZUEUjI19yZWcgKFRZUEUgKl9fcmVzdHJpY3QgeCwgVFlQRSAq X19yZXN0cmljdCB5LCAgICAgICAgICAgICAgICAgXAorCQkgICAgICAgaW50IGNvdW50KSAg ICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB4W2ldID0geFtpXSA8IHlbaV0gPyB4 W2ldIDogeVtpXTsgICAgICAgICAgICAgICBcCisgIH0KKworI2RlZmluZSBET19JTU1FRElB VEVfT1BTKFZBTFVFLCBUWVBFLCBOQU1FKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9jbG9uZSkpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZhcml0aGltbV8jI05B TUUjI18jI1RZUEUgKFRZUEUgKl9fcmVzdHJpY3QgeCwgICAgICAgIFwKKwkJCSAgICAgaW50 IGNvdW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7 ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgIHhbaV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisJPSB4W2ldIDwgKFRZUEUpIFZBTFVFID8geFtp XSA6IChUWVBFKSBWQUxVRTsgIFwKKyAgfQorCisjZGVmaW5lIERPX0FSSVRIX09QUyhSRUcs IElNTSwgVFlQRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICBSRUcgKFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgSU1NICgwLCBUWVBFLCAwKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgIElNTSAoODYsIFRZUEUsIDg2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDEwOSwgVFlQRSwgMTA5 KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgSU1NICgxNDEsIFRZUEUsIDE0MSk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoOTIxMzc0NDUzNzYs IFRZUEUsIDkyMTM3NDQ1Mzc2KTsgIFwKKyAgSU1NICgtMSwgVFlQRSwgbWludXMxKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg IElNTSAoLTExMCwgVFlQRSwgbWludXMxMTApOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKC0xNDEsIFRZUEUsIG1pbnVzMTQx KTsgXAorICBJTU0gKC05MjEzNzQ0NTM3NiwgVFlQRSwgbWludXM5MjEzNzQ0NTM3Nik7IAor CisjZGVmaW5lIFRFU1RfQUxMKFJFRywgSU1NKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1N LCBpbnQ4X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgRE9fQVJJVEhfT1BTIChSRUcsIElNTSwgaW50MTZfdCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIERPX0FSSVRIX09QUyAoUkVHLCBJ TU0sIGludDMyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1NLCBpbnQ2NF90KQorCitURVNUX0FMTCAo RE9fUkVHUkVHX09QUywgRE9fSU1NRURJQVRFX09QUykKKworLyogT25lIHBlciA2NC1iaXQg dGVzdCBjYXNlOiAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 ZWNfY21wdjY0ZGlkaX0gMTAgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge1x0dl9jbXBfbHRfaTY0XHR2Y2MsIHZbWzAtOV0rOlswLTldK10sIHZbWzAt OV0rOlswLTldK119IDEwIH0gfSAqLworCisvKiBUd28gcGVyIHRlc3QgY2FzZToqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZfY21weF9ndF9pMzJcdHZj Yywgc1swLTldKywgdlswLTldK30gODAgfSB9ICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc21pbl8xX3J1 bi5jIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vc21pbl8xX3J1bi5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNTdkZTEyYzE3ZgotLS0gL2Rldi9u dWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3NtaW5fMV9ydW4uYwpAQCAt MCwwICsxLDQ5IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1P MiAtZnRyZWUtdmVjdG9yaXplIiB9ICovCisKKyNpbmNsdWRlICJzbWluXzEuYyIKKworI2Rl ZmluZSBOIDk5CisKKyNkZWZpbmUgVEVTVF9SRUdSRUdfT1BTKFRZUEUpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgIFRZUEUgeFtOXSwgeVtOXTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IE47ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXhbaV0gPSBp ICUgMTM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorCXlbaV0gPSBpICogaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICB2YXJpdGhfIyNUWVBFIyNfcmVnICh4LCB5LCBOKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBO OyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlUWVBFIGV4cGVjdGVkID0geFtpXSA8 IHlbaV0gPyB4W2ldIDogeVtpXTsgICAgICAgIFwKKwlpZiAoeFtpXSAhPSBleHBlY3RlZCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSAg X19idWlsdGluX2Fib3J0ICgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorCWFzbSB2b2xhdGlsZSAoIiIgOjo6ICJtZW1vcnkiKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgfQorCisjZGVmaW5lIFRFU1RfSU1NRURJQVRFX09QUyhWQUxVRSwg VFlQRSwgTkFNRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICBUWVBFIHhbTl0sIHlbTl07ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwl4 W2ldID0gaSAqIGk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdmFy aXRoaW1tXyMjTkFNRSMjXyMjVFlQRSAoeCwgTik7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisJVFlQRSBleHBlY3RlZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJICA9IHhbaV0gPCAoVFlQ RSkgVkFMVUUgPyB4W2ldIDogKFRZUEUpIFZBTFVFOyAgICBcCisJaWYgKHhbaV0gIT0gZXhw ZWN0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisJICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6OjogIm1lbW9y eSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICB9CisKK2ludAorbWFpbiAodm9pZCkKK3sKKyAgVEVT VF9BTEwgKFRFU1RfUkVHUkVHX09QUywgVEVTVF9JTU1FRElBVEVfT1BTKQorICByZXR1cm4g MDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi91bWF4XzEuYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL3VtYXhfMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4z YmVkODM1M2EyYgotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL3VtYXhfMS5jCkBAIC0wLDAgKzEsNDcgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICov CisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1kcCIgfSAqLworCisj aW5jbHVkZSA8c3RkaW50Lmg+CisKKyNkZWZpbmUgRE9fUkVHUkVHX09QUyhUWVBFKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZv aWQgX19hdHRyaWJ1dGVfXyAoKG5vY2xvbmUpKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICB2YXJpdGhfIyNUWVBFIyNfcmVnIChUWVBFICpf X3Jlc3RyaWN0IHgsIFRZUEUgKl9fcmVzdHJpY3QgeSwgICAgICAgICAgICAgICAgIFwKKwkJ ICAgICAgIGludCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgeFtp XSA9IHhbaV0gPiB5W2ldID8geFtpXSA6IHlbaV07ICAgICAgICAgICAgICAgICBcCisgIH0K KworI2RlZmluZSBET19JTU1FRElBVEVfT1BTKFZBTFVFLCBUWVBFKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9fICgo bm9jbG9uZSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgIHZhcml0aGltbV8jI1ZBTFVFIyNfIyNUWVBFIChUWVBFICpfX3Jlc3RyaWN0IHgs ICAgICAgIFwKKwkJCSAgICAgIGludCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAo aW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgIHhbaV0gPSB4W2ldID4gKFRZUEUpIFZBTFVFID8g eFtpXSA6IChUWVBFKSBWQUxVRTsgXAorICB9CisKKyNkZWZpbmUgRE9fQVJJVEhfT1BTKFJF RywgSU1NLCBUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgIFJFRyAoVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDIsIFRZUEUpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgSU1NICg4NiwgVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoMTA5LCBUWVBFKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICBJTU0gKDE0MSwgVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgSU1NICgyMjksIFRZUEUp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgIElNTSAoMjU1LCBUWVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDk5MjEzNzQ0 NTM3NiwgVFlQRSk7CisKKyNkZWZpbmUgVEVTVF9BTEwoUkVHLCBJTU0pICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIERPX0FSSVRI X09QUyAoUkVHLCBJTU0sIHVpbnQ4X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICBET19BUklUSF9PUFMgKFJFRywgSU1NLCB1aW50MTZfdCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgRE9fQVJJ VEhfT1BTIChSRUcsIElNTSwgdWludDMyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgIERPX0FSSVRIX09QUyAoUkVHLCBJTU0sIHVpbnQ2NF90 KQorCitURVNUX0FMTCAoRE9fUkVHUkVHX09QUywgRE9fSU1NRURJQVRFX09QUykKKworLyog T25lIHBlciA2NC1iaXQgdGVzdCBjYXNlOiAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZWNfY21wdjY0ZGlkaX0gOCB9IH0gKi8KKworLyogVHdvIHBlciB0 ZXN0IGNhc2Ugd2l0aCB3aWRlLWVub3VnaCB0eXBlOiovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge1x0dl9jbXBfZ3RfdTY0XHR2Y2MsIHZbWzAtOV0rOlswLTld K10sIHZbWzAtOV0rOlswLTldK119IDggfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge1x0dl9jbXB4X2d0X2kzMlx0dmNjLCBzWzAtOV0rLCB2WzAtOV0r fSA1NiB9IH0gKi8KZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3Vt YXhfMV9ydW4uYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3VtYXhfMV9ydW4uYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDA0N2I3YTA1NzYKLS0t IC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi91bWF4XzFfcnVu LmMKQEAgLTAsMCArMSw0OSBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRp b25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSIgfSAqLworCisjaW5jbHVkZSAidW1heF8xLmMi CisKKyNkZWZpbmUgTiA5OQorCisjZGVmaW5lIFRFU1RfUkVHUkVHX09QUyhUWVBFKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICBUWVBFIHhbTl0sIHlbTl07ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwl4 W2ldID0gaSAlIDEzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKwl5W2ldID0gaSAqIGk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgdmFyaXRoXyMjVFlQRSMjX3JlZyAoeCwgeSwgTik7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTjsgKytpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJVFlQRSBleHBlY3RlZCA9 IHhbaV0gPiB5W2ldID8geFtpXSA6IHlbaV07ICAgICAgICBcCisJaWYgKHhbaV0gIT0gZXhw ZWN0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisJICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6OjogIm1lbW9y eSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICB9CisKKyNkZWZpbmUgVEVTVF9JTU1FRElBVEVfT1BT KFZBTFVFLCBUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIFRZUEUgeFtOXSwgeVtOXTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor CXhbaV0gPSBpICogaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2 YXJpdGhpbW1fIyNWQUxVRSMjXyMjVFlQRSAoeCwgTik7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisJVFlQRSBleHBlY3RlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJICA9IHhbaV0gPiAo VFlQRSkgVkFMVUUgPyB4W2ldIDogKFRZUEUpIFZBTFVFOyAgICBcCisJaWYgKHhbaV0gIT0g ZXhwZWN0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisJICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6OjogIm1l bW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKK2ludAorbWFpbiAodm9pZCkKK3sKKyAg VEVTVF9BTEwgKFRFU1RfUkVHUkVHX09QUywgVEVTVF9JTU1FRElBVEVfT1BTKQorICByZXR1 cm4gMDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi91bWluXzEuYyBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3VtaW5fMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5jNGYxMWYyYWRmYgotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvZ2NuL3VtaW5fMS5jCkBAIC0wLDAgKzEsNDcgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1kcCIgfSAqLwor CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNkZWZpbmUgRE9fUkVHUkVHX09QUyhUWVBFKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg IHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vY2xvbmUpKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2YXJpdGhfIyNUWVBFIyNfcmVnIChUWVBF ICpfX3Jlc3RyaWN0IHgsIFRZUEUgKl9fcmVzdHJpY3QgeSwgICAgICAgICAgICAgICAgIFwK KwkJICAgICAgIGludCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytp KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg eFtpXSA9IHhbaV0gPCB5W2ldID8geFtpXSA6IHlbaV07ICAgICAgICAgICAgICAgICBcCisg IH0KKworI2RlZmluZSBET19JTU1FRElBVEVfT1BTKFZBTFVFLCBUWVBFKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBfX2F0dHJpYnV0ZV9f ICgobm9jbG9uZSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgIHZhcml0aGltbV8jI1ZBTFVFIyNfIyNUWVBFIChUWVBFICpfX3Jlc3RyaWN0 IHgsICAgICAgIFwKKwkJCSAgICAgIGludCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHhbaV0gPSB4W2ldIDwgKFRZUEUpIFZBTFVF ID8geFtpXSA6IChUWVBFKSBWQUxVRTsgXAorICB9CisKKyNkZWZpbmUgRE9fQVJJVEhfT1BT KFJFRywgSU1NLCBUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgIFJFRyAoVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDIsIFRZUEUpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgSU1NICg4NiwgVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElNTSAoMTA5LCBUWVBF KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICBJTU0gKDE0MSwgVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgSU1NICgyMjksIFRZ UEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgIElNTSAoMjU1LCBUWVBFKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBJTU0gKDk5MjEz NzQ0NTM3NiwgVFlQRSk7CisKKyNkZWZpbmUgVEVTVF9BTEwoUkVHLCBJTU0pICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIERPX0FS SVRIX09QUyAoUkVHLCBJTU0sIHVpbnQ4X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgRE9fQVJJVEhfT1BTIChSRUcsIElNTSwgdWludDE2 X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBE T19BUklUSF9PUFMgKFJFRywgSU1NLCB1aW50MzJfdCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgIERPX0FSSVRIX09QUyAoUkVHLCBJTU0sIHVp bnQ2NF90KQorCitURVNUX0FMTCAoRE9fUkVHUkVHX09QUywgRE9fSU1NRURJQVRFX09QUykK KworLyogT25lIHBlciA2NC1iaXQgdGVzdCBjYXNlOiAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZWNfY21wdjY0ZGlkaX0gOCB9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR2X2NtcF9sdF91NjRcdHZjYywgdltb MC05XSs6WzAtOV0rXSwgdltbMC05XSs6WzAtOV0rXX0gOCB9IH0gKi8KKworLyogVHdvIHBl ciB0ZXN0IGNhc2Ugd2l0aCB3aWRlLWVub3VnaCB0eXBlOiovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dl9jbXB4X2d0X2kzMlx0dmNjLCBzWzAtOV0rLCB2 WzAtOV0rfSA1NiB9IH0gKi8KZGlmZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv Z2NuL3VtaW5fMV9ydW4uYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL3VtaW5fMV9y dW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzdhNWRmOTVi NDYKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi91bWlu XzFfcnVuLmMKQEAgLTAsMCArMSw0OSBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBk Zy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSIgfSAqLworCisjaW5jbHVkZSAidW1p bl8xLmMiCisKKyNkZWZpbmUgTiA5OQorCisjZGVmaW5lIFRFU1RfUkVHUkVHX09QUyhUWVBF KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBUWVBFIHhbTl0sIHlbTl07ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKwl4W2ldID0gaSAlIDEzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKwl5W2ldID0gaSAqIGk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgdmFyaXRoXyMjVFlQRSMjX3JlZyAoeCwgeSwgTik7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgTjsgKytpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJVFlQRSBleHBl Y3RlZCA9IHhbaV0gPCB5W2ldID8geFtpXSA6IHlbaV07ICAgICAgICBcCisJaWYgKHhbaV0g IT0gZXhwZWN0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisJICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6Ojog Im1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKyNkZWZpbmUgVEVTVF9JTU1FRElB VEVfT1BTKFZBTFVFLCBUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFRZUEUgeFtOXSwgeVtOXTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorCXhbaV0gPSBpICogaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICB2YXJpdGhpbW1fIyNWQUxVRSMjXyMjVFlQRSAoeCwgTik7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytp KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisJVFlQRSBleHBlY3RlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJICA9IHhb aV0gPCAoVFlQRSkgVkFMVUUgPyB4W2ldIDogKFRZUEUpIFZBTFVFOyAgICBcCisJaWYgKHhb aV0gIT0gZXhwZWN0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisJICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJYXNtIHZvbGF0aWxlICgiIiA6 OjogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKK2ludAorbWFpbiAodm9pZCkK K3sKKyAgVEVTVF9BTEwgKFRFU1RfUkVHUkVHX09QUywgVEVTVF9JTU1FRElBVEVfT1BTKQor ICByZXR1cm4gMDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM5LjIK Cg== --------------vpjAO0IlKa5ubqZa5HP0JYsZ--