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 15106 invoked from network); 17 Apr 2022 09:29:32 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Apr 2022 09:29:32 -0000 Content-Type: multipart/mixed; boundary="===============5900382368746198823==" 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 11:29:31 +0200 List-Id: Message-ID: <20220417092931.-BVAw89YhUxE2PgYjDOWAr1E5qkhtC3UvM2D9j6D6qg@z> GitHub notification mails are now in MIME to allow UTF8. --===============5900382368746198823== 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= --===============5900382368746198823== 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 RVNURElSPSR7REVTVERJUn0gaW5zdGFsbAoKRnJvbSBlNTAzM2VmN2M5MjRjMmM3YTZiZWY0MmU4 YWE0Mzg4MTVlODllMWMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwz MTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBN YXIgMjAyMiAxODozMzozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNC84XSBjYWxsaWdyYTogcmVi dWlsZCBhZ2FpbnN0IGxpYnBvcHBsZXIgMjIuMDQuMAoKLS0tCiAuLi4vcGF0Y2hlcy8wMDAxLUZp eC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2ggfCA0NDAgKysrKysrKysrKysrKysrKysrCiAuLi4v MDAwMi1NYWtlLXNob3ctaGlkZGVuLXJvdy1zLXdvcmsucGF0Y2ggICAgfCAgMjkgKysKIHNyY3Br Z3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaCAgICAgICAgICB8ICAxNiArCiAuLi4vcGF0 Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoICAgICAgICAgfCAgNzAgKysrCiBzcmNwa2dz L2NhbGxpZ3JhL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIDUgZmlsZXMg Y2hhbmdlZCwgNTU2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMS1GaXgtc29tZS1tb3JlLXdhcm5pbmdz LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDIt TWFrZS1zaG93LWhpZGRlbi1yb3ctcy13b3JrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9jYWxsaWdyYS9wYXRjaGVzL2MrKzE3LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMS1GaXgtc29tZS1tb3JlLXdhcm5pbmdz LnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDEtRml4LXNvbWUtbW9yZS13YXJu aW5ncy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZjYzEz MjkyNWIxNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAx LUZpeC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2gKQEAgLTAsMCArMSw0NDAgQEAKK0Zyb20gMDY4 Y2Q5YWVjMTEwNTI3MzNlMzkzOTc2MTQyNTE2ZDIxOTBlNDU2NCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IFBpZXJyZSBEdWNyb3F1ZXQgPHBpbmFyYWZAcGluYXJhZi5pbmZvPgorRGF0 ZTogU3VuLCAyOCBGZWIgMjAyMSAyMzoyMzowMiArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXgg c29tZSBtb3JlIHdhcm5pbmdzCisKKy0tLQorIGZpbHRlcnMvbGlibXNvb3htbC9Nc29vWG1sRGlh Z3JhbVJlYWRlcl9wLmNwcCAgICAgICAgfCAgMSArCisgZmlsdGVycy9zaGVldHMvY3N2L2Nzdmlt cG9ydC5jYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgZmlsdGVycy9zaGVldHMvZXhj ZWwvc2lkZXdpbmRlci9leGNlbC5jcHAgICAgICAgICAgICB8ICAxICsKKyBmaWx0ZXJzL3NoZWV0 cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcCAgICAgICAgIHwgIDIgKy0KKyBmaWx0ZXJz L3NoZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYyAgICAgICAgICAgIHwgIDUgKystLS0K KyBmaWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MgICAgICAgICAgICAgICAgICAgIHwg IDIgLS0KKyBmaWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhleHBvcnQuY2MgICAgICAg ICAgIHwgIDEgLQorIGZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90YWJsZS5jYyAgICAgICAg ICAgICAgICAgfCAgMSArCisgZmlsdGVycy9zaGVldHMveGxzeC9YbHN4WG1sV29ya3NoZWV0UmVh ZGVyLmNwcCAgICAgICB8ICAxIC0KKyBmaWx0ZXJzL3N0YWdlL3BwdHgvUHB0eFhtbERvY3VtZW50 UmVhZGVyLmNwcCAgICAgICAgIHwgIDIgKy0KKyBmaWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvdGV4 dGhhbmRsZXIuY3BwICAgICAgICAgICAgIHwgIDIgKysKKyBmaWx0ZXJzL3dvcmRzL21zd29yZC1v ZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAgICAgICAgIHwgIDQgKysrLQorIGZpbHRlcnMvd29yZHMv bXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5jcHAgICAgICAgICAgfCAgNCArLS0tCisgZmlsdGVy cy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmggICAgICAgICAgICB8IDExICsrKysr KysrLS0tCisgZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcCAgICAgICAgICAgICAgICAg ICAgICB8ICAyICsrCisgbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdlU2F2ZUhlbHBlci5jcHAgICAg ICAgICAgICAgICB8ICAyICstCisgcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRv ckRldmljZS5oICAgICAgICB8ICA2ICsrLS0tLQorIHBsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3Bh Y2VOYXZpZ2F0b3JFdmVudC5oICAgICAgICAgfCAgMiArLQorIHBsdWdpbnMvc3BhY2VuYXZpZ2F0 b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmggfCAgMyArLS0KKyBwbHVnaW5zL3ZlY3Rv cnNoYXBlL1ZlY3RvclNoYXBlLmNwcCAgICAgICAgICAgICAgICAgIHwgIDEgKworIHNoZWV0cy9m dW5jdGlvbnMvZGF0ZXRpbWUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisgc2hl ZXRzL3BhcnQvRGlnZXN0LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsr KystLS0tCisgc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3RvcnkuaCAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCisgc2hlZXRzL3Rlc3RzL1Rlc3RTb3J0LmNwcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA0ICsrLS0KKyAyNCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCsp LCAzMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvbGlibXNvb3htbC9Nc29v WG1sRGlhZ3JhbVJlYWRlcl9wLmNwcCBiL2ZpbHRlcnMvbGlibXNvb3htbC9Nc29vWG1sRGlhZ3Jh bVJlYWRlcl9wLmNwcAoraW5kZXggMTRiMDg1MzEyNjIuLjE0ZmM2YWI5YTcxIDEwMDY0NAorLS0t IGEvZmlsdGVycy9saWJtc29veG1sL01zb29YbWxEaWFncmFtUmVhZGVyX3AuY3BwCisrKysgYi9m aWx0ZXJzL2xpYm1zb294bWwvTXNvb1htbERpYWdyYW1SZWFkZXJfcC5jcHAKK0BAIC04NzIsNiAr ODcyLDcgQEAgdm9pZCBMYXlvdXROb2RlQXRvbTo6ZmluaXNoQnVpbGQoQ29udGV4dCogY29udGV4 dCkgeworICAgICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpVbmtub3duQWxnOgorICAgICAgICAg ICAgIHdhcm5Nc29vWG1sIDw8ICJMYXlvdXQgd2l0aCBuYW1lPSIgPDwgbV9uYW1lIDw8ICJkZWZp bmVzIGFuIHVua25vd24gYWxnb3JpdGhtLiI7CisgICAgICAgICAgICAgLy8gZmFsbCB0aHJvdWdo IGFuZCB1c2UgdGhlIGNvbXBvc2l0ZS1hbGdvcml0aG0KKysgICAgICAgIC8vIGZhbGwgdGhyb3Vn aAorICAgICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpDb21wb3NpdGVBbGc6IG1fYWxnb3JpdGht SW1wbCA9IG5ldyBDb21wb3NpdGVBbGdvcml0aG07IGJyZWFrOworICAgICAgICAgY2FzZSBBbGdv cml0aG1BdG9tOjpDb25uZWN0b3JBbGc6IG1fYWxnb3JpdGhtSW1wbCA9IG5ldyBDb25uZWN0b3JB bGdvcml0aG07IGJyZWFrOworICAgICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpDeWNsZUFsZzog bV9hbGdvcml0aG1JbXBsID0gbmV3IEN5Y2xlQWxnb3JpdGhtOyBicmVhazsKK2RpZmYgLS1naXQg YS9maWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjIGIvZmlsdGVycy9zaGVldHMvY3N2L2Nz dmltcG9ydC5jYworaW5kZXggODlmYjcxNjJlMDAuLjEwMDhkMTg2ZjE4IDEwMDY0NAorLS0tIGEv ZmlsdGVycy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYworKysrIGIvZmlsdGVycy9zaGVldHMvY3N2 L2NzdmltcG9ydC5jYworQEAgLTk3LDggKzk3LDggQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0 dXMgQ1NWRmlsdGVyOjpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20sIGNvbnN0IFFCeXQK KyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6RmlsZU5vdEZvdW5kOworICAgICB9CisgCistICAg IFFTdHJpbmcgY3N2X2RlbGltaXRlcjsKKyAgICAgLy8gIyMjIyMjIEZJWE1FOiBkaXNhYmxlZCBm b3Igbm93CisrICAgIC8vUVN0cmluZyBjc3ZfZGVsaW1pdGVyOworICAgICAvL2lmICghY29uZmln LmlzTnVsbCgpKQorICAgICAvLyAgICBjc3ZfZGVsaW1pdGVyID0gY29uZmlnWzBdOworIAorZGlm ZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZXhjZWwuY3BwIGIvZmls dGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNlbC5jcHAKK2luZGV4IGFiNTkyMjI1Y2E2 Li43ZmE1NjMzZDQzMyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5k ZXIvZXhjZWwuY3BwCisrKysgYi9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2V4Y2Vs LmNwcAorQEAgLTI0NDksNiArMjQ0OSw3IEBAIGJvb2wgRXhjZWxSZWFkZXI6OmxvYWQoV29ya2Jv b2sqIHdvcmtib29rLCBjb25zdCBjaGFyKiBmaWxlbmFtZSkKKyAgICAgICAgICAgICAgIH0gZWxz ZSB7CisgICAgICAgICAgICAgICAgIGJ5dGVzX3JlYWQgPSBjb21iT2JqU3RyZWFtLT5yZWFkKCBi dWZmZXIsIG1hcmtlck9yTGVuZ3RoICk7CisgICAgICAgICAgICAgICAgIFFTdHJpbmcgYW5zaVN0 cmluZyA9IHJlYWRCeXRlU3RyaW5nKGJ1ZmZlciwgbWFya2VyT3JMZW5ndGgpOworKyAgICAgICAg ICAgICAgICBRX1VOVVNFRChhbnNpU3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgLy9UT0RPLi4u CisgICAgICAgICAgICAgICAgIC8vcHJpbnRmKCAibWFya2VyT3JMZW5ndGg9JWkgYW5zaVN0cmlu Zz0lc1xuIixtYXJrZXJPckxlbmd0aCxhbnNpU3RyaW5nLmFzY2lpKCkgKTsKKyAgICAgICAgICAg ICAgIH0KK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2Zvcm11 bGFzLmNwcCBiL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZm9ybXVsYXMuY3BwCitp bmRleCA2Mjc0NzQ2OWE0OS4uMDEzMmQzOWUwMjQgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0 cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcAorKysrIGIvZmlsdGVycy9zaGVldHMvZXhj ZWwvc2lkZXdpbmRlci9mb3JtdWxhcy5jcHAKK0BAIC0xNTEzLDcgKzE1MTMsNyBAQCBzdGF0aWMg dm9pZCBtZXJnZVRva2VucyhVU3RyaW5nU3RhY2sqIHN0YWNrLCB1bnNpZ25lZCBjb3VudCwgY29u c3QgUVN0cmluZyAmbWVyZworICAgICBpZiAoIXN0YWNrKSByZXR1cm47CisgICAgIGlmIChzdGFj ay0+c2l6ZSgpIDwgY291bnQpIHJldHVybjsKKyAKKy0gICAgUVN0cmluZyBzMSwgczI7CisrICAg IFFTdHJpbmcgczE7CisgCisgICAgIHdoaWxlIChjb3VudCkgeworICAgICAgICAgY291bnQtLTsK K2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYyBi L2ZpbHRlcnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmljZXhwb3J0LmNjCitpbmRleCAxMjU2YzY4 YmM3NC4uMjQ2ODU0OGVkYjMgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9n bnVtZXJpY2V4cG9ydC5jYworKysrIGIvZmlsdGVycy9zaGVldHMvZ251bWVyaWMvZ251bWVyaWNl eHBvcnQuY2MKK0BAIC0xMjkzLDE1ICsxMjkzLDEzIEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3Rh dHVzIEdOVU1FUklDRXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20sIGNvbnN0 CisgICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgIH0KKyAKKy0gICAgICAgICAg ICBRU3RyaW5nIGxpbmU7CisgICAgICAgICAgICAgZm9yIChpbnQgY3VycmVudGNvbHVtbiA9IDE7 IGN1cnJlbnRjb2x1bW4gPD0gaU1heENvbHVtbjsgY3VycmVudGNvbHVtbisrKSB7CisgICAgICAg ICAgICAgICAgIFFEb21FbGVtZW50IGNlbGxfY29udGVudHM7CisgICAgICAgICAgICAgICAgIENl bGwgY2VsbCh0YWJsZSwgY3VycmVudGNvbHVtbiwgY3VycmVudHJvdyk7CisgCistICAgICAgICAg ICAgICAgIFFTdHJpbmcgdGV4dCwgc3R5bGU7CisrICAgICAgICAgICAgICAgIFFTdHJpbmcgdGV4 dDsKKyAgICAgICAgICAgICAgICAgUURvbURvY3VtZW50IGRvbUxpbms7CisgICAgICAgICAgICAg ICAgIFFEb21FbGVtZW50IGRvbVJvb3Q7CistICAgICAgICAgICAgICAgIFFEb21Ob2RlIGRvbU5v ZGU7CisgICAgICAgICAgICAgICAgIFFEb21Ob2RlTGlzdCBjaGlsZE5vZGVzOworIAorICAgICAg ICAgICAgICAgICBpZiAoIWNlbGwuaXNEZWZhdWx0KCkgJiYgIWNlbGwuaXNFbXB0eSgpKSB7CitA QCAtMTM0Miw2ICsxMzQwLDcgQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgR05VTUVSSUNF eHBvcnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVBcnJheSYgZnJvbSwgY29uc3QKKyAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXh0ID0gZG9tTm9kZS50b0VsZW1lbnQoKS50ZXh0KCk7CisgCisgICAg ICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFkb21Ob2RlLmlzTnVsbCgpKSB7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcgc3R5bGU7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0eWxlID0gZG9tTm9kZS50b0VsZW1lbnQoKS50YWdOYW1lKCk7CisgCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHlsZSA9PSAiYiIpCitkaWZmIC0tZ2l0IGEv ZmlsdGVycy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjIGIvZmlsdGVycy9zaGVldHMvaHRtbC9o dG1sZXhwb3J0LmNjCitpbmRleCAyZDExNmUwNjA4Yy4uYmY0MWE2Zjc0M2UgMTAwNjQ0CistLS0g YS9maWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRz L2h0bWwvaHRtbGV4cG9ydC5jYworQEAgLTI0Miw3ICsyNDIsNiBAQCB2b2lkIEhUTUxFeHBvcnQ6 OmNvbnZlcnRTaGVldChTaGVldCAqc2hlZXQsIFFTdHJpbmcgJnN0ciwgaW50IGlNYXhVc2VkUm93 LCBpbnQgaQorICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgfQorIAorLSAgICAgICAgUVN0 cmluZyBzZXBhcmF0b3JzOworICAgICAgICAgUVN0cmluZyBsaW5lOworICAgICAgICAgdW5zaWdu ZWQgaW50IG5vbmVtcHR5X2NlbGxzID0gMDsKKyAKK0BAIC00MzUsNyArNDM0LDYgQEAgdm9pZCBI VE1MRXhwb3J0OjpkZXRlY3RGaWxsZWRDZWxscyhTaGVldCAqc2hlZXQsIGludCAmcm93cywgaW50 ICZjb2x1bW5zKQorICAgICAgICAgaW50IGlVc2VkQ29sdW1uID0gMDsKKyAgICAgICAgIGZvciAo aW50IGN1cnJlbnRjb2x1bW4gPSAxIDsgY3VycmVudGNvbHVtbiA8PSBpTWF4Q29sdW1uIDsgY3Vy cmVudGNvbHVtbisrKSB7CisgICAgICAgICAgICAgY2VsbCA9IENlbGwoc2hlZXQsIGN1cnJlbnRj b2x1bW4sIGN1cnJlbnRyb3cpOworLSAgICAgICAgICAgIFFTdHJpbmcgdGV4dDsKKyAgICAgICAg ICAgICBpZiAoIWNlbGwuaXNEZWZhdWx0KCkgJiYgIWNlbGwuaXNFbXB0eSgpKSB7CisgICAgICAg ICAgICAgICAgIGlVc2VkQ29sdW1uID0gY3VycmVudGNvbHVtbjsKKyAgICAgICAgICAgICB9Citk aWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xhdGV4ZXhwb3J0LmNjIGIv ZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xhdGV4ZXhwb3J0LmNjCitpbmRleCA4ZDA2OThh MzQyMC4uNGY4Y2FmMjM1ZDkgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBv cnQvbGF0ZXhleHBvcnQuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC9sYXRl eGV4cG9ydC5jYworQEAgLTM4LDcgKzM4LDYgQEAgTEFURVhFeHBvcnQ6OkxBVEVYRXhwb3J0KFFP YmplY3QqIHBhcmVudCwgY29uc3QgUVZhcmlhbnRMaXN0JikgOgorIAorIEtvRmlsdGVyOjpDb252 ZXJzaW9uU3RhdHVzIExBVEVYRXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20s IGNvbnN0IFFCeXRlQXJyYXkmIHRvKQorIHsKKy0gICAgUVN0cmluZyBjb25maWc7CisgCisgICAg IGlmICh0byAhPSAidGV4dC94LXRleCIgfHwgZnJvbSAhPSAiYXBwbGljYXRpb24veC1rc3ByZWFk IikKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6Tm90SW1wbGVtZW50ZWQ7CitkaWZmIC0tZ2l0 IGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjIGIvZmlsdGVycy9zaGVldHMv bGF0ZXgvZXhwb3J0L3RhYmxlLmNjCitpbmRleCA4ZDhiNjcwMWEzOS4uZTU4ODI3ZGZiYzcgMTAw NjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFibGUuY2MKKysrKyBiL2Zp bHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90YWJsZS5jYworQEAgLTExOCw2ICsxMTgsNyBAQCB2 b2lkIFRhYmxlOjphbmFseXplUGFwZXIoY29uc3QgUURvbU5vZGUgbm9kZSkKKyAKKyAgICAgLyog Ym9yZGVycyAqLworICAgICBRRG9tTm9kZSBib3JkZXIgPSBnZXRDaGlsZChub2RlLCAiYm9yZGVy cyIpOworKyAgICBRX1VOVVNFRChib3JkZXIpOworICAgICBzZXRCb3JkZXJSaWdodChnZXRBdHRy KG5vZGUsICJyaWdodCIpLnRvTG9uZygpKTsKKyAgICAgc2V0Qm9yZGVyTGVmdChnZXRBdHRyKG5v ZGUsICJsZWZ0IikudG9Mb25nKCkpOworICAgICBzZXRCb3JkZXJCb3R0b20oZ2V0QXR0cihub2Rl LCAiYm90dG9tIikudG9Mb25nKCkpOworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL3hsc3gv WGxzeFhtbFdvcmtzaGVldFJlYWRlci5jcHAgYi9maWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxX b3Jrc2hlZXRSZWFkZXIuY3BwCitpbmRleCA3ODJhNTkxNDcyOS4uZWRhOGZmYzZiNDcgMTAwNjQ0 CistLS0gYS9maWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxXb3Jrc2hlZXRSZWFkZXIuY3BwCisr KysgYi9maWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxXb3Jrc2hlZXRSZWFkZXIuY3BwCitAQCAt ODcyLDcgKzg3Miw2IEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIFhsc3hYbWxXb3Jrc2hl ZXRSZWFkZXI6OnJlYWRfY29uZGl0aW9uYWxGb3JtYXR0aW5nKCkKKyAgICAgd2hpbGUgKGluZGV4 IDwgbV9jb25kaXRpb25hbEluZGljZXMuc2l6ZSgpKSB7CisgICAgICAgICBRU3RyaW5nIGNvbmRp dGlvbmFsQXJlYTsKKyAgICAgICAgIENvbmRpdGlvbiBleGFtaW5lZENvbmRpdGlvbiA9IG1fY29u ZGl0aW9uYWxJbmRpY2VzLmF0KGluZGV4KTsKKy0gICAgICAgIFFTdHJpbmcgc3FyZWZPcmlnaW5h bCA9IHNxcmVmOworICAgICAgICAgaW50IGFyZWFJbmRleCA9IDA7CisgICAgICAgICBDb25kaXRp b24gcHJldmlvdXNDb25kOworIAorZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc3RhZ2UvcHB0eC9QcHR4 WG1sRG9jdW1lbnRSZWFkZXIuY3BwIGIvZmlsdGVycy9zdGFnZS9wcHR4L1BwdHhYbWxEb2N1bWVu dFJlYWRlci5jcHAKK2luZGV4IDRjZjg2YWVhOGM4Li4xMWI1YWQyNjZiOSAxMDA2NDQKKy0tLSBh L2ZpbHRlcnMvc3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFkZXIuY3BwCisrKysgYi9maWx0 ZXJzL3N0YWdlL3BwdHgvUHB0eFhtbERvY3VtZW50UmVhZGVyLmNwcAorQEAgLTMxNiw3ICszMTYs NyBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBQcHR4WG1sRG9jdW1lbnRSZWFkZXI6OnJl YWRfc2xkSWQoKQorIAorICAgICBRU3RyaW5nIHNsaWRlTWFzdGVyUGF0aCwgc2xpZGVNYXN0ZXJG aWxlOworICAgICBNU09PWE1MOjpVdGlsczo6c3BsaXRQYXRoQW5kRmlsZShtX2NvbnRleHQtPnJl bGF0aW9uc2hpcHMtPnRhcmdldEZvclR5cGUoc2xpZGVQYXRoLCBzbGlkZUZpbGUsIFFMYXRpbjFT dHJpbmcoTVNPT1hNTDo6U2NoZW1hczo6b2ZmaWNlRG9jdW1lbnQ6OnJlbGF0aW9uc2hpcHMpICsg Ii9zbGlkZUxheW91dCIpLCAmc2xpZGVNYXN0ZXJQYXRoLCAmc2xpZGVNYXN0ZXJGaWxlKTsKKy0g ICAgY29uc3QgUVN0cmluZyBzbGlkZU1hc3RlclBhdGhBbmRGaWxlID0gbV9jb250ZXh0LT5yZWxh dGlvbnNoaXBzLT50YXJnZXRGb3JUeXBlKHNsaWRlTWFzdGVyUGF0aCwgc2xpZGVNYXN0ZXJGaWxl LCBRTGF0aW4xU3RyaW5nKE1TT09YTUw6OlNjaGVtYXM6Om9mZmljZURvY3VtZW50OjpyZWxhdGlv bnNoaXBzKSArICIvc2xpZGVNYXN0ZXIiKTsKKysgICAgLy8gY29uc3QgUVN0cmluZyBzbGlkZU1h c3RlclBhdGhBbmRGaWxlID0gbV9jb250ZXh0LT5yZWxhdGlvbnNoaXBzLT50YXJnZXRGb3JUeXBl KHNsaWRlTWFzdGVyUGF0aCwgc2xpZGVNYXN0ZXJGaWxlLCBRTGF0aW4xU3RyaW5nKE1TT09YTUw6 OlNjaGVtYXM6Om9mZmljZURvY3VtZW50OjpyZWxhdGlvbnNoaXBzKSArICIvc2xpZGVNYXN0ZXIi KTsKKyAKKyAgICAgLy8gRGVsYXkgdGhlIHJlYWRpbmcgb2YgYSB0YWJsZVN0eWxlIHVudGlsIHdl IGZpbmQgYSB0YWJsZSBhcyB3ZSBuZWVkIHRoZQorICAgICAvLyBjbHJNYXAgZnJvbSB0aGUgbWFz dGVyIHNsaWRlCitkaWZmIC0tZ2l0IGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3RleHRoYW5k bGVyLmNwcCBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi90ZXh0aGFuZGxlci5jcHAKK2luZGV4 IGUxNjdkODZlMDI4Li44OWVmNjc4OTYxYSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvd29yZHMvbXN3 b3JkLW9kZi90ZXh0aGFuZGxlci5jcHAKKysrKyBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi90 ZXh0aGFuZGxlci5jcHAKK0BAIC00MDgsNiArNDA4LDcgQEAgdm9pZCBXb3Jkc1RleHRIYW5kbGVy Ojpmb290bm90ZUZvdW5kKHd2V2FyZTo6Rm9vdG5vdGVEYXRhIGRhdGEsCisgICAgICAgICB9Cisg ICAgICAgICBjYXNlIG1zb25mY1VDTGV0dGVyOgorICAgICAgICAgICAgIGxldHRlciA9ICdBJzsK KysgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgIGNhc2UgbXNvbmZjTENMZXR0 ZXI6CisgICAgICAgICB7CisgICAgICAgICAgICAgd2hpbGUgKG5vdGVOdW1iZXIgLyAyNSA+IDAp IHsKK0BAIC0xMDY0LDYgKzEwNjUsNyBAQCB2b2lkIFdvcmRzVGV4dEhhbmRsZXI6OmZpZWxkU3Rh cnQoY29uc3Qgd3ZXYXJlOjpGTEQqIGZsZCwgd3ZXYXJlOjpTaGFyZWRQdHI8Y29ucworICAgICAg ICAgYnJlYWs7CisgICAgIGNhc2UgVU5TVVBQT1JURUQ6CisgICAgICAgICB3YXJuTXNEb2MgPDwg Ildhcm5pbmc6IEZsZCBkYXRhIG1pc3NpbmcsIGlnbm9yaW5nISI7CisrICAgICAgICAvLyBmYWxs IHRocm91Z2gKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIHdhcm5Nc0RvYyA8PCAiV2FybmluZzog dW5yZWNvZ25pemVkIGZpZWxkIHR5cGUsIGlnbm9yaW5nISI7CisgICAgICAgICBtX2ZsZC0+bV90 eXBlID0gVU5TVVBQT1JURUQ7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2Rm L3d2Mi9zcmMvcGFyc2VyOXguY3BwIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMv cGFyc2VyOXguY3BwCitpbmRleCA5YTZkMTYwNmNlOS4uZTVkN2QxNDY5MWMgMTAwNjQ0CistLS0g YS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAKKysrKyBiL2Zp bHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3BhcnNlcjl4LmNwcAorQEAgLTU4MSw3ICs1 ODEsOCBAQCB2b2lkIFBhcnNlcjl4Ojpwcm9jZXNzUGllY2UoIFN0cmluZyogc3RyaW5nLCBVMzIg ZmMsIFUzMiBsaW1pdCwgY29uc3QgUG9zaXRpb24mCisgICAgICAgICAvLyBzYW1lIEFTQ0lJIGNv ZGUgYXMgVFRQX01BUksgKDB4MDAwNyksIE5PVEU6IHRhYmxlIGRlcHRoID09IDEKKyAgICAgICAg IGNhc2UgQ0VMTF9NQVJLOgorICAgICAgICAgICAgIG1fY2VsbE1hcmtGb3VuZCA9IHRydWU7Cist ICAgICAgICAgICAgLy8gRmFsbC10aHJvdWdoIGludGVuZGVkLiBBIHJvdy9jZWxsIGVuZCBpcyBh bHNvIGEgcGFyYWdyYXBoIGVuZC4KKysgICAgICAgICAgICAvLyBBIHJvdy9jZWxsIGVuZCBpcyBh bHNvIGEgcGFyYWdyYXBoIGVuZC4KKysgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAg ICAgIGNhc2UgUEFSQUdSQVBIX01BUks6CisgICAgICAgICB7CisgICAgICAgICAgICAgLy8gTm8g ImluZGV4IC0gc3RhcnQgKyAxIiBoZXJlLCBhcyB3ZSBkb24ndCB3YW50IHRvIGNvcHkgdGhlCitA QCAtMTA2NCw2ICsxMDY1LDcgQEAgdm9pZCBQYXJzZXI5eDo6ZW1pdFNwZWNpYWxDaGFyYWN0ZXIo IFVDaGFyIGNoYXJhY3RlciwgVTMyIGdsb2JhbENQLCBTaGFyZWRQdHI8Y28KKyAgICAgICAgICAg ICBpZiAobV9zdWJEb2N1bWVudCA9PSBNYWluKSB7CisgICAgICAgICAgICAgICAgIGVtaXRBbm5v dGF0aW9uKCBVU3RyaW5nKGNoYXJhY3RlciksIGdsb2JhbENQLCBjaHAgKTsKKyAgICAgICAgICAg ICB9CisrICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAgIGNhc2UgVGV4dEhhbmRs ZXI6OkZpZWxkRXNjYXBlQ2hhcjoKKyAgICAgICAgIHd2bG9nIDw8ICJGb3VuZCBhbiBlc2NhcGUg Y2hhcmFjdGVyICsrKysrKysrKysrKysrKysrKysrPyIgPDwgZW5kbDsKK2RpZmYgLS1naXQgYS9m aWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3BwIGIvZmlsdGVycy93b3Jk cy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmNwcAoraW5kZXggZjQ3YzNkZDhkNTEuLmQyYzk2 ZTNkOTJiIDEwMDY0NAorLS0tIGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5 bGVzLmNwcAorKysrIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmNw cAorQEAgLTQyLDcgKzQyLDYgQEAgU1REOjpTVEQoKQorIH0KKyAKKyBTVEQ6OlNURCggVTE2IGJh c2VTaXplLCBVMTYgdG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVz ZXJ2ZVBvcyApCistdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbikKKyB7CisgICAgIGNsZWFy SW50ZXJuYWwoKTsKKyAgICAgaWYgKCFyZWFkKCBiYXNlU2l6ZSwgdG90YWxTaXplLCBzdHJlYW0s IHByZXNlcnZlUG9zICkpIHsKK0BAIC0xMTIsNyArMTExLDYgQEAgU1REJiBTVEQ6Om9wZXJhdG9y PSggY29uc3QgU1REJiByaHMgKQorIH0KKyAKKyBib29sIFNURDo6cmVhZCggY29uc3QgVTE2IGNi U3RkLCBjb25zdCBVMTYgc3RkZlNpemUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFtLCBib29sIHBy ZXNlcnZlUG9zICkKKy10aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKQorIHsKKyAgICAgVTE2 IHNoaWZ0ZXJVMTY7CisgICAgIFMzMiBzdGFydE9mZnNldD1zdHJlYW0tPnRlbGwoKTsgIC8vIGFk ZHJlc3Mgd2hlcmUgdGhlIFNURCBzdGFydHMKK0BAIC05MzgsNyArOTM2LDcgQEAgdm9pZCBTdHls ZTo6bWVyZ2VVcGVjaHB4KCBjb25zdCBTdHlsZSogcGFyZW50U3R5bGUsIFdvcmRWZXJzaW9uIHZl cnNpb24gKQorIH0KKyAKKyAKKy1TdHlsZVNoZWV0OjpTdHlsZVNoZWV0KCBPTEVTdHJlYW1SZWFk ZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hmICkgdGhyb3coSW52YWxp ZEZvcm1hdEV4Y2VwdGlvbikKKytTdHlsZVNoZWV0OjpTdHlsZVNoZWV0KCBPTEVTdHJlYW1SZWFk ZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hmICkKKyAgICAgOiBtX3Vk c051bSgwKQorIHsKKyAgICAgV29yZFZlcnNpb24gdmVyc2lvbiA9IFdvcmQ4OworZGlmZiAtLWdp dCBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5oIGIvZmlsdGVycy93 b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmgKK2luZGV4IGJhMDJkZWY2ODQ1Li40MWM4 Mjc4ZGQyMSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0 eWxlcy5oCisrKysgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuaAor QEAgLTU4LDggKzU4LDkgQEAgc3RydWN0IFNURAorICAgICBTVEQoKTsKKyAgICAgLyoqCisgICAg ICAqIFNpbXBseSBjYWxscyByZWFkKC4uLikKKysgICAgICogQHRocm93IEludmFsaWRGb3JtYXRF eGNlcHRpb24KKyAgICAgICovCistICAgIFNURCggVTE2IHN0ZGZTaXplLCBVMTYgdG90YWxTaXpl LCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVzZXJ2ZVBvcyA9IGZhbHNlICkgdGhy b3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbik7CisrICAgIFNURCggVTE2IHN0ZGZTaXplLCBVMTYg dG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVzZXJ2ZVBvcyA9IGZh bHNlICk7CisgICAgIC8qKgorICAgICAgKiBBdHRlbnRpb246IFRoaXMgc3RydWN0IGFsbG9jYXRl cyBtZW1vcnkgb24gdGhlIGhlYXAKKyAgICAgICovCitAQCAtNzQsOCArNzUsOSBAQCBzdHJ1Y3Qg U1RECisgICAgICAqIGZhbHNlIHRoZSBzdGF0ZSBvZiBzdHJlYW0gd2lsbCBiZSBjaGFuZ2VkIQor ICAgICAgKgorICAgICAgKiBAcmV0dXJuIHRydWUgLSBzdWNjZXNzLCBmYWxzZSAtIGZhaWxlZAor KyAgICAgKiBAdGhyb3cgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbgorICAgICAgKi8KKy0gICAgYm9v bCByZWFkKCBjb25zdCBVMTYgY2JTdGQsIGNvbnN0IFUxNiBzdGRmU2l6ZSwgT0xFU3RyZWFtUmVh ZGVyKiBzdHJlYW0sIGJvb2wgcHJlc2VydmVQb3MgPSBmYWxzZSApIHRocm93KEludmFsaWRGb3Jt YXRFeGNlcHRpb24pOworKyAgICBib29sIHJlYWQoIGNvbnN0IFUxNiBjYlN0ZCwgY29uc3QgVTE2 IHN0ZGZTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVzZXJ2ZVBvcyA9IGZh bHNlICk7CisgCisgICAgIC8qKgorICAgICAgKiBTYW1lIGFzIHJlYWRpbmcgOikKK0BAIC0zNjUs NyArMzY3LDEwIEBAIGNsYXNzIFdWMl9FWFBPUlQgU3R5bGUKKyBjbGFzcyBXVjJfRVhQT1JUIFN0 eWxlU2hlZXQKKyB7CisgcHVibGljOgorLSAgICBTdHlsZVNoZWV0KCBPTEVTdHJlYW1SZWFkZXIq IHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hmICkgdGhyb3coSW52YWxpZEZv cm1hdEV4Y2VwdGlvbik7CisrICAgIC8qKgorKyAgICAgKiBAdGhyb3cgSW52YWxpZEZvcm1hdEV4 Y2VwdGlvbgorKyAgICAgKi8KKysgICAgU3R5bGVTaGVldCggT0xFU3RyZWFtUmVhZGVyKiB0YWJs ZVN0cmVhbSwgVTMyIGZjU3RzaGYsIFUzMiBsY2JTdHNoZiApOworICAgICB+U3R5bGVTaGVldCgp OworIAorICAgICAvKioKK2RpZmYgLS1naXQgYS9nZW1pbmkvbGliL0dlbWluaU1haW5XaW5kb3cu Y3BwIGIvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcAoraW5kZXggM2QwNWY2NDYxZTAu LmViNWYxMjBjMGY3IDEwMDY0NAorLS0tIGEvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNw cAorKysrIGIvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcAorQEAgLTEzNiw4ICsxMzYs MTAgQEAgdm9pZCBHZW1pbmlNYWluV2luZG93OjpzZXRGdWxsU2NyZWVuKGJvb2wgbmV3U3RhdGUp CisgfQorIAorIAorKworIHZvaWQgR2VtaW5pTWFpbldpbmRvdzo6Y2hhbmdlU3RhdGUoR2VtaW5p TWFpbldpbmRvdzo6R2VtaW5pU3RhdGUgbmV3U3RhdGUsIGJvb2wgbG9ja05ld1N0YXRlKQorIHsK KysgICAgUV9VTlVTRUQobG9ja05ld1N0YXRlKTsKKyAgICAgZC0+c3luY09iamVjdCA9IG5ldyBH ZW1pbmlNb2RlU3luY2hyb25pc2F0aW9uT2JqZWN0OworIAorICAgICBpZihjZW50cmFsV2lkZ2V0 KCkpIHsKK2RpZmYgLS1naXQgYS9saWJzL3BhZ2VhcHAvS29QQU9kZlBhZ2VTYXZlSGVscGVyLmNw cCBiL2xpYnMvcGFnZWFwcC9Lb1BBT2RmUGFnZVNhdmVIZWxwZXIuY3BwCitpbmRleCA5MmM2ZGZk NGNiNC4uMDY4NTAxYzhhZjEgMTAwNjQ0CistLS0gYS9saWJzL3BhZ2VhcHAvS29QQU9kZlBhZ2VT YXZlSGVscGVyLmNwcAorKysrIGIvbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdlU2F2ZUhlbHBlci5j cHAKK0BAIC00OSw3ICs0OSw3IEBAIEtvUEFPZGZQYWdlU2F2ZUhlbHBlcjo6S29QQU9kZlBhZ2VT YXZlSGVscGVyKCBLb1BBRG9jdW1lbnQgKiBkb2MsIFFMaXN0PEtvUEFQYWdlCisgICAgICAgICAg ICAgS29QQVBhZ2UgKiBwID0gc3RhdGljX2Nhc3Q8S29QQVBhZ2UgKj4oIHBhZ2UgKTsKKyAgICAg ICAgICAgICBtYXN0ZXJQYWdlcy5pbnNlcnQoIHAtPm1hc3RlclBhZ2UoKSApOworICAgICAgICAg fQorLSAgICAgICAgbV9tYXN0ZXJQYWdlcyA9IG1hc3RlclBhZ2VzLnRvTGlzdCgpOworKyAgICAg ICAgbV9tYXN0ZXJQYWdlcyA9IG1hc3RlclBhZ2VzLnZhbHVlcygpOworICAgICB9CisgfQorIAor ZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JEZXZpY2Uu aCBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JEZXZpY2UuaAoraW5kZXgg YjkwNTZhYzk4YzEuLmVjZDY5NmU0MTVmIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9zcGFjZW5hdmln YXRvci9TcGFjZU5hdmlnYXRvckRldmljZS5oCisrKysgYi9wbHVnaW5zL3NwYWNlbmF2aWdhdG9y L1NwYWNlTmF2aWdhdG9yRGV2aWNlLmgKK0BAIC0zMSwxMCArMzEsOCBAQCBjbGFzcyBTcGFjZU5h dmlnYXRvckRldmljZSA6IHB1YmxpYyBLb0lucHV0RGV2aWNlSGFuZGxlcgorICAgICBleHBsaWNp dCBTcGFjZU5hdmlnYXRvckRldmljZShRT2JqZWN0ICpwYXJlbnQpOworICAgICB2aXJ0dWFsIH5T cGFjZU5hdmlnYXRvckRldmljZSgpOworIAorLSAgICAvLy8gcmVpbXBsZW1lbnRlZCBmcm9tIEtv SW5wdXREZXZpY2VIYW5kbGVyCistICAgIHZpcnR1YWwgYm9vbCBzdGFydCgpOworLSAgICAvLy8g cmVpbXBsZW1lbnRlZCBmcm9tIEtvSW5wdXREZXZpY2VIYW5kbGVyCistICAgIHZpcnR1YWwgYm9v bCBzdG9wKCk7CisrICAgIHZpcnR1YWwgYm9vbCBzdGFydCgpIG92ZXJyaWRlOworKyAgICB2aXJ0 dWFsIGJvb2wgc3RvcCgpIG92ZXJyaWRlOworIHByaXZhdGUgUV9TTE9UUzoKKyAgICAgdm9pZCBz bG90TW92ZUV2ZW50KCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgcngsIGludCByeSwgaW50IHJ6 LCBRdDo6TW91c2VCdXR0b25zICk7CisgICAgIHZvaWQgc2xvdEJ1dHRvbkV2ZW50KCBpbnQgeCwg aW50IHksIGludCB6LCBpbnQgcngsIGludCByeSwgaW50IHJ6LCBRdDo6TW91c2VCdXR0b25zLCBR dDo6TW91c2VCdXR0b24sIGludCB0eXBlICk7CitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zcGFjZW5h dmlnYXRvci9TcGFjZU5hdmlnYXRvckV2ZW50LmggYi9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1Nw YWNlTmF2aWdhdG9yRXZlbnQuaAoraW5kZXggNzM3NTFlYzg4ZmYuLjc2ZWU4ZTJmODgwIDEwMDY0 NAorLS0tIGEvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckV2ZW50LmgKKysr KyBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JFdmVudC5oCitAQCAtMzMs NyArMzMsNyBAQCBjbGFzcyBTcGFjZU5hdmlnYXRvckV2ZW50IDogcHVibGljIEtvSW5wdXREZXZp Y2VIYW5kbGVyRXZlbnQKKyAgICAgdm9pZCBzZXRQb3NpdGlvbiggaW50IHgsIGludCB5LCBpbnQg eiApOworICAgICB2b2lkIHNldFJvdGF0aW9uKCBpbnQgcngsIGludCByeSwgaW50IHJ6ICk7Cisg CistICAgIHZpcnR1YWwgS29Qb2ludGVyRXZlbnQgKiBwb2ludGVyRXZlbnQoKTsKKysgICAgdmly dHVhbCBLb1BvaW50ZXJFdmVudCAqIHBvaW50ZXJFdmVudCgpIG92ZXJyaWRlOworIAorIHByaXZh dGU6CisgICAgIGludCBtX3gsIG1feSwgbV96OworZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3BhY2Vu YXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmggYi9wbHVnaW5zL3NwYWNlbmF2 aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCitpbmRleCA2MmM0ZGU4YWI3My4u NjdkNTkxNzcwMjEgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2 aWdhdG9yUG9sbGluZ1RocmVhZC5oCisrKysgYi9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNl TmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCitAQCAtMzksOCArMzksNyBAQCBjbGFzcyBTcGFjZU5h dmlnYXRvclBvbGxpbmdUaHJlYWQgOiBwdWJsaWMgUVRocmVhZAorIAorIHByb3RlY3RlZDoKKyAK Ky0gICAgLy8vIHJlaW1wbGVtZW50ZWQgZnJvbSBRVGhyZWFkCistICAgIHZpcnR1YWwgdm9pZCBy dW4oKTsKKysgICAgdmlydHVhbCB2b2lkIHJ1bigpIG92ZXJyaWRlOworIAorIHByaXZhdGU6Cisg ICAgIGJvb2wgbV9zdG9wcGVkOworZGlmZiAtLWdpdCBhL3BsdWdpbnMvdmVjdG9yc2hhcGUvVmVj dG9yU2hhcGUuY3BwIGIvcGx1Z2lucy92ZWN0b3JzaGFwZS9WZWN0b3JTaGFwZS5jcHAKK2luZGV4 IGEyNWFiM2ZjNTYxLi45YWNiZDI1MWM5NCAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvdmVjdG9yc2hh cGUvVmVjdG9yU2hhcGUuY3BwCisrKysgYi9wbHVnaW5zL3ZlY3RvcnNoYXBlL1ZlY3RvclNoYXBl LmNwcAorQEAgLTI5NCw2ICsyOTQsNyBAQCB2b2lkIFZlY3RvclNoYXBlOjpzYXZlT2RmKEtvU2hh cGVTYXZpbmdDb250ZXh0ICYgY29udGV4dCkgY29uc3QKKyAgICAgICAgIGJyZWFrOworICAgICBj YXNlIFZlY3RvclR5cGVTdmc6CisgICAgICAgICBtaW1lVHlwZSA9ICJpbWFnZS9zdmcreG1sIjsK KysgICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0OgorICAgICAgICAgLy8gRklYTUU6IFdoYXQg aGVyZT8KKyAgICAgICAgIG1pbWVUeXBlID0gImFwcGxpY2F0aW9uL3gtd2hhdCI7CitkaWZmIC0t Z2l0IGEvc2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAgYi9zaGVldHMvZnVuY3Rpb25zL2Rh dGV0aW1lLmNwcAoraW5kZXggOWY1OWZlMmNmNzUuLjYxNTdiMDk5NmMxIDEwMDY0NAorLS0tIGEv c2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAKKysrKyBiL3NoZWV0cy9mdW5jdGlvbnMvZGF0 ZXRpbWUuY3BwCitAQCAtNTk3LDYgKzU5Nyw3IEBAIFZhbHVlIGZ1bmNfY3VycmVudERhdGUodmFs VmVjdG9yLCBWYWx1ZUNhbGMgKiBjYWxjLCBGdW5jRXh0cmEgKikKKyAvLyBGdW5jdGlvbjogQ1VS UkVOVFRJTUUKKyBWYWx1ZSBmdW5jX2N1cnJlbnRUaW1lKHZhbFZlY3RvciwgVmFsdWVDYWxjICog Y2FsYywgRnVuY0V4dHJhICopCisgeworKyAgICBRX1VOVVNFRChjYWxjKTsKKyAgICAgcmV0dXJu IFZhbHVlKFFUaW1lOjpjdXJyZW50VGltZSgpKTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvc2hlZXRz L3BhcnQvRGlnZXN0LmNwcCBiL3NoZWV0cy9wYXJ0L0RpZ2VzdC5jcHAKK2luZGV4IDhjZDk3MmRi OTg5Li5lOTI0NmNlNmU3ZCAxMDA2NDQKKy0tLSBhL3NoZWV0cy9wYXJ0L0RpZ2VzdC5jcHAKKysr KyBiL3NoZWV0cy9wYXJ0L0RpZ2VzdC5jcHAKK0BAIC01OTYsMTAgKzU5NiwxMCBAQCBzdGF0aWMg dm9pZCBfX3J0bF9kaWdlc3RfZW5kU0hBKERpZ2VzdENvbnRleHRTSEEgKmN0eCkKKyAgICAgfQor IAorICAgICBzd2l0Y2ggKGN0eC0+bV9uRGF0TGVuICYgMHgwMykgeworLSAgICBjYXNlIDA6IFhb aV0gID0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAgMEw7CistICAgIGNhc2UgMTogWFtpXSB8 PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICA4TDsKKy0gICAgY2FzZSAyOiBYW2ldIHw9ICgo c2FsX3VJbnQzMikoKihwKyspKSkgPDwgMTZMOworLSAgICBjYXNlIDM6IFhbaV0gfD0gKChzYWxf dUludDMyKSgqKHArKykpKSA8PCAyNEw7CisrICAgIGNhc2UgMDogWFtpXSAgPSAoKHNhbF91SW50 MzIpKCoocCsrKSkpIDw8ICAwTDsgLyogZmFsbCB0aHJvdWdoICovCisrICAgIGNhc2UgMTogWFtp XSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICA4TDsgLyogZmFsbCB0aHJvdWdoICovCisr ICAgIGNhc2UgMjogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8IDE2TDsgLyogZmFs bCB0aHJvdWdoICovCisrICAgIGNhc2UgMzogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkp IDw8IDI0TDsgLyogZmFsbCB0aHJvdWdoICovCisgICAgIH0KKyAKKyAgICAgX19ydGxfZGlnZXN0 X3N3YXBMb25nKFgsIGkgKyAxKTsKK2RpZmYgLS1naXQgYS9zaGVldHMvc2hhcGUvVGFibGVUb29s RmFjdG9yeS5oIGIvc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3RvcnkuaAoraW5kZXggNjc5YmZl MTRiOGUuLjk0MTJkOGZmZGM1IDEwMDY0NAorLS0tIGEvc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZh Y3RvcnkuaAorKysrIGIvc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3RvcnkuaAorQEAgLTM0LDcg KzM0LDcgQEAgY2xhc3MgVGFibGVUb29sRmFjdG9yeSA6IHB1YmxpYyBLb1Rvb2xGYWN0b3J5QmFz ZQorICAgICBUYWJsZVRvb2xGYWN0b3J5KCk7CisgICAgIH5UYWJsZVRvb2xGYWN0b3J5KCk7Cisg CistICAgIEtvVG9vbEJhc2UqIGNyZWF0ZVRvb2woS29DYW52YXNCYXNlKiBjYW52YXMpOworKyAg ICBLb1Rvb2xCYXNlKiBjcmVhdGVUb29sKEtvQ2FudmFzQmFzZSogY2FudmFzKSBvdmVycmlkZTsK KyB9OworIAorIH0gLy8gbmFtZXNwYWNlIFNoZWV0cworZGlmZiAtLWdpdCBhL3NoZWV0cy90ZXN0 cy9UZXN0U29ydC5jcHAgYi9zaGVldHMvdGVzdHMvVGVzdFNvcnQuY3BwCitpbmRleCBiM2YxZTM1 MTY5ZC4uNjM1NGQ3OWFiYzUgMTAwNjQ0CistLS0gYS9zaGVldHMvdGVzdHMvVGVzdFNvcnQuY3Bw CisrKysgYi9zaGVldHMvdGVzdHMvVGVzdFNvcnQuY3BwCitAQCAtNjgsNyArNjgsNyBAQCB2b2lk IFRlc3RTb3J0OjpBc2NlbmRpbmdPcmRlcigpCisgICAgIGNvbW1hbmQtPnNldFNoZWV0KHNoZWV0 KTsKKyAKKyAgICAgLy8gUGFyYW1ldGVycy4KKy0gICAgY29tbWFuZC0+c2V0U29ydFJvd3MoUXQ6 OlZlcnRpY2FsKTsKKysgICAgY29tbWFuZC0+c2V0U29ydFJvd3ModHJ1ZSk7CisgICAgIGNvbW1h bmQtPnNldFNraXBGaXJzdChmYWxzZSk7CisgICAgIGNvbW1hbmQtPnNldENvcHlGb3JtYXQoZmFs c2UpOworIAorQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFRlc3RTb3J0OjpEZXNjZW5kaW5nT3Jk ZXIoKQorICAgICBjb21tYW5kLT5zZXRTaGVldChzaGVldCk7CisgCisgICAgIC8vIFBhcmFtZXRl cnMuCistICAgIGNvbW1hbmQtPnNldFNvcnRSb3dzKFF0OjpWZXJ0aWNhbCk7CisrICAgIGNvbW1h bmQtPnNldFNvcnRSb3dzKHRydWUpOworICAgICBjb21tYW5kLT5zZXRTa2lwRmlyc3QoZmFsc2Up OworICAgICBjb21tYW5kLT5zZXRDb3B5Rm9ybWF0KGZhbHNlKTsKKyAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Utc2hvdy1oaWRkZW4tcm93LXMtd29yay5w YXRjaCBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Utc2hvdy1oaWRkZW4tcm93 LXMtd29yay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ0 YjA4MmI5YTBmMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8w MDAyLU1ha2Utc2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaApAQCAtMCwwICsxLDI5IEBACitG cm9tIDIyZTAyOTk4ZGVjOGFmMTVhMjViN2U4ZTNkNTNjMTc0ODEwY2MzYmUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBEYWcgQW5kZXJzZW4gPGRhbmRlcnNAZ2V0Mm5ldC5kaz4KK0Rh dGU6IFRodSwgMTEgSnVuIDIwMjAgMTA6NDM6MzggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gTWFr ZSBzaG93IGhpZGRlbiByb3cocykgd29yaworCitDaGVjayBmb3IgaGlkZGVuIHJvd3Mgd2FzIGlu dmVydGVkIHRvIGNoZWNrIGZvciBzaG93biByb3dzLAoraGVuY2UgaGlkZGVuIHJvd3Mgd291bGQg bmV2ZXIgYmUgdW5oaWRkZW4uCisKK0JVRzozMzg4MTYKK0JVRzozNTQyMzYKK0ZJWEVELUlOOjMu Mi4yCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyODkyMGM1MGU2MzAwZDY0MzQ3N2YyNTZh YmE5MWM4YzUxODM2NjgyKQorLS0tCisgc2hlZXRzL2NvbW1hbmRzL1Jvd0NvbHVtbk1hbmlwdWxh dG9ycy5jcHAgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zaGVldHMvY29tbWFuZHMvUm93Q29sdW1uTWFuaXB1bGF0 b3JzLmNwcCBiL3NoZWV0cy9jb21tYW5kcy9Sb3dDb2x1bW5NYW5pcHVsYXRvcnMuY3BwCitpbmRl eCA5NTI4MmQ2ZTMxYi4uMjVlOGM0NTRlMjcgMTAwNjQ0CistLS0gYS9zaGVldHMvY29tbWFuZHMv Um93Q29sdW1uTWFuaXB1bGF0b3JzLmNwcAorKysrIGIvc2hlZXRzL2NvbW1hbmRzL1Jvd0NvbHVt bk1hbmlwdWxhdG9ycy5jcHAKK0BAIC0xOTIsNyArMTkyLDcgQEAgYm9vbCBIaWRlU2hvd01hbmlw dWxhdG9yOjpwcmVQcm9jZXNzaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICBmb3IgKGludCByb3cgPSByYW5nZS50b3AoKTsg cm93IDw9IHJhbmdlLmJvdHRvbSgpOyArK3JvdykgeworLSAgICAgICAgICAgICAgICAgICAgaWYg KCFtX3NoZWV0LT5yb3dGb3JtYXRzKCktPmlzSGlkZGVuKHJvdykpIHsKKysgICAgICAgICAgICAg ICAgICAgIGlmIChtX3NoZWV0LT5yb3dGb3JtYXRzKCktPmlzSGlkZGVuKHJvdykpIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICByZWdpb24uYWRkKFFSZWN0KDEsIHJvdywgS1NfY29sTWF4LCAx KSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaCBiL3NyY3BrZ3MvY2FsbGln cmEvcGF0Y2hlcy9jKysxNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjFkYjgzODUxNjFhMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2FsbGlncmEv cGF0Y2hlcy9jKysxNy5wYXRjaApAQCAtMCwwICsxLDE2IEBACitkaWZmIC1OYXVyIENNYWtlTGlz dHMudHh0Lm9yaWcgQ01ha2VMaXN0cy50eHQKKy0tLSBhL0NNYWtlTGlzdHMudHh0Lm9yaWcKKysr KyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMTA2LDkgKzEwNiw5IEBACisgCisgIyB1c2UgQ1BQLTEx CisgaWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9MRVNTICIzLjEiKQorLSAgICBzZXQgKENNQUtF X0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9YysrMTEiKQorKyAgICBzZXQgKENN QUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9YysrMTciKQorIGVsc2UgKCkK Ky0gICAgc2V0IChDTUFLRV9DWFhfU1RBTkRBUkQgMTEpCisrICAgIHNldCAoQ01BS0VfQ1hYX1NU QU5EQVJEIDE3KQorIGVuZGlmICgpCisgCisgIyMjIyMjIyMjIyMjCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoIGIvc3JjcGtn cy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43ZGFiNTNiY2ZjN2YKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApA QCAtMCwwICsxLDcwIEBACitGcm9tIDIzNmJhY2JlMTM3Mzk0MTRlOTE5ZGU4NjgyODNiMGNhZjJk ZjVkOGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGJlcnQgQXN0YWxzIENpZCA8 YWFjaWRAa2RlLm9yZz4KK0RhdGU6IFdlZCwgMTMgQXByIDIwMjIgMDE6MjU6NDQgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSF0gUGRmSW1wb3J0OiBGaXggY29tcGlsZSB3aXRoIG5ld2VyIHBvcHBsZXIK KworQnJpbmdzIGEgZGVwZW5kZW5jeSBvbiBwb3BwbGVyLXF0NSB0byBiZSBhYmxlIHRvIGluY2x1 ZGUgdGhlIHZlcnNpb24KK2hlYWRlciwgaG9uZXN0bHkgaXQncyBub3Qgc3RyaWN0bHkgbmVlZGVk LCBvbmUgY291bGQgZG8gYQorY2hlY2tfY3h4X3NvdXJjZV9jb21waWxlcywgYnV0IEkgZG9uJ3Qg Y2FyZSBhYm91dCBDYWxsaWdyYSBlbm91Z2ggdG8KK3NwZW5kIG1vcmUgdGltZSBtYWtpbmcgaXQg Y29tcGlsZSB3aGlsZSBpdCdzIHVzaW5nIHBvcHBsZXIgdGhlIHdyb25nCit3YXkuCistLS0KKyBD TWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgfCAxICsKKyBmaWx0ZXJzL2thcmJvbi9w ZGYvQ01ha2VMaXN0cy50eHQgfCAyICstCisgZmlsdGVycy9rYXJib24vcGRmL1BkZkltcG9ydC5j cHAgIHwgOSArKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50 eHQKK2luZGV4IDUxZjFkNjViOGU2Li4wNmJiYWQ1YzI0YyAxMDA2NDQKKy0tLSBhL0NNYWtlTGlz dHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTk1Miw2ICs5NTIsNyBAQCBjYWxsaWdy YV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVSX1dQR19UT19PREcKKyBjYWxs aWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVSX1BERl9UT19TVkcKKyAg ICAgTk9UX1dJTiAibm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzIgorICAgICBQb3BwbGVyWFBERkhl YWRlcnNfRk9VTkQgInBvcHBsZXIgeHBkZiBoZWFkZXJzIG5vdCBmb3VuZCIKKysgICAgUG9wcGxl cl9GT1VORCAicG9wcGxlciBxdDUgaGVhZGVycyBub3QgZm91bmQiCisgICAgICkKKyAKKyBjYWxs aWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVSX0hUTUxfVE9fT0RTCitk aWZmIC0tZ2l0IGEvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0IGIvZmlsdGVycy9r YXJib24vcGRmL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ZmRkZjFhZDc1Ny4uYjcxYzkyY2JmMDQg MTAwNjQ0CistLS0gYS9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQKKysrKyBiL2Zp bHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAorQEAgLTMsNyArMyw3IEBAIHNldChwZGYy c3ZnX1BBUlRfU1JDUyBQZGZJbXBvcnREZWJ1Zy5jcHAgUGRmSW1wb3J0LmNwcCBTdmdPdXRwdXRE ZXYuY3BwICkKKyBhZGRfbGlicmFyeShjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBNT0RVTEUgJHtw ZGYyc3ZnX1BBUlRfU1JDU30pCisgY2FsbGlncmFfZmlsdGVyX2Rlc2t0b3BfdG9fanNvbihjYWxs aWdyYV9maWx0ZXJfcGRmMnN2ZyBjYWxsaWdyYV9maWx0ZXJfcGRmMnN2Zy5kZXNrdG9wKQorIAor LXRhcmdldF9saW5rX2xpYnJhcmllcyhjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBrb21haW4gUG9w cGxlcjo6Q29yZSkKKyt0YXJnZXRfbGlua19saWJyYXJpZXMoY2FsbGlncmFfZmlsdGVyX3BkZjJz dmcga29tYWluIFBvcHBsZXI6OkNvcmUgUG9wcGxlcjo6UXQ1KQorIAorIGluc3RhbGwoVEFSR0VU UyBjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBERVNUSU5BVElPTiAke1BMVUdJTl9JTlNUQUxMX0RJ Un0vY2FsbGlncmEvZm9ybWF0ZmlsdGVycykKKyAKK2RpZmYgLS1naXQgYS9maWx0ZXJzL2thcmJv bi9wZGYvUGRmSW1wb3J0LmNwcCBiL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGZJbXBvcnQuY3BwCitp bmRleCBhYmJlNjgxYjRlOC4uZTk3OTc0ZmMxMzMgMTAwNjQ0CistLS0gYS9maWx0ZXJzL2thcmJv bi9wZGYvUGRmSW1wb3J0LmNwcAorKysrIGIvZmlsdGVycy9rYXJib24vcGRmL1BkZkltcG9ydC5j cHAKK0BAIC0xNyw2ICsxNywxMCBAQAorIAorICNpbmNsdWRlIDxrcGx1Z2luZmFjdG9yeS5oPgor IAorKyNpbmNsdWRlIDxwb3BwbGVyLXZlcnNpb24uaD4KKysKKysjZGVmaW5lIFBPUFBMRVJfVkVS U0lPTl9NQUNSTyAoKFBPUFBMRVJfVkVSU0lPTl9NQUpPUiA8PCAxNikgfCAoUE9QUExFUl9WRVJT SU9OX01JTk9SIDw8IDgpIHwgKFBPUFBMRVJfVkVSU0lPTl9NSUNSTykpCisrCisgLy8gRG9uJ3Qg c2hvdyB0aGlzIHdhcm5pbmc6IGl0J3MgYW4gaXNzdWUgaW4gcG9wcGxlcgorICNpZmRlZiBfX0dO VUNfXworICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVy IgorQEAgLTU0LDggKzU4LDEzIEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIFBkZkltcG9y dDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdCBRQnl0CisgICAgIGlmICgh IGdsb2JhbFBhcmFtcykKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6Tm90SW1wbGVtZW50ZWQ7 CisgCisrI2lmIFBPUFBMRVJfVkVSU0lPTl9NQUNSTyA8IFFUX1ZFUlNJT05fQ0hFQ0soMjIsIDAz LCAwKQorICAgICBHb29TdHJpbmcgKiBmbmFtZSA9IG5ldyBHb29TdHJpbmcoUUZpbGU6OmVuY29k ZU5hbWUobV9jaGFpbi0+aW5wdXRGaWxlKCkpLmRhdGEoKSk7CisgICAgIFBERkRvYyAqIHBkZkRv YyA9IG5ldyBQREZEb2MoZm5hbWUsIDAsIDAsIDApOworKyNlbHNlCisrICAgIHN0ZDo6dW5pcXVl X3B0cjxHb29TdHJpbmc+IGZuYW1lID0gc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KFFGaWxl OjplbmNvZGVOYW1lKG1fY2hhaW4tPmlucHV0RmlsZSgpKS5kYXRhKCkpOworKyAgICBQREZEb2Mg KiBwZGZEb2MgPSBuZXcgUERGRG9jKHN0ZDo6bW92ZShmbmFtZSkpOworKyNlbmRpZgorICAgICBp ZiAoISBwZGZEb2MpIHsKKyAgICAgICAgIGdsb2JhbFBhcmFtcy5yZXNldCgpOworICAgICAgICAg cmV0dXJuIEtvRmlsdGVyOjpTdHVwaWRFcnJvcjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGln cmEvdGVtcGxhdGUgYi9zcmNwa2dzL2NhbGxpZ3JhL3RlbXBsYXRlCmluZGV4IDg5ZDBiMTY0OGU5 ZS4uN2MxNDExYmYzZGE2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NhbGxpZ3JhL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvY2FsbGlncmEvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdjYWxsaWdyYScKIHBrZ25hbWU9Y2FsbGlncmEKIHZlcnNpb249My4yLjEKLXJl dmlzaW9uPTYKK3JldmlzaW9uPTcKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0i LVduby1kZXYgLURDQUxMSUdSQV9TSE9VTERfQlVJTERfVU5NQUlOVEFJTkVEPU9OCiAgLURCVUlM RF9URVNUSU5HPU9GRiIKCkZyb20gZmM2NjE2Yjk4NDM5NzI4MDE4MzRlYTEzYzE4YmJmOThkNGJh ODExNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8MzE5MTYzNzkrT3Jl bzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IEZyaSwgMjUgTWFyIDIwMjIgMTg6 MzQ6MDcgLTA3MDAKU3ViamVjdDogW1BBVENIIDUvOF0gaW5rc2NhcGU6IHJlYnVpbGQgYWdhaW5z dCBsaWJwb3BwbGVyIDIyLjA0LjAKCi0tLQogLi4uaWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMt YW5kLWxhdGVyLnBhdGNoIHwgNTAgKysrKysrKysrKysrKysrKysrKwogLi4uL0ZpeC1idWlsZC13 aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaCAgICAgIHwgMjkgKysrKysrKysrKysKIHNyY3BrZ3Mv aW5rc2NhcGUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAzIGZpbGVzIGNo YW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRW5zdXJlLWNvbXBhdGliaWxpdHktd2l0aC1Qb3Bw bGVyLTIyLjAzLWFuZC1sYXRlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaW5r c2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIxLjExLjAucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRW5zdXJlLWNvbXBhdGliaWxpdHktd2l0 aC1Qb3BwbGVyLTIyLjAzLWFuZC1sYXRlci5wYXRjaCBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hl cy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMtYW5kLWxhdGVyLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjk3ZWY2Nzc2NjVlCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0Vuc3VyZS1jb21wYXRp YmlsaXR5LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0ZXIucGF0Y2gKQEAgLTAsMCArMSw1MCBA QAorRnJvbSBhMThjNTdmZmZmMzEzZmQwOGJjOGE0NGY2YjZiZjBiMDFkN2U5Yjc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbmdlbG9zIEZvdXRyYXMgPGV2YW5nZWxvc0Bmb3V0 cmVsaXMuY29tPgorRGF0ZTogU3VuLCAyMCBNYXIgMjAyMiAyMjo0MTo1MSAtMDMwMAorU3ViamVj dDogW1BBVENIXSBFbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIFBvcHBsZXIgMjIuMDMgYW5kIGxh dGVyCisKK1RoaXMgY2hhbmdlIGVuc3VyZXMgdGhhdCBJbmtzY2FwZSB3aWxsIGJ1aWxkIGFnYWlu c3QgUG9wcGxlciAyMi4wMyBhZnRlcgordGhlIGNoYW5nZXMgdGhhdCB3ZXJlIG1hZGUgdG8gdGhl IGNvbnN0cnVjdG9yIG9mIGBQREZEb2NgLgorCitTZWU6IGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNr dG9wLm9yZy9wb3BwbGVyL3BvcHBsZXIvLS9jb21taXQvNGYyYWJkM2VmCisKK0NvLWF1dGhvcmVk LWJ5OiBSYWZhZWwgU2llamFrb3dza2kgPHJzQHJzLW1hdGgubmV0PgorLS0tCisgc3JjL2V4dGVu c2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtaW5wdXQuY3BwICAgICAgICAgICAgfCAzICstLQor IHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5o IHwgNiArKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRm LWlucHV0LmNwcCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNw cAoraW5kZXggM2RhYmM5NGJhMi4uMDc5YjBkYzcxMyAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcAorKysrIGIvc3JjL2V4dGVuc2lvbi9p bnRlcm5hbC9wZGZpbnB1dC9wZGYtaW5wdXQuY3BwCitAQCAtNjg4LDggKzY4OCw3IEBAIFBkZklu cHV0OjpvcGVuKDo6SW5rc2NhcGU6OkV4dGVuc2lvbjo6SW5wdXQgKiAvKm1vZCovLCBjb25zdCBn Y2hhciAqIHVyaSkgeworIAorICAgICAvLyBwb3BwbGVyIGRvZXMgbm90IHVzZSBnbGliIGdfb3Bl bi4gU28gb24gd2luMzIgd2UgbXVzdCB1c2UgdW5pY29kZSBjYWxsLiBjb2RlIHdhcyBjb3BpZWQg ZnJvbQorICAgICAvLyBnbGliIGdzdGRpby5jCistICAgIEdvb1N0cmluZyAqZmlsZW5hbWVfZ29v ID0gbmV3IEdvb1N0cmluZyh1cmkpOworLSAgICBwZGZfZG9jID0gc3RkOjptYWtlX3NoYXJlZDxQ REZEb2M+KGZpbGVuYW1lX2dvbywgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cik7ICAgLy8gVE9E TzogQ291bGQgYXNrIGZvciBwYXNzd29yZAorKyAgICBwZGZfZG9jID0gX1BPUFBMRVJfTUFLRV9T SEFSRURfUERGRE9DKHVyaSk7IC8vIFRPRE86IENvdWxkIGFzayBmb3IgcGFzc3dvcmQKKyAKKyAg ICAgaWYgKCFwZGZfZG9jLT5pc09rKCkpIHsKKyAgICAgICAgIGludCBlcnJvciA9IHBkZl9kb2Mt PmdldEVycm9yQ29kZSgpOworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRm aW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9w ZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK2luZGV4IDg3YTE5ZDRjNDIuLjUwYjYx N2MyNWMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBs ZXItdHJhbnNpdGlvbi1hcGkuaAorKysrIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1 dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK0BAIC0xNCw2ICsxNCwxMiBAQAorIAorICNpbmNs dWRlIDxnbGliL3BvcHBsZXItZmVhdHVyZXMuaD4KKyAKKysjaWYgUE9QUExFUl9DSEVDS19WRVJT SU9OKDIyLCAzLCAwKQorKyNkZWZpbmUgX1BPUFBMRVJfTUFLRV9TSEFSRURfUERGRE9DKHVyaSkg c3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPih1cmkp KQorKyNlbHNlCisrI2RlZmluZSBfUE9QUExFUl9NQUtFX1NIQVJFRF9QREZET0ModXJpKSBzdGQ6 Om1ha2Vfc2hhcmVkPFBERkRvYz4obmV3IEdvb1N0cmluZyh1cmkpLCBudWxscHRyLCBudWxscHRy LCBudWxscHRyKQorKyNlbmRpZgorKworICNpZiBQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMCwgODMs IDApCisgI2RlZmluZSBfUE9QUExFUl9DT05TVF84MyBjb25zdAorICNlbHNlCistLSAKK0dpdExh YgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgt cG9wcGxlci0yMS4xMS4wLnBhdGNoIGIvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0ZpeC1idWls ZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjVkN2Y0ODAxMjczZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW5r c2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIxLjExLjAucGF0Y2gKQEAgLTAs MCArMSwyOSBAQAorRnJvbSA1NzI0YzIxYjljYjdiNjE3NmE3YjM2Y2EyNDA2OGIxNDhjODE3ZTgy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbmdlbG9zIEZvdXRyYXMgPGV2YW5n ZWxvc0Bmb3V0cmVsaXMuY29tPgorRGF0ZTogTW9uLCAxIE5vdiAyMDIxIDIxOjQ1OjM4ICswMjAw CitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIHBvcHBsZXIgMjEuMTEuMAorCitHZnhG b250Ojp0YWcgaXMgbm93IG9mIHR5cGUgc3RkOjpzdHJpbmcgaW5zdGVhZCBvZiBHb29TdHJpbmcg Ki4KKy0tLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAg fCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQg YS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwIGIvc3JjL2V4 dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcAoraW5kZXggZTNkMDRkNTQ0 Yi4uZmVlY2VmYTA0MyAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5w dXQvcGRmLXBhcnNlci5jcHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv cGRmLXBhcnNlci5jcHAKK0BAIC0yMTY5LDcgKzIxNjksMTEgQEAgdm9pZCBQZGZQYXJzZXI6Om9w U2V0Rm9udChPYmplY3QgYXJnc1tdLCBpbnQgLypudW1BcmdzKi8pCisgICB9CisgICBpZiAocHJp bnRDb21tYW5kcykgeworICAgICBwcmludGYoIiAgZm9udDogdGFnPSVzIG5hbWU9JyVzJyAlZ1xu IiwKKysjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIxLDExLDApCisrCSAgIGZvbnQtPmdldFRh ZygpLmNfc3RyKCksCisrI2Vsc2UKKyAJICAgZm9udC0+Z2V0VGFnKCktPmdldENTdHJpbmcoKSwK KysjZW5kaWYKKyAJICAgZm9udC0+Z2V0TmFtZSgpID8gZm9udC0+Z2V0TmFtZSgpLT5nZXRDU3Ry aW5nKCkgOiAiPz8/IiwKKyAJICAgYXJnc1sxXS5nZXROdW0oKSk7CisgICAgIGZmbHVzaChzdGRv dXQpOworLS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmtzY2FwZS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvaW5rc2NhcGUvdGVtcGxhdGUKaW5kZXggNDVmNDhjY2RhMGRjLi40ZDkwMmU2 NjNmNzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW5rc2NhcGUvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9pbmtzY2FwZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2lua3NjYXBlJwogcGtnbmFtZT1pbmtzY2FwZQogdmVyc2lvbj0xLjEuMQotcmV2aXNpb249Mwor cmV2aXNpb249NAogd3Jrc3JjPSJpbmtzY2FwZS0ke3ZlcnNpb259XzIwMjEtMDktMjBfM2JmNWFl MGQyNSIKIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIGJ1aWxkcyBleGVjdXRhYmxlcyB0aGVuIHJ1bnMg Y2hlY2tzCgpGcm9tIGJmZDk0YjdkNjE0MDQ0YTRmMTZjN2MzYzZlOWUyZDhmODZkYjhiZjIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNl cnMubm9yZXBseS5naXRodWIuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4OjM0OjQzIC0w NzAwClN1YmplY3Q6IFtQQVRDSCA2LzhdIGlwZTogcmVidWlsZCBhZ2FpbnN0IGxpYnBvcHBsZXIg MjIuMDQuMAoKLS0tCiBzcmNwa2dzL2lwZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0 Y2ggfCAzMyArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2lwZS90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pcGUvcGF0Y2hl cy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pcGUvcGF0 Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoIGIvc3JjcGtncy9pcGUvcGF0Y2hlcy9wb3Bw bGVyLTIyLjAzLjAtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uZGYyODk0ODA5YzFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9pcGUvcGF0Y2hl cy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzMgQEAKK2RpZmYgLU5hdXIg cGRmdG9pcGUuY3BwLm9yaWcgcGRmdG9pcGUuY3BwCistLS0gYS9pcGUtdG9vbHMvcGRmdG9pcGUv cGRmdG9pcGUuY3BwLm9yaWcKKysrKyBiL2lwZS10b29scy9wZGZ0b2lwZS9wZGZ0b2lwZS5jcHAK K0BAIC04NCwyMiArODQsMjAgQEAKKyAgIGlmIChxdWlldCkKKyAgICAgZ2xvYmFsUGFyYW1zLT5z ZXRFcnJRdWlldChxdWlldCk7CisgCistICBHb29TdHJpbmcgKm93bmVyUFcsICp1c2VyUFc7Cisr ICBzdGQ6Om9wdGlvbmFsPEdvb1N0cmluZz4gb3duZXJQVywgdXNlclBXOworICAgaWYgKG93bmVy UGFzc3dvcmRbMF0pIHsKKy0gICAgb3duZXJQVyA9IG5ldyBHb29TdHJpbmcob3duZXJQYXNzd29y ZCk7CisrICAgIG93bmVyUFcgPSBHb29TdHJpbmcob3duZXJQYXNzd29yZCk7CisgICB9IGVsc2Ug eworLSAgICBvd25lclBXID0gMDsKKysgICAgb3duZXJQVyA9IHN0ZDo6bnVsbG9wdDsKKyAgIH0K KyAgIGlmICh1c2VyUGFzc3dvcmRbMF0pIHsKKy0gICAgdXNlclBXID0gbmV3IEdvb1N0cmluZyh1 c2VyUGFzc3dvcmQpOworKyAgICB1c2VyUFcgPSBHb29TdHJpbmcodXNlclBhc3N3b3JkKTsKKyAg IH0gZWxzZSB7CistICAgIHVzZXJQVyA9IDA7CisrICAgIHVzZXJQVyA9IHN0ZDo6bnVsbG9wdDsK KyAgIH0KKyAKKyAgIC8vIG9wZW4gUERGIGZpbGUKKy0gIFBERkRvYyAqZG9jID0gbmV3IFBERkRv YyhmaWxlTmFtZSwgb3duZXJQVywgdXNlclBXKTsKKy0gIGRlbGV0ZSB1c2VyUFc7CistICBkZWxl dGUgb3duZXJQVzsKKysgIFBERkRvYyAqZG9jID0gbmV3IFBERkRvYyhzdGQ6Om1ha2VfdW5pcXVl PEdvb1N0cmluZz4oZmlsZU5hbWUpLCBvd25lclBXLCB1c2VyUFcpOworIAorICAgaWYgKCFkb2Mt PmlzT2soKSkKKyAgICAgcmV0dXJuIDE7CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXBlL3RlbXBs YXRlIGIvc3JjcGtncy9pcGUvdGVtcGxhdGUKaW5kZXggZmJkNTAwYTNkYzk0Li42MmZjZmU5NTA1 MDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaXBlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaXBlL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnaXBlJwogcGtnbmFt ZT1pcGUKIHZlcnNpb249Ny4yLjI0Ci1yZXZpc2lvbj01CityZXZpc2lvbj02CiBfdG9vbHNfY29t bWl0PXY3LjIuMjAuMQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGRveHlnZW4gcXQ1LXFt YWtlIHF0NS10b29scyBxdDUtaG9zdC10b29scyIKIG1ha2VkZXBlbmRzPSJjYWlyby1kZXZlbCBn c2wtZGV2ZWwgbGliY3VybC1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsCgpGcm9tIDIzMmM2ZGQ5 OWQ0MjVhOWM2OGUwN2MwYzNkZjBmMDQzOTBjZmJjMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNlcnMubm9yZXBseS5naXRodWIuY29t PgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4OjM1OjMwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCA3 LzhdIGtpdGluZXJhcnk6IHJlYnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA0LjAKCi0tLQog c3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9raXRpbmVyYXJ5 L3RlbXBsYXRlIGIvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlCmluZGV4IGFhNWFkMDdmZTIx OS4uNWMzNmU4MjlmN2FlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2tpdGluZXJhcnkvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAna2l0aW5lcmFyeScKIHBrZ25hbWU9a2l0aW5lcmFyeQogdmVyc2lvbj0y MS4xMi4zCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1h a2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIGdldHRleHQga2NvcmVhZGRvbnMgcGtnLWNv bmZpZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UgcXQ1LXRvb2xzLWRldmVsIgogbWFrZWRlcGVu ZHM9ImtjYWxlbmRhcmNvcmUtZGV2ZWwga2NvbnRhY3RzLWRldmVsIGtkZWNsYXJhdGl2ZS1kZXZl bCBrbWltZS1kZXZlbAoKRnJvbSA1ZWEwZmU5N2JlN2ZiMGQ0MTU2NzgyYzU0YzhkYmJkYTM0ZTNl NDYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVv NjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoz NjoyNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggOC84XSBzY3JpYnVzOiByZWJ1aWxkIGFnYWluc3Qg bGlicG9wcGxlciAyMi4wNC4wCgotLS0KIC4uLi9wYXRjaGVzLzAxX3BvcHBsZXItMjIuMDIuMC1m aXgucGF0Y2ggICAgICB8IDEyOSArKysrKysrKwogLi4uL3BhdGNoZXMvMDJfcG9wcGxlci0yMi4w My4wLWZpeC5wYXRjaCAgICAgIHwgIDUyICsrKysKIC4uLi9wYXRjaGVzLzAzX3BvcHBsZXItMjIu MDQuMC1maXgucGF0Y2ggICAgICB8IDI4OCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mvc2Ny aWJ1cy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogNCBmaWxlcyBjaGFu Z2VkLCA0NzEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMV9wb3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDJfcG9wcGxlci0yMi4w My4wLWZpeC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVz LzAzX3BvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Njcmli dXMvcGF0Y2hlcy8wMV9wb3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoIGIvc3JjcGtncy9zY3JpYnVz L3BhdGNoZXMvMDFfcG9wcGxlci0yMi4wMi4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjRlMGY2MDdjNmEwNwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAxX3BvcHBsZXItMjIuMDIuMC1maXgucGF0Y2gKQEAgLTAs MCArMSwxMjkgQEAKK0Zyb20gODVjMGRmZjM0MjJmYTNjMjZmYmMyZThkODU2MWY1OTdlYzI0YmQ5 MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEplYW4gR2hhbGkgPGpnaGFsaUBsaWJl cnR5c3VyZi5mcj4KK0RhdGU6IFdlZCwgMiBGZWIgMjAyMiAyMzoxMjo1MiArMDAwMAorU3ViamVj dDogW1BBVENIXSAjMTY3MzQ6IEJ1aWxkIGJyZWFrIHdpdGggcG9wcGxlciAyMi4yLjAKKworZ2l0 LXN2bi1pZDogc3ZuOi8vc2NyaWJ1cy5uZXQvdHJ1bmsvU2NyaWJ1c0AyNDg4NCAxMWQyMDcwMS04 NDMxLTA0MTAtYTcxMS1lM2M5NTllM2I4NzAKKy0tLQorIHNjcmlidXMvcGx1Z2lucy9pbXBvcnQv cGRmL3NsYW91dHB1dC5jcHAgfCA0NyArKysrKysrKysrKysrKysrKysrLS0tLS0KKyAxIGZpbGUg Y2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwIGIvc2NyaWJ1cy9wbHVn aW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcAoraW5kZXggNTg5NGJmMmFkNi4uMzY1MGM5NmY1 MiAxMDA2NDQKKy0tLSBhL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAK KysrKyBiL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKK0BAIC03LDYg KzcsMTEgQEAgZm9yIHdoaWNoIGEgbmV3IGxpY2Vuc2UgKEdQTCtleGNlcHRpb24pIGlzIGluIHBs YWNlLgorIA0KKyAjaW5jbHVkZSAic2xhb3V0cHV0LmgiDQorIA0KKysjaWYgUE9QUExFUl9FTkNP REVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrI2luY2x1 ZGUgPG1lbW9yeT4NCisrI2luY2x1ZGUgPG9wdGlvbmFsPg0KKysjZW5kaWYNCisrDQorICNpbmNs dWRlIDxwb3BwbGVyL0dsb2JhbFBhcmFtcy5oPg0KKyAjaW5jbHVkZSA8cG9wcGxlci9wb3BwbGVy LWNvbmZpZy5oPg0KKyAjaW5jbHVkZSA8cG9wcGxlci9GaWxlU3BlYy5oPg0KK0BAIC0zMDI3LDE4 ICszMDMyLDI0IEBAIHZvaWQgU2xhT3V0cHV0RGV2OjptYXJrUG9pbnQoUE9QUExFUl9DT05TVCBj aGFyICpuYW1lLCBEaWN0ICpwcm9wZXJ0aWVzKQorIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVG b250KEdmeFN0YXRlICpzdGF0ZSkNCisgew0KKyAJR2Z4Rm9udCAqZ2Z4Rm9udDsNCistCUdmeEZv bnRMb2MgKmZvbnRMb2M7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVS X1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysJc3RkOjpvcHRpb25hbDxHZnhGb250TG9jPiBm b250TG9jOw0KKysJY29uc3QgR29vU3RyaW5nICogZmlsZU5hbWUgPSBudWxscHRyOw0KKysJc3Rk Ojp1bmlxdWVfcHRyPEZvRmlUcnVlVHlwZT4gZmY7DQorKyNlbHNlDQorKwlHZnhGb250TG9jICog Zm9udExvYyA9IG51bGxwdHI7DQorKwlHb29TdHJpbmcgKiBmaWxlTmFtZSA9IG51bGxwdHI7DQor KwlGb0ZpVHJ1ZVR5cGUgKiBmZiA9IG51bGxwdHI7DQorKyNlbmRpZg0KKyAJR2Z4Rm9udFR5cGUg Zm9udFR5cGU7DQorIAlTbGFPdXRGb250RmlsZUlEICppZDsNCisgCVNwbGFzaEZvbnRGaWxlICpm b250RmlsZTsNCisgCVNwbGFzaEZvbnRTcmMgKmZvbnRzcmMgPSBudWxscHRyOw0KKy0JRm9GaVRy dWVUeXBlICpmZjsNCisgCU9iamVjdCByZWZPYmosIHN0ck9iajsNCistCUdvb1N0cmluZyAqZmls ZU5hbWU7DQorLQljaGFyICp0bXBCdWY7DQorKwljaGFyICp0bXBCdWYgPSBudWxscHRyOw0KKyAJ aW50IHRtcEJ1ZkxlbiA9IDA7DQorLQlpbnQgKmNvZGVUb0dJRDsNCistCWNvbnN0IGRvdWJsZSAq dGV4dE1hdDsNCisrCWludCAqY29kZVRvR0lEID0gbnVsbHB0cjsNCisrCWNvbnN0IGRvdWJsZSAq dGV4dE1hdCA9IG51bGxwdHI7DQorIAlkb3VibGUgbTExLCBtMTIsIG0yMSwgbTIyLCBmb250U2l6 ZTsNCisgCVNwbGFzaENvb3JkIG1hdFs0XTsNCisgCWludCBuID0gMDsNCitAQCAtMzA0Niw5ICsz MDU3LDYgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQor IAlTcGxhc2hDb29yZCBtYXRyaXhbNl07DQorIA0KKyAJbV9mb250ID0gbnVsbHB0cjsNCistCWZp bGVOYW1lID0gbnVsbHB0cjsNCistCXRtcEJ1ZiA9IG51bGxwdHI7DQorLQlmb250TG9jID0gbnVs bHB0cjsNCisgDQorIAlnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKTsNCisgCWlmICghZ2Z4Rm9u dCkNCitAQCAtMzA4Myw3ICszMDkxLDExIEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250 KEdmeFN0YXRlICpzdGF0ZSkKKyAJCX0NCisgCQllbHNlDQorIAkJeyAvLyBnZnhGb250TG9jRXh0 ZXJuYWwNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9F TkNPREUoMjIsIDIsIDApDQorKwkJCWZpbGVOYW1lID0gZm9udExvYy0+cGF0aEFzR29vU3RyaW5n KCk7DQorKyNlbHNlDQorIAkJCWZpbGVOYW1lID0gZm9udExvYy0+cGF0aDsNCisrI2VuZGlmDQor IAkJCWZvbnRUeXBlID0gZm9udExvYy0+Zm9udFR5cGU7DQorIAkJfQ0KKyANCitAQCAtMzEzNiw5 ICszMTQ4LDE0IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0 ZSkKKyAJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2UodG1wQnVmLCB0bXBCdWZMZW4pOw0KKyAJ CQlpZiAoZmYpDQorIAkJCXsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBM RVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKwkJCQljb2RlVG9HSUQgPSAoKEdmeDhCaXRG b250KikgZ2Z4Rm9udCktPmdldENvZGVUb0dJRE1hcChmZi5nZXQoKSk7DQorKwkJCQlmZi5yZXNl dCgpOw0KKysjZWxzZQ0KKyAJCQkJY29kZVRvR0lEID0gKChHZng4Qml0Rm9udCAqKWdmeEZvbnQp LT5nZXRDb2RlVG9HSURNYXAoZmYpOw0KKy0JCQkJbiA9IDI1NjsNCisgCQkJCWRlbGV0ZSBmZjsN CisrI2VuZGlmDQorKwkJCQluID0gMjU2Ow0KKyAJCQl9DQorIAkJCWVsc2UNCisgCQkJew0KK0BA IC0zMjA5LDggKzMyMjYsMTMgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3Rh dGUgKnN0YXRlKQorIAkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2UodG1wQnVmLCB0bXBCdWZM ZW4pOw0KKyAJCQkJaWYgKCEgZmYpDQorIAkJCQkJZ290byBlcnIyOw0KKysjaWYgUE9QUExFUl9F TkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrCQkJ CWNvZGVUb0dJRCA9ICgoR2Z4Q0lERm9udCopIGdmeEZvbnQpLT5nZXRDb2RlVG9HSURNYXAoZmYu Z2V0KCksICZuKTsNCisrCQkJCWZmLnJlc2V0KCk7DQorKyNlbHNlDQorIAkJCQljb2RlVG9HSUQg PSAoKEdmeENJREZvbnQgKilnZnhGb250KS0+Z2V0Q29kZVRvR0lETWFwKGZmLCAmbik7DQorIAkJ CQlkZWxldGUgZmY7DQorKyNlbmRpZg0KKyAJCQl9DQorIAkJCWlmICghKGZvbnRGaWxlID0gbV9m b250RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250KA0KKyAJCQkJCQkJaWQsDQorQEAgLTMyNDcsMTQg KzMyNjksMTkgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRl KQorIAltYXRbM10gPSAtbTIyOw0KKyAJbV9mb250ID0gbV9mb250RW5naW5lLT5nZXRGb250KGZv bnRGaWxlLCBtYXQsIG1hdHJpeCk7DQorIA0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04g PCBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKyAJZGVsZXRlIGZvbnRMb2M7DQor KyNlbmRpZg0KKyAJaWYgKGZvbnRzcmMgJiYgIWZvbnRzcmMtPmlzRmlsZSkNCisgCQlmb250c3Jj LT51bnJlZigpOw0KKyAJcmV0dXJuOw0KKyANCisgZXJyMjoNCisgCWRlbGV0ZSBpZDsNCisrI2lm IFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OIDwgUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwg MCkNCisgCWRlbGV0ZSBmb250TG9jOw0KKysjZW5kaWYNCisrDQorIGVycjE6DQorIAlpZiAoZm9u dHNyYyAmJiAhZm9udHNyYy0+aXNGaWxlKQ0KKyAJCWZvbnRzcmMtPnVucmVmKCk7DQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDJfcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRj aCBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAyX3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mN2EwYzAzZmRkOTYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMl9wb3BwbGVyLTIyLjAz LjAtZml4LnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAKK0Zyb20gZjE5NDEwYWMzYjI3ZTMzZGQ2MjEw NTc0Njc4NGU2MWU4NWI5MGExZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEplYW4g R2hhbGkgPGpnaGFsaUBsaWJlcnR5c3VyZi5mcj4KK0RhdGU6IFdlZCwgMiBNYXIgMjAyMiAyMjoy Mjo1MyArMDAwMAorU3ViamVjdDogW1BBVENIXSAjMTY3NjQ6IEJ1aWxkIGJyZWFrIHdpdGggcG9w cGxlciAyMi4wMy4wCisKK2dpdC1zdm4taWQ6IHN2bjovL3NjcmlidXMubmV0L3RydW5rL1Njcmli dXNAMjQ5ODIgMTFkMjA3MDEtODQzMS0wNDEwLWE3MTEtZTNjOTU5ZTNiODcwCistLS0KKyBzY3Jp YnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9pbXBvcnRwZGYuY3BwIHwgMTMgKysrKysrKysrKysrKwor IDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zY3JpYnVz L3BsdWdpbnMvaW1wb3J0L3BkZi9pbXBvcnRwZGYuY3BwIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9y dC9wZGYvaW1wb3J0cGRmLmNwcAoraW5kZXggMTU0ZTU4YTNmMC4uMzkyZGNkOWU2NCAxMDA2NDQK Ky0tLSBhL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL2ltcG9ydHBkZi5jcHAKKysrKyBiL3Nj cmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL2ltcG9ydHBkZi5jcHAKK0BAIC04OSw3ICs4OSwxMSBA QCBRSW1hZ2UgUGRmUGx1Zzo6cmVhZFRodW1ibmFpbChjb25zdCBRU3RyaW5nJiBmTmFtZSkKKyAj ZW5kaWYNCisgCWdsb2JhbFBhcmFtcy0+c2V0RXJyUXVpZXQoZ1RydWUpOw0KKyANCisrI2lmIFBP UFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDMsIDAp DQorKwlQREZEb2MgcGRmRG9jeyBzdGQ6Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4oZm5hbWUpIH07 DQorKyNlbHNlDQorIAlQREZEb2MgcGRmRG9je2ZuYW1lLCBudWxscHRyLCBudWxscHRyLCBudWxs cHRyfTsNCisrI2VuZGlmDQorIAlpZiAoIXBkZkRvYy5pc09rKCkgfHwgcGRmRG9jLmdldEVycm9y Q29kZSgpID09IGVyckVuY3J5cHRlZCkNCisgCQlyZXR1cm4gUUltYWdlKCk7DQorIA0KK0BAIC0z NDIsNyArMzQ2LDExIEBAIGJvb2wgUGRmUGx1Zzo6Y29udmVydChjb25zdCBRU3RyaW5nJiBmbikK KyAJZ2xvYmFsUGFyYW1zLT5zZXRFcnJRdWlldChnVHJ1ZSk7DQorIC8vCWdsb2JhbFBhcmFtcy0+ c2V0UHJpbnRDb21tYW5kcyhnVHJ1ZSk7DQorIAlRTGlzdDxPcHRpb25hbENvbnRlbnRHcm91cCo+ IG9jZ0dyb3VwczsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVS U0lPTl9FTkNPREUoMjIsIDMsIDApDQorKwlhdXRvIHBkZkRvYyA9IHN0ZDo6bWFrZV91bmlxdWU8 UERGRG9jPihzdGQ6Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4oZm5hbWUpKTsNCisrI2Vsc2UNCisg CWF1dG8gcGRmRG9jID0gc3RkOjp1bmlxdWVfcHRyPFBERkRvYz4obmV3IFBERkRvYyhmbmFtZSwg bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikpOw0KKysjZW5kaWYNCisgCWlmIChwZGZEb2MpDQor IAl7DQorIAkJaWYgKHBkZkRvYy0+Z2V0RXJyb3JDb2RlKCkgPT0gZXJyRW5jcnlwdGVkKQ0KK0BA IC0zNjEsOCArMzY5LDEzIEBAIGJvb2wgUGRmUGx1Zzo6Y29udmVydChjb25zdCBRU3RyaW5nJiBm bikKKyAjZWxzZQ0KKyAJCQkJYXV0byBmbmFtZSA9IG5ldyBHb29TdHJpbmcoUUZpbGU6OmVuY29k ZU5hbWUoZm4pLmRhdGEoKSk7DQorICNlbmRpZg0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJ T04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMywgMCkNCisrCQkJCXN0ZDo6b3B0aW9u YWw8R29vU3RyaW5nPiB1c2VyUFcoc3RkOjppbl9wbGFjZSwgdGV4dC50b0xvY2FsOEJpdCgpLmRh dGEoKSk7DQorKwkJCQlwZGZEb2MucmVzZXQobmV3IFBERkRvYyhzdGQ6Om1ha2VfdW5pcXVlPEdv b1N0cmluZz4oZm5hbWUpLCB1c2VyUFcsIHVzZXJQVywgbnVsbHB0cikpOw0KKysjZWxzZQ0KKyAJ CQkJYXV0byB1c2VyUFcgPSBuZXcgR29vU3RyaW5nKHRleHQudG9Mb2NhbDhCaXQoKS5kYXRhKCkp Ow0KKyAJCQkJcGRmRG9jLnJlc2V0KG5ldyBQREZEb2MoZm5hbWUsIHVzZXJQVywgdXNlclBXLCBu dWxscHRyKSk7DQorKyNlbmRpZg0KKyAJCQkJcUFwcC0+Y2hhbmdlT3ZlcnJpZGVDdXJzb3IoUUN1 cnNvcihRdDo6V2FpdEN1cnNvcikpOw0KKyAJCQl9DQorIAkJCWlmICgoIXBkZkRvYykgfHwgKHBk ZkRvYy0+Z2V0RXJyb3JDb2RlKCkgIT0gZXJyTm9uZSkpDQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9z Y3JpYnVzL3BhdGNoZXMvMDNfcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaCBiL3NyY3BrZ3Mvc2Ny aWJ1cy9wYXRjaGVzLzAzX3BvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lMTVlYzdkODEyNjYKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wM19wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoCkBA IC0wLDAgKzEsMjg4IEBACitGcm9tIGYyMjM3YjhmMGI1Y2Y3NjkwZTg2NGEyMmVmN2E2M2E2ZDc2 OWZhMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKZWFuIEdoYWxpIDxqZ2hhbGlA bGliZXJ0eXN1cmYuZnI+CitEYXRlOiBGcmksIDEgQXByIDIwMjIgMjM6NTI6MzIgKzAwMDAKK1N1 YmplY3Q6IFtQQVRDSF0gRml4IGJ1aWxkIHdpdGggcG9wcGxlciAyMi4wNC4wCisKK2dpdC1zdm4t aWQ6IHN2bjovL3NjcmlidXMubmV0L3RydW5rL1NjcmlidXNAMjUwNzQgMTFkMjA3MDEtODQzMS0w NDEwLWE3MTEtZTNjOTU5ZTNiODcwCistLS0KKyBzY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9z bGFvdXRwdXQuY3BwIHwgMTIzICsrKysrKysrKysrKysrLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5n ZWQsIDc4IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2Ny aWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcCBiL3NjcmlidXMvcGx1Z2lucy9p bXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKK2luZGV4IGUyMGE4MWY5OWUuLjU2MjZmZTM0NzcgMTAw NjQ0CistLS0gYS9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCisrKysg Yi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCitAQCAtMTc0LDggKzE3 NCwxMyBAQCB2b2lkIEFub091dHB1dERldjo6ZHJhd1N0cmluZyhHZnhTdGF0ZSAqc3RhdGUsIFBP UFBMRVJfQ09OU1QgR29vU3RyaW5nICpzKQorIAlpbnQgc2hhZGUgPSAxMDA7DQorIAljdXJyQ29s b3JUZXh0ID0gZ2V0Q29sb3Ioc3RhdGUtPmdldEZpbGxDb2xvclNwYWNlKCksIHN0YXRlLT5nZXRG aWxsQ29sb3IoKSwgJnNoYWRlKTsNCisgCWZvbnRTaXplID0gc3RhdGUtPmdldEZvbnRTaXplKCk7 DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RF KDIyLCA0LCAwKQ0KKysJaWYgKHN0YXRlLT5nZXRGb250KCkgJiYgc3RhdGUtPmdldEZvbnQoKS0+ Z2V0TmFtZSgpKQ0KKysJCWZvbnROYW1lID0gbmV3IEdvb1N0cmluZyhzdGF0ZS0+Z2V0Rm9udCgp LT5nZXROYW1lKCkudmFsdWUoKSk7DQorKyNlbHNlDQorIAlpZiAoc3RhdGUtPmdldEZvbnQoKSkN CisgCQlmb250TmFtZSA9IHN0YXRlLT5nZXRGb250KCktPmdldE5hbWUoKS0+Y29weSgpOw0KKysj ZW5kaWYNCisgCWl0ZW1UZXh0ID0gcy0+Y29weSgpOw0KKyB9DQorIA0KK0BAIC0zNTcsNyArMzYy LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxMaW5rQWN0aW9uPiBTbGFPdXRwdXREZXY6OlNDX2dldEFk ZGl0aW9uYWxBY3Rpb24oY29uc3QgY2hhciAqa2V5CisgR0Jvb2wgU2xhT3V0cHV0RGV2Ojphbm5v dGF0aW9uc19jYWxsYmFjayhBbm5vdCAqYW5ub3RhLCB2b2lkICp1c2VyX2RhdGEpDQorIHsNCisg CVNsYU91dHB1dERldiAqZGV2ID0gKFNsYU91dHB1dERldiopdXNlcl9kYXRhOw0KKysjaWYgUE9Q UExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkN CisrCWNvbnN0IFBERlJlY3RhbmdsZSYgYW5ub3RSZWN0ID0gYW5ub3RhLT5nZXRSZWN0KCk7Ow0K KysJY29uc3QgUERGUmVjdGFuZ2xlKiBib3ggPSAmYW5ub3RSZWN0Ow0KKysjZWxzZQ0KKyAJUERG UmVjdGFuZ2xlICpib3ggPSBhbm5vdGEtPmdldFJlY3QoKTsNCisrI2VuZGlmDQorIAlkb3VibGUg eENvb3IgPSBkZXYtPm1fZG9jLT5jdXJyZW50UGFnZSgpLT54T2Zmc2V0KCkgKyBib3gtPngxIC0g ZGV2LT5jcm9wT2Zmc2V0WDsNCisgCWRvdWJsZSB5Q29vciA9IGRldi0+bV9kb2MtPmN1cnJlbnRQ YWdlKCktPnlPZmZzZXQoKSArIGRldi0+bV9kb2MtPmN1cnJlbnRQYWdlKCktPmhlaWdodCgpIC0g Ym94LT55MiArIGRldi0+Y3JvcE9mZnNldFk7DQorIAlkb3VibGUgd2lkdGggPSBib3gtPngyIC0g Ym94LT54MTsNCitAQCAtNjg0LDcgKzY5NCwxMiBAQCBib29sIFNsYU91dHB1dERldjo6aGFuZGxl V2lkZ2V0QW5ub3QoQW5ub3QqIGFubm90YSwgZG91YmxlIHhDb29yLCBkb3VibGUgeUNvb3IsCisg CQkJaWYgKGFwYSB8fCAhYWNoYXIpDQorIAkJCXsNCisgCQkJCUFub091dHB1dERldiAqYW5ub3RP dXREZXYgPSBuZXcgQW5vT3V0cHV0RGV2KG1fZG9jLCBtX2ltcG9ydGVkQ29sb3JzKTsNCisrI2lm IFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQs IDApDQorKwkJCQljb25zdCBQREZSZWN0YW5nbGUmIGFubm90YVJlY3QgPSBhbm5vdGEtPmdldFJl Y3QoKTsNCisrCQkJCUdmeCogZ2Z4ID0gbmV3IEdmeChwZGZEb2MsIGFubm90T3V0RGV2LCBwZGZE b2MtPmdldFBhZ2UobV9hY3RQYWdlKS0+Z2V0UmVzb3VyY2VEaWN0KCksICZhbm5vdGFSZWN0LCBu dWxscHRyKTsNCisrI2Vsc2UNCisgCQkJCUdmeCAqZ2Z4ID0gbmV3IEdmeChwZGZEb2MsIGFubm90 T3V0RGV2LCBwZGZEb2MtPmdldFBhZ2UobV9hY3RQYWdlKS0+Z2V0UmVzb3VyY2VEaWN0KCksIGFu bm90YS0+Z2V0UmVjdCgpLCBudWxscHRyKTsNCisrI2VuZGlmDQorIAkJCQlhbm8tPmRyYXcoZ2Z4 LCBmYWxzZSk7DQorIAkJCQlpZiAoIWJnRm91bmQpDQorIAkJCQkJbV9jdXJyQ29sb3JGaWxsID0g YW5ub3RPdXREZXYtPmN1cnJDb2xvckZpbGw7DQorQEAgLTI5MTYsMjIgKzI5MzEsMjcgQEAgdm9p ZCBTbGFPdXRwdXREZXY6Om1hcmtQb2ludChQT1BQTEVSX0NPTlNUIGNoYXIgKm5hbWUsIERpY3Qg KnByb3BlcnRpZXMpCisgDQorIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRl ICpzdGF0ZSkNCisgew0KKy0JR2Z4Rm9udCAqZ2Z4Rm9udDsNCistI2lmIFBPUFBMRVJfRU5DT0RF RF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKyNpZiBQT1BQ TEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0K KysJc3RkOjpvcHRpb25hbDxHZnhGb250TG9jPiBmb250TG9jOw0KKysJc3RkOjpzdHJpbmcgZmls ZU5hbWU7DQorKwlzdGQ6OnVuaXF1ZV9wdHI8Rm9GaVRydWVUeXBlPiBmZjsNCisrCXN0ZDo6b3B0 aW9uYWw8c3RkOjp2ZWN0b3I8dW5zaWduZWQgY2hhcj4+IHRtcEJ1ZjsNCisrI2VsaWYgUE9QUExF Ul9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisg CXN0ZDo6b3B0aW9uYWw8R2Z4Rm9udExvYz4gZm9udExvYzsNCisgCWNvbnN0IEdvb1N0cmluZyAq IGZpbGVOYW1lID0gbnVsbHB0cjsNCisgCXN0ZDo6dW5pcXVlX3B0cjxGb0ZpVHJ1ZVR5cGU+IGZm Ow0KKysJY2hhciogdG1wQnVmID0gbnVsbHB0cjsNCisgI2Vsc2UNCisgCUdmeEZvbnRMb2MgKiBm b250TG9jID0gbnVsbHB0cjsNCisgCUdvb1N0cmluZyAqIGZpbGVOYW1lID0gbnVsbHB0cjsNCisg CUZvRmlUcnVlVHlwZSAqIGZmID0gbnVsbHB0cjsNCisrCWNoYXIqIHRtcEJ1ZiA9IG51bGxwdHI7 DQorICNlbmRpZg0KKyAJR2Z4Rm9udFR5cGUgZm9udFR5cGU7DQorIAlTbGFPdXRGb250RmlsZUlE ICppZDsNCisgCVNwbGFzaEZvbnRGaWxlICpmb250RmlsZTsNCisgCVNwbGFzaEZvbnRTcmMgKmZv bnRzcmMgPSBudWxscHRyOw0KKyAJT2JqZWN0IHJlZk9iaiwgc3RyT2JqOw0KKy0JY2hhciAqdG1w QnVmID0gbnVsbHB0cjsNCisgCWludCB0bXBCdWZMZW4gPSAwOw0KKyAJaW50ICpjb2RlVG9HSUQg PSBudWxscHRyOw0KKyAJY29uc3QgZG91YmxlICp0ZXh0TWF0ID0gbnVsbHB0cjsNCitAQCAtMjk0 Myw3ICsyOTYzLDExIEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpz dGF0ZSkKKyANCisgCW1fZm9udCA9IG51bGxwdHI7DQorIA0KKy0JZ2Z4Rm9udCA9IHN0YXRlLT5n ZXRGb250KCk7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJ T05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJR2Z4Rm9udCogZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250 KCkuZ2V0KCk7DQorKyNlbHNlDQorKwlHZnhGb250KiBnZnhGb250ID0gc3RhdGUtPmdldEZvbnQo KTsNCisrI2VuZGlmDQorIAlpZiAoIWdmeEZvbnQpDQorIAkJZ290byBlcnIxOw0KKyANCitAQCAt Mjk2OCwxNSArMjk5MiwyMyBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0 ZSAqc3RhdGUpCisgCQlpZiAoZm9udExvYy0+bG9jVHlwZSA9PSBnZnhGb250TG9jRW1iZWRkZWQp DQorIAkJew0KKyAJCQkvLyBpZiB0aGVyZSBpcyBhbiBlbWJlZGRlZCBmb250LCByZWFkIGl0IHRv IG1lbW9yeQ0KKy0JCQl0bXBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoeHJlZiwgJnRt cEJ1Zkxlbik7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJ T05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJCQl0bXBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZp bGUoKHhyZWYpID8geHJlZiA6IHBkZkRvYy0+Z2V0WFJlZigpKTsNCisgCQkJaWYgKCEgdG1wQnVm KQ0KKyAJCQkJZ290byBlcnIyOw0KKysjZWxzZQ0KKysJCQl0bXBCdWYgPSBnZnhGb250LT5yZWFk RW1iRm9udEZpbGUoeHJlZiwgJnRtcEJ1Zkxlbik7DQorKwkJCWlmICghdG1wQnVmKQ0KKysJCQkJ Z290byBlcnIyOw0KKysjZW5kaWYNCisgDQorIAkJCS8vIGV4dGVybmFsIGZvbnQNCisgCQl9DQor IAkJZWxzZQ0KKyAJCXsgLy8gZ2Z4Rm9udExvY0V4dGVybmFsDQorLSNpZiBQT1BQTEVSX0VOQ09E RURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysjaWYgUE9Q UExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkN CisrCQkJZmlsZU5hbWUgPSBmb250TG9jLT5wYXRoOw0KKysjZWxpZiBQT1BQTEVSX0VOQ09ERURf VkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKyAJCQlmaWxlTmFt ZSA9IGZvbnRMb2MtPnBhdGhBc0dvb1N0cmluZygpOw0KKyAjZWxzZQ0KKyAJCQlmaWxlTmFtZSA9 IGZvbnRMb2MtPnBhdGg7DQorQEAgLTI5ODUsNTIgKzMwMTcsNTQgQEAgdm9pZCBTbGFPdXRwdXRE ZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJfQ0KKyANCisgCQlmb250c3JjID0g bmV3IFNwbGFzaEZvbnRTcmM7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQ TEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJCWlmICghZmlsZU5hbWUuZW1wdHkoKSkN CisrCQkJZm9udHNyYy0+c2V0RmlsZShmaWxlTmFtZSk7DQorKwkJZWxzZQ0KKysJCQlmb250c3Jj LT5zZXRCdWYoc3RkOjptb3ZlKHRtcEJ1Zi52YWx1ZSgpKSk7DQorKyNlbHNlDQorIAkJaWYgKGZp bGVOYW1lKQ0KKyAJCQlmb250c3JjLT5zZXRGaWxlKGZpbGVOYW1lLCBnRmFsc2UpOw0KKyAJCWVs c2UNCisgCQkJZm9udHNyYy0+c2V0QnVmKHRtcEJ1ZiwgdG1wQnVmTGVuLCBnVHJ1ZSk7DQorKyNl bmRpZg0KKyANCisgCQkvLyBsb2FkIHRoZSBmb250IGZpbGUNCisgCQlzd2l0Y2ggKGZvbnRUeXBl KSB7DQorIAkJY2FzZSBmb250VHlwZTE6DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5n aW5lLT5sb2FkVHlwZTFGb250KA0KKy0JCQkJaWQsDQorLQkJCQlmb250c3JjLA0KKy0JCQkJKGNv bnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2RpbmcoKSkpKQ0K KysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFR5cGUxRm9udChpZCwgZm9u dHNyYywgKGNvbnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2Rp bmcoKSkpKQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4n dCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/ IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJ ZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3sw OnN9JyIsIGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmlu ZygpIDogIih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFr Ow0KKyAJCWNhc2UgZm9udFR5cGUxQzoNCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdp bmUtPmxvYWRUeXBlMUNGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJCQlmb250c3JjLA0KKy0J CQkJCQkJKGNvbnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2Rp bmcoKSkpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFR5cGUxQ0Zv bnQoaWQsIGZvbnRzcmMsIChjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCkt PmdldEVuY29kaW5nKCkpKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0x LCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5n ZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCki KTsNCisrCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZv bnQgZm9yICd7MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCkt PmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0K KyAJCQlicmVhazsNCisgCQljYXNlIGZvbnRUeXBlMUNPVDoNCistCQkJaWYgKCEoZm9udEZpbGUg PSBtX2ZvbnRFbmdpbmUtPmxvYWRPcGVuVHlwZVQxQ0ZvbnQoDQorLQkJCQkJCQlpZCwNCistCQkJ CQkJCWZvbnRzcmMsDQorLQkJCQkJCQkoY29uc3QgY2hhciAqKikoKEdmeDhCaXRGb250ICopIGdm eEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorKwkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5n aW5lLT5sb2FkT3BlblR5cGVUMUNGb250KGlkLCBmb250c3JjLCAoY29uc3QgY2hhciAqKikoKEdm eDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorIAkJCXsNCistCQkJCWVy cm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpz fSciLA0KKy0JCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRD U3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEs ICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+Z2V0TmFtZSgp ID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorIAkJ CQlnb3RvIGVycjI7DQorIAkJCX0NCisgCQkJYnJlYWs7DQorIAkJY2FzZSBmb250VHJ1ZVR5cGU6 DQorIAkJY2FzZSBmb250VHJ1ZVR5cGVPVDoNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9O ID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwkJCWlmICghZmlsZU5hbWUu ZW1wdHkoKSkNCisrCQkJCWZmID0gRm9GaVRydWVUeXBlOjpsb2FkKGZpbGVOYW1lLmNfc3RyKCkp Ow0KKysJCQllbHNlDQorKwkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bWFrZShmb250c3JjLT5idWYu ZGF0YSgpLCBmb250c3JjLT5idWYuc2l6ZSgpKTsNCisrI2Vsc2UNCisgCQkJaWYgKGZpbGVOYW1l KQ0KKyAJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5hbWUtPmdldENTdHJpbmcoKSk7 DQorIAkJCWVsc2UNCisgCQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtlKHRtcEJ1ZiwgdG1wQnVm TGVuKTsNCisrI2VuZGlmDQorIAkJCWlmIChmZikNCisgCQkJew0KKyAjaWYgUE9QUExFUl9FTkNP REVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCitAQCAtMzA0 NywyNCArMzA4MSwxNyBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAq c3RhdGUpCisgCQkJCWNvZGVUb0dJRCA9IG51bGxwdHI7DQorIAkJCQluID0gMDsNCisgCQkJfQ0K Ky0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFRydWVUeXBlRm9udCgNCist CQkJCQkJCWlkLA0KKy0JCQkJCQkJZm9udHNyYywNCistCQkJCQkJCWNvZGVUb0dJRCwgbikpKQ0K KysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFRydWVUeXBlRm9udChpZCwg Zm9udHNyYywgY29kZVRvR0lELCBuKSkpDQorIAkJCXsNCistCQkJCWVycm9yKGVyclN5bnRheEVy cm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4 Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVu bmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVh dGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0 TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQor IAkJCX0NCisgCQkJYnJlYWs7DQorIAkJY2FzZSBmb250Q0lEVHlwZTA6DQorIAkJY2FzZSBmb250 Q0lEVHlwZTBDOg0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZENJREZv bnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRzcmMpKSkNCisrCQkJaWYgKCEoZm9udEZp bGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRDSURGb250KGlkLCBmb250c3JjKSkpDQorIAkJCXsNCist CQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9y ICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgp LT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJTeW50YXhFcnJv ciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+Z2V0 TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7 DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0NCisgCQkJYnJlYWs7DQorQEAgLTMwODAsMTAgKzMx MDcsNyBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisg CQkJCWNvZGVUb0dJRCA9IG51bGxwdHI7DQorIAkJCQluID0gMDsNCisgCQkJfQ0KKy0JCQlpZiAo IShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZE9wZW5UeXBlQ0ZGRm9udCgNCistCQkJCQkJ CWlkLA0KKy0JCQkJCQkJZm9udHNyYywNCistCQkJCQkJCWNvZGVUb0dJRCwgbikpKQ0KKysJCQlp ZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZE9wZW5UeXBlQ0ZGRm9udChpZCwgZm9u dHNyYywgY29kZVRvR0lELCBuKSkpDQorIAkJCXsNCisgCQkJCWVycm9yKGVyclN5bnRheEVycm9y LCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKyAJCQkJZ2Z4Rm9u dC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFt ZWQpIik7DQorQEAgLTMxMDUsMTAgKzMxMjksMTcgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0 ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCX0NCisgCQkJZWxzZQ0KKyAJCQl7DQorKyNpZiBQ T1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAw KQ0KKysJCQkJaWYgKCFmaWxlTmFtZS5lbXB0eSgpKQ0KKysJCQkJCWZmID0gRm9GaVRydWVUeXBl Ojpsb2FkKGZpbGVOYW1lLmNfc3RyKCkpOw0KKysJCQkJZWxzZQ0KKysJCQkJCWZmID0gRm9GaVRy dWVUeXBlOjptYWtlKGZvbnRzcmMtPmJ1Zi5kYXRhKCksIGZvbnRzcmMtPmJ1Zi5zaXplKCkpOw0K KysjZWxzZQ0KKyAJCQkJaWYgKGZpbGVOYW1lKQ0KKyAJCQkJCWZmID0gRm9GaVRydWVUeXBlOjps b2FkKGZpbGVOYW1lLT5nZXRDU3RyaW5nKCkpOw0KKyAJCQkJZWxzZQ0KKyAJCQkJCWZmID0gRm9G aVRydWVUeXBlOjptYWtlKHRtcEJ1ZiwgdG1wQnVmTGVuKTsNCisrI2VuZGlmDQorIAkJCQlpZiAo ISBmZikNCisgCQkJCQlnb3RvIGVycjI7DQorICNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+ PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KK0BAIC0zMTE5LDEzICszMTUwLDkg QEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCQlk ZWxldGUgZmY7DQorICNlbmRpZg0KKyAJCQl9DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250 RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJCQlmb250c3Jj LA0KKy0JCQkJCQkJY29kZVRvR0lELCBuLCBmYWNlSW5kZXgpKSkNCisrCQkJaWYgKCEoZm9udEZp bGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVlVHlwZUZvbnQoaWQsIGZvbnRzcmMsIGNvZGVUb0dJ RCwgbiwgZmFjZUluZGV4KSkpDQorIAkJCXsNCistCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAt MSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+ Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQp Iik7DQorKwkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBm b250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgp LT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0N CisgCQkJYnJlYWs7DQorQEAgLTMyNjksOSArMzI5NiwxNSBAQCB2b2lkIFNsYU91dHB1dERldjo6 ZHJhd0NoYXIoR2Z4U3RhdGUqIHN0YXRlLCBkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSBkeCwg ZG91YgorIEdCb29sIFNsYU91dHB1dERldjo6YmVnaW5UeXBlM0NoYXIoR2Z4U3RhdGUgKnN0YXRl LCBkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSBkeCwgZG91YmxlIGR5LCBDaGFyQ29kZSBjb2Rl LCBQT1BQTEVSX0NPTlNUXzA4MiBVbmljb2RlICp1LCBpbnQgdUxlbikNCisgew0KKyAvLwlxRGVi dWcoKSA8PCAiYmVnaW5UeXBlM0NoYXIiOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04g Pj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisgCUdmeEZvbnQgKmdmeEZvbnQ7 DQorKwlpZiAoIShnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKS5nZXQoKSkpDQorKwkJcmV0dXJu IGdUcnVlOw0KKysjZWxzZQ0KKysJR2Z4Rm9udCogZ2Z4Rm9udDsNCisgCWlmICghKGdmeEZvbnQg PSBzdGF0ZS0+Z2V0Rm9udCgpKSkNCisgCQlyZXR1cm4gZ1RydWU7DQorKyNlbmRpZg0KKyAJaWYg KGdmeEZvbnQtPmdldFR5cGUoKSAhPSBmb250VHlwZTMpDQorIAkJcmV0dXJuIGdUcnVlOw0KKyAJ RjNFbnRyeSBmM2U7DQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlIGIvc3Jj cGtncy9zY3JpYnVzL3RlbXBsYXRlCmluZGV4IDBlYzkwOGY3ZWY1MC4uMTI1YTdkNTRlNGNmIDEw MDY0NAotLS0gYS9zcmNwa2dzL3NjcmlidXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9zY3JpYnVz L3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdzY3JpYnVz JwogcGtnbmFtZT1zY3JpYnVzCiB2ZXJzaW9uPTEuNS44Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfU0tJUF9SUEFUSD1U UlVFIC1EUVRfUFJFRklYPSR7WEJQU19DUk9TU19CQVNFfS91c3IKLSAtRFdBTlRfR1JBUEhJQ1NN QUdJQ0s9MSIKKyAtRFdBTlRfR1JBUEhJQ1NNQUdJQ0s9MSAtRFdBTlRfQ1BQMTc9T04iCiBob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIHB5dGhvbjMi CiBtYWtlZGVwZW5kcz0icXQ1LWRldmVsIHF0NS10b29scy1kZXZlbCB6bGliLWRldmVsIGNhaXJv LWRldmVsIGxjbXMyLWRldmVsCiAgY3Vwcy1kZXZlbCBsaWJ4bWwyLWRldmVsIGh5cGhlbi1kZXZl bCBnaG9zdHNjcmlwdC1kZXZlbCBib29zdC1kZXZlbAo= --===============5900382368746198823==--