From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id c061b214 for ; Tue, 29 Oct 2019 17:36:25 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============8196274415484704831==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] Openjdk 11 To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 29 Oct 2019 18:36:25 +0100 Message-ID: <20191029173625.0JUOCxCGOnWaAK4kd4_1d-U5GOAJgM0ccTbS0vCyn3c@z> GitHub notification mails are now in MIME to allow UTF8. --===============8196274415484704831== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkga251c2JhdW0gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2tu dXNiYXVtL3ZvaWQtcGFja2FnZXMgb3Blbmpkay0xMQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTM3MjEKCk9wZW5qZGsgMTEKSSdkIG11Y2ggcmF0aGVy IGhhdmUgQHE2NidzIHNvbHV0aW9uICgjMzIzNykgYnV0IHRoaXMgc2VlbXMgdG8gYnVpbGQgZm9y IGF0IGxlYXN0IHg4Nl82NCwgaTY4NiwgYWFyY2g2NC4NCg0KVGhpcyBib290c3RyYXBzIG9wZW5q ZGstMTEgZnJvbSBvcGVuamRrLTExLWJpbiwgd2hpY2ggaXMgdGhlIGJpbmFyeSByZWZlcmVuY2Ug aW1wbGVtZW50YXRpb24uDQoNClRyYXZpcyB3aWxsIGZhaWwgYmVjYXVzZSB0aGUgYnVpbGRzIHRh a2UgdG9vIGxvbmcsIGJ1dCBJJ3ZlIHRlc3RlZCBvbiBteSBsb2NhbCBtYWNoaW5lIGFuZCB0aGV5 IGJ1aWxkLiAKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8xMzcyMS5wYXRjaCBpcyBhdHRhY2hlZA== --===============8196274415484704831== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk-11-13721.patch" RnJvbSBjNmI4MzBmN2E0ODQ1OTc2N2IwMjg2YTkwZjZkMjQ2NWYwNTY2NTdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPEt5bGVKTnVzYmF1bUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjkgT2N0IDIwMTkgMTI6MzM6MTcgLTA1MDAKU3ViamVjdDogW1BBVENIIDEv M10gTmV3IHBhY2thZ2U6IG1ha2UtY2EtMS41CgotLS0KIHNyY3BrZ3MvbWFrZS1jYS90ZW1wbGF0 ZSB8IDE2ICsrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tYWtlLWNhL3RlbXBsYXRlCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tYWtlLWNhL3RlbXBsYXRlIGIvc3JjcGtncy9tYWtlLWNhL3RlbXBsYXRlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iY2M0MWY4MTE5ZAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbWFrZS1jYS90ZW1wbGF0ZQpAQCAtMCwwICsxLDE2IEBACisj IFRlbXBsYXRlIGZpbGUgZm9yICdtYWtlLWNhJworcGtnbmFtZT1tYWtlLWNhCit2ZXJzaW9uPTEu NQorcmV2aXNpb249MQord3Jrc3JjPSJtYWtlLWNhLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1n bnUtbWFrZWZpbGUKK21ha2VfaW5zdGFsbF9hcmdzPSJTQklORElSPS91c3IvYmluIgoraG9zdG1h a2VkZXBlbmRzPSJoZWxwMm1hbiIKK2RlcGVuZHM9InAxMS1raXQiCitzaG9ydF9kZXNjPSJQS0kg c2V0dXAgc2NyaXB0IGZvciBMRlMgKGFuZCBvdGhlcnMpIgorbWFpbnRhaW5lcj0iS3lsZSBOdXNi YXVtIDxrbnVzYmF1bSt2b2lkQHNkZi5vcmc+IgorbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIK K2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZGpsdWNhcy9tYWtlLWNhLyIKK2Rpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2RqbHVjYXMvbWFrZS1jYS9yZWxlYXNlcy9kb3dubG9hZC92 JHt2ZXJzaW9ufS9tYWtlLWNhLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09ZTc1NzcxZGQ3 M2ViOTcxODkzMzkzNzk2MjZmYjQyMjQxZWU1NzkwNThjNmVhMjkwMGVjODUwZTdkOTYxNzlmNwor YXJjaHM9bm9hcmNoCgpGcm9tIDIxNzllMzE1ZTZmNWNhOWVmMmFmNDg3ZTQ0OWI1MTJkOTZjYmVj NWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEt5bGUgTnVzYmF1bSA8S3lsZUpOdXNi YXVtQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBPY3QgMjAxOSAxMjozMzo1OCAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggMi8zXSBOZXcgcGFja2FnZTogb3BlbmpkazExLWJpbi0xMSsyOAoKLS0tCiBz cmNwa2dzL29wZW5qZGsxMS1iaW4vdGVtcGxhdGUgfCA3MyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazExLWJpbi90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvb3BlbmpkazExLWJpbi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazExLWJpbi90ZW1w bGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjJkYTgzZDIxZWIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMS1iaW4vdGVtcGxhdGUKQEAgLTAs MCArMSw3MyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmpkazExLWJpbicKK3BrZ25hbWU9 b3BlbmpkazExLWJpbgordmVyc2lvbj0xMSsyOAorcmV2aXNpb249MQorYXJjaHM9Ing4Nl82NCIK K3dya3NyYz1qZGstMTEKK3Nob3J0X2Rlc2M9Ik9mZmljaWFsIFJlZmVyZW5jZSBJbXBsZW1lbnRh dGlvbiBmb3IgSmF2YSBTRSAxMSIKK21haW50YWluZXI9Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0r dm9pZEBzZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0 cHM6Ly9qZGsuamF2YS5uZXQvamF2YS1zZS1yaS8xMSIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3du bG9hZC5qYXZhLm5ldC9vcGVuamRrL2pkazExL3JpL29wZW5qZGstJHt2ZXJzaW9ufV9saW51eC14 NjRfYmluLnRhci5neiIKK2NoZWNrc3VtPTM3ODRjZmM0NjcwZjBkNGM1NDgyNjA0YzdjNTEzYmVi MWE5MmIwMDVmNTY5ZGY5YmYxMDBlOGJlZjY2MTBmMmUKK25vcGllPXRydWUKKworYWx0ZXJuYXRp dmVzPSIKKyBqYXZhOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmlu L2phdmEKKyBqYXZhOi91c3IvYmluL2phdmF3czovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9i aW4vamF2YXdzCisgamF2YTovdXNyL2Jpbi9qY29udHJvbDovdXNyL2xpYi9qdm0vb3BlbmpkazEx LWJpbi9iaW4vamNvbnRyb2wKKyBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3Blbmpk azExLWJpbi9iaW4vampzCisgamF2YTovdXNyL2Jpbi9rZXl0b29sOi91c3IvbGliL2p2bS9vcGVu amRrMTEtYmluL2Jpbi9rZXl0b29sCisgamF2YTovdXNyL2Jpbi9vcmJkOi91c3IvbGliL2p2bS9v cGVuamRrMTEtYmluL2Jpbi9vcmJkCisgamF2YTovdXNyL2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2 bS9vcGVuamRrMTEtYmluL2Jpbi9wYWNrMjAwCisgamF2YTovdXNyL2Jpbi9wb2xpY3l0b29sOi91 c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9wb2xpY3l0b29sCisgamF2YTovdXNyL2Jpbi9y bWlkOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9ybWlkCisgamF2YTovdXNyL2Jpbi9y bWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vcm1pcmVnaXN0cnkKKyBq YXZhOi91c3IvYmluL3NlcnZlcnRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL3Nl cnZlcnRvb2wKKyBqYXZhOi91c3IvYmluL3RuYW1lc2VydjovdXNyL2xpYi9qdm0vb3BlbmpkazEx LWJpbi9iaW4vdG5hbWVzZXJ2CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZt L29wZW5qZGsxMS1iaW4vYmluL3VucGFjazIwMAorCisgamRrOi91c3IvYmluL0NvbnRyb2xQYW5l bDovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vQ29udHJvbFBhbmVsCisgamRrOi91c3Iv YmluL2FwcGxldHZpZXdlcjovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vYXBwbGV0dmll d2VyCisgamRrOi91c3IvYmluL2V4dGNoZWNrOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jp bi9leHRjaGVjaworIGpkazovdXNyL2Jpbi9pZGxqOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmlu L2Jpbi9pZGxqCisgamRrOi91c3IvYmluL2phcjovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9i aW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJp bi9iaW4vamFyc2lnbmVyCisgamRrOi91c3IvYmluL2phdmEtcm1pLmNnaTovdXNyL2xpYi9qdm0v b3BlbmpkazExLWJpbi9iaW4vamF2YS1ybWkuY2dpCisgamRrOi91c3IvYmluL2phdmFjOi91c3Iv bGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qYXZhYworIGpkazovdXNyL2Jpbi9qYXZhZG9jOi91 c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qYXZhZG9jCisgamRrOi91c3IvYmluL2phdmFm eHBhY2thZ2VyOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qYXZhZnhwYWNrYWdlcgor IGpkazovdXNyL2Jpbi9qYXZhaDovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamF2YWgK KyBqZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2phdmFw CisgamRrOi91c3IvYmluL2phdmFwYWNrYWdlcjovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9i aW4vamF2YXBhY2thZ2VyCisgamRrOi91c3IvYmluL2pjbWQ6L3Vzci9saWIvanZtL29wZW5qZGsx MS1iaW4vYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNvbGU6L3Vzci9saWIvanZtL29wZW5q ZGsxMS1iaW4vYmluL2pjb25zb2xlCisgamRrOi91c3IvYmluL2pkYjovdXNyL2xpYi9qdm0vb3Bl bmpkazExLWJpbi9iaW4vamRiCisgamRrOi91c3IvYmluL2pkZXBzOi91c3IvbGliL2p2bS9vcGVu amRrMTEtYmluL2Jpbi9qZGVwcworIGpkazovdXNyL2Jpbi9qaGF0Oi91c3IvbGliL2p2bS9vcGVu amRrMTEtYmluL2Jpbi9qaGF0CisgamRrOi91c3IvYmluL2ppbmZvOi91c3IvbGliL2p2bS9vcGVu amRrMTEtYmluL2Jpbi9qaW5mbworIGpkazovdXNyL2Jpbi9qbWFwOi91c3IvbGliL2p2bS9vcGVu amRrMTEtYmluL2Jpbi9qbWFwCisgamRrOi91c3IvYmluL2ptYzovdXNyL2xpYi9qdm0vb3Blbmpk azExLWJpbi9iaW4vam1jCisgamRrOi91c3IvYmluL2ptYy5pbmk6L3Vzci9saWIvanZtL29wZW5q ZGsxMS1iaW4vYmluL2ptYy5pbmkKKyBqZGs6L3Vzci9iaW4vanBzOi91c3IvbGliL2p2bS9vcGVu amRrMTEtYmluL2Jpbi9qcHMKKyBqZGs6L3Vzci9iaW4vanJ1bnNjcmlwdDovdXNyL2xpYi9qdm0v b3BlbmpkazExLWJpbi9iaW4vanJ1bnNjcmlwdAorIGpkazovdXNyL2Jpbi9qc2FkZWJ1Z2Q6L3Vz ci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2pzYWRlYnVnZAorIGpkazovdXNyL2Jpbi9qc3Rh Y2s6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2pzdGFjaworIGpkazovdXNyL2Jpbi9q c3RhdDovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vanN0YXQKKyBqZGs6L3Vzci9iaW4v anN0YXRkOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qc3RhdGQKKyBqZGs6L3Vzci9i aW4vanZpc3VhbHZtOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qdmlzdWFsdm0KKyBq ZGs6L3Vzci9iaW4vbmF0aXZlMmFzY2lpOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9u YXRpdmUyYXNjaWkKKyBqZGs6L3Vzci9iaW4vcm1pYzovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJp bi9iaW4vcm1pYworIGpkazovdXNyL2Jpbi9zY2hlbWFnZW46L3Vzci9saWIvanZtL29wZW5qZGsx MS1iaW4vYmluL3NjaGVtYWdlbgorIGpkazovdXNyL2Jpbi9zZXJpYWx2ZXI6L3Vzci9saWIvanZt L29wZW5qZGsxMS1iaW4vYmluL3NlcmlhbHZlcgorIGpkazovdXNyL2Jpbi93c2dlbjovdXNyL2xp Yi9qdm0vb3BlbmpkazExLWJpbi9iaW4vd3NnZW4KKyBqZGs6L3Vzci9iaW4vd3NpbXBvcnQ6L3Vz ci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL3dzaW1wb3J0CisgamRrOi91c3IvYmluL3hqYzov dXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4veGpjCisKKyBqYXZhLXBsdWdpbjovdXNyL2xp Yi9tb3ppbGxhL3BsdWdpbnMvbGlibnBqcDIuc286L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4v anJlL2xpYi8kX2FyY2gvbGlibnBqcDIuc28KKyIKKworZG9faW5zdGFsbCgpIHsKKwl2bWtkaXIg L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4KKwljcCAtUiAuLyogJHtERVNURElSfS91c3IvbGli L2p2bS9vcGVuamRrMTEtYmluCit9CgpGcm9tIDNjZjllYzEyNTAwMTYxNGNkNGU3NWM1MTlkOTZh ZmI4NDZjMDE4ZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEt5bGUgTnVzYmF1bSA8 S3lsZUpOdXNiYXVtQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBPY3QgMjAxOSAxMjozNjowMCAt MDUwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBOZXcgcGFja2FnZTogb3BlbmpkazExLTExLjAuNSsx MAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDYgKwogc3JjcGtncy9vcGVuamRrMTEtZG9jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyY3BrZ3Mvb3BlbmpkazExLXNyYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTEgKwog Li4uL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoICAgIHwgIDMwICsKIC4u Li9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoICB8IDUzNyArKysrKysr KysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjNjRsZS5wYXRjaCAgICAgICAg ICB8IDIyMSArKysrKysrCiAuLi4vb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0 Y2ggICAgfCAxMzAgKysrKysKIHNyY3BrZ3Mvb3BlbmpkazExL3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgICB8IDE4MyArKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMTEyMCBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9vcGVuamRrMTEtZG9jCiBjcmVhdGUgbW9kZSAx MjAwMDAgc3JjcGtncy9vcGVuamRrMTEtc3JjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9v cGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxk LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9w YXRjaGVzL3BwYzY0bGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsx MS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9vcGVuamRrMTEvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9u L3NobGlicwppbmRleCBiNWI2MDg2ZDI0Zi4uYWU1MDYyMjFlMjUgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMTc3OCw2ICsxNzc4LDEyIEBAIGxpYmF3 dF94YXd0LnNvIG9wZW5qZGstanJlLTh1MjBfMQogbGliamF2YS5zbyBvcGVuamRrLWpyZS04dTIw XzEKIGxpYmpsaS5zbyBvcGVuamRrLWpyZS04dTIwXzEKIGxpYmp2bS5zbyBvcGVuamRrLWpyZS04 dTIwXzEKK2xpYmphd3Quc28gb3BlbmpkazExLTExLjAuNSsxMF8xCitsaWJhd3Quc28gb3Blbmpk azExLTExLjAuNSsxMF8xCitsaWJhd3RfeGF3dC5zbyBvcGVuamRrMTEtMTEuMC41KzEwXzEKK2xp YmphdmEuc28gb3BlbmpkazExLTExLjAuNSsxMF8xCitsaWJqbGkuc28gb3BlbmpkazExLTExLjAu NSsxMF8xCitsaWJqdm0uc28gb3BlbmpkazExLTExLjAuNSsxMF8xCiBsaWJ1Y2wuc28uNSBsaWJ1 Y2wtMC44LjFfMQogbGliaGFuZGxlLnNvLjEgeGZzcHJvZ3MtMy4yLjFfMQogbGlibmZuZXRsaW5r LnNvLjAgbGlibmZuZXRsaW5rLTEuMC4xXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEx LWRvYyBiL3NyY3BrZ3Mvb3BlbmpkazExLWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAw MDAwMDAwMDAwMC4uODIxMzQ5NGM0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5q ZGsxMS1kb2MKQEAgLTAsMCArMSBAQAorb3BlbmpkazExClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTEtc3JjIGIvc3JjcGtncy9vcGVuamRr MTEtc3JjCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi44MjEzNDk0YzQ5 ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazExLXNyYwpAQCAtMCwwICsxIEBA CitvcGVuamRrMTEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mv b3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTVmNDU1ZTkyNgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCkBAIC0w LDAgKzEsMTEgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0 dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFm NTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29z X2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCitAQCAtNzcsNyArNzcsNiBA QAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1 Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKworICNpZmRlZiBCVUlMVElO X1NJTQorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpk azExL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMS9maWxl cy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4xMmQwMDIyYzE0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEx L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorUGF0Y2hlcyBm b3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgu b3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0 YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0u Y3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNw cAorQEAgLTcxLDcgKzcxLDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9s bC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+ CisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNw IgorQEAgLTEwNCw2ICsxMDMsMTggQEAKKyAjZGVmaW5lIEFSTV9SRUdTX0lOX0NPTlRFWFQgIDMx CisKKyAjZWxzZQorKworKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9l c250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9hcm0uY3BwOjEx NDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8v ICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlz IDE4LCBzbyBmb3JjZSBpdCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVm IE5HUkVHCisrI2VuZGlmCisrI2RlZmluZSBOR1JFRyAxOAorCisgI2lmIE5HUkVHID09IDE2Cisg Ly8gVGhlc2UgZGVmaW5pdGlvbnMgYXJlIGJhc2VkIG9uIHRoZSBvYnNlcnZhdGlvbiB0aGF0IHVu dGlsCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYnVp bGQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgxZWQwZjUzYjFkCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoCkBAIC0wLDAgKzEsNTM3IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20g QWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/ aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9tYWtl L1JlbGVhc2VGaWxlLmdtaworKysrIG5ldy9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYg KzUzLDcgQEAKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lPTl9EQVRFIiwg IiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19OQU1FIiwg IiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9T X0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChjYWxsIGluZm8tZmlsZS1p dGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorCisgIyBQYXJhbSAxIC0gVGhlIGZpbGUgY29u dGFpbmluZyB0aGUgTU9EVUxFUyBsaXN0CistLS0gb2xkL21ha2UvYXV0b2NvbmYvYnVpbGQtYXV4 L2NvbmZpZy5ndWVzcworKysrIG5ldy9tYWtlL2F1dG9jb25mL2J1aWxkLWF1eC9jb25maWcuZ3Vl c3MKK0BAIC0zMCw2ICszMCwxNyBAQAorIERJUj1gZGlybmFtZSAkMGAKKyBPVVQ9YC4gJERJUi9h dXRvY29uZi1jb25maWcuZ3Vlc3NgCisKKysjIGNvbmZpZy5ndWVzcyBkb2Vzbid0IGlkZW50aWZ5 IHN5c3RlbXMgcnVubmluZyB0aGUgbXVzbCBDIGxpYnJhcnksIGFuZCB3aWxsCisrIyBpbnN0ZWFk IHJldHVybiBhIHN0cmluZyB3aXRoIGEgLWdudSBzdWZmaXguIFRoaXMgYmxvY2sgZGV0ZWN0cyBt dXNsIGFuZAorKyMgbW9kaWZpZXMgdGhlIHN0cmluZyB0byBoYXZlIGEgLW11c2wgc3VmZml4IGlu c3RlYWQuIAorK2VjaG8gJE9VVCB8IGdyZXAgLS0gLWxpbnV4LSA+IC9kZXYvbnVsbCAyPiAvZGV2 L251bGwKKytpZiB0ZXN0ICQ/ID0gMDsgdGhlbgorKyAgbGRkX3ZlcnNpb249YGxkZCAtLXZlcnNp b24gMj4mMSB8IGhlYWQgLTEgfCBjdXQgLWYxIC1kJyAnYAorKyAgaWYgWyB4IiR7bGRkX3ZlcnNp b259IiA9IHgibXVzbCIgXTsgdGhlbgorKyAgICBPVVQ9YGVjaG8gJE9VVCB8IHNlZCAncy8tZ251 Ly1tdXNsLydgCisrICBmaQorK2ZpCisrCisgIyBUZXN0IGFuZCBmaXggc29sYXJpcyBvbiB4ODZf NjQKKyBlY2hvICRPVVQgfCBncmVwIGkzODYtcGMtc29sYXJpcyA+IC9kZXYvbnVsbCAyPiAvZGV2 L251bGwKKyBpZiB0ZXN0ICQ/ID0gMDsgdGhlbgorLS0tIG9sZC9tYWtlL2hvdHNwb3QvbGliL0Nv bXBpbGVKdm0uZ21rCisrKysgbmV3L21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKK0BA IC03Nyw2ICs3Nyw3IEBACisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSki JyBcCisgICAgIC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwK KyAgICAgLURDUFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAg LURMSUJDPScibXVzbCInIFwKKyAgICAgIworCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0t LSBvbGQvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBuZXcvbWFrZS9saWIvQ29yZUxp YnJhcmllcy5nbWsKK0BAIC0yNDEsNiArMjQxLDcgQEAKKyBlbmRpZgorCisgTElCSkxJX0NGTEFH UyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisK KyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJKTElfRVhUUkFfRklM RVMgKz0gXAorLS0tIG9sZC9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKysrKyBu ZXcvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtOTksNyArOTksNiBAQAor ICMgaW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBpbmNsdWRl IDxzeXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorICMgaW5j bHVkZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVkZSA8bGlu ay5oPgorQEAgLTUxMSw2ICs1MTAsMTEgQEAKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJyYXJ5 CisKKyB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5l IExpbnV4IHN1cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIG9zOjpMaW51eDo6 c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6OkxpbnV4OjpzZXRfbGlicHRo cmVhZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNhdmUgZ2xpYmMgYW5kIHB0aHJl YWQgdmVyc2lvbiBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1NfR05VX0xJQkNfVkVSU0lPTikg fHwgXAorICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTikKK0BAIC01Mjgs NiArNTMyLDcgQEAKKyAgIHN0ciA9IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAg Y29uZnN0cihfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51 eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbihzdHIpOworKyNlbmRpZgorIH0KKworIC8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCitAQCAtMjkxNiwyMCArMjkyMSwzNiBAQAorIGV4dGVybiAiQyIgSk5JRVhQ T1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsgfQorIGV4 dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFyICp3aGVyZSkgeyB9CisKKytz dGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIq IG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1f ZnVuY190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZl cnNpb24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0 aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgewor KyAgICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRs dnN5bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3lt X2Z1bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1l LCB2ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAg ICB9CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8g SGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYx KS4gSWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFk LgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNo YXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjEiKTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7 CistICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRs ZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9h ZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5LgorIC8vIFJldHVybiBO VUxMIGlmIHRoZSBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhpcyBwYXJ0aWN1bGFyIHZlcnNp b24uCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29u c3QgY2hhciogbmFtZSkgeworLSAgcmV0dXJuIGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1h XzEuMiIpOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGli bnVtYV8xLjIiKTsKKyB9CisKKyBib29sIG9zOjpMaW51eDo6bGlibnVtYV9pbml0KCkgeworLS0t IG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBu ZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtNzUs OSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBp bmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5kZWYgQU1ENjQKKy0jIGluY2x1ZGUgPGZwdV9jb250 cm9sLmg+CistI2VuZGlmCisKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJFR19TUCBSRUdfUlNQ CistLS0gb2xkL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNw cAorKysrIG5ldy9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5j cHAKK0BAIC0xMTQ3LDcgKzExNDcsNyBAQAorIHN0YXRpYyBTY3JhdGNoQmxvY2sgKnJlbW92ZVNt YWxsZXN0U2NyYXRjaChTY3JhdGNoQmxvY2sgKipwcmV2X3B0cikgeworICAgYm9vbCBmaXJzdCA9 IHRydWU7CisgICBzaXplX3QgbWluX3NpemUgPSAwOyAgIC8vICJmaXJzdCIgbWFrZXMgdGhpcyBj b25jZXB0dWFsbHkgaW5maW5pdGUuCistICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIsICpz bWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciA9IE5VTEwsICpzbWFsbGVz dDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0cjsKKyAgIHdoaWxlIChjdXIpIHsK KyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0IGNoZWNraW5nIik7CistLS0gb2xk L3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorQEAgLTI3Miw3ICsyNzIsNyBAQAor ICAgI2VuZGlmCisKKyAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lPTl9TVUZGSVggVk1fUkVMRUFT RSAiKSIgXAorLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBcCisr ICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIExJQkMgXAorICAgICAg ICAgICIgSlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBvbiAiIF9fREFURV9fICIgIiBf X1RJTUVfXyBcCisgICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BPVF9CVUlMRF9VU0VSKSAiIHdp dGggIiBIT1RTUE9UX0JVSUxEX0NPTVBJTEVSCisKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvc2hhcmUv dXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qv c2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0yMDQsNyArMjA0 LDcgQEAKKyAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91 YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVm aW5lZChfQUxMQlNEX1NPVVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0 dXJuIGlzbmFuZihmKTsgfQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4g aXNuYW4oZik7IH0KKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFu KGYpOyB9CisgI2Vsc2UKKyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5p dGlvbiBoZXJlIgorLS0tIG9sZC9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGlu dXhfY2xvc2UuYworKysrIG5ldy9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGlu dXhfY2xvc2UuYworQEAgLTYwLDcgKzYwLDcgQEAKKyAvKgorICAqIFNpZ25hbCB0byB1bmJsb2Nr IHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRNQVggLSAyKTsK KytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKworIC8qCisgICogZmRUYWJsZSBob2xkcyBvbmUgZW50 cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAtMTQ5LDYgKzE0OSw3 IEBACisgICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAgKi8K KysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0gc2ln X3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZzYS5z YV9tYXNrKTsKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxk cHJvYy5jCisrKysgbmV3L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHBy b2MuYworQEAgLTIzNyw3ICsyMzcsMTMgQEAKKyB7CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwg KGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikgeworICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFy ICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsKKysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNh dGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3QgcmVjb2duaXplZC4gVGhlIG11c2wgQwor KyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9i aW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUg Y29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAg IC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgorKyAgICAgICAgaWYgKGVycm5vICE9IEVO T0VYRUMpIHsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisgICAgIH0KKworICAg ICBpZiAoKmZpbGUgPT0gJ1wwJykgeworLS0tIG9sZC9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysrIG5ldy9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmphdmEvamRrX3V0aWxfbWQuaAorQEAgLTM3LDcgKzM3LDcgQEAKKyAjZGVmaW5lIElTTkFO RChkKSBpc25hbihkKQorICNlbGlmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9BTExC U0RfU09VUkNFKQorICNpbmNsdWRlIDxtYXRoLmg+CistI2RlZmluZSBJU05BTkYoZikgaXNuYW5m KGYpCisrI2RlZmluZSBJU05BTkYoZikgaXNuYW4oZikKKyAjZGVmaW5lIElTTkFORChkKSBpc25h bihkKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLS0tIG9sZC9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworKysrIG5l dy9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAg LTIzNSw2ICsyMzUsMzkgQEAKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAgICBjaGFyICpw OyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworCisrI2lmZGVmIF9fbGludXgKKysjaWZuZGVmIExJ QkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5kaWYKKysKKysgICAgaWYgKHN0cmNtcChM SUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgorKyAgICAgICAqIFRoZSBtdXNsIGxpYnJh cnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFUSCB0byBiZSBzZXQgaW4KKysgICAgICAg KiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUgZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhh cyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAgICAgKiBTcGVjaWZpY2FsbHksIGl0IGRp ZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhhdCBldmVuIGlmCisrICAgICAgICogbGli anZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQg YQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVz cyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFy eSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxvYWRlZC4KKysgICAgICAgKgorKyAgICAg ICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkgdGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9u ZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3QganVzdCB0aGUgYmFzZW5hbWUgb2YgdGhl IGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAgICogaXMgc29tZXRoaW5nIGxpa2UgIi4u L2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwgaWYvd2hlbgorKyAgICAgICAqIGxpYmp2 bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2YS5zbyAod2hpY2ggaXQgZG9lcyBpbgor KyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8gYSBmZXcgZnVuY3Rpb25zIGltcGxlbWVu dGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhlIG11c2wgbG9hZGVyIHdpbGwsIGFzIHBh cnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVudCBsaWJyYXJpZXMsIHRyeSB0byBsb2Fk IGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAgICAqIGJhc2VuYW1lICJsaWJqdm0uc28i LiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBsb25nZXIKKysgICAgICAgKiBwYXRoIHBh dGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUgYWxyZWFkeSBsb2FkZWQKKysgICAgICAg KiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2FuZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3 aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBsaWJqdm0uc28gZWxzZXdoZXJlLiBJZiBp dCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllfUEFUSCB0aGUgZGVwZW5kZW5jeSBsb2Fk IHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAgICAgKiB3aWxsIHRoZXJlZm9yZSBmYWls IGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0dXJuIEpOSV9UUlVFOworKyAgICB9Cisr I2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBXZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhl IExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24ndCBzdXBwb3J0ICRPUklHSU4uICovCisg ICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9s aWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBuZXcvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKK0BAIC0zNiw3ICszNiw3IEBACisgI2lmZGVmIF9f bGludXhfXworICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBu ZXQvbGludXhfY2xvc2UuYyAqLworLSAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChfX1NJR1JU TUFYIC0gMikKKysgICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoU0lHUlRNQVggLSAyKQorICNl bGlmIF9BSVgKKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4g bmV0L2FpeF9jbG9zZS5jICovCistLS0gb2xkL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUv bGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisrKysgbmV3L3NyYy9qYXZhLmRlc2t0b3AvdW5p eC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCitAQCAtMjcsOSArMjcsNiBAQAor ICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KKyAjaW5jbHVkZSA8WDExL1hvcy5oPgorICNpbmNsdWRl IDxYMTEvWGF0b20uaD4KKy0jaWZkZWYgX19saW51eF9fCistI2luY2x1ZGUgPGV4ZWNpbmZvLmg+ CistI2VuZGlmCisKKyAjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGpuaS5oPgorQEAgLTc4 NiwyNiArNzgzLDYgQEAKKyAgICAgfQorICAgICByZXR1cm4gcmV0OworIH0KKy0KKy0jaWZkZWYg X19saW51eF9fCistdm9pZCBwcmludF9zdGFjayh2b2lkKQorLXsKKy0gIHZvaWQgKmFycmF5WzEw XTsKKy0gIHNpemVfdCBzaXplOworLSAgY2hhciAqKnN0cmluZ3M7CistICBzaXplX3QgaTsKKy0K Ky0gIHNpemUgPSBiYWNrdHJhY2UgKGFycmF5LCAxMCk7CistICBzdHJpbmdzID0gYmFja3RyYWNl X3N5bWJvbHMgKGFycmF5LCBzaXplKTsKKy0KKy0gIGZwcmludGYgKHN0ZGVyciwgIk9idGFpbmVk ICV6ZCBzdGFjayBmcmFtZXMuXG4iLCBzaXplKTsKKy0KKy0gIGZvciAoaSA9IDA7IGkgPCBzaXpl OyBpKyspCistICAgICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwgc3RyaW5nc1tpXSk7CistCist ICBmcmVlIChzdHJpbmdzKTsKKy19CistI2VuZGlmCisKKyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9z aGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFzcyBjbGFzc1hSb290V2luZG93ID0g TlVMTDsKKy0tLSBvbGQvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0 aWwuaAorKysrIG5ldy9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRp bC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3QgdG8g bWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAgICN1 bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNl LgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisgICAg ICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGlu dGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9t YWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBub3Qg dXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3RoaXNf aW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJlYWxs b2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9jIGRv X25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3RyZHVwCistICAg ICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZp bmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisKKyAj aW5jbHVkZSAibG9nX21lc3NhZ2VzLmgiCistLS0gb2xkL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50 aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIG5ldy90ZXN0L2hvdHNwb3QvanRy ZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKK0BAIC0zMyw2ICszMyw3IEBA CisKKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGpuaS5oPgorKyNpbmNsdWRlIDxq dm0uaD4KKyAjaW5jbHVkZSA8YWxsb2NhLmg+CisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNpbmNs dWRlIDxzdHJpbmcuaD4KK0BAIC05MSw2ICs5MiwyMCBAQAorICAgfQorIH0KKworK2ludCBnZXRf amF2YV9zdGFja3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0 cl90IGF0dHI7CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZl cnNpb24gPSBKTklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdz KCZqZGtfYXJncyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAg IGZwcmludGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9y IHRoZSBkZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0 dXJuIGpka19hcmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJm bG93ICh2b2lkICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BA IC0yNTQsMTMgKzI2OSwxOSBAQAorICAgICBleGl0KDcpOworICAgfQorCisrICBpbnQgc3RhY2tf c2l6ZSA9IGdldF9qYXZhX3N0YWNrc2l6ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJl YWRfYXR0cl90IHRocmVhZF9hdHRyOworCisrICBwdGhyZWFkX2F0dHJfaW5pdCgmdGhyZWFkX2F0 dHIpOworKyAgcHRocmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhyZWFkX2F0dHIsIHN0YWNrX3Np emUpOworKworICAgaWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2WzFdLCAidGVzdF9qYXZhX292 ZXJmbG93IikgPT0gMCkgeworICAgICBwcmludGYoIlxuVGVzdGluZyBKQVZBX09WRVJGTE9XXG4i KTsKKworICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9y IG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5f amF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhy ZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0 aHIsIE5VTEwpOworCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2 aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOworQEAgLTI3Myw3ICsyOTQsNyBAQAorICAgICBw cmludGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworCisgICAgIHByaW50ZigiVGVz dGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0g ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwp OworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5fbmF0aXZlX292 ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworCisgICAgIHBy aW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJl YWRcbiIpOworLS0tIG9sZC90ZXN0L2pkay9qYXZhL2xhbmcvUHJvY2Vzc0J1aWxkZXIvQmFzaWMu amF2YQorKysrIG5ldy90ZXN0L2pkay9qYXZhL2xhbmcvUHJvY2Vzc0J1aWxkZXIvQmFzaWMuamF2 YQorQEAgLTM4OSw4ICszODksOCBAQAorICAgICAgICAgICAgICAgICBpZiAoZmFpbGVkICE9IDAp IHRocm93IG5ldyBFcnJvcigibnVsbCBQQVRIIik7CisgICAgICAgICAgICAgfSBlbHNlIGlmIChh Y3Rpb24uZXF1YWxzKCJQQVRIIHNlYXJjaCBhbGdvcml0aG0iKSkgeworICAgICAgICAgICAgICAg ICBlcXVhbChTeXN0ZW0uZ2V0ZW52KCJQQVRIIiksICJkaXIxOmRpcjI6Iik7CistICAgICAgICAg ICAgICAgIGNoZWNrKG5ldyBGaWxlKCIvYmluL3RydWUiKS5leGlzdHMoKSk7CistICAgICAgICAg ICAgICAgIGNoZWNrKG5ldyBGaWxlKCIvYmluL2ZhbHNlIikuZXhpc3RzKCkpOworKyAgICAgICAg ICAgICAgICBjaGVjayhuZXcgRmlsZShUcnVlRXhlLnBhdGgoKSkuZXhpc3RzKCkpOworKyAgICAg ICAgICAgICAgICBjaGVjayhuZXcgRmlsZShGYWxzZUV4ZS5wYXRoKCkpLmV4aXN0cygpKTsKKyAg ICAgICAgICAgICAgICAgU3RyaW5nW10gY21kID0geyJwcm9nIn07CisgICAgICAgICAgICAgICAg IFByb2Nlc3NCdWlsZGVyIHBiMSA9IG5ldyBQcm9jZXNzQnVpbGRlcihjbWQpOworICAgICAgICAg ICAgICAgICBQcm9jZXNzQnVpbGRlciBwYjIgPSBuZXcgUHJvY2Vzc0J1aWxkZXIoY21kKTsKK0BA IC00MzEsMTMgKzQzMSwxMyBAQAorICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUGVybWlz c2lvbkRlbmllZChwYik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51ZSBz ZWFyY2hpbmcgaWYgRUFDQ0VTCistICAgICAgICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi90 cnVlIiwgImRpcjIvcHJvZyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoVHJ1ZUV4 ZS5wYXRoKCksICJkaXIyL3Byb2ciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcXVhbChy dW4ocGIpLmV4aXRWYWx1ZSgpLCBUcnVlLmV4aXRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBuZXcgRmlsZSgiZGlyMS9wcm9nIikuZGVsZXRlKCk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgbmV3IEZpbGUoImRpcjIvcHJvZyIpLmRlbGV0ZSgpOworCisgICAgICAgICAgICAg ICAgICAgICAgICAgbmV3IEZpbGUoImRpcjIvcHJvZyIpLm1rZGlycygpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICJkaXIxL3Byb2ciKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICBjb3B5KFRydWVFeGUucGF0aCgpLCAiZGlyMS9wcm9nIik7CisgICAgICAg ICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFs dWUoKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBlbXB0eSBQQVRIIGNv bXBvbmVudCBtZWFucyBjdXJyZW50IGRpcmVjdG9yeS4KK0BAIC00NTMsMTAgKzQ1MywxMCBAQAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYi5jb21tYW5kKGNvbW1hbmQpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWxlIHByb2cgPSBuZXcgRmlsZSgiLi9wcm9nIik7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICJOb3JtYWwiIGJpbmFyaWVzCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICIuL3Byb2ciKTsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgIi4vcHJvZyIpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcXVhbChydW4ocGIpLmV4aXRWYWx1ZSgpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlLmV4aXRWYWx1ZSgpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi9mYWxzZSIsICIuL3Byb2ciKTsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weShGYWxzZUV4ZS5wYXRoKCksICIuL3By b2ciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFs dWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UuZXhpdFZhbHVl KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9nLmRlbGV0ZSgpOworQEAgLTUx MSwxMiArNTExLDEyIEBACisgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGUoImRpcjIv cHJvZyIpLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJwcm9n IikuZGVsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGUoImRpcjMiKS5t a2RpcnMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiZGly MS9wcm9nIik7CistICAgICAgICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi9mYWxzZSIsICJk aXIzL3Byb2ciKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KFRydWVFeGUucGF0aCgp LCAiZGlyMS9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29weShGYWxzZUV4ZS5w YXRoKCksICJkaXIzL3Byb2ciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBwYi5lbnZpcm9u bWVudCgpLnB1dCgiUEFUSCIsImRpcjMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcXVh bChydW4ocGIpLmV4aXRWYWx1ZSgpLCBUcnVlLmV4aXRWYWx1ZSgpKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiZGlyMy9wcm9nIik7CistICAgICAgICAgICAg ICAgICAgICAgICAgY29weSgiL2Jpbi9mYWxzZSIsICJkaXIxL3Byb2ciKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICBjb3B5KFRydWVFeGUucGF0aCgpLCAiZGlyMy9wcm9nIik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgY29weShGYWxzZUV4ZS5wYXRoKCksICJkaXIxL3Byb2ciKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICBlcXVhbChydW4ocGIpLmV4aXRWYWx1ZSgpLCBGYWxzZS5l eGl0VmFsdWUoKSk7CisKKyAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CitAQCAtNjEz LDYgKzYxMywxMyBAQAorICAgICAgICAgICAgICBuZXcgRmlsZSgiL2Jpbi9mYWxzZSIpLmV4aXN0 cygpKTsKKyAgICAgfQorCisrICAgIHN0YXRpYyBjbGFzcyBCdXN5Qm94IHsKKysgICAgICAgIHB1 YmxpYyBzdGF0aWMgYm9vbGVhbiBpcygpIHsgcmV0dXJuIGlzOyB9CisrICAgICAgICBwcml2YXRl IHN0YXRpYyBmaW5hbCBib29sZWFuIGlzID0KKysgICAgICAgICAgICAoISBXaW5kb3dzLmlzKCkg JiYKKysgICAgICAgICAgICAgbmV3IEZpbGUoIi9iaW4vYnVzeWJveCIpLmV4aXN0cygpKTsKKysg ICAgfQorKworICAgICBzdGF0aWMgY2xhc3MgVW5pY29kZU9TIHsKKyAgICAgICAgIHB1YmxpYyBz dGF0aWMgYm9vbGVhbiBpcygpIHsgcmV0dXJuIGlzOyB9CisgICAgICAgICBwcml2YXRlIHN0YXRp YyBmaW5hbCBTdHJpbmcgb3NOYW1lID0gU3lzdGVtLmdldFByb3BlcnR5KCJvcy5uYW1lIik7CitA QCAtNjUxLDYgKzY1OCw0NSBAQAorICAgICAgICAgfQorICAgICB9CisKKysgICAgLy8gT24gYWxw aW5lIGxpbnV4LCAvYmluL3RydWUgYW5kIC9iaW4vZmFsc2UgYXJlIGp1c3QgbGlua3MgdG8gL2Jp bi9idXN5Ym94LgorKyAgICAvLyBTb21lIHRlc3RzIGNvcHkgL2Jpbi90cnVlIGFuZCAvYmluL2Zh bHNlIHRvIGZpbGVzIHdpdGggYSBkaWZmZXJlbnQgZmlsZW5hbWUuCisrICAgIC8vIEhvd2V2ZXIs IGNvcHlpbmcgdGhlIGJ1c2JveCBleGVjdXRhYmxlIGludG8gYSBmaWxlIHdpdGggYSBkaWZmZXJl bnQgbmFtZQorKyAgICAvLyB3b24ndCByZXN1bHQgaW4gdGhlIGV4cGVjdGVkIHJldHVybiBjb2Rl cy4gQXMgd29ya2Fyb3VuZCwgd2UgY3JlYXRlCisrICAgIC8vIGV4ZWN1dGFibGUgZmlsZXMgdGhh dCBjYW4gYmUgY29waWVkIGFuZCBwcm9kdWNlIHRoZSBleGVwZWN0ZWQgcmV0dXJuCisrICAgIC8v IHZhbHVlcy4gV2UgdXNlIHRoaXMgd29ya2Fyb3VuZCwgaWYgd2UgZmluZCB0aGUgYnVzeWJveCBl eGVjdXRhYmxlLgorKworKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUcnVlRXhlIHsKKysgICAg ICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHBhdGgoKSB7IHJldHVybiBwYXRoOyB9CisrICAgICAg ICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgcGF0aCA9IHBhdGgwKCk7CisrICAgICAgICBw cml2YXRlIHN0YXRpYyBTdHJpbmcgcGF0aDAoKXsKKysgICAgICAgICAgICBpZiAoIUJ1c3lCb3gu aXMoKSkgeworKyAgICAgICAgICAgICAgICByZXR1cm4gIi9iaW4vdHJ1ZSI7CisrICAgICAgICAg ICAgfQorKyAgICAgICAgICAgIGVsc2UgeworKyAgICAgICAgICAgICAgICBGaWxlIHRydWVFeGUg PSBuZXcgRmlsZSgidHJ1ZSIpOworKyAgICAgICAgICAgICAgICBzZXRGaWxlQ29udGVudHModHJ1 ZUV4ZSwgIiMhL2Jpbi90cnVlXG4iKTsKKysgICAgICAgICAgICAgICAgdHJ1ZUV4ZS5zZXRFeGVj dXRhYmxlKHRydWUpOworKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZUV4ZS5nZXRBYnNvbHV0 ZVBhdGgoKTsKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgcHJp dmF0ZSBzdGF0aWMgY2xhc3MgRmFsc2VFeGUgeworKyAgICAgICAgcHVibGljIHN0YXRpYyBTdHJp bmcgcGF0aCgpIHsgcmV0dXJuIHBhdGg7IH0KKysgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFs IFN0cmluZyBwYXRoID0gcGF0aDAoKTsKKysgICAgICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBw YXRoMCgpeworKyAgICAgICAgICAgIGlmICghQnVzeUJveC5pcygpKSB7CisrICAgICAgICAgICAg ICAgIHJldHVybiAiL2Jpbi9mYWxzZSI7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGVs c2UgeworKyAgICAgICAgICAgICAgICBGaWxlIGZhbHNlRXhlID0gbmV3IEZpbGUoImZhbHNlIik7 CisrICAgICAgICAgICAgICAgIHNldEZpbGVDb250ZW50cyhmYWxzZUV4ZSwgIiMhL2Jpbi9mYWxz ZVxuIik7CisrICAgICAgICAgICAgICAgIGZhbHNlRXhlLnNldEV4ZWN1dGFibGUodHJ1ZSk7Cisr ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZUV4ZS5nZXRBYnNvbHV0ZVBhdGgoKTsKKysgICAg ICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0KKysKKyAgICAgc3RhdGljIGNsYXNzIEVuZ2xp c2hVbml4IHsKKyAgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEJvb2xlYW4gaXMgPQorICAg ICAgICAgICAgICghIFdpbmRvd3MuaXMoKSAmJiBpc0VuZ2xpc2goIkxBTkciKSAmJiBpc0VuZ2xp c2goIkxDX0FMTCIpKTsKK0BAIC0xOTU0LDcgKzIwMDAsNyBAQAorICAgICAgICAgICAgIC8vLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJzdUJk aVIiKS5ta2RpcnMoKTsKKy0gICAgICAgICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgInN1QmRp Ui91bmxpS2VseSIpOworKyAgICAgICAgICAgICAgICBjb3B5KFRydWVFeGUucGF0aCgpLCAic3VC ZGlSL3VubGlLZWx5Iik7CisgICAgICAgICAgICAgICAgIGZpbmFsIFByb2Nlc3NCdWlsZGVyIHBi ID0KKyAgICAgICAgICAgICAgICAgICAgIG5ldyBQcm9jZXNzQnVpbGRlcihuZXcgU3RyaW5nW117 InVubGlLZWx5In0pOworICAgICAgICAgICAgICAgICBwYi5lbnZpcm9ubWVudCgpLnB1dCgiUEFU SCIsICJzdUJkaVIiKTsKKy0tLSBvbGQvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NIYW5kbGUv SW5mb1Rlc3QuamF2YQorKysrIG5ldy90ZXN0L2pkay9qYXZhL2xhbmcvUHJvY2Vzc0hhbmRsZS9J bmZvVGVzdC5qYXZhCitAQCAtMjk4LDYgKzI5OCwxMyBAQAorICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgIGlmIChpbmZvLmNvbW1hbmQoKS5pc1ByZXNlbnQoKSkgeworICAgICAg ICAgICAgICAgICAgICAgU3RyaW5nIGNvbW1hbmQgPSBpbmZvLmNvbW1hbmQoKS5nZXQoKTsKKy0g ICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IFBsYXRmb3JtLmlzV2luZG93cygp ID8gInNsZWVwLmV4ZSIgOiAic2xlZXAiOworKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4 cGVjdGVkID0gInNsZWVwIjsKKysgICAgICAgICAgICAgICAgICAgIGlmIChQbGF0Zm9ybS5pc1dp bmRvd3MoKSkgeworKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gInNsZWVwLmV4 ZSI7CisrICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5ldyBGaWxlKCIvYmluL2J1c3li b3giKS5leGlzdHMoKSkgeworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdpdGggYnVzeWJv eCBzbGVlcCBpcyBqdXN0IGEgc3ltIGxpbmsgdG8gYnVzeWJveC4KKysgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGUgYnVzYm94IGV4ZWN1dGFibGUgaXMgc2VlbiBhcyBQcm9jZXNzSGFuZGxl LkluZm8gY29tbWFuZC4KKysgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJidXN5 Ym94IjsKKysgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIEFzc2Vy dC5hc3NlcnRUcnVlKGNvbW1hbmQuZW5kc1dpdGgoZXhwZWN0ZWQpLCAiQ29tbWFuZDogZXhwZWN0 ZWQ6IFwnIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkICsgIlwnLCBh Y3R1YWw6ICIgKyBjb21tYW5kKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazExL2ZpbGVz L211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVz bF9wYXRjaGVzL3BwYzY0bGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjY3ZjY2NDIxNDJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTEv ZmlsZXMvbXVzbF9wYXRjaGVzL3BwYzY0bGUucGF0Y2gKQEAgLTAsMCArMSwyMjEgQEAKK1BhdGNo ZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxp bnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBl N2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBj LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAK K0BAIC0xMjkwLDcgKzEyOTAsMTEgQEAKKyAgIC8vIHRoZSBzYWZlcG9pbmcgcG9sbGluZyBwYWdl LgorICAgdWNvbnRleHRfdCogdWMgPSAodWNvbnRleHRfdCopIHVjb250ZXh0OworICAgLy8gU2V0 IHBvbGxpbmcgYWRkcmVzcy4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19V Q0xJQkNfXykKKyAgIGFkZHJlc3MgYWRkciA9IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdz LT5ncHJbcmFdICsgKHNzaXplX3QpZHM7CisrI2Vsc2UgLy8gTXVzbAorKyAgYWRkcmVzcyBhZGRy ID0gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmFdICsgKHNzaXplX3QpIGRzOwor KyNlbmRpZgorICAgaWYgKHBvbGxpbmdfYWRkcmVzc19wdHIgIT0gTlVMTCkgeworICAgICAqcG9s bGluZ19hZGRyZXNzX3B0ciA9IGFkZHI7CisgICB9CitAQCAtMTMxMSwxNSArMTMxNSwyNCBAQAor ICAgICBpbnQgcmIgPSBpbnZfcmJfZmllbGQoaW5zdHJ1Y3Rpb24pOworCisgICAgIC8vIGxvb2sg dXAgY29udGVudCBvZiByYSBhbmQgcmIgaW4gdWNvbnRleHQKKysjaWYgZGVmaW5lZChfX0dMSUJD X18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgYWRkcmVzcyByYV92YWw9KGFkZHJlc3Mp dWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwcltyYV07CisgICAgIGxvbmcgcmJfdmFsPShsb25nKXVj LT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmJdOworKyNlbHNlIC8vIE11c2wKKysgICAgYWRkcmVz cyByYV92YWw9KGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmFdOworKyAgICBsb25n IHJiX3ZhbD0obG9uZyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYl07CisrI2VuZGlmCisgICAg IHJldHVybiBvczo6aXNfbWVtb3J5X3NlcmlhbGl6ZV9wYWdlKHRocmVhZCwgcmFfdmFsK3JiX3Zh bCk7CisgICB9IGVsc2UgaWYgKGlzX3N0dyhpbnN0cnVjdGlvbikgfHwgaXNfc3R3dShpbnN0cnVj dGlvbikpIHsKKyAgICAgaW50IHJhID0gaW52X3JhX2ZpZWxkKGluc3RydWN0aW9uKTsKKyAgICAg aW50IGQxID0gaW52X2QxX2ZpZWxkKGluc3RydWN0aW9uKTsKKworICAgICAvLyBsb29rIHVwIGNv bnRlbnQgb2YgcmEgaW4gdWNvbnRleHQKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmlu ZWQoX19VQ0xJQkNfXykKKyAgICAgYWRkcmVzcyByYV92YWw9KGFkZHJlc3MpdWMtPnVjX21jb250 ZXh0LnJlZ3MtPmdwcltyYV07CisrI2Vsc2UgLy8gTXVzbAorKyAgICBhZGRyZXNzIHJhX3ZhbD0o YWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYV07CisrI2VuZGlmCisgICAgIHJldHVy biBvczo6aXNfbWVtb3J5X3NlcmlhbGl6ZV9wYWdlKHRocmVhZCwgcmFfdmFsK2QxKTsKKyAgIH0g ZWxzZSB7CisgICAgIHJldHVybiBmYWxzZTsKK0BAIC0xMzgyLDExICsxMzk1LDIwIEBACisgICAg ICAgfHwgKGlzX3N0ZHUoaW5zdHJ1Y3Rpb24pICYmIHJzID09IDEpKSB7CisgICAgIGludCBkcyA9 IGludl9kc19maWVsZChpbnN0cnVjdGlvbik7CisgICAgIC8vIHJldHVybiBiYW5nZWQgYWRkcmVz cworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBy ZXR1cm4gZHMrKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwcltyYV07CisrI2Vsc2Ug Ly8gTXVzbAorKyAgICByZXR1cm4gZHMrKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb cmFdOworKyNlbmRpZgorICAgfSBlbHNlIGlmIChpc19zdGR1eChpbnN0cnVjdGlvbikgJiYgcnMg PT0gMSkgeworICAgICBpbnQgcmIgPSBpbnZfcmJfZmllbGQoaW5zdHJ1Y3Rpb24pOworKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBhZGRyZXNzIHNw ID0gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwclsxXTsKKyAgICAgbG9uZyByYl92 YWwgPSAobG9uZyl1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByW3JiXTsKKysjZWxzZSAvLyBNdXNs CisrICAgIGFkZHJlc3Mgc3AgPSAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXTsK KysgICAgbG9uZyByYl92YWwgPSAobG9uZyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYl07Cisr I2VuZGlmCisgICAgIHJldHVybiByYSAhPSAxIHx8IHJiX3ZhbCA+PSAwID8gTlVMTCAgICAgICAg IC8vIG5vdCBhIHN0YWNrIGJhbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBzcCArIHJiX3ZhbDsgLy8gYmFuZ2VkIGFkZHJlc3MKKyAgIH0KKy0tLSBvbGQvc3JjL2hvdHNw b3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3Bw Yy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC03NjgsNyArNzY4LDcgQEAKKyAgIHVuc2lnbmVkIGxv bmcgYXV4diA9IGdldGF1eHZhbChBVF9IV0NBUDIpOworCisgICBpZiAoYXV4diAmIFBQQ19GRUFU VVJFMl9IVE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7 CisrICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBP V0VSOCBhbmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBK Vk0uCisgICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBz dXBwb3J0ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFz IGEgZmV3IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3Jj L2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTEwOCwyNCArMTA4 LDQyIEBACisgICAvLyAtIGlmIHVjIHdhcyBmaWxsZWQgYnkgZ2V0Y29udGV4dCgpLCBpdCBpcyB1 bmRlZmluZWQgLSBnZXRjb250ZXh0KCkgZG9lcyBub3QgZmlsbAorICAgLy8gICBpdCBiZWNhdXNl IHRoZSB2b2xhdGlsZSByZWdpc3RlcnMgYXJlIG5vdCBuZWVkZWQgdG8gbWFrZSBzZXRjb250ZXh0 KCkgd29yay4KKyAgIC8vICAgSG9wZWZ1bGx5IGl0IHdhcyB6ZXJvJ2Qgb3V0IGJlZm9yZWhhbmQu CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBndWFy YW50ZWUodWMtPnVjX21jb250ZXh0LnJlZ3MgIT0gTlVMTCwgIm9ubHkgdXNlIHVjb250ZXh0X2dl dF9wYyBpbiBzaWdhY3Rpb24gY29udGV4dCIpOworICAgcmV0dXJuIChhZGRyZXNzKXVjLT51Y19t Y29udGV4dC5yZWdzLT5uaXA7CisrI2Vsc2UgLy8gTXVzbAorKyAgZ3VhcmFudGVlKHVjLT51Y19t Y29udGV4dC5ncF9yZWdzICE9IE5VTEwsICJvbmx5IHVzZSB1Y29udGV4dF9nZXRfcGMgaW4gc2ln YWN0aW9uIGNvbnRleHQiKTsKKysgIHJldHVybiAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1szMl07CisrI2VuZGlmCisgfQorCisgLy8gbW9kaWZ5IFBDIGluIHVjb250ZXh0LgorIC8v IE5vdGU6IE9ubHkgdXNlIHRoaXMgZm9yIGFuIHVjb250ZXh0IGhhbmRlZCBkb3duIHRvIGEgc2ln bmFsIGhhbmRsZXIuIFNlZSBjb21tZW50CisgLy8gaW4gdWNvbnRleHRfZ2V0X3BjLgorIHZvaWQg b3M6OkxpbnV4Ojp1Y29udGV4dF9zZXRfcGModWNvbnRleHRfdCAqIHVjLCBhZGRyZXNzIHBjKSB7 CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBndWFy YW50ZWUodWMtPnVjX21jb250ZXh0LnJlZ3MgIT0gTlVMTCwgIm9ubHkgdXNlIHVjb250ZXh0X3Nl dF9wYyBpbiBzaWdhY3Rpb24gY29udGV4dCIpOworICAgdWMtPnVjX21jb250ZXh0LnJlZ3MtPm5p cCA9ICh1bnNpZ25lZCBsb25nKXBjOworKyNlbHNlIC8vIE11c2wKKysgIGd1YXJhbnRlZSh1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVncyAhPSBOVUxMLCAib25seSB1c2UgdWNvbnRleHRfc2V0X3BjIGlu IHNpZ2FjdGlvbiBjb250ZXh0Iik7CisrICB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMl0gPSAo dW5zaWduZWQgbG9uZylwYzsKKysjZW5kaWYKKyB9CisKKyBzdGF0aWMgYWRkcmVzcyB1Y29udGV4 dF9nZXRfbHIoY29uc3QgdWNvbnRleHRfdCAqIHVjKSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19f KSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICByZXR1cm4gKGFkZHJlc3MpdWMtPnVjX21jb250 ZXh0LnJlZ3MtPmxpbms7CisrI2Vsc2UgLy8gTXVzbAorKyAgcmV0dXJuIChhZGRyZXNzKXVjLT51 Y19tY29udGV4dC5ncF9yZWdzWzM2XTsKKysjZW5kaWYKKyB9CisKKyBpbnRwdHJfdCogb3M6Okxp bnV4Ojp1Y29udGV4dF9nZXRfc3AoY29uc3QgdWNvbnRleHRfdCAqIHVjKSB7CisrI2lmIGRlZmlu ZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICByZXR1cm4gKGludHB0cl90 Kil1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByWzEvKlJFR19TUCovXTsKKysjZWxzZSAvLyBNdXNs CisrICByZXR1cm4gKGludHB0cl90Kil1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxLypSRUdfU1Aq L107CisrI2VuZGlmCisgfQorCisgaW50cHRyX3QqIG9zOjpMaW51eDo6dWNvbnRleHRfZ2V0X2Zw KGNvbnN0IHVjb250ZXh0X3QgKiB1YykgeworQEAgLTEzMyw3ICsxNTEsMTEgQEAKKyB9CisKKyBz dGF0aWMgdW5zaWduZWQgbG9uZyB1Y29udGV4dF9nZXRfdHJhcChjb25zdCB1Y29udGV4dF90ICog dWMpIHsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAg IHJldHVybiB1Yy0+dWNfbWNvbnRleHQucmVncy0+dHJhcDsKKysjZWxzZSAvLyBNdXNsCisrICBy ZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbNDBdOworKyNlbmRpZgorIH0KKworIEV4dGVu ZGVkUEMgb3M6OmZldGNoX2ZyYW1lX2Zyb21fY29udGV4dChjb25zdCB2b2lkKiB1Y1ZvaWQsCitA QCAtMjU5LDcgKzI4MSwxMyBAQAorICAgICAvLyAzLjIuMSAiTWFjaGluZSBTdGF0ZSBSZWdpc3Rl ciIpLCBob3dldmVyIG5vdGUgdGhhdCBJU0Egbm90YXRpb24gZm9yIGJpdAorICAgICAvLyBudW1i ZXJpbmcgaXMgTVNCIDAsIHNvIGZvciBub3JtYWwgYml0IG51bWJlcmluZyAoTFNCIDApIHRoZXkg Y29tZSB0byBiZQorICAgICAvLyBiaXRzIDMzIGFuZCAzNC4gSXQncyBub3QgcmVsYXRlZCB0byBl bmRpYW5uZXNzLCBqdXN0IGEgbm90YXRpb24gbWF0dGVyLgorKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBpZiAoc2Vjb25kX3VjLT51Y19tY29udGV4 dC5yZWdzLT5tc3IgJiAweDYwMDAwMDAwMCkgeworKyNlbHNlIC8vIE11c2wKKysgICAgLy8gd2h5 IDMzPworKyAgICAvLyBzZWUgY29tbWVudCBmb3IgZ2xpYmMgTkdSRUc6ICJyMC1yMzEsIG5pcCwg bXNyLCBsciwgZXRjLiIKKysgICAgaWYgKHNlY29uZF91Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1sz M10gJiAweDYwMDAwMDAwMCkgeworKyNlbmRpZgorICAgICAgIGlmIChUcmFjZVRyYXBzKSB7Cisg ICAgICAgICB0dHktPnByaW50X2NyKCJjYXVnaHQgc2lnbmFsIGluIHRyYW5zYWN0aW9uLCAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgImlnbm9yaW5nIHRvIGp1bXAgdG8gYWJvcnQgaGFuZGxl ciIpOworQEAgLTU4Niw2ICs2MTQsNyBAQAorICAgY29uc3QgdWNvbnRleHRfdCogdWMgPSAoY29u c3QgdWNvbnRleHRfdCopY29udGV4dDsKKworICAgc3QtPnByaW50X2NyKCJSZWdpc3RlcnM6Iik7 CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBzdC0+ cHJpbnQoInBjID0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMtPnVjX21jb250ZXh0LnJlZ3MtPm5p cCk7CisgICBzdC0+cHJpbnQoImxyID0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMtPnVjX21jb250 ZXh0LnJlZ3MtPmxpbmspOworICAgc3QtPnByaW50KCJjdHI9IiBJTlRQVFJfRk9STUFUICIgICIs IHVjLT51Y19tY29udGV4dC5yZWdzLT5jdHIpOworQEAgLTU5NCw4ICs2MjMsMTggQEAKKyAgICAg c3QtPnByaW50KCJyJS0yZD0iIElOVFBUUl9GT1JNQVQgIiAgIiwgaSwgdWMtPnVjX21jb250ZXh0 LnJlZ3MtPmdwcltpXSk7CisgICAgIGlmIChpICUgMyA9PSAyKSBzdC0+Y3IoKTsKKyAgIH0KKysj ZWxzZSAvLyBNdXNsCisrICBzdC0+cHJpbnQoInBjID0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbMzJdKTsKKysgIHN0LT5wcmludCgibHIgPSIgSU5UUFRSX0ZP Uk1BVCAiICAiLCB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNl0pOworKyAgc3QtPnByaW50KCJj dHI9IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzM1XSk7Cisg ICBzdC0+Y3IoKTsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykgeworKyAgICBzdC0+ cHJpbnQoInIlLTJkPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCBpLCB1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tpXSk7CisrICAgIGlmIChpICUgMyA9PSAyKSBzdC0+Y3IoKTsKKysgIH0KKysjZW5kaWYK KyAgIHN0LT5jcigpOworKyAgc3QtPmNyKCk7CisKKyAgIGludHB0cl90ICpzcCA9IChpbnRwdHJf dCAqKW9zOjpMaW51eDo6dWNvbnRleHRfZ2V0X3NwKHVjKTsKKyAgIHN0LT5wcmludF9jcigiVG9w IG9mIFN0YWNrOiAoc3A9IiBQVFJfRk9STUFUICIpIiwgcDJpKHNwKSk7CitAQCAtNjE4LDEyICs2 NTcsMjIgQEAKKyAgIHN0LT5wcmludF9jcigiUmVnaXN0ZXIgdG8gbWVtb3J5IG1hcHBpbmc6Iik7 CisgICBzdC0+Y3IoKTsKKworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VD TElCQ19fKQorICAgc3QtPnByaW50KCJwYyA9Iik7IHByaW50X2xvY2F0aW9uKHN0LCAoaW50cHRy X3QpdWMtPnVjX21jb250ZXh0LnJlZ3MtPm5pcCk7CisgICBzdC0+cHJpbnQoImxyID0iKTsgcHJp bnRfbG9jYXRpb24oc3QsIChpbnRwdHJfdCl1Yy0+dWNfbWNvbnRleHQucmVncy0+bGluayk7Cisg ICBzdC0+cHJpbnQoImN0ciA9Iik7IHByaW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVj X21jb250ZXh0LnJlZ3MtPmN0cik7CisrI2Vsc2UgLy8gTXVzbAorKyAgc3QtPnByaW50KCJwYyA9 Iik7IHByaW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MzJdKTsKKysgIHN0LT5wcmludCgibHIgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90 KXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzM2XSk7CisrICBzdC0+cHJpbnQoImN0ciA9Iik7IHBy aW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzVdKTsK KysjZW5kaWYKKyAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykgeworICAgICBzdC0+cHJp bnQoInIlLTJkPSIsIGkpOworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VD TElCQ19fKQorICAgICBwcmludF9sb2NhdGlvbihzdCwgdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdw cltpXSk7CisrI2Vsc2UgLy8gTXVzbAorKyAgICBwcmludF9sb2NhdGlvbihzdCwgdWMtPnVjX21j b250ZXh0LmdwX3JlZ3NbaV0pOworKyNlbmRpZgorICAgfQorICAgc3QtPmNyKCk7CisgfQorLS0t IG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAK K0BAIC01Niw4ICs1NiwxMyBAQAorICAgLy8gaWYgd2Ugd2VyZSBydW5uaW5nIEphdmEgY29kZSB3 aGVuIFNJR1BST0YgY2FtZSBpbi4KKyAgIGlmIChpc0luSmF2YSkgeworICAgICB1Y29udGV4dF90 KiB1YyA9ICh1Y29udGV4dF90KikgdWNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8 fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgIGZyYW1lIHJldF9mcmFtZSgoaW50cHRyX3QqKXVj LT51Y19tY29udGV4dC5yZWdzLT5ncHJbMS8qUkVHX1NQKi9dLAorICAgICAgICAgICAgICAgICAg ICAgIChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5uaXApOworKyNlbHNlIC8vIE11c2wK KysgICAgZnJhbWUgcmV0X2ZyYW1lKChpbnRwdHJfdCopdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MS8qUkVHX1NQKi9dLAorKyAgICAgICAgICAgICAgICAgICAgIChhZGRyZXNzKXVjLT51Y19tY29u dGV4dC5ncF9yZWdzWzMyXSk7CisrI2VuZGlmCisKKyAgICAgaWYgKHJldF9mcmFtZS5wYygpID09 IE5VTEwpIHsKKyAgICAgICAvLyB1Y29udGV4dCB3YXNuJ3QgdXNlZnVsCitAQCAtNjksNyArNzQs MTEgQEAKKyAgICAgICAgaWYgKCEoKE1ldGhvZCopKGlzdGF0ZS0+bWV0aG9kKSktPmlzX21ldGFz cGFjZV9vYmplY3QoKSkgeworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorKyNp ZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICAgICB1aW50 NjRfdCByZWdfYmNwID0gdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwclsxNC8qUjE0X2JjcCovXTsK KysjZWxzZSAvLyBNdXNsCisrICAgICAgIHVpbnQ2NF90IHJlZ19iY3AgPSB1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1sxNC8qUjE0X2JjcCovXTsKKysjZW5kaWYKKyAgICAgICAgdWludDY0X3QgaXN0 YXRlX2JjcCA9IGlzdGF0ZS0+YmNwOworICAgICAgICB1aW50NjRfdCBjb2RlX3N0YXJ0ID0gKHVp bnQ2NF90KSgoKE1ldGhvZCopKGlzdGF0ZS0+bWV0aG9kKSktPmNvZGVfYmFzZSgpKTsKKyAgICAg ICAgdWludDY0X3QgY29kZV9lbmQgPSAodWludDY0X3QpKCgoTWV0aG9kKilpc3RhdGUtPm1ldGhv ZCktPmNvZGVfYmFzZSgpICsgKChNZXRob2QqKWlzdGF0ZS0+bWV0aG9kKS0+Y29kZV9zaXplKCkp OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5w YXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRj aApAQCAtMCwwICsxLDEzMCBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBs aW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFl MTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29z X2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTkwLDYgKzkwLDEyNiBAQAorICNk ZWZpbmUgU1BFTExfUkVHX0ZQICJlYnAiCisgI2VuZGlmIC8vIEFNRDY0CisKKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysvLyBUYWtlbiBmcm9tIGdsaWJjIDIuMjgKKysvLyBzb3VyY2U6IGh0 dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWdsaWJjLmdpdDthPWJsb2I7Zj1zeXNkZXBzL3g4 Ni9mcHVfY29udHJvbC5oO2g9NGNiOThjNTY3OWIyODk3ZmY0ZTU4MjZkMjI4Y2JhNmJlNTg5ZTI0 ZDtoYj0zYzAzYmFjYTM3ZmRjYjUyYzM4ODFlNjUzY2EzOTJiYmE3YTk5YzJiCisrLy8gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrI2lmbmRlZiBBTUQ2NAorKy8qIEZQVSBjb250cm9sIHdvcmQgYml0 cy4gIHg4NiB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMTk5My0yMDE4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBM aWJyYXJ5LgorKyAgIENvbnRyaWJ1dGVkIGJ5IE9sYWYgRmxlYmJlLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGgg dGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIF9GUFVfQ09OVFJPTF9ICisrI2RlZmluZSBfRlBV X0NPTlRST0xfSAkxCisrCisrLyogTm90ZSB0aGF0IHRoaXMgZmlsZSBzZXRzIG9uIHg4Ni02NCBv bmx5IHRoZSB4ODcgRlBVLCBpdCBkb2VzIG5vdAorKyAgIHRvdWNoIHRoZSBTU0UgdW5pdC4gICov CisrCisrLyogSGVyZSBpcyB0aGUgZGlydHkgcGFydC4gU2V0IHVwIHlvdXIgMzg3IHRocm91Z2gg dGhlIGNvbnRyb2wgd29yZAorKyAqIChjdykgcmVnaXN0ZXIuCisrICoKKysgKiAgICAgMTUtMTMg ICAgMTIgIDExLTEwICA5LTggICAgIDctNiAgICAgNSAgICA0ICAgIDMgICAgMiAgICAxICAgIDAK KysgKiB8IHJlc2VydmVkIHwgSUMgfCBSQyAgfCBQQyB8IHJlc2VydmVkIHwgUE0gfCBVTSB8IE9N IHwgWk0gfCBETSB8IElNCisrICoKKysgKiBJTTogSW52YWxpZCBvcGVyYXRpb24gbWFzaworKyAq IERNOiBEZW5vcm1hbGl6ZWQgb3BlcmFuZCBtYXNrCisrICogWk06IFplcm8tZGl2aWRlIG1hc2sK KysgKiBPTTogT3ZlcmZsb3cgbWFzaworKyAqIFVNOiBVbmRlcmZsb3cgbWFzaworKyAqIFBNOiBQ cmVjaXNpb24gKGluZXhhY3QgcmVzdWx0KSBtYXNrCisrICoKKysgKiBNYXNrIGJpdCBpcyAxIG1l YW5zIG5vIGludGVycnVwdC4KKysgKgorKyAqIFBDOiBQcmVjaXNpb24gY29udHJvbAorKyAqIDEx IC0gcm91bmQgdG8gZXh0ZW5kZWQgcHJlY2lzaW9uCisrICogMTAgLSByb3VuZCB0byBkb3VibGUg cHJlY2lzaW9uCisrICogMDAgLSByb3VuZCB0byBzaW5nbGUgcHJlY2lzaW9uCisrICoKKysgKiBS QzogUm91bmRpbmcgY29udHJvbAorKyAqIDAwIC0gcm91bmRpbmcgdG8gbmVhcmVzdAorKyAqIDAx IC0gcm91bmRpbmcgZG93biAodG93YXJkIC0gaW5maW5pdHkpCisrICogMTAgLSByb3VuZGluZyB1 cCAodG93YXJkICsgaW5maW5pdHkpCisrICogMTEgLSByb3VuZGluZyB0b3dhcmQgemVybworKyAq CisrICogSUM6IEluZmluaXR5IGNvbnRyb2wKKysgKiBUaGF0IGlzIGZvciA4MDg3IGFuZCA4MDI4 NyBvbmx5LgorKyAqCisrICogVGhlIGhhcmR3YXJlIGRlZmF1bHQgaXMgMHgwMzdmIHdoaWNoIHdl IHVzZS4KKysgKi8KKysKKysjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKysKKysvKiBtYXNraW5nIG9m IGludGVycnVwdHMgKi8KKysjZGVmaW5lIF9GUFVfTUFTS19JTSAgMHgwMQorKyNkZWZpbmUgX0ZQ VV9NQVNLX0RNICAweDAyCisrI2RlZmluZSBfRlBVX01BU0tfWk0gIDB4MDQKKysjZGVmaW5lIF9G UFVfTUFTS19PTSAgMHgwOAorKyNkZWZpbmUgX0ZQVV9NQVNLX1VNICAweDEwCisrI2RlZmluZSBf RlBVX01BU0tfUE0gIDB4MjAKKysKKysvKiBwcmVjaXNpb24gY29udHJvbCAqLworKyNkZWZpbmUg X0ZQVV9FWFRFTkRFRCAweDMwMAkvKiBsaWJtIHJlcXVpcmVzIGRvdWJsZSBleHRlbmRlZCBwcmVj aXNpb24uICAqLworKyNkZWZpbmUgX0ZQVV9ET1VCTEUgICAweDIwMAorKyNkZWZpbmUgX0ZQVV9T SU5HTEUgICAweDAKKysKKysvKiByb3VuZGluZyBjb250cm9sICovCisrI2RlZmluZSBfRlBVX1JD X05FQVJFU1QgMHgwICAgIC8qIFJFQ09NTUVOREVEICovCisrI2RlZmluZSBfRlBVX1JDX0RPV04g ICAgMHg0MDAKKysjZGVmaW5lIF9GUFVfUkNfVVAgICAgICAweDgwMAorKyNkZWZpbmUgX0ZQVV9S Q19aRVJPICAgIDB4QzAwCisrCisrI2RlZmluZSBfRlBVX1JFU0VSVkVEIDB4RjBDMCAgLyogUmVz ZXJ2ZWQgYml0cyBpbiBjdyAqLworKworKworKy8qIFRoZSBmZGxpYm0gY29kZSByZXF1aXJlcyBz dHJpY3QgSUVFRSBkb3VibGUgcHJlY2lzaW9uIGFyaXRobWV0aWMsCisrICAgYW5kIG5vIGludGVy cnVwdHMgZm9yIGV4Y2VwdGlvbnMsIHJvdW5kaW5nIHRvIG5lYXJlc3QuICAqLworKworKyNkZWZp bmUgX0ZQVV9ERUZBVUxUICAweDAzN2YKKysKKysvKiBJRUVFOiAgc2FtZSBhcyBhYm92ZS4gICov CisrI2RlZmluZSBfRlBVX0lFRUUgICAgIDB4MDM3ZgorKworKy8qIFR5cGUgb2YgdGhlIGNvbnRy b2wgd29yZC4gICovCisrdHlwZWRlZiB1bnNpZ25lZCBpbnQgZnB1X2NvbnRyb2xfdCBfX2F0dHJp YnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKKysKKysvKiBNYWNyb3MgZm9yIGFjY2Vzc2lu ZyB0aGUgaGFyZHdhcmUgY29udHJvbCB3b3JkLiAgIiomIiBpcyB1c2VkIHRvCisrICAgd29yayBh cm91bmQgYSBidWcgaW4gb2xkZXIgdmVyc2lvbnMgb2YgR0NDLiAgX192b2xhdGlsZV9fIGlzIHVz ZWQKKysgICB0byBzdXBwb3J0IGNvbWJpbmF0aW9uIG9mIHdyaXRpbmcgdGhlIGNvbnRyb2wgcmVn aXN0ZXIgYW5kIHJlYWRpbmcKKysgICBpdCBiYWNrLiAgV2l0aG91dCBfX3ZvbGF0aWxlX18sIHRo ZSBvbGQgdmFsdWUgbWF5IGJlIHVzZWQgZm9yIHJlYWRpbmcKKysgICBiYWNrIHVuZGVyIGNvbXBp bGVyIG9wdGltaXphdGlvbi4KKysKKysgICBOb3RlIHRoYXQgdGhlIHVzZSBvZiB0aGVzZSBtYWNy b3MgaXMgbm90IHN1ZmZpY2llbnQgYW55bW9yZSB3aXRoCisrICAgcmVjZW50IGhhcmR3YXJlIG5v ciBvbiB4ODYtNjQuICBTb21lIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMgYXJlCisrICAgZXhl Y3V0ZWQgaW4gdGhlIFNTRS9TU0UyIGVuZ2luZXMgd2hpY2ggaGF2ZSB0aGVpciBvd24gY29udHJv bCBhbmQKKysgICBzdGF0dXMgcmVnaXN0ZXIuICAqLworKyNkZWZpbmUgX0ZQVV9HRVRDVyhjdykg X19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbnN0Y3cgJTAiIDogIj1tIiAoKiZjdykpCisrI2RlZmlu ZSBfRlBVX1NFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZsZGN3ICUwIiA6IDogIm0i ICgqJmN3KSkKKysKKysvKiBEZWZhdWx0IGNvbnRyb2wgd29yZCBzZXQgYXQgc3RhcnR1cC4gICov CisrZXh0ZXJuIGZwdV9jb250cm9sX3QgX19mcHVfY29udHJvbDsKKysKKysjZW5kaWYJLyogZnB1 X2NvbnRyb2wuaCAqLworKworKyNlbmRpZiAvLyBBTUQ2NAorKy8vID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorKworIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAjaWZkZWYgU1BB UkNfV09SS1MKKyAgIHJlZ2lzdGVyIHZvaWQgKmVzcDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazExL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTEvdGVtcGxhdGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZDRjNjRiNjFkCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9vcGVuamRrMTEvdGVtcGxhdGUKQEAgLTAsMCArMSwxODMgQEAKKyMgVGVtcGxh dGUgZmlsZSBmb3IgJ29wZW5qZGsxMScKK19qYXZhX3Zlcj0xMQorX2phdmFfbWluX3Zlcj0wCitf amF2YV9zZWNfdmVyPTUKK19qZGtfdXBkYXRlPTEwCitfb3Blbmpka192ZXJzaW9uPSJvcGVuamRr LSR7X2phdmFfdmVyfSIKKworCitwa2duYW1lPW9wZW5qZGsxMQordmVyc2lvbj0iJHtfamF2YV92 ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSske19qZGtfdXBkYXRlfSIKK3Jl dmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxk X3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSIKKyAtLWRpc2FibGUtd2Fybmlu Z3MtYXMtZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7WEJQU19DUk9TU19UUklQ TEVUfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYgorIC0tZW5hYmxlLXVubGltaXRlZC1j cnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdp dGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lz dGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHt2ZXJzaW9ufQor IC0td2l0aC12ZW5kb3ItbmFtZT0iVm9pZCIKKyAtLXdpdGgtdmVuZG9yLXVybD0iaHR0cHM6Ly92 b2lkbGludXgub3JnLyIKKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9Imh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzIgorIC0td2l0aC12ZW5kb3Itdm0tYnVn LXVybD0iaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMi CisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluIgorCittYWtlX2J1 aWxkX2FyZ3M9ImltYWdlcyAkKHZvcHRfaWYgZG9jcyBkb2NzKSIKK21ha2VfY2hlY2tfdGFyZ2V0 PSJ0ZXN0LWhvdHNwb3QtZ3Rlc3QiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21h a2UgYXV0b2NvbmYgY3BpbyB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCisgbGlicmVzc2wgemxp Yi1kZXZlbCBtYWtlLWNhIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1k ZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGlianBlZy10 dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVsCisgZm9u dGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIgorcHJvdmlkZXM9ImphdmEtZW52 aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9k ZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IgorbWFpbnRhaW5lcj0iS3lsZSBOdXNi YXVtIDxrbnVzYmF1bSt2b2lkQHNkZi5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK K2hvbWVwYWdlPSJodHRwOi8vb3Blbmpkay5qYXZhLm5ldC8iCitkaXN0ZmlsZXM9Imh0dHBzOi8v aGcub3Blbmpkay5qYXZhLm5ldC9qZGstdXBkYXRlcy9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUv amRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YTNiYzE5ZDI3OGY2ODY2MGYwMjYxMGNi ZTFjZTZjMTEwYTM5YTFhYTUzYWViOTBjNjEzM2ExY2ViZjk0ODQ2Mgorc2hsaWJfcHJvdmlkZXM9 ImxpYmF3dC5zbyBsaWJhd3RfeGF3dC5zbyBsaWJqYXZhLnNvIGxpYmpsaS5zbyBsaWJqdm0uc28g bGliamF3dC5zbyIKKworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAt ak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1aWxkPXllcworYnVpbGRfb3B0aW9ucz0iZG9jcyIKKwor Y2FzZSAiJFhCUFNfVEFSR0VUX0xJQkMiIGluCisJZ2xpYmMpIGJ1aWxkX29wdGlvbnNfZGVmYXVs dCs9IiBkb2NzIjs7Citlc2FjCisKK2lmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWhvc3Rt YWtlZGVwZW5kcys9IiBvcGVuamRrMTEiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3Qt amRrPS91c3IvbGliL2p2bS9vcGVuamRrMTEiCitlbHNlCisJaG9zdG1ha2VkZXBlbmRzKz0iIG9w ZW5qZGsxMS1iaW4iCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrPS91c3IvbGli L2p2bS9vcGVuamRrMTEtYmluIgorZmkKKworYWx0ZXJuYXRpdmVzPSIKKyBqYXZhOi91c3IvYmlu L2phdmE6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vamF2YQorIGphdmE6L3Vzci9iaW4vampz Oi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2pqcworIGphdmE6L3Vzci9iaW4va2V5dG9vbDov dXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9rZXl0b29sCisgamF2YTovdXNyL2Jpbi9vcmJkOi91 c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL29yYmQKKyBqYXZhOi91c3IvYmluL3BhY2syMDA6L3Vz ci9saWIvanZtL29wZW5qZGsxMS9iaW4vcGFjazIwMAorIGphdmE6L3Vzci9iaW4vcG9saWN5dG9v bDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9wb2xpY3l0b29sCisgamF2YTovdXNyL2Jpbi9y bWlkOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3JtaWQKKyBqYXZhOi91c3IvYmluL3JtaXJl Z2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3JtaXJlZ2lzdHJ5CisgamF2YTovdXNy L2Jpbi9zZXJ2ZXJ0b29sOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3NlcnZlcnRvb2wKKyBq YXZhOi91c3IvYmluL3RuYW1lc2VydjovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi90bmFtZXNl cnYKKyBqYXZhOi91c3IvYmluL3VucGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi91 bnBhY2syMDAKKworIGpkazovdXNyL2Jpbi9hcHBsZXR2aWV3ZXI6L3Vzci9saWIvanZtL29wZW5q ZGsxMS9iaW4vYXBwbGV0dmlld2VyCisgamRrOi91c3IvYmluL2V4dGNoZWNrOi91c3IvbGliL2p2 bS9vcGVuamRrMTEvYmluL2V4dGNoZWNrCisgamRrOi91c3IvYmluL2lkbGo6L3Vzci9saWIvanZt L29wZW5qZGsxMS9iaW4vaWRsagorIGpkazovdXNyL2Jpbi9qYXI6L3Vzci9saWIvanZtL29wZW5q ZGsxMS9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovdXNyL2xpYi9qdm0vb3Blbmpk azExL2Jpbi9qYXJzaWduZXIKKyBqZGs6L3Vzci9iaW4vamF2YTovdXNyL2xpYi9qdm0vb3Blbmpk azExL2Jpbi9qYXZhCisgamRrOi91c3IvYmluL2phdmEtcm1pLmNnaTovdXNyL2xpYi9qdm0vb3Bl bmpkazExL2Jpbi9qYXZhLXJtaS5jZ2kKKyBqZGs6L3Vzci9iaW4vamF2YWM6L3Vzci9saWIvanZt L29wZW5qZGsxMS9iaW4vamF2YWMKKyBqZGs6L3Vzci9iaW4vamF2YWRvYzovdXNyL2xpYi9qdm0v b3BlbmpkazExL2Jpbi9qYXZhZG9jCisgamRrOi91c3IvYmluL2phdmFoOi91c3IvbGliL2p2bS9v cGVuamRrMTEvYmluL2phdmFoCisgamRrOi91c3IvYmluL2phdmFwOi91c3IvbGliL2p2bS9vcGVu amRrMTEvYmluL2phdmFwCisgamRrOi91c3IvYmluL2pjbWQ6L3Vzci9saWIvanZtL29wZW5qZGsx MS9iaW4vamNtZAorIGpkazovdXNyL2Jpbi9qY29uc29sZTovdXNyL2xpYi9qdm0vb3BlbmpkazEx L2Jpbi9qY29uc29sZQorIGpkazovdXNyL2Jpbi9qZGI6L3Vzci9saWIvanZtL29wZW5qZGsxMS9i aW4vamRiCisgamRrOi91c3IvYmluL2pkZXBzOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2pk ZXBzCisgamRrOi91c3IvYmluL2poYXQ6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vamhhdAor IGpkazovdXNyL2Jpbi9qaW5mbzovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9qaW5mbworIGpk azovdXNyL2Jpbi9qanM6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vampzCisgamRrOi91c3Iv YmluL2ptYXA6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vam1hcAorIGpkazovdXNyL2Jpbi9q cHM6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vanBzCisgamRrOi91c3IvYmluL2pydW5zY3Jp cHQ6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vanJ1bnNjcmlwdAorIGpkazovdXNyL2Jpbi9q c2FkZWJ1Z2Q6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vanNhZGVidWdkCisgamRrOi91c3Iv YmluL2pzdGFjazovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9qc3RhY2sKKyBqZGs6L3Vzci9i aW4vanN0YXQ6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vanN0YXQKKyBqZGs6L3Vzci9iaW4v anN0YXRkOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9r ZXl0b29sOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2tleXRvb2wKKyBqZGs6L3Vzci9iaW4v bmF0aXZlMmFzY2lpOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL25hdGl2ZTJhc2NpaQorIGpk azovdXNyL2Jpbi9vcmJkOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL29yYmQKKyBqZGs6L3Vz ci9iaW4vcGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9wYWNrMjAwCisgamRrOi91 c3IvYmluL3BvbGljeXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vcG9saWN5dG9vbAor IGpkazovdXNyL2Jpbi9ybWljOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3JtaWMKKyBqZGs6 L3Vzci9iaW4vcm1pZDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9ybWlkCisgamRrOi91c3Iv YmluL3JtaXJlZ2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3JtaXJlZ2lzdHJ5Cisg amRrOi91c3IvYmluL3NjaGVtYWdlbjovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9zY2hlbWFn ZW4KKyBqZGs6L3Vzci9iaW4vc2VyaWFsdmVyOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3Nl cmlhbHZlcgorIGpkazovdXNyL2Jpbi9zZXJ2ZXJ0b29sOi91c3IvbGliL2p2bS9vcGVuamRrMTEv YmluL3NlcnZlcnRvb2wKKyBqZGs6L3Vzci9iaW4vdG5hbWVzZXJ2Oi91c3IvbGliL2p2bS9vcGVu amRrMTEvYmluL3RuYW1lc2VydgorIGpkazovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZt L29wZW5qZGsxMS9iaW4vdW5wYWNrMjAwCisgamRrOi91c3IvYmluL3dzZ2VuOi91c3IvbGliL2p2 bS9vcGVuamRrMTEvYmluL3dzZ2VuCisgamRrOi91c3IvYmluL3dzaW1wb3J0Oi91c3IvbGliL2p2 bS9vcGVuamRrMTEvYmluL3dzaW1wb3J0CisgamRrOi91c3IvYmluL3hqYzovdXNyL2xpYi9qdm0v b3BlbmpkazExL2Jpbi94amMKKyIKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZp Z3VyZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1y IHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAi JFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNE SVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCWVjaG8gIkFwcGx5aW5nICRmIgorCQkJ cGF0Y2ggLU5wMSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1cmUoKSB7CisJ Q0ZMQUdTPSR7Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdTPSR7Q1hYRkxB R1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJY29uZmlndXJlX2FyZ3M9JHtjb25maWd1cmVfYXJn cy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSotbGludXgtW2Etel0qL30K KwlpZiBbICIkWEJQU19DQ0FDSEUiIF0gJiYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJ CWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwkJQ0M9Ii91c3IvYmluL2NjIgor CQlDWFg9Ii91c3IvYmluL2MrKyIKKwlmaQorCS4vY29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9 IC0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIC0td2l0aC1leHRyYS1jeHhmbGFncz0iJENY WEZMQUdTIiAtLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiCit9CisKK3Bvc3RfaW5zdGFs bCgpIHsKKwl2bWtkaXIgL3Vzci9saWIvanZtCisJbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9v cGVuamRrLSR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0taW50 ZXJuYWwgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9CisJcm0gLXJm ICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwl2bWtkaXIgdXNyL2xpYi9qdm0vJF9vcGVuamRrX3Zl cnNpb24vbGliL3NlY3VyaXR5CisJbWFrZS1jYSAtZyAtZiAtLWRlc3RkaXIgIiR7UFdEfS9jYSIg LWsgIiR7REVTVERJUn0vdXNyL2xpYi9qdm0vJF9vcGVuamRrX3ZlcnNpb24vYmluL2tleXRvb2wi CisJbXYgLi9jYS9ldGMvcGtpL3Rscy9qYXZhL2NhY2VydHMgJHtERVNURElSfS91c3IvbGliL2p2 bS8kX29wZW5qZGtfdmVyc2lvbi9saWIvc2VjdXJpdHkvCisgICAgY2htb2QgLVIgdWdvK3J3IC4v Y2EKKyAgICBybSAtUmYgLi9jYQorCXZsaWNlbnNlIEFTU0VNQkxZX0VYQ0VQVElPTgorCXZsaWNl bnNlIExJQ0VOU0UKK30KKworb3BlbmpkazExLWRvY19wYWNrYWdlKCkgeworCW5vc3RyaXA9eWVz CisJbm92ZXJpZnlyZGVwcz15ZXMKKwlub3NobGlicHJvdmlkZXM9eWVzCisJc2hvcnRfZGVzYys9 IiAtLSBkb2N1bWVudGF0aW9uIgorCXBrZ19pbnN0YWxsKCkgeworCQljZCAke3dya3NyY30KKwkJ aWYgWyAiJGJ1aWxkX29wdGlvbl9kb2NzIiBdOyB0aGVuCisJCQl2bWtkaXIgdXNyL3NoYXJlL2Rv Yy9vcGVuamRrMTEKKwkJCWNwIC1hIGJ1aWxkL2xpbnV4LSovaW1hZ2VzL2RvY3MvKiAke1BLR0RF U1RESVJ9L3Vzci9zaGFyZS9kb2Mvb3BlbmpkazExCisJCWZpCisJCXZtb3ZlIHVzci9saWIvanZt L29wZW5qZGsxMS9tYW4vbWFuMS8KKwl9Cit9CisKK29wZW5qZGsxMS1zcmNfcGFja2FnZSgpIHsK Kwlub3N0cmlwPXllcworCW5vdmVyaWZ5cmRlcHM9eWVzCisJbm9zaGxpYnByb3ZpZGVzPXllcwor CXNob3J0X2Rlc2MrPSIgLS0gc291cmNlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVz ci9saWIvanZtL29wZW5qZGsxMS9saWIvc3JjLnppcCIKKwl9Cit9Cg== --===============8196274415484704831==--