From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 004C23858D1E for ; Tue, 24 Jan 2023 14:40:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 004C23858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4E4264B3; Tue, 24 Jan 2023 06:41:01 -0800 (PST) Received: from [10.57.75.149] (unknown [10.57.75.149]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D8ADB3F71E; Tue, 24 Jan 2023 06:40:18 -0800 (PST) Content-Type: multipart/mixed; boundary="------------gEzlMGSYbWrQ022d21Y6vkWe" Message-ID: <21d6f02c-86aa-bdb8-d3f9-a8362a216bb8@arm.com> Date: Tue, 24 Jan 2023 14:40:13 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH] arm: Make MVE masked stores read memory operand [PR 108177] Content-Language: en-US To: "'gcc-patches@gcc.gnu.org'" Cc: Richard Earnshaw , Kyrylo Tkachov References: From: "Andre Vieira (lists)" In-Reply-To: X-Spam-Status: No, score=-17.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,KAM_LOTSOFHASH,KAM_SHORT,NICE_REPLY_A,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------gEzlMGSYbWrQ022d21Y6vkWe Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit ping. (reattaching patch in the hopes patchwork picks it up). On 13/01/2023 16:05, Andre Simoes Dias Vieira via Gcc-patches wrote: > Hi, > > This patch adds the memory operand of MVE masked stores as input operands to > mimic the 'partial' writes, to prevent erroneous write-after-write > optimizations as described in the PR. > > Regression tested on arm-none-eabi for armv8.1-m.main+mve.fp. > > OK for trunk? > > gcc/ChangeLog: > > PR target/108177 > * config/arm/mve.md (mve_vstrbq_p_, mve_vstrhq_p_fv8hf, > mve_vstrhq_p_, mve_vstrwq_p_v4si): Add memory operand > as input operand. > > gcc/testsuite/ChangeLog: > > * gcc.target/arm/mve/pr108177-1-run.c: New test. > * gcc.target/arm/mve/pr108177-1.c: New test. > * gcc.target/arm/mve/pr108177-10-run.c: New test. > * gcc.target/arm/mve/pr108177-10.c: New test. > * gcc.target/arm/mve/pr108177-11-run.c: New test. > * gcc.target/arm/mve/pr108177-11.c: New test. > * gcc.target/arm/mve/pr108177-12-run.c: New test. > * gcc.target/arm/mve/pr108177-12.c: New test. > * gcc.target/arm/mve/pr108177-13-run.c: New test. > * gcc.target/arm/mve/pr108177-13.c: New test. > * gcc.target/arm/mve/pr108177-14-run.c: New test. > * gcc.target/arm/mve/pr108177-14.c: New test. > * gcc.target/arm/mve/pr108177-2-run.c: New test. > * gcc.target/arm/mve/pr108177-2.c: New test. > * gcc.target/arm/mve/pr108177-3-run.c: New test. > * gcc.target/arm/mve/pr108177-3.c: New test. > * gcc.target/arm/mve/pr108177-4-run.c: New test. > * gcc.target/arm/mve/pr108177-4.c: New test. > * gcc.target/arm/mve/pr108177-5-run.c: New test. > * gcc.target/arm/mve/pr108177-5.c: New test. > * gcc.target/arm/mve/pr108177-6-run.c: New test. > * gcc.target/arm/mve/pr108177-6.c: New test. > * gcc.target/arm/mve/pr108177-7-run.c: New test. > * gcc.target/arm/mve/pr108177-7.c: New test. > * gcc.target/arm/mve/pr108177-8-run.c: New test. > * gcc.target/arm/mve/pr108177-8.c: New test. > * gcc.target/arm/mve/pr108177-9-run.c: New test. > * gcc.target/arm/mve/pr108177-9.c: New test. > * gcc.target/arm/mve/pr108177-main.x: New test include. > * gcc.target/arm/mve/pr108177.x: New test include. --------------gEzlMGSYbWrQ022d21Y6vkWe Content-Type: text/plain; charset=UTF-8; name="pr108177.patch" Content-Disposition: attachment; filename="pr108177.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL212ZS5tZCBiL2djYy9jb25maWcvYXJtL212 ZS5tZAppbmRleCBmMTIzZWRjNDQ5YjhiMjBiZmI0YTE1YzFmYjBlY2NkYmZmZjEzMzljLi4y ZTU4YWQxODhjNGIxM2IyN2Y3ZDM1ZGRkZTBmMDRmOThiMTMzNGM2IDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2FybS9tdmUubWQKKysrIGIvZ2NjL2NvbmZpZy9hcm0vbXZlLm1kCkBAIC03 MjcyLDE1ICs3MjcyLDEzIEBAIChkZWZpbmVfaW5zbiAibXZlX3ZzdHJ3cV9zY2F0dGVyX2Jh c2VfcF88c3VwZj52NHNpIgogfQogICBbKHNldF9hdHRyICJsZW5ndGgiICI4IildKQogCi07 OwotOzsgW3ZzdHJicV9wX3MgdnN0cmJxX3BfdV0KLTs7CiAoZGVmaW5lX2luc24gIm12ZV92 c3RyYnFfcF88c3VwZj48bW9kZT4iCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxNVkVfQl9F TEVNPiAwICJtdmVfbWVtb3J5X29wZXJhbmQiICI9VXgiKQotCSh1bnNwZWM6PE1WRV9CX0VM RU0+IFsobWF0Y2hfb3BlcmFuZDpNVkVfMiAxICJzX3JlZ2lzdGVyX29wZXJhbmQiICJ3IikK LQkJCSAgICAgIChtYXRjaF9vcGVyYW5kOjxNVkVfVlBSRUQ+IDIgInZwcl9yZWdpc3Rlcl9v cGVyYW5kIiAiVXAiKV0KLQkgVlNUUkJRKSkKLSAgXQorCSh1bnNwZWM6PE1WRV9CX0VMRU0+ CisJIFsobWF0Y2hfb3BlcmFuZDpNVkVfMiAxICJzX3JlZ2lzdGVyX29wZXJhbmQiICJ3IikK KwkgIChtYXRjaF9vcGVyYW5kOjxNVkVfVlBSRUQ+IDIgInZwcl9yZWdpc3Rlcl9vcGVyYW5k IiAiVXAiKQorCSAgKG1hdGNoX2R1cCAwKV0KKwkgVlNUUkJRKSldCiAgICJUQVJHRVRfSEFW RV9NVkUiCiB7CiAgICBydHggb3BzWzJdOwpAQCAtODA3OSwxMCArODA3NywxMSBAQCAoZGVm aW5lX2luc24gIm12ZV92c3RyaHFfZnY4aGYiCiA7OwogKGRlZmluZV9pbnNuICJtdmVfdnN0 cmhxX3BfZnY4aGYiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4SEkgMCAibXZlX21lbW9y eV9vcGVyYW5kIiAiPVV4IikKLQkodW5zcGVjOlY4SEkgWyhtYXRjaF9vcGVyYW5kOlY4SEYg MSAic19yZWdpc3Rlcl9vcGVyYW5kIiAidyIpCi0JCSAgICAgIChtYXRjaF9vcGVyYW5kOlY4 QkkgMiAidnByX3JlZ2lzdGVyX29wZXJhbmQiICJVcCIpXQotCSBWU1RSSFFfRikpCi0gIF0K KwkodW5zcGVjOlY4SEkKKwkgWyhtYXRjaF9vcGVyYW5kOlY4SEYgMSAic19yZWdpc3Rlcl9v cGVyYW5kIiAidyIpCisJICAobWF0Y2hfb3BlcmFuZDpWOEJJIDIgInZwcl9yZWdpc3Rlcl9v cGVyYW5kIiAiVXAiKQorCSAgKG1hdGNoX2R1cCAwKV0KKwkgVlNUUkhRX0YpKV0KICAgIlRB UkdFVF9IQVZFX01WRSAmJiBUQVJHRVRfSEFWRV9NVkVfRkxPQVQiCiB7CiAgICBydHggb3Bz WzJdOwpAQCAtODA5OSw4ICs4MDk4LDEwIEBAIChkZWZpbmVfaW5zbiAibXZlX3ZzdHJocV9w X2Z2OGhmIgogOzsKIChkZWZpbmVfaW5zbiAibXZlX3ZzdHJocV9wXzxzdXBmPjxtb2RlPiIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PE1WRV9IX0VMRU0+IDAgIm12ZV9tZW1vcnlfb3Bl cmFuZCIgIj1VeCIpCi0JKHVuc3BlYzo8TVZFX0hfRUxFTT4gWyhtYXRjaF9vcGVyYW5kOk1W RV82IDEgInNfcmVnaXN0ZXJfb3BlcmFuZCIgInciKQotCQkJICAgICAgKG1hdGNoX29wZXJh bmQ6PE1WRV9WUFJFRD4gMiAidnByX3JlZ2lzdGVyX29wZXJhbmQiICJVcCIpXQorCSh1bnNw ZWM6PE1WRV9IX0VMRU0+CisJIFsobWF0Y2hfb3BlcmFuZDpNVkVfNiAxICJzX3JlZ2lzdGVy X29wZXJhbmQiICJ3IikKKwkgIChtYXRjaF9vcGVyYW5kOjxNVkVfVlBSRUQ+IDIgInZwcl9y ZWdpc3Rlcl9vcGVyYW5kIiAiVXAiKQorCSAgKG1hdGNoX2R1cCAwKV0KIAkgVlNUUkhRKSkK ICAgXQogICAiVEFSR0VUX0hBVkVfTVZFIgpAQCAtODI3OCwxMCArODI3OSwxMSBAQCAoZGVm aW5lX2luc24gIm12ZV92c3Ryd3FfZnY0c2YiCiA7OwogKGRlZmluZV9pbnNuICJtdmVfdnN0 cndxX3BfZnY0c2YiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAibXZlX21lbW9y eV9vcGVyYW5kIiAiPVV4IikKLQkodW5zcGVjOlY0U0kgWyhtYXRjaF9vcGVyYW5kOlY0U0Yg MSAic19yZWdpc3Rlcl9vcGVyYW5kIiAidyIpCi0JCSAgICAgIChtYXRjaF9vcGVyYW5kOjxN VkVfVlBSRUQ+IDIgInZwcl9yZWdpc3Rlcl9vcGVyYW5kIiAiVXAiKV0KLQkgVlNUUldRX0Yp KQotICBdCisJKHVuc3BlYzpWNFNJCisJIFsobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInNfcmVn aXN0ZXJfb3BlcmFuZCIgInciKQorCSAgKG1hdGNoX29wZXJhbmQ6PE1WRV9WUFJFRD4gMiAi dnByX3JlZ2lzdGVyX29wZXJhbmQiICJVcCIpCisJICAobWF0Y2hfZHVwIDApXQorCSBWU1RS V1FfRikpXQogICAiVEFSR0VUX0hBVkVfTVZFICYmIFRBUkdFVF9IQVZFX01WRV9GTE9BVCIK IHsKICAgIHJ0eCBvcHNbMl07CkBAIC04Mjk4LDEwICs4MzAwLDExIEBAIChkZWZpbmVfaW5z biAibXZlX3ZzdHJ3cV9wX2Z2NHNmIgogOzsKIChkZWZpbmVfaW5zbiAibXZlX3ZzdHJ3cV9w XzxzdXBmPnY0c2kiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAibXZlX21lbW9y eV9vcGVyYW5kIiAiPVV4IikKLQkodW5zcGVjOlY0U0kgWyhtYXRjaF9vcGVyYW5kOlY0U0kg MSAic19yZWdpc3Rlcl9vcGVyYW5kIiAidyIpCi0JCSAgICAgIChtYXRjaF9vcGVyYW5kOlY0 QkkgMiAidnByX3JlZ2lzdGVyX29wZXJhbmQiICJVcCIpXQotCSBWU1RSV1EpKQotICBdCisJ KHVuc3BlYzpWNFNJCisJIFsobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInNfcmVnaXN0ZXJfb3Bl cmFuZCIgInciKQorCSAgKG1hdGNoX29wZXJhbmQ6VjRCSSAyICJ2cHJfcmVnaXN0ZXJfb3Bl cmFuZCIgIlVwIikKKwkgIChtYXRjaF9kdXAgMCldCisJIFZTVFJXUSkpXQogICAiVEFSR0VU X0hBVkVfTVZFIgogewogICAgcnR4IG9wc1syXTsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTEtcnVuLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xLXJ1bi5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNh MDkyZGY5ODAyMTUzYmM0YjIxZTkxOWY5MWY0YmFjZmUyM2I2ZGUKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xLXJ1bi5j CkBAIC0wLDAgKzEsNiBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgYXJtX212ZV9odyB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1P MiAtLXNhdmUtdGVtcHMiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212 ZSB9ICovCisKKyNpbmNsdWRlICJwcjEwODE3Ny0xLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ0MjA2 MmJjOGU4NzkyMzNiMmU3OTc0ZWE5M2M4Mjc3MTI4YWFhYwotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTEuYwpAQCAtMCww ICsxLDIwIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1yZXF1aXJlLWVm ZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiIgfSAqLworLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8KKy8q IHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB9IH0gKi8K KworLyoKKyoqIHRlc3Q6CisqKi4uLgorKioJdnN0cmJ0LjgJcTAsIFxbcjBcXQorKiouLi4K KyoqCXZzdHJidC44CXEwLCBcW3IwXF0KKyoqLi4uCisqLworCisjZGVmaW5lIFRZUEUgdWlu dDh4MTZfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cmJxX3U4CisjZGVmaW5lIElOVFJJTlNJ Q19QIHZzdHJicV9wX3U4CisKKyNpbmNsdWRlICJwcjEwODE3Ny54IgpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMTAtcnVuLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xMC1ydW4uYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwLi4wYTU4YjhmN2ZkZmVkMTI4MTZjMzc3NDdiNWQ2MGYyYTA3ZDQ0YTU3Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIx MDgxNzctMTAtcnVuLmMKQEAgLTAsMCArMSw2IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisv KiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fbXZlX2h3IH0gKi8KKy8qIHsg ZGctb3B0aW9ucyAiLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9t dmUgfSAqLworCisjaW5jbHVkZSAicHIxMDgxNzctMTAuYyIKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTEwLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xMC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRk YjU5NGY1ODhmOWYyOTlhNmMyMmRmNWRlNjg2YWE2OGY2MTJiYTkKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xMC5jCkBA IC0wLDAgKzEsMjAgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLXJlcXVp cmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fdjhfMW1fbXZlX29rIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAq LworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiICIiIH0g fSAqLworCisvKgorKiogdGVzdDoKKyoqLi4uCisqKgl2c3RyaHQuMzIJcTAsIFxbcjBcXQor KiouLi4KKyoqCXZzdHJodC4zMglxMCwgXFtyMFxdCisqKi4uLgorKi8KKworI2RlZmluZSBU WVBFIGludDMyeDRfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cmhxX3MzMgorI2RlZmluZSBJ TlRSSU5TSUNfUCB2c3RyaHFfcF9zMzIKKworI2luY2x1ZGUgInByMTA4MTc3LngiCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xMS1y dW4uYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTExLXJ1 bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAuLjlmNTY4ZWFjZjM0NmEwOGEyMmQ4MmQ0Y2FhYzVlMGVmNDY1 ZGRmYzEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJt L212ZS9wcjEwODE3Ny0xMS1ydW4uYwpAQCAtMCwwICsxLDYgQEAKKy8qIHsgZGctZG8gcnVu IH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV9tdmVfaHcgfSAq LworLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJt X3Y4XzFtX212ZSB9ICovCisKKyNpbmNsdWRlICJwcjEwODE3Ny0xMS5jIgpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMTEuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTExLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMC4uMzI5ZmNiMzNlZWJjMmRmOWQwNDdmNTljMTQyNTkyMjFhMWNjMmE2ZgotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3 LTExLmMKQEAgLTAsMCArMSwyMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsg ZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLworLyog eyBkZy1vcHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFt X212ZSB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIg IiIgIiIgfSB9ICovCisKKy8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJ3dC4zMglxMCwg XFtyMFxdCisqKi4uLgorKioJdnN0cnd0LjMyCXEwLCBcW3IwXF0KKyoqLi4uCisqLworCisj ZGVmaW5lIFRZUEUgdWludDMyeDRfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cndxX3UzMgor I2RlZmluZSBJTlRSSU5TSUNfUCB2c3Ryd3FfcF91MzIKKworI2luY2x1ZGUgInByMTA4MTc3 LngiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEw ODE3Ny0xMi1ydW4uYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4 MTc3LTEyLXJ1bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlOTQ2YTI5Nzk1MjQ4ZGEyMWZmOTkzYjhi MjlmZTRlNjBjZGExNmIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xMi1ydW4uYwpAQCAtMCwwICsxLDYgQEAKKy8qIHsg ZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV9t dmVfaHcgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9w dGlvbnMgYXJtX3Y4XzFtX212ZSB9ICovCisKKyNpbmNsdWRlICJwcjEwODE3Ny0xMi5jIgpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzct MTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTEyLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMC4uM2Y3YzViMmE0YzEyZTI3ZDEyYjYwZTZjNmQwMTU3ZGRlM2EwM2I4 NgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZl L3ByMTA4MTc3LTEyLmMKQEAgLTAsMCArMSwyMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sg fSAqLworLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMg YXJtX3Y4XzFtX212ZSB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9k aWVzICIqKiIgIiIgIiIgfSB9ICovCisKKy8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJ3 dC4zMglxMCwgXFtyMFxdCisqKi4uLgorKioJdnN0cnd0LjMyCXEwLCBcW3IwXF0KKyoqLi4u CisqLworCisjZGVmaW5lIFRZUEUgaW50MzJ4NF90CisjZGVmaW5lIElOVFJJTlNJQyB2c3Ry d3FfczMyCisjZGVmaW5lIElOVFJJTlNJQ19QIHZzdHJ3cV9wX3MzMgorCisjaW5jbHVkZSAi cHIxMDgxNzcueCIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0v bXZlL3ByMTA4MTc3LTEzLXJ1bi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9t dmUvcHIxMDgxNzctMTMtcnVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU3MzFlZTM4MjRiYjFjMjli NDE4ZjA5YjM4NGRhMWE0ODk5NDcxZQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTEzLXJ1bi5jCkBAIC0wLDAgKzEsNiBA QAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJn ZXQgYXJtX212ZV9odyB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLworLyogeyBk Zy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8KKworI2luY2x1ZGUgInByMTA4MTc3 LTEzLmMiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9w cjEwODE3Ny0xMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgx NzctMTMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjgyMjI4ZDhmNmI3ZjVmZTEyY2U1MWQ0OTA3OWRj MjdlYjE4NmY0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FybS9tdmUvcHIxMDgxNzctMTMuYwpAQCAtMCwwICsxLDIwIEBACisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFt X212ZV9mcF9vayB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLworLyogeyBkZy1h ZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlX2ZwIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVj ay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB9IH0gKi8KKworLyoKKyoqIHRlc3Q6Cisq Ki4uLgorKioJdnN0cmh0LjE2CXEwLCBcW3IwXF0KKyoqLi4uCisqKgl2c3RyaHQuMTYJcTAs IFxbcjBcXQorKiouLi4KKyovCisKKyNkZWZpbmUgVFlQRSBmbG9hdDE2eDhfdAorI2RlZmlu ZSBJTlRSSU5TSUMgdnN0cmhxX2YxNgorI2RlZmluZSBJTlRSSU5TSUNfUCB2c3RyaHFfcF9m MTYKKworI2luY2x1ZGUgInByMTA4MTc3LngiCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xNC1ydW4uYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTE0LXJ1bi5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNj ZWJjZjViYmNkNmY5ZjBiMDFmYzdiMGE3MWExZmZiMDQ0MmQyZjQKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0xNC1ydW4u YwpAQCAtMCwwICsxLDYgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctcmVxdWly ZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV9tdmVfaHcgfSAqLworLyogeyBkZy1vcHRpb25zICIt TzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9ICovCisKKyNp bmNsdWRlICJwcjEwODE3Ny0xNC5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hcm0vbXZlL3ByMTA4MTc3LTE0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE2MTk2Yjc5OTQ5MGY4 ODk3ZTUxNjcwYmJlNzQwMTYxZmY2YTYxMwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTE0LmMKQEAgLTAsMCArMSwyMCBA QAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUt dGFyZ2V0IGFybV92OF8xbV9tdmVfZnBfb2sgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIi IH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZV9mcCB9ICovCisvKiB7 IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICovCisK Ky8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJ3dC4zMglxMCwgXFtyMFxdCisqKi4uLgor KioJdnN0cnd0LjMyCXEwLCBcW3IwXF0KKyoqLi4uCisqLworCisjZGVmaW5lIFRZUEUgZmxv YXQzMng0X3QKKyNkZWZpbmUgSU5UUklOU0lDIHZzdHJ3cV9mMzIKKyNkZWZpbmUgSU5UUklO U0lDX1AgdnN0cndxX3BfZjMyCisKKyNpbmNsdWRlICJwcjEwODE3Ny54IgpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMi1ydW4uYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTItcnVuLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMC4uMDM3NTBjOWM3YTFlZWE5YWMzNjY5YjY5YjA2Y2Y1YTQwY2E1ZDRhMgot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3By MTA4MTc3LTItcnVuLmMKQEAgLTAsMCArMSw2IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisv KiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fbXZlX2h3IH0gKi8KKy8qIHsg ZGctb3B0aW9ucyAiLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9t dmUgfSAqLworCisjaW5jbHVkZSAicHIxMDgxNzctMi5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyYzhk ODdjY2M4Yzc3NmRlM2JkZWRjODMyZGM3OTY3ZGFlM2I1MDUKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0yLmMKQEAgLTAs MCArMSwyMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1l ZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLworLyogeyBkZy1vcHRpb25z ICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9ICovCisv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICov CisKKy8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJidC44CXEwLCBcW3IwXF0KKyoqLi4u CisqKgl2c3RyYnQuOAlxMCwgXFtyMFxdCisqKi4uLgorKi8KKworI2RlZmluZSBUWVBFIGlu dDh4MTZfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cmJxX3M4CisjZGVmaW5lIElOVFJJTlNJ Q19QIHZzdHJicV9wX3M4CisKKyNpbmNsdWRlICJwcjEwODE3Ny54IgpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMy1ydW4uYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTMtcnVuLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uYmFiMDhlMDQyZDQyZWIxOWEwMDEyMDlkNWFjMTYxMzQ1OGQxNzEzYQotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4 MTc3LTMtcnVuLmMKQEAgLTAsMCArMSw2IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7 IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fbXZlX2h3IH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUg fSAqLworCisjaW5jbHVkZSAicHIxMDgxNzctMy5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjODllN2Vh ODgzZjllZDYzOGExMDkyNzEyZDM0ZGE2ZDAwYjNjMjcKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny0zLmMKQEAgLTAsMCAr MSwyMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZl Y3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLworLyogeyBkZy1vcHRpb25zICIt TzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICovCisK Ky8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJidC4xNglxMCwgXFtyMFxdCisqKi4uLgor KioJdnN0cmJ0LjE2CXEwLCBcW3IwXF0KKyoqLi4uCisqLworCisjZGVmaW5lIFRZUEUgdWlu dDE2eDhfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cmJxX3UxNgorI2RlZmluZSBJTlRSSU5T SUNfUCB2c3RyYnFfcF91MTYKKworI2luY2x1ZGUgInByMTA4MTc3LngiCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny00LXJ1bi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNC1ydW4uYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwLi5jZmY2MmM3NWRkNTgzYWU0M2VkYTI1OWU1MzA4YTgxYzI1MDEyNWQ0Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIx MDgxNzctNC1ydW4uYwpAQCAtMCwwICsxLDYgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8q IHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV9tdmVfaHcgfSAqLworLyogeyBk Zy1vcHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212 ZSB9ICovCisKKyNpbmNsdWRlICJwcjEwODE3Ny00LmMiCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny00LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny00LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM0Zjdk ZGFiMDczMjE1YTRmOGNiYjYxYWRmZjU3M2I0ZWVmMGQ2MAotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTQuYwpAQCAtMCww ICsxLDIwIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1yZXF1aXJlLWVm ZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiIgfSAqLworLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8KKy8q IHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB9IH0gKi8K KworLyoKKyoqIHRlc3Q6CisqKi4uLgorKioJdnN0cmJ0LjE2CXEwLCBcW3IwXF0KKyoqLi4u CisqKgl2c3RyYnQuMTYJcTAsIFxbcjBcXQorKiouLi4KKyovCisKKyNkZWZpbmUgVFlQRSBp bnQxNng4X3QKKyNkZWZpbmUgSU5UUklOU0lDIHZzdHJicV9zMTYKKyNkZWZpbmUgSU5UUklO U0lDX1AgdnN0cmJxX3BfczE2CisKKyNpbmNsdWRlICJwcjEwODE3Ny54IgpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNS1ydW4uYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTUtcnVuLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMC4uNzIxMTgyOGNlZWI1NGIxZDY4ZjI3ZjI0OGRkZmNmMDBiYmFjMTQ4Nwot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3By MTA4MTc3LTUtcnVuLmMKQEAgLTAsMCArMSw2IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisv KiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fbXZlX2h3IH0gKi8KKy8qIHsg ZGctb3B0aW9ucyAiLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9t dmUgfSAqLworCisjaW5jbHVkZSAicHIxMDgxNzctNS5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNS5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZGZk MzI4ZDY2MGQzOGY2MmMxODhlZThlNjFhZWZkMTk1ZWY5MjkKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny01LmMKQEAgLTAs MCArMSwyMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1l ZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLworLyogeyBkZy1vcHRpb25z ICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9ICovCisv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICov CisKKy8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJidC4zMglxMCwgXFtyMFxdCisqKi4u LgorKioJdnN0cmJ0LjMyCXEwLCBcW3IwXF0KKyoqLi4uCisqLworCisjZGVmaW5lIFRZUEUg dWludDMyeDRfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cmJxX3UzMgorI2RlZmluZSBJTlRS SU5TSUNfUCB2c3RyYnFfcF91MzIKKworI2luY2x1ZGUgInByMTA4MTc3LngiCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny02LXJ1bi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNi1ydW4uYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi40ZTdkMTA4Y2Q4MWMzODAxODNhYjIxNTA1YmMyZTk4NGY0OWYwYWVh Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUv cHIxMDgxNzctNi1ydW4uYwpAQCAtMCwwICsxLDYgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8K Ky8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV9tdmVfaHcgfSAqLworLyog eyBkZy1vcHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFt X212ZSB9ICovCisKKyNpbmNsdWRlICJwcjEwODE3Ny02LmMiCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny02LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny02LmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE3 MGRkZTllZWIzMTI4Njc0NzNlZWQwMzZkZjJlN2Y1MDJlYWFkMQotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTYuYwpAQCAt MCwwICsxLDIwIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1PMiIgfSAqLworLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8K Ky8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB9IH0g Ki8KKworLyoKKyoqIHRlc3Q6CisqKi4uLgorKioJdnN0cmJ0LjMyCXEwLCBcW3IwXF0KKyoq Li4uCisqKgl2c3RyYnQuMzIJcTAsIFxbcjBcXQorKiouLi4KKyovCisKKyNkZWZpbmUgVFlQ RSBpbnQzMng0X3QKKyNkZWZpbmUgSU5UUklOU0lDIHZzdHJicV9zMzIKKyNkZWZpbmUgSU5U UklOU0lDX1AgdnN0cmJxX3BfczMyCisKKyNpbmNsdWRlICJwcjEwODE3Ny54IgpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNy1ydW4u YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTctcnVuLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMC4uOTRjNDkyZWQ5NmIzMjYwNjNiMDE1OThlYzMwNjIyZDlkYTYyZDc2 MQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZl L3ByMTA4MTc3LTctcnVuLmMKQEAgLTAsMCArMSw2IEBACisvKiB7IGRnLWRvIHJ1biB9ICov CisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fbXZlX2h3IH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8x bV9tdmUgfSAqLworCisjaW5jbHVkZSAicHIxMDgxNzctNy5jIgpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNy5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctNy5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcz Y2Q4NjA1MTcxZDMxZDIwZjI1YjY5NTM1NjNlMmUyMzUwY2UwZTQKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny03LmMKQEAg LTAsMCArMSwyMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVxdWly ZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLworLyogeyBkZy1vcHRp b25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9ICov CisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9 ICovCisKKy8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJodC4xNglxMCwgXFtyMFxdCisq Ki4uLgorKioJdnN0cmh0LjE2CXEwLCBcW3IwXF0KKyoqLi4uCisqLworCisjZGVmaW5lIFRZ UEUgdWludDE2eDhfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cmhxX3UxNgorI2RlZmluZSBJ TlRSSU5TSUNfUCB2c3RyaHFfcF91MTYKKworI2luY2x1ZGUgInByMTA4MTc3LngiCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny04LXJ1 bi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctOC1ydW4u YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi4zYzM0MDQ1ZjMxZDg5Y2U0NTU4Y2IzN2UzNGE3Y2FlMzY5MDg2 ZjdjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9t dmUvcHIxMDgxNzctOC1ydW4uYwpAQCAtMCwwICsxLDYgQEAKKy8qIHsgZGctZG8gcnVuIH0g Ki8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV9tdmVfaHcgfSAqLwor LyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4 XzFtX212ZSB9ICovCisKKyNpbmNsdWRlICJwcjEwODE3Ny04LmMiCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny04LmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny04LmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u MTg3YzJiM2Y0Y2U0YjgzOTUzNmFjYzc0ZDFkZmI0ODAxZmQxMDA3OAotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTguYwpA QCAtMCwwICsxLDIwIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1yZXF1 aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovCisvKiB7IGRnLW9w dGlvbnMgIi1PMiIgfSAqLworLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0g Ki8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB9 IH0gKi8KKworLyoKKyoqIHRlc3Q6CisqKi4uLgorKioJdnN0cmh0LjE2CXEwLCBcW3IwXF0K KyoqLi4uCisqKgl2c3RyaHQuMTYJcTAsIFxbcjBcXQorKiouLi4KKyovCisKKyNkZWZpbmUg VFlQRSBpbnQxNng4X3QKKyNkZWZpbmUgSU5UUklOU0lDIHZzdHJocV9zMTYKKyNkZWZpbmUg SU5UUklOU0lDX1AgdnN0cmhxX3BfczE2CisKKyNpbmNsdWRlICJwcjEwODE3Ny54IgpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctOS1y dW4uYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL3ByMTA4MTc3LTktcnVu LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMC4uOTY3Y2Y3ZjE5OTI4YmNkZDlmMGFjMDNlODUxYWVmZDA5ZGEy NTVmMgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0v bXZlL3ByMTA4MTc3LTktcnVuLmMKQEAgLTAsMCArMSw2IEBACisvKiB7IGRnLWRvIHJ1biB9 ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fbXZlX2h3IH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92 OF8xbV9tdmUgfSAqLworCisjaW5jbHVkZSAicHIxMDgxNzctOS5jIgpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctOS5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzctOS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu LmNhZWNkMThhODgxMGM2ODUzY2Y2NDJmZDk4MmJmMzVlZWYyZGIxZmYKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny05LmMK QEAgLTAsMCArMSwyMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVx dWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLworLyogeyBkZy1v cHRpb25zICItTzIiIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIg fSB9ICovCisKKy8qCisqKiB0ZXN0OgorKiouLi4KKyoqCXZzdHJodC4zMglxMCwgXFtyMFxd CisqKi4uLgorKioJdnN0cmh0LjMyCXEwLCBcW3IwXF0KKyoqLi4uCisqLworCisjZGVmaW5l IFRZUEUgdWludDMyeDRfdAorI2RlZmluZSBJTlRSSU5TSUMgdnN0cmhxX3UzMgorI2RlZmlu ZSBJTlRSSU5TSUNfUCB2c3RyaHFfcF91MzIKKworI2luY2x1ZGUgInByMTA4MTc3LngiCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny1t YWluLnggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny1tYWlu LngKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMC4uZjVmOTY1ZmI2OThlYTAyNzlkYTY1MmJmNTc5NWY5YjIyMmY3 ZjYyYwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0v bXZlL3ByMTA4MTc3LW1haW4ueApAQCAtMCwwICsxLDMxIEBACisjaW5jbHVkZSA8YXJtX212 ZS5oPgorZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOworCitfX2F0dHJpYnV0ZV9fICgobm9p cGEpKSB2b2lkCit3cml0ZV9leHBlY3RlZCAodWludDMyeDRfdCB2LCB2b2lkICphKQorewor ICBUWVBFIF92ID0gKFRZUEUpIHY7CisgIElOVFJJTlNJQyAoYSwgX3YpOworfQorCit2b2lk IHRlc3QgKHVpbnQzMng0X3QsIHZvaWQgKiwgbXZlX3ByZWQxNl90LCBtdmVfcHJlZDE2X3Qp OworCitpbnQgbWFpbih2b2lkKQoreworICB1aW50MzJ4NF90IHYgPSB7MCwgMSwgMiwgM307 CisgIHVpbnQzMl90IGFjdHVhbFtdID0gezAsIDAsIDAsIDB9OworICB1aW50MzJfdCBleHBl Y3RlZFtdID0gezAsIDAsIDAsIDB9OworCisgIHdyaXRlX2V4cGVjdGVkICh2LCAmKGV4cGVj dGVkWzBdKSk7CisKKyAgbXZlX3ByZWQxNl90IHAxID0gMHhmZjAwOworICBtdmVfcHJlZDE2 X3QgcDIgPSAweDAwZmY7CisKKyAgdGVzdCAodiwgKHZvaWQgKikmYWN0dWFsWzBdLCBwMSwg cDIpOworCisgIGlmIChfX2J1aWx0aW5fbWVtY21wICgmYWN0dWFsWzBdLCAmZXhwZWN0ZWRb MF0sIDE2KSAhPSAwKQorICAgIGFib3J0ICgpOworCisgIHJldHVybiAwOworfQorCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9wcjEwODE3Ny54IGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzcueApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwLi4wMTllZjU0ZWFlN2EzYjJiYzExYmM2ZmQ0YmY4MmU0MzU1YWQxMDg4Ci0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvcHIxMDgxNzcu eApAQCAtMCwwICsxLDkgQEAKKyNpbmNsdWRlICJwcjEwODE3Ny1tYWluLngiCisKK19fYXR0 cmlidXRlX18gKChub2lwYSkpIHZvaWQKK3Rlc3QgKHVpbnQzMng0X3Qgdiwgdm9pZCAqYSwg bXZlX3ByZWQxNl90IHAxLCBtdmVfcHJlZDE2X3QgcDIpCit7CisgIFRZUEUgX3YgPSAoVFlQ RSkgdjsKKyAgSU5UUklOU0lDX1AgKGEsIF92LCBwMSk7CisgIElOVFJJTlNJQ19QIChhLCBf diwgcDIpOworfQo= --------------gEzlMGSYbWrQ022d21Y6vkWe--