From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Sergio Durigan Junior To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Revert "Rebuild due to new libipt release." Date: Thu, 23 Jul 2026 18:33:34 GMT Message-ID: <178483161413.1.7423813842980533654.rpms-gdb-c26726c3ff7c@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: c26726c3ff7cc1e77a92867a28a1cb9fd76f83ae ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYzI2NzI2YzNmZjdjYzFlNzdhOTI4NjdhMjhhMWNiOWZkNzZmODNhZQog ICAgICAgICAgICBBdXRob3IgOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhh dC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDgtMDhUMTY6Mjc6MDUtMDQ6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzIwMzgvLTIwODggaW4gMTMgZmlsZShzKQogICAgICAgICAgICBV UkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jL2MyNjcyNmMz ZmY3Y2MxZTc3YTkyODY3YTI4YTFjYjlmZDc2ZjgzYWU/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAg ICAgICAgICAgIExvZzoKICAgICAgICAgICAgUmV2ZXJ0ICJSZWJ1aWxkIGR1ZSB0byBuZXcgbGli aXB0IHJlbGVhc2UuIgoKVGhpcyByZXZlcnRzIGNvbW1pdCA3NmRkYzU2YjZkODhmZTZkMjU2MjJk MWM0OTM3NDkxNDkxZmExZGMwLgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGln bm9yZQppbmRleCA5NDljMjA0Li4wYWJlNThhIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBi Ly5naXRpZ25vcmUKQEAgLTEsMyArMSwzIEBACiAvZ2RiLWxpYnN0ZGMrKy12My1weXRob24tOC4x LjEtMjAxODA2MjYudGFyLnh6CisvdjEuNi4xLnRhci5negogL2dkYi04LjEuOTAuMjAxODA3Mjcu dGFyLnh6Ci0vdjIuMC50YXIuZ3oKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVk ZSBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCmluZGV4IDk0NmM0YWYuLjhiYTBlNDggMTAwNjQ0 Ci0tLSBhL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5QYXRjaC5pbmNs dWRlCkBAIC01MDUsMTEgKzUwNSw4IEBAIFBhdGNoMTIwOiBnZGItdmxhLWludGVsLWZpeC1wcmlu dC1jaGFyLWFycmF5LnBhdGNoCiBQYXRjaDEyMTogZ2RiLXJoYnoxNTUzMTA0LXMzOTB4LWFyY2gx Mi10ZXN0LnBhdGNoCiAKICMgSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3IgR0RCL2dkYnNlcnZl ciAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgotUGF0Y2gxMjI6IGdkYi1y aGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaAorUGF0Y2gxMjI6IGdkYi1yaGJ6ODgxODQ5LWlwdjYt MW9mMi5wYXRjaAogCi0KLVBhdGNoMTIzOiBnZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gK LQotCi1QYXRjaDEyNDogZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCisjIEltcGxlbWVu dCBJUHY2IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwgU2VyZ2lvIER1 cmlnYW4gSnVuaW9yKS4KK1BhdGNoMTIzOiBnZGItcmhiejg4MTg0OS1pcHY2LTJvZjIucGF0Y2gK IAoKZGlmZiAtLWdpdCBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlIGIvX2dkYi5zcGVjLnBhdGNo LmluY2x1ZGUKaW5kZXggOTdmMTJjNC4uMjdhMzliNyAxMDA2NDQKLS0tIGEvX2dkYi5zcGVjLnBh dGNoLmluY2x1ZGUKKysrIGIvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKQEAgLTEyMSw0ICsxMjEs MyBAQAogJXBhdGNoMTIxIC1wMQogJXBhdGNoMTIyIC1wMQogJXBhdGNoMTIzIC1wMQotJXBhdGNo MTI0IC1wMQoKZGlmZiAtLWdpdCBhL19wYXRjaF9vcmRlciBiL19wYXRjaF9vcmRlcgppbmRleCBi MTA1MzZjLi4xMWI0MTMxIDEwMDY0NAotLS0gYS9fcGF0Y2hfb3JkZXIKKysrIGIvX3BhdGNoX29y ZGVyCkBAIC0xMTksNiArMTE5LDUgQEAgZ2RiLXRlc3RzdWl0ZS1yZWFkbGluZTYzLXNpZ2ludC5w YXRjaAogZ2RiLWFyY2hlci5wYXRjaAogZ2RiLXZsYS1pbnRlbC1maXgtcHJpbnQtY2hhci1hcnJh eS5wYXRjaAogZ2RiLXJoYnoxNTUzMTA0LXMzOTB4LWFyY2gxMi10ZXN0LnBhdGNoCi1nZGItcmhi ejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKLWdkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMy5wYXRjaAot Z2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCitnZGItcmhiejg4MTg0OS1pcHY2LTFvZjIu cGF0Y2gKK2dkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMi5wYXRjaAoKZGlmZiAtLWdpdCBhL2dkYi1y aGJ6ODgxODQ5LWlwdjYtMW9mMi5wYXRjaCBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMi5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDUxMGM4Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YyLnBhdGNoCkBAIC0wLDAgKzEsMTkzNCBA QAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNl cmdpbyBEdXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMTgg TWF5IDIwMTggMDE6Mjk6MjQgLTA0MDAKK1N1YmplY3Q6IGdkYi1yaGJ6ODgxODQ5LWlwdjYtMW9m Mi5wYXRjaAorCis7OyBJbXBsZW1lbnQgSVB2NiBzdXBwb3J0IGZvciBHREIvZ2Ric2VydmVyIChS SCBCWiA4ODE4NDksIFNlcmdpbyBEdXJpZ2FuIEp1bmlvcikuCisKK0ltcGxlbWVudCBJUHY2IHN1 cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIKKworVGhpcyBwYXRjaCBpbXBsZW1lbnRzIElQdjYgc3Vw cG9ydCBmb3IgYm90aCBHREIgYW5kIGdkYnNlcnZlci4gIEJhc2VkCitvbiBteSByZXNlYXJjaCwg aXQgaXMgdGhlIGZvdXJ0aCBhdHRlbXB0IHRvIGRvIHRoYXQgc2luY2UgMjAwNi4gIFNpbmNlCitJ IHVzZWQgaWRlYXMgZnJvbSBhbGwgb2YgdGhlIHByZXZpb3VzIHBhdGNoZXMsIEkgYWxzbyBhZGRl ZCB0aGVpcgorYXV0aG9ycydzIG5hbWVzIG9uIHRoZSBDaGFuZ2VMb2dzIGFzIGEgd2F5IHRvIHJl Y29nbml6ZSB0aGVpcgorZWZmb3J0cy4gIEZvciByZWZlcmVuY2Ugc2FrZSwgeW91IGNhbiBmaW5k IHRoZSBwcmV2aW91cyBhdHRlbXB0cyBhdDoKKworICBodHRwczovL3NvdXJjZXdhcmUub3JnL21s L2dkYi1wYXRjaGVzLzIwMDYtMDkvbXNnMDAxOTIuaHRtbAorCisgIGh0dHBzOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wMi9tc2cwMDI0OC5odG1sCisKKyAgaHR0cHM6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwMjI2Lmh0bWwKKworVGhl IGJhc2ljIGlkZWEgYmVoaW5kIHRoZSBwYXRjaCBpcyB0byBzdGFydCB1c2luZyB0aGUgbmV3Cisn Z2V0YWRkcmluZm8nLydnZXRuYW1laW5mbycgY2FsbHMsIHdoaWNoIGFyZSByZXNwb25zaWJsZSBm b3IKK3RyYW5zbGF0aW5nIG5hbWVzIGFuZCBhZGRyZXNzZXMgaW4gYSBwcm90b2NvbC1pbmRlcGVu ZGVudCB3YXkuICBUaGlzCittZWFucyB0aGF0IGlmIHdlIGV2ZXIgaGF2ZSBhIG5ldyB2ZXJzaW9u IG9mIHRoZSBJUCBwcm90b2NvbCwgd2Ugd29uJ3QKK25lZWQgdG8gY2hhbmdlIHRoZSBjb2RlIGFn YWluIChvciwgYXQgbGVhc3QsIHdvbid0IGhhdmUgdG8gY2hhbmdlIHRoZQorbWFqb3JpdHkgb2Yg dGhlIGNvZGUpLgorCitUaGUgZnVuY3Rpb24gJ2dldGFkZHJpbmZvJyByZXR1cm5zIGEgbGlua2Vk IGxpc3Qgb2YgcG9zc2libGUgYWRkcmVzc2VzCit0byBjb25uZWN0IHRvLiAgRGVhbGluZyB3aXRo IG11bHRpcGxlIGFkZHJlc3NlcyBwcm92ZWQgdG8gYmUgYSBoYXJkCit0YXNrIHdpdGggdGhlIGN1 cnJlbnQgVENQIGF1dG8tcmV0cnkgbWVjaGFuaXNtIGltcGxlbWVudGVkIG9uCitzZXItdGNwOm5l dF9vcGVuLiAgRm9yIGV4YW1wbGUsIHdoZW4gZ2Ric2VydmVyIGxpc3RlbmVkIG9ubHkgb24gYW4K K0lQdjQgc29ja2V0OgorCisgICQgLi9nZGJzZXJ2ZXIgLS1vbmNlIDEyNy4wLjAuMToxMjM0IC4v YS5vdXQKKworYW5kIEdEQiB3YXMgaW5zdHJ1Y3RlZCB0byB0cnkgdG8gY29ubmVjdCB0byBib3Ro IElQdjYgYW5kIElQdjQKK3NvY2tldHM6CisKKyAgJCAuL2dkYiAtZXggJ3RhcmdldCBleHRlbmRl ZC1yZW1vdGUgbG9jYWxob3N0OjEyMzQnIC4vYS5vdXQKKwordGhlIHVzZXIgd291bGQgbm90aWNl IGEgc29tZXdoYXQgYmlnIGRlbGF5IGJlZm9yZSBHREIgd2FzIGFibGUgdG8KK2Nvbm5lY3QgdG8g dGhlIElQdjQgc29ja2V0LiAgVGhpcyBoYXBwZW5lZCBiZWNhdXNlIEdEQiB3YXMgdHJ5aW5nIHRv Citjb25uZWN0IHRvIHRoZSBJUHY2IHNvY2tldCBmaXJzdCwgYW5kIGhhZCB0byB3YWl0IHVudGls IHRoZSBjb25uZWN0aW9uCit0aW1lZCBvdXQgYmVmb3JlIGl0IHRyaWVkIHRvIGNvbm5lY3QgdG8g dGhlIElQdjQgc29ja2V0LgorCitGb3IgdGhhdCByZWFzb24sIEkgaGFkIHRvIHJld3JpdGUgdGhl IG1haW4gbG9vcCBhbmQgaW1wbGVtZW50IGEgbmV3CittZXRob2QgZm9yIGhhbmRsaW5nIG11bHRp cGxlIGNvbm5lY3Rpb25zLiAgQWZ0ZXIgc29tZSBkaXNjdXNzaW9uLAorUGVkcm8gYW5kIEkgYWdy ZWVkIG9uIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOgorCisgIDEpIEZvciBlYWNoIGVudHJ5IHJl dHVybmVkIGJ5ICdnZXRhZGRyaW5mbycsIHdlIHRyeSB0byBvcGVuIGEgc29ja2V0CisgIGFuZCBj b25uZWN0IHRvIGl0LgorCisgIDIuYSkgSWYgd2UgaGF2ZSBhIHN1Y2Nlc3NmdWwgJ2Nvbm5lY3Qn LCB3ZSBqdXN0IHVzZSB0aGF0IGNvbm5lY3Rpb24uCisKKyAgMi5iKSBJZiB3ZSBkb24ndCBoYXZl IGEgc3VjY2Vzc2Z1bGwgJ2Nvbm5lY3QnLCBidXQgaWYgd2UndmUgZ290IGEKKyAgRUNPTk5SRUZV U0VEIChtZWFuaW5nIHRoZSB0aGUgY29ubmVjdGlvbiB3YXMgcmVmdXNlZCksIHdlIGtlZXAgdHJh Y2sKKyAgb2YgdGhpcyBmYWN0IGJ5IHVzaW5nIGEgZmxhZy4KKworICAyLmMpIElmIHdlIGRvbid0 IGhhdmUgYSBzdWNjZXNzZnVsbCAnY29ubmVjdCcsIGJ1dCBpZiB3ZSd2ZSBnb3QgYQorICBFSU5Q Uk9HUkVTUyAobWVhbmluZyB0aGF0IHRoZSBjb25uZWN0aW9uIGlzIGluIHByb2dyZXNzKSwgd2Ug cGVyZm9ybQorICBhICdzZWxlY3QnIGNhbGwgb24gdGhlIHNvY2tldCB1bnRpbCB3ZSBoYXZlIGEg cmVzdWx0IChlaXRoZXIgYQorICBzdWNjZXNzZnVsIGNvbm5lY3Rpb24sIG9yIGFuIGVycm9yIG9u IHRoZSBzb2NrZXQpLgorCisgIDMpIElmIHRjcF9hdXRvX3JldHJ5IGlzIHRydWUsIGFuZCB3ZSBo YXZlbid0IGdvdHRlbiBhIHN1Y2Nlc3NmdWwKKyAgY29ubmVjdGlvbiwgYW5kIGF0IGxlYXN0IG9u ZSBvZiBvdXIgYXR0ZW1wdHMgZmFpbGVkIHdpdGgKKyAgRUNPTk5SRUZVU0VELCB0aGVuIHdlIHdh aXQgYSBsaXR0bGUgYml0IChpLmUuLCBjYWxsCisgICd3YWl0X2Zvcl9jb25uZWN0JyksIGNoZWNr IHRvIHNlZSBpZiB0aGVyZSB3YXMgYQorICB0aW1lb3V0L2ludGVycnVwdGlvbiAoaW4gd2hpY2gg Y2FzZSB3ZSBiYWlsIG91dCksIGFuZCB0aGVuIGdvIGJhY2sKKyAgdG8gKDEpLgorCitBZnRlciBt dWx0aXBsZSB0ZXN0cywgSSB3YXMgYWJsZSB0byBjb25uZWN0IHdpdGhvdXQgZGVsYXkgb24gdGhl CitzY2VuYXJpbyBkZXNjcmliZWQgYWJvdmUsIGFuZCB3YXMgYWxzbyBhYmxlIHRvIGNvbm5lY3Qg aW4gYWxsIG90aGVyCit0eXBlcyBvZiBzY2VuYXJpb3MuCisKK0kgYWxzbyBpbXBsZW1lbnRlZCBz b21lIGhvc3RuYW1lIHBhcnNpbmcgZnVuY3Rpb25zIChhbG9uZyB3aXRoIHRoZWlyCitjb3JyZXNw b25kaW5nIHVuaXQgdGVzdHMpIHdoaWNoIGFyZSB1c2VkIHRvIGhlbHAgR0RCIGFuZCBnZGJzZXJ2 ZXIgdG8KK3BhcnNlIGhvc3RuYW1lIHN0cmluZ3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIuICBUaGVz ZSBuZXcgZnVuY3Rpb25zIGFyZQorbGl2aW5nIGluc2lkZSBjb21tb24vbmV0c3R1ZmYuW2NoXS4g IEkndmUgaGFkIHRvIGRvIHRoYXQgc2luY2UgSVB2NgoraW50cm9kdWNlcyBhIG5ldyBVUkwgc2No ZW1lLCB3aGljaCBkZWZpbmVzIHRoYXQgc3F1YXJlIGJyYWNrZXRzIGNhbiBiZQordXNlZCB0byBl bmNsb3NlIHRoZSBob3N0IHBhcnQgYW5kIGRpZmZlcmVudGlhdGUgaXQgZnJvbSB0aGUKK3BvcnQg KGUuZy4sICJbOjoxXToxMjM0IiBtZWFucyAiaG9zdCA6OjEsIHBvcnQgMTIzNCIpLiAgSSBzcGVu dCBzb21lCit0aW1lIHRoaW5raW5nIGFib3V0IGEgcmVhc29uYWJsZSB3YXkgdG8gaW50ZXJwcmV0 IHdoYXQgdGhlIHVzZXIgd2FudHMsCithbmQgSSBjYW1lIHVwIHdpdGggdGhlIGZvbGxvd2luZzoK KworICAtIElmIHRoZSB1c2VyIGhhcyBwcm92aWRlZCBhIHByZWZpeCB0aGF0IGRvZXNuJ3Qgc3Bl Y2lmeSB0aGUgcHJvdG9jb2wKKyAgICB2ZXJzaW9uIChpLmUuLCAidGNwOiIgb3IgInVkcDoiKSwg b3IgaWYgdGhlIHVzZXIgaGFzIG5vdCBwcm92aWRlZAorICAgIGFueSBwcmVmaXgsIGRvbid0IG1h a2UgYW55IGFzc3VtcHRpb25zIChpLmUuLCBhc3N1bWUgQUZfVU5TUEVDIHdoZW4KKyAgICBkZWFs aW5nIHdpdGggJ2dldGFkZHJpbmZvJykgKnVubGVzcyogdGhlIGhvc3Qgc3RhcnRzIHdpdGggIlsi IChpbgorICAgIHdoaWNoIGNhc2UsIGFzc3VtZSBpdCdzIGFuIElQdjYgaG9zdCkuCisKKyAgLSBJ ZiB0aGUgdXNlciBoYXMgcHJvdmlkZWQgYSBwcmVmaXggdGhhdCBkb2VzIHNwZWNpZnkgdGhlIHBy b3RvY29sCisgICAgdmVyc2lvbiAoaS5lLiwgInRjcDQ6IiwgInRjcDY6IiwgInVkcDQ6IiBvciAi dWRwNjoiKSwgdGhlbiByZXNwZWN0CisgICAgdGhhdC4KKworVGhpcyBtZXRob2QgZG9lc24ndCBm b2xsb3cgc3RyaWN0bHkgd2hhdCBSRkMgMjczMiBwcm9wb3NlcyAodGhhdAorbGl0ZXJhbCBJUHY2 IGFkZHJlc3NlcyBzaG91bGQgYmUgcHJvdmlkZWQgZW5jbG9zZWQgaW4gIlsiIGFuZCAiXSIpCiti ZWNhdXNlIElQdjYgYWRkcmVzc2VzIHN0aWxsIGNhbiBiZSBwcm92aWRlZCB3aXRob3V0IHNxdWFy ZSBicmFja2V0cworaW4gb3VyIGNhc2UsIGJ1dCBzaW5jZSB3ZSBoYXZlIHByZWZpeGVzIHRvIHNw ZWNpZnkgcHJvdG9jb2wgdmVyc2lvbnMgSQordGhpbmsgdGhpcyBpcyBub3QgYW4gaXNzdWUuCisK K0Fub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGUgbmV3ICdHREJfVEVTVF9TT0NL RVRIT1NUJwordGVzdGNhc2UgcGFyYW1ldGVyLCB3aGljaCBtYWtlcyBpdCBwb3NzaWJsZSB0byBz cGVjaWZ5IHRoZQoraG9zdG5hbWUgKHdpdGhvdXQgdGhlIHBvcnQpIHRvIGJlIHVzZWQgd2hlbiB0 ZXN0aW5nIEdEQiBhbmQKK2dkYnNlcnZlci4gIEZvciBleGFtcGxlLCB0byBydW4gSVB2NiB0ZXN0 czoKKworICAkIG1ha2UgY2hlY2stZ2RiIFJVTlRFU1RGTEFHUz0nR0RCX1RFU1RfU09DS0VUSE9T VD10Y3A2Ols6OjFdJworCitPciwgdG8gcnVuIElQdjQgdGVzdHM6CisKKyAgJCBtYWtlIGNoZWNr LWdkYiBSVU5URVNURkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9dGNwNDoxMjcuMC4wLjEnCisK K1RoaXMgcmVxdWlyZWQgYSBmZXcgY2hhbmdlcyBvbiB0aGUgZ2Ric2VydmVyLWJhc2UuZXhwLCBh bmQgYWxzbyBhCittaW5pbWFsIGFkanVzdG1lbnQgb24gZ2RiLnNlcnZlci9ydW4td2l0aG91dC1s b2NhbC1iaW5hcnkuZXhwLgorCitGaW5hbGx5LCBJJ3ZlIGltcGxlbWVudGVkIGEgbmV3IHRlc3Rj YXNlLAorZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAsIHdoaWNoIGlzIHN1cHBvc2VkIHRv IHJ1biBvbiB0aGUgbmF0aXZlCitob3N0IGFuZCBwZXJmb3JtIHZhcmlvdXMgInNtb2tlIHRlc3Rz IiB1c2luZyBkaWZmZXJlbnQgY29ubmVjdGlvbgorbWV0aG9kcy4KKworVGhpcyBwYXRjaCBoYXMg YmVlbiByZWdyZXNzaW9uLXRlc3RlZCBvbiBCdWlsZEJvdCBhbmQgbG9jYWxseSwgYW5kCithbHNv IGJ1aWx0IHVzaW5nIGEgeDg2XzY0LXc2NC1taW5ndzMyIEdDQywgYW5kIG5vIHByb2JsZW1zIHdl cmUgZm91bmQuCisKK2dkYi9DaGFuZ2VMb2c6CisyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBK dW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+CisJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFp bC5jb20+CisJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKwkgICAgUGVk cm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKworCSogTWFrZWZpbGUuaW4gKFNVQkRJUl9V TklUVEVTVFNfU1JDUyk6IEFkZAorCSd1bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVjLXNl bGZ0ZXN0cy5jJy4KKwkoQ09NTU9OX1NGSUxFUyk6IEFkZCAnY29tbW9uL25ldHN0dWZmLmMnLgor CShIRklMRVNfTk9fU1JDRElSKTogQWRkICdjb21tb24vbmV0c3R1ZmYuaCcuCisJKiBORVdTIChD aGFuZ2VzIHNpbmNlIEdEQiA4LjIpOiBNZW50aW9uIElQdjYgc3VwcG9ydC4KKwkqIGNvbW1vbi9u ZXRzdHVmZi5jOiBOZXcgZmlsZS4KKwkqIGNvbW1vbi9uZXRzdHVmZi5oOiBOZXcgZmlsZS4KKwkq IHNlci10Y3AuYzogSW5jbHVkZSAnbmV0c3R1ZmYuaCcgYW5kICd3c3BpYXBpLmgnLgorCSh3YWl0 X2Zvcl9jb25uZWN0KTogVXBkYXRlIGNvbW1lbnQuICBOZXcgcGFyYW1ldGVyCisJJ2dkYjo6b3B0 aW9uYWw8aW50PiBzb2NrJyBpbnN0ZWFkIG9mICdzdHJ1Y3Qgc2VyaWFsICpzY2InLgorCVVzZSAn c29jaycgZGlyZWN0bHkgaW5zdGVhZCBvZiAnc2NiLT5mZCcuCisJKHRyeV9jb25uZWN0KTogTmV3 IGZ1bmN0aW9uLCB3aXRoIGNvZGUgZnJvbSAnbmV0X29wZW4nLgorCShuZXRfb3Blbik6IFJld3Jp dGUgbWFpbiBsb29wIHRvIGRlYWwgd2l0aCBtdWx0aXBsZQorCXNvY2tldHMvYWRkcmVzc2VzLiAg SGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBpbXBsZW1lbnQKKwlzdXBwb3J0IGZvciBJUHY2 IGNvbm5lY3Rpb25zLgorCSogdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVz dHMuYzogTmV3IGZpbGUuCisKK2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nOgorMjAxOC0wNy0xMSAg U2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKwkgICAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCSAgICBQYXVsIEZlcnRzZXIg IDxmZXJjZXJwYXZAZ21haWwuY29tPgorCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFp bC5jb20+CisKKwkqIE1ha2VmaWxlLmluIChTRklMRVMpOiBBZGQgJyQoc3JjZGlyKS9jb21tb24v bmV0c3R1ZmYuYycuCisJKE9CUyk6IEFkZCAnY29tbW9uL25ldHN0dWZmLm8nLgorCShHREJSRVBM QVlfT0JTKTogTGlrZXdpc2UuCisJKiBnZGJyZXBsYXkuYzogSW5jbHVkZSAnd3NwaWFwaS5oJyBh bmQgJ25ldHN0dWZmLmgnLgorCShyZW1vdGVfb3Blbik6IEltcGxlbWVudCBzdXBwb3J0IGZvciBJ UHY2CisJY29ubmVjdGlvbnMuCisJKiByZW1vdGUtdXRpbHMuYzogSW5jbHVkZSAnbmV0c3R1ZmYu aCcsICdmaWxlc3R1ZmYuaCcKKwlhbmQgJ3dzcGlhcGkuaCcuCisJKGhhbmRsZV9hY2NlcHRfZXZl bnQpOiBBY2NlcHQgY29ubmVjdGlvbnMgZnJvbSBJUHY2IHNvdXJjZXMuCisJKHJlbW90ZV9wcmVw YXJlKTogSGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBpbXBsZW1lbnQKKwlzdXBwb3J0IGZv ciBJUHY2IGNvbm5lY3Rpb25zLgorCShyZW1vdGVfb3Blbik6IEltcGxlbWVudCBzdXBwb3J0IGZv ciBwcmludGluZyBjb25uZWN0aW9ucyBmcm9tCisJSVB2NiBzb3VyY2VzLgorCitnZGIvdGVzdHN1 aXRlL0NoYW5nZUxvZzoKKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdp b2RqQHJlZGhhdC5jb20+CisJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKwkgICAg VHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgorCisJKiBSRUFETUUgKFRlc3RzdWl0 ZSBQYXJhbWV0ZXJzKTogTWVudGlvbiBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhPU1QnCisJcGFyYW1l dGVyLgorCSogYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwOiBEbyBub3Qgc2V0 ICdzb2NrZXRob3N0JworCWJ5IGRlZmF1bHQuCisJKiBib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5l eHA6IExpa2V3aXNlLgorCSogZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhw OiBJbXByb3ZlIHJlZ2V4cCB1c2VkCisJZm9yIGRldGVjdGluZyB3aGVuIGEgcmVtb3RlIGRlYnVn Z2luZyBjb25uZWN0aW9uIHN1Y2NlZWRzLgorCSogZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5l eHA6IE5ldyBmaWxlLgorCSogbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCAoZ2Ric2VydmVyX2Rl ZmF1bHRfZ2V0X2NvbW1fcG9ydCk6CisJRG8gbm90IHByZWZpeCB0aGUgcG9ydCBudW1iZXIgd2l0 aCAiOiIuCisJKGdkYnNlcnZlcl9zdGFydCk6IE5ldyBnbG9iYWwgR0RCX1RFU1RfU09DS0VUSE9T VC4gIEltcGxlbWVudAorCXN1cHBvcnQgZm9yIGRldGVjdGluZyBhbmQgdXNpbmcgaXQuICBBZGQg JyRkZWJ1Z2hvc3RfZ2Ric2VydmVyJworCXRvIHRoZSBsaXN0IG9mIGFyZ3VtZW50cyB1c2VkIHRv IHN0YXJ0IGdkYnNlcnZlci4gIEhhbmRsZSBjYXNlCisJd2hlbiBnZGJzZXJ2ZXIgY2Fubm90IHJl c29sdmUgYSBuZXR3b3JrIG5hbWUuCisKK2dkYi9kb2MvQ2hhbmdlTG9nOgorMjAxOC0wNy0xMSAg U2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKwkgICAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCSAgICBQYXVsIEZlcnRzZXIg IDxmZXJjZXJwYXZAZ21haWwuY29tPgorCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFp bC5jb20+CisKKwkqIGdkYi50ZXhpbmZvIChSZW1vdGUgQ29ubmVjdGlvbiBDb21tYW5kcyk6IEFk ZCBleHBsYW5hdGlvbgorCWFib3V0IG5ldyBJUHY2IHN1cHBvcnQuICBBZGQgbmV3IGNvbm5lY3Rp b24gcHJlZml4ZXMuCisKK2RpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZp bGUuaW4KKy0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysrIGIvZ2RiL01ha2VmaWxlLmluCitAQCAt NDMwLDYgKzQzMCw3IEBAIFNVQkRJUl9VTklUVEVTVFNfU1JDUyA9IFwKKyAJdW5pdHRlc3RzL29m ZnNldC10eXBlLXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL29ic2VydmFibGUtc2VsZnRlc3Rz LmMgXAorIAl1bml0dGVzdHMvb3B0aW9uYWwtc2VsZnRlc3RzLmMgXAorKwl1bml0dGVzdHMvcGFy c2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL3B0aWQtc2VsZnRl c3RzLmMgXAorIAl1bml0dGVzdHMvcnNwLWxvdy1zZWxmdGVzdHMuYyBcCisgCXVuaXR0ZXN0cy9z Y29wZWRfZmQtc2VsZnRlc3RzLmMgXAorQEAgLTk2Nyw2ICs5NjgsNyBAQCBDT01NT05fU0ZJTEVT ID0gXAorIAljb21tb24vam9iLWNvbnRyb2wuYyBcCisgCWNvbW1vbi9nZGJfdGlsZGVfZXhwYW5k LmMgXAorIAljb21tb24vZ2RiX3ZlY3MuYyBcCisrCWNvbW1vbi9uZXRzdHVmZi5jIFwKKyAJY29t bW9uL25ldy1vcC5jIFwKKyAJY29tbW9uL3BhdGhzdHVmZi5jIFwKKyAJY29tbW9uL3ByaW50LXV0 aWxzLmMgXAorQEAgLTE0NDgsNiArMTQ1MCw3IEBAIEhGSUxFU19OT19TUkNESVIgPSBcCisgCWNv bW1vbi9nZGJfdmVjcy5oIFwKKyAJY29tbW9uL2dkYl93YWl0LmggXAorIAljb21tb24vY29tbW9u LWluZmVyaW9yLmggXAorKwljb21tb24vbmV0c3R1ZmYuaCBcCisgCWNvbW1vbi9ob3N0LWRlZnMu aCBcCisgCWNvbW1vbi9wYXRoc3R1ZmYuaCBcCisgCWNvbW1vbi9wcmludC11dGlscy5oIFwKK2Rp ZmYgLS1naXQgYS9nZGIvTkVXUyBiL2dkYi9ORVdTCistLS0gYS9nZGIvTkVXUworKysrIGIvZ2Ri L05FV1MKK0BAIC0xLDYgKzEsMTIgQEAKKyAJCVdoYXQgaGFzIGNoYW5nZWQgaW4gR0RCPworIAkg ICAgIChPcmdhbml6ZWQgcmVsZWFzZSBieSByZWxlYXNlKQorIAorKyoqKiBDaGFuZ2VzIHNpbmNl IEdEQiA4LjIKKysKKysqIEdEQiBhbmQgR0RCc2VydmVyIG5vdyBzdXBwb3J0IElQdjYgY29ubmVj dGlvbnMuICBJUHY2IGFkZHJlc3NlcworKyAgY2FuIGJlIHBhc3NlZCB1c2luZyB0aGUgJ1tBRERS RVNTXTpQT1JUJyBub3RhdGlvbiwgb3IgdGhlIHJlZ3VsYXIKKysgICdBRERSRVNTOlBPUlQnIG1l dGhvZC4KKysKKyAqKiogQ2hhbmdlcyBpbiBHREIgOC4yCisgCisgKiBUaGUgJ3NldCBkaXNhc3Nl bWJsZXItb3B0aW9ucycgY29tbWFuZCBub3cgc3VwcG9ydHMgc3BlY2lmeWluZyBvcHRpb25zCitk aWZmIC0tZ2l0IGEvZ2RiL2NvbW1vbi9uZXRzdHVmZi5jIGIvZ2RiL2NvbW1vbi9uZXRzdHVmZi5j CituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL2NvbW1vbi9u ZXRzdHVmZi5jCitAQCAtMCwwICsxLDE1NSBAQAorKy8qIE9wZXJhdGlvbnMgb24gbmV0d29yayBz dHVmZi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSAiY29tbW9uLWRlZnMuaCIK KysjaW5jbHVkZSAibmV0c3R1ZmYuaCIKKysjaW5jbHVkZSA8YWxnb3JpdGhtPgorKworKyNpZmRl ZiBVU0VfV0lOMzJBUEkKKysjaW5jbHVkZSA8d2luc29jazIuaD4KKysjaW5jbHVkZSA8d3NwaWFw aS5oPgorKyNlbHNlCisrI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKysjaW5jbHVkZSA8YXJwYS9p bmV0Lmg+CisrI2luY2x1ZGUgPG5ldGRiLmg+CisrI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKysj aW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KKysjZW5kaWYKKysKKysvKiBTZWUgY29tbW9uL25ldHN0 dWZmLmguICAqLworKworK3Njb3BlZF9mcmVlX2FkZHJpbmZvOjp+c2NvcGVkX2ZyZWVfYWRkcmlu Zm8gKCkKKyt7CisrICBmcmVlYWRkcmluZm8gKG1fcmVzKTsKKyt9CisrCisrLyogU2VlIGNvbW1v bi9uZXRzdHVmZi5oLiAgKi8KKysKKytwYXJzZWRfY29ubmVjdGlvbl9zcGVjCisrcGFyc2VfY29u bmVjdGlvbl9zcGVjX3dpdGhvdXRfcHJlZml4IChzdGQ6OnN0cmluZyBzcGVjLCBzdHJ1Y3QgYWRk cmluZm8gKmhpbnQpCisreworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyByZXQ7CisrICBzaXpl X3QgbGFzdF9jb2xvbl9wb3MgPSAwOworKyAgLyogV2UncmUgZGVhbGluZyB3aXRoIElQdjYgaWY6 CisrCisrICAgICAtIGFpX2ZhbWlseSBpcyBBRl9JTkVUNiwgb3IKKysgICAgIC0gYWlfZmFtaWx5 IGlzIG5vdCBBRl9JTkVULCBhbmQKKysgICAgICAgLSBzcGVjWzBdIGlzICdbJywgb3IKKysgICAg ICAgLSB0aGUgbnVtYmVyIG9mICc6JyBvbiBzcGVjIGlzIGdyZWF0ZXIgdGhhbiAxLiAgKi8KKysg IGJvb2wgaXNfaXB2NiA9IChoaW50LT5haV9mYW1pbHkgPT0gQUZfSU5FVDYKKysJCSAgfHwgKGhp bnQtPmFpX2ZhbWlseSAhPSBBRl9JTkVUCisrCQkgICAgICAmJiAoc3BlY1swXSA9PSAnWycKKysJ CQkgIHx8IHN0ZDo6Y291bnQgKHNwZWMuYmVnaW4gKCksCisrCQkJCQkgc3BlYy5lbmQgKCksICc6 JykgPiAxKSkpOworKworKyAgaWYgKGlzX2lwdjYpCisrICAgIHsKKysgICAgICBpZiAoc3BlY1sw XSA9PSAnWycpCisrCXsKKysJICAvKiBJUHY2IGFkZHJlc3NlcyBjYW4gYmUgd3JpdHRlbiBhcyAn W0FERFJdOlBPUlQnLCBhbmQgd2UKKysJICAgICBzdXBwb3J0IHRoaXMgbm90YXRpb24uICAqLwor KwkgIHNpemVfdCBjbG9zZV9icmFja2V0X3BvcyA9IHNwZWMuZmluZF9maXJzdF9vZiAoJ10nKTsK KysKKysJICBpZiAoY2xvc2VfYnJhY2tldF9wb3MgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCisrCSAg ICBlcnJvciAoXygiTWlzc2luZyBjbG9zZSBicmFja2V0IGluIGhvc3RuYW1lICclcyciKSwKKysJ CSAgIHNwZWMuY19zdHIgKCkpOworKworKwkgIGhpbnQtPmFpX2ZhbWlseSA9IEFGX0lORVQ2Owor KworKwkgIGNvbnN0IGNoYXIgYyA9IHNwZWNbY2xvc2VfYnJhY2tldF9wb3MgKyAxXTsKKysKKysJ ICBpZiAoYyA9PSAnXDAnKQorKwkgICAgbGFzdF9jb2xvbl9wb3MgPSBzdGQ6OnN0cmluZzo6bnBv czsKKysJICBlbHNlIGlmIChjICE9ICc6JykKKysJICAgIGVycm9yIChfKCJJbnZhbGlkIGNydWZ0 IGFmdGVyIGNsb3NlIGJyYWNrZXQgaW4gJyVzJyIpLAorKwkJICAgc3BlYy5jX3N0ciAoKSk7Cisr CisrCSAgLyogRXJhc2UgYm90aCAnWycgYW5kICddJy4gICovCisrCSAgc3BlYy5lcmFzZSAoMCwg MSk7CisrCSAgc3BlYy5lcmFzZSAoY2xvc2VfYnJhY2tldF9wb3MgLSAxLCAxKTsKKysJfQorKyAg ICAgIGVsc2UgaWYgKHNwZWMuZmluZF9maXJzdF9vZiAoJ10nKSAhPSBzdGQ6OnN0cmluZzo6bnBv cykKKysJZXJyb3IgKF8oIk1pc3Npbmcgb3BlbiBicmFja2V0IGluIGhvc3RuYW1lICclcyciKSwK KysJICAgICAgIHNwZWMuY19zdHIgKCkpOworKyAgICB9CisrCisrICBpZiAobGFzdF9jb2xvbl9w b3MgPT0gMCkKKysgICAgbGFzdF9jb2xvbl9wb3MgPSBzcGVjLmZpbmRfbGFzdF9vZiAoJzonKTsK KysKKysgIC8qIFRoZSBsZW5ndGggb2YgdGhlIGhvc3RuYW1lIHBhcnQuICAqLworKyAgc2l6ZV90 IGhvc3RfbGVuOworKworKyAgaWYgKGxhc3RfY29sb25fcG9zICE9IHN0ZDo6c3RyaW5nOjpucG9z KQorKyAgICB7CisrICAgICAgLyogVGhlIHVzZXIgaGFzIHByb3ZpZGVkIGEgcG9ydC4gICovCisr ICAgICAgaG9zdF9sZW4gPSBsYXN0X2NvbG9uX3BvczsKKysgICAgICByZXQucG9ydF9zdHIgPSBz cGVjLnN1YnN0ciAobGFzdF9jb2xvbl9wb3MgKyAxKTsKKysgICAgfQorKyAgZWxzZQorKyAgICBo b3N0X2xlbiA9IHNwZWMuc2l6ZSAoKTsKKysKKysgIHJldC5ob3N0X3N0ciA9IHNwZWMuc3Vic3Ry ICgwLCBob3N0X2xlbik7CisrCisrICAvKiBEZWZhdWx0IGhvc3RuYW1lIGlzIGxvY2FsaG9zdC4g ICovCisrICBpZiAocmV0Lmhvc3Rfc3RyLmVtcHR5ICgpKQorKyAgICByZXQuaG9zdF9zdHIgPSAi bG9jYWxob3N0IjsKKysKKysgIHJldHVybiByZXQ7CisrfQorKworKy8qIFNlZSBjb21tb24vbmV0 c3R1ZmYuaC4gICovCisrCisrcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYworK3BhcnNlX2Nvbm5lY3Rp b25fc3BlYyAoY29uc3QgY2hhciAqc3BlYywgc3RydWN0IGFkZHJpbmZvICpoaW50KQorK3sKKysg IC8qIFN0cnVjdCB0byBob2xkIHRoZSBhc3NvY2lhdGlvbiBiZXR3ZWVuIHZhbGlkIHByZWZpeGVz LCB0aGVpcgorKyAgICAgZmFtaWx5IGFuZCBzb2NrdHlwZS4gICovCisrICBzdHJ1Y3QgaG9zdF9w cmVmaXgKKysgICAgeworKyAgICAgIC8qIFRoZSBwcmVmaXguICAqLworKyAgICAgIGNvbnN0IGNo YXIgKnByZWZpeDsKKysKKysgICAgICAvKiBUaGUgJ2FpX2ZhbWlseScuICAqLworKyAgICAgIGlu dCBmYW1pbHk7CisrCisrICAgICAgLyogVGhlICdhaV9zb2NrdHlwZScuICAqLworKyAgICAgIGlu dCBzb2NrdHlwZTsKKysgICAgfTsKKysgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaG9zdF9wcmVmaXgg cHJlZml4ZXNbXSA9CisrICAgIHsKKysgICAgICB7ICJ1ZHA6IiwgIEFGX1VOU1BFQywgU09DS19E R1JBTSB9LAorKyAgICAgIHsgInRjcDoiLCAgQUZfVU5TUEVDLCBTT0NLX1NUUkVBTSB9LAorKyAg ICAgIHsgInVkcDQ6IiwgQUZfSU5FVCwgICBTT0NLX0RHUkFNIH0sCisrICAgICAgeyAidGNwNDoi LCBBRl9JTkVULCAgIFNPQ0tfU1RSRUFNIH0sCisrICAgICAgeyAidWRwNjoiLCBBRl9JTkVUNiwg IFNPQ0tfREdSQU0gfSwKKysgICAgICB7ICJ0Y3A2OiIsIEFGX0lORVQ2LCAgU09DS19TVFJFQU0g fSwKKysgICAgfTsKKysKKysgIGZvciAoY29uc3QgaG9zdF9wcmVmaXggcHJlZml4IDogcHJlZml4 ZXMpCisrICAgIGlmIChzdGFydHN3aXRoIChzcGVjLCBwcmVmaXgucHJlZml4KSkKKysgICAgICB7 CisrCXNwZWMgKz0gc3RybGVuIChwcmVmaXgucHJlZml4KTsKKysJaGludC0+YWlfZmFtaWx5ID0g cHJlZml4LmZhbWlseTsKKysJaGludC0+YWlfc29ja3R5cGUgPSBwcmVmaXguc29ja3R5cGU7Cisr CWhpbnQtPmFpX3Byb3RvY29sCisrCSAgPSBoaW50LT5haV9zb2NrdHlwZSA9PSBTT0NLX0RHUkFN ID8gSVBQUk9UT19VRFAgOiBJUFBST1RPX1RDUDsKKysJYnJlYWs7CisrICAgICAgfQorKworKyAg cmV0dXJuIHBhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAoc3BlYywgaGludCk7 CisrfQorZGlmZiAtLWdpdCBhL2dkYi9jb21tb24vbmV0c3R1ZmYuaCBiL2dkYi9jb21tb24vbmV0 c3R1ZmYuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9j b21tb24vbmV0c3R1ZmYuaAorQEAgLTAsMCArMSw3NiBAQAorKy8qIE9wZXJhdGlvbnMgb24gbmV0 d29yayBzdHVmZi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIE5FVFNUVUZGX0gK KysjZGVmaW5lIE5FVFNUVUZGX0gKKysKKysjaW5jbHVkZSA8c3RyaW5nPgorKworKy8qIExpa2Ug TklfTUFYSE9TVC9OSV9NQVhTRVJWLCBidXQgZW5vdWdoIGZvciBudW1lcmljIGZvcm1zLiAgKi8K KysjZGVmaW5lIEdEQl9OSV9NQVhfQUREUiA2NAorKyNkZWZpbmUgR0RCX05JX01BWF9QT1JUIDE2 CisrCisrLyogSGVscGVyIGNsYXNzIHRvIGd1YXJhbnRlZSB0aGF0IHdlIGFsd2F5cyBjYWxsICdm cmVlYWRkcmluZm8nLiAgKi8KKysKKytjbGFzcyBzY29wZWRfZnJlZV9hZGRyaW5mbworK3sKKytw dWJsaWM6CisrICAvKiBEZWZhdWx0IGNvbnN0cnVjdG9yLiAgKi8KKysgIGV4cGxpY2l0IHNjb3Bl ZF9mcmVlX2FkZHJpbmZvIChzdHJ1Y3QgYWRkcmluZm8gKmFpbmZvKQorKyAgICA6IG1fcmVzIChh aW5mbykKKysgIHsKKysgIH0KKysKKysgIC8qIERlc3RydWN0b3IgcmVzcG9uc2libGUgZm9yIGZy ZWUnaW5nIE1fUkVTIGJ5IGNhbGxpbmcKKysgICAgICdmcmVlYWRkcmluZm8nLiAgKi8KKysgIH5z Y29wZWRfZnJlZV9hZGRyaW5mbyAoKTsKKysKKysgIERJU0FCTEVfQ09QWV9BTkRfQVNTSUdOIChz Y29wZWRfZnJlZV9hZGRyaW5mbyk7CisrCisrcHJpdmF0ZToKKysgIC8qIFRoZSBhZGRyaW5mbyBy ZXNvdXJjZS4gICovCisrICBzdHJ1Y3QgYWRkcmluZm8gKm1fcmVzOworK307CisrCisrLyogVGhl IHN0cnVjdCB3ZSByZXR1cm4gYWZ0ZXIgcGFyc2luZyB0aGUgY29ubmVjdGlvbiBzcGVjLiAgKi8K KysKKytzdHJ1Y3QgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYworK3sKKysgIC8qIFRoZSBob3N0bmFt ZS4gICovCisrICBzdGQ6OnN0cmluZyBob3N0X3N0cjsKKysKKysgIC8qIFRoZSBwb3J0LCBpZiBh bnkuICAqLworKyAgc3RkOjpzdHJpbmcgcG9ydF9zdHI7CisrfTsKKysKKysKKysvKiBQYXJzZSBT UEVDICh3aGljaCBpcyBhIHN0cmluZyBpbiB0aGUgZm9ybSBvZiAiQUREUjpQT1JUIikgYW5kCisr ICAgcmV0dXJuIGEgJ3BhcnNlZF9jb25uZWN0aW9uX3NwZWMnIHN0cnVjdHVyZSB3aXRoIHRoZSBw cm9wZXIgZmllbGRzCisrICAgZmlsbGVkIGluLiAgQWxzbyBhZGp1c3QgSElOVCBhY2NvcmRpbmds eS4gICovCisrZXh0ZXJuIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMKKysgIHBhcnNlX2Nvbm5lY3Rp b25fc3BlY193aXRob3V0X3ByZWZpeCAoc3RkOjpzdHJpbmcgc3BlYywKKysJCQkJCXN0cnVjdCBh ZGRyaW5mbyAqaGludCk7CisrCisrLyogUGFyc2UgU1BFQyAod2hpY2ggaXMgYSBzdHJpbmcgaW4g dGhlIGZvcm0gb2YKKysgICAiW3RjcFs2XTp8dWRwWzZdOl1BRERSOlBPUlQiKSBhbmQgcmV0dXJu IGEgJ3BhcnNlZF9jb25uZWN0aW9uX3NwZWMnCisrICAgc3RydWN0dXJlIHdpdGggdGhlIHByb3Bl ciBmaWVsZHMgZmlsbGVkIGluLiAgQWxzbyBhZGp1c3QgSElOVAorKyAgIGFjY29yZGluZ2x5LiAg Ki8KKytleHRlcm4gcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBwYXJzZV9jb25uZWN0aW9uX3NwZWMg KGNvbnN0IGNoYXIgKnNwZWMsCisrCQkJCQkJICAgICBzdHJ1Y3QgYWRkcmluZm8gKmhpbnQpOwor KworKyNlbmRpZiAvKiAhIE5FVFNUVUZGX0ggKi8KK2RpZmYgLS1naXQgYS9nZGIvZG9jL0NoYW5n ZUxvZyBiL2dkYi9kb2MvQ2hhbmdlTG9nCistLS0gYS9nZGIvZG9jL0NoYW5nZUxvZworKysrIGIv Z2RiL2RvYy9DaGFuZ2VMb2cKK0BAIC0xLDMgKzEsMTEgQEAKKysyMDE4LTA3LTExICBTZXJnaW8g RHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorKwkgICAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVy Y2VycGF2QGdtYWlsLmNvbT4KKysJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNv bT4KKysKKysJKiBnZGIudGV4aW5mbyAoUmVtb3RlIENvbm5lY3Rpb24gQ29tbWFuZHMpOiBBZGQg ZXhwbGFuYXRpb24KKysJYWJvdXQgbmV3IElQdjYgc3VwcG9ydC4gIEFkZCBuZXcgY29ubmVjdGlv biBwcmVmaXhlcy4KKysKKyAyMDE4LTA3LTAyICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQG1p cHMuY29tPgorIAorIAlQUiB0ZGVwLzgyODIKK2RpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhp bmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbworLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysr IGIvZ2RiL2RvYy9nZGIudGV4aW5mbworQEAgLTIwNTQ4LDE2ICsyMDU0OCwyNyBAQCBJZiB5b3Un cmUgdXNpbmcgYSBzZXJpYWwgbGluZSwgeW91IG1heSB3YW50IHRvIGdpdmUgQHZhbHVle0dEQk59 IHRoZQorIEBjb2Rle3RhcmdldH0gY29tbWFuZC4KKyAKKyBAaXRlbSB0YXJnZXQgcmVtb3RlIEBj b2Rle0B2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXtA dmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A6 QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3RjcDpA dmFye1tob3N0XX06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A0 OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A2 OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A2 OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorIEBpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3Rl IEBjb2Rle0B2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJl bW90ZSBAY29kZXtAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAaXRlbXggdGFyZ2V0IGV4dGVu ZGVkLXJlbW90ZSBAY29kZXt0Y3A6QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJn ZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3RjcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKytA aXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A0OkB2YXJ7aG9zdH06QHZhcntw b3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A2OkB2YXJ7aG9z dH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A2 OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorIEBjaW5kZXggQGFjcm9ueW17VENQfSBwb3J0LCBA Y29kZXt0YXJnZXQgcmVtb3RlfQorIERlYnVnIHVzaW5nIGEgQGFjcm9ueW17VENQfSBjb25uZWN0 aW9uIHRvIEB2YXJ7cG9ydH0gb24gQHZhcntob3N0fS4KKy1UaGUgQHZhcntob3N0fSBtYXkgYmUg ZWl0aGVyIGEgaG9zdCBuYW1lIG9yIGEgbnVtZXJpYyBAYWNyb255bXtJUH0KKy1hZGRyZXNzOyBA dmFye3BvcnR9IG11c3QgYmUgYSBkZWNpbWFsIG51bWJlci4gIFRoZSBAdmFye2hvc3R9IGNvdWxk IGJlCistdGhlIHRhcmdldCBtYWNoaW5lIGl0c2VsZiwgaWYgaXQgaXMgZGlyZWN0bHkgY29ubmVj dGVkIHRvIHRoZSBuZXQsIG9yCistaXQgbWlnaHQgYmUgYSB0ZXJtaW5hbCBzZXJ2ZXIgd2hpY2gg aW4gdHVybiBoYXMgYSBzZXJpYWwgbGluZSB0byB0aGUKKy10YXJnZXQuCisrVGhlIEB2YXJ7aG9z dH0gbWF5IGJlIGVpdGhlciBhIGhvc3QgbmFtZSwgYSBudW1lcmljIEBhY3Jvbnlte0lQdjR9Cisr YWRkcmVzcywgb3IgYSBudW1lcmljIEBhY3Jvbnlte0lQdjZ9IGFkZHJlc3MgKHdpdGggb3Igd2l0 aG91dCB0aGUKKytzcXVhcmUgYnJhY2tldHMgdG8gc2VwYXJhdGUgdGhlIGFkZHJlc3MgZnJvbSB0 aGUgcG9ydCk7IEB2YXJ7cG9ydH0KKyttdXN0IGJlIGEgZGVjaW1hbCBudW1iZXIuICBUaGUgQHZh cntob3N0fSBjb3VsZCBiZSB0aGUgdGFyZ2V0IG1hY2hpbmUKKytpdHNlbGYsIGlmIGl0IGlzIGRp cmVjdGx5IGNvbm5lY3RlZCB0byB0aGUgbmV0LCBvciBpdCBtaWdodCBiZSBhCisrdGVybWluYWwg c2VydmVyIHdoaWNoIGluIHR1cm4gaGFzIGEgc2VyaWFsIGxpbmUgdG8gdGhlIHRhcmdldC4KKyAK KyBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0byBwb3J0IDI4Mjggb24gYSB0ZXJtaW5hbCBzZXJ2 ZXIgbmFtZWQKKyBAY29kZXttYW55ZmFybXN9OgorQEAgLTIwNTY2LDYgKzIwNTc3LDI4IEBAIEZv ciBleGFtcGxlLCB0byBjb25uZWN0IHRvIHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciBu YW1lZAorIHRhcmdldCByZW1vdGUgbWFueWZhcm1zOjI4MjgKKyBAZW5kIHNtYWxsZXhhbXBsZQor IAorK1RvIGNvbm5lY3QgdG8gcG9ydCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIHdob3NlIGFk ZHJlc3MgaXMKKytAY29kZXsyMDAxOjBkYjg6ODVhMzowMDAwOjAwMDA6OGEyZTowMzcwOjczMzR9 LCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlCisrc3F1YXJlIGJyYWNrZXQgc3ludGF4OgorKworK0Bz bWFsbGV4YW1wbGUKKyt0YXJnZXQgcmVtb3RlIFsyMDAxOjBkYjg6ODVhMzowMDAwOjAwMDA6OGEy ZTowMzcwOjczMzRdOjI4MjgKKytAZW5kIHNtYWxsZXhhbXBsZQorKworK0Bub2luZGVudAorK29y IGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgQGFjcm9ueW17SVB2Nn0gcHJvdG9jb2w6CisrCisrQHNt YWxsZXhhbXBsZQorK3RhcmdldCByZW1vdGUgdGNwNjoyMDAxOjBkYjg6ODVhMzowMDAwOjAwMDA6 OGEyZTowMzcwOjczMzQ6MjgyOAorK0BlbmQgc21hbGxleGFtcGxlCisrCisrVGhpcyBsYXN0IGV4 YW1wbGUgbWF5IGJlIGNvbmZ1c2luZyB0byB0aGUgcmVhZGVyLCBiZWNhdXNlIHRoZXJlIGlzIG5v CisrdmlzaWJsZSBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIGhvc3RuYW1lIGFuZCB0aGUgcG9ydCBu dW1iZXIuCisrVGhlcmVmb3JlLCB3ZSByZWNvbW1lbmQgdGhlIHVzZXIgdG8gcHJvdmlkZSBAYWNy b255bXtJUHY2fSBhZGRyZXNzZXMKKyt1c2luZyBzcXVhcmUgYnJhY2tldHMgZm9yIGNsYXJpdHku ICBIb3dldmVyLCBpdCBpcyBpbXBvcnRhbnQgdG8KKyttZW50aW9uIHRoYXQgZm9yIEB2YWx1ZXtH REJOfSB0aGVyZSBpcyBubyBhbWJpZ3VpdHk6IHRoZSBudW1iZXIgYWZ0ZXIKKyt0aGUgbGFzdCBj b2xvbiBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZSBwb3J0IG51bWJlci4KKysKKyBJZiB5b3VyIHJl bW90ZSB0YXJnZXQgaXMgYWN0dWFsbHkgcnVubmluZyBvbiB0aGUgc2FtZSBtYWNoaW5lIGFzIHlv dXIKKyBkZWJ1Z2dlciBzZXNzaW9uIChlLmcuQDogYSBzaW11bGF0b3IgZm9yIHlvdXIgdGFyZ2V0 IHJ1bm5pbmcgb24gdGhlCisgc2FtZSBob3N0KSwgeW91IGNhbiBvbWl0IHRoZSBob3N0bmFtZS4g IEZvciBleGFtcGxlLCB0byBjb25uZWN0IHRvCitAQCAtMjA1NzksNyArMjA2MTIsMTUgQEAgdGFy Z2V0IHJlbW90ZSA6MTIzNAorIE5vdGUgdGhhdCB0aGUgY29sb24gaXMgc3RpbGwgcmVxdWlyZWQg aGVyZS4KKyAKKyBAaXRlbSB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDpAdmFye2hvc3R9OkB2YXJ7 cG9ydH19CisrQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dWRwOkB2YXJ7W2hvc3RdfTpAdmFy e3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDQ6QHZhcntob3N0fTpAdmFy e3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDY6QHZhcntbaG9zdF19OkB2 YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwOkB2YXJ7 aG9zdH06QHZhcntwb3J0fX0KKyBAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1 ZHA6QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3Rl IEBjb2Rle3VkcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVu ZGVkLXJlbW90ZSBAY29kZXt1ZHA0OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFy Z2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytA aXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7W2hvc3RdfTpAdmFy e3BvcnR9fQorIEBjaW5kZXggQGFjcm9ueW17VURQfSBwb3J0LCBAY29kZXt0YXJnZXQgcmVtb3Rl fQorIERlYnVnIHVzaW5nIEBhY3Jvbnlte1VEUH0gcGFja2V0cyB0byBAdmFye3BvcnR9IG9uIEB2 YXJ7aG9zdH0uICBGb3IgZXhhbXBsZSwgdG8KKyBjb25uZWN0IHRvIEBhY3Jvbnlte1VEUH0gcG9y dCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkIEBjb2Rle21hbnlmYXJtc306CitkaWZm IC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxv ZworLS0tIGEvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKKysrKyBiL2dkYi9nZGJzZXJ2ZXIvQ2hh bmdlTG9nCitAQCAtMSwzICsxLDIyIEBACisrMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVu aW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KKysJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFp bC5jb20+CisrCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+CisrCisrCSog TWFrZWZpbGUuaW4gKFNGSUxFUyk6IEFkZCAnJChzcmNkaXIpL2NvbW1vbi9uZXRzdHVmZi5jJy4K KysJKE9CUyk6IEFkZCAnY29tbW9uL25ldHN0dWZmLm8nLgorKwkoR0RCUkVQTEFZX09CUyk6IExp a2V3aXNlLgorKwkqIGdkYnJlcGxheS5jOiBJbmNsdWRlICd3c3BpYXBpLmgnIGFuZCAnbmV0c3R1 ZmYuaCcuCisrCShyZW1vdGVfb3Blbik6IEltcGxlbWVudCBzdXBwb3J0IGZvciBJUHY2CisrCWNv bm5lY3Rpb25zLgorKwkqIHJlbW90ZS11dGlscy5jOiBJbmNsdWRlICduZXRzdHVmZi5oJywgJ2Zp bGVzdHVmZi5oJworKwlhbmQgJ3dzcGlhcGkuaCcuCisrCShoYW5kbGVfYWNjZXB0X2V2ZW50KTog QWNjZXB0IGNvbm5lY3Rpb25zIGZyb20gSVB2NiBzb3VyY2VzLgorKwkocmVtb3RlX3ByZXBhcmUp OiBIYW5kbGUgSVB2Ni1zdHlsZSBob3N0bmFtZXM7IGltcGxlbWVudAorKwlzdXBwb3J0IGZvciBJ UHY2IGNvbm5lY3Rpb25zLgorKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Ig cHJpbnRpbmcgY29ubmVjdGlvbnMgZnJvbQorKwlJUHY2IHNvdXJjZXMuCisrCisgMjAxOC0wNy0x MSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKyAKKyAJUFIgZ2RiLzIzMzc3Citk aWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbiBiL2dkYi9nZGJzZXJ2ZXIvTWFr ZWZpbGUuaW4KKy0tLSBhL2dkYi9nZGJzZXJ2ZXIvTWFrZWZpbGUuaW4KKysrKyBiL2dkYi9nZGJz ZXJ2ZXIvTWFrZWZpbGUuaW4KK0BAIC0yMTEsNiArMjExLDcgQEAgU0ZJTEVTID0gXAorIAkkKHNy Y2RpcikvY29tbW9uL2pvYi1jb250cm9sLmMgXAorIAkkKHNyY2RpcikvY29tbW9uL2dkYl90aWxk ZV9leHBhbmQuYyBcCisgCSQoc3JjZGlyKS9jb21tb24vZ2RiX3ZlY3MuYyBcCisrCSQoc3JjZGly KS9jb21tb24vbmV0c3R1ZmYuYyBcCisgCSQoc3JjZGlyKS9jb21tb24vbmV3LW9wLmMgXAorIAkk KHNyY2RpcikvY29tbW9uL3BhdGhzdHVmZi5jIFwKKyAJJChzcmNkaXIpL2NvbW1vbi9wcmludC11 dGlscy5jIFwKK0BAIC0yNTQsNiArMjU1LDcgQEAgT0JTID0gXAorIAljb21tb24vZm9ybWF0Lm8g XAorIAljb21tb24vZ2RiX3RpbGRlX2V4cGFuZC5vIFwKKyAJY29tbW9uL2dkYl92ZWNzLm8gXAor Kwljb21tb24vbmV0c3R1ZmYubyBcCisgCWNvbW1vbi9uZXctb3AubyBcCisgCWNvbW1vbi9wYXRo c3R1ZmYubyBcCisgCWNvbW1vbi9wcmludC11dGlscy5vIFwKK0BAIC0yOTAsNiArMjkyLDcgQEAg R0RCUkVQTEFZX09CUyA9IFwKKyAJY29tbW9uL2NvbW1vbi1leGNlcHRpb25zLm8gXAorIAljb21t b24vY29tbW9uLXV0aWxzLm8gXAorIAljb21tb24vZXJyb3JzLm8gXAorKwljb21tb24vbmV0c3R1 ZmYubyBcCisgCWNvbW1vbi9wcmludC11dGlscy5vIFwKKyAJZ2RicmVwbGF5Lm8gXAorIAl1dGls cy5vIFwKK2RpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL2dkYnJlcGxheS5jIGIvZ2RiL2dkYnNl cnZlci9nZGJyZXBsYXkuYworLS0tIGEvZ2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYworKysrIGIv Z2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYworQEAgLTQ2LDggKzQ2LDExIEBACisgCisgI2lmIFVT RV9XSU4zMkFQSQorICNpbmNsdWRlIDx3aW5zb2NrMi5oPgorKyNpbmNsdWRlIDx3c3BpYXBpLmg+ CisgI2VuZGlmCisgCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisrCisgI2lmbmRlZiBIQVZFX1NP Q0tMRU5fVAorIHR5cGVkZWYgaW50IHNvY2tsZW5fdDsKKyAjZW5kaWYKK0BAIC0xNDIsNTYgKzE0 NSwxMDggQEAgcmVtb3RlX2Nsb3NlICh2b2lkKQorIHN0YXRpYyB2b2lkCisgcmVtb3RlX29wZW4g KGNoYXIgKm5hbWUpCisgeworLSAgaWYgKCFzdHJjaHIgKG5hbWUsICc6JykpCisrICBjaGFyICps YXN0X2NvbG9uID0gc3RycmNociAobmFtZSwgJzonKTsKKysKKysgIGlmIChsYXN0X2NvbG9uID09 IE5VTEwpCisgICAgIHsKKyAgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczogTXVzdCBzcGVjaWZ5 IHRjcCBjb25uZWN0aW9uIGFzIGhvc3Q6YWRkclxuIiwgbmFtZSk7CisgICAgICAgZmZsdXNoIChz dGRlcnIpOworICAgICAgIGV4aXQgKDEpOworICAgICB9CistICBlbHNlCistICAgIHsKKysKKyAj aWZkZWYgVVNFX1dJTjMyQVBJCistICAgICAgc3RhdGljIGludCB3aW5zb2NrX2luaXRpYWxpemVk OworKyAgc3RhdGljIGludCB3aW5zb2NrX2luaXRpYWxpemVkOworICNlbmRpZgorLSAgICAgIGNo YXIgKnBvcnRfc3RyOworLSAgICAgIGludCBwb3J0OworLSAgICAgIHN0cnVjdCBzb2NrYWRkcl9p biBzb2NrYWRkcjsKKy0gICAgICBzb2NrbGVuX3QgdG1wOworLSAgICAgIGludCB0bXBfZGVzYzsK KysgIGNoYXIgKnBvcnRfc3RyOworKyAgaW50IHRtcDsKKysgIGludCB0bXBfZGVzYzsKKysgIHN0 cnVjdCBhZGRyaW5mbyBoaW50OworKyAgc3RydWN0IGFkZHJpbmZvICphaW5mbzsKKyAKKy0gICAg ICBwb3J0X3N0ciA9IHN0cmNociAobmFtZSwgJzonKTsKKysgIG1lbXNldCAoJmhpbnQsIDAsIHNp emVvZiAoaGludCkpOworKyAgLyogQXNzdW1lIG5vIHByZWZpeCB3aWxsIGJlIHBhc3NlZCwgdGhl cmVmb3JlIHdlIHNob3VsZCB1c2UKKysgICAgIEFGX1VOU1BFQy4gICovCisrICBoaW50LmFpX2Zh bWlseSA9IEFGX1VOU1BFQzsKKysgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NLX1NUUkVBTTsKKysg IGhpbnQuYWlfcHJvdG9jb2wgPSBJUFBST1RPX1RDUDsKKyAKKy0gICAgICBwb3J0ID0gYXRvaSAo cG9ydF9zdHIgKyAxKTsKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcGFyc2VkID0gcGFyc2Vf Y29ubmVjdGlvbl9zcGVjIChuYW1lLCAmaGludCk7CisrCisrICBpZiAocGFyc2VkLnBvcnRfc3Ry LmVtcHR5ICgpKQorKyAgICBlcnJvciAoXygiTWlzc2luZyBwb3J0IG9uIGhvc3RuYW1lICclcyci KSwgbmFtZSk7CisgCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorLSAgICAgIGlmICghd2luc29ja19p bml0aWFsaXplZCkKKy0JeworLQkgIFdTQURBVEEgd3NhZDsKKysgIGlmICghd2luc29ja19pbml0 aWFsaXplZCkKKysgICAgeworKyAgICAgIFdTQURBVEEgd3NhZDsKKyAKKy0JICBXU0FTdGFydHVw IChNQUtFV09SRCAoMSwgMCksICZ3c2FkKTsKKy0JICB3aW5zb2NrX2luaXRpYWxpemVkID0gMTsK Ky0JfQorKyAgICAgIFdTQVN0YXJ0dXAgKE1BS0VXT1JEICgxLCAwKSwgJndzYWQpOworKyAgICAg IHdpbnNvY2tfaW5pdGlhbGl6ZWQgPSAxOworKyAgICB9CisgI2VuZGlmCisgCistICAgICAgdG1w X2Rlc2MgPSBzb2NrZXQgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKy0gICAgICBpZiAodG1w X2Rlc2MgPT0gLTEpCistCXBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBvcGVuIHNvY2tldCIpOwor KyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQu cG9ydF9zdHIuY19zdHIgKCksCisrCQkgICAgICAgJmhpbnQsICZhaW5mbyk7CisgCistICAgICAg LyogQWxsb3cgcmFwaWQgcmV1c2Ugb2YgdGhpcyBwb3J0LiAqLworLSAgICAgIHRtcCA9IDE7Cist ICAgICAgc2V0c29ja29wdCAodG1wX2Rlc2MsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNo YXIgKikgJnRtcCwKKy0JCSAgc2l6ZW9mICh0bXApKTsKKysgIGlmIChyICE9IDApCisrICAgIHsK KysgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczolczogY2Fubm90IHJlc29sdmUgbmFtZTogJXNc biIsCisrCSAgICAgICBwYXJzZWQuaG9zdF9zdHIuY19zdHIgKCksIHBhcnNlZC5wb3J0X3N0ci5j X3N0ciAoKSwKKysJICAgICAgIGdhaV9zdHJlcnJvciAocikpOworKyAgICAgIGZmbHVzaCAoc3Rk ZXJyKTsKKysgICAgICBleGl0ICgxKTsKKysgICAgfQorKworKyAgc2NvcGVkX2ZyZWVfYWRkcmlu Zm8gZnJlZV9haW5mbyAoYWluZm8pOworKworKyAgc3RydWN0IGFkZHJpbmZvICpwOworKworKyAg Zm9yIChwID0gYWluZm87IHAgIT0gTlVMTDsgcCA9IHAtPmFpX25leHQpCisrICAgIHsKKysgICAg ICB0bXBfZGVzYyA9IHNvY2tldCAocC0+YWlfZmFtaWx5LCBwLT5haV9zb2NrdHlwZSwgcC0+YWlf cHJvdG9jb2wpOworIAorLSAgICAgIHNvY2thZGRyLnNpbl9mYW1pbHkgPSBQRl9JTkVUOworLSAg ICAgIHNvY2thZGRyLnNpbl9wb3J0ID0gaHRvbnMgKHBvcnQpOworLSAgICAgIHNvY2thZGRyLnNp bl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7CisrICAgICAgaWYgKHRtcF9kZXNjID49IDApCisr CWJyZWFrOworKyAgICB9CisrCisrICBpZiAocCA9PSBOVUxMKQorKyAgICBwZXJyb3Jfd2l0aF9u YW1lICgiQ2Fubm90IG9wZW4gc29ja2V0Iik7CisgCistICAgICAgaWYgKGJpbmQgKHRtcF9kZXNj LCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgc2l6ZW9mIChzb2NrYWRkcikpCistCSAg fHwgbGlzdGVuICh0bXBfZGVzYywgMSkpCistCXBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBiaW5k IGFkZHJlc3MiKTsKKysgIC8qIEFsbG93IHJhcGlkIHJldXNlIG9mIHRoaXMgcG9ydC4gKi8KKysg IHRtcCA9IDE7CisrICBzZXRzb2Nrb3B0ICh0bXBfZGVzYywgU09MX1NPQ0tFVCwgU09fUkVVU0VB RERSLCAoY2hhciAqKSAmdG1wLAorKwkgICAgICBzaXplb2YgKHRtcCkpOworKworKyAgc3dpdGNo IChwLT5haV9mYW1pbHkpCisrICAgIHsKKysgICAgY2FzZSBBRl9JTkVUOgorKyAgICAgICgoc3Ry dWN0IHNvY2thZGRyX2luICopIHAtPmFpX2FkZHIpLT5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJf QU5ZOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEFGX0lORVQ2OgorKyAgICAgICgoc3RydWN0 IHNvY2thZGRyX2luNiAqKSBwLT5haV9hZGRyKS0+c2luNl9hZGRyID0gaW42YWRkcl9hbnk7Cisr ICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiSW52 YWxpZCAnYWlfZmFtaWx5JyAlZFxuIiwgcC0+YWlfZmFtaWx5KTsKKysgICAgICBleGl0ICgxKTsK KysgICAgfQorKworKyAgaWYgKGJpbmQgKHRtcF9kZXNjLCBwLT5haV9hZGRyLCBwLT5haV9hZGRy bGVuKSAhPSAwKQorKyAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7 CisrCisrICBpZiAocC0+YWlfc29ja3R5cGUgPT0gU09DS19ER1JBTSkKKysgICAgcmVtb3RlX2Rl c2MgPSB0bXBfZGVzYzsKKysgIGVsc2UKKysgICAgeworKyAgICAgIHN0cnVjdCBzb2NrYWRkcl9z dG9yYWdlIHNvY2thZGRyOworKyAgICAgIHNvY2tsZW5fdCBzb2NrYWRkcnNpemUgPSBzaXplb2Yg KHNvY2thZGRyKTsKKysgICAgICBjaGFyIG9yaWdfaG9zdFtHREJfTklfTUFYX0FERFJdLCBvcmln X3BvcnRbR0RCX05JX01BWF9QT1JUXTsKKysKKysgICAgICBpZiAobGlzdGVuICh0bXBfZGVzYywg MSkgIT0gMCkKKysJcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGxpc3RlbiBvbiBzb2NrZXQiKTsK KysKKysgICAgICByZW1vdGVfZGVzYyA9IGFjY2VwdCAodG1wX2Rlc2MsIChzdHJ1Y3Qgc29ja2Fk ZHIgKikgJnNvY2thZGRyLAorKwkJCSAgICAmc29ja2FkZHJzaXplKTsKKyAKKy0gICAgICB0bXAg PSBzaXplb2YgKHNvY2thZGRyKTsKKy0gICAgICByZW1vdGVfZGVzYyA9IGFjY2VwdCAodG1wX2Rl c2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmdG1wKTsKKyAgICAgICBpZiAocmVt b3RlX2Rlc2MgPT0gLTEpCisgCXBlcnJvcl93aXRoX25hbWUgKCJBY2NlcHQgZmFpbGVkIik7Cisg CitAQCAtMjA2LDYgKzI2MSwxNiBAQCByZW1vdGVfb3BlbiAoY2hhciAqbmFtZSkKKyAgICAgICBz ZXRzb2Nrb3B0IChyZW1vdGVfZGVzYywgSVBQUk9UT19UQ1AsIFRDUF9OT0RFTEFZLAorIAkJICAo Y2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOworIAorKyAgICAgIGlmIChnZXRuYW1laW5mbyAo KHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNvY2thZGRyc2l6ZSwKKysJCSAgICAgICBv cmlnX2hvc3QsIHNpemVvZiAob3JpZ19ob3N0KSwKKysJCSAgICAgICBvcmlnX3BvcnQsIHNpemVv ZiAob3JpZ19wb3J0KSwKKysJCSAgICAgICBOSV9OVU1FUklDSE9TVCB8IE5JX05VTUVSSUNTRVJW KSA9PSAwKQorKwl7CisrCSAgZnByaW50ZiAoc3RkZXJyLCAiUmVtb3RlIGRlYnVnZ2luZyBmcm9t IGhvc3QgJXMsIHBvcnQgJXNcbiIsCisrCQkgICBvcmlnX2hvc3QsIG9yaWdfcG9ydCk7CisrCSAg ZmZsdXNoIChzdGRlcnIpOworKwl9CisrCisgI2lmbmRlZiBVU0VfV0lOMzJBUEkKKyAgICAgICBj bG9zZSAodG1wX2Rlc2MpOwkJLyogTm8gbG9uZ2VyIG5lZWQgdGhpcyAqLworIAorZGlmZiAtLWdp dCBhL2dkYi9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMgYi9nZGIvZ2Ric2VydmVyL3JlbW90ZS11 dGlscy5jCistLS0gYS9nZGIvZ2Ric2VydmVyL3JlbW90ZS11dGlscy5jCisrKysgYi9nZGIvZ2Ri c2VydmVyL3JlbW90ZS11dGlscy5jCitAQCAtMjYsNiArMjYsOCBAQAorICNpbmNsdWRlICJkbGwu aCIKKyAjaW5jbHVkZSAicnNwLWxvdy5oIgorICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKKysjaW5j bHVkZSAibmV0c3R1ZmYuaCIKKysjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCisgI2luY2x1ZGUgPGN0 eXBlLmg+CisgI2lmIEhBVkVfU1lTX0lPQ1RMX0gKKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CitA QCAtNjMsNiArNjUsNyBAQAorIAorICNpZiBVU0VfV0lOMzJBUEkKKyAjaW5jbHVkZSA8d2luc29j azIuaD4KKysjaW5jbHVkZSA8d3NwaWFwaS5oPgorICNlbmRpZgorIAorICNpZiBfX1FOWF9fCitA QCAtMTUxLDE5ICsxNTQsMTggQEAgZW5hYmxlX2FzeW5jX25vdGlmaWNhdGlvbiAoaW50IGZkKQor IHN0YXRpYyBpbnQKKyBoYW5kbGVfYWNjZXB0X2V2ZW50IChpbnQgZXJyLCBnZGJfY2xpZW50X2Rh dGEgY2xpZW50X2RhdGEpCisgeworLSAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOworLSAg c29ja2xlbl90IHRtcDsKKysgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIHNvY2thZGRyOworKyAg c29ja2xlbl90IGxlbiA9IHNpemVvZiAoc29ja2FkZHIpOworIAorICAgaWYgKGRlYnVnX3RocmVh ZHMpCisgICAgIGRlYnVnX3ByaW50ZiAoImhhbmRsaW5nIHBvc3NpYmxlIGFjY2VwdCBldmVudFxu Iik7CisgCistICB0bXAgPSBzaXplb2YgKHNvY2thZGRyKTsKKy0gIHJlbW90ZV9kZXNjID0gYWNj ZXB0IChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZ0bXApOwor KyAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKGxpc3Rlbl9kZXNjLCAoc3RydWN0IHNvY2thZGRyICop ICZzb2NrYWRkciwgJmxlbik7CisgICBpZiAocmVtb3RlX2Rlc2MgPT0gLTEpCisgICAgIHBlcnJv cl93aXRoX25hbWUgKCJBY2NlcHQgZmFpbGVkIik7CisgCisgICAvKiBFbmFibGUgVENQIGtlZXAg YWxpdmUgcHJvY2Vzcy4gKi8KKy0gIHRtcCA9IDE7CisrICBzb2NrbGVuX3QgdG1wID0gMTsKKyAg IHNldHNvY2tvcHQgKHJlbW90ZV9kZXNjLCBTT0xfU09DS0VULCBTT19LRUVQQUxJVkUsCisgCSAg ICAgIChjaGFyICopICZ0bXAsIHNpemVvZiAodG1wKSk7CisgCitAQCAtMTkyLDggKzE5NCwxOSBA QCBoYW5kbGVfYWNjZXB0X2V2ZW50IChpbnQgZXJyLCBnZGJfY2xpZW50X2RhdGEgY2xpZW50X2Rh dGEpCisgICBkZWxldGVfZmlsZV9oYW5kbGVyIChsaXN0ZW5fZGVzYyk7CisgCisgICAvKiBDb252 ZXJ0IElQIGFkZHJlc3MgdG8gc3RyaW5nLiAgKi8KKy0gIGZwcmludGYgKHN0ZGVyciwgIlJlbW90 ZSBkZWJ1Z2dpbmcgZnJvbSBob3N0ICVzXG4iLAorLQkgICBpbmV0X250b2EgKHNvY2thZGRyLnNp bl9hZGRyKSk7CisrICBjaGFyIG9yaWdfaG9zdFtHREJfTklfTUFYX0FERFJdLCBvcmlnX3BvcnRb R0RCX05JX01BWF9QT1JUXTsKKysKKysgIGludCByID0gZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29j a2FkZHIgKikgJnNvY2thZGRyLCBsZW4sCisrCQkgICAgICAgb3JpZ19ob3N0LCBzaXplb2YgKG9y aWdfaG9zdCksCisrCQkgICAgICAgb3JpZ19wb3J0LCBzaXplb2YgKG9yaWdfcG9ydCksCisrCQkg ICAgICAgTklfTlVNRVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VSVik7CisrCisrICBpZiAociAhPSAw KQorKyAgICBmcHJpbnRmIChzdGRlcnIsIF8oIkNvdWxkIG5vdCBvYnRhaW4gcmVtb3RlIGFkZHJl c3M6ICVzXG4iKSwKKysJICAgICBnYWlfc3RyZXJyb3IgKHIpKTsKKysgIGVsc2UKKysgICAgZnBy aW50ZiAoc3RkZXJyLCBfKCJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9zdCAlcywgcG9ydCAlc1xu IiksCisrCSAgICAgb3JpZ19ob3N0LCBvcmlnX3BvcnQpOworIAorICAgZW5hYmxlX2FzeW5jX25v dGlmaWNhdGlvbiAocmVtb3RlX2Rlc2MpOworIAorQEAgLTIyMiwxMCArMjM1LDcgQEAgcmVtb3Rl X3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorICAgc3Rh dGljIGludCB3aW5zb2NrX2luaXRpYWxpemVkOworICNlbmRpZgorLSAgaW50IHBvcnQ7CistICBz dHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7CisgICBzb2NrbGVuX3QgdG1wOworLSAgY2hhciAq cG9ydF9lbmQ7CisgCisgICByZW1vdGVfaXNfc3RkaW8gPSAwOworICAgaWYgKHN0cmNtcCAobmFt ZSwgU1RESU9fQ09OTkVDVElPTl9OQU1FKSA9PSAwKQorQEAgLTIzOCwxNyArMjQ4LDI1IEBAIHJl bW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQorICAgICAgIHJldHVybjsKKyAgICAgfQor IAorLSAgcG9ydF9zdHIgPSBzdHJjaHIgKG5hbWUsICc6Jyk7CistICBpZiAocG9ydF9zdHIgPT0g TlVMTCkKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50OworKyAgc3RydWN0IGFkZHJpbmZvICphaW5m bzsKKysKKysgIG1lbXNldCAoJmhpbnQsIDAsIHNpemVvZiAoaGludCkpOworKyAgLyogQXNzdW1l IG5vIHByZWZpeCB3aWxsIGJlIHBhc3NlZCwgdGhlcmVmb3JlIHdlIHNob3VsZCB1c2UKKysgICAg IEFGX1VOU1BFQy4gICovCisrICBoaW50LmFpX2ZhbWlseSA9IEFGX1VOU1BFQzsKKysgIGhpbnQu YWlfc29ja3R5cGUgPSBTT0NLX1NUUkVBTTsKKysgIGhpbnQuYWlfcHJvdG9jb2wgPSBJUFBST1RP X1RDUDsKKysKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcGFyc2VkCisrICAgID0gcGFyc2Vf Y29ubmVjdGlvbl9zcGVjX3dpdGhvdXRfcHJlZml4IChuYW1lLCAmaGludCk7CisrCisrICBpZiAo cGFyc2VkLnBvcnRfc3RyLmVtcHR5ICgpKQorICAgICB7CisgICAgICAgY3MudHJhbnNwb3J0X2lz X3JlbGlhYmxlID0gMDsKKyAgICAgICByZXR1cm47CisgICAgIH0KKyAKKy0gIHBvcnQgPSBzdHJ0 b3VsIChwb3J0X3N0ciArIDEsICZwb3J0X2VuZCwgMTApOworLSAgaWYgKHBvcnRfc3RyWzFdID09 ICdcMCcgfHwgKnBvcnRfZW5kICE9ICdcMCcpCistICAgIGVycm9yICgiQmFkIHBvcnQgYXJndW1l bnQ6ICVzIiwgbmFtZSk7CistCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorICAgaWYgKCF3aW5zb2Nr X2luaXRpYWxpemVkKQorICAgICB7CitAQCAtMjU5LDggKzI3NywyNiBAQCByZW1vdGVfcHJlcGFy ZSAoY29uc3QgY2hhciAqbmFtZSkKKyAgICAgfQorICNlbmRpZgorIAorLSAgbGlzdGVuX2Rlc2Mg PSBzb2NrZXQgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCk7CistICBpZiAobGlz dGVuX2Rlc2MgPT0gLTEpCisrICBpbnQgciA9IGdldGFkZHJpbmZvIChwYXJzZWQuaG9zdF9zdHIu Y19zdHIgKCksIHBhcnNlZC5wb3J0X3N0ci5jX3N0ciAoKSwKKysJCSAgICAgICAmaGludCwgJmFp bmZvKTsKKysKKysgIGlmIChyICE9IDApCisrICAgIGVycm9yIChfKCIlczogY2Fubm90IHJlc29s dmUgbmFtZTogJXMiKSwgbmFtZSwgZ2FpX3N0cmVycm9yIChyKSk7CisrCisrICBzY29wZWRfZnJl ZV9hZGRyaW5mbyBmcmVlYWRkcmluZm8gKGFpbmZvKTsKKysKKysgIHN0cnVjdCBhZGRyaW5mbyAq aXRlcjsKKysKKysgIGZvciAoaXRlciA9IGFpbmZvOyBpdGVyICE9IE5VTEw7IGl0ZXIgPSBpdGVy LT5haV9uZXh0KQorKyAgICB7CisrICAgICAgbGlzdGVuX2Rlc2MgPSBnZGJfc29ja2V0X2Nsb2V4 ZWMgKGl0ZXItPmFpX2ZhbWlseSwgaXRlci0+YWlfc29ja3R5cGUsCisrCQkJCQlpdGVyLT5haV9w cm90b2NvbCk7CisrCisrICAgICAgaWYgKGxpc3Rlbl9kZXNjID49IDApCisrCWJyZWFrOworKyAg ICB9CisrCisrICBpZiAoaXRlciA9PSBOVUxMKQorICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2Fu J3Qgb3BlbiBzb2NrZXQiKTsKKyAKKyAgIC8qIEFsbG93IHJhcGlkIHJldXNlIG9mIHRoaXMgcG9y dC4gKi8KK0BAIC0yNjgsMTQgKzMwNCwyNSBAQCByZW1vdGVfcHJlcGFyZSAoY29uc3QgY2hhciAq bmFtZSkKKyAgIHNldHNvY2tvcHQgKGxpc3Rlbl9kZXNjLCBTT0xfU09DS0VULCBTT19SRVVTRUFE RFIsIChjaGFyICopICZ0bXAsCisgCSAgICAgIHNpemVvZiAodG1wKSk7CisgCistICBzb2NrYWRk ci5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKKy0gIHNvY2thZGRyLnNpbl9wb3J0ID0gaHRvbnMgKHBv cnQpOworLSAgc29ja2FkZHIuc2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKKysgIHN3aXRj aCAoaXRlci0+YWlfZmFtaWx5KQorKyAgICB7CisrICAgIGNhc2UgQUZfSU5FVDoKKysgICAgICAo KHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBpdGVyLT5haV9hZGRyKS0+c2luX2FkZHIuc19hZGRyID0g SU5BRERSX0FOWTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBBRl9JTkVUNjoKKysgICAgICAo KHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgaXRlci0+YWlfYWRkciktPnNpbjZfYWRkciA9IGluNmFk ZHJfYW55OworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGludGVybmFsX2Vy cm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisrCQkgICAgICBfKCJJbnZhbGlkICdhaV9mYW1pbHkn ICVkXG4iKSwgaXRlci0+YWlfZmFtaWx5KTsKKysgICAgfQorIAorLSAgaWYgKGJpbmQgKGxpc3Rl bl9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgc2l6ZW9mIChzb2NrYWRkcikp CistICAgICAgfHwgbGlzdGVuIChsaXN0ZW5fZGVzYywgMSkpCisrICBpZiAoYmluZCAobGlzdGVu X2Rlc2MsIGl0ZXItPmFpX2FkZHIsIGl0ZXItPmFpX2FkZHJsZW4pICE9IDApCisgICAgIHBlcnJv cl93aXRoX25hbWUgKCJDYW4ndCBiaW5kIGFkZHJlc3MiKTsKKyAKKysgIGlmIChsaXN0ZW4gKGxp c3Rlbl9kZXNjLCAxKSAhPSAwKQorKyAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgbGlzdGVu IG9uIHNvY2tldCIpOworKworICAgY3MudHJhbnNwb3J0X2lzX3JlbGlhYmxlID0gMTsKKyB9Cisg CitAQCAtMzUwLDE4ICszOTcsMjQgQEAgcmVtb3RlX29wZW4gKGNvbnN0IGNoYXIgKm5hbWUpCisg I2VuZGlmIC8qIFVTRV9XSU4zMkFQSSAqLworICAgZWxzZQorICAgICB7CistICAgICAgaW50IHBv cnQ7CistICAgICAgc29ja2xlbl90IGxlbjsKKy0gICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29j a2FkZHI7CistCistICAgICAgbGVuID0gc2l6ZW9mIChzb2NrYWRkcik7CistICAgICAgaWYgKGdl dHNvY2tuYW1lIChsaXN0ZW5fZGVzYywKKy0JCSAgICAgICAoc3RydWN0IHNvY2thZGRyICopICZz b2NrYWRkciwgJmxlbikgPCAwCistCSAgfHwgbGVuIDwgc2l6ZW9mIChzb2NrYWRkcikpCisrICAg ICAgY2hhciBsaXN0ZW5fcG9ydFtHREJfTklfTUFYX1BPUlRdOworKyAgICAgIHN0cnVjdCBzb2Nr YWRkcl9zdG9yYWdlIHNvY2thZGRyOworKyAgICAgIHNvY2tsZW5fdCBsZW4gPSBzaXplb2YgKHNv Y2thZGRyKTsKKysKKysgICAgICBpZiAoZ2V0c29ja25hbWUgKGxpc3Rlbl9kZXNjLCAoc3RydWN0 IHNvY2thZGRyICopICZzb2NrYWRkciwgJmxlbikgPCAwKQorIAlwZXJyb3Jfd2l0aF9uYW1lICgi Q2FuJ3QgZGV0ZXJtaW5lIHBvcnQiKTsKKy0gICAgICBwb3J0ID0gbnRvaHMgKHNvY2thZGRyLnNp bl9wb3J0KTsKKyAKKy0gICAgICBmcHJpbnRmIChzdGRlcnIsICJMaXN0ZW5pbmcgb24gcG9ydCAl ZFxuIiwgcG9ydCk7CisrICAgICAgaW50IHIgPSBnZXRuYW1laW5mbyAoKHN0cnVjdCBzb2NrYWRk ciAqKSAmc29ja2FkZHIsIGxlbiwKKysJCQkgICBOVUxMLCAwLAorKwkJCSAgIGxpc3Rlbl9wb3J0 LCBzaXplb2YgKGxpc3Rlbl9wb3J0KSwKKysJCQkgICBOSV9OVU1FUklDU0VSVik7CisrCisrICAg ICAgaWYgKHIgIT0gMCkKKysJZnByaW50ZiAoc3RkZXJyLCBfKCJDYW4ndCBvYnRhaW4gcG9ydCB3 aGVyZSB3ZSBhcmUgbGlzdGVuaW5nOiAlcyIpLAorKwkJIGdhaV9zdHJlcnJvciAocikpOworKyAg ICAgIGVsc2UKKysJZnByaW50ZiAoc3RkZXJyLCBfKCJMaXN0ZW5pbmcgb24gcG9ydCAlc1xuIiks IGxpc3Rlbl9wb3J0KTsKKysKKyAgICAgICBmZmx1c2ggKHN0ZGVycik7CisgCisgICAgICAgLyog UmVnaXN0ZXIgdGhlIGV2ZW50IGxvb3AgaGFuZGxlci4gICovCitkaWZmIC0tZ2l0IGEvZ2RiL3Nl ci10Y3AuYyBiL2dkYi9zZXItdGNwLmMKKy0tLSBhL2dkYi9zZXItdGNwLmMKKysrKyBiL2dkYi9z ZXItdGNwLmMKK0BAIC0yNSw2ICsyNSw3IEBACisgI2luY2x1ZGUgImNsaS9jbGktZGVjb2RlLmgi CisgI2luY2x1ZGUgImNsaS9jbGktc2V0c2hvdy5oIgorICNpbmNsdWRlICJmaWxlc3R1ZmYuaCIK KysjaW5jbHVkZSAibmV0c3R1ZmYuaCIKKyAKKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgCitA QCAtMzksNiArNDAsNyBAQAorIAorICNpZmRlZiBVU0VfV0lOMzJBUEkKKyAjaW5jbHVkZSA8d2lu c29jazIuaD4KKysjaW5jbHVkZSA8d3NwaWFwaS5oPgorICNpZm5kZWYgRVRJTUVET1VUCisgI2Rl ZmluZSBFVElNRURPVVQgV1NBRVRJTUVET1VUCisgI2VuZGlmCitAQCAtODEsMTIgKzgzLDEzIEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgdGNwX3JldHJ5X2xpbWl0ID0gMTU7CisgCisgI2RlZmluZSBQ T0xMX0lOVEVSVkFMIDUKKyAKKy0vKiBIZWxwZXIgZnVuY3Rpb24gdG8gd2FpdCBhIHdoaWxlLiAg SWYgU0NCIGlzIG5vbi1udWxsLCB3YWl0IG9uIGl0cworLSAgIGZpbGUgZGVzY3JpcHRvci4gIE90 aGVyd2lzZSBqdXN0IHdhaXQgb24gYSB0aW1lb3V0LCB1cGRhdGluZyAqUE9MTFMuCistICAgUmV0 dXJucyAtMSBvbiB0aW1lb3V0IG9yIGludGVycnVwdCwgb3RoZXJ3aXNlIHRoZSB2YWx1ZSBvZiBz ZWxlY3QuICAqLworKy8qIEhlbHBlciBmdW5jdGlvbiB0byB3YWl0IGEgd2hpbGUuICBJZiBTT0NL IGlzIG5vdCAtMSwgd2FpdCBvbiBpdHMKKysgICBmaWxlIGRlc2NyaXB0b3IuICBPdGhlcndpc2Ug anVzdCB3YWl0IG9uIGEgdGltZW91dCwgdXBkYXRpbmcKKysgICAqUE9MTFMuICBSZXR1cm5zIC0x IG9uIHRpbWVvdXQgb3IgaW50ZXJydXB0LCBvdGhlcndpc2UgdGhlIHZhbHVlIG9mCisrICAgc2Vs ZWN0LiAgKi8KKyAKKyBzdGF0aWMgaW50Cistd2FpdF9mb3JfY29ubmVjdCAoc3RydWN0IHNlcmlh bCAqc2NiLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQorK3dhaXRfZm9yX2Nvbm5lY3QgKGludCBzb2Nr LCB1bnNpZ25lZCBpbnQgKnBvbGxzKQorIHsKKyAgIHN0cnVjdCB0aW1ldmFsIHQ7CisgICBpbnQg bjsKK0BAIC0xMjAsMjQgKzEyMywyNCBAQCB3YWl0X2Zvcl9jb25uZWN0IChzdHJ1Y3Qgc2VyaWFs ICpzY2IsIHVuc2lnbmVkIGludCAqcG9sbHMpCisgICAgICAgdC50dl91c2VjID0gMDsKKyAgICAg fQorIAorLSAgaWYgKHNjYikKKysgIGlmIChzb2NrID49IDApCisgICAgIHsKKyAgICAgICBmZF9z ZXQgcnNldCwgd3NldCwgZXNldDsKKyAKKyAgICAgICBGRF9aRVJPICgmcnNldCk7CistICAgICAg RkRfU0VUIChzY2ItPmZkLCAmcnNldCk7CisrICAgICAgRkRfU0VUIChzb2NrLCAmcnNldCk7Cisg ICAgICAgd3NldCA9IHJzZXQ7CisgICAgICAgZXNldCA9IHJzZXQ7CistCSAgCisrCisgICAgICAg LyogUE9TSVggc3lzdGVtcyByZXR1cm4gY29ubmVjdGlvbiBzdWNjZXNzIG9yIGZhaWx1cmUgYnkg c2lnbmFsbGluZworIAkgd3NldC4gIFdpbmRvd3Mgc3lzdGVtcyByZXR1cm4gc3VjY2VzcyBpbiB3 c2V0IGFuZCBmYWlsdXJlIGluCisgCSBlc2V0LgorLSAgICAgCisrCisgCSBXZSBtdXN0IGNhbGwg c2VsZWN0IGhlcmUsIHJhdGhlciB0aGFuIGdkYl9zZWxlY3QsIGJlY2F1c2UKKyAJIHRoZSBzZXJp YWwgc3RydWN0dXJlIGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQgLSB0aGUKKyAJIE1pbkdX IHNlbGVjdCB3cmFwcGVyIHdpbGwgbm90IGtub3cgdGhhdCB0aGlzIEZEIHJlZmVycworIAkgdG8g YSBzb2NrZXQuICAqLworLSAgICAgIG4gPSBzZWxlY3QgKHNjYi0+ZmQgKyAxLCAmcnNldCwgJndz ZXQsICZlc2V0LCAmdCk7CisrICAgICAgbiA9IHNlbGVjdCAoc29jayArIDEsICZyc2V0LCAmd3Nl dCwgJmVzZXQsICZ0KTsKKyAgICAgfQorICAgZWxzZQorICAgICAvKiBVc2UgZ2RiX3NlbGVjdCBo ZXJlLCBzaW5jZSB3ZSBoYXZlIG5vIGZpbGUgZGVzY3JpcHRvcnMsIGFuZCBvbgorQEAgLTE1Myw4 MCArMTU2LDI4IEBAIHdhaXRfZm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwgKnNjYiwgdW5zaWdu ZWQgaW50ICpwb2xscykKKyAgIHJldHVybiBuOworIH0KKyAKKy0vKiBPcGVuIGEgdGNwIHNvY2tl dC4gICovCisrLyogVHJ5IHRvIGNvbm5lY3QgdG8gdGhlIGhvc3QgcmVwcmVzZW50ZWQgYnkgQUlO Rk8uICBJZiB0aGUgY29ubmVjdGlvbgorKyAgIHN1Y2NlZWRzLCByZXR1cm4gaXRzIHNvY2tldC4g IE90aGVyd2lzZSwgcmV0dXJuIC0xIGFuZCBzZXQgRVJSTk8KKysgICBhY2NvcmRpbmdseS4gIFBP TExTIGlzIHVzZWQgd2hlbiAnY29ubmVjdCcgcmV0dXJucyBFSU5QUk9HUkVTUywgYW5kCisrICAg d2UgbmVlZCB0byBpbnZva2UgJ3dhaXRfZm9yX2Nvbm5lY3QnIHRvIG9idGFpbiB0aGUgc3RhdHVz LiAgKi8KKyAKKy1pbnQKKy1uZXRfb3BlbiAoc3RydWN0IHNlcmlhbCAqc2NiLCBjb25zdCBjaGFy ICpuYW1lKQorK3N0YXRpYyBpbnQKKyt0cnlfY29ubmVjdCAoY29uc3Qgc3RydWN0IGFkZHJpbmZv ICphaW5mbywgdW5zaWduZWQgaW50ICpwb2xscykKKyB7CistICBjaGFyIGhvc3RuYW1lWzEwMF07 CistICBjb25zdCBjaGFyICpwb3J0X3N0cjsKKy0gIGludCBuLCBwb3J0LCB0bXA7CistICBpbnQg dXNlX3VkcDsKKy0gIHN0cnVjdCBob3N0ZW50ICpob3N0ZW50OworLSAgc3RydWN0IHNvY2thZGRy X2luIHNvY2thZGRyOworLSNpZmRlZiBVU0VfV0lOMzJBUEkKKy0gIHVfbG9uZyBpb2FyZzsKKy0j ZWxzZQorLSAgaW50IGlvYXJnOworLSNlbmRpZgorLSAgdW5zaWduZWQgaW50IHBvbGxzID0gMDsK Ky0KKy0gIHVzZV91ZHAgPSAwOworLSAgaWYgKHN0YXJ0c3dpdGggKG5hbWUsICJ1ZHA6IikpCist ICAgIHsKKy0gICAgICB1c2VfdWRwID0gMTsKKy0gICAgICBuYW1lID0gbmFtZSArIDQ7CistICAg IH0KKy0gIGVsc2UgaWYgKHN0YXJ0c3dpdGggKG5hbWUsICJ0Y3A6IikpCistICAgIG5hbWUgPSBu YW1lICsgNDsKKy0KKy0gIHBvcnRfc3RyID0gc3RyY2hyIChuYW1lLCAnOicpOworLQorLSAgaWYg KCFwb3J0X3N0cikKKy0gICAgZXJyb3IgKF8oIm5ldF9vcGVuOiBObyBjb2xvbiBpbiBob3N0IG5h bWUhIikpOyAgLyogU2hvdWxkbid0IGV2ZXIKKy0JCQkJCQkgICAgICAgaGFwcGVuLiAgKi8KKy0K Ky0gIHRtcCA9IHN0ZDo6bWluIChwb3J0X3N0ciAtIG5hbWUsIChwdHJkaWZmX3QpIHNpemVvZiBo b3N0bmFtZSAtIDEpOworLSAgc3RybmNweSAoaG9zdG5hbWUsIG5hbWUsIHRtcCk7CS8qIERvbid0 IHdhbnQgY29sb24uICAqLworLSAgaG9zdG5hbWVbdG1wXSA9ICdcMDAwJzsJLyogVGllIG9mZiBo b3N0IG5hbWUuICAqLworLSAgcG9ydCA9IGF0b2kgKHBvcnRfc3RyICsgMSk7CistCistICAvKiBE ZWZhdWx0IGhvc3RuYW1lIGlzIGxvY2FsaG9zdC4gICovCistICBpZiAoIWhvc3RuYW1lWzBdKQor LSAgICBzdHJjcHkgKGhvc3RuYW1lLCAibG9jYWxob3N0Iik7CistCistICBob3N0ZW50ID0gZ2V0 aG9zdGJ5bmFtZSAoaG9zdG5hbWUpOworLSAgaWYgKCFob3N0ZW50KQorLSAgICB7CistICAgICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCAiJXM6IHVua25vd24gaG9zdFxuIiwgaG9z dG5hbWUpOworLSAgICAgIGVycm5vID0gRU5PRU5UOworLSAgICAgIHJldHVybiAtMTsKKy0gICAg fQorKyAgaW50IHNvY2sgPSBnZGJfc29ja2V0X2Nsb2V4ZWMgKGFpbmZvLT5haV9mYW1pbHksIGFp bmZvLT5haV9zb2NrdHlwZSwKKysJCQkJIGFpbmZvLT5haV9wcm90b2NvbCk7CisgCistICBzb2Nr YWRkci5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKKy0gIHNvY2thZGRyLnNpbl9wb3J0ID0gaHRvbnMg KHBvcnQpOworLSAgbWVtY3B5ICgmc29ja2FkZHIuc2luX2FkZHIuc19hZGRyLCBob3N0ZW50LT5o X2FkZHIsCistCSAgc2l6ZW9mIChzdHJ1Y3QgaW5fYWRkcikpOworLQorLSByZXRyeToKKy0KKy0g IGlmICh1c2VfdWRwKQorLSAgICBzY2ItPmZkID0gZ2RiX3NvY2tldF9jbG9leGVjIChQRl9JTkVU LCBTT0NLX0RHUkFNLCAwKTsKKy0gIGVsc2UKKy0gICAgc2NiLT5mZCA9IGdkYl9zb2NrZXRfY2xv ZXhlYyAoUEZfSU5FVCwgU09DS19TVFJFQU0sIDApOworLQorLSAgaWYgKHNjYi0+ZmQgPT0gLTEp CisrICBpZiAoc29jayA8IDApCisgICAgIHJldHVybiAtMTsKKy0gIAorKworICAgLyogU2V0IHNv Y2tldCBub25ibG9ja2luZy4gICovCistICBpb2FyZyA9IDE7CistICBpb2N0bCAoc2NiLT5mZCwg RklPTkJJTywgJmlvYXJnKTsKKysgIGludCBpb2FyZyA9IDE7CisrCisrICBpb2N0bCAoc29jaywg RklPTkJJTywgJmlvYXJnKTsKKyAKKyAgIC8qIFVzZSBOb24tYmxvY2tpbmcgY29ubmVjdC4gIGNv bm5lY3QoKSB3aWxsIHJldHVybiAwIGlmIGNvbm5lY3RlZAorICAgICAgYWxyZWFkeS4gICovCist ICBuID0gY29ubmVjdCAoc2NiLT5mZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNp emVvZiAoc29ja2FkZHIpKTsKKy0KKy0gIGlmIChuIDwgMCkKKysgIGlmIChjb25uZWN0IChzb2Nr LCBhaW5mby0+YWlfYWRkciwgYWluZm8tPmFpX2FkZHJsZW4pIDwgMCkKKyAgICAgeworICNpZmRl ZiBVU0VfV0lOMzJBUEkKKyAgICAgICBpbnQgZXJyID0gV1NBR2V0TGFzdEVycm9yKCk7CitAQCAt MjM0LDIxICsxODUsMjYgQEAgbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hh ciAqbmFtZSkKKyAgICAgICBpbnQgZXJyID0gZXJybm87CisgI2VuZGlmCisgCistICAgICAgLyog TWF5YmUgd2UncmUgd2FpdGluZyBmb3IgdGhlIHJlbW90ZSB0YXJnZXQgdG8gYmVjb21lIHJlYWR5 IHRvCistCSBhY2NlcHQgY29ubmVjdGlvbnMuICAqLworLSAgICAgIGlmICh0Y3BfYXV0b19yZXRy eQorKyAgICAgIC8qIElmIHdlJ3ZlIGdvdCBhICJjb25uZWN0aW9uIHJlZnVzZWQiIGVycm9yLCBq dXN0IHJldHVybgorKwkgLTEuICBUaGUgY2FsbGVyIHdpbGwga25vdyB3aGF0IHRvIGRvLiAgKi8K KysgICAgICBpZiAoCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorLQkgICYmIGVyciA9PSBXU0FFQ09O TlJFRlVTRUQKKysJICBlcnIgPT0gV1NBRUNPTk5SRUZVU0VECisgI2Vsc2UKKy0JICAmJiBlcnIg PT0gRUNPTk5SRUZVU0VECisrCSAgZXJyID09IEVDT05OUkVGVVNFRAorICNlbmRpZgorLQkgICYm IHdhaXRfZm9yX2Nvbm5lY3QgKE5VTEwsICZwb2xscykgPj0gMCkKKysJICApCisgCXsKKy0JICBj bG9zZSAoc2NiLT5mZCk7CistCSAgZ290byByZXRyeTsKKysJICBjbG9zZSAoc29jayk7CisrCSAg ZXJybm8gPSBlcnI7CisrCSAgcmV0dXJuIC0xOworIAl9CisgCisgICAgICAgaWYgKAorKwkgIC8q IEFueSBvdGhlciBlcnJvciAoZXhjZXB0IEVJTlBST0dSRVNTKSB3aWxsIGJlICJzd2FsbG93ZWQi CisrCSAgICAgaGVyZS4gIFdlIHJldHVybiB3aXRob3V0IHNwZWNpZnlpbmcgYSByZXR1cm4gdmFs dWUsIGFuZAorKwkgICAgIHNldCBlcnJubyBpZiB0aGUgY2FsbGVyIHdhbnRzIHRvIGluc3BlY3Qg d2hhdAorKwkgICAgIGhhcHBlbmVkLiAgKi8KKyAjaWZkZWYgVVNFX1dJTjMyQVBJCisgCSAgLyog VW5kZXIgV2luZG93cywgY2FsbGluZyAiY29ubmVjdCIgd2l0aCBhIG5vbi1ibG9ja2luZyBzb2Nr ZXQKKyAJICAgICByZXN1bHRzIGluIFdTQUVXT1VMREJMT0NLLCBub3QgV1NBRUlOUFJPR1JFU1Mu ICAqLworQEAgLTI1OCw2NiArMjE0LDE2NiBAQCBuZXRfb3BlbiAoc3RydWN0IHNlcmlhbCAqc2Ni LCBjb25zdCBjaGFyICpuYW1lKQorICNlbmRpZgorIAkgICkKKyAJeworKwkgIGNsb3NlIChzb2Nr KTsKKyAJICBlcnJubyA9IGVycjsKKy0JICBuZXRfY2xvc2UgKHNjYik7CisgCSAgcmV0dXJuIC0x OworIAl9CisgCisgICAgICAgLyogTG9va3MgbGlrZSB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBj b25uZWN0LiAgKi8KKy0gICAgICBkbyAKKy0JeworLQkgIG4gPSB3YWl0X2Zvcl9jb25uZWN0IChz Y2IsICZwb2xscyk7CistCX0gCisrICAgICAgaW50IG47CisrCisrICAgICAgZG8KKysJbiA9IHdh aXRfZm9yX2Nvbm5lY3QgKHNvY2ssIHBvbGxzKTsKKyAgICAgICB3aGlsZSAobiA9PSAwKTsKKysK KyAgICAgICBpZiAobiA8IDApCisgCXsKKy0JICBuZXRfY2xvc2UgKHNjYik7CisrCSAgaW50IHNh dmVkX2Vycm5vID0gZXJybm87CisrCisrCSAgLyogQSBuZWdhdGl2ZSB2YWx1ZSBoZXJlIG1lYW5z IHRoYXQgd2UgZWl0aGVyIHRpbWVkIG91dCBvcgorKwkgICAgIGdvdCBpbnRlcnJ1cHRlZCBieSB0 aGUgdXNlci4gIEp1c3QgcmV0dXJuLiAgKi8KKysJICBjbG9zZSAoc29jayk7CisrCSAgZXJybm8g PSBzYXZlZF9lcnJubzsKKyAJICByZXR1cm4gLTE7CisgCX0KKyAgICAgfQorIAorICAgLyogR290 IHNvbWV0aGluZy4gIElzIGl0IGFuIGVycm9yPyAgKi8KKy0gIHsKKy0gICAgaW50IHJlcywgZXJy OworLSAgICBzb2NrbGVuX3QgbGVuOworLQorLSAgICBsZW4gPSBzaXplb2YgKGVycik7CistICAg IC8qIE9uIFdpbmRvd3MsIHRoZSBmb3VydGggcGFyYW1ldGVyIHRvIGdldHNvY2tvcHQgaXMgYSAi Y2hhciAqIjsKKy0gICAgICAgb24gVU5JWCBzeXN0ZW1zIGl0IGlzIGdlbmVyYWxseSAidm9pZCAq Ii4gIFRoZSBjYXN0IHRvICJjaGFyICoiCistICAgICAgIGlzIE9LIGV2ZXJ5d2hlcmUsIHNpbmNl IGluIEMrKyBhbnkgZGF0YSBwb2ludGVyIHR5cGUgY2FuIGJlCistICAgICAgIGltcGxpY2l0bHkg Y29udmVydGVkIHRvICJ2b2lkICoiLiAgKi8KKy0gICAgcmVzID0gZ2V0c29ja29wdCAoc2NiLT5m ZCwgU09MX1NPQ0tFVCwgU09fRVJST1IsIChjaGFyICopICZlcnIsICZsZW4pOworLSAgICBpZiAo cmVzIDwgMCB8fCBlcnIpCistICAgICAgeworLQkvKiBNYXliZSB0aGUgdGFyZ2V0IHN0aWxsIGlz bid0IHJlYWR5IHRvIGFjY2VwdCB0aGUgY29ubmVjdGlvbi4gICovCistCWlmICh0Y3BfYXV0b19y ZXRyeQorKyAgaW50IGVycjsKKysgIHNvY2tsZW5fdCBsZW4gPSBzaXplb2YgKGVycik7CisrCisr ICAvKiBPbiBXaW5kb3dzLCB0aGUgZm91cnRoIHBhcmFtZXRlciB0byBnZXRzb2Nrb3B0IGlzIGEg ImNoYXIgKiI7CisrICAgICBvbiBVTklYIHN5c3RlbXMgaXQgaXMgZ2VuZXJhbGx5ICJ2b2lkICoi LiAgVGhlIGNhc3QgdG8gImNoYXIgKiIKKysgICAgIGlzIE9LIGV2ZXJ5d2hlcmUsIHNpbmNlIGlu IEMrKyBhbnkgZGF0YSBwb2ludGVyIHR5cGUgY2FuIGJlCisrICAgICBpbXBsaWNpdGx5IGNvbnZl cnRlZCB0byAidm9pZCAqIi4gICovCisrICBpbnQgcmV0ID0gZ2V0c29ja29wdCAoc29jaywgU09M X1NPQ0tFVCwgU09fRVJST1IsIChjaGFyICopICZlcnIsICZsZW4pOworKworKyAgaWYgKHJldCA8 IDApCisrICAgIHsKKysgICAgICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsKKysKKysgICAgICBj bG9zZSAoc29jayk7CisrICAgICAgZXJybm8gPSBzYXZlZF9lcnJubzsKKysgICAgICByZXR1cm4g LTE7CisrICAgIH0KKysgIGVsc2UgaWYgKHJldCA9PSAwICYmIGVyciAhPSAwKQorKyAgICB7Cisr ICAgICAgY2xvc2UgKHNvY2spOworKyAgICAgIGVycm5vID0gZXJyOworKyAgICAgIHJldHVybiAt MTsKKysgICAgfQorKworKyAgLyogVGhlIGNvbm5lY3Rpb24gc3VjY2VlZGVkLiAgUmV0dXJuIHRo ZSBzb2NrZXQuICAqLworKyAgcmV0dXJuIHNvY2s7CisrfQorKworKy8qIE9wZW4gYSB0Y3Agc29j a2V0LiAgKi8KKysKKytpbnQKKytuZXRfb3BlbiAoc3RydWN0IHNlcmlhbCAqc2NiLCBjb25zdCBj aGFyICpuYW1lKQorK3sKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50OworKyAgc3RydWN0IGFkZHJp bmZvICphaW5mbzsKKysKKysgIG1lbXNldCAoJmhpbnQsIDAsIHNpemVvZiAoaGludCkpOworKyAg LyogQXNzdW1lIG5vIHByZWZpeCB3aWxsIGJlIHBhc3NlZCwgdGhlcmVmb3JlIHdlIHNob3VsZCB1 c2UKKysgICAgIEFGX1VOU1BFQy4gICovCisrICBoaW50LmFpX2ZhbWlseSA9IEFGX1VOU1BFQzsK KysgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NLX1NUUkVBTTsKKysgIGhpbnQuYWlfcHJvdG9jb2wg PSBJUFBST1RPX1RDUDsKKysKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcGFyc2VkID0gcGFy c2VfY29ubmVjdGlvbl9zcGVjIChuYW1lLCAmaGludCk7CisrCisrICBpZiAocGFyc2VkLnBvcnRf c3RyLmVtcHR5ICgpKQorKyAgICBlcnJvciAoXygiTWlzc2luZyBwb3J0IG9uIGhvc3RuYW1lICcl cyciKSwgbmFtZSk7CisrCisrICBpbnQgciA9IGdldGFkZHJpbmZvIChwYXJzZWQuaG9zdF9zdHIu Y19zdHIgKCksCisrCQkgICAgICAgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgpLAorKwkJICAgICAg ICZoaW50LCAmYWluZm8pOworKworKyAgaWYgKHIgIT0gMCkKKysgICAgeworKyAgICAgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgXygiJXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVz XG4iKSwKKysJCQkgIG5hbWUsIGdhaV9zdHJlcnJvciAocikpOworKyAgICAgIGVycm5vID0gRU5P RU5UOworKyAgICAgIHJldHVybiAtMTsKKysgICAgfQorKworKyAgc2NvcGVkX2ZyZWVfYWRkcmlu Zm8gZnJlZV9haW5mbyAoYWluZm8pOworKworKyAgLyogRmxhZyB0byBpbmRpY2F0ZSB3aGV0aGVy IHdlJ3ZlIGdvdCBhIGNvbm5lY3Rpb24gcmVmdXNlZC4gIEl0IHdpbGwKKysgICAgIGJlIHRydWUg aWYgYW55IG9mIHRoZSBjb25uZWN0aW9ucyB0cmllZCB3YXMgcmVmdXNlZC4gICovCisrICBib29s IGdvdF9jb25ucmVmdXNlZDsKKysgIC8qIElmIGEgY29ubmVjdGlvbiBzdWNjZWVlZHMsIFNVQ0NF U1NfQUlORk8gd2lsbCBwb2ludCB0byB0aGUKKysgICAgICdzdHJ1Y3QgYWRkcmluZm8nIHRoYXQg c3VjY2VlZC4gICovCisrICBzdHJ1Y3QgYWRkcmluZm8gKnN1Y2Nlc3NfYWluZm8gPSBOVUxMOwor KyAgdW5zaWduZWQgaW50IHBvbGxzID0gMDsKKysKKysgIC8qIEFzc3VtZSB0aGUgd29yc3QuICAq LworKyAgc2NiLT5mZCA9IC0xOworKworKyAgZG8KKysgICAgeworKyAgICAgIGdvdF9jb25ucmVm dXNlZCA9IGZhbHNlOworKworKyAgICAgIGZvciAoc3RydWN0IGFkZHJpbmZvICppdGVyID0gYWlu Zm87IGl0ZXIgIT0gTlVMTDsgaXRlciA9IGl0ZXItPmFpX25leHQpCisrCXsKKysJICAvKiBJdGVy YXRlIG92ZXIgdGhlIGxpc3Qgb2YgcG9zc2libGUgYWRkcmVzc2VzIHRvIGNvbm5lY3QKKysJICAg ICB0by4gIEZvciBlYWNoLCB3ZSdsbCB0cnkgdG8gY29ubmVjdCBhbmQgc2VlIGlmIGl0CisrCSAg ICAgc3VjY2VlZHMuICAqLworKwkgIGludCBzb2NrID0gdHJ5X2Nvbm5lY3QgKGl0ZXIsICZwb2xs cyk7CisrCisrCSAgaWYgKHNvY2sgPj0gMCkKKysJICAgIHsKKysJICAgICAgLyogV2UndmUgZ290 dGVuIGEgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLiAgU2F2ZSBpdHMKKysJCSAnc3RydWN0IGFkZHJp bmZvJywgdGhlIHNvY2tldCwgYW5kIGJyZWFrLiAgKi8KKysJICAgICAgc3VjY2Vzc19haW5mbyA9 IGl0ZXI7CisrCSAgICAgIHNjYi0+ZmQgPSBzb2NrOworKwkgICAgICBicmVhazsKKysJICAgIH0K KysJICBlbHNlIGlmICgKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCistCSAgICAmJiBlcnIgPT0gV1NB RUNPTk5SRUZVU0VECisrCSAgZXJybm8gPT0gV1NBRUNPTk5SRUZVU0VECisgI2Vsc2UKKy0JICAg ICYmIGVyciA9PSBFQ09OTlJFRlVTRUQKKysJICBlcnJubyA9PSBFQ09OTlJFRlVTRUQKKyAjZW5k aWYKKy0JICAgICYmIHdhaXRfZm9yX2Nvbm5lY3QgKE5VTEwsICZwb2xscykgPj0gMCkKKy0JICB7 CistCSAgICBjbG9zZSAoc2NiLT5mZCk7CistCSAgICBnb3RvIHJldHJ5OworLQkgIH0KKy0JaWYg KGVycikKKy0JICBlcnJubyA9IGVycjsKKy0JbmV0X2Nsb3NlIChzY2IpOworLQlyZXR1cm4gLTE7 CistICAgICAgfQorLSAgfSAKKysJCSAgICkKKysJICAgIGdvdF9jb25ucmVmdXNlZCA9IHRydWU7 CisrCX0KKysgICAgfQorKyAgLyogSnVzdCByZXRyeSBpZjoKKysKKysgICAgIC0gdGNwX2F1dG9f cmV0cnkgaXMgdHJ1ZSwgYW5kCisrICAgICAtIFdlIGhhdmVuJ3QgZ290dGVuIGEgY29ubmVjdGlv biB5ZXQsIGFuZAorKyAgICAgLSBBbnkgb2Ygb3VyIGNvbm5lY3Rpb24gYXR0ZW1wdHMgcmV0dXJu ZWQgd2l0aCBFQ09OTlJFRlVTRUQsIGFuZAorKyAgICAgLSB3YWl0X2Zvcl9jb25uZWN0IHNpZ25h bHMgdGhhdCB3ZSBjYW4ga2VlcCBnb2luZy4gICovCisrICB3aGlsZSAodGNwX2F1dG9fcmV0cnkK KysJICYmIHN1Y2Nlc3NfYWluZm8gPT0gTlVMTAorKwkgJiYgZ290X2Nvbm5yZWZ1c2VkCisrCSAm JiB3YWl0X2Zvcl9jb25uZWN0ICgtMSwgJnBvbGxzKSA+PSAwKTsKKysKKysgIGlmIChzdWNjZXNz X2FpbmZvID09IE5VTEwpCisrICAgIHsKKysgICAgICBuZXRfY2xvc2UgKHNjYik7CisrICAgICAg cmV0dXJuIC0xOworKyAgICB9CisgCisgICAvKiBUdXJuIG9mZiBub25ibG9ja2luZy4gICovCist ICBpb2FyZyA9IDA7CisrI2lmZGVmIFVTRV9XSU4zMkFQSQorKyAgdV9sb25nIGlvYXJnID0gMDsK KysjZWxzZQorKyAgaW50IGlvYXJnID0gMDsKKysjZW5kaWYKKysKKyAgIGlvY3RsIChzY2ItPmZk LCBGSU9OQklPLCAmaW9hcmcpOworIAorLSAgaWYgKHVzZV91ZHAgPT0gMCkKKysgIGlmIChzdWNj ZXNzX2FpbmZvLT5haV9zb2NrdHlwZSA9PSBJUFBST1RPX1RDUCkKKyAgICAgeworICAgICAgIC8q IERpc2FibGUgTmFnbGUgYWxnb3JpdGhtLiAgTmVlZGVkIGluIHNvbWUgY2FzZXMuICAqLworLSAg ICAgIHRtcCA9IDE7CisrICAgICAgaW50IHRtcCA9IDE7CisrCisgICAgICAgc2V0c29ja29wdCAo c2NiLT5mZCwgSVBQUk9UT19UQ1AsIFRDUF9OT0RFTEFZLAorLQkJICAoY2hhciAqKSZ0bXAsIHNp emVvZiAodG1wKSk7CisrCQkgIChjaGFyICopICZ0bXAsIHNpemVvZiAodG1wKSk7CisgICAgIH0K KyAKKyAjaWZkZWYgU0lHUElQRQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n IGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKy0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n CisrKysgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworQEAgLTEsMyArMSwyMyBAQAorKzIwMTgt MDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisrCSAg ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCSAgICBQYXVs IEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgorKwkgICAgVHN1dG9tdSBTZWtpICA8c2Vr aXJpa2lAZ21haWwuY29tPgorKworKwkqIFJFQURNRSAoVGVzdHN1aXRlIFBhcmFtZXRlcnMpOiBN ZW50aW9uIG5ldyAnR0RCX1RFU1RfU09DS0VUSE9TVCcKKysJcGFyYW1ldGVyLgorKwkqIGJvYXJk cy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cDogRG8gbm90IHNldCAnc29ja2V0aG9zdCcK KysJYnkgZGVmYXVsdC4KKysJKiBib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHA6IExpa2V3aXNl LgorKwkqIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cDogSW1wcm92ZSBy ZWdleHAgdXNlZAorKwlmb3IgZGV0ZWN0aW5nIHdoZW4gYSByZW1vdGUgZGVidWdnaW5nIGNvbm5l Y3Rpb24gc3VjY2VlZHMuCisrCSogZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHA6IE5ldyBm aWxlLgorKwkqIGxpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZlcl9kZWZhdWx0X2dl dF9jb21tX3BvcnQpOgorKwlEbyBub3QgcHJlZml4IHRoZSBwb3J0IG51bWJlciB3aXRoICI6Ii4K KysJKGdkYnNlcnZlcl9zdGFydCk6IE5ldyBnbG9iYWwgR0RCX1RFU1RfU09DS0VUSE9TVC4gIElt cGxlbWVudAorKwlzdXBwb3J0IGZvciBkZXRlY3RpbmcgYW5kIHVzaW5nIGl0LiAgQWRkICckZGVi dWdob3N0X2dkYnNlcnZlcicKKysJdG8gdGhlIGxpc3Qgb2YgYXJndW1lbnRzIHVzZWQgdG8gc3Rh cnQgZ2Ric2VydmVyLiAgSGFuZGxlIGNhc2UKKysJd2hlbiBnZGJzZXJ2ZXIgY2Fubm90IHJlc29s dmUgYSBuZXR3b3JrIG5hbWUuCisrCisgMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9y ICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKyAKKyAJUFIgYysrLzIzMzczCitkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9SRUFETUUgYi9nZGIvdGVzdHN1aXRlL1JFQURNRQorLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9SRUFETUUKKysrKyBiL2dkYi90ZXN0c3VpdGUvUkVBRE1FCitAQCAtMjU5LDYgKzI1 OSwyMCBAQCBUaGlzIG1ha2UgKG5vdCBydW50ZXN0KSB2YXJpYWJsZSBpcyB1c2VkIHRvIHNwZWNp Znkgd2hldGhlciB0aGUKKyB0ZXN0c3VpdGUgcHJlbG9hZHMgdGhlIHJlYWQxLnNvIGxpYnJhcnkg aW50byBleHBlY3QuICBBbnkgbm9uLWVtcHR5CisgdmFsdWUgbWVhbnMgdHJ1ZS4gIFNlZSAiUmFj ZSBkZXRlY3Rpb24iIGJlbG93LgorIAorK0dEQl9URVNUX1NPQ0tFVEhPU1QKKysKKytUaGlzIHZh cmlhYmxlIGNhbiBwcm92aWRlIHRoZSBob3N0bmFtZS9hZGRyZXNzIHRoYXQgc2hvdWxkIGJlIHVz ZWQKKyt3aGVuIHBlcmZvcm1pbmcgR0RCc2VydmVyLXJlbGF0ZWQgdGVzdHMuICBUaGlzIGlzIHVz ZWZ1bCBpbiBzb21lCisrc2l0dWF0aW9ucywgZS5nLiwgd2hlbiB5b3Ugd2FudCB0byB0ZXN0IHRo ZSBJUHY2IGNvbm5lY3Rpdml0eSBvZiBHREIKKythbmQgR0RCc2VydmVyLCBvciB3aGVuIHVzaW5n IGEgZGlmZmVyZW50IGhvc3RuYW1lL2FkZHJlc3MgaXMgbmVlZGVkLgorK0ZvciBleGFtcGxlLCB0 byBtYWtlIEdEQiBhbmQgR0RCc2VydmVyIHVzZSBJUHY2LW9ubHkgY29ubmVjdGlvbnMsIHlvdQor K2NhbiBkbzoKKysKKysJbWFrZSBjaGVjayBURVNUUz0iZ2RiLnNlcnZlci8qLmV4cCIgUlVOVEVT VEZMQUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDY6Wzo6MV0nCisrCisrTm90ZSB0aGF0IG9u bHkgYSBob3N0bmFtZS9hZGRyZXNzIGNhbiBiZSBwcm92aWRlZCwgd2l0aG91dCBhIHBvcnQKKytu dW1iZXIuCisrCisgUmFjZSBkZXRlY3Rpb24KKyAqKioqKioqKioqKioqKgorIAorZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHAKKy0tLSBh L2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwCisrKysg Yi9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cAorQEAg LTI0LDggKzI0LDYgQEAgbG9hZF9nZW5lcmljX2NvbmZpZyAiZXh0ZW5kZWQtZ2Ric2VydmVyIgor IGxvYWRfYm9hcmRfZGVzY3JpcHRpb24gImdkYnNlcnZlci1iYXNlIgorIGxvYWRfYm9hcmRfZGVz Y3JpcHRpb24gImxvY2FsLWJvYXJkIgorIAorLXNldF9ib2FyZF9pbmZvIHNvY2tldGhvc3QgImxv Y2FsaG9zdDoiCistCisgIyBXZSB3aWxsIGJlIHVzaW5nIHRoZSBleHRlbmRlZCBHREIgcmVtb3Rl IHByb3RvY29sLgorIHNldF9ib2FyZF9pbmZvIGdkYl9wcm90b2NvbCAiZXh0ZW5kZWQtcmVtb3Rl IgorIAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAKKy0tLSBhL2dk Yi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwCisrKysgYi9nZGIvdGVzdHN1 aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cAorQEAgLTMwLDcgKzMwLDYgQEAgc2V0X2Jv YXJkX2luZm8gZ2RiLGRvX3JlbG9hZF9vbl9ydW4gMQorICMgVGhlcmUncyBubyBzdXBwb3J0IGZv ciBhcmd1bWVudC1wYXNzaW5nICh5ZXQpLgorIHNldF9ib2FyZF9pbmZvIG5vYXJncyAxCisgCist c2V0X2JvYXJkX2luZm8gc29ja2V0aG9zdCAibG9jYWxob3N0OiIKKyBzZXRfYm9hcmRfaW5mbyB1 c2VfZ2RiX3N0dWIgMQorIHNldF9ib2FyZF9pbmZvIGV4aXRfaXNfcmVsaWFibGUgMQorIAorZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5h cnkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFy eS5leHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1i aW5hcnkuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9j YWwtYmluYXJ5LmV4cAorQEAgLTUzLDcgKzUzLDcgQEAgc2F2ZV92YXJzIHsgR0RCRkxBR1MgfSB7 CisgICAgIHNldCB1c2VfZ2RiX3N0dWIgMAorIAorICAgICBnZGJfdGVzdCAidGFyZ2V0ICR7Z2Ri c2VydmVyX3Byb3RvY29sfSAke2dkYnNlcnZlcl9nZGJwb3J0fSIgXAorLQkiUmVtb3RlIGRlYnVn Z2luZyB1c2luZyAkZ2Ric2VydmVyX2dkYnBvcnQiIFwKKysJIlJlbW90ZSBkZWJ1Z2dpbmcgdXNp bmcgW3N0cmluZ190b19yZWdleHAgJGdkYnNlcnZlcl9nZGJwb3J0XSIgXAorIAkiY29ubmVjdCB0 byBnZGJzZXJ2ZXIiCisgCisgICAgIGdkYl90ZXN0ICJydW4iIFwKK2RpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAv ZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5l eHAKK0BAIC0wLDAgKzEsMTExIEBACisrIyBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgorKyMKKysjIENvcHlyaWdodCAyMDE4IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBU ZXN0IG11bHRpcGxlIHR5cGVzIG9mIGNvbm5lY3Rpb24gKElQdjQsIElQdjYsIFRDUCwgVURQKSBh bmQgbWFrZQorKyMgc3VyZSBib3RoIGdkYnNlcnZlciBhbmQgR0RCIHdvcmsuCisrCisrbG9hZF9s aWIgZ2Ric2VydmVyLXN1cHBvcnQuZXhwCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgbm9ybWFsLmMK KysKKytpZiB7W3NraXBfZ2Ric2VydmVyX3Rlc3RzXX0geworKyAgICByZXR1cm4gMAorK30KKysK KysjIFdlIHdhbnQgdG8gaGF2ZSBjb250cm9sIG92ZXIgd2hlcmUgd2Ugc3RhcnQgZ2Ric2VydmVy LgorK2lmIHsgW2lzX3JlbW90ZSB0YXJnZXRdIH0geworKyAgICByZXR1cm4gMAorK30KKysKKytp ZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRz cmNmaWxlIGRlYnVnXSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgTWFrZSBzdXJlIHdl J3JlIGRpc2Nvbm5lY3RlZCwgaW4gY2FzZSB3ZSdyZSB0ZXN0aW5nIHdpdGggYW4KKysjIGV4dGVu ZGVkLXJlbW90ZSBib2FyZCwgdGhlcmVmb3JlIGFscmVhZHkgY29ubmVjdGVkLgorK2dkYl90ZXN0 ICJkaXNjb25uZWN0IiAiLioiCisrCisrc2V0IHRhcmdldF9leGVjIFtnZGJzZXJ2ZXJfZG93bmxv YWRfY3VycmVudF9wcm9nXQorKworKyMgQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdGVzdCBpbnN0 cnVjdGlvbnMgZm9yIGVhY2ggc2NlbmFyaW8uICBUaGUKKysjIGRlc2NyaXB0aW9uIG9mIGVhY2gg ZmllbGQgaXMgYXMgZm9sbG93czoKKysjCisrIyAtIFRoZSBjb25uZWN0aW9uIHNwZWNpZmljYXRp b24gdG8gYmUgdXNlZCB3aGVuIHN0YXJ0aW5nCisrIyAgIGdkYnNlcnZlci9HREIuICBUaGlzIHN0 cmluZyB3aWxsIGJlIHVzZWQgdG8gc2V0IHRoZQorKyMgICBHREJfVEVTVF9TT0NLRVRIT1NUIHdo ZW4gY2FsbGluZyBnZGJzZXJ2ZXJfc3RhcnQuCisrIworKyMgLSBBIGZsYWcgaW5kaWNhdGluZyB3 aGV0aGVyIGdkYnNlcnZlciBzaG91bGQgZmFpbCB3aGVuIHdlIGF0dGVtcHQgdG8KKysjICAgc3Rh cnQgaXQuICBVc2VmdWwgd2hlbiB0ZXN0aW5nIGVycm9uZW91cyBjb25uZWN0aW9uIHNwZWNzIHN1 Y2ggYXMKKysjICAgInRjcDg6Ii4KKysjCisrIyAtIFRoZSBwcmVmaXggdGhhdCBzaG91bGQgYmUg cHJlcGVuZGVkIHRvIHRoZSB0ZXN0IG1lc3NhZ2VzLgorK3NldCB0ZXN0X3BhcmFtcyBcCisrICAg IHsgXAorKwkgIHsgInRjcDQ6MTI3LjAuMC4xIiAwICJ0Y3A0IiB9IFwKKysJICB7ICJ0Y3A2Ojo6 MSIgICAgICAgMCAidGNwNiIgfSBcCisrCSAgeyAidGNwNjpbOjoxXSIgICAgIDAgInRjcDYtd2l0 aC1icmFja2V0cyIgfSBcCisrCSAgeyAidGNwOmxvY2FsaG9zdCIgIDAgInRjcCIgfSBcCisrCSAg eyAidWRwNDoxMjcuMC4wLjEiIDAgInVkcDQiIH0gXAorKwkgIHsgInVkcDY6OjoxIiAgICAgICAw ICJ1ZHA2IiB9IFwKKysJICB7ICJ1ZHA2Ols6OjFdIiAgICAgMCAidWRwNi13aXRoLWJyYWNrZXRz IiB9IFwKKysJICB7ICJ0Y3A4OjEyMyIgICAgICAgMSAidGNwOCIgfSBcCisrCSAgeyAidWRwMTIz Ojo6IiAgICAgIDEgInVkcDEyMyIgfSBcCisrCSAgeyAiZ2FyYmFnZToxMjM0IiAgIDEgImdhcmJh Z2U6MTIzNCIgfSBcCisrICAgIH0KKysKKysjIFRoZSBiZXN0IHdheSB0byB0ZXN0IGRpZmZlcmVu dCB0eXBlcyBvZiBjb25uZWN0aW9ucyBpcyB0byBzZXQgdGhlCisrIyBHREJfVEVTVF9TT0NLRVRI T1NUIHZhcmlhYmxlIGFjY29yZGluZ2x5LgorK3NhdmVfdmFycyB7IEdEQl9URVNUX1NPQ0tFVEhP U1QgfSB7CisrICAgIGZvcmVhY2ggbGluZSAkdGVzdF9wYXJhbXMgeworKwlzZXQgc29ja2hvc3Qg W2xpbmRleCAkbGluZSAwXQorKwlzZXQgZ2Ric2VydmVyX3Nob3VsZF9mYWlsIFtsaW5kZXggJGxp bmUgMV0KKysJc2V0IHByZWZpeCBbbGluZGV4ICRsaW5lIDJdCisrCisrCXdpdGhfdGVzdF9wcmVm aXggJHByZWZpeCB7CisrCSAgICBzZXQgR0RCX1RFU1RfU09DS0VUSE9TVCAkc29ja2hvc3QKKysJ ICAgIHNldCB0ZXN0ICJzdGFydCBnZGJzZXJ2ZXIiCisrCisrCSAgICAjIFRyeSB0byBzdGFydCBn ZGJzZXJ2ZXIuCisrCSAgICBzZXQgY2F0Y2hyZXMgW2NhdGNoIHtzZXQgcmVzIFtnZGJzZXJ2ZXJf c3RhcnQgIiIgJHRhcmdldF9leGVjXX0gZXJybXNnXQorKworKwkgICAgaWYgeyAkY2F0Y2hyZXMg IT0gMCB9IHsKKysJCWlmIHsgJGdkYnNlcnZlcl9zaG91bGRfZmFpbCB9IHsKKysJCSAgICBwYXNz ICIkdGVzdDogZ2Ric2VydmVyIGZhaWxlZCBhcyBleHBlY3RlZCIKKysJCX0gZWxzZSB7CisrCQkg ICAgZmFpbCAiJHRlc3Q6ICRlcnJtc2ciCisrCQl9CisrCQljb250aW51ZQorKwkgICAgfSBlbHNl IHsKKysJCWlmIHsgJGdkYnNlcnZlcl9zaG91bGRfZmFpbCB9IHsKKysJCSAgICBmYWlsICIkdGVz dDogZ2Ric2VydmVyIHNob3VsZCBmYWlsIGJ1dCBkaWQgbm90IgorKwkJfSBlbHNlIHsKKysJCSAg ICBwYXNzICIkdGVzdCIKKysJCX0KKysJICAgIH0KKysKKysJICAgIHNldCBnZGJzZXJ2ZXJfcHJv dG9jb2wgW2xpbmRleCAkcmVzIDBdCisrCSAgICBzZXQgZ2Ric2VydmVyX2dkYnBvcnQgW2xpbmRl eCAkcmVzIDFdCisrCSAgICBzZXQgdGVzdCAiY29ubmVjdCB0byBnZGJzZXJ2ZXIgdXNpbmcgJHNv Y2tob3N0IgorKworKwkgICAgaWYgeyBbZ2RiX3RhcmdldF9jbWQgJGdkYnNlcnZlcl9wcm90b2Nv bCAkZ2Ric2VydmVyX2dkYnBvcnRdID09IDAgfSB7CisrCQlwYXNzICR0ZXN0CisrCSAgICB9IGVs c2UgeworKwkJZmFpbCAkdGVzdAorKwkgICAgfQorKwl9CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIGIvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGJz ZXJ2ZXItc3VwcG9ydC5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBw b3J0LmV4cAorQEAgLTIxMSw3ICsyMTEsNyBAQCBwcm9jIGdkYnNlcnZlcl9kZWZhdWx0X2dldF9y ZW1vdGVfYWRkcmVzcyB7IGhvc3QgcG9ydCB9IHsKKyAjIERlZmF1bHQgcm91dGluZSB0byBjb21w dXRlIHRoZSAiY29tbSIgYXJndW1lbnQgZm9yIGdkYnNlcnZlci4KKyAKKyBwcm9jIGdkYnNlcnZl cl9kZWZhdWx0X2dldF9jb21tX3BvcnQgeyBwb3J0IH0geworLSAgICByZXR1cm4gIjokcG9ydCIK KysgICAgcmV0dXJuICIkcG9ydCIKKyB9CisgCisgIyBTdGFydCBhIGdkYnNlcnZlciBwcm9jZXNz IHdpdGggaW5pdGlhbCBPUFRJT05TIGFuZCB0cmFpbGluZyBBUkdVTUVOVFMuCitAQCAtMjIxLDYg KzIyMSw3IEBAIHByb2MgZ2Ric2VydmVyX2RlZmF1bHRfZ2V0X2NvbW1fcG9ydCB7IHBvcnQgfSB7 CisgCisgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKKyAgICAg Z2xvYmFsIHBvcnRudW0KKysgICAgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1QKKyAKKyAgICAg IyBQb3J0IGlkIC0tIGVpdGhlciBzcGVjaWZpZWQgaW4gYmFzZWJvYXJkIGZpbGUsIG9yIG1hbmFn ZWQgaGVyZS4KKyAgICAgaWYgW3RhcmdldF9pbmZvIGV4aXN0cyBnZGIsc29ja2V0cG9ydF0gewor QEAgLTIzMSwxMCArMjMyLDIyIEBAIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1 bWVudHMgfSB7CisgICAgIH0KKyAKKyAgICAgIyBFeHRyYWN0IHRoZSBsb2NhbCBhbmQgcmVtb3Rl IGhvc3QgaWRzIGZyb20gdGhlIHRhcmdldCBib2FyZCBzdHJ1Y3QuCistICAgIGlmIFt0YXJnZXRf aW5mbyBleGlzdHMgc29ja2V0aG9zdF0geworKyAgICBpZiB7IFtpbmZvIGV4aXN0cyBHREJfVEVT VF9TT0NLRVRIT1NUXSB9IHsKKysJIyBUaGUgdXNlciBpcyBub3Qgc3VwcG9zZWQgdG8gcHJvdmlk ZSBhIHBvcnQgbnVtYmVyLCBqdXN0IGEKKysJIyBob3N0bmFtZS9hZGRyZXNzLCB0aGVyZWZvcmUg d2UgYWRkIHRoZSB0cmFpbGluZyAiOiIgaGVyZS4KKysJc2V0IGRlYnVnaG9zdCAiJHtHREJfVEVT VF9TT0NLRVRIT1NUfToiCisrCSMgRXNjYXBlIG9wZW4gYW5kIGNsb3NlIHNxdWFyZSBicmFja2V0 cy4KKysJc2V0IGRlYnVnaG9zdF90bXAgW3N0cmluZyBtYXAgeyBbIFxcWyBdIFxcXSB9ICRkZWJ1 Z2hvc3RdCisrCSMgV2UgbmVlZCBhICJnZGJzZXJ2ZXIiIHZlcnNpb24gb2YgdGhlIGRlYnVnaG9z dCwgd2hpY2ggd2lsbAorKwkjIGhhdmUgdGhlIHBvc3NpYmxlIGNvbm5lY3Rpb24gcHJlZml4IHN0 cmlwcGVkLiAgVGhpcyBpcworKwkjIGJlY2F1c2UgZ2Ric2VydmVyIGN1cnJlbnRseSBkb2Vzbid0 IHJlY29nbml6ZSB0aGUgcHJlZml4ZXMuCisrCXJlZ3N1YiAtYWxsICJeXCh0Y3A6fHVkcDp8dGNw NDp8dWRwNDp8dGNwNjp8dWRwNjpcKSIgJGRlYnVnaG9zdF90bXAgIiIgZGVidWdob3N0X2dkYnNl cnZlcgorKyAgICB9IGVsc2VpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIHNvY2tldGhvc3RdIHsKKyAJ c2V0IGRlYnVnaG9zdCBbdGFyZ2V0X2luZm8gc29ja2V0aG9zdF0KKysJc2V0IGRlYnVnaG9zdF9n ZGJzZXJ2ZXIgJGRlYnVnaG9zdAorICAgICB9IGVsc2UgeworIAlzZXQgZGVidWdob3N0ICJsb2Nh bGhvc3Q6IgorKwlzZXQgZGVidWdob3N0X2dkYnNlcnZlciAkZGVidWdob3N0CisgICAgIH0KKyAK KyAgICAgIyBTb21lIGJvYXJkcyB1c2UgYSBkaWZmZXJlbnQgdmFsdWUgZm9yIHRoZSBwb3J0IHRo YXQgaXMgcGFzc2VkIHRvCitAQCAtMjc3LDggKzI5MCwxNCBAQCBwcm9jIGdkYnNlcnZlcl9zdGFy dCB7IG9wdGlvbnMgYXJndW1lbnRzIH0geworIAlpZiB7ICRvcHRpb25zICE9ICIiIH0geworIAkg ICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgJG9wdGlvbnMiCisgCX0KKysJaWYgeyAkZGVi dWdob3N0X2dkYnNlcnZlciAhPSAiIiB9IHsKKysJICAgIGFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFu ZCAiICRkZWJ1Z2hvc3RfZ2Ric2VydmVyIgorKwl9CisgCWlmIHsgJHBvcnRudW0gIT0gIiIgfSB7 CistCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiBbJGdldF9jb21tX3BvcnQgJHBvcnRu dW1dIgorKwkgICAgaWYgeyAkZGVidWdob3N0X2dkYnNlcnZlciA9PSAiIiB9IHsKKysJCWFwcGVu ZCBnZGJzZXJ2ZXJfY29tbWFuZCAiICIKKysJICAgIH0KKysJICAgIGFwcGVuZCBnZGJzZXJ2ZXJf Y29tbWFuZCAiWyRnZXRfY29tbV9wb3J0ICRwb3J0bnVtXSIKKyAJfQorIAlpZiB7ICRhcmd1bWVu dHMgIT0gIiIgfSB7CisgCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAkYXJndW1lbnRz IgorQEAgLTMwNyw2ICszMjYsOSBAQCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJn dW1lbnRzIH0geworIAkJICAgIGNvbnRpbnVlCisgCQl9CisgCSAgICB9CisrCSAgICAtcmUgIi4q OiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiBOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duXHJcbiIgewor KwkJZXJyb3IgImdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBuYW1lLiIKKysJICAgIH0KKyAJICAg IHRpbWVvdXQgeworIAkJZXJyb3IgIlRpbWVvdXQgd2FpdGluZyBmb3IgZ2Ric2VydmVyIHJlc3Bv bnNlLiIKKyAJICAgIH0KK2RpZmYgLS1naXQgYS9nZGIvdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rp b24tc3BlYy1zZWxmdGVzdHMuYyBiL2dkYi91bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVj LXNlbGZ0ZXN0cy5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIv Z2RiL3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMKK0BAIC0wLDAg KzEsMjQ5IEBACisrLyogU2VsZiB0ZXN0cyBmb3IgcGFyc2luZyBjb25uZWN0aW9uIHNwZWNzIGZv ciBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IChDKSAyMDE4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdE Qi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lu Y2x1ZGUgImRlZnMuaCIKKysjaW5jbHVkZSAic2VsZnRlc3QuaCIKKysjaW5jbHVkZSAiY29tbW9u L25ldHN0dWZmLmgiCisrI2luY2x1ZGUgImRpYWdub3N0aWNzLmgiCisrI2lmZGVmIFVTRV9XSU4z MkFQSQorKyNpbmNsdWRlIDx3aW5zb2NrMi5oPgorKyNpbmNsdWRlIDx3c3BpYXBpLmg+CisrI2Vs c2UKKysjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKysj aW5jbHVkZSA8bmV0ZGIuaD4KKysjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorKyNpbmNsdWRlIDxu ZXRpbmV0L3RjcC5oPgorKyNlbmRpZgorKworK25hbWVzcGFjZSBzZWxmdGVzdHMgeworK25hbWVz cGFjZSBwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHMgeworKworKy8qIEF1eGlsaWFyeSBzdHJ1 Y3QgdGhhdCBob2xkcyBpbmZvIGFib3V0IGEgc3BlY2lmaWMgdGVzdCBmb3IgYQorKyAgIGNvbm5l Y3Rpb24gc3BlYy4gICovCisrCisrc3RydWN0IHBhcnNlX2Nvbm5fdGVzdAorK3sKKysgIC8qIFRo ZSBjb25uZWN0aW9uIHNwZWMuICAqLworKyAgY29uc3QgY2hhciAqY29ubnNwZWM7CisrCisrICAv KiBFeHBlY3RlZCByZXN1bHQgZnJvbSAncGFyc2VfY29ubmVjdGlvbl9zcGVjJy4gICovCisrICBw YXJzZWRfY29ubmVjdGlvbl9zcGVjIGV4cGVjdGVkX3Jlc3VsdDsKKysKKysgIC8qIFRydWUgaWYg dGhpcyB0ZXN0IHNob3VsZCBmYWlsLCBmYWxzZSBvdGhlcndpc2UuICBJZiB0cnVlLCBvbmx5Cisr ICAgICB0aGUgQ09OTlNQRUMgZmllbGQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgdmFsaWQuICAq LworKyAgYm9vbCBzaG91bGRfZmFpbDsKKysKKysgIC8qIFRoZSBleHBlY3RlZCBBSV9GQU1JTFkg dG8gYmUgZm91bmQgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nCisrICAgICBISU5ULiAgKi8KKysg IGludCBleHBfYWlfZmFtaWx5OworKworKyAgLyogVGhlIGV4cGVjdGVkIEFJX1NPQ0tUWVBFIHRv IGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZvJworKyAgICAgSElOVC4gICovCisrICBp bnQgZXhwX2FpX3NvY2t0eXBlOworKworKyAgLyogVGhlIGV4cGVjdGVkIEFJX1BST1RPQ09MIHRv IGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZvJworKyAgICAgSElOVC4gICovCisrICBp bnQgZXhwX2FpX3Byb3RvY29sOworK307CisrCisrLyogU29tZSBkZWZpbmVzIHRvIGhlbHAgdXMg ZmlsbCBhICdzdHJ1Y3QgcGFyc2VfY29ubl90ZXN0Jy4gICovCisrCisrLyogSW5pdGlhbGl6ZSBh IGZ1bGwgZW50cnkuICAqLworKyNkZWZpbmUgSU5JVF9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQ X1BPUlQsIFNIT1VMRF9GQUlMLCBFWFBfQUlfRkFNSUxZLCBcCisrCQkgICBFWFBfQUlfU09DS1RZ UEUsIEVYUF9BSV9QUk9UT0NPTCkJCQlcCisrICB7IEFERFIsIHsgRVhQX0hPU1QsIEVYUF9QT1JU IH0sIFNIT1VMRF9GQUlMLCBFWFBfQUlfRkFNSUxZLCBcCisrICAgIEVYUF9BSV9TT0NLVFlQRSwg RVhQX0FJX1BST1RPQ09MIH0KKysKKysvKiBJbml0aWFsaXplIGFuIHVucHJlZml4ZWQgZW50cnku ICBJbiB0aGlzIGNhc2UsIHdlIGRvbid0IGV4cGVjdAorKyAgIGFueXRoaW5nIG9uIHRoZSAnc3Ry dWN0IGFkZHJpbmZvJyBISU5ULiAgKi8KKysjZGVmaW5lIElOSVRfVU5QUkVGSVhFRF9FTlRSWShB RERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKKysgIElOSVRfRU5UUlkgKEFERFIsIEVYUF9IT1NU LCBFWFBfUE9SVCwgZmFsc2UsIDAsIDAsIDApCisrCisrLyogSW5pdGlhbGl6ZWQgYW4gdW5wcmVm aXhlZCBJUHY2IGVudHJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSBkb24ndAorKyAgIGV4cGVjdCBhbnl0 aGluZyBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycgSElOVC4gICovCisrI2RlZmluZSBJTklUX1VO UFJFRklYRURfSVBWNl9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKKysgIElOSVRf RU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgZmFsc2UsIEFGX0lORVQ2LCAwLCAwKQor KworKy8qIEluaXRpYWxpemUgYSBwcmVmaXhlZCBlbnRyeS4gICovCisrI2RlZmluZSBJTklUX1BS RUZJWEVEX0VOVFJZKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgRVhQX0FJX0ZBTUlMWSwgXAor KwkJCSAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCkgXAorKyAgSU5JVF9FTlRS WSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBmYWxzZSwgRVhQX0FJX0ZBTUlMWSwgXAorKwkg ICAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCkKKysKKysvKiBJbml0aWFsaXpl IGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInRjcDQ6Ii4gICovCisrI2RlZmluZSBJTklUX1BSRUZJ WEVEX0lQVjRfVENQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAorKyAgSU5JVF9QUkVGSVhF RF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVULCBTT0NLX1NUUkVBTSwg XAorKwkJICAgICAgIElQUFJPVE9fVENQKQorKworKy8qIEluaXRpYWxpemUgYW4gZW50cnkgcHJl Zml4ZWQgd2l0aCAidGNwNjoiLiAgKi8KKysjZGVmaW5lIElOSVRfUFJFRklYRURfSVBWNl9UQ1Ao QUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCisrICBJTklUX1BSRUZJWEVEX0VOVFJZIChBRERS LCBFWFBfSE9TVCwgRVhQX1BPUlQsIEFGX0lORVQ2LCBTT0NLX1NUUkVBTSwgXAorKwkJICAgICAg IElQUFJPVE9fVENQKQorKworKy8qIEluaXRpYWxpemUgYW4gZW50cnkgcHJlZml4ZWQgd2l0aCAi dWRwNDoiLiAgKi8KKysjZGVmaW5lIElOSVRfUFJFRklYRURfSVBWNF9VRFAoQUREUiwgRVhQX0hP U1QsIEVYUF9QT1JUKSBcCisrICBJTklUX1BSRUZJWEVEX0VOVFJZIChBRERSLCBFWFBfSE9TVCwg RVhQX1BPUlQsIEFGX0lORVQsIFNPQ0tfREdSQU0sIFwKKysJCSAgICAgICBJUFBST1RPX1VEUCkK KysKKysvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInVkcDY6Ii4gICovCisr I2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjZfVURQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkg XAorKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9J TkVUNiwgU09DS19ER1JBTSwgXAorKwkJICAgICAgIElQUFJPVE9fVURQKQorKworKy8qIEluaXRp YWxpemUgYSBib2d1cyBlbnRyeSwgaS5lLiwgYSBjb25uZWN0aW9uIHNwZWMgdGhhdCBzaG91bGQK KysgICBmYWlsLiAgKi8KKysjZGVmaW5lIElOSVRfQk9HVVNfRU5UUlkoQUREUikgXAorKyAgSU5J VF9FTlRSWSAoQUREUiwgIiIsICIiLCB0cnVlLCAwLCAwLCAwKQorKworKy8qIFRoZSB2YXJpYWJs ZSB3aGljaCBob2xkcyBhbGwgb2Ygb3VyIHRlc3RzLiAgKi8KKysKKytzdGF0aWMgY29uc3QgcGFy c2VfY29ubl90ZXN0IGNvbm5fdGVzdFtdID0KKysgIHsKKysgICAgLyogVW5wcmVmaXhlZCBhZGRy ZXNzZXMuICAqLworKworKyAgICAvKiBJUHY0LCBob3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLwor KyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCIxMjcuMC4wLjE6MTIzNCIsICIxMjcuMC4wLjEi LCAiMTIzNCIpLAorKyAgICAvKiBJUHY0LCBvbmx5IGhvc3QuICAqLworKyAgICBJTklUX1VOUFJF RklYRURfRU5UUlkgKCIxMjcuMC4wLjEiLCAiMTI3LjAuMC4xIiwgIiIpLAorKyAgICAvKiBJUHY0 LCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCIxMjcuMC4w LjE6IiwgIjEyNy4wLjAuMSIsICIiKSwKKysKKysgICAgLyogSVB2NiwgaG9zdCBhbmQgcG9ydCBw cmVzZW50LCBubyBicmFja2V0cy4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9FTlRSWSAoIjo6 MToxMjM0IiwgIjo6MSIsICIxMjM0IiksCisrICAgIC8qIElQdjYsIG1pc3NpbmcgcG9ydCwgbm8g YnJhY2tldHMuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCI6OjE6IiwgIjo6MSIs ICIiKSwKKysgICAgLyogSVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LCB3aXRoIGJyYWNrZXRz LiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkgKCJbOjoxXToxMjM0IiwgIjo6 MSIsICIxMjM0IiksCisrICAgIC8qIElQdjYsIG9ubHkgaG9zdCwgd2l0aCBicmFja2V0cy4gICov CisrICAgIElOSVRfVU5QUkVGSVhFRF9JUFY2X0VOVFJZICgiWzo6MV0iLCAiOjoxIiwgIiIpLAor KyAgICAvKiBJUHY2LCBtaXNzaW5nIHBvcnQsIHdpdGggYnJhY2tldHMuICAqLworKyAgICBJTklU X1VOUFJFRklYRURfSVBWNl9FTlRSWSAoIls6OjFdOiIsICI6OjEiLCAiIiksCisrCisrICAgIC8q IFVuc3BlY2lmaWVkLCBvbmx5IHBvcnQuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkg KCI6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAorKworKyAgICAvKiBQcmVmaXhlZCBhZGRy ZXNzZXMuICAqLworKworKyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQsIGhvc3QgYW5kIHBv cnQgcHJlc2VudHMuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVENQICgidGNwNDoxMjcu MC4wLjE6MTIzNCIsICIxMjcuMC4wLjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNw NDoiIElQdjQsIG9ubHkgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0 Y3A0OjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A0 OiIgSVB2NCwgb25seSBob3N0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRj cDQ6MTI3LjAuMC4xIiwgIjEyNy4wLjAuMSIsICIiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDQ6 IiBJUHY0LCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVENQICgi dGNwNDoxMjcuMC4wLjE6IiwgIjEyNy4wLjAuMSIsICIiKSwKKysKKysgICAgLyogUHJlZml4ZWQg InVkcDQ6IiBJUHY0LCBob3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLworKyAgICBJTklUX1BSRUZJ WEVEX0lQVjRfVURQICgidWRwNDoxMjcuMC4wLjE6MTIzNCIsICIxMjcuMC4wLjEiLCAiMTIzNCIp LAorKyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQdjQsIG9ubHkgcG9ydC4gICovCisrICAgIElO SVRfUFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0OjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0Iiks CisrICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgb25seSBob3N0LiAgKi8KKysgICAgSU5J VF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xIiwgIjEyNy4wLjAuMSIsICIiKSwK KysgICAgLyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0LCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJ TklUX1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDoxMjcuMC4wLjE6IiwgIjEyNy4wLjAuMSIsICIi KSwKKysKKysKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBob3N0IGFuZCBwb3J0IHBy ZXNlbnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6OjE6MTIzNCIs ICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYsIG9ubHkgcG9y dC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2OjoxMjM0IiwgImxvY2Fs aG9zdCIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2Niwgb25seSBob3N0 LiAgKi8KKysgICAgLy9JTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6OjEiLCAiOjoxIiwg IiIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYsIG1pc3NpbmcgcG9ydC4gICovCisr ICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ojo6MToiLCAiOjoxIiwgIiIpLAorKwor KyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICov CisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MToxMjM0IiwgIjo6MSIsICIx MjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2Niwgb25seSBwb3J0LiAgKi8KKysg ICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6OjEyMzQiLCAibG9jYWxob3N0IiwgIjEy MzQiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBvbmx5IGhvc3QuICAqLworKyAg ICAvL0lOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MSIsICI6OjEiLCAiIiksCisrICAg IC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2NiwgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9Q UkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6OjoxOiIsICI6OjEiLCAiIiksCisrCisrICAgIC8qIFBy ZWZpeGVkICJ0Y3A2OiIgSVB2NiB3aXRoIGJyYWNrZXRzLCBob3N0IGFuZCBwb3J0IHByZXNlbnQu ICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjpbOjoxXToxMjM0IiwgIjo6 MSIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiB3aXRoIGJyYWNrZXRz LCBvbmx5IGhvc3QuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjpbOjox XSIsICI6OjEiLCAiIiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiB3aXRoIGJyYWNr ZXRzLCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNw NjpbOjoxXToiLCAiOjoxIiwgIiIpLAorKworKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYg d2l0aCBicmFja2V0cywgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KKysgICAgSU5JVF9QUkVG SVhFRF9JUFY2X1VEUCAoInVkcDY6Wzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAv KiBQcmVmaXhlZCAidWRwNjoiIElQdjYgd2l0aCBicmFja2V0cywgb25seSBob3N0LiAgKi8KKysg ICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6Wzo6MV0iLCAiOjoxIiwgIiIpLAorKyAg ICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYgd2l0aCBicmFja2V0cywgbWlzc2luZyBwb3J0LiAg Ki8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6Wzo6MV06IiwgIjo6MSIsICIi KSwKKysKKysKKysgICAgLyogQm9ndXMgYWRkcmVzc2VzLiAgKi8KKysgICAgSU5JVF9CT0dVU19F TlRSWSAoInRjcDY6Wzo6MV0xMjM6NDQiKSwKKysgICAgSU5JVF9CT0dVU19FTlRSWSAoIls6OjEi KSwKKysgICAgSU5JVF9CT0dVU19FTlRSWSAoInRjcDY6OjoxXToiKSwKKysgIH07CisrCisrLyog VGVzdCBhIGNvbm5lY3Rpb24gc3BlYyBDLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3Rlc3RfY29u biAoY29uc3QgcGFyc2VfY29ubl90ZXN0ICZjKQorK3sKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50 OworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyByZXQ7CisrCisrICBtZW1zZXQgKCZoaW50LCAw LCBzaXplb2YgKGhpbnQpKTsKKysKKysgIFRSWQorKyAgICB7CisrICAgICAgcmV0ID0gcGFyc2Vf Y29ubmVjdGlvbl9zcGVjIChjLmNvbm5zcGVjLCAmaGludCk7CisrICAgIH0KKysgIENBVENIIChl eCwgUkVUVVJOX01BU0tfRVJST1IpCisrICAgIHsKKysgICAgICAvKiBJZiB3ZSBjYXVnaHQgYW4g ZXJyb3IsIHdlIHNob3VsZCBjaGVjayBpZiB0aGlzIGNvbm5lY3Rpb24KKysJIHNwZWMgd2FzIHN1 cHBvc2VkIHRvIGZhaWwuICAqLworKyAgICAgIFNFTEZfQ0hFQ0sgKGMuc2hvdWxkX2ZhaWwpOwor KyAgICAgIHJldHVybjsKKysgICAgfQorKyAgRU5EX0NBVENICisrCisrICBTRUxGX0NIRUNLICgh Yy5zaG91bGRfZmFpbCk7CisrICBTRUxGX0NIRUNLIChyZXQuaG9zdF9zdHIgPT0gYy5leHBlY3Rl ZF9yZXN1bHQuaG9zdF9zdHIpOworKyAgU0VMRl9DSEVDSyAocmV0LnBvcnRfc3RyID09IGMuZXhw ZWN0ZWRfcmVzdWx0LnBvcnRfc3RyKTsKKysgIFNFTEZfQ0hFQ0sgKGhpbnQuYWlfZmFtaWx5ID09 IGMuZXhwX2FpX2ZhbWlseSk7CisrICBTRUxGX0NIRUNLIChoaW50LmFpX3NvY2t0eXBlID09IGMu ZXhwX2FpX3NvY2t0eXBlKTsKKysgIFNFTEZfQ0hFQ0sgKGhpbnQuYWlfcHJvdG9jb2wgPT0gYy5l eHBfYWlfcHJvdG9jb2wpOworK30KKysKKysvKiBSdW4gdGhlIHRlc3RzIGFzc29jaWF0ZWQgd2l0 aCBwYXJzaW5nIGNvbm5lY3Rpb24gc3BlY3MuICAqLworKworK3N0YXRpYyB2b2lkCisrcnVuX3Rl c3RzICgpCisreworKyAgZm9yIChjb25zdCBwYXJzZV9jb25uX3Rlc3QgJmMgOiBjb25uX3Rlc3Qp CisrICAgIHRlc3RfY29ubiAoYyk7CisrfQorK30gLyogbmFtZXNwYWNlIHBhcnNlX2Nvbm5lY3Rp b25fc3BlY190ZXN0cyAqLworK30gLyogbmFtZXNwYWNlIHNlbGZ0ZXN0cyAqLworKworK3ZvaWQK KytfaW5pdGlhbGl6ZV9wYXJzZV9jb25uZWN0aW9uX3NwZWNfc2VsZnRlc3RzICgpCisreworKyAg c2VsZnRlc3RzOjpyZWdpc3Rlcl90ZXN0ICgicGFyc2VfY29ubmVjdGlvbl9zcGVjIiwKKysJCQkg ICAgc2VsZnRlc3RzOjpwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHM6OnJ1bl90ZXN0cyk7Cisr fQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaCBiL2dkYi1yaGJ6 ODgxODQ5LWlwdjYtMW9mMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Mz YTY2NC4uMDAwMDAwMAotLS0gYS9nZGItcmhiejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxOTM0ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJl ZGhhdC5jb20+Ci1EYXRlOiBGcmksIDE4IE1heSAyMDE4IDAxOjI5OjI0IC0wNDAwCi1TdWJqZWN0 OiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKLQotOzsgSW1wbGVtZW50IElQdjYgc3Vw cG9ydCBmb3IgR0RCL2dkYnNlcnZlciAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5p b3IpLgotCi1JbXBsZW1lbnQgSVB2NiBzdXBwb3J0IGZvciBHREIvZ2Ric2VydmVyCi0KLVRoaXMg cGF0Y2ggaW1wbGVtZW50cyBJUHY2IHN1cHBvcnQgZm9yIGJvdGggR0RCIGFuZCBnZGJzZXJ2ZXIu ICBCYXNlZAotb24gbXkgcmVzZWFyY2gsIGl0IGlzIHRoZSBmb3VydGggYXR0ZW1wdCB0byBkbyB0 aGF0IHNpbmNlIDIwMDYuICBTaW5jZQotSSB1c2VkIGlkZWFzIGZyb20gYWxsIG9mIHRoZSBwcmV2 aW91cyBwYXRjaGVzLCBJIGFsc28gYWRkZWQgdGhlaXIKLWF1dGhvcnMncyBuYW1lcyBvbiB0aGUg Q2hhbmdlTG9ncyBhcyBhIHdheSB0byByZWNvZ25pemUgdGhlaXIKLWVmZm9ydHMuICBGb3IgcmVm ZXJlbmNlIHNha2UsIHlvdSBjYW4gZmluZCB0aGUgcHJldmlvdXMgYXR0ZW1wdHMgYXQ6Ci0KLSAg aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA2LTA5L21zZzAwMTkyLmh0 bWwKLQotICBodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDIvbXNn MDAyNDguaHRtbAotCi0gIGh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAx Ni0wMi9tc2cwMDIyNi5odG1sCi0KLVRoZSBiYXNpYyBpZGVhIGJlaGluZCB0aGUgcGF0Y2ggaXMg dG8gc3RhcnQgdXNpbmcgdGhlIG5ldwotJ2dldGFkZHJpbmZvJy8nZ2V0bmFtZWluZm8nIGNhbGxz LCB3aGljaCBhcmUgcmVzcG9uc2libGUgZm9yCi10cmFuc2xhdGluZyBuYW1lcyBhbmQgYWRkcmVz c2VzIGluIGEgcHJvdG9jb2wtaW5kZXBlbmRlbnQgd2F5LiAgVGhpcwotbWVhbnMgdGhhdCBpZiB3 ZSBldmVyIGhhdmUgYSBuZXcgdmVyc2lvbiBvZiB0aGUgSVAgcHJvdG9jb2wsIHdlIHdvbid0Ci1u ZWVkIHRvIGNoYW5nZSB0aGUgY29kZSBhZ2FpbiAob3IsIGF0IGxlYXN0LCB3b24ndCBoYXZlIHRv IGNoYW5nZSB0aGUKLW1ham9yaXR5IG9mIHRoZSBjb2RlKS4KLQotVGhlIGZ1bmN0aW9uICdnZXRh ZGRyaW5mbycgcmV0dXJucyBhIGxpbmtlZCBsaXN0IG9mIHBvc3NpYmxlIGFkZHJlc3NlcwotdG8g Y29ubmVjdCB0by4gIERlYWxpbmcgd2l0aCBtdWx0aXBsZSBhZGRyZXNzZXMgcHJvdmVkIHRvIGJl IGEgaGFyZAotdGFzayB3aXRoIHRoZSBjdXJyZW50IFRDUCBhdXRvLXJldHJ5IG1lY2hhbmlzbSBp bXBsZW1lbnRlZCBvbgotc2VyLXRjcDpuZXRfb3Blbi4gIEZvciBleGFtcGxlLCB3aGVuIGdkYnNl cnZlciBsaXN0ZW5lZCBvbmx5IG9uIGFuCi1JUHY0IHNvY2tldDoKLQotICAkIC4vZ2Ric2VydmVy IC0tb25jZSAxMjcuMC4wLjE6MTIzNCAuL2Eub3V0Ci0KLWFuZCBHREIgd2FzIGluc3RydWN0ZWQg dG8gdHJ5IHRvIGNvbm5lY3QgdG8gYm90aCBJUHY2IGFuZCBJUHY0Ci1zb2NrZXRzOgotCi0gICQg Li9nZGIgLWV4ICd0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIGxvY2FsaG9zdDoxMjM0JyAuL2Eub3V0 Ci0KLXRoZSB1c2VyIHdvdWxkIG5vdGljZSBhIHNvbWV3aGF0IGJpZyBkZWxheSBiZWZvcmUgR0RC IHdhcyBhYmxlIHRvCi1jb25uZWN0IHRvIHRoZSBJUHY0IHNvY2tldC4gIFRoaXMgaGFwcGVuZWQg YmVjYXVzZSBHREIgd2FzIHRyeWluZyB0bwotY29ubmVjdCB0byB0aGUgSVB2NiBzb2NrZXQgZmly c3QsIGFuZCBoYWQgdG8gd2FpdCB1bnRpbCB0aGUgY29ubmVjdGlvbgotdGltZWQgb3V0IGJlZm9y ZSBpdCB0cmllZCB0byBjb25uZWN0IHRvIHRoZSBJUHY0IHNvY2tldC4KLQotRm9yIHRoYXQgcmVh c29uLCBJIGhhZCB0byByZXdyaXRlIHRoZSBtYWluIGxvb3AgYW5kIGltcGxlbWVudCBhIG5ldwot bWV0aG9kIGZvciBoYW5kbGluZyBtdWx0aXBsZSBjb25uZWN0aW9ucy4gIEFmdGVyIHNvbWUgZGlz Y3Vzc2lvbiwKLVBlZHJvIGFuZCBJIGFncmVlZCBvbiB0aGUgZm9sbG93aW5nIGFsZ29yaXRobToK LQotICAxKSBGb3IgZWFjaCBlbnRyeSByZXR1cm5lZCBieSAnZ2V0YWRkcmluZm8nLCB3ZSB0cnkg dG8gb3BlbiBhIHNvY2tldAotICBhbmQgY29ubmVjdCB0byBpdC4KLQotICAyLmEpIElmIHdlIGhh dmUgYSBzdWNjZXNzZnVsICdjb25uZWN0Jywgd2UganVzdCB1c2UgdGhhdCBjb25uZWN0aW9uLgot Ci0gIDIuYikgSWYgd2UgZG9uJ3QgaGF2ZSBhIHN1Y2Nlc3NmdWxsICdjb25uZWN0JywgYnV0IGlm IHdlJ3ZlIGdvdCBhCi0gIEVDT05OUkVGVVNFRCAobWVhbmluZyB0aGUgdGhlIGNvbm5lY3Rpb24g d2FzIHJlZnVzZWQpLCB3ZSBrZWVwIHRyYWNrCi0gIG9mIHRoaXMgZmFjdCBieSB1c2luZyBhIGZs YWcuCi0KLSAgMi5jKSBJZiB3ZSBkb24ndCBoYXZlIGEgc3VjY2Vzc2Z1bGwgJ2Nvbm5lY3QnLCBi dXQgaWYgd2UndmUgZ290IGEKLSAgRUlOUFJPR1JFU1MgKG1lYW5pbmcgdGhhdCB0aGUgY29ubmVj dGlvbiBpcyBpbiBwcm9ncmVzcyksIHdlIHBlcmZvcm0KLSAgYSAnc2VsZWN0JyBjYWxsIG9uIHRo ZSBzb2NrZXQgdW50aWwgd2UgaGF2ZSBhIHJlc3VsdCAoZWl0aGVyIGEKLSAgc3VjY2Vzc2Z1bCBj b25uZWN0aW9uLCBvciBhbiBlcnJvciBvbiB0aGUgc29ja2V0KS4KLQotICAzKSBJZiB0Y3BfYXV0 b19yZXRyeSBpcyB0cnVlLCBhbmQgd2UgaGF2ZW4ndCBnb3R0ZW4gYSBzdWNjZXNzZnVsCi0gIGNv bm5lY3Rpb24sIGFuZCBhdCBsZWFzdCBvbmUgb2Ygb3VyIGF0dGVtcHRzIGZhaWxlZCB3aXRoCi0g IEVDT05OUkVGVVNFRCwgdGhlbiB3ZSB3YWl0IGEgbGl0dGxlIGJpdCAoaS5lLiwgY2FsbAotICAn d2FpdF9mb3JfY29ubmVjdCcpLCBjaGVjayB0byBzZWUgaWYgdGhlcmUgd2FzIGEKLSAgdGltZW91 dC9pbnRlcnJ1cHRpb24gKGluIHdoaWNoIGNhc2Ugd2UgYmFpbCBvdXQpLCBhbmQgdGhlbiBnbyBi YWNrCi0gIHRvICgxKS4KLQotQWZ0ZXIgbXVsdGlwbGUgdGVzdHMsIEkgd2FzIGFibGUgdG8gY29u bmVjdCB3aXRob3V0IGRlbGF5IG9uIHRoZQotc2NlbmFyaW8gZGVzY3JpYmVkIGFib3ZlLCBhbmQg d2FzIGFsc28gYWJsZSB0byBjb25uZWN0IGluIGFsbCBvdGhlcgotdHlwZXMgb2Ygc2NlbmFyaW9z LgotCi1JIGFsc28gaW1wbGVtZW50ZWQgc29tZSBob3N0bmFtZSBwYXJzaW5nIGZ1bmN0aW9ucyAo YWxvbmcgd2l0aCB0aGVpcgotY29ycmVzcG9uZGluZyB1bml0IHRlc3RzKSB3aGljaCBhcmUgdXNl ZCB0byBoZWxwIEdEQiBhbmQgZ2Ric2VydmVyIHRvCi1wYXJzZSBob3N0bmFtZSBzdHJpbmdzIHBy b3ZpZGVkIGJ5IHRoZSB1c2VyLiAgVGhlc2UgbmV3IGZ1bmN0aW9ucyBhcmUKLWxpdmluZyBpbnNp ZGUgY29tbW9uL25ldHN0dWZmLltjaF0uICBJJ3ZlIGhhZCB0byBkbyB0aGF0IHNpbmNlIElQdjYK LWludHJvZHVjZXMgYSBuZXcgVVJMIHNjaGVtZSwgd2hpY2ggZGVmaW5lcyB0aGF0IHNxdWFyZSBi cmFja2V0cyBjYW4gYmUKLXVzZWQgdG8gZW5jbG9zZSB0aGUgaG9zdCBwYXJ0IGFuZCBkaWZmZXJl bnRpYXRlIGl0IGZyb20gdGhlCi1wb3J0IChlLmcuLCAiWzo6MV06MTIzNCIgbWVhbnMgImhvc3Qg OjoxLCBwb3J0IDEyMzQiKS4gIEkgc3BlbnQgc29tZQotdGltZSB0aGlua2luZyBhYm91dCBhIHJl YXNvbmFibGUgd2F5IHRvIGludGVycHJldCB3aGF0IHRoZSB1c2VyIHdhbnRzLAotYW5kIEkgY2Ft ZSB1cCB3aXRoIHRoZSBmb2xsb3dpbmc6Ci0KLSAgLSBJZiB0aGUgdXNlciBoYXMgcHJvdmlkZWQg YSBwcmVmaXggdGhhdCBkb2Vzbid0IHNwZWNpZnkgdGhlIHByb3RvY29sCi0gICAgdmVyc2lvbiAo aS5lLiwgInRjcDoiIG9yICJ1ZHA6IiksIG9yIGlmIHRoZSB1c2VyIGhhcyBub3QgcHJvdmlkZWQK LSAgICBhbnkgcHJlZml4LCBkb24ndCBtYWtlIGFueSBhc3N1bXB0aW9ucyAoaS5lLiwgYXNzdW1l IEFGX1VOU1BFQyB3aGVuCi0gICAgZGVhbGluZyB3aXRoICdnZXRhZGRyaW5mbycpICp1bmxlc3Mq IHRoZSBob3N0IHN0YXJ0cyB3aXRoICJbIiAoaW4KLSAgICB3aGljaCBjYXNlLCBhc3N1bWUgaXQn cyBhbiBJUHY2IGhvc3QpLgotCi0gIC0gSWYgdGhlIHVzZXIgaGFzIHByb3ZpZGVkIGEgcHJlZml4 IHRoYXQgZG9lcyBzcGVjaWZ5IHRoZSBwcm90b2NvbAotICAgIHZlcnNpb24gKGkuZS4sICJ0Y3A0 OiIsICJ0Y3A2OiIsICJ1ZHA0OiIgb3IgInVkcDY6IiksIHRoZW4gcmVzcGVjdAotICAgIHRoYXQu Ci0KLVRoaXMgbWV0aG9kIGRvZXNuJ3QgZm9sbG93IHN0cmljdGx5IHdoYXQgUkZDIDI3MzIgcHJv cG9zZXMgKHRoYXQKLWxpdGVyYWwgSVB2NiBhZGRyZXNzZXMgc2hvdWxkIGJlIHByb3ZpZGVkIGVu Y2xvc2VkIGluICJbIiBhbmQgIl0iKQotYmVjYXVzZSBJUHY2IGFkZHJlc3NlcyBzdGlsbCBjYW4g YmUgcHJvdmlkZWQgd2l0aG91dCBzcXVhcmUgYnJhY2tldHMKLWluIG91ciBjYXNlLCBidXQgc2lu Y2Ugd2UgaGF2ZSBwcmVmaXhlcyB0byBzcGVjaWZ5IHByb3RvY29sIHZlcnNpb25zIEkKLXRoaW5r IHRoaXMgaXMgbm90IGFuIGlzc3VlLgotCi1Bbm90aGVyIHRoaW5nIHdvcnRoIG1lbnRpb25pbmcg aXMgdGhlIG5ldyAnR0RCX1RFU1RfU09DS0VUSE9TVCcKLXRlc3RjYXNlIHBhcmFtZXRlciwgd2hp Y2ggbWFrZXMgaXQgcG9zc2libGUgdG8gc3BlY2lmeSB0aGUKLWhvc3RuYW1lICh3aXRob3V0IHRo ZSBwb3J0KSB0byBiZSB1c2VkIHdoZW4gdGVzdGluZyBHREIgYW5kCi1nZGJzZXJ2ZXIuICBGb3Ig ZXhhbXBsZSwgdG8gcnVuIElQdjYgdGVzdHM6Ci0KLSAgJCBtYWtlIGNoZWNrLWdkYiBSVU5URVNU RkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9dGNwNjpbOjoxXScKLQotT3IsIHRvIHJ1biBJUHY0 IHRlc3RzOgotCi0gICQgbWFrZSBjaGVjay1nZGIgUlVOVEVTVEZMQUdTPSdHREJfVEVTVF9TT0NL RVRIT1NUPXRjcDQ6MTI3LjAuMC4xJwotCi1UaGlzIHJlcXVpcmVkIGEgZmV3IGNoYW5nZXMgb24g dGhlIGdkYnNlcnZlci1iYXNlLmV4cCwgYW5kIGFsc28gYQotbWluaW1hbCBhZGp1c3RtZW50IG9u IGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cC4KLQotRmluYWxseSwgSSd2 ZSBpbXBsZW1lbnRlZCBhIG5ldyB0ZXN0Y2FzZSwKLWdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3Qu ZXhwLCB3aGljaCBpcyBzdXBwb3NlZCB0byBydW4gb24gdGhlIG5hdGl2ZQotaG9zdCBhbmQgcGVy Zm9ybSB2YXJpb3VzICJzbW9rZSB0ZXN0cyIgdXNpbmcgZGlmZmVyZW50IGNvbm5lY3Rpb24KLW1l dGhvZHMuCi0KLVRoaXMgcGF0Y2ggaGFzIGJlZW4gcmVncmVzc2lvbi10ZXN0ZWQgb24gQnVpbGRC b3QgYW5kIGxvY2FsbHksIGFuZAotYWxzbyBidWlsdCB1c2luZyBhIHg4Nl82NC13NjQtbWluZ3cz MiBHQ0MsIGFuZCBubyBwcm9ibGVtcyB3ZXJlIGZvdW5kLgotCi1nZGIvQ2hhbmdlTG9nOgotMjAx OC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLQkg ICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCSAgICBQYXVs IEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgotCSAgICBUc3V0b211IFNla2kgIDxzZWtp cmlraUBnbWFpbC5jb20+Ci0JICAgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0K LQkqIE1ha2VmaWxlLmluIChTVUJESVJfVU5JVFRFU1RTX1NSQ1MpOiBBZGQKLQkndW5pdHRlc3Rz L3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYycuCi0JKENPTU1PTl9TRklMRVMpOiBB ZGQgJ2NvbW1vbi9uZXRzdHVmZi5jJy4KLQkoSEZJTEVTX05PX1NSQ0RJUik6IEFkZCAnY29tbW9u L25ldHN0dWZmLmgnLgotCSogTkVXUyAoQ2hhbmdlcyBzaW5jZSBHREIgOC4yKTogTWVudGlvbiBJ UHY2IHN1cHBvcnQuCi0JKiBjb21tb24vbmV0c3R1ZmYuYzogTmV3IGZpbGUuCi0JKiBjb21tb24v bmV0c3R1ZmYuaDogTmV3IGZpbGUuCi0JKiBzZXItdGNwLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgn IGFuZCAnd3NwaWFwaS5oJy4KLQkod2FpdF9mb3JfY29ubmVjdCk6IFVwZGF0ZSBjb21tZW50LiAg TmV3IHBhcmFtZXRlcgotCSdnZGI6Om9wdGlvbmFsPGludD4gc29jaycgaW5zdGVhZCBvZiAnc3Ry dWN0IHNlcmlhbCAqc2NiJy4KLQlVc2UgJ3NvY2snIGRpcmVjdGx5IGluc3RlYWQgb2YgJ3NjYi0+ ZmQnLgotCSh0cnlfY29ubmVjdCk6IE5ldyBmdW5jdGlvbiwgd2l0aCBjb2RlIGZyb20gJ25ldF9v cGVuJy4KLQkobmV0X29wZW4pOiBSZXdyaXRlIG1haW4gbG9vcCB0byBkZWFsIHdpdGggbXVsdGlw bGUKLQlzb2NrZXRzL2FkZHJlc3Nlcy4gIEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1w bGVtZW50Ci0Jc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KLQkqIHVuaXR0ZXN0cy9wYXJz ZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmM6IE5ldyBmaWxlLgotCi1nZGIvZ2Ric2VydmVy L0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2Rq QHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KLQkgICAgVHN1 dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotCi0JKiBNYWtlZmlsZS5pbiAoU0ZJTEVT KTogQWRkICckKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMnLgotCShPQlMpOiBBZGQgJ2NvbW1v bi9uZXRzdHVmZi5vJy4KLQkoR0RCUkVQTEFZX09CUyk6IExpa2V3aXNlLgotCSogZ2RicmVwbGF5 LmM6IEluY2x1ZGUgJ3dzcGlhcGkuaCcgYW5kICduZXRzdHVmZi5oJy4KLQkocmVtb3RlX29wZW4p OiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2NgotCWNvbm5lY3Rpb25zLgotCSogcmVtb3RlLXV0 aWxzLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnLCAnZmlsZXN0dWZmLmgnCi0JYW5kICd3c3BpYXBp LmgnLgotCShoYW5kbGVfYWNjZXB0X2V2ZW50KTogQWNjZXB0IGNvbm5lY3Rpb25zIGZyb20gSVB2 NiBzb3VyY2VzLgotCShyZW1vdGVfcHJlcGFyZSk6IEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1l czsgaW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KLQkocmVtb3RlX29w ZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgcHJpbnRpbmcgY29ubmVjdGlvbnMgZnJvbQotCUlQ djYgc291cmNlcy4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6Ci0yMDE4LTA3LTExICBTZXJn aW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotCSAgICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0JICAgIFBhdWwgRmVydHNlciAgPGZl cmNlcnBhdkBnbWFpbC5jb20+Ci0JICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNv bT4KLQotCSogUkVBRE1FIChUZXN0c3VpdGUgUGFyYW1ldGVycyk6IE1lbnRpb24gbmV3ICdHREJf VEVTVF9TT0NLRVRIT1NUJwotCXBhcmFtZXRlci4KLQkqIGJvYXJkcy9uYXRpdmUtZXh0ZW5kZWQt Z2Ric2VydmVyLmV4cDogRG8gbm90IHNldCAnc29ja2V0aG9zdCcKLQlieSBkZWZhdWx0LgotCSog Ym9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4KLQkqIGdkYi5zZXJ2ZXIvcnVu LXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cDogSW1wcm92ZSByZWdleHAgdXNlZAotCWZvciBkZXRl Y3Rpbmcgd2hlbiBhIHJlbW90ZSBkZWJ1Z2dpbmcgY29ubmVjdGlvbiBzdWNjZWVkcy4KLQkqIGdk Yi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4KLQkqIGxpYi9nZGJzZXJ2ZXIt c3VwcG9ydC5leHAgKGdkYnNlcnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQpOgotCURvIG5vdCBw cmVmaXggdGhlIHBvcnQgbnVtYmVyIHdpdGggIjoiLgotCShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcg Z2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQKLQlzdXBwb3J0IGZvciBkZXRl Y3RpbmcgYW5kIHVzaW5nIGl0LiAgQWRkICckZGVidWdob3N0X2dkYnNlcnZlcicKLQl0byB0aGUg bGlzdCBvZiBhcmd1bWVudHMgdXNlZCB0byBzdGFydCBnZGJzZXJ2ZXIuICBIYW5kbGUgY2FzZQot CXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGEgbmV0d29yayBuYW1lLgotCi1nZGIvZG9j L0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2Rq QHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KLQkgICAgVHN1 dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotCi0JKiBnZGIudGV4aW5mbyAoUmVtb3Rl IENvbm5lY3Rpb24gQ29tbWFuZHMpOiBBZGQgZXhwbGFuYXRpb24KLQlhYm91dCBuZXcgSVB2NiBz dXBwb3J0LiAgQWRkIG5ldyBjb25uZWN0aW9uIHByZWZpeGVzLgotCi1kaWZmIC0tZ2l0IGEvZ2Ri L01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCi0tLS0gYS9nZGIvTWFrZWZpbGUuaW4KLSsr KyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTQzMCw2ICs0MzAsNyBAQCBTVUJESVJfVU5JVFRFU1RT X1NSQ1MgPSBcCi0gCXVuaXR0ZXN0cy9vZmZzZXQtdHlwZS1zZWxmdGVzdHMuYyBcCi0gCXVuaXR0 ZXN0cy9vYnNlcnZhYmxlLXNlbGZ0ZXN0cy5jIFwKLSAJdW5pdHRlc3RzL29wdGlvbmFsLXNlbGZ0 ZXN0cy5jIFwKLSsJdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYyBc Ci0gCXVuaXR0ZXN0cy9wdGlkLXNlbGZ0ZXN0cy5jIFwKLSAJdW5pdHRlc3RzL3JzcC1sb3ctc2Vs ZnRlc3RzLmMgXAotIAl1bml0dGVzdHMvc2NvcGVkX2ZkLXNlbGZ0ZXN0cy5jIFwKLUBAIC05Njcs NiArOTY4LDcgQEAgQ09NTU9OX1NGSUxFUyA9IFwKLSAJY29tbW9uL2pvYi1jb250cm9sLmMgXAot IAljb21tb24vZ2RiX3RpbGRlX2V4cGFuZC5jIFwKLSAJY29tbW9uL2dkYl92ZWNzLmMgXAotKwlj b21tb24vbmV0c3R1ZmYuYyBcCi0gCWNvbW1vbi9uZXctb3AuYyBcCi0gCWNvbW1vbi9wYXRoc3R1 ZmYuYyBcCi0gCWNvbW1vbi9wcmludC11dGlscy5jIFwKLUBAIC0xNDQ4LDYgKzE0NTAsNyBAQCBI RklMRVNfTk9fU1JDRElSID0gXAotIAljb21tb24vZ2RiX3ZlY3MuaCBcCi0gCWNvbW1vbi9nZGJf d2FpdC5oIFwKLSAJY29tbW9uL2NvbW1vbi1pbmZlcmlvci5oIFwKLSsJY29tbW9uL25ldHN0dWZm LmggXAotIAljb21tb24vaG9zdC1kZWZzLmggXAotIAljb21tb24vcGF0aHN0dWZmLmggXAotIAlj b21tb24vcHJpbnQtdXRpbHMuaCBcCi1kaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUwot LS0tIGEvZ2RiL05FV1MKLSsrKyBiL2dkYi9ORVdTCi1AQCAtMSw2ICsxLDEyIEBACi0gCQlXaGF0 IGhhcyBjaGFuZ2VkIGluIEdEQj8KLSAJICAgICAoT3JnYW5pemVkIHJlbGVhc2UgYnkgcmVsZWFz ZSkKLSAKLSsqKiogQ2hhbmdlcyBzaW5jZSBHREIgOC4yCi0rCi0rKiBHREIgYW5kIEdEQnNlcnZl ciBub3cgc3VwcG9ydCBJUHY2IGNvbm5lY3Rpb25zLiAgSVB2NiBhZGRyZXNzZXMKLSsgIGNhbiBi ZSBwYXNzZWQgdXNpbmcgdGhlICdbQUREUkVTU106UE9SVCcgbm90YXRpb24sIG9yIHRoZSByZWd1 bGFyCi0rICAnQUREUkVTUzpQT1JUJyBtZXRob2QuCi0rCi0gKioqIENoYW5nZXMgaW4gR0RCIDgu MgotIAotICogVGhlICdzZXQgZGlzYXNzZW1ibGVyLW9wdGlvbnMnIGNvbW1hbmQgbm93IHN1cHBv cnRzIHNwZWNpZnlpbmcgb3B0aW9ucwotZGlmZiAtLWdpdCBhL2dkYi9jb21tb24vbmV0c3R1ZmYu YyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2 L251bGwKLSsrKyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYwotQEAgLTAsMCArMSwxNTUgQEAKLSsv KiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCi0rICAgQ29weXJpZ2h0IChDKSAyMDE4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK LSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0r I2luY2x1ZGUgImNvbW1vbi1kZWZzLmgiCi0rI2luY2x1ZGUgIm5ldHN0dWZmLmgiCi0rI2luY2x1 ZGUgPGFsZ29yaXRobT4KLSsKLSsjaWZkZWYgVVNFX1dJTjMyQVBJCi0rI2luY2x1ZGUgPHdpbnNv Y2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSsjZWxzZQotKyNpbmNsdWRlIDxuZXRpbmV0 L2luLmg+Ci0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotKyNpbmNsdWRlIDxuZXRkYi5oPgotKyNp bmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPG5ldGluZXQvdGNwLmg+Ci0rI2VuZGlm Ci0rCi0rLyogU2VlIGNvbW1vbi9uZXRzdHVmZi5oLiAgKi8KLSsKLStzY29wZWRfZnJlZV9hZGRy aW5mbzo6fnNjb3BlZF9mcmVlX2FkZHJpbmZvICgpCi0rewotKyAgZnJlZWFkZHJpbmZvIChtX3Jl cyk7Ci0rfQotKwotKy8qIFNlZSBjb21tb24vbmV0c3R1ZmYuaC4gICovCi0rCi0rcGFyc2VkX2Nv bm5lY3Rpb25fc3BlYwotK3BhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAoc3Rk OjpzdHJpbmcgc3BlYywgc3RydWN0IGFkZHJpbmZvICpoaW50KQotK3sKLSsgIHBhcnNlZF9jb25u ZWN0aW9uX3NwZWMgcmV0OwotKyAgc2l6ZV90IGxhc3RfY29sb25fcG9zID0gMDsKLSsgIC8qIFdl J3JlIGRlYWxpbmcgd2l0aCBJUHY2IGlmOgotKwotKyAgICAgLSBhaV9mYW1pbHkgaXMgQUZfSU5F VDYsIG9yCi0rICAgICAtIGFpX2ZhbWlseSBpcyBub3QgQUZfSU5FVCwgYW5kCi0rICAgICAgIC0g c3BlY1swXSBpcyAnWycsIG9yCi0rICAgICAgIC0gdGhlIG51bWJlciBvZiAnOicgb24gc3BlYyBp cyBncmVhdGVyIHRoYW4gMS4gICovCi0rICBib29sIGlzX2lwdjYgPSAoaGludC0+YWlfZmFtaWx5 ID09IEFGX0lORVQ2Ci0rCQkgIHx8IChoaW50LT5haV9mYW1pbHkgIT0gQUZfSU5FVAotKwkJICAg ICAgJiYgKHNwZWNbMF0gPT0gJ1snCi0rCQkJICB8fCBzdGQ6OmNvdW50IChzcGVjLmJlZ2luICgp LAotKwkJCQkJIHNwZWMuZW5kICgpLCAnOicpID4gMSkpKTsKLSsKLSsgIGlmIChpc19pcHY2KQot KyAgICB7Ci0rICAgICAgaWYgKHNwZWNbMF0gPT0gJ1snKQotKwl7Ci0rCSAgLyogSVB2NiBhZGRy ZXNzZXMgY2FuIGJlIHdyaXR0ZW4gYXMgJ1tBRERSXTpQT1JUJywgYW5kIHdlCi0rCSAgICAgc3Vw cG9ydCB0aGlzIG5vdGF0aW9uLiAgKi8KLSsJICBzaXplX3QgY2xvc2VfYnJhY2tldF9wb3MgPSBz cGVjLmZpbmRfZmlyc3Rfb2YgKCddJyk7Ci0rCi0rCSAgaWYgKGNsb3NlX2JyYWNrZXRfcG9zID09 IHN0ZDo6c3RyaW5nOjpucG9zKQotKwkgICAgZXJyb3IgKF8oIk1pc3NpbmcgY2xvc2UgYnJhY2tl dCBpbiBob3N0bmFtZSAnJXMnIiksCi0rCQkgICBzcGVjLmNfc3RyICgpKTsKLSsKLSsJICBoaW50 LT5haV9mYW1pbHkgPSBBRl9JTkVUNjsKLSsKLSsJICBjb25zdCBjaGFyIGMgPSBzcGVjW2Nsb3Nl X2JyYWNrZXRfcG9zICsgMV07Ci0rCi0rCSAgaWYgKGMgPT0gJ1wwJykKLSsJICAgIGxhc3RfY29s b25fcG9zID0gc3RkOjpzdHJpbmc6Om5wb3M7Ci0rCSAgZWxzZSBpZiAoYyAhPSAnOicpCi0rCSAg ICBlcnJvciAoXygiSW52YWxpZCBjcnVmdCBhZnRlciBjbG9zZSBicmFja2V0IGluICclcyciKSwK LSsJCSAgIHNwZWMuY19zdHIgKCkpOwotKwotKwkgIC8qIEVyYXNlIGJvdGggJ1snIGFuZCAnXScu ICAqLwotKwkgIHNwZWMuZXJhc2UgKDAsIDEpOwotKwkgIHNwZWMuZXJhc2UgKGNsb3NlX2JyYWNr ZXRfcG9zIC0gMSwgMSk7Ci0rCX0KLSsgICAgICBlbHNlIGlmIChzcGVjLmZpbmRfZmlyc3Rfb2Yg KCddJykgIT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rCWVycm9yIChfKCJNaXNzaW5nIG9wZW4gYnJh Y2tldCBpbiBob3N0bmFtZSAnJXMnIiksCi0rCSAgICAgICBzcGVjLmNfc3RyICgpKTsKLSsgICAg fQotKwotKyAgaWYgKGxhc3RfY29sb25fcG9zID09IDApCi0rICAgIGxhc3RfY29sb25fcG9zID0g c3BlYy5maW5kX2xhc3Rfb2YgKCc6Jyk7Ci0rCi0rICAvKiBUaGUgbGVuZ3RoIG9mIHRoZSBob3N0 bmFtZSBwYXJ0LiAgKi8KLSsgIHNpemVfdCBob3N0X2xlbjsKLSsKLSsgIGlmIChsYXN0X2NvbG9u X3BvcyAhPSBzdGQ6OnN0cmluZzo6bnBvcykKLSsgICAgewotKyAgICAgIC8qIFRoZSB1c2VyIGhh cyBwcm92aWRlZCBhIHBvcnQuICAqLwotKyAgICAgIGhvc3RfbGVuID0gbGFzdF9jb2xvbl9wb3M7 Ci0rICAgICAgcmV0LnBvcnRfc3RyID0gc3BlYy5zdWJzdHIgKGxhc3RfY29sb25fcG9zICsgMSk7 Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgaG9zdF9sZW4gPSBzcGVjLnNpemUgKCk7Ci0rCi0rICBy ZXQuaG9zdF9zdHIgPSBzcGVjLnN1YnN0ciAoMCwgaG9zdF9sZW4pOwotKwotKyAgLyogRGVmYXVs dCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAqLwotKyAgaWYgKHJldC5ob3N0X3N0ci5lbXB0eSAo KSkKLSsgICAgcmV0Lmhvc3Rfc3RyID0gImxvY2FsaG9zdCI7Ci0rCi0rICByZXR1cm4gcmV0Owot K30KLSsKLSsvKiBTZWUgY29tbW9uL25ldHN0dWZmLmguICAqLwotKwotK3BhcnNlZF9jb25uZWN0 aW9uX3NwZWMKLStwYXJzZV9jb25uZWN0aW9uX3NwZWMgKGNvbnN0IGNoYXIgKnNwZWMsIHN0cnVj dCBhZGRyaW5mbyAqaGludCkKLSt7Ci0rICAvKiBTdHJ1Y3QgdG8gaG9sZCB0aGUgYXNzb2NpYXRp b24gYmV0d2VlbiB2YWxpZCBwcmVmaXhlcywgdGhlaXIKLSsgICAgIGZhbWlseSBhbmQgc29ja3R5 cGUuICAqLwotKyAgc3RydWN0IGhvc3RfcHJlZml4Ci0rICAgIHsKLSsgICAgICAvKiBUaGUgcHJl Zml4LiAgKi8KLSsgICAgICBjb25zdCBjaGFyICpwcmVmaXg7Ci0rCi0rICAgICAgLyogVGhlICdh aV9mYW1pbHknLiAgKi8KLSsgICAgICBpbnQgZmFtaWx5OwotKwotKyAgICAgIC8qIFRoZSAnYWlf c29ja3R5cGUnLiAgKi8KLSsgICAgICBpbnQgc29ja3R5cGU7Ci0rICAgIH07Ci0rICBzdGF0aWMg Y29uc3Qgc3RydWN0IGhvc3RfcHJlZml4IHByZWZpeGVzW10gPQotKyAgICB7Ci0rICAgICAgeyAi dWRwOiIsICBBRl9VTlNQRUMsIFNPQ0tfREdSQU0gfSwKLSsgICAgICB7ICJ0Y3A6IiwgIEFGX1VO U1BFQywgU09DS19TVFJFQU0gfSwKLSsgICAgICB7ICJ1ZHA0OiIsIEFGX0lORVQsICAgU09DS19E R1JBTSB9LAotKyAgICAgIHsgInRjcDQ6IiwgQUZfSU5FVCwgICBTT0NLX1NUUkVBTSB9LAotKyAg ICAgIHsgInVkcDY6IiwgQUZfSU5FVDYsICBTT0NLX0RHUkFNIH0sCi0rICAgICAgeyAidGNwNjoi LCBBRl9JTkVUNiwgIFNPQ0tfU1RSRUFNIH0sCi0rICAgIH07Ci0rCi0rICBmb3IgKGNvbnN0IGhv c3RfcHJlZml4IHByZWZpeCA6IHByZWZpeGVzKQotKyAgICBpZiAoc3RhcnRzd2l0aCAoc3BlYywg cHJlZml4LnByZWZpeCkpCi0rICAgICAgewotKwlzcGVjICs9IHN0cmxlbiAocHJlZml4LnByZWZp eCk7Ci0rCWhpbnQtPmFpX2ZhbWlseSA9IHByZWZpeC5mYW1pbHk7Ci0rCWhpbnQtPmFpX3NvY2t0 eXBlID0gcHJlZml4LnNvY2t0eXBlOwotKwloaW50LT5haV9wcm90b2NvbAotKwkgID0gaGludC0+ YWlfc29ja3R5cGUgPT0gU09DS19ER1JBTSA/IElQUFJPVE9fVURQIDogSVBQUk9UT19UQ1A7Ci0r CWJyZWFrOwotKyAgICAgIH0KLSsKLSsgIHJldHVybiBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0 aG91dF9wcmVmaXggKHNwZWMsIGhpbnQpOwotK30KLWRpZmYgLS1naXQgYS9nZGIvY29tbW9uL25l dHN0dWZmLmggYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0t LS0gL2Rldi9udWxsCi0rKysgYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKLUBAIC0wLDAgKzEsNzYg QEAKLSsvKiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCi0rICAgQ29weXJpZ2h0IChDKSAy MDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov Ci0rCi0rI2lmbmRlZiBORVRTVFVGRl9ICi0rI2RlZmluZSBORVRTVFVGRl9ICi0rCi0rI2luY2x1 ZGUgPHN0cmluZz4KLSsKLSsvKiBMaWtlIE5JX01BWEhPU1QvTklfTUFYU0VSViwgYnV0IGVub3Vn aCBmb3IgbnVtZXJpYyBmb3Jtcy4gICovCi0rI2RlZmluZSBHREJfTklfTUFYX0FERFIgNjQKLSsj ZGVmaW5lIEdEQl9OSV9NQVhfUE9SVCAxNgotKwotKy8qIEhlbHBlciBjbGFzcyB0byBndWFyYW50 ZWUgdGhhdCB3ZSBhbHdheXMgY2FsbCAnZnJlZWFkZHJpbmZvJy4gICovCi0rCi0rY2xhc3Mgc2Nv cGVkX2ZyZWVfYWRkcmluZm8KLSt7Ci0rcHVibGljOgotKyAgLyogRGVmYXVsdCBjb25zdHJ1Y3Rv ci4gICovCi0rICBleHBsaWNpdCBzY29wZWRfZnJlZV9hZGRyaW5mbyAoc3RydWN0IGFkZHJpbmZv ICphaW5mbykKLSsgICAgOiBtX3JlcyAoYWluZm8pCi0rICB7Ci0rICB9Ci0rCi0rICAvKiBEZXN0 cnVjdG9yIHJlc3BvbnNpYmxlIGZvciBmcmVlJ2luZyBNX1JFUyBieSBjYWxsaW5nCi0rICAgICAn ZnJlZWFkZHJpbmZvJy4gICovCi0rICB+c2NvcGVkX2ZyZWVfYWRkcmluZm8gKCk7Ci0rCi0rICBE SVNBQkxFX0NPUFlfQU5EX0FTU0lHTiAoc2NvcGVkX2ZyZWVfYWRkcmluZm8pOwotKwotK3ByaXZh dGU6Ci0rICAvKiBUaGUgYWRkcmluZm8gcmVzb3VyY2UuICAqLwotKyAgc3RydWN0IGFkZHJpbmZv ICptX3JlczsKLSt9OwotKwotKy8qIFRoZSBzdHJ1Y3Qgd2UgcmV0dXJuIGFmdGVyIHBhcnNpbmcg dGhlIGNvbm5lY3Rpb24gc3BlYy4gICovCi0rCi0rc3RydWN0IHBhcnNlZF9jb25uZWN0aW9uX3Nw ZWMKLSt7Ci0rICAvKiBUaGUgaG9zdG5hbWUuICAqLwotKyAgc3RkOjpzdHJpbmcgaG9zdF9zdHI7 Ci0rCi0rICAvKiBUaGUgcG9ydCwgaWYgYW55LiAgKi8KLSsgIHN0ZDo6c3RyaW5nIHBvcnRfc3Ry OwotK307Ci0rCi0rCi0rLyogUGFyc2UgU1BFQyAod2hpY2ggaXMgYSBzdHJpbmcgaW4gdGhlIGZv cm0gb2YgIkFERFI6UE9SVCIpIGFuZAotKyAgIHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlvbl9z cGVjJyBzdHJ1Y3R1cmUgd2l0aCB0aGUgcHJvcGVyIGZpZWxkcwotKyAgIGZpbGxlZCBpbi4gIEFs c28gYWRqdXN0IEhJTlQgYWNjb3JkaW5nbHkuICAqLwotK2V4dGVybiBwYXJzZWRfY29ubmVjdGlv bl9zcGVjCi0rICBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKHN0ZDo6c3Ry aW5nIHNwZWMsCi0rCQkJCQlzdHJ1Y3QgYWRkcmluZm8gKmhpbnQpOwotKwotKy8qIFBhcnNlIFNQ RUMgKHdoaWNoIGlzIGEgc3RyaW5nIGluIHRoZSBmb3JtIG9mCi0rICAgIlt0Y3BbNl06fHVkcFs2 XTpdQUREUjpQT1JUIikgYW5kIHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlvbl9zcGVjJwotKyAg IHN0cnVjdHVyZSB3aXRoIHRoZSBwcm9wZXIgZmllbGRzIGZpbGxlZCBpbi4gIEFsc28gYWRqdXN0 IEhJTlQKLSsgICBhY2NvcmRpbmdseS4gICovCi0rZXh0ZXJuIHBhcnNlZF9jb25uZWN0aW9uX3Nw ZWMgcGFyc2VfY29ubmVjdGlvbl9zcGVjIChjb25zdCBjaGFyICpzcGVjLAotKwkJCQkJCSAgICAg c3RydWN0IGFkZHJpbmZvICpoaW50KTsKLSsKLSsjZW5kaWYgLyogISBORVRTVFVGRl9IICovCi1k aWZmIC0tZ2l0IGEvZ2RiL2RvYy9DaGFuZ2VMb2cgYi9nZGIvZG9jL0NoYW5nZUxvZwotLS0tIGEv Z2RiL2RvYy9DaGFuZ2VMb2cKLSsrKyBiL2dkYi9kb2MvQ2hhbmdlTG9nCi1AQCAtMSwzICsxLDEx IEBACi0rMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0 LmNvbT4KLSsJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K LSsJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci0rCSAgICBUc3V0b211 IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+Ci0rCi0rCSogZ2RiLnRleGluZm8gKFJlbW90ZSBD b25uZWN0aW9uIENvbW1hbmRzKTogQWRkIGV4cGxhbmF0aW9uCi0rCWFib3V0IG5ldyBJUHY2IHN1 cHBvcnQuICBBZGQgbmV3IGNvbm5lY3Rpb24gcHJlZml4ZXMuCi0rCi0gMjAxOC0wNy0wMiAgTWFj aWVqIFcuIFJvenlja2kgIDxtYWNyb0BtaXBzLmNvbT4KLSAKLSAJUFIgdGRlcC84MjgyCi1kaWZm IC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KLS0tLSBh L2dkYi9kb2MvZ2RiLnRleGluZm8KLSsrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KLUBAIC0yMDU0 OCwxNiArMjA1NDgsMjcgQEAgSWYgeW91J3JlIHVzaW5nIGEgc2VyaWFsIGxpbmUsIHlvdSBtYXkg d2FudCB0byBnaXZlIEB2YWx1ZXtHREJOfSB0aGUKLSBAY29kZXt0YXJnZXR9IGNvbW1hbmQuCi0g Ci0gQGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0 ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0gQGl0ZW14 IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXgg dGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14 IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14 IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14 IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLSBAaXRl bXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0r QGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9y dH19Ci0gQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06 QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A6QHZh cntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNv ZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1y ZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBl eHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLSBAY2lu ZGV4IEBhY3Jvbnlte1RDUH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0KLSBEZWJ1ZyB1c2lu ZyBhIEBhY3Jvbnlte1RDUH0gY29ubmVjdGlvbiB0byBAdmFye3BvcnR9IG9uIEB2YXJ7aG9zdH0u Ci0tVGhlIEB2YXJ7aG9zdH0gbWF5IGJlIGVpdGhlciBhIGhvc3QgbmFtZSBvciBhIG51bWVyaWMg QGFjcm9ueW17SVB9Ci0tYWRkcmVzczsgQHZhcntwb3J0fSBtdXN0IGJlIGEgZGVjaW1hbCBudW1i ZXIuICBUaGUgQHZhcntob3N0fSBjb3VsZCBiZQotLXRoZSB0YXJnZXQgbWFjaGluZSBpdHNlbGYs IGlmIGl0IGlzIGRpcmVjdGx5IGNvbm5lY3RlZCB0byB0aGUgbmV0LCBvcgotLWl0IG1pZ2h0IGJl IGEgdGVybWluYWwgc2VydmVyIHdoaWNoIGluIHR1cm4gaGFzIGEgc2VyaWFsIGxpbmUgdG8gdGhl Ci0tdGFyZ2V0LgotK1RoZSBAdmFye2hvc3R9IG1heSBiZSBlaXRoZXIgYSBob3N0IG5hbWUsIGEg bnVtZXJpYyBAYWNyb255bXtJUHY0fQotK2FkZHJlc3MsIG9yIGEgbnVtZXJpYyBAYWNyb255bXtJ UHY2fSBhZGRyZXNzICh3aXRoIG9yIHdpdGhvdXQgdGhlCi0rc3F1YXJlIGJyYWNrZXRzIHRvIHNl cGFyYXRlIHRoZSBhZGRyZXNzIGZyb20gdGhlIHBvcnQpOyBAdmFye3BvcnR9Ci0rbXVzdCBiZSBh IGRlY2ltYWwgbnVtYmVyLiAgVGhlIEB2YXJ7aG9zdH0gY291bGQgYmUgdGhlIHRhcmdldCBtYWNo aW5lCi0raXRzZWxmLCBpZiBpdCBpcyBkaXJlY3RseSBjb25uZWN0ZWQgdG8gdGhlIG5ldCwgb3Ig aXQgbWlnaHQgYmUgYQotK3Rlcm1pbmFsIHNlcnZlciB3aGljaCBpbiB0dXJuIGhhcyBhIHNlcmlh bCBsaW5lIHRvIHRoZSB0YXJnZXQuCi0gCi0gRm9yIGV4YW1wbGUsIHRvIGNvbm5lY3QgdG8gcG9y dCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkCi0gQGNvZGV7bWFueWZhcm1zfToKLUBA IC0yMDU2Niw2ICsyMDU3NywyOCBAQCBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0byBwb3J0IDI4 Mjggb24gYSB0ZXJtaW5hbCBzZXJ2ZXIgbmFtZWQKLSB0YXJnZXQgcmVtb3RlIG1hbnlmYXJtczoy ODI4Ci0gQGVuZCBzbWFsbGV4YW1wbGUKLSAKLStUbyBjb25uZWN0IHRvIHBvcnQgMjgyOCBvbiBh IHRlcm1pbmFsIHNlcnZlciB3aG9zZSBhZGRyZXNzIGlzCi0rQGNvZGV7MjAwMTowZGI4Ojg1YTM6 MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0fSwgeW91IGNhbiBlaXRoZXIgdXNlIHRoZQotK3NxdWFy ZSBicmFja2V0IHN5bnRheDoKLSsKLStAc21hbGxleGFtcGxlCi0rdGFyZ2V0IHJlbW90ZSBbMjAw MTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0XToyODI4Ci0rQGVuZCBzbWFsbGV4 YW1wbGUKLSsKLStAbm9pbmRlbnQKLStvciBleHBsaWNpdGx5IHNwZWNpZnkgdGhlIEBhY3Jvbnlt e0lQdjZ9IHByb3RvY29sOgotKwotK0BzbWFsbGV4YW1wbGUKLSt0YXJnZXQgcmVtb3RlIHRjcDY6 MjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0OjI4MjgKLStAZW5kIHNtYWxs ZXhhbXBsZQotKwotK1RoaXMgbGFzdCBleGFtcGxlIG1heSBiZSBjb25mdXNpbmcgdG8gdGhlIHJl YWRlciwgYmVjYXVzZSB0aGVyZSBpcyBubwotK3Zpc2libGUgc2VwYXJhdGlvbiBiZXR3ZWVuIHRo ZSBob3N0bmFtZSBhbmQgdGhlIHBvcnQgbnVtYmVyLgotK1RoZXJlZm9yZSwgd2UgcmVjb21tZW5k IHRoZSB1c2VyIHRvIHByb3ZpZGUgQGFjcm9ueW17SVB2Nn0gYWRkcmVzc2VzCi0rdXNpbmcgc3F1 YXJlIGJyYWNrZXRzIGZvciBjbGFyaXR5LiAgSG93ZXZlciwgaXQgaXMgaW1wb3J0YW50IHRvCi0r bWVudGlvbiB0aGF0IGZvciBAdmFsdWV7R0RCTn0gdGhlcmUgaXMgbm8gYW1iaWd1aXR5OiB0aGUg bnVtYmVyIGFmdGVyCi0rdGhlIGxhc3QgY29sb24gaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgcG9y dCBudW1iZXIuCi0rCi0gSWYgeW91ciByZW1vdGUgdGFyZ2V0IGlzIGFjdHVhbGx5IHJ1bm5pbmcg b24gdGhlIHNhbWUgbWFjaGluZSBhcyB5b3VyCi0gZGVidWdnZXIgc2Vzc2lvbiAoZS5nLkA6IGEg c2ltdWxhdG9yIGZvciB5b3VyIHRhcmdldCBydW5uaW5nIG9uIHRoZQotIHNhbWUgaG9zdCksIHlv dSBjYW4gb21pdCB0aGUgaG9zdG5hbWUuICBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0bwotQEAg LTIwNTc5LDcgKzIwNjEyLDE1IEBAIHRhcmdldCByZW1vdGUgOjEyMzQKLSBOb3RlIHRoYXQgdGhl IGNvbG9uIGlzIHN0aWxsIHJlcXVpcmVkIGhlcmUuCi0gCi0gQGl0ZW0gdGFyZ2V0IHJlbW90ZSBA Y29kZXt1ZHA6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBj b2Rle3VkcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90ZSBA Y29kZXt1ZHA0OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90ZSBA Y29kZXt1ZHA2OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5k ZWQtcmVtb3RlIEBjb2Rle3VkcDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0gQGl0ZW14IHRhcmdl dCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRl bXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA6QHZhcntbaG9zdF19OkB2YXJ7cG9y dH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNDpAdmFye2hvc3R9 OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNjpA dmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNv ZGV7dWRwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLSBAY2luZGV4IEBhY3Jvbnlte1VEUH0g cG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0KLSBEZWJ1ZyB1c2luZyBAYWNyb255bXtVRFB9IHBh Y2tldHMgdG8gQHZhcntwb3J0fSBvbiBAdmFye2hvc3R9LiAgRm9yIGV4YW1wbGUsIHRvCi0gY29u bmVjdCB0byBAYWNyb255bXtVRFB9IHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciBuYW1l ZCBAY29kZXttYW55ZmFybXN9OgotZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9n IGIvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9n Ci0rKysgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwotQEAgLTEsMyArMSwyMiBAQAotKzIwMTgt MDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0rCSAg ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCSAgICBQYXVs IEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgotKwkgICAgVHN1dG9tdSBTZWtpICA8c2Vr aXJpa2lAZ21haWwuY29tPgotKwotKwkqIE1ha2VmaWxlLmluIChTRklMRVMpOiBBZGQgJyQoc3Jj ZGlyKS9jb21tb24vbmV0c3R1ZmYuYycuCi0rCShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5v Jy4KLSsJKEdEQlJFUExBWV9PQlMpOiBMaWtld2lzZS4KLSsJKiBnZGJyZXBsYXkuYzogSW5jbHVk ZSAnd3NwaWFwaS5oJyBhbmQgJ25ldHN0dWZmLmgnLgotKwkocmVtb3RlX29wZW4pOiBJbXBsZW1l bnQgc3VwcG9ydCBmb3IgSVB2NgotKwljb25uZWN0aW9ucy4KLSsJKiByZW1vdGUtdXRpbHMuYzog SW5jbHVkZSAnbmV0c3R1ZmYuaCcsICdmaWxlc3R1ZmYuaCcKLSsJYW5kICd3c3BpYXBpLmgnLgot KwkoaGFuZGxlX2FjY2VwdF9ldmVudCk6IEFjY2VwdCBjb25uZWN0aW9ucyBmcm9tIElQdjYgc291 cmNlcy4KLSsJKHJlbW90ZV9wcmVwYXJlKTogSGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBp bXBsZW1lbnQKLSsJc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KLSsJKHJlbW90ZV9vcGVu KTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHByaW50aW5nIGNvbm5lY3Rpb25zIGZyb20KLSsJSVB2 NiBzb3VyY2VzLgotKwotIDIwMTgtMDctMTEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5j b20+Ci0gCi0gCVBSIGdkYi8yMzM3NwotZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvTWFrZWZp bGUuaW4gYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCi0tLS0gYS9nZGIvZ2Ric2VydmVyL01h a2VmaWxlLmluCi0rKysgYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCi1AQCAtMjExLDYgKzIx MSw3IEBAIFNGSUxFUyA9IFwKLSAJJChzcmNkaXIpL2NvbW1vbi9qb2ItY29udHJvbC5jIFwKLSAJ JChzcmNkaXIpL2NvbW1vbi9nZGJfdGlsZGVfZXhwYW5kLmMgXAotIAkkKHNyY2RpcikvY29tbW9u L2dkYl92ZWNzLmMgXAotKwkkKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMgXAotIAkkKHNyY2Rp cikvY29tbW9uL25ldy1vcC5jIFwKLSAJJChzcmNkaXIpL2NvbW1vbi9wYXRoc3R1ZmYuYyBcCi0g CSQoc3JjZGlyKS9jb21tb24vcHJpbnQtdXRpbHMuYyBcCi1AQCAtMjU0LDYgKzI1NSw3IEBAIE9C UyA9IFwKLSAJY29tbW9uL2Zvcm1hdC5vIFwKLSAJY29tbW9uL2dkYl90aWxkZV9leHBhbmQubyBc Ci0gCWNvbW1vbi9nZGJfdmVjcy5vIFwKLSsJY29tbW9uL25ldHN0dWZmLm8gXAotIAljb21tb24v bmV3LW9wLm8gXAotIAljb21tb24vcGF0aHN0dWZmLm8gXAotIAljb21tb24vcHJpbnQtdXRpbHMu byBcCi1AQCAtMjkwLDYgKzI5Miw3IEBAIEdEQlJFUExBWV9PQlMgPSBcCi0gCWNvbW1vbi9jb21t b24tZXhjZXB0aW9ucy5vIFwKLSAJY29tbW9uL2NvbW1vbi11dGlscy5vIFwKLSAJY29tbW9uL2Vy cm9ycy5vIFwKLSsJY29tbW9uL25ldHN0dWZmLm8gXAotIAljb21tb24vcHJpbnQtdXRpbHMubyBc Ci0gCWdkYnJlcGxheS5vIFwKLSAJdXRpbHMubyBcCi1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZl ci9nZGJyZXBsYXkuYyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKLS0tLSBhL2dkYi9nZGJz ZXJ2ZXIvZ2RicmVwbGF5LmMKLSsrKyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKLUBAIC00 Niw4ICs0NiwxMSBAQAotIAotICNpZiBVU0VfV0lOMzJBUEkKLSAjaW5jbHVkZSA8d2luc29jazIu aD4KLSsjaW5jbHVkZSA8d3NwaWFwaS5oPgotICNlbmRpZgotIAotKyNpbmNsdWRlICJuZXRzdHVm Zi5oIgotKwotICNpZm5kZWYgSEFWRV9TT0NLTEVOX1QKLSB0eXBlZGVmIGludCBzb2NrbGVuX3Q7 Ci0gI2VuZGlmCi1AQCAtMTQyLDU2ICsxNDUsMTA4IEBAIHJlbW90ZV9jbG9zZSAodm9pZCkKLSBz dGF0aWMgdm9pZAotIHJlbW90ZV9vcGVuIChjaGFyICpuYW1lKQotIHsKLS0gIGlmICghc3RyY2hy IChuYW1lLCAnOicpKQotKyAgY2hhciAqbGFzdF9jb2xvbiA9IHN0cnJjaHIgKG5hbWUsICc6Jyk7 Ci0rCi0rICBpZiAobGFzdF9jb2xvbiA9PSBOVUxMKQotICAgICB7Ci0gICAgICAgZnByaW50ZiAo c3RkZXJyLCAiJXM6IE11c3Qgc3BlY2lmeSB0Y3AgY29ubmVjdGlvbiBhcyBob3N0OmFkZHJcbiIs IG5hbWUpOwotICAgICAgIGZmbHVzaCAoc3RkZXJyKTsKLSAgICAgICBleGl0ICgxKTsKLSAgICAg fQotLSAgZWxzZQotLSAgICB7Ci0rCi0gI2lmZGVmIFVTRV9XSU4zMkFQSQotLSAgICAgIHN0YXRp YyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKLSsgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFs aXplZDsKLSAjZW5kaWYKLS0gICAgICBjaGFyICpwb3J0X3N0cjsKLS0gICAgICBpbnQgcG9ydDsK LS0gICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7Ci0tICAgICAgc29ja2xlbl90IHRt cDsKLS0gICAgICBpbnQgdG1wX2Rlc2M7Ci0rICBjaGFyICpwb3J0X3N0cjsKLSsgIGludCB0bXA7 Ci0rICBpbnQgdG1wX2Rlc2M7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHN0cnVjdCBh ZGRyaW5mbyAqYWluZm87Ci0gCi0tICAgICAgcG9ydF9zdHIgPSBzdHJjaHIgKG5hbWUsICc6Jyk7 Ci0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBw cmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9V TlNQRUMuICAqLwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3Nv Y2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7 Ci0gCi0tICAgICAgcG9ydCA9IGF0b2kgKHBvcnRfc3RyICsgMSk7Ci0rICBwYXJzZWRfY29ubmVj dGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQpOwot KwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKLSsgICAgZXJyb3IgKF8oIk1pc3Np bmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOwotIAotICNpZmRlZiBVU0VfV0lOMzJB UEkKLS0gICAgICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCi0tCXsKLS0JICBXU0FEQVRBIHdz YWQ7Ci0rICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCi0rICAgIHsKLSsgICAgICBXU0FEQVRB IHdzYWQ7Ci0gCi0tCSAgV1NBU3RhcnR1cCAoTUFLRVdPUkQgKDEsIDApLCAmd3NhZCk7Ci0tCSAg d2luc29ja19pbml0aWFsaXplZCA9IDE7Ci0tCX0KLSsgICAgICBXU0FTdGFydHVwIChNQUtFV09S RCAoMSwgMCksICZ3c2FkKTsKLSsgICAgICB3aW5zb2NrX2luaXRpYWxpemVkID0gMTsKLSsgICAg fQotICNlbmRpZgotIAotLSAgICAgIHRtcF9kZXNjID0gc29ja2V0IChQRl9JTkVULCBTT0NLX1NU UkVBTSwgMCk7Ci0tICAgICAgaWYgKHRtcF9kZXNjID09IC0xKQotLQlwZXJyb3Jfd2l0aF9uYW1l ICgiQ2FuJ3Qgb3BlbiBzb2NrZXQiKTsKLSsgIGludCByID0gZ2V0YWRkcmluZm8gKHBhcnNlZC5o b3N0X3N0ci5jX3N0ciAoKSwgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgpLAotKwkJICAgICAgICZo aW50LCAmYWluZm8pOwotIAotLSAgICAgIC8qIEFsbG93IHJhcGlkIHJldXNlIG9mIHRoaXMgcG9y dC4gKi8KLS0gICAgICB0bXAgPSAxOwotLSAgICAgIHNldHNvY2tvcHQgKHRtcF9kZXNjLCBTT0xf U09DS0VULCBTT19SRVVTRUFERFIsIChjaGFyICopICZ0bXAsCi0tCQkgIHNpemVvZiAodG1wKSk7 Ci0rICBpZiAociAhPSAwKQotKyAgICB7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6JXM6 IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzXG4iLAotKwkgICAgICAgcGFyc2VkLmhvc3Rfc3RyLmNf c3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCi0rCSAgICAgICBnYWlfc3RyZXJyb3Ig KHIpKTsKLSsgICAgICBmZmx1c2ggKHN0ZGVycik7Ci0rICAgICAgZXhpdCAoMSk7Ci0rICAgIH0K LSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZvKTsKLSsKLSsgIHN0 cnVjdCBhZGRyaW5mbyAqcDsKLSsKLSsgIGZvciAocCA9IGFpbmZvOyBwICE9IE5VTEw7IHAgPSBw LT5haV9uZXh0KQotKyAgICB7Ci0rICAgICAgdG1wX2Rlc2MgPSBzb2NrZXQgKHAtPmFpX2ZhbWls eSwgcC0+YWlfc29ja3R5cGUsIHAtPmFpX3Byb3RvY29sKTsKLSAKLS0gICAgICBzb2NrYWRkci5z aW5fZmFtaWx5ID0gUEZfSU5FVDsKLS0gICAgICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChw b3J0KTsKLS0gICAgICBzb2NrYWRkci5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOwotKyAg ICAgIGlmICh0bXBfZGVzYyA+PSAwKQotKwlicmVhazsKLSsgICAgfQotKwotKyAgaWYgKHAgPT0g TlVMTCkKLSsgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbm5vdCBvcGVuIHNvY2tldCIpOwotIAot LSAgICAgIGlmIChiaW5kICh0bXBfZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIs IHNpemVvZiAoc29ja2FkZHIpKQotLQkgIHx8IGxpc3RlbiAodG1wX2Rlc2MsIDEpKQotLQlwZXJy b3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7Ci0rICAvKiBBbGxvdyByYXBpZCBy ZXVzZSBvZiB0aGlzIHBvcnQuICovCi0rICB0bXAgPSAxOwotKyAgc2V0c29ja29wdCAodG1wX2Rl c2MsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNoYXIgKikgJnRtcCwKLSsJICAgICAgc2l6 ZW9mICh0bXApKTsKLSsKLSsgIHN3aXRjaCAocC0+YWlfZmFtaWx5KQotKyAgICB7Ci0rICAgIGNh c2UgQUZfSU5FVDoKLSsgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBwLT5haV9hZGRyKS0+ c2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBB Rl9JTkVUNjoKLSsgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgcC0+YWlfYWRkciktPnNp bjZfYWRkciA9IGluNmFkZHJfYW55OwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0OgotKyAg ICAgIGZwcmludGYgKHN0ZGVyciwgIkludmFsaWQgJ2FpX2ZhbWlseScgJWRcbiIsIHAtPmFpX2Zh bWlseSk7Ci0rICAgICAgZXhpdCAoMSk7Ci0rICAgIH0KLSsKLSsgIGlmIChiaW5kICh0bXBfZGVz YywgcC0+YWlfYWRkciwgcC0+YWlfYWRkcmxlbikgIT0gMCkKLSsgICAgcGVycm9yX3dpdGhfbmFt ZSAoIkNhbid0IGJpbmQgYWRkcmVzcyIpOwotKwotKyAgaWYgKHAtPmFpX3NvY2t0eXBlID09IFNP Q0tfREdSQU0pCi0rICAgIHJlbW90ZV9kZXNjID0gdG1wX2Rlc2M7Ci0rICBlbHNlCi0rICAgIHsK LSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsgICAgICBzb2NrbGVu X3Qgc29ja2FkZHJzaXplID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0rICAgICAgY2hhciBvcmlnX2hv c3RbR0RCX05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9SVF07Ci0rCi0rICAg ICAgaWYgKGxpc3RlbiAodG1wX2Rlc2MsIDEpICE9IDApCi0rCXBlcnJvcl93aXRoX25hbWUgKCJD YW4ndCBsaXN0ZW4gb24gc29ja2V0Iik7Ci0rCi0rICAgICAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQg KHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwKLSsJCQkgICAgJnNvY2th ZGRyc2l6ZSk7Ci0gCi0tICAgICAgdG1wID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0tICAgICAgcmVt b3RlX2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRk ciwgJnRtcCk7Ci0gICAgICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQotIAlwZXJyb3Jfd2l0aF9u YW1lICgiQWNjZXB0IGZhaWxlZCIpOwotIAotQEAgLTIwNiw2ICsyNjEsMTYgQEAgcmVtb3RlX29w ZW4gKGNoYXIgKm5hbWUpCi0gICAgICAgc2V0c29ja29wdCAocmVtb3RlX2Rlc2MsIElQUFJPVE9f VENQLCBUQ1BfTk9ERUxBWSwKLSAJCSAgKGNoYXIgKikgJnRtcCwgc2l6ZW9mICh0bXApKTsKLSAK LSsgICAgICBpZiAoZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBz b2NrYWRkcnNpemUsCi0rCQkgICAgICAgb3JpZ19ob3N0LCBzaXplb2YgKG9yaWdfaG9zdCksCi0r CQkgICAgICAgb3JpZ19wb3J0LCBzaXplb2YgKG9yaWdfcG9ydCksCi0rCQkgICAgICAgTklfTlVN RVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VSVikgPT0gMCkKLSsJewotKwkgIGZwcmludGYgKHN0ZGVy ciwgIlJlbW90ZSBkZWJ1Z2dpbmcgZnJvbSBob3N0ICVzLCBwb3J0ICVzXG4iLAotKwkJICAgb3Jp Z19ob3N0LCBvcmlnX3BvcnQpOwotKwkgIGZmbHVzaCAoc3RkZXJyKTsKLSsJfQotKwotICNpZm5k ZWYgVVNFX1dJTjMyQVBJCi0gICAgICAgY2xvc2UgKHRtcF9kZXNjKTsJCS8qIE5vIGxvbmdlciBu ZWVkIHRoaXMgKi8KLSAKLWRpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL3JlbW90ZS11dGlscy5j IGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotLS0tIGEvZ2RiL2dkYnNlcnZlci9yZW1v dGUtdXRpbHMuYwotKysrIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotQEAgLTI2LDYg KzI2LDggQEAKLSAjaW5jbHVkZSAiZGxsLmgiCi0gI2luY2x1ZGUgInJzcC1sb3cuaCIKLSAjaW5j bHVkZSAiZ2RidGhyZWFkLmgiCi0rI2luY2x1ZGUgIm5ldHN0dWZmLmgiCi0rI2luY2x1ZGUgImZp bGVzdHVmZi5oIgotICNpbmNsdWRlIDxjdHlwZS5oPgotICNpZiBIQVZFX1NZU19JT0NUTF9ICi0g I2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotQEAgLTYzLDYgKzY1LDcgQEAKLSAKLSAjaWYgVVNFX1dJ TjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSAj ZW5kaWYKLSAKLSAjaWYgX19RTlhfXwotQEAgLTE1MSwxOSArMTU0LDE4IEBAIGVuYWJsZV9hc3lu Y19ub3RpZmljYXRpb24gKGludCBmZCkKLSBzdGF0aWMgaW50Ci0gaGFuZGxlX2FjY2VwdF9ldmVu dCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQotIHsKLS0gIHN0cnVjdCBz b2NrYWRkcl9pbiBzb2NrYWRkcjsKLS0gIHNvY2tsZW5fdCB0bXA7Ci0rICBzdHJ1Y3Qgc29ja2Fk ZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsgIHNvY2tsZW5fdCBsZW4gPSBzaXplb2YgKHNvY2thZGRy KTsKLSAKLSAgIGlmIChkZWJ1Z190aHJlYWRzKQotICAgICBkZWJ1Z19wcmludGYgKCJoYW5kbGlu ZyBwb3NzaWJsZSBhY2NlcHQgZXZlbnRcbiIpOwotIAotLSAgdG1wID0gc2l6ZW9mIChzb2NrYWRk cik7Ci0tICByZW1vdGVfZGVzYyA9IGFjY2VwdCAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2Fk ZHIgKikgJnNvY2thZGRyLCAmdG1wKTsKLSsgIHJlbW90ZV9kZXNjID0gYWNjZXB0IChsaXN0ZW5f ZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pOwotICAgaWYgKHJlbW90 ZV9kZXNjID09IC0xKQotICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0IGZhaWxlZCIpOwot IAotICAgLyogRW5hYmxlIFRDUCBrZWVwIGFsaXZlIHByb2Nlc3MuICovCi0tICB0bXAgPSAxOwot KyAgc29ja2xlbl90IHRtcCA9IDE7Ci0gICBzZXRzb2Nrb3B0IChyZW1vdGVfZGVzYywgU09MX1NP Q0tFVCwgU09fS0VFUEFMSVZFLAotIAkgICAgICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkp OwotIAotQEAgLTE5Miw4ICsxOTQsMTkgQEAgaGFuZGxlX2FjY2VwdF9ldmVudCAoaW50IGVyciwg Z2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQotICAgZGVsZXRlX2ZpbGVfaGFuZGxlciAobGlz dGVuX2Rlc2MpOwotIAotICAgLyogQ29udmVydCBJUCBhZGRyZXNzIHRvIHN0cmluZy4gICovCi0t ICBmcHJpbnRmIChzdGRlcnIsICJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9zdCAlc1xuIiwKLS0J ICAgaW5ldF9udG9hIChzb2NrYWRkci5zaW5fYWRkcikpOwotKyAgY2hhciBvcmlnX2hvc3RbR0RC X05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9SVF07Ci0rCi0rICBpbnQgciA9 IGdldG5hbWVpbmZvICgoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgbGVuLAotKwkJICAg ICAgIG9yaWdfaG9zdCwgc2l6ZW9mIChvcmlnX2hvc3QpLAotKwkJICAgICAgIG9yaWdfcG9ydCwg c2l6ZW9mIChvcmlnX3BvcnQpLAotKwkJICAgICAgIE5JX05VTUVSSUNIT1NUIHwgTklfTlVNRVJJ Q1NFUlYpOwotKwotKyAgaWYgKHIgIT0gMCkKLSsgICAgZnByaW50ZiAoc3RkZXJyLCBfKCJDb3Vs ZCBub3Qgb2J0YWluIHJlbW90ZSBhZGRyZXNzOiAlc1xuIiksCi0rCSAgICAgZ2FpX3N0cmVycm9y IChyKSk7Ci0rICBlbHNlCi0rICAgIGZwcmludGYgKHN0ZGVyciwgXygiUmVtb3RlIGRlYnVnZ2lu ZyBmcm9tIGhvc3QgJXMsIHBvcnQgJXNcbiIpLAotKwkgICAgIG9yaWdfaG9zdCwgb3JpZ19wb3J0 KTsKLSAKLSAgIGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24gKHJlbW90ZV9kZXNjKTsKLSAKLUBA IC0yMjIsMTAgKzIzNSw3IEBAIHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQotICNp ZmRlZiBVU0VfV0lOMzJBUEkKLSAgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKLSAj ZW5kaWYKLS0gIGludCBwb3J0OwotLSAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOwotICAg c29ja2xlbl90IHRtcDsKLS0gIGNoYXIgKnBvcnRfZW5kOwotIAotICAgcmVtb3RlX2lzX3N0ZGlv ID0gMDsKLSAgIGlmIChzdHJjbXAgKG5hbWUsIFNURElPX0NPTk5FQ1RJT05fTkFNRSkgPT0gMCkK LUBAIC0yMzgsMTcgKzI0OCwyNSBAQCByZW1vdGVfcHJlcGFyZSAoY29uc3QgY2hhciAqbmFtZSkK LSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gIHBvcnRfc3RyID0gc3RyY2hyIChuYW1lLCAn OicpOwotLSAgaWYgKHBvcnRfc3RyID09IE5VTEwpCi0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsK LSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0rCi0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXpl b2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJl Zm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9VTlNQRUMuICAqLwotKyAgaGludC5haV9mYW1p bHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBo aW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7Ci0rCi0rICBwYXJzZWRfY29ubmVjdGlvbl9z cGVjIHBhcnNlZAotKyAgICA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAo bmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKLSAgICAg ewotICAgICAgIGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9IDA7Ci0gICAgICAgcmV0dXJuOwot ICAgICB9Ci0gCi0tICBwb3J0ID0gc3RydG91bCAocG9ydF9zdHIgKyAxLCAmcG9ydF9lbmQsIDEw KTsKLS0gIGlmIChwb3J0X3N0clsxXSA9PSAnXDAnIHx8ICpwb3J0X2VuZCAhPSAnXDAnKQotLSAg ICBlcnJvciAoIkJhZCBwb3J0IGFyZ3VtZW50OiAlcyIsIG5hbWUpOwotLQotICNpZmRlZiBVU0Vf V0lOMzJBUEkKLSAgIGlmICghd2luc29ja19pbml0aWFsaXplZCkKLSAgICAgewotQEAgLTI1OSw4 ICsyNzcsMjYgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgIH0KLSAj ZW5kaWYKLSAKLS0gIGxpc3Rlbl9kZXNjID0gc29ja2V0IChQRl9JTkVULCBTT0NLX1NUUkVBTSwg SVBQUk9UT19UQ1ApOwotLSAgaWYgKGxpc3Rlbl9kZXNjID09IC0xKQotKyAgaW50IHIgPSBnZXRh ZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIg KCksCi0rCQkgICAgICAgJmhpbnQsICZhaW5mbyk7Ci0rCi0rICBpZiAociAhPSAwKQotKyAgICBl cnJvciAoXygiJXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzIiksIG5hbWUsIGdhaV9zdHJlcnJv ciAocikpOwotKwotKyAgc2NvcGVkX2ZyZWVfYWRkcmluZm8gZnJlZWFkZHJpbmZvIChhaW5mbyk7 Ci0rCi0rICBzdHJ1Y3QgYWRkcmluZm8gKml0ZXI7Ci0rCi0rICBmb3IgKGl0ZXIgPSBhaW5mbzsg aXRlciAhPSBOVUxMOyBpdGVyID0gaXRlci0+YWlfbmV4dCkKLSsgICAgewotKyAgICAgIGxpc3Rl bl9kZXNjID0gZ2RiX3NvY2tldF9jbG9leGVjIChpdGVyLT5haV9mYW1pbHksIGl0ZXItPmFpX3Nv Y2t0eXBlLAotKwkJCQkJaXRlci0+YWlfcHJvdG9jb2wpOwotKwotKyAgICAgIGlmIChsaXN0ZW5f ZGVzYyA+PSAwKQotKwlicmVhazsKLSsgICAgfQotKwotKyAgaWYgKGl0ZXIgPT0gTlVMTCkKLSAg ICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IG9wZW4gc29ja2V0Iik7Ci0gCi0gICAvKiBBbGxv dyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCi1AQCAtMjY4LDE0ICszMDQsMjUgQEAgcmVt b3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCi0gICBzZXRzb2Nrb3B0IChsaXN0ZW5fZGVz YywgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAoY2hhciAqKSAmdG1wLAotIAkgICAgICBzaXpl b2YgKHRtcCkpOwotIAotLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7Ci0tICBzb2Nr YWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gIHNvY2thZGRyLnNpbl9hZGRyLnNfYWRk ciA9IElOQUREUl9BTlk7Ci0rICBzd2l0Y2ggKGl0ZXItPmFpX2ZhbWlseSkKLSsgICAgewotKyAg ICBjYXNlIEFGX0lORVQ6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgaXRlci0+YWlf YWRkciktPnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Ci0rICAgICAgYnJlYWs7Ci0rICAg IGNhc2UgQUZfSU5FVDY6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopIGl0ZXItPmFp X2FkZHIpLT5zaW42X2FkZHIgPSBpbjZhZGRyX2FueTsKLSsgICAgICBicmVhazsKLSsgICAgZGVm YXVsdDoKLSsgICAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAotKwkJICAg ICAgXygiSW52YWxpZCAnYWlfZmFtaWx5JyAlZFxuIiksIGl0ZXItPmFpX2ZhbWlseSk7Ci0rICAg IH0KLSAKLS0gIGlmIChiaW5kIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29j a2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKQotLSAgICAgIHx8IGxpc3RlbiAobGlzdGVuX2Rlc2Ms IDEpKQotKyAgaWYgKGJpbmQgKGxpc3Rlbl9kZXNjLCBpdGVyLT5haV9hZGRyLCBpdGVyLT5haV9h ZGRybGVuKSAhPSAwKQotICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNz Iik7Ci0gCi0rICBpZiAobGlzdGVuIChsaXN0ZW5fZGVzYywgMSkgIT0gMCkKLSsgICAgcGVycm9y X3dpdGhfbmFtZSAoIkNhbid0IGxpc3RlbiBvbiBzb2NrZXQiKTsKLSsKLSAgIGNzLnRyYW5zcG9y dF9pc19yZWxpYWJsZSA9IDE7Ci0gfQotIAotQEAgLTM1MCwxOCArMzk3LDI0IEBAIHJlbW90ZV9v cGVuIChjb25zdCBjaGFyICpuYW1lKQotICNlbmRpZiAvKiBVU0VfV0lOMzJBUEkgKi8KLSAgIGVs c2UKLSAgICAgewotLSAgICAgIGludCBwb3J0OwotLSAgICAgIHNvY2tsZW5fdCBsZW47Ci0tICAg ICAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOwotLQotLSAgICAgIGxlbiA9IHNpemVvZiAo c29ja2FkZHIpOwotLSAgICAgIGlmIChnZXRzb2NrbmFtZSAobGlzdGVuX2Rlc2MsCi0tCQkgICAg ICAgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwgMAotLQkgIHx8IGxlbiA8 IHNpemVvZiAoc29ja2FkZHIpKQotKyAgICAgIGNoYXIgbGlzdGVuX3BvcnRbR0RCX05JX01BWF9Q T1JUXTsKLSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsgICAgICBz b2NrbGVuX3QgbGVuID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0rCi0rICAgICAgaWYgKGdldHNvY2tu YW1lIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwg MCkKLSAJcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGRldGVybWluZSBwb3J0Iik7Ci0tICAgICAg cG9ydCA9IG50b2hzIChzb2NrYWRkci5zaW5fcG9ydCk7Ci0gCi0tICAgICAgZnByaW50ZiAoc3Rk ZXJyLCAiTGlzdGVuaW5nIG9uIHBvcnQgJWRcbiIsIHBvcnQpOwotKyAgICAgIGludCByID0gZ2V0 bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBsZW4sCi0rCQkJICAgTlVM TCwgMCwKLSsJCQkgICBsaXN0ZW5fcG9ydCwgc2l6ZW9mIChsaXN0ZW5fcG9ydCksCi0rCQkJICAg TklfTlVNRVJJQ1NFUlYpOwotKwotKyAgICAgIGlmIChyICE9IDApCi0rCWZwcmludGYgKHN0ZGVy ciwgXygiQ2FuJ3Qgb2J0YWluIHBvcnQgd2hlcmUgd2UgYXJlIGxpc3RlbmluZzogJXMiKSwKLSsJ CSBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBlbHNlCi0rCWZwcmludGYgKHN0ZGVyciwgXygi TGlzdGVuaW5nIG9uIHBvcnQgJXNcbiIpLCBsaXN0ZW5fcG9ydCk7Ci0rCi0gICAgICAgZmZsdXNo IChzdGRlcnIpOwotIAotICAgICAgIC8qIFJlZ2lzdGVyIHRoZSBldmVudCBsb29wIGhhbmRsZXIu ICAqLwotZGlmZiAtLWdpdCBhL2dkYi9zZXItdGNwLmMgYi9nZGIvc2VyLXRjcC5jCi0tLS0gYS9n ZGIvc2VyLXRjcC5jCi0rKysgYi9nZGIvc2VyLXRjcC5jCi1AQCAtMjUsNiArMjUsNyBAQAotICNp bmNsdWRlICJjbGkvY2xpLWRlY29kZS5oIgotICNpbmNsdWRlICJjbGkvY2xpLXNldHNob3cuaCIK LSAjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCi0rI2luY2x1ZGUgIm5ldHN0dWZmLmgiCi0gCi0gI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgotIAotQEAgLTM5LDYgKzQwLDcgQEAKLSAKLSAjaWZkZWYgVVNF X1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4K LSAjaWZuZGVmIEVUSU1FRE9VVAotICNkZWZpbmUgRVRJTUVET1VUIFdTQUVUSU1FRE9VVAotICNl bmRpZgotQEAgLTgxLDEyICs4MywxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRjcF9yZXRyeV9s aW1pdCA9IDE1OwotIAotICNkZWZpbmUgUE9MTF9JTlRFUlZBTCA1Ci0gCi0tLyogSGVscGVyIGZ1 bmN0aW9uIHRvIHdhaXQgYSB3aGlsZS4gIElmIFNDQiBpcyBub24tbnVsbCwgd2FpdCBvbiBpdHMK LS0gICBmaWxlIGRlc2NyaXB0b3IuICBPdGhlcndpc2UganVzdCB3YWl0IG9uIGEgdGltZW91dCwg dXBkYXRpbmcgKlBPTExTLgotLSAgIFJldHVybnMgLTEgb24gdGltZW91dCBvciBpbnRlcnJ1cHQs IG90aGVyd2lzZSB0aGUgdmFsdWUgb2Ygc2VsZWN0LiAgKi8KLSsvKiBIZWxwZXIgZnVuY3Rpb24g dG8gd2FpdCBhIHdoaWxlLiAgSWYgU09DSyBpcyBub3QgLTEsIHdhaXQgb24gaXRzCi0rICAgZmls ZSBkZXNjcmlwdG9yLiAgT3RoZXJ3aXNlIGp1c3Qgd2FpdCBvbiBhIHRpbWVvdXQsIHVwZGF0aW5n Ci0rICAgKlBPTExTLiAgUmV0dXJucyAtMSBvbiB0aW1lb3V0IG9yIGludGVycnVwdCwgb3RoZXJ3 aXNlIHRoZSB2YWx1ZSBvZgotKyAgIHNlbGVjdC4gICovCi0gCi0gc3RhdGljIGludAotLXdhaXRf Zm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwgKnNjYiwgdW5zaWduZWQgaW50ICpwb2xscykKLSt3 YWl0X2Zvcl9jb25uZWN0IChpbnQgc29jaywgdW5zaWduZWQgaW50ICpwb2xscykKLSB7Ci0gICBz dHJ1Y3QgdGltZXZhbCB0OwotICAgaW50IG47Ci1AQCAtMTIwLDI0ICsxMjMsMjQgQEAgd2FpdF9m b3JfY29ubmVjdCAoc3RydWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQotICAg ICAgIHQudHZfdXNlYyA9IDA7Ci0gICAgIH0KLSAKLS0gIGlmIChzY2IpCi0rICBpZiAoc29jayA+ PSAwKQotICAgICB7Ci0gICAgICAgZmRfc2V0IHJzZXQsIHdzZXQsIGVzZXQ7Ci0gCi0gICAgICAg RkRfWkVSTyAoJnJzZXQpOwotLSAgICAgIEZEX1NFVCAoc2NiLT5mZCwgJnJzZXQpOwotKyAgICAg IEZEX1NFVCAoc29jaywgJnJzZXQpOwotICAgICAgIHdzZXQgPSByc2V0OwotICAgICAgIGVzZXQg PSByc2V0OwotLQkgIAotKwotICAgICAgIC8qIFBPU0lYIHN5c3RlbXMgcmV0dXJuIGNvbm5lY3Rp b24gc3VjY2VzcyBvciBmYWlsdXJlIGJ5IHNpZ25hbGxpbmcKLSAJIHdzZXQuICBXaW5kb3dzIHN5 c3RlbXMgcmV0dXJuIHN1Y2Nlc3MgaW4gd3NldCBhbmQgZmFpbHVyZSBpbgotIAkgZXNldC4KLS0g ICAgIAotKwotIAkgV2UgbXVzdCBjYWxsIHNlbGVjdCBoZXJlLCByYXRoZXIgdGhhbiBnZGJfc2Vs ZWN0LCBiZWNhdXNlCi0gCSB0aGUgc2VyaWFsIHN0cnVjdHVyZSBoYXMgbm90IHlldCBiZWVuIGlu aXRpYWxpemVkIC0gdGhlCi0gCSBNaW5HVyBzZWxlY3Qgd3JhcHBlciB3aWxsIG5vdCBrbm93IHRo YXQgdGhpcyBGRCByZWZlcnMKLSAJIHRvIGEgc29ja2V0LiAgKi8KLS0gICAgICBuID0gc2VsZWN0 IChzY2ItPmZkICsgMSwgJnJzZXQsICZ3c2V0LCAmZXNldCwgJnQpOwotKyAgICAgIG4gPSBzZWxl Y3QgKHNvY2sgKyAxLCAmcnNldCwgJndzZXQsICZlc2V0LCAmdCk7Ci0gICAgIH0KLSAgIGVsc2UK LSAgICAgLyogVXNlIGdkYl9zZWxlY3QgaGVyZSwgc2luY2Ugd2UgaGF2ZSBubyBmaWxlIGRlc2Ny aXB0b3JzLCBhbmQgb24KLUBAIC0xNTMsODAgKzE1NiwyOCBAQCB3YWl0X2Zvcl9jb25uZWN0IChz dHJ1Y3Qgc2VyaWFsICpzY2IsIHVuc2lnbmVkIGludCAqcG9sbHMpCi0gICByZXR1cm4gbjsKLSB9 Ci0gCi0tLyogT3BlbiBhIHRjcCBzb2NrZXQuICAqLwotKy8qIFRyeSB0byBjb25uZWN0IHRvIHRo ZSBob3N0IHJlcHJlc2VudGVkIGJ5IEFJTkZPLiAgSWYgdGhlIGNvbm5lY3Rpb24KLSsgICBzdWNj ZWVkcywgcmV0dXJuIGl0cyBzb2NrZXQuICBPdGhlcndpc2UsIHJldHVybiAtMSBhbmQgc2V0IEVS Uk5PCi0rICAgYWNjb3JkaW5nbHkuICBQT0xMUyBpcyB1c2VkIHdoZW4gJ2Nvbm5lY3QnIHJldHVy bnMgRUlOUFJPR1JFU1MsIGFuZAotKyAgIHdlIG5lZWQgdG8gaW52b2tlICd3YWl0X2Zvcl9jb25u ZWN0JyB0byBvYnRhaW4gdGhlIHN0YXR1cy4gICovCi0gCi0taW50Ci0tbmV0X29wZW4gKHN0cnVj dCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKLStzdGF0aWMgaW50Ci0rdHJ5X2Nvbm5l Y3QgKGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqYWluZm8sIHVuc2lnbmVkIGludCAqcG9sbHMpCi0g ewotLSAgY2hhciBob3N0bmFtZVsxMDBdOwotLSAgY29uc3QgY2hhciAqcG9ydF9zdHI7Ci0tICBp bnQgbiwgcG9ydCwgdG1wOwotLSAgaW50IHVzZV91ZHA7Ci0tICBzdHJ1Y3QgaG9zdGVudCAqaG9z dGVudDsKLS0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKLS0jaWZkZWYgVVNFX1dJTjMy QVBJCi0tICB1X2xvbmcgaW9hcmc7Ci0tI2Vsc2UKLS0gIGludCBpb2FyZzsKLS0jZW5kaWYKLS0g IHVuc2lnbmVkIGludCBwb2xscyA9IDA7Ci0tCi0tICB1c2VfdWRwID0gMDsKLS0gIGlmIChzdGFy dHN3aXRoIChuYW1lLCAidWRwOiIpKQotLSAgICB7Ci0tICAgICAgdXNlX3VkcCA9IDE7Ci0tICAg ICAgbmFtZSA9IG5hbWUgKyA0OwotLSAgICB9Ci0tICBlbHNlIGlmIChzdGFydHN3aXRoIChuYW1l LCAidGNwOiIpKQotLSAgICBuYW1lID0gbmFtZSArIDQ7Ci0tCi0tICBwb3J0X3N0ciA9IHN0cmNo ciAobmFtZSwgJzonKTsKLS0KLS0gIGlmICghcG9ydF9zdHIpCi0tICAgIGVycm9yIChfKCJuZXRf b3BlbjogTm8gY29sb24gaW4gaG9zdCBuYW1lISIpKTsgIC8qIFNob3VsZG4ndCBldmVyCi0tCQkJ CQkJICAgICAgIGhhcHBlbi4gICovCi0tCi0tICB0bXAgPSBzdGQ6Om1pbiAocG9ydF9zdHIgLSBu YW1lLCAocHRyZGlmZl90KSBzaXplb2YgaG9zdG5hbWUgLSAxKTsKLS0gIHN0cm5jcHkgKGhvc3Ru YW1lLCBuYW1lLCB0bXApOwkvKiBEb24ndCB3YW50IGNvbG9uLiAgKi8KLS0gIGhvc3RuYW1lW3Rt cF0gPSAnXDAwMCc7CS8qIFRpZSBvZmYgaG9zdCBuYW1lLiAgKi8KLS0gIHBvcnQgPSBhdG9pIChw b3J0X3N0ciArIDEpOwotLQotLSAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAq LwotLSAgaWYgKCFob3N0bmFtZVswXSkKLS0gICAgc3RyY3B5IChob3N0bmFtZSwgImxvY2FsaG9z dCIpOwotLQotLSAgaG9zdGVudCA9IGdldGhvc3RieW5hbWUgKGhvc3RuYW1lKTsKLS0gIGlmICgh aG9zdGVudCkKLS0gICAgewotLSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwg IiVzOiB1bmtub3duIGhvc3RcbiIsIGhvc3RuYW1lKTsKLS0gICAgICBlcnJubyA9IEVOT0VOVDsK LS0gICAgICByZXR1cm4gLTE7Ci0tICAgIH0KLSsgIGludCBzb2NrID0gZ2RiX3NvY2tldF9jbG9l eGVjIChhaW5mby0+YWlfZmFtaWx5LCBhaW5mby0+YWlfc29ja3R5cGUsCi0rCQkJCSBhaW5mby0+ YWlfcHJvdG9jb2wpOwotIAotLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7Ci0tICBz b2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gIG1lbWNweSAoJnNvY2thZGRyLnNp bl9hZGRyLnNfYWRkciwgaG9zdGVudC0+aF9hZGRyLAotLQkgIHNpemVvZiAoc3RydWN0IGluX2Fk ZHIpKTsKLS0KLS0gcmV0cnk6Ci0tCi0tICBpZiAodXNlX3VkcCkKLS0gICAgc2NiLT5mZCA9IGdk Yl9zb2NrZXRfY2xvZXhlYyAoUEZfSU5FVCwgU09DS19ER1JBTSwgMCk7Ci0tICBlbHNlCi0tICAg IHNjYi0+ZmQgPSBnZGJfc29ja2V0X2Nsb2V4ZWMgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsK LS0KLS0gIGlmIChzY2ItPmZkID09IC0xKQotKyAgaWYgKHNvY2sgPCAwKQotICAgICByZXR1cm4g LTE7Ci0tICAKLSsKLSAgIC8qIFNldCBzb2NrZXQgbm9uYmxvY2tpbmcuICAqLwotLSAgaW9hcmcg PSAxOwotLSAgaW9jdGwgKHNjYi0+ZmQsIEZJT05CSU8sICZpb2FyZyk7Ci0rICBpbnQgaW9hcmcg PSAxOwotKwotKyAgaW9jdGwgKHNvY2ssIEZJT05CSU8sICZpb2FyZyk7Ci0gCi0gICAvKiBVc2Ug Tm9uLWJsb2NraW5nIGNvbm5lY3QuICBjb25uZWN0KCkgd2lsbCByZXR1cm4gMCBpZiBjb25uZWN0 ZWQKLSAgICAgIGFscmVhZHkuICAqLwotLSAgbiA9IGNvbm5lY3QgKHNjYi0+ZmQsIChzdHJ1Y3Qg c29ja2FkZHIgKikgJnNvY2thZGRyLCBzaXplb2YgKHNvY2thZGRyKSk7Ci0tCi0tICBpZiAobiA8 IDApCi0rICBpZiAoY29ubmVjdCAoc29jaywgYWluZm8tPmFpX2FkZHIsIGFpbmZvLT5haV9hZGRy bGVuKSA8IDApCi0gICAgIHsKLSAjaWZkZWYgVVNFX1dJTjMyQVBJCi0gICAgICAgaW50IGVyciA9 IFdTQUdldExhc3RFcnJvcigpOwotQEAgLTIzNCwyMSArMTg1LDI2IEBAIG5ldF9vcGVuIChzdHJ1 Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgICAgaW50IGVyciA9IGVycm5v OwotICNlbmRpZgotIAotLSAgICAgIC8qIE1heWJlIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSByZW1v dGUgdGFyZ2V0IHRvIGJlY29tZSByZWFkeSB0bwotLQkgYWNjZXB0IGNvbm5lY3Rpb25zLiAgKi8K LS0gICAgICBpZiAodGNwX2F1dG9fcmV0cnkKLSsgICAgICAvKiBJZiB3ZSd2ZSBnb3QgYSAiY29u bmVjdGlvbiByZWZ1c2VkIiBlcnJvciwganVzdCByZXR1cm4KLSsJIC0xLiAgVGhlIGNhbGxlciB3 aWxsIGtub3cgd2hhdCB0byBkby4gICovCi0rICAgICAgaWYgKAotICNpZmRlZiBVU0VfV0lOMzJB UEkKLS0JICAmJiBlcnIgPT0gV1NBRUNPTk5SRUZVU0VECi0rCSAgZXJyID09IFdTQUVDT05OUkVG VVNFRAotICNlbHNlCi0tCSAgJiYgZXJyID09IEVDT05OUkVGVVNFRAotKwkgIGVyciA9PSBFQ09O TlJFRlVTRUQKLSAjZW5kaWYKLS0JICAmJiB3YWl0X2Zvcl9jb25uZWN0IChOVUxMLCAmcG9sbHMp ID49IDApCi0rCSAgKQotIAl7Ci0tCSAgY2xvc2UgKHNjYi0+ZmQpOwotLQkgIGdvdG8gcmV0cnk7 Ci0rCSAgY2xvc2UgKHNvY2spOwotKwkgIGVycm5vID0gZXJyOwotKwkgIHJldHVybiAtMTsKLSAJ fQotIAotICAgICAgIGlmICgKLSsJICAvKiBBbnkgb3RoZXIgZXJyb3IgKGV4Y2VwdCBFSU5QUk9H UkVTUykgd2lsbCBiZSAic3dhbGxvd2VkIgotKwkgICAgIGhlcmUuICBXZSByZXR1cm4gd2l0aG91 dCBzcGVjaWZ5aW5nIGEgcmV0dXJuIHZhbHVlLCBhbmQKLSsJICAgICBzZXQgZXJybm8gaWYgdGhl IGNhbGxlciB3YW50cyB0byBpbnNwZWN0IHdoYXQKLSsJICAgICBoYXBwZW5lZC4gICovCi0gI2lm ZGVmIFVTRV9XSU4zMkFQSQotIAkgIC8qIFVuZGVyIFdpbmRvd3MsIGNhbGxpbmcgImNvbm5lY3Qi IHdpdGggYSBub24tYmxvY2tpbmcgc29ja2V0Ci0gCSAgICAgcmVzdWx0cyBpbiBXU0FFV09VTERC TE9DSywgbm90IFdTQUVJTlBST0dSRVNTLiAgKi8KLUBAIC0yNTgsNjYgKzIxNCwxNjYgQEAgbmV0 X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKLSAjZW5kaWYKLSAJ ICApCi0gCXsKLSsJICBjbG9zZSAoc29jayk7Ci0gCSAgZXJybm8gPSBlcnI7Ci0tCSAgbmV0X2Ns b3NlIChzY2IpOwotIAkgIHJldHVybiAtMTsKLSAJfQotIAotICAgICAgIC8qIExvb2tzIGxpa2Ug d2UgbmVlZCB0byB3YWl0IGZvciB0aGUgY29ubmVjdC4gICovCi0tICAgICAgZG8gCi0tCXsKLS0J ICBuID0gd2FpdF9mb3JfY29ubmVjdCAoc2NiLCAmcG9sbHMpOwotLQl9IAotKyAgICAgIGludCBu OwotKwotKyAgICAgIGRvCi0rCW4gPSB3YWl0X2Zvcl9jb25uZWN0IChzb2NrLCBwb2xscyk7Ci0g ICAgICAgd2hpbGUgKG4gPT0gMCk7Ci0rCi0gICAgICAgaWYgKG4gPCAwKQotIAl7Ci0tCSAgbmV0 X2Nsb3NlIChzY2IpOwotKwkgIGludCBzYXZlZF9lcnJubyA9IGVycm5vOwotKwotKwkgIC8qIEEg bmVnYXRpdmUgdmFsdWUgaGVyZSBtZWFucyB0aGF0IHdlIGVpdGhlciB0aW1lZCBvdXQgb3IKLSsJ ICAgICBnb3QgaW50ZXJydXB0ZWQgYnkgdGhlIHVzZXIuICBKdXN0IHJldHVybi4gICovCi0rCSAg Y2xvc2UgKHNvY2spOwotKwkgIGVycm5vID0gc2F2ZWRfZXJybm87Ci0gCSAgcmV0dXJuIC0xOwot IAl9Ci0gICAgIH0KLSAKLSAgIC8qIEdvdCBzb21ldGhpbmcuICBJcyBpdCBhbiBlcnJvcj8gICov Ci0tICB7Ci0tICAgIGludCByZXMsIGVycjsKLS0gICAgc29ja2xlbl90IGxlbjsKLS0KLS0gICAg bGVuID0gc2l6ZW9mIChlcnIpOwotLSAgICAvKiBPbiBXaW5kb3dzLCB0aGUgZm91cnRoIHBhcmFt ZXRlciB0byBnZXRzb2Nrb3B0IGlzIGEgImNoYXIgKiI7Ci0tICAgICAgIG9uIFVOSVggc3lzdGVt cyBpdCBpcyBnZW5lcmFsbHkgInZvaWQgKiIuICBUaGUgY2FzdCB0byAiY2hhciAqIgotLSAgICAg ICBpcyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNh biBiZQotLSAgICAgICBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byAidm9pZCAqIi4gICovCi0tICAg IHJlcyA9IGdldHNvY2tvcHQgKHNjYi0+ZmQsIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAq KSAmZXJyLCAmbGVuKTsKLS0gICAgaWYgKHJlcyA8IDAgfHwgZXJyKQotLSAgICAgIHsKLS0JLyog TWF5YmUgdGhlIHRhcmdldCBzdGlsbCBpc24ndCByZWFkeSB0byBhY2NlcHQgdGhlIGNvbm5lY3Rp b24uICAqLwotLQlpZiAodGNwX2F1dG9fcmV0cnkKLSsgIGludCBlcnI7Ci0rICBzb2NrbGVuX3Qg bGVuID0gc2l6ZW9mIChlcnIpOwotKwotKyAgLyogT24gV2luZG93cywgdGhlIGZvdXJ0aCBwYXJh bWV0ZXIgdG8gZ2V0c29ja29wdCBpcyBhICJjaGFyICoiOwotKyAgICAgb24gVU5JWCBzeXN0ZW1z IGl0IGlzIGdlbmVyYWxseSAidm9pZCAqIi4gIFRoZSBjYXN0IHRvICJjaGFyICoiCi0rICAgICBp cyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNhbiBi ZQotKyAgICAgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gInZvaWQgKiIuICAqLwotKyAgaW50IHJl dCA9IGdldHNvY2tvcHQgKHNvY2ssIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAmZXJy LCAmbGVuKTsKLSsKLSsgIGlmIChyZXQgPCAwKQotKyAgICB7Ci0rICAgICAgaW50IHNhdmVkX2Vy cm5vID0gZXJybm87Ci0rCi0rICAgICAgY2xvc2UgKHNvY2spOwotKyAgICAgIGVycm5vID0gc2F2 ZWRfZXJybm87Ci0rICAgICAgcmV0dXJuIC0xOwotKyAgICB9Ci0rICBlbHNlIGlmIChyZXQgPT0g MCAmJiBlcnIgIT0gMCkKLSsgICAgewotKyAgICAgIGNsb3NlIChzb2NrKTsKLSsgICAgICBlcnJu byA9IGVycjsKLSsgICAgICByZXR1cm4gLTE7Ci0rICAgIH0KLSsKLSsgIC8qIFRoZSBjb25uZWN0 aW9uIHN1Y2NlZWRlZC4gIFJldHVybiB0aGUgc29ja2V0LiAgKi8KLSsgIHJldHVybiBzb2NrOwot K30KLSsKLSsvKiBPcGVuIGEgdGNwIHNvY2tldC4gICovCi0rCi0raW50Ci0rbmV0X29wZW4gKHN0 cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKLSt7Ci0rICBzdHJ1Y3QgYWRkcmlu Zm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0rCi0rICBtZW1zZXQgKCZoaW50 LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNz ZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9VTlNQRUMuICAqLwotKyAgaGlu dC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJF QU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7Ci0rCi0rICBwYXJzZWRfY29u bmVjdGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQp OwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKLSsgICAgZXJyb3IgKF8oIk1p c3NpbmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOwotKwotKyAgaW50IHIgPSBnZXRh ZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLAotKwkJICAgICAgIHBhcnNlZC5wb3J0 X3N0ci5jX3N0ciAoKSwKLSsJCSAgICAgICAmaGludCwgJmFpbmZvKTsKLSsKLSsgIGlmIChyICE9 IDApCi0rICAgIHsKLSsgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsIF8oIiVz OiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAlc1xuIiksCi0rCQkJICBuYW1lLCBnYWlfc3RyZXJyb3Ig KHIpKTsKLSsgICAgICBlcnJubyA9IEVOT0VOVDsKLSsgICAgICByZXR1cm4gLTE7Ci0rICAgIH0K LSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZvKTsKLSsKLSsgIC8q IEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB3ZSd2ZSBnb3QgYSBjb25uZWN0aW9uIHJlZnVzZWQu ICBJdCB3aWxsCi0rICAgICBiZSB0cnVlIGlmIGFueSBvZiB0aGUgY29ubmVjdGlvbnMgdHJpZWQg d2FzIHJlZnVzZWQuICAqLwotKyAgYm9vbCBnb3RfY29ubnJlZnVzZWQ7Ci0rICAvKiBJZiBhIGNv bm5lY3Rpb24gc3VjY2VlZWRzLCBTVUNDRVNTX0FJTkZPIHdpbGwgcG9pbnQgdG8gdGhlCi0rICAg ICAnc3RydWN0IGFkZHJpbmZvJyB0aGF0IHN1Y2NlZWQuICAqLwotKyAgc3RydWN0IGFkZHJpbmZv ICpzdWNjZXNzX2FpbmZvID0gTlVMTDsKLSsgIHVuc2lnbmVkIGludCBwb2xscyA9IDA7Ci0rCi0r ICAvKiBBc3N1bWUgdGhlIHdvcnN0LiAgKi8KLSsgIHNjYi0+ZmQgPSAtMTsKLSsKLSsgIGRvCi0r ICAgIHsKLSsgICAgICBnb3RfY29ubnJlZnVzZWQgPSBmYWxzZTsKLSsKLSsgICAgICBmb3IgKHN0 cnVjdCBhZGRyaW5mbyAqaXRlciA9IGFpbmZvOyBpdGVyICE9IE5VTEw7IGl0ZXIgPSBpdGVyLT5h aV9uZXh0KQotKwl7Ci0rCSAgLyogSXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGFk ZHJlc3NlcyB0byBjb25uZWN0Ci0rCSAgICAgdG8uICBGb3IgZWFjaCwgd2UnbGwgdHJ5IHRvIGNv bm5lY3QgYW5kIHNlZSBpZiBpdAotKwkgICAgIHN1Y2NlZWRzLiAgKi8KLSsJICBpbnQgc29jayA9 IHRyeV9jb25uZWN0IChpdGVyLCAmcG9sbHMpOwotKwotKwkgIGlmIChzb2NrID49IDApCi0rCSAg ICB7Ci0rCSAgICAgIC8qIFdlJ3ZlIGdvdHRlbiBhIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbi4gIFNh dmUgaXRzCi0rCQkgJ3N0cnVjdCBhZGRyaW5mbycsIHRoZSBzb2NrZXQsIGFuZCBicmVhay4gICov Ci0rCSAgICAgIHN1Y2Nlc3NfYWluZm8gPSBpdGVyOwotKwkgICAgICBzY2ItPmZkID0gc29jazsK LSsJICAgICAgYnJlYWs7Ci0rCSAgICB9Ci0rCSAgZWxzZSBpZiAoCi0gI2lmZGVmIFVTRV9XSU4z MkFQSQotLQkgICAgJiYgZXJyID09IFdTQUVDT05OUkVGVVNFRAotKwkgIGVycm5vID09IFdTQUVD T05OUkVGVVNFRAotICNlbHNlCi0tCSAgICAmJiBlcnIgPT0gRUNPTk5SRUZVU0VECi0rCSAgZXJy bm8gPT0gRUNPTk5SRUZVU0VECi0gI2VuZGlmCi0tCSAgICAmJiB3YWl0X2Zvcl9jb25uZWN0IChO VUxMLCAmcG9sbHMpID49IDApCi0tCSAgewotLQkgICAgY2xvc2UgKHNjYi0+ZmQpOwotLQkgICAg Z290byByZXRyeTsKLS0JICB9Ci0tCWlmIChlcnIpCi0tCSAgZXJybm8gPSBlcnI7Ci0tCW5ldF9j bG9zZSAoc2NiKTsKLS0JcmV0dXJuIC0xOwotLSAgICAgIH0KLS0gIH0gCi0rCQkgICApCi0rCSAg ICBnb3RfY29ubnJlZnVzZWQgPSB0cnVlOwotKwl9Ci0rICAgIH0KLSsgIC8qIEp1c3QgcmV0cnkg aWY6Ci0rCi0rICAgICAtIHRjcF9hdXRvX3JldHJ5IGlzIHRydWUsIGFuZAotKyAgICAgLSBXZSBo YXZlbid0IGdvdHRlbiBhIGNvbm5lY3Rpb24geWV0LCBhbmQKLSsgICAgIC0gQW55IG9mIG91ciBj b25uZWN0aW9uIGF0dGVtcHRzIHJldHVybmVkIHdpdGggRUNPTk5SRUZVU0VELCBhbmQKLSsgICAg IC0gd2FpdF9mb3JfY29ubmVjdCBzaWduYWxzIHRoYXQgd2UgY2FuIGtlZXAgZ29pbmcuICAqLwot KyAgd2hpbGUgKHRjcF9hdXRvX3JldHJ5Ci0rCSAmJiBzdWNjZXNzX2FpbmZvID09IE5VTEwKLSsJ ICYmIGdvdF9jb25ucmVmdXNlZAotKwkgJiYgd2FpdF9mb3JfY29ubmVjdCAoLTEsICZwb2xscykg Pj0gMCk7Ci0rCi0rICBpZiAoc3VjY2Vzc19haW5mbyA9PSBOVUxMKQotKyAgICB7Ci0rICAgICAg bmV0X2Nsb3NlIChzY2IpOwotKyAgICAgIHJldHVybiAtMTsKLSsgICAgfQotIAotICAgLyogVHVy biBvZmYgbm9uYmxvY2tpbmcuICAqLwotLSAgaW9hcmcgPSAwOwotKyNpZmRlZiBVU0VfV0lOMzJB UEkKLSsgIHVfbG9uZyBpb2FyZyA9IDA7Ci0rI2Vsc2UKLSsgIGludCBpb2FyZyA9IDA7Ci0rI2Vu ZGlmCi0rCi0gICBpb2N0bCAoc2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsKLSAKLS0gIGlmICh1 c2VfdWRwID09IDApCi0rICBpZiAoc3VjY2Vzc19haW5mby0+YWlfc29ja3R5cGUgPT0gSVBQUk9U T19UQ1ApCi0gICAgIHsKLSAgICAgICAvKiBEaXNhYmxlIE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRl ZCBpbiBzb21lIGNhc2VzLiAgKi8KLS0gICAgICB0bXAgPSAxOwotKyAgICAgIGludCB0bXAgPSAx OwotKwotICAgICAgIHNldHNvY2tvcHQgKHNjYi0+ZmQsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxB WSwKLS0JCSAgKGNoYXIgKikmdG1wLCBzaXplb2YgKHRtcCkpOwotKwkJICAoY2hhciAqKSAmdG1w LCBzaXplb2YgKHRtcCkpOwotICAgICB9Ci0gCi0gI2lmZGVmIFNJR1BJUEUKLWRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0tLS0g YS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cK LUBAIC0xLDMgKzEsMjMgQEAKLSsyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxz ZXJnaW9kakByZWRoYXQuY29tPgotKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPgotKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4K LSsJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KLSsKLSsJKiBSRUFETUUg KFRlc3RzdWl0ZSBQYXJhbWV0ZXJzKTogTWVudGlvbiBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhPU1Qn Ci0rCXBhcmFtZXRlci4KLSsJKiBib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHA6 IERvIG5vdCBzZXQgJ3NvY2tldGhvc3QnCi0rCWJ5IGRlZmF1bHQuCi0rCSogYm9hcmRzL25hdGl2 ZS1nZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4KLSsJKiBnZGIuc2VydmVyL3J1bi13aXRob3V0LWxv Y2FsLWJpbmFyeS5leHA6IEltcHJvdmUgcmVnZXhwIHVzZWQKLSsJZm9yIGRldGVjdGluZyB3aGVu IGEgcmVtb3RlIGRlYnVnZ2luZyBjb25uZWN0aW9uIHN1Y2NlZWRzLgotKwkqIGdkYi5zZXJ2ZXIv c2VydmVyLWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4KLSsJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQu ZXhwIChnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0KToKLSsJRG8gbm90IHByZWZpeCB0 aGUgcG9ydCBudW1iZXIgd2l0aCAiOiIuCi0rCShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFs IEdEQl9URVNUX1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQKLSsJc3VwcG9ydCBmb3IgZGV0ZWN0aW5n IGFuZCB1c2luZyBpdC4gIEFkZCAnJGRlYnVnaG9zdF9nZGJzZXJ2ZXInCi0rCXRvIHRoZSBsaXN0 IG9mIGFyZ3VtZW50cyB1c2VkIHRvIHN0YXJ0IGdkYnNlcnZlci4gIEhhbmRsZSBjYXNlCi0rCXdo ZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGEgbmV0d29yayBuYW1lLgotKwotIDIwMTgtMDct MTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0gCi0gCVBS IGMrKy8yMzM3MwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvUkVBRE1FIGIvZ2RiL3Rlc3Rz dWl0ZS9SRUFETUUKLS0tLSBhL2dkYi90ZXN0c3VpdGUvUkVBRE1FCi0rKysgYi9nZGIvdGVzdHN1 aXRlL1JFQURNRQotQEAgLTI1OSw2ICsyNTksMjAgQEAgVGhpcyBtYWtlIChub3QgcnVudGVzdCkg dmFyaWFibGUgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXRoZXIgdGhlCi0gdGVzdHN1aXRlIHByZWxv YWRzIHRoZSByZWFkMS5zbyBsaWJyYXJ5IGludG8gZXhwZWN0LiAgQW55IG5vbi1lbXB0eQotIHZh bHVlIG1lYW5zIHRydWUuICBTZWUgIlJhY2UgZGV0ZWN0aW9uIiBiZWxvdy4KLSAKLStHREJfVEVT VF9TT0NLRVRIT1NUCi0rCi0rVGhpcyB2YXJpYWJsZSBjYW4gcHJvdmlkZSB0aGUgaG9zdG5hbWUv YWRkcmVzcyB0aGF0IHNob3VsZCBiZSB1c2VkCi0rd2hlbiBwZXJmb3JtaW5nIEdEQnNlcnZlci1y ZWxhdGVkIHRlc3RzLiAgVGhpcyBpcyB1c2VmdWwgaW4gc29tZQotK3NpdHVhdGlvbnMsIGUuZy4s IHdoZW4geW91IHdhbnQgdG8gdGVzdCB0aGUgSVB2NiBjb25uZWN0aXZpdHkgb2YgR0RCCi0rYW5k IEdEQnNlcnZlciwgb3Igd2hlbiB1c2luZyBhIGRpZmZlcmVudCBob3N0bmFtZS9hZGRyZXNzIGlz IG5lZWRlZC4KLStGb3IgZXhhbXBsZSwgdG8gbWFrZSBHREIgYW5kIEdEQnNlcnZlciB1c2UgSVB2 Ni1vbmx5IGNvbm5lY3Rpb25zLCB5b3UKLStjYW4gZG86Ci0rCi0rCW1ha2UgY2hlY2sgVEVTVFM9 ImdkYi5zZXJ2ZXIvKi5leHAiIFJVTlRFU1RGTEFHUz0nR0RCX1RFU1RfU09DS0VUSE9TVD10Y3A2 Ols6OjFdJwotKwotK05vdGUgdGhhdCBvbmx5IGEgaG9zdG5hbWUvYWRkcmVzcyBjYW4gYmUgcHJv dmlkZWQsIHdpdGhvdXQgYSBwb3J0Ci0rbnVtYmVyLgotKwotIFJhY2UgZGV0ZWN0aW9uCi0gKioq KioqKioqKioqKioKLSAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUt ZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRl bmRlZC1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0 ZW5kZWQtZ2Ric2VydmVyLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4 dGVuZGVkLWdkYnNlcnZlci5leHAKLUBAIC0yNCw4ICsyNCw2IEBAIGxvYWRfZ2VuZXJpY19jb25m aWcgImV4dGVuZGVkLWdkYnNlcnZlciIKLSBsb2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJnZGJzZXJ2 ZXItYmFzZSIKLSBsb2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJsb2NhbC1ib2FyZCIKLSAKLS1zZXRf Ym9hcmRfaW5mbyBzb2NrZXRob3N0ICJsb2NhbGhvc3Q6IgotLQotICMgV2Ugd2lsbCBiZSB1c2lu ZyB0aGUgZXh0ZW5kZWQgR0RCIHJlbW90ZSBwcm90b2NvbC4KLSBzZXRfYm9hcmRfaW5mbyBnZGJf cHJvdG9jb2wgImV4dGVuZGVkLXJlbW90ZSIKLSAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2 ZS1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2Vy dmVyLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAK LUBAIC0zMCw3ICszMCw2IEBAIHNldF9ib2FyZF9pbmZvIGdkYixkb19yZWxvYWRfb25fcnVuIDEK LSAjIFRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgYXJndW1lbnQtcGFzc2luZyAoeWV0KS4KLSBzZXRf Ym9hcmRfaW5mbyBub2FyZ3MgMQotIAotLXNldF9ib2FyZF9pbmZvIHNvY2tldGhvc3QgImxvY2Fs aG9zdDoiCi0gc2V0X2JvYXJkX2luZm8gdXNlX2dkYl9zdHViIDEKLSBzZXRfYm9hcmRfaW5mbyBl eGl0X2lzX3JlbGlhYmxlIDEKLSAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2 ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZl ci9ydW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5z ZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAKLUBAIC01Myw3ICs1Myw3IEBA IHNhdmVfdmFycyB7IEdEQkZMQUdTIH0gewotICAgICBzZXQgdXNlX2dkYl9zdHViIDAKLSAKLSAg ICAgZ2RiX3Rlc3QgInRhcmdldCAke2dkYnNlcnZlcl9wcm90b2NvbH0gJHtnZGJzZXJ2ZXJfZ2Ri cG9ydH0iIFwKLS0JIlJlbW90ZSBkZWJ1Z2dpbmcgdXNpbmcgJGdkYnNlcnZlcl9nZGJwb3J0IiBc Ci0rCSJSZW1vdGUgZGVidWdnaW5nIHVzaW5nIFtzdHJpbmdfdG9fcmVnZXhwICRnZGJzZXJ2ZXJf Z2RicG9ydF0iIFwKLSAJImNvbm5lY3QgdG8gZ2Ric2VydmVyIgotIAotICAgICBnZGJfdGVzdCAi cnVuIiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3NlcnZlci1jb25u ZWN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAKLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwCi1AQCAtMCwwICsxLDExMSBAQAotKyMgVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsjCi0rIyBDb3B5cmln aHQgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK LSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGVzdCBtdWx0aXBsZSB0eXBlcyBvZiBjb25uZWN0aW9u IChJUHY0LCBJUHY2LCBUQ1AsIFVEUCkgYW5kIG1ha2UKLSsjIHN1cmUgYm90aCBnZGJzZXJ2ZXIg YW5kIEdEQiB3b3JrLgotKwotK2xvYWRfbGliIGdkYnNlcnZlci1zdXBwb3J0LmV4cAotKwotK3N0 YW5kYXJkX3Rlc3RmaWxlIG5vcm1hbC5jCi0rCi0raWYge1tza2lwX2dkYnNlcnZlcl90ZXN0c119 IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBXZSB3YW50IHRvIGhhdmUgY29udHJvbCBvdmVy IHdoZXJlIHdlIHN0YXJ0IGdkYnNlcnZlci4KLStpZiB7IFtpc19yZW1vdGUgdGFyZ2V0XSB9IHsK LSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVk IHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10gfSB7Ci0rICAgIHJldHVybiAt MQotK30KLSsKLSsjIE1ha2Ugc3VyZSB3ZSdyZSBkaXNjb25uZWN0ZWQsIGluIGNhc2Ugd2UncmUg dGVzdGluZyB3aXRoIGFuCi0rIyBleHRlbmRlZC1yZW1vdGUgYm9hcmQsIHRoZXJlZm9yZSBhbHJl YWR5IGNvbm5lY3RlZC4KLStnZGJfdGVzdCAiZGlzY29ubmVjdCIgIi4qIgotKwotK3NldCB0YXJn ZXRfZXhlYyBbZ2Ric2VydmVyX2Rvd25sb2FkX2N1cnJlbnRfcHJvZ10KLSsKLSsjIEFuIGFycmF5 IGNvbnRhaW5pbmcgdGhlIHRlc3QgaW5zdHJ1Y3Rpb25zIGZvciBlYWNoIHNjZW5hcmlvLiAgVGhl Ci0rIyBkZXNjcmlwdGlvbiBvZiBlYWNoIGZpZWxkIGlzIGFzIGZvbGxvd3M6Ci0rIwotKyMgLSBU aGUgY29ubmVjdGlvbiBzcGVjaWZpY2F0aW9uIHRvIGJlIHVzZWQgd2hlbiBzdGFydGluZwotKyMg ICBnZGJzZXJ2ZXIvR0RCLiAgVGhpcyBzdHJpbmcgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGUKLSsj ICAgR0RCX1RFU1RfU09DS0VUSE9TVCB3aGVuIGNhbGxpbmcgZ2Ric2VydmVyX3N0YXJ0LgotKyMK LSsjIC0gQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBnZGJzZXJ2ZXIgc2hvdWxkIGZhaWwgd2hl biB3ZSBhdHRlbXB0IHRvCi0rIyAgIHN0YXJ0IGl0LiAgVXNlZnVsIHdoZW4gdGVzdGluZyBlcnJv bmVvdXMgY29ubmVjdGlvbiBzcGVjcyBzdWNoIGFzCi0rIyAgICJ0Y3A4OiIuCi0rIwotKyMgLSBU aGUgcHJlZml4IHRoYXQgc2hvdWxkIGJlIHByZXBlbmRlZCB0byB0aGUgdGVzdCBtZXNzYWdlcy4K LStzZXQgdGVzdF9wYXJhbXMgXAotKyAgICB7IFwKLSsJICB7ICJ0Y3A0OjEyNy4wLjAuMSIgMCAi dGNwNCIgfSBcCi0rCSAgeyAidGNwNjo6OjEiICAgICAgIDAgInRjcDYiIH0gXAotKwkgIHsgInRj cDY6Wzo6MV0iICAgICAwICJ0Y3A2LXdpdGgtYnJhY2tldHMiIH0gXAotKwkgIHsgInRjcDpsb2Nh bGhvc3QiICAwICJ0Y3AiIH0gXAotKwkgIHsgInVkcDQ6MTI3LjAuMC4xIiAwICJ1ZHA0IiB9IFwK LSsJICB7ICJ1ZHA2Ojo6MSIgICAgICAgMCAidWRwNiIgfSBcCi0rCSAgeyAidWRwNjpbOjoxXSIg ICAgIDAgInVkcDYtd2l0aC1icmFja2V0cyIgfSBcCi0rCSAgeyAidGNwODoxMjMiICAgICAgIDEg InRjcDgiIH0gXAotKwkgIHsgInVkcDEyMzo6OiIgICAgICAxICJ1ZHAxMjMiIH0gXAotKwkgIHsg ImdhcmJhZ2U6MTIzNCIgICAxICJnYXJiYWdlOjEyMzQiIH0gXAotKyAgICB9Ci0rCi0rIyBUaGUg YmVzdCB3YXkgdG8gdGVzdCBkaWZmZXJlbnQgdHlwZXMgb2YgY29ubmVjdGlvbnMgaXMgdG8gc2V0 IHRoZQotKyMgR0RCX1RFU1RfU09DS0VUSE9TVCB2YXJpYWJsZSBhY2NvcmRpbmdseS4KLStzYXZl X3ZhcnMgeyBHREJfVEVTVF9TT0NLRVRIT1NUIH0gewotKyAgICBmb3JlYWNoIGxpbmUgJHRlc3Rf cGFyYW1zIHsKLSsJc2V0IHNvY2tob3N0IFtsaW5kZXggJGxpbmUgMF0KLSsJc2V0IGdkYnNlcnZl cl9zaG91bGRfZmFpbCBbbGluZGV4ICRsaW5lIDFdCi0rCXNldCBwcmVmaXggW2xpbmRleCAkbGlu ZSAyXQotKwotKwl3aXRoX3Rlc3RfcHJlZml4ICRwcmVmaXggewotKwkgICAgc2V0IEdEQl9URVNU X1NPQ0tFVEhPU1QgJHNvY2tob3N0Ci0rCSAgICBzZXQgdGVzdCAic3RhcnQgZ2Ric2VydmVyIgot KwotKwkgICAgIyBUcnkgdG8gc3RhcnQgZ2Ric2VydmVyLgotKwkgICAgc2V0IGNhdGNocmVzIFtj YXRjaCB7c2V0IHJlcyBbZ2Ric2VydmVyX3N0YXJ0ICIiICR0YXJnZXRfZXhlY119IGVycm1zZ10K LSsKLSsJICAgIGlmIHsgJGNhdGNocmVzICE9IDAgfSB7Ci0rCQlpZiB7ICRnZGJzZXJ2ZXJfc2hv dWxkX2ZhaWwgfSB7Ci0rCQkgICAgcGFzcyAiJHRlc3Q6IGdkYnNlcnZlciBmYWlsZWQgYXMgZXhw ZWN0ZWQiCi0rCQl9IGVsc2UgewotKwkJICAgIGZhaWwgIiR0ZXN0OiAkZXJybXNnIgotKwkJfQot KwkJY29udGludWUKLSsJICAgIH0gZWxzZSB7Ci0rCQlpZiB7ICRnZGJzZXJ2ZXJfc2hvdWxkX2Zh aWwgfSB7Ci0rCQkgICAgZmFpbCAiJHRlc3Q6IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlk IG5vdCIKLSsJCX0gZWxzZSB7Ci0rCQkgICAgcGFzcyAiJHRlc3QiCi0rCQl9Ci0rCSAgICB9Ci0r Ci0rCSAgICBzZXQgZ2Ric2VydmVyX3Byb3RvY29sIFtsaW5kZXggJHJlcyAwXQotKwkgICAgc2V0 IGdkYnNlcnZlcl9nZGJwb3J0IFtsaW5kZXggJHJlcyAxXQotKwkgICAgc2V0IHRlc3QgImNvbm5l Y3QgdG8gZ2Ric2VydmVyIHVzaW5nICRzb2NraG9zdCIKLSsKLSsJICAgIGlmIHsgW2dkYl90YXJn ZXRfY21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9nZGJwb3J0XSA9PSAwIH0gewot KwkJcGFzcyAkdGVzdAotKwkgICAgfSBlbHNlIHsKLSsJCWZhaWwgJHRlc3QKLSsJICAgIH0KLSsJ fQotKyAgICB9Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1z dXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAotLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi0rKysgYi9nZGIvdGVz dHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLUBAIC0yMTEsNyArMjExLDcgQEAgcHJv YyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfcmVtb3RlX2FkZHJlc3MgeyBob3N0IHBvcnQgfSB7Ci0g IyBEZWZhdWx0IHJvdXRpbmUgdG8gY29tcHV0ZSB0aGUgImNvbW0iIGFyZ3VtZW50IGZvciBnZGJz ZXJ2ZXIuCi0gCi0gcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0IHsgcG9ydCB9 IHsKLS0gICAgcmV0dXJuICI6JHBvcnQiCi0rICAgIHJldHVybiAiJHBvcnQiCi0gfQotIAotICMg U3RhcnQgYSBnZGJzZXJ2ZXIgcHJvY2VzcyB3aXRoIGluaXRpYWwgT1BUSU9OUyBhbmQgdHJhaWxp bmcgQVJHVU1FTlRTLgotQEAgLTIyMSw2ICsyMjEsNyBAQCBwcm9jIGdkYnNlcnZlcl9kZWZhdWx0 X2dldF9jb21tX3BvcnQgeyBwb3J0IH0gewotIAotIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0 aW9ucyBhcmd1bWVudHMgfSB7Ci0gICAgIGdsb2JhbCBwb3J0bnVtCi0rICAgIGdsb2JhbCBHREJf VEVTVF9TT0NLRVRIT1NUCi0gCi0gICAgICMgUG9ydCBpZCAtLSBlaXRoZXIgc3BlY2lmaWVkIGlu IGJhc2Vib2FyZCBmaWxlLCBvciBtYW5hZ2VkIGhlcmUuCi0gICAgIGlmIFt0YXJnZXRfaW5mbyBl eGlzdHMgZ2RiLHNvY2tldHBvcnRdIHsKLUBAIC0yMzEsMTAgKzIzMiwyMiBAQCBwcm9jIGdkYnNl cnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0gewotICAgICB9Ci0gCi0gICAgICMgRXh0 cmFjdCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBob3N0IGlkcyBmcm9tIHRoZSB0YXJnZXQgYm9hcmQg c3RydWN0LgotLSAgICBpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIHNvY2tldGhvc3RdIHsKLSsgICAg aWYgeyBbaW5mbyBleGlzdHMgR0RCX1RFU1RfU09DS0VUSE9TVF0gfSB7Ci0rCSMgVGhlIHVzZXIg aXMgbm90IHN1cHBvc2VkIHRvIHByb3ZpZGUgYSBwb3J0IG51bWJlciwganVzdCBhCi0rCSMgaG9z dG5hbWUvYWRkcmVzcywgdGhlcmVmb3JlIHdlIGFkZCB0aGUgdHJhaWxpbmcgIjoiIGhlcmUuCi0r CXNldCBkZWJ1Z2hvc3QgIiR7R0RCX1RFU1RfU09DS0VUSE9TVH06IgotKwkjIEVzY2FwZSBvcGVu IGFuZCBjbG9zZSBzcXVhcmUgYnJhY2tldHMuCi0rCXNldCBkZWJ1Z2hvc3RfdG1wIFtzdHJpbmcg bWFwIHsgWyBcXFsgXSBcXF0gfSAkZGVidWdob3N0XQotKwkjIFdlIG5lZWQgYSAiZ2Ric2VydmVy IiB2ZXJzaW9uIG9mIHRoZSBkZWJ1Z2hvc3QsIHdoaWNoIHdpbGwKLSsJIyBoYXZlIHRoZSBwb3Nz aWJsZSBjb25uZWN0aW9uIHByZWZpeCBzdHJpcHBlZC4gIFRoaXMgaXMKLSsJIyBiZWNhdXNlIGdk YnNlcnZlciBjdXJyZW50bHkgZG9lc24ndCByZWNvZ25pemUgdGhlIHByZWZpeGVzLgotKwlyZWdz dWIgLWFsbCAiXlwodGNwOnx1ZHA6fHRjcDQ6fHVkcDQ6fHRjcDY6fHVkcDY6XCkiICRkZWJ1Z2hv c3RfdG1wICIiIGRlYnVnaG9zdF9nZGJzZXJ2ZXIKLSsgICAgfSBlbHNlaWYgW3RhcmdldF9pbmZv IGV4aXN0cyBzb2NrZXRob3N0XSB7Ci0gCXNldCBkZWJ1Z2hvc3QgW3RhcmdldF9pbmZvIHNvY2tl dGhvc3RdCi0rCXNldCBkZWJ1Z2hvc3RfZ2Ric2VydmVyICRkZWJ1Z2hvc3QKLSAgICAgfSBlbHNl IHsKLSAJc2V0IGRlYnVnaG9zdCAibG9jYWxob3N0OiIKLSsJc2V0IGRlYnVnaG9zdF9nZGJzZXJ2 ZXIgJGRlYnVnaG9zdAotICAgICB9Ci0gCi0gICAgICMgU29tZSBib2FyZHMgdXNlIGEgZGlmZmVy ZW50IHZhbHVlIGZvciB0aGUgcG9ydCB0aGF0IGlzIHBhc3NlZCB0bwotQEAgLTI3Nyw4ICsyOTAs MTQgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKLSAJaWYg eyAkb3B0aW9ucyAhPSAiIiB9IHsKLSAJICAgIGFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFuZCAiICRv cHRpb25zIgotIAl9Ci0rCWlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIgIT0gIiIgfSB7Ci0rCSAg ICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAkZGVidWdob3N0X2dkYnNlcnZlciIKLSsJfQot IAlpZiB7ICRwb3J0bnVtICE9ICIiIH0gewotLQkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5k ICIgWyRnZXRfY29tbV9wb3J0ICRwb3J0bnVtXSIKLSsJICAgIGlmIHsgJGRlYnVnaG9zdF9nZGJz ZXJ2ZXIgPT0gIiIgfSB7Ci0rCQlhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAiCi0rCSAgICB9 Ci0rCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIlskZ2V0X2NvbW1fcG9ydCAkcG9ydG51 bV0iCi0gCX0KLSAJaWYgeyAkYXJndW1lbnRzICE9ICIiIH0gewotIAkgICAgYXBwZW5kIGdkYnNl cnZlcl9jb21tYW5kICIgJGFyZ3VtZW50cyIKLUBAIC0zMDcsNiArMzI2LDkgQEAgcHJvYyBnZGJz ZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKLSAJCSAgICBjb250aW51ZQotIAkJ fQotIAkgICAgfQotKwkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFtZTogTmFtZSBvciBz ZXJ2aWNlIG5vdCBrbm93blxyXG4iIHsKLSsJCWVycm9yICJnZGJzZXJ2ZXIgY2Fubm90IHJlc29s dmUgbmFtZS4iCi0rCSAgICB9Ci0gCSAgICB0aW1lb3V0IHsKLSAJCWVycm9yICJUaW1lb3V0IHdh aXRpbmcgZm9yIGdkYnNlcnZlciByZXNwb25zZS4iCi0gCSAgICB9Ci1kaWZmIC0tZ2l0IGEvZ2Ri L3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMgYi9nZGIvdW5pdHRl c3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYwotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi91bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1z cGVjLXNlbGZ0ZXN0cy5jCi1AQCAtMCwwICsxLDI0OSBAQAotKy8qIFNlbGYgdGVzdHMgZm9yIHBh cnNpbmcgY29ubmVjdGlvbiBzcGVjcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAg IENvcHlyaWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlICJkZWZzLmgiCi0rI2luY2x1ZGUgInNlbGZ0 ZXN0LmgiCi0rI2luY2x1ZGUgImNvbW1vbi9uZXRzdHVmZi5oIgotKyNpbmNsdWRlICJkaWFnbm9z dGljcy5oIgotKyNpZmRlZiBVU0VfV0lOMzJBUEkKLSsjaW5jbHVkZSA8d2luc29jazIuaD4KLSsj aW5jbHVkZSA8d3NwaWFwaS5oPgotKyNlbHNlCi0rI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLSsj aW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0rI2luY2x1ZGUgPG5ldGRiLmg+Ci0rI2luY2x1ZGUgPHN5 cy9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KLSsjZW5kaWYKLSsKLStuYW1l c3BhY2Ugc2VsZnRlc3RzIHsKLStuYW1lc3BhY2UgcGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3Rz IHsKLSsKLSsvKiBBdXhpbGlhcnkgc3RydWN0IHRoYXQgaG9sZHMgaW5mbyBhYm91dCBhIHNwZWNp ZmljIHRlc3QgZm9yIGEKLSsgICBjb25uZWN0aW9uIHNwZWMuICAqLwotKwotK3N0cnVjdCBwYXJz ZV9jb25uX3Rlc3QKLSt7Ci0rICAvKiBUaGUgY29ubmVjdGlvbiBzcGVjLiAgKi8KLSsgIGNvbnN0 IGNoYXIgKmNvbm5zcGVjOwotKwotKyAgLyogRXhwZWN0ZWQgcmVzdWx0IGZyb20gJ3BhcnNlX2Nv bm5lY3Rpb25fc3BlYycuICAqLwotKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBleHBlY3RlZF9y ZXN1bHQ7Ci0rCi0rICAvKiBUcnVlIGlmIHRoaXMgdGVzdCBzaG91bGQgZmFpbCwgZmFsc2Ugb3Ro ZXJ3aXNlLiAgSWYgdHJ1ZSwgb25seQotKyAgICAgdGhlIENPTk5TUEVDIGZpZWxkIHNob3VsZCBi ZSBjb25zaWRlcmVkIGFzIHZhbGlkLiAgKi8KLSsgIGJvb2wgc2hvdWxkX2ZhaWw7Ci0rCi0rICAv KiBUaGUgZXhwZWN0ZWQgQUlfRkFNSUxZIHRvIGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJp bmZvJwotKyAgICAgSElOVC4gICovCi0rICBpbnQgZXhwX2FpX2ZhbWlseTsKLSsKLSsgIC8qIFRo ZSBleHBlY3RlZCBBSV9TT0NLVFlQRSB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5m bycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50IGV4cF9haV9zb2NrdHlwZTsKLSsKLSsgIC8qIFRo ZSBleHBlY3RlZCBBSV9QUk9UT0NPTCB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5m bycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50IGV4cF9haV9wcm90b2NvbDsKLSt9OwotKwotKy8q IFNvbWUgZGVmaW5lcyB0byBoZWxwIHVzIGZpbGwgYSAnc3RydWN0IHBhcnNlX2Nvbm5fdGVzdCcu ICAqLwotKwotKy8qIEluaXRpYWxpemUgYSBmdWxsIGVudHJ5LiAgKi8KLSsjZGVmaW5lIElOSVRf RU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlM WSwgXAotKwkJICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpCQkJXAotKyAgeyBB RERSLCB7IEVYUF9IT1NULCBFWFBfUE9SVCB9LCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlMWSwg XAotKyAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCB9Ci0rCi0rLyogSW5pdGlh bGl6ZSBhbiB1bnByZWZpeGVkIGVudHJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBleHBlY3QK LSsgICBhbnl0aGluZyBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycgSElOVC4gICovCi0rI2RlZmlu ZSBJTklUX1VOUFJFRklYRURfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCi0rICBJ TklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCAwLCAwLCAwKQotKwot Ky8qIEluaXRpYWxpemVkIGFuIHVucHJlZml4ZWQgSVB2NiBlbnRyeS4gIEluIHRoaXMgY2FzZSwg d2UgZG9uJ3QKLSsgICBleHBlY3QgYW55dGhpbmcgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nIEhJ TlQuICAqLwotKyNkZWZpbmUgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkoQUREUiwgRVhQX0hP U1QsIEVYUF9QT1JUKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQs IGZhbHNlLCBBRl9JTkVUNiwgMCwgMCkKLSsKLSsvKiBJbml0aWFsaXplIGEgcHJlZml4ZWQgZW50 cnkuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQ X1BPUlQsIEVYUF9BSV9GQU1JTFksIFwKLSsJCQkgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlf UFJPVE9DT0wpIFwKLSsgIElOSVRfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgZmFs c2UsIEVYUF9BSV9GQU1JTFksIFwKLSsJICAgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJP VE9DT0wpCi0rCi0rLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ0Y3A0OiIu ICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUChBRERSLCBFWFBfSE9TVCwgRVhQ X1BPUlQpIFwKLSsgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9S VCwgQUZfSU5FVCwgU09DS19TVFJFQU0sIFwKLSsJCSAgICAgICBJUFBST1RPX1RDUCkKLSsKLSsv KiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInRjcDY6Ii4gICovCi0rI2RlZmlu ZSBJTklUX1BSRUZJWEVEX0lQVjZfVENQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAotKyAg SU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVUNiwg U09DS19TVFJFQU0sIFwKLSsJCSAgICAgICBJUFBST1RPX1RDUCkKLSsKLSsvKiBJbml0aWFsaXpl IGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInVkcDQ6Ii4gICovCi0rI2RlZmluZSBJTklUX1BSRUZJ WEVEX0lQVjRfVURQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAotKyAgSU5JVF9QUkVGSVhF RF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVULCBTT0NLX0RHUkFNLCBc Ci0rCQkgICAgICAgSVBQUk9UT19VRFApCi0rCi0rLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVm aXhlZCB3aXRoICJ1ZHA2OiIuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUChB RERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKLSsgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIs IEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVDYsIFNPQ0tfREdSQU0sIFwKLSsJCSAgICAgICBJ UFBST1RPX1VEUCkKLSsKLSsvKiBJbml0aWFsaXplIGEgYm9ndXMgZW50cnksIGkuZS4sIGEgY29u bmVjdGlvbiBzcGVjIHRoYXQgc2hvdWxkCi0rICAgZmFpbC4gICovCi0rI2RlZmluZSBJTklUX0JP R1VTX0VOVFJZKEFERFIpIFwKLSsgIElOSVRfRU5UUlkgKEFERFIsICIiLCAiIiwgdHJ1ZSwgMCwg MCwgMCkKLSsKLSsvKiBUaGUgdmFyaWFibGUgd2hpY2ggaG9sZHMgYWxsIG9mIG91ciB0ZXN0cy4g ICovCi0rCi0rc3RhdGljIGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCBjb25uX3Rlc3RbXSA9Ci0rICB7 Ci0rICAgIC8qIFVucHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KLSsKLSsgICAgLyogSVB2NCwgaG9z dCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3 LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsgICAgLyogSVB2NCwgb25seSBo b3N0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xIiwgIjEyNy4w LjAuMSIsICIiKSwKLSsgICAgLyogSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9V TlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCi0rCi0rICAg IC8qIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgbm8gYnJhY2tldHMuICAqLwotKyAgICBJ TklUX1VOUFJFRklYRURfRU5UUlkgKCI6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAv KiBJUHY2LCBtaXNzaW5nIHBvcnQsIG5vIGJyYWNrZXRzLiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJ WEVEX0VOVFJZICgiOjoxOiIsICI6OjEiLCAiIiksCi0rICAgIC8qIElQdjYsIGhvc3QgYW5kIHBv cnQgcHJlc2VudCwgd2l0aCBicmFja2V0cy4gICovCi0rICAgIElOSVRfVU5QUkVGSVhFRF9JUFY2 X0VOVFJZICgiWzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAvKiBJUHY2LCBvbmx5 IGhvc3QsIHdpdGggYnJhY2tldHMuICAqLwotKyAgICBJTklUX1VOUFJFRklYRURfSVBWNl9FTlRS WSAoIls6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAgLyogSVB2NiwgbWlzc2luZyBwb3J0LCB3aXRo IGJyYWNrZXRzLiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkgKCJbOjoxXToi LCAiOjoxIiwgIiIpLAotKwotKyAgICAvKiBVbnNwZWNpZmllZCwgb25seSBwb3J0LiAgKi8KLSsg ICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjEyMzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwK LSsKLSsgICAgLyogUHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KLSsKLSsgICAgLyogUHJlZml4ZWQg InRjcDQ6IiBJUHY0LCBob3N0IGFuZCBwb3J0IHByZXNlbnRzLiAgKi8KLSsgICAgSU5JVF9QUkVG SVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQi KSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBvbmx5IHBvcnQuICAqLwotKyAgICBJ TklUX1BSRUZJWEVEX0lQVjRfVENQICgidGNwNDo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIp LAotKyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQsIG9ubHkgaG9zdC4gICovCi0rICAgIElO SVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiks Ci0rICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIgSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAg SU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAi IiksCi0rCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVz ZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xOjEy MzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0 LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDo6MTIz NCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQdjQs IG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0OjEyNy4w LjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwg bWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3 LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCi0rCi0rCi0rICAgIC8qIFByZWZpeGVkICJ0Y3A2 OiIgSVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9J UFY2X1RDUCAoInRjcDY6OjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4 ZWQgInRjcDY6IiBJUHY2LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZf VENQICgidGNwNjo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhl ZCAidGNwNjoiIElQdjYsIG9ubHkgaG9zdC4gICovCi0rICAgIC8vSU5JVF9QUkVGSVhFRF9JUFY2 X1RDUCAoInRjcDY6OjoxIiwgIjo6MSIsICIiKSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJ UHY2LCBtaXNzaW5nIHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNw Njo6OjE6IiwgIjo6MSIsICIiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBo b3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgi dWRwNjo6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidWRwNjoi IElQdjYsIG9ubHkgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2 OjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIg SVB2Niwgb25seSBob3N0LiAgKi8KLSsgICAgLy9JTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRw Njo6OjEiLCAiOjoxIiwgIiIpLAotKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG1pc3Np bmcgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MToiLCAi OjoxIiwgIiIpLAotKwotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0 cywgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RD UCAoInRjcDY6Wzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAi dGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgb25seSBob3N0LiAgKi8KLSsgICAgSU5JVF9QUkVG SVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV0iLCAiOjoxIiwgIiIpLAotKyAgICAvKiBQcmVmaXhl ZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5J VF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06IiwgIjo6MSIsICIiKSwKLSsKLSsgICAg LyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIGhvc3QgYW5kIHBvcnQgcHJl c2VudC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOjEyMzQi LCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJh Y2tldHMsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2 Ols6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGgg YnJhY2tldHMsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAg KCJ1ZHA2Ols6OjFdOiIsICI6OjEiLCAiIiksCi0rCi0rCi0rICAgIC8qIEJvZ3VzIGFkZHJlc3Nl cy4gICovCi0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ols6OjFdMTIzOjQ0IiksCi0rICAg IElOSVRfQk9HVVNfRU5UUlkgKCJbOjoxIiksCi0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2 Ojo6MV06IiksCi0rICB9OwotKwotKy8qIFRlc3QgYSBjb25uZWN0aW9uIHNwZWMgQy4gICovCi0r Ci0rc3RhdGljIHZvaWQKLSt0ZXN0X2Nvbm4gKGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCAmYykKLSt7 Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0 OwotKwotKyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mIChoaW50KSk7Ci0rCi0rICBUUlkKLSsg ICAgewotKyAgICAgIHJldCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAoYy5jb25uc3BlYywgJmhp bnQpOwotKyAgICB9Ci0rICBDQVRDSCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9SKQotKyAgICB7Ci0r ICAgICAgLyogSWYgd2UgY2F1Z2h0IGFuIGVycm9yLCB3ZSBzaG91bGQgY2hlY2sgaWYgdGhpcyBj b25uZWN0aW9uCi0rCSBzcGVjIHdhcyBzdXBwb3NlZCB0byBmYWlsLiAgKi8KLSsgICAgICBTRUxG X0NIRUNLIChjLnNob3VsZF9mYWlsKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIEVORF9D QVRDSAotKwotKyAgU0VMRl9DSEVDSyAoIWMuc2hvdWxkX2ZhaWwpOwotKyAgU0VMRl9DSEVDSyAo cmV0Lmhvc3Rfc3RyID09IGMuZXhwZWN0ZWRfcmVzdWx0Lmhvc3Rfc3RyKTsKLSsgIFNFTEZfQ0hF Q0sgKHJldC5wb3J0X3N0ciA9PSBjLmV4cGVjdGVkX3Jlc3VsdC5wb3J0X3N0cik7Ci0rICBTRUxG X0NIRUNLIChoaW50LmFpX2ZhbWlseSA9PSBjLmV4cF9haV9mYW1pbHkpOwotKyAgU0VMRl9DSEVD SyAoaGludC5haV9zb2NrdHlwZSA9PSBjLmV4cF9haV9zb2NrdHlwZSk7Ci0rICBTRUxGX0NIRUNL IChoaW50LmFpX3Byb3RvY29sID09IGMuZXhwX2FpX3Byb3RvY29sKTsKLSt9Ci0rCi0rLyogUnVu IHRoZSB0ZXN0cyBhc3NvY2lhdGVkIHdpdGggcGFyc2luZyBjb25uZWN0aW9uIHNwZWNzLiAgKi8K LSsKLStzdGF0aWMgdm9pZAotK3J1bl90ZXN0cyAoKQotK3sKLSsgIGZvciAoY29uc3QgcGFyc2Vf Y29ubl90ZXN0ICZjIDogY29ubl90ZXN0KQotKyAgICB0ZXN0X2Nvbm4gKGMpOwotK30KLSt9IC8q IG5hbWVzcGFjZSBwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHMgKi8KLSt9IC8qIG5hbWVzcGFj ZSBzZWxmdGVzdHMgKi8KLSsKLSt2b2lkCi0rX2luaXRpYWxpemVfcGFyc2VfY29ubmVjdGlvbl9z cGVjX3NlbGZ0ZXN0cyAoKQotK3sKLSsgIHNlbGZ0ZXN0czo6cmVnaXN0ZXJfdGVzdCAoInBhcnNl X2Nvbm5lY3Rpb25fc3BlYyIsCi0rCQkJICAgIHNlbGZ0ZXN0czo6cGFyc2VfY29ubmVjdGlvbl9z cGVjX3Rlc3RzOjpydW5fdGVzdHMpOwotK30KCmRpZmYgLS1naXQgYS9nZGItcmhiejg4MTg0OS1p cHY2LTJvZjIucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjIucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM5Yzk2NgotLS0gL2Rldi9udWxsCisrKyBiL2dk Yi1yaGJ6ODgxODQ5LWlwdjYtMm9mMi5wYXRjaApAQCAtMCwwICsxLDYzIEBACitGcm9tIEZFRE9S QV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2VyZ2lvIER1cmlnYW4g SnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMyBKdWwgMjAxOCAxNjoy MDozNCAtMDQwMAorU3ViamVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YyLnBhdGNoCisKKzs7 IEltcGxlbWVudCBJUHY2IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwg U2VyZ2lvIER1cmlnYW4gSnVuaW9yKS4KKworRXhwZWN0IGZvciBhbm90aGVyIHZhcmlhbnQgb2Yg ZXJyb3IgbWVzc2FnZSB3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBob3N0bmFtZQorCitJ J3ZlIG5vdGljZWQgdGhhdCBvbiBhIGZldyBob3N0cywgd2hlbiBnaXZlbiBhbiBpbnZhbGlkIGhv c3RuYW1lLAorZ2Ric2VydmVyIGZhaWxzIHdpdGg6CisKKyAgc3Bhd24gLy4uLy4uL2dkYi9nZGJz ZXJ2ZXIvZ2Ric2VydmVyIC0tb25jZSB0Y3A4OjEyMzoyMzUzIC9nZGIvYnVpbGQvZmVkb3JhLXMz OTB4L2J1aWxkL2dkYi90ZXN0c3VpdGUvb3V0cHV0cy9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0 L3NlcnZlci1jb25uZWN0CisgIHRjcDg6MTIzOjIzNTM6IGNhbm5vdCByZXNvbHZlIG5hbWU6IE5v IGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGhvc3RuYW1lCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisgIEV4 aXRpbmcKKworVW5mb3J0dW5hdGVseSwgdGhpcyBjYXVzZXMgYSBmYWlsIG9uIHRoZSBuZXcKK2dk Yi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwIHRlc3QgKGludHJvZHVjZWQgYnkgdGhlIElQdjYg cGF0Y2gpOgorCisgIEZBSUw6IGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiB0Y3A4OiBz dGFydCBnZGJzZXJ2ZXI6IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlkIG5vdAorCitUaGlz IGhhcHBlbnMgYmVjYXVzZSB3ZSdyZSBleHBlY3RpbmcgZm9yIGFub3RoZXIgdmFyaWFudCBvZiB0 aGlzIGVycm9yCittZXNzYWdlOgorCisgIGNhbm5vdCByZXNvbHZlIG5hbWU6IE5hbWUgb3Igc2Vy dmljZSBub3Qga25vd24KKworVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGV4dGVuZHMgdGhlIGhlbHBl ciBmdW5jdGlvbiAnZ2Ric2VydmVyX3N0YXJ0JyB0bworYWxzbyByZWNvZ25pemUgdGhlICJObyBh ZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZSIgbWVzc2FnZS4KK1RoaXMgImZpeGVzIiB0 aGUgdGVzdGNhc2Ugb24gdGhlIGhvc3RzIHRoYXQgdXNlIHRoaXMgdmFyaWFudC4KKworZ2RiL3Rl c3RzdWl0ZS9DaGFuZ2VMb2c6CisyMDE4LTA3LTEzICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxz ZXJnaW9kakByZWRoYXQuY29tPgorCisJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJz ZXJ2ZXJfc3RhcnQpOiBFeHBlY3QgZm9yIHRoZQorCW1lc3NhZ2UgIk5vIGFkZHJlc3MgYXNzb2Np YXRlZCB3aXRoIGhvc3RuYW1lIiB3aGVuIGdkYnNlcnZlcgorCWNhbm5vdCByZXNvbHZlIHRoZSBo b3N0bmFtZS4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nIGIvZ2RiL3Rl c3RzdWl0ZS9DaGFuZ2VMb2cKKy0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisrKysgYi9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworQEAgLTEsMyArMSw5IEBACisrMjAxOC0wNy0xMyAgU2Vy Z2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysKKysJKiBsaWIvZ2Ri c2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfc3RhcnQpOiBFeHBlY3QgZm9yIHRoZQorKwlt ZXNzYWdlICJObyBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZSIgd2hlbiBnZGJzZXJ2 ZXIKKysJY2Fubm90IHJlc29sdmUgdGhlIGhvc3RuYW1lLgorKworIDIwMTgtMDctMTEgIFNlcmdp byBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisgCSAgICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisgCSAgICBQYXVsIEZlcnRzZXIgIDxm ZXJjZXJwYXZAZ21haWwuY29tPgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNl cnZlci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4 cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCisrKysgYi9n ZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKK0BAIC0zMjYsNyArMzI2LDcg QEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKKyAJCSAgICBj b250aW51ZQorIAkJfQorIAkgICAgfQorLQkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFt ZTogTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93blxyXG4iIHsKKysJICAgIC1yZSAiLio6IGNhbm5v dCByZXNvbHZlIG5hbWU6IFwoTm8gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggaG9zdG5hbWV8TmFt ZSBvciBzZXJ2aWNlIG5vdCBrbm93blwpXHJcbiIgeworIAkJZXJyb3IgImdkYnNlcnZlciBjYW5u b3QgcmVzb2x2ZSBuYW1lLiIKKyAJICAgIH0KKyAJICAgIHRpbWVvdXQgewoKZGlmZiAtLWdpdCBh L2dkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMy5wYXRjaCBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMm9m My5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkwYmUwZi4uMDAwMDAwMAot LS0gYS9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1 NCArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgotRGF0ZTog TW9uLCAzMCBKdWwgMjAxOCAxNToyMzoyNyAtMDQwMAotU3ViamVjdDogZ2RiLXJoYno4ODE4NDkt aXB2Ni0yb2YzLnBhdGNoCi0KLU1hdGNoIGFueSBraW5kIG9mIGVycm9yIGFmdGVyICJjYW5ub3Qg cmVzb2x2ZSBuYW1lIiBvbiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwOmdkYnNlcnZlcl9zdGFy dAotCi1PbiBjb21taXQ6Ci0KLWNvbW1pdCA3ZjFmN2UyMzkzOWFkYzdkNzEwMzZhMTdmYzYwODFl M2FmN2NhNTg1Ci1BdXRob3I6IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0 LmNvbT4KLURhdGU6ICAgRnJpIEp1bCAxMyAxNjoyMDozNCAyMDE4IC0wNDAwCi0KLSAgICBFeHBl Y3QgZm9yIGFub3RoZXIgdmFyaWFudCBvZiBlcnJvciBtZXNzYWdlIHdoZW4gZ2Ric2VydmVyIGNh bm5vdCByZXNvbHZlIGhvc3RuYW1lCi0KLUkgZXh0ZW5kZWQgdGhlIHJlZ3VsYXIgZXhwcmVzc2lv biBiZWluZyB1c2VkIHRvIGlkZW50aWZ5IHdoZXRoZXIKLWdkYnNlcnZlciBjb3VsZCBub3QgcmVz b2x2ZSBhIChob3N0KW5hbWUuICBUaGlzIHdhcyBuZWVkZWQgYmVjYXVzZSB0aGUKLWVycm9yIG1l c3NhZ2UgYmVpbmcgcHJpbnRlZCBoYWQgYSBkaWZmZXJlbnQgdmFyaWF0aW9uIGFjcm9zcyBzb21l Ci1zeXN0ZW1zLiAgSG93ZXZlciwgYXMgaXQgdHVybnMgb3V0LCBJJ3ZlIGp1c3Qgbm90aWNlZCB0 aGF0IHRoZSBtZXNzYWdlCi1oYXMgeWV0IGFub3RoZXIgdmFyaWF0aW9uOgotCi0gIHRhcmdldCBy ZW1vdGUgdGNwODoxMjM6MjM1MwotICB0Y3A4OjEyMzoyMzUzOiBjYW5ub3QgcmVzb2x2ZSBuYW1l OiBTeXN0ZW0gZXJyb3IKLSAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eCi0gIHRjcDg6MTIzOjIzNTM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkuCi0g IChnZGIpIEZBSUw6IGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiB0Y3A4OiBjb25uZWN0 IHRvIGdkYnNlcnZlciB1c2luZyB0Y3A4OjEyMwotCi13aGljaCBpcyBjYXVzaW5nIEZBSUxzIG9u IHNvbWUgc3lzdGVtcyAobmFtZWx5LCBGZWRvcmEtaTY4NiBvbgotQnVpbGRCb3QpLgotCi1TbyBp bnN0ZWFkIG9mIHRyeWluZyB0byBwcmVkaWN0IGV2ZXJ5dGhpbmcgdGhhdCBjYW4gYmUgcHJpbnRl ZCwgSQotZGVjaWRlZCB0byBqdXN0IG1hdGNoIGFueXRoaW5nIGFmdGVyIHRoZSAiY2Fubm90IHJl c29sdmUgbmFtZTogIiBwYXJ0LgotVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoYXQuCi0KLVJlZ3Jl c3Npb24gdGVzdGVkIG9uIHRoZSBCdWlsZEJvdC4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 Ci0yMDE4LTA3LTMwICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29t PgotCi0JKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfc3RhcnQpOiBNYXRj aCBhbnkga2luZCBvZgotCWVycm9yIGFmdGVyICJjYW5ub3QgcmVzb2x2ZSBuYW1lIiBzdHJpbmcu Ci0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAg Yi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLS0tLSBhL2dkYi90ZXN0 c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIv Z2Ric2VydmVyLXN1cHBvcnQuZXhwCi1AQCAtMzI2LDcgKzMyNiw3IEBAIHByb2MgZ2Ric2VydmVy X3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMgfSB7Ci0gCQkgICAgY29udGludWUKLSAJCX0KLSAJ ICAgIH0KLS0JICAgIC1yZSAiLio6IGNhbm5vdCByZXNvbHZlIG5hbWU6IE5hbWUgb3Igc2Vydmlj ZSBub3Qga25vd25cclxuIiB7Ci0rCSAgICAtcmUgIi4qOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAu KlxyXG4iIHsKLSAJCWVycm9yICJnZGJzZXJ2ZXIgY2Fubm90IHJlc29sdmUgbmFtZS4iCi0gCSAg ICB9Ci0gCSAgICB0aW1lb3V0IHsKCmRpZmYgLS1naXQgYS9nZGItcmhiejg4MTg0OS1pcHY2LTNv ZjMucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2LTNvZjMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDc4OWNiMTguLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYno4ODE4NDktaXB2 Ni0zb2YzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotRnJvbSBGRURPUkFf UEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNlcmdpbyBEdXJpZ2FuIEp1 bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLURhdGU6IEZyaSwgMyBBdWcgMjAxOCAxODowNDoz OCAtMDQwMAotU3ViamVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCi0KLUZpeCB0 aGlua28gd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIGRpc2FibGUgVENQJ3MgTmFnbGUgYWxnb3Jp dGhtCi0KLVRoaXMgcGF0Y2ggZml4ZXMgYSB0aGlua28gdGhhdCBoYXBwZW5lZCB3aGVuIEkgd2Fz IGltcGxlbWVudGluZyB0aGUKLUlQdjYgc3VwcG9ydCBvbiBHREIvZ2Ric2VydmVyLiAgT24gY2Vy dGFpbiBzaXR1YXRpb25zLCBpdCBpcyBuZWNlc3NhcnkKLXRvIGRpc2FibGUgVENQJ3MgTmFnbGUg YWxnb3JpdGhtIChOT0RFTEFZKS4gIEZvciBvYnZpb3VzIHJlYXNvbnMsIHRoaXMKLW9ubHkgYXBw bGllcyB3aGVuIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBUQ1AgY29ubmVjdGlvbi4KLQotV2hpbGUg aW1wbGVtZW50aW5nIHRoZSBJUHY2IHBhdGNoLCBJIG5vdGljZWQgdGhhdCB0aGUgbmV0X29wZW4K LWZ1bmN0aW9uIChvbiBnZGIvc2VyLXRjcC5jKSBrZXB0IGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRo ZXIgdGhlCi1jb25uZWN0aW9uIHR5cGUgd2FzIFVEUCBvciBUQ1AuICBJIGVsaW1pbmF0ZWQgdGhh dCBmbGFnLCBhbmQgc3RhcnRlZAotdXNpbmcgdGhlICdzdHJ1Y3QgYWRkcmluZm8gKicgcmVsYXRl ZCB0byB0aGUgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uCi1kaXJlY3RseS4gIEhvd2V2ZXIsIEkgbWFk ZSBhIG1pc3Rha2U6Ci0KLSAgaWYgKHN1Y2Nlc3NfYWluZm8tPmFpX3NvY2t0eXBlID09IElQUFJP VE9fVENQKQotICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl4KLSAgICB7Ci0gICAgICAv KiBEaXNhYmxlIE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRlZCBpbiBzb21lIGNhc2VzLiAgKi8KLSAg ICAgIGludCB0bXAgPSAxOwotCi0gICAgICBzZXRzb2Nrb3B0IChzY2ItPmZkLCBJUFBST1RPX1RD UCwgVENQX05PREVMQVksCi0JCSAgKGNoYXIgKikgJnRtcCwgc2l6ZW9mICh0bXApKTsKLSAgICB9 Ci0KLVRoZSAnYWlfc29ja3R5cGUnIGZpZWxkIHNwZWNpZmllcyB0aGUgc29ja2V0IHR5cGUgKFNP Q0tfU1RSRUFNIG9yCi1TT0NLX0RHUkFNKSwgYW5kIG5vdCB0aGUgcHJvdG9jb2wuICBUaGlzIHRl c3Qgd2FzIGFsd2F5cyBmYWlsaW5nLCBhbmQKLXRoZSBOYWdsZSBhbGdvcml0aG0gd2FzIG5ldmVy IGJlaW5nIGRpc2FibGVkLgotCi1UaGUgb2J2aW91cyBmaXggaXMgdG8gdXNlIHRoZSAnYWlfcHJv dG9jb2wnIGZpZWxkLiAgVGhpcyBpcyB3aGF0IHRoaXMKLXBhdGNoIGRvZXMuCi0KLUh1Z2UgInRo YW5rIHlvdSIgdG8gSm9lbCBCcm9iZWNrZXIgd2hvIHJlcG9ydGVkIHRoZSByZWdyZXNzaW9uICho ZSB3YXMKLWV4cGVyaWVuY2luZyBhbiB1bnVzdWFsIGRlbGF5IHdoaWxlIGRlYnVnZ2luZyBhIGJh cmUtbWV0YWwgcHJvZ3JhbQotcnVubmluZyB1bmRlciBRRU1VKSBhbmQgaGVscGVkIG1lIHNldCB1 cCBhIHByb3BlciByZXByb2R1Y2VyIGZvciB0aGUKLWJ1Zy4KLQotZ2RiL0NoYW5nZUxvZzoKLTIw MTgtMDgtMDMgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0K LQkqIHNlci10Y3AuYyAobmV0X29wZW4pOiBGaXggdGhpbmtvIHdoZW4gZGVjaWRpbmcgd2hldGhl ciB0bwotCWRpc2FibGUgVENQJ3MgTmFnbGUgYWxnb3JpdGhtICh1c2UgImFpX3Byb3RvY29sIiBp bnN0ZWFkIG9mCi0JImFpX3NvY2t0eXBlIikuCi0KLWRpZmYgLS1naXQgYS9nZGIvQ2hhbmdlTG9n IGIvZ2RiL0NoYW5nZUxvZwotLS0tIGEvZ2RiL0NoYW5nZUxvZwotKysrIGIvZ2RiL0NoYW5nZUxv ZwotQEAgLTEsMyArMSw5IEBACi0rMjAxOC0wOC0wMyAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8 c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLSsKLSsJKiBzZXItdGNwLmMgKG5ldF9vcGVuKTogRml4IHRo aW5rbyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8KLSsJZGlzYWJsZSBUQ1AncyBOYWdsZSBhbGdv cml0aG0gKHVzZSAiYWlfcHJvdG9jb2wiIGluc3RlYWQgb2YKLSsJImFpX3NvY2t0eXBlIikuCi0r Ci0gMjAxOC0wNy0yNSAgQWxhbiBIYXl3YXJkICA8YWxhbi5oYXl3YXJkQGFybS5jb20+Ci0gCi0g CSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5jICh0ZGVzY19yZWdpc3Rlcl9iaXRzaXplKTogUmVuYW1l LgotZGlmZiAtLWdpdCBhL2dkYi9zZXItdGNwLmMgYi9nZGIvc2VyLXRjcC5jCi0tLS0gYS9nZGIv c2VyLXRjcC5jCi0rKysgYi9nZGIvc2VyLXRjcC5jCi1AQCAtMzY3LDcgKzM2Nyw3IEBAIG5ldF9v cGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0gCi0gICBpb2N0bCAo c2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsKLSAKLS0gIGlmIChzdWNjZXNzX2FpbmZvLT5haV9z b2NrdHlwZSA9PSBJUFBST1RPX1RDUCkKLSsgIGlmIChzdWNjZXNzX2FpbmZvLT5haV9wcm90b2Nv bCA9PSBJUFBST1RPX1RDUCkKLSAgICAgewotICAgICAgIC8qIERpc2FibGUgTmFnbGUgYWxnb3Jp dGhtLiAgTmVlZGVkIGluIHNvbWUgY2FzZXMuICAqLwotICAgICAgIGludCB0bXAgPSAxOwoKZGlm ZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggNmYzODcyYS4uN2RiNmY3MiAxMDA2 NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTI2LDcgKzI2LDcgQEAgVmVyc2lv bjogOC4xLjkwLiV7c25hcHNyY30KIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBs ZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBu b3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0 aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA0MCV7P2Rpc3R9CitSZWxlYXNlOiAzOSV7 P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQg R1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFu ZCBMR1BMdjMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwKIEdyb3VwOiBEZXZl bG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTE2OSwxMSArMTY5LDE0IEBAIFNvdXJjZTU6ICV7bGlic3Rk Y3h4cHl0aG9ufS50YXIueHoKIFNvdXJjZTY6IGdkYnR1aQogCiAjIGxpYmlwdDogSW50ZWwgUHJv Y2Vzc29yIFRyYWNlIERlY29kZXIgTGlicmFyeQotJWdsb2JhbCBsaWJpcHRfdmVyc2lvbiAyLjAK KyVnbG9iYWwgbGliaXB0X3ZlcnNpb24gMS42LjEKICM9ZmVkb3JhCiBTb3VyY2U3OiB2JXtsaWJp cHRfdmVyc2lvbn0udGFyLmd6CiAjPWZlZG9yYQogUGF0Y2gxMTQyOiB2MS41LWxpYmlwdC1zdGF0 aWMucGF0Y2gKKyMgW3JoZWwgZHRzIGxpYmlwdF0gRml4IFstV2Vycm9yPWltcGxpY2l0LWZhbGx0 aHJvdWdoPV0gd2l0aCBnY2MtNy4xLjEuCisjPXB1c2gramFuCitQYXRjaDExNzE6IHYxLjYuMS1p bXBsaWNpdC1mYWxsdGhyb3VnaC5wYXRjaAogCiAjIyBbdGVzdHN1aXRlXSBGaXggZmFsc2Ugc2Vs ZnRlc3QuZXhwIEZBSUwgZnJvbSBzeXN0ZW0gcmVhZGxpbmUtNi4zKyAoUGF0cmljayBQYWxrYSku CiAjIz1mZWRvcmF0ZXN0CkBAIC00MTIsNiArNDE1LDcgQEAgdGFyIHh6ZiAle1NPVVJDRTd9CiAo CiAgY2QgcHJvY2Vzc29yLXRyYWNlLSV7bGliaXB0X3ZlcnNpb259CiAlcGF0Y2gxMTQyIC1wMQor JXBhdGNoMTE3MSAtcDEKICkKICVlbmRpZgogCkBAIC0xMDIyLDExICsxMDI2LDYgQEAgZmkKICVl bmRpZgogCiAlY2hhbmdlbG9nCi0qIFdlZCBBdWcgIDggMjAxOCBTZXJnaW8gRHVyaWdhbiBKdW5p b3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+IC0gOC4xLjkwLjIwMTgwNzI3LTQwLmZjMjkKLS0gUmVi dWlsZCBkdWUgdG8gbmV3IGxpYmlwdCByZWxlYXNlLgotLSBBZGp1c3QgYnVuZGxlZCBsaWJpcHQ7 IHJlbW92ZSB1bm5lY2Vzc2FyeSBwYXRjaC4KLS0gU3luYyBJUHY2IHBhdGNoIHdpdGggRi0yOCBH REIuCi0KICogV2VkIEF1ZyAgOCAyMDE4IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPiAtIDguMS45MC4yMDE4MDcyNy0zOS5mYzI5CiAtIFtkdHNdIEZpeCBidWlsZCBi eSByZW1vdmluZyBhIHBhdGNoIGZvciBhbHJlYWR5IHJlbW92ZWQgcGFob2xlLnB5IC4KIC0gW2R0 cyByaGVsNl0gRml4IGJ1aWxkIGJ5IHVwZGF0aW5nIGdkYi1nbmF0LWR3YXJmLWNyYXNoLTNvZjMu cGF0Y2ggLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDVkOGI4NTMuLjE5 M2M1N2QgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwzICsxLDMgQEAK IFNIQTUxMiAoZ2RiLWxpYnN0ZGMrKy12My1weXRob24tOC4xLjEtMjAxODA2MjYudGFyLnh6KSA9 IGE4YjFjNTRkZDM0OGNmZWIzN2RhNzNmOTY4NzQyODk2YmUzZGQxM2E0MjE1ZjhkODUxOTg3MGMy YWJlYTkxNWY1MTc2YzNmYTY5ODlkZGQxMGYyMDAyMGExNmYwZmFiMjBjYmFlNjhlZThkNThhODIy MzRkODc3ODAyMzUyMGY4CitTSEE1MTIgKHYxLjYuMS50YXIuZ3opID0gYzdjOWM4YmE3ODAyMWZm ZjNmZGUxMmEyMTZmNTcyOWM2MDMxMTE0ZTVhNzI3ZjQ5YjdmZjFhMzFjNTNiNWRkYmEyNGQxYjNh ZWUyNTJkODI3OGVjZDFmYWZlNzhhNDRlZDA1OWMxMmI5ZWIyOWVjYTMzMDkzZTA3MjA2NzM0NjgK IFNIQTUxMiAoZ2RiLTguMS45MC4yMDE4MDcyNy50YXIueHopID0gMGY4ZTljZmFlYWY5ZjIyMzYx YjNiOGQ1ZDQ5MGQwYThiZWEzZWVhYWEwYzY4MTNkNWRmMGE2ZDUyNjdmZjNmNTk3NzQ3Y2MwZTk3 ZDcwYzQxOTZkNzhlZTMyZTBlODJkNTg5MzI4M2Q3MWI0NDlkODk3MDM4OTNiZjFhZTAwMTQKLVNI QTUxMiAodjIuMC50YXIuZ3opID0gZWM2MzE1MWU4NDJjODFjYzczZWExMWJhNTYwYjYzZTAwNWNl ZmJlMTlkOThkZTI0YWU1YzhjYWE0ZGU3YzljMWQ3MWQxZWM1YjYyMTRhMzQ3NTkyZWFjNjc1Yjc1 YTNkMmIyNmQ0NjkxY2E4NmY5MTAyMGViZmVhOGU5MTI5MzkKCmRpZmYgLS1naXQgYS92MS41LWxp YmlwdC1zdGF0aWMucGF0Y2ggYi92MS41LWxpYmlwdC1zdGF0aWMucGF0Y2gKaW5kZXggNjU5OTQ0 NS4uNDc3YjZjNCAxMDA2NDQKLS0tIGEvdjEuNS1saWJpcHQtc3RhdGljLnBhdGNoCisrKyBiL3Yx LjUtbGliaXB0LXN0YXRpYy5wYXRjaApAQCAtMSw4ICsxLDYgQEAKLUluZGV4OiBwcm9jZXNzb3It dHJhY2UtMi4wL2xpYmlwdC9DTWFrZUxpc3RzLnR4dAotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHByb2Nlc3Nv ci10cmFjZS0yLjAub3JpZy9saWJpcHQvQ01ha2VMaXN0cy50eHQKLSsrKyBwcm9jZXNzb3ItdHJh Y2UtMi4wL2xpYmlwdC9DTWFrZUxpc3RzLnR4dAotQEAgLTg1LDcgKzg1LDcgQEAgZW5kaWYgKENN QUtFX0hPU1RfV0lOMzIpCistLS0gcHJvY2Vzc29yLXRyYWNlLTEuNS9saWJpcHQvQ01ha2VMaXN0 cy50eHQtb3JpZwkyMDE2LTA0LTA3IDA4OjUyOjE0LjAwMDAwMDAwMCArMDIwMAorKysrIHByb2Nl c3Nvci10cmFjZS0xLjUvbGliaXB0L0NNYWtlTGlzdHMudHh0CTIwMTYtMDgtMTcgMjM6MTI6MjMu MjQxMTA5MjQ0ICswMjAwCitAQCAtODEsNyArODEsNyBAQCBlbmRpZiAoQ01BS0VfSE9TVF9XSU4z MikKICAKICBzZXQoTElCSVBUX0ZJTEVTICR7TElCSVBUX0ZJTEVTfSAke0xJQklQVF9TRUNUSU9O X0ZJTEVTfSkKICAKQEAgLTExLDEwICs5LDggQEAgSW5kZXg6IHByb2Nlc3Nvci10cmFjZS0yLjAv bGliaXB0L0NNYWtlTGlzdHMudHh0CiAgICAke0xJQklQVF9GSUxFU30KICApCiAgCi1JbmRleDog cHJvY2Vzc29yLXRyYWNlLTIuMC9saWJpcHQvc3JjL3Bvc2l4L2luaXQuYwotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIHByb2Nlc3Nvci10cmFjZS0yLjAub3JpZy9saWJpcHQvc3JjL3Bvc2l4L2luaXQuYwotKysr IHByb2Nlc3Nvci10cmFjZS0yLjAvbGliaXB0L3NyYy9wb3NpeC9pbml0LmMKKy0tLSBwcm9jZXNz b3ItdHJhY2UtMS41L2xpYmlwdC9zcmMvcG9zaXgvaW5pdC5jLW9yaWcJMjAxNi0wNC0wNyAwODo1 MjoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBwcm9jZXNzb3ItdHJhY2UtMS41L2xpYmlwdC9zcmMv cG9zaXgvaW5pdC5jCTIwMTYtMDgtMjMgMDk6MDQ6MTEuNTQwMTc2NjY4ICswMjAwCiBAQCAtMjks NyArMjksNyBAQAogICNpbmNsdWRlICJwdF9pbGQuaCIKICAKCmRpZmYgLS1naXQgYS92MS42LjEt aW1wbGljaXQtZmFsbHRocm91Z2gucGF0Y2ggYi92MS42LjEtaW1wbGljaXQtZmFsbHRocm91Z2gu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI4NDRkMwotLS0gL2Rl di9udWxsCisrKyBiL3YxLjYuMS1pbXBsaWNpdC1mYWxsdGhyb3VnaC5wYXRjaApAQCAtMCwwICsx LDIzIEBACitnY2MtNy4xLjEtMS5mYzI3Lng4Nl82NAorL2hvbWUvamtyYXRvY2gvcmVkaGF0L2Zl ZG9yYS9saWJpcHQvbWFzdGVyL3Byb2Nlc3Nvci10cmFjZS0xLjYuMS9saWJpcHQvc3JjL3B0X2Js b2NrX2RlY29kZXIuYzogSW4gZnVuY3Rpb24g4oCYcHRfYmxrX3Byb2NlZWRfbm9fZXZlbnRfY2Fj aGVk4oCZOgorL2hvbWUvamtyYXRvY2gvcmVkaGF0L2ZlZG9yYS9saWJpcHQvbWFzdGVyL3Byb2Nl c3Nvci10cmFjZS0xLjYuMS9saWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYzoyMjgyOjY6IGVy cm9yOiB0aGlzIHN0YXRlbWVudCBtYXkgZmFsbCB0aHJvdWdoIFstV2Vycm9yPWltcGxpY2l0LWZh bGx0aHJvdWdoPV0KKyAgIGlmIChiY2UuaXNpemUpIHsKKyAgICAgIF4KKy9ob21lL2prcmF0b2No L3JlZGhhdC9mZWRvcmEvbGliaXB0L21hc3Rlci9wcm9jZXNzb3ItdHJhY2UtMS42LjEvbGliaXB0 L3NyYy9wdF9ibG9ja19kZWNvZGVyLmM6MjMyODoyOiBub3RlOiBoZXJlCisgIGNhc2UgcHRicV9k ZWNvZGU6IHsKKyAgXn5+fgorCitkaWZmIC0tZ2l0IGEvbGliaXB0L3NyYy9wdF9ibG9ja19kZWNv ZGVyLmMgYi9saWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYworaW5kZXggMjE3ODNhNi4uOTFk NWJiMyAxMDA2NDQKKy0tLSBhL2xpYmlwdC9zcmMvcHRfYmxvY2tfZGVjb2Rlci5jCisrKysgYi9s aWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYworQEAgLTIwOTUsNiArMjA5NSw5IEBAIHN0YXRp YyBpbnQgcHRfYmxrX3Byb2NlZWRfbm9fZXZlbnRfY2FjaGVkKHN0cnVjdCBwdF9ibG9ja19kZWNv ZGVyICpkZWNvZGVyLAorIAkJfQorIAorIAkJLyogRmFsbCB0aHJvdWdoIHRvIHB0YnFfZGVjb2Rl LiAqLworKyNpZiBfX0dOVUNfXyA+PSA3CisrCQlfX2F0dHJpYnV0ZV9fICgoZmFsbHRocm91Z2gp KTsKKysjZW5kaWYKKyAKKyAJY2FzZSBwdGJxX2RlY29kZTogeworIAkJc3RydWN0IHB0X2luc25f ZXh0IGlleHQ7Cg==