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.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 19915 invoked from network); 25 Jul 2021 15:26:55 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Jul 2021 15:26:55 -0000 Content-Type: multipart/mixed; boundary="===============7744950289163053128==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_tbb=3A_update_to_2021=2E3=2E0?= To: ml@inbox.vuxu.org From: Logarithmus Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 25 Jul 2021 17:26:55 +0200 List-Id: Message-ID: <20210725152655.GgiI5ya3NJA2yw6O3dqkfdBLukGh8m01Uv6MIEaVklo@z> GitHub notification mails are now in MIME to allow UTF8. --===============7744950289163053128== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgTG9nYXJpdGhtdXMgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0xvZ2FyaXRobXVzL3ZvaWQtcGFja2FnZXMgdGJiLTIwMjEKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMyMTY2Cgp0YmI6IHVwZGF0ZSB0byAyMDIxLjMu MApGb2xsb3ctdXAgb2YgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzI3NzQ2LCBAdGh5cG9uICYgQG9sYWZtZXJzbWFubiBtaWdodCBiZSBpbnRlcmVzdGVk Lg0KKipUT0RPKiogZml4IHJldmVyc2UgZGVwZW5kZW5jaWVzOg0KLSBbIF0gT3BlblN1YmRpdjog dXBkYXRlIHRvIDMuNC40Lg0KLSBbIF0gUHJ1c2FTbGljZXI6IHVwZGF0ZSB0byAyLjMuMy4NCi0g WyBdIGxlbmRlcjogdXBkYXRlIHRvIDIuOTMuMS4NCi0gWyBdIGVtYnJlZTogdXBkYXRlIHRvIDMu MTMuMC4NCi0gWyBdIG9wZW5pbWFnZWlvOiB1cGRhdGUgdG8gMi4yLjE2LjAuDQotIFsgXSBvcGVu aW1hZ2VkZW5vaXNlOiB1cGRhdGUgdG8gMS40LjEuDQotIFsgXSBvcGVudmRiOiB1cGRhdGUgdG8g OC4xLjAuDQotIFsgXSBwYXJhdmlldzogdXBkYXRlIHRvIDUuOS4xLg0KLSBbIF0gb2NjdDogcmV2 YnVtcCBkdWUgdG8gdGJiIHVwZGF0ZQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHBy b3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/DQotIFt4XSBJIHVzZSB0aGUgcGFja2FnZXMgYWZm ZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25m aXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMjE2Ni5wYXRjaCBpcyBhdHRh Y2hlZA== --===============7744950289163053128== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-tbb-2021-32166.patch" RnJvbSBkNGZlNTc2NDA3Nzk4OGFlNjA4ZWY2ZjllYTY4ZmE1MzVkMTNhMWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFNhdCwgMTcgSnVsIDIwMjEgMjM6NTc6NTIgKzAzMDAKU3ViamVjdDogW1BB VENIIDAxLzEyXSBod2xvYzogYWRkIGxpYnBjaWFjY2Vzcy1kZXZlbCBtYWtlIGRlcGVuZGVuY3kK Ci0tLQogc3JjcGtncy9od2xvYy90ZW1wbGF0ZSB8IDIyICsrKysrKysrKysrKysrKysrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvaHdsb2MvdGVtcGxhdGUgYi9zcmNwa2dzL2h3bG9jL3RlbXBsYXRlCmlu ZGV4IDgxOGRiMjY5Y2ViYi4uZTQ4MmU3MjUwZDZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2h3bG9j L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaHdsb2MvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTIgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2h3bG9jJwogcGtnbmFtZT1od2xvYwogdmVyc2lvbj0yLjUu MAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotaG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIG5jdXJz ZXMtZGV2ZWwgbGlieG1sMi1kZXZlbCBldWRldi1saWJ1ZGV2LWRldmVsIgoraG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGxpYnRvb2wiCittYWtlZGVwZW5kcz0iY2Fpcm8tZGV2 ZWwgbmN1cnNlcy1kZXZlbCBsaWJ4bWwyLWRldmVsIGxpYnBjaWFjY2Vzcy1kZXZlbCBldWRldi1s aWJ1ZGV2LWRldmVsIgorY2hlY2tkZXBlbmRzPSJ0YXIiCittYWtlX2NoZWNrX2FyZ3M9IlZFUkJP U0U9MSIKIHNob3J0X2Rlc2M9IlBvcnRhYmxlIGFic3RyYWN0aW9uIG9mIGhpZXJhcmNoaWNhbCBo YXJkd2FyZSBhcmNoaXRlY3R1cmVzIgogbWFpbnRhaW5lcj0iTGVhaCBOZXVraXJjaGVuIDxsZWFo QHZ1eHUub3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKQEAgLTE2LDYgKzE4LDE4IEBAIGNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCWk2ODYqfHg4Nl82NCp8cHBjNjQqKSBtYWtl ZGVwZW5kcys9IiBsaWJudW1hLWRldmVsIjs7CiBlc2FjCiAKK2RvX3BhdGNoKCkgeworCSMgc3lz Y2FsbCAyNzkgKG1vdmVfcGFnZXMpIGlzIHVuYXZhaWxhYmxlIGluc2lkZSBHaXRodWIgQWN0aW9u cycgRG9ja2VyIGNvbnRhaW5lciwKKwkjIHRoYXQncyB3aHkgd2Ugc2tpcCB0aGlzIHRlc3QKKwkj dnNlZCAtZSAicy9od2xvY19nZXRfYXJlYV9tZW1sb2NhdGlvbi5jXHMvLyIgLWUgIi9od2xvY19n ZXRfYXJlYV9tZW1sb2NhdGlvbi9kIiBcCisJIwktaSB0ZXN0cy9od2xvYy9NYWtlZmlsZS5pbiAt aSB0ZXN0cy9od2xvYy9NYWtlZmlsZS5hbQorCXZzZWQgLWUgIi9od2xvY19nZXRfYXJlYV9tZW1s b2NhdGlvbi9kIiAtaSB0ZXN0cy9od2xvYy9NYWtlZmlsZS5hbQorfQorCitwcmVfY29uZmlndXJl KCkgeworCWFjbG9jYWwKK30KKwogcG9zdF9pbnN0YWxsKCkgewogCXJtIC1yZiAke0RFU1RESVJ9 L3Vzci9zaGFyZS9kb2MKIH0KQEAgLTMxLDcgKzQ1LDcgQEAgbGliaHdsb2NfcGFja2FnZSgpIHsK IAogbGliaHdsb2MtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1l bnQgZmlsZXMiCi0JZGVwZW5kcz0ibGliaHdsb2M+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJ ZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGliaHdsb2M+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9zaGFy ZS9tYW4vbWFuMwoKRnJvbSBlMDU3Mjc2NDg0ZmY2NTY1OTkyY2RlNTQ4NDU0ZjQ0MDlmMGY2NDk1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2Fy ZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IE1vbiwgNSBKdWwgMjAyMSAwMjo1MDoyNiArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMDIvMTJdIHRiYjogdXBkYXRlIHRvIDIwMjEuMy4wLgoKLS0tCiBjb21t b24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjcGtn cy90YmIvcGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2ggICAgICAgfCAzNjcgKysrKysrKysrKysr KysrKysrKwogc3JjcGtncy90YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25maWcucGF0Y2ggfCAg NTIgKysrCiBzcmNwa2dzL3RiYi9wYXRjaGVzL2hvc3RuYW1lLXVzYWdlLnBhdGNoICAgICB8ICAx MSAtCiBzcmNwa2dzL3RiYi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICAgICB8ICAgNCAr LQogc3JjcGtncy90YmIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjMgKy0t LQogNiBmaWxlcyBjaGFuZ2VkLCA0MzMgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90YmIvcGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RiYi9wYXRjaGVzLzAxLWh3bG9jLXBrZ2NvbmZp Zy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdGJiL3BhdGNoZXMvaG9zdG5hbWUt dXNhZ2UucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwpp bmRleCBhN2FmYmYyYTU2ZjcuLjZiN2NhNWZiYzI0OSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGli cworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMzc2LDEyICsyMzc2LDEwIEBAIGxpYmFudGh5LXVu aWNvZGUuc28uMCBsaWJhbnRoeS11bmljb2RlLTEuMC4wLjIwMjAxMTA5XzEKIGxpYmFudGh5ZGlj LXVuaWNvZGUuc28uMCBsaWJhbnRoeS11bmljb2RlLTEuMC4wLjIwMjAxMTA5XzEKIGxpYmFudGh5 aW5wdXQtdW5pY29kZS5zby4wIGxpYmFudGh5LXVuaWNvZGUtMS4wLjAuMjAyMDExMDlfMQogbGli YW50aHlnb2JqZWN0LTEuMC5zby41IGlidXMtYW50aHktMS41LjZfMQotbGlidGJibWFsbG9jX3By b3h5X2RlYnVnLnNvLjIgdGJiLTQuM18xCiBsaWJ0YmJtYWxsb2NfcHJveHkuc28uMiB0YmItNC4z XzEKIGxpYnRiYm1hbGxvYy5zby4yIHRiYi00LjNfMQotbGlidGJiX2RlYnVnLnNvLjIgdGJiLTQu M18xCi1saWJ0YmIuc28uMiB0YmItNC4zXzEKLWxpYnRiYm1hbGxvY19kZWJ1Zy5zby4yIHRiYi00 LjNfMQorbGlidGJiLnNvLjEyIHRiYi0yMDIxLjMuMF8xCitsaWJ0YmJiaW5kXzJfNS5zby4zIHRi Yi0yMDIxLjMuMF8xCiBsaWJlbWJyZWUuc28uMiBlbWJyZWUtMi41LjFfMQogbGliZ3RraW1hZ2V2 aWV3LnNvLjAgZ3RraW1hZ2V2aWV3LTEuNi40XzEKIGxpYmdvb2NhbnZhcy0yLjAuc28uOSBnb29j YW52YXMtMi4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90YmIvcGF0Y2hlcy8wMC1od2xvYy0y LjUucGF0Y2ggYi9zcmNwa2dzL3RiYi9wYXRjaGVzLzAwLWh3bG9jLTIuNS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNGM5Mjg1YzcxZAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvdGJiL3BhdGNoZXMvMDAtaHdsb2MtMi41LnBhdGNoCkBAIC0wLDAg KzEsMzY3IEBACitBZGp1c3RlZCBieSBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0 aG11cy5kZXY+CisKK0Zyb20gZTk2ZGJmNGI0OGU2ODlhYjgxMGIwNDI4ZDA4NThhNmFiYzJjODNi ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEl2YW4gS29jaGluIDxpdi5rb2NoaW5A Z21haWwuY29tPgorRGF0ZTogVGh1LCAxIEp1bCAyMDIxIDE1OjA3OjM5ICswMzAwCitTdWJqZWN0 OiBbUEFUQ0hdIFVwZ3JhZGUgZnJvbSBIV0xPQyAyLjQgdG8gSFdMT0MgMi41ICgjNDQ4KQorCisq IFVwZ3JhZGUgZnJvbSBIV0xPQyAyLjQgdG8gSFdMT0MgMi41CisqIEludHJvZHVjZSB0YmJiaW5k XzJfNSBsaWJyYXJ5CisqIFJlbW92ZSB0YmJiaW5kXzJfNCBsaWJyYXJ5CisqIFVzZSB0aGUgSFdM T0NfVE9QT0xPR1lfRkxBR19SRVNUUklDVF9UT19DUFVCSU5ESU5HIHRvcG9sb2d5IGZsYWcgKGlu dHJvZHVjZXMgYXMgYSBwYXJ0IG9mIEhXTE9DIDIuNSkgdG8gcmVzdHJpY3QgdG9wb2xvZ3kgZGlz Y292ZXJpbmcgdG8gcHJvY2VzcyBiaW5kaW5nCisqIEZpeCB0ZXN0aW5nIG9uIExpbnV4CisqIEFw cGx5IHJldmlldyBjb21tZW50cworKiBJbXByb3ZlIHdvcmRpbmc6IHZhcmlhYmxlIC0+IHN1YnN0 cmluZworKiBVc2UgcmlnaHQgdGJiYmluZCB2ZXJzaW9uIGZvciBpbmNvbXBhdGlibGUgaHdsb2Nz IHRlc3QKKyogUmV3b3JrIG9wdGlvbiBzZW1hbnRpYworKiBVcGRhdGUgUkVBRE1FLm1kIGZvciBD TWFrZQorKiBSZXdvcmsgcmVhZG1lCisqIFVwZGF0ZSBjbWFrZS9SRUFETUUubWQKKworU2lnbmVk LW9mZi1ieTogS29jaGluLCBJdmFuIDxrb2NoaW4uaXZhbkBpbnRlbC5jb20+CisKK0NvLWF1dGhv cmVkLWJ5OiBBbGVrc2VpIEZlZG90b3YgPGFsZWtzZWkuZmVkb3RvdkBpbnRlbC5jb20+CistLS0K KyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQorIGNtYWtl L1JFQURNRS5tZCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKystLS0KKyBjbWFrZS9o d2xvY19kZXRlY3Rpb24uY21ha2UgICAgICAgICAgICB8ICA5ICsrKystLS0KKyBzcmMvdGJiL2dv dmVybm9yLmNwcCAgICAgICAgICAgICAgICAgICB8ICA0ICstLQorIHNyYy90YmJiaW5kL0NNYWtl TGlzdHMudHh0ICAgICAgICAgICAgIHwgIDIgKy0KKyBzcmMvdGJiYmluZC90YmJfYmluZC5jcHAg ICAgICAgICAgICAgICB8IDIzICsrKysrKysrKysrLS0tLS0KKyB0ZXN0L0NNYWtlTGlzdHMudHh0 ICAgICAgICAgICAgICAgICAgICB8IDMwICsrKysrKysrKystLS0tLS0tLS0tLQorIHRlc3QvY29t bW9uL2NvbW1vbl9hcmVuYV9jb25zdHJhaW50cy5oIHwgMzcgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KKyA4IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXgg MzRhMjNkNDAwLi4zMDE4OTlhY2EgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIv Q01ha2VMaXN0cy50eHQKK0BAIC0xMDAsNiArMTAwLDcgQEAgb3B0aW9uKFRCQl9OT19BUFBDT05U QUlORVIgIkFwcGx5IC9BUFBDT05UQUlORVI6Tk8gKGZvciB0ZXN0aW5nIGJpbmFyaWVzIGZvciBX aW4KKyBvcHRpb24oVEJCNFBZX0JVSUxEICJFbmFibGUgdGJiNHB5IGJ1aWxkIiBPRkYpCisgb3B0 aW9uKFRCQl9DUEYgIkVuYWJsZSBwcmV2aWV3IGZlYXR1cmVzIG9mIHRoZSBsaWJyYXJ5IiBPRkYp Cisgb3B0aW9uKFRCQl9GSU5EX1BBQ0tBR0UgIkVuYWJsZSBzZWFyY2ggZm9yIGV4dGVybmFsIG9u ZVRCQiB1c2luZyBmaW5kX3BhY2thZ2UgaW5zdGVhZCBvZiBidWlsZCBmcm9tIHNvdXJjZXMiIE9G RikKKytvcHRpb24oVEJCX0RJU0FCTEVfSFdMT0NfQVVUT01BVElDX1NFQVJDSCAiRGlzYWJsZSBI V0xPQyBhdXRvbWF0aWMgc2VhcmNoIGJ5IHBrZy1jb25maWcgdG9vbCIgT0ZGKQorIAorIGlmIChO T1QgREVGSU5FRCBCVUlMRF9TSEFSRURfTElCUykKKyAgICAgc2V0KEJVSUxEX1NIQVJFRF9MSUJT IE9OKQorQEAgLTE5NSw3ICsxOTYsNyBAQCBlbHNlKCkKKyAgICAgICAgIGFkZF9zdWJkaXJlY3Rv cnkoc3JjL3RiYm1hbGxvYykKKyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkoc3JjL3RiYm1hbGxv Y19wcm94eSkKKyAgICAgICAgIGlmIChBUFBMRSkKKy0gICAgICAgICAgICBtZXNzYWdlKFNUQVRV UyAiVEJCQmluZCBidWlsZCB0YXJnZXQgaXMgZGlzYWJsZWQgZHVlIHRvIHVuc3VwcG9ydGVkIGVu dmlyb25tZW50IikKKysgICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVEJCQmluZCBidWlsZCB0 YXJnZXRzIGFyZSBkaXNhYmxlZCBkdWUgdG8gdW5zdXBwb3J0ZWQgZW52aXJvbm1lbnQiKQorICAg ICAgICAgZWxzZSgpCisgICAgICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShzcmMvdGJiYmluZCkK KyAgICAgICAgIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9jbWFrZS9SRUFETUUubWQgYi9jbWFrZS9S RUFETUUubWQKK2luZGV4IDM2ZmMzMDNmOS4uYjU4YzJmZjZhIDEwMDY0NAorLS0tIGEvY21ha2Uv UkVBRE1FLm1kCisrKysgYi9jbWFrZS9SRUFETUUubWQKK0BAIC0xMyw2ICsxMyw3IEBAIFRCQjRQ WV9CVUlMRDpCT09MIC0gRW5hYmxlICBJbnRlbChSKSBvbmVBUEkgVGhyZWFkaW5nIEJ1aWxkaW5n IEJsb2NrcyAob25lVEJCKSBQCisgVEJCX0NQRjpCT09MIC0gRW5hYmxlIHByZXZpZXcgZmVhdHVy ZXMgb2YgdGhlIGxpYnJhcnkgKE9GRiBieSBkZWZhdWx0KQorIFRCQl9JTlNUQUxMX1ZBUlM6Qk9P TCAtIEVuYWJsZSBhdXRvLWdlbmVyYXRlZCB2YXJzIGluc3RhbGxhdGlvbihwYWNrYWdlcyBnZW5l cmF0ZWQgYnkgYGNwYWNrYCBhbmQgYG1ha2UgaW5zdGFsbGAgd2lsbCBhbHNvIGluY2x1ZGUgdGhl IHZhcnMgc2NyaXB0KShPRkYgYnkgZGVmYXVsdCkKKyBUQkJfVkFMR1JJTkRfTUVNQ0hFQ0s6Qk9P TCAtIEVuYWJsZSBzY2FuIGZvciBtZW1vcnkgbGVha3MgdXNpbmcgVmFsZ3JpbmQgKE9GRiBieSBk ZWZhdWx0KQorK1RCQl9ESVNBQkxFX0hXTE9DX0FVVE9NQVRJQ19TRUFSQ0ggLSBEaXNhYmxlIEhX TE9DIGF1dG9tYXRpYyBzZWFyY2ggYnkgcGtnLWNvbmZpZyB0b29sIChPRkYgYnkgZGVmYXVsdCkK KyBgYGAKKyAKKyAjIyBDb25maWd1cmUsIGJ1aWxkIGFuZCB0ZXN0CitAQCAtNDIsOSArNDMsOSBA QCBTb21lIHVzZWZ1bCBvcHRpb25zOgorIAorICMjIyMgVEJCQmluZCBsaWJyYXJ5IGNvbmZpZ3Vy YXRpb24KKyAKKy1UaGUgVEJCYmluZCBsaWJyYXJ5IGhhcyB0d28gdmVyc2lvbnM6IGB0YmJiaW5k YCBhbmQgYHRiYmJpbmRfMl8wYC4gRWFjaCBvZiB0aGVzZSB2ZXJzaW9ucyBpcyBsaW5rZWQgd2l0 aCBjb3JyZXNwb25kaW5nIEhXTE9DIGxpYnJhcnkgdmVyc2lvbjogYHRiYmJpbmRgIGxpbmtzIHdp dGggSFdMT0MgMS4xMS54ICwgYHRiYmJpbmRfMl8wYCBsaW5rcyB3aXRoIEhXTE9DIDIueC4KKytU aGUgVEJCYmluZCBsaWJyYXJ5IGhhcyB0aHJlZSB2ZXJzaW9uczogYHRiYmJpbmRgLCBgdGJiYmlu ZF8yXzBgIGFuZCBgdGJiYmluZF8yXzVgLiBFYWNoIG9mIHRoZXNlIHZlcnNpb25zIGlzIGxpbmtl ZCB3aXRoIGNvcnJlc3BvbmRpbmcgSFdMT0MgbGlicmFyeSB2ZXJzaW9uOiBgdGJiYmluZGAgbGlu a3Mgd2l0aCBIV0xPQyAxLjExLnggLCBgdGJiYmluZF8yXzBgIGxpbmtzIHdpdGggSFdMT0MgMi4x LTIuNCwgYHRiYmJpbmRfMl81YCBsaW5rcyB3aXRoIEhXTE9DIDIuNSBhbmQgbGF0ZXIuCisgCist VG8gZW5hYmxlIHRoZSBUQkJCaW5kIGxpYnJhcnkgYnVpbGQgb3Igc3BlY2lhbCB0ZXN0cyB0aGF0 IHBlcmZvcm1lZCBpbnNpZGUgdGhlIEhXTE9DIGVudmlyb25tZW50LCBwbGVhc2Ugc3BlY2lmeSB0 aGUgZm9sbG93aW5nIENNYWtlIHZhcmlhYmxlczoKKytUaGUgc2VhcmNoIGZvciBhIHN1aXRhYmxl IHZlcnNpb24gb2YgdGhlIEhXTE9DIGxpYnJhcnkgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQg aWYgeW91IHdhbnQgdG8gdXNlIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgeW91 IGNhbiBzcGVjaWZ5IHRoZSBwYXRoIHRvIGl0IG1hbnVhbGx5IHVzaW5nIHRoZSBmb2xsb3dpbmcg Q01ha2UgdmFyaWFibGVzOgorIAorICAtIGBDTUFLRV9IV0xPQ188SFdMT0NfVkVSPl9MSUJSQVJZ X1BBVEhgIC0gcGF0aCB0byB0aGUgY29ycmVzcG9uZGluZyBIV0xPQyB2ZXJzaW9uIHNoYXJlZCBs aWJyYXJ5IG9uIExpbnV4IG9yIHBhdGggdG8gYC5saWJgIGZpbGUgb24gV2luZG93cy4KKyAgLSBg Q01BS0VfSFdMT0NfPEhXTE9DX1ZFUj5fSU5DTFVERV9QQVRIYCAtIHBhdGggdG8gdGhlIGNvcnJl c3BvbmRpbmcgSFdMT0MgdmVyc2lvbiBpbmNsdWRlcyBkaXJlY3RvcnkuCitAQCAtNTIsNyArNTMs MTEgQEAgVG8gZW5hYmxlIHRoZSBUQkJCaW5kIGxpYnJhcnkgYnVpbGQgb3Igc3BlY2lhbCB0ZXN0 cyB0aGF0IHBlcmZvcm1lZCBpbnNpZGUgdGhlIEgKKyBXaW5kb3dzIHJlcXVpcmVzIG9uZSBhZGRp dGlvbmFsIHZhcmlhYmxlIGZvciBjb3JyZWN0IFRCQkJpbmQgbGlicmFyeSBidWlsZGluZzoKKyAg LSBgQ01BS0VfSFdMT0NfPEhXTE9DX1ZFUj5fRExMX1BBVEhgIC0gcGF0aCB0byB0aGUgY29ycmVz cG9uZGluZyBIV0xPQyB2ZXJzaW9uIGAuZGxsYCBmaWxlLgorIAorLWBIV0xPQ19WRVJgIHZhcmlh YmxlIHVzZWQgYWJvdmUgY2FuIGJlIHJlcGxhY2VkIHdpdGggb25lIG9mIHRoZSB0d28gdmFsdWVz OiBgMV8xMWAgZm9yIHRoZSBgdGJiYmluZGAgbGlicmFyeSBjb25maWd1cmF0aW9uIGFuZCBgMmAg Zm9yIHRoZSBgdGJiYmluZF8yXzBgIGxpYnJhcnkgY29uZmlndXJhdGlvbi4KKytgSFdMT0NfVkVS YCBzdWJzdHJpbmcgdXNlZCBhYm92ZSBjYW4gYmUgcmVwbGFjZWQgd2l0aCBvbmUgb2YgdGhlIHRo cmVlIHZhbHVlczogYDFfMTFgIGZvciB0aGUgYHRiYmJpbmRgIGxpYnJhcnkgY29uZmlndXJhdGlv biwgYDJgIGZvciB0aGUgYHRiYmJpbmRfMl8wYCwgYW5kIGAyXzVgIGZvciB0aGUgYHRiYmJpbmRf Ml81YCBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uCisrCisrSWYgeW91IHNwZWNpZnkgdmFyaWFibGVz IGZvciBzZXZlcmFsIFRCQkJpbmQgdmVyc2lvbnMsIHRoZW4gYnVpbGRpbmcgcHJvY2VzcyBmb3Ig YWxsIG9mIHRoZXNlIHZlcnNpb25zIHdpbGwgYmUgcGVyZm9ybWVkIGR1cmluZyBzaW5nbGUgYnVp bGQgc2Vzc2lvbi4KKysKKytTcGVjaWZ5IHRoZSBgVEJCX0RJU0FCTEVfSFdMT0NfQVVUT01BVElD X1NFQVJDSGAgdG8gZGlzYWJsZSBIV0xPQyBsaWJyYXJpZXMgYXV0b21hdGljIHNlYXJjaC4KKyAK KyAjIyMgQnVpbGQKKyAKK2RpZmYgLS1naXQgYS9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2Ug Yi9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UKK2luZGV4IGUxZWVjYTVmYS4uZGU3ZjNjMDQ3 IDEwMDY0NAorLS0tIGEvY21ha2UvaHdsb2NfZGV0ZWN0aW9uLmNtYWtlCisrKysgYi9jbWFrZS9o d2xvY19kZXRlY3Rpb24uY21ha2UKK0BAIC0xMiw3ICsxMiw3IEBACisgIyBTZWUgdGhlIExpY2Vu c2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisg IyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAKKy1saXN0KEFQUEVORCBIV0xPQ19S RVFVSVJFRF9WRVJTSU9OUyAxXzExIDIgMl80KQorK2xpc3QoQVBQRU5EIEhXTE9DX1JFUVVJUkVE X1ZFUlNJT05TIDFfMTEgMiAyXzUpCisgCisgZm9yZWFjaChod2xvY192ZXJzaW9uICR7SFdMT0Nf UkVRVUlSRURfVkVSU0lPTlN9KQorICAgICBpZiAoTk9UIFdJTjMyKQorQEAgLTU1LDEwICs1Niwx MCBAQCBpZiAoTk9UIEhXTE9DX1RBUkdFVF9FWFBMSUNJVExZX0RFRklORUQgQU5ECisgICAgICAg ICBpZiAoSFdMT0NfRk9VTkQpCisgICAgICAgICAgICAgaWYgKEhXTE9DX1ZFUlNJT04gVkVSU0lP Tl9MRVNTIDIpCisgICAgICAgICAgICAgICAgIHNldChUQkJCSU5EX0xJQlJBUllfTkFNRSB0YmJi aW5kKQorLSAgICAgICAgICAgIGVsc2VpZihIV0xPQ19WRVJTSU9OIFZFUlNJT05fTEVTUyAyLjQp CisrICAgICAgICAgICAgZWxzZWlmKEhXTE9DX1ZFUlNJT04gVkVSU0lPTl9MRVNTIDIuNSkKKyAg ICAgICAgICAgICAgICAgc2V0KFRCQkJJTkRfTElCUkFSWV9OQU1FIHRiYmJpbmRfMl8wKQorICAg ICAgICAgICAgIGVsc2UoKQorLSAgICAgICAgICAgICAgICBzZXQoVEJCQklORF9MSUJSQVJZX05B TUUgdGJiYmluZF8yXzQpCisrICAgICAgICAgICAgICAgIHNldChUQkJCSU5EX0xJQlJBUllfTkFN RSB0YmJiaW5kXzJfNSkKKyAgICAgICAgICAgICBlbmRpZigpCisgICAgICAgICBlbmRpZigpCisg ICAgIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9zcmMvdGJiL2dvdmVybm9yLmNwcCBiL3NyYy90YmIv Z292ZXJub3IuY3BwCitpbmRleCBiZjRlNDAyZDEuLmI4NDJlMDc1ZiAxMDA2NDQKKy0tLSBhL3Ny Yy90YmIvZ292ZXJub3IuY3BwCisrKysgYi9zcmMvdGJiL2dvdmVybm9yLmNwcAorQEAgLTM2Miw3 ICszNjIsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgTGlua1RhYmxlU2l6ZSA9IHNpemVvZihU YmJCaW5kTGlua1RhYmxlKSAvIHNpemVvZihkeW5hbWljXworIAorICNkZWZpbmUgVEJCQklORF9O QU1FIExJQlJBUllfUFJFRklYICJ0YmJiaW5kIiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJ T04KKyAjZGVmaW5lIFRCQkJJTkRfMl8wX05BTUUgTElCUkFSWV9QUkVGSVggInRiYmJpbmRfMl8w IiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKy0jZGVmaW5lIFRCQkJJTkRfMl80X05B TUUgTElCUkFSWV9QUkVGSVggInRiYmJpbmRfMl80IiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRF TlNJT04KKysjZGVmaW5lIFRCQkJJTkRfMl81X05BTUUgTElCUkFSWV9QUkVGSVggInRiYmJpbmRf Ml81IiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKyAjZW5kaWYgLyogX1dJTjMyIHx8 IF9XSU42NCB8fCBfX2xpbnV4X18gKi8KKyAKKyAvLyBSZXByZXNlbnRhdGlvbiBvZiBzeXN0ZW0g aGFyZHdhcmUgdG9wb2xvZ3kgaW5mb3JtYXRpb24gb24gdGhlIFRCQiBzaWRlLgorQEAgLTM4OSw3 ICszODksNyBAQCBjb25zdCBjaGFyKiBsb2FkX3RiYmJpbmRfc2hhcmVkX29iamVjdCgpIHsKKyAg ICAgR2V0TmF0aXZlU3lzdGVtSW5mbygmc2kpOworICAgICBpZiAoc2kuZHdOdW1iZXJPZlByb2Nl c3NvcnMgPiAzMikgcmV0dXJuIG51bGxwdHI7CisgI2VuZGlmIC8qIF9XSU4zMiAmJiAhX1dJTjY0 ICovCistICAgIGZvciAoY29uc3QgYXV0byYgdGJiYmluZF92ZXJzaW9uIDoge1RCQkJJTkRfMl80 X05BTUUsIFRCQkJJTkRfMl8wX05BTUUsIFRCQkJJTkRfTkFNRX0pIHsKKysgICAgZm9yIChjb25z dCBhdXRvJiB0YmJiaW5kX3ZlcnNpb24gOiB7VEJCQklORF8yXzVfTkFNRSwgVEJCQklORF8yXzBf TkFNRSwgVEJCQklORF9OQU1FfSkgeworICAgICAgICAgaWYgKGR5bmFtaWNfbGluayh0YmJiaW5k X3ZlcnNpb24sIFRiYkJpbmRMaW5rVGFibGUsIExpbmtUYWJsZVNpemUpKSB7CisgICAgICAgICAg ICAgcmV0dXJuIHRiYmJpbmRfdmVyc2lvbjsKKyAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9zcmMv dGJiYmluZC9DTWFrZUxpc3RzLnR4dCBiL3NyYy90YmJiaW5kL0NNYWtlTGlzdHMudHh0CitpbmRl eCAwMjk4OTM3NTEuLmU1Y2RiZjhiYiAxMDA2NDQKKy0tLSBhL3NyYy90YmJiaW5kL0NNYWtlTGlz dHMudHh0CisrKysgYi9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAorQEAgLTk5LDcgKzk5LDcg QEAgaWYgKE5PVCBERUZJTkVEIEhXTE9DX1RBUkdFVF9FWFBMSUNJVExZX0RFRklORUQgQU5EIERF RklORUQgSFdMT0NfTElCUkFSSUVTKQorIGVsc2UoKQorICAgICB0YmJiaW5kX2J1aWxkKHRiYmJp bmQgICAgIEhXTE9DOjpod2xvY18xXzExKQorICAgICB0YmJiaW5kX2J1aWxkKHRiYmJpbmRfMl8w IEhXTE9DOjpod2xvY18yICAgKQorLSAgICB0YmJiaW5kX2J1aWxkKHRiYmJpbmRfMl80IEhXTE9D Ojpod2xvY18yXzQgKQorKyAgICB0YmJiaW5kX2J1aWxkKHRiYmJpbmRfMl81IEhXTE9DOjpod2xv Y18yXzUgKQorIGVuZGlmKCkKKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvdGJiYmluZC90YmJfYmlu ZC5jcHAgYi9zcmMvdGJiYmluZC90YmJfYmluZC5jcHAKK2luZGV4IDk3YmUzMDhjNy4uODhjOTU2 YWNiIDEwMDY0NAorLS0tIGEvc3JjL3RiYmJpbmQvdGJiX2JpbmQuY3BwCisrKysgYi9zcmMvdGJi YmluZC90YmJfYmluZC5jcHAKK0BAIC0zNCw3ICszNCw4IEBACisgI3ByYWdtYSBHQ0MgZGlhZ25v c3RpYyBwb3AKKyAjZW5kaWYKKyAKKy0jZGVmaW5lIF9fSFdMT0NfSFlCUklEX0NQVVNfSU5URVJG QUNFU19QUkVTRU5UIChIV0xPQ19BUElfVkVSU0lPTiA+PSAweDIwNDAwKQorKyNkZWZpbmUgX19U QkJCSU5EX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCAoSFdMT0NfQVBJX1ZF UlNJT04gPj0gMHgyMDQwMCkKKysjZGVmaW5lIF9fVEJCQklORF9IV0xPQ19UT1BPTE9HWV9GTEFH X1JFU1RSSUNUX1RPX0NQVUJJTkRJTkdfUFJFU0VOVCAoSFdMT0NfQVBJX1ZFUlNJT04gPj0gMHgy MDUwMCkKKyAKKyAvLyBNb3N0IG9mIGh3bG9jIGNhbGxzIHJldHVybnMgbmVnYXRpdmUgZXhpdCBj b2RlIG9uIGVycm9yLgorIC8vIFRoaXMgbWFjcm8gdHJhY2tzIGVycm9yIGNvZGVzIHRoYXQgYXJl IHJldHVybmVkIGZyb20gdGhlIGh3bG9jIGludGVyZmFjZXMuCitAQCAtODUsNiArODYsMTYgQEAg Y2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgLy8gUGFyc2UgdG9wb2xvZ3kKKyAg ICAgICAgIGlmICggaHdsb2NfdG9wb2xvZ3lfaW5pdCggJnRvcG9sb2d5ICkgPT0gMCApIHsKKyAg ICAgICAgICAgICBpbml0aWFsaXphdGlvbl9zdGF0ZSA9IHRvcG9sb2d5X2FsbG9jYXRlZDsKKysj aWYgX19UQkJCSU5EX0hXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklORElOR19Q UkVTRU5UCisrICAgICAgICAgICAgaWYgKCBncm91cHNfbnVtID09IDEgJiYKKysgICAgICAgICAg ICAgICAgIGh3bG9jX3RvcG9sb2d5X3NldF9mbGFncyh0b3BvbG9neSwKKysgICAgICAgICAgICAg ICAgICAgICBIV0xPQ19UT1BPTE9HWV9GTEFHX0lTX1RISVNTWVNURU0gfAorKyAgICAgICAgICAg ICAgICAgICAgIEhXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklORElORworKyAg ICAgICAgICAgICAgICAgKSAhPSAwCisrICAgICAgICAgICAgKSB7CisrICAgICAgICAgICAgICAg IHJldHVybjsKKysgICAgICAgICAgICB9CisrI2VuZGlmCisgICAgICAgICAgICAgaWYgKCBod2xv Y190b3BvbG9neV9sb2FkKCB0b3BvbG9neSApID09IDAgKSB7CisgICAgICAgICAgICAgICAgIGlu aXRpYWxpemF0aW9uX3N0YXRlID0gdG9wb2xvZ3lfbG9hZGVkOworICAgICAgICAgICAgIH0KK0BA IC0xMzUsNyArMTQ2LDcgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgICAg IG51bWFfaW5kZXhlc19saXN0LnJlc2l6ZShudW1hX25vZGVzX2NvdW50KTsKKyAgICAgICAgICAg ICBod2xvY19vYmpfdCBub2RlX2J1ZmZlcjsKKyAgICAgICAgICAgICBod2xvY19iaXRtYXBfZm9y ZWFjaF9iZWdpbihpLCBwcm9jZXNzX25vZGVfYWZmaW5pdHlfbWFzaykgeworLSAgICAgICAgICAg ICAgICBub2RlX2J1ZmZlciA9IGh3bG9jX2dldF9vYmpfYnlfdHlwZSh0b3BvbG9neSwgSFdMT0Nf T0JKX05VTUFOT0RFLCBpKTsKKysgICAgICAgICAgICAgICAgbm9kZV9idWZmZXIgPSBod2xvY19n ZXRfbnVtYW5vZGVfb2JqX2J5X29zX2luZGV4KHRvcG9sb2d5LCBpKTsKKyAgICAgICAgICAgICAg ICAgbnVtYV9pbmRleGVzX2xpc3RbY291bnRlcl0gPSBzdGF0aWNfY2FzdDxpbnQ+KG5vZGVfYnVm ZmVyLT5sb2dpY2FsX2luZGV4KTsKKyAKKyAgICAgICAgICAgICAgICAgaWYgKCBudW1hX2luZGV4 ZXNfbGlzdFtjb3VudGVyXSA+IG1heF9udW1hX2luZGV4ICkgeworQEAgLTE1MCw3ICsxNjEsNyBA QCBjbGFzcyBwbGF0Zm9ybV90b3BvbG9neSB7CisgICAgICAgICAgICAgbnVtYV9hZmZpbml0eV9t YXNrc19saXN0LnJlc2l6ZShtYXhfbnVtYV9pbmRleCArIDEpOworICAgICAgICAgICAgIGludCBp bmRleCA9IDA7CisgICAgICAgICAgICAgaHdsb2NfYml0bWFwX2ZvcmVhY2hfYmVnaW4oaSwgcHJv Y2Vzc19ub2RlX2FmZmluaXR5X21hc2spIHsKKy0gICAgICAgICAgICAgICAgbm9kZV9idWZmZXIg PSBod2xvY19nZXRfb2JqX2J5X3R5cGUodG9wb2xvZ3ksIEhXTE9DX09CSl9OVU1BTk9ERSwgaSk7 CisrICAgICAgICAgICAgICAgIG5vZGVfYnVmZmVyID0gaHdsb2NfZ2V0X251bWFub2RlX29ial9i eV9vc19pbmRleCh0b3BvbG9neSwgaSk7CisgICAgICAgICAgICAgICAgIGluZGV4ID0gc3RhdGlj X2Nhc3Q8aW50Pihub2RlX2J1ZmZlci0+bG9naWNhbF9pbmRleCk7CisgCisgICAgICAgICAgICAg ICAgIGh3bG9jX2NwdXNldF90JiBjdXJyZW50X21hc2sgPSBudW1hX2FmZmluaXR5X21hc2tzX2xp c3RbaW5kZXhdOworQEAgLTE2OCw3ICsxNzksNyBAQCBjbGFzcyBwbGF0Zm9ybV90b3BvbG9neSB7 CisgICAgICAgICAgICAgY29yZV90eXBlc19pbmRleGVzX2xpc3QucHVzaF9iYWNrKC0xKTsKKyAg ICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CistI2lmIF9fSFdMT0NfSFlCUklEX0NQVVNf SU5URVJGQUNFU19QUkVTRU5UCisrI2lmIF9fVEJCQklORF9IV0xPQ19IWUJSSURfQ1BVU19JTlRF UkZBQ0VTX1BSRVNFTlQKKyAgICAgICAgIF9fVEJCX0FTU0VSVChod2xvY19nZXRfYXBpX3ZlcnNp b24oKSA+PSAweDIwNDAwLCAiSHlicmlkIENQVXMgc3VwcG9ydCBpbnRlcmZhY2VzIHJlcXVpcmVk IEhXTE9DID49IDIuNCIpOworICAgICAgICAgLy8gUGFyc2luZyB0aGUgaHlicmlkIENQVSB0b3Bv bG9neQorICAgICAgICAgaW50IGNvcmVfdHlwZXNfbnVtYmVyID0gaHdsb2NfY3B1a2luZHNfZ2V0 X25yKHRvcG9sb2d5LCAwKTsKK0BAIC0xOTYsOSArMjA3LDkgQEAgY2xhc3MgcGxhdGZvcm1fdG9w b2xvZ3kgeworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgfQor LSNlbHNlIC8qIV9fSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UKi8KKysjZWxz ZSAvKiFfX1RCQkJJTkRfSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UKi8KKyAg ICAgICAgIGJvb2wgY29yZV90eXBlc19wYXJzaW5nX2Jyb2tlbnt0cnVlfTsKKy0jZW5kaWYgLypf X0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCovCisrI2VuZGlmIC8qX19UQkJC SU5EX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCovCisgCisgICAgICAgICBp ZiAoY29yZV90eXBlc19wYXJzaW5nX2Jyb2tlbikgeworICAgICAgICAgICAgIGZvciAoYXV0byYg Y29yZV90eXBlX21hc2sgOiBjb3JlX3R5cGVzX2FmZmluaXR5X21hc2tzX2xpc3QpIHsKK2RpZmYg LS1naXQgYS90ZXN0L0NNYWtlTGlzdHMudHh0IGIvdGVzdC9DTWFrZUxpc3RzLnR4dAoraW5kZXgg YmRhZTllMmIxLi5jMmI5ZDZkYmEgMTAwNjQ0CistLS0gYS90ZXN0L0NNYWtlTGlzdHMudHh0Cisr KysgYi90ZXN0L0NNYWtlTGlzdHMudHh0CitAQCAtMjc1LDkgKzI3NSw5IEBAIGZ1bmN0aW9uKHRi Yl9hZGRfdGJiYmluZF90ZXN0KQorICAgICAgICAgRkFJTF9SRUdVTEFSX0VYUFJFU1NJT04gIlN0 YXR1czouKkZBSUxVUkUiCisgICAgICkKKyAKKy0gICAgaWYgKFRBUkdFVCBIV0xPQzo6aHdsb2Nf Ml80IEFORCBOT1QgSFdMT0NfMl80X1RFU1RTX1NUQVRVU19TSE9XTikKKy0gICAgICAgIG1lc3Nh Z2UoU1RBVFVTICJIV0xPQyAyLjQgZGVwZW5kZW50IHRlc3RzIHdlcmUgZW5hYmxlZC4iKQorLSAg ICAgICAgc2V0KEhXTE9DXzJfNF9URVNUU19TVEFUVVNfU0hPV04gVFJVRSBQQVJFTlRfU0NPUEUp CisrICAgIGlmIChUQVJHRVQgSFdMT0M6Omh3bG9jXzJfNSBBTkQgTk9UIEhXTE9DXzJfNV9URVNU U19TVEFUVVNfU0hPV04pCisrICAgICAgICBtZXNzYWdlKFNUQVRVUyAiSFdMT0MgMi41IGRlcGVu ZGVudCB0ZXN0cyB3ZXJlIGVuYWJsZWQuIikKKysgICAgICAgIHNldChIV0xPQ18yXzVfVEVTVFNf U1RBVFVTX1NIT1dOIFRSVUUgUEFSRU5UX1NDT1BFKQorICAgICBlbmRpZigpCisgCisgICAgIGlm IChUQVJHRVQgSFdMT0M6Omh3bG9jXzIgQU5EIE5PVCBIV0xPQ18yX1RFU1RTX1NUQVRVU19TSE9X TikKK0BAIC0yOTEsMjIgKzI5MSwyMiBAQCBmdW5jdGlvbih0YmJfYWRkX3RiYmJpbmRfdGVzdCkK KyAgICAgZW5kaWYoKQorIAorICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VTCistICAg ICAgICBod2xvY18yXzQKKysgICAgICAgIGh3bG9jXzJfNQorICAgICAgICAgaHdsb2NfMgorICAg ICAgICAgaHdsb2NfMV8xMQorLSAgICAgICAgaHdsb2NfMl80X2h3bG9jXzIKKy0gICAgICAgIGh3 bG9jXzJfNF9od2xvY18xXzExCisrICAgICAgICBod2xvY18yXzVfaHdsb2NfMgorKyAgICAgICAg aHdsb2NfMl81X2h3bG9jXzFfMTEKKyAgICAgICAgIGh3bG9jXzJfaHdsb2NfMV8xMQorLSAgICAg ICAgaHdsb2NfMl80X2h3bG9jXzJfaHdsb2NfMV8xMQorKyAgICAgICAgaHdsb2NfMl81X2h3bG9j XzJfaHdsb2NfMV8xMQorICAgICApCisgCistICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FT RV8wX1ZBUlMgdGJiYmluZF8yXzQgImh3bG9jXzJfNCIpCisrICAgIGxpc3QoQVBQRU5EIEhXTE9D X1RFU1RfQ0FTRV8wX1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJfNSIpCisgICAgIGxpc3QoQVBQ RU5EIEhXTE9DX1RFU1RfQ0FTRV8xX1ZBUlMgdGJiYmluZF8yICAgImh3bG9jXzIiKQorICAgICBs aXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfMl9WQVJTIHRiYmJpbmQgICAgICJod2xvY18xXzEx IikKKy0gICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzNfVkFSUyB0YmJiaW5kXzJfNCAi aHdsb2NfMl80LGh3bG9jXzIiKQorLSAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfNF9W QVJTIHRiYmJpbmRfMl80ICJod2xvY18yXzQsaHdsb2NfMV8xMSIpCisrICAgIGxpc3QoQVBQRU5E IEhXTE9DX1RFU1RfQ0FTRV8zX1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJfNSxod2xvY18yIikK KysgICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzRfVkFSUyB0YmJiaW5kXzJfNSAiaHds b2NfMl81LGh3bG9jXzFfMTEiKQorICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfNV9W QVJTIHRiYmJpbmRfMiAgICJod2xvY18yLGh3bG9jXzFfMTEiKQorLSAgICBsaXN0KEFQUEVORCBI V0xPQ19URVNUX0NBU0VfNl9WQVJTIHRiYmJpbmRfMl80ICJod2xvY18yXzQsaHdsb2NfMixod2xv Y18xXzExIikKKysgICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzZfVkFSUyB0YmJiaW5k XzJfNSAiaHdsb2NfMl81LGh3bG9jXzIsaHdsb2NfMV8xMSIpCisgCisgICAgIGZvcmVhY2goVEVT VF9DQVNFICR7SFdMT0NfVEVTVF9DQVNFU30pCisgICAgICAgICBsaXN0KEZJTkQgSFdMT0NfVEVT VF9DQVNFUyAke1RFU1RfQ0FTRX0gVEVTVF9DQVNFX0lOREVYKQorQEAgLTMzMSw3ICszMzEsNyBA QCBlbmRmdW5jdGlvbigpCisgIyBDb3B5IGxpYnJhcmllcyB0byB0ZXN0IGZvbGRlciB0byBtYWtl IGl0IHZpc2libGUgZHVyaW5nIHRlc3RzIGV4ZWN1dGlvbiBpZiBleHRlcm5hbCBUQkIgaXMgdGVz dGVkLgorICMgVE9ETzogY2hlY2sgYW5kIHVwZGF0ZSBmb3IgbXVsdGktY29uZmlnIGdlbmVyYXRv cnMuCisgaWYgKFRCQl9GT1VORCkKKy0gICAgbGlzdChBUFBFTkQgX3RiYl90ZXN0X2NvbXBvbmVu dHMgdGJiIHRiYm1hbGxvYyB0YmJtYWxsb2NfcHJveHkgdGJiYmluZCB0YmJiaW5kXzJfMCB0YmJi aW5kXzJfNCkKKysgICAgbGlzdChBUFBFTkQgX3RiYl90ZXN0X2NvbXBvbmVudHMgdGJiIHRiYm1h bGxvYyB0YmJtYWxsb2NfcHJveHkgdGJiYmluZCB0YmJiaW5kXzJfMCB0YmJiaW5kXzJfNSkKKyAg ICAgZm9yZWFjaChfY29tcG9uZW50ICR7X3RiYl90ZXN0X2NvbXBvbmVudHN9KQorICAgICAgICAg aWYgKFRBUkdFVCBUQkI6OiR7X2NvbXBvbmVudH0pCisgICAgICAgICAgICAgZ2V0X3Byb3BlcnR5 KCR7X2NvbXBvbmVudH1fbGliX2ZpbGVfbG9jYXRpb24gVEFSR0VUIFRCQjo6JHtfY29tcG9uZW50 fSBQUk9QRVJUWSBMT0NBVElPTikKK0BAIC01OTMsNiArNTkzLDYgQEAgaWYgKE5PVCAiJHtDTUFL RV9TWVNURU1fUFJPQ0VTU09SfSIgTUFUQ0hFUyAibWlwcyIpCisgICAgIHRiYl9hZGRfdGVzdChT VUJESVIgdGJibWFsbG9jIE5BTUUgdGVzdF9tYWxsb2NfbmV3X2hhbmRsZXIgREVQRU5ERU5DSUVT IFRCQjo6dGJibWFsbG9jX3Byb3h5KQorIGVuZGlmKCkKKyAKKy11bnNldChIV0xPQ18yXzRfVEVT VFNfU1RBVFVTX1NIT1dOKQorK3Vuc2V0KEhXTE9DXzJfNV9URVNUU19TVEFUVVNfU0hPV04pCisg dW5zZXQoSFdMT0NfMl9URVNUU19TVEFUVVNfU0hPV04pCisgdW5zZXQoSFdMT0NfMV8xMV9URVNU U19TVEFUVVNfU0hPV04pCitkaWZmIC0tZ2l0IGEvdGVzdC9jb21tb24vY29tbW9uX2FyZW5hX2Nv bnN0cmFpbnRzLmggYi90ZXN0L2NvbW1vbi9jb21tb25fYXJlbmFfY29uc3RyYWludHMuaAoraW5k ZXggMmEwYjFlYTk3Li41ZWZjNzEwODIgMTAwNjQ0CistLS0gYS90ZXN0L2NvbW1vbi9jb21tb25f YXJlbmFfY29uc3RyYWludHMuaAorKysrIGIvdGVzdC9jb21tb24vY29tbW9uX2FyZW5hX2NvbnN0 cmFpbnRzLmgKK0BAIC0zOCw5ICszOCwyNiBAQAorIAorICNpZiAoX1dJTjMyIHx8IF9XSU42NCkg JiYgX19UQkJfSFdMT0NfVkFMSURfRU5WSVJPTk1FTlQKKyAjaW5jbHVkZSA8d2luZG93cy5oPgor LWludCBnZXRfcHJvY2Vzc29yc19ncm91cHNfY291bnQoKSB7IHJldHVybiBHZXRBY3RpdmVQcm9j ZXNzb3JHcm91cENvdW50KCk7IH0KKytpbnQgZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSB7 CisrICAgIFNZU1RFTV9JTkZPIHNpOworKyAgICBHZXROYXRpdmVTeXN0ZW1JbmZvKCZzaSk7Cisr ICAgIERXT1JEX1BUUiBwYW0sIHNhbSwgbSA9IDE7CisrICAgIEdldFByb2Nlc3NBZmZpbml0eU1h c2soIEdldEN1cnJlbnRQcm9jZXNzKCksICZwYW0sICZzYW0gKTsKKysgICAgaW50IG5wcm9jID0g MDsKKysgICAgZm9yICggc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoRFdPUkRfUFRSKSAq IENIQVJfQklUOyArK2ksIG0gPDw9IDEgKSB7CisrICAgICAgICBpZiAoIHBhbSAmIG0gKQorKyAg ICAgICAgICAgICsrbnByb2M7CisrICAgIH0KKysgICAgLy8gU2V0dGluZyB1cCBwcm9jZXNzb3Ig Z3JvdXBzIGluIGNhc2UgdGhlIHByb2Nlc3MgZG9lcyBub3QgcmVzdHJpY3QgYWZmaW5pdHkgbWFz ayBhbmQgbW9yZSB0aGFuIG9uZSBwcm9jZXNzb3IgZ3JvdXAgaXMgcHJlc2VudAorKyAgICBpZiAo IG5wcm9jID09IChpbnQpc2kuZHdOdW1iZXJPZlByb2Nlc3NvcnMgICkgeworKyAgICAgICAgLy8g VGhlIHByb2Nlc3MgZG9lcyBub3QgaGF2ZSByZXN0cmljdGluZyBhZmZpbml0eSBtYXNrIGFuZCBt dWx0aXBsZSBwcm9jZXNzb3IgZ3JvdXBzIGFyZSBwb3NzaWJsZQorKyAgICAgICAgcmV0dXJuIChp bnQpR2V0QWN0aXZlUHJvY2Vzc29yR3JvdXBDb3VudCgpOworKyAgICB9IGVsc2UgeworKyAgICAg ICAgcmV0dXJuIDE7CisrICAgIH0KKyt9CisgI2Vsc2UKKy1pbnQgZ2V0X3Byb2Nlc3NvcnNfZ3Jv dXBzX2NvdW50KCkgeyByZXR1cm4gMTsgfQorK2ludCBnZXRfcHJvY2Vzc29yc19ncm91cF9jb3Vu dCgpIHsgcmV0dXJuIDE7IH0KKyAjZW5kaWYKKyAKKyAvL1RPRE86IFdyaXRlIGEgdGVzdCB0aGF0 IGNoZWNrcyBmb3IgbWVtb3J5IGxlYWtzIGR1cmluZyBkeW5hbWljIGxpbmsvdW5saW5rIG9mIFRC QmJpbmQuCitAQCAtNjksNiArODYsNyBAQCBpbnQgZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBzX2NvdW50 KCkgeyByZXR1cm4gMTsgfQorICNlbmRpZgorIAorICNkZWZpbmUgX19IV0xPQ19IWUJSSURfQ1BV U19JTlRFUkZBQ0VTX1BSRVNFTlQgKEhXTE9DX0FQSV9WRVJTSU9OID49IDB4MjA0MDApCisrI2Rl ZmluZSBfX0hXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklORElOR19QUkVTRU5U IChIV0xPQ19BUElfVkVSU0lPTiA+PSAweDIwNTAwKQorIC8vIEF0IHRoaXMgbW9tZW50IHRoZSBo eWJyaWQgQ1BVcyBIV0xPQyBpbnRlcmZhY2VzIHJldHVybnMgdW5leHBlY3RlZCByZXN1bHRzIG9u IHNvbWUgV2luZG93cyBtYWNoaW5lcworIC8vIGluIHRoZSAzMi1iaXQgYXJjaCBtb2RlLgorICNk ZWZpbmUgX19IV0xPQ19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1ZBTElEICghX1dJTjMyIHx8IF9X SU42NCkKK0BAIC0xNTMsOSArMTcxLDE4IEBAIGNsYXNzIHN5c3RlbV9pbmZvIHsKKyAKKyAgICAg c3lzdGVtX2luZm8oKSB7CisgICAgICAgICBod2xvY19yZXF1aXJlX2V4KGh3bG9jX3RvcG9sb2d5 X2luaXQsICZ0b3BvbG9neSk7CisrI2lmIF9fSFdMT0NfVE9QT0xPR1lfRkxBR19SRVNUUklDVF9U T19DUFVCSU5ESU5HX1BSRVNFTlQKKysgICAgICAgIGlmICggZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBf Y291bnQoKSA9PSAxICkgeworKyAgICAgICAgICAgIFJFUVVJUkUoCisrICAgICAgICAgICAgICAg IGh3bG9jX3RvcG9sb2d5X3NldF9mbGFncyh0b3BvbG9neSwKKysgICAgICAgICAgICAgICAgICAg IEhXTE9DX1RPUE9MT0dZX0ZMQUdfSVNfVEhJU1NZU1RFTSB8CisrICAgICAgICAgICAgICAgICAg ICBIV0xPQ19UT1BPTE9HWV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkcpID09IDAKKysgICAg ICAgICAgICApOworKyAgICAgICAgfQorKyNlbmRpZgorICAgICAgICAgaHdsb2NfcmVxdWlyZV9l eChod2xvY190b3BvbG9neV9sb2FkLCB0b3BvbG9neSk7CisgCistICAgICAgICBpZiAoIGdldF9w cm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpID4gMSApIHsKKysgICAgICAgIGlmICggZ2V0X3Byb2Nl c3NvcnNfZ3JvdXBfY291bnQoKSA+IDEgKSB7CisgICAgICAgICAgICAgcHJvY2Vzc19jcHVzZXQg PSBod2xvY19iaXRtYXBfZHVwKGh3bG9jX3RvcG9sb2d5X2dldF9jb21wbGV0ZV9jcHVzZXQodG9w b2xvZ3kpKTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgcHJvY2Vzc19jcHVzZXQg PSBod2xvY19iaXRtYXBfYWxsb2MoKTsKK0BAIC00MzQsNyArNDYxLDcgQEAgc3lzdGVtX2luZm86 OmFmZmluaXR5X21hc2sgZ2V0X2FyZW5hX2FmZmluaXR5KHRiYjo6dGFza19hcmVuYSYgdGEpIHsK KyAgICAgICAgICAgICAgICAgYmFycmllci53YWl0KCk7CisgICAgICAgICAgICAgICAgIHRiYjo6 c3Bpbl9tdXRleDo6c2NvcGVkX2xvY2sgbG9jayhhZmZpbml0eV9tdXRleCk7CisgICAgICAgICAg ICAgICAgIHN5c3RlbV9pbmZvOjphZmZpbml0eV9tYXNrIHRocmVhZF9hZmZpbml0eSA9IHN5c3Rl bV9pbmZvOjphbGxvY2F0ZV9jdXJyZW50X2FmZmluaXR5X21hc2soKTsKKy0gICAgICAgICAgICAg ICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpID09IDEpIHsKKysgICAgICAgICAg ICAgICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3VwX2NvdW50KCkgPT0gMSkgeworICAgICAgICAg ICAgICAgICAgICAgUkVRVUlSRV9NRVNTQUdFKGh3bG9jX2JpdG1hcF9pc2VxdWFsKHRocmVhZF9h ZmZpbml0eSwgYXJlbmFfYWZmaW5pdHkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaHJl YWRzIGhhdmUgZGlmZmVyZW50IG1hc2tzIG9uIG1hY2hpbmUgd2l0aG91dCBzZXZlcmFsIHByb2Nl c3NvcnMgZ3JvdXBzLiIpOworICAgICAgICAgICAgICAgICB9CitAQCAtNTMyLDcgKzU1OSw3IEBA IGNvbnN0cmFpbnRzX2NvbnRhaW5lciBnZW5lcmF0ZV9jb25zdHJhaW50c192YXJpZXR5KCkgewor ICAgICAgICAgfQorIAorICAgICAgICAgLy8gU29tZSBjb25zdHJhaW50cyBtYXkgY2F1c2UgdW5l eHBlY3RlZCBiZWhhdmlvciwgd2hpY2ggd291bGQgYmUgZml4ZWQgbGF0ZXIuCistICAgICAgICBp ZiAoZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBzX2NvdW50KCkgPiAxKSB7CisrICAgICAgICBpZiAoZ2V0 X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSA+IDEpIHsKKyAgICAgICAgICAgICBmb3IoYXV0byBp dCA9IHJlc3VsdHMuYmVnaW4oKTsgaXQgIT0gcmVzdWx0cy5lbmQoKTsgKytpdCkgeworICAgICAg ICAgICAgICAgICBpZiAoaXQtPm1heF90aHJlYWRzX3Blcl9jb3JlICE9IHRiYjo6dGFza19hcmVu YTo6YXV0b21hdGljCisgICAgICAgICAgICAgICAgICAgICYmIChpdC0+bnVtYV9pZCA9PSB0YmI6 OnRhc2tfYXJlbmE6OmF1dG9tYXRpYyB8fCB0YmI6OmluZm86Om51bWFfbm9kZXMoKS5zaXplKCkg PT0gMSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGJiL3BhdGNoZXMvMDEtaHdsb2MtcGtnY29uZmln LnBhdGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25maWcucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNzllYmM0Mzk3Y2QKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3RiYi9wYXRjaGVzLzAxLWh3bG9jLXBrZ2NvbmZpZy5wYXRj aApAQCAtMCwwICsxLDUyIEBACitCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vb25lYXBpLXNy Yy9vbmVUQkIvcHVsbC80OTgKK1R3ZWFrZWQgYSBiaXQgdG8gd29yayBvbiBgdjIwMjEuMy4wYAor CitkaWZmIC0tZ2l0IGEvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50eHQgYi9zcmMvdGJiYmluZC9D TWFrZUxpc3RzLnR4dAoraW5kZXggZTVjZGJmOGJiLi5hNDAzMzIxMGEgMTAwNjQ0CistLS0gYS9z cmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50 eHQKK0BAIC0zNyw2ICszNywxMCBAQCBmdW5jdGlvbih0YmJiaW5kX2J1aWxkIFRCQkJJTkRfTkFN RSBSRVFVSVJFRF9IV0xPQ19UQVJHRVQpCisgICAgICAgICAkPElOU1RBTExfSU5URVJGQUNFOiR7 Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfT4KKyAgICAgICAgICR7SFdMT0NfSU5DTFVERV9ESVJT fSAjIHBrZy1jb25maWcgZGVmaW5lZAorICAgICApCisrCXRhcmdldF9saW5rX2RpcmVjdG9yaWVz KCR7VEJCQklORF9OQU1FfQorKwkJUFJJVkFURQorKwkJJHtIV0xPQ19MSUJSQVJZX0RJUlN9ICMg cGtnLWNvbmZpZyBkZWZpbmVkCisrCSkKKyAKKyAgICAgdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucygk e1RCQkJJTkRfTkFNRX0KKyAgICAgICAgIFBSSVZBVEUKK0BAIC02OSw3ICs2OSw2IEBAIGZ1bmN0 aW9uKHRiYmJpbmRfYnVpbGQgVEJCQklORF9OQU1FIFJFUVVJUkVEX0hXTE9DX1RBUkdFVCkKKyAg ICAgICAgICAgICBQUklWQVRFCisgICAgICAgICAgICAgJHtUQkJfTElCX0xJTktfRkxBR1N9Cisg ICAgICAgICAgICAgJHtUQkJfQ09NTU9OX0xJTktfRkxBR1N9CistICAgICAgICAgICAgJHtIV0xP Q19MSUJSQVJZX0RJUlN9ICMgcGtnLWNvbmZpZyBkZWZpbmVkCisgICAgICAgICApCisgICAgIGVs c2UoKQorICAgICAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7VEJCQklORF9OQU1FfQorQEAg LTc2LDcgKzc2LDYgQEAgZnVuY3Rpb24odGJiYmluZF9idWlsZCBUQkJCSU5EX05BTUUgUkVRVUlS RURfSFdMT0NfVEFSR0VUKQorICAgICAgICAgICAgIFBSSVZBVEUKKyAgICAgICAgICAgICAke1RC Ql9MSUJfTElOS19GTEFHU30KKyAgICAgICAgICAgICAke1RCQl9DT01NT05fTElOS19GTEFHU30K Ky0gICAgICAgICAgICAke0hXTE9DX0xJQlJBUllfRElSU30gIyBwa2ctY29uZmlnIGRlZmluZWQK KyAgICAgICAgICkKKyAgICAgZW5kaWYoKQorIAorZGlmZiAtLWdpdCBhL3Rlc3QvQ01ha2VMaXN0 cy50eHQgYi90ZXN0L0NNYWtlTGlzdHMudHh0CitpbmRleCBiNzY4NzU5ZDUuLjNlYjgzNTdlNiAx MDA2NDQKKy0tLSBhL3Rlc3QvQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3QvQ01ha2VMaXN0cy50 eHQKK0BAIC0yNTgsNyArMjU4LDEyIEBAIGZ1bmN0aW9uKHRiYl9hZGRfdGJiYmluZF90ZXN0KQor ICAgICAgICAgKQorICAgICAgICAgc2V0X3Byb3BlcnR5KAorICAgICAgICAgICAgIFRBUkdFVCAk e190YmJiaW5kX3Rlc3RfTkFNRX0KKy0gICAgICAgICAgICBQUk9QRVJUWSBMSU5LX0xJQlJBUklF UyAke0hXTE9DX0xJQlJBUllfRElSU30gJHtIV0xPQ19MSUJSQVJJRVN9CisrICAgICAgICAgICAg UFJPUEVSVFkgTElOS19MSUJSQVJJRVMgJHtIV0xPQ19MSUJSQVJJRVN9CisrICAgICAgICAgICAg QVBQRU5ECisrICAgICAgICApCisrICAgICAgICBzZXRfcHJvcGVydHkoCisrICAgICAgICAgICAg VEFSR0VUICR7X3RiYmJpbmRfdGVzdF9OQU1FfQorKwkJCVBST1BFUlRZIExJTktfRElSRUNUT1JJ RVMgJHtIV0xPQ19MSUJSQVJZX0RJUlN9CisgICAgICAgICAgICAgQVBQRU5ECisgICAgICAgICAp CisgICAgICAgICBzZXRfcHJvcGVydHkoCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RiYi9wYXRjaGVz L2hvc3RuYW1lLXVzYWdlLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy9ob3N0bmFtZS11c2Fn ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFlZmVmZjE5MmI1Li4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy90YmIvcGF0Y2hlcy9ob3N0bmFtZS11c2FnZS5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2J1aWxkL3ZlcnNpb25faW5mb19s aW51eC5zaAotKysrIGIvYnVpbGQvdmVyc2lvbl9pbmZvX2xpbnV4LnNoCi1AQCAtMjAsNyArMjAs NyBAQAotIAotICMgU2NyaXB0IHVzZWQgdG8gZ2VuZXJhdGUgdmVyc2lvbiBpbmZvIHN0cmluZwot IGVjaG8gIiNkZWZpbmUgX19UQkJfVkVSU0lPTl9TVFJJTkdTKE4pIFxcIgotLWVjaG8gJyNOIjog QlVJTERfSE9TVCciXHRcdCJgaG9zdG5hbWUgLXNgIiAoImB1bmFtZSAtbWAiKSInIiBFTkRMIFwn Ci0rZWNobyAnI04iOiBCVUlMRF9IT1NUJyJcdFx0ImBob3N0bmFtZWAiICgiYHVuYW1lIC1tYCIp IiciIEVOREwgXCcKLSAjIGZpbmQgT1MgbmFtZSBpbiAqLXJlbGVhc2UgYW5kIGlzc3VlKiBmaWxl cyBieSBmaWx0ZXJpbmcgYmxhbmsgbGluZXMgYW5kIGxzYi1yZWxlYXNlIGNvbnRlbnQgb3V0Ci0g ZWNobyAnI04iOiBCVUlMRF9PUyciXHRcdCJgbHNiX3JlbGVhc2UgLXNkIDI+L2Rldi9udWxsIHwg Z3JlcCAtaWggJ1thLXpdICcgLSAvZXRjLypyZWxlYXNlIC9ldGMvaXNzdWUgMj4vZGV2L251bGwg fCBoZWFkIC0xIHwgc2VkIC1lICdzL1siXFxcXF0vL2cnYCciIEVOREwgXCcKLSBlY2hvICcjTiI6 IEJVSUxEX0tFUk5FTCciXHQiYHVuYW1lIC1zcnZgJyIgRU5ETCBcJwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy90YmIvcGF0Y2hlcy9tdXNsLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy9tdXNsLnBh dGNoCmluZGV4IGE4ODY3ZWI1Mzc5My4uZWM4OWM2YTk1ZmM2IDEwMDY0NAotLS0gYS9zcmNwa2dz L3RiYi9wYXRjaGVzL211c2wucGF0Y2gKKysrIGIvc3JjcGtncy90YmIvcGF0Y2hlcy9tdXNsLnBh dGNoCkBAIC0xLDUgKzEsNSBAQAotLS0tIGEvc3JjL3RiYm1hbGxvYy9wcm94eS5jcHAJMjAxOC0x MC0xNyAxNDowNTozMS4zMTE3MjMwMTMgKzAyMDAKLSsrKyBiL3NyYy90YmJtYWxsb2MvcHJveHku Y3BwCTIwMTgtMTAtMTcgMTQ6MDY6MzIuOTcyNzI2MTk0ICswMjAwCistLS0gYS9zcmMvdGJibWFs bG9jX3Byb3h5L3Byb3h5LmNwcAkyMDE4LTEwLTE3IDE0OjA1OjMxLjMxMTcyMzAxMyArMDIwMAor KysrIGIvc3JjL3RiYm1hbGxvY19wcm94eS9wcm94eS5jcHAJMjAxOC0xMC0xNyAxNDowNjozMi45 NzI3MjYxOTQgKzAyMDAKIEBAIC0yOCw2ICsyOCw3IEBACiAgLy8gb2YgYWxpZ25lZF9hbGxvYyBh cyByZXF1aXJlZCBieSBuZXcgQysrIHN0YW5kYXJkLCB0aGlzIG1ha2VzIGl0IGhhcmQgdG8KICAv LyByZWRlZmluZSBhbGlnbmVkX2FsbG9jIGhlcmUuIEhvd2V2ZXIsIHJ1bm5pbmcgb24gc3lzdGVt cyB3aXRoIG5ldyBsaWJjCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RiYi90ZW1wbGF0ZSBiL3NyY3Br Z3MvdGJiL3RlbXBsYXRlCmluZGV4IGFlZWY2ZWJkZDA2MS4uNDc2NTU4MjlmNzQ0IDEwMDY0NAot LS0gYS9zcmNwa2dzL3RiYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RiYi90ZW1wbGF0ZQpAQCAt MSw3NiArMSwzMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndGJiJwogcGtnbmFtZT10YmIKLXZl cnNpb249MjAyMC5VMwordmVyc2lvbj0yMDIxLjMuMAogcmV2aXNpb249MQotIyB2ZXJzaW9uIHJl d3JpdGU6IDIwMTdfVTcgKHVwc3RyZWFtKSA9PiAyMDE3LjcgKHhicHMpCi1fdmVyPSR7dmVyc2lv bi8uL199Ci13cmtzcmM9Im9uZVRCQi0ke192ZXJ9IgotYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxl Ci1ob3N0bWFrZWRlcGVuZHM9ImNtYWtlIgord3Jrc3JjPSJvbmVUQkItJHt2ZXJzaW9ufSIKK2J1 aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0ibGliaHdsb2MtZGV2ZWwgbGliZ29tcC1kZXZl bCIKIHNob3J0X2Rlc2M9IkludGVsIFRocmVhZGluZyBCdWlsZGluZyBCbG9ja3MiCiBtYWludGFp bmVyPSJBbmRyZWEgQnJhbmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGljZW5zZT0iQXBhY2hl LTIuMCIKIGhvbWVwYWdlPSJodHRwczovL3d3dy50aHJlYWRpbmdidWlsZGluZ2Jsb2Nrcy5vcmci Ci1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vbmVhcGktc3JjL29uZVRCQi9hcmNoaXZl LyR7X3Zlcn0udGFyLmd6IgotY2hlY2tzdW09MjEwM2NjNjIzOGM5MzU2NjRmODc2ODA2MThmNjY4 NGQ1NzUwMWQ0YTJmYThlYThmNmM5N2FkNmZmN2RjNzIyYQotCi1jYXNlICIkWEJQU19UQVJHRVRf TUFDSElORSIgaW4KLQl4ODZfNjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9aW50ZWw2NCIK LQkJOzsKLQlpNjg2KikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPWlhMzIiCi0JCTs7Ci0JYXJt djdsKikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPWFybXY3IgotCQk7OwotCWFhcmNoNjQqKQot CQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9YXJtNjQiCi0JCTs7Ci0JcHBjNjQqKQotCQltYWtlX2J1 aWxkX2FyZ3M9ImFyY2g9cHBjNjQiCi0JCTs7Ci0JcHBjKikKLQkJbWFrZV9idWlsZF9hcmdzPSJh cmNoPXBwYzMyIgotCQk7OwotCSopCi0JCSMgbWFrZSBzdXJlIHRvIGZhbGwgYmFjayBpbnN0ZWFk IG9mIGxldHRpbmcgaG9zdCB1bmFtZSBjb250cm9sIGl0Ci0JCW1ha2VfYnVpbGRfYXJncz0iYXJj aD1nZW5lcmljIgotCQk7OwotZXNhYwotCi1wb3N0X2V4dHJhY3QoKSB7Ci0Jc2VkIC1pICdzfENQ TFVTID0gZy4ufENQTFVTID0gJChDWFgpfGcnIGJ1aWxkL2xpbnV4LmdjYy5pbmMKLQlzZWQgLWkg J3N8Q09OTFkgPSBnY2N8Q09OTFkgPSAkKENDKXxnJyBidWlsZC9saW51eC5nY2MuaW5jCitkaXN0 ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vbmVhcGktc3JjL29uZVRCQi9hcmNoaXZlL3Yke3Zl cnNpb259LnRhci5neiIKK2NoZWNrc3VtPThmNjE2NTYxNjAzNjk1YmJiODM4NzE4NzVkMmM2MDUx ZWEyOGY4MTg3ZGJlNTkyOTk5NjEzNjk5MDRkMWQ0OWUKIAorcHJlX3BhdGNoKCkgewogCSMgYWx0 ZXJuYXRpdmUgbWlnaHQgYmU6CiAJIyBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvY2dpdC9h cG9ydHMvdHJlZS90ZXN0aW5nL2xpYnRiYi9nbGliYy1zdHJ1Y3QtbWFsbGluZm8ucGF0Y2gKIAlp ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgogCQl2c2VkIC1lICJzQCNk ZWZpbmUgTUFMTE9DX1VOSVhMSUtFX09WRVJMT0FEX0VOQUJMRUQgX19saW51eF9fQEAiIFwKLQkJ ICAtaSBzcmMvdGJibWFsbG9jL3Byb3h5LmgKKwkJICAtaSBzcmMvdGJibWFsbG9jX3Byb3h5L3By b3h5LmgKIAlmaQogfQogCi1kb19pbnN0YWxsKCkgewotCXZta2RpciB1c3IvbGliCi0JdmNvcHkg YnVpbGQvbGludXhfKi8qLnNvKiB1c3IvbGliCi0Jdm1rZGlyIHVzci9pbmNsdWRlL3RiYgotCXZj b3B5IGluY2x1ZGUvdGJiLyogdXNyL2luY2x1ZGUvdGJiCi0KLQljbWFrZSBcCi0JCS1ESU5TVEFM TF9ESVI9JERFU1RESVIvdXNyL2xpYi9jbWFrZS9UQkIgXAotCQktRFNZU1RFTV9OQU1FPUxpbnV4 IFwKLQkJLURMSUJfUkVMX1BBVEg9Li4vLi4gXAotCQktRElOQ19SRUxfUEFUSD0uLi8uLi8uLi9p bmNsdWRlIFwKLQkJLVAgY21ha2UvdGJiX2NvbmZpZ19pbnN0YWxsZXIuY21ha2UKLX0KLQogdGJi LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5z dGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKLQkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJ dm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSB1 c3IvbGliLyouc28KIAl9CiB9CgpGcm9tIDY0ZTY0NGUxNWJmM2UxNTM1NjY2MzBkOTEyYWFlODcz M2I1YThmMzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJl ZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOToz OCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTJdIE9wZW5TdWJkaXY6IHVwZGF0ZSB0byAzLjQu NC4KCi0tLQogc3JjcGtncy9PcGVuU3ViZGl2L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvT3BlblN1YmRpdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0ZQppbmRl eCBiN2E1ZTE2ZWZiY2YuLmRmYmYyOWNjMWE1MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9PcGVuU3Vi ZGl2L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ09wZW5TdWJkaXYnCiBwa2duYW1lPU9wZW5TdWJk aXYKLXZlcnNpb249My40LjMKK3ZlcnNpb249My40LjQKIHJldmlzaW9uPTEKIHdya3NyYz0iT3Bl blN1YmRpdi0ke3ZlcnNpb24vLy4vX30iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTMsNyArMTMs NyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iQXBh Y2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwOi8vZ3JhcGhpY3MucGl4YXIuY29tL29wZW5zdWJkaXYv ZG9jcy9pbnRyby5odG1sIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vUGl4YXJBbmlt YXRpb25TdHVkaW9zL09wZW5TdWJkaXYvYXJjaGl2ZS92JHt2ZXJzaW9uLy8uL199LnRhci5neiIK LWNoZWNrc3VtPTdiMjJlYjI3ZDYzNmFiMGMxZTAzNzIyYzdhNWE1YmQ0ZjExNjY0ZWU2NWM5YjQ4 ZjM0MWE2ZDBjZTdmMzY3NDUKK2NoZWNrc3VtPTIwZDQ5ZjgwYTJiNzc4YWQ0ZDAxZjA5MWFkODhk OGMyZjkxY2Y2YzczNjM5NDBjNjIxMzI0MWNlNmYxMDQ4ZmIKIAogaWYgWyAiJENST1NTX0JVSUxE IiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIE9wZW5TdWJkaXYiCgpGcm9tIDA5MGRhZGJk YjgwZDk1OGI5MjM4NTBhMmNiNGI1MzgyMmYwZjVkZjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTog U3VuLCAxOCBKdWwgMjAyMSAxODoyOTozOCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTJdIFBy dXNhU2xpY2VyOiB1cGRhdGUgdG8gMi4zLjMuCgotLS0KIHNyY3BrZ3MvUHJ1c2FTbGljZXIvcGF0 Y2hlcy9jcm9zcy5wYXRjaCB8IDExIC0tLS0tLS0tLS0tCiBzcmNwa2dzL1BydXNhU2xpY2VyL3Rl bXBsYXRlICAgICAgICAgICAgfCAgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMTMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9QcnVzYVNs aWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9QcnVzYVNsaWNl ci9wYXRjaGVzL2Nyb3NzLnBhdGNoIGIvc3JjcGtncy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3Nz LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjRhNDUwZDllOWYuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL1BydXNhU2xpY2VyL3BhdGNoZXMvY3Jvc3MucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gYS9zcmMvYXZyZHVkZS9DTWFrZUxpc3Rz LnR4dAkyMDIwLTA2LTA0IDA5OjE5OjI2LjAxNzI1MTIxNSArMDIwMAotKysrIGIvc3JjL2F2cmR1 ZGUvQ01ha2VMaXN0cy50eHQJMjAyMC0wNi0wNCAwOToxOTozNi40NjgyNTA3NzEgKzAyMDAKLUBA IC04Myw3ICs4Myw3IEBAIGFkZF9leGVjdXRhYmxlKGF2cmR1ZGUtY29uZi1nZW4gY29uZi1nZW4K LSBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgIERFUEVORFMgYXZyZHVkZS1jb25mLWdlbiAke0NN QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vYXZyZHVkZS1zbGljM3IuY29uZgotICAgICBPVVRQVVQg JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2F2cmR1ZGUtc2xpYzNyLmNvbmYuaAotLSAgICBD T01NQU5EICQ8VEFSR0VUX0ZJTEU6YXZyZHVkZS1jb25mLWdlbj4gYXZyZHVkZS1zbGljM3IuY29u ZiBhdnJkdWRlX3NsaWMzcl9jb25mICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9hdnJkdWRl LXNsaWMzci5jb25mLmgKLSsgICAgQ09NTUFORCBhdnJkdWRlLWNvbmYtZ2VuIGF2cmR1ZGUtc2xp YzNyLmNvbmYgYXZyZHVkZV9zbGljM3JfY29uZiAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0v YXZyZHVkZS1zbGljM3IuY29uZi5oCi0gICAgIFdPUktJTkdfRElSRUNUT1JZICR7Q01BS0VfQ1VS UkVOVF9TT1VSQ0VfRElSfQotICkKLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvUHJ1c2FTbGljZXIv dGVtcGxhdGUgYi9zcmNwa2dzL1BydXNhU2xpY2VyL3RlbXBsYXRlCmluZGV4IGRkMGU3NmNiODAx Ny4uYTkzODMyYWMwMmU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL1BydXNhU2xpY2VyL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvUHJ1c2FTbGljZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdQcnVzYVNsaWNlcicKIHBrZ25hbWU9UHJ1c2FTbGljZXIKLXZlcnNp b249Mi4zLjAKK3ZlcnNpb249Mi4zLjMKIHJldmlzaW9uPTEKIHdya3NyYz0iUHJ1c2FTbGljZXIt dmVyc2lvbl8ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTE2LDcgKzE2LDcgQEAg bWFpbnRhaW5lcj0iSmFzcGVyIENoYW4gPGphc3BlcmNoYW41MTVAZ21haWwuY29tPiIKIGxpY2Vu c2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cucHJ1c2EzZC5jb20v cHJ1c2FzbGljZXIvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vcHJ1c2EzZC9QcnVz YXNsaWNlci9hcmNoaXZlL3ZlcnNpb25fJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT1jZDNi YWM1ZTI5YjU0NDFmYzQ2OTBmMjhjZDdiMTA2NGU5N2RjMDAyMDdiYmRjODhmN2JkNzgzMjMwOGQ2 Y2E1CitjaGVja3N1bT1kZWRhMjA5NTA1Zjc0MGFjM2Q2ZjU5Y2IyYTk2MGY0ZGY5MDgyNjllZTA5 YmQzMGNkNGVkYjlmYzQ3MmQyOWFjCiBub2Nyb3NzPSJodHRwczovL2J1aWxkLnZvaWRsaW51eC5v cmcvYnVpbGRlcnMvYXJtdjdsX2J1aWxkZXIvYnVpbGRzLzI1MjMwL3N0ZXBzL3NoZWxsXzMvbG9n cy9zdGRpbyIKIAogU2xpYzNyUEVfcGFja2FnZSgpIHsKCkZyb20gOWFlM2JhZTJjMWI2NzI5ZWZm Y2IxYTY2M2E4NmIwMGM2M2JhZGZjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJ0 dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2PgpEYXRlOiBTdW4sIDE4IEp1 bCAyMDIxIDE4OjI5OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMl0gYmxlbmRlcjogdXBk YXRlIHRvIDIuOTMuMS4KCi0tLQogc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlIGIvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlCmluZGV4 IGFmOTQ2YzJiNzk5OS4uODMxODMxN2M4MmJmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JsZW5kZXIv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnYmxlbmRlcicKIHBrZ25hbWU9YmxlbmRlcgotdmVyc2lvbj0y LjkzLjAKK3ZlcnNpb249Mi45My4xCiByZXZpc2lvbj0xCiBhcmNocz0ieDg2XzY0KiBwcGM2NCoi CiBidWlsZF9zdHlsZT0iY21ha2UiCgpGcm9tIDk1ZDczMmJkYThhMDFmYjcxN2IwN2U2MDE5NTIy MWJhOWIxYTYzNjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8 ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoy OTozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTJdIGVtYnJlZTogdXBkYXRlIHRvIDMuMTMu MC4KCi0tLQogc3JjcGtncy9lbWJyZWUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VtYnJlZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZW1icmVlL3RlbXBsYXRlCmluZGV4IDU3NWI5YmNi NDAxYy4uYjZmMzc2ZDMwZWZhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZQpAQCAtMSw4ICsxLDggQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2VtYnJlZScKIHBrZ25hbWU9ZW1icmVlCi12ZXJzaW9uPTIuMTcuNwotcmV2aXNp b249MgotYXJjaHM9Ing4Nl82NCIKK3ZlcnNpb249My4xMy4wCityZXZpc2lvbj0xCithcmNocz0i eDg2XzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURUQkJfUk9PVD0v dXNyIC1ERU1CUkVFX0lHTk9SRV9DTUFLRV9DWFhfRkxBR1M9T0ZGIgogaG9zdG1ha2VkZXBlbmRz PSJpc3BjIgoKRnJvbSBhMTcyMGZjM2JmZDJiOWZjY2UzMTQ3M2Q5YWNiODY0NDk3ODFhY2Y2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBs b2dhcml0aG11cy5kZXY+CkRhdGU6IFNhdCwgMjQgSnVsIDIwMjEgMDM6MzQ6NDMgKzAzMDAKU3Vi amVjdDogW1BBVENIIDA3LzEyXSBvcGVuaW1hZ2VpbzogdXBkYXRlIHRvIDIuMi4xNi4wLgoKLS0t CiBzcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuaW1hZ2Vpby90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKaW5kZXgg ZGU4ZTFjZDA0NDA5Li4zYmZkZDRlMGVkMWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbmltYWdl aW8vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcGVuaW1hZ2Vpby90ZW1wbGF0ZQpAQCAtMSwxMSAr MSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmltYWdlaW8nCiBwa2duYW1lPW9wZW5p bWFnZWlvCi12ZXJzaW9uPTIuMi4xNS4xCit2ZXJzaW9uPTIuMi4xNi4wCiByZXZpc2lvbj0xCiB3 cmtzcmM9Im9paW8tUmVsZWFzZS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZp Z3VyZV9hcmdzPSItRFVTRV9PUEVOR0w9MCAtRFVTRV9RVD0wIC1EVVNFX1BZVEhPTj0wIC1ET0lJ T19CVUlMRF9URVNUUz0xCi0gLURTVE9QX09OX1dBUk5JTkc9MCAtRFVTRV9TVERfUkVHRVhfRVhJ VENPREU9MCIKKyAtRFNUT1BfT05fV0FSTklORz0wIC1EVVNFX1NURF9SRUdFWF9FWElUQ09ERT0w IC1EQ01BS0VfQ1hYX1NUQU5EQVJEPTE0IgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdp dCIKIG1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBnaWZsaWItZGV2ZWwgbGlicmF3LWRldmVsIGxp Ym9wZW5qcGVnLWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJqcGVnLXR1cmJvLWRldmVsIHRpZmYt ZGV2ZWwgbGlicG5nLWRldmVsIGxpYm9wZW5leHItZGV2ZWwgZnJlZXR5cGUtZGV2ZWwKQEAgLTE3 LDcgKzE3LDcgQEAgbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vc2l0 ZXMuZ29vZ2xlLmNvbS9zaXRlL29wZW5pbWFnZWlvL2hvbWUiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8v cmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuSW1hZ2VJTy9vaWlvL3JlbGVhc2UvQ0hBTkdF Uy5tZCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09wZW5JbWFnZUlPL29paW8vYXJj aGl2ZS9SZWxlYXNlLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZjIyMmM2YjUxYTQwYWFi YmM4MGRkZjQwNTU1MzViZTlhZjFmZmE5MDc0NTJmYTZkMWZmYTc2NzQ4NTRhYWIxNworY2hlY2tz dW09ZDFhNTlmMzJkYmJhM2JhNzFhZDJlNjJlMTA3MDM0ZDFjNTI4N2JjYTFiMDY5NjQ3NGU5Mjdk NTA0Y2QwNWVmNAogIyBSdW5zIGNoZWNrcyBldmVuIGZvciBmZWF0dXJlcyB3ZSBkaXNhYmxlZC4K IG1ha2VfY2hlY2s9bm8KIAoKRnJvbSA2NTBmY2RhOGQ3ZmUwNjUwMGNkNmJlODU2YzE5NjE3ZTQ5 OGExYTk2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVz b2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6NDAg KzAzMDAKU3ViamVjdDogW1BBVENIIDA4LzEyXSBvcGVuaW1hZ2VkZW5vaXNlOiB1cGRhdGUgdG8g MS40LjEuCgotLS0KIHNyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZSB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmltYWdlZGVu b2lzZS90ZW1wbGF0ZQppbmRleCBjNzM5MTNiNGU5ZDcuLjE0MDU1YWZmMWMyNyAxMDA2NDQKLS0t IGEvc3JjcGtncy9vcGVuaW1hZ2VkZW5vaXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3Blbmlt YWdlZGVub2lzZS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J29wZW5pbWFnZWRlbm9pc2UnCiBwa2duYW1lPW9wZW5pbWFnZWRlbm9pc2UKLXZlcnNpb249MS40 LjAKK3ZlcnNpb249MS40LjEKIHJldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIgogd3Jrc3JjPW9p ZG4tJHt2ZXJzaW9ufQoKRnJvbSAxNWFjMzI5NjRkNjNjNzRmNDEzNTNiOGY5YjRhYTU3NGFmMjE1 OWRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0 d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6NDAgKzAz MDAKU3ViamVjdDogW1BBVENIIDA5LzEyXSBvcGVudmRiOiB1cGRhdGUgdG8gOC4xLjAuCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogc3Jj cGtncy9vcGVudmRiL3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2ggfCAxMzIwICsrKysrKysrKysr KysrKysrKysrKwogc3JjcGtncy9vcGVudmRiL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAg IDE2ICstCiAzIGZpbGVzIGNoYW5nZWQsIDEzMjUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVudmRiL3BhdGNoZXMvMDAtdGJiLTIw MjEucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRl eCA2YjdjYTVmYmMyNDkuLjJhN2FjZGIyNTNhNyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicwor KysgYi9jb21tb24vc2hsaWJzCkBAIC0zODgzLDcgKzM4ODMsNyBAQCBsaWJqYW5ldC5zby4xLjE2 IGphbmV0LTEuMTYuMF8xCiBsaWJPcGVuSW1hZ2VEZW5vaXNlLnNvLjEgb3BlbmltYWdlZGVub2lz ZS0xLjMuMF8xCiBsaWJjYmFuZzAuc28gY2JhbmctMS42LjBfMwogbGliYmxvc2Muc28uMSBjLWJs b3NjLTEuMTcuMV8xCi1saWJvcGVudmRiLnNvLjcuMCBvcGVudmRiLTcuMC4wXzEKK2xpYm9wZW52 ZGIuc28uOC4xIG9wZW52ZGItOC4xLjBfMQogbGliQWxlbWJpYy5zby4xLjcgYWxlbWJpYy0xLjcu MTNfMQogbGlibW9kc2VjdXJpdHkuc28uMyBtb2RzZWN1cml0eS0zLjAuNF8xCiBsaWJyYXZlbi5z by4wIGJ1ZGdpZS1kZXNrdG9wLTEwLjUuMV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW52ZGIv cGF0Y2hlcy8wMC10YmItMjAyMS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbnZkYi9wYXRjaGVzLzAwLXRi Yi0yMDIxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjcx MTA0YWYzZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVudmRiL3BhdGNoZXMvMDAt dGJiLTIwMjEucGF0Y2gKQEAgLTAsMCArMSwxMzIwIEBACitodHRwczovL2dpdGh1Yi5jb20vQWNh ZGVteVNvZnR3YXJlRm91bmRhdGlvbi9vcGVudmRiL3B1bGwvMTAyNworU2hvdWxkIGJlIGRyb3Bw ZWQgYWZ0ZXIgOC4xLjEgcmVsZWFzZS4KKworZGlmZiAtLWdpdCBhL2NtYWtlL0ZpbmRUQkIuY21h a2UgYi9jbWFrZS9GaW5kVEJCLmNtYWtlCitpbmRleCBkNDE0MzZiMWMuLjA2ZGUyYjNmMyAxMDA2 NDQKKy0tLSBhL2NtYWtlL0ZpbmRUQkIuY21ha2UKKysrKyBiL2NtYWtlL0ZpbmRUQkIuY21ha2UK K0BAIC0xNjksOCArMTY5LDIyIEBAIGZpbmRfcGF0aChUYmJfSU5DTFVERV9ESVIgdGJiL3RiYl9z dGRkZWYuaAorICAgUEFUSF9TVUZGSVhFUyAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0gaW5j bHVkZQorICkKKyAKKy1pZihFWElTVFMgIiR7VGJiX0lOQ0xVREVfRElSfS90YmIvdGJiX3N0ZGRl Zi5oIikKKy0gIGZpbGUoU1RSSU5HUyAiJHtUYmJfSU5DTFVERV9ESVJ9L3RiYi90YmJfc3RkZGVm LmgiCisrc2V0KF90YmJfdmVyc2lvbl9maWxlICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9z dGRkZWYuaCIpCisrCisraWYoTk9UIEVYSVNUUyAke190YmJfdmVyc2lvbl9maWxlfSkKKysgICMg RnJvbSBUQkIgMjAyMSwgdGJiX3N0ZGRlZiBpcyByZW1vdmVkIGFuZCB0aGUgZGlyZWN0b3J5IGlu Y2x1ZGUvdGJiIGlzCisrICAjIHNpbXBseSBhbiBhbGlhcyBmb3IgaW5jbHVkZS9vbmVhcGkvdGJi LiBUcnkgYW5kIGZpbmQgdGhlIHZlcnNpb24gaGVhZGVyCisrICAjIGluIG9uZWFwaS90YmIKKysg IGZpbmRfcGF0aChUYmJfSU5DTFVERV9ESVIgb25lYXBpL3RiYi92ZXJzaW9uLmgKKysgICAgJHtf RklORF9UQkJfQURESVRJT05BTF9PUFRJT05TfQorKyAgICBQQVRIUyAke19UQkJfSU5DTFVERV9T RUFSQ0hfRElSU30KKysgICAgUEFUSF9TVUZGSVhFUyAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJ Un0gaW5jbHVkZQorKyAgKQorKyAgc2V0KF90YmJfdmVyc2lvbl9maWxlICIke1RiYl9JTkNMVURF X0RJUn0vb25lYXBpL3RiYi92ZXJzaW9uLmgiKQorK2VuZGlmKCkKKysKKytpZihFWElTVFMgJHtf dGJiX3ZlcnNpb25fZmlsZX0pCisrICBmaWxlKFNUUklOR1MgJHtfdGJiX3ZlcnNpb25fZmlsZX0K KyAgICAgX3RiYl92ZXJzaW9uX21ham9yX3N0cmluZyBSRUdFWCAiI2RlZmluZSBUQkJfVkVSU0lP Tl9NQUpPUiAiCisgICApCisgICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiI2RlZmluZSBUQkJfVkVS U0lPTl9NQUpPUiIgIiIKK0BAIC0xNzgsNyArMTkyLDcgQEAgaWYoRVhJU1RTICIke1RiYl9JTkNM VURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCisgICApCisgICBzdHJpbmcoU1RSSVAgIiR7X3Ri Yl92ZXJzaW9uX21ham9yX3N0cmluZ30iIFRiYl9WRVJTSU9OX01BSk9SKQorIAorLSAgZmlsZShT VFJJTkdTICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIKKysgIGZpbGUoU1RS SU5HUyAke190YmJfdmVyc2lvbl9maWxlfQorICAgICAgX3RiYl92ZXJzaW9uX21pbm9yX3N0cmlu ZyBSRUdFWCAiI2RlZmluZSBUQkJfVkVSU0lPTl9NSU5PUiAiCisgICApCisgICBzdHJpbmcoUkVH RVggUkVQTEFDRSAiI2RlZmluZSBUQkJfVkVSU0lPTl9NSU5PUiIgIiIKK0BAIC0xOTIsNiArMjA2 LDggQEAgaWYoRVhJU1RTICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCisg ICBzZXQoVGJiX1ZFUlNJT04gJHtUYmJfVkVSU0lPTl9NQUpPUn0uJHtUYmJfVkVSU0lPTl9NSU5P Un0pCisgZW5kaWYoKQorIAorK3Vuc2V0KF90YmJfdmVyc2lvbl9maWxlKQorKworICMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgIyAgU2VhcmNoIGZvciBUQkIgbGliIERJUgorICMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0IGIvb3BlbnZkYi9v cGVudmRiL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ODU0M2RmM2EuLjkyOWZlOTRkMSAxMDA2NDQK Ky0tLSBhL29wZW52ZGIvb3BlbnZkYi9DTWFrZUxpc3RzLnR4dAorKysrIGIvb3BlbnZkYi9vcGVu dmRiL0NNYWtlTGlzdHMudHh0CitAQCAtNDM3LDYgKzQzNywxMCBAQCBzZXQoT1BFTlZEQl9MSUJS QVJZX1VUSUxfSU5DTFVERV9GSUxFUworICAgdXRpbC9VdGlsLmgKKyApCisgCisrc2V0KE9QRU5W REJfTElCUkFSWV9USFJFQURfSU5DTFVERV9GSUxFUworKyAgdGhyZWFkL1RocmVhZGluZy5oCisr KQorKworICMgQHRvZG8gQ01ha2UgPj0gMy4xMiwgdXNlIGFuIG9iamVjdCBsaWJyYXJ5IHRvIGNv bnNvbGlkYXRlIHNoYXJlZC9zdGF0aWMKKyAjIGJ1aWxkcy4gVGhlcmUgYXJlIGxpbWl0YXRpb25z IHdpdGggZWFybGllciB2ZXJzaW9ucyBvZiBDTWFrZSB3aGVuIHVzZWQgd2l0aAorICMgaW1wb3J0 ZWQgdGFyZ2V0cy4KK0BAIC01OTIsMyArNTk2LDQgQEAgaW5zdGFsbChGSUxFUyAke09QRU5WREJf TElCUkFSWV9QT0lOVFNfSU5DTFVERV9GSUxFU30gREVTVElOQVRJT04gJHtPUEVOVkRCX0lOU1QK KyBpbnN0YWxsKEZJTEVTICR7T1BFTlZEQl9MSUJSQVJZX1RPT0xTX0lOQ0xVREVfRklMRVN9IERF U1RJTkFUSU9OICR7T1BFTlZEQl9JTlNUQUxMX0lOQ0xVREVESVJ9L3Rvb2xzKQorIGluc3RhbGwo RklMRVMgJHtPUEVOVkRCX0xJQlJBUllfVFJFRV9JTkNMVURFX0ZJTEVTfSBERVNUSU5BVElPTiAk e09QRU5WREJfSU5TVEFMTF9JTkNMVURFRElSfS90cmVlKQorIGluc3RhbGwoRklMRVMgJHtPUEVO VkRCX0xJQlJBUllfVVRJTF9JTkNMVURFX0ZJTEVTfSBERVNUSU5BVElPTiAke09QRU5WREJfSU5T VEFMTF9JTkNMVURFRElSfS91dGlsKQorK2luc3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJQlJBUllf VEhSRUFEX0lOQ0xVREVfRklMRVN9IERFU1RJTkFUSU9OICR7T1BFTlZEQl9JTlNUQUxMX0lOQ0xV REVESVJ9L3RocmVhZCkKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvY21kL29wZW52ZGJf cmVuZGVyLmNjIGIvb3BlbnZkYi9vcGVudmRiL2NtZC9vcGVudmRiX3JlbmRlci5jYworaW5kZXgg ZWU1YjczN2M1Li4yYzk4MzFiYTMgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvY21kL29w ZW52ZGJfcmVuZGVyLmNjCisrKysgYi9vcGVudmRiL29wZW52ZGIvY21kL29wZW52ZGJfcmVuZGVy LmNjCitAQCAtMTksNyArMTksMTQgQEAKKyAjaW5jbHVkZSA8T3BlbkVYUi9JbWZIZWFkZXIuaD4K KyAjaW5jbHVkZSA8T3BlbkVYUi9JbWZPdXRwdXRGaWxlLmg+CisgI2luY2x1ZGUgPE9wZW5FWFIv SW1mUGl4ZWxUeXBlLmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+Cisr CisrLy8gdGJiL3Rhc2tfc2NoZWR1bGVyX2luaXQuaCB3YXMgcmVtb3ZlZCBpbiBUQkIgMjAyMS4g VGhlIGJlc3QgY29uc3RydWN0IHRvIHN3YXAKKysvLyB0byBpcyB0YmIvZ2xvYmFsX2NvbnRyb2wg KGZvciBleGVjdXRhYmxlcykuIGdsb2JhbF9jb250cm9sIHdhcyBvbmx5IG9mZmljaWFsbHkKKysv LyBhZGRlZCBpbiBUQkIgMjAxOVU0IGJ1dCBleGlzdHMgaW4gMjAxOCBhcyBhIHByZXZpZXcgZmVh dHVyZS4gVG8gYXZvaWQgbW9yZQorKy8vIGNvbXBpbGUgdGltZSBicmFuY2hpbmcgKGFzIHdlIHN0 aWxsIHN1cHBvcnQgMjAxOCksIHdlIHVzZSBpdCBpbiAyMDE4IHRvbyBieQorKy8vIGVuYWJsaW5n IHRoZSBiZWxvdyBkZWZpbmUuCisrI2RlZmluZSBUQkJfUFJFVklFV19HTE9CQUxfQ09OVFJPTCAx CisrI2luY2x1ZGUgPHRiYi9nbG9iYWxfY29udHJvbC5oPgorICNpbmNsdWRlIDx0YmIvdGlja19j b3VudC5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CitAQCAtNjA2LDggKzYxMywxMiBAQCBt YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgIH0KKyAKKyAgICAgdHJ5IHsKKy0gICAg ICAgIHRiYjo6dGFza19zY2hlZHVsZXJfaW5pdCBzY2hlZHVsZXJJbml0KAorLSAgICAgICAgICAg IChvcHRzLnRocmVhZHMgPT0gMCkgPyB0YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmF1dG9tYXRp YyA6IG9wdHMudGhyZWFkcyk7CisrICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8dGJiOjpnbG9iYWxf Y29udHJvbD4gY29udHJvbDsKKysgICAgICAgIGlmIChvcHRzLnRocmVhZHMgPiAwKSB7CisrICAg ICAgICAgICAgLy8gbm90ZSwgb3B0cy50aHJlYWRzID09IDAgbWVhbnMgdXNlIGFsbCB0aHJlYWRz IChkZWZhdWx0KSwgc28gZG9uJ3QKKysgICAgICAgICAgICAvLyBtYW51YWxseSBjcmVhdGUgYSB0 YmI6Omdsb2JhbF9jb250cm9sIGluIHRoaXMgY2FzZQorKyAgICAgICAgICAgIGNvbnRyb2wucmVz ZXQobmV3IHRiYjo6Z2xvYmFsX2NvbnRyb2wodGJiOjpnbG9iYWxfY29udHJvbDo6bWF4X2FsbG93 ZWRfcGFyYWxsZWxpc20sIG9wdHMudGhyZWFkcykpOworKyAgICAgICAgfQorIAorICAgICAgICAg b3BlbnZkYjo6aW5pdGlhbGl6ZSgpOworIAorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi9p by9RdWV1ZS5jYyBiL29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYworaW5kZXggZWY1ZDI5NjFh Li4yMGZmMWEwYzEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvaW8vUXVldWUuY2MKKysr KyBiL29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYworQEAgLTUsMjAgKzUsMjIgQEAKKyAvLy8g QGF1dGhvciBQZXRlciBDdWNrYQorIAorICNpbmNsdWRlICJRdWV1ZS5oIgorLQorICNpbmNsdWRl ICJGaWxlLmgiCisgI2luY2x1ZGUgIlN0cmVhbS5oIgorLSNpbmNsdWRlIDxvcGVudmRiL0V4Y2Vw dGlvbnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL2xvZ2dpbmcuaD4KKysjaW5jbHVkZSAi b3BlbnZkYi9FeGNlcHRpb25zLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9sb2dnaW5nLmgi CisrCisgI2luY2x1ZGUgPHRiYi9jb25jdXJyZW50X2hhc2hfbWFwLmg+CistI2luY2x1ZGUgPHRi Yi90YXNrLmg+CistI2luY2x1ZGUgPHRiYi90YmJfdGhyZWFkLmg+IC8vIGZvciB0YmI6OnRoaXNf dGJiX3RocmVhZDo6c2xlZXAoKQorLSNpbmNsdWRlIDx0YmIvdGlja19jb3VudC5oPgorKyNpbmNs dWRlIDx0YmIvdGFza19hcmVuYS5oPgorKworKyNpbmNsdWRlIDx0aHJlYWQ+CisgI2luY2x1ZGUg PGFsZ29yaXRobT4gLy8gZm9yIHN0ZDo6bWF4KCkKKyAjaW5jbHVkZSA8YXRvbWljPgorICNpbmNs dWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8bWFwPgorICNpbmNsdWRlIDxtdXRleD4KKysjaW5j bHVkZSA8Y2hyb25vPgorKworIAorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9W RVJTSU9OX05BTUVTUEFDRQorQEAgLTI4LDE4ICszMCwxOSBAQCBuYW1lc3BhY2UgaW8geworIG5h bWVzcGFjZSB7CisgCisgLy8gQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgcXVldWFibGUgVEJCIHRh c2tzIHRoYXQgYWRkcyBhIHRhc2sgY29tcGxldGlvbiBjYWxsYmFjaworLWNsYXNzIFRhc2s6IHB1 YmxpYyB0YmI6OnRhc2sKKytjbGFzcyBUYXNrCisgeworIHB1YmxpYzoKKyAgICAgVGFzayhRdWV1 ZTo6SWQgaWQpOiBtSWQoaWQpIHt9CistICAgIH5UYXNrKCkgb3ZlcnJpZGUge30KKysgICAgdmly dHVhbCB+VGFzaygpIHt9CisgCisgICAgIFF1ZXVlOjpJZCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1J ZDsgfQorIAorICAgICB2b2lkIHNldE5vdGlmaWVyKFF1ZXVlOjpOb3RpZmllciYgbm90aWZpZXIp IHsgbU5vdGlmeSA9IG5vdGlmaWVyOyB9CisrICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlKCkgY29u c3QgPSAwOworIAorIHByb3RlY3RlZDoKKy0gICAgdm9pZCBub3RpZnkoUXVldWU6OlN0YXR1cyBz dGF0dXMpIHsgaWYgKG1Ob3RpZnkpIG1Ob3RpZnkodGhpcy0+aWQoKSwgc3RhdHVzKTsgfQorKyAg ICB2b2lkIG5vdGlmeShRdWV1ZTo6U3RhdHVzIHN0YXR1cykgY29uc3QgeyBpZiAobU5vdGlmeSkg bU5vdGlmeSh0aGlzLT5pZCgpLCBzdGF0dXMpOyB9CisgCisgcHJpdmF0ZToKKyAgICAgUXVldWU6 OklkIG1JZDsKK0BAIC00OCw3ICs1MSw3IEBAIGNsYXNzIFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sK KyAKKyAKKyAvLyBRdWV1YWJsZSBUQkIgdGFzayB0aGF0IHdyaXRlcyBvbmUgb3IgbW9yZSBncmlk cyB0byBhIC52ZGIgZmlsZSBvciBhbiBvdXRwdXQgc3RyZWFtCistY2xhc3MgT3V0cHV0VGFzazog cHVibGljIFRhc2sKKytjbGFzcyBPdXRwdXRUYXNrIDogcHVibGljIFRhc2sKKyB7CisgcHVibGlj OgorICAgICBPdXRwdXRUYXNrKFF1ZXVlOjpJZCBpZCwgY29uc3QgR3JpZENQdHJWZWMmIGdyaWRz LCBjb25zdCBBcmNoaXZlJiBhcmNoaXZlLAorQEAgLTU2LDEwICs1OSwxMCBAQCBjbGFzcyBPdXRw dXRUYXNrOiBwdWJsaWMgVGFzaworICAgICAgICAgOiBUYXNrKGlkKQorICAgICAgICAgLCBtR3Jp ZHMoZ3JpZHMpCisgICAgICAgICAsIG1BcmNoaXZlKGFyY2hpdmUuY29weSgpKQorLSAgICAgICAg LCBtTWV0YWRhdGEobWV0YWRhdGEpCistICAgIHt9CisrICAgICAgICAsIG1NZXRhZGF0YShtZXRh ZGF0YSkge30KKysgICAgfk91dHB1dFRhc2soKSBvdmVycmlkZSB7fQorIAorLSAgICB0YmI6OnRh c2sqIGV4ZWN1dGUoKSBvdmVycmlkZQorKyAgICB2b2lkIGV4ZWN1dGUoKSBjb25zdCBvdmVycmlk ZQorICAgICB7CisgICAgICAgICBRdWV1ZTo6U3RhdHVzIHN0YXR1cyA9IFF1ZXVlOjpGQUlMRUQ7 CisgICAgICAgICB0cnkgeworQEAgLTY5LDEwICs3Miw4IEBAIGNsYXNzIE91dHB1dFRhc2s6IHB1 YmxpYyBUYXNrCisgICAgICAgICAgICAgaWYgKGNvbnN0IGNoYXIqIG1zZyA9IGUud2hhdCgpKSB7 CisgICAgICAgICAgICAgICAgIE9QRU5WREJfTE9HX0VSUk9SKG1zZyk7CisgICAgICAgICAgICAg fQorLSAgICAgICAgfSBjYXRjaCAoLi4uKSB7CistICAgICAgICB9CisrICAgICAgICB9IGNhdGNo ICguLi4pIHt9CisgICAgICAgICB0aGlzLT5ub3RpZnkoc3RhdHVzKTsKKy0gICAgICAgIHJldHVy biBudWxscHRyOyAvLyBubyBzdWNjZXNzb3IgdG8gdGhpcyB0YXNrCisgICAgIH0KKyAKKyBwcml2 YXRlOgorQEAgLTk0LDcgKzk1LDYgQEAgc3RydWN0IFF1ZXVlOjpJbXBsCisgICAgIC8vLyBAdG9k byBQcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdGhhbiBqdXN0ICJzdWNjZWVkZWQiIG9yICJmYWls ZWQiPworICAgICB1c2luZyBTdGF0dXNNYXAgPSB0YmI6OmNvbmN1cnJlbnRfaGFzaF9tYXA8UXVl dWU6OklkLCBRdWV1ZTo6U3RhdHVzPjsKKyAKKy0KKyAgICAgSW1wbCgpCisgICAgICAgICA6IG1U aW1lb3V0KFF1ZXVlOjpERUZBVUxUX1RJTUVPVVQpCisgICAgICAgICAsIG1DYXBhY2l0eShRdWV1 ZTo6REVGQVVMVF9DQVBBQ0lUWSkKK0BAIC0xNTksMTIgKzE1OSwxNSBAQCBzdHJ1Y3QgUXVldWU6 OkltcGwKKyAKKyAgICAgYm9vbCBjYW5FbnF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbU51bVRhc2tz IDwgSW50NjQobUNhcGFjaXR5KTsgfQorIAorLSAgICB2b2lkIGVucXVldWUoVGFzayYgdGFzaykK KysgICAgdm9pZCBlbnF1ZXVlKE91dHB1dFRhc2smIHRhc2spCisgICAgIHsKKy0gICAgICAgIHRi Yjo6dGlja19jb3VudCBzdGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7CisrICAgICAgICBh dXRvIHN0YXJ0ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgICAgICB3 aGlsZSAoIWNhbkVucXVldWUoKSkgeworLSAgICAgICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFk OjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3QoMC41LypzZWMqLykpOworLSAgICAg ICAgICAgIGlmICgodGJiOjp0aWNrX2NvdW50Ojpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkgPiBk b3VibGUobVRpbWVvdXQpKSB7CisrICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBf Zm9yKC8qMC41cyovc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApKTsKKysgICAgICAgICAg ICBhdXRvIGR1cmF0aW9uID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86 Om1pbGxpc2Vjb25kcz4oCisrICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv Y2s6Om5vdygpIC0gc3RhcnQpOworKyAgICAgICAgICAgIGNvbnN0IGRvdWJsZSBzZWNvbmRzID0g ZG91YmxlKGR1cmF0aW9uLmNvdW50KCkpIC8gMTAwMC4wOworKyAgICAgICAgICAgIGlmIChzZWNv bmRzID4gZG91YmxlKG1UaW1lb3V0KSkgeworICAgICAgICAgICAgICAgICBPUEVOVkRCX1RIUk9X KFJ1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gcXVldWUgSS9P IHRhc2s7ICIgPDwgbVRpbWVvdXQgPDwgIi1zZWNvbmQgdGltZSBsaW1pdCBleHBpcmVkIik7Cisg ICAgICAgICAgICAgfQorQEAgLTE3Myw3ICsxNzYsMTAgQEAgc3RydWN0IFF1ZXVlOjpJbXBsCisg ICAgICAgICAgICAgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIp OworICAgICAgICAgdGFzay5zZXROb3RpZmllcihub3RpZnkpOworICAgICAgICAgdGhpcy0+c2V0 U3RhdHVzKHRhc2suaWQoKSwgUXVldWU6OlBFTkRJTkcpOworLSAgICAgICAgdGJiOjp0YXNrOjpl bnF1ZXVlKHRhc2spOworKworKyAgICAgICAgLy8gZ2V0IHRoZSBnbG9iYWwgdGFzayBhcmVuYQor KyAgICAgICAgdGJiOjp0YXNrX2FyZW5hIGFyZW5hKHRiYjo6dGFza19hcmVuYTo6YXR0YWNoe30p OworKyAgICAgICAgYXJlbmEuZW5xdWV1ZShbdGFzayA9IHN0ZDo6bW92ZSh0YXNrKV0geyB0YXNr LmV4ZWN1dGUoKTsgfSk7CisgICAgICAgICArK21OdW1UYXNrczsKKyAgICAgfQorIAorQEAgLTIw NCw3ICsyMTAsNyBAQCBRdWV1ZTo6flF1ZXVlKCkKKyAgICAgLy8vIChlLmcuLCBieSBrZWVwaW5n IGEgc3RhdGljIHJlZ2lzdHJ5IG9mIHF1ZXVlcyB0aGF0IGFsc28gZGlzcGF0Y2hlcworICAgICAv Ly8gb3IgYmxvY2tzIG5vdGlmaWNhdGlvbnMpPworICAgICB3aGlsZSAobUltcGwtPm1OdW1UYXNr cyA+IDApIHsKKy0gICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tf Y291bnQ6OmludGVydmFsX3QoMC41LypzZWMqLykpOworKyAgICAgICAgc3RkOjp0aGlzX3RocmVh ZDo6c2xlZXBfZm9yKC8qMC41cyovc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApKTsKKyAg ICAgfQorIH0KKyAKK0BAIC0yOTAsMTYgKzI5Niw4IEBAIFF1ZXVlOjpJZAorIFF1ZXVlOjp3cml0 ZUdyaWRWZWMoY29uc3QgR3JpZENQdHJWZWMmIGdyaWRzLCBjb25zdCBBcmNoaXZlJiBhcmNoaXZl LCBjb25zdCBNZXRhTWFwJiBtZXRhZGF0YSkKKyB7CisgICAgIGNvbnN0IFF1ZXVlOjpJZCB0YXNr SWQgPSBtSW1wbC0+bU5leHRJZCsrOworLSAgICAvLyBGcm9tIHRoZSAiR1VJIFRocmVhZCIgY2hh cHRlciBpbiB0aGUgVEJCIERlc2lnbiBQYXR0ZXJucyBndWlkZQorLSAgICBPdXRwdXRUYXNrKiB0 YXNrID0KKy0gICAgICAgIG5ldyh0YmI6OnRhc2s6OmFsbG9jYXRlX3Jvb3QoKSkgT3V0cHV0VGFz ayh0YXNrSWQsIGdyaWRzLCBhcmNoaXZlLCBtZXRhZGF0YSk7CistICAgIHRyeSB7CistICAgICAg ICBtSW1wbC0+ZW5xdWV1ZSgqdGFzayk7CistICAgIH0gY2F0Y2ggKG9wZW52ZGI6OlJ1bnRpbWVF cnJvciYpIHsKKy0gICAgICAgIC8vIERlc3Ryb3kgdGhlIHRhc2sgaWYgaXQgY291bGQgbm90IGJl IGVucXVldWVkLCB0aGVuIHJldGhyb3cgdGhlIGV4Y2VwdGlvbi4KKy0gICAgICAgIHRiYjo6dGFz azo6ZGVzdHJveSgqdGFzayk7CistICAgICAgICB0aHJvdzsKKy0gICAgfQorKyAgICBPdXRwdXRU YXNrIHRhc2sodGFza0lkLCBncmlkcywgYXJjaGl2ZSwgbWV0YWRhdGEpOworKyAgICBtSW1wbC0+ ZW5xdWV1ZSh0YXNrKTsKKyAgICAgcmV0dXJuIHRhc2tJZDsKKyB9CisgCitkaWZmIC0tZ2l0IGEv b3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaCBiL29wZW52ZGIvb3BlbnZkYi9tYXRoL0Nvb3Jk LmgKK2luZGV4IDUwNGI1ZTlhNC4uMmU5Y2ZlZDVkIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVu dmRiL21hdGgvQ29vcmQuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaAorQEAg LTEzLDggKzEzLDcgQEAKKyAjaW5jbHVkZSAiTWF0aC5oIgorICNpbmNsdWRlICJWZWMzLmgiCisg CistbmFtZXNwYWNlIHRiYiB7IGNsYXNzIHNwbGl0OyB9IC8vIGZvcndhcmQgZGVjbGFyYXRpb24K Ky0KKysjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4gLy8gZm9yIHRiYjo6c3BsaXQKKyAK KyBuYW1lc3BhY2Ugb3BlbnZkYiB7CisgT1BFTlZEQl9VU0VfVkVSU0lPTl9OQU1FU1BBQ0UKK2Rp ZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmggYi9vcGVudmRi L29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmgKK2luZGV4IGExMjJjYzRmYi4uMjdlYzNmYjI5 IDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3BvaW50cy9Qb2ludFNhbXBsZS5oCisrKysg Yi9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmgKK0BAIC0xMCw4ICsxMCw5IEBA CisgI2lmbmRlZiBPUEVOVkRCX1BPSU5UU19QT0lOVF9TQU1QTEVfSEFTX0JFRU5fSU5DTFVERUQK KyAjZGVmaW5lIE9QRU5WREJfUE9JTlRTX1BPSU5UX1NBTVBMRV9IQVNfQkVFTl9JTkNMVURFRAor IAorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+CistI2luY2x1ZGUg PG9wZW52ZGIvdG9vbHMvSW50ZXJwb2xhdGlvbi5oPgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwv TnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5o IgorKyNpbmNsdWRlICJvcGVudmRiL3Rvb2xzL0ludGVycG9sYXRpb24uaCIKKyAKKyAjaW5jbHVk ZSAiUG9pbnREYXRhR3JpZC5oIgorICNpbmNsdWRlICJQb2ludEF0dHJpYnV0ZS5oIgorQEAgLTE5 LDcgKzIwLDYgQEAKKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+ CisgCistCisgbmFtZXNwYWNlIG9wZW52ZGIgeworIE9QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQ QUNFCisgbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsKK0BAIC0yOTksNyArMjk5LDcg QEAgY2xhc3MgUG9pbnREYXRhU2FtcGxlcgorICAgICAgICAgICAgIHVzaW5nIFRhcmdldEhhbmRs ZVQgPSBBdHRyaWJ1dGVXcml0ZUhhbmRsZTx0eXBlbmFtZSBTYW1wbGVyV3JhcHBlclQ6OlZhbHVl VHlwZT47CisgCisgICAgICAgICAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKGludGVycnVw dGVyKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBf ZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRp b24oKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgIH0KKyAKK2RpZmYg LS1naXQgYS9vcGVudmRiL29wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIGIvb3BlbnZkYi9vcGVu dmRiL3RocmVhZC9UaHJlYWRpbmcuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMC4uMGMzYjM1NmUzCistLS0gL2Rldi9udWxsCisrKysgYi9vcGVudmRiL29wZW52ZGIvdGhy ZWFkL1RocmVhZGluZy5oCitAQCAtMCwwICsxLDU0IEBACisrLy8gQ29weXJpZ2h0IENvbnRyaWJ1 dG9ycyB0byB0aGUgT3BlblZEQiBQcm9qZWN0CisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1QTC0yLjAKKysvLworKy8vLyBAZmlsZSBUaHJlYWRpbmcuaAorKworKyNpZm5kZWYgT1BFTlZE Ql9USFJFQURfVEhSRUFESU5HX0hBU19CRUVOX0lOQ0xVREVECisrI2RlZmluZSBPUEVOVkRCX1RI UkVBRF9USFJFQURJTkdfSEFTX0JFRU5fSU5DTFVERUQKKysKKysjaW5jbHVkZSAib3BlbnZkYi92 ZXJzaW9uLmgiCisrCisrLy8vIEBub3RlIHRiYi9ibG9ja2VkX3JhbmdlLmggaXMgdGhlIE9OTFkg aW5jbHVkZSB0aGF0IHBlcnNpc3RzIGZyb20gVEJCIDIwMjAKKysvLy8gICB0byBUQkIgMjAyMSB0 aGF0IGl0c2VsZiBpbmNsdWRlcyB0aGUgVEJCIHNwZWNpZmljIHZlcnNpb24gaGVhZGVyIGZpbGVz LgorKy8vLyAgIEluIFRCQiAyMDIwLCB0aGUgdmVyc2lvbiBoZWFkZXIgd2FzIGNhbGxlZCB0YmIv c3RkZGVmLmguIEluIDIwMjEsIGl0J3MKKysvLy8gICBjYWxsZWQgdGJiL3ZlcnNpb24uaC4gV2Ug aW5jbHVkZSB0YmIvYmxvY2tlZF9yYW5nZS5oIGhlcmUgdG8gaW5kaXJlY3RseQorKy8vLyAgIGFj Y2VzcyB0aGUgdmVyc2lvbiBkZWZpbmVzIGluIGEgY29uc2lzdGVudCB3YXkgc28gdGhhdCBkb3du c3RyZWFtCisrLy8vICAgc29mdHdhcmUgZG9lc24ndCBuZWVkIHRvIHByb3ZpZGUgY29tcGlsZSB0 aW1lIGRlZmluZXMuCisrI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CisrI2luY2x1ZGUg PHRiYi90YXNrLmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2dyb3VwLmg+CisrCisrbmFtZXNwYWNl IG9wZW52ZGIgeworK09QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQQUNFCisrbmFtZXNwYWNlIE9Q RU5WREJfVkVSU0lPTl9OQU1FIHsKKytuYW1lc3BhY2UgdGhyZWFkIHsKKysKKytpbmxpbmUgYm9v bCBjYW5jZWxHcm91cEV4ZWN1dGlvbigpCisreworKyAgICAvLyBAbm90ZSAxMjAwMCB3YXMgdGhl IDIwMjEuMS1iZXRhMDUgcmVsZWFzZS4gVGhlIDIwMjEuMS1iZXRhMDggcmVsZWFzZQorKyAgICAv LyAgIGludHJvZHVjZWQgY3VycmVudF9jb250ZXh0KCkuCisrI2lmIFRCQl9JTlRFUkZBQ0VfVkVS U0lPTiA+PSAxMjAwMgorKyAgICBhdXRvIGN0eCA9IHRiYjo6dGFzazo6Y3VycmVudF9jb250ZXh0 KCk7CisrICAgIHJldHVybiBjdHggPyBjdHgtPmNhbmNlbF9ncm91cF9leGVjdXRpb24oKSA6IGZh bHNlOworKyNlbHNlCisrICAgIHJldHVybiB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBf ZXhlY3V0aW9uKCk7CisrI2VuZGlmCisrfQorKworK2lubGluZSBib29sIGlzR3JvdXBFeGVjdXRp b25DYW5jZWxsZWQoKQorK3sKKysgICAgLy8gQG5vdGUgMTIwMDAgd2FzIHRoZSAyMDIxLjEtYmV0 YTA1IHJlbGVhc2UuIFRoZSAyMDIxLjEtYmV0YTA4IHJlbGVhc2UKKysgICAgLy8gICBpbnRyb2R1 Y2VkIGN1cnJlbnRfY29udGV4dCgpLgorKyNpZiBUQkJfSU5URVJGQUNFX1ZFUlNJT04gPj0gMTIw MDIKKysgICAgYXV0byBjdHggPSB0YmI6OnRhc2s6OmN1cnJlbnRfY29udGV4dCgpOworKyAgICBy ZXR1cm4gY3R4ID8gY3R4LT5pc19ncm91cF9leGVjdXRpb25fY2FuY2VsbGVkKCkgOiBmYWxzZTsK KysjZWxzZQorKyAgICByZXR1cm4gdGJiOjp0YXNrOjpzZWxmKCkuaXNfY2FuY2VsbGVkKCk7Cisr I2VuZGlmCisrfQorKworK30gLy8gbmFtZXNwYWNlIHRocmVhZAorK30gLy8gbmFtZXNwYWNlIE9Q RU5WREJfVkVSU0lPTl9OQU1FCisrfSAvLyBuYW1lc3BhY2Ugb3BlbnZkYgorKworKyNlbmRpZiAv LyBPUEVOVkRCX1RIUkVBRF9USFJFQURJTkdfSEFTX0JFRU5fSU5DTFVERUQKK2RpZmYgLS1naXQg YS9vcGVudmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmggYi9vcGVudmRiL29wZW52ZGIvdG9v bHMvQ29tcG9zaXRlLmgKK2luZGV4IDZiYzE3MGJmNy4uODhmZjg2ZjlmIDEwMDY0NAorLS0tIGEv b3BlbnZkYi9vcGVudmRiL3Rvb2xzL0NvbXBvc2l0ZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIv dG9vbHMvQ29tcG9zaXRlLmgKK0BAIC0yNCw3ICsyNCw2IEBACisgI2luY2x1ZGUgPHRiYi9wYXJh bGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorICNpbmNsdWRl IDx0YmIvdGFza19ncm91cC5oPgorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5pdC5o PgorIAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KK2Rp ZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvRGlhZ25vc3RpY3MuaCBiL29wZW52ZGIv b3BlbnZkYi90b29scy9EaWFnbm9zdGljcy5oCitpbmRleCA2OTRkMjE1NWYuLmU1ODQ0ZTQ0OCAx MDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9EaWFnbm9zdGljcy5oCisrKysgYi9v cGVudmRiL29wZW52ZGIvdG9vbHMvRGlhZ25vc3RpY3MuaAorQEAgLTExLDE0ICsxMSwxNyBAQAor ICNpZm5kZWYgT1BFTlZEQl9UT09MU19ESUFHTk9TVElDU19IQVNfQkVFTl9JTkNMVURFRAorICNk ZWZpbmUgT1BFTlZEQl9UT09MU19ESUFHTk9TVElDU19IQVNfQkVFTl9JTkNMVURFRAorIAorLSNp bmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL01hdGguaD4K Ky0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1ZlYzMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRo L1N0ZW5jaWxzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9PcGVyYXRvcnMuaD4KKy0jaW5j bHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvR3Jp ZC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvTWF0aC5oIgorKyNpbmNsdWRlICJvcGVudmRi L21hdGgvVmVjMy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvU3RlbmNpbHMuaCIKKysjaW5j bHVkZSAib3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUv TGVhZk1hbmFnZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisr CisgI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxl bF9yZWR1Y2UuaD4KKysKKyAjaW5jbHVkZSA8Y21hdGg+IC8vIGZvciBzdGQ6OmlzbmFuKCksIHN0 ZDo6aXNmaW5pdGUoKQorICNpbmNsdWRlIDxzZXQ+CisgI2luY2x1ZGUgPHNzdHJlYW0+CitAQCAt MjYsNyArMjksNiBAQAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8dmVjdG9y PgorIAorLQorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVT UEFDRQorIG5hbWVzcGFjZSBPUEVOVkRCX1ZFUlNJT05fTkFNRSB7CitAQCAtMTE2MCwxMyArMTE2 MiwxMyBAQCBJbmFjdGl2ZVZveGVsVmFsdWVzPFRyZWVUeXBlPjo6b3BlcmF0b3IoKShjb25zdCB0 YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiYgcmFuZworIHsKKyAgICAgdHlwZW5hbWUgVHJlZVR5 cGU6OkxlYWZOb2RlVHlwZTo6VmFsdWVPZmZDSXRlciBpdGVyOworIAorLSAgICBmb3IgKHNpemVf dCBuID0gcmFuZ2UuYmVnaW4oKTsgbiA8IHJhbmdlLmVuZCgpICYmICF0YmI6OnRhc2s6OnNlbGYo KS5pc19jYW5jZWxsZWQoKTsgKytuKSB7CisrICAgIGZvciAoc2l6ZV90IG4gPSByYW5nZS5iZWdp bigpOyBuIDwgcmFuZ2UuZW5kKCkgJiYgIXRocmVhZDo6aXNHcm91cEV4ZWN1dGlvbkNhbmNlbGxl ZCgpOyArK24pIHsKKyAgICAgICAgIGZvciAoaXRlciA9IG1MZWFmQXJyYXkubGVhZihuKS5jYmVn aW5WYWx1ZU9mZigpOyBpdGVyOyArK2l0ZXIpIHsKKyAgICAgICAgICAgICBtSW5hY3RpdmVWYWx1 ZXMuaW5zZXJ0KGl0ZXIuZ2V0VmFsdWUoKSk7CisgICAgICAgICB9CisgCisgICAgICAgICBpZiAo bUluYWN0aXZlVmFsdWVzLnNpemUoKSA+IG1OdW1WYWx1ZXMpIHsKKy0gICAgICAgICAgICB0YmI6 OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhy ZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgfQorICAgICB9CisgfQorQEAg LTEyNTAsMTQgKzEyNTIsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVHJlZVR5cGU+CisgaW5saW5l IHZvaWQKKyBJbmFjdGl2ZVRpbGVWYWx1ZXM8VHJlZVR5cGU+OjpvcGVyYXRvcigpKEl0ZXJSYW5n ZSYgcmFuZ2UpCisgeworLSAgICBmb3IgKDsgcmFuZ2UgJiYgIXRiYjo6dGFzazo6c2VsZigpLmlz X2NhbmNlbGxlZCgpOyArK3JhbmdlKSB7CisrICAgIGZvciAoOyByYW5nZSAmJiAhdGhyZWFkOjpp c0dyb3VwRXhlY3V0aW9uQ2FuY2VsbGVkKCk7ICsrcmFuZ2UpIHsKKyAgICAgICAgIHR5cGVuYW1l IFRyZWVUeXBlOjpWYWx1ZU9mZkNJdGVyIGl0ZXIgPSByYW5nZS5pdGVyYXRvcigpOworICAgICAg ICAgZm9yICg7IGl0ZXI7ICsraXRlcikgeworICAgICAgICAgICAgIG1JbmFjdGl2ZVZhbHVlcy5p bnNlcnQoaXRlci5nZXRWYWx1ZSgpKTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIGlmIChtSW5h Y3RpdmVWYWx1ZXMuc2l6ZSgpID4gbU51bVZhbHVlcykgeworLSAgICAgICAgICAgIHRiYjo6dGFz azo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICB0aHJlYWQ6 OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICB9CisgICAgIH0KKyB9CitkaWZmIC0t Z2l0IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oIGIvb3BlbnZkYi9vcGVudmRiL3Rv b2xzL0ZpbHRlci5oCitpbmRleCA0MDhjNzU1NDEuLmI3MDIxMjUyMCAxMDA2NDQKKy0tLSBhL29w ZW52ZGIvb3BlbnZkYi90b29scy9GaWx0ZXIuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xz L0ZpbHRlci5oCitAQCAtMTQsMjEgKzE0LDI0IEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX0ZJ TFRFUl9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19GSUxURVJfSEFT X0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorLSNpbmNs dWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9TdGVuY2lscy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21h dGgvVHJhbnNmb3JtLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9Ob2RlTWFuYWdlci5oPgor LSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZk Yi91dGlsL051bGxJbnRlcnJ1cHRlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvVXRpbC5o PgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5o IgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01h dGguaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisrI2luY2x1ZGUgIm9w ZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaCIKKysjaW5jbHVkZSAib3BlbnZkYi90cmVlL05vZGVNYW5h Z2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oIgorKyNpbmNsdWRl ICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRp bC9VdGlsLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorICNpbmNs dWRlICJJbnRlcnBvbGF0aW9uLmgiCisrCisrI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4K KysjaW5jbHVkZSA8dGJiL2NvbmN1cnJlbnRfdmVjdG9yLmg+CisrCisgI2luY2x1ZGUgPGFsZ29y aXRobT4gLy8gZm9yIHN0ZDo6bWF4KCkKKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyAjaW5jbHVk ZSA8dHlwZV90cmFpdHM+CistI2luY2x1ZGUgPHRiYi9jb25jdXJyZW50X3ZlY3Rvci5oPgorIAor IG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorQEAg LTgzMyw3ICs4MzYsNyBAQCBpbmxpbmUgYm9vbAorIEZpbHRlcjxHcmlkVCwgTWFza1QsIEludGVy cnVwdFQ+Ojp3YXNJbnRlcnJ1cHRlZCgpCisgeworICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0 ZWQobUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dy b3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigp OworICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAgICAgcmV0dXJuIGZhbHNlOworZGlm ZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3JzLmggYi9vcGVudmRi L29wZW52ZGIvdG9vbHMvR3JpZE9wZXJhdG9ycy5oCitpbmRleCAzMTMwNWExYWIuLjc4ZmFmZWFk OSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3JzLmgKKysr KyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3JzLmgKK0BAIC05LDE0ICs5LDE1 IEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX0dSSURfT1BFUkFUT1JTX0hBU19CRUVOX0lOQ0xV REVECisgI2RlZmluZSBPUEVOVkRCX1RPT0xTX0dSSURfT1BFUkFUT1JTX0hBU19CRUVOX0lOQ0xV REVECisgCistI2luY2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21h dGgvT3BlcmF0b3JzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIu aD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CistI2luY2x1ZGUgPG9w ZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvR3JpZC5oIgor KyNpbmNsdWRlICJvcGVudmRiL21hdGgvT3BlcmF0b3JzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv dXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFk aW5nLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oIgorKyNpbmNsdWRl ICJvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5oIgorICNpbmNsdWRlICJWYWx1ZVRyYW5zZm9y bWVyLmgiIC8vIGZvciB0b29sczo6Zm9yZWFjaCgpCistI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9m b3IuaD4KKyAKKysjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorIAorIG5hbWVzcGFjZSBv cGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorQEAgLTM4Myw3ICszODQs OSBAQCBjbGFzcyBHcmlkT3BlcmF0b3IKKyAgICAgLy8vIFRCQiB0aHJlYWRzIG9ubHkhCisgICAg IHZvaWQgb3BlcmF0b3IoKShjb25zdCB0eXBlbmFtZSBMZWFmTWFuYWdlclQ6OkxlYWZSYW5nZSYg cmFuZ2UpIGNvbnN0CisgICAgIHsKKy0gICAgICAgIGlmICh1dGlsOjp3YXNJbnRlcnJ1cHRlZCht SW50ZXJydXB0KSkgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOwor KyAgICAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHQpKSB7CisrICAgICAg ICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworKyAgICAgICAgfQorIAorICAg ICAgICAgZm9yICh0eXBlbmFtZSBMZWFmTWFuYWdlclQ6OkxlYWZSYW5nZTo6SXRlcmF0b3IgbGVh Zj1yYW5nZS5iZWdpbigpOyBsZWFmOyArK2xlYWYpIHsKKyAgICAgICAgICAgICBmb3IgKHR5cGVu YW1lIE91dExlYWZUOjpWYWx1ZU9uSXRlciB2YWx1ZT1sZWFmLT5iZWdpblZhbHVlT24oKTsgdmFs dWU7ICsrdmFsdWUpIHsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxT ZXRNZWFzdXJlLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmgKK2lu ZGV4IGVmZTE5MDc0ZC4uNTk5NjljZGNmIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rv b2xzL0xldmVsU2V0TWVhc3VyZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxT ZXRNZWFzdXJlLmgKK0BAIC04LDE4ICs4LDIxIEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX0xF VkVMU0VUTUVBU1VSRV9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19M RVZFTFNFVE1FQVNVUkVfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8b3BlbnZkYi9t YXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9UeXBlcy5oPgorLSNpbmNsdWRlIDxvcGVu dmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CistI2lu Y2x1ZGUgPG9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmg+CistI2luY2x1ZGUgPG9wZW52ZGIv bWF0aC9GaW5pdGVEaWZmZXJlbmNlLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9PcGVyYXRv cnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmg+CistI2luY2x1ZGUgPG9w ZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5o IgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xl YWZNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmgiCisr I2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9G aW5pdGVEaWZmZXJlbmNlLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9PcGVyYXRvcnMuaCIK KysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv dXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFk aW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJi L3BhcmFsbGVsX3NvcnQuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2ludm9rZS5oPgorKwor ICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAKKyBuYW1lc3BhY2Ugb3BlbnZkYiB7CitAQCAtMzI5 LDcgKzMzMiw3IEBAIGlubGluZSBib29sCisgTGV2ZWxTZXRNZWFzdXJlPEdyaWRULCBJbnRlcnJ1 cHRUPjo6Y2hlY2tJbnRlcnJ1cHRlcigpCisgeworICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0 ZWQobUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dy b3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigp OworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAgIHJldHVybiB0cnVlOworZGlm ZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNrZXIuaCBiL29wZW52 ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNrZXIuaAoraW5kZXggY2JkYzI2N2U4Li5iZmM4 MDA0ZTcgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxTZXRUcmFja2Vy LmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNrZXIuaAorQEAgLTEy LDI0ICsxMiwyNiBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19MRVZFTF9TRVRfVFJBQ0tFUl9I QVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19MRVZFTF9TRVRfVFJBQ0tF Ul9IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvVHlwZXMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL01hdGgu aD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL0Zpbml0ZURpZmZlcmVuY2UuaD4KKy0jaW5jbHVk ZSA8b3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvU3Rl bmNpbHMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1RyYW5zZm9ybS5oPgorLSNpbmNsdWRl IDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRl ci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5oPgorLSNpbmNsdWRl IDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5o IgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01h dGguaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL0Zpbml0ZURpZmZlcmVuY2UuaCIKKysjaW5j bHVkZSAib3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgv U3RlbmNpbHMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1RyYW5zZm9ybS5oIgorKyNpbmNs dWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv dGhyZWFkL1RocmVhZGluZy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nv ci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIKKyAjaW5jbHVkZSAi Q2hhbmdlQmFja2dyb3VuZC5oIi8vIGZvciBjaGFuZ2VMZXZlbFNldEJhY2tncm91bmQKKyAjaW5j bHVkZSAiTW9ycGhvbG9neS5oIi8vZm9yIGRpbGF0ZUFjdGl2ZVZhbHVlcworICNpbmNsdWRlICJQ cnVuZS5oIi8vIGZvciBwcnVuZUxldmVsU2V0CisrCisrI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9m b3IuaD4KKysKKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+ CisgCistCisgbmFtZXNwYWNlIG9wZW52ZGIgeworIE9QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQ QUNFCisgbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsKK0BAIC0zODMsNyArMzg1LDcg QEAgTGV2ZWxTZXRUcmFja2VyPEdyaWRULCBJbnRlcnJ1cHRUPjo6CisgY2hlY2tJbnRlcnJ1cHRl cigpCisgeworICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkgewor LSAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAg ICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICB9CisgICAgIHJldHVybiB0cnVlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3Bl bnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9NZXNoVG9W b2x1bWUuaAoraW5kZXggNjY0M2M4ZjA1Li5kZTM0MDZlZGEgMTAwNjQ0CistLS0gYS9vcGVudmRi L29wZW52ZGIvdG9vbHMvTWVzaFRvVm9sdW1lLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29s cy9NZXNoVG9Wb2x1bWUuaAorQEAgLTE2LDEyICsxNiwxMyBAQAorICNpZm5kZWYgT1BFTlZEQl9U T09MU19NRVNIX1RPX1ZPTFVNRV9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9U T09MU19NRVNIX1RPX1ZPTFVNRV9IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVu dmRiL1BsYXRmb3JtLmg+IC8vIGZvciBPUEVOVkRCX0hBU19DWFgxMQorLSNpbmNsdWRlIDxvcGVu dmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmg+ IC8vIGZvciBHb2R1bm92c05vcm1TcXJkCistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9Qcm94aW1p dHkuaD4gLy8gZm9yIGNsb3Nlc3RQb2ludE9uVHJpYW5nbGVUb1BvaW50CistI2luY2x1ZGUgPG9w ZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL1V0 aWwuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9QbGF0Zm9ybS5oIiAvLyBmb3IgT1BFTlZEQl9IQVNf Q1hYMTEKKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21h dGgvRmluaXRlRGlmZmVyZW5jZS5oIiAvLyBmb3IgR29kdW5vdnNOb3JtU3FyZAorKyNpbmNsdWRl ICJvcGVudmRiL21hdGgvUHJveGltaXR5LmgiIC8vIGZvciBjbG9zZXN0UG9pbnRPblRyaWFuZ2xl VG9Qb2ludAorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2lu Y2x1ZGUgIm9wZW52ZGIvdXRpbC9VdGlsLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1Ro cmVhZGluZy5oIgorIAorICNpbmNsdWRlICJDaGFuZ2VCYWNrZ3JvdW5kLmgiCisgI2luY2x1ZGUg IlBydW5lLmgiIC8vIGZvciBwcnVuZUluYWN0aXZlIGFuZCBwcnVuZUxldmVsU2V0CitAQCAtMzMs NyArMzQsNyBAQAorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CisgI2luY2x1ZGUg PHRiYi9wYXJ0aXRpb25lci5oPgorICNpbmNsdWRlIDx0YmIvdGFza19ncm91cC5oPgorLSNpbmNs dWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5pdC5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19hcmVu YS5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6OnNvcnQoKQorICNpbmNs dWRlIDxjbWF0aD4gLy8gZm9yIHN0ZDo6aXNmaW5pdGUoKSwgc3RkOjppc25hbigpCitAQCAtMTEz Miw3ICsxMTMzLDcgQEAgaW5saW5lIHZvaWQKKyBmaWxsQXJyYXkoVmFsdWVUeXBlKiBhcnJheSwg Y29uc3QgVmFsdWVUeXBlIHZhbCwgY29uc3Qgc2l6ZV90IGxlbmd0aCkKKyB7CisgICAgIGNvbnN0 IGF1dG8gZ3JhaW5TaXplID0gc3RkOjptYXg8c2l6ZV90PigKKy0gICAgICAgIGxlbmd0aCAvIHRi Yjo6dGFza19zY2hlZHVsZXJfaW5pdDo6ZGVmYXVsdF9udW1fdGhyZWFkcygpLCAxMDI0KTsKKysg ICAgICAgIGxlbmd0aCAvIHRiYjo6dGhpc190YXNrX2FyZW5hOjptYXhfY29uY3VycmVuY3koKSwg MTAyNCk7CisgICAgIGNvbnN0IHRiYjo6YmxvY2tlZF9yYW5nZTxzaXplX3Q+IHJhbmdlKDAsIGxl bmd0aCwgZ3JhaW5TaXplKTsKKyAgICAgdGJiOjpwYXJhbGxlbF9mb3IocmFuZ2UsIEZpbGxBcnJh eTxWYWx1ZVR5cGU+KGFycmF5LCB2YWwpLCB0YmI6OnNpbXBsZV9wYXJ0aXRpb25lcigpKTsKKyB9 CitAQCAtMTk4OSw3ICsxOTkwLDcgQEAgY2xhc3MgVm94ZWxpemVQb2x5Z29ucworICAgICAgICAg Zm9yIChzaXplX3QgbiA9IHJhbmdlLmJlZ2luKCksIE4gPSByYW5nZS5lbmQoKTsgbiA8IE47ICsr bikgeworIAorICAgICAgICAgICAgIGlmICh0aGlzLT53YXNJbnRlcnJ1cHRlZCgpKSB7CistICAg ICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsK KysgICAgICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisgCitAQCAtMjE0Myw3ICsyMTQ0LDcg QEAgY2xhc3MgVm94ZWxpemVQb2x5Z29ucworIAorICAgICAgICAgd2hpbGUgKCFjb29yZExpc3Qu ZW1wdHkoKSkgeworICAgICAgICAgICAgIGlmIChpbnRlcnJ1cHRlciAmJiBpbnRlcnJ1cHRlci0+ d2FzSW50ZXJydXB0ZWQoKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5j YW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVhZDo6Y2FuY2Vs R3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg fQorICAgICAgICAgICAgIGZvciAoSW50MzIgcGFzcyA9IDA7IHBhc3MgPCAxMDQ4NTc2ICYmICFj b29yZExpc3QuZW1wdHkoKTsgKytwYXNzKSB7CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRi L3Rvb2xzL01vcnBob2xvZ3kuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Nb3JwaG9sb2d5LmgK K2luZGV4IDczNjk4MmVmNS4uMGExZTcxMDA5IDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRi L3Rvb2xzL01vcnBob2xvZ3kuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xv Z3kuaAorQEAgLTI0LDcgKzI0LDcgQEAKKyAjaW5jbHVkZSAib3BlbnZkYi90cmVlL1ZhbHVlQWNj ZXNzb3IuaCIKKyAjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisgCistI2lu Y2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2Fy ZW5hLmg+CisgI2luY2x1ZGUgPHRiYi9lbnVtZXJhYmxlX3RocmVhZF9zcGVjaWZpYy5oPgorICNp bmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisgCitAQCAtNzI2LDcgKzcyNiw3IEBAIHZvaWQg TW9ycGhvbG9neTxUcmVlVHlwZT46OmRpbGF0ZVZveGVscyhjb25zdCBzaXplX3QgaXRlciwKKyAg ICAgICAgIH0KKyAKKyAgICAgICAgIC8vIEBub3RlIHRoaXMgZ3JhaW4gc2l6ZSBpcyB1c2VkIGZv ciBvcHRpbWFsIHRocmVhZGluZworLSAgICAgICAgY29uc3Qgc2l6ZV90IG51bVRocmVhZHMgPSBz aXplX3QodGJiOjp0YXNrX3NjaGVkdWxlcl9pbml0OjpkZWZhdWx0X251bV90aHJlYWRzKCkpOwor KyAgICAgICAgY29uc3Qgc2l6ZV90IG51bVRocmVhZHMgPSBzaXplX3QodGJiOjp0aGlzX3Rhc2tf YXJlbmE6Om1heF9jb25jdXJyZW5jeSgpKTsKKyAgICAgICAgIGNvbnN0IHNpemVfdCBzdWJUcmVl U2l6ZSA9IG1hdGg6Ok1heChzaXplX3QoMSksIGFycmF5LnNpemUoKS8oMipudW1UaHJlYWRzKSk7 CisgCisgICAgICAgICAvLyBwZXJmb3JtIHJlY3Vyc2l2ZSBkaWxhdGlvbiB0byBzdWIgdHJlZXMK K2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUGFydGljbGVzVG9MZXZlbFNldC5o IGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BhcnRpY2xlc1RvTGV2ZWxTZXQuaAoraW5kZXggNzM5 YWYyYjY5Li5mOWMxOTkxMWMgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUGFy dGljbGVzVG9MZXZlbFNldC5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUGFydGljbGVz VG9MZXZlbFNldC5oCitAQCAtNjIsMTkgKzYyLDIzIEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xT X1BBUlRJQ0xFU19UT19MRVZFTFNFVF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZE Ql9UT09MU19QQVJUSUNMRVNfVE9fTEVWRUxTRVRfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5j bHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorLSNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5n ZS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvR3Jp ZC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvTWF0aC5oPgorLSNpbmNsdWRlIDxvcGVudmRi L21hdGgvVHJhbnNmb3JtLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5o PgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvbG9nZ2luZy5oPgorLSNpbmNsdWRlIDxvcGVudmRi L3V0aWwvTnVsbEludGVycnVwdGVyLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysj aW5jbHVkZSAib3BlbnZkYi9HcmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9NYXRoLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaCIKKysjaW5jbHVkZSAib3BlbnZk Yi90cmVlL0xlYWZNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9sb2dnaW5nLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAi b3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgIkNvbXBvc2l0ZS5oIiAv LyBmb3IgY3NnVW5pb24oKQorICNpbmNsdWRlICJQb2ludFBhcnRpdGlvbmVyLmgiCisgI2luY2x1 ZGUgIlBydW5lLmgiCisgI2luY2x1ZGUgIlNpZ25lZEZsb29kRmlsbC5oIgorKworKyNpbmNsdWRl IDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CisrI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+ CisrCisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisgI2luY2x1ZGUgPGlvc3RyZWFtPgorICNpbmNs dWRlIDx0eXBlX3RyYWl0cz4KK0BAIC03MzgsNyArNzQyLDcgQEAgc3RydWN0IFBhcnRpY2xlc1Rv TGV2ZWxTZXQ8U2RmR3JpZFQsIEF0dHJpYnV0ZVQsIEludGVycnVwdGVyVD46OlJhc3RlcgorICAg ICAgICAgZm9yIChDb29yZCBjID0gbG87IGMueCgpIDw9IGhpLngoKTsgKytjLngoKSkgeworICAg ICAgICAgICAgIC8vb25seSBjaGVjayBpbnRlcnJ1cHRlciBldmVyeSAzMid0aCBzY2FuIGluIHgK KyAgICAgICAgICAgICBpZiAoIShjb3VudCsrICYgKCgxPDw1KS0xKSkgJiYgdXRpbDo6d2FzSW50 ZXJydXB0ZWQobVBhcmVudC5tSW50ZXJydXB0ZXIpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6 dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAg dGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvbnN0IFJlYWwgeDIgPSBtYXRo OjpQb3cyKGMueCgpIC0gUFswXSk7CitAQCAtODA0LDcgKzgwOCw3IEBAIHN0cnVjdCBQYXJ0aWNs ZXNUb0xldmVsU2V0PFNkZkdyaWRULCBBdHRyaWJ1dGVULCBJbnRlcnJ1cHRlclQ+OjpSYXN0ZXIK KyAgICAgICAgIC8vIERlbnNlbHkgZmlsbCB0aGUgcmVtYWluaW5nIHJlZ2lvbnMuCisgICAgICAg ICBmb3IgKGNvbnN0IGF1dG8mIGJib3g6IHBhZGRpbmcpIHsKKyAgICAgICAgICAgICBpZiAodXRp bDo6d2FzSW50ZXJydXB0ZWQobVBhcmVudC5tSW50ZXJydXB0ZXIpKSB7CistICAgICAgICAgICAg ICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAg ICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvbnN0IENvb3Jk ICZibWluID0gYmJveC5taW4oKSwgJmJtYXggPSBiYm94Lm1heCgpOworZGlmZiAtLWdpdCBhL29w ZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEFkdmVjdC5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xz L1BvaW50QWR2ZWN0LmgKK2luZGV4IDEyYjExNzdhZC4uZTQ4N2JmYjNlIDEwMDY0NAorLS0tIGEv b3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50QWR2ZWN0LmgKKysrKyBiL29wZW52ZGIvb3BlbnZk Yi90b29scy9Qb2ludEFkdmVjdC5oCitAQCAtMTAsMTYgKzEwLDE5IEBACisgI2lmbmRlZiBPUEVO VkRCX1RPT0xTX1BPSU5UX0FEVkVDVF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZE Ql9UT09MU19QT0lOVF9BRFZFQ1RfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8b3Bl bnZkYi9vcGVudmRiLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+ICAgICAgICAg ICAgIC8vIG1pbgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+ICAgICAgICAgICAgICAgICAv LyBWZWMzIHR5cGVzIGFuZCB2ZXJzaW9uIG51bWJlcgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQu aD4gICAgICAgICAgICAgICAgICAvLyBncmlkCistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxs SW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9vcGVudmRiLmgiCisrI2luY2x1ZGUg Im9wZW52ZGIvVHlwZXMuaCIgICAgICAgICAgICAgICAgIC8vIFZlYzMgdHlwZXMgYW5kIHZlcnNp b24gbnVtYmVyCisrI2luY2x1ZGUgIm9wZW52ZGIvR3JpZC5oIiAgICAgICAgICAgICAgICAgIC8v IGdyaWQKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01hdGguaCIgICAgICAgICAgICAgLy8gbWlu CisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAi b3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisgI2luY2x1ZGUgIkludGVycG9sYXRpb24uaCIg ICAgICAgICAgICAgICAgIC8vIHNhbXBsaW5nCisgI2luY2x1ZGUgIlZlbG9jaXR5RmllbGRzLmgi ICAgICAgICAgICAgICAgIC8vIFZlbG9jaXR5SW50ZWdyYXRvcgorKworICNpbmNsdWRlIDx0YmIv YmxvY2tlZF9yYW5nZS5oPiAgICAgICAgICAgICAvLyB0aHJlYWRpbmcKKyAjaW5jbHVkZSA8dGJi L3BhcmFsbGVsX2Zvci5oPiAgICAgICAgICAgICAgLy8gdGhyZWFkaW5nCisgI2luY2x1ZGUgPHRi Yi90YXNrLmg+ICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBjYW5jZWwKKysKKyAjaW5jbHVk ZSA8dmVjdG9yPgorIAorIAorQEAgLTE2Nyw3ICsxNzAsNyBAQCBjbGFzcyBQb2ludEFkdmVjdAor ICAgICB2b2lkIG9wZXJhdG9yKCkgKGNvbnN0IHRiYjo6YmxvY2tlZF9yYW5nZTxzaXplX3Q+ICZy YW5nZSkgY29uc3QKKyAgICAgeworICAgICAgICAgaWYgKG1JbnRlcnJ1cHRlciAmJiBtSW50ZXJy dXB0ZXItPndhc0ludGVycnVwdGVkKCkpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYo KS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxH cm91cEV4ZWN1dGlvbigpOworICAgICAgICAgfQorIAorICAgICAgICAgVmVsb2NpdHlGaWVsZElu dGVncmF0b3IgIHZlbEZpZWxkKCptVmVsR3JpZCk7CitAQCAtMzA3LDcgKzMxMCw3IEBAIGNsYXNz IENvbnN0cmFpbmVkUG9pbnRBZHZlY3QKKyAgICAgdm9pZCBvcGVyYXRvcigpIChjb25zdCB0YmI6 OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiAmcmFuZ2UpIGNvbnN0CisgICAgIHsKKyAgICAgICAgIGlm IChtSW50ZXJydXB0ZXIgJiYgbUludGVycnVwdGVyLT53YXNJbnRlcnJ1cHRlZCgpKSB7CistICAg ICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAg ICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgIH0KKyAK KyAgICAgICAgIFZlbG9jaXR5SW50ZWdyYXRvclR5cGUgdmVsRmllbGQoKm1WZWxHcmlkKTsKK2Rp ZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdyaWQuaCBiL29wZW52 ZGIvb3BlbnZkYi90b29scy9Qb2ludEluZGV4R3JpZC5oCitpbmRleCBlOWViZjk2ZjcuLmIyZTM3 OGE3OSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEluZGV4R3JpZC5o CisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdyaWQuaAorQEAgLTE2LDYg KzE2LDcgQEAKKyAjaWZuZGVmIE9QRU5WREJfVE9PTFNfUE9JTlRfSU5ERVhfR1JJRF9IQVNfQkVF Tl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19QT0lOVF9JTkRFWF9HUklEX0hBU19C RUVOX0lOQ0xVREVECisgCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgor ICNpbmNsdWRlICJQb2ludFBhcnRpdGlvbmVyLmgiCisgCisgI2luY2x1ZGUgPG9wZW52ZGIvdmVy c2lvbi5oPgorQEAgLTM1NSw3ICszNTYsNyBAQCBzdHJ1Y3QgVmFsaWRQYXJ0aXRpb25pbmdPcAor ICAgICB2b2lkIG9wZXJhdG9yKCkoTGVhZlQgJmxlYWYsIHNpemVfdCAvKmxlYWZJbmRleCovKSBj b25zdAorICAgICB7CisgICAgICAgICBpZiAoKCptSGFzQ2hhbmdlZCkpIHsKKy0gICAgICAgICAg ICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAg ICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgIHJldHVybjsK KyAgICAgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRQ YXJ0aXRpb25lci5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50UGFydGl0aW9uZXIuaAor aW5kZXggY2NmNTBhYjA1Li5mN2Y2ZmMxM2QgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIv dG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9p bnRQYXJ0aXRpb25lci5oCitAQCAtMjMsNyArMjMsNyBAQAorIAorICNpbmNsdWRlIDx0YmIvYmxv Y2tlZF9yYW5nZS5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CistI2luY2x1ZGUg PHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2FyZW5hLmg+ CisgCisgI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8Y21hdGg+IC8vIGZvciBzdGQ6 OmlzZmluaXRlKCkKK0BAIC03NjQsNyArNzY0LDcgQEAgaW5saW5lIHZvaWQgYmluQW5kU2VnbWVu dCgKKyAgICAgdXNpbmcgSW5kZXhQYWlyTGlzdE1hcCA9IHN0ZDo6bWFwPENvb3JkLCBJbmRleFBh aXJMaXN0UHRyPjsKKyAgICAgdXNpbmcgSW5kZXhQYWlyTGlzdE1hcFB0ciA9IHN0ZDo6c2hhcmVk X3B0cjxJbmRleFBhaXJMaXN0TWFwPjsKKyAKKy0gICAgc2l6ZV90IG51bVRhc2tzID0gMSwgbnVt VGhyZWFkcyA9IHNpemVfdCh0YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmRlZmF1bHRfbnVtX3Ro cmVhZHMoKSk7CisrICAgIHNpemVfdCBudW1UYXNrcyA9IDEsIG51bVRocmVhZHMgPSBzaXplX3Qo dGJiOjp0aGlzX3Rhc2tfYXJlbmE6Om1heF9jb25jdXJyZW5jeSgpKTsKKyAgICAgaWYgKHBvaW50 cy5zaXplKCkgPiAobnVtVGhyZWFkcyAqIDIpKSBudW1UYXNrcyA9IG51bVRocmVhZHMgKiAyOwor ICAgICBlbHNlIGlmIChwb2ludHMuc2l6ZSgpID4gbnVtVGhyZWFkcykgbnVtVGFza3MgPSBudW1U aHJlYWRzOworIAorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNUb01h c2suaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNUb01hc2suaAoraW5kZXggNTkyYWI3 YTE1Li44YTI3NmZiMDQgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRz VG9NYXNrLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNUb01hc2suaAorQEAg LTQ2LDE0ICs0NiwxOCBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19QT0lOVFNUT01BU0tfSEFT X0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfUE9JTlRTVE9NQVNLX0hBU19C RUVOX0lOQ0xVREVECisgCisrCisrI2luY2x1ZGUgIm9wZW52ZGIvb3BlbnZkYi5oIiAvLyBmb3Ig TWFza0dyaWQKKysjaW5jbHVkZSAib3BlbnZkYi9HcmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv VHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oIgorKyNp bmNsdWRlICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKysKKyAjaW5jbHVkZSA8dGJiL2Vu dW1lcmFibGVfdGhyZWFkX3NwZWNpZmljLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3Iu aD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorICNpbmNsdWRlIDx0YmIvYmxv Y2tlZF9yYW5nZS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL29wZW52ZGIuaD4gLy8gZm9yIE1hc2tH cmlkCistI2luY2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVz Lmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysKKyAjaW5j bHVkZSA8dmVjdG9yPgorIAorIAorQEAgLTE1MCw3ICsxNTQsNyBAQCBjbGFzcyBQb2ludHNUb01h c2sKKyAgICAgYm9vbCBpbnRlcnJ1cHQoKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAobUlu dGVycnVwdGVyICYmIHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0gICAg ICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAg ICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdp dCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3QuaCBiL29wZW52ZGIvb3BlbnZk Yi90b29scy9Wb2x1bWVBZHZlY3QuaAoraW5kZXggZTdlZWM3NDBlLi5mMzhlYWE5YzIgMTAwNjQ0 CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lQWR2ZWN0LmgKKysrKyBiL29wZW52 ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3QuaAorQEAgLTEzLDE1ICsxMywxOCBAQAorICNp Zm5kZWYgT1BFTlZEQl9UT09MU19WT0xVTUVfQURWRUNUX0hBU19CRUVOX0lOQ0xVREVECisgI2Rl ZmluZSBPUEVOVkRCX1RPT0xTX1ZPTFVNRV9BRFZFQ1RfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0j aW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+ CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRp bC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNs dWRlICJvcGVudmRiL21hdGgvTWF0aC5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbElu dGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorICNp bmNsdWRlICJJbnRlcnBvbGF0aW9uLmgiLy8gZm9yIFNhbXBsZXIKKyAjaW5jbHVkZSAiVmVsb2Np dHlGaWVsZHMuaCIgLy8gZm9yIFZlbG9jaXR5SW50ZWdyYXRvcgorICNpbmNsdWRlICJNb3JwaG9s b2d5LmgiLy9mb3IgZGlsYXRlQWN0aXZlVmFsdWVzCisgI2luY2x1ZGUgIlBydW5lLmgiLy8gZm9y IHBydW5lCisgI2luY2x1ZGUgIlN0YXRpc3RpY3MuaCIgLy8gZm9yIGV4dHJlbWEKKysKKysjaW5j bHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorKworICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorIAor IAorQEAgLTI5NCw3ICsyOTcsNyBAQCBjbGFzcyBWb2x1bWVBZHZlY3Rpb24KKyAgICAgYm9vbCBp bnRlcnJ1cHQoKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAobUludGVycnVwdGVyICYmIHV0 aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0gICAgICAgICAgICB0YmI6OnRh c2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFk OjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3Bl bnZkYi90b29scy9Wb2x1bWVUb01lc2guaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVU b01lc2guaAoraW5kZXggYTgzNGRkM2IzLi5hNDQ2ZjgwNmEgMTAwNjQ0CistLS0gYS9vcGVudmRi L29wZW52ZGIvdG9vbHMvVm9sdW1lVG9NZXNoLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29s cy9Wb2x1bWVUb01lc2guaAorQEAgLTE4LDcgKzE4LDcgQEAKKyAjaW5jbHVkZSA8dGJiL2Jsb2Nr ZWRfcmFuZ2UuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorICNpbmNsdWRlIDx0 YmIvcGFyYWxsZWxfcmVkdWNlLmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0 Lmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2FyZW5hLmg+CisgCisgI2luY2x1ZGUgPGNtYXRoPiAv LyBmb3Igc3RkOjppc2Zpbml0ZSgpCisgI2luY2x1ZGUgPG1hcD4KK0BAIC0zODgsNyArMzg4LDcg QEAgaW5saW5lIHZvaWQKKyBmaWxsQXJyYXkoVmFsdWVUeXBlKiBhcnJheSwgY29uc3QgVmFsdWVU eXBlJiB2YWwsIGNvbnN0IHNpemVfdCBsZW5ndGgpCisgeworICAgICBjb25zdCBhdXRvIGdyYWlu U2l6ZSA9IHN0ZDo6bWF4PHNpemVfdD4oCistICAgICAgICBsZW5ndGggLyB0YmI6OnRhc2tfc2No ZWR1bGVyX2luaXQ6OmRlZmF1bHRfbnVtX3RocmVhZHMoKSwgMTAyNCk7CisrICAgICAgICBsZW5n dGggLyB0YmI6OnRoaXNfdGFza19hcmVuYTo6bWF4X2NvbmN1cnJlbmN5KCksIDEwMjQpOworICAg ICBjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiByYW5nZSgwLCBsZW5ndGgsIGdyYWlu U2l6ZSk7CisgICAgIHRiYjo6cGFyYWxsZWxfZm9yKHJhbmdlLCBGaWxsQXJyYXk8VmFsdWVUeXBl PihhcnJheSwgdmFsKSwgdGJiOjpzaW1wbGVfcGFydGl0aW9uZXIoKSk7CisgfQorZGlmZiAtLWdp dCBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQuY2MgYi9vcGVudmRiL29wZW52 ZGIvdW5pdHRlc3QvVGVzdENvb3JkLmNjCitpbmRleCBiZTFjMjRjZWQuLjE0ODY5MDA0MSAxMDA2 NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQuY2MKKysrKyBiL29w ZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQuY2MKK0BAIC0yLDkgKzIsOSBAQAorIC8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wCisgCisgI2luY2x1ZGUgPG9wZW52ZGIv VHlwZXMuaD4KKysjaW5jbHVkZSA8b3BlbnZkYi9tYXRoL0Nvb3JkLmg+CisgCisgI2luY2x1ZGUg PGd0ZXN0L2d0ZXN0Lmg+CistI2luY2x1ZGUgPHRiYi90YmJfc3RkZGVmLmg+IC8vIGZvciB0YmI6 OnNwbGl0CisgCisgI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisgI2luY2x1ZGUgPHNzdHJlYW0+ CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjIGIvb3Bl bnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjCitpbmRleCA4MDc0MTY2ZDIuLjA1MzQ0 OGYzMCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0RmlsZS5jYwor KysrIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjCitAQCAtMTMsOCArMTMs MTEgQEAKKyAjaW5jbHVkZSA8b3BlbnZkYi92ZXJzaW9uLmg+CisgI2luY2x1ZGUgPG9wZW52ZGIv b3BlbnZkYi5oPgorICNpbmNsdWRlICJ1dGlsLmgiIC8vIGZvciB1bml0dGVzdF91dGlsOjptYWtl U3BoZXJlKCkKKysKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKy0jaW5jbHVkZSA8dGJiL3Ri Yl90aHJlYWQuaD4gLy8gZm9yIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCgpCisrCisrI2lu Y2x1ZGUgPHRocmVhZD4KKysjaW5jbHVkZSA8Y2hyb25vPgorICNpbmNsdWRlIDxhbGdvcml0aG0+ IC8vIGZvciBzdGQ6OnNvcnQoKQorICNpbmNsdWRlIDxjc3RkaW8+IC8vIGZvciByZW1vdmUoKSBh bmQgcmVuYW1lKCkKKyAjaW5jbHVkZSA8ZnN0cmVhbT4KK0BAIC0yMzQ1LDEyICsyMzQ4LDE0IEBA IFRFU1RfRihUZXN0RmlsZSwgdGVzdEFzeW5jKQorICAgICAgICAgICAgIGhlbHBlci5pbnNlcnQo aWQsIGZpbGVuYW1lKTsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIHRiYjo6dGlja19jb3VudCBz dGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7CisrICAgICAgICBhdXRvIHN0YXJ0ID0gc3Rk OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgICAgICB3aGlsZSAoIWhlbHBlci5p ZHMuZW1wdHkoKSkgeworLSAgICAgICAgICAgIGlmICgodGJiOjp0aWNrX2NvdW50Ojpub3coKSAt IHN0YXJ0KS5zZWNvbmRzKCkgPiA2MCkgYnJlYWs7IC8vIHRpbWUgb3V0IGFmdGVyIDEgbWludXRl CisrICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0 PHN0ZDo6Y2hyb25vOjpzZWNvbmRzPigKKysgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0 ZWFkeV9jbG9jazo6bm93KCkgLSBzdGFydCk7CisrICAgICAgICAgICAgaWYgKHNpemVfdChkdXJh dGlvbi5jb3VudCgpKSA+IDYwKSAgYnJlYWs7IC8vIHRpbWUgb3V0IGFmdGVyIDEgbWludXRlCisg CisgICAgICAgICAgICAgLy8gV2FpdCBvbmUgc2Vjb25kIGZvciB0YXNrcyB0byBjb21wbGV0ZS4K Ky0gICAgICAgICAgICB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAodGJiOjp0aWNrX2NvdW50 OjppbnRlcnZhbF90KDEuMC8qc2VjKi8pKTsKKysgICAgICAgICAgICBzdGQ6OnRoaXNfdGhyZWFk OjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86OnNlY29uZHMoMSkpOworIAorICAgICAgICAgICAgIC8v IFBvbGwgZWFjaCB0YXNrIGluIHRoZSBwZW5kaW5nIG1hcC4KKyAgICAgICAgICAgICBzdGQ6OnNl dDxpbzo6UXVldWU6OklkPiBpZHMgPSBoZWxwZXIuaWRzOyAvLyBpdGVyYXRlIG92ZXIgYSBjb3B5 CitAQCAtMjM4MCw3ICsyMzg1LDcgQEAgVEVTVF9GKFRlc3RGaWxlLCB0ZXN0QXN5bmMpCisgICAg ICAgICAgICAgaGVscGVyLmluc2VydChpZCwgZmlsZW5hbWUpOworICAgICAgICAgfQorICAgICAg ICAgd2hpbGUgKCFxdWV1ZS5lbXB0eSgpKSB7CistICAgICAgICAgICAgdGJiOjp0aGlzX3RiYl90 aHJlYWQ6OnNsZWVwKHRiYjo6dGlja19jb3VudDo6aW50ZXJ2YWxfdCgxLjAvKnNlYyovKSk7Cisr ICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjpzZWNv bmRzKDEpKTsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICB7CitAQCAtMjQwNSw3ICsyNDEwLDcg QEAgVEVTVF9GKFRlc3RGaWxlLCB0ZXN0QXN5bmMpCisgICAgICAgICBFWFBFQ1RfVEhST1cocXVl dWUud3JpdGUoZ3JpZHMsIGlvOjpTdHJlYW0oZmlsZTIpKSwgb3BlbnZkYjo6UnVudGltZUVycm9y KTsKKyAKKyAgICAgICAgIHdoaWxlICghcXVldWUuZW1wdHkoKSkgeworLSAgICAgICAgICAgIHRi Yjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3QoMS4w LypzZWMqLykpOworKyAgICAgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6 OmNocm9ubzo6c2Vjb25kcygxKSk7CisgICAgICAgICB9CisgICAgIH0KKyB9CitkaWZmIC0tZ2l0 IGEvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNjIGIvb3BlbnZkYi9vcGVudmRi L3VuaXR0ZXN0L1Rlc3RVdGlsLmNjCitpbmRleCA3MGU3ZGY1ZjcuLjZiMjIwNDc3MSAxMDA2NDQK Ky0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0VXRpbC5jYworKysrIGIvb3BlbnZk Yi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNjCitAQCAtOCw3ICs4LDYgQEAKKyAKKyAjaW5j bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyAKKy0jaW5jbHVkZSA8dGJiL3Rhc2tfc2NoZWR1bGVyX2lu aXQuaD4KKyAjaW5jbHVkZSA8dGJiL2VudW1lcmFibGVfdGhyZWFkX3NwZWNpZmljLmg+CisgI2lu Y2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2Uu aD4KK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNjZXNz b3IuY2MgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNjZXNzb3IuY2MKK2lu ZGV4IGZkMmRkNWQ4MS4uNWMxY2JiMThiIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Vu aXR0ZXN0L1Rlc3RWYWx1ZUFjY2Vzc29yLmNjCisrKysgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRl c3QvVGVzdFZhbHVlQWNjZXNzb3IuY2MKK0BAIC02LDYgKzYsNyBAQAorIAorICNpbmNsdWRlIDxn dGVzdC9ndGVzdC5oPgorICNpbmNsdWRlIDx0YmIvdGFzay5oPgorKyNpbmNsdWRlIDx0YmIvdGFz a19ncm91cC5oPgorIAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAKK0BAIC0zNzgsMjIgKzM3 OSwyMSBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRocmVhZGVkQWNjZXNz b3IpCisgICAgIC8vdXNpbmcgQWNjZXNzb3JUID0gb3BlbnZkYjo6dHJlZTo6VmFsdWVBY2Nlc3Nv cjxUcmVlNFR5cGU+OworIAorICAgICAvLyBUYXNrIHRvIHBlcmZvcm0gbXVsdGlwbGUgcmVhZHMg dGhyb3VnaCBhIHNoYXJlZCBhY2Nlc3NvcgorLSAgICBzdHJ1Y3QgUmVhZFRhc2s6IHB1YmxpYyB0 YmI6OnRhc2sgeworKyAgICBzdHJ1Y3QgUmVhZFRhc2sgeworICAgICAgICAgQWNjZXNzb3JUJiBh Y2M7CisgICAgICAgICBSZWFkVGFzayhBY2Nlc3NvclQmIGMpOiBhY2MoYykge30KKy0gICAgICAg IHRiYjo6dGFzayogZXhlY3V0ZSgpCisrICAgICAgICB2b2lkIGV4ZWN1dGUoKQorICAgICAgICAg eworICAgICAgICAgICAgIGZvciAoaW50IGkgPSAtTUFYX0NPT1JEOyBpIDwgTUFYX0NPT1JEOyAr K2kpIHsKKyAgICAgICAgICAgICAgICAgQVNTRVJUX0RPVUJMRVNfRVhBQ1RMWV9FUVVBTChkb3Vi bGUoaSksIGFjYy5nZXRWYWx1ZShvcGVudmRiOjpDb29yZChpKSkpOworICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgIH0KKyAgICAgfTsKKyAgICAg Ly8gVGFzayB0byBwZXJmb3JtIG11bHRpcGxlIHdyaXRlcyB0aHJvdWdoIGEgc2hhcmVkIGFjY2Vz c29yCistICAgIHN0cnVjdCBXcml0ZVRhc2s6IHB1YmxpYyB0YmI6OnRhc2sgeworKyAgICBzdHJ1 Y3QgV3JpdGVUYXNrIHsKKyAgICAgICAgIEFjY2Vzc29yVCYgYWNjOworICAgICAgICAgV3JpdGVU YXNrKEFjY2Vzc29yVCYgYyk6IGFjYyhjKSB7fQorLSAgICAgICAgdGJiOjp0YXNrKiBleGVjdXRl KCkKKysgICAgICAgIHZvaWQgZXhlY3V0ZSgpCisgICAgICAgICB7CisgICAgICAgICAgICAgZm9y IChpbnQgaSA9IC1NQVhfQ09PUkQ7IGkgPCBNQVhfQ09PUkQ7ICsraSkgeworICAgICAgICAgICAg ICAgICBmbG9hdCBmID0gYWNjLmdldFZhbHVlKG9wZW52ZGI6OkNvb3JkKGkpKTsKK0BAIC00MDEs MjYgKzQwMSwyMCBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRocmVhZGVk QWNjZXNzb3IpCisgICAgICAgICAgICAgICAgIGFjYy5zZXRWYWx1ZShvcGVudmRiOjpDb29yZChp KSwgZmxvYXQoaSkpOworICAgICAgICAgICAgICAgICBBU1NFUlRfRE9VQkxFU19FWEFDVExZX0VR VUFMKGZsb2F0KGkpLCBhY2MuZ2V0VmFsdWUob3BlbnZkYjo6Q29vcmQoaSkpKTsKKyAgICAgICAg ICAgICB9CistICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICB9CisgICAgIH07 CisgICAgIC8vIFBhcmVudCB0YXNrIHRvIHNwYXduIG11bHRpcGxlIHBhcmFsbGVsIHJlYWQgYW5k IHdyaXRlIHRhc2tzCistICAgIHN0cnVjdCBSb290VGFzazogcHVibGljIHRiYjo6dGFzayB7Cisr ICAgIHN0cnVjdCBSb290VGFzayB7CisgICAgICAgICBBY2Nlc3NvclQmIGFjYzsKKyAgICAgICAg IFJvb3RUYXNrKEFjY2Vzc29yVCYgYyk6IGFjYyhjKSB7fQorLSAgICAgICAgdGJiOjp0YXNrKiBl eGVjdXRlKCkKKysgICAgICAgIHZvaWQgZXhlY3V0ZSgpCisgICAgICAgICB7CistICAgICAgICAg ICAgUmVhZFRhc2sqIHJbM107IFdyaXRlVGFzayogd1szXTsKKysgICAgICAgICAgICB0YmI6OnRh c2tfZ3JvdXAgdGFza3M7CisgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kp IHsKKy0gICAgICAgICAgICAgICAgcltpXSA9IG5ldyhhbGxvY2F0ZV9jaGlsZCgpKSBSZWFkVGFz ayhhY2MpOworLSAgICAgICAgICAgICAgICB3W2ldID0gbmV3KGFsbG9jYXRlX2NoaWxkKCkpIFdy aXRlVGFzayhhY2MpOworKyAgICAgICAgICAgICAgICB0YXNrcy5ydW4oWyZdIHsgUmVhZFRhc2sg cihhY2MpOyByLmV4ZWN1dGUoKTsgfSk7CisrICAgICAgICAgICAgICAgIHRhc2tzLnJ1bihbJl0g eyBXcml0ZVRhc2sgdyhhY2MpOyB3LmV4ZWN1dGUoKTsgfSk7CisgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIHNldF9yZWZfY291bnQoNiAvKmNoaWxkcmVuKi8gKyAxIC8qd2FpdCovKTsKKy0g ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgeworLSAgICAgICAgICAgICAg ICBzcGF3bigqcltpXSk7IHNwYXduKCp3W2ldKTsKKy0gICAgICAgICAgICB9CistICAgICAgICAg ICAgd2FpdF9mb3JfYWxsKCk7CistICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisrICAgICAg ICAgICAgdGFza3Mud2FpdCgpOworICAgICAgICAgfQorICAgICB9OworIAorQEAgLTQzMiw4ICs0 MjYsOCBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRocmVhZGVkQWNjZXNz b3IpCisgICAgIH0KKyAKKyAgICAgLy8gUnVuIG11bHRpcGxlIHJlYWQgYW5kIHdyaXRlIHRhc2tz IGluIHBhcmFsbGVsLgorLSAgICBSb290VGFzayYgcm9vdCA9ICpuZXcodGJiOjp0YXNrOjphbGxv Y2F0ZV9yb290KCkpIFJvb3RUYXNrKGFjYyk7CistICAgIHRiYjo6dGFzazo6c3Bhd25fcm9vdF9h bmRfd2FpdChyb290KTsKKysgICAgUm9vdFRhc2sgcm9vdChhY2MpOworKyAgICByb290LmV4ZWN1 dGUoKTsKKyAKKyAjdW5kZWYgTUFYX0NPT1JECisgfQorZGlmZiAtLWdpdCBhL29wZW52ZGJfaG91 ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFzdGVyaXplX1BvaW50cy5jYyBiL29w ZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFzdGVyaXplX1BvaW50 cy5jYworaW5kZXggMGUxYjRkODU1Li42ZDliYjUyOGIgMTAwNjQ0CistLS0gYS9vcGVudmRiX2hv dWRpbmkvb3BlbnZkYl9ob3VkaW5pL1NPUF9PcGVuVkRCX1Jhc3Rlcml6ZV9Qb2ludHMuY2MKKysr KyBiL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFzdGVyaXpl X1BvaW50cy5jYworQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9H cmlkVHJhbnNmb3JtZXIuaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9Qb2ludEluZGV4R3Jp ZC5oPgorICNpbmNsdWRlIDxvcGVudmRiL3Rvb2xzL1BydW5lLmg+CisrI2luY2x1ZGUgPG9wZW52 ZGIvdGhyZWFkL1RocmVhZGluZy5oPgorIAorICNpbmNsdWRlIDxDSC9DSF9NYW5hZ2VyLmg+Cisg I2luY2x1ZGUgPENWRVgvQ1ZFWF9Db250ZXh0Lmg+CitAQCAtNzg2LDcgKzc4Nyw3IEBAIHN0cnVj dCBDb25zdHJ1Y3RDYW5kaWRhdGVWb3hlbE1hc2sKKyAgICAgICAgIGZvciAoc2l6ZV90IG4gPSBy YW5nZS5iZWdpbigpLCBOID0gcmFuZ2UuZW5kKCk7IG4gIT0gTjsgKytuKSB7CisgCisgICAgICAg ICAgICAgaWYgKHRoaXMtPndhc0ludGVycnVwdGVkKCkpIHsKKy0gICAgICAgICAgICAgICAgdGJi Ojp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgICAg ICBvcGVudmRiOjp0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAKK0BAIC0yMDkyLDcgKzIwOTMsNyBAQCBzdHJ1 Y3QgUmFzdGVyaXplUG9pbnRzCisgICAgICAgICBmb3IgKHNpemVfdCBuID0gcmFuZ2UuYmVnaW4o KSwgTiA9IHJhbmdlLmVuZCgpOyBuICE9IE47ICsrbikgeworIAorICAgICAgICAgICAgIGlmICh0 aGlzLT53YXNJbnRlcnJ1cHRlZCgpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2Vs ZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAgb3BlbnZkYjo6 dGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9ob3VkaW5pL29wZW52ZGJf aG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjIGIvb3BlbnZkYl9ob3VkaW5pL29w ZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjCitpbmRleCA3NTdmZGM4 YzYuLmRiZWU3NGIzMiAxMDA2NDQKKy0tLSBhL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRp bmkvU09QX09wZW5WREJfU2FtcGxlX1BvaW50cy5jYworKysrIGIvb3BlbnZkYl9ob3VkaW5pL29w ZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjCitAQCAtMTYsMTMgKzE2 LDExIEBACisgI2luY2x1ZGUgPG9wZW52ZGJfaG91ZGluaS9TT1BfTm9kZVZEQi5oPgorIAorICNp bmNsdWRlIDxvcGVudmRiL3Rvb2xzL0ludGVycG9sYXRpb24uaD4gIC8vIGZvciBib3ggc2FtcGxl cgorKyNpbmNsdWRlIDxvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaD4KKyAjaW5jbHVkZSA8b3Bl bnZkYi9wb2ludHMvUG9pbnRDb3VudC5oPgorICNpbmNsdWRlIDxvcGVudmRiL3BvaW50cy9Qb2lu dFNhbXBsZS5oPgorICNpbmNsdWRlIDxvcGVudmRiL3BvaW50cy9JbmRleEZpbHRlci5oPiAgIC8v IGZvciBNdWx0aUdyb3VwRmlsdGVyCisgCistI2luY2x1ZGUgPHRiYi90aWNrX2NvdW50Lmg+ICAg ICAgICAgICAgICAgICAvLyBmb3IgdGltaW5nCistI2luY2x1ZGUgPHRiYi90YXNrLmg+ICAgICAg ICAgICAgICAgICAgICAgICAvLyBmb3IgY2FuY2VsCistCisgI2luY2x1ZGUgPFVUL1VUX0ludGVy cnVwdC5oPgorICNpbmNsdWRlIDxHQS9HQV9QYWdlSGFuZGxlLmg+CisgI2luY2x1ZGUgPEdBL0dB X1BhZ2VJdGVyYXRvci5oPgorQEAgLTM4LDYgKzM2LDcgQEAKKyAjaW5jbHVkZSA8c3RkZXhjZXB0 PgorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKysjaW5jbHVkZSA8Y2hy b25vPgorIAorIAorIAorQEAgLTMyNyw3ICszMjYsNyBAQCBjbGFzcyBQb2ludFNhbXBsZXIKKyAg ICAgeworIAorICAgICAgICAgaWYgKG1JbnRlcnJ1cHRlci0+d2FzSW50ZXJydXB0ZWQoKSkgewor LSAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsK KysgICAgICAgICAgICBvcGVudmRiOjp0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7Cisg ICAgICAgICB9CisgICAgICAgICBjb25zdCBHcmlkVHlwZSYgZ3JpZCA9IFVUdmRiR3JpZENhc3Q8 R3JpZFR5cGU+KG1HcmlkKTsKKyAgICAgICAgIC8vIHRhc2sgbG9jYWwgZ3JpZCBhY2Nlc3Nvcgor QEAgLTQ4MSw3ICs0ODAsNyBAQCBTT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzOjpDYWNoZTo6Y29v a1ZEQlNvcChPUF9Db250ZXh0JiBjb250ZXh0KQorICAgICAgICAgaW50IG51bVVubmFtZWRHcmlk cyA9IDA7CisgCisgICAgICAgICAvLyBzdGFydCB0aW1lCistICAgICAgICB0YmI6OnRpY2tfY291 bnQgdGltZV9zdGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7CisrICAgICAgICBhdXRvIHRp bWVfc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICAgICAgIFVU X0F1dG9JbnRlcnJ1cHQgcHJvZ3Jlc3MoIlNhbXBsaW5nIGZyb20gVkRCIGdyaWRzIik7CisgCisg ICAgICAgICBmb3IgKGh2ZGI6OlZkYlByaW1DSXRlcmF0b3IgaXQoYkdkcCwgZ3JvdXApOyBpdDsg KytpdCkgeworQEAgLTcwNiwxNSArNzA1LDE2IEBAIFNPUF9PcGVuVkRCX1NhbXBsZV9Qb2ludHM6 OkNhY2hlOjpjb29rVkRCU29wKE9QX0NvbnRleHQmIGNvbnRleHQpCisgICAgICAgICAgICAgfQor ICAgICAgICAgfQorIAorLSAgICAgICAgLy8gdGltaW5nOiBlbmQgdGltZQorLSAgICAgICAgdGJi Ojp0aWNrX2NvdW50IHRpbWVfZW5kID0gdGJiOjp0aWNrX2NvdW50Ojpub3coKTsKKy0KKyAgICAg ICAgIGlmICh2ZXJib3NlKSB7CisrICAgICAgICAgICAgLy8gdGltaW5nOiBlbmQgdGltZQorKyAg ICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6 OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKysgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0 ZWFkeV9jbG9jazo6bm93KCkgLSB0aW1lX3N0YXJ0KTsKKysgICAgICAgICAgICBjb25zdCBkb3Vi bGUgc2Vjb25kcyA9IGRvdWJsZShkdXJhdGlvbi5jb3VudCgpKSAvIDEwMDAuMDsKKyAgICAgICAg ICAgICBzdGQ6OmNvdXQgPDwgIlNhbXBsaW5nICIgPDwgblBvaW50cyArIG5WREJQb2ludHMgPDwg IiBwb2ludHMgaW4gIgorICAgICAgICAgICAgICAgICAgICAgICA8PCBudW1WZWN0b3JHcmlkcyA8 PCAiIHZlY3RvciBncmlkIiA8PCAobnVtVmVjdG9yR3JpZHMgPT0gMSA/ICIiIDogInMiKQorICAg ICAgICAgICAgICAgICAgICAgICA8PCAiIGFuZCAiIDw8IG51bVNjYWxhckdyaWRzIDw8ICIgc2Nh bGFyIGdyaWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAobnVtU2NhbGFyR3JpZHMg PT0gMSA/ICIiIDogInMiKQorLSAgICAgICAgICAgICAgICAgICAgICA8PCAiIHRvb2sgIiA8PCAo dGltZV9lbmQgLSB0aW1lX3N0YXJ0KS5zZWNvbmRzKCkgPDwgIiBzZWNvbmRzXG4gIgorKyAgICAg ICAgICAgICAgICAgICAgICA8PCAiIHRvb2sgIiA8PCBzZWNvbmRzIDw8ICIgc2Vjb25kc1xuICIK KyAgICAgICAgICAgICAgICAgICAgICAgPDwgKHRocmVhZGVkID8gInRocmVhZGVkIiA6ICJub24t dGhyZWFkZWQiKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IGEvb3Bl bnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNjIGIvb3BlbnZkYl9tYXlhL29w ZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNjCitpbmRleCAzZDU1OWY4Y2MuLmQ2M2VkMTU5MSAx MDA2NDQKKy0tLSBhL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlBsdWdpbi5jYwor KysrIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNjCitAQCAtNDcs MTEgKzQ3LDggQEAgc3RydWN0IE5vZGVJbmZvIHsKKyAKKyB0eXBlZGVmIHN0ZDo6dmVjdG9yPE5v ZGVJbmZvPiBOb2RlTGlzdDsKKyAKKy10eXBlZGVmIHRiYjo6bXV0ZXggTXV0ZXg7CistdHlwZWRl ZiBNdXRleDo6c2NvcGVkX2xvY2sgTG9jazsKKy0KKyAvLyBEZWNsYXJlIHRoaXMgYXQgZmlsZSBz Y29wZSB0byBlbnN1cmUgdGhyZWFkLXNhZmUgaW5pdGlhbGl6YXRpb24uCistTXV0ZXggc1JlZ2lz dHJ5TXV0ZXg7Cisrc3RkOjptdXRleCBzUmVnaXN0cnlNdXRleDsKKyAKKyBOb2RlTGlzdCAqIGdO b2RlcyA9IE5VTEw7CisgCitAQCAtNzAsNyArNjcsNyBAQCBOb2RlUmVnaXN0cnk6Ok5vZGVSZWdp c3RyeShjb25zdCBNU3RyaW5nJiB0eXBlTmFtZSwgY29uc3QgTVR5cGVJZCYgdHlwZUlkLAorICAg ICBub2RlLnR5cGUgICAgICAgICAgICAgICA9IHR5cGU7CisgICAgIG5vZGUuY2xhc3NpZmljYXRp b24gICAgID0gY2xhc3NpZmljYXRpb247CisgCistICAgIExvY2sgbG9jayhzUmVnaXN0cnlNdXRl eCk7CisrICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKHNSZWdpc3RyeU11dGV4 KTsKKyAKKyAgICAgaWYgKCFnTm9kZXMpIHsKKyAgICAgICAgIE9QRU5WREJfU1RBUlRfVEhSRUFE U0FGRV9TVEFUSUNfV1JJVEUKK0BAIC04NSw3ICs4Miw3IEBAIE5vZGVSZWdpc3RyeTo6Tm9kZVJl Z2lzdHJ5KGNvbnN0IE1TdHJpbmcmIHR5cGVOYW1lLCBjb25zdCBNVHlwZUlkJiB0eXBlSWQsCisg dm9pZAorIE5vZGVSZWdpc3RyeTo6cmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBsdWdpbiwgTVN0 YXR1cyYgc3RhdHVzKQorIHsKKy0gICAgTG9jayBsb2NrKHNSZWdpc3RyeU11dGV4KTsKKysgICAg c3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soc1JlZ2lzdHJ5TXV0ZXgpOworIAorICAg ICBpZiAoZ05vZGVzKSB7CisgICAgICAgICBmb3IgKHNpemVfdCBuID0gMCwgTiA9IGdOb2Rlcy0+ c2l6ZSgpOyBuIDwgTjsgKytuKSB7CitAQCAtMTA5LDcgKzEwNiw3IEBAIE5vZGVSZWdpc3RyeTo6 cmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBsdWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHZvaWQK KyBOb2RlUmVnaXN0cnk6OmRlcmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBsdWdpbiwgTVN0YXR1 cyYgc3RhdHVzKQorIHsKKy0gICAgTG9jayBsb2NrKHNSZWdpc3RyeU11dGV4KTsKKysgICAgc3Rk Ojpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soc1JlZ2lzdHJ5TXV0ZXgpOworIAorICAgICBp ZiAoZ05vZGVzKSB7CisgICAgICAgICBmb3IgKHNpemVfdCBuID0gMCwgTiA9IGdOb2Rlcy0+c2l6 ZSgpOyBuIDwgTjsgKytuKSB7CitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5 YS9PcGVuVkRCVXRpbC5oIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5o CitpbmRleCBiNThiZDZmMmMuLjZhMDRiMWVhZiAxMDA2NDQKKy0tLSBhL29wZW52ZGJfbWF5YS9v cGVudmRiX21heWEvT3BlblZEQlV0aWwuaAorKysrIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5 YS9PcGVuVkRCVXRpbC5oCitAQCAtMTQsOCArMTQsNyBAQAorICNpbmNsdWRlIDxvcGVudmRiL3Ry ZWUvTGVhZk1hbmFnZXIuaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2gu aD4KKyAjaW5jbHVkZSA8b3BlbnZkYi91dGlsL0Zvcm1hdHMuaD4gLy8gcHJpbnRCeXRlcworLQor LSNpbmNsdWRlIDx0YmIvdGlja19jb3VudC5oPgorKyNpbmNsdWRlIDxvcGVudmRiL3RocmVhZC9U aHJlYWRpbmcuaD4KKyAKKyAjaW5jbHVkZSA8bWF5YS9NM2RWaWV3Lmg+CisgI2luY2x1ZGUgPG1h eWEvTVN0cmluZy5oPgorQEAgLTQwLDYgKzM5LDcgQEAKKyAjaW5jbHVkZSA8c3RyaW5nPgorICNp bmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorKyNpbmNsdWRlIDxjaHJv bm8+CisgCisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAg LTExNiwxMSArMTE2LDE1IEBAIGluc2VydEZyYW1lTnVtYmVyKHN0ZDo6c3RyaW5nJiBzdHIsIGNv bnN0IE1UaW1lJiB0aW1lLCBpbnQgbnVtYmVyaW5nU2NoZW1lID0gMCk7CisgCisgc3RydWN0IFRp bWVyCisgeworLSAgICBUaW1lcigpIDogbVN0YW1wKHRiYjo6dGlja19jb3VudDo6bm93KCkpIHsg fQorKyAgICBUaW1lcigpIDogbVN0YW1wKHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygp KSB7IH0KKyAKKy0gICAgdm9pZCByZXNldCgpIHsgbVN0YW1wID0gdGJiOjp0aWNrX2NvdW50Ojpu b3coKTsgfQorKyAgICB2b2lkIHJlc2V0KCkgeyBtU3RhbXAgPSBzdGQ6OmNocm9ubzo6c3RlYWR5 X2Nsb2NrOjpub3coKTsgfQorIAorLSAgICBkb3VibGUgc2Vjb25kcygpIGNvbnN0IHsgcmV0dXJu ICh0YmI6OnRpY2tfY291bnQ6Om5vdygpIC0gbVN0YW1wKS5zZWNvbmRzKCk7IH0KKysgICAgZG91 YmxlIHNlY29uZHMoKSBjb25zdCB7CisrICAgICAgICBhdXRvIGR1cmF0aW9uID0gc3RkOjpjaHJv bm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oCisrICAgICAgICAg ICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBtU3RhbXApOworKyAgICAgICAg cmV0dXJuIGRvdWJsZShkdXJhdGlvbi5jb3VudCgpKSAvIDEwMDAuMDsKKysgICAgfQorIAorICAg ICBzdGQ6OnN0cmluZyBlbGFwc2VkVGltZSgpIGNvbnN0IHsKKyAgICAgICAgIGRvdWJsZSBzZWMg PSBzZWNvbmRzKCk7CitAQCAtMTI4LDcgKzEzMiw3IEBAIHN0cnVjdCBUaW1lcgorICAgICB9Cisg CisgcHJpdmF0ZToKKy0gICAgdGJiOjp0aWNrX2NvdW50IG1TdGFtcDsKKysgICAgIHN0ZDo6Y2hy b25vOjp0aW1lX3BvaW50PHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s+IG1TdGFtcDsKKyB9Owor IAorIAorZGlmZiAtLWdpdCBhL3BlbmRpbmdjaGFuZ2VzL3RiYjIwMjEudHh0IGIvcGVuZGluZ2No YW5nZXMvdGJiMjAyMS50eHQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAu LjgxMDljMjU1MgorLS0tIC9kZXYvbnVsbAorKysrIGIvcGVuZGluZ2NoYW5nZXMvdGJiMjAyMS50 eHQKK0BAIC0wLDAgKzEsNiBAQAorK0ltcHJvdmVtZW50czoKKysgIC0gTW92ZWQgZnJvbSB0aGUg ZGVwcmVjYXRlZCBUQkIgdGFzayBzY2hlZHVsZXIgdG8gVEJCIGFyZW5hcy4gVmFyaW91cyBtZXRo b2RzIG5vdyByZXNwZWN0IHRoZSBUQkIgYXJlbmEgc3RhdGUgdGhleSB3ZXJlIGludm9rZWQgZnJv bS4KKysgIC0gSW50cm9kdWNlZCBhIG5ldyB0aHJlYWQvVGhyZWFkaW5nLmggaGVhZGVyIHRvIGNv bnNvbGlkYXRlIGNhbGxzIHRvIHRoaXJkLXBhcnR5IHRocmVhZGluZyBtZXRob2RzLgorKworK0J1 aWxkOgorKyAgLSBBZGRlZCBzdXBwb3J0IGZvciBUQkIgMjAyMS4KZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbnZkYi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZQppbmRleCA3MmZk ZTViYzYzNzUuLmQ0MjBhM2VlNWY1ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVudmRiL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZQpAQCAtMSwyNiArMSwxOCBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnb3BlbnZkYicKIHBrZ25hbWU9b3BlbnZkYgotdmVyc2lvbj03LjAu MAordmVyc2lvbj04LjEuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3Vy ZV9hcmdzPSItRE9QRU5WREJfQlVJTERfVkRCX1ZJRVc9MSIKIGhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCB0YmItZGV2ZWwgaWxtYmFzZS1kZXZl bCBsaWJvcGVuZXhyLWRldmVsIGMtYmxvc2MtZGV2ZWwgZ2xmdy1kZXZlbCIKK21ha2VkZXBlbmRz PSJib29zdC1kZXZlbCB0YmItZGV2ZWwgaWxtYmFzZS1kZXZlbCBsaWJvcGVuZXhyLWRldmVsIGMt Ymxvc2MtZGV2ZWwKKyBnbGZ3LWRldmVsIGplbWFsbG9jLWRldmVsIgogc2hvcnRfZGVzYz0iU3Bh cnNlIHZvbHVtZSBkYXRhIHN0cnVjdHVyZSBhbmQgdG9vbHMiCiBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTVBMLTIuMCIKIGhvbWVwYWdlPSJo dHRwczovL29wZW52ZGIub3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vQWNhZGVt eVNvZnR3YXJlRm91bmRhdGlvbi9vcGVudmRiL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6Igot Y2hlY2tzdW09OTdiYzhhZTM1ZWY3Y2NiZjQ5YTRlMjVjYjczZThjMmVjY2FlNmIyMzViYWM4NmYy MTUwNzA3ZWZjZDFlOTEwZAotCi1pZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhl bgotCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKLWZpCi0KLXBvc3RfcGF0Y2goKSB7 Ci0JWyAiJFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF0gfHwgcmV0dXJuIDAKLQl2c2VkIC1pICdz LFpMSUI6OlpMSUIsWkxJQjo6WkxJQiBhdG9taWMsJyBvcGVudmRiL0NNYWtlTGlzdHMudHh0Ci19 CitjaGVja3N1bT0zZTA5ZDQ3MzMxNDI5YmU3NDA5YTNhM2MyN2ZkZDNjMjk3Zjk2ZDMxZDIxNTNm ZWJlMTk0ZTY2NGE5OWQ2MTgzCiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBMSUNFTlNF CgpGcm9tIGU0MjU5ODhmODVjMDEyOTk2YTBmMjRiNWJmYTU5ODJiMDkwY2RmODMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRo bXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTo0MCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMTAvMTJdIHBhcmF2aWV3OiB1cGRhdGUgdG8gNS45LjEuCgotLS0KIHNyY3BrZ3MvcGFy YXZpZXcvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wYXJhdmlldy90ZW1wbGF0ZSBi L3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUKaW5kZXggMjBhN2Y1NTg5Njc3Li5lNmMzOTQxY2U5 MGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9w YXJhdmlldy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Bh cmF2aWV3JwogcGtnbmFtZT1wYXJhdmlldwotdmVyc2lvbj01LjguMQotcmV2aXNpb249MwordmVy c2lvbj01LjkuMQorcmV2aXNpb249MQogd3Jrc3JjPVBhcmFWaWV3LXYke3ZlcnNpb259CiBidWls ZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfUFJFRklYX1BBVEg9JHtYQlBT X0NST1NTX0JBU0V9L3VzcgoKRnJvbSBjZjNhNjMyZWI5M2U0ZTYyMzJhZjc1MzE2Mjk0MzMyYTBi YzdkNjNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVz b2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6Mzkg KzAzMDAKU3ViamVjdDogW1BBVENIIDExLzEyXSBvY2N0OiByZXZidW1wIGR1ZSB0byB0YmIgdXBk YXRlCgotLS0KIHNyY3BrZ3Mvb2NjdC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb2NjdC90 ZW1wbGF0ZSBiL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZQppbmRleCA5Mjk4ZWRjNzZlMDguLjAwNmY4 OWViYjhjZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vY2N0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv b2NjdC90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9b2NjdAogcmV2ZXJ0cz03LjUu MF8xCiB2ZXJzaW9uPTcuNC4wcDEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIF9naXR0YWc9IlYk e3ZlcnNpb24vLy4vX30iCiB3cmtzcmM9b2NjdC0ke19naXR0YWd9CiBidWlsZF9zdHlsZT1jbWFr ZQoKRnJvbSBhYWE0YzRhNDA3MDFkMWFhOGZmY2IwNDQ5MzIzNTNkZDEwYTkzNzhhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0 aG11cy5kZXY+CkRhdGU6IE1vbiwgNSBKdWwgMjAyMSAwMzo0NDowOCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMTIvMTJdIGNvbW1vbi9idWlsZC1zdHlsZS86IGVuYWJsZSBydW5uaW5nIHRlc3RzIGlu IHBhcmFsbGVsCgotLS0KIGNvbW1vbi9idWlsZC1zdHlsZS9jbWFrZS5zaCAgICAgICAgICAgfCA2 ICsrKysrLQogY29tbW9uL2J1aWxkLXN0eWxlL2NvbmZpZ3VyZS5zaCAgICAgICB8IDYgKysrKyst CiBjb21tb24vYnVpbGQtc3R5bGUvZ251LWNvbmZpZ3VyZS5zaCAgIHwgNiArKysrKy0KIGNvbW1v bi9idWlsZC1zdHlsZS9nbnUtbWFrZWZpbGUuc2ggICAgfCA2ICsrKysrLQogY29tbW9uL2J1aWxk LXN0eWxlL3BlcmwtbW9kdWxlLnNoICAgICB8IDYgKysrKystCiBjb21tb24vZW52aXJvbm1lbnQv c2V0dXAvc291cmNlcGtnLnNoIHwgMyArKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vYnVpbGQtc3R5bGUvY21h a2Uuc2ggYi9jb21tb24vYnVpbGQtc3R5bGUvY21ha2Uuc2gKaW5kZXggNDAxZGFiYWQzMWM4Li5j N2ZmZDE2ZmVlMjEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9idWlsZC1zdHlsZS9jbWFrZS5zaAorKysg Yi9jb21tb24vYnVpbGQtc3R5bGUvY21ha2Uuc2gKQEAgLTExMyw3ICsxMTMsMTEgQEAgZG9fY2hl Y2soKSB7CiAKIAk6ICR7bWFrZV9jaGVja190YXJnZXQ6PXRlc3R9CiAKLQkke21ha2VfY21kfSAk e21ha2VfY2hlY2tfYXJnc30gJHttYWtlX2NoZWNrX3RhcmdldH0KKwlpZiBbIC16ICIkZGlzYWJs ZV9wYXJhbGxlbF9jaGVjayIgXTsgdGhlbgorCQkke21ha2VfY21kfSAke21ha2Vqb2JzfSAke21h a2VfY2hlY2tfYXJnc30gJHttYWtlX2NoZWNrX3RhcmdldH0KKwllbHNlCisJCSR7bWFrZV9jbWR9 ICR7bWFrZV9jaGVja19hcmdzfSAke21ha2VfY2hlY2tfdGFyZ2V0fQorCWZpCiB9CiAKIGRvX2lu c3RhbGwoKSB7CmRpZmYgLS1naXQgYS9jb21tb24vYnVpbGQtc3R5bGUvY29uZmlndXJlLnNoIGIv Y29tbW9uL2J1aWxkLXN0eWxlL2NvbmZpZ3VyZS5zaAppbmRleCAwOTYzZmMzNDc5MzQuLmI4NDZh MWE3NzU3MiAxMDA2NDQKLS0tIGEvY29tbW9uL2J1aWxkLXN0eWxlL2NvbmZpZ3VyZS5zaAorKysg Yi9jb21tb24vYnVpbGQtc3R5bGUvY29uZmlndXJlLnNoCkBAIC0yOSw3ICsyOSwxMSBAQCBkb19j aGVjaygpIHsKIAk6ICR7bWFrZV9jbWQ6PW1ha2V9CiAJOiAke21ha2VfY2hlY2tfdGFyZ2V0Oj1j aGVja30KIAotCSR7bWFrZV9jbWR9ICR7bWFrZV9jaGVja19hcmdzfSAke21ha2VfY2hlY2tfdGFy Z2V0fQorCWlmIFsgLXogIiRkaXNhYmxlX3BhcmFsbGVsX2NoZWNrIiBdOyB0aGVuCisJCSR7bWFr ZV9jbWR9ICR7bWFrZWpvYnN9ICR7bWFrZV9jaGVja19hcmdzfSAke21ha2VfY2hlY2tfdGFyZ2V0 fQorCWVsc2UKKwkJJHttYWtlX2NtZH0gJHttYWtlX2NoZWNrX2FyZ3N9ICR7bWFrZV9jaGVja190 YXJnZXR9CisJZmkKIH0KIAogZG9faW5zdGFsbCgpIHsKZGlmZiAtLWdpdCBhL2NvbW1vbi9idWls ZC1zdHlsZS9nbnUtY29uZmlndXJlLnNoIGIvY29tbW9uL2J1aWxkLXN0eWxlL2dudS1jb25maWd1 cmUuc2gKaW5kZXggODEyMTEzNmNkMTIxLi5iMDlkZTQ0MmIwNWIgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9idWlsZC1zdHlsZS9nbnUtY29uZmlndXJlLnNoCisrKyBiL2NvbW1vbi9idWlsZC1zdHlsZS9n bnUtY29uZmlndXJlLnNoCkBAIC0zMCw3ICszMCwxMSBAQCBkb19jaGVjaygpIHsKIAk6ICR7bWFr ZV9jbWQ6PW1ha2V9CiAJOiAke21ha2VfY2hlY2tfdGFyZ2V0Oj1jaGVja30KIAotCSR7bWFrZV9j bWR9ICR7bWFrZV9jaGVja19hcmdzfSAke21ha2VfY2hlY2tfdGFyZ2V0fQorCWlmIFsgLXogIiRk aXNhYmxlX3BhcmFsbGVsX2NoZWNrIiBdOyB0aGVuCisJCSR7bWFrZV9jbWR9ICR7bWFrZWpvYnN9 ICR7bWFrZV9jaGVja19hcmdzfSAke21ha2VfY2hlY2tfdGFyZ2V0fQorCWVsc2UKKwkJJHttYWtl X2NtZH0gJHttYWtlX2NoZWNrX2FyZ3N9ICR7bWFrZV9jaGVja190YXJnZXR9CisJZmkKIH0KIAog ZG9faW5zdGFsbCgpIHsKZGlmZiAtLWdpdCBhL2NvbW1vbi9idWlsZC1zdHlsZS9nbnUtbWFrZWZp bGUuc2ggYi9jb21tb24vYnVpbGQtc3R5bGUvZ251LW1ha2VmaWxlLnNoCmluZGV4IGQ3ZWExNDhm YzQ4My4uMGY3YWZhN2QzNjk1IDEwMDY0NAotLS0gYS9jb21tb24vYnVpbGQtc3R5bGUvZ251LW1h a2VmaWxlLnNoCisrKyBiL2NvbW1vbi9idWlsZC1zdHlsZS9nbnUtbWFrZWZpbGUuc2gKQEAgLTMw LDcgKzMwLDExIEBAIGRvX2NoZWNrKCkgewogCTogJHttYWtlX2NtZDo9bWFrZX0KIAk6ICR7bWFr ZV9jaGVja190YXJnZXQ6PWNoZWNrfQogCi0JJHttYWtlX2NtZH0gJHttYWtlX2NoZWNrX2FyZ3N9 ICR7bWFrZV9jaGVja190YXJnZXR9CisJaWYgWyAteiAiJGRpc2FibGVfcGFyYWxsZWxfY2hlY2si IF07IHRoZW4KKwkJJHttYWtlX2NtZH0gJHttYWtlam9ic30gJHttYWtlX2NoZWNrX2FyZ3N9ICR7 bWFrZV9jaGVja190YXJnZXR9CisJZWxzZQorCQkke21ha2VfY21kfSAke21ha2VfY2hlY2tfYXJn c30gJHttYWtlX2NoZWNrX3RhcmdldH0KKwlmaQogfQogCiBkb19pbnN0YWxsKCkgewpkaWZmIC0t Z2l0IGEvY29tbW9uL2J1aWxkLXN0eWxlL3BlcmwtbW9kdWxlLnNoIGIvY29tbW9uL2J1aWxkLXN0 eWxlL3BlcmwtbW9kdWxlLnNoCmluZGV4IGI5YTAxYjEzY2ZhOS4uZDQ3OTQ1YjMzZDM2IDEwMDY0 NAotLS0gYS9jb21tb24vYnVpbGQtc3R5bGUvcGVybC1tb2R1bGUuc2gKKysrIGIvY29tbW9uL2J1 aWxkLXN0eWxlL3BlcmwtbW9kdWxlLnNoCkBAIC03OSw3ICs3OSwxMSBAQCBkb19jaGVjaygpIHsK IAk6ICR7bWFrZV9jbWQ6PW1ha2V9CiAJOiAke21ha2VfY2hlY2tfdGFyZ2V0Oj10ZXN0fQogCi0J JHttYWtlX2NtZH0gJHttYWtlX2NoZWNrX2FyZ3N9ICR7bWFrZV9jaGVja190YXJnZXR9CisJaWYg WyAteiAiJGRpc2FibGVfcGFyYWxsZWxfY2hlY2siIF07IHRoZW4KKwkJJHttYWtlX2NtZH0gJHtt YWtlam9ic30gJHttYWtlX2NoZWNrX2FyZ3N9ICR7bWFrZV9jaGVja190YXJnZXR9CisJZWxzZQor CQkke21ha2VfY21kfSAke21ha2VfY2hlY2tfYXJnc30gJHttYWtlX2NoZWNrX3RhcmdldH0KKwlm aQogfQogCiBkb19pbnN0YWxsKCkgewpkaWZmIC0tZ2l0IGEvY29tbW9uL2Vudmlyb25tZW50L3Nl dHVwL3NvdXJjZXBrZy5zaCBiL2NvbW1vbi9lbnZpcm9ubWVudC9zZXR1cC9zb3VyY2Vwa2cuc2gK aW5kZXggYmMwNmY3NDViNzhhLi4xZmQ1NDFmMWU3MTUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9lbnZp cm9ubWVudC9zZXR1cC9zb3VyY2Vwa2cuc2gKKysrIGIvY29tbW9uL2Vudmlyb25tZW50L3NldHVw L3NvdXJjZXBrZy5zaApAQCAtMTMsNyArMTMsOCBAQCB1bnNldCAtdiBjbWFrZV9idWlsZGRpciBt ZXNvbl9idWlsZGRpcgogdW5zZXQgLXYgbWVzb25fY3Jvc3NmaWxlCiB1bnNldCAtdiBnZW1zcGVj CiB1bnNldCAtdiBnb19pbXBvcnRfcGF0aCBnb19wYWNrYWdlIGdvX21vZF9tb2RlCi11bnNldCAt diBwYXRjaF9hcmdzIGRpc2FibGVfcGFyYWxsZWxfYnVpbGQga2VlcF9saWJ0b29sX2FyY2hpdmVz IG1ha2VfdXNlX2VudgordW5zZXQgLXYgcGF0Y2hfYXJncyBkaXNhYmxlX3BhcmFsbGVsX2J1aWxk IGRpc2FibGVfcGFyYWxsZWxfY2hlY2sKK3Vuc2V0IC12IGtlZXBfbGlidG9vbF9hcmNoaXZlcyBt YWtlX3VzZV9lbnYKIHVuc2V0IC12IHJldmVydHMgc3VicGFja2FnZXMgbWFrZWRlcGVuZHMgaG9z dG1ha2VkZXBlbmRzIGNoZWNrZGVwZW5kcyBkZXBlbmRzIHJlc3RyaWN0ZWQKIHVuc2V0IC12IG5v cGllIGJ1aWxkX29wdGlvbnMgYnVpbGRfb3B0aW9uc19kZWZhdWx0IGJvb3RzdHJhcCByZXBvc2l0 b3J5IHJldmVydHMKIHVuc2V0IC12IENGTEFHUyBDWFhGTEFHUyBGRkxBR1MgQ1BQRkxBR1MgTERG TEFHUyBMRF9MSUJSQVJZX1BBVEgK --===============7744950289163053128==--