From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 3871 invoked from network); 7 Aug 2022 04:38:05 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 7 Aug 2022 04:38:05 -0000 Content-Type: multipart/mixed; boundary="===============2373409460111765568==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_WIP_Qt6_webengine?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 07 Aug 2022 06:38:05 +0200 List-Id: Message-ID: <20220807043805.jQzEO4f5f5-F4KC-pVWWSmfs0nzbAq5r0j-CY-4WdJc@z> GitHub notification mails are now in MIME to allow UTF8. --===============2373409460111765568== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBxdDYtd2ViZW5naW5lCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8zODUwOQoKV0lQIFF0NiB3ZWJlbmdpbmUKPCEtLSBVbmNvbW1lbnQg cmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBub3QgYXBwbGlj YWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFu Z2VzIGluIHRoaXMgUFI6ICoqWUVTKip8KipicmllZmx5Kip8KipOTyoqDQpbY2kgc2tpcF0NCg0K PCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRo ZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTog KipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkg dG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNj cmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxv Yi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0 IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9u ZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tp cHBpbmcgQ0kuDQotLT4NCjwhLS0NCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0 IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykN Ci0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1 cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjds DQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg1MDkucGF0Y2ggaXMgYXR0YWNo ZWQ= --===============2373409460111765568== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6-webengine-38509.patch" RnJvbSA1YmQ1OWMzMzBkM2MzMjU0NmMzZmViZDgzZTMyOGNmOTRhZWI1NDlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwg MjggSnVsIDIwMjIgMTY6MzY6MjEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxLzIyXSBxdDYtYmFz ZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbGliYXRv bWljLnBhdGNoIHwgMTQgLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUg ICAgICAgICAgICAgICAgfCAgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAxNyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1iYXNl L3BhdGNoZXMvbGliYXRvbWljLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtYmFzZS9w YXRjaGVzL2xpYmF0b21pYy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJhdG9t aWMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmN2E4MDc1MThlNC4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJhdG9taWMucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1JbmRleDogY21ha2UvRmluZFdyYXBBdG9t aWMuY21ha2UKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL2NtYWtlL0ZpbmRXcmFwQXRvbWljLmNtYWtlCi0r KysgYi9jbWFrZS9GaW5kV3JhcEF0b21pYy5jbWFrZQotQEAgLTM4LDcgKzM4LDggQEAgZW5kaWYo KQotIAotIGFkZF9saWJyYXJ5KFdyYXBBdG9taWM6OldyYXBBdG9taWMgSU5URVJGQUNFIElNUE9S VEVEKQotIGlmKEhBVkVfU1REQVRPTUlDX1dJVEhfTElCKQotLSAgICB0YXJnZXRfbGlua19saWJy YXJpZXMoV3JhcEF0b21pYzo6V3JhcEF0b21pYyBJTlRFUkZBQ0UgYXRvbWljKQotKyAgICBmaW5k X2xpYnJhcnkoTElCQVRPTUlDIGF0b21pYyBSRVFVSVJFRCkKLSsgICAgdGFyZ2V0X2xpbmtfbGli cmFyaWVzKFdyYXBBdG9taWM6OldyYXBBdG9taWMgSU5URVJGQUNFICR7TElCQVRPTUlDfSkKLSBl bmRpZigpCi0gCi0gc2V0KFdyYXBBdG9taWNfRk9VTkQgMSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LWJhc2UvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1iYXNlL3RlbXBsYXRlCmluZGV4IGNjNDdl MThhNzBmZi4uZGU3ZDE1ODNjOGY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1iYXNlL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdxdDYtYmFzZScKIHBrZ25hbWU9cXQ2LWJhc2UKLXZlcnNpb249Ni4z LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKIHdya3NyYz0icXRiYXNl LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJl X2FyZ3M9Ii1ESU5TVEFMTF9EQVRBRElSPXNoYXJlL3F0NgpAQCAtMjksNyArMjksNyBAQCBtYWlu dGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5 IFdJVEggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93 bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259 L3N1Ym1vZHVsZXMvcXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09Yjg2NWFhZTQzMzU3Zjc5MmIzYjBhMTYyODk5ZDliZjZhMTM5M2E1NWM0ZTVlNGVkZTUz MTZiMTU3YjFhMGY5OQorY2hlY2tzdW09MGE2NDQyMWQ5YzI0NjljMmM0ODQ5MGEwMzJhYjkxZDU0 NzAxN2M5Y2MxNzFmM2Y4MDcwYmMzMTg4OGYyNGUwMwogcHl0aG9uX3ZlcnNpb249MwogCiBpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KCkZyb20gZTg5YWM2MWVkMjg0MmY2ZDgyZGE1NGE0NDE3 ZWU0YTM1ZmQ1NGIzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDI4IEp1bCAyMDIyIDE2OjM2OjI0ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwMi8yMl0gcXQ2LWNoYXJ0czogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNw a2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtY2hhcnRz L3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtY2hhcnRzL3RlbXBsYXRlCmluZGV4IDc5Y2I4YTIyMDQw MS4uNTdhM2EwMTVkMTI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9xdDYtY2hhcnRzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAncXQ2LWNoYXJ0cycKIHBrZ25hbWU9cXQ2LWNoYXJ0cwotdmVyc2lvbj02 LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdGNoYXJ0cy1ldmVyeXdo ZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEyLDcgKzEyLDcgQEAg bWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAt b25seSIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25s b2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9z dWJtb2R1bGVzL3F0Y2hhcnRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09NjcyNzYyYzVmNjQxY2NjODhhMzBhZWVkZWZiNjNmMDNjMGY4Mzc2NDliMzM0ZjQ2ZWVh NTc1OTJlODdlMzZjZAorY2hlY2tzdW09ZjMzMGNjMjMyODcyOTEwNGQ3OWIyMDg4OTkwY2UwODQw ZjJkYTg5ZDlkOTg5MzYwZDRjMzUyZTc5N2QyN2NmNwogCiBxdDYtY2hhcnRzLWRldmVsX3BhY2th Z2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoK RnJvbSAzMzFiNDYxNjA1YjkzZDdhOTY2MDA1YTgzNDRiNDM5MDE0OWU2YmM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwg MjggSnVsIDIwMjIgMTY6MzY6MzAgKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzIyXSBxdDYtZGVj bGFyYXRpdmU6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUv dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUg Yi9zcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS90ZW1wbGF0ZQppbmRleCBlMGJkMjhkOWUzODMuLmYz MTk5MDc1MGFmMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtZGVjbGFyYXRpdmUnCiBwa2duYW1lPXF0Ni1kZWNsYXJh dGl2ZQotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJx dGRlY2xhcmF0aXZlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFr ZQpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+ IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwt My4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8i CiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQv JHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRkZWNsYXJhdGl2ZS1ldmVyeXdo ZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWQyOTRiMDI5ZGMyYjJkNGY2NWRh NTE2ZmRjM2I4MDg4ZDMyNjQzZWI3ZmY3N2RiMTM1YThiOWNlOTA0Y2FhMzcKK2NoZWNrc3VtPTAz ZTc2OTQxMjM4MjBmY2NhMzk3Zjk1Y2UzMTJlMGI3ZjMwMzk0OTNjODc1NGM4MzZkYTA5OGExYTA0 MzQ2ZTgKIHJlcGxhY2VzPSJxdDYtcXVpY2tjb250cm9sczI+PTAiCiAKIGlmIFsgIiRDUk9TU19C VUlMRCIgXTsgdGhlbgoKRnJvbSA5YzFkMTM3MDExNmMyNDYyNGRlNmZmYzA0NzNlNDQ1ZmVmMzAx NzU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5k ZXY+CkRhdGU6IFRodSwgMjggSnVsIDIwMjIgMTY6MzY6MzIgKzAyMDAKU3ViamVjdDogW1BBVENI IDA0LzIyXSBxdDYtaW1hZ2Vmb3JtYXRzOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3Mv cXQ2LWltYWdlZm9ybWF0cy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1pbWFn ZWZvcm1hdHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxhdGUKaW5k ZXggZWFjYTk1MjQzYzQ4Li42NWI2MDQzZmU0OTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWlt YWdlZm9ybWF0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1pbWFnZWZvcm1hdHMvdGVtcGxh dGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtaW1hZ2Vmb3JtYXRz JwogcGtnbmFtZT1xdDYtaW1hZ2Vmb3JtYXRzCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4x CiByZXZpc2lvbj0xCiB3cmtzcmM9InF0aW1hZ2Vmb3JtYXRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTIsNCArMTIsNCBAQCBtYWludGFpbmVyPSJK b2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iTEdQTC0zLjAtb25seSBPUiBHUEwt Mi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlz dGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJz aW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRpbWFnZWZvcm1hdHMtZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wMjVkMGQxN2VkNzViNDJhN2ViNmI1MjM3 MzFhYjhmMTcwMjU0MjFhODgxMGNhZGUyNWNhZmZlMDVkOTNhYmVmCitjaGVja3N1bT1hZDAzMTJi OGRmYmJiNjdmNzI5YmZhZGJmY2Q0NzI0NmVlNGExMjhiNzE3NzMxYmExNThjNDFkMDFmZGUyMTJm CgpGcm9tIGEyNTYwOTY1MGU2NTBjODE0Y2IxNGM1YTQxYjVmODhlNGUyMDE2MTAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1 LCAyOCBKdWwgMjAyMiAxNjozNjozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjJdIHF0Ni1s b2NhdGlvbjogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1w bGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZSBiL3NyY3Br Z3MvcXQ2LWxvY2F0aW9uL3RlbXBsYXRlCmluZGV4IGI3Mzk3ZjVmODk0Mi4uYWQzNzI3NzVmODVh IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3F0Ni1sb2NhdGlvbicKIHBrZ25hbWU9cXQ2LWxvY2F0aW9uCi12ZXJzaW9uPTYuMy4wCit2 ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0cG9zaXRpb25pbmctZXZlcnl3aGVy ZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xMiw3ICsxMiw3IEBAIG1h aW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSIoTEdQTC0zLjAt b25seSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdp dGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0 ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNp b24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHBvc2l0aW9uaW5nLWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTllZDUwZjZiMjQ1YTM0NmRiMzRkNjI1ZDAw MTI3NzRlZjBlYzhlN2ZkNjUwMzcxMjdlYzI2NzU4NzA4MjM2ZQorY2hlY2tzdW09MDY3ODhlNGVj YWUxOTIwMDk0YjMwZTQwNDZmMGFiZDIzYzgxODlkOGE1MWU5YzkzOWIwMmYwYjZhYmUyZTg2Ywog CiBxdDYtbG9jYXRpb24tZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKCkZy b20gNGYxOTE4NTBkMzg1YzZmNDNkNGMzZThhY2RiMmY4NjE1MWI0ZGJmZCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDI4 IEp1bCAyMDIyIDE2OjM2OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8yMl0gcXQ2LWxvdHRp ZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtbG90dGllL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtbG90 dGllL3RlbXBsYXRlCmluZGV4IDFjOTdjZDVmNGYzMi4uNDNjYjY4NzFkYTU4IDEwMDY0NAotLS0g YS9zcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtbG90dGllL3Rl bXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWxvdHRpZScK IHBrZ25hbWU9cXQ2LWxvdHRpZQotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNp b249MQogd3Jrc3JjPSJxdGxvdHRpZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRf c3R5bGU9Y21ha2UKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3F0 LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2Vz L3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0bG90dGllLWV2ZXJ5d2hl cmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MzlkYjU3MGJiYmE1YjUyN2ExZWI2 YTU3NzRiZWQ0NzM5OGFjZTJmNzIxN2JiZjQ1YjExOTRhZGE2Y2Y5N2RlYgorY2hlY2tzdW09NzQw YmE3Njk5OTEyNGQ1ZTFhODVlZjNkMDFjNjk5NzZiYjg1NTc4NjJiNmIyNmJmNDhiMzU3ZmUwY2Fi MWNmNQogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCiAJY29uZmlndXJlX2FyZ3Mr PSIgLURRVF9CVUlMRF9URVNUUz1PTiIKCkZyb20gYzU0YTg2OTZiOGMwYWM3ZWZiMDc4ZTdmMDgy NGVlMThlNDJjNzM1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDI4IEp1bCAyMDIyIDE2OjM2OjM4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwNy8yMl0gcXQ2LW5ldHdvcmthdXRoOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0K IHNyY3BrZ3MvcXQ2LW5ldHdvcmthdXRoL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LW5ldHdvcmthdXRoL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtbmV0d29ya2F1dGgvdGVtcGxh dGUKaW5kZXggZTkzNGJlYWRhOWIwLi5kMTNlYWQwMzg2NmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cXQ2LW5ldHdvcmthdXRoL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LW5ldHdvcmthdXRoL3Rl bXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LW5ldHdvcmth dXRoJwogcGtnbmFtZT1xdDYtbmV0d29ya2F1dGgKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4z LjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRuZXR3b3JrYXV0aC1ldmVyeXdoZXJlLXNyYy0ke3Zl cnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0i Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIKIGhvbWVw YWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29m ZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0 bmV0d29ya2F1dGgtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0y MDNhOTg5NDI5MTkwMjg1MjAwMzhmOTBhMjBjZDdlZTMyYjUzNzIzMzU0NWQxMWU0MjljM2UyYzFh ZDkwNjlmCitjaGVja3N1bT1kNjBmNTRiOWQ0NTA5ZmE4YmRiZjE5OTBiYzkxZjZlMjYwZTM4Y2Ri NTdhN2I4MTE5ZmEzODYxYmM1ZDJmYjJhCiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRo ZW4KIAljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgoKRnJvbSA5ZWM5YzIz MDBmMmRmNzEwZTZlOGQ0MzdhYWYxM2EwODQzYzUyYzEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwgMjggSnVsIDIwMjIg MTY6MzY6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzIyXSBxdDYtcXQ1Y29tcGF0OiB1cGRh dGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXF0 NWNvbXBhdC90ZW1wbGF0ZQppbmRleCA3ZmNkNWFkNTA4MGUuLjg3ZjFkMzIyOThiZSAxMDA2NDQK LS0tIGEvc3JjcGtncy9xdDYtcXQ1Y29tcGF0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF0 NWNvbXBhdC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0 Ni1xdDVjb21wYXQnCiBwa2duYW1lPXF0Ni1xdDVjb21wYXQKLXZlcnNpb249Ni4zLjAKLXJldmlz aW9uPTIKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKIHdya3NyYz0icXQ1Y29tcGF0LWV2ZXJ5 d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9 Ii1EUVRfSE9TVF9QQVRIPS91c3IiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkpvaG4g PG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwt ZXhjZXB0aW9uLTEuMCwgTEdQTC0zLjAtb25seSwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmlj aWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0NWNv bXBhdC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTJiMTk5YmU3 ODBjNTBkOTIxNDUxMmI5MjJkOTRjYjI0MGIwNDEyZmQ2M2Y0NTllMzU2Yjc2MTAyY2FkMTcxM2UK K2NoZWNrc3VtPWE0M2VjNjJiZDc3OGVhZWNmODhhZDc4NDcxMThkMWMyYTQ3MWIwZmNiODIwZjkz YmViMzExZDdhYjk1NjZjZmQKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgogCWNv bmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCgpGcm9tIGZlZmRkYmJmNjIyMWY4 YmNmNGRjYmRiZmJkMjFhOTg3NDlkZGI2ZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1LCAyOCBKdWwgMjAyMiAxNjozNjo0 OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjJdIHF0Ni1xdWljazNkOiB1cGRhdGUgdG8gNi4z LjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtcXVpY2szZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUK aW5kZXggMGY3ZWYzMzZhM2ZmLi40NGJmZmI0MWJiNDkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2 LXF1aWNrM2QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtcXVpY2szZC90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1xdWljazNkJwogcGtnbmFtZT1x dDYtcXVpY2szZAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jr c3JjPSJxdHF1aWNrM2QtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNt YWtlCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8v IgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQv JHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRxdWljazNkLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGFkMDViZDFlZTFmNzg0YjE4MjIwYTJk MjYyNWVlOGRlOTE2NjJjODhmZGM3Yjc5ODY2Mjk1M2Q4NmViMzI3ZQorY2hlY2tzdW09MmZhNzY2 ZWU0N2I4YzA3NDEyYjNiNzU1MjA2YWRhMDcxNWZiMDc4MTNiNjRlZDA2OWU3MjA1MDQ0YzA2MTI1 NgogCiBpZiBbICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJiZSIgXTsgdGhlbgogCSMgcG9zc2li bHkgYSBxdDYtc2hhZGVydG9vbHMgYnVnLCBhY3R1YWxseQoKRnJvbSAyM2I0MjVlYzM4YzVkMGI4 ODhiNzA4ODAxZTY1MjRkNjcyNWM3OTMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK b2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwgMjggSnVsIDIwMjIgMTY6MzY6NDkg KzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzIyXSBxdDYtcXVpY2t0aW1lbGluZTogdXBkYXRlIHRv IDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LXF1aWNrdGltZWxpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1x dWlja3RpbWVsaW5lL3RlbXBsYXRlCmluZGV4IDE1YWE3YThlNTgxOS4uZGM3YzNiMTNjYmE2IDEw MDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvcXQ2LXF1aWNrdGltZWxpbmUvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdxdDYtcXVpY2t0aW1lbGluZScKIHBrZ25hbWU9cXQ2LXF1aWNrdGltZWxpbmUK LXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRxdWlj a3RpbWVsaW5lLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbi9yYy8tcmN9IgogYnVpbGRfc3R5bGU9 Y21ha2UKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5p by8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9x dC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbi9yYy8tcmN9L3N1Ym1vZHVsZXMvcXRxdWlja3RpbWVs aW5lLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbi9yYy8tcmN9LnRhci54eiIKLWNoZWNrc3VtPTlm ZjBhOTMxMTU5ZWZjNmJlNWJkOWY4YTFlNGExNmE3MGUyZGFiMzdjZjIyYWQ4NWM2ZDMzMGNjZmRm MzFjMWEKK2NoZWNrc3VtPTU4YTEzY2YwY2U4ZTc3NTU2MzlmMjA2ODQwNzg3MzNhZjI0ZjVhMzE3 ZjZkZGI0MGQ2MDc5YzhjNWEyOGViYmUKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhl bgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCgpGcm9tIGIzZjg2OTRl NzU0MDMxNDVkNmFkZGNlMjdiNGI0YTliNzcxYWEwMmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1LCAyOCBKdWwgMjAyMiAx NjozNjo1MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjJdIHF0Ni1zY3htbDogdXBkYXRlIHRv IDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXNjeG1sL3RlbXBsYXRlCmlu ZGV4IDExMmJhY2EwYWI4My4uNTRmNjhiMWZkNjFmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1z Y3htbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1zY3htbCcKIHBrZ25hbWU9cXQ2LXNjeG1s Ci12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0c2N4 bWwtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xMiw3 ICsxMiw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNl PSJMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkiCiBob21lcGFn ZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZp Y2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNj eG1sLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MDliMGRiZDZh YzM2NzkyMGZiMWJhOTZhMzlkY2Q0YzlkMzNlYjA4MjBkY2M3OTUzODk5MjgyNWQ1ODhhNzBmMAor Y2hlY2tzdW09MDFiYzE1NGQ2MTYzZDFmMDQ5ZjRlMWU3NjY1OGEwNDQ3MzBhY2U3YjBhNWJlMzVj OWE0NmZjZDEzOTZmODYxOQogCiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCiAJY29u ZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKCkZyb20gMTg1NDUzNDBiMjlmZWVm M2MwYzE3Zjc0NzVlYjE5MmYxMDRlNDhhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDI4IEp1bCAyMDIyIDE2OjM2OjUy ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8yMl0gcXQ2LXNlcmlhbHBvcnQ6IHVwZGF0ZSB0byA2 LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtc2VyaWFscG9ydC90ZW1wbGF0ZSB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtc2VyaWFscG9y dC90ZW1wbGF0ZQppbmRleCAwODA0NjcxY2E1N2IuLjJlOTE1Nzg4MzAwYSAxMDA2NDQKLS0tIGEv c3JjcGtncy9xdDYtc2VyaWFscG9ydC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1zZXJpYWxw b3J0L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXNl cmlhbHBvcnQnCiBwa2duYW1lPXF0Ni1zZXJpYWxwb3J0Ci12ZXJzaW9uPTYuMy4wCit2ZXJzaW9u PTYuMy4xCiByZXZpc2lvbj0xCiB3cmtzcmM9InF0c2VyaWFscG9ydC1ldmVyeXdoZXJlLXNyYy0k e3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5l cj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9S IEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1H UEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0i aHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0v JHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0c2VyaWFscG9ydC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPWVlYmQ2OTM0ZDQ4Y2MwNDRiOGM4Nzc5NWE0ZmQ5MWJiODFm NzE5NWQ0YjVhMmRkYjEyODAyZjM0M2Q1ZGI2NGYKK2NoZWNrc3VtPTRlYjZkODBlNjU3OTlkZDJl MDMxOGRmNGRmYmExNDE3M2MxOTI5ZTg2MTcxOGNkYTliZWRjYTI0MjUzYjYxNmUKIAogcXQ2LXNl cmlhbHBvcnQtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKCkZyb20gZjAy ODg3N2FmN2M3NzJkYTYwNjNlYjI0MjEzM2UzYjE1MDVhOGU1NiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDI4IEp1bCAy MDIyIDE2OjM2OjU0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8yMl0gcXQ2LXNoYWRlcnRvb2xz OiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRl IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlIGIvc3JjcGtn cy9xdDYtc2hhZGVydG9vbHMvdGVtcGxhdGUKaW5kZXggOWMxZWMyMTBhOTZhLi5mNTkxNjkxODRi MTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAncXQ2LXNoYWRlcnRvb2xzJwogcGtnbmFtZT1xdDYtc2hhZGVydG9vbHMKLXZl cnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRzaGFkZXJ0 b29scy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEy LDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vu c2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0Zmls ZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24l Lip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNoYWRlcnRvb2xzLWV2ZXJ5d2hlcmUtc3JjLSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTQ5ODk1OWI5ZDM3YzI1NGJkMTI2YWIxMzIwY2Y4 NmFlYjhhMzFiM2VhN2U1MWRiNjY2YThmOTY5OGFmYmQ2YworY2hlY2tzdW09NTliNzcxNzY5NjE1 MjhjYzdiMGM5MzI1MTM0NjU1ZTI3M2FhODdiNGNiMzg2YzBmNDY4M2Q4ZjI4NTJlNDM1YQogCiBx dDYtc2hhZGVydG9vbHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKCkZy b20gNjIwN2FlOGEzYzk0ZTkxNzZkZWYwNGFlMTZlMmJmNzlkZGMzZWJmMiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDI4 IEp1bCAyMDIyIDE2OjM2OjU1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8yMl0gcXQ2LXN2Zzog dXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1zdmcvdGVtcGxhdGUgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRl CmluZGV4IGFhOGU2Yjc0NTEwOS4uNjM3Y2U3NWU0OWVhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0 Ni1zdmcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlCkBAIC0xLDYgKzEs NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXN2ZycKIHBrZ25hbWU9cXQ2LXN2ZwotdmVy c2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHN2Zy1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEyLDcgKzEyLDcg QEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0z LjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wLCBHUEwtMi4wLW9yLWxhdGVyLCBMR1BM LTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8v ZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNp b259L3N1Ym1vZHVsZXMvcXRzdmctZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0zMTY0NTA0ZDdlM2Y2NDA0MzkzMDgyMzU3MzliMTEyNjA1YWI1ZmM5Y2M1MTdjYTBi MjhmOWZiOTNhOGRiMGUzCitjaGVja3N1bT03YjE5ZjQxOGU2ZjdiOGUyMzM0NDA4MmRkMDQ0NDBh YWNmNWRhMjNjNWE3Mzk4MGJhMjJhZTRlYmE0Zjg3ZGY3CiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BL R1MiIF07IHRoZW4KIAljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgoKRnJv bSAxZTVmYzYyOTI2ZWRmYWNhZGQ3ZjkzMDE4ZTc4NzY1ZmQxOWE0MzRlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwgMjgg SnVsIDIwMjIgMTY6MzY6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDE1LzIyXSBxdDYtdG9vbHM6 IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUgfCA0ICsr LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni10b29scy90 ZW1wbGF0ZQppbmRleCBmODc1ZGZmNWMwNDYuLmZmNDlkM2NkNjNmMiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9xdDYtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtdG9vbHMnCiBwa2duYW1l PXF0Ni10b29scwotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jr c3JjPSJxdHRvb2xzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFr ZQpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+ IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwt My4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBk aXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3Zl cnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHRvb2xzLWV2ZXJ5d2hlcmUtc3JjLSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmNlOTQ2ODhlYTkyNTc4MmEyODc5MzQ3NTg0OTkx Zjg1NDYzMGRhYWRiYTZjNTJhZWQ2ZDkzZTMzY2QwYjE5YworY2hlY2tzdW09YzQxMjc1MGYyYWEz YmViOTNmY2U1ZjMwNTE3YzYwN2Y1NWRhYWViN2QwNDA3YWYyMDZhOGFkZjkxN2UxMjZjMQogCiBp ZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCiAJY29uZmlndXJlX2FyZ3MrPSIgLURRVF9C VUlMRF9URVNUUz1PTiIKCkZyb20gNGEzMGU1N2FhYjQ4N2NkNDU3OWZkOGU4NTUzNWQzYzQwZWJk NWE0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBUaHUsIDI4IEp1bCAyMDIyIDE2OjM3OjAwICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNi8yMl0gcXQ2LXRyYW5zbGF0aW9uczogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dz L3F0Ni10cmFuc2xhdGlvbnMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdHJh bnNsYXRpb25zL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBsYXRlCmlu ZGV4IGJlMGE3NGNhNzRlMi4uZmE3NTFiMDk3NDY2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni10 cmFuc2xhdGlvbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXRyYW5zbGF0aW9u cycKIHBrZ25hbWU9cXQ2LXRyYW5zbGF0aW9ucwotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMu MQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHRyYW5zbGF0aW9ucy1ldmVyeXdoZXJlLXNyYy0ke3Zl cnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEyLDQgKzEyLDQgQEAgbWFpbnRhaW5lcj0i Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSB3aXRoIFF0 LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVz PSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4q fS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR0cmFuc2xhdGlvbnMtZXZlcnl3aGVyZS1zcmMtJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNGRkNGVmODkyYTM0YTk1MTRhMTkyMzhmMTg5YTMz ZWQ4NWM3NmYzMWRjYWQ2NTk5Y2VkOTNiMWUzMzQ0MGIzCitjaGVja3N1bT1kN2JkZDU1ZTI5MDhk ZWQ5MDFkY2MyNjIxNTcxMDBhZjJhNDkwYmYwNGQzMWUzMjk5NWY2ZDkxZDc4ZGZkYjk3CgpGcm9t IGI4N2UyZDM0YmFiMDQwOTJlNmUzMzM2Y2YyOGNhNmIyM2I2MmRiZjkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1LCAyOCBK dWwgMjAyMiAxNjozNzowMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjJdIHF0Ni12aXJ0dWFs a2V5Ym9hcmQ6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtdmlydHVhbGtleWJv YXJkL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXZpcnR1YWxrZXlib2FyZC90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXZpcnR1YWxrZXlib2FyZC90ZW1wbGF0ZQppbmRleCA2N2Vj ZWYxNDVlYTEuLjIxZmJjZjVkYmZiYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtdmlydHVhbGtl eWJvYXJkL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXZpcnR1YWxrZXlib2FyZC90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni12aXJ0dWFsa2V5Ym9h cmQnCiBwa2duYW1lPXF0Ni12aXJ0dWFsa2V5Ym9hcmQKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249 Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXR2aXJ0dWFsa2V5Ym9hcmQtZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50 YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHki CiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5x dC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9k dWxlcy9xdHZpcnR1YWxrZXlib2FyZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPTg5YWFmMTVhY2Y1NDMyYWY4ZjVjZjRlYzQ1Y2IzMmQ4N2EzMzQ4OTA2MjE1ZGQ1 NmU4MWNiMjk0ZWIyNzY1NzMKK2NoZWNrc3VtPTVmZTA4OWIyMDRkODU5YWIwZGQwMTY5ZjgxMWYy ZTMwY2FlN2M1Y2IzNmY4YWI5NWNhMzY4ODNmMWZjMGMyYjgKIAogaWYgWyAiJFhCUFNfQ0hFQ0tf UEtHUyIgXTsgdGhlbgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCgpG cm9tIDEyZDRiNzA5MGEzYzlmZDJjYzFlOGNiMWIzZGYwM2FkZDViNmVlMTIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1LCAy OCBKdWwgMjAyMiAxNjozNzowMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjJdIHF0Ni13YXls YW5kOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2F5bGFuZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2 LXdheWxhbmQvdGVtcGxhdGUKaW5kZXggYjcxYTI3MzAwOWI5Li42MDQwYTJkYzEzMzUgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtd2F5 bGFuZC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13 YXlsYW5kJwogcGtnbmFtZT1xdDYtd2F5bGFuZAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMu MQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHdheWxhbmQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xNSw3ICsxNSw3IEBAIG1haW50YWluZXI9IkpvaG4g PG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwt ZXhjZXB0aW9uLTEuMCwgTEdQTC0zLjAtb25seSwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwczovL3d3dy5xdC5pbyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5xdC5pby9v ZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9x dHdheWxhbmQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lN2I1 NjdmNmU0M2ZmYzU5MThkNGFhODI1Y2UxZWNlZDY2YTAwY2IwYTg3MTMzYjI5MTJiYTVjMWIyYTAy MTkwCitjaGVja3N1bT02ZjE0ZmVhMmQxNzJhNWI0MTcwYmUzZWZjYjBlNTg1MzVmNjYwNWI2MWJj ZDgyM2Y2ZDVjOWQxNjViYjhjMGYwCiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4K IAljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgoKRnJvbSBmNGIwOTdlYjZm MzFlNWUwNjZiMWM1YmIxZjgyZDJlN2M4MmE1ZDFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwgMjggSnVsIDIwMjIgMTY6 Mzg6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDE5LzIyXSBxdDYtd2Vic29ja2V0czogdXBkYXRl IHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13ZWJz b2NrZXRzL3RlbXBsYXRlCmluZGV4IGMyZTY3NGFhY2IzMS4uYWQwMjA2NWRlNjlmIDEwMDY0NAot LS0gYS9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YnNvY2tldHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdx dDYtd2Vic29ja2V0cycKIHBrZ25hbWU9cXQ2LXdlYnNvY2tldHMKLXZlcnNpb249Ni4zLjAKK3Zl cnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXR3ZWJzb2NrZXRzLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTIsNyArMTIsNyBAQCBtYWlu dGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iKExHUEwtMy4wLW9u bHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRo IFF0LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZp bGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9u JS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR3ZWJzb2NrZXRzLWV2ZXJ5d2hlcmUtc3JjLSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTAxOGEwOWZlOTYwYjdkOTU2MGQ2YmJjOWQzY2Ew MjJmZWQ2NTY2ZTZiYTZmYzZkODY5YTk3NDgyZDRlNjM2MQorY2hlY2tzdW09OWY5ODBkOTBjOTdm Y2JkZTFiNTBjNzczZjZkYzU4MGNmZGY4YzM2Y2UxNGExYmUzYWEyY2NhZGZlNjA1MTIxYQogCiBx dDYtd2Vic29ja2V0cy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgoKRnJv bSA2NGZmZjlmOTY2ZDBlOGZmZTlkNjU0MTEzMTg5ZTgzYjAyOWViYzI0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgMjYg SnVuIDIwMjEgMTI6MjU6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzIyXSBOZXcgcGFja2Fn ZTogcXQ2LXdlYmNoYW5uZWwtNi4zLjEKCi0tLQogc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZl bCAgICB8ICAxICsKIHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdGVtcGxhdGUgfCAzMSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3VwZGF0ZSAg IHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx MjAwMDAgc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJjaGFubmVsL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmNoYW5u ZWwtZGV2ZWwgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIw MDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMDNlOGIyM2Q3ODVkCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtd2ViY2hhbm5l bApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmNoYW5uZWwvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmMzOWVjMmExYzNhCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZQpAQCAtMCwwICsxLDMx IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtd2ViY2hhbm5lbCcKK3BrZ25hbWU9cXQ2LXdl YmNoYW5uZWwKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0icXR3ZWJjaGFubmVs LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1jbWFrZQorY29uZmlndXJl X2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJh c2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgorbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRl dmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBxdDYtd2Vic29ja2V0cy1kZXZlbCIKK3Nob3J0X2Rl c2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSB3ZWJjaGFu bmVsIgorbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IihM R1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4w LW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKK2hvbWVwYWdlPSJodHRwczovL3F0Lmlv LyIKK2Rpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0 LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2ViY2hhbm5lbC1ldmVyeXdo ZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPWFhYTIwYWMyM2Y4Njk5MjcyMWI3 ZWU0ODdjMzc5YTNmZDY4Y2FhOGNkY2VhMGE3N2EzN2UwZDhiNDdmZjI2NjgKKworcXQ2LXdlYmNo YW5uZWwtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMQorCSBxdDYtd2Vic29j a2V0cy1kZXZlbD49JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBm aWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNy L2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3F0 Ni9ta3NwZWNzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFdlYkNoYW5uZWwvcGx1Z2lucy5x bWx0eXBlcworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRXZWJDaGFubmVsL3FtbGRpcgorCQl2 bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwl9Cit9CmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3VwZGF0ZSBiL3NyY3BrZ3MvcXQ2LXdlYmNo YW5uZWwvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0 NTUyNDY1MjIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC91cGRh dGUKQEAgLTAsMCArMSBAQAorcGtnbmFtZT0iJHtwa2duYW1lLzYtL30tZXZlcnl3aGVyZS1zcmMi CgpGcm9tIGQwNGY1Mjc1MmU4Zjc3NzA1MGI2OTA1NDlkZDE3NzNlY2E0OWEzNzEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU2F0 LCAyNiBKdW4gMjAyMSAyMTowODoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjJdIE5ldyBw YWNrYWdlOiBxdDYtbXVsdGltZWRpYS02LjMuMQoKLS0tCiBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlh LWRldmVsICAgIHwgIDEgKwogc3JjcGtncy9xdDYtbXVsdGltZWRpYS90ZW1wbGF0ZSB8IDMyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3Vw ZGF0ZSAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtbXVsdGltZWRpYS1kZXZlbAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LW11 bHRpbWVkaWEtZGV2ZWwgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhLWRldmVsCm5ldyBmaWxlIG1v ZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOTM0MzQ0NjUwMmQwCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtbXVs dGltZWRpYQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTdiMGE0NTQ0NDY3Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS90ZW1wbGF0ZQpAQCAtMCww ICsxLDMyIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtbXVsdGltZWRpYScKK3BrZ25hbWU9 cXQ2LW11bHRpbWVkaWEKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0icXRtdWx0 aW1lZGlhLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1jbWFrZQorY29u ZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgLURRVF9GRUFUVVJFX2dzdHJlYW1lcj1P TiIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcGtnLWNvbmZp ZworIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCIKK21ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUt ZGV2ZWwKKyBxdDYtc2hhZGVydG9vbHMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBnc3QtcGx1Z2lucy1i YXNlMS1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBV SSBmcmFtZXdvcmsgLSBtdWx0aW1lZGlhIgorbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PiIKK2xpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwt My4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKK2hv bWVwYWdlPSJodHRwczovL3F0LmlvLyIKK2Rpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0Lmlv L29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVz L3F0bXVsdGltZWRpYS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3Vt PTdlMDMyNDJhYWRkNjM0ZmYyZDlmY2YwODk0ODI5MGYwM2RhM2Q5YTUwMTIzNjlkOTA4ZGE4OWY4 MmIxZDczMzYKKworcXQ2LW11bHRpbWVkaWEtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVy c2lvbn1fMSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1v dmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2bW92 ZSB1c3IvbGliL3F0Ni9xbWwvUXRNdWx0aW1lZGlhL3BsdWdpbnMucW1sdHlwZXMKKwkJdm1vdmUg dXNyL2xpYi9xdDYvcW1sL1F0TXVsdGltZWRpYS9xbWxkaXIKKwkJdm1vdmUgInVzci9saWIvKi5z byIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtbXVsdGltZWRpYS91cGRhdGUgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2NTIyMgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdXBkYXRlCkBAIC0wLDAgKzEgQEAK K3BrZ25hbWU9IiR7cGtnbmFtZS82LS99LWV2ZXJ5d2hlcmUtc3JjIgoKRnJvbSBiM2ExODUwZjU4 YTQyYTFhOTE5M2RjMjg0Y2ViNjkzMDU5YzJkODc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9 MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA3IEF1ZyAyMDIyIDEx OjM0OjQwICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMi8yMl0gTmV3IHBhY2thZ2U6IHF0Ni13ZWJl bmdpbmUtNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbCAgICAgICAgICAg ICAgICAgICB8ICAgIDEgKwogLi4uL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoICAg ICAgICAgIHwgICAxMSArCiAuLi4vcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRjaCAgICAg ICAgICAgfCAgIDIwICsKIC4uLi9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRjaCAgICAgICAg ICAgICB8ICAgMTAgKwogLi4uLzAwMDQtcHBjLWRpc2FibGUtanhsLWRlY29kZXIucGF0Y2ggICAg ICAgIHwgICAxMyArCiAuLi4vcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNo ICAgfCAgIDE0ICsKIC4uLi8wMTAwLWNocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaCAg ICB8ICAgNTggKwogLi4uL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5wYXRjaCAg IHwgICAxNiArCiAuLi4vMDEwMi1jaHJvbWl1bS05MC1ydXktaW5jbHVkZS5wYXRjaCAgICAgICAg fCAgIDE5ICsKIC4uLi12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaCB8 ICAgMjIgKwogLi4uLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2ggICAgICAgIHwg IDE2MiArCiAuLi4tY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2ggfCAg IDE1ICsKIC4uLi9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaCB8ICAg MjAgKwogLi4uLzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaCAgIHwgICAx OCArCiAuLi4vMDEwOC1jaHJvbWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2ggICAgfCAgIDUz ICsKIC4uLi8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggICB8ICAgMzIg KwogLi4uaXVtLXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNoIHwgICA1NyAr CiAuLi4xMS1jaHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2ggfCAgIDEwICsK IC4uLi8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoICAgICB8ICAgMjQgKwog Li4uLWluY2x1ZGUtc3lzLXJlZy5oLXRvLWdldC1fX1dPUkRTSVpFLnBhdGNoIHwgICAyMSArCiAu Li4vMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2ggfCAgMTAzICsKIC4u Li8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2ggICAgICB8ICAgNjIgKwogLi4u LzAyMDMtY2hyb21pdW0tbXVzbC1zaWdpbmZvX3QucGF0Y2ggICAgICAgIHwgICAxOCArCiAuLi4v MDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2ggICAgICAgfCAgIDIwICsKIC4uLi9w YXRjaGVzLzAyMDUtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoICB8ICAgOTIgKwogLi4uMDIw Ni1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoIHwgICAxNSArCiAuLi4tY2hy b21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2ggfCAgIDMwICsKIC4uLi9wYXRj aGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaCB8ICAxMjUgKwogLi4uLzAyMDkt Y2hyb21pdW0tbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoIHwgICAyMiArCiAuLi4vMDIxMC1j aHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2ggfCAgIDE0ICsKIC4uLml1bS1tdXNs LWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaCB8ICAgMTEgKwogLi4uLzAyMTItY2hy b21pdW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoICAgIHwgICAyOSArCiAuLi4vcGF0Y2hlcy8w MjEzLWNocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2ggfCAgIDIyICsKIC4uLi9wYXRjaGVzLzAy MTQtY2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaCAgICB8ICAxMDggKwogLi4uL3BhdGNoZXMvMDIx NS1jaHJvbWl1bS1tdXNsLWNkZWZzLnBhdGNoICAgIHwgICAyOSArCiAuLi4vcGF0Y2hlcy8wMjE2 LWNocm9taXVtLW11c2wtc3RhdC5wYXRjaCAgICAgfCAgIDEyICsKIC4uLi9wYXRjaGVzLzAyMTct Y2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaCB8ICAgNzcgKwogLi4uL3BhdGNoZXMvMDYwMC1j aHJvbWl1bS1zbmRpby5wYXRjaCAgICAgICAgIHwgIDg3NiArKysrCiAuLi4vcGF0Y2hlcy8wNzAw LWFybXY3bC1uZW9uLnBhdGNoICAgICAgICAgICAgfCAgIDEwICsKIC4uLi8wNzUwLWNocm9taXVt LW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoICAgICB8ICAgMjAgKwogLi4uLzA3NTEtY2hyb21pdW0t bXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaCAgIHwgICAxOCArCiAuLi4wODAxLWNocm9taXVtLWk2 ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2ggfCAgIDI0ICsKIC4uLi9wYXRjaGVzLzA5MDAteHh4 LXBwYzY0bGUtbGlidnB4LnBhdGNoICAgICB8ICAgNjUgKwogLi4uLzA5MDEteHh4LXBwYzY0bGUt c2FuZGJveC1saW51eC1zdGF0LnBhdGNoIHwgICAzMSArCiAuLi4vcGF0Y2hlcy8wOTAyLXh4eC1w cGM2NGxlLXN1cHBvcnQucGF0Y2ggICAgfCAzNTU5ICsrKysrKysrKysrKysrKysrCiAuLi4vMDkw My14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaCAgICAgICAgfCAgIDE4ICsKIHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAxNTAgKwogc3JjcGtncy9x dDYtd2ViZW5naW5lL3VwZGF0ZSAgICAgICAgICAgICAgICAgIHwgICAgMSArCiA0OCBmaWxlcyBj aGFuZ2VkLCA2MTU3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3Mt aGFjay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAwMDQtcHBjLWRpc2FibGUtanhsLWRlY29kZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNr LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hyb21pdW0t OTAtcnV5LWluY2x1ZGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTAzLWNocm9taXVtLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGlt ZWR3YWl0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwNC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRy b3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9taXVt LWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVtLWZpeC1uYXJyb3dpbmctY2FzdC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDkt Y2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0tcmV2ZXJ0LXVzZS1mZmls ZS1jb21waWxhdGlvbi1kaXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLW5vLVduby1zdHJpbmdvcC1vdmVycmVhZC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx NTAtY2hyb21pdW0tZ2xpYmMtbGliY19tYWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLW11c2wtaW5jbHVkZS1z eXMtcmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAxLWNocm9taXVtLW11c2wtZGlzcGF0Y2gtdG8t bXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDItY2hyb21pdW0tbXVzbC1uby1tYWxsaW5mby5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDMtY2hyb21pdW0tbXVzbC1zaWdp bmZvX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjA0LWNocm9taXVtLW11c2wtc3RhY2tzdGFydC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDUtY2hyb21pdW0tbXVzbC1zYW5k Ym94LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNy1jaHJvbWl1bS1tdXNs LWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDktY2hy b21pdW0tbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNo X2JhY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjExLWNocm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMi1j aHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEzLWNocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE0 LWNocm9taXVtLW11c2wtZml4ZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE2LWNocm9taXVt LW11c2wtc3RhdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMTctY2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA2MDAtY2hyb21pdW0tc25kaW8u cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w NzAwLWFybXY3bC1uZW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEtY2hyb21p dW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA4MDEtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2 ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA5MDAteHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0 YXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wOTAyLXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1k ZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjhlNGQxYjk5YzU4 NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbApAQCAtMCww ICsxIEBACitxdDYtd2ViZW5naW5lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWJhMzNmOGU2ZmQ5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMS1O b25lLW5vLWRlYnVnLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2NtYWtlL0Z1bmN0aW9u cy5jbWFrZQorKysrIGIvY21ha2UvRnVuY3Rpb25zLmNtYWtlCitAQCAtODEzLDYgKzgxMyw4IEBA IG1hY3JvKGFwcGVuZF9idWlsZF90eXBlX3NldHVwKQorICAgICAgICAgZW5kaWYoKQorICAgICBl bHNlaWYoJHtjb25maWd9IFNUUkVRVUFMICJNaW5TaXplUmVsIikKKyAgICAgICAgIGxpc3QoQVBQ RU5EIGduQXJnQXJnIGlzX2RlYnVnPWZhbHNlIHN5bWJvbF9sZXZlbD0wIG9wdGltaXplX2Zvcl9z aXplPXRydWUpCisrICAgIGVsc2VpZigke2NvbmZpZ30gU1RSRVFVQUwgIk5vbmUiKQorKyAgICAg ICAgbGlzdChBUFBFTkQgZ25BcmdBcmcgaXNfZGVidWc9ZmFsc2Ugc3ltYm9sX2xldmVsPTApCisg ICAgIGVuZGlmKCkKKyAgICAgaWYoRkVBVFVSRV9kZXZlbG9wZXJfYnVpbGQgT1IgKCR7Y29uZmln fSBTVFJFUVVBTCAiRGVidWciKSBPUiBRVF9GRUFUVVJFX3dlYmVuZ2luZV9zYW5pdGl6ZXIpCisg ICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3MmVmMWFkMWExMAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDItZW5hYmxlLXBwYzY0LnBhdGNoCkBAIC0w LDAgKzEsMjAgQEAKKy0tLSBhL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorKysrIGIvY21ha2UvRnVu Y3Rpb25zLmNtYWtlCitAQCAtNjIyLDYgKzYyMiw4IEBAIGZ1bmN0aW9uKGdldF9nbl9hcmNoIHJl c3VsdCBhcmNoKQorICAgICAgICAgc2V0KCR7cmVzdWx0fSAibWlwc2VsIiBQQVJFTlRfU0NPUEUp CisgICAgIGVsc2VpZihhcmNoIFNUUkVRVUFMICJtaXBzZWw2NCIpCisgICAgICAgICBzZXQoJHty ZXN1bHR9ICJtaXBzNjRlbCIgUEFSRU5UX1NDT1BFKQorKyAgICBlbHNlaWYoYXJjaCBTVFJFUVVB TCAicG93ZXI2NCIpCisrICAgICAgICBzZXQoJHtyZXN1bHR9ICJwb3dlcjY0IiBQQVJFTlRfU0NP UEUpCisgICAgIGVsc2UoKQorICAgICAgICAgbWVzc2FnZShERUJVRyAiVW5zdXBwb3J0ZWQgYXJj aGl0ZWN0dXJlOiAke2FyY2h9IikKKyAgICAgZW5kaWYoKQorQEAgLTY0MSw2ICs2NDMsOCBAQCBm dW5jdGlvbihnZXRfdjhfYXJjaCByZXN1bHQgdGFyZ2V0QXJjaCBoCisgICAgICAgICAgICAgc2V0 KCR7cmVzdWx0fSAibWlwc2VsIiBQQVJFTlRfU0NPUEUpCisgICAgICAgICBlbHNlaWYoaG9zdEFy Y2ggU1RSRVFVQUwgIm1pcHNlbDY0IikKKyAgICAgICAgICAgICBzZXQoJHtyZXN1bHR9ICJtaXBz ZWwiIFBBUkVOVF9TQ09QRSkKKysgICAgICAgIGVsc2VpZihob3N0QXJjaCBTVFJFUVVBTCAicG93 ZXI2NCIpCisrICAgICAgICAgICAgc2V0KCR7cmVzdWx0fSAicG93ZXI2NCIgUEFSRU5UX1NDT1BF KQorICAgICAgICAgZWxzZSgpCisgICAgICAgICAgICAgbWVzc2FnZShERUJVRyAiVW5zdXBwb3J0 ZWQgYXJjaGl0ZWN0dXJlOiAke2hvc3RBcmNofSIpCisgICAgICAgICBlbmRpZigpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYTlmOTAwOTRhNjMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhh Y2sucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjL2NvcmUvYXBpL0NNYWtlTGlzdHMu dHh0CisrKysgYi9zcmMvY29yZS9hcGkvQ01ha2VMaXN0cy50eHQKK0BAIC01MCw2ICs1MCw3IEBA IHF0X2ludGVybmFsX2FkZF9tb2R1bGUoV2ViRW5naW5lQ29yZQorICAgICAgICAgUXQ6Okd1aQor ICAgICAgICAgUXQ6Ok5ldHdvcmsKKyAgICAgICAgIFF0OjpRdWljaworKyAgICAgICAgWDExCisg KQorIAorIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJFbmdpbmVDb3JlIFBST1BFUlRJRVMgUVRX RUJFTkdJTkVQUk9DRVNTX05BTUUgJHtxdFdlYkVuZ2luZVByb2Nlc3NOYW1lfSkKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDQtcHBjLWRpc2FibGUtanhsLWRl Y29kZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA0LXBwYy1kaXNh YmxlLWp4bC1kZWNvZGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uNzNjMTE1MTk2OGY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDAwNC1wcGMtZGlzYWJsZS1qeGwtZGVjb2Rlci5wYXRjaApAQCAtMCwwICsx LDEzIEBACistLS0gYS9zcmMvY29yZS9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL2NvcmUvQ01h a2VMaXN0cy50eHQKK0BAIC00MTQsNiArNDE0LDEwIEBAIGZvcmVhY2goYXJjaCAke2FyY2hzfSkK KyAgICAgICAgICAgICAgICAgQ09ORElUSU9OIFFUX0ZFQVRVUkVfd2ViZW5naW5lX296b25lX3gx MSBBTkQgWFNDUk5TQVZFUl9GT1VORAorICAgICAgICAgICAgICkKKyAKKysgICAgICAgICAgICBp ZiAoY3B1IFNUUkVRVUFMICJwcGM2NCIpCisrICAgICAgICAgICAgICAgIGxpc3QoQVBQRU5EIGdu QXJnQXJnIGVuYWJsZV9qeGxfZGVjb2Rlcj1mYWxzZSkKKysgICAgICAgICAgICBlbmRpZigpCisr CisgICAgICAgICAgICAgaWYoUVRfRkVBVFVSRV93ZWJlbmdpbmVfa2VyYmVyb3MpCisgICAgICAg ICAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnCisgICAgICAgICAgICAgICAgICAgICAgZXh0 ZXJuYWxfZ3NzYXBpX2luY2x1ZGVfZGlyPSIke0dTU0FQSV9JTkNMVURFX0RJUlN9L2dzc2FwaSIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwNTAtbm8tZ2xpYmMt Y21ha2UtY2hlY2sucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5v LWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uZjc1NmJmMDI4NmJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaApAQCAtMCwwICsx LDE0IEBACistLS0gYS9jb25maWd1cmUuY21ha2UKKysrKyBiL2NvbmZpZ3VyZS5jbWFrZQorQEAg LTQ5OSwxMSArNDk5LDYgQEAgYWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorICkKKyBhZGRfY2hlY2tf Zm9yX3N1cHBvcnQoCisgICAgTU9EVUxFUyBRdFdlYkVuZ2luZSBRdFBkZgorLSAgIENPTkRJVElP TiBOT1QgTElOVVggT1IgVEVTVF9nbGliYworLSAgIE1FU1NBR0UgIkEgc3VpdGFibGUgdmVyc2lv biA+PSAyLjE3IG9mIGdsaWJjIGlzIHJlcXVpcmVkLiIKKy0pCistYWRkX2NoZWNrX2Zvcl9zdXBw b3J0KAorLSAgIE1PRFVMRVMgUXRXZWJFbmdpbmUgUXRQZGYKKyAgICBDT05ESVRJT04gTk9UIExJ TlVYIE9SIFRFU1Rfa2hyCisgICAgTUVTU0FHRSAiQnVpbGQgcmVxdWlyZXMgS2hyb25vcyBkZXZl bG9wbWVudCBoZWFkZXJzIGZvciBidWlsZCAtIHNlZSBtZXNhL2xpYmVnbDEtbWVzYS1kZXYiCisg KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1 bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTAwLWNocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJkZDdiNGFhOTQ4ZgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDAtY2hyb21pdW0tc2FuZGJveC1tZW1i YXJyaWVyLnBhdGNoCkBAIC0wLDAgKzEsNTggQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5jYworQEAgLTQxMyw2ICs0MTMsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRQcm9jZXNzU3RhcnRPCisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19O Ul9leGl0OgorICAgICBjYXNlIF9fTlJfZXhpdF9ncm91cDoKKysgICAgY2FzZSBfX05SX21lbWJh cnJpZXI6CisgICAgIGNhc2UgX19OUl93YWl0NDoKKyAgICAgY2FzZSBfX05SX3dhaXRpZDoKKyAj aWYgZGVmaW5lZChfX2kzODZfXykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4 X3N5c2NhbGxzLmgKK0BAIC0xMjE1LDQgKzEyMTUsOCBAQAorICNkZWZpbmUgX19OUl9sYW5kbG9j a19yZXN0cmljdF9zZWxmIDQ0NgorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJh cnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMjgzCisrI2VuZGlmCisrCisgI2VuZGlm ICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX0FSTTY0X0xJTlVYX1NZU0NBTExTX0hf CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9hcm1fbGludXhfc3lzY2FsbHMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xNjE3LDYg KzE2MTcsMTAgQEAKKyAjZGVmaW5lIF9fTlJfbGFuZGxvY2tfcmVzdHJpY3Rfc2VsZiAoX19OUl9T WVNDQUxMX0JBU0UgKyA0NDYpCisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFy cmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19OUl9TWVNDQUxMX0JBU0UrMzg5KQor KyNlbmRpZgorKworIC8vIEFSTSBwcml2YXRlIHN5c2NhbGxzLgorICNpZiAhZGVmaW5lZChfX0FS TV9OUl9CQVNFKQorICNkZWZpbmUgX19BUk1fTlJfQkFTRSAoX19OUl9TWVNDQUxMX0JBU0UgKyAw eEYwMDAwKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5o CitAQCAtMTc1MCw1ICsxNzUwLDkgQEAKKyAjZGVmaW5lIF9fTlJfbGFuZGxvY2tfcmVzdHJpY3Rf c2VsZiA0NDYKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNk ZWZpbmUgX19OUl9tZW1iYXJyaWVyIDM3NQorKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJP WF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfMzJfTElOVVhfU1lTQ0FMTFNfSF8KKyAKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82 NF9saW51eF9zeXNjYWxscy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAorQEAgLTE0MzgsNSAr MTQzOCw5IEBACisgI2RlZmluZSBfX05SX2xhbmRsb2NrX3Jlc3RyaWN0X3NlbGYgNDQ2CisgI2Vu ZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVt YmFycmllciAzMjQKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVN X0hFQURFUlNfWDg2XzY0X0xJTlVYX1NZU0NBTExTX0hfCisgCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDEtc2l6ZV90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZmNjYzA4NWRhMzExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2gKQEAgLTAsMCArMSwxNiBA QAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUv cGxhdGZvcm0vUGxhdGZvcm1NZXRob2RzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oCitAQCAt MjM5LDExICsyMzksMTEgQEAgaW5saW5lIHZvaWQgRGVmYXVsdE92ZXJyaWRlRmVhdHVyZXNNdGwo UAorIHVzaW5nIFByb2dyYW1LZXlUeXBlICAgPSBzdGQ6OmFycmF5PHVpbnQ4X3QsIDIwPjsKKyB1 c2luZyBDYWNoZVByb2dyYW1GdW5jID0gdm9pZCAoKikoUGxhdGZvcm1NZXRob2RzICpwbGF0Zm9y bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJvZ3JhbUtleVR5 cGUgJmtleSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHByb2dy YW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBw cm9ncmFtU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu dDhfdCAqcHJvZ3JhbUJ5dGVzKTsKKyBpbmxpbmUgdm9pZCBEZWZhdWx0Q2FjaGVQcm9ncmFtKFBs YXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBQcm9ncmFtS2V5VHlwZSAma2V5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RkOjpzaXplX3QgcHJvZ3JhbVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB1aW50OF90ICpwcm9ncmFtQnl0ZXMpCisge30KKyAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hyb21pdW0tOTAtcnV5LWluY2x1ZGUu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTkwLXJ1 eS1pbmNsdWRlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YmJiYTU3OTA3NmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwMi1jaHJvbWl1bS05MC1ydXktaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDE5IEBA CitGcm9tIDcxNDA5MmYzMzZiYjE0ZDJmY2MyNzM5NmVjMzIzYjNkODQzYmI5NjIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFp bC5jb20+CitEYXRlOiBUaHUsIDQgTWFyIDIwMjEgMTU6MDU6NDYgKzAwMDAKK1N1YmplY3Q6IFtQ QVRDSF0gSVdZVTogaW5jbHVkZSBsaW1pdHMgZm9yIHN0ZDo6bnVtZXJpY19saW1pdHMKKworLS0t CisgdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvYmxvY2tfbWFwLmNjIHwgMSArCisgMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9ydXkvc3JjL3J1eS9ibG9ja19tYXAuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9ibG9ja19tYXAuY2MKK0BAIC0xNyw2ICsxNyw3 IEBAIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIAorICNpbmNsdWRlIDxhbGdvcml0 aG0+CisgI2luY2x1ZGUgPGNzdGRpbnQ+CisrI2luY2x1ZGUgPGxpbWl0cz4KKyAKKyAjaWZkZWYg UlVZX01BS0VCTE9DS01BUF9ERUJVRworICNpbmNsdWRlIDxjc3RkaW8+CmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAzLWNocm9taXVtLXY4LW1vbm90b25pYy1w dGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwMy1jaHJvbWl1bS12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFkYzhiYzRkM2QxNwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDMtY2hy b21pdW0tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gKQEAgLTAsMCAr MSwyMiBAQAorVXNlIG1vbm90b25pYyBjbG9jayBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCB3 aXRoIG11c2wgdG9vLgorCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2Uv cGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCitAQCAtMjAsNyAr MjAsNyBAQCBuYW1lc3BhY2UgYmFzZSB7CisgCisgQ29uZGl0aW9uVmFyaWFibGU6OkNvbmRpdGlv blZhcmlhYmxlKCkgeworICNpZiAoVjhfT1NfRlJFRUJTRCB8fCBWOF9PU19ORVRCU0QgfHwgVjhf T1NfT1BFTkJTRCB8fCBcCistICAgICAoVjhfT1NfTElOVVggJiYgVjhfTElCQ19HTElCQykpCisr ICAgICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZyZWUvTmV0L09wZW5CU0QgYW5kIExpbnV4IHdp dGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQorICAgLy8gc291cmNlIGZvciBwdGhyZWFk X2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9uaWMgY2xvY2suCisgICBwdGhyZWFk X2NvbmRhdHRyX3QgYXR0cjsKK0BAIC05Niw3ICs5Niw3IEBAIGJvb2wgQ29uZGl0aW9uVmFyaWFi bGU6OldhaXRGb3IoTXV0ZXgqIG0KKyAgICAgICAmbmF0aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0 aXZlX2hhbmRsZSgpLCAmdHMpOworICNlbHNlCisgI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09T X05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9M SUJDX0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVYKQorICAgLy8gT24gRnJlZS9OZXQvT3BlbkJT RCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCisgICAvLyBzb3Vy Y2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9j ay4KKyAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNC1jaHJvbWl1bS1yZXZl cnQtOWQwODBjMC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hy b21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi40MmIxZWU5ZWMwNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBhdGNoCkBAIC0w LDAgKzEsMTYyIEBACisgT3JpZ2luYWwgY2hhbmdlJ3MgZGVzY3JpcHRpb246CisgPiBSZXBsYWNl ICdibGFja2xpc3QnIHdpdGggJ2lnbm9yZWxpc3QnIGluIC4vdG9vbHMvbXNhbi8uCisgPgorID4g QnVnOiAxMDk3MjcyLCAxMDk3MjY4CisgPiBDaGFuZ2UtSWQ6IElkNWM4MjI3YTViZmIxZmZhZWM4 MmQzMTY4YjYwOTA4NWIxMGM4Mjk3CisgPiBSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1y ZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzI4Njc3MzAKKyA+IENvbW1p dC1RdWV1ZTogRHlsYW4gQ3V0bGVyIDxkeWxhbmN1dGxlckBnb29nbGUuY29tPgorID4gUmV2aWV3 ZWQtYnk6IE5pY28gV2ViZXIgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CisgPiBSZXZpZXdlZC1ieTog Sm9uYXRoYW4gTWV0em1hbiA8bWV0em1hbkBjaHJvbWl1bS5vcmc+CisgPiBDci1Db21taXQtUG9z aXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjODgzMDM1fQorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL2J1aWxkL2NvbmZpZy9zYW5pdGl6ZXJzL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL3Nhbml0aXplcnMvQlVJTEQuZ24KK0BAIC0yNzIsMTEg KzI3MiwxMSBAQCBjb25maWcoImFzYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNfYXNhbikgeworICAg ICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZT1hZGRyZXNzIiBdCisgICAgIGlmIChpc193aW4pIHsK Ky0gICAgICBpZiAoIWRlZmluZWQoYXNhbl93aW5fYmxvY2tsaXN0X3BhdGgpKSB7CistICAgICAg ICBhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCA9CisrICAgICAgaWYgKCFkZWZpbmVkKGFzYW5fd2lu X2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgICAgYXNhbl93aW5fYmxhY2tsaXN0X3BhdGggPQor ICAgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21lbW9yeS9hc2FuL2Jsb2NrbGlzdF93 aW4udHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgICAgfQorLSAgICAgIGNmbGFncyArPSBbICIt ZnNhbml0aXplLWlnbm9yZWxpc3Q9JGFzYW5fd2luX2Jsb2NrbGlzdF9wYXRoIiBdCisrICAgICAg Y2ZsYWdzICs9IFsgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRhc2FuX3dpbl9ibGFja2xpc3RfcGF0 aCIgXQorICAgICB9CisgICB9CisgfQorQEAgLTMwNiwxMyArMzA2LDEzIEBAIGNvbmZpZygibGlu a19zaGFyZWRfbGlicmFyeSIpIHsKKyBjb25maWcoImNmaV9mbGFncyIpIHsKKyAgIGNmbGFncyA9 IFtdCisgICBpZiAoaXNfY2ZpICYmIGN1cnJlbnRfdG9vbGNoYWluID09IGRlZmF1bHRfdG9vbGNo YWluKSB7CistICAgIGlmICghZGVmaW5lZChjZmlfaWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAg IGNmaV9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQoY2ZpX2JsYWNrbGlzdF9w YXRoKSkgeworKyAgICAgIGNmaV9ibGFja2xpc3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9w YXRoKCIvL3Rvb2xzL2NmaS9pZ25vcmVzLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9Cisg ICAgIGNmbGFncyArPSBbCisgICAgICAgIi1mc2FuaXRpemU9Y2ZpLXZjYWxsIiwKKy0gICAgICAi LWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRjZmlfaWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZz YW5pdGl6ZS1ibGFja2xpc3Q9JGNmaV9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAKKyAgICAg aWYgKHVzZV9jZmlfY2FzdCkgeworQEAgLTQwOSwxNCArNDA5LDE0IEBAIGNvbmZpZygibXNhbl9m bGFncyIpIHsKKyAgIGlmIChpc19tc2FuKSB7CisgICAgIGFzc2VydChpc19saW51eCB8fCBpc19j aHJvbWVvcywKKyAgICAgICAgICAgICJtc2FuIG9ubHkgc3VwcG9ydGVkIG9uIGxpbnV4IHg4Nl82 NC9DaHJvbWVPUyIpCistICAgIGlmICghZGVmaW5lZChtc2FuX2lnbm9yZWxpc3RfcGF0aCkpIHsK Ky0gICAgICBtc2FuX2lnbm9yZWxpc3RfcGF0aCA9CistICAgICAgICAgIHJlYmFzZV9wYXRoKCIv L3Rvb2xzL21zYW4vaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKysgICAgaWYgKCFk ZWZpbmVkKG1zYW5fYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgbXNhbl9ibGFja2xpc3RfcGF0 aCA9CisrICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21zYW4vYmxhY2tsaXN0LnR4dCIs IHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKKyAgICAgICAiLWZzYW5p dGl6ZT1tZW1vcnkiLAorICAgICAgICItZnNhbml0aXplLW1lbW9yeS10cmFjay1vcmlnaW5zPSRt c2FuX3RyYWNrX29yaWdpbnMiLAorLSAgICAgICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JG1zYW5f aWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JG1zYW5fYmxh Y2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQorQEAgLTQyNCwxMyArNDI0LDEzIEBAIGNv bmZpZygibXNhbl9mbGFncyIpIHsKKyBjb25maWcoInRzYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNf dHNhbikgeworICAgICBhc3NlcnQoaXNfbGludXggfHwgaXNfY2hyb21lb3MsICJ0c2FuIG9ubHkg c3VwcG9ydGVkIG9uIGxpbnV4IHg4Nl82NCIpCistICAgIGlmICghZGVmaW5lZCh0c2FuX2lnbm9y ZWxpc3RfcGF0aCkpIHsKKy0gICAgICB0c2FuX2lnbm9yZWxpc3RfcGF0aCA9CisrICAgIGlmICgh ZGVmaW5lZCh0c2FuX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIHRzYW5fYmxhY2tsaXN0X3Bh dGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tZW1vcnkvdHNhbl92Mi9pZ25v cmVzLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKKyAgICAg ICAiLWZzYW5pdGl6ZT10aHJlYWQiLAorLSAgICAgICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JHRz YW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JHRzYW5f YmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQorQEAgLTQzOCw4ICs0MzgsOCBAQCBj b25maWcoInRzYW5fZmxhZ3MiKSB7CisgY29uZmlnKCJ1YnNhbl9mbGFncyIpIHsKKyAgIGNmbGFn cyA9IFtdCisgICBpZiAoaXNfdWJzYW4pIHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX2lnbm9y ZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAo IWRlZmluZWQodWJzYW5fYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdWJzYW5fYmxhY2tsaXN0 X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy91YnNhbi9pZ25vcmVsaXN0 LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyArPSBbCitAQCAtNDU2 LDcgKzQ1Niw3IEBAIGNvbmZpZygidWJzYW5fZmxhZ3MiKSB7CisgICAgICAgIi1mc2FuaXRpemU9 c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAgICAgICItZnNhbml0aXplPXVucmVhY2hhYmxl IiwKKyAgICAgICAiLWZzYW5pdGl6ZT12bGEtYm91bmQiLAorLSAgICAgICItZnNhbml0aXplLWln bm9yZWxpc3Q9JHVic2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxh Y2tsaXN0PSR1YnNhbl9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAgICAgaWYgKCFpc19jbGFu ZykgeworICAgICAgICMgVGhlc2UgZXhwb3NlcyB0b28gbXVjaCBpbGxlZ2FsIEMrKzE0IGNvZGUg dG8gY29tcGlsZSBvbiBhbnl0aGluZyBzdHJpY3RlciB0aGFuIGNsYW5nOgorQEAgLTQ5Nyw4ICs0 OTcsOCBAQCBjb25maWcoInVic2FuX25vX3JlY292ZXIiKSB7CisgCisgY29uZmlnKCJ1YnNhbl9z ZWN1cml0eV9mbGFncyIpIHsKKyAgIGlmIChpc191YnNhbl9zZWN1cml0eSkgeworLSAgICBpZiAo IWRlZmluZWQodWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVic2Fu X3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCA9CisrICAgIGlmICghZGVmaW5lZCh1YnNhbl9zZWN1 cml0eV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB1YnNhbl9zZWN1cml0eV9ibGFja2xpc3Rf cGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL3Vic2FuL3NlY3VyaXR5X2ln bm9yZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgIH0KKyAgICAgY2ZsYWdzID0gWwor QEAgLTUwNiw3ICs1MDYsNyBAQCBjb25maWcoInVic2FuX3NlY3VyaXR5X2ZsYWdzIikgeworICAg ICAgICItZnNhbml0aXplPXNoaWZ0IiwKKyAgICAgICAiLWZzYW5pdGl6ZT1zaWduZWQtaW50ZWdl ci1vdmVyZmxvdyIsCisgICAgICAgIi1mc2FuaXRpemU9dmxhLWJvdW5kIiwKKy0gICAgICAiLWZz YW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0X3BhdGgiLAorKyAg ICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGgi LAorICAgICBdCisgICB9CisgfQorQEAgLTUxOSwxMyArNTE5LDEzIEBAIGNvbmZpZygidWJzYW5f bnVsbF9mbGFncyIpIHsKKyAKKyBjb25maWcoInVic2FuX3ZwdHJfZmxhZ3MiKSB7CisgICBpZiAo aXNfdWJzYW5fdnB0cikgeworLSAgICBpZiAoIWRlZmluZWQodWJzYW5fdnB0cl9pZ25vcmVsaXN0 X3BhdGgpKSB7CistICAgICAgdWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAo IWRlZmluZWQodWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB1YnNhbl92cHRy X2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvdWJzYW4v dnB0cl9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFn cyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT12cHRyIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25v cmVsaXN0PSR1YnNhbl92cHRyX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUt YmxhY2tsaXN0PSR1YnNhbl92cHRyX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgICBpZiAo IWlzX2NsYW5nKSB7CisgICAgICAgIyBDbGFuZyBzcGVjaWZpYyBmbGFnOgorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pCitAQCAtNDMsMTUgKzQzLDE1 IEBAIGRlY2xhcmVfYXJncygpIHsKKyAjIEFsbG93cyBkaWZmZXJlbnQgcHJvamVjdHMgdG8gc3Bl Y2lmeSB0aGVpciBvd24gc3VwcHJlc3Npb24vaWdub3JlIGxpc3RzIGZvcgorICMgc2FuaXRpemVy IHRvb2xzLgorICMgYXNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9ICJwYXRoL3RvL2FzYW5fc3VwcHJl c3Npb25zLmNjIgorLSMgYXNhbl93aW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9i bG9ja2xpc3Rfd2luLnR4dCIKKysjIGFzYW5fd2luX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8v YXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKyAjIGxzYW5fc3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0 aC90by9sc2FuX3N1cHByZXNzaW9ucy5jYyIKKyAjIHRzYW5fc3VwcHJlc3Npb25zX2ZpbGUgPSAi cGF0aC90by90c2FuX3N1cHByZXNzaW9ucy5jYyIKKy0jIHRzYW5faWdub3JlbGlzdF9wYXRoID0g InBhdGgvdG8vdHNhbi9pZ25vcmVzLnR4dCIKKy0jIG1zYW5faWdub3JlbGlzdF9wYXRoID0gInBh dGgvdG8vbXNhbi9pZ25vcmVsaXN0LnR4dCIKKy0jIHVic2FuX2lnbm9yZWxpc3RfcGF0aCA9ICJw YXRoL3RvL3Vic2FuL2lnbm9yZWxpc3QudHh0IgorLSMgdWJzYW5fdnB0cl9pZ25vcmVsaXN0X3Bh dGggPSAicGF0aC90by91YnNhbi92cHRyX2lnbm9yZWxpc3QudHh0IgorLSMgdWJzYW5fc2VjdXJp dHlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vc2VjdXJpdHlfaWdub3JlbGlzdC50 eHQiCistIyBjZmlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vY2ZpL2lnbm9yZXMudHh0Igor KyMgdHNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3RzYW4vaWdub3Jlcy50eHQiCisrIyBt c2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9ibGFja2xpc3QudHh0IgorKyMgdWJz YW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi9ibGFja2xpc3QudHh0IgorKyMgdWJz YW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL3ZwdHJfYmxhY2tsaXN0LnR4 dCIKKysjIHVic2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vc2Vj dXJpdHlfYmxhY2tsaXN0LnR4dCIKKysjIGNmaV9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL2Nm aS9pZ25vcmVzLnR4dCIKKyAKKyBkZWNsYXJlX2FyZ3MoKSB7CisgICAjIEFuZHJvaWQgMzItYml0 IG5vbi1jb21wb25lbnQsIG5vbi1jbGFuZyBidWlsZHMgY2Fubm90IGhhdmUgc3ltYm9sX2xldmVs PTIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21p dW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDRmM2FhOGZhZTVlCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJv bWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaApAQCAtMCwwICsxLDE1IEBACitU aGlzIHdhcyBkcm9wcGVkIGZvciBzb21lIHJlYXNvbiBpbiA2OTUxYzM3Y2VjZDA1OTc5YjIzMmEz OWU1YzEwZTYzNDZhMGY3NGVmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5weQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2Nsb3N1cmVfY29tcGlsZXIvY29tcGlsZXIucHkKK0BAIC0xMyw4ICsx Myw5IEBAIGltcG9ydCBzdWJwcm9jZXNzCisgCisgCisgX0NVUlJFTlRfRElSID0gb3MucGF0aC5q b2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCistX0pBVkFfUEFUSCA9IG9zLnBhdGguam9p bihfQ1VSUkVOVF9ESVIsICIuLiIsICJqZGsiLCAiY3VycmVudCIsICJiaW4iLCAiamF2YSIpCist YXNzZXJ0IG9zLnBhdGguaXNmaWxlKF9KQVZBX1BBVEgpLCAiamF2YSBvbmx5IGFsbG93ZWQgaW4g YW5kcm9pZCBidWlsZHMiCisrX0pBVkFfQklOID0gImphdmEiCisrX0pES19QQVRIID0gb3MucGF0 aC5qb2luKF9DVVJSRU5UX0RJUiwgIi4uIiwgImpkayIsICJjdXJyZW50IiwgImJpbiIsICJqYXZh IikKKytfSkFWQV9QQVRIID0gX0pES19QQVRIIGlmIG9zLnBhdGguaXNmaWxlKF9KREtfUEFUSCkg ZWxzZSBfSkFWQV9CSU4KKyAKKyBjbGFzcyBDb21waWxlcihvYmplY3QpOgorICAgIiIiUnVucyB0 aGUgQ2xvc3VyZSBjb21waWxlciBvbiBnaXZlbiBzb3VyY2UgZmlsZXMgdG8gdHlwZWNoZWNrIHRo ZW0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hyb21p dW0tc3lzdGVtLW5vZGVqcy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjFlMDY3Y2M2ZWRhMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaApA QCAtMCwwICsxLDIwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv bm9kZS9ub2RlLnB5CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbm9k ZS9ub2RlLnB5CitAQCAtMzYsMTEgKzM2LDEyIEBAIGRlZiBHZXRCaW5hcnlQYXRoKCk6CisgICBp ZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAnRGFyd2luJyBhbmQgcGxhdGZvcm0ubWFjaGluZSgpID09 ICdhcm02NCc6CisgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihvc19wYXRoLmpvaW4ob3NfcGF0 aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ21hYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAn bm9kZS1kYXJ3aW4tYXJtNjQnLCAnYmluJywgJ25vZGUnKSkKKy0gIHJldHVybiBvc19wYXRoLmpv aW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgKnsKKy0gICAgJ0Rhcndpbic6ICgnbWFjJywg J25vZGUtZGFyd2luLXg2NCcsICdiaW4nLCAnbm9kZScpLAorLSAgICAnTGludXgnOiAoJ2xpbnV4 JywgJ25vZGUtbGludXgteDY0JywgJ2JpbicsICdub2RlJyksCistICAgICdXaW5kb3dzJzogKCd3 aW4nLCAnbm9kZS5leGUnKSwKKy0gIH1bcGxhdGZvcm0uc3lzdGVtKCldKQorKyAgcmV0dXJuICIv dXNyL2Jpbi9ub2RlIgorKyAgI3JldHVybiBvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9f ZmlsZV9fKSwgKnsKKysgICMgICdEYXJ3aW4nOiAoJ21hYycsICdub2RlLWRhcndpbi14NjQnLCAn YmluJywgJ25vZGUnKSwKKysgICMgICdMaW51eCc6ICgnbGludXgnLCAnbm9kZS1saW51eC14NjQn LCAnYmluJywgJ25vZGUnKSwKKysgICMgICdXaW5kb3dzJzogKCd3aW4nLCAnbm9kZS5leGUnKSwK KysgICN9W3BsYXRmb3JtLnN5c3RlbSgpXSkKKyAKKyAKKyBkZWYgUnVuTm9kZShjbWRfcGFydHMs IHN0ZG91dD1Ob25lKToKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE4ZjVkOTcxODgzZAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21p dW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9zY29wZWRfZmlsZV9saW51eC5jYworKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvc2NvcGVkX2ZpbGVfbGludXguY2MKK0BA IC03NywxNSArNzcsMyBAQCBib29sIElzRkRPd25lZChpbnQgZmQpIHsKKyB9CisgCisgfSAgLy8g bmFtZXNwYWNlIGJhc2UKKy0KKy1leHRlcm4gIkMiIHsKKy0KKy1pbnQgX19jbG9zZShpbnQpOwor LQorLV9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSwgbm9pbmxpbmUpKSBpbnQg Y2xvc2UoaW50IGZkKSB7CistICBpZiAoYmFzZTo6SXNGRE93bmVkKGZkKSAmJiBnX2lzX293bmVy c2hpcF9lbmZvcmNlZCkKKy0gICAgQ3Jhc2hPbkZkT3duZXJzaGlwVmlvbGF0aW9uKCk7CistICBy ZXR1cm4gX19jbG9zZShmZCk7CistfQorLQorLX0gIC8vIGV4dGVybiAiQyIKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hyb21pdW0tZml4LW5hcnJvd2lu Zy1jYXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1 bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5lZDMyY2Q5Yjc0MTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVtLWZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaApA QCAtMCwwICsxLDUzIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9m aWxlX3V0aWxfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVz L2ZpbGVfdXRpbF9saW51eC5jYworQEAgLTIzLDE0ICsyMywxNCBAQCBib29sIEdldEZpbGVTeXN0 ZW1UeXBlKGNvbnN0IEZpbGVQYXRoJiBwCisgCisgICAvLyBOb3QgYWxsIHBvc3NpYmxlIHxzdGF0 ZnNfYnVmLmZfdHlwZXwgdmFsdWVzIGFyZSBpbiBsaW51eC9tYWdpYy5oLgorICAgLy8gTWlzc2lu ZyB2YWx1ZXMgYXJlIGNvcGllZCBmcm9tIHRoZSBzdGF0ZnMgbWFuIHBhZ2UuCistICBzd2l0Y2gg KHN0YXRmc19idWYuZl90eXBlKSB7CisrICBzd2l0Y2ggKHN0YXRpY19jYXN0PHVpbnRtYXhfdD4o c3RhdGZzX2J1Zi5mX3R5cGUpKSB7CisgICAgIGNhc2UgMDoKKyAgICAgICAqdHlwZSA9IEZJTEVf U1lTVEVNXzA7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgRVhUMl9TVVBFUl9NQUdJQzogIC8v IEFsc28gZXh0MyBhbmQgZXh0NAorICAgICBjYXNlIE1TRE9TX1NVUEVSX01BR0lDOgorICAgICBj YXNlIFJFSVNFUkZTX1NVUEVSX01BR0lDOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oQlRS RlNfU1VQRVJfTUFHSUMpOgorKyAgICBjYXNlIEJUUkZTX1NVUEVSX01BR0lDOgorICAgICBjYXNl IDB4NTM0NjU0NEU6ICAvLyBOVEZTCisgICAgIGNhc2UgMHg1ODQ2NTM0MjogIC8vIFhGUworICAg ICBjYXNlIDB4MzE1MzQ2NEE6ICAvLyBKRlMKK0BAIC00MCwxNCArNDAsMTQgQEAgYm9vbCBHZXRG aWxlU3lzdGVtVHlwZShjb25zdCBGaWxlUGF0aCYgcAorICAgICAgICp0eXBlID0gRklMRV9TWVNU RU1fTkZTOworICAgICAgIGJyZWFrOworICAgICBjYXNlIFNNQl9TVVBFUl9NQUdJQzoKKy0gICAg Y2FzZSBzdGF0aWNfY2FzdDxpbnQ+KDB4RkY1MzRENDIpOiAgLy8gQ0lGUworKyAgICBjYXNlIDB4 RkY1MzRENDI6ICAvLyBDSUZTCisgICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9TTUI7CisgICAg ICAgYnJlYWs7CisgICAgIGNhc2UgQ09EQV9TVVBFUl9NQUdJQzoKKyAgICAgICAqdHlwZSA9IEZJ TEVfU1lTVEVNX0NPREE7CisgICAgICAgYnJlYWs7CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50 PihIVUdFVExCRlNfTUFHSUMpOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oUkFNRlNfTUFH SUMpOgorKyAgICBjYXNlIEhVR0VUTEJGU19NQUdJQzoKKysgICAgY2FzZSBSQU1GU19NQUdJQzoK KyAgICAgY2FzZSBUTVBGU19NQUdJQzoKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX01FTU9S WTsKKyAgICAgICBicmVhazsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3N5c3Rl bS9zeXNfaW5mb19wb3NpeC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uvc3lz dGVtL3N5c19pbmZvX3Bvc2l4LmNjCitAQCAtMTAwLDEwICsxMDAsMTAgQEAgYm9vbCBJc1N0YXRz WmVyb0lmVW5saW1pdGVkKGNvbnN0IGJhc2U6OgorICAgaWYgKEhBTkRMRV9FSU5UUihzdGF0ZnMo cGF0aC52YWx1ZSgpLmNfc3RyKCksICZzdGF0cykpICE9IDApCisgICAgIHJldHVybiBmYWxzZTsK KyAKKy0gIHN3aXRjaCAoc3RhdHMuZl90eXBlKSB7CisrICBzd2l0Y2ggKHN0YXRpY19jYXN0PHVp bnRtYXhfdD4oc3RhdHMuZl90eXBlKSkgeworICAgICBjYXNlIFRNUEZTX01BR0lDOgorLSAgICBj YXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNf Y2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAg IGNhc2UgUkFNRlNfTUFHSUM6CisgICAgICAgcmV0dXJuIHRydWU7CisgICB9CisgICByZXR1cm4g ZmFsc2U7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNo cm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZWJkMTZlNjU5YWYKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92 ZS1zdHJpcF9iaW5hcnkucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9CVUlMRC5nbgorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9CVUlMRC5nbgorQEAgLTMw OCwxMSArMzA4LDcgQEAgc291cmNlX3NldCgibGliIikgeworICAgfQorIH0KKyAKKy1pZiAoaXNf bGludXgpIHsKKy0gIGNocm9tZWRyaXZlcl9vdXRwdXQgPSAiY2hyb21lZHJpdmVyLnVuc3RyaXBw ZWQiCistfSBlbHNlIHsKKy0gIGNocm9tZWRyaXZlcl9vdXRwdXQgPSAiY2hyb21lZHJpdmVyIgor LX0KKytjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlciIKKyAKKyBleGVjdXRhYmxl KCIkY2hyb21lZHJpdmVyX291dHB1dCIpIHsKKyAgIHRlc3Rvbmx5ID0gdHJ1ZQorQEAgLTMzNiwx NiArMzMyLDYgQEAgZXhlY3V0YWJsZSgiJGNocm9tZWRyaXZlcl9vdXRwdXQiKSB7CisgICB9Cisg fQorIAorLWlmIChpc19saW51eCkgeworLSAgc3RyaXBfYmluYXJ5KCJjaHJvbWVkcml2ZXIiKSB7 CistICAgIHRlc3Rvbmx5ID0gdHJ1ZQorLSAgICBiaW5hcnlfaW5wdXQgPSAiJHJvb3Rfb3V0X2Rp ci8kY2hyb21lZHJpdmVyX291dHB1dCIKKy0gICAgc3ltYm9sX291dHB1dCA9ICIkcm9vdF9vdXRf ZGlyL2Nocm9tZWRyaXZlci5kZWJ1ZyIKKy0gICAgc3RyaXBwZWRfYmluYXJ5X291dHB1dCA9ICIk cm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlciIKKy0gICAgZGVwcyA9IFsgIjokY2hyb21lZHJpdmVy X291dHB1dCIgXQorLSAgfQorLX0KKy0KKyBweXRob25fbGlicmFyeSgiY2hyb21lZHJpdmVyX3B5 X3Rlc3RzIikgeworICAgdGVzdG9ubHkgPSB0cnVlCisgICBkZXBzID0gWwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMC1jaHJvbWl1bS1yZXZlcnQtdXNlLWZm aWxlLWNvbXBpbGF0aW9uLWRpci5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMTAtY2hyb21pdW0tcmV2ZXJ0LXVzZS1mZmlsZS1jb21waWxhdGlvbi1kaXIucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMDBmN2VhODBmN2EKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVt LXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAK K0Zyb20gMzRhOTU1ODIzNjMwMDk2ZjViMDFjMmIwMWQ1MWMxZWE1OWQyMjc2MyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IFplcXVhbiBXdSA8emVxdWFud3VAZ29vZ2xlLmNvbT4KK0Rh dGU6IFR1ZSwgMjAgSnVsIDIwMjEgMTQ6MTM6NTAgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNl IC1mZmlsZS1jb21waWxhdGlvbi1kaXI9IGluc3RlYWQgb2YKKyAtZmRlYnVnLWNvbXBpbGF0aW9u LWRpcj0KKworQnVnOiAxMDEwMjY3CitDaGFuZ2UtSWQ6IElmMmI0ZWFkODUzNWE3NjQ5MGViNDY2 YTM4ZTNkOGZlZDZlYTkxMDc5CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcu Z29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzI3NzA3MzgKK0F1dG8tU3VibWl0OiBa ZXF1YW4gV3UgPHplcXVhbnd1QGdvb2dsZS5jb20+CitDb21taXQtUXVldWU6IE5pY28gV2ViZXIg PHRoYWtpc0BjaHJvbWl1bS5vcmc+CitSZXZpZXdlZC1ieTogTmljbyBXZWJlciA8dGhha2lzQGNo cm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM5MDM0 NTZ9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JV SUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVy L0JVSUxELmduCitAQCAtMTI2OSwxOSArMTI2OSwxMiBAQCBjb25maWcoImNvbXBpbGVyX2RldGVy bWluaXN0aWMiKSB7CisgICAgICMgZGlmZmVyZW50IGJ1aWxkIGRpcmVjdG9yeSBsaWtlICJvdXQv ZmVhdHVyZV9hIiBhbmQgIm91dC9mZWF0dXJlX2IiIGlmCisgICAgICMgd2UgYnVpbGQgc2FtZSBm aWxlcyB3aXRoIHNhbWUgY29tcGlsZSBmbGFnLgorICAgICAjIE90aGVyIHBhdGhzIGFyZSBhbHJl YWR5IGdpdmVuIGluIHJlbGF0aXZlLCBubyBuZWVkIHRvIG5vcm1hbGl6ZSB0aGVtLgorLSAgICBp ZiAoaXNfbmFjbCkgeworLSAgICAgICMgVE9ETyhodHRwczovL2NyYnVnLmNvbS8xMjMxMjM2KTog VXNlIC1mZmlsZS1jb21waWxhdGlvbi1kaXI9IGhlcmUuCistICAgICAgY2ZsYWdzICs9IFsKKy0g ICAgICAgICItWGNsYW5nIiwKKy0gICAgICAgICItZmRlYnVnLWNvbXBpbGF0aW9uLWRpciIsCist ICAgICAgICAiLVhjbGFuZyIsCistICAgICAgICAiLiIsCistICAgICAgXQorLSAgICB9IGVsc2Ug eworLSAgICAgICMgLWZmaWxlLWNvbXBpbGF0aW9uLWRpciBpcyBhbiBhbGlhcyBmb3IgYm90aCAt ZmRlYnVnLWNvbXBpbGF0aW9uLWRpcj0KKy0gICAgICAjIGFuZCAtZmNvdmVyYWdlLWNvbXBpbGF0 aW9uLWRpcj0uCistICAgICAgY2ZsYWdzICs9IFsgIi1mZmlsZS1jb21waWxhdGlvbi1kaXI9LiIg XQorLSAgICB9CisrICAgIGNmbGFncyArPSBbCisrICAgICAgIi1YY2xhbmciLAorKyAgICAgICIt ZmRlYnVnLWNvbXBpbGF0aW9uLWRpciIsCisrICAgICAgIi1YY2xhbmciLAorKyAgICAgICIuIiwK KysgICAgXQorICAgICBpZiAoIWlzX3dpbikgeworICAgICAgICMgV2UgZG9uJ3QgdXNlIGNsYW5n IC1jYzFhcyBvbiBXaW5kb3dzICh5ZXQ/IGh0dHBzOi8vY3JidWcuY29tLzc2MjE2NykKKyAgICAg ICBhc21mbGFncyA9IFsgIi1XYSwtZmRlYnVnLWNvbXBpbGF0aW9uLWRpciwuIiBdCistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL2NvbXBpbGVyLmduaQor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9jb21waWxlci9jb21waWxl ci5nbmkKK0BAIC0yMjgsOCArMjI4LDExIEBAIGRlY2xhcmVfYXJncygpIHsKKyAjIGRldGVybWlu aXN0aWMgYnVpbGRzIHRvIHJlZHVjZSBjb21waWxlIHRpbWVzLCBzbyB0aGlzIGlzIGxlc3MgcmVs ZXZhbnQgZm9yCisgIyBvZmZpY2lhbCBidWlsZGVycy4KKyBzdHJpcF9hYnNvbHV0ZV9wYXRoc19m cm9tX2RlYnVnX3N5bWJvbHNfZGVmYXVsdCA9CistICAgIGlzX2FuZHJvaWQgfHwgaXNfZnVjaHNp YSB8fCBpc19uYWNsIHx8IChpc193aW4gJiYgdXNlX2xsZCkgfHwgaXNfbGludXggfHwKKy0gICAg aXNfY2hyb21lb3MgfHwgKGlzX2FwcGxlICYmICFlbmFibGVfZHN5bXMpCisrICAgICMgVE9ETyhj cmJ1Zy5jb20vMTAxMDI2Nyk6IHJlbW92ZSAnIXVzZV9jbGFuZ19jb3ZlcmFnZScsIGNvdmVyYWdl IGJ1aWxkIGhhcworKyAgICAjIGRlcGVuZGVuY3kgdG8gYWJzb2x1dGUgcGF0aCBvZiBzb3VyY2Ug ZmlsZXMuCisrICAgICF1c2VfY2xhbmdfY292ZXJhZ2UgJiYKKysgICAgKGlzX2FuZHJvaWQgfHwg aXNfZnVjaHNpYSB8fCBpc19uYWNsIHx8IChpc193aW4gJiYgdXNlX2xsZCkgfHwgaXNfbGludXgg fHwKKysgICAgIGlzX2Nocm9tZW9zIHx8IChpc19hcHBsZSAmJiAhZW5hYmxlX2RzeW1zKSkKKyAK KyBkZWNsYXJlX2FyZ3MoKSB7CisgICBzdHJpcF9hYnNvbHV0ZV9wYXRoc19mcm9tX2RlYnVnX3N5 bWJvbHMgPSBzdHJpcF9hYnNvbHV0ZV9wYXRoc19mcm9tX2RlYnVnX3N5bWJvbHNfZGVmYXVsdApk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1u by1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTExLWNocm9taXVtLW5vLVduby1zdHJpbmdvcC1vdmVycmVhZC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAzZWFjM2Y4ZTA2NwotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTEtY2hyb21pdW0tbm8t V25vLXN0cmluZ29wLW92ZXJyZWFkLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24KKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24KK0BAIC0z OTQsNyArMzk0LDYgQEAgY29uZmlnKCJjb21waWxlciIpIHsKKyAgICAgICAgICItV25vLXBhcmVu dGhlc2VzIiwKKyAgICAgICAgICItV25vLXNpZ24tY29tcGFyZSIsICMgZmlkbworICAgICAgICAg Ii1Xbm8tc3RyaW5nb3Atb3ZlcmZsb3ciLCAjIHNraWEsIGxpYmFvbSwgcHJvdG9idWYsIGljdQor LSAgICAgICAgIi1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQiLCAjIGxpYmFvbQorICAgICAgICAgIi1X bm8tcHNhYmkiLCAjIHNraWEKKyAgICAgICAgICItV25vLW11bHRpY2hhciIsICMgY3Jhc2hwYWQK KyAgICAgICAgICItV25vLWZvcm1hdC16ZXJvLWxlbmd0aCIsICMgdXNlcl9hZ2VudC5jYwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1jaHJvbWl1bS1nbGli Yy1saWJjX21hbGxvYy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTAt Y2hyb21pdW0tZ2xpYmMtbGliY19tYWxsb2MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi43ZTFiNjZlNWM3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNfbWFsbG9jLnBh dGNoCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3By b2Nlc3MvbWVtb3J5X2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9w cm9jZXNzL21lbW9yeV9saW51eC5jYworQEAgLTIzLDYgKzIzLDEyIEBACisgI2luY2x1ZGUgInRo aXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3NyYy9ncGVyZnRvb2xzL3RjbWFsbG9jLmgiCisg I2VuZGlmCisgCisrI2lmIGRlZmluZWQoTElCQ19HTElCQykKKytleHRlcm4gIkMiIHsKKytleHRl cm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrfQorKyNlbmRpZgorKworIG5h bWVzcGFjZSBiYXNlIHsKKyAKKyBuYW1lc3BhY2UgeworQEAgLTEyMCw3ICsxMjYsNyBAQCBib29s IFVuY2hlY2tlZE1hbGxvYyhzaXplX3Qgc2l6ZSwgdm9pZCoqCisgICAgICghZGVmaW5lZChMSUJD X0dMSUJDKSAmJiAhQlVJTERGTEFHKFVTRV9UQ01BTExPQykpCisgICAqcmVzdWx0ID0gbWFsbG9j KHNpemUpOworICNlbGlmIGRlZmluZWQoTElCQ19HTElCQykgJiYgIUJVSUxERkxBRyhVU0VfVENN QUxMT0MpCistICAqcmVzdWx0ID0gX19saWJjX21hbGxvYyhzaXplKTsKKysgICpyZXN1bHQgPSA6 Ol9fbGliY19tYWxsb2Moc2l6ZSk7CisgI2VsaWYgQlVJTERGTEFHKFVTRV9UQ01BTExPQykKKyAg ICpyZXN1bHQgPSB0Y19tYWxsb2Nfc2tpcF9uZXdfaGFuZGxlcihzaXplKTsKKyAjZW5kaWYKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tbXVz bC1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tbXVzbC1pbmNsdWRlLXN5cy1yZWcuaC10 by1nZXQtX19XT1JEU0laRS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjQxYjkwMDcxYjVlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tbXVzbC1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQt X19XT1JEU0laRS5wYXRjaApAQCAtMCwwICsxLDIxIEBACitGcm9tIDkwMDFjNTRkNmI5NzQ0NDkx NzRhOGNlZThmM2Y1ZDc4YTliZDZjOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBG ZWxpeCBKYW5kYSA8ZmVsaXguamFuZGFAcG9zdGVvLmRlPgorRGF0ZTogU3VuLCAxIEZlYiAyMDE1 IDE0OjI2OjUyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMy82XSBpbmNsdWRlIDxzeXMvcmVnLmg+ IHRvIGdldCBfX1dPUkRTSVpFIG9uIG11c2wgbGliYworCistLS0KKyBxdHdlYmVuZ2luZS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1v bi9saW51eC9lbGZfY29yZV9kdW1wLmggfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKKworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9lbGZfY29yZV9kdW1wLmgKK0BAIC0zNyw2ICszNyw5IEBACisgI2luY2x1ZGUgPGxpbWl0 cy5oPgorICNpbmNsdWRlIDxsaW5rLmg+CisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorKyNpZm5kZWYg X19HTElCQ19fCisrI2luY2x1ZGUgPHN5cy9yZWcuaD4KKysjZW5kaWYKKyAKKyAjaW5jbHVkZSAi Y29tbW9uL21lbW9yeV9yYW5nZS5oIgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAxLWNocm9taXVtLW11c2wtZGlzcGF0Y2gt dG8tbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1 OGE2ODhhNGI1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDEtY2hyb21pdW0tbXVzbC1kaXNwYXRjaC10by1tdXNsLnBhdGNoCkBAIC0wLDAgKzEs MTAzIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvYWxsb2Nh dG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19nbGliYy5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2RlZmF1bHRfZGlzcGF0Y2hf dG9fZ2xpYmMuY2MKK0BAIC04LDYgKzgsNyBAQAorICNpbmNsdWRlIDxkbGZjbi5oPgorICNpbmNs dWRlIDxtYWxsb2MuaD4KKyAKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgLy8gVGhpcyB0cmFu c2xhdGlvbiB1bml0IGRlZmluZXMgYSBkZWZhdWx0IGRpc3BhdGNoIGZvciB0aGUgYWxsb2NhdG9y IHNoaW0gd2hpY2gKKyAvLyByb3V0ZXMgYWxsb2NhdGlvbnMgdG8gbGliYyBmdW5jdGlvbnMuCisg Ly8gVGhlIGNvZGUgaGVyZSBpcyBzdHJvbmdseSBpbnNwaXJlZCBmcm9tIHRjbWFsbG9jJ3MgbGli Y19vdmVycmlkZV9nbGliYy5oLgorQEAgLTg3LDMgKzg4LDkyIEBAIGNvbnN0IEFsbG9jYXRvckRp c3BhdGNoIEFsbG9jYXRvckRpc3BhdGMKKyAgICAgbnVsbHB0ciwgICAgICAgICAgICAgICAvKiBh bGlnbmVkX2ZyZWVfZnVuY3Rpb24gKi8KKyAgICAgbnVsbHB0ciwgICAgICAgICAgICAgICAvKiBu ZXh0ICovCisgfTsKKysKKysjZWxzZSAvLyBkZWZpbmVkKF9fR0xJQkNfXykKKysKKysjaW5jbHVk ZSA8ZGxmY24uaD4KKysKKytleHRlcm4gIkMiIHsKKysvLyBEZWNsYXJlIGZ1bmN0aW9uIHBvaW50 ZXJzIHRvIHRoZSBtZW1vcnkgZnVuY3Rpb25zCisrdHlwZWRlZiB2b2lkKiAoKnRfbGliY19tYWxs b2MpKHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgqdF9saWJjX2NhbGxvYykoc2l6ZV90 IG4sIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgqdF9saWJjX3JlYWxsb2MpKHZvaWQq IGFkZHJlc3MsIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgqdF9saWJjX21lbWFsaWdu KShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSk7CisrdHlwZWRlZiB2b2lkICgqdF9saWJj X2ZyZWUpKHZvaWQqIHB0cik7CisrdHlwZWRlZiBzaXplX3QgKCp0X2xpYmNfbWFsbG9jX3VzYWJs ZV9zaXplKSh2b2lkKiBwdHIpOworKworKy8vIFN0YXRpYyBpbnN0YW5jZXMgb2YgcG9pbnRlcnMg dG8gbGliYy5zbyBkbCBzeW1ib2xzCisrc3RhdGljIHRfbGliY19tYWxsb2MgbGliY19tYWxsb2Mg PSBOVUxMOworK3N0YXRpYyB0X2xpYmNfY2FsbG9jIGxpYmNfY2FsbG9jID0gTlVMTDsKKytzdGF0 aWMgdF9saWJjX3JlYWxsb2MgbGliY19yZWFsbG9jID0gTlVMTDsKKytzdGF0aWMgdF9saWJjX21l bWFsaWduIGxpYmNfbWVtYWxpZ24gPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfZnJlZSBsaWJjX2Zy ZWUgPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfbWFsbG9jX3VzYWJsZV9zaXplIGxpYmNfbWFsbG9j X3VzYWJsZV9zaXplID0gTlVMTDsKKysKKysvLyByZXNvbHZlIHRoZSBzeW1ib2xzIGluIGxpYmMu c28KKyt2b2lkIG11c2xfbGliY19tZW1vcnlfaW5pdCh2b2lkKQorK3sKKysgIGxpYmNfbWFsbG9j ID0gKHRfbGliY19tYWxsb2MpIGRsc3ltKFJUTERfTkVYVCwgIm1hbGxvYyIpOworKyAgbGliY19j YWxsb2MgPSAodF9saWJjX2NhbGxvYykgZGxzeW0oUlRMRF9ORVhULCAiY2FsbG9jIik7CisrICBs aWJjX3JlYWxsb2MgPSAodF9saWJjX3JlYWxsb2MpIGRsc3ltKFJUTERfTkVYVCwgInJlYWxsb2Mi KTsKKysgIGxpYmNfbWVtYWxpZ24gPSAodF9saWJjX21lbWFsaWduKSBkbHN5bShSVExEX05FWFQs ICJtZW1hbGlnbiIpOworKyAgbGliY19mcmVlID0gKHRfbGliY19mcmVlKSBkbHN5bShSVExEX05F WFQsICJmcmVlIik7CisrICBsaWJjX21hbGxvY191c2FibGVfc2l6ZSA9ICh0X2xpYmNfbWFsbG9j X3VzYWJsZV9zaXplKSBkbHN5bShSVExEX05FWFQsICJtYWxsb2NfdXNhYmxlX3NpemUiKTsKKyt9 CisrfSAgLy8gZXh0ZXJuICJDIgorKworK25hbWVzcGFjZSB7CisrCisrdXNpbmcgYmFzZTo6YWxs b2NhdG9yOjpBbGxvY2F0b3JEaXNwYXRjaDsKKysKKyt2b2lkKiBNdXNsTWFsbG9jKGNvbnN0IEFs bG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IHNpemUsIHZvaWQqIGNvbnRleHQpIHsKKysgIGlmICgh bGliY19tYWxsb2MpCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOworKyAgcmV0dXJuICgq bGliY19tYWxsb2MpKHNpemUpOworK30KKysKKyt2b2lkKiBNdXNsQ2FsbG9jKGNvbnN0IEFsbG9j YXRvckRpc3BhdGNoKiwgc2l6ZV90IG4sIHNpemVfdCBzaXplLCB2b2lkKiBjb250ZXh0KSB7Cisr ICBpZiAoIWxpYmNfY2FsbG9jKQorKyAgICBtdXNsX2xpYmNfbWVtb3J5X2luaXQoKTsKKysgIHJl dHVybiAoKmxpYmNfY2FsbG9jKShuLCBzaXplKTsKKyt9CisrCisrdm9pZCogTXVzbFJlYWxsb2Mo Y29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCB2b2lkKiBhZGRyZXNzLCBzaXplX3Qgc2l6ZSwgdm9p ZCogY29udGV4dCkgeworKyAgaWYgKCFsaWJjX3JlYWxsb2MpCisrICAgIG11c2xfbGliY19tZW1v cnlfaW5pdCgpOworKyAgcmV0dXJuICgqbGliY19yZWFsbG9jKShhZGRyZXNzLCBzaXplKTsKKyt9 CisrCisrdm9pZCogTXVzbE1lbWFsaWduKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90 IGFsaWdubWVudCwgc2l6ZV90IHNpemUsIHZvaWQqIGNvbnRleHQpIHsKKysgIGlmICghbGliY19t ZW1hbGlnbikKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0KCk7CisrICByZXR1cm4gKCpsaWJj X21lbWFsaWduKShhbGlnbm1lbnQsIHNpemUpOworK30KKysKKyt2b2lkIE11c2xGcmVlKGNvbnN0 IEFsbG9jYXRvckRpc3BhdGNoKiwgdm9pZCogYWRkcmVzcywgdm9pZCogY29udGV4dCkgeworKyAg aWYgKCFsaWJjX2ZyZWUpCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOworKyAgKCpsaWJj X2ZyZWUpKGFkZHJlc3MpOworK30KKysKKytzaXplX3QgTXVzbEdldFNpemVFc3RpbWF0ZShjb25z dCBBbGxvY2F0b3JEaXNwYXRjaCosIHZvaWQqIGFkZHJlc3MsIHZvaWQqIGNvbnRleHQpIHsKKysg IC8vIFRPRE8oc2lnZ2ksIHByaW1pYW5vKTogbWFsbG9jX3VzYWJsZV9zaXplIG1heSBuZWVkIHJl ZGlyZWN0aW9uIGluIHRoZQorKyAgLy8gICAgIHByZXNlbmNlIG9mIGludGVycG9zaW5nIHNoaW1z IHRoYXQgZGl2ZXJ0IGFsbG9jYXRpb25zLgorKyAgaWYgKCFsaWJjX21hbGxvY191c2FibGVfc2l6 ZSkKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0KCk7CisrICByZXR1cm4gKCpsaWJjX21hbGxv Y191c2FibGVfc2l6ZSkoYWRkcmVzcyk7CisrfQorKworK30gIC8vIG5hbWVzcGFjZQorKworK2Nv bnN0IEFsbG9jYXRvckRpc3BhdGNoIEFsbG9jYXRvckRpc3BhdGNoOjpkZWZhdWx0X2Rpc3BhdGNo ID0geworKyAgICAmTXVzbE1hbGxvYywgICAgICAgICAgIC8qIGFsbG9jX2Z1bmN0aW9uICovCisr ICAgICZNdXNsQ2FsbG9jLCAgICAgICAgICAgLyogYWxsb2NfemVyb19pbml0aWFsaXplZF9mdW5j dGlvbiAqLworKyAgICAmTXVzbE1lbWFsaWduLCAgICAgICAgIC8qIGFsbG9jX2FsaWduZWRfZnVu Y3Rpb24gKi8KKysgICAgJk11c2xSZWFsbG9jLCAgICAgICAgICAvKiByZWFsbG9jX2Z1bmN0aW9u ICovCisrICAgICZNdXNsRnJlZSwgICAgICAgICAgICAgLyogZnJlZV9mdW5jdGlvbiAqLworKyAg ICAmTXVzbEdldFNpemVFc3RpbWF0ZSwgIC8qIGdldF9zaXplX2VzdGltYXRlX2Z1bmN0aW9uICov CisrICAgIG51bGxwdHIsICAgICAgICAgICAgICAgLyogbmV4dCAqLworK307CisrCisrI2VuZGlm CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9taXVt LW11c2wtbm8tbWFsbGluZm8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5hNWJkYjVhNDNhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8u cGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv cHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bvc2l4LmNjCitAQCAtMTA1LDcgKzEw NSw3IEBAIHZvaWQgSW5jcmVhc2VGZExpbWl0VG8odW5zaWduZWQgaW50IG1heF8KKyAKKyAjZW5k aWYgIC8vICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgCistI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8 IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjaWYgKGRlZmlu ZWQoT1NfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgZGVmaW5lZChPU19DSFJPTUVP UykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorIG5hbWVzcGFjZSB7CisgCisgc2l6ZV90IEdldE1h bGxvY1VzYWdlTWFsbGluZm8oKSB7CitAQCAtMTI3LDE2ICsxMjcsMTYgQEAgc2l6ZV90IEdldE1h bGxvY1VzYWdlTWFsbGluZm8oKSB7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZQorLSNlbmRpZiAg Ly8gZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19DSFJPTUVPUykgfHwgZGVmaW5lZChP U19BTkRST0lEKQorKyNlbmRpZiAgLy8gKGRlZmluZWQoT1NfTElOVVgpICYmIGRlZmluZWQoX19H TElCQ19fKSkgfHwgZGVmaW5lZChPU19DSFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQor IAorIHNpemVfdCBQcm9jZXNzTWV0cmljczo6R2V0TWFsbG9jVXNhZ2UoKSB7CisgI2lmIGRlZmlu ZWQoT1NfQVBQTEUpCisgICBtYWxsb2Nfc3RhdGlzdGljc190IHN0YXRzID0gezB9OworICAgbWFs bG9jX3pvbmVfc3RhdGlzdGljcyhudWxscHRyLCAmc3RhdHMpOworICAgcmV0dXJuIHN0YXRzLnNp emVfaW5fdXNlOworLSNlbGlmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQ0hST01F T1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjZWxpZiAoZGVmaW5lZChPU19MSU5VWCkgJiYg ZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKSB8fCBkZWZpbmVkKE9T X0FORFJPSUQpCisgICByZXR1cm4gR2V0TWFsbG9jVXNhZ2VNYWxsaW5mbygpOworLSNlbGlmIGRl ZmluZWQoT1NfRlVDSFNJQSkKKysjZWxzZQorICAgLy8gVE9ETyhmdWNoc2lhKTogTm90IGN1cnJl bnRseSBleHBvc2VkLiBodHRwczovL2NyYnVnLmNvbS83MzUwODcuCisgICByZXR1cm4gMDsKKyAj ZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS90ZmxpdGUvc3Jj L3RlbnNvcmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9wcm9m aWxpbmcvbWVtb3J5X2luZm8uY2MKK0BAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBtZW1vcnkg eworIGNvbnN0IGludCBNZW1vcnlVc2FnZTo6a1ZhbHVlTm90U2V0ID0gMDsKKyAKKyBib29sIE1l bW9yeVVzYWdlOjpJc1N1cHBvcnRlZCgpIHsKKy0jaWZkZWYgX19saW51eF9fCisrI2lmZGVmIF9f R0xJQkNfXworICAgcmV0dXJuIHRydWU7CisgI2VuZGlmCisgICByZXR1cm4gZmFsc2U7CitAQCAt MzUsNyArMzUsNyBAQCBib29sIE1lbW9yeVVzYWdlOjpJc1N1cHBvcnRlZCgpIHsKKyAKKyBNZW1v cnlVc2FnZSBHZXRNZW1vcnlVc2FnZSgpIHsKKyAgIE1lbW9yeVVzYWdlIHJlc3VsdDsKKy0jaWZk ZWYgX19saW51eF9fCisrI2lmZGVmIF9fR0xJQkNfXworICAgcnVzYWdlIHJlczsKKyAgIGlmIChn ZXRydXNhZ2UoUlVTQUdFX1NFTEYsICZyZXMpID09IDApIHsKKyAgICAgcmVzdWx0Lm1heF9yc3Nf a2IgPSByZXMucnVfbWF4cnNzOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvdHJh Y2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCitAQCAtMjEzLDcg KzIxMyw3IEBAIGJvb2wgTWFsbG9jRHVtcFByb3ZpZGVyOjpPbk1lbW9yeUR1bXAoY28KKyAgICAg ICAgICAgICAgICAgICAgICAmYWxsb2NhdGVkX29iamVjdHNfY291bnQpOworICNlbGlmIGRlZmlu ZWQoT1NfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1 Zy5jb20vNzA2NTkyLgorLSNlbHNlCisrI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2lmIGRl ZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fR0xJQkNfUFJFUkVRKQorICNpZiBfX0dMSUJD X1BSRVJFUSgyLCAzMykKKyAjZGVmaW5lIE1BTExJTkZPMl9GT1VORF9JTl9MSUJDCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAzLWNocm9taXVtLW11c2wtc2ln aW5mb190LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMy1jaHJvbWl1 bS1tdXNsLXNpZ2luZm9fdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjQzZWY3ZmQ3YzVkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAyMDMtY2hyb21pdW0tbXVzbC1zaWdpbmZvX3QucGF0Y2gKQEAgLTAsMCAr MSwxOCBAQAorVGhlcmUncyBhIHN1YnRsZSBkaWZmZXJlbmNlIGluIHRoZSBpbnRlcm5hbCBuYW1l IG9mIHNpZ2luZm9fdCBmaWVsZHMKK2JldHdlZW4gZ2xpYmMgYW5kIG11c2wuIFRoZSBzdHJ1Y3R1 cmUgaXRzZWxmIGlzIGVxdWl2YWxlbnQsIHNvIGl0CitzaG91bGQgc3VmZmljZSB0byBhZGQgYSBt YWNybyB0byByZW5hbWUgdGhlIGZpZWxkLgorCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCitAQCAtMTc0LDcgKzE3NCwx MSBAQCB2b2lkIFRyYXA6OlNpZ1N5cyhpbnQgbnIsIExpbnV4U2lnSW5mbyoKKyAgIC8vIElmIHRo ZSB2ZXJzaW9uIG9mIGdsaWJjIGRvZXNuJ3QgaW5jbHVkZSB0aGlzIGluZm9ybWF0aW9uIGluCisg ICAvLyBzaWdpbmZvX3QgKG9sZGVyIHRoYW4gMi4xNyksIHdlIG5lZWQgdG8gZXhwbGljaXRseSBj b3B5IGl0CisgICAvLyBpbnRvIGFuIGFyY2hfc2lnc3lzIHN0cnVjdHVyZS4KKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pCisgICBtZW1jcHkoJnNpZ3N5cywgJmluZm8tPl9zaWZpZWxkcywgc2l6ZW9m KHNpZ3N5cykpOworKyNlbHNlCisrICBtZW1jcHkoJnNpZ3N5cywgJmluZm8tPl9fc2lfZmllbGRz LCBzaXplb2Yoc2lnc3lzKSk7CisrI2VuZGlmCisgI2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19t aXBzX18pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA0LWNo cm9taXVtLW11c2wtc3RhY2tzdGFydC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDQtY2hyb21pdW0tbXVzbC1zdGFja3N0YXJ0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjAzY2Y0M2I4NmRiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3Rh cnQucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vd3RmL3N0YWNrX3V0aWwuY2MKK0BAIC0yOSw3ICsyOSw3IEBAIHNpemVfdCBHZXRVbmRlcmVz dGltYXRlZFN0YWNrU2l6ZSgpIHsKKyAvLyBGSVhNRTogT24gTWFjIE9TWCBhbmQgTGludXgsIHRo aXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCisgLy8gY29ycmVjdGx5IGZvciB0 aGUgbWFpbiB0aHJlYWQuCisgCistI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQo T1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisrI2VsaWYgZGVmaW5lZChP U19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8 IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgLy8gcHRocmVhZF9nZXRhdHRyX25wKCkg Y2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBieQorICAgLy8gcHRocmVhZF9j cmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3VuaXR0ZXN0cykuCitAQCAt OTcsNyArOTcsNyBAQCByZXR1cm4gVGhyZWFkaW5nOjpUaHJlYWRTdGFja1NpemUoKTsKKyB9Cisg Cisgdm9pZCogR2V0U3RhY2tTdGFydCgpIHsKKy0jaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRl ZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisrI2lmIGRlZmlu ZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNE KSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAgIHB0aHJlYWRfYXR0cl90IGF0dHI7 CisgICBpbnQgZXJyb3I7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMDUtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzcyYTU3OGZkODIzCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNS1jaHJvbWl1bS1tdXNsLXNhbmRi b3gucGF0Y2gKQEAgLTAsMCArMSw5MiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJp Y3Rpb25zLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKK0BAIC0x MzgsNyArMTM4LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggeworIC8vIHByZXNlbnQgKGFzIGluIG5l d2VyIHZlcnNpb25zIG9mIHBvc2l4X3NwYXduKS4KKyBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVU b1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICBjb25zdCBBcmc8dW5zaWduZWQgbG9uZz4gZmxh Z3MoMCk7CistCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgLy8gVE9ETyhtZGVtcHNreSk6 IEV4dGVuZCBEU0wgdG8gc3VwcG9ydCAoZmxhZ3MgJiB+bWFzazEpID09IG1hc2syLgorICAgY29u c3QgdWludDY0X3Qga0FuZHJvaWRDbG9uZU1hc2sgPSBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xP TkVfRklMRVMgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9T SUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKK0BAIC0xNjUsNiArMTY1LDE3IEBAIFJlc3VsdEV4cHIg UmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVIKKyAgIHJldHVybiBJZihJc0FuZHJvaWQoKSA/ IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFsbG93KCkpCisgICAgICAgLkVsc2VJZihpc19m b3JrX29yX2Nsb25lX3Zmb3JrLCBFcnJvcihFUEVSTSkpCisgICAgICAgLkVsc2UoQ3Jhc2hTSUdT WVNDbG9uZSgpKTsKKysjZWxzZQorKyAgY29uc3QgaW50IHJlcXVpcmVkID0gQ0xPTkVfVk0gfCBD TE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFORCB8CisrICAgICAgICAgICAgICAg ICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNWU0VNOworKyAgY29uc3QgaW50IHNhZmUg PSBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJU SUQgfAorKyAgICAgICAgICAgICAgICAgICBDTE9ORV9ERVRBQ0hFRDsKKysgIGNvbnN0IEJvb2xF eHByIHRocmVhZF9jbG9uZV9vayA9IChmbGFncyZ+c2FmZSk9PXJlcXVpcmVkOworKworKyAgcmV0 dXJuIElmKHRocmVhZF9jbG9uZV9vaywgQWxsb3coKSkKKysgICAgICAuRWxzZUlmKChmbGFncyAm IChDTE9ORV9WTSB8IENMT05FX1RIUkVBRCkpID09IDAsIEVycm9yKEVQRVJNKSkKKysgICAgICAu RWxzZShDcmFzaFNJR1NZU0Nsb25lKCkpOworKyNlbmRpZgorIH0KKyAKKyAjaWZuZGVmIFBSX1BB Q19SRVNFVF9LRVlTCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MK K0BAIC00MTksNiArNDE5LDkgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0 YXJ0TworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAj ZW5kaWYKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICBjYXNlIF9fTlJfc2V0X3RpZF9h ZGRyZXNzOgorKyNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfY2xv bmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCisgICAgIGNhc2UgX19OUl9z ZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtNDMxLDcgKzQzNCw5IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorICAgICBjYXNlIF9fTlJfc2V0 X3RocmVhZF9hcmVhOgorICNlbmRpZgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgY2Fz ZSBfX05SX3NldF90aWRfYWRkcmVzczoKKysjZW5kaWYKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6 CisgI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAg Y2FzZSBfX05SX3Zmb3JrOgorQEAgLTU0NSw2ICs1NTAsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9tbG9jazoKKyAgICAgY2FzZSBf X05SX211bmxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5tYXA6CisrI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykKKysgICAgY2FzZSBfX05SX21yZW1hcDoKKysjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgY2FzZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorQEAg LTU2Miw3ICs1NzAsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VB CisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbXBy b3RlY3Q6CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgICBjYXNlIF9fTlJfbXJlbWFwOgor KyNlbmRpZgorICAgICBjYXNlIF9fTlJfbXN5bmM6CisgICAgIGNhc2UgX19OUl9tdW5sb2NrYWxs OgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJf cG9saWN5X2xpbnV4LmNjCitAQCAtOTcsMTEgKzk3LDE4IEBAIFJlc3VsdEV4cHIgUmVuZGVyZXJQ cm9jZXNzUG9saWN5OjpFdmFsdWEKKyAgICAgY2FzZSBfX05SX3N5c2luZm86CisgICAgIGNhc2Ug X19OUl90aW1lczoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgorKyNpZiAhZGVmaW5lZChfX0dMSUJD X18pCisrICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToKKysgICAgY2FzZSBfX05SX3NjaGVk X2dldHNjaGVkdWxlcjoKKysgICAgY2FzZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKysjZW5k aWYKKyAgICAgICByZXR1cm4gQWxsb3coKTsKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldGFmZmlu aXR5OgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBh cmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyOgorICAgICBjYXNlIF9fTlJf c2NoZWRfc2V0c2NoZWR1bGVyOgorKyNlbmRpZgorICAgICAgIHJldHVybiBSZXN0cmljdFNjaGVk VGFyZ2V0KEdldFBvbGljeVBpZCgpLCBzeXNubyk7CisgICAgIGNhc2UgX19OUl9wcmxpbWl0NjQ6 CisgICAgICAgLy8gU2VlIGNyYnVnLmNvbS82NjI0NTAgYW5kIHNldHJsaW1pdCBjb21tZW50IGFi b3ZlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNi1jaHJv bWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmMwNzQ5NWI4MTQ0Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1t dXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJl YWRfbGludXguY2MKK0BAIC00MzksNyArNDM5LDEyIEBAIHZvaWQgVGVybWluYXRlT25UaHJlYWQo KSB7fQorIAorIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRf YXR0cl90JiBhdHRyaWJ1dGVzKSB7CisgI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCisr I2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgcmV0dXJuIDA7CisrI2Vsc2UgLy8gZGVmaW5lZChf X0dMSUJDX18pCisrICAvLyBGb3IgTXVzbCBsaWJjIHRyeSB3aXRoIGEgZGVmYXVsdCBzdGFjayBz aXplIG9mIDIgTWlCCisrICByZXR1cm4gMiAqIDEwMjQgKiAxMDI0OworKyNlbmRpZiAvLyAhZGVm aW5lZChfX0dMSUJDX18pCisgI2Vsc2UKKyAgIC8vIFRocmVhZFNhbml0aXplciBibG9hdHMgdGhl IHN0YWNrIGhlYXZpbHkuIEV2aWRlbmNlIGhhcyBiZWVuIHRoYXQgdGhlCisgICAvLyBkZWZhdWx0 IHN0YWNrIHNpemUgaXNuJ3QgZW5vdWdoIGZvciBzb21lIGJyb3dzZXIgdGVzdHMuCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA3LWNocm9taXVtLW11c2wtY3Jv c3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwNy1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNjZjEzMjkwOGFmNAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDctY2hyb21pdW0tbXVzbC1j cm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCitAQCAtMzgsNyAr MzgsMTIgQEAKKyAKKyAjaW5jbHVkZSAiY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9wdHJhY2VfZHVtcGVyLmgiCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRl IDxhc20vcHRyYWNlLmg+CisrI2Vsc2UKKysvKiBGb3IgYXJtKi1tdXNsIHRoaXMgZGVmaW5pdGlv biBpcyBtaXNzaW5nICovCisrI2RlZmluZSBBUk1fc3AgdXJlZ3NbMTNdCisrI2VuZGlmCisgI2lu Y2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxlcnJuby5oPgorICNpbmNsdWRlIDxmY250bC5o PgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MK K0BAIC0zMiw3ICszMiwxMiBAQAorIAorICNpbmNsdWRlICJjbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmgiCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQor ICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2Vsc2UKKysvKiBGb3IgYXJtKi1tdXNsIHRoaXMg ZGVmaW5pdGlvbiBpcyBtaXNzaW5nICovCisrI2RlZmluZSBBUk1fc3AgdXJlZ3NbMTNdCisrI2Vu ZGlmCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxlbGYuaD4KKyAjaW5jbHVkZSA8 c3RkaW8uaD4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgt Y2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjlmM2I5NjQ2NzZiMwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5w YXRjaApAQCAtMCwwICsxLDEyNSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv ZGVidWcvc3RhY2tfdHJhY2UuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2Rl YnVnL3N0YWNrX3RyYWNlLmNjCitAQCAtMjUyLDcgKzI1Miw5IEBAIHZvaWQgU3RhY2tUcmFjZTo6 UHJpbnQoKSBjb25zdCB7CisgfQorIAorIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0o c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRl ZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChvcywgbnVsbHB0cik7Cisr I2VuZGlmCisgfQorIAorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nKCkgY29uc3Qg eworQEAgLTI2MCw3ICsyNjIsNyBAQCBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygp IGNvbnN0CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nV2l0aFByZWZpeChj b25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBzdGQ6OnN0cmluZ3N0cmVhbSBz dHJlYW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lm IGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1X aXRoUHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcpOworICNlbmRpZgorICAgcmV0dXJuIHN0 cmVhbS5zdHIoKTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNr X3RyYWNlX3Bvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9kZWJ1Zy9z dGFja190cmFjZV9wb3NpeC5jYworQEAgLTI3LDcgKzI3LDcgQEAKKyAjaWYgIWRlZmluZWQoVVNF X1NZTUJPTElaRSkKKyAjaW5jbHVkZSA8Y3h4YWJpLmg+CisgI2VuZGlmCistI2lmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAm JiAhZGVmaW5lZChfQUlYKQorICNpbmNsdWRlIDxleGVjaW5mby5oPgorICNlbmRpZgorIAorQEAg LTg5LDcgKzg5LDcgQEAgdm9pZCBEZW1hbmdsZVN5bWJvbHMoc3RkOjpzdHJpbmcqIHRleHQpCisg ICAvLyBOb3RlOiBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5jLXNpZ25hbCBzYWZl IChzdGQ6OnN0cmluZyB1c2VzCisgICAvLyBtYWxsb2MgaW50ZXJuYWxseSkuCisgCistI2lmICFk ZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElC Q19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBzZWFyY2hf ZnJvbSA9IDA7CisgICB3aGlsZSAoc2VhcmNoX2Zyb20gPCB0ZXh0LT5zaXplKCkpIHsKKyAgICAg Ly8gTG9vayBmb3IgdGhlIHN0YXJ0IG9mIGEgbWFuZ2xlZCBzeW1ib2wsIGZyb20gc2VhcmNoX2Zy b20uCitAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5n KiB0ZXh0KQorICAgICAgIHNlYXJjaF9mcm9tID0gbWFuZ2xlZF9zdGFydCArIDI7CisgICAgIH0K KyAgIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisrI2VuZGlmICAvLyAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgfQor ICNlbmRpZiAgLy8gIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyAKK0BAIC0xMzYsNyArMTM2LDcg QEAgY2xhc3MgQmFja3RyYWNlT3V0cHV0SGFuZGxlciB7CisgICB2aXJ0dWFsIH5CYWNrdHJhY2VP dXRwdXRIYW5kbGVyKCkgPSBkZWZhdWx0OworIH07CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQorIHZvaWQgT3V0cHV0UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VPdXRw dXRIYW5kbGVyKiBoYW5kbGVyKSB7CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3JlIHRoYW4gZW5v dWdoIHRvIHN0b3JlIGEgNjQtYml0IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBoZXggZGlnaXRz ICsgMSBmb3IgbnVsbC10ZXJtaW5hdG9yLgorQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIFByb2Nl c3NCYWNrdHJhY2Uodm9pZCogY29uc3QqIHRyYWNlCisgICB9CisgI2VuZGlmICAvLyBkZWZpbmVk KFVTRV9TWU1CT0xJWkUpCisgfQorLSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX0FJWCkKKyAKKyB2b2lkIFByaW50VG9TdGRlcnIoY29uc3QgY2hhciogb3V0cHV0KSB7Cisg ICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2Vk IGJ5IGluLXByb2Nlc3MKK0BAIC04MzksNyArODM5LDcgQEAgc2l6ZV90IENvbGxlY3RTdGFja1Ry YWNlKHZvaWQqKiB0cmFjZSwgcworICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgdW53aW5kIHRhYmxl cywgdGhlbiB0cnkgdHJhY2luZyB1c2luZyBmcmFtZSBwb2ludGVycy4KKyAgIHJldHVybiBiYXNl OjpkZWJ1Zzo6VHJhY2VTdGFja0ZyYW1lUG9pbnRlcnMoY29uc3RfY2FzdDxjb25zdCB2b2lkKio+ KHRyYWNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y291bnQsIDApOworLSNlbGlmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisrI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICAvLyBUaG91 Z2ggdGhlIGJhY2t0cmFjZSBBUEkgbWFuIHBhZ2UgZG9lcyBub3QgbGlzdCBhbnkgcG9zc2libGUg bmVnYXRpdmUKKyAgIC8vIHJldHVybiB2YWx1ZXMsIHdlIHRha2Ugbm8gY2hhbmNlLgorICAgcmV0 dXJuIGJhc2U6OnNhdHVyYXRlZF9jYXN0PHNpemVfdD4oYmFja3RyYWNlKHRyYWNlLCBjb3VudCkp OworQEAgLTg1MiwxMyArODUyLDEzIEBAIHZvaWQgU3RhY2tUcmFjZTo6UHJpbnRXaXRoUHJlZml4 KGNvbnN0IGMKKyAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAo aXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAvLyBzdGFjayBkdW1waW5nIHNpZ25hbCBoYW5kbGVy KS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KKyAKKy0jaWYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisgICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcjsK KyAgIFByb2Nlc3NCYWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9zdHJpbmcsICZoYW5k bGVyKTsKKyAjZW5kaWYKKyB9CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZv aWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KHN0ZDo6b3N0cmVhbSogb3Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog cHJlZml4X3N0cmluZykgY29uc3QgeworICAgU3RyZWFtQmFja3RyYWNlT3V0cHV0SGFuZGxlciBo YW5kbGVyKG9zKTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2xvZ2dpbmcuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2xvZ2dpbmcuY2MKK0BAIC01ODIsNyAr NTgyLDcgQEAgTG9nTWVzc2FnZTo6TG9nTWVzc2FnZShjb25zdCBjaGFyKiBmaWxlLAorIAorIExv Z01lc3NhZ2U6On5Mb2dNZXNzYWdlKCkgeworICAgc2l6ZV90IHN0YWNrX3N0YXJ0ID0gc3RyZWFt Xy50ZWxscCgpOworLSNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYgIWRlZmluZWQoT1Nf TkFDTCkgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgXAorKyNpZiAhZGVmaW5lZChPRkZJQ0lB TF9CVUlMRCkgJiYgIWRlZmluZWQoT1NfTkFDTCkgJiYgZGVmaW5lZChfX0dMSUJDX18pICYmIFwK KyAgICAgIWRlZmluZWQoT1NfQUlYKQorICAgaWYgKHNldmVyaXR5XyA9PSBMT0dHSU5HX0ZBVEFM ICYmICFiYXNlOjpkZWJ1Zzo6QmVpbmdEZWJ1Z2dlZCgpKSB7CisgICAgIC8vIEluY2x1ZGUgYSBz dGFjayB0cmFjZSBvbiBhIGZhdGFsLCB1bmxlc3MgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZC4KKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9leHRlcm5hbC1yZWZlcmVu Y2UtdGFibGUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9l eHRlcm5hbC1yZWZlcmVuY2UtdGFibGUuY2MKK0BAIC0xMiw3ICsxMiw5IEBACisgCisgI2lmIGRl ZmluZWQoREVCVUcpICYmIGRlZmluZWQoVjhfT1NfTElOVVgpICYmICFkZWZpbmVkKFY4X09TX0FO RFJPSUQpCisgI2RlZmluZSBTWU1CT0xJWkVfRlVOQ1RJT04KKysjaWYgZGVmaW5lZChfX0dMSUJD X18pCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgPHZlY3Rv cj4KKyAKK0BAIC0xMDMsNyArMTA1LDcgQEAgdm9pZCBFeHRlcm5hbFJlZmVyZW5jZVRhYmxlOjpJ bml0KElzb2xhdAorIH0KKyAKKyBjb25zdCBjaGFyKiBFeHRlcm5hbFJlZmVyZW5jZVRhYmxlOjpS ZXNvbHZlU3ltYm9sKHZvaWQqIGFkZHJlc3MpIHsKKy0jaWZkZWYgU1lNQk9MSVpFX0ZVTkNUSU9O CisrI2lmIGRlZmluZWQoU1lNQk9MSVpFX0ZVTkNUSU9OKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykK KyAgIGNoYXIqKiBuYW1lcyA9IGJhY2t0cmFjZV9zeW1ib2xzKCZhZGRyZXNzLCAxKTsKKyAgIGNv bnN0IGNoYXIqIG5hbWUgPSBuYW1lc1swXTsKKyAgIC8vIFRoZSBhcnJheSBvZiBuYW1lcyBpcyBt YWxsb2MnZWQuIEhvd2V2ZXIsIGVhY2ggbmFtZSBzdHJpbmcgaXMgc3RhdGljCmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA5LWNocm9taXVtLW11c2wtdGhyZWFk LXN0YWNrc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDktY2hy b21pdW0tbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNGI3NjBhNDI4YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwOS1jaHJvbWl1bS1tdXNsLXRocmVhZC1zdGFja3Np emUucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Bw YXBpL3V0aWxpdHkvdGhyZWFkaW5nL3NpbXBsZV90aHJlYWQuY2MKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9wcGFwaS91dGlsaXR5L3RocmVhZGluZy9zaW1wbGVfdGhyZWFkLmNjCitAQCAt MTMsNyArMTMsNyBAQCBuYW1lc3BhY2UgcHAgeworIG5hbWVzcGFjZSB7CisgCisgLy8gVXNlIDJN QiBkZWZhdWx0IHN0YWNrIHNpemUgZm9yIE5hdGl2ZSBDbGllbnQsIG90aGVyd2lzZSB1c2Ugc3lz dGVtIGRlZmF1bHQuCistI2lmIGRlZmluZWQoX19uYXRpdmVfY2xpZW50X18pCisrI2lmIGRlZmlu ZWQoX19uYXRpdmVfY2xpZW50X18pIHx8ICFkZWZpbmVkKF9fR0xJQkNfXykKKyBjb25zdCBzaXpl X3Qga0RlZmF1bHRTdGFja1NpemUgPSAyICogMTAyNCAqIDEwMjQ7CisgI2Vsc2UKKyBjb25zdCBz aXplX3Qga0RlZmF1bHRTdGFja1NpemUgPSAwOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9iYXNlL3BsYXRmb3JtL3BsYXRmb3JtLXBvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vcGxhdGZvcm0tcG9zaXguY2MKK0BAIC04 ODMsNyArODgzLDcgQEAgYm9vbCBUaHJlYWQ6OlN0YXJ0KCkgeworICNpZiBWOF9PU19NQUNPU1gK KyAgICAgLy8gRGVmYXVsdCBvbiBNYWMgT1MgWCBpcyA1MTJrQiAtLSBidW1wIHVwIHRvIDFNQgor ICAgICBzdGFja19zaXplID0gMSAqIDEwMjQgKiAxMDI0OworLSNlbGlmIFY4X09TX0FJWAorKyNl bGlmIFY4X09TX0FJWCB8fCAhZGVmaW5lZChfX0dMSUJDX18pCisgICAgIC8vIERlZmF1bHQgb24g QUlYIGlzIDk2a0IgLS0gYnVtcCB1cCB0byAyTUIKKyAgICAgc3RhY2tfc2l6ZSA9IDIgKiAxMDI0 ICogMTAyNDsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2ZWMtcHVzaF9iYWNrLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2su cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45MDVkYWEyMjM3 MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEw LWNocm9taXVtLW11c2wtbXNndmVjLXB1c2hfYmFjay5wYXRjaApAQCAtMCwwICsxLDE0IEBACist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4 LmNjCitAQCAtMTE2Miw3ICsxMTYyLDExIEBAIFNlbmRSZXN1bHQgVURQU29ja2V0UG9zaXhTZW5k ZXI6OkludGVybmEKKyAgICAgbXNnX2lvdi0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNoYXIqPihi dWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+bGVuZ3RoKCl9KTsKKyAgIG1zZ3ZlYy0+cmVzZXJ2ZShi dWZmZXJzLnNpemUoKSk7CisgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMuc2l6ZSgp OyBqKyspCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgICBtc2d2ZWMtPnB1c2hfYmFjayh7 e251bGxwdHIsIDAsICZtc2dfaW92W2pdLCAxLCBudWxscHRyLCAwLCAwfSwgMH0pOworKyNlbHNl CisrICAgIG1zZ3ZlYy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIDAs IDAsIDB9LCAwfSk7CisrI2VuZGlmCisgICBpbnQgcmVzdWx0ID0gSEFORExFX0VJTlRSKFNlbmRt bXNnKGZkLCAmbXNndmVjWzBdLCBidWZmZXJzLnNpemUoKSwgMCkpOworICAgU2VuZFJlc3VsdCBz ZW5kX3Jlc3VsdCgwLCAwLCBzdGQ6Om1vdmUoYnVmZmVycykpOworICAgaWYgKHJlc3VsdCA8IDAp IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTEtY2hyb21p dW0tbXVzbC1jYW5vbmljYWxpemUtZmlsZS1uYW1lLW11c2wucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjExLWNocm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFt ZS1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDQz ZTZiZDQ4OGJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIxMS1jaHJvbWl1bS1tdXNsLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaApA QCAtMCwwICsxLDExIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv bmFzbS9uYXNtbGliL3JlYWxwYXRoLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9uYXNtL25hc21saWIvcmVhbHBhdGguYworQEAgLTU1LDcgKzU1LDcgQEAKKyAgKi8K KyBjaGFyICpuYXNtX3JlYWxwYXRoKGNvbnN0IGNoYXIgKnJlbF9wYXRoKQorIHsKKy0gICAgY2hh ciAqcnAgPSBjYW5vbmljYWxpemVfZmlsZV9uYW1lKHJlbF9wYXRoKTsKKysgICAgY2hhciAqcnAg PSByZWFscGF0aChyZWxfcGF0aCwgTlVMTCk7CisgICAgIHJldHVybiBycCA/IHJwIDogbmFzbV9z dHJkdXAocmVsX3BhdGgpOworIH0KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMTItY2hyb21pdW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMi1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NzU1ZjFiNDVh N2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEy LWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5wYXRjaApAQCAtMCwwICsxLDI5IEBACistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitAQCAtNDg5LDggKzQ4OSwxMCBAQCBi b29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVsCisgICAvLyBFeGNlcHRpb25I YW5kbGVyOjpIYW5kbGVTaWduYWwoKS4KKyAgIHNpZ2luZm8uc2lfY29kZSA9IFNJX1VTRVI7Cisg ICBzaWdpbmZvLnNpX3BpZCA9IGdldHBpZCgpOworLSAgdWNvbnRleHRfdCBjb250ZXh0OworKyAg dWNvbnRleHRfdCBjb250ZXh0ID0geyAwIH07CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAg Z2V0Y29udGV4dCgmY29udGV4dCk7CisrI2VuZGlmCisgICByZXR1cm4gSGFuZGxlU2lnbmFsKHNp ZywgJnNpZ2luZm8sICZjb250ZXh0KTsKKyB9CisgCitAQCAtNjc1LDkgKzY3NywxNCBAQCBib29s IEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7CisgICBzeXNfcHJjdGwoUFJfU0VU X0RVTVBBQkxFLCAxLCAwLCAwLCAwKTsKKyAKKyAgIENyYXNoQ29udGV4dCBjb250ZXh0OworKwor KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGludCBnZXRjb250ZXh0X3Jlc3VsdCA9IGdldGNv bnRleHQoJmNvbnRleHQuY29udGV4dCk7CisgICBpZiAoZ2V0Y29udGV4dF9yZXN1bHQpCisgICAg IHJldHVybiBmYWxzZTsKKysjZWxzZQorKyAgcmV0dXJuIGZhbHNlOworKyNlbmRpZgorIAorICNp ZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgLy8gSW4gQ1BVRmlsbEZyb21VQ29udGV4dCBpbiBtaW5p ZHVtcHdyaXRlci5jYyB0aGUgc3RhY2sgcG9pbnRlciBpcyByZXRyaWV2ZWQKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBh ZC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMtY2hyb21pdW0tbXVz bC1jcmFzaHBhZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjRkNDk5OTdlZDRmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaApAQCAtMCwwICsxLDIyIEBA CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvY29tcGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgK K0BAIC0xNyw3ICsxNyw5IEBACisgCisgI2luY2x1ZGVfbmV4dCA8c3lzL3B0cmFjZS5oPgorIAor KyNpZmRlZiBfX0dMSUJDX18KKyAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisrI2VuZGlmCisgCisg Ly8gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzMK KyAjaWYgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkgJiYgIWRlZmluZWQoUFRfR0VU X1RIUkVBRF9BUkVBKSAmJiBcCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9w dHJhY2VyLmNjCitAQCAtMjYsNiArMjYsNyBAQAorIAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4 Nl9GQU1JTFkpCisgI2luY2x1ZGUgPGFzbS9sZHQuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS1h YmkuaD4KKyAjZW5kaWYKKyAKKyBuYW1lc3BhY2UgY3Jhc2hwYWQgewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNo IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVz LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTViMjY3ZWQx NzE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIx NC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoCkBAIC0wLDAgKzEsMTA4IEBACistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5o CitAQCAtMTIsNiArMTIsMTUgQEAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN5 cy90eXBlcy5oPgorIAorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKFRFTVBf RkFJTFVSRV9SRVRSWSkKKysjIGRlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwcmVzc2lvbikg XAorKwkoX19leHRlbnNpb25fXwkJCVwKKysJICh7IGxvbmcgaW50IF9fcmVzdWx0OwkJXAorKwkg IGRvIF9fcmVzdWx0ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7IFwKKysJICB3aGlsZSAoX19y ZXN1bHQgPT0gLTFMICYmIGVycm5vID09IEVJTlRSKTsgXAorKwkgIF9fcmVzdWx0OyB9KSkKKysj ZW5kaWYKKysKKyAvLyBUaGlzIGFkanVzdHMgL3Byb2MvcHJvY2Vzcy9vb21fc2NvcmVfYWRqIHNv IHRoZSBMaW51eCBPT00ga2lsbGVyCisgLy8gd2lsbCBwcmVmZXIgY2VydGFpbiBwcm9jZXNzIHR5 cGVzIG92ZXIgb3RoZXJzLiBUaGUgcmFuZ2UgZm9yIHRoZQorIC8vIGFkanVzdG1lbnQgaXMgWy0x MDAwLCAxMDAwXSwgd2l0aCBbMCwgMTAwMF0gYmVpbmcgdXNlciBhY2Nlc3NpYmxlLgorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NlcnZpY2VzL2RldmljZS9zZXJpYWwvc2VyaWFsX2lvX2hh bmRsZXJfcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zZXJ2aWNlcy9kZXZp Y2Uvc2VyaWFsL3NlcmlhbF9pb19oYW5kbGVyX3Bvc2l4LmNjCitAQCAtNiw2ICs2LDcgQEAKKyAK KyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisgI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjaW5jbHVk ZSA8YXNtLWdlbmVyaWMvaW9jdGxzLmg+CisgCisgI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5j bHVkZSA8dXRpbGl0eT4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29u dGV4dF9yZWFkZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250 ZXh0X3JlYWRlci5oCitAQCAtMzgsNiArMzgsMTAgQEAKKyAjaW5jbHVkZSAiY29tbW9uL21lbW9y eV9hbGxvY2F0b3IuaCIKKyAjaW5jbHVkZSAiZ29vZ2xlX2JyZWFrcGFkL2NvbW1vbi9taW5pZHVt cF9mb3JtYXQuaCIKKyAKKysjaWZuZGVmIF9fR0xJQkNfXworKyNkZWZpbmUgX2xpYmNfZnBzdGF0 ZSBfZnBzdGF0ZQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgeworIAor IC8vIFdyYXBzIHBsYXRmb3JtLWRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMgb2YgYWNjZXNzb3Jz IHRvIHVjb250ZXh0X3Qgc3RydWN0cy4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9mZm1wZWcvbGliYXZ1dGlsL2NwdS5jCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvZmZtcGVnL2xpYmF2dXRpbC9jcHUuYworQEAgLTQxLDggKzQxLDEwIEBA CisgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorICNlbmRpZgorICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyAjZW5kaWYK KysjZW5kaWYKKyAjaWYgSEFWRV9VTklTVERfSAorICNpbmNsdWRlIDx1bmlzdGQuaD4KKyAjZW5k aWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZXJmZXR0by9pbmNs dWRlL3BlcmZldHRvL2V4dC9iYXNlL3RocmVhZF91dGlscy5oCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJmZXR0by9leHQvYmFzZS90 aHJlYWRfdXRpbHMuaAorQEAgLTI5LDkgKzI5LDcgQEAKKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgor ICNlbmRpZgorIAorLSNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkK KyAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CistI2VuZGlmCisgCisgLy8gSW50ZXJuYWwgaW1wbGVt ZW50YXRpb24gdXRpbHMgdGhhdCBhcmVuJ3QgYXMgd2lkZWx5IHVzZWZ1bC9zdXBwb3J0ZWQgYXMK KyAvLyBiYXNlL3RocmVhZF91dGlscy5oLgorQEAgLTU4LDcgKzU2LDcgQEAgaW5saW5lIGJvb2wg TWF5YmVTZXRUaHJlYWROYW1lKGNvbnN0IHN0ZAorIAorIGlubGluZSBib29sIEdldFRocmVhZE5h bWUoc3RkOjpzdHJpbmcmIG91dF9yZXN1bHQpIHsKKyAgIGNoYXIgYnVmWzE2XSA9IHt9OworLSNp ZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkKKysjaWYgIWRlZmluZWQo X19HTElCQ19fKQorICAgaWYgKHByY3RsKFBSX0dFVF9OQU1FLCBidWYpICE9IDApCisgICAgIHJl dHVybiBmYWxzZTsKKyAjZWxzZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAgLTEzMDAsNiAr MTMwMCwxOCBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgI2lmbmRlZiBfX05SX2ZhbGxvY2F0 ZQorICNkZWZpbmUgX19OUl9mYWxsb2NhdGUgICAgICAgICAgMjg1CisgI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fR0xJQkNfXykKKysjaWZkZWYgX19OUl9wcmVhZAorKyN1bmRlZiBfX05SX3By ZWFkCisrI2VuZGlmCisrI2lmZGVmIF9fTlJfcHdyaXRlCisrI3VuZGVmIF9fTlJfcHdyaXRlCisr I2VuZGlmCisrI2RlZmluZSBfX05SX3ByZWFkIF9fTlJfcHJlYWQ2NAorKyNkZWZpbmUgX19OUl9w d3JpdGUgX19OUl9wd3JpdGU2NAorKyNlbmRpZiAvKiAhZGVmaW5lZChfX0dMSUJDX18pICovCisr CisgI2lmbmRlZiBfX05SX2dldHJhbmRvbQorICNkZWZpbmUgX19OUl9nZXRyYW5kb20gICAgICAg ICAgMzE4CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNf Y29uZmlnX3NlcnZpY2VfcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQv ZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYworQEAgLTkzLDcgKzkzLDggQEAgYWJzbDo6 b3B0aW9uYWw8RG5zQ29uZmlnPiBSZWFkRG5zQ29uZmlnKAorIAorICAgYWJzbDo6b3B0aW9uYWw8 RG5zQ29uZmlnPiBkbnNfY29uZmlnOworIC8vIFRPRE8oZnVjaHNpYSk6IFVzZSByZXNfbmluaXQo KSB3aGVuIGl0J3MgaW1wbGVtZW50ZWQgb24gRnVjaHNpYS4KKy0jaWYgZGVmaW5lZChPU19PUEVO QlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2lmIGRlZmluZWQoT1NfT1BFTkJTRCkgfHwg ZGVmaW5lZChPU19GVUNIU0lBKSB8fCBcCisrICAoZGVmaW5lZChPU19MSU5VWCkgJiYgIWRlZmlu ZWQoX19HTElCQ19fKSkKKyAgIC8vIE5vdGU6IHJlc19uaW5pdCBpbiBnbGliYyBhbHdheXMgcmV0 dXJucyAwIGFuZCBzZXRzIFJFU19JTklULgorICAgLy8gcmVzX2luaXQgYmVoYXZlcyB0aGUgc2Ft ZSB3YXkuCisgICBtZW1zZXQoJl9yZXMsIDAsIHNpemVvZihfcmVzKSk7CmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2Rl ZnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZDFkYWVj MjkxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9z eW5jLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJzeW5jL3Ny Yy9pbmNsdWRlL3N5bmMvc3luYy5oCitAQCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRlZiBfX1NZ U19DT1JFX1NZTkNfSAorICNkZWZpbmUgX19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5jbHVkZSA8 c3lzL2NkZWZzLmg+CisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPgorIAorLV9fQkVHSU5fREVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4g IkMiIHsKKysjZW5kaWYKKyAKKyBzdHJ1Y3Qgc3luY19sZWdhY3lfbWVyZ2VfZGF0YSB7CisgIGlu dDMyX3QgZmQyOworQEAgLTE1OCw2ICsxNTksOSBAQCBzdHJ1Y3Qgc3luY19wdF9pbmZvICpzeW5j X3B0X2luZm8oc3RydWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBzeW5jX3B0X2luZm8gKml0cik7Cisgdm9pZCBzeW5jX2ZlbmNlX2luZm9fZnJlZShzdHJ1Y3Qg c3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8pOworIAorLV9fRU5EX0RFQ0xTCisrI2lmZGVmIF9f Y3BsdXNwbHVzCisrfQorKyNlbmRpZgorKworIAorICNlbmRpZiAvKiBfX1NZU19DT1JFX1NZTkNf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNi1jaHJv bWl1bS1tdXNsLXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE2 LWNocm9taXVtLW11c2wtc3RhdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjQ1MDlhNjk1N2NkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAyMTYtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoCkBAIC0wLDAgKzEs MTIgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL2ZpbGUuaAorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmlsZS5oCitAQCAtMTksNyArMTks OCBAQAorICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKKyAKKyAjaWYgZGVmaW5lZChP U19CU0QpIHx8IGRlZmluZWQoT1NfQVBQTEUpIHx8IGRlZmluZWQoT1NfTkFDTCkgfHwgXAorLSAg ICBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0FORFJPSUQpICYmIF9fQU5EUk9J RF9BUElfXyA8IDIxKQorKyAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0FO RFJPSUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIxKSB8fCBcCisrICAgIChkZWZpbmVkKE9TX0xJ TlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorIHN0cnVjdCBzdGF0OworIG5hbWVzcGFjZSBi YXNlIHsKKyB0eXBlZGVmIHN0cnVjdCBzdGF0IHN0YXRfd3JhcHBlcl90OwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVy LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNs LXJlc29sdmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YzNkN2FmYWQ5YjE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9s aW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX2NvbmZpZ19z ZXJ2aWNlX2xpbnV4LmNjCitAQCAtNDMyLDExICs0MzIsMTMgQEAgY2xhc3MgRG5zQ29uZmlnU2Vy dmljZUxpbnV4OjpDb25maWdSZWFkZQorICAgICBiYXNlOjpTY29wZWRCbG9ja2luZ0NhbGwgc2Nv cGVkX2Jsb2NraW5nX2NhbGwoCisgICAgICAgICBGUk9NX0hFUkUsIGJhc2U6OkJsb2NraW5nVHlw ZTo6TUFZX0JMT0NLKTsKKyAKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIHN0ZDo6dW5p cXVlX3B0cjxzdHJ1Y3QgX19yZXNfc3RhdGU+IHJlcyA9IHJlc29sdl9yZWFkZXJfLT5HZXRSZXNT dGF0ZSgpOworICAgICBpZiAocmVzKSB7CisgICAgICAgZG5zX2NvbmZpZ18gPSBDb252ZXJ0UmVz U3RhdGVUb0Ruc0NvbmZpZygqcmVzLmdldCgpKTsKKyAgICAgICByZXNvbHZfcmVhZGVyXy0+Q2xv c2VSZXNTdGF0ZShyZXMuZ2V0KCkpOworICAgICB9CisrI2VuZGlmCisgCisgICAgIFVNQV9ISVNU T0dSQU1fQk9PTEVBTigiTmV0LkROUy5EbnNDb25maWcuUmVzb2x2LlJlYWQiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgZG5zX2NvbmZpZ18uaGFzX3ZhbHVlKCkpOworQEAgLTQ4Niw2ICs0 ODgsNyBAQCBjbGFzcyBEbnNDb25maWdTZXJ2aWNlTGludXg6OkNvbmZpZ1JlYWRlCisgCisgc3Rk Ojp1bmlxdWVfcHRyPHN0cnVjdCBfX3Jlc19zdGF0ZT4KKyBEbnNDb25maWdTZXJ2aWNlTGludXg6 OlJlc29sdlJlYWRlcjo6R2V0UmVzU3RhdGUoKSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQor ICAgYXV0byByZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPHN0cnVjdCBfX3Jlc19zdGF0ZT4oKTsKKyAg IG1lbXNldChyZXMuZ2V0KCksIDAsIHNpemVvZihzdHJ1Y3QgX19yZXNfc3RhdGUpKTsKKyAKK0BA IC00OTUsMTEgKzQ5OCwxNiBAQCBEbnNDb25maWdTZXJ2aWNlTGludXg6OlJlc29sdlJlYWRlcjo6 R2V0CisgICB9CisgCisgICByZXR1cm4gcmVzOworKyNlbHNlCisrICByZXR1cm4gbnVsbHB0cjsK KysjZW5kaWYKKyB9CisgCisgdm9pZCBEbnNDb25maWdTZXJ2aWNlTGludXg6OlJlc29sdlJlYWRl cjo6Q2xvc2VSZXNTdGF0ZSgKKyAgICAgc3RydWN0IF9fcmVzX3N0YXRlKiByZXMpIHsKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pCisgICByZXNfbmNsb3NlKHJlcyk7CisrI2VuZGlmCisgfQorIAor IERuc0NvbmZpZ1NlcnZpY2VMaW51eDo6RG5zQ29uZmlnU2VydmljZUxpbnV4KCkKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCitAQCAtNCw4ICs0LDcgQEAK KyAKKyAjaW5jbHVkZSAibmV0L2Rucy9kbnNfcmVsb2FkZXIuaCIKKyAKKy0jaWYgZGVmaW5lZChP U19QT1NJWCkgJiYgIWRlZmluZWQoT1NfQVBQTEUpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYm IFwKKy0gICAgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRlZmluZWQoT1NfRlVDSFNJQSkKKysj aWZkZWYgX19HTElCQ19fCisgCisgI2luY2x1ZGUgPHJlc29sdi5oPgorIAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MKK0BA IC0yNzIwLDggKzI3MjAsNyBAQCBIb3N0UmVzb2x2ZXJNYW5hZ2VyOjpIb3N0UmVzb2x2ZXJNYW5h Z2VyCisgICBOZXR3b3JrQ2hhbmdlTm90aWZpZXI6OkFkZENvbm5lY3Rpb25UeXBlT2JzZXJ2ZXIo dGhpcyk7CisgICBpZiAoc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfKQorICAgICBzeXN0ZW1f ZG5zX2NvbmZpZ19ub3RpZmllcl8tPkFkZE9ic2VydmVyKHRoaXMpOworLSNpZiBkZWZpbmVkKE9T X1BPU0lYKSAmJiAhZGVmaW5lZChPU19BUFBMRSkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYg XAorLSAgICAhZGVmaW5lZChPU19BTkRST0lEKQorKyNpZmRlZiBfX0dMSUJDX18KKyAgIEVuc3Vy ZURuc1JlbG9hZGVySW5pdCgpOworICNlbmRpZgorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MKK0BAIC0xNzYsOCArMTc2LDcgQEAg aW50IFN5c3RlbUhvc3RSZXNvbHZlckNhbGwoY29uc3Qgc3RkOjpzdAorICAgYmFzZTo6U2NvcGVk QmxvY2tpbmdDYWxsIHNjb3BlZF9ibG9ja2luZ19jYWxsKEZST01fSEVSRSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpCbG9ja2luZ1R5cGU6 OldJTExfQkxPQ0spOworIAorLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19B UFBMRSkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorLSAgICAhZGVmaW5lZChPU19BTkRS T0lEKSAmJiAhZGVmaW5lZChPU19GVUNIU0lBKQorKyNpZmRlZiBfX0dMSUJDX18KKyAgIERuc1Jl bG9hZGVyTWF5YmVSZWxvYWQoKTsKKyAjZW5kaWYKKyAgIGFic2w6Om9wdGlvbmFsPEFkZHJlc3NJ bmZvPiBhaTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA2MDAt Y2hyb21pdW0tc25kaW8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNjAw LWNocm9taXVtLXNuZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uMDMwMjg3NGZmYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDYwMC1jaHJvbWl1bS1zbmRpby5wYXRjaApAQCAtMCwwICsxLDg3NiBAQAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL0JVSUxELmduCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vbWVkaWEvQlVJTEQuZ24KK0BAIC03Miw2ICs3Miw5IEBAIGNvbmZpZygi bWVkaWFfY29uZmlnIikgeworICAgICAgIGRlZmluZXMgKz0gWyAiRExPUEVOX1BVTFNFQVVESU8i IF0KKyAgICAgfQorICAgfQorKyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBkZWZpbmVzICs9IFsg IlVTRV9TTkRJTyIgXQorKyAgfQorICAgaWYgKHVzZV9jcmFzKSB7CisgICAgIGRlZmluZXMgKz0g WyAiVVNFX0NSQVMiIF0KKyAgIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9h dWRpby9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL0JV SUxELmduCitAQCAtMjQwLDYgKzI0MCwxNyBAQCBzb3VyY2Vfc2V0KCJhdWRpbyIpIHsKKyAgICAg c291cmNlcyArPSBbICJsaW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjIiBdCisgICB9CisgCisr ICBpZiAodXNlX3NuZGlvKSB7CisrICAgIGxpYnMgKz0gWyAic25kaW8iIF0KKysgICAgc291cmNl cyArPSBbCisrICAgICAgInNuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MiLAorKyAgICAgICJz bmRpby9zbmRpb19pbnB1dC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmgiLAorKyAg ICAgICJzbmRpby9zbmRpb19vdXRwdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQu aCIKKysgICAgXQorKyAgfQorKworICAgaWYgKHVzZV9hbHNhKSB7CisgICAgIGxpYnMgKz0gWyAi YXNvdW5kIiBdCisgICAgIHNvdXJjZXMgKz0gWworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCitA QCAtMjUsNiArMjUsMTEgQEAKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvYXVkaW9fbWFu YWdlcl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9wdWxzZV91dGlsLmgi CisgI2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQorKyNpbmNsdWRlICJtZWRpYS9hdWRp by9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3Nu ZGlvL3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291 dHB1dC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBtZWRpYSB7CisgCitAQCAtMzIsNyArMzcs OCBAQCBlbnVtIExpbnV4QXVkaW9JTyB7CisgICBrUHVsc2UsCisgICBrQWxzYSwKKyAgIGtDcmFz LAorLSAga0F1ZGlvSU9NYXggPSBrQ3JhcyAgLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFy Z2VzdCBsb2dnZWQgZW50cnkuCisrICBrU25kaW8sCisrICBrQXVkaW9JT01heCA9IGtTbmRpbyAv LyBNdXN0IGFsd2F5cyBiZSBlcXVhbCB0byBsYXJnZXN0IGxvZ2dlZCBlbnRyeS4KKyB9OworIAor IHN0ZDo6dW5pcXVlX3B0cjxtZWRpYTo6QXVkaW9NYW5hZ2VyPiBDcmVhdGVBdWRpb01hbmFnZXIo CitAQCAtNDUsNiArNTEsMTYgQEAgc3RkOjp1bmlxdWVfcHRyPG1lZGlhOjpBdWRpb01hbmFnZXI+ IENyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRp b19sb2dfZmFjdG9yeSk7CisgICB9CisgCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQorKyAgc3Ry dWN0IHNpb19oZGwgKmhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysg IGlmIChoZGwgIT0gTlVMTCkgeworKyAgICBzaW9fY2xvc2UoaGRsKTsKKysgICAgVU1BX0hJU1RP R1JBTV9FTlVNRVJBVElPTigiTWVkaWEuTGludXhBdWRpb0lPIiwga1NuZGlvLCBrQXVkaW9JT01h eCArIDEpOworKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxBdWRpb01hbmFnZXJTbmRpbz4o c3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9yeSk7CisrICB9CisrI2VuZGlmCisr CisgI2lmIGRlZmluZWQoVVNFX0NSQVMpCisgICBpZiAoYmFzZTo6Q29tbWFuZExpbmU6OkZvckN1 cnJlbnRQcm9jZXNzKCktPkhhc1N3aXRjaChzd2l0Y2hlczo6a1VzZUNyYXMpKSB7CisgICAgIFVN QV9ISVNUT0dSQU1fRU5VTUVSQVRJT04oIk1lZGlhLkxpbnV4QXVkaW9JTyIsIGtDcmFzLCBrQXVk aW9JT01heCArIDEpOworLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MKK0BAIC0wLDAgKzEsMTQ4 IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmln aHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5 IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5T RSBmaWxlLgorKworKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3Nu ZGlvLmgiCisrCisrI2luY2x1ZGUgImJhc2UvbWV0cmljcy9oaXN0b2dyYW1fbWFjcm9zLmgiCisr I2luY2x1ZGUgImJhc2UvbWVtb3J5L3B0cl91dGlsLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlv L2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRp b19vdXRwdXRfZGlzcGF0Y2hlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRp b19pbnB1dC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIK KysjaW5jbHVkZSAibWVkaWEvYmFzZS9saW1pdHMuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9t ZWRpYV9zd2l0Y2hlcy5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrCisrLy8gTWF4aW11 bSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgdGhhdCBjYW4gYmUgb3BlbiBzaW11bHRhbmVvdXNs eS4KKytzdGF0aWMgY29uc3QgaW50IGtNYXhPdXRwdXRTdHJlYW1zID0gNDsKKysKKysvLyBEZWZh dWx0IHNhbXBsZSByYXRlIGZvciBpbnB1dCBhbmQgb3V0cHV0IHN0cmVhbXMuCisrc3RhdGljIGNv bnN0IGludCBrRGVmYXVsdFNhbXBsZVJhdGUgPSA0ODAwMDsKKysKKyt2b2lkIEFkZERlZmF1bHRE ZXZpY2UoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisrICBEQ0hFQ0soZGV2aWNl X25hbWVzLT5lbXB0eSgpKTsKKysgIGRldmljZV9uYW1lcy0+cHVzaF9mcm9udChBdWRpb0Rldmlj ZU5hbWU6OkNyZWF0ZURlZmF1bHQoKSk7CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2VyU25kaW86 Okhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysKKytib29s IEF1ZGlvTWFuYWdlclNuZGlvOjpIYXNBdWRpb0lucHV0RGV2aWNlcygpIHsKKysgIHJldHVybiB0 cnVlOworK30KKysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRpb0lucHV0RGV2aWNl TmFtZXMoCisrICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgRENIRUNL KGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisrICBBZGREZWZhdWx0RGV2aWNlKGRldmljZV9uYW1l cyk7CisrfQorKworK3ZvaWQgQXVkaW9NYW5hZ2VyU25kaW86OkdldEF1ZGlvT3V0cHV0RGV2aWNl TmFtZXMoCisrICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgQWRkRGVm YXVsdERldmljZShkZXZpY2VfbmFtZXMpOworK30KKysKKytjb25zdCBjaGFyKiBBdWRpb01hbmFn ZXJTbmRpbzo6R2V0TmFtZSgpIHsKKysgIHJldHVybiAiU05ESU8iOworK30KKysKKytBdWRpb1Bh cmFtZXRlcnMgQXVkaW9NYW5hZ2VyU25kaW86OkdldElucHV0U3RyZWFtUGFyYW1ldGVycygKKysg ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkgeworKyAgc3RhdGljIGNvbnN0IGludCBr RGVmYXVsdElucHV0QnVmZmVyU2l6ZSA9IDEwMjQ7CisrCisrICBpbnQgdXNlcl9idWZmZXJfc2l6 ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisrICBpbnQgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZl cl9zaXplID8KKysgICAgICB1c2VyX2J1ZmZlcl9zaXplIDoga0RlZmF1bHRJbnB1dEJ1ZmZlclNp emU7CisrCisrICByZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlvUGFyYW1ldGVy czo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBDSEFOTkVMX0xBWU9VVF9TVEVSRU8sCisrICAgICAg a0RlZmF1bHRTYW1wbGVSYXRlLCBidWZmZXJfc2l6ZSk7CisrfQorKworK0F1ZGlvTWFuYWdlclNu ZGlvOjpBdWRpb01hbmFnZXJTbmRpbyhzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlv X3RocmVhZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlv TG9nRmFjdG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpCisrICAgIDogQXVkaW9NYW5hZ2VyQmFzZShz dGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwKKysgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xv Z19mYWN0b3J5KSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJBdWRpb01hbmFnZXJTbmRpbyI7Cisr ICBTZXRNYXhPdXRwdXRTdHJlYW1zQWxsb3dlZChrTWF4T3V0cHV0U3RyZWFtcyk7CisrfQorKwor K0F1ZGlvTWFuYWdlclNuZGlvOjp+QXVkaW9NYW5hZ2VyU25kaW8oKSB7CisrICBTaHV0ZG93bigp OworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMaW5l YXJPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAg ICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9Q YXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJu IE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1 ZGlvTWFuYWdlclNuZGlvOjpNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgY29uc3Qg QXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2Vf aWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERMT0dfSUYo RVJST1IsICFkZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworKyAgRENI RUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9y bWF0KCkpOworKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVk aW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJJbnB1dFN0cmVhbSgK KysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3Ry aW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsK KysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIsIHBhcmFtcy5m b3JtYXQoKSk7CisrICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1 ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTG93TGF0ZW5jeUlucHV0U3Ry ZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3Rk OjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFj aykgeworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZ LCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOwor K30KKysKKytBdWRpb1BhcmFtZXRlcnMgQXVkaW9NYW5hZ2VyU25kaW86OkdldFByZWZlcnJlZE91 dHB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2 aWNlX2lkLAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgeworKyAg Ly8gVE9ETyh0b21taSk6IFN1cHBvcnQgfG91dHB1dF9kZXZpY2VfaWR8LgorKyAgRExPR19JRihF UlJPUiwgIW91dHB1dF9kZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOwor KyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemUgPSAyMDQ4OworKwor KyAgQ2hhbm5lbExheW91dCBjaGFubmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX1NURVJFTzsK KysgIGludCBzYW1wbGVfcmF0ZSA9IGtEZWZhdWx0U2FtcGxlUmF0ZTsKKysgIGludCBidWZmZXJf c2l6ZSA9IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZTsKKysgIGlmIChpbnB1dF9wYXJhbXMuSXNW YWxpZCgpKSB7CisrICAgIHNhbXBsZV9yYXRlID0gaW5wdXRfcGFyYW1zLnNhbXBsZV9yYXRlKCk7 CisrICAgIGNoYW5uZWxfbGF5b3V0ID0gaW5wdXRfcGFyYW1zLmNoYW5uZWxfbGF5b3V0KCk7Cisr ICAgIGJ1ZmZlcl9zaXplID0gc3RkOjptaW4oYnVmZmVyX3NpemUsIGlucHV0X3BhcmFtcy5mcmFt ZXNfcGVyX2J1ZmZlcigpKTsKKysgIH0KKysKKysgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0 VXNlckJ1ZmZlclNpemUoKTsKKysgIGlmICh1c2VyX2J1ZmZlcl9zaXplKQorKyAgICBidWZmZXJf c2l6ZSA9IHVzZXJfYnVmZmVyX3NpemU7CisrCisrICByZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAor KyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBjaGFubmVsX2xh eW91dCwKKysgICAgICBzYW1wbGVfcmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytBdWRpb0lu cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUlucHV0U3RyZWFtKAorKyAgICBjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZUlu cHV0U3RyZWFtIjsKKysgIHJldHVybiBuZXcgU25kaW9BdWRpb0lucHV0U3RyZWFtKHRoaXMsCisr ICAgICAgICAgICAgIEF1ZGlvRGV2aWNlRGVzY3JpcHRpb246OmtEZWZhdWx0RGV2aWNlSWQsIHBh cmFtcyk7CisrfQorKworK0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFr ZU91dHB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysg IERMT0coV0FSTklORykgPDwgIk1ha2VPdXRwdXRTdHJlYW0iOworKyAgcmV0dXJuIG5ldyBTbmRp b0F1ZGlvT3V0cHV0U3RyZWFtKHBhcmFtcywgdGhpcyk7CisrfQorKworK30gIC8vIG5hbWVzcGFj ZSBtZWRpYQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlh L2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaAorQEAgLTAsMCArMSw2NSBAQAorKy8v IENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl cnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K KysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFHRVJfU05ESU9fSF8KKysj ZGVmaW5lIE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFHRVJfU05ESU9fSF8KKysKKysjaW5j bHVkZSA8c2V0PgorKworKyNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCisrI2lu Y2x1ZGUgImJhc2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2UvbWVtb3J5L3JlZl9jb3VudGVk LmgiCisrI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVhZC5oIgorKyNpbmNsdWRlICJtZWRp YS9hdWRpby9hdWRpb19tYW5hZ2VyX2Jhc2UuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKwor K2NsYXNzIE1FRElBX0VYUE9SVCBBdWRpb01hbmFnZXJTbmRpbyA6IHB1YmxpYyBBdWRpb01hbmFn ZXJCYXNlIHsKKysgcHVibGljOgorKyAgQXVkaW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVfcHRy PEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAgICAgICAgICAgICAgIEF1ZGlvTG9n RmFjdG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfkF1ZGlvTWFuYWdlclNuZGlvKCkgb3Zl cnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXIuCisrICBib29s IEhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIG92ZXJyaWRlOworKyAgYm9vbCBIYXNBdWRpb0lucHV0 RGV2aWNlcygpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoQXVk aW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsKKysgIHZvaWQgR2V0QXVkaW9P dXRwdXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJyaWRl OworKyAgQXVkaW9QYXJhbWV0ZXJzIEdldElucHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgICBj b25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkKSBvdmVycmlkZTsKKysgIGNvbnN0IGNoYXIqIEdl dE5hbWUoKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvTWFuYWdl ckJhc2UuCisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxpbmVhck91dHB1dFN0cmVhbSgKKysg ICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBMb2dDYWxs YmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtl TG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0 IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAgQXVkaW9JbnB1dFN0cmVh bSogTWFrZUxpbmVhcklucHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYg cGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgICAgY29u c3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrICBBdWRpb0lucHV0U3Ry ZWFtKiBNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1l dGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAg ICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrCisrIHByb3Rl Y3RlZDoKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0 ZXJzKAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkLAorKyAgICAg IGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSBvdmVycmlkZTsKKysKKysgcHJp dmF0ZToKKysgIC8vIENhbGxlZCBieSBNYWtlTGluZWFyT3V0cHV0U3RyZWFtIGFuZCBNYWtlTG93 TGF0ZW5jeU91dHB1dFN0cmVhbS4KKysgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtlT3V0cHV0U3Ry ZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0q IE1ha2VJbnB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisrCisrICBE SVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9NYW5hZ2VyU25kaW8pOworK307CisrCisrfSAg Ly8gbmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19BVURJ T19NQU5BR0VSX1NORElPX0hfCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuY2MKK0BAIC0wLDAgKzEsMjAwIEBA CisrLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu CisrCisrI2luY2x1ZGUgImJhc2UvYmluZC5oIgorKyNpbmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIK KysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190 aW1lc3RhbXBfaGVscGVyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21h bmFnZXJfc25kaW8uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlci5oIgor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKworK25hbWVzcGFj ZSBtZWRpYSB7CisrCisrc3RhdGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0g a1NhbXBsZUZvcm1hdFMxNjsKKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T25Nb3Zl Q2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpCisreworKyAgU25kaW9BdWRpb0lucHV0U3Ry ZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysK KysgIHNlbGYtPmh3X2RlbGF5ICs9IGRlbHRhOworK30KKysKKyt2b2lkICpTbmRpb0F1ZGlvSW5w dXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb0lucHV0U3Ry ZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysK KysgIHNlbGYtPlRocmVhZExvb3AoKTsKKysgIHJldHVybiBOVUxMOworK30KKysKKytTbmRpb0F1 ZGlvSW5wdXRTdHJlYW06OlNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBt YW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykKKysgICAg OiBtYW5hZ2VyKG1hbmFnZXIpLAorKyAgICAgIHBhcmFtcyhwYXJhbXMpLAorKyAgICAgIGF1ZGlv X2J1cyhBdWRpb0J1czo6Q3JlYXRlKHBhcmFtcykpLAorKyAgICAgIHN0YXRlKGtDbG9zZWQpIHsK Kyt9CisrCisrU25kaW9BdWRpb0lucHV0U3RyZWFtOjp+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkg eworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKworK2Jvb2wg U25kaW9BdWRpb0lucHV0U3RyZWFtOjpPcGVuKCkgeworKyAgc3RydWN0IHNpb19wYXIgcGFyOwor KyAgaW50IHNpZzsKKysKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICByZXR1cm4gZmFs c2U7CisrCisrICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9f UENNX0xJTkVBUiAmJgorKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6 OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworKyAgICBMT0coV0FSTklORykgPDwgIlVuc3VwcG9y dGVkIGF1ZGlvIGZvcm1hdC4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBzaW9f aW5pdHBhcigmcGFyKTsKKysgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICBw YXIucmNoYW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0gU2FtcGxlRm9ybWF0 VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMgPSBwYXIuYml0cyAv IDg7CisrICBwYXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOworKyAgcGFyLmxl ID0gU0lPX0xFX05BVElWRTsKKysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1 ZmZlcigpOworKworKyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1JFQywgMCk7Cisr CisrICBpZiAoaGRsID09IE5VTEwpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3Bl biBhdWRpbyBkZXZpY2UuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgaWYgKCFz aW9fc2V0cGFyKGhkbCwgJnBhcikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworKyAgICBM T0coRVJST1IpIDw8ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3Rv IGJhZF9jbG9zZTsKKysgIH0KKysKKysgIGlmIChwYXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClw YXJhbXMuc2FtcGxlX3JhdGUoKSB8fAorKyAgICAgIHBhci5yY2hhbiAhPSAodW5zaWduZWQgaW50 KXBhcmFtcy5jaGFubmVscygpIHx8CisrICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQp U2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorKyAgICAgIHBh ci5zaWcgICAhPSAodW5zaWduZWQgaW50KXNpZyB8fAorKyAgICAgIChwYXIuYnBzID4gMSAmJiBw YXIubGUgIT0gU0lPX0xFX05BVElWRSkgfHwKKysgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAq IDgpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMu IjsKKysgICAgZ290byBiYWRfY2xvc2U7CisrICB9CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKyAg YnVmZmVyID0gbmV3IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5HZXRCeXRlc1Bl ckZyYW1lKGtTYW1wbGVGb3JtYXQpXTsKKysgIHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2FsbGJh Y2ssIHRoaXMpOworKyAgcmV0dXJuIHRydWU7CisrYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhk bCk7CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFt OjpTdGFydChBdWRpb0lucHV0Q2FsbGJhY2sqIGNiKSB7CisrCisrICBTdGFydEFnYygpOworKwor KyAgc3RhdGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIGNhbGxiYWNrID0gY2I7 CisrICBzaW9fc3RhcnQoaGRsKTsKKysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxM LCAmVGhyZWFkRW50cnksIHRoaXMpICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVk IHRvIGNyZWF0ZSByZWFsLXRpbWUgdGhyZWFkIGZvciByZWNvcmRpbmcuIjsKKysgICAgc2lvX3N0 b3AoaGRsKTsKKysgICAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIH0KKyt9CisrCisrdm9pZCBTbmRp b0F1ZGlvSW5wdXRTdHJlYW06OlN0b3AoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQp CisrICAgIHJldHVybjsKKysKKysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2lu KHRocmVhZCwgTlVMTCk7CisrICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsK KysKKysgIFN0b3BBZ2MoKTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkNs b3NlKCkgeworKworKyAgaWYgKHN0YXRlID09IGtDbG9zZWQpCisrICAgIHJldHVybjsKKysKKysg IGlmIChzdGF0ZSA9PSBrUnVubmluZykKKysgICAgU3RvcCgpOworKworKyAgc3RhdGUgPSBrQ2xv c2VkOworKyAgZGVsZXRlIFtdIGJ1ZmZlcjsKKysgIHNpb19jbG9zZShoZGwpOworKworKyAgbWFu YWdlci0+UmVsZWFzZUlucHV0U3RyZWFtKHRoaXMpOworK30KKysKKytkb3VibGUgU25kaW9BdWRp b0lucHV0U3RyZWFtOjpHZXRNYXhWb2x1bWUoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkCisrICBy ZXR1cm4gMC4wOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0Vm9sdW1l KGRvdWJsZSB2b2x1bWUpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuIERvIG5vdGhpbmcuCisrfQor KworK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldFZvbHVtZSgpIHsKKysgIC8vIE5v dCBzdXBwb3J0ZWQuCisrICByZXR1cm4gMC4wOworK30KKysKKytib29sIFNuZGlvQXVkaW9JbnB1 dFN0cmVhbTo6SXNNdXRlZCgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrICByZXR1cm4gZmFs c2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRPdXRwdXREZXZpY2VG b3JBZWMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkKSB7CisrICAv LyBOb3Qgc3VwcG9ydGVkLgorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhy ZWFkTG9vcCh2b2lkKSB7CisrICBzaXplX3QgdG9kbywgbjsKKysgIGNoYXIgKmRhdGE7CisrICB1 bnNpZ25lZCBpbnQgbmZyYW1lczsKKysgIGRvdWJsZSBub3JtYWxpemVkX3ZvbHVtZSA9IDAuMDsK KysKKysgIG5mcmFtZXMgPSBhdWRpb19idXMtPmZyYW1lcygpOworKworKyAgd2hpbGUgKHN0YXRl ID09IGtSdW5uaW5nICYmICFzaW9fZW9mKGhkbCkpIHsKKysKKysgICAgR2V0QWdjVm9sdW1lKCZu b3JtYWxpemVkX3ZvbHVtZSk7CisrCisrICAgIC8vIHJlYWQgb25lIGJsb2NrCisrICAgIHRvZG8g PSBuZnJhbWVzICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAg IGRhdGEgPSBidWZmZXI7CisrICAgIHdoaWxlICh0b2RvID4gMCkgeworKyAgICAgIG4gPSBzaW9f cmVhZChoZGwsIGRhdGEsIHRvZG8pOworKyAgICAgIGlmIChuID09IDApCisrICAgICAgICByZXR1 cm47CS8vIHVucmVjb3ZlcmFibGUgSS9PIGVycm9yCisrICAgICAgdG9kbyAtPSBuOworKyAgICAg IGRhdGEgKz0gbjsKKysgICAgfQorKyAgICBod19kZWxheSAtPSBuZnJhbWVzOworKworKyAgICAv LyBjb252ZXJ0IGZyYW1lcyBjb3VudCB0byBUaW1lRGVsdGEKKysgICAgY29uc3QgYmFzZTo6VGlt ZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3RhbXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxh eSwKKysgICAgICBwYXJhbXMuc2FtcGxlX3JhdGUoKSk7CisrCisrICAgIC8vIHB1c2ggaW50byBi dXMKKysgICAgYXVkaW9fYnVzLT5Gcm9tSW50ZXJsZWF2ZWQ8U2lnbmVkSW50MTZTYW1wbGVUeXBl VHJhaXRzPihyZWludGVycHJldF9jYXN0PGludDE2X3QqPihidWZmZXIpLCBuZnJhbWVzKTsKKysK KysgICAgLy8gaW52b2tlIGNhbGxiYWNrCisrICAgIGNhbGxiYWNrLT5PbkRhdGEoYXVkaW9fYnVz LmdldCgpLCBiYXNlOjpUaW1lVGlja3M6Ok5vdygpIC0gZGVsYXksIDEuKTsKKysgIH0KKyt9Cisr CisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaAorQEAgLTAsMCArMSw5 MSBAQAorKy8vIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysjZGVm aW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCisrCisrI2luY2x1ZGUgPHN0ZGlu dC5oPgorKyNpbmNsdWRlIDxzdHJpbmc+CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1 ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIK KysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvd2Vha19wdHIuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1l L3RpbWUuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYWdjX2F1ZGlvX3N0cmVhbS5oIgorKyNp bmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9h dWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb19w YXJhbWV0ZXJzLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBBdWRpb01hbmFn ZXJCYXNlOworKworKy8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5n IHNuZGlvKDcpCisrY2xhc3MgU25kaW9BdWRpb0lucHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlv U3RyZWFtPEF1ZGlvSW5wdXRTdHJlYW0+IHsKKysgcHVibGljOgorKyAgLy8gUGFzcyB0aGlzIHRv IHRoZSBjb25zdHJ1Y3RvciBpZiB5b3Ugd2FudCB0byBhdHRlbXB0IGF1dG8tc2VsZWN0aW9uCisr ICAvLyBvZiB0aGUgYXVkaW8gcmVjb3JkaW5nIGRldmljZS4KKysgIHN0YXRpYyBjb25zdCBjaGFy IGtBdXRvU2VsZWN0RGV2aWNlW107CisrCisrICAvLyBDcmVhdGUgYSBQQ00gT3V0cHV0IHN0cmVh bSBmb3IgdGhlIFNORElPIGRldmljZSBpZGVudGlmaWVkIGJ5CisrICAvLyB8ZGV2aWNlX25hbWV8 LiBJZiB1bnN1cmUgb2Ygd2hhdCB0byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQorKyAgLy8g fGtBdXRvU2VsZWN0RGV2aWNlfC4KKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFn ZXJCYXNlKiBhdWRpb19tYW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nJiBkZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1Bh cmFtZXRlcnMmIHBhcmFtcyk7CisrCisrICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJp ZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb0lucHV0U3RyZWFtLgorKyAgYm9v bCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2b2lkIFN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2Fs bGJhY2spIG92ZXJyaWRlOworKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3Nl KCkgb3ZlcnJpZGU7CisrICBkb3VibGUgR2V0TWF4Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICB2b2lk IFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRWb2x1bWUo KSBvdmVycmlkZTsKKysgIGJvb2wgSXNNdXRlZCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRPdXRw dXREZXZpY2VGb3JBZWMoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIG92ZXJy aWRlOworKworKyBwcml2YXRlOgorKworKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtDbG9z ZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAgICAg ICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5nLCAg ICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAgICAg ICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhp dAorKyAgfTsKKysKKysgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQgT25N b3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgc3RhdGljIHZvaWQqIFRocmVh ZEVudHJ5KHZvaWQgKmFyZyk7CisrCisrICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9t IHRoZSBkZXZpY2UgdG8gdGhlIGNvbnN1bWVyCisrICB2b2lkIFRocmVhZExvb3AoKTsKKysgIC8v IE91ciBjcmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVu IHdlIGNsb3NlLgorKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRl cnMgb2YgdGhlIHNvdXJjZQorKyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFdlIHN0 b3JlIGRhdGEgaGVyZSBmb3IgY29uc3VtZXIKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4g YXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgY29uc3VtZXMgcmVjb3JkZWQgZGF0YQor KyAgQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29y ZGluZyBzZXNzaW9uLgorKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVj dCBzaW9faGRsKiBoZGw7CisrICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVu dW0gU3RyZWFtU3RhdGUgc3RhdGU7CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5n IFRocmVhZExvb3AoKQorKyAgcHRocmVhZF90IHRocmVhZDsKKysgIC8vIE51bWJlciBvZiBmcmFt ZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1w b3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0 CisrICBjaGFyKiBidWZmZXI7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9B dWRpb0lucHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNl bmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKy0tLSAvZGV2L251bGwK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRw dXQuY2MKK0BAIC0wLDAgKzEsMTgzIEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJv bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJj ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpbmNsdWRlICJiYXNlL2xvZ2dpbmcu aCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL2Rl ZmF1bHRfdGlja19jbG9jay5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2Vy X2Jhc2UuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVscGVyLmgi CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKworK25hbWVz cGFjZSBtZWRpYSB7CisrCisrc3RhdGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0 ID0ga1NhbXBsZUZvcm1hdFMxNjsKKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9u TW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7 CisrCisrICBzZWxmLT5od19kZWxheSAtPSBkZWx0YTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpPblZvbENhbGxiYWNrKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCkg eworKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVk aW9PdXRwdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+dm9sID0gdm9sOworK30KKysKKyt2 b2lkICpTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRFbnRyeSh2b2lkICphcmcpIHsKKysg IFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPlRocmVhZExvb3AoKTsKKysgIHJldHVybiBO VUxMOworK30KKysKKytTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcikKKysg ICAgOiBtYW5hZ2VyKG1hbmFnZXIpLAorKyAgICAgIHBhcmFtcyhwYXJhbXMpLAorKyAgICAgIGF1 ZGlvX2J1cyhBdWRpb0J1czo6Q3JlYXRlKHBhcmFtcykpLAorKyAgICAgIHN0YXRlKGtDbG9zZWQp LAorKyAgICAgIG11dGV4KFBUSFJFQURfTVVURVhfSU5JVElBTElaRVIpIHsKKyt9CisrCisrU25k aW9BdWRpb091dHB1dFN0cmVhbTo6flNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oKSB7CisrICBpZiAo c3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgQ2xvc2UoKTsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpPcGVuKCkgeworKyAgc3RydWN0IHNpb19wYXIgcGFyOworKyAgaW50IHNp ZzsKKysKKysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19Q Q01fTElORUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6 QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisrICAgIExPRyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0 ZWQgYXVkaW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIHNpb19pbml0 cGFyKCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3JhdGUoKTsKKysgIHBhci5w Y2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworKyAgcGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0Jp dHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOworKyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsK KysgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7CisrICBwYXIubGUgPSBT SU9fTEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVy KCk7CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUExBWSwgMCk7CisrICBp ZiAoaGRsID09IE5VTEwpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRp byBkZXZpY2UuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgaWYgKCFzaW9fc2V0cGFy KGhkbCwgJnBhcikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworKyAgICBMT0coRVJST1Ip IDw8ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9z ZTsKKysgIH0KKysgIGlmIChwYXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxl X3JhdGUoKSB8fAorKyAgICAgIHBhci5wY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFu bmVscygpIHx8CisrICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0 VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorKyAgICAgIHBhci5zaWcgICAhPSAo dW5zaWduZWQgaW50KXNpZyB8fAorKyAgICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lP X0xFX05BVElWRSkgfHwKKysgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisrICAg IExPRyhFUlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290 byBiYWRfY2xvc2U7CisrICB9CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgdm9scGVuZGluZyA9 IDA7CisrICB2b2wgPSAwOworKyAgYnVmZmVyID0gbmV3IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMo KSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpXTsKKysgIHNpb19vbm1v dmUoaGRsLCAmT25Nb3ZlQ2FsbGJhY2ssIHRoaXMpOworKyAgc2lvX29udm9sKGhkbCwgJk9uVm9s Q2FsbGJhY2ssIHRoaXMpOworKyAgcmV0dXJuIHRydWU7CisrIGJhZF9jbG9zZToKKysgIHNpb19j bG9zZShoZGwpOworKyAgcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRw dXRTdHJlYW06OkNsb3NlKCkgeworKyAgaWYgKHN0YXRlID09IGtDbG9zZWQpCisrICAgIHJldHVy bjsKKysgIGlmIChzdGF0ZSA9PSBrUnVubmluZykKKysgICAgU3RvcCgpOworKyAgc3RhdGUgPSBr Q2xvc2VkOworKyAgZGVsZXRlIFtdIGJ1ZmZlcjsKKysgIHNpb19jbG9zZShoZGwpOworKyAgbWFu YWdlci0+UmVsZWFzZU91dHB1dFN0cmVhbSh0aGlzKTsgIC8vIENhbGxzIHRoZSBkZXN0cnVjdG9y CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U3RhcnQoQXVkaW9Tb3VyY2VD YWxsYmFjayogY2FsbGJhY2spIHsKKysgIHN0YXRlID0ga1J1bm5pbmc7CisrICBod19kZWxheSA9 IDA7CisrICBzb3VyY2UgPSBjYWxsYmFjazsKKysgIHNpb19zdGFydChoZGwpOworKyAgaWYgKHB0 aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgewor KyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQuIjsK KysgICAgc2lvX3N0b3AoaGRsKTsKKysgICAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIH0KKyt9Cisr Cisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTdG9wKCkgeworKyAgaWYgKHN0YXRlID09 IGtTdG9wcGVkKQorKyAgICByZXR1cm47CisrICBzdGF0ZSA9IGtTdG9wV2FpdDsKKysgIHB0aHJl YWRfam9pbih0aHJlYWQsIE5VTEwpOworKyAgc2lvX3N0b3AoaGRsKTsKKysgIHN0YXRlID0ga1N0 b3BwZWQ7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRv dWJsZSB2KSB7CisrICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysgIHZvbCA9IHYgKiBT SU9fTUFYVk9MOworKyAgdm9scGVuZGluZyA9IDE7CisrICBwdGhyZWFkX211dGV4X3VubG9jaygm bXV0ZXgpOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OkdldFZvbHVtZShk b3VibGUqIHYpIHsKKysgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgKnYgPSB2b2wg KiAoMS4gLyBTSU9fTUFYVk9MKTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7Cisr fQorKworKy8vIFRoaXMgc3RyZWFtIGlzIGFsd2F5cyB1c2VkIHdpdGggc3ViIHNlY29uZCBidWZm ZXIgc2l6ZXMsIHdoZXJlIGl0J3MKKysvLyBzdWZmaWNpZW50IHRvIHNpbXBseSBhbHdheXMgZmx1 c2ggdXBvbiBTdGFydCgpLgorK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Rmx1c2goKSB7 fQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6VGhyZWFkTG9vcCh2b2lkKSB7Cisr ICBpbnQgYXZhaWwsIGNvdW50LCByZXN1bHQ7CisrCisrICB3aGlsZSAoc3RhdGUgPT0ga1J1bm5p bmcpIHsKKysgICAgLy8gVXBkYXRlIHZvbHVtZSBpZiBuZWVkZWQKKysgICAgcHRocmVhZF9tdXRl eF9sb2NrKCZtdXRleCk7CisrICAgIGlmICh2b2xwZW5kaW5nKSB7CisrICAgICAgdm9scGVuZGlu ZyA9IDA7CisrICAgICAgc2lvX3NldHZvbChoZGwsIHZvbCk7CisrICAgIH0KKysgICAgcHRocmVh ZF9tdXRleF91bmxvY2soJm11dGV4KTsKKysKKysgICAgLy8gR2V0IGRhdGEgdG8gcGxheQorKyAg ICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJh bWVzVG9UaW1lKGh3X2RlbGF5LAorKwlwYXJhbXMuc2FtcGxlX3JhdGUoKSk7CisrICAgIGNvdW50 ID0gc291cmNlLT5Pbk1vcmVEYXRhKGRlbGF5LCBiYXNlOjpUaW1lVGlja3M6Ok5vdygpLCAwLCBh dWRpb19idXMuZ2V0KCkpOworKyAgICBhdWRpb19idXMtPlRvSW50ZXJsZWF2ZWQ8U2lnbmVkSW50 MTZTYW1wbGVUeXBlVHJhaXRzPihjb3VudCwgcmVpbnRlcnByZXRfY2FzdDxpbnQxNl90Kj4oYnVm ZmVyKSk7CisrICAgIGlmIChjb3VudCA9PSAwKSB7CisrICAgICAgLy8gV2UgaGF2ZSB0byBzdWJt aXQgc29tZXRoaW5nIHRvIHRoZSBkZXZpY2UKKysgICAgICBjb3VudCA9IGF1ZGlvX2J1cy0+ZnJh bWVzKCk7CisrICAgICAgbWVtc2V0KGJ1ZmZlciwgMCwgY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQ ZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7CisrICAgICAgTE9HKFdBUk5JTkcpIDw8ICJObyBkYXRh IHRvIHBsYXksIHJ1bm5pbmcgZW1wdHkgY3ljbGUuIjsKKysgICAgfQorKworKyAgICAvLyBTdWJt aXQgZGF0YSB0byB0aGUgZGV2aWNlCisrICAgIGF2YWlsID0gY291bnQgKiBwYXJhbXMuR2V0Qnl0 ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKysgICAgcmVzdWx0ID0gc2lvX3dyaXRlKGhkbCwg YnVmZmVyLCBhdmFpbCk7CisrICAgIGlmIChyZXN1bHQgPT0gMCkgeworKyAgICAgIExPRyhXQVJO SU5HKSA8PCAiQXVkaW8gZGV2aWNlIGRpc2Nvbm5lY3RlZC4iOworKyAgICAgIGJyZWFrOworKyAg ICB9CisrCisrICAgIC8vIFVwZGF0ZSBoYXJkd2FyZSBwb2ludGVyCisrICAgIGh3X2RlbGF5ICs9 IGNvdW50OworKyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2L251 bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19v dXRwdXQuaAorQEAgLTAsMCArMSw4NiBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hy b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisr Ly8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NO RElPX1NORElPX09VVFBVVF9IXworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VU UFVUX0hfCisrCisrI2luY2x1ZGUgPHB0aHJlYWQuaD4KKysjaW5jbHVkZSA8c25kaW8uaD4KKysK KysjaW5jbHVkZSAiYmFzZS90aW1lL3RpY2tfY2xvY2suaCIKKysjaW5jbHVkZSAiYmFzZS90aW1l L3RpbWUuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKKysKKytuYW1lc3Bh Y2UgbWVkaWEgeworKworK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisrCisrLy8gSW1wbGVtZW50 YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKKytjbGFzcyBTbmRpb0F1 ZGlvT3V0cHV0U3RyZWFtIDogcHVibGljIEF1ZGlvT3V0cHV0U3RyZWFtIHsKKysgcHVibGljOgor KyAgLy8gVGhlIG1hbmFnZXIgaXMgY3JlYXRpbmcgdGhpcyBvYmplY3QKKysgIFNuZGlvQXVkaW9P dXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIpOworKyAgdmlydHVhbCB+U25k aW9BdWRpb091dHB1dFN0cmVhbSgpOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9P dXRwdXRTdHJlYW0uCisrICBib29sIE9wZW4oKSBvdmVycmlkZTsKKysgIHZvaWQgQ2xvc2UoKSBv dmVycmlkZTsKKysgIHZvaWQgU3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2FsbGJhY2spIG92 ZXJyaWRlOworKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFZvbHVtZShkb3Vi bGUgdm9sdW1lKSBvdmVycmlkZTsKKysgIHZvaWQgR2V0Vm9sdW1lKGRvdWJsZSogdm9sdW1lKSBv dmVycmlkZTsKKysgIHZvaWQgRmx1c2goKSBvdmVycmlkZTsKKysKKysgIGZyaWVuZCB2b2lkIHNu ZGlvX29ubW92ZSh2b2lkICphcmcsIGludCBkZWx0YSk7CisrICBmcmllbmQgdm9pZCBzbmRpb19v bnZvbCh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOworKyAgZnJpZW5kIHZvaWQgKnNuZGlv X3RocmVhZHN0YXJ0KHZvaWQgKmFyZyk7CisrCisrIHByaXZhdGU6CisrICBlbnVtIFN0cmVhbVN0 YXRlIHsKKysgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAorKyAgICBr U3RvcHBlZCwgICAgICAgICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQK KysgICAga1J1bm5pbmcsICAgICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZworKyAg ICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUgcmVhbC10 aW1lIHRocmVhZCB0byBleGl0CisrICB9OworKworKyAgLy8gQy1zdHlsZSBjYWxsLWJhY2tzCisr ICBzdGF0aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSk7CisrICBz dGF0aWMgdm9pZCBPblZvbENhbGxiYWNrKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7Cisr ICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJnKTsKKysKKysgIC8vIENvbnRpbnVv dXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIHByb2R1Y2VyIHRvIHRoZSBkZXZpY2UKKysgIHZvaWQg VGhyZWFkTG9vcCh2b2lkKTsKKysKKysgIC8vIE91ciBjcmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdl ciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgorKyAgQXVkaW9NYW5hZ2VyQmFz ZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorKyAgQXVkaW9QYXJh bWV0ZXJzIHBhcmFtczsKKysgIC8vIFNvdXJjZSBzdG9yZXMgZGF0YSBoZXJlCisrICBzdGQ6OnVu aXF1ZV9wdHI8QXVkaW9CdXM+IGF1ZGlvX2J1czsKKysgIC8vIENhbGwtYmFjayB0aGF0IHByb2R1 Y2VzIGRhdGEgdG8gcGxheQorKyAgQXVkaW9Tb3VyY2VDYWxsYmFjayogc291cmNlOworKyAgLy8g SGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVjdCBzaW9faGRsKiBoZGw7CisrICAv LyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVudW0gU3RyZWFtU3RhdGUgc3RhdGU7 CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3AoKQorKyAgcHRo cmVhZF90IHRocmVhZDsKKysgIC8vIFByb3RlY3RzIHZvbCwgdm9scGVuZGluZyBhbmQgaHdfZGVs YXkKKysgIHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsKKysgIC8vIEN1cnJlbnQgdm9sdW1lIGluIHRo ZSAwLi5TSU9fTUFYVk9MIHJhbmdlCisrICBpbnQgdm9sOworKyAgLy8gU2V0IHRvIDEgaWYgdm9s dW1lcyBtdXN0IGJlIHJlZnJlc2hlZCBpbiB0aGUgcmVhbHRpbWUgdGhyZWFkCisrICBpbnQgdm9s cGVuZGluZzsKKysgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJl CisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMg c3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisrICBjaGFyKiBidWZmZXI7CisrCisrICBE SVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb091dHB1dFN0cmVhbSk7CisrfTsKKysK Kyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElP X1NORElPX09VVFBVVF9IXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL21lZGlh X29wdGlvbnMuZ25pCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvbWVkaWFfb3B0 aW9ucy5nbmkKK0BAIC0xMjEsNiArMTIxLDkgQEAgZGVjbGFyZV9hcmdzKCkgeworICAgIyBFbmFi bGVzIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIEFMU0EgbGlicmFyeSBmb3IgYXVkaW8uCisgICB1c2Vf YWxzYSA9IGZhbHNlCisgCisrICAjIEVuYWJsZSBydW50aW1lIHNlbGVjdGlvbiBvZiBzbmRpbyg3 KQorKyAgdXNlX3NuZGlvID0gZmFsc2UKKysKKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBu b24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJWCBzeXN0ZW1zLgorICAgIyBBbHNhIHNob3VsZCBiZSB1 c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2FzdCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0IGJ1aWxk cy4KKyAgIGlmIChpc19wb3NpeCAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFybXY3bC1uZW9uLnBhdGNo IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ0MmZhMTlhMDdhMQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjds LW5lb24ucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NraWEvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9za2lhL0JVSUxELmdu CitAQCAtODAwLDcgKzgwMCw2IEBAIHNraWFfc291cmNlX3NldCgic2tpYV9vcHRzIikgeworICAg ICAgICAgIyBSb290IGJ1aWxkIGNvbmZpZyBzZXRzIC1tZnB1PSRhcm1fZnB1LCB3aGljaCB3ZSBl eHBlY3QgdG8gYmUgbmVvbgorICAgICAgICAgIyB3aGVuIHJ1bm5pbmcgdGhpcy4KKyAgICAgICAg IGlmICghYXJtX3VzZV9uZW9uKSB7CistICAgICAgICAgIGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9j b25maWcvY29tcGlsZXI6Y29tcGlsZXJfYXJtX2ZwdSIgXQorICAgICAgICAgICBjZmxhZ3MgKz0g WyAiLW1mcHU9bmVvbiIgXQorICAgICAgICAgfQorICAgICAgIH0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wt YXJtLXVzZXJfdmZwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNmUyZDYyZjM1ZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDc1MC1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaApAQCAtMCwwICsx LDIwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5m by5oCitAQCAtMTcsNiArMTcsMTcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1 ZGUgPHN5cy91c2VyLmg+CisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKytzdHJ1Y3QgdXNlcl92 ZnAgeworKwl1bnNpZ25lZCBsb25nIGxvbmcgZnByZWdzWzMyXTsKKysJdW5zaWduZWQgbG9uZyBm cHNjcjsKKyt9OworK3N0cnVjdCB1c2VyX3ZmcF9leGMgeworKwl1bnNpZ25lZCBsb25nIGZwZXhj OworKwl1bnNpZ25lZCBsb25nIGZwaW5zdDsKKysJdW5zaWduZWQgbG9uZyBmcGluc3QyOworK307 CisrI2VuZGlmIC8qICFkZWZpbmVkKF9fR0xJQkNfXykgKi8KKyAKKyAjaW5jbHVkZSA8dHlwZV90 cmFpdHM+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUx LWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43MTEyYzhjZmQzZmEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11 c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL2NwdS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3Y4L3NyYy9iYXNlL2NwdS5jYworQEAgLTE2Myw2ICsxNjMsMTUgQEAgc3RhdGljIFY4X0lO TElORSB2b2lkIF9fY3B1aWQoaW50IGNwdV9pbgorIAorICNpZiBWOF9IT1NUX0FSQ0hfQVJNIHx8 IFY4X0hPU1RfQVJDSF9BUk02NAorIAorKyNpZm5kZWYgX19HTElCQ19fCisrI2luY2x1ZGUgPGVs Zi5oPgorKyNpZmRlZiBfX0xQNjRfXworK3R5cGVkZWYgRWxmNjRfYXV4dl90IGVsZl9hdXh2X3Q7 CisrI2Vsc2UKKyt0eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZfYXV4dl90OworKyNlbmRpZgorKyNl bmRpZgorKworIHN0YXRpYyB1aW50MzJfdCBSZWFkRUxGSFdDYXBzKCkgeworICAgdWludDMyX3Qg cmVzdWx0ID0gMDsKKyAjaWYgVjhfR0xJQkNfUFJFUkVRKDIsIDE2KQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDgwMS1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJt aXNzaXZlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDgwMS1jaHJvbWl1 bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uM2Q0MDQzZTAzYjg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDgwMS1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZl LnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRp YS9ncHUvdmFhcGkvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9n cHUvdmFhcGkvQlVJTEQuZ24KK0BAIC0xNCw2ICsxNCwxMCBAQCBpbXBvcnQoIi8vdWkvZ2wvZmVh dHVyZXMuZ25pIikKKyBhc3NlcnQoaXNfbGludXggfHwgaXNfY2hyb21lb3MpCisgYXNzZXJ0KHVz ZV92YWFwaSkKKyAKKytjb25maWcoInZhYXBpX3Blcm1pc3NpdmUiKSB7CisrICBjZmxhZ3MgPSBb ICItZnBlcm1pc3NpdmUiIF0KKyt9CisrCisgZ2VuZXJhdGVfc3R1YnMoImxpYnZhX3N0dWJzIikg eworICAgZXh0cmFfaGVhZGVyID0gInZhX3N0dWJfaGVhZGVyLmZyYWdtZW50IgorICAgc2lncyA9 IFsgInZhLnNpZ3MiIF0KK0BAIC0xMzYsNiArMTQwLDEwIEBAIHNvdXJjZV9zZXQoInZhYXBpIikg eworICAgICBdCisgICB9CisgCisrICBpZiAodGFyZ2V0X2NwdSA9PSAieDg2IikgeworKyAgICBj b25maWdzICs9IFsgIjp2YWFwaV9wZXJtaXNzaXZlIiBdCisrICB9CisrCisgICBpZiAodXNlX3gx MSkgeworICAgICBkZXBzICs9IFsgIi8vdWkvZ2Z4L3giIF0KKyAgICAgc291cmNlcyArPSBbCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAwLXh4eC1wcGM2NGxl LWxpYnZweC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDAteHh4LXBw YzY0bGUtbGlidnB4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNWM5NTY2YjU2YmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDkwMC14eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2gKQEAgLTAsMCArMSw2NSBAQAor VXNlcyBnZW5lcmljIHRhcmdldCBmb3Igbm93LiBUbyB1c2UgcHBjNjRsZSwgY2hhbmdlIC0tdGFy Z2V0IHRvIHBwYzY0bGUtZ251CithbmQgYWRkIC0tZW5hYmxlLXZzeCwgYW5kIGNoYW5nZSBnZW5l cmljIHRvIHBwYyBmb3IgdGhlIHJ0Y2QgaGVhZGVyLgorCitGcm9tIDE4ZTZjNWM1NWNmYWUwY2Zi NDU4ZDgyMTBkN2JjNzA5MzYwYTBlOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBx NjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCA5IFNlcCAyMDIwIDE5OjA4OjI1 ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGVuYWJsZSBnZW5lcmF0aW9uIG9mIHBwYzY0IGxpYnZw eCBiaXRzCisKK3RoaXMgZG9lc24ndCB1cGRhdGUgdGhlIGduaSBmaWxlLCB0aGF0J3MgZG9uZSBm cm9tCit0aGUgdGVtcGxhdGUgYnkgcnVubmluZyB0aGUgYXBwcm9wcmlhdGUgc2NyaXB0cworLS0t CisgdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduICAgICAgICB8IDQgKysrKworIHRoaXJkX3Bh cnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2ggfCA5ICsrKysrKysrKworIDIgZmlsZXMgY2hhbmdl ZCwgMTMgaW5zZXJ0aW9ucygrKQorCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvbGlidnB4L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvbGlidnB4L0JVSUxELmduCitAQCAtNDI0LDYgKzQyNCw4IEBAIHN0YXRpY19saWJyYXJ5 KCJidW5kbGVkX2xpYnZweCIpIHsKKyAgICAgICBzb3VyY2VzID0gbGlidnB4X3NyY3NfYXJtNjQK KyAgICAgICBwdWJsaWNfZGVwcyA9IFsgIjpsaWJ2cHhfYXJtNjRfaGVhZGVycyIgXQorICAgICB9 CisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgc291cmNlcyA9 IGxpYnZweF9zcmNzX3BwYzY0CisgICB9CisgCisgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29u ZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAorQEAgLTM3NCw2ICsz NzQsNyBAQCBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L2FybS1uZW9uLWhpZ2hiZCAiCisgZ2VuX2Nv bmZpZ19maWxlcyBsaW51eC9hcm02NC1oaWdoYmQgIi0tdGFyZ2V0PWFybXY4LWxpbnV4LWdjYyAk e2FsbF9wbGF0Zm9ybXN9ICR7SElHSEJEfSIKKyBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L21pcHNl bCAiLS10YXJnZXQ9bWlwczMyLWxpbnV4LWdjYyAke2FsbF9wbGF0Zm9ybXN9IgorIGdlbl9jb25m aWdfZmlsZXMgbGludXgvbWlwczY0ZWwgIi0tdGFyZ2V0PW1pcHM2NC1saW51eC1nY2MgJHthbGxf cGxhdGZvcm1zfSIKKytnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L3BwYzY0ICItLXRhcmdldD1nZW5l cmljLWdudSAkSElHSEJEICR7YWxsX3BsYXRmb3Jtc30iCisgZ2VuX2NvbmZpZ19maWxlcyBsaW51 eC9nZW5lcmljICItLXRhcmdldD1nZW5lcmljLWdudSAkSElHSEJEICR7YWxsX3BsYXRmb3Jtc30i CisgZ2VuX2NvbmZpZ19maWxlcyB3aW4vYXJtNjQgIi0tdGFyZ2V0PWFybTY0LXdpbjY0LXZzMTUg JHthbGxfcGxhdGZvcm1zfSAke0hJR0hCRH0iCisgZ2VuX2NvbmZpZ19maWxlcyB3aW4vaWEzMiAi LS10YXJnZXQ9eDg2LXdpbjMyLXZzMTQgJHthbGxfcGxhdGZvcm1zfSAke3g4Nl9wbGF0Zm9ybXN9 IgorQEAgLTM5OSw2ICs0MDAsNyBAQCBsaW50X2NvbmZpZyBsaW51eC9hcm0tbmVvbi1oaWdoYmQK KyBsaW50X2NvbmZpZyBsaW51eC9hcm02NC1oaWdoYmQKKyBsaW50X2NvbmZpZyBsaW51eC9taXBz ZWwKKyBsaW50X2NvbmZpZyBsaW51eC9taXBzNjRlbAorK2xpbnRfY29uZmlnIGxpbnV4L3BwYzY0 CisgbGludF9jb25maWcgbGludXgvZ2VuZXJpYworIGxpbnRfY29uZmlnIHdpbi9hcm02NAorIGxp bnRfY29uZmlnIHdpbi9pYTMyCitAQCAtNDI4LDYgKzQzMCw3IEBAIGdlbl9ydGNkX2hlYWRlciBs aW51eC9hcm0tbmVvbi1oaWdoYmQgYXIKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgvYXJtNjQtaGln aGJkIGFybXY4CisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21pcHNlbCBtaXBzZWwKKyBnZW5fcnRj ZF9oZWFkZXIgbGludXgvbWlwczY0ZWwgbWlwczY0ZWwKKytnZW5fcnRjZF9oZWFkZXIgbGludXgv cHBjNjQgZ2VuZXJpYworIGdlbl9ydGNkX2hlYWRlciBsaW51eC9nZW5lcmljIGdlbmVyaWMKKyBn ZW5fcnRjZF9oZWFkZXIgd2luL2FybTY0IGFybXY4CisgZ2VuX3J0Y2RfaGVhZGVyIHdpbi9pYTMy IHg4NiAiJHtyZXF1aXJlX3NzZTJ9IgorQEAgLTUxMyw2ICs1MTYsMTIgQEAgaWYgWyAteiAkT05M WV9DT05GSUdTIF07IHRoZW4KKyAKKyAgIGVjaG8gIk1JUFM2NCBzb3VyY2UgbGlzdCBpcyBpZGVu dGljYWwgdG8gTUlQUyBzb3VyY2UgbGlzdC4gTm8gbmVlZCB0byBnZW5lcmF0ZSBpdC4iCisgCisr ICBlY2hvICJHZW5lcmF0ZSBwcGM2NCBzb3VyY2UgbGlzdC4iCisrICBjb25maWc9JChwcmludF9j b25maWdfYmFzaWMgbGludXgvcHBjNjQpCisrICBtYWtlX2NsZWFuCisrICBtYWtlIGxpYnZweF9z cmNzLnR4dCB0YXJnZXQ9bGlicyAkY29uZmlnID4gL2Rldi9udWxsCisrICBjb252ZXJ0X3NyY3Nf dG9fcHJvamVjdF9maWxlcyBsaWJ2cHhfc3Jjcy50eHQgbGlidnB4X3NyY3NfcHBjNjQKKysKKyAg IGVjaG8gIkdlbmVyYXRlIE5hQ2wgc291cmNlIGxpc3QuIgorICAgY29uZmlnPSQocHJpbnRfY29u ZmlnX2Jhc2ljIG5hY2wpCisgICBtYWtlX2NsZWFuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wOTAxLXh4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRj aCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEteHh4LXBwYzY0bGUtc2FuZGJv eC1saW51eC1zdGF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNGI4ZTYzMjA2MDFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0Y2gKQEAgLTAs MCArMSwzMSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKK0BAIC0xNTUsNiArMTU1LDI4 IEBAIHN0cnVjdCBrZXJuZWxfc3RhdCB7CisgICB1bnNpZ25lZCBpbnQgX191bnVzZWQ0OworICAg dW5zaWduZWQgaW50IF9fdW51c2VkNTsKKyB9OworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKytzdHJ1Y3Qga2VybmVsX3N0YXQgeworKyAgdW5zaWduZWQgbG9uZwlzdF9kZXY7CisrICB1 bnNpZ25lZCBsb25nCXN0X2lubzsKKysgIHVuc2lnbmVkIGxvbmcJc3Rfbmxpbms7CisrICB1bnNp Z25lZCBpbnQJc3RfbW9kZTsKKysgIHVuc2lnbmVkIGludAlzdF91aWQ7CisrICB1bnNpZ25lZCBp bnQJc3RfZ2lkOworKyAgdW5zaWduZWQgbG9uZwlzdF9yZGV2OworKyAgbG9uZwkJc3Rfc2l6ZTsK KysgIHVuc2lnbmVkIGxvbmcJc3RfYmxrc2l6ZTsKKysgIHVuc2lnbmVkIGxvbmcJc3RfYmxvY2tz OworKyAgdW5zaWduZWQgbG9uZwlzdF9hdGltZV87CisrICB1bnNpZ25lZCBsb25nCXN0X2F0aW1l X25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlzdF9tdGltZV87CisrICB1bnNpZ25lZCBsb25nCXN0 X210aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlzdF9jdGltZV87CisrICB1bnNpZ25lZCBs b25nCXN0X2N0aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlfX3VudXNlZDQ7CisrICB1bnNp Z25lZCBsb25nCV9fdW51c2VkNTsKKysgIHVuc2lnbmVkIGxvbmcJX191bnVzZWQ2OworK307Cisg I2VuZGlmCisgCisgI2lmICFkZWZpbmVkKEFUX0VNUFRZX1BBVEgpCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAyLXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAyLXh4eC1wcGM2NGxlLXN1cHBvcnQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MDUwM2MyMmUz NmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAy LXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwzNTU5IEBACitjb21taXQgMmMw MTNhMzE3YjExMTRlZjY3Y2RiYmMzMDgyNGIyODkwN2I5ZWE5NAorQXV0aG9yOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6ICAgV2VkIE1hciAzIDE5OjA4OjI5IDIw MjEgKzAxMDAKKworICAgIHBwYzY0bGUgc3VwcG9ydAorCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2ZlYXR1cmVzLmduaQorQEAgLTExLDcgKzExLDggQEAgaW1wb3J0KCIvL2J1aWxkL2Nv bmZpZy9uYWNsL2NvbmZpZy5nbmkiKQorIHVzZV9zZWNjb21wX2JwZiA9IChpc19saW51eCB8fCBp c19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSAmJgorICAgICAgICAgICAgICAgICAgIChjdXJyZW50 X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IiB8fAorICAgICAgICAgICAgICAg ICAgICBjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJtNjQiIHx8Cist ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1 ID09ICJtaXBzNjRlbCIpCisrICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJtaXBz ZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIgfHwKKysgICAgICAgICAgICAgICAgICAg Y3VycmVudF9jcHUgPT0gInBwYzY0IikKKyAKKyB1c2Vfc2VjY29tcF9icGYgPSB1c2Vfc2VjY29t cF9icGYgfHwgaXNfbmFjbF9ub25zZmkKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9CVUlMRC5nbgorQEAgLTQzMyw2ICs0MzMsOCBAQCBjb21wb25lbnQoInNhbmRib3hf c2VydmljZXMiKSB7CisgCisgc291cmNlX3NldCgic2FuZGJveF9zZXJ2aWNlc19oZWFkZXJzIikg eworICAgc291cmNlcyA9IFsKKysgICAgInN5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2Nh bGxzLmgiLAorKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCIsCisg ICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIiwKKyAgICAgInN5c3Rl bV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIiwKKyAgICAgInN5c3RlbV9oZWFkZXJzL2Fy bV9saW51eF91Y29udGV4dC5oIiwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCitA QCAtNTYsNiArNTYsMTMgQEAKKyAjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2Nh bGxzCisgI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKKyAKKysjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrCisrI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKysjZGVm aW5lIE1JTl9TWVNDQUxMIDB1CisrI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgMzg2dQorKyNk ZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCisrCisgI2Vsc2UKKyAjZXJyb3Ig IlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5o CitAQCAtMTYsNiArMTYsOSBAQAorICNpZiBkZWZpbmVkKF9fbWlwc19fKQorIC8vIHN5cy91c2Vy LmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlvbgorICNpbmNsdWRlIDxzdGRkZWYu aD4KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIGRlZmluZWQoX19HTElCQ19fKQor Ky8vIE1hbnVhbGx5IGRlZmluZSBncmVnX3Qgb24gcHBjNjQKKyt0eXBlZGVmIHVuc2lnbmVkIGxv bmcgbG9uZyBncmVnX3Q7CisgI2VuZGlmCisgI2VuZGlmCisgCitAQCAtMzQ2LDYgKzM0OSw1OSBA QCBzdHJ1Y3QgcmVnc19zdHJ1Y3QgeworICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNChfcmVncykg KF9yZWdzKS5yZWdzWzNdCisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3Mp LnJlZ3NbNF0KKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYoX3JlZ3MpIChfcmVncykucmVnc1s1 XQorKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorKworK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7CisrCisrI2lmZGVm IEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4KKysjZGVmaW5lIFNFQ0NPTVBfQVJDSCBBVURJVF9BUkNI X1BQQzY0TEUKKysjZWxzZQorKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQK KysjZW5kaWYKKysKKysjaWZkZWYgX19HTElCQ19fCisrI2RlZmluZSBTRUNDT01QX1JFRyhfY3R4 LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5ncHJbX3JlZ10pCisrI2Vsc2UKKysj ZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgp LT51Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQorKyNlbmRpZgorKworKyNkZWZpbmUgU0VD Q09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKKysjZGVmaW5lIFNFQ0NPTVBf U1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQorKyNpZmRlZiBfX0dMSUJDX18KKysj ZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5uaXAKKysj ZWxzZQorKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgp LT51Y19tY29udGV4dC5yZWdzKS0+bmlwCisrI2VuZGlmCisrI2RlZmluZSBTRUNDT01QX1BBUk0x KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCisrI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgp IFNFQ0NPTVBfUkVHKF9jdHgsIDQpCisrI2RlZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NP TVBfUkVHKF9jdHgsIDUpCisrI2RlZmluZSBTRUNDT01QX1BBUk00KF9jdHgpIFNFQ0NPTVBfUkVH KF9jdHgsIDYpCisrI2RlZmluZSBTRUNDT01QX1BBUk01KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgs IDcpCisrI2RlZmluZSBTRUNDT01QX1BBUk02KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDgpCisr CisrI2RlZmluZSBTRUNDT01QX05SX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9k YXRhLCBucikpCisrI2RlZmluZSBTRUNDT01QX0FSQ0hfSURYIChvZmZzZXRvZihzdHJ1Y3QgYXJj aF9zZWNjb21wX2RhdGEsIGFyY2gpKQorKyNkZWZpbmUgU0VDQ09NUF9JUF9NU0JfSURYIFwKKysg IChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIp ICsgNCkKKysjZGVmaW5lIFNFQ0NPTVBfSVBfTFNCX0lEWCBcCisrICAob2Zmc2V0b2Yoc3RydWN0 IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDApCisrI2RlZmluZSBT RUNDT01QX0FSR19NU0JfSURYKG5yKSBcCisrICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29t cF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgNCkKKysjZGVmaW5lIFNFQ0NPTVBfQVJHX0xTQl9J RFgobnIpIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyZ3MpICsg OCAqIChucikgKyAwKQorKworKyNkZWZpbmUgU0VDQ09NUF9QVF9SRVNVTFQoX3JlZ3MpIChfcmVn cykuZ3ByWzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1NZU0NBTEwoX3JlZ3MpIChfcmVncykuZ3By WzBdCisrI2RlZmluZSBTRUNDT01QX1BUX0lQKF9yZWdzKSAoX3JlZ3MpLm5pcAorKyNkZWZpbmUg U0VDQ09NUF9QVF9QQVJNMShfcmVncykgKF9yZWdzKS5ncHJbM10KKysjZGVmaW5lIFNFQ0NPTVBf UFRfUEFSTTIoX3JlZ3MpIChfcmVncykuZ3ByWzRdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0z KF9yZWdzKSAoX3JlZ3MpLmdwcls1XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNChfcmVncykg KF9yZWdzKS5ncHJbNl0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncyku Z3ByWzddCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLmdwcls4XQor KworICNlbHNlCisgI2Vycm9yIFVuc3VwcG9ydGVkIHRhcmdldCBwbGF0Zm9ybQorIAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9i YXNlbGluZV9wb2xpY3kuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCitAQCAtOTEsNyArOTEs OCBAQCBib29sIElzQmFzZWxpbmVQb2xpY3lXYXRjaGVkKGludCBzeXNubykKKyAgICAgICAgICBT eXNjYWxsU2V0czo6SXNQcmN0bChzeXNubykgfHwKKyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQ cm9jZXNzR3JvdXBPclNlc3Npb24oc3lzbm8pIHx8CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25vKSB8fAorICNlbmRpZgor ICNpZiBkZWZpbmVkKF9fYXJtX18pCitAQCAtMjU4LDcgKzI1OSw3IEBAIFJlc3VsdEV4cHIgRXZh bHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGUKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAg IGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyAgIGlmIChzeXNubyA9PSBfX05SX21tYXApCisgICAgIHJldHVy biBSZXN0cmljdE1tYXBGbGFncygpOworICNlbmRpZgorQEAgLTI3OSw3ICsyODAsNyBAQCBSZXN1 bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICAgIHJldHVybiBSZXN0cmlj dFByY3RsKCk7CisgCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisr ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGlm IChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIpIHsKKyAgICAgLy8gT25seSBhbGxvdyBBRl9VTklY LCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNlIGlzIHNlZW4uCisgICAgIHN0YXRpY19h c3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAorQEAgLTM0Myw3ICszNDQsOCBAQCBSZXN1bHRFeHBy IEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICB9CisgCisgI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKyAgIGlmIChTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25vKSkKKyAgICAg cmV0dXJuIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKKyAjZW5kaWYKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxp bmVfcG9saWN5X3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYwor QEAgLTMxNyw3ICszMTcsNyBAQCBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3N5c2luZm8pCisg VEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9zeXNsb2cpCisgVEVTVF9CQVNFTElORV9TSUdTWVMo X19OUl90aW1lcl9jcmVhdGUpCisgCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAh ZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyBURVNUX0JB U0VMSU5FX1NJR1NZUyhfX05SX2lub3RpZnlfaW5pdCkKKyBURVNUX0JBU0VMSU5FX1NJR1NZUyhf X05SX3ZzZXJ2ZXIpCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlv bnMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworQEAgLTQwLDcg KzQwLDggQEAKKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorICNpZiAoZGVmaW5lZChPU19MSU5V WCkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TX0xBQ1JPUykpICYmIFwKKyAgICAgIWRlZmluZWQo X19hcm1fXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICAgICAgICAgICBcCistICAgICFk ZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpCisrICAgICFkZWZpbmVkKFBUUkFDRV9HRVRf VEhSRUFEX0FSRUEpICYmCQkJICAgIFwKKysgICAgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAv LyBBbHNvIGluY2x1ZGUgYXNtL3B0cmFjZS1hYmkuaCBzaW5jZSBwdHJhY2UuaCBpbiBvbGRlciBs aWJjIChmb3IgaW5zdGFuY2UKKyAvLyB0aGUgb25lIGluIFVidW50dSAxNi4wNCBMVFMpIGlzIG1p c3NpbmcgUFRSQUNFX0dFVF9USFJFQURfQVJFQS4KKyAvLyBhc20vcHRyYWNlLWFiaS5oIGRvZXNu J3QgZXhpc3Qgb24gYXJtMzIgYW5kIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgaXNuJ3QKK0BAIC00 OSw2ICs1MCwxMSBAQAorICNlbmRpZgorICNlbmRpZiAgLy8gIU9TX05BQ0xfTk9OU0ZJCisgCisr Ly8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9z LCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCisrI2lmZGVmIF9fcG93ZXJwYzY0X18KKysj aW5jbHVkZSA8dGVybWlvcy5oPgorKyNlbmRpZgorKworICNpZiBkZWZpbmVkKE9TX0FORFJPSUQp CisgCisgI2lmICFkZWZpbmVkKEZfRFVQRkRfQ0xPRVhFQykKK0BAIC0xMDYsNiArMTEyLDE0IEBA IGlubGluZSBib29sIElzQXJjaGl0ZWN0dXJlTWlwcygpIHsKKyAjZW5kaWYKKyB9CisgCisraW5s aW5lIGJvb2wgSXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgcmV0dXJuIHRydWU7CisrI2Vsc2UKKysgIHJldHVybiBmYWxzZTsKKysjZW5kaWYK Kyt9CisrCisgLy8gVWJ1bnR1J3MgdmVyc2lvbiBvZiBnbGliYyBoYXMgYSByYWNlIGNvbmRpdGlv biBpbiBzZW1fcG9zdCB0aGF0IGNhbiBjYXVzZQorIC8vIGl0IHRvIGNhbGwgZnV0ZXgoMikgd2l0 aCBib2d1cyBvcCBhcmd1bWVudHMuIFRvIHdvcmthcm91bmQgdGhpcywgd2UgbmVlZAorIC8vIHRv IGFsbG93IHRob3NlIGZ1dGV4KDIpIGNhbGxzIHRvIGZhaWwgd2l0aCBFSU5WQUwsIGluc3RlYWQg b2YgY3Jhc2hpbmcgdGhlCitAQCAtMjcwLDYgKzI4NCw4IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RG Y250bENvbW1hbmRzKCkgeworICAgdWludDY0X3Qga09MYXJnZUZpbGVGbGFnID0gT19MQVJHRUZJ TEU7CisgICBpZiAoSXNBcmNoaXRlY3R1cmVYODZfNjQoKSB8fCBJc0FyY2hpdGVjdHVyZUkzODYo KSB8fCBJc0FyY2hpdGVjdHVyZU1pcHMoKSkKKyAgICAga09MYXJnZUZpbGVGbGFnID0gMDEwMDAw MDsKKysgIGVsc2UgaWYgKElzQXJjaGl0ZWN0dXJlUFBDNjQoKSkKKysgICAga09MYXJnZUZpbGVG bGFnID0gMDIwMDAwMDsKKyAKKyAgIGNvbnN0IEFyZzxpbnQ+IGNtZCgxKTsKKyAgIGNvbnN0IEFy Zzxsb25nPiBsb25nX2FyZygyKTsKK0BAIC0yODcsNyArMzAzLDE2IEBAIFJlc3VsdEV4cHIgUmVz dHJpY3RGY250bENvbW1hbmRzKCkgeworICAgICAgICAgICAgICAgRl9TRVRMS1csCisgICAgICAg ICAgICAgICBGX0dFVExLLAorICAgICAgICAgICAgICAgRl9EVVBGRCwKKy0gICAgICAgICAgICAg IEZfRFVQRkRfQ0xPRVhFQyksCisrICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMKKysjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKy8vIE9uIFBQQzY0LCBGX1NFVExLLCBGX0dFVExLLCBG X1NFVExLVyBhcmUgZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZhcmlhbnRzCisrLy8gYnV0IGdsaWJj IHdpbGwgc29tZXRpbWVzIHN0aWxsIHVzZSB0aGUgMzItYml0IHZlcnNpb25zLiBBbGxvdyBib3Ro LgorKyAgICAgICAgICAgICAgLAorKyAgICAgICAgICAgICAgNSwgLyogRl9HRVRMSyAoMzIpICov CisrICAgICAgICAgICAgICA2LCAvKiBGX1NFVExLICgzMikgKi8KKysgICAgICAgICAgICAgIDcg IC8qIEZfU0VUTEtXICgzMikgKi8KKysjZW5kaWYKKysJICAgICApLAorICAgICAgICAgICAgICBB bGxvdygpKQorICAgICAgIC5DYXNlKEZfU0VURkwsCisgICAgICAgICAgICAgSWYoKGxvbmdfYXJn ICYgfmtBbGxvd2VkTWFzaykgPT0gMCwgQWxsb3coKSkuRWxzZShDcmFzaFNJR1NZUygpKSkKK0BA IC0yOTcsNyArMzIyLDcgQEAgUmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKSB7Cisg ICAvLyBjbGFuZy1mb3JtYXQgb24KKyB9CisgCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyBSZXN1bHRFeHByIFJlc3RyaWN0U29ja2V0 Y2FsbENvbW1hbmQoKSB7CisgICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBhcmUgdW5hYmxlIHRvIHJl c3RyaWN0IHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8KKyAgIC8vIHNvY2tldHBhaXIoMikuIFdoaWxz dCBpbml0aWFsbHkgc291bmRpbmcgYmFkLCBpdCdzIG5vdGV3b3J0aHkgdGhhdCB2ZXJ5CitAQCAt NDU0LDcgKzQ3OSw3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RQdHJhY2UoKSB7CisgI2VuZGlmCisg ICByZXR1cm4gU3dpdGNoKHJlcXVlc3QpCisgICAgICAgLkNBU0VTKCgKKy0jaWYgIWRlZmluZWQo X19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorICAgICAgICAgICAgICAgICAgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9HRVRG UFJFR1MsCisgI2lmIGRlZmluZWQoVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQorICAgICAgICAgICAg ICAgICAgUFRSQUNFX0dFVF9USFJFQURfQVJFQSwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jl c3RyaWN0aW9ucy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAorQEAg LTQ5LDcgKzQ5LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cgor IC8vIE9fTk9OQkxPQ0sgfCBPX1NZTkMgfCBPX0xBUkdFRklMRSB8IE9fQ0xPRVhFQyB8IE9fTk9B VElNRS4KKyBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0RmNudGxD b21tYW5kcygpOworIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgLy8gUmVzdHJpY3Qgc29ja2V0Y2FsbCgyKSB0byBvbmx5IGFsbG93 IHNvY2tldHBhaXIoMiksIHNlbmQoMiksIHJlY3YoMiksCisgLy8gc2VuZHRvKDIpLCByZWN2ZnJv bSgyKSwgc2h1dGRvd24oMiksIHNlbmRtc2coMikgYW5kIHJlY3Ztc2coMikuCisgU0FOREJPWF9F WFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC0yOCw3ICsyOCw3 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzS2lsbChpbnQgc3lzbm8pIHsKKyBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgewor ICAgICBjYXNlIF9fTlJfZ2V0dGltZW9mZGF5OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisg ICAgIGNhc2UgX19OUl90aW1lOgorICNlbmRpZgorQEAgLTUxLDEyICs1MSwxMiBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCisgICAgIGNh c2UgX19OUl9jbG9ja19uYW5vc2xlZXBfdGltZTY0OiAgLy8gUGFyYW1ldGVycyBmaWx0ZXJlZCBi eSBSZXN0cmljdENsb2NrSUQoKS4KKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwK KyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCisgICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgorICNlbmRpZgor ICAgICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KKy0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9zdGltZToKKyAjZW5kaWYK K0BAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBz eXNubworICAgICBjYXNlIF9fTlJfZmFjY2Vzc2F0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJy bm8uCisgICAgIGNhc2UgX19OUl9mY2htb2RhdDoKKyAgICAgY2FzZSBfX05SX2ZjaG93bmF0OiAg Ly8gU2hvdWxkIGJlIGNhbGxlZCBjaG93bmF0ID8KKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X25ld2ZzdGF0YXQ6ICAvLyBmc3RhdGF0KCkuIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNl bGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK K0BAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBz eXNubworICAgICBjYXNlIF9fTlJfbWVtZmRfY3JlYXRlOgorICAgICBjYXNlIF9fTlJfbWtkaXJh dDoKKyAgICAgY2FzZSBfX05SX21rbm9kYXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pCisrI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX29sZGxzdGF0OgorICAgICBjYXNlIF9fTlJfb2xkc3RhdDoKKyAjZW5kaWYKK0BAIC0xNjcs NyArMTY3LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubworICAg ICBjYXNlIF9fTlJfc3RhdDY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc3RhdGZzOiAgLy8g RVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBf X05SX3N0YXRmczY0OgorICNlbmRpZgorQEAgLTE3OSw3ICsxNzksOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vCisgICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0Ogor ICNlbmRpZgorICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3V0aW1lOgor ICNlbmRpZgorICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3LgorQEAgLTIwNCw3ICsy MDUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjCisgI2VuZGlm CisgICAgICAgcmV0dXJuIHRydWU7CisgLy8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVu aWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgorLSNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9mYWR2 aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZW5kaWYKKyAjaWYgZGVmaW5l ZChfX2kzODZfXykKK0BAIC0yMTYsMTIgKzIxOCwxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRGaWxlU3lzdGVtQWNjCisgICAgIGNhc2UgX19OUl9mZGF0YXN5bmM6ICAvLyBFUEVSTSBu b3QgYSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2Zsb2NrOiAgICAgIC8vIEVQRVJNIG5v dCBhIHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfZnN0YXRmczogICAgLy8gR2l2ZSBpbmZv cm1hdGlvbiBhYm91dCB0aGUgd2hvbGUgZmlsZXN5c3RlbS4KKy0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQor ICAgICBjYXNlIF9fTlJfZnN0YXRmczY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZnN5bmM6 ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKy0jaWYgZGVmaW5lZChfX2kzODZfXykKKysj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNl IF9fTlJfb2xkZnN0YXQ6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorQEAgLTIyOSw2ICsyMzEs OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjCisgICAgIGNhc2Ug X19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxp ZiBkZWZpbmVkKF9fYXJtX18pCisgICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAg Ly8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFsaWQg ZXJybm8uCisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CisgICAgICAgcmV0dXJuIGZhbHNlOworQEAg LTI0OCw3ICsyNTIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1BY2Nl CisgICAgIGNhc2UgX19OUl9nZXRkZW50czogICAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8u CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9nZXRkZW50czY0OiAgLy8gRVBFUk0gbm90IGEgdmFs aWQgZXJybm8uCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNl IF9fTlJfcmVhZGRpcjoKKyAjZW5kaWYKK0BAIC0yOTAsNyArMjk0LDcgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbgorIGJvb2wgU3lzY2FsbFNldHM6OklzUHJvY2Vz c1ByaXZpbGVnZUNoYW5nZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAg Y2FzZSBfX05SX2NhcHNldDoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2lvcGVybTogIC8vIEludGVs IHByaXZpbGVnZS4KKyAgICAgY2FzZSBfX05SX2lvcGw6ICAgIC8vIEludGVsIHByaXZpbGVnZS4K KyAjZW5kaWYKK0BAIC0zNDAsNyArMzQ0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk U2lnbmFsSGFuZGxpbgorICAgICBjYXNlIF9fTlJfcnRfc2lncHJvY21hc2s6CisgICAgIGNhc2Ug X19OUl9ydF9zaWdyZXR1cm46CisgICAgIGNhc2UgX19OUl9ydF9zaWd0aW1lZHdhaXQ6CistI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykg fHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3J0X3NpZ3RpbWVkd2FpdF90aW1lNjQ6Cisg ICAgIGNhc2UgX19OUl9zaWdhY3Rpb246CitAQCAtMzU3LDcgKzM2MSw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW4KKyAgICAgY2FzZSBfX05SX3NpZ25hbGZkOgor ICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2lnbmFsZmQ0OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisg ICAgIGNhc2UgX19OUl9zaWdwZW5kaW5nOgorICAgICBjYXNlIF9fTlJfc2lnc3VzcGVuZDoKK0BA IC0zODIsNyArMzg2LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25G ZAorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZHVwMzoKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVm aW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc2h1dGRvd246CisgI2VuZGlmCisgICAgICAg cmV0dXJuIHRydWU7CitAQCAtNDE2LDcgKzQyMCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZFByb2Nlc3NTdGFydE8KKyAgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6CisgICAgIGNhc2Ug X19OUl93YWl0NDoKKyAgICAgY2FzZSBfX05SX3dhaXRpZDoKKy0jaWYgZGVmaW5lZChfX2kzODZf XykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAg ICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKyAjaWYgIWRlZmluZWQoX19HTElCQ19fKQor QEAgLTQzOCw3ICs0NDIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3Rh cnRPCisgICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6CisgI2VuZGlmCisgICAgIGNhc2Ug X19OUl91bnNoYXJlOgorLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJj aDY0X18pCisrI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfdmZvcms6CisgI2VuZGlm CisgICAgIGRlZmF1bHQ6CitAQCAtNDkxLDcgKzQ5NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZEdldE9yTW9kaWZ5U28KKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgZGVmYXVsdDoK KyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc29j a2V0cGFpcjogIC8vIFdlIHdpbGwgd2FudCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4KKyAjZW5k aWYKKyAgICAgICByZXR1cm4gZmFsc2U7CitAQCAtNTAxLDcgKzUwNSw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U28KKyBib29sIFN5c2NhbGxTZXRzOjpJc0Rlbmll ZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9hY2NlcHQ6 CisgICAgIGNhc2UgX19OUl9hY2NlcHQ0OgorICAgICBjYXNlIF9fTlJfYmluZDoKK0BAIC01MTUs NyArNTE5LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvYworICAg fQorIH0KKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgLy8gQmlnIG11 bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KKyBib29sIFN5c2NhbGxTZXRzOjpJ c1NvY2tldENhbGwoaW50IHN5c25vKSB7CitAQCAtNTMwLDcgKzUzNCw4IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8KKyB9CisgI2VuZGlmCisgCistI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQor KyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgYm9vbCBTeXNjYWxs U2V0czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7CisgICBzd2l0Y2gg KHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKK0BAIC01NTgsNyArNTYzLDcg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQQorICAgICBjYXNlIF9f TlJfbWluY29yZToKKyAgICAgY2FzZSBfX05SX21sb2NrYWxsOgorICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0g ICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfbW1hcDoKKyAjZW5kaWYKKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCitAQCAtNTg5LDcgKzU5 NCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUEKKyBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5 c25vKSB7CisgICAgIGNhc2UgX19OUl9sc2VlazoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBj YXNlIF9fTlJfX2xsc2VlazoKKyAjZW5kaWYKK0BAIC02MDksMjcgKzYxNCwyNyBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50CisgICAgIGNhc2UgX19OUl9yZWFkOgor ICAgICBjYXNlIF9fTlJfcmVhZHY6CisgICAgIGNhc2UgX19OUl9wcmVhZDY0OgorLSNpZiBkZWZp bmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9yZWN2OgorICNlbmRpZgor ICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9yZWN2 ZnJvbTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgorICAgICBjYXNlIF9fTlJfcmVjdm1zZzog ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X3NlbGVjdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19h cm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3NlbmQ6CisgI2VuZGlmCisgI2lmIGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NlbmRtc2c6ICAv LyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICAgICBjYXNlIF9fTlJfc2VuZHRvOiAgIC8v IENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCisgI2VuZGlmCitAQCAtNjg0LDcgKzY4OSw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGUKKyAgICAgY2FzZSBfX05S X25hbm9zbGVlcDoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX2dldHByaW9y aXR5OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9uaWNlOgorICNlbmRpZgor QEAgLTY5Niw3ICs3MDEsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVk dWxlCisgCisgYm9vbCBTeXNjYWxsU2V0czo6SXNBZG1pbk9wZXJhdGlvbihpbnQgc3lzbm8pIHsK KyAgIHN3aXRjaCAoc3lzbm8pIHsKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJf YmRmbHVzaDoKKyAjZW5kaWYKK0BAIC03MTMsNyArNzE4LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBZG1pbk9wZXJhdGlvbihpbnQgcworIAorIGJvb2wgU3lzY2FsbFNldHM6OklzS2VybmVsTW9k dWxlKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworLSNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9jcmVh dGVfbW9kdWxlOgorICAgICBjYXNlIF9fTlJfZ2V0X2tlcm5lbF9zeW1zOiAgLy8gU2hvdWxkIEVO T1NZUy4KKyAgICAgY2FzZSBfX05SX3F1ZXJ5X21vZHVsZToKK0BAIC03NDUsNyArNzUxLDcgQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNGc0NvbnRyb2woaW50IHN5c25vKQorICAgICBjYXNlIF9fTlJf cXVvdGFjdGw6CisgICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgorICAgICBjYXNlIF9fTlJfc3dhcG9u OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3Vt b3VudDoKKyAjZW5kaWYKK0BAIC03NjIsNyArNzY4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNO dW1hKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0Y3B1OgorICAgICBjYXNlIF9fTlJf bWJpbmQ6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl9taWdyYXRlX3BhZ2VzOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbW92ZV9wYWdlczoK K0BAIC03OTcsMTMgKzgwMywxMyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dsb2JhbFByb2Nlc3NF bnZpcm9uCisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9hY2N0OiAgLy8gUHJp dmlsZWdlZC4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAg IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2Fz ZSBfX05SX2dldHJsaW1pdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3VnZXRybGltaXQ6Cisg I2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9f TlJfdWxpbWl0OgorICNlbmRpZgorQEAgLTgzOCw3ICs4NDQsNyBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0dsb2JhbFN5c3RlbVN0YXR1cyhpCisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9zeXNpbmZv OgorICAgICBjYXNlIF9fTlJfdW5hbWU6CistI2lmIGRlZmluZWQoX19pMzg2X18pCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X29sZHVuYW1lOgorICAgICBjYXNlIF9fTlJfb2xkb2xkdW5hbWU6CisgI2VuZGlmCitAQCAtOTA0 LDggKzkxMCwxNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTZW1hcGhvcmVzKGluCisg fQorICNlbmRpZgorIAorKy8qIHNoaXR0eSBoYWNrIGFyb3VuZCBWb2lkJ3MgNC4xOSBrZXJuZWwg aGVhZGVycyBtaXNzaW5nIHRob3NlIG51bWJlcnMgKi8KKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKSAmJiAhZGVmaW5lZChfX05SX3NobWdldCkKKysjZGVmaW5lIF9fTlJfc2htZ2V0IDM5NQor KyNkZWZpbmUgX19OUl9zaG1jdGwgMzk2CisrI2RlZmluZSBfX05SX3NobWF0IDM5NworKyNkZWZp bmUgX19OUl9zaG1kdCAzOTgKKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8 fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzY0X0JJVFMpKQorIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkg YW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCisgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0 ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubykgeworQEAgLTkzNiw3ICs5NTAsNyBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc1N5c3RlbVZNZXNzYWdlUXVldWUoCisgfQorICNlbmRpZgorIAorLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAvLyBCaWcgc3lzdGVtIFYgbXVsdGlwbGV4 aW5nIHN5c3RlbSBjYWxsLgorIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVklwYyhpbnQgc3lz bm8pIHsKK0BAIC05NTYsNyArOTcwLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbnlTeXN0ZW1W KGludCBzeXNubworICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV82NF9CSVRTKSkKKyAgIHJldHVybiBJc1N5c3RlbVZNZXNzYWdlUXVldWUoc3lz bm8pIHx8IElzU3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8CisgICAgICAgICAgSXNTeXN0ZW1W U2hhcmVkTWVtb3J5KHN5c25vKTsKKy0jZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2Vs aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQorICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNubyk7CisgI2VuZGlmCitAQCAtMTAxNCw3 ICsxMDI4LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGYU5vdGlmeShpbnQgc3lzbm8pCisgYm9v bCBTeXNjYWxsU2V0czo6SXNUaW1lcihpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsK KyAgICAgY2FzZSBfX05SX2dldGl0aW1lcjoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYWxhcm06CisgI2VuZGlm CisgICAgIGNhc2UgX19OUl9zZXRpdGltZXI6CitAQCAtMTA5NiwxNyArMTExMSwyMCBAQCBib29s IFN5c2NhbGxTZXRzOjpJc01pc2MoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9zeW5jZnM6 CisgICAgIGNhc2UgX19OUl92aGFuZ3VwOgorIC8vIFRoZSBzeXN0ZW0gY2FsbHMgYmVsb3cgYXJl IG5vdCBpbXBsZW1lbnRlZC4KKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYWZzX3N5c2NhbGw6CisgI2VuZGlmCisg I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2JyZWFrOgorICNlbmRpZgor LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICAgIGNhc2UgX19OUl9nZXRwbXNnOgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwg XAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX2d0dHk6CisgICAgIGNhc2UgX19OUl9pZGxlOgor QEAgLTExMTUsMjAgKzExMzMsMjEgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNu bykgeworICAgICBjYXNlIF9fTlJfcHJvZjoKKyAgICAgY2FzZSBfX05SX3Byb2ZpbDoKKyAjZW5k aWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKQorICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfc3R0eToKKyAjZW5kaWYKKy0jaWYg ZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3R1eGNhbGw6CisgI2VuZGlmCistI2lmICFk ZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3ZzZXJ2ZXI6CisgI2VuZGlmCisgICAg ICAgcmV0dXJuIHRydWU7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5o CitAQCAtNDMsMTMgKzQzLDE0IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsK KyAgIHN0YXRpYyBib29sIElzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKTsKKyAK KyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0g Y2FsbCBmb3Igc29ja2V0cy4KKyAgIHN0YXRpYyBib29sIElzU29ja2V0Q2FsbChpbnQgc3lzbm8p OworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQor KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBz dGF0aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlvbihpbnQgc3lzbm8pOworICNlbmRp ZgorIAorQEAgLTc3LDcgKzc4LDcgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMg eworICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pOworICNlbmRp ZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCisgICAvLyBUaGVzZSBn aXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5k Ym94LgorICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubyk7CitA QCAtODksNyArOTAsOCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7CisgI2Vu ZGlmCisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8 fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0 aXBsZXhpbmcgc3lzdGVtIGNhbGwuCisgICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZJcGMoaW50IHN5 c25vKTsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKK0BAIC0xOCw3ICsxOCw3IEBAIG5hbWVz cGFjZSBzYW5kYm94IHsKKyBuYW1lc3BhY2UgeworIAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4 Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSB8fCBkZWZpbmVkIChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgLy8gTnVtYmVyIHRoYXQn cyBub3QgY3VycmVudGx5IHVzZWQgYnkgYW55IExpbnV4IGtlcm5lbCBBQklzLgorIGNvbnN0IGlu dCBrSW52YWxpZFN5c2NhbGxOdW1iZXIgPSAweDM1MWQzOworICNlbHNlCitAQCAtMzEyLDEwICsz MTIsNTQgQEAgYXNtKC8vIFdlIG5lZWQgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSBrZQorICAgICAi MjpyZXRcbiIKKyAgICAgIi5jZmlfZW5kcHJvY1xuIgorICAgICAiLnNpemUgU3lzY2FsbEFzbSwg Li1TeXNjYWxsQXNtXG4iCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAiLnRl eHRcbiIKKysgICAgIi5hbGlnbiA0XG4iCisrICAgICIudHlwZSBTeXNjYWxsQXNtIEBmdW5jdGlv blxuIgorKyAgICAiU3lzY2FsbEFzbTpcbiIKKysgICAgIi5jZmlfc3RhcnRwcm9jXG4iCisrCisr ICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCisrICAgICJjbXBkaSAzLCAwXG4iCisrICAg ICJiZ3QgMmZcbiIKKysKKysgICAgLy8gTG9hZCBhZGRyZXNzIG9mIDNmIGludG8gcjMgYW5kIHJl dHVybgorKyAgICAibWZsciAxMFxuIgorKyAgICAiYmwgMWZcbiIKKysgICAgIjE6IG1mbHIgM1xu IgorKyAgICAibXRsciAxMFxuIgorKyAgICAiYWRkaSAzLCAzLCA0KjEzXG4iCisrICAgICJibHJc biIKKysKKysgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBhcnJheSBpbnRvIHIzLTgKKysgICAg Ly8gc2F2ZSBwYXJhbSAzIGluIHIxMAorKyAgICAiMjpcbiIKKysgICAgIm1yIDAsIDNcbiIKKysg ICAgImxkIDMsIDAoNClcbiIKKysgICAgImxkIDUsIDE2KDQpXG4iCisrICAgICJsZCA2LCAyNCg0 KVxuIgorKyAgICAibGQgNywgMzIoNClcbiIKKysgICAgImxkIDgsIDQwKDQpXG4iCisrICAgICJs ZCA0LCA4KDQpXG4iCisrICAgICJsaSA5LCAwXG4iCisrCisrICAgIC8vIEVudGVyIGtlcm5lbAor KyAgICAic2NcbiIKKysKKysgICAgLy8gTWFnaWMgcmV0dXJuIGFkZHJlc3MKKysgICAgIjM6XG4i CisrICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZhbHVlcyBhcmUgYWx3YXlzIHBvc2l0 aXZlLgorKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3IwLlNPIGFuZCBuZWdhdGUgdXBvbiBl cnJvcgorKyAgICAiYmMgNCwgMywgNGZcbiIKKysgICAgIm5lZyAzLCAzXG4iCisrICAgICI0OiBi bHJcbiIKKysKKysgICAgIi5jZmlfZW5kcHJvY1xuIgorKyAgICAiLnNpemUgU3lzY2FsbEFzbSwg Li1TeXNjYWxsQXNtXG4iCisgI2VuZGlmCisgICAgICk7ICAvLyBhc20KKyAKKy0jaWYgZGVmaW5l ZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKKyBleHRlcm4gIkMiIHsKKyBpbnRwdHJfdCBTeXNjYWxsQXNtKGludHB0cl90IG5y LCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKKyB9CitAQCAtNDI5LDYgKzQ3Myw4IEBAIGludHB0 cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAorICAgICByZXQgPSBpbm91dDsKKyAgIH0KKyAKKysj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBpbnRwdHJfdCByZXQgPSBTeXNjYWxsQXNt KG5yLCBhcmdzKTsKKyAjZWxzZQorICNlcnJvciAiVW5pbXBsZW1lbnRlZCBhcmNoaXRlY3R1cmUi CisgI2VuZGlmCitAQCAtNDQ1LDggKzQ5MSwyNiBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5V Y29udGV4dChpbnRwdHJfCisgICAgIC8vIG5lZWRzIHRvIGJlIGNoYW5nZWQgYmFjay4KKyAgICAg cmV0X3ZhbCA9IC1yZXRfdmFsOworICAgICBTRUNDT01QX1BBUk00KGN0eCkgPSAxOworLSAgfSBl bHNlCisrICB9IGVsc2UgeworICAgICBTRUNDT01QX1BBUk00KGN0eCkgPSAwOworKyAgfQorKyNl bmRpZgorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBTYW1lIGFzIE1JUFMsIG5l ZWQgdG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lzdGVyIChjcjAuU08pCisrICBpZiAo cmV0X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1KSB7CisrICAgIHJldF92YWwgPSAtcmV0 X3ZhbDsKKysjaWZkZWYgX19HTElCQ19fCisrICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2Ny IHw9ICgxIDw8IDI4KTsKKysjZWxzZQorKyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19t Y29udGV4dC5yZWdzKS0+Y2NyIHw9ICgxIDw8IDI4KTsKKysjZW5kaWYKKysgIH0gZWxzZSB7Cisr I2lmZGVmIF9fR0xJQkNfXworKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEg PDwgMjgpOworKyNlbHNlCisrICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0 LnJlZ3MpLT5jY3IgJj0gfigxIDw8IDI4KTsKKysjZW5kaWYKKysgIH0KKyAjZW5kaWYKKyAgIFNF Q0NPTVBfUkVTVUxUKGN0eCkgPSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOworIH0KKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm L3RyYXAuY2MKK0BAIC0yMzYsNiArMjM2LDIwIEBAIHZvaWQgVHJhcDo6U2lnU3lzKGludCBuciwg TGludXhTaWdJbmZvKgorICAgICAgIFNldElzSW5TaWdIYW5kbGVyKCk7CisgICAgIH0KKyAKKysj aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBz eXNjYWxscyBzZWVtIHRvIGFjY2lkZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0CisrICAgIC8vIHBh cmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywg bWFudWFsbHkKKysgICAgLy8gbmVnYXRlIHRoZW0gYmFjay4KKysgICAgLy8gVE9ETyhzaGF3bkBh bmFzdGFzLmlvKTogaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCisrICAgIGF1dG8gbnIg PSBTRUNDT01QX1NZU0NBTEwoY3R4KTsKKysgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5y ID09IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3Jl YWRsaW5rYXQgfHwKKysgICAgICAgIG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9y ZW5hbWVhdDIgfHwgbnIgPT0gX19OUl9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQp IHsKKysgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAw KSB7CisrICAgICAgICAgICAgU0VDQ09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4 KTsKKysgICAgICAgIH0KKysgICAgfQorKyNlbmRpZgorKworICAgICAvLyBDb3B5IHRoZSBzZWNj b21wLXNwZWNpZmljIGRhdGEgaW50byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhp cworICAgICAvLyBpcyB3aGF0IHdlIGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRo YXQgdGhlIHN5c3RlbSBjYWxsCisgICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhl IHNhbmRib3guCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2 aWNlcy9jcmVkZW50aWFscy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKK0BAIC04MSw3ICs4MSw3IEBAIGJvb2wgQ2hy b290VG9TYWZlRW1wdHlEaXIoKSB7CisgICBwaWRfdCBwaWQgPSAtMTsKKyAgIGFsaWduYXMoMTYp IGNoYXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKKyAjaWYgZGVmaW5lZChBUkNIX0NQ VV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKKy0gICAg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgICAvLyBUaGUgc3Rh Y2sgZ3Jvd3MgZG93bndhcmQuCisgICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihz dGFja19idWYpOworICNlbHNlCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCitAQCAtNjEs NyArNjEsNyBAQCBsb25nIHN5c19jbG9uZSh1bnNpZ25lZCBsb25nIGZsYWdzLAorICNpZiBkZWZp bmVkKEFSQ0hfQ1BVX1g4Nl82NCkKKyAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdz LCBjaGlsZF9zdGFjaywgcHRpZCwgY3RpZCwgdGxzKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1g4NikgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCistICAgIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp IHx8IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorICAgLy8gQ09ORklHX0NMT05FX0JB Q0tXQVJEUyBkZWZpbmVkLgorICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNo aWxkX3N0YWNrLCBwdGlkLCB0bHMsIGN0aWQpOworICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2Vy L2Jyb2tlcl9wcm9jZXNzLmNjCitAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgQnJva2VyUHJvY2Vz czo6SXNTeXNjYWxsQnJva2VyYWJsZSgKKyAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKKyAg ICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX25ld2ZzdGF0YXQ6CisgI2VuZGlmCisgICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IGFs bG93ZWRfY29tbWFuZF9zZXRfLnRlc3QoQ09NTUFORF9TVEFUKTsKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv bGludXhfc2VjY29tcC5oCitAQCAtNDEsNiArNDEsOSBAQAorICNpZm5kZWYgRU1fQUFSQ0g2NAor ICNkZWZpbmUgRU1fQUFSQ0g2NCAxODMKKyAjZW5kaWYKKysjaWZuZGVmIEVNX1BQQzY0CisrI2Rl ZmluZSBFTV9QUEM2NCAyMQorKyNlbmRpZgorIAorICNpZm5kZWYgX19BVURJVF9BUkNIXzY0QklU CisgI2RlZmluZSBfX0FVRElUX0FSQ0hfNjRCSVQgMHg4MDAwMDAwMAorQEAgLTc0LDYgKzc3LDE0 IEBACisgI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FS Q0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCisgI2VuZGlmCisgCisrI2lmbmRlZiBBVURJVF9B UkNIX1BQQzY0CisrI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRf QVJDSF82NEJJVCkKKysjZW5kaWYKKysKKysjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQorKyNk ZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8 IF9fQVVESVRfQVJDSF9MRSkKKysjZW5kaWYKKysKKyAvLyBGb3IgcHJjdGwuaAorICNpZm5kZWYg UFJfU0VUX1NFQ0NPTVAKKyAjZGVmaW5lIFBSX1NFVF9TRUNDT01QICAgICAgICAgICAgICAgMjIK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3NpZ25hbC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAorQEAgLTEzLDcgKzEzLDcgQEAKKyAvLyAo bm90IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50IHZhbHVlcyBhbmQgaW4gZGlmZmVy ZW50IG1lbW9yeQorIC8vIGxheW91dHMpLiBTbywgZmlsbCB0aGUgZ2FwIGhlcmUuCisgI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAKKyAjZGVmaW5lIExJTlVYX1NJR0hVUCAx CisgI2RlZmluZSBMSU5VWF9TSUdJTlQgMgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2Fs bHMuaAorQEAgLTM1LDUgKzM1LDkgQEAKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIgorICNlbmRpZgorIAorKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv cHBjNjRfbGludXhfc3lzY2FsbHMuaCIKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hf TElOVVhfU1lTVEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNfSF8KKyAKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0 LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3Vjb250ZXh0LmgKK0BAIC0xMSw2ICsxMSw4IEBACisgI2luY2x1ZGUgInNhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiCisgI2VsaWYgZGVm aW5lZChfX2kzODZfXykKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9p Mzg2X2xpbnV4X3Vjb250ZXh0LmgiCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNp bmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0 LmgiCisgI2Vsc2UKKyAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGlu IFBOYUNsIGhlYWRlciIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGlj eV9saW51eC5jYworQEAgLTE1LDYgKzE1LDExIEBACisgI2luY2x1ZGUgInNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKKyAjaW5jbHVkZSAic2FuZGJveC9wb2xp Y3kvbGludXgvc2FuZGJveF9saW51eC5oIgorIAorKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVm aW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1p b3MuaAorKyNpZmRlZiBfX3Bvd2VycGM2NF9fCisrI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjZW5k aWYKKysKKyAvLyBUT0RPKHZpZ25hdHRpKTogcmVwbGFjZSB0aGUgbG9jYWwgZGVmaW5pdGlvbnMg YmVsb3cgd2l0aCAjaW5jbHVkZQorIC8vIDxsaW51eC9kbWEtYnVmLmg+IG9uY2Uga2VybmVsIHZl cnNpb24gNC42IGJlY29tZXMgd2lkZWx5IHVzZWQuCisgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+ CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBp bGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKK0BAIC05 Myw3ICs5MywxNiBAQCBjbGFzcyBUSW5mb1NpbmtCYXNlCisgICAgICAgICAgICAgc3RyZWFtLnBy ZWNpc2lvbig4KTsKKyAgICAgICAgICAgICBzdHJlYW0gPDwgZjsKKyAgICAgICAgIH0KKy0gICAg ICAgIHNpbmsuYXBwZW5kKHN0cmVhbS5zdHIoKSk7CisrCisrICAgICAgICAvLyBIYWNrIHRvIHdv cmsgYXJvdW5kIGEgYnVnIHdoZXJlIG5lZ2F0aXZlIGZsb2F0aW5nIHBvaW50IHZhbHVlcworKyAg ICAgICAgLy8gYXJlIHJlbmRlcmVkIGxpa2UgJy4wLjUnIGluc3RlYWQgb2YgJy0wLjUnCisrICAg ICAgICBzdGQ6OnN0cmluZyByZXMoc3RyZWFtLnN0cigpKTsKKysKKysgICAgICAgIGlmIChzaWdu Yml0KGYpKSB7IC8vIHRlc3QgaWYgZiBpcyBuZWdhdGl2ZQorKyAgICAgICAgICAgIHJlc1swXSA9 ICctJzsKKysgICAgICAgIH0KKysKKysgICAgICAgIHNpbmsuYXBwZW5kKHJlcyk7CisgICAgICAg ICByZXR1cm4gKnRoaXM7CisgICAgIH0KKyAgICAgLy8gV3JpdGUgYm9vbGVhbiB2YWx1ZXMgYXMg dGhlaXIgbmFtZXMgaW5zdGVhZCBvZiBpbnRlZ3JhbCB2YWx1ZS4KKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUv Q29uc3RhbnRzLmgKK0BAIC05LDYgKzksNyBAQAorICNpZm5kZWYgTElCQU5HTEVfQ09OU1RBTlRT X0hfCisgI2RlZmluZSBMSUJBTkdMRV9DT05TVEFOVFNfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGRl Zj4KKyAjaW5jbHVkZSAiY29tbW9uL3BsYXRmb3JtLmgiCisgCisgI2luY2x1ZGUgPHN0ZGludC5o PgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlM RC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9C VUlMRC5nbgorQEAgLTk5LDYgKzk5LDEzIEBAIGlmIChpc193aW4gJiYgIWlzX21zYW4gJiYgY3Vy cmVudF9jcHUgIT0KKyAgICAgICB9IGVsc2UgeworICAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBb ICI6bm9fYXNtX2NvbmZpZyIgXQorICAgICAgIH0KKysgICAgfSBlbHNlIGlmIChjdXJyZW50X2Nw dSA9PSAicHBjNjQiKSB7CisrICAgICAgaWYgKGlzX2xpbnV4KSB7CisrICAgICAgICAjIFRPRE86 IHBwYzY0IChiZSkgY2hlY2sKKysgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGlu dXhfcHBjNjRsZQorKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsg Ijpub19hc21fY29uZmlnIiBdCisrICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgIHB1Ymxp Y19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKyAgICAgfQorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KK0BAIC02MjMsNyAr NjIzLDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaQorICAgICAg ICJicmVha3BhZC9zcmMvY2xpZW50L21pbmlkdW1wX2ZpbGVfd3JpdGVyLmgiLAorICAgICAgICJi cmVha3BhZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRGLmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3Jj L2NvbW1vbi9jb252ZXJ0X1VURi5oIiwKKy0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51 eC9icmVha3BhZF9nZXRjb250ZXh0LlMiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xp bnV4L2VsZl9jb3JlX2R1bXAuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4 L2VsZl9jb3JlX2R1bXAuaCIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxm dXRpbHMuY2MiLAorQEAgLTY2Myw2ICs2NjIsMTUgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9t ZW9zIHx8IGlzX2FuZHJvaQorIAorICAgICBsaWJzID0gWyAiZGwiIF0KKyAKKysgICAgaWYgKGN1 cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENP TlRFWFQiIF0KKysgICAgICAgIGxpYnMgKz0gWyAidWNvbnRleHQiIF0KKysgICAgfSBlbHNlIHsK KysgICAgICAgIHNvdXJjZXMgKz0gWworKyAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29tbW9u L2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKKysgICAgICAgIF0KKysgICAgfQorKworICAg ICBpbmNsdWRlX2RpcnMgPSBbCisgICAgICAgIi4iLAorICAgICAgICJicmVha3BhZC9zcmMiLAor QEAgLTcxMiw3ICs3MjAsNiBAQCBpZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5k cm9pCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21p bmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdF91dGlscy5jYyIs CisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL3Byb2Nf Y3B1aW5mb19yZWFkZXJfdW5pdHRlc3QuY2MiLAorLSAgICAgICJicmVha3BhZC9zcmMvY29tbW9u L2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHRfdW5pdHRlc3QuY2MiLAorICAgICAgICJicmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXBfdW5pdHRlc3QuY2MiLAorICAgICAgICJi cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2ZpbGVfaWRfdW5pdHRlc3QuY2MiLAorICAgICAgICJi cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2xpbnV4X2xpYmNfc3VwcG9ydF91bml0dGVzdC5jYyIs CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAor QEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk0gUmF3Q29udGV4dENQVTsK KyB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09sZCBSYXdDb250ZXh0Q1BVOworICNlbGlmIGRl ZmluZWQoX19taXBzX18pCisgdHlwZWRlZiBNRFJhd0NvbnRleHRNSVBTIFJhd0NvbnRleHRDUFU7 CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3R5cGVkZWYgTURSYXdDb250ZXh0UFBD NjQgUmF3Q29udGV4dENQVTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVl biBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKK0BAIC0yNzAsNyArMjcwLDU0IEBAIHZv aWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGUKKyAgIG91dC0+ZmxvYXRfc2F2 ZS5maXIgPSBtY29udGV4dC5mcGNfZWlyOworICNlbmRpZgorIH0KKy0jZW5kaWYgIC8vIF9fbWlw c19fCisrCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworKyNpZiAhZGVmaW5lZChf X0dMSUJDX18pCisrI2luY2x1ZGUgPGFzbS9lbGYuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgorKyNlbmRpZgorKworK3VpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlvblBvaW50 ZXIoKSBjb25zdCB7CisrICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07CisrfQor KworK3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBj b25zdCB7CisrICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsK KysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsr KQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4dC5ncF9yZWdzW2ldOworKworKyAgICBv dXQtPmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOworKyAgICBvdXQtPnNycjAgPSBtY29u dGV4dC5ncF9yZWdzW1BUX05JUF07CisrICAgIG91dC0+c3JyMSA9IG1jb250ZXh0LmdwX3JlZ3Nb UFRfTVNSXTsKKysgICAgb3V0LT5jciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsKKysgICAg b3V0LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hFUl07CisrICAgIG91dC0+Y3RyID0gbWNv bnRleHQuZ3BfcmVnc1tQVF9DVFJdOworKworKyNpZmRlZiBfX0dMSUJDX18KKysgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysg ICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBtY29udGV4dC5mcF9yZWdzW2ldOwor KworKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0x XTsKKysjZWxzZQorKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFf UFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9 ICgodWludDY0X3QgKikmbWNvbnRleHQuZnBfcmVncylbaV07CisrCisrICAgICBvdXQtPmZsb2F0 X3NhdmUuZnBzY3IgPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBSRUct MV07CisrI2VuZGlmCisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFS RUFfUFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJb aV0gPSBcCisrICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVswXSkgPDwg MzIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVsxXSwKKysg ICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMl0pIDw8IDMyKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVszXX07CisrCisrICAgIG91dC0+ dnJzYXZlID0gdnJlZ3MudnJzYXZlOworKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9 IHswLCB2cmVncy52c2NyLnZzY3Jfd29yZH07CisrICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92 cnZhbGlkID0gMHhGRkZGRkZGRjsKKyt9CisrI2VuZGlmICAvLyBfX3Bvd2VycGM2NF9fCisgCisg dm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVn cywgc2l6ZV90KiBzaXplKSB7CisgICBhc3NlcnQoZ3BfcmVncyB8fCBzaXplKTsKK0BAIC0yNzks NiArMzI2LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3QKKyAg ICAgKmdwX3JlZ3MgPSBtY29udGV4dC5ncmVnczsKKyAgIGlmIChzaXplKQorICAgICAqc2l6ZSA9 IHNpemVvZihtY29udGV4dC5ncmVncyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgaWYgKGdwX3JlZ3MpCisrICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3BfcmVnczsKKysgIGlm IChzaXplKQorKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncF9yZWdzKTsKKyAjZWxzZQor ICAgaWYgKGdwX3JlZ3MpCisgICAgICpncF9yZWdzID0gJnJlZ3M7CitAQCAtMjk0LDYgKzM0Niwx MSBAQCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlCisgICAgICpmcF9y ZWdzID0gJm1jb250ZXh0LmZwcmVnczsKKyAgIGlmIChzaXplKQorICAgICAqc2l6ZSA9IHNpemVv ZihtY29udGV4dC5mcHJlZ3MpOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGlm IChmcF9yZWdzKQorKyAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcF9yZWdzOworKyAgaWYgKHNp emUpCisrICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwX3JlZ3MpOworICNlbHNlCisgICBp ZiAoZnBfcmVncykKKyAgICAgKmZwX3JlZ3MgPSAmZnByZWdzOworQEAgLTMwMiw0ICszNTksMTMg QEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZQorICNlbmRpZgorIH0K KyAKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3ZvaWQgVGhyZWFkSW5mbzo6R2V0VmVj dG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSkgeworKyAgICBpZiAodl9y ZWdzKQorKyAgICAgICAgKnZfcmVncyA9ICZ2cmVnczsKKysgICAgaWYgKHNpemUpCisrICAgICAg ICAqc2l6ZSA9IHNpemVvZih2cmVncyk7CisrfQorKyNlbmRpZgorKworIH0gIC8vIG5hbWVzcGFj ZSBnb29nbGVfYnJlYWtwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90 aHJlYWRfaW5mby5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFk X2luZm8uaAorQEAgLTY4LDYgKzY4LDEwIEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKKyAgIC8vIFVz ZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdXNlci5oPgorICAgc3RydWN0IHVzZXJf cmVnc19zdHJ1Y3QgcmVnczsKKyAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwor KyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBk ZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCisrICBtY29udGV4dF90IG1jb250ZXh0OworKyAg dnJyZWdzZXRfdCB2cmVnczsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gVXNlIHRo ZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgorICAgbWNvbnRleHRfdCBt Y29udGV4dDsKK0BAIC04NCw2ICs4OCwxMSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7CisgCisgICAv LyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFy ZWEuCisgICB2b2lkIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNp emVfdCogc2l6ZSk7CisrCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFJldHVy bnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgdGhlIHZlY3RvciByZWdpc3RlciBhcmVhLiAoUFBD NjQgb25seSkKKysgIHZvaWQgR2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVf dCogc2l6ZSk7CisrI2VuZGlmCisgfTsKKyAKKyB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFr cGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVy LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVy LmNjCitAQCAtMjU0LDYgKzI1NCw2MCBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29u dGV4dChSYXdDCisgICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gdWMtPnVjX21jb250ZXh0LmZwY19l aXI7ICAvLyBVbnVzZWQuCisgI2VuZGlmCisgfQorKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysKKysjaWZuZGVmIF9fR0xJQkNfXworKyNpbmNsdWRlIDxhc20vZWxmLmg+CisrI2lu Y2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyt1aW50cHRyX3QgVUNvbnRleHRSZWFk ZXI6OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgeworKyAgICByZXR1cm4g dWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdOworK30KKysK Kyt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldEluc3RydWN0aW9uUG9pbnRlcihjb25zdCB1 Y29udGV4dF90KiB1YykgeworKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf TklQXTsKKyt9CisrCisrdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29u dGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90KiB2cmVncykgeworKyAgICBvdXQtPmNv bnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7CisrCisrICAgIGZvciAoaW50IGkg PSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ Z3ByW2ldID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbaV07CisrCisrICAgIG91dC0+bHIgPSB1 Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOworKyAgICBvdXQtPnNycjAgPSB1Yy0+dWNf bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworKyAgICBvdXQtPnNycjEgPSB1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9NU1JdOworKyAgICBvdXQtPmNyID0gdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbUFRfQ0NSXTsKKysgICAgb3V0LT54ZXIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9Y RVJdOworKyAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Cisr CisrI2lmZGVmIF9fR0xJQkNfXworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5H U0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZw cmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOworKworKyAgICBvdXQtPmZsb2F0 X3NhdmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07CisrI2Vsc2UK KysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09V TlQ7IGkrKykKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90 ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtpXTsKKysKKysgICAgb3V0LT5mbG9hdF9zYXZl LmZwc2NyID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJF Ry0xXTsKKysjZW5kaWYKKysKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZF QVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92 cltpXSA9CisrICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMF0pIDw8 IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bMV0sCisr ICAgICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMl0pIDw8IDMyKQorKyAg ICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bM119OworKworKyAgICBv dXQtPnZyc2F2ZSA9IHZyZWdzLT52cnNhdmU7CisrICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92 c2NyID0gezAsIHZyZWdzLT52c2NyLnZzY3Jfd29yZH07CisrICAgIG91dC0+dmVjdG9yX3NhdmUu c2F2ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsKKyt9CisrCisgI2VuZGlmCisgCisgfSAgLy8gbmFt ZXNwYWNlIGdvb2dsZV9icmVha3BhZAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29t bW9uL3Vjb250ZXh0X3JlYWRlci5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmgKK0BAIC01OSw2ICs1OSw5IEBAIHN0cnVjdCBVQ29udGV4dFJl YWRlciB7CisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgIHN0YXRpYyB2b2lkIEZpbGxD UFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZw cmVncyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgc3RhdGljIHZvaWQgRmls bENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKTsKKyAj ZWxzZQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBj b25zdCB1Y29udGV4dF90KiB1Yyk7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVy L2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlv bl9oYW5kbGVyLmNjCitAQCAtMTA1LDYgKzEwNSwxMyBAQAorICNkZWZpbmUgUFJfU0VUX1BUUkFD RVIgMHg1OTYxNmQ2MQorICNlbmRpZgorIAorKy8qIG11c2wgaGFjaywgY2FuJ3QgaW5jbHVkZSBh c20vcHRyYWNlLmggYXMgdGhhdCBjYXVzZXMgY29uZmxpY3RzICovCisrI2lmbmRlZiBfX0dMSUJD X18KKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAhZGVmaW5lZChQVF9OSVApCisrI2Rl ZmluZSBQVF9OSVAgMzIKKysjZW5kaWYKKysjZW5kaWYKKysKKyBuYW1lc3BhY2UgZ29vZ2xlX2Jy ZWFrcGFkIHsKKyAKKyBuYW1lc3BhY2UgeworQEAgLTQ2MSw5ICs0NjgsMTYgQEAgYm9vbCBFeGNl cHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50CisgICAgIG1lbWNweSgmZ19jcmFzaF9jb250 ZXh0Xy5mbG9hdF9zdGF0ZSwgZnBfcHRyLAorICAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29u dGV4dF8uZmxvYXRfc3RhdGUpKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAvLyBPbiBQUEM2NCwgd2UgbXVzdCBjb3B5IFZSIHN0YXRlCisrICB1Y29udGV4dF90KiB1 Y19wdHIgPSAodWNvbnRleHRfdCopdWM7CisrICBpZiAodWNfcHRyLT51Y19tY29udGV4dC52X3Jl Z3MpIHsKKysgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSwgdWNfcHRy LT51Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250ZXh0 Xy52ZWN0b3Jfc3RhdGUpKTsKKysgIH0KKyAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYm ICFkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBB Qkkgb24gQVJNIExpbnV4LgorLSAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlz IGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90CisrICAvLyBJbiBjYXNlIG9mIE1JUFMsIExpbnV4 IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90CisgICAvLyBhbmQgJ2Zsb2F0 X3N0YXRlJyBpcyBub3QgYSBtZW1iZXIgb2YgQ3Jhc2hDb250ZXh0LgorICAgdWNvbnRleHRfdCog dWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOworICAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQuZnBy ZWdzKSB7CitAQCAtNzA4LDExICs3MjIsMTkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0 ZU1pbmlkdW1wKCkgeworICAgfQorICNlbmRpZgorIAorLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJ X18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYg IWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pIFwKKysgICAgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIC8vIEZQ VSBzdGF0ZSBpcyBub3QgcGFydCBvZiBBUk0gRUFCSSB1Y29udGV4dF90LgorICAgbWVtY3B5KCZj b250ZXh0LmZsb2F0X3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZnByZWdzLAor ICAgICAgICAgIHNpemVvZihjb250ZXh0LmZsb2F0X3N0YXRlKSk7CisgI2VuZGlmCisrCisrI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFZlY3RvciByZWdpc3RlcnMgbXVzdCBiZSBj b3BpZWQgb24gUFBDNjQKKysgIG1lbWNweSgmY29udGV4dC52ZWN0b3Jfc3RhdGUsIGNvbnRleHQu Y29udGV4dC51Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAgICAgc2l6ZW9mKGNvbnRleHQudmVj dG9yX3N0YXRlKSk7CisrI2VuZGlmCisrCisgICBjb250ZXh0LnRpZCA9IHN5c19nZXR0aWQoKTsK KyAKKyAgIC8vIEFkZCBhbiBleGNlcHRpb24gc3RyZWFtIHRvIHRoZSBtaW5pZHVtcCBmb3IgYmV0 dGVyIHJlcG9ydGluZy4KK0BAIC03MzMsNiArNzU1LDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVy OjpXcml0ZU1pbmlkdW1wKCkgeworICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICBjb250ZXh0 LnNpZ2luZm8uc2lfYWRkciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4 dC5jb250ZXh0LnVjX21jb250ZXh0LnBjKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDx2 b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSk7CisgI2Vs c2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZv cm0geWV0LiIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hh bmRsZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCitA QCAtMTkyLDcgKzE5MiwxMSBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyIHsKKyAgICAgc2lnaW5m b190IHNpZ2luZm87CisgICAgIHBpZF90IHRpZDsgIC8vIHRoZSBjcmFzaGluZyB0aHJlYWQuCisg ICAgIHVjb250ZXh0X3QgY29udGV4dDsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAvLyBQ UEM2NCdzIEZQIHN0YXRlIGlzIGEgcGFydCBvZiB1Y29udGV4dF90IGxpa2UgTUlQUyBidXQgdGhl IHZlY3RvcgorKyAgICAvLyBzdGF0ZSBpcyBub3QsIHNvIGEgc3RydWN0IGlzIG5lZWRlZC4KKysg ICAgdnN0YXRlX3QgdmVjdG9yX3N0YXRlOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykg JiYgIWRlZmluZWQoX19taXBzX18pCisgICAgIC8vICNpZmRlZiB0aGlzIG91dCBiZWNhdXNlIEZQ IHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIGZvciBMaW51eCBBUk0uCisgICAgIC8vIElu IGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRf dCBzbworICAgICAvLyAnZmxvYXRfc3RhdGUnIGlzIG5vdCByZXF1aXJlZC4KKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKK0BAIC0zMDcsNyAr MzA3LDcgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwgUGFyYWxsZWxDaGlsZAorICAgfQor IAorICAgLy8gV2FpdCBhIHdoaWxlIHVudGlsIHRoZSBjaGlsZCBzaG91bGQgaGF2ZSBjcmFzaGVk LgorLSAgdXNsZWVwKDEwMDAwMDApOworKyAgdXNsZWVwKDIwMDAwMDApOworICAgLy8gS2lsbCB0 aGUgY2hpbGQgaWYgaXQgaXMgc3RpbGwgcnVubmluZy4KKyAgIGtpbGwoY2hpbGQsIFNJR0tJTEwp OworIAorQEAgLTU1OSw2ICs1NTksOCBAQCBjb25zdCB1bnNpZ25lZCBjaGFyIGtJbGxlZ2FsSW5z dHJ1Y3Rpb25bCisgI2lmIGRlZmluZWQoX19taXBzX18pCisgICAvLyBtZmMyIHplcm8sSW1wbCAt IHVzdWFsbHkgaWxsZWdhbCBpbiB1c2Vyc3BhY2UuCisgICAweDQ4LCAweDAwLCAweDAwLCAweDQ4 CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgw MSAvLyBDcmFzaGVzIG9uIGEgdGVzdGVkIFBPV0VSOSBjcHUKKyAjZWxzZQorICAgLy8gVGhpcyBj cmFzaGVzIHdpdGggU0lHSUxMIG9uIHg4Ni94ODYtNjQvYXJtLgorICAgMHhmZiwgMHhmZiwgMHhm ZiwgMHhmZgorQEAgLTc1NCwxMCArNzU2LDEwIEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3Qs IEluc3RydWN0aW9uUG8KKyAKKyAgIC8vIFRoZXNlIGFyZSBkZWZpbmVkIGhlcmUgc28gdGhlIHBh cmVudCBjYW4gdXNlIHRoZW0gdG8gY2hlY2sgdGhlCisgICAvLyBkYXRhIGZyb20gdGhlIG1pbmlk dW1wIGFmdGVyd2FyZHMuCistICAvLyBVc2UgNGsgaGVyZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhh bmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgorKyAgLy8gVXNlIHRoZSBwYWdlIHNpemUgaGVyZSBi ZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgorICAgLy8gaWYg YSBzbWFsbGVyIHNpemUgaXMgcmVxdWVzdGVkLCBhbmQgdGhpcyB0ZXN0IHdhbnRzIHRvCisgICAv LyB0ZXN0IHRoZSB1cHBlciBib3VuZCBvZiB0aGUgbWVtb3J5IHJhbmdlLgorLSAgY29uc3QgdWlu dDMyX3Qga01lbW9yeVNpemUgPSA0MDk2OyAgLy8gYnl0ZXMKKysgIGNvbnN0IHVpbnQzMl90IGtN ZW1vcnlTaXplID0gZ2V0cGFnZXNpemUoKTsgIC8vIGJ5dGVzCisgICBjb25zdCBpbnQga09mZnNl dCA9IGtNZW1vcnlTaXplIC0gc2l6ZW9mKGtJbGxlZ2FsSW5zdHJ1Y3Rpb24pOworIAorICAgY29u c3QgcGlkX3QgY2hpbGQgPSBmb3JrKCk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3Jp dGVyL21pY3JvZHVtcF93cml0ZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0 ZXIvbWljcm9kdW1wX3dyaXRlci5jYworQEAgLTEzOCw3ICsxMzgsOSBAQCBjbGFzcyBNaWNyb2R1 bXBXcml0ZXIgeworICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pY3JvZHVtcEV4dHJhSW5mbyYg bWljcm9kdW1wX2V4dHJhX2luZm8sCisgICAgICAgICAgICAgICAgICAgTGludXhEdW1wZXIqIGR1 bXBlcikKKyAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBO VUxMKSwKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250 ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAorKyNlbGlmICFkZWZpbmVkKF9f QVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICAgICAgICBmbG9hdF9zdGF0ZV8o Y29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAorICNlbmRpZgorICAgICAg ICAgZHVtcGVyXyhkdW1wZXIpLAorQEAgLTMzNyw2ICszMzksOCBAQCBjbGFzcyBNaWNyb2R1bXBX cml0ZXIgeworICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBu b3Qgc3VwcG9ydGVkIChuMzIpIgorICNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgICAgY29uc3QgY2hhciBrQXJjaFtdID0gInBwYzY0IjsKKyAjZWxzZQorICNlcnJvciAi VGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2Vu ZGlmCitAQCAtNDA5LDcgKzQxMyw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICB2b2lk IER1bXBDUFVTdGF0ZSgpIHsKKyAgICAgUmF3Q29udGV4dENQVSBjcHU7CisgICAgIG15X21lbXNl dCgmY3B1LCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOworLSNpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIHZl Y3Rvcl9zdGF0ZV8pOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQo X19taXBzX18pCisgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29u dGV4dF8sIGZsb2F0X3N0YXRlXyk7CisgI2Vsc2UKKyAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxD UFVDb250ZXh0KCZjcHUsIHVjb250ZXh0Xyk7CitAQCAtNjA1LDcgKzYxMSw5IEBAIGNsYXNzIE1p Y3JvZHVtcFdyaXRlciB7CisgICB2b2lkKiBBbGxvYyh1bnNpZ25lZCBieXRlcykgeyByZXR1cm4g ZHVtcGVyXy0+YWxsb2NhdG9yKCktPkFsbG9jKGJ5dGVzKTsgfQorIAorICAgY29uc3QgdWNvbnRl eHRfdCogY29uc3QgdWNvbnRleHRfOworLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb25zdCBn b29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOworKyNlbGlmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICBjb25zdCBnb29n bGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOworICNlbmRpZgorICAg TGludXhEdW1wZXIqIGR1bXBlcl87CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVy L21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVt cF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYworQEAgLTI3OSwxMCArMjc5LDE5 IEBAIFRFU1QoTWljcm9kdW1wV3JpdGVyVGVzdCwgQmFzaWNXaXRoTWFwcGkKKyAgIENyYXNoQW5k R2V0TWljcm9kdW1wKG1hcHBpbmdzLCBNaWNyb2R1bXBFeHRyYUluZm8oKSwgJmJ1Zik7CisgICBB U1NFUlRfVFJVRShDb250YWluc01pY3JvZHVtcChidWYpKTsKKyAKKysgIGludCBwYWdlX3NpemUg PSBnZXRwYWdlc2l6ZSgpOworICNpZmRlZiBfX0xQNjRfXworLSAgQVNTRVJUX05FKHN0ZDo6c3Ry aW5nOjpucG9zLAorLSAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAw MDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKKy0gICAgICAgICAgICAgICAgICAgICAi MzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIC8vIFRo aXMgdGVzdCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIGZvbGxvd2luZyBwYWdlIHNpemVzCisr ICBBU1NFUlRfVFJVRSgocGFnZV9zaXplID09IDQwOTYpIHx8IChwYWdlX3NpemUgPT0gNjU1MzYp KTsKKysgIGlmIChwYWdlX3NpemUgPT0gNDA5NikgeworKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJp bmc6Om5wb3MsCisrICAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAw MDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCisrICAgICAgICAgICAgICAgICAgICAg ICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIH0g ZWxzZSB7CisrICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKKysgICAgICAgICAgICAg IGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMTAwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAw MDEwMDAwICIKKysgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFB QkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOworKyAgfQorICNlbHNlCisgICBBU1NFUlRfTkUoc3Rk OjpzdHJpbmc6Om5wb3MsCisgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDEwMDAgMDAwMDAw MkEgMDAwMDEwMDAgIgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2Nv cmVfZHVtcGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29y ZV9kdW1wZXIuY2MKK0BAIC0xMTcsNiArMTE3LDkgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6Okdl dFRocmVhZEluZm9CeUluZAorICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICBzdGFja19wb2lu dGVyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5n cmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90 Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOworICNl bHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZv cm0geWV0LiIKKyAjZW5kaWYKK0BAIC0yMTIsNyArMjE1LDEwIEBAIGJvb2wgTGludXhDb3JlRHVt cGVyOjpFbnVtZXJhdGVUaHJlYWRzKCkKKyAgICAgICAgIG1lbXNldCgmaW5mbywgMCwgc2l6ZW9m KFRocmVhZEluZm8pKTsKKyAgICAgICAgIGluZm8udGdpZCA9IHN0YXR1cy0+cHJfcGdycDsKKyAg ICAgICAgIGluZm8ucHBpZCA9IHN0YXR1cy0+cHJfcHBpZDsKKy0jaWYgZGVmaW5lZChfX21pcHNf XykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCAzMTsgaSsrKQorKyAgICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3BfcmVnc1tpXSA9IHN0 YXR1cy0+cHJfcmVnW2ldOworKyNlbGlmIGRlZmluZWQoX19taXBzX18pCisgI2lmIGRlZmluZWQo X19BTkRST0lEX18pCisgICAgICAgICBmb3IgKGludCBpID0gRUZfUjA7IGkgPD0gRUZfUjMxOyBp KyspCisgICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3JlZ3NbaSAtIEVGX1IwXSA9IHN0YXR1cy0+ cHJfcmVnW2ldOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBl ci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwor QEAgLTc2NSw3ICs3NjUsOSBAQCBib29sIExpbnV4RHVtcGVyOjpHZXRTdGFja0luZm8oY29uc3Qg dm9pCisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW50X3N0YWNrX3BvaW50ZXIg JiB+KHBhZ2Vfc2l6ZSAtIDEpKTsKKyAKKyAgIC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3Rh Y2sgd2hpY2ggd2UgdHJ5IHRvIGNhcHR1cmUuCistICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtT dGFja1RvQ2FwdHVyZSA9IDMyICogMTAyNDsKKysgIC8vIFRoaXMgbm93IGRlcGVuZHMgb24gcGFn ZV9zaXplIHRvIGF2b2lkIG1pc3NpbmcgZGF0YQorKyAgLy8gb24gc3lzdGVtcyB3aXRoIGxhcmdl ciBwYWdlIHNpemVzLgorKyAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUg PSA4ICogcGFnZV9zaXplOworIAorICAgY29uc3QgTWFwcGluZ0luZm8qIG1hcHBpbmcgPSBGaW5k TWFwcGluZyhzdGFja19wb2ludGVyKTsKKyAgIGlmICghbWFwcGluZykKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCitAQCAtNjMsNyArNjMsOCBAQCBuYW1lc3BhY2Ug Z29vZ2xlX2JyZWFrcGFkIHsKKyAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBf QUJJTzMyKQorIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7CisgI2VsaWYgZGVm aW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgICAgKGRlZmlu ZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQorKyAgICAgKGRlZmluZWQoX19t aXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCisrICAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKKyAjZW5kaWYK KyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRl c3RfaGVscGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVt cGVyX3VuaXR0ZXN0X2hlbHBlci5jYworQEAgLTUxLDYgKzUxLDggQEAKKyAjZGVmaW5lIFRJRF9Q VFJfUkVHSVNURVIgInJjeCIKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICNkZWZpbmUgVElE X1BUUl9SRUdJU1RFUiAiJDEiCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNkZWZp bmUgVElEX1BUUl9SRUdJU1RFUiAicjgiCisgI2Vsc2UKKyAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBu b3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworQEAgLTE1NCwxOSAr MTU0LDI3IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkNvcHlGcm9tUHJvY2VzcygKKyAgIHJl dHVybiB0cnVlOworIH0KKyAKKy1ib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJT ZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQorLXsKKytib29sIExpbnV4UHRyYWNlRHVt cGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKSB7CisgI2lm ZGVmIFBUUkFDRV9HRVRSRUdTRVQKKyAgIHN0cnVjdCBpb3ZlYyBpbzsKKyAgIGluZm8tPkdldEdl bmVyYWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOworLSAgaWYg KHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2 b2lkKikmaW8pID09IC0xKSB7CisrICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwg KHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgeworICAgICByZXR1cm4gZmFs c2U7CisgICB9CisgCisgICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKCZpby5pb3Zf YmFzZSwgJmlvLmlvdl9sZW4pOworLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwg dGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7CisrICBpZiAocHRy YWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlv KSA9PSAtMSkgeworICAgICByZXR1cm4gZmFsc2U7CisgICB9CisrCisrI2lmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdpc3RlcnMgb24gUFBDNjQgdG9v CisrICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7 CisrICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BQQ19WTVgs ICh2b2lkKikmaW8pID09IC0xKSB7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysjZW5kaWYg Ly8gZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworICAgcmV0dXJuIHRydWU7CisgI2Vsc2UKKyAg IHJldHVybiBmYWxzZTsKK0BAIC0zMDMsNiArMzExLDkgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBl cjo6R2V0VGhyZWFkSW5mb0J5SQorICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICBzdGFja19w b2ludGVyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4 dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50 OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOwor ICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxh dGZvcm0geWV0LiIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9s aW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYworQEAgLTQ2Miw2ICs0NjIs OSBAQCBURVNUKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgVmVyaWZ5U3RhY2tSCisgI2VsaWYgZGVm aW5lZChfX21pcHNfXykKKyAgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KKyAgICAg ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250ZXh0LmdyZWdzWzFd KTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIHBpZF90KiBwcm9jZXNzX3Rp ZF9sb2NhdGlvbiA9CisrICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVh ZC5tY29udGV4dC5ncF9yZWdzWzhdKTsKKyAjZWxzZQorICNlcnJvciBUaGlzIHRlc3QgaGFzIG5v dCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgorICNlbmRpZgorQEAgLTU1OSw2ICs1NjIs OCBAQCBURVNUX0YoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBTYW5pdGl6ZVN0CisgICB1aW50cHRy X3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ucmVncy5yY3g7CisgI2VsaWYgZGVmaW5lZChfX21p cHNfXykKKyAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5ncmVn c1sxXTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICB1aW50cHRyX3QgaGVhcF9h ZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3BfcmVnc1s4XTsKKyAjZWxzZQorICNlcnJvciBU aGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgorICNlbmRpZgor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworQEAgLTEz Niw3ICsxMzYsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICAgICAgOiBmZF8obWluaWR1 bXBfZmQpLAorICAgICAgICAgcGF0aF8obWluaWR1bXBfcGF0aCksCisgICAgICAgICB1Y29udGV4 dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCistI2lmICFkZWZpbmVkKF9f QVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jf c3RhdGUgOiBOVUxMKSwKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQorICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+Zmxv YXRfc3RhdGUgOiBOVUxMKSwKKyAjZW5kaWYKKyAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKK0BA IC00NjgsNyArNDcwLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICAgICAgaWYgKCFj cHUuQWxsb2NhdGUoKSkKKyAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgbXlfbWVt c2V0KGNwdS5nZXQoKSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKKy0jaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorKyAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQo KSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJ X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxD UFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOworICNlbHNlCisg ICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4 dF8pOworQEAgLTg5Nyw3ICs5MDEsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICAgIGRp cmVudC0+bG9jYXRpb24ucnZhID0gMDsKKyAgIH0KKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGJvb2wgV3JpdGVDUFVJbmZvcm1hdGlvbihNRFJh d1N5c3RlbUluZm8qIHN5c19pbmZvKSB7CisgICAgIGNoYXIgdmVuZG9yX2lkW3NpemVvZihzeXNf aW5mby0+Y3B1Lng4Nl9jcHVfaW5mby52ZW5kb3JfaWQpICsgMV0gPSB7MH07CisgICAgIHN0YXRp YyBjb25zdCBjaGFyIHZlbmRvcl9pZF9uYW1lW10gPSAidmVuZG9yX2lkIjsKK0BAIC05MTcsNyAr OTIxLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworIAorICAgICAvLyBwcm9jZXNzb3JfYXJj aGl0ZWN0dXJlIHNob3VsZCBhbHdheXMgYmUgc2V0LCBkbyB0aGlzIGZpcnN0CisgICAgIHN5c19p bmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlID0KKy0jaWYgZGVmaW5lZChfX21pcHNfXykKKysj aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9Q UEM2NDsKKysjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICMgaWYgX01JUFNfU0lNID09IF9BQklP MzIKKyAgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfTUlQUzsKKyAjIGVsaWYgX01JUFNfU0lN ID09IF9BQkk2NAorQEAgLTEzMzMsNyArMTMzOSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsK KyAgIGNvbnN0IGNoYXIqIHBhdGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0aGUgbWlu aWR1bSBzaG91bGQgYmUgd3JpdHRlbi4KKyAKKyAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVj b250ZXh0XzsgIC8vIGFsc28gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKKy0jaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9y X3N0YXRlXzsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlw c19fKQorICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0 YXRlXzsgIC8vIGRpdHRvCisgI2VuZGlmCisgICBMaW51eER1bXBlciogZHVtcGVyXzsKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitAQCAtNDgsNiArNDgs OCBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyOworIAorICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9f KQorIHR5cGVkZWYgc3RydWN0IGZwc2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKKysjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisrdHlwZWRlZiB2cnJlZ3NldF90IHZzdGF0ZV90OworICNlbGlm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgdHlwZWRlZiBz dGQ6OnJlbW92ZV9wb2ludGVyPGZwcmVnc2V0X3Q+Ojp0eXBlIGZwc3RhdGVfdDsKKyAjZW5kaWYK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRl c3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJf dW5pdHRlc3QuY2MKK0BAIC03MTUsNiArNzE1LDEyIEBAIFRFU1QoTWluaWR1bXBXcml0ZXJUZXN0 LCBJbnZhbGlkU3RhY2tQb2kKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgY29udGV4dC5j b250ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdID0KKyAgICAg ICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9S RUdfU1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbTURf Q09OVEVYVF9QUEM2NF9SRUdfU1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7Cisg I2Vsc2UKKyAjIGVycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBs YXRmb3JtIHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2Zp bGUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYworQEAgLTY1LDgg KzY1LDcgQEAgYm9vbCBNZW1vcnlNYXBwZWRGaWxlOjpNYXAoY29uc3QgY2hhciogcAorICAgfQor IAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwK Ky0gICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkKKy0KKysgICAo ZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorICAgc3RydWN0IGtlcm5lbF9zdGF0IHN0OworICAgaWYgKHN5c19mc3RhdChm ZCwgJnN0KSA9PSAtMSB8fCBzdC5zdF9zaXplIDwgMCkgeworICNlbHNlCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21l bW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYworQEAgLTE3Niw5ICsxNzYsMTAgQEAgVEVTVF9G KE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBSZW1hcEFmdGVyTQorIFRFU1RfRihNZW1vcnlNYXBwZWRG aWxlVGVzdCwgTWFwV2l0aE9mZnNldCkgeworICAgLy8gUHV0IG1vcmUgZGF0YSBpbiB0aGUgdGVz dCBmaWxlIHRoaXMgdGltZS4gT2Zmc2V0cyBjYW4gb25seSBiZQorICAgLy8gZG9uZSBvbiBwYWdl IGJvdW5kYXJpZXMsIHNvIHdlIG5lZWQgYSB0d28gcGFnZSBmaWxlIHRvIHRlc3QgdGhpcy4KKy0g IGNvbnN0IGludCBwYWdlX3NpemUgPSA0MDk2OworLSAgY2hhciBkYXRhMVsyICogcGFnZV9zaXpl XTsKKy0gIHNpemVfdCBkYXRhMV9zaXplID0gc2l6ZW9mKGRhdGExKTsKKysgIGNvbnN0IGludCBw YWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOworKyAgY2hhciAqZGF0YTEgPSBzdGF0aWNfY2FzdDxj aGFyKj4obWFsbG9jKDIgKiBwYWdlX3NpemUpKTsKKysgIEVYUEVDVF9UUlVFKGRhdGExICE9IE5V TEwpOworKyAgc2l6ZV90IGRhdGExX3NpemUgPSAoMiAqIHBhZ2Vfc2l6ZSk7CisgICBmb3IgKHNp emVfdCBpID0gMDsgaSA8IGRhdGExX3NpemU7ICsraSkgeworICAgICBkYXRhMVtpXSA9IGkgJiAw eDdmOworICAgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYworQEAgLTU3LDggKzU3LDkgQEAg VEVTVChQYWdlQWxsb2NhdG9yVGVzdCwgTGFyZ2VPYmplY3QpIHsKKyAKKyAgIEVYUEVDVF9FUSgw VSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKKyAgIHVpbnQ4X3QqIHAgPSByZWludGVy cHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoMTAwMDApKTsKKysgIHVpbnQ2NF90 IGV4cGVjdGVkX3BhZ2VzID0gMSArICgoMTAwMDAgLSAxKSAvIGdldHBhZ2VzaXplKCkpOworICAg QVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7CistICBFWFBFQ1RfRVEoM1UsIGFsbG9jYXRvci5wYWdl c19hbGxvY2F0ZWQoKSk7CisrICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGFnZXMsIGFsbG9jYXRvci5w YWdlc19hbGxvY2F0ZWQoKSk7CisgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgMTA7ICsraSkg eworICAgICB1aW50OF90KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9y LkFsbG9jKGkpKTsKKyAgICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nv ci9leHBsb2l0YWJpbGl0eV9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlf bGludXguY2MKK0BAIC0yMDIsMTIgKzIwMiwxNCBAQCBib29sIEV4cGxvaXRhYmlsaXR5TGludXg6 OkVuZGVkT25JbGxlZ2FsCisgICAvLyBDaGVjayBhcmNoaXRlY3R1cmUgYW5kIHNldCBhcmNoaXRl Y3R1cmUgdmFyaWFibGUgdG8gY29ycmVzcG9uZGluZyBmbGFnCisgICAvLyBpbiBvYmpkdW1wLgor ICAgc3dpdGNoIChjb250ZXh0LT5HZXRDb250ZXh0Q1BVKCkpIHsKKysjaWYgZGVmaW5lZChfX2kz ODYpIHx8IGRlZmluZWQoX194ODZfNjQpCisgICAgIGNhc2UgTURfQ09OVEVYVF9YODY6CisgICAg ICAgYXJjaGl0ZWN0dXJlID0gImkzODYiOworICAgICAgIGJyZWFrOworICAgICBjYXNlIE1EX0NP TlRFWFRfQU1ENjQ6CisgICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODY6eDg2LTY0IjsKKyAgICAg ICBicmVhazsKKysjZW5kaWYKKyAgICAgZGVmYXVsdDoKKyAgICAgICAvLyBVbnN1cHBvcnRlZCBh cmNoaXRlY3R1cmUuIE5vdGUgdGhhdCBBUk0gYXJjaGl0ZWN0dXJlcyBhcmUgbm90CisgICAgICAg Ly8gc3VwcG9ydGVkIGJlY2F1c2Ugb2JqZHVtcCBkb2VzIG5vdCBzdXBwb3J0IEFSTS4KKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv cHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBs b2l0YWJpbGl0eV91bml0dGVzdC5jYworQEAgLTEwNCw2ICsxMDQsOCBAQCBFeHBsb2l0YWJpbGl0 eUZvcihjb25zdCBzdHJpbmcmIGZpbGVuYW1lCisgfQorIAorIFRFU1QoRXhwbG9pdGFiaWxpdHlU ZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgeworKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9u bHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KKysjaWYgIWRlZmlu ZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQorICAg QVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKKyAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigiYXNjaWlfcmVhZF9hdi5kbXAiKSk7CisgICBBU1NFUlRf RVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorQEAgLTEzNiw5ICsxMzgs MTIgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naQorICAgICAgICAg ICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Nsb2JiZXJfd3JpdGUuZG1wIikpOworICAg QVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfTE9XLAorICAgICAgICAg ICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2NvbmRpdGlvbmFsLmRtcCIpKTsKKysjZW5k aWYKKyB9CisgCisgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgewor Ky8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xh c3MgbGludXggbWFjaGluZS4KKysjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZf NjQpCisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9JTlRFUkVT VElORywKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfbnVsbF9yZWFkX2F2 LmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJ R0gsCitAQCAtMTcxLDcgKzE3Niw4IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGlu dXhFbmdpbmUKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfZXhlY3V0YWJs ZV9oZWFwLmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklM SVRZX0hJR0gsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2ptcF90b19t b2R1bGVfbm90X2V4ZV9yZWdpb24uZG1wIikpOworLSNpZm5kZWYgX1dJTjMyCisrI2VuZGlmCisr I2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2 XzY0KSkKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gs CisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX25vbndyaXRh YmxlX21vZHVsZS5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lU QUJJTElUWV9ISUdILAorQEAgLTE4MiwxMCArMTg4LDEwIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlU ZXN0LCBUZXN0TGludXhFbmdpbmUKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGlu dXhfd3JpdGVfdG9fb3V0c2lkZV9tb2R1bGVfdmlhX21hdGguZG1wIikpOworICAgQVNTRVJUX0VR KGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJTkcsCisgICAgICAgICAg ICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX3VuZGVyXzRrLmRtcCIpKTsKKy0j ZW5kaWYgIC8vIF9XSU4zMgorKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMyKSAmJiAoIWRlZmlu ZWQoX19pMzg2KSAmJiAhZGVmaW5lZChfX3g4Nl82NCkpCisgfQorIAorLSNpZm5kZWYgX1dJTjMy CisrI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9f eDg2XzY0KSkKKyBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIERpc2Fzc2VtYmxl Qnl0ZXNUZXN0KSB7CisgICBBU1NFUlRfRkFMU0UoRXhwbG9pdGFiaWxpdHlMaW51eFRlc3Q6OkRp c2Fzc2VtYmxlQnl0ZXMoIiIsIE5VTEwsIDUsIE5VTEwpKTsKKyAgIHVpbnQ4X3QgYnl0ZXNbNl0g PSB7MHhjNywgMHgwLCAweDUsIDB4MCwgMHgwLCAweDB9OworQEAgLTMwMSw2ICszMDcsNyBAQCBU RVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIENhbGN1CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd3Jp dGVfYWRkcmVzcykpOworIH0KKy0jZW5kaWYgIC8vIF9XSU4zMgorKyNlbmRpZiAgLy8gIWRlZmlu ZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQorKwor IAorIH0gIC8vIG5hbWVzcGFjZQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTIt Y29yZS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYworQEAg LTc3LDYgKzc3LDggQEAKKyAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX01JUFMKKyAjZWxpZiBkZWZp bmVkKF9fYWFyY2g2NF9fKQorICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fQUFSQ0g2NAorKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX1BQQzY0Cisg I2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19hcm1fXykKK0BAIC04Nyw2ICs4OSw4IEBAIHR5cGVk ZWYgdXNlcl9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7CisgI2VsaWYgZGVmaW5lZCAoX19taXBzX18p CisgLy8gVGhpcyBmaWxlLWxvY2FsIHR5cGVkZWYgc2ltcGxpZmllcyB0aGUgc291cmNlIGNvZGUu CisgdHlwZWRlZiBncmVnc2V0X3QgdXNlcl9yZWdzX3N0cnVjdDsKKysjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisrdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyB1c2VyX3JlZ3Nfc3RydWN0Owor ICNlbmRpZgorIAorIHVzaW5nIGdvb2dsZV9icmVha3BhZDo6TURUeXBlSGVscGVyOworQEAgLTMy Miw2ICszMjYsMTIgQEAgc3RydWN0IENyYXNoZWRQcm9jZXNzIHsKKyAjaWYgZGVmaW5lZChfX2Fh cmNoNjRfXykKKyAgICAgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKKyAjZW5kaWYKKysjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBtY29udGV4dF90IG1jb250ZXh0OworKyNlbmRp ZgorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIG1jb250ZXh0X3QgbWNvbnRleHQ7 CisrI2VuZGlmCisgICAgIHVpbnRwdHJfdCBzdGFja19hZGRyOworICAgICBjb25zdCB1aW50OF90 KiBzdGFjazsKKyAgICAgc2l6ZV90IHN0YWNrX2xlbmd0aDsKK0BAIC01MzUsNiArNTQ1LDM4IEBA IFBhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHIKKyAgIHRocmVhZC0+bWNv bnRleHQuZnBjX2VpciA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZmlyOworICNlbmRpZgorIH0KKysj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrc3RhdGljIHZvaWQKKytQYXJzZVRocmVhZFJl Z2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJlYWQsCisrICAgICAgICAgICAgICAg ICAgICAgY29uc3QgTWluaWR1bXBNZW1vcnlSYW5nZSYgcmFuZ2UpIHsKKysgIGNvbnN0IE1EUmF3 Q29udGV4dFBQQzY0KiByYXdyZWdzID0gcmFuZ2UuR2V0RGF0YTxNRFJhd0NvbnRleHRQUEM2ND4o MCk7CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5U OyBpKyspCisrICAgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tpXSA9IHJhd3JlZ3MtPmdwcltp XTsKKysKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdID0gcmF3cmVncy0+bHI7 CisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSA9IHJhd3JlZ3MtPnNycjA7Cisr ICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXSA9IHJhd3JlZ3MtPnNycjE7CisrICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXSA9IHJhd3JlZ3MtPmNyOworKyAgdGhyZWFk LT5tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0gPSByYXdyZWdzLT54ZXI7CisrICB0aHJlYWQtPm1j b250ZXh0LmdwX3JlZ3NbUFRfQ1RSXSA9IHJhd3JlZ3MtPmN0cjsKKysgIHRocmVhZC0+bWNvbnRl eHQudl9yZWdzLT52cnNhdmUgPSByYXdyZWdzLT52cnNhdmU7CisrCisrICBmb3IgKGludCBpID0g MDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgIHRo cmVhZC0+bWNvbnRleHQuZnBfcmVnc1tpXSA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZnByZWdzW2ld OworKworKyAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXSA9IHJhd3JlZ3MtPmZs b2F0X3NhdmUuZnBzY3I7CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVB UkVBX1BQQ19WUl9DT1VOVDsgaSsrKSB7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3Mt PnZycmVnc1tpXVswXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaCA+PiAz MjsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzFdID0gcmF3cmVn cy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoOworKyAgICAgIHRocmVhZC0+bWNvbnRleHQu dl9yZWdzLT52cnJlZ3NbaV1bMl0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxv dyA+PiAzMjsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzNdID0g cmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3c7CisrICB9CisrCisrICB0aHJlYWQt Pm1jb250ZXh0LnZfcmVncy0+dnNjci52c2NyX3dvcmQgPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5z YXZlX3ZzY3IubG93ICYgMHhGRkZGRkZGRjsKKyt9CisrCisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMg Y29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgorICNlbmRpZgor QEAgLTYyMyw2ICs2NjUsMTIgQEAgUGFyc2VTeXN0ZW1JbmZvKGNvbnN0IE9wdGlvbnMmIG9wdGlv bnMsCisgIyBlbHNlCisgIyAgZXJyb3IgIlRoaXMgbWlwcyBBQkkgaXMgY3VycmVudGx5IG5vdCBz dXBwb3J0ZWQgKG4zMikiCisgIyBlbmRpZgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgIGlmIChzeXNpbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlICE9IE1EX0NQVV9BUkNISVRF Q1RVUkVfUFBDNjQpIHsKKysgICAgZnByaW50ZihzdGRlcnIsCisrICAgICAgICAgICAgIlRoaXMg dmVyc2lvbiBvZiBtaW5pZHVtcC0yLWNvcmUgb25seSBzdXBwb3J0cyBQUEM2NC5cbiIpOworKyAg ICBleGl0KDEpOworKyAgfQorICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVu IHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9D T05UUklCVVRPUlMKK0BAIC0xMywzICsxMyw0IEBAIE1hcmsgTWVudG92YWkgPG1hcmtAY2hyb21p dW0ub3JnPgorIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9taXVtLm9yZz4KKyBTY290dCBHcmFo YW0gPHNjb3R0bWdAY2hyb21pdW0ub3JnPgorIEpvc2h1YSBQZXJhemEgPGpwZXJhemFAY2hyb21p dW0ub3JnPgorK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5hc3Rhcy5pbz4KKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGlu dXgvc3lzL3VzZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCitAQCAtMTUsNiArMTUsNyBA QAorICNpZm5kZWYgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCisgI2RlZmluZSBD UkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGRlZj4K KyAjaW5jbHVkZV9uZXh0IDxzeXMvdXNlci5oPgorIAorICNpbmNsdWRlIDxmZWF0dXJlcy5oPgor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQu aAorQEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7Cisg ICB1aW50NjRfdCBmaXI7CisgfTsKKyAKKysvLyEgXGJyaWVmIHBwYzY0LXNwZWNpZmljIGZsYWdz IGZvciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCisrLy8hIEJhc2VkIG9uIG1pbmlkdW1w X2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKKytlbnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0Rmxh Z3MgOiB1aW50MzJfdCB7CisrICAvLyEgXGJyaWVmIElkZW50aWZpZXMgdGhlIGNvbnRleHQgYXMg UFBDNjQuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAweDAxMDAwMDAwLAorKworKyAgLy8h IFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3Rl cnMuCisrICAvLyEKKysgIC8vISBSZWdpc3RlcnMgYHIwYC1gcjMxYCwgYG5pcGAsIGBtc3JgLCBg bHJgLCBldGMuIGFyZSB2YWxpZC4KKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgPSBrTWlu aWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0 ZXMgdGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KKysgIC8vIQorKyAg Ly8hIFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAgYXJlIHZhbGlkLgorKyAga01pbmlk dW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAw MDA4LAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2ZWMv Vk1YIHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBgdnNj cmAsIGB2cnNhdmVgLgorKyAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yID0ga01pbmlkdW1w Q29udGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRo ZSB2YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGwg PSBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAgICB8CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyB8CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IKKyt9OworKworKy8vISBc YnJpZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4KKysv LyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZC4KKytzdHJ1Y3Qg TWluaWR1bXBDb250ZXh0UFBDNjQgeworKyAgdWludDY0X3QgY29udGV4dF9mbGFnczsKKysKKysg IC8vISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KKysgIHVpbnQ2NF90IG5pcDsK KysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0X3QgY2Ny OworKyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3QgY3RyOwor KworKyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCisrICBkb3VibGUgZnBy ZWdzWzMyXTsKKysKKysgIC8vISBcYnJpZWYgRlBVIHN0YXR1cyByZWdpc3Rlci4KKysgIGRvdWJs ZSBmcHNjcjsKKysKKysgIC8vISBcYnJpZWYgQWx0aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVycy4K KysgIHN0cnVjdCB7CisrICAgICAgLy8hIFxicmllZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAxMjhi aXRzLgorKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOworKyAgICAgIHVpbnQxMjhf c3RydWN0IHNhdmVfdnNjcjsKKysKKysgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQg Zm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCisrICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1WzRd OworKworKyAgICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lzdGVyLgorKyAgICAgIHVpbnQzMl90 IHNhdmVfdnJzYXZlOworKworKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3Ig YnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KKysgICAgICB1aW50MzJfdCBzYXZlX3BhZDZbN107Cisr ICB9IHZyZWdzOworK307CisrCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlm ICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX0hfCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRl ci5jYworQEAgLTEwMSw2ICsxMDEsMTMgQEAgTWluaWR1bXBDb250ZXh0V3JpdGVyOjpDcmVhdGVG cm9tU25hcHNobworICAgICAgIGJyZWFrOworICAgICB9CisgCisrICAgIGNhc2Uga0NQVUFyY2hp dGVjdHVyZVBQQzY0OiB7CisrICAgICAgY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8TWluaWR1 bXBDb250ZXh0UFBDNjRXcml0ZXI+KCk7CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDxNaW5pZHVt cENvbnRleHRQUEM2NFdyaXRlcio+KGNvbnRleHQuZ2V0KCkpCisrICAgICAgICAgIC0+SW5pdGFs aXplRnJvbVNuYXBzaG90KGNvbnRleHRfc25hcHNob3QtPnBwYzY0KTsKKysgICAgICBicmVhazsK KysgICAgfQorKworICAgICBkZWZhdWx0OiB7CisgICAgICAgTE9HKEVSUk9SKSA8PCAidW5rbm93 biBjb250ZXh0IGFyY2hpdGVjdHVyZSAiCisgICAgICAgICAgICAgICAgICA8PCBjb250ZXh0X3Nu YXBzaG90LT5hcmNoaXRlY3R1cmU7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIu aAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKK0BAIC0zMTUsNiArMzE1LDQ1 IEBAIGNsYXNzIE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlciBmaW5hbAorICAgRElTQUxMT1df Q09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcik7CisgfTsKKyAKKytj bGFzcyBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENv bnRleHRXcml0ZXIgeworKyBwdWJsaWM6CisrICBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigp OworKyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgb3ZlcnJpZGU7CisrCisrICAvLyEg XGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4dFBQQzY0IGJhc2VkIG9uIFxhIGNv bnRleHRfc25hcHNob3QuCisrICAvLyEKKysgIC8vISBccGFyYW1baW5dIGNvbnRleHRfc25hcHNo b3QgVGhlIGNvbnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNvdXJjZSBkYXRhLgorKyAgLy8hCisr ICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUuIE5vIG11dGF0aW9uIG9mIGNvbnRl eHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUKKysgIC8vISAgICAgY2FsbGluZyB0aGlzIG1ldGhvZCwg YW5kIGl0IGlzIG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8gYWx0ZXIKKysgIC8vISAgICAgY29u dGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCisrICB2b2lkIEluaXRhbGl6ZUZyb21T bmFwc2hvdChjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3QpOworKworKyAg Ly8hIFxicmllZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgdGhh dCB0aGlzIG9iamVjdCB3aWxsCisrICAvLyEgICAgIHdyaXRlLgorKyAgLy8hCisrICAvLyEgXGF0 dGVudGlvbiBUaGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBwb2ludGVyIHRvIHRoaXMgb2JqZWN0 4oCZcyBwcml2YXRlCisrICAvLyEgICAgIGRhdGEgc28gdGhhdCBhIGNhbGxlciBjYW4gcG9wdWxh dGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGRpcmVjdGx5LgorKyAgLy8hICAgICBUaGlzIGlzIGRv bmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFjZXMgdG8gZWFjaCBmaWVsZCBpbiB0 aGUKKysgIC8vISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291bGQgYmUgdW53aWVsZHkgYW5kIGN1 bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0YWtlbgorKyAgLy8hICAgICB0byBwb3B1bGF0ZSB0aGUg Y29udGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29udGV4dCBzdHJ1Y3R1cmUKKysgIC8v ISAgICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRoaXMgb2JqZWN0IGlzIGluIHRoZSAj a1N0YXRlTXV0YWJsZQorKyAgLy8hICAgICBzdGF0ZS4KKysgIE1pbmlkdW1wQ29udGV4dFBQQzY0 KiBjb250ZXh0KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9CisrCisrIHByb3RlY3RlZDoKKysgIC8v IE1pbmlkdW1wV3JpdGFibGU6CisrICBib29sIFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJbnRlcmZh Y2UqIGZpbGVfd3JpdGVyKSBvdmVycmlkZTsKKysKKysgIC8vIE1pbmlkdW1wQ29udGV4dFdyaXRl cjoKKysgIHNpemVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworKworKyBwcml2YXRl OgorKyAgTWluaWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87CisrCisrICBESVNBTExPV19DT1BZ X0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIpOworK307CisrCisgfSAgLy8g bmFtZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5J RFVNUF9DT05URVhUX1dSSVRFUl9IXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVy X3Rlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCitAQCAt MjEzLDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgTUlQUzY0X0Zyb21T CisgICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0TUlQUzY0LCBrU2VlZCk7Cisg fQorIAorK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9aZXJvcykgeworKyAgRW1w dHlDb250ZXh0VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0 UFBDNjQ+KAorKyAgICBFeHBlY3RNaW5pZHVtcENvbnRleHRQUEM2NCk7CisrfQorKworK1RFU1Qo TWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9Gcm9tU25hcHNob3QpIHsKKysgIGNvbnN0ZXhw ciB1aW50MzJfdCBrU2VlZCA9IDY0OworKyAgQ1BVQ29udGV4dFBQQzY0IGNvbnRleHRfcHBjNjQ7 CisrICBDUFVDb250ZXh0IGNvbnRleHQ7CisrICBjb250ZXh0LnBwYzY0ID0gJmNvbnRleHRfcHBj NjQ7CisrICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KCZjb250ZXh0LCBrU2VlZCk7CisrICBG cm9tU25hcHNob3RUZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRl eHRQUEM2ND4oCisrICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQsIGtT ZWVkKTsKKyt9CisrCisgfSAgLy8gbmFtZXNwYWNlCisgfSAgLy8gbmFtZXNwYWNlIHRlc3QKKyB9 ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3Jp dGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYworQEAgLTEzNSw2 ICsxMzUsOCBAQCBzdGQ6OnN0cmluZyBNaW5pZHVtcE1pc2NJbmZvRGVidWdCdWlsZFN0CisgICBz dGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHMiOworICNlbGlmIGRlZmluZWQoQVJD SF9DUFVfTUlQUzY0RUwpCisgICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2 NCI7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKysgIHN0YXRpYyBjb25zdGV4cHIg Y2hhciBrQ1BVW10gPSAicHBjNjQiOworICNlbHNlCisgI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0 aGlzIENQVQorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y2FwdHVyZV9tZW1vcnkuY2MKK0BAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgQ2FwdHVyZU1lbW9y eTo6UG9pbnRlZFRvQnlDb250ZXh0KGMKKyAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6 c2l6ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgeworICAgICBNYXliZUNhcHR1cmVNZW1v cnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsKKyAgIH0KKysjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIE1heWJlQ2FwdHVyZU1lbW9yeUFy b3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKKysgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7CisrICAgIE1heWJl Q2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+cmVnc1tpXSk7Cisr ICB9CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0 ZWN0dXJlLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKK0BAIC00Myw3ICs0MywxMCBA QCBlbnVtIENQVUFyY2hpdGVjdHVyZSB7CisgICBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMLAorIAor ICAgLy8hIFxicmllZiA2NC1iaXQgTUlQU0VMLgorLSAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVM CisrICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwsCisrCisrICAvLyEgXGJyaWVmIDY0LWJpdCBQ UEM2NC4KKysgIGtDUFVBcmNoaXRlY3R1cmVQUEM2NAorIH07CisgCisgfSAgLy8gbmFtZXNwYWNl IGNyYXNocGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4 dC5jYworQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVjdGlv blBvaW50ZXIoCisgICAgICAgcmV0dXJuIGFybS0+cGM7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVj dHVyZUFSTTY0OgorICAgICAgIHJldHVybiBhcm02NC0+cGM7CisrICAgIGNhc2Uga0NQVUFyY2hp dGVjdHVyZVBQQzY0OgorKyAgICAgIHJldHVybiBwcGM2NC0+bmlwOworICAgICBkZWZhdWx0Ogor ICAgICAgIE5PVFJFQUNIRUQoKTsKKyAgICAgICByZXR1cm4gfjB1bGw7CitAQCAtMTg1LDYgKzE4 Nyw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9pbnRlcigpIGNvbnMKKyAgICAgICBy ZXR1cm4gYXJtLT5zcDsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAgICAg cmV0dXJuIGFybTY0LT5zcDsKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6CisrICAg ICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOworICAgICBkZWZhdWx0OgorICAgICAgIE5PVFJFQUNI RUQoKTsKKyAgICAgICByZXR1cm4gfjB1bGw7CitAQCAtMTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BV Q29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2 XzY0OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKKyAgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlTUlQUzY0RUw6CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgorICAg ICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODY6CisgICAgIGNh c2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2NvbnRleHQuaAorQEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRN SVBTNjQgeworICAgdWludDY0X3QgZmlyOworIH07CisgCisrLy8hIFxicmllZiBBIGNvbnRleHQg c3RydWN0dXJlIGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4KKytzdHJ1Y3QgQ1BVQ29udGV4dFBQ QzY0IHsKKysgIHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJl Z3NbMzJdOworKyAgdWludDY0X3QgY2NyOworKyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3Qg bG5rOworKyAgdWludDY0X3QgY3RyOworKyAgZG91YmxlIGZwcmVnc1szMl07CisrICBkb3VibGUg ZnBzY3I7CisrICBzdHJ1Y3QgeworKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKKysg ICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOworKyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsK KysgIH0gdnJlZ3M7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2Fw YWJsZSBvZiBjYXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVkCisgLy8hICAgICBD UFUgYXJjaGl0ZWN0dXJlLgorIHN0cnVjdCBDUFVDb250ZXh0IHsKK0BAIC0zODIsNiArNDAwLDcg QEAgc3RydWN0IENQVUNvbnRleHQgeworICAgICBDUFVDb250ZXh0QVJNNjQqIGFybTY0OworICAg ICBDUFVDb250ZXh0TUlQUyogbWlwc2VsOworICAgICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7 CisrICAgIENQVUNvbnRleHRQUEM2NCogcHBjNjQ7CisgICB9OworIH07CisgCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvY3B1X2NvbnRleHRfbGludXguaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xp bnV4LmgKK0BAIC0xNSw2ICsxNSw3IEBACisgI2lmbmRlZiBDUkFTSFBBRF9TTkFQU0hPVF9MSU5V WF9DUFVfQ09OVEVYVF9MSU5VWF9IXworICNkZWZpbmUgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhf Q1BVX0NPTlRFWFRfTElOVVhfSF8KKyAKKysjaW5jbHVkZSA8Y3N0cmluZz4KKyAjaW5jbHVkZSAi YnVpbGQvYnVpbGRfY29uZmlnLmgiCisgI2luY2x1ZGUgInNuYXBzaG90L2NwdV9jb250ZXh0Lmgi CisgI2luY2x1ZGUgInNuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgiCitAQCAtMTc0LDYg KzE3NSw3NiBAQCB2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0TUlQUygKKyAKKyAjZW5kaWYgIC8v IEFSQ0hfQ1BVX01JUFNfRkFNSUxZIHx8IERPWFlHRU4KKyAKKysjaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpIHx8IERPWFlHRU4KKysKKysvLyEgXGJyaWVmIEluaXRhbGl6ZXMgYSBD UFVDb250ZXh0UFBDNjQgc3RydWN0dXJlIGZyb20gbmF0aXZlIGNvbnRleHQKKysvLyEgICAgIHN0 cnVjdHVyZXMgb24gTGludXguCisrLy8hCisrLy8hIFxwYXJhbVtpbl0gdGhyZWFkX2NvbnRleHQg VGhlIG5hdGl2ZSB0aHJlYWQgY29udGV4dC4KKysvLyEgXHBhcmFtW2luXSBmbG9hdF9jb250ZXh0 IFRoZSBuYXRpdmUgZmxvYXQgY29udGV4dC4KKysvLyEgXHBhcmFtW2luXSB2ZWN0b3JfY29udGV4 dCBUaGUgbmF0aXZlIHZlY3RvciBjb250ZXh0LgorKy8vISBccGFyYW1bb3V0XSBjb250ZXh0IFRo ZSBDUFVDb250ZXh0UFBDNjQgc3RydWN0dXJlIHRvIGluaXRhbGl6ZS4KKyt0ZW1wbGF0ZSA8dHlw ZW5hbWUgVHJhaXRzPgorK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKKysgICAgY29u c3QgVGhyZWFkQ29udGV4dDo6dDY0X3QmIHRocmVhZF9jb250ZXh0LAorKyAgICBjb25zdCBGbG9h dENvbnRleHQ6OmY2NF90JiBmbG9hdF9jb250ZXh0LAorKyAgICBjb25zdCBWZWN0b3JDb250ZXh0 Ojp2NjRfdCYgdmVjdG9yX2NvbnRleHQsCisrICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4 dCogY29udGV4dCkgeworKworKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0 Lmdwciwgc2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKKysgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9j b250ZXh0Lm5pcDsKKysgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKKysgIGNv bnRleHQtPmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKKysgIGNvbnRleHQtPnhlciA9IHRocmVh ZF9jb250ZXh0LnhlcjsKKysgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKKysg IGNvbnRleHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKKysKKysgIG1lbWNweShjb250ZXh0 LT5mcHJlZ3MsIGZsb2F0X2NvbnRleHQuZnByZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7 CisrICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBzY3I7CisrCisrICBmb3IgKHVp bnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7CisrICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJb aV0gPSB7CisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8 PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzFdLAorKyAgICAgICgo KHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkgPDwgMzIpIHwKKysgICAgICAg IHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQorKyAgICB9OworKyAgfQorKyAgY29udGV4dC0+ dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNhdmU7CisrICBjb250ZXh0LT52 cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93 b3JkfTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KKyt2b2lkIEluaXRpYWxp emVDUFVDb250ZXh0UFBDNjQoCisrICAgIGNvbnN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCAmdGhy ZWFkX2NvbnRleHQsCisrICAgIGNvbnN0IFNpZ25hbEZsb2F0Q29udGV4dDY0ICZmbG9hdF9jb250 ZXh0LAorKyAgICBjb25zdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgJnZlY3Rvcl9jb250ZXh0LAor KyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKKysKKysgIG1lbWNw eShjb250ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5yZWdzLCBzaXplb2YoY29udGV4dC0+cmVn cykpOworKyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOworKyAgY29udGV4dC0+ bXNyID0gdGhyZWFkX2NvbnRleHQubXNyOworKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRl eHQuY2NyOworKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOworKyAgY29udGV4 dC0+bG5rID0gdGhyZWFkX2NvbnRleHQubG5rOworKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2Nv bnRleHQuY3RyOworKworKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5y ZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7CisrICBjb250ZXh0LT5mcHNjciA9IGZsb2F0 X2NvbnRleHQuZnBzY3I7CisrCisrICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7 CisrICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7CisrICAgICAgKCgodWludDY0X3Qp dmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2Nv bnRleHQudnJyZWdzW2ldWzFdLAorKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZy cmVnc1tpXVsyXSkgPDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsz XQorKyAgICB9OworKyAgfQorKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3Jf Y29udGV4dC52cnNhdmU7CisrICBjb250ZXh0LT52cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2 NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsKKyt9CisrCisrI2VuZGlmCisgfSAg Ly8gbmFtZXNwYWNlIGludGVybmFsCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVi dWdfcmVuZGV6dm91c190ZXN0LmNjCitAQCAtMTkyLDYgKzE5Miw4IEBAIHZvaWQgVGVzdEFnYWlu c3RUYXJnZXQoUHRyYWNlQ29ubmVjdGlvbioKKyAgICAgICAgICAgICAgIGRldmljZSA9PSAwICYm IGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRzb10iOworICNpZiBkZWZpbmVkKEFS Q0hfQ1BVX1g4NikKKyAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9 ICJsaW51eC1nYXRlLnNvLiI7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKysgICAg ICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC12ZHNvNjQuc28u IjsKKyAjZWxzZQorICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtdID0g ImxpbnV4LXZkc28uc28uIjsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXgu Y2MKK0BAIC0zMjMsNiArMzIzLDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVh ZENvbnRleHQKKyAgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ubWlwczY0 KTsKKyB9CisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrCisrdGVt cGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KKytzdGF0aWMgYm9vbCBSZWFkQ29udGV4dChQcm9jZXNz UmVhZGVyTGludXgqIHJlYWRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRk cmVzcyBjb250ZXh0X2FkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUg VHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsKKysgIGNvbnN0IFByb2Nlc3NNZW1v cnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7CisrCisrICBMaW51eFZNQWRkcmVzcyBncF9y ZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0 LCBncF9yZWdzKTsKKysKKysgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFkQ29udGV4dCB0 aHJlYWRfY29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFkKGdwX3JlZ3NfYWRkcmVzcywgc2l6 ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0KSkgeworKyAgICBMT0coRVJST1Ip IDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQor KworKyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBt Y29udGV4dCkgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yo dHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7CisrCisrICB0eXBlbmFtZSBUcmFp dHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250ZXh0OworKyAgaWYgKCFtZW1vcnktPlJlYWQo ZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCksICZmcF9jb250ZXh0KSkgeworKyAg ICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3JlZ3MhIjsKKysgICAgcmV0dXJuIGZh bHNlOworKyAgfQorKworKyAgTGludXhWTUFkZHJlc3Mgdl9yZWdzX3B0cl9hZGRyZXNzID0gY29u dGV4dF9hZGRyZXNzICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIHZteF9yZXNlcnZlKSArIDg7 CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3RvckNvbnRleHQgdl9jb250ZXh0Owor KyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRyZXNzLCBzaXplb2Yodl9jb250ZXh0 KSwgJnZfY29udGV4dCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCB2X3Jl Z3MhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgSW5pdGlhbGl6ZUNQVUNvbnRl eHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250ZXh0LCBmcF9jb250ZXh0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2X2NvbnRleHQsIGRlc3RfY29udGV4dCk7CisrCisr ICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdGVtcGxhdGU8PgorK2Jvb2wgRXhjZXB0aW9uU25hcHNo b3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKKysgICAgUHJvY2Vzc1JlYWRl ckxpbnV4KiByZWFkZXIsCisrICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgewor KyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OworKyAgY29u dGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7CisrCisrICByZXR1cm4gaW50ZXJu YWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisrICAgICAgcmVhZGVyLCBjb250ZXh0 X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKKyt9CisrCisrdGVtcGxhdGU8PgorK2Jvb2wgRXhj ZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMyPigKKysgICAg UHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRf YWRkcmVzcykgeworKyAgLy8gUFBDNjQgaXMgNjQtYml0CisrICByZXR1cm4gZmFsc2U7CisrfQor KworICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorIAorIGJvb2wgRXhjZXB0aW9uU25h cHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVy LAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKK0BAIC04NCw2ICs4NCw4IEBAIGNsYXNz IEV4Y2VwdGlvblNuYXBzaG90TGludXggZmluYWwgOiBwdWIKKyAjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKQorICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7CisgICAgIENQVUNv bnRleHRNSVBTNjQgbWlwczY0OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7CisgI2VuZGlmCisgICB9IGNvbnRleHRfdW5p b25fOworICAgQ1BVQ29udGV4dCBjb250ZXh0XzsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25f c25hcHNob3RfbGludXhfdGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hv dF9saW51eF90ZXN0LmNjCitAQCAtMjk2LDcgKzI5NiwyOCBAQCB2b2lkIEV4cGVjdENvbnRleHQo Y29uc3QgQ1BVQ29udGV4dCYgYWN0CisgICAgICAgICAgICAgMCk7CisgI3VuZGVmIENQVV9BUkNI X05BTUUKKyB9CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrdXNpbmcg TmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7CisgCisrdm9pZCBJbml0aWFsaXplQ29udGV4 dChOYXRpdmVDUFVDb250ZXh0KiBjb250ZXh0KSB7CisrICBmb3IgKHNpemVfdCByZWcgPSAwOyBy ZWcgPCAzMjsgKytyZWcpIHsKKysgICAgY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyZWdd ID0gcmVnOworKyAgfQorKworKyAgbWVtc2V0KCZjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz LCA0NCwKKysgICAgICBzaXplb2YoY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncykpOworK30K KysKKyt2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBO YXRpdmVDUFVDb250ZXh0JiBleHBlY3RlZCkgeworKyAgRVhQRUNUX0VRKGFjdHVhbC5hcmNoaXRl Y3R1cmUsIGtDUFVBcmNoaXRlY3R1cmVQUEM2NCk7CisrCisrICBmb3IgKHNpemVfdCByZWcgPSAw OyByZWcgPCAzMjsgKytyZWcpIHsKKysgICAgRVhQRUNUX0VRKGFjdHVhbC5wcGM2NC0+cmVnc1ty ZWddLCBleHBlY3RlZC51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10pOworKyAgfQorKworKyAgRVhQ RUNUX0VRKG1lbWNtcChhY3R1YWwucHBjNjQtPmZwcmVncywgZXhwZWN0ZWQudWNfbWNvbnRleHQu ZnBfcmVncywKKysgICAgICAgICAgICBzaXplb2YoYWN0dWFsLnBwYzY0LT5mcHJlZ3MpKSwgMCk7 CisrfQorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJv Y2Vzc19yZWFkZXJfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51 eC5jYworQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nlc3NSZWFkZXJMaW51eDo6VGhyZWFk OjpJbml0aWFsCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHN0YWNr X3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0 LnQ2NC5yZWdzWzI5XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhy ZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjldOworKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgc3RhY2tfcG9pbnRlciA9IHRocmVhZF9pbmZvLnRocmVh ZF9jb250ZXh0LnQ2NC5ncHJbMV07CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2Nv bnRleHQuaAorQEAgLTQyMiw2ICs0MjIsOTMgQEAgc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29u dGV4dDxDb250ZXh0VAorICAgICAgICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7 CisgI2VuZGlmCisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrCisr c3RydWN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCB7CisrICB1aW50NjRfdCByZWdzWzMyXTsKKysg IHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IG9yaWdfcjM7Cisr ICB1aW50NjRfdCBjdHI7CisrICB1aW50NjRfdCBsbms7CisrICB1aW50NjRfdCB4ZXI7CisrICB1 aW50NjRfdCBjY3I7CisrICB1aW50NjRfdCBzb2Z0ZTsKKysgIHVpbnQ2NF90IHRyYXA7CisrICB1 aW50NjRfdCBkYXI7CisrICB1aW50NjRfdCBkc2lzcjsKKysgIHVpbnQ2NF90IHJlc3VsdDsKKysg IHVpbnQ2NF90IGRzY3I7CisrICB1aW50NjRfdCBmcHIwWzNdOworK307CisrCisrc3RydWN0IFNp Z25hbEZsb2F0Q29udGV4dDY0IHsKKysgIGRvdWJsZSByZWdzWzMyXTsKKysgIGRvdWJsZSBmcHNj cjsKKyt9OworKworK3N0cnVjdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgeworKyAgaW50MzJfdCB2 cnJlZ3NbMzJdWzRdOworKyAgc3RydWN0IHsKKysgICAgaW50MzJfdCBfX3BhZFszXTsKKysgICAg aW50MzJfdCB2c2NyX3dvcmQ7CisrICB9IHZzY3I7CisrICBpbnQzMl90IHZyc2F2ZTsKKysgIGlu dDMyX3QgX19wYWRbM107CisrfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKKysK KysKKysjcHJhZ21hIHBhY2socG9wKQorK3N0cnVjdCBNQ29udGV4dDY0IHsKKysgIHVpbnQ2NF90 IHJlc2VydmVkWzRdOworKyAgaW50MzJfdCBzaWduYWw7CisrICBpbnQzMl90IF9fcGFkMDsKKysg IHVpbnQ2NF90IGhhbmRsZXI7CisrICB1aW50NjRfdCBvbGRtYXNrOworKyAgdWludDY0X3QgcHRf cmVnc19wdHI7CisrICBTaWduYWxUaHJlYWRDb250ZXh0NjQgZ3BfcmVnczsKKysgIFNpZ25hbEZs b2F0Q29udGV4dDY0ICBmcF9yZWdzOworKyAgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICp2X3JlZ3M7 CisrI2lmZGVmIF9fR0xJQkNfXworKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVs2OV07CisrI2Vsc2UK KysgIGludDY0X3Qgdm14X3Jlc2VydmVbMTAxXTsKKysjZW5kaWYKKyt9OworKworK3N0cnVjdCBD b250ZXh0VHJhaXRzNjQgOiBwdWJsaWMgVHJhaXRzNjQgeworKyAgdXNpbmcgTUNvbnRleHQgPSBN Q29udGV4dDY0OworKyAgdXNpbmcgU2lnbmFsVGhyZWFkQ29udGV4dCA9IFNpZ25hbFRocmVhZENv bnRleHQ2NDsKKysgIHVzaW5nIFNpZ25hbEZsb2F0Q29udGV4dCA9IFNpZ25hbEZsb2F0Q29udGV4 dDY0OworKyAgdXNpbmcgU2lnbmFsVmVjdG9yQ29udGV4dCA9IFNpZ25hbFZlY3RvckNvbnRleHQ2 NDsKKysgIHVzaW5nIENQVUNvbnRleHQgPSBDUFVDb250ZXh0UFBDNjQ7CisrfTsKKysKKytzdHJ1 Y3QgQ29udGV4dFRyYWl0czMyIDogcHVibGljIFRyYWl0czMyIHt9OworKworK3N0cnVjdCBVQ29u dGV4dCB7CisrICB1aW50NjRfdCBmbGFnczsKKysgIHVpbnQ2NF90IGxpbms7CisrICBTaWduYWxT dGFjazxDb250ZXh0VHJhaXRzNjQ+IHN0YWNrOworKyAgU2lnc2V0PENvbnRleHRUcmFpdHM2ND4g c2lnbWFzazsKKysgIE1Db250ZXh0NjQgbWNvbnRleHQ7CisrfTsKKysjcHJhZ21hIHBhY2socHVz aCwgMSkKKysKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihVQ29udGV4dCkgPT0gc2l6ZW9mKHVjb250 ZXh0X3QpLAorKyAgICAgICAgICAgICAgInVjb250ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOworK3N0 YXRpY19hc3NlcnQoc2l6ZW9mKE1Db250ZXh0NjQpID09IHNpemVvZihtY29udGV4dF90KSwKKysg ICAgICAgICAgICAgICJtY29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0 KHNpemVvZihTaWduYWxUaHJlYWRDb250ZXh0NjQpID09IHNpemVvZihncmVnc2V0X3QpLAorKyAg ICAgICAgICAgICAgImdyZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChz aXplb2YoU2lnbmFsRmxvYXRDb250ZXh0NjQpID09IHNpemVvZihmcHJlZ3NldF90KSwKKysgICAg ICAgICAgICAgICJmcHJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KHNp emVvZihTaWduYWxWZWN0b3JDb250ZXh0NjQpID09IHNpemVvZih2cnJlZ3NldF90KSwKKysgICAg ICAgICAgICAgICJ2cnJlZ3NldF90IHNpemUgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KG9m ZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgPT0KKysgICAgICAgICAgICAgIG9mZnNldG9mKHVj b250ZXh0X3QsIHVjX21jb250ZXh0KSwgIm1jb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOworK3N0 YXRpY19hc3NlcnQob2Zmc2V0b2YoTUNvbnRleHQ2NCwgZ3BfcmVncykgPT0KKysgICAgICAgICAg ICAgIG9mZnNldG9mKG1jb250ZXh0X3QsIGdwX3JlZ3MpLCAiZ3BfcmVncyBvZmZzZXQgbWlzbWF0 Y2giKTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZB TUlMWQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYworQEAgLTIwNCw2ICsyMDQsOCBAQCBDUFVB cmNoaXRlY3R1cmUgU3lzdGVtU25hcHNob3RMaW51eDo6R2V0CisgI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBwcm9jZXNzX3JlYWRlcl8tPklzNjRCaXQoKSA/ IGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDoga0NQVUFyY2hpdGVjdHVyZU1JUFNFTDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKKysgIHJldHVybiBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7CisgI2Vsc2UK KyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQorICNlbmRpZgorQEAgLTIxOSw2ICsy MjEsOSBAQCB1aW50MzJfdCBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVSZXZpc2lvCisgI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9u IE1JUFMKKyAgIHJldHVybiAwOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0dXJuIDA7CisgI2Vs c2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQorICNlbmRpZgorQEAgLTIzOSw2 ICsyNDQsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVWZW5kCisgI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxl IG9uIE1JUFMKKyAgIHJldHVybiBzdGQ6OnN0cmluZygpOworKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAg cmV0dXJuIHN0ZDo6c3RyaW5nKCk7CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hp dGVjdHVyZQorICNlbmRpZgorQEAgLTM3Miw2ICszODAsOSBAQCBib29sIFN5c3RlbVNuYXBzaG90 TGludXg6Ok5YRW5hYmxlZCgpIGNvCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiBmYWxzZTsKKysj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIC8vIE5vdCB5ZXQgaW1wbGVt ZW50ZWQgb24gUFBDNjQKKysgIHJldHVybiBmYWxzZTsKKyAjZWxzZQorICNlcnJvciBQb3J0Lgor ICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9k dWxlcy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYworQEAgLTExMCw2ICsxMTAs OCBAQCBib29sIFdyaXRlVGVzdE1vZHVsZShjb25zdCBiYXNlOjpGaWxlUGF0CisgICBtb2R1bGUu ZWhkci5lX21hY2hpbmUgPSBFTV9BQVJDSDY0OworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQ U0VMKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAgbW9kdWxlLmVoZHIuZV9tYWNo aW5lID0gRU1fTUlQUzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorKyAgbW9kdWxl LmVoZHIuZV9tYWNoaW5lID0gRU1fUFBDNjQ7CisgI2VuZGlmCisgCisgICBtb2R1bGUuZWhkci5l X3ZlcnNpb24gPSBFVl9DVVJSRU5UOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9s aW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYworQEAgLTE4 Niw2ICsxODYsMTQgQEAgYm9vbCBUaHJlYWRTbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFBybwor ICAgICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjMyLAorICAgICAgICAg Y29udGV4dF8ubWlwc2VsKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZB TUlMWSkKKysgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsK KysgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OworKyAgSW5pdGlhbGl6 ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KAorKyAgICAgIHRocmVhZC50aHJlYWRf aW5mby50aHJlYWRfY29udGV4dC50NjQsCisrICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0 X2NvbnRleHQuZjY0LAorKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby52ZWN0b3JfY29udGV4dC52 NjQsCisrICAgICAgY29udGV4dF8ucHBjNjQpOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2Vu ZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAorQEAgLTY4LDYgKzY4LDggQEAgY2xhc3MgVGhy ZWFkU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpCisgICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKKyAgICAgQ1BVQ29udGV4 dE1JUFM2NCBtaXBzNjQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisr ICAgIENQVUNvbnRleHRQUEM2NCBwcGM2NDsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRp ZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5j YworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYworQEAgLTU2LDYgKzU2LDExIEBAIGJv b2wgQXV4aWxpYXJ5VmVjdG9yOjpSZWFkKFB0cmFjZUNvbm5lY3QKKyAgICAgaWYgKHR5cGUgPT0g QVRfSUdOT1JFKSB7CisgICAgICAgY29udGludWU7CisgICAgIH0KKysjaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIGlmICh0eXBlID09IEFUX0lHTk9SRVBQQykgeworKyAg ICAgIGNvbnRpbnVlOworKyAgICB9CisrI2VuZGlmCisgICAgIGlmICghTWFwSW5zZXJ0T3JSZXBs YWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikpIHsKKyAgICAgICBMT0coRVJST1Ip IDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7CisgICAgICAgcmV0dXJuIGZhbHNlOworLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bGludXgvcHRyYWNlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworQEAgLTM5OSw2ICszOTks NjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAorICAgcmV0dXJuIHRydWU7Cisg fQorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKy8vIFBQQzY0IGhh cyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2UgMi42LjI3IChldmVuIGJlZm9yZSB4 ODYgaGFkIGl0KS4KKysvLyBUaGF0IG1lYW5zIHdlIGNhbiBzaW1wbHkgdXNlIFBUUkFDRV9HRVRS RUdFU0VULgorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlvbj4KKytib29sIEdldFJl Z2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGluYXRpb24qIGRlc3QsIGJvb2wgY2Fu X2xvZykgeworKyAgaW92ZWMgaW92OworKyAgaW92Lmlvdl9iYXNlID0gcmVpbnRlcnByZXRfY2Fz dDx2b2lkKj4oZGVzdCk7CisrICBpb3YuaW92X2xlbiA9IHNpemVvZigqZGVzdCk7CisrICBpZiAo cHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2V0 KSwgJmlvdikgIT0gMCkgeworKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAicHRyYWNl IjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgaWYgKGlvdi5pb3ZfbGVuICE9IHNpemVv ZigqZGVzdCkpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5leHBlY3RlZCBy ZWdpc3RlcnMgc2l6ZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIHJldHVybiB0cnVl OworK30KKysKKytib29sIEdldFZlY3RvclJlZ2lzdGVyczY0KHBpZF90IHRpZCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNvbnRleHQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJldHVybiBHZXRSZWdpc3RlclNldCh0 aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9sb2cpOworK30KKysKKytib29sIEdl dEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0 KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2FuX2xvZyk7CisrfQorKworK2Jvb2wg R2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBU aHJlYWRDb250ZXh0JiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRy ZXNzKiBhZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAg Ly8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgc2luY2UgdGhlIHRo cmVhZCBwb2ludGVyCisrICAvLyBpcyBzdG9yZWQgaW4gR1BSIDEzLgorKyAgVGhyZWFkQ29udGV4 dDo6dDY0X3QgdGM7CisrICBpZiAoIUdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJTVEFUVVMsICZ0 YywgY2FuX2xvZykpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5hYmxlIHRv IGdldCB0aHJlYWQgcG9pbnRlciEiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICAq YWRkcmVzcyA9IHRjLmdwclsxM107CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrLy8gU3R1 YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2FibGUgb24gUFBDNjQKKytib29sIEdl dEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0KKytib29sIEdl dFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhy ZWFkQ29udGV4dCAmY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVz cyAqYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJu IGZhbHNlOyB9CisrCisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BV X1g4Nl9GQU1JTFkKK0BAIC00OTUsNiArNTUzLDkgQEAgYm9vbCBQdHJhY2VyOjpHZXRUaHJlYWRJ bmZvKHBpZF90IHRpZCwgVAorICAgaWYgKGlzXzY0X2JpdF8pIHsKKyAgICAgcmV0dXJuIEdldEdl bmVyYWxQdXJwb3NlUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dGhyZWFkX2NvbnRleHQsIGNhbl9s b2dfKSAmJgorICAgICAgICAgICAgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHRpZCwgJmlu Zm8tPmZsb2F0X2NvbnRleHQsIGNhbl9sb2dfKSAmJgorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKKysgICAgICAgICAgIEdldFZlY3RvclJlZ2lzdGVyczY0KHRpZCwgJmluZm8t PnZlY3Rvcl9jb250ZXh0LCBjYW5fbG9nXykgJiYKKysjZW5kaWYKKyAgICAgICAgICAgIEdldFRo cmVhZEFyZWE2NCh0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+dGhyZWFk X2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmluZm8tPnRocmVhZF9zcGVj aWZpY19kYXRhX2FkZHJlc3MsCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51 eC90aHJlYWRfaW5mby5oCitAQCAtMzksNiArMzksMTMgQEAgc3RydWN0IHVzZXJfdmZwX2V4YyB7 CisgI2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+CisgI2VuZGlmCisgCisrI2lmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysj aWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlm CisrI2VuZGlmCisrCisgbmFtZXNwYWNlIGNyYXNocGFkIHsKKyAKKyAvLyEgXGJyaWVmIFRoZSBz ZXQgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycyBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWls eS4KK0BAIC05MCw2ICs5Nyw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgeworICAgICB1aW50MzJf dCBjcDBfc3RhdHVzOworICAgICB1aW50MzJfdCBjcDBfY2F1c2U7CisgICAgIHVpbnQzMl90IHBh ZGRpbmcxXzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8g UFBDNjQgaXMgNjQtYml0CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hf Q1BVX1g4Nl9GQU1JTFkKK0BAIC0xNDMsNiArMTUyLDIxIEBAIHVuaW9uIFRocmVhZENvbnRleHQg eworICAgICB1aW50NjRfdCBjcDBfYmFkdmFkZHI7CisgICAgIHVpbnQ2NF90IGNwMF9zdGF0dXM7 CisgICAgIHVpbnQ2NF90IGNwMF9jYXVzZTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKKysgICAgLy8gUmVmbGVjdHMgc3RydWN0IHB0X3JlZ3MgaW4gYXNtL3B0cmFjZS5o LgorKyAgICB1aW50NjRfdCBncHJbMzJdOworKyAgICB1aW50NjRfdCBuaXA7CisrICAgIHVpbnQ2 NF90IG1zcjsKKysgICAgdWludDY0X3Qgb3JpZ19ncHIzOworKyAgICB1aW50NjRfdCBjdHI7Cisr ICAgIHVpbnQ2NF90IGxuazsKKysgICAgdWludDY0X3QgeGVyOworKyAgICB1aW50NjRfdCBjY3I7 CisrICAgIHVpbnQ2NF90IHNvZnRlOworKyAgICB1aW50NjRfdCB0cmFwOworKyAgICB1aW50NjRf dCBkYXI7CisrICAgIHVpbnQ2NF90IGRzaXNyOworKyAgICB1aW50NjRfdCByZXN1bHQ7CisgI2Vs c2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0x NTQsNiArMTc4LDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7CisgICB1c2luZyBOYXRpdmVUaHJl YWRDb250ZXh0ID0gdXNlcl9yZWdzOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpCisgLy8gTm8gYXBwcm9wcmlhdGUgTmF0aXZlVGhyZWFkc0NvbnRleHQgdHlwZSBhdmFpbGFi bGUgZm9yIE1JUFMKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHVz aW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSBzdHJ1Y3QgcHRfcmVnczsKKyAjZWxzZQorICNlcnJv ciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWSB8fCBBUkNIX0NQVV9BUk02 NAorQEAgLTIyOSw2ICsyNTUsOSBAQCB1bmlvbiBGbG9hdENvbnRleHQgeworICAgICB9IGZwcmVn c1szMl07CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1aW50MzJfdCBmcHVfaWQ7CisrI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIENyYXNocGFkJ3MgUFBD IHN1cHBvcnQgaXMgNjQtYml0IG9ubHksIHNvIHRoaXMKKysgICAgLy8gMzJiaXQtb25seSBzdHJ1 Y3QgaXMgZGVjbGFyZWQgYXMgZW1wdHkuCisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYg IC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0yNjMsNiArMjkyLDEwIEBAIHVuaW9uIEZsb2F0 Q29udGV4dCB7CisgICAgIGRvdWJsZSBmcHJlZ3NbMzJdOworICAgICB1aW50MzJfdCBmcGNzcjsK KyAgICAgdWludDMyX3QgZnB1X2lkOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQorKyAgICAvLyBSZWZsZWN0cyBmcHJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCisrICAg IGRvdWJsZSBmcHJlZ3NbMzJdOworKyAgICBkb3VibGUgZnBzY3I7CisgI2Vsc2UKKyAjZXJyb3Ig UG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0yOTEsNiArMzI0LDgg QEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGY2NCkgPT0g c2l6ZW9mKHVzZXJfZnBzaW1kX3N0cnVjdCksICJTaXplIG1pc21hdGNoIik7CisgI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAvLyBObyBhcHByb3ByaWF0ZSBmbG9hdGluZyBw b2ludCBjb250ZXh0IG5hdGl2ZSB0eXBlIGZvciBhdmFpbGFibGUgTUlQUy4KKysjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGY2NCkg PT0gc2l6ZW9mKGZwcmVnc2V0X3QpLCAiU2l6ZSBtaXNtYXRjaCIpOworICNlbHNlCisgI2Vycm9y IFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODYKK0BAIC0yOTgsNiArMzMzLDI2IEBAIHVu aW9uIEZsb2F0Q29udGV4dCB7Cisgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3N0YW5kYXJkX2xheW91 dDxGbG9hdENvbnRleHQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICJOb3Qgc3RhbmRhcmQgbGF5 b3V0Iik7CisgCisrLy8hIFxicmllZiBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciBhbiBh cmNoaXRlY3R1cmUgZmFtaWx5CisrdW5pb24gVmVjdG9yQ29udGV4dCB7CisrICBzdHJ1Y3QgdjMy X3Qge30gdjMyOworKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIF9fYXR0 cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpIC8vIFZlY3RvciBjb250ZXh0IG11c3QgYmUgZG91 Ymxld29yZCBhbGlnbmVkLgorKyNlbmRpZgorKyAgc3RydWN0IHY2NF90IHsKKysjaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIFJlZmxlY3RzIHZycmVnc2V0X3QgaW4g c3lzL3Vjb250ZXh0LmgKKysgICAgdWludDMyX3QgdnJyZWdzWzMyXVs0XTsKKysgICAgc3RydWN0 IHsKKysgICAgICB1aW50MzJfdCBfX3BhZFszXTsKKysgICAgICB1aW50MzJfdCB2c2NyX3dvcmQ7 CisrICAgIH0gdnNjcjsKKysgICAgdWludDMyX3QgdnJzYXZlOworKyAgICB1aW50MzJfdCBfX3Bh ZFszXTsKKysjZW5kaWYKKysgIH0gdjY0OworK307CisrCisgLy8hIFxicmllZiBBIGNvbGxlY3Rp b24gb2YgYHB0cmFjZWAtYWJsZSBpbmZvcm1hdGlvbiBhYm91dCBhIHRocmVhZC4KKyBzdHJ1Y3Qg VGhyZWFkSW5mbyB7CisgICBUaHJlYWRJbmZvKCk7CitAQCAtMzA5LDYgKzM2NCw5IEBAIHN0cnVj dCBUaHJlYWRJbmZvIHsKKyAgIC8vISBcYnJpZWYgVGhlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVy cyBmb3IgdGhlIHRocmVhZC4KKyAgIEZsb2F0Q29udGV4dCBmbG9hdF9jb250ZXh0OworIAorKyAg Ly8hIFxicmllZiAoT3B0aW9uYWwpIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIHRoZSB0 aHJlYWQuCisrICBWZWN0b3JDb250ZXh0IHZlY3Rvcl9jb250ZXh0OworKworICAgLy8hIFxicmll ZiBUaGUgdGhyZWFkLWxvY2FsIHN0b3JhZ2UgYWRkcmVzcyBmb3IgdGhlIHRocmVhZC4KKyAgIExp bnV4Vk1BZGRyZXNzIHRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3M7CisgfTsKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21p c2MvY2FwdHVyZV9jb250ZXh0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKK0BAIC02 OSw2ICs2OSw3IEBAIHVzaW5nIE5hdGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90OworIC8vISAg ICAgbWFjT1MvTGludXgvRnVjaHNpYSB8IHg4Nl82NCAgICAgICB8IGAlJXJkaWAKKyAvLyEgICAg IExpbnV4ICAgICAgICAgICAgICAgfCBBUk0vQVJNNjQgICAgfCBgcjBgL2B4MGAKKyAvLyEgICAg IExpbnV4ICAgICAgICAgICAgICAgfCBNSVBTL01JUFM2NCAgfCBgJGEwYAorKy8vISAgICAgTGlu dXggICAgICAgICAgICAgICB8IFBQQzY0ICAgICAgICB8IGByM2AKKyAvLyEKKyAvLyEgICAgIEFk ZGl0aW9uYWxseSwgdGhlIHZhbHVlIGBMUmAgb24gQVJNL0FSTTY0IHdpbGwgYmUgdGhlIHJldHVy biBhZGRyZXNzIG9mCisgLy8hICAgICB0aGlzIGZ1bmN0aW9uLgorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJl X2NvbnRleHRfbGludXguUworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUworQEAg LTMyLDcgKzMyLDcgQEAKKyAgIC5iYWxpZ24gNCwgMHgwCisgICAudHlwZSBDQVBUVVJFQ09OVEVY VF9TWU1CT0wsICVmdW5jdGlvbgorICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MMiwgJWZ1 bmN0aW9uCistI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKysjZWxpZiBkZWZpbmVkKF9fbWlwc19f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAuYmFsaWduIDQsIDB4MAorICNlbmRpZgor IAorQEAgLTQyMyw0ICs0MjMsMjE0IEBAIENBUFRVUkVDT05URVhUX1NZTUJPTDI6CisgICBqciAk cmEKKyAKKyAgIC5zZXQgYXQKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBT dG9yZSByMC1yMzEKKysgIHN0ZCAwLCAweGU4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1swXQorKyAgc3RkIDEsIDB4ZjAoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzWzFdCisrICBzdGQgMiwgMHhmOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMl0KKysgIC8vIG5vdGUgdGhhdCByMydzIG9yaWdpbmFsIHZhbHVlIHdhcyBsb3N0Cisr ICBzdGQgMywgMHgxMDAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbM10KKysg IHN0ZCA0LCAweDEwOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s0XQorKyAg c3RkIDUsIDB4MTEwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzVdCisrICBz dGQgNiwgMHgxMTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNl0KKysgIHN0 ZCA3LCAweDEyMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s3XQorKyAgc3Rk IDgsIDB4MTI4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzhdCisrICBzdGQg OSwgMHgxMzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOV0KKysgIHN0ZCAx MCwgMHgxMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMF0KKysgIHN0ZCAx MSwgMHgxNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMV0KKysgIHN0ZCAx MiwgMHgxNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMl0KKysgIHN0ZCAx MywgMHgxNTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxM10KKysgIHN0ZCAx NCwgMHgxNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNF0KKysgIHN0ZCAx NSwgMHgxNjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNV0KKysgIHN0ZCAx NiwgMHgxNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNl0KKysgIHN0ZCAx NywgMHgxNzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxN10KKysgIHN0ZCAx OCwgMHgxNzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOF0KKysgIHN0ZCAx OSwgMHgxODAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOV0KKysgIHN0ZCAy MCwgMHgxODgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMF0KKysgIHN0ZCAy MSwgMHgxOTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMV0KKysgIHN0ZCAy MiwgMHgxOTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMl0KKysgIHN0ZCAy MywgMHgxYTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syM10KKysgIHN0ZCAy NCwgMHgxYTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNF0KKysgIHN0ZCAy NSwgMHgxYjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNV0KKysgIHN0ZCAy NiwgMHgxYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNl0KKysgIHN0ZCAy NywgMHgxYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syN10KKysgIHN0ZCAy OCwgMHgxYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOF0KKysgIHN0ZCAy OSwgMHgxZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOV0KKysgIHN0ZCAz MCwgMHgxZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMF0KKysgIHN0ZCAz MSwgMHgxZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMV0KKysKKysgIC8v IEZvciBOSVAsIHdlIGNhbiB1c2UgdGhlIHZhbHVlIGluIHRoZSBsaW5rIHJlZ2lzdGVyCisrICBt ZmxyIDAKKysgIHN0ZCAwLCAweDFlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz W1BUX05JUF0KKysKKysgIC8vIENUUgorKyAgbWZjdHIgMAorKyAgc3RkIDAsIDB4MjAwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXQorKworKyAgLy8gRm9yIExOSywg d2UnbGwgdXNlIHRoZSBjYWxsZXIncyBMUiBzYXZlIGFyZWEgKDIgc3RhY2sgZnJhbWVzIHVwKS4K KysgIC8vIHI0IGNhbiBiZSB1c2VkIGFzIGEgc2NyYXRjaCByZWdpc3RlciBzaW5jZSBpdCBoYXMg YWxyZWFkeSBiZWVuIHNhdmVkLgorKyAgbGQgNCwgMCgxKQorKyAgbGQgNCwgMTYoNCkKKysgIHN0 ZCA0LCAweDIwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0xOS10KKysK KysgIC8vIFhFUgorKyAgbWZ4ZXIgMAorKyAgc3RkIDAsIDB4MjEwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXQorKworKyAgLy8gQ0NSCisrICBtZmNyIDAKKysgIHN0 ZCAwLCAweDIxOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0KKysK KysgIC8vIE1TUiwgb3JpZ19yMywgTVEsIFRSQVAsIERBUiwgRFNJU1IsIFJFU1VMVCwgRFNDUiwK KysgIC8vIG5vdCB1c2VkIG9yIG5vdCByZWxldmFudCwgIHplcm8gdGhlbSBvdXQuCisrICBsaSA0 LCAwCisrICBzdGQgNCwgMHgxZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9NU1JdCisrICBzdGQgNCwgMHgxZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9PUklHX1IzXQorKyAgc3RkIDQsIDB4MjIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfTVFdCisrICBzdGQgNCwgMHgyMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9UUkFQXQorKyAgc3RkIDQsIDB4MjMwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfREFSXQorKyAgc3RkIDQsIDB4MjM4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfRFNJU1JdCisrICBzdGQgNCwgMHgyNDAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9SRVNVTFRdCisrICBzdGQgNCwgMHgyNDgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EU0NSXQorKworKyAgLy8gVXBkYXRlIGNv bnRleHQtPnVjX21jb250ZXh0LnJlZ3MgdG8gcG9pbnQgdG8gZ3BfcmVncworKyAgYWRkaSAwLCAz LCAweGU4CisrICBzdGQgMCwgMHhlMCgzKQorKworKyAgLy8gU2F2ZSBmbG9hdGluZyBwb2ludCBy ZWdpc3RlcnMgMC0zMQorKyAgc3RmZCAwLCAweDI2OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1swXQorKyAgc3RmZCAxLCAweDI3MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1sxXQorKyAgc3RmZCAyLCAweDI3OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syXQorKyAgc3RmZCAzLCAweDI4MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1szXQorKyAgc3RmZCA0LCAweDI4OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s0XQorKyAgc3RmZCA1LCAweDI5MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s1XQorKyAgc3RmZCA2LCAweDI5OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s2XQorKyAgc3RmZCA3LCAweDJhMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s3XQorKyAgc3RmZCA4LCAweDJhOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s4XQorKyAgc3RmZCA5LCAweDJiMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s5XQorKyAgc3RmZCAxMCwgMHgyYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1sxMF0KKysgIHN0ZmQgMTEsIDB4MmMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMTFdCisrICBzdGZkIDEyLCAweDJjOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzEyXQorKyAgc3RmZCAxMywgMHgyZDAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1sxM10KKysgIHN0ZmQgMTQsIDB4MmQ4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMTRdCisrICBzdGZkIDE1LCAweDJlMCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzE1XQorKyAgc3RmZCAxNiwgMHgyZTgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1sxNl0KKysgIHN0ZmQgMTcsIDB4MmYwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMTddCisrICBzdGZkIDE4LCAweDJmOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzE4XQorKyAgc3RmZCAxOSwgMHgzMDAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1sxOV0KKysgIHN0ZmQgMjAsIDB4MzA4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMjBdCisrICBzdGZkIDIxLCAweDMxMCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzIxXQorKyAgc3RmZCAyMiwgMHgzMTgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMl0KKysgIHN0ZmQgMjMsIDB4MzIwKDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjNdCisrICBzdGZkIDI0LCAweDMyOCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI0XQorKyAgc3RmZCAyNSwgMHgzMzAoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNV0KKysgIHN0ZmQgMjYsIDB4MzM4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjZdCisrICBzdGZkIDI3LCAweDM0MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI3XQorKyAgc3RmZCAyOCwgMHgzNDgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syOF0KKysgIHN0ZmQgMjksIDB4MzUwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjldCisrICBzdGZkIDMwLCAweDM1OCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMwXQorKyAgc3RmZCAzMSwgMHgzNjAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMV0KKysKKysgIC8vIEZQU0NSCisrICBt ZmZzIDAKKysgIHN0ZmQgMCwgMHgzNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1szMl0KKysKKysgIC8vIFNhdmUgVk1YIFZlY3RvciByZWdpc3RlcnMKKysgIC8vIFVwZGF0ZSBy NCB0byBjb250YWluIHRoZSBiYXNlIGFkZHJlc3Mgb2Ygdm14X3Jlc2VydmUKKysgIGFkZGkgNCwg MywgMHgzNzgKKysgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIHF1YWR3b3JkIGFsaWduZWQKKysgIGFu ZGkuIDUsIDQsIDB4RgorKyAgYmVxIDFmIC8vIE5vIGFsaWdubWVudCBpcyBuZWNlc3NhcnkKKysg IC8vIEFkZHJlc3MgaXMgZG91Ymxld29yZCBhbGlnbmVkIGFuZCBub3QgcXVhZHdvcmQgYWxpZ25l ZCwgYWRkIDgKKysgIGFkZGkgNCwgNCwgOAorKworKzE6CisrICAvLyBTdG9yZSBWTVggcmVnaXN0 ZXJzIDAtMzEKKysgIC8vIHI0IHdpbGwgY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzCisrICAvLyBy NSB3aWxsIGNvbnRhaW4gdGhlIGluZGV4CisrICBsaSA1LCAwCisrICBzdHZ4IDAsIDQsIDUgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMF0KKysgIGFkZGkg NSwgNSwgMTYKKysgIHN0dnggMSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAxXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyLCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDJdCisrICBhZGRp IDUsIDUsIDE2CisrICBzdHZ4IDMsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgM10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggNCwgNCwgNSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA0XQorKyAgYWRk aSA1LCA1LCAxNgorKyAgc3R2eCA1LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDVdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDYsIDQsIDUg ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNl0KKysgIGFk ZGkgNSwgNSwgMTYKKysgIHN0dnggNywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyA3XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA4LCA0LCA1 ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDhdCisrICBh ZGRpIDUsIDUsIDE2CisrICBzdHZ4IDksIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgOV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTAsIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMF0KKysg IGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTIs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMl0K KysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxM10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dngg MTQsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAx NF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTUsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0 dnggMTYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAxNl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTcsIDQsIDUgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxN10KKysgIGFkZGkgNSwgNSwgMTYKKysg IHN0dnggMTgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAxOF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTksIDQsIDUgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxOV0KKysgIGFkZGkgNSwgNSwgMTYK KysgIHN0dnggMjAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAyMF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjEsIDQsIDUgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMV0KKysgIGFkZGkgNSwgNSwg MTYKKysgIHN0dnggMjIsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAyMl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjMsIDQsIDUgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyM10KKysgIGFkZGkgNSwg NSwgMTYKKysgIHN0dnggMjQsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAyNF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjUsIDQsIDUgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNV0KKysgIGFkZGkg NSwgNSwgMTYKKysgIHN0dnggMjYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAyNl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjcsIDQsIDUg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyN10KKysgIGFk ZGkgNSwgNSwgMTYKKysgIHN0dnggMjgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAyOF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjksIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyOV0KKysg IGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMzAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMzEs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMV0K KysgIGFkZGkgNSwgNSwgMTYKKysKKysgIC8vIFZTQ1IKKysgIG1mdnNjciAwCisrICBzdHZ4IDAs IDQsIDUKKysgIGFkZGkgNSwgNSwgMTYKKysKKysgIC8vIFZSU0FWRQorKyAgbWZ2cnNhdmUgMAor KyAgc3R3eCAwLCA0LCA1CisrCisrICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQudl9y ZWdzIHRvIHBvaW50IHRvIHZteF9yZXNlcnZlICsgYWxpZ25tZW50LgorKyAgc3RkIDQsIDB4Mzcw KDMpCisrCisrICAvLyBaZXJvIG91dCBhbGwgdW51c2VkIGZpZWxkcworKyAgbGkgNCwgMAorKyAg c3RkIDQsIDB4YzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuc2lnbmFsCisrICBzdGQgNCwg MHhkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5oYW5kbGVyCisrICBzdGQgNCwgMHhkOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5vbGRtYXNrCisrCisrICBibHIKKyAjZW5kaWYgIC8v IF9faTM4Nl9fCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNj L2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCitAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFRlc3RDYXB0 dXJlQ29udGV4dCgpIHsKKyAgIHVpbnRwdHJfdCBwYyA9IFByb2dyYW1Db3VudGVyRnJvbUNvbnRl eHQoY29udGV4dF8xKTsKKyAKKyAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIpICYmICFk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBcCistICAgICFkZWZpbmVkKE1FTU9SWV9T QU5JVElaRVIpCisrICAgICFkZWZpbmVkKE1FTU9SWV9TQU5JVElaRVIpICYmICFkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKyAgIC8vIFNhbml0aXplcnMgY2FuIGNhdXNlIGVub3VnaCBj b2RlIGJsb2F0IHRoYXQgdGhlIOKAnG5lYXJieeKAnSBjaGVjayB3b3VsZAorICAgLy8gbGlrZWx5 IGZhaWwuCisgICBjb25zdCB1aW50cHRyX3Qga1JlZmVyZW5jZVBDID0KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHRfdGVzdF91dGlsX2xpbnV4LmNjCitAQCAtMzUsNiArMzUsOCBAQCB2b2lkIFNhbml0eUNoZWNr Q29udGV4dChjb25zdCBOYXRpdmVDUFVDCisgICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4 dC5yZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOworICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICBFWFBFQ1RfRVEoY29udGV4dC51Y19t Y29udGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsK KysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIEVYUEVDVF9FUShjb250 ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZj b250ZXh0KSk7CisgI2VuZGlmCisgfQorIAorQEAgLTQ5LDYgKzUxLDggQEAgdWludHB0cl90IFBy b2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29ucworICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRl eHQucGM7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBj b250ZXh0LnVjX21jb250ZXh0LnBjOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQorKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworICNl bmRpZgorIH0KKyAKK0BAIC02Myw2ICs2Nyw4IEBAIHVpbnRwdHJfdCBTdGFja1BvaW50ZXJGcm9t Q29udGV4dChjb25zdAorICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuc3A7CisgI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBjb250ZXh0LnVjX21jb250 ZXh0LmdyZWdzWzI5XTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysg IHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbMV07CisgI2VuZGlmCisgfQorIAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MK K0BAIC00Niw5ICs0Niw5IEBAIGJvb2wgQ2FuQ2F1c2VTaWduYWwoaW50IHNpZykgeworICAgcmV0 dXJuIHNpZyA9PSBTSUdBQlJUIHx8CisgICAgICAgICAgc2lnID09IFNJR0FMUk0gfHwKKyAgICAg ICAgICBzaWcgPT0gU0lHQlVTIHx8CistI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQorKyNp ZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisg ICAgICAgICAgc2lnID09IFNJR0ZQRSB8fAorLSNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVf QVJNNjQpCisrI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQo QVJDSF9DUFVfUFBDNjQpCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVm aW5lZChBUkNIX0NQVV9BUk1FTCkKKyAgICAgICAgICBzaWcgPT0gU0lHSUxMIHx8CisgI2VuZGlm ICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJN RUwpCitAQCAtMTE3LDkgKzExNywxMSBAQCB2b2lkIENhdXNlU2lnbmFsKGludCBzaWcpIHsKKyAg ICAgICBicmVhazsKKyAgICAgfQorIAorLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKKysj aWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQor ICAgICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiBpbnN0cnVjdGlvbnMg dGhhdCBkb27igJl0IGdlbmVyYXRlIGEKKyAgICAgLy8gdHJhcCBmb3IgZGl2aWRlLWJ5LXplcm8s IHNvIHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBFLgorKyAgICAvLworKyAgICAvLyBQUEM2 NCBmaXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFsc28gZG9lc24ndCBwcm9kdWNlIGEgU0lH RlBFLgorICAgICBjYXNlIFNJR0ZQRTogeworICAgICAgIC8vIE9wdGltaXphdGlvbiBtYWtlcyB0 aGlzIHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5c3RlbSBjYWxsIGxpa2VseQorICAgICAg IC8vIHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJlc3VsdC4K K0BAIC0xMzcsNyArMTM5LDcgQEAgdm9pZCBDYXVzZVNpZ25hbChpbnQgc2lnKSB7CisgICAgICAg ZnN0YXQocXVvdGllbnQsICZzdGF0X2J1Zik7CisgICAgICAgYnJlYWs7CisgICAgIH0KKy0jZW5k aWYgIC8vIEFSQ0hfQ1BVX0FSTTY0CisrI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02 NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVf WDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKKyAgICAgY2FzZSBTSUdJTEw6 IHsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5n bgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmdu CitAQCAtMTk2LDYgKzE5Niw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF84Yml0IikgeworICAg ICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisgICB9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJhcm02NCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcwor KyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIHNvdXJjZXMgKz0g cHBjNjRfdGVtcGxhdGVfc291cmNlcworICAgfQorIAorICAgY2ZsYWdzID0gZGF2MWRfY29wdHMK K0BAIC0yMjYsNiArMjI4LDggQEAgc3RhdGljX2xpYnJhcnkoImRhdjFkXzEwYml0IikgeworICAg ICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisgICB9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJhcm02NCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcwor KyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIHNvdXJjZXMgKz0g cHBjNjRfdGVtcGxhdGVfc291cmNlcworICAgfQorIAorICAgY2ZsYWdzID0gZGF2MWRfY29wdHMK K0BAIC0yODMsNiArMjg3LDIxIEBAIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50 X2NwdQorICAgICB9CisgCisgICAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCisrICB9CisrfSBlbHNl IGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICBzdGF0aWNfbGlicmFyeSgiZGF2MWRf cHBjIikgeworKyAgICBzb3VyY2VzID0gWworKyAgICAgICJsaWJkYXYxZC9zcmMvcHBjL2NwdS5j IiwKKysgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUuaCIsCisrICAgIF0KKysKKysgICAgY29u ZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBdCisrICAg IGNvbmZpZ3MgKz0gWworKyAgICAgICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpub19jaHJvbWl1 bV9jb2RlIiwKKysgICAgICAiOmRhdjFkX2NvbmZpZyIsCisrICAgIF0KKysKKysgICAgY2ZsYWdz ID0gZGF2MWRfY29wdHMKKyAKKyAgICAgZGVwcyA9IFsgIjpkYXYxZF9oZWFkZXJzIiBdCisgICAg IGFsbG93X2NpcmN1bGFyX2luY2x1ZGVzX2Zyb20gPSBbICI6ZGF2MWRfaGVhZGVycyIgXQorQEAg LTMxNSw1ICszMzQsNyBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWQiKSB7CisgICAgIH0KKyAgIH0g ZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0Iikg eworICAgICBkZXBzICs9IFsgIjpkYXYxZF9hcm0iIF0KKysgIH0gZWxzZSBpZiAoY3VycmVudF9j cHUgPT0gInBwYzY0IikgeworKyAgICBkZXBzICs9IFsgIjpkYXYxZF9wcGMiIF0KKyAgIH0KKyB9 CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2Vu ZXJhdGVkLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFk L2RhdjFkX2dlbmVyYXRlZC5nbmkKK0BAIC0xMDMsNiArMTAzLDExIEBAIGFybV90ZW1wbGF0ZV9z b3VyY2VzID0gWworICAgImxpYmRhdjFkL3NyYy9hcm0vbWNfaW5pdF90bXBsLmMiLAorIF0KKyAK KytwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzID0gWworKyAgImxpYmRhdjFkL3NyYy9wcGMvY2RlZl9p bml0X3RtcGwuYyIsCisrICAibGliZGF2MWQvc3JjL3BwYy9sb29wcmVzdG9yYXRpb25faW5pdF90 bXBsLmMiLAorK10KKysKKyB0ZW1wbGF0ZV9zb3VyY2VzID0gWworICAgImxpYmRhdjFkL3NyYy9j ZGVmX2FwcGx5X3RtcGwuYyIsCisgICAibGliZGF2MWQvc3JjL2NkZWZfdG1wbC5jIiwKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2Uu cHkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0 ZV9zb3VyY2UucHkKK0BAIC01Nyw2ICs1Nyw4IEBAIGRlZiBfV3JpdGVHbihmZCk6CisgICBfV3Jp dGVBcnJheShmZCwgImFybTY0X2FzbV9zb3VyY2VzIiwgX0dsb2IoImxpYmRhdjFkL3NyYy9hcm0v NjQvKi5TIikpCisgICBfV3JpdGVBcnJheShmZCwgImFybV90ZW1wbGF0ZV9zb3VyY2VzIiwgX0ds b2IoImxpYmRhdjFkL3NyYy9hcm0vKl90bXBsLmMiKSkKKyAKKysgIF9Xcml0ZUFycmF5KGZkLCAi cHBjNjRfdGVtcGxhdGVfc291cmNlcyIsIF9HbG9iKCJsaWJkYXYxZC9zcmMvcHBjLypfdG1wbC5j IikpCisrCisgICB0ZW1wbGF0ZV9zb3VyY2VzID0gX0dsb2IoImxpYmRhdjFkL3NyYy8qX3RtcGwu YyIpCisgICBfV3JpdGVBcnJheShmZCwgInRlbXBsYXRlX3NvdXJjZXMiLCB0ZW1wbGF0ZV9zb3Vy Y2VzKQorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2xp YmRhdjFkL3NyYy9wcGMvdHlwZXMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAorQEAgLTUxLDQgKzUxLDE5IEBA CisgI2RlZmluZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1MTZ4OCkgdiwg dmVjX3NwbGF0X3UxNigwKSkpCisgI2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNf dW5wYWNrbCgoaTE2eDgpdikpCisgCisrI2lmIGRlZmluZWQoX19jbGFuZ19fKQorKyN1bmRlZiB2 ZWNfc3BsYXRzCisrI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAgICAgICAgXAor KyAgICBfR2VuZXJpYygoTiksICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIHVu c2lnbmVkIGNoYXI6ICAgICAgKCh1OHgxNikoTikpLCBcCisrICAgICAgICBzaWduZWQgY2hhcjog ICAgICAgICgoaTh4MTYpKE4pKSwgXAorKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6ICAgICAoKHUx Nng4KShOKSksIFwKKysgICAgICAgIHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4OCkoTikpLCBc CisrICAgICAgICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAorKyAgICAgICAg c2lnbmVkIGludDogICAgICAgICAoKGkzMng0KShOKSksIFwKKysgICAgICAgIHVuc2lnbmVkIGxv bmcgbG9uZzogKCh1NjR4MikoTikpLCBcCisrICAgICAgICBzaWduZWQgbG9uZyBsb25nOiAgICgo aTY0eDIpKE4pKSAgXAorKyAgICApCisrI2VuZGlmCisrCisgI2VuZGlmIC8qIERBVjFEX1NSQ19Q UENfVFlQRVNfSCAqLworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Vp Z2VuMy9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Vp Z2VuMy9CVUlMRC5nbgorQEAgLTIyLDQgKzIyLDggQEAgY29uZmlnKCJlaWdlbl9pbmNsdWRlcyIp IHsKKyAgICAgIyBmb3IgdGhpcyBjb21wb25lbnQgb24gV2luZG93cyBvbiBBcm0gZHVlIHRvIGNv bXBpbGF0aW9uIGVycm9ycy4KKyAgICAgZGVmaW5lcyArPSBbICJFSUdFTl9ET05UX1ZFQ1RPUkla RSIgXQorICAgfQorKworKyAgaWYgKHRhcmdldF9jcHUgPT0gInBwYzY0IikgeworKyAgICBkZWZp bmVzICs9IFsgIkVJR0VOX0RPTlRfVkVDVE9SSVpFIiBdCisrICB9CisgfQorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgorQEAgLTM3LDYgKzM3 LDggQEAgaWYgKGVuYWJsZV9saWJhb20pIHsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBjcHVfYXJj aF9mdWxsID0gImFybSIKKyAgICAgfQorKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBj NjQiKSB7CisrICAgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIKKyAgIH0gZWxzZSB7CisgICAg IGNwdV9hcmNoX2Z1bGwgPSBjdXJyZW50X2NwdQorICAgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xpYmdhdjEvb3B0aW9ucy5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJnYXYxL29wdGlvbnMuZ25pCitAQCAtMTIsNSArMTIs NSBAQCBkZWNsYXJlX2FyZ3MoKSB7CisgICAgICAgaXNfY2hyb21lb3NfYXNoICYmICh0YXJnZXRf Y3B1ID09ICJhcm0iIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IikKKyAgIHVzZV9saWJnYXYxX3Bh cnNlciA9CisgICAgICAgKGlzX2Nocm9tZW9zIHx8IGlzX2xpbnV4IHx8IGlzX3dpbikgJiYKKy0g ICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiIHx8IHRhcmdl dF9jcHUgPT0gImFybTY0IikKKysgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRf Y3B1ID09ICJ4NjQiIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IiB8fCB0YXJnZXRfY3B1ID09ICJw cGM2NCIpCisgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9s aW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAgLTQyNjIsNyArNDI2Miw3IEBA IHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKKyAgICAgICBMU1NfUkVHKDIsIGJ1Zik7CisgICAgICAg TFNTX0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOworICAgICB9CistI2Vsc2UKKysjZWxp ZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhhdmUgbW1hcDIgKi8K KyAgICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAyCisgICAgIExTU19JTkxJTkUgX3N5 c2NhbGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9pZCosIHMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAgICAgbCwgaW50LCAgICAgICAgICAg ICAgIHAsCitAQCAtNDM3Myw3ICs0MzczLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgeworICAg I2lmIGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBkZWZpbmVkKF9fQVJNX0FSQ0hfM19fKSB8fCBk ZWZpbmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAoZGVm aW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikgfHwgICAgICAg ICAgICAgICAgICAgXAorLSAgICAgIGRlZmluZWQoX19QUENfXykgfHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgIChkZWZpbmVkKF9f UFBDX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKGRlZmluZWQoX19zMzkw X18pICYmICFkZWZpbmVkKF9fczM5MHhfXykpCisgICAgIC8qIE9uIHRoZXNlIGFyY2hpdGVjdHVy ZXMsIGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAqLworICAgICBMU1NfSU5MSU5FIHZv aWQqIExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwgaW50IGYsIGludCBk LAorQEAgLTQ1NTYsOSArNDU1NiwxNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAgIH0K KyAgICNlbmRpZgorICAgI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCisrICAgICNpZiAhZGVm aW5lZChfX0dMSUJDX18pCisrICAgICAgICAvLyBtdXNsIGRvZXNuJ3QgZGVmaW5lIGZzdGF0YXQ2 NCBmc3RhdGF0CisrICAgICAgICAjdW5kZWYgZnN0YXRhdDY0CisrICAgICNlbmRpZgorICAgICBM U1NfSU5MSU5FIF9zeXNjYWxsNChpbnQsICAgZnN0YXRhdDY0LCAgICAgICAgaW50LCAgIGQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgICAgICBwLAorICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3Qga2VybmVsX3N0YXQ2NCAqLCAgIGIsICAgIGludCwgICBm KQorKyAgICAjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAJLy8gdGhlbiByZXN0b3JlIGl0 CisrICAgICAgICAjZGVmaW5lIGZzdGF0YXQ2NCBmc3RhdGF0CisrICAgICNlbmRpZgorICAgI2Vu ZGlmCisgICAjaWYgZGVmaW5lZChfX05SX3dhaXRwaWQpCisgICAgIC8vIHdhaXRwaWQgaXMgcG9s eWZpbGxlZCBiZWxvdyB3aGVuIG5vdCBhdmFpbGFibGUuCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0 eS9saWJwbmcxNi9wbmdwcml2LmgKK0BAIC0xOTYsMTEgKzE5Niw3IEBACisgI2VuZGlmCisgCisg I2lmbmRlZiBQTkdfUE9XRVJQQ19WU1hfT1BUCistIyAgaWYgZGVmaW5lZChfX1BQQzY0X18pICYm IGRlZmluZWQoX19BTFRJVkVDX18pICYmIGRlZmluZWQoX19WU1hfXykKKy0jICAgICBkZWZpbmUg UE5HX1BPV0VSUENfVlNYX09QVCAyCistIyAgZWxzZQorLSMgICAgIGRlZmluZSBQTkdfUE9XRVJQ Q19WU1hfT1BUIDAKKy0jICBlbmRpZgorKyMgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDAK KyAjZW5kaWYKKyAKKyAjaWZuZGVmIFBOR19JTlRFTF9TU0VfT1BUCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYworQEAgLTEwMCw2ICsx MDAsNyBAQAorICAgIEFsdGl2ZWMgc3VwcG9ydCBtYWNyb3MgCisgKi8KKyAjaWYgIWRlZmluZWQo UEZGRlRfU0lNRF9ESVNBQkxFKSAmJiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBj NjRfXykpCisrI2luY2x1ZGUgPGFsdGl2ZWMuaD4KKyB0eXBlZGVmIHZlY3RvciBmbG9hdCB2NHNm OworICMgIGRlZmluZSBTSU1EX1NaIDQKKyAjICBkZWZpbmUgVlpFUk8oKSAoKHZlY3RvciBmbG9h dCkgdmVjX3NwbGF0X3U4KDApKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCitAQCAtMTQyLDcg KzE0MiwxMiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRvdWJsZSB2YWx1ZSkgeworICAgICBpZiAobmVl ZHNEb3RaZXJvKSB7CisgICAgICAgICBidWZmZXIgPDwgIi4wIjsKKyAgICAgfQorLSAgICByZXR1 cm4gU3RyaW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigpKTsKKysKKysgICAgc3RkOjpzdHJpbmcgcmV0 KGJ1ZmZlci5zdHIoKSk7CisrICAgIGlmIChzaWduYml0KHZhbHVlKSAmJiByZXRbMF0gPT0gJy4n KSB7CisrICAgICAgICByZXRbMF0gPSAnLSc7CisrICAgIH0KKysgICAgcmV0dXJuIFN0cmluZyhy ZXQuY19zdHIoKSk7CisgfQorIAorIGJvb2wgc3RvZChjb25zdCBza3N0ZDo6c3RyaW5nX3ZpZXcm IHMsIFNLU0xfRkxPQVQqIHZhbHVlKSB7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRl My5jCitAQCAtMTQ2MjgsNyArMTQ2MjgsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0Owor ICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVm aW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAgICAgIGRlZmlu ZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYp ICAgfHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0 RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBk ZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAorKyAgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRU TEVfRU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVs aWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAgICAgICBk ZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9z cWxpdGUzLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUv c3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCitAQCAtMTQ2NDEsNyArMTQ2NDEsOCBAQCB0 eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OworICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRl ZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBk ZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9N X1g2NCkgIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FS TSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FS TUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysg ICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmlu ZWQoX01fQVJNNjQpIHx8ICAgXAorKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19C WVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJ VEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmlu ZWQoX19wcGNfXykgfHwgXAorICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChf X0FBUkNINjRFQl9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3Nx bGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCitAQCAtNDUwLDcgKzQ1MCw3 IEBAIHN0cnVjdCBSdHJlZU1hdGNoQXJnIHsKKyAjaWYgZGVmaW5lZChpMzg2KSAgICAgfHwgZGVm aW5lZChfX2kzODZfXykgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKKyAgICAgZGVmaW5l ZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8 ICAgIFwKKyAgICAgZGVmaW5lZChfTV9BTUQ2NCkgfHwgZGVmaW5lZChfTV9BUk0pICAgICB8fCBk ZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAgZGVmaW5lZChfX2FybV9fKQorKyAgICBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9f ID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIg ICAgMTIzNAorICNlbGlmIGRlZmluZWQoc3BhcmMpICAgIHx8IGRlZmluZWQoX19wcGNfXykKKyAj IGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDQzMjEKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCitA QCAtODkwLDcgKzg5MCw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7CisgIyBpZiBkZWZp bmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lY ODYpIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0 X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAorICAgICAgZGVmaW5lZChfTV9BTUQ2 NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBc CistICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBk ZWZpbmVkKF9NX0FSTTY0KQorKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19B QVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwgXAorKyAgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18p CisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYgZGVmaW5lZChz cGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAgICAgICBkZWZpbmVkKF9fQVJN RUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxv Y2suY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9k dWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjCitAQCAtMzAsMTEgKzMwLDcgQEAg Ym9vbCBWZWN0b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYQorICAgc3RhdGljIGJvb2wg KCpkaWZmX3Byb2MpKGNvbnN0IHVpbnQ4X3QqLCBjb25zdCB1aW50OF90KikgPSBudWxscHRyOwor IAorICAgaWYgKCFkaWZmX3Byb2MpIHsKKy0jaWYgZGVmaW5lZChXRUJSVENfQVJDSF9BUk1fRkFN SUxZKSB8fCBkZWZpbmVkKFdFQlJUQ19BUkNIX01JUFNfRkFNSUxZKQorLSAgICAvLyBGb3IgQVJN IGFuZCBNSVBTIHByb2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9uLgorLSAgICAvLyBUT0RP KGhjbGFtKTogSW1wbGVtZW50IGEgTkVPTiB2ZXJzaW9uLgorLSAgICBkaWZmX3Byb2MgPSAmVmVj dG9yRGlmZmVyZW5jZV9DOworLSNlbHNlCisrI2lmIGRlZmluZWQoV0VCUlRDX0FSQ0hfWDg2X0ZB TUlMWSkKKyAgICAgYm9vbCBoYXZlX3NzZTIgPSBHZXRDUFVJbmZvKGtTU0UyKSAhPSAwOworICAg ICAvLyBGb3IgeDg2IHByb2Nlc3NvcnMsIGNoZWNrIGlmIFNTRTIgaXMgc3VwcG9ydGVkLgorICAg ICBpZiAoaGF2ZV9zc2UyICYmIGtCbG9ja1NpemUgPT0gMzIpIHsKK0BAIC00NCw2ICs0MCwxMCBA QCBib29sIFZlY3RvckRpZmZlcmVuY2UoY29uc3QgdWludDhfdCogaW1hCisgICAgIH0gZWxzZSB7 CisgICAgICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKKyAgICAgfQorKyNlbHNl CisrICAgIC8vIEZvciBvdGhlciBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KKysg ICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KKysgICAgZGlmZl9w cm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKKyAjZW5kaWYKKyAgIH0KKyAKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS92OC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L0JVSUxELmduCitAQCAtMTA4Myw2ICsxMDgzLDEyIEBAIGNvbmZpZygidG9vbGNoYWluIikg eworICAgICB9CisgICAgIGlmIChob3N0X2J5dGVvcmRlciA9PSAibGl0dGxlIikgeworICAgICAg IGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0xFIiBdCisrICAgICAgY2ZsYWdzICs9 IFsKKysgICAgICAgICMgRW5hYmxlIHVzYWdlIG9mIEFsdGlWZWMsIFZTWCwgYW5kIG90aGVyIFBP V0VSOCBhbmQgaGlnaGVyIGZlYXR1cmVzCisrICAgICAgICAiLW1jcHU9cG93ZXI4IiwKKysgICAg ICAgICItbWFsdGl2ZWMiLAorKyAgICAgICAgIi1tdnN4IiwKKysgICAgICBdCisgICAgIH0gZWxz ZSBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImJpZyIpIHsKKyAgICAgICBkZWZpbmVzICs9IFsgIlY4 X1RBUkdFVF9BUkNIX1BQQ19CRSIgXQorICAgICAgIGlmIChjdXJyZW50X29zID09ICJhaXgiKSB7 CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdWkvZ2wvZmVhdHVyZXMuZ25pCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdWkvZ2wvZmVhdHVyZXMuZ25pCitAQCAtMzUsNyArMzUsOCBA QCBkZWNsYXJlX2FyZ3MoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgKGlzX21hYyAmJiB1 c2VfZWdsKSB8fCBpc19jaHJvbWVvc19hc2ggfHwgaXNfZnVjaHNpYSkgJiYKKyAgICAgICAgICAg ICAgICAgICAgICAgICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0gIng2NCIg fHwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJhcm0iIHx8IHRhcmdl dF9jcHUgPT0gImFybTY0IiB8fAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUg PT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiKQorKyAgICAgICAgICAgICAg ICAgICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0 ZWwiIHx8CisrICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAicHBjNjQiKQor IH0KKyAKKyB1c2VfZ2x4ID0gdXNlX3gxMSB8fCBvem9uZV9wbGF0Zm9ybV94MTEKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS92OC90ZXN0L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvdGVzdC9CVUlMRC5nbgorQEAgLTQyLDcgKzQyLDYgQEAgZ3JvdXAoImduX2Fs bCIpIHsKKyAgICAgICAiYmVuY2htYXJrcy9jcHA6Z25fYWxsIiwKKyAgICAgICAiY2N0ZXN0OmNj dGVzdCIsCisgICAgICAgImNjdGVzdDpnZW5lcmF0ZS1ieXRlY29kZS1leHBlY3RhdGlvbnMiLAor LSAgICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC04NCw3 ICs4Myw2IEBAIGdyb3VwKCJ2OF9ib3RfZGVmYXVsdCIpIHsKKyAgICAgIm1lc3NhZ2U6djhfbWVz c2FnZSIsCisgICAgICJtanN1bml0OnY4X21qc3VuaXQiLAorICAgICAibWtncm9rZHVtcDpta2dy b2tkdW1wIiwKKy0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAorICAgICAid2Via2l0OnY4X3dl YmtpdCIsCisgICBdCisgCitAQCAtMTA5LDcgKzEwNyw2IEBAIGdyb3VwKCJ2OF9kZWZhdWx0Iikg eworICAgICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKKyAgICAgIm1qc3VuaXQ6djhfbWpzdW5pdCIs CisgICAgICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAorLSAgICAidW5pdHRlc3RzOnVuaXR0ZXN0 cyIsCisgICBdCisgCisgICBpZiAodjhfZW5hYmxlX3dlYmFzc2VtYmx5KSB7CistLS0gL2Rldi9u dWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vZGV2L251bGwKK0BAIC0wLDAgKzEsMzkg QEAKKysvKgorKyAqIEF1dG9nZW5lcmF0ZWQgYnkgdGhlIE1lc29uIGJ1aWxkIHN5c3RlbS4KKysg KiBEbyBub3QgZWRpdCwgeW91ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4KKysgKi8KKysKKysjcHJh Z21hIG9uY2UKKysKKysjZGVmaW5lIEFSQ0hfQUFSQ0g2NCAwCisrCisrI2RlZmluZSBBUkNIX0FS TSAwCisrCisrI2RlZmluZSBBUkNIX1BQQzY0TEUgMQorKworKyNkZWZpbmUgQVJDSF9YODYgMAor KworKyNkZWZpbmUgQVJDSF9YODZfMzIgMAorKworKyNkZWZpbmUgQVJDSF9YODZfNjQgMAorKwor KyNkZWZpbmUgQ09ORklHXzE2QlBDIDEKKysKKysjZGVmaW5lIENPTkZJR184QlBDIDEKKysKKysv LyAjZGVmaW5lIENPTkZJR19MT0cgMSAtLSBMb2dnaW5nIGlzIGNvbnRyb2xsZWQgYnkgQ2hyb21p dW0KKysKKysjZGVmaW5lIEVORElBTk5FU1NfQklHIDAKKysKKysjZGVmaW5lIEhBVkVfQVNNIDEK KysKKysjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxCisrCisrI2RlZmluZSBIQVZFX0RMU1lN IDEKKysKKysjZGVmaW5lIEhBVkVfR0VUQVVYVkFMIDEKKysKKysjZGVmaW5lIEhBVkVfUE9TSVhf TUVNQUxJR04gMQorKworKyNkZWZpbmUgSEFWRV9VTklTVERfSCAxCisrCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwv dW5zY2FsZWRjeWNsZWNsb2NrLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAor QEAgLTQ2LDcgKzQ2LDcgQEAKKyAKKyAvLyBUaGUgZm9sbG93aW5nIHBsYXRmb3JtcyBoYXZlIGFu IGltcGxlbWVudGF0aW9uIG9mIGEgaGFyZHdhcmUgY291bnRlci4KKyAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBc CistICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKysgICgo ZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSkgJiYgZGVmaW5lZChfX0dM SUJDX18pKSB8fCBcCisgICBkZWZpbmVkKF9NX0lYODYpIHx8IGRlZmluZWQoX01fWDY0KQorICNk ZWZpbmUgQUJTTF9IQVZFX1VOU0NBTEVEX0NZQ0xFQ0xPQ0tfSU1QTEVNRU5UQVRJT04gMQorICNl bHNlCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9h YnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2NvbmZpZy5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRl cm5hbC9zdGFja3RyYWNlX2NvbmZpZy5oCitAQCAtNTksNyArNTksNyBAQAorICNlbGlmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAjZGVmaW5lIEFCU0xfU1RBQ0tU UkFDRV9JTkxfSEVBREVSIFwKKyAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNl X3g4Ni1pbmwuaW5jIgorLSNlbGlmIGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX1BQQ19f KQorKyNlbGlmIGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX1BQQ19fKSAmJiBkZWZpbmVk KF9fR0xJQkNfXykKKyAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKKyAgICJh YnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2VycGMtaW5sLmluYyIKKyAjZWxp ZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv YWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j YXRvci9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgKK0BAIC0xMDAsNyArMTAwLDggQEAgc3RhdGlj X2Fzc2VydChzaXplb2Yodm9pZCopICE9IDgsICIiKTsKKyAvLyBQVVRfUkVGX0NPVU5UX0lOX1BS RVZJT1VTX1NMT1QgZG9lcy4gSW4gdGhpcyBjYXNlIHRoZSByZWZjb3VudCBvdmVybGFwcyB3aXRo CisgLy8gdGhlIG5leHQgcG9pbnRlciBzaGFkb3cgZm9yIHRoZSBzbWFsbGVzdCBidWNrZXQuCisg I2lmICEoZGVmaW5lZChPU19NQUMpICYmIGRlZmluZWQoQVJDSF9DUFVfQVJNNjQpKSAmJiBcCist ICAgICFCVUlMREZMQUcoUFVUX1JFRl9DT1VOVF9JTl9QUkVWSU9VU19TTE9UKQorKyAgICAhQlVJ TERGTEFHKFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xPVCkgJiYgXAorKyAgICAoIWRlZmlu ZWQoX19HTElCQykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykpCisgI2RlZmluZSBQQV9IQVNf RlJFRUxJU1RfSEFSREVOSU5HCisgI2VuZGlmCisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5CisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5CitAQCAtMTMsNiArMTMs OCBAQCBpbXBvcnQgc3lzCisgCisgCisgZGVmIE1haW4oYXJncyk6CisrICBpZiAnZGlzYWJsZV9u YWNsPTEnIGluIG9zLmVudmlyb24uZ2V0KCdHWVBfREVGSU5FUycsICcnKToKKysgICAgcmV0dXJu IDAKKyAgIHNjcmlwdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmls ZV9fKSkKKyAgIHNyY19kaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2NyaXB0X2RpcikKKyAgIG5hY2xf ZGlyID0gb3MucGF0aC5qb2luKHNyY19kaXIsICduYXRpdmVfY2xpZW50JykKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgorQEAg LTEwMCw4ICsxMDAsNiBAQCBwYWNrYWdpbmdfZmlsZXMgPSBwYWNrYWdpbmdfZmlsZXNfYmluYXJp CisgICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctbWltZSIsCisgICAgICAg ICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctc2V0dGluZ3MiLAorICAgICAgICAgICAg ICAgICAgICAgIiRyb290X291dF9kaXIvbG9jYWxlcy9lbi1VUy5wYWsiLAorLSAgICAgICAgICAg ICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9tYW5pZmVzdC5qc29uIiwKKy0gICAg ICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvcHJlbG9hZGVkX2RhdGEu cGIiLAorICAgICAgICAgICAgICAgICAgIF0KKyAKKyBhY3Rpb25fZm9yZWFjaCgiY2FsY3VsYXRl X2RlYl9kZXBlbmRlbmNpZXMiKSB7CitAQCAtMzIxLDcgKzMxOSw2IEBAIGdyb3VwKCJpbnN0YWxs ZXJfZGVwcyIpIHsKKyAgICAgIjp0aGVtZV9maWxlcyIsCisgICAgICIvL2Nocm9tZSIsCisgICAg ICIvL2Nocm9tZTpwYWNrZWRfcmVzb3VyY2VzIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVz b3VyY2VzL21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIsCisgICAgICIvL2NvbXBvbmVudHMv Y3Jhc2gvY29yZS9hcHA6Y2hyb21lX2NyYXNocGFkX2hhbmRsZXIiLAorICAgICAiLy9zYW5kYm94 L2xpbnV4OmNocm9tZV9zYW5kYm94IiwKKyAgIF0KKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4 X3N5c2NhbGxzLmgKK0BAIC0wLDAgKzEsMTIgQEAKKysvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hy b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisr Ly8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIFNBTkRCT1hfTElOVVhf U1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KKysjZGVmaW5lIFNBTkRCT1hf TElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KKysKKysjaW5jbHVk ZSA8YXNtL3VuaXN0ZC5oPgorKworKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5l IHN5c2NhbGwgbnVtYmVycyBmb3IgUFBDNjQ/CisrCisrI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVY X1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCistLS0gL2Rldi9udWxsCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9w cGM2NF9saW51eF91Y29udGV4dC5oCitAQCAtMCwwICsxLDEyIEBACisrLy8gQ29weXJpZ2h0IDIw MTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9m IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0 IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBTQU5E Qk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCisrI2RlZmlu ZSBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCisr CisrI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorKworKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5 IHRvIHJlZGVmaW5lIHVjb250ZXh0IG9uIFBQQzY0PworKworKyNlbmRpZiAgLy8gU0FOREJPWF9M SU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXworLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbmV0L2h0 dHBfdHJhbnNwb3J0X2xpYmN1cmwuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25ldC9odHRwX3RyYW5zcG9ydF9saWJjdXJs LmNjCitAQCAtMjM2LDYgKzIzNiwxMiBAQCBzdGQ6OnN0cmluZyBVc2VyQWdlbnQoKSB7CisgI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9CSUdfRU5ESUFOKQorICAgICBzdGF0aWMgY29uc3RleHByIGNo YXIgYXJjaFtdID0gImFhcmNoNjRfYmUiOworICNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9MSVRUTEVfRU5ESUFOKQorKyAgICBzdGF0 aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gInBwYzY0bGUiOworKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfQklHX0VORElBTikKKysgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJw cGM2NCI7CisrI2VuZGlmCisgI2Vsc2UKKyAjZXJyb3IgUG9ydAorICNlbmRpZgorLS0tIC9kZXYv bnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZp Zy9saW51eC9wcGM2NC9jb25maWcuaAorQEAgLTAsMCArMSwzOSBAQAorKy8qCisrICogQXV0b2dl bmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgorKyAqIERvIG5vdCBlZGl0LCB5b3Vy IGNoYW5nZXMgd2lsbCBiZSBsb3N0LgorKyAqLworKworKyNwcmFnbWEgb25jZQorKworKyNkZWZp bmUgQVJDSF9BQVJDSDY0IDAKKysKKysjZGVmaW5lIEFSQ0hfQVJNIDAKKysKKysjZGVmaW5lIEFS Q0hfUFBDNjRMRSAxCisrCisrI2RlZmluZSBBUkNIX1g4NiAwCisrCisrI2RlZmluZSBBUkNIX1g4 Nl8zMiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl82NCAwCisrCisrI2RlZmluZSBDT05GSUdfMTZC UEMgMQorKworKyNkZWZpbmUgQ09ORklHXzhCUEMgMQorKworKy8vICNkZWZpbmUgQ09ORklHX0xP RyAxIC0tIExvZ2dpbmcgaXMgY29udHJvbGxlZCBieSBDaHJvbWl1bQorKworKyNkZWZpbmUgRU5E SUFOTkVTU19CSUcgMAorKworKyNkZWZpbmUgSEFWRV9BU00gMQorKworKyNkZWZpbmUgSEFWRV9D TE9DS19HRVRUSU1FIDEKKysKKysjZGVmaW5lIEhBVkVfRExTWU0gMQorKworKyNkZWZpbmUgSEFW RV9HRVRBVVhWQUwgMQorKworKyNkZWZpbmUgSEFWRV9QT1NJWF9NRU1BTElHTiAxCisrCisrI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKKysKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzA5MDMteHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2ggYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWE4Y2Q4MzY4ZGExCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMy14eHgtcHBj NjRsZS1zd2lmdHNoYWRlci5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4w L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRz aGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JVSUxELmduCitAQCAtNTc2LDYgKzU3Niw3IEBA IHN3aWZ0c2hhZGVyX2xsdm1fc291cmNlX3NldCgic3dpZnRzaGFkZXIKKyAgICAgImxsdm0vbGli L01DL01DQXNtSW5mb0NPRkYuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0Rhcndp bi5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvRUxGLmNwcCIsCisrICAgICJsbHZt L2xpYi9NQy9NQ0FzbUluZm9YQ09GRi5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21NYWNy by5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21TdHJlYW1lci5jcHAiLAorICAgICAibGx2 bS9saWIvTUMvTUNBc3NlbWJsZXIuY3BwIiwKK0BAIC02MzEsNiArNjMyLDcgQEAgc3dpZnRzaGFk ZXJfbGx2bV9zb3VyY2Vfc2V0KCJzd2lmdHNoYWRlcgorICAgICAibGx2bS9saWIvTUMvTUNXaW5D T0ZGU3RyZWFtZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DV2luRUguY3BwIiwKKyAgICAg Imxsdm0vbGliL01DL01DWENPRkZTdHJlYW1lci5jcHAiLAorKyAgICAibGx2bS9saWIvTUMvTUNY Q09GRk9iamVjdFRhcmdldFdyaXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTWFjaE9iamVj dFdyaXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvU3RyaW5nVGFibGVCdWlsZGVyLmNwcCIs CisgICAgICJsbHZtL2xpYi9NQy9TdWJ0YXJnZXRGZWF0dXJlLmNwcCIsCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVt cGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41YThiYjc1NTIz MDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKQEAg LTAsMCArMSwxNTAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13ZWJlbmdpbmUnCitwa2du YW1lPXF0Ni13ZWJlbmdpbmUKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0icXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCitj b25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAtRFFUX0JVSUxEX1RPT0xTX1dIRU5f Q1JPU1NDT01QSUxJTkc9dHJ1ZQorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2ZmbXBl Zz1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2xpYmV2ZW50PU9OCisgLURRVF9G RUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZ249T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3N5 c3RlbV9pY3U9T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3dlYnJ0Y19waXBld2lyZT1PTgor IC1ETmluamFfRVhFQ1VUQUJMRT0kWEJQU19XUkFQUEVSRElSL25pbmphCisgLURQS0dfQ09ORklH X0hPU1RfRVhFQ1VUQUJMRT0ke1BLR19DT05GSUdfRk9SX0JVSUxEfSIKK2hvc3RtYWtlZGVwZW5k cz0icXQ2LWJhc2UtZGV2ZWwgcGVybCBwa2ctY29uZmlnIG5vZGVqcyBweXRob24zLWh0bWw1bGli CisgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHByb3RvYnVmIGdwZXJmIGZsZXggbnNzLWRldmVsIGxp YndlYnAtZGV2ZWwKKyBpY3UtZGV2ZWwgbGliZXZlbnQtZGV2ZWwiCittYWtlZGVwZW5kcz0icXQ2 LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwKKyBxdDYt dG9vbHMtZGV2ZWwgcXQ2LXF1aWNrY29udHJvbHMyLWRldmVsIHF0Ni13ZWJzb2NrZXRzLWRldmVs CisgbGliZmxhYy1kZXZlbAorIGFsc2EtbGliLWRldmVsIGxpYnZweC1kZXZlbCBwY2l1dGlscy1k ZXZlbCBvcHVzLWRldmVsIGxpYnhzbHQtZGV2ZWwKKyBsaWJ4bWwyLWRldmVsIGZyZWV0eXBlLWRl dmVsIGxjbXMyLWRldmVsIGxpYndlYnAtZGV2ZWwgaWN1LWRldmVsCisgcmUyLWRldmVsIHpsaWIt ZGV2ZWwgbGlicG5nLWRldmVsIG1pbml6aXAtZGV2ZWwgaGFyZmJ1enotZGV2ZWwKKyBuc3MtZGV2 ZWwgbGliWGN1cnNvci1kZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlhTY3JuU2F2ZXItZGV2 ZWwKKyBwcm90b2J1Zi1kZXZlbCBmZm1wZWctZGV2ZWwgc25hcHB5LWRldmVsIGxpYmV2ZW50LWRl dmVsIHBpcGV3aXJlLWRldmVsCisgbGlieGtiZmlsZS1kZXZlbCBxdDYtbG9jYXRpb24tZGV2ZWwg cXQ2LXdlYmNoYW5uZWwtZGV2ZWwgbGlieHNobWZlbmNlLWRldmVsIgorc2hvcnRfZGVzYz0iQ3Jv c3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIFdlYmVuZ2luZSIKK21h aW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCitsaWNlbnNlPSJHUEwtMy4wLW9u bHksIEdQTC0yLjAtb25seSwgTEdQTC0zLjAtb25seSBCU0QtMy1DbGF1c2UiCitob21lcGFnZT0i aHR0cHM6Ly93d3cucXQuaW8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vZG93bmxvYWQucXQuaW8vb2Zm aWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT1hZDdh MzNiMjFhOTU2ZGVkYTM3YzU4N2Q1MGY4MjFjYTM4MTY0MDNhZTMxYmE5YjVkNTlkMDE1NjFhZDY2 ZTQ3CisKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIgXTt0aGVuCisJY29uZmlndXJlX2FyZ3MrPSIg LURDTUFLRV9UT09MQ0hBSU5fRklMRT0vdXNyL2xpYi9jbWFrZS9RdDYvcXQudG9vbGNoYWluLmNt YWtlIgorZmkKKworaWYgWyAiJFhCUFNfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCWhvc3RtYWtl ZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQorCitpZiBbICIkWEJQU19UQVJHRVRf TElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIG11c2wtbGVnYWN5LWNvbXBh dCIKK2ZpCisKK2lmIFsgISAiJFhCUFNfV09SRFNJWkUiID0gIiRYQlBTX1RBUkdFVF9XT1JEU0la RSIgXTsgdGhlbgorCWJyb2tlbj0id2ViZW5naW5lIGNhbiBiZSBidWlsdCBvbmx5IGlmIHdvcmQg c2l6ZSBtYXRjaGVzIgorZmkKKworaWYgWyAiJFhCUFNfV09SRFNJWkUiIC1lcSAzMiBdOyB0aGVu CisJbm9kZWJ1Zz15ZXMKKwlMREZMQUdTPSItV2wsLS1uby1rZWVwLW1lbW9yeSIKK2ZpCisKK2lm IFsgIiRYQlBTX1RBUkdFVF9FTkRJQU4iICE9ICJsZSIgXTsgdGhlbgorCWJyb2tlbj0id2ViZW5n aW5lIG9ubHkgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiIKK2ZpCisKK2J1aWxkX29wdGlvbnM9InNu ZGlvIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSIiCitkZXNjX29wdGlvbl9zbmRpbz0iRW5hYmxl IHN1cHBvcnQgZm9yIHNuZGlvIgorCisKK19ib290c3RyYXBfZ24oKSB7CisJIyBCb290c3RyYXAg Z24gKGdlbmVyYXRlIG5pbmphKQorCWVjaG8gIkJvb3RzdHJhcHBpbmcgJ2duJyIKKwljZCAke3dy a3NyY30vc3JjLzNyZHBhcnR5L2duCisJQ0ZMQUdTPSIkQ0ZMQUdTX2hvc3QiIENYWEZMQUdTPSIk Q1hYRkxBR1NfaG9zdCIgTERGTEFHUz0iJExERkxBR1NfaG9zdCIgXAorCVBLR0NPTkZJRz0vdXNy L2Jpbi9wa2djb25maWcgUEtHX0NPTkZJR19QQVRIPSIvdXNyL2xpYi9wa2djb25maWc6L3Vzci9z aGFyZS9wa2djb25maWciIFwKKwkJcHl0aG9uMyBidWlsZC9nZW4ucHkgLS1uby1sYXN0LWNvbW1p dC1wb3NpdGlvbiAtLW91dC1wYXRoIFwKKwkJCSR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0 L1JlbGVhc2UgLS1jYyAiJHtDQ19ob3N0Oi0kQ0N9IiBcCisJCQktLWN4eCAiJHtDWFhfaG9zdDot JENYWH0iIC0tbGQgIiR7Q1hYX2hvc3Q6LSRDWFh9IiAtLWFyICIke0FSX2hvc3Q6LSRBUn0iIFwK KwkJCS0tcXQtdmVyc2lvbiAiJHt2ZXJzaW9ufS5xdHdlYmVuZ2luZS5xdC5pbyIKKwluaW5qYSAt QyBvdXQvUmVsZWFzZSBnbgorCWNkICR7d3Jrc3JjfQorfQorCitfdW5idW5kbGVfbGlicygpIHsK KwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2Nocm9taXVtCisJZWNobyBEcm9wcGluZyBidW5k bGVkIGxpYnMgZnJvbSBjaHJvbWl1bQorCSMgVXNlIHN5c3RlbS1wcm92aWRlZCBsaWJyYXJpZXMu CisJIyBUT0RPOiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0cmVhbSBjaGFuZ2VzIG5lZWRlZCku CisJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnNydHAuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnVz YiAoaHR0cDovL2NyYnVnLmNvbS8yNjYxNDkpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9zc2wgKGh0 dHA6Ly9jcmJ1Zy5jb20vNTgwODcpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9zcWxpdGUgKGh0dHA6 Ly9jcmJ1Zy5jb20vMjIyMDgpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9pY3UgKHNlZ2ZhdWx0cykK KwkjIHVzZV9zeXN0ZW1fcHJvdG9idWYKKwkjIHVzZV9zeXN0ZW1fdjg9MQorCSMgdXNlX3N5c3Rl bV96bGliPTEKKwkjIGJ6aXAyIGpzb25jcHAgbWluaXppcCB4ZGdfdXRpbHMgc3BlZXgKKwlzeXN0 ZW09IgorCQlmZm1wZWcKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZyZWV0eXBlCisJCWhhcmZi dXp6LW5nCisJCWljdQorCQlsaWJkcm0KKwkJbGliZXZlbnQKKwkJbGlianBlZworCQlsaWJwbmcK KwkJbGlid2VicAorCQlsaWJ4bWwKKwkJbGlieHNsdAorCQlvcHVzCisJCXJlMgorCQlzbmFwcHkK KwkiCisJYnVpbGQvbGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weSAtLXN5c3RlbS1s aWJyYXJpZXMgJHtzeXN0ZW19Cit9CisKKyMgUHJvdmlkZSBhIHdyYXBwZXIgdG8gcnVuIC4veGJw cy1zcmMgLWogMSBidWlsZCBsYXRlcgorX3dyYXBfbmluamEoKSB7CisJY2F0IDw8LSdfRU9GJyA+ IiRYQlBTX1dSQVBQRVJESVIiL25pbmphCisJIyEvYmluL3NoCisKKwlleGVjIC91c3IvYmluL25p bmphICROSU5KQUZMQUdTICIkQCIKKwlfRU9GCisJY2htb2QgK3ggIiRYQlBTX1dSQVBQRVJESVIi L25pbmphCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJX2Jvb3RzdHJhcF9nbgorCSMgX3VuYnVu ZGxlX2xpYnMKKwlfd3JhcF9uaW5qYQorCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dya3NyY30vc3Jj LzNyZHBhcnR5L2duL291dC9SZWxlYXNlIgorfQorCitwcmVfYnVpbGQoKSB7CisJZXhwb3J0IFBB VEg9IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UiCisJZXhwb3J0 IE5JTkpBRkxBR1M9IiRtYWtlam9icyIKKworfQorCitwcmVfaW5zdGFsbCgpIHsKKwlleHBvcnQg UEFUSD0iJFBBVEg6JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSIKK30KKwor cXQ2LXdlYmVuZ2luZS1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtd2ViY2hhbm5lbC1kZXZlbD49JHt2ZXJzaW9ufV8x CisJIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbD49JHt2ZXJzaW9ufV8xIHF0Ni1sb2NhdGlvbi1kZXZl bD49JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFr ZQorCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJ fQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZSBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi44NDQ1NTI0NjUyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvdXBkYXRlCkBAIC0wLDAgKzEgQEAKK3BrZ25hbWU9IiR7cGtnbmFtZS82LS99LWV2ZXJ5d2hl cmUtc3JjIgo= --===============2373409460111765568==--