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 3634 invoked from network); 7 Aug 2022 04:36:14 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 7 Aug 2022 04:36:14 -0000 Content-Type: multipart/mixed; boundary="===============5317049585424487782==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_WIP_Qt6_webengine?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sun, 07 Aug 2022 06:36:12 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============5317049585424487782== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHNnbiBhZ2FpbnN0IG1hc3RlciBvbiB0aGUg dm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vc2duL3ZvaWQtcGFj a2FnZXMgcXQ2LXdlYmVuZ2luZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMzg1MDkKCldJUCBRdDYgd2ViZW5naW5lCjwhLS0gVW5jb21tZW50IHJlbGV2 YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFwcGxpY2FibGUg LS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBp biB0aGlzIFBSOiAqKllFUyoqfCoqYnJpZWZseSoqfCoqTk8qKg0KW2NpIHNraXBdDQoNCjwhLS0N CiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1 YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVT Kip8KipOTyoqDQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRh a2UgbW9yZSB0aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVk IGluDQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFz dGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBs ZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jv c3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5n IENJLg0KLS0+DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlz IFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkg YnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0 ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAt IGFybXY2bC1tdXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4NTA5LnBhdGNoIGlzIGF0dGFjaGVk --===============5317049585424487782== 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 bSBmNDNmZWY2Zjg3MGMyMGNiNGUyOGM4NmZjYzIxZmVhOTVlYWY2ZmYwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgMjYg SnVuIDIwMjEgMTI6MjU6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzIyXSBOZXcgcGFja2Fn ZTogcXQ2LXdlYmNoYW5uZWwtNi4yLjEKCi0tLQogc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZl 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 CgpGcm9tIDVmOGU5ZjZiNGY4NjE4NzU2M2YxNjBmZDc1MWEyMmJjMGZhYjJmNGUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU2F0 LCAyNiBKdW4gMjAyMSAyMTowODoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjJdIE5ldyBw YWNrYWdlOiBxdDYtbXVsdGltZWRpYS02LjIuMQoKLS0tCiBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlh 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 K3BrZ25hbWU9IiR7cGtnbmFtZS82LS99LWV2ZXJ5d2hlcmUtc3JjIgoKRnJvbSBkMWQyMzMyMDcw YWQwODJiYzI4ZDYxZmMxYmVhODQ3MzVhYjc4YzMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9 MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA3IEF1ZyAyMDIyIDEx OjM0OjQwICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMi8yMl0gcXQ2LXdlYmVuZ2luZTogdXBkYXRl IHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZGV2ZWwgICAgICAgICAgICAg ICAgICAgfCAgICAxICsKIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9maWxlcy9yZXNvbHZfY29tcGF0 LmggICB8ICAgMjkgKwogLi4uL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoICAgICAg ICAgIHwgICAxMSArCiAuLi4vcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRjaCAgICAgICAg ICAgfCAgIDIwICsKIC4uLi9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRjaCAgICAgICAgICAg ICB8ICAgMTAgKwogLi4uLzAwMDQtcHBjLWRpc2FibGUtanhsLWRlY29kZXIucGF0Y2ggICAgICAg IHwgICAxMyArCiAuLi4vcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoICAg fCAgIDE0ICsKIC4uLi8wMTAwLWNocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaCAgICB8 ICAgNTggKwogLi4uL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5wYXRjaCAgIHwg ICAxNiArCiAuLi4vMDEwMi1jaHJvbWl1bS05MC1ydXktaW5jbHVkZS5wYXRjaCAgICAgICAgfCAg IDE5ICsKIC4uLi12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaCB8ICAg MjIgKwogLi4uLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2ggICAgICAgIHwgIDE2 MiArCiAuLi4tY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2ggfCAgIDE1 ICsKIC4uLi9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaCB8ICAgMjAg KwogLi4uLzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaCAgIHwgICAxOCAr CiAuLi4vMDEwOC1jaHJvbWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2ggICAgfCAgIDUzICsK IC4uLi8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggICB8ICAgMzIgKwog Li4uaXVtLXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNoIHwgICA1NyArCiAu Li4xMS1jaHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2ggfCAgIDEwICsKIC4u Li8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoICAgICB8ICAgMjQgKwogLi4u LWluY2x1ZGUtc3lzLXJlZy5oLXRvLWdldC1fX1dPUkRTSVpFLnBhdGNoIHwgICAyMSArCiAuLi4v MDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2ggfCAgMTAzICsKIC4uLi8w MjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2ggICAgICB8ICAgNjIgKwogLi4uLzAy MDMtY2hyb21pdW0tbXVzbC1zaWdpbmZvX3QucGF0Y2ggICAgICAgIHwgICAxOCArCiAuLi4vMDIw NC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2ggICAgICAgfCAgIDIwICsKIC4uLi9wYXRj aGVzLzAyMDUtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoICB8ICAgOTIgKwogLi4uMDIwNi1j aHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoIHwgICAxNSArCiAuLi4tY2hyb21p dW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2ggfCAgIDMwICsKIC4uLi9wYXRjaGVz LzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaCB8ICAxMjUgKwogLi4uLzAyMDktY2hy b21pdW0tbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoIHwgICAyMiArCiAuLi4vMDIxMC1jaHJv bWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2ggfCAgIDE0ICsKIC4uLml1bS1tdXNsLWNh bm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaCB8ICAgMTEgKwogLi4uLzAyMTItY2hyb21p dW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoICAgIHwgICAyOSArCiAuLi4vcGF0Y2hlcy8wMjEz LWNocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2ggfCAgIDIyICsKIC4uLi9wYXRjaGVzLzAyMTQt Y2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaCAgICB8ICAxMDggKwogLi4uL3BhdGNoZXMvMDIxNS1j aHJvbWl1bS1tdXNsLWNkZWZzLnBhdGNoICAgIHwgICAyOSArCiAuLi4vcGF0Y2hlcy8wMjE2LWNo cm9taXVtLW11c2wtc3RhdC5wYXRjaCAgICAgfCAgIDEyICsKIC4uLi9wYXRjaGVzLzAyMTctY2hy b21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaCB8ICAgNzcgKwogLi4uL3BhdGNoZXMvMDYwMC1jaHJv bWl1bS1zbmRpby5wYXRjaCAgICAgICAgIHwgIDg3NiArKysrCiAuLi4vcGF0Y2hlcy8wNzAwLWFy bXY3bC1uZW9uLnBhdGNoICAgICAgICAgICAgfCAgIDEwICsKIC4uLi8wNzUwLWNocm9taXVtLW11 c2wtYXJtLXVzZXJfdmZwLnBhdGNoICAgICB8ICAgMjAgKwogLi4uLzA3NTEtY2hyb21pdW0tbXVz bC1hcm0tZWxmX2F1eHZfdC5wYXRjaCAgIHwgICAxOCArCiAuLi4wODAxLWNocm9taXVtLWk2ODYt dmFhcGktZnBlcm1pc3NpdmUucGF0Y2ggfCAgIDI0ICsKIC4uLi9wYXRjaGVzLzA5MDAteHh4LXBw YzY0bGUtbGlidnB4LnBhdGNoICAgICB8ICAgNjUgKwogLi4uLzA5MDEteHh4LXBwYzY0bGUtc2Fu ZGJveC1saW51eC1zdGF0LnBhdGNoIHwgICAzMSArCiAuLi4vcGF0Y2hlcy8wOTAyLXh4eC1wcGM2 NGxlLXN1cHBvcnQucGF0Y2ggICAgfCAzNTU5ICsrKysrKysrKysrKysrKysrCiAuLi4vMDkwMy14 eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaCAgICAgICAgfCAgIDE4ICsKIHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAxNTEgKwogc3JjcGtncy9xdDYt d2ViZW5naW5lL3VwZGF0ZSAgICAgICAgICAgICAgICAgIHwgICAgMSArCiA0OSBmaWxlcyBjaGFu Z2VkLCA2MTg3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv ZmlsZXMvcmVzb2x2X2NvbXBhdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNy b3NzLWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1j aGVjay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMDAtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9t aXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS12OC1tb25vdG9uaWMtcHRocmVhZC1jb250 X3RpbWVkd2FpdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVy dC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNy1jaHJv bWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1maXgtbmFycm93aW5nLWNhc3Qu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11c2Ut ZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJl YWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTUwLWNocm9taXVtLWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1bS1tdXNsLWluY2x1 ZGUtc3lzLXJlZy5oLXRvLWdldC1fX1dPUkRTSVpFLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNo LXRvLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAzLWNocm9taXVtLW11c2wt c2lnaW5mb190LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wt c2FuZGJveC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAyMDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDctY2hyb21pdW0t bXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA4LWNocm9taXVtLW11c2wtZXhlY2luZm8ucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA5 LWNocm9taXVtLW11c2wtdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2ZWMt cHVzaF9iYWNrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIxMS1jaHJvbWl1bS1tdXNsLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAy MTItY2hyb21pdW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMy1jaHJvbWl1bS1tdXNsLWNyYXNocGFk LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNS1jaHJvbWl1bS1tdXNsLWNkZWZzLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNi1jaHJv bWl1bS1tdXNsLXN0YXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjE3LWNocm9taXVtLW11c2wtcmVzb2x2ZXIucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNjAwLWNocm9taXVtLXNu ZGlvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNo cm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wODAxLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1p c3NpdmUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEteHh4LXBwYzY0bGUtc2FuZGJveC1saW51 eC1zdGF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMy14eHgtcHBjNjRsZS1zd2lmdHNoYWRl ci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0 ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZGV2ZWwgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi44ZTRkMWI5 OWM1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZGV2ZWwKQEAg LTAsMCArMSBAQAorcXQ2LXdlYmVuZ2luZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9maWxlcy9yZXNvbHZfY29tcGF0LmggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvZmlsZXMvcmVzb2x2X2NvbXBhdC5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGYwZTg1MmExOWQwCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL2ZpbGVzL3Jlc29sdl9jb21wYXQuaApAQCAtMCwwICsx LDI5IEBACisjaWYgIWRlZmluZWQoX19HTElCQ19fKQorLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICog cmVzb2x2X2NvbXBhdC5oCisgKgorICogTWltaWNrIEdMSUJDJ3MgcmVzX25pbml0KCkgYW5kIHJl c19uY2xvc2UoKSBmb3IgbXVzbCBsaWJjCisgKiBOb3RlOiByZXNfaW5pdCgpIGlzIGFjdHVhbGx5 IGRlcHJlY2F0ZWQgYWNjb3JkaW5nIHRvCisgKiBodHRwOi8vZG9jcy5vcmFjbGUuY29tL2NkL0Uz Njc4NF8wMS9odG1sL0UzNjg3NS9yZXMtbmNsb3NlLTNyZXNvbHYuaHRtbAorICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworI2luY2x1ZGUgPHN0cmluZy5oPgorCitzdGF0aWMgaW5saW5lIGludCByZXNfbmlu aXQocmVzX3N0YXRlIHN0YXRwKQoreworCWludCByYyA9IHJlc19pbml0KCk7CisJaWYgKHN0YXRw ICE9ICZfcmVzKSB7CisJCW1lbWNweShzdGF0cCwgJl9yZXMsIHNpemVvZigqc3RhdHApKTsKKwl9 CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW5saW5lIGludCByZXNfbmNsb3NlKHJlc19zdGF0 ZSBzdGF0cCkKK3sKKwlpZiAoIXN0YXRwKQorCQlyZXR1cm4gLTE7CisJaWYgKHN0YXRwICE9ICZf cmVzKSB7CisJCW1lbXNldChzdGF0cCwgMCwgc2l6ZW9mKCpzdGF0cCkpOworCX0KKwlyZXR1cm4g MDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMWJhMzNmOGU2ZmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDAwMS1Ob25lLW5vLWRlYnVnLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAK Ky0tLSBhL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorKysrIGIvY21ha2UvRnVuY3Rpb25zLmNtYWtl CitAQCAtODEzLDYgKzgxMyw4IEBAIG1hY3JvKGFwcGVuZF9idWlsZF90eXBlX3NldHVwKQorICAg ICAgICAgZW5kaWYoKQorICAgICBlbHNlaWYoJHtjb25maWd9IFNUUkVRVUFMICJNaW5TaXplUmVs IikKKyAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGlzX2RlYnVnPWZhbHNlIHN5bWJvbF9s ZXZlbD0wIG9wdGltaXplX2Zvcl9zaXplPXRydWUpCisrICAgIGVsc2VpZigke2NvbmZpZ30gU1RS RVFVQUwgIk5vbmUiKQorKyAgICAgICAgbGlzdChBUFBFTkQgZ25BcmdBcmcgaXNfZGVidWc9ZmFs c2Ugc3ltYm9sX2xldmVsPTApCisgICAgIGVuZGlmKCkKKyAgICAgaWYoRkVBVFVSRV9kZXZlbG9w ZXJfYnVpbGQgT1IgKCR7Y29uZmlnfSBTVFJFUVVBTCAiRGVidWciKSBPUiBRVF9GRUFUVVJFX3dl YmVuZ2luZV9zYW5pdGl6ZXIpCisgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3MmVmMWFkMWExMAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDItZW5h YmxlLXBwYzY0LnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL2NtYWtlL0Z1bmN0aW9ucy5j bWFrZQorKysrIGIvY21ha2UvRnVuY3Rpb25zLmNtYWtlCitAQCAtNjIyLDYgKzYyMiw4IEBAIGZ1 bmN0aW9uKGdldF9nbl9hcmNoIHJlc3VsdCBhcmNoKQorICAgICAgICAgc2V0KCR7cmVzdWx0fSAi bWlwc2VsIiBQQVJFTlRfU0NPUEUpCisgICAgIGVsc2VpZihhcmNoIFNUUkVRVUFMICJtaXBzZWw2 NCIpCisgICAgICAgICBzZXQoJHtyZXN1bHR9ICJtaXBzNjRlbCIgUEFSRU5UX1NDT1BFKQorKyAg ICBlbHNlaWYoYXJjaCBTVFJFUVVBTCAicG93ZXI2NCIpCisrICAgICAgICBzZXQoJHtyZXN1bHR9 ICJwb3dlcjY0IiBQQVJFTlRfU0NPUEUpCisgICAgIGVsc2UoKQorICAgICAgICAgbWVzc2FnZShE RUJVRyAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlOiAke2FyY2h9IikKKyAgICAgZW5kaWYoKQor QEAgLTY0MSw2ICs2NDMsOCBAQCBmdW5jdGlvbihnZXRfdjhfYXJjaCByZXN1bHQgdGFyZ2V0QXJj aCBoCisgICAgICAgICAgICAgc2V0KCR7cmVzdWx0fSAibWlwc2VsIiBQQVJFTlRfU0NPUEUpCisg ICAgICAgICBlbHNlaWYoaG9zdEFyY2ggU1RSRVFVQUwgIm1pcHNlbDY0IikKKyAgICAgICAgICAg ICBzZXQoJHtyZXN1bHR9ICJtaXBzZWwiIFBBUkVOVF9TQ09QRSkKKysgICAgICAgIGVsc2VpZiho b3N0QXJjaCBTVFJFUVVBTCAicG93ZXI2NCIpCisrICAgICAgICAgICAgc2V0KCR7cmVzdWx0fSAi cG93ZXI2NCIgUEFSRU5UX1NDT1BFKQorICAgICAgICAgZWxzZSgpCisgICAgICAgICAgICAgbWVz c2FnZShERUJVRyAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlOiAke2hvc3RBcmNofSIpCisgICAg ICAgICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MDAzLWNyb3NzLWhhY2sucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAz LWNyb3NzLWhhY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5lYTlmOTAwOTRhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3Jj L2NvcmUvYXBpL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvY29yZS9hcGkvQ01ha2VMaXN0cy50 eHQKK0BAIC01MCw2ICs1MCw3IEBAIHF0X2ludGVybmFsX2FkZF9tb2R1bGUoV2ViRW5naW5lQ29y ZQorICAgICAgICAgUXQ6Okd1aQorICAgICAgICAgUXQ6Ok5ldHdvcmsKKyAgICAgICAgIFF0OjpR dWljaworKyAgICAgICAgWDExCisgKQorIAorIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJFbmdp bmVDb3JlIFBST1BFUlRJRVMgUVRXRUJFTkdJTkVQUk9DRVNTX05BTUUgJHtxdFdlYkVuZ2luZVBy b2Nlc3NOYW1lfSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAw MDQtcHBjLWRpc2FibGUtanhsLWRlY29kZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzNjMTE1MTk2OGY0Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwNC1wcGMtZGlzYWJsZS1qeGwtZGVj b2Rlci5wYXRjaApAQCAtMCwwICsxLDEzIEBACistLS0gYS9zcmMvY29yZS9DTWFrZUxpc3RzLnR4 dAorKysrIGIvc3JjL2NvcmUvQ01ha2VMaXN0cy50eHQKK0BAIC00MTQsNiArNDE0LDEwIEBAIGZv cmVhY2goYXJjaCAke2FyY2hzfSkKKyAgICAgICAgICAgICAgICAgQ09ORElUSU9OIFFUX0ZFQVRV UkVfd2ViZW5naW5lX296b25lX3gxMSBBTkQgWFNDUk5TQVZFUl9GT1VORAorICAgICAgICAgICAg ICkKKyAKKysgICAgICAgICAgICBpZiAoY3B1IFNUUkVRVUFMICJwcGM2NCIpCisrICAgICAgICAg ICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGVuYWJsZV9qeGxfZGVjb2Rlcj1mYWxzZSkKKysg ICAgICAgICAgICBlbmRpZigpCisrCisgICAgICAgICAgICAgaWYoUVRfRkVBVFVSRV93ZWJlbmdp bmVfa2VyYmVyb3MpCisgICAgICAgICAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnCisgICAg ICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZ3NzYXBpX2luY2x1ZGVfZGlyPSIke0dTU0FQSV9J TkNMVURFX0RJUlN9L2dzc2FwaSIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjc1NmJmMDI4NmJiCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1j aGVjay5wYXRjaApAQCAtMCwwICsxLDE0IEBACistLS0gYS9jb25maWd1cmUuY21ha2UKKysrKyBi L2NvbmZpZ3VyZS5jbWFrZQorQEAgLTQ5OSwxMSArNDk5LDYgQEAgYWRkX2NoZWNrX2Zvcl9zdXBw b3J0KAorICkKKyBhZGRfY2hlY2tfZm9yX3N1cHBvcnQoCisgICAgTU9EVUxFUyBRdFdlYkVuZ2lu ZSBRdFBkZgorLSAgIENPTkRJVElPTiBOT1QgTElOVVggT1IgVEVTVF9nbGliYworLSAgIE1FU1NB R0UgIkEgc3VpdGFibGUgdmVyc2lvbiA+PSAyLjE3IG9mIGdsaWJjIGlzIHJlcXVpcmVkLiIKKy0p CistYWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorLSAgIE1PRFVMRVMgUXRXZWJFbmdpbmUgUXRQZGYK KyAgICBDT05ESVRJT04gTk9UIExJTlVYIE9SIFRFU1Rfa2hyCisgICAgTUVTU0FHRSAiQnVpbGQg cmVxdWlyZXMgS2hyb25vcyBkZXZlbG9wbWVudCBoZWFkZXJzIGZvciBidWlsZCAtIHNlZSBtZXNh L2xpYmVnbDEtbWVzYS1kZXYiCisgKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2ggYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJkZDdiNGFhOTQ4 ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDAt Y2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCkBAIC0wLDAgKzEsNTggQEAKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv c3lzY2FsbF9zZXRzLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworQEAgLTQxMyw2ICs0MTMsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPCisgICBzd2l0Y2ggKHN5 c25vKSB7CisgICAgIGNhc2UgX19OUl9leGl0OgorICAgICBjYXNlIF9fTlJfZXhpdF9ncm91cDoK KysgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6CisgICAgIGNhc2UgX19OUl93YWl0NDoKKyAgICAg Y2FzZSBfX05SX3dhaXRpZDoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5 c2NhbGxzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMjE1LDQgKzEyMTUsOCBAQAor ICNkZWZpbmUgX19OUl9sYW5kbG9ja19yZXN0cmljdF9zZWxmIDQ0NgorICNlbmRpZgorIAorKyNp ZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMjgz CisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX0FS TTY0X0xJTlVYX1NZU0NBTExTX0hfCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5 c2NhbGxzLmgKK0BAIC0xNjE3LDYgKzE2MTcsMTAgQEAKKyAjZGVmaW5lIF9fTlJfbGFuZGxvY2tf cmVzdHJpY3Rfc2VsZiAoX19OUl9TWVNDQUxMX0JBU0UgKyA0NDYpCisgI2VuZGlmCisgCisrI2lm ICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19O Ul9TWVNDQUxMX0JBU0UrMzg5KQorKyNlbmRpZgorKworIC8vIEFSTSBwcml2YXRlIHN5c2NhbGxz LgorICNpZiAhZGVmaW5lZChfX0FSTV9OUl9CQVNFKQorICNkZWZpbmUgX19BUk1fTlJfQkFTRSAo X19OUl9TWVNDQUxMX0JBU0UgKyAweEYwMDAwKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4 Nl8zMl9saW51eF9zeXNjYWxscy5oCitAQCAtMTc1MCw1ICsxNzUwLDkgQEAKKyAjZGVmaW5lIF9f TlJfbGFuZGxvY2tfcmVzdHJpY3Rfc2VsZiA0NDYKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQo X19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDM3NQorKyNlbmRpZgor KworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfMzJfTElOVVhf U1lTQ0FMTFNfSF8KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lz Y2FsbHMuaAorQEAgLTE0MzgsNSArMTQzOCw5IEBACisgI2RlZmluZSBfX05SX2xhbmRsb2NrX3Jl c3RyaWN0X3NlbGYgNDQ2CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmll cikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzMjQKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8v IFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzY0X0xJTlVYX1NZU0NBTExTX0hfCisg CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtc2l6ZV90LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmNjYzA4NWRhMzExCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3Qu cGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2FuZ2xlL2luY2x1ZGUvcGxhdGZvcm0vUGxhdGZvcm1NZXRob2RzLmgKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL3BsYXRmb3JtL1Bs YXRmb3JtTWV0aG9kcy5oCitAQCAtMjM5LDExICsyMzksMTEgQEAgaW5saW5lIHZvaWQgRGVmYXVs dE92ZXJyaWRlRmVhdHVyZXNNdGwoUAorIHVzaW5nIFByb2dyYW1LZXlUeXBlICAgPSBzdGQ6OmFy cmF5PHVpbnQ4X3QsIDIwPjsKKyB1c2luZyBDYWNoZVByb2dyYW1GdW5jID0gdm9pZCAoKikoUGxh dGZvcm1NZXRob2RzICpwbGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgUHJvZ3JhbUtleVR5cGUgJmtleSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGQ6OnNpemVfdCBwcm9ncmFtU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcHJvZ3JhbUJ5dGVzKTsKKyBpbmxpbmUgdm9pZCBE ZWZhdWx0Q2FjaGVQcm9ncmFtKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQcm9ncmFtS2V5VHlwZSAma2V5LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgcHJvZ3JhbVNpemUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwcm9ncmFtQnl0ZXMpCisg e30KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hy b21pdW0tOTAtcnV5LWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTAyLWNocm9taXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uYmJiYTU3OTA3NmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS05MC1ydXktaW5jbHVkZS5w YXRjaApAQCAtMCwwICsxLDE5IEBACitGcm9tIDcxNDA5MmYzMzZiYjE0ZDJmY2MyNzM5NmVjMzIz YjNkODQzYmI5NjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRt YW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRlOiBUaHUsIDQgTWFyIDIwMjEgMTU6MDU6 NDYgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gSVdZVTogaW5jbHVkZSBsaW1pdHMgZm9yIHN0ZDo6 bnVtZXJpY19saW1pdHMKKworLS0tCisgdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvYmxvY2tfbWFw LmNjIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9ibG9ja19tYXAuY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9ibG9ja19t YXAuY2MKK0BAIC0xNyw2ICsxNyw3IEBAIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgor IAorICNpbmNsdWRlIDxhbGdvcml0aG0+CisgI2luY2x1ZGUgPGNzdGRpbnQ+CisrI2luY2x1ZGUg PGxpbWl0cz4KKyAKKyAjaWZkZWYgUlVZX01BS0VCTE9DS01BUF9ERUJVRworICNpbmNsdWRlIDxj c3RkaW8+CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAzLWNo cm9taXVtLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS12OC1tb25vdG9uaWMtcHRocmVh ZC1jb250X3RpbWVkd2FpdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjFkYzhiYzRkM2QxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMDMtY2hyb21pdW0tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1l ZHdhaXQucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorVXNlIG1vbm90b25pYyBjbG9jayBmb3IgcHRo cmVhZF9jb25kX3RpbWVkd2FpdCB3aXRoIG11c2wgdG9vLgorCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZh cmlhYmxlLmNjCitAQCAtMjAsNyArMjAsNyBAQCBuYW1lc3BhY2UgYmFzZSB7CisgCisgQ29uZGl0 aW9uVmFyaWFibGU6OkNvbmRpdGlvblZhcmlhYmxlKCkgeworICNpZiAoVjhfT1NfRlJFRUJTRCB8 fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCistICAgICAoVjhfT1NfTElOVVgg JiYgVjhfTElCQ19HTElCQykpCisrICAgICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZyZWUvTmV0 L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQorICAg Ly8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9u aWMgY2xvY2suCisgICBwdGhyZWFkX2NvbmRhdHRyX3QgYXR0cjsKK0BAIC05Niw3ICs5Niw3IEBA IGJvb2wgQ29uZGl0aW9uVmFyaWFibGU6OldhaXRGb3IoTXV0ZXgqIG0KKyAgICAgICAmbmF0aXZl X2hhbmRsZV8sICZtdXRleC0+bmF0aXZlX2hhbmRsZSgpLCAmdHMpOworICNlbHNlCisgI2lmIChW OF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0gICAg IChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVYKQorICAg Ly8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdl IHRoZSB0aW1lCisgICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1 c2UgdGhlIG1vbm90b25pYyBjbG9jay4KKyAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tf TU9OT1RPTklDLCAmdHMpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwNC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MmIxZWU5ZWMwNjMKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVtLXJldmVy dC05ZDA4MGMwLnBhdGNoCkBAIC0wLDAgKzEsMTYyIEBACisgT3JpZ2luYWwgY2hhbmdlJ3MgZGVz Y3JpcHRpb246CisgPiBSZXBsYWNlICdibGFja2xpc3QnIHdpdGggJ2lnbm9yZWxpc3QnIGluIC4v dG9vbHMvbXNhbi8uCisgPgorID4gQnVnOiAxMDk3MjcyLCAxMDk3MjY4CisgPiBDaGFuZ2UtSWQ6 IElkNWM4MjI3YTViZmIxZmZhZWM4MmQzMTY4YjYwOTA4NWIxMGM4Mjk3CisgPiBSZXZpZXdlZC1v bjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3Ny Yy8rLzI4Njc3MzAKKyA+IENvbW1pdC1RdWV1ZTogRHlsYW4gQ3V0bGVyIDxkeWxhbmN1dGxlckBn b29nbGUuY29tPgorID4gUmV2aWV3ZWQtYnk6IE5pY28gV2ViZXIgPHRoYWtpc0BjaHJvbWl1bS5v cmc+CisgPiBSZXZpZXdlZC1ieTogSm9uYXRoYW4gTWV0em1hbiA8bWV0em1hbkBjaHJvbWl1bS5v cmc+CisgPiBDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjODgzMDM1fQor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9zYW5pdGl6ZXJzL0JVSUxE LmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL3Nhbml0aXplcnMv QlVJTEQuZ24KK0BAIC0yNzIsMTEgKzI3MiwxMSBAQCBjb25maWcoImFzYW5fZmxhZ3MiKSB7Cisg ICBpZiAoaXNfYXNhbikgeworICAgICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZT1hZGRyZXNzIiBd CisgICAgIGlmIChpc193aW4pIHsKKy0gICAgICBpZiAoIWRlZmluZWQoYXNhbl93aW5fYmxvY2ts aXN0X3BhdGgpKSB7CistICAgICAgICBhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCA9CisrICAgICAg aWYgKCFkZWZpbmVkKGFzYW5fd2luX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgICAgYXNhbl93 aW5fYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21l bW9yeS9hc2FuL2Jsb2NrbGlzdF93aW4udHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgICAgfQor LSAgICAgIGNmbGFncyArPSBbICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JGFzYW5fd2luX2Jsb2Nr bGlzdF9wYXRoIiBdCisrICAgICAgY2ZsYWdzICs9IFsgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRh c2FuX3dpbl9ibGFja2xpc3RfcGF0aCIgXQorICAgICB9CisgICB9CisgfQorQEAgLTMwNiwxMyAr MzA2LDEzIEBAIGNvbmZpZygibGlua19zaGFyZWRfbGlicmFyeSIpIHsKKyBjb25maWcoImNmaV9m bGFncyIpIHsKKyAgIGNmbGFncyA9IFtdCisgICBpZiAoaXNfY2ZpICYmIGN1cnJlbnRfdG9vbGNo YWluID09IGRlZmF1bHRfdG9vbGNoYWluKSB7CistICAgIGlmICghZGVmaW5lZChjZmlfaWdub3Jl bGlzdF9wYXRoKSkgeworLSAgICAgIGNmaV9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRl ZmluZWQoY2ZpX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIGNmaV9ibGFja2xpc3RfcGF0aCA9 CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL2NmaS9pZ25vcmVzLnR4dCIsIHJvb3Rf YnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyArPSBbCisgICAgICAgIi1mc2FuaXRpemU9 Y2ZpLXZjYWxsIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRjZmlfaWdub3JlbGlz dF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JGNmaV9ibGFja2xpc3RfcGF0 aCIsCisgICAgIF0KKyAKKyAgICAgaWYgKHVzZV9jZmlfY2FzdCkgeworQEAgLTQwOSwxNCArNDA5 LDE0IEBAIGNvbmZpZygibXNhbl9mbGFncyIpIHsKKyAgIGlmIChpc19tc2FuKSB7CisgICAgIGFz c2VydChpc19saW51eCB8fCBpc19jaHJvbWVvcywKKyAgICAgICAgICAgICJtc2FuIG9ubHkgc3Vw cG9ydGVkIG9uIGxpbnV4IHg4Nl82NC9DaHJvbWVPUyIpCistICAgIGlmICghZGVmaW5lZChtc2Fu X2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICBtc2FuX2lnbm9yZWxpc3RfcGF0aCA9CistICAg ICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21zYW4vaWdub3JlbGlzdC50eHQiLCByb290X2J1 aWxkX2RpcikKKysgICAgaWYgKCFkZWZpbmVkKG1zYW5fYmxhY2tsaXN0X3BhdGgpKSB7CisrICAg ICAgbXNhbl9ibGFja2xpc3RfcGF0aCA9CisrICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xz L21zYW4vYmxhY2tsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFn cyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT1tZW1vcnkiLAorICAgICAgICItZnNhbml0aXplLW1l bW9yeS10cmFjay1vcmlnaW5zPSRtc2FuX3RyYWNrX29yaWdpbnMiLAorLSAgICAgICItZnNhbml0 aXplLWlnbm9yZWxpc3Q9JG1zYW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6 ZS1ibGFja2xpc3Q9JG1zYW5fYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQorQEAg LTQyNCwxMyArNDI0LDEzIEBAIGNvbmZpZygibXNhbl9mbGFncyIpIHsKKyBjb25maWcoInRzYW5f ZmxhZ3MiKSB7CisgICBpZiAoaXNfdHNhbikgeworICAgICBhc3NlcnQoaXNfbGludXggfHwgaXNf Y2hyb21lb3MsICJ0c2FuIG9ubHkgc3VwcG9ydGVkIG9uIGxpbnV4IHg4Nl82NCIpCistICAgIGlm ICghZGVmaW5lZCh0c2FuX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB0c2FuX2lnbm9yZWxp c3RfcGF0aCA9CisrICAgIGlmICghZGVmaW5lZCh0c2FuX2JsYWNrbGlzdF9wYXRoKSkgeworKyAg ICAgIHRzYW5fYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29s cy9tZW1vcnkvdHNhbl92Mi9pZ25vcmVzLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9Cisg ICAgIGNmbGFncyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT10aHJlYWQiLAorLSAgICAgICItZnNh bml0aXplLWlnbm9yZWxpc3Q9JHRzYW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5p dGl6ZS1ibGFja2xpc3Q9JHRzYW5fYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQor QEAgLTQzOCw4ICs0MzgsOCBAQCBjb25maWcoInRzYW5fZmxhZ3MiKSB7CisgY29uZmlnKCJ1YnNh bl9mbGFncyIpIHsKKyAgIGNmbGFncyA9IFtdCisgICBpZiAoaXNfdWJzYW4pIHsKKy0gICAgaWYg KCFkZWZpbmVkKHVic2FuX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl9pZ25vcmVs aXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodWJzYW5fYmxhY2tsaXN0X3BhdGgpKSB7Cisr ICAgICAgdWJzYW5fYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90 b29scy91YnNhbi9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAg IGNmbGFncyArPSBbCitAQCAtNDU2LDcgKzQ1Niw3IEBAIGNvbmZpZygidWJzYW5fZmxhZ3MiKSB7 CisgICAgICAgIi1mc2FuaXRpemU9c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAgICAgICIt ZnNhbml0aXplPXVucmVhY2hhYmxlIiwKKyAgICAgICAiLWZzYW5pdGl6ZT12bGEtYm91bmQiLAor LSAgICAgICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JHVic2FuX2lnbm9yZWxpc3RfcGF0aCIsCisr ICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR1YnNhbl9ibGFja2xpc3RfcGF0aCIsCisgICAg IF0KKyAgICAgaWYgKCFpc19jbGFuZykgeworICAgICAgICMgVGhlc2UgZXhwb3NlcyB0b28gbXVj aCBpbGxlZ2FsIEMrKzE0IGNvZGUgdG8gY29tcGlsZSBvbiBhbnl0aGluZyBzdHJpY3RlciB0aGFu IGNsYW5nOgorQEAgLTQ5Nyw4ICs0OTcsOCBAQCBjb25maWcoInVic2FuX25vX3JlY292ZXIiKSB7 CisgCisgY29uZmlnKCJ1YnNhbl9zZWN1cml0eV9mbGFncyIpIHsKKyAgIGlmIChpc191YnNhbl9z ZWN1cml0eSkgeworLSAgICBpZiAoIWRlZmluZWQodWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9w YXRoKSkgeworLSAgICAgIHVic2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCA9CisrICAgIGlm ICghZGVmaW5lZCh1YnNhbl9zZWN1cml0eV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB1YnNh bl9zZWN1cml0eV9ibGFja2xpc3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rv b2xzL3Vic2FuL3NlY3VyaXR5X2lnbm9yZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAg IH0KKyAgICAgY2ZsYWdzID0gWworQEAgLTUwNiw3ICs1MDYsNyBAQCBjb25maWcoInVic2FuX3Nl Y3VyaXR5X2ZsYWdzIikgeworICAgICAgICItZnNhbml0aXplPXNoaWZ0IiwKKyAgICAgICAiLWZz YW5pdGl6ZT1zaWduZWQtaW50ZWdlci1vdmVyZmxvdyIsCisgICAgICAgIi1mc2FuaXRpemU9dmxh LWJvdW5kIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9zZWN1cml0eV9p Z25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fc2Vj dXJpdHlfYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQorQEAgLTUxOSwxMyArNTE5 LDEzIEBAIGNvbmZpZygidWJzYW5fbnVsbF9mbGFncyIpIHsKKyAKKyBjb25maWcoInVic2FuX3Zw dHJfZmxhZ3MiKSB7CisgICBpZiAoaXNfdWJzYW5fdnB0cikgeworLSAgICBpZiAoIWRlZmluZWQo dWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdWJzYW5fdnB0cl9pZ25vcmVs aXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCkp IHsKKysgICAgICB1YnNhbl92cHRyX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNl X3BhdGgoIi8vdG9vbHMvdWJzYW4vdnB0cl9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGly KQorICAgICB9CisgICAgIGNmbGFncyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT12cHRyIiwKKy0g ICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl92cHRyX2lnbm9yZWxpc3RfcGF0aCIs CisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR1YnNhbl92cHRyX2JsYWNrbGlzdF9wYXRo IiwKKyAgICAgXQorICAgICBpZiAoIWlzX2NsYW5nKSB7CisgICAgICAgIyBDbGFuZyBzcGVjaWZp YyBmbGFnOgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkX292ZXJyaWRlcy9idWls ZC5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZF9vdmVycmlkZXMvYnVpbGQu Z25pCitAQCAtNDMsMTUgKzQzLDE1IEBAIGRlY2xhcmVfYXJncygpIHsKKyAjIEFsbG93cyBkaWZm ZXJlbnQgcHJvamVjdHMgdG8gc3BlY2lmeSB0aGVpciBvd24gc3VwcHJlc3Npb24vaWdub3JlIGxp c3RzIGZvcgorICMgc2FuaXRpemVyIHRvb2xzLgorICMgYXNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9 ICJwYXRoL3RvL2FzYW5fc3VwcHJlc3Npb25zLmNjIgorLSMgYXNhbl93aW5faWdub3JlbGlzdF9w YXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKysjIGFzYW5fd2luX2JsYWNr bGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKyAjIGxzYW5fc3Vw cHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by9sc2FuX3N1cHByZXNzaW9ucy5jYyIKKyAjIHRzYW5f c3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by90c2FuX3N1cHByZXNzaW9ucy5jYyIKKy0jIHRz YW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdHNhbi9pZ25vcmVzLnR4dCIKKy0jIG1zYW5f aWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9pZ25vcmVsaXN0LnR4dCIKKy0jIHVic2Fu X2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL2lnbm9yZWxpc3QudHh0IgorLSMgdWJz YW5fdnB0cl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi92cHRyX2lnbm9yZWxpc3Qu dHh0IgorLSMgdWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4v c2VjdXJpdHlfaWdub3JlbGlzdC50eHQiCistIyBjZmlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgv dG8vY2ZpL2lnbm9yZXMudHh0IgorKyMgdHNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Rz YW4vaWdub3Jlcy50eHQiCisrIyBtc2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9i bGFja2xpc3QudHh0IgorKyMgdWJzYW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi9i bGFja2xpc3QudHh0IgorKyMgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Vi c2FuL3ZwdHJfYmxhY2tsaXN0LnR4dCIKKysjIHVic2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRo ID0gInBhdGgvdG8vdWJzYW4vc2VjdXJpdHlfYmxhY2tsaXN0LnR4dCIKKysjIGNmaV9ibGFja2xp c3RfcGF0aCA9ICJwYXRoL3RvL2NmaS9pZ25vcmVzLnR4dCIKKyAKKyBkZWNsYXJlX2FyZ3MoKSB7 CisgICAjIEFuZHJvaWQgMzItYml0IG5vbi1jb21wb25lbnQsIG5vbi1jbGFuZyBidWlsZHMgY2Fu bm90IGhhdmUgc3ltYm9sX2xldmVsPTIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9w LW9mLXN5c3RlbS1qYXZhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uNDRmM2FhOGZhZTVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRj aApAQCAtMCwwICsxLDE1IEBACitUaGlzIHdhcyBkcm9wcGVkIGZvciBzb21lIHJlYXNvbiBpbiA2 OTUxYzM3Y2VjZDA1OTc5YjIzMmEzOWU1YzEwZTYzNDZhMGY3NGVmCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5weQorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Nsb3N1cmVfY29tcGlsZXIvY29t cGlsZXIucHkKK0BAIC0xMyw4ICsxMyw5IEBAIGltcG9ydCBzdWJwcm9jZXNzCisgCisgCisgX0NV UlJFTlRfRElSID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCistX0pB VkFfUEFUSCA9IG9zLnBhdGguam9pbihfQ1VSUkVOVF9ESVIsICIuLiIsICJqZGsiLCAiY3VycmVu dCIsICJiaW4iLCAiamF2YSIpCistYXNzZXJ0IG9zLnBhdGguaXNmaWxlKF9KQVZBX1BBVEgpLCAi amF2YSBvbmx5IGFsbG93ZWQgaW4gYW5kcm9pZCBidWlsZHMiCisrX0pBVkFfQklOID0gImphdmEi CisrX0pES19QQVRIID0gb3MucGF0aC5qb2luKF9DVVJSRU5UX0RJUiwgIi4uIiwgImpkayIsICJj dXJyZW50IiwgImJpbiIsICJqYXZhIikKKytfSkFWQV9QQVRIID0gX0pES19QQVRIIGlmIG9zLnBh dGguaXNmaWxlKF9KREtfUEFUSCkgZWxzZSBfSkFWQV9CSU4KKyAKKyBjbGFzcyBDb21waWxlcihv YmplY3QpOgorICAgIiIiUnVucyB0aGUgQ2xvc3VyZSBjb21waWxlciBvbiBnaXZlbiBzb3VyY2Ug ZmlsZXMgdG8gdHlwZWNoZWNrIHRoZW0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFlMDY3Y2M2ZWRhMAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hyb21pdW0t c3lzdGVtLW5vZGVqcy5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvbm9kZS9ub2RlLnB5CisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvbm9kZS9ub2RlLnB5CitAQCAtMzYsMTEgKzM2LDEyIEBAIGRlZiBH ZXRCaW5hcnlQYXRoKCk6CisgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAnRGFyd2luJyBhbmQg cGxhdGZvcm0ubWFjaGluZSgpID09ICdhcm02NCc6CisgICAgICAgcmV0dXJuIG9zLnBhdGguam9p bihvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ21hYycsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAnbm9kZS1kYXJ3aW4tYXJtNjQnLCAnYmluJywgJ25vZGUnKSkK Ky0gIHJldHVybiBvc19wYXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgKnsKKy0g ICAgJ0Rhcndpbic6ICgnbWFjJywgJ25vZGUtZGFyd2luLXg2NCcsICdiaW4nLCAnbm9kZScpLAor LSAgICAnTGludXgnOiAoJ2xpbnV4JywgJ25vZGUtbGludXgteDY0JywgJ2JpbicsICdub2RlJyks CistICAgICdXaW5kb3dzJzogKCd3aW4nLCAnbm9kZS5leGUnKSwKKy0gIH1bcGxhdGZvcm0uc3lz dGVtKCldKQorKyAgcmV0dXJuICIvdXNyL2Jpbi9ub2RlIgorKyAgI3JldHVybiBvc19wYXRoLmpv aW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgKnsKKysgICMgICdEYXJ3aW4nOiAoJ21hYycs ICdub2RlLWRhcndpbi14NjQnLCAnYmluJywgJ25vZGUnKSwKKysgICMgICdMaW51eCc6ICgnbGlu dXgnLCAnbm9kZS1saW51eC14NjQnLCAnYmluJywgJ25vZGUnKSwKKysgICMgICdXaW5kb3dzJzog KCd3aW4nLCAnbm9kZS5leGUnKSwKKysgICN9W3BsYXRmb3JtLnN5c3RlbSgpXSkKKyAKKyAKKyBk ZWYgUnVuTm9kZShjbWRfcGFydHMsIHN0ZG91dD1Ob25lKToKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Vyc2Vk XlVzY29wZWRfZmlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmE4ZjVkOTcxODgzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaApAQCAtMCww ICsxLDE4IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9zY29wZWRf ZmlsZV9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvc2Nv cGVkX2ZpbGVfbGludXguY2MKK0BAIC03NywxNSArNzcsMyBAQCBib29sIElzRkRPd25lZChpbnQg ZmQpIHsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlIGJhc2UKKy0KKy1leHRlcm4gIkMiIHsKKy0K Ky1pbnQgX19jbG9zZShpbnQpOworLQorLV9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1 bHQiKSwgbm9pbmxpbmUpKSBpbnQgY2xvc2UoaW50IGZkKSB7CistICBpZiAoYmFzZTo6SXNGRE93 bmVkKGZkKSAmJiBnX2lzX293bmVyc2hpcF9lbmZvcmNlZCkKKy0gICAgQ3Jhc2hPbkZkT3duZXJz aGlwVmlvbGF0aW9uKCk7CistICByZXR1cm4gX19jbG9zZShmZCk7CistfQorLQorLX0gIC8vIGV4 dGVybiAiQyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgt Y2hyb21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1maXgtbmFycm93aW5nLWNhc3QucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZDMyY2Q5Yjc0MTUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVtLWZpeC1u YXJyb3dpbmctY2FzdC5wYXRjaApAQCAtMCwwICsxLDUzIEBACistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL2ZpbGVfdXRpbF9saW51eC5jYworQEAgLTIzLDE0ICsyMywx NCBAQCBib29sIEdldEZpbGVTeXN0ZW1UeXBlKGNvbnN0IEZpbGVQYXRoJiBwCisgCisgICAvLyBO b3QgYWxsIHBvc3NpYmxlIHxzdGF0ZnNfYnVmLmZfdHlwZXwgdmFsdWVzIGFyZSBpbiBsaW51eC9t YWdpYy5oLgorICAgLy8gTWlzc2luZyB2YWx1ZXMgYXJlIGNvcGllZCBmcm9tIHRoZSBzdGF0ZnMg bWFuIHBhZ2UuCistICBzd2l0Y2ggKHN0YXRmc19idWYuZl90eXBlKSB7CisrICBzd2l0Y2ggKHN0 YXRpY19jYXN0PHVpbnRtYXhfdD4oc3RhdGZzX2J1Zi5mX3R5cGUpKSB7CisgICAgIGNhc2UgMDoK KyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNXzA7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2Ug RVhUMl9TVVBFUl9NQUdJQzogIC8vIEFsc28gZXh0MyBhbmQgZXh0NAorICAgICBjYXNlIE1TRE9T X1NVUEVSX01BR0lDOgorICAgICBjYXNlIFJFSVNFUkZTX1NVUEVSX01BR0lDOgorLSAgICBjYXNl IHN0YXRpY19jYXN0PGludD4oQlRSRlNfU1VQRVJfTUFHSUMpOgorKyAgICBjYXNlIEJUUkZTX1NV UEVSX01BR0lDOgorICAgICBjYXNlIDB4NTM0NjU0NEU6ICAvLyBOVEZTCisgICAgIGNhc2UgMHg1 ODQ2NTM0MjogIC8vIFhGUworICAgICBjYXNlIDB4MzE1MzQ2NEE6ICAvLyBKRlMKK0BAIC00MCwx NCArNDAsMTQgQEAgYm9vbCBHZXRGaWxlU3lzdGVtVHlwZShjb25zdCBGaWxlUGF0aCYgcAorICAg ICAgICp0eXBlID0gRklMRV9TWVNURU1fTkZTOworICAgICAgIGJyZWFrOworICAgICBjYXNlIFNN Ql9TVVBFUl9NQUdJQzoKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KDB4RkY1MzRENDIpOiAg Ly8gQ0lGUworKyAgICBjYXNlIDB4RkY1MzRENDI6ICAvLyBDSUZTCisgICAgICAgKnR5cGUgPSBG SUxFX1NZU1RFTV9TTUI7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQ09EQV9TVVBFUl9NQUdJ QzoKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX0NPREE7CisgICAgICAgYnJlYWs7CistICAg IGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExCRlNfTUFHSUMpOgorLSAgICBjYXNlIHN0YXRp Y19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgorKyAgICBjYXNlIEhVR0VUTEJGU19NQUdJQzoKKysg ICAgY2FzZSBSQU1GU19NQUdJQzoKKyAgICAgY2FzZSBUTVBGU19NQUdJQzoKKyAgICAgICAqdHlw ZSA9IEZJTEVfU1lTVEVNX01FTU9SWTsKKyAgICAgICBicmVhazsKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9iYXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL2Jhc2Uvc3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCitAQCAtMTAwLDEwICsx MDAsMTAgQEAgYm9vbCBJc1N0YXRzWmVyb0lmVW5saW1pdGVkKGNvbnN0IGJhc2U6OgorICAgaWYg KEhBTkRMRV9FSU5UUihzdGF0ZnMocGF0aC52YWx1ZSgpLmNfc3RyKCksICZzdGF0cykpICE9IDAp CisgICAgIHJldHVybiBmYWxzZTsKKyAKKy0gIHN3aXRjaCAoc3RhdHMuZl90eXBlKSB7CisrICBz d2l0Y2ggKHN0YXRpY19jYXN0PHVpbnRtYXhfdD4oc3RhdHMuZl90eXBlKSkgeworICAgICBjYXNl IFRNUEZTX01BR0lDOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lD KToKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBI VUdFVExCRlNfTUFHSUM6CisrICAgIGNhc2UgUkFNRlNfTUFHSUM6CisgICAgICAgcmV0dXJuIHRy dWU7CisgICB9CisgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9i aW5hcnkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZWJk MTZlNjU5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTA5LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKQEAgLTAsMCArMSwzMiBA QAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9C VUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS90ZXN0L2Nocm9tZWRy aXZlci9CVUlMRC5nbgorQEAgLTMwOCwxMSArMzA4LDcgQEAgc291cmNlX3NldCgibGliIikgewor ICAgfQorIH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0gIGNocm9tZWRyaXZlcl9vdXRwdXQgPSAi Y2hyb21lZHJpdmVyLnVuc3RyaXBwZWQiCistfSBlbHNlIHsKKy0gIGNocm9tZWRyaXZlcl9vdXRw dXQgPSAiY2hyb21lZHJpdmVyIgorLX0KKytjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRy aXZlciIKKyAKKyBleGVjdXRhYmxlKCIkY2hyb21lZHJpdmVyX291dHB1dCIpIHsKKyAgIHRlc3Rv bmx5ID0gdHJ1ZQorQEAgLTMzNiwxNiArMzMyLDYgQEAgZXhlY3V0YWJsZSgiJGNocm9tZWRyaXZl cl9vdXRwdXQiKSB7CisgICB9CisgfQorIAorLWlmIChpc19saW51eCkgeworLSAgc3RyaXBfYmlu YXJ5KCJjaHJvbWVkcml2ZXIiKSB7CistICAgIHRlc3Rvbmx5ID0gdHJ1ZQorLSAgICBiaW5hcnlf aW5wdXQgPSAiJHJvb3Rfb3V0X2Rpci8kY2hyb21lZHJpdmVyX291dHB1dCIKKy0gICAgc3ltYm9s X291dHB1dCA9ICIkcm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlci5kZWJ1ZyIKKy0gICAgc3RyaXBw ZWRfYmluYXJ5X291dHB1dCA9ICIkcm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlciIKKy0gICAgZGVw cyA9IFsgIjokY2hyb21lZHJpdmVyX291dHB1dCIgXQorLSAgfQorLX0KKy0KKyBweXRob25fbGli cmFyeSgiY2hyb21lZHJpdmVyX3B5X3Rlc3RzIikgeworICAgdGVzdG9ubHkgPSB0cnVlCisgICBk ZXBzID0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMC1j aHJvbWl1bS1yZXZlcnQtdXNlLWZmaWxlLWNvbXBpbGF0aW9uLWRpci5wYXRjaCBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0tcmV2ZXJ0LXVzZS1mZmlsZS1jb21w aWxhdGlvbi1kaXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5hMDBmN2VhODBmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11c2UtZmZpbGUtY29tcGlsYXRpb24tZGlyLnBh dGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20gMzRhOTU1ODIzNjMwMDk2ZjViMDFjMmIwMWQ1MWMx ZWE1OWQyMjc2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFplcXVhbiBXdSA8emVx dWFud3VAZ29vZ2xlLmNvbT4KK0RhdGU6IFR1ZSwgMjAgSnVsIDIwMjEgMTQ6MTM6NTAgKzAwMDAK K1N1YmplY3Q6IFtQQVRDSF0gVXNlIC1mZmlsZS1jb21waWxhdGlvbi1kaXI9IGluc3RlYWQgb2YK KyAtZmRlYnVnLWNvbXBpbGF0aW9uLWRpcj0KKworQnVnOiAxMDEwMjY3CitDaGFuZ2UtSWQ6IElm MmI0ZWFkODUzNWE3NjQ5MGViNDY2YTM4ZTNkOGZlZDZlYTkxMDc5CitSZXZpZXdlZC1vbjogaHR0 cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzI3 NzA3MzgKK0F1dG8tU3VibWl0OiBaZXF1YW4gV3UgPHplcXVhbnd1QGdvb2dsZS5jb20+CitDb21t aXQtUXVldWU6IE5pY28gV2ViZXIgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CitSZXZpZXdlZC1ieTog TmljbyBXZWJlciA8dGhha2lzQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVm cy9oZWFkcy9tYXN0ZXJAeyM5MDM0NTZ9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVp bGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v YnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCitAQCAtMTI2OSwxOSArMTI2OSwxMiBAQCBj b25maWcoImNvbXBpbGVyX2RldGVybWluaXN0aWMiKSB7CisgICAgICMgZGlmZmVyZW50IGJ1aWxk IGRpcmVjdG9yeSBsaWtlICJvdXQvZmVhdHVyZV9hIiBhbmQgIm91dC9mZWF0dXJlX2IiIGlmCisg ICAgICMgd2UgYnVpbGQgc2FtZSBmaWxlcyB3aXRoIHNhbWUgY29tcGlsZSBmbGFnLgorICAgICAj IE90aGVyIHBhdGhzIGFyZSBhbHJlYWR5IGdpdmVuIGluIHJlbGF0aXZlLCBubyBuZWVkIHRvIG5v cm1hbGl6ZSB0aGVtLgorLSAgICBpZiAoaXNfbmFjbCkgeworLSAgICAgICMgVE9ETyhodHRwczov L2NyYnVnLmNvbS8xMjMxMjM2KTogVXNlIC1mZmlsZS1jb21waWxhdGlvbi1kaXI9IGhlcmUuCist ICAgICAgY2ZsYWdzICs9IFsKKy0gICAgICAgICItWGNsYW5nIiwKKy0gICAgICAgICItZmRlYnVn LWNvbXBpbGF0aW9uLWRpciIsCistICAgICAgICAiLVhjbGFuZyIsCistICAgICAgICAiLiIsCist ICAgICAgXQorLSAgICB9IGVsc2UgeworLSAgICAgICMgLWZmaWxlLWNvbXBpbGF0aW9uLWRpciBp cyBhbiBhbGlhcyBmb3IgYm90aCAtZmRlYnVnLWNvbXBpbGF0aW9uLWRpcj0KKy0gICAgICAjIGFu ZCAtZmNvdmVyYWdlLWNvbXBpbGF0aW9uLWRpcj0uCistICAgICAgY2ZsYWdzICs9IFsgIi1mZmls ZS1jb21waWxhdGlvbi1kaXI9LiIgXQorLSAgICB9CisrICAgIGNmbGFncyArPSBbCisrICAgICAg Ii1YY2xhbmciLAorKyAgICAgICItZmRlYnVnLWNvbXBpbGF0aW9uLWRpciIsCisrICAgICAgIi1Y Y2xhbmciLAorKyAgICAgICIuIiwKKysgICAgXQorICAgICBpZiAoIWlzX3dpbikgeworICAgICAg ICMgV2UgZG9uJ3QgdXNlIGNsYW5nIC1jYzFhcyBvbiBXaW5kb3dzICh5ZXQ/IGh0dHBzOi8vY3Ji dWcuY29tLzc2MjE2NykKKyAgICAgICBhc21mbGFncyA9IFsgIi1XYSwtZmRlYnVnLWNvbXBpbGF0 aW9uLWRpciwuIiBdCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2Nv bXBpbGVyL2NvbXBpbGVyLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Nv bmZpZy9jb21waWxlci9jb21waWxlci5nbmkKK0BAIC0yMjgsOCArMjI4LDExIEBAIGRlY2xhcmVf YXJncygpIHsKKyAjIGRldGVybWluaXN0aWMgYnVpbGRzIHRvIHJlZHVjZSBjb21waWxlIHRpbWVz LCBzbyB0aGlzIGlzIGxlc3MgcmVsZXZhbnQgZm9yCisgIyBvZmZpY2lhbCBidWlsZGVycy4KKyBz dHJpcF9hYnNvbHV0ZV9wYXRoc19mcm9tX2RlYnVnX3N5bWJvbHNfZGVmYXVsdCA9CistICAgIGlz X2FuZHJvaWQgfHwgaXNfZnVjaHNpYSB8fCBpc19uYWNsIHx8IChpc193aW4gJiYgdXNlX2xsZCkg fHwgaXNfbGludXggfHwKKy0gICAgaXNfY2hyb21lb3MgfHwgKGlzX2FwcGxlICYmICFlbmFibGVf ZHN5bXMpCisrICAgICMgVE9ETyhjcmJ1Zy5jb20vMTAxMDI2Nyk6IHJlbW92ZSAnIXVzZV9jbGFu Z19jb3ZlcmFnZScsIGNvdmVyYWdlIGJ1aWxkIGhhcworKyAgICAjIGRlcGVuZGVuY3kgdG8gYWJz b2x1dGUgcGF0aCBvZiBzb3VyY2UgZmlsZXMuCisrICAgICF1c2VfY2xhbmdfY292ZXJhZ2UgJiYK KysgICAgKGlzX2FuZHJvaWQgfHwgaXNfZnVjaHNpYSB8fCBpc19uYWNsIHx8IChpc193aW4gJiYg dXNlX2xsZCkgfHwgaXNfbGludXggfHwKKysgICAgIGlzX2Nocm9tZW9zIHx8IChpc19hcHBsZSAm JiAhZW5hYmxlX2RzeW1zKSkKKyAKKyBkZWNsYXJlX2FyZ3MoKSB7CisgICBzdHJpcF9hYnNvbHV0 ZV9wYXRoc19mcm9tX2RlYnVnX3N5bWJvbHMgPSBzdHJpcF9hYnNvbHV0ZV9wYXRoc19mcm9tX2Rl YnVnX3N5bWJvbHNfZGVmYXVsdApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExMS1jaHJvbWl1bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2ggYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLW5vLVduby1zdHJpbmdvcC1v dmVycmVhZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAz ZWFjM2Y4ZTA2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMTEtY2hyb21pdW0tbm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBhdGNoCkBAIC0wLDAg KzEsMTAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29tcGls ZXIvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29t cGlsZXIvQlVJTEQuZ24KK0BAIC0zOTQsNyArMzk0LDYgQEAgY29uZmlnKCJjb21waWxlciIpIHsK KyAgICAgICAgICItV25vLXBhcmVudGhlc2VzIiwKKyAgICAgICAgICItV25vLXNpZ24tY29tcGFy ZSIsICMgZmlkbworICAgICAgICAgIi1Xbm8tc3RyaW5nb3Atb3ZlcmZsb3ciLCAjIHNraWEsIGxp YmFvbSwgcHJvdG9idWYsIGljdQorLSAgICAgICAgIi1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQiLCAj IGxpYmFvbQorICAgICAgICAgIi1Xbm8tcHNhYmkiLCAjIHNraWEKKyAgICAgICAgICItV25vLW11 bHRpY2hhciIsICMgY3Jhc2hwYWQKKyAgICAgICAgICItV25vLWZvcm1hdC16ZXJvLWxlbmd0aCIs ICMgdXNlcl9hZ2VudC5jYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDE1MC1jaHJvbWl1bS1nbGliYy1saWJjX21hbGxvYy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxNTAtY2hyb21pdW0tZ2xpYmMtbGliY19tYWxsb2MucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43ZTFiNjZlNWM3M2QKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVt LWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYworQEAgLTIzLDYgKzIz LDEyIEBACisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3NyYy9ncGVy ZnRvb2xzL3RjbWFsbG9jLmgiCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoTElCQ19HTElCQykK KytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7 CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBuYW1lc3BhY2UgeworQEAg LTEyMCw3ICsxMjYsNyBAQCBib29sIFVuY2hlY2tlZE1hbGxvYyhzaXplX3Qgc2l6ZSwgdm9pZCoq CisgICAgICghZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFHKFVTRV9UQ01BTExPQykp CisgICAqcmVzdWx0ID0gbWFsbG9jKHNpemUpOworICNlbGlmIGRlZmluZWQoTElCQ19HTElCQykg JiYgIUJVSUxERkxBRyhVU0VfVENNQUxMT0MpCistICAqcmVzdWx0ID0gX19saWJjX21hbGxvYyhz aXplKTsKKysgICpyZXN1bHQgPSA6Ol9fbGliY19tYWxsb2Moc2l6ZSk7CisgI2VsaWYgQlVJTERG TEFHKFVTRV9UQ01BTExPQykKKyAgICpyZXN1bHQgPSB0Y19tYWxsb2Nfc2tpcF9uZXdfaGFuZGxl cihzaXplKTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDAtY2hyb21pdW0tbXVzbC1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0la RS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tbXVz bC1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQxYjkwMDcxYjVlNAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tbXVzbC1pbmNs dWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRjaApAQCAtMCwwICsxLDIxIEBACitG cm9tIDkwMDFjNTRkNmI5NzQ0NDkxNzRhOGNlZThmM2Y1ZDc4YTliZDZjOWUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBGZWxpeCBKYW5kYSA8ZmVsaXguamFuZGFAcG9zdGVvLmRlPgor RGF0ZTogU3VuLCAxIEZlYiAyMDE1IDE0OjI2OjUyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMy82 XSBpbmNsdWRlIDxzeXMvcmVnLmg+IHRvIGdldCBfX1dPUkRTSVpFIG9uIG11c2wgbGliYworCist LS0KKyBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmggfCAxICsKKyAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVf ZHVtcC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKK0BAIC0zNyw2ICszNyw5 IEBACisgI2luY2x1ZGUgPGxpbWl0cy5oPgorICNpbmNsdWRlIDxsaW5rLmg+CisgI2luY2x1ZGUg PHN0ZGRlZi5oPgorKyNpZm5kZWYgX19HTElCQ19fCisrI2luY2x1ZGUgPHN5cy9yZWcuaD4KKysj ZW5kaWYKKyAKKyAjaW5jbHVkZSAiY29tbW9uL21lbW9yeV9yYW5nZS5oIgorIApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3Bh dGNoLXRvLW11c2wucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAxLWNo cm9taXVtLW11c2wtZGlzcGF0Y2gtdG8tbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmE1OGE2ODhhNGI1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDEtY2hyb21pdW0tbXVzbC1kaXNwYXRjaC10by1t dXNsLnBhdGNoCkBAIC0wLDAgKzEsMTAzIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v YmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19nbGliYy5j YworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9z aGltX2RlZmF1bHRfZGlzcGF0Y2hfdG9fZ2xpYmMuY2MKK0BAIC04LDYgKzgsNyBAQAorICNpbmNs dWRlIDxkbGZjbi5oPgorICNpbmNsdWRlIDxtYWxsb2MuaD4KKyAKKysjaWYgZGVmaW5lZChfX0dM SUJDX18pCisgLy8gVGhpcyB0cmFuc2xhdGlvbiB1bml0IGRlZmluZXMgYSBkZWZhdWx0IGRpc3Bh dGNoIGZvciB0aGUgYWxsb2NhdG9yIHNoaW0gd2hpY2gKKyAvLyByb3V0ZXMgYWxsb2NhdGlvbnMg dG8gbGliYyBmdW5jdGlvbnMuCisgLy8gVGhlIGNvZGUgaGVyZSBpcyBzdHJvbmdseSBpbnNwaXJl ZCBmcm9tIHRjbWFsbG9jJ3MgbGliY19vdmVycmlkZV9nbGliYy5oLgorQEAgLTg3LDMgKzg4LDky IEBAIGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoIEFsbG9jYXRvckRpc3BhdGMKKyAgICAgbnVsbHB0 ciwgICAgICAgICAgICAgICAvKiBhbGlnbmVkX2ZyZWVfZnVuY3Rpb24gKi8KKyAgICAgbnVsbHB0 ciwgICAgICAgICAgICAgICAvKiBuZXh0ICovCisgfTsKKysKKysjZWxzZSAvLyBkZWZpbmVkKF9f R0xJQkNfXykKKysKKysjaW5jbHVkZSA8ZGxmY24uaD4KKysKKytleHRlcm4gIkMiIHsKKysvLyBE ZWNsYXJlIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBtZW1vcnkgZnVuY3Rpb25zCisrdHlwZWRl ZiB2b2lkKiAoKnRfbGliY19tYWxsb2MpKHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgq dF9saWJjX2NhbGxvYykoc2l6ZV90IG4sIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgq dF9saWJjX3JlYWxsb2MpKHZvaWQqIGFkZHJlc3MsIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZv aWQqICgqdF9saWJjX21lbWFsaWduKShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSk7Cisr dHlwZWRlZiB2b2lkICgqdF9saWJjX2ZyZWUpKHZvaWQqIHB0cik7CisrdHlwZWRlZiBzaXplX3Qg KCp0X2xpYmNfbWFsbG9jX3VzYWJsZV9zaXplKSh2b2lkKiBwdHIpOworKworKy8vIFN0YXRpYyBp bnN0YW5jZXMgb2YgcG9pbnRlcnMgdG8gbGliYy5zbyBkbCBzeW1ib2xzCisrc3RhdGljIHRfbGli Y19tYWxsb2MgbGliY19tYWxsb2MgPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfY2FsbG9jIGxpYmNf Y2FsbG9jID0gTlVMTDsKKytzdGF0aWMgdF9saWJjX3JlYWxsb2MgbGliY19yZWFsbG9jID0gTlVM TDsKKytzdGF0aWMgdF9saWJjX21lbWFsaWduIGxpYmNfbWVtYWxpZ24gPSBOVUxMOworK3N0YXRp YyB0X2xpYmNfZnJlZSBsaWJjX2ZyZWUgPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfbWFsbG9jX3Vz YWJsZV9zaXplIGxpYmNfbWFsbG9jX3VzYWJsZV9zaXplID0gTlVMTDsKKysKKysvLyByZXNvbHZl IHRoZSBzeW1ib2xzIGluIGxpYmMuc28KKyt2b2lkIG11c2xfbGliY19tZW1vcnlfaW5pdCh2b2lk KQorK3sKKysgIGxpYmNfbWFsbG9jID0gKHRfbGliY19tYWxsb2MpIGRsc3ltKFJUTERfTkVYVCwg Im1hbGxvYyIpOworKyAgbGliY19jYWxsb2MgPSAodF9saWJjX2NhbGxvYykgZGxzeW0oUlRMRF9O RVhULCAiY2FsbG9jIik7CisrICBsaWJjX3JlYWxsb2MgPSAodF9saWJjX3JlYWxsb2MpIGRsc3lt KFJUTERfTkVYVCwgInJlYWxsb2MiKTsKKysgIGxpYmNfbWVtYWxpZ24gPSAodF9saWJjX21lbWFs aWduKSBkbHN5bShSVExEX05FWFQsICJtZW1hbGlnbiIpOworKyAgbGliY19mcmVlID0gKHRfbGli Y19mcmVlKSBkbHN5bShSVExEX05FWFQsICJmcmVlIik7CisrICBsaWJjX21hbGxvY191c2FibGVf c2l6ZSA9ICh0X2xpYmNfbWFsbG9jX3VzYWJsZV9zaXplKSBkbHN5bShSVExEX05FWFQsICJtYWxs b2NfdXNhYmxlX3NpemUiKTsKKyt9CisrfSAgLy8gZXh0ZXJuICJDIgorKworK25hbWVzcGFjZSB7 CisrCisrdXNpbmcgYmFzZTo6YWxsb2NhdG9yOjpBbGxvY2F0b3JEaXNwYXRjaDsKKysKKyt2b2lk KiBNdXNsTWFsbG9jKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IHNpemUsIHZvaWQq IGNvbnRleHQpIHsKKysgIGlmICghbGliY19tYWxsb2MpCisrICAgIG11c2xfbGliY19tZW1vcnlf aW5pdCgpOworKyAgcmV0dXJuICgqbGliY19tYWxsb2MpKHNpemUpOworK30KKysKKyt2b2lkKiBN dXNsQ2FsbG9jKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IG4sIHNpemVfdCBzaXpl LCB2b2lkKiBjb250ZXh0KSB7CisrICBpZiAoIWxpYmNfY2FsbG9jKQorKyAgICBtdXNsX2xpYmNf bWVtb3J5X2luaXQoKTsKKysgIHJldHVybiAoKmxpYmNfY2FsbG9jKShuLCBzaXplKTsKKyt9Cisr Cisrdm9pZCogTXVzbFJlYWxsb2MoY29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCB2b2lkKiBhZGRy ZXNzLCBzaXplX3Qgc2l6ZSwgdm9pZCogY29udGV4dCkgeworKyAgaWYgKCFsaWJjX3JlYWxsb2Mp CisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOworKyAgcmV0dXJuICgqbGliY19yZWFsbG9j KShhZGRyZXNzLCBzaXplKTsKKyt9CisrCisrdm9pZCogTXVzbE1lbWFsaWduKGNvbnN0IEFsbG9j YXRvckRpc3BhdGNoKiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUsIHZvaWQqIGNvbnRl eHQpIHsKKysgIGlmICghbGliY19tZW1hbGlnbikKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0 KCk7CisrICByZXR1cm4gKCpsaWJjX21lbWFsaWduKShhbGlnbm1lbnQsIHNpemUpOworK30KKysK Kyt2b2lkIE11c2xGcmVlKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgdm9pZCogYWRkcmVzcywg dm9pZCogY29udGV4dCkgeworKyAgaWYgKCFsaWJjX2ZyZWUpCisrICAgIG11c2xfbGliY19tZW1v cnlfaW5pdCgpOworKyAgKCpsaWJjX2ZyZWUpKGFkZHJlc3MpOworK30KKysKKytzaXplX3QgTXVz bEdldFNpemVFc3RpbWF0ZShjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHZvaWQqIGFkZHJlc3Ms IHZvaWQqIGNvbnRleHQpIHsKKysgIC8vIFRPRE8oc2lnZ2ksIHByaW1pYW5vKTogbWFsbG9jX3Vz YWJsZV9zaXplIG1heSBuZWVkIHJlZGlyZWN0aW9uIGluIHRoZQorKyAgLy8gICAgIHByZXNlbmNl IG9mIGludGVycG9zaW5nIHNoaW1zIHRoYXQgZGl2ZXJ0IGFsbG9jYXRpb25zLgorKyAgaWYgKCFs aWJjX21hbGxvY191c2FibGVfc2l6ZSkKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0KCk7Cisr ICByZXR1cm4gKCpsaWJjX21hbGxvY191c2FibGVfc2l6ZSkoYWRkcmVzcyk7CisrfQorKworK30g IC8vIG5hbWVzcGFjZQorKworK2NvbnN0IEFsbG9jYXRvckRpc3BhdGNoIEFsbG9jYXRvckRpc3Bh dGNoOjpkZWZhdWx0X2Rpc3BhdGNoID0geworKyAgICAmTXVzbE1hbGxvYywgICAgICAgICAgIC8q IGFsbG9jX2Z1bmN0aW9uICovCisrICAgICZNdXNsQ2FsbG9jLCAgICAgICAgICAgLyogYWxsb2Nf emVyb19pbml0aWFsaXplZF9mdW5jdGlvbiAqLworKyAgICAmTXVzbE1lbWFsaWduLCAgICAgICAg IC8qIGFsbG9jX2FsaWduZWRfZnVuY3Rpb24gKi8KKysgICAgJk11c2xSZWFsbG9jLCAgICAgICAg ICAvKiByZWFsbG9jX2Z1bmN0aW9uICovCisrICAgICZNdXNsRnJlZSwgICAgICAgICAgICAgLyog ZnJlZV9mdW5jdGlvbiAqLworKyAgICAmTXVzbEdldFNpemVFc3RpbWF0ZSwgIC8qIGdldF9zaXpl X2VzdGltYXRlX2Z1bmN0aW9uICovCisrICAgIG51bGxwdHIsICAgICAgICAgICAgICAgLyogbmV4 dCAqLworK307CisrCisrI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2ggYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNWJkYjVhNDNhNWYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAyLWNocm9t aXVtLW11c2wtbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bv c2l4LmNjCitAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgSW5jcmVhc2VGZExpbWl0VG8odW5zaWdu ZWQgaW50IG1heF8KKyAKKyAjZW5kaWYgIC8vICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgCistI2lm IGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1Nf QU5EUk9JRCkKKysjaWYgKGRlZmluZWQoT1NfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkg fHwgZGVmaW5lZChPU19DSFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorIG5hbWVzcGFj ZSB7CisgCisgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CitAQCAtMTI3LDE2ICsx MjcsMTYgQEAgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CisgfQorIAorIH0gIC8v IG5hbWVzcGFjZQorLSNlbmRpZiAgLy8gZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19D SFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorKyNlbmRpZiAgLy8gKGRlZmluZWQoT1Nf TElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgZGVmaW5lZChPU19DSFJPTUVPUykgfHwg ZGVmaW5lZChPU19BTkRST0lEKQorIAorIHNpemVfdCBQcm9jZXNzTWV0cmljczo6R2V0TWFsbG9j VXNhZ2UoKSB7CisgI2lmIGRlZmluZWQoT1NfQVBQTEUpCisgICBtYWxsb2Nfc3RhdGlzdGljc190 IHN0YXRzID0gezB9OworICAgbWFsbG9jX3pvbmVfc3RhdGlzdGljcyhudWxscHRyLCAmc3RhdHMp OworICAgcmV0dXJuIHN0YXRzLnNpemVfaW5fdXNlOworLSNlbGlmIGRlZmluZWQoT1NfTElOVVgp IHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjZWxpZiAo ZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKE9TX0NI Uk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisgICByZXR1cm4gR2V0TWFsbG9jVXNhZ2VN YWxsaW5mbygpOworLSNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKKysjZWxzZQorICAgLy8gVE9E TyhmdWNoc2lhKTogTm90IGN1cnJlbnRseSBleHBvc2VkLiBodHRwczovL2NyYnVnLmNvbS83MzUw ODcuCisgICByZXR1cm4gMDsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2lu Zm8uY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS90ZmxpdGUvc3Jj L3RlbnNvcmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MKK0BAIC0yNyw3ICsyNyw3 IEBAIG5hbWVzcGFjZSBtZW1vcnkgeworIGNvbnN0IGludCBNZW1vcnlVc2FnZTo6a1ZhbHVlTm90 U2V0ID0gMDsKKyAKKyBib29sIE1lbW9yeVVzYWdlOjpJc1N1cHBvcnRlZCgpIHsKKy0jaWZkZWYg X19saW51eF9fCisrI2lmZGVmIF9fR0xJQkNfXworICAgcmV0dXJuIHRydWU7CisgI2VuZGlmCisg ICByZXR1cm4gZmFsc2U7CitAQCAtMzUsNyArMzUsNyBAQCBib29sIE1lbW9yeVVzYWdlOjpJc1N1 cHBvcnRlZCgpIHsKKyAKKyBNZW1vcnlVc2FnZSBHZXRNZW1vcnlVc2FnZSgpIHsKKyAgIE1lbW9y eVVzYWdlIHJlc3VsdDsKKy0jaWZkZWYgX19saW51eF9fCisrI2lmZGVmIF9fR0xJQkNfXworICAg cnVzYWdlIHJlczsKKyAgIGlmIChnZXRydXNhZ2UoUlVTQUdFX1NFTEYsICZyZXMpID09IDApIHsK KyAgICAgcmVzdWx0Lm1heF9yc3Nfa2IgPSByZXMucnVfbWF4cnNzOworLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3By b3ZpZGVyLmNjCitAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgTWFsbG9jRHVtcFByb3ZpZGVyOjpP bk1lbW9yeUR1bXAoY28KKyAgICAgICAgICAgICAgICAgICAgICAmYWxsb2NhdGVkX29iamVjdHNf Y291bnQpOworICNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1Y2hzaWEpOiBQ b3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgorLSNlbHNlCisrI2VsaWYgZGVmaW5l ZChfX0dMSUJDX18pCisgI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fR0xJQkNf UFJFUkVRKQorICNpZiBfX0dMSUJDX1BSRVJFUSgyLCAzMykKKyAjZGVmaW5lIE1BTExJTkZPMl9G T1VORF9JTl9MSUJDCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwMy1jaHJvbWl1bS1tdXNsLXNpZ2luZm9fdC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQzZWY3ZmQ3YzVkMgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDMtY2hyb21pdW0tbXVzbC1zaWdp bmZvX3QucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorVGhlcmUncyBhIHN1YnRsZSBkaWZmZXJlbmNl IGluIHRoZSBpbnRlcm5hbCBuYW1lIG9mIHNpZ2luZm9fdCBmaWVsZHMKK2JldHdlZW4gZ2xpYmMg YW5kIG11c2wuIFRoZSBzdHJ1Y3R1cmUgaXRzZWxmIGlzIGVxdWl2YWxlbnQsIHNvIGl0CitzaG91 bGQgc3VmZmljZSB0byBhZGQgYSBtYWNybyB0byByZW5hbWUgdGhlIGZpZWxkLgorCistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFw LmNjCitAQCAtMTc0LDcgKzE3NCwxMSBAQCB2b2lkIFRyYXA6OlNpZ1N5cyhpbnQgbnIsIExpbnV4 U2lnSW5mbyoKKyAgIC8vIElmIHRoZSB2ZXJzaW9uIG9mIGdsaWJjIGRvZXNuJ3QgaW5jbHVkZSB0 aGlzIGluZm9ybWF0aW9uIGluCisgICAvLyBzaWdpbmZvX3QgKG9sZGVyIHRoYW4gMi4xNyksIHdl IG5lZWQgdG8gZXhwbGljaXRseSBjb3B5IGl0CisgICAvLyBpbnRvIGFuIGFyY2hfc2lnc3lzIHN0 cnVjdHVyZS4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBtZW1jcHkoJnNpZ3N5cywgJmlu Zm8tPl9zaWZpZWxkcywgc2l6ZW9mKHNpZ3N5cykpOworKyNlbHNlCisrICBtZW1jcHkoJnNpZ3N5 cywgJmluZm8tPl9fc2lfZmllbGRzLCBzaXplb2Yoc2lnc3lzKSk7CisrI2VuZGlmCisgI2VuZGlm CisgCisgI2lmIGRlZmluZWQoX19taXBzX18pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjA0LWNocm9taXVtLW11c2wtc3RhY2tzdGFydC5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDQtY2hyb21pdW0tbXVzbC1zdGFja3N0YXJ0LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjAzY2Y0M2I4NmRi Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNC1j aHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0 Zi9zdGFja191dGlsLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MKK0BAIC0yOSw3ICsyOSw3 IEBAIHNpemVfdCBHZXRVbmRlcmVzdGltYXRlZFN0YWNrU2l6ZSgpIHsKKyAvLyBGSVhNRTogT24g TWFjIE9TWCBhbmQgTGludXgsIHRoaXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXpl CisgLy8gY29ycmVjdGx5IGZvciB0aGUgbWFpbiB0aHJlYWQuCisgCistI2VsaWYgZGVmaW5lZChf X0dMSUJDX18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8 fCBcCisrI2VsaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBk ZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgLy8g cHRocmVhZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tl ZCBieQorICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJs aW5rX3VuaXR0ZXN0cykuCitAQCAtOTcsNyArOTcsNyBAQCByZXR1cm4gVGhyZWFkaW5nOjpUaHJl YWRTdGFja1NpemUoKTsKKyB9CisgCisgdm9pZCogR2V0U3RhY2tTdGFydCgpIHsKKy0jaWYgZGVm aW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVF QlNEKSB8fCBcCisrI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkg fHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAg IHB0aHJlYWRfYXR0cl90IGF0dHI7CisgICBpbnQgZXJyb3I7CmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDUtY2hyb21pdW0tbXVzbC1zYW5kYm94 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzcyYTU3OGZk ODIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIw NS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTAsMCArMSw5MiBAQAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNj YWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19y ZXN0cmljdGlvbnMuY2MKK0BAIC0xMzgsNyArMTM4LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggewor IC8vIHByZXNlbnQgKGFzIGluIG5ld2VyIHZlcnNpb25zIG9mIHBvc2l4X3NwYXduKS4KKyBSZXN1 bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICBjb25zdCBB cmc8dW5zaWduZWQgbG9uZz4gZmxhZ3MoMCk7CistCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQor ICAgLy8gVE9ETyhtZGVtcHNreSk6IEV4dGVuZCBEU0wgdG8gc3VwcG9ydCAoZmxhZ3MgJiB+bWFz azEpID09IG1hc2syLgorICAgY29uc3QgdWludDY0X3Qga0FuZHJvaWRDbG9uZU1hc2sgPSBDTE9O RV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDTE9ORV9TSUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKK0BAIC0xNjUsNiAr MTY1LDE3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVIKKyAgIHJl dHVybiBJZihJc0FuZHJvaWQoKSA/IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFsbG93KCkp CisgICAgICAgLkVsc2VJZihpc19mb3JrX29yX2Nsb25lX3Zmb3JrLCBFcnJvcihFUEVSTSkpCisg ICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKysjZWxzZQorKyAgY29uc3QgaW50IHJl cXVpcmVkID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFO RCB8CisrICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNWU0VN OworKyAgY29uc3QgaW50IHNhZmUgPSBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VUVElE IHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQgfAorKyAgICAgICAgICAgICAgICAgICBDTE9ORV9ERVRB Q0hFRDsKKysgIGNvbnN0IEJvb2xFeHByIHRocmVhZF9jbG9uZV9vayA9IChmbGFncyZ+c2FmZSk9 PXJlcXVpcmVkOworKworKyAgcmV0dXJuIElmKHRocmVhZF9jbG9uZV9vaywgQWxsb3coKSkKKysg ICAgICAuRWxzZUlmKChmbGFncyAmIChDTE9ORV9WTSB8IENMT05FX1RIUkVBRCkpID09IDAsIEVy cm9yKEVQRVJNKSkKKysgICAgICAuRWxzZShDcmFzaFNJR1NZU0Nsb25lKCkpOworKyNlbmRpZgor IH0KKyAKKyAjaWZuZGVmIFBSX1BBQ19SRVNFVF9LRVlTCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00MTksNiArNDE5LDkgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgICBj YXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAg ICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorKyNlbmRpZgorICAgICAgIHJldHVybiB0cnVl OworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0 ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtNDMxLDcgKzQz NCw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KQorICAgICBjYXNlIF9fTlJfc2V0X3RocmVhZF9hcmVhOgorICNlbmRpZgorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKysjZW5kaWYKKyAg ICAgY2FzZSBfX05SX3Vuc2hhcmU6CisgI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5l ZChfX2FhcmNoNjRfXykKKyAgICAgY2FzZSBfX05SX3Zmb3JrOgorQEAgLTU0NSw2ICs1NTAsOSBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19O Ul9tbG9jazoKKyAgICAgY2FzZSBfX05SX211bmxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5tYXA6 CisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgY2FzZSBfX05SX21yZW1hcDoKKysjZW5k aWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX21hZHZpc2U6CisgICAgIGNh c2UgX19OUl9taW5jb3JlOgorQEAgLTU2Miw3ICs1NzAsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRp ZgorICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAg ICBjYXNlIF9fTlJfbXJlbWFwOgorKyNlbmRpZgorICAgICBjYXNlIF9fTlJfbXN5bmM6CisgICAg IGNhc2UgX19OUl9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9w b2xpY3lfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGlj eS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitAQCAtOTcsMTEgKzk3LDE4IEBA IFJlc3VsdEV4cHIgUmVuZGVyZXJQcm9jZXNzUG9saWN5OjpFdmFsdWEKKyAgICAgY2FzZSBfX05S X3N5c2luZm86CisgICAgIGNhc2UgX19OUl90aW1lczoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgor KyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToK KysgICAgY2FzZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlcjoKKysgICAgY2FzZSBfX05SX3NjaGVk X3NldHNjaGVkdWxlcjoKKysjZW5kaWYKKyAgICAgICByZXR1cm4gQWxsb3coKTsKKyAgICAgY2Fz ZSBfX05SX3NjaGVkX2dldGFmZmluaXR5OgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAg Y2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1 bGVyOgorICAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgorKyNlbmRpZgorICAgICAg IHJldHVybiBSZXN0cmljdFNjaGVkVGFyZ2V0KEdldFBvbGljeVBpZCgpLCBzeXNubyk7CisgICAg IGNhc2UgX19OUl9wcmxpbWl0NjQ6CisgICAgICAgLy8gU2VlIGNyYnVnLmNvbS82NjI0NTAgYW5k IHNldHJsaW1pdCBjb21tZW50IGFib3ZlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQt c3RhY2tzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YmMwNzQ5NWI4MTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoCkBAIC0wLDAg KzEsMTUgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RocmVhZGluZy9wbGF0 Zm9ybV90aHJlYWRfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Ro cmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKK0BAIC00MzksNyArNDM5LDEyIEBAIHZv aWQgVGVybWluYXRlT25UaHJlYWQoKSB7fQorIAorIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3Rh Y2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0cl90JiBhdHRyaWJ1dGVzKSB7CisgI2lmICFkZWZpbmVk KFRIUkVBRF9TQU5JVElaRVIpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgcmV0dXJuIDA7 CisrI2Vsc2UgLy8gZGVmaW5lZChfX0dMSUJDX18pCisrICAvLyBGb3IgTXVzbCBsaWJjIHRyeSB3 aXRoIGEgZGVmYXVsdCBzdGFjayBzaXplIG9mIDIgTWlCCisrICByZXR1cm4gMiAqIDEwMjQgKiAx MDI0OworKyNlbmRpZiAvLyAhZGVmaW5lZChfX0dMSUJDX18pCisgI2Vsc2UKKyAgIC8vIFRocmVh ZFNhbml0aXplciBibG9hdHMgdGhlIHN0YWNrIGhlYXZpbHkuIEV2aWRlbmNlIGhhcyBiZWVuIHRo YXQgdGhlCisgICAvLyBkZWZhdWx0IHN0YWNrIHNpemUgaXNuJ3QgZW5vdWdoIGZvciBzb21lIGJy b3dzZXIgdGVzdHMuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjA3LWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwNy1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJh Y2VfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNjZjEz MjkwOGFmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAyMDctY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2gKQEAgLTAsMCAr MSwzMCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9k dW1wZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2Vf ZHVtcGVyLmNjCitAQCAtMzgsNyArMzgsMTIgQEAKKyAKKyAjaW5jbHVkZSAiY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmgiCisgCisrI2lmIGRlZmluZWQo X19HTElCQ19fKQorICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2Vsc2UKKysvKiBGb3IgYXJt Ki1tdXNsIHRoaXMgZGVmaW5pdGlvbiBpcyBtaXNzaW5nICovCisrI2RlZmluZSBBUk1fc3AgdXJl Z3NbMTNdCisrI2VuZGlmCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxlcnJuby5o PgorICNpbmNsdWRlIDxmY250bC5oPgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L2xpbnV4X2NvcmVfZHVtcGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfY29yZV9kdW1wZXIuY2MKK0BAIC0zMiw3ICszMiwxMiBAQAorIAorICNpbmNsdWRlICJj bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmgiCisgCisrI2lm IGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2Vsc2UKKysv KiBGb3IgYXJtKi1tdXNsIHRoaXMgZGVmaW5pdGlvbiBpcyBtaXNzaW5nICovCisrI2RlZmluZSBB Uk1fc3AgdXJlZ3NbMTNdCisrI2VuZGlmCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRl IDxlbGYuaD4KKyAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjlmM2I5NjQ2NzZiMwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hy b21pdW0tbXVzbC1leGVjaW5mby5wYXRjaApAQCAtMCwwICsxLDEyNSBAQAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCitAQCAtMjUyLDcgKzI1Miw5 IEBAIHZvaWQgU3RhY2tUcmFjZTo6UHJpbnQoKSBjb25zdCB7CisgfQorIAorIHZvaWQgU3RhY2tU cmFjZTo6T3V0cHV0VG9TdHJlYW0oc3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFBy ZWZpeChvcywgbnVsbHB0cik7CisrI2VuZGlmCisgfQorIAorIHN0ZDo6c3RyaW5nIFN0YWNrVHJh Y2U6OlRvU3RyaW5nKCkgY29uc3QgeworQEAgLTI2MCw3ICsyNjIsNyBAQCBzdGQ6OnN0cmluZyBT dGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6 OlRvU3RyaW5nV2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7Cisg ICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlY KQorICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcpOwor ICNlbmRpZgorICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYworQEAgLTI3LDcgKzI3LDcg QEAKKyAjaWYgIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyAjaW5jbHVkZSA8Y3h4YWJpLmg+Cisg I2VuZGlmCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lm IGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICNpbmNsdWRlIDxleGVjaW5m by5oPgorICNlbmRpZgorIAorQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBEZW1hbmdsZVN5bWJvbHMo c3RkOjpzdHJpbmcqIHRleHQpCisgICAvLyBOb3RlOiBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMg Tk9UIGFzeW5jLXNpZ25hbCBzYWZlIChzdGQ6OnN0cmluZyB1c2VzCisgICAvLyBtYWxsb2MgaW50 ZXJuYWxseSkuCisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgc3RkOjpzdHJp bmc6OnNpemVfdHlwZSBzZWFyY2hfZnJvbSA9IDA7CisgICB3aGlsZSAoc2VhcmNoX2Zyb20gPCB0 ZXh0LT5zaXplKCkpIHsKKyAgICAgLy8gTG9vayBmb3IgdGhlIHN0YXJ0IG9mIGEgbWFuZ2xlZCBz eW1ib2wsIGZyb20gc2VhcmNoX2Zyb20uCitAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgRGVtYW5n bGVTeW1ib2xzKHN0ZDo6c3RyaW5nKiB0ZXh0KQorICAgICAgIHNlYXJjaF9mcm9tID0gbWFuZ2xl ZF9zdGFydCArIDI7CisgICAgIH0KKyAgIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VuZGlmICAvLyAhZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisgfQorICNlbmRpZiAgLy8gIWRlZmluZWQoVVNFX1NZTUJPTElaRSkK KyAKK0BAIC0xMzYsNyArMTM2LDcgQEAgY2xhc3MgQmFja3RyYWNlT3V0cHV0SGFuZGxlciB7Cisg ICB2aXJ0dWFsIH5CYWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBkZWZhdWx0OworIH07CisgCist I2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQo X19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZvaWQgT3V0cHV0UG9pbnRlcih2b2lkKiBw b2ludGVyLCBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7CisgICAvLyBUaGlzIHNo b3VsZCBiZSBtb3JlIHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0IG51bWJlciBpbiBoZXg6 CisgICAvLyAxNiBoZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJtaW5hdG9yLgorQEAgLTIxOSw3 ICsyMTksNyBAQCB2b2lkIFByb2Nlc3NCYWNrdHJhY2Uodm9pZCogY29uc3QqIHRyYWNlCisgICB9 CisgI2VuZGlmICAvLyBkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgfQorLSNlbmRpZiAgLy8gIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjZW5kaWYgIC8vICFkZWZpbmVk KF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAKKyB2b2lkIFByaW50VG9TdGRlcnIoY29u c3QgY2hhciogb3V0cHV0KSB7CisgICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1z aWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKK0BAIC04MzksNyArODM5LDcgQEAg c2l6ZV90IENvbGxlY3RTdGFja1RyYWNlKHZvaWQqKiB0cmFjZSwgcworICAgLy8gSWYgd2UgZG8g bm90IGhhdmUgdW53aW5kIHRhYmxlcywgdGhlbiB0cnkgdHJhY2luZyB1c2luZyBmcmFtZSBwb2lu dGVycy4KKyAgIHJldHVybiBiYXNlOjpkZWJ1Zzo6VHJhY2VTdGFja0ZyYW1lUG9pbnRlcnMoY29u c3RfY2FzdDxjb25zdCB2b2lkKio+KHRyYWNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY291bnQsIDApOworLSNlbGlmICFkZWZpbmVkKF9fVUNMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisgICAvLyBUaG91Z2ggdGhlIGJhY2t0cmFjZSBBUEkgbWFuIHBhZ2UgZG9lcyBu b3QgbGlzdCBhbnkgcG9zc2libGUgbmVnYXRpdmUKKyAgIC8vIHJldHVybiB2YWx1ZXMsIHdlIHRh a2Ugbm8gY2hhbmNlLgorICAgcmV0dXJuIGJhc2U6OnNhdHVyYXRlZF9jYXN0PHNpemVfdD4oYmFj a3RyYWNlKHRyYWNlLCBjb3VudCkpOworQEAgLTg1MiwxMyArODUyLDEzIEBAIHZvaWQgU3RhY2tU cmFjZTo6UHJpbnRXaXRoUHJlZml4KGNvbnN0IGMKKyAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBi ZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAvLyBzdGFjayBk dW1waW5nIHNpZ25hbCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVy ZS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBQcmludEJhY2t0cmFjZU91 dHB1dEhhbmRsZXIgaGFuZGxlcjsKKyAgIFByb2Nlc3NCYWNrdHJhY2UodHJhY2VfLCBjb3VudF8s IHByZWZpeF9zdHJpbmcsICZoYW5kbGVyKTsKKyAjZW5kaWYKKyB9CisgCistI2lmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAm JiAhZGVmaW5lZChfQUlYKQorIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJl Zml4KHN0ZDo6b3N0cmVhbSogb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3QgeworICAgU3RyZWFtQmFj a3RyYWNlT3V0cHV0SGFuZGxlciBoYW5kbGVyKG9zKTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL2xvZ2dpbmcuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2xv Z2dpbmcuY2MKK0BAIC01ODIsNyArNTgyLDcgQEAgTG9nTWVzc2FnZTo6TG9nTWVzc2FnZShjb25z dCBjaGFyKiBmaWxlLAorIAorIExvZ01lc3NhZ2U6On5Mb2dNZXNzYWdlKCkgeworICAgc2l6ZV90 IHN0YWNrX3N0YXJ0ID0gc3RyZWFtXy50ZWxscCgpOworLSNpZiAhZGVmaW5lZChPRkZJQ0lBTF9C VUlMRCkgJiYgIWRlZmluZWQoT1NfTkFDTCkgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgXAor KyNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYgIWRlZmluZWQoT1NfTkFDTCkgJiYgZGVm aW5lZChfX0dMSUJDX18pICYmIFwKKyAgICAgIWRlZmluZWQoT1NfQUlYKQorICAgaWYgKHNldmVy aXR5XyA9PSBMT0dHSU5HX0ZBVEFMICYmICFiYXNlOjpkZWJ1Zzo6QmVpbmdEZWJ1Z2dlZCgpKSB7 CisgICAgIC8vIEluY2x1ZGUgYSBzdGFjayB0cmFjZSBvbiBhIGZhdGFsLCB1bmxlc3MgYSBkZWJ1 Z2dlciBpcyBhdHRhY2hlZC4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29k ZWdlbi9leHRlcm5hbC1yZWZlcmVuY2UtdGFibGUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS92OC9zcmMvY29kZWdlbi9leHRlcm5hbC1yZWZlcmVuY2UtdGFibGUuY2MKK0BAIC0xMiw3 ICsxMiw5IEBACisgCisgI2lmIGRlZmluZWQoREVCVUcpICYmIGRlZmluZWQoVjhfT1NfTElOVVgp ICYmICFkZWZpbmVkKFY4X09TX0FORFJPSUQpCisgI2RlZmluZSBTWU1CT0xJWkVfRlVOQ1RJT04K KysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CisrI2VuZGlm CisgCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKK0BAIC0xMDMsNyArMTA1LDcgQEAgdm9pZCBFeHRl cm5hbFJlZmVyZW5jZVRhYmxlOjpJbml0KElzb2xhdAorIH0KKyAKKyBjb25zdCBjaGFyKiBFeHRl cm5hbFJlZmVyZW5jZVRhYmxlOjpSZXNvbHZlU3ltYm9sKHZvaWQqIGFkZHJlc3MpIHsKKy0jaWZk ZWYgU1lNQk9MSVpFX0ZVTkNUSU9OCisrI2lmIGRlZmluZWQoU1lNQk9MSVpFX0ZVTkNUSU9OKSAm JiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGNoYXIqKiBuYW1lcyA9IGJhY2t0cmFjZV9zeW1ib2xz KCZhZGRyZXNzLCAxKTsKKyAgIGNvbnN0IGNoYXIqIG5hbWUgPSBuYW1lc1swXTsKKyAgIC8vIFRo ZSBhcnJheSBvZiBuYW1lcyBpcyBtYWxsb2MnZWQuIEhvd2V2ZXIsIGVhY2ggbmFtZSBzdHJpbmcg aXMgc3RhdGljCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA5 LWNocm9taXVtLW11c2wtdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAyMDktY2hyb21pdW0tbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGI3NjBhNDI4YjI1Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwOS1jaHJvbWl1 bS1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3BwYXBpL3V0aWxpdHkvdGhyZWFkaW5nL3NpbXBsZV90aHJlYWQu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9wcGFwaS91dGlsaXR5L3RocmVhZGluZy9z aW1wbGVfdGhyZWFkLmNjCitAQCAtMTMsNyArMTMsNyBAQCBuYW1lc3BhY2UgcHAgeworIG5hbWVz cGFjZSB7CisgCisgLy8gVXNlIDJNQiBkZWZhdWx0IHN0YWNrIHNpemUgZm9yIE5hdGl2ZSBDbGll bnQsIG90aGVyd2lzZSB1c2Ugc3lzdGVtIGRlZmF1bHQuCistI2lmIGRlZmluZWQoX19uYXRpdmVf Y2xpZW50X18pCisrI2lmIGRlZmluZWQoX19uYXRpdmVfY2xpZW50X18pIHx8ICFkZWZpbmVkKF9f R0xJQkNfXykKKyBjb25zdCBzaXplX3Qga0RlZmF1bHRTdGFja1NpemUgPSAyICogMTAyNCAqIDEw MjQ7CisgI2Vsc2UKKyBjb25zdCBzaXplX3Qga0RlZmF1bHRTdGFja1NpemUgPSAwOworLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL3BsYXRmb3JtLXBvc2l4 LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vcGxh dGZvcm0tcG9zaXguY2MKK0BAIC04ODMsNyArODgzLDcgQEAgYm9vbCBUaHJlYWQ6OlN0YXJ0KCkg eworICNpZiBWOF9PU19NQUNPU1gKKyAgICAgLy8gRGVmYXVsdCBvbiBNYWMgT1MgWCBpcyA1MTJr QiAtLSBidW1wIHVwIHRvIDFNQgorICAgICBzdGFja19zaXplID0gMSAqIDEwMjQgKiAxMDI0Owor LSNlbGlmIFY4X09TX0FJWAorKyNlbGlmIFY4X09TX0FJWCB8fCAhZGVmaW5lZChfX0dMSUJDX18p CisgICAgIC8vIERlZmF1bHQgb24gQUlYIGlzIDk2a0IgLS0gYnVtcCB1cCB0byAyTUIKKyAgICAg c3RhY2tfc2l6ZSA9IDIgKiAxMDI0ICogMTAyNDsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTAtY2hyb21pdW0tbXVzbC1tc2d2ZWMtcHVzaF9i YWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1t dXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi45MDVkYWEyMjM3MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjEwLWNocm9taXVtLW11c2wtbXNndmVjLXB1c2hfYmFjay5wYXRj aApAQCAtMCwwICsxLDE0IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L3NvY2tl dC91ZHBfc29ja2V0X3Bvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L3Nv Y2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCitAQCAtMTE2Miw3ICsxMTYyLDExIEBAIFNlbmRSZXN1 bHQgVURQU29ja2V0UG9zaXhTZW5kZXI6OkludGVybmEKKyAgICAgbXNnX2lvdi0+cHVzaF9iYWNr KHtjb25zdF9jYXN0PGNoYXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+bGVuZ3RoKCl9KTsK KyAgIG1zZ3ZlYy0+cmVzZXJ2ZShidWZmZXJzLnNpemUoKSk7CisgICBmb3IgKHNpemVfdCBqID0g MDsgaiA8IGJ1ZmZlcnMuc2l6ZSgpOyBqKyspCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAg ICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZtc2dfaW92W2pdLCAxLCBudWxscHRy LCAwLCAwfSwgMH0pOworKyNlbHNlCisrICAgIG1zZ3ZlYy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwg MCwgJm1zZ19pb3Zbal0sIDEsIDAsIDAsIDB9LCAwfSk7CisrI2VuZGlmCisgICBpbnQgcmVzdWx0 ID0gSEFORExFX0VJTlRSKFNlbmRtbXNnKGZkLCAmbXNndmVjWzBdLCBidWZmZXJzLnNpemUoKSwg MCkpOworICAgU2VuZFJlc3VsdCBzZW5kX3Jlc3VsdCgwLCAwLCBzdGQ6Om1vdmUoYnVmZmVycykp OworICAgaWYgKHJlc3VsdCA8IDApIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMTEtY2hyb21pdW0tbXVzbC1jYW5vbmljYWxpemUtZmlsZS1uYW1lLW11c2wu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjExLWNocm9taXVtLW11c2wt Y2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZDQzZTZiZDQ4OGJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMS1jaHJvbWl1bS1tdXNsLWNhbm9uaWNhbGl6ZS1m aWxlLW5hbWUtbXVzbC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvbmFzbS9uYXNtbGliL3JlYWxwYXRoLmMKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9uYXNtL25hc21saWIvcmVhbHBhdGguYworQEAg LTU1LDcgKzU1LDcgQEAKKyAgKi8KKyBjaGFyICpuYXNtX3JlYWxwYXRoKGNvbnN0IGNoYXIgKnJl bF9wYXRoKQorIHsKKy0gICAgY2hhciAqcnAgPSBjYW5vbmljYWxpemVfZmlsZV9uYW1lKHJlbF9w YXRoKTsKKysgICAgY2hhciAqcnAgPSByZWFscGF0aChyZWxfcGF0aCwgTlVMTCk7CisgICAgIHJl dHVybiBycCA/IHJwIDogbmFzbV9zdHJkdXAocmVsX3BhdGgpOworIH0KKyAKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTItY2hyb21pdW0tbXVzbC1uby1nZXRj b250ZXh0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMi1jaHJvbWl1 bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi41NzU1ZjFiNDVhN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjEyLWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5wYXRjaApA QCAtMCwwICsxLDI5IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5k bGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitA QCAtNDg5LDggKzQ4OSwxMCBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFs RGVsCisgICAvLyBFeGNlcHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoKS4KKyAgIHNpZ2luZm8u c2lfY29kZSA9IFNJX1VTRVI7CisgICBzaWdpbmZvLnNpX3BpZCA9IGdldHBpZCgpOworLSAgdWNv bnRleHRfdCBjb250ZXh0OworKyAgdWNvbnRleHRfdCBjb250ZXh0ID0geyAwIH07CisrI2lmIGRl ZmluZWQoX19HTElCQ19fKQorICAgZ2V0Y29udGV4dCgmY29udGV4dCk7CisrI2VuZGlmCisgICBy ZXR1cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2luZm8sICZjb250ZXh0KTsKKyB9CisgCitAQCAt Njc1LDkgKzY3NywxNCBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7 CisgICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAxLCAwLCAwLCAwKTsKKyAKKyAgIENyYXNo Q29udGV4dCBjb250ZXh0OworKworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGludCBnZXRj b250ZXh0X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNvbnRleHQuY29udGV4dCk7CisgICBpZiAoZ2V0 Y29udGV4dF9yZXN1bHQpCisgICAgIHJldHVybiBmYWxzZTsKKysjZWxzZQorKyAgcmV0dXJuIGZh bHNlOworKyNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgLy8gSW4gQ1BVRmls bEZyb21VQ29udGV4dCBpbiBtaW5pZHVtcHdyaXRlci5jYyB0aGUgc3RhY2sgcG9pbnRlciBpcyBy ZXRyaWV2ZWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMt Y2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjRkNDk5OTdlZDRmMwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5w YXRjaApAQCAtMCwwICsxLDIyIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBh dC9saW51eC9zeXMvcHRyYWNlLmgKK0BAIC0xNyw3ICsxNyw5IEBACisgCisgI2luY2x1ZGVfbmV4 dCA8c3lzL3B0cmFjZS5oPgorIAorKyNpZmRlZiBfX0dMSUJDX18KKyAjaW5jbHVkZSA8c3lzL2Nk ZWZzLmg+CisrI2VuZGlmCisgCisgLy8gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9z aG93X2J1Zy5jZ2k/aWQ9MjI0MzMKKyAjaWYgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJF QSkgJiYgIWRlZmluZWQoUFRfR0VUX1RIUkVBRF9BUkVBKSAmJiBcCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJh Y2VyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCitAQCAtMjYsNiArMjYsNyBAQAorIAorICNp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpCisgI2luY2x1ZGUgPGFzbS9sZHQuaD4KKysj aW5jbHVkZSA8YXNtL3B0cmFjZS1hYmkuaD4KKyAjZW5kaWYKKyAKKyBuYW1lc3BhY2UgY3Jhc2hw YWQgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJv bWl1bS1tdXNsLWZpeGVzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIx NC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNTViMjY3ZWQxNzE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoCkBAIC0wLDAg KzEsMTA4IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zdWlk L3Byb2Nlc3NfdXRpbC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCitAQCAtMTIsNiArMTIsMTUgQEAKKyAjaW5jbHVkZSA8c3Rk aW50Lmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorKyNpZiAhZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKFRFTVBfRkFJTFVSRV9SRVRSWSkKKysjIGRlZmluZSBURU1QX0ZBSUxV UkVfUkVUUlkoZXhwcmVzc2lvbikgXAorKwkoX19leHRlbnNpb25fXwkJCVwKKysJICh7IGxvbmcg aW50IF9fcmVzdWx0OwkJXAorKwkgIGRvIF9fcmVzdWx0ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lv bik7IFwKKysJICB3aGlsZSAoX19yZXN1bHQgPT0gLTFMICYmIGVycm5vID09IEVJTlRSKTsgXAor KwkgIF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKyAvLyBUaGlzIGFkanVzdHMgL3Byb2MvcHJv Y2Vzcy9vb21fc2NvcmVfYWRqIHNvIHRoZSBMaW51eCBPT00ga2lsbGVyCisgLy8gd2lsbCBwcmVm ZXIgY2VydGFpbiBwcm9jZXNzIHR5cGVzIG92ZXIgb3RoZXJzLiBUaGUgcmFuZ2UgZm9yIHRoZQor IC8vIGFkanVzdG1lbnQgaXMgWy0xMDAwLCAxMDAwXSwgd2l0aCBbMCwgMTAwMF0gYmVpbmcgdXNl ciBhY2Nlc3NpYmxlLgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NlcnZpY2VzL2Rldmlj ZS9zZXJpYWwvc2VyaWFsX2lvX2hhbmRsZXJfcG9zaXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zZXJ2aWNlcy9kZXZpY2Uvc2VyaWFsL3NlcmlhbF9pb19oYW5kbGVyX3Bvc2l4LmNj CitAQCAtNiw2ICs2LDcgQEAKKyAKKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisgI2luY2x1ZGUg PHRlcm1pb3MuaD4KKysjaW5jbHVkZSA8YXNtLWdlbmVyaWMvaW9jdGxzLmg+CisgCisgI2luY2x1 ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8dXRpbGl0eT4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCitAQCAtMzgsNiArMzgsMTAgQEAKKyAj aW5jbHVkZSAiY29tbW9uL21lbW9yeV9hbGxvY2F0b3IuaCIKKyAjaW5jbHVkZSAiZ29vZ2xlX2Jy ZWFrcGFkL2NvbW1vbi9taW5pZHVtcF9mb3JtYXQuaCIKKyAKKysjaWZuZGVmIF9fR0xJQkNfXwor KyNkZWZpbmUgX2xpYmNfZnBzdGF0ZSBfZnBzdGF0ZQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBn b29nbGVfYnJlYWtwYWQgeworIAorIC8vIFdyYXBzIHBsYXRmb3JtLWRlcGVuZGVudCBpbXBsZW1l bnRhdGlvbnMgb2YgYWNjZXNzb3JzIHRvIHVjb250ZXh0X3Qgc3RydWN0cy4KKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9mZm1wZWcvbGliYXZ1dGlsL2NwdS5jCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZmZtcGVnL2xpYmF2dXRpbC9jcHUu YworQEAgLTQxLDggKzQxLDEwIEBACisgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorICNlbmRpZgor ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5 cy9zeXNjdGwuaD4KKyAjZW5kaWYKKysjZW5kaWYKKyAjaWYgSEFWRV9VTklTVERfSAorICNpbmNs dWRlIDx1bmlzdGQuaD4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9wZXJmZXR0by9pbmNsdWRlL3BlcmZldHRvL2V4dC9iYXNlL3RocmVhZF91dGlscy5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVk ZS9wZXJmZXR0by9leHQvYmFzZS90aHJlYWRfdXRpbHMuaAorQEAgLTI5LDkgKzI5LDcgQEAKKyAj aW5jbHVkZSA8YWxnb3JpdGhtPgorICNlbmRpZgorIAorLSNpZiBQRVJGRVRUT19CVUlMREZMQUco UEVSRkVUVE9fT1NfQU5EUk9JRCkKKyAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CistI2VuZGlmCisg CisgLy8gSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gdXRpbHMgdGhhdCBhcmVuJ3QgYXMgd2lkZWx5 IHVzZWZ1bC9zdXBwb3J0ZWQgYXMKKyAvLyBiYXNlL3RocmVhZF91dGlscy5oLgorQEAgLTU4LDcg KzU2LDcgQEAgaW5saW5lIGJvb2wgTWF5YmVTZXRUaHJlYWROYW1lKGNvbnN0IHN0ZAorIAorIGlu bGluZSBib29sIEdldFRocmVhZE5hbWUoc3RkOjpzdHJpbmcmIG91dF9yZXN1bHQpIHsKKyAgIGNo YXIgYnVmWzE2XSA9IHt9OworLSNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5E Uk9JRCkKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorICAgaWYgKHByY3RsKFBSX0dFVF9OQU1F LCBidWYpICE9IDApCisgICAgIHJldHVybiBmYWxzZTsKKyAjZWxzZQorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1 cHBvcnQuaAorQEAgLTEzMDAsNiArMTMwMCwxOCBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Cisg I2lmbmRlZiBfX05SX2ZhbGxvY2F0ZQorICNkZWZpbmUgX19OUl9mYWxsb2NhdGUgICAgICAgICAg Mjg1CisgI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysjaWZkZWYgX19OUl9w cmVhZAorKyN1bmRlZiBfX05SX3ByZWFkCisrI2VuZGlmCisrI2lmZGVmIF9fTlJfcHdyaXRlCisr I3VuZGVmIF9fTlJfcHdyaXRlCisrI2VuZGlmCisrI2RlZmluZSBfX05SX3ByZWFkIF9fTlJfcHJl YWQ2NAorKyNkZWZpbmUgX19OUl9wd3JpdGUgX19OUl9wd3JpdGU2NAorKyNlbmRpZiAvKiAhZGVm aW5lZChfX0dMSUJDX18pICovCisrCisgI2lmbmRlZiBfX05SX2dldHJhbmRvbQorICNkZWZpbmUg X19OUl9nZXRyYW5kb20gICAgICAgICAgMzE4CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYworQEAg LTkzLDcgKzkzLDggQEAgYWJzbDo6b3B0aW9uYWw8RG5zQ29uZmlnPiBSZWFkRG5zQ29uZmlnKAor IAorICAgYWJzbDo6b3B0aW9uYWw8RG5zQ29uZmlnPiBkbnNfY29uZmlnOworIC8vIFRPRE8oZnVj aHNpYSk6IFVzZSByZXNfbmluaXQoKSB3aGVuIGl0J3MgaW1wbGVtZW50ZWQgb24gRnVjaHNpYS4K Ky0jaWYgZGVmaW5lZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2lmIGRl ZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19GVUNIU0lBKSB8fCBcCisrICAoZGVmaW5l ZChPU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAgIC8vIE5vdGU6IHJlc19uaW5p dCBpbiBnbGliYyBhbHdheXMgcmV0dXJucyAwIGFuZCBzZXRzIFJFU19JTklULgorICAgLy8gcmVz X2luaXQgYmVoYXZlcyB0aGUgc2FtZSB3YXkuCisgICBtZW1zZXQoJl9yZXMsIDAsIHNpemVvZihf cmVzKSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNo cm9taXVtLW11c2wtY2RlZnMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi45ZDFkYWVjMjkxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2gKQEAgLTAs MCArMSwyOSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnN5 bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCitAQCAtMTksMTIgKzE5 LDEzIEBACisgI2lmbmRlZiBfX1NZU19DT1JFX1NZTkNfSAorICNkZWZpbmUgX19TWVNfQ09SRV9T WU5DX0gKKyAKKy0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1ZGUgPHN0ZGludC5oPgor IAorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5fREVDTFMKKysjaWZkZWYg X19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYKKyAKKyBzdHJ1Y3Qgc3luY19sZWdh Y3lfbWVyZ2VfZGF0YSB7CisgIGludDMyX3QgZmQyOworQEAgLTE1OCw2ICsxNTksOSBAQCBzdHJ1 Y3Qgc3luY19wdF9pbmZvICpzeW5jX3B0X2luZm8oc3RydWN0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBzeW5jX3B0X2luZm8gKml0cik7Cisgdm9pZCBzeW5jX2Zl bmNlX2luZm9fZnJlZShzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8pOworIAorLV9f RU5EX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorKworIAorICNlbmRp ZiAvKiBfX1NZU19DT1JFX1NZTkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIxNi1jaHJvbWl1bS1tdXNsLXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjE2LWNocm9taXVtLW11c2wtc3RhdC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ1MDlhNjk1N2NkNwotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTYtY2hyb21pdW0tbXVzbC1z dGF0LnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9i YXNlL2ZpbGVzL2ZpbGUuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMv ZmlsZS5oCitAQCAtMTksNyArMTksOCBAQAorICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcu aCIKKyAKKyAjaWYgZGVmaW5lZChPU19CU0QpIHx8IGRlZmluZWQoT1NfQVBQTEUpIHx8IGRlZmlu ZWQoT1NfTkFDTCkgfHwgXAorLSAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9T X0FORFJPSUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIxKQorKyAgICBkZWZpbmVkKE9TX0ZVQ0hT SUEpIHx8IChkZWZpbmVkKE9TX0FORFJPSUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIxKSB8fCBc CisrICAgIChkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorIHN0cnVj dCBzdGF0OworIG5hbWVzcGFjZSBiYXNlIHsKKyB0eXBlZGVmIHN0cnVjdCBzdGF0IHN0YXRfd3Jh cHBlcl90OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNy1j aHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uYzNkN2FmYWQ5YjE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBh dGNoCkBAIC0wLDAgKzEsNzcgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5z L2Ruc19jb25maWdfc2VydmljZV9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX2xpbnV4LmNjCitAQCAtNDMyLDExICs0MzIsMTMg QEAgY2xhc3MgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpDb25maWdSZWFkZQorICAgICBiYXNlOjpT Y29wZWRCbG9ja2luZ0NhbGwgc2NvcGVkX2Jsb2NraW5nX2NhbGwoCisgICAgICAgICBGUk9NX0hF UkUsIGJhc2U6OkJsb2NraW5nVHlwZTo6TUFZX0JMT0NLKTsKKyAKKysjaWYgZGVmaW5lZChfX0dM SUJDX18pCisgICAgIHN0ZDo6dW5pcXVlX3B0cjxzdHJ1Y3QgX19yZXNfc3RhdGU+IHJlcyA9IHJl c29sdl9yZWFkZXJfLT5HZXRSZXNTdGF0ZSgpOworICAgICBpZiAocmVzKSB7CisgICAgICAgZG5z X2NvbmZpZ18gPSBDb252ZXJ0UmVzU3RhdGVUb0Ruc0NvbmZpZygqcmVzLmdldCgpKTsKKyAgICAg ICByZXNvbHZfcmVhZGVyXy0+Q2xvc2VSZXNTdGF0ZShyZXMuZ2V0KCkpOworICAgICB9CisrI2Vu ZGlmCisgCisgICAgIFVNQV9ISVNUT0dSQU1fQk9PTEVBTigiTmV0LkROUy5EbnNDb25maWcuUmVz b2x2LlJlYWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZG5zX2NvbmZpZ18uaGFzX3Zh bHVlKCkpOworQEAgLTQ4Niw2ICs0ODgsNyBAQCBjbGFzcyBEbnNDb25maWdTZXJ2aWNlTGludXg6 OkNvbmZpZ1JlYWRlCisgCisgc3RkOjp1bmlxdWVfcHRyPHN0cnVjdCBfX3Jlc19zdGF0ZT4KKyBE bnNDb25maWdTZXJ2aWNlTGludXg6OlJlc29sdlJlYWRlcjo6R2V0UmVzU3RhdGUoKSB7CisrI2lm IGRlZmluZWQoX19HTElCQ19fKQorICAgYXV0byByZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPHN0cnVj dCBfX3Jlc19zdGF0ZT4oKTsKKyAgIG1lbXNldChyZXMuZ2V0KCksIDAsIHNpemVvZihzdHJ1Y3Qg X19yZXNfc3RhdGUpKTsKKyAKK0BAIC00OTUsMTEgKzQ5OCwxNiBAQCBEbnNDb25maWdTZXJ2aWNl TGludXg6OlJlc29sdlJlYWRlcjo6R2V0CisgICB9CisgCisgICByZXR1cm4gcmVzOworKyNlbHNl CisrICByZXR1cm4gbnVsbHB0cjsKKysjZW5kaWYKKyB9CisgCisgdm9pZCBEbnNDb25maWdTZXJ2 aWNlTGludXg6OlJlc29sdlJlYWRlcjo6Q2xvc2VSZXNTdGF0ZSgKKyAgICAgc3RydWN0IF9fcmVz X3N0YXRlKiByZXMpIHsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICByZXNfbmNsb3NlKHJl cyk7CisrI2VuZGlmCisgfQorIAorIERuc0NvbmZpZ1NlcnZpY2VMaW51eDo6RG5zQ29uZmlnU2Vy dmljZUxpbnV4KCkKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19yZWxv YWRlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX3JlbG9hZGVy LmNjCitAQCAtNCw4ICs0LDcgQEAKKyAKKyAjaW5jbHVkZSAibmV0L2Rucy9kbnNfcmVsb2FkZXIu aCIKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfQVBQTEUpICYmICFk ZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKy0gICAgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRl ZmluZWQoT1NfRlVDSFNJQSkKKysjaWZkZWYgX19HTElCQ19fCisgCisgI2luY2x1ZGUgPHJlc29s di5oPgorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZl cl9tYW5hZ2VyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9ob3N0X3Jl c29sdmVyX21hbmFnZXIuY2MKK0BAIC0yNzIwLDggKzI3MjAsNyBAQCBIb3N0UmVzb2x2ZXJNYW5h Z2VyOjpIb3N0UmVzb2x2ZXJNYW5hZ2VyCisgICBOZXR3b3JrQ2hhbmdlTm90aWZpZXI6OkFkZENv bm5lY3Rpb25UeXBlT2JzZXJ2ZXIodGhpcyk7CisgICBpZiAoc3lzdGVtX2Ruc19jb25maWdfbm90 aWZpZXJfKQorICAgICBzeXN0ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8tPkFkZE9ic2VydmVyKHRo aXMpOworLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19BUFBMRSkgJiYgIWRl ZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorLSAgICAhZGVmaW5lZChPU19BTkRST0lEKQorKyNpZmRl ZiBfX0dMSUJDX18KKyAgIEVuc3VyZURuc1JlbG9hZGVySW5pdCgpOworICNlbmRpZgorIAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MK K0BAIC0xNzYsOCArMTc2LDcgQEAgaW50IFN5c3RlbUhvc3RSZXNvbHZlckNhbGwoY29uc3Qgc3Rk OjpzdAorICAgYmFzZTo6U2NvcGVkQmxvY2tpbmdDYWxsIHNjb3BlZF9ibG9ja2luZ19jYWxsKEZS T01fSEVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiYXNlOjpCbG9ja2luZ1R5cGU6OldJTExfQkxPQ0spOworIAorLSNpZiBkZWZpbmVkKE9TX1BP U0lYKSAmJiAhZGVmaW5lZChPU19BUFBMRSkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAor LSAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChPU19GVUNIU0lBKQorKyNpZmRl ZiBfX0dMSUJDX18KKyAgIERuc1JlbG9hZGVyTWF5YmVSZWxvYWQoKTsKKyAjZW5kaWYKKyAgIGFi c2w6Om9wdGlvbmFsPEFkZHJlc3NJbmZvPiBhaTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzA2MDAtY2hyb21pdW0tc25kaW8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wNjAwLWNocm9taXVtLXNuZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDMwMjg3NGZmYmE0Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDYwMC1jaHJvbWl1bS1zbmRpby5wYXRj aApAQCAtMCwwICsxLDg3NiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL0JV SUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvQlVJTEQuZ24KK0BAIC03 Miw2ICs3Miw5IEBAIGNvbmZpZygibWVkaWFfY29uZmlnIikgeworICAgICAgIGRlZmluZXMgKz0g WyAiRExPUEVOX1BVTFNFQVVESU8iIF0KKyAgICAgfQorICAgfQorKyAgaWYgKHVzZV9zbmRpbykg eworKyAgICBkZWZpbmVzICs9IFsgIlVTRV9TTkRJTyIgXQorKyAgfQorICAgaWYgKHVzZV9jcmFz KSB7CisgICAgIGRlZmluZXMgKz0gWyAiVVNFX0NSQVMiIF0KKyAgIH0KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL21lZGlhL2F1ZGlvL0JVSUxELmduCitAQCAtMjQwLDYgKzI0MCwxNyBAQCBzb3VyY2Vf c2V0KCJhdWRpbyIpIHsKKyAgICAgc291cmNlcyArPSBbICJsaW51eC9hdWRpb19tYW5hZ2VyX2xp bnV4LmNjIiBdCisgICB9CisgCisrICBpZiAodXNlX3NuZGlvKSB7CisrICAgIGxpYnMgKz0gWyAi c25kaW8iIF0KKysgICAgc291cmNlcyArPSBbCisrICAgICAgInNuZGlvL2F1ZGlvX21hbmFnZXJf c25kaW8uY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19pbnB1dC5jYyIsCisrICAgICAgInNuZGlv L3NuZGlvX2lucHV0LmgiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQuY2MiLAorKyAgICAg ICJzbmRpby9zbmRpb19vdXRwdXQuaCIKKysgICAgXQorKyAgfQorKworICAgaWYgKHVzZV9hbHNh KSB7CisgICAgIGxpYnMgKz0gWyAiYXNvdW5kIiBdCisgICAgIHNvdXJjZXMgKz0gWworLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGlu dXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRp b19tYW5hZ2VyX2xpbnV4LmNjCitAQCAtMjUsNiArMjUsMTEgQEAKKyAjaW5jbHVkZSAibWVkaWEv YXVkaW8vcHVsc2UvYXVkaW9fbWFuYWdlcl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRpYS9hdWRp by9wdWxzZS9wdWxzZV91dGlsLmgiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrI2lu Y2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUgIm1lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBtZWRp YSB7CisgCitAQCAtMzIsNyArMzcsOCBAQCBlbnVtIExpbnV4QXVkaW9JTyB7CisgICBrUHVsc2Us CisgICBrQWxzYSwKKyAgIGtDcmFzLAorLSAga0F1ZGlvSU9NYXggPSBrQ3JhcyAgLy8gTXVzdCBh bHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50cnkuCisrICBrU25kaW8sCisrICBr QXVkaW9JT01heCA9IGtTbmRpbyAvLyBNdXN0IGFsd2F5cyBiZSBlcXVhbCB0byBsYXJnZXN0IGxv Z2dlZCBlbnRyeS4KKyB9OworIAorIHN0ZDo6dW5pcXVlX3B0cjxtZWRpYTo6QXVkaW9NYW5hZ2Vy PiBDcmVhdGVBdWRpb01hbmFnZXIoCitAQCAtNDUsNiArNTEsMTYgQEAgc3RkOjp1bmlxdWVfcHRy PG1lZGlhOjpBdWRpb01hbmFnZXI+IENyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9yeSk7CisgICB9CisgCisrI2lmIGRlZmlu ZWQoVVNFX1NORElPKQorKyAgc3RydWN0IHNpb19oZGwgKmhkbCA9IHNpb19vcGVuKFNJT19ERVZB TlksIFNJT19QTEFZLCAwKTsKKysgIGlmIChoZGwgIT0gTlVMTCkgeworKyAgICBzaW9fY2xvc2Uo aGRsKTsKKysgICAgVU1BX0hJU1RPR1JBTV9FTlVNRVJBVElPTigiTWVkaWEuTGludXhBdWRpb0lP Iiwga1NuZGlvLCBrQXVkaW9JT01heCArIDEpOworKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1 ZTxBdWRpb01hbmFnZXJTbmRpbz4oc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9y eSk7CisrICB9CisrI2VuZGlmCisrCisgI2lmIGRlZmluZWQoVVNFX0NSQVMpCisgICBpZiAoYmFz ZTo6Q29tbWFuZExpbmU6OkZvckN1cnJlbnRQcm9jZXNzKCktPkhhc1N3aXRjaChzd2l0Y2hlczo6 a1VzZUNyYXMpKSB7CisgICAgIFVNQV9ISVNUT0dSQU1fRU5VTUVSQVRJT04oIk1lZGlhLkxpbnV4 QXVkaW9JTyIsIGtDcmFzLCBrQXVkaW9JT01heCArIDEpOworLS0tIC9kZXYvbnVsbAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25k aW8uY2MKK0BAIC0wLDAgKzEsMTQ4IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJv bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJj ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpbmNsdWRlICJtZWRpYS9hdWRpby9z bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrCisrI2luY2x1ZGUgImJhc2UvbWV0cmljcy9o aXN0b2dyYW1fbWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2UvbWVtb3J5L3B0cl91dGlsLmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgorKyNpbmNs dWRlICJtZWRpYS9hdWRpby9hdWRpb19vdXRwdXRfZGlzcGF0Y2hlci5oIgorKyNpbmNsdWRlICJt ZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9z bmRpby9zbmRpb19vdXRwdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9saW1pdHMuaCIKKysj aW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5oIgorKworK25hbWVzcGFjZSBtZWRp YSB7CisrCisrCisrLy8gTWF4aW11bSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgdGhhdCBjYW4g YmUgb3BlbiBzaW11bHRhbmVvdXNseS4KKytzdGF0aWMgY29uc3QgaW50IGtNYXhPdXRwdXRTdHJl YW1zID0gNDsKKysKKysvLyBEZWZhdWx0IHNhbXBsZSByYXRlIGZvciBpbnB1dCBhbmQgb3V0cHV0 IHN0cmVhbXMuCisrc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdFNhbXBsZVJhdGUgPSA0ODAwMDsK KysKKyt2b2lkIEFkZERlZmF1bHREZXZpY2UoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVz KSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0eSgpKTsKKysgIGRldmljZV9uYW1lcy0+ cHVzaF9mcm9udChBdWRpb0RldmljZU5hbWU6OkNyZWF0ZURlZmF1bHQoKSk7CisrfQorKworK2Jv b2wgQXVkaW9NYW5hZ2VyU25kaW86Okhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIHsKKysgIHJldHVy biB0cnVlOworK30KKysKKytib29sIEF1ZGlvTWFuYWdlclNuZGlvOjpIYXNBdWRpb0lucHV0RGV2 aWNlcygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlv OjpHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoCisrICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmlj ZV9uYW1lcykgeworKyAgRENIRUNLKGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisrICBBZGREZWZh dWx0RGV2aWNlKGRldmljZV9uYW1lcyk7CisrfQorKworK3ZvaWQgQXVkaW9NYW5hZ2VyU25kaW86 OkdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoCisrICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmlj ZV9uYW1lcykgeworKyAgQWRkRGVmYXVsdERldmljZShkZXZpY2VfbmFtZXMpOworK30KKysKKytj b25zdCBjaGFyKiBBdWRpb01hbmFnZXJTbmRpbzo6R2V0TmFtZSgpIHsKKysgIHJldHVybiAiU05E SU8iOworK30KKysKKytBdWRpb1BhcmFtZXRlcnMgQXVkaW9NYW5hZ2VyU25kaW86OkdldElucHV0 U3RyZWFtUGFyYW1ldGVycygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkgewor KyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdElucHV0QnVmZmVyU2l6ZSA9IDEwMjQ7CisrCisr ICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisrICBpbnQgYnVm ZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplID8KKysgICAgICB1c2VyX2J1ZmZlcl9zaXplIDog a0RlZmF1bHRJbnB1dEJ1ZmZlclNpemU7CisrCisrICByZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAor KyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBDSEFOTkVMX0xB WU9VVF9TVEVSRU8sCisrICAgICAga0RlZmF1bHRTYW1wbGVSYXRlLCBidWZmZXJfc2l6ZSk7Cisr fQorKworK0F1ZGlvTWFuYWdlclNuZGlvOjpBdWRpb01hbmFnZXJTbmRpbyhzdGQ6OnVuaXF1ZV9w dHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpCisrICAg IDogQXVkaW9NYW5hZ2VyQmFzZShzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwKKysgICAgICAgICAg ICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJB dWRpb01hbmFnZXJTbmRpbyI7CisrICBTZXRNYXhPdXRwdXRTdHJlYW1zQWxsb3dlZChrTWF4T3V0 cHV0U3RyZWFtcyk7CisrfQorKworK0F1ZGlvTWFuYWdlclNuZGlvOjp+QXVkaW9NYW5hZ2VyU25k aW8oKSB7CisrICBTaHV0ZG93bigpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9N YW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFy YW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7 CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSLCBwYXJhbXMu Zm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisr QXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTG93TGF0ZW5jeU91dHB1 dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2Fs bGJhY2spIHsKKysgIERMT0dfSUYoRVJST1IsICFkZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBp bXBsZW1lbnRlZCEiOworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0o cGFyYW1zKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1h a2VMaW5lYXJJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMs CisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0NhbGxi YWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElP X1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFrZUlucHV0U3RyZWFt KHBhcmFtcyk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpN YWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgY29uc3QgTG9n Q2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6 QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VJ bnB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb1BhcmFtZXRlcnMgQXVkaW9NYW5hZ2Vy U25kaW86OkdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgIGNvbnN0IHN0 ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkLAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMm IGlucHV0X3BhcmFtcykgeworKyAgLy8gVE9ETyh0b21taSk6IFN1cHBvcnQgfG91dHB1dF9kZXZp Y2VfaWR8LgorKyAgRExPR19JRihFUlJPUiwgIW91dHB1dF9kZXZpY2VfaWQuZW1wdHkoKSkgPDwg Ik5vdCBpbXBsZW1lbnRlZCEiOworKyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdE91dHB1dEJ1 ZmZlclNpemUgPSAyMDQ4OworKworKyAgQ2hhbm5lbExheW91dCBjaGFubmVsX2xheW91dCA9IENI QU5ORUxfTEFZT1VUX1NURVJFTzsKKysgIGludCBzYW1wbGVfcmF0ZSA9IGtEZWZhdWx0U2FtcGxl UmF0ZTsKKysgIGludCBidWZmZXJfc2l6ZSA9IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZTsKKysg IGlmIChpbnB1dF9wYXJhbXMuSXNWYWxpZCgpKSB7CisrICAgIHNhbXBsZV9yYXRlID0gaW5wdXRf cGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICAgIGNoYW5uZWxfbGF5b3V0ID0gaW5wdXRfcGFyYW1z LmNoYW5uZWxfbGF5b3V0KCk7CisrICAgIGJ1ZmZlcl9zaXplID0gc3RkOjptaW4oYnVmZmVyX3Np emUsIGlucHV0X3BhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpKTsKKysgIH0KKysKKysgIGludCB1 c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNpemUoKTsKKysgIGlmICh1c2VyX2J1ZmZl cl9zaXplKQorKyAgICBidWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVyX3NpemU7CisrCisrICByZXR1 cm4gQXVkaW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZLCBjaGFubmVsX2xheW91dCwKKysgICAgICBzYW1wbGVfcmF0ZSwgYnVmZmVyX3Np emUpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUlu cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgeworKyAgRExP RyhXQVJOSU5HKSA8PCAiTWFrZUlucHV0U3RyZWFtIjsKKysgIHJldHVybiBuZXcgU25kaW9BdWRp b0lucHV0U3RyZWFtKHRoaXMsCisrICAgICAgICAgICAgIEF1ZGlvRGV2aWNlRGVzY3JpcHRpb246 OmtEZWZhdWx0RGV2aWNlSWQsIHBhcmFtcyk7CisrfQorKworK0F1ZGlvT3V0cHV0U3RyZWFtKiBB dWRpb01hbmFnZXJTbmRpbzo6TWFrZU91dHB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJh bWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklORykgPDwgIk1ha2VPdXRwdXRTdHJlYW0i OworKyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKHBhcmFtcywgdGhpcyk7Cisr fQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaAor QEAgLTAsMCArMSw2NSBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0 aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX0FVRElP X01BTkFHRVJfU05ESU9fSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFH RVJfU05ESU9fSF8KKysKKysjaW5jbHVkZSA8c2V0PgorKworKyNpbmNsdWRlICJiYXNlL2NvbXBp bGVyX3NwZWNpZmljLmgiCisrI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgImJh c2UvbWVtb3J5L3JlZl9jb3VudGVkLmgiCisrI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVh ZC5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2VyX2Jhc2UuaCIKKysKKytu YW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNzIE1FRElBX0VYUE9SVCBBdWRpb01hbmFnZXJTbmRp byA6IHB1YmxpYyBBdWRpb01hbmFnZXJCYXNlIHsKKysgcHVibGljOgorKyAgQXVkaW9NYW5hZ2Vy U25kaW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAg ICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfkF1 ZGlvTWFuYWdlclNuZGlvKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBB dWRpb01hbmFnZXIuCisrICBib29sIEhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIG92ZXJyaWRlOwor KyAgYm9vbCBIYXNBdWRpb0lucHV0RGV2aWNlcygpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRBdWRp b0lucHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlk ZTsKKysgIHZvaWQgR2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5hbWVzKiBk ZXZpY2VfbmFtZXMpIG92ZXJyaWRlOworKyAgQXVkaW9QYXJhbWV0ZXJzIEdldElucHV0U3RyZWFt UGFyYW1ldGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkKSBvdmVycmlk ZTsKKysgIGNvbnN0IGNoYXIqIEdldE5hbWUoKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVu dGF0aW9uIG9mIEF1ZGlvTWFuYWdlckJhc2UuCisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxp bmVhck91dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywK KysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1 ZGlvT3V0cHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgICBjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRl OworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxpbmVhcklucHV0U3RyZWFtKAorKyAgICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBk ZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJp ZGU7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAg ICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3Ry aW5nJiBkZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykg b3ZlcnJpZGU7CisrCisrIHByb3RlY3RlZDoKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJy ZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRw dXRfZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1z KSBvdmVycmlkZTsKKysKKysgcHJpdmF0ZToKKysgIC8vIENhbGxlZCBieSBNYWtlTGluZWFyT3V0 cHV0U3RyZWFtIGFuZCBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbS4KKysgIEF1ZGlvT3V0cHV0 U3RyZWFtKiBNYWtlT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsK KysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VJbnB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcyk7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9NYW5hZ2Vy U25kaW8pOworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBN RURJQV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCistLS0gL2Rldi9udWxsCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQu Y2MKK0BAIC0wLDAgKzEsMjAwIEBACisrLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1 dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5k IGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgImJhc2UvYmluZC5oIgorKyNpbmNs dWRlICJiYXNlL2xvZ2dpbmcuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVk ZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVscGVyLmgiCisrI2luY2x1ZGUgIm1lZGlh L2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVk aW8vYXVkaW9fbWFuYWdlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19p bnB1dC5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrc3RhdGljIGNvbnN0IFNhbXBsZUZv cm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZvcm1hdFMxNjsKKysKKyt2b2lkIFNuZGlvQXVk aW9JbnB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpCisrewor KyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lu cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3X2RlbGF5ICs9IGRlbHRhOworK30KKysK Kyt2b2lkICpTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgewor KyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb0lu cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPlRocmVhZExvb3AoKTsKKysgIHJldHVybiBO VUxMOworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNuZGlvQXVkaW9JbnB1dFN0cmVh bShBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1BhcmFt ZXRlcnMmIHBhcmFtcykKKysgICAgOiBtYW5hZ2VyKG1hbmFnZXIpLAorKyAgICAgIHBhcmFtcyhw YXJhbXMpLAorKyAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1czo6Q3JlYXRlKHBhcmFtcykpLAorKyAg ICAgIHN0YXRlKGtDbG9zZWQpIHsKKyt9CisrCisrU25kaW9BdWRpb0lucHV0U3RyZWFtOjp+U25k aW9BdWRpb0lucHV0U3RyZWFtKCkgeworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIENs b3NlKCk7CisrfQorKworK2Jvb2wgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpPcGVuKCkgeworKyAg c3RydWN0IHNpb19wYXIgcGFyOworKyAgaW50IHNpZzsKKysKKysgIGlmIChzdGF0ZSAhPSBrQ2xv c2VkKQorKyAgICByZXR1cm4gZmFsc2U7CisrCisrICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1 ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorKyAgICAgIHBhcmFtcy5mb3JtYXQo KSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworKyAgICBMT0co V0FSTklORykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4iOworKyAgICByZXR1cm4gZmFs c2U7CisrICB9CisrCisrICBzaW9faW5pdHBhcigmcGFyKTsKKysgIHBhci5yYXRlID0gcGFyYW1z LnNhbXBsZV9yYXRlKCk7CisrICBwYXIucmNoYW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKKysgIHBh ci5iaXRzID0gU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKysg IHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisrICBwYXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0g OCA/IDEgOiAwOworKyAgcGFyLmxlID0gU0lPX0xFX05BVElWRTsKKysgIHBhci5hcHBidWZzeiA9 IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworKworKyAgaGRsID0gc2lvX29wZW4oU0lPX0RF VkFOWSwgU0lPX1JFQywgMCk7CisrCisrICBpZiAoaGRsID09IE5VTEwpIHsKKysgICAgTE9HKEVS Uk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZpY2UuIjsKKysgICAgcmV0dXJuIGZhbHNl OworKyAgfQorKworKyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBhcikgfHwgIXNpb19nZXRwYXIo aGRsLCAmcGFyKSkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFy YW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysKKysgIGlmIChwYXIucmF0 ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUoKSB8fAorKyAgICAgIHBhci5y Y2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFubmVscygpIHx8CisrICAgICAgcGFyLmJp dHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxl Rm9ybWF0KSB8fAorKyAgICAgIHBhci5zaWcgICAhPSAodW5zaWduZWQgaW50KXNpZyB8fAorKyAg ICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05BVElWRSkgfHwKKysgICAgICAo cGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIlVuc3VwcG9y dGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRfY2xvc2U7CisrICB9CisrICBz dGF0ZSA9IGtTdG9wcGVkOworKyAgYnVmZmVyID0gbmV3IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMo KSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpXTsKKysgIHNpb19vbm1v dmUoaGRsLCAmT25Nb3ZlQ2FsbGJhY2ssIHRoaXMpOworKyAgcmV0dXJuIHRydWU7CisrYmFkX2Ns b3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQg U25kaW9BdWRpb0lucHV0U3RyZWFtOjpTdGFydChBdWRpb0lucHV0Q2FsbGJhY2sqIGNiKSB7Cisr CisrICBTdGFydEFnYygpOworKworKyAgc3RhdGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5ID0g MDsKKysgIGNhbGxiYWNrID0gY2I7CisrICBzaW9fc3RhcnQoaGRsKTsKKysgIGlmIChwdGhyZWFk X2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRoaXMpICE9IDApIHsKKysgICAg TE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRpbWUgdGhyZWFkIGZvciByZWNv cmRpbmcuIjsKKysgICAgc2lvX3N0b3AoaGRsKTsKKysgICAgc3RhdGUgPSBrU3RvcHBlZDsKKysg IH0KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0b3AoKSB7CisrCisrICBp ZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVybjsKKysKKysgIHN0YXRlID0ga1N0b3BX YWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisrICBzaW9fc3RvcChoZGwpOwor KyAgc3RhdGUgPSBrU3RvcHBlZDsKKysKKysgIFN0b3BBZ2MoKTsKKyt9CisrCisrdm9pZCBTbmRp b0F1ZGlvSW5wdXRTdHJlYW06OkNsb3NlKCkgeworKworKyAgaWYgKHN0YXRlID09IGtDbG9zZWQp CisrICAgIHJldHVybjsKKysKKysgIGlmIChzdGF0ZSA9PSBrUnVubmluZykKKysgICAgU3RvcCgp OworKworKyAgc3RhdGUgPSBrQ2xvc2VkOworKyAgZGVsZXRlIFtdIGJ1ZmZlcjsKKysgIHNpb19j bG9zZShoZGwpOworKworKyAgbWFuYWdlci0+UmVsZWFzZUlucHV0U3RyZWFtKHRoaXMpOworK30K KysKKytkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRNYXhWb2x1bWUoKSB7CisrICAv LyBOb3Qgc3VwcG9ydGVkCisrICByZXR1cm4gMC4wOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9J bnB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsKKysgIC8vIE5vdCBzdXBwb3J0 ZWQuIERvIG5vdGhpbmcuCisrfQorKworK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Okdl dFZvbHVtZSgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrICByZXR1cm4gMC4wOworK30KKysK Kytib29sIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6SXNNdXRlZCgpIHsKKysgIC8vIE5vdCBzdXBw b3J0ZWQuCisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpTZXRPdXRwdXREZXZpY2VGb3JBZWMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRw dXRfZGV2aWNlX2lkKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgorK30KKysKKyt2b2lkIFNuZGlv QXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkTG9vcCh2b2lkKSB7CisrICBzaXplX3QgdG9kbywgbjsK KysgIGNoYXIgKmRhdGE7CisrICB1bnNpZ25lZCBpbnQgbmZyYW1lczsKKysgIGRvdWJsZSBub3Jt YWxpemVkX3ZvbHVtZSA9IDAuMDsKKysKKysgIG5mcmFtZXMgPSBhdWRpb19idXMtPmZyYW1lcygp OworKworKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nICYmICFzaW9fZW9mKGhkbCkpIHsKKysK KysgICAgR2V0QWdjVm9sdW1lKCZub3JtYWxpemVkX3ZvbHVtZSk7CisrCisrICAgIC8vIHJlYWQg b25lIGJsb2NrCisrICAgIHRvZG8gPSBuZnJhbWVzICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUo a1NhbXBsZUZvcm1hdCk7CisrICAgIGRhdGEgPSBidWZmZXI7CisrICAgIHdoaWxlICh0b2RvID4g MCkgeworKyAgICAgIG4gPSBzaW9fcmVhZChoZGwsIGRhdGEsIHRvZG8pOworKyAgICAgIGlmIChu ID09IDApCisrICAgICAgICByZXR1cm47CS8vIHVucmVjb3ZlcmFibGUgSS9PIGVycm9yCisrICAg ICAgdG9kbyAtPSBuOworKyAgICAgIGRhdGEgKz0gbjsKKysgICAgfQorKyAgICBod19kZWxheSAt PSBuZnJhbWVzOworKworKyAgICAvLyBjb252ZXJ0IGZyYW1lcyBjb3VudCB0byBUaW1lRGVsdGEK KysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3RhbXBIZWxwZXI6 OkZyYW1lc1RvVGltZShod19kZWxheSwKKysgICAgICBwYXJhbXMuc2FtcGxlX3JhdGUoKSk7Cisr CisrICAgIC8vIHB1c2ggaW50byBidXMKKysgICAgYXVkaW9fYnVzLT5Gcm9tSW50ZXJsZWF2ZWQ8 U2lnbmVkSW50MTZTYW1wbGVUeXBlVHJhaXRzPihyZWludGVycHJldF9jYXN0PGludDE2X3QqPihi dWZmZXIpLCBuZnJhbWVzKTsKKysKKysgICAgLy8gaW52b2tlIGNhbGxiYWNrCisrICAgIGNhbGxi YWNrLT5PbkRhdGEoYXVkaW9fYnVzLmdldCgpLCBiYXNlOjpUaW1lVGlja3M6Ok5vdygpIC0gZGVs YXksIDEuKTsKKysgIH0KKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCistLS0gL2Rldi9u dWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vc25kaW9f aW5wdXQuaAorQEAgLTAsMCArMSw5MSBAQAorKy8vIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1 bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBj b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBm b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9f U05ESU9fSU5QVVRfSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hf CisrCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKyNpbmNsdWRlIDxzdHJpbmc+CisrI2luY2x1ZGUg PHNuZGlvLmg+CisrCisrI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKysjaW5j bHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvd2Vha19wdHIuaCIK KysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYWdj X2F1ZGlvX3N0cmVhbS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKyNp bmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVk ZSAibWVkaWEvYmFzZS9hdWRpb19wYXJhbWV0ZXJzLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsK KysKKytjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworKworKy8vIEltcGxlbWVudGF0aW9uIG9mIEF1 ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCisrY2xhc3MgU25kaW9BdWRpb0lucHV0U3Ry ZWFtIDogcHVibGljIEFnY0F1ZGlvU3RyZWFtPEF1ZGlvSW5wdXRTdHJlYW0+IHsKKysgcHVibGlj OgorKyAgLy8gUGFzcyB0aGlzIHRvIHRoZSBjb25zdHJ1Y3RvciBpZiB5b3Ugd2FudCB0byBhdHRl bXB0IGF1dG8tc2VsZWN0aW9uCisrICAvLyBvZiB0aGUgYXVkaW8gcmVjb3JkaW5nIGRldmljZS4K KysgIHN0YXRpYyBjb25zdCBjaGFyIGtBdXRvU2VsZWN0RGV2aWNlW107CisrCisrICAvLyBDcmVh dGUgYSBQQ00gT3V0cHV0IHN0cmVhbSBmb3IgdGhlIFNORElPIGRldmljZSBpZGVudGlmaWVkIGJ5 CisrICAvLyB8ZGV2aWNlX25hbWV8LiBJZiB1bnN1cmUgb2Ygd2hhdCB0byB1c2UgZm9yIHxkZXZp Y2VfbmFtZXwsIHVzZQorKyAgLy8gfGtBdXRvU2VsZWN0RGV2aWNlfC4KKysgIFNuZGlvQXVkaW9J bnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBhdWRpb19tYW5hZ2VyLAorKyAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAg ICAgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisrCisrICB+U25kaW9BdWRp b0lucHV0U3RyZWFtKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRp b0lucHV0U3RyZWFtLgorKyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2b2lkIFN0YXJ0KEF1 ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlOworKyAgdm9pZCBTdG9wKCkgb3Zl cnJpZGU7CisrICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7CisrICBkb3VibGUgR2V0TWF4Vm9sdW1l KCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsK KysgIGRvdWJsZSBHZXRWb2x1bWUoKSBvdmVycmlkZTsKKysgIGJvb2wgSXNNdXRlZCgpIG92ZXJy aWRlOworKyAgdm9pZCBTZXRPdXRwdXREZXZpY2VGb3JBZWMoY29uc3Qgc3RkOjpzdHJpbmcmIG91 dHB1dF9kZXZpY2VfaWQpIG92ZXJyaWRlOworKworKyBwcml2YXRlOgorKworKyAgZW51bSBTdHJl YW1TdGF0ZSB7CisrICAgIGtDbG9zZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKysg ICAga1N0b3BwZWQsICAgICAgICAgICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQg eWV0CisrICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcK KysgICAga1N0b3BXYWl0ICAgICAgICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJl YWwtdGltZSB0aHJlYWQgdG8gZXhpdAorKyAgfTsKKysKKysgIC8vIEMtc3R5bGUgY2FsbC1iYWNr cworKyAgc3RhdGljIHZvaWQgT25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOwor KyAgc3RhdGljIHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisrCisrICAvLyBDb250aW51 b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBkZXZpY2UgdG8gdGhlIGNvbnN1bWVyCisrICB2b2lk IFRocmVhZExvb3AoKTsKKysgIC8vIE91ciBjcmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVk cyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgorKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFu YWdlcjsKKysgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorKyAgQXVkaW9QYXJhbWV0ZXJz IHBhcmFtczsKKysgIC8vIFdlIHN0b3JlIGRhdGEgaGVyZSBmb3IgY29uc3VtZXIKKysgIHN0ZDo6 dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgY29u c3VtZXMgcmVjb3JkZWQgZGF0YQorKyAgQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjazsgIC8v IFZhbGlkIGR1cmluZyBhIHJlY29yZGluZyBzZXNzaW9uLgorKyAgLy8gSGFuZGxlIG9mIHRoZSBh dWRpbyBkZXZpY2UKKysgIHN0cnVjdCBzaW9faGRsKiBoZGw7CisrICAvLyBDdXJyZW50IHN0YXRl IG9mIHRoZSBzdHJlYW0KKysgIGVudW0gU3RyZWFtU3RhdGUgc3RhdGU7CisrICAvLyBIaWdoIHBy aW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3AoKQorKyAgcHRocmVhZF90IHRocmVhZDsK KysgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisrICBpbnQg aHdfZGVsYXk7CisrICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNu ZGlvLWNvbXBhdGlibGUgZm9ybWF0CisrICBjaGFyKiBidWZmZXI7CisrCisrICBESVNBTExPV19D T1BZX0FORF9BU1NJR04oU25kaW9BdWRpb0lucHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5h bWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5Q VVRfSF8KKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9h dWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2MKK0BAIC0wLDAgKzEsMTgzIEBACisrLy8gQ29weXJp Z2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNp bmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysj aW5jbHVkZSAiYmFzZS90aW1lL2RlZmF1bHRfdGlja19jbG9jay5oIgorKyNpbmNsdWRlICJtZWRp YS9hdWRpby9hdWRpb19tYW5hZ2VyX2Jhc2UuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRp b190aW1lc3RhbXBfaGVscGVyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlv X291dHB1dC5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrc3RhdGljIGNvbnN0IFNhbXBs ZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZvcm1hdFMxNjsKKysKKyt2b2lkIFNuZGlv QXVkaW9PdXRwdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKSB7 CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRp b091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5od19kZWxheSAtPSBkZWx0YTsKKyt9 CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPblZvbENhbGxiYWNrKHZvaWQgKmFy ZywgdW5zaWduZWQgaW50IHZvbCkgeworKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9 IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+ dm9sID0gdm9sOworK30KKysKKyt2b2lkICpTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRF bnRyeSh2b2lkICphcmcpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0 aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPlRocmVh ZExvb3AoKTsKKysgIHJldHVybiBOVUxMOworK30KKysKKytTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9NYW5h Z2VyQmFzZSogbWFuYWdlcikKKysgICAgOiBtYW5hZ2VyKG1hbmFnZXIpLAorKyAgICAgIHBhcmFt cyhwYXJhbXMpLAorKyAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1czo6Q3JlYXRlKHBhcmFtcykpLAor KyAgICAgIHN0YXRlKGtDbG9zZWQpLAorKyAgICAgIG11dGV4KFBUSFJFQURfTVVURVhfSU5JVElB TElaRVIpIHsKKyt9CisrCisrU25kaW9BdWRpb091dHB1dFN0cmVhbTo6flNuZGlvQXVkaW9PdXRw dXRTdHJlYW0oKSB7CisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgQ2xvc2UoKTsKKyt9 CisrCisrYm9vbCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPcGVuKCkgeworKyAgc3RydWN0IHNp b19wYXIgcGFyOworKyAgaW50IHNpZzsKKysKKysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0gQXVk aW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1hdCgp ICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisrICAgIExPRyhX QVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBmYWxz ZTsKKysgIH0KKysgIHNpb19pbml0cGFyKCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJhbXMuc2Ft cGxlX3JhdGUoKTsKKysgIHBhci5wY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworKyAgcGFyLmJp dHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOworKyAgcGFy LmJwcyA9IHBhci5iaXRzIC8gODsKKysgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8g MSA6IDA7CisrICBwYXIubGUgPSBTSU9fTEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6ID0gcGFy YW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5Z LCBTSU9fUExBWSwgMCk7CisrICBpZiAoaGRsID09IE5VTEwpIHsKKysgICAgTE9HKEVSUk9SKSA8 PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZpY2UuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAg fQorKyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBhcikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFy KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFyYW1ldGVycy4i OworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIGlmIChwYXIucmF0ZSAgIT0gKHVuc2ln bmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUoKSB8fAorKyAgICAgIHBhci5wY2hhbiAhPSAodW5z aWduZWQgaW50KXBhcmFtcy5jaGFubmVscygpIHx8CisrICAgICAgcGFyLmJpdHMgICE9ICh1bnNp Z25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAor KyAgICAgIHBhci5zaWcgICAhPSAodW5zaWduZWQgaW50KXNpZyB8fAorKyAgICAgIChwYXIuYnBz ID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05BVElWRSkgfHwKKysgICAgICAocGFyLmJpdHMgIT0g cGFyLmJwcyAqIDgpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBh cmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRfY2xvc2U7CisrICB9CisrICBzdGF0ZSA9IGtTdG9w cGVkOworKyAgdm9scGVuZGluZyA9IDA7CisrICB2b2wgPSAwOworKyAgYnVmZmVyID0gbmV3IGNo YXJbYXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVG b3JtYXQpXTsKKysgIHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2FsbGJhY2ssIHRoaXMpOworKyAg c2lvX29udm9sKGhkbCwgJk9uVm9sQ2FsbGJhY2ssIHRoaXMpOworKyAgcmV0dXJuIHRydWU7Cisr IGJhZF9jbG9zZToKKysgIHNpb19jbG9zZShoZGwpOworKyAgcmV0dXJuIGZhbHNlOworK30KKysK Kyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OkNsb3NlKCkgeworKyAgaWYgKHN0YXRlID09 IGtDbG9zZWQpCisrICAgIHJldHVybjsKKysgIGlmIChzdGF0ZSA9PSBrUnVubmluZykKKysgICAg U3RvcCgpOworKyAgc3RhdGUgPSBrQ2xvc2VkOworKyAgZGVsZXRlIFtdIGJ1ZmZlcjsKKysgIHNp b19jbG9zZShoZGwpOworKyAgbWFuYWdlci0+UmVsZWFzZU91dHB1dFN0cmVhbSh0aGlzKTsgIC8v IENhbGxzIHRoZSBkZXN0cnVjdG9yCisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVh bTo6U3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2FsbGJhY2spIHsKKysgIHN0YXRlID0ga1J1 bm5pbmc7CisrICBod19kZWxheSA9IDA7CisrICBzb3VyY2UgPSBjYWxsYmFjazsKKysgIHNpb19z dGFydChoZGwpOworKyAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsICZUaHJlYWRF bnRyeSwgdGhpcykgIT0gMCkgeworKyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRl IHJlYWwtdGltZSB0aHJlYWQuIjsKKysgICAgc2lvX3N0b3AoaGRsKTsKKysgICAgc3RhdGUgPSBr U3RvcHBlZDsKKysgIH0KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTdG9w KCkgeworKyAgaWYgKHN0YXRlID09IGtTdG9wcGVkKQorKyAgICByZXR1cm47CisrICBzdGF0ZSA9 IGtTdG9wV2FpdDsKKysgIHB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwpOworKyAgc2lvX3N0b3Ao aGRsKTsKKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1 dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2KSB7CisrICBwdGhyZWFkX211dGV4X2xvY2soJm11 dGV4KTsKKysgIHZvbCA9IHYgKiBTSU9fTUFYVk9MOworKyAgdm9scGVuZGluZyA9IDE7CisrICBw dGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRw dXRTdHJlYW06OkdldFZvbHVtZShkb3VibGUqIHYpIHsKKysgIHB0aHJlYWRfbXV0ZXhfbG9jaygm bXV0ZXgpOworKyAgKnYgPSB2b2wgKiAoMS4gLyBTSU9fTUFYVk9MKTsKKysgIHB0aHJlYWRfbXV0 ZXhfdW5sb2NrKCZtdXRleCk7CisrfQorKworKy8vIFRoaXMgc3RyZWFtIGlzIGFsd2F5cyB1c2Vk IHdpdGggc3ViIHNlY29uZCBidWZmZXIgc2l6ZXMsIHdoZXJlIGl0J3MKKysvLyBzdWZmaWNpZW50 IHRvIHNpbXBseSBhbHdheXMgZmx1c2ggdXBvbiBTdGFydCgpLgorK3ZvaWQgU25kaW9BdWRpb091 dHB1dFN0cmVhbTo6Rmx1c2goKSB7fQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6 VGhyZWFkTG9vcCh2b2lkKSB7CisrICBpbnQgYXZhaWwsIGNvdW50LCByZXN1bHQ7CisrCisrICB3 aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcpIHsKKysgICAgLy8gVXBkYXRlIHZvbHVtZSBpZiBuZWVk ZWQKKysgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICAgIGlmICh2b2xwZW5kaW5n KSB7CisrICAgICAgdm9scGVuZGluZyA9IDA7CisrICAgICAgc2lvX3NldHZvbChoZGwsIHZvbCk7 CisrICAgIH0KKysgICAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKKysKKysgICAgLy8g R2V0IGRhdGEgdG8gcGxheQorKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRp b1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorKwlwYXJhbXMuc2FtcGxl X3JhdGUoKSk7CisrICAgIGNvdW50ID0gc291cmNlLT5Pbk1vcmVEYXRhKGRlbGF5LCBiYXNlOjpU aW1lVGlja3M6Ok5vdygpLCAwLCBhdWRpb19idXMuZ2V0KCkpOworKyAgICBhdWRpb19idXMtPlRv SW50ZXJsZWF2ZWQ8U2lnbmVkSW50MTZTYW1wbGVUeXBlVHJhaXRzPihjb3VudCwgcmVpbnRlcnBy ZXRfY2FzdDxpbnQxNl90Kj4oYnVmZmVyKSk7CisrICAgIGlmIChjb3VudCA9PSAwKSB7CisrICAg ICAgLy8gV2UgaGF2ZSB0byBzdWJtaXQgc29tZXRoaW5nIHRvIHRoZSBkZXZpY2UKKysgICAgICBj b3VudCA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrICAgICAgbWVtc2V0KGJ1ZmZlciwgMCwgY291 bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7CisrICAgICAgTE9H KFdBUk5JTkcpIDw8ICJObyBkYXRhIHRvIHBsYXksIHJ1bm5pbmcgZW1wdHkgY3ljbGUuIjsKKysg ICAgfQorKworKyAgICAvLyBTdWJtaXQgZGF0YSB0byB0aGUgZGV2aWNlCisrICAgIGF2YWlsID0g Y291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKysgICAgcmVz dWx0ID0gc2lvX3dyaXRlKGhkbCwgYnVmZmVyLCBhdmFpbCk7CisrICAgIGlmIChyZXN1bHQgPT0g MCkgeworKyAgICAgIExPRyhXQVJOSU5HKSA8PCAiQXVkaW8gZGV2aWNlIGRpc2Nvbm5lY3RlZC4i OworKyAgICAgIGJyZWFrOworKyAgICB9CisrCisrICAgIC8vIFVwZGF0ZSBoYXJkd2FyZSBwb2lu dGVyCisrICAgIGh3X2RlbGF5ICs9IGNvdW50OworKyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3Bh Y2UgbWVkaWEKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRp YS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaAorQEAgLTAsMCArMSw4NiBAQAorKy8vIENvcHly aWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysj aWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXworKyNkZWZpbmUgTUVESUFf QVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCisrCisrI2luY2x1ZGUgPHB0aHJlYWQuaD4KKysj aW5jbHVkZSA8c25kaW8uaD4KKysKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpY2tfY2xvY2suaCIK KysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVk aW9faW8uaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNzIEF1ZGlvTWFuYWdlckJh c2U7CisrCisrLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25k aW8oNykKKytjbGFzcyBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtIDogcHVibGljIEF1ZGlvT3V0cHV0 U3RyZWFtIHsKKysgcHVibGljOgorKyAgLy8gVGhlIG1hbmFnZXIgaXMgY3JlYXRpbmcgdGhpcyBv YmplY3QKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFn ZXIpOworKyAgdmlydHVhbCB+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpOworKworKyAgLy8gSW1w bGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0uCisrICBib29sIE9wZW4oKSBvdmVycmlk ZTsKKysgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZTsKKysgIHZvaWQgU3RhcnQoQXVkaW9Tb3VyY2VD YWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlOworKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7Cisr ICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKysgIHZvaWQgR2V0Vm9s dW1lKGRvdWJsZSogdm9sdW1lKSBvdmVycmlkZTsKKysgIHZvaWQgRmx1c2goKSBvdmVycmlkZTsK KysKKysgIGZyaWVuZCB2b2lkIHNuZGlvX29ubW92ZSh2b2lkICphcmcsIGludCBkZWx0YSk7Cisr ICBmcmllbmQgdm9pZCBzbmRpb19vbnZvbCh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOwor KyAgZnJpZW5kIHZvaWQgKnNuZGlvX3RocmVhZHN0YXJ0KHZvaWQgKmFyZyk7CisrCisrIHByaXZh dGU6CisrICBlbnVtIFN0cmVhbVN0YXRlIHsKKysgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBO b3Qgb3BlbmVkIHlldAorKyAgICBrU3RvcHBlZCwgICAgICAgICAgIC8vIERldmljZSBvcGVuZWQs IGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKysgICAga1J1bm5pbmcsICAgICAgICAgICAvLyBTdGFydGVk LCBkZXZpY2UgcGxheWluZworKyAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3 YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRocmVhZCB0byBleGl0CisrICB9OworKworKyAgLy8g Qy1zdHlsZSBjYWxsLWJhY2tzCisrICBzdGF0aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lkICph cmcsIGludCBkZWx0YSk7CisrICBzdGF0aWMgdm9pZCBPblZvbENhbGxiYWNrKHZvaWQgKmFyZywg dW5zaWduZWQgaW50IHZvbCk7CisrICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJn KTsKKysKKysgIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIHByb2R1Y2VyIHRv IHRoZSBkZXZpY2UKKysgIHZvaWQgVGhyZWFkTG9vcCh2b2lkKTsKKysKKysgIC8vIE91ciBjcmVh dG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3Nl LgorKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRlcnMgb2YgdGhl IHNvdXJjZQorKyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFNvdXJjZSBzdG9yZXMg ZGF0YSBoZXJlCisrICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdXM+IGF1ZGlvX2J1czsKKysgIC8v IENhbGwtYmFjayB0aGF0IHByb2R1Y2VzIGRhdGEgdG8gcGxheQorKyAgQXVkaW9Tb3VyY2VDYWxs YmFjayogc291cmNlOworKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVj dCBzaW9faGRsKiBoZGw7CisrICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVu dW0gU3RyZWFtU3RhdGUgc3RhdGU7CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5n IFRocmVhZExvb3AoKQorKyAgcHRocmVhZF90IHRocmVhZDsKKysgIC8vIFByb3RlY3RzIHZvbCwg dm9scGVuZGluZyBhbmQgaHdfZGVsYXkKKysgIHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsKKysgIC8v IEN1cnJlbnQgdm9sdW1lIGluIHRoZSAwLi5TSU9fTUFYVk9MIHJhbmdlCisrICBpbnQgdm9sOwor KyAgLy8gU2V0IHRvIDEgaWYgdm9sdW1lcyBtdXN0IGJlIHJlZnJlc2hlZCBpbiB0aGUgcmVhbHRp bWUgdGhyZWFkCisrICBpbnQgdm9scGVuZGluZzsKKysgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVm ZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1wb3Jhcnkg YnVmZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisrICBj aGFyKiBidWZmZXI7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb091 dHB1dFN0cmVhbSk7CisrfTsKKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysjZW5kaWYg IC8vIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXworLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL21lZGlhL21lZGlhX29wdGlvbnMuZ25pCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vbWVkaWEvbWVkaWFfb3B0aW9ucy5nbmkKK0BAIC0xMjEsNiArMTIxLDkgQEAgZGVjbGFy ZV9hcmdzKCkgeworICAgIyBFbmFibGVzIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIEFMU0EgbGlicmFy eSBmb3IgYXVkaW8uCisgICB1c2VfYWxzYSA9IGZhbHNlCisgCisrICAjIEVuYWJsZSBydW50aW1l IHNlbGVjdGlvbiBvZiBzbmRpbyg3KQorKyAgdXNlX3NuZGlvID0gZmFsc2UKKysKKyAgICMgQWxz YSBzaG91bGQgYmUgdXNlZCBvbiBub24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJWCBzeXN0ZW1zLgor ICAgIyBBbHNhIHNob3VsZCBiZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2FzdCBhbmQgYXVkaW8t b25seSBDaHJvbWVjYXN0IGJ1aWxkcy4KKyAgIGlmIChpc19wb3NpeCAmJiAhaXNfYW5kcm9pZCAm JiAhaXNfbWFjICYmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w NzAwLWFybXY3bC1uZW9uLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDcw MC1hcm12N2wtbmVvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmQ0MmZhMTlhMDdhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NraWEvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9za2lhL0JVSUxELmduCitAQCAtODAwLDcgKzgwMCw2IEBAIHNraWFfc291cmNlX3Nl dCgic2tpYV9vcHRzIikgeworICAgICAgICAgIyBSb290IGJ1aWxkIGNvbmZpZyBzZXRzIC1tZnB1 PSRhcm1fZnB1LCB3aGljaCB3ZSBleHBlY3QgdG8gYmUgbmVvbgorICAgICAgICAgIyB3aGVuIHJ1 bm5pbmcgdGhpcy4KKyAgICAgICAgIGlmICghYXJtX3VzZV9uZW9uKSB7CistICAgICAgICAgIGNv bmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y29tcGlsZXJfYXJtX2ZwdSIgXQor ICAgICAgICAgICBjZmxhZ3MgKz0gWyAiLW1mcHU9bmVvbiIgXQorICAgICAgICAgfQorICAgICAg IH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hyb21p dW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wNzUwLWNocm9taXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmUyZDYyZjM1ZWU2Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJvbWl1bS1tdXNsLWFybS11c2Vy X3ZmcC5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9saW51eC90aHJlYWRfaW5mby5oCitAQCAtMTcsNiArMTcsMTcgQEAKKyAKKyAjaW5jbHVk ZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN5cy91c2VyLmg+CisrI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykKKytzdHJ1Y3QgdXNlcl92ZnAgeworKwl1bnNpZ25lZCBsb25nIGxvbmcgZnByZWdzWzMy XTsKKysJdW5zaWduZWQgbG9uZyBmcHNjcjsKKyt9OworK3N0cnVjdCB1c2VyX3ZmcF9leGMgewor Kwl1bnNpZ25lZCBsb25nIGZwZXhjOworKwl1bnNpZ25lZCBsb25nIGZwaW5zdDsKKysJdW5zaWdu ZWQgbG9uZyBmcGluc3QyOworK307CisrI2VuZGlmIC8qICFkZWZpbmVkKF9fR0xJQkNfXykgKi8K KyAKKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLWVs Zl9hdXh2X3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43 MTEyYzhjZmQzZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKQEAgLTAsMCArMSwx OCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL2NwdS5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL2NwdS5jYworQEAgLTE2Myw2ICsx NjMsMTUgQEAgc3RhdGljIFY4X0lOTElORSB2b2lkIF9fY3B1aWQoaW50IGNwdV9pbgorIAorICNp ZiBWOF9IT1NUX0FSQ0hfQVJNIHx8IFY4X0hPU1RfQVJDSF9BUk02NAorIAorKyNpZm5kZWYgX19H TElCQ19fCisrI2luY2x1ZGUgPGVsZi5oPgorKyNpZmRlZiBfX0xQNjRfXworK3R5cGVkZWYgRWxm NjRfYXV4dl90IGVsZl9hdXh2X3Q7CisrI2Vsc2UKKyt0eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZf YXV4dl90OworKyNlbmRpZgorKyNlbmRpZgorKworIHN0YXRpYyB1aW50MzJfdCBSZWFkRUxGSFdD YXBzKCkgeworICAgdWludDMyX3QgcmVzdWx0ID0gMDsKKyAjaWYgVjhfR0xJQkNfUFJFUkVRKDIs IDE2KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDgwMS1jaHJv bWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDgwMS1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2Q0MDQzZTAzYjg5Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDgwMS1jaHJvbWl1bS1p Njg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24KK0BAIC0xNCw2ICsxNCwxMCBA QCBpbXBvcnQoIi8vdWkvZ2wvZmVhdHVyZXMuZ25pIikKKyBhc3NlcnQoaXNfbGludXggfHwgaXNf Y2hyb21lb3MpCisgYXNzZXJ0KHVzZV92YWFwaSkKKyAKKytjb25maWcoInZhYXBpX3Blcm1pc3Np dmUiKSB7CisrICBjZmxhZ3MgPSBbICItZnBlcm1pc3NpdmUiIF0KKyt9CisrCisgZ2VuZXJhdGVf c3R1YnMoImxpYnZhX3N0dWJzIikgeworICAgZXh0cmFfaGVhZGVyID0gInZhX3N0dWJfaGVhZGVy LmZyYWdtZW50IgorICAgc2lncyA9IFsgInZhLnNpZ3MiIF0KK0BAIC0xMzYsNiArMTQwLDEwIEBA IHNvdXJjZV9zZXQoInZhYXBpIikgeworICAgICBdCisgICB9CisgCisrICBpZiAodGFyZ2V0X2Nw dSA9PSAieDg2IikgeworKyAgICBjb25maWdzICs9IFsgIjp2YWFwaV9wZXJtaXNzaXZlIiBdCisr ICB9CisrCisgICBpZiAodXNlX3gxMSkgeworICAgICBkZXBzICs9IFsgIi8vdWkvZ2Z4L3giIF0K KyAgICAgc291cmNlcyArPSBbCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzA5MDAteHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWM5NTY2YjU2YmQ0Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMC14eHgtcHBjNjRsZS1saWJ2cHgucGF0 Y2gKQEAgLTAsMCArMSw2NSBAQAorVXNlcyBnZW5lcmljIHRhcmdldCBmb3Igbm93LiBUbyB1c2Ug cHBjNjRsZSwgY2hhbmdlIC0tdGFyZ2V0IHRvIHBwYzY0bGUtZ251CithbmQgYWRkIC0tZW5hYmxl LXZzeCwgYW5kIGNoYW5nZSBnZW5lcmljIHRvIHBwYyBmb3IgdGhlIHJ0Y2QgaGVhZGVyLgorCitG cm9tIDE4ZTZjNWM1NWNmYWUwY2ZiNDU4ZDgyMTBkN2JjNzA5MzYwYTBlOTAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2Vk LCA5IFNlcCAyMDIwIDE5OjA4OjI1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGVuYWJsZSBnZW5l cmF0aW9uIG9mIHBwYzY0IGxpYnZweCBiaXRzCisKK3RoaXMgZG9lc24ndCB1cGRhdGUgdGhlIGdu aSBmaWxlLCB0aGF0J3MgZG9uZSBmcm9tCit0aGUgdGVtcGxhdGUgYnkgcnVubmluZyB0aGUgYXBw cm9wcmlhdGUgc2NyaXB0cworLS0tCisgdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduICAgICAg ICB8IDQgKysrKworIHRoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2ggfCA5ICsrKysr KysrKworIDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQorCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCitAQCAtNDI0LDYgKzQy NCw4IEBAIHN0YXRpY19saWJyYXJ5KCJidW5kbGVkX2xpYnZweCIpIHsKKyAgICAgICBzb3VyY2Vz ID0gbGlidnB4X3NyY3NfYXJtNjQKKyAgICAgICBwdWJsaWNfZGVwcyA9IFsgIjpsaWJ2cHhfYXJt NjRfaGVhZGVycyIgXQorICAgICB9CisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2 NCIpIHsKKysgICAgc291cmNlcyA9IGxpYnZweF9zcmNzX3BwYzY0CisgICB9CisgCisgICBjb25m aWdzIC09IFsgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNo CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRl X2duaS5zaAorQEAgLTM3NCw2ICszNzQsNyBAQCBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L2FybS1u ZW9uLWhpZ2hiZCAiCisgZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9hcm02NC1oaWdoYmQgIi0tdGFy Z2V0PWFybXY4LWxpbnV4LWdjYyAke2FsbF9wbGF0Zm9ybXN9ICR7SElHSEJEfSIKKyBnZW5fY29u ZmlnX2ZpbGVzIGxpbnV4L21pcHNlbCAiLS10YXJnZXQ9bWlwczMyLWxpbnV4LWdjYyAke2FsbF9w bGF0Zm9ybXN9IgorIGdlbl9jb25maWdfZmlsZXMgbGludXgvbWlwczY0ZWwgIi0tdGFyZ2V0PW1p cHM2NC1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIKKytnZW5fY29uZmlnX2ZpbGVzIGxpbnV4 L3BwYzY0ICItLXRhcmdldD1nZW5lcmljLWdudSAkSElHSEJEICR7YWxsX3BsYXRmb3Jtc30iCisg Z2VuX2NvbmZpZ19maWxlcyBsaW51eC9nZW5lcmljICItLXRhcmdldD1nZW5lcmljLWdudSAkSElH SEJEICR7YWxsX3BsYXRmb3Jtc30iCisgZ2VuX2NvbmZpZ19maWxlcyB3aW4vYXJtNjQgIi0tdGFy Z2V0PWFybTY0LXdpbjY0LXZzMTUgJHthbGxfcGxhdGZvcm1zfSAke0hJR0hCRH0iCisgZ2VuX2Nv bmZpZ19maWxlcyB3aW4vaWEzMiAiLS10YXJnZXQ9eDg2LXdpbjMyLXZzMTQgJHthbGxfcGxhdGZv cm1zfSAke3g4Nl9wbGF0Zm9ybXN9IgorQEAgLTM5OSw2ICs0MDAsNyBAQCBsaW50X2NvbmZpZyBs aW51eC9hcm0tbmVvbi1oaWdoYmQKKyBsaW50X2NvbmZpZyBsaW51eC9hcm02NC1oaWdoYmQKKyBs aW50X2NvbmZpZyBsaW51eC9taXBzZWwKKyBsaW50X2NvbmZpZyBsaW51eC9taXBzNjRlbAorK2xp bnRfY29uZmlnIGxpbnV4L3BwYzY0CisgbGludF9jb25maWcgbGludXgvZ2VuZXJpYworIGxpbnRf Y29uZmlnIHdpbi9hcm02NAorIGxpbnRfY29uZmlnIHdpbi9pYTMyCitAQCAtNDI4LDYgKzQzMCw3 IEBAIGdlbl9ydGNkX2hlYWRlciBsaW51eC9hcm0tbmVvbi1oaWdoYmQgYXIKKyBnZW5fcnRjZF9o ZWFkZXIgbGludXgvYXJtNjQtaGlnaGJkIGFybXY4CisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21p cHNlbCBtaXBzZWwKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgvbWlwczY0ZWwgbWlwczY0ZWwKKytn ZW5fcnRjZF9oZWFkZXIgbGludXgvcHBjNjQgZ2VuZXJpYworIGdlbl9ydGNkX2hlYWRlciBsaW51 eC9nZW5lcmljIGdlbmVyaWMKKyBnZW5fcnRjZF9oZWFkZXIgd2luL2FybTY0IGFybXY4CisgZ2Vu X3J0Y2RfaGVhZGVyIHdpbi9pYTMyIHg4NiAiJHtyZXF1aXJlX3NzZTJ9IgorQEAgLTUxMyw2ICs1 MTYsMTIgQEAgaWYgWyAteiAkT05MWV9DT05GSUdTIF07IHRoZW4KKyAKKyAgIGVjaG8gIk1JUFM2 NCBzb3VyY2UgbGlzdCBpcyBpZGVudGljYWwgdG8gTUlQUyBzb3VyY2UgbGlzdC4gTm8gbmVlZCB0 byBnZW5lcmF0ZSBpdC4iCisgCisrICBlY2hvICJHZW5lcmF0ZSBwcGM2NCBzb3VyY2UgbGlzdC4i CisrICBjb25maWc9JChwcmludF9jb25maWdfYmFzaWMgbGludXgvcHBjNjQpCisrICBtYWtlX2Ns ZWFuCisrICBtYWtlIGxpYnZweF9zcmNzLnR4dCB0YXJnZXQ9bGlicyAkY29uZmlnID4gL2Rldi9u dWxsCisrICBjb252ZXJ0X3NyY3NfdG9fcHJvamVjdF9maWxlcyBsaWJ2cHhfc3Jjcy50eHQgbGli dnB4X3NyY3NfcHBjNjQKKysKKyAgIGVjaG8gIkdlbmVyYXRlIE5hQ2wgc291cmNlIGxpc3QuIgor ICAgY29uZmlnPSQocHJpbnRfY29uZmlnX2Jhc2ljIG5hY2wpCisgICBtYWtlX2NsZWFuCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAxLXh4eC1wcGM2NGxlLXNh bmRib3gtbGludXgtc3RhdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5 MDEteHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGI4ZTYzMjA2MDFjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxp bnV4LXN0YXQucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0 LmgKK0BAIC0xNTUsNiArMTU1LDI4IEBAIHN0cnVjdCBrZXJuZWxfc3RhdCB7CisgICB1bnNpZ25l ZCBpbnQgX191bnVzZWQ0OworICAgdW5zaWduZWQgaW50IF9fdW51c2VkNTsKKyB9OworKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKytzdHJ1Y3Qga2VybmVsX3N0YXQgeworKyAgdW5zaWdu ZWQgbG9uZwlzdF9kZXY7CisrICB1bnNpZ25lZCBsb25nCXN0X2lubzsKKysgIHVuc2lnbmVkIGxv bmcJc3Rfbmxpbms7CisrICB1bnNpZ25lZCBpbnQJc3RfbW9kZTsKKysgIHVuc2lnbmVkIGludAlz dF91aWQ7CisrICB1bnNpZ25lZCBpbnQJc3RfZ2lkOworKyAgdW5zaWduZWQgbG9uZwlzdF9yZGV2 OworKyAgbG9uZwkJc3Rfc2l6ZTsKKysgIHVuc2lnbmVkIGxvbmcJc3RfYmxrc2l6ZTsKKysgIHVu c2lnbmVkIGxvbmcJc3RfYmxvY2tzOworKyAgdW5zaWduZWQgbG9uZwlzdF9hdGltZV87CisrICB1 bnNpZ25lZCBsb25nCXN0X2F0aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlzdF9tdGltZV87 CisrICB1bnNpZ25lZCBsb25nCXN0X210aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9uZwlzdF9j dGltZV87CisrICB1bnNpZ25lZCBsb25nCXN0X2N0aW1lX25zZWNfOworKyAgdW5zaWduZWQgbG9u ZwlfX3VudXNlZDQ7CisrICB1bnNpZ25lZCBsb25nCV9fdW51c2VkNTsKKysgIHVuc2lnbmVkIGxv bmcJX191bnVzZWQ2OworK307CisgI2VuZGlmCisgCisgI2lmICFkZWZpbmVkKEFUX0VNUFRZX1BB VEgpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAyLXh4eC1w cGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAy LXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi42MDUwM2MyMmUzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wOTAyLXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCAr MSwzNTU5IEBACitjb21taXQgMmMwMTNhMzE3YjExMTRlZjY3Y2RiYmMzMDgyNGIyODkwN2I5ZWE5 NAorQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6ICAg V2VkIE1hciAzIDE5OjA4OjI5IDIwMjEgKzAxMDAKKworICAgIHBwYzY0bGUgc3VwcG9ydAorCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2ZlYXR1cmVzLmduaQorQEAgLTExLDcgKzExLDgg QEAgaW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9uYWNsL2NvbmZpZy5nbmkiKQorIHVzZV9zZWNjb21w X2JwZiA9IChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSAmJgorICAgICAg ICAgICAgICAgICAgIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0 IiB8fAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50 X2NwdSA9PSAiYXJtNjQiIHx8CistICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJt aXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIpCisrICAgICAgICAgICAgICAgICAg IGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIgfHwK KysgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gInBwYzY0IikKKyAKKyB1c2Vfc2Vj Y29tcF9icGYgPSB1c2Vfc2VjY29tcF9icGYgfHwgaXNfbmFjbF9ub25zZmkKKyAKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L0JVSUxELmduCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9CVUlMRC5nbgorQEAgLTQzMyw2ICs0MzMsOCBA QCBjb21wb25lbnQoInNhbmRib3hfc2VydmljZXMiKSB7CisgCisgc291cmNlX3NldCgic2FuZGJv eF9zZXJ2aWNlc19oZWFkZXJzIikgeworICAgc291cmNlcyA9IFsKKysgICAgInN5c3RlbV9oZWFk ZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgiLAorKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRf bGludXhfdWNvbnRleHQuaCIsCisgICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNj YWxscy5oIiwKKyAgICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIiwKKyAg ICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMu aAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51 eF9zeXNjYWxsX3Jhbmdlcy5oCitAQCAtNTYsNiArNTYsMTMgQEAKKyAjZGVmaW5lIE1BWF9QVUJM SUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxzCisgI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElD X1NZU0NBTEwKKyAKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrCisrI2luY2x1ZGUg PGFzbS91bmlzdGQuaD4KKysjZGVmaW5lIE1JTl9TWVNDQUxMIDB1CisrI2RlZmluZSBNQVhfUFVC TElDX1NZU0NBTEwgMzg2dQorKyNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxM CisrCisgI2Vsc2UKKyAjZXJyb3IgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKKyAjZW5kaWYK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29t cF9tYWNyb3MuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBm X2RzbC9zZWNjb21wX21hY3Jvcy5oCitAQCAtMTYsNiArMTYsOSBAQAorICNpZiBkZWZpbmVkKF9f bWlwc19fKQorIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlv bgorICNpbmNsdWRlIDxzdGRkZWYuaD4KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYm IGRlZmluZWQoX19HTElCQ19fKQorKy8vIE1hbnVhbGx5IGRlZmluZSBncmVnX3Qgb24gcHBjNjQK Kyt0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBncmVnX3Q7CisgI2VuZGlmCisgI2VuZGlmCisg CitAQCAtMzQ2LDYgKzM0OSw1OSBAQCBzdHJ1Y3QgcmVnc19zdHJ1Y3QgeworICNkZWZpbmUgU0VD Q09NUF9QVF9QQVJNNChfcmVncykgKF9yZWdzKS5yZWdzWzNdCisgI2RlZmluZSBTRUNDT01QX1BU X1BBUk01KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNF0KKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYo X3JlZ3MpIChfcmVncykucmVnc1s1XQorKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgcmVn c19zdHJ1Y3Q7CisrCisrI2lmZGVmIEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4KKysjZGVmaW5lIFNF Q0NPTVBfQVJDSCBBVURJVF9BUkNIX1BQQzY0TEUKKysjZWxzZQorKyNkZWZpbmUgU0VDQ09NUF9B UkNIIEFVRElUX0FSQ0hfUFBDNjQKKysjZW5kaWYKKysKKysjaWZkZWYgX19HTElCQ19fCisrI2Rl ZmluZSBTRUNDT01QX1JFRyhfY3R4LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5n cHJbX3JlZ10pCisrI2Vsc2UKKysjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0 cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQorKyNl bmRpZgorKworKyNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwg MykKKysjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQor KyNpZmRlZiBfX0dMSUJDX18KKysjZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKF9jdHgpLT51Y19t Y29udGV4dC5yZWdzLT5uaXAKKysjZWxzZQorKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoKHN0 cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+bmlwCisrI2VuZGlmCisr I2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCisrI2RlZmlu ZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCisrI2RlZmluZSBTRUND T01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCisrI2RlZmluZSBTRUNDT01QX1BB Uk00KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDYpCisrI2RlZmluZSBTRUNDT01QX1BBUk01KF9j dHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDcpCisrI2RlZmluZSBTRUNDT01QX1BBUk02KF9jdHgpIFNF Q0NPTVBfUkVHKF9jdHgsIDgpCisrCisrI2RlZmluZSBTRUNDT01QX05SX0lEWCAob2Zmc2V0b2Yo c3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBucikpCisrI2RlZmluZSBTRUNDT01QX0FSQ0hfSURY IChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyY2gpKQorKyNkZWZpbmUgU0VD Q09NUF9JUF9NU0JfSURYIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEs IGluc3RydWN0aW9uX3BvaW50ZXIpICsgNCkKKysjZGVmaW5lIFNFQ0NPTVBfSVBfTFNCX0lEWCBc CisrICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2lu dGVyKSArIDApCisrI2RlZmluZSBTRUNDT01QX0FSR19NU0JfSURYKG5yKSBcCisrICAob2Zmc2V0 b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgNCkKKysjZGVm aW5lIFNFQ0NPTVBfQVJHX0xTQl9JRFgobnIpIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9z ZWNjb21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyAwKQorKworKyNkZWZpbmUgU0VDQ09NUF9Q VF9SRVNVTFQoX3JlZ3MpIChfcmVncykuZ3ByWzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1NZU0NB TEwoX3JlZ3MpIChfcmVncykuZ3ByWzBdCisrI2RlZmluZSBTRUNDT01QX1BUX0lQKF9yZWdzKSAo X3JlZ3MpLm5pcAorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMShfcmVncykgKF9yZWdzKS5ncHJb M10KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTIoX3JlZ3MpIChfcmVncykuZ3ByWzRdCisrI2Rl ZmluZSBTRUNDT01QX1BUX1BBUk0zKF9yZWdzKSAoX3JlZ3MpLmdwcls1XQorKyNkZWZpbmUgU0VD Q09NUF9QVF9QQVJNNChfcmVncykgKF9yZWdzKS5ncHJbNl0KKysjZGVmaW5lIFNFQ0NPTVBfUFRf UEFSTTUoX3JlZ3MpIChfcmVncykuZ3ByWzddCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9y ZWdzKSAoX3JlZ3MpLmdwcls4XQorKworICNlbHNlCisgI2Vycm9yIFVuc3VwcG9ydGVkIHRhcmdl dCBwbGF0Zm9ybQorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9s aWN5LmNjCitAQCAtOTEsNyArOTEsOCBAQCBib29sIElzQmFzZWxpbmVQb2xpY3lXYXRjaGVkKGlu dCBzeXNubykKKyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcmN0bChzeXNubykgfHwKKyAgICAg ICAgICBTeXNjYWxsU2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24oc3lzbm8pIHx8CisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxs KHN5c25vKSB8fAorICNlbmRpZgorICNpZiBkZWZpbmVkKF9fYXJtX18pCitAQCAtMjU4LDcgKzI1 OSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGUKKyAgIH0KKyAK KyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGlmIChzeXNubyA9PSBf X05SX21tYXApCisgICAgIHJldHVybiBSZXN0cmljdE1tYXBGbGFncygpOworICNlbmRpZgorQEAg LTI3OSw3ICsyODAsNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2Rl CisgICAgIHJldHVybiBSZXN0cmljdFByY3RsKCk7CisgCisgI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRl ZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKKyAgIGlmIChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIpIHsKKyAgICAg Ly8gT25seSBhbGxvdyBBRl9VTklYLCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNlIGlz IHNlZW4uCisgICAgIHN0YXRpY19hc3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAorQEAgLTM0Myw3 ICszNDQsOCBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICB9 CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBc CisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGlmIChTeXNjYWxsU2V0czo6SXNTb2Nr ZXRDYWxsKHN5c25vKSkKKyAgICAgcmV0dXJuIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsK KyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5l X3BvbGljeV91bml0dGVzdC5jYworQEAgLTMxNyw3ICszMTcsNyBAQCBURVNUX0JBU0VMSU5FX1NJ R1NZUyhfX05SX3N5c2luZm8pCisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9zeXNsb2cpCisg VEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl90aW1lcl9jcmVhdGUpCisgCistI2lmICFkZWZpbmVk KF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19w b3dlcnBjNjRfXykKKyBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX2lub3RpZnlfaW5pdCkKKyBU RVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3ZzZXJ2ZXIpCisgI2VuZGlmCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf cGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3Ry aWN0aW9ucy5jYworQEAgLTQwLDcgKzQwLDggQEAKKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgor ICNpZiAoZGVmaW5lZChPU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TX0xBQ1JPUykp ICYmIFwKKyAgICAgIWRlZmluZWQoX19hcm1fXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYm ICAgICAgICAgICBcCistICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpCisrICAg ICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmCQkJICAgIFwKKysgICAgIWRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyAvLyBBbHNvIGluY2x1ZGUgYXNtL3B0cmFjZS1hYmkuaCBzaW5j ZSBwdHJhY2UuaCBpbiBvbGRlciBsaWJjIChmb3IgaW5zdGFuY2UKKyAvLyB0aGUgb25lIGluIFVi dW50dSAxNi4wNCBMVFMpIGlzIG1pc3NpbmcgUFRSQUNFX0dFVF9USFJFQURfQVJFQS4KKyAvLyBh c20vcHRyYWNlLWFiaS5oIGRvZXNuJ3QgZXhpc3Qgb24gYXJtMzIgYW5kIFBUUkFDRV9HRVRfVEhS RUFEX0FSRUEgaXNuJ3QKK0BAIC00OSw2ICs1MCwxMSBAQAorICNlbmRpZgorICNlbmRpZiAgLy8g IU9TX05BQ0xfTk9OU0ZJCisgCisrLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRl cm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCisrI2lm ZGVmIF9fcG93ZXJwYzY0X18KKysjaW5jbHVkZSA8dGVybWlvcy5oPgorKyNlbmRpZgorKworICNp ZiBkZWZpbmVkKE9TX0FORFJPSUQpCisgCisgI2lmICFkZWZpbmVkKEZfRFVQRkRfQ0xPRVhFQykK K0BAIC0xMDYsNiArMTEyLDE0IEBAIGlubGluZSBib29sIElzQXJjaGl0ZWN0dXJlTWlwcygpIHsK KyAjZW5kaWYKKyB9CisgCisraW5saW5lIGJvb2wgSXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsKKysj aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgcmV0dXJuIHRydWU7CisrI2Vsc2UKKysgIHJl dHVybiBmYWxzZTsKKysjZW5kaWYKKyt9CisrCisgLy8gVWJ1bnR1J3MgdmVyc2lvbiBvZiBnbGli YyBoYXMgYSByYWNlIGNvbmRpdGlvbiBpbiBzZW1fcG9zdCB0aGF0IGNhbiBjYXVzZQorIC8vIGl0 IHRvIGNhbGwgZnV0ZXgoMikgd2l0aCBib2d1cyBvcCBhcmd1bWVudHMuIFRvIHdvcmthcm91bmQg dGhpcywgd2UgbmVlZAorIC8vIHRvIGFsbG93IHRob3NlIGZ1dGV4KDIpIGNhbGxzIHRvIGZhaWwg d2l0aCBFSU5WQUwsIGluc3RlYWQgb2YgY3Jhc2hpbmcgdGhlCitAQCAtMjcwLDYgKzI4NCw4IEBA IFJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCkgeworICAgdWludDY0X3Qga09MYXJn ZUZpbGVGbGFnID0gT19MQVJHRUZJTEU7CisgICBpZiAoSXNBcmNoaXRlY3R1cmVYODZfNjQoKSB8 fCBJc0FyY2hpdGVjdHVyZUkzODYoKSB8fCBJc0FyY2hpdGVjdHVyZU1pcHMoKSkKKyAgICAga09M YXJnZUZpbGVGbGFnID0gMDEwMDAwMDsKKysgIGVsc2UgaWYgKElzQXJjaGl0ZWN0dXJlUFBDNjQo KSkKKysgICAga09MYXJnZUZpbGVGbGFnID0gMDIwMDAwMDsKKyAKKyAgIGNvbnN0IEFyZzxpbnQ+ IGNtZCgxKTsKKyAgIGNvbnN0IEFyZzxsb25nPiBsb25nX2FyZygyKTsKK0BAIC0yODcsNyArMzAz LDE2IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCkgeworICAgICAgICAgICAg ICAgRl9TRVRMS1csCisgICAgICAgICAgICAgICBGX0dFVExLLAorICAgICAgICAgICAgICAgRl9E VVBGRCwKKy0gICAgICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQyksCisrICAgICAgICAgICAgICBG X0RVUEZEX0NMT0VYRUMKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKy8vIE9uIFBQQzY0 LCBGX1NFVExLLCBGX0dFVExLLCBGX1NFVExLVyBhcmUgZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZh cmlhbnRzCisrLy8gYnV0IGdsaWJjIHdpbGwgc29tZXRpbWVzIHN0aWxsIHVzZSB0aGUgMzItYml0 IHZlcnNpb25zLiBBbGxvdyBib3RoLgorKyAgICAgICAgICAgICAgLAorKyAgICAgICAgICAgICAg NSwgLyogRl9HRVRMSyAoMzIpICovCisrICAgICAgICAgICAgICA2LCAvKiBGX1NFVExLICgzMikg Ki8KKysgICAgICAgICAgICAgIDcgIC8qIEZfU0VUTEtXICgzMikgKi8KKysjZW5kaWYKKysJICAg ICApLAorICAgICAgICAgICAgICBBbGxvdygpKQorICAgICAgIC5DYXNlKEZfU0VURkwsCisgICAg ICAgICAgICAgSWYoKGxvbmdfYXJnICYgfmtBbGxvd2VkTWFzaykgPT0gMCwgQWxsb3coKSkuRWxz ZShDcmFzaFNJR1NZUygpKSkKK0BAIC0yOTcsNyArMzIyLDcgQEAgUmVzdWx0RXhwciBSZXN0cmlj dEZjbnRsQ29tbWFuZHMoKSB7CisgICAvLyBjbGFuZy1mb3JtYXQgb24KKyB9CisgCistI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyBSZXN1 bHRFeHByIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKSB7CisgICAvLyBVbmZvcnR1bmF0ZWx5 LCB3ZSBhcmUgdW5hYmxlIHRvIHJlc3RyaWN0IHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8KKyAgIC8v IHNvY2tldHBhaXIoMikuIFdoaWxzdCBpbml0aWFsbHkgc291bmRpbmcgYmFkLCBpdCdzIG5vdGV3 b3J0aHkgdGhhdCB2ZXJ5CitAQCAtNDU0LDcgKzQ3OSw3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RQ dHJhY2UoKSB7CisgI2VuZGlmCisgICByZXR1cm4gU3dpdGNoKHJlcXVlc3QpCisgICAgICAgLkNB U0VTKCgKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2 NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICAgICAgICAgICAgICAgUFRSQUNF X0dFVFJFR1MsIFBUUkFDRV9HRVRGUFJFR1MsCisgI2lmIGRlZmluZWQoVFJBQ0VfR0VUX1RIUkVB RF9BUkVBKQorICAgICAgICAgICAgICAgICAgUFRSQUNFX0dFVF9USFJFQURfQVJFQSwKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv c3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuaAorQEAgLTQ5LDcgKzQ5LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2Rz bDo6UmVzdWx0RXhwciBSZXN0cgorIC8vIE9fTk9OQkxPQ0sgfCBPX1NZTkMgfCBPX0xBUkdFRklM RSB8IE9fQ0xPRVhFQyB8IE9fTk9BVElNRS4KKyBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1 bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpOworIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgLy8gUmVzdHJpY3Qgc29ja2V0 Y2FsbCgyKSB0byBvbmx5IGFsbG93IHNvY2tldHBhaXIoMiksIHNlbmQoMiksIHJlY3YoMiksCisg Ly8gc2VuZHRvKDIpLCByZWN2ZnJvbSgyKSwgc2h1dGRvd24oMiksIHNlbmRtc2coMikgYW5kIHJl Y3Ztc2coMikuCisgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdFNv Y2tldGNhbGxDb21tYW5kKCk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Nl dHMuY2MKK0BAIC0yOCw3ICsyOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzS2lsbChpbnQgc3lz bm8pIHsKKyBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzeXNubykgewor ICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0dGltZW9mZGF5OgorLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IFwKKysjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl90aW1lOgorICNlbmRpZgorQEAgLTUx LDEyICs1MSwxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyZWQgYnkgUmVzdHJp Y3RDbG9ja0lEKCkuCisgICAgIGNhc2UgX19OUl9jbG9ja19uYW5vc2xlZXBfdGltZTY0OiAgLy8g UGFyYW1ldGVycyBmaWx0ZXJlZCBieSBSZXN0cmljdENsb2NrSUQoKS4KKyAjZW5kaWYKKy0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9mdGltZTogIC8v IE9ic29sZXRlLgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJp dmlsZWdlZC4KKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2Ug X19OUl9zdGltZToKKyAjZW5kaWYKK0BAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNGaWxlU3lzdGVtKGludCBzeXNubworICAgICBjYXNlIF9fTlJfZmFjY2Vzc2F0OiAgLy8g RVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgICAgIGNhc2UgX19OUl9mY2htb2RhdDoKKyAgICAg Y2FzZSBfX05SX2ZjaG93bmF0OiAgLy8gU2hvdWxkIGJlIGNhbGxlZCBjaG93bmF0ID8KKy0jaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6ICAvLyBmc3RhdGF0KCkuIEVQRVJNIG5v dCBhIHZhbGlkIGVycm5vLgorICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKK0BAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNGaWxlU3lzdGVtKGludCBzeXNubworICAgICBjYXNlIF9fTlJfbWVtZmRfY3JlYXRlOgor ICAgICBjYXNlIF9fTlJfbWtkaXJhdDoKKyAgICAgY2FzZSBfX05SX21rbm9kYXQ6CistI2lmIGRl ZmluZWQoX19pMzg2X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKKyAgICAgY2FzZSBfX05SX29sZGxzdGF0OgorICAgICBjYXNlIF9fTlJfb2xkc3Rh dDoKKyAjZW5kaWYKK0BAIC0xNjcsNyArMTY3LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxl U3lzdGVtKGludCBzeXNubworICAgICBjYXNlIF9fTlJfc3RhdDY0OgorICNlbmRpZgorICAgICBj YXNlIF9fTlJfc3RhdGZzOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCistI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAor ICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3N0YXRmczY0OgorICNlbmRpZgorQEAgLTE3OSw3ICsx NzksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vCisgICAgIGNh c2UgX19OUl90cnVuY2F0ZTY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6Cist I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAg ICAgY2FzZSBfX05SX3V0aW1lOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAg Ly8gTmV3LgorQEAgLTIwNCw3ICsyMDUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRG aWxlU3lzdGVtQWNjCisgI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CisgLy8gVE9ETyhqbG4p OiB0aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cp LgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4K KyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKK0BAIC0yMTYsMTIgKzIxOCwxMiBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjCisgICAgIGNhc2UgX19OUl9m ZGF0YXN5bmM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2Zs b2NrOiAgICAgIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfZnN0 YXRmczogICAgLy8gR2l2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgd2hvbGUgZmlsZXN5c3RlbS4K Ky0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfZnN0YXRmczY0OgorICNlbmRpZgor ICAgICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKy0jaWYg ZGVmaW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6CisgI2VuZGlmCisgI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorQEAgLTIyOSw2ICsyMzEsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxl U3lzdGVtQWNjCisgICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3Qg YSB2YWxpZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCisgICAgIGNhc2UgX19OUl9h cm1fc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisrI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjog Ly8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CisgICAg ICAgcmV0dXJuIGZhbHNlOworQEAgLTI0OCw3ICsyNTIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0RlbmllZEZpbGVTeXN0ZW1BY2NlCisgICAgIGNhc2UgX19OUl9nZXRkZW50czogICAgLy8gRVBF Uk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9nZXRkZW50czY0 OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBc CisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKKyAjZW5kaWYKK0BAIC0yOTAsNyAr Mjk0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbgorIGJvb2wg U3lzY2FsbFNldHM6OklzUHJvY2Vzc1ByaXZpbGVnZUNoYW5nZShpbnQgc3lzbm8pIHsKKyAgIHN3 aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2NhcHNldDoKKy0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX2lvcGVybTogIC8vIEludGVsIHByaXZpbGVnZS4KKyAgICAgY2FzZSBfX05SX2lvcGw6ICAg IC8vIEludGVsIHByaXZpbGVnZS4KKyAjZW5kaWYKK0BAIC0zNDAsNyArMzQ0LDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkU2lnbmFsSGFuZGxpbgorICAgICBjYXNlIF9fTlJfcnRfc2ln cHJvY21hc2s6CisgICAgIGNhc2UgX19OUl9ydF9zaWdyZXR1cm46CisgICAgIGNhc2UgX19OUl9y dF9zaWd0aW1lZHdhaXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3J0X3Np Z3RpbWVkd2FpdF90aW1lNjQ6CisgICAgIGNhc2UgX19OUl9zaWdhY3Rpb246CitAQCAtMzU3LDcg KzM2MSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW4KKyAgICAg Y2FzZSBfX05SX3NpZ25hbGZkOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2lnbmFsZmQ0Ogor LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9zaWdwZW5kaW5nOgorICAgICBjYXNl IF9fTlJfc2lnc3VzcGVuZDoKK0BAIC0zODIsNyArMzg2LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBbGxvd2VkT3BlcmF0aW9uT25GZAorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZHVwMzoKKyAj aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc2h1dGRv d246CisgI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CitAQCAtNDE2LDcgKzQyMCw3IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAgICAgY2FzZSBfX05SX21l bWJhcnJpZXI6CisgICAgIGNhc2UgX19OUl93YWl0NDoKKyAgICAgY2FzZSBfX05SX3dhaXRpZDoK Ky0jaWYgZGVmaW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKyAjaWYg IWRlZmluZWQoX19HTElCQ19fKQorQEAgLTQzOCw3ICs0NDIsNyBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPCisgICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6 CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl91bnNoYXJlOgorLSNpZiAhZGVmaW5lZChfX21pcHNf XykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAh ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNl IF9fTlJfdmZvcms6CisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CitAQCAtNDkxLDcgKzQ5NSw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U28KKyAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgZGVmYXVsdDoKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfc29ja2V0cGFpcjogIC8vIFdlIHdpbGwgd2FudCB0byBpbnNwZWN0 IGl0cyBhcmd1bWVudC4KKyAjZW5kaWYKKyAgICAgICByZXR1cm4gZmFsc2U7CitAQCAtNTAxLDcg KzUwNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U28KKyBib29s IFN5c2NhbGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgeworICAg c3dpdGNoIChzeXNubykgeworICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICAgIGNhc2UgX19OUl9hY2NlcHQ6CisgICAgIGNhc2UgX19OUl9hY2NlcHQ0OgorICAgICBjYXNl IF9fTlJfYmluZDoKK0BAIC01MTUsNyArNTE5LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5p ZWRHZXRPck1vZGlmeVNvYworICAgfQorIH0KKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwK KyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCisgLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4K KyBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7CitAQCAtNTMwLDcg KzUzNCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8KKyB9Cisg I2VuZGlmCisgCistI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisgYm9vbCBTeXNjYWxsU2V0czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50 IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXRwZWVybmFt ZToKK0BAIC01NTgsNyArNTYzLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVz c1NwYWNlQQorICAgICBjYXNlIF9fTlJfbWluY29yZToKKyAgICAgY2FzZSBfX05SX21sb2NrYWxs OgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJf bW1hcDoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBcCitAQCAtNTg5LDcgKzU5NCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFk ZHJlc3NTcGFjZUEKKyBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5 c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9sc2VlazoKKy0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8 fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfX2xsc2VlazoKKyAjZW5kaWYKK0BAIC02MDks MjcgKzYxNCwyNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50Cisg ICAgIGNhc2UgX19OUl9yZWFkOgorICAgICBjYXNlIF9fTlJfcmVhZHY6CisgICAgIGNhc2UgX19O Ul9wcmVhZDY0OgorLSNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2Ug X19OUl9yZWN2OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl9yZWN2ZnJvbTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgorICAg ICBjYXNlIF9fTlJfcmVjdm1zZzogICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAjZW5kaWYK Ky0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgICAgY2FzZSBfX05SX3NlbGVjdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6CisgI2Vu ZGlmCistI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3Nl bmQ6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisr ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAg Y2FzZSBfX05SX3NlbmRtc2c6ICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICAgICBj YXNlIF9fTlJfc2VuZHRvOiAgIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCisgI2VuZGlm CitAQCAtNjg0LDcgKzY4OSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2No ZWR1bGUKKyAgICAgY2FzZSBfX05SX25hbm9zbGVlcDoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgY2FzZSBfX05SX2dldHByaW9yaXR5OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2Ug X19OUl9uaWNlOgorICNlbmRpZgorQEAgLTY5Niw3ICs3MDEsNyBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlCisgCisgYm9vbCBTeXNjYWxsU2V0czo6SXNBZG1pbk9w ZXJhdGlvbihpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKy0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQorICAgICBjYXNlIF9fTlJfYmRmbHVzaDoKKyAjZW5kaWYKK0BAIC03MTMsNyArNzE4LDgg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBZG1pbk9wZXJhdGlvbihpbnQgcworIAorIGJvb2wgU3lz Y2FsbFNldHM6OklzS2VybmVsTW9kdWxlKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykg eworLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl9jcmVhdGVfbW9kdWxlOgorICAgICBjYXNlIF9fTlJfZ2V0X2tlcm5l bF9zeW1zOiAgLy8gU2hvdWxkIEVOT1NZUy4KKyAgICAgY2FzZSBfX05SX3F1ZXJ5X21vZHVsZToK K0BAIC03NDUsNyArNzUxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGc0NvbnRyb2woaW50IHN5 c25vKQorICAgICBjYXNlIF9fTlJfcXVvdGFjdGw6CisgICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgor ICAgICBjYXNlIF9fTlJfc3dhcG9uOgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKKyAgICAgY2FzZSBfX05SX3Vtb3VudDoKKyAjZW5kaWYKK0BAIC03NjIsNyArNzY4LDcgQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNOdW1hKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0 Y3B1OgorICAgICBjYXNlIF9fTlJfbWJpbmQ6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVk KF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9taWdyYXRlX3BhZ2VzOgorICNlbmRpZgorICAgICBj YXNlIF9fTlJfbW92ZV9wYWdlczoKK0BAIC03OTcsMTMgKzgwMywxMyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0dsb2JhbFByb2Nlc3NFbnZpcm9uCisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNh c2UgX19OUl9hY2N0OiAgLy8gUHJpdmlsZWdlZC4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoKKyAjZW5kaWYKKy0jaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2Fz ZSBfX05SX3VnZXRybGltaXQ6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwK KysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisg ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQorICAgICBjYXNlIF9fTlJfdWxpbWl0OgorICNlbmRpZgorQEAgLTgzOCw3ICs4NDQs NyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dsb2JhbFN5c3RlbVN0YXR1cyhpCisgI2VuZGlmCisg ICAgIGNhc2UgX19OUl9zeXNpbmZvOgorICAgICBjYXNlIF9fTlJfdW5hbWU6CistI2lmIGRlZmlu ZWQoX19pMzg2X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgICAgY2FzZSBfX05SX29sZHVuYW1lOgorICAgICBjYXNlIF9fTlJfb2xkb2xkdW5h bWU6CisgI2VuZGlmCitAQCAtOTA0LDggKzkxMCwxNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1N5 c3RlbVZTZW1hcGhvcmVzKGluCisgfQorICNlbmRpZgorIAorKy8qIHNoaXR0eSBoYWNrIGFyb3Vu ZCBWb2lkJ3MgNC4xOSBrZXJuZWwgaGVhZGVycyBtaXNzaW5nIHRob3NlIG51bWJlcnMgKi8KKysj aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAhZGVmaW5lZChfX05SX3NobWdldCkKKysjZGVm aW5lIF9fTlJfc2htZ2V0IDM5NQorKyNkZWZpbmUgX19OUl9zaG1jdGwgMzk2CisrI2RlZmluZSBf X05SX3NobWF0IDM5NworKyNkZWZpbmUgX19OUl9zaG1kdCAzOTgKKysjZW5kaWYKKysKKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKQorIC8vIFRoZXNlIGdpdmUgYSBsb3Qg b2YgYW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCisgYm9v bCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubykgeworQEAgLTkz Niw3ICs5NTAsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZNZXNzYWdlUXVldWUoCisg fQorICNlbmRpZgorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAvLyBC aWcgc3lzdGVtIFYgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsLgorIGJvb2wgU3lzY2FsbFNldHM6 OklzU3lzdGVtVklwYyhpbnQgc3lzbm8pIHsKK0BAIC05NTYsNyArOTcwLDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbnlTeXN0ZW1WKGludCBzeXNubworICAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKKyAgIHJldHVybiBJc1N5 c3RlbVZNZXNzYWdlUXVldWUoc3lzbm8pIHx8IElzU3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8 CisgICAgICAgICAgSXNTeXN0ZW1WU2hhcmVkTWVtb3J5KHN5c25vKTsKKy0jZWxpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBcCisrI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNubyk7 CisgI2VuZGlmCitAQCAtMTAxNCw3ICsxMDI4LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGYU5v dGlmeShpbnQgc3lzbm8pCisgYm9vbCBTeXNjYWxsU2V0czo6SXNUaW1lcihpbnQgc3lzbm8pIHsK KyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2dldGl0aW1lcjoKKy0jaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNl IF9fTlJfYWxhcm06CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9zZXRpdGltZXI6CitAQCAtMTA5 NiwxNyArMTExMSwyMCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc01pc2MoaW50IHN5c25vKSB7Cisg ICAgIGNhc2UgX19OUl9zeW5jZnM6CisgICAgIGNhc2UgX19OUl92aGFuZ3VwOgorIC8vIFRoZSBz eXN0ZW0gY2FsbHMgYmVsb3cgYXJlIG5vdCBpbXBsZW1lbnRlZC4KKy0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfYWZz X3N5c2NhbGw6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp CisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBf X05SX2JyZWFrOgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9nZXRwbXNnOgorICNlbmRpZgorLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX2d0dHk6Cisg ICAgIGNhc2UgX19OUl9pZGxlOgorQEAgLTExMTUsMjAgKzExMzMsMjEgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNNaXNjKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfcHJvZjoKKyAgICAgY2Fz ZSBfX05SX3Byb2ZpbDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKKyAjZW5kaWYK KyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6CisgI2Vu ZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJf c3R0eToKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3R1eGNh bGw6CisgI2VuZGlmCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChf X2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3Zz ZXJ2ZXI6CisgI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3N5c2NhbGxfc2V0cy5oCitAQCAtNDMsMTMgKzQzLDE0IEBAIGNsYXNzIFNBTkRCT1hf RVhQT1JUIFN5c2NhbGxTZXRzIHsKKyAgIHN0YXRpYyBib29sIElzRGVuaWVkR2V0T3JNb2RpZnlT b2NrZXQoaW50IHN5c25vKTsKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLy8gQmln IG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KKyAgIHN0YXRpYyBib29sIElz U29ja2V0Q2FsbChpbnQgc3lzbm8pOworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICBzdGF0aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlv bihpbnQgc3lzbm8pOworICNlbmRpZgorIAorQEAgLTc3LDcgKzc4LDcgQEAgY2xhc3MgU0FOREJP WF9FWFBPUlQgU3lzY2FsbFNldHMgeworICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2VtYXBob3Jl cyhpbnQgc3lzbm8pOworICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAg ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRf QklUUykpCisgICAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBi eXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgorICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2hhcmVk TWVtb3J5KGludCBzeXNubyk7CitAQCAtODksNyArOTAsOCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9S VCBTeXNjYWxsU2V0cyB7CisgI2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwK Ky0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAg IC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCisgICBzdGF0aWMgYm9v bCBJc1N5c3RlbVZJcGMoaW50IHN5c25vKTsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKK0BA IC0xOCw3ICsxOCw3IEBAIG5hbWVzcGFjZSBzYW5kYm94IHsKKyBuYW1lc3BhY2UgeworIAorICNp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZB TUlMWSkgfHwgXAorLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorKyAgICBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkIChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCisgLy8gTnVtYmVyIHRoYXQncyBub3QgY3VycmVudGx5IHVzZWQgYnkgYW55IExpbnV4IGtl cm5lbCBBQklzLgorIGNvbnN0IGludCBrSW52YWxpZFN5c2NhbGxOdW1iZXIgPSAweDM1MWQzOwor ICNlbHNlCitAQCAtMzEyLDEwICszMTIsNTQgQEAgYXNtKC8vIFdlIG5lZWQgdG8gYmUgYWJsZSB0 byB0ZWxsIHRoZSBrZQorICAgICAiMjpyZXRcbiIKKyAgICAgIi5jZmlfZW5kcHJvY1xuIgorICAg ICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCisrI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorKyAgICAiLnRleHRcbiIKKysgICAgIi5hbGlnbiA0XG4iCisrICAgICIudHlw ZSBTeXNjYWxsQXNtIEBmdW5jdGlvblxuIgorKyAgICAiU3lzY2FsbEFzbTpcbiIKKysgICAgIi5j Zmlfc3RhcnRwcm9jXG4iCisrCisrICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCisrICAg ICJjbXBkaSAzLCAwXG4iCisrICAgICJiZ3QgMmZcbiIKKysKKysgICAgLy8gTG9hZCBhZGRyZXNz IG9mIDNmIGludG8gcjMgYW5kIHJldHVybgorKyAgICAibWZsciAxMFxuIgorKyAgICAiYmwgMWZc biIKKysgICAgIjE6IG1mbHIgM1xuIgorKyAgICAibXRsciAxMFxuIgorKyAgICAiYWRkaSAzLCAz LCA0KjEzXG4iCisrICAgICJibHJcbiIKKysKKysgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBh cnJheSBpbnRvIHIzLTgKKysgICAgLy8gc2F2ZSBwYXJhbSAzIGluIHIxMAorKyAgICAiMjpcbiIK KysgICAgIm1yIDAsIDNcbiIKKysgICAgImxkIDMsIDAoNClcbiIKKysgICAgImxkIDUsIDE2KDQp XG4iCisrICAgICJsZCA2LCAyNCg0KVxuIgorKyAgICAibGQgNywgMzIoNClcbiIKKysgICAgImxk IDgsIDQwKDQpXG4iCisrICAgICJsZCA0LCA4KDQpXG4iCisrICAgICJsaSA5LCAwXG4iCisrCisr ICAgIC8vIEVudGVyIGtlcm5lbAorKyAgICAic2NcbiIKKysKKysgICAgLy8gTWFnaWMgcmV0dXJu IGFkZHJlc3MKKysgICAgIjM6XG4iCisrICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZh bHVlcyBhcmUgYWx3YXlzIHBvc2l0aXZlLgorKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3Iw LlNPIGFuZCBuZWdhdGUgdXBvbiBlcnJvcgorKyAgICAiYmMgNCwgMywgNGZcbiIKKysgICAgIm5l ZyAzLCAzXG4iCisrICAgICI0OiBibHJcbiIKKysKKysgICAgIi5jZmlfZW5kcHJvY1xuIgorKyAg ICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCisgI2VuZGlmCisgICAgICk7ICAv LyBhc20KKyAKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyBleHRlcm4gIkMiIHsKKyBpbnRwdHJfdCBT eXNjYWxsQXNtKGludHB0cl90IG5yLCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKKyB9CitAQCAt NDI5LDYgKzQ3Myw4IEBAIGludHB0cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAorICAgICByZXQg PSBpbm91dDsKKyAgIH0KKyAKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBpbnRw dHJfdCByZXQgPSBTeXNjYWxsQXNtKG5yLCBhcmdzKTsKKyAjZWxzZQorICNlcnJvciAiVW5pbXBs ZW1lbnRlZCBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCitAQCAtNDQ1LDggKzQ5MSwyNiBAQCB2b2lk IFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfCisgICAgIC8vIG5lZWRzIHRvIGJl IGNoYW5nZWQgYmFjay4KKyAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOworICAgICBTRUNDT01QX1BB Uk00KGN0eCkgPSAxOworLSAgfSBlbHNlCisrICB9IGVsc2UgeworICAgICBTRUNDT01QX1BBUk00 KGN0eCkgPSAwOworKyAgfQorKyNlbmRpZgorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICAvLyBTYW1lIGFzIE1JUFMsIG5lZWQgdG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lz dGVyIChjcjAuU08pCisrICBpZiAocmV0X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1KSB7 CisrICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKKysjaWZkZWYgX19HTElCQ19fCisrICAgIGN0eC0+ dWNfbWNvbnRleHQucmVncy0+Y2NyIHw9ICgxIDw8IDI4KTsKKysjZWxzZQorKyAgICAoKHN0cnVj dCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4dC5yZWdzKS0+Y2NyIHw9ICgxIDw8IDI4KTsKKysj ZW5kaWYKKysgIH0gZWxzZSB7CisrI2lmZGVmIF9fR0xJQkNfXworKyAgICBjdHgtPnVjX21jb250 ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOworKyNlbHNlCisrICAgICgoc3RydWN0IHB0X3Jl Z3MgKiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgJj0gfigxIDw8IDI4KTsKKysjZW5kaWYK KysgIH0KKyAjZW5kaWYKKyAgIFNFQ0NPTVBfUkVTVUxUKGN0eCkgPSBzdGF0aWNfY2FzdDxncmVn X3Q+KHJldF92YWwpOworIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKK0BAIC0yMzYsNiArMjM2LDIwIEBAIHZvaWQg VHJhcDo6U2lnU3lzKGludCBuciwgTGludXhTaWdJbmZvKgorICAgICAgIFNldElzSW5TaWdIYW5k bGVyKCk7CisgICAgIH0KKyAKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAvLyBP biBwcGM2NCtnbGliYywgc29tZSBzeXNjYWxscyBzZWVtIHRvIGFjY2lkZW50YWxseSBuZWdhdGUg dGhlIGZpcnN0CisrICAgIC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tzIGFnYWluc3Qg aXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKKysgICAgLy8gbmVnYXRlIHRoZW0gYmFjay4K KysgICAgLy8gVE9ETyhzaGF3bkBhbmFzdGFzLmlvKTogaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSBm dXJ0aGVyCisrICAgIGF1dG8gbnIgPSBTRUNDT01QX1NZU0NBTEwoY3R4KTsKKysgICAgaWYgKG5y ID09IF9fTlJfb3BlbmF0IHx8IG5yID09IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBfX05SX2ZhY2Nl c3NhdCB8fCBuciA9PSBfX05SX3JlYWRsaW5rYXQgfHwKKysgICAgICAgIG5yID09IF9fTlJfcmVu YW1lYXQgfHwgbnIgPT0gX19OUl9yZW5hbWVhdDIgfHwgbnIgPT0gX19OUl9uZXdmc3RhdGF0IHx8 IG5yID09IF9fTlJfdW5saW5rYXQpIHsKKysgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KFNF Q0NPTVBfUEFSTTEoY3R4KSkgPiAwKSB7CisrICAgICAgICAgICAgU0VDQ09NUF9QQVJNMShjdHgp ID0gLVNFQ0NPTVBfUEFSTTEoY3R4KTsKKysgICAgICAgIH0KKysgICAgfQorKyNlbmRpZgorKwor ICAgICAvLyBDb3B5IHRoZSBzZWNjb21wLXNwZWNpZmljIGRhdGEgaW50byBhIGFyY2hfc2VjY29t cF9kYXRhIHN0cnVjdHVyZS4gVGhpcworICAgICAvLyBpcyB3aGF0IHdlIGFyZSBzaG93aW5nIHRv IFRyYXBGbmMgY2FsbGJhY2tzIHRoYXQgdGhlIHN5c3RlbSBjYWxsCisgICAgIC8vIGV2YWx1YXRv ciByZWdpc3RlcmVkIHdpdGggdGhlIHNhbmRib3guCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKK0BAIC04 MSw3ICs4MSw3IEBAIGJvb2wgQ2hyb290VG9TYWZlRW1wdHlEaXIoKSB7CisgICBwaWRfdCBwaWQg PSAtMTsKKyAgIGFsaWduYXMoMTYpIGNoYXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsK KyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FS TV9GQU1JTFkpIHx8IFwKKy0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysgICAg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCisgICAvLyBUaGUgc3RhY2sgZ3Jvd3MgZG93bndhcmQuCisgICB2b2lkKiBzdGFjayA9 IHN0YWNrX2J1ZiArIHNpemVvZihzdGFja19idWYpOworICNlbHNlCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxs X3dyYXBwZXJzLmNjCitAQCAtNjEsNyArNjEsNyBAQCBsb25nIHN5c19jbG9uZSh1bnNpZ25lZCBs b25nIGZsYWdzLAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl82NCkKKyAgIHJldHVybiBzeXNj YWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBjaGlsZF9zdGFjaywgcHRpZCwgY3RpZCwgdGxzKTsKKyAj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4NikgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZ KSB8fCBcCistICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQor ICAgLy8gQ09ORklHX0NMT05FX0JBQ0tXQVJEUyBkZWZpbmVkLgorICAgcmV0dXJuIHN5c2NhbGwo X19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCB0bHMsIGN0aWQpOworICNlbmRp ZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9r ZXIvYnJva2VyX3Byb2Nlc3MuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCitAQCAtMTY1LDcgKzE2NSw3 IEBAIGJvb2wgQnJva2VyUHJvY2Vzczo6SXNTeXNjYWxsQnJva2VyYWJsZSgKKyAjaWYgZGVmaW5l ZChfX05SX2ZzdGF0YXQ2NCkKKyAgICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoKKyAjZW5kaWYKKy0j aWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKKyAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6CisgI2VuZGlmCisgICAgICAgcmV0 dXJuICFmYXN0X2NoZWNrIHx8IGFsbG93ZWRfY29tbWFuZF9zZXRfLnRlc3QoQ09NTUFORF9TVEFU KTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3NlY2NvbXAuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCitAQCAtNDEsNiArNDEsOSBAQAor ICNpZm5kZWYgRU1fQUFSQ0g2NAorICNkZWZpbmUgRU1fQUFSQ0g2NCAxODMKKyAjZW5kaWYKKysj aWZuZGVmIEVNX1BQQzY0CisrI2RlZmluZSBFTV9QUEM2NCAyMQorKyNlbmRpZgorIAorICNpZm5k ZWYgX19BVURJVF9BUkNIXzY0QklUCisgI2RlZmluZSBfX0FVRElUX0FSQ0hfNjRCSVQgMHg4MDAw MDAwMAorQEAgLTc0LDYgKzc3LDE0IEBACisgI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVN X0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCisgI2VuZGlm CisgCisrI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0CisrI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0 IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKKysjZW5kaWYKKysKKysjaWZuZGVmIEFV RElUX0FSQ0hfUFBDNjRMRQorKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8 IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKKysjZW5kaWYKKysKKyAvLyBG b3IgcHJjdGwuaAorICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKKyAjZGVmaW5lIFBSX1NFVF9TRUND T01QICAgICAgICAgICAgICAgMjIKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAorQEAg LTEzLDcgKzEzLDcgQEAKKyAvLyAobm90IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50 IHZhbHVlcyBhbmQgaW4gZGlmZmVyZW50IG1lbW9yeQorIC8vIGxheW91dHMpLiBTbywgZmlsbCB0 aGUgZ2FwIGhlcmUuCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisr ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAKKyAj ZGVmaW5lIExJTlVYX1NJR0hVUCAxCisgI2RlZmluZSBMSU5VWF9TSUdJTlQgMgorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lz Y2FsbHMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAorQEAgLTM1LDUgKzM1LDkgQEAKKyAjaW5jbHVkZSAi c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIgorICNl bmRpZgorIAorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2luY2x1ZGUgInNhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCIKKysjZW5kaWYKKysK KyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNf SF8KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKK0BAIC0xMSw2ICsxMSw4 IEBACisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vj b250ZXh0LmgiCisgI2VsaWYgZGVmaW5lZChfX2kzODZfXykKKyAjaW5jbHVkZSAic2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9pMzg2X2xpbnV4X3Vjb250ZXh0LmgiCisrI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgiCisgI2Vsc2UKKyAjZXJyb3IgIk5vIHN1cHBvcnQgZm9y IHlvdXIgYXJjaGl0ZWN0dXJlIGluIFBOYUNsIGhlYWRlciIKKyAjZW5kaWYKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5 X2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGlu dXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTE1LDYgKzE1LDExIEBACisgI2lu Y2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKKyAj aW5jbHVkZSAic2FuZGJveC9wb2xpY3kvbGludXgvc2FuZGJveF9saW51eC5oIgorIAorKy8vIE9u IFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28g d2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAorKyNpZmRlZiBfX3Bvd2VycGM2NF9fCisrI2luY2x1 ZGUgPHRlcm1pb3MuaD4KKysjZW5kaWYKKysKKyAvLyBUT0RPKHZpZ25hdHRpKTogcmVwbGFjZSB0 aGUgbG9jYWwgZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAjaW5jbHVkZQorIC8vIDxsaW51eC9kbWEt YnVmLmg+IG9uY2Uga2VybmVsIHZlcnNpb24gNC42IGJlY29tZXMgd2lkZWx5IHVzZWQuCisgI2lu Y2x1ZGUgPGxpbnV4L3R5cGVzLmg+CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xh dG9yL0luZm9TaW5rLmgKK0BAIC05Myw3ICs5MywxNiBAQCBjbGFzcyBUSW5mb1NpbmtCYXNlCisg ICAgICAgICAgICAgc3RyZWFtLnByZWNpc2lvbig4KTsKKyAgICAgICAgICAgICBzdHJlYW0gPDwg ZjsKKyAgICAgICAgIH0KKy0gICAgICAgIHNpbmsuYXBwZW5kKHN0cmVhbS5zdHIoKSk7CisrCisr ICAgICAgICAvLyBIYWNrIHRvIHdvcmsgYXJvdW5kIGEgYnVnIHdoZXJlIG5lZ2F0aXZlIGZsb2F0 aW5nIHBvaW50IHZhbHVlcworKyAgICAgICAgLy8gYXJlIHJlbmRlcmVkIGxpa2UgJy4wLjUnIGlu c3RlYWQgb2YgJy0wLjUnCisrICAgICAgICBzdGQ6OnN0cmluZyByZXMoc3RyZWFtLnN0cigpKTsK KysKKysgICAgICAgIGlmIChzaWduYml0KGYpKSB7IC8vIHRlc3QgaWYgZiBpcyBuZWdhdGl2ZQor KyAgICAgICAgICAgIHJlc1swXSA9ICctJzsKKysgICAgICAgIH0KKysKKysgICAgICAgIHNpbmsu YXBwZW5kKHJlcyk7CisgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgIH0KKyAgICAgLy8gV3Jp dGUgYm9vbGVhbiB2YWx1ZXMgYXMgdGhlaXIgbmFtZXMgaW5zdGVhZCBvZiBpbnRlZ3JhbCB2YWx1 ZS4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGli QU5HTEUvQ29uc3RhbnRzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKK0BAIC05LDYgKzksNyBAQAorICNpZm5k ZWYgTElCQU5HTEVfQ09OU1RBTlRTX0hfCisgI2RlZmluZSBMSUJBTkdMRV9DT05TVEFOVFNfSF8K KyAKKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAjaW5jbHVkZSAiY29tbW9uL3BsYXRmb3JtLmgiCisg CisgI2luY2x1ZGUgPHN0ZGludC5oPgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgorQEAgLTk5LDYgKzk5LDEzIEBAIGlmIChpc193 aW4gJiYgIWlzX21zYW4gJiYgY3VycmVudF9jcHUgIT0KKyAgICAgICB9IGVsc2UgeworICAgICAg ICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQorICAgICAgIH0KKysgICAg fSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgICAgaWYgKGlzX2xpbnV4 KSB7CisrICAgICAgICAjIFRPRE86IHBwYzY0IChiZSkgY2hlY2sKKysgICAgICAgIHNvdXJjZXMg Kz0gY3J5cHRvX3NvdXJjZXNfbGludXhfcHBjNjRsZQorKyAgICAgIH0gZWxzZSB7CisrICAgICAg ICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCisrICAgICAgfQorICAgICB9 IGVsc2UgeworICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKyAg ICAgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JV SUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv QlVJTEQuZ24KK0BAIC02MjMsNyArNjIzLDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9z IHx8IGlzX2FuZHJvaQorICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L21pbmlkdW1wX2ZpbGVf d3JpdGVyLmgiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRGLmNjIiwK KyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VURi5oIiwKKy0gICAgICAiYnJl YWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMiLAorICAgICAgICJi cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuY2MiLAorICAgICAgICJicmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaCIsCisgICAgICAgImJyZWFrcGFk L3NyYy9jb21tb24vbGludXgvZWxmdXRpbHMuY2MiLAorQEAgLTY2Myw2ICs2NjIsMTUgQEAgaWYg KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaQorIAorICAgICBsaWJzID0gWyAi ZGwiIF0KKyAKKysgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgICAgIGRl ZmluZXMgPSBbICJIQVZFX0dFVENPTlRFWFQiIF0KKysgICAgICAgIGxpYnMgKz0gWyAidWNvbnRl eHQiIF0KKysgICAgfSBlbHNlIHsKKysgICAgICAgIHNvdXJjZXMgKz0gWworKyAgICAgICAgICAg ICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKKysgICAg ICAgIF0KKysgICAgfQorKworICAgICBpbmNsdWRlX2RpcnMgPSBbCisgICAgICAgIi4iLAorICAg ICAgICJicmVha3BhZC9zcmMiLAorQEAgLTcxMiw3ICs3MjAsNiBAQCBpZiAoaXNfbGludXggfHwg aXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYyIsCisgICAgICAg ImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRl cl91bml0dGVzdF91dGlscy5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL3Byb2NfY3B1aW5mb19yZWFkZXJfdW5pdHRlc3QuY2MiLAorLSAgICAg ICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHRfdW5pdHRlc3Qu Y2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXBfdW5p dHRlc3QuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2ZpbGVfaWRfdW5p dHRlc3QuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2xpbnV4X2xpYmNf c3VwcG9ydF91bml0dGVzdC5jYyIsCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vcmF3X2NvbnRleHRfY3B1LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi9yYXdfY29udGV4dF9jcHUuaAorQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJhd0NvbnRl eHRBUk0gUmF3Q29udGV4dENQVTsKKyB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09sZCBSYXdD b250ZXh0Q1BVOworICNlbGlmIGRlZmluZWQoX19taXBzX18pCisgdHlwZWRlZiBNRFJhd0NvbnRl eHRNSVBTIFJhd0NvbnRleHRDUFU7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3R5 cGVkZWYgTURSYXdDb250ZXh0UFBDNjQgUmF3Q29udGV4dENQVTsKKyAjZWxzZQorICNlcnJvciAi VGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNl bmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKK0BA IC0yNzAsNyArMjcwLDU0IEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29u dGUKKyAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSBtY29udGV4dC5mcGNfZWlyOworICNlbmRpZgor IH0KKy0jZW5kaWYgIC8vIF9fbWlwc19fCisrCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrI2luY2x1ZGUgPGFzbS9lbGYuaD4KKysj aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbmRpZgorKworK3VpbnRwdHJfdCBUaHJlYWRJbmZv OjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7CisrICAgIHJldHVybiBtY29udGV4dC5n cF9yZWdzW1BUX05JUF07CisrfQorKworK3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQo UmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7CisrICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1E X0NPTlRFWFRfUFBDNjRfRlVMTDsKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhU X1BQQzY0X0dQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4dC5n cF9yZWdzW2ldOworKworKyAgICBvdXQtPmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOwor KyAgICBvdXQtPnNycjAgPSBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07CisrICAgIG91dC0+c3Jy MSA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKKysgICAgb3V0LT5jciA9IG1jb250ZXh0Lmdw X3JlZ3NbUFRfQ0NSXTsKKysgICAgb3V0LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hFUl07 CisrICAgIG91dC0+Y3RyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOworKworKyNpZmRlZiBf X0dMSUJDX18KKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQ Q19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBt Y29udGV4dC5mcF9yZWdzW2ldOworKworKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29u dGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKKysjZWxzZQorKyAgICBmb3IgKGludCBpID0gMDsgaSA8 IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5m bG9hdF9zYXZlLmZwcmVnc1tpXSA9ICgodWludDY0X3QgKikmbWNvbnRleHQuZnBfcmVncylbaV07 CisrCisrICAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0 LmZwX3JlZ3MpW0VMRl9ORlBSRUctMV07CisrI2VuZGlmCisrCisrICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQt PnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPSBcCisrICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZy ZWdzLnZycmVnc1tpXVswXSkgPDwgMzIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICB8IHZy ZWdzLnZycmVnc1tpXVsxXSwKKysgICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy52cnJlZ3Nb aV1bMl0pIDw8IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tp XVszXX07CisrCisrICAgIG91dC0+dnJzYXZlID0gdnJlZ3MudnJzYXZlOworKyAgICBvdXQtPnZl Y3Rvcl9zYXZlLnNhdmVfdnNjciA9IHswLCB2cmVncy52c2NyLnZzY3Jfd29yZH07CisrICAgIG91 dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsKKyt9CisrI2VuZGlmICAv LyBfX3Bvd2VycGM2NF9fCisgCisgdm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJl Z2lzdGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7CisgICBhc3NlcnQoZ3BfcmVn cyB8fCBzaXplKTsKK0BAIC0yNzksNiArMzI2LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2Vu ZXJhbFB1cnBvc2VSZWdpc3QKKyAgICAgKmdwX3JlZ3MgPSBtY29udGV4dC5ncmVnczsKKyAgIGlm IChzaXplKQorICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncmVncyk7CisrI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaWYgKGdwX3JlZ3MpCisrICAgICpncF9yZWdzID0gbWNv bnRleHQuZ3BfcmVnczsKKysgIGlmIChzaXplKQorKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4 dC5ncF9yZWdzKTsKKyAjZWxzZQorICAgaWYgKGdwX3JlZ3MpCisgICAgICpncF9yZWdzID0gJnJl Z3M7CitAQCAtMjk0LDYgKzM0NiwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9p bnRSZWdpc3RlCisgICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwcmVnczsKKyAgIGlmIChzaXpl KQorICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcHJlZ3MpOworKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKKysgIGlmIChmcF9yZWdzKQorKyAgICAqZnBfcmVncyA9ICZtY29udGV4 dC5mcF9yZWdzOworKyAgaWYgKHNpemUpCisrICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZw X3JlZ3MpOworICNlbHNlCisgICBpZiAoZnBfcmVncykKKyAgICAgKmZwX3JlZ3MgPSAmZnByZWdz OworQEAgLTMwMiw0ICszNTksMTMgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50 UmVnaXN0ZQorICNlbmRpZgorIH0KKyAKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorK3Zv aWQgVGhyZWFkSW5mbzo6R2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCog c2l6ZSkgeworKyAgICBpZiAodl9yZWdzKQorKyAgICAgICAgKnZfcmVncyA9ICZ2cmVnczsKKysg ICAgaWYgKHNpemUpCisrICAgICAgICAqc2l6ZSA9IHNpemVvZih2cmVncyk7CisrfQorKyNlbmRp ZgorKworIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAorQEAgLTY4LDYgKzY4LDEwIEBAIHN0cnVjdCBU aHJlYWRJbmZvIHsKKyAgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdXNl ci5oPgorICAgc3RydWN0IHVzZXJfcmVnc19zdHJ1Y3QgcmVnczsKKyAgIHN0cnVjdCB1c2VyX2Zw c2ltZF9zdHJ1Y3QgZnByZWdzOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8v IFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCisrICBtY29u dGV4dF90IG1jb250ZXh0OworKyAgdnJyZWdzZXRfdCB2cmVnczsKKyAjZWxpZiBkZWZpbmVkKF9f bWlwc19fKQorICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0 Lmg+LgorICAgbWNvbnRleHRfdCBtY29udGV4dDsKK0BAIC04NCw2ICs4OCwxMSBAQCBzdHJ1Y3Qg VGhyZWFkSW5mbyB7CisgCisgICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIGZs b2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEuCisgICB2b2lkIEdldEZsb2F0aW5nUG9pbnRSZWdpc3Rl cnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSk7CisrCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgdGhlIHZlY3Rv ciByZWdpc3RlciBhcmVhLiAoUFBDNjQgb25seSkKKysgIHZvaWQgR2V0VmVjdG9yUmVnaXN0ZXJz KHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSk7CisrI2VuZGlmCisgfTsKKyAKKyB9ICAvLyBu YW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdWNvbnRleHRfcmVhZGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdWNvbnRleHRfcmVhZGVyLmNjCitAQCAtMjU0LDYgKzI1NCw2MCBAQCB2b2lkIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDCisgICBvdXQtPmZsb2F0X3NhdmUuZmlyID0g dWMtPnVjX21jb250ZXh0LmZwY19laXI7ICAvLyBVbnVzZWQuCisgI2VuZGlmCisgfQorKworKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysKKysjaWZuZGVmIF9fR0xJQkNfXworKyNpbmNs dWRlIDxhc20vZWxmLmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyt1 aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29udGV4dF90 KiB1YykgeworKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9Q UEM2NF9SRUdfU1BdOworK30KKysKKyt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldEluc3Ry dWN0aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgeworKyAgICByZXR1cm4gdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKKyt9CisrCisrdm9pZCBVQ29udGV4dFJlYWRlcjo6 RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90KiB2 cmVncykgeworKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7 CisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7 IGkrKykKKysgICAgICAgIG91dC0+Z3ByW2ldID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbaV07 CisrCisrICAgIG91dC0+bHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOworKyAg ICBvdXQtPnNycjAgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworKyAgICBvdXQt PnNycjEgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdOworKyAgICBvdXQtPmNyID0g dWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsKKysgICAgb3V0LT54ZXIgPSB1Yy0+dWNf bWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOworKyAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX0NUUl07CisrCisrI2lmZGVmIF9fR0xJQkNfXworKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAg ICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ld OworKworKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVn c1tORlBSRUctMV07CisrI2Vsc2UKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElO R1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5m cHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtpXTsKKysK KysgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRl eHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKKysjZW5kaWYKKysKKysgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91 dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9CisrICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZy ZWdzLT52cnJlZ3NbaV1bMF0pIDw8IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZy ZWdzLT52cnJlZ3NbaV1bMV0sCisrICAgICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLT52cnJl Z3NbaV1bMl0pIDw8IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJl Z3NbaV1bM119OworKworKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLT52cnNhdmU7CisrICAgIG91 dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLT52c2NyLnZzY3Jfd29yZH07Cisr ICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsKKyt9CisrCisg I2VuZGlmCisgCisgfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKK0BAIC01OSw2ICs1OSw5 IEBAIHN0cnVjdCBVQ29udGV4dFJlYWRlciB7CisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykK KyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3Qg dWNvbnRleHRfdCogdWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgZnBzaW1kX2NvbnRleHQqIGZwcmVncyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25z dCB1Y29udGV4dF90ICp1YywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZy cmVnc2V0X3QqIHZyZWdzKTsKKyAjZWxzZQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQo UmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1Yyk7CisgI2VuZGlmCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitAQCAtMTA1LDYgKzEwNSwxMyBAQAor ICNkZWZpbmUgUFJfU0VUX1BUUkFDRVIgMHg1OTYxNmQ2MQorICNlbmRpZgorIAorKy8qIG11c2wg aGFjaywgY2FuJ3QgaW5jbHVkZSBhc20vcHRyYWNlLmggYXMgdGhhdCBjYXVzZXMgY29uZmxpY3Rz ICovCisrI2lmbmRlZiBfX0dMSUJDX18KKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAh ZGVmaW5lZChQVF9OSVApCisrI2RlZmluZSBQVF9OSVAgMzIKKysjZW5kaWYKKysjZW5kaWYKKysK KyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKKyAKKyBuYW1lc3BhY2UgeworQEAgLTQ2MSw5 ICs0NjgsMTYgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50CisgICAg IG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy5mbG9hdF9zdGF0ZSwgZnBfcHRyLAorICAgICAgICAg ICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUpKTsKKyAgIH0KKysjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBPbiBQUEM2NCwgd2UgbXVzdCBjb3B5IFZSIHN0 YXRlCisrICB1Y29udGV4dF90KiB1Y19wdHIgPSAodWNvbnRleHRfdCopdWM7CisrICBpZiAodWNf cHRyLT51Y19tY29udGV4dC52X3JlZ3MpIHsKKysgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRf LnZlY3Rvcl9zdGF0ZSwgdWNfcHRyLT51Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAgICAgICBz aXplb2YoZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUpKTsKKysgIH0KKyAjZWxpZiAhZGVm aW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gRlAgc3RhdGUg aXMgbm90IHBhcnQgb2YgdXNlciBBQkkgb24gQVJNIExpbnV4LgorLSAgLy8gSW4gY2FzZSBvZiBN SVBTIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90CisrICAvLyBJ biBjYXNlIG9mIE1JUFMsIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4 dF90CisgICAvLyBhbmQgJ2Zsb2F0X3N0YXRlJyBpcyBub3QgYSBtZW1iZXIgb2YgQ3Jhc2hDb250 ZXh0LgorICAgdWNvbnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOworICAgaWYgKHVj X3B0ci0+dWNfbWNvbnRleHQuZnByZWdzKSB7CitAQCAtNzA4LDExICs3MjIsMTkgQEAgYm9vbCBF eGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICAgfQorICNlbmRpZgorIAorLSNp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVm aW5lZChfX21pcHNfXykKKysjaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18pIFwKKysgICAgJiYgIWRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgIC8vIEZQVSBzdGF0ZSBpcyBub3QgcGFydCBvZiBBUk0gRUFCSSB1Y29u dGV4dF90LgorICAgbWVtY3B5KCZjb250ZXh0LmZsb2F0X3N0YXRlLCBjb250ZXh0LmNvbnRleHQu dWNfbWNvbnRleHQuZnByZWdzLAorICAgICAgICAgIHNpemVvZihjb250ZXh0LmZsb2F0X3N0YXRl KSk7CisgI2VuZGlmCisrCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFZlY3Rv ciByZWdpc3RlcnMgbXVzdCBiZSBjb3BpZWQgb24gUFBDNjQKKysgIG1lbWNweSgmY29udGV4dC52 ZWN0b3Jfc3RhdGUsIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC52X3JlZ3MsCisrICAgICAg ICAgc2l6ZW9mKGNvbnRleHQudmVjdG9yX3N0YXRlKSk7CisrI2VuZGlmCisrCisgICBjb250ZXh0 LnRpZCA9IHN5c19nZXR0aWQoKTsKKyAKKyAgIC8vIEFkZCBhbiBleGNlcHRpb24gc3RyZWFtIHRv IHRoZSBtaW5pZHVtcCBmb3IgYmV0dGVyIHJlcG9ydGluZy4KK0BAIC03MzMsNiArNzU1LDkgQEAg Ym9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICNlbGlmIGRlZmluZWQo X19taXBzX18pCisgICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisgICAgICAgcmVpbnRlcnBy ZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LnBjKTsKKysjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisrICAg ICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0Lmdw X3JlZ3NbUFRfTklQXSk7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4g cG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5oCitAQCAtMTkyLDcgKzE5MiwxMSBAQCBjbGFzcyBFeGNlcHRpb25I YW5kbGVyIHsKKyAgICAgc2lnaW5mb190IHNpZ2luZm87CisgICAgIHBpZF90IHRpZDsgIC8vIHRo ZSBjcmFzaGluZyB0aHJlYWQuCisgICAgIHVjb250ZXh0X3QgY29udGV4dDsKKy0jaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorKyAgICAvLyBQUEM2NCdzIEZQIHN0YXRlIGlzIGEgcGFydCBvZiB1Y29udGV4 dF90IGxpa2UgTUlQUyBidXQgdGhlIHZlY3RvcgorKyAgICAvLyBzdGF0ZSBpcyBub3QsIHNvIGEg c3RydWN0IGlzIG5lZWRlZC4KKysgICAgdnN0YXRlX3QgdmVjdG9yX3N0YXRlOworKyNlbGlmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICAgIC8vICNpZmRl ZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIGZvciBM aW51eCBBUk0uCisgICAgIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJl YWR5IHBhcnQgb2YgdWNvbnRleHRfdCBzbworICAgICAvLyAnZmxvYXRfc3RhdGUnIGlzIG5vdCBy ZXF1aXJlZC4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5p dHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5p dHRlc3QuY2MKK0BAIC0zMDcsNyArMzA3LDcgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwg UGFyYWxsZWxDaGlsZAorICAgfQorIAorICAgLy8gV2FpdCBhIHdoaWxlIHVudGlsIHRoZSBjaGls ZCBzaG91bGQgaGF2ZSBjcmFzaGVkLgorLSAgdXNsZWVwKDEwMDAwMDApOworKyAgdXNsZWVwKDIw MDAwMDApOworICAgLy8gS2lsbCB0aGUgY2hpbGQgaWYgaXQgaXMgc3RpbGwgcnVubmluZy4KKyAg IGtpbGwoY2hpbGQsIFNJR0tJTEwpOworIAorQEAgLTU1OSw2ICs1NTksOCBAQCBjb25zdCB1bnNp Z25lZCBjaGFyIGtJbGxlZ2FsSW5zdHJ1Y3Rpb25bCisgI2lmIGRlZmluZWQoX19taXBzX18pCisg ICAvLyBtZmMyIHplcm8sSW1wbCAtIHVzdWFsbHkgaWxsZWdhbCBpbiB1c2Vyc3BhY2UuCisgICAw eDQ4LCAweDAwLCAweDAwLCAweDQ4CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAg MHgwMSwgMHgwMSwgMHgwMSwgMHgwMSAvLyBDcmFzaGVzIG9uIGEgdGVzdGVkIFBPV0VSOSBjcHUK KyAjZWxzZQorICAgLy8gVGhpcyBjcmFzaGVzIHdpdGggU0lHSUxMIG9uIHg4Ni94ODYtNjQvYXJt LgorICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZgorQEAgLTc1NCwxMCArNzU2LDEwIEBAIFRFU1Qo RXhjZXB0aW9uSGFuZGxlclRlc3QsIEluc3RydWN0aW9uUG8KKyAKKyAgIC8vIFRoZXNlIGFyZSBk ZWZpbmVkIGhlcmUgc28gdGhlIHBhcmVudCBjYW4gdXNlIHRoZW0gdG8gY2hlY2sgdGhlCisgICAv LyBkYXRhIGZyb20gdGhlIG1pbmlkdW1wIGFmdGVyd2FyZHMuCistICAvLyBVc2UgNGsgaGVyZSBi ZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgorKyAgLy8gVXNl IHRoZSBwYWdlIHNpemUgaGVyZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xl IHBhZ2UgZXZlbgorICAgLy8gaWYgYSBzbWFsbGVyIHNpemUgaXMgcmVxdWVzdGVkLCBhbmQgdGhp cyB0ZXN0IHdhbnRzIHRvCisgICAvLyB0ZXN0IHRoZSB1cHBlciBib3VuZCBvZiB0aGUgbWVtb3J5 IHJhbmdlLgorLSAgY29uc3QgdWludDMyX3Qga01lbW9yeVNpemUgPSA0MDk2OyAgLy8gYnl0ZXMK KysgIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gZ2V0cGFnZXNpemUoKTsgIC8vIGJ5dGVz CisgICBjb25zdCBpbnQga09mZnNldCA9IGtNZW1vcnlTaXplIC0gc2l6ZW9mKGtJbGxlZ2FsSW5z dHJ1Y3Rpb24pOworIAorICAgY29uc3QgcGlkX3QgY2hpbGQgPSBmb3JrKCk7CistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYworQEAgLTEzOCw3ICsx MzgsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgeworICAgICAgICAgICAgICAgICAgIGNvbnN0 IE1pY3JvZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJhX2luZm8sCisgICAgICAgICAgICAg ICAgICAgTGludXhEdW1wZXIqIGR1bXBlcikKKyAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0ID8g JmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAm JiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAg ICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwp LAorKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisg ICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5V TEwpLAorICNlbmRpZgorICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAorQEAgLTMzNyw2ICszMzks OCBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgeworICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1p cHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgorICNlbmRpZgorKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgY29uc3QgY2hhciBrQXJjaFtdID0gInBwYzY0 IjsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91 ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCitAQCAtNDA5LDcgKzQxMyw5IEBAIGNsYXNzIE1pY3Jv ZHVtcFdyaXRlciB7CisgICB2b2lkIER1bXBDUFVTdGF0ZSgpIHsKKyAgICAgUmF3Q29udGV4dENQ VSBjcHU7CisgICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOwor LSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4 dCgmY3B1LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOworKyNlbGlmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxs Q1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7CisgI2Vsc2UKKyAgICAg VUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0Xyk7CitAQCAtNjA1 LDcgKzYxMSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICB2b2lkKiBBbGxvYyh1bnNp Z25lZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2NhdG9yKCktPkFsbG9jKGJ5dGVzKTsg fQorIAorICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRfOworLSNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisrICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0 b3Jfc3RhdGVfOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCisgICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRf c3RhdGVfOworICNlbmRpZgorICAgTGludXhEdW1wZXIqIGR1bXBlcl87CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKKysrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5j YworQEAgLTI3OSwxMCArMjc5LDE5IEBAIFRFU1QoTWljcm9kdW1wV3JpdGVyVGVzdCwgQmFzaWNX aXRoTWFwcGkKKyAgIENyYXNoQW5kR2V0TWljcm9kdW1wKG1hcHBpbmdzLCBNaWNyb2R1bXBFeHRy YUluZm8oKSwgJmJ1Zik7CisgICBBU1NFUlRfVFJVRShDb250YWluc01pY3JvZHVtcChidWYpKTsK KyAKKysgIGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOworICNpZmRlZiBfX0xQNjRfXwor LSAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAorLSAgICAgICAgICAgIGJ1Zi5maW5kKCJN IDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKKy0g ICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxp YmZvby5zbyIpKTsKKysgIC8vIFRoaXMgdGVzdCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIGZv bGxvd2luZyBwYWdlIHNpemVzCisrICBBU1NFUlRfVFJVRSgocGFnZV9zaXplID09IDQwOTYpIHx8 IChwYWdlX3NpemUgPT0gNjU1MzYpKTsKKysgIGlmIChwYWdlX3NpemUgPT0gNDA5NikgeworKyAg ICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCisrICAgICAgICAgICAgICBidWYuZmluZCgi TSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCisr ICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYw IGxpYmZvby5zbyIpKTsKKysgIH0gZWxzZSB7CisrICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6 bnBvcywKKysgICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMTAwMDAgMDAwMDAw MDAwMDAwMDAyQSAwMDAwMDAwMDAwMDEwMDAwICIKKysgICAgICAgICAgICAgICAgICAgICAgICIz MzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOworKyAgfQorICNl bHNlCisgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCisgICAgICAgICAgICAgYnVmLmZp bmQoIk0gMDAwMDEwMDAgMDAwMDAwMkEgMDAwMDEwMDAgIgorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKK0BAIC0xMTcsNiArMTE3LDkgQEAgYm9v bCBMaW51eENvcmVEdW1wZXI6OkdldFRocmVhZEluZm9CeUluZAorICNlbGlmIGRlZmluZWQoX19t aXBzX18pCisgICBzdGFja19wb2ludGVyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7CisrI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAgcmVp bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhU X1BQQzY0X1JFR19TUF0pOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4g cG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKK0BAIC0yMTIsNyArMjE1LDEw IEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpFbnVtZXJhdGVUaHJlYWRzKCkKKyAgICAgICAgIG1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKFRocmVhZEluZm8pKTsKKyAgICAgICAgIGluZm8udGdpZCA9 IHN0YXR1cy0+cHJfcGdycDsKKyAgICAgICAgIGluZm8ucHBpZCA9IHN0YXR1cy0+cHJfcHBpZDsK Ky0jaWYgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMTsgaSsrKQorKyAgICAgICAgICAgIGluZm8ubWNv bnRleHQuZ3BfcmVnc1tpXSA9IHN0YXR1cy0+cHJfcmVnW2ldOworKyNlbGlmIGRlZmluZWQoX19t aXBzX18pCisgI2lmIGRlZmluZWQoX19BTkRST0lEX18pCisgICAgICAgICBmb3IgKGludCBpID0g RUZfUjA7IGkgPD0gRUZfUjMxOyBpKyspCisgICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3JlZ3Nb aSAtIEVGX1IwXSA9IHN0YXR1cy0+cHJfcmVnW2ldOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X2R1bXBlci5jYworQEAgLTc2NSw3ICs3NjUsOSBAQCBib29sIExpbnV4RHVtcGVy OjpHZXRTdGFja0luZm8oY29uc3Qgdm9pCisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90 Kj4oaW50X3N0YWNrX3BvaW50ZXIgJiB+KHBhZ2Vfc2l6ZSAtIDEpKTsKKyAKKyAgIC8vIFRoZSBu dW1iZXIgb2YgYnl0ZXMgb2Ygc3RhY2sgd2hpY2ggd2UgdHJ5IHRvIGNhcHR1cmUuCistICBzdGF0 aWMgY29uc3QgcHRyZGlmZl90IGtTdGFja1RvQ2FwdHVyZSA9IDMyICogMTAyNDsKKysgIC8vIFRo aXMgbm93IGRlcGVuZHMgb24gcGFnZV9zaXplIHRvIGF2b2lkIG1pc3NpbmcgZGF0YQorKyAgLy8g b24gc3lzdGVtcyB3aXRoIGxhcmdlciBwYWdlIHNpemVzLgorKyAgc3RhdGljIGNvbnN0IHB0cmRp ZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSA4ICogcGFnZV9zaXplOworIAorICAgY29uc3QgTWFwcGlu Z0luZm8qIG1hcHBpbmcgPSBGaW5kTWFwcGluZyhzdGFja19wb2ludGVyKTsKKyAgIGlmICghbWFw cGluZykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCitAQCAtNjMs NyArNjMsOCBAQCBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKKyAgKGRlZmluZWQoX19taXBz X18pICYmIF9NSVBTX1NJTSA9PSBfQUJJTzMyKQorIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9h dXhfZW50cnk7CisgI2VsaWYgZGVmaW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgXAorLSAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMy KQorKyAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBc CisrICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxm X2F1eF9lbnRyeTsKKyAjZW5kaWYKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYworQEAgLTUxLDYgKzUx LDggQEAKKyAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInJjeCIKKyAjZWxpZiBkZWZpbmVkKF9f bWlwc19fKQorICNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAiJDEiCisrI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKyNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicjgiCisgI2Vsc2UKKyAj ZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAj ZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVt cGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1 bXBlci5jYworQEAgLTE1NCwxOSArMTU0LDI3IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkNv cHlGcm9tUHJvY2VzcygKKyAgIHJldHVybiB0cnVlOworIH0KKyAKKy1ib29sIExpbnV4UHRyYWNl RHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQorLXsK Kytib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5m bywgcGlkX3QgdGlkKSB7CisgI2lmZGVmIFBUUkFDRV9HRVRSRUdTRVQKKyAgIHN0cnVjdCBpb3Zl YyBpbzsKKyAgIGluZm8tPkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwg JmlvLmlvdl9sZW4pOworLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAo dm9pZCopTlRfUFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0xKSB7CisrICBpZiAocHRyYWNlKFBU UkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAt MSkgeworICAgICByZXR1cm4gZmFsc2U7CisgICB9CisgCisgICBpbmZvLT5HZXRGbG9hdGluZ1Bv aW50UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOworLSAgaWYgKHN5c19wdHJh Y2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8p ID09IC0xKSB7CisrICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5U X0ZQUkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkgeworICAgICByZXR1cm4gZmFsc2U7CisgICB9 CisrCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIEdyYWIgdGhlIHZlY3RvciBy ZWdpc3RlcnMgb24gUFBDNjQgdG9vCisrICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlv dl9iYXNlLCAmaW8uaW92X2xlbik7CisrICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRp ZCwgKHZvaWQqKU5UX1BQQ19WTVgsICh2b2lkKikmaW8pID09IC0xKSB7CisrICAgIHJldHVybiBm YWxzZTsKKysgIH0KKysjZW5kaWYgLy8gZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworICAgcmV0 dXJuIHRydWU7CisgI2Vsc2UKKyAgIHJldHVybiBmYWxzZTsKK0BAIC0zMDMsNiArMzExLDkgQEAg Ym9vbCBMaW51eFB0cmFjZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SQorICNlbGlmIGRlZmluZWQo X19taXBzX18pCisgICBzdGFja19wb2ludGVyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVp bnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7Cisr I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAg cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05U RVhUX1BQQzY0X1JFR19TUF0pOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJl ZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVz dC5jYworQEAgLTQ2Miw2ICs0NjIsOSBAQCBURVNUKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgVmVy aWZ5U3RhY2tSCisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgICAgcGlkX3QqIHByb2Nlc3Nf dGlkX2xvY2F0aW9uID0KKyAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhy ZWFkLm1jb250ZXh0LmdyZWdzWzFdKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9CisrICAgICAgICByZWludGVycHJldF9j YXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncF9yZWdzWzhdKTsKKyAjZWxzZQorICNl cnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgorICNl bmRpZgorQEAgLTU1OSw2ICs1NjIsOCBAQCBURVNUX0YoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBT YW5pdGl6ZVN0CisgICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ucmVncy5yY3g7 CisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJl YWRfaW5mby5tY29udGV4dC5ncmVnc1sxXTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3BfcmVnc1s4 XTsKKyAjZWxzZQorICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlz IHBsYXRmb3JtLgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21p bmlkdW1wX3dyaXRlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlk dW1wX3dyaXRlci5jYworQEAgLTEzNiw3ICsxMzYsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7 CisgICAgICAgOiBmZF8obWluaWR1bXBfZmQpLAorICAgICAgICAgcGF0aF8obWluaWR1bXBfcGF0 aCksCisgICAgICAgICB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVM TCksCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisr I2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4 dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKKysjZWxpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAgZmxvYXRfc3RhdGVfKGNv bnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKKyAjZW5kaWYKKyAgICAgICAg IGR1bXBlcl8oZHVtcGVyKSwKK0BAIC00NjgsNyArNDcwLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0 ZXIgeworICAgICAgICAgaWYgKCFjcHUuQWxsb2NhdGUoKSkKKyAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgbXlfbWVtc2V0KGNwdS5nZXQoKSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRD UFUpKTsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZp bGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKKysjZWxp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAg VUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCBmbG9h dF9zdGF0ZV8pOworICNlbHNlCisgICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRl eHQoY3B1LmdldCgpLCB1Y29udGV4dF8pOworQEAgLTg5Nyw3ICs5MDEsNyBAQCBjbGFzcyBNaW5p ZHVtcFdyaXRlciB7CisgICAgIGRpcmVudC0+bG9jYXRpb24ucnZhID0gMDsKKyAgIH0KKyAKKy0j aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGJvb2wgV3Jp dGVDUFVJbmZvcm1hdGlvbihNRFJhd1N5c3RlbUluZm8qIHN5c19pbmZvKSB7CisgICAgIGNoYXIg dmVuZG9yX2lkW3NpemVvZihzeXNfaW5mby0+Y3B1Lng4Nl9jcHVfaW5mby52ZW5kb3JfaWQpICsg MV0gPSB7MH07CisgICAgIHN0YXRpYyBjb25zdCBjaGFyIHZlbmRvcl9pZF9uYW1lW10gPSAidmVu ZG9yX2lkIjsKK0BAIC05MTcsNyArOTIxLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworIAor ICAgICAvLyBwcm9jZXNzb3JfYXJjaGl0ZWN0dXJlIHNob3VsZCBhbHdheXMgYmUgc2V0LCBkbyB0 aGlzIGZpcnN0CisgICAgIHN5c19pbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlID0KKy0jaWYg ZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAg TURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NDsKKysjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICMg aWYgX01JUFNfU0lNID09IF9BQklPMzIKKyAgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfTUlQ UzsKKyAjIGVsaWYgX01JUFNfU0lNID09IF9BQkk2NAorQEAgLTEzMzMsNyArMTMzOSw5IEBAIGNs YXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAgIGNvbnN0IGNoYXIqIHBhdGhfOyAgLy8gUGF0aCB0byB0 aGUgZmlsZSB3aGVyZSB0aGUgbWluaWR1bSBzaG91bGQgYmUgd3JpdHRlbi4KKyAKKyAgIGNvbnN0 IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsgIC8vIGFsc28gZnJvbSB0aGUgc2lnbmFsIGhh bmRsZXIKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykK KysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2 c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJ X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0 YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsgIC8vIGRpdHRvCisgI2VuZGlmCisgICBMaW51eER1 bXBlciogZHVtcGVyXzsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVt cF93cml0ZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dy aXRlci5oCitAQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyOworIAorICNp ZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIHR5cGVkZWYgc3RydWN0IGZwc2ltZF9jb250ZXh0IGZw c3RhdGVfdDsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrdHlwZWRlZiB2cnJlZ3Nl dF90IHZzdGF0ZV90OworICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQo X19taXBzX18pCisgdHlwZWRlZiBzdGQ6OnJlbW92ZV9wb2ludGVyPGZwcmVnc2V0X3Q+Ojp0eXBl IGZwc3RhdGVfdDsKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9t aW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKK0BAIC03MTUsNiArNzE1LDEyIEBAIFRF U1QoTWluaWR1bXBXcml0ZXJUZXN0LCBJbnZhbGlkU3RhY2tQb2kKKyAjZWxpZiBkZWZpbmVkKF9f bWlwc19fKQorICAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRf TUlQU19SRUdfU1BdID0KKyAgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3Jl Z3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50 ZXI7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgY29udGV4dC5jb250ZXh0LnVj X21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdID0KKysgICAgICBpbnZh bGlkX3N0YWNrX3BvaW50ZXI7CisgI2Vsc2UKKyAjIGVycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBi ZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBw ZWRfZmlsZS5jYworQEAgLTY1LDggKzY1LDcgQEAgYm9vbCBNZW1vcnlNYXBwZWRGaWxlOjpNYXAo Y29uc3QgY2hhciogcAorICAgfQorIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IFwKKy0gICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lN ID09IF9BQkk2NCkKKy0KKysgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9B Qkk2NCkgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgc3RydWN0IGtlcm5lbF9zdGF0IHN0 OworICAgaWYgKHN5c19mc3RhdChmZCwgJnN0KSA9PSAtMSB8fCBzdC5zdF9zaXplIDwgMCkgewor ICNlbHNlCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYworQEAgLTE3 Niw5ICsxNzYsMTAgQEAgVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBSZW1hcEFmdGVyTQor IFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgTWFwV2l0aE9mZnNldCkgeworICAgLy8gUHV0 IG1vcmUgZGF0YSBpbiB0aGUgdGVzdCBmaWxlIHRoaXMgdGltZS4gT2Zmc2V0cyBjYW4gb25seSBi ZQorICAgLy8gZG9uZSBvbiBwYWdlIGJvdW5kYXJpZXMsIHNvIHdlIG5lZWQgYSB0d28gcGFnZSBm aWxlIHRvIHRlc3QgdGhpcy4KKy0gIGNvbnN0IGludCBwYWdlX3NpemUgPSA0MDk2OworLSAgY2hh ciBkYXRhMVsyICogcGFnZV9zaXplXTsKKy0gIHNpemVfdCBkYXRhMV9zaXplID0gc2l6ZW9mKGRh dGExKTsKKysgIGNvbnN0IGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOworKyAgY2hhciAq ZGF0YTEgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKDIgKiBwYWdlX3NpemUpKTsKKysgIEVY UEVDVF9UUlVFKGRhdGExICE9IE5VTEwpOworKyAgc2l6ZV90IGRhdGExX3NpemUgPSAoMiAqIHBh Z2Vfc2l6ZSk7CisgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRhdGExX3NpemU7ICsraSkgewor ICAgICBkYXRhMVtpXSA9IGkgJiAweDdmOworICAgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9j YXRvcl91bml0dGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5j YworQEAgLTU3LDggKzU3LDkgQEAgVEVTVChQYWdlQWxsb2NhdG9yVGVzdCwgTGFyZ2VPYmplY3Qp IHsKKyAKKyAgIEVYUEVDVF9FUSgwVSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKKyAg IHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2Mo MTAwMDApKTsKKysgIHVpbnQ2NF90IGV4cGVjdGVkX3BhZ2VzID0gMSArICgoMTAwMDAgLSAxKSAv IGdldHBhZ2VzaXplKCkpOworICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7CistICBFWFBFQ1Rf RVEoM1UsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7CisrICBFWFBFQ1RfRVEoZXhwZWN0 ZWRfcGFnZXMsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7CisgICBmb3IgKHVuc2lnbmVk IGkgPSAxOyBpIDwgMTA7ICsraSkgeworICAgICB1aW50OF90KiBwID0gcmVpbnRlcnByZXRfY2Fz dDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKGkpKTsKKyAgICAgQVNTRVJUX0ZBTFNFKHAgPT0g TlVMTCk7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9j ZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKK0BAIC0yMDIsMTIgKzIwMiwxNCBAQCBib29s IEV4cGxvaXRhYmlsaXR5TGludXg6OkVuZGVkT25JbGxlZ2FsCisgICAvLyBDaGVjayBhcmNoaXRl Y3R1cmUgYW5kIHNldCBhcmNoaXRlY3R1cmUgdmFyaWFibGUgdG8gY29ycmVzcG9uZGluZyBmbGFn CisgICAvLyBpbiBvYmpkdW1wLgorICAgc3dpdGNoIChjb250ZXh0LT5HZXRDb250ZXh0Q1BVKCkp IHsKKysjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpCisgICAgIGNhc2Ug TURfQ09OVEVYVF9YODY6CisgICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODYiOworICAgICAgIGJy ZWFrOworICAgICBjYXNlIE1EX0NPTlRFWFRfQU1ENjQ6CisgICAgICAgYXJjaGl0ZWN0dXJlID0g ImkzODY6eDg2LTY0IjsKKyAgICAgICBicmVhazsKKysjZW5kaWYKKyAgICAgZGVmYXVsdDoKKyAg ICAgICAvLyBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuIE5vdGUgdGhhdCBBUk0gYXJjaGl0ZWN0 dXJlcyBhcmUgbm90CisgICAgICAgLy8gc3VwcG9ydGVkIGJlY2F1c2Ugb2JqZHVtcCBkb2VzIG5v dCBzdXBwb3J0IEFSTS4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYworQEAgLTEwNCw2ICsx MDQsOCBAQCBFeHBsb2l0YWJpbGl0eUZvcihjb25zdCBzdHJpbmcmIGZpbGVuYW1lCisgfQorIAor IFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgeworKy8vIFRoZSBm b2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXgg bWFjaGluZS4KKysjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRl ZmluZWQoX194ODZfNjQpKQorICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFC SUxJVFlfSElHSCwKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigiYXNjaWlfcmVhZF9h di5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9I SUdILAorQEAgLTEzNiw5ICsxMzgsMTIgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RX aW5kb3dzRW5naQorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Nsb2Ji ZXJfd3JpdGUuZG1wIikpOworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFC SUxJVFlfTE9XLAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2NvbmRp dGlvbmFsLmRtcCIpKTsKKysjZW5kaWYKKyB9CisgCisgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3Qs IFRlc3RMaW51eEVuZ2luZSkgeworKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhl Y3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KKysjaWYgZGVmaW5lZChfX2kz ODYpIHx8IGRlZmluZWQoX194ODZfNjQpCisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpF WFBMT0lUQUJJTElUWV9JTlRFUkVTVElORywKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZv cigibGludXhfbnVsbF9yZWFkX2F2LmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtw YWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCitAQCAtMTcxLDcgKzE3Niw4IEBAIFRFU1QoRXhwbG9p dGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0 eUZvcigibGludXhfZXhlY3V0YWJsZV9oZWFwLmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVf YnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxp dHlGb3IoImxpbnV4X2ptcF90b19tb2R1bGVfbm90X2V4ZV9yZWdpb24uZG1wIikpOworLSNpZm5k ZWYgX1dJTjMyCisrI2VuZGlmCisrI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19p Mzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6 OkVYUExPSVRBQklMSVRZX0hJR0gsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxp bnV4X3dyaXRlX3RvX25vbndyaXRhYmxlX21vZHVsZS5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29v Z2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorQEAgLTE4MiwxMCArMTg4LDEwIEBA IFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUKKyAgICAgICAgICAgICBF eHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fb3V0c2lkZV9tb2R1bGVfdmlhX21hdGgu ZG1wIikpOworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5U RVJFU1RJTkcsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3Rv X3VuZGVyXzRrLmRtcCIpKTsKKy0jZW5kaWYgIC8vIF9XSU4zMgorKyNlbmRpZiAgLy8gIWRlZmlu ZWQoX1dJTjMyKSAmJiAoIWRlZmluZWQoX19pMzg2KSAmJiAhZGVmaW5lZChfX3g4Nl82NCkpCisg fQorIAorLSNpZm5kZWYgX1dJTjMyCisrI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQo X19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKKyBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhV dGlsc1Rlc3QsIERpc2Fzc2VtYmxlQnl0ZXNUZXN0KSB7CisgICBBU1NFUlRfRkFMU0UoRXhwbG9p dGFiaWxpdHlMaW51eFRlc3Q6OkRpc2Fzc2VtYmxlQnl0ZXMoIiIsIE5VTEwsIDUsIE5VTEwpKTsK KyAgIHVpbnQ4X3QgYnl0ZXNbNl0gPSB7MHhjNywgMHgwLCAweDUsIDB4MCwgMHgwLCAweDB9Owor QEAgLTMwMSw2ICszMDcsNyBAQCBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIENh bGN1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmd3JpdGVfYWRkcmVzcykpOworIH0KKy0jZW5kaWYgIC8vIF9XSU4z MgorKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRl ZmluZWQoX194ODZfNjQpKQorKworIAorIH0gIC8vIG5hbWVzcGFjZQorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51 eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21p bmlkdW1wLTItY29yZS5jYworQEAgLTc3LDYgKzc3LDggQEAKKyAgICNkZWZpbmUgRUxGX0FSQ0gg IEVNX01JUFMKKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAgI2RlZmluZSBFTEZfQVJD SCAgRU1fQUFSQ0g2NAorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICNkZWZpbmUg RUxGX0FSQ0ggIEVNX1BQQzY0CisgI2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19hcm1fXykKK0BA IC04Nyw2ICs4OSw4IEBAIHR5cGVkZWYgdXNlcl9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7CisgI2Vs aWYgZGVmaW5lZCAoX19taXBzX18pCisgLy8gVGhpcyBmaWxlLWxvY2FsIHR5cGVkZWYgc2ltcGxp ZmllcyB0aGUgc291cmNlIGNvZGUuCisgdHlwZWRlZiBncmVnc2V0X3QgdXNlcl9yZWdzX3N0cnVj dDsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrdHlwZWRlZiBzdHJ1Y3QgcHRfcmVn cyB1c2VyX3JlZ3Nfc3RydWN0OworICNlbmRpZgorIAorIHVzaW5nIGdvb2dsZV9icmVha3BhZDo6 TURUeXBlSGVscGVyOworQEAgLTMyMiw2ICszMjYsMTIgQEAgc3RydWN0IENyYXNoZWRQcm9jZXNz IHsKKyAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAgdXNlcl9mcHNpbWRfc3RydWN0IGZw cmVnczsKKyAjZW5kaWYKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBtY29udGV4 dF90IG1jb250ZXh0OworKyNlbmRpZgorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAg IG1jb250ZXh0X3QgbWNvbnRleHQ7CisrI2VuZGlmCisgICAgIHVpbnRwdHJfdCBzdGFja19hZGRy OworICAgICBjb25zdCB1aW50OF90KiBzdGFjazsKKyAgICAgc2l6ZV90IHN0YWNrX2xlbmd0aDsK K0BAIC01MzUsNiArNTQ1LDM4IEBAIFBhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNz OjpUaHIKKyAgIHRocmVhZC0+bWNvbnRleHQuZnBjX2VpciA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUu ZmlyOworICNlbmRpZgorIH0KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrc3RhdGlj IHZvaWQKKytQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJl YWQsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3QgTWluaWR1bXBNZW1vcnlSYW5nZSYgcmFu Z2UpIHsKKysgIGNvbnN0IE1EUmF3Q29udGV4dFBQQzY0KiByYXdyZWdzID0gcmFuZ2UuR2V0RGF0 YTxNRFJhd0NvbnRleHRQUEM2ND4oMCk7CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NP TlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCisrICAgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVn c1tpXSA9IHJhd3JlZ3MtPmdwcltpXTsKKysKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQ VF9MTktdID0gcmF3cmVncy0+bHI7CisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTklQ XSA9IHJhd3JlZ3MtPnNycjA7CisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXSA9 IHJhd3JlZ3MtPnNycjE7CisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXSA9IHJh d3JlZ3MtPmNyOworKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0gPSByYXdyZWdz LT54ZXI7CisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXSA9IHJhd3JlZ3MtPmN0 cjsKKysgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnNhdmUgPSByYXdyZWdzLT52cnNhdmU7 CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9D T1VOVDsgaSsrKQorKyAgICAgIHRocmVhZC0+bWNvbnRleHQuZnBfcmVnc1tpXSA9IHJhd3JlZ3Mt PmZsb2F0X3NhdmUuZnByZWdzW2ldOworKworKyAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW05G UFJFRy0xXSA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZnBzY3I7CisrCisrICBmb3IgKGludCBpID0g MDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKSB7CisrICAgICAgdGhy ZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVswXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZl LnNhdmVfdnJbaV0uaGlnaCA+PiAzMjsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+ dnJyZWdzW2ldWzFdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoOworKyAg ICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMl0gPSByYXdyZWdzLT52ZWN0 b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdyA+PiAzMjsKKysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZf cmVncy0+dnJyZWdzW2ldWzNdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3c7 CisrICB9CisrCisrICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnNjci52c2NyX3dvcmQgPSBy YXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IubG93ICYgMHhGRkZGRkZGRjsKKyt9CisrCisg I2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxh dGZvcm0geWV0IgorICNlbmRpZgorQEAgLTYyMyw2ICs2NjUsMTIgQEAgUGFyc2VTeXN0ZW1JbmZv KGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMsCisgIyBlbHNlCisgIyAgZXJyb3IgIlRoaXMgbWlwcyBB QkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCisgIyBlbmRpZgorKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGlmIChzeXNpbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0 dXJlICE9IE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBDNjQpIHsKKysgICAgZnByaW50ZihzdGRlcnIs CisrICAgICAgICAgICAgIlRoaXMgdmVyc2lvbiBvZiBtaW5pZHVtcC0yLWNvcmUgb25seSBzdXBw b3J0cyBQUEM2NC5cbiIpOworKyAgICBleGl0KDEpOworKyAgfQorICNlbHNlCisgI2Vycm9yICJU aGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5k aWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9DT05UUklCVVRPUlMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKK0BAIC0xMywzICsxMyw0IEBAIE1hcmsg TWVudG92YWkgPG1hcmtAY2hyb21pdW0ub3JnPgorIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9t aXVtLm9yZz4KKyBTY290dCBHcmFoYW0gPHNjb3R0bWdAY2hyb21pdW0ub3JnPgorIEpvc2h1YSBQ ZXJhemEgPGpwZXJhemFAY2hyb21pdW0ub3JnPgorK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5h c3Rhcy5pbz4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNl ci5oCitAQCAtMTUsNiArMTUsNyBAQAorICNpZm5kZWYgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZ U19VU0VSX0hfCisgI2RlZmluZSBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KKyAK KysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAjaW5jbHVkZV9uZXh0IDxzeXMvdXNlci5oPgorIAorICNp bmNsdWRlIDxmZWF0dXJlcy5oPgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlk dW1wL21pbmlkdW1wX2NvbnRleHQuaAorQEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlk dW1wQ29udGV4dE1JUFM2NCB7CisgICB1aW50NjRfdCBmaXI7CisgfTsKKyAKKysvLyEgXGJyaWVm IHBwYzY0LXNwZWNpZmljIGZsYWdzIGZvciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCisr Ly8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKKytlbnVtIE1p bmlkdW1wQ29udGV4dFBQQzY0RmxhZ3MgOiB1aW50MzJfdCB7CisrICAvLyEgXGJyaWVmIElkZW50 aWZpZXMgdGhlIGNvbnRleHQgYXMgUFBDNjQuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAw eDAxMDAwMDAwLAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdl bmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCisrICAvLyEKKysgIC8vISBSZWdpc3RlcnMgYHIwYC1g cjMxYCwgYG5pcGAsIGBtc3JgLCBgbHJgLCBldGMuIGFyZSB2YWxpZC4KKysgIGtNaW5pZHVtcENv bnRleHRQUEM2NEJhc2UgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAorKwor KyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJl Z2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAg YXJlIHZhbGlkLgorKyAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBD b250ZXh0UFBDNjQgfCAweDAwMDAwMDA4LAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhl IHZhbGlkaXR5IG9mIEFsdGl2ZWMvVk1YIHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lz dGVycyBgdjBgLWB2MzFgLCBgdnNjcmAsIGB2cnNhdmVgLgorKyAga01pbmlkdW1wQ29udGV4dFBQ QzY0VmVjdG9yID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKKysKKysgIC8v ISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCisrICBrTWlu aWR1bXBDb250ZXh0UFBDNjRBbGwgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAgICB8Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGlu ZyB8CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRW ZWN0b3IKKyt9OworKworKy8vISBcYnJpZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGlu IGEgbWluaWR1bXAgZmlsZS4KKysvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJv bSBicmVha3BhZC4KKytzdHJ1Y3QgTWluaWR1bXBDb250ZXh0UFBDNjQgeworKyAgdWludDY0X3Qg Y29udGV4dF9mbGFnczsKKysKKysgIC8vISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVy cy4KKysgIHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3Nb MzJdOworKyAgdWludDY0X3QgY2NyOworKyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3QgbG5r OworKyAgdWludDY0X3QgY3RyOworKworKyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2ludCByZWdp c3RlcnMuCisrICBkb3VibGUgZnByZWdzWzMyXTsKKysKKysgIC8vISBcYnJpZWYgRlBVIHN0YXR1 cyByZWdpc3Rlci4KKysgIGRvdWJsZSBmcHNjcjsKKysKKysgIC8vISBcYnJpZWYgQWx0aXZlYy9W TVggdmVjdG9yIHJlZ2lzdGVycy4KKysgIHN0cnVjdCB7CisrICAgICAgLy8hIFxicmllZiBWZWN0 b3IgcmVnaXN0ZXJzIGFyZSAxMjhiaXRzLgorKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJb MzJdOworKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnNjcjsKKysKKysgICAgICAvLyEgXGJy aWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCisrICAgICAg dWludDMyX3Qgc2F2ZV9wYWQ1WzRdOworKworKyAgICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lz dGVyLgorKyAgICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOworKworKyAgICAgIC8vISBcYnJpZWYg UGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KKysgICAgICB1aW50 MzJfdCBzYXZlX3BhZDZbN107CisrICB9IHZyZWdzOworK307CisrCisgfSAgLy8gbmFtZXNwYWNl IGNyYXNocGFkCisgCisgI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05U RVhUX0hfCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYworQEAgLTEwMSw2ICsxMDEsMTMgQEAgTWluaWR1bXBD b250ZXh0V3JpdGVyOjpDcmVhdGVGcm9tU25hcHNobworICAgICAgIGJyZWFrOworICAgICB9Cisg CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OiB7CisrICAgICAgY29udGV4dCA9IHN0 ZDo6bWFrZV91bmlxdWU8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI+KCk7CisrICAgICAgcmVp bnRlcnByZXRfY2FzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcio+KGNvbnRleHQuZ2V0KCkp CisrICAgICAgICAgIC0+SW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnRleHRfc25hcHNob3QtPnBw YzY0KTsKKysgICAgICBicmVhazsKKysgICAgfQorKworICAgICBkZWZhdWx0OiB7CisgICAgICAg TE9HKEVSUk9SKSA8PCAidW5rbm93biBjb250ZXh0IGFyY2hpdGVjdHVyZSAiCisgICAgICAgICAg ICAgICAgICA8PCBjb250ZXh0X3NuYXBzaG90LT5hcmNoaXRlY3R1cmU7CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXIuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVy LmgKK0BAIC0zMTUsNiArMzE1LDQ1IEBAIGNsYXNzIE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRl ciBmaW5hbAorICAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2 NFdyaXRlcik7CisgfTsKKyAKKytjbGFzcyBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5h bCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgeworKyBwdWJsaWM6CisrICBNaW5pZHVt cENvbnRleHRQUEM2NFdyaXRlcigpOworKyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkg b3ZlcnJpZGU7CisrCisrICAvLyEgXGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4 dFBQQzY0IGJhc2VkIG9uIFxhIGNvbnRleHRfc25hcHNob3QuCisrICAvLyEKKysgIC8vISBccGFy YW1baW5dIGNvbnRleHRfc25hcHNob3QgVGhlIGNvbnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNv dXJjZSBkYXRhLgorKyAgLy8hCisrICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUu IE5vIG11dGF0aW9uIG9mIGNvbnRleHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUKKysgIC8vISAgICAg Y2FsbGluZyB0aGlzIG1ldGhvZCwgYW5kIGl0IGlzIG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8g YWx0ZXIKKysgIC8vISAgICAgY29udGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCisr ICB2b2lkIEluaXRhbGl6ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRl eHRfc25hcHNob3QpOworKworKyAgLy8hIFxicmllZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUg Y29udGV4dCBzdHJ1Y3R1cmUgdGhhdCB0aGlzIG9iamVjdCB3aWxsCisrICAvLyEgICAgIHdyaXRl LgorKyAgLy8hCisrICAvLyEgXGF0dGVudGlvbiBUaGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBw b2ludGVyIHRvIHRoaXMgb2JqZWN04oCZcyBwcml2YXRlCisrICAvLyEgICAgIGRhdGEgc28gdGhh dCBhIGNhbGxlciBjYW4gcG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGRpcmVjdGx5Lgor KyAgLy8hICAgICBUaGlzIGlzIGRvbmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFj ZXMgdG8gZWFjaCBmaWVsZCBpbiB0aGUKKysgIC8vISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291 bGQgYmUgdW53aWVsZHkgYW5kIGN1bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0YWtlbgorKyAgLy8h ICAgICB0byBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29u dGV4dCBzdHJ1Y3R1cmUKKysgIC8vISAgICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRo aXMgb2JqZWN0IGlzIGluIHRoZSAja1N0YXRlTXV0YWJsZQorKyAgLy8hICAgICBzdGF0ZS4KKysg IE1pbmlkdW1wQ29udGV4dFBQQzY0KiBjb250ZXh0KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9Cisr CisrIHByb3RlY3RlZDoKKysgIC8vIE1pbmlkdW1wV3JpdGFibGU6CisrICBib29sIFdyaXRlT2Jq ZWN0KEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBvdmVycmlkZTsKKysKKysgIC8v IE1pbmlkdW1wQ29udGV4dFdyaXRlcjoKKysgIHNpemVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92 ZXJyaWRlOworKworKyBwcml2YXRlOgorKyAgTWluaWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87 CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0 ZXIpOworK307CisrCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlmICAvLyBD UkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX1dSSVRFUl9IXworLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0 X3dyaXRlcl90ZXN0LmNjCitAQCAtMjEzLDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1wQ29udGV4 dFdyaXRlciwgTUlQUzY0X0Zyb21TCisgICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250 ZXh0TUlQUzY0LCBrU2VlZCk7CisgfQorIAorK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBQ UEM2NF9aZXJvcykgeworKyAgRW1wdHlDb250ZXh0VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAorKyAgICBFeHBlY3RNaW5pZHVtcENvbnRleHRQ UEM2NCk7CisrfQorKworK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9Gcm9tU25h cHNob3QpIHsKKysgIGNvbnN0ZXhwciB1aW50MzJfdCBrU2VlZCA9IDY0OworKyAgQ1BVQ29udGV4 dFBQQzY0IGNvbnRleHRfcHBjNjQ7CisrICBDUFVDb250ZXh0IGNvbnRleHQ7CisrICBjb250ZXh0 LnBwYzY0ID0gJmNvbnRleHRfcHBjNjQ7CisrICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KCZj b250ZXh0LCBrU2VlZCk7CisrICBGcm9tU25hcHNob3RUZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0 V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCisrICAgICAgY29udGV4dCwgRXhwZWN0TWlu aWR1bXBDb250ZXh0UFBDNjQsIGtTZWVkKTsKKyt9CisrCisgfSAgLy8gbmFtZXNwYWNlCisgfSAg Ly8gbmFtZXNwYWNlIHRlc3QKKyB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZv X3dyaXRlci5jYworQEAgLTEzNSw2ICsxMzUsOCBAQCBzdGQ6OnN0cmluZyBNaW5pZHVtcE1pc2NJ bmZvRGVidWdCdWlsZFN0CisgICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHMi OworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQUzY0RUwpCisgICBzdGF0aWMgY29uc3RleHBy IGNoYXIga0NQVVtdID0gIm1pcHM2NCI7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkK KysgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAicHBjNjQiOworICNlbHNlCisgI2Vy cm9yIGRlZmluZSBrQ1BVIGZvciB0aGlzIENQVQorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVf bWVtb3J5LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKK0BAIC0xMTIsNiArMTEyLDEx IEBAIHZvaWQgQ2FwdHVyZU1lbW9yeTo6UG9pbnRlZFRvQnlDb250ZXh0KGMKKyAgIGZvciAoc2l6 ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgewor ICAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5y ZWdzW2ldKTsKKyAgIH0KKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysg IE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsK KysgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdz KTsgKytpKSB7CisrICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4 dC5wcGM2NC0+cmVnc1tpXSk7CisrICB9CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJl LmgKK0BAIC00Myw3ICs0MywxMCBAQCBlbnVtIENQVUFyY2hpdGVjdHVyZSB7CisgICBrQ1BVQXJj aGl0ZWN0dXJlTUlQU0VMLAorIAorICAgLy8hIFxicmllZiA2NC1iaXQgTUlQU0VMLgorLSAga0NQ VUFyY2hpdGVjdHVyZU1JUFM2NEVMCisrICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwsCisrCisr ICAvLyEgXGJyaWVmIDY0LWJpdCBQUEM2NC4KKysgIGtDUFVBcmNoaXRlY3R1cmVQUEM2NAorIH07 CisgCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYworQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50NjRfdCBD UFVDb250ZXh0OjpJbnN0cnVjdGlvblBvaW50ZXIoCisgICAgICAgcmV0dXJuIGFybS0+cGM7Cisg ICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgorICAgICAgIHJldHVybiBhcm02NC0+cGM7 CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgorKyAgICAgIHJldHVybiBwcGM2NC0+ bmlwOworICAgICBkZWZhdWx0OgorICAgICAgIE5PVFJFQUNIRUQoKTsKKyAgICAgICByZXR1cm4g fjB1bGw7CitAQCAtMTg1LDYgKzE4Nyw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9p bnRlcigpIGNvbnMKKyAgICAgICByZXR1cm4gYXJtLT5zcDsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0 ZWN0dXJlQVJNNjQ6CisgICAgICAgcmV0dXJuIGFybTY0LT5zcDsKKysgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlUFBDNjQ6CisrICAgICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOworICAgICBkZWZh dWx0OgorICAgICAgIE5PVFJFQUNIRUQoKTsKKyAgICAgICByZXR1cm4gfjB1bGw7CitAQCAtMTk2 LDYgKzIwMCw3IEBAIGJvb2wgQ1BVQ29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKKyAgICAgY2Fz ZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2XzY0OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02 NDoKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUw6CisrICAgIGNhc2Uga0NQVUFy Y2hpdGVjdHVyZVBQQzY0OgorICAgICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIGtDUFVBcmNo aXRlY3R1cmVYODY6CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKKy0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9j cHVfY29udGV4dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAorQEAgLTM1Miw2ICszNTIsMjQg QEAgc3RydWN0IENQVUNvbnRleHRNSVBTNjQgeworICAgdWludDY0X3QgZmlyOworIH07CisgCisr Ly8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJlIGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4K KytzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0IHsKKysgIHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90 IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0X3QgY2NyOworKyAgdWludDY0 X3QgeGVyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3QgY3RyOworKyAgZG91YmxlIGZw cmVnc1szMl07CisrICBkb3VibGUgZnBzY3I7CisrICBzdHJ1Y3QgeworKyAgICB1aW50MTI4X3N0 cnVjdCBzYXZlX3ZyWzMyXTsKKysgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOworKyAgICB1 aW50MzJfdCBzYXZlX3Zyc2F2ZTsKKysgIH0gdnJlZ3M7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEg Y29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJsZSBvZiBjYXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkg c3VwcG9ydGVkCisgLy8hICAgICBDUFUgYXJjaGl0ZWN0dXJlLgorIHN0cnVjdCBDUFVDb250ZXh0 IHsKK0BAIC0zODIsNiArNDAwLDcgQEAgc3RydWN0IENQVUNvbnRleHQgeworICAgICBDUFVDb250 ZXh0QVJNNjQqIGFybTY0OworICAgICBDUFVDb250ZXh0TUlQUyogbWlwc2VsOworICAgICBDUFVD b250ZXh0TUlQUzY0KiBtaXBzNjQ7CisrICAgIENQVUNvbnRleHRQUEM2NCogcHBjNjQ7CisgICB9 OworIH07CisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKK0BAIC0xNSw2ICsxNSw3IEBACisgI2lmbmRlZiBD UkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVfQ09OVEVYVF9MSU5VWF9IXworICNkZWZpbmUgQ1JB U0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8KKyAKKysjaW5jbHVkZSA8 Y3N0cmluZz4KKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgI2luY2x1ZGUgInNu YXBzaG90L2NwdV9jb250ZXh0LmgiCisgI2luY2x1ZGUgInNuYXBzaG90L2xpbnV4L3NpZ25hbF9j b250ZXh0LmgiCitAQCAtMTc0LDYgKzE3NSw3NiBAQCB2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0 TUlQUygKKyAKKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX01JUFNfRkFNSUxZIHx8IERPWFlHRU4KKyAK KysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpIHx8IERPWFlHRU4KKysKKysvLyEg XGJyaWVmIEluaXRhbGl6ZXMgYSBDUFVDb250ZXh0UFBDNjQgc3RydWN0dXJlIGZyb20gbmF0aXZl IGNvbnRleHQKKysvLyEgICAgIHN0cnVjdHVyZXMgb24gTGludXguCisrLy8hCisrLy8hIFxwYXJh bVtpbl0gdGhyZWFkX2NvbnRleHQgVGhlIG5hdGl2ZSB0aHJlYWQgY29udGV4dC4KKysvLyEgXHBh cmFtW2luXSBmbG9hdF9jb250ZXh0IFRoZSBuYXRpdmUgZmxvYXQgY29udGV4dC4KKysvLyEgXHBh cmFtW2luXSB2ZWN0b3JfY29udGV4dCBUaGUgbmF0aXZlIHZlY3RvciBjb250ZXh0LgorKy8vISBc cGFyYW1bb3V0XSBjb250ZXh0IFRoZSBDUFVDb250ZXh0UFBDNjQgc3RydWN0dXJlIHRvIGluaXRh bGl6ZS4KKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgorK3ZvaWQgSW5pdGlhbGl6ZUNQVUNv bnRleHRQUEM2NCgKKysgICAgY29uc3QgVGhyZWFkQ29udGV4dDo6dDY0X3QmIHRocmVhZF9jb250 ZXh0LAorKyAgICBjb25zdCBGbG9hdENvbnRleHQ6OmY2NF90JiBmbG9hdF9jb250ZXh0LAorKyAg ICBjb25zdCBWZWN0b3JDb250ZXh0Ojp2NjRfdCYgdmVjdG9yX2NvbnRleHQsCisrICAgIHR5cGVu YW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4dCkgeworKworKyAgbWVtY3B5KGNvbnRleHQt PnJlZ3MsIHRocmVhZF9jb250ZXh0Lmdwciwgc2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKKysgIGNv bnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsKKysgIGNvbnRleHQtPm1zciA9IHRocmVh ZF9jb250ZXh0Lm1zcjsKKysgIGNvbnRleHQtPmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKKysg IGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0LnhlcjsKKysgIGNvbnRleHQtPmxuayA9IHRo cmVhZF9jb250ZXh0LmxuazsKKysgIGNvbnRleHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsK KysKKysgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZsb2F0X2NvbnRleHQuZnByZWdzLCBzaXpl b2YoY29udGV4dC0+ZnByZWdzKSk7CisrICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQu ZnBzY3I7CisrCisrICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7CisrICAgIGNv bnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7CisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2Nv bnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJy ZWdzW2ldWzFdLAorKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsy XSkgPDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQorKyAgICB9 OworKyAgfQorKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52 cnNhdmU7CisrICBjb250ZXh0LT52cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rv cl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFRy YWl0cz4KKyt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoCisrICAgIGNvbnN0IFNpZ25h bFRocmVhZENvbnRleHQ2NCAmdGhyZWFkX2NvbnRleHQsCisrICAgIGNvbnN0IFNpZ25hbEZsb2F0 Q29udGV4dDY0ICZmbG9hdF9jb250ZXh0LAorKyAgICBjb25zdCBTaWduYWxWZWN0b3JDb250ZXh0 NjQgJnZlY3Rvcl9jb250ZXh0LAorKyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNv bnRleHQpIHsKKysKKysgIG1lbWNweShjb250ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5yZWdz LCBzaXplb2YoY29udGV4dC0+cmVncykpOworKyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRl eHQubmlwOworKyAgY29udGV4dC0+bXNyID0gdGhyZWFkX2NvbnRleHQubXNyOworKyAgY29udGV4 dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2NyOworKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2Nv bnRleHQueGVyOworKyAgY29udGV4dC0+bG5rID0gdGhyZWFkX2NvbnRleHQubG5rOworKyAgY29u dGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQuY3RyOworKworKyAgbWVtY3B5KGNvbnRleHQtPmZw cmVncywgZmxvYXRfY29udGV4dC5yZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7CisrICBj b250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBzY3I7CisrCisrICBmb3IgKHVpbnQ4X3Qg aSA9IDA7IGkgPCAzMjsgaSsrKSB7CisrICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7 CisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikg fAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzFdLAorKyAgICAgICgoKHVpbnQ2 NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkgPDwgMzIpIHwKKysgICAgICAgIHZlY3Rv cl9jb250ZXh0LnZycmVnc1tpXVszXQorKyAgICB9OworKyAgfQorKyAgY29udGV4dC0+dnJlZ3Mu c2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNhdmU7CisrICBjb250ZXh0LT52cmVncy5z YXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsK Kyt9CisrCisrI2VuZGlmCisgfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisgfSAgLy8gbmFtZXNw YWNlIGNyYXNocGFkCisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCitAQCAtMTkyLDYgKzE5 Miw4IEBAIHZvaWQgVGVzdEFnYWluc3RUYXJnZXQoUHRyYWNlQ29ubmVjdGlvbioKKyAgICAgICAg ICAgICAgIGRldmljZSA9PSAwICYmIGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRz b10iOworICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4NikKKyAgICAgICAgICAgc3RhdGljIGNvbnN0 ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC1nYXRlLnNvLiI7CisrI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NCkKKysgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhb XSA9ICJsaW51eC12ZHNvNjQuc28uIjsKKyAjZWxzZQorICAgICAgICAgICBzdGF0aWMgY29uc3Rl eHByIGNoYXIga1ByZWZpeFtdID0gImxpbnV4LXZkc28uc28uIjsKKyAjZW5kaWYKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNl cHRpb25fc25hcHNob3RfbGludXguY2MKK0BAIC0zMjMsNiArMzIzLDY5IEBAIGJvb2wgRXhjZXB0 aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQKKyAgICAgICByZWFkZXIsIGNvbnRleHRfYWRk cmVzcywgY29udGV4dF8ubWlwczY0KTsKKyB9CisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KKytzdGF0aWMgYm9v bCBSZWFkQ29udGV4dChQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKKysgICAgICAgICAgICAg ICAgICAgICAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MsCisrICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsK KysgIGNvbnN0IFByb2Nlc3NNZW1vcnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7CisrCisr ICBMaW51eFZNQWRkcmVzcyBncF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250 ZXh0KSArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBl bmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBncF9yZWdzKTsKKysKKysgIHR5cGVuYW1lIFRyYWl0czo6 U2lnbmFsVGhyZWFkQ29udGV4dCB0aHJlYWRfY29udGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFk KGdwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0 KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsKKysgICAg cmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNz ID0gY29udGV4dF9hZGRyZXNzICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7 CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250ZXh0Owor KyAgaWYgKCFtZW1vcnktPlJlYWQoZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCks ICZmcF9jb250ZXh0KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3Jl Z3MhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgTGludXhWTUFkZHJlc3Mgdl9y ZWdzX3B0cl9hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRl eHQsIHZteF9yZXNlcnZlKSArIDg7CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3Rv ckNvbnRleHQgdl9jb250ZXh0OworKyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRy ZXNzLCBzaXplb2Yodl9jb250ZXh0KSwgJnZfY29udGV4dCkpIHsKKysgICAgTE9HKEVSUk9SKSA8 PCAiQ291bGRuJ3QgcmVhZCB2X3JlZ3MhIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKwor KyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250 ZXh0LCBmcF9jb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2X2NvbnRleHQs IGRlc3RfY29udGV4dCk7CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdGVtcGxhdGU8Pgor K2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0 PigKKysgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgIExpbnV4Vk1BZGRyZXNz IGNvbnRleHRfYWRkcmVzcykgeworKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hp dGVjdHVyZVBQQzY0OworKyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7 CisrCisrICByZXR1cm4gaW50ZXJuYWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisr ICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKKyt9CisrCisr dGVtcGxhdGU8PgorK2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29u dGV4dFRyYWl0czMyPigKKysgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgIExp bnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgeworKyAgLy8gUFBDNjQgaXMgNjQtYml0Cisr ICByZXR1cm4gZmFsc2U7CisrfQorKworICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQor IAorIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVy TGludXgqIHByb2Nlc3NfcmVhZGVyLAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hv dF9saW51eC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKK0BA IC04NCw2ICs4NCw4IEBAIGNsYXNzIEV4Y2VwdGlvblNuYXBzaG90TGludXggZmluYWwgOiBwdWIK KyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgICBDUFVDb250ZXh0TUlQ UyBtaXBzZWw7CisgICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OworKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7CisgI2Vu ZGlmCisgICB9IGNvbnRleHRfdW5pb25fOworICAgQ1BVQ29udGV4dCBjb250ZXh0XzsKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYworKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCitAQCAtMjk2LDcgKzI5NiwyOCBA QCB2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0CisgICAgICAgICAgICAg MCk7CisgI3VuZGVmIENQVV9BUkNIX05BTUUKKyB9CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCisrdXNpbmcgTmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7CisgCisr dm9pZCBJbml0aWFsaXplQ29udGV4dChOYXRpdmVDUFVDb250ZXh0KiBjb250ZXh0KSB7CisrICBm b3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsgKytyZWcpIHsKKysgICAgY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1tyZWddID0gcmVnOworKyAgfQorKworKyAgbWVtc2V0KCZjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzLCA0NCwKKysgICAgICBzaXplb2YoY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVncykpOworK30KKysKKyt2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29u dGV4dCYgYWN0dWFsLCBjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBleHBlY3RlZCkgeworKyAgRVhQ RUNUX0VRKGFjdHVhbC5hcmNoaXRlY3R1cmUsIGtDUFVBcmNoaXRlY3R1cmVQUEM2NCk7CisrCisr ICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsgKytyZWcpIHsKKysgICAgRVhQRUNUX0VR KGFjdHVhbC5wcGM2NC0+cmVnc1tyZWddLCBleHBlY3RlZC51Y19tY29udGV4dC5ncF9yZWdzW3Jl Z10pOworKyAgfQorKworKyAgRVhQRUNUX0VRKG1lbWNtcChhY3R1YWwucHBjNjQtPmZwcmVncywg ZXhwZWN0ZWQudWNfbWNvbnRleHQuZnBfcmVncywKKysgICAgICAgICAgICBzaXplb2YoYWN0dWFs LnBwYzY0LT5mcHJlZ3MpKSwgMCk7CisrfQorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlm CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYworQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nl c3NSZWFkZXJMaW51eDo6VGhyZWFkOjpJbml0aWFsCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKKyAgIHN0YWNrX3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVh ZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NC5yZWdzWzI5XQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjld OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgc3RhY2tfcG9pbnRl ciA9IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NC5ncHJbMV07CisgI2Vsc2UKKyAjZXJy b3IgUG9ydC4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAorQEAgLTQyMiw2ICs0MjIsOTMgQEAgc3RhdGlj X2Fzc2VydChvZmZzZXRvZihVQ29udGV4dDxDb250ZXh0VAorICAgICAgICAgICAgICAgImNvbnRl eHQgb2Zmc2V0IG1pc21hdGNoIik7CisgI2VuZGlmCisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCisrCisrc3RydWN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCB7CisrICB1 aW50NjRfdCByZWdzWzMyXTsKKysgIHVpbnQ2NF90IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysg IHVpbnQ2NF90IG9yaWdfcjM7CisrICB1aW50NjRfdCBjdHI7CisrICB1aW50NjRfdCBsbms7Cisr ICB1aW50NjRfdCB4ZXI7CisrICB1aW50NjRfdCBjY3I7CisrICB1aW50NjRfdCBzb2Z0ZTsKKysg IHVpbnQ2NF90IHRyYXA7CisrICB1aW50NjRfdCBkYXI7CisrICB1aW50NjRfdCBkc2lzcjsKKysg IHVpbnQ2NF90IHJlc3VsdDsKKysgIHVpbnQ2NF90IGRzY3I7CisrICB1aW50NjRfdCBmcHIwWzNd OworK307CisrCisrc3RydWN0IFNpZ25hbEZsb2F0Q29udGV4dDY0IHsKKysgIGRvdWJsZSByZWdz WzMyXTsKKysgIGRvdWJsZSBmcHNjcjsKKyt9OworKworK3N0cnVjdCBTaWduYWxWZWN0b3JDb250 ZXh0NjQgeworKyAgaW50MzJfdCB2cnJlZ3NbMzJdWzRdOworKyAgc3RydWN0IHsKKysgICAgaW50 MzJfdCBfX3BhZFszXTsKKysgICAgaW50MzJfdCB2c2NyX3dvcmQ7CisrICB9IHZzY3I7CisrICBp bnQzMl90IHZyc2F2ZTsKKysgIGludDMyX3QgX19wYWRbM107CisrfSBfX2F0dHJpYnV0ZV9fKChf X2FsaWduZWRfXygxNikpKTsKKysKKysKKysjcHJhZ21hIHBhY2socG9wKQorK3N0cnVjdCBNQ29u dGV4dDY0IHsKKysgIHVpbnQ2NF90IHJlc2VydmVkWzRdOworKyAgaW50MzJfdCBzaWduYWw7Cisr ICBpbnQzMl90IF9fcGFkMDsKKysgIHVpbnQ2NF90IGhhbmRsZXI7CisrICB1aW50NjRfdCBvbGRt YXNrOworKyAgdWludDY0X3QgcHRfcmVnc19wdHI7CisrICBTaWduYWxUaHJlYWRDb250ZXh0NjQg Z3BfcmVnczsKKysgIFNpZ25hbEZsb2F0Q29udGV4dDY0ICBmcF9yZWdzOworKyAgU2lnbmFsVmVj dG9yQ29udGV4dDY0ICp2X3JlZ3M7CisrI2lmZGVmIF9fR0xJQkNfXworKyAgaW50NjRfdCB2bXhf cmVzZXJ2ZVs2OV07CisrI2Vsc2UKKysgIGludDY0X3Qgdm14X3Jlc2VydmVbMTAxXTsKKysjZW5k aWYKKyt9OworKworK3N0cnVjdCBDb250ZXh0VHJhaXRzNjQgOiBwdWJsaWMgVHJhaXRzNjQgewor KyAgdXNpbmcgTUNvbnRleHQgPSBNQ29udGV4dDY0OworKyAgdXNpbmcgU2lnbmFsVGhyZWFkQ29u dGV4dCA9IFNpZ25hbFRocmVhZENvbnRleHQ2NDsKKysgIHVzaW5nIFNpZ25hbEZsb2F0Q29udGV4 dCA9IFNpZ25hbEZsb2F0Q29udGV4dDY0OworKyAgdXNpbmcgU2lnbmFsVmVjdG9yQ29udGV4dCA9 IFNpZ25hbFZlY3RvckNvbnRleHQ2NDsKKysgIHVzaW5nIENQVUNvbnRleHQgPSBDUFVDb250ZXh0 UFBDNjQ7CisrfTsKKysKKytzdHJ1Y3QgQ29udGV4dFRyYWl0czMyIDogcHVibGljIFRyYWl0czMy IHt9OworKworK3N0cnVjdCBVQ29udGV4dCB7CisrICB1aW50NjRfdCBmbGFnczsKKysgIHVpbnQ2 NF90IGxpbms7CisrICBTaWduYWxTdGFjazxDb250ZXh0VHJhaXRzNjQ+IHN0YWNrOworKyAgU2ln c2V0PENvbnRleHRUcmFpdHM2ND4gc2lnbWFzazsKKysgIE1Db250ZXh0NjQgbWNvbnRleHQ7Cisr fTsKKysjcHJhZ21hIHBhY2socHVzaCwgMSkKKysKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihVQ29u dGV4dCkgPT0gc2l6ZW9mKHVjb250ZXh0X3QpLAorKyAgICAgICAgICAgICAgInVjb250ZXh0X3Qg c2l6ZSBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1Db250ZXh0NjQpID09IHNp emVvZihtY29udGV4dF90KSwKKysgICAgICAgICAgICAgICJtY29udGV4dF90IHNpemUgbWlzbWF0 Y2giKTsKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxUaHJlYWRDb250ZXh0NjQpID09IHNp emVvZihncmVnc2V0X3QpLAorKyAgICAgICAgICAgICAgImdyZWdzZXRfdCBzaXplIG1pc21hdGNo Iik7Cisrc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsRmxvYXRDb250ZXh0NjQpID09IHNpemVv ZihmcHJlZ3NldF90KSwKKysgICAgICAgICAgICAgICJmcHJlZ3NldF90IHNpemUgbWlzbWF0Y2gi KTsKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxWZWN0b3JDb250ZXh0NjQpID09IHNpemVv Zih2cnJlZ3NldF90KSwKKysgICAgICAgICAgICAgICJ2cnJlZ3NldF90IHNpemUgbWlzbWF0Y2gi KTsKKytzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgPT0KKysgICAg ICAgICAgICAgIG9mZnNldG9mKHVjb250ZXh0X3QsIHVjX21jb250ZXh0KSwgIm1jb250ZXh0IG9m ZnNldCBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoTUNvbnRleHQ2NCwgZ3Bf cmVncykgPT0KKysgICAgICAgICAgICAgIG9mZnNldG9mKG1jb250ZXh0X3QsIGdwX3JlZ3MpLCAi Z3BfcmVncyBvZmZzZXQgbWlzbWF0Y2giKTsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRp ZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hv dF9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYworQEAg LTIwNCw2ICsyMDQsOCBAQCBDUFVBcmNoaXRlY3R1cmUgU3lzdGVtU25hcHNob3RMaW51eDo6R2V0 CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJldHVybiBwcm9jZXNz X3JlYWRlcl8tPklzNjRCaXQoKSA/IGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoga0NQVUFyY2hpdGVjdHVyZU1JUFNFTDsKKysj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHJldHVybiBrQ1BVQXJjaGl0 ZWN0dXJlUFBDNjQ7CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQor ICNlbmRpZgorQEAgLTIxOSw2ICsyMjEsOSBAQCB1aW50MzJfdCBTeXN0ZW1TbmFwc2hvdExpbnV4 OjpDUFVSZXZpc2lvCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8v IE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiAwOworKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2 NAorKyAgcmV0dXJuIDA7CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVy ZQorICNlbmRpZgorQEAgLTIzOSw2ICsyNDQsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hv dExpbnV4OjpDUFVWZW5kCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAg IC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiBzdGQ6OnN0cmluZygpOwor KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBs ZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7CisgI2Vsc2UKKyAjZXJy b3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQorICNlbmRpZgorQEAgLTM3Miw2ICszODAsOSBA QCBib29sIFN5c3RlbVNuYXBzaG90TGludXg6Ok5YRW5hYmxlZCgpIGNvCisgI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMK KyAgIHJldHVybiBmYWxzZTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK KysgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKKysgIHJldHVybiBmYWxzZTsKKyAj ZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxl cy5jYworQEAgLTExMCw2ICsxMTAsOCBAQCBib29sIFdyaXRlVGVzdE1vZHVsZShjb25zdCBiYXNl OjpGaWxlUGF0CisgICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9BQVJDSDY0OworICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU0VMKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQor ICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fTUlQUzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0KQorKyAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fUFBDNjQ7CisgI2VuZGlm CisgCisgICBtb2R1bGUuZWhkci5lX3ZlcnNpb24gPSBFVl9DVVJSRU5UOworLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFw c2hvdF9saW51eC5jYworQEAgLTE4Niw2ICsxODYsMTQgQEAgYm9vbCBUaHJlYWRTbmFwc2hvdExp bnV4OjpJbml0aWFsaXplKFBybworICAgICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2Nv bnRleHQuZjMyLAorICAgICAgICAgY29udGV4dF8ubWlwc2VsKTsKKyAgIH0KKysjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtD UFVBcmNoaXRlY3R1cmVQUEM2NDsKKysgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25f LnBwYzY0OworKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KAor KyAgICAgIHRocmVhZC50aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQsCisrICAgICAgdGhy ZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjY0LAorKyAgICAgIHRocmVhZC50aHJlYWRf aW5mby52ZWN0b3JfY29udGV4dC52NjQsCisrICAgICAgY29udGV4dF8ucHBjNjQpOworICNlbHNl CisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90 X2xpbnV4LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAorQEAgLTY4 LDYgKzY4LDggQEAgY2xhc3MgVGhyZWFkU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYworICNl bGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICAgIENQVUNvbnRleHRNSVBTIG1p cHNlbDsKKyAgICAgQ1BVQ29udGV4dE1JUFM2NCBtaXBzNjQ7CisrI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIENQVUNvbnRleHRQUEM2NCBwcGM2NDsKKyAjZWxzZQor ICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwor QEAgLTU2LDYgKzU2LDExIEBAIGJvb2wgQXV4aWxpYXJ5VmVjdG9yOjpSZWFkKFB0cmFjZUNvbm5l Y3QKKyAgICAgaWYgKHR5cGUgPT0gQVRfSUdOT1JFKSB7CisgICAgICAgY29udGludWU7CisgICAg IH0KKysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIGlmICh0eXBlID09 IEFUX0lHTk9SRVBQQykgeworKyAgICAgIGNvbnRpbnVlOworKyAgICB9CisrI2VuZGlmCisgICAg IGlmICghTWFwSW5zZXJ0T3JSZXBsYWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikp IHsKKyAgICAgICBMT0coRVJST1IpIDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7CisgICAgICAg cmV0dXJuIGZhbHNlOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNl ci5jYworQEAgLTM5OSw2ICszOTksNjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlk LAorICAgcmV0dXJuIHRydWU7CisgfQorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQorKy8vIFBQQzY0IGhhcyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2Ug Mi42LjI3IChldmVuIGJlZm9yZSB4ODYgaGFkIGl0KS4KKysvLyBUaGF0IG1lYW5zIHdlIGNhbiBz aW1wbHkgdXNlIFBUUkFDRV9HRVRSRUdFU0VULgorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0 aW5hdGlvbj4KKytib29sIEdldFJlZ2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGlu YXRpb24qIGRlc3QsIGJvb2wgY2FuX2xvZykgeworKyAgaW92ZWMgaW92OworKyAgaW92Lmlvdl9i YXNlID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZGVzdCk7CisrICBpb3YuaW92X2xlbiA9IHNp emVvZigqZGVzdCk7CisrICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRl cnByZXRfY2FzdDx2b2lkKj4oc2V0KSwgJmlvdikgIT0gMCkgeworKyAgICBQTE9HX0lGKEVSUk9S LCBjYW5fbG9nKSA8PCAicHRyYWNlIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgaWYg KGlvdi5pb3ZfbGVuICE9IHNpemVvZigqZGVzdCkpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5f bG9nKSA8PCAiVW5leHBlY3RlZCByZWdpc3RlcnMgc2l6ZSI7CisrICAgIHJldHVybiBmYWxzZTsK KysgIH0KKysgIHJldHVybiB0cnVlOworK30KKysKKytib29sIEdldFZlY3RvclJlZ2lzdGVyczY0 KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNv bnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJl dHVybiBHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9s b2cpOworK30KKysKKytib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAg cmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2Fu X2xvZyk7CisrfQorKworK2Jvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKysgICAgICAg ICAgICAgICAgICAgICBjb25zdCBUaHJlYWRDb250ZXh0JiBjb250ZXh0LAorKyAgICAgICAgICAg ICAgICAgICAgIExpbnV4Vk1BZGRyZXNzKiBhZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAg IGJvb2wgY2FuX2xvZykgeworKyAgLy8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhS RUFEX0FSRUEgc2luY2UgdGhlIHRocmVhZCBwb2ludGVyCisrICAvLyBpcyBzdG9yZWQgaW4gR1BS IDEzLgorKyAgVGhyZWFkQ29udGV4dDo6dDY0X3QgdGM7CisrICBpZiAoIUdldFJlZ2lzdGVyU2V0 KHRpZCwgTlRfUFJTVEFUVVMsICZ0YywgY2FuX2xvZykpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBj YW5fbG9nKSA8PCAiVW5hYmxlIHRvIGdldCB0aHJlYWQgcG9pbnRlciEiOworKyAgICByZXR1cm4g ZmFsc2U7CisrICB9CisrCisrICAqYWRkcmVzcyA9IHRjLmdwclsxM107CisrCisrICByZXR1cm4g dHJ1ZTsKKyt9CisrCisrLy8gU3R1YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2Fi bGUgb24gUFBDNjQKKytib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1 cm4gZmFsc2U7IH0KKytib29sIEdldFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCisrICAgICAgICAg ICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCAmY29udGV4dCwKKysgICAgICAgICAgICAg ICAgICAgICBMaW51eFZNQWRkcmVzcyAqYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICBi b29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9CisrCisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4K KyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC00OTUsNiArNTUzLDkgQEAgYm9v bCBQdHJhY2VyOjpHZXRUaHJlYWRJbmZvKHBpZF90IHRpZCwgVAorICAgaWYgKGlzXzY0X2JpdF8p IHsKKyAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+ dGhyZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgorICAgICAgICAgICAgR2V0RmxvYXRpbmdQb2lu dFJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQsIGNhbl9sb2dfKSAmJgorKyNp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgICAgICAgIEdldFZlY3RvclJl Z2lzdGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBjYW5fbG9nXykgJiYKKysjZW5k aWYKKyAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3MsCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJl YWRfaW5mby5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCitAQCAtMzksNiArMzksMTMgQEAg c3RydWN0IHVzZXJfdmZwX2V4YyB7CisgI2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+Cisg I2VuZGlmCisgCisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyNpbmNsdWRl IDxzeXMvdWNvbnRleHQuaD4KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNpbmNsdWRlIDxh c20vcHRyYWNlLmg+CisrI2VuZGlmCisrI2VuZGlmCisrCisgbmFtZXNwYWNlIGNyYXNocGFkIHsK KyAKKyAvLyEgXGJyaWVmIFRoZSBzZXQgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycyBmb3Ig YW4gYXJjaGl0ZWN0dXJlIGZhbWlseS4KK0BAIC05MCw2ICs5Nyw4IEBAIHVuaW9uIFRocmVhZENv bnRleHQgeworICAgICB1aW50MzJfdCBjcDBfc3RhdHVzOworICAgICB1aW50MzJfdCBjcDBfY2F1 c2U7CisgICAgIHVpbnQzMl90IHBhZGRpbmcxXzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKKysgICAgLy8gUFBDNjQgaXMgNjQtYml0CisgI2Vsc2UKKyAjZXJyb3IgUG9y dC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0xNDMsNiArMTUyLDIxIEBA IHVuaW9uIFRocmVhZENvbnRleHQgeworICAgICB1aW50NjRfdCBjcDBfYmFkdmFkZHI7CisgICAg IHVpbnQ2NF90IGNwMF9zdGF0dXM7CisgICAgIHVpbnQ2NF90IGNwMF9jYXVzZTsKKysjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8gUmVmbGVjdHMgc3RydWN0IHB0 X3JlZ3MgaW4gYXNtL3B0cmFjZS5oLgorKyAgICB1aW50NjRfdCBncHJbMzJdOworKyAgICB1aW50 NjRfdCBuaXA7CisrICAgIHVpbnQ2NF90IG1zcjsKKysgICAgdWludDY0X3Qgb3JpZ19ncHIzOwor KyAgICB1aW50NjRfdCBjdHI7CisrICAgIHVpbnQ2NF90IGxuazsKKysgICAgdWludDY0X3QgeGVy OworKyAgICB1aW50NjRfdCBjY3I7CisrICAgIHVpbnQ2NF90IHNvZnRlOworKyAgICB1aW50NjRf dCB0cmFwOworKyAgICB1aW50NjRfdCBkYXI7CisrICAgIHVpbnQ2NF90IGRzaXNyOworKyAgICB1 aW50NjRfdCByZXN1bHQ7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hf Q1BVX1g4Nl9GQU1JTFkKK0BAIC0xNTQsNiArMTc4LDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7 CisgICB1c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0gdXNlcl9yZWdzOworICNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgLy8gTm8gYXBwcm9wcmlhdGUgTmF0aXZlVGhyZWFk c0NvbnRleHQgdHlwZSBhdmFpbGFibGUgZm9yIE1JUFMKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKKysgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSBzdHJ1Y3QgcHRf cmVnczsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZB TUlMWSB8fCBBUkNIX0NQVV9BUk02NAorQEAgLTIyOSw2ICsyNTUsOSBAQCB1bmlvbiBGbG9hdENv bnRleHQgeworICAgICB9IGZwcmVnc1szMl07CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1 aW50MzJfdCBmcHVfaWQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisr ICAgIC8vIENyYXNocGFkJ3MgUFBDIHN1cHBvcnQgaXMgNjQtYml0IG9ubHksIHNvIHRoaXMKKysg ICAgLy8gMzJiaXQtb25seSBzdHJ1Y3QgaXMgZGVjbGFyZWQgYXMgZW1wdHkuCisgI2Vsc2UKKyAj ZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0yNjMsNiAr MjkyLDEwIEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7CisgICAgIGRvdWJsZSBmcHJlZ3NbMzJdOwor ICAgICB1aW50MzJfdCBmcGNzcjsKKyAgICAgdWludDMyX3QgZnB1X2lkOworKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBSZWZsZWN0cyBmcHJlZ3NldF90IGlu IHN5cy91Y29udGV4dC5oCisrICAgIGRvdWJsZSBmcHJlZ3NbMzJdOworKyAgICBkb3VibGUgZnBz Y3I7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1J TFkKK0BAIC0yOTEsNiArMzI0LDggQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyAgIHN0YXRpY19h c3NlcnQoc2l6ZW9mKGY2NCkgPT0gc2l6ZW9mKHVzZXJfZnBzaW1kX3N0cnVjdCksICJTaXplIG1p c21hdGNoIik7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAvLyBObyBh cHByb3ByaWF0ZSBmbG9hdGluZyBwb2ludCBjb250ZXh0IG5hdGl2ZSB0eXBlIGZvciBhdmFpbGFi bGUgTUlQUy4KKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHN0YXRp Y19hc3NlcnQoc2l6ZW9mKGY2NCkgPT0gc2l6ZW9mKGZwcmVnc2V0X3QpLCAiU2l6ZSBtaXNtYXRj aCIpOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODYKK0BA IC0yOTgsNiArMzMzLDI2IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Cisgc3RhdGljX2Fzc2VydChz dGQ6OmlzX3N0YW5kYXJkX2xheW91dDxGbG9hdENvbnRleHQ+Ojp2YWx1ZSwKKyAgICAgICAgICAg ICAgICJOb3Qgc3RhbmRhcmQgbGF5b3V0Iik7CisgCisrLy8hIFxicmllZiBUaGUgdmVjdG9yIHJl Z2lzdGVycyB1c2VkIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5CisrdW5pb24gVmVjdG9yQ29u dGV4dCB7CisrICBzdHJ1Y3QgdjMyX3Qge30gdjMyOworKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKKysgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpIC8vIFZlY3Rv ciBjb250ZXh0IG11c3QgYmUgZG91Ymxld29yZCBhbGlnbmVkLgorKyNlbmRpZgorKyAgc3RydWN0 IHY2NF90IHsKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIFJl ZmxlY3RzIHZycmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKKysgICAgdWludDMyX3QgdnJyZWdz WzMyXVs0XTsKKysgICAgc3RydWN0IHsKKysgICAgICB1aW50MzJfdCBfX3BhZFszXTsKKysgICAg ICB1aW50MzJfdCB2c2NyX3dvcmQ7CisrICAgIH0gdnNjcjsKKysgICAgdWludDMyX3QgdnJzYXZl OworKyAgICB1aW50MzJfdCBfX3BhZFszXTsKKysjZW5kaWYKKysgIH0gdjY0OworK307CisrCisg Ly8hIFxicmllZiBBIGNvbGxlY3Rpb24gb2YgYHB0cmFjZWAtYWJsZSBpbmZvcm1hdGlvbiBhYm91 dCBhIHRocmVhZC4KKyBzdHJ1Y3QgVGhyZWFkSW5mbyB7CisgICBUaHJlYWRJbmZvKCk7CitAQCAt MzA5LDYgKzM2NCw5IEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKKyAgIC8vISBcYnJpZWYgVGhlIGZs b2F0aW5nIHBvaW50IHJlZ2lzdGVycyBmb3IgdGhlIHRocmVhZC4KKyAgIEZsb2F0Q29udGV4dCBm bG9hdF9jb250ZXh0OworIAorKyAgLy8hIFxicmllZiAoT3B0aW9uYWwpIFRoZSB2ZWN0b3IgcmVn aXN0ZXJzIHVzZWQgZm9yIHRoZSB0aHJlYWQuCisrICBWZWN0b3JDb250ZXh0IHZlY3Rvcl9jb250 ZXh0OworKworICAgLy8hIFxicmllZiBUaGUgdGhyZWFkLWxvY2FsIHN0b3JhZ2UgYWRkcmVzcyBm b3IgdGhlIHRocmVhZC4KKyAgIExpbnV4Vk1BZGRyZXNzIHRocmVhZF9zcGVjaWZpY19kYXRhX2Fk ZHJlc3M7CisgfTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0LmgKK0BAIC02OSw2ICs2OSw3IEBAIHVzaW5nIE5hdGl2ZUNQVUNvbnRleHQg PSB1Y29udGV4dF90OworIC8vISAgICAgbWFjT1MvTGludXgvRnVjaHNpYSB8IHg4Nl82NCAgICAg ICB8IGAlJXJkaWAKKyAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBBUk0vQVJNNjQgICAg fCBgcjBgL2B4MGAKKyAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBNSVBTL01JUFM2NCAg fCBgJGEwYAorKy8vISAgICAgTGludXggICAgICAgICAgICAgICB8IFBQQzY0ICAgICAgICB8IGBy M2AKKyAvLyEKKyAvLyEgICAgIEFkZGl0aW9uYWxseSwgdGhlIHZhbHVlIGBMUmAgb24gQVJNL0FS TTY0IHdpbGwgYmUgdGhlIHJldHVybiBhZGRyZXNzIG9mCisgLy8hICAgICB0aGlzIGZ1bmN0aW9u LgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJl X2NvbnRleHRfbGludXguUworQEAgLTMyLDcgKzMyLDcgQEAKKyAgIC5iYWxpZ24gNCwgMHgwCisg ICAudHlwZSBDQVBUVVJFQ09OVEVYVF9TWU1CT0wsICVmdW5jdGlvbgorICAgLnR5cGUgQ0FQVFVS RUNPTlRFWFRfU1lNQk9MMiwgJWZ1bmN0aW9uCistI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKysj ZWxpZiBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAuYmFs aWduIDQsIDB4MAorICNlbmRpZgorIAorQEAgLTQyMyw0ICs0MjMsMjE0IEBAIENBUFRVUkVDT05U RVhUX1NZTUJPTDI6CisgICBqciAkcmEKKyAKKyAgIC5zZXQgYXQKKysjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisrICAvLyBTdG9yZSByMC1yMzEKKysgIHN0ZCAwLCAweGU4KDMpICAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1swXQorKyAgc3RkIDEsIDB4ZjAoMykgICAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzFdCisrICBzdGQgMiwgMHhmOCgzKSAgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMl0KKysgIC8vIG5vdGUgdGhhdCByMydzIG9yaWdp bmFsIHZhbHVlIHdhcyBsb3N0CisrICBzdGQgMywgMHgxMDAoMykgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbM10KKysgIHN0ZCA0LCAweDEwOCgzKSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1s0XQorKyAgc3RkIDUsIDB4MTEwKDMpICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzVdCisrICBzdGQgNiwgMHgxMTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbNl0KKysgIHN0ZCA3LCAweDEyMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1s3XQorKyAgc3RkIDgsIDB4MTI4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzWzhdCisrICBzdGQgOSwgMHgxMzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbOV0KKysgIHN0ZCAxMCwgMHgxMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxMF0KKysgIHN0ZCAxMSwgMHgxNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxMV0KKysgIHN0ZCAxMiwgMHgxNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxMl0KKysgIHN0ZCAxMywgMHgxNTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxM10KKysgIHN0ZCAxNCwgMHgxNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxNF0KKysgIHN0ZCAxNSwgMHgxNjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxNV0KKysgIHN0ZCAxNiwgMHgxNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxNl0KKysgIHN0ZCAxNywgMHgxNzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxN10KKysgIHN0ZCAxOCwgMHgxNzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxOF0KKysgIHN0ZCAxOSwgMHgxODAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1sxOV0KKysgIHN0ZCAyMCwgMHgxODgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syMF0KKysgIHN0ZCAyMSwgMHgxOTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syMV0KKysgIHN0ZCAyMiwgMHgxOTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syMl0KKysgIHN0ZCAyMywgMHgxYTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syM10KKysgIHN0ZCAyNCwgMHgxYTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syNF0KKysgIHN0ZCAyNSwgMHgxYjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syNV0KKysgIHN0ZCAyNiwgMHgxYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syNl0KKysgIHN0ZCAyNywgMHgxYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syN10KKysgIHN0ZCAyOCwgMHgxYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syOF0KKysgIHN0ZCAyOSwgMHgxZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1syOV0KKysgIHN0ZCAzMCwgMHgxZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1szMF0KKysgIHN0ZCAzMSwgMHgxZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1szMV0KKysKKysgIC8vIEZvciBOSVAsIHdlIGNhbiB1c2UgdGhlIHZhbHVlIGluIHRo ZSBsaW5rIHJlZ2lzdGVyCisrICBtZmxyIDAKKysgIHN0ZCAwLCAweDFlOCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0KKysKKysgIC8vIENUUgorKyAgbWZjdHIgMAor KyAgc3RkIDAsIDB4MjAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RS XQorKworKyAgLy8gRm9yIExOSywgd2UnbGwgdXNlIHRoZSBjYWxsZXIncyBMUiBzYXZlIGFyZWEg KDIgc3RhY2sgZnJhbWVzIHVwKS4KKysgIC8vIHI0IGNhbiBiZSB1c2VkIGFzIGEgc2NyYXRjaCBy ZWdpc3RlciBzaW5jZSBpdCBoYXMgYWxyZWFkeSBiZWVuIHNhdmVkLgorKyAgbGQgNCwgMCgxKQor KyAgbGQgNCwgMTYoNCkKKysgIHN0ZCA0LCAweDIwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX0xOS10KKysKKysgIC8vIFhFUgorKyAgbWZ4ZXIgMAorKyAgc3RkIDAsIDB4 MjEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXQorKworKyAgLy8g Q0NSCisrICBtZmNyIDAKKysgIHN0ZCAwLCAweDIxOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX0NDUl0KKysKKysgIC8vIE1TUiwgb3JpZ19yMywgTVEsIFRSQVAsIERBUiwg RFNJU1IsIFJFU1VMVCwgRFNDUiwKKysgIC8vIG5vdCB1c2VkIG9yIG5vdCByZWxldmFudCwgIHpl cm8gdGhlbSBvdXQuCisrICBsaSA0LCAwCisrICBzdGQgNCwgMHgxZjAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdCisrICBzdGQgNCwgMHgxZjgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9PUklHX1IzXQorKyAgc3RkIDQsIDB4MjIwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVFdCisrICBzdGQgNCwgMHgyMjgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9UUkFQXQorKyAgc3RkIDQsIDB4MjMw KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfREFSXQorKyAgc3RkIDQsIDB4 MjM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfRFNJU1JdCisrICBzdGQg NCwgMHgyNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9SRVNVTFRdCisr ICBzdGQgNCwgMHgyNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EU0NS XQorKworKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVjX21jb250ZXh0LnJlZ3MgdG8gcG9pbnQgdG8g Z3BfcmVncworKyAgYWRkaSAwLCAzLCAweGU4CisrICBzdGQgMCwgMHhlMCgzKQorKworKyAgLy8g U2F2ZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgMC0zMQorKyAgc3RmZCAwLCAweDI2OCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1swXQorKyAgc3RmZCAxLCAweDI3MCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxXQorKyAgc3RmZCAyLCAweDI3OCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syXQorKyAgc3RmZCAzLCAweDI4MCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szXQorKyAgc3RmZCA0LCAweDI4OCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s0XQorKyAgc3RmZCA1LCAweDI5MCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s1XQorKyAgc3RmZCA2LCAweDI5OCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s2XQorKyAgc3RmZCA3LCAweDJhMCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s3XQorKyAgc3RmZCA4LCAweDJhOCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s4XQorKyAgc3RmZCA5LCAweDJiMCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s5XQorKyAgc3RmZCAxMCwgMHgyYjgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMF0KKysgIHN0ZmQgMTEsIDB4MmMwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTFdCisrICBzdGZkIDEyLCAweDJjOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEyXQorKyAgc3RmZCAxMywgMHgyZDAo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxM10KKysgIHN0ZmQgMTQsIDB4MmQ4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTRdCisrICBzdGZkIDE1LCAweDJl MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE1XQorKyAgc3RmZCAxNiwgMHgy ZTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNl0KKysgIHN0ZmQgMTcsIDB4 MmYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTddCisrICBzdGZkIDE4LCAw eDJmOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE4XQorKyAgc3RmZCAxOSwg MHgzMDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxOV0KKysgIHN0ZmQgMjAs IDB4MzA4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjBdCisrICBzdGZkIDIx LCAweDMxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIxXQorKyAgc3RmZCAy MiwgMHgzMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMl0KKysgIHN0ZmQg MjMsIDB4MzIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjNdCisrICBzdGZk IDI0LCAweDMyOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI0XQorKyAgc3Rm ZCAyNSwgMHgzMzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNV0KKysgIHN0 ZmQgMjYsIDB4MzM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjZdCisrICBz dGZkIDI3LCAweDM0MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI3XQorKyAg c3RmZCAyOCwgMHgzNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syOF0KKysg IHN0ZmQgMjksIDB4MzUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjldCisr ICBzdGZkIDMwLCAweDM1OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMwXQor KyAgc3RmZCAzMSwgMHgzNjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMV0K KysKKysgIC8vIEZQU0NSCisrICBtZmZzIDAKKysgIHN0ZmQgMCwgMHgzNjgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMl0KKysKKysgIC8vIFNhdmUgVk1YIFZlY3RvciByZWdp c3RlcnMKKysgIC8vIFVwZGF0ZSByNCB0byBjb250YWluIHRoZSBiYXNlIGFkZHJlc3Mgb2Ygdm14 X3Jlc2VydmUKKysgIGFkZGkgNCwgMywgMHgzNzgKKysgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIHF1 YWR3b3JkIGFsaWduZWQKKysgIGFuZGkuIDUsIDQsIDB4RgorKyAgYmVxIDFmIC8vIE5vIGFsaWdu bWVudCBpcyBuZWNlc3NhcnkKKysgIC8vIEFkZHJlc3MgaXMgZG91Ymxld29yZCBhbGlnbmVkIGFu ZCBub3QgcXVhZHdvcmQgYWxpZ25lZCwgYWRkIDgKKysgIGFkZGkgNCwgNCwgOAorKworKzE6Cisr ICAvLyBTdG9yZSBWTVggcmVnaXN0ZXJzIDAtMzEKKysgIC8vIHI0IHdpbGwgY29udGFpbiB0aGUg YmFzZSBhZGRyZXNzCisrICAvLyByNSB3aWxsIGNvbnRhaW4gdGhlIGluZGV4CisrICBsaSA1LCAw CisrICBzdHZ4IDAsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMSwgNCwgNSAgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxXQorKyAgYWRkaSA1LCA1LCAx NgorKyAgc3R2eCAyLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDJdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDMsIDQsIDUgICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgM10KKysgIGFkZGkgNSwgNSwg MTYKKysgIHN0dnggNCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyA0XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA1LCA0LCA1ICAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDVdCisrICBhZGRpIDUsIDUs IDE2CisrICBzdHZ4IDYsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgNl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggNywgNCwgNSAgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA3XQorKyAgYWRkaSA1LCA1 LCAxNgorKyAgc3R2eCA4LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDhdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDksIDQsIDUgICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgOV0KKysgIGFkZGkgNSwg NSwgMTYKKysgIHN0dnggMTAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAxMF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTEsIDQsIDUgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMV0KKysgIGFkZGkg NSwgNSwgMTYKKysgIHN0dnggMTIsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAxMl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTMsIDQsIDUg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxM10KKysgIGFk ZGkgNSwgNSwgMTYKKysgIHN0dnggMTQsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAxNF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTUsIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNV0KKysg IGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTcs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxN10K KysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMTgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxOF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dngg MTksIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAx OV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0 dnggMjEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAyMV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjIsIDQsIDUgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMl0KKysgIGFkZGkgNSwgNSwgMTYKKysg IHN0dnggMjMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAyM10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjQsIDQsIDUgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNF0KKysgIGFkZGkgNSwgNSwgMTYK KysgIHN0dnggMjUsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAyNV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjYsIDQsIDUgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNl0KKysgIGFkZGkgNSwgNSwg MTYKKysgIHN0dnggMjcsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAyN10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMjgsIDQsIDUgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyOF0KKysgIGFkZGkgNSwg NSwgMTYKKysgIHN0dnggMjksIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAyOV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMzAsIDQsIDUgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMF0KKysgIGFkZGkg NSwgNSwgMTYKKysgIHN0dnggMzEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAzMV0KKysgIGFkZGkgNSwgNSwgMTYKKysKKysgIC8vIFZTQ1IKKysg IG1mdnNjciAwCisrICBzdHZ4IDAsIDQsIDUKKysgIGFkZGkgNSwgNSwgMTYKKysKKysgIC8vIFZS U0FWRQorKyAgbWZ2cnNhdmUgMAorKyAgc3R3eCAwLCA0LCA1CisrCisrICAvLyBVcGRhdGUgY29u dGV4dC0+dWNfbWNvbnRleHQudl9yZWdzIHRvIHBvaW50IHRvIHZteF9yZXNlcnZlICsgYWxpZ25t ZW50LgorKyAgc3RkIDQsIDB4MzcwKDMpCisrCisrICAvLyBaZXJvIG91dCBhbGwgdW51c2VkIGZp ZWxkcworKyAgbGkgNCwgMAorKyAgc3RkIDQsIDB4YzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuc2lnbmFsCisrICBzdGQgNCwgMHhkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5oYW5k bGVyCisrICBzdGQgNCwgMHhkOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5vbGRtYXNrCisr CisrICBibHIKKyAjZW5kaWYgIC8vIF9faTM4Nl9fCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4 dF90ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCitAQCAtNTcsNyAr NTcsNyBAQCB2b2lkIFRlc3RDYXB0dXJlQ29udGV4dCgpIHsKKyAgIHVpbnRwdHJfdCBwYyA9IFBy b2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29udGV4dF8xKTsKKyAKKyAjaWYgIWRlZmluZWQoQURE UkVTU19TQU5JVElaRVIpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBcCist ICAgICFkZWZpbmVkKE1FTU9SWV9TQU5JVElaRVIpCisrICAgICFkZWZpbmVkKE1FTU9SWV9TQU5J VElaRVIpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKyAgIC8vIFNhbml0aXpl cnMgY2FuIGNhdXNlIGVub3VnaCBjb2RlIGJsb2F0IHRoYXQgdGhlIOKAnG5lYXJieeKAnSBjaGVj ayB3b3VsZAorICAgLy8gbGlrZWx5IGZhaWwuCisgICBjb25zdCB1aW50cHRyX3Qga1JlZmVyZW5j ZVBDID0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjCitAQCAtMzUsNiArMzUs OCBAQCB2b2lkIFNhbml0eUNoZWNrQ29udGV4dChjb25zdCBOYXRpdmVDUFVDCisgICBFWFBFQ1Rf RVEoY29udGV4dC51Y19tY29udGV4dC5yZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90 PigmY29udGV4dCkpOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICBF WFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0PHVp bnRwdHJfdD4oJmNvbnRleHQpKTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKKysgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Qb2lu dGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7CisgI2VuZGlmCisgfQorIAorQEAgLTQ5LDYg KzUxLDggQEAgdWludHB0cl90IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29ucworICAgcmV0 dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkKKyAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnBjOworKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9OSVBdOworICNlbmRpZgorIH0KKyAKK0BAIC02Myw2ICs2Nyw4IEBAIHVpbnRw dHJfdCBTdGFja1BvaW50ZXJGcm9tQ29udGV4dChjb25zdAorICAgcmV0dXJuIGNvbnRleHQudWNf bWNvbnRleHQuc3A7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHJl dHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzWzI5XTsKKysjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKysgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3Nb MV07CisgI2VuZGlmCisgfQorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9w b3NpeC9zaWduYWxzX3Rlc3QuY2MKK0BAIC00Niw5ICs0Niw5IEBAIGJvb2wgQ2FuQ2F1c2VTaWdu YWwoaW50IHNpZykgeworICAgcmV0dXJuIHNpZyA9PSBTSUdBQlJUIHx8CisgICAgICAgICAgc2ln ID09IFNJR0FMUk0gfHwKKyAgICAgICAgICBzaWcgPT0gU0lHQlVTIHx8CistI2lmICFkZWZpbmVk KEFSQ0hfQ1BVX0FSTTY0KQorKyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmlu ZWQoQVJDSF9DUFVfUFBDNjQpCisgICAgICAgICAgc2lnID09IFNJR0ZQRSB8fAorLSNlbmRpZiAg Ly8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCisrI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQ VV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgI2lmIGRlZmluZWQoQVJDSF9D UFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKKyAgICAgICAgICBzaWcg PT0gU0lHSUxMIHx8CisgI2VuZGlmICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8 IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCitAQCAtMTE3LDkgKzExNywxMSBAQCB2b2lkIENhdXNl U2lnbmFsKGludCBzaWcpIHsKKyAgICAgICBicmVhazsKKyAgICAgfQorIAorLSNpZiAhZGVmaW5l ZChBUkNIX0NQVV9BUk02NCkKKysjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0KQorICAgICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdlciBk aXZpc2lvbiBpbnN0cnVjdGlvbnMgdGhhdCBkb27igJl0IGdlbmVyYXRlIGEKKyAgICAgLy8gdHJh cCBmb3IgZGl2aWRlLWJ5LXplcm8sIHNvIHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBFLgor KyAgICAvLworKyAgICAvLyBQUEM2NCBmaXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFsc28g ZG9lc24ndCBwcm9kdWNlIGEgU0lHRlBFLgorICAgICBjYXNlIFNJR0ZQRTogeworICAgICAgIC8v IE9wdGltaXphdGlvbiBtYWtlcyB0aGlzIHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5c3Rl bSBjYWxsIGxpa2VseQorICAgICAgIC8vIHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29tZXRo aW5nIHdpdGggdGhlIHJlc3VsdC4KK0BAIC0xMzcsNyArMTM5LDcgQEAgdm9pZCBDYXVzZVNpZ25h bChpbnQgc2lnKSB7CisgICAgICAgZnN0YXQocXVvdGllbnQsICZzdGF0X2J1Zik7CisgICAgICAg YnJlYWs7CisgICAgIH0KKy0jZW5kaWYgIC8vIEFSQ0hfQ1BVX0FSTTY0CisrI2VuZGlmICAvLyAh ZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgCisg I2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1F TCkKKyAgICAgY2FzZSBTSUdJTEw6IHsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2RhdjFkL0JVSUxELmduCitAQCAtMTk2LDYgKzE5Niw4IEBAIHN0YXRpY19saWJyYXJ5 KCJkYXYxZF84Yml0IikgeworICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisg ICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKKyAgICAgc291cmNlcyArPSBh cm1fdGVtcGxhdGVfc291cmNlcworKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQi KSB7CisrICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcworICAgfQorIAorICAg Y2ZsYWdzID0gZGF2MWRfY29wdHMKK0BAIC0yMjYsNiArMjI4LDggQEAgc3RhdGljX2xpYnJhcnko ImRhdjFkXzEwYml0IikgeworICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisg ICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKKyAgICAgc291cmNlcyArPSBh cm1fdGVtcGxhdGVfc291cmNlcworKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQi KSB7CisrICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcworICAgfQorIAorICAg Y2ZsYWdzID0gZGF2MWRfY29wdHMKK0BAIC0yODMsNiArMjg3LDIxIEBAIGlmIChjdXJyZW50X2Nw dSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdQorICAgICB9CisgCisgICAgIGNmbGFncyA9IGRhdjFk X2NvcHRzCisrICB9CisrfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICBz dGF0aWNfbGlicmFyeSgiZGF2MWRfcHBjIikgeworKyAgICBzb3VyY2VzID0gWworKyAgICAgICJs aWJkYXYxZC9zcmMvcHBjL2NwdS5jIiwKKysgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUuaCIs CisrICAgIF0KKysKKysgICAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpj aHJvbWl1bV9jb2RlIiBdCisrICAgIGNvbmZpZ3MgKz0gWworKyAgICAgICIvL2J1aWxkL2NvbmZp Zy9jb21waWxlcjpub19jaHJvbWl1bV9jb2RlIiwKKysgICAgICAiOmRhdjFkX2NvbmZpZyIsCisr ICAgIF0KKysKKysgICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKKyAKKyAgICAgZGVwcyA9IFsgIjpk YXYxZF9oZWFkZXJzIiBdCisgICAgIGFsbG93X2NpcmN1bGFyX2luY2x1ZGVzX2Zyb20gPSBbICI6 ZGF2MWRfaGVhZGVycyIgXQorQEAgLTMxNSw1ICszMzQsNyBAQCBzdGF0aWNfbGlicmFyeSgiZGF2 MWQiKSB7CisgICAgIH0KKyAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3Vy cmVudF9jcHUgPT0gImFybTY0IikgeworICAgICBkZXBzICs9IFsgIjpkYXYxZF9hcm0iIF0KKysg IH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBkZXBzICs9IFsgIjpk YXYxZF9wcGMiIF0KKyAgIH0KKyB9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5nbmkKK0BAIC0xMDMsNiArMTAz LDExIEBAIGFybV90ZW1wbGF0ZV9zb3VyY2VzID0gWworICAgImxpYmRhdjFkL3NyYy9hcm0vbWNf aW5pdF90bXBsLmMiLAorIF0KKyAKKytwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzID0gWworKyAgImxp YmRhdjFkL3NyYy9wcGMvY2RlZl9pbml0X3RtcGwuYyIsCisrICAibGliZGF2MWQvc3JjL3BwYy9s b29wcmVzdG9yYXRpb25faW5pdF90bXBsLmMiLAorK10KKysKKyB0ZW1wbGF0ZV9zb3VyY2VzID0g WworICAgImxpYmRhdjFkL3NyYy9jZGVmX2FwcGx5X3RtcGwuYyIsCisgICAibGliZGF2MWQvc3Jj L2NkZWZfdG1wbC5jIiwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9k YXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKK0BAIC01Nyw2ICs1Nyw4IEBAIGRlZiBf V3JpdGVHbihmZCk6CisgICBfV3JpdGVBcnJheShmZCwgImFybTY0X2FzbV9zb3VyY2VzIiwgX0ds b2IoImxpYmRhdjFkL3NyYy9hcm0vNjQvKi5TIikpCisgICBfV3JpdGVBcnJheShmZCwgImFybV90 ZW1wbGF0ZV9zb3VyY2VzIiwgX0dsb2IoImxpYmRhdjFkL3NyYy9hcm0vKl90bXBsLmMiKSkKKyAK KysgIF9Xcml0ZUFycmF5KGZkLCAicHBjNjRfdGVtcGxhdGVfc291cmNlcyIsIF9HbG9iKCJsaWJk YXYxZC9zcmMvcHBjLypfdG1wbC5jIikpCisrCisgICB0ZW1wbGF0ZV9zb3VyY2VzID0gX0dsb2Io ImxpYmRhdjFkL3NyYy8qX3RtcGwuYyIpCisgICBfV3JpdGVBcnJheShmZCwgInRlbXBsYXRlX3Nv dXJjZXMiLCB0ZW1wbGF0ZV9zb3VyY2VzKQorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMu aAorQEAgLTUxLDQgKzUxLDE5IEBACisgI2RlZmluZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2 ZWNfbWVyZ2VsKCh1MTZ4OCkgdiwgdmVjX3NwbGF0X3UxNigwKSkpCisgI2RlZmluZSBpMTZsX3Rv X2kzMih2KSAoKGkzMng0KSB2ZWNfdW5wYWNrbCgoaTE2eDgpdikpCisgCisrI2lmIGRlZmluZWQo X19jbGFuZ19fKQorKyN1bmRlZiB2ZWNfc3BsYXRzCisrI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAg ICAgICAgICAgICAgICAgICAgXAorKyAgICBfR2VuZXJpYygoTiksICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgICAgIHVuc2lnbmVkIGNoYXI6ICAgICAgKCh1OHgxNikoTikpLCBcCisr ICAgICAgICBzaWduZWQgY2hhcjogICAgICAgICgoaTh4MTYpKE4pKSwgXAorKyAgICAgICAgdW5z aWduZWQgc2hvcnQ6ICAgICAoKHUxNng4KShOKSksIFwKKysgICAgICAgIHNpZ25lZCBzaG9ydDog ICAgICAgKChpMTZ4OCkoTikpLCBcCisrICAgICAgICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMy eDQpKE4pKSwgXAorKyAgICAgICAgc2lnbmVkIGludDogICAgICAgICAoKGkzMng0KShOKSksIFwK KysgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZzogKCh1NjR4MikoTikpLCBcCisrICAgICAgICBz aWduZWQgbG9uZyBsb25nOiAgICgoaTY0eDIpKE4pKSAgXAorKyAgICApCisrI2VuZGlmCisrCisg I2VuZGlmIC8qIERBVjFEX1NSQ19QUENfVFlQRVNfSCAqLworLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgorQEAgLTIyLDQgKzIyLDggQEAgY29u ZmlnKCJlaWdlbl9pbmNsdWRlcyIpIHsKKyAgICAgIyBmb3IgdGhpcyBjb21wb25lbnQgb24gV2lu ZG93cyBvbiBBcm0gZHVlIHRvIGNvbXBpbGF0aW9uIGVycm9ycy4KKyAgICAgZGVmaW5lcyArPSBb ICJFSUdFTl9ET05UX1ZFQ1RPUklaRSIgXQorICAgfQorKworKyAgaWYgKHRhcmdldF9jcHUgPT0g InBwYzY0IikgeworKyAgICBkZWZpbmVzICs9IFsgIkVJR0VOX0RPTlRfVkVDVE9SSVpFIiBdCisr ICB9CisgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmFvbS9C VUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmFvbS9C VUlMRC5nbgorQEAgLTM3LDYgKzM3LDggQEAgaWYgKGVuYWJsZV9saWJhb20pIHsKKyAgICAgfSBl bHNlIHsKKyAgICAgICBjcHVfYXJjaF9mdWxsID0gImFybSIKKyAgICAgfQorKyAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJp YyIKKyAgIH0gZWxzZSB7CisgICAgIGNwdV9hcmNoX2Z1bGwgPSBjdXJyZW50X2NwdQorICAgfQor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmdhdjEvb3B0aW9ucy5n bmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJnYXYxL29wdGlv bnMuZ25pCitAQCAtMTIsNSArMTIsNSBAQCBkZWNsYXJlX2FyZ3MoKSB7CisgICAgICAgaXNfY2hy b21lb3NfYXNoICYmICh0YXJnZXRfY3B1ID09ICJhcm0iIHx8IHRhcmdldF9jcHUgPT0gImFybTY0 IikKKyAgIHVzZV9saWJnYXYxX3BhcnNlciA9CisgICAgICAgKGlzX2Nocm9tZW9zIHx8IGlzX2xp bnV4IHx8IGlzX3dpbikgJiYKKy0gICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRf Y3B1ID09ICJ4NjQiIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IikKKysgICAgICAodGFyZ2V0X2Nw dSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiIHx8IHRhcmdldF9jcHUgPT0gImFybTY0 IiB8fCB0YXJnZXRfY3B1ID09ICJwcGM2NCIpCisgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAor QEAgLTQyNjIsNyArNDI2Miw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKKyAgICAgICBMU1Nf UkVHKDIsIGJ1Zik7CisgICAgICAgTFNTX0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOwor ICAgICB9CistI2Vsc2UKKysjZWxpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBk b2Vzbid0IGhhdmUgbW1hcDIgKi8KKyAgICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAy CisgICAgIExTU19JTkxJTkUgX3N5c2NhbGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9p ZCosIHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAg ICAgbCwgaW50LCAgICAgICAgICAgICAgIHAsCitAQCAtNDM3Myw3ICs0MzczLDcgQEAgc3RydWN0 IGtlcm5lbF9zdGF0ZnMgeworICAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBkZWZpbmVk KF9fQVJNX0FSQ0hfM19fKSB8fCBkZWZpbmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBT X1NJTV9BQkkzMikgfHwgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIGRlZmluZWQoX19QUENf XykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgICAgIChkZWZpbmVkKF9fUFBDX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8 fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgKGRlZmluZWQoX19zMzkwX18pICYmICFkZWZpbmVkKF9fczM5MHhfXykpCisgICAgIC8q IE9uIHRoZXNlIGFyY2hpdGVjdHVyZXMsIGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAq LworICAgICBMU1NfSU5MSU5FIHZvaWQqIExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBs LCBpbnQgcCwgaW50IGYsIGludCBkLAorQEAgLTQ1NTYsOSArNDU1NiwxNyBAQCBzdHJ1Y3Qga2Vy bmVsX3N0YXRmcyB7CisgICAgIH0KKyAgICNlbmRpZgorICAgI2lmIGRlZmluZWQoX19OUl9mc3Rh dGF0NjQpCisrICAgICNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgICAgICAvLyBtdXNsIGRv ZXNuJ3QgZGVmaW5lIGZzdGF0YXQ2NCBmc3RhdGF0CisrICAgICAgICAjdW5kZWYgZnN0YXRhdDY0 CisrICAgICNlbmRpZgorICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsNChpbnQsICAgZnN0YXRhdDY0 LCAgICAgICAgaW50LCAgIGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg KiwgICAgICBwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga2VybmVsX3N0YXQ2 NCAqLCAgIGIsICAgIGludCwgICBmKQorKyAgICAjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAg ICAJLy8gdGhlbiByZXN0b3JlIGl0CisrICAgICAgICAjZGVmaW5lIGZzdGF0YXQ2NCBmc3RhdGF0 CisrICAgICNlbmRpZgorICAgI2VuZGlmCisgICAjaWYgZGVmaW5lZChfX05SX3dhaXRwaWQpCisg ICAgIC8vIHdhaXRwaWQgaXMgcG9seWZpbGxlZCBiZWxvdyB3aGVuIG5vdCBhdmFpbGFibGUuCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5 L2xpYnBuZzE2L3BuZ3ByaXYuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L3BkZml1bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmgKK0BAIC0xOTYsMTEgKzE5 Niw3IEBACisgI2VuZGlmCisgCisgI2lmbmRlZiBQTkdfUE9XRVJQQ19WU1hfT1BUCistIyAgaWYg ZGVmaW5lZChfX1BQQzY0X18pICYmIGRlZmluZWQoX19BTFRJVkVDX18pICYmIGRlZmluZWQoX19W U1hfXykKKy0jICAgICBkZWZpbmUgUE5HX1BPV0VSUENfVlNYX09QVCAyCistIyAgZWxzZQorLSMg ICAgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDAKKy0jICBlbmRpZgorKyMgIGRlZmluZSBQ TkdfUE9XRVJQQ19WU1hfT1BUIDAKKyAjZW5kaWYKKyAKKyAjaWZuZGVmIFBOR19JTlRFTF9TU0Vf T1BUCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGZmZnQvc3JjL3Bm ZmZ0LmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMv cGZmZnQuYworQEAgLTEwMCw2ICsxMDAsNyBAQAorICAgIEFsdGl2ZWMgc3VwcG9ydCBtYWNyb3Mg CisgKi8KKyAjaWYgIWRlZmluZWQoUEZGRlRfU0lNRF9ESVNBQkxFKSAmJiAoZGVmaW5lZChfX3Bw Y19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCisrI2luY2x1ZGUgPGFsdGl2ZWMuaD4KKyB0eXBl ZGVmIHZlY3RvciBmbG9hdCB2NHNmOworICMgIGRlZmluZSBTSU1EX1NaIDQKKyAjICBkZWZpbmUg VlpFUk8oKSAoKHZlY3RvciBmbG9hdCkgdmVjX3NwbGF0X3U4KDApKQorLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xT dHJpbmcuY3BwCitAQCAtMTQyLDcgKzE0MiwxMiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRvdWJsZSB2 YWx1ZSkgeworICAgICBpZiAobmVlZHNEb3RaZXJvKSB7CisgICAgICAgICBidWZmZXIgPDwgIi4w IjsKKyAgICAgfQorLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigpKTsKKysK KysgICAgc3RkOjpzdHJpbmcgcmV0KGJ1ZmZlci5zdHIoKSk7CisrICAgIGlmIChzaWduYml0KHZh bHVlKSAmJiByZXRbMF0gPT0gJy4nKSB7CisrICAgICAgICByZXRbMF0gPSAnLSc7CisrICAgIH0K KysgICAgcmV0dXJuIFN0cmluZyhyZXQuY19zdHIoKSk7CisgfQorIAorIGJvb2wgc3RvZChjb25z dCBza3N0ZDo6c3RyaW5nX3ZpZXcmIHMsIFNLU0xfRkxPQVQqIHZhbHVlKSB7CistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3Fs aXRlMy5jCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3Ny Yy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCitAQCAtMTQ2MjgsNyArMTQ2MjgsOCBAQCB0eXBlZGVm IElOVDE2X1RZUEUgTG9nRXN0OworICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQo X19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVk KF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkg IHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAg ICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18p IHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRl ZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01f QVJNNjQpIHx8ICAgXAorKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09S REVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllU RU9SREVSICAgIDEyMzQKKyAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19w cGNfXykgfHwgXAorICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNI NjRFQl9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCitAQCAt MTQ2NDEsNyArMTQ2NDEsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OworICMgaWYgZGVm aW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9J WDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX01fQU1E NjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAg XAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwg ZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9f QUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAorKyAgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFO X18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYgZGVmaW5l ZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAgICAgICBkZWZpbmVkKF9f QVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJl ZS5jCitAQCAtNDUwLDcgKzQ1MCw3IEBAIHN0cnVjdCBSdHJlZU1hdGNoQXJnIHsKKyAjaWYgZGVm aW5lZChpMzg2KSAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICB8fCBkZWZpbmVkKF9NX0lYODYp IHx8ICAgIFwKKyAgICAgZGVmaW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAgICAgZGVmaW5lZChfTV9BTUQ2NCkgfHwgZGVm aW5lZChfTV9BUk0pICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAgZGVmaW5l ZChfX2FybV9fKQorKyAgICBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQorICMgZGVm aW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAorICNlbGlmIGRlZmluZWQoc3BhcmMpICAgIHx8 IGRlZmluZWQoX19wcGNfXykKKyAjIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDQzMjEKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxp dGVJbnQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvc3JjL3NxbGl0ZUludC5oCitAQCAtODkwLDcgKzg5MCw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQ RSBMb2dFc3Q7CisgIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykg ICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX194ODZfNjQp ICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAor ICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVm aW5lZChfX3g4NikgICB8fCAgICBcCistICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5l ZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQorKyAgICAgZGVmaW5lZChfX0FS TUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwg XAorKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19P UkRFUl9MSVRUTEVfRU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEy MzQKKyAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAor ICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0 b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNj CitAQCAtMzAsMTEgKzMwLDcgQEAgYm9vbCBWZWN0b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3Qq IGltYQorICAgc3RhdGljIGJvb2wgKCpkaWZmX3Byb2MpKGNvbnN0IHVpbnQ4X3QqLCBjb25zdCB1 aW50OF90KikgPSBudWxscHRyOworIAorICAgaWYgKCFkaWZmX3Byb2MpIHsKKy0jaWYgZGVmaW5l ZChXRUJSVENfQVJDSF9BUk1fRkFNSUxZKSB8fCBkZWZpbmVkKFdFQlJUQ19BUkNIX01JUFNfRkFN SUxZKQorLSAgICAvLyBGb3IgQVJNIGFuZCBNSVBTIHByb2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2 ZXJzaW9uLgorLSAgICAvLyBUT0RPKGhjbGFtKTogSW1wbGVtZW50IGEgTkVPTiB2ZXJzaW9uLgor LSAgICBkaWZmX3Byb2MgPSAmVmVjdG9yRGlmZmVyZW5jZV9DOworLSNlbHNlCisrI2lmIGRlZmlu ZWQoV0VCUlRDX0FSQ0hfWDg2X0ZBTUlMWSkKKyAgICAgYm9vbCBoYXZlX3NzZTIgPSBHZXRDUFVJ bmZvKGtTU0UyKSAhPSAwOworICAgICAvLyBGb3IgeDg2IHByb2Nlc3NvcnMsIGNoZWNrIGlmIFNT RTIgaXMgc3VwcG9ydGVkLgorICAgICBpZiAoaGF2ZV9zc2UyICYmIGtCbG9ja1NpemUgPT0gMzIp IHsKK0BAIC00NCw2ICs0MCwxMCBAQCBib29sIFZlY3RvckRpZmZlcmVuY2UoY29uc3QgdWludDhf dCogaW1hCisgICAgIH0gZWxzZSB7CisgICAgICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVu Y2VfQzsKKyAgICAgfQorKyNlbHNlCisrICAgIC8vIEZvciBvdGhlciBwcm9jZXNzb3JzLCBhbHdh eXMgdXNlIEMgdmVyc2lvbi4KKysgICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04g dmVyc2lvbi4KKysgICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKKyAjZW5kaWYK KyAgIH0KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9CVUlMRC5nbgorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L0JVSUxELmduCitAQCAtMTA4Myw2ICsxMDgzLDEyIEBA IGNvbmZpZygidG9vbGNoYWluIikgeworICAgICB9CisgICAgIGlmIChob3N0X2J5dGVvcmRlciA9 PSAibGl0dGxlIikgeworICAgICAgIGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0xF IiBdCisrICAgICAgY2ZsYWdzICs9IFsKKysgICAgICAgICMgRW5hYmxlIHVzYWdlIG9mIEFsdGlW ZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VSOCBhbmQgaGlnaGVyIGZlYXR1cmVzCisrICAgICAgICAi LW1jcHU9cG93ZXI4IiwKKysgICAgICAgICItbWFsdGl2ZWMiLAorKyAgICAgICAgIi1tdnN4IiwK KysgICAgICBdCisgICAgIH0gZWxzZSBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImJpZyIpIHsKKyAg ICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19CRSIgXQorICAgICAgIGlmIChj dXJyZW50X29zID09ICJhaXgiKSB7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdWkvZ2wv ZmVhdHVyZXMuZ25pCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdWkvZ2wvZmVhdHVyZXMu Z25pCitAQCAtMzUsNyArMzUsOCBAQCBkZWNsYXJlX2FyZ3MoKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgKGlzX21hYyAmJiB1c2VfZWdsKSB8fCBpc19jaHJvbWVvc19hc2ggfHwgaXNfZnVj aHNpYSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8 IHRhcmdldF9jcHUgPT0gIng2NCIgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRf Y3B1ID09ICJhcm0iIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IiB8fAorLSAgICAgICAgICAgICAg ICAgICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0 ZWwiKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwg dGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiIHx8CisrICAgICAgICAgICAgICAgICAgICAgICAgdGFy Z2V0X2NwdSA9PSAicHBjNjQiKQorIH0KKyAKKyB1c2VfZ2x4ID0gdXNlX3gxMSB8fCBvem9uZV9w bGF0Zm9ybV94MTEKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC90ZXN0L0JVSUxELmdu CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvdGVzdC9CVUlMRC5nbgorQEAgLTQyLDcg KzQyLDYgQEAgZ3JvdXAoImduX2FsbCIpIHsKKyAgICAgICAiYmVuY2htYXJrcy9jcHA6Z25fYWxs IiwKKyAgICAgICAiY2N0ZXN0OmNjdGVzdCIsCisgICAgICAgImNjdGVzdDpnZW5lcmF0ZS1ieXRl Y29kZS1leHBlY3RhdGlvbnMiLAorLSAgICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAg XQorICAgfQorIH0KK0BAIC04NCw3ICs4Myw2IEBAIGdyb3VwKCJ2OF9ib3RfZGVmYXVsdCIpIHsK KyAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCisgICAgICJtanN1bml0OnY4X21qc3VuaXQiLAor ICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKKy0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMi LAorICAgICAid2Via2l0OnY4X3dlYmtpdCIsCisgICBdCisgCitAQCAtMTA5LDcgKzEwNyw2IEBA IGdyb3VwKCJ2OF9kZWZhdWx0IikgeworICAgICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKKyAgICAg Im1qc3VuaXQ6djhfbWpzdW5pdCIsCisgICAgICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAorLSAg ICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCisgICBdCisgCisgICBpZiAodjhfZW5hYmxlX3dlYmFz c2VtYmx5KSB7CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vZGV2 L251bGwKK0BAIC0wLDAgKzEsMzkgQEAKKysvKgorKyAqIEF1dG9nZW5lcmF0ZWQgYnkgdGhlIE1l c29uIGJ1aWxkIHN5c3RlbS4KKysgKiBEbyBub3QgZWRpdCwgeW91ciBjaGFuZ2VzIHdpbGwgYmUg bG9zdC4KKysgKi8KKysKKysjcHJhZ21hIG9uY2UKKysKKysjZGVmaW5lIEFSQ0hfQUFSQ0g2NCAw CisrCisrI2RlZmluZSBBUkNIX0FSTSAwCisrCisrI2RlZmluZSBBUkNIX1BQQzY0TEUgMQorKwor KyNkZWZpbmUgQVJDSF9YODYgMAorKworKyNkZWZpbmUgQVJDSF9YODZfMzIgMAorKworKyNkZWZp bmUgQVJDSF9YODZfNjQgMAorKworKyNkZWZpbmUgQ09ORklHXzE2QlBDIDEKKysKKysjZGVmaW5l IENPTkZJR184QlBDIDEKKysKKysvLyAjZGVmaW5lIENPTkZJR19MT0cgMSAtLSBMb2dnaW5nIGlz IGNvbnRyb2xsZWQgYnkgQ2hyb21pdW0KKysKKysjZGVmaW5lIEVORElBTk5FU1NfQklHIDAKKysK KysjZGVmaW5lIEhBVkVfQVNNIDEKKysKKysjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxCisr CisrI2RlZmluZSBIQVZFX0RMU1lNIDEKKysKKysjZGVmaW5lIEhBVkVfR0VUQVVYVkFMIDEKKysK KysjZGVmaW5lIEhBVkVfUE9TSVhfTUVNQUxJR04gMQorKworKyNkZWZpbmUgSEFWRV9VTklTVERf SCAxCisrCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNw cC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrLmgKKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91 bnNjYWxlZGN5Y2xlY2xvY2suaAorQEAgLTQ2LDcgKzQ2LDcgQEAKKyAKKyAvLyBUaGUgZm9sbG93 aW5nIHBsYXRmb3JtcyBoYXZlIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgaGFyZHdhcmUgY291bnRl ci4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVk KF9fcHBjX18pIHx8IFwKKysgICgoZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bw Y19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBcCisgICBkZWZpbmVkKF9NX0lYODYpIHx8 IGRlZmluZWQoX01fWDY0KQorICNkZWZpbmUgQUJTTF9IQVZFX1VOU0NBTEVEX0NZQ0xFQ0xPQ0tf SU1QTEVNRU5UQVRJT04gMQorICNlbHNlCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2Nv bmZpZy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYWJzZWlsLWNw cC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX2NvbmZpZy5oCitAQCAtNTksNyAr NTksNyBAQAorICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykK KyAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKKyAgICJhYnNsL2RlYnVnZ2lu Zy9pbnRlcm5hbC9zdGFja3RyYWNlX3g4Ni1pbmwuaW5jIgorLSNlbGlmIGRlZmluZWQoX19wcGNf XykgfHwgZGVmaW5lZChfX1BQQ19fKQorKyNlbGlmIGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5l ZChfX1BQQ19fKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFD RV9JTkxfSEVBREVSIFwKKyAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bv d2VycGMtaW5sLmluYyIKKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0 aW9uX2FsbG9jX2NvbmZpZy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxv Y2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgKK0BAIC0x MDAsNyArMTAwLDggQEAgc3RhdGljX2Fzc2VydChzaXplb2Yodm9pZCopICE9IDgsICIiKTsKKyAv LyBQVVRfUkVGX0NPVU5UX0lOX1BSRVZJT1VTX1NMT1QgZG9lcy4gSW4gdGhpcyBjYXNlIHRoZSBy ZWZjb3VudCBvdmVybGFwcyB3aXRoCisgLy8gdGhlIG5leHQgcG9pbnRlciBzaGFkb3cgZm9yIHRo ZSBzbWFsbGVzdCBidWNrZXQuCisgI2lmICEoZGVmaW5lZChPU19NQUMpICYmIGRlZmluZWQoQVJD SF9DUFVfQVJNNjQpKSAmJiBcCistICAgICFCVUlMREZMQUcoUFVUX1JFRl9DT1VOVF9JTl9QUkVW SU9VU19TTE9UKQorKyAgICAhQlVJTERGTEFHKFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xP VCkgJiYgXAorKyAgICAoIWRlZmluZWQoX19HTElCQykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRf XykpCisgI2RlZmluZSBQQV9IQVNfRlJFRUxJU1RfSEFSREVOSU5HCisgI2VuZGlmCisgCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5 CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hh aW5zLnB5CitAQCAtMTMsNiArMTMsOCBAQCBpbXBvcnQgc3lzCisgCisgCisgZGVmIE1haW4oYXJn cyk6CisrICBpZiAnZGlzYWJsZV9uYWNsPTEnIGluIG9zLmVudmlyb24uZ2V0KCdHWVBfREVGSU5F UycsICcnKToKKysgICAgcmV0dXJuIDAKKyAgIHNjcmlwdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUo b3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKKyAgIHNyY19kaXIgPSBvcy5wYXRoLmRpcm5hbWUo c2NyaXB0X2RpcikKKyAgIG5hY2xfZGlyID0gb3MucGF0aC5qb2luKHNyY19kaXIsICduYXRpdmVf Y2xpZW50JykKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvaW5zdGFsbGVyL2xp bnV4L0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vY2hyb21lL2luc3RhbGxl ci9saW51eC9CVUlMRC5nbgorQEAgLTEwMCw4ICsxMDAsNiBAQCBwYWNrYWdpbmdfZmlsZXMgPSBw YWNrYWdpbmdfZmlsZXNfYmluYXJpCisgICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rp ci94ZGctbWltZSIsCisgICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctc2V0 dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvbG9jYWxlcy9lbi1V Uy5wYWsiLAorLSAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9t YW5pZmVzdC5qc29uIiwKKy0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVBy ZWxvYWQvcHJlbG9hZGVkX2RhdGEucGIiLAorICAgICAgICAgICAgICAgICAgIF0KKyAKKyBhY3Rp b25fZm9yZWFjaCgiY2FsY3VsYXRlX2RlYl9kZXBlbmRlbmNpZXMiKSB7CitAQCAtMzIxLDcgKzMx OSw2IEBAIGdyb3VwKCJpbnN0YWxsZXJfZGVwcyIpIHsKKyAgICAgIjp0aGVtZV9maWxlcyIsCisg ICAgICIvL2Nocm9tZSIsCisgICAgICIvL2Nocm9tZTpwYWNrZWRfcmVzb3VyY2VzIiwKKy0gICAg Ii8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2VzL21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIs CisgICAgICIvL2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHA6Y2hyb21lX2NyYXNocGFkX2hhbmRs ZXIiLAorICAgICAiLy9zYW5kYm94L2xpbnV4OmNocm9tZV9zYW5kYm94IiwKKyAgIF0KKy0tLSAv ZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0wLDAgKzEsMTIgQEAKKysvLyBD b3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysj aWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNf SF8KKysjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lT Q0FMTFNfSF8KKysKKysjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorKworKy8vVE9ETzogaXMgaXQg bmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5c2NhbGwgbnVtYmVycyBmb3IgUFBDNjQ/CisrCisrI2Vu ZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExT X0hfCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oCitAQCAtMCwwICsxLDEy IEBACisrLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC U0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp bGUuCisrCisrI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVY X1VDT05URVhUX0hfCisrI2RlZmluZSBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0 X0xJTlVYX1VDT05URVhUX0hfCisrCisrI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorKworKy8v VE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHVjb250ZXh0IG9uIFBQQzY0PworKwor KyNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09O VEVYVF9IXworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbmV0L2h0dHBfdHJhbnNwb3J0X2xpYmN1cmwuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25ldC9o dHRwX3RyYW5zcG9ydF9saWJjdXJsLmNjCitAQCAtMjM2LDYgKzIzNiwxMiBAQCBzdGQ6OnN0cmlu ZyBVc2VyQWdlbnQoKSB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9CSUdfRU5ESUFOKQorICAg ICBzdGF0aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gImFhcmNoNjRfYmUiOworICNlbmRpZgor KyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9MSVRU TEVfRU5ESUFOKQorKyAgICBzdGF0aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gInBwYzY0bGUi OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfQklHX0VORElBTikKKysgICAgc3RhdGljIGNvbnN0 ZXhwciBjaGFyIGFyY2hbXSA9ICJwcGM2NCI7CisrI2VuZGlmCisgI2Vsc2UKKyAjZXJyb3IgUG9y dAorICNlbmRpZgorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAorQEAgLTAsMCArMSwz OSBAQAorKy8qCisrICogQXV0b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgor KyAqIERvIG5vdCBlZGl0LCB5b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0LgorKyAqLworKworKyNw cmFnbWEgb25jZQorKworKyNkZWZpbmUgQVJDSF9BQVJDSDY0IDAKKysKKysjZGVmaW5lIEFSQ0hf QVJNIDAKKysKKysjZGVmaW5lIEFSQ0hfUFBDNjRMRSAxCisrCisrI2RlZmluZSBBUkNIX1g4NiAw CisrCisrI2RlZmluZSBBUkNIX1g4Nl8zMiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl82NCAwCisr CisrI2RlZmluZSBDT05GSUdfMTZCUEMgMQorKworKyNkZWZpbmUgQ09ORklHXzhCUEMgMQorKwor Ky8vICNkZWZpbmUgQ09ORklHX0xPRyAxIC0tIExvZ2dpbmcgaXMgY29udHJvbGxlZCBieSBDaHJv bWl1bQorKworKyNkZWZpbmUgRU5ESUFOTkVTU19CSUcgMAorKworKyNkZWZpbmUgSEFWRV9BU00g MQorKworKyNkZWZpbmUgSEFWRV9DTE9DS19HRVRUSU1FIDEKKysKKysjZGVmaW5lIEhBVkVfRExT WU0gMQorKworKyNkZWZpbmUgSEFWRV9HRVRBVVhWQUwgMQorKworKyNkZWZpbmUgSEFWRV9QT1NJ WF9NRU1BTElHTiAxCisrCisrI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKKysKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDMteHh4LXBwYzY0bGUtc3dpZnRzaGFk ZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxl LXN3aWZ0c2hhZGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMWE4Y2Q4MzY4ZGExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDkwMy14eHgtcHBjNjRsZS1zd2lmdHNoYWRlci5wYXRjaApAQCAtMCwwICsxLDE4 IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIv dGhpcmRfcGFydHkvbGx2bS0xMC4wL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JVSUxELmdu CitAQCAtNTc2LDYgKzU3Niw3IEBAIHN3aWZ0c2hhZGVyX2xsdm1fc291cmNlX3NldCgic3dpZnRz aGFkZXIKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0NPRkYuY3BwIiwKKyAgICAgImxsdm0v bGliL01DL01DQXNtSW5mb0Rhcndpbi5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZv RUxGLmNwcCIsCisrICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9YQ09GRi5jcHAiLAorICAgICAi bGx2bS9saWIvTUMvTUNBc21NYWNyby5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21TdHJl YW1lci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc3NlbWJsZXIuY3BwIiwKK0BAIC02MzEs NiArNjMyLDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3VyY2Vfc2V0KCJzd2lmdHNoYWRlcgorICAg ICAibGx2bS9saWIvTUMvTUNXaW5DT0ZGU3RyZWFtZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01D L01DV2luRUguY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DWENPRkZTdHJlYW1lci5jcHAiLAor KyAgICAibGx2bS9saWIvTUMvTUNYQ09GRk9iamVjdFRhcmdldFdyaXRlci5jcHAiLAorICAgICAi bGx2bS9saWIvTUMvTWFjaE9iamVjdFdyaXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvU3Ry aW5nVGFibGVCdWlsZGVyLmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9TdWJ0YXJnZXRGZWF0dXJl LmNwcCIsCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5iMTYzYTcxNjcwOTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvdGVtcGxhdGUKQEAgLTAsMCArMSwxNTEgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J3F0Ni13ZWJlbmdpbmUnCitwa2duYW1lPXF0Ni13ZWJlbmdpbmUKK3ZlcnNpb249Ni4zLjEKK3Jl dmlzaW9uPTEKK3dya3NyYz0icXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIK K2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAt RFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZQorIC1EUVRfRkVBVFVSRV93 ZWJlbmdpbmVfc3lzdGVtX2ZmbXBlZz1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVt X2xpYmV2ZW50PU9OCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZ249T04KKyAtRFFU X0ZFQVRVUkVfd2ViZW5naW5lX3N5c3RlbV9pY3U9T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5l X3dlYnJ0Y19waXBld2lyZT1PTgorIC1ETmluamFfRVhFQ1VUQUJMRT0kWEJQU19XUkFQUEVSRElS L25pbmphCisgLURQS0dfQ09ORklHX0hPU1RfRVhFQ1VUQUJMRT0ke1BLR19DT05GSUdfRk9SX0JV SUxEfSIKK2hvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcGVybCBwa2ctY29uZmlnIG5v ZGVqcyBweXRob24zLWh0bWw1bGliCisgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHByb3RvYnVmIGdw ZXJmIGZsZXggbnNzLWRldmVsIGxpYndlYnAtZGV2ZWwKKyBpY3UtZGV2ZWwgbGliZXZlbnQtZGV2 ZWwiCittYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB1 bHNlYXVkaW8tZGV2ZWwKKyBxdDYtdG9vbHMtZGV2ZWwgcXQ2LXF1aWNrY29udHJvbHMyLWRldmVs IHF0Ni13ZWJzb2NrZXRzLWRldmVsCisgbGliZmxhYy1kZXZlbAorIGFsc2EtbGliLWRldmVsIGxp YnZweC1kZXZlbCBwY2l1dGlscy1kZXZlbCBvcHVzLWRldmVsIGxpYnhzbHQtZGV2ZWwKKyBsaWJ4 bWwyLWRldmVsIGZyZWV0eXBlLWRldmVsIGxjbXMyLWRldmVsIGxpYndlYnAtZGV2ZWwgaWN1LWRl dmVsCisgcmUyLWRldmVsIHpsaWItZGV2ZWwgbGlicG5nLWRldmVsIG1pbml6aXAtZGV2ZWwgaGFy ZmJ1enotZGV2ZWwKKyBuc3MtZGV2ZWwgbGliWGN1cnNvci1kZXZlbCBsaWJYY29tcG9zaXRlLWRl dmVsIGxpYlhTY3JuU2F2ZXItZGV2ZWwKKyBwcm90b2J1Zi1kZXZlbCBmZm1wZWctZGV2ZWwgc25h cHB5LWRldmVsIGxpYmV2ZW50LWRldmVsIHBpcGV3aXJlLWRldmVsCisgbGlieGtiZmlsZS1kZXZl bCBxdDYtbG9jYXRpb24tZGV2ZWwgcXQ2LXdlYmNoYW5uZWwtZGV2ZWwgbGlieHNobWZlbmNlLWRl dmVsIgorc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1l d29yayAtIFdlYmVuZ2luZSIKK21haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4i CitsaWNlbnNlPSJHUEwtMy4wLW9ubHksIEdQTC0yLjAtb25seSwgTEdQTC0zLjAtb25seSBCU0Qt My1DbGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCitkaXN0ZmlsZXM9Imh0dHBz Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb259L3N1Ym1vZHVsZXMvcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50 YXIueHoiCitjaGVja3N1bT1hZDdhMzNiMjFhOTU2ZGVkYTM3YzU4N2Q1MGY4MjFjYTM4MTY0MDNh ZTMxYmE5YjVkNTlkMDE1NjFhZDY2ZTQ3CisKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIgXTt0aGVu CisJY29uZmlndXJlX2FyZ3MrPSIgLURDTUFLRV9UT09MQ0hBSU5fRklMRT0vdXNyL2xpYi9jbWFr ZS9RdDYvcXQudG9vbGNoYWluLmNtYWtlIgorZmkKKworaWYgWyAiJFhCUFNfTElCQyIgPSAibXVz bCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQor CitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2VkZXBlbmRz Kz0iIG11c2wtbGVnYWN5LWNvbXBhdCIKK2ZpCisKK2lmIFsgISAiJFhCUFNfV09SRFNJWkUiID0g IiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgXTsgdGhlbgorCWJyb2tlbj0id2ViZW5naW5lIGNhbiBi ZSBidWlsdCBvbmx5IGlmIHdvcmQgc2l6ZSBtYXRjaGVzIgorZmkKKworaWYgWyAiJFhCUFNfV09S RFNJWkUiIC1lcSAzMiBdOyB0aGVuCisJbm9kZWJ1Zz15ZXMKKwlMREZMQUdTPSItV2wsLS1uby1r ZWVwLW1lbW9yeSIKK2ZpCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9FTkRJQU4iICE9ICJsZSIgXTsg dGhlbgorCWJyb2tlbj0id2ViZW5naW5lIG9ubHkgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiIKK2Zp CisKK2J1aWxkX29wdGlvbnM9InNuZGlvIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSIiCitkZXNj X29wdGlvbl9zbmRpbz0iRW5hYmxlIHN1cHBvcnQgZm9yIHNuZGlvIgorCisKK19ib290c3RyYXBf Z24oKSB7CisJIyBCb290c3RyYXAgZ24gKGdlbmVyYXRlIG5pbmphKQorCWVjaG8gIkJvb3RzdHJh cHBpbmcgJ2duJyIKKwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2duCisJQ0ZMQUdTPSIkQ0ZM QUdTX2hvc3QiIENYWEZMQUdTPSIkQ1hYRkxBR1NfaG9zdCIgTERGTEFHUz0iJExERkxBR1NfaG9z dCIgXAorCVBLR0NPTkZJRz0vdXNyL2Jpbi9wa2djb25maWcgUEtHX0NPTkZJR19QQVRIPSIvdXNy L2xpYi9wa2djb25maWc6L3Vzci9zaGFyZS9wa2djb25maWciIFwKKwkJcHl0aG9uMyBidWlsZC9n ZW4ucHkgLS1uby1sYXN0LWNvbW1pdC1wb3NpdGlvbiAtLW91dC1wYXRoIFwKKwkJCSR7d3Jrc3Jj fS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UgLS1jYyAiJHtDQ19ob3N0Oi0kQ0N9IiBcCisJ CQktLWN4eCAiJHtDWFhfaG9zdDotJENYWH0iIC0tbGQgIiR7Q1hYX2hvc3Q6LSRDWFh9IiAtLWFy ICIke0FSX2hvc3Q6LSRBUn0iIFwKKwkJCS0tcXQtdmVyc2lvbiAiJHt2ZXJzaW9ufS5xdHdlYmVu Z2luZS5xdC5pbyIKKwluaW5qYSAtQyBvdXQvUmVsZWFzZSBnbgorCWNkICR7d3Jrc3JjfQorfQor CitfdW5idW5kbGVfbGlicygpIHsKKwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2Nocm9taXVt CisJZWNobyBEcm9wcGluZyBidW5kbGVkIGxpYnMgZnJvbSBjaHJvbWl1bQorCSMgVXNlIHN5c3Rl bS1wcm92aWRlZCBsaWJyYXJpZXMuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0 cmVhbSBjaGFuZ2VzIG5lZWRlZCkuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnNydHAuCisJIyBU T0RPOiB1c2Vfc3lzdGVtX2xpYnVzYiAoaHR0cDovL2NyYnVnLmNvbS8yNjYxNDkpLgorCSMgVE9E TzogdXNlX3N5c3RlbV9zc2wgKGh0dHA6Ly9jcmJ1Zy5jb20vNTgwODcpLgorCSMgVE9ETzogdXNl X3N5c3RlbV9zcWxpdGUgKGh0dHA6Ly9jcmJ1Zy5jb20vMjIyMDgpLgorCSMgVE9ETzogdXNlX3N5 c3RlbV9pY3UgKHNlZ2ZhdWx0cykKKwkjIHVzZV9zeXN0ZW1fcHJvdG9idWYKKwkjIHVzZV9zeXN0 ZW1fdjg9MQorCSMgdXNlX3N5c3RlbV96bGliPTEKKwkjIGJ6aXAyIGpzb25jcHAgbWluaXppcCB4 ZGdfdXRpbHMgc3BlZXgKKwlzeXN0ZW09IgorCQlmZm1wZWcKKwkJZmxhYworCQlmb250Y29uZmln CisJCWZyZWV0eXBlCisJCWhhcmZidXp6LW5nCisJCWljdQorCQlsaWJkcm0KKwkJbGliZXZlbnQK KwkJbGlianBlZworCQlsaWJwbmcKKwkJbGlid2VicAorCQlsaWJ4bWwKKwkJbGlieHNsdAorCQlv cHVzCisJCXJlMgorCQlzbmFwcHkKKwkiCisJYnVpbGQvbGludXgvdW5idW5kbGUvcmVwbGFjZV9n bl9maWxlcy5weSAtLXN5c3RlbS1saWJyYXJpZXMgJHtzeXN0ZW19Cit9CisKKyMgUHJvdmlkZSBh IHdyYXBwZXIgdG8gcnVuIC4veGJwcy1zcmMgLWogMSBidWlsZCBsYXRlcgorX3dyYXBfbmluamEo KSB7CisJY2F0IDw8LSdfRU9GJyA+IiRYQlBTX1dSQVBQRVJESVIiL25pbmphCisJIyEvYmluL3No CisKKwlleGVjIC91c3IvYmluL25pbmphICROSU5KQUZMQUdTICIkQCIKKwlfRU9GCisJY2htb2Qg K3ggIiRYQlBTX1dSQVBQRVJESVIiL25pbmphCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJY3Ag JHtGSUxFU0RJUn0vcmVzb2x2X2NvbXBhdC5oICR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvY2hyb21p dW0vbmV0L2RucworCV9ib290c3RyYXBfZ24KKwkjIF91bmJ1bmRsZV9saWJzCisJX3dyYXBfbmlu amEKKwlleHBvcnQgUEFUSD0iJFBBVEg6JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVs ZWFzZSIKK30KKworcHJlX2J1aWxkKCkgeworCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dya3NyY30v c3JjLzNyZHBhcnR5L2duL291dC9SZWxlYXNlIgorCWV4cG9ydCBOSU5KQUZMQUdTPSIkbWFrZWpv YnMiCisKK30KKworcHJlX2luc3RhbGwoKSB7CisJZXhwb3J0IFBBVEg9IiRQQVRIOiR7d3Jrc3Jj fS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UiCit9CisKK3F0Ni13ZWJlbmdpbmUtZGV2ZWxf cGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0gcXQ2LXdlYmNoYW5uZWwtZGV2ZWw+PSR7dmVyc2lvbn1fMQorCSBxdDYtZGVjbGFyYXRpdmUt ZGV2ZWw+PSR7dmVyc2lvbn1fMSBxdDYtbG9jYXRpb24tZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlz aG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9x dDYvbWtzcGVjcworCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCX0KK30KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0NTUyNDY1MjIyCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQpAQCAtMCwwICsx IEBACitwa2duYW1lPSIke3BrZ25hbWUvNi0vfS1ldmVyeXdoZXJlLXNyYyIK --===============5317049585424487782==--