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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 25508 invoked from network); 17 Apr 2022 10:45:54 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Apr 2022 10:45:54 -0000 Content-Type: multipart/mixed; boundary="===============0193875227559291486==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_poppler=3A_update_to_22=2E04=2E0?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 17 Apr 2022 12:45:53 +0200 List-Id: Message-ID: <20220417104553.xMQbMPW49ujw4HSLbpW8Xz0OrYqoO8YneihZuf0rG0w@z> GitHub notification mails are now in MIME to allow UTF8. --===============0193875227559291486== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIHBvcHBsZXIKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzM2MzUxCgpwb3BwbGVyOiB1cGRhdGUgdG8gMjIuMDQuMAo8IS0t IFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJl IG5vdCBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0 ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcg cGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1 aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxv Yi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioN Ci0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRo YW4gMiBob3VycywgcGxlYXNlIFtza2lwIENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWlu dGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1 cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBp ZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0tPg0KPCEtLSANCiMjIyMgTG9jYWwgYnVp bGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hp dGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNl IGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFy Y2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZp bGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwv MzYzNTEucGF0Y2ggaXMgYXR0YWNoZWQ= --===============0193875227559291486== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-poppler-36351.patch" RnJvbSA4MTA2Y2I5ZmY0YTBhOTVkZjc2MWI2YTBjMTg5ZmE2MzdkZTViOGU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyODowOCAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMS84XSBwb3BwbGVyOiB1cGRhdGUgdG8gMjIuMDQuMAoKLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvcG9wcGxl ci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2ggfCAyMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNy Y3BrZ3MvcG9wcGxlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAxMyArKysrKysrKystLS0t CiAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2gK CmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhZTRiYjQ0 YzU3YTMuLjIxNDBhNWQ1MzkzYiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21t b24vc2hsaWJzCkBAIC0zNDcsNyArMzQ3LDcgQEAgbGliTWFnaWNrQ29yZS02LlExNi5zby43IGxp Ym1hZ2ljazYtNi45LjExLjYxXzEKIGxpYk1hZ2lja1dhbmQtNi5RMTYuc28uNyBsaWJtYWdpY2s2 LTYuOS4xMS42MV8xCiBsaWJNYWdpY2srKy02LlExNi5zby45IGxpYm1hZ2ljazYtNi45LjEyLjFf MQogbGlibHRkbC5zby43IGxpYmx0ZGwtMi4yLjZfMQotbGlicG9wcGxlci5zby4xMTEgbGlicG9w cGxlci0yMS4wNy4wXzEKK2xpYnBvcHBsZXIuc28uMTIwIGxpYnBvcHBsZXItMjIuMDMuMF8xCiBs aWJwb3BwbGVyLWdsaWIuc28uOCBwb3BwbGVyLWdsaWItMC4xOC4yXzEKIGxpYnBvcHBsZXItY3Bw LnNvLjAgcG9wcGxlci1jcHAtMC4xOC4yXzEKIGxpYnBvcHBsZXItcXQ1LnNvLjEgcG9wcGxlci1x dDUtMC4zMS4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxh Z3MucGF0Y2ggYi9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9maXgtY2ZsYWdzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWE0MDhkMDNjY2UuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9maXgtY2ZsYWdzLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjEgKzAsMCBAQAotZGlmZiAtLWdpdCBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jv cy5jbWFrZSBiL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQotaW5kZXggZmUxMTgy ZC4uNjAxM2JkMiAxMDA2NDQKLS0tLSBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFr ZQotKysrIGIvY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFjcm9zLmNtYWtlCi1AQCAtMTA0LDE0ICsx MDQsMTQgQEAgaWYoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYKQotICAgc2V0KERFRkFVTFRfQ09N UElMRV9XQVJOSU5HU19FWFRSQSAiJHtfd2Fybn0gJHtfd2Fybnh9IikKLSAKLSAgIHNldChfc2F2 ZV9jeHhmbGFncyAiJHtDTUFLRV9DWFhfRkxBR1N9IikKLS0gIHNldChDTUFLRV9DWFhfRkxBR1Mg ICAgICAgICAgICAgICAgIi1mbm8tZXhjZXB0aW9ucyAtZm5vLWNoZWNrLW5ldyAtZm5vLWNvbW1v biAtZm5vLW9wZXJhdG9yLW5hbWVzIC1EX0RFRkFVTFRfU09VUkNFIikKLSsgIHNldChDTUFLRV9D WFhfRkxBR1MgICAgICAgICAgICAgICAgIi1mbm8tZXhjZXB0aW9ucyAtZm5vLWNoZWNrLW5ldyAt Zm5vLWNvbW1vbiAtZm5vLW9wZXJhdG9yLW5hbWVzIC1EX0RFRkFVTFRfU09VUkNFICR7X3NhdmVf Y3h4ZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklORk8gIi1PMiAt ZyAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgICAg ICAgICItTzIgLUROREVCVUcgJHtfc2F2ZV9jeHhmbGFnc30iKQotICAgc2V0KENNQUtFX0NYWF9G TEFHU19ERUJVRyAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZuby1zY2hl ZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0Vf Q1hYX0ZMQUdTX0RFQlVHRlVMTCAgICAgICItZzMgLWZuby1pbmxpbmUgJHtfc2F2ZV9jeHhmbGFn c30iKQotICAgc2V0KENNQUtFX0NYWF9GTEFHU19QUk9GSUxFICAgICAgICAiLWczIC1mbm8taW5s aW5lIC1mdGVzdC1jb3ZlcmFnZSAtZnByb2ZpbGUtYXJjcyAke19zYXZlX2N4eGZsYWdzfSIpCi0g ICBzZXQoX3NhdmVfY2ZsYWdzICIke0NNQUtFX0NfRkxBR1N9IikKLS0gIHNldChDTUFLRV9DX0ZM QUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09VUkNFIikKLSsgIHNl dChDTUFLRV9DX0ZMQUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09V UkNFICR7X3NhdmVfY2ZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ19GTEFHU19SRUxXSVRIREVCSU5G TyAgICItTzIgLWcgJHtfc2F2ZV9jZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTEVB U0UgICAgICAgICAgIi1PMiAtRE5ERUJVRyAke19zYXZlX2NmbGFnc30iKQotICAgc2V0KENNQUtF X0NfRkxBR1NfREVCVUcgICAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZu by1zY2hlZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2NmbGFnc30iKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlCmlu ZGV4IDBhYTRlZGYyMGI1Ny4uNTRiMDNmMDRlOGJjIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBs ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlCkBAIC0zLDEzICszLDE1 IEBACiAjIFRISVMgUEtHIE1VU1QgQkUgU1lOQ0hST05JWkVEIFdJVEggInNyY3BrZ3MvcG9wcGxl ci1xdDUiLgogIwogcGtnbmFtZT1wb3BwbGVyCi12ZXJzaW9uPTIxLjA3LjAKK3ZlcnNpb249MjIu MDQuMAogcmV2aXNpb249MQorX3Rlc3RWZXJzaW9uPTA3NjJlMDE0NDE0M2U2ODBlMjRlYzhkNGMz NGM0NmMzNzE2Yjg3MTMKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNv bmZpZ3VyZV9hcmdzPSItREVOQUJMRV9VTlNUQUJMRV9BUElfQUJJX0hFQURFUlM9T04gLURFTkFC TEVfQ1BQPU9OCiAgLURFTkFCTEVfR0xJQj1PTiAtREVOQUJMRV9HT0JKRUNUX0lOVFJPU1BFQ1RJ T049JCh2b3B0X2lmIGdpciBPTiBPRkYpCi0gLURFTkFCTEVfUVQ1PU9GRiAtREVOQUJMRV9VVElM Uz1PTiAtREVOQUJMRV9CT09TVD0kKHZvcHRfaWYgYm9vc3QgT04gT0ZGKSIKKyAtREVOQUJMRV9R VDU9T0ZGIC1ERU5BQkxFX1VUSUxTPU9OIC1ERU5BQkxFX0JPT1NUPSQodm9wdF9pZiBib29zdCBP TiBPRkYpCisgLURDTUFLRV9CVUlMRF9UWVBFPVJFTEVBU0UgLURURVNUREFUQURJUj0nJHtYQlBT X0JVSUxERElSfS90ZXN0LSR7X3Rlc3RWZXJzaW9ufSciCiBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgbGliZ2xpYi1kZXZl bCBjYWlyby1kZXZlbCB0aWZmLWRldmVsIGxjbXMyLWRldmVsCiBsaWJjdXJsLWRldmVsIGxpYm9w ZW5qcGVnMi1kZXZlbCAkKHZvcHRfaWYgYm9vc3QgYm9vc3QtZGV2ZWwpIgpAQCAtMTcsOCArMTks MTEgQEAgc2hvcnRfZGVzYz0iUERGIHJlbmRlcmluZyBsaWJyYXJ5IgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9wb3BwbGVyLmZyZWVkZXNrdG9w Lm9yZyIKLWRpc3RmaWxlcz0iJHtob21lcGFnZX0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWUyNmFiMjlmNjgwNjVkZTRkNjU2MmYwYTNlMmI1NDM1YTgzY2E5MmJlNTcz Yjk5YTFjODE5OThmYTI4NmE0ZDQKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0 b3Aub3JnL3BvcHBsZXIvcG9wcGxlci8tL3Jhdy9tYXN0ZXIvTkVXUyIKK2Rpc3RmaWxlcz0iJHto b21lcGFnZX0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54egorIGh0dHBzOi8vZ2l0bGFiLmZy ZWVkZXNrdG9wLm9yZy9wb3BwbGVyL3Rlc3QvLS9hcmNoaXZlLyR7X3Rlc3RWZXJzaW9ufS90ZXN0 LSR7X3Rlc3RWZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0iODEzZmI0YjkwZTdiZGE2M2RmNTMy MDVjNTQ4NjAyYmFlNzI4ODg3YTYwZjQwNDhhYWU0ZGJkOWIxOTI3ZGVmZgorIDIxNDAxMDQwZDVj Y2YwNWU5ZWQ4NWMwOWE1ZGUyMjVkMDViMjcwZjhiYTc1OTIxYWY4ZmY2NzExNGYyMzEzYTYiCiAK IGJ1aWxkX29wdGlvbnM9ImdpciBib29zdCIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIGJv b3N0IgoKRnJvbSBhNTc3ZmRmM2Q1NTJlZTExZjE4MGFlY2ZjMjkwNzc5ZjEwMzJlMzllIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyOTowMiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMi84XSBwb3BwbGVyLXF0NTogdXBkYXRlIHRvIDIyLjA0LjAKCi0t LQogc3JjcGtncy9wb3BwbGVyLXF0NS9wYXRjaGVzICB8IDEgLQogc3JjcGtncy9wb3BwbGVyLXF0 NS90ZW1wbGF0ZSB8IDggKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcG9wcGxlci1xdDUv cGF0Y2hlcwoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvcGF0Y2hlcyBiL3NyY3Br Z3MvcG9wcGxlci1xdDUvcGF0Y2hlcwpkZWxldGVkIGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggNjM2 ZTRhYzJjYmQ5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wb3BwbGVyLXF0NS9wYXRjaGVz CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotLi4vcG9wcGxlci9wYXRjaGVzClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1w bGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKaW5kZXggMmExNWY1NjEyOGMxLi45 NzA3Y2Q3YmViMTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1wbGF0ZQpAQCAtNCwxMiArNCwxMyBAQAogIyBJVCBJ UyBTUExJVCBUTyBBVk9JRCBBIENZQ0xJQyBERVBFTkRFTkNZOiBxdDUgLT4gY3VwcyAtPiBwb3Bw bGVyIC0+IHF0NS4KICMKIHBrZ25hbWU9cG9wcGxlci1xdDUKLXZlcnNpb249MjEuMDcuMAordmVy c2lvbj0yMi4wNC4wCiByZXZpc2lvbj0xCiB3cmtzcmM9InBvcHBsZXItJHt2ZXJzaW9ufSIKIGJ1 aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU5TVEFCTEVfQVBJX0FC SV9IRUFERVJTPU9OIC1ERU5BQkxFX0dMSUI9T0ZGCi0gLURFTkFCTEVfUVQ1PU9OIC1ERU5BQkxF X1VUSUxTPU9GRiAtREVOQUJMRV9DUFA9T0ZGIC1ERU5BQkxFX0JPT1NUPU9GRiIKKyAtREVOQUJM RV9RVDU9T04gLURFTkFCTEVfVVRJTFM9T0ZGIC1ERU5BQkxFX0NQUD1PRkYgLURFTkFCTEVfQk9P U1Q9T0ZGCisgLURDTUFLRV9CVUlMRF9UWVBFPVJFTEVBU0UiCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgcXQ1LWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCB0aWZmLWRldmVs IGxjbXMyLWRldmVsIGxpYmN1cmwtZGV2ZWwKICBmb250Y29uZmlnLWRldmVsIGNhaXJvLWRldmVs IGxpYm9wZW5qcGVnMi1kZXZlbCBxdDUtZGV2ZWwiCkBAIC0xNyw4ICsxOCw5IEBAIHNob3J0X2Rl c2M9IlBERiByZW5kZXJpbmcgbGlicmFyeSAtIFF0NSBiaW5kaW5ncyIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9wcGxlci5mcmVlZGVza3Rv cC5vcmciCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wb3BwbGVy L3BvcHBsZXIvLS9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L3BvcHBs ZXItJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lMjZhYjI5ZjY4MDY1ZGU0ZDY1NjJmMGEz ZTJiNTQzNWE4M2NhOTJiZTU3M2I5OWExYzgxOTk4ZmEyODZhNGQ0CitjaGVja3N1bT04MTNmYjRi OTBlN2JkYTYzZGY1MzIwNWM1NDg2MDJiYWU3Mjg4ODdhNjBmNDA0OGFhZTRkYmQ5YjE5MjdkZWZm CiAjIGZhaWxzIHRvIGZpbmQgYSBidW5jaCBvZiBmaWxlcwogbWFrZV9jaGVjaz1ubwogCgpGcm9t IDQyYjY3NzExNGJjM2FiOTQxZWNkM2RjOTY4NmFkN2E0N2JlOGQ1MzIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNlcnMubm9yZXBseS5n aXRodWIuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4OjI5OjMyIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAzLzhdIHBvcHBsZXItZGF0YTogdXBkYXRlIHRvIDAuNC4xMQoKLS0tCiBzcmNwa2dz L3BvcHBsZXItZGF0YS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvcHBsZXItZGF0 YS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1kYXRhL3RlbXBsYXRlCmluZGV4IDQ4ZGJhMjQ5 N2ZiNi4uNGI2ZTk1NmI3YjcyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9wcGxlci1kYXRhJwogcGtnbmFtZT1wb3BwbGVyLWRh dGEKLXZlcnNpb249MC40LjEwCit2ZXJzaW9uPTAuNC4xMQogcmV2aXNpb249MQogc2hvcnRfZGVz Yz0iRW5jb2RpbmcgZGF0YSBmb3IgdGhlIHBvcHBsZXIgUERGIHJlbmRlcmluZyBsaWJyYXJ5Igog bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1J VCwgR1BMLTIuMC1vci1sYXRlciwgQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9w cGxlci5mcmVlZGVza3RvcC5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL3BvcHBsZXIuZnJlZWRl c2t0b3Aub3JnLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT02ZTJmY2Vm NjZlYzhjNDQ2MjVmOTQyOTJjY2Y4YWY5ZjFkOTE4YjQxMGQ1YWE2OWMyNzRjZTY3Mzg3OTY3YjMw CitjaGVja3N1bT0yY2VjMDVjZDFiYjAzYWY5OGE4YjA2YTFlMjJmNmU2ZTFhNjViMWUyZjM4MTZj YjMwNjliYjA4NzQ4MjVmMDhjCiAKIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBwcmVmaXg9L3VzciBE RVNURElSPSR7REVTVERJUn0gaW5zdGFsbAoKRnJvbSA3Njc2NzQ1MzZkNjZmMjU5ZGZkMmI4ODll MzcyOGU1Nzc3NzgzZGM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwz MTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBN YXIgMjAyMiAxODozMzozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNC84XSBjYWxsaWdyYTogcmVi dWlsZCBhZ2FpbnN0IGxpYnBvcHBsZXIgMjIuMDQuMAoKLS0tCiAuLi4vcGF0Y2hlcy8wMDAxLUZp eC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2ggfCA0NDAgKysrKysrKysrKysrKysrKysrCiAuLi4v MDAwMi1NYWtlLXNob3ctaGlkZGVuLXJvdy1zLXdvcmsucGF0Y2ggICAgfCAgMjkgKysKIHNyY3Br Z3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaCAgICAgICAgICB8ICAxNiArCiAuLi4vcGF0 Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoICAgICAgICAgfCAgNzAgKysrCiAuLi4vcGF0 Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoICAgICAgICAgfCAgOTEgKysrKwogc3JjcGtn cy9jYWxsaWdyYS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiA2IGZpbGVz IGNoYW5nZWQsIDY0NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDEtRml4LXNvbWUtbW9yZS13YXJuaW5n cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAy LU1ha2Utc2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgu cGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMS1GaXgtc29t ZS1tb3JlLXdhcm5pbmdzLnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDEtRml4 LXNvbWUtbW9yZS13YXJuaW5ncy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjZjYzEzMjkyNWIxNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2FsbGln cmEvcGF0Y2hlcy8wMDAxLUZpeC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2gKQEAgLTAsMCArMSw0 NDAgQEAKK0Zyb20gMDY4Y2Q5YWVjMTEwNTI3MzNlMzkzOTc2MTQyNTE2ZDIxOTBlNDU2NCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBpZXJyZSBEdWNyb3F1ZXQgPHBpbmFyYWZAcGlu YXJhZi5pbmZvPgorRGF0ZTogU3VuLCAyOCBGZWIgMjAyMSAyMzoyMzowMiArMDEwMAorU3ViamVj dDogW1BBVENIXSBGaXggc29tZSBtb3JlIHdhcm5pbmdzCisKKy0tLQorIGZpbHRlcnMvbGlibXNv b3htbC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcCAgICAgICAgfCAgMSArCisgZmlsdGVycy9z aGVldHMvY3N2L2NzdmltcG9ydC5jYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgZmls dGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNlbC5jcHAgICAgICAgICAgICB8ICAxICsK KyBmaWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcCAgICAgICAgIHwg IDIgKy0KKyBmaWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYyAgICAgICAg ICAgIHwgIDUgKystLS0KKyBmaWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MgICAgICAg ICAgICAgICAgICAgIHwgIDIgLS0KKyBmaWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhl eHBvcnQuY2MgICAgICAgICAgIHwgIDEgLQorIGZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90 YWJsZS5jYyAgICAgICAgICAgICAgICAgfCAgMSArCisgZmlsdGVycy9zaGVldHMveGxzeC9YbHN4 WG1sV29ya3NoZWV0UmVhZGVyLmNwcCAgICAgICB8ICAxIC0KKyBmaWx0ZXJzL3N0YWdlL3BwdHgv UHB0eFhtbERvY3VtZW50UmVhZGVyLmNwcCAgICAgICAgIHwgIDIgKy0KKyBmaWx0ZXJzL3dvcmRz L21zd29yZC1vZGYvdGV4dGhhbmRsZXIuY3BwICAgICAgICAgICAgIHwgIDIgKysKKyBmaWx0ZXJz L3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAgICAgICAgIHwgIDQgKysrLQor IGZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5jcHAgICAgICAgICAgfCAg NCArLS0tCisgZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmggICAgICAg ICAgICB8IDExICsrKysrKysrLS0tCisgZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcCAg ICAgICAgICAgICAgICAgICAgICB8ICAyICsrCisgbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdlU2F2 ZUhlbHBlci5jcHAgICAgICAgICAgICAgICB8ICAyICstCisgcGx1Z2lucy9zcGFjZW5hdmlnYXRv ci9TcGFjZU5hdmlnYXRvckRldmljZS5oICAgICAgICB8ICA2ICsrLS0tLQorIHBsdWdpbnMvc3Bh Y2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JFdmVudC5oICAgICAgICAgfCAgMiArLQorIHBsdWdp bnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmggfCAgMyArLS0K KyBwbHVnaW5zL3ZlY3RvcnNoYXBlL1ZlY3RvclNoYXBlLmNwcCAgICAgICAgICAgICAgICAgIHwg IDEgKworIHNoZWV0cy9mdW5jdGlvbnMvZGF0ZXRpbWUuY3BwICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMSArCisgc2hlZXRzL3BhcnQvRGlnZXN0LmNwcCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA4ICsrKystLS0tCisgc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3RvcnkuaCAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgc2hlZXRzL3Rlc3RzL1Rlc3RTb3J0LmNwcCAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KKyAyNCBmaWxlcyBjaGFuZ2VkLCAz OCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZpbHRlcnMv bGlibXNvb3htbC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcCBiL2ZpbHRlcnMvbGlibXNvb3ht bC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcAoraW5kZXggMTRiMDg1MzEyNjIuLjE0ZmM2YWI5 YTcxIDEwMDY0NAorLS0tIGEvZmlsdGVycy9saWJtc29veG1sL01zb29YbWxEaWFncmFtUmVhZGVy X3AuY3BwCisrKysgYi9maWx0ZXJzL2xpYm1zb294bWwvTXNvb1htbERpYWdyYW1SZWFkZXJfcC5j cHAKK0BAIC04NzIsNiArODcyLDcgQEAgdm9pZCBMYXlvdXROb2RlQXRvbTo6ZmluaXNoQnVpbGQo Q29udGV4dCogY29udGV4dCkgeworICAgICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpVbmtub3du QWxnOgorICAgICAgICAgICAgIHdhcm5Nc29vWG1sIDw8ICJMYXlvdXQgd2l0aCBuYW1lPSIgPDwg bV9uYW1lIDw8ICJkZWZpbmVzIGFuIHVua25vd24gYWxnb3JpdGhtLiI7CisgICAgICAgICAgICAg Ly8gZmFsbCB0aHJvdWdoIGFuZCB1c2UgdGhlIGNvbXBvc2l0ZS1hbGdvcml0aG0KKysgICAgICAg IC8vIGZhbGwgdGhyb3VnaAorICAgICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpDb21wb3NpdGVB bGc6IG1fYWxnb3JpdGhtSW1wbCA9IG5ldyBDb21wb3NpdGVBbGdvcml0aG07IGJyZWFrOworICAg ICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpDb25uZWN0b3JBbGc6IG1fYWxnb3JpdGhtSW1wbCA9 IG5ldyBDb25uZWN0b3JBbGdvcml0aG07IGJyZWFrOworICAgICAgICAgY2FzZSBBbGdvcml0aG1B dG9tOjpDeWNsZUFsZzogbV9hbGdvcml0aG1JbXBsID0gbmV3IEN5Y2xlQWxnb3JpdGhtOyBicmVh azsKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjIGIvZmlsdGVy cy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYworaW5kZXggODlmYjcxNjJlMDAuLjEwMDhkMTg2ZjE4 IDEwMDY0NAorLS0tIGEvZmlsdGVycy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYworKysrIGIvZmls dGVycy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYworQEAgLTk3LDggKzk3LDggQEAgS29GaWx0ZXI6 OkNvbnZlcnNpb25TdGF0dXMgQ1NWRmlsdGVyOjpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZy b20sIGNvbnN0IFFCeXQKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6RmlsZU5vdEZvdW5kOwor ICAgICB9CisgCistICAgIFFTdHJpbmcgY3N2X2RlbGltaXRlcjsKKyAgICAgLy8gIyMjIyMjIEZJ WE1FOiBkaXNhYmxlZCBmb3Igbm93CisrICAgIC8vUVN0cmluZyBjc3ZfZGVsaW1pdGVyOworICAg ICAvL2lmICghY29uZmlnLmlzTnVsbCgpKQorICAgICAvLyAgICBjc3ZfZGVsaW1pdGVyID0gY29u ZmlnWzBdOworIAorZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIv ZXhjZWwuY3BwIGIvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNlbC5jcHAKK2lu ZGV4IGFiNTkyMjI1Y2E2Li43ZmE1NjMzZDQzMyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRz L2V4Y2VsL3NpZGV3aW5kZXIvZXhjZWwuY3BwCisrKysgYi9maWx0ZXJzL3NoZWV0cy9leGNlbC9z aWRld2luZGVyL2V4Y2VsLmNwcAorQEAgLTI0NDksNiArMjQ0OSw3IEBAIGJvb2wgRXhjZWxSZWFk ZXI6OmxvYWQoV29ya2Jvb2sqIHdvcmtib29rLCBjb25zdCBjaGFyKiBmaWxlbmFtZSkKKyAgICAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIGJ5dGVzX3JlYWQgPSBjb21iT2Jq U3RyZWFtLT5yZWFkKCBidWZmZXIsIG1hcmtlck9yTGVuZ3RoICk7CisgICAgICAgICAgICAgICAg IFFTdHJpbmcgYW5zaVN0cmluZyA9IHJlYWRCeXRlU3RyaW5nKGJ1ZmZlciwgbWFya2VyT3JMZW5n dGgpOworKyAgICAgICAgICAgICAgICBRX1VOVVNFRChhbnNpU3RyaW5nKTsKKyAgICAgICAgICAg ICAgICAgLy9UT0RPLi4uCisgICAgICAgICAgICAgICAgIC8vcHJpbnRmKCAibWFya2VyT3JMZW5n dGg9JWkgYW5zaVN0cmluZz0lc1xuIixtYXJrZXJPckxlbmd0aCxhbnNpU3RyaW5nLmFzY2lpKCkg KTsKKyAgICAgICAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9leGNlbC9z aWRld2luZGVyL2Zvcm11bGFzLmNwcCBiL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIv Zm9ybXVsYXMuY3BwCitpbmRleCA2Mjc0NzQ2OWE0OS4uMDEzMmQzOWUwMjQgMTAwNjQ0CistLS0g YS9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcAorKysrIGIvZmls dGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9mb3JtdWxhcy5jcHAKK0BAIC0xNTEzLDcgKzE1 MTMsNyBAQCBzdGF0aWMgdm9pZCBtZXJnZVRva2VucyhVU3RyaW5nU3RhY2sqIHN0YWNrLCB1bnNp Z25lZCBjb3VudCwgY29uc3QgUVN0cmluZyAmbWVyZworICAgICBpZiAoIXN0YWNrKSByZXR1cm47 CisgICAgIGlmIChzdGFjay0+c2l6ZSgpIDwgY291bnQpIHJldHVybjsKKyAKKy0gICAgUVN0cmlu ZyBzMSwgczI7CisrICAgIFFTdHJpbmcgczE7CisgCisgICAgIHdoaWxlIChjb3VudCkgeworICAg ICAgICAgY291bnQtLTsKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9nbnVt ZXJpY2V4cG9ydC5jYyBiL2ZpbHRlcnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmljZXhwb3J0LmNj CitpbmRleCAxMjU2YzY4YmM3NC4uMjQ2ODU0OGVkYjMgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3No ZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYworKysrIGIvZmlsdGVycy9zaGVldHMvZ251 bWVyaWMvZ251bWVyaWNleHBvcnQuY2MKK0BAIC0xMjkzLDE1ICsxMjkzLDEzIEBAIEtvRmlsdGVy OjpDb252ZXJzaW9uU3RhdHVzIEdOVU1FUklDRXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJy YXkmIGZyb20sIGNvbnN0CisgICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgIH0K KyAKKy0gICAgICAgICAgICBRU3RyaW5nIGxpbmU7CisgICAgICAgICAgICAgZm9yIChpbnQgY3Vy cmVudGNvbHVtbiA9IDE7IGN1cnJlbnRjb2x1bW4gPD0gaU1heENvbHVtbjsgY3VycmVudGNvbHVt bisrKSB7CisgICAgICAgICAgICAgICAgIFFEb21FbGVtZW50IGNlbGxfY29udGVudHM7CisgICAg ICAgICAgICAgICAgIENlbGwgY2VsbCh0YWJsZSwgY3VycmVudGNvbHVtbiwgY3VycmVudHJvdyk7 CisgCistICAgICAgICAgICAgICAgIFFTdHJpbmcgdGV4dCwgc3R5bGU7CisrICAgICAgICAgICAg ICAgIFFTdHJpbmcgdGV4dDsKKyAgICAgICAgICAgICAgICAgUURvbURvY3VtZW50IGRvbUxpbms7 CisgICAgICAgICAgICAgICAgIFFEb21FbGVtZW50IGRvbVJvb3Q7CistICAgICAgICAgICAgICAg IFFEb21Ob2RlIGRvbU5vZGU7CisgICAgICAgICAgICAgICAgIFFEb21Ob2RlTGlzdCBjaGlsZE5v ZGVzOworIAorICAgICAgICAgICAgICAgICBpZiAoIWNlbGwuaXNEZWZhdWx0KCkgJiYgIWNlbGwu aXNFbXB0eSgpKSB7CitAQCAtMTM0Miw2ICsxMzQwLDcgQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25T dGF0dXMgR05VTUVSSUNFeHBvcnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVBcnJheSYgZnJvbSwgY29u c3QKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gZG9tTm9kZS50b0VsZW1lbnQoKS50 ZXh0KCk7CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFkb21Ob2RlLmlzTnVs bCgpKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcgc3R5bGU7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID0gZG9tTm9kZS50b0VsZW1lbnQoKS50YWdO YW1lKCk7CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHlsZSA9PSAiYiIp CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjIGIvZmlsdGVy cy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjCitpbmRleCAyZDExNmUwNjA4Yy4uYmY0MWE2Zjc0 M2UgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MKKysrKyBi L2ZpbHRlcnMvc2hlZXRzL2h0bWwvaHRtbGV4cG9ydC5jYworQEAgLTI0Miw3ICsyNDIsNiBAQCB2 b2lkIEhUTUxFeHBvcnQ6OmNvbnZlcnRTaGVldChTaGVldCAqc2hlZXQsIFFTdHJpbmcgJnN0ciwg aW50IGlNYXhVc2VkUm93LCBpbnQgaQorICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgfQor IAorLSAgICAgICAgUVN0cmluZyBzZXBhcmF0b3JzOworICAgICAgICAgUVN0cmluZyBsaW5lOwor ICAgICAgICAgdW5zaWduZWQgaW50IG5vbmVtcHR5X2NlbGxzID0gMDsKKyAKK0BAIC00MzUsNyAr NDM0LDYgQEAgdm9pZCBIVE1MRXhwb3J0OjpkZXRlY3RGaWxsZWRDZWxscyhTaGVldCAqc2hlZXQs IGludCAmcm93cywgaW50ICZjb2x1bW5zKQorICAgICAgICAgaW50IGlVc2VkQ29sdW1uID0gMDsK KyAgICAgICAgIGZvciAoaW50IGN1cnJlbnRjb2x1bW4gPSAxIDsgY3VycmVudGNvbHVtbiA8PSBp TWF4Q29sdW1uIDsgY3VycmVudGNvbHVtbisrKSB7CisgICAgICAgICAgICAgY2VsbCA9IENlbGwo c2hlZXQsIGN1cnJlbnRjb2x1bW4sIGN1cnJlbnRyb3cpOworLSAgICAgICAgICAgIFFTdHJpbmcg dGV4dDsKKyAgICAgICAgICAgICBpZiAoIWNlbGwuaXNEZWZhdWx0KCkgJiYgIWNlbGwuaXNFbXB0 eSgpKSB7CisgICAgICAgICAgICAgICAgIGlVc2VkQ29sdW1uID0gY3VycmVudGNvbHVtbjsKKyAg ICAgICAgICAgICB9CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xh dGV4ZXhwb3J0LmNjIGIvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xhdGV4ZXhwb3J0LmNj CitpbmRleCA4ZDA2OThhMzQyMC4uNGY4Y2FmMjM1ZDkgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3No ZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhleHBvcnQuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2xh dGV4L2V4cG9ydC9sYXRleGV4cG9ydC5jYworQEAgLTM4LDcgKzM4LDYgQEAgTEFURVhFeHBvcnQ6 OkxBVEVYRXhwb3J0KFFPYmplY3QqIHBhcmVudCwgY29uc3QgUVZhcmlhbnRMaXN0JikgOgorIAor IEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIExBVEVYRXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFC eXRlQXJyYXkmIGZyb20sIGNvbnN0IFFCeXRlQXJyYXkmIHRvKQorIHsKKy0gICAgUVN0cmluZyBj b25maWc7CisgCisgICAgIGlmICh0byAhPSAidGV4dC94LXRleCIgfHwgZnJvbSAhPSAiYXBwbGlj YXRpb24veC1rc3ByZWFkIikKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6Tm90SW1wbGVtZW50 ZWQ7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjIGIv ZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjCitpbmRleCA4ZDhiNjcwMWEzOS4u ZTU4ODI3ZGZiYzcgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFi bGUuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90YWJsZS5jYworQEAgLTEx OCw2ICsxMTgsNyBAQCB2b2lkIFRhYmxlOjphbmFseXplUGFwZXIoY29uc3QgUURvbU5vZGUgbm9k ZSkKKyAKKyAgICAgLyogYm9yZGVycyAqLworICAgICBRRG9tTm9kZSBib3JkZXIgPSBnZXRDaGls ZChub2RlLCAiYm9yZGVycyIpOworKyAgICBRX1VOVVNFRChib3JkZXIpOworICAgICBzZXRCb3Jk ZXJSaWdodChnZXRBdHRyKG5vZGUsICJyaWdodCIpLnRvTG9uZygpKTsKKyAgICAgc2V0Qm9yZGVy TGVmdChnZXRBdHRyKG5vZGUsICJsZWZ0IikudG9Mb25nKCkpOworICAgICBzZXRCb3JkZXJCb3R0 b20oZ2V0QXR0cihub2RlLCAiYm90dG9tIikudG9Mb25nKCkpOworZGlmZiAtLWdpdCBhL2ZpbHRl cnMvc2hlZXRzL3hsc3gvWGxzeFhtbFdvcmtzaGVldFJlYWRlci5jcHAgYi9maWx0ZXJzL3NoZWV0 cy94bHN4L1hsc3hYbWxXb3Jrc2hlZXRSZWFkZXIuY3BwCitpbmRleCA3ODJhNTkxNDcyOS4uZWRh OGZmYzZiNDcgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxXb3Jrc2hl ZXRSZWFkZXIuY3BwCisrKysgYi9maWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxXb3Jrc2hlZXRS ZWFkZXIuY3BwCitAQCAtODcyLDcgKzg3Miw2IEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVz IFhsc3hYbWxXb3Jrc2hlZXRSZWFkZXI6OnJlYWRfY29uZGl0aW9uYWxGb3JtYXR0aW5nKCkKKyAg ICAgd2hpbGUgKGluZGV4IDwgbV9jb25kaXRpb25hbEluZGljZXMuc2l6ZSgpKSB7CisgICAgICAg ICBRU3RyaW5nIGNvbmRpdGlvbmFsQXJlYTsKKyAgICAgICAgIENvbmRpdGlvbiBleGFtaW5lZENv bmRpdGlvbiA9IG1fY29uZGl0aW9uYWxJbmRpY2VzLmF0KGluZGV4KTsKKy0gICAgICAgIFFTdHJp bmcgc3FyZWZPcmlnaW5hbCA9IHNxcmVmOworICAgICAgICAgaW50IGFyZWFJbmRleCA9IDA7Cisg ICAgICAgICBDb25kaXRpb24gcHJldmlvdXNDb25kOworIAorZGlmZiAtLWdpdCBhL2ZpbHRlcnMv c3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFkZXIuY3BwIGIvZmlsdGVycy9zdGFnZS9wcHR4 L1BwdHhYbWxEb2N1bWVudFJlYWRlci5jcHAKK2luZGV4IDRjZjg2YWVhOGM4Li4xMWI1YWQyNjZi OSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFkZXIu Y3BwCisrKysgYi9maWx0ZXJzL3N0YWdlL3BwdHgvUHB0eFhtbERvY3VtZW50UmVhZGVyLmNwcAor QEAgLTMxNiw3ICszMTYsNyBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBQcHR4WG1sRG9j dW1lbnRSZWFkZXI6OnJlYWRfc2xkSWQoKQorIAorICAgICBRU3RyaW5nIHNsaWRlTWFzdGVyUGF0 aCwgc2xpZGVNYXN0ZXJGaWxlOworICAgICBNU09PWE1MOjpVdGlsczo6c3BsaXRQYXRoQW5kRmls ZShtX2NvbnRleHQtPnJlbGF0aW9uc2hpcHMtPnRhcmdldEZvclR5cGUoc2xpZGVQYXRoLCBzbGlk ZUZpbGUsIFFMYXRpbjFTdHJpbmcoTVNPT1hNTDo6U2NoZW1hczo6b2ZmaWNlRG9jdW1lbnQ6OnJl bGF0aW9uc2hpcHMpICsgIi9zbGlkZUxheW91dCIpLCAmc2xpZGVNYXN0ZXJQYXRoLCAmc2xpZGVN YXN0ZXJGaWxlKTsKKy0gICAgY29uc3QgUVN0cmluZyBzbGlkZU1hc3RlclBhdGhBbmRGaWxlID0g bV9jb250ZXh0LT5yZWxhdGlvbnNoaXBzLT50YXJnZXRGb3JUeXBlKHNsaWRlTWFzdGVyUGF0aCwg c2xpZGVNYXN0ZXJGaWxlLCBRTGF0aW4xU3RyaW5nKE1TT09YTUw6OlNjaGVtYXM6Om9mZmljZURv Y3VtZW50OjpyZWxhdGlvbnNoaXBzKSArICIvc2xpZGVNYXN0ZXIiKTsKKysgICAgLy8gY29uc3Qg UVN0cmluZyBzbGlkZU1hc3RlclBhdGhBbmRGaWxlID0gbV9jb250ZXh0LT5yZWxhdGlvbnNoaXBz LT50YXJnZXRGb3JUeXBlKHNsaWRlTWFzdGVyUGF0aCwgc2xpZGVNYXN0ZXJGaWxlLCBRTGF0aW4x U3RyaW5nKE1TT09YTUw6OlNjaGVtYXM6Om9mZmljZURvY3VtZW50OjpyZWxhdGlvbnNoaXBzKSAr ICIvc2xpZGVNYXN0ZXIiKTsKKyAKKyAgICAgLy8gRGVsYXkgdGhlIHJlYWRpbmcgb2YgYSB0YWJs ZVN0eWxlIHVudGlsIHdlIGZpbmQgYSB0YWJsZSBhcyB3ZSBuZWVkIHRoZQorICAgICAvLyBjbHJN YXAgZnJvbSB0aGUgbWFzdGVyIHNsaWRlCitkaWZmIC0tZ2l0IGEvZmlsdGVycy93b3Jkcy9tc3dv cmQtb2RmL3RleHRoYW5kbGVyLmNwcCBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi90ZXh0aGFu ZGxlci5jcHAKK2luZGV4IGUxNjdkODZlMDI4Li44OWVmNjc4OTYxYSAxMDA2NDQKKy0tLSBhL2Zp bHRlcnMvd29yZHMvbXN3b3JkLW9kZi90ZXh0aGFuZGxlci5jcHAKKysrKyBiL2ZpbHRlcnMvd29y ZHMvbXN3b3JkLW9kZi90ZXh0aGFuZGxlci5jcHAKK0BAIC00MDgsNiArNDA4LDcgQEAgdm9pZCBX b3Jkc1RleHRIYW5kbGVyOjpmb290bm90ZUZvdW5kKHd2V2FyZTo6Rm9vdG5vdGVEYXRhIGRhdGEs CisgICAgICAgICB9CisgICAgICAgICBjYXNlIG1zb25mY1VDTGV0dGVyOgorICAgICAgICAgICAg IGxldHRlciA9ICdBJzsKKysgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgIGNh c2UgbXNvbmZjTENMZXR0ZXI6CisgICAgICAgICB7CisgICAgICAgICAgICAgd2hpbGUgKG5vdGVO dW1iZXIgLyAyNSA+IDApIHsKK0BAIC0xMDY0LDYgKzEwNjUsNyBAQCB2b2lkIFdvcmRzVGV4dEhh bmRsZXI6OmZpZWxkU3RhcnQoY29uc3Qgd3ZXYXJlOjpGTEQqIGZsZCwgd3ZXYXJlOjpTaGFyZWRQ dHI8Y29ucworICAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgVU5TVVBQT1JURUQ6CisgICAgICAg ICB3YXJuTXNEb2MgPDwgIldhcm5pbmc6IEZsZCBkYXRhIG1pc3NpbmcsIGlnbm9yaW5nISI7Cisr ICAgICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIHdhcm5Nc0Rv YyA8PCAiV2FybmluZzogdW5yZWNvZ25pemVkIGZpZWxkIHR5cGUsIGlnbm9yaW5nISI7CisgICAg ICAgICBtX2ZsZC0+bV90eXBlID0gVU5TVVBQT1JURUQ7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy93 b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvcGFyc2VyOXguY3BwIGIvZmlsdGVycy93b3Jkcy9tc3dv cmQtb2RmL3d2Mi9zcmMvcGFyc2VyOXguY3BwCitpbmRleCA5YTZkMTYwNmNlOS4uZTVkN2QxNDY5 MWMgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5 eC5jcHAKKysrKyBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3BhcnNlcjl4LmNw cAorQEAgLTU4MSw3ICs1ODEsOCBAQCB2b2lkIFBhcnNlcjl4Ojpwcm9jZXNzUGllY2UoIFN0cmlu Zyogc3RyaW5nLCBVMzIgZmMsIFUzMiBsaW1pdCwgY29uc3QgUG9zaXRpb24mCisgICAgICAgICAv LyBzYW1lIEFTQ0lJIGNvZGUgYXMgVFRQX01BUksgKDB4MDAwNyksIE5PVEU6IHRhYmxlIGRlcHRo ID09IDEKKyAgICAgICAgIGNhc2UgQ0VMTF9NQVJLOgorICAgICAgICAgICAgIG1fY2VsbE1hcmtG b3VuZCA9IHRydWU7CistICAgICAgICAgICAgLy8gRmFsbC10aHJvdWdoIGludGVuZGVkLiBBIHJv dy9jZWxsIGVuZCBpcyBhbHNvIGEgcGFyYWdyYXBoIGVuZC4KKysgICAgICAgICAgICAvLyBBIHJv dy9jZWxsIGVuZCBpcyBhbHNvIGEgcGFyYWdyYXBoIGVuZC4KKysgICAgICAgICAgICAvLyBmYWxs IHRocm91Z2gKKyAgICAgICAgIGNhc2UgUEFSQUdSQVBIX01BUks6CisgICAgICAgICB7CisgICAg ICAgICAgICAgLy8gTm8gImluZGV4IC0gc3RhcnQgKyAxIiBoZXJlLCBhcyB3ZSBkb24ndCB3YW50 IHRvIGNvcHkgdGhlCitAQCAtMTA2NCw2ICsxMDY1LDcgQEAgdm9pZCBQYXJzZXI5eDo6ZW1pdFNw ZWNpYWxDaGFyYWN0ZXIoIFVDaGFyIGNoYXJhY3RlciwgVTMyIGdsb2JhbENQLCBTaGFyZWRQdHI8 Y28KKyAgICAgICAgICAgICBpZiAobV9zdWJEb2N1bWVudCA9PSBNYWluKSB7CisgICAgICAgICAg ICAgICAgIGVtaXRBbm5vdGF0aW9uKCBVU3RyaW5nKGNoYXJhY3RlciksIGdsb2JhbENQLCBjaHAg KTsKKyAgICAgICAgICAgICB9CisrICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAg IGNhc2UgVGV4dEhhbmRsZXI6OkZpZWxkRXNjYXBlQ2hhcjoKKyAgICAgICAgIHd2bG9nIDw8ICJG b3VuZCBhbiBlc2NhcGUgY2hhcmFjdGVyICsrKysrKysrKysrKysrKysrKysrPyIgPDwgZW5kbDsK K2RpZmYgLS1naXQgYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3Bw IGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmNwcAoraW5kZXggZjQ3 YzNkZDhkNTEuLmQyYzk2ZTNkOTJiIDEwMDY0NAorLS0tIGEvZmlsdGVycy93b3Jkcy9tc3dvcmQt b2RmL3d2Mi9zcmMvc3R5bGVzLmNwcAorKysrIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2 Mi9zcmMvc3R5bGVzLmNwcAorQEAgLTQyLDcgKzQyLDYgQEAgU1REOjpTVEQoKQorIH0KKyAKKyBT VEQ6OlNURCggVTE2IGJhc2VTaXplLCBVMTYgdG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0 cmVhbSwgYm9vbCBwcmVzZXJ2ZVBvcyApCistdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbikK KyB7CisgICAgIGNsZWFySW50ZXJuYWwoKTsKKyAgICAgaWYgKCFyZWFkKCBiYXNlU2l6ZSwgdG90 YWxTaXplLCBzdHJlYW0sIHByZXNlcnZlUG9zICkpIHsKK0BAIC0xMTIsNyArMTExLDYgQEAgU1RE JiBTVEQ6Om9wZXJhdG9yPSggY29uc3QgU1REJiByaHMgKQorIH0KKyAKKyBib29sIFNURDo6cmVh ZCggY29uc3QgVTE2IGNiU3RkLCBjb25zdCBVMTYgc3RkZlNpemUsIE9MRVN0cmVhbVJlYWRlciog c3RyZWFtLCBib29sIHByZXNlcnZlUG9zICkKKy10aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9u KQorIHsKKyAgICAgVTE2IHNoaWZ0ZXJVMTY7CisgICAgIFMzMiBzdGFydE9mZnNldD1zdHJlYW0t PnRlbGwoKTsgIC8vIGFkZHJlc3Mgd2hlcmUgdGhlIFNURCBzdGFydHMKK0BAIC05MzgsNyArOTM2 LDcgQEAgdm9pZCBTdHlsZTo6bWVyZ2VVcGVjaHB4KCBjb25zdCBTdHlsZSogcGFyZW50U3R5bGUs IFdvcmRWZXJzaW9uIHZlcnNpb24gKQorIH0KKyAKKyAKKy1TdHlsZVNoZWV0OjpTdHlsZVNoZWV0 KCBPTEVTdHJlYW1SZWFkZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hm ICkgdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbikKKytTdHlsZVNoZWV0OjpTdHlsZVNoZWV0 KCBPTEVTdHJlYW1SZWFkZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hm ICkKKyAgICAgOiBtX3Vkc051bSgwKQorIHsKKyAgICAgV29yZFZlcnNpb24gdmVyc2lvbiA9IFdv cmQ4OworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxl cy5oIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmgKK2luZGV4IGJh MDJkZWY2ODQ1Li40MWM4Mjc4ZGQyMSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvd29yZHMvbXN3b3Jk LW9kZi93djIvc3JjL3N0eWxlcy5oCisrKysgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3Yy L3NyYy9zdHlsZXMuaAorQEAgLTU4LDggKzU4LDkgQEAgc3RydWN0IFNURAorICAgICBTVEQoKTsK KyAgICAgLyoqCisgICAgICAqIFNpbXBseSBjYWxscyByZWFkKC4uLikKKysgICAgICogQHRocm93 IEludmFsaWRGb3JtYXRFeGNlcHRpb24KKyAgICAgICovCistICAgIFNURCggVTE2IHN0ZGZTaXpl LCBVMTYgdG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVzZXJ2ZVBv cyA9IGZhbHNlICkgdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbik7CisrICAgIFNURCggVTE2 IHN0ZGZTaXplLCBVMTYgdG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBw cmVzZXJ2ZVBvcyA9IGZhbHNlICk7CisgICAgIC8qKgorICAgICAgKiBBdHRlbnRpb246IFRoaXMg c3RydWN0IGFsbG9jYXRlcyBtZW1vcnkgb24gdGhlIGhlYXAKKyAgICAgICovCitAQCAtNzQsOCAr NzUsOSBAQCBzdHJ1Y3QgU1RECisgICAgICAqIGZhbHNlIHRoZSBzdGF0ZSBvZiBzdHJlYW0gd2ls bCBiZSBjaGFuZ2VkIQorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHRydWUgLSBzdWNjZXNzLCBm YWxzZSAtIGZhaWxlZAorKyAgICAgKiBAdGhyb3cgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbgorICAg ICAgKi8KKy0gICAgYm9vbCByZWFkKCBjb25zdCBVMTYgY2JTdGQsIGNvbnN0IFUxNiBzdGRmU2l6 ZSwgT0xFU3RyZWFtUmVhZGVyKiBzdHJlYW0sIGJvb2wgcHJlc2VydmVQb3MgPSBmYWxzZSApIHRo cm93KEludmFsaWRGb3JtYXRFeGNlcHRpb24pOworKyAgICBib29sIHJlYWQoIGNvbnN0IFUxNiBj YlN0ZCwgY29uc3QgVTE2IHN0ZGZTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBw cmVzZXJ2ZVBvcyA9IGZhbHNlICk7CisgCisgICAgIC8qKgorICAgICAgKiBTYW1lIGFzIHJlYWRp bmcgOikKK0BAIC0zNjUsNyArMzY3LDEwIEBAIGNsYXNzIFdWMl9FWFBPUlQgU3R5bGUKKyBjbGFz cyBXVjJfRVhQT1JUIFN0eWxlU2hlZXQKKyB7CisgcHVibGljOgorLSAgICBTdHlsZVNoZWV0KCBP TEVTdHJlYW1SZWFkZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hmICkg dGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbik7CisrICAgIC8qKgorKyAgICAgKiBAdGhyb3cg SW52YWxpZEZvcm1hdEV4Y2VwdGlvbgorKyAgICAgKi8KKysgICAgU3R5bGVTaGVldCggT0xFU3Ry ZWFtUmVhZGVyKiB0YWJsZVN0cmVhbSwgVTMyIGZjU3RzaGYsIFUzMiBsY2JTdHNoZiApOworICAg ICB+U3R5bGVTaGVldCgpOworIAorICAgICAvKioKK2RpZmYgLS1naXQgYS9nZW1pbmkvbGliL0dl bWluaU1haW5XaW5kb3cuY3BwIGIvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcAoraW5k ZXggM2QwNWY2NDYxZTAuLmViNWYxMjBjMGY3IDEwMDY0NAorLS0tIGEvZ2VtaW5pL2xpYi9HZW1p bmlNYWluV2luZG93LmNwcAorKysrIGIvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcAor QEAgLTEzNiw4ICsxMzYsMTAgQEAgdm9pZCBHZW1pbmlNYWluV2luZG93OjpzZXRGdWxsU2NyZWVu KGJvb2wgbmV3U3RhdGUpCisgfQorIAorIAorKworIHZvaWQgR2VtaW5pTWFpbldpbmRvdzo6Y2hh bmdlU3RhdGUoR2VtaW5pTWFpbldpbmRvdzo6R2VtaW5pU3RhdGUgbmV3U3RhdGUsIGJvb2wgbG9j a05ld1N0YXRlKQorIHsKKysgICAgUV9VTlVTRUQobG9ja05ld1N0YXRlKTsKKyAgICAgZC0+c3lu Y09iamVjdCA9IG5ldyBHZW1pbmlNb2RlU3luY2hyb25pc2F0aW9uT2JqZWN0OworIAorICAgICBp ZihjZW50cmFsV2lkZ2V0KCkpIHsKK2RpZmYgLS1naXQgYS9saWJzL3BhZ2VhcHAvS29QQU9kZlBh Z2VTYXZlSGVscGVyLmNwcCBiL2xpYnMvcGFnZWFwcC9Lb1BBT2RmUGFnZVNhdmVIZWxwZXIuY3Bw CitpbmRleCA5MmM2ZGZkNGNiNC4uMDY4NTAxYzhhZjEgMTAwNjQ0CistLS0gYS9saWJzL3BhZ2Vh cHAvS29QQU9kZlBhZ2VTYXZlSGVscGVyLmNwcAorKysrIGIvbGlicy9wYWdlYXBwL0tvUEFPZGZQ YWdlU2F2ZUhlbHBlci5jcHAKK0BAIC00OSw3ICs0OSw3IEBAIEtvUEFPZGZQYWdlU2F2ZUhlbHBl cjo6S29QQU9kZlBhZ2VTYXZlSGVscGVyKCBLb1BBRG9jdW1lbnQgKiBkb2MsIFFMaXN0PEtvUEFQ YWdlCisgICAgICAgICAgICAgS29QQVBhZ2UgKiBwID0gc3RhdGljX2Nhc3Q8S29QQVBhZ2UgKj4o IHBhZ2UgKTsKKyAgICAgICAgICAgICBtYXN0ZXJQYWdlcy5pbnNlcnQoIHAtPm1hc3RlclBhZ2Uo KSApOworICAgICAgICAgfQorLSAgICAgICAgbV9tYXN0ZXJQYWdlcyA9IG1hc3RlclBhZ2VzLnRv TGlzdCgpOworKyAgICAgICAgbV9tYXN0ZXJQYWdlcyA9IG1hc3RlclBhZ2VzLnZhbHVlcygpOwor ICAgICB9CisgfQorIAorZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VO YXZpZ2F0b3JEZXZpY2UuaCBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JE ZXZpY2UuaAoraW5kZXggYjkwNTZhYzk4YzEuLmVjZDY5NmU0MTVmIDEwMDY0NAorLS0tIGEvcGx1 Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckRldmljZS5oCisrKysgYi9wbHVnaW5z L3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRGV2aWNlLmgKK0BAIC0zMSwxMCArMzEsOCBA QCBjbGFzcyBTcGFjZU5hdmlnYXRvckRldmljZSA6IHB1YmxpYyBLb0lucHV0RGV2aWNlSGFuZGxl cgorICAgICBleHBsaWNpdCBTcGFjZU5hdmlnYXRvckRldmljZShRT2JqZWN0ICpwYXJlbnQpOwor ICAgICB2aXJ0dWFsIH5TcGFjZU5hdmlnYXRvckRldmljZSgpOworIAorLSAgICAvLy8gcmVpbXBs ZW1lbnRlZCBmcm9tIEtvSW5wdXREZXZpY2VIYW5kbGVyCistICAgIHZpcnR1YWwgYm9vbCBzdGFy dCgpOworLSAgICAvLy8gcmVpbXBsZW1lbnRlZCBmcm9tIEtvSW5wdXREZXZpY2VIYW5kbGVyCist ICAgIHZpcnR1YWwgYm9vbCBzdG9wKCk7CisrICAgIHZpcnR1YWwgYm9vbCBzdGFydCgpIG92ZXJy aWRlOworKyAgICB2aXJ0dWFsIGJvb2wgc3RvcCgpIG92ZXJyaWRlOworIHByaXZhdGUgUV9TTE9U UzoKKyAgICAgdm9pZCBzbG90TW92ZUV2ZW50KCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgcngs IGludCByeSwgaW50IHJ6LCBRdDo6TW91c2VCdXR0b25zICk7CisgICAgIHZvaWQgc2xvdEJ1dHRv bkV2ZW50KCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgcngsIGludCByeSwgaW50IHJ6LCBRdDo6 TW91c2VCdXR0b25zLCBRdDo6TW91c2VCdXR0b24sIGludCB0eXBlICk7CitkaWZmIC0tZ2l0IGEv cGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckV2ZW50LmggYi9wbHVnaW5zL3Nw YWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRXZlbnQuaAoraW5kZXggNzM3NTFlYzg4ZmYuLjc2 ZWU4ZTJmODgwIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmln YXRvckV2ZW50LmgKKysrKyBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JF dmVudC5oCitAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTcGFjZU5hdmlnYXRvckV2ZW50IDogcHVi bGljIEtvSW5wdXREZXZpY2VIYW5kbGVyRXZlbnQKKyAgICAgdm9pZCBzZXRQb3NpdGlvbiggaW50 IHgsIGludCB5LCBpbnQgeiApOworICAgICB2b2lkIHNldFJvdGF0aW9uKCBpbnQgcngsIGludCBy eSwgaW50IHJ6ICk7CisgCistICAgIHZpcnR1YWwgS29Qb2ludGVyRXZlbnQgKiBwb2ludGVyRXZl bnQoKTsKKysgICAgdmlydHVhbCBLb1BvaW50ZXJFdmVudCAqIHBvaW50ZXJFdmVudCgpIG92ZXJy aWRlOworIAorIHByaXZhdGU6CisgICAgIGludCBtX3gsIG1feSwgbV96OworZGlmZiAtLWdpdCBh L3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmggYi9w bHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCitpbmRl eCA2MmM0ZGU4YWI3My4uNjdkNTkxNzcwMjEgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3NwYWNlbmF2 aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCisrKysgYi9wbHVnaW5zL3NwYWNl bmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCitAQCAtMzksOCArMzksNyBA QCBjbGFzcyBTcGFjZU5hdmlnYXRvclBvbGxpbmdUaHJlYWQgOiBwdWJsaWMgUVRocmVhZAorIAor IHByb3RlY3RlZDoKKyAKKy0gICAgLy8vIHJlaW1wbGVtZW50ZWQgZnJvbSBRVGhyZWFkCistICAg IHZpcnR1YWwgdm9pZCBydW4oKTsKKysgICAgdmlydHVhbCB2b2lkIHJ1bigpIG92ZXJyaWRlOwor IAorIHByaXZhdGU6CisgICAgIGJvb2wgbV9zdG9wcGVkOworZGlmZiAtLWdpdCBhL3BsdWdpbnMv dmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwIGIvcGx1Z2lucy92ZWN0b3JzaGFwZS9WZWN0b3JT aGFwZS5jcHAKK2luZGV4IGEyNWFiM2ZjNTYxLi45YWNiZDI1MWM5NCAxMDA2NDQKKy0tLSBhL3Bs dWdpbnMvdmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwCisrKysgYi9wbHVnaW5zL3ZlY3RvcnNo YXBlL1ZlY3RvclNoYXBlLmNwcAorQEAgLTI5NCw2ICsyOTQsNyBAQCB2b2lkIFZlY3RvclNoYXBl OjpzYXZlT2RmKEtvU2hhcGVTYXZpbmdDb250ZXh0ICYgY29udGV4dCkgY29uc3QKKyAgICAgICAg IGJyZWFrOworICAgICBjYXNlIFZlY3RvclR5cGVTdmc6CisgICAgICAgICBtaW1lVHlwZSA9ICJp bWFnZS9zdmcreG1sIjsKKysgICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0OgorICAgICAgICAg Ly8gRklYTUU6IFdoYXQgaGVyZT8KKyAgICAgICAgIG1pbWVUeXBlID0gImFwcGxpY2F0aW9uL3gt d2hhdCI7CitkaWZmIC0tZ2l0IGEvc2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAgYi9zaGVl dHMvZnVuY3Rpb25zL2RhdGV0aW1lLmNwcAoraW5kZXggOWY1OWZlMmNmNzUuLjYxNTdiMDk5NmMx IDEwMDY0NAorLS0tIGEvc2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAKKysrKyBiL3NoZWV0 cy9mdW5jdGlvbnMvZGF0ZXRpbWUuY3BwCitAQCAtNTk3LDYgKzU5Nyw3IEBAIFZhbHVlIGZ1bmNf Y3VycmVudERhdGUodmFsVmVjdG9yLCBWYWx1ZUNhbGMgKiBjYWxjLCBGdW5jRXh0cmEgKikKKyAv LyBGdW5jdGlvbjogQ1VSUkVOVFRJTUUKKyBWYWx1ZSBmdW5jX2N1cnJlbnRUaW1lKHZhbFZlY3Rv ciwgVmFsdWVDYWxjICogY2FsYywgRnVuY0V4dHJhICopCisgeworKyAgICBRX1VOVVNFRChjYWxj KTsKKyAgICAgcmV0dXJuIFZhbHVlKFFUaW1lOjpjdXJyZW50VGltZSgpKTsKKyB9CisgCitkaWZm IC0tZ2l0IGEvc2hlZXRzL3BhcnQvRGlnZXN0LmNwcCBiL3NoZWV0cy9wYXJ0L0RpZ2VzdC5jcHAK K2luZGV4IDhjZDk3MmRiOTg5Li5lOTI0NmNlNmU3ZCAxMDA2NDQKKy0tLSBhL3NoZWV0cy9wYXJ0 L0RpZ2VzdC5jcHAKKysrKyBiL3NoZWV0cy9wYXJ0L0RpZ2VzdC5jcHAKK0BAIC01OTYsMTAgKzU5 NiwxMCBAQCBzdGF0aWMgdm9pZCBfX3J0bF9kaWdlc3RfZW5kU0hBKERpZ2VzdENvbnRleHRTSEEg KmN0eCkKKyAgICAgfQorIAorICAgICBzd2l0Y2ggKGN0eC0+bV9uRGF0TGVuICYgMHgwMykgewor LSAgICBjYXNlIDA6IFhbaV0gID0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAgMEw7CistICAg IGNhc2UgMTogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICA4TDsKKy0gICAgY2Fz ZSAyOiBYW2ldIHw9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgMTZMOworLSAgICBjYXNlIDM6 IFhbaV0gfD0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAyNEw7CisrICAgIGNhc2UgMDogWFtp XSAgPSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICAwTDsgLyogZmFsbCB0aHJvdWdoICovCisr ICAgIGNhc2UgMTogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICA4TDsgLyogZmFs bCB0aHJvdWdoICovCisrICAgIGNhc2UgMjogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkp IDw8IDE2TDsgLyogZmFsbCB0aHJvdWdoICovCisrICAgIGNhc2UgMzogWFtpXSB8PSAoKHNhbF91 SW50MzIpKCoocCsrKSkpIDw8IDI0TDsgLyogZmFsbCB0aHJvdWdoICovCisgICAgIH0KKyAKKyAg ICAgX19ydGxfZGlnZXN0X3N3YXBMb25nKFgsIGkgKyAxKTsKK2RpZmYgLS1naXQgYS9zaGVldHMv c2hhcGUvVGFibGVUb29sRmFjdG9yeS5oIGIvc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3Rvcnku aAoraW5kZXggNjc5YmZlMTRiOGUuLjk0MTJkOGZmZGM1IDEwMDY0NAorLS0tIGEvc2hlZXRzL3No YXBlL1RhYmxlVG9vbEZhY3RvcnkuaAorKysrIGIvc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3Rv cnkuaAorQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgVGFibGVUb29sRmFjdG9yeSA6IHB1YmxpYyBL b1Rvb2xGYWN0b3J5QmFzZQorICAgICBUYWJsZVRvb2xGYWN0b3J5KCk7CisgICAgIH5UYWJsZVRv b2xGYWN0b3J5KCk7CisgCistICAgIEtvVG9vbEJhc2UqIGNyZWF0ZVRvb2woS29DYW52YXNCYXNl KiBjYW52YXMpOworKyAgICBLb1Rvb2xCYXNlKiBjcmVhdGVUb29sKEtvQ2FudmFzQmFzZSogY2Fu dmFzKSBvdmVycmlkZTsKKyB9OworIAorIH0gLy8gbmFtZXNwYWNlIFNoZWV0cworZGlmZiAtLWdp dCBhL3NoZWV0cy90ZXN0cy9UZXN0U29ydC5jcHAgYi9zaGVldHMvdGVzdHMvVGVzdFNvcnQuY3Bw CitpbmRleCBiM2YxZTM1MTY5ZC4uNjM1NGQ3OWFiYzUgMTAwNjQ0CistLS0gYS9zaGVldHMvdGVz dHMvVGVzdFNvcnQuY3BwCisrKysgYi9zaGVldHMvdGVzdHMvVGVzdFNvcnQuY3BwCitAQCAtNjgs NyArNjgsNyBAQCB2b2lkIFRlc3RTb3J0OjpBc2NlbmRpbmdPcmRlcigpCisgICAgIGNvbW1hbmQt PnNldFNoZWV0KHNoZWV0KTsKKyAKKyAgICAgLy8gUGFyYW1ldGVycy4KKy0gICAgY29tbWFuZC0+ c2V0U29ydFJvd3MoUXQ6OlZlcnRpY2FsKTsKKysgICAgY29tbWFuZC0+c2V0U29ydFJvd3ModHJ1 ZSk7CisgICAgIGNvbW1hbmQtPnNldFNraXBGaXJzdChmYWxzZSk7CisgICAgIGNvbW1hbmQtPnNl dENvcHlGb3JtYXQoZmFsc2UpOworIAorQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFRlc3RTb3J0 OjpEZXNjZW5kaW5nT3JkZXIoKQorICAgICBjb21tYW5kLT5zZXRTaGVldChzaGVldCk7CisgCisg ICAgIC8vIFBhcmFtZXRlcnMuCistICAgIGNvbW1hbmQtPnNldFNvcnRSb3dzKFF0OjpWZXJ0aWNh bCk7CisrICAgIGNvbW1hbmQtPnNldFNvcnRSb3dzKHRydWUpOworICAgICBjb21tYW5kLT5zZXRT a2lwRmlyc3QoZmFsc2UpOworICAgICBjb21tYW5kLT5zZXRDb3B5Rm9ybWF0KGZhbHNlKTsKKyAK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Utc2hvdy1oaWRk ZW4tcm93LXMtd29yay5wYXRjaCBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Ut c2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmQ0YjA4MmI5YTBmMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2Fs bGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Utc2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaApAQCAt MCwwICsxLDI5IEBACitGcm9tIDIyZTAyOTk4ZGVjOGFmMTVhMjViN2U4ZTNkNTNjMTc0ODEwY2Mz YmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYWcgQW5kZXJzZW4gPGRhbmRlcnNA Z2V0Mm5ldC5kaz4KK0RhdGU6IFRodSwgMTEgSnVuIDIwMjAgMTA6NDM6MzggKzAyMDAKK1N1Ympl Y3Q6IFtQQVRDSF0gTWFrZSBzaG93IGhpZGRlbiByb3cocykgd29yaworCitDaGVjayBmb3IgaGlk ZGVuIHJvd3Mgd2FzIGludmVydGVkIHRvIGNoZWNrIGZvciBzaG93biByb3dzLAoraGVuY2UgaGlk ZGVuIHJvd3Mgd291bGQgbmV2ZXIgYmUgdW5oaWRkZW4uCisKK0JVRzozMzg4MTYKK0JVRzozNTQy MzYKK0ZJWEVELUlOOjMuMi4yCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyODkyMGM1MGU2 MzAwZDY0MzQ3N2YyNTZhYmE5MWM4YzUxODM2NjgyKQorLS0tCisgc2hlZXRzL2NvbW1hbmRzL1Jv d0NvbHVtbk1hbmlwdWxhdG9ycy5jcHAgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zaGVldHMvY29tbWFuZHMvUm93 Q29sdW1uTWFuaXB1bGF0b3JzLmNwcCBiL3NoZWV0cy9jb21tYW5kcy9Sb3dDb2x1bW5NYW5pcHVs YXRvcnMuY3BwCitpbmRleCA5NTI4MmQ2ZTMxYi4uMjVlOGM0NTRlMjcgMTAwNjQ0CistLS0gYS9z aGVldHMvY29tbWFuZHMvUm93Q29sdW1uTWFuaXB1bGF0b3JzLmNwcAorKysrIGIvc2hlZXRzL2Nv bW1hbmRzL1Jvd0NvbHVtbk1hbmlwdWxhdG9ycy5jcHAKK0BAIC0xOTIsNyArMTkyLDcgQEAgYm9v bCBIaWRlU2hvd01hbmlwdWxhdG9yOjpwcmVQcm9jZXNzaW5nKCkKKyAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBmb3IgKGludCByb3cg PSByYW5nZS50b3AoKTsgcm93IDw9IHJhbmdlLmJvdHRvbSgpOyArK3JvdykgeworLSAgICAgICAg ICAgICAgICAgICAgaWYgKCFtX3NoZWV0LT5yb3dGb3JtYXRzKCktPmlzSGlkZGVuKHJvdykpIHsK KysgICAgICAgICAgICAgICAgICAgIGlmIChtX3NoZWV0LT5yb3dGb3JtYXRzKCktPmlzSGlkZGVu KHJvdykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24uYWRkKFFSZWN0KDEsIHJv dywgS1NfY29sTWF4LCAxKSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaCBi L3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjFkYjgzODUxNjFhMwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaApAQCAtMCwwICsxLDE2IEBACitkaWZm IC1OYXVyIENNYWtlTGlzdHMudHh0Lm9yaWcgQ01ha2VMaXN0cy50eHQKKy0tLSBhL0NNYWtlTGlz dHMudHh0Lm9yaWcKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMTA2LDkgKzEwNiw5IEBACisg CisgIyB1c2UgQ1BQLTExCisgaWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9MRVNTICIzLjEiKQor LSAgICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9YysrMTEi KQorKyAgICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9Yysr MTciKQorIGVsc2UgKCkKKy0gICAgc2V0IChDTUFLRV9DWFhfU1RBTkRBUkQgMTEpCisrICAgIHNl dCAoQ01BS0VfQ1hYX1NUQU5EQVJEIDE3KQorIGVuZGlmICgpCisgCisgIyMjIyMjIyMjIyMjCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4 LnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43ZGFiNTNiY2ZjN2YK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4w My4wLWZpeC5wYXRjaApAQCAtMCwwICsxLDcwIEBACitGcm9tIDIzNmJhY2JlMTM3Mzk0MTRlOTE5 ZGU4NjgyODNiMGNhZjJkZjVkOGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGJl cnQgQXN0YWxzIENpZCA8YWFjaWRAa2RlLm9yZz4KK0RhdGU6IFdlZCwgMTMgQXByIDIwMjIgMDE6 MjU6NDQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gUGRmSW1wb3J0OiBGaXggY29tcGlsZSB3aXRo IG5ld2VyIHBvcHBsZXIKKworQnJpbmdzIGEgZGVwZW5kZW5jeSBvbiBwb3BwbGVyLXF0NSB0byBi ZSBhYmxlIHRvIGluY2x1ZGUgdGhlIHZlcnNpb24KK2hlYWRlciwgaG9uZXN0bHkgaXQncyBub3Qg c3RyaWN0bHkgbmVlZGVkLCBvbmUgY291bGQgZG8gYQorY2hlY2tfY3h4X3NvdXJjZV9jb21waWxl cywgYnV0IEkgZG9uJ3QgY2FyZSBhYm91dCBDYWxsaWdyYSBlbm91Z2ggdG8KK3NwZW5kIG1vcmUg dGltZSBtYWtpbmcgaXQgY29tcGlsZSB3aGlsZSBpdCdzIHVzaW5nIHBvcHBsZXIgdGhlIHdyb25n Cit3YXkuCistLS0KKyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgfCAxICsKKyBm aWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQgfCAyICstCisgZmlsdGVycy9rYXJib24v cGRmL1BkZkltcG9ydC5jcHAgIHwgOSArKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0 IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDUxZjFkNjViOGU2Li4wNmJiYWQ1YzI0YyAxMDA2NDQK Ky0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTk1Miw2ICs5 NTIsNyBAQCBjYWxsaWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVSX1dQ R19UT19PREcKKyBjYWxsaWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVS X1BERl9UT19TVkcKKyAgICAgTk9UX1dJTiAibm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzIgorICAg ICBQb3BwbGVyWFBERkhlYWRlcnNfRk9VTkQgInBvcHBsZXIgeHBkZiBoZWFkZXJzIG5vdCBmb3Vu ZCIKKysgICAgUG9wcGxlcl9GT1VORCAicG9wcGxlciBxdDUgaGVhZGVycyBub3QgZm91bmQiCisg ICAgICkKKyAKKyBjYWxsaWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVS X0hUTUxfVE9fT0RTCitkaWZmIC0tZ2l0IGEvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMu dHh0IGIvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ZmRkZjFhZDc1 Ny4uYjcxYzkyY2JmMDQgMTAwNjQ0CistLS0gYS9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0 cy50eHQKKysrKyBiL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAorQEAgLTMsNyAr Myw3IEBAIHNldChwZGYyc3ZnX1BBUlRfU1JDUyBQZGZJbXBvcnREZWJ1Zy5jcHAgUGRmSW1wb3J0 LmNwcCBTdmdPdXRwdXREZXYuY3BwICkKKyBhZGRfbGlicmFyeShjYWxsaWdyYV9maWx0ZXJfcGRm MnN2ZyBNT0RVTEUgJHtwZGYyc3ZnX1BBUlRfU1JDU30pCisgY2FsbGlncmFfZmlsdGVyX2Rlc2t0 b3BfdG9fanNvbihjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBjYWxsaWdyYV9maWx0ZXJfcGRmMnN2 Zy5kZXNrdG9wKQorIAorLXRhcmdldF9saW5rX2xpYnJhcmllcyhjYWxsaWdyYV9maWx0ZXJfcGRm MnN2ZyBrb21haW4gUG9wcGxlcjo6Q29yZSkKKyt0YXJnZXRfbGlua19saWJyYXJpZXMoY2FsbGln cmFfZmlsdGVyX3BkZjJzdmcga29tYWluIFBvcHBsZXI6OkNvcmUgUG9wcGxlcjo6UXQ1KQorIAor IGluc3RhbGwoVEFSR0VUUyBjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBERVNUSU5BVElPTiAke1BM VUdJTl9JTlNUQUxMX0RJUn0vY2FsbGlncmEvZm9ybWF0ZmlsdGVycykKKyAKK2RpZmYgLS1naXQg YS9maWx0ZXJzL2thcmJvbi9wZGYvUGRmSW1wb3J0LmNwcCBiL2ZpbHRlcnMva2FyYm9uL3BkZi9Q ZGZJbXBvcnQuY3BwCitpbmRleCBhYmJlNjgxYjRlOC4uZTk3OTc0ZmMxMzMgMTAwNjQ0CistLS0g YS9maWx0ZXJzL2thcmJvbi9wZGYvUGRmSW1wb3J0LmNwcAorKysrIGIvZmlsdGVycy9rYXJib24v cGRmL1BkZkltcG9ydC5jcHAKK0BAIC0xNyw2ICsxNywxMCBAQAorIAorICNpbmNsdWRlIDxrcGx1 Z2luZmFjdG9yeS5oPgorIAorKyNpbmNsdWRlIDxwb3BwbGVyLXZlcnNpb24uaD4KKysKKysjZGVm aW5lIFBPUFBMRVJfVkVSU0lPTl9NQUNSTyAoKFBPUFBMRVJfVkVSU0lPTl9NQUpPUiA8PCAxNikg fCAoUE9QUExFUl9WRVJTSU9OX01JTk9SIDw8IDgpIHwgKFBPUFBMRVJfVkVSU0lPTl9NSUNSTykp CisrCisgLy8gRG9uJ3Qgc2hvdyB0aGlzIHdhcm5pbmc6IGl0J3MgYW4gaXNzdWUgaW4gcG9wcGxl cgorICNpZmRlZiBfX0dOVUNfXworICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1 bnVzZWQtcGFyYW1ldGVyIgorQEAgLTU0LDggKzU4LDEzIEBAIEtvRmlsdGVyOjpDb252ZXJzaW9u U3RhdHVzIFBkZkltcG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdCBR Qnl0CisgICAgIGlmICghIGdsb2JhbFBhcmFtcykKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6 Tm90SW1wbGVtZW50ZWQ7CisgCisrI2lmIFBPUFBMRVJfVkVSU0lPTl9NQUNSTyA8IFFUX1ZFUlNJ T05fQ0hFQ0soMjIsIDAzLCAwKQorICAgICBHb29TdHJpbmcgKiBmbmFtZSA9IG5ldyBHb29TdHJp bmcoUUZpbGU6OmVuY29kZU5hbWUobV9jaGFpbi0+aW5wdXRGaWxlKCkpLmRhdGEoKSk7CisgICAg IFBERkRvYyAqIHBkZkRvYyA9IG5ldyBQREZEb2MoZm5hbWUsIDAsIDAsIDApOworKyNlbHNlCisr ICAgIHN0ZDo6dW5pcXVlX3B0cjxHb29TdHJpbmc+IGZuYW1lID0gc3RkOjptYWtlX3VuaXF1ZTxH b29TdHJpbmc+KFFGaWxlOjplbmNvZGVOYW1lKG1fY2hhaW4tPmlucHV0RmlsZSgpKS5kYXRhKCkp OworKyAgICBQREZEb2MgKiBwZGZEb2MgPSBuZXcgUERGRG9jKHN0ZDo6bW92ZShmbmFtZSkpOwor KyNlbmRpZgorICAgICBpZiAoISBwZGZEb2MpIHsKKyAgICAgICAgIGdsb2JhbFBhcmFtcy5yZXNl dCgpOworICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpTdHVwaWRFcnJvcjsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoIGIvc3Jj cGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNDcxNjk5NTBiOGIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRj aApAQCAtMCwwICsxLDkxIEBACitGcm9tIDZiNzViZWM3ODRjOTgzNWM3ODk5MzM0OTg0NWQ4YzJl ZjIyZWMzZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYWcgQW5kZXJzZW4gPGRh Zy5hbmRlcnNlbkBrZGVtYWlsLm5ldD4KK0RhdGU6IFdlZCwgMTMgQXByIDIwMjIgMTQ6NDU6MzMg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gUGRmSW1wb3J0OiBGaXggY29tcGlsZSB3aXRoIG5ld2Vy IHBvcHBsZXIKKworQWxzbyBmaXhlcyBvZGcycGRmIGZpbHRlci4KKworU2FtZSBzb2x1dGlvbiBh cyBjb21taXQgMjM2YmFjYmUxMzczOTQxNGU5MTlkZTg2ODI4M2IwY2FmMmRmNWQ4YQorYnkgYWNj aWRAa2RlLm9yZy4KKy0tLQorIGZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dCAgICB8 IDIgKy0KKyBmaWx0ZXJzL2thcmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAgfCA5ICsrKysrKysr KworIGZpbHRlcnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3BwICB8IDkgKysrKysrKysrCisg MyBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYg LS1naXQgYS9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQgYi9maWx0ZXJzL2thcmJv bi9wZGYvQ01ha2VMaXN0cy50eHQKK2luZGV4IGI3MWM5MmNiZjA0Li40Y2UxMzhjY2RkNiAxMDA2 NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAorKysrIGIvZmlsdGVy cy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CitAQCAtMTMsNiArMTMsNiBAQCBzZXQocGRmMm9k Z19QQVJUX1NSQ1MgUGRmSW1wb3J0RGVidWcuY3BwIFBkZjJPZGdJbXBvcnQuY3BwIFN2Z091dHB1 dERldi5jcHApCisgYWRkX2xpYnJhcnkoY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcgTU9EVUxFICR7 cGRmMm9kZ19QQVJUX1NSQ1N9KQorIGNhbGxpZ3JhX2ZpbHRlcl9kZXNrdG9wX3RvX2pzb24oY2Fs bGlncmFfZmlsdGVyX3BkZjJvZGcgY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcuZGVza3RvcCkKKyAK Ky10YXJnZXRfbGlua19saWJyYXJpZXMoY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcga29wYWdlYXBw IGthcmJvbnVpIFBvcHBsZXI6OkNvcmUpCisrdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGNhbGxpZ3Jh X2ZpbHRlcl9wZGYyb2RnIGtvcGFnZWFwcCBrYXJib251aSBQb3BwbGVyOjpDb3JlIFBvcHBsZXI6 OlF0NSkKKyAKKyBpbnN0YWxsKFRBUkdFVFMgY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcgREVTVElO QVRJT04gJHtQTFVHSU5fSU5TVEFMTF9ESVJ9L2NhbGxpZ3JhL2Zvcm1hdGZpbHRlcnMpCitkaWZm IC0tZ2l0IGEvZmlsdGVycy9rYXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwIGIvZmlsdGVycy9r YXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwCitpbmRleCA5MzRlMzFkZDVhYS4uYTIxZWFjOTdh NzcgMTAwNjQ0CistLS0gYS9maWx0ZXJzL2thcmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAKKysr KyBiL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGYyT2RnSW1wb3J0LmNwcAorQEAgLTI3LDYgKzI3LDgg QEAKKyAKKyAjaW5jbHVkZSA8a3BsdWdpbmZhY3RvcnkuaD4KKyAKKysjaW5jbHVkZSA8cG9wcGxl ci12ZXJzaW9uLmg+CisrCisgLy8gRG9uJ3Qgc2hvdyB0aGlzIHdhcm5pbmc6IGl0J3MgYW4gaXNz dWUgaW4gcG9wcGxlcgorICNpZmRlZiBfX0dOVUNfXworICNwcmFnbWEgR0NDIGRpYWdub3N0aWMg aWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQEAgLTM2LDYgKzM4LDggQEAKKyAjaW5jbHVk ZSA8UERGRG9jLmg+CisgI2luY2x1ZGUgPEdsb2JhbFBhcmFtcy5oPgorIAorKyNkZWZpbmUgUE9Q UExFUl9WRVJTSU9OX01BQ1JPICgoUE9QUExFUl9WRVJTSU9OX01BSk9SIDw8IDE2KSB8IChQT1BQ TEVSX1ZFUlNJT05fTUlOT1IgPDwgOCkgfCAoUE9QUExFUl9WRVJTSU9OX01JQ1JPKSkKKysKKyBL X1BMVUdJTl9GQUNUT1JZX1dJVEhfSlNPTihQZGYyT2RnSW1wb3J0RmFjdG9yeSwgImNhbGxpZ3Jh X2ZpbHRlcl9wZGYyb2RnLmpzb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lz dGVyUGx1Z2luPFBkZjJPZGdJbXBvcnQ+KCk7KQorIAorQEAgLTY5LDggKzczLDEzIEBAIEtvRmls dGVyOjpDb252ZXJzaW9uU3RhdHVzIFBkZjJPZGdJbXBvcnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVB cnJheSYgZnJvbSwgY29uc3QKKyAgICAgaWYgKCEgZ2xvYmFsUGFyYW1zKQorICAgICAgICAgcmV0 dXJuIEtvRmlsdGVyOjpOb3RJbXBsZW1lbnRlZDsKKyAKKysjaWYgUE9QUExFUl9WRVJTSU9OX01B Q1JPIDwgUVRfVkVSU0lPTl9DSEVDSygyMiwgMDMsIDApCisgICAgIEdvb1N0cmluZyAqIGZuYW1l ID0gbmV3IEdvb1N0cmluZyhRRmlsZTo6ZW5jb2RlTmFtZShtX2NoYWluLT5pbnB1dEZpbGUoKSku ZGF0YSgpKTsKKyAgICAgUERGRG9jICogcGRmRG9jID0gbmV3IFBERkRvYyhmbmFtZSwgMCwgMCwg MCk7CisrI2Vsc2UKKysgICAgc3RkOjp1bmlxdWVfcHRyPEdvb1N0cmluZz4gZm5hbWUgPSBzdGQ6 Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4oUUZpbGU6OmVuY29kZU5hbWUobV9jaGFpbi0+aW5wdXRG aWxlKCkpLmRhdGEoKSk7CisrICAgIFBERkRvYyAqIHBkZkRvYyA9IG5ldyBQREZEb2Moc3RkOjpt b3ZlKGZuYW1lKSk7CisrI2VuZGlmCisgICAgIGlmICghIHBkZkRvYykgeworICAgICAgICAgZ2xv YmFsUGFyYW1zLnJlc2V0KCk7CisgICAgICAgICByZXR1cm4gS29GaWx0ZXI6OlN0dXBpZEVycm9y OworZGlmZiAtLWdpdCBhL2ZpbHRlcnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3BwIGIvZmls dGVycy9rYXJib24vcGRmL1N2Z091dHB1dERldi5jcHAKK2luZGV4IDBlNmU1YTkzNGNhLi43Y2Fl YzE1MTc1YSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3Bw CisrKysgYi9maWx0ZXJzL2thcmJvbi9wZGYvU3ZnT3V0cHV0RGV2LmNwcAorQEAgLTIyLDYgKzIy LDEwIEBACisgI2luY2x1ZGUgPFFQZW4+CisgI2luY2x1ZGUgPFFJbWFnZT4KKyAKKysjaW5jbHVk ZSA8cG9wcGxlci12ZXJzaW9uLmg+CisrCisrI2RlZmluZSBQT1BQTEVSX1ZFUlNJT05fTUFDUk8g KChQT1BQTEVSX1ZFUlNJT05fTUFKT1IgPDwgMTYpIHwgKFBPUFBMRVJfVkVSU0lPTl9NSU5PUiA8 PCA4KSB8IChQT1BQTEVSX1ZFUlNJT05fTUlDUk8pKQorKworIGNsYXNzIFN2Z091dHB1dERldjo6 UHJpdmF0ZQorIHsKKyBwdWJsaWM6CitAQCAtMzg2LDcgKzM5MCwxMiBAQCB2b2lkIFN2Z091dHB1 dERldjo6ZHJhd1N0cmluZyhHZnhTdGF0ZSAqIHN0YXRlLCBjb25zdCBHb29TdHJpbmcgKiBzKQor ICAgICBpZiAocy0+Z2V0TGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgIHJldHVybjsKKyAKKysjaWYg UE9QUExFUl9WRVJTSU9OX01BQ1JPIDwgUVRfVkVSU0lPTl9DSEVDSygyMiwgMDMsIDApCisgICAg IEdmeEZvbnQgKiBmb250ID0gc3RhdGUtPmdldEZvbnQoKTsKKysjZWxzZQorKyAgICBzdGQ6OnNo YXJlZF9wdHI8R2Z4Rm9udD4gZm9udCA9IHN0YXRlLT5nZXRGb250KCk7CisrI2VuZGlmCisrCisg CisgICAgIFFTdHJpbmcgc3RyOworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jYWxsaWdyYS90ZW1w bGF0ZSBiL3NyY3BrZ3MvY2FsbGlncmEvdGVtcGxhdGUKaW5kZXggODlkMGIxNjQ4ZTllLi43YzE0 MTFiZjNkYTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2FsbGlncmEvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9jYWxsaWdyYS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2NhbGxpZ3JhJwogcGtnbmFtZT1jYWxsaWdyYQogdmVyc2lvbj0zLjIuMQotcmV2aXNpb249 NgorcmV2aXNpb249NwogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItV25vLWRl diAtRENBTExJR1JBX1NIT1VMRF9CVUlMRF9VTk1BSU5UQUlORUQ9T04KICAtREJVSUxEX1RFU1RJ Tkc9T0ZGIgoKRnJvbSAwMGNlMjBiYzYwZjdiODlmZjVmMGMxNzAxNTlkZWIyNzgxYjU5ZTJjIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVz ZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODozNDowNyAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggNS84XSBpbmtzY2FwZTogcmVidWlsZCBhZ2FpbnN0IGxpYnBv cHBsZXIgMjIuMDQuMAoKLS0tCiAuLi5pYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0 ZXIucGF0Y2ggfCAgNTAgKysrKysrCiAuLi4vRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4xMS4w LnBhdGNoICAgICAgfCAgMjkgKysrKwogLi4uL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIuMDQu cGF0Y2ggICAgICAgIHwgMTQzICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9pbmtzY2FwZS90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDIy MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9pbmtzY2FwZS9wYXRjaGVzL0Vuc3VyZS1jb21wYXRpYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4w My1hbmQtbGF0ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lua3NjYXBlL3Bh dGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4xMS4wLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIu MDQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRW5zdXJlLWNv bXBhdGliaWxpdHktd2l0aC1Qb3BwbGVyLTIyLjAzLWFuZC1sYXRlci5wYXRjaCBiL3NyY3BrZ3Mv aW5rc2NhcGUvcGF0Y2hlcy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMt YW5kLWxhdGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u Mjk3ZWY2Nzc2NjVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVz L0Vuc3VyZS1jb21wYXRpYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0ZXIucGF0Y2gK QEAgLTAsMCArMSw1MCBAQAorRnJvbSBhMThjNTdmZmZmMzEzZmQwOGJjOGE0NGY2YjZiZjBiMDFk N2U5Yjc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbmdlbG9zIEZvdXRyYXMg PGV2YW5nZWxvc0Bmb3V0cmVsaXMuY29tPgorRGF0ZTogU3VuLCAyMCBNYXIgMjAyMiAyMjo0MTo1 MSAtMDMwMAorU3ViamVjdDogW1BBVENIXSBFbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIFBvcHBs ZXIgMjIuMDMgYW5kIGxhdGVyCisKK1RoaXMgY2hhbmdlIGVuc3VyZXMgdGhhdCBJbmtzY2FwZSB3 aWxsIGJ1aWxkIGFnYWluc3QgUG9wcGxlciAyMi4wMyBhZnRlcgordGhlIGNoYW5nZXMgdGhhdCB3 ZXJlIG1hZGUgdG8gdGhlIGNvbnN0cnVjdG9yIG9mIGBQREZEb2NgLgorCitTZWU6IGh0dHBzOi8v Z2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wb3BwbGVyL3BvcHBsZXIvLS9jb21taXQvNGYyYWJkM2Vm CisKK0NvLWF1dGhvcmVkLWJ5OiBSYWZhZWwgU2llamFrb3dza2kgPHJzQHJzLW1hdGgubmV0Pgor LS0tCisgc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtaW5wdXQuY3BwICAgICAg ICAgICAgfCAzICstLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10 cmFuc2l0aW9uLWFwaS5oIHwgNiArKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNpb24vaW50ZXJu YWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5w dXQvcGRmLWlucHV0LmNwcAoraW5kZXggM2RhYmM5NGJhMi4uMDc5YjBkYzcxMyAxMDA2NDQKKy0t LSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcAorKysrIGIv c3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtaW5wdXQuY3BwCitAQCAtNjg4LDgg KzY4OCw3IEBAIFBkZklucHV0OjpvcGVuKDo6SW5rc2NhcGU6OkV4dGVuc2lvbjo6SW5wdXQgKiAv Km1vZCovLCBjb25zdCBnY2hhciAqIHVyaSkgeworIAorICAgICAvLyBwb3BwbGVyIGRvZXMgbm90 IHVzZSBnbGliIGdfb3Blbi4gU28gb24gd2luMzIgd2UgbXVzdCB1c2UgdW5pY29kZSBjYWxsLiBj b2RlIHdhcyBjb3BpZWQgZnJvbQorICAgICAvLyBnbGliIGdzdGRpby5jCistICAgIEdvb1N0cmlu ZyAqZmlsZW5hbWVfZ29vID0gbmV3IEdvb1N0cmluZyh1cmkpOworLSAgICBwZGZfZG9jID0gc3Rk OjptYWtlX3NoYXJlZDxQREZEb2M+KGZpbGVuYW1lX2dvbywgbnVsbHB0ciwgbnVsbHB0ciwgbnVs bHB0cik7ICAgLy8gVE9ETzogQ291bGQgYXNrIGZvciBwYXNzd29yZAorKyAgICBwZGZfZG9jID0g X1BPUFBMRVJfTUFLRV9TSEFSRURfUERGRE9DKHVyaSk7IC8vIFRPRE86IENvdWxkIGFzayBmb3Ig cGFzc3dvcmQKKyAKKyAgICAgaWYgKCFwZGZfZG9jLT5pc09rKCkpIHsKKyAgICAgICAgIGludCBl cnJvciA9IHBkZl9kb2MtPmdldEVycm9yQ29kZSgpOworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oIGIvc3JjL2V4dGVu c2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK2luZGV4IDg3 YTE5ZDRjNDIuLjUwYjYxN2MyNWMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaAorKysrIGIvc3JjL2V4dGVuc2lvbi9p bnRlcm5hbC9wZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK0BAIC0xNCw2ICsxNCwx MiBAQAorIAorICNpbmNsdWRlIDxnbGliL3BvcHBsZXItZmVhdHVyZXMuaD4KKyAKKysjaWYgUE9Q UExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorKyNkZWZpbmUgX1BPUFBMRVJfTUFLRV9TSEFS RURfUERGRE9DKHVyaSkgc3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KHN0ZDo6bWFrZV91bmlxdWU8 R29vU3RyaW5nPih1cmkpKQorKyNlbHNlCisrI2RlZmluZSBfUE9QUExFUl9NQUtFX1NIQVJFRF9Q REZET0ModXJpKSBzdGQ6Om1ha2Vfc2hhcmVkPFBERkRvYz4obmV3IEdvb1N0cmluZyh1cmkpLCBu dWxscHRyLCBudWxscHRyLCBudWxscHRyKQorKyNlbmRpZgorKworICNpZiBQT1BQTEVSX0NIRUNL X1ZFUlNJT04oMCwgODMsIDApCisgI2RlZmluZSBfUE9QUExFUl9DT05TVF84MyBjb25zdAorICNl bHNlCistLSAKK0dpdExhYgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMv Rml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4xMS4wLnBhdGNoIGIvc3JjcGtncy9pbmtzY2FwZS9w YXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVkN2Y0ODAxMjczZAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIxLjEx LjAucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSA1NzI0YzIxYjljYjdiNjE3NmE3YjM2Y2Ey NDA2OGIxNDhjODE3ZTgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbmdlbG9z IEZvdXRyYXMgPGV2YW5nZWxvc0Bmb3V0cmVsaXMuY29tPgorRGF0ZTogTW9uLCAxIE5vdiAyMDIx IDIxOjQ1OjM4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIHBvcHBsZXIg MjEuMTEuMAorCitHZnhGb250Ojp0YWcgaXMgbm93IG9mIHR5cGUgc3RkOjpzdHJpbmcgaW5zdGVh ZCBvZiBHb29TdHJpbmcgKi4KKy0tLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv cGRmLXBhcnNlci5jcHAgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCsp CisKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJz ZXIuY3BwIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcAor aW5kZXggZTNkMDRkNTQ0Yi4uZmVlY2VmYTA0MyAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24v aW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50 ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKK0BAIC0yMTY5LDcgKzIxNjksMTEgQEAgdm9p ZCBQZGZQYXJzZXI6Om9wU2V0Rm9udChPYmplY3QgYXJnc1tdLCBpbnQgLypudW1BcmdzKi8pCisg ICB9CisgICBpZiAocHJpbnRDb21tYW5kcykgeworICAgICBwcmludGYoIiAgZm9udDogdGFnPSVz IG5hbWU9JyVzJyAlZ1xuIiwKKysjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIxLDExLDApCisr CSAgIGZvbnQtPmdldFRhZygpLmNfc3RyKCksCisrI2Vsc2UKKyAJICAgZm9udC0+Z2V0VGFnKCkt PmdldENTdHJpbmcoKSwKKysjZW5kaWYKKyAJICAgZm9udC0+Z2V0TmFtZSgpID8gZm9udC0+Z2V0 TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiPz8/IiwKKyAJICAgYXJnc1sxXS5nZXROdW0oKSk7Cisg ICAgIGZmbHVzaChzdGRvdXQpOworLS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9p bmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIuMDQucGF0Y2ggYi9zcmNw a2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMi4wNC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYxMjA1NDI2OGEzYwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1w b3BwbGVyLTIyLjA0LnBhdGNoCkBAIC0wLDAgKzEsMTQzIEBACitGcm9tIGQ5ODljZGYxMDU5Yzc4 YmMzYmI2NDE0MzMwMjQyMDczNzY4ZDY0MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBSYWZhZWwgU2llamFrb3dza2kgPHJzQHJzLW1hdGgubmV0PgorRGF0ZTogTW9uLCA0IEFwciAy MDIyIDIyOjA5OjM5IC0wMzAwCitTdWJqZWN0OiBbUEFUQ0hdIENvbXBhdGliaWxpdHkgd2l0aCBQ b3BwbGVyIDIyLjA0CisKK1JlcGxhY2UgdmFuaWxsYSBwb2ludGVycyB3aXRoIHN0ZDo6c2hhcmVk X3B0ciBmb3IgcG9pbnRlcnMgdG8gZm9udHM7CitlbGltaW5hdGUgbWFudWFsIHJlZi1jb3VudGlu Zy4KKworRml4ZXMgaHR0cHM6Ly9naXRsYWIuY29tL2lua3NjYXBlL2lua3NjYXBlLy0vaXNzdWVz LzMzODcKKy0tLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5j cHAgICAgIHwgMTQgKysrKysrKystLS0tLS0KKyAuLi4vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxl ci10cmFuc2l0aW9uLWFwaS5oICAgICB8ICA2ICsrKysrKworIHNyYy9leHRlbnNpb24vaW50ZXJu YWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuY3BwICAgIHwgIDcgKy0tLS0tLQorIHNyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuaCAgICAgIHwgIDEgLQorIDQgZmlsZXMg Y2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwIGIvc3JjL2V4 dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcAoraW5kZXggZmVlY2VmYTA0 My4uZDZlMmVkZTRmMyAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5w dXQvcGRmLXBhcnNlci5jcHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv cGRmLXBhcnNlci5jcHAKK0BAIC0zMCw2ICszMCw3IEBACisgI2luY2x1ZGUgIkdmeC5oIgorICNp bmNsdWRlICJwZGYtcGFyc2VyLmgiCisgI2luY2x1ZGUgInV0aWwvdW5pdHMuaCIKKysjaW5jbHVk ZSAicG9wcGxlci10cmFuc2l0aW9uLWFwaS5oIgorIAorICNpbmNsdWRlICJnbGliL3BvcHBsZXIt ZmVhdHVyZXMuaCIKKyAjaW5jbHVkZSAiZ29vL2dtZW0uaCIKK0BAIC0yMTU4LDcgKzIxNTksNyBA QCB2b2lkIFBkZlBhcnNlcjo6b3BTZXRDaGFyU3BhY2luZyhPYmplY3QgYXJnc1tdLCBpbnQgLypu dW1BcmdzKi8pCisgLy8gVE9ETyBub3QgZ29vZCB0aGF0IG51bUFyZ3MgaXMgaWdub3JlZCBidXQg YXJnc1tdIGlzIHVzZWQ6Cisgdm9pZCBQZGZQYXJzZXI6Om9wU2V0Rm9udChPYmplY3QgYXJnc1td LCBpbnQgLypudW1BcmdzKi8pCisgeworLSAgR2Z4Rm9udCAqZm9udCA9IHJlcy0+bG9va3VwRm9u dChhcmdzWzBdLmdldE5hbWUoKSk7CisrICBhdXRvIGZvbnQgPSByZXMtPmxvb2t1cEZvbnQoYXJn c1swXS5nZXROYW1lKCkpOworIAorICAgaWYgKCFmb250KSB7CisgICAgIC8vIHVuc2V0dGluZyB0 aGUgZm9udCAoZHJhd2luZyBubyB0ZXh0KSBpcyBiZXR0ZXIgdGhhbiB1c2luZyB0aGUKK0BAIC0y MTc5LDcgKzIxODAsOSBAQCB2b2lkIFBkZlBhcnNlcjo6b3BTZXRGb250KE9iamVjdCBhcmdzW10s IGludCAvKm51bUFyZ3MqLykKKyAgICAgZmZsdXNoKHN0ZG91dCk7CisgICB9CisgCisrI2lmICFQ T1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDQsIDApCisgICBmb250LT5pbmNSZWZDbnQoKTsKKysj ZW5kaWYKKyAgIHN0YXRlLT5zZXRGb250KGZvbnQsIGFyZ3NbMV0uZ2V0TnVtKCkpOworICAgZm9u dENoYW5nZWQgPSBnVHJ1ZTsKKyB9CitAQCAtMjM3Myw3ICsyMzc2LDYgQEAgdm9pZCBQZGZQYXJz ZXI6OmRvU2hvd1RleHQoY29uc3QgR29vU3RyaW5nICpzKSB7CisgI2Vsc2UKKyB2b2lkIFBkZlBh cnNlcjo6ZG9TaG93VGV4dChHb29TdHJpbmcgKnMpIHsKKyAjZW5kaWYKKy0gIEdmeEZvbnQgKmZv bnQ7CisgICBpbnQgd01vZGU7CisgICBkb3VibGUgcmlzZVgsIHJpc2VZOworICAgQ2hhckNvZGUg Y29kZTsKK0BAIC0yMzkyLDcgKzIzOTQsNyBAQCB2b2lkIFBkZlBhcnNlcjo6ZG9TaG93VGV4dChH b29TdHJpbmcgKnMpIHsKKyAjZW5kaWYKKyAgIGludCBsZW4sIG4sIHVMZW47CisgCistICBmb250 ID0gc3RhdGUtPmdldEZvbnQoKTsKKysgIGF1dG8gZm9udCA9IHN0YXRlLT5nZXRGb250KCk7Cisg ICB3TW9kZSA9IGZvbnQtPmdldFdNb2RlKCk7CisgCisgICBidWlsZGVyLT5iZWdpblN0cmluZyhz dGF0ZSk7CitAQCAtMjQ0NSwxMCArMjQ0NywxMCBAQCB2b2lkIFBkZlBhcnNlcjo6ZG9TaG93VGV4 dChHb29TdHJpbmcgKnMpIHsKKyAgICAgICAvL291dC0+dXBkYXRlQ1RNKHN0YXRlLCAxLCAwLCAw LCAxLCAwLCAwKTsKKyAgICAgICBpZiAoZmFsc2UpeyAvKiFvdXQtPmJlZ2luVHlwZTNDaGFyKHN0 YXRlLCBjdXJYICsgcmlzZVgsIGN1clkgKyByaXNlWSwgdGR4LCB0ZHksCisgCQkJICAgICAgIGNv ZGUsIHUsIHVMZW4pKSB7Ki8KKy0gICAgICAgIF9QT1BQTEVSX0NBTExfQVJHUyhjaGFyUHJvYywg KChHZng4Qml0Rm9udCAqKWZvbnQpLT5nZXRDaGFyUHJvYywgY29kZSk7CistCWlmICgocmVzRGlj dCA9ICgoR2Z4OEJpdEZvbnQgKilmb250KS0+Z2V0UmVzb3VyY2VzKCkpKSB7CisrICAgICAgICBf UE9QUExFUl9DQUxMX0FSR1MoY2hhclByb2MsIF9QT1BQTEVSX0ZPTlRQVFJfVE9fR0ZYOChmb250 KS0+Z2V0Q2hhclByb2MsIGNvZGUpOworKyAgICBpZiAocmVzRGljdCA9IF9QT1BQTEVSX0ZPTlRQ VFJfVE9fR0ZYOChmb250KS0+Z2V0UmVzb3VyY2VzKCkpIHsKKyAJICBwdXNoUmVzb3VyY2VzKHJl c0RpY3QpOworLQl9CisrICAgIH0KKyAJaWYgKGNoYXJQcm9jLmlzU3RyZWFtKCkpIHsKKyAJICAv L3BhcnNlKCZjaGFyUHJvYywgZ0ZhbHNlKTsgLy8gVE9ETzogcGFyc2UgaW50byBTVkcgZm9udAor IAl9IGVsc2UgeworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv cG9wcGxlci10cmFuc2l0aW9uLWFwaS5oIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1 dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK2luZGV4IDUwYjYxN2MyNWMuLmRjOWU0N2U0NWIg MTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXItdHJh bnNpdGlvbi1hcGkuaAorKysrIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wb3Bw bGVyLXRyYW5zaXRpb24tYXBpLmgKK0BAIC0xNCw2ICsxNCwxMiBAQAorIAorICNpbmNsdWRlIDxn bGliL3BvcHBsZXItZmVhdHVyZXMuaD4KKyAKKysjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIy LCA0LCAwKQorKyNkZWZpbmUgX1BPUFBMRVJfRk9OVFBUUl9UT19HRlg4KGZvbnRfcHRyKSAoKEdm eDhCaXRGb250ICopZm9udF9wdHIuZ2V0KCkpCisrI2Vsc2UKKysjZGVmaW5lIF9QT1BQTEVSX0ZP TlRQVFJfVE9fR0ZYOChmb250X3B0cikgKChHZng4Qml0Rm9udCAqKWZvbnRfcHRyKQorKyNlbmRp ZgorKworICNpZiBQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDMsIDApCisgI2RlZmluZSBfUE9Q UExFUl9NQUtFX1NIQVJFRF9QREZET0ModXJpKSBzdGQ6Om1ha2Vfc2hhcmVkPFBERkRvYz4oc3Rk OjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KHVyaSkpCisgI2Vsc2UKK2RpZmYgLS1naXQgYS9zcmMv ZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmNwcCBiL3NyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuY3BwCitpbmRleCBlZWRlNjY4ODkzLi45 MDFjYzhjZGRiIDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9z dmctYnVpbGRlci5jcHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvc3Zn LWJ1aWxkZXIuY3BwCitAQCAtMTA4LDcgKzEwOCw2IEBAIFN2Z0J1aWxkZXI6On5TdmdCdWlsZGVy KCkgPSBkZWZhdWx0OworIAorIHZvaWQgU3ZnQnVpbGRlcjo6X2luaXQoKSB7CisgICAgIF9mb250 X3N0eWxlID0gbnVsbHB0cjsKKy0gICAgX2N1cnJlbnRfZm9udCA9IG51bGxwdHI7CisgICAgIF9m b250X3NwZWNpZmljYXRpb24gPSBudWxscHRyOworICAgICBfZm9udF9zY2FsaW5nID0gMTsKKyAg ICAgX25lZWRfZm9udF91cGRhdGUgPSB0cnVlOworQEAgLTEwNjQsMTEgKzEwNjMsOCBAQCB2b2lk IFN2Z0J1aWxkZXI6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKSB7CisgICAgIF9uZWVkX2Zv bnRfdXBkYXRlID0gZmFsc2U7CisgICAgIHVwZGF0ZVRleHRNYXRyaXgoc3RhdGUpOyAgICAvLyBF bnN1cmUgdGhhdCB3ZSBoYXZlIGEgdGV4dCBtYXRyaXggYnVpbHQKKyAKKy0gICAgaWYgKF9mb250 X3N0eWxlKSB7CistICAgICAgICAvL3NwX3JlcHJfY3NzX2F0dHJfdW5yZWYoX2ZvbnRfc3R5bGUp OworLSAgICB9CisgICAgIF9mb250X3N0eWxlID0gc3BfcmVwcl9jc3NfYXR0cl9uZXcoKTsKKy0g ICAgR2Z4Rm9udCAqZm9udCA9IHN0YXRlLT5nZXRGb250KCk7CisrICAgIGF1dG8gZm9udCA9IHN0 YXRlLT5nZXRGb250KCk7CisgICAgIC8vIFN0b3JlIG9yaWdpbmFsIG5hbWUKKyAgICAgaWYgKGZv bnQtPmdldE5hbWUoKSkgeworICAgICAgICAgX2ZvbnRfc3BlY2lmaWNhdGlvbiA9IGZvbnQtPmdl dE5hbWUoKS0+Z2V0Q1N0cmluZygpOworQEAgLTEyMTMsNyArMTIwOSw2IEBAIHZvaWQgU3ZnQnVp bGRlcjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpIHsKKyAgICAgICAgIHNwX3JlcHJfY3Nz X3NldF9wcm9wZXJ0eShfZm9udF9zdHlsZSwgIndyaXRpbmctbW9kZSIsICJ0YiIpOworICAgICB9 CisgCistICAgIF9jdXJyZW50X2ZvbnQgPSBmb250OworICAgICBfaW52YWxpZGF0ZWRfc3R5bGUg PSB0cnVlOworIH0KKyAKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlu cHV0L3N2Zy1idWlsZGVyLmggYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1i dWlsZGVyLmgKK2luZGV4IGZiNGU2NGZhMTkuLmU5MWZlYmQ3MTcgMTAwNjQ0CistLS0gYS9zcmMv ZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmgKKysrKyBiL3NyYy9leHRl bnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuaAorQEAgLTIwNCw3ICsyMDQsNiBA QCBwcml2YXRlOgorICAgICBzdGQ6OnZlY3RvcjxTdmdHcmFwaGljc1N0YXRlPiBfc3RhdGVfc3Rh Y2s7CisgCisgICAgIFNQQ1NTQXR0ciAqX2ZvbnRfc3R5bGU7ICAgICAgICAgIC8vIEN1cnJlbnQg Zm9udCBzdHlsZQorLSAgICBHZnhGb250ICpfY3VycmVudF9mb250OworICAgICBjb25zdCBjaGFy ICpfZm9udF9zcGVjaWZpY2F0aW9uOworICAgICBkb3VibGUgX2ZvbnRfc2NhbGluZzsKKyAgICAg Ym9vbCBfbmVlZF9mb250X3VwZGF0ZTsKKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvaW5rc2NhcGUvdGVtcGxhdGUgYi9zcmNwa2dzL2lua3NjYXBlL3RlbXBsYXRlCmluZGV4IDQ1 ZjQ4Y2NkYTBkYy4uNGQ5MDJlNjYzZjczIDEwMDY0NAotLS0gYS9zcmNwa2dzL2lua3NjYXBlL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvaW5rc2NhcGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdpbmtzY2FwZScKIHBrZ25hbWU9aW5rc2NhcGUKIHZlcnNpb249 MS4xLjEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIHdya3NyYz0iaW5rc2NhcGUtJHt2ZXJzaW9u fV8yMDIxLTA5LTIwXzNiZjVhZTBkMjUiCiBidWlsZF9zdHlsZT1jbWFrZQogIyBidWlsZHMgZXhl Y3V0YWJsZXMgdGhlbiBydW5zIGNoZWNrcwoKRnJvbSAwNGRmZmE1NTg3NjVhNDMxODJiOTFjMGQz YzAwNmQwZDY5NGZmOWY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwz MTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBN YXIgMjAyMiAxODozNDo0MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNi84XSBpcGU6IHJlYnVpbGQg YWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA0LjAKCi0tLQogc3JjcGtncy9pcGUvcGF0Y2hlcy9wb3Bw bGVyLTIyLjAzLjAtZml4LnBhdGNoIHwgMzMgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9p cGUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hh bmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaCBiL3NyY3Br Z3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRmMjg5NDgwOWMxYwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApAQCAtMCwwICsx LDMzIEBACitkaWZmIC1OYXVyIHBkZnRvaXBlLmNwcC5vcmlnIHBkZnRvaXBlLmNwcAorLS0tIGEv aXBlLXRvb2xzL3BkZnRvaXBlL3BkZnRvaXBlLmNwcC5vcmlnCisrKysgYi9pcGUtdG9vbHMvcGRm dG9pcGUvcGRmdG9pcGUuY3BwCitAQCAtODQsMjIgKzg0LDIwIEBACisgICBpZiAocXVpZXQpCisg ICAgIGdsb2JhbFBhcmFtcy0+c2V0RXJyUXVpZXQocXVpZXQpOworIAorLSAgR29vU3RyaW5nICpv d25lclBXLCAqdXNlclBXOworKyAgc3RkOjpvcHRpb25hbDxHb29TdHJpbmc+IG93bmVyUFcsIHVz ZXJQVzsKKyAgIGlmIChvd25lclBhc3N3b3JkWzBdKSB7CistICAgIG93bmVyUFcgPSBuZXcgR29v U3RyaW5nKG93bmVyUGFzc3dvcmQpOworKyAgICBvd25lclBXID0gR29vU3RyaW5nKG93bmVyUGFz c3dvcmQpOworICAgfSBlbHNlIHsKKy0gICAgb3duZXJQVyA9IDA7CisrICAgIG93bmVyUFcgPSBz dGQ6Om51bGxvcHQ7CisgICB9CisgICBpZiAodXNlclBhc3N3b3JkWzBdKSB7CistICAgIHVzZXJQ VyA9IG5ldyBHb29TdHJpbmcodXNlclBhc3N3b3JkKTsKKysgICAgdXNlclBXID0gR29vU3RyaW5n KHVzZXJQYXNzd29yZCk7CisgICB9IGVsc2UgeworLSAgICB1c2VyUFcgPSAwOworKyAgICB1c2Vy UFcgPSBzdGQ6Om51bGxvcHQ7CisgICB9CisgCisgICAvLyBvcGVuIFBERiBmaWxlCistICBQREZE b2MgKmRvYyA9IG5ldyBQREZEb2MoZmlsZU5hbWUsIG93bmVyUFcsIHVzZXJQVyk7CistICBkZWxl dGUgdXNlclBXOworLSAgZGVsZXRlIG93bmVyUFc7CisrICBQREZEb2MgKmRvYyA9IG5ldyBQREZE b2Moc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZpbGVOYW1lKSwgb3duZXJQVywgdXNlclBX KTsKKyAKKyAgIGlmICghZG9jLT5pc09rKCkpCisgICAgIHJldHVybiAxOworCmRpZmYgLS1naXQg YS9zcmNwa2dzL2lwZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXBlL3RlbXBsYXRlCmluZGV4IGZiZDUw MGEzZGM5NC4uNjJmY2ZlOTUwNTA0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2lwZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2lwZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2lwZScKIHBrZ25hbWU9aXBlCiB2ZXJzaW9uPTcuMi4yNAotcmV2aXNpb249NQorcmV2 aXNpb249NgogX3Rvb2xzX2NvbW1pdD12Ny4yLjIwLjEKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyBkb3h5Z2VuIHF0NS1xbWFrZSBxdDUtdG9vbHMgcXQ1LWhvc3QtdG9vbHMiCiBtYWtlZGVw ZW5kcz0iY2Fpcm8tZGV2ZWwgZ3NsLWRldmVsIGxpYmN1cmwtZGV2ZWwgbGlianBlZy10dXJiby1k ZXZlbAoKRnJvbSBlYWY0YmM2MzJiNDg3ZDQyMDMwZWY2ZTk2YmFjNDI3YmU5ZjQxZTcwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODozNTozMCAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggNy84XSBraXRpbmVyYXJ5OiByZWJ1aWxkIGFnYWluc3QgbGlicG9w cGxlciAyMi4wNC4wCgotLS0KIHNyY3BrZ3Mva2l0aW5lcmFyeS90ZW1wbGF0ZSB8IDMgKystCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlIGIvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBs YXRlCmluZGV4IGFhNWFkMDdmZTIxOS4uZjQyZTM1YTJmNGYxIDEwMDY0NAotLS0gYS9zcmNwa2dz L2tpdGluZXJhcnkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2l0aW5lcmFyeScKIHBrZ25hbWU9 a2l0aW5lcmFyeQogdmVyc2lvbj0yMS4xMi4zCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWls ZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIGdldHRl eHQga2NvcmVhZGRvbnMgcGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UgcXQ1LXRv b2xzLWRldmVsIgogbWFrZWRlcGVuZHM9ImtjYWxlbmRhcmNvcmUtZGV2ZWwga2NvbnRhY3RzLWRl dmVsIGtkZWNsYXJhdGl2ZS1kZXZlbCBrbWltZS1kZXZlbApAQCAtMTMsNiArMTMsNyBAQCBob21l cGFnZT0iaHR0cHM6Ly9rb250YWN0LmtkZS5vcmciCiBjaGFuZ2Vsb2c9Imh0dHBzOi8va2RlLm9y Zy9hbm5vdW5jZW1lbnRzL2NoYW5nZWxvZ3MvZ2Vhci8ke3ZlcnNpb259LyNraXRpbmVyYXJ5Igog ZGlzdGZpbGVzPSIke0tERV9TSVRFfS9yZWxlYXNlLXNlcnZpY2UvJHt2ZXJzaW9ufS9zcmMvJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPWIxNWY4YWFjNTBhYzdlYWYyZmMy M2U0MGM3YTE2NTI4M2U5OTg0NGY4OGQ5NmNiMmE0NWZhY2U4YTNjYzhjNGQKK21ha2VfY2hlY2s9 bm8gIzMxLzM0IFRlc3QgIzMxOiBjYWxlbmRhcmhhbmRsZXJ0ZXN0IC4uLi4uLi4uLi4uLi4uKioq RmFpbGVkCiAKIGtpdGluZXJhcnktZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9tIDBlMzBhY2FlMzNlOWQyZjI0M2Y5 NzZkNjlhNWU4NjAyZTg3MmZhNGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82 MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgpEYXRlOiBGcmks IDI1IE1hciAyMDIyIDE4OjM2OjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA4LzhdIHNjcmlidXM6 IHJlYnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA0LjAKCi0tLQogLi4uL3BhdGNoZXMvMDAw MS1wb3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoICAgIHwgMTI5ICsrKysrKysrCiAuLi4vcGF0Y2hl cy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggICAgfCAgNTIgKysrKwogLi4uL3BhdGNo ZXMvMDAwMy1wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoICAgIHwgMjg4ICsrKysrKysrKysrKysr KysrKwogc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiA0IGZpbGVzIGNoYW5nZWQsIDQ3MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEtcG9wcGxlci0y Mi4wMi4wLWZpeC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2NyaWJ1cy9wYXRj aGVzLzAwMDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDMtcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaAoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEtcG9wcGxlci0yMi4wMi4wLWZp eC5wYXRjaCBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEtcG9wcGxlci0yMi4wMi4wLWZp eC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRlMGY2MDdj NmEwNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEtcG9w cGxlci0yMi4wMi4wLWZpeC5wYXRjaApAQCAtMCwwICsxLDEyOSBAQAorRnJvbSA4NWMwZGZmMzQy MmZhM2MyNmZiYzJlOGQ4NTYxZjU5N2VjMjRiZDkyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogSmVhbiBHaGFsaSA8amdoYWxpQGxpYmVydHlzdXJmLmZyPgorRGF0ZTogV2VkLCAyIEZl YiAyMDIyIDIzOjEyOjUyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdICMxNjczNDogQnVpbGQgYnJl YWsgd2l0aCBwb3BwbGVyIDIyLjIuMAorCitnaXQtc3ZuLWlkOiBzdm46Ly9zY3JpYnVzLm5ldC90 cnVuay9TY3JpYnVzQDI0ODg0IDExZDIwNzAxLTg0MzEtMDQxMC1hNzExLWUzYzk1OWUzYjg3MAor LS0tCisgc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcCB8IDQ3ICsrKysr KysrKysrKysrKysrKystLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAx MCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRm L3NsYW91dHB1dC5jcHAgYi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3Bw CitpbmRleCA1ODk0YmYyYWQ2Li4zNjUwYzk2ZjUyIDEwMDY0NAorLS0tIGEvc2NyaWJ1cy9wbHVn aW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcAorKysrIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9y dC9wZGYvc2xhb3V0cHV0LmNwcAorQEAgLTcsNiArNywxMSBAQCBmb3Igd2hpY2ggYSBuZXcgbGlj ZW5zZSAoR1BMK2V4Y2VwdGlvbikgaXMgaW4gcGxhY2UuCisgDQorICNpbmNsdWRlICJzbGFvdXRw dXQuaCINCisgDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJ T05fRU5DT0RFKDIyLCAyLCAwKQ0KKysjaW5jbHVkZSA8bWVtb3J5Pg0KKysjaW5jbHVkZSA8b3B0 aW9uYWw+DQorKyNlbmRpZg0KKysNCisgI2luY2x1ZGUgPHBvcHBsZXIvR2xvYmFsUGFyYW1zLmg+ DQorICNpbmNsdWRlIDxwb3BwbGVyL3BvcHBsZXItY29uZmlnLmg+DQorICNpbmNsdWRlIDxwb3Bw bGVyL0ZpbGVTcGVjLmg+DQorQEAgLTMwMjcsMTggKzMwMzIsMjQgQEAgdm9pZCBTbGFPdXRwdXRE ZXY6Om1hcmtQb2ludChQT1BQTEVSX0NPTlNUIGNoYXIgKm5hbWUsIERpY3QgKnByb3BlcnRpZXMp Cisgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQ0KKyB7DQor IAlHZnhGb250ICpnZnhGb250Ow0KKy0JR2Z4Rm9udExvYyAqZm9udExvYzsNCisrI2lmIFBPUFBM RVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQor KwlzdGQ6Om9wdGlvbmFsPEdmeEZvbnRMb2M+IGZvbnRMb2M7DQorKwljb25zdCBHb29TdHJpbmcg KiBmaWxlTmFtZSA9IG51bGxwdHI7DQorKwlzdGQ6OnVuaXF1ZV9wdHI8Rm9GaVRydWVUeXBlPiBm ZjsNCisrI2Vsc2UNCisrCUdmeEZvbnRMb2MgKiBmb250TG9jID0gbnVsbHB0cjsNCisrCUdvb1N0 cmluZyAqIGZpbGVOYW1lID0gbnVsbHB0cjsNCisrCUZvRmlUcnVlVHlwZSAqIGZmID0gbnVsbHB0 cjsNCisrI2VuZGlmDQorIAlHZnhGb250VHlwZSBmb250VHlwZTsNCisgCVNsYU91dEZvbnRGaWxl SUQgKmlkOw0KKyAJU3BsYXNoRm9udEZpbGUgKmZvbnRGaWxlOw0KKyAJU3BsYXNoRm9udFNyYyAq Zm9udHNyYyA9IG51bGxwdHI7DQorLQlGb0ZpVHJ1ZVR5cGUgKmZmOw0KKyAJT2JqZWN0IHJlZk9i aiwgc3RyT2JqOw0KKy0JR29vU3RyaW5nICpmaWxlTmFtZTsNCistCWNoYXIgKnRtcEJ1ZjsNCisr CWNoYXIgKnRtcEJ1ZiA9IG51bGxwdHI7DQorIAlpbnQgdG1wQnVmTGVuID0gMDsNCistCWludCAq Y29kZVRvR0lEOw0KKy0JY29uc3QgZG91YmxlICp0ZXh0TWF0Ow0KKysJaW50ICpjb2RlVG9HSUQg PSBudWxscHRyOw0KKysJY29uc3QgZG91YmxlICp0ZXh0TWF0ID0gbnVsbHB0cjsNCisgCWRvdWJs ZSBtMTEsIG0xMiwgbTIxLCBtMjIsIGZvbnRTaXplOw0KKyAJU3BsYXNoQ29vcmQgbWF0WzRdOw0K KyAJaW50IG4gPSAwOw0KK0BAIC0zMDQ2LDkgKzMwNTcsNiBAQCB2b2lkIFNsYU91dHB1dERldjo6 dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCVNwbGFzaENvb3JkIG1hdHJpeFs2XTsNCisg DQorIAltX2ZvbnQgPSBudWxscHRyOw0KKy0JZmlsZU5hbWUgPSBudWxscHRyOw0KKy0JdG1wQnVm ID0gbnVsbHB0cjsNCistCWZvbnRMb2MgPSBudWxscHRyOw0KKyANCisgCWdmeEZvbnQgPSBzdGF0 ZS0+Z2V0Rm9udCgpOw0KKyAJaWYgKCFnZnhGb250KQ0KK0BAIC0zMDgzLDcgKzMwOTEsMTEgQEAg dm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJfQ0KKyAJ CWVsc2UNCisgCQl7IC8vIGdmeEZvbnRMb2NFeHRlcm5hbA0KKysjaWYgUE9QUExFUl9FTkNPREVE X1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrCQkJZmlsZU5h bWUgPSBmb250TG9jLT5wYXRoQXNHb29TdHJpbmcoKTsNCisrI2Vsc2UNCisgCQkJZmlsZU5hbWUg PSBmb250TG9jLT5wYXRoOw0KKysjZW5kaWYNCisgCQkJZm9udFR5cGUgPSBmb250TG9jLT5mb250 VHlwZTsNCisgCQl9DQorIA0KK0BAIC0zMTM2LDkgKzMxNDgsMTQgQEAgdm9pZCBTbGFPdXRwdXRE ZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6 bWFrZSh0bXBCdWYsIHRtcEJ1Zkxlbik7DQorIAkJCWlmIChmZikNCisgCQkJew0KKysjaWYgUE9Q UExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkN CisrCQkJCWNvZGVUb0dJRCA9ICgoR2Z4OEJpdEZvbnQqKSBnZnhGb250KS0+Z2V0Q29kZVRvR0lE TWFwKGZmLmdldCgpKTsNCisrCQkJCWZmLnJlc2V0KCk7DQorKyNlbHNlDQorIAkJCQljb2RlVG9H SUQgPSAoKEdmeDhCaXRGb250ICopZ2Z4Rm9udCktPmdldENvZGVUb0dJRE1hcChmZik7DQorLQkJ CQluID0gMjU2Ow0KKyAJCQkJZGVsZXRlIGZmOw0KKysjZW5kaWYNCisrCQkJCW4gPSAyNTY7DQor IAkJCX0NCisgCQkJZWxzZQ0KKyAJCQl7DQorQEAgLTMyMDksOCArMzIyNiwxMyBAQCB2b2lkIFNs YU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCQlmZiA9IEZvRmlU cnVlVHlwZTo6bWFrZSh0bXBCdWYsIHRtcEJ1Zkxlbik7DQorIAkJCQlpZiAoISBmZikNCisgCQkJ CQlnb3RvIGVycjI7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZF UlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysJCQkJY29kZVRvR0lEID0gKChHZnhDSURGb250Kikg Z2Z4Rm9udCktPmdldENvZGVUb0dJRE1hcChmZi5nZXQoKSwgJm4pOw0KKysJCQkJZmYucmVzZXQo KTsNCisrI2Vsc2UNCisgCQkJCWNvZGVUb0dJRCA9ICgoR2Z4Q0lERm9udCAqKWdmeEZvbnQpLT5n ZXRDb2RlVG9HSURNYXAoZmYsICZuKTsNCisgCQkJCWRlbGV0ZSBmZjsNCisrI2VuZGlmDQorIAkJ CX0NCisgCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVlVHlwZUZvbnQo DQorIAkJCQkJCQlpZCwNCitAQCAtMzI0NywxNCArMzI2OSwxOSBAQCB2b2lkIFNsYU91dHB1dERl djo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCW1hdFszXSA9IC1tMjI7DQorIAltX2Zv bnQgPSBtX2ZvbnRFbmdpbmUtPmdldEZvbnQoZm9udEZpbGUsIG1hdCwgbWF0cml4KTsNCisgDQor KyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA8IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIs IDIsIDApDQorIAlkZWxldGUgZm9udExvYzsNCisrI2VuZGlmDQorIAlpZiAoZm9udHNyYyAmJiAh Zm9udHNyYy0+aXNGaWxlKQ0KKyAJCWZvbnRzcmMtPnVucmVmKCk7DQorIAlyZXR1cm47DQorIA0K KyBlcnIyOg0KKyAJZGVsZXRlIGlkOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPCBQ T1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKyAJZGVsZXRlIGZvbnRMb2M7DQorKyNl bmRpZg0KKysNCisgZXJyMToNCisgCWlmIChmb250c3JjICYmICFmb250c3JjLT5pc0ZpbGUpDQor IAkJZm9udHNyYy0+dW5yZWYoKTsNCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NjcmlidXMvcGF0Y2hl cy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggYi9zcmNwa2dzL3NjcmlidXMvcGF0Y2hl cy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5mN2EwYzAzZmRkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3NjcmlidXMvcGF0Y2hlcy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKQEAgLTAsMCAr MSw1MiBAQAorRnJvbSBmMTk0MTBhYzNiMjdlMzNkZDYyMTA1NzQ2Nzg0ZTYxZTg1YjkwYTFkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmVhbiBHaGFsaSA8amdoYWxpQGxpYmVydHlz dXJmLmZyPgorRGF0ZTogV2VkLCAyIE1hciAyMDIyIDIyOjIyOjUzICswMDAwCitTdWJqZWN0OiBb UEFUQ0hdICMxNjc2NDogQnVpbGQgYnJlYWsgd2l0aCBwb3BwbGVyIDIyLjAzLjAKKworZ2l0LXN2 bi1pZDogc3ZuOi8vc2NyaWJ1cy5uZXQvdHJ1bmsvU2NyaWJ1c0AyNDk4MiAxMWQyMDcwMS04NDMx LTA0MTAtYTcxMS1lM2M5NTllM2I4NzAKKy0tLQorIHNjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRm L2ltcG9ydHBkZi5jcHAgfCAxMyArKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDEzIGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL2lt cG9ydHBkZi5jcHAgYi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9pbXBvcnRwZGYuY3BwCitp bmRleCAxNTRlNThhM2YwLi4zOTJkY2Q5ZTY0IDEwMDY0NAorLS0tIGEvc2NyaWJ1cy9wbHVnaW5z L2ltcG9ydC9wZGYvaW1wb3J0cGRmLmNwcAorKysrIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9w ZGYvaW1wb3J0cGRmLmNwcAorQEAgLTg5LDcgKzg5LDExIEBAIFFJbWFnZSBQZGZQbHVnOjpyZWFk VGh1bWJuYWlsKGNvbnN0IFFTdHJpbmcmIGZOYW1lKQorICNlbmRpZg0KKyAJZ2xvYmFsUGFyYW1z LT5zZXRFcnJRdWlldChnVHJ1ZSk7DQorIA0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04g Pj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMywgMCkNCisrCVBERkRvYyBwZGZEb2N7IHN0 ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihmbmFtZSkgfTsNCisrI2Vsc2UNCisgCVBERkRvYyBw ZGZEb2N7Zm5hbWUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHJ9Ow0KKysjZW5kaWYNCisgCWlm ICghcGRmRG9jLmlzT2soKSB8fCBwZGZEb2MuZ2V0RXJyb3JDb2RlKCkgPT0gZXJyRW5jcnlwdGVk KQ0KKyAJCXJldHVybiBRSW1hZ2UoKTsNCisgDQorQEAgLTM0Miw3ICszNDYsMTEgQEAgYm9vbCBQ ZGZQbHVnOjpjb252ZXJ0KGNvbnN0IFFTdHJpbmcmIGZuKQorIAlnbG9iYWxQYXJhbXMtPnNldEVy clF1aWV0KGdUcnVlKTsNCisgLy8JZ2xvYmFsUGFyYW1zLT5zZXRQcmludENvbW1hbmRzKGdUcnVl KTsNCisgCVFMaXN0PE9wdGlvbmFsQ29udGVudEdyb3VwKj4gb2NnR3JvdXBzOw0KKysjaWYgUE9Q UExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMywgMCkN CisrCWF1dG8gcGRmRG9jID0gc3RkOjptYWtlX3VuaXF1ZTxQREZEb2M+KHN0ZDo6bWFrZV91bmlx dWU8R29vU3RyaW5nPihmbmFtZSkpOw0KKysjZWxzZQ0KKyAJYXV0byBwZGZEb2MgPSBzdGQ6OnVu aXF1ZV9wdHI8UERGRG9jPihuZXcgUERGRG9jKGZuYW1lLCBudWxscHRyLCBudWxscHRyLCBudWxs cHRyKSk7DQorKyNlbmRpZg0KKyAJaWYgKHBkZkRvYykNCisgCXsNCisgCQlpZiAocGRmRG9jLT5n ZXRFcnJvckNvZGUoKSA9PSBlcnJFbmNyeXB0ZWQpDQorQEAgLTM2MSw4ICszNjksMTMgQEAgYm9v bCBQZGZQbHVnOjpjb252ZXJ0KGNvbnN0IFFTdHJpbmcmIGZuKQorICNlbHNlDQorIAkJCQlhdXRv IGZuYW1lID0gbmV3IEdvb1N0cmluZyhRRmlsZTo6ZW5jb2RlTmFtZShmbikuZGF0YSgpKTsNCisg I2VuZGlmDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05f RU5DT0RFKDIyLCAzLCAwKQ0KKysJCQkJc3RkOjpvcHRpb25hbDxHb29TdHJpbmc+IHVzZXJQVyhz dGQ6OmluX3BsYWNlLCB0ZXh0LnRvTG9jYWw4Qml0KCkuZGF0YSgpKTsNCisrCQkJCXBkZkRvYy5y ZXNldChuZXcgUERGRG9jKHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihmbmFtZSksIHVzZXJQ VywgdXNlclBXLCBudWxscHRyKSk7DQorKyNlbHNlDQorIAkJCQlhdXRvIHVzZXJQVyA9IG5ldyBH b29TdHJpbmcodGV4dC50b0xvY2FsOEJpdCgpLmRhdGEoKSk7DQorIAkJCQlwZGZEb2MucmVzZXQo bmV3IFBERkRvYyhmbmFtZSwgdXNlclBXLCB1c2VyUFcsIG51bGxwdHIpKTsNCisrI2VuZGlmDQor IAkJCQlxQXBwLT5jaGFuZ2VPdmVycmlkZUN1cnNvcihRQ3Vyc29yKFF0OjpXYWl0Q3Vyc29yKSk7 DQorIAkJCX0NCisgCQkJaWYgKCghcGRmRG9jKSB8fCAocGRmRG9jLT5nZXRFcnJvckNvZGUoKSAh PSBlcnJOb25lKSkNCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAzLXBv cHBsZXItMjIuMDQuMC1maXgucGF0Y2ggYi9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAzLXBv cHBsZXItMjIuMDQuMC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5lMTVlYzdkODEyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NjcmlidXMv cGF0Y2hlcy8wMDAzLXBvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKQEAgLTAsMCArMSwyODggQEAK K0Zyb20gZjIyMzdiOGYwYjVjZjc2OTBlODY0YTIyZWY3YTYzYTZkNzY5ZmEzNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IEplYW4gR2hhbGkgPGpnaGFsaUBsaWJlcnR5c3VyZi5mcj4K K0RhdGU6IEZyaSwgMSBBcHIgMjAyMiAyMzo1MjozMiArMDAwMAorU3ViamVjdDogW1BBVENIXSBG aXggYnVpbGQgd2l0aCBwb3BwbGVyIDIyLjA0LjAKKworZ2l0LXN2bi1pZDogc3ZuOi8vc2NyaWJ1 cy5uZXQvdHJ1bmsvU2NyaWJ1c0AyNTA3NCAxMWQyMDcwMS04NDMxLTA0MTAtYTcxMS1lM2M5NTll M2I4NzAKKy0tLQorIHNjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAgfCAx MjMgKysrKysrKysrKysrKystLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNzggaW5zZXJ0aW9u cygrKSwgNDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpYnVzL3BsdWdpbnMvaW1w b3J0L3BkZi9zbGFvdXRwdXQuY3BwIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0 cHV0LmNwcAoraW5kZXggZTIwYTgxZjk5ZS4uNTYyNmZlMzQ3NyAxMDA2NDQKKy0tLSBhL3Njcmli dXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKKysrKyBiL3NjcmlidXMvcGx1Z2lu cy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKK0BAIC0xNzQsOCArMTc0LDEzIEBAIHZvaWQgQW5v T3V0cHV0RGV2OjpkcmF3U3RyaW5nKEdmeFN0YXRlICpzdGF0ZSwgUE9QUExFUl9DT05TVCBHb29T dHJpbmcgKnMpCisgCWludCBzaGFkZSA9IDEwMDsNCisgCWN1cnJDb2xvclRleHQgPSBnZXRDb2xv cihzdGF0ZS0+Z2V0RmlsbENvbG9yU3BhY2UoKSwgc3RhdGUtPmdldEZpbGxDb2xvcigpLCAmc2hh ZGUpOw0KKyAJZm9udFNpemUgPSBzdGF0ZS0+Z2V0Rm9udFNpemUoKTsNCisrI2lmIFBPUFBMRVJf RU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwlp ZiAoc3RhdGUtPmdldEZvbnQoKSAmJiBzdGF0ZS0+Z2V0Rm9udCgpLT5nZXROYW1lKCkpDQorKwkJ Zm9udE5hbWUgPSBuZXcgR29vU3RyaW5nKHN0YXRlLT5nZXRGb250KCktPmdldE5hbWUoKS52YWx1 ZSgpKTsNCisrI2Vsc2UNCisgCWlmIChzdGF0ZS0+Z2V0Rm9udCgpKQ0KKyAJCWZvbnROYW1lID0g c3RhdGUtPmdldEZvbnQoKS0+Z2V0TmFtZSgpLT5jb3B5KCk7DQorKyNlbmRpZg0KKyAJaXRlbVRl eHQgPSBzLT5jb3B5KCk7DQorIH0NCisgDQorQEAgLTM1Nyw3ICszNjIsMTIgQEAgc3RkOjp1bmlx dWVfcHRyPExpbmtBY3Rpb24+IFNsYU91dHB1dERldjo6U0NfZ2V0QWRkaXRpb25hbEFjdGlvbihj b25zdCBjaGFyICprZXkKKyBHQm9vbCBTbGFPdXRwdXREZXY6OmFubm90YXRpb25zX2NhbGxiYWNr KEFubm90ICphbm5vdGEsIHZvaWQgKnVzZXJfZGF0YSkNCisgew0KKyAJU2xhT3V0cHV0RGV2ICpk ZXYgPSAoU2xhT3V0cHV0RGV2Kil1c2VyX2RhdGE7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVS U0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJY29uc3QgUERGUmVj dGFuZ2xlJiBhbm5vdFJlY3QgPSBhbm5vdGEtPmdldFJlY3QoKTs7DQorKwljb25zdCBQREZSZWN0 YW5nbGUqIGJveCA9ICZhbm5vdFJlY3Q7DQorKyNlbHNlDQorIAlQREZSZWN0YW5nbGUgKmJveCA9 IGFubm90YS0+Z2V0UmVjdCgpOw0KKysjZW5kaWYNCisgCWRvdWJsZSB4Q29vciA9IGRldi0+bV9k b2MtPmN1cnJlbnRQYWdlKCktPnhPZmZzZXQoKSArIGJveC0+eDEgLSBkZXYtPmNyb3BPZmZzZXRY Ow0KKyAJZG91YmxlIHlDb29yID0gZGV2LT5tX2RvYy0+Y3VycmVudFBhZ2UoKS0+eU9mZnNldCgp ICsgZGV2LT5tX2RvYy0+Y3VycmVudFBhZ2UoKS0+aGVpZ2h0KCkgLSBib3gtPnkyICsgZGV2LT5j cm9wT2Zmc2V0WTsNCisgCWRvdWJsZSB3aWR0aCA9IGJveC0+eDIgLSBib3gtPngxOw0KK0BAIC02 ODQsNyArNjk0LDEyIEBAIGJvb2wgU2xhT3V0cHV0RGV2OjpoYW5kbGVXaWRnZXRBbm5vdChBbm5v dCogYW5ub3RhLCBkb3VibGUgeENvb3IsIGRvdWJsZSB5Q29vciwKKyAJCQlpZiAoYXBhIHx8ICFh Y2hhcikNCisgCQkJew0KKyAJCQkJQW5vT3V0cHV0RGV2ICphbm5vdE91dERldiA9IG5ldyBBbm9P dXRwdXREZXYobV9kb2MsIG1faW1wb3J0ZWRDb2xvcnMpOw0KKysjaWYgUE9QUExFUl9FTkNPREVE X1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQkJCWNvbnN0 IFBERlJlY3RhbmdsZSYgYW5ub3RhUmVjdCA9IGFubm90YS0+Z2V0UmVjdCgpOw0KKysJCQkJR2Z4 KiBnZnggPSBuZXcgR2Z4KHBkZkRvYywgYW5ub3RPdXREZXYsIHBkZkRvYy0+Z2V0UGFnZShtX2Fj dFBhZ2UpLT5nZXRSZXNvdXJjZURpY3QoKSwgJmFubm90YVJlY3QsIG51bGxwdHIpOw0KKysjZWxz ZQ0KKyAJCQkJR2Z4ICpnZnggPSBuZXcgR2Z4KHBkZkRvYywgYW5ub3RPdXREZXYsIHBkZkRvYy0+ Z2V0UGFnZShtX2FjdFBhZ2UpLT5nZXRSZXNvdXJjZURpY3QoKSwgYW5ub3RhLT5nZXRSZWN0KCks IG51bGxwdHIpOw0KKysjZW5kaWYNCisgCQkJCWFuby0+ZHJhdyhnZngsIGZhbHNlKTsNCisgCQkJ CWlmICghYmdGb3VuZCkNCisgCQkJCQltX2N1cnJDb2xvckZpbGwgPSBhbm5vdE91dERldi0+Y3Vy ckNvbG9yRmlsbDsNCitAQCAtMjkxNiwyMiArMjkzMSwyNyBAQCB2b2lkIFNsYU91dHB1dERldjo6 bWFya1BvaW50KFBPUFBMRVJfQ09OU1QgY2hhciAqbmFtZSwgRGljdCAqcHJvcGVydGllcykKKyAN Cisgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQ0KKyB7DQor LQlHZnhGb250ICpnZnhGb250Ow0KKy0jaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9Q UExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJT SU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwlzdGQ6Om9wdGlvbmFs PEdmeEZvbnRMb2M+IGZvbnRMb2M7DQorKwlzdGQ6OnN0cmluZyBmaWxlTmFtZTsNCisrCXN0ZDo6 dW5pcXVlX3B0cjxGb0ZpVHJ1ZVR5cGU+IGZmOw0KKysJc3RkOjpvcHRpb25hbDxzdGQ6OnZlY3Rv cjx1bnNpZ25lZCBjaGFyPj4gdG1wQnVmOw0KKysjZWxpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lP TiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKyAJc3RkOjpvcHRpb25hbDxH ZnhGb250TG9jPiBmb250TG9jOw0KKyAJY29uc3QgR29vU3RyaW5nICogZmlsZU5hbWUgPSBudWxs cHRyOw0KKyAJc3RkOjp1bmlxdWVfcHRyPEZvRmlUcnVlVHlwZT4gZmY7DQorKwljaGFyKiB0bXBC dWYgPSBudWxscHRyOw0KKyAjZWxzZQ0KKyAJR2Z4Rm9udExvYyAqIGZvbnRMb2MgPSBudWxscHRy Ow0KKyAJR29vU3RyaW5nICogZmlsZU5hbWUgPSBudWxscHRyOw0KKyAJRm9GaVRydWVUeXBlICog ZmYgPSBudWxscHRyOw0KKysJY2hhciogdG1wQnVmID0gbnVsbHB0cjsNCisgI2VuZGlmDQorIAlH ZnhGb250VHlwZSBmb250VHlwZTsNCisgCVNsYU91dEZvbnRGaWxlSUQgKmlkOw0KKyAJU3BsYXNo Rm9udEZpbGUgKmZvbnRGaWxlOw0KKyAJU3BsYXNoRm9udFNyYyAqZm9udHNyYyA9IG51bGxwdHI7 DQorIAlPYmplY3QgcmVmT2JqLCBzdHJPYmo7DQorLQljaGFyICp0bXBCdWYgPSBudWxscHRyOw0K KyAJaW50IHRtcEJ1ZkxlbiA9IDA7DQorIAlpbnQgKmNvZGVUb0dJRCA9IG51bGxwdHI7DQorIAlj b25zdCBkb3VibGUgKnRleHRNYXQgPSBudWxscHRyOw0KK0BAIC0yOTQzLDcgKzI5NjMsMTEgQEAg dm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIA0KKyAJbV9m b250ID0gbnVsbHB0cjsNCisgDQorLQlnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKTsNCisrI2lm IFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQs IDApDQorKwlHZnhGb250KiBnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKS5nZXQoKTsNCisrI2Vs c2UNCisrCUdmeEZvbnQqIGdmeEZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOw0KKysjZW5kaWYNCisg CWlmICghZ2Z4Rm9udCkNCisgCQlnb3RvIGVycjE7DQorIA0KK0BAIC0yOTY4LDE1ICsyOTkyLDIz IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCWlm IChmb250TG9jLT5sb2NUeXBlID09IGdmeEZvbnRMb2NFbWJlZGRlZCkNCisgCQl7DQorIAkJCS8v IGlmIHRoZXJlIGlzIGFuIGVtYmVkZGVkIGZvbnQsIHJlYWQgaXQgdG8gbWVtb3J5DQorLQkJCXRt cEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSh4cmVmLCAmdG1wQnVmTGVuKTsNCisrI2lm IFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQs IDApDQorKwkJCXRtcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSgoeHJlZikgPyB4cmVm IDogcGRmRG9jLT5nZXRYUmVmKCkpOw0KKyAJCQlpZiAoISB0bXBCdWYpDQorIAkJCQlnb3RvIGVy cjI7DQorKyNlbHNlDQorKwkJCXRtcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSh4cmVm LCAmdG1wQnVmTGVuKTsNCisrCQkJaWYgKCF0bXBCdWYpDQorKwkJCQlnb3RvIGVycjI7DQorKyNl bmRpZg0KKyANCisgCQkJLy8gZXh0ZXJuYWwgZm9udA0KKyAJCX0NCisgCQllbHNlDQorIAkJeyAv LyBnZnhGb250TG9jRXh0ZXJuYWwNCistI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBP UFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVS U0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJCQlmaWxlTmFtZSA9 IGZvbnRMb2MtPnBhdGg7DQorKyNlbGlmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBM RVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorIAkJCWZpbGVOYW1lID0gZm9udExvYy0+cGF0 aEFzR29vU3RyaW5nKCk7DQorICNlbHNlDQorIAkJCWZpbGVOYW1lID0gZm9udExvYy0+cGF0aDsN CitAQCAtMjk4NSw1MiArMzAxNyw1NCBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChH ZnhTdGF0ZSAqc3RhdGUpCisgCQl9DQorIA0KKyAJCWZvbnRzcmMgPSBuZXcgU3BsYXNoRm9udFNy YzsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNP REUoMjIsIDQsIDApDQorKwkJaWYgKCFmaWxlTmFtZS5lbXB0eSgpKQ0KKysJCQlmb250c3JjLT5z ZXRGaWxlKGZpbGVOYW1lKTsNCisrCQllbHNlDQorKwkJCWZvbnRzcmMtPnNldEJ1ZihzdGQ6Om1v dmUodG1wQnVmLnZhbHVlKCkpKTsNCisrI2Vsc2UNCisgCQlpZiAoZmlsZU5hbWUpDQorIAkJCWZv bnRzcmMtPnNldEZpbGUoZmlsZU5hbWUsIGdGYWxzZSk7DQorIAkJZWxzZQ0KKyAJCQlmb250c3Jj LT5zZXRCdWYodG1wQnVmLCB0bXBCdWZMZW4sIGdUcnVlKTsNCisrI2VuZGlmDQorIA0KKyAJCS8v IGxvYWQgdGhlIGZvbnQgZmlsZQ0KKyAJCXN3aXRjaCAoZm9udFR5cGUpIHsNCisgCQljYXNlIGZv bnRUeXBlMToNCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUeXBlMUZv bnQoDQorLQkJCQlpZCwNCistCQkJCWZvbnRzcmMsDQorLQkJCQkoY29uc3QgY2hhciAqKikoKEdm eDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorKwkJCWlmICghKGZvbnRG aWxlID0gbV9mb250RW5naW5lLT5sb2FkVHlwZTFGb250KGlkLCBmb250c3JjLCAoY29uc3QgY2hh ciAqKikoKEdmeDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorIAkJCXsN CistCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQg Zm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFt ZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJTeW50YXhF cnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+ Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQp Iik7DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0NCisgCQkJYnJlYWs7DQorIAkJY2FzZSBmb250 VHlwZTFDOg0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFR5cGUxQ0Zv bnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRzcmMsDQorLQkJCQkJCQkoY29uc3QgY2hh ciAqKikoKEdmeDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorKwkJCWlm ICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHlwZTFDRm9udChpZCwgZm9udHNyYywg KGNvbnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2RpbmcoKSkp KQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVh dGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZv bnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJZXJyb3Io ZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIs IGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDog Iih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFrOw0KKyAJ CWNhc2UgZm9udFR5cGUxQ09UOg0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+ bG9hZE9wZW5UeXBlVDFDRm9udCgNCistCQkJCQkJCWlkLA0KKy0JCQkJCQkJZm9udHNyYywNCist CQkJCQkJCShjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29k aW5nKCkpKSkNCisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRPcGVuVHlw ZVQxQ0ZvbnQoaWQsIGZvbnRzcmMsIChjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4 Rm9udCktPmdldEVuY29kaW5nKCkpKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJy b3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhG b250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5u YW1lZCkiKTsNCisrCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0 ZSBhIGZvbnQgZm9yICd7MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXRO YW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisg CQkJfQ0KKyAJCQlicmVhazsNCisgCQljYXNlIGZvbnRUcnVlVHlwZToNCisgCQljYXNlIGZvbnRU cnVlVHlwZU9UOg0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJT SU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQkJaWYgKCFmaWxlTmFtZS5lbXB0eSgpKQ0KKysJCQkJ ZmYgPSBGb0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5hbWUuY19zdHIoKSk7DQorKwkJCWVsc2UNCisr CQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtlKGZvbnRzcmMtPmJ1Zi5kYXRhKCksIGZvbnRzcmMt PmJ1Zi5zaXplKCkpOw0KKysjZWxzZQ0KKyAJCQlpZiAoZmlsZU5hbWUpDQorIAkJCQlmZiA9IEZv RmlUcnVlVHlwZTo6bG9hZChmaWxlTmFtZS0+Z2V0Q1N0cmluZygpKTsNCisgCQkJZWxzZQ0KKyAJ CQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2UodG1wQnVmLCB0bXBCdWZMZW4pOw0KKysjZW5kaWYN CisgCQkJaWYgKGZmKQ0KKyAJCQl7DQorICNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQ T1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KK0BAIC0zMDQ3LDI0ICszMDgxLDE3IEBA IHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJY29k ZVRvR0lEID0gbnVsbHB0cjsNCisgCQkJCW4gPSAwOw0KKyAJCQl9DQorLQkJCWlmICghKGZvbnRG aWxlID0gbV9mb250RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJ CQkJCQlmb250c3JjLA0KKy0JCQkJCQkJY29kZVRvR0lELCBuKSkpDQorKwkJCWlmICghKGZvbnRG aWxlID0gbV9mb250RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250KGlkLCBmb250c3JjLCBjb2RlVG9H SUQsIG4pKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRu J3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5nZXROYW1lKCkg PyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisrCQkJ CWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7 MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJp bmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0KKyAJCQlicmVh azsNCisgCQljYXNlIGZvbnRDSURUeXBlMDoNCisgCQljYXNlIGZvbnRDSURUeXBlMEM6DQorLQkJ CWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkQ0lERm9udCgNCistCQkJCQkJCWlk LA0KKy0JCQkJCQkJZm9udHNyYykpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2lu ZS0+bG9hZENJREZvbnQoaWQsIGZvbnRzcmMpKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3lu dGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJ CQlnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6 ICIodW5uYW1lZCkiKTsNCisrCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0 IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250 LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJy MjsNCisgCQkJfQ0KKyAJCQlicmVhazsNCitAQCAtMzA4MCwxMCArMzEwNyw3IEBAIHZvaWQgU2xh T3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJY29kZVRvR0lEID0g bnVsbHB0cjsNCisgCQkJCW4gPSAwOw0KKyAJCQl9DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9m b250RW5naW5lLT5sb2FkT3BlblR5cGVDRkZGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJCQlm b250c3JjLA0KKy0JCQkJCQkJY29kZVRvR0lELCBuKSkpDQorKwkJCWlmICghKGZvbnRGaWxlID0g bV9mb250RW5naW5lLT5sb2FkT3BlblR5cGVDRkZGb250KGlkLCBmb250c3JjLCBjb2RlVG9HSUQs IG4pKSkNCisgCQkJew0KKyAJCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3Qg Y3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorIAkJCQlnZnhGb250LT5nZXROYW1lKCkgPyBn ZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCitAQCAtMzEw NSwxMCArMzEyOSwxNyBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAq c3RhdGUpCisgCQkJfQ0KKyAJCQllbHNlDQorIAkJCXsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9W RVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwkJCQlpZiAoIWZp bGVOYW1lLmVtcHR5KCkpDQorKwkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5hbWUu Y19zdHIoKSk7DQorKwkJCQllbHNlDQorKwkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2UoZm9u dHNyYy0+YnVmLmRhdGEoKSwgZm9udHNyYy0+YnVmLnNpemUoKSk7DQorKyNlbHNlDQorIAkJCQlp ZiAoZmlsZU5hbWUpDQorIAkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5hbWUtPmdl dENTdHJpbmcoKSk7DQorIAkJCQllbHNlDQorIAkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2Uo dG1wQnVmLCB0bXBCdWZMZW4pOw0KKysjZW5kaWYNCisgCQkJCWlmICghIGZmKQ0KKyAJCQkJCWdv dG8gZXJyMjsNCisgI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lP Tl9FTkNPREUoMjIsIDIsIDApDQorQEAgLTMxMTksMTMgKzMxNTAsOSBAQCB2b2lkIFNsYU91dHB1 dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCWRlbGV0ZSBmZjsNCisgI2Vu ZGlmDQorIAkJCX0NCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVl VHlwZUZvbnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRzcmMsDQorLQkJCQkJCQljb2Rl VG9HSUQsIG4sIGZhY2VJbmRleCkpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2lu ZS0+bG9hZFRydWVUeXBlRm9udChpZCwgZm9udHNyYywgY29kZVRvR0lELCBuLCBmYWNlSW5kZXgp KSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3Jl YXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5nZXROYW1lKCkgPyBnZnhG b250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisrCQkJCWVycm9y KGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSci LCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6 ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0KKyAJCQlicmVhazsNCitA QCAtMzI2OSw5ICszMjk2LDE1IEBAIHZvaWQgU2xhT3V0cHV0RGV2OjpkcmF3Q2hhcihHZnhTdGF0 ZSogc3RhdGUsIGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIGR4LCBkb3ViCisgR0Jvb2wgU2xh T3V0cHV0RGV2OjpiZWdpblR5cGUzQ2hhcihHZnhTdGF0ZSAqc3RhdGUsIGRvdWJsZSB4LCBkb3Vi bGUgeSwgZG91YmxlIGR4LCBkb3VibGUgZHksIENoYXJDb2RlIGNvZGUsIFBPUFBMRVJfQ09OU1Rf MDgyIFVuaWNvZGUgKnUsIGludCB1TGVuKQ0KKyB7DQorIC8vCXFEZWJ1ZygpIDw8ICJiZWdpblR5 cGUzQ2hhciI7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJ T05fRU5DT0RFKDIyLCA0LCAwKQ0KKyAJR2Z4Rm9udCAqZ2Z4Rm9udDsNCisrCWlmICghKGdmeEZv bnQgPSBzdGF0ZS0+Z2V0Rm9udCgpLmdldCgpKSkNCisrCQlyZXR1cm4gZ1RydWU7DQorKyNlbHNl DQorKwlHZnhGb250KiBnZnhGb250Ow0KKyAJaWYgKCEoZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250 KCkpKQ0KKyAJCXJldHVybiBnVHJ1ZTsNCisrI2VuZGlmDQorIAlpZiAoZ2Z4Rm9udC0+Z2V0VHlw ZSgpICE9IGZvbnRUeXBlMykNCisgCQlyZXR1cm4gZ1RydWU7DQorIAlGM0VudHJ5IGYzZTsNCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3NjcmlidXMvdGVtcGxhdGUgYi9zcmNwa2dzL3NjcmlidXMvdGVt cGxhdGUKaW5kZXggMGVjOTA4ZjdlZjUwLi4xMjVhN2Q1NGU0Y2YgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3Mvc2NyaWJ1cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NjcmlidXMvdGVtcGxhdGUKQEAgLTEs MTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NjcmlidXMnCiBwa2duYW1lPXNjcmli dXMKIHZlcnNpb249MS41LjgKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBjb25maWd1cmVfYXJncz0iLURDTUFLRV9TS0lQX1JQQVRIPVRSVUUgLURRVF9QUkVGSVg9 JHtYQlBTX0NST1NTX0JBU0V9L3VzcgotIC1EV0FOVF9HUkFQSElDU01BR0lDSz0xIgorIC1EV0FO VF9HUkFQSElDU01BR0lDSz0xIC1EV0FOVF9DUFAxNz1PTiIKIGhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMgcHl0aG9uMyIKIG1ha2VkZXBlbmRzPSJx dDUtZGV2ZWwgcXQ1LXRvb2xzLWRldmVsIHpsaWItZGV2ZWwgY2Fpcm8tZGV2ZWwgbGNtczItZGV2 ZWwKICBjdXBzLWRldmVsIGxpYnhtbDItZGV2ZWwgaHlwaGVuLWRldmVsIGdob3N0c2NyaXB0LWRl dmVsIGJvb3N0LWRldmVsCg== --===============0193875227559291486==--