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: Deleted deprecated g_mem_* APIs Date: Sun, 31 May 2026 02:06:56 GMT Message-ID: <178019321601.1.14644215985804941670.rpms-ibus-95fe5b48a2b0@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 95fe5b48a2b0a9c66b202289be267fd856b2623f QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiA5NWZlNWI0OGEyYjBhOWM2NmIyMDIyODliZTI2N2ZkODU2YjI2 MjNmCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDE4LTA3LTI0VDE4OjEyOjM5KzA5OjAwClN0YXRzICA6ICsxMTAxLy05ODEgaW4gMyBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvaWJ1cy9jLzk1 ZmU1YjQ4YTJiMGE5YzY2YjIwMjI4OWJlMjY3ZmQ4NTZiMjYyM2Y/YnJhbmNoPWF1dG90b29sCgpM b2c6CkRlbGV0ZWQgZGVwcmVjYXRlZCBnX21lbV8qIEFQSXMKCi0tLQpkaWZmIC0tZ2l0IGEvaWJ1 cy0xNjAyNTQ5LWNvdnNjYW4ucGF0Y2ggYi9pYnVzLTE2MDI1NDktY292c2Nhbi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODJlOTg4MC4uMDAwMDAwMAotLS0gYS9pYnVzLTE2 MDI1NDktY292c2Nhbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk3OSArMCwwIEBACi1Gcm9t IGJkZWRhYTRlZWMzMTZmMWQ0NTI3ZDcwYWM4ZDhiMTRlMTYzMjI2ZGYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1E YXRlOiBNb24sIDIzIEp1bCAyMDE4IDE4OjUxOjU1ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJI RUwgY29kZSByZXZpZXdzCi0KLS0tLQotIGNsaWVudC94MTEvbWFpbi5jICAgICAgICAgICAgIHwg IDQgKystLQotIHNldHVwL2VuZ2luZXRyZWV2aWV3LnB5ICAgICAgIHwgMTAgKystLS0tLS0tLQot IHNldHVwL2lidXMtc2V0dXAuaW4gICAgICAgICAgIHwgIDUgKystLS0KLSBzcmMvZW1vamktcGFy c2VyLmMgICAgICAgICAgICB8ICA4ICsrKysrLS0tCi0gc3JjL2lidXNidXMuYyAgICAgICAgICAg ICAgICAgfCAgOSArKysrKystLS0KLSBzcmMvaWJ1c2NvbXBvc2V0YWJsZS5jICAgICAgICB8ICA0 ICsrLS0KLSBzcmMvaWJ1c2VuZ2luZXNpbXBsZS5jICAgICAgICB8IDIyICsrKysrKysrKysrKysr KysrLS0tLS0KLSBzcmMvaWJ1c2hvdGtleS5jICAgICAgICAgICAgICB8ICA1ICsrKy0tCi0gc3Jj L2lidXNrZXltYXAuYyAgICAgICAgICAgICAgfCAxMCArKysrKystLS0tCi0gc3JjL2lidXNrZXlu YW1lcy5jICAgICAgICAgICAgfCAgMyArLS0KLSBzcmMvaWJ1c3JlZ2lzdHJ5LmMgICAgICAgICAg ICB8ICA0ICsrLS0KLSBzcmMvaWJ1c3NlcnZpY2UuYyAgICAgICAgICAgICB8IDEzICsrKysrKysr Ky0tLS0KLSBzcmMvaWJ1c3htbC5jICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKy0tLQotIHNy Yy91bmljb2RlLXBhcnNlci5jICAgICAgICAgIHwgIDMgKystCi0gdXRpbC9JTWRraXQvRnJhbWVN Z3IuYyAgICAgICAgfCAgNyArKysrKysrCi0gdXRpbC9JTWRraXQvSU1Db25uLmMgICAgICAgICAg fCAgNiArKysrLS0KLSB1dGlsL0lNZGtpdC9pMThuQ2xiay5jICAgICAgICB8IDEwICsrKysrKysr KysKLSB1dGlsL0lNZGtpdC9pMThuSWMuYyAgICAgICAgICB8IDExICsrKysrKysrKy0tCi0gdXRp bC9JTWRraXQvaTE4bk1ldGhvZC5jICAgICAgfCAgNCArKysrCi0gdXRpbC9JTWRraXQvaTE4bk9m ZnNldENhY2hlLmMgfCAyMSArKysrKysrKysrKysrKysrKy0tLS0KLSB1dGlsL0lNZGtpdC9pMThu UHRIZHIuYyAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KLSB1dGlsL0lN ZGtpdC9pMThuVXRpbC5jICAgICAgICB8IDEyICsrKysrKysrKy0tLQotIHV0aWwvSU1ka2l0L2kx OG5YLmMgICAgICAgICAgIHwgMTAgKysrKysrKystLQotIDIzIGZpbGVzIGNoYW5nZWQsIDE1NiBp bnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NsaWVudC94MTEv bWFpbi5jIGIvY2xpZW50L3gxMS9tYWluLmMKLWluZGV4IDE1OWY0MzAzLi4zYmVhOTRiNyAxMDA2 NDQKLS0tLSBhL2NsaWVudC94MTEvbWFpbi5jCi0rKysgYi9jbGllbnQveDExL21haW4uYwotQEAg LTIsNyArMiw3IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBpYnVzCi0gICogQ29w eXJpZ2h0IChDKSAyMDA3LTIwMTUgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+ Ci0tICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggVGFrYW8gRnVqaXdh cmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0gICogQ29weXJpZ2h0IChDKSAyMDA3LTIw MTUgUmVkIEhhdCwgSW5jLgotICAqCi0gICogbWFpbi5jOgotQEAgLTE5Niw3ICsxOTYsNyBAQCBf eGltX3ByZWVkaXRfY2FsbGJhY2tfZHJhdyAoWElNUyB4aW1zLCBYMTFJQyAqeDExaWMsIGNvbnN0 IGdjaGFyICpwcmVlZGl0X3N0cmluZwotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIGZvciAo aSA9IDA7IGkgPCBsZW47IGkrKykgewotKyAgICBmb3IgKGkgPSAwOyBmZWVkYmFjayAmJiBpIDwg bGVuOyBpKyspIHsKLSAgICAgICAgIGZlZWRiYWNrW2ldID0gMDsKLSAgICAgfQotIAotZGlmZiAt LWdpdCBhL3NldHVwL2VuZ2luZXRyZWV2aWV3LnB5IGIvc2V0dXAvZW5naW5ldHJlZXZpZXcucHkK LWluZGV4IDRkZTRhNTE2Li5hZWE4NDU5MyAxMDA2NDQKLS0tLSBhL3NldHVwL2VuZ2luZXRyZWV2 aWV3LnB5Ci0rKysgYi9zZXR1cC9lbmdpbmV0cmVldmlldy5weQotQEAgLTMsNyArMyw4IEBACi0g IyBpYnVzIC0gVGhlIElucHV0IEJ1cwotICMKLSAjIENvcHlyaWdodCAoYykgMjAwNy0yMDE1IFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSMgQ29weXJpZ2h0IChjKSAyMDA3 LTIwMTUgUmVkIEhhdCwgSW5jLgotKyMgQ29weXJpZ2h0IChjKSAyMDE0LTIwMTggVGFrYW8gRnVq aXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIwMDct MjAxOCBSZWQgSGF0LCBJbmMuCi0gIwotICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTkxLDcgKzkyLDYgQEAg Y2xhc3MgRW5naW5lVHJlZVZpZXcoR3RrLlRyZWVWaWV3KToKLSAgICAgICAgIHJlbmRlcmVyLnNl dF9wcm9wZXJ0eSgidGV4dC1jb2x1bW4iLCAwKQotICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3Bl cnR5KCJoYXMtZW50cnkiLCBGYWxzZSkKLSAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgi ZWRpdGFibGUiLCBUcnVlKQotLSAgICAgICAgcmVuZGVyZXIuY29ubmVjdCgiY2hhbmdlZCIsIHNl bGYuX19lbmdpbmVfbGF5b3V0X2NoYW5nZWRfY2IpCi0gCi0gICAgICAgICBjb2x1bW4gPSBHdGsu VHJlZVZpZXdDb2x1bW4oXygiS2JkIikpCi0gICAgICAgICBjb2x1bW4uc2V0X2V4cGFuZChGYWxz ZSkKLUBAIC0xNjcsMTIgKzE2Nyw2IEBAIGNsYXNzIEVuZ2luZVRyZWVWaWV3KEd0ay5UcmVlVmll dyk6Ci0gICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInRleHQiLCBsYXlvdXQpCi0gICAg ICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoIndlaWdodCIsIFBhbmdvLldlaWdodC5OT1JNQUwp Ci0gCi0tICAgIGRlZiBfX2VuZ2luZV9sYXlvdXRfY2hhbmdlZF9jYihzZWxmLCBjb21ibywgcGF0 aCwgaXQpOgotLSAgICAgICAgcmV0dXJuCi0tICAgICAgICBpID0gc2VsZi5fX21vZGVsLmdldF9p dGVyKHBhdGgpCi0tICAgICAgICBsYXlvdXQgPSBjb21iby5nZXRfcHJvcGVydHkoIm1vZGVsIiku Z2V0X3ZhbHVlKGl0LCAwKQotLSAgICAgICAgc2VsZi5fX21vZGVsLnNldF92YWx1ZShpLCAxLCBs YXlvdXQpCi0tCi0gICAgIGRlZiBkb19nZXRfcHJvcGVydHkoc2VsZiwgcHJvcCk6Ci0gICAgICAg ICBpZiBwcm9wLm5hbWUgPT0gImFjdGl2ZS1lbmdpbmUiOgotICAgICAgICAgICAgIGl0ID0gc2Vs Zi5nZXRfc2VsZWN0ZWRfaXRlcigpCi1kaWZmIC0tZ2l0IGEvc2V0dXAvaWJ1cy1zZXR1cC5pbiBi L3NldHVwL2lidXMtc2V0dXAuaW4KLWluZGV4IGUwZWQ5ZmY1Li5iYjVjODVjZiAxMDA2NDQKLS0t LSBhL3NldHVwL2lidXMtc2V0dXAuaW4KLSsrKyBiL3NldHVwL2lidXMtc2V0dXAuaW4KLUBAIC0z LDcgKzMsOCBAQAotICMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAjCi0gIyBDb3B5cmlnaHQgKGMp IDIwMDctMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0jIENvcHly aWdodCAoYykgMjAwNy0yMDEwIFJlZCBIYXQsIEluYy4KLSsjIENvcHlyaWdodCAoYykgMjAxOCBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsjIENvcHlyaWdodCAo YykgMjAwNy0yMDE4IFJlZCBIYXQsIEluYy4KLSAjCi0gIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMjEsOCAr MjIsNiBAQAotICMgVVNBCi0gCi0gcHJlZml4PUBwcmVmaXhACi0tZXhlY19wcmVmaXg9QGV4ZWNf cHJlZml4QAotLWRhdGFyb290ZGlyPUBkYXRhcm9vdGRpckAKLSBsaWJleGVjZGlyPUBsaWJleGVj ZGlyQAotIGV4cG9ydCBJQlVTX1BSRUZJWD1AcHJlZml4QAotIGV4cG9ydCBJQlVTX0RBVEFST09U RElSPUBkYXRhcm9vdGRpckAKLWRpZmYgLS1naXQgYS9zcmMvZW1vamktcGFyc2VyLmMgYi9zcmMv ZW1vamktcGFyc2VyLmMKLWluZGV4IDBmN2M4Y2ZiLi5iOGY0ZGNmMSAxMDA2NDQKLS0tLSBhL3Ny Yy9lbW9qaS1wYXJzZXIuYwotKysrIGIvc3JjL2Vtb2ppLXBhcnNlci5jCi1AQCAtNDY2LDcgKzQ2 Niw4IEBAIHVuaWNvZGVfYW5ub3RhdGlvbnNfcGFyc2VfeG1sX2ZpbGUgKGNvbnN0IGdjaGFyICAq ZmlsZW5hbWUsCi0gICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChsaXN0ICE9IE5VTEwsIEZBTFNF KTsKLSAKLSAgICAgaWYgKCFnX2ZpbGVfZ2V0X2NvbnRlbnRzIChmaWxlbmFtZSwgJmNvbnRlbnQs ICZsZW5ndGgsICZlcnJvcikpIHsKLS0gICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBsb2Fk ICVzOiAlcyIsIGZpbGVuYW1lLCBlcnJvci0+bWVzc2FnZSk7Ci0rICAgICAgICBnX3dhcm5pbmcg KCJGYWlsZWQgdG8gbG9hZCAlczogJXMiLCBmaWxlbmFtZSwKLSsgICAgICAgICAgICAgICAgICAg ZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6ICIiKTsKLSAgICAgICAgIGdvdG8gZmFpbGVkX3RvX3Bh cnNlX3VuaWNvZGVfYW5ub3RhdGlvbnM7Ci0gICAgIH0KLSAKLUBAIC02MTEsNyArNjEyLDcgQEAg dW5pY29kZV9lbW9qaV90ZXN0X3BhcnNlX2xpbmUgKGNvbnN0IGdjaGFyICpsaW5lLAotICAgICAg ICAgICAgIGludCBpOwotICAgICAgICAgICAgIGdjaGFyICphbXA7Ci0gICAgICAgICAgICAgc2Vn bWVudHMgPSBnX3N0cnNwbGl0KGRhdGEtPnN1YmNhdGVnb3J5LCAiLSIsIC0xKTsKLS0gICAgICAg ICAgICBmb3IgKGkgPSAwOyBzZWdtZW50c1tpXTsgaSsrKSB7Ci0rICAgICAgICAgICAgZm9yIChp ID0gMDsgc2VnbWVudHMgJiYgc2VnbWVudHNbaV07IGkrKykgewotICAgICAgICAgICAgICAgICBp ZiAoKGFtcCA9IHN0cmNociAoc2VnbWVudHNbaV0sICcmJykpICE9IE5VTEwpIHsKLSAgICAgICAg ICAgICAgICAgICAgIGlmIChhbXAgLSBzZWdtZW50c1tpXSA8PSAxKSB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgZ193YXJuaW5nICgiV3JvbmcgYW1wZXJzYW5kIik7Ci1AQCAtNjY1LDcgKzY2 Niw4IEBAIHVuaWNvZGVfZW1vamlfdGVzdF9wYXJzZV9maWxlIChjb25zdCBnY2hhciAqZmlsZW5h bWUsCi0gICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChsaXN0ICE9IE5VTEwsIEZBTFNFKTsKLSAK LSAgICAgaWYgKCFnX2ZpbGVfZ2V0X2NvbnRlbnRzIChmaWxlbmFtZSwgJmNvbnRlbnQsICZsZW5n dGgsICZlcnJvcikpIHsKLS0gICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBsb2FkICVzOiAl cyIsIGZpbGVuYW1lLCBlcnJvci0+bWVzc2FnZSk7Ci0rICAgICAgICBnX3dhcm5pbmcgKCJGYWls ZWQgdG8gbG9hZCAlczogJXMiLAotKyAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgZXJyb3Ig PyBlcnJvci0+bWVzc2FnZSA6ICIiKTsKLSAgICAgICAgIGdvdG8gZmFpbGVkX3RvX3BhcnNlX3Vu aWNvZGVfZW1vamlfdGVzdDsKLSAgICAgfQotICAgICBoZWFkID0gZW5kID0gY29udGVudDsKLWRp ZmYgLS1naXQgYS9zcmMvaWJ1c2J1cy5jIGIvc3JjL2lidXNidXMuYwotaW5kZXggOTg4MjBlOGEu LjMwYzJlMzIxIDEwMDY0NAotLS0tIGEvc3JjL2lidXNidXMuYwotKysrIGIvc3JjL2lidXNidXMu YwotQEAgLTIsNyArMiw3IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBpYnVzIC0g VGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IFBlbmcgSHVhbmcgPHNo YXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykg MjAxNS0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotICAq IENvcHlyaWdodCAoQykgMjAwOC0yMDE2IFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLUBA IC0yMiw2ICsyMiw3IEBACi0gICovCi0gCi0gI2luY2x1ZGUgImlidXNidXMuaCIKLSsjaW5jbHVk ZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotQEAgLTU2NSw3ICs1NjYsOSBAQCBpYnVzX2J1c19p bml0IChJQnVzQnVzICpidXMpCi0gICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfQotICAg ICAgICAgaWYgKGJ1Zi5zdF9tb2RlICE9IChTX0lGRElSIHwgU19JUldYVSkpIHsKLS0gICAgICAg ICAgICBnX2NobW9kIChwYXRoLCAwNzAwKTsKLSsgICAgICAgICAgICBlcnJubyA9IDA7Ci0rICAg ICAgICAgICAgaWYgKGdfY2htb2QgKHBhdGgsIDA3MDApKQotKyAgICAgICAgICAgICAgICBnX3dh cm5pbmcgKCJjaG1vZCBmYWlsZWQ6ICVzIiwgZXJybm8gPyBnX3N0cmVycm9yIChlcnJubykgOiAi Iik7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLUBAIC02NzMsNyArNjc2LDcgQEAgaWJ1c19idXNf Y29uc3RydWN0b3IgKEdUeXBlICAgICAgICAgICAgICAgICAgdHlwZSwKLSAgICAgICAgICAgICBp YnVzX2J1c19jb25uZWN0IChfYnVzKTsKLSAgICAgfQotICAgICBlbHNlIHsKLS0gICAgICAgIG9i amVjdCA9IGdfb2JqZWN0X3JlZiAoX2J1cyk7Ci0rICAgICAgICBvYmplY3QgPSBnX29iamVjdF9y ZWYgKEdfT0JKRUNUIChfYnVzKSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIG9iamVjdDsKLWRp ZmYgLS1naXQgYS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jIGIvc3JjL2lidXNjb21wb3NldGFibGUu YwotaW5kZXggZDQ3M2Y1ODEuLmI4NDNlN2UxIDEwMDY0NAotLS0tIGEvc3JjL2lidXNjb21wb3Nl dGFibGUuYwotKysrIGIvc3JjL2lidXNjb21wb3NldGFibGUuYwotQEAgLTEsNyArMSw3IEBACi0g LyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7 IC0qLSAqLwotIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDEz LTIwMTQgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0 IChDKSAyMDEzLTIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ Ci0rICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTUzMiw3ICs1MzIsNyBA QCBpYnVzX2NvbXBvc2VfdGFibGVfc2VyaWFsaXplIChJQnVzQ29tcG9zZVRhYmxlICpjb21wb3Nl X3RhYmxlKQotIAotICAgICB2YXJpYW50X2RhdGEgPSBnX3ZhcmlhbnRfbmV3X2ZpeGVkX2FycmF5 IChHX1ZBUklBTlRfVFlQRV9VSU5UMTYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbXBvc2VfdGFibGUtPmRhdGEsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X3N0cmlkZSAqIG5fc2VxcywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdzaXplKWluZGV4X3N0 cmlkZSAqIG5fc2VxcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mIChndWludDE2KSk7Ci0gICAgIGlmICh2YXJpYW50X2RhdGEgPT0gTlVMTCkg ewotICAgICAgICAgZ193YXJuaW5nICgiQ291bGQgbm90IGNoYW5nZSBjb21wb3NlIGRhdGEgdG8g R1ZhcmlhbnQuIik7Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYyBiL3NyYy9p YnVzZW5naW5lc2ltcGxlLmMKLWluZGV4IDY4ZDZmYjFlLi5hYWU2YjhkZiAxMDA2NDQKLS0tLSBh L3NyYy9pYnVzZW5naW5lc2ltcGxlLmMKLSsrKyBiL3NyYy9pYnVzZW5naW5lc2ltcGxlLmMKLUBA IC0yLDcgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJ bnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFu Z0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgVGFrYW8gRnVqaXdhcmEg PHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTgg VGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0gICogQ29weXJpZ2h0 IChDKSAyMDE0LTIwMTcgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotQEAgLTgxNCw5ICs4 MTQsMjEgQEAgY2hlY2tfbm9ybWFsaXplX25mYyAoZ3VuaWNoYXIqIGNvbWJpbmF0aW9uX2J1ZmZl ciwgZ2ludCBuX2NvbXBvc2UpCi0gICAgICAgICBnX2ZyZWUgKG5mY190ZW1wKTsKLSAKLSAgICAg ICAgIGlmIChuX2NvbXBvc2UgPiAyKSB7Ci0tICAgICAgICAgICAgdGVtcF9zd2FwID0gY29tYmlu YXRpb25fYnVmZmVyX3RlbXBbaSAlIChuX2NvbXBvc2UgLSAxKSArIDFdOwotLSAgICAgICAgICAg IGNvbWJpbmF0aW9uX2J1ZmZlcl90ZW1wW2kgJSAobl9jb21wb3NlIC0gMSkgKyAxXSA9IGNvbWJp bmF0aW9uX2J1ZmZlcl90ZW1wWyhpKzEpICUgKG5fY29tcG9zZSAtIDEpICsgMV07Ci0tICAgICAg ICAgICAgY29tYmluYXRpb25fYnVmZmVyX3RlbXBbKGkrMSkgJSAobl9jb21wb3NlIC0gMSkgKyAx XSA9IHRlbXBfc3dhcDsKLSsgICAgICAgICAgICBnaW50IGogPSBpICUgKG5fY29tcG9zZSAtIDEp ICsgMTsKLSsgICAgICAgICAgICBnaW50IGsgPSAoaSsxKSAlIChuX2NvbXBvc2UgLSAxKSArIDE7 Ci0rICAgICAgICAgICAgaWYgKGogPj0gSUJVU19NQVhfQ09NUE9TRV9MRU4pIHsKLSsgICAgICAg ICAgICAgICAgZ193YXJuaW5nICgiaiA+PSBJQlVTX01BWF9DT01QT1NFX0xFTiBmb3IgIiBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbWJpbmF0aW9uX2J1ZmZlcl90ZW1wIik7Ci0r ICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBpZiAo ayA+PSBJQlVTX01BWF9DT01QT1NFX0xFTikgewotKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcg KCJrID49IElCVVNfTUFYX0NPTVBPU0VfTEVOIGZvciAiIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAiY29tYmluYXRpb25fYnVmZmVyX3RlbXAiKTsKLSsgICAgICAgICAgICAgICAgYnJl YWs7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIHRlbXBfc3dhcCA9IGNvbWJpbmF0aW9u X2J1ZmZlcl90ZW1wW2pdOwotKyAgICAgICAgICAgIGNvbWJpbmF0aW9uX2J1ZmZlcl90ZW1wW2pd ID0gY29tYmluYXRpb25fYnVmZmVyX3RlbXBba107Ci0rICAgICAgICAgICAgY29tYmluYXRpb25f YnVmZmVyX3RlbXBba10gPSB0ZW1wX3N3YXA7Ci0gICAgICAgICB9Ci0gICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgYnJlYWs7Ci1AQCAtMTA2Nyw3ICsxMDc5LDcgQEAgaWJ1c19lbmdpbmVfc2lt cGxlX3Byb2Nlc3Nfa2V5X2V2ZW50IChJQnVzRW5naW5lICplbmdpbmUsCi0gICAgIGdib29sZWFu IGNvbXBvc2VfZmluaXNoOwotICAgICBndW5pY2hhciBvdXRwdXRfY2hhcjsKLSAKLS0gICAgd2hp bGUgKHByaXYtPmNvbXBvc2VfYnVmZmVyW25fY29tcG9zZV0gIT0gMCAmJiBuX2NvbXBvc2UgPCBF TU9KSV9TT1VSQ0VfTEVOKQotKyAgICB3aGlsZSAobl9jb21wb3NlIDwgRU1PSklfU09VUkNFX0xF TiAmJiBwcml2LT5jb21wb3NlX2J1ZmZlcltuX2NvbXBvc2VdICE9IDApCi0gICAgICAgICBuX2Nv bXBvc2UrKzsKLSAgICAgaWYgKG5fY29tcG9zZSA+PSBFTU9KSV9TT1VSQ0VfTEVOKSB7Ci0gICAg ICAgICBnX3dhcm5pbmcgKCJjb3Btb3NlIHRhYmxlIGJ1ZmZlciBpcyBmdWxsLiIpOwotZGlmZiAt LWdpdCBhL3NyYy9pYnVzaG90a2V5LmMgYi9zcmMvaWJ1c2hvdGtleS5jCi1pbmRleCAwY2RmYTc4 Yi4uMDBkNTAyZmMgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2hvdGtleS5jCi0rKysgYi9zcmMvaWJ1 c2hvdGtleS5jCi1AQCAtMiw3ICsyLDggQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwotIC8q IElCdXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUGVuZyBI dWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4LTIw MTAgUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBS ZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTQ1Myw3ICs0NTQsNyBAQCBp YnVzX2hvdGtleV9wcm9maWxlX3JlbW92ZV9ob3RrZXkgKElCdXNIb3RrZXlQcm9maWxlICpwcm9m aWxlLAotICAgICAgICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0tICAgIGdfYXNzZXJ0IChwMi0+ ZXZlbnQgPT0gZXZlbnQpOwotKyAgICBnX2Fzc2VydCAocDIgJiYgcDItPmV2ZW50ID09IGV2ZW50 KTsKLSAKLSAgICAgcDItPmhvdGtleXMgPSBnX2xpc3RfcmVtb3ZlIChwMi0+aG90a2V5cywgcDEp OwotICAgICBpZiAocDItPmhvdGtleXMgPT0gTlVMTCkgewotZGlmZiAtLWdpdCBhL3NyYy9pYnVz a2V5bWFwLmMgYi9zcmMvaWJ1c2tleW1hcC5jCi1pbmRleCBkNzQyOGM1ZC4uMjdhNTY3NTQgMTAw NjQ0Ci0tLS0gYS9zcmMvaWJ1c2tleW1hcC5jCi0rKysgYi9zcmMvaWJ1c2tleW1hcC5jCi1AQCAt Miw3ICsyLDggQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwotIC8qIElCdXMgLSBUaGUgSW5w dXQgQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5o dWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5j LgotKyAqIENvcHlyaWdodCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCi0g ICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTcyLDcgKzczLDcgQEAgc3RhdGljIGdib29sZWFuCi0g aWJ1c19rZXltYXBfcGFyc2VfbGluZSAoZ2NoYXIgICpzdHIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgS0VZTUFQICBrZXltYXApCi0gewotLSAgICBnY2hhciAqcDEsICpwMjsKLSsgICAgZ2No YXIgKnAxLCAqcDIsIGNoOwotICAgICBnaW50IGk7Ci0gICAgIGd1aW50IGtleWNvZGU7Ci0gICAg IGd1aW50IGtleXN5bTsKLUBAIC0xMzksMTEgKzE0MCwxMiBAQCBpYnVzX2tleW1hcF9wYXJzZV9s aW5lIChnY2hhciAgKnN0ciwKLSAgICAgaWYgKGtleXN5bSA9PSBJQlVTX0tFWV9Wb2lkU3ltYm9s KQotICAgICAgICAgcmV0dXJuIEZBTFNFOwotIAotKyAgICAvKiBEbyBub3QgYXNzaWduICpwMSB0 byBnX2FzY2lpX2lzYWxwaGEoKSBkaXJlY3RseSBmb3IgdGhlIHN5bnRheCBjaGVjayAqLwotICAg ICBpZiAoaSA9PSAwICYmCi0gICAgICAgICBzdHJuY21wIChwMiwgImFkZHVwcGVyIiwgc2l6ZW9m ICgiYWRkdXBwZXIiKSAtIDEpID09IDAgJiYKLS0gICAgICAgIGdfYXNjaWlfaXNhbHBoYSAoKnAx KSkgewotKyAgICAgICAgKGNoID0gKnAxKSAmJiBnX2FzY2lpX2lzYWxwaGEgKGNoKSkgewotICAg ICAgICAgZ2NoYXIgYnVmW10gPSAiYSI7Ci0tICAgICAgICBidWZbMF0gPSBnX2FzY2lpX3RvdXBw ZXIoKnAxKTsKLSsgICAgICAgIGJ1ZlswXSA9IGdfYXNjaWlfdG91cHBlcihjaCk7Ci0gICAgICAg ICBrZXltYXBba2V5Y29kZV1bMF0gPSBrZXltYXBba2V5Y29kZV1bM10gPSBrZXlzeW07Ci0gICAg ICAgICBrZXltYXBba2V5Y29kZV1bMV0gPSBrZXltYXBba2V5Y29kZV1bMl0gPSBpYnVzX2tleXZh bF9mcm9tX25hbWUgKGJ1Zik7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXNrZXluYW1lcy5jIGIv c3JjL2lidXNrZXluYW1lcy5jCi1pbmRleCBjMzY2NTEyNy4uMDg1MDU1OTggMTAwNjQ0Ci0tLS0g YS9zcmMvaWJ1c2tleW5hbWVzLmMKLSsrKyBiL3NyYy9pYnVza2V5bmFtZXMuYwotQEAgLTE5Miw4 ICsxOTIsNyBAQCBpYnVzX2tleV9ldmVudF9mcm9tX3N0cmluZyAoY29uc3QgZ2NoYXIgKnN0cmlu ZywKLSAgICAgaWYgKCprZXl2YWwgIT0gSUJVU19LRVlfVm9pZFN5bWJvbCkKLSAgICAgICAgIHJl dHZhbCA9IFRSVUU7Ci0gX291dDoKLS0gICAgaWYgKHRva2VucykKLS0gICAgICAgIGdfc3RyZnJl ZXYgKHRva2Vucyk7Ci0rICAgIGdfc3RyZnJlZXYgKHRva2Vucyk7Ci0gICAgIHJldHVybiByZXR2 YWw7Ci0gfQotIAotZGlmZiAtLWdpdCBhL3NyYy9pYnVzcmVnaXN0cnkuYyBiL3NyYy9pYnVzcmVn aXN0cnkuYwotaW5kZXggZGZkYTJhZjMuLmIwNDgzOTk4IDEwMDY0NAotLS0tIGEvc3JjL2lidXNy ZWdpc3RyeS5jCi0rKysgYi9zcmMvaWJ1c3JlZ2lzdHJ5LmMKLUBAIC0yLDcgKzIsNyBAQAotIC8q IHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHly aWdodCAoQykgMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBD b3B5cmlnaHQgKEMpIDIwMTUgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+Ci0gICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZCBIYXQsIEluYy4K LSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKLUBAIC00NzIsNyArNDcyLDcgQEAgaWJ1c19yZWdpc3RyeV9zYXZlX2Nh Y2hlX2ZpbGUgKElCdXNSZWdpc3RyeSAqcmVnaXN0cnksCi0gICAgIH0KLSAKLSAgICAgaWYgKGdf c3RyX2hhc19wcmVmaXggKGZpbGVuYW1lLCBnX2dldF91c2VyX2NhY2hlX2RpciAoKSkpIHsKLS0g ICAgICAgIGdfY2htb2QgKGZpbGVuYW1lLCAwNjQ0KTsKLSsgICAgICAgIGdfd2Fybl9pZl9mYWls ICghZ19jaG1vZCAoZmlsZW5hbWUsIDA2NDQpKTsKLSAgICAgfQotIAotICAgICByZXR1cm4gVFJV RTsKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c3NlcnZpY2UuYyBiL3NyYy9pYnVzc2VydmljZS5jCi1p bmRleCAyMTk5ZDYxZC4uODAyMzUyN2IgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c3NlcnZpY2UuYwot KysrIGIvc3JjL2lidXNzZXJ2aWNlLmMKLUBAIC0yLDcgKzIsOCBAQAotIC8qIHZpbTpzZXQgZXQg c3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIw MDgtMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmln aHQgKEMpIDIwMDgtMjAxNSBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDE1LTIw MTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTggUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBA IC01MDAsMTIgKzUwMSwxNCBAQCBpYnVzX3NlcnZpY2VfcmVnaXN0ZXIgKElCdXNTZXJ2aWNlICAg ICAqc2VydmljZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzQ29ubmVjdGlvbiAqY29u bmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICoqZXJyb3Ip Ci0gewotKyAgICBHQXJyYXkgKmFycmF5ID0gTlVMTDsKLSsgICAgR0FycmF5ICppbnRlcmZhY2Vz OwotKyAgICBHREJ1c0ludGVyZmFjZUluZm8gKipwOwotKwotICAgICBnX3JldHVybl92YWxfaWZf ZmFpbCAoSUJVU19JU19TRVJWSUNFIChzZXJ2aWNlKSwgRkFMU0UpOwotICAgICBnX3JldHVybl92 YWxfaWZfZmFpbCAoR19JU19EQlVTX0NPTk5FQ1RJT04gKGNvbm5lY3Rpb24pLCBGQUxTRSk7Ci0g ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChlcnJvciA9PSBOVUxMIHx8ICplcnJvciA9PSBOVUxM LCBGQUxTRSk7Ci0gCi0tICAgIEdBcnJheSAqYXJyYXkgPSBOVUxMOwotLQotICAgICBpZiAoZ19o YXNoX3RhYmxlX2xvb2t1cCAoc2VydmljZS0+cHJpdi0+dGFibGUsIGNvbm5lY3Rpb24pKSB7Ci0g ICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAqZXJyb3IgPSBnX2Vycm9yX25ldyAo R19EQlVTX0VSUk9SLCBHX0RCVVNfRVJST1JfT0JKRUNUX1BBVEhfSU5fVVNFLAotQEAgLTUxNSw3 ICs1MTgsOSBAQCBpYnVzX3NlcnZpY2VfcmVnaXN0ZXIgKElCdXNTZXJ2aWNlICAgICAqc2Vydmlj ZSwKLSAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OwotICAgICB9Ci0gCi0tICAgIEdEQnVzSW50ZXJm YWNlSW5mbyAqKnAgPSAoR0RCdXNJbnRlcmZhY2VJbmZvICoqKUlCVVNfU0VSVklDRV9HRVRfQ0xB U1MgKHNlcnZpY2UpLT5pbnRlcmZhY2VzLT5kYXRhOwotKyAgICBpbnRlcmZhY2VzID0gSUJVU19T RVJWSUNFX0dFVF9DTEFTUyAoc2VydmljZSktPmludGVyZmFjZXM7Ci0rICAgIGdfYXNzZXJ0IChp bnRlcmZhY2VzKTsKLSsgICAgcCA9IChHREJ1c0ludGVyZmFjZUluZm8gKiopaW50ZXJmYWNlcy0+ ZGF0YTsKLSAgICAgaWYgKCpwID09IE5VTEwpIHsKLSAgICAgICAgIGlmIChlcnJvcikgewotICAg ICAgICAgICAgICplcnJvciA9IGdfZXJyb3JfbmV3IChHX0RCVVNfRVJST1IsIEdfREJVU19FUlJP Ul9GQUlMRUQsCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXN4bWwuYyBiL3NyYy9pYnVzeG1sLmMKLWlu ZGV4IDVjYWNjNWFmLi4yNjZhODIwNyAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzeG1sLmMKLSsrKyBi L3NyYy9pYnVzeG1sLmMKLUBAIC0yLDcgKzIsOCBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICov Ci0gLyogYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAw OC0yMDE1IFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTggVGFrYW8gRnVqaXdh cmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIw MTggUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yNDAsOCArMjQxLDEw IEBAIGlidXNfeG1sX3BhcnNlX2ZpbGUgKGNvbnN0IGdjaGFyICpmaWxlbmFtZSkKLSAgICAgICAg IHJldHVybiBub2RlOwotICAgICB9IHdoaWxlICgwKTsKLSAKLS0gICAgZ193YXJuaW5nICgiUGFy c2UgJXMgZmFpbGVkOiAlcyIsIGZpbGVuYW1lLCBlcnJvci0+bWVzc2FnZSk7Ci0tICAgIGdfZXJy b3JfZnJlZSAoZXJyb3IpOwotKyAgICBpZiAoZXJyb3IpIHsKLSsgICAgICAgIGdfd2FybmluZyAo IlBhcnNlICVzIGZhaWxlZDogJXMiLCBmaWxlbmFtZSwgZXJyb3ItPm1lc3NhZ2UpOwotKyAgICAg ICAgZ19lcnJvcl9mcmVlIChlcnJvcik7Ci0rICAgIH0KLSAgICAgZ19tYXJrdXBfcGFyc2VfY29u dGV4dF9mcmVlIChjb250ZXh0KTsKLSAgICAgcmV0dXJuIE5VTEw7Ci0gfQotZGlmZiAtLWdpdCBh L3NyYy91bmljb2RlLXBhcnNlci5jIGIvc3JjL3VuaWNvZGUtcGFyc2VyLmMKLWluZGV4IGU5OGM2 ZDVmLi4wZTRmZThiNyAxMDA2NDQKLS0tLSBhL3NyYy91bmljb2RlLXBhcnNlci5jCi0rKysgYi9z cmMvdW5pY29kZS1wYXJzZXIuYwotQEAgLTI4MSw3ICsyODEsOCBAQCB1Y2RfcGFyc2VfZmlsZSAo Y29uc3QgZ2NoYXIgKmZpbGVuYW1lLAotICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAobGlzdCAh PSBOVUxMLCBGQUxTRSk7Ci0gCi0gICAgIGlmICghZ19maWxlX2dldF9jb250ZW50cyAoZmlsZW5h bWUsICZjb250ZW50LCAmbGVuZ3RoLCAmZXJyb3IpKSB7Ci0tICAgICAgICBnX3dhcm5pbmcgKCJG YWlsZWQgdG8gbG9hZCAlczogJXMiLCBmaWxlbmFtZSwgZXJyb3ItPm1lc3NhZ2UpOwotKyAgICAg ICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIGxvYWQgJXM6ICVzIiwKLSsgICAgICAgICAgICAgICAg ICAgZmlsZW5hbWUsIGVycm9yID8gZXJyb3ItPm1lc3NhZ2UgOiAiIik7Ci0gICAgICAgICBnb3Rv IGZhaWxlZF90b19wYXJzZV91Y2RfbmFtZXNfbGlzdDsKLSAgICAgfQotICAgICBoZWFkID0gZW5k ID0gY29udGVudDsKLWRpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9GcmFtZU1nci5jIGIvdXRpbC9J TWRraXQvRnJhbWVNZ3IuYwotaW5kZXggOWI0OTc5NDguLjA4NGI4ODEwIDEwMDY0NAotLS0tIGEv dXRpbC9JTWRraXQvRnJhbWVNZ3IuYwotKysrIGIvdXRpbC9JTWRraXQvRnJhbWVNZ3IuYwotQEAg LTI3LDYgKzI3LDcgQEAgU09GVFdBUkUuCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotIAotICNpbmNsdWRlIDxYMTEv WGxpYmludC5oPgotKyNpbmNsdWRlIDxhc3NlcnQuaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0g I2luY2x1ZGUgIkZyYW1lTWdyLmgiCi0gCi1AQCAtOTg5LDYgKzk5MCw3IEBAIHN0YXRpYyBYaW1G cmFtZVR5cGUgRnJhbWVJbnN0R2V0TmV4dFR5cGUoRnJhbWVJbnN0IGZpLCBYaW1GcmFtZVR5cGVJ bmZvIGluZm8pCi0gICAgICAgICAgICAgd2hpbGUgKG51bWJlciA+IDApCi0gICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgICBpID0gX0ZyYW1lSW5zdERlY3JlbWVudCAoZmktPnRlbXBsYXRl LCBpKTsKLSsgICAgICAgICAgICAgICAgYXNzZXJ0IChpID49IDApOwotICAgICAgICAgICAgICAg ICBzaXplICs9IF9GcmFtZUluc3RHZXRJdGVtU2l6ZSAoZmksIGkpOwotICAgICAgICAgICAgICAg ICBudW1iZXItLTsKLSAgICAgICAgICAgICB9Ci1AQCAtMTEzOCw2ICsxMTQwLDcgQEAgc3RhdGlj IFhpbUZyYW1lVHlwZSBGcmFtZUluc3RQZWVrTmV4dFR5cGUgKEZyYW1lSW5zdCBmaSwgWGltRnJh bWVUeXBlSW5mbyBpbmZvKQotICAgICAgICAgICAgIHdoaWxlIChudW1iZXIgPiAwKQotICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgaSA9IF9GcmFtZUluc3REZWNyZW1lbnQgKGZpLT50 ZW1wbGF0ZSwgaSk7Ci0rICAgICAgICAgICAgICAgIGFzc2VydCAoaSA+PSAwKTsKLSAgICAgICAg ICAgICAgICAgc2l6ZSArPSBfRnJhbWVJbnN0R2V0SXRlbVNpemUgKGZpLCBpKTsKLSAgICAgICAg ICAgICAgICAgbnVtYmVyLS07Ci0gICAgICAgICAgICAgfQotQEAgLTEzNTYsNiArMTM1OSw3IEBA IHN0YXRpYyBGbVN0YXR1cyBGcmFtZUluc3RTZXRTaXplIChGcmFtZUluc3QgZmksIGludCBudW0p Ci0gCSAgICBicmVhazsKLSAgICAgICAgIH0KLSAgICAgICAgIC8qZW5kc3dpdGNoKi8KLSsgICAg ICAgIGFzc2VydCAoaSA+PSAwKTsKLSAgICAgICAgIGkgPSBfRnJhbWVJbnN0SW5jcmVtZW50KGZp LT50ZW1wbGF0ZSwgaSk7Ci0gICAgIH0KLSAgICAgLyplbmR3aGlsZSovCi1AQCAtMTQ1Nyw2ICsx NDYxLDcgQEAgc3RhdGljIEZtU3RhdHVzIEZyYW1lSW5zdFNldEl0ZXJDb3VudCAoRnJhbWVJbnN0 IGZpLCBpbnQgbnVtKQotIAkgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0gICAgICAgICAvKmVuZHN3 aXRjaCovCi0rICAgICAgICBhc3NlcnQgKGkgPj0gMCk7Ci0gICAgICAgICBpID0gX0ZyYW1lSW5z dEluY3JlbWVudCAoZmktPnRlbXBsYXRlLCBpKTsKLSAgICAgfQotICAgICAvKmVuZHdoaWxlKi8K LUBAIC0xNDc0LDYgKzE0NzksNyBAQCBzdGF0aWMgaW50IEZyYW1lSW5zdEdldFRvdGFsU2l6ZSAo RnJhbWVJbnN0IGZpKQotICAgICB3aGlsZSAoZmktPnRlbXBsYXRlW2ldLnR5cGUgIT0gRU9MKQot ICAgICB7Ci0gICAgICAgICBzaXplICs9IF9GcmFtZUluc3RHZXRJdGVtU2l6ZSAoZmksIGkpOwot KyAgICAgICAgYXNzZXJ0IChpID49IDApOwotICAgICAgICAgaSA9IF9GcmFtZUluc3RJbmNyZW1l bnQgKGZpLT50ZW1wbGF0ZSwgaSk7Ci0gICAgIH0KLSAgICAgLyplbmR3aGlsZSovCi1AQCAtMjQx OSw2ICsyNDI1LDcgQEAgc3RhdGljIGludCBfRnJhbWVJbnN0R2V0SXRlbVNpemUgKEZyYW1lSW5z dCBmaSwgaW50IGN1cl9ubykKLSAgICAgICAgICAgICBzaXplID0gMDsKLSAgICAgICAgICAgICB3 aGlsZSAobnVtYmVyID4gMCkKLSAgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgIGFzc2Vy dCAoaSA+PSAwKTsKLSAgICAgICAgICAgICAgICAgaSA9IF9GcmFtZUluc3REZWNyZW1lbnQgKGZp LT50ZW1wbGF0ZSwgaSk7Ci0gICAgICAgICAgICAgICAgIHNpemUgKz0gX0ZyYW1lSW5zdEdldEl0 ZW1TaXplIChmaSwgaSk7Ci0gICAgICAgICAgICAgICAgIG51bWJlci0tOwotZGlmZiAtLWdpdCBh L3V0aWwvSU1ka2l0L0lNQ29ubi5jIGIvdXRpbC9JTWRraXQvSU1Db25uLmMKLWluZGV4IDZkMzY1 ODkzLi44ZThiOGVjZSAxMDA2NDQKLS0tLSBhL3V0aWwvSU1ka2l0L0lNQ29ubi5jCi0rKysgYi91 dGlsL0lNZGtpdC9JTUNvbm4uYwotQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIGNoYXIgKl9GaW5k TW9kaWZpZXJzIChYSU1BcmcgKmFyZ3MpCi0gewotICAgICBjaGFyICptb2RpZmllcnM7Ci0gCi0t ICAgIHdoaWxlIChhcmdzLT5uYW1lKQotKyAgICB3aGlsZSAoYXJncyAmJiBhcmdzLT5uYW1lKQot ICAgICB7Ci0gCWlmIChzdHJjbXAgKGFyZ3MtPm5hbWUsIElNTW9kaWZpZXJzKSA9PSAwKQotIAl7 Ci1AQCAtMTQ0LDggKzE0NCwxMCBAQCBYSU1TIElNT3BlbklNIChEaXNwbGF5ICpkaXNwbGF5LCAu Li4pCi0gICAgIG1vZGlmaWVycyA9IF9GaW5kTW9kaWZpZXJzIChhcmdzKTsKLSAKLSAgICAgaW1z ID0gX0dldElNUyAobW9kaWZpZXJzKTsKLS0gICAgaWYgKGltcyA9PSAoWElNUykgTlVMTCkKLSsg ICAgaWYgKGltcyA9PSAoWElNUykgTlVMTCkgewotKyAgICAgICAgWEZyZWUgKGFyZ3MpOwotICAg ICAgICAgcmV0dXJuIChYSU1TKSBOVUxMOwotKyAgICB9Ci0gICAgIC8qZW5kaWYqLwotICAgICAK LSAgICAgaW1zLT5jb3JlLmRpc3BsYXkgPSBkaXNwbGF5OwotZGlmZiAtLWdpdCBhL3V0aWwvSU1k a2l0L2kxOG5DbGJrLmMgYi91dGlsL0lNZGtpdC9pMThuQ2xiay5jCi1pbmRleCBiM2VkZjNhZC4u ZjU1Zjk3MGYgMTAwNjQ0Ci0tLS0gYS91dGlsL0lNZGtpdC9pMThuQ2xiay5jCi0rKysgYi91dGls L0lNZGtpdC9pMThuQ2xiay5jCi1AQCAtNTUsNiArNTUsNyBAQCBpbnQgX1hpMThuR2VvbWV0cnlD YWxsYmFjayAoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNhbGxfZGF0YSkKLSAgICAgaWYgKCFyZXBs eSkKLSAgICAgewotICAgICAgICAgX1hpMThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwg WElNX0VSUk9SLCAwLCAwLCAwKTsKLSsgICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOwotICAgICAg ICAgcmV0dXJuIEZhbHNlOwotICAgICB9Ci0gICAgIC8qZW5kaWYqLwotQEAgLTk3LDYgKzk4LDcg QEAgaW50IF9YaTE4blByZWVkaXRTdGFydENhbGxiYWNrIChYSU1TIGltcywgSU1Qcm90b2NvbCAq Y2FsbF9kYXRhKQotICAgICBpZiAoIXJlcGx5KQotICAgICB7Ci0gICAgICAgICBfWGkxOG5TZW5k TWVzc2FnZShpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICBG cmFtZU1nckZyZWUgKGZtKTsKLSAgICAgICAgIHJldHVybiBGYWxzZTsKLSAgICAgfQotICAgICAv KmVuZGlmKi8KLUBAIC0xNTksNiArMTYxLDcgQEAgaW50IF9YaTE4blByZWVkaXREcmF3Q2FsbGJh Y2sgKFhJTVMgaW1zLCBJTVByb3RvY29sICpjYWxsX2RhdGEpCi0gICAgIGlmICghcmVwbHkpCi0g ICAgIHsKLSAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9F UlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKLSAgICAgICAgIHJl dHVybiBGYWxzZTsKLSAgICAgfQotICAgICAvKmVuZGlmKi8KLUBAIC0yMTIsNiArMjE1LDcgQEAg aW50IF9YaTE4blByZWVkaXRDYXJldENhbGxiYWNrIChYSU1TIGltcywgSU1Qcm90b2NvbCAqY2Fs bF9kYXRhKQotICAgICBpZiAoIXJlcGx5KQotICAgICB7Ci0gICAgICAgICBfWGkxOG5TZW5kTWVz c2FnZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJST1IsIDAsIDAsIDApOwotKyAgICAgICAgRnJh bWVNZ3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1cm4gRmFsc2U7Ci0gICAgIH0KLSAgICAgLypl bmRpZiovCi1AQCAtMjU2LDYgKzI2MCw3IEBAIGludCBfWGkxOG5QcmVlZGl0RG9uZUNhbGxiYWNr IChYSU1TIGltcywgSU1Qcm90b2NvbCAqY2FsbF9kYXRhKQotICAgICBpZiAoIXJlcGx5KQotICAg ICB7Ci0gICAgICAgICBfWGkxOG5TZW5kTWVzc2FnZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJS T1IsIDAsIDAsIDApOwotKyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1 cm4gRmFsc2U7Ci0gICAgIH0KLSAgICAgLyplbmRpZiovCi1AQCAtMjk3LDYgKzMwMiw3IEBAIGlu dCBfWGkxOG5TdGF0dXNTdGFydENhbGxiYWNrIChYSU1TIGltcywgSU1Qcm90b2NvbCAqY2FsbF9k YXRhKQotICAgICBpZiAoIXJlcGx5KQotICAgICB7Ci0gICAgICAgICBfWGkxOG5TZW5kTWVzc2Fn ZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJST1IsIDAsIDAsIDApOwotKyAgICAgICAgRnJhbWVN Z3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1cm4gRmFsc2U7Ci0gICAgIH0KLSAgICAgLyplbmRp ZiovCi1AQCAtMzYzLDYgKzM2OSw3IEBAIGludCBfWGkxOG5TdGF0dXNEcmF3Q2FsbGJhY2sgKFhJ TVMgaW1zLCBJTVByb3RvY29sICpjYWxsX2RhdGEpCi0gICAgICAgICBpZiAoIXJlcGx5KQotICAg ICAgICAgewotICAgICAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQs IFhJTV9FUlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0g ICAgICAgICAgICAgcmV0dXJuIEZhbHNlOwotICAgICAgICAgfQotICAgICAgICAgLyplbmRpZiov Ci1AQCAtMzkwLDYgKzM5Nyw3IEBAIGludCBfWGkxOG5TdGF0dXNEcmF3Q2FsbGJhY2sgKFhJTVMg aW1zLCBJTVByb3RvY29sICpjYWxsX2RhdGEpCi0gICAgICAgICBpZiAoIXJlcGx5KQotICAgICAg ICAgewotICAgICAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJ TV9FUlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0gICAg ICAgICAgICAgcmV0dXJuIEZhbHNlOwotICAgICAgICAgfQotICAgICAgICAgLyplbmRpZiovCi1A QCAtNDM1LDYgKzQ0Myw3IEBAIGludCBfWGkxOG5TdGF0dXNEb25lQ2FsbGJhY2sgKFhJTVMgaW1z LCBJTVByb3RvY29sICpjYWxsX2RhdGEpCi0gICAgIGlmICghcmVwbHkpCi0gICAgIHsKLSAgICAg ICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwg MCk7Ci0rICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKLSAgICAgICAgIHJldHVybiBGYWxzZTsK LSAgICAgfQotICAgICAvKmVuZGlmKi8KLUBAIC00NzksNiArNDg4LDcgQEAgaW50IF9YaTE4blN0 cmluZ0NvbnZlcnNpb25DYWxsYmFjayAoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNhbGxfZGF0YSkK LSAgICAgaWYgKCFyZXBseSkKLSAgICAgewotICAgICAgICAgX1hpMThuU2VuZE1lc3NhZ2UgKGlt cywgY29ubmVjdF9pZCwgWElNX0VSUk9SLCAwLCAwLCAwKTsKLSsgICAgICAgIEZyYW1lTWdyRnJl ZSAoZm0pOwotICAgICAgICAgcmV0dXJuIEZhbHNlOwotICAgICB9Ci0gICAgIC8qZW5kaWYqLwot ZGlmZiAtLWdpdCBhL3V0aWwvSU1ka2l0L2kxOG5JYy5jIGIvdXRpbC9JTWRraXQvaTE4bkljLmMK LWluZGV4IDg3NDQ1OTg2Li4yODk4MzdhNiAxMDA2NDQKLS0tLSBhL3V0aWwvSU1ka2l0L2kxOG5J Yy5jCi0rKysgYi91dGlsL0lNZGtpdC9pMThuSWMuYwotQEAgLTQ3NSw4ICs0NzUsMTAgQEAgc3Rh dGljIFhJQ0F0dHJpYnV0ZSAqQ3JlYXRlTmVzdGVkTGlzdCAoQ0FSRDE2IGF0dHJfaWQsCi0gICAg IC8qZW5kaWYqLwotICAgICBtZW1zZXQgKG5lc3RfbGlzdCwgMCwgc2l6ZW9mIChYSUNBdHRyaWJ1 dGUpKTsKLSAgICAgbmVzdF9saXN0LT52YWx1ZSA9ICh2b2lkICopIG1hbGxvYyAodmFsdWVfbGVu Z3RoKTsKLS0gICAgaWYgKG5lc3RfbGlzdC0+dmFsdWUgPT0gTlVMTCkKLSsgICAgaWYgKG5lc3Rf bGlzdC0+dmFsdWUgPT0gTlVMTCkgewotKyAgICAgICAgWEZyZWUgKG5lc3RfbGlzdCk7Ci0gICAg ICAgICByZXR1cm4gTlVMTDsKLSsgICAgfQotICAgICAvKmVuZGlmKi8KLSAgICAgbWVtc2V0IChu ZXN0X2xpc3QtPnZhbHVlLCAwLCB2YWx1ZV9sZW5ndGgpOwotIAotQEAgLTgxNiw2ICs4MTgsNyBA QCB2b2lkIF9YaTE4bkNoYW5nZUlDIChYSU1TIGltcywKLSAgICAgaWYgKCFyZXBseSkKLSAgICAg ewotICAgICAgICAgX1hpMThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwgWElNX0VSUk9S LCAwLCAwLCAwKTsKLSsgICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOwotICAgICAgICAgcmV0dXJu OwotICAgICB9Ci0gICAgIC8qZW5kaWYqLwotQEAgLTk3Myw4ICs5NzYsMTAgQEAgdm9pZCBfWGkx OG5HZXRJQyAoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNhbGxfZGF0YSwgdW5zaWduZWQgY2hhciAq cCkKLSAgICAgZ2V0aWMtPmljX2F0dHIgPSBpY19hdHRyOwotICAgICBpZiAoaTE4bl9jb3JlLT5h ZGRyZXNzLmltcHJvdG8pCi0gICAgIHsKLS0gICAgICAgIGlmICghKGkxOG5fY29yZS0+YWRkcmVz cy5pbXByb3RvIChpbXMsIGNhbGxfZGF0YSkpKQotKyAgICAgICAgaWYgKCEoaTE4bl9jb3JlLT5h ZGRyZXNzLmltcHJvdG8gKGltcywgY2FsbF9kYXRhKSkpIHsKLSsgICAgICAgICAgICBYRnJlZSAo YXR0cklEX2xpc3QpOwotICAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIH0KLSAgICAgICAg IC8qZW5kaWYqLwotIAlpZiAoX1hpMThuTmVlZFN3YXAgKGkxOG5fY29yZSwgY29ubmVjdF9pZCkp Ci0gCSAgU3dhcEF0dHJpYnV0ZXMoZ2V0aWMtPmljX2F0dHIsIGdldGljLT5pY19hdHRyX251bSk7 Ci1AQCAtMTAyMCw2ICsxMDI1LDggQEAgdm9pZCBfWGkxOG5HZXRJQyAoWElNUyBpbXMsIElNUHJv dG9jb2wgKmNhbGxfZGF0YSwgdW5zaWduZWQgY2hhciAqcCkKLSAgICAgaWYgKHJlcGx5ID09IE5V TEwpCi0gICAgIHsKLSAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQs IFhJTV9FUlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICBYRnJlZSAoYXR0cklEX2xpc3QpOwotKyAg ICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAgICAg LyplbmRpZiovCi1kaWZmIC0tZ2l0IGEvdXRpbC9JTWRraXQvaTE4bk1ldGhvZC5jIGIvdXRpbC9J TWRraXQvaTE4bk1ldGhvZC5jCi1pbmRleCAyMDNmODMxNS4uMzZkZDI4YWMgMTAwNjQ0Ci0tLS0g YS91dGlsL0lNZGtpdC9pMThuTWV0aG9kLmMKLSsrKyBiL3V0aWwvSU1ka2l0L2kxOG5NZXRob2Qu YwotQEAgLTg5NSw2ICs4OTUsNyBAQCBzdGF0aWMgU3RhdHVzIHhpMThuX2ZvcndhcmRFdmVudCAo WElNUyBpbXMsIFhQb2ludGVyIHhwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsKLSsgICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOwotICAgICAgICAgcmV0dXJuIEZhbHNl OwotICAgICB9Ci0gICAgIC8qZW5kaWYqLwotQEAgLTk2NCw2ICs5NjUsNyBAQCBzdGF0aWMgU3Rh dHVzIHhpMThuX2NvbW1pdCAoWElNUyBpbXMsIFhQb2ludGVyIHhwKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKLSsgICAgICAgICAgICBGcmFtZU1n ckZyZWUgKGZtKTsKLSAgICAgICAgICAgICByZXR1cm4gRmFsc2U7Ci0gICAgICAgICB9Ci0gICAg ICAgICAvKmVuZGlmKi8KLUBAIC05OTcsNiArOTk5LDcgQEAgc3RhdGljIFN0YXR1cyB4aTE4bl9j b21taXQgKFhJTVMgaW1zLCBYUG9pbnRlciB4cCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCk7Ci0rICAgICAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7 Ci0gICAgICAgICAgICAgcmV0dXJuIEZhbHNlOwotICAgICAgICAgfQotICAgICAgICAgLyplbmRp ZiovCi1AQCAtMTEzMiw2ICsxMTM1LDcgQEAgc3RhdGljIGludCB4aTE4bl9zeW5jWGxpYiAoWElN UyBpbXMsIFhQb2ludGVyIHhwKQotICAgICByZXBseSA9ICh1bnNpZ25lZCBjaGFyICopIG1hbGxv YyAodG90YWxfc2l6ZSk7Ci0gICAgIGlmICghcmVwbHkpIHsKLSAgICAgICAgIF9YaTE4blNlbmRN ZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICBG cmFtZU1nckZyZWUgKGZtKTsKLSAgICAgICAgIHJldHVybiBGYWxzZTsKLSAgICAgfQotICAgICBt ZW1zZXQgKHJlcGx5LCAwLCB0b3RhbF9zaXplKTsKLWRpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9p MThuT2Zmc2V0Q2FjaGUuYyBiL3V0aWwvSU1ka2l0L2kxOG5PZmZzZXRDYWNoZS5jCi1pbmRleCBj OTUyZDViNC4uZDUzNzkwNTEgMTAwNjQ0Ci0tLS0gYS91dGlsL0lNZGtpdC9pMThuT2Zmc2V0Q2Fj aGUuYwotKysrIGIvdXRpbC9JTWRraXQvaTE4bk9mZnNldENhY2hlLmMKLUBAIC0yNyw5ICsyNywx MSBAQAotICAqLwotIAotICNpbmNsdWRlIDxYMTEvWGxpYi5oPgotKyNpbmNsdWRlIDxhc3NlcnQu aD4KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0gI2luY2x1ZGUgIklNZGtpdC5oIgotICNpbmNsdWRl ICJYaTE4bi5oIgotKyNpbmNsdWRlICJYaTE4bi5oIgotIAotIC8qCi0gICogVGhlIFhJTSBzcGVj aWZpY2F0aW9uIGRvZXMgbm90IGxpbWl0IHRoZSBudW1iZXIgb2Ygd2luZG93IHByb3BlcnRpZXMK LUBAIC01Miw5ICs1NCwxMSBAQCB2b2lkIF9YaTE4bkluaXRPZmZzZXRDYWNoZSAoWGkxOG5PZmZz ZXRDYWNoZSAqb2Zmc2V0X2NhY2hlKQotIHVuc2lnbmVkIGxvbmcgX1hpMThuTG9va3VwUHJvcGVy dHlPZmZzZXQgKFhpMThuT2Zmc2V0Q2FjaGUgKm9mZnNldF9jYWNoZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdG9tIGtleSkKLSB7Ci0tICAgIFhpMThuQXRv bU9mZnNldFBhaXIgKmRhdGEgPSBvZmZzZXRfY2FjaGUtPmRhdGE7Ci0rICAgIFhpMThuQXRvbU9m ZnNldFBhaXIgKmRhdGE7Ci0gICAgIHNpemVfdCBpOwotIAotKyAgICBhc3NlcnQgKG9mZnNldF9j YWNoZSk7Ci0rICAgIGRhdGEgPSBvZmZzZXRfY2FjaGUtPmRhdGE7Ci0gICAgIGZvciAoaSA9IDA7 IGkgPCBvZmZzZXRfY2FjaGUtPnNpemU7ICsraSkgewotICAgICAgICAgaWYgKGRhdGFbaV0ua2V5 ID09IGtleSkgewotICAgICAgICAgICAgIHJldHVybiBkYXRhW2ldLm9mZnNldDsKLUBAIC03MCw2 ICs3NCw3IEBAIHZvaWQgX1hpMThuU2V0UHJvcGVydHlPZmZzZXQgKFhpMThuT2Zmc2V0Q2FjaGUg Km9mZnNldF9jYWNoZSwgQXRvbSBrZXksCi0gICAgIFhpMThuQXRvbU9mZnNldFBhaXIgKmRhdGEg PSBvZmZzZXRfY2FjaGUtPmRhdGE7Ci0gICAgIHNpemVfdCBpOwotIAotKyAgICBhc3NlcnQgKGRh dGEgIT0gTlVMTCk7Ci0gICAgIGZvciAoaSA9IDA7IGkgPCBvZmZzZXRfY2FjaGUtPnNpemU7ICsr aSkgewotICAgICAgICAgaWYgKGRhdGFbaV0ua2V5ID09IGtleSkgewotICAgICAgICAgICAgIGRh dGFbaV0ub2Zmc2V0ID0gb2Zmc2V0OwotQEAgLTc5LDExICs4NCwxOSBAQCB2b2lkIF9YaTE4blNl dFByb3BlcnR5T2Zmc2V0IChYaTE4bk9mZnNldENhY2hlICpvZmZzZXRfY2FjaGUsIEF0b20ga2V5 LAotIAotICAgICBpZiAoKytvZmZzZXRfY2FjaGUtPnNpemUgPiBvZmZzZXRfY2FjaGUtPmNhcGFj aXR5KSB7Ci0gICAgICAgICBvZmZzZXRfY2FjaGUtPmNhcGFjaXR5ICo9IE9GRlNFVF9DQUNIRV9H Uk9XVEhfRkFDVE9SOwotLSAgICAgICAgb2Zmc2V0X2NhY2hlLT5kYXRhID0gZGF0YSA9IChYaTE4 bkF0b21PZmZzZXRQYWlyICopIHJlYWxsb2MgKGRhdGEsCi0rICAgICAgICBvZmZzZXRfY2FjaGUt PmRhdGEgPSAoWGkxOG5BdG9tT2Zmc2V0UGFpciAqKSByZWFsbG9jIChkYXRhLAotICAgICAgICAg ICAgICAgICBvZmZzZXRfY2FjaGUtPmNhcGFjaXR5ICogc2l6ZW9mIChYaTE4bkF0b21PZmZzZXRQ YWlyKSk7Ci0rICAgICAgICBpZiAob2Zmc2V0X2NhY2hlLT5kYXRhID09IE5VTEwpIHsKLSsgICAg ICAgICAgICBvZmZzZXRfY2FjaGUtPmRhdGEgPSBkYXRhOwotKyAgICAgICAgICAgIC0tb2Zmc2V0 X2NhY2hlLT5zaXplOwotKyAgICAgICAgfQotKyAgICAgICAgZGF0YSA9IG9mZnNldF9jYWNoZS0+ ZGF0YTsKLSAgICAgfQotIAotLSAgICBkYXRhW2ldLmtleSA9IGtleTsKLS0gICAgZGF0YVtpXS5v ZmZzZXQgPSBvZmZzZXQ7Ci0rICAgIGFzc2VydCAoZGF0YSAhPSBOVUxMKTsKLSsgICAgaWYgKG9m ZnNldF9jYWNoZS0+c2l6ZSA+IDApIHsKLSsgICAgICAgIGRhdGFbaV0ua2V5ID0ga2V5OwotKyAg ICAgICAgZGF0YVtpXS5vZmZzZXQgPSBvZmZzZXQ7Ci0rICAgIH0KLSB9Ci0gCi1kaWZmIC0tZ2l0 IGEvdXRpbC9JTWRraXQvaTE4blB0SGRyLmMgYi91dGlsL0lNZGtpdC9pMThuUHRIZHIuYwotaW5k ZXggMmU2NzM1NDEuLmVhZWVlZTFjIDEwMDY0NAotLS0tIGEvdXRpbC9JTWRraXQvaTE4blB0SGRy LmMKLSsrKyBiL3V0aWwvSU1ka2l0L2kxOG5QdEhkci5jCi1AQCAtMTEwLDYgKzExMCw3IEBAIHN0 YXRpYyB2b2lkIENvbm5lY3RNZXNzYWdlUHJvYyAoWElNUyBpbXMsCi0gICAgIGlmICghcmVwbHkp Ci0gICAgIHsKLSAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJ TV9FUlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKLSAgICAgICAg IHJldHVybjsKLSAgICAgfQotICAgICAvKmVuZGlmKi8KLUBAIC0yMzAsNiArMjMxLDcgQEAgc3Rh dGljIHZvaWQgT3Blbk1lc3NhZ2VQcm9jKFhJTVMgaW1zLCBJTVByb3RvY29sICpjYWxsX2RhdGEs IHVuc2lnbmVkIGNoYXIgKnApCi0gICAgIGlmICghcmVwbHkpCi0gICAgIHsKLSAgICAgICAgIF9Y aTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7Ci0r ICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotICAg ICAvKmVuZGlmKi8KLUBAIC0zMTIsNiArMzE0LDcgQEAgc3RhdGljIHZvaWQgQ2xvc2VNZXNzYWdl UHJvYyAoWElNUyBpbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwot KyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAg ICAgLyplbmRpZiovCi1AQCAtNTEzLDYgKzUxNiwxMCBAQCBzdGF0aWMgdm9pZCBRdWVyeUV4dGVu c2lvbk1lc3NhZ2VQcm9jIChYSU1TIGltcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCk7Ci0rICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKLSsgICAgICAgIGZvciAoaSA9 IDA7ICBpIDwgcmVwbHlfbnVtYmVyOyAgaSsrKQotKyAgICAgICAgICAgIFhGcmVlIChleHRfbGlz dFtpXS5uYW1lKTsKLSsgICAgICAgIFhGcmVlICgoY2hhciAqKSBleHRfbGlzdCk7Ci0gICAgICAg ICByZXR1cm47Ci0gICAgIH0KLSAgICAgLyplbmRpZiovCi1AQCAtNjEwLDggKzYxNywxMCBAQCBz dGF0aWMgdm9pZCBHZXRJTVZhbHVlRnJvbU5hbWUgKFhpMThuIGkxOG5fY29yZSwKLSAKLSAgICAg ICAgICAgICB0b3RhbF9zaXplID0gRnJhbWVNZ3JHZXRUb3RhbFNpemUgKGZtKTsKLSAgICAgICAg ICAgICBkYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgbWFsbG9jICh0b3RhbF9zaXplKTsKLS0gICAg ICAgICAgICBpZiAoIWRhdGEpCi0rICAgICAgICAgICAgaWYgKCFkYXRhKSB7Ci0rICAgICAgICAg ICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOwotICAgICAgICAgICAgICAgICByZXR1cm47Ci0rICAg ICAgICAgICAgfQotICAgICAgICAgICAgIC8qZW5kaWYqLwotICAgICAgICAgICAgIG1lbXNldCAo ZGF0YSwgMCwgdG90YWxfc2l6ZSk7Ci0gICAgICAgICAgICAgRnJhbWVNZ3JTZXRCdWZmZXIgKGZt LCBkYXRhKTsKLUBAIC02NjYsMTEgKzY3NSwxMiBAQCBzdGF0aWMgWElNQXR0cmlidXRlICpNYWtl SU1BdHRyaWJ1dGVMaXN0IChYaTE4biBpMThuX2NvcmUsCi0gICAgICAgICAvKmVuZGZvciovCi0g ICAgIH0KLSAgICAgLyplbmRmb3IqLwotLSAgICBhdHRyaWJfbGlzdCA9IChYSU1BdHRyaWJ1dGUg KikgbWFsbG9jIChzaXplb2YgKFhJTUF0dHJpYnV0ZSkqbGlzdF9udW0pOwotKyAgICBhdHRyaWJf bGlzdCA9Ci0rICAgICAgICAgICAgKFhJTUF0dHJpYnV0ZSAqKSBtYWxsb2MgKHNpemVvZiAoWElN QXR0cmlidXRlKSoobGlzdF9udW0gKyAxKSk7Ci0gICAgIGlmICghYXR0cmliX2xpc3QpCi0gICAg ICAgICByZXR1cm4gTlVMTDsKLSAgICAgLyplbmRpZiovCi0tICAgIG1lbXNldCAoYXR0cmliX2xp c3QsIDAsIHNpemVvZiAoWElNQXR0cmlidXRlKSpsaXN0X251bSk7Ci0rICAgIG1lbXNldCAoYXR0 cmliX2xpc3QsIDAsIHNpemVvZiAoWElNQXR0cmlidXRlKSoobGlzdF9udW0gKyAxKSk7Ci0gICAg IG51bWJlcl9yZXQgPSBsaXN0X251bTsKLSAgICAgbGlzdF9udW0gPSAwOwotICAgICBmb3IgKGkg PSAwOyAgaSA8ICpudW1iZXI7ICBpKyspCi1AQCAtODA1LDYgKzgxNSwxMCBAQCBzdGF0aWMgdm9p ZCBHZXRJTVZhbHVlc01lc3NhZ2VQcm9jIChYSU1TIGltcywKLSAgICAgaWYgKCFyZXBseSkKLSAg ICAgewotICAgICAgICAgX1hpMThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwgWElNX0VS Uk9SLCAwLCAwLCAwKTsKLSsgICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOwotKyAgICAgICAgZm9y IChpID0gMDsgaSA8IGl0ZXJfY291bnQ7IGkrKykKLSsgICAgICAgICAgICBYRnJlZShpbV9hdHRy aWJ1dGVfbGlzdFtpXS52YWx1ZSk7Ci0rICAgICAgICBYRnJlZSAoaW1fYXR0cmlidXRlX2xpc3Qp OwotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0gICAgIC8qZW5kaWYqLwotQEAgLTk2MSw2ICs5 NzUsNyBAQCBzdGF0aWMgdm9pZCBEZXN0cm95SUNNZXNzYWdlUHJvYyAoWElNUyBpbXMsCi0gICAg IGlmICghcmVwbHkpCi0gICAgIHsKLSAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNv bm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICBGcmFtZU1nckZyZWUgKGZt KTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotICAgICAvKmVuZGlmKi8KLUBAIC0xMDI2LDYg KzEwNDEsNyBAQCBzdGF0aWMgdm9pZCBSZXNldElDTWVzc2FnZVByb2MgKFhJTVMgaW1zLAotICAg ICBpZiAoIXJlcGx5KQotICAgICB7Ci0gICAgICAgICBfWGkxOG5TZW5kTWVzc2FnZSAoaW1zLCBj b25uZWN0X2lkLCBYSU1fRVJST1IsIDAsIDAsIDApOwotKyAgICAgICAgRnJhbWVNZ3JGcmVlIChm bSk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAgICAgLyplbmRpZiovCi1AQCAtMTA3Miw3 ICsxMDg4LDcgQEAgc3RhdGljIGludCBXaXJlRXZlbnRUb0V2ZW50IChYaTE4biBpMThuX2NvcmUs Ci0gICAgIC8qIGdldCAmIHNldCBzZXJpYWwgKi8KLSAgICAgRnJhbWVNZ3JHZXRUb2tlbihmbSwg YzE2KTsKLSAgICAgZXYtPnhhbnkuc2VyaWFsID0gKHVuc2lnbmVkIGxvbmcpYzE2OwotLSAgICBl di0+eGFueS5zZXJpYWwgfD0gc2VyaWFsIDw8IDE2OwotKyAgICBldi0+eGFueS5zZXJpYWwgfD0g KCh1bnNpZ25lZCBsb25nKXNlcmlhbCkgPDwgMTY7Ci0gICAgIGV2LT54YW55LnNlbmRfZXZlbnQg PSBGYWxzZTsKLSAgICAgZXYtPnhhbnkuZGlzcGxheSA9IGkxOG5fY29yZS0+YWRkcmVzcy5kcHk7 Ci0gCi1AQCAtMTMwOCw2ICsxMzI0LDcgQEAgc3RhdGljIHZvaWQgVHJpZ2dlck5vdGlmeU1lc3Nh Z2VQcm9jIChYSU1TIGltcywKLSAgICAgaWYgKCFyZXBseSkKLSAgICAgewotICAgICAgICAgX1hp MThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwgWElNX0VSUk9SLCAwLCAwLCAwKTsKLSsg ICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOwotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0gICAg IC8qZW5kaWYqLwotQEAgLTE0NDMsNyArMTQ2MCw3IEBAIHN0YXRpYyB2b2lkIEVuY29kaW5nTmVn b3RpYXRvbk1lc3NhZ2VQcm9jIChYSU1TIGltcywKLSAgICAgaWYgKGJ5dGVfbGVuZ3RoID4gMCkK LSAgICAgewotICAgICAgICAgZW5jX25lZ28tPmVuY29kaW5naW5mbyA9IChYSU1TdHIgKikgbWFs bG9jIChzaXplb2YgKFhJTVN0cikqMTApOwotLSAgICAgICAgbWVtc2V0IChlbmNfbmVnby0+ZW5j b2RpbmcsIDAsIHNpemVvZiAoWElNU3RyKSoxMCk7Ci0rICAgICAgICBtZW1zZXQgKGVuY19uZWdv LT5lbmNvZGluZ2luZm8sIDAsIHNpemVvZiAoWElNU3RyKSoxMCk7Ci0gICAgICAgICBpID0gMDsK LSAgICAgICAgIHdoaWxlIChGcmFtZU1ncklzSXRlckxvb3BFbmQgKGZtLCAmc3RhdHVzKSA9PSBG YWxzZSkKLSAgICAgICAgIHsKLUBAIC0xNDg4LDYgKzE1MDUsNyBAQCBzdGF0aWMgdm9pZCBFbmNv ZGluZ05lZ290aWF0b25NZXNzYWdlUHJvYyAoWElNUyBpbXMsCi0gICAgIGlmICghcmVwbHkpCi0g ICAgIHsKLSAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9F UlJPUiwgMCwgMCwgMCk7Ci0rICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKLSAgICAgICAgIHJl dHVybjsKLSAgICAgfQotICAgICAvKmVuZGlmKi8KLWRpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9p MThuVXRpbC5jIGIvdXRpbC9JTWRraXQvaTE4blV0aWwuYwotaW5kZXggNjU1N2JkMWEuLjEwOWRj ZGY5IDEwMDY0NAotLS0tIGEvdXRpbC9JTWRraXQvaTE4blV0aWwuYwotKysrIGIvdXRpbC9JTWRr aXQvaTE4blV0aWwuYwotQEAgLTE0OCw2ICsxNDgsNyBAQCB2b2lkIF9YaTE4blNlbmRNZXNzYWdl IChYSU1TIGltcywKLSAgICAgaWYgKHJlcGx5X2hkciA9PSBOVUxMKQotICAgICB7Ci0gICAgICAg ICBfWGkxOG5TZW5kTWVzc2FnZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJST1IsIDAsIDAsIDAp OwotKyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0K LSAgICAgLyplbmRpZiovCi1AQCAtMTYzLDcgKzE2NCw4IEBAIHZvaWQgX1hpMThuU2VuZE1lc3Nh Z2UgKFhJTVMgaW1zLAotICAgICByZXBseXAgPSByZXBseTsKLSAgICAgbWVtbW92ZSAocmVwbHks IHJlcGx5X2hkciwgaGVhZGVyX3NpemUpOwotICAgICByZXBseXAgKz0gaGVhZGVyX3NpemU7Ci0t ICAgIG1lbW1vdmUgKHJlcGx5cCwgZGF0YSwgbGVuZ3RoKTsKLSsgICAgaWYgKGxlbmd0aCA+IDAg JiYgZGF0YSAhPSBOVUxMKQotKyAgICAgICAgbWVtbW92ZSAocmVwbHlwLCBkYXRhLCBsZW5ndGgp OwotIAotICAgICBpMThuX2NvcmUtPm1ldGhvZHMuc2VuZCAoaW1zLCBjb25uZWN0X2lkLCByZXBs eSwgcmVwbHlfbGVuZ3RoKTsKLSAKLUBAIC0yMDIsOCArMjA0LDEwIEBAIHZvaWQgX1hpMThuU2Vu ZFRyaWdnZXJLZXkgKFhJTVMgaW1zLCBDQVJEMTYgY29ubmVjdF9pZCkKLSAgICAgdG90YWxfc2l6 ZSA9IEZyYW1lTWdyR2V0VG90YWxTaXplIChmbSk7Ci0gCi0gICAgIHJlcGx5ID0gKHVuc2lnbmVk IGNoYXIgKikgbWFsbG9jICh0b3RhbF9zaXplKTsKLS0gICAgaWYgKCFyZXBseSkKLSsgICAgaWYg KCFyZXBseSkgewotKyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1cm47 Ci0rICAgIH0KLSAgICAgLyplbmRpZiovCi0gICAgIG1lbXNldCAocmVwbHksIDAsIHRvdGFsX3Np emUpOwotICAgICBGcmFtZU1nclNldEJ1ZmZlciAoZm0sIHJlcGx5KTsKLUBAIC0yNTcsOCArMjYx LDEwIEBAIHZvaWQgX1hpMThuU2V0RXZlbnRNYXNrIChYSU1TIGltcywKLSAKLSAgICAgdG90YWxf c2l6ZSA9IEZyYW1lTWdyR2V0VG90YWxTaXplIChmbSk7Ci0gICAgIHJlcGx5ID0gKHVuc2lnbmVk IGNoYXIgKikgbWFsbG9jICh0b3RhbF9zaXplKTsKLS0gICAgaWYgKCFyZXBseSkKLSsgICAgaWYg KCFyZXBseSkgewotKyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Ci0gICAgICAgICByZXR1cm47 Ci0rICAgIH0KLSAgICAgLyplbmRpZiovCi0gICAgIG1lbXNldCAocmVwbHksIDAsIHRvdGFsX3Np emUpOwotICAgICBGcmFtZU1nclNldEJ1ZmZlciAoZm0sIHJlcGx5KTsKLWRpZmYgLS1naXQgYS91 dGlsL0lNZGtpdC9pMThuWC5jIGIvdXRpbC9JTWRraXQvaTE4blguYwotaW5kZXggODM4NWFiYTku LjVlNWMxNWZhIDEwMDY0NAotLS0tIGEvdXRpbC9JTWRraXQvaTE4blguYwotKysrIGIvdXRpbC9J TWRraXQvaTE4blguYwotQEAgLTMxLDYgKzMxLDcgQEAgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBV U0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLSAgCi0gKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotIAot KyNpbmNsdWRlIDxhc3NlcnQuaD4KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0gI2luY2x1ZGUgPGxp bWl0cy5oPgotICNpbmNsdWRlIDxYMTEvWGxpYi5oPgotQEAgLTkyLDYgKzkzLDcgQEAgc3RhdGlj IHVuc2lnbmVkIGNoYXIgKlJlYWRYSU1NZXNzYWdlIChYSU1TIGltcywKLSAgICAgICAgIGNsaWVu dCA9IGNsaWVudC0+bmV4dDsKLSAgICAgfQotIAotKyAgICBhc3NlcnQgKGNsaWVudCk7Ci0gICAg IGlmIChldi0+Zm9ybWF0ID09IDgpIHsKLSAgICAgICAgIC8qIENsaWVudE1lc3NhZ2Ugb25seSAq LwotICAgICAgICAgWGltUHJvdG9IZHIgKmhkciA9IChYaW1Qcm90b0hkciAqKSBldi0+ZGF0YS5i OwotQEAgLTE1OCw2ICsxNjAsNyBAQCBzdGF0aWMgdW5zaWduZWQgY2hhciAqUmVhZFhJTU1lc3Nh Z2UgKFhJTVMgaW1zLAotICAgICAgICAgLyogVGhlIHByb3BlcnR5IGRhdGEgaXMgcmV0cmlldmVk IGluIDMyLWJpdCBjaHVua3MgKi8KLSAgICAgICAgIGxvbmdfYmVnaW4gPSBvZmZzZXQgLyA0Owot ICAgICAgICAgbG9uZ19lbmQgPSAoZW5kICsgMykgLyA0OwotKyAgICAgICAgYXNzZXJ0ICh4X2Ns aWVudCk7Ci0gICAgICAgICByZXR1cm5fY29kZSA9IFhHZXRXaW5kb3dQcm9wZXJ0eSAoaTE4bl9j b3JlLT5hZGRyZXNzLmRweSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4X2NsaWVudC0+YWNjZXB0X3dpbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhdG9tLAotQEAgLTI3NiwxMSArMjc5LDExIEBAIHN0YXRpYyBCb29sIFhp MThuWEVuZChYSU1TIGltcykKLSBzdGF0aWMgY2hhciAqTWFrZU5ld0F0b20gKENBUkQxNiBjb25u ZWN0X2lkLCBjaGFyICphdG9tTmFtZSkKLSB7Ci0gICAgIHN0YXRpYyBpbnQgc2VxdWVuY2UgPSAw OwotLSAgICAKLSAgICAgc3ByaW50ZiAoYXRvbU5hbWUsCi0gICAgICAgICAgICAgICJfc2VydmVy JWRfJWQiLAotICAgICAgICAgICAgICBjb25uZWN0X2lkLAotLSAgICAgICAgICAgICAoKHNlcXVl bmNlID4gMjApICA/ICAoc2VxdWVuY2UgPSAwKSAgOiAgc2VxdWVuY2UrKykpOwotKyAgICAgICAg ICAgICAoKHNlcXVlbmNlID4gMjApICA/ICAoc2VxdWVuY2UgPSAwKSAgOiAgKDB4MWYgJiBzZXF1 ZW5jZSkpKTsKLSsgICAgc2VxdWVuY2UrKzsKLSAgICAgcmV0dXJuIGF0b21OYW1lOwotIH0KLSAK LUBAIC00MTgsMTMgKzQyMSwxNiBAQCBzdGF0aWMgQm9vbCBYaTE4blhXYWl0IChYSU1TIGltcywK LSAgICAgICAgICAgICAgICAgJiYKLSAgICAgICAgICAgICAgICAgKGhkci0+bWlub3Jfb3Bjb2Rl ID09IG1pbm9yX29wY29kZSkpCi0gICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgICBYRnJl ZSAocGFja2V0KTsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWU7Ci0gICAgICAgICAgICAg fQotICAgICAgICAgICAgIGVsc2UgaWYgKGhkci0+bWFqb3Jfb3Bjb2RlID09IFhJTV9FUlJPUikK LSAgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgIFhGcmVlIChwYWNrZXQpOwotICAgICAg ICAgICAgICAgICByZXR1cm4gRmFsc2U7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIC8q ZW5kaWYqLwotKyAgICAgICAgICAgIFhGcmVlIChwYWNrZXQpOwotICAgICAgICAgfQotICAgICAg ICAgLyplbmRpZiovCi0gICAgIH0KLS0tIAotMi4xNy4xCi0KCmRpZmYgLS1naXQgYS9pYnVzLUhF QUQucGF0Y2ggYi9pYnVzLUhFQUQucGF0Y2gKaW5kZXggYWMzYTUzMy4uNTExY2U4NSAxMDA2NDQK LS0tIGEvaWJ1cy1IRUFELnBhdGNoCisrKyBiL2lidXMtSEVBRC5wYXRjaApAQCAtOTY0NSwzICs5 NjQ1LDExMDAgQEAgaW5kZXggNTJiNzhjMTcuLjk1MTE1YjEzIDEwMDY0NAogLS0gCiAyLjE0LjMK IAorRnJvbSA2YjQ3ZTQxZDY2NDk3ZGQzNTc1MmE4OWVhODBlNGJhYzU1YjY0ZTQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGFrdXJvIEFzaGllIDxhc2hpZUBjbGVhci1jb2RlLmNv bT4KK0RhdGU6IEZyaSwgMjAgSnVsIDIwMTggMTI6MzA6MDkgKzA5MDAKK1N1YmplY3Q6IFtQQVRD SF0gUmVtb3ZlIGEgbWlzbGVhZGluZyAiY29uc3QiIG1vZGlmaWVyIG9mIGEgcmV0dXJuIHZhbHVl CisKK2lidXNfa2V5X2V2ZW50X3RvX3N0cmluZygpIHVzZXMgZ19zdHJpbmdfZnJlZShzdHIsIEZB TFNFKSB0byByZXR1cm4KK2Egc3RyaW5nIHNvIHRoYXQgdXNlcnMgbXVzdCBmcmVlIGl0LiBUbyBj bGFyaWZ5IGl0LCB0aGUgY29uc3QKK21vZGlmaWVyIHNob3VsZCBiZSByZW1vdmVkLgorLS0tCisg c3JjL2lidXNrZXluYW1lcy5jIHwgMiArLQorIHNyYy9pYnVzc2hhcmUuaCAgICB8IDIgKy0KKyAy IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL3NyYy9pYnVza2V5bmFtZXMuYyBiL3NyYy9pYnVza2V5bmFtZXMuYworaW5kZXggZmU3 ODM2ZWUuLmMzNjY1MTI3IDEwMDY0NAorLS0tIGEvc3JjL2lidXNrZXluYW1lcy5jCisrKysgYi9z cmMvaWJ1c2tleW5hbWVzLmMKK0BAIC0xMjQsNyArMTI0LDcgQEAgbW9kaWZpZXJfbmFtZVtdID0g eworICAgICBOVUxMLCAgICAgICAgLy8gMzEKKyB9OworIAorLWNvbnN0IGdjaGFyICoKKytnY2hh ciAqCisgaWJ1c19rZXlfZXZlbnRfdG9fc3RyaW5nIChndWludCBrZXl2YWwsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBndWludCBtb2RpZmllcnMpCisgeworZGlmZiAtLWdpdCBhL3NyYy9p YnVzc2hhcmUuaCBiL3NyYy9pYnVzc2hhcmUuaAoraW5kZXggNGY1YTMwNmIuLmQ3MGFmMjlmIDEw MDY0NAorLS0tIGEvc3JjL2lidXNzaGFyZS5oCisrKysgYi9zcmMvaWJ1c3NoYXJlLmgKK0BAIC0z MjYsNyArMzI2LDcgQEAgdm9pZCAgICAgICAgICAgICBpYnVzX2ZyZWVfc3RydiAgICAgICAgIChn Y2hhciAgICAgICAgICAqKnN0cnYpCisgICoKKyAgKiBSZXR1cm5zOiBUaGUgbmFtZSBvZiBhIGtl eSBzeW1ib2wgYW5kIG1vZGlmaWVyLgorICAqLworLWNvbnN0IGdjaGFyICAgICAqaWJ1c19rZXlf ZXZlbnRfdG9fc3RyaW5nCisrZ2NoYXIgICAgICAgICAgICppYnVzX2tleV9ldmVudF90b19zdHJp bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGd1aW50ICAgICAg ICAgICBrZXl2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWludCAgICAgICAgICAgbW9kaWZpZXJzKTsKKyAKKy0tIAorMi4xNy4xCisKK0Zyb20gMGRkZTIz OWEzYzc4NmRjYzQ3OWUzMTAzY2NkNDk5MzhmY2I0NzE5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEtlbnRhcm8gSGF5YXNoaSA8aGF5YXNoaUBjbGVhci1jb2RlLmNvbT4KK0RhdGU6 IFR1ZSwgMjQgSnVsIDIwMTggMTU6MjA6NTEgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gYnVzOiB3 YXJuIGRlcHJlY2F0ZWQgLS1tZW0tcHJvZmlsZSBvcHRpb24KKworU2luY2UgR0xpYiAyLjQ2LCBt ZW1vcnkgcHJvZmlsaW5nIGZlYXR1cmUgZG9lcyBub3Qgd29yayBhbnltb3JlLgorCitHTGliIDIu NDYgb3IgbGF0ZXIgbWVhbnMgdGhhdCBVYnVudHUgMTYuMDQgb3IgbGF0ZXIuIFVidW50dQorMTQu MDQgKHRydXN0eSkgYXJlIHN0aWxsIHN1cHBvcnRlZCBhcyBMVFMgcGhhc2UsIGJ1dCBpdCBzZWVt cyB0aGF0CitHTGliIGlzIG9sZCBlbm91Z2ggKDIuNDApIHRvIGRyb3Agc3VwcG9ydC4KKworQXMg YSByZXN1bHQ6CisKKyAgKiBvbGRlciB0aGFuIEdMaWIgMi40NjogSnVzdCBkcm9wIHN1cHBvcnQK KyAgKiBHTGliIDIuNDYgb3IgbGF0ZXI6IFNob3cgYSB3YXJuaW5nIG1lc3NhZ2UgaWYgLS1tZW0t cHJvZmlsZSBpcworICAgIHVzZWQuCistLS0KKyBidXMvbWFpbi5jICAgfCAxNSArLS0tLS0tLS0t LS0tLS0KKyBjb25maWd1cmUuYWMgfCAgNCArKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYnVzL21haW4uYyBiL2J1 cy9tYWluLmMKK2luZGV4IDJmYjM3YjY5Li42ZjFmMzljYSAxMDA2NDQKKy0tLSBhL2J1cy9tYWlu LmMKKysrKyBiL2J1cy9tYWluLmMKK0BAIC0xNjAsMTggKzE2MCw2IEBAIGRhZW1vbiAoZ2ludCBu b2NoZGlyLCBnaW50IG5vY2xvc2UpCisgfQorICNlbmRpZgorIAorLS8qCistICogX3NpZ191c3Iy X2hhbmRsZXI6CistICogQHNpZzogdGhlIHNpZ25hbCBudW1iZXIsIHdoaWNoIGlzIHVzdWFsbHkg U0lHVVNSMi4KKy0gKgorLSAqIEEgc2lnbmFsIGhhbmRsZXIgZm9yIFNJR1VTUjIgc2lnbmFsLiBE dW1wIGEgc3VtbWFyeSBvZiBtZW1vcnkgdXNhZ2UgdG8gc3RkZXJyLgorLSAqLworLXN0YXRpYyB2 b2lkCistX3NpZ191c3IyX2hhbmRsZXIgKGludCBzaWcpCisteworLSAgICBnX21lbV9wcm9maWxl ICgpOworLX0KKy0KKyBnaW50CisgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqKmFyZ3YpCisgewor QEAgLTE5Niw4ICsxODQsNyBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICoqYXJndikKKyAgICAg fQorIAorICAgICBpZiAoZ19tZW1wcm8pIHsKKy0gICAgICAgIGdfbWVtX3NldF92dGFibGUgKGds aWJfbWVtX3Byb2ZpbGVyX3RhYmxlKTsKKy0gICAgICAgIHNpZ25hbCAoU0lHVVNSMiwgX3NpZ191 c3IyX2hhbmRsZXIpOworKyAgICAgICAgZ193YXJuaW5nICgiLS1tZW0tcHJvZmlsZSBubyBsb25n ZXIgd29ya3Mgd2l0aCB0aGUgR0xpYiAyLjQ2IG9yIGxhdGVyIik7CisgICAgIH0KKyAKKyAgICAg LyogY2hlY2sgdWlkICovCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFj CitpbmRleCBmMzMyYTc3NS4uOGUwMWMyNjYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysr KyBiL2NvbmZpZ3VyZS5hYworQEAgLTUyLDEyICs1MiwxMiBAQCBtNF9kZWZpbmUoW2lidXNfYmlu YXJ5X3ZlcnNpb25dLAorICAgICAgICAgICBbaWJ1c19tYWpvcl92ZXJzaW9uLmlidXNfYWJpX2N1 cnJlbnRfbWludXNfYWdlLmlidXNfYWJpX2FnZS5pYnVzX2FiaV9yZXZpc2lvbl0pCisgCisgIyBS ZXF1aXJlZCB2ZXJzaW9ucyBvZiBvdGhlciBwYWNrYWdlcy4KKy1tNF9kZWZpbmUoW2dsaWJfcmVx dWlyZWRfdmVyc2lvbl0sIFsyLjM2LjBdKQorK200X2RlZmluZShbZ2xpYl9yZXF1aXJlZF92ZXJz aW9uXSwgWzIuNDYuMF0pCisgCisgIyBWQUxBX1RBUkdFVF9HTElCX1ZFUlNJT04gaXMgdXNlZCBi eSB2YWxhYyAtLWNjb2RlIC0tdGFyZ2V0LWdsaWIgLgorICMgVkFMQV9UQVJHRVRfR0xJQl9WRVJT SU9OIGFuZCBnbGliX3JlcXVpcmVkX3ZlcnNpb24gd2lsbCBiZSBkaWZmZXJlbnQKKyAjIGluIHRo ZSBmdXR1cmUuCistVkFMQV9UQVJHRVRfR0xJQl9WRVJTSU9OPTIuMzYKKytWQUxBX1RBUkdFVF9H TElCX1ZFUlNJT049Mi40NgorIEFDX1NVQlNUKFZBTEFfVEFSR0VUX0dMSUJfVkVSU0lPTikKKyAK KyAjIEluaXQgYXV0b21ha2UuCistLSAKKzIuMTcuMQorCitGcm9tIDhkMzAyYzg1M2Y0ZTg4Zjgx NjUyZTBhZWVjYTg2ZmYxYjU3NzllY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDI0IEp1bCAy MDE4IDE2OjA0OjMxICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIFJIRUwgY29kZSByZXZpZXdzCisK Ky0tLQorIGNsaWVudC94MTEvbWFpbi5jICAgICAgICAgICAgIHwgIDQgKystLQorIHNldHVwL2Vu Z2luZXRyZWV2aWV3LnB5ICAgICAgIHwgMTAgKystLS0tLS0tLQorIHNldHVwL2lidXMtc2V0dXAu aW4gICAgICAgICAgIHwgIDUgKystLS0KKyBzcmMvZW1vamktcGFyc2VyLmMgICAgICAgICAgICB8 ICA4ICsrKysrLS0tCisgc3JjL2lidXNidXMuYyAgICAgICAgICAgICAgICAgfCAgOSArKysrKyst LS0KKyBzcmMvaWJ1c2NvbXBvc2V0YWJsZS5jICAgICAgICB8ICA0ICsrLS0KKyBzcmMvaWJ1c2Vu Z2luZXNpbXBsZS5jICAgICAgICB8IDIyICsrKysrKysrKysrKysrKysrLS0tLS0KKyBzcmMvaWJ1 c2hvdGtleS5jICAgICAgICAgICAgICB8ICA1ICsrKy0tCisgc3JjL2lidXNrZXltYXAuYyAgICAg ICAgICAgICAgfCAxMCArKysrKystLS0tCisgc3JjL2lidXNrZXluYW1lcy5jICAgICAgICAgICAg fCAgMyArLS0KKyBzcmMvaWJ1c3JlZ2lzdHJ5LmMgICAgICAgICAgICB8ICA0ICsrLS0KKyBzcmMv aWJ1c3NlcnZpY2UuYyAgICAgICAgICAgICB8IDEzICsrKysrKysrKy0tLS0KKyBzcmMvaWJ1c3ht bC5jICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKy0tLQorIHNyYy91bmljb2RlLXBhcnNlci5j ICAgICAgICAgIHwgIDMgKystCisgdXRpbC9JTWRraXQvRnJhbWVNZ3IuYyAgICAgICAgfCAgNyAr KysrKysrCisgdXRpbC9JTWRraXQvSU1Db25uLmMgICAgICAgICAgfCAgNiArKysrLS0KKyB1dGls L0lNZGtpdC9pMThuQ2xiay5jICAgICAgICB8IDEwICsrKysrKysrKysKKyB1dGlsL0lNZGtpdC9p MThuSWMuYyAgICAgICAgICB8IDExICsrKysrKysrKy0tCisgdXRpbC9JTWRraXQvaTE4bk1ldGhv ZC5jICAgICAgfCAgNCArKysrCisgdXRpbC9JTWRraXQvaTE4bk9mZnNldENhY2hlLmMgfCAyMSAr KysrKysrKysrKysrKysrKy0tLS0KKyB1dGlsL0lNZGtpdC9pMThuUHRIZHIuYyAgICAgICB8IDI4 ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyB1dGlsL0lNZGtpdC9pMThuVXRpbC5jICAg ICAgICB8IDEyICsrKysrKysrKy0tLQorIHV0aWwvSU1ka2l0L2kxOG5YLmMgICAgICAgICAgIHwg MTAgKysrKysrKystLQorIDIzIGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCA2MiBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NsaWVudC94MTEvbWFpbi5jIGIvY2xpZW50L3gx MS9tYWluLmMKK2luZGV4IDE1OWY0MzAzLi4zYmVhOTRiNyAxMDA2NDQKKy0tLSBhL2NsaWVudC94 MTEvbWFpbi5jCisrKysgYi9jbGllbnQveDExL21haW4uYworQEAgLTIsNyArMiw3IEBACisgLyog dmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA3LTIw MTUgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChD KSAyMDE1LTIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Cisr ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgUmVkIEhhdCwgSW5jLgor ICAqCisgICogbWFpbi5jOgorQEAgLTE5Niw3ICsxOTYsNyBAQCBfeGltX3ByZWVkaXRfY2FsbGJh Y2tfZHJhdyAoWElNUyB4aW1zLCBYMTFJQyAqeDExaWMsIGNvbnN0IGdjaGFyICpwcmVlZGl0X3N0 cmluZworICAgICAgICAgfQorICAgICB9CisgCistICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkr KykgeworKyAgICBmb3IgKGkgPSAwOyBmZWVkYmFjayAmJiBpIDwgbGVuOyBpKyspIHsKKyAgICAg ICAgIGZlZWRiYWNrW2ldID0gMDsKKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL3NldHVwL2VuZ2lu ZXRyZWV2aWV3LnB5IGIvc2V0dXAvZW5naW5ldHJlZXZpZXcucHkKK2luZGV4IDRkZTRhNTE2Li5h ZWE4NDU5MyAxMDA2NDQKKy0tLSBhL3NldHVwL2VuZ2luZXRyZWV2aWV3LnB5CisrKysgYi9zZXR1 cC9lbmdpbmV0cmVldmlldy5weQorQEAgLTMsNyArMyw4IEBACisgIyBpYnVzIC0gVGhlIElucHV0 IEJ1cworICMKKyAjIENvcHlyaWdodCAoYykgMjAwNy0yMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAu aHVhbmdAZ21haWwuY29tPgorLSMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTUgUmVkIEhhdCwgSW5j LgorKyMgQ29weXJpZ2h0IChjKSAyMDE0LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+CisrIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxOCBSZWQgSGF0LCBJbmMu CisgIworICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTkxLDcgKzkyLDYgQEAgY2xhc3MgRW5naW5lVHJlZVZp ZXcoR3RrLlRyZWVWaWV3KToKKyAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgidGV4dC1j b2x1bW4iLCAwKQorICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJoYXMtZW50cnkiLCBG YWxzZSkKKyAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgiZWRpdGFibGUiLCBUcnVlKQor LSAgICAgICAgcmVuZGVyZXIuY29ubmVjdCgiY2hhbmdlZCIsIHNlbGYuX19lbmdpbmVfbGF5b3V0 X2NoYW5nZWRfY2IpCisgCisgICAgICAgICBjb2x1bW4gPSBHdGsuVHJlZVZpZXdDb2x1bW4oXygi S2JkIikpCisgICAgICAgICBjb2x1bW4uc2V0X2V4cGFuZChGYWxzZSkKK0BAIC0xNjcsMTIgKzE2 Nyw2IEBAIGNsYXNzIEVuZ2luZVRyZWVWaWV3KEd0ay5UcmVlVmlldyk6CisgICAgICAgICByZW5k ZXJlci5zZXRfcHJvcGVydHkoInRleHQiLCBsYXlvdXQpCisgICAgICAgICByZW5kZXJlci5zZXRf cHJvcGVydHkoIndlaWdodCIsIFBhbmdvLldlaWdodC5OT1JNQUwpCisgCistICAgIGRlZiBfX2Vu Z2luZV9sYXlvdXRfY2hhbmdlZF9jYihzZWxmLCBjb21ibywgcGF0aCwgaXQpOgorLSAgICAgICAg cmV0dXJuCistICAgICAgICBpID0gc2VsZi5fX21vZGVsLmdldF9pdGVyKHBhdGgpCistICAgICAg ICBsYXlvdXQgPSBjb21iby5nZXRfcHJvcGVydHkoIm1vZGVsIikuZ2V0X3ZhbHVlKGl0LCAwKQor LSAgICAgICAgc2VsZi5fX21vZGVsLnNldF92YWx1ZShpLCAxLCBsYXlvdXQpCistCisgICAgIGRl ZiBkb19nZXRfcHJvcGVydHkoc2VsZiwgcHJvcCk6CisgICAgICAgICBpZiBwcm9wLm5hbWUgPT0g ImFjdGl2ZS1lbmdpbmUiOgorICAgICAgICAgICAgIGl0ID0gc2VsZi5nZXRfc2VsZWN0ZWRfaXRl cigpCitkaWZmIC0tZ2l0IGEvc2V0dXAvaWJ1cy1zZXR1cC5pbiBiL3NldHVwL2lidXMtc2V0dXAu aW4KK2luZGV4IGUwZWQ5ZmY1Li5iYjVjODVjZiAxMDA2NDQKKy0tLSBhL3NldHVwL2lidXMtc2V0 dXAuaW4KKysrKyBiL3NldHVwL2lidXMtc2V0dXAuaW4KK0BAIC0zLDcgKzMsOCBAQAorICMgaWJ1 cyAtIFRoZSBJbnB1dCBCdXMKKyAjCisgIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBQZW5nIEh1 YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0jIENvcHlyaWdodCAoYykgMjAwNy0yMDEw IFJlZCBIYXQsIEluYy4KKysjIENvcHlyaWdodCAoYykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysjIENvcHlyaWdodCAoYykgMjAwNy0yMDE4IFJlZCBI YXQsIEluYy4KKyAjCisgIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtMjEsOCArMjIsNiBAQAorICMgVVNBCisg CisgcHJlZml4PUBwcmVmaXhACistZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAorLWRhdGFyb290 ZGlyPUBkYXRhcm9vdGRpckAKKyBsaWJleGVjZGlyPUBsaWJleGVjZGlyQAorIGV4cG9ydCBJQlVT X1BSRUZJWD1AcHJlZml4QAorIGV4cG9ydCBJQlVTX0RBVEFST09URElSPUBkYXRhcm9vdGRpckAK K2RpZmYgLS1naXQgYS9zcmMvZW1vamktcGFyc2VyLmMgYi9zcmMvZW1vamktcGFyc2VyLmMKK2lu ZGV4IDBmN2M4Y2ZiLi5iOGY0ZGNmMSAxMDA2NDQKKy0tLSBhL3NyYy9lbW9qaS1wYXJzZXIuYwor KysrIGIvc3JjL2Vtb2ppLXBhcnNlci5jCitAQCAtNDY2LDcgKzQ2Niw4IEBAIHVuaWNvZGVfYW5u b3RhdGlvbnNfcGFyc2VfeG1sX2ZpbGUgKGNvbnN0IGdjaGFyICAqZmlsZW5hbWUsCisgICAgIGdf cmV0dXJuX3ZhbF9pZl9mYWlsIChsaXN0ICE9IE5VTEwsIEZBTFNFKTsKKyAKKyAgICAgaWYgKCFn X2ZpbGVfZ2V0X2NvbnRlbnRzIChmaWxlbmFtZSwgJmNvbnRlbnQsICZsZW5ndGgsICZlcnJvcikp IHsKKy0gICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBsb2FkICVzOiAlcyIsIGZpbGVuYW1l LCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbG9hZCAl czogJXMiLCBmaWxlbmFtZSwKKysgICAgICAgICAgICAgICAgICAgZXJyb3IgPyBlcnJvci0+bWVz c2FnZSA6ICIiKTsKKyAgICAgICAgIGdvdG8gZmFpbGVkX3RvX3BhcnNlX3VuaWNvZGVfYW5ub3Rh dGlvbnM7CisgICAgIH0KKyAKK0BAIC02MTEsNyArNjEyLDcgQEAgdW5pY29kZV9lbW9qaV90ZXN0 X3BhcnNlX2xpbmUgKGNvbnN0IGdjaGFyICpsaW5lLAorICAgICAgICAgICAgIGludCBpOworICAg ICAgICAgICAgIGdjaGFyICphbXA7CisgICAgICAgICAgICAgc2VnbWVudHMgPSBnX3N0cnNwbGl0 KGRhdGEtPnN1YmNhdGVnb3J5LCAiLSIsIC0xKTsKKy0gICAgICAgICAgICBmb3IgKGkgPSAwOyBz ZWdtZW50c1tpXTsgaSsrKSB7CisrICAgICAgICAgICAgZm9yIChpID0gMDsgc2VnbWVudHMgJiYg c2VnbWVudHNbaV07IGkrKykgeworICAgICAgICAgICAgICAgICBpZiAoKGFtcCA9IHN0cmNociAo c2VnbWVudHNbaV0sICcmJykpICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChh bXAgLSBzZWdtZW50c1tpXSA8PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgZ193YXJu aW5nICgiV3JvbmcgYW1wZXJzYW5kIik7CitAQCAtNjY1LDcgKzY2Niw4IEBAIHVuaWNvZGVfZW1v amlfdGVzdF9wYXJzZV9maWxlIChjb25zdCBnY2hhciAqZmlsZW5hbWUsCisgICAgIGdfcmV0dXJu X3ZhbF9pZl9mYWlsIChsaXN0ICE9IE5VTEwsIEZBTFNFKTsKKyAKKyAgICAgaWYgKCFnX2ZpbGVf Z2V0X2NvbnRlbnRzIChmaWxlbmFtZSwgJmNvbnRlbnQsICZsZW5ndGgsICZlcnJvcikpIHsKKy0g ICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBsb2FkICVzOiAlcyIsIGZpbGVuYW1lLCBlcnJv ci0+bWVzc2FnZSk7CisrICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbG9hZCAlczogJXMi LAorKyAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6 ICIiKTsKKyAgICAgICAgIGdvdG8gZmFpbGVkX3RvX3BhcnNlX3VuaWNvZGVfZW1vamlfdGVzdDsK KyAgICAgfQorICAgICBoZWFkID0gZW5kID0gY29udGVudDsKK2RpZmYgLS1naXQgYS9zcmMvaWJ1 c2J1cy5jIGIvc3JjL2lidXNidXMuYworaW5kZXggOTg4MjBlOGEuLjMwYzJlMzIxIDEwMDY0NAor LS0tIGEvc3JjL2lidXNidXMuYworKysrIGIvc3JjL2lidXNidXMuYworQEAgLTIsNyArMiw3IEBA CisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAq IENvcHlyaWdodCAoQykgMjAwOC0yMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwu Y29tPgorLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFRha2FvIEZ1aml3YXJhIDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IFRha2FvIEZ1 aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorICAqIENvcHlyaWdodCAoQykgMjAw OC0yMDE2IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKK0BAIC0yMiw2ICsyMiw3IEBACisg ICovCisgCisgI2luY2x1ZGUgImlidXNidXMuaCIKKysjaW5jbHVkZSA8ZXJybm8uaD4KKyAjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisgI2luY2x1ZGUgPHVu aXN0ZC5oPgorQEAgLTU2NSw3ICs1NjYsOSBAQCBpYnVzX2J1c19pbml0IChJQnVzQnVzICpidXMp CisgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorICAgICAgICAgaWYgKGJ1Zi5zdF9t b2RlICE9IChTX0lGRElSIHwgU19JUldYVSkpIHsKKy0gICAgICAgICAgICBnX2NobW9kIChwYXRo LCAwNzAwKTsKKysgICAgICAgICAgICBlcnJubyA9IDA7CisrICAgICAgICAgICAgaWYgKGdfY2ht b2QgKHBhdGgsIDA3MDApKQorKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJjaG1vZCBmYWls ZWQ6ICVzIiwgZXJybm8gPyBnX3N0cmVycm9yIChlcnJubykgOiAiIik7CisgICAgICAgICB9Cisg ICAgIH0KKyAKK0BAIC02NzMsNyArNjc2LDcgQEAgaWJ1c19idXNfY29uc3RydWN0b3IgKEdUeXBl ICAgICAgICAgICAgICAgICAgdHlwZSwKKyAgICAgICAgICAgICBpYnVzX2J1c19jb25uZWN0IChf YnVzKTsKKyAgICAgfQorICAgICBlbHNlIHsKKy0gICAgICAgIG9iamVjdCA9IGdfb2JqZWN0X3Jl ZiAoX2J1cyk7CisrICAgICAgICBvYmplY3QgPSBnX29iamVjdF9yZWYgKEdfT0JKRUNUIChfYnVz KSk7CisgICAgIH0KKyAKKyAgICAgcmV0dXJuIG9iamVjdDsKK2RpZmYgLS1naXQgYS9zcmMvaWJ1 c2NvbXBvc2V0YWJsZS5jIGIvc3JjL2lidXNjb21wb3NldGFibGUuYworaW5kZXggZDQ3M2Y1ODEu LmI4NDNlN2UxIDEwMDY0NAorLS0tIGEvc3JjL2lidXNjb21wb3NldGFibGUuYworKysrIGIvc3Jj L2lidXNjb21wb3NldGFibGUuYworQEAgLTEsNyArMSw3IEBACisgLyogLSotIG1vZGU6IEM7IGMt YmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLworIC8qIGlidXMg LSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgUGVuZyBIdWFuZyA8 c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgVGFr YW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChD KSAyMDEzLTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Cisg ICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTUzMiw3ICs1MzIsNyBAQCBpYnVzX2NvbXBvc2VfdGFi bGVfc2VyaWFsaXplIChJQnVzQ29tcG9zZVRhYmxlICpjb21wb3NlX3RhYmxlKQorIAorICAgICB2 YXJpYW50X2RhdGEgPSBnX3ZhcmlhbnRfbmV3X2ZpeGVkX2FycmF5IChHX1ZBUklBTlRfVFlQRV9V SU5UMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bXBvc2VfdGFibGUtPmRhdGEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluZGV4X3N0cmlkZSAqIG5fc2VxcywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGdzaXplKWluZGV4X3N0cmlkZSAqIG5fc2VxcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChndWlu dDE2KSk7CisgICAgIGlmICh2YXJpYW50X2RhdGEgPT0gTlVMTCkgeworICAgICAgICAgZ193YXJu aW5nICgiQ291bGQgbm90IGNoYW5nZSBjb21wb3NlIGRhdGEgdG8gR1ZhcmlhbnQuIik7CitkaWZm IC0tZ2l0IGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYyBiL3NyYy9pYnVzZW5naW5lc2ltcGxlLmMK K2luZGV4IDY4ZDZmYjFlLi5hYWU2YjhkZiAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzZW5naW5lc2lt cGxlLmMKKysrKyBiL3NyYy9pYnVzZW5naW5lc2ltcGxlLmMKK0BAIC0yLDcgKzIsNyBAQAorIC8q IHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5 cmlnaHQgKEMpIDIwMTQgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICog Q29weXJpZ2h0IChDKSAyMDE1LTIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRh a2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgUmVk IEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorQEAgLTgxNCw5ICs4MTQsMjEgQEAgY2hlY2tfbm9y bWFsaXplX25mYyAoZ3VuaWNoYXIqIGNvbWJpbmF0aW9uX2J1ZmZlciwgZ2ludCBuX2NvbXBvc2Up CisgICAgICAgICBnX2ZyZWUgKG5mY190ZW1wKTsKKyAKKyAgICAgICAgIGlmIChuX2NvbXBvc2Ug PiAyKSB7CistICAgICAgICAgICAgdGVtcF9zd2FwID0gY29tYmluYXRpb25fYnVmZmVyX3RlbXBb aSAlIChuX2NvbXBvc2UgLSAxKSArIDFdOworLSAgICAgICAgICAgIGNvbWJpbmF0aW9uX2J1ZmZl cl90ZW1wW2kgJSAobl9jb21wb3NlIC0gMSkgKyAxXSA9IGNvbWJpbmF0aW9uX2J1ZmZlcl90ZW1w WyhpKzEpICUgKG5fY29tcG9zZSAtIDEpICsgMV07CistICAgICAgICAgICAgY29tYmluYXRpb25f YnVmZmVyX3RlbXBbKGkrMSkgJSAobl9jb21wb3NlIC0gMSkgKyAxXSA9IHRlbXBfc3dhcDsKKysg ICAgICAgICAgICBnaW50IGogPSBpICUgKG5fY29tcG9zZSAtIDEpICsgMTsKKysgICAgICAgICAg ICBnaW50IGsgPSAoaSsxKSAlIChuX2NvbXBvc2UgLSAxKSArIDE7CisrICAgICAgICAgICAgaWYg KGogPj0gSUJVU19NQVhfQ09NUE9TRV9MRU4pIHsKKysgICAgICAgICAgICAgICAgZ193YXJuaW5n ICgiaiA+PSBJQlVTX01BWF9DT01QT1NFX0xFTiBmb3IgIiBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgImNvbWJpbmF0aW9uX2J1ZmZlcl90ZW1wIik7CisrICAgICAgICAgICAgICAgIGJy ZWFrOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBpZiAoayA+PSBJQlVTX01BWF9DT01Q T1NFX0xFTikgeworKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJrID49IElCVVNfTUFYX0NP TVBPU0VfTEVOIGZvciAiIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tYmluYXRp b25fYnVmZmVyX3RlbXAiKTsKKysgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAg fQorKyAgICAgICAgICAgIHRlbXBfc3dhcCA9IGNvbWJpbmF0aW9uX2J1ZmZlcl90ZW1wW2pdOwor KyAgICAgICAgICAgIGNvbWJpbmF0aW9uX2J1ZmZlcl90ZW1wW2pdID0gY29tYmluYXRpb25fYnVm ZmVyX3RlbXBba107CisrICAgICAgICAgICAgY29tYmluYXRpb25fYnVmZmVyX3RlbXBba10gPSB0 ZW1wX3N3YXA7CisgICAgICAgICB9CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgYnJlYWs7 CitAQCAtMTA2Nyw3ICsxMDc5LDcgQEAgaWJ1c19lbmdpbmVfc2ltcGxlX3Byb2Nlc3Nfa2V5X2V2 ZW50IChJQnVzRW5naW5lICplbmdpbmUsCisgICAgIGdib29sZWFuIGNvbXBvc2VfZmluaXNoOwor ICAgICBndW5pY2hhciBvdXRwdXRfY2hhcjsKKyAKKy0gICAgd2hpbGUgKHByaXYtPmNvbXBvc2Vf YnVmZmVyW25fY29tcG9zZV0gIT0gMCAmJiBuX2NvbXBvc2UgPCBFTU9KSV9TT1VSQ0VfTEVOKQor KyAgICB3aGlsZSAobl9jb21wb3NlIDwgRU1PSklfU09VUkNFX0xFTiAmJiBwcml2LT5jb21wb3Nl X2J1ZmZlcltuX2NvbXBvc2VdICE9IDApCisgICAgICAgICBuX2NvbXBvc2UrKzsKKyAgICAgaWYg KG5fY29tcG9zZSA+PSBFTU9KSV9TT1VSQ0VfTEVOKSB7CisgICAgICAgICBnX3dhcm5pbmcgKCJj b3Btb3NlIHRhYmxlIGJ1ZmZlciBpcyBmdWxsLiIpOworZGlmZiAtLWdpdCBhL3NyYy9pYnVzaG90 a2V5LmMgYi9zcmMvaWJ1c2hvdGtleS5jCitpbmRleCAwY2RmYTc4Yi4uMDBkNTAyZmMgMTAwNjQ0 CistLS0gYS9zcmMvaWJ1c2hvdGtleS5jCisrKysgYi9zcmMvaWJ1c2hvdGtleS5jCitAQCAtMiw3 ICsyLDggQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIElCdXMgLSBUaGUgSW5wdXQg QnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFu Z0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgor KyAqIENvcHlyaWdodCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCisgICoK KyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworQEAgLTQ1Myw3ICs0NTQsNyBAQCBpYnVzX2hvdGtleV9wcm9maWxl X3JlbW92ZV9ob3RrZXkgKElCdXNIb3RrZXlQcm9maWxlICpwcm9maWxlLAorICAgICAgICAgICAg IGJyZWFrOworICAgICB9CisgCistICAgIGdfYXNzZXJ0IChwMi0+ZXZlbnQgPT0gZXZlbnQpOwor KyAgICBnX2Fzc2VydCAocDIgJiYgcDItPmV2ZW50ID09IGV2ZW50KTsKKyAKKyAgICAgcDItPmhv dGtleXMgPSBnX2xpc3RfcmVtb3ZlIChwMi0+aG90a2V5cywgcDEpOworICAgICBpZiAocDItPmhv dGtleXMgPT0gTlVMTCkgeworZGlmZiAtLWdpdCBhL3NyYy9pYnVza2V5bWFwLmMgYi9zcmMvaWJ1 c2tleW1hcC5jCitpbmRleCBkNzQyOGM1ZC4uMjdhNTY3NTQgMTAwNjQ0CistLS0gYS9zcmMvaWJ1 c2tleW1hcC5jCisrKysgYi9zcmMvaWJ1c2tleW1hcC5jCitAQCAtMiw3ICsyLDggQEAKKyAvKiB2 aW06c2V0IGV0IHN0cz00OiAqLworIC8qIElCdXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Cist ICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAo QykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworQEAgLTcyLDcgKzczLDcgQEAgc3RhdGljIGdib29sZWFuCisgaWJ1c19rZXltYXBfcGFyc2Vf bGluZSAoZ2NoYXIgICpzdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgS0VZTUFQICBrZXlt YXApCisgeworLSAgICBnY2hhciAqcDEsICpwMjsKKysgICAgZ2NoYXIgKnAxLCAqcDIsIGNoOwor ICAgICBnaW50IGk7CisgICAgIGd1aW50IGtleWNvZGU7CisgICAgIGd1aW50IGtleXN5bTsKK0BA IC0xMzksMTEgKzE0MCwxMiBAQCBpYnVzX2tleW1hcF9wYXJzZV9saW5lIChnY2hhciAgKnN0ciwK KyAgICAgaWYgKGtleXN5bSA9PSBJQlVTX0tFWV9Wb2lkU3ltYm9sKQorICAgICAgICAgcmV0dXJu IEZBTFNFOworIAorKyAgICAvKiBEbyBub3QgYXNzaWduICpwMSB0byBnX2FzY2lpX2lzYWxwaGEo KSBkaXJlY3RseSBmb3IgdGhlIHN5bnRheCBjaGVjayAqLworICAgICBpZiAoaSA9PSAwICYmCisg ICAgICAgICBzdHJuY21wIChwMiwgImFkZHVwcGVyIiwgc2l6ZW9mICgiYWRkdXBwZXIiKSAtIDEp ID09IDAgJiYKKy0gICAgICAgIGdfYXNjaWlfaXNhbHBoYSAoKnAxKSkgeworKyAgICAgICAgKGNo ID0gKnAxKSAmJiBnX2FzY2lpX2lzYWxwaGEgKGNoKSkgeworICAgICAgICAgZ2NoYXIgYnVmW10g PSAiYSI7CistICAgICAgICBidWZbMF0gPSBnX2FzY2lpX3RvdXBwZXIoKnAxKTsKKysgICAgICAg IGJ1ZlswXSA9IGdfYXNjaWlfdG91cHBlcihjaCk7CisgICAgICAgICBrZXltYXBba2V5Y29kZV1b MF0gPSBrZXltYXBba2V5Y29kZV1bM10gPSBrZXlzeW07CisgICAgICAgICBrZXltYXBba2V5Y29k ZV1bMV0gPSBrZXltYXBba2V5Y29kZV1bMl0gPSBpYnVzX2tleXZhbF9mcm9tX25hbWUgKGJ1Zik7 CisgCitkaWZmIC0tZ2l0IGEvc3JjL2lidXNrZXluYW1lcy5jIGIvc3JjL2lidXNrZXluYW1lcy5j CitpbmRleCBjMzY2NTEyNy4uMDg1MDU1OTggMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2tleW5hbWVz LmMKKysrKyBiL3NyYy9pYnVza2V5bmFtZXMuYworQEAgLTE5Miw4ICsxOTIsNyBAQCBpYnVzX2tl eV9ldmVudF9mcm9tX3N0cmluZyAoY29uc3QgZ2NoYXIgKnN0cmluZywKKyAgICAgaWYgKCprZXl2 YWwgIT0gSUJVU19LRVlfVm9pZFN5bWJvbCkKKyAgICAgICAgIHJldHZhbCA9IFRSVUU7CisgX291 dDoKKy0gICAgaWYgKHRva2VucykKKy0gICAgICAgIGdfc3RyZnJlZXYgKHRva2Vucyk7CisrICAg IGdfc3RyZnJlZXYgKHRva2Vucyk7CisgICAgIHJldHVybiByZXR2YWw7CisgfQorIAorZGlmZiAt LWdpdCBhL3NyYy9pYnVzcmVnaXN0cnkuYyBiL3NyYy9pYnVzcmVnaXN0cnkuYworaW5kZXggZGZk YTJhZjMuLmIwNDgzOTk4IDEwMDY0NAorLS0tIGEvc3JjL2lidXNyZWdpc3RyeS5jCisrKysgYi9z cmMvaWJ1c3JlZ2lzdHJ5LmMKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6 ICovCisgLyogYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAxNSBQZW5n IEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg VGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0 IChDKSAyMDE1LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ CisgICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKK0BA IC00NzIsNyArNDcyLDcgQEAgaWJ1c19yZWdpc3RyeV9zYXZlX2NhY2hlX2ZpbGUgKElCdXNSZWdp c3RyeSAqcmVnaXN0cnksCisgICAgIH0KKyAKKyAgICAgaWYgKGdfc3RyX2hhc19wcmVmaXggKGZp bGVuYW1lLCBnX2dldF91c2VyX2NhY2hlX2RpciAoKSkpIHsKKy0gICAgICAgIGdfY2htb2QgKGZp bGVuYW1lLCAwNjQ0KTsKKysgICAgICAgIGdfd2Fybl9pZl9mYWlsICghZ19jaG1vZCAoZmlsZW5h bWUsIDA2NDQpKTsKKyAgICAgfQorIAorICAgICByZXR1cm4gVFJVRTsKK2RpZmYgLS1naXQgYS9z cmMvaWJ1c3NlcnZpY2UuYyBiL3NyYy9pYnVzc2VydmljZS5jCitpbmRleCAyMTk5ZDYxZC4uODAy MzUyN2IgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3NlcnZpY2UuYworKysrIGIvc3JjL2lidXNzZXJ2 aWNlLmMKK0BAIC0yLDcgKzIsOCBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1 cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBQZW5nIEh1YW5n IDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBS ZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggVGFrYW8gRnVqaXdhcmEg PHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTgg UmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC01MDAsMTIgKzUwMSwxNCBA QCBpYnVzX3NlcnZpY2VfcmVnaXN0ZXIgKElCdXNTZXJ2aWNlICAgICAqc2VydmljZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIEdEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICoqZXJyb3IpCisgeworKyAgICBHQXJyYXkg KmFycmF5ID0gTlVMTDsKKysgICAgR0FycmF5ICppbnRlcmZhY2VzOworKyAgICBHREJ1c0ludGVy ZmFjZUluZm8gKipwOworKworICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoSUJVU19JU19TRVJW SUNFIChzZXJ2aWNlKSwgRkFMU0UpOworICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoR19JU19E QlVTX0NPTk5FQ1RJT04gKGNvbm5lY3Rpb24pLCBGQUxTRSk7CisgICAgIGdfcmV0dXJuX3ZhbF9p Zl9mYWlsIChlcnJvciA9PSBOVUxMIHx8ICplcnJvciA9PSBOVUxMLCBGQUxTRSk7CisgCistICAg IEdBcnJheSAqYXJyYXkgPSBOVUxMOworLQorICAgICBpZiAoZ19oYXNoX3RhYmxlX2xvb2t1cCAo c2VydmljZS0+cHJpdi0+dGFibGUsIGNvbm5lY3Rpb24pKSB7CisgICAgICAgICBpZiAoZXJyb3Ip IHsKKyAgICAgICAgICAgICAqZXJyb3IgPSBnX2Vycm9yX25ldyAoR19EQlVTX0VSUk9SLCBHX0RC VVNfRVJST1JfT0JKRUNUX1BBVEhfSU5fVVNFLAorQEAgLTUxNSw3ICs1MTgsOSBAQCBpYnVzX3Nl cnZpY2VfcmVnaXN0ZXIgKElCdXNTZXJ2aWNlICAgICAqc2VydmljZSwKKyAgICAgICAgIGdvdG8g ZXJyb3Jfb3V0OworICAgICB9CisgCistICAgIEdEQnVzSW50ZXJmYWNlSW5mbyAqKnAgPSAoR0RC dXNJbnRlcmZhY2VJbmZvICoqKUlCVVNfU0VSVklDRV9HRVRfQ0xBU1MgKHNlcnZpY2UpLT5pbnRl cmZhY2VzLT5kYXRhOworKyAgICBpbnRlcmZhY2VzID0gSUJVU19TRVJWSUNFX0dFVF9DTEFTUyAo c2VydmljZSktPmludGVyZmFjZXM7CisrICAgIGdfYXNzZXJ0IChpbnRlcmZhY2VzKTsKKysgICAg cCA9IChHREJ1c0ludGVyZmFjZUluZm8gKiopaW50ZXJmYWNlcy0+ZGF0YTsKKyAgICAgaWYgKCpw ID09IE5VTEwpIHsKKyAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICplcnJvciA9 IGdfZXJyb3JfbmV3IChHX0RCVVNfRVJST1IsIEdfREJVU19FUlJPUl9GQUlMRUQsCitkaWZmIC0t Z2l0IGEvc3JjL2lidXN4bWwuYyBiL3NyYy9pYnVzeG1sLmMKK2luZGV4IDVjYWNjNWFmLi4yNjZh ODIwNyAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzeG1sLmMKKysrKyBiL3NyYy9pYnVzeG1sLmMKK0BA IC0yLDcgKzIsOCBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogYnVzIC0gVGhlIElu cHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAu aHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IFJlZCBIYXQsIElu Yy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggUmVkIEhhdCwgSW5jLgor ICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC0yNDAsOCArMjQxLDEwIEBAIGlidXNfeG1sX3BhcnNl X2ZpbGUgKGNvbnN0IGdjaGFyICpmaWxlbmFtZSkKKyAgICAgICAgIHJldHVybiBub2RlOworICAg ICB9IHdoaWxlICgwKTsKKyAKKy0gICAgZ193YXJuaW5nICgiUGFyc2UgJXMgZmFpbGVkOiAlcyIs IGZpbGVuYW1lLCBlcnJvci0+bWVzc2FnZSk7CistICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOwor KyAgICBpZiAoZXJyb3IpIHsKKysgICAgICAgIGdfd2FybmluZyAoIlBhcnNlICVzIGZhaWxlZDog JXMiLCBmaWxlbmFtZSwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAgZ19lcnJvcl9mcmVlIChl cnJvcik7CisrICAgIH0KKyAgICAgZ19tYXJrdXBfcGFyc2VfY29udGV4dF9mcmVlIChjb250ZXh0 KTsKKyAgICAgcmV0dXJuIE5VTEw7CisgfQorZGlmZiAtLWdpdCBhL3NyYy91bmljb2RlLXBhcnNl ci5jIGIvc3JjL3VuaWNvZGUtcGFyc2VyLmMKK2luZGV4IGU5OGM2ZDVmLi4wZTRmZThiNyAxMDA2 NDQKKy0tLSBhL3NyYy91bmljb2RlLXBhcnNlci5jCisrKysgYi9zcmMvdW5pY29kZS1wYXJzZXIu YworQEAgLTI4MSw3ICsyODEsOCBAQCB1Y2RfcGFyc2VfZmlsZSAoY29uc3QgZ2NoYXIgKmZpbGVu YW1lLAorICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAobGlzdCAhPSBOVUxMLCBGQUxTRSk7Cisg CisgICAgIGlmICghZ19maWxlX2dldF9jb250ZW50cyAoZmlsZW5hbWUsICZjb250ZW50LCAmbGVu Z3RoLCAmZXJyb3IpKSB7CistICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbG9hZCAlczog JXMiLCBmaWxlbmFtZSwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAgZ193YXJuaW5nICgiRmFp bGVkIHRvIGxvYWQgJXM6ICVzIiwKKysgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIGVycm9y ID8gZXJyb3ItPm1lc3NhZ2UgOiAiIik7CisgICAgICAgICBnb3RvIGZhaWxlZF90b19wYXJzZV91 Y2RfbmFtZXNfbGlzdDsKKyAgICAgfQorICAgICBoZWFkID0gZW5kID0gY29udGVudDsKK2RpZmYg LS1naXQgYS91dGlsL0lNZGtpdC9GcmFtZU1nci5jIGIvdXRpbC9JTWRraXQvRnJhbWVNZ3IuYwor aW5kZXggOWI0OTc5NDguLjA4NGI4ODEwIDEwMDY0NAorLS0tIGEvdXRpbC9JTWRraXQvRnJhbWVN Z3IuYworKysrIGIvdXRpbC9JTWRraXQvRnJhbWVNZ3IuYworQEAgLTI3LDYgKzI3LDcgQEAgU09G VFdBUkUuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworIAorICNpbmNsdWRlIDxYMTEvWGxpYmludC5oPgorKyNpbmNs dWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgIkZyYW1lTWdy LmgiCisgCitAQCAtOTg5LDYgKzk5MCw3IEBAIHN0YXRpYyBYaW1GcmFtZVR5cGUgRnJhbWVJbnN0 R2V0TmV4dFR5cGUoRnJhbWVJbnN0IGZpLCBYaW1GcmFtZVR5cGVJbmZvIGluZm8pCisgICAgICAg ICAgICAgd2hpbGUgKG51bWJlciA+IDApCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICBpID0gX0ZyYW1lSW5zdERlY3JlbWVudCAoZmktPnRlbXBsYXRlLCBpKTsKKysgICAgICAgICAg ICAgICAgYXNzZXJ0IChpID49IDApOworICAgICAgICAgICAgICAgICBzaXplICs9IF9GcmFtZUlu c3RHZXRJdGVtU2l6ZSAoZmksIGkpOworICAgICAgICAgICAgICAgICBudW1iZXItLTsKKyAgICAg ICAgICAgICB9CitAQCAtMTEzOCw2ICsxMTQwLDcgQEAgc3RhdGljIFhpbUZyYW1lVHlwZSBGcmFt ZUluc3RQZWVrTmV4dFR5cGUgKEZyYW1lSW5zdCBmaSwgWGltRnJhbWVUeXBlSW5mbyBpbmZvKQor ICAgICAgICAgICAgIHdoaWxlIChudW1iZXIgPiAwKQorICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgaSA9IF9GcmFtZUluc3REZWNyZW1lbnQgKGZpLT50ZW1wbGF0ZSwgaSk7CisrICAg ICAgICAgICAgICAgIGFzc2VydCAoaSA+PSAwKTsKKyAgICAgICAgICAgICAgICAgc2l6ZSArPSBf RnJhbWVJbnN0R2V0SXRlbVNpemUgKGZpLCBpKTsKKyAgICAgICAgICAgICAgICAgbnVtYmVyLS07 CisgICAgICAgICAgICAgfQorQEAgLTEzNTYsNiArMTM1OSw3IEBAIHN0YXRpYyBGbVN0YXR1cyBG cmFtZUluc3RTZXRTaXplIChGcmFtZUluc3QgZmksIGludCBudW0pCisgCSAgICBicmVhazsKKyAg ICAgICAgIH0KKyAgICAgICAgIC8qZW5kc3dpdGNoKi8KKysgICAgICAgIGFzc2VydCAoaSA+PSAw KTsKKyAgICAgICAgIGkgPSBfRnJhbWVJbnN0SW5jcmVtZW50KGZpLT50ZW1wbGF0ZSwgaSk7Cisg ICAgIH0KKyAgICAgLyplbmR3aGlsZSovCitAQCAtMTQ1Nyw2ICsxNDYxLDcgQEAgc3RhdGljIEZt U3RhdHVzIEZyYW1lSW5zdFNldEl0ZXJDb3VudCAoRnJhbWVJbnN0IGZpLCBpbnQgbnVtKQorIAkg ICAgYnJlYWs7CisgICAgICAgICB9CisgICAgICAgICAvKmVuZHN3aXRjaCovCisrICAgICAgICBh c3NlcnQgKGkgPj0gMCk7CisgICAgICAgICBpID0gX0ZyYW1lSW5zdEluY3JlbWVudCAoZmktPnRl bXBsYXRlLCBpKTsKKyAgICAgfQorICAgICAvKmVuZHdoaWxlKi8KK0BAIC0xNDc0LDYgKzE0Nzks NyBAQCBzdGF0aWMgaW50IEZyYW1lSW5zdEdldFRvdGFsU2l6ZSAoRnJhbWVJbnN0IGZpKQorICAg ICB3aGlsZSAoZmktPnRlbXBsYXRlW2ldLnR5cGUgIT0gRU9MKQorICAgICB7CisgICAgICAgICBz aXplICs9IF9GcmFtZUluc3RHZXRJdGVtU2l6ZSAoZmksIGkpOworKyAgICAgICAgYXNzZXJ0IChp ID49IDApOworICAgICAgICAgaSA9IF9GcmFtZUluc3RJbmNyZW1lbnQgKGZpLT50ZW1wbGF0ZSwg aSk7CisgICAgIH0KKyAgICAgLyplbmR3aGlsZSovCitAQCAtMjQxOSw2ICsyNDI1LDcgQEAgc3Rh dGljIGludCBfRnJhbWVJbnN0R2V0SXRlbVNpemUgKEZyYW1lSW5zdCBmaSwgaW50IGN1cl9ubykK KyAgICAgICAgICAgICBzaXplID0gMDsKKyAgICAgICAgICAgICB3aGlsZSAobnVtYmVyID4gMCkK KyAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIGFzc2VydCAoaSA+PSAwKTsKKyAgICAg ICAgICAgICAgICAgaSA9IF9GcmFtZUluc3REZWNyZW1lbnQgKGZpLT50ZW1wbGF0ZSwgaSk7Cisg ICAgICAgICAgICAgICAgIHNpemUgKz0gX0ZyYW1lSW5zdEdldEl0ZW1TaXplIChmaSwgaSk7Cisg ICAgICAgICAgICAgICAgIG51bWJlci0tOworZGlmZiAtLWdpdCBhL3V0aWwvSU1ka2l0L0lNQ29u bi5jIGIvdXRpbC9JTWRraXQvSU1Db25uLmMKK2luZGV4IDZkMzY1ODkzLi44ZThiOGVjZSAxMDA2 NDQKKy0tLSBhL3V0aWwvSU1ka2l0L0lNQ29ubi5jCisrKysgYi91dGlsL0lNZGtpdC9JTUNvbm4u YworQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIGNoYXIgKl9GaW5kTW9kaWZpZXJzIChYSU1Bcmcg KmFyZ3MpCisgeworICAgICBjaGFyICptb2RpZmllcnM7CisgCistICAgIHdoaWxlIChhcmdzLT5u YW1lKQorKyAgICB3aGlsZSAoYXJncyAmJiBhcmdzLT5uYW1lKQorICAgICB7CisgCWlmIChzdHJj bXAgKGFyZ3MtPm5hbWUsIElNTW9kaWZpZXJzKSA9PSAwKQorIAl7CitAQCAtMTQ0LDggKzE0NCwx MCBAQCBYSU1TIElNT3BlbklNIChEaXNwbGF5ICpkaXNwbGF5LCAuLi4pCisgICAgIG1vZGlmaWVy cyA9IF9GaW5kTW9kaWZpZXJzIChhcmdzKTsKKyAKKyAgICAgaW1zID0gX0dldElNUyAobW9kaWZp ZXJzKTsKKy0gICAgaWYgKGltcyA9PSAoWElNUykgTlVMTCkKKysgICAgaWYgKGltcyA9PSAoWElN UykgTlVMTCkgeworKyAgICAgICAgWEZyZWUgKGFyZ3MpOworICAgICAgICAgcmV0dXJuIChYSU1T KSBOVUxMOworKyAgICB9CisgICAgIC8qZW5kaWYqLworICAgICAKKyAgICAgaW1zLT5jb3JlLmRp c3BsYXkgPSBkaXNwbGF5OworZGlmZiAtLWdpdCBhL3V0aWwvSU1ka2l0L2kxOG5DbGJrLmMgYi91 dGlsL0lNZGtpdC9pMThuQ2xiay5jCitpbmRleCBiM2VkZjNhZC4uZjU1Zjk3MGYgMTAwNjQ0Cist LS0gYS91dGlsL0lNZGtpdC9pMThuQ2xiay5jCisrKysgYi91dGlsL0lNZGtpdC9pMThuQ2xiay5j CitAQCAtNTUsNiArNTUsNyBAQCBpbnQgX1hpMThuR2VvbWV0cnlDYWxsYmFjayAoWElNUyBpbXMs IElNUHJvdG9jb2wgKmNhbGxfZGF0YSkKKyAgICAgaWYgKCFyZXBseSkKKyAgICAgeworICAgICAg ICAgX1hpMThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwgWElNX0VSUk9SLCAwLCAwLCAw KTsKKysgICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOworICAgICAgICAgcmV0dXJuIEZhbHNlOwor ICAgICB9CisgICAgIC8qZW5kaWYqLworQEAgLTk3LDYgKzk4LDcgQEAgaW50IF9YaTE4blByZWVk aXRTdGFydENhbGxiYWNrIChYSU1TIGltcywgSU1Qcm90b2NvbCAqY2FsbF9kYXRhKQorICAgICBp ZiAoIXJlcGx5KQorICAgICB7CisgICAgICAgICBfWGkxOG5TZW5kTWVzc2FnZShpbXMsIGNvbm5l Y3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7CisrICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsK KyAgICAgICAgIHJldHVybiBGYWxzZTsKKyAgICAgfQorICAgICAvKmVuZGlmKi8KK0BAIC0xNTks NiArMTYxLDcgQEAgaW50IF9YaTE4blByZWVkaXREcmF3Q2FsbGJhY2sgKFhJTVMgaW1zLCBJTVBy b3RvY29sICpjYWxsX2RhdGEpCisgICAgIGlmICghcmVwbHkpCisgICAgIHsKKyAgICAgICAgIF9Y aTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7Cisr ICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKyAgICAgICAgIHJldHVybiBGYWxzZTsKKyAgICAg fQorICAgICAvKmVuZGlmKi8KK0BAIC0yMTIsNiArMjE1LDcgQEAgaW50IF9YaTE4blByZWVkaXRD YXJldENhbGxiYWNrIChYSU1TIGltcywgSU1Qcm90b2NvbCAqY2FsbF9kYXRhKQorICAgICBpZiAo IXJlcGx5KQorICAgICB7CisgICAgICAgICBfWGkxOG5TZW5kTWVzc2FnZSAoaW1zLCBjb25uZWN0 X2lkLCBYSU1fRVJST1IsIDAsIDAsIDApOworKyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7Cisg ICAgICAgICByZXR1cm4gRmFsc2U7CisgICAgIH0KKyAgICAgLyplbmRpZiovCitAQCAtMjU2LDYg KzI2MCw3IEBAIGludCBfWGkxOG5QcmVlZGl0RG9uZUNhbGxiYWNrIChYSU1TIGltcywgSU1Qcm90 b2NvbCAqY2FsbF9kYXRhKQorICAgICBpZiAoIXJlcGx5KQorICAgICB7CisgICAgICAgICBfWGkx OG5TZW5kTWVzc2FnZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJST1IsIDAsIDAsIDApOworKyAg ICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAgICAgICByZXR1cm4gRmFsc2U7CisgICAgIH0K KyAgICAgLyplbmRpZiovCitAQCAtMjk3LDYgKzMwMiw3IEBAIGludCBfWGkxOG5TdGF0dXNTdGFy dENhbGxiYWNrIChYSU1TIGltcywgSU1Qcm90b2NvbCAqY2FsbF9kYXRhKQorICAgICBpZiAoIXJl cGx5KQorICAgICB7CisgICAgICAgICBfWGkxOG5TZW5kTWVzc2FnZSAoaW1zLCBjb25uZWN0X2lk LCBYSU1fRVJST1IsIDAsIDAsIDApOworKyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAg ICAgICByZXR1cm4gRmFsc2U7CisgICAgIH0KKyAgICAgLyplbmRpZiovCitAQCAtMzYzLDYgKzM2 OSw3IEBAIGludCBfWGkxOG5TdGF0dXNEcmF3Q2FsbGJhY2sgKFhJTVMgaW1zLCBJTVByb3RvY29s ICpjYWxsX2RhdGEpCisgICAgICAgICBpZiAoIXJlcGx5KQorICAgICAgICAgeworICAgICAgICAg ICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwg MCk7CisrICAgICAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAgICAgICAgICAgcmV0dXJu IEZhbHNlOworICAgICAgICAgfQorICAgICAgICAgLyplbmRpZiovCitAQCAtMzkwLDYgKzM5Nyw3 IEBAIGludCBfWGkxOG5TdGF0dXNEcmF3Q2FsbGJhY2sgKFhJTVMgaW1zLCBJTVByb3RvY29sICpj YWxsX2RhdGEpCisgICAgICAgICBpZiAoIXJlcGx5KQorICAgICAgICAgeworICAgICAgICAgICAg IF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7 CisrICAgICAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAgICAgICAgICAgcmV0dXJuIEZh bHNlOworICAgICAgICAgfQorICAgICAgICAgLyplbmRpZiovCitAQCAtNDM1LDYgKzQ0Myw3IEBA IGludCBfWGkxOG5TdGF0dXNEb25lQ2FsbGJhY2sgKFhJTVMgaW1zLCBJTVByb3RvY29sICpjYWxs X2RhdGEpCisgICAgIGlmICghcmVwbHkpCisgICAgIHsKKyAgICAgICAgIF9YaTE4blNlbmRNZXNz YWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7CisrICAgICAgICBGcmFt ZU1nckZyZWUgKGZtKTsKKyAgICAgICAgIHJldHVybiBGYWxzZTsKKyAgICAgfQorICAgICAvKmVu ZGlmKi8KK0BAIC00NzksNiArNDg4LDcgQEAgaW50IF9YaTE4blN0cmluZ0NvbnZlcnNpb25DYWxs YmFjayAoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNhbGxfZGF0YSkKKyAgICAgaWYgKCFyZXBseSkK KyAgICAgeworICAgICAgICAgX1hpMThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwgWElN X0VSUk9SLCAwLCAwLCAwKTsKKysgICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOworICAgICAgICAg cmV0dXJuIEZhbHNlOworICAgICB9CisgICAgIC8qZW5kaWYqLworZGlmZiAtLWdpdCBhL3V0aWwv SU1ka2l0L2kxOG5JYy5jIGIvdXRpbC9JTWRraXQvaTE4bkljLmMKK2luZGV4IDg3NDQ1OTg2Li4y ODk4MzdhNiAxMDA2NDQKKy0tLSBhL3V0aWwvSU1ka2l0L2kxOG5JYy5jCisrKysgYi91dGlsL0lN ZGtpdC9pMThuSWMuYworQEAgLTQ3NSw4ICs0NzUsMTAgQEAgc3RhdGljIFhJQ0F0dHJpYnV0ZSAq Q3JlYXRlTmVzdGVkTGlzdCAoQ0FSRDE2IGF0dHJfaWQsCisgICAgIC8qZW5kaWYqLworICAgICBt ZW1zZXQgKG5lc3RfbGlzdCwgMCwgc2l6ZW9mIChYSUNBdHRyaWJ1dGUpKTsKKyAgICAgbmVzdF9s aXN0LT52YWx1ZSA9ICh2b2lkICopIG1hbGxvYyAodmFsdWVfbGVuZ3RoKTsKKy0gICAgaWYgKG5l c3RfbGlzdC0+dmFsdWUgPT0gTlVMTCkKKysgICAgaWYgKG5lc3RfbGlzdC0+dmFsdWUgPT0gTlVM TCkgeworKyAgICAgICAgWEZyZWUgKG5lc3RfbGlzdCk7CisgICAgICAgICByZXR1cm4gTlVMTDsK KysgICAgfQorICAgICAvKmVuZGlmKi8KKyAgICAgbWVtc2V0IChuZXN0X2xpc3QtPnZhbHVlLCAw LCB2YWx1ZV9sZW5ndGgpOworIAorQEAgLTgxNiw2ICs4MTgsNyBAQCB2b2lkIF9YaTE4bkNoYW5n ZUlDIChYSU1TIGltcywKKyAgICAgaWYgKCFyZXBseSkKKyAgICAgeworICAgICAgICAgX1hpMThu U2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwgWElNX0VSUk9SLCAwLCAwLCAwKTsKKysgICAg ICAgIEZyYW1lTWdyRnJlZSAoZm0pOworICAgICAgICAgcmV0dXJuOworICAgICB9CisgICAgIC8q ZW5kaWYqLworQEAgLTk3Myw4ICs5NzYsMTAgQEAgdm9pZCBfWGkxOG5HZXRJQyAoWElNUyBpbXMs IElNUHJvdG9jb2wgKmNhbGxfZGF0YSwgdW5zaWduZWQgY2hhciAqcCkKKyAgICAgZ2V0aWMtPmlj X2F0dHIgPSBpY19hdHRyOworICAgICBpZiAoaTE4bl9jb3JlLT5hZGRyZXNzLmltcHJvdG8pCisg ICAgIHsKKy0gICAgICAgIGlmICghKGkxOG5fY29yZS0+YWRkcmVzcy5pbXByb3RvIChpbXMsIGNh bGxfZGF0YSkpKQorKyAgICAgICAgaWYgKCEoaTE4bl9jb3JlLT5hZGRyZXNzLmltcHJvdG8gKGlt cywgY2FsbF9kYXRhKSkpIHsKKysgICAgICAgICAgICBYRnJlZSAoYXR0cklEX2xpc3QpOworICAg ICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKyAgICAgICAgIC8qZW5kaWYqLworIAlpZiAo X1hpMThuTmVlZFN3YXAgKGkxOG5fY29yZSwgY29ubmVjdF9pZCkpCisgCSAgU3dhcEF0dHJpYnV0 ZXMoZ2V0aWMtPmljX2F0dHIsIGdldGljLT5pY19hdHRyX251bSk7CitAQCAtMTAyMCw2ICsxMDI1 LDggQEAgdm9pZCBfWGkxOG5HZXRJQyAoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNhbGxfZGF0YSwg dW5zaWduZWQgY2hhciAqcCkKKyAgICAgaWYgKHJlcGx5ID09IE5VTEwpCisgICAgIHsKKyAgICAg ICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwg MCk7CisrICAgICAgICBYRnJlZSAoYXR0cklEX2xpc3QpOworKyAgICAgICAgRnJhbWVNZ3JGcmVl IChmbSk7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAgICAgLyplbmRpZiovCitkaWZmIC0t Z2l0IGEvdXRpbC9JTWRraXQvaTE4bk1ldGhvZC5jIGIvdXRpbC9JTWRraXQvaTE4bk1ldGhvZC5j CitpbmRleCAyMDNmODMxNS4uMzZkZDI4YWMgMTAwNjQ0CistLS0gYS91dGlsL0lNZGtpdC9pMThu TWV0aG9kLmMKKysrKyBiL3V0aWwvSU1ka2l0L2kxOG5NZXRob2QuYworQEAgLTg5NSw2ICs4OTUs NyBAQCBzdGF0aWMgU3RhdHVzIHhpMThuX2ZvcndhcmRFdmVudCAoWElNUyBpbXMsIFhQb2ludGVy IHhwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKysgICAgICAgIEZy YW1lTWdyRnJlZSAoZm0pOworICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICB9CisgICAgIC8q ZW5kaWYqLworQEAgLTk2NCw2ICs5NjUsNyBAQCBzdGF0aWMgU3RhdHVzIHhpMThuX2NvbW1pdCAo WElNUyBpbXMsIFhQb2ludGVyIHhwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwKTsKKysgICAgICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKyAgICAg ICAgICAgICByZXR1cm4gRmFsc2U7CisgICAgICAgICB9CisgICAgICAgICAvKmVuZGlmKi8KK0BA IC05OTcsNiArOTk5LDcgQEAgc3RhdGljIFN0YXR1cyB4aTE4bl9jb21taXQgKFhJTVMgaW1zLCBY UG9pbnRlciB4cCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCk7CisrICAgICAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAgICAgICAgICAgcmV0 dXJuIEZhbHNlOworICAgICAgICAgfQorICAgICAgICAgLyplbmRpZiovCitAQCAtMTEzMiw2ICsx MTM1LDcgQEAgc3RhdGljIGludCB4aTE4bl9zeW5jWGxpYiAoWElNUyBpbXMsIFhQb2ludGVyIHhw KQorICAgICByZXBseSA9ICh1bnNpZ25lZCBjaGFyICopIG1hbGxvYyAodG90YWxfc2l6ZSk7Cisg ICAgIGlmICghcmVwbHkpIHsKKyAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5l Y3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7CisrICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsK KyAgICAgICAgIHJldHVybiBGYWxzZTsKKyAgICAgfQorICAgICBtZW1zZXQgKHJlcGx5LCAwLCB0 b3RhbF9zaXplKTsKK2RpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9pMThuT2Zmc2V0Q2FjaGUuYyBi L3V0aWwvSU1ka2l0L2kxOG5PZmZzZXRDYWNoZS5jCitpbmRleCBjOTUyZDViNC4uZDUzNzkwNTEg MTAwNjQ0CistLS0gYS91dGlsL0lNZGtpdC9pMThuT2Zmc2V0Q2FjaGUuYworKysrIGIvdXRpbC9J TWRraXQvaTE4bk9mZnNldENhY2hlLmMKK0BAIC0yNyw5ICsyNywxMSBAQAorICAqLworIAorICNp bmNsdWRlIDxYMTEvWGxpYi5oPgorKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8c3Rk ZGVmLmg+CisgI2luY2x1ZGUgIklNZGtpdC5oIgorICNpbmNsdWRlICJYaTE4bi5oIgorKyNpbmNs dWRlICJYaTE4bi5oIgorIAorIC8qCisgICogVGhlIFhJTSBzcGVjaWZpY2F0aW9uIGRvZXMgbm90 IGxpbWl0IHRoZSBudW1iZXIgb2Ygd2luZG93IHByb3BlcnRpZXMKK0BAIC01Miw5ICs1NCwxMSBA QCB2b2lkIF9YaTE4bkluaXRPZmZzZXRDYWNoZSAoWGkxOG5PZmZzZXRDYWNoZSAqb2Zmc2V0X2Nh Y2hlKQorIHVuc2lnbmVkIGxvbmcgX1hpMThuTG9va3VwUHJvcGVydHlPZmZzZXQgKFhpMThuT2Zm c2V0Q2FjaGUgKm9mZnNldF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBdG9tIGtleSkKKyB7CistICAgIFhpMThuQXRvbU9mZnNldFBhaXIgKmRhdGEg PSBvZmZzZXRfY2FjaGUtPmRhdGE7CisrICAgIFhpMThuQXRvbU9mZnNldFBhaXIgKmRhdGE7Cisg ICAgIHNpemVfdCBpOworIAorKyAgICBhc3NlcnQgKG9mZnNldF9jYWNoZSk7CisrICAgIGRhdGEg PSBvZmZzZXRfY2FjaGUtPmRhdGE7CisgICAgIGZvciAoaSA9IDA7IGkgPCBvZmZzZXRfY2FjaGUt PnNpemU7ICsraSkgeworICAgICAgICAgaWYgKGRhdGFbaV0ua2V5ID09IGtleSkgeworICAgICAg ICAgICAgIHJldHVybiBkYXRhW2ldLm9mZnNldDsKK0BAIC03MCw2ICs3NCw3IEBAIHZvaWQgX1hp MThuU2V0UHJvcGVydHlPZmZzZXQgKFhpMThuT2Zmc2V0Q2FjaGUgKm9mZnNldF9jYWNoZSwgQXRv bSBrZXksCisgICAgIFhpMThuQXRvbU9mZnNldFBhaXIgKmRhdGEgPSBvZmZzZXRfY2FjaGUtPmRh dGE7CisgICAgIHNpemVfdCBpOworIAorKyAgICBhc3NlcnQgKGRhdGEgIT0gTlVMTCk7CisgICAg IGZvciAoaSA9IDA7IGkgPCBvZmZzZXRfY2FjaGUtPnNpemU7ICsraSkgeworICAgICAgICAgaWYg KGRhdGFbaV0ua2V5ID09IGtleSkgeworICAgICAgICAgICAgIGRhdGFbaV0ub2Zmc2V0ID0gb2Zm c2V0OworQEAgLTc5LDExICs4NCwxOSBAQCB2b2lkIF9YaTE4blNldFByb3BlcnR5T2Zmc2V0IChY aTE4bk9mZnNldENhY2hlICpvZmZzZXRfY2FjaGUsIEF0b20ga2V5LAorIAorICAgICBpZiAoKytv ZmZzZXRfY2FjaGUtPnNpemUgPiBvZmZzZXRfY2FjaGUtPmNhcGFjaXR5KSB7CisgICAgICAgICBv ZmZzZXRfY2FjaGUtPmNhcGFjaXR5ICo9IE9GRlNFVF9DQUNIRV9HUk9XVEhfRkFDVE9SOworLSAg ICAgICAgb2Zmc2V0X2NhY2hlLT5kYXRhID0gZGF0YSA9IChYaTE4bkF0b21PZmZzZXRQYWlyICop IHJlYWxsb2MgKGRhdGEsCisrICAgICAgICBvZmZzZXRfY2FjaGUtPmRhdGEgPSAoWGkxOG5BdG9t T2Zmc2V0UGFpciAqKSByZWFsbG9jIChkYXRhLAorICAgICAgICAgICAgICAgICBvZmZzZXRfY2Fj aGUtPmNhcGFjaXR5ICogc2l6ZW9mIChYaTE4bkF0b21PZmZzZXRQYWlyKSk7CisrICAgICAgICBp ZiAob2Zmc2V0X2NhY2hlLT5kYXRhID09IE5VTEwpIHsKKysgICAgICAgICAgICBvZmZzZXRfY2Fj aGUtPmRhdGEgPSBkYXRhOworKyAgICAgICAgICAgIC0tb2Zmc2V0X2NhY2hlLT5zaXplOworKyAg ICAgICAgfQorKyAgICAgICAgZGF0YSA9IG9mZnNldF9jYWNoZS0+ZGF0YTsKKyAgICAgfQorIAor LSAgICBkYXRhW2ldLmtleSA9IGtleTsKKy0gICAgZGF0YVtpXS5vZmZzZXQgPSBvZmZzZXQ7Cisr ICAgIGFzc2VydCAoZGF0YSAhPSBOVUxMKTsKKysgICAgaWYgKG9mZnNldF9jYWNoZS0+c2l6ZSA+ IDApIHsKKysgICAgICAgIGRhdGFbaV0ua2V5ID0ga2V5OworKyAgICAgICAgZGF0YVtpXS5vZmZz ZXQgPSBvZmZzZXQ7CisrICAgIH0KKyB9CisgCitkaWZmIC0tZ2l0IGEvdXRpbC9JTWRraXQvaTE4 blB0SGRyLmMgYi91dGlsL0lNZGtpdC9pMThuUHRIZHIuYworaW5kZXggMmU2NzM1NDEuLmVhZWVl ZTFjIDEwMDY0NAorLS0tIGEvdXRpbC9JTWRraXQvaTE4blB0SGRyLmMKKysrKyBiL3V0aWwvSU1k a2l0L2kxOG5QdEhkci5jCitAQCAtMTEwLDYgKzExMCw3IEBAIHN0YXRpYyB2b2lkIENvbm5lY3RN ZXNzYWdlUHJvYyAoWElNUyBpbXMsCisgICAgIGlmICghcmVwbHkpCisgICAgIHsKKyAgICAgICAg IF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7 CisrICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQor ICAgICAvKmVuZGlmKi8KK0BAIC0yMzAsNiArMjMxLDcgQEAgc3RhdGljIHZvaWQgT3Blbk1lc3Nh Z2VQcm9jKFhJTVMgaW1zLCBJTVByb3RvY29sICpjYWxsX2RhdGEsIHVuc2lnbmVkIGNoYXIgKnAp CisgICAgIGlmICghcmVwbHkpCisgICAgIHsKKyAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChp bXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7CisrICAgICAgICBGcmFtZU1nckZy ZWUgKGZtKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQorICAgICAvKmVuZGlmKi8KK0BAIC0z MTIsNiArMzE0LDcgQEAgc3RhdGljIHZvaWQgQ2xvc2VNZXNzYWdlUHJvYyAoWElNUyBpbXMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworKyAgICAgICAgRnJhbWVNZ3JG cmVlIChmbSk7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAgICAgLyplbmRpZiovCitAQCAt NTEzLDYgKzUxNiwxMCBAQCBzdGF0aWMgdm9pZCBRdWVyeUV4dGVuc2lvbk1lc3NhZ2VQcm9jIChY SU1TIGltcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisrICAgICAg ICBGcmFtZU1nckZyZWUgKGZtKTsKKysgICAgICAgIGZvciAoaSA9IDA7ICBpIDwgcmVwbHlfbnVt YmVyOyAgaSsrKQorKyAgICAgICAgICAgIFhGcmVlIChleHRfbGlzdFtpXS5uYW1lKTsKKysgICAg ICAgIFhGcmVlICgoY2hhciAqKSBleHRfbGlzdCk7CisgICAgICAgICByZXR1cm47CisgICAgIH0K KyAgICAgLyplbmRpZiovCitAQCAtNjEwLDggKzYxNywxMCBAQCBzdGF0aWMgdm9pZCBHZXRJTVZh bHVlRnJvbU5hbWUgKFhpMThuIGkxOG5fY29yZSwKKyAKKyAgICAgICAgICAgICB0b3RhbF9zaXpl ID0gRnJhbWVNZ3JHZXRUb3RhbFNpemUgKGZtKTsKKyAgICAgICAgICAgICBkYXRhID0gKHVuc2ln bmVkIGNoYXIgKikgbWFsbG9jICh0b3RhbF9zaXplKTsKKy0gICAgICAgICAgICBpZiAoIWRhdGEp CisrICAgICAgICAgICAgaWYgKCFkYXRhKSB7CisrICAgICAgICAgICAgICAgIEZyYW1lTWdyRnJl ZSAoZm0pOworICAgICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAgICAgfQorICAgICAg ICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAgIG1lbXNldCAoZGF0YSwgMCwgdG90YWxfc2l6 ZSk7CisgICAgICAgICAgICAgRnJhbWVNZ3JTZXRCdWZmZXIgKGZtLCBkYXRhKTsKK0BAIC02NjYs MTEgKzY3NSwxMiBAQCBzdGF0aWMgWElNQXR0cmlidXRlICpNYWtlSU1BdHRyaWJ1dGVMaXN0IChY aTE4biBpMThuX2NvcmUsCisgICAgICAgICAvKmVuZGZvciovCisgICAgIH0KKyAgICAgLyplbmRm b3IqLworLSAgICBhdHRyaWJfbGlzdCA9IChYSU1BdHRyaWJ1dGUgKikgbWFsbG9jIChzaXplb2Yg KFhJTUF0dHJpYnV0ZSkqbGlzdF9udW0pOworKyAgICBhdHRyaWJfbGlzdCA9CisrICAgICAgICAg ICAgKFhJTUF0dHJpYnV0ZSAqKSBtYWxsb2MgKHNpemVvZiAoWElNQXR0cmlidXRlKSoobGlzdF9u dW0gKyAxKSk7CisgICAgIGlmICghYXR0cmliX2xpc3QpCisgICAgICAgICByZXR1cm4gTlVMTDsK KyAgICAgLyplbmRpZiovCistICAgIG1lbXNldCAoYXR0cmliX2xpc3QsIDAsIHNpemVvZiAoWElN QXR0cmlidXRlKSpsaXN0X251bSk7CisrICAgIG1lbXNldCAoYXR0cmliX2xpc3QsIDAsIHNpemVv ZiAoWElNQXR0cmlidXRlKSoobGlzdF9udW0gKyAxKSk7CisgICAgIG51bWJlcl9yZXQgPSBsaXN0 X251bTsKKyAgICAgbGlzdF9udW0gPSAwOworICAgICBmb3IgKGkgPSAwOyAgaSA8ICpudW1iZXI7 ICBpKyspCitAQCAtODA1LDYgKzgxNSwxMCBAQCBzdGF0aWMgdm9pZCBHZXRJTVZhbHVlc01lc3Nh Z2VQcm9jIChYSU1TIGltcywKKyAgICAgaWYgKCFyZXBseSkKKyAgICAgeworICAgICAgICAgX1hp MThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVjdF9pZCwgWElNX0VSUk9SLCAwLCAwLCAwKTsKKysg ICAgICAgIEZyYW1lTWdyRnJlZSAoZm0pOworKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGl0ZXJf Y291bnQ7IGkrKykKKysgICAgICAgICAgICBYRnJlZShpbV9hdHRyaWJ1dGVfbGlzdFtpXS52YWx1 ZSk7CisrICAgICAgICBYRnJlZSAoaW1fYXR0cmlidXRlX2xpc3QpOworICAgICAgICAgcmV0dXJu OworICAgICB9CisgICAgIC8qZW5kaWYqLworQEAgLTk2MSw2ICs5NzUsNyBAQCBzdGF0aWMgdm9p ZCBEZXN0cm95SUNNZXNzYWdlUHJvYyAoWElNUyBpbXMsCisgICAgIGlmICghcmVwbHkpCisgICAg IHsKKyAgICAgICAgIF9YaTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJP UiwgMCwgMCwgMCk7CisrICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKyAgICAgICAgIHJldHVy bjsKKyAgICAgfQorICAgICAvKmVuZGlmKi8KK0BAIC0xMDI2LDYgKzEwNDEsNyBAQCBzdGF0aWMg dm9pZCBSZXNldElDTWVzc2FnZVByb2MgKFhJTVMgaW1zLAorICAgICBpZiAoIXJlcGx5KQorICAg ICB7CisgICAgICAgICBfWGkxOG5TZW5kTWVzc2FnZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJS T1IsIDAsIDAsIDApOworKyAgICAgICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAgICAgICByZXR1 cm47CisgICAgIH0KKyAgICAgLyplbmRpZiovCitAQCAtMTA3Miw3ICsxMDg4LDcgQEAgc3RhdGlj IGludCBXaXJlRXZlbnRUb0V2ZW50IChYaTE4biBpMThuX2NvcmUsCisgICAgIC8qIGdldCAmIHNl dCBzZXJpYWwgKi8KKyAgICAgRnJhbWVNZ3JHZXRUb2tlbihmbSwgYzE2KTsKKyAgICAgZXYtPnhh bnkuc2VyaWFsID0gKHVuc2lnbmVkIGxvbmcpYzE2OworLSAgICBldi0+eGFueS5zZXJpYWwgfD0g c2VyaWFsIDw8IDE2OworKyAgICBldi0+eGFueS5zZXJpYWwgfD0gKCh1bnNpZ25lZCBsb25nKXNl cmlhbCkgPDwgMTY7CisgICAgIGV2LT54YW55LnNlbmRfZXZlbnQgPSBGYWxzZTsKKyAgICAgZXYt PnhhbnkuZGlzcGxheSA9IGkxOG5fY29yZS0+YWRkcmVzcy5kcHk7CisgCitAQCAtMTMwOCw2ICsx MzI0LDcgQEAgc3RhdGljIHZvaWQgVHJpZ2dlck5vdGlmeU1lc3NhZ2VQcm9jIChYSU1TIGltcywK KyAgICAgaWYgKCFyZXBseSkKKyAgICAgeworICAgICAgICAgX1hpMThuU2VuZE1lc3NhZ2UgKGlt cywgY29ubmVjdF9pZCwgWElNX0VSUk9SLCAwLCAwLCAwKTsKKysgICAgICAgIEZyYW1lTWdyRnJl ZSAoZm0pOworICAgICAgICAgcmV0dXJuOworICAgICB9CisgICAgIC8qZW5kaWYqLworQEAgLTE0 NDMsNyArMTQ2MCw3IEBAIHN0YXRpYyB2b2lkIEVuY29kaW5nTmVnb3RpYXRvbk1lc3NhZ2VQcm9j IChYSU1TIGltcywKKyAgICAgaWYgKGJ5dGVfbGVuZ3RoID4gMCkKKyAgICAgeworICAgICAgICAg ZW5jX25lZ28tPmVuY29kaW5naW5mbyA9IChYSU1TdHIgKikgbWFsbG9jIChzaXplb2YgKFhJTVN0 cikqMTApOworLSAgICAgICAgbWVtc2V0IChlbmNfbmVnby0+ZW5jb2RpbmcsIDAsIHNpemVvZiAo WElNU3RyKSoxMCk7CisrICAgICAgICBtZW1zZXQgKGVuY19uZWdvLT5lbmNvZGluZ2luZm8sIDAs IHNpemVvZiAoWElNU3RyKSoxMCk7CisgICAgICAgICBpID0gMDsKKyAgICAgICAgIHdoaWxlIChG cmFtZU1ncklzSXRlckxvb3BFbmQgKGZtLCAmc3RhdHVzKSA9PSBGYWxzZSkKKyAgICAgICAgIHsK K0BAIC0xNDg4LDYgKzE1MDUsNyBAQCBzdGF0aWMgdm9pZCBFbmNvZGluZ05lZ290aWF0b25NZXNz YWdlUHJvYyAoWElNUyBpbXMsCisgICAgIGlmICghcmVwbHkpCisgICAgIHsKKyAgICAgICAgIF9Y aTE4blNlbmRNZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7Cisr ICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQorICAg ICAvKmVuZGlmKi8KK2RpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9pMThuVXRpbC5jIGIvdXRpbC9J TWRraXQvaTE4blV0aWwuYworaW5kZXggNjU1N2JkMWEuLjEwOWRjZGY5IDEwMDY0NAorLS0tIGEv dXRpbC9JTWRraXQvaTE4blV0aWwuYworKysrIGIvdXRpbC9JTWRraXQvaTE4blV0aWwuYworQEAg LTE0OCw2ICsxNDgsNyBAQCB2b2lkIF9YaTE4blNlbmRNZXNzYWdlIChYSU1TIGltcywKKyAgICAg aWYgKHJlcGx5X2hkciA9PSBOVUxMKQorICAgICB7CisgICAgICAgICBfWGkxOG5TZW5kTWVzc2Fn ZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJST1IsIDAsIDAsIDApOworKyAgICAgICAgRnJhbWVN Z3JGcmVlIChmbSk7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAgICAgLyplbmRpZiovCitA QCAtMTYzLDcgKzE2NCw4IEBAIHZvaWQgX1hpMThuU2VuZE1lc3NhZ2UgKFhJTVMgaW1zLAorICAg ICByZXBseXAgPSByZXBseTsKKyAgICAgbWVtbW92ZSAocmVwbHksIHJlcGx5X2hkciwgaGVhZGVy X3NpemUpOworICAgICByZXBseXAgKz0gaGVhZGVyX3NpemU7CistICAgIG1lbW1vdmUgKHJlcGx5 cCwgZGF0YSwgbGVuZ3RoKTsKKysgICAgaWYgKGxlbmd0aCA+IDAgJiYgZGF0YSAhPSBOVUxMKQor KyAgICAgICAgbWVtbW92ZSAocmVwbHlwLCBkYXRhLCBsZW5ndGgpOworIAorICAgICBpMThuX2Nv cmUtPm1ldGhvZHMuc2VuZCAoaW1zLCBjb25uZWN0X2lkLCByZXBseSwgcmVwbHlfbGVuZ3RoKTsK KyAKK0BAIC0yMDIsOCArMjA0LDEwIEBAIHZvaWQgX1hpMThuU2VuZFRyaWdnZXJLZXkgKFhJTVMg aW1zLCBDQVJEMTYgY29ubmVjdF9pZCkKKyAgICAgdG90YWxfc2l6ZSA9IEZyYW1lTWdyR2V0VG90 YWxTaXplIChmbSk7CisgCisgICAgIHJlcGx5ID0gKHVuc2lnbmVkIGNoYXIgKikgbWFsbG9jICh0 b3RhbF9zaXplKTsKKy0gICAgaWYgKCFyZXBseSkKKysgICAgaWYgKCFyZXBseSkgeworKyAgICAg ICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAgICAgICByZXR1cm47CisrICAgIH0KKyAgICAgLypl bmRpZiovCisgICAgIG1lbXNldCAocmVwbHksIDAsIHRvdGFsX3NpemUpOworICAgICBGcmFtZU1n clNldEJ1ZmZlciAoZm0sIHJlcGx5KTsKK0BAIC0yNTcsOCArMjYxLDEwIEBAIHZvaWQgX1hpMThu U2V0RXZlbnRNYXNrIChYSU1TIGltcywKKyAKKyAgICAgdG90YWxfc2l6ZSA9IEZyYW1lTWdyR2V0 VG90YWxTaXplIChmbSk7CisgICAgIHJlcGx5ID0gKHVuc2lnbmVkIGNoYXIgKikgbWFsbG9jICh0 b3RhbF9zaXplKTsKKy0gICAgaWYgKCFyZXBseSkKKysgICAgaWYgKCFyZXBseSkgeworKyAgICAg ICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgICAgICAgICByZXR1cm47CisrICAgIH0KKyAgICAgLypl bmRpZiovCisgICAgIG1lbXNldCAocmVwbHksIDAsIHRvdGFsX3NpemUpOworICAgICBGcmFtZU1n clNldEJ1ZmZlciAoZm0sIHJlcGx5KTsKK2RpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9pMThuWC5j IGIvdXRpbC9JTWRraXQvaTE4blguYworaW5kZXggODM4NWFiYTkuLjVlNWMxNWZhIDEwMDY0NAor LS0tIGEvdXRpbC9JTWRraXQvaTE4blguYworKysrIGIvdXRpbC9JTWRraXQvaTE4blguYworQEAg LTMxLDYgKzMxLDcgQEAgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0Ug T0YgVEhJUyBTT0ZUV0FSRS4KKyAgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIAorKyNpbmNsdWRlIDxhc3NlcnQu aD4KKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgI2luY2x1ZGUgPGxpbWl0cy5oPgorICNpbmNsdWRl IDxYMTEvWGxpYi5oPgorQEAgLTkyLDYgKzkzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGNoYXIgKlJl YWRYSU1NZXNzYWdlIChYSU1TIGltcywKKyAgICAgICAgIGNsaWVudCA9IGNsaWVudC0+bmV4dDsK KyAgICAgfQorIAorKyAgICBhc3NlcnQgKGNsaWVudCk7CisgICAgIGlmIChldi0+Zm9ybWF0ID09 IDgpIHsKKyAgICAgICAgIC8qIENsaWVudE1lc3NhZ2Ugb25seSAqLworICAgICAgICAgWGltUHJv dG9IZHIgKmhkciA9IChYaW1Qcm90b0hkciAqKSBldi0+ZGF0YS5iOworQEAgLTE1OCw2ICsxNjAs NyBAQCBzdGF0aWMgdW5zaWduZWQgY2hhciAqUmVhZFhJTU1lc3NhZ2UgKFhJTVMgaW1zLAorICAg ICAgICAgLyogVGhlIHByb3BlcnR5IGRhdGEgaXMgcmV0cmlldmVkIGluIDMyLWJpdCBjaHVua3Mg Ki8KKyAgICAgICAgIGxvbmdfYmVnaW4gPSBvZmZzZXQgLyA0OworICAgICAgICAgbG9uZ19lbmQg PSAoZW5kICsgMykgLyA0OworKyAgICAgICAgYXNzZXJ0ICh4X2NsaWVudCk7CisgICAgICAgICBy ZXR1cm5fY29kZSA9IFhHZXRXaW5kb3dQcm9wZXJ0eSAoaTE4bl9jb3JlLT5hZGRyZXNzLmRweSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4X2NsaWVudC0+YWNj ZXB0X3dpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9t LAorQEAgLTI3NiwxMSArMjc5LDExIEBAIHN0YXRpYyBCb29sIFhpMThuWEVuZChYSU1TIGltcykK KyBzdGF0aWMgY2hhciAqTWFrZU5ld0F0b20gKENBUkQxNiBjb25uZWN0X2lkLCBjaGFyICphdG9t TmFtZSkKKyB7CisgICAgIHN0YXRpYyBpbnQgc2VxdWVuY2UgPSAwOworLSAgICAKKyAgICAgc3By aW50ZiAoYXRvbU5hbWUsCisgICAgICAgICAgICAgICJfc2VydmVyJWRfJWQiLAorICAgICAgICAg ICAgICBjb25uZWN0X2lkLAorLSAgICAgICAgICAgICAoKHNlcXVlbmNlID4gMjApICA/ICAoc2Vx dWVuY2UgPSAwKSAgOiAgc2VxdWVuY2UrKykpOworKyAgICAgICAgICAgICAoKHNlcXVlbmNlID4g MjApICA/ICAoc2VxdWVuY2UgPSAwKSAgOiAgKDB4MWYgJiBzZXF1ZW5jZSkpKTsKKysgICAgc2Vx dWVuY2UrKzsKKyAgICAgcmV0dXJuIGF0b21OYW1lOworIH0KKyAKK0BAIC00MTgsMTMgKzQyMSwx NiBAQCBzdGF0aWMgQm9vbCBYaTE4blhXYWl0IChYSU1TIGltcywKKyAgICAgICAgICAgICAgICAg JiYKKyAgICAgICAgICAgICAgICAgKGhkci0+bWlub3Jfb3Bjb2RlID09IG1pbm9yX29wY29kZSkp CisgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBYRnJlZSAocGFja2V0KTsKKyAgICAg ICAgICAgICAgICAgcmV0dXJuIFRydWU7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGVs c2UgaWYgKGhkci0+bWFqb3Jfb3Bjb2RlID09IFhJTV9FUlJPUikKKyAgICAgICAgICAgICB7Cisr ICAgICAgICAgICAgICAgIFhGcmVlIChwYWNrZXQpOworICAgICAgICAgICAgICAgICByZXR1cm4g RmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIC8qZW5kaWYqLworKyAgICAgICAg ICAgIFhGcmVlIChwYWNrZXQpOworICAgICAgICAgfQorICAgICAgICAgLyplbmRpZiovCisgICAg IH0KKy0tIAorMi4xNy4xCisKCmRpZmYgLS1naXQgYS9pYnVzLnNwZWMgYi9pYnVzLnNwZWMKaW5k ZXggYzExY2IwZi4uNDQ1MTMxZiAxMDA2NDQKLS0tIGEvaWJ1cy5zcGVjCisrKyBiL2lidXMuc3Bl YwpAQCAtMzksNyArMzksNyBAQAogCiBOYW1lOiAgICAgICAgICAgaWJ1cwogVmVyc2lvbjogICAg ICAgIDEuNS4xOAotUmVsZWFzZTogICAgICAgIDEyJXs/ZGlzdH0KK1JlbGVhc2U6ICAgICAgICAx MyV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgSW50ZWxsaWdlbnQgSW5wdXQgQnVzIGZvciBMaW51 eCBPUwogTGljZW5zZTogICAgICAgIExHUEx2MisKIEdyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52 aXJvbm1lbnQvTGlicmFyaWVzCkBAIC01Miw3ICs1Miw2IEBAIFNvdXJjZTM6ICAgICAgICAle25h bWV9LXBvLTEuNS4xOC0yMDE4MDYyNy50YXIuZ3oKICMgVXBzdHJlYW1lZCBwYXRjaGVzLgogIyBQ YXRjaDA6ICAgICAgICAgJSV7bmFtZX0tSEVBRC5wYXRjaAogUGF0Y2gwOiAgICAgICAgICV7bmFt ZX0tSEVBRC5wYXRjaAotUGF0Y2gxOiAgICAgICAgICV7bmFtZX0tMTYwMjU0OS1jb3ZzY2FuLnBh dGNoCiAjIFVuZGVyIHRlc3RpbmcgIzEzNDkxNDggIzEzODUzNDkgIzEzNTAyOTEgIzE0MDY2OTkg IzE0MzIyNTIgIzE2MDE1NzcKIFBhdGNoMjogICAgICAgICAle25hbWV9LTEzODUzNDktc2Vndi1i dXMtcHJveHkucGF0Y2gKIApAQCAtNDM2LDYgKzQzNSw5IEBAIGRjb25mIHVwZGF0ZSB8fCA6CiAl e19kYXRhZGlyfS9ndGstZG9jL2h0bWwvKgogCiAlY2hhbmdlbG9nCisqIFR1ZSBKdWwgMjQgMjAx OCBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjUuMTgtMTMKKy0gRGVs ZXRlZCBkZXByZWNhdGVkIGdfbWVtXyogQVBJcworCiAqIE1vbiBKdWwgMjMgMjAxOCBUYWthbyBG dWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjUuMTgtMTIKIC0gUmVidWlsdCB3aXRo IFJIRUwgY29kZSByZXZpZXdzCiAK