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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Fixed Bug 696481 - no the variant maps without language codes Date: Sun, 31 May 2026 02:05:08 GMT Message-ID: <178019310839.1.11318755025840909461.rpms-ibus-48fb145b56e4@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 48fb145b56e44c3fa8d2dd84161d268892b823e0 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiA0OGZiMTQ1YjU2ZTQ0YzNmYThkMmRkODQxNjFkMjY4ODkyYjgyM2UwCiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDExLTA0LTE5VDEyOjE0OjIwKzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICs1MDcvLTMwMjUgaW4gMTEgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRw czovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy80OGZiMTQ1YjU2ZTQ0YzNmYThk MmRkODQxNjFkMjY4ODkyYjgyM2UwP2JyYW5jaD1hdXRvdG9vbAoKICAgICAgICAgICAgTG9nOgog ICAgICAgICAgICBGaXhlZCBCdWcgNjk2NDgxIC0gbm8gdGhlIHZhcmlhbnQgbWFwcyB3aXRob3V0 IGxhbmd1YWdlIGNvZGVzCgotIFVwZGF0ZWQgdG8gMS4zLjk5LjIwMTEwNDA4Ci0gQWRkZWQgaWJ1 cy14eC1zZXR1cC1mcmVxdWVudC1sYW5nLnBhdGNoCi0gVXBkYXRlZCBpYnVzLTU0MTQ5Mi14a2Iu cGF0Y2gKLSBBZGRlZCBkZXBlbmRlbmN5IG9mIGltc2V0dGluZ3MtZ25vbWUuCiAgRml4ZWQgQnVn IDY5NjUxMCAtIG5lZWQgYSBkZXBlbmRlbmN5IGluIGlidXMtZ3RrMyBmb3IgaW1zZXR0aW5ncy1n bm9tZQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBjMmE0 ZmUyLi5mYTVhODg2IDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAg LTgsOCArOCw3IEBAIGlidXMtMS4zLjYudGFyLmd6CiAvaWJ1cy0xLjMuOTkuMjAxMTAxMTcudGFy Lmd6CiAvaWJ1cy0xLjMuOTkuMjAxMTAxMjcudGFyLmd6CiAvaWJ1cy0xLjMuOTkuMjAxMTAyMDYu dGFyLmd6Ci0vaWJ1cy11aS1nanMtcGx1Z2lucy0yMDExMDIxNC50YXIuYnoyCiAvaWJ1cy0xLjMu OTkuMjAxMTAyMjgudGFyLmd6CisvaWJ1cy0xLjMuOTkuMjAxMTA0MDgudGFyLmd6CiAvZ25vbWUt c2hlbGwtaWJ1cy1wbHVnaW5zLTIwMTEwMzE3LnRhci5iejIKLS9pYnVzLWljb25zLTIwMTEwMzI1 LnRhci5iejIKLS9pYnVzLXBvLTIwMTEwNDA0LnRhci5iejIKKy9pYnVzX21hc3Rlcl9kYS5wbwoK ZGlmZiAtLWdpdCBhL2lidXMtNDM1ODgwLXN1cnJvdW5kaW5nLXRleHQucGF0Y2ggYi9pYnVzLTQz NTg4MC1zdXJyb3VuZGluZy10ZXh0LnBhdGNoCmluZGV4IGFjZDQwYjIuLjJiZGU1M2MgMTAwNjQ0 Ci0tLSBhL2lidXMtNDM1ODgwLXN1cnJvdW5kaW5nLXRleHQucGF0Y2gKKysrIGIvaWJ1cy00MzU4 ODAtc3Vycm91bmRpbmctdGV4dC5wYXRjaApAQCAtMSwzNjkgKzEsNjkgQEAKLUZyb20gMjc3ODhm YjNiZjYyNDExYzJiMTNkMjRiYWM0NWViMDYwNDgzMTYyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb20gYzcyZTgxNzcwOTlmYjkwNzllMmYyOTVjMGJiMjExOGI5OThjYjBlOCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IERhaWtpIFVlbm8gPHVlbm9AdW5peHVzZXIub3JnPgot RGF0ZTogVHVlLCA4IEZlYiAyMDExIDE4OjI3OjAwICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFN1 cHBvcnQgc3Vycm91bmRpbmctdGV4dCByZXRyaWV2YWwuCitEYXRlOiBXZWQsIDEzIEFwciAyMDEx IDE2OjI2OjU0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEJhY2twb3J0IGNhcHMgZmVhdHVyZSBm cm9tIHRoZSBGZWRvcmEgaW50ZXJuYWwgcGF0Y2guCiAKLVRoaXMgY2hhbmdlIGFkZHMgYSBuZXcg QVBJIGZ1bmN0aW9uIGlidXNfZW5naW5lX2dldF9zdXJyb3VuZGluZ190ZXh0KCkuCi1JbiB0aGUg aW1wbGVtZW50YXRpb24sIGVuZ2luZXMgZG8gbm90IHByb2FjdGl2ZWx5IHJlcXVlc3RzIHN1cnJv dW5kaW5nLXRleHQgdG8KLXRhcmdldCBhcHBsaWNhdGlvbnMgdmlhIHRoZSBHVEsrIGNsaWVudCAo SUJ1c0lNQ29udGV4dCkgZXZlcnkgdGltZSB0aGUKLWZ1bmN0aW9uIGlzIGNhbGxlZC4gIEluc3Rl YWQsIElCdXNJTUNvbnRleHQgcmV0cmlldmVzIHN1cnJvdW5kaW5nLXRleHQgd2hlbgotY2VydGFp biBldmVudHMgb2NjdXIgaW4gdGhlIGlucHV0IGNvbnRleHQgKElCdXNJbnB1dENvbnRleHQpIGFu ZCBtYWludGFpbnMKLWl0IHdpdGhpbiB0aGUgaW5wdXQgY29udGV4dC4KLQotVGhpcyBsb2dpYyBp cyBzaW1pbGFyIHRvIFF0J3MgUUlucHV0Q29udGV4dC4gIFRoZSBmb2xsb3dpbmcgZXZlbnRzIHRy aWdnZXIKLXN1cnJvdW5kaW5nLXRleHQgcmV0cmlldmFsOgotCi0tIGZvY3VzX2luCi0tIGNvbW1p dF90ZXh0Ci0tIHNob3dfcHJlZWRpdF90ZXh0Ci0tIChqdXN0IGJlZm9yZSkgcHJvY2Vzc19rZXlf ZXZlbnQKLQotQWxzbywKLS0gZGVzdHJveQotcmVzZXRzIHRoZSBjdXJyZW50IHN1cnJvdW5kaW5n LXRleHQuCiAtLS0KLSBidXMvZW5naW5lcHJveHkuYyAgICAgICAgICAgICAgIHwgICA0MyArKysr KysrKysrKysKLSBidXMvZW5naW5lcHJveHkuaCAgICAgICAgICAgICAgIHwgICAxMSArKysKLSBi dXMvaW5wdXRjb250ZXh0LmMgICAgICAgICAgICAgIHwgICAzNiArKysrKysrKysrCi0gY2xpZW50 L2d0azIvaWJ1c2ltY29udGV4dC5jICAgICB8ICAxMzggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tCi0gY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICB8ICAgMTQg KysrKwotIGlidXMvZW5naW5lLnB5ICAgICAgICAgICAgICAgICAgfCAgICA2ICsrCi0gaWJ1cy9p bnRlcmZhY2UvaWVuZ2luZS5weSAgICAgICB8ICAgIDMgKwotIGlidXMvaW50ZXJmYWNlL2lpbnB1 dGNvbnRleHQucHkgfCAgICA1ICsrCi0gc3JjL2lidXNlbmdpbmUuYyAgICAgICAgICAgICAgICB8 ICAxMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gc3JjL2lidXNl bmdpbmUuaCAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrLQotIHNyYy9pYnVzZW5naW5lZGVz Yy5jICAgICAgICAgICAgfCAgMTMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKLSBzcmMvaWJ1c2VuZ2luZWRlc2MuaCAgICAgICAgICAgIHwgICAxMSArKysKLSBzcmMvaWJ1 c2lucHV0Y29udGV4dC5jICAgICAgICAgIHwgICA5MSArKysrKysrKysrKysrKysrKysrKysrKysr Ci0gc3JjL2lidXNpbnB1dGNvbnRleHQuaCAgICAgICAgICB8ICAgMTEgKysrCi0gc3JjL2lidXNt YXJzaGFsZXJzLmxpc3QgICAgICAgICB8ICAgIDEgKwotIDE1IGZpbGVzIGNoYW5nZWQsIDY0NCBp bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKKyBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0 LmMgfCAgIDM0ICsrKysrKysrKystCisgc3JjL2lidXNlbmdpbmVkZXNjLmMgICAgICAgIHwgIDEz MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL2lidXNl bmdpbmVkZXNjLmggICAgICAgIHwgICAxMSArKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxNzMgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2J1cy9lbmdpbmVwcm94 eS5jIGIvYnVzL2VuZ2luZXByb3h5LmMKLWluZGV4IGY4MDg3MjcuLmIzNTkzM2YgMTAwNjQ0Ci0t LS0gYS9idXMvZW5naW5lcHJveHkuYwotKysrIGIvYnVzL2VuZ2luZXByb3h5LmMKLUBAIC00Nyw2 ICs0NywxMCBAQCBzdHJ1Y3QgX0J1c0VuZ2luZVByb3h5IHsKLSAgICAgLyogYSBrZXkgbWFwcGlu ZyBmb3IgdGhlIGVuZ2luZSB0aGF0IGNvbnZlcnRzIGtleWNvZGUgaW50byBrZXlzeW0uIHRoZSBt YXBwaW5nIGlzIHVzZWQgb25seSB3aGVuIHVzZV9zeXNfbGF5b3V0IGlzIEZBTFNFLiAqLwotICAg ICBJQnVzS2V5bWFwICAgICAqa2V5bWFwOwotICAgICAvKiBwcml2YXRlIG1lbWJlciAqLwotKwot KyAgICAvKiBzdXJyb3VuZGluZyB0ZXh0ICovCi0rICAgIElCdXNUZXh0ICpzdXJyb3VuZGluZ190 ZXh0OwotKyAgICBndWludCAgICAgc3Vycm91bmRpbmdfY3Vyc29yX3BvczsKLSB9OwotIAotIHN0 cnVjdCBfQnVzRW5naW5lUHJveHlDbGFzcyB7Ci1AQCAtODMsNiArODcsOCBAQCBlbnVtIHsKLSAK LSBzdGF0aWMgZ3VpbnQgICAgZW5naW5lX3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwIH07Ci0g Ci0rc3RhdGljIElCdXNUZXh0ICp0ZXh0X2VtcHR5ID0gTlVMTDsKLSsKLSAvKiBmdW5jdGlvbnMg cHJvdG90eXBlICovCi0gc3RhdGljIHZvaWQgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X3Byb3Bl cnR5ICAgKEJ1c0VuZ2luZVByb3h5ICAgICAgKmVuZ2luZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgcHJvcF9p ZCwKLUBAIC0zMzAsMTEgKzMzNiwxNiBAQCBidXNfZW5naW5lX3Byb3h5X2NsYXNzX2luaXQgKEJ1 c0VuZ2luZVByb3h5Q2xhc3MgKmNsYXNzKQotICAgICAgICAgICAgIEdfVFlQRV9OT05FLAotICAg ICAgICAgICAgIDEsCi0gICAgICAgICAgICAgSUJVU19UWVBFX1BST1BFUlRZKTsKLSsKLSsgICAg dGV4dF9lbXB0eSA9IGlidXNfdGV4dF9uZXdfZnJvbV9zdGF0aWNfc3RyaW5nICgiIik7Ci0rICAg IGdfb2JqZWN0X3JlZl9zaW5rICh0ZXh0X2VtcHR5KTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLSBi dXNfZW5naW5lX3Byb3h5X2luaXQgKEJ1c0VuZ2luZVByb3h5ICplbmdpbmUpCi0gewotKyAgICBl bmdpbmUtPnN1cnJvdW5kaW5nX3RleHQgPSBnX29iamVjdF9yZWZfc2luayAodGV4dF9lbXB0eSk7 Ci0rICAgIGVuZ2luZS0+c3Vycm91bmRpbmdfY3Vyc29yX3BvcyA9IDA7Ci0gfQotIAotIHN0YXRp YyB2b2lkCi1AQCAtMzkzLDYgKzQwNCwxMSBAQCBidXNfZW5naW5lX3Byb3h5X3JlYWxfZGVzdHJv eSAoSUJ1c1Byb3h5ICpwcm94eSkKLSAgICAgICAgIGVuZ2luZS0+a2V5bWFwID0gTlVMTDsKLSAg ICAgfQotIAotKyAgICBpZiAoZW5naW5lLT5zdXJyb3VuZGluZ190ZXh0KSB7Ci0rICAgICAgICBn X29iamVjdF91bnJlZiAoZW5naW5lLT5zdXJyb3VuZGluZ190ZXh0KTsKLSsgICAgICAgIGVuZ2lu ZS0+c3Vycm91bmRpbmdfdGV4dCA9IE5VTEw7Ci0rICAgIH0KLSsKLSAgICAgSUJVU19QUk9YWV9D TEFTUyAoYnVzX2VuZ2luZV9wcm94eV9wYXJlbnRfY2xhc3MpLT5kZXN0cm95ICgoSUJ1c1Byb3h5 ICopZW5naW5lKTsKLSB9Ci0gCi1AQCAtOTUwLDYgKzk2NiwzMyBAQCB2b2lkIGJ1c19lbmdpbmVf cHJveHlfcHJvcGVydHlfaGlkZSAoQnVzRW5naW5lUHJveHkgKmVuZ2luZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwpOwotIH0KLSAKLSt2b2lkIGJ1c19lbmdpbmVfcHJveHlfc2V0X3N1 cnJvdW5kaW5nX3RleHQgKEJ1c0VuZ2luZVByb3h5ICplbmdpbmUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAqdGV4dCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICBj dXJzb3JfcG9zKQotK3sKLSsgICAgZ19hc3NlcnQgKEJVU19JU19FTkdJTkVfUFJPWFkgKGVuZ2lu ZSkpOwotKyAgICBnX2Fzc2VydCAodGV4dCAhPSBOVUxMKTsKLSsKLSsgICAgaWYgKCFlbmdpbmUt PnN1cnJvdW5kaW5nX3RleHQgfHwKLSsgICAgICAgIGdfc3RyY21wMCAodGV4dC0+dGV4dCwgZW5n aW5lLT5zdXJyb3VuZGluZ190ZXh0LT50ZXh0KSAhPSAwIHx8Ci0rICAgICAgICBjdXJzb3JfcG9z ICE9IGVuZ2luZS0+c3Vycm91bmRpbmdfY3Vyc29yX3BvcykgewotKyAgICAgICAgR1ZhcmlhbnQg KnZhcmlhbnQgPSBpYnVzX3NlcmlhbGl6YWJsZV9zZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxl ICopdGV4dCk7Ci0rICAgICAgICBpZiAoZW5naW5lLT5zdXJyb3VuZGluZ190ZXh0KQotKyAgICAg ICAgICAgIGdfb2JqZWN0X3VucmVmIChlbmdpbmUtPnN1cnJvdW5kaW5nX3RleHQpOwotKyAgICAg ICAgZW5naW5lLT5zdXJyb3VuZGluZ190ZXh0ID0gKElCdXNUZXh0ICopIGdfb2JqZWN0X3JlZl9z aW5rICh0ZXh0KTsKLSsgICAgICAgIGVuZ2luZS0+c3Vycm91bmRpbmdfY3Vyc29yX3BvcyA9IGN1 cnNvcl9wb3M7Ci0rCi0rICAgICAgICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkgKill bmdpbmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldFN1cnJvdW5kaW5nVGV4dCIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIih2dSkiLCB2YXJp YW50LCBjdXJzb3JfcG9zKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FM TF9GTEFHU19OT05FLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSsgICAgfQotK30KLSsKLSAv KiBhIG1hY3JvIHRvIGdlbmVyYXRlIGEgZnVuY3Rpb24gdG8gY2FsbCBhIG51bGxhcnkgRC1CdXMg bWV0aG9kLiAqLwotICNkZWZpbmUgREVGSU5FX0ZVTkNUSU9OKE5hbWUsIG5hbWUpICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi1kaWZmIC0tZ2l0IGEvYnVzL2VuZ2luZXByb3h5Lmgg Yi9idXMvZW5naW5lcHJveHkuaAotaW5kZXggMmE4MmZjNi4uMDY4MDkxNyAxMDA2NDQKLS0tLSBh L2J1cy9lbmdpbmVwcm94eS5oCi0rKysgYi9idXMvZW5naW5lcHJveHkuaAotQEAgLTIxMiw1ICsy MTIsMTYgQEAgdm9pZCAgICAgICAgICAgICBidXNfZW5naW5lX3Byb3h5X3Byb3BlcnR5X2hpZGUg ICAgIChCdXNFbmdpbmVQcm94eSAqZW5naW5lLAotICAqLwotIGdib29sZWFuICAgICAgICAgYnVz X2VuZ2luZV9wcm94eV9pc19lbmFibGVkICAgICAgICAoQnVzRW5naW5lUHJveHkgKmVuZ2luZSk7 Ci0gCi0rLyoqCi0rICogYnVzX2VuZ2luZV9wcm94eV9zZXRfc3Vycm91bmRpbmdfdGV4dDoKLSsg KgotKyAqIENhbGwgIlNldFN1cnJvdW5kaW5nVGV4dCIgbWV0aG9kIG9mIGFuIGVuZ2luZSBhc3lu Y2hyb25vdXNseS4KLSsgKi8KLSt2b2lkICAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0 X3N1cnJvdW5kaW5nX3RleHQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKEJ1c0VuZ2luZVByb3h5ICplbmdpbmUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAqdGV4 dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGd1aW50ICAgICAgICAgICBjdXJzb3JfcG9zKTsKLSsKLSsKLSBHX0VORF9ERUNMUwotICNlbmRp ZgotZGlmZiAtLWdpdCBhL2J1cy9pbnB1dGNvbnRleHQuYyBiL2J1cy9pbnB1dGNvbnRleHQuYwot aW5kZXggMzJkNTFlOC4uMjBmNTYxYyAxMDA2NDQKLS0tLSBhL2J1cy9pbnB1dGNvbnRleHQuYwot KysrIGIvYnVzL2lucHV0Y29udGV4dC5jCi1AQCAtMjQ3LDYgKzI0NywxMSBAQCBzdGF0aWMgY29u c3QgZ2NoYXIgaW50cm9zcGVjdGlvbl94bWxbXSA9Ci0gICAgICIgICAgPG1ldGhvZCBuYW1lPSdH ZXRFbmdpbmUnPiIKLSAgICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdvdXQnIHR5cGU9J3YnIG5h bWU9J2Rlc2MnIC8+IgotICAgICAiICAgIDwvbWV0aG9kPiIKLSsgICAgIiAgICA8bWV0aG9kIG5h bWU9J1NldFN1cnJvdW5kaW5nVGV4dCc+IgotKyAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2lu JyB0eXBlPSd2JyBuYW1lPSd0ZXh0JyAvPiIKLSsgICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdp bicgdHlwZT0ndScgbmFtZT0nY3Vyc29yX3BvcycgLz4iCi0rICAgICIgICAgPC9tZXRob2Q+Igot KwotICAgICAvKiBzaWduYWxzICovCi0gICAgICIgICAgPHNpZ25hbCBuYW1lPSdDb21taXRUZXh0 Jz4iCi0gICAgICIgICAgICA8YXJnIHR5cGU9J3YnIG5hbWU9J3RleHQnIC8+IgotQEAgLTk2MSw2 ICs5NjYsMzIgQEAgX2ljX2dldF9lbmdpbmUgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4 dCwKLSAgKiBIYW5kbGUgYSBELUJ1cyBtZXRob2QgY2FsbCB3aG9zZSBkZXN0aW5hdGlvbiBhbmQg aW50ZXJmYWNlIG5hbWUgYXJlIGJvdGggIm9yZy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4 dCIKLSAgKi8KLSBzdGF0aWMgdm9pZAotK19pY19zZXRfc3Vycm91bmRpbmdfdGV4dCAoQnVzSW5w dXRDb250ZXh0ICAgICAgICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgR1Zh cmlhbnQgICAgICAgICAgICAgICpwYXJhbWV0ZXJzLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgR0RCdXNNZXRob2RJbnZvY2F0aW9uICppbnZvY2F0aW9uKQotK3sKLSsgICAgR1ZhcmlhbnQg KnZhcmlhbnQgPSBOVUxMOwotKyAgICBJQnVzVGV4dCAqdGV4dDsKLSsgICAgZ3VpbnQgY3Vyc29y X3BvcyA9IDA7Ci0rCi0rICAgIGdfdmFyaWFudF9nZXQgKHBhcmFtZXRlcnMsICIodnUpIiwgJnZh cmlhbnQsICZjdXJzb3JfcG9zKTsKLSsgICAgdGV4dCA9IElCVVNfVEVYVCAoaWJ1c19zZXJpYWxp emFibGVfZGVzZXJpYWxpemUgKHZhcmlhbnQpKTsKLSsgICAgZ192YXJpYW50X3VucmVmICh2YXJp YW50KTsKLSsKLSsgICAgaWYgKChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9TVVJS T1VORElOR19URVhUKSAmJgotKyAgICAgICAgIGNvbnRleHQtPmhhc19mb2N1cyAmJiBjb250ZXh0 LT5lbmFibGVkICYmIGNvbnRleHQtPmVuZ2luZSkgewotKyAgICAgICAgYnVzX2VuZ2luZV9wcm94 eV9zZXRfc3Vycm91bmRpbmdfdGV4dCAoY29udGV4dC0+ZW5naW5lLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcl9wb3MpOwotKyAgICB9Ci0rCi0r ICAgIGlmIChnX29iamVjdF9pc19mbG9hdGluZyAodGV4dCkpCi0rICAgICAgICBnX29iamVjdF91 bnJlZiAodGV4dCk7Ci0rCi0rICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFs dWUgKGludm9jYXRpb24sIE5VTEwpOwotK30KLSsKLStzdGF0aWMgdm9pZAotIGJ1c19pbnB1dF9j b250ZXh0X3NlcnZpY2VfbWV0aG9kX2NhbGwgKElCdXNTZXJ2aWNlICAgICAgICAgICAgKnNlcnZp Y2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RCdXNDb25uZWN0 aW9uICAgICAgICAqY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICpzZW5kZXIsCi1AQCAtOTk5LDYgKzEwMzAs NyBAQCBidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX21ldGhvZF9jYWxsIChJQnVzU2VydmljZSAg ICAgICAgICAgICpzZXJ2aWNlLAotICAgICAgICAgeyAiSXNFbmFibGVkIiwgICAgICAgICBfaWNf aXNfZW5hYmxlZCB9LAotICAgICAgICAgeyAiU2V0RW5naW5lIiwgICAgICAgICBfaWNfc2V0X2Vu Z2luZSB9LAotICAgICAgICAgeyAiR2V0RW5naW5lIiwgICAgICAgICBfaWNfZ2V0X2VuZ2luZSB9 LAotKyAgICAgICAgeyAiU2V0U3Vycm91bmRpbmdUZXh0IiwgX2ljX3NldF9zdXJyb3VuZGluZ190 ZXh0fSwKLSAgICAgfTsKLSAKLSAgICAgZ2ludCBpOwotQEAgLTIwNTksNiArMjA5MSwxMCBAQCBi dXNfaW5wdXRfY29udGV4dF9zZXRfZW5naW5lIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0g ICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9zZXRfY3Vyc29yX2xvY2F0aW9uIChjb250ZXh0 LT5lbmdpbmUsIGNvbnRleHQtPngsIGNvbnRleHQtPnksIGNvbnRleHQtPncsIGNvbnRleHQtPmgp OwotICAgICAgICAgfQotICAgICB9Ci0rICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFs IChjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZ2luZUNo YW5nZWQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotICAgICBnX3NpZ25hbF9lbWl0 IChjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICBjb250ZXh0X3NpZ25hbHNbRU5HSU5FX0NI QU5HRURdLAotICAgICAgICAgICAgICAgICAgICAwKTsKIGRpZmYgLS1naXQgYS9jbGllbnQvZ3Rr Mi9pYnVzaW1jb250ZXh0LmMgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLWluZGV4IGE0 ZTQ2Y2IuLmQwMjliNWMgMTAwNjQ0CitpbmRleCBkYzM2NDBlLi4wYWMxYjcwIDEwMDY0NAogLS0t IGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCiArKysgYi9jbGllbnQvZ3RrMi9pYnVzaW1j b250ZXh0LmMKLUBAIC0yNyw2ICsyNyw3IEBACi0gI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSAjaW5j bHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KLSAjaW5jbHVkZSA8aWJ1cy5oPgotKyNpbmNsdWRlIDxz dHJpbmcuaD4KLSAjaW5jbHVkZSAiaWJ1c2ltY29udGV4dC5oIgotIAotICNpZiAhR1RLX0NIRUNL X1ZFUlNJT04gKDIsIDkxLCAwKQotQEAgLTYwLDcgKzYxLDggQEAgc3RydWN0IF9JQnVzSU1Db250 ZXh0IHsKK0BAIC02MSw2ICs2MSw3IEBAIHN0cnVjdCBfSUJ1c0lNQ29udGV4dCB7CiAgICAgIGdi b29sZWFuICAgICAgICAgaGFzX2ZvY3VzOwogIAogICAgICBndWludDMyICAgICAgICAgIHRpbWU7 Ci0tICAgIGdpbnQgICAgICAgICAgICAgY2FwczsKICsgICAgZ3VpbnQgICAgICAgICAgICBzdXBw b3J0ZWRfY2FwczsKLSsgICAgZ3VpbnQgICAgICAgICAgICBjYXBzOwotIH07CisgICAgIGdpbnQg ICAgICAgICAgICAgY2FwczsKICAKLSBzdHJ1Y3QgX0lCdXNJTUNvbnRleHRDbGFzcyB7Ci1AQCAt MTExLDExICsxMTMsMTggQEAgc3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9zZXRfY3Vy c29yX2xvY2F0aW9uCi0gc3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9zZXRfdXNlX3By ZWVkaXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtJ TUNvbnRleHQgICAgICAgICAgICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgdXNlX3ByZWVkaXQpOwot K3N0YXRpYyB2b2lkICAgICBpYnVzX2ltX2NvbnRleHRfc2V0X3N1cnJvdW5kaW5nCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrSU1Db250ZXh0ICAqc2xh dmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Z2NoYXIgICAqdGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnaW50ICAgICAgICAgICBsZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAgY3Vyc29yX2luZGV4KTsKLSsKLSAKLSAvKiBz dGF0aWMgbWV0aG9kcyovCi0gc3RhdGljIHZvaWQgICAgIF9jcmVhdGVfaW5wdXRfY29udGV4dCAg ICAgICAoSUJ1c0lNQ29udGV4dCAgICAgICpjb250ZXh0KTsKLSBzdGF0aWMgdm9pZCAgICAgX3Nl dF9jdXJzb3JfbG9jYXRpb25faW50ZXJuYWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChHdGtJTUNvbnRleHQgICAgICAgKmNvbnRleHQpOwotK3N0YXRpYyB2 b2lkICAgICBfbmVnb3RpYXRlX2NhcGFiaWxpdGllcyAgICAgKElCdXNJTUNvbnRleHQgICAgICAq Y29udGV4dCk7Ci0gCi0gc3RhdGljIHZvaWQgICAgIF9idXNfY29ubmVjdGVkX2NiICAgICAgICAg ICAoSUJ1c0J1cyAgICAgICAgICAgICpidXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSUJ1c0lNQ29udGV4dCAgICAgICpjb250ZXh0KTsKLUBAIC0xMjks MTQgKzEzOCwxNSBAQCBzdGF0aWMgdm9pZCAgICAgX3NsYXZlX3ByZWVkaXRfc3RhcnRfY2IgICAg IChHdGtJTUNvbnRleHQgICAgICAgKnNsYXZlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElCdXNJTUNvbnRleHQgICAgICAgKmNvbnRleHQpOwotIHN0YXRp YyB2b2lkICAgICBfc2xhdmVfcHJlZWRpdF9lbmRfY2IgICAgICAgKEd0a0lNQ29udGV4dCAgICAg ICAqc2xhdmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SUJ1c0lNQ29udGV4dCAgICAgICAqY29udGV4dCk7Ci0tc3RhdGljIHZvaWQgICAgIF9zbGF2ZV9y ZXRyaWV2ZV9zdXJyb3VuZGluZ19jYgotK3N0YXRpYyBnYm9vbGVhbiBfc2xhdmVfcmV0cmlldmVf c3Vycm91bmRpbmdfY2IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChHdGtJTUNvbnRleHQgICAgICAgKnNsYXZlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElCdXNJTUNvbnRleHQgICAgICAgKmNvbnRleHQpOwotLXN0 YXRpYyB2b2lkICAgICBfc2xhdmVfZGVsZXRlX3N1cnJvdW5kaW5nX2NiCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c0lNQ29udGV4dCAgICAgICpjb250 ZXh0KTsKLStzdGF0aWMgZ2Jvb2xlYW4gX3NsYXZlX2RlbGV0ZV9zdXJyb3VuZGluZ19jYgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0a0lNQ29udGV4dCAg ICAgICAqc2xhdmUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2ludCAgICAgICAgICAgICAgIG9mZnNldF9mcm9tX2N1cnNvciwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgbmNoYXJz LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNJTUNv bnRleHQgICAgICAgKmNvbnRleHQpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdpbnQgICAgICAgICAgICAgICAgb2Zmc2V0X2Zyb21fY3Vyc29yLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAg ICAgICAgbmNoYXJzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElCdXNJTUNvbnRleHQgICAgICAqY29udGV4dCk7Ci0rc3RhdGljIHZvaWQgICAgIF9yZXF1 ZXN0X3N1cnJvdW5kaW5nX3RleHQgICAoSUJ1c0lNQ29udGV4dCAgICAgICpjb250ZXh0KTsKKyAg ICAgLyogY2FuY2VsbGFibGUgKi8KK0BAIC0xNTAsNiArMTUxLDcgQEAgc3RhdGljIGdib29sZWFu IF9zbGF2ZV9kZWxldGVfc3Vycm91bmRpbmdfY2IKKyBzdGF0aWMgdm9pZCAgICAgX3JlcXVlc3Rf c3Vycm91bmRpbmdfdGV4dCAgIChJQnVzSU1Db250ZXh0ICAgICAgKmNvbnRleHQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAg ICBmb3JjZSk7CiAgc3RhdGljIHZvaWQgICAgIF9jcmVhdGVfZmFrZV9pbnB1dF9jb250ZXh0ICAo dm9pZCk7Cisrc3RhdGljIHZvaWQgICAgIF9uZWdvdGlhdGVfY2FwYWJpbGl0aWVzICAgICAoSUJ1 c0lNQ29udGV4dCAgICAgICpjb250ZXh0KTsKICAKICAKLUBAIC0yNDgsNiArMjU4LDE3IEBAIF9w cm9jZXNzX2tleV9ldmVudF9kb25lIChHT2JqZWN0ICAgICAgKm9iamVjdCwKLSB9Ci0gCi0gCi0r c3RhdGljIHZvaWQKLStfcmVxdWVzdF9zdXJyb3VuZGluZ190ZXh0IChJQnVzSU1Db250ZXh0ICpj b250ZXh0KQotK3sKLSsgICAgaWYgKGNvbnRleHQtPmVuYWJsZSAmJgotKyAgICAgICAgKGNvbnRl eHQtPmNhcHMgJiBJQlVTX0NBUF9TVVJST1VORElOR19URVhUKSkgewotKyAgICAgICAgZ2Jvb2xl YW4gcmV0dXJuX3ZhbHVlOwotKyAgICAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4dCwgX3NpZ25h bF9yZXRyaWV2ZV9zdXJyb3VuZGluZ19pZCwgMCwKLSsgICAgICAgICAgICAgICAgICAgICAgICZy ZXR1cm5fdmFsdWUpOwotKyAgICB9Ci0rfQotKwotIHN0YXRpYyBnaW50Ci0gX2tleV9zbm9vcGVy X2NiIChHdGtXaWRnZXQgICAqd2lkZ2V0LAotICAgICAgICAgICAgICAgICAgR2RrRXZlbnRLZXkg KmV2ZW50LAotQEAgLTMzNCw2ICszNTUsOCBAQCBfa2V5X3Nub29wZXJfY2IgKEd0a1dpZGdldCAg ICp3aWRnZXQsCi0gCi0gICAgIH0gd2hpbGUgKDApOwotIAotKyAgICBfcmVxdWVzdF9zdXJyb3Vu ZGluZ190ZXh0IChpYnVzaW1jb250ZXh0KTsKLSsKLSAgICAgaWYgKGlidXNpbWNvbnRleHQgIT0g TlVMTCkgewotICAgICAgICAgaWJ1c2ltY29udGV4dC0+dGltZSA9IGV2ZW50LT50aW1lOwotICAg ICB9Ci1AQCAtNDMwLDYgKzQ1Myw3IEBAIGlidXNfaW1fY29udGV4dF9jbGFzc19pbml0IChJQnVz SU1Db250ZXh0Q2xhc3MgKmNsYXNzKQotICAgICBpbV9jb250ZXh0X2NsYXNzLT5zZXRfY2xpZW50 X3dpbmRvdyA9IGlidXNfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdzsKLSAgICAgaW1fY29u dGV4dF9jbGFzcy0+c2V0X2N1cnNvcl9sb2NhdGlvbiA9IGlidXNfaW1fY29udGV4dF9zZXRfY3Vy c29yX2xvY2F0aW9uOwotICAgICBpbV9jb250ZXh0X2NsYXNzLT5zZXRfdXNlX3ByZWVkaXQgPSBp YnVzX2ltX2NvbnRleHRfc2V0X3VzZV9wcmVlZGl0OwotKyAgICBpbV9jb250ZXh0X2NsYXNzLT5z ZXRfc3Vycm91bmRpbmcgPSBpYnVzX2ltX2NvbnRleHRfc2V0X3N1cnJvdW5kaW5nOwotICAgICBn b2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9IGlidXNfaW1fY29udGV4dF9maW5hbGl6ZTsKICAKLSAg ICAgX3NpZ25hbF9jb21taXRfaWQgPQotQEAgLTU3Nyw3ICs2MDEsMTIgQEAgaWJ1c19pbV9jb250 ZXh0X2luaXQgKEdPYmplY3QgKm9iaikKLSAgICAgaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRleHQg PSBOVUxMOworQEAgLTU4MCwxMCArNTgyLDExIEBAIGlidXNfaW1fY29udGV4dF9pbml0IChHT2Jq ZWN0ICpvYmopCiAgICAgIGlidXNpbWNvbnRleHQtPmhhc19mb2N1cyA9IEZBTFNFOwogICAgICBp YnVzaW1jb250ZXh0LT50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAjaWZkZWYgRU5BQkxFX1NV UlJPVU5ESU5HCiAtICAgIGlidXNpbWNvbnRleHQtPmNhcHMgPSBJQlVTX0NBUF9QUkVFRElUX1RF WFQgfCBJQlVTX0NBUF9GT0NVUyB8IElCVVNfQ0FQX1NVUlJPVU5ESU5HX1RFWFQ7Ci0rI2lmZGVm IEVOQUJMRV9TVVJST1VORElORwogKyAgICBpYnVzaW1jb250ZXh0LT5zdXBwb3J0ZWRfY2FwcyA9 IElCVVNfQ0FQX1BSRUVESVRfVEVYVCB8IElCVVNfQ0FQX0ZPQ1VTIHwgSUJVU19DQVBfU1VSUk9V TkRJTkdfVEVYVDsKLSsjZWxzZQorICNlbHNlCistICAgIGlidXNpbWNvbnRleHQtPmNhcHMgPSBJ QlVTX0NBUF9QUkVFRElUX1RFWFQgfCBJQlVTX0NBUF9GT0NVUzsKICsgICAgaWJ1c2ltY29udGV4 dC0+c3VwcG9ydGVkX2NhcHMgPSBJQlVTX0NBUF9QUkVFRElUX1RFWFQgfCBJQlVTX0NBUF9GT0NV UzsKLSsjZW5kaWYKKyAjZW5kaWYKICsgICAgaWJ1c2ltY29udGV4dC0+Y2FwcyA9IGlidXNpbWNv bnRleHQtPnN1cHBvcnRlZF9jYXBzOwogIAogIAogICAgICAvLyBDcmVhdGUgc2xhdmUgaW0gY29u dGV4dAotQEAgLTY3NCw2ICs3MDMsOCBAQCBpYnVzX2ltX2NvbnRleHRfZmlsdGVyX2tleXByZXNz IChHdGtJTUNvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICBpZiAoaWJ1c2ltY29udGV4dC0+Y2xp ZW50X3dpbmRvdyA9PSBOVUxMICYmIGV2ZW50LT53aW5kb3cgIT0gTlVMTCkKLSAgICAgICAgICAg ICBndGtfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyAoKEd0a0lNQ29udGV4dCAqKWlidXNp bWNvbnRleHQsIGV2ZW50LT53aW5kb3cpOwotIAotKyAgICAgICAgX3JlcXVlc3Rfc3Vycm91bmRp bmdfdGV4dCAoaWJ1c2ltY29udGV4dCk7Ci0rCi0gICAgICAgICBpZiAoaWJ1c2ltY29udGV4dCAh PSBOVUxMKSB7Ci0gICAgICAgICAgICAgaWJ1c2ltY29udGV4dC0+dGltZSA9IGV2ZW50LT50aW1l OwotICAgICAgICAgfQotQEAgLTc2OCw2ICs3OTksOCBAQCBpYnVzX2ltX2NvbnRleHRfZm9jdXNf aW4gKEd0a0lNQ29udGV4dCAqY29udGV4dCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChncG9pbnRlciAqKSAmX2ZvY3VzX2ltX2NvbnRleHQpOwotICAgICAgICAgX2ZvY3Vz X2ltX2NvbnRleHQgPSBjb250ZXh0OwotICAgICB9Ci0rCi0rICAgIF9yZXF1ZXN0X3N1cnJvdW5k aW5nX3RleHQgKGlidXNpbWNvbnRleHQpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTkyNSw2 ICs5NTgsMjUgQEAgaWJ1c19pbV9jb250ZXh0X3NldF9jdXJzb3JfbG9jYXRpb24gKEd0a0lNQ29u dGV4dCAqY29udGV4dCwgR2RrUmVjdGFuZ2xlICphcmVhKQorQEAgLTkzMCw2ICs5MzMsMjcgQEAg aWJ1c19pbV9jb250ZXh0X3NldF9jdXJzb3JfbG9jYXRpb24gKEd0a0lNQ29udGV4dCAqY29udGV4 dCwgR2RrUmVjdGFuZ2xlICphcmVhKQogIH0KICAKICBzdGF0aWMgdm9pZAogK19uZWdvdGlhdGVf Y2FwYWJpbGl0aWVzIChJQnVzSU1Db250ZXh0ICpjb250ZXh0KQogK3sKLSsgICAgSUJ1c0VuZ2lu ZURlc2MgKmVuZ2luZTsKLSsKLSsgICAgZW5naW5lID0gaWJ1c19pbnB1dF9jb250ZXh0X2dldF9l bmdpbmUgKGNvbnRleHQtPmlidXNjb250ZXh0KTsKLSsgICAgaWYgKGVuZ2luZSkgewotKyAgICAg ICAgY29udGV4dC0+Y2FwcyA9IGNvbnRleHQtPnN1cHBvcnRlZF9jYXBzICYKLSsgICAgICAgICAg ICBpYnVzX2VuZ2luZV9kZXNjX2dldF9yZXF1aXJlcyAoZW5naW5lKTsKLSsgICAgICAgIGlidXNf aW5wdXRfY29udGV4dF9zZXRfY2FwYWJpbGl0aWVzIChjb250ZXh0LT5pYnVzY29udGV4dCwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5jYXBz KTsKKysgICAgaWYgKGNvbnRleHQtPmVuYWJsZSkgeworKyAgICAgICAgSUJ1c0VuZ2luZURlc2Mg KmVuZ2luZSA9CisrICAgICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X2dldF9lbmdpbmUgKGNv bnRleHQtPmlidXNjb250ZXh0KTsKKysKKysgICAgICAgIGlmIChlbmdpbmUpIHsKKysgICAgICAg ICAgICBjb250ZXh0LT5jYXBzID0gY29udGV4dC0+c3VwcG9ydGVkX2NhcHMgJgorKyAgICAgICAg ICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX2dldF9yZXF1aXJlcyAoZW5naW5lKTsKKysgICAgICAg ICAgICBpYnVzX2lucHV0X2NvbnRleHRfc2V0X2NhcGFiaWxpdGllcyAoY29udGV4dC0+aWJ1c2Nv bnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRleHQtPmNhcHMpOwogKyAgICAgICAgSURFQlVHICgiZW5naW5lICVzOiBzdXBwb3J0ZWQg Y2FwcyA9ICV1LCBlbmdpbmUgd2FudHMgPSAldSwgY2FwcyA9ICV1IiwKLSsgICAgICAgICAgICAg ICAgaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZW5naW5lKQorKyAgICAgICAgICAgICAgICBp YnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChlbmdpbmUpLAogKyAgICAgICAgICAgICAgICBjb250 ZXh0LT5zdXBwb3J0ZWRfY2FwcywKICsgICAgICAgICAgICAgICAgaWJ1c19lbmdpbmVfZGVzY19n ZXRfcmVxdWlyZXMgKGVuZ2luZSksCiArICAgICAgICAgICAgICAgIGNvbnRleHQtPmNhcHMpOwor KyAgICAgICAgfQogKyAgICB9CiArfQogKwpAQCAtMzcxLDcgKzcxLDcgQEAgaW5kZXggYTRlNDZj Yi4uZDAyOWI1YyAxMDA2NDQKICBpYnVzX2ltX2NvbnRleHRfc2V0X3VzZV9wcmVlZGl0IChHdGtJ TUNvbnRleHQgKmNvbnRleHQsIGdib29sZWFuIHVzZV9wcmVlZGl0KQogIHsKICAgICAgSURFQlVH ICgiJXMiLCBfX0ZVTkNUSU9OX18pOwotQEAgLTkzMywxNyArOTg1LDUwIEBAIGlidXNfaW1fY29u dGV4dF9zZXRfdXNlX3ByZWVkaXQgKEd0a0lNQ29udGV4dCAqY29udGV4dCwgZ2Jvb2xlYW4gdXNl X3ByZWVkaXQpCitAQCAtOTM4LDExICs5NjIsMTIgQEAgaWJ1c19pbV9jb250ZXh0X3NldF91c2Vf cHJlZWRpdCAoR3RrSU1Db250ZXh0ICpjb250ZXh0LCBnYm9vbGVhbiB1c2VfcHJlZWRpdCkKICAK ICAgICAgaWYoaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRleHQpIHsKICAgICAgICAgIGlmICh1c2Vf cHJlZWRpdCkgewpAQCAtMzgyLDQ5MyArODIsMTggQEAgaW5kZXggYTRlNDZjYi4uZDAyOWI1YyAx MDA2NDQKIC0gICAgICAgICAgICBpYnVzaW1jb250ZXh0LT5jYXBzICY9IH5JQlVTX0NBUF9QUkVF RElUX1RFWFQ7CiArICAgICAgICAgICAgaWJ1c2ltY29udGV4dC0+c3VwcG9ydGVkX2NhcHMgJj0g fklCVVNfQ0FQX1BSRUVESVRfVEVYVDsKICAgICAgICAgIH0KLS0gICAgICAgIGlidXNfaW5wdXRf Y29udGV4dF9zZXRfY2FwYWJpbGl0aWVzIChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCwgaWJ1 c2ltY29udGV4dC0+Y2Fwcyk7CiArICAgICAgICBfbmVnb3RpYXRlX2NhcGFiaWxpdGllcyAoaWJ1 c2ltY29udGV4dCk7CiAgICAgIH0KICAgICAgZ3RrX2ltX2NvbnRleHRfc2V0X3VzZV9wcmVlZGl0 IChpYnVzaW1jb250ZXh0LT5zbGF2ZSwgdXNlX3ByZWVkaXQpOwogIH0KLSAKLSBzdGF0aWMgdm9p ZAotK2lidXNfaW1fY29udGV4dF9zZXRfc3Vycm91bmRpbmcgKEd0a0lNQ29udGV4dCAgKmNvbnRl eHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAqdGV4 dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICBsZW4s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAgY3Vyc29y X2luZGV4KQotK3sKLSsgICAgZ19yZXR1cm5faWZfZmFpbCAoY29udGV4dCAhPSBOVUxMKTsKLSsg ICAgZ19yZXR1cm5faWZfZmFpbCAoSUJVU19JU19JTV9DT05URVhUIChjb250ZXh0KSk7Ci0rICAg IGdfcmV0dXJuX2lmX2ZhaWwgKHRleHQgIT0gTlVMTCk7Ci0rICAgIGdfcmV0dXJuX2lmX2ZhaWwg KHN0cmxlbiAodGV4dCkgPj0gbGVuKTsKLSsgICAgZ19yZXR1cm5faWZfZmFpbCAoMCA8PSBjdXJz b3JfaW5kZXggJiYgY3Vyc29yX2luZGV4IDw9IGxlbik7Ci0rCi0rICAgIElCdXNJTUNvbnRleHQg KmlidXNpbWNvbnRleHQgPSBJQlVTX0lNX0NPTlRFWFQgKGNvbnRleHQpOwotKwotKyAgICBpZiAo aWJ1c2ltY29udGV4dC0+ZW5hYmxlICYmIGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KSB7Ci0r ICAgICAgICBJQnVzVGV4dCAqaWJ1c3RleHQ7Ci0rICAgICAgICBndWludCBjdXJzb3JfcG9zOwot KyAgICAgICAgZ2NoYXIgKnA7Ci0rCi0rICAgICAgICBwID0gZ19zdHJuZHVwICh0ZXh0LCBsZW4p OwotKyAgICAgICAgY3Vyc29yX3BvcyA9IGdfdXRmOF9zdHJsZW4gKHAsIGN1cnNvcl9pbmRleCk7 Ci0rICAgICAgICBpYnVzdGV4dCA9IGlidXNfdGV4dF9uZXdfZnJvbV9zdHJpbmcgKHApOwotKyAg ICAgICAgZ19mcmVlIChwKTsKLSsgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfc3Vycm91 bmRpbmdfdGV4dCAoaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRleHQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXN0ZXh0LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JfcG9zKTsKLSsgICAg fQotKyAgICBndGtfaW1fY29udGV4dF9zZXRfc3Vycm91bmRpbmcgKGlidXNpbWNvbnRleHQtPnNs YXZlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGN1cnNvcl9pbmRleCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0gX2J1 c19jb25uZWN0ZWRfY2IgKElCdXNCdXMgICAgICAgICAgKmJ1cywKLSAgICAgICAgICAgICAgICAg ICAgSUJ1c0lNQ29udGV4dCAgICAqaWJ1c2ltY29udGV4dCkKLSB7Ci1AQCAtOTYyLDYgKzEwNDcs OCBAQCBfaWJ1c19jb250ZXh0X2NvbW1pdF90ZXh0X2NiIChJQnVzSW5wdXRDb250ZXh0ICppYnVz Y29udGV4dCwKK0BAIC0xMzIwLDYgKzEzNDUsNyBAQCBfaWJ1c19jb250ZXh0X2VuYWJsZWRfY2Ig KElCdXNJbnB1dENvbnRleHQgKmlidXNjb250ZXh0LAogICAgICBJREVCVUcgKCIlcyIsIF9fRlVO Q1RJT05fXyk7CiAgCi0gICAgIGdfc2lnbmFsX2VtaXQgKGlidXNpbWNvbnRleHQsIF9zaWduYWxf Y29tbWl0X2lkLCAwLCB0ZXh0LT50ZXh0KTsKLSsKLSsgICAgX3JlcXVlc3Rfc3Vycm91bmRpbmdf dGV4dCAoaWJ1c2ltY29udGV4dCk7Ci0gfQotIAotIHN0YXRpYyBnYm9vbGVhbgotQEAgLTEyNTYs NiArMTM0Myw4IEBAIF9pYnVzX2NvbnRleHRfc2hvd19wcmVlZGl0X3RleHRfY2IgKElCdXNJbnB1 dENvbnRleHQgICAqaWJ1c2NvbnRleHQsCi0gICAgIGlidXNpbWNvbnRleHQtPnByZWVkaXRfdmlz aWJsZSA9IFRSVUU7Ci0gICAgIGdfc2lnbmFsX2VtaXQgKGlidXNpbWNvbnRleHQsIF9zaWduYWxf cHJlZWRpdF9zdGFydF9pZCwgMCk7Ci0gICAgIGdfc2lnbmFsX2VtaXQgKGlidXNpbWNvbnRleHQs IF9zaWduYWxfcHJlZWRpdF9jaGFuZ2VkX2lkLCAwKTsKLSsKLSsgICAgX3JlcXVlc3Rfc3Vycm91 bmRpbmdfdGV4dCAoaWJ1c2ltY29udGV4dCk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtMTMy MSw2ICsxNDEwLDE0IEBAIF9pYnVzX2NvbnRleHRfZGVzdHJveV9jYiAoSUJ1c0lucHV0Q29udGV4 dCAqaWJ1c2NvbnRleHQsCi0gfQotIAotIHN0YXRpYyB2b2lkCi0rX2lidXNfY29udGV4dF9lbmdp bmVfY2hhbmdlZF9jYiAoSUJ1c0lucHV0Q29udGV4dCAqaWJ1c2NvbnRleHQsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c0lNQ29udGV4dCAgICAqaWJ1c2ltY29udGV4dCkK LSt7Ci0rICAgIElERUJVRyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgaWJ1c2ltY29udGV4 dC0+ZW5hYmxlID0gVFJVRTsKICsgICAgX25lZ290aWF0ZV9jYXBhYmlsaXRpZXMgKGlidXNpbWNv bnRleHQpOwotK30KLSsKLStzdGF0aWMgdm9pZAotIF9jcmVhdGVfaW5wdXRfY29udGV4dCAoSUJ1 c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCkKLSB7Ci0gICAgIElERUJVRyAoIiVzIiwgX19GVU5D VElPTl9fKTsKLUBAIC0xMzYzLDYgKzE0NjAsMTAgQEAgX2NyZWF0ZV9pbnB1dF9jb250ZXh0IChJ QnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0KQotICAgICAgICAgICAgICAgICAgICAgICAiZGlz YWJsZWQiLAotICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChfaWJ1c19jb250ZXh0 X2Rpc2FibGVkX2NiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0r ICAgIGdfc2lnbmFsX2Nvbm5lY3QgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0LAotKyAgICAg ICAgICAgICAgICAgICAgICAiZW5naW5lLWNoYW5nZWQiLAotKyAgICAgICAgICAgICAgICAgICAg ICBHX0NBTExCQUNLIChfaWJ1c19jb250ZXh0X2VuZ2luZV9jaGFuZ2VkX2NiKSwKLSsgICAgICAg ICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0gICAgIGdfc2lnbmFsX2Nvbm5lY3QgKGli dXNpbWNvbnRleHQtPmlidXNjb250ZXh0LCAiZGVzdHJveSIsCi0gICAgICAgICAgICAgICAgICAg ICAgIEdfQ0FMTEJBQ0sgKF9pYnVzX2NvbnRleHRfZGVzdHJveV9jYiksCi0gICAgICAgICAgICAg ICAgICAgICAgIGlidXNpbWNvbnRleHQpOwotQEAgLTE0MTksMTcgKzE1MjAsMjEgQEAgX3NsYXZl X3ByZWVkaXRfZW5kX2NiIChHdGtJTUNvbnRleHQgICpzbGF2ZSwKLSAgICAgZ19zaWduYWxfZW1p dCAoaWJ1c2ltY29udGV4dCwgX3NpZ25hbF9wcmVlZGl0X2VuZF9pZCwgMCk7Ci0gfQotIAotLXN0 YXRpYyB2b2lkCi0rc3RhdGljIGdib29sZWFuCi0gX3NsYXZlX3JldHJpZXZlX3N1cnJvdW5kaW5n X2NiIChHdGtJTUNvbnRleHQgICpzbGF2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQpCi0gewotKyAgICBnYm9vbGVhbiByZXR1 cm5fdmFsdWU7Ci0rCi0gICAgIGlmIChpYnVzaW1jb250ZXh0LT5lbmFibGUgJiYgaWJ1c2ltY29u dGV4dC0+aWJ1c2NvbnRleHQpIHsKLS0gICAgICAgIHJldHVybjsKLSsgICAgICAgIHJldHVybiBG QUxTRTsKLSAgICAgfQotLSAgICBnX3NpZ25hbF9lbWl0IChpYnVzaW1jb250ZXh0LCBfc2lnbmFs X3JldHJpZXZlX3N1cnJvdW5kaW5nX2lkLCAwKTsKLSsgICAgZ19zaWduYWxfZW1pdCAoaWJ1c2lt Y29udGV4dCwgX3NpZ25hbF9yZXRyaWV2ZV9zdXJyb3VuZGluZ19pZCwgMCwKLSsgICAgICAgICAg ICAgICAgICAgJnJldHVybl92YWx1ZSk7Ci0rICAgIHJldHVybiByZXR1cm5fdmFsdWU7Ci0gfQot IAotLXN0YXRpYyB2b2lkCi0rc3RhdGljIGdib29sZWFuCi0gX3NsYXZlX2RlbGV0ZV9zdXJyb3Vu ZGluZ19jYiAoR3RrSU1Db250ZXh0ICAqc2xhdmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2ludCAgICAgICAgICAgb2Zmc2V0X2Zyb21fY3Vyc29yLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgIG5jaGFycywKLUBAIC0xNDM4LDkgKzE1NDMs MTAgQEAgX3NsYXZlX2RlbGV0ZV9zdXJyb3VuZGluZ19jYiAoR3RrSU1Db250ZXh0ICAqc2xhdmUs Ci0gICAgIGdib29sZWFuIHJldHVybl92YWx1ZTsKLSAKLSAgICAgaWYgKGlidXNpbWNvbnRleHQt PmVuYWJsZSAmJiBpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCkgewotLSAgICAgICAgcmV0dXJu OwotKyAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0gICAgIGdfc2lnbmFsX2VtaXQgKGli dXNpbWNvbnRleHQsIF9zaWduYWxfZGVsZXRlX3N1cnJvdW5kaW5nX2lkLCAwLCBvZmZzZXRfZnJv bV9jdXJzb3IsIG5jaGFycywgJnJldHVybl92YWx1ZSk7Ci0rICAgIHJldHVybiByZXR1cm5fdmFs dWU7Ci0gfQotIAotICNpZmRlZiBPU19DSFJPTUVPUwotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h YyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggODFlZmU4MS4uZTVmZTkyNSAxMDA2NDQKLS0tLSBhL2Nv bmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMzY0LDYgKzM2NCwxOSBAQCBBQ19B UkdfV0lUSChzeW5jLW1vZGUtYXBwcywKLSBBQ19ERUZJTkVfVU5RVU9URUQoU1lOQ19NT0RFX0FQ UFMsICIkU1lOQ19NT0RFX0FQUFMiLAotICAgICBbRW5iYWxlIHN5bmMgbW9kZSBpbiB0aG9zZSBh cHBsaWNhdGlvbnNdKQotIAotKyMgb3B0aW9uIGZvciBlbmFibGUgc3Vycm91bmRpbmctdGV4dAot K0FDX0FSR19FTkFCTEUoc3Vycm91bmRpbmctdGV4dCwKLSsgICAgQVNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLXN1cnJvdW5kaW5nLXRleHRdLAotKyAgICAgICAgW0VuYWJsZSBzdXJyb3VuZGluZy10 ZXh0IHN1cHBvcnRdKSwKLSsgICAgW2VuYWJsZV9zdXJyb3VuZGluZ190ZXh0PSRlbmFibGV2YWxd LAotKyAgICBbZW5hYmxlX3N1cnJvdW5kaW5nX3RleHQ9bm9dCi0rKQotK2lmIHRlc3QgeCIkZW5h YmxlX3N1cnJvdW5kaW5nX3RleHQiID0geCJ5ZXMiOyB0aGVuCi0rICAgIEFDX0RFRklORShFTkFC TEVfU1VSUk9VTkRJTkcsIFRSVUUsIFtFbmFibGUgc3Vycm91bmRpbmctdGV4dCBzdXBwb3J0XSkK LStlbHNlCi0rICAgIGVuYWJsZV9zdXJyb3VuZGluZ190ZXh0PSJubyAoZGlzYWJsZWQsIHVzZSAt LWVuYWJsZS1zdXJyb3VuZGluZy10ZXh0IHRvIGVuYWJsZSkiCi0rZmkKLSsKLSAjIGNoZWNrIGlz by1jb2RlcwotIFBLR19DSEVDS19NT0RVTEVTKElTT0NPREVTLCBbCi0gICAgIGlzby1jb2Rlcwot QEAgLTQzNSw1ICs0NDgsNiBAQCBCdWlsZCBvcHRpb25zOgotICAgRW5hYmxlIGtleSBzbm9vcGVy ICAgICAgICAkZW5hYmxlX2tleV9zbm9vcGVyCi0gICBTeW5jIG1vZGUgcmVnZXhlcyAgICAgICAg ICIkU1lOQ19NT0RFX0FQUFMiCi0gICBObyBzbm9vcGVyIHJlZ2V4ZXMgICAgICAgICIkTk9fU05P T1BFUl9BUFBTIgotKyAgRW5hYmxlIHN1cnJvdW5kaW5nLXRleHQgICAkZW5hYmxlX3N1cnJvdW5k aW5nX3RleHQKLSBdKQotIAotZGlmZiAtLWdpdCBhL2lidXMvZW5naW5lLnB5IGIvaWJ1cy9lbmdp bmUucHkKLWluZGV4IGIxZGYyZmUuLmVjNDJmYTQgMTAwNjQ0Ci0tLS0gYS9pYnVzL2VuZ2luZS5w eQotKysrIGIvaWJ1cy9lbmdpbmUucHkKLUBAIC00Niw2ICs0Niw5IEBAIGNsYXNzIEVuZ2luZUJh c2Uob2JqZWN0Lk9iamVjdCk6Ci0gICAgIGRlZiBzZXRfY3Vyc29yX2xvY2F0aW9uKHNlbGYsIHgs IHksIHcsIGgpOgotICAgICAgICAgcGFzcwotIAotKyAgICBkZWYgc2V0X3N1cnJvdW5kaW5nX3Rl eHQoc2VsZiwgdGV4dCwgY3Vyc29yX2luZGV4KToKLSsgICAgICAgIHBhc3MKLSsKLSAgICAgZGVm IHNldF9jYXBhYmlsaXRpZXMoc2VsZiwgY2FwKToKLSAgICAgICAgIHBhc3MKLSAKLUBAIC0xNjMs NiArMTY2LDkgQEAgY2xhc3MgRW5naW5lUHJveHkoaW50ZXJmYWNlLklFbmdpbmUpOgotICAgICBk ZWYgU2V0Q3Vyc29yTG9jYXRpb24oc2VsZiwgeCwgeSwgdywgaCk6Ci0gICAgICAgICByZXR1cm4g c2VsZi5fX2VuZ2luZS5zZXRfY3Vyc29yX2xvY2F0aW9uKHgsIHksIHcsIGgpCi0gCi0rICAgIGRl ZiBTZXRTdXJyb3VuZGluZ1RleHQoc2VsZiwgdGV4dCwgY3Vyc29yX2luZGV4KToKLSsgICAgICAg IHJldHVybiBzZWxmLl9fZW5naW5lLnNldF9zdXJyb3VuZGluZ190ZXh0KHRleHQsIGN1cnNvcl9p bmRleCkKLSsKLSAgICAgZGVmIFNldENhcGFiaWxpdGllcyhzZWxmLCBjYXBzKToKLSAgICAgICAg IHJldHVybiBzZWxmLl9fZW5naW5lLnNldF9jYXBhYmlsaXRpZXMoY2FwcykKLSAKLWRpZmYgLS1n aXQgYS9pYnVzL2ludGVyZmFjZS9pZW5naW5lLnB5IGIvaWJ1cy9pbnRlcmZhY2UvaWVuZ2luZS5w eQotaW5kZXggMjM4NmMwZi4uNWRiMjAxMiAxMDA2NDQKLS0tLSBhL2lidXMvaW50ZXJmYWNlL2ll bmdpbmUucHkKLSsrKyBiL2lidXMvaW50ZXJmYWNlL2llbmdpbmUucHkKLUBAIC01MCw2ICs1MCw5 IEBAIGNsYXNzIElFbmdpbmUoZGJ1cy5zZXJ2aWNlLk9iamVjdCk6Ci0gICAgIEBtZXRob2QoaW5f c2lnbmF0dXJlPSJpaWlpIikKLSAgICAgZGVmIFNldEN1cnNvckxvY2F0aW9uKHNlbGYsIHgsIHks IHcsIGgpOiBwYXNzCi0gCi0rICAgIEBtZXRob2QoaW5fc2lnbmF0dXJlPSJ2dSIpCi0rICAgIGRl ZiBTZXRTdXJyb3VuZGluZ1RleHQoc2VsZiwgdGV4dCwgY3Vyc29yX2luZGV4KTogcGFzcwotKwot ICAgICBAbWV0aG9kKGluX3NpZ25hdHVyZT0idSIpCi0gICAgIGRlZiBTZXRDYXBhYmlsaXRpZXMo c2VsZiwgY2FwKTogcGFzcwotIAotZGlmZiAtLWdpdCBhL2lidXMvaW50ZXJmYWNlL2lpbnB1dGNv bnRleHQucHkgYi9pYnVzL2ludGVyZmFjZS9paW5wdXRjb250ZXh0LnB5Ci1pbmRleCA4OWY2ZGJk Li5iYjI1YzVhIDEwMDY0NAotLS0tIGEvaWJ1cy9pbnRlcmZhY2UvaWlucHV0Y29udGV4dC5weQot KysrIGIvaWJ1cy9pbnRlcmZhY2UvaWlucHV0Y29udGV4dC5weQotQEAgLTQ5LDYgKzQ5LDkgQEAg Y2xhc3MgSUlucHV0Q29udGV4dChkYnVzLnNlcnZpY2UuT2JqZWN0KToKLSAgICAgQG1ldGhvZChp bl9zaWduYXR1cmU9ImlpaWkiKQotICAgICBkZWYgU2V0Q3Vyc29yTG9jYXRpb24oc2VsZiwgeCwg eSwgdywgaCk6IHBhc3MKLSAKLSsgICAgQG1ldGhvZChpbl9zaWduYXR1cmU9InZ1IikKLSsgICAg ZGVmIFNldFN1cnJvdW5kaW5nVGV4dChzZWxmLCB0ZXh0LCBjdXJzb3JfaW5kZXgpOiBwYXNzCi0r Ci0gICAgIEBtZXRob2QoKQotICAgICBkZWYgRm9jdXNJbihzZWxmKTogcGFzcwotIAotQEAgLTEz Nyw0ICsxNDAsNiBAQCBjbGFzcyBJSW5wdXRDb250ZXh0KGRidXMuc2VydmljZS5PYmplY3QpOgot ICAgICBAc2lnbmFsKHNpZ25hdHVyZT0idiIpCi0gICAgIGRlZiBVcGRhdGVQcm9wZXJ0eShzZWxm LCBwcm9wKTogcGFzcwotIAotKyAgICBAc2lnbmFsKCkKLSsgICAgZGVmIEVuZ2luZUNoYW5nZWQo c2VsZik6IHBhc3MKLSAKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZS5jIGIvc3JjL2lidXNl bmdpbmUuYwotaW5kZXggNTE5ZDdjYS4uZmMxMjlhMiAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzZW5n aW5lLmMKLSsrKyBiL3NyYy9pYnVzZW5naW5lLmMKLUBAIC00NSw2ICs0NSw3IEBAIGVudW0gewot ICAgICBQUk9QRVJUWV9TSE9XLAotICAgICBQUk9QRVJUWV9ISURFLAotICAgICBDQU5ESURBVEVf Q0xJQ0tFRCwKLSsgICAgU0VUX1NVUlJPVU5ESU5HX1RFWFQsCi0gICAgIExBU1RfU0lHTkFMLAot IH07Ci0gCi1AQCAtNTgsMTAgKzU5LDE1IEBAIGVudW0gewotIHN0cnVjdCBfSUJ1c0VuZ2luZVBy aXZhdGUgewotICAgICBnY2hhciAqZW5naW5lX25hbWU7Ci0gICAgIEdEQnVzQ29ubmVjdGlvbiAq Y29ubmVjdGlvbjsKLSsKLSsgICAgSUJ1c1RleHQgKnN1cnJvdW5kaW5nX3RleHQ7Ci0rICAgIGd1 aW50IHN1cnJvdW5kaW5nX2N1cnNvcl9wb3M7Ci0gfTsKLSAKLSBzdGF0aWMgZ3VpbnQgICAgICAg ICAgICBlbmdpbmVfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAgfTsKLSAKLStzdGF0aWMgSUJ1 c1RleHQgKnRleHRfZW1wdHkgPSBOVUxMOwotKwotIC8qIGZ1bmN0aW9ucyBwcm90b3R5cGUgKi8K LSBzdGF0aWMgdm9pZCAgICAgIGlidXNfZW5naW5lX2Rlc3Ryb3kgICAgICAgICAoSUJ1c0VuZ2lu ZSAgICAgICAgICplbmdpbmUpOwotIHN0YXRpYyB2b2lkICAgICAgaWJ1c19lbmdpbmVfc2V0X3By b3BlcnR5ICAgIChJQnVzRW5naW5lICAgICAgICAgKmVuZ2luZSwKLUBAIC0xMzUsNiArMTQxLDEw IEBAIHN0YXRpYyB2b2lkICAgICAgaWJ1c19lbmdpbmVfcHJvcGVydHlfc2hvdyAgIChJQnVzRW5n aW5lICAgICAgICAgKmVuZ2luZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICpwcm9wX25hbWUpOwotIHN0YXRpYyB2b2lk ICAgICAgaWJ1c19lbmdpbmVfcHJvcGVydHlfaGlkZSAgIChJQnVzRW5naW5lICAgICAgICAgKmVu Z2luZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2NoYXIgICAgICAgICpwcm9wX25hbWUpOwotK3N0YXRpYyB2b2lkICAgICAgaWJ1c19lbmdp bmVfc2V0X3N1cnJvdW5kaW5nX3RleHQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChJQnVzRW5naW5lICAgICAgICAgKmVuZ2luZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAgICAgKnRleHQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAg ICAgICAgICAgICBjdXJzb3JfcG9zKTsKLSBzdGF0aWMgdm9pZCAgICAgIGlidXNfZW5naW5lX2Vt aXRfc2lnbmFsICAgICAoSUJ1c0VuZ2luZSAgICAgICAgICplbmdpbmUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAqc2ln bmFsX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdWYXJpYW50ICAgICAgICAgICAqcGFyYW1ldGVycyk7Ci1AQCAtMTg1LDYgKzE5NSwxMCBAQCBz dGF0aWMgY29uc3QgZ2NoYXIgaW50cm9zcGVjdGlvbl94bWxbXSA9Ci0gICAgICIgICAgPG1ldGhv ZCBuYW1lPSdQYWdlRG93bicgLz4iCi0gICAgICIgICAgPG1ldGhvZCBuYW1lPSdDdXJzb3JVcCcg Lz4iCi0gICAgICIgICAgPG1ldGhvZCBuYW1lPSdDdXJzb3JEb3duJyAvPiIKLSsgICAgIiAgICA8 bWV0aG9kIG5hbWU9J1NldFN1cnJvdW5kaW5nVGV4dCc+IgotKyAgICAiICAgICAgPGFyZyBkaXJl Y3Rpb249J2luJyAgdHlwZT0ndicgbmFtZT0ndGV4dCcgLz4iCi0rICAgICIgICAgICA8YXJnIGRp cmVjdGlvbj0naW4nICB0eXBlPSd1JyBuYW1lPSdjdXJzb3JfcG9zJyAvPiIKLSsgICAgIiAgICA8 L21ldGhvZD4iCi0gICAgIC8qIEZJWE1FIHNpZ25hbHMgKi8KLSAgICAgIiAgICA8c2lnbmFsIG5h bWU9J0NvbW1pdFRleHQnPiIKLSAgICAgIiAgICAgIDxhcmcgdHlwZT0ndicgbmFtZT0ndGV4dCcg Lz4iCi1AQCAtMjUwLDYgKzI2NCw3IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdp bmVDbGFzcyAqY2xhc3MpCi0gICAgIGNsYXNzLT5wcm9wZXJ0eV9oaWRlICAgICAgICA9IGlidXNf ZW5naW5lX3Byb3BlcnR5X2hpZGU7Ci0gICAgIGNsYXNzLT5zZXRfY3Vyc29yX2xvY2F0aW9uICA9 IGlidXNfZW5naW5lX3NldF9jdXJzb3JfbG9jYXRpb247Ci0gICAgIGNsYXNzLT5zZXRfY2FwYWJp bGl0aWVzICAgICA9IGlidXNfZW5naW5lX3NldF9jYXBhYmlsaXRpZXM7Ci0rICAgIGNsYXNzLT5z ZXRfc3Vycm91bmRpbmdfdGV4dCA9IGlidXNfZW5naW5lX3NldF9zdXJyb3VuZGluZ190ZXh0Owot IAotICAgICAvKiBpbnN0YWxsIHByb3BlcnRpZXMgKi8KLSAgICAgLyoqCi1AQCAtNjE2LDEyICs2 MzEsMzkgQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFzcykK LSAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKLSAKLSAgICAgZ190eXBlX2NsYXNzX2FkZF9w cml2YXRlIChjbGFzcywgc2l6ZW9mIChJQnVzRW5naW5lUHJpdmF0ZSkpOwotKwotKyAgICAvKioK LSsgICAgICogSUJ1c0VuZ2luZTo6c2V0LXN1cnJvdW5kaW5nLXRleHQ6Ci0rICAgICAqIEBlbmdp bmU6IEFuIElCdXNFbmdpbmUuCi0rICAgICAqCi0rICAgICAqIEVtaXR0ZWQgd2hlbiBhIHN1cnJv dW5kaW5nIHRleHQgaXMgc2V0LgotKyAgICAgKiBJbXBsZW1lbnQgdGhlIG1lbWJlciBmdW5jdGlv biBzZXRfc3Vycm91bmRpbmdfdGV4dCgpIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhp cyBzaWduYWwuCi0rICAgICAqCi0rICAgICAqIDxub3RlPjxwYXJhPkFyZ3VtZW50IEB1c2VyX2Rh dGEgaXMgaWdub3JlZCBpbiB0aGlzIGZ1bmN0aW9uLjwvcGFyYT48L25vdGU+Ci0rICAgICAqLwot KyAgICBlbmdpbmVfc2lnbmFsc1tTRVRfU1VSUk9VTkRJTkdfVEVYVF0gPQotKyAgICAgICAgZ19z aWduYWxfbmV3IChJXygic2V0LXN1cnJvdW5kaW5nLXRleHQiKSwKLSsgICAgICAgICAgICBHX1RZ UEVfRlJPTV9DTEFTUyAoZ29iamVjdF9jbGFzcyksCi0rICAgICAgICAgICAgR19TSUdOQUxfUlVO X0xBU1QsCi0rICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChJQnVzRW5naW5lQ2xhc3MsIHNl dF9zdXJyb3VuZGluZ190ZXh0KSwKLSsgICAgICAgICAgICBOVUxMLCBOVUxMLAotKyAgICAgICAg ICAgIF9pYnVzX21hcnNoYWxfVk9JRF9fT0JKRUNUX1VJTlQsCi0rICAgICAgICAgICAgR19UWVBF X05PTkUsCi0rICAgICAgICAgICAgMiwKLSsgICAgICAgICAgICBHX1RZUEVfT0JKRUNULAotKyAg ICAgICAgICAgIEdfVFlQRV9VSU5UKTsKLSsKLSsgICAgdGV4dF9lbXB0eSA9IGlidXNfdGV4dF9u ZXdfZnJvbV9zdGF0aWNfc3RyaW5nICgiIik7Ci0rICAgIGdfb2JqZWN0X3JlZl9zaW5rICh0ZXh0 X2VtcHR5KTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLSBpYnVzX2VuZ2luZV9pbml0IChJQnVzRW5n aW5lICplbmdpbmUpCi0gewotICAgICBlbmdpbmUtPnByaXYgPSBJQlVTX0VOR0lORV9HRVRfUFJJ VkFURSAoZW5naW5lKTsKLSsKLSsgICAgZW5naW5lLT5wcml2LT5zdXJyb3VuZGluZ190ZXh0ID0g Z19vYmplY3RfcmVmX3NpbmsgKHRleHRfZW1wdHkpOwotKyAgICBlbmdpbmUtPnByaXYtPnN1cnJv dW5kaW5nX2N1cnNvcl9wb3MgPSAwOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTYzMCw2ICs2 NzIsMTEgQEAgaWJ1c19lbmdpbmVfZGVzdHJveSAoSUJ1c0VuZ2luZSAqZW5naW5lKQotICAgICBn X2ZyZWUgKGVuZ2luZS0+cHJpdi0+ZW5naW5lX25hbWUpOwotICAgICBlbmdpbmUtPnByaXYtPmVu Z2luZV9uYW1lID0gTlVMTDsKLSAKLSsgICAgaWYgKGVuZ2luZS0+cHJpdi0+c3Vycm91bmRpbmdf dGV4dCkgewotKyAgICAgICAgZ19vYmplY3RfdW5yZWYgKGVuZ2luZS0+cHJpdi0+c3Vycm91bmRp bmdfdGV4dCk7Ci0rICAgICAgICBlbmdpbmUtPnByaXYtPnN1cnJvdW5kaW5nX3RleHQgPSBOVUxM OwotKyAgICB9Ci0rCi0gICAgIElCVVNfT0JKRUNUX0NMQVNTKGlidXNfZW5naW5lX3BhcmVudF9j bGFzcyktPmRlc3Ryb3kgKElCVVNfT0JKRUNUIChlbmdpbmUpKTsKLSB9Ci0gCi1AQCAtODAxLDYg Kzg0OCwyNSBAQCBpYnVzX2VuZ2luZV9zZXJ2aWNlX21ldGhvZF9jYWxsIChJQnVzU2VydmljZSAg ICAgICAgICAgKnNlcnZpY2UsCi0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLSsgICAgaWYg KGdfc3RyY21wMCAobWV0aG9kX25hbWUsICJTZXRTdXJyb3VuZGluZ1RleHQiKSA9PSAwKSB7Ci0r ICAgICAgICBHVmFyaWFudCAqdmFyaWFudCA9IE5VTEw7Ci0rICAgICAgICBJQnVzVGV4dCAqdGV4 dDsKLSsgICAgICAgIGd1aW50IGN1cnNvcl9wb3M7Ci0rCi0rICAgICAgICBnX3ZhcmlhbnRfZ2V0 IChwYXJhbWV0ZXJzLCAiKHZ1KSIsICZ2YXJpYW50LCAmY3Vyc29yX3Bvcyk7Ci0rICAgICAgICB0 ZXh0ID0gSUJVU19URVhUIChpYnVzX3NlcmlhbGl6YWJsZV9kZXNlcmlhbGl6ZSAodmFyaWFudCkp OwotKyAgICAgICAgZ192YXJpYW50X3VucmVmICh2YXJpYW50KTsKLSsKLSsgICAgICAgIGdfc2ln bmFsX2VtaXQgKGVuZ2luZSwgZW5naW5lX3NpZ25hbHNbU0VUX1NVUlJPVU5ESU5HX1RFWFRdLCAw LAotKyAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAg IGN1cnNvcl9wb3MpOwotKyAgICAgICAgaWYgKGdfb2JqZWN0X2lzX2Zsb2F0aW5nICh0ZXh0KSkg ewotKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmICh0ZXh0KTsKLSsgICAgICAgIH0KLSsgICAg ICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sIE5V TEwpOwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0gICAgIC8qIHNob3VsZCBub3QgYmUg cmVhY2hlZCAqLwotICAgICBnX3JldHVybl9pZl9yZWFjaGVkICgpOwotIH0KLUBAIC05NTUsNiAr MTAyMSwyNiBAQCBpYnVzX2VuZ2luZV9wcm9wZXJ0eV9oaWRlIChJQnVzRW5naW5lICplbmdpbmUs IGNvbnN0IGdjaGFyICpwcm9wX25hbWUpCi0gfQotIAotIHN0YXRpYyB2b2lkCi0raWJ1c19lbmdp bmVfc2V0X3N1cnJvdW5kaW5nX3RleHQgKElCdXNFbmdpbmUgKmVuZ2luZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c1RleHQgICAqdGV4dCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgY3Vyc29yX3BvcykKLSt7Ci0rICAgIGdf YXNzZXJ0IChJQlVTX0lTX0VOR0lORSAoZW5naW5lKSk7Ci0rCi0rICAgIElCdXNFbmdpbmVQcml2 YXRlICpwcml2OwotKwotKyAgICBwcml2ID0gSUJVU19FTkdJTkVfR0VUX1BSSVZBVEUgKGVuZ2lu ZSk7Ci0rCi0rICAgIGlmIChwcml2LT5zdXJyb3VuZGluZ190ZXh0KSB7Ci0rICAgICAgICBnX29i amVjdF91bnJlZiAocHJpdi0+c3Vycm91bmRpbmdfdGV4dCk7Ci0rICAgIH0KLSsKLSsgICAgcHJp di0+c3Vycm91bmRpbmdfdGV4dCA9IChJQnVzVGV4dCAqKSBnX29iamVjdF9yZWZfc2luayAodGV4 dCA/IHRleHQgOiB0ZXh0X2VtcHR5KTsKLSsgICAgcHJpdi0+c3Vycm91bmRpbmdfY3Vyc29yX3Bv cyA9IGN1cnNvcl9wb3M7Ci0rICAgIC8vIGdfZGVidWcgKCJzZXQtc3Vycm91bmRpbmctdGV4dCAo JyVzJywgJWQpIiwgdGV4dC0+dGV4dCwgY3Vyc29yX3Bvcyk7Ci0rfQotKwotK3N0YXRpYyB2b2lk Ci0gaWJ1c19lbmdpbmVfZW1pdF9zaWduYWwgKElCdXNFbmdpbmUgICplbmdpbmUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzaWduYWxfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAgKnBhcmFtZXRlcnMpCi1AQCAtMTEzOCwxNCArMTIy NCw2NiBAQCB2b2lkIGlidXNfZW5naW5lX2RlbGV0ZV9zdXJyb3VuZGluZ190ZXh0IChJQnVzRW5n aW5lICAgICAgKmVuZ2luZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnaW50ICAgICAgICAgICAgIG9mZnNldF9mcm9tX2N1cnNvciwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgIG5jaGFycykKLSB7 Ci0rICAgIElCdXNFbmdpbmVQcml2YXRlICpwcml2OwotKwotICAgICBnX3JldHVybl9pZl9mYWls IChJQlVTX0lTX0VOR0lORSAoZW5naW5lKSk7Ci0gCi0rICAgIHByaXYgPSBJQlVTX0VOR0lORV9H RVRfUFJJVkFURSAoZW5naW5lKTsKLSsKLSsgICAgLyogVXBkYXRlIHN1cnJvdW5kaW5nLXRleHQg Y2FjaGUuICBUaGlzIGlzIG5lY2Vzc2FyeSBzaW5jZSBzb21lCi0rICAgICAgIGVuZ2luZXMgY2Fs bCBpYnVzX2VuZ2luZV9nZXRfc3Vycm91bmRpbmdfdGV4dCgpIGltbWVkaWF0ZWx5Ci0rICAgICAg IGFmdGVyIGlidXNfZW5naW5lX2RlbGV0ZV9zdXJyb3VuZGluZ190ZXh0KCkuICovCi0rICAgIGlm IChwcml2LT5zdXJyb3VuZGluZ190ZXh0KSB7Ci0rICAgICAgICBJQnVzVGV4dCAqdGV4dDsKLSsg ICAgICAgIGdsb25nIGN1cnNvcl9wb3MsIGxlbjsKLSsKLSsgICAgICAgIGN1cnNvcl9wb3MgPSBw cml2LT5zdXJyb3VuZGluZ19jdXJzb3JfcG9zICsgb2Zmc2V0X2Zyb21fY3Vyc29yOwotKyAgICAg ICAgbGVuID0gaWJ1c190ZXh0X2dldF9sZW5ndGggKHByaXYtPnN1cnJvdW5kaW5nX3RleHQpOwot KyAgICAgICAgaWYgKGN1cnNvcl9wb3MgPj0gMCAmJiBsZW4gLSBjdXJzb3JfcG9zID49IG5jaGFy cykgewotKyAgICAgICAgICAgIGd1bmljaGFyICp1Y3M7Ci0rCi0rICAgICAgICAgICAgdWNzID0g Z191dGY4X3RvX3VjczRfZmFzdCAocHJpdi0+c3Vycm91bmRpbmdfdGV4dC0+dGV4dCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSsgICAgICAgICAgICBtZW1tb3ZlICgmdWNz W2N1cnNvcl9wb3NdLAotKyAgICAgICAgICAgICAgICAgICAgICZ1Y3NbY3Vyc29yX3BvcyArIG5j aGFyc10sCi0rICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGd1bmljaGFyKSAqIChsZW4gLSBj dXJzb3JfcG9zIC0gbmNoYXJzKSk7Ci0rICAgICAgICAgICAgdWNzW2xlbiAtIG5jaGFyc10gPSAw OwotKyAgICAgICAgICAgIHRleHQgPSBpYnVzX3RleHRfbmV3X2Zyb21fdWNzNCAodWNzKTsKLSsg ICAgICAgICAgICBnX2ZyZWUgKHVjcyk7Ci0rICAgICAgICAgICAgcHJpdi0+c3Vycm91bmRpbmdf Y3Vyc29yX3BvcyA9IGN1cnNvcl9wb3M7Ci0rICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAg IHRleHQgPSB0ZXh0X2VtcHR5OwotKyAgICAgICAgICAgIHByaXYtPnN1cnJvdW5kaW5nX2N1cnNv cl9wb3MgPSAwOwotKyAgICAgICAgfQotKwotKyAgICAgICAgZ19vYmplY3RfdW5yZWYgKHByaXYt PnN1cnJvdW5kaW5nX3RleHQpOwotKyAgICAgICAgcHJpdi0+c3Vycm91bmRpbmdfdGV4dCA9IGdf b2JqZWN0X3JlZl9zaW5rICh0ZXh0KTsKLSsgICAgfQotKwotICAgICBpYnVzX2VuZ2luZV9lbWl0 X3NpZ25hbCAoZW5naW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlbGV0ZVN1 cnJvdW5kaW5nVGV4dCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRf bmV3ICgiKGl1KSIsIG9mZnNldF9mcm9tX2N1cnNvciwgbmNoYXJzKSk7Ci0gfQotIAotIHZvaWQK LStpYnVzX2VuZ2luZV9nZXRfc3Vycm91bmRpbmdfdGV4dCAoSUJ1c0VuZ2luZSAgICplbmdpbmUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNUZXh0ICAgICoqdGV4dCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICpjdXJzb3Jf cG9zKQotK3sKLSsgICAgSUJ1c0VuZ2luZVByaXZhdGUgKnByaXY7Ci0rCi0rICAgIGdfcmV0dXJu X2lmX2ZhaWwgKElCVVNfSVNfRU5HSU5FIChlbmdpbmUpKTsKLSsgICAgZ19yZXR1cm5faWZfZmFp bCAodGV4dCAhPSBOVUxMKTsKLSsgICAgZ19yZXR1cm5faWZfZmFpbCAoY3Vyc29yX3BvcyAhPSBO VUxMKTsKLSsKLSsgICAgcHJpdiA9IElCVVNfRU5HSU5FX0dFVF9QUklWQVRFIChlbmdpbmUpOwot KwotKyAgICAqdGV4dCA9IGdfb2JqZWN0X3JlZiAocHJpdi0+c3Vycm91bmRpbmdfdGV4dCk7Ci0r ICAgICpjdXJzb3JfcG9zID0gcHJpdi0+c3Vycm91bmRpbmdfY3Vyc29yX3BvczsKLSt9Ci0rCi0r dm9pZAotIGlidXNfZW5naW5lX3JlZ2lzdGVyX3Byb3BlcnRpZXMgKElCdXNFbmdpbmUgICAqZW5n aW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNQcm9wTGlzdCAqcHJv cF9saXN0KQotIHsKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZS5oIGIvc3JjL2lidXNlbmdp bmUuaAotaW5kZXggNDZkMGEwNC4uYTVmNWFlYSAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzZW5naW5l LmgKLSsrKyBiL3NyYy9pYnVzZW5naW5lLmgKLUBAIC0xMzYsMTAgKzEzNiwxNCBAQCBzdHJ1Y3Qg X0lCdXNFbmdpbmVDbGFzcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGd1aW50ICAgICAgICAgICBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3VpbnQgICAgICAgICAgIGJ1dHRvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgIHN0YXRlKTsKLSsgICAgdm9pZCAgICAgICAgKCog c2V0X3N1cnJvdW5kaW5nX3RleHQpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKElCdXNFbmdpbmUgICAgICplbmdpbmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElCdXNUZXh0ICAgICAgICp0ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWludCAgICAgICAgICAgY3Vyc29yX2luZGV4KTsKICAKLSAgICAgLyo8 IHByaXZhdGUgPiovCi0gICAgIC8qIHBhZGRpbmcgKi8KLS0gICAgZ3BvaW50ZXIgcGR1bW15Wzhd OwotKyAgICBncG9pbnRlciBwZHVtbXlbN107Ci0gfTsKLSAKLSBHVHlwZSAgICAgICAgaWJ1c19l bmdpbmVfZ2V0X3R5cGUgICAgICAgKHZvaWQpOwotQEAgLTM5NCw2ICszOTgsMjEgQEAgdm9pZCBp YnVzX2VuZ2luZV9kZWxldGVfc3Vycm91bmRpbmdfdGV4dChJQnVzRW5naW5lICAgICAgICAgKmVu Z2luZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAg ICAgICAgICAgICAgbmNoYXJzKTsKLSAKLSAvKioKLSsgKiBpYnVzX2VuZ2luZV9nZXRfc3Vycm91 bmRpbmdfdGV4dDoKLSsgKiBAZW5naW5lOiBBbiBJQnVzRW5naW5lLgotKyAqIEB0ZXh0OiBMb2Nh dGlvbiB0byBzdG9yZSBzdXJyb3VuZGluZyB0ZXh0LgotKyAqIEBjdXJzb3JfcG9zOiBDdXJzb3Ig cG9zaXRpb24gaW4gY2hhcmFjdGVycyBpbiBAdGV4dC4KLSsgKgotKyAqIEdldCBzdXJyb3VuZGlu ZyB0ZXh0LgotKyAqCi0rICogQHNlZV9hbHNvICNJQnVzRW5naW5lOjpzZXQtc3Vycm91bmRpbmct dGV4dAotKyAqLwotK3ZvaWQgaWJ1c19lbmdpbmVfZ2V0X3N1cnJvdW5kaW5nX3RleHQoSUJ1c0Vu Z2luZSAgICAgICAgICplbmdpbmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJQnVzVGV4dCAgICAgICAgICAqKnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgKmN1cnNvcl9wb3MpOwotKwotKwotKy8q KgotICAqIGlidXNfZW5naW5lX2dldF9uYW1lOgotICAqIEBlbmdpbmU6IEFuIElCdXNFbmdpbmUu Ci0gICogQHJldHVybnM6IE5hbWUgb2YgSUJ1c0VuZ2luZS4KKyAgICAgLyogcmV0cmlldmUgdGhl IGluaXRpYWwgc3Vycm91bmRpbmctdGV4dCAocmVnYXJkbGVzcyBvZiB3aGV0aGVyCisgICAgICAq IHRoZSBjdXJyZW50IElCdXMgZW5naW5lIG5lZWRzIHN1cnJvdW5kaW5nLXRleHQpICovCiBkaWZm IC0tZ2l0IGEvc3JjL2lidXNlbmdpbmVkZXNjLmMgYi9zcmMvaWJ1c2VuZ2luZWRlc2MuYwogaW5k ZXggY2E1ZWY2MC4uOTU2Y2U3MyAxMDA2NDQKIC0tLSBhL3NyYy9pYnVzZW5naW5lZGVzYy5jCkBA IC0xMTQ1LDIwNCArMzcwLDYgQEAgaW5kZXggOTcxOGIxNS4uMjA5ZDQ2MCAxMDA2NDQKICAgKiBp YnVzX2VuZ2luZV9kZXNjX291dHB1dDoKICAgKiBAaW5mbzogQW4gSUJ1c0VuZ2luZURlc2MKICAg KiBAb3V0cHV0OiBYTUwtZm9ybWF0dGVkIElucHV0IG1ldGhvZCBlbmdpbmUgZGVzY3JpcHRpb24u Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNpbnB1dGNvbnRleHQuYyBiL3NyYy9pYnVzaW5wdXRjb250 ZXh0LmMKLWluZGV4IGY4ZjU4NDguLjk1NTZkZjMgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2lucHV0 Y29udGV4dC5jCi0rKysgYi9zcmMvaWJ1c2lucHV0Y29udGV4dC5jCi1AQCAtMjgsNiArMjgsOSBA QAotICNpbmNsdWRlICJpYnVzbG9va3VwdGFibGUuaCIKLSAjaW5jbHVkZSAiaWJ1c3Byb3BsaXN0 LmgiCi0gCi0rI2RlZmluZSBJQlVTX0lOUFVUX0NPTlRFWFRfR0VUX1BSSVZBVEUobykgIFwKLSsg ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9JTlBVVF9DT05U RVhULCBJQnVzSW5wdXRDb250ZXh0UHJpdmF0ZSkpCi0rCi0gZW51bSB7Ci0gICAgIEVOQUJMRUQs Ci0gICAgIERJU0FCTEVELAotQEAgLTQ5LDEyICs1MiwyNSBAQCBlbnVtIHsKLSAgICAgQ1VSU09S X0RPV05fTE9PS1VQX1RBQkxFLAotICAgICBSRUdJU1RFUl9QUk9QRVJUSUVTLAotICAgICBVUERB VEVfUFJPUEVSVFksCi0rICAgIEVOR0lORV9DSEFOR0VELAotICAgICBMQVNUX1NJR05BTCwKLSB9 OwotIAotKy8qIEJ1c0lucHV0Q29udGV4dFByaXZhdGUgKi8KLStzdHJ1Y3QgX0lCdXNJbnB1dENv bnRleHRQcml2YXRlIHsKLSsgICAgLyogc3Vycm91bmRpbmcgdGV4dCAqLwotKyAgICBJQnVzVGV4 dCAqc3Vycm91bmRpbmdfdGV4dDsKLSsgICAgZ3VpbnQgICAgIHN1cnJvdW5kaW5nX2N1cnNvcl9w b3M7Ci0rfTsKLSsKLSt0eXBlZGVmIHN0cnVjdCBfSUJ1c0lucHV0Q29udGV4dFByaXZhdGUgSUJ1 c0lucHV0Q29udGV4dFByaXZhdGU7Ci0rCi0gc3RhdGljIGd1aW50ICAgICAgICAgICAgY29udGV4 dF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OwotIAotK3N0YXRpYyBJQnVzVGV4dCAqdGV4 dF9lbXB0eSA9IE5VTEw7Ci0rCi0gLyogZnVuY3Rpb25zIHByb3RvdHlwZSAqLwotK3N0YXRpYyB2 b2lkICAgICBpYnVzX2lucHV0X2NvbnRleHRfcmVhbF9kZXN0cm95IChJQnVzUHJveHkgICAgICAg ICAgICAgICpjb250ZXh0KTsKLSBzdGF0aWMgdm9pZCAgICAgaWJ1c19pbnB1dF9jb250ZXh0X2df c2lnbmFsICAgICAoR0RCdXNQcm94eSAgICAgICAgICAgICAqcHJveHksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAg ICAgKnNlbmRlcl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICpzaWduYWxfbmFtZSwKLUBAIC02NSw4 ICs4MSwxMyBAQCBHX0RFRklORV9UWVBFIChJQnVzSW5wdXRDb250ZXh0LCBpYnVzX2lucHV0X2Nv bnRleHQsIElCVVNfVFlQRV9QUk9YWSkKLSBzdGF0aWMgdm9pZAotIGlidXNfaW5wdXRfY29udGV4 dF9jbGFzc19pbml0IChJQnVzSW5wdXRDb250ZXh0Q2xhc3MgKmNsYXNzKQotIHsKLSsgICAgSUJ1 c1Byb3h5Q2xhc3MgKmlidXNfcHJveHlfY2xhc3MgPSBJQlVTX1BST1hZX0NMQVNTIChjbGFzcyk7 Ci0gICAgIEdEQnVzUHJveHlDbGFzcyAqZ19kYnVzX3Byb3h5X2NsYXNzID0gR19EQlVTX1BST1hZ X0NMQVNTIChjbGFzcyk7Ci0gCi0rICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3Ms IHNpemVvZiAoSUJ1c0lucHV0Q29udGV4dFByaXZhdGUpKTsKLSsKLSsgICAgaWJ1c19wcm94eV9j bGFzcy0+ZGVzdHJveSA9IGlidXNfaW5wdXRfY29udGV4dF9yZWFsX2Rlc3Ryb3k7Ci0rCi0gICAg IGdfZGJ1c19wcm94eV9jbGFzcy0+Z19zaWduYWwgPSBpYnVzX2lucHV0X2NvbnRleHRfZ19zaWdu YWw7Ci0gCi0gICAgIC8qIGluc3RhbGwgc2lnbmFscyAqLwotQEAgLTEwMSw2ICsxMjIsMjEgQEAg aWJ1c19pbnB1dF9jb250ZXh0X2NsYXNzX2luaXQgKElCdXNJbnB1dENvbnRleHRDbGFzcyAqY2xh c3MpCi0gICAgICAgICAgICAgR19UWVBFX05PTkUsIDApOwotIAotICAgICAvKioKLSsgICAgICog SUJ1c0lucHV0Q29udGV4dDo6ZW5naW5lLWNoYW5nZWQ6Ci0rICAgICAqIEBjb250ZXh0OiBBbiBJ QnVzSW5wdXRDb250ZXh0LgotKyAgICAgKgotKyAgICAgKiBFbWl0dGVkIHdoZW4gYW4gSU1FIGlz IGNoYW5nZWQuCi0rICAgICAqLwotKyAgICBjb250ZXh0X3NpZ25hbHNbRU5HSU5FX0NIQU5HRURd ID0KLSsgICAgICAgIGdfc2lnbmFsX25ldyAoSV8oImVuZ2luZS1jaGFuZ2VkIiksCi0rICAgICAg ICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNzKSwKLSsgICAgICAgICAgICBHX1NJR05BTF9S VU5fTEFTVCwKLSsgICAgICAgICAgICAwLAotKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCi0rICAg ICAgICAgICAgX2lidXNfbWFyc2hhbF9WT0lEX19WT0lELAotKyAgICAgICAgICAgIEdfVFlQRV9O T05FLCAwKTsKLSsKLSsgICAgLyoqCi0gICAgICAqIElCdXNJbnB1dENvbnRleHQ6OmNvbW1pdC10 ZXh0OgotICAgICAgKiBAY29udGV4dDogQW4gSUJ1c0lucHV0Q29udGV4dC4KLSAgICAgICogQHRl eHQ6IFRleHQgdG8gYmUgY29tbWl0dGVkLgotQEAgLTQyOSwxMSArNDY1LDMzIEBAIGlidXNfaW5w dXRfY29udGV4dF9jbGFzc19pbml0IChJQnVzSW5wdXRDb250ZXh0Q2xhc3MgKmNsYXNzKQotICAg ICAgICAgICAgIEdfVFlQRV9OT05FLAotICAgICAgICAgICAgIDEsCi0gICAgICAgICAgICAgSUJV U19UWVBFX1BST1BFUlRZKTsKLSsKLSsgICAgdGV4dF9lbXB0eSA9IGlidXNfdGV4dF9uZXdfZnJv bV9zdGF0aWNfc3RyaW5nICgiIik7Ci0rICAgIGdfb2JqZWN0X3JlZl9zaW5rICh0ZXh0X2VtcHR5 KTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLSBpYnVzX2lucHV0X2NvbnRleHRfaW5pdCAoSUJ1c0lu cHV0Q29udGV4dCAqY29udGV4dCkKLSB7Ci0rICAgIElCdXNJbnB1dENvbnRleHRQcml2YXRlICpw cml2OwotKwotKyAgICBwcml2ID0gSUJVU19JTlBVVF9DT05URVhUX0dFVF9QUklWQVRFIChjb250 ZXh0KTsKLSsgICAgcHJpdi0+c3Vycm91bmRpbmdfdGV4dCA9IGdfb2JqZWN0X3JlZl9zaW5rICh0 ZXh0X2VtcHR5KTsKLSsgICAgcHJpdi0+c3Vycm91bmRpbmdfY3Vyc29yX3BvcyA9IDA7Ci0rfQot KwotK3N0YXRpYyB2b2lkCi0raWJ1c19pbnB1dF9jb250ZXh0X3JlYWxfZGVzdHJveSAoSUJ1c1By b3h5ICpjb250ZXh0KQotK3sKLSsgICAgSUJ1c0lucHV0Q29udGV4dFByaXZhdGUgKnByaXY7Ci0r ICAgIHByaXYgPSBJQlVTX0lOUFVUX0NPTlRFWFRfR0VUX1BSSVZBVEUgKElCVVNfSU5QVVRfQ09O VEVYVCAoY29udGV4dCkpOwotKwotKyAgICBpZiAocHJpdi0+c3Vycm91bmRpbmdfdGV4dCkgewot KyAgICAgICAgZ19vYmplY3RfdW5yZWYgKHByaXYtPnN1cnJvdW5kaW5nX3RleHQpOwotKyAgICAg ICAgcHJpdi0+c3Vycm91bmRpbmdfdGV4dCA9IE5VTEw7Ci0rICAgIH0KLSsKLSsgICAgSUJVU19Q Uk9YWV9DTEFTUyhpYnVzX2lucHV0X2NvbnRleHRfcGFyZW50X2NsYXNzKS0+ZGVzdHJveSAoY29u dGV4dCk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtNDYzLDYgKzUyMSw3IEBAIGlidXNfaW5w dXRfY29udGV4dF9nX3NpZ25hbCAoR0RCdXNQcm94eSAgKnByb3h5LAotICAgICAgICAgeyAiUGFn ZURvd25Mb29rdXBUYWJsZSIsICAgIFBBR0VfRE9XTl9MT09LVVBfVEFCTEUgICB9LAotICAgICAg ICAgeyAiQ3Vyc29yVXBMb29rdXBUYWJsZSIsICAgIENVUlNPUl9VUF9MT09LVVBfVEFCTEUgICB9 LAotICAgICAgICAgeyAiQ3Vyc29yRG93bkxvb2t1cFRhYmxlIiwgIENVUlNPUl9ET1dOX0xPT0tV UF9UQUJMRSB9LAotKyAgICAgICAgeyAiRW5naW5lQ2hhbmdlZCIsICAgICAgICAgIEVOR0lORV9D SEFOR0VEICAgICAgICAgICB9LAotICAgICB9OwotIAotICAgICBpZiAoZ19zdHJjbXAwIChzaWdu YWxfbmFtZSwgIkNvbW1pdFRleHQiKSA9PSAwKSB7Ci1AQCAtODQ4LDYgKzkwNywzOCBAQCBpYnVz X2lucHV0X2NvbnRleHRfcHJvcGVydHlfaGlkZSAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwK LSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0gfQotIAotK3ZvaWQKLStpYnVzX2lucHV0X2Nv bnRleHRfc2V0X3N1cnJvdW5kaW5nX3RleHQgKElCdXNJbnB1dENvbnRleHQgICAqY29udGV4dCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNUZXh0ICAgICAg ICAgICAqdGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1 aW50MzIgICAgICAgICAgICAgY3Vyc29yX3BvcykKLSt7Ci0rICAgIGdfYXNzZXJ0IChJQlVTX0lT X0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSsgICAgZ19hc3NlcnQgKElCVVNfSVNfVEVYVCAo dGV4dCkpOwotKwotKyAgICBJQnVzSW5wdXRDb250ZXh0UHJpdmF0ZSAqcHJpdjsKLSsgICAgcHJp diA9IElCVVNfSU5QVVRfQ09OVEVYVF9HRVRfUFJJVkFURSAoY29udGV4dCk7Ci0rCi0rICAgIGlm IChwcml2LT5zdXJyb3VuZGluZ190ZXh0ID09IE5VTEwgfHwKLSsgICAgICAgIGdfc3RyY21wMCAo dGV4dC0+dGV4dCwgcHJpdi0+c3Vycm91bmRpbmdfdGV4dC0+dGV4dCkgIT0gMCB8fAotKyAgICAg ICAgY3Vyc29yX3BvcyAhPSBwcml2LT5zdXJyb3VuZGluZ19jdXJzb3JfcG9zKSB7Ci0rICAgICAg ICBHVmFyaWFudCAqdmFyaWFudCA9IGlidXNfc2VyaWFsaXphYmxlX3NlcmlhbGl6ZSAoKElCdXNT ZXJpYWxpemFibGUgKil0ZXh0KTsKLSsgICAgICAgIGlmIChwcml2LT5zdXJyb3VuZGluZ190ZXh0 KQotKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmIChwcml2LT5zdXJyb3VuZGluZ190ZXh0KTsK LSsgICAgICAgIHByaXYtPnN1cnJvdW5kaW5nX3RleHQgPSAoSUJ1c1RleHQgKikgZ19vYmplY3Rf cmVmX3NpbmsgKHRleHQpOwotKyAgICAgICAgcHJpdi0+c3Vycm91bmRpbmdfY3Vyc29yX3BvcyA9 IGN1cnNvcl9wb3M7Ci0rCi0rICAgICAgICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkg KikgY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIlNldFN1cnJvdW5kaW5nVGV4 dCIsICAgICAgICAgICAgICAvKiBtZXRob2RfbmFtZSAqLwotKyAgICAgICAgICAgICAgICAgICAg ICAgICBnX3ZhcmlhbnRfbmV3ICgiKHZ1KSIsIHZhcmlhbnQsIGN1cnNvcl9wb3MpLCAvKiBwYXJh bWV0ZXJzICovCi0rICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05P TkUsICAgICAgICAgICAgLyogZmxhZ3MgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgLTEs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aW1lb3V0ICovCi0rICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2Fu Y2VsbGFibGUgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayAqLwotKyAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVzZXJfZGF0YSAqLwotKyAg ICAgICAgICAgICAgICAgICAgICAgICApOwotKyAgICB9Ci0rfQotKwotIGdib29sZWFuCi0gaWJ1 c19pbnB1dF9jb250ZXh0X2lzX2VuYWJsZWQgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0g ewotZGlmZiAtLWdpdCBhL3NyYy9pYnVzaW5wdXRjb250ZXh0LmggYi9zcmMvaWJ1c2lucHV0Y29u dGV4dC5oCi1pbmRleCA5NmZkMDBlLi4xZjhhZTg2IDEwMDY0NAotLS0tIGEvc3JjL2lidXNpbnB1 dGNvbnRleHQuaAotKysrIGIvc3JjL2lidXNpbnB1dGNvbnRleHQuaAotQEAgLTQxLDYgKzQxLDcg QEAKLSAKLSAjaW5jbHVkZSAiaWJ1c3Byb3h5LmgiCi0gI2luY2x1ZGUgImlidXNlbmdpbmVkZXNj LmgiCi0rI2luY2x1ZGUgImlidXN0ZXh0LmgiCi0gCi0gLyoKLSAgKiBUeXBlIG1hY3Jvcy4KLUBA IC0zMjQsNiArMzI1LDE2IEBAIElCdXNFbmdpbmVEZXNjCi0gdm9pZCAgICAgICAgIGlidXNfaW5w dXRfY29udGV4dF9zZXRfZW5naW5lICAoSUJ1c0lucHV0Q29udGV4dCAgICpjb250ZXh0LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAg ICAgICAqbmFtZSk7Ci0gCi0rLyoqCi0rICogaWJ1c19pbnB1dF9jb250ZXh0X3NldF9zdXJyb3Vu ZGluZ190ZXh0OgotKyAqIEBjb250ZXh0OiBBbiBJQnVzSW5wdXRDb250ZXh0LgotKyAqIEB0ZXh0 OiBBbiBJQnVzVGV4dCBzdXJyb3VuZGluZyB0aGUgY3VycmVudCBjdXJzb3Igb24gdGhlIGFwcGxp Y2F0aW9uLgotKyAqIEBjdXJzb3JfcG86IEN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGluIGNoYXJh Y3RlcnMgaW4gQHRleHQuCi0rKi8KLSt2b2lkICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3Nl dF9zdXJyb3VuZGluZ190ZXh0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoSUJ1c0lucHV0Q29udGV4dCAgICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNUZXh0ICAgICAgICAgICAqdGV4dCwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludDMyICAgICAg ICAgICAgIGN1cnNvcl9wb3MpOwotIAotIEdfRU5EX0RFQ0xTCi0gI2VuZGlmCi1kaWZmIC0tZ2l0 IGEvc3JjL2lidXNtYXJzaGFsZXJzLmxpc3QgYi9zcmMvaWJ1c21hcnNoYWxlcnMubGlzdAotaW5k ZXggNTE4NDI3OC4uNWRjN2ZjMiAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzbWFyc2hhbGVycy5saXN0 Ci0rKysgYi9zcmMvaWJ1c21hcnNoYWxlcnMubGlzdAotQEAgLTEzLDYgKzEzLDcgQEAgVk9JRDpJ TlQsSU5ULElOVCxJTlQKLSBWT0lEOlVJTlQsVUlOVAotIFZPSUQ6SU5ULFVJTlQKLSBWT0lEOlVJ TlQsVUlOVCxVSU5UCi0rVk9JRDpPQkpFQ1QsVUlOVAotIFZPSUQ6T0JKRUNULFVJTlQsQk9PTAot IFZPSUQ6T0JKRUNULFVJTlQsQk9PTCxVSU5UCi0gVk9JRDpPQkpFQ1QsQk9PTAogLS0gCi0xLjcu My4yCisxLjcuNC4yCiAKCmRpZmYgLS1naXQgYS9pYnVzLTUzMDcxMS1wcmVsb2FkLXN5cy5wYXRj aCBiL2lidXMtNTMwNzExLXByZWxvYWQtc3lzLnBhdGNoCmluZGV4IDlhNDkwNWIuLmIwNzFkNmUg MTAwNjQ0Ci0tLSBhL2lidXMtNTMwNzExLXByZWxvYWQtc3lzLnBhdGNoCisrKyBiL2lidXMtNTMw NzExLXByZWxvYWQtc3lzLnBhdGNoCkBAIC0zMCw3ICszMCw3IEBAIGRpZmYgLS1naXQgYS9idXMv aWJ1c2ltcGwuYyBiL2J1cy9pYnVzaW1wbC5jCiBpbmRleCA4ZDRlYzM2Li4wY2FhOGM3IDEwMDY0 NAogLS0tIGEvYnVzL2lidXNpbXBsLmMKICsrKyBiL2J1cy9pYnVzaW1wbC5jCi1AQCAtMTQ0LDYg KzE0NCw5IEBAIHN0YXRpYyB2b2lkICAgICBidXNfaWJ1c19pbXBsX3NldF9wcmV2aW91c19lbmdp bmUKK0BAIC0xNDQsNiArMTQ0LDkgQEAgc3RhdGljIHZvaWQgICAgIGJ1c19pYnVzX2ltcGxfc2V0 X3ByZXZpbwogIHN0YXRpYyB2b2lkICAgICBidXNfaWJ1c19pbXBsX3NldF9wcmVsb2FkX2VuZ2lu ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnVz SUJ1c0ltcGwgICAgICAgICppYnVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgKnZhbHVlKTsKQEAgLTQwLDcgKzQw LDcgQEAgaW5kZXggOGQ0ZWMzNi4uMGNhYThjNyAxMDA2NDQKICBzdGF0aWMgdm9pZCAgICAgYnVz X2lidXNfaW1wbF9zZXRfdXNlX3N5c19sYXlvdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoQnVzSUJ1c0ltcGwgICAgICAgICppYnVzLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAg ICAgICAgKnZhbHVlKTsKLUBAIC0yNzgsNiArMjgxLDE0MSBAQCBfcGFuZWxfZGVzdHJveV9jYiAo QnVzUGFuZWxQcm94eSAqcGFuZWwsCitAQCAtMjg0LDYgKzI4NywxNDIgQEAgX3BhbmVsX2Rlc3Ry b3lfY2IgKEJ1c1BhbmVsUHJveHkgKnBhbmVsLAogICAgICBnX29iamVjdF91bnJlZiAocGFuZWwp OwogIH0KICAKQEAgLTEyNyw2ICsxMjcsNyBAQCBpbmRleCA4ZDRlYzM2Li4wY2FhOGM3IDEwMDY0 NAogKyAgICAgICAgfQogKyAgICB9CiArCisrICAgIGJ1c19pYnVzX2ltcGxfY2hlY2tfZ2xvYmFs X2VuZ2luZSAoaWJ1cyk7CiArICAgIGJ1c19pYnVzX2ltcGxfdXBkYXRlX2VuZ2luZXNfaG90a2V5 X3Byb2ZpbGUgKGlidXMpOwogK30KICsKQEAgLTE4Miw3ICsxODMsNyBAQCBpbmRleCA4ZDRlYzM2 Li4wY2FhOGM3IDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgYnVzX2lidXNfaW1wbF9zZXRfaG90a2V5 IChCdXNJQnVzSW1wbCAqaWJ1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdRdWFyayAg ICAgICBob3RrZXksCi1AQCAtMzg4LDM0ICs1MjYsNTAgQEAgc3RhdGljIHZvaWQKK0BAIC0zOTQs MzUgKzUzMyw1MCBAQCBzdGF0aWMgdm9pZAogIGJ1c19pYnVzX2ltcGxfc2V0X3ByZWxvYWRfZW5n aW5lcyAoQnVzSUJ1c0ltcGwgKmlidXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHVmFyaWFudCAgICAqdmFsdWUpCiAgewpAQCAtMjQ0LDYgKzI0NSw3IEBAIGluZGV4IDhk NGVjMzYuLjBjYWE4YzcgMTAwNjQ0CiArICAgICAgICBwcmVsb2FkX2VuZ2luZV9tb2RlID0gX2dl dF9jb25maWdfcHJlbG9hZF9lbmdpbmVfbW9kZSAoaWJ1cyk7CiAgICAgIH0KICAKKy0gICAgYnVz X2lidXNfaW1wbF9jaGVja19nbG9iYWxfZW5naW5lIChpYnVzKTsKIC0gICAgYnVzX2lidXNfaW1w bF91cGRhdGVfZW5naW5lc19ob3RrZXlfcHJvZmlsZSAoaWJ1cyk7CiArICAgIGlmIChwcmVsb2Fk X2VuZ2luZV9tb2RlID09IElCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9VU0VSKSB7CiArICAgICAg ICByZXR1cm47CkBAIC0yNTQsNyArMjU2LDcgQEAgaW5kZXggOGQ0ZWMzNi4uMGNhYThjNyAxMDA2 NDQKICB9CiAgCiAgLyoqCi1AQCAtNDk2LDg5ICs2NTAsNDggQEAgYnVzX2lidXNfaW1wbF9zZXRf dXNlX2dsb2JhbF9lbmdpbmUgKEJ1c0lCdXNJbXBsICppYnVzLAorQEAgLTUwMyw4OSArNjU3LDQ4 IEBAIGJ1c19pYnVzX2ltcGxfc2V0X3VzZV9nbG9iYWxfZW5naW5lIChCdXMKICAgICAgfQogIH0K ICAKQEAgLTM2Nyw3ICszNjksNyBAQCBpbmRleCA4ZDRlYzM2Li4wY2FhOGM3IDEwMDY0NAogICNl bmRpZgogIH0KICAKLUBAIC01OTQsNiArNzA3LDcgQEAgY29uc3Qgc3RhdGljIHN0cnVjdCB7CitA QCAtNjAxLDYgKzcxNCw3IEBAIGNvbnN0IHN0YXRpYyBzdHJ1Y3QgewogICAgICB7ICJnZW5lcmFs L2hvdGtleSIsICJuZXh0X2VuZ2luZV9pbl9tZW51IiwgICBidXNfaWJ1c19pbXBsX3NldF9uZXh0 X2VuZ2luZV9pbl9tZW51IH0sCiAgICAgIHsgImdlbmVyYWwvaG90a2V5IiwgInByZXZpb3VzX2Vu Z2luZSIsICAgICAgIGJ1c19pYnVzX2ltcGxfc2V0X3ByZXZpb3VzX2VuZ2luZSB9LAogICAgICB7 ICJnZW5lcmFsIiwgInByZWxvYWRfZW5naW5lcyIsICAgICAgICAgICAgICBidXNfaWJ1c19pbXBs X3NldF9wcmVsb2FkX2VuZ2luZXMgfSwKQEAgLTQwMywxOCArNDA1LDE4IEBAIGRpZmYgLS1naXQg YS9pYnVzL2NvbW1vbi5weSBiL2lidXMvY29tbW9uLnB5CiBpbmRleCBlMTA1ZjE4Li4yMGMwNzEw IDEwMDY0NAogLS0tIGEvaWJ1cy9jb21tb24ucHkKICsrKyBiL2lidXMvY29tbW9uLnB5Ci1AQCAt MzMsNiArMzMsOCBAQCBfX2FsbF9fID0gKAotICAgICAgICAgIk9SSUVOVEFUSU9OX0hPUklaT05U QUwiLAotICAgICAgICAgIk9SSUVOVEFUSU9OX1ZFUlRJQ0FMIiwKLSAgICAgICAgICJPUklFTlRB VElPTl9TWVNURU0iLAorQEAgLTQwLDYgKzQwLDggQEAgX19hbGxfXyA9ICgKKyAgICAgICAgICJC VVNfUkVRVUVTVF9OQU1FX1JFUExZX0lOX1FVRVVFIiwKKyAgICAgICAgICJCVVNfUkVRVUVTVF9O QU1FX1JFUExZX0VYSVNUUyIsCisgICAgICAgICAiQlVTX1JFUVVFU1RfTkFNRV9SRVBMWV9BTFJF QURZX09XTkVSIiwKICsgICAgICAgICJQUkVMT0FEX0VOR0lORV9NT0RFX1VTRVIiLAogKyAgICAg ICAgIlBSRUxPQURfRU5HSU5FX01PREVfTEFOR19SRUxBVElWRSIsCiAgICAgICAgICAiZGVmYXVs dF9yZXBseV9oYW5kbGVyIiwKICAgICAgICAgICJkZWZhdWx0X2Vycm9yX2hhbmRsZXIiLAogICAg ICAgICAgIkRFRkFVTFRfQVNZTkNfSEFORExFUlMiLAotQEAgLTEzMiw2ICsxMzQsMTAgQEAgT1JJ RU5UQVRJT05fSE9SSVpPTlRBTCAgPSAwCi0gT1JJRU5UQVRJT05fVkVSVElDQUwgICAgPSAxCi0g T1JJRU5UQVRJT05fU1lTVEVNICAgICAgPSAyCitAQCAtMTUwLDYgKzE1MiwxMCBAQCBCVVNfUkVR VUVTVF9OQU1FX1JFUExZX0lOX1FVRVVFICAgICAgPSAyCisgQlVTX1JFUVVFU1RfTkFNRV9SRVBM WV9FWElTVFMgICAgICAgID0gMworIEJVU19SRVFVRVNUX05BTUVfUkVQTFlfQUxSRUFEWV9PV05F UiA9IDQKICAKICsjIGRlZmluZSBwcmVsb2FkIGVuZ2luZSBtb2RlCiArUFJFTE9BRF9FTkdJTkVf TU9ERV9VU0VSICAgICAgICAgID0gMApAQCAtNTM5LDggKzU0MSw4IEBAIGRpZmYgLS1naXQgYS9z cmMvaWJ1c3R5cGVzLmggYi9zcmMvaWJ1c3R5cGVzLmgKIGluZGV4IDAzNWQxMjQuLjBhOWQ3YjIg MTAwNjQ0CiAtLS0gYS9zcmMvaWJ1c3R5cGVzLmgKICsrKyBiL3NyYy9pYnVzdHlwZXMuaAotQEAg LTE0NCw2ICsxNDQsMTYgQEAgdHlwZWRlZiBlbnVtIHsKLSB9IElCdXNPcmllbnRhdGlvbjsKK0BA IC0xNzcsNiArMTc3LDE2IEBAIHR5cGVkZWYgZW51bSB7CisgfSBJQnVzQnVzUmVxdWVzdE5hbWVS ZXBseTsKICAKICAvKioKICsgKiBJQnVzUHJlbG9hZEVuZ2luZU1vZGU6CgpkaWZmIC0tZ2l0IGEv aWJ1cy01NDE0OTIteGtiLnBhdGNoIGIvaWJ1cy01NDE0OTIteGtiLnBhdGNoCmluZGV4IDMzNzRj MGYuLjliNjRmZTAgMTAwNjQ0Ci0tLSBhL2lidXMtNTQxNDkyLXhrYi5wYXRjaAorKysgYi9pYnVz LTU0MTQ5Mi14a2IucGF0Y2gKQEAgLTE3MjMsOSArMTcyMyw5IEBAIGluZGV4IDAwMDAwMDAuLjBk NTdhMWEKICsgICAgICAgIGxheW91dF9sYW5nID0geGtiY29uZmlnLmdldF9sYXlvdXRfbGFuZygp CiArICAgICAgICB2YXJpYW50X2Rlc2MgPSB4a2Jjb25maWcuZ2V0X3ZhcmlhbnRfZGVzYygpCiAr ICAgICAgICBmb3IgbGF5b3V0IGluIGxheW91dF9saXN0LmtleXMoKToKLSsgICAgICAgICAgICBp ZiBsYXlvdXQgbm90IGluIGxheW91dF9sYW5nOgotKyAgICAgICAgICAgICAgICBjb250aW51ZQot KyAgICAgICAgICAgIGxhbmdzID0gbGF5b3V0X2xhbmdbbGF5b3V0XQorKyAgICAgICAgICAgIGxh bmdzID0gW10KKysgICAgICAgICAgICBpZiBsYXlvdXQgaW4gbGF5b3V0X2xhbmc6CisrICAgICAg ICAgICAgICAgIGxhbmdzID0gbGF5b3V0X2xhbmdbbGF5b3V0XQogKyAgICAgICAgICAgIGZvciBs YW5nIGluIGxhbmdzOgogKyAgICAgICAgICAgICAgICBlbmdpbmUgPSBpYnVzLlhLQkNvbmZpZ1Jl Z2lzdHJ5LmVuZ2luZV9kZXNjX25ldygKICsgICAgICAgICAgICAgICAgICAgIGxhbmcsCgpkaWZm IC0tZ2l0IGEvaWJ1cy02NTcxNjUtcGFuZWwtbGlicy5wYXRjaCBiL2lidXMtNjU3MTY1LXBhbmVs LWxpYnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3YjViNzMuLjAwMDAw MDAKLS0tIGEvaWJ1cy02NTcxNjUtcGFuZWwtbGlicy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDE0NDUgKzAsMCBAQAotRnJvbSA3MTY4OWYxNmFiOGQxOTA0NWVkNDRmMjYwOWM5MDIwMmE2YmY1 ZGI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWpp d2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCA0IE1hciAyMDExIDAwOjA0OjM0ICswOTAwCi1T dWJqZWN0OiBbUEFUQ0hdIEltcGxlbWVudCBBUElzIGZvciBhbm90aGVyIG5vbi1QeXRob24gcGFu ZWwuCi0KLTEuIFN1cHBvcnQgaWNvbiBhbmQgcHJvcF9saXN0ID0gbnVsbCBpbiBpYnVzX3Byb3Bl cnR5X25ldyB3aXRoIEdJUi4KLTIuIEFkZCBnZXR0ZXIgbWV0aG9kcyBpbiBJQnVzVGV4dCBhbmQg SUJ1c1Byb3BlcnR5IHNpbmNlIEdKUyBjYW5ub3QgYWNjZXNzCi0gICB0aGUgbWVtYmVycyBpbiBD LVN0cnVjdHVyZS4KLTMuIEFkZCBpYnVzX2dldF9sYW5ndWFnZV9uYW1lKCkgc2luY2UgR0lSIGxp YnhtbDIgZG9lcyBub3QgcHJvdmlkZSB0aGUKLSAgIHVzZWZ1bCBBUElzLgotNC4gSW1wbGVtZW50 IGZsYWdzIGluIGlidXNfYnVzX3JlcXVlc3RfbmFtZSgpIHRvIGZvbGxvdyBEQnVzCi0gICBSZXF1 ZXN0TmFtZSBzaWduYWwgc3BlYy4KLSAgIGh0dHA6Ly9kYnVzLmZyZWVkZXNrdG9wLm9yZy9kb2Mv ZGJ1cy1zcGVjaWZpY2F0aW9uLmh0bWwjbWVzc2FnZS1idXMtbmFtZXMKLSAgIFRoaXMgaXMgbmVl ZGVkIHRvIHRlcm1pbmF0ZSB0aGUgY3VycmVudCBJQnVzIHBhbmVsLgotICAgRS5nLiBJQnVzIEdU SyBwYW5lbCBpcyBsYXVuY2hlZCBieSBpYnVzLWRhZW1vbiBidXQgYW5vdGhlciBwYW5lbCBpcwot ICAgbGF1bmNoZWQgYnkgZ25vbWUtc2hlbGwuCi01LiBTdXBwb3J0IElCVVNfQlVTX05BTUVfRkxB R19BTExPV19SRVBMQUNFTUVOVCBpbiB1aS9ndGsvbWFpbi5weQotNi4gRml4IGJ1c19jb21wb25l bnRfc2V0X2ZhY3RvcnkoKSBub3QgdG8gY2FsbAotICAgYnVzX2NvbXBvbmVudF9mYWN0b3J5X2Rl c3Ryb3lfY2IoKSB0d2ljZS4KLTcuIEhpZGUgaWJ1c190ZXh0X25ld19mcm9tX3N0YXRpY19zdHJp bmcoKSBmb3IgR0lSLgotOC4gQWRkIGlidXNfaXNfcnVubmluZ19nbm9tZV9zaGVsbCgpIGZvciBp YnVzLXVpLWd0ayBiZWNhdXNlCi0gICBnbm9tZS1zaGVsbCBydW5zIGVhcmxpZXIgdGhhbiBpYnVz LXVpLWd0ay4KLS0tLQotIGJ1cy9jb21wb25lbnQuYyAgICAgICAgICAgfCAgICAyICstCi0gYnVz L2Nvbm5lY3Rpb24uYyAgICAgICAgICB8ICAgIDggKwotIGJ1cy9jb25uZWN0aW9uLmggICAgICAg ICAgfCAgIDEyICstCi0gYnVzL2RidXNpbXBsLmMgICAgICAgICAgICB8ICA0ODAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gYnVzL21hcnNoYWxlcnMubGlz dCAgICAgICB8ICAgIDMgKy0KLSBpYnVzL2NvbW1vbi5weSAgICAgICAgICAgIHwgICAyNCArKyst Ci0gc3JjL01ha2VmaWxlLmFtICAgICAgICAgICB8ICAgIDIgKwotIHNyYy9pYnVzYnVzLmMgICAg ICAgICAgICAgfCAgICA2ICstCi0gc3JjL2lidXNidXMuaCAgICAgICAgICAgICB8ICAgIDggKy0K LSBzcmMvaWJ1c3Byb3BlcnR5LmMgICAgICAgIHwgICAyNCArKysKLSBzcmMvaWJ1c3Byb3BlcnR5 LmggICAgICAgIHwgICA4NSArKysrKysrKy0KLSBzcmMvaWJ1c3RleHQuYyAgICAgICAgICAgIHwg ICAxOCArKwotIHNyYy9pYnVzdGV4dC5oICAgICAgICAgICAgfCAgIDI5ICsrKy0KLSBzcmMvaWJ1 c3R5cGVzLmggICAgICAgICAgIHwgICAzMyArKysKLSBzcmMvaWJ1c3V0aWwuYyAgICAgICAgICAg IHwgIDE4MCArKysrKysrKysrKysrKysrCi0gc3JjL2lidXN1dGlsLmggICAgICAgICAgICB8ICAg MzkgKysrKwotIHVpL2d0ay9ndGtwYW5lbC54bWwuaW4uaW4gfCAgICAyICstCi0gdWkvZ3RrL21h aW4ucHkgICAgICAgICAgICB8ICAgMjMgKystCi0gMTggZmlsZXMgY2hhbmdlZCwgOTI4IGluc2Vy dGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaWJ1c3V0 aWwuYwotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaWJ1c3V0aWwuaAotCi1kaWZmIC0tZ2l0IGEv YnVzL2NvbXBvbmVudC5jIGIvYnVzL2NvbXBvbmVudC5jCi1pbmRleCBjMWZmODVhLi5mZGZmOWMz IDEwMDY0NAotLS0tIGEvYnVzL2NvbXBvbmVudC5jCi0rKysgYi9idXMvY29tcG9uZW50LmMKLUBA IC0yNTYsNyArMjU2LDcgQEAgYnVzX2NvbXBvbmVudF9zZXRfZmFjdG9yeSAoQnVzQ29tcG9uZW50 ICAgICpjb21wb25lbnQsCi0gICAgIH0KLSAKLSAgICAgaWYgKGNvbXBvbmVudC0+ZmFjdG9yeSkg ewotLSAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jIChmYWN0b3J5 LAotKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jIChjb21wb25l bnQtPmZhY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJ1c19jb21wb25lbnRfZmFjdG9yeV9kZXN0cm95X2NiLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQpOwotICAgICAgICAgZ19vYmpl Y3RfdW5yZWYgKGNvbXBvbmVudC0+ZmFjdG9yeSk7Ci1kaWZmIC0tZ2l0IGEvYnVzL2Nvbm5lY3Rp b24uYyBiL2J1cy9jb25uZWN0aW9uLmMKLWluZGV4IGEzYjRjOWMuLjllNzMyMTMgMTAwNjQ0Ci0t LS0gYS9idXMvY29ubmVjdGlvbi5jCi0rKysgYi9idXMvY29ubmVjdGlvbi5jCi1AQCAtMjA0LDYg KzIwNCwxNCBAQCBidXNfY29ubmVjdGlvbl9yZW1vdmVfbmFtZSAoQnVzQ29ubmVjdGlvbiAgICAg KmNvbm5lY3Rpb24sCi0gICAgIHJldHVybiBGQUxTRTsKLSB9Ci0gCi0rZ2Jvb2xlYW4KLStidXNf Y29ubmVjdGlvbl9oYXNfbmFtZSAoQnVzQ29ubmVjdGlvbiAgICAgKmNvbm5lY3Rpb24sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICpuYW1lKQotK3sKLSsgICAg R0xpc3QgKmxpc3QgPSBnX2xpc3RfZmluZF9jdXN0b20gKGNvbm5lY3Rpb24tPm5hbWVzLCBuYW1l LCAoR0NvbXBhcmVGdW5jKSBnX3N0cmNtcDApOwotKyAgICByZXR1cm4gbGlzdCAhPSBOVUxMOwot K30KLSsKLSBHREJ1c0Nvbm5lY3Rpb24gKgotIGJ1c19jb25uZWN0aW9uX2dldF9kYnVzX2Nvbm5l Y3Rpb24gKEJ1c0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24pCi0gewotZGlmZiAtLWdpdCBhL2J1cy9j b25uZWN0aW9uLmggYi9idXMvY29ubmVjdGlvbi5oCi1pbmRleCBkZjg2MDM2Li4yYTM0MzE5IDEw MDY0NAotLS0tIGEvYnVzL2Nvbm5lY3Rpb24uaAotKysrIGIvYnVzL2Nvbm5lY3Rpb24uaAotQEAg LTg1LDcgKzg1LDcgQEAgY29uc3QgZ2NoYXIgICAgICpidXNfY29ubmVjdGlvbl9hZGRfbmFtZSAg ICAgICAgICAgIChCdXNDb25uZWN0aW9uICAgICAgKmNvbm5lY3QKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAq bmFtZSk7Ci0gCi0gLyoqCi0tICogYnVzX2Nvbm5lY3Rpb25fYWRkX25hbWU6Ci0rICogYnVzX2Nv bm5lY3Rpb25fcmVtb3ZlX25hbWU6Ci0gICogQG5hbWU6IGEgd2VsbC1rbm93biBuYW1lIGZvciB0 aGUgY29ubmVjdGlvbi4KLSAgKiBAcmV0dXJuczogVFJVRSBvbiBzdWNjZXNzLgotICAqCi1AQCAt OTUsNiArOTUsMTYgQEAgZ2Jvb2xlYW4gICAgICAgICBidXNfY29ubmVjdGlvbl9yZW1vdmVfbmFt ZSAgICAgICAgIChCdXNDb25uZWN0aW9uICAgICAgKmNvbm5lY3QKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAq bmFtZSk7Ci0gCi0gLyoqCi0rICogYnVzX2Nvbm5lY3Rpb25faGFzX25hbWU6Ci0rICogQG5hbWU6 IGEgd2VsbC1rbm93biBuYW1lIGZvciB0aGUgY29ubmVjdGlvbi4KLSsgKiBAcmV0dXJuczogVFJV RSBpZiBmb3VuZCB0aGUgbmFtZS4KLSsgKgotKyAqIExvb2t1cCB0aGUgd2VsbC1rbm93biBuYW1l IGZyb20gdGhlIGNvbm5lY3Rpb24uCi0rICovCi0rZ2Jvb2xlYW4gICAgICAgICBidXNfY29ubmVj dGlvbl9oYXNfbmFtZSAgICAgICAgICAgIChCdXNDb25uZWN0aW9uICAgICAgKmNvbm5lY3Rpb24s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBnY2hhciAgICAgICAgKm5hbWUpOwotKwotKy8qKgotICAqIGJ1c19jb25uZWN0aW9uX2dl dF9kYnVzX2Nvbm5lY3Rpb246Ci0gICoKLSAgKiBHZXQgdGhlIHVuZGVybHlpbmcgR0RCdXMgY29u bmVjdGlvbi4KLWRpZmYgLS1naXQgYS9idXMvZGJ1c2ltcGwuYyBiL2J1cy9kYnVzaW1wbC5jCi1p bmRleCA0OGRiZDQyLi44MDAyYmFjIDEwMDY0NAotLS0tIGEvYnVzL2RidXNpbXBsLmMKLSsrKyBi L2J1cy9kYnVzaW1wbC5jCi1AQCAtMjcsNiArMjcsOCBAQAotIAotIGVudW0gewotICAgICBOQU1F X09XTkVSX0NIQU5HRUQsCi0rICAgIE5BTUVfTE9TVCwKLSsgICAgTkFNRV9BQ1FVSVJFRCwKLSAg ICAgTEFTVF9TSUdOQUwsCi0gfTsKLSAKLUBAIC02OCw2ICs3MCwxNCBAQCBzdHJ1Y3QgX0J1c0RC dXNJbXBsQ2xhc3MgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjaGFy ICAgICAgICAgICAqbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Y2hhciAgICAgICAgICAgKm9sZF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdjaGFyICAgICAgICAgICAqbmV3X25hbWUpOwotKwotKyAgICB2b2lkICAgICgqIG5h bWVfbG9zdCkgICAgICAgICAgKEJ1c0RCdXNJbXBsICAgICAqZGJ1cywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCdXNDb25uZWN0aW9uICAgKmNvbm5lY3Rpb24sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAgICpuYW1lKTsK LSsKLSsgICAgdm9pZCAgICAoKiBuYW1lX2FjcXVpcmVkKSAgICAgIChCdXNEQnVzSW1wbCAgICAg KmRidXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzQ29ubmVjdGlv biAgICpjb25uZWN0aW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdj aGFyICAgICAgICAgICAqbmFtZSk7Ci0gfTsKLSAKLSB0eXBlZGVmIHN0cnVjdCBfQnVzRGlzcGF0 Y2hEYXRhIEJ1c0Rpc3BhdGNoRGF0YTsKLUBAIC03Niw2ICs4NiwxOSBAQCBzdHJ1Y3QgX0J1c0Rp c3BhdGNoRGF0YSB7Ci0gICAgIEJ1c0Nvbm5lY3Rpb24gKnNraXBfY29ubmVjdGlvbjsKLSB9Owot IAotK3R5cGVkZWYgc3RydWN0IF9CdXNOYW1lU2VydmljZSBCdXNOYW1lU2VydmljZTsKLStzdHJ1 Y3QgX0J1c05hbWVTZXJ2aWNlIHsKLSsgICAgZ2NoYXIgKm5hbWU7Ci0rICAgIEdTTGlzdCAqb3du ZXJzOwotK307Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QgX0J1c0Nvbm5lY3Rpb25Pd25lciBCdXNDb25u ZWN0aW9uT3duZXI7Ci0rc3RydWN0IF9CdXNDb25uZWN0aW9uT3duZXIgewotKyAgICBCdXNDb25u ZWN0aW9uICpjb25uOwotKwotKyAgICBndWludCBhbGxvd19yZXBsYWNlbWVudCA6IDE7Ci0rICAg IGd1aW50IGRvX25vdF9xdWV1ZSA6IDE7Ci0rfTsKLSAKLSAvKiBmdW5jdGlvbnMgcHJvdG90eXBl ICovCi0gc3RhdGljIHZvaWQgICAgIGJ1c19kYnVzX2ltcGxfZGVzdHJveSAgICAgICAgICAgKEJ1 c0RCdXNJbXBsICAgICAgICAqZGJ1cyk7Ci1AQCAtMTExLDYgKzEzNCwxNCBAQCBzdGF0aWMgdm9p ZCAgICAgIGJ1c19kYnVzX2ltcGxfbmFtZV9vd25lcl9jaGFuZ2VkCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjaGFyICAgICAgICAgICAgICAqbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2No YXIgICAgICAgICAgICAgICpvbGRfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAgICAgICpuZXdfbmFtZSk7Ci0rc3Rh dGljIHZvaWQgICAgICBidXNfZGJ1c19pbXBsX25hbWVfbG9zdAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCdXNEQnVzSW1wbCAgICAgICAgKmRidXMs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c0Nv bm5lY3Rpb24gICAgICAqY29ubmVjdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAgICAgICpuYW1lKTsKLStzdGF0aWMg dm9pZCAgICAgIGJ1c19kYnVzX2ltcGxfbmFtZV9hY3F1aXJlZAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCdXNEQnVzSW1wbCAgICAgICAgKmRidXMs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c0Nv bm5lY3Rpb24gICAgICAqY29ubmVjdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAgICAgICpuYW1lKTsKLSBzdGF0aWMg dm9pZCAgICAgIGJ1c19kYnVzX2ltcGxfY29ubmVjdGlvbl9kZXN0cm95X2NiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJ1c0Nvbm5lY3Rpb24gICAg ICAqY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQnVzREJ1c0ltcGwgICAgICAgICpkYnVzKTsKLUBAIC0yMDUsNiArMjM2LDE4OCBA QCBzdGF0aWMgY29uc3QgZ2NoYXIgaW50cm9zcGVjdGlvbl94bWxbXSA9Ci0gICAgICI8L25vZGU+ IjsKLSAKLSBzdGF0aWMgdm9pZAotK2J1c19jb25uZWN0aW9uX293bmVyX3NldF9mbGFncyAoQnVz Q29ubmVjdGlvbk93bmVyICpvd25lciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGd1aW50MzIgICAgICAgICAgICAgZmxhZ3MpCi0rewotKyAgICBvd25lci0+YWxsb3dfcmVwbGFj ZW1lbnQgPQotKyAgICAgICAgKGZsYWdzICYgSUJVU19CVVNfTkFNRV9GTEFHX0FMTE9XX1JFUExB Q0VNRU5UKSAhPSAwOwotKwotKyAgICBvd25lci0+ZG9fbm90X3F1ZXVlID0KLSsgICAgICAgIChm bGFncyAmIElCVVNfQlVTX05BTUVfRkxBR19ET19OT1RfUVVFVUUpICE9IDA7Ci0rfQotKwotK3N0 YXRpYyBCdXNDb25uZWN0aW9uT3duZXIgKgotK2J1c19jb25uZWN0aW9uX293bmVyX25ldyAoQnVz Q29ubmVjdGlvbiAqY29ubmVjdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50 MzIgICAgICAgIGZsYWdzKQotK3sKLSsgICAgQnVzQ29ubmVjdGlvbk93bmVyICpvd25lciA9IE5V TEw7Ci0rCi0rICAgIGdfYXNzZXJ0IChjb25uZWN0aW9uICE9IE5VTEwpOwotKwotKyAgICBvd25l ciA9IChCdXNDb25uZWN0aW9uT3duZXIgKikgZ19uZXcwIChCdXNDb25uZWN0aW9uT3duZXIsIDEp OwotKyAgICBpZiAob3duZXIgIT0gTlVMTCkgewotKyAgICAgICAgb3duZXItPmNvbm4gPSBnX29i amVjdF9yZWYgKGNvbm5lY3Rpb24pOwotKyAgICAgICAgYnVzX2Nvbm5lY3Rpb25fb3duZXJfc2V0 X2ZsYWdzIChvd25lciwgZmxhZ3MpOwotKyAgICB9Ci0rCi0rICAgIHJldHVybiBvd25lcjsKLSt9 Ci0rCi0rc3RhdGljIHZvaWQKLStidXNfY29ubmVjdGlvbl9vd25lcl9mcmVlIChCdXNDb25uZWN0 aW9uT3duZXIgKm93bmVyKQotK3sKLSsgICAgZ19hc3NlcnQgKG93bmVyICE9IE5VTEwpOwotKwot KyAgICBnX29iamVjdF91bnJlZiAob3duZXItPmNvbm4pOwotKyAgICBvd25lci0+Y29ubiA9IE5V TEw7Ci0rICAgIGdfZnJlZSAob3duZXIpOwotK30KLSsKLStzdGF0aWMgR1NMaXN0ICoKLStfYnVz X25hbWVfc2VydmljZV9maW5kX293bmVyX2xpbmsgKEJ1c05hbWVTZXJ2aWNlICpzZXJ2aWNlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzQ29ubmVjdGlvbiAgKmNvbm5l Y3Rpb24pCi0rewotKyAgICBHU0xpc3QgKm93bmVycyA9IHNlcnZpY2UtPm93bmVyczsKLSsKLSsg ICAgd2hpbGUgKG93bmVycykgewotKyAgICAgICAgQnVzQ29ubmVjdGlvbk93bmVyICpvd25lciA9 IChCdXNDb25uZWN0aW9uT3duZXIgKikgb3duZXJzLT5kYXRhOwotKyAgICAgICAgaWYgKG93bmVy LT5jb25uID09IGNvbm5lY3Rpb24pIHsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0K LSsgICAgICAgIG93bmVycyA9IG93bmVycy0+bmV4dDsKLSsgICAgfQotKwotKyAgICByZXR1cm4g b3duZXJzOwotK30KLSsKLStzdGF0aWMgQnVzTmFtZVNlcnZpY2UgKgotK2J1c19uYW1lX3NlcnZp Y2VfbmV3IChjb25zdCBnY2hhciAqbmFtZSkKLSt7Ci0rICAgIEJ1c05hbWVTZXJ2aWNlICpzZXJ2 aWNlID0gTlVMTDsKLSsKLSsgICAgZ19hc3NlcnQgKG5hbWUgIT0gTlVMTCk7Ci0rCi0rICAgIHNl cnZpY2UgPSBnX25ldzAgKEJ1c05hbWVTZXJ2aWNlLCAxKTsKLSsgICAgaWYgKHNlcnZpY2UgIT0g TlVMTCkgewotKyAgICAgICAgc2VydmljZS0+bmFtZSA9IGdfc3RyZHVwIChuYW1lKTsKLSsgICAg fQotKwotKyAgICByZXR1cm4gc2VydmljZTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStidXNfbmFt ZV9zZXJ2aWNlX2ZyZWUgKEJ1c05hbWVTZXJ2aWNlICpzZXJ2aWNlKQotK3sKLSsgICAgR1NMaXN0 ICpsaXN0ID0gTlVMTDsKLSsKLSsgICAgZ19hc3NlcnQgKHNlcnZpY2UgIT0gTlVMTCk7Ci0rCi0r ICAgIGxpc3QgPSBzZXJ2aWNlLT5vd25lcnM7Ci0rCi0rICAgIHdoaWxlIChsaXN0KSB7Ci0rICAg ICAgICBidXNfY29ubmVjdGlvbl9vd25lcl9mcmVlICgoQnVzQ29ubmVjdGlvbk93bmVyICopIGxp c3QtPmRhdGEpOwotKyAgICAgICAgbGlzdC0+ZGF0YSA9IE5VTEw7Ci0rICAgICAgICBsaXN0ID0g bGlzdC0+bmV4dDsKLSsgICAgfQotKyAgICBpZiAoc2VydmljZS0+b3duZXJzKSB7Ci0rICAgICAg ICBnX3NsaXN0X2ZyZWUgKHNlcnZpY2UtPm93bmVycyk7Ci0rICAgICAgICBzZXJ2aWNlLT5vd25l cnMgPSBOVUxMOwotKyAgICB9Ci0rICAgIGdfZnJlZSAoc2VydmljZS0+bmFtZSk7Ci0rICAgIHNl cnZpY2UtPm5hbWUgPSBOVUxMOwotKyAgICBnX2ZyZWUgKHNlcnZpY2UpOwotK30KLSsKLStzdGF0 aWMgdm9pZAotK2J1c19uYW1lX3NlcnZpY2VfYWRkX3ByaW1hcnlfb3duZXIgKEJ1c05hbWVTZXJ2 aWNlICAgICAqc2VydmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC dXNDb25uZWN0aW9uT3duZXIgKm93bmVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJ1c0RCdXNJbXBsICAgICAgICAqZGJ1cykKLSt7Ci0rICAgIGdfYXNzZXJ0IChzZXJ2 aWNlICE9IE5VTEwpOwotKwotKyAgICBpZiAoZGJ1cykgewotKyAgICAgICAgZ19zaWduYWxfZW1p dCAoZGJ1cywKLSsgICAgICAgICAgICAgICAgICAgICAgIGRidXNfc2lnbmFsc1tOQU1FX0FDUVVJ UkVEXSwKLSsgICAgICAgICAgICAgICAgICAgICAgIDAsCi0rICAgICAgICAgICAgICAgICAgICAg ICBnX29iamVjdF9yZWYgKG93bmVyLT5jb25uKSwKLSsgICAgICAgICAgICAgICAgICAgICAgIHNl cnZpY2UtPm5hbWUgPyBzZXJ2aWNlLT5uYW1lIDogIiIpOwotKyAgICB9Ci0rCi0rICAgIHNlcnZp Y2UtPm93bmVycyA9IGdfc2xpc3RfcHJlcGVuZCAoc2VydmljZS0+b3duZXJzLCAoZ3BvaW50ZXIp IG93bmVyKTsKLSt9Ci0rCi0rc3RhdGljIEJ1c0Nvbm5lY3Rpb25Pd25lciAqCi0rYnVzX25hbWVf c2VydmljZV9nZXRfcHJpbWFyeV9vd25lciAoQnVzTmFtZVNlcnZpY2UgKnNlcnZpY2UpCi0rewot KyAgICBnX2Fzc2VydCAoc2VydmljZSAhPSBOVUxMKTsKLSsKLSsgICAgaWYgKHNlcnZpY2UtPm93 bmVycyA9PSBOVUxMKSB7Ci0rICAgICAgICByZXR1cm4gTlVMTDsKLSsgICAgfQotKwotKyAgICBy ZXR1cm4gKEJ1c0Nvbm5lY3Rpb25Pd25lciAqKSBzZXJ2aWNlLT5vd25lcnMtPmRhdGE7Ci0rfQot KwotK3N0YXRpYyB2b2lkCi0rYnVzX25hbWVfc2VydmljZV9hZGRfb3duZXIgKEJ1c05hbWVTZXJ2 aWNlICAgICAqc2VydmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzQ29ubmVj dGlvbk93bmVyICpvd25lciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzREJ1c0lt cGwgICAgICAgICpkYnVzKQotK3sKLSsgICAgZ19hc3NlcnQgKHNlcnZpY2UgIT0gTlVMTCk7Ci0r Ci0rICAgIGlmIChkYnVzICYmIHNlcnZpY2UtPm93bmVycyA9PSBOVUxMKSB7Ci0rICAgICAgICBn X3NpZ25hbF9lbWl0IChkYnVzLAotKyAgICAgICAgICAgICAgICAgICAgICAgZGJ1c19zaWduYWxz W05BTUVfQUNRVUlSRURdLAotKyAgICAgICAgICAgICAgICAgICAgICAgMCwKLSsgICAgICAgICAg ICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAob3duZXItPmNvbm4pLAotKyAgICAgICAgICAgICAg ICAgICAgICAgc2VydmljZS0+bmFtZSA/IHNlcnZpY2UtPm5hbWUgOiAiIik7Ci0rICAgIH0KLSsK LSsgICAgc2VydmljZS0+b3duZXJzID0gZ19zbGlzdF9hcHBlbmQgKHNlcnZpY2UtPm93bmVycywg KGdwb2ludGVyKSBvd25lcik7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rYnVzX25hbWVfc2Vydmlj ZV9yZW1vdmVfb3duZXIgKEJ1c05hbWVTZXJ2aWNlICAgICAqc2VydmljZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQnVzQ29ubmVjdGlvbk93bmVyICpvd25lciwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQnVzREJ1c0ltcGwgICAgICAgICpkYnVzKQotK3sKLSsg ICAgR1NMaXN0ICpvd25lcnM7Ci0rCi0rICAgIGdfYXNzZXJ0IChzZXJ2aWNlICE9IE5VTEwpOwot KyAgICBnX2Fzc2VydCAob3duZXIgIT0gTlVMTCk7Ci0rCi0rICAgIG93bmVycyA9IF9idXNfbmFt ZV9zZXJ2aWNlX2ZpbmRfb3duZXJfbGluayAoc2VydmljZSwgb3duZXItPmNvbm4pOwotKyAgICBp ZiAob3duZXJzID09IE5VTEwpIHsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgICBp ZiAoZGJ1cyAmJgotKyAgICAgICAgb3duZXJzLT5kYXRhID09IGJ1c19uYW1lX3NlcnZpY2VfZ2V0 X3ByaW1hcnlfb3duZXIgKHNlcnZpY2UpKSB7Ci0rICAgICAgICBnX3NpZ25hbF9lbWl0IChkYnVz LAotKyAgICAgICAgICAgICAgICAgICAgICAgZGJ1c19zaWduYWxzW05BTUVfTE9TVF0sCi0rICAg ICAgICAgICAgICAgICAgICAgICAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3Rf cmVmIChvd25lci0+Y29ubiksCi0rICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlLT5uYW1l ID8gc2VydmljZS0+bmFtZSA6ICIiKTsKLSsgICAgfQotKwotKyAgICBzZXJ2aWNlLT5vd25lcnMg PSBnX3NsaXN0X3JlbW92ZV9saW5rIChzZXJ2aWNlLT5vd25lcnMsIChncG9pbnRlcikgb3duZXJz KTsKLSt9Ci0rCi0rc3RhdGljIGdib29sZWFuCi0rYnVzX25hbWVfc2VydmljZV9nZXRfYWxsb3df cmVwbGFjZW1lbnQgKEJ1c05hbWVTZXJ2aWNlICpzZXJ2aWNlKQotK3sKLSsgICAgQnVzQ29ubmVj dGlvbk93bmVyICpvd25lciA9IE5VTEw7Ci0rCi0rICAgIGdfYXNzZXJ0IChzZXJ2aWNlICE9IE5V TEwpOwotKwotKyAgICBvd25lciA9IGJ1c19uYW1lX3NlcnZpY2VfZ2V0X3ByaW1hcnlfb3duZXIg KHNlcnZpY2UpOwotKyAgICBpZiAob3duZXIgPT0gTlVMTCkgewotKyAgICAgICAgcmV0dXJuIFRS VUU7Ci0rICAgIH0KLSsgICAgcmV0dXJuIG93bmVyLT5hbGxvd19yZXBsYWNlbWVudDsKLSt9Ci0r Ci0rc3RhdGljIHZvaWQKLSBidXNfZGJ1c19pbXBsX2NsYXNzX2luaXQgKEJ1c0RCdXNJbXBsQ2xh c3MgKmNsYXNzKQotIHsKLSAgICAgR09iamVjdENsYXNzICpnb2JqZWN0X2NsYXNzID0gR19PQkpF Q1RfQ0xBU1MgKGNsYXNzKTsKLUBAIC0yMjEsNiArNDM0LDEyIEBAIGJ1c19kYnVzX2ltcGxfY2xh c3NfaW5pdCAoQnVzREJ1c0ltcGxDbGFzcyAqY2xhc3MpCi0gICAgIC8qIHJlZ2lzdGVyIGEgaGFu ZGxlciBvZiB0aGUgbmFtZS1vd25lci1jaGFuZ2VkIHNpZ25hbCBiZWxvdy4gKi8KLSAgICAgY2xh c3MtPm5hbWVfb3duZXJfY2hhbmdlZCA9IGJ1c19kYnVzX2ltcGxfbmFtZV9vd25lcl9jaGFuZ2Vk OwotIAotKyAgICAvKiByZWdpc3RlciBhIGhhbmRsZXIgb2YgdGhlIG5hbWUtbG9zdCBzaWduYWwg YmVsb3cuICovCi0rICAgIGNsYXNzLT5uYW1lX2xvc3QgPSBidXNfZGJ1c19pbXBsX25hbWVfbG9z dDsKLSsKLSsgICAgLyogcmVnaXN0ZXIgYSBoYW5kbGVyIG9mIHRoZSBuYW1lLWFjcXVpcmVkIHNp Z25hbCBiZWxvdy4gKi8KLSsgICAgY2xhc3MtPm5hbWVfYWNxdWlyZWQgPSBidXNfZGJ1c19pbXBs X25hbWVfYWNxdWlyZWQ7Ci0rCi0gICAgIC8qIGluc3RhbGwgc2lnbmFscyAqLwotICAgICBkYnVz X3NpZ25hbHNbTkFNRV9PV05FUl9DSEFOR0VEXSA9Ci0gICAgICAgICBnX3NpZ25hbF9uZXcgKElf KCJuYW1lLW93bmVyLWNoYW5nZWQiKSwKLUBAIC0yMzQsMTMgKzQ1MywzOSBAQCBidXNfZGJ1c19p bXBsX2NsYXNzX2luaXQgKEJ1c0RCdXNJbXBsQ2xhc3MgKmNsYXNzKQotICAgICAgICAgICAgIEdf VFlQRV9TVFJJTkcsCi0gICAgICAgICAgICAgR19UWVBFX1NUUklORywKLSAgICAgICAgICAgICBH X1RZUEVfU1RSSU5HKTsKLSsKLSsgICAgZGJ1c19zaWduYWxzW05BTUVfTE9TVF0gPQotKyAgICAg ICAgZ19zaWduYWxfbmV3IChJXygibmFtZS1sb3N0IiksCi0rICAgICAgICAgICAgR19UWVBFX0ZS T01fQ0xBU1MgKGNsYXNzKSwKLSsgICAgICAgICAgICBHX1NJR05BTF9SVU5fRklSU1QsCi0rICAg ICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChCdXNEQnVzSW1wbENsYXNzLCBuYW1lX2xvc3QpLAot KyAgICAgICAgICAgIE5VTEwsIE5VTEwsCi0rICAgICAgICAgICAgYnVzX21hcnNoYWxfVk9JRF9f T0JKRUNUX1NUUklORywKLSsgICAgICAgICAgICBHX1RZUEVfTk9ORSwKLSsgICAgICAgICAgICAy LAotKyAgICAgICAgICAgIEJVU19UWVBFX0NPTk5FQ1RJT04sCi0rICAgICAgICAgICAgR19UWVBF X1NUUklORyk7Ci0rCi0rICAgIGRidXNfc2lnbmFsc1tOQU1FX0FDUVVJUkVEXSA9Ci0rICAgICAg ICBnX3NpZ25hbF9uZXcgKElfKCJuYW1lLWFjcXVpcmVkIiksCi0rICAgICAgICAgICAgR19UWVBF X0ZST01fQ0xBU1MgKGNsYXNzKSwKLSsgICAgICAgICAgICBHX1NJR05BTF9SVU5fRklSU1QsCi0r ICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChCdXNEQnVzSW1wbENsYXNzLCBuYW1lX2FjcXVp cmVkKSwKLSsgICAgICAgICAgICBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgIGJ1c19tYXJzaGFs X1ZPSURfX09CSkVDVF9TVFJJTkcsCi0rICAgICAgICAgICAgR19UWVBFX05PTkUsCi0rICAgICAg ICAgICAgMiwKLSsgICAgICAgICAgICBCVVNfVFlQRV9DT05ORUNUSU9OLAotKyAgICAgICAgICAg IEdfVFlQRV9TVFJJTkcpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotIGJ1c19kYnVzX2ltcGxfaW5p dCAoQnVzREJ1c0ltcGwgKmRidXMpCi0gewotICAgICBkYnVzLT51bmlxdWVfbmFtZXMgPSBnX2hh c2hfdGFibGVfbmV3IChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCk7Ci0tICAgIGRidXMtPm5hbWVz ID0gZ19oYXNoX3RhYmxlX25ldyAoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwpOwotKyAgICBkYnVz LT5uYW1lcyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWws Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3Rp ZnkpIGdfZnJlZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChH RGVzdHJveU5vdGlmeSkgYnVzX25hbWVfc2VydmljZV9mcmVlKTsKLSAKLSAgICAgZGJ1cy0+ZGlz cGF0Y2hfbG9jayA9IGdfbXV0ZXhfbmV3ICgpOwotICAgICBkYnVzLT5mb3J3YXJkX2xvY2sgPSBn X211dGV4X25ldyAoKTsKLUBAIC01NTcsMTAgKzgwMiwxNSBAQCBidXNfZGJ1c19pbXBsX3JlcXVl c3RfbmFtZSAoQnVzREJ1c0ltcGwgICAgICAgICAgICpkYnVzLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgKnBhcmFtZXRlcnMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAqaW52b2NhdGlvbikKLSB7 Ci0tICAgIC8qIEZJWE1FIG5lZWQgdG8gaGFuZGxlIGZsYWdzIGRlZmluZWQgaW46Ci0tICAgICAq IGh0dHA6Ly9kYnVzLmZyZWVkZXNrdG9wLm9yZy9kb2MvZGJ1cy1zcGVjaWZpY2F0aW9uLmh0bWwj bWVzc2FnZS1idXMtbmFtZXMgKi8KLSAgICAgY29uc3QgZ2NoYXIgKm5hbWUgPSBOVUxMOyAgLy8g ZS5nLiAib3JnLmZyZWVkZXNrdG9wLklCdXMuUGFuZWwiCi0tICAgIGd1aW50IGZsYWdzID0gMDsK LSsgICAgZ3VpbnQzMiBmbGFncyA9IDA7Ci0rICAgIGd1aW50MzIgcmV0dmFsID0gMDsKLSsgICAg Z2NoYXIgKm9sZF9vd25lcl9uYW1lID0gTlVMTDsKLSsgICAgQnVzTmFtZVNlcnZpY2UgKnNlcnZp Y2UgPSBOVUxMOwotKyAgICBCdXNDb25uZWN0aW9uT3duZXIgKnByaW1hcnlfb3duZXIgPSBOVUxM OwotKyAgICBCdXNDb25uZWN0aW9uT3duZXIgKm93bmVyID0gTlVMTDsKLSsgICAgQnVzQ29ubmVj dGlvbiAqb2xkX293bmVyX2Nvbm4gPSBOVUxMOwotKwotICAgICBnX3ZhcmlhbnRfZ2V0IChwYXJh bWV0ZXJzLCAiKCZzdSkiLCAmbmFtZSwgJmZsYWdzKTsKLSAKLSAgICAgaWYgKG5hbWUgPT0gTlVM TCB8fAotQEAgLTU4MCwyNSArODMwLDgyIEBAIGJ1c19kYnVzX2ltcGxfcmVxdWVzdF9uYW1lIChC dXNEQnVzSW1wbCAgICAgICAgICAgKmRidXMsCi0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAK LS0gICAgaWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKGRidXMtPm5hbWVzLCBuYW1lKSAhPSBOVUxM KSB7Ci0tICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX2Vycm9yIChpbnZv Y2F0aW9uLAotLSAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUiwgR19EQlVTX0VS Uk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAiU2VydmljZSBuYW1lICclcycg YWxyZWFkeSBoYXMgYW4gb3duZXIuIiwgbmFtZSk7Ci0tICAgICAgICByZXR1cm47Ci0rICAgIHNl cnZpY2UgPSAoQnVzTmFtZVNlcnZpY2UgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoZGJ1cy0+bmFt ZXMsIG5hbWUpOwotKwotKyAgICBpZiAoc2VydmljZSAhPSBOVUxMKSB7Ci0rICAgICAgICBwcmlt YXJ5X293bmVyID0gYnVzX25hbWVfc2VydmljZV9nZXRfcHJpbWFyeV9vd25lciAoc2VydmljZSk7 Ci0rICAgICAgICBpZiAocHJpbWFyeV9vd25lciAhPSBOVUxMKSB7Ci0rICAgICAgICAgICAgb2xk X293bmVyX2Nvbm4gPSBwcmltYXJ5X293bmVyLT5jb25uOwotKyAgICAgICAgfSBlbHNlIHsKLSsg ICAgICAgICAgICBvbGRfb3duZXJfY29ubiA9IE5VTEw7Ci0rICAgICAgICB9Ci0rICAgIH0gZWxz ZSB7Ci0rICAgICAgICBvbGRfb3duZXJfY29ubiA9IE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgY29u c3QgZ3VpbnQgcmV0dmFsID0gMTsgLyogREJVU19SRVFVRVNUX05BTUVfUkVQTFlfUFJJTUFSWV9P V05FUiAqLwotLSAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlIChpbnZv Y2F0aW9uLCBnX3ZhcmlhbnRfbmV3ICgiKHUpIiwgcmV0dmFsKSk7Ci0tICAgIGdfaGFzaF90YWJs ZV9pbnNlcnQgKGRidXMtPm5hbWVzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50 ZXIpIGJ1c19jb25uZWN0aW9uX2FkZF9uYW1lIChjb25uZWN0aW9uLCBuYW1lKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7Ci0rICAgIGlmIChvbGRfb3duZXJfY29ubiA9 PSBOVUxMKSB7Ci0rICAgICAgICByZXR2YWwgPSBJQlVTX0JVU19SRVFVRVNUX05BTUVfUkVQTFlf UFJJTUFSWV9PV05FUjsKLSsgICAgfQotKyAgICBlbHNlIGlmIChvbGRfb3duZXJfY29ubiA9PSBj b25uZWN0aW9uKSB7Ci0rICAgICAgICByZXR2YWwgPSBJQlVTX0JVU19SRVFVRVNUX05BTUVfUkVQ TFlfQUxSRUFEWV9PV05FUjsKLSsgICAgICAgIGdvdG8gb3V0OwotKyAgICB9Ci0rICAgIGVsc2Ug aWYgKCgoZmxhZ3MgJiBJQlVTX0JVU19OQU1FX0ZMQUdfRE9fTk9UX1FVRVVFKSAmJgotKyAgICAg ICAgICAgICAhKGJ1c19uYW1lX3NlcnZpY2VfZ2V0X2FsbG93X3JlcGxhY2VtZW50IChzZXJ2aWNl KSkpIHx8Ci0rICAgICAgICAgICAgICgoZmxhZ3MgJiBJQlVTX0JVU19OQU1FX0ZMQUdfRE9fTk9U X1FVRVVFKSAmJgotKyAgICAgICAgICAgICAhKGZsYWdzICYgSUJVU19CVVNfTkFNRV9GTEFHX1JF UExBQ0VfRVhJU1RJTkcpKSkgewotKyAgICAgICAgcmV0dmFsID0gSUJVU19CVVNfUkVRVUVTVF9O QU1FX1JFUExZX0VYSVNUUzsKLSsgICAgICAgIGdvdG8gb3V0OwotKyAgICB9Ci0rICAgIGVsc2Ug aWYgKCEoZmxhZ3MgJiBJQlVTX0JVU19OQU1FX0ZMQUdfRE9fTk9UX1FVRVVFKSAmJgotKyAgICAg ICAgICAgICAoIShmbGFncyAmIElCVVNfQlVTX05BTUVfRkxBR19SRVBMQUNFX0VYSVNUSU5HKSB8 fAotKyAgICAgICAgICAgICAgIShidXNfbmFtZV9zZXJ2aWNlX2dldF9hbGxvd19yZXBsYWNlbWVu dCAoc2VydmljZSkpKSkgewotKyAgICAgICAgaWYgKCFidXNfY29ubmVjdGlvbl9oYXNfbmFtZSAo Y29ubmVjdGlvbiwgbmFtZSkpIHsKLSsgICAgICAgICAgICBidXNfY29ubmVjdGlvbl9hZGRfbmFt ZSAoY29ubmVjdGlvbiwgbmFtZSk7Ci0rICAgICAgICB9Ci0rICAgICAgICBvd25lciA9IGJ1c19j b25uZWN0aW9uX293bmVyX25ldyAoY29ubmVjdGlvbiwgZmxhZ3MpOwotKyAgICAgICAgYnVzX25h bWVfc2VydmljZV9hZGRfb3duZXIgKHNlcnZpY2UsIG93bmVyLCBkYnVzKTsKLSsgICAgICAgIHJl dHZhbCA9IElCVVNfQlVTX1JFUVVFU1RfTkFNRV9SRVBMWV9JTl9RVUVVRTsKLSsgICAgICAgIGdv dG8gb3V0OwotKyAgICB9Ci0rICAgIGVsc2UgewotKyAgICAgICAgaWYgKCFidXNfY29ubmVjdGlv bl9oYXNfbmFtZSAoY29ubmVjdGlvbiwgbmFtZSkpIHsKLSsgICAgICAgICAgICBidXNfY29ubmVj dGlvbl9hZGRfbmFtZSAoY29ubmVjdGlvbiwgbmFtZSk7Ci0rICAgICAgICB9Ci0rICAgICAgICBv d25lciA9IGJ1c19jb25uZWN0aW9uX293bmVyX25ldyAoY29ubmVjdGlvbiwgZmxhZ3MpOwotKyAg ICAgICAgb2xkX293bmVyX25hbWUgPSBnX3N0cmR1cCAoYnVzX2Nvbm5lY3Rpb25fZ2V0X3VuaXF1 ZV9uYW1lIChwcmltYXJ5X293bmVyLT5jb25uKSk7Ci0rICAgICAgICBidXNfbmFtZV9zZXJ2aWNl X3JlbW92ZV9vd25lciAoc2VydmljZSwgcHJpbWFyeV9vd25lciwgZGJ1cyk7Ci0rICAgICAgICBi dXNfbmFtZV9zZXJ2aWNlX2FkZF9wcmltYXJ5X293bmVyIChzZXJ2aWNlLCBvd25lciwgZGJ1cyk7 Ci0rICAgICAgICBpZiAocHJpbWFyeV9vd25lci0+ZG9fbm90X3F1ZXVlID09IDApIHsKLSsgICAg ICAgICAgICBidXNfbmFtZV9zZXJ2aWNlX2FkZF9vd25lciAoc2VydmljZSwgcHJpbWFyeV9vd25l ciwgZGJ1cyk7Ci0rICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgIGlmIChidXNfY29ubmVj dGlvbl9oYXNfbmFtZSAocHJpbWFyeV9vd25lci0+Y29ubiwgbmFtZSkpIHsKLSsgICAgICAgICAg ICAgICAgYnVzX2Nvbm5lY3Rpb25fcmVtb3ZlX25hbWUgKHByaW1hcnlfb3duZXItPmNvbm4sIG5h bWUpOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBidXNfY29ubmVjdGlvbl9vd25lcl9m cmVlIChwcmltYXJ5X293bmVyKTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldHZhbCA9IElCVVNf QlVTX1JFUVVFU1RfTkFNRV9SRVBMWV9QUklNQVJZX09XTkVSOwotKyAgICB9Ci0rCi0rICAgIGlm IChzZXJ2aWNlID09IE5VTEwpIHsKLSsgICAgICAgIHNlcnZpY2UgPSBidXNfbmFtZV9zZXJ2aWNl X25ldyAobmFtZSk7Ci0rICAgICAgICBvd25lciA9IGJ1c19jb25uZWN0aW9uX293bmVyX25ldyAo Y29ubmVjdGlvbiwgZmxhZ3MpOwotKyAgICAgICAgYnVzX25hbWVfc2VydmljZV9hZGRfb3duZXIg KHNlcnZpY2UsIG93bmVyLCBkYnVzKTsKLSsgICAgICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKGRi dXMtPm5hbWVzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSBnX3N0 cmR1cCAoYnVzX2Nvbm5lY3Rpb25fYWRkX25hbWUgKGNvbm5lY3Rpb24sIG5hbWUpKSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UpOwotKyAgICB9Ci0gCi0gICAgIGdfc2ln bmFsX2VtaXQgKGRidXMsCi0gICAgICAgICAgICAgICAgICAgIGRidXNfc2lnbmFsc1tOQU1FX09X TkVSX0NIQU5HRURdLAotICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAg ICBuYW1lLAotLSAgICAgICAgICAgICAgICAgICAiIiwKLSsgICAgICAgICAgICAgICAgICAgb2xk X293bmVyX25hbWUgPyBvbGRfb3duZXJfbmFtZSA6ICIiLAotICAgICAgICAgICAgICAgICAgICBi dXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25hbWUgKGNvbm5lY3Rpb24pKTsKLSsgICAgZ19mcmVl IChvbGRfb3duZXJfbmFtZSk7Ci0rCi0rb3V0OgotKyAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRp b25fcmV0dXJuX3ZhbHVlIChpbnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3ICgiKHUpIiwgcmV0dmFs KSk7Ci0gfQotIAotIC8qKgotQEAgLTY4Miw2ICs5ODksNzAgQEAgYnVzX2RidXNfaW1wbF9uYW1l X293bmVyX2NoYW5nZWQgKEJ1c0RCdXNJbXBsICAgKmRidXMsCi0gfQotIAotIC8qKgotKyAqIGJ1 c19kYnVzX2ltcGxfbmFtZV9sb3N0OgotKyAqCi0rICogVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBv biBuYW1lLWxvc3Qgc2lnbmFsLCB0eXBpY2FsbHkgd2hlbiBnX3NpZ25hbF9lbWl0IChkYnVzLCBO QU1FX0xPU1QpCi0rICogaXMgY2FsbGVkLCBhbmQgYnJvYWRjYXN0cyB0aGUgc2lnbmFsIHRvIGNs aWVudHMuCi0rICovCi0rc3RhdGljIHZvaWQKLStidXNfZGJ1c19pbXBsX25hbWVfbG9zdCAoQnVz REJ1c0ltcGwgICAqZGJ1cywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgQnVzQ29ubmVjdGlv biAqY29ubmVjdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAq bmFtZSkKLSt7Ci0rICAgIHN0YXRpYyBndWludDMyIHNlcmlhbCA9IDA7Ci0rCi0rICAgIGdfYXNz ZXJ0IChCVVNfSVNfREJVU19JTVBMIChkYnVzKSk7Ci0rICAgIGdfYXNzZXJ0IChuYW1lICE9IE5V TEwpOwotKwotKyAgICBHREJ1c01lc3NhZ2UgKm1lc3NhZ2UgPSBnX2RidXNfbWVzc2FnZV9uZXdf c2lnbmFsICgiL29yZy9mcmVlZGVza3RvcC9EQnVzIiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5EQnVzIiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ik5hbWVMb3N0Iik7Ci0rICAgIGdfZGJ1c19tZXNzYWdlX3NldF9zZW5kZXIgKG1lc3NhZ2UsICJv cmcuZnJlZWRlc2t0b3AuREJ1cyIpOwotKyAgICBnX2RidXNfbWVzc2FnZV9zZXRfZGVzdGluYXRp b24gKG1lc3NhZ2UsIGJ1c19jb25uZWN0aW9uX2dldF91bmlxdWVfbmFtZSAoY29ubmVjdGlvbikp OwotKwotKyAgICAvKiBzZXQgYSBub24temVybyBzZXJpYWwgdG8gbWFrZSBsaWJkYnVzIGhhcHB5 ICovCi0rICAgIGdfZGJ1c19tZXNzYWdlX3NldF9zZXJpYWwgKG1lc3NhZ2UsICsrc2VyaWFsKTsK LSsgICAgZ19kYnVzX21lc3NhZ2Vfc2V0X2JvZHkgKG1lc3NhZ2UsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHMpIiwgbmFtZSkpOwotKwotKyAgICBidXNf ZGJ1c19pbXBsX2ZvcndhcmRfbWVzc2FnZSAoZGJ1cywgY29ubmVjdGlvbiwgbWVzc2FnZSk7Ci0r ICAgIGdfb2JqZWN0X3VucmVmIChtZXNzYWdlKTsKLSsgICAgZ19vYmplY3RfdW5yZWYgKGNvbm5l Y3Rpb24pOwotK30KLSsKLSsvKioKLSsgKiBidXNfZGJ1c19pbXBsX25hbWVfYWNxdWlyZWQ6Ci0r ICoKLSsgKiBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIG5hbWUtYWNxdWlyZWQgc2lnbmFsLCB0 eXBpY2FsbHkgd2hlbiBnX3NpZ25hbF9lbWl0IChkYnVzLCBOQU1FX0xPU1QpCi0rICogaXMgY2Fs bGVkLCBhbmQgYnJvYWRjYXN0cyB0aGUgc2lnbmFsIHRvIGNsaWVudHMuCi0rICovCi0rc3RhdGlj IHZvaWQKLStidXNfZGJ1c19pbXBsX25hbWVfYWNxdWlyZWQgKEJ1c0RCdXNJbXBsICAgKmRidXMs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdXNDb25uZWN0aW9uICpjb25uZWN0aW9u LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAqbmFtZSkKLSt7 Ci0rICAgIHN0YXRpYyBndWludDMyIHNlcmlhbCA9IDA7Ci0rCi0rICAgIGdfYXNzZXJ0IChCVVNf SVNfREJVU19JTVBMIChkYnVzKSk7Ci0rICAgIGdfYXNzZXJ0IChuYW1lICE9IE5VTEwpOwotKwot KyAgICBHREJ1c01lc3NhZ2UgKm1lc3NhZ2UgPSBnX2RidXNfbWVzc2FnZV9uZXdfc2lnbmFsICgi L29yZy9mcmVlZGVza3RvcC9EQnVzIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5EQnVzIiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5hbWVBY3F1 aXJlZCIpOwotKyAgICBnX2RidXNfbWVzc2FnZV9zZXRfc2VuZGVyIChtZXNzYWdlLCAib3JnLmZy ZWVkZXNrdG9wLkRCdXMiKTsKLSsgICAgZ19kYnVzX21lc3NhZ2Vfc2V0X2Rlc3RpbmF0aW9uICht ZXNzYWdlLCBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25hbWUgKGNvbm5lY3Rpb24pKTsKLSsK LSsgICAgLyogc2V0IGEgbm9uLXplcm8gc2VyaWFsIHRvIG1ha2UgbGliZGJ1cyBoYXBweSAqLwot KyAgICBnX2RidXNfbWVzc2FnZV9zZXRfc2VyaWFsIChtZXNzYWdlLCArK3NlcmlhbCk7Ci0rICAg IGdfZGJ1c19tZXNzYWdlX3NldF9ib2R5IChtZXNzYWdlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ192YXJpYW50X25ldyAoIihzKSIsIG5hbWUpKTsKLSsKLSsgICAgYnVzX2RidXNf aW1wbF9mb3J3YXJkX21lc3NhZ2UgKGRidXMsIGNvbm5lY3Rpb24sIG1lc3NhZ2UpOwotKyAgICBn X29iamVjdF91bnJlZiAobWVzc2FnZSk7Ci0rICAgIGdfb2JqZWN0X3VucmVmIChjb25uZWN0aW9u KTsKLSt9Ci0rCi0rLyoqCi0gICogYnVzX2RidXNfaW1wbF9zZXJ2aWNlX21ldGhvZF9jYWxsOgot ICAqCi0gICogSGFuZGxlIGEgRC1CdXMgbWV0aG9kIGNhbGwgZnJvbSBhIGNsaWVudC4gVGhpcyBm dW5jdGlvbiBvdmVycmlkZXMgYW4gaW1wbGVtZW50YXRpb24gaW4gc3JjL2lidXNzZXJ2aWNlLmMu Ci1AQCAtOTM1LDYgKzEzMDYsMTAgQEAgYnVzX2RidXNfaW1wbF9jb25uZWN0aW9uX2Rlc3Ryb3lf Y2IgKEJ1c0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJ1c0RCdXNJbXBsICAgKmRidXMpCi0gewotICAgICBjb25zdCBnY2hhciAq dW5pcXVlX25hbWUgPSBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25hbWUgKGNvbm5lY3Rpb24p OwotKyAgICBjb25zdCBHTGlzdCAqbmFtZXMgPSBOVUxMOwotKyAgICBCdXNOYW1lU2VydmljZSAq c2VydmljZSA9IE5VTEw7Ci0rICAgIEdTTGlzdCAqb3duZXJzID0gTlVMTDsKLSsKLSAgICAgaWYg KHVuaXF1ZV9uYW1lICE9IE5VTEwpIHsKLSAgICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmUgKGRi dXMtPnVuaXF1ZV9uYW1lcywgdW5pcXVlX25hbWUpOwotICAgICAgICAgZ19zaWduYWxfZW1pdCAo ZGJ1cywKLUBAIC05NDUsMTYgKzEzMjAsNzEgQEAgYnVzX2RidXNfaW1wbF9jb25uZWN0aW9uX2Rl c3Ryb3lfY2IgKEJ1c0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24sCi0gICAgICAgICAgICAgICAgICAg ICAgICAiIik7Ci0gICAgIH0KLSAKLS0gICAgY29uc3QgR0xpc3QgKm5hbWUgPSBidXNfY29ubmVj dGlvbl9nZXRfbmFtZXMgKGNvbm5lY3Rpb24pOwotLSAgICB3aGlsZSAobmFtZSAhPSBOVUxMKSB7 Ci0tICAgICAgICBnX2hhc2hfdGFibGVfcmVtb3ZlIChkYnVzLT5uYW1lcywgbmFtZS0+ZGF0YSk7 Ci0rICAgIC8qIHNlcnZpY2UtPm93bmVycyBpcyB0aGUgcXVldWUgb2YgY29ubmVjdGlvbnMuCi0r ICAgICAqIElmIHRoZSBjb25uZWN0aW9uIGlzIHRoZSBwcmltYXJ5IG93bmVyIGFuZAotKyAgICAg KiBidXNfbmFtZV9zZXJ2aWNlX3JlbW92ZV9vd25lcigpIGlzIGNhbGxlZCwgdGhlIG93bmVyIGlz IHJlbW92ZWQKLSsgICAgICogaW4gdGhlIHF1ZXVlIGFuZCB0aGUgbmV4dCBvd25lciB3aWxsIGJl Y29tZSB0aGUgcHJpbWFyeSBvd25lcgotKyAgICAgKiBhdXRvbWF0aWNhbGx5IGJlY2F1c2Ugc2Vy dmljZS0+b3duZXJzIGlzIGp1c3QgYSBHU0xpc3QuCi0rICAgICAqIElmIHNlcnZpY2UtPm93bmVy cyA9PSBOVUxMLCBpdCdzIGdvb2QgdG8gcmVtb3ZlIHRoZSBzZXJ2aWNlIGluCi0rICAgICAqIGRi dXMtPm5hbWVzLgotKyAgICAgKiBJIHN1cHBvc2UgZGJ1cy0+bmFtZXMgYXJlIGdsb2JhbCBxdWV1 ZSBmb3IgZXZlcnkgY29ubmVjdGlvbiBhbmQKLSsgICAgICogY29ubmVjdGlvbi0+bmFtZXMgYXJl IHByaXZhdGUgcXVldWUgb2YgdGhlIGNvbm5lY3Rpb24uCi0rICAgICAqLwotKyAgICBuYW1lcyA9 IGJ1c19jb25uZWN0aW9uX2dldF9uYW1lcyAoY29ubmVjdGlvbik7Ci0rICAgIHdoaWxlIChuYW1l cyAhPSBOVUxMKSB7Ci0rICAgICAgICBzZXJ2aWNlID0gKEJ1c05hbWVTZXJ2aWNlICopIGdfaGFz aF90YWJsZV9sb29rdXAgKGRidXMtPm5hbWVzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lcy0+ZGF0YSk7Ci0rICAgICAgICBp ZiAoc2VydmljZSkgewotKyAgICAgICAgICAgIG93bmVycyA9IF9idXNfbmFtZV9zZXJ2aWNlX2Zp bmRfb3duZXJfbGluayAoc2VydmljZSwgY29ubmVjdGlvbik7Ci0rICAgICAgICAgICAgaWYgKG93 bmVycykgewotKyAgICAgICAgICAgICAgICBCdXNDb25uZWN0aW9uT3duZXIgKm93bmVyID0gb3du ZXJzLT5kYXRhOwotKyAgICAgICAgICAgICAgICBidXNfbmFtZV9zZXJ2aWNlX3JlbW92ZV9vd25l ciAoc2VydmljZSwgb3duZXIsIGRidXMpOwotKyAgICAgICAgICAgICAgICBidXNfY29ubmVjdGlv bl9vd25lcl9mcmVlIChvd25lcik7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGlmIChz ZXJ2aWNlLT5vd25lcnMgPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICAvKiBnX2hhc2hfdGFi bGVfcmVtb3ZlKCkgd2lsbCBjYWxsIGJ1c19uYW1lX3NlcnZpY2VfZnJlZSgpCi0rICAgICAgICAg ICAgICAgICAqIGR1ZSB0byBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoKSAqLwotKyAgICAgICAgICAg ICAgICBnX2hhc2hfdGFibGVfcmVtb3ZlIChkYnVzLT5uYW1lcywgbmFtZXMtPmRhdGEpOwotKyAg ICAgICAgICAgICAgICBzZXJ2aWNlID0gTlVMTDsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9 Ci0rICAgICAgICAvKiBpZiBzZXJ2aWNlID09IE5VTEwsIHRoZSBuYW1lcy0+ZGF0YSBzaG91bGQg YmUgcmVtb3ZlZCBpbgotKyAgICAgICAgICogdGhlIGNvbm5lY3Rpb24gYnkgYnVzX2Nvbm5lY3Rp b25fcmVtb3ZlX25hbWUoKS4KLSsgICAgICAgICAqIEJ1dCBjb25uZWN0aW9uLT5uYW1lcyBpcyBH U0xpc3Qgc28gaXQgY2Fubm90IGJlIHJlbW92ZWQKLSsgICAgICAgICAqIGR1cmluZyB0aGlzIHdo aWxlIGxvb3AgYmVjYXVzZSBuYW1lcy0+bmV4dCB3b3VsZCBub3QKLSsgICAgICAgICAqIGJlY29t ZSB0aGUgd3JvbmcgcG9pbnRlciBoZXJlLgotKyAgICAgICAgICogdGhlIG5leHQgd2hpbGUgbG9v cCBjYW4gY2FsbCBidXNfY29ubmVjdGlvbl9yZW1vdmVfbmFtZSgpLgotKyAgICAgICAgICovCi0r Ci0gICAgICAgICBnX3NpZ25hbF9lbWl0IChkYnVzLAotICAgICAgICAgICAgICAgICAgICAgICAg ZGJ1c19zaWduYWxzW05BTUVfT1dORVJfQ0hBTkdFRF0sCi0gICAgICAgICAgICAgICAgICAgICAg ICAwLAotLSAgICAgICAgICAgICAgICAgICAgICAgbmFtZS0+ZGF0YSwKLSsgICAgICAgICAgICAg ICAgICAgICAgIG5hbWVzLT5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAiIik7Ci0tICAgICAgICBuYW1lID0gbmFtZS0+ bmV4dDsKLSsgICAgICAgIG5hbWVzID0gbmFtZXMtPm5leHQ7Ci0rICAgIH0KLSsKLSsgICAgd2hp bGUgKChuYW1lcyA9IGJ1c19jb25uZWN0aW9uX2dldF9uYW1lcyAoY29ubmVjdGlvbikpICE9IE5V TEwpIHsKLSsgICAgICAgIGNvbnN0IGdjaGFyICpuYW1lID0gTlVMTDsKLSsgICAgICAgIHNlcnZp Y2UgPSBOVUxMOwotKwotKyAgICAgICAgd2hpbGUgKG5hbWVzICE9IE5VTEwpIHsKLSsgICAgICAg ICAgICBuYW1lID0gKGNvbnN0IGdjaGFyICopIG5hbWVzLT5kYXRhOwotKyAgICAgICAgICAgIHNl cnZpY2UgPSAoQnVzTmFtZVNlcnZpY2UgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoZGJ1cy0+bmFt ZXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lKTsKLSsgICAgICAgICAgICBpZiAoc2VydmljZSA9PSBOVUxMKSB7Ci0r ICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBuYW1l cyA9IG5hbWVzLT5uZXh0OwotKyAgICAgICAgfQotKyAgICAgICAgaWYgKG5hbWVzID09IE5VTEwp IHsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmIChuYW1lID09 IE5VTEwpIHsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSsgICAgICAgIGJ1c19j b25uZWN0aW9uX3JlbW92ZV9uYW1lIChjb25uZWN0aW9uLCBuYW1lKTsKLSAgICAgfQotIAotICAg ICBkYnVzLT5jb25uZWN0aW9ucyA9IGdfbGlzdF9yZW1vdmUgKGRidXMtPmNvbm5lY3Rpb25zLCBj b25uZWN0aW9uKTsKLUBAIC0xMDA0LDcgKzE0MzQsMTUgQEAgYnVzX2RidXNfaW1wbF9nZXRfY29u bmVjdGlvbl9ieV9uYW1lIChCdXNEQnVzSW1wbCAgICAqZGJ1cywKLSAgICAgICAgIHJldHVybiAo QnVzQ29ubmVjdGlvbiAqKSBnX2hhc2hfdGFibGVfbG9va3VwIChkYnVzLT51bmlxdWVfbmFtZXMs IG5hbWUpOwotICAgICB9Ci0gICAgIGVsc2UgewotLSAgICAgICAgcmV0dXJuIChCdXNDb25uZWN0 aW9uICopIGdfaGFzaF90YWJsZV9sb29rdXAgKGRidXMtPm5hbWVzLCBuYW1lKTsKLSsgICAgICAg IEJ1c05hbWVTZXJ2aWNlICpzZXJ2aWNlOwotKyAgICAgICAgQnVzQ29ubmVjdGlvbk93bmVyICpv d25lcjsKLSsKLSsgICAgICAgIHNlcnZpY2UgPSAoQnVzTmFtZVNlcnZpY2UgKikgZ19oYXNoX3Rh YmxlX2xvb2t1cCAoZGJ1cy0+bmFtZXMsIG5hbWUpOwotKyAgICAgICAgaWYgKHNlcnZpY2UgPT0g TlVMTCkgewotKyAgICAgICAgICAgIHJldHVybiBOVUxMOwotKyAgICAgICAgfQotKyAgICAgICAg b3duZXIgPSBidXNfbmFtZV9zZXJ2aWNlX2dldF9wcmltYXJ5X293bmVyIChzZXJ2aWNlKTsKLSsg ICAgICAgIHJldHVybiBvd25lciA/IG93bmVyLT5jb25uIDogTlVMTDsKLSAgICAgfQotIH0KLSAK LWRpZmYgLS1naXQgYS9idXMvbWFyc2hhbGVycy5saXN0IGIvYnVzL21hcnNoYWxlcnMubGlzdAot aW5kZXggMTViZGYwMi4uNTE0ZDZlYSAxMDA2NDQKLS0tLSBhL2J1cy9tYXJzaGFsZXJzLmxpc3QK LSsrKyBiL2J1cy9tYXJzaGFsZXJzLmxpc3QKLUBAIC00LDYgKzQsNyBAQCBWT0lEOklOVCxVSU5U Ci0gVk9JRDpJTlQsSU5ULElOVCxJTlQKLSBWT0lEOk9CSkVDVAotIFZPSUQ6T0JKRUNULEJPT0xF QU4KLStWT0lEOk9CSkVDVCxTVFJJTkcKLSBWT0lEOk9CSkVDVCxVSU5ULEJPT0xFQU4KLSBWT0lE Ok9CSkVDVCxVSU5ULEJPT0xFQU4sVUlOVAotIFZPSUQ6U1RSSU5HCi1kaWZmIC0tZ2l0IGEvaWJ1 cy9jb21tb24ucHkgYi9pYnVzL2NvbW1vbi5weQotaW5kZXggY2JjOGQ1Ni4uNjE0ZDc4MiAxMDA2 NDQKLS0tLSBhL2lidXMvY29tbW9uLnB5Ci0rKysgYi9pYnVzL2NvbW1vbi5weQotQEAgLTM1LDYg KzM1LDEzIEBAIF9fYWxsX18gPSAoCi0gICAgICAgICAiT1JJRU5UQVRJT05fU1lTVEVNIiwKLSAg ICAgICAgICJQUkVMT0FEX0VOR0lORV9NT0RFX1VTRVIiLAotICAgICAgICAgIlBSRUxPQURfRU5H SU5FX01PREVfTEFOR19SRUxBVElWRSIsCi0rICAgICAgICAiQlVTX05BTUVfRkxBR19BTExPV19S RVBMQUNFTUVOVCIsCi0rICAgICAgICAiQlVTX05BTUVfRkxBR19SRVBMQUNFX0VYSVNUSU5HIiwK LSsgICAgICAgICJCVVNfTkFNRV9GTEFHX0RPX05PVF9RVUVVRSIsCi0rICAgICAgICAiQlVTX1JF UVVFU1RfTkFNRV9SRVBMWV9QUklNQVJZX09XTkVSIiwKLSsgICAgICAgICJCVVNfUkVRVUVTVF9O QU1FX1JFUExZX0lOX1FVRVVFIiwKLSsgICAgICAgICJCVVNfUkVRVUVTVF9OQU1FX1JFUExZX0VY SVNUUyIsCi0rICAgICAgICAiQlVTX1JFUVVFU1RfTkFNRV9SRVBMWV9BTFJFQURZX09XTkVSIiwK LSAgICAgICAgICJkZWZhdWx0X3JlcGx5X2hhbmRsZXIiLAotICAgICAgICAgImRlZmF1bHRfZXJy b3JfaGFuZGxlciIsCi0gICAgICAgICAiREVGQVVMVF9BU1lOQ19IQU5ETEVSUyIsCi1AQCAtNDcs NyArNTQsOCBAQCBfX2FsbF9fID0gKAotICAgICAgICAgIm1haW5fcXVpdCIsCi0gICAgICAgICAi bWFpbl9pdGVyYXRpb24iLAotICAgICAgICAgImdldF9hZGRyZXNzIiwKLS0gICAgICAgICJnZXRf c29ja2V0X3BhdGgiCi0rICAgICAgICAiZ2V0X3NvY2tldF9wYXRoIiwKLSsgICAgICAgICJpc19y dW5uaW5nX2dub21lX3NoZWxsIiwKLSAgICAgKQotIAotIGltcG9ydCBvcwotQEAgLTEwNiw2ICsx MTQsOSBAQCBnZXRfYWRkcmVzcy5yZXN0eXBlPWN0eXBlcy5jX2NoYXJfcAotIGdldF9zb2NrZXRf cGF0aCA9IGxpYmlidXMuaWJ1c19nZXRfc29ja2V0X3BhdGgKLSBnZXRfc29ja2V0X3BhdGgucmVz dHlwZT1jdHlwZXMuY19jaGFyX3AKLSAKLStpc19ydW5uaW5nX2dub21lX3NoZWxsID0gbGliaWJ1 cy5pYnVzX2lzX3J1bm5pbmdfZ25vbWVfc2hlbGwKLStpc19ydW5uaW5nX2dub21lX3NoZWxsLnJl c3R5cGUgPSBjdHlwZXMuY19ib29sCi0rCi0gIyBfX3Nlc3Npb25faWQgPSBvcy5nZXRlbnYgKCJJ QlVTX1NFU1NJT05fSUQiKQotICMgCi0gIyBJQlVTX0FERFIgPSAidW5peDpwYXRoPS90bXAvaWJ1 cy0lcyVzL2lidXMtJXMtJXMiICUgKF9fdXNlcm5hbWUsCi1AQCAtMTM4LDYgKzE0OSwxNyBAQCBP UklFTlRBVElPTl9TWVNURU0gICAgICA9IDIKLSBQUkVMT0FEX0VOR0lORV9NT0RFX1VTRVIgICAg ICAgICAgPSAwCi0gUFJFTE9BRF9FTkdJTkVfTU9ERV9MQU5HX1JFTEFUSVZFID0gMQotIAotKyMg ZGVmaW5lIGJ1cyBuYW1lIGZsYWcKLStCVVNfTkFNRV9GTEFHX0FMTE9XX1JFUExBQ0VNRU5UICAg PSAoMSA8PCAwKQotK0JVU19OQU1FX0ZMQUdfUkVQTEFDRV9FWElTVElORyAgICA9ICgxIDw8IDEp Ci0rQlVTX05BTUVfRkxBR19ET19OT1RfUVVFVUUgICAgICAgID0gKDEgPDwgMikKLSsKLSsjIGRl ZmluZSBidXMgcmVxdWVzdCBuYW1lIHJlcGx5Ci0rQlVTX1JFUVVFU1RfTkFNRV9SRVBMWV9QUklN QVJZX09XTkVSID0gMQotK0JVU19SRVFVRVNUX05BTUVfUkVQTFlfSU5fUVVFVUUgICAgICA9IDIK LStCVVNfUkVRVUVTVF9OQU1FX1JFUExZX0VYSVNUUyAgICAgICAgPSAzCi0rQlVTX1JFUVVFU1Rf TkFNRV9SRVBMWV9BTFJFQURZX09XTkVSID0gNAotKwotIGRlZiBkZWZhdWx0X3JlcGx5X2hhbmRs ZXIoICphcmdzKToKLSAgICAgcGFzcwotIAotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBi L3NyYy9NYWtlZmlsZS5hbQotaW5kZXggMDgxNTJhNy4uZDQyMjEwNiAxMDA2NDQKLS0tLSBhL3Ny Yy9NYWtlZmlsZS5hbQotKysrIGIvc3JjL01ha2VmaWxlLmFtCi1AQCAtODcsNiArODcsNyBAQCBp YnVzX3NvdXJjZXMgPSAgICAgICAgICAgICAgXAotICAgICBpYnVzZW5naW5lZGVzYy5jICAgICAg ICBcCi0gICAgIGlidXNvYnNlcnZlZHBhdGguYyAgICAgIFwKLSAgICAgaWJ1c2NvbXBvbmVudC5j ICAgICAgICAgXAotKyAgICBpYnVzdXRpbC5jICAgICAgICAgICAgICBcCi0gJChOVUxMKQotIGxp YmlidXNfMV8wX2xhX1NPVVJDRVMgPSAgICBcCi0gICAgICQoaWJ1c19zb3VyY2VzKSAgICAgICAg IFwKLUBAIC0xMzEsNiArMTMyLDcgQEAgaWJ1c19oZWFkZXJzID0gICAgICAgICAgICAgIFwKLSAg ICAgaWJ1c2VuZ2luZWRlc2MuaCAgICAgICAgXAotICAgICBpYnVzb2JzZXJ2ZWRwYXRoLmggICAg ICBcCi0gICAgIGlidXNjb21wb25lbnQuaCAgICAgICAgIFwKLSsgICAgaWJ1c3V0aWwuaCAgICAg ICAgICAgICAgXAotICAgICAkKE5VTEwpCi0gaWJ1c2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIp L2lidXMtQElCVVNfQVBJX1ZFUlNJT05ACi0gaWJ1c19wdWJsaWNfaGVhZGVycyA9ICAgICAgIFwK LWRpZmYgLS1naXQgYS9zcmMvaWJ1c2J1cy5jIGIvc3JjL2lidXNidXMuYwotaW5kZXggNWEzYjk3 OC4uNzg4MDhhNCAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzYnVzLmMKLSsrKyBiL3NyYy9pYnVzYnVz LmMKLUBAIC02MTMsMTUgKzYxMywxNSBAQCBpYnVzX2J1c19oZWxsbyAoSUJ1c0J1cyAqYnVzKQot ICNlbmRpZgotIH0KLSAKLS1ndWludAotK2d1aW50MzIKLSBpYnVzX2J1c19yZXF1ZXN0X25hbWUg KElCdXNCdXMgICAgICAqYnVzLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg ICpuYW1lLAotLSAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICBmbGFncykKLSsg ICAgICAgICAgICAgICAgICAgICAgIGd1aW50MzIgICAgICAgZmxhZ3MpCi0gewotICAgICBnX3Jl dHVybl92YWxfaWZfZmFpbCAoSUJVU19JU19CVVMgKGJ1cyksIDApOwotICAgICBnX3JldHVybl92 YWxfaWZfZmFpbCAobmFtZSAhPSBOVUxMLCAwKTsKLSAKLS0gICAgZ3VpbnQgcmV0dmFsID0gMDsK LSsgICAgZ3VpbnQzMiByZXR2YWwgPSAwOwotICAgICBHVmFyaWFudCAqcmVzdWx0OwotICAgICBy ZXN1bHQgPSBpYnVzX2J1c19jYWxsX3N5bmMgKGJ1cywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEQlVTX1NFUlZJQ0VfREJVUywKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2J1cy5o IGIvc3JjL2lidXNidXMuaAotaW5kZXggYjFlYzYzYy4uZGU0Y2QzNiAxMDA2NDQKLS0tLSBhL3Ny Yy9pYnVzYnVzLmgKLSsrKyBiL3NyYy9pYnVzYnVzLmgKLUBAIC0xMjIsMTYgKzEyMiwxNiBAQCBj b25zdCBnY2hhciAqaWJ1c19idXNfaGVsbG8gICAgICAgICAgICAgCi0gICogaWJ1c19idXNfcmVx dWVzdF9uYW1lOgotICAqIEBidXM6IHRoZSBJQnVzQnVzIGluc3RhbmNlIHRvIGJlIHByb2Nlc3Nl ZC4KLSAgKiBAbmFtZTogTmFtZSB0byBiZSByZXF1ZXN0ZWQuCi0tICogQGZsYWdzOiBGbGFncyAo Rml4TWUpLgotLSAqIEByZXR1cm5zOiAwIGlmIGZhaWxlZDsgcG9zaXRpdmUgbnVtYmVyIG90aGVy d2lzZS4KLSsgKiBAZmxhZ3M6IElCdXNCdXNOYW1lRmxhZy4KLSsgKiBAcmV0dXJuczogMCBpZiBm YWlsZWQ7IElCdXNCdXNSZXF1ZXN0TmFtZVJlcGx5IG90aGVyd2lzZS4KLSAgKgotICAqIFJlcXVl c3QgYSBuYW1lIGZyb20gSUJ1cyBkYWVtb24gc3luY2hyb25vdXNseS4KLSAgKgotICAqIEZJWE1F IGFkZCBhbiBhc3luY2hyb25vdXMgdmVyc2lvbi4KLSAgKi8KLS1ndWludCAgICAgICAgaWJ1c19i dXNfcmVxdWVzdF9uYW1lICAgICAgKElCdXNCdXMgICAgICAgICpidXMsCi0rZ3VpbnQzMiAgICAg IGlidXNfYnVzX3JlcXVlc3RfbmFtZSAgICAgIChJQnVzQnVzICAgICAgICAqYnVzLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgKm5hbWUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAg ICAgZmxhZ3MpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp bnQzMiAgICAgICAgIGZsYWdzKTsKLSAKLSAvKioKLSAgKiBpYnVzX2J1c19yZWxlYXNlX25hbWU6 Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNwcm9wZXJ0eS5jIGIvc3JjL2lidXNwcm9wZXJ0eS5jCi1p bmRleCBiYjljYzIxLi41YTJkZDc4IDEwMDY0NAotLS0tIGEvc3JjL2lidXNwcm9wZXJ0eS5jCi0r KysgYi9zcmMvaWJ1c3Byb3BlcnR5LmMKLUBAIC0yMTcsNiArMjE3LDMwIEBAIGlidXNfcHJvcGVy dHlfbmV3IChjb25zdCBnY2hhciAgICprZXksCi0gICAgIHJldHVybiBwcm9wOwotIH0KLSAKLSsj ZGVmaW5lIElCVVNfUFJPUEVSVFlfR0VUX0ZJRUxEKGZpZWxkLCByZXR1cm5fdHlwZSkgXAotK3Jl dHVybl90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLStpYnVzX3Byb3BlcnR5X2dldF8gIyMgZmllbGQgKElCdXNQcm9wZXJ0 eSAqcHJvcCkgICAgICAgICAgICAgICAgICAgICAgICBcCi0reyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAg ICByZXR1cm4gcHJvcC0+ZmllbGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSt9Ci0rCi0rSUJVU19QUk9QRVJUWV9HRVRfRklFTEQgKGtleSwgY29u c3QgZ2NoYXIgKikKLStJQlVTX1BST1BFUlRZX0dFVF9GSUVMRCAoaWNvbiwgY29uc3QgZ2NoYXIg KikKLStJQlVTX1BST1BFUlRZX0dFVF9GSUVMRCAobGFiZWwsIGNvbnN0IElCdXNUZXh0ICopCi0r SUJVU19QUk9QRVJUWV9HRVRfRklFTEQgKHRvb2x0aXAsIGNvbnN0IElCdXNUZXh0ICopCi0rSUJV U19QUk9QRVJUWV9HRVRfRklFTEQgKHNlbnNpdGl2ZSwgZ2Jvb2xlYW4pCi0rSUJVU19QUk9QRVJU WV9HRVRfRklFTEQgKHZpc2libGUsIGdib29sZWFuKQotK0lCVVNfUFJPUEVSVFlfR0VUX0ZJRUxE IChzdGF0ZSwgSUJ1c1Byb3BTdGF0ZSkKLStJQlVTX1BST1BFUlRZX0dFVF9GSUVMRCAoc3ViX3By b3BzLCBjb25zdCBJQnVzUHJvcExpc3QgKikKLSsjdW5kZWYgSUJVU19QUk9QRVJUWV9HRVRfRklF TEQKLSsKLSsvKiBpYnVzX3Byb3BlcnR5X2dldF90eXBlKCkgZXhpc3RzICovCi0rSUJ1c1Byb3BU eXBlCi0raWJ1c19wcm9wZXJ0eV9nZXRfcHJvcF90eXBlIChJQnVzUHJvcGVydHkgKnByb3ApCi0r ewotKyAgICByZXR1cm4gcHJvcC0+dHlwZTsKLSt9Ci0rCi0gdm9pZAotIGlidXNfcHJvcGVydHlf c2V0X2xhYmVsIChJQnVzUHJvcGVydHkgKnByb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAg IElCdXNUZXh0ICAgICAqbGFiZWwpCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXNwcm9wZXJ0eS5oIGIv c3JjL2lidXNwcm9wZXJ0eS5oCi1pbmRleCAwZjhkNDI3Li41ZTc2YzhmIDEwMDY0NAotLS0tIGEv c3JjL2lidXNwcm9wZXJ0eS5oCi0rKysgYi9zcmMvaWJ1c3Byb3BlcnR5LmgKLUBAIC0xNjQsMTIg KzE2NCwxMiBAQCBHVHlwZSAgICAgICAgICAgIGlidXNfcHJvcGVydHlfZ2V0X3R5cGUgICAgICgp OwotICAqIEBrZXk6IFVuaXF1ZSBJZGVudGl0eSBmb3IgdGhlIElCdXNQcm9wZXJ0eS4KLSAgKiBA dHlwZTogSUJ1c1Byb3BUeXBlIG9mIElCdXNQcm9wZXJ0eS4KLSAgKiBAbGFiZWw6IFRleHQgc2hv d24gaW4gVUkuCi0tICogQGljb246IEljb24gZmlsZSBmb3IgdGhlIElCdXNQcm9wZXJ0eS4KLSsg KiBAaWNvbjogKGFsbG93LW5vbmUpOiBJY29uIGZpbGUgZm9yIHRoZSBJQnVzUHJvcGVydHkuCi0g ICogQHRvb2x0aXA6IE1lc3NhZ2Ugc2hvd24gaWYgbW91c2UgaG92ZXJlZCB0aGUgIElCdXNQcm9w ZXJ0eS4KLSAgKiBAc2Vuc2l0aXZlOiBXaGV0aGVyIHRoZSBJQnVzUHJvcGVydHkgaXMgc2Vuc2l0 aXZlIHRvIGtleWJvYXJkIGFuZCBtb3VzZSBldmVudC4KLSAgKiBAdmlzaWJsZTogV2hldGhlciB0 aGUgSUJ1c1Byb3BlcnR5IGlzIHZpc2libGUuCi0gICogQHN0YXRlOiBJQnVzUHJvcFN0YXRlIG9m IElCdXNQcm9wZXJ0eS4KLS0gKiBAcHJvcF9saXN0OiBJQnVzUHJvcExpc3QgdGhhdCBjb250YWlu cyBzdWIgSUJ1c1Byb3BlcnRpZXMuCi0rICogQHByb3BfbGlzdDogKGFsbG93LW5vbmUpOiBJQnVz UHJvcExpc3QgdGhhdCBjb250YWlucyBzdWIgSUJ1c1Byb3BlcnRpZXMuCi0gICogQHJldHVybnM6 IEEgbmV3bHkgYWxsb2NhdGVkIElCdXNQcm9wZXJ0eS4KLSAgKgotICAqIE5ldyBhIElCdXNQcm9w ZXJ0eS4KLUBAIC0xODUsNiArMTg1LDMzIEBAIElCdXNQcm9wZXJ0eSAgICAqaWJ1c19wcm9wZXJ0 eV9uZXcgICAgICAgICAgKGNvbnN0IGdjaGFyICAgICprZXksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c1Byb3BMaXN0ICAgKnByb3BfbGlzdCk7Ci0g Ci0gLyoqCi0rICogaWJ1c19wcm9wZXJ0eV9nZXRfa2V5OgotKyAqIEBwcm9wOiBBbiBJQnVzUHJv cGVydHkuCi0rICogQHJldHVybnM6IHRoZSBrZXkgb2YgSUJ1c1Byb3BlcnR5LiBTaG91bGQgbm90 IGJlIGZyZWVkLgotKyAqCi0rICogR2V0IHRoZSBrZXkgb2YgSUJ1c1Byb3BlcnR5LgotKyAqLwot K2NvbnN0IGdjaGFyICogICAgaWJ1c19wcm9wZXJ0eV9nZXRfa2V5ICAgICAgKElCdXNQcm9wZXJ0 eSAgICpwcm9wKTsKLSsKLSsvKioKLSsgKiBpYnVzX3Byb3BlcnR5X2dldF9wcm9wX3R5cGU6Ci0r ICogQHByb3A6IEFuIElCdXNQcm9wZXJ0eS4KLSsgKiBAcmV0dXJuczogdGhlIHR5cGUgb2YgSUJ1 c1Byb3BlcnR5LgotKyAqCi0rICogR2V0IHRoZSB0eXBlIG9mIElCdXNQcm9wZXJ0eS4KLSsgKi8K LStJQnVzUHJvcFR5cGUgICAgIGlidXNfcHJvcGVydHlfZ2V0X3Byb3BfdHlwZShJQnVzUHJvcGVy dHkgICAqcHJvcCk7Ci0rCi0rLyoqCi0rICogaWJ1c19wcm9wZXJ0eV9nZXRfbGFiZWw6Ci0rICog QHByb3A6IEFuIElCdXNQcm9wZXJ0eS4KLSsgKiBAcmV0dXJuczogdGhlIGxhYmVsIG9mIElCdXNQ cm9wZXJ0eS4gU2hvdWxkIG5vdCBiZSBmcmVlZC4KLSsgKgotKyAqIEdldCB0aGUgbGFiZWwgb2Yg SUJ1c1Byb3BlcnR5LgotKyAqLwotK2NvbnN0IElCdXNUZXh0ICogaWJ1c19wcm9wZXJ0eV9nZXRf bGFiZWwgICAgKElCdXNQcm9wZXJ0eSAgICpwcm9wKTsKLSsKLSsvKioKLSAgKiBpYnVzX3Byb3Bl cnR5X3NldF9sYWJlbDoKLSAgKiBAcHJvcDogQW4gSUJ1c1Byb3BlcnR5LgotICAqIEBsYWJlbDog VGV4dCBzaG93biBpbiBVSS4KLUBAIC0xOTUsNiArMjIyLDE1IEBAIHZvaWQgICAgICAgICAgICAg aWJ1c19wcm9wZXJ0eV9zZXRfbGFiZWwgICAgKElCdXNQcm9wZXJ0eSAgICpwcm9wLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNUZXh0ICAgICAgICps YWJlbCk7Ci0gCi0gLyoqCi0rICogaWJ1c19wcm9wZXJ0eV9nZXRfaWNvbjoKLSsgKiBAcHJvcDog QW4gSUJ1c1Byb3BlcnR5LgotKyAqIEByZXR1cm5zOiB0aGUgaWNvbiBvZiBJQnVzUHJvcGVydHku IFNob3VsZCBub3QgYmUgZnJlZWQuCi0rICoKLSsgKiBHZXQgdGhlIGljb24gb2YgSUJ1c1Byb3Bl cnR5LgotKyAqLwotK2NvbnN0IGdjaGFyICogICAgaWJ1c19wcm9wZXJ0eV9nZXRfaWNvbiAgICAg KElCdXNQcm9wZXJ0eSAgICpwcm9wKTsKLSsKLSsvKioKLSAgKiBpYnVzX3Byb3BlcnR5X3NldF9p Y29uOgotICAqIEBwcm9wOiBBbiBJQnVzUHJvcGVydHkuCi0gICogQGljb246IEljb24gc2hvd24g aW4gVUkuIEl0IGNvdWxkIGJlIGEgZnVsbCBwYXRoIG9mIGFuIGljb24gZmlsZSBvciBhbiBpY29u IG5hbWUuCi1AQCAtMjA1LDYgKzI0MSwxNSBAQCB2b2lkICAgICAgICAgICAgIGlidXNfcHJvcGVy dHlfc2V0X2ljb24gICAgIChJQnVzUHJvcGVydHkgICAqcHJvcCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAqaWNvbik7Ci0gCi0g LyoqCi0rICogaWJ1c19wcm9wZXJ0eV9nZXRfdG9vbHRpcDoKLSsgKiBAcHJvcDogQW4gSUJ1c1By b3BlcnR5LgotKyAqIEByZXR1cm5zOiB0aGUgdG9vbHRpcCBvZiBJQnVzUHJvcGVydHkuIFNob3Vs ZCBub3QgYmUgZnJlZWQuCi0rICoKLSsgKiBHZXQgdGhlIHRvb2x0aXAgb2YgSUJ1c1Byb3BlcnR5 LgotKyAqLwotK2NvbnN0IElCdXNUZXh0ICogaWJ1c19wcm9wZXJ0eV9nZXRfdG9vbHRpcCAgKElC dXNQcm9wZXJ0eSAgICpwcm9wKTsKLSsKLSsvKioKLSAgKiBpYnVzX3Byb3BlcnR5X3NldF90b29s dGlwOgotICAqIEBwcm9wOiBBbiBJQnVzUHJvcGVydHkuCi0gICogQHRvb2x0aXA6IFRleHQgb2Yg dGhlIHRvb2x0aXAuCi1AQCAtMjE1LDYgKzI2MCwxNSBAQCB2b2lkICAgICAgICAgICAgIGlidXNf cHJvcGVydHlfc2V0X3Rvb2x0aXAgIChJQnVzUHJvcGVydHkgICAqcHJvcCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAqdG9vbHRp cCk7Ci0gCi0gLyoqCi0rICogaWJ1c19wcm9wZXJ0eV9nZXRfc2Vuc2l0aXZlOgotKyAqIEBwcm9w OiBBbiBJQnVzUHJvcGVydHkuCi0rICogQHJldHVybnM6IHRoZSBzZW5zaXRpdmUgb2YgSUJ1c1By b3BlcnR5LgotKyAqCi0rICogR2V0IHRoZSBzZW5zaXRpdmUgb2YgSUJ1c1Byb3BlcnR5LgotKyAq LwotK2dib29sZWFuICAgICAgICAgaWJ1c19wcm9wZXJ0eV9nZXRfc2Vuc2l0aXZlKElCdXNQcm9w ZXJ0eSAgICpwcm9wKTsKLSsKLSsvKioKLSAgKiBpYnVzX3Byb3BlcnR5X3NldF9zZW5zaXRpdmU6 Ci0gICogQHByb3A6IEFuIElCdXNQcm9wZXJ0eS4KLSAgKiBAc2Vuc2l0aXZlOiBXaGV0aGVyIHRo ZSBJQnVzUHJvcGVydHkgaXMgc2Vuc2l0aXZlLgotQEAgLTIyNSw2ICsyNzksMTUgQEAgdm9pZCAg ICAgICAgICAgICBpYnVzX3Byb3BlcnR5X3NldF9zZW5zaXRpdmUoSUJ1c1Byb3BlcnR5ICAgKnBy b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xl YW4gICAgICAgIHNlbnNpdGl2ZSk7Ci0gCi0gLyoqCi0rICogaWJ1c19wcm9wZXJ0eV9nZXRfdmlz aWJsZToKLSsgKiBAcHJvcDogQW4gSUJ1c1Byb3BlcnR5LgotKyAqIEByZXR1cm5zOiB0aGUgdmlz aWJsZSBvZiBJQnVzUHJvcGVydHkuCi0rICoKLSsgKiBHZXQgdGhlIHZpc2libGUgb2YgSUJ1c1By b3BlcnR5LgotKyAqLwotK2dib29sZWFuICAgICAgICAgaWJ1c19wcm9wZXJ0eV9nZXRfdmlzaWJs ZSAgKElCdXNQcm9wZXJ0eSAgICpwcm9wKTsKLSsKLSsvKioKLSAgKiBpYnVzX3Byb3BlcnR5X3Nl dF92aXNpYmxlOgotICAqIEBwcm9wOiBBbiBJQnVzUHJvcGVydHkuCi0gICogQHZpc2libGU6IFdo ZXRoZXIgdGhlIElCdXNQcm9wZXJ0eSBpcyB2aXNpYmxlLgotQEAgLTIzNSw2ICsyOTgsMTUgQEAg dm9pZCAgICAgICAgICAgICBpYnVzX3Byb3BlcnR5X3NldF92aXNpYmxlICAoSUJ1c1Byb3BlcnR5 ICAgKnByb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2Jvb2xlYW4gICAgICAgIHZpc2libGUpOwotIAotIC8qKgotKyAqIGlidXNfcHJvcGVydHlfZ2V0 X3N0YXRlOgotKyAqIEBwcm9wOiBBbiBJQnVzUHJvcGVydHkuCi0rICogQHJldHVybnM6IHRoZSBz dGF0ZSBvZiBJQnVzUHJvcGVydHkuCi0rICoKLSsgKiBHZXQgdGhlIHN0YXRlIG9mIElCdXNQcm9w ZXJ0eS4KLSsgKi8KLStJQnVzUHJvcFN0YXRlICAgIGlidXNfcHJvcGVydHlfZ2V0X3N0YXRlICAg IChJQnVzUHJvcGVydHkgICAqcHJvcCk7Ci0rCi0rLyoqCi0gICogaWJ1c19wcm9wZXJ0eV9zZXRf c3RhdGU6Ci0gICogQHByb3A6IEFuIElCdXNQcm9wZXJ0eS4KLSAgKiBAc3RhdGU6IFRoZSBzdGF0 ZSBvZiB0aGUgSUJ1c1Byb3BlcnR5LgotQEAgLTI0NCw2ICszMTYsMTUgQEAgdm9pZCAgICAgICAg ICAgICBpYnVzX3Byb3BlcnR5X3NldF92aXNpYmxlICAoSUJ1c1Byb3BlcnR5ICAgKnByb3AsCi0g dm9pZCAgICAgICAgICAgICBpYnVzX3Byb3BlcnR5X3NldF9zdGF0ZSAgICAoSUJ1c1Byb3BlcnR5 ICAgKnByb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SUJ1c1Byb3BTdGF0ZSAgIHN0YXRlKTsKLSAKLSsvKioKLSsgKiBpYnVzX3Byb3BlcnR5X2dldF9z dWJfcHJvcHM6Ci0rICogQHByb3A6IEFuIElCdXNQcm9wZXJ0eS4KLSsgKiBAcmV0dXJuczogdGhl IElCdXNQcm9wTGlzdCBvZiBJQnVzUHJvcGVydHkuIFNob3VsZCBub3QgYmUgZnJlZWQuCi0rICoK LSsgKiBHZXQgdGhlIElCdXNQcm9wTGlzdCBvZiBJQnVzUHJvcGVydHkuCi0rICovCi0rY29uc3Qg SUJ1c1Byb3BMaXN0ICoKLSsgICAgICAgICAgICAgICAgIGlidXNfcHJvcGVydHlfZ2V0X3N1Yl9w cm9wcyhJQnVzUHJvcGVydHkgICAqcHJvcCk7Ci0gCi0gLyoqCi0gICogaWJ1c19wcm9wZXJ0eV9z ZXRfc3ViX3Byb3BzOgotZGlmZiAtLWdpdCBhL3NyYy9pYnVzdGV4dC5jIGIvc3JjL2lidXN0ZXh0 LmMKLWluZGV4IGI2M2NiYzkuLjU4ODliNjQgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c3RleHQuYwot KysrIGIvc3JjL2lidXN0ZXh0LmMKLUBAIC0yNjgsMyArMjY4LDIxIEBAIGlidXNfdGV4dF9nZXRf bGVuZ3RoIChJQnVzVGV4dCAqdGV4dCkKLSB7Ci0gICAgIHJldHVybiBnX3V0Zjhfc3RybGVuICh0 ZXh0LT50ZXh0LCAtMSk7Ci0gfQotKwotK2dib29sZWFuCi0raWJ1c190ZXh0X2dldF9pc19zdGF0 aWMgKElCdXNUZXh0ICp0ZXh0KQotK3sKLSsgICAgcmV0dXJuIHRleHQtPmlzX3N0YXRpYzsKLSt9 Ci0rCi0rY29uc3QgZ2NoYXIgKgotK2lidXNfdGV4dF9nZXRfdGV4dCAoSUJ1c1RleHQgKnRleHQp Ci0rewotKyAgICByZXR1cm4gdGV4dC0+dGV4dDsKLSt9Ci0rCi0rY29uc3QgSUJ1c0F0dHJMaXN0 ICoKLStpYnVzX3RleHRfZ2V0X2F0dHJpYnV0ZXMgKElCdXNUZXh0ICp0ZXh0KQotK3sKLSsgICAg cmV0dXJuIHRleHQtPmF0dHJzOwotK30KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c3RleHQuaCBiL3Ny Yy9pYnVzdGV4dC5oCi1pbmRleCAyNDZlNWFiLi42ZjdjNTA1IDEwMDY0NAotLS0tIGEvc3JjL2li dXN0ZXh0LmgKLSsrKyBiL3NyYy9pYnVzdGV4dC5oCi1AQCAtMTEwLDcgKzExMCw3IEBAIElCdXNU ZXh0ICAgICAgICAqaWJ1c190ZXh0X25ld19mcm9tX3N0cmluZyAgICAgICAgICAoY29uc3QgZ2No YXIgICAgKnN0cik7Ci0gSUJ1c1RleHQgICAgICAgICppYnVzX3RleHRfbmV3X2Zyb21fdWNzNCAg ICAgICAgICAgIChjb25zdCBndW5pY2hhciAqc3RyKTsKLSAKLSAvKioKLS0gKiBpYnVzX3RleHRf bmV3X2Zyb21fc3RhdGljX3N0cmluZzoKLSsgKiBpYnVzX3RleHRfbmV3X2Zyb21fc3RhdGljX3N0 cmluZzogKHNraXApCi0gICogQHN0cjogQW4gdGV4dCBzdHJpbmcgdG8gYmUgc2V0LgotICAqIEBy ZXR1cm5zOiBBIG5ld2x5IGFsbG9jYXRlZCBJQnVzVGV4dC4KLSAgKgotQEAgLTE2OSw2ICsxNjks MzMgQEAgdm9pZCAgICAgICAgICAgICBpYnVzX3RleHRfYXBwZW5kX2F0dHJpYnV0ZSAgICAgICAg IChJQnVzVGV4dCAgICAgICAqdGV4dCwKLSAgKi8KLSBndWludCAgICAgICAgICAgIGlidXNfdGV4 dF9nZXRfbGVuZ3RoICAgICAgICAgICAgICAgKElCdXNUZXh0ICAgICAgICp0ZXh0KTsKLSAKLSsv KioKLSsgKiBpYnVzX3RleHRfZ2V0X2lzX3N0YXRpYzoKLSsgKiBAdGV4dDogQW4gSUJ1c1RleHQu Ci0rICogQHJldHVybnM6IHRoZSBpc19zdGF0aWMgaW4gQHRleHQuCi0rICoKLSsgKiBSZXR1cm4g dGhlIGlzX3N0YXRpYyBpbiBhbiBJQnVzVGV4dC4KLSsgKi8KLStnYm9vbGVhbiAgICAgICAgIGli dXNfdGV4dF9nZXRfaXNfc3RhdGljICAgICAgICAgICAgKElCdXNUZXh0ICAgICAgICp0ZXh0KTsK LSsKLSsvKioKLSsgKiBpYnVzX3RleHRfZ2V0X3RleHQ6Ci0rICogQHRleHQ6IEFuIElCdXNUZXh0 LgotKyAqIEByZXR1cm5zOiB0aGUgdGV4dCBpbiBAdGV4dC4KLSsgKgotKyAqIFJldHVybiB0aGUg dGV4dCBpbiBhbiBJQnVzVGV4dC4gU2hvdWxkIG5vdCBiZSBmcmVlZC4KLSsgKi8KLStjb25zdCBn Y2hhciAqICAgIGlidXNfdGV4dF9nZXRfdGV4dCAgICAgICAgICAgICAgICAgKElCdXNUZXh0ICAg ICAgICp0ZXh0KTsKLSsKLSsvKioKLSsgKiBpYnVzX3RleHRfZ2V0X2F0dHJpYnV0ZXM6Ci0rICog QHRleHQ6IEFuIElCdXNUZXh0LgotKyAqIEByZXR1cm5zOiB0aGUgYXR0cnMgaW4gQHRleHQuCi0r ICoKLSsgKiBSZXR1cm4gdGhlIGF0dHJpYnV0ZXMgaW4gYW4gSUJ1c1RleHQuIFNob3VsZCBub3Qg YmUgZnJlZWQuCi0rICovCi0rY29uc3QgSUJ1c0F0dHJMaXN0ICoKLSsgICAgICAgICAgICAgICAg IGlidXNfdGV4dF9nZXRfYXR0cmlidXRlcyAgICAgICAgICAgKElCdXNUZXh0ICAgICAgICp0ZXh0 KTsKLSBHX0VORF9ERUNMUwotICNlbmRpZgotIAotZGlmZiAtLWdpdCBhL3NyYy9pYnVzdHlwZXMu aCBiL3NyYy9pYnVzdHlwZXMuaAotaW5kZXggMDM1ZDEyNC4uNmEzMTg0NyAxMDA2NDQKLS0tLSBh L3NyYy9pYnVzdHlwZXMuaAotKysrIGIvc3JjL2lidXN0eXBlcy5oCi1AQCAtMTU0LDYgKzE1NCwz OSBAQCB0eXBlZGVmIGVudW0gewotIH0gSUJ1c1ByZWxvYWRFbmdpbmVNb2RlOwotIAotIC8qKgot KyAqIElCdXNCdXNOYW1lRmxhZzoKLSsgKiBASUJVU19CVVNfTkFNRV9GTEFHX0FMTE9XX1JFUExB Q0VNRU5UOgotKyAqICAgIHNhbWUgYXMgREJVU19OQU1FX0ZMQUdfQUxMT1dfUkVQTEFDRU1FTlQJ Ci0rICogQElCVVNfQlVTX05BTUVfRkxBR19SRVBMQUNFX0VYSVNUSU5HOgotKyAqICAgIHNhbWUg YXMgREJVU19OQU1FX0ZMQUdfUkVQTEFDRV9FWElTVElORwotKyAqIEBJQlVTX0JVU19OQU1FX0ZM QUdfRE9fTk9UX1FVRVVFOgotKyAqICAgIHNhbWUgYXMgREJVU19OQU1FX0ZMQUdfRE9fTk9UX1FV RVVFIAotKyAqLwotK3R5cGVkZWYgZW51bSB7Ci0rICAgIElCVVNfQlVTX05BTUVfRkxBR19BTExP V19SRVBMQUNFTUVOVCAgID0gKDEgPDwgMCksCi0rICAgIElCVVNfQlVTX05BTUVfRkxBR19SRVBM QUNFX0VYSVNUSU5HICAgID0gKDEgPDwgMSksCi0rICAgIElCVVNfQlVTX05BTUVfRkxBR19ET19O T1RfUVVFVUUgICAgICAgID0gKDEgPDwgMiksCi0rfSBJQnVzQnVzTmFtZUZsYWc7Ci0rCi0rLyoq Ci0rICogSUJ1c0J1c1JlcXVlc3ROYW1lUmVwbHk6Ci0rICogQElCVVNfQlVTX1JFUVVFU1RfTkFN RV9SRVBMWV9QUklNQVJZX09XTkVSOgotKyAqICAgIHNhbWUgYXMgREJVU19SRVFVRVNUX05BTUVf UkVQTFlfUFJJTUFSWV9PV05FUgotKyAqIEBJQlVTX0JVU19SRVFVRVNUX05BTUVfUkVQTFlfSU5f UVVFVUU6Ci0rICogICAgc2FtZSBhcyBEQlVTX1JFUVVFU1RfTkFNRV9SRVBMWV9JTl9RVUVVRQot KyAqIEBJQlVTX0JVU19SRVFVRVNUX05BTUVfUkVQTFlfRVhJU1RTOgotKyAqICAgIHNhbWUgYXMg REJVU19SRVFVRVNUX05BTUVfUkVQTFlfRVhJU1RTCi0rICogQElCVVNfQlVTX1JFUVVFU1RfTkFN RV9SRVBMWV9BTFJFQURZX09XTkVSOgotKyAqICAgIHNhbWUgYXMgREJVU19SRVFVRVNUX05BTUVf UkVQTFlfQUxSRUFEWV9PV05FUgotKyAqLwotK3R5cGVkZWYgZW51bSB7Ci0rICAgIElCVVNfQlVT X1JFUVVFU1RfTkFNRV9SRVBMWV9QUklNQVJZX09XTkVSICAgPSAxLAotKyAgICBJQlVTX0JVU19S RVFVRVNUX05BTUVfUkVQTFlfSU5fUVVFVUUgICAgICAgID0gMiwKLSsgICAgSUJVU19CVVNfUkVR VUVTVF9OQU1FX1JFUExZX0VYSVNUUyAgICAgICAgICA9IDMsCi0rICAgIElCVVNfQlVTX1JFUVVF U1RfTkFNRV9SRVBMWV9BTFJFQURZX09XTkVSICAgPSA0LAotK30gSUJ1c0J1c1JlcXVlc3ROYW1l UmVwbHk7Ci0rCi0rLyoqCi0gICogSUJ1c1JlY3RhbmdsZToKLSAgKiBAeDogeCBjb29yZGluYXRl LgotICAqIEB5OiB5IGNvb3JkaW5hdGUuCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXN1dGlsLmMgYi9z cmMvaWJ1c3V0aWwuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjU5Mjkx ZjkKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9pYnVzdXRpbC5jCi1AQCAtMCwwICsxLDE4MCBA QAotKy8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTog bmlsOyAtKi0gKi8KLSsvKiB2aW06c2V0IGV0IHN0cz00OiAqLwotKy8qIGJ1cyAtIFRoZSBJbnB1 dCBCdXMKLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1 YW5nQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMSBUYWthbyBGdWppd2Fy YSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx MSBSZWQgSGF0LCBJbmMuCi0rICoKLSsgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotKyAqIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotKyAqIHZlcnNp b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSsgKgotKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgkgU2VlIHRoZSBHTlUKLSsgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyAqCi0rICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YwotKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g dGhlCi0rICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug LSBTdWl0ZSAzMzAsCi0rICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rICovCi0rI2lm ZGVmIEhBVkVfQ09ORklHX0gKLSsjaW5jbHVkZSA8Y29uZmlnLmg+Ci0rI2VuZGlmCi0rCi0rI2lu Y2x1ZGUgPGdsaWIuaD4KLSsjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSsjaW5jbHVkZSA8Z2lv L2dpby5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSAiaWJ1c3htbC5oIgotKwot KyNpZmRlZiBFTkFCTEVfTkxTCi0rI2luY2x1ZGUgPGxpYmludGwuaD4KLSsjZW5kaWYKLSsKLStz dGF0aWMgR0hhc2hUYWJsZSAqX19sYW5ndWFnZXNfZGljdDsKLSsKLStzdGF0aWMgZ2Jvb2xlYW4K LStfaXNvX2NvZGVzX3BhcnNlX3htbF9ub2RlIChYTUxOb2RlICAgICAgICAgICpub2RlKQotK3sK LSsgICAgR0xpc3QgKnA7Ci0rICAgIGdfYXNzZXJ0IChub2RlKTsKLSsKLSsgICAgaWYgKEdfVU5M SUtFTFkgKGdfc3RyY21wMCAobm9kZS0+bmFtZSwgImlzb182MzlfZW50cmllcyIpICE9IDApKSB7 Ci0rICAgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIH0KLSsKLSsgICAgZm9yIChwID0gbm9kZS0+ c3ViX25vZGVzOyBwICE9IE5VTEw7IHAgPSBwLT5uZXh0KSB7Ci0rICAgICAgICBYTUxOb2RlICpz dWJfbm9kZSA9IChYTUxOb2RlICopcC0+ZGF0YTsKLSsgICAgICAgIGdjaGFyICoqYXR0cmlidXRl cyA9IE5VTEw7Ci0rICAgICAgICBpbnQgaSwgajsKLSsgICAgICAgIHN0cnVjdCB7Ci0rICAgICAg ICAgICAgY29uc3QgZ2NoYXIgKmtleTsKLSsgICAgICAgICAgICBnY2hhciAqdmFsdWU7Ci0rICAg ICAgICB9IGVudHJpZXNbXSA9IHsKLSsgICAgICAgICAgICB7ICJpc29fNjM5XzJCX2NvZGUiLCBO VUxMIH0sCi0rICAgICAgICAgICAgeyAiaXNvXzYzOV8yVF9jb2RlIiwgTlVMTCB9LAotKyAgICAg ICAgICAgIHsgImlzb182MzlfMV9jb2RlIiwgTlVMTCB9LAotKyAgICAgICAgICAgIHsgTlVMTCwg TlVMTCB9LAotKyAgICAgICAgfTsKLSsKLSsKLSsgICAgICAgIGlmIChzdWJfbm9kZS0+YXR0cmli dXRlcyA9PSBOVUxMKSB7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAg ICAgICBhdHRyaWJ1dGVzID0gc3ViX25vZGUtPmF0dHJpYnV0ZXM7Ci0rICAgICAgICBmb3IgKGkg PSAwOyBhdHRyaWJ1dGVzW2ldOyBpKz0yKSB7Ci0rICAgICAgICAgICAgaWYgKGdfc3RyY21wMCAo YXR0cmlidXRlc1tpXSwgIm5hbWUiKSA9PSAwKSB7Ci0rICAgICAgICAgICAgICAgIGZvciAoaiA9 IDA7IGVudHJpZXNbal0ua2V5OyBqKyspIHsKLSsgICAgICAgICAgICAgICAgICAgIGlmIChlbnRy aWVzW2pdLnZhbHVlID09IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsKLSsgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgIGdfaGFzaF90 YWJsZV9pbnNlcnQgKF9fbGFuZ3VhZ2VzX2RpY3QsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGVudHJpZXNbal0udmFsdWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwIChhdHRy aWJ1dGVzW2kgKyAxXSkpOwotKyAgICAgICAgICAgICAgICAgICAgZW50cmllc1tqXS52YWx1ZSA9 IE5VTEw7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICB9IGVsc2UgewotKyAgICAg ICAgICAgICAgICBmb3IgKGogPSAwOyBlbnRyaWVzW2pdLmtleTsgaisrKSB7Ci0rICAgICAgICAg ICAgICAgICAgICBpZiAoZ19zdHJjbXAwIChhdHRyaWJ1dGVzW2ldLCBlbnRyaWVzW2pdLmtleSkg PT0gMCAmJgotKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNbaSArIDFdICE9IE5V TEwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICBlbnRyaWVzW2pdLnZhbHVlID0gZ19zdHJk dXAgKGF0dHJpYnV0ZXNbaSArIDFdKTsKLSsgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAg ICAgICAgICAgfQotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICBy ZXR1cm4gVFJVRTsKLSt9Ci0rCi0rdm9pZAotK19sb2FkX2xhbmcoKQotK3sKLSsgICAgZ2NoYXIg KmZpbGVuYW1lOwotKyAgICBYTUxOb2RlICpub2RlOwotKyAgICBzdHJ1Y3Qgc3RhdCBidWY7Ci0r Ci0rICAgIF9fbGFuZ3VhZ2VzX2RpY3QgPSBnX2hhc2hfdGFibGVfbmV3IChnX3N0cl9oYXNoLCAo R0VxdWFsRnVuYykgZ19zdHJfZXF1YWwpOwotKyAgICBmaWxlbmFtZSA9IGdfYnVpbGRfZmlsZW5h bWUgKCIvdXNyIiwgInNoYXJlL3htbC9pc28tY29kZXMvaXNvXzYzOS54bWwiLCBOVUxMKTsKLSsg ICAgaWYgKGdfc3RhdCAoZmlsZW5hbWUsICZidWYpICE9IDApIHsKLSsgICAgICAgIGdfd2Fybmlu ZyAoIkNhbiBub3QgZ2V0IHN0YXQgb2YgZmlsZSAlcyIsIGZpbGVuYW1lKTsKLSsgICAgICAgIGdf ZnJlZSAoZmlsZW5hbWUpOwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAgIG5vZGUg PSBpYnVzX3htbF9wYXJzZV9maWxlIChmaWxlbmFtZSk7Ci0rICAgIGdfZnJlZSAoZmlsZW5hbWUp OwotKwotKyAgICBpZiAoIW5vZGUpIHsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAg ICBfaXNvX2NvZGVzX3BhcnNlX3htbF9ub2RlIChub2RlKTsKLSsgICAgaWJ1c194bWxfZnJlZSAo bm9kZSk7Ci0rfQotKwotK2NvbnN0IGdjaGFyICoKLStpYnVzX2dldF9sYW5ndWFnZV9uYW1lKGNv bnN0IGdjaGFyICpfbG9jYWxlKSB7Ci0rICAgIGNvbnN0IGdjaGFyICpyZXR2YWw7Ci0rICAgIGdj aGFyICpwID0gTlVMTDsKLSsgICAgZ2NoYXIgKmxhbmcgPSBOVUxMOwotKwotKyAgICBpZiAoX19s YW5ndWFnZXNfZGljdCA9PSBOVUxMICkgewotKyAgICAgICAgX2xvYWRfbGFuZygpOwotKyAgICB9 Ci0rICAgIGlmICgocCA9IHN0cmNociAoX2xvY2FsZSwgJ18nKSkgIT0gIE5VTEwpIHsKLSsgICAg ICAgIHAgPSBnX3N0cm5kdXAgKF9sb2NhbGUsIHAgLSBfbG9jYWxlKTsKLSsgICAgfSBlbHNlIHsK LSsgICAgICAgIHAgPSBnX3N0cmR1cCAoX2xvY2FsZSk7Ci0rICAgIH0KLSsgICAgbGFuZyA9IGdf YXNjaWlfc3RyZG93biAocCwgLTEpOwotKyAgICBnX2ZyZWUgKHApOwotKyAgICByZXR2YWwgPSAo Y29uc3QgZ2NoYXIgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoX19sYW5ndWFnZXNfZGljdCwgbGFu Zyk7Ci0rICAgIGdfZnJlZSAobGFuZyk7Ci0rICAgIGlmIChyZXR2YWwgIT0gTlVMTCkgewotKyNp ZmRlZiBFTkFCTEVfTkxTCi0rICAgICAgICByZXR1cm4gZGdldHRleHQoImlzb182MzkiLCByZXR2 YWwpOwotKyNlbHNlCi0rICAgICAgICByZXR1cm4gcmV0dmFsOwotKyNlbmRpZgotKyAgICB9Ci0r ICAgIHJldHVybiByZXR2YWw7Ci0rfQotKwotK2dib29sZWFuCi0raWJ1c19pc19ydW5uaW5nX2du b21lX3NoZWxsICh2b2lkKQotK3sKLSsgICAgR0RCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uID0g TlVMTDsKLSsgICAgR1ZhcmlhbnQgKnJlc3VsdDsKLSsgICAgZ2Jvb2xlYW4gaXNfcnVubmluZyA9 IEZBTFNFOwotKwotKyAgICBjb25uZWN0aW9uID0gZ19idXNfZ2V0X3N5bmMgKEdfQlVTX1RZUEVf U0VTU0lPTiwgTlVMTCwgTlVMTCk7Ci0rICAgIGlmIChjb25uZWN0aW9uID09IE5VTEwpIHsKLSsg ICAgICAgIHJldHVybiBGQUxTRTsKLSsgICAgfQotKwotKyAgICByZXN1bHQgPSBnX2RidXNfY29u bmVjdGlvbl9jYWxsX3N5bmMgKGNvbm5lY3Rpb24sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5EQnVzIiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9EQnVzIiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9w LkRCdXMiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHZXRO YW1lT3duZXIiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf dmFyaWFudF9uZXcgKCIocykiLCAib3JnLmdub21lLlNoZWxsIiksCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19WQVJJQU5UX1RZUEUgKCIocykiKSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19O T05FLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0rCi0rICAgIGlmIChyZXN1 bHQgIT0gTlVMTCkgewotKyAgICAgICAgaXNfcnVubmluZyA9IFRSVUU7Ci0rICAgICAgICBnX3Zh cmlhbnRfdW5yZWYgKHJlc3VsdCk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgICBpc19ydW5uaW5n ID0gRkFMU0U7Ci0rICAgIH0KLSsgICAgZ19vYmplY3RfdW5yZWYgKGNvbm5lY3Rpb24pOwotKwot KyAgICByZXR1cm4gaXNfcnVubmluZzsKLSt9Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXN1dGlsLmgg Yi9zcmMvaWJ1c3V0aWwuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjg4 OTI5OTYKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9pYnVzdXRpbC5oCi1AQCAtMCwwICsxLDM5 IEBACi0rLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2Rl OiBuaWw7IC0qLSAqLwotKy8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0rLyogYnVzIC0gVGhlIElu cHV0IEJ1cwotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDExIFBlbmcgSHVhbmcgPHNoYXduLnAu aHVhbmdAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDExIFRha2FvIEZ1aml3 YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0y MDExIFJlZCBIYXQsIEluYy4KLSsgKgotKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgKiBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICogTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICogdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgotKyAqCi0rICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlIEdOVQotKyAqIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICoKLSsgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCi0rICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0 byB0aGUKLSsgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj ZSAtIFN1aXRlIDMzMCwKLSsgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsgKi8KLSsK LSsjaWYgIWRlZmluZWQgKF9fSUJVU19IX0lOU0lERV9fKSAmJiAhZGVmaW5lZCAoSUJVU19DT01Q SUxBVElPTikKLSsjZXJyb3IgIk9ubHkgPGlidXMuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5 IgotKyNlbmRpZgotKwotKy8qKgotKyAqIGlidXNfZ2V0X2xhbmd1YWdlX25hbWU6Ci0rICogQF9s b2NhbGU6IEEgY29uc3QgbG9jYWxlIG5hbWUuCi0rICogQHJldHVybnM6IGxhbmd1YWdlIG5hbWUK LSsgKi8KLStjb25zdCBnY2hhciAqICAgIGlidXNfZ2V0X2xhbmd1YWdlX25hbWUgICAgICAgICAo Y29uc3QgZ2NoYXIgICAgKl9sb2NhbGUpOwotKwotKy8qKgotKyAqIGlidXNfaXNfcnVubmluZ19n bm9tZV9zaGVsbDoKLSsgKiBAcmV0dXJuczogVFJVRSBpZiBnbm9tZS1zaGVsbCBpcyBydW5uaW5n Ci0rICovCi0rZ2Jvb2xlYW4gICAgICAgICBpYnVzX2lzX3J1bm5pbmdfZ25vbWVfc2hlbGwgICAg KHZvaWQpOwotZGlmZiAtLWdpdCBhL3VpL2d0ay9ndGtwYW5lbC54bWwuaW4uaW4gYi91aS9ndGsv Z3RrcGFuZWwueG1sLmluLmluCi1pbmRleCBlZGVlZDFjLi4xZTFlNjU2IDEwMDY0NAotLS0tIGEv dWkvZ3RrL2d0a3BhbmVsLnhtbC5pbi5pbgotKysrIGIvdWkvZ3RrL2d0a3BhbmVsLnhtbC5pbi5p bgotQEAgLTMsNyArMyw3IEBACi0gPGNvbXBvbmVudD4KLSAJPG5hbWU+b3JnLmZyZWVkZXNrdG9w LklCdXMuUGFuZWw8L25hbWU+Ci0gCTxkZXNjcmlwdGlvbj5HdGsgUGFuZWwgQ29tcG9uZW50PC9k ZXNjcmlwdGlvbj4KLS0JPGV4ZWM+JHtsaWJleGVjZGlyfS9pYnVzLXVpLWd0azwvZXhlYz4KLSsJ PGV4ZWM+JHtsaWJleGVjZGlyfS9pYnVzLXVpLWd0ayAtczwvZXhlYz4KLSAJPHZlcnNpb24+QFZF UlNJT05APC92ZXJzaW9uPgotIAk8YXV0aG9yPlBlbmcgSHVhbmcgJmx0O3NoYXduLnAuaHVhbmdA Z21haWwuY29tJmd0OzwvYXV0aG9yPgotIAk8bGljZW5zZT5HUEw8L2xpY2Vuc2U+Ci1kaWZmIC0t Z2l0IGEvdWkvZ3RrL21haW4ucHkgYi91aS9ndGsvbWFpbi5weQotaW5kZXggZjRjOTAxZC4uNWU3 NWFiNyAxMDA2NDQKLS0tLSBhL3VpL2d0ay9tYWluLnB5Ci0rKysgYi91aS9ndGsvbWFpbi5weQot QEAgLTUwLDcgKzUwLDEzIEBAIGNsYXNzIFVJQXBwbGljYXRpb246Ci0gICAgICAgICBzZWxmLl9f YnVzLmFkZF9tYXRjaChtYXRjaF9ydWxlKQotIAotICAgICAgICAgc2VsZi5fX3BhbmVsID0gcGFu ZWwuUGFuZWwoc2VsZi5fX2J1cykKLS0gICAgICAgIHNlbGYuX19idXMucmVxdWVzdF9uYW1lKGli dXMuSUJVU19TRVJWSUNFX1BBTkVMLCAwKQotKyAgICAgICAgc2VsZi5fX2J1cy5yZXF1ZXN0X25h bWUoaWJ1cy5JQlVTX1NFUlZJQ0VfUEFORUwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpYnVzLkJVU19OQU1FX0ZMQUdfQUxMT1dfUkVQTEFDRU1FTlQgfAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWJ1cy5CVVNfTkFNRV9GTEFHX1JFUExBQ0VfRVhJU1RJTkcp Ci0rICAgICAgICBzZWxmLl9fYnVzLmFkZF9tYXRjaCgidHlwZT0nc2lnbmFsJyxcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZW5kZXI9J29yZy5mcmVlZGVza3RvcC5EQnVzJyxcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1iZXI9J05hbWVMb3N0JyIpCi0rICAgICAg ICBzZWxmLl9fYnVzLmdldF9kYnVzY29ubigpLmFkZF9zaWduYWxfcmVjZWl2ZXIoc2VsZi5fX25h bWVfbG9zdF9jYiwgc2lnbmFsX25hbWU9Ik5hbWVMb3N0IikKLSAgICAgICAgIHNlbGYuX19ub3Rp ZnkgPSBweW5vdGlmeS5Ob3RpZmljYXRpb24oIklCdXMiLCBcCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF8oIlNvbWUgaW5wdXQgbWV0aG9kcyBoYXZlIGJlZW4gaW5zdGFsbGVkLCByZW1v dmVkIG9yIHVwZGF0ZWQuICIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxlYXNl IHJlc3RhcnQgaWJ1cyBpbnB1dCBwbGF0Zm9ybS4iKSwgXAotQEAgLTY2LDYgKzcyLDEwIEBAIGNs YXNzIFVJQXBwbGljYXRpb246Ci0gICAgIGRlZiBfX3JlZ2lzdHJ5X2NoYW5nZWRfY2Ioc2VsZiwg YnVzKToKLSAgICAgICAgIHNlbGYuX19ub3RpZnkuc2hvdygpCi0gCi0rICAgIGRlZiBfX25hbWVf bG9zdF9jYihzZWxmLCBuYW1lKToKLSsgICAgICAgIHByaW50ICJHb3QgTmFtZUxvc3Qgc2lnbmFs IiwgbmFtZQotKyAgICAgICAgZ3RrLm1haW5fcXVpdCgpCi0rCi0gICAgIGRlZiBydW4oc2VsZik6 Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgZ3RrLm1haW4oKQotQEAgLTg0LDggKzk0LDkg QEAgZGVmIHByaW50X2hlbHAob3V0LCB2ID0gMCk6Ci0gCi0gZGVmIG1haW4oKToKLSAgICAgZGFl bW9uaXplID0gRmFsc2UKLS0gICAgc2hvcnRvcHQgPSAiaGQiCi0tICAgIGxvbmdvcHQgPSBbImhl bHAiLCAiZGFlbW9uaXplIl0KLSsgICAgc3RvcF9ieV9zaGVsbCA9IEZhbHNlCi0rICAgIHNob3J0 b3B0ID0gImhkcyIKLSsgICAgbG9uZ29wdCA9IFsiaGVscCIsICJkYWVtb25pemUiLCAic3RvcC1i eS1zaGVsbCJdCi0gICAgIHRyeToKLSAgICAgICAgIG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0 KHN5cy5hcmd2WzE6XSwgc2hvcnRvcHQsIGxvbmdvcHQpCi0gICAgIGV4Y2VwdCBnZXRvcHQuR2V0 b3B0RXJyb3IsIGVycjoKLUBAIC05NiwxMCArMTA3LDE2IEBAIGRlZiBtYWluKCk6Ci0gICAgICAg ICAgICAgcHJpbnRfaGVscChzeXMuc3Rkb3V0KQotICAgICAgICAgZWxpZiBvIGluKCItZCIsICIt LWRhZW1vbml6ZSIpOgotICAgICAgICAgICAgIGRhZW1vbml6ZSA9IFRydWUKLSsgICAgICAgIGVs aWYgbyBpbigiLXMiLCAiLS1zdG9wLWJ5LXNoZWxsIik6Ci0rICAgICAgICAgICAgc3RvcF9ieV9z aGVsbCA9IFRydWUKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgcHJpbnQgPj4gc3lzLnN0 ZGVyciwgIlVua25vd24gYXJndW1lbnQ6ICVzIiAlIG8KLSAgICAgICAgICAgICBwcmludF9oZWxw KHN5cy5zdGRlcnIsIDEpCi0gCi0rICAgIGlmIHN0b3BfYnlfc2hlbGwgYW5kIGlidXMuaXNfcnVu bmluZ19nbm9tZV9zaGVsbCgpOgotKyAgICAgICAgcHJpbnQgIkV4aXQgYmVjYXVzZSBHTk9NRS1T aGVsbCBpcyBydW5uaW5nIgotKyAgICAgICAgc3lzLmV4aXQoKQotKwotICAgICBpZiBkYWVtb25p emU6Ci0gICAgICAgICBpZiBvcy5mb3JrKCk6Ci0gICAgICAgICAgICAgc3lzLmV4aXQoKQotLS0g Ci0xLjcuNC4xCi0KCmRpZmYgLS1naXQgYS9pYnVzLTY3NTUwMy1nbm9tZS1zaGVsbC13b3JrYXJv dW5kLnBhdGNoIGIvaWJ1cy02NzU1MDMtZ25vbWUtc2hlbGwtd29ya2Fyb3VuZC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTMyNGQ2NC4uMDAwMDAwMAotLS0gYS9pYnVzLTY3 NTUwMy1nbm9tZS1zaGVsbC13b3JrYXJvdW5kLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODcg KzAsMCBAQAotRnJvbSBjNjk0OWE4NTIyMzViZWRiNDQxMjZjM2M2ZjM2ZTFmYmE0YjcxYmNlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotRGF0ZTogVHVlLCA4IEZlYiAyMDExIDE4OjIxOjUwICswOTAwCi1TdWJqZWN0 OiBbUEFUQ0hdIEFkZGVkIHRoZSBvcHRpb25hbCBzeW5jIG1vZGUgYXBwcyBpbiBJQnVzSU1Db250 ZXh0LgotCi0tLS0KLSBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgfCAgIDI3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKwotIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICB8ICAgMTEg KysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDAgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgYi9jbGll bnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLWluZGV4IGJiNWFlNWMuLmE0ZTQ2Y2IgMTAwNjQ0Ci0t LS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLSsrKyBiL2NsaWVudC9ndGsyL2lidXNp bWNvbnRleHQuYwotQEAgLTc5LDYgKzc5LDcgQEAgc3RhdGljIGNvbnN0IGdjaGFyICpfbm9fc25v b3Blcl9hcHBzID0gTk9fU05PT1BFUl9BUFBTOwotIHN0YXRpYyBnYm9vbGVhbiBfdXNlX2tleV9z bm9vcGVyID0gRU5BQkxFX1NOT09QRVI7Ci0gc3RhdGljIGd1aW50ICAgIF9rZXlfc25vb3Blcl9p ZCA9IDA7Ci0gCi0rc3RhdGljIGNvbnN0IGdjaGFyICpfc3luY19tb2RlX2FwcHMgPSBTWU5DX01P REVfQVBQUzsKLSBzdGF0aWMgZ2Jvb2xlYW4gX3VzZV9zeW5jX21vZGUgPSBGQUxTRTsKLSAKLSBz dGF0aWMgR3RrSU1Db250ZXh0ICpfZm9jdXNfaW1fY29udGV4dCA9IE5VTEw7Ci1AQCAtNDc3LDYg KzQ3OCwzMiBAQCBpYnVzX2ltX2NvbnRleHRfY2xhc3NfaW5pdCAoSUJ1c0lNQ29udGV4dENsYXNz ICpjbGFzcykKLSAgICAgICAgIGdfc3RyZnJlZXYgKGFwcHMpOwotICAgICB9Ci0gCi0rICAgIC8q IGVudiBJQlVTX1NZTkNfTU9ERV9BUFBTIGZvciBzeW5jIG1vZGUgYXBwcyAqLwotKyAgICAvKiBJ dCBzZWVtcyBNZXRhRGlzcGxheSBkb2VzIG5vdCB0YWtlIHRoZSBldmVudHMgZnJvbSBnZGtfZXZl bnRfcHV0KCkKLSsgICAgICogaW4gYXN5bmMgbW9kZS4gU28gaWYgZ25vbWUtc2hlbGwgKyBtdXR0 ZXIgYXJlIHVzZWQsCi0rICAgICAqIHRoZSBrZXkgZXZlbnRzIGFyZSBsb3N0IGluIGFzeW5jIG1v ZGUuCi0rICAgICAqIGdub21lLXNoZWxsIHNlYXJjaCBib3gsIGFjdHVhbGx5IHN0X2ltX3RleHRf a2V5X3ByZXNzX2V2ZW50KCksCi0rICAgICAqIGRvZXMgbm90IGNhbGwgdGhlIHBhcmVudCBmaWx0 ZXJfa2V5cHJlc3MoKSB3aGVuIHRoZSBJTSBjbGllbnQKLSsgICAgICogcmV0dXJucyBUUlVFLiBU aGUgY2xhc3MgaW5oZXJpdHMgQ2x1dHRlckFjdG9yIHdoaWNoIGlzIG5vdAotKyAgICAgKiBHdGtX aWRnZXQgc28gdGhlIGNsdXR0ZXIgZG9lcyBub3QgY2FsbCBHVEsgc25vb3BlcnMuCi0rICAgICAq IFNvIGlidXNfaW1fY29udGV4dF9maWx0ZXJfa2V5cHJlc3MoKSBuZWVkcyB0byByZXR1cm4gRkFM U0UuICovCi0rICAgIGlmICghX3VzZV9zeW5jX21vZGUpIHsKLSsgICAgICAgIC8qIGVuYWJsZSBz eW5jIG1vZGUgaWYgYXBwIGlzIGluIF9zeW5jX21vZGVfYXBwcyAqLwotKyAgICAgICAgY29uc3Qg Z2NoYXIgKiBwcmduYW1lID0gZ19nZXRfcHJnbmFtZSAoKTsKLSsgICAgICAgIGlmIChnX2dldGVu diAoIklCVVNfU1lOQ19NT0RFX0FQUFMiKSkgewotKyAgICAgICAgICAgIF9zeW5jX21vZGVfYXBw cyA9IGdfZ2V0ZW52ICgiSUJVU19TWU5DX01PREVfQVBQUyIpOwotKyAgICAgICAgfQotKyAgICAg ICAgZ2NoYXIgKipwOwotKyAgICAgICAgZ2NoYXIgKiogYXBwcyA9IGdfc3Ryc3BsaXQgKF9zeW5j X21vZGVfYXBwcywgIiwiLCAwKTsKLSsgICAgICAgIGZvciAocCA9IGFwcHM7ICpwICE9IE5VTEw7 IHArKykgewotKyAgICAgICAgICAgIGlmIChnX3JlZ2V4X21hdGNoX3NpbXBsZSAoKnAsIHByZ25h bWUsIDAsIDApKSB7Ci0rICAgICAgICAgICAgICAgIF91c2Vfc3luY19tb2RlID0gVFJVRTsKLSsg ICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKyAgICAg ICAgZ19zdHJmcmVldiAoYXBwcyk7Ci0rICAgIH0KLSsKLSAgICAgLyogaW5pdCBidXMgb2JqZWN0 ICovCi0gICAgIGlmIChfYnVzID09IE5VTEwpIHsKLSAgICAgICAgIGlidXNfc2V0X2Rpc3BsYXkg KGdka19kaXNwbGF5X2dldF9uYW1lIChnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCAoKSkpOwotZGlm ZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMWExZTY2My4uODFl ZmU4MSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAt MzU0LDYgKzM1NCwxNiBAQCBBQ19BUkdfV0lUSChuby1zbm9vcGVyLWFwcHMsCi0gQUNfREVGSU5F X1VOUVVPVEVEKE5PX1NOT09QRVJfQVBQUywgIiROT19TTk9PUEVSX0FQUFMiLAotICAgICBbRG9l cyBub3QgZW5iYWxlIGtleWJvYXJkIHNub29wZXIgaW4gdGhvc2UgYXBwbGljYXRpb25zXSkKLSAK LSsjIG9wdGlvbiBmb3Igc3luYyBtb2RlIGFwcGxpY2F0aW9ucy4KLStBQ19BUkdfV0lUSChzeW5j LW1vZGUtYXBwcywKLSsgICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1zeW5jLW1vZGUtYXBwc1s9 cmVnZXgxLHJlZ2V4Ml1dLAotKyAgICAgICAgW0VuYWJsZSBzeW5jIG1vZGUgaW4gdGhvc2UgYXBw bGljYXRpb25zIChsaWtlOiAuKmNocm9tZS4qLGZpcmVmb3guKildKSwKLSsgICAgW1NZTkNfTU9E RV9BUFBTPSR3aXRoX3N5bmNfbW9kZV9hcHBzXSwKLSsgICAgW1NZTkNfTU9ERV9BUFBTPVttdXR0 ZXJdXQotKykKLStBQ19ERUZJTkVfVU5RVU9URUQoU1lOQ19NT0RFX0FQUFMsICIkU1lOQ19NT0RF X0FQUFMiLAotKyAgICBbRW5iYWxlIHN5bmMgbW9kZSBpbiB0aG9zZSBhcHBsaWNhdGlvbnNdKQot KwotICMgY2hlY2sgaXNvLWNvZGVzCi0gUEtHX0NIRUNLX01PRFVMRVMoSVNPQ09ERVMsIFsKLSAg ICAgaXNvLWNvZGVzCi1AQCAtNDIzLDYgKzQzMyw3IEBAIEJ1aWxkIG9wdGlvbnM6Ci0gICBCdWls ZCB2YWxhIGJpbmRpbmcgICAgICAgICRlbmFibGVfdmFsYQotICAgQnVpbGQgZG9jdW1lbnQgICAg ICAgICAgICAkZW5hYmxlX2d0a19kb2MKLSAgIEVuYWJsZSBrZXkgc25vb3BlciAgICAgICAgJGVu YWJsZV9rZXlfc25vb3BlcgotKyAgU3luYyBtb2RlIHJlZ2V4ZXMgICAgICAgICAiJFNZTkNfTU9E RV9BUFBTIgotICAgTm8gc25vb3BlciByZWdleGVzICAgICAgICAiJE5PX1NOT09QRVJfQVBQUyIK LSBdKQotIAotLS0gCi0xLjcuMy4yCi0KCmRpZmYgLS1naXQgYS9pYnVzLTY4ODAzNC1mZWRvcmEt Zy1zLnBhdGNoIGIvaWJ1cy02ODgwMzQtZmVkb3JhLWctcy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDI2ZmIyYy4uMDAwMDAwMAotLS0gYS9pYnVzLTY4ODAzNC1mZWRvcmEt Zy1zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLS0tIGlidXMvdWkvZ3Rr L21haW4ucHkuYmFrCTIwMTEtMDMtMjMgMTM6MTU6NTMuMTUwMjk4NTMxICswOTAwCi0rKysgaWJ1 cy91aS9ndGsvbWFpbi5weQkyMDExLTAzLTIzIDEzOjE2OjM1LjMzNjI3NTkzOCArMDkwMAotQEAg LTExNCw4ICsxMTQsOSBAQCBkZWYgbWFpbigpOgotICAgICAgICAgICAgIHByaW50X2hlbHAoc3lz LnN0ZGVyciwgMSkKLSAKLSAgICAgaWYgc3RvcF9ieV9zaGVsbCBhbmQgaWJ1cy5pc19ydW5uaW5n X2dub21lX3NoZWxsKCk6Ci0tICAgICAgICBwcmludCAiRXhpdCBiZWNhdXNlIEdOT01FLVNoZWxs IGlzIHJ1bm5pbmciCi0tICAgICAgICBzeXMuZXhpdCgpCi0rICAgICAgICBpZiBvcy5wYXRoLmV4 aXN0cygnL3Vzci9zaGFyZS9nbm9tZS1zaGVsbC9qcy91aS9zdGF0dXMvaWJ1cycpOgotKyAgICAg ICAgICAgIHByaW50ICJFeGl0IGJlY2F1c2UgR05PTUUtU2hlbGwgaXMgcnVubmluZyIKLSsgICAg ICAgICAgICBzeXMuZXhpdCgpCi0gCi0gICAgIGlmIGRhZW1vbml6ZToKLSAgICAgICAgIGlmIG9z LmZvcmsoKToKCmRpZmYgLS1naXQgYS9pYnVzLUhFQUQucGF0Y2ggYi9pYnVzLUhFQUQucGF0Y2gK aW5kZXggNGQ0N2IxNy4uOGIxMzc4OSAxMDA2NDQKLS0tIGEvaWJ1cy1IRUFELnBhdGNoCisrKyBi L2lidXMtSEVBRC5wYXRjaApAQCAtMSw0MjcgKzEgQEAKLUZyb20gZmJkZDE1N2IyYWIxZTZlODcz ODE4MTMyNTMwZGQ5ZTU1ZTRmOTRkZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotRGF0ZTogTW9uLCA3IE1hciAyMDEx IDEwOjI2OjA0IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIE1vdmUgZ3RrX2tleV9zbm9vcGVyX3Jl bW92ZSBmcm9tIGZ1bmN0aW9uIG9iamVjdF9maW5pIHRvIGNsYXNzX2ZpbmkuCi0KLUJVRz1odHRw Oi8vY3Jvc2J1Zy5jb20vMTI4MDMKLVRFU1Q9TGludXggZGVza3RvcAotCi1SZXZpZXcgVVJMOiBo dHRwOi8vY29kZXJldmlldy5hcHBzcG90LmNvbS80MjY3MDQ0Ci0tLS0KLSBjbGllbnQvZ3RrMi9p YnVzaW1jb250ZXh0LmMgfCAgIDI0ICsrKysrKysrKysrKysrKy0tLS0tLS0tLQotIDEgZmlsZXMg Y2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQu YwotaW5kZXggYTYzNGQwZS4uMzFhNDE1ZCAxMDA2NDQKLS0tLSBhL2NsaWVudC9ndGsyL2lidXNp bWNvbnRleHQuYwotKysrIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1AQCAtODgsNiAr ODgsNyBAQCBzdGF0aWMgR3RrV2lkZ2V0ICpfaW5wdXRfd2lkZ2V0ID0gTlVMTDsKLSAKLSAvKiBm dW5jdGlvbnMgcHJvdG90eXBlICovCi0gc3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9j bGFzc19pbml0ICAoSUJ1c0lNQ29udGV4dENsYXNzICAgICpjbGFzcyk7Ci0rc3RhdGljIHZvaWQg ICAgIGlidXNfaW1fY29udGV4dF9jbGFzc19maW5pICAoSUJ1c0lNQ29udGV4dENsYXNzICAgICpj bGFzcyk7Ci0gc3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9pbml0ICAgICAgICAoR09i amVjdCAgICAgICAgICAgICAgICpvYmopOwotIHN0YXRpYyB2b2lkICAgICBpYnVzX2ltX2NvbnRl eHRfZmluYWxpemUgICAgKEdPYmplY3QgICAgICAgICAgICAgICAqb2JqKTsKLSBzdGF0aWMgdm9p ZCAgICAgaWJ1c19pbV9jb250ZXh0X3Jlc2V0ICAgICAgIChHdGtJTUNvbnRleHQgICAgICAgICAg KmNvbnRleHQpOwotQEAgLTE1MiwxMCArMTUzLDEwIEBAIGlidXNfaW1fY29udGV4dF9yZWdpc3Rl cl90eXBlIChHVHlwZU1vZHVsZSAqdHlwZV9tb2R1bGUpCi0gCi0gICAgIHN0YXRpYyBjb25zdCBH VHlwZUluZm8gaWJ1c19pbV9jb250ZXh0X2luZm8gPSB7Ci0gICAgICAgICBzaXplb2YgKElCdXNJ TUNvbnRleHRDbGFzcyksCi0tICAgICAgICAoR0Jhc2VJbml0RnVuYykgICAgICAgIE5VTEwsCi0t ICAgICAgICAoR0Jhc2VGaW5hbGl6ZUZ1bmMpICAgICBOVUxMLAotKyAgICAgICAgKEdCYXNlSW5p dEZ1bmMpICAgICAgTlVMTCwKLSsgICAgICAgIChHQmFzZUZpbmFsaXplRnVuYykgIE5VTEwsCi0g ICAgICAgICAoR0NsYXNzSW5pdEZ1bmMpICAgICBpYnVzX2ltX2NvbnRleHRfY2xhc3NfaW5pdCwK LS0gICAgICAgIE5VTEwsICAgICAgICAgICAgLyogY2xhc3MgZmluaWFsaXplICovCi0rICAgICAg ICAoR0NsYXNzRmluYWxpemVGdW5jKSBpYnVzX2ltX2NvbnRleHRfY2xhc3NfZmluaSwKLSAgICAg ICAgIE5VTEwsICAgICAgICAgICAgLyogY2xhc3MgZGF0YSAqLwotICAgICAgICAgc2l6ZW9mIChJ QnVzSU1Db250ZXh0KSwKLSAgICAgICAgIDAsCi1AQCAtNDc3LDYgKzQ3OCwxNiBAQCBpYnVzX2lt X2NvbnRleHRfY2xhc3NfaW5pdCAoSUJ1c0lNQ29udGV4dENsYXNzICpjbGFzcykKLSAgICAgICAg IF9rZXlfc25vb3Blcl9pZCA9IGd0a19rZXlfc25vb3Blcl9pbnN0YWxsIChfa2V5X3Nub29wZXJf Y2IsIE5VTEwpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2lidXNfaW1fY29udGV4dF9jbGFzc19m aW5pIChJQnVzSU1Db250ZXh0Q2xhc3MgKmNsYXNzKQotK3sKLSsgICAgaWYgKF9rZXlfc25vb3Bl cl9pZCAhPSAwKSB7Ci0rICAgICAgICBJREVCVUcgKCJzbm9vcGVyIGlzIHRlcm1pbmF0ZWQuIik7 Ci0rICAgICAgICBndGtfa2V5X3Nub29wZXJfcmVtb3ZlIChfa2V5X3Nub29wZXJfaWQpOwotKyAg ICAgICAgX2tleV9zbm9vcGVyX2lkID0gMDsKLSsgICAgfQotK30KLSsKLSAvKiBDb3BpZWQgZnJv bSBndGsrMi4wLTIuMjAuMS9tb2R1bGVzL2lucHV0L2ltY2VkaWxsYS5jIHRvIGZpeCBjcm9zYnVn LmNvbS8xMTQyMS4KLSAgKiBPdmVyd3JpdGUgdGhlIG9yaWdpbmFsIEd0aysncyBjb21wb3NlIHRh YmxlIGluIGd0aystMi54LnkvZ3RrL2d0a2ltY29udGV4dHNpbXBsZS5jLiAqLwotIAotQEAgLTYw MSwxMiArNjEyLDYgQEAgaWJ1c19pbV9jb250ZXh0X2ZpbmFsaXplIChHT2JqZWN0ICpvYmopCi0g ICAgICAgICBwYW5nb19hdHRyX2xpc3RfdW5yZWYgKGlidXNpbWNvbnRleHQtPnByZWVkaXRfYXR0 cnMpOwotICAgICB9Ci0gCi0tICAgIGlmIChfa2V5X3Nub29wZXJfaWQgIT0gMCkgewotLSAgICAg ICAgSURFQlVHICgic25vb3BlciBpcyB0ZXJtaW5hdGVkLiIpOwotLSAgICAgICAgZ3RrX2tleV9z bm9vcGVyX3JlbW92ZSAoX2tleV9zbm9vcGVyX2lkKTsKLS0gICAgICAgIF9rZXlfc25vb3Blcl9p ZCA9IDA7Ci0tICAgIH0KLS0KLSAgICAgR19PQkpFQ1RfQ0xBU1MocGFyZW50X2NsYXNzKS0+Zmlu YWxpemUgKG9iaik7Ci0gfQotIAotLS0gCi0xLjcuNC4xCi0KLUZyb20gYzA0ODliYTAxN2YyOThl NTFlZmU4NmJjN2Y1ZGVmMTkyODM4OTE5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMTEgTWFy IDIwMTEgMTU6NTM6NTMgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IHByZWVkaXRfc3RyaW5n ID0gTlVMTCBpbiBpYnVzLXgxMSBfZnJlZV9pYygpCi0KLS0tLQotIGNsaWVudC94MTEvbWFpbi5j IHwgICAgMSArCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9jbGllbnQveDExL21haW4uYyBiL2NsaWVudC94MTEvbWFpbi5j Ci1pbmRleCBhMjk2N2NjLi4xNjEwNGRlIDEwMDY0NAotLS0tIGEvY2xpZW50L3gxMS9tYWluLmMK LSsrKyBiL2NsaWVudC94MTEvbWFpbi5jCi1AQCAtNTI2LDYgKzUyNiw3IEBAIF9mcmVlX2ljIChn cG9pbnRlciBkYXRhLCBncG9pbnRlciB1c2VyX2RhdGEpCi0gICAgIGdfcmV0dXJuX2lmX2ZhaWwg KHgxMWljICE9IE5VTEwpOwotIAotICAgICBnX2ZyZWUgKHgxMWljLT5wcmVlZGl0X3N0cmluZyk7 Ci0rICAgIHgxMWljLT5wcmVlZGl0X3N0cmluZyA9IE5VTEw7Ci0gCi0gICAgIGlmICh4MTFpYy0+ cHJlZWRpdF9hdHRycykgewotICAgICAgICAgZ19vYmplY3RfdW5yZWYgKHgxMWljLT5wcmVlZGl0 X2F0dHJzKTsKLS0tIAotMS43LjQuMQotCi1Gcm9tIGI5YjJjNDI1OTZlMWE3Mzk0ZTg5YzExMDI1 MDc0YWVkMmZjYjA5OWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZW5nIEh1YW5n IDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMTYgTWFyIDIwMTEgMTA6MDI6 NDcgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGlzc3VlIG9mIElucHV0Q29udGV4dC5TZXRF bmdpbmUuCi0KLUlucHV0Q29udGV4dC5TZXRFbmdpbmUgcmV0dXJucyBlcnJvciBzb21ldGltZXMs IGJlY2F1c2UgInJlcXVlc3QtZW5naW5lIgotc2lnbmFsIGhhbmRsZXIgY2FsbHMgYW4gYXN5bmMg ZnVuY3Rpb24gdG8gc2V0IHRoZSBlbmdpbmUgb2YgdGhlIGNvbnRleHQuCi1TbyBjaGVja2luZyBj b250ZXh0LT5lbmdpbmUgIT0gTlVMTCBqdXN0IGFmdGVyIGVtaXRpbmcgInJlcXVlc3QtZW5naW5l Igotc2lnbmFsIGlzIG5vdCBjb3JyZWN0LgotCi1CVUc9bm9uZQotVEVTVD1MaW51eCBkZXNrdG9w Ci0KLVJldmlldyBVUkw6IGh0dHA6Ly9jb2RlcmV2aWV3LmFwcHNwb3QuY29tLzQyODcwNDkKLS0t LQotIGJ1cy9pYnVzaW1wbC5jICAgICAgfCAgIDY4ICsrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tCi0gYnVzL2lucHV0Y29udGV4dC5jICB8ICAgOTcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gYnVzL21hcnNoYWxlcnMubGlzdCB8 ICAgMTQgKysrKy0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCA0MyBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1cy9pYnVzaW1wbC5jIGIvYnVzL2lidXNpbXBs LmMKLWluZGV4IDhkNGVjMzYuLjVhOGUxMzQgMTAwNjQ0Ci0tLS0gYS9idXMvaWJ1c2ltcGwuYwot KysrIGIvYnVzL2lidXNpbXBsLmMKLUBAIC0xODYsNiArMTg2LDkgQEAgc3RhdGljIEJ1c0lucHV0 Q29udGV4dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChCdXNJQnVzSW1wbCAgICAgICAgKmlidXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJ1c0Nvbm5lY3Rpb24gICAgICAqY29ubmVjdGlvbiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No YXIgICAgICAgICpjbGllbnQpOwotK3N0YXRpYyBJQnVzRW5naW5lRGVzYwotKyAgICAgICAgICAg ICAgICpidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZGVzYyAgIChCdXNJQnVzSW1wbCAgICAgICAg KmlidXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGdjaGFyICAgICAgICAqZW5naW5lX25hbWUpOwotIC8qIHNvbWUgY2FsbGJhY2sgZnVu Y3Rpb25zICovCi0gc3RhdGljIHZvaWQgICAgIF9jb250ZXh0X2VuZ2luZV9jaGFuZ2VkX2NiICAg ICAgKEJ1c0lucHV0Q29udGV4dCAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzSUJ1c0ltcGwgICAgICAgICppYnVzKTsKLUBA IC05NzUsMjEgKzk3OCwzMCBAQCBfZmluZF9lbmdpbmVfZGVzY19ieV9uYW1lIChCdXNJQnVzSW1w bCAqaWJ1cywKLSAgKgotICAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4g dGhlICJyZXF1ZXN0LWVuZ2luZSIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlIGNvbnRleHQuCi0gICov Ci0tc3RhdGljIHZvaWQKLStzdGF0aWMgSUJ1c0VuZ2luZURlc2MgKgotIF9jb250ZXh0X3JlcXVl c3RfZW5naW5lX2NiIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAqZW5naW5lX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJ1c0lCdXNJbXBsICAgICAqaWJ1cykKLSB7Ci0tICAgIElCdXNFbmdp bmVEZXNjICpkZXNjID0gTlVMTDsKLSsgICAgcmV0dXJuIGJ1c19pYnVzX2ltcGxfZ2V0X2VuZ2lu ZV9kZXNjIChpYnVzLCBlbmdpbmVfbmFtZSk7Ci0rfQotIAotLSAgICAvKiBjb250ZXh0IHNob3Vs ZCBoYXMgZm9jdXMgYmVmb3JlIHJlcXVlc3QgYW4gZW5naW5lICovCi0tICAgIGdfcmV0dXJuX2lm X2ZhaWwgKGJ1c19pbnB1dF9jb250ZXh0X2hhc19mb2N1cyAoY29udGV4dCkgfHwKLS0gICAgICAg ICAgICAgICAgICAgICAgY29udGV4dCA9PSBpYnVzLT5mb2N1c2VkX2NvbnRleHQpOwotKy8qKgot KyAqIGJ1c19pYnVzX2ltcGxfZ2V0X2VuZ2luZV9kZXNjOgotKyAqCi0rICogR2V0IHRoZSBJQnVz RW5naW5lRGVzYyBieSBlbmdpbmVfbmFtZS4gSWYgdGhlIGVuZ2luZV9uYW1lIGlzIE5VTEwsIHJl dHVybgotKyAqIGEgZGVmYXVsdCBlbmdpbmUgZGVzYy4KLSsgKi8KLStzdGF0aWMgSUJ1c0VuZ2lu ZURlc2MgKgotK2J1c19pYnVzX2ltcGxfZ2V0X2VuZ2luZV9kZXNjIChCdXNJQnVzSW1wbCAqaWJ1 cywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmVuZ2luZV9u YW1lKQotK3sKLSsgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSBOVUxMOwotIAotICAgICBpZiAo ZW5naW5lX25hbWUgIT0gTlVMTCAmJiBlbmdpbmVfbmFtZVswXSAhPSAnXDAnKSB7Ci0gICAgICAg ICAvKiByZXF1ZXN0IGVuZ2luZSBieSBuYW1lICovCi0gICAgICAgICBkZXNjID0gX2ZpbmRfZW5n aW5lX2Rlc2NfYnlfbmFtZSAoaWJ1cywgZW5naW5lX25hbWUpOwotLSAgICAgICAgZ19yZXR1cm5f aWZfZmFpbCAoZGVzYyAhPSBOVUxMKTsKLSsgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChk ZXNjICE9IE5VTEwsIE5VTEwpOwotICAgICB9Ci0gICAgIGVsc2UgewotICAgICAgICAgLyogVXNl IGdsb2JhbCBlbmdpbmUgaWYgcG9zc2libGUuICovCi1AQCAtMTAxOCwxMSArMTAzMCwxMSBAQCBf Y29udGV4dF9yZXF1ZXN0X2VuZ2luZV9jYiAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotICAg ICAgICAgICAgICAqIG5vdCBmaW5kIGFueSBkZWZhdWx0IGVuZ2luZXMuIGFub3RoZXIgcG9zc2li bGl0eSBpcyB0aGF0IHRoZQotICAgICAgICAgICAgICAqIHVzZXIgaGFzbid0IGluc3RhbGxlZCBh biBlbmdpbmUgeWV0PyBqdXN0IGdpdmUgdXAuICovCi0gICAgICAgICAgICAgZ193YXJuaW5nICgi Tm8gZW5naW5lIGlzIGF2YWlsYWJsZS4gUnVuIGlidXMtc2V0dXAgZmlyc3QuIik7Ci0tICAgICAg ICAgICAgcmV0dXJuOwotKyAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgfQotICAg ICB9Ci0gCi0tICAgIGJ1c19pYnVzX2ltcGxfc2V0X2NvbnRleHRfZW5naW5lX2Zyb21fZGVzYyAo aWJ1cywgY29udGV4dCwgZGVzYyk7Ci0rICAgIHJldHVybiBkZXNjOwotIH0KLSAKLSAvKioKLUBA IC0xMDQxLDcgKzEwNTMsMTEgQEAgYnVzX2lidXNfaW1wbF9jb250ZXh0X3JlcXVlc3RfbmV4dF9l bmdpbmVfaW5fbWVudSAoQnVzSUJ1c0ltcGwgICAgICppYnVzLAotIAotICAgICBlbmdpbmUgPSBi dXNfaW5wdXRfY29udGV4dF9nZXRfZW5naW5lIChjb250ZXh0KTsKLSAgICAgaWYgKGVuZ2luZSA9 PSBOVUxMKSB7Ci0tICAgICAgICBfY29udGV4dF9yZXF1ZXN0X2VuZ2luZV9jYiAoY29udGV4dCwg TlVMTCwgaWJ1cyk7Ci0rICAgICAgICBkZXNjID0gYnVzX2lidXNfaW1wbF9nZXRfZW5naW5lX2Rl c2MgKGlidXMsIE5VTEwpOwotKyAgICAgICAgaWYgKGRlc2MgIT0gTlVMTCkKLSsgICAgICAgICAg ICBidXNfaWJ1c19pbXBsX3NldF9jb250ZXh0X2VuZ2luZV9mcm9tX2Rlc2MgKGlidXMsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVzYyk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLUBAIC0xMTEyLDcgKzEx MjgsMTQgQEAgYnVzX2lidXNfaW1wbF9jb250ZXh0X3JlcXVlc3RfcHJldmlvdXNfZW5naW5lIChC dXNJQnVzSW1wbCAgICAgKmlidXMsCi0gICAgICAgICBidXNfaWJ1c19pbXBsX2NvbnRleHRfcmVx dWVzdF9uZXh0X2VuZ2luZV9pbl9tZW51IChpYnVzLCBjb250ZXh0KTsKLSAgICAgICAgIHJldHVy bjsKLSAgICAgfQotLSAgICBfY29udGV4dF9yZXF1ZXN0X2VuZ2luZV9jYiAoY29udGV4dCwgZW5n aW5lX25hbWUsIGlidXMpOwotKwotKyAgICBJQnVzRW5naW5lRGVzYyAqZGVzYyA9IE5VTEw7Ci0r ICAgIGRlc2MgPSBidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZGVzYyAoaWJ1cywgZW5naW5lX25h bWUpOwotKyAgICBpZiAoZGVzYyAhPSBOVUxMKSB7Ci0rICAgICAgICBidXNfaWJ1c19pbXBsX3Nl dF9jb250ZXh0X2VuZ2luZV9mcm9tX2Rlc2MgKGlidXMsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MpOwotKyAgICB9Ci0gfQot IAotIHN0YXRpYyB2b2lkCi1kaWZmIC0tZ2l0IGEvYnVzL2lucHV0Y29udGV4dC5jIGIvYnVzL2lu cHV0Y29udGV4dC5jCi1pbmRleCBjMjI2YTIwLi42ZDY1ODMwIDEwMDY0NAotLS0tIGEvYnVzL2lu cHV0Y29udGV4dC5jCi0rKysgYi9idXMvaW5wdXRjb250ZXh0LmMKLUBAIC0yMCwxMSArMjAsMTMg QEAKLSAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSAgKi8KLSAjaW5jbHVkZSAiaW5w dXRjb250ZXh0LmgiCi0tI2luY2x1ZGUgInR5cGVzLmgiCi0tI2luY2x1ZGUgIm1hcnNoYWxlcnMu aCIKLS0jaW5jbHVkZSAiaWJ1c2ltcGwuaCIKLSsKLSAjaW5jbHVkZSAiZW5naW5lcHJveHkuaCIK LSAjaW5jbHVkZSAiZmFjdG9yeXByb3h5LmgiCi0rI2luY2x1ZGUgImlidXNpbXBsLmgiCi0rI2lu Y2x1ZGUgIm1hcnNoYWxlcnMuaCIKLSsjaW5jbHVkZSAib3B0aW9uLmgiCi0rI2luY2x1ZGUgInR5 cGVzLmgiCi0gCi0gc3RydWN0IF9TZXRFbmdpbmVCeURlc2NEYXRhIHsKLSAgICAgLyogY29udGV4 dCByZWxhdGVkIHRvIHRoZSBkYXRhICovCi1AQCAtNTY1LDggKzU2Nyw4IEBAIGJ1c19pbnB1dF9j b250ZXh0X2NsYXNzX2luaXQgKEJ1c0lucHV0Q29udGV4dENsYXNzICpjbGFzcykKLSAgICAgICAg ICAgICBHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgICAgICAwLAotICAgICAgICAgICAgIE5V TEwsIE5VTEwsCi0tICAgICAgICAgICAgYnVzX21hcnNoYWxfVk9JRF9fU1RSSU5HLAotLSAgICAg ICAgICAgIEdfVFlQRV9OT05FLAotKyAgICAgICAgICAgIGJ1c19tYXJzaGFsX09CSkVDVF9fU1RS SU5HLAotKyAgICAgICAgICAgIElCVVNfVFlQRV9FTkdJTkVfREVTQywKLSAgICAgICAgICAgICAx LAotICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcpOwotIAotQEAgLTkxNyw2ICs5MTksMjYgQEAg X2ljX2lzX2VuYWJsZWQgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLSAgICAgZ19k YnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwgZ192YXJpYW50 X25ldyAoIihiKSIsIGNvbnRleHQtPmVuYWJsZWQpKTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStf aWNfc2V0X2VuZ2luZV9kb25lIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCi0rICAg ICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICpyZXMsCi0rICAgICAgICAg ICAgICAgICAgICAgR0RCdXNNZXRob2RJbnZvY2F0aW9uICppbnZvY2F0aW9uKQotK3sKLSsgICAg Z2Jvb2xlYW4gcmV0dmFsID0gRkFMU0U7Ci0rICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOwotKwot KyAgICByZXR2YWwgPSBidXNfaW5wdXRfY29udGV4dF9zZXRfZW5naW5lX2J5X2Rlc2NfZmluaXNo IChjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgcmVzLCAmZXJyb3IpOwotKwotKyAgICBp ZiAoIXJldHZhbCkgewotKyAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9n ZXJyb3IgKGludm9jYXRpb24sIGVycm9yKTsKLSsgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3Ip OwotKyAgICB9Ci0rICAgIGVsc2UgewotKyAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9u X3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwgTlVMTCk7Ci0rICAgIH0KLSt9Ci0rCi0gLyoqCi0g ICogX2ljX3NldF9lbmdpbmU6Ci0gICoKLUBAIC05MzAsMTYgKzk1MiwzNCBAQCBfaWNfc2V0X2Vu Z2luZSAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAotICAgICBnY2hhciAqZW5naW5l X25hbWUgPSBOVUxMOwotICAgICBnX3ZhcmlhbnRfZ2V0IChwYXJhbWV0ZXJzLCAiKCZzKSIsICZl bmdpbmVfbmFtZSk7Ci0gCi0tICAgIGdfc2lnbmFsX2VtaXQgKGNvbnRleHQsIGNvbnRleHRfc2ln bmFsc1tSRVFVRVNUX0VOR0lORV0sIDAsIGVuZ2luZV9uYW1lKTsKLS0KLS0gICAgaWYgKGNvbnRl eHQtPmVuZ2luZSA9PSBOVUxMKSB7Ci0tICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25f cmV0dXJuX2Vycm9yIChpbnZvY2F0aW9uLCBHX0RCVVNfRVJST1IsIEdfREJVU19FUlJPUl9GQUlM RUQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgIkNhbiBub3QgZmluZCBlbmdpbmUgJyVzJy4i LCBlbmdpbmVfbmFtZSk7Ci0rICAgIGlmICghYnVzX2lucHV0X2NvbnRleHRfaGFzX2ZvY3VzIChj b250ZXh0KSkgewotKyAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJv ciAoaW52b2NhdGlvbiwKLSsgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SLCBHX0RCVVNfRVJS T1JfRkFJTEVELAotKyAgICAgICAgICAgICAgICAiQ29udGV4dCB3aGljaCBkb2VzIG5vdCBoYXMg Zm9jdXMgY2FuIG5vdCBjaGFuZ2UgZW5naW5lIHRvICVzLiIsCi0rICAgICAgICAgICAgICAgIGVu Z2luZV9uYW1lKTsKLSsgICAgICAgIHJldHVybjsKLSAgICAgfQotLSAgICBlbHNlIHsKLS0gICAg ICAgIGJ1c19pbnB1dF9jb250ZXh0X2VuYWJsZSAoY29udGV4dCk7Ci0tICAgICAgICBnX2RidXNf bWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlIChpbnZvY2F0aW9uLCBOVUxMKTsKLSsKLSsg ICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSBOVUxMOwotKyAgICBnX3NpZ25hbF9lbWl0IChjb250 ZXh0LAotKyAgICAgICAgICAgICAgICAgICBjb250ZXh0X3NpZ25hbHNbUkVRVUVTVF9FTkdJTkVd LCAwLAotKyAgICAgICAgICAgICAgICAgICBlbmdpbmVfbmFtZSwKLSsgICAgICAgICAgICAgICAg ICAgJmRlc2MpOwotKyAgICBpZiAoZGVzYyA9PSBOVUxMKSB7Ci0rICAgICAgICBnX2RidXNfbWV0 aG9kX2ludm9jYXRpb25fcmV0dXJuX2Vycm9yIChpbnZvY2F0aW9uLAotKyAgICAgICAgICAgICAg ICAgICAgICAgIEdfREJVU19FUlJPUiwgR19EQlVTX0VSUk9SX0ZBSUxFRCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAiQ2FuIG5vdCBmaW5kIGVuZ2luZSAlcy4iLCBlbmdpbmVfbmFtZSk7Ci0r ICAgICAgICByZXR1cm47Ci0gICAgIH0KLSsKLSsgICAgYnVzX2lucHV0X2NvbnRleHRfc2V0X2Vu Z2luZV9ieV9kZXNjIChjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNj LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2dkYnVzX3RpbWVvdXQsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IChHQXN5bmNSZWFkeUNhbGxiYWNrKV9pY19zZXRfZW5naW5lX2RvbmUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludm9jYXRpb24pOwotKwotKyAgICBnX29iamVjdF91bnJlZiAoZGVz Yyk7Ci0gfQotIAotIC8qKgotQEAgLTEwNDUsNyArMTA4NSwyMSBAQCBidXNfaW5wdXRfY29udGV4 dF9mb2N1c19pbiAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotIAotICAgICBpZiAoY29udGV4 dC0+ZW5naW5lID09IE5VTEwgJiYgY29udGV4dC0+ZW5hYmxlZCkgewotICAgICAgICAgLyogcmVx dWVzdCBhbiBlbmdpbmUsIGUuZy4gYSBnbG9iYWwgZW5naW5lIGlmIHRoZSBmZWF0dXJlIGlzIGVu YWJsZWQuICovCi0tICAgICAgICBnX3NpZ25hbF9lbWl0IChjb250ZXh0LCBjb250ZXh0X3NpZ25h bHNbUkVRVUVTVF9FTkdJTkVdLCAwLCBOVUxMKTsKLSsgICAgICAgIElCdXNFbmdpbmVEZXNjICpk ZXNjID0gTlVMTDsKLSsgICAgICAgIGdfc2lnbmFsX2VtaXQgKGNvbnRleHQsCi0rICAgICAgICAg ICAgICAgICAgICAgICBjb250ZXh0X3NpZ25hbHNbUkVRVUVTVF9FTkdJTkVdLCAwLAotKyAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICZkZXNjKTsK LSsKLSsgICAgICAgIGlmIChkZXNjICE9IE5VTEwpIHsKLSsgICAgICAgICAgICBidXNfaW5wdXRf Y29udGV4dF9zZXRfZW5naW5lX2J5X2Rlc2MgKGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRlc2MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZ2RidXNfdGlt ZW91dCwgLyogdGltZW91dCBpbiBtc2VjLiAqLwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLCAvKiB3ZSBkbyBub3QgY2FuY2VsIHRoZSBjYWxsLiAqLwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLCAvKiB1c2UgdGhlIGRlZmF1bHQgY2FsbGJhY2sgZnVuY3Rpb24u ICovCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotKyAgICAgICAgICAgIGdf b2JqZWN0X3VucmVmIChkZXNjKTsKLSsgICAgICAgIH0KLSAgICAgfQotIAotICAgICBpZiAoY29u dGV4dC0+ZW5naW5lICYmIGNvbnRleHQtPmVuYWJsZWQpIHsKLUBAIC0xOTI3LDcgKzE5ODEsMjAg QEAgYnVzX2lucHV0X2NvbnRleHRfZW5hYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0g ICAgIH0KLSAKLSAgICAgaWYgKGNvbnRleHQtPmVuZ2luZSA9PSBOVUxMKSB7Ci0tICAgICAgICBn X3NpZ25hbF9lbWl0IChjb250ZXh0LCBjb250ZXh0X3NpZ25hbHNbUkVRVUVTVF9FTkdJTkVdLCAw LCBOVUxMKTsKLSsgICAgICAgIElCdXNFbmdpbmVEZXNjICpkZXNjID0gTlVMTDsKLSsgICAgICAg IGdfc2lnbmFsX2VtaXQgKGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0 X3NpZ25hbHNbUkVRVUVTVF9FTkdJTkVdLCAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwKLSsgICAgICAgICAgICAgICAgICAgICAgICZkZXNjKTsKLSsgICAgICAgIGlmIChkZXNjICE9 IE5VTEwpIHsKLSsgICAgICAgICAgICBidXNfaW5wdXRfY29udGV4dF9zZXRfZW5naW5lX2J5X2Rl c2MgKGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdfZ2RidXNfdGltZW91dCwgLyogdGltZW91dCBpbiBtc2Vj LiAqLwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAvKiB3ZSBkbyBub3QgY2Fu Y2VsIHRoZSBjYWxsLiAqLwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAvKiB1 c2UgdGhlIGRlZmF1bHQgY2FsbGJhY2sgZnVuY3Rpb24uICovCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwpOwotKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmIChkZXNjKTsKLSsg ICAgICAgIH0KLSAgICAgfQotIAotICAgICBpZiAoY29udGV4dC0+ZW5naW5lID09IE5VTEwpCi1k aWZmIC0tZ2l0IGEvYnVzL21hcnNoYWxlcnMubGlzdCBiL2J1cy9tYXJzaGFsZXJzLmxpc3QKLWlu ZGV4IDE1YmRmMDIuLjE1OWJjMjQgMTAwNjQ0Ci0tLS0gYS9idXMvbWFyc2hhbGVycy5saXN0Ci0r KysgYi9idXMvbWFyc2hhbGVycy5saXN0Ci1AQCAtMSwxMyArMSwxMyBAQAotLVZPSUQ6Vk9JRAot LVZPSUQ6U1RSSU5HCi0tVk9JRDpPQkpFQ1QKLStCT09MOlVJTlQsVUlOVCxVSU5UCi0rT0JKRUNU OlNUUklORwotIFZPSUQ6SU5ULFVJTlQKLS1WT0lEOlVJTlQsVUlOVCxVSU5UCi0gVk9JRDpJTlQs SU5ULElOVCxJTlQKLS1WT0lEOlNUUklORyxJTlQKLSBWT0lEOk9CSkVDVAotLVZPSUQ6U1RSSU5H LFNUUklORyxTVFJJTkcKLSBWT0lEOk9CSkVDVCxCT09MRUFOCi0gVk9JRDpPQkpFQ1QsVUlOVCxC T09MRUFOCi0gVk9JRDpPQkpFQ1QsVUlOVCxCT09MRUFOLFVJTlQKLS1CT09MOlVJTlQsVUlOVCxV SU5UCi0rVk9JRDpTVFJJTkcKLStWT0lEOlNUUklORyxJTlQKLStWT0lEOlNUUklORyxTVFJJTkcs U1RSSU5HCi0rVk9JRDpVSU5ULFVJTlQsVUlOVAotK1ZPSUQ6Vk9JRAotLS0gCi0xLjcuNC4xCi0K LUZyb20gYTlhN2Q3N2I1NDA4MjYyNTk4ODlhYThjODkzNmI3YTNjYWUxNTkzZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNv bT4KLURhdGU6IEZyaSwgMjUgTWFyIDIwMTEgMTM6NTc6MzEgKzA5MDAKLVN1YmplY3Q6IFtQQVRD SF0gU2V0IFdNX0NMQVNTIG5hbWUgaW5zdGVhZCBvZiBtYWluLnB5Ci0KLS0tLQotIHVpL2d0ay9w YW5lbC5weSB8ICAgMTEgKysrKysrKysrKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS91aS9ndGsvcGFuZWwucHkgYi91 aS9ndGsvcGFuZWwucHkKLWluZGV4IDA3YjBmYTIuLjlkNjNhMTcgMTAwNjQ0Ci0tLS0gYS91aS9n dGsvcGFuZWwucHkKLSsrKyBiL3VpL2d0ay9wYW5lbC5weQotQEAgLTM3LDcgKzM3LDcgQEAKLSAK LSBmcm9tIGkxOG4gaW1wb3J0IF8sIE5fCi0gCi0tSUNPTl9LRVlCT0FSRCA9ICJpYnVzLWtleWJv YXJkIgotK0lDT05fS0VZQk9BUkQgPSAiaW5wdXQta2V5Ym9hcmQtc3ltYm9saWMiCi0gSUNPTl9F TkdJTkUgPSAiaWJ1cy1lbmdpbmUiCi0gCi0gZGVmIHNob3dfdXJpKHNjcmVlbiwgbGluayk6Ci1A QCAtMTAzLDYgKzEwMywxNiBAQCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFzZSk6Ci0gCi0gCi0g ICAgICAgICBzZWxmLl9fc3RhdHVzX2ljb24gPSBndGsuU3RhdHVzSWNvbigpCi0rICAgICAgICAj IGdub21lLXNoZWxsIGNoZWNrcyBYQ2xhc3NIaW50LnJlc19jbGFzcyB3aXRoIFNoZWxsVHJheUlj b24uCi0rICAgICAgICAjIGd0a19zdGF0dXNfaWNvbl9zZXRfbmFtZSgpIGNhbiBzZXQgWENsYXNz SGludC5yZXNfY2xhc3MgLgotKyAgICAgICAgIyBIb3dldmVyIGd0a19zdGF0dXNfaWNvbl9uZXco KSBhbHNvIGNhbGxzIGd0a193aW5kb3dfcmVhbGl6ZSgpIHNvCi0rICAgICAgICAjIGd0a19zdGF0 dXNfaWNvbl9zZXRfdmlzaWJsZSgpIG5lZWRzIHRvIGJlIGNhbGxlZCB0byBzZXQgV01fQ0xBU1MK LSsgICAgICAgICMgc28gdGhhdCBndGtfd2luZG93X3JlYWxpemUoKSBpcyBjYWxsZWQgbGF0ZXIg YWdhaW4uCi0rICAgICAgICAjIHNldF90aXRsZSBpcyBmb3IgZ25vbWUtc2hlbGwgbm90aWZpY2F0 aW9uRGFlbW9uIGluIGJvdHRvbSByaWdodC4KLSsgICAgICAgIHNlbGYuX19zdGF0dXNfaWNvbi5z ZXRfdmlzaWJsZShGYWxzZSkKLSsgICAgICAgIHNlbGYuX19zdGF0dXNfaWNvbi5zZXRfbmFtZSgn aWJ1cy11aS1ndGsnKQotKyAgICAgICAgc2VsZi5fX3N0YXR1c19pY29uLnNldF90aXRsZShfKCJJ QnVzIFBhbmVsIikpCi0rICAgICAgICBzZWxmLl9fc3RhdHVzX2ljb24uc2V0X3Zpc2libGUoVHJ1 ZSkKLSAgICAgICAgIHNlbGYuX19zdGF0dXNfaWNvbi5jb25uZWN0KCJwb3B1cC1tZW51Iiwgc2Vs Zi5fX3N0YXR1c19pY29uX3BvcHVwX21lbnVfY2IpCi0gICAgICAgICBzZWxmLl9fc3RhdHVzX2lj b24uY29ubmVjdCgiYWN0aXZhdGUiLCBzZWxmLl9fc3RhdHVzX2ljb25fYWN0aXZhdGVfY2IpCi0g ICAgICAgICBzZWxmLl9fc3RhdHVzX2ljb24uc2V0X2Zyb21faWNvbl9uYW1lKElDT05fS0VZQk9B UkQpCi0tLSAKLTEuNy40LjEKIAoKZGlmZiAtLWdpdCBhL2lidXMteHgtc2V0dXAtZnJlcXVlbnQt bGFuZy5wYXRjaCBiL2lidXMteHgtc2V0dXAtZnJlcXVlbnQtbGFuZy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDI4YTIyCi0tLSAvZGV2L251bGwKKysrIGIvaWJ1 cy14eC1zZXR1cC1mcmVxdWVudC1sYW5nLnBhdGNoCkBAIC0wLDAgKzEsNDI4IEBACitGcm9tIDhl OTgyZWY3ZDc2ZjQwZjNlNTE2YzJmMmE5NmIyZTRmNjhlNjVmYzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRl OiBUdWUsIDE5IEFwciAyMDExIDExOjQzOjAzICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEVuYWJs ZSBpYnVzLXNldHVwIHRvIHNob3cgdGhlIGZyZXF1ZW50IHVzZWQgbGFuZ3VhZ2VzIG9ubHkgaW4g SU1FIGxpc3QuCisKKy0tLQorIGRhdGEvaWJ1cy5zY2hlbWFzLmluICAgIHwgIDE2OCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIHNldHVwL2VuZ2luZWNv bWJvYm94LnB5IHwgIDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0KKyBzZXR1cC9tYWluLnB5ICAgICAgICAgICB8ICAgIDEgKworIDMgZmlsZXMgY2hhbmdlZCwg MzAwIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZGF0YS9p YnVzLnNjaGVtYXMuaW4gYi9kYXRhL2lidXMuc2NoZW1hcy5pbgoraW5kZXggMzk5MjJhMC4uMmUz M2IyYyAxMDA2NDQKKy0tLSBhL2RhdGEvaWJ1cy5zY2hlbWFzLmluCisrKysgYi9kYXRhL2lidXMu c2NoZW1hcy5pbgorQEAgLTIzOSw2ICsyMzksMTc0IEBACisgICAgICAgPC9sb2NhbGU+CisgICAg IDwvc2NoZW1hPgorICAgICA8c2NoZW1hPgorKyAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9p YnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL3N5c3RlbS9ncm91cF9saXN0PC9rZXk+CisrICAg ICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL3hrYmxheW91dGNvbmZpZy9zeXN0ZW0v Z3JvdXBfbGlzdDwvYXBwbHl0bz4KKysgICAgICA8b3duZXI+aWJ1czwvb3duZXI+CisrICAgICAg PHR5cGU+bGlzdDwvdHlwZT4KKysgICAgICA8bGlzdF90eXBlPnN0cmluZzwvbGlzdF90eXBlPgor KyAgICAgIDxkZWZhdWx0Plt3ZXN0X2V1cm9wZSxzb3V0aF9ldXJvcGUsZWFzdF9ldXJvcGUsbm9y dGhfZXVyb3BlLHdlc3RfYXNpYSxjZW50ZXJfYXNpYSxlYXN0X2FzaWEsaW5kaWEsYXVzdHJhbGlh XTwvZGVmYXVsdD4KKysgICAgICA8bG9jYWxlIG5hbWU9IkMiPgorKyAgICAgICAgPHNob3J0Pkxp c3Qgb2Ygc3lzdGVtIGtleWJvYXJkIGxheW91dCBncm91cHMgb24gaWJ1cy1zZXR1cDwvc2hvcnQ+ CisrCSAgICA8bG9uZz5UaGUgZ3JvdXAgbGlzdCBpcyB1c2VkIG5vdCB0byBzaG93IGFsbCB0aGUg c3lzdGVtCisrICAgICAgICAgICAgICAgICAga2V5Ym9hcmQgbGF5b3V0cyBieSBkZWZhdWx0LiBU aGUgbGlzdCBpdGVtIHdpbGwgYmUKKysgICAgICAgICAgICAgICAgICBhcHBlbmRlZCBhdCB0aGUg ZW5kIG9mIGdjb25mIGtleS4gZS5nLgorKyAgICAgICAgICAgICAgICAgIC4uLi94a2JsYXlvdXRj b25maWcvc3lzdGVtL2l0ZW0xPC9sb25nPgorKyAgICAgIDwvbG9jYWxlPgorKyAgICA8L3NjaGVt YT4KKysgICAgPHNjaGVtYT4KKysgICAgICA8a2V5Pi9zY2hlbWFzL2Rlc2t0b3AvaWJ1cy9nZW5l cmFsL3hrYmxheW91dGNvbmZpZy9zeXN0ZW0vd2VzdF9ldXJvcGU8L2tleT4KKysgICAgICA8YXBw bHl0bz4vZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL3N5c3RlbS93ZXN0X2V1 cm9wZTwvYXBwbHl0bz4KKysgICAgICA8b3duZXI+aWJ1czwvb3duZXI+CisrICAgICAgPHR5cGU+ bGlzdDwvdHlwZT4KKysgICAgICA8bGlzdF90eXBlPnN0cmluZzwvbGlzdF90eXBlPgorKyAgICAg IDwhLS0KKysgICAgICA8ZGVmYXVsdD5bYWQsYmUsYnIsZGUsY2EsY2gsY3osZXMsZnIsZ24saHUs aWUsaWUoQ2xvR2FlbGFjaCksaXQsbGF0YW0sbmwscHQsc2ksc2tdPC9kZWZhdWx0PgorKyAgICAg IC0tPgorKyAgICAgIDxkZWZhdWx0PltjYSxjcyxkZSxlbixlcyxmcixnZCxodSxpdCxubCxwdCxz ayxzbF08L2RlZmF1bHQ+CisrICAgICAgPGxvY2FsZSBuYW1lPSJDIj4KKysgICAgICAgIDxzaG9y dD5MaXN0IG9mIEV1cm9wZWFuIGxhbmd1YWdlcyBvbiBpYnVzLXNldHVwPC9zaG9ydD4KKysJICAg IDxsb25nPmlidXMtc2V0dXAgc2hvd3MgdGhlIGxhbmd1YWdlcyBvbmx5IGluIGlucHV0IG1ldGhv ZCBsaXN0CisrICAgICAgICAgICAgICAgICAgd2hlbiB5b3UgcnVuIGlidXMtc2V0dXAgb24gb25l IG9mIHRoZSBsYW5ndWFnZXMuCisrICAgICAgICAgICAgICAgICAgT3RoZXIgbGFuZ3VhZ2VzIGFy ZSBoaWRkZW4gdW5kZXIgYW4gZXh0ZW5kZWQgYnV0dG9uLjwvbG9uZz4KKysgICAgICA8L2xvY2Fs ZT4KKysgICAgPC9zY2hlbWE+CisrICAgIDxzY2hlbWE+CisrICAgICAgPGtleT4vc2NoZW1hcy9k ZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25maWcvc3lzdGVtL3NvdXRoX2V1cm9wZTwv a2V5PgorKyAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25m aWcvc3lzdGVtL3NvdXRoX2V1cm9wZTwvYXBwbHl0bz4KKysgICAgICA8b3duZXI+aWJ1czwvb3du ZXI+CisrICAgICAgPHR5cGU+bGlzdDwvdHlwZT4KKysgICAgICA8bGlzdF90eXBlPnN0cmluZzwv bGlzdF90eXBlPgorKyAgICAgIDwhLS0KKysgICAgICA8ZGVmYXVsdD5bYWwsYmEsYmcsZ3IsbWUs bWssbXQscm8scnNdPC9kZWZhdWx0PgorKyAgICAgIC0tPgorKyAgICAgIDxkZWZhdWx0PltiZyxi cyxlbCxtayxtdCxybyxzcSxzcl08L2RlZmF1bHQ+CisrICAgICAgPGxvY2FsZSBuYW1lPSJDIj4K KysgICAgICAgIDxzaG9ydD5MaXN0IG9mIEV1cm9wZWFuIGxhbmd1YWdlcyBvbiBpYnVzLXNldHVw PC9zaG9ydD4KKysJICAgIDxsb25nPmlidXMtc2V0dXAgc2hvd3MgdGhlIGxhbmd1YWdlcyBvbmx5 IGluIGlucHV0IG1ldGhvZCBsaXN0CisrICAgICAgICAgICAgICAgICAgd2hlbiB5b3UgcnVuIGli dXMtc2V0dXAgb24gb25lIG9mIHRoZSBsYW5ndWFnZXMuCisrICAgICAgICAgICAgICAgICAgT3Ro ZXIgbGFuZ3VhZ2VzIGFyZSBoaWRkZW4gdW5kZXIgYW4gZXh0ZW5kZWQgYnV0dG9uLjwvbG9uZz4K KysgICAgICA8L2xvY2FsZT4KKysgICAgPC9zY2hlbWE+CisrICAgIDxzY2hlbWE+CisrICAgICAg PGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25maWcvc3lzdGVt L2Vhc3RfZXVyb3BlPC9rZXk+CisrICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFs L3hrYmxheW91dGNvbmZpZy9zeXN0ZW0vZWFzdF9ldXJvcGU8L2FwcGx5dG8+CisrICAgICAgPG93 bmVyPmlidXM8L293bmVyPgorKyAgICAgIDx0eXBlPmxpc3Q8L3R5cGU+CisrICAgICAgPGxpc3Rf dHlwZT5zdHJpbmc8L2xpc3RfdHlwZT4KKysgICAgICA8IS0tCisrICAgICAgPGRlZmF1bHQ+W2J5 LGVlLGVwbyxnZSxnZShkc2IpLGdlKHJ1KSxnZShvcyksaHIsa2csa3osbHQsbHYscGwscGwoY3Ni KSxydSxydShjdikscnUoa29tKSxydShzYWgpLHJ1KHR0KSxydSh4YWwpLHVhLHV6XTwvZGVmYXVs dD4KKysgICAgICAtLT4KKysgICAgICA8ZGVmYXVsdD5bYmUsY3NiLGN2LGV0LGthLGtrLGt5LGx0 LGx2LHBsLHJ1LHR0LHVrLHV6XTwvZGVmYXVsdD4KKysgICAgICA8bG9jYWxlIG5hbWU9IkMiPgor KyAgICAgICAgPHNob3J0Pkxpc3Qgb2YgRXVyb3BlYW4gbGFuZ3VhZ2VzIG9uIGlidXMtc2V0dXA8 L3Nob3J0PgorKwkgICAgPGxvbmc+aWJ1cy1zZXR1cCBzaG93cyB0aGUgbGFuZ3VhZ2VzIG9ubHkg aW4gaW5wdXQgbWV0aG9kIGxpc3QKKysgICAgICAgICAgICAgICAgICB3aGVuIHlvdSBydW4gaWJ1 cy1zZXR1cCBvbiBvbmUgb2YgdGhlIGxhbmd1YWdlcy4KKysgICAgICAgICAgICAgICAgICBPdGhl ciBsYW5ndWFnZXMgYXJlIGhpZGRlbiB1bmRlciBhbiBleHRlbmRlZCBidXR0b24uPC9sb25nPgor KyAgICAgIDwvbG9jYWxlPgorKyAgICA8L3NjaGVtYT4KKysgICAgPHNjaGVtYT4KKysgICAgICA8 a2V5Pi9zY2hlbWFzL2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL3hrYmxheW91dGNvbmZpZy9zeXN0ZW0v bm9ydGhfZXVyb3BlPC9rZXk+CisrICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFs L3hrYmxheW91dGNvbmZpZy9zeXN0ZW0vbm9ydGhfZXVyb3BlPC9hcHBseXRvPgorKyAgICAgIDxv d25lcj5pYnVzPC9vd25lcj4KKysgICAgICA8dHlwZT5saXN0PC90eXBlPgorKyAgICAgIDxsaXN0 X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+CisrICAgICAgPCEtLQorKyAgICAgIDxkZWZhdWx0Pltk ayxmaSxmbyxpcyxubyxubyhzbWkpLHNlXTwvZGVmYXVsdD4KKysgICAgICAtLT4KKysgICAgICA8 ZGVmYXVsdD5bZGEsZmksZm8saXMsbm8sc2Usc3ZdPC9kZWZhdWx0PgorKyAgICAgIDxsb2NhbGUg bmFtZT0iQyI+CisrICAgICAgICA8c2hvcnQ+TGlzdCBvZiBFdXJvcGVhbiBsYW5ndWFnZXMgb24g aWJ1cy1zZXR1cDwvc2hvcnQ+CisrCSAgICA8bG9uZz5pYnVzLXNldHVwIHNob3dzIHRoZSBsYW5n dWFnZXMgb25seSBpbiBpbnB1dCBtZXRob2QgbGlzdAorKyAgICAgICAgICAgICAgICAgIHdoZW4g eW91IHJ1biBpYnVzLXNldHVwIG9uIG9uZSBvZiB0aGUgbGFuZ3VhZ2VzLgorKyAgICAgICAgICAg ICAgICAgIE90aGVyIGxhbmd1YWdlcyBhcmUgaGlkZGVuIHVuZGVyIGFuIGV4dGVuZGVkIGJ1dHRv bi48L2xvbmc+CisrICAgICAgPC9sb2NhbGU+CisrICAgIDwvc2NoZW1hPgorKyAgICA8c2NoZW1h PgorKyAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29u ZmlnL3N5c3RlbS93ZXN0X2FzaWE8L2tleT4KKysgICAgICA8YXBwbHl0bz4vZGVza3RvcC9pYnVz L2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL3N5c3RlbS93ZXN0X2FzaWE8L2FwcGx5dG8+CisrICAg ICAgPG93bmVyPmlidXM8L293bmVyPgorKyAgICAgIDx0eXBlPmxpc3Q8L3R5cGU+CisrICAgICAg PGxpc3RfdHlwZT5zdHJpbmc8L2xpc3RfdHlwZT4KKysgICAgICA8IS0tCisrICAgICAgPGRlZmF1 bHQ+W2FtLGFyYSxheixldCxnaCxnaChha2FuKSxnaChld2UpLGdoKGZ1bGEpLGdoKGdhKSxnaCho YXVzYSksaWwsaXEsaXEoa3UpLGlyLGlyKGt1KSxtYSxtYSh0aWZpbmFnaCksbmcsbmcoaGF1c2Ep LG5nLG5nKGlnYm8pLG5nKHlvcnViYSksc3ksc3koa3UpLHRqLHRyXTwvZGVmYXVsdD4KKysgICAg ICAtLT4KKysgICAgICA8ZGVmYXVsdD5bYW0sYXIsYXosYmVyLGZhLGhhLGhlLGh5LGlnLGt1LHRn LHRyLHlvXTwvZGVmYXVsdD4KKysgICAgICA8bG9jYWxlIG5hbWU9IkMiPgorKyAgICAgICAgPHNo b3J0Pkxpc3Qgb2YgQXNpYW4gbGFuZ3VhZ2VzIG9uIGlidXMtc2V0dXA8L3Nob3J0PgorKwkgICAg PGxvbmc+aWJ1cy1zZXR1cCBzaG93cyB0aGUgbGFuZ3VhZ2VzIG9ubHkgaW4gaW5wdXQgbWV0aG9k IGxpc3QKKysgICAgICAgICAgICAgICAgICB3aGVuIHlvdSBydW4gaWJ1cy1zZXR1cCBvbiBvbmUg b2YgdGhlIGxhbmd1YWdlcy4KKysgICAgICAgICAgICAgICAgICBPdGhlciBsYW5ndWFnZXMgYXJl IGhpZGRlbiB1bmRlciBhbiBleHRlbmRlZCBidXR0b24uPC9sb25nPgorKyAgICAgIDwvbG9jYWxl PgorKyAgICA8L3NjaGVtYT4KKysgICAgPHNjaGVtYT4KKysgICAgICA8a2V5Pi9zY2hlbWFzL2Rl c2t0b3AvaWJ1cy9nZW5lcmFsL3hrYmxheW91dGNvbmZpZy9zeXN0ZW0vY2VudGVyX2FzaWE8L2tl eT4KKysgICAgICA8YXBwbHl0bz4vZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmln L3N5c3RlbS9jZW50ZXJfYXNpYTwvYXBwbHl0bz4KKysgICAgICA8b3duZXI+aWJ1czwvb3duZXI+ CisrICAgICAgPHR5cGU+bGlzdDwvdHlwZT4KKysgICAgICA8bGlzdF90eXBlPnN0cmluZzwvbGlz dF90eXBlPgorKyAgICAgIDwhLS0KKysgICAgICA8ZGVmYXVsdD5bY24odGliKV08L2RlZmF1bHQ+ CisrICAgICAgLS0+CisrICAgICAgPGRlZmF1bHQ+W2JvLHpoXTwvZGVmYXVsdD4KKysgICAgICA8 bG9jYWxlIG5hbWU9IkMiPgorKyAgICAgICAgPHNob3J0Pkxpc3Qgb2YgQXNpYW4gbGFuZ3VhZ2Vz IG9uIGlidXMtc2V0dXA8L3Nob3J0PgorKwkgICAgPGxvbmc+aWJ1cy1zZXR1cCBzaG93cyB0aGUg bGFuZ3VhZ2VzIG9ubHkgaW4gaW5wdXQgbWV0aG9kIGxpc3QKKysgICAgICAgICAgICAgICAgICB3 aGVuIHlvdSBydW4gaWJ1cy1zZXR1cCBvbiBvbmUgb2YgdGhlIGxhbmd1YWdlcy4KKysgICAgICAg ICAgICAgICAgICBPdGhlciBsYW5ndWFnZXMgYXJlIGhpZGRlbiB1bmRlciBhbiBleHRlbmRlZCBi dXR0b24uPC9sb25nPgorKyAgICAgIDwvbG9jYWxlPgorKyAgICA8L3NjaGVtYT4KKysgICAgPHNj aGVtYT4KKysgICAgICA8a2V5Pi9zY2hlbWFzL2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL3hrYmxheW91 dGNvbmZpZy9zeXN0ZW0vZWFzdF9hc2lhPC9rZXk+CisrICAgICAgPGFwcGx5dG8+L2Rlc2t0b3Av aWJ1cy9nZW5lcmFsL3hrYmxheW91dGNvbmZpZy9zeXN0ZW0vZWFzdF9hc2lhPC9hcHBseXRvPgor KyAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4KKysgICAgICA8dHlwZT5saXN0PC90eXBlPgorKyAg ICAgIDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+CisrICAgICAgPCEtLQorKyAgICAgIDxk ZWZhdWx0PltidCxraCxsYSxtYWwsbW0sdGgsdm5dPC9kZWZhdWx0PgorKyAgICAgIC0tPgorKyAg ICAgIDxkZWZhdWx0PltkeixrbSxsbyxteSx0aCx2aV08L2RlZmF1bHQ+CisrICAgICAgPGxvY2Fs ZSBuYW1lPSJDIj4KKysgICAgICAgIDxzaG9ydD5MaXN0IG9mIEFzaWFuIGxhbmd1YWdlcyBvbiBp YnVzLXNldHVwPC9zaG9ydD4KKysJICAgIDxsb25nPmlidXMtc2V0dXAgc2hvd3MgdGhlIGxhbmd1 YWdlcyBvbmx5IGluIGlucHV0IG1ldGhvZCBsaXN0CisrICAgICAgICAgICAgICAgICAgd2hlbiB5 b3UgcnVuIGlidXMtc2V0dXAgb24gb25lIG9mIHRoZSBsYW5ndWFnZXMuCisrICAgICAgICAgICAg ICAgICAgT3RoZXIgbGFuZ3VhZ2VzIGFyZSBoaWRkZW4gdW5kZXIgYW4gZXh0ZW5kZWQgYnV0dG9u LjwvbG9uZz4KKysgICAgICA8L2xvY2FsZT4KKysgICAgPC9zY2hlbWE+CisrICAgIDxzY2hlbWE+ CisrICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25m aWcvc3lzdGVtL2luZGlhPC9rZXk+CisrICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5l cmFsL3hrYmxheW91dGNvbmZpZy9zeXN0ZW0vaW5kaWE8L2FwcGx5dG8+CisrICAgICAgPG93bmVy PmlidXM8L293bmVyPgorKyAgICAgIDx0eXBlPmxpc3Q8L3R5cGU+CisrICAgICAgPGxpc3RfdHlw ZT5zdHJpbmc8L2xpc3RfdHlwZT4KKysgICAgICA8IS0tCisrICAgICAgPGRlZmF1bHQ+W2JkLGlu LGluKGJlbiksaW4oZ3VqKSxpbihndXJ1KSxpbihqaGVsdW0pLGluKGthbiksaW4obWFsKSxpbihv cmkpLGluKHRhbSksaW4odGVsKSxpbih1cmQtcGhvbmV0aWMpLGluKGJvbG5hZ3JpKSxsayxsayh0 YW1fdW5pY29kZSksbXYsbnAscGtdPC9kZWZhdWx0PgorKyAgICAgIC0tPgorKyAgICAgIDxkZWZh dWx0PltibixkdixndSxoaSxrbixtbCxuZSxvcixwYSxzaSx0YSx0ZSx1cl08L2RlZmF1bHQ+Cisr ICAgICAgPGxvY2FsZSBuYW1lPSJDIj4KKysgICAgICAgIDxzaG9ydD5MaXN0IG9mIEFzaWFuIGxh bmd1YWdlcyBvbiBpYnVzLXNldHVwPC9zaG9ydD4KKysJICAgIDxsb25nPmlidXMtc2V0dXAgc2hv d3MgdGhlIGxhbmd1YWdlcyBvbmx5IGluIGlucHV0IG1ldGhvZCBsaXN0CisrICAgICAgICAgICAg ICAgICAgd2hlbiB5b3UgcnVuIGlidXMtc2V0dXAgb24gb25lIG9mIHRoZSBsYW5ndWFnZXMuCisr ICAgICAgICAgICAgICAgICAgT3RoZXIgbGFuZ3VhZ2VzIGFyZSBoaWRkZW4gdW5kZXIgYW4gZXh0 ZW5kZWQgYnV0dG9uLjwvbG9uZz4KKysgICAgICA8L2xvY2FsZT4KKysgICAgPC9zY2hlbWE+Cisr ICAgIDxzY2hlbWE+CisrICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJhbC94 a2JsYXlvdXRjb25maWcvc3lzdGVtL2F1c3RyYWxpYTwva2V5PgorKyAgICAgIDxhcHBseXRvPi9k ZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25maWcvc3lzdGVtL2F1c3RyYWxpYTwvYXBw bHl0bz4KKysgICAgICA8b3duZXI+aWJ1czwvb3duZXI+CisrICAgICAgPHR5cGU+bGlzdDwvdHlw ZT4KKysgICAgICA8bGlzdF90eXBlPnN0cmluZzwvbGlzdF90eXBlPgorKyAgICAgIDwhLS0KKysg ICAgICA8ZGVmYXVsdD5bbWFvXTwvZGVmYXVsdD4KKysgICAgICAtLT4KKysgICAgICA8ZGVmYXVs dD5bbWldPC9kZWZhdWx0PgorKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+CisrICAgICAgICA8c2hv cnQ+TGlzdCBvZiBBc2lhbiBsYW5ndWFnZXMgb24gaWJ1cy1zZXR1cDwvc2hvcnQ+CisrCSAgICA8 bG9uZz5pYnVzLXNldHVwIHNob3dzIHRoZSBsYW5ndWFnZXMgb25seSBpbiBpbnB1dCBtZXRob2Qg bGlzdAorKyAgICAgICAgICAgICAgICAgIHdoZW4geW91IHJ1biBpYnVzLXNldHVwIG9uIG9uZSBv ZiB0aGUgbGFuZ3VhZ2VzLgorKyAgICAgICAgICAgICAgICAgIE90aGVyIGxhbmd1YWdlcyBhcmUg aGlkZGVuIHVuZGVyIGFuIGV4dGVuZGVkIGJ1dHRvbi48L2xvbmc+CisrICAgICAgPC9sb2NhbGU+ CisrICAgIDwvc2NoZW1hPgorKyAgICA8c2NoZW1hPgorICAgICAgIDxrZXk+L3NjaGVtYXMvZGVz a3RvcC9pYnVzL3BhbmVsL3VzZV9jdXN0b21fZm9udDwva2V5PgorICAgICAgIDxhcHBseXRvPi9k ZXNrdG9wL2lidXMvcGFuZWwvdXNlX2N1c3RvbV9mb250PC9hcHBseXRvPgorICAgICAgIDxvd25l cj5pYnVzPC9vd25lcj4KK2RpZmYgLS1naXQgYS9zZXR1cC9lbmdpbmVjb21ib2JveC5weSBiL3Nl dHVwL2VuZ2luZWNvbWJvYm94LnB5CitpbmRleCA3MzgzMTc3Li5jNWIxOTRmIDEwMDY0NAorLS0t IGEvc2V0dXAvZW5naW5lY29tYm9ib3gucHkKKysrKyBiL3NldHVwL2VuZ2luZWNvbWJvYm94LnB5 CitAQCAtNDMsNyArNDMsMTAgQEAgY2xhc3MgRW5naW5lQ29tYm9Cb3goZ3RrLkNvbWJvQm94KToK KyAgICAgICAgIHNlbGYuY29ubmVjdCgibm90aWZ5OjphY3RpdmUiLCBzZWxmLl9fbm90aWZ5X2Fj dGl2ZV9jYikKKyAKKyAgICAgICAgIHNlbGYuX19tb2RlbCA9IE5vbmUKKysgICAgICAgIHNlbGYu X19hbGxfbW9kZWwgPSBOb25lCisrICAgICAgICBzZWxmLl9fY29uZmlnID0gTm9uZQorICAgICAg ICAgc2VsZi5fX3RpdGxlID0gXygiU2VsZWN0IGFuIGlucHV0IG1ldGhvZCIpCisrICAgICAgICBz ZWxmLl9fc2hvd19zdWJfbGFuZyA9IEZhbHNlCisgCisgICAgICAgICByZW5kZXJlciA9IGd0ay5D ZWxsUmVuZGVyZXJQaXhidWYoKQorICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ4YWxp Z24iLCAwKQorQEAgLTU3LDE4ICs2MCw1MSBAQCBjbGFzcyBFbmdpbmVDb21ib0JveChndGsuQ29t Ym9Cb3gpOgorICAgICAgICAgc2VsZi5wYWNrX3N0YXJ0KHJlbmRlcmVyLCBUcnVlKQorICAgICAg ICAgc2VsZi5zZXRfY2VsbF9kYXRhX2Z1bmMocmVuZGVyZXIsIHNlbGYuX19uYW1lX2NlbGxfZGF0 YV9jYikKKyAKKy0gICAgZGVmIHNldF9lbmdpbmVzKHNlbGYsIGVuZ2luZXMpOgorLSAgICAgICAg c2VsZi5fX21vZGVsID0gZ3RrLlRyZWVTdG9yZShnb2JqZWN0LlRZUEVfUFlPQkpFQ1QpCisrICAg IGRlZiBfX2djb25mX2dldF9sYW5nX2xpc3RfZnJvbV9sb2NhbGUoc2VsZik6CisrICAgICAgICBj b21tb25fbGlzdCA9IFsnZW4nLCAnT3RoZXInXQorKyAgICAgICAgaWYgIHNlbGYuX19jb25maWcg PT0gTm9uZToKKysgICAgICAgICAgICByZXR1cm4gTm9uZQorKyAgICAgICAgbG9jID0gTm9uZQor KyAgICAgICAgdHJ5OgorKyAgICAgICAgICAgIGxvYyA9IGxvY2FsZS5zZXRsb2NhbGUgKGxvY2Fs ZS5MQ19BTEwpCisrICAgICAgICBleGNlcHQ6CisrICAgICAgICAgICAgcGFzcworKyAgICAgICAg aWYgbG9jID09IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJuIGNvbW1vbl9saXN0CisrICAgICAg ICBjdXJyZW50X2xhbmcgPSBpYnVzLmdldF9sYW5ndWFnZV9uYW1lKGxvYykKKysgICAgICAgIGlm IGN1cnJlbnRfbGFuZyA9PSBOb25lOgorKyAgICAgICAgICAgIHJldHVybiBjb21tb25fbGlzdAor KyAgICAgICAgZ3JvdXBfbGlzdCA9IHNlbGYuX19jb25maWcuZ2V0X3ZhbHVlKCJnZW5lcmFsL3hr YmxheW91dGNvbmZpZy9zeXN0ZW0iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJncm91cF9saXN0IiwgTm9uZSkKKysgICAgICAgIGlmIGdyb3VwX2xpc3Qg PT0gTm9uZToKKysgICAgICAgICAgICByZXR1cm4gW2xvY10gKyBjb21tb25fbGlzdAorKyAgICAg ICAgZ3JvdXBfbGlzdCA9IGxpc3QoZ3JvdXBfbGlzdCkKKysgICAgICAgIGxhbmdfbGlzdCA9IE5v bmUKKysgICAgICAgIGZvciBncm91cCBpbiBncm91cF9saXN0OgorKyAgICAgICAgICAgIGdyb3Vw ID0gc3RyKGdyb3VwKQorKyAgICAgICAgICAgIGxhbmdzID0gc2VsZi5fX2NvbmZpZy5nZXRfdmFs dWUoImdlbmVyYWwveGtibGF5b3V0Y29uZmlnL3N5c3RlbSIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCwgW10pCisrICAgICAgICAgICAgZm9yIGxh bmcgaW4gbGFuZ3M6CisrICAgICAgICAgICAgICAgIGxhbmcgPSBzdHIobGFuZykKKysgICAgICAg ICAgICAgICAgaWYgY3VycmVudF9sYW5nID09IGlidXMuZ2V0X2xhbmd1YWdlX25hbWUobGFuZyk6 CisrICAgICAgICAgICAgICAgICAgICBsYW5nX2xpc3QgPSBsYW5ncworKyAgICAgICAgICAgICAg ICAgICAgYnJlYWsKKysgICAgICAgICAgICBpZiBsYW5nX2xpc3QgIT0gTm9uZToKKysgICAgICAg ICAgICAgICAgYnJlYWsKKysgICAgICAgIGlmIGxhbmdfbGlzdCA9PSBOb25lOgorKyAgICAgICAg ICAgIHJldHVybiBbbG9jXSArIGNvbW1vbl9saXN0CisrICAgICAgICByZXR1cm4gbGFuZ19saXN0 ICsgY29tbW9uX2xpc3QKKyAKKy0gICAgICAgIGl0ZXIxID0gc2VsZi5fX21vZGVsLmFwcGVuZChO b25lKQorLSAgICAgICAgc2VsZi5fX21vZGVsLnNldChpdGVyMSwgMCwgMCkKKy0gICAgICAgIGxh bmcgPSB7fQorLSAgICAgICAgZm9yIGUgaW4gZW5naW5lczoKKy0gICAgICAgICAgICBsID0gaWJ1 cy5nZXRfbGFuZ3VhZ2VfbmFtZShlLmxhbmd1YWdlKQorLSAgICAgICAgICAgIGlmIGwgbm90IGlu IGxhbmc6CistICAgICAgICAgICAgICAgIGxhbmdbbF0gPSBbXQorLSAgICAgICAgICAgIGxhbmdb bF0uYXBwZW5kKGUpCisrICAgIGRlZiBfX2hhc19lbmdpbmVfaW5fbGFuZ19saXN0KHNlbGYsIGVu Z2luZSwgbGFuZ19saXN0KToKKysgICAgICAgIHJldHZhbCA9IEZhbHNlCisrICAgICAgICBmb3Ig bGFuZyBpbiBsYW5nX2xpc3Q6CisrICAgICAgICAgICAgaWYgaWJ1cy5nZXRfbGFuZ3VhZ2VfbmFt ZShsYW5nKSA9PSBcCisrICAgICAgICAgICAgICAgIGlidXMuZ2V0X2xhbmd1YWdlX25hbWUoZW5n aW5lLmxhbmd1YWdlKToKKysgICAgICAgICAgICAgICAgcmV0dmFsID0gVHJ1ZQorKyAgICAgICAg ICAgICAgICBicmVhaworKyAgICAgICAgcmV0dXJuIHJldHZhbAorIAorKyAgICBkZWYgX19tb2Rl bF9hcHBlbmRfbGFuZ3Moc2VsZiwgbW9kZWwsIGxhbmcsIHZpc2libGUpOgorICAgICAgICAga2V5 cyA9IGxhbmcua2V5cygpCisgICAgICAgICBrZXlzLnNvcnQobG9jYWxlLnN0cmNvbGwpCisgICAg ICAgICAjYWRkICJPdGhlcnMiIHRvIHRoZSBlbmQgb2YgdGhlIGNvbWJvIGJveAorQEAgLTc2LDI5 ICsxMTIsODYgQEAgY2xhc3MgRW5naW5lQ29tYm9Cb3goZ3RrLkNvbWJvQm94KToKKyAgICAgICAg ICAgICBrZXlzLnJlbW92ZShpYnVzLmdldF9sYW5ndWFnZV9uYW1lKCJPdGhlciIpKQorICAgICAg ICAgICAgIGtleXMgKz0gW2lidXMuZ2V0X2xhbmd1YWdlX25hbWUoIk90aGVyIildCisgICAgICAg ICBmb3IgbCBpbiBrZXlzOgorLSAgICAgICAgICAgIGl0ZXIxID0gc2VsZi5fX21vZGVsLmFwcGVu ZChOb25lKQorLSAgICAgICAgICAgIHNlbGYuX19tb2RlbC5zZXQoaXRlcjEsIDAsIGwpCisrICAg ICAgICAgICAgaXRlcjEgPSBtb2RlbC5hcHBlbmQoTm9uZSkKKysgICAgICAgICAgICBtb2RlbC5z ZXQoaXRlcjEsIDAsIGwpCisgICAgICAgICAgICAgZGVmIGNtcF9lbmdpbmUoYSwgYik6CisgICAg ICAgICAgICAgICAgIGlmIGEucmFuayA9PSBiLnJhbms6CisgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gbG9jYWxlLnN0cmNvbGwoYS5sb25nbmFtZSwgYi5sb25nbmFtZSkKKyAgICAgICAgICAg ICAgICAgcmV0dXJuIGludChiLnJhbmsgLSBhLnJhbmspCisgICAgICAgICAgICAgbGFuZ1tsXS5z b3J0KGNtcF9lbmdpbmUpCisgICAgICAgICAgICAgZm9yIGUgaW4gbGFuZ1tsXToKKy0gICAgICAg ICAgICAgICAgaXRlcjIgPSBzZWxmLl9fbW9kZWwuYXBwZW5kKGl0ZXIxKQorLSAgICAgICAgICAg ICAgICBzZWxmLl9fbW9kZWwuc2V0KGl0ZXIyLCAwLCBlKQorKyAgICAgICAgICAgICAgICBpdGVy MiA9IG1vZGVsLmFwcGVuZChpdGVyMSkKKysgICAgICAgICAgICAgICAgbW9kZWwuc2V0KGl0ZXIy LCAwLCBlKQorKworKyAgICBkZWYgc2V0X2VuZ2luZXMoc2VsZiwgZW5naW5lcyk6CisrICAgICAg ICBzZWxmLl9fbW9kZWwgPSBndGsuVHJlZVN0b3JlKGdvYmplY3QuVFlQRV9QWU9CSkVDVCkKKysK KysgICAgICAgIGl0ZXIxID0gc2VsZi5fX21vZGVsLmFwcGVuZChOb25lKQorKyAgICAgICAgc2Vs Zi5fX21vZGVsLnNldChpdGVyMSwgMCwgMCkKKysgICAgICAgIGxhbmdfbGlzdCA9IHNlbGYuX19n Y29uZl9nZXRfbGFuZ19saXN0X2Zyb21fbG9jYWxlKCkKKysgICAgICAgIGxhbmcgPSB7fQorKyAg ICAgICAgc3ViX2xhbmcgPSB7fQorKyAgICAgICAgZm9yIGUgaW4gZW5naW5lczoKKysgICAgICAg ICAgICBsID0gaWJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZShlLmxhbmd1YWdlKQorKyAgICAgICAgICAg IGlmIGxhbmdfbGlzdCA9PSBOb25lIG9yIFwKKysgICAgICAgICAgICAgICAgc2VsZi5fX2hhc19l bmdpbmVfaW5fbGFuZ19saXN0KGUsIGxhbmdfbGlzdCk6CisrICAgICAgICAgICAgICAgIGlmIGwg bm90IGluIGxhbmc6CisrICAgICAgICAgICAgICAgICAgICBsYW5nW2xdID0gW10KKysgICAgICAg ICAgICAgICAgbGFuZ1tsXS5hcHBlbmQoZSkKKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAg ICAgICAgICBpZiBsIG5vdCBpbiBzdWJfbGFuZzoKKysgICAgICAgICAgICAgICAgICAgIHN1Yl9s YW5nW2xdID0gW10KKysgICAgICAgICAgICAgICAgc3ViX2xhbmdbbF0uYXBwZW5kKGUpCisrCisr ICAgICAgICBzZWxmLl9fbW9kZWxfYXBwZW5kX2xhbmdzKHNlbGYuX19tb2RlbCwgbGFuZywgVHJ1 ZSkKKysgICAgICAgIGl0ZXIxID0gc2VsZi5fX21vZGVsLmFwcGVuZChOb25lKQorKyAgICAgICAg c2VsZi5fX21vZGVsLnNldChpdGVyMSwgMCwgLTEpCisrCisrICAgICAgICBzZWxmLl9fYWxsX21v ZGVsID0gZ3RrLlRyZWVTdG9yZShnb2JqZWN0LlRZUEVfUFlPQkpFQ1QpCisrICAgICAgICBpdGVy MSA9IHNlbGYuX19hbGxfbW9kZWwuYXBwZW5kKE5vbmUpCisrICAgICAgICBzZWxmLl9fYWxsX21v ZGVsLnNldChpdGVyMSwgMCwgMCkKKysgICAgICAgIHNlbGYuX19tb2RlbF9hcHBlbmRfbGFuZ3Mo c2VsZi5fX2FsbF9tb2RlbCwgbGFuZywgRmFsc2UpCisrICAgICAgICBpdGVyMSA9IHNlbGYuX19h bGxfbW9kZWwuYXBwZW5kKE5vbmUpCisrICAgICAgICBzZWxmLl9fYWxsX21vZGVsLnNldChpdGVy MSwgMCwgLTEpCisrICAgICAgICBzZWxmLl9fbW9kZWxfYXBwZW5kX2xhbmdzKHNlbGYuX19hbGxf bW9kZWwsIHN1Yl9sYW5nLCBGYWxzZSkKKysKKysgICAgICAgIHNlbGYuX190b2dnbGVfc3ViX2xh bmcoKQorIAorLSAgICAgICAgc2VsZi5zZXRfbW9kZWwoc2VsZi5fX21vZGVsKQorKyAgICBkZWYg X190b2dnbGVfc3ViX2xhbmcoc2VsZik6CisrICAgICAgICBzZWxmLnNldF9tb2RlbChOb25lKQor KyAgICAgICAgaWYgc2VsZi5fX3Nob3dfc3ViX2xhbmc6CisrICAgICAgICAgICAgc2VsZi5zZXRf bW9kZWwoc2VsZi5fX2FsbF9tb2RlbCkKKysgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgc2Vs Zi5zZXRfbW9kZWwoc2VsZi5fX21vZGVsKQorICAgICAgICAgc2VsZi5zZXRfYWN0aXZlKDApCisg CisgICAgIGRlZiBfX2ljb25fY2VsbF9kYXRhX2NiKHNlbGYsIGNlbGxsYXlvdXQsIHJlbmRlcmVy LCBtb2RlbCwgaXRlcik6CistICAgICAgICBlbmdpbmUgPSBzZWxmLl9fbW9kZWwuZ2V0X3ZhbHVl KGl0ZXIsIDApCisrICAgICAgICBtb2RlbCA9IHNlbGYuZ2V0X21vZGVsKCkKKysgICAgICAgIGVu Z2luZSA9IG1vZGVsLmdldF92YWx1ZShpdGVyLCAwKQorIAorICAgICAgICAgaWYgaXNpbnN0YW5j ZShlbmdpbmUsIHN0cikgb3IgaXNpbnN0YW5jZSAoZW5naW5lLCB1bmljb2RlKToKKyAgICAgICAg ICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInZpc2libGUiLCBGYWxzZSkKKyAgICAgICAgICAg ICByZW5kZXJlci5zZXRfcHJvcGVydHkoInNlbnNpdGl2ZSIsIEZhbHNlKQorICAgICAgICAgZWxp ZiBpc2luc3RhbmNlKGVuZ2luZSwgaW50KToKKy0gICAgICAgICAgICByZW5kZXJlci5zZXRfcHJv cGVydHkoInZpc2libGUiLCBGYWxzZSkKKy0gICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVy dHkoInNlbnNpdGl2ZSIsIEZhbHNlKQorKyAgICAgICAgICAgIGlmIGVuZ2luZSA9PSAwOgorKyAg ICAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInZpc2libGUiLCBGYWxzZSkKKysg ICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJzZW5zaXRpdmUiLCBGYWxzZSkK KysgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJwaXhidWYiLCBOb25lKQor KyAgICAgICAgICAgIGVsaWYgZW5naW5lIDwgMDoKKysgICAgICAgICAgICAgICAgaWYgbm90IHNl bGYuX19zaG93X3N1Yl9sYW5nOgorKyAgICAgICAgICAgICAgICAgICAgcGl4YnVmID0gbG9hZF9p Y29uKCJsaXN0LWFkZCIsIGd0ay5JQ09OX1NJWkVfTEFSR0VfVE9PTEJBUikKKysgICAgICAgICAg ICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgICAgIHBpeGJ1ZiA9IGxvYWRfaWNvbigibGlz dC1yZW1vdmUiLCBndGsuSUNPTl9TSVpFX0xBUkdFX1RPT0xCQVIpCisrICAgICAgICAgICAgICAg IGlmIHBpeGJ1ZiA9PSBOb25lOgorKyAgICAgICAgICAgICAgICAgICAgcGl4YnVmID0gbG9hZF9p Y29uKCJndGstbWlzc2luZy1pbWFnZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ3RrLklDT05fU0laRV9MQVJHRV9UT09MQkFSKQorKyAgICAgICAgICAgICAgICBp ZiBwaXhidWYgPT0gTm9uZToKKysgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9w ZXJ0eSgidmlzaWJsZSIsIEZhbHNlKQorKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0 X3Byb3BlcnR5KCJzZW5zaXRpdmUiLCBGYWxzZSkKKysgICAgICAgICAgICAgICAgICAgIHJldHVy bgorKyAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInZpc2libGUiLCBUcnVl KQorKyAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInNlbnNpdGl2ZSIsIFRy dWUpCisrICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgicGl4YnVmIiwgcGl4 YnVmKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHko InZpc2libGUiLCBUcnVlKQorICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgic2Vu c2l0aXZlIiwgVHJ1ZSkKK0BAIC0xMTAsNyArMjAzLDggQEAgY2xhc3MgRW5naW5lQ29tYm9Cb3go Z3RrLkNvbWJvQm94KToKKyAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInBpeGJ1 ZiIsIHBpeGJ1ZikKKyAKKyAgICAgZGVmIF9fbmFtZV9jZWxsX2RhdGFfY2Ioc2VsZiwgY2VsbGxh eW91dCwgcmVuZGVyZXIsIG1vZGVsLCBpdGVyKToKKy0gICAgICAgIGVuZ2luZSA9IHNlbGYuX19t b2RlbC5nZXRfdmFsdWUoaXRlciwgMCkKKysgICAgICAgIG1vZGVsID0gc2VsZi5nZXRfbW9kZWwo KQorKyAgICAgICAgZW5naW5lID0gbW9kZWwuZ2V0X3ZhbHVlKGl0ZXIsIDApCisgCisgICAgICAg ICBpZiBpc2luc3RhbmNlIChlbmdpbmUsIHN0cikgb3IgaXNpbnN0YW5jZSAoZW5naW5lLCB1bmlj b2RlKToKKyAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInNlbnNpdGl2ZSIsIEZh bHNlKQorQEAgLTExOCw4ICsyMTIsMTUgQEAgY2xhc3MgRW5naW5lQ29tYm9Cb3goZ3RrLkNvbWJv Qm94KToKKyAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoIndlaWdodCIsIHBhbmdv LldFSUdIVF9OT1JNQUwpCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZW5naW5lLCBpbnQpOgor ICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgic2Vuc2l0aXZlIiwgVHJ1ZSkKKy0g ICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInRleHQiLCBzZWxmLl9fdGl0bGUpCist ICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ3ZWlnaHQiLCBwYW5nby5XRUlHSFRf Tk9STUFMKQorKyAgICAgICAgICAgIGlmIGVuZ2luZSA9PSAwOgorKyAgICAgICAgICAgICAgICBy ZW5kZXJlci5zZXRfcHJvcGVydHkoInRleHQiLCBzZWxmLl9fdGl0bGUpCisrICAgICAgICAgICAg ICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgid2VpZ2h0IiwgcGFuZ28uV0VJR0hUX05PUk1BTCkK KysgICAgICAgICAgICBlbGlmIGVuZ2luZSA8IDA6CisrICAgICAgICAgICAgICAgIGlmIG5vdCBz ZWxmLl9fc2hvd19zdWJfbGFuZzoKKysgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9w cm9wZXJ0eSgidGV4dCIsIF8oIlNob3cgYWxsIGxhbmd1YWdlcyIpKQorKyAgICAgICAgICAgICAg ICBlbHNlOgorKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ0ZXh0 IiwgXygiU2hvdyBmcmVxdWVudCB1c2VkIGxhbmd1YWdlcyBvbmx5IikpCisrICAgICAgICAgICAg ICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgid2VpZ2h0IiwgcGFuZ28uV0VJR0hUX0JPTEQpCisg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgic2Vuc2l0 aXZlIiwgVHJ1ZSkKKyAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInRleHQiLCBl bmdpbmUubG9uZ25hbWUpCitAQCAtMTM0LDEzICsyMzUsMjEgQEAgY2xhc3MgRW5naW5lQ29tYm9C b3goZ3RrLkNvbWJvQm94KToKKyAgICAgICAgICAgICBpZiBpID09IDAgb3IgaSA9PSAtMToKKyAg ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgICBpdGVyID0gc2VsZi5nZXRf YWN0aXZlX2l0ZXIoKQorLSAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9tb2RlbCgpW2l0ZXJd WzBdCisrICAgICAgICAgICAgbW9kZWwgPSBzZWxmLmdldF9tb2RlbCgpCisrICAgICAgICAgICAg aWYgbW9kZWxbaXRlcl1bMF0gPT0gLTE6CisrICAgICAgICAgICAgICAgIHNlbGYuX19zaG93X3N1 Yl9sYW5nID0gbm90IHNlbGYuX19zaG93X3N1Yl9sYW5nCisrICAgICAgICAgICAgICAgIHNlbGYu X190b2dnbGVfc3ViX2xhbmcoKQorKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorKyAgICAg ICAgICAgIHJldHVybiBtb2RlbFtpdGVyXVswXQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICByYWlzZSBBdHRyaWJ1dGVFcnJvciwgJ3Vua25vd24gcHJvcGVydHkgJXMnICUgcHJvcGVydHku bmFtZQorIAorICAgICBkZWYgZ2V0X2FjdGl2ZV9lbmdpbmUoc2VsZik6CisgICAgICAgICByZXR1 cm4gc2VsZi5nZXRfcHJvcGVydHkoImFjdGl2ZS1lbmdpbmUiKQorIAorKyAgICBkZWYgc2V0X2Nv bmZpZyhzZWxmLCBjb25maWcpOgorKyAgICAgICAgc2VsZi5fX2NvbmZpZyA9IGNvbmZpZworKwor ICAgICBkZWYgZ2V0X3RpdGxlKHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX190aXRsZQor IAorZGlmZiAtLWdpdCBhL3NldHVwL21haW4ucHkgYi9zZXR1cC9tYWluLnB5CitpbmRleCA5Y2Rj ZTAyLi41MjAxMTM5IDEwMDY0NAorLS0tIGEvc2V0dXAvbWFpbi5weQorKysrIGIvc2V0dXAvbWFp bi5weQorQEAgLTIyNiw2ICsyMjYsNyBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgorICAgICAgICAg YnV0dG9uLmNvbm5lY3QoInRvZ2dsZWQiLCBzZWxmLl9fY2hlY2tidXR0b25fcHJlbG9hZF9lbmdp bmVfbW9kZV90b2dnbGVkX2NiKQorICAgICAgICAgc2VsZi5fX2VuZ2luZXMgPSBzZWxmLl9fYnVz Lmxpc3RfZW5naW5lcygpCisgICAgICAgICBzZWxmLl9fY29tYm9ib3ggPSBzZWxmLl9fYnVpbGRl ci5nZXRfb2JqZWN0KCJjb21ib2JveF9lbmdpbmVzIikKKysgICAgICAgIHNlbGYuX19jb21ib2Jv eC5zZXRfY29uZmlnKHNlbGYuX19jb25maWcpCisgICAgICAgICBzZWxmLl9fY29tYm9ib3guc2V0 X2VuZ2luZXMoc2VsZi5fX2VuZ2luZXMpCisgCisgICAgICAgICBlbmdpbmVzID0gc2VsZi5fX2J1 cy5saXN0X2FjdGl2ZV9lbmdpbmVzKCkKKy0tIAorMS43LjQuMgorCgpkaWZmIC0tZ2l0IGEvaWJ1 cy5zcGVjIGIvaWJ1cy5zcGVjCmluZGV4IGM4MTgxYWMuLmVlOWY1ZGQgMTAwNjQ0Ci0tLSBhL2li dXMuc3BlYworKysgYi9pYnVzLnNwZWMKQEAgLTEyLDggKzEyLDggQEAKICVkZWZpbmUgZ25vbWVf aWNvbl90aGVtZV9sZWdhY3lfdmVyc2lvbiAyLjkxLjYKIAogTmFtZTogICAgICAgaWJ1cwotVmVy c2lvbjogICAgMS4zLjk5LjIwMTEwMjI4Ci1SZWxlYXNlOiAgICA3JXs/ZGlzdH0KK1ZlcnNpb246 ICAgIDEuMy45OS4yMDExMDQwOAorUmVsZWFzZTogICAgMSV7P2Rpc3R9CiBTdW1tYXJ5OiAgICBJ bnRlbGxpZ2VudCBJbnB1dCBCdXMgZm9yIExpbnV4IE9TCiBMaWNlbnNlOiAgICBMR1BMdjIrCiBH cm91cDogICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCkBAIC0yMywxNiArMjMsMTIg QEAgU291cmNlMTogICAgeGlucHV0LWlidXMKICVpZiAlaGF2ZV9nanNmaWxlCiBTb3VyY2UyOiAg ICBodHRwOi8vZnVqaXdhcmEuZmVkb3JhcGVvcGxlLm9yZy9pYnVzL2dub21lLXNoZWxsL2dub21l LXNoZWxsLWlidXMtcGx1Z2lucy0yMDExMDMxNy50YXIuYnoyCiAlZW5kaWYKLVNvdXJjZTM6ICAg IGh0dHA6Ly9mdWppd2FyYS5mZWRvcmFwZW9wbGUub3JnL2lidXMvMjAxMTA0MDQvaWJ1cy1wby0y MDExMDQwNC50YXIuYnoyCi1QYXRjaDA6ICAgICBpYnVzLUhFQUQucGF0Y2gKK1NvdXJjZTM6ICAg IGh0dHBzOi8vd3d3LnRyYW5zaWZleC5uZXQvcHJvamVjdHMvcC9pYnVzL3Jlc291cmNlL21hc3Rl ci9sL2RhL2Rvd25sb2FkL2lidXNfbWFzdGVyX2RhLnBvCisjIFBhdGNoMDogICAgIGlidXMtSEVB RC5wYXRjaAogUGF0Y2gxOiAgICAgaWJ1cy00MzU4ODAtc3Vycm91bmRpbmctdGV4dC5wYXRjaAog UGF0Y2gyOiAgICAgaWJ1cy01NDE0OTIteGtiLnBhdGNoCiBQYXRjaDM6ICAgICBpYnVzLTUzMDcx MS1wcmVsb2FkLXN5cy5wYXRjaAotUGF0Y2g0OiAgICAgaWJ1cy02NTcxNjUtcGFuZWwtbGlicy5w YXRjaAotIyBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciB0aGUgbmV3IGdub21lLXNoZWxsIGlz IGludGVncmF0ZWQuCi1QYXRjaDk5OiAgICBpYnVzLTY3NTUwMy1nbm9tZS1zaGVsbC13b3JrYXJv dW5kLnBhdGNoCi0jIFRoaXMgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHRoZSBnbm9tZS1zaGVsbCBp YnVzIHBhdGNoIGlzIGludGVncmF0ZWQuCi1QYXRjaDEwMDogICBpYnVzLTY4ODAzNC1mZWRvcmEt Zy1zLnBhdGNoCitQYXRjaDQ6ICAgICBpYnVzLXh4LXNldHVwLWZyZXF1ZW50LWxhbmcucGF0Y2gK IAogQnVpbGRSb290OiAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0t cm9vdC0lKCV7X19pZF91fSAtbikKIApAQCAtMTE2LDYgKzExMiw3IEBAIFN1bW1hcnk6ICAgIElC dXMgaW0gbW9kdWxlIGZvciBndGszCiBHcm91cDogICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGli cmFyaWVzCiBSZXF1aXJlczogICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiBSZXF1 aXJlczogICAle25hbWV9LWxpYnMgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK1JlcXVpcmVzOiAg IGltc2V0dGluZ3MtZ25vbWUKIFJlcXVpcmVzKHBvc3QpOiBnbGliMiA+PSAle2dsaWJfdmVyfQog CiAlZGVzY3JpcHRpb24gZ3RrMwpAQCAtMTQ3LDkgKzE0NCw4IEBAIFRoZSBpYnVzLWRldmVsLWRv Y3MgcGFja2FnZSBjb250YWlucyBkZXZlbG9wZXIgZG9jdW1lbnRhdGlvbiBmb3IgaWJ1cwogJWlm ICVoYXZlX2dqc2ZpbGUKIGJ6Y2F0ICVTT1VSQ0UyIHwgdGFyIHhmIC0KICVlbmRpZgotYnpjYXQg JVNPVVJDRTMgfCB0YXIgeGYgLQotJXBhdGNoMCAtcDEKLSVwYXRjaDk5IC1wMSAtYiAuZy1zLXR5 cG8KK2NwICVTT1VSQ0UzIHBvL2RhLnBvCisjICVwYXRjaDAgLXAxCiAjIHN0YXJ0IHN1cnJvdW5k aW5nIHBhdGNoCiAlcGF0Y2gxIC1wMSAtYiAuc3Vycm91bmRpbmcKIGNwIGNsaWVudC9ndGsyL2li dXNpbWNvbnRleHQuYyBjbGllbnQvZ3RrMy9pYnVzaW1jb250ZXh0LmMKQEAgLTE1OCw5ICsxNTQs NyBAQCBjcCBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgY2xpZW50L2d0azMvaWJ1c2ltY29u dGV4dC5jCiAlcGF0Y2gyIC1wMSAtYiAueGtiCiAlZW5kaWYKICVwYXRjaDMgLXAxIC1iIC5wcmVs b2FkLXN5cwotJXBhdGNoNCAtcDEgLWIgLnBhbmVsLWxpYnMKLSMgd29ya2Fyb3VuZCB1bnRpbCB0 aGUgaWJ1cyBmZWF0dXJlIGlzIGludGVncmF0ZWQgaW50byBnbm9tZS1zaGVsbC4KLSVwYXRjaDEw MCAtcDEgLWIgLmZlZG9yYS1nLXMKKyVwYXRjaDQgLXAxIC1iIC5zZXR1cC1mcmVxdWVudC1sYW5n CiAKICVidWlsZAogJWlmICVoYXZlX2xpYnhrYmZpbGUKQEAgLTMzNCwxMyArMzI4LDE3IEBAIGZp CiAle19kYXRhZGlyfS9ndGstZG9jL2h0bWwvKgogCiAlY2hhbmdlbG9nCi0qIFR1ZSBBcHIgMDUg MjAxMSBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjMuOTkuMjAxMTAy MjgtNwotLSBVcGRhdGVkIGlidXMtSEVBRC5wYXRjaAorKiBUdWUgQXByIDE5IDIwMTEgVGFrYW8g RnVqaXdhcmEgPHRmdWppd2FyQHJlZGhhdC5jb20+IC0gMS4zLjk5LjIwMTEwNDA4LTEKKy0gVXBk YXRlZCB0byAxLjMuOTkuMjAxMTA0MDgKICAgRml4ZWQgQnVnIDY4MzQ4NCAtIFRpbWVkIG91dCBT ZXRFbmdpbmUgd2hlbiBzZWxlY3QgYW4gZW5naW5lIGZyb20gcGFuZWwuCiAgIEZpeGVkIEJ1ZyA2 NTcxNjUgLSBJQnVzIGZvciBnbm9tZS1zaGVsbCBmb3IgRmVkb3JhIDE1LgotLSBVcGRhdGVkIGli dXMtNjU3MTY1LXBhbmVsLWxpYnMucGF0Y2gKLS0gQWRkZWQgaWJ1cy02ODgwMzQtZmVkb3JhLWct cy5wYXRjaCBmb3IgRmVkb3JhIHdvcmthcm91bmQuCi0tIEFkZGVkIGlidXMtcG8tMjAxMTA0MDQu dGFyLmJ6MiBmb3IgcG8gZmlsZXMuCistIFVwc3RyZWFtZWQgaWJ1cy02NTcxNjUtcGFuZWwtbGli cy5wYXRjaAorLSBSZW1vdmVkIGlidXMtNjc1NTAzLWdub21lLXNoZWxsLXdvcmthcm91bmQucGF0 Y2gKKy0gQWRkZWQgaWJ1cy14eC1zZXR1cC1mcmVxdWVudC1sYW5nLnBhdGNoCistIFVwZGF0ZWQg aWJ1cy01NDE0OTIteGtiLnBhdGNoCisgIEZpeGVkIEJ1ZyA2OTY0ODEgLSBubyB0aGUgdmFyaWFu dCBtYXBzIHdpdGhvdXQgbGFuZ3VhZ2UgY29kZXMKKy0gQWRkZWQgZGVwZW5kZW5jeSBvZiBpbXNl dHRpbmdzLWdub21lLgorICBGaXhlZCBCdWcgNjk2NTEwIC0gbmVlZCBhIGRlcGVuZGVuY3kgaW4g aWJ1cy1ndGszIGZvciBpbXNldHRpbmdzLWdub21lCiAKICogVGh1IE1hciAxMCAyMDExIFRha2Fv IEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPiAtIDEuMy45OS4yMDExMDIyOC0xCiAtIFVw ZGF0ZWQgdG8gMS4zLjk5LjIwMTEwMjI4CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMK aW5kZXggY2ViODczMy4uYWZlNGQ1NyAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2Vz CkBAIC0xLDMgKzEsMyBAQAotMjIzY2U3ODdjNTM1N2Y4MzNiYTM0Y2RhZjUwMmVmNzYgIGlidXMt MS4zLjk5LjIwMTEwMjI4LnRhci5negorNmNlMzRkYThlOTI4M2Q2ZGYwNzZiZjZhZjliYmY4MTUg IGlidXMtMS4zLjk5LjIwMTEwNDA4LnRhci5negogMmQ2OTkxY2E3ZDMxNDdhYTQ4NmI2Mjk3ODcy YmVkNWYgIGdub21lLXNoZWxsLWlidXMtcGx1Z2lucy0yMDExMDMxNy50YXIuYnoyCi02ZDEwMjgz NWUyY2QyZWZlNDU5ZmIzYzA4ODIzZTY2ZCAgaWJ1cy1wby0yMDExMDQwNC50YXIuYnoyCis2OThj OTBlZGYwZjAzNzQ4OGUxYWE5Njk4MDRlODkxZiAgaWJ1c19tYXN0ZXJfZGEucG8K