From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29627 invoked by alias); 18 Nov 2014 19:06:44 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 29617 invoked by uid 89); 18 Nov 2014 19:06:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qg0-f51.google.com X-Received: by 10.229.104.3 with SMTP id m3mr45543450qco.0.1416337599981; Tue, 18 Nov 2014 11:06:39 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: <542AF92E.8090708@lip6.fr> From: Andrew Senkevich Date: Tue, 18 Nov 2014 19:06:00 -0000 Message-ID: Subject: Re: [RFC] How to add vector math functions to Glibc To: Joseph Myers Cc: libc-alpha Content-Type: multipart/mixed; boundary=001a1133322a880790050826cba5 X-SW-Source: 2014-11/txt/msg00464.txt.bz2 --001a1133322a880790050826cba5 Content-Type: text/plain; charset=UTF-8 Content-length: 516 Hi Joseph, attached patch now contain versions of vector cos in SSE4, AVX and AVX2 ISAs. Because of both AVX and AVX2 versions have vector length 4 there are some changes in tests - I put AVX2 make rules in sysdeps makefile and its name changed to test-double-vlen4-avx2 , AVX test stay with old name, in ULPs file specified both versions. If everything is okey, let me know and I will prepare separated patches while document about pragma meaning is preparing (we plan to add it at last steps). -- WBR, Andrew --001a1133322a880790050826cba5 Content-Type: application/octet-stream; name="libmvec_181114.patch" Content-Disposition: attachment; filename="libmvec_181114.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2nmligb0 Content-length: 89902 ZGlmZiAtLWdpdCBhL01ha2Vjb25maWcgYi9NYWtlY29uZmlnCmluZGV4IDI0 YTNiODIuLjQ2NzIwMDggMTAwNjQ0Ci0tLSBhL01ha2Vjb25maWcKKysrIGIv TWFrZWNvbmZpZwpAQCAtNDc2LDcgKzQ3Niw3IEBAIGxpbmstbGliYyA9ICQo bGluay1saWJjLXJwYXRoLWxpbmspICQobGluay1saWJjLWJlZm9yZS1nbnVs aWIpICQoZ251bGliKQogbGluay1saWJjLXRlc3RzID0gJChsaW5rLWxpYmMt dGVzdHMtcnBhdGgtbGluaykgXAogCQkgICQobGluay1saWJjLWJlZm9yZS1n bnVsaWIpICQoZ251bGliLXRlc3RzKQogIyBUaGlzIGlzIGhvdyB0byBmaW5k IGF0IGJ1aWxkLXRpbWUgdGhpbmdzIHRoYXQgd2lsbCBiZSBpbnN0YWxsZWQg dGhlcmUuCi1ycGF0aC1kaXJzID0gbWF0aCBlbGYgZGxmY24gbnNzIG5pcyBy dCByZXNvbHYgY3J5cHQKK3JwYXRoLWRpcnMgPSBtYXRoIGVsZiBkbGZjbiBu c3MgbmlzIHJ0IHJlc29sdiBjcnlwdCBtYXRodmVjCiBycGF0aC1saW5rID0g XAogJChjb21tb24tb2JqZGlyKTokKHN1YnN0ICQoZW1wdHkpICw6LCQocGF0 c3Vic3QgLi4vJChzdWJkaXIpLC4sJChycGF0aC1kaXJzOiU9JChjb21tb24t b2JqcGZ4KSUpKSkKIGVsc2UKQEAgLTEwMTgsNyArMTAxOCw3IEBAIGFsbC1z dWJkaXJzID0gY3N1IGFzc2VydCBjdHlwZSBsb2NhbGUgaW50bCBjYXRnZXRz IG1hdGggc2V0am1wIHNpZ25hbAkgICAgXAogCSAgICAgIHN0ZGxpYiBzdGRp by1jb21tb24gbGliaW8gbWFsbG9jIHN0cmluZyB3Y3NtYnMgdGltZSBkaXJl bnQgICAgXAogCSAgICAgIGdycCBwd2QgcG9zaXggaW8gdGVybWlvcyByZXNv dXJjZSBtaXNjIHNvY2tldCBzeXN2aXBjIGdtb24gICAgXAogCSAgICAgIGdu dWxpYiBpY29udiBpY29udmRhdGEgd2N0eXBlIG1hbnVhbCBzaGFkb3cgZ3No YWRvdyBwbyBhcmdwICAgXAotCSAgICAgIGNyeXB0IGxvY2FsZWRhdGEgdGlt ZXpvbmUgcnQgY29uZm9ybSBkZWJ1ZwkJICAgIFwKKwkgICAgICBjcnlwdCBs b2NhbGVkYXRhIHRpbWV6b25lIHJ0IGNvbmZvcm0gZGVidWcgbWF0aHZlYwkg ICAgXAogCSAgICAgICQoYWRkLW9uLXN1YmRpcnMpIGRsZmNuIGVsZgogCiBp Zm5kZWYgYXZvaWQtZ2VuZXJhdGVkCmRpZmYgLS1naXQgYS9iaXRzL21hdGgt dmVjdG9yLmggYi9iaXRzL21hdGgtdmVjdG9yLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYzhmZTVjYgotLS0gL2Rldi9udWxsCisr KyBiL2JpdHMvbWF0aC12ZWN0b3IuaApAQCAtMCwwICsxLDIyIEBACisvKiBQ bGF0Zm9ybS1zcGVjaWZpYyBTSU1EIGRlY2xhcmF0aW9ucyBvZiBtYXRoIGZ1 bmN0aW9ucy4KKyAgIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNl bnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2Vl CisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisj aWZuZGVmIF9NQVRIX0gKKyMgZXJyb3IgIk5ldmVyIGluY2x1ZGUgPGJpdHMv bWF0aC12ZWN0b3IuaD4gZGlyZWN0bHk7IFwKKwlpbmNsdWRlIDxtYXRoLmg+ IGluc3RlYWQuIgorI2VuZGlmCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9j b25maWd1cmUKaW5kZXggMGNiNTRlYy4uYTNlYTUzMSAxMDA3NTUKLS0tIGEv Y29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtNzc0LDYgKzc3NCw3IEBA IGVuYWJsZV9zeXN0ZW10YXAKIGVuYWJsZV9idWlsZF9uc2NkCiBlbmFibGVf bnNjZAogZW5hYmxlX3B0X2Nob3duCitlbmFibGVfbWF0aHZlYwogd2l0aF9j cHUKICcKICAgICAgIGFjX3ByZWNpb3VzX3ZhcnM9J2J1aWxkX2FsaWFzCkBA IC0xNDM3LDYgKzE0MzgsOCBAQCBPcHRpb25hbCBGZWF0dXJlczoKICAgLS1k aXNhYmxlLWJ1aWxkLW5zY2QgICAgZGlzYWJsZSBidWlsZGluZyBhbmQgaW5z dGFsbGluZyB0aGUgbnNjZCBkYWVtb24KICAgLS1kaXNhYmxlLW5zY2QgICAg ICAgICAgbGlicmFyeSBmdW5jdGlvbnMgd2lsbCBub3QgY29udGFjdCB0aGUg bnNjZCBkYWVtb24KICAgLS1lbmFibGUtcHRfY2hvd24gICAgICAgRW5hYmxl IGJ1aWxkaW5nIGFuZCBpbnN0YWxsaW5nIHB0X2Nob3duCisgIC0tZW5hYmxl LW1hdGh2ZWMgICAgICAgIEVuYWJsZSBidWlsZGluZyBhbmQgaW5zdGFsbGlu ZyBtYXRodmVjIFtkZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAg IGRlcGVuZHMgb24gYXJjaGl0ZWN0dXJlXQogCiBPcHRpb25hbCBQYWNrYWdl czoKICAgLS13aXRoLVBBQ0tBR0VbPUFSR10gICAgdXNlIFBBQ0tBR0UgW0FS Rz15ZXNdCkBAIC0zNzMwLDYgKzM3MzMsMTQgQEAgaWYgdGVzdCAiJGJ1aWxk X3B0X2Nob3duIiA9IHllczsgdGhlbgogCiBmaQogCisjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtbWF0aHZlYyB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke2Vu YWJsZV9tYXRodmVjK3NldH0iID0gc2V0OyB0aGVuIDoKKyAgZW5hYmxldmFs PSRlbmFibGVfbWF0aHZlYzsgYnVpbGRfbWF0aHZlYz0kZW5hYmxldmFsCitl bHNlCisgIGJ1aWxkX21hdGh2ZWM9bm90c2V0CitmaQorCisKICMgV2Uga2Vl cCB0aGUgb3JpZ2luYWwgdmFsdWVzIGluIGAkY29uZmlnXyonIGFuZCBuZXZl ciBtb2RpZnkgdGhlbSwgc28gd2UKICMgY2FuIHdyaXRlIHRoZW0gdW5jaGFu Z2VkIGludG8gY29uZmlnLm1ha2UuICBFdmVyeXRoaW5nIGVsc2UgdXNlcwog IyAkbWFjaGluZSwgJHZlbmRvciwgYW5kICRvcywgYW5kIGNoYW5nZXMgdGhl bSB3aGVuZXZlciBjb252ZW5pZW50LgpAQCAtNzAzOSw2ICs3MDUwLDEyIEBA ICRhc19lY2hvICJydW5uaW5nIGNvbmZpZ3VyZSBmcmFnbWVudCBmb3IgJGRp ciIgPiY2OyB9CiAgIGZpCiBkb25lCiAKK2lmIHRlc3QgeCIkYnVpbGRfbWF0 aHZlYyIgPSB4bm90c2V0OyB0aGVuCisgIGJ1aWxkX21hdGh2ZWM9bm8KK2Zp Citjb25maWdfdmFycz0iJGNvbmZpZ192YXJzCitidWlsZC1tYXRodmVjID0g JGJ1aWxkX21hdGh2ZWMiCisKIAogCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3Vy ZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCBiMmM0YjFmLi5mNjgwNWFhIDEw MDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBA IC0zNTMsNiArMzUzLDEyIEBAIGlmIHRlc3QgIiRidWlsZF9wdF9jaG93biIg PSB5ZXM7IHRoZW4KICAgQUNfREVGSU5FKEhBVkVfUFRfQ0hPV04pCiBmaQog CitBQ19BUkdfRU5BQkxFKFttYXRodmVjXSwKKwkgICAgICBbQVNfSEVMUF9T VFJJTkcoWy0tZW5hYmxlLW1hdGh2ZWNdLAorCSAgICAgIFtFbmFibGUgYnVp bGRpbmcgYW5kIGluc3RhbGxpbmcgbWF0aHZlYyBAPDpAZGVmYXVsdCBkZXBl bmRzIG9uIGFyY2hpdGVjdHVyZUA6PkBdKV0sCisJICAgICAgW2J1aWxkX21h dGh2ZWM9JGVuYWJsZXZhbF0sCisJICAgICAgW2J1aWxkX21hdGh2ZWM9bm90 c2V0XSkKKwogIyBXZSBrZWVwIHRoZSBvcmlnaW5hbCB2YWx1ZXMgaW4gYCRj b25maWdfKicgYW5kIG5ldmVyIG1vZGlmeSB0aGVtLCBzbyB3ZQogIyBjYW4g d3JpdGUgdGhlbSB1bmNoYW5nZWQgaW50byBjb25maWcubWFrZS4gIEV2ZXJ5 dGhpbmcgZWxzZSB1c2VzCiAjICRtYWNoaW5lLCAkdmVuZG9yLCBhbmQgJG9z LCBhbmQgY2hhbmdlcyB0aGVtIHdoZW5ldmVyIGNvbnZlbmllbnQuCkBAIC0x OTM5LDYgKzE5NDUsMTEgQEAgZm9yIGRpciBpbiAkc3lzbmFtZXM7IGRvCiAg IGZpCiBkb25lCiAKK2lmIHRlc3QgeCIkYnVpbGRfbWF0aHZlYyIgPSB4bm90 c2V0OyB0aGVuCisgIGJ1aWxkX21hdGh2ZWM9bm8KK2ZpCitMSUJDX0NPTkZJ R19WQVIoW2J1aWxkLW1hdGh2ZWNdLCBbJGJ1aWxkX21hdGh2ZWNdKQorCiBB Q19TVUJTVChsaWJjX2V4dHJhX2NmbGFncykKIEFDX1NVQlNUKGxpYmNfZXh0 cmFfY3BwZmxhZ3MpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlibS1zaW1k LWRlY2wtc3R1YnMuaCBiL2luY2x1ZGUvbGlibS1zaW1kLWRlY2wtc3R1YnMu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDQ4NzE3 Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saWJtLXNpbWQtZGVjbC1z dHVicy5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qIEVtcHR5IGRlZmluaXRpb25z IHJlcXVpcmVkIGZvciBfX01BVEhDQUxMX1ZFQyB1bmZvbGRpbmcgaW4gbWF0 aGNhbGxzLmguCisgICBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0 aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwg c2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor CisvKiBOZWVkZWQgZGVmaW5pdGlvbnMgY291bGQgYmUgZ2VuZXJhdGVkIHdp dGg6IAorICAgZm9yIGZ1bmMgaW4gJChncmVwIF9fTUFUSENBTExfVkVDIG1h dGgvYml0cy9tYXRoY2FsbHMuaCB8XAorCQkgc2VkIC1yICJzfF9fTUFUSENB TExfVkVDLj9cKHx8OyBzfCwuKnx8Iik7IGRvIAorICAgICBlY2hvICIjZGVm aW5lIF9fREVDTF9TSU1EXyR7ZnVuY30iOyAKKyAgICAgZWNobyAiI2RlZmlu ZSBfX0RFQ0xfU0lNRF8ke2Z1bmN9ZiI7IAorICAgICBlY2hvICIjZGVmaW5l IF9fREVDTF9TSU1EXyR7ZnVuY31sIjsKKyAgIGRvbmUgCisgKi8KKworI2lm bmRlZiBfTElCTV9TSU1EX0RFQ0xfU1RVQlNfSAorI2RlZmluZSBfTElCTV9T SU1EX0RFQ0xfU1RVQlNfSCAxCisKKyNkZWZpbmUgX19ERUNMX1NJTURfY29z CisjZGVmaW5lIF9fREVDTF9TSU1EX2Nvc2YKKyNkZWZpbmUgX19ERUNMX1NJ TURfY29zbAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL21hdGgvTWFrZWZpbGUg Yi9tYXRoL01ha2VmaWxlCmluZGV4IDg2NmJjMGYuLjQ5ODEzNTggMTAwNjQ0 Ci0tLSBhL21hdGgvTWFrZWZpbGUKKysrIGIvbWF0aC9NYWtlZmlsZQpAQCAt MjYsNyArMjYsNyBAQCBoZWFkZXJzCQk6PSBtYXRoLmggYml0cy9tYXRoY2Fs bHMuaCBiaXRzL21hdGhpbmxpbmUuaCBiaXRzL2h1Z2VfdmFsLmggXAogCQkg ICBiaXRzL2h1Z2VfdmFsZi5oIGJpdHMvaHVnZV92YWxsLmggYml0cy9pbmYu aCBiaXRzL25hbi5oIFwKIAkJICAgZnB1X2NvbnRyb2wuaCBjb21wbGV4Lmgg Yml0cy9jbWF0aGNhbGxzLmggZmVudi5oIFwKIAkJICAgYml0cy9mZW52Lmgg Yml0cy9mZW52aW5saW5lLmggYml0cy9tYXRoZGVmLmggdGdtYXRoLmggXAot CQkgICBiaXRzL21hdGgtZmluaXRlLmgKKwkJICAgYml0cy9tYXRoLWZpbml0 ZS5oIGJpdHMvbWF0aC12ZWN0b3IuaCBsaWJtLXNpbWQtZGVjbC1zdHVicy5o CiAKICMgRlBVIHN1cHBvcnQgY29kZS4KIGF1eAkJOj0gc2V0ZnB1Y3cgZnB1 X2NvbnRyb2wKQEAgLTg1LDYgKzg1LDIyIEBAIGdlbmVyYXRlZCArPSAkKGZv cmVhY2ggcywuYyAuUyBsLmMgbC5TIGYuYyBmLlMsJChjYWxsczpzXyU9bV8l JHMpKQogcm91dGluZXMgPSAkKGNhbGxzKSAkKGNhbGxzOj1mKSAkKGxvbmct Yy0kKGxvbmctZG91YmxlLWZjdHMpKQogbG9uZy1jLXllcyA9ICQoY2FsbHM6 PWwpCiAKK2lmZXEgKCQoYnVpbGQtbWF0aHZlYykseWVzKQorIyBXZSBuZWVk IHRvIGluc3RhbGwgbGlibS5zbyBhcyBsaW5rZXIgc2NyaXB0CisjIGZvciBt b3JlIGNvbWZvcnRhYmxlIHVzZSBvZiB2ZWN0b3IgbWF0aCBsaWJyYXJ5Lgor aW5zdGFsbC1saWItbGRzY3JpcHRzIDo9IGxpYm0uc28KK2luc3RhbGxfc3Vi ZGlyOiAkKGluc3RfbGliZGlyKS9saWJtLnNvCiskKGluc3RfbGliZGlyKS9s aWJtLnNvOiAkKGNvbW1vbi1vYmpwZngpZm9ybWF0LmxkcyBcCisJJChsaWJt KSBcCisJJChjb21tb24tb2JqcGZ4KW1hdGh2ZWMvbGlibXZlYy5zbyQobGli bXZlYy5zby12ZXJzaW9uKSBcCisJJCgrZm9yY2UpCisJKGVjaG8gJy8qIEdO VSBsZCBzY3JpcHQnOyBlY2hvICcqLyc7XAorCWNhdCAkPDsgXAorCWVjaG8g J0dST1VQICggJChzbGliZGlyKS9saWJtLnNvJChsaWJtLnNvLXZlcnNpb24p ICcgXAorCSdBU19ORUVERUQgKCAkKHNsaWJkaXIpL2xpYm12ZWMuc28kKGxp Ym12ZWMuc28tdmVyc2lvbikgKSApJyBcCisJKSA+ICRACitlbmRpZgorCiAj IFJ1bGVzIGZvciB0aGUgdGVzdCBzdWl0ZS4KIHRlc3RzID0gdGVzdC1tYXRo ZXJyIHRlc3QtZmVudiBhdGVzdC1leHAgYXRlc3Qtc2luY29zIGF0ZXN0LWV4 cDIgYmFzaWMtdGVzdCBcCiAJdGVzdC1taXNjIHRlc3QtZnB1Y3cgdGVzdC1m cHVjdy1pZWVlIHRzdC1kZWZpbml0aW9ucyB0ZXN0LXRnbWF0aCBcCkBAIC05 NywxMiArMTEzLDEzIEBAIHRlc3RzLXN0YXRpYyA9IHRlc3QtZnB1Y3ctc3Rh dGljIHRlc3QtZnB1Y3ctaWVlZS1zdGF0aWMKIHRlc3QtbG9uZ2RvdWJsZS15 ZXMgPSB0ZXN0LWxkb3VibGUgdGVzdC1pbGRvdWJsCiAKIGlmbmVxIChubywk KFBFUkwpKQorbGlibS12ZWMtdGVzdHMgPSAkKGFkZHByZWZpeCB0ZXN0LSwk KGxpYm12ZWMtdGVzdHMpKQogbGlibS10ZXN0cyA9IHRlc3QtZmxvYXQgdGVz dC1kb3VibGUgJCh0ZXN0LWxvbmdkb3VibGUtJChsb25nLWRvdWJsZS1mY3Rz KSkgXAotCXRlc3QtaWZsb2F0IHRlc3QtaWRvdWJsZQorCXRlc3QtaWZsb2F0 IHRlc3QtaWRvdWJsZSAkKGxpYm0tdmVjLXRlc3RzKQogbGlibS10ZXN0cy5v ID0gJChhZGRzdWZmaXggLm8sJChsaWJtLXRlc3RzKSkKIAogdGVzdHMgKz0g JChsaWJtLXRlc3RzKQotbGlibS10ZXN0cy1nZW5lcmF0ZWQgPSBsaWJtLXRl c3QtdWxwcy5oIGxpYm0tdGVzdC5jCitsaWJtLXRlc3RzLWdlbmVyYXRlZCA9 IGxpYm0tdGVzdC11bHBzLmggbGlibS1oYXZlLXZlY3Rvci10ZXN0LmggbGli bS10ZXN0LmMKIGdlbmVyYXRlZCArPSAkKGxpYm0tdGVzdHMtZ2VuZXJhdGVk KSBsaWJtLXRlc3Quc3RtcAogCiAjIFRoaXMgaXMgbmVlZGVkIGZvciBkZXBl bmRlbmNpZXMKQEAgLTExMyw5ICsxMzAsMTAgQEAgdWxwcy1maWxlID0gJChm aXJzdHdvcmQgJCh3aWxkY2FyZCAkKHN5c2RpcnM6JT0lL2xpYm0tdGVzdC11 bHBzKSkpCiAkKGFkZHByZWZpeCAkKG9ianBmeCksICQobGlibS10ZXN0cy1n ZW5lcmF0ZWQpKTogJChvYmpwZngpbGlibS10ZXN0LnN0bXAKIAogJChvYmpw ZngpbGlibS10ZXN0LnN0bXA6ICQodWxwcy1maWxlKSBsaWJtLXRlc3QuaW5j IGdlbi1saWJtLXRlc3QucGwgXAotCQkJIGF1dG8tbGlibS10ZXN0LW91dAor CQkJIGdlbi1saWJtLWhhdmUtdmVjdG9yLXRlc3Quc2ggYXV0by1saWJtLXRl c3Qtb3V0CiAJJChtYWtlLXRhcmdldC1kaXJlY3RvcnkpCiAJJChQRVJMKSBn ZW4tbGlibS10ZXN0LnBsIC11ICQ8IC1vICIkKG9ianBmeCkiCisJJChCQVNI KSBnZW4tbGlibS1oYXZlLXZlY3Rvci10ZXN0LnNoID4gJChvYmpwZngpbGli bS1oYXZlLXZlY3Rvci10ZXN0LmgKIAlAZWNobyA+ICRACiAKICQob2JqcGZ4 KXRlc3QtZmxvYXQubzogJChvYmpwZngpbGlibS10ZXN0LnN0bXAKQEAgLTEy NCw4ICsxNDIsMjIgQEAgJChvYmpwZngpdGVzdC1kb3VibGUubzogJChvYmpw ZngpbGlibS10ZXN0LnN0bXAKICQob2JqcGZ4KXRlc3QtaWRvdWJsZS5vOiAk KG9ianBmeClsaWJtLXRlc3Quc3RtcAogJChvYmpwZngpdGVzdC1sZG91Ymxl Lm86ICQob2JqcGZ4KWxpYm0tdGVzdC5zdG1wCiAkKG9ianBmeCl0ZXN0LWls ZG91YmwubzogJChvYmpwZngpbGlibS10ZXN0LnN0bXAKKworJChvYmpwZngp dGVzdC1kb3VibGUtdmxlbjIubzogJChvYmpwZngpbGlibS10ZXN0LnN0bXAK KyQob2JqcGZ4KXRlc3QtZG91YmxlLXZsZW40Lm86ICQob2JqcGZ4KWxpYm0t dGVzdC5zdG1wCisKKyQob2JqcGZ4KXRlc3QtZG91YmxlLXZsZW4yOiAkKGNv bW1vbi1vYmpwZngpbWF0aHZlYy9saWJtdmVjLnNvIFwKKwkJCSAgICAkKG9i anBmeClpbml0LWFyY2gubworJChvYmpwZngpdGVzdC1kb3VibGUtdmxlbjQ6 ICQoY29tbW9uLW9ianBmeCltYXRodmVjL2xpYm12ZWMuc28gXAorCQkJICAg ICQob2JqcGZ4KWluaXQtYXJjaC5vCiBlbmRpZgogCitDRkxBR1MtdGVzdC1k b3VibGUtdmxlbjIuYyA9IC1mbm8taW5saW5lIC1mZmxvYXQtc3RvcmUgLWZu by1idWlsdGluIC1mcm91bmRpbmctbWF0aCBcCisJCQkgICAgIC1EX19GQVNU X01BVEhfXyAtRFRFU1RfRkFTVF9NQVRIIC1EX09QRU5NUD0yMDEzMDcgXAor CQkJICAgICAtV25vLXVua25vd24tcHJhZ21hcworQ0ZMQUdTLXRlc3QtZG91 YmxlLXZsZW40LmMgPSAtZm5vLWlubGluZSAtZmZsb2F0LXN0b3JlIC1mbm8t YnVpbHRpbiAtZnJvdW5kaW5nLW1hdGggXAorCQkJICAgICAtRF9fRkFTVF9N QVRIX18gLURURVNUX0ZBU1RfTUFUSCAtRF9PUEVOTVA9MjAxMzA3IFwKKwkJ CSAgICAgLVduby11bmtub3duLXByYWdtYXMgJChhcmNoLWV4dC1jZmxhZ3Mp CiBDRkxBR1MtdGVzdC1mbG9hdC5jID0gLWZuby1pbmxpbmUgLWZmbG9hdC1z dG9yZSAtZm5vLWJ1aWx0aW4gLWZyb3VuZGluZy1tYXRoCiBDRkxBR1MtdGVz dC1kb3VibGUuYyA9IC1mbm8taW5saW5lIC1mZmxvYXQtc3RvcmUgLWZuby1i dWlsdGluIC1mcm91bmRpbmctbWF0aAogQ0ZMQUdTLXRlc3QtbGRvdWJsZS5j ID0gLWZuby1pbmxpbmUgLWZmbG9hdC1zdG9yZSAtZm5vLWJ1aWx0aW4gLWZy b3VuZGluZy1tYXRoCmRpZmYgLS1naXQgYS9tYXRoL2JpdHMvbWF0aGNhbGxz LmggYi9tYXRoL2JpdHMvbWF0aGNhbGxzLmgKaW5kZXggOGE5NGE3ZS4uODI5 MjhhMSAxMDA2NDQKLS0tIGEvbWF0aC9iaXRzL21hdGhjYWxscy5oCisrKyBi L21hdGgvYml0cy9tYXRoY2FsbHMuaApAQCAtNjAsNyArNjAsNyBAQCBfX01B VEhDQUxMIChhdGFuLCwgKF9NZG91YmxlXyBfX3gpKTsKIF9fTUFUSENBTEwg KGF0YW4yLCwgKF9NZG91YmxlXyBfX3ksIF9NZG91YmxlXyBfX3gpKTsKIAog LyogQ29zaW5lIG9mIFguICAqLwotX19NQVRIQ0FMTCAoY29zLCwgKF9NZG91 YmxlXyBfX3gpKTsKK19fTUFUSENBTExfVkVDIChjb3MsLCAoX01kb3VibGVf IF9feCkpOwogLyogU2luZSBvZiBYLiAgKi8KIF9fTUFUSENBTEwgKHNpbiws IChfTWRvdWJsZV8gX194KSk7CiAvKiBUYW5nZW50IG9mIFguICAqLwpkaWZm IC0tZ2l0IGEvbWF0aC9nZW4tbGlibS1oYXZlLXZlY3Rvci10ZXN0LnNoIGIv bWF0aC9nZW4tbGlibS1oYXZlLXZlY3Rvci10ZXN0LnNoCm5ldyBmaWxlIG1v ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1YzdiZWYKLS0tIC9kZXYvbnVs bAorKysgYi9tYXRoL2dlbi1saWJtLWhhdmUtdmVjdG9yLXRlc3Quc2gKQEAg LTAsMCArMSw0OCBAQAorIyEvYmluL3NoCisjIENvcHlyaWdodCAoQykgMTk5 OS0yMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworIyBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKKyMgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhlIEdO VSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsg aWYgbm90LCBzZWUKKyMgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorCisjIEdlbmVyYXRlIHNlcmllcyBvZiBkZWZpbml0aW9ucyB1c2VkIGZv ciB2ZWN0b3IgbWF0aCBmdW5jdGlvbnMgdGVzdHMuCitwcmludF9kZWZzKCkK K3sKKyAgZWNobyAiI2lmIGRlZmluZWQgVEVTVF9WRUNUT1JfJDEgJiYgVEVT VF9WRUNUT1JfJDEiCisgIGVjaG8gIiMgZGVmaW5lIEhBVkVfVkVDVE9SXyQx IDEiCisgIGVjaG8gIiMgZGVmaW5lIFZFQ19QUkVGSVhfJDEgV1JBUFBFUl9O QU1FKCQxKSIKKyAgZWNobyAiI2Vsc2UiCisgIGVjaG8gIiMgZGVmaW5lIEhB VkVfVkVDVE9SXyQxIDAiCisgIGVjaG8gIiMgZGVmaW5lIFZFQ19QUkVGSVhf JDEgJDEiCisgIGVjaG8gIiNlbmRpZiIKKyAgZWNobworfQorCitmb3IgZnVu YyBpbiAkKGdyZXAgQUxMX1JNX1RFU1QgbGlibS10ZXN0LmluYyB8IGdyZXAg LXYgZGVmaW5lIHwgc2VkIC1yICJzLy4qXCgvLzsgcy8sLiovLyIpOyBkbyAK KyAgcHJpbnRfZGVmcyAke2Z1bmN9CisgIHByaW50X2RlZnMgJHtmdW5jfWYK KyAgcHJpbnRfZGVmcyAke2Z1bmN9bAorZG9uZQorCitwcmludF9kZWZzIGpu CitwcmludF9kZWZzIGpuZgorcHJpbnRfZGVmcyBqbmwKKworcHJpbnRfZGVm cyBjZXhwCitwcmludF9kZWZzIGNleHBmCitwcmludF9kZWZzIGNleHBsCisK K3ByaW50X2RlZnMgdGdhbW1hCitwcmludF9kZWZzIHRnYW1tYWYKK3ByaW50 X2RlZnMgdGdhbW1hbApkaWZmIC0tZ2l0IGEvbWF0aC9saWJtLXRlc3QuaW5j IGIvbWF0aC9saWJtLXRlc3QuaW5jCmluZGV4IGY4NmE0ZmEuLmIyMmJiYWQg MTAwNjQ0Ci0tLSBhL21hdGgvbGlibS10ZXN0LmluYworKysgYi9tYXRoL2xp Ym0tdGVzdC5pbmMKQEAgLTY3OCwxMyArNjc4LDE3IEBAIHRlc3RfZXhjZXB0 aW9ucyAoY29uc3QgY2hhciAqdGVzdF9uYW1lLCBpbnQgZXhjZXB0aW9uKQog ICBmZWNsZWFyZXhjZXB0IChGRV9BTExfRVhDRVBUKTsKIH0KIAorI2lmbmRl ZiBURVNUX01BVEhWRUMKKyMgZGVmaW5lIFRFU1RfTUFUSFZFQyAwCisjZW5k aWYKKwogLyogVGVzdCB3aGV0aGVyIGVycm5vIGZvciBURVNUX05BTUUsIHNl dCB0byBFUlJOT19WQUxVRSwgaGFzIHZhbHVlCiAgICBFWFBFQ1RFRF9WQUxV RSAoZGVzY3JpcHRpb24gRVhQRUNURURfTkFNRSkuICAqLwogc3RhdGljIHZv aWQKIHRlc3Rfc2luZ2xlX2Vycm5vIChjb25zdCBjaGFyICp0ZXN0X25hbWUs IGludCBlcnJub192YWx1ZSwKIAkJICAgaW50IGV4cGVjdGVkX3ZhbHVlLCBj b25zdCBjaGFyICpleHBlY3RlZF9uYW1lKQogewotI2lmbmRlZiBURVNUX0lO TElORQorI2lmICFkZWZpbmVkIFRFU1RfSU5MSU5FICYmICFURVNUX01BVEhW RUMKICAgaWYgKGVycm5vX3ZhbHVlID09IGV4cGVjdGVkX3ZhbHVlKQogICAg IHsKICAgICAgIGlmIChwcmludF9zY3JlZW4gKDEpKQpAQCAtMTI5NSwxNiAr MTI5OSwxNyBAQCBzdHJ1Y3QgdGVzdF9mRkZfMTFfZGF0YQogCiAvKiBSdW4g YW4gaW5kaXZpZHVhbCB0ZXN0LCBpbmNsdWRpbmcgYW55IHJlcXVpcmVkIHNl dHVwIGFuZCBjaGVja2luZwogICAgb2YgcmVzdWx0cywgb3IgbG9vcCBvdmVy IGFsbCB0ZXN0cyBpbiBhbiBhcnJheS4gICovCi0jZGVmaW5lIFJVTl9URVNU X2ZfZihBUkdfU1RSLCBGVU5DX05BTUUsIEFSRywgRVhQRUNURUQsCQkJXAot CQkgICAgIEVYQ0VQVElPTlMpCQkJCQlcCi0gIGRvCQkJCQkJCQkJXAotICAg IGlmIChlbmFibGVfdGVzdCAoRVhDRVBUSU9OUykpCQkJCQlcCi0gICAgICB7 CQkJCQkJCQkJXAotCUNPTU1PTl9URVNUX1NFVFVQIChBUkdfU1RSKTsJCQkJ CVwKLQljaGVja19mbG9hdCAodGVzdF9uYW1lLCBGVU5DIChGVU5DX05BTUUp IChBUkcpLCBFWFBFQ1RFRCwJXAotCQkgICAgIEVYQ0VQVElPTlMpOwkJCQkJ XAotCUNPTU1PTl9URVNUX0NMRUFOVVA7CQkJCQkJXAotICAgICAgfQkJCQkJ CQkJCVwKKyNkZWZpbmUgUlVOX1RFU1RfZl9mKEFSR19TVFIsIEZVTkNfTkFN RSwgQVJHLCBFWFBFQ1RFRCwJCVwKKwkJICAgICBFWENFUFRJT05TKQkJCQlc CisgIGRvCQkJCQkJCQlcCisgICAgaWYgKGVuYWJsZV90ZXN0IChFWENFUFRJ T05TKSkJCQkJXAorICAgICAgewkJCQkJCQkJXAorCUNPTU1PTl9URVNUX1NF VFVQIChBUkdfU1RSKTsJCQkJXAorCWNoZWNrX2Zsb2F0ICh0ZXN0X25hbWUs CUZVTkNfVEVTVCAoRlVOQ19OQU1FKSAoQVJHKSwJXAorCQkgICAgIEVYUEVD VEVELAkJCQkJXAorCQkgICAgIEVYQ0VQVElPTlMpOwkJCQlcCisJQ09NTU9O X1RFU1RfQ0xFQU5VUDsJCQkJCVwKKyAgICAgIH0JCQkJCQkJCVwKICAgd2hp bGUgKDApCiAjZGVmaW5lIFJVTl9URVNUX0xPT1BfZl9mKEZVTkNfTkFNRSwg QVJSQVksIFJPVU5ESU5HX01PREUpCQlcCiAgIElGX1JPVU5EX0lOSVRfICMj IFJPVU5ESU5HX01PREUJCQkJCVwKQEAgLTEzMTMsMTYgKzEzMTgsMTYgQEAg c3RydWN0IHRlc3RfZkZGXzExX2RhdGEKIAkJICAgIChBUlJBWSlbaV0uUk1f IyNST1VORElOR19NT0RFLmV4cGVjdGVkLAkJXAogCQkgICAgKEFSUkFZKVtp XS5STV8jI1JPVU5ESU5HX01PREUuZXhjZXB0aW9ucyk7CQlcCiAgIFJPVU5E X1JFU1RPUkVfICMjIFJPVU5ESU5HX01PREUKLSNkZWZpbmUgUlVOX1RFU1Rf Ml9mKEFSR19TVFIsIEZVTkNfTkFNRSwgQVJHMSwgQVJHMiwgRVhQRUNURUQs CVwKLQkJICAgICBFWENFUFRJT05TKQkJCQlcCi0gIGRvCQkJCQkJCQlcCi0g ICAgaWYgKGVuYWJsZV90ZXN0IChFWENFUFRJT05TKSkJCQkJXAotICAgICAg ewkJCQkJCQkJXAotCUNPTU1PTl9URVNUX1NFVFVQIChBUkdfU1RSKTsJCQkJ XAotCWNoZWNrX2Zsb2F0ICh0ZXN0X25hbWUsIEZVTkMgKEZVTkNfTkFNRSkg KEFSRzEsIEFSRzIpLAlcCi0JCSAgICAgRVhQRUNURUQsIEVYQ0VQVElPTlMp OwkJCVwKLQlDT01NT05fVEVTVF9DTEVBTlVQOwkJCQkJXAotICAgICAgfQkJ CQkJCQkJXAorI2RlZmluZSBSVU5fVEVTVF8yX2YoQVJHX1NUUiwgRlVOQ19O QU1FLCBBUkcxLCBBUkcyLCBFWFBFQ1RFRCwJCVwKKwkJICAgICBFWENFUFRJ T05TKQkJCQkJXAorICBkbwkJCQkJCQkJCVwKKyAgICBpZiAoZW5hYmxlX3Rl c3QgKEVYQ0VQVElPTlMpKQkJCQkJXAorICAgICAgewkJCQkJCQkJCVwKKwlD T01NT05fVEVTVF9TRVRVUCAoQVJHX1NUUik7CQkJCQlcCisJY2hlY2tfZmxv YXQgKHRlc3RfbmFtZSwgRlVOQ19URVNUIChGVU5DX05BTUUpIChBUkcxLCBB UkcyKSwJXAorCQkgICAgIEVYUEVDVEVELCBFWENFUFRJT05TKTsJCQkJXAor CUNPTU1PTl9URVNUX0NMRUFOVVA7CQkJCQkJXAorICAgICAgfQkJCQkJCQkJ CVwKICAgd2hpbGUgKDApCiAjZGVmaW5lIFJVTl9URVNUX0xPT1BfMl9mKEZV TkNfTkFNRSwgQVJSQVksIFJPVU5ESU5HX01PREUpCQlcCiAgIElGX1JPVU5E X0lOSVRfICMjIFJPVU5ESU5HX01PREUJCQkJCVwKQEAgLTEzNDAsMTYgKzEz NDUsMTYgQEAgc3RydWN0IHRlc3RfZkZGXzExX2RhdGEKICNkZWZpbmUgUlVO X1RFU1RfTE9PUF9mbF9mIFJVTl9URVNUX0xPT1BfMl9mCiAjZGVmaW5lIFJV Tl9URVNUX2lmX2YgUlVOX1RFU1RfMl9mCiAjZGVmaW5lIFJVTl9URVNUX0xP T1BfaWZfZiBSVU5fVEVTVF9MT09QXzJfZgotI2RlZmluZSBSVU5fVEVTVF9m ZmZfZihBUkdfU1RSLCBGVU5DX05BTUUsIEFSRzEsIEFSRzIsIEFSRzMsCQlc Ci0JCSAgICAgICBFWFBFQ1RFRCwgRVhDRVBUSU9OUykJCQkJXAotICBkbwkJ CQkJCQkJCVwKLSAgICBpZiAoZW5hYmxlX3Rlc3QgKEVYQ0VQVElPTlMpKQkJ CQkJXAotICAgICAgewkJCQkJCQkJCVwKLQlDT01NT05fVEVTVF9TRVRVUCAo QVJHX1NUUik7CQkJCQlcCi0JY2hlY2tfZmxvYXQgKHRlc3RfbmFtZSwgRlVO QyAoRlVOQ19OQU1FKSAoQVJHMSwgQVJHMiwgQVJHMyksCVwKLQkJICAgICBF WFBFQ1RFRCwgRVhDRVBUSU9OUyk7CQkJCVwKLQlDT01NT05fVEVTVF9DTEVB TlVQOwkJCQkJCVwKLSAgICAgIH0JCQkJCQkJCQlcCisjZGVmaW5lIFJVTl9U RVNUX2ZmZl9mKEFSR19TVFIsIEZVTkNfTkFNRSwgQVJHMSwgQVJHMiwgQVJH MywJCQlcCisJCSAgICAgICBFWFBFQ1RFRCwgRVhDRVBUSU9OUykJCQkJCVwK KyAgZG8JCQkJCQkJCQkJXAorICAgIGlmIChlbmFibGVfdGVzdCAoRVhDRVBU SU9OUykpCQkJCQkJXAorICAgICAgewkJCQkJCQkJCQlcCisJQ09NTU9OX1RF U1RfU0VUVVAgKEFSR19TVFIpOwkJCQkJCVwKKwljaGVja19mbG9hdCAodGVz dF9uYW1lLCBGVU5DX1RFU1QgKEZVTkNfTkFNRSkgKEFSRzEsIEFSRzIsIEFS RzMpLAlcCisJCSAgICAgRVhQRUNURUQsIEVYQ0VQVElPTlMpOwkJCQkJXAor CUNPTU1PTl9URVNUX0NMRUFOVVA7CQkJCQkJCVwKKyAgICAgIH0JCQkJCQkJ CQkJXAogICB3aGlsZSAoMCkKICNkZWZpbmUgUlVOX1RFU1RfTE9PUF9mZmZf ZihGVU5DX05BTUUsIEFSUkFZLCBST1VORElOR19NT0RFKQkJXAogICBJRl9S T1VORF9JTklUXyAjIyBST1VORElOR19NT0RFCQkJCQlcCkBAIC0xMzU5LDE3 ICsxMzY0LDE3IEBAIHN0cnVjdCB0ZXN0X2ZGRl8xMV9kYXRhCiAJCSAgICAg IChBUlJBWSlbaV0uUk1fIyNST1VORElOR19NT0RFLmV4cGVjdGVkLAkJXAog CQkgICAgICAoQVJSQVkpW2ldLlJNXyMjUk9VTkRJTkdfTU9ERS5leGNlcHRp b25zKTsJXAogICBST1VORF9SRVNUT1JFXyAjIyBST1VORElOR19NT0RFCi0j ZGVmaW5lIFJVTl9URVNUX2NfZihBUkdfU1RSLCBGVU5DX05BTUUsIEFSRzEs IEFSRzIsIEVYUEVDVEVELAkJXAotCQkgICAgIEVYQ0VQVElPTlMpCQkJCQlc Ci0gIGRvCQkJCQkJCQkJXAotICAgIGlmIChlbmFibGVfdGVzdCAoRVhDRVBU SU9OUykpCQkJCQlcCi0gICAgICB7CQkJCQkJCQkJXAotCUNPTU1PTl9URVNU X1NFVFVQIChBUkdfU1RSKTsJCQkJCVwKLQljaGVja19mbG9hdCAodGVzdF9u YW1lLAkJCQkJCVwKLQkJICAgICBGVU5DIChGVU5DX05BTUUpIChCVUlMRF9D T01QTEVYIChBUkcxLCBBUkcyKSksCVwKLQkJICAgICBFWFBFQ1RFRCwgRVhD RVBUSU9OUyk7CQkJCVwKLQlDT01NT05fVEVTVF9DTEVBTlVQOwkJCQkJCVwK LSAgICAgIH0JCQkJCQkJCQlcCisjZGVmaW5lIFJVTl9URVNUX2NfZihBUkdf U1RSLCBGVU5DX05BTUUsIEFSRzEsIEFSRzIsIEVYUEVDVEVELAkJCVwKKwkJ ICAgICBFWENFUFRJT05TKQkJCQkJCVwKKyAgZG8JCQkJCQkJCQkJXAorICAg IGlmIChlbmFibGVfdGVzdCAoRVhDRVBUSU9OUykpCQkJCQkJXAorICAgICAg ewkJCQkJCQkJCQlcCisJQ09NTU9OX1RFU1RfU0VUVVAgKEFSR19TVFIpOwkJ CQkJCVwKKwljaGVja19mbG9hdCAodGVzdF9uYW1lLAkJCQkJCQlcCisJCSAg ICAgRlVOQ19URVNUIChGVU5DX05BTUUpIChCVUlMRF9DT01QTEVYIChBUkcx LCBBUkcyKSksCVwKKwkJICAgICBFWFBFQ1RFRCwgRVhDRVBUSU9OUyk7CQkJ CQlcCisJQ09NTU9OX1RFU1RfQ0xFQU5VUDsJCQkJCQkJXAorICAgICAgfQkJ CQkJCQkJCQlcCiAgIHdoaWxlICgwKQogI2RlZmluZSBSVU5fVEVTVF9MT09Q X2NfZihGVU5DX05BTUUsIEFSUkFZLCBST1VORElOR19NT0RFKQkJXAogICBJ Rl9ST1VORF9JTklUXyAjIyBST1VORElOR19NT0RFCQkJCQlcCkBAIC0xMzg3 LDcgKzEzOTIsNyBAQCBzdHJ1Y3QgdGVzdF9mRkZfMTFfZGF0YQogICAgICAg ewkJCQkJCQkJCVwKIAlDT01NT05fVEVTVF9TRVRVUCAoQVJHX1NUUik7CQkJ CQlcCiAJKEVYVFJBX1ZBUikgPSAoRVhUUkFfRVhQRUNURUQpID09IDAgPyAx IDogMDsJCQlcCi0JY2hlY2tfZmxvYXQgKHRlc3RfbmFtZSwgRlVOQyAoRlVO Q19OQU1FKSAoQVJHKSwgRVhQRUNURUQsCVwKKwljaGVja19mbG9hdCAodGVz dF9uYW1lLCBGVU5DX1RFU1QgKEZVTkNfTkFNRSkgKEFSRyksIEVYUEVDVEVE LAlcCiAJCSAgICAgRVhDRVBUSU9OUyk7CQkJCQlcCiAJRVhUUkFfT1VUUFVU X1RFU1RfU0VUVVAgKEFSR19TVFIsIDEpOwkJCQlcCiAJaWYgKEVYVFJBX1RF U1QpCQkJCQkJCVwKQEAgLTE0MDYsMjIgKzE0MTEsMjIgQEAgc3RydWN0IHRl c3RfZkZGXzExX2RhdGEKIAkJICAgICAoQVJSQVkpW2ldLlJNXyMjUk9VTkRJ TkdfTU9ERS5leHRyYV90ZXN0LAkJXAogCQkgICAgIChBUlJBWSlbaV0uUk1f IyNST1VORElOR19NT0RFLmV4dHJhX2V4cGVjdGVkKTsJXAogICBST1VORF9S RVNUT1JFXyAjIyBST1VORElOR19NT0RFCi0jZGVmaW5lIFJVTl9URVNUX2ZG X2YxKEFSR19TVFIsIEZVTkNfTkFNRSwgQVJHLCBFWFBFQ1RFRCwJCVwKLQkJ ICAgICAgIEVYQ0VQVElPTlMsIEVYVFJBX1ZBUiwgRVhUUkFfVEVTVCwJCVwK LQkJICAgICAgIEVYVFJBX0VYUEVDVEVEKQkJCQkJXAotICBkbwkJCQkJCQkJ CVwKLSAgICBpZiAoZW5hYmxlX3Rlc3QgKEVYQ0VQVElPTlMpKQkJCQkJXAot ICAgICAgewkJCQkJCQkJCVwKLQlDT01NT05fVEVTVF9TRVRVUCAoQVJHX1NU Uik7CQkJCQlcCi0JKEVYVFJBX1ZBUikgPSAoRVhUUkFfRVhQRUNURUQpID09 IDAgPyAxIDogMDsJCQlcCi0JY2hlY2tfZmxvYXQgKHRlc3RfbmFtZSwgRlVO QyAoRlVOQ19OQU1FKSAoQVJHLCAmKEVYVFJBX1ZBUikpLAlcCi0JCSAgICAg RVhQRUNURUQsIEVYQ0VQVElPTlMpOwkJCQlcCi0JRVhUUkFfT1VUUFVUX1RF U1RfU0VUVVAgKEFSR19TVFIsIDEpOwkJCQlcCi0JaWYgKEVYVFJBX1RFU1Qp CQkJCQkJCVwKLQkgIGNoZWNrX2Zsb2F0IChleHRyYTFfbmFtZSwgRVhUUkFf VkFSLCBFWFRSQV9FWFBFQ1RFRCwgMCk7CVwKLQlFWFRSQV9PVVRQVVRfVEVT VF9DTEVBTlVQICgxKTsJCQkJCVwKLQlDT01NT05fVEVTVF9DTEVBTlVQOwkJ CQkJCVwKLSAgICAgIH0JCQkJCQkJCQlcCisjZGVmaW5lIFJVTl9URVNUX2ZG X2YxKEFSR19TVFIsIEZVTkNfTkFNRSwgQVJHLCBFWFBFQ1RFRCwJCQlcCisJ CSAgICAgICBFWENFUFRJT05TLCBFWFRSQV9WQVIsIEVYVFJBX1RFU1QsCQkJ XAorCQkgICAgICAgRVhUUkFfRVhQRUNURUQpCQkJCQkJXAorICBkbwkJCQkJ CQkJCQlcCisgICAgaWYgKGVuYWJsZV90ZXN0IChFWENFUFRJT05TKSkJCQkJ CQlcCisgICAgICB7CQkJCQkJCQkJCVwKKwlDT01NT05fVEVTVF9TRVRVUCAo QVJHX1NUUik7CQkJCQkJXAorCShFWFRSQV9WQVIpID0gKEVYVFJBX0VYUEVD VEVEKSA9PSAwID8gMSA6IDA7CQkJCVwKKwljaGVja19mbG9hdCAodGVzdF9u YW1lLCBGVU5DX1RFU1QgKEZVTkNfTkFNRSkgKEFSRywgJihFWFRSQV9WQVIp KSwJXAorCQkgICAgIEVYUEVDVEVELCBFWENFUFRJT05TKTsJCQkJCVwKKwlF WFRSQV9PVVRQVVRfVEVTVF9TRVRVUCAoQVJHX1NUUiwgMSk7CQkJCQlcCisJ aWYgKEVYVFJBX1RFU1QpCQkJCQkJCQlcCisJICBjaGVja19mbG9hdCAoZXh0 cmExX25hbWUsIEVYVFJBX1ZBUiwgRVhUUkFfRVhQRUNURUQsIDApOwkJXAor CUVYVFJBX09VVFBVVF9URVNUX0NMRUFOVVAgKDEpOwkJCQkJCVwKKwlDT01N T05fVEVTVF9DTEVBTlVQOwkJCQkJCQlcCisgICAgICB9CQkJCQkJCQkJCVwK ICAgd2hpbGUgKDApCiAjZGVmaW5lIFJVTl9URVNUX0xPT1BfZkZfZjEoRlVO Q19OQU1FLCBBUlJBWSwgUk9VTkRJTkdfTU9ERSwgRVhUUkFfVkFSKQlcCiAg IElGX1JPVU5EX0lOSVRfICMjIFJPVU5ESU5HX01PREUJCQkJCVwKQEAgLTE0 MzMsMjIgKzE0MzgsMjIgQEAgc3RydWN0IHRlc3RfZkZGXzExX2RhdGEKIAkJ ICAgICAgKEFSUkFZKVtpXS5STV8jI1JPVU5ESU5HX01PREUuZXh0cmFfdGVz dCwJCVwKIAkJICAgICAgKEFSUkFZKVtpXS5STV8jI1JPVU5ESU5HX01PREUu ZXh0cmFfZXhwZWN0ZWQpOwlcCiAgIFJPVU5EX1JFU1RPUkVfICMjIFJPVU5E SU5HX01PREUKLSNkZWZpbmUgUlVOX1RFU1RfZklfZjEoQVJHX1NUUiwgRlVO Q19OQU1FLCBBUkcsIEVYUEVDVEVELAkJXAotCQkgICAgICAgRVhDRVBUSU9O UywgRVhUUkFfVkFSLCBFWFRSQV9URVNULAkJXAotCQkgICAgICAgRVhUUkFf RVhQRUNURUQpCQkJCQlcCi0gIGRvCQkJCQkJCQkJXAotICAgIGlmIChlbmFi bGVfdGVzdCAoRVhDRVBUSU9OUykpCQkJCQlcCi0gICAgICB7CQkJCQkJCQkJ XAotCUNPTU1PTl9URVNUX1NFVFVQIChBUkdfU1RSKTsJCQkJCVwKLQkoRVhU UkFfVkFSKSA9IChFWFRSQV9FWFBFQ1RFRCkgPT0gMCA/IDEgOiAwOwkJCVwK LQljaGVja19mbG9hdCAodGVzdF9uYW1lLCBGVU5DIChGVU5DX05BTUUpIChB UkcsICYoRVhUUkFfVkFSKSksCVwKLQkJICAgICBFWFBFQ1RFRCwgRVhDRVBU SU9OUyk7CQkJCVwKLQlFWFRSQV9PVVRQVVRfVEVTVF9TRVRVUCAoQVJHX1NU UiwgMSk7CQkJCVwKLQlpZiAoRVhUUkFfVEVTVCkJCQkJCQkJXAotCSAgY2hl Y2tfaW50IChleHRyYTFfbmFtZSwgRVhUUkFfVkFSLCBFWFRSQV9FWFBFQ1RF RCwgMCk7CVwKLQlFWFRSQV9PVVRQVVRfVEVTVF9DTEVBTlVQICgxKTsJCQkJ CVwKLQlDT01NT05fVEVTVF9DTEVBTlVQOwkJCQkJCVwKLSAgICAgIH0JCQkJ CQkJCQlcCisjZGVmaW5lIFJVTl9URVNUX2ZJX2YxKEFSR19TVFIsIEZVTkNf TkFNRSwgQVJHLCBFWFBFQ1RFRCwJCQlcCisJCSAgICAgICBFWENFUFRJT05T LCBFWFRSQV9WQVIsIEVYVFJBX1RFU1QsCQkJXAorCQkgICAgICAgRVhUUkFf RVhQRUNURUQpCQkJCQkJXAorICBkbwkJCQkJCQkJCQlcCisgICAgaWYgKGVu YWJsZV90ZXN0IChFWENFUFRJT05TKSkJCQkJCQlcCisgICAgICB7CQkJCQkJ CQkJCVwKKwlDT01NT05fVEVTVF9TRVRVUCAoQVJHX1NUUik7CQkJCQkJXAor CShFWFRSQV9WQVIpID0gKEVYVFJBX0VYUEVDVEVEKSA9PSAwID8gMSA6IDA7 CQkJCVwKKwljaGVja19mbG9hdCAodGVzdF9uYW1lLCBGVU5DX1RFU1QgKEZV TkNfTkFNRSkgKEFSRywgJihFWFRSQV9WQVIpKSwJXAorCQkgICAgIEVYUEVD VEVELCBFWENFUFRJT05TKTsJCQkJCVwKKwlFWFRSQV9PVVRQVVRfVEVTVF9T RVRVUCAoQVJHX1NUUiwgMSk7CQkJCQlcCisJaWYgKEVYVFJBX1RFU1QpCQkJ CQkJCQlcCisJICBjaGVja19pbnQgKGV4dHJhMV9uYW1lLCBFWFRSQV9WQVIs IEVYVFJBX0VYUEVDVEVELCAwKTsJCVwKKwlFWFRSQV9PVVRQVVRfVEVTVF9D TEVBTlVQICgxKTsJCQkJCQlcCisJQ09NTU9OX1RFU1RfQ0xFQU5VUDsJCQkJ CQkJXAorICAgICAgfQkJCQkJCQkJCQlcCiAgIHdoaWxlICgwKQogI2RlZmlu ZSBSVU5fVEVTVF9MT09QX2ZJX2YxKEZVTkNfTkFNRSwgQVJSQVksIFJPVU5E SU5HX01PREUsIEVYVFJBX1ZBUikJXAogICBJRl9ST1VORF9JTklUXyAjIyBS T1VORElOR19NT0RFCQkJCQlcCkBAIC0xNDY5LDcgKzE0NzQsNyBAQCBzdHJ1 Y3QgdGVzdF9mRkZfMTFfZGF0YQogCUNPTU1PTl9URVNUX1NFVFVQIChBUkdf U1RSKTsJCQkJCVwKIAkoRVhUUkFfVkFSKSA9IChFWFRSQV9FWFBFQ1RFRCkg PT0gMCA/IDEgOiAwOwkJCVwKIAljaGVja19mbG9hdCAodGVzdF9uYW1lLAkJ CQkJCVwKLQkJICAgICBGVU5DIChGVU5DX05BTUUpIChBUkcxLCBBUkcyLCAm KEVYVFJBX1ZBUikpLAlcCisJCSAgICAgRlVOQ19URVNUIChGVU5DX05BTUUp IChBUkcxLCBBUkcyLCAmKEVYVFJBX1ZBUikpLAlcCiAJCSAgICAgRVhQRUNU RUQsIEVYQ0VQVElPTlMpOwkJCQlcCiAJRVhUUkFfT1VUUFVUX1RFU1RfU0VU VVAgKEFSR19TVFIsIDEpOwkJCQlcCiAJaWYgKEVYVFJBX1RFU1QpCQkJCQkJ CVwKQEAgLTE0OTAsMTcgKzE0OTUsMTcgQEAgc3RydWN0IHRlc3RfZkZGXzEx X2RhdGEKIAkJICAgICAgIChBUlJBWSlbaV0uUk1fIyNST1VORElOR19NT0RF LmV4dHJhX3Rlc3QsCVwKIAkJICAgICAgIChBUlJBWSlbaV0uUk1fIyNST1VO RElOR19NT0RFLmV4dHJhX2V4cGVjdGVkKTsJXAogICBST1VORF9SRVNUT1JF XyAjIyBST1VORElOR19NT0RFCi0jZGVmaW5lIFJVTl9URVNUX2NfYyhBUkdf U1RSLCBGVU5DX05BTUUsIEFSR1IsIEFSR0MsIEVYUFIsIEVYUEMsCVwKLQkJ ICAgICBFWENFUFRJT05TKQkJCQkJXAotICBkbwkJCQkJCQkJCVwKLSAgICBp ZiAoZW5hYmxlX3Rlc3QgKEVYQ0VQVElPTlMpKQkJCQkJXAotICAgICAgewkJ CQkJCQkJCVwKLQlDT01NT05fVEVTVF9TRVRVUCAoQVJHX1NUUik7CQkJCQlc Ci0JY2hlY2tfY29tcGxleCAodGVzdF9uYW1lLAkJCQkJXAotCQkgICAgICAg RlVOQyAoRlVOQ19OQU1FKSAoQlVJTERfQ09NUExFWCAoQVJHUiwgQVJHQykp LAlcCi0JCSAgICAgICBCVUlMRF9DT01QTEVYIChFWFBSLCBFWFBDKSwgRVhD RVBUSU9OUyk7CQlcCi0JQ09NTU9OX1RFU1RfQ0xFQU5VUDsJCQkJCQlcCi0g ICAgICB9CQkJCQkJCQkJXAorI2RlZmluZSBSVU5fVEVTVF9jX2MoQVJHX1NU UiwgRlVOQ19OQU1FLCBBUkdSLCBBUkdDLCBFWFBSLCBFWFBDLAkJXAorCQkg ICAgIEVYQ0VQVElPTlMpCQkJCQkJXAorICBkbwkJCQkJCQkJCQlcCisgICAg aWYgKGVuYWJsZV90ZXN0IChFWENFUFRJT05TKSkJCQkJCQlcCisgICAgICB7 CQkJCQkJCQkJCVwKKwlDT01NT05fVEVTVF9TRVRVUCAoQVJHX1NUUik7CQkJ CQkJXAorCWNoZWNrX2NvbXBsZXggKHRlc3RfbmFtZSwJCQkJCQlcCisJCSAg ICAgICBGVU5DX1RFU1QgKEZVTkNfTkFNRSkgKEJVSUxEX0NPTVBMRVggKEFS R1IsIEFSR0MpKSwJXAorCQkgICAgICAgQlVJTERfQ09NUExFWCAoRVhQUiwg RVhQQyksIEVYQ0VQVElPTlMpOwkJCVwKKwlDT01NT05fVEVTVF9DTEVBTlVQ OwkJCQkJCQlcCisgICAgICB9CQkJCQkJCQkJCVwKICAgd2hpbGUgKDApCiAj ZGVmaW5lIFJVTl9URVNUX0xPT1BfY19jKEZVTkNfTkFNRSwgQVJSQVksIFJP VU5ESU5HX01PREUpCQlcCiAgIElGX1JPVU5EX0lOSVRfICMjIFJPVU5ESU5H X01PREUJCQkJCVwKQEAgLTE1MTEsMTggKzE1MTYsMTggQEAgc3RydWN0IHRl c3RfZkZGXzExX2RhdGEKIAkJICAgIChBUlJBWSlbaV0uUk1fIyNST1VORElO R19NT0RFLmV4cGMsCQkJXAogCQkgICAgKEFSUkFZKVtpXS5STV8jI1JPVU5E SU5HX01PREUuZXhjZXB0aW9ucyk7CQlcCiAgIFJPVU5EX1JFU1RPUkVfICMj IFJPVU5ESU5HX01PREUKLSNkZWZpbmUgUlVOX1RFU1RfY2NfYyhBUkdfU1RS LCBGVU5DX05BTUUsIEFSRzFSLCBBUkcxQywgQVJHMlIsIEFSRzJDLAlcCi0J CSAgICAgIEVYUFIsIEVYUEMsIEVYQ0VQVElPTlMpCQkJCVwKLSAgZG8JCQkJ CQkJCQlcCi0gICAgaWYgKGVuYWJsZV90ZXN0IChFWENFUFRJT05TKSkJCQkJ CVwKLSAgICAgIHsJCQkJCQkJCQlcCi0JQ09NTU9OX1RFU1RfU0VUVVAgKEFS R19TVFIpOwkJCQkJXAotCWNoZWNrX2NvbXBsZXggKHRlc3RfbmFtZSwJCQkJ CVwKLQkJICAgICAgIEZVTkMgKEZVTkNfTkFNRSkgKEJVSUxEX0NPTVBMRVgg KEFSRzFSLCBBUkcxQyksCVwKLQkJCQkJIEJVSUxEX0NPTVBMRVggKEFSRzJS LCBBUkcyQykpLAlcCi0JCSAgICAgICBCVUlMRF9DT01QTEVYIChFWFBSLCBF WFBDKSwgRVhDRVBUSU9OUyk7CQlcCi0JQ09NTU9OX1RFU1RfQ0xFQU5VUDsJ CQkJCQlcCi0gICAgICB9CQkJCQkJCQkJXAorI2RlZmluZSBSVU5fVEVTVF9j Y19jKEFSR19TVFIsIEZVTkNfTkFNRSwgQVJHMVIsIEFSRzFDLCBBUkcyUiwg QVJHMkMsCQlcCisJCSAgICAgIEVYUFIsIEVYUEMsIEVYQ0VQVElPTlMpCQkJ CQlcCisgIGRvCQkJCQkJCQkJCVwKKyAgICBpZiAoZW5hYmxlX3Rlc3QgKEVY Q0VQVElPTlMpKQkJCQkJCVwKKyAgICAgIHsJCQkJCQkJCQkJXAorCUNPTU1P Tl9URVNUX1NFVFVQIChBUkdfU1RSKTsJCQkJCQlcCisJY2hlY2tfY29tcGxl eCAodGVzdF9uYW1lLAkJCQkJCVwKKwkJICAgICAgIEZVTkNfVEVTVCAoRlVO Q19OQU1FKSAoQlVJTERfQ09NUExFWCAoQVJHMVIsIEFSRzFDKSwJXAorCQkJ CQkgICAgICBCVUlMRF9DT01QTEVYIChBUkcyUiwgQVJHMkMpKSwJXAorCQkg ICAgICAgQlVJTERfQ09NUExFWCAoRVhQUiwgRVhQQyksIEVYQ0VQVElPTlMp OwkJCVwKKwlDT01NT05fVEVTVF9DTEVBTlVQOwkJCQkJCQlcCisgICAgICB9 CQkJCQkJCQkJCVwKICAgd2hpbGUgKDApCiAjZGVmaW5lIFJVTl9URVNUX0xP T1BfY2NfYyhGVU5DX05BTUUsIEFSUkFZLCBST1VORElOR19NT0RFKQkJXAog ICBJRl9ST1VORF9JTklUXyAjIyBST1VORElOR19NT0RFCQkJCQlcCkBAIC0x NTM5LDcgKzE1NDQsNyBAQCBzdHJ1Y3QgdGVzdF9mRkZfMTFfZGF0YQogICAg IGlmIChlbmFibGVfdGVzdCAoRVhDRVBUSU9OUykpCQkJCQlcCiAgICAgICB7 CQkJCQkJCQkJXAogCUNPTU1PTl9URVNUX1NFVFVQIChBUkdfU1RSKTsJCQkJ CVwKLQljaGVja19pbnQgKHRlc3RfbmFtZSwgRlVOQyAoRlVOQ19OQU1FKSAo QVJHKSwgRVhQRUNURUQsCQlcCisJY2hlY2tfaW50ICh0ZXN0X25hbWUsIEZV TkNfVEVTVCAoRlVOQ19OQU1FKSAoQVJHKSwgRVhQRUNURUQsCVwKIAkJICAg RVhDRVBUSU9OUyk7CQkJCQkJXAogCUNPTU1PTl9URVNUX0NMRUFOVVA7CQkJ CQkJXAogICAgICAgfQkJCQkJCQkJCVwKQEAgLTE1OTIsNyArMTU5Nyw3IEBA IHN0cnVjdCB0ZXN0X2ZGRl8xMV9kYXRhCiAgICAgaWYgKGVuYWJsZV90ZXN0 IChFWENFUFRJT05TKSkJCQkJCVwKICAgICAgIHsJCQkJCQkJCQlcCiAJQ09N TU9OX1RFU1RfU0VUVVAgKEFSR19TVFIpOwkJCQkJXAotCWNoZWNrX2Jvb2wg KHRlc3RfbmFtZSwgRlVOQyAoRlVOQ19OQU1FKSAoQVJHKSwgRVhQRUNURUQs CVwKKwljaGVja19ib29sICh0ZXN0X25hbWUsIEZVTkNfVEVTVCAoRlVOQ19O QU1FKSAoQVJHKSwgRVhQRUNURUQsCVwKIAkJICAgIEVYQ0VQVElPTlMpOwkJ CQkJXAogCUNPTU1PTl9URVNUX0NMRUFOVVA7CQkJCQkJXAogICAgICAgfQkJ CQkJCQkJCVwKQEAgLTE2MjYsNyArMTYzMSw3IEBAIHN0cnVjdCB0ZXN0X2ZG Rl8xMV9kYXRhCiAgICAgaWYgKGVuYWJsZV90ZXN0IChFWENFUFRJT05TKSkJ CQkJCVwKICAgICAgIHsJCQkJCQkJCQlcCiAJQ09NTU9OX1RFU1RfU0VUVVAg KEFSR19TVFIpOwkJCQkJXAotCWNoZWNrX2xvbmcgKHRlc3RfbmFtZSwgRlVO QyAoRlVOQ19OQU1FKSAoQVJHKSwgRVhQRUNURUQsCVwKKwljaGVja19sb25n ICh0ZXN0X25hbWUsIEZVTkNfVEVTVCAoRlVOQ19OQU1FKSAoQVJHKSwgRVhQ RUNURUQsCVwKIAkJICAgIEVYQ0VQVElPTlMpOwkJCQkJXAogCUNPTU1PTl9U RVNUX0NMRUFOVVA7CQkJCQkJXAogICAgICAgfQkJCQkJCQkJCVwKQEAgLTE2 NDMsOCArMTY0OCw4IEBAIHN0cnVjdCB0ZXN0X2ZGRl8xMV9kYXRhCiAgICAg aWYgKGVuYWJsZV90ZXN0IChFWENFUFRJT05TKSkJCQkJCVwKICAgICAgIHsJ CQkJCQkJCQlcCiAJQ09NTU9OX1RFU1RfU0VUVVAgKEFSR19TVFIpOwkJCQkJ XAotCWNoZWNrX2xvbmdsb25nICh0ZXN0X25hbWUsIEZVTkMgKEZVTkNfTkFN RSkgKEFSRyksIEVYUEVDVEVELAlcCi0JCQlFWENFUFRJT05TKTsJCQkJCVwK KwljaGVja19sb25nbG9uZyAodGVzdF9uYW1lLCBGVU5DX1RFU1QgKEZVTkNf TkFNRSkgKEFSRyksCQlcCisJCQlFWFBFQ1RFRCwgRVhDRVBUSU9OUyk7CQkJ CVwKIAlDT01NT05fVEVTVF9DTEVBTlVQOwkJCQkJCVwKICAgICAgIH0JCQkJ CQkJCQlcCiAgIHdoaWxlICgwKQpAQCAtMTY2Myw3ICsxNjY4LDcgQEAgc3Ry dWN0IHRlc3RfZkZGXzExX2RhdGEKICAgICBpZiAoZW5hYmxlX3Rlc3QgKEVY Q0VQVElPTlMpKQkJCQkJXAogICAgICAgewkJCQkJCQkJCVwKIAlDT01NT05f VEVTVF9TRVRVUCAoQVJHX1NUUik7CQkJCQlcCi0JRlVOQyAoRlVOQ19OQU1F KSAoQVJHLCAmKEVYVFJBMV9WQVIpLCAmKEVYVFJBMl9WQVIpKTsJCVwKKwlG VU5DX1RFU1QgKEZVTkNfTkFNRSkgKEFSRywgJihFWFRSQTFfVkFSKSwgJihF WFRSQTJfVkFSKSk7CVwKIAlFWFRSQV9PVVRQVVRfVEVTVF9TRVRVUCAoQVJH X1NUUiwgMSk7CQkJCVwKIAlpZiAoRVhUUkExX1RFU1QpCQkJCQkJXAogCSAg Y2hlY2tfZmxvYXQgKGV4dHJhMV9uYW1lLCBFWFRSQTFfVkFSLCBFWFRSQTFf RVhQRUNURUQsCVwKQEAgLTE2OTAsOSArMTY5NSwzMSBAQCBzdHJ1Y3QgdGVz dF9mRkZfMTFfZGF0YQogCQkgICAgICAgKEFSUkFZKVtpXS5STV8jI1JPVU5E SU5HX01PREUuZXh0cmEyX2V4cGVjdGVkKTsJXAogICBST1VORF9SRVNUT1JF XyAjIyBST1VORElOR19NT0RFCiAKKyNpZm5kZWYgSU5JVF9BUkNIX0VYVAor IyBkZWZpbmUgSU5JVF9BUkNIX0VYVAorIyBkZWZpbmUgQ0hFQ0tfQVJDSF9F WFQKKyNlbmRpZgorCisjaWZuZGVmIFZFQ19QUkVGSVggCisjIGRlZmluZSBW RUNfUFJFRklYCisjZW5kaWYKKworI2lmbmRlZiBGVU5DX1RFU1QKKyMgZGVm aW5lIEZVTkNfVEVTVCBGVU5DCisjZW5kaWYKKworI2luY2x1ZGUgImxpYm0t aGF2ZS12ZWN0b3ItdGVzdC5oIgorCisjZGVmaW5lIFNUUl9DT05DQVQoYSxi LGMpIF9fU1RSSU5HIChhIyNiIyNjKQorI2RlZmluZSBTVFJfQ09OMyhhLGIs YykgU1RSX0NPTkNBVCAoYSxiLGMpCisKKyNkZWZpbmUgSEFWRV9WRUNUT1Io ZnVuYykgX19DT05DQVQgKEhBVkVfVkVDVE9SXyxmdW5jKQorCiAvKiBTdGFy dCBhbmQgZW5kIHRoZSB0ZXN0cyBmb3IgYSBnaXZlbiBmdW5jdGlvbi4gICov Ci0jZGVmaW5lIFNUQVJUKEZVTkMsIEVYQUNUKQkJCVwKLSAgY29uc3QgY2hh ciAqdGhpc19mdW5jID0gI0ZVTkM7CQlcCisjZGVmaW5lIFNUQVJUKEZVTiwg U1VGRiwgRVhBQ1QpCQkJCQlcCisgIENIRUNLX0FSQ0hfRVhUCQkJCQkJXAor ICBpZiAoVEVTVF9NQVRIVkVDICYmICFIQVZFX1ZFQ1RPUiAoRlVOQyAoRlVO KSkpIHJldHVybjsJCVwKKyAgY29uc3QgY2hhciAqdGhpc19mdW5jID0gU1RS X0NPTjMgKFZFQ19QUkVGSVgsRlVOLFNVRkYpOwlcCiAgIGluaXRfbWF4X2Vy cm9yICh0aGlzX2Z1bmMsIEVYQUNUKQogI2RlZmluZSBFTkQJCQkJCVwKICAg cHJpbnRfbWF4X2Vycm9yICh0aGlzX2Z1bmMpCkBAIC0xNzA1LDI4ICsxNzMy LDI4IEBAIHN0cnVjdCB0ZXN0X2ZGRl8xMV9kYXRhCiAgICAgewkJCQkJCQkJ CVwKICAgICAgIGRvCQkJCQkJCQlcCiAJewkJCQkJCQkJXAotCSAgU1RBUlQg KEZVTkMsIEVYQUNUKTsJCQkJCQlcCisJICBTVEFSVCAoRlVOQywgLCBFWEFD VCk7CQkJCQlcCiAJICBMT09QX01BQ1JPIChGVU5DLCBBUlJBWSwgLCAjIyBf X1ZBX0FSR1NfXyk7CQkJXAogCSAgRU5EX01BQ1JPOwkJCQkJCQlcCiAJfQkJ CQkJCQkJXAogICAgICAgd2hpbGUgKDApOwkJCQkJCQlcCiAgICAgICBkbwkJ CQkJCQkJXAogCXsJCQkJCQkJCVwKLQkgIFNUQVJUIChGVU5DICMjIF9kb3du d2FyZCwgRVhBQ1QpOwkJCQlcCisJICBTVEFSVCAoRlVOQywgX2Rvd253YXJk LCBFWEFDVCk7CQkJCVwKIAkgIExPT1BfTUFDUk8gKEZVTkMsIEFSUkFZLCBG RV9ET1dOV0FSRCwgIyMgX19WQV9BUkdTX18pOwlcCiAJICBFTkRfTUFDUk87 CQkJCQkJCVwKIAl9CQkJCQkJCQlcCiAgICAgICB3aGlsZSAoMCk7CQkJCQkJ CVwKICAgICAgIGRvCQkJCQkJCQlcCiAJewkJCQkJCQkJXAotCSAgU1RBUlQg KEZVTkMgIyMgX3Rvd2FyZHplcm8sIEVYQUNUKTsJCQkJXAorCSAgU1RBUlQg KEZVTkMsIF90b3dhcmR6ZXJvLCBFWEFDVCk7CQkJCVwKIAkgIExPT1BfTUFD Uk8gKEZVTkMsIEFSUkFZLCBGRV9UT1dBUkRaRVJPLCAjIyBfX1ZBX0FSR1Nf Xyk7CVwKIAkgIEVORF9NQUNSTzsJCQkJCQkJXAogCX0JCQkJCQkJCVwKICAg ICAgIHdoaWxlICgwKTsJCQkJCQkJXAogICAgICAgZG8JCQkJCQkJCVwKIAl7 CQkJCQkJCQlcCi0JICBTVEFSVCAoRlVOQyAjIyBfdXB3YXJkLCBFWEFDVCk7 CQkJCVwKKwkgIFNUQVJUIChGVU5DLCBfdXB3YXJkLCBFWEFDVCk7CQkJCQlc CiAJICBMT09QX01BQ1JPIChGVU5DLCBBUlJBWSwgRkVfVVBXQVJELCAjIyBf X1ZBX0FSR1NfXyk7CQlcCiAJICBFTkRfTUFDUk87CQkJCQkJCVwKIAl9CQkJ CQkJCQlcCkBAIC02MDM0LDcgKzYwNjEsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHRlc3RfY19jX2RhdGEgY2V4cF90ZXN0X2RhdGFbXSA9CiBzdGF0aWMg dm9pZAogY2V4cF90ZXN0ICh2b2lkKQogewotICBTVEFSVCAoY2V4cCwgMCk7 CisgIFNUQVJUIChjZXhwLCAsIDApOwogICBSVU5fVEVTVF9MT09QX2NfYyAo Y2V4cCwgY2V4cF90ZXN0X2RhdGEsICk7CiAgIEVORF9DT01QTEVYOwogfQpA QCAtNzU0OCw3ICs3NTc1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0 X2lmX2ZfZGF0YSBqbl90ZXN0X2RhdGFbXSA9CiBzdGF0aWMgdm9pZAogam5f dGVzdCAodm9pZCkKIHsKLSAgU1RBUlQgKGpuLCAwKTsKKyAgU1RBUlQgKGpu LCAsIDApOwogICBSVU5fVEVTVF9MT09QX2lmX2YgKGpuLCBqbl90ZXN0X2Rh dGEsICk7CiAgIEVORDsKIH0KQEAgLTkzNzQsNyArOTQwMSw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdGVzdF9mX2ZfZGF0YSB0Z2FtbWFfdGVzdF9kYXRh W10gPQogc3RhdGljIHZvaWQKIHRnYW1tYV90ZXN0ICh2b2lkKQogewotICBT VEFSVCAodGdhbW1hLCAwKTsKKyAgU1RBUlQgKHRnYW1tYSwgLCAwKTsKICAg UlVOX1RFU1RfTE9PUF9mX2YgKHRnYW1tYSwgdGdhbW1hX3Rlc3RfZGF0YSwg KTsKICAgRU5EOwogfQpAQCAtOTgyNCw2ICs5ODUxLDggQEAgbWFpbiAoaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogICBpbml0aWFsaXplICgpOwogICBwcmlu dGYgKFRFU1RfTVNHKTsKIAorICBJTklUX0FSQ0hfRVhUCisKICAgY2hlY2tf dWxwICgpOwogCiAgIC8qIEtlZXAgdGhlIHRlc3RzIGEgd2VlIGJpdCBvcmRl cmVkIChhY2NvcmRpbmcgdG8gSVNPIEM5OSkuICAqLwpkaWZmIC0tZ2l0IGEv bWF0aC9tYXRoLmggYi9tYXRoL21hdGguaAppbmRleCBkYzUzMmI3Li44NjA5 YzIyIDEwMDY0NAotLS0gYS9tYXRoL21hdGguaAorKysgYi9tYXRoL21hdGgu aApAQCAtMjcsNiArMjcsOSBAQAogCiBfX0JFR0lOX0RFQ0xTCiAKKy8qIEdl dCBtYWNoaW5lLWRlcGVuZGVudCB2ZWN0b3IgbWF0aCBmdW5jdGlvbnMgZGVj bGFyYXRpb25zICovCisjaW5jbHVkZSA8Yml0cy9tYXRoLXZlY3Rvci5oPgor CiAvKiBHZXQgbWFjaGluZS1kZXBlbmRlbnQgSFVHRV9WQUwgdmFsdWUgKHJl dHVybmVkIG9uIG92ZXJmbG93KS4KICAgIE9uIGFsbCBJRUVFNzU0IG1hY2hp bmVzLCB0aGlzIGlzICtJbmZpbml0eS4gICovCiAjaW5jbHVkZSA8Yml0cy9o dWdlX3ZhbC5oPgpAQCAtNDksNiArNTIsMTIgQEAgX19CRUdJTl9ERUNMUwog ICAgc28gd2UgY2FuIGVhc2lseSBkZWNsYXJlIGVhY2ggZnVuY3Rpb24gYXMg Ym90aCBgbmFtZScgYW5kIGBfX25hbWUnLAogICAgYW5kIGNhbiBkZWNsYXJl IHRoZSBmbG9hdCB2ZXJzaW9ucyBgbmFtZWYnIGFuZCBgX19uYW1lZicuICAq LwogCisjZGVmaW5lIF9fU0lNRF9ERUNMKGZ1bmN0aW9uKSBfX0NPTkNBVCAo X19ERUNMX1NJTURfLGZ1bmN0aW9uKQorCisjZGVmaW5lIF9fTUFUSENBTExf VkVDKGZ1bmN0aW9uLHN1ZmZpeCwgYXJncykgCVwKKyAgX19TSU1EX0RFQ0wg KF9fTUFUSF9QUkVDTkFNRShmdW5jdGlvbixzdWZmaXgpKSBcCisgIF9fTUFU SENBTEwgKGZ1bmN0aW9uLHN1ZmZpeCwgYXJncykKKwogI2RlZmluZSBfX01B VEhDQUxMKGZ1bmN0aW9uLHN1ZmZpeCwgYXJncykJXAogICBfX01BVEhERUNM IChfTWRvdWJsZV8sZnVuY3Rpb24sc3VmZml4LCBhcmdzKQogI2RlZmluZSBf X01BVEhERUNMKHR5cGUsIGZ1bmN0aW9uLHN1ZmZpeCwgYXJncykgXApkaWZm IC0tZ2l0IGEvbWF0aC90ZXN0LWRvdWJsZS12bGVuMi5oIGIvbWF0aC90ZXN0 LWRvdWJsZS12bGVuMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmQ1ZTkyZDEKLS0tIC9kZXYvbnVsbAorKysgYi9tYXRoL3Rlc3Qt ZG91YmxlLXZsZW4yLmgKQEAgLTAsMCArMSw0MiBAQAorLyogQ29weXJpZ2h0 IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5Lg0KKw0K KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KKyAgIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMN CisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXINCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4NCisNCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mDQorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUNCisgICBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KKw0KKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCisgICBMaWNlbnNlIGFs b25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlDQorICAg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8NCisNCisjZGVm aW5lIEZMT0FUIGRvdWJsZQ0KKyNkZWZpbmUgRlVOQyhmdW5jdGlvbikgZnVu Y3Rpb24NCisjZGVmaW5lIFRFU1RfTVNHICJ0ZXN0aW5nIGRvdWJsZSB2ZWN0 b3IgbWF0aCAod2l0aG91dCBpbmxpbmUgZnVuY3Rpb25zKVxuIg0KKyNkZWZp bmUgTUFUSENPTlNUKHgpIHgNCisjZGVmaW5lIENIT09TRShDbG9uZ2RvdWJs ZSxDZG91YmxlLENmbG9hdCxDaW5saW5lbG9uZ2RvdWJsZSxDaW5saW5lZG91 YmxlLENpbmxpbmVmbG9hdCkgQ2RvdWJsZQ0KKyNkZWZpbmUgUFJJTlRGX0VY UFIgImUiDQorI2RlZmluZSBQUklOVEZfWEVYUFIgImEiDQorI2RlZmluZSBQ UklOVEZfTkVYUFIgImYiDQorI2RlZmluZSBURVNUX0RPVUJMRSAxDQorI2Rl ZmluZSBURVNUX01BVEhWRUMgMQ0KKw0KKyNpZm5kZWYgX19OT19NQVRIX0lO TElORVMNCisjIGRlZmluZSBfX05PX01BVEhfSU5MSU5FUw0KKyNlbmRpZg0K Kw0KKyNkZWZpbmUgRVhDRVBUSU9OX1RFU1RTX2RvdWJsZSAwDQorI2RlZmlu ZSBST1VORElOR19URVNUU19kb3VibGUoTU9ERSkgKChNT0RFKSA9PSBGRV9U T05FQVJFU1QpDQorDQorI2RlZmluZSBWRUNfUFJFRklYIHZsZW4yXw0KKw0K KyNkZWZpbmUgQ09OQ0FUKHByZWZpeCxmdW5jKSBfX0NPTkNBVCAocHJlZml4 LGZ1bmMpDQorDQorI2RlZmluZSBXUkFQUEVSX05BTUUoZnVuY3Rpb24pIENP TkNBVCAoVkVDX1BSRUZJWCxmdW5jdGlvbikNCisNCisjZGVmaW5lIEZVTkNf VEVTVChmdW5jdGlvbikgVkVDX1BSRUZJWF8gIyMgZnVuY3Rpb24NCmRpZmYg LS1naXQgYS9tYXRoL3Rlc3QtZG91YmxlLXZsZW40LmggYi9tYXRoL3Rlc3Qt ZG91YmxlLXZsZW40LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZjhmYzY2ZQotLS0gL2Rldi9udWxsCisrKyBiL21hdGgvdGVzdC1k b3VibGUtdmxlbjQuaApAQCAtMCwwICsxLDQwIEBACisvKiBDb3B5cmlnaHQg KEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQorICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuDQorDQor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQorICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYw0K KyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcg0KKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u Lg0KKw0KKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YNCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQ0KKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu DQorDQorICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYw0KKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUNCisgICA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLw0KKw0KKyNkZWZp bmUgRkxPQVQgZG91YmxlDQorI2RlZmluZSBGVU5DKGZ1bmN0aW9uKSBmdW5j dGlvbg0KKyNkZWZpbmUgVEVTVF9NU0cgInRlc3RpbmcgZG91YmxlIHZlY3Rv ciBtYXRoICh3aXRob3V0IGlubGluZSBmdW5jdGlvbnMpXG4iDQorI2RlZmlu ZSBNQVRIQ09OU1QoeCkgeA0KKyNkZWZpbmUgQ0hPT1NFKENsb25nZG91Ymxl LENkb3VibGUsQ2Zsb2F0LENpbmxpbmVsb25nZG91YmxlLENpbmxpbmVkb3Vi bGUsQ2lubGluZWZsb2F0KSBDZG91YmxlDQorI2RlZmluZSBQUklOVEZfRVhQ UiAiZSINCisjZGVmaW5lIFBSSU5URl9YRVhQUiAiYSINCisjZGVmaW5lIFBS SU5URl9ORVhQUiAiZiINCisjZGVmaW5lIFRFU1RfRE9VQkxFIDENCisjZGVm aW5lIFRFU1RfTUFUSFZFQyAxDQorDQorI2lmbmRlZiBfX05PX01BVEhfSU5M SU5FUw0KKyMgZGVmaW5lIF9fTk9fTUFUSF9JTkxJTkVTDQorI2VuZGlmDQor DQorI2RlZmluZSBFWENFUFRJT05fVEVTVFNfZG91YmxlIDANCisjZGVmaW5l IFJPVU5ESU5HX1RFU1RTX2RvdWJsZShNT0RFKSAoKE1PREUpID09IEZFX1RP TkVBUkVTVCkNCisNCisjZGVmaW5lIENPTkNBVChwcmVmaXgsZnVuYykgX19D T05DQVQgKHByZWZpeCxmdW5jKQ0KKw0KKyNkZWZpbmUgV1JBUFBFUl9OQU1F KGZ1bmN0aW9uKSBDT05DQVQgKFZFQ19QUkVGSVgsZnVuY3Rpb24pDQorDQor I2RlZmluZSBGVU5DX1RFU1QoZnVuY3Rpb24pIFZFQ19QUkVGSVhfICMjIGZ1 bmN0aW9uDQpkaWZmIC0tZ2l0IGEvbWF0aC90ZXN0LWZsb2F0LXZsZW44Lmgg Yi9tYXRoL3Rlc3QtZmxvYXQtdmxlbjguaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4yOTg0ZTBjCi0tLSAvZGV2L251bGwKKysrIGIv bWF0aC90ZXN0LWZsb2F0LXZsZW44LmgKQEAgLTAsMCArMSw0MiBAQAorLyog Q29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLg0KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5Lg0KKw0KKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KKyAgIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMNCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCisgICB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4NCisNCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0K KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUNCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLg0KKw0KKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCisgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwg c2VlDQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8N CisNCisjZGVmaW5lIEZMT0FUIGZsb2F0DQorI2RlZmluZSBGVU5DKGZ1bmN0 aW9uKSBmdW5jdGlvbiAjIyBmDQorI2RlZmluZSBURVNUX01TRyAidGVzdGlu ZyBmbG9hdCB2ZWN0b3IgbWF0aCAod2l0aG91dCBpbmxpbmUgZnVuY3Rpb25z KVxuIg0KKyNkZWZpbmUgTUFUSENPTlNUKHgpIHgNCisjZGVmaW5lIENIT09T RShDbG9uZ2RvdWJsZSxDZG91YmxlLENmbG9hdCxDaW5saW5lbG9uZ2RvdWJs ZSxDaW5saW5lZG91YmxlLENpbmxpbmVmbG9hdCkgQ2Zsb2F0DQorI2RlZmlu ZSBQUklOVEZfRVhQUiAiZSINCisjZGVmaW5lIFBSSU5URl9YRVhQUiAiYSIN CisjZGVmaW5lIFBSSU5URl9ORVhQUiAiZiINCisjZGVmaW5lIFRFU1RfRkxP QVQgMQ0KKyNkZWZpbmUgVEVTVF9NQVRIVkVDIDENCisNCisjaWZuZGVmIF9f Tk9fTUFUSF9JTkxJTkVTDQorIyBkZWZpbmUgX19OT19NQVRIX0lOTElORVMN CisjZW5kaWYNCisNCisjZGVmaW5lIEVYQ0VQVElPTl9URVNUU19mbG9hdCAw DQorI2RlZmluZSBST1VORElOR19URVNUU19mbG9hdChNT0RFKSAoKE1PREUp ID09IEZFX1RPTkVBUkVTVCkNCisNCisjZGVmaW5lIFZFQ19QUkVGSVggdmxl bjhfDQorDQorI2RlZmluZSBDT05DQVQocHJlZml4LGZ1bmMpIF9fQ09OQ0FU IChwcmVmaXgsZnVuYykNCisNCisjZGVmaW5lIFdSQVBQRVJfTkFNRShmdW5j dGlvbikgQ09OQ0FUIChWRUNfUFJFRklYLGZ1bmN0aW9uKQ0KKw0KKyNkZWZp bmUgRlVOQ19URVNUKGZ1bmN0aW9uKSBWRUNfUFJFRklYXyAjIyBmdW5jdGlv biAjIyBmDQpkaWZmIC0tZ2l0IGEvbWF0aHZlYy9EZXBlbmQgYi9tYXRodmVj L0RlcGVuZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l ZGUxMGFiCi0tLSAvZGV2L251bGwKKysrIGIvbWF0aHZlYy9EZXBlbmQKQEAg LTAsMCArMSBAQAorbWF0aApkaWZmIC0tZ2l0IGEvbWF0aHZlYy9NYWtlZmls ZSBiL21hdGh2ZWMvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMjZjNTUyYwotLS0gL2Rldi9udWxsCisrKyBiL21hdGh2 ZWMvTWFrZWZpbGUKQEAgLTAsMCArMSwzNSBAQAorIyBDb3B5cmlnaHQgKEMp IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisjIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorIyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIyBUaGUgR05V IEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQorIyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisKKyMgTWFrZWZpbGUgZm9yIHRoZSB2ZWN0b3IgbWF0aCBsaWJyYXJ5Lgor CitzdWJkaXIJCTo9IG1hdGh2ZWMKKworaW5jbHVkZSAuLi9NYWtlY29uZmln CisKK2lmZXEgKCQoYnVpbGQtbWF0aHZlYykseWVzKQorZXh0cmEtbGlicwk6 PSBsaWJtdmVjCitleHRyYS1saWJzLW90aGVycyA9ICQoZXh0cmEtbGlicykK KworbGlibXZlYy1yb3V0aW5lcyA9ICQoc3RyaXAgJChsaWJtdmVjLXN1cHBv cnQpKQorCiskKG9ianBmeClsaWJtdmVjLnNvOiAkKGxpYm0pCitlbmRpZgor CisjIFJ1bGVzIGZvciB0aGUgdGVzdCBzdWl0ZSBhcmUgaW4gbWF0aCBkaXJl Y3RvcnkKKworaW5jbHVkZSAuLi9SdWxlcwpkaWZmIC0tZ2l0IGEvc2hsaWIt dmVyc2lvbnMgYi9zaGxpYi12ZXJzaW9ucwppbmRleCBlMDViMjQ4Li5mYTNj ZjFkIDEwMDY0NAotLS0gYS9zaGxpYi12ZXJzaW9ucworKysgYi9zaGxpYi12 ZXJzaW9ucwpAQCAtNzEsMyArNzEsNiBAQCBsaWJhbmw9MQogIyBUaGlzIGRl ZmluZXMgdGhlIGxpYmdjYyBzb25hbWUgdmVyc2lvbiB0aGlzIGdsaWJjIGlz IHRvIGxvYWQgZm9yCiAjIGFzeW5jaHJvbm91cyBjYW5jZWxsYXRpb24gdG8g d29yayBjb3JyZWN0bHkuCiBsaWJnY2Nfcz0xCisKKyMgVGhlIHZlY3RvciBt YXRoIGxpYnJhcnkKK2xpYm12ZWM9MQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgveDg2XzY0L2xpYm12ZWMuYWJpbGlzdCBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9saWJtdmVjLmFiaWxpc3QKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk4NDIwNwotLS0g L2Rldi9udWxsCisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82 NC9saWJtdmVjLmFiaWxpc3QKQEAgLTAsMCArMSw1IEBACitHTElCQ18yLjIx CisgR0xJQkNfMi4yMSBBCisgX1pHVmJOMnZfY29zIEYKKyBfWkdWY040dl9j b3MgRgorIF9aR1ZkTjR2X2NvcyBGCmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4 Ni9mcHUvYml0cy9tYXRoLXZlY3Rvci5oIGIvc3lzZGVwcy94ODYvZnB1L2Jp dHMvbWF0aC12ZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4wZDcxY2U5Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94 ODYvZnB1L2JpdHMvbWF0aC12ZWN0b3IuaApAQCAtMCwwICsxLDUwIEBACisv KiBQbGF0Zm9ybS1zcGVjaWZpYyBTSU1EIGRlY2xhcmF0aW9ucyBvZiBtYXRo IGZ1bmN0aW9ucy4KKyAgIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90 LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CisKKyNpZm5kZWYgX01BVEhfSAorIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8 Yml0cy9tYXRoLXZlY3Rvci5oPiBkaXJlY3RseTsgXAorCWluY2x1ZGUgPG1h dGguaD4gaW5zdGVhZC4iCisjZW5kaWYKKworLyogR2V0IGRlZmF1bHQgZW1w dHkgZGVmaW5pdGlvbnMgZm9yIHNpbWQgZGVjbGFyYXRpb25zICovCisjaW5j bHVkZSA8bGlibS1zaW1kLWRlY2wtc3R1YnMuaD4KKworI2lmIGRlZmluZWQg X194ODZfNjRfXyAmJiBkZWZpbmVkIF9fRkFTVF9NQVRIX18KKyMgaWYgZGVm aW5lZCBfT1BFTk1QICYmIF9PUEVOTVAgPj0gMjAxMzA3CisvKiBPcGVuTVAg Y2FzZS4gKi8KKy8qIFRPRE8gZG9jdW1lbnQgYWJvdXQgcHJhZ21hIG1lYW5p bmcgKi8KKyMgIGRlZmluZSBfX0RFQ0xfU0lNRF9BVlgyIF9QcmFnbWEgKCJv bXAgZGVjbGFyZSBzaW1kIG5vdGluYnJhbmNoIHNpbWRsZW4oNCkiKQorIyAg ZGVmaW5lIF9fREVDTF9TSU1EX1NTRTQgX1ByYWdtYSAoIm9tcCBkZWNsYXJl IHNpbWQgbm90aW5icmFuY2ggc2ltZGxlbig4KSIpCisjICB1bmRlZiBfX0RF Q0xfU0lNRF9jb3MKKyMgIGRlZmluZSBfX0RFQ0xfU0lNRF9jb3MgIF9fREVD TF9TSU1EX0FWWDIKKyMgIHVuZGVmIF9fREVDTF9TSU1EX2Nvc2YKKyMgIGRl ZmluZSBfX0RFQ0xfU0lNRF9jb3NmIF9fREVDTF9TSU1EX1NTRTQKKyMgZWxp ZiBkZWZpbmVkIF9DSUxLUExVUyAmJiBfQ0lMS1BMVVMgPj0gMCAKKy8qIENp bGtQbHVzIGNhc2UuICovCisvKiBUT0RPIF9DSUxLUExVUyBjdXJyZW50bHkg bm93aGVyZSBkZWZpbmVkLCAKKyAqIGFkZCByZXNlcnZlZC1uYW1lc3BhY2Ug dmVyc2lvbnMgYW5kIF9fR05VQ19QUkVSRVEKKyMgIGRlZmluZSBfX0RFQ0xf U0lNRF9BVlgyIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9fIChfX3ZlY3Rv cmxlbmd0aF9fKDQpLFwKKwkJCQkJCSAgICAgICBfX25vbWFza19fKSkpCisj ICBkZWZpbmUgX19ERUNMX1NJTURfU1NFNCBfX2F0dHJpYnV0ZV9fICgoX192 ZWN0b3JfXyAoX192ZWN0b3JsZW5ndGhfXyg4KSxcCisJCQkJCQkgICAgICAg X19ub21hc2tfXykpKQorIyAgdW5kZWYgX19ERUNMX1NJTURfY29zCisjICBk ZWZpbmUgX19ERUNMX1NJTURfY29zICBfX0RFQ0xfU0lNRF9BVlgyCisjICB1 bmRlZiBfX0RFQ0xfU0lNRF9jb3NmCisjICBkZWZpbmUgX19ERUNMX1NJTURf Y29zZiBfX0RFQ0xfU0lNRF9TU0U0ICovCisjIGVuZGlmCisjZW5kaWYKZGlm ZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L2NvbmZpZ3VyZSBiL3N5c2RlcHMv eDg2XzY0L2NvbmZpZ3VyZQppbmRleCA3ZDRkYWRkLi42ODVjMDM2IDEwMDY0 NAotLS0gYS9zeXNkZXBzL3g4Nl82NC9jb25maWd1cmUKKysrIGIvc3lzZGVw cy94ODZfNjQvY29uZmlndXJlCkBAIC0yNzUsNiArMjc1LDggQEAgZmkKIGNv bmZpZ192YXJzPSIkY29uZmlnX3ZhcnMKIGNvbmZpZy1jZmxhZ3MtYXZ4MiA9 ICRsaWJjX2N2X2NjX2F2eDIiCiAKK2J1aWxkX21hdGh2ZWM9eWVzCisKICRh c19lY2hvICIjZGVmaW5lIFBJX1NUQVRJQ19BTkRfSElEREVOIDEiID4+Y29u ZmRlZnMuaAogCiAjIHdvcmsgYXJvdW5kIHByb2JsZW0gd2l0aCBhdXRvY29u ZiBhbmQgZW1wdHkgbGluZXMgYXQgdGhlIGVuZCBvZiBmaWxlcwpkaWZmIC0t Z2l0IGEvc3lzZGVwcy94ODZfNjQvY29uZmlndXJlLmFjIGIvc3lzZGVwcy94 ODZfNjQvY29uZmlndXJlLmFjCmluZGV4IGM5ZjlhNTEuLmU5ZWNlYjEgMTAw NjQ0Ci0tLSBhL3N5c2RlcHMveDg2XzY0L2NvbmZpZ3VyZS5hYworKysgYi9z eXNkZXBzL3g4Nl82NC9jb25maWd1cmUuYWMKQEAgLTk5LDYgKzk5LDkgQEAg aWYgdGVzdCAkbGliY19jdl9jY19hdngyID0geWVzOyB0aGVuCiBmaQogTElC Q19DT05GSUdfVkFSKFtjb25maWctY2ZsYWdzLWF2eDJdLCBbJGxpYmNfY3Zf Y2NfYXZ4Ml0pCiAKK2RubCBTZXQgYnVpbGRfbWF0aHZlYworYnVpbGRfbWF0 aHZlYz15ZXMKKwogZG5sIEl0IGlzIGFsd2F5cyBwb3NzaWJsZSB0byBhY2Nl c3Mgc3RhdGljIGFuZCBoaWRkZW4gc3ltYm9scyBpbiBhbgogZG5sIHBvc2l0 aW9uIGluZGVwZW5kZW50IHdheS4KIEFDX0RFRklORShQSV9TVEFUSUNfQU5E X0hJRERFTikKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L2ZwdS9NYWtl ZmlsZSBiL3N5c2RlcHMveDg2XzY0L2ZwdS9NYWtlZmlsZQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTk0YzczCi0tLSAvZGV2L251 bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvZnB1L01ha2VmaWxlCkBAIC0wLDAg KzEsMjIgQEAKK2lmZXEgKCQoc3ViZGlyKSxtYXRodmVjKQorbGlibXZlYy1z dXBwb3J0ICs9IHN2bWxfZF9jb3MyX2NvcmUgc3ZtbF9kX2NvczRfY29yZV9h dnggXAorCQkgICBzdm1sX2RfY29zNF9jb3JlX2F2eDIgc3ZtbF9kX2Nvc19k YXRhCitlbmRpZgorCisjIFJ1bGVzIGZvciBsaWJtdmVjIHRlc3RzCitpZmVx ICgkKHN1YmRpciksbWF0aCkKK2lmZXEgKCQoYnVpbGQtbWF0aHZlYykseWVz KQorbGlibXZlYy10ZXN0cyArPSBkb3VibGUtdmxlbjIgZG91YmxlLXZsZW40 IGRvdWJsZS12bGVuNC1hdngyCisKK2FyY2gtZXh0LWNmbGFncyA9IC1tYXZ4 CisKKyQob2JqcGZ4KXRlc3QtZG91YmxlLXZsZW40LWF2eDIubzogJChvYmpw ZngpbGlibS10ZXN0LnN0bXAKKworJChvYmpwZngpdGVzdC1kb3VibGUtdmxl bjQtYXZ4MjogJChjb21tb24tb2JqcGZ4KW1hdGh2ZWMvbGlibXZlYy5zbyBc CisJCQkJICQob2JqcGZ4KWluaXQtYXJjaC5vCisKK0NGTEFHUy10ZXN0LWRv dWJsZS12bGVuNC1hdngyLmMgPSAtZm5vLWlubGluZSAtZmZsb2F0LXN0b3Jl IC1mbm8tYnVpbHRpbiAtZnJvdW5kaW5nLW1hdGggXAorCQkJCSAgLURfX0ZB U1RfTUFUSF9fIC1EVEVTVF9GQVNUX01BVEggLURfT1BFTk1QPTIwMTMwNyBc CisJCQkJICAtV25vLXVua25vd24tcHJhZ21hcyAtbWF2eDIKK2VuZGlmCitl bmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvZnB1L1ZlcnNpb25z IGIvc3lzZGVwcy94ODZfNjQvZnB1L1ZlcnNpb25zCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxOGQ5ODUKLS0tIC9kZXYvbnVsbAor KysgYi9zeXNkZXBzL3g4Nl82NC9mcHUvVmVyc2lvbnMKQEAgLTAsMCArMSw3 IEBACitsaWJtdmVjIHsKKyAgR0xJQkNfMi4yMSB7CisgICAgX1pHVmJOMnZf Y29zOworICAgIF9aR1ZjTjR2X2NvczsKKyAgICBfWkdWZE40dl9jb3M7Cisg IH0KK30KZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L2ZwdS9saWJtLXRl c3QtdWxwcyBiL3N5c2RlcHMveDg2XzY0L2ZwdS9saWJtLXRlc3QtdWxwcwpp bmRleCAzNmUxYjc2Li5iNWM4OGQ0IDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4 Nl82NC9mcHUvbGlibS10ZXN0LXVscHMKKysrIGIvc3lzZGVwcy94ODZfNjQv ZnB1L2xpYm0tdGVzdC11bHBzCkBAIC0xOTYxLDYgKzE5NjEsMTUgQEAgaWZs b2F0OiAzCiBpbGRvdWJsZTogNAogbGRvdWJsZTogNAogCitGdW5jdGlvbjog InZsZW4yX2NvcyI6Citkb3VibGU6IDEKKworRnVuY3Rpb246ICJ2bGVuNF9h dngyX2NvcyI6Citkb3VibGU6IDEKKworRnVuY3Rpb246ICJ2bGVuNF9hdnhf Y29zIjoKK2RvdWJsZTogMQorCiBGdW5jdGlvbjogInkwIjoKIGRvdWJsZTog MgogZmxvYXQ6IDEKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L2ZwdS9t YXRoLXRlc3RzLmggYi9zeXNkZXBzL3g4Nl82NC9mcHUvbWF0aC10ZXN0cy5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2NmI5N2IK LS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3g4Nl82NC9mcHUvbWF0aC10 ZXN0cy5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qIENvbmZpZ3VyYXRpb24gZm9y IG1hdGggdGVzdHMuICB4ODZfNjQgdmVyc2lvbi4KKyAgIENvcHlyaWdodCAo QykgMjAxMy0yMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lmZGVmIFJFUVVJUkVfQVZY MgorIyBpbmNsdWRlIDxpbml0LWFyY2guaD4KKworICBzdGF0aWMgaW50IGF2 eDJfdXNhYmxlOwkvKiBTZXQgdG8gMSBpZiBBVlgyIHN1cHBvcnRlZCAqLwor CisjIGRlZmluZSBJTklUX0FSQ0hfRVhUIAkJCQkJCVwKKyAgICBfX2luaXRf Y3B1X2ZlYXR1cmVzICgpOwkJCQkJXAorICAgIGF2eDJfdXNhYmxlID0gX19j cHVfZmVhdHVyZXMuZmVhdHVyZVtpbmRleF9BVlgyX1VzYWJsZV0JXAorCQkm IGJpdF9BVlgyX1VzYWJsZTsKKworIyBkZWZpbmUgQ0hFQ0tfQVJDSF9FWFQJ CQkJCQlcCisgIGlmICghYXZ4Ml91c2FibGUpIHJldHVybjsKKworI2VuZGlm CisKKyNpbmNsdWRlX25leHQgPG1hdGgtdGVzdHMuaD4KZGlmZiAtLWdpdCBh L3N5c2RlcHMveDg2XzY0L2ZwdS9zdm1sX2RfY29zMl9jb3JlLlMgYi9zeXNk ZXBzL3g4Nl82NC9mcHUvc3ZtbF9kX2NvczJfY29yZS5TCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3Mjg4YzIKLS0tIC9kZXYvbnVs bAorKysgYi9zeXNkZXBzL3g4Nl82NC9mcHUvc3ZtbF9kX2NvczJfY29yZS5T CkBAIC0wLDAgKzEsMjEwIEBACisvKiBGdW5jdGlvbiBjb3MgdmVjdG9yaXpl ZCB3aXRoIFNTRTQuCisgICBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg ICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworCisjaW5jbHVkZSA8c3lzZGVwLmg+CisKKyNkZWZpbmUgX0RBVEFfVEFC TEVfT0ZGU0VUU19PTkxZXworI2luY2x1ZGUgInN2bWxfZF9jb3NfZGF0YS5T IgorCisJLnRleHQKK0VOVFJZKF9aR1ZiTjJ2X2NvcykKKworLyogQUxHT1JJ VEhNIERFU0NSSVBUSU9OOgorICoKKyAqICAgICAoIGxvdyBhY2N1cmFjeSAo IDwgNHVscCApIG9yIGVuaGFuY2VkIHBlcmZvcm1hbmNlICggaGFsZiBvZiBj b3JyZWN0IG1hbnRpc3NhICkgaW1wbGVtZW50YXRpb24gKQorICogCisgKiAg ICAgQXJndW1lbnQgcmVwcmVzZW50YXRpb246CisgKiAgICAgYXJnICsgUGkv MiA9IChOKlBpICsgUikKKyAqIAorICogICAgIFJlc3VsdCBjYWxjdWxhdGlv bjoKKyAqICAgICBjb3MoYXJnKSA9IHNpbihhcmcrUGkvMikgPSBzaW4oTipQ aSArIFIpID0gKC0xKV5OICogc2luKFIpCisgKiAgICAgc2luKFIpIGlzIGFw cHJveGltYXRlZCBieSBjb3JyZXNwb25kaW5nIHBvbHlub21pYWwKKyAqLwor ICAgICAgICBwdXNocSAgICAgJXJicAorICAgICAgICBtb3ZxICAgICAgJXJz cCwgJXJicAorICAgICAgICBhbmRxICAgICAgJC02NCwgJXJzcAorICAgICAg ICBzdWJxICAgICAgJDMyMCwgJXJzcAorICAgICAgICBtb3ZhcHMgICAgJXht bTAsICV4bW0zCisgICAgICAgIG1vdnEgICAgICBfX3N2bWxfZGNvc19kYXRh QEdPVFBDUkVMKCVyaXApLCAlcmF4CisgICAgICAgIG1vdnVwcyAgICBfX2RI YWxmUEkoJXJheCksICV4bW0yCisKKy8qIEFSR1VNRU5UIFJBTkdFIFJFRFVD VElPTjoKKyAqIEFkZCBQaS8yIHRvIGFyZ3VtZW50OiBYJyA9IFgrUGkvMgor ICovCisgICAgICAgIGFkZHBkICAgICAleG1tMywgJXhtbTIKKyAgICAgICAg bW92dXBzICAgIF9fZEludlBJKCVyYXgpLCAleG1tNQorICAgICAgICBtb3Z1 cHMgICAgX19kQWJzTWFzayglcmF4KSwgJXhtbTQKKworLyogR2V0IGFic29s dXRlIGFyZ3VtZW50IHZhbHVlOiBYJyA9IHxYJ3wgKi8KKyAgICAgICAgYW5k cHMgICAgICV4bW0yLCAleG1tNAorCisvKiBZID0gWCcqSW52UGkgKyBSUyA6 IHJpZ2h0IHNoaWZ0ZXIgYWRkICovCisgICAgICAgIG11bHBkICAgICAleG1t NSwgJXhtbTIKKworLyogQ2hlY2sgZm9yIGxhcmdlIGFyZ3VtZW50cyBwYXRo ICovCisgICAgICAgIGNtcG5sZXBkICBfX2RSYW5nZVZhbCglcmF4KSwgJXht bTQKKyAgICAgICAgbW92dXBzICAgIF9fZFJTaGlmdGVyKCVyYXgpLCAleG1t NgorICAgICAgICBhZGRwZCAgICAgJXhtbTYsICV4bW0yCisgICAgICAgIG1v dm1za3BkICAleG1tNCwgJWVjeAorCisvKiBOID0gWSAtIFJTIDogcmlnaHQg c2hpZnRlciBzdWIgKi8KKyAgICAgICAgbW92YXBzICAgICV4bW0yLCAleG1t MQorCisvKiBTaWduUmVzID0gWTw8NjMgOiBzaGlmdCBMU0IgdG8gTVNCIHBs YWNlIGZvciByZXN1bHQgc2lnbiAqLworICAgICAgICBwc2xscSAgICAgJDYz LCAleG1tMgorICAgICAgICBzdWJwZCAgICAgJXhtbTYsICV4bW0xCisKKy8q IE4gPSBOIC0gMC41ICovCisgICAgICAgIHN1YnBkICAgICBfX2RPbmVIYWxm KCVyYXgpLCAleG1tMQorICAgICAgICBtb3Z1cHMgICAgX19kUEkxKCVyYXgp LCAleG1tNworCisvKiBSID0gWCAtIE4qUGkxICovCisgICAgICAgIG11bHBk ICAgICAleG1tMSwgJXhtbTcKKyAgICAgICAgbW92dXBzICAgIF9fZFBJMigl cmF4KSwgJXhtbTQKKworLyogUiA9IFIgLSBOKlBpMiAqLworICAgICAgICBt dWxwZCAgICAgJXhtbTEsICV4bW00CisgICAgICAgIHN1YnBkICAgICAleG1t NywgJXhtbTAKKyAgICAgICAgbW92dXBzICAgIF9fZFBJMyglcmF4KSwgJXht bTUKKworLyogUiA9IFIgLSBOKlBpMyAqLworICAgICAgICBtdWxwZCAgICAg JXhtbTEsICV4bW01CisgICAgICAgIHN1YnBkICAgICAleG1tNCwgJXhtbTAK KworLyogUiA9IFIgLSBOKlBpNCAqLworICAgICAgICBtb3Z1cHMgICAgIF9f ZFBJNCglcmF4KSwgJXhtbTYKKyAgICAgICAgbXVscGQgICAgICV4bW02LCAl eG1tMQorICAgICAgICBzdWJwZCAgICAgJXhtbTUsICV4bW0wCisgICAgICAg IHN1YnBkICAgICAleG1tMSwgJXhtbTAKKworLyogUE9MWU5PTUlBTCBBUFBS T1hJTUFUSU9OOgorICogUjIgPSBSKlIKKyAqLworICAgICAgICBtb3ZhcHMg ICAgJXhtbTAsICV4bW00CisgICAgICAgIG11bHBkICAgICAleG1tMCwgJXht bTQKKyAgICAgICAgbW92dXBzICAgIF9fZEM3KCVyYXgpLCAleG1tMQorICAg ICAgICBtdWxwZCAgICAgJXhtbTQsICV4bW0xCisgICAgICAgIGFkZHBkICAg ICBfX2RDNiglcmF4KSwgJXhtbTEKKyAgICAgICAgbXVscGQgICAgICV4bW00 LCAleG1tMQorICAgICAgICBhZGRwZCAgICAgX19kQzUoJXJheCksICV4bW0x CisgICAgICAgIG11bHBkICAgICAleG1tNCwgJXhtbTEKKyAgICAgICAgYWRk cGQgICAgIF9fZEM0KCVyYXgpLCAleG1tMQorCisvKiBQb2x5ID0gQzMrUjIq KEM0K1IyKihDNStSMiooQzYrUjIqQzcpKSkgKi8KKyAgICAgICAgbXVscGQg ICAgICV4bW00LCAleG1tMQorICAgICAgICBhZGRwZCAgICAgX19kQzMoJXJh eCksICV4bW0xCisKKy8qIFBvbHkgPSBSK1IqKFIyKihDMStSMiooQzIrUjIq UG9seSkpKSAqLworICAgICAgICBtdWxwZCAgICAgJXhtbTQsICV4bW0xCisg ICAgICAgIGFkZHBkICAgICBfX2RDMiglcmF4KSwgJXhtbTEKKyAgICAgICAg bXVscGQgICAgICV4bW00LCAleG1tMQorICAgICAgICBhZGRwZCAgICAgX19k QzEoJXJheCksICV4bW0xCisgICAgICAgIG11bHBkICAgICAleG1tMSwgJXht bTQKKyAgICAgICAgbXVscGQgICAgICV4bW0wLCAleG1tNAorICAgICAgICBh ZGRwZCAgICAgJXhtbTQsICV4bW0wCisKKy8qIFJFQ09OU1RSVUNUSU9OOgor ICogRmluYWwgc2lnbiBzZXR0aW5nOiBSZXMgPSBQb2x5XlNpZ25SZXMKKyAq LworICAgICAgICB4b3JwcyAgICAgJXhtbTIsICV4bW0wCisgICAgICAgIHRl c3RsICAgICAlZWN4LCAlZWN4CisgICAgICAgIGpuZSAgICAgICAuTEJMXzFf MworCisuTEJMXzFfMjoKKyAgICAgICAgbW92cSAgICAgICVyYnAsICVyc3AK KyAgICAgICAgcG9wcSAgICAgICVyYnAKKyAgICAgICAgcmV0CisKKy5MQkxf MV8zOgorICAgICAgICBtb3Z1cHMgICAgJXhtbTMsIDE5MiglcnNwKQorICAg ICAgICBtb3Z1cHMgICAgJXhtbTAsIDI1NiglcnNwKQorICAgICAgICBqZSAg ICAgICAgLkxCTF8xXzIKKworICAgICAgICB4b3JiICAgICAgJWRsLCAlZGwK KyAgICAgICAgeG9ybCAgICAgICVlYXgsICVlYXgKKyAgICAgICAgbW92dXBz ICAgICV4bW04LCAxMTIoJXJzcCkKKyAgICAgICAgbW92dXBzICAgICV4bW05 LCA5NiglcnNwKQorICAgICAgICBtb3Z1cHMgICAgJXhtbTEwLCA4MCglcnNw KQorICAgICAgICBtb3Z1cHMgICAgJXhtbTExLCA2NCglcnNwKQorICAgICAg ICBtb3Z1cHMgICAgJXhtbTEyLCA0OCglcnNwKQorICAgICAgICBtb3Z1cHMg ICAgJXhtbTEzLCAzMiglcnNwKQorICAgICAgICBtb3Z1cHMgICAgJXhtbTE0 LCAxNiglcnNwKQorICAgICAgICBtb3Z1cHMgICAgJXhtbTE1LCAoJXJzcCkK KyAgICAgICAgbW92cSAgICAgICVyc2ksIDEzNiglcnNwKQorICAgICAgICBt b3ZxICAgICAgJXJkaSwgMTI4KCVyc3ApCisgICAgICAgIG1vdnEgICAgICAl cjEyLCAxNjgoJXJzcCkKKyAgICAgICAgbW92YiAgICAgICVkbCwgJXIxMmIK KyAgICAgICAgbW92cSAgICAgICVyMTMsIDE2MCglcnNwKQorICAgICAgICBt b3ZsICAgICAgJWVjeCwgJXIxM2QKKyAgICAgICAgbW92cSAgICAgICVyMTQs IDE1MiglcnNwKQorICAgICAgICBtb3ZsICAgICAgJWVheCwgJXIxNGQKKyAg ICAgICAgbW92cSAgICAgICVyMTUsIDE0NCglcnNwKQorCisuTEJMXzFfNjoK KyAgICAgICAgYnRsICAgICAgICVyMTRkLCAlcjEzZAorICAgICAgICBqYyAg ICAgICAgLkxCTF8xXzEyCisKKy5MQkxfMV83OgorICAgICAgICBsZWEgICAg ICAgMSglcjE0KSwgJWVzaQorICAgICAgICBidGwgICAgICAgJWVzaSwgJXIx M2QKKyAgICAgICAgamMgICAgICAgIC5MQkxfMV8xMAorCisuTEJMXzFfODoK KyAgICAgICAgaW5jYiAgICAgICVyMTJiCisgICAgICAgIGFkZGwgICAgICAk MiwgJXIxNGQKKyAgICAgICAgY21wYiAgICAgICQxNiwgJXIxMmIKKyAgICAg ICAgamIgICAgICAgIC5MQkxfMV82CisKKyAgICAgICAgbW92dXBzICAgIDEx MiglcnNwKSwgJXhtbTgKKyAgICAgICAgbW92dXBzICAgIDk2KCVyc3ApLCAl eG1tOQorICAgICAgICBtb3Z1cHMgICAgODAoJXJzcCksICV4bW0xMAorICAg ICAgICBtb3Z1cHMgICAgNjQoJXJzcCksICV4bW0xMQorICAgICAgICBtb3Z1 cHMgICAgNDgoJXJzcCksICV4bW0xMgorICAgICAgICBtb3Z1cHMgICAgMzIo JXJzcCksICV4bW0xMworICAgICAgICBtb3Z1cHMgICAgMTYoJXJzcCksICV4 bW0xNAorICAgICAgICBtb3Z1cHMgICAgKCVyc3ApLCAleG1tMTUKKyAgICAg ICAgbW92cSAgICAgIDEzNiglcnNwKSwgJXJzaQorICAgICAgICBtb3ZxICAg ICAgMTI4KCVyc3ApLCAlcmRpCisgICAgICAgIG1vdnEgICAgICAxNjgoJXJz cCksICVyMTIKKyAgICAgICAgbW92cSAgICAgIDE2MCglcnNwKSwgJXIxMwor ICAgICAgICBtb3ZxICAgICAgMTUyKCVyc3ApLCAlcjE0CisgICAgICAgIG1v dnEgICAgICAxNDQoJXJzcCksICVyMTUKKyAgICAgICAgbW92dXBzICAgIDI1 NiglcnNwKSwgJXhtbTAKKyAgICAgICAgam1wICAgICAgIC5MQkxfMV8yCisK Ky5MQkxfMV8xMDoKKyAgICAgICAgbW92emJsICAgICVyMTJiLCAlcjE1ZAor ICAgICAgICBzaGxxICAgICAgJDQsICVyMTUKKyAgICAgICAgbW92c2QgICAg IDIwMCglcnNwLCVyMTUpLCAleG1tMAorCisgICAgICAgIGNhbGwgICAgICBj b3NAUExUCisKKyAgICAgICAgbW92c2QgICAgICV4bW0wLCAyNjQoJXJzcCwl cjE1KQorICAgICAgICBqbXAgICAgICAgLkxCTF8xXzgKKworLkxCTF8xXzEy OgorICAgICAgICBtb3Z6YmwgICAgJXIxMmIsICVyMTVkCisgICAgICAgIHNo bHEgICAgICAkNCwgJXIxNQorICAgICAgICBtb3ZzZCAgICAgMTkyKCVyc3As JXIxNSksICV4bW0wCisKKyAgICAgICAgY2FsbCAgICAgIGNvc0BQTFQKKwor ICAgICAgICBtb3ZzZCAgICAgJXhtbTAsIDI1NiglcnNwLCVyMTUpCisgICAg ICAgIGptcCAgICAgICAuTEJMXzFfNworCitFTkQoX1pHVmJOMnZfY29zKQpk aWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvZnB1L3N2bWxfZF9jb3M0X2Nv cmVfYXZ4LlMgYi9zeXNkZXBzL3g4Nl82NC9mcHUvc3ZtbF9kX2NvczRfY29y ZV9hdnguUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y NGI0Zjc1Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvZnB1 L3N2bWxfZF9jb3M0X2NvcmVfYXZ4LlMKQEAgLTAsMCArMSwzOSBAQAorLyog RnVuY3Rpb24gY29zIHZlY3Rvcml6ZWQgaW4gQVZYIElTQSBhcyB3cmFwcGVy IHRvIFNTRTQgSVNBIHZlcnNpb24uCisgICBDb3B5cmlnaHQgKEMpIDIwMTQg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05V IEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJh cnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworCisjaW5jbHVkZSA8c3lzZGVwLmg+CisKKwkudGV4dAor RU5UUlkoX1pHVmNONHZfY29zKQorICAgICAgICBwdXNocQkJJXJicCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBtb3Zx CQklcnNwLCAlcmJwCisgICAgICAgIGFuZHEJCSQtMzIsICVyc3AKKyAgICAg ICAgc3VicQkJJDMyLCAlcnNwCisgICAgICAgIHZleHRyYWN0ZjEyOAkkMSwg JXltbTAsICglcnNwKQorICAgICAgICB2emVyb3VwcGVyCisgICAgICAgIGNh bGwJCV9aR1ZiTjJ2X2Nvc0BQTFQKKyAgICAgICAgdm1vdmFwZAkJJXhtbTAs IDE2KCVyc3ApCisgICAgICAgIHZtb3ZhcHMJCSglcnNwKSwgJXhtbTAKKyAg ICAgICAgY2FsbAkJX1pHVmJOMnZfY29zQFBMVAorICAgICAgICB2bW92YXBk CQkleG1tMCwgJXhtbTEKKyAgICAgICAgdm1vdmFwZAkJMTYoJXJzcCksICV4 bW0wCisgICAgICAgIHZpbnNlcnRmMTI4CSQxLCAleG1tMSwgJXltbTAsICV5 bW0wCisgICAgICAgIG1vdnEJCSVyYnAsICVyc3AKKyAgICAgICAgcG9wcQkJ JXJicAorICAgICAgICByZXQKK0VORChfWkdWY040dl9jb3MpCmRpZmYgLS1n aXQgYS9zeXNkZXBzL3g4Nl82NC9mcHUvc3ZtbF9kX2NvczRfY29yZV9hdngy LlMgYi9zeXNkZXBzL3g4Nl82NC9mcHUvc3ZtbF9kX2NvczRfY29yZV9hdngy LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVkYjZi MwotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMveDg2XzY0L2ZwdS9zdm1s X2RfY29zNF9jb3JlX2F2eDIuUwpAQCAtMCwwICsxLDE5NSBAQAorLyogRnVu Y3Rpb24gY29zIHZlY3Rvcml6ZWQgd2l0aCBBVlgyLgorICAgQ29weXJpZ2h0 IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBH TlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN5c2RlcC5oPgor CisjZGVmaW5lIF9EQVRBX1RBQkxFX09GRlNFVFNfT05MWV8KKyNpbmNsdWRl ICJzdm1sX2RfY29zX2RhdGEuUyIKKworCS50ZXh0CitFTlRSWShfWkdWZE40 dl9jb3MpCisKKy8qIEFMR09SSVRITSBERVNDUklQVElPTjoKKyAqICAgICAK KyAqICAgICggbG93IGFjY3VyYWN5ICggPCA0dWxwICkgb3IgZW5oYW5jZWQg cGVyZm9ybWFuY2UgCisgKiAgICAgICggaGFsZiBvZiBjb3JyZWN0IG1hbnRp c3NhICkgaW1wbGVtZW50YXRpb24gKQorICogICAgIAorICogICAgQXJndW1l bnQgcmVwcmVzZW50YXRpb246CisgKiAgICBhcmcgKyBQaS8yID0gKE4qUGkg KyBSKQorICogICAgCisgKiAgICBSZXN1bHQgY2FsY3VsYXRpb246CisgKiAg ICBjb3MoYXJnKSA9IHNpbihhcmcrUGkvMikgPSBzaW4oTipQaSArIFIpID0g KC0xKV5OICogc2luKFIpCisgKiAgICBzaW4oUikgaXMgYXBwcm94aW1hdGVk IGJ5IGNvcnJlc3BvbmRpbmcgcG9seW5vbWlhbAorICovCisgICAgICAgIHB1 c2hxICAgICAlcmJwCisgICAgICAgIG1vdnEgICAgICAlcnNwLCAlcmJwCisg ICAgICAgIGFuZHEgICAgICAkLTY0LCAlcnNwCisgICAgICAgIHN1YnEgICAg ICAkNDQ4LCAlcnNwCisgICAgICAgIG1vdnEgICAgICBfX3N2bWxfZGNvc19k YXRhQEdPVFBDUkVMKCVyaXApLCAlcmF4CisgICAgICAgIHZtb3ZhcGQgICAl eW1tMCwgJXltbTEKKyAgICAgICAgdm1vdnVwZCBfX2RJbnZQSSglcmF4KSwg JXltbTQKKyAgICAgICAgdm1vdnVwZCBfX2RSU2hpZnRlciglcmF4KSwgJXlt bTUKKworLyoKKyAqIEFSR1VNRU5UIFJBTkdFIFJFRFVDVElPTjoKKyAqIEFk ZCBQaS8yIHRvIGFyZ3VtZW50OiBYJyA9IFgrUGkvMgorICovCisgICAgICAg IHZhZGRwZCBfX2RIYWxmUEkoJXJheCksICV5bW0xLCAleW1tNworCisvKiBH ZXQgYWJzb2x1dGUgYXJndW1lbnQgdmFsdWU6IFgnID0gfFgnfCAqLworICAg ICAgICB2YW5kcGQgX19kQWJzTWFzayglcmF4KSwgJXltbTcsICV5bW0yCisK Ky8qIFkgPSBYJypJbnZQaSArIFJTIDogcmlnaHQgc2hpZnRlciBhZGQgKi8K KyAgICAgICAgdmZtYWRkMjEzcGQgJXltbTUsICV5bW00LCAleW1tNworICAg ICAgICB2bW92dXBkIF9fZEM3KCVyYXgpLCAleW1tNAorCisvKiBDaGVjayBm b3IgbGFyZ2UgYXJndW1lbnRzIHBhdGggKi8KKyAgICAgICAgdmNtcG5sZV91 cXBkIF9fZFJhbmdlVmFsKCVyYXgpLCAleW1tMiwgJXltbTMKKworLyogTiA9 IFkgLSBSUyA6IHJpZ2h0IHNoaWZ0ZXIgc3ViICovCisgICAgICAgIHZzdWJw ZCAgICAleW1tNSwgJXltbTcsICV5bW02CisgICAgICAgIHZtb3Z1cGQgX19k UEkxX0ZNQSglcmF4KSwgJXltbTIKKworLyogU2lnblJlcyA9IFk8PDYzIDog c2hpZnQgTFNCIHRvIE1TQiBwbGFjZSBmb3IgcmVzdWx0IHNpZ24gKi8KKyAg ICAgICAgdnBzbGxxICAgICQ2MywgJXltbTcsICV5bW03CisKKy8qIE4gPSBO IC0gMC41ICovCisgICAgICAgIHZzdWJwZCBfX2RPbmVIYWxmKCVyYXgpLCAl eW1tNiwgJXltbTAKKyAgICAgICAgdm1vdm1za3BkICV5bW0zLCAlZWN4CisK Ky8qIFIgPSBYIC0gTipQaTEgKi8KKyAgICAgICAgdm1vdmFwZCAgICV5bW0x LCAleW1tMworICAgICAgICB2Zm5tYWRkMjMxcGQgJXltbTAsICV5bW0yLCAl eW1tMworCisvKiBSID0gUiAtIE4qUGkyICovCisgICAgICAgIHZmbm1hZGQy MzFwZCBfX2RQSTJfRk1BKCVyYXgpLCAleW1tMCwgJXltbTMKKworLyogUiA9 IFIgLSBOKlBpMyAqLworICAgICAgICB2Zm5tYWRkMTMycGQgX19kUEkzX0ZN QSglcmF4KSwgJXltbTMsICV5bW0wCisKKy8qCisgKiBQT0xZTk9NSUFMIEFQ UFJPWElNQVRJT046CisgKiBSMiA9IFIqUgorICovCisgICAgICAgIHZtdWxw ZCAgICAleW1tMCwgJXltbTAsICV5bW01CisgICAgICAgIHZmbWFkZDIxM3Bk IF9fZEM2KCVyYXgpLCAleW1tNSwgJXltbTQKKyAgICAgICAgdmZtYWRkMjEz cGQgX19kQzUoJXJheCksICV5bW01LCAleW1tNAorICAgICAgICB2Zm1hZGQy MTNwZCBfX2RDNCglcmF4KSwgJXltbTUsICV5bW00CisKKy8qIFBvbHkgPSBD MytSMiooQzQrUjIqKEM1K1IyKihDNitSMipDNykpKSAqLworICAgICAgICB2 Zm1hZGQyMTNwZCBfX2RDMyglcmF4KSwgJXltbTUsICV5bW00CisKKy8qIFBv bHkgPSBSK1IqKFIyKihDMStSMiooQzIrUjIqUG9seSkpKSAqLworICAgICAg ICB2Zm1hZGQyMTNwZCBfX2RDMiglcmF4KSwgJXltbTUsICV5bW00CisgICAg ICAgIHZmbWFkZDIxM3BkIF9fZEMxKCVyYXgpLCAleW1tNSwgJXltbTQKKyAg ICAgICAgdm11bHBkICAgICV5bW01LCAleW1tNCwgJXltbTYKKyAgICAgICAg dmZtYWRkMjEzcGQgJXltbTAsICV5bW0wLCAleW1tNgorCisvKgorICogUkVD T05TVFJVQ1RJT046CisgKiBGaW5hbCBzaWduIHNldHRpbmc6IFJlcyA9IFBv bHleU2lnblJlcworICovCisgICAgICAgIHZ4b3JwZCAgICAleW1tNywgJXlt bTYsICV5bW0wCisgICAgICAgIHRlc3RsICAgICAlZWN4LCAlZWN4CisgICAg ICAgIGpuZSAgICAgICAuTEJMXzFfMworCisuTEJMXzFfMjoKKyAgICAgICAg bW92cSAgICAgICVyYnAsICVyc3AKKyAgICAgICAgcG9wcSAgICAgICVyYnAK KyAgICAgICAgcmV0CisKKy5MQkxfMV8zOgorICAgICAgICB2bW92dXBkICAg JXltbTEsIDMyMCglcnNwKQorICAgICAgICB2bW92dXBkICAgJXltbTAsIDM4 NCglcnNwKQorICAgICAgICBqZSAgICAgICAgLkxCTF8xXzIKKworICAgICAg ICB4b3JiICAgICAgJWRsLCAlZGwKKyAgICAgICAgeG9ybCAgICAgICVlYXgs ICVlYXgKKyAgICAgICAgdm1vdnVwcyAgICV5bW04LCAyMjQoJXJzcCkKKyAg ICAgICAgdm1vdnVwcyAgICV5bW05LCAxOTIoJXJzcCkKKyAgICAgICAgdm1v dnVwcyAgICV5bW0xMCwgMTYwKCVyc3ApCisgICAgICAgIHZtb3Z1cHMgICAl eW1tMTEsIDEyOCglcnNwKQorICAgICAgICB2bW92dXBzICAgJXltbTEyLCA5 NiglcnNwKQorICAgICAgICB2bW92dXBzICAgJXltbTEzLCA2NCglcnNwKQor ICAgICAgICB2bW92dXBzICAgJXltbTE0LCAzMiglcnNwKQorICAgICAgICB2 bW92dXBzICAgJXltbTE1LCAoJXJzcCkKKyAgICAgICAgbW92cSAgICAgICVy c2ksIDI2NCglcnNwKQorICAgICAgICBtb3ZxICAgICAgJXJkaSwgMjU2KCVy c3ApCisgICAgICAgIG1vdnEgICAgICAlcjEyLCAyOTYoJXJzcCkKKyAgICAg ICAgbW92YiAgICAgICVkbCwgJXIxMmIKKyAgICAgICAgbW92cSAgICAgICVy MTMsIDI4OCglcnNwKQorICAgICAgICBtb3ZsICAgICAgJWVjeCwgJXIxM2QK KyAgICAgICAgbW92cSAgICAgICVyMTQsIDI4MCglcnNwKQorICAgICAgICBt b3ZsICAgICAgJWVheCwgJXIxNGQKKyAgICAgICAgbW92cSAgICAgICVyMTUs IDI3MiglcnNwKQorCisuTEJMXzFfNjoKKyAgICAgICAgYnRsICAgICAgICVy MTRkLCAlcjEzZAorICAgICAgICBqYyAgICAgICAgLkxCTF8xXzEyCisKKy5M QkxfMV83OgorICAgICAgICBsZWEgICAgICAgMSglcjE0KSwgJWVzaQorICAg ICAgICBidGwgICAgICAgJWVzaSwgJXIxM2QKKyAgICAgICAgamMgICAgICAg IC5MQkxfMV8xMAorCisuTEJMXzFfODoKKyAgICAgICAgaW5jYiAgICAgICVy MTJiCisgICAgICAgIGFkZGwgICAgICAkMiwgJXIxNGQKKyAgICAgICAgY21w YiAgICAgICQxNiwgJXIxMmIKKyAgICAgICAgamIgICAgICAgIC5MQkxfMV82 CisKKyAgICAgICAgdm1vdnVwcyAgIDIyNCglcnNwKSwgJXltbTgKKyAgICAg ICAgdm1vdnVwcyAgIDE5MiglcnNwKSwgJXltbTkKKyAgICAgICAgdm1vdnVw cyAgIDE2MCglcnNwKSwgJXltbTEwCisgICAgICAgIHZtb3Z1cHMgICAxMjgo JXJzcCksICV5bW0xMQorICAgICAgICB2bW92dXBzICAgOTYoJXJzcCksICV5 bW0xMgorICAgICAgICB2bW92dXBzICAgNjQoJXJzcCksICV5bW0xMworICAg ICAgICB2bW92dXBzICAgMzIoJXJzcCksICV5bW0xNAorICAgICAgICB2bW92 dXBzICAgKCVyc3ApLCAleW1tMTUKKyAgICAgICAgdm1vdnVwZCAgIDM4NCgl cnNwKSwgJXltbTAKKyAgICAgICAgbW92cSAgICAgIDI2NCglcnNwKSwgJXJz aQorICAgICAgICBtb3ZxICAgICAgMjU2KCVyc3ApLCAlcmRpCisgICAgICAg IG1vdnEgICAgICAyOTYoJXJzcCksICVyMTIKKyAgICAgICAgbW92cSAgICAg IDI4OCglcnNwKSwgJXIxMworICAgICAgICBtb3ZxICAgICAgMjgwKCVyc3Ap LCAlcjE0CisgICAgICAgIG1vdnEgICAgICAyNzIoJXJzcCksICVyMTUKKyAg ICAgICAgam1wICAgICAgIC5MQkxfMV8yCisKKy5MQkxfMV8xMDoKKyAgICAg ICAgbW92emJsICAgICVyMTJiLCAlcjE1ZAorICAgICAgICBzaGxxICAgICAg JDQsICVyMTUKKyAgICAgICAgdm1vdnNkICAgIDMyOCglcnNwLCVyMTUpLCAl eG1tMAorICAgICAgICB2emVyb3VwcGVyCisKKyAgICAgICAgY2FsbCAgICAg IGNvc0BQTFQKKworICAgICAgICB2bW92c2QgICAgJXhtbTAsIDM5MiglcnNw LCVyMTUpCisgICAgICAgIGptcCAgICAgICAuTEJMXzFfOAorCisuTEJMXzFf MTI6CisgICAgICAgIG1vdnpibCAgICAlcjEyYiwgJXIxNWQKKyAgICAgICAg c2hscSAgICAgICQ0LCAlcjE1CisgICAgICAgIHZtb3ZzZCAgICAzMjAoJXJz cCwlcjE1KSwgJXhtbTAKKyAgICAgICAgdnplcm91cHBlcgorCisgICAgICAg IGNhbGwgICAgICBjb3NAUExUCisKKyAgICAgICAgdm1vdnNkICAgICV4bW0w LCAzODQoJXJzcCwlcjE1KQorICAgICAgICBqbXAgICAgICAgLkxCTF8xXzcK KworRU5EKF9aR1ZkTjR2X2NvcykKZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2 XzY0L2ZwdS9zdm1sX2RfY29zX2RhdGEuUyBiL3N5c2RlcHMveDg2XzY0L2Zw dS9zdm1sX2RfY29zX2RhdGEuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40ZTlmMzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVw cy94ODZfNjQvZnB1L3N2bWxfZF9jb3NfZGF0YS5TCkBAIC0wLDAgKzEsMTQ3 IEBACisvKiBEYXRhIGZvciB2ZWN0b3JpemVkIGNvcy4KKyAgIENvcHlyaWdo dCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpZm5kZWYgRF9DT1NfREFUQQor I2RlZmluZSBEX0NPU19EQVRBCisKKy8qIE9mZnNldHMgZm9yIGRhdGEgdGFi bGUKKyAqLworI2RlZmluZSBfX2RBYnNNYXNrCQkwCisjZGVmaW5lIF9fZFJh bmdlVmFsCQk2NAorI2RlZmluZSBfX2RIYWxmUEkJCTEyOAorI2RlZmluZSBf X2RJbnZQSQkJMTkyCisjZGVmaW5lIF9fZFJTaGlmdGVyCQkyNTYKKyNkZWZp bmUgX19kT25lSGFsZgkJMzIwCisjZGVmaW5lIF9fZFBJMQkJCTM4NAorI2Rl ZmluZSBfX2RQSTIJCQk0NDgKKyNkZWZpbmUgX19kUEkzCQkJNTEyCisjZGVm aW5lIF9fZFBJNAkJCTU3NgorI2RlZmluZSBfX2RQSTFfRk1BCQk2NDAKKyNk ZWZpbmUgX19kUEkyX0ZNQQkJNzA0CisjZGVmaW5lIF9fZFBJM19GTUEJCTc2 OAorI2RlZmluZSBfX2RDMQkJCTgzMgorI2RlZmluZSBfX2RDMgkJCTg5Ngor I2RlZmluZSBfX2RDMwkJCTk2MAorI2RlZmluZSBfX2RDNAkJCTEwMjQKKyNk ZWZpbmUgX19kQzUJCQkxMDg4CisjZGVmaW5lIF9fZEM2CQkJMTE1MgorI2Rl ZmluZSBfX2RDNwkJCTEyMTYKKyNkZWZpbmUgX19kQWJzTWFza19sYQkJMTI4 MAorI2RlZmluZSBfX2RJbnZQSV9sYQkJMTM0NAorI2RlZmluZSBfX2RSU2hp ZnRlcl9sYQkJMTQwOAorI2RlZmluZSBfX2RSU2hpZnRlcm01X2xhCTE0NzIK KyNkZWZpbmUgX19kUlhtYXhfbGEJCTE1MzYKKworI2lmbmRlZiBfREFUQV9U QUJMRV9PRkZTRVRTX09OTFlfCisKKy5tYWNybyBkb3VibGVfdmVjdG9yIG9m ZnNldCB2YWx1ZQorLmlmIC4tX19zdm1sX2Rjb3NfZGF0YSAhPSBcb2Zmc2V0 CisuZXJyCisuZW5kaWYKKy5yZXB0IDgKKy5xdWFkIFx2YWx1ZQorLmVuZHIK Ky5lbmRtCisKKwkuc2VjdGlvbiAucm9kYXRhLCAiYSIKKwkuYWxpZ24gNjQK KworLyogRGF0YSB0YWJsZSBmb3IgdmVjdG9yIGltcGxlbWVudGF0aW9ucyBv ZiBmdW5jdGlvbiBjb3MuIAorICogVGhlIHRhYmxlIG1heSBjb250YWluIHBv bHlub21pYWwsIHJlZHVjdGlvbiwgbG9va3VwCisgKiBjb2VmZmljaWVudHMg YW5kIG90aGVyIGNvbnN0YW50cyBvYnRhaW5lZCB0aHJvdWdoIGRpZmZlcmVu dAorICogbWV0aG9kcyBvZiByZXNlYXJjaCBhbmQgZXhwZXJpbWVudGFsIHdv cmsuCisgKi8KKwkuZ2xvYmwgX19zdm1sX2Rjb3NfZGF0YQorX19zdm1sX2Rj b3NfZGF0YToKKworLyogR2VuZXJhbCBwdXJwb3NlIGNvbnN0YW50czoKKyAq IGFic29sdXRlIHZhbHVlIG1hc2sKKyAqLworZG91YmxlX3ZlY3RvciBfX2RB YnNNYXNrIDB4N2ZmZmZmZmZmZmZmZmZmZgorCisvKiB3b3JraW5nIHJhbmdl IHRocmVzaG9sZCAqLworZG91YmxlX3ZlY3RvciBfX2RSYW5nZVZhbCAweDQx NjAwMDAwMDAwMDAwMDAKKworLyogUEkvMiAqLworZG91YmxlX3ZlY3RvciBf X2RIYWxmUEkgMHgzZmY5MjFmYjU0NDQyZDE4CisKKy8qIDEvUEkgKi8KK2Rv dWJsZV92ZWN0b3IgX19kSW52UEkgMHgzZmQ0NWYzMDZkYzljODgzCisKKy8q IHJpZ2h0LXNoaWZ0ZXIgY29uc3RhbnQgKi8KK2RvdWJsZV92ZWN0b3IgX19k UlNoaWZ0ZXIgMHg0MzM4MDAwMDAwMDAwMDAwCisKKy8qIDAuNSAqLworZG91 YmxlX3ZlY3RvciBfX2RPbmVIYWxmIDB4M2ZlMDAwMDAwMDAwMDAwMAorCisv KiBSYW5nZSByZWR1Y3Rpb24gUEktYmFzZWQgY29uc3RhbnRzOgorICogUEkg aGlnaCBwYXJ0CisgKi8KK2RvdWJsZV92ZWN0b3IgX19kUEkxIDB4NDAwOTIx ZmI0MDAwMDAwMAorCisvKiBQSSBtaWQgIHBhcnQgMSAqLworZG91YmxlX3Zl Y3RvciBfX2RQSTIgMHgzZTg0NDQyZDAwMDAwMDAwCisKKy8qIFBJIG1pZCAg cGFydCAyICovCitkb3VibGVfdmVjdG9yIF9fZFBJMyAweDNkMDg0Njk4ODAw MDAwMDAKKworLyogUEkgbG93ICBwYXJ0ICovCitkb3VibGVfdmVjdG9yIF9f ZFBJNCAweDNiODhjYzUxNzAxYjgzOWEKKworLyogUmFuZ2UgcmVkdWN0aW9u IFBJLWJhc2VkIGNvbnN0YW50cyBpZiBGTUEgYXZhaWxhYmxlOgorICogUEkg aGlnaCBwYXJ0IChGTUEgYXZhaWxhYmxlKQorICovCitkb3VibGVfdmVjdG9y IF9fZFBJMV9GTUEgMHg0MDA5MjFmYjU0NDQyZDE4CisKKy8qIFBJIG1pZCBw YXJ0ICAoRk1BIGF2YWlsYWJsZSkgKi8KK2RvdWJsZV92ZWN0b3IgX19kUEky X0ZNQSAweDNjYTFhNjI2MzMxNDVjMDYKKworLyogUEkgbG93IHBhcnQgIChG TUEgYXZhaWxhYmxlKSAqLworZG91YmxlX3ZlY3RvciBfX2RQSTNfRk1BIDB4 Mzk1YzFjZDEyOTAyNGUwOQorCisvKiBQb2x5bm9taWFsIGNvZWZmaWNpZW50 cyAocmVsYXRpdmUgZXJyb3IgMl4oLTUyLjExNSkpOiAqLworZG91YmxlX3Zl Y3RvciBfX2RDMSAweGJmYzU1NTU1NTU1NTU0YTcKK2RvdWJsZV92ZWN0b3Ig X19kQzIgMHgzZjgxMTExMTExMTBhNGE4Citkb3VibGVfdmVjdG9yIF9fZEMz IDB4YmYyYTAxYTAxOWE1Yjg2ZAorZG91YmxlX3ZlY3RvciBfX2RDNCAweDNl YzcxZGUzODAzMGZlYTAKK2RvdWJsZV92ZWN0b3IgX19kQzUgMHhiZTVhZTYz NTQ2MDAyMjMxCitkb3VibGVfdmVjdG9yIF9fZEM2IDB4M2RlNjBlNjg1N2Ey ZjIyMAorZG91YmxlX3ZlY3RvciBfX2RDNyAweGJkNjlmMGQ2MDgxMWFhYzgK KworLyoKKyAqIEFkZGl0aW9uYWwgY29uc3RhbnRzOgorICogYWJzb2x1dGUg dmFsdWUgbWFzaworICovCitkb3VibGVfdmVjdG9yIF9fZEFic01hc2tfbGEg MHg3ZmZmZmZmZmZmZmZmZmZmCisKKy8qIDEvUEkgKi8KK2RvdWJsZV92ZWN0 b3IgX19kSW52UElfbGEgMHgzZmQ0NWYzMDZkYzljODgzCisKKy8qIHJpZ2h0 LXNoaWZlciBmb3IgbG93IGFjY3VyYWN5IHZlcnNpb24gKi8KK2RvdWJsZV92 ZWN0b3IgX19kUlNoaWZ0ZXJfbGEgMHg0MzMwMDAwMDAwMDAwMDAwIAorCisv KiByaWdodC1zaGlmZXItMS4wIGZvciBsb3cgYWNjdXJhY3kgdmVyc2lvbiAq LworZG91YmxlX3ZlY3RvciBfX2RSU2hpZnRlcm01X2xhIDB4NDMyZmZmZmZm ZmZmZmZmZgorCisvKiByaWdodC1zaGlmZXIgd2l0aCBsb3cgbWFzayBmb3Ig bG93IGFjY3VyYWN5IHZlcnNpb24gKi8KK2RvdWJsZV92ZWN0b3IgX19kUlht YXhfbGEgMHg0MzMwMDAwMDAwN2ZmZmZlCisKKwkudHlwZQlfX3N2bWxfZGNv c19kYXRhLEBvYmplY3QKKwkuc2l6ZQlfX3N2bWxfZGNvc19kYXRhLC4tX19z dm1sX2Rjb3NfZGF0YQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5 c2RlcHMveDg2XzY0L2ZwdS90ZXN0LWRvdWJsZS12bGVuMi5jIGIvc3lzZGVw cy94ODZfNjQvZnB1L3Rlc3QtZG91YmxlLXZsZW4yLmMKbmV3IGZpbGUgbW9k ZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjc0YzVkZQotLS0gL2Rldi9udWxs CisrKyBiL3N5c2RlcHMveDg2XzY0L2ZwdS90ZXN0LWRvdWJsZS12bGVuMi5j CkBAIC0wLDAgKzEsNDQgQEAKKy8qIFRlc3RzIGZvciBTU0U0IElTQSB2ZXJz aW9ucyBvZiB2ZWN0b3IgbWF0aCBmdW5jdGlvbnMuCisgICBDb3B5cmlnaHQg KEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdO VSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSAidGVzdC1kb3VibGUt dmxlbjIuaCIKKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKworLy8gV3JhcHBl ciBmcm9tIHNjYWxhciB0byB2ZWN0b3IgZnVuY3Rpb24gaW1wbGVtZW50ZWQg aW4gU1NFNC4KKyNkZWZpbmUgVkVDVE9SX1dSQVBQRVIoc2NhbGFyX2Z1bmMs dmVjdG9yX2Z1bmMpIFwKK2V4dGVybiBfX20xMjhkIHZlY3Rvcl9mdW5jICgg X19tMTI4ZCk7XAorRkxPQVQgc2NhbGFyX2Z1bmMgKEZMT0FUIHgpXAore1wK KyAgaW50IGk7XAorICBfX20xMjhkIG14ID0gX21tX3NldDFfcGQgKHgpO1wK KyAgX19tMTI4ZCBtciA9IHZlY3Rvcl9mdW5jIChteCk7XAorICBmb3IgKGk9 MTtpPDI7aSsrKVwKKyAge1wKKyAgICBpZiAoKChGTE9BVCopJm1yKVswXSE9 KChGTE9BVCopJm1yKVtpXSlcCisgICAge1wKKyAgICAgIHJldHVybiAoKEZM T0FUKikmbXIpWzBdKzAuMTtcCisgICAgfVwKKyAgfVwKKyAgcmV0dXJuICgo RkxPQVQqKSZtcilbMF07XAorfQorCitWRUNUT1JfV1JBUFBFUiAoV1JBUFBF Ul9OQU1FIChjb3MpLF9aR1ZiTjJ2X2NvcykKKworI2RlZmluZSBURVNUX1ZF Q1RPUl9jb3MgMQorCisjaW5jbHVkZSAibGlibS10ZXN0LmMiCmRpZmYgLS1n aXQgYS9zeXNkZXBzL3g4Nl82NC9mcHUvdGVzdC1kb3VibGUtdmxlbjQtYXZ4 Mi5jIGIvc3lzZGVwcy94ODZfNjQvZnB1L3Rlc3QtZG91YmxlLXZsZW40LWF2 eDIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWI3 OTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvZnB1L3Rl c3QtZG91YmxlLXZsZW40LWF2eDIuYwpAQCAtMCwwICsxLDQ4IEBACisvKiBU ZXN0cyBmb3IgQVZYMiBJU0EgdmVyc2lvbnMgb2YgdmVjdG9yIG1hdGggZnVu Y3Rpb25zLgorICAgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj ZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNl ZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKwor I2luY2x1ZGUgInRlc3QtZG91YmxlLXZsZW40LmgiCisjaW5jbHVkZSA8aW1t aW50cmluLmg+CisKKy8vIFdyYXBwZXIgZnJvbSBzY2FsYXIgdG8gdmVjdG9y IGZ1bmN0aW9uIGltcGxlbWVudGVkIGluIEFWWDIuCisjZGVmaW5lIFZFQ1RP Ul9XUkFQUEVSKHNjYWxhcl9mdW5jLHZlY3Rvcl9mdW5jKSBcCitleHRlcm4g X19tMjU2ZCB2ZWN0b3JfZnVuYyAoX19tMjU2ZCk7XAorRkxPQVQgc2NhbGFy X2Z1bmMgKEZMT0FUIHgpXAore1wKKyAgaW50IGk7XAorICBfX20yNTZkIG14 ID0gX21tMjU2X3NldDFfcGQgKHgpO1wKKyAgX19tMjU2ZCBtciA9IHZlY3Rv cl9mdW5jIChteCk7XAorICBmb3IgKGk9MTtpPDQ7aSsrKVwKKyAge1wKKyAg ICBpZiAoKChGTE9BVCopJm1yKVswXSE9KChGTE9BVCopJm1yKVtpXSlcCisg ICAge1wKKyAgICAgIHJldHVybiAoKEZMT0FUKikmbXIpWzBdKzAuMTtcCisg ICAgfVwKKyAgfVwKKyAgcmV0dXJuICgoRkxPQVQqKSZtcilbMF07XAorfQor CisjZGVmaW5lIFZFQ19QUkVGSVggdmxlbjRfYXZ4Ml8KKworVkVDVE9SX1dS QVBQRVIgKFdSQVBQRVJfTkFNRSAoY29zKSxfWkdWZE40dl9jb3MpCisKKyNk ZWZpbmUgVEVTVF9WRUNUT1JfY29zIDEKKworI2RlZmluZSBSRVFVSVJFX0FW WDIKKworI2luY2x1ZGUgImxpYm0tdGVzdC5jIgpkaWZmIC0tZ2l0IGEvc3lz ZGVwcy94ODZfNjQvZnB1L3Rlc3QtZG91YmxlLXZsZW40LmMgYi9zeXNkZXBz L3g4Nl82NC9mcHUvdGVzdC1kb3VibGUtdmxlbjQuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjY4YWY1Ci0tLSAvZGV2L251bGwK KysrIGIvc3lzZGVwcy94ODZfNjQvZnB1L3Rlc3QtZG91YmxlLXZsZW40LmMK QEAgLTAsMCArMSw0NiBAQAorLyogVGVzdHMgZm9yIEFWWCBJU0EgdmVyc2lv bnMgb2YgdmVjdG9yIG1hdGggZnVuY3Rpb25zLgorICAgQ29weXJpZ2h0IChD KSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg QyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgInRlc3QtZG91YmxlLXZs ZW40LmgiCisjaW5jbHVkZSA8aW1taW50cmluLmg+CisKKy8vIFdyYXBwZXIg ZnJvbSBzY2FsYXIgdG8gdmVjdG9yIGZ1bmN0aW9uIGltcGxlbWVudGVkIGlu IEFWWC4KKyNkZWZpbmUgVkVDVE9SX1dSQVBQRVIoc2NhbGFyX2Z1bmMsdmVj dG9yX2Z1bmMpIFwKK2V4dGVybiBfX20yNTZkIHZlY3Rvcl9mdW5jIChfX20y NTZkKTtcCitGTE9BVCBzY2FsYXJfZnVuYyAoRkxPQVQgeClcCit7XAorICBp bnQgaTtcCisgIF9fbTI1NmQgbXggPSBfbW0yNTZfc2V0MV9wZCAoeCk7XAor ICBfX20yNTZkIG1yID0gdmVjdG9yX2Z1bmMgKG14KTtcCisgIGZvciAoaT0x O2k8NDtpKyspXAorICB7XAorICAgIGlmICgoKEZMT0FUKikmbXIpWzBdIT0o KEZMT0FUKikmbXIpW2ldKVwKKyAgICB7XAorICAgICAgcmV0dXJuICgoRkxP QVQqKSZtcilbMF0rMC4xO1wKKyAgICB9XAorICB9XAorICByZXR1cm4gKChG TE9BVCopJm1yKVswXTtcCit9CisKKyNkZWZpbmUgVkVDX1BSRUZJWCB2bGVu NF9hdnhfCisKK1ZFQ1RPUl9XUkFQUEVSIChXUkFQUEVSX05BTUUgKGNvcyks X1pHVmNONHZfY29zKQorCisjZGVmaW5lIFRFU1RfVkVDVE9SX2NvcyAxCisK KyNpbmNsdWRlICJsaWJtLXRlc3QuYyIKZGlmZiAtLWdpdCBhL3N5c2RlcHMv eDg2XzY0L2ZwdS90ZXN0LWZsb2F0LXZsZW44LmMgYi9zeXNkZXBzL3g4Nl82 NC9mcHUvdGVzdC1mbG9hdC12bGVuOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmZkYjNiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9z eXNkZXBzL3g4Nl82NC9mcHUvdGVzdC1mbG9hdC12bGVuOC5jCkBAIC0wLDAg KzEsNDUgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBz ZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisK KyNpbmNsdWRlICJ0ZXN0LWZsb2F0LXZsZW44LmgiCisKKyNkZWZpbmUgVkVD VE9SX1dSQVBQRVIoc2NhbGFyX2Z1bmMsdmVjdG9yX2Z1bmMpIFwKKy8qZXh0 ZXJuIF9fbTI1NiB2ZWN0b3JfZnVuYyAoX19tMjU2KTsqL1wKK0ZMT0FUIHNj YWxhcl9mdW5jIChGTE9BVCB4KVwKK3tcCisgIGludCBpO1wKKyAgX19tMjU2 IG14ID0gX21tMjU2X3NldDFfcHMgKHgpO1wKKyAgX19tMjU2IG1yID0gbXg7 IC8qdmVjdG9yX2Z1bmMgKG14KTsqL1wKKyAgZm9yIChpPTE7aTw4O2krKylc CisgIHtcCisgICAgaWYgKCgoRkxPQVQqKSZtcilbMF0hPSgoRkxPQVQqKSZt cilbaV0pXAorICAgIHtcCisgICAgICByZXR1cm4gKChGTE9BVCopJm1yKVsw XSswLjE7XAorICAgIH1cCisgIH1cCisgIHJldHVybiAoKEZMT0FUKikmbXIp WzBdO1wKK30KKworI2luY2x1ZGUgPGltbWludHJpbi5oPgorCitWRUNUT1Jf V1JBUFBFUiAoV1JBUFBFUl9OQU1FIChjb3NmKSxfWkdWZE44dl9jb3NmKQor CisjZGVmaW5lIFRFU1RfVkVDVE9SX2Nvc2YgMAorCisjZGVmaW5lIFJFUVVJ UkVfQVZYMgorCisjaW5jbHVkZSAibGlibS10ZXN0LmMiCg== --001a1133322a880790050826cba5--