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: Paulo Alcantara To: git-commits@fedoraproject.org Subject: [rpms/cifs-utils] f45: resolves: rhbz#2498627 - Update to cifs-utils-7.7 Date: Thu, 27 Aug 2026 16:56:20 GMT Message-ID: <178784978069.1.6848408515119995373.rpms-cifs-utils-67d16d86bbb5@fedoraproject.org> List-ID: X-Git-Repo: rpms/cifs-utils X-Git-Branch: f45 X-Git-Rev: 67d16d86bbb5587d1f47415da06c08ee2a137cf2 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvY2lmcy11dGlscwogICAgICAgICAgICBCcmFuY2ggOiBmNDUKICAgICAgICAg ICAgQ29tbWl0IDogNjdkMTZkODZiYmI1NTg3ZDFmNDc0MTVkYTA2YzA4ZWUyYTEzN2NmMgogICAg ICAgICAgICBBdXRob3IgOiBQYXVsbyBBbGNhbnRhcmEgPHBhYWxjYW50QHJlZGhhdC5jb20+CiAg ICAgICAgICAgIERhdGUgICA6IDIwMjYtMDgtMjdUMTM6NDM6NTMtMDM6MDAKICAgICAgICAgICAg U3RhdHMgIDogKzQxOS8tNDQ1IGluIDYgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRw czovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2NpZnMtdXRpbHMvYy82N2QxNmQ4NmJiYjU1 ODdkMWY0NzQxNWRhMDZjMDhlZTJhMTM3Y2YyP2JyYW5jaD1mNDUKCiAgICAgICAgICAgIExvZzoK ICAgICAgICAgICAgcmVzb2x2ZXM6IHJoYnojMjQ5ODYyNyAtIFVwZGF0ZSB0byBjaWZzLXV0aWxz LTcuNwoKU2lnbmVkLW9mZi1ieTogUGF1bG8gQWxjYW50YXJhIDxwYWFsY2FudEByZWRoYXQuY29t PgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBhMjNiNzc1 Li4yNGU5ZmMzIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTM0 LDMgKzM0LDQgQEAgY2lmcy11dGlscy00LjYudGFyLmJ6MgogL2NpZnMtdXRpbHMtNy40LnRhci5i ejIKIC9jaWZzLXV0aWxzLTcuNS50YXIuYnoyCiAvY2lmcy11dGlscy03LjYudGFyLmJ6MgorL2Np ZnMtdXRpbHMtNy43LnRhci5iejIKCmRpZmYgLS1naXQgYS9jaWZzLXV0aWxzLnNwZWMgYi9jaWZz LXV0aWxzLnNwZWMKaW5kZXggNDg3ZmYyZS4uYjJhODRjNSAxMDA2NDQKLS0tIGEvY2lmcy11dGls cy5zcGVjCisrKyBiL2NpZnMtdXRpbHMuc3BlYwpAQCAtMSwxMCArMSw4IEBACiAjJSBkZWZpbmUg cHJlX3JlbGVhc2UgcmMxCiAlZGVmaW5lIHByZV9yZWxlYXNlICVuaWwKIAotJWdsb2JhbCBiYXNo X2NvbXBsZXRpb25fZGlyICUocGtnLWNvbmZpZyAtLXZhcmlhYmxlPWNvbXBsZXRpb25zZGlyIGJh c2gtY29tcGxldGlvbiB8fCBlY2hvIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQpCi0KIE5hbWU6ICAg ICAgICAgICAgY2lmcy11dGlscwotVmVyc2lvbjogICAgICAgICA3LjYKK1ZlcnNpb246ICAgICAg ICAgNy43CiBSZWxlYXNlOiAgICAgICAgICVhdXRvcmVsZWFzZQogU3VtbWFyeTogICAgICAgICBV dGlsaXRpZXMgZm9yIG1vdW50aW5nIGFuZCBtYW5hZ2luZyBDSUZTIG1vdW50cwogCkBAIC0yNCw4 ICsyMiw3IEBAIFJlY29tbWVuZHM6ICV7bmFtZX0taW5mbyV7P19pc2F9ID0gJXt2ZXJzaW9ufS0l e3JlbGVhc2V9CiAKIFNvdXJjZTA6ICAgICAgICAgaHR0cHM6Ly9kb3dubG9hZC5zYW1iYS5vcmcv cHViL2xpbnV4LWNpZnMvY2lmcy11dGlscy8le25hbWV9LSV7dmVyc2lvbn0udGFyLmJ6MgogCi1Q YXRjaDA6IGNpZnMudXBjYWxsLWZpeC1jb21waWxlci13YXJuaW5nLXdpdGgtV3ZsYS5wYXRjaAot UGF0Y2gxOiBjaWZzLnVwY2FsbC1maXgtcmVncmVzc2lvbi13aXRoLWtyYjUtY3JlZHVpZC5wYXRj aAorUGF0Y2gwOiBjaWZzLnVwY2FsbC1maXgta3JiNS1yZWdyZXNzaW9uLXdpdGgtdHJ1c3QtZG5z LnBhdGNoCiAKICVkZXNjcmlwdGlvbgogVGhlIFNNQi9DSUZTIHByb3RvY29sIGlzIGEgc3RhbmRh cmQgZmlsZSBzaGFyaW5nIHByb3RvY29sIHdpZGVseSBkZXBsb3llZApAQCAtNzIsNyArNjksNyBA QCBta2RpciAtcCAle2J1aWxkcm9vdH0le19zeXNjb25mZGlyfS8le25hbWV9CiBta2RpciAtcCAl e2J1aWxkcm9vdH0le19zeXNjb25mZGlyfS9yZXF1ZXN0LWtleS5kCiBpbnN0YWxsIC1tIDY0NCBj b250cmliL3JlcXVlc3Qta2V5LmQvY2lmcy5pZG1hcC5jb25mICV7YnVpbGRyb290fSV7X3N5c2Nv bmZkaXJ9L3JlcXVlc3Qta2V5LmQKIGluc3RhbGwgLW0gNjQ0IGNvbnRyaWIvcmVxdWVzdC1rZXku ZC9jaWZzLnNwbmVnby5jb25mICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9L3JlcXVlc3Qta2V5 LmQKLWluc3RhbGwgLURwbSA2NDQgYmFzaC1jb21wbGV0aW9uL3NtYmluZm8gJXtidWlsZHJvb3R9 JXtfZGF0YWRpcn0le2Jhc2hfY29tcGxldGlvbl9kaXJ9L3NtYmluZm8KK2luc3RhbGwgLURwbSA2 NDQgYmFzaC1jb21wbGV0aW9uL3NtYmluZm8gJXtidWlsZHJvb3R9JXtiYXNoX2NvbXBsZXRpb25z X2Rpcn0vc21iaW5mbwogCiAlZmlsZXMKICVkb2MKQEAgLTk0LDcgKzkxLDcgQEAgaW5zdGFsbCAt RHBtIDY0NCBiYXNoLWNvbXBsZXRpb24vc21iaW5mbyAle2J1aWxkcm9vdH0le19kYXRhZGlyfSV7 YmFzaF9jb21wbGV0aW8KICV7X21hbmRpcn0vbWFuOC9tb3VudC5jaWZzLioKICV7X21hbmRpcn0v bWFuOC9tb3VudC5zbWIzLioKICV7X21hbmRpcn0vbWFuOC9pZG1hcHdiLioKLSV7X2RhdGFkaXJ9 JXtiYXNoX2NvbXBsZXRpb25fZGlyfS9zbWJpbmZvCisle2Jhc2hfY29tcGxldGlvbnNfZGlyfS9z bWJpbmZvCiAlZGlyICV7X3N5c2NvbmZkaXJ9L2NpZnMtdXRpbHMKICVnaG9zdCAle19zeXNjb25m ZGlyfS9jaWZzLXV0aWxzL2lkbWFwLXBsdWdpbgogJWNvbmZpZyhub3JlcGxhY2UpICV7X3N5c2Nv bmZkaXJ9L3JlcXVlc3Qta2V5LmQvY2lmcy5pZG1hcC5jb25mCgpkaWZmIC0tZ2l0IGEvY2lmcy51 cGNhbGwtZml4LWNvbXBpbGVyLXdhcm5pbmctd2l0aC1XdmxhLnBhdGNoIGIvY2lmcy51cGNhbGwt Zml4LWNvbXBpbGVyLXdhcm5pbmctd2l0aC1XdmxhLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA1ZWYwZGMxLi4wMDAwMDAwCi0tLSBhL2NpZnMudXBjYWxsLWZpeC1jb21waWxl ci13YXJuaW5nLXdpdGgtV3ZsYS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAK LUZyb20gZDJmMzlhMjBkNjhhYTU1MDIzYjYzZTU3NWYwNjk0MTcyMWU2NDRjNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFBhdWxvIEFsY2FudGFyYSA8cGNAbWFuZ3VlYml0Lm9yZz4K LURhdGU6IFR1ZSwgMjMgSnVuIDIwMjYgMTU6MDY6MjAgLTAzMDAKLVN1YmplY3Q6IFtQQVRDSF0g Y2lmcy51cGNhbGw6IGZpeCBjb21waWxlciB3YXJuaW5nIHdpdGggLVd2bGEKLU1JTUUtVmVyc2lv bjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVGhlIGxlbmd0aCB2YWx1ZSBmb3IgQHBhdGggYXJy YXkgaW4gZ2V0X3VpZGdpZCgpIG5lZWRzIHRvIGJlIGV2YWx1YXRlZAotYXQgY29tcGlsZSB0aW1l LCBzbyByZXBsYWNlIHN0cmxlbigpIHdpdGggc2l6ZW9mKCkgd2hlbiBkZWZpbmluZwotUFJPQ19Q SURfUEFUSF9NQVhMRU4gYW5kIHRoZW4gZml4IHRoZSBmb2xsb3dpbmcgd2FybmluZzoKLQotIGNp ZnMudXBjYWxsLmM6IEluIGZ1bmN0aW9uIOKAmGdldF91aWRnaWTigJk6Ci0gY2lmcy51cGNhbGwu YzoxNDAwOjk6IHdhcm5pbmc6IElTTyBDOTAgZm9yYmlkcyBhcnJheSDigJhwYXRo4oCZIHdob3Nl IHNpemUKLSBjYW5ub3QgYmUgZXZhbHVhdGVkIFstV3ZsYV0KLSAgMTQwMCB8ICAgICAgICAgY2hh ciBwYXRoW1BST0NfUElEX1BBVEhfTUFYTEVOXSA9IHt9LCBidWZbMjU2XTsKLSAgICAgICB8ICAg ICAgICAgXn5+fgotCi1GaXhlczogOTcyYzViNWZmOTVlICgiY2lmcy51cGNhbGw6IHJlbW92ZSBn ZXRwd3VpZCgpIGRlcGVuZGVuY3kiKQotU2lnbmVkLW9mZi1ieTogUGF1bG8gQWxjYW50YXJhIChS ZWQgSGF0KSA8cGNAbWFuZ3VlYml0Lm9yZz4KLVJldmlld2VkLWJ5OiBEYXZpZCBIb3dlbGxzIDxk aG93ZWxsc0ByZWRoYXQuY29tPgotQ2M6IEVuem8gTWF0c3VtaXlhIDxlbWF0c3VtaXlhQHN1c2Uu ZGU+Ci1DYzogbGludXgtY2lmc0B2Z2VyLmtlcm5lbC5vcmcKLVNpZ25lZC1vZmYtYnk6IFN0ZXZl IEZyZW5jaCA8c3RmcmVuY2hAbWljcm9zb2Z0LmNvbT4KLS0tLQotIGNpZnMudXBjYWxsLmMgfCA0 ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvY2lmcy51cGNhbGwuYyBiL2NpZnMudXBjYWxsLmMKLWluZGV4IDAxNjkw ZGZjYWRlMS4uMTFkYmM2MTg2YTc0IDEwMDY0NAotLS0tIGEvY2lmcy51cGNhbGwuYwotKysrIGIv Y2lmcy51cGNhbGwuYwotQEAgLTEzNzUsOCArMTM3NSw4IEBAIHN0YXRpYyBpbnQgaXBfdG9fZnFk bihjb25zdCBjaGFyICphZGRyc3RyLCBjaGFyICpob3N0LCBzaXplX3QgaG9zdGxlbikKLSAJcmV0 dXJuIDA7Ci0gfQotIAotLS8qIGNvdmVyIHdvcnN0IGNhc2UvaW1wb3NzaWJsZSBzY2VuYXJpb3Ms ICsgMSBmb3IgTlVMICovCi0tI2RlZmluZSBQUk9DX1BJRF9QQVRIX01BWExFTgkoKGludClzdHJs ZW4oIi9wcm9jLzIxNDc0ODM2NDcvc3RhdHVzIikgKyAxKQotKy8qIGNvdmVyIHdvcnN0IGNhc2Uv aW1wb3NzaWJsZSBzY2VuYXJpb3MgKi8KLSsjZGVmaW5lIFBST0NfUElEX1BBVEhfTUFYTEVOCSgo aW50KXNpemVvZigiL3Byb2MvMjE0NzQ4MzY0Ny9zdGF0dXMiKSkKLSAvKiBtYXggdmFsaWQgVUlE L0dJRCBpcyAoVUlOVF9NQVggLSAxKSAqLwotICNkZWZpbmUgSU5WQUxJRF9VSURHSUQJCVVJTlRf TUFYCi0gCi0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvY2lmcy51cGNhbGwtZml4LWtyYjUt cmVncmVzc2lvbi13aXRoLXRydXN0LWRucy5wYXRjaCBiL2NpZnMudXBjYWxsLWZpeC1rcmI1LXJl Z3Jlc3Npb24td2l0aC10cnVzdC1kbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMWQ4NjBjOAotLS0gL2Rldi9udWxsCisrKyBiL2NpZnMudXBjYWxsLWZpeC1rcmI1 LXJlZ3Jlc3Npb24td2l0aC10cnVzdC1kbnMucGF0Y2gKQEAgLTAsMCArMSw0MTMgQEAKK0Zyb20g MzRhYWFmZjgwZTUzNmU0YmIxYjE1YmY2NDBjZjYxNWQ5YzJhZmJiZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFBhdWxvIEFsY2FudGFyYSA8cGNAbWFuZ3VlYml0Lm9yZz4KK0RhdGU6 IFR1ZSwgMTggQXVnIDIwMjYgMTY6MTY6MDYgLTAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gY2lmcy51 cGNhbGw6IGZpeCBrcmI1IHJlZ3Jlc3Npb24gd2l0aCAtLXRydXN0LWRucworCitDdXN0b21lciBy ZXBvcnRlZCByYW5kb21seSBmYWlsZWQga3JiNSBhdXRoZW50aWNhdGlvbnMgYWdhaW5zdCBjZXJ0 YWluCitzZXJ2ZXJzIHdoZW4gdXNpbmcgLS10cnVzdC1kbnMgcGFyYW1ldGVyLiAgVHVybmVkIG91 dCB0aGF0IHRoZSBjbGllbnQKK2ZhaWxlZCB0byBlc3RhYmxpc2ggc2Vzc2lvbnMgYWdhaW5zdCB0 aG9zZSBzZXJ2ZXJzIHdoZW4gdXNpbmcKK0NJRlMvS1JCNV9OVF9TUlZfSFNUIHNlcnZpY2UgcHJp bmNpcGFscy4KKworUmVzdG9yZSBvbGQgYmVoYXZpb3Igb2YgYWx3YXlzIHRyeWluZyBjaWZzL0tS QjVfTlRfVU5LTk9XTiBzZXJ2aWNlCitwcmluY2lwYWwgZmlyc3Qgd2hlbiB1c2luZyAtLXRydXN0 LWRucyBwYXJhbWV0ZXIuCisKK1JlcG9ydGVkLWJ5OiBQaWVyZ3VpZG8gTGFtYnJpIDxwbGFtYnJp QHJlZGhhdC5jb20+CitSZXBvcnRlZC1ieTogRnJhbmsgU29yZW5zb24gPHNvcmVuc29uQHJlZGhh dC5jb20+CitGaXhlczogNTYyYTZjYjRmOTljICgiY2lmcy51cGNhbGw6IFJldHJ5IGtyYjUgVEdT IHJlcXVlc3Qgd2l0aCB1cHBlcmNhc2Ugc2VydmljZSBuYW1lIikKK1NpZ25lZC1vZmYtYnk6IFBh dWxvIEFsY2FudGFyYSAoUmVkIEhhdCkgPHBjQG1hbmd1ZWJpdC5vcmc+CitDYzogU3RldmUgRnJl bmNoIDxzdGZyZW5jaEBtaWNyb3NvZnQuY29tPgorQ2M6IFNhbXVlbCBDYWJyZXJvIDxzY2FicmVy b0BzdXNlLmNvbT4KK0NjOiBsaW51eC1jaWZzQHZnZXIua2VybmVsLm9yZworLS0tCisgY2lmcy51 cGNhbGwuYyB8IDI4MSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNDAgaW5zZXJ0aW9ucygrKSwgMTQxIGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvY2lmcy51cGNhbGwuYyBiL2NpZnMudXBjYWxsLmMKK2luZGV4 IDQyMjA1ZTY2YTY3Ni4uNzZlODhiNzlhNzYwIDEwMDY0NAorLS0tIGEvY2lmcy51cGNhbGwuYwor KysrIGIvY2lmcy51cGNhbGwuYworQEAgLTY5OCwyMiArNjk4LDE4IEBAIG91dF9mcmVlX3ByaW5j aXBhbDoKKyAJcmV0dXJuIHJjOworIH0KKyAKKy1zdGF0aWMgaW50CistY2lmc19rcmI1X2dldF9y ZXEoY29uc3QgY2hhciAqaG9zdCwga3JiNV9jY2FjaGUgY2NhY2hlLAorLQkJICBEQVRBX0JMT0Ig KiBtZWNodG9rZW4sIERBVEFfQkxPQiAqIHNlc3Nfa2V5KQorK3N0YXRpYyBpbnQgY2lmc19rcmI1 X2dldF9yZXEoY29uc3Qgc3RydWN0IGNpZnNfc2VydmljZV9uYW1lICpzdmMsCisrCQkJICAgICBj b25zdCBjaGFyICpob3N0LCBrcmI1X2NjYWNoZSBjY2FjaGUsCisrCQkJICAgICBEQVRBX0JMT0Ig Km1lY2h0b2tlbiwgREFUQV9CTE9CICpzZXNzX2tleSkKKyB7CisgCWtyYjVfZXJyb3JfY29kZSBy ZXQ7CisgCWtyYjVfa2V5YmxvY2sgKnRva2I7CistCWtyYjVfY3JlZHMgaW5fY3JlZHMsICpvdXRf Y3JlZHM7CisrCWtyYjVfY3JlZHMgaW5fY3JlZHMgPSB7fSwgKm91dF9jcmVkczsKKyAJa3JiNV9k YXRhIGFwcmVxX3BrdCwgaW5fZGF0YTsKKyAJa3JiNV9hdXRoX2NvbnRleHQgYXV0aF9jb250ZXh0 ID0gTlVMTDsKKyAjaWYgZGVmaW5lZChIQVZFX0tSQjVfQVVUSF9DT05fU0VUQUREUlMpICYmIGRl ZmluZWQoSEFWRV9LUkI1X0FVVEhfQ09OX1NFVF9SRVFfQ0tTVU1UWVBFKQorIAlzdGF0aWMgY2hh ciBnc3NfY2tzdW1bMjRdID0geyAweDEwLCAweDAwLCAvKiAuLi4gKi99OworICNlbmRpZgorLQlz aXplX3QgY291bnQgPSBzaXplb2YoY2lmc19zZXJ2aWNlX25hbWVzKSAvIHNpemVvZihzdHJ1Y3Qg Y2lmc19zZXJ2aWNlX25hbWUpOworLQlzaXplX3QgaSA9IDA7CistCistCW1lbXNldCgmaW5fY3Jl ZHMsIDAsIHNpemVvZihpbl9jcmVkcykpOworIAorIAlyZXQgPSBrcmI1X2NjX2dldF9wcmluY2lw YWwoY29udGV4dCwgY2NhY2hlLCAmaW5fY3JlZHMuY2xpZW50KTsKKyAJaWYgKHJldCkgeworQEAg LTcyMiwyMSArNzE4LDE2IEBAIGNpZnNfa3JiNV9nZXRfcmVxKGNvbnN0IGNoYXIgKmhvc3QsIGty YjVfY2NhY2hlIGNjYWNoZSwKKyAJCXJldHVybiByZXQ7CisgCX0KKyAKKy0JZm9yIChpID0gMDsg aSA8IGNvdW50OyBpKyspIHsKKy0JCXJldCA9IGtyYjVfc25hbWVfdG9fcHJpbmNpcGFsKGNvbnRl eHQsIGhvc3QsIGNpZnNfc2VydmljZV9uYW1lc1tpXS5uYW1lLAorLQkJCQljaWZzX3NlcnZpY2Vf bmFtZXNbaV0udHlwZSwgJmluX2NyZWRzLnNlcnZlcik7CistCQlpZiAocmV0KSB7CistCQkJc3lz bG9nKExPR19ERUJVRywgIiVzOiB1bmFibGUgdG8gY29udmVydCBzbmFtZSB0byBwcmluYyAoJXMp LiIsCistCQkJICAgICAgIF9fZnVuY19fLCBob3N0KTsKKy0JCQlnb3RvIG91dF9mcmVlX3ByaW5j aXBhbDsKKy0JCX0KKy0KKy0JCXJldCA9IGtyYjVfZ2V0X2NyZWRlbnRpYWxzKGNvbnRleHQsIDAs IGNjYWNoZSwgJmluX2NyZWRzLCAmb3V0X2NyZWRzKTsKKy0JCWtyYjVfZnJlZV9wcmluY2lwYWwo Y29udGV4dCwgaW5fY3JlZHMuc2VydmVyKTsKKy0JCWlmICghcmV0KSB7CistCQkJYnJlYWs7Cist CQl9CisrCXJldCA9IGtyYjVfc25hbWVfdG9fcHJpbmNpcGFsKGNvbnRleHQsIGhvc3QsIHN2Yy0+ bmFtZSwKKysJCQkJICAgICAgc3ZjLT50eXBlLCAmaW5fY3JlZHMuc2VydmVyKTsKKysJaWYgKHJl dCkgeworKwkJc3lzbG9nKExPR19ERUJVRywgIiVzOiB1bmFibGUgdG8gY29udmVydCBzbmFtZSB0 byBwcmluYyAoJXMpLiIsCisrCQkgICAgICAgX19mdW5jX18sIGhvc3QpOworKwkJZ290byBvdXRf ZnJlZV9wcmluY2lwYWw7CisgCX0KKysKKysJcmV0ID0ga3JiNV9nZXRfY3JlZGVudGlhbHMoY29u dGV4dCwgMCwgY2NhY2hlLCAmaW5fY3JlZHMsICZvdXRfY3JlZHMpOworKwlrcmI1X2ZyZWVfcHJp bmNpcGFsKGNvbnRleHQsIGluX2NyZWRzLnNlcnZlcik7CisgCWlmIChyZXQpIHsKKyAJCXN5c2xv ZyhMT0dfREVCVUcsICIlczogdW5hYmxlIHRvIGdldCBjcmVkZW50aWFscyBmb3IgJXMiLAorIAkJ ICAgICAgIF9fZnVuY19fLCBob3N0KTsKK0BAIC04NDksOCArODQwLDkgQEAgdm9pZCBjaWZzX2dz c19kaXNwbGF5X3N0YXR1cyhjaGFyICptc2csIE9NX3VpbnQzMiBtYWpfc3RhdCwgT01fdWludDMy IG1pbl9zdGF0KQorIAljaWZzX2dzc19kaXNwbGF5X3N0YXR1c18xKG1zZywgbWluX3N0YXQsIEdT U19DX01FQ0hfQ09ERSk7CisgfQorIAorLXN0YXRpYyBpbnQKKy1jaWZzX2dzc19nZXRfcmVxKGNv bnN0IGNoYXIgKmhvc3QsIERBVEFfQkxPQiAqbWVjaHRva2VuLCBEQVRBX0JMT0IgKnNlc3Nfa2V5 KQorK3N0YXRpYyBpbnQgY2lmc19nc3NfZ2V0X3JlcShjb25zdCBzdHJ1Y3QgY2lmc19zZXJ2aWNl X25hbWUgKnN2YywKKysJCQkgICAgY29uc3QgY2hhciAqaG9zdCwgREFUQV9CTE9CICptZWNodG9r ZW4sCisrCQkJICAgIERBVEFfQkxPQiAqc2Vzc19rZXkpCisgeworIAlPTV91aW50MzIgbWFqX3N0 YXQsIG1pbl9zdGF0OworIAlnc3NfbmFtZV90IHRhcmdldF9uYW1lOworQEAgLTg1OCw1MiArODUw LDQzIEBAIGNpZnNfZ3NzX2dldF9yZXEoY29uc3QgY2hhciAqaG9zdCwgREFUQV9CTE9CICptZWNo dG9rZW4sIERBVEFfQkxPQiAqc2Vzc19rZXkpCisgCWdzc19idWZmZXJfZGVzYyBvdXRwdXRfdG9r ZW47CisgCWdzc19rcmI1X2x1Y2lkX2NvbnRleHRfdjFfdCAqbHVjaWRfY3R4ID0gTlVMTDsKKyAJ Z3NzX2tyYjVfbHVjaWRfa2V5X3QgKmtleSA9IE5VTEw7CistCXNpemVfdCBjb3VudCA9IHNpemVv ZihjaWZzX3NlcnZpY2VfbmFtZXMpIC8gc2l6ZW9mKHN0cnVjdCBjaWZzX3NlcnZpY2VfbmFtZSk7 CistCXNpemVfdCBpOworKwlnc3NfYnVmZmVyX2Rlc2MgdGFyZ2V0X25hbWVfYnVmOworKwlzaXpl X3Qgc2VydmljZV9uYW1lX2xlbjsKKysJY2hhciAqc2VydmljZV9uYW1lOworIAorLQlmb3IgKGkg PSAwOyBpIDwgY291bnQ7IGkrKykgeworLQkJc2l6ZV90IHNlcnZpY2VfbmFtZV9sZW4gPSBzdHJs ZW4oY2lmc19zZXJ2aWNlX25hbWVzW2ldLm5hbWUpICsKKy0JCQkxIC8qIEAgKi8gKyBzdHJsZW4o aG9zdCkgKyAxOworLQkJY2hhciAqc2VydmljZV9uYW1lID0gbWFsbG9jKHNlcnZpY2VfbmFtZV9s ZW4pOworLQkJaWYgKCFzZXJ2aWNlX25hbWUpIHsKKy0JCQlzeXNsb2coTE9HX0RFQlVHLCAib3V0 IG9mIG1lbW9yeSBhbGxvY2F0aW5nIHNlcnZpY2UgbmFtZSIpOworLQkJCW1hal9zdGF0ID0gR1NT X1NfRkFJTFVSRTsKKy0JCQlnb3RvIG91dDsKKy0JCX0KKy0KKy0JCXNucHJpbnRmKHNlcnZpY2Vf bmFtZSwgc2VydmljZV9uYW1lX2xlbiwgIiVzQCVzIiwKKy0JCQkgY2lmc19zZXJ2aWNlX25hbWVz W2ldLm5hbWUsIGhvc3QpOworLQkJZ3NzX2J1ZmZlcl9kZXNjIHRhcmdldF9uYW1lX2J1ZjsKKy0J CXRhcmdldF9uYW1lX2J1Zi52YWx1ZSA9IHNlcnZpY2VfbmFtZTsKKy0JCXRhcmdldF9uYW1lX2J1 Zi5sZW5ndGggPSBzZXJ2aWNlX25hbWVfbGVuOworLQorLQkJbWFqX3N0YXQgPSBnc3NfaW1wb3J0 X25hbWUoJm1pbl9zdGF0LCAmdGFyZ2V0X25hbWVfYnVmLAorLQkJCQlHU1NfQ19OVF9IT1NUQkFT RURfU0VSVklDRSwgJnRhcmdldF9uYW1lKTsKKy0JCWZyZWUoc2VydmljZV9uYW1lKTsKKy0JCWlm IChHU1NfRVJST1IobWFqX3N0YXQpKSB7CistCQkJY2lmc19nc3NfZGlzcGxheV9zdGF0dXMoImdz c19pbXBvcnRfbmFtZSIsIG1hal9zdGF0LCBtaW5fc3RhdCk7CistCQkJZ290byBvdXQ7CistCQl9 CisrCXNlcnZpY2VfbmFtZV9sZW4gPSBzdHJsZW4oc3ZjLT5uYW1lKSArIDEgLyogQCAqLyArIHN0 cmxlbihob3N0KSArIDE7CisrCXNlcnZpY2VfbmFtZSA9IG1hbGxvYyhzZXJ2aWNlX25hbWVfbGVu KTsKKysJaWYgKCFzZXJ2aWNlX25hbWUpIHsKKysJCXN5c2xvZyhMT0dfREVCVUcsICJvdXQgb2Yg bWVtb3J5IGFsbG9jYXRpbmcgc2VydmljZSBuYW1lIik7CisrCQltYWpfc3RhdCA9IEdTU19TX0ZB SUxVUkU7CisrCQlnb3RvIG91dDsKKysJfQorIAorLQkJbWFqX3N0YXQgPSBnc3NfaW5pdF9zZWNf Y29udGV4dCgmbWluX3N0YXQsCistCQkJCUdTU19DX05PX0NSRURFTlRJQUwsIC8qIGNsYWltYW50 X2NyZWRfaGFuZGxlICovCistCQkJCSZjdHgsCistCQkJCXRhcmdldF9uYW1lLAorLQkJCQlkaXNj YXJkX2NvbnN0KGdzc19tZWNoX2tyYjUpLCAvKiBmb3JjZSBrcmI1ICovCistCQkJCTAsIC8qIGZs YWdzICovCistCQkJCTAsIC8qIHRpbWVfcmVxICovCistCQkJCUdTU19DX05PX0NIQU5ORUxfQklO RElOR1MsIC8qIGlucHV0X2NoYW5fYmluZGluZ3MgKi8KKy0JCQkJR1NTX0NfTk9fQlVGRkVSLAor LQkJCQlOVUxMLCAvKiBhY3R1YWwgbWVjaCB0eXBlICovCistCQkJCSZvdXRwdXRfdG9rZW4sCist CQkJCU5VTEwsIC8qIHJldF9mbGFncyAqLworLQkJCQlOVUxMKTsgLyogdGltZV9yZWMgKi8KKysJ c25wcmludGYoc2VydmljZV9uYW1lLCBzZXJ2aWNlX25hbWVfbGVuLCAiJXNAJXMiLCBzdmMtPm5h bWUsIGhvc3QpOworIAorLQkJaWYgKG1hal9zdGF0ID09IEdTU19TX0NPTVBMRVRFIHx8IG1hal9z dGF0ID09IEdTU19TX0NPTlRJTlVFX05FRURFRCkgeworLQkJCWJyZWFrOworLQkJfQorLQkJKHZv aWQpIGdzc19yZWxlYXNlX25hbWUoJm1pbl9zdGF0LCAmdGFyZ2V0X25hbWUpOworKwl0YXJnZXRf bmFtZV9idWYudmFsdWUgPSBzZXJ2aWNlX25hbWU7CisrCXRhcmdldF9uYW1lX2J1Zi5sZW5ndGgg PSBzZXJ2aWNlX25hbWVfbGVuOworKwltYWpfc3RhdCA9IGdzc19pbXBvcnRfbmFtZSgmbWluX3N0 YXQsICZ0YXJnZXRfbmFtZV9idWYsCisrCQkJCSAgIEdTU19DX05UX0hPU1RCQVNFRF9TRVJWSUNF LCAmdGFyZ2V0X25hbWUpOworKwlmcmVlKHNlcnZpY2VfbmFtZSk7CisrCWlmIChHU1NfRVJST1Io bWFqX3N0YXQpKSB7CisrCQljaWZzX2dzc19kaXNwbGF5X3N0YXR1cygiZ3NzX2ltcG9ydF9uYW1l IiwgbWFqX3N0YXQsIG1pbl9zdGF0KTsKKysJCWdvdG8gb3V0OworIAl9CisrCisrCW1hal9zdGF0 ID0gZ3NzX2luaXRfc2VjX2NvbnRleHQoJm1pbl9zdGF0LAorKwkJCUdTU19DX05PX0NSRURFTlRJ QUwsIC8qIGNsYWltYW50X2NyZWRfaGFuZGxlICovCisrCQkJJmN0eCwKKysJCQl0YXJnZXRfbmFt ZSwKKysJCQlkaXNjYXJkX2NvbnN0KGdzc19tZWNoX2tyYjUpLCAvKiBmb3JjZSBrcmI1ICovCisr CQkJMCwgLyogZmxhZ3MgKi8KKysJCQkwLCAvKiB0aW1lX3JlcSAqLworKwkJCUdTU19DX05PX0NI QU5ORUxfQklORElOR1MsIC8qIGlucHV0X2NoYW5fYmluZGluZ3MgKi8KKysJCQlHU1NfQ19OT19C VUZGRVIsCisrCQkJTlVMTCwgLyogYWN0dWFsIG1lY2ggdHlwZSAqLworKwkJCSZvdXRwdXRfdG9r ZW4sCisrCQkJTlVMTCwgLyogcmV0X2ZsYWdzICovCisrCQkJTlVMTCk7IC8qIHRpbWVfcmVjICov CisgCWlmIChtYWpfc3RhdCAhPSBHU1NfU19DT01QTEVURSAmJgorIAkJbWFqX3N0YXQgIT0gR1NT X1NfQ09OVElOVUVfTkVFREVEKSB7CisgCQljaWZzX2dzc19kaXNwbGF5X3N0YXR1cygiaW5pdF9z ZWNfY29udGV4dCIsIG1hal9zdGF0LCBtaW5fc3RhdCk7CitAQCAtOTE0LDggKzg5Nyw3IEBAIGNp ZnNfZ3NzX2dldF9yZXEoY29uc3QgY2hhciAqaG9zdCwgREFUQV9CTE9CICptZWNodG9rZW4sIERB VEFfQkxPQiAqc2Vzc19rZXkpCisgCSptZWNodG9rZW4gPSBkYXRhX2Jsb2Iob3V0cHV0X3Rva2Vu LnZhbHVlLCBvdXRwdXRfdG9rZW4ubGVuZ3RoKTsKKyAKKyAJbWFqX3N0YXQgPSBnc3Nfa3JiNV9l eHBvcnRfbHVjaWRfc2VjX2NvbnRleHQoJm1pbl9zdGF0LCAmY3R4LCAxLAorLQkJCQkJCQkodm9p ZCAqKikmbHVjaWRfY3R4KTsKKy0KKysJCQkJCQkgICAgICh2b2lkICoqKSZsdWNpZF9jdHgpOwor IAlpZiAoR1NTX0VSUk9SKG1hal9zdGF0KSkgeworIAkJY2lmc19nc3NfZGlzcGxheV9zdGF0dXMo Imdzc19rcmI1X2V4cG9ydF9sdWNpZF9zZWNfY29udGV4dCIsCisgCQkJCQltYWpfc3RhdCwgbWlu X3N0YXQpOworQEAgLTk3Miw5ICs5NTQsOSBAQCBvdXQ6CisgICoKKyAgKiByZXQ6IDAgLSBzdWNj ZXNzLCBvdGhlcnMgLSBmYWlsdXJlCisgICovCistc3RhdGljIGludAorLWhhbmRsZV9rcmI1X21l Y2goY29uc3QgY2hhciAqb2lkLCBjb25zdCBjaGFyICpob3N0LCBEQVRBX0JMT0IgKiBzZWNibG9i LAorLQkJIERBVEFfQkxPQiAqIHNlc3Nfa2V5LCBrcmI1X2NjYWNoZSBjY2FjaGUpCisrc3RhdGlj IGludCBoYW5kbGVfa3JiNV9tZWNoKGNvbnN0IGNoYXIgKm9pZCwgY29uc3Qgc3RydWN0IGNpZnNf c2VydmljZV9uYW1lICpzdmMsCisrCQkJICAgIGNvbnN0IGNoYXIgKmhvc3QsIERBVEFfQkxPQiAq c2VjYmxvYiwKKysJCQkgICAgREFUQV9CTE9CICpzZXNzX2tleSwga3JiNV9jY2FjaGUgY2NhY2hl KQorIHsKKyAJaW50IHJldHZhbDsKKyAJREFUQV9CTE9CIHRrdF93cmFwcGVkOworQEAgLTk4Nyw3 ICs5NjksNyBAQCBoYW5kbGVfa3JiNV9tZWNoKGNvbnN0IGNoYXIgKm9pZCwgY29uc3QgY2hhciAq aG9zdCwgREFUQV9CTE9CICogc2VjYmxvYiwKKyAJICovCisgCWlmICghY2NhY2hlKSB7CisgCQlz eXNsb2coTE9HX0RFQlVHLCAiJXM6IHVzaW5nIEdTUy1BUEkiLCBfX2Z1bmNfXyk7CistCQlyZXR2 YWwgPSBjaWZzX2dzc19nZXRfcmVxKGhvc3QsICZ0a3Rfd3JhcHBlZCwgc2Vzc19rZXkpOworKwkJ cmV0dmFsID0gY2lmc19nc3NfZ2V0X3JlcShzdmMsIGhvc3QsICZ0a3Rfd3JhcHBlZCwgc2Vzc19r ZXkpOworIAkJaWYgKHJldHZhbCkgeworIAkJCXN5c2xvZyhMT0dfREVCVUcsICIlczogZmFpbGVk IHRvIG9idGFpbiBzZXJ2aWNlIHRpY2tldCB2aWEgR1NTICglZCkiLAorIAkJCV9fZnVuY19fLCBy ZXR2YWwpOworQEAgLTk5OCw3ICs5ODAsNyBAQCBoYW5kbGVfa3JiNV9tZWNoKGNvbnN0IGNoYXIg Km9pZCwgY29uc3QgY2hhciAqaG9zdCwgREFUQV9CTE9CICogc2VjYmxvYiwKKyAJCXN5c2xvZyhM T0dfREVCVUcsICIlczogdXNpbmcgbmF0aXZlIGtyYjUiLCBfX2Z1bmNfXyk7CisgCisgCQkvKiBn ZXQgYSBrZXJiZXJvcyB0aWNrZXQgZm9yIHRoZSBzZXJ2aWNlIGFuZCBleHRyYWN0IHRoZSBzZXNz aW9uIGtleSAqLworLQkJcmV0dmFsID0gY2lmc19rcmI1X2dldF9yZXEoaG9zdCwgY2NhY2hlLCAm dGt0LCBzZXNzX2tleSk7CisrCQlyZXR2YWwgPSBjaWZzX2tyYjVfZ2V0X3JlcShzdmMsIGhvc3Qs IGNjYWNoZSwgJnRrdCwgc2Vzc19rZXkpOworIAkJaWYgKHJldHZhbCkgeworIAkJCXN5c2xvZyhM T0dfREVCVUcsICIlczogZmFpbGVkIHRvIG9idGFpbiBzZXJ2aWNlIHRpY2tldCAoJWQpIiwKKyAJ CQkgICAgICAgX19mdW5jX18sIHJldHZhbCk7CitAQCAtMTU3MCw2ICsxNTUyLDgzIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1tdID0geworIAl7TlVMTCwgMCwgTlVM TCwgMH0KKyB9OworIAorK3N0YXRpYyBsb25nIGdldF9zcG5fa2V5X2Zyb21faG9zdChjb25zdCBz dHJ1Y3QgZGVjb2RlZF9hcmdzICphcmcsCisrCQkJCSAgY29uc3Qgc3RydWN0IGNpZnNfc2Vydmlj ZV9uYW1lICpzdmMsCisrCQkJCSAgY2hhciAqaG9zdCwgREFUQV9CTE9CICpzZWNibG9iLAorKwkJ CQkgIERBVEFfQkxPQiAqc2Vzc19rZXksIGJvb2wgdHJ5X2RucywKKysJCQkJICBrcmI1X2NjYWNo ZSBjY2FjaGUpCisreworKwljaGFyIGhvc3RidWZbTklfTUFYSE9TVF0gPSB7fTsKKysJY29uc3Qg Y2hhciAqb2lkOworKwlsb25nIHJjOworKworKwlpZiAoYXJnLT5zZWMgPT0gTVNfS1JCNSkKKysJ CW9pZCA9IE9JRF9LRVJCRVJPUzVfT0xEOworKwllbHNlCisrCQlvaWQgPSBPSURfS0VSQkVST1M1 OworKworK3JldHJ5X25ld19ob3N0bmFtZToKKysJbG93ZXJjYXNlX3N0cmluZyhob3N0KTsKKysJ cmMgPSBoYW5kbGVfa3JiNV9tZWNoKG9pZCwgc3ZjLCBob3N0LCBzZWNibG9iLCBzZXNzX2tleSwg Y2NhY2hlKTsKKysJaWYgKCFyYykKKysJCXJldHVybiByYzsKKysKKysJLyoKKysJICogSWYgaG9z dG5hbWUgaGFzIGEgJy4nLCBhc3N1bWUgaXQncyBhIEZRRE4sIG90aGVyd2lzZSB3ZQorKwkgKiB3 YW50IHRvIGd1ZXNzIHRoZSBkb21haW5uYW1lLgorKwkgKi8KKysJaWYgKCFzdHJjaHIoaG9zdCwg Jy4nKSkgeworKwkJc3RydWN0IGFkZHJpbmZvIGhpbnRzID0ge307CisrCQlzdHJ1Y3QgYWRkcmlu Zm8gKmFpOworKwkJY2hhciAqZG9tYWlubmFtZTsKKysJCWNoYXIgZnFkbltOSV9NQVhIT1NUXTsK KysKKysJCS8qCisrCQkgKiB1c2UgZ2V0YWRkcmluZm8oKSB0byByZXNvbHZlIHRoZSBob3N0bmFt ZSBvZiB0aGUKKysJCSAqIHNlcnZlciBhbmQgc2V0IGFpX2Nhbm9ubmFtZS4KKysJCSAqLworKwkJ aGludHMuYWlfZmFtaWx5ID0gQUZfVU5TUEVDOworKwkJaGludHMuYWlfZmxhZ3MgPSBBSV9DQU5P Tk5BTUU7CisrCQlyYyA9IGdldGFkZHJpbmZvKGhvc3QsIE5VTEwsICZoaW50cywgJmFpKTsKKysJ CWlmIChyYykgeworKwkJCXN5c2xvZyhMT0dfRVJSLCAiVW5hYmxlIHRvIHJlc29sdmUgaG9zdCBh ZGRyZXNzOiAlcyBbJXNdIiwKKysJCQkgICAgICAgaG9zdCwgZ2FpX3N0cmVycm9yKHJjKSk7Cisr CQkJcmV0dXJuIHJjOworKwkJfQorKworKwkJLyogc2NhbiBmb3J3YXJkIHRvIGZpcnN0ICcuJyBp biBhaV9jYW5vbm5uYW1lICovCisrCQlkb21haW5uYW1lID0gc3RyY2hyKGFpLT5haV9jYW5vbm5h bWUsICcuJyk7CisrCQlpZiAoIWRvbWFpbm5hbWUpIHsKKysJCQlyYyA9IC1FSU5WQUw7CisrCQkJ ZnJlZWFkZHJpbmZvKGFpKTsKKysJCQlyZXR1cm4gcmM7CisrCQl9CisrCQlsb3dlcmNhc2Vfc3Ry aW5nKGRvbWFpbm5hbWUpOworKwkJcmMgPSBzbnByaW50ZihmcWRuLCBzaXplb2YoZnFkbiksICIl cyVzIiwKKysJCQkgICAgICBob3N0LCBkb21haW5uYW1lKTsKKysJCWZyZWVhZGRyaW5mbyhhaSk7 CisrCQlpZiAocmMgPCAwIHx8IChzaXplX3QpcmMgPj0gc2l6ZW9mKGZxZG4pKSB7CisrCQkJc3lz bG9nKExPR19FUlIsICJQcm9ibGVtIHNldHRpbmcgaG9zdG5hbWUgaW4gc3RyaW5nOiAlbGQiLCBy Yyk7CisrCQkJcmMgPSAtRUlOVkFMOworKwkJCXJldHVybiByYzsKKysJCX0KKysKKysJCXJjID0g aGFuZGxlX2tyYjVfbWVjaChvaWQsIHN2YywgZnFkbiwgc2VjYmxvYiwgc2Vzc19rZXksIGNjYWNo ZSk7CisrCQlpZiAoIXJjKQorKwkJCXJldHVybiByYzsKKysJfQorKworKwlpZiAodHJ5X2RucyAm JiAoYXJnLT5oYXZlICYgREtEX0hBVkVfSVApKSB7CisrCQlyYyA9IGlwX3RvX2ZxZG4oYXJnLT5p cCwgaG9zdGJ1Ziwgc2l6ZW9mKGhvc3RidWYpKTsKKysJCWlmIChyYykKKysJCQlyZXR1cm4gcmM7 CisrCQl0cnlfZG5zID0gZmFsc2U7CisrCQlob3N0ID0gaG9zdGJ1ZjsKKysJCWdvdG8gcmV0cnlf bmV3X2hvc3RuYW1lOworKwl9CisrCXJldHVybiByYzsKKyt9CisrCisgaW50IG1haW4oY29uc3Qg aW50IGFyZ2MsIGNoYXIgKmNvbnN0IGFyZ3ZbXSkKKyB7CisgCXN0cnVjdCBjaWZzX3NwbmVnb19t c2cgKmtleWRhdGEgPSBOVUxMOworQEAgLTE1ODIsOSArMTY0MSw4IEBAIGludCBtYWluKGNvbnN0 IGludCBhcmdjLCBjaGFyICpjb25zdCBhcmd2W10pCisgCWludCBtYXNrOworIAlib29sIHRyeV9k bnMgPSBmYWxzZSwgbGVnYWN5X3VpZCA9IGZhbHNlICwgZW52X3Byb2JlID0gdHJ1ZTsKKyAJY2hh ciAqYnVmOworLQljaGFyIGhvc3RidWZbTklfTUFYSE9TVF0sICpob3N0OworKwljaGFyICpob3N0 OworIAlzdHJ1Y3QgZGVjb2RlZF9hcmdzICphcmcgPSBOVUxMOworLQljb25zdCBjaGFyICpvaWQ7 CisgCXVpZF90IHVpZDsKKyAJZ2lkX3QgZ2lkOworIAlzdHJ1Y3QgcGFzc3dkICpwdzsKK0BAIC0x NTkzLDggKzE2NTEsOCBAQCBpbnQgbWFpbihjb25zdCBpbnQgYXJnYywgY2hhciAqY29uc3QgYXJn dltdKQorIAlrcmI1X2NjYWNoZSBjY2FjaGUgPSBOVUxMOworIAl1bnNpZ25lZCBleHBpcmVfdGlt ZSA9IEROU19SRVNPTFZFUl9ERUZBVUxUX1RJTUVPVVQ7CisgCWNvbnN0IGNoYXIgKmtleV9kZXNj ciA9IE5VTEw7CistCistCWhvc3RidWZbMF0gPSAnXDAnOworKwlzaXplX3QgaTsKKysJc2l6ZV90 IG51bV9zcG5zID0gc2l6ZW9mKGNpZnNfc2VydmljZV9uYW1lcykgLyBzaXplb2YoY2lmc19zZXJ2 aWNlX25hbWVzWzBdKTsKKyAKKyAJb3BlbmxvZyhwcm9nLCAwLCBMT0dfREFFTU9OKTsKKyAJbWFz ayA9IExPR19VUFRPKExPR19FUlIpOworQEAgLTE4NjQsNzMgKzE5MjIsMTQgQEAgaW50IG1haW4o Y29uc3QgaW50IGFyZ2MsIGNoYXIgKmNvbnN0IGFyZ3ZbXSkKKyAJCSAqIFRSWSBvbmx5OgorIAkJ ICogY2lmcy9iYXIuZXhhbXBsZS5jb21AUkVBTE0KKyAJCSAqLworLQkJaWYgKGFyZy0+c2VjID09 IE1TX0tSQjUpCistCQkJb2lkID0gT0lEX0tFUkJFUk9TNV9PTEQ7CistCQllbHNlCistCQkJb2lk ID0gT0lEX0tFUkJFUk9TNTsKKy0KKy1yZXRyeV9uZXdfaG9zdG5hbWU6CistCQlsb3dlcmNhc2Vf c3RyaW5nKGhvc3QpOworLQkJcmMgPSBoYW5kbGVfa3JiNV9tZWNoKG9pZCwgaG9zdCwgJnNlY2Js b2IsICZzZXNzX2tleSwgY2NhY2hlKTsKKy0JCWlmICghcmMpCistCQkJYnJlYWs7CistCistCQkv KgorLQkJICogSWYgaG9zdG5hbWUgaGFzIGEgJy4nLCBhc3N1bWUgaXQncyBhIEZRRE4sIG90aGVy d2lzZSB3ZQorLQkJICogd2FudCB0byBndWVzcyB0aGUgZG9tYWlubmFtZS4KKy0JCSAqLworLQkJ aWYgKCFzdHJjaHIoaG9zdCwgJy4nKSkgeworLQkJCXN0cnVjdCBhZGRyaW5mbyBoaW50czsKKy0J CQlzdHJ1Y3QgYWRkcmluZm8gKmFpOworLQkJCWNoYXIgKmRvbWFpbm5hbWU7CistCQkJY2hhciBm cWRuW05JX01BWEhPU1RdOworLQorLQkJCS8qCistCQkJICogdXNlIGdldGFkZHJpbmZvKCkgdG8g cmVzb2x2ZSB0aGUgaG9zdG5hbWUgb2YgdGhlCistCQkJICogc2VydmVyIGFuZCBzZXQgYWlfY2Fu b25uYW1lLgorLQkJCSAqLworLQkJCW1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOwor LQkJCWhpbnRzLmFpX2ZhbWlseSA9IEFGX1VOU1BFQzsKKy0JCQloaW50cy5haV9mbGFncyA9IEFJ X0NBTk9OTkFNRTsKKy0JCQlyYyA9IGdldGFkZHJpbmZvKGhvc3QsIE5VTEwsICZoaW50cywgJmFp KTsKKy0JCQlpZiAocmMpIHsKKy0JCQkJc3lzbG9nKExPR19FUlIsICJVbmFibGUgdG8gcmVzb2x2 ZSBob3N0IGFkZHJlc3M6ICVzIFslc10iLAorLQkJCQkgICAgICAgaG9zdCwgZ2FpX3N0cmVycm9y KHJjKSk7CistCQkJCWJyZWFrOworLQkJCX0KKy0KKy0JCQkvKiBzY2FuIGZvcndhcmQgdG8gZmly c3QgJy4nIGluIGFpX2Nhbm9ubm5hbWUgKi8KKy0JCQlkb21haW5uYW1lID0gc3RyY2hyKGFpLT5h aV9jYW5vbm5hbWUsICcuJyk7CistCQkJaWYgKCFkb21haW5uYW1lKSB7CistCQkJCXJjID0gLUVJ TlZBTDsKKy0JCQkJZnJlZWFkZHJpbmZvKGFpKTsKKy0JCQkJYnJlYWs7CistCQkJfQorLQkJCWxv d2VyY2FzZV9zdHJpbmcoZG9tYWlubmFtZSk7CistCQkJcmMgPSBzbnByaW50ZihmcWRuLCBzaXpl b2YoZnFkbiksICIlcyVzIiwKKy0JCQkJCWhvc3QsIGRvbWFpbm5hbWUpOworLQkJCWZyZWVhZGRy aW5mbyhhaSk7CistCQkJaWYgKHJjIDwgMCB8fCAoc2l6ZV90KXJjID49IHNpemVvZihmcWRuKSkg eworLQkJCQlzeXNsb2coTE9HX0VSUiwgIlByb2JsZW0gc2V0dGluZyBob3N0bmFtZSBpbiBzdHJp bmc6ICVsZCIsIHJjKTsKKy0JCQkJcmMgPSAtRUlOVkFMOworLQkJCQlicmVhazsKKy0JCQl9Cist CistCQkJcmMgPSBoYW5kbGVfa3JiNV9tZWNoKG9pZCwgZnFkbiwgJnNlY2Jsb2IsICZzZXNzX2tl eSwgY2NhY2hlKTsKKysJCWZvciAoaSA9IDA7IGkgPCBudW1fc3BuczsgaSsrKSB7CisrCQkJcmMg PSBnZXRfc3BuX2tleV9mcm9tX2hvc3QoYXJnLCAmY2lmc19zZXJ2aWNlX25hbWVzW2ldLAorKwkJ CQkJCSAgIGhvc3QsICZzZWNibG9iLCAmc2Vzc19rZXksCisrCQkJCQkJICAgdHJ5X2RucywgY2Nh Y2hlKTsKKyAJCQlpZiAoIXJjKQorIAkJCQlicmVhazsKKyAJCX0KKy0KKy0JCWlmICghdHJ5X2Ru cyB8fCAhKGFyZy0+aGF2ZSAmIERLRF9IQVZFX0lQKSkKKy0JCQlicmVhazsKKy0KKy0JCXJjID0g aXBfdG9fZnFkbihhcmctPmlwLCBob3N0YnVmLCBzaXplb2YoaG9zdGJ1ZikpOworLQkJaWYgKHJj KQorLQkJCWJyZWFrOworLQorLQkJdHJ5X2RucyA9IGZhbHNlOworLQkJaG9zdCA9IGhvc3RidWY7 CistCQlnb3RvIHJldHJ5X25ld19ob3N0bmFtZTsKKysJCWJyZWFrOworIAlkZWZhdWx0OgorIAkJ c3lzbG9nKExPR19FUlIsICJzZWN0eXBlOiAlZCBpcyBub3QgaW1wbGVtZW50ZWQiLCBhcmctPnNl Yyk7CisgCQlyYyA9IDE7CistLSAKKzIuNTUuMAorCgpkaWZmIC0tZ2l0IGEvY2lmcy51cGNhbGwt Zml4LXJlZ3Jlc3Npb24td2l0aC1rcmI1LWNyZWR1aWQucGF0Y2ggYi9jaWZzLnVwY2FsbC1maXgt cmVncmVzc2lvbi13aXRoLWtyYjUtY3JlZHVpZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNDQ2YzM5Yi4uMDAwMDAwMAotLS0gYS9jaWZzLnVwY2FsbC1maXgtcmVncmVzc2lv bi13aXRoLWtyYjUtY3JlZHVpZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5MSArMCwwIEBA Ci1Gcm9tIGU5NDk1OTYzZTBkNWMyNmY3ZDAxMzc4MjlkOGRjNjI1MTMwYjUzY2MgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBFbnpvIE1hdHN1bWl5YSA8ZW1hdHN1bWl5YUBzdXNlLmRl PgotRGF0ZTogTW9uLCA2IEp1bCAyMDI2IDEwOjU1OjU1IC0wMzAwCi1TdWJqZWN0OiBbUEFUQ0hd IGNpZnMudXBjYWxsOiBmaXggcmVncmVzc2lvbiB3aXRoIGtyYjUgKyBjcmVkdWlkCi0KLUNvbW1p dCA5NzJjNWI1ZmY5NWUgKCJjaWZzLnVwY2FsbDogcmVtb3ZlIGdldHB3dWlkKCkgZGVwZW5kZW5j eSIpCi1pbnRyb2R1Y2VkIGEgcmVncmVzc2lvbiB3aGVuIHVzaW5nIGNyZWR1aWQgIT0gdWlkIChl LmcuCi0ibW91bnQuY2lmcyAtbyBzZWM9a3JiNSxjcnVpZD1YIiksIHNvICd1aWQnIGxvY2FsIHZh ciBpcyByZXBsYWNlZAotd2l0aCBwcm9jZnMgIlVpZCIgdmFsdWUgKGluIHRoZSBleGFtcGxlLCB0 aGUgb25lIGZyb20gbW91bnQuY2lmcykuCi0KLVRoYXQgY29tbWl0IGlnbm9yZWQgdGhlIGZhY3Qg dGhhdDoKLSAgbW91bnQgVUlEIGNhbiBiZSBkaWZmZXJlbnQgZnJvbSBjcmVkcyBVSUQsIGFuZCB0 aGF0IGNhbGxpbmctYXBwCi0gIHByb2Nlc3MgKHBvc3QtbW91bnQpIGNhbiBiZSBkaWZmZXJlbnQg ZnJvbSBib3RoCi0KLVRoaXMgcGF0Y2ggInJldmVydHMiIDk3MmM1YjVmZjk1ZSAoImNpZnMudXBj YWxsOiByZW1vdmUgZ2V0cHd1aWQoKQotZGVwZW5kZW5jeSIpOyB0cmFuc2Zvcm0gdGhlICJlbWVy Z2VuY3kiLWFkZGVkIGZ1bmN0aW9uIGdldF91aWRnaWQoKQotaW50byBtYXBfdWlkZ2lkKCksIG5v dyBvbmx5IHVzZWQgdG8gZG8gTlMgVUlEL0dJRCBtYXBwaW5nLgotCi1BbHNvIGFkZCBnZXRwd3Vp ZCgpIGJhY2ssIGJ1dCB0aGlzIHRpbWUgY2FsbGVkIHdoaWxlIHN0aWxsIG9uIGhvc3QKLW5hbWVz cGFjZSwgc28gYW55IHBvc3NpYmxlIGN1c3RvbSBOU1MgbW9kdWxlIGlzIHJhbiBhcyBhbGxvd2Vk IGJ5Ci1zeXNhZG1pbi4KLQotQW55IHNjZW5hcmlvIGludm9sdmluZyB1bm1hcHBlZCBVSURzIG9y IEdJRHMgaXMgdW5zdXBwb3J0ZWQ7IHRoaXMKLW1lYW5zIHRoYXQgYW55IFVJRDpHSUQgaW4gYSBj aGlsZCB1c2VyIG5hbWVzcGFjZSBfbXVzdF8gbWFwIGJhY2sgdG8KLWEgdmFsaWQgYW5kIGV4aXN0 aW5nIGhvc3QgVUlEOkdJRC4KLQotRml4ZXM6IDk3MmM1YjVmZjk1ZSAoImNpZnMudXBjYWxsOiBy ZW1vdmUgZ2V0cHd1aWQoKSBkZXBlbmRlbmN5IikKLVJlcG9ydGVkLWJ5OiBQYXVsbyBBbGNhbnRh cmEgKFJlZCBIYXQpIDxwY0BtYW5ndWViaXQub3JnPgotU2lnbmVkLW9mZi1ieTogRW56byBNYXRz dW1peWEgPGVtYXRzdW1peWFAc3VzZS5kZT4KLVNpZ25lZC1vZmYtYnk6IFBhdWxvIEFsY2FudGFy YSAoUmVkIEhhdCkgPHBjQG1hbmd1ZWJpdC5vcmc+Ci1TaWduZWQtb2ZmLWJ5OiBTdGV2ZSBGcmVu Y2ggPHN0ZnJlbmNoQG1pY3Jvc29mdC5jb20+Ci0tLS0KLSBjaWZzLnVwY2FsbC5jIHwgMjc5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDE3NyBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9jaWZzLnVwY2FsbC5jIGIvY2lmcy51cGNhbGwuYwotaW5kZXggNzQ3NjE3NzkwNTc2Li40 MjIwNWU2NmE2NzYgMTAwNjQ0Ci0tLS0gYS9jaWZzLnVwY2FsbC5jCi0rKysgYi9jaWZzLnVwY2Fs bC5jCi1AQCAtNTIsNiArNTIsNyBAQAotICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSAjaW5jbHVk ZSA8Y3R5cGUuaD4KLSAjaW5jbHVkZSA8Z3JwLmg+Ci0rI2luY2x1ZGUgPHB3ZC5oPgotICNpbmNs dWRlIDxzdGRib29sLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0gI2luY2x1ZGUgPHNjaGVkLmg+ Ci1AQCAtMTM3NSwxMTggKzEzNzYsMTcwIEBAIHN0YXRpYyBpbnQgaXBfdG9fZnFkbihjb25zdCBj aGFyICphZGRyc3RyLCBjaGFyICpob3N0LCBzaXplX3QgaG9zdGxlbikKLSAJcmV0dXJuIDA7Ci0g fQotIAotLS8qIGNvdmVyIHdvcnN0IGNhc2UvaW1wb3NzaWJsZSBzY2VuYXJpb3MgKi8KLS0jZGVm aW5lIFBST0NfUElEX1BBVEhfTUFYTEVOCSgoaW50KXNpemVvZigiL3Byb2MvMjE0NzQ4MzY0Ny9z dGF0dXMiKSkKLS0vKiBtYXggdmFsaWQgVUlEL0dJRCBpcyAoVUlOVF9NQVggLSAxKSAqLwotLSNk ZWZpbmUgSU5WQUxJRF9VSURHSUQJCVVJTlRfTUFYCi0rI2RlZmluZSBJRF9NQVBfUEFUSF9NQVgg KChpbnQpc2l6ZW9mKCIvcHJvYy8yMTQ3NDgzNjQ3L3VpZF9tYXAiKSkKLSAKLS0vKgotLSAqIGdl dF91aWRnaWQgLSBHZXQgQHBpZCdzIChyZWFsKSBVSUQgYW5kL29yIEdJRC4KLS0gKiBAcGlkOiBw cm9jZXNzIHRvIGdldCBVSUQvR0lEIGZyb20KLS0gKiBAdWlkcDogcG9pbnRlciB0byBzdG9yZSBA cGlkJ3MgVUlEIChjYW4gYmUgTlVMTCkKLS0gKiBAZ2lkcDogcG9pbnRlciB0byBzdG9yZSBAcGlk J3MgR0lEIChjYW4gYmUgTlVMTCkKLS0gKgotLSAqIEV4dHJhY3QgIlVpZDoiIGFuZCAiR2lkOiIg ZmllbGRzIGZyb20gL3Byb2MvQHBpZC9zdGF0dXMuCi0tICogRG8gc28gYmFzZWQgb24gd2hldGhl ciBAdWlkcCBvciBAZ2lkcCBhcmUgTlVMTC4KLS0gKgotLSAqIFRoaXMgZnVuY3Rpb24gYXNzdW1l cyB3ZSdyZSBvbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXMgQHBpZC4KLS0gKgotLSAqIFJldHVybjog MCBvbiBzdWNjZXNzLCAtMSBvdGhlcndpc2UgKGVycm5vIHNldCkuCi0tICoKLS0gKiBPbiBlcnJv cnMsICpAdWlkcCBhbmQgKkBnaWRwIGFyZSBzZXQgdG8gSU5WQUxJRF9VSURHSUQuCi0tICovCi0t c3RhdGljIGludCBnZXRfdWlkZ2lkKHBpZF90IHBpZCwgdWlkX3QgKnVpZHAsIGdpZF90ICpnaWRw KQotK3N0YXRpYyBpbnQgbWFwX2lkKHBpZF90IHBpZCwgY29uc3QgY2hhciAqbWFwLCB1bnNpZ25l ZCBpbnQgKmlkcCkKLSB7Ci0tCWNoYXIgcGF0aFtQUk9DX1BJRF9QQVRIX01BWExFTl0gPSB7fSwg YnVmWzI1Nl07Ci0rCXVuc2lnbmVkIGxvbmcgbG9uZyBuc19zdGFydCwgaG9zdF9zdGFydCwgcmFu Z2U7Ci0rCWNoYXIgbWFwX3BhdGhbSURfTUFQX1BBVEhfTUFYXTsKLSsJaW50IG1hcF9wYXRoX3Np emUgPSBzaXplb2YobWFwX3BhdGgpOwotKwl1bnNpZ25lZCBpbnQgaWQ7Ci0gCUZJTEUgKmZwID0g TlVMTDsKLS0JaW50IHJldDsKLSsJaW50IHJldCA9IDE7Ci0gCi0tCWVycm5vID0gMDsKLS0JaWYg KHBpZCA8IDAgfHwgKCF1aWRwICYmICFnaWRwKSkgewotLQkJZXJybm8gPSBFSU5WQUw7Ci0tCQly ZXR1cm4gLTE7Ci0tCX0KLSsJZXJybm8gPSBFSU5WQUw7Ci0rCWlmIChwaWQgPCAwIHx8ICFtYXAg fHwgIWlkcCB8fCAqaWRwID09IFVJTlRfTUFYKQotKwkJZ290byBvdXQ7Ci0gCi0tCWlmICh1aWRw KQotLQkJKnVpZHAgPSBJTlZBTElEX1VJREdJRDsKLS0KLS0JaWYgKGdpZHApCi0tCQkqZ2lkcCA9 IElOVkFMSURfVUlER0lEOwotLQotLQlyZXQgPSBzbnByaW50ZihwYXRoLCBQUk9DX1BJRF9QQVRI X01BWExFTiwgIi9wcm9jLyVkL3N0YXR1cyIsIHBpZCk7Ci0tCWlmIChyZXQgPCAwIHx8IHJldCA+ PSBQUk9DX1BJRF9QQVRIX01BWExFTikgewotLQkJaWYgKCFlcnJubykKLSsJcmV0ID0gc25wcmlu dGYobWFwX3BhdGgsIG1hcF9wYXRoX3NpemUsICIvcHJvYy8lZC8lcyIsIHBpZCwgbWFwKTsKLSsJ aWYgKHJldCA8IDAgfHwgcmV0ID49IG1hcF9wYXRoX3NpemUpIHsKLSsJCWlmIChyZXQgPj0gbWFw X3BhdGhfc2l6ZSkKLSAJCQllcnJubyA9IEVOQU1FVE9PTE9ORzsKLS0JCXJldHVybiAtMTsKLSsJ CXJldCA9IDE7Ci0rCQlnb3RvIG91dDsKLSAJfQotIAotLQlmcCA9IGZvcGVuKHBhdGgsICJyIik7 Ci0tCWlmICghZnApIHsKLS0JCXJldCA9IC0xOwotKwlyZXQgPSAxOwotKwlmcCA9IGZvcGVuKG1h cF9wYXRoLCAiciIpOwotKwlpZiAoIWZwKQotIAkJZ290byBvdXQ7Ci0tCX0KLSAKLS0JLyogUGFy c2UgL3Byb2MvcGlkL3N0YXR1cyBmaWVsZHMgKi8KLS0JZXJybm8gPSAwOwotLQlyZXQgPSAtMTsK LS0Jd2hpbGUgKGZnZXRzKGJ1ZiwgMjU2LCBmcCkpIHsKLS0JCXVuc2lnbmVkIGxvbmcgbG9uZyB2 YWw7Ci0rCS8qCi0rCSAqIFRoZSBtYXAgZmlsZXMgaGF2ZSB0aGUgc2FtZSBmb3JtYXQ6Ci0rCSAq ICAgPE5TIElEIHN0YXJ0PiA8aG9zdCBJRCBzdGFydD4gPHJhbmdlPgotKwkgKiAgIC4uLiAoPG11 bHRpcGxlIGVudHJpZXMgYXJlIHN1cHBvcnRlZCkgLi4uCi0rCSAqCi0rCSAqIEZvcm11bGEgYW5k IHZhbGlkYXRpb246Ci0rCSAqICAgPGZpbmFsIE5TIElEPiA9ICgqQGlkcCAtIDxob3N0IElEIHN0 YXJ0PikgKyA8TlMgSUQgc3RhcnQ+Ci0rCSAqCi0rCSAqIC0gSURzOiBbMCwgVUlOVF9NQVggLSAx XQotKwkgKiAtIHJhbmdlOiBbMSwgVUlOVF9NQVhdLCB3aGVyZSByYW5nZSA9PSBVSU5UX01BWCBy ZXF1aXJlcyBib3RoIElEIHJhbmdlcyB0byBzdGFydCBhdCAwLAotKwkgKiAgIHdoaWNoIHRoZW4g bWVhbnMgdGhpcyBpcyBhbiBpbml0IGhvc3QgTlMgbWFwcGluZyAoYW5kIHRoYXQncyBvaykKLSsJ ICoKLSsJICogVGhlIGZvcm11bGEgaXRzZWxmIHdvdWxkIGJlIGVub3VnaCB0byAidmFsaWRhdGUi IGEgbWF0Y2hpbmcgTlMgSUQsIGJ1dCB3ZSBkb24ndCB3YW50IHRvCi0rCSAqIGtlZXAgcGFyc2lu ZyBhIG1hbGZvcm1lZCBtYXAgZmlsZSwgbm8gbWF0dGVyIGhvdyB1bmxpa2VseS9pbXBvc3NpYmxl IGl0IGlzIHRvIGhhcHBlbi4KLSsJICogU2FtZSByZWFzb24gdmFsdWVzIGFyZSBwYXJzZWQgYXMg J3Vuc2lnbmVkIGxvbmcgbG9uZycsIHNvIHdlIGNhbiBjaGVjayBmb3IgYm9ndXMgZGF0YS4KLSsJ ICovCi0rCWlkID0gVUlOVF9NQVg7Ci0rCWVycm5vID0gRU5PREFUQTsKLSsJd2hpbGUgKGZzY2Fu ZihmcCwgIiVsbHUgJWxsdSAlbGx1IiwgJm5zX3N0YXJ0LCAmaG9zdF9zdGFydCwgJnJhbmdlKSA9 PSAzKSB7Ci0rCQlpZiAobnNfc3RhcnQgPj0gVUlOVF9NQVggfHwgaG9zdF9zdGFydCA+PSBVSU5U X01BWCB8fAotKwkJICAgIHJhbmdlID4gVUlOVF9NQVggfHwgcmFuZ2UgPT0gMCkgewotKwkJCWVy cm5vID0gRUlOVkFMOwotKwkJCXJldCA9IDE7Ci0rCQkJYnJlYWs7Ci0rCQl9Ci0gCi0tCQllcnJu byA9IEVOT0RBVEE7Ci0tCQlpZiAoKCF1aWRwIHx8IHN0cm5jbXAoYnVmLCAiVWlkOiIsIDQpKSAm JiAoIWdpZHAgfHwgc3RybmNtcChidWYsICJHaWQ6IiwgNCkpKQotLQkJCWNvbnRpbnVlOwotKwkJ aWYgKHJhbmdlID09IFVJTlRfTUFYICYmIChuc19zdGFydCAhPSAwIHx8IGhvc3Rfc3RhcnQgIT0g MCkpIHsKLSsJCQllcnJubyA9IEVJTlZBTDsKLSsJCQlyZXQgPSAxOwotKwkJCWJyZWFrOwotKwkJ fQotIAotLQkJZXJybm8gPSAwOwotKwkJaWYgKGhvc3Rfc3RhcnQgKyByYW5nZSA+IFVJTlRfTUFY IHx8IG5zX3N0YXJ0ICsgcmFuZ2UgPiBVSU5UX01BWCkgewotKwkJCWVycm5vID0gRUlOVkFMOwot KwkJCXJldCA9IDE7Ci0rCQkJYnJlYWs7Ci0rCQl9Ci0gCi0gCQkvKgotLQkJICogRXhhbXBsZSBs aW5lIGZvcm1hdCAoc2FtZSBmb3IgYm90aCBVaWQvR2lkKToKLS0JCSAqICJVaWQ6XHQldVx0JXVc JXVcJXUiCi0rCQkgKiBDaGVjayBpZiBob3N0IElEIGZpdHMgdGhpcyBsaW5lLgotKwkJICogT3Vy IGRlc2lyZWQgTlMgSUQgbWF5IGJlIGluIGFueSBsaW5lIG9mIHRoZSBmaWxlLgotIAkJICoKLS0J CSAqIFdoZXJlIHRoZSBudW1iZXJzIHJlcHJlc2VudHM6Ci0tCQkgKiA8cmVhbD4gPGVmZmVjdGl2 ZT4gPHNhdmVkPiA8ZnN1aWQ+Ci0rCQkgKiBOb3RlOiBuZXd7dWlkLGdpZH1tYXAgdG9vbHMgKHRo YXQgY3JlYXRlcyB0aGUgbWFwIGZpbGVzKSBkb24ndCBhbGxvdyBtdWx0aXBsZQotKwkJICogbWFw cyAoTlMgSURzKSB0byB0aGUgc2FtZSBob3N0IElELgotIAkJICoKLS0JCSAqIFdlJ3JlIG9ubHkg aW50ZXJlc3RlZCBpbiB0aGUgPHJlYWw+IHZhbHVlLgotKwkJICogSWYgd2UgZ2V0IGEgbWF0Y2gg aGVyZSwgd2UnbGwgc2F2ZSBpdCwgYnV0IHdlIGNvbnRpbnVlIHBhcnNpbmcgdGhlIGZpbGUuCi0r CQkgKiBJZiB3ZSBoYXBwZW4gdG8gZmluZCBhIGR1cGxpY2F0ZSwgaXQncyBwb3NzaWJsZSB0aGlz IGlzIGEgcm9ndWUgZmlsZSB0cnlpbmcgdG8KLSsJCSAqIGJ5cGFzcyB0aGVzZSBjaGVja3MuCi0g CQkgKgotLQkJICogKGZpZWxkIG5hbWVzICJVaWQ6Ii8iR2lkOiIgcGFyc2VkIGFib3ZlLCBza2lw IGl0KQotKwkJICogSW4gc3VjaCBjYXNlcywgZGlzY2FyZCB0aGUgbWF0Y2ggYW5kIHJldHVybiBF T1BOT1RTVVBQLCBhcyByZXR1cm5pbmcgYQotKwkJICogc3VjY2Vzc2Z1bCBtYXRjaCBjb3VsZCBs ZWFkIHRvIGRpc2FzdHJvdXMgcmVzdWx0cy4KLSAJCSAqLwotLQkJcmV0ID0gc3NjYW5mKCZidWZb MF0gKyA0LCAiJWxsdSIsICZ2YWwpOwotLQkJaWYgKHJldCAhPSAxKSB7Ci0tCQkJcmV0ID0gLTE7 Ci0tCQkJaWYgKGVycm5vKQotKwkJaWYgKCppZHAgPj0gaG9zdF9zdGFydCAmJiAqaWRwIDwgaG9z dF9zdGFydCArIHJhbmdlKSB7Ci0rCQkJLyogVGhpcyBtZWFucyB3ZSBmb3VuZCBhIGR1cGxpY2F0 ZSAqLwotKwkJCWlmICghcmV0KSB7Ci0rCQkJCXJldCA9IDE7Ci0rCQkJCWVycm5vID0gRU9QTk9U U1VQUDsKLSsJCQkJc3lzbG9nKExPR19FUlIsICIlcyBoYXMgbXVsdGlwbGUgbWFwcGVkIElEcyBm b3IgJXUgKHVuc3VwcG9ydGVkKSIsCi0rCQkJCSAgICAgICBtYXAsICppZHApOwotIAkJCQlicmVh azsKLS0JCQljb250aW51ZTsKLS0JCX0KLSsJCQl9Ci0gCi0tCQlyZXQgPSAtMTsKLS0JCWlmICh2 YWwgPj0gVUlOVF9NQVgpIHsKLS0JCQllcnJubyA9IEVJTlZBTDsKLS0JCQlicmVhazsKLS0JCX0K LS0KLS0JCWlmICh1aWRwICYmICFzdHJuY21wKGJ1ZiwgIlVpZDoiLCA0KSkKLS0JCQkqdWlkcCA9 ICh1aWRfdCl2YWw7Ci0tCQllbHNlCi0tCQkJKmdpZHAgPSAoZ2lkX3QpdmFsOwotLQotLQkJaWYg KCghdWlkcCB8fCAqdWlkcCAhPSBJTlZBTElEX1VJREdJRCkgJiYgKCFnaWRwIHx8ICpnaWRwICE9 IElOVkFMSURfVUlER0lEKSkgewotLQkJCWVycm5vID0gMDsKLSsJCQlpZCA9ICgqaWRwIC0gaG9z dF9zdGFydCkgKyBuc19zdGFydDsKLSAJCQlyZXQgPSAwOwotLQkJCWJyZWFrOwotKwkJCWVycm5v ID0gMDsKLSAJCX0KLSAJfQotKwotKwkvKiBUaGlzIG1lYW5zIGVycm5vIHdhcyByZXNldCBieSBm c2NhbmYoKSB3aXRob3V0IGZpbmRpbmcgYW55dGhpbmcgKi8KLSsJaWYgKHJldCAmJiBlcnJubyA9 PSAwKQotKwkJZXJybm8gPSBFTk9EQVRBOwotIG91dDoKLS0JaWYgKGZwKQotKwlpZiAoZnApIHsK LSsJCWludCBlcnIgPSBlcnJubzsKLSsKLSAJCWZjbG9zZShmcCk7Ci0rCQkvKiBJZ25vcmUgZmNs b3NlKCkgZXJyb3JzICovCi0rCQllcnJubyA9IGVycjsKLSsJfQotIAotKwlpZiAoIXJldCkgewot KwkJKmlkcCA9IGlkOwotKwkJZXJybm8gPSAwOwotKwl9IGVsc2UgewotKwkJc3lzbG9nKExPR19E RUJVRywgIiVzKHBpZD0lZCwgbWFwPSVzLCBpZD0ldSk6ICVzIiwgX19mdW5jX18sIHBpZCwgbWFw LCAqaWRwLAotKwkJICAgICAgIHN0cmVycm9yKGVycm5vKSk7Ci0rCX0KLSsKLSsJcmV0dXJuIHJl dDsKLSt9Ci0rCi0rLyoKLSsgKiBtYXBfdWlkZ2lkKCkgLSBNYXAgKHJlYWwpIFVJRC9HSUQgZnJv bSBpbml0IGhvc3QgTlMgdG8gdXNlciBOUy4KLSsgKiBAcGlkOiBob3N0IE5TIFBJRAotKyAqIEB1 aWRwOiAoaW4pIGhvc3QgVUlELCAob3V0KSBOUyBVSUQKLSsgKiBAZ2lkcDogKGluKSBob3N0IEdJ RCwgKG91dCkgTlMgR0lECi0rICoKLSsgKiBQYXJzZSAvcHJvYy9AcGlkL3t1aWQsZ2lkfV9tYXAg ZmlsZXMgdG8gZ2V0IE5TIFVJRC9HSUQgdmFsdWVzLgotKyAqIFNpbmNlIEBwaWQgaXMgZXhwZWN0 ZWQgdG8gYmUgYSBob3N0IE5TIFBJRCwgdGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgc3dpdGNo aW5nIG5hbWVzcGFjZXMuCi0rICoKLSsgKiBOb3RlOiB3ZSBjYW4ndCB1c2UgL3Byb2Mvc2VsZiBo ZXJlIGJlY2F1c2Ugd2UgaGF2ZW4ndCBzd2l0Y2hlZCBOUyB5ZXQsIHNvIHt1aWQsZ2lkfV9tYXAg ZmlsZXMKLSsgKiB3b3VsZCBjb250YWluIGhvc3QgTlMgdmFsdWVzLgotKyAqCi0rICogUmV0dXJu OiAwIG9uIHN1Y2Nlc3MsIDEgb3RoZXJ3aXNlIChlcnJubyBzZXQpLgotKyAqLwotK3N0YXRpYyBp bnQgbWFwX3VpZGdpZChwaWRfdCBwaWQsIHVpZF90ICp1aWRwLCBnaWRfdCAqZ2lkcCkKLSt7Ci0r CXVpZF90IG9yaWdfdWlkOwotKwlnaWRfdCBvcmlnX2dpZDsKLSsJaW50IHJldCA9IDE7Ci0rCi0r CWVycm5vID0gRUlOVkFMOwotKwlpZiAoIXVpZHAgfHwgIWdpZHApCi0rCQlnb3RvIG91dDsKLSsK LSsJb3JpZ191aWQgPSAqdWlkcDsKLSsJb3JpZ19naWQgPSAqZ2lkcDsKLSsKLSsJcmV0ID0gbWFw X2lkKHBpZCwgInVpZF9tYXAiLCB1aWRwKTsKLSAJaWYgKHJldCkgewotLQkJc3lzbG9nKExPR19E RUJVRywgIiVzKHBpZD0lZCk6ICVzIiwgX19mdW5jX18sIHBpZCwgc3RyZXJyb3IoZXJybm8pKTsK LS0JCWlmICh1aWRwKQotLQkJCSp1aWRwID0gSU5WQUxJRF9VSURHSUQ7Ci0tCi0tCQlpZiAoZ2lk cCkKLS0JCQkqZ2lkcCA9IElOVkFMSURfVUlER0lEOwotKwkJaWYgKGVycm5vID09IEVOT0RBVEEp Ci0rCQkJc3lzbG9nKExPR19FUlIsICJVSUQgJXUgbm90IG1hcHBlZCBpbiB0aGlzIG5hbWVzcGFj ZSAodW5zdXBwb3J0ZWQpIiwKLSsJCQkgICAgICAgb3JpZ191aWQpOwotKwkJZ290byBvdXQ7Ci0g CX0KLSAKLSsJcmV0ID0gbWFwX2lkKHBpZCwgImdpZF9tYXAiLCBnaWRwKTsKLSsJaWYgKHJldCAm JiBlcnJubyA9PSBFTk9EQVRBKQotKwkJc3lzbG9nKExPR19FUlIsICJHSUQgJXUgbm90IG1hcHBl ZCBpbiB0aGlzIG5hbWVzcGFjZSAodW5zdXBwb3J0ZWQpIiwKLSsJCSAgICAgICBvcmlnX2dpZCk7 Ci0rb3V0OgotKwlpZiAocmV0ICYmIGVycm5vICE9IEVOT0RBVEEpCi0rCQlzeXNsb2coTE9HX0VS UiwgIiVzOiAlcyIsIF9fZnVuY19fLCBzdHJlcnJvcihlcnJubykpOwotKwllbHNlIGlmICghcmV0 KQotKwkJc3lzbG9nKExPR19ERUJVRywgImhvc3QgJXU6JXUgLT4gTlMgJXU6JXUiLCBvcmlnX3Vp ZCwgb3JpZ19naWQsICp1aWRwLCAqZ2lkcCk7Ci0rCi0gCXJldHVybiByZXQ7Ci0gfQotIAotQEAg LTE1MzQsNiArMTU4Nyw3IEBAIGludCBtYWluKGNvbnN0IGludCBhcmdjLCBjaGFyICpjb25zdCBh cmd2W10pCi0gCWNvbnN0IGNoYXIgKm9pZDsKLSAJdWlkX3QgdWlkOwotIAlnaWRfdCBnaWQ7Ci0r CXN0cnVjdCBwYXNzd2QgKnB3OwotIAljaGFyICprZXl0YWJfbmFtZSA9IE5VTEw7Ci0gCWNoYXIg KmVudl9jYWNoZW5hbWUgPSBOVUxMOwotIAlrcmI1X2NjYWNoZSBjY2FjaGUgPSBOVUxMOwotQEAg LTE2ODAsMTIgKzE3MzQsNTIgQEAgaW50IG1haW4oY29uc3QgaW50IGFyZ2MsIGNoYXIgKmNvbnN0 IGFyZ3ZbXSkKLSAJCWdvdG8gb3V0OwotIAl9Ci0gCi0rCS8qCi0rCSAqICd1aWQnIGFsd2F5cyBw b2ludHMgdG8gYSBob3N0IFVJRCwgc28gd2UgbXVzdCBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgaG9z dCBHSUQuCi0rCSAqIEl0J3Mgc2FmZSB0byBjYWxsIGdldHB3dWlkKCkgaGVyZSBiZWNhdXNlIHdl J3JlIHN0aWxsIG9uIGhvc3QgTlMsIGkuZS4gY2FsbGVyCi0rCSAqIGFwcGxpY2F0aW9uIGhhcyBu byBjb250cm9sIG92ZXIgY3VzdG9tIE5TUyBtb2R1bGVzLgotKwkgKgotKwkgKiBGSVhNRTogaWYg VUlEIGlzIGZyb20gYW5vdGhlciBOUywgb3IgYSBzdWJ1aWQsIHRoaXMgd2lsbCBmYWlsIG9uIG1v dW50LgotKwkgKi8KLSsJZXJybm8gPSAwOwotKwlwdyA9IGdldHB3dWlkKHVpZCk7Ci0rCWlmICgh cHcpIHsKLSsJCXN5c2xvZyhMT0dfRVJSLCAiZmFpbGVkIHRvIHJldHJpZXZlIEdJRCBmcm9tIFVJ RCAldTogJXMiLCB1aWQsCi0rCQkgICAgICAgc3RyZXJyb3IoZXJybm8gPyBlcnJubyA6IEVOT0VO VCkpOwotKwkJcmMgPSAxOwotKwkJZ290byBvdXQ7Ci0rCX0KLSsKLSsJZ2lkID0gcHctPnB3X2dp ZDsKLSsKLSsJLyoKLSsJICogV2UgY2FuJ3QgcmVhc29uYWJseSBkbyB0aGlzIGZvciByb290LiBX aGVuIG1vdW50aW5nIGEgREZTIHNoYXJlLAotKwkgKiBmb3IgaW5zdGFuY2Ugd2UgY2FuIGVuZCB1 cCB3aXRoIGNyZWRzIGJlaW5nIG92ZXJyaWRkZW4sIGJ1dCB0aGUgZW52Ci0rCSAqIHZhcmlhYmxl IGxlZnQgaW50YWN0LgotKwkgKgotKwkgKiBBbHdheXMgY2hlY2sgdGhpcyBiZWZvcmUgTlMgVUlE IG1hcHBpbmcuCi0rCSAqLwotKwlpZiAodWlkID09IDApCi0rCQllbnZfcHJvYmUgPSBmYWxzZTsK LSsKLSAJLyoKLSAJICogQ2hhbmdlIHRvIHRoZSBwcm9jZXNzJ3MgbmFtZXNwYWNlLiBUaGlzIG1l YW5zIHRoYXQgdGhpbmdzIHdpbGwgd29yawotIAkgKiBhY2NlcHRhYmx5IGluIGNvbnRhaW5lcnMs IGJlY2F1c2Ugd2UnbGwgYmUgbG9va2luZyBhdCB0aGUgY29ycmVjdAotIAkgKiBmaWxlc3lzdGVt IGFuZCBoYXZlIHRoZSBjb3JyZWN0IG5ldHdvcmsgY29uZmlndXJhdGlvbi4KLSAJICovCi0gCWlm IChhcmctPnVwY2FsbF90YXJnZXQgPT0gVVBUQVJHRVRfQVBQIHx8IGFyZy0+dXBjYWxsX3Rhcmdl dCA9PSBVUFRBUkdFVF9VTlNQRUNJRklFRCkgewotKwkJLyoKLSsJCSAqIE1hcCBob3N0ICd1aWQn IGFuZCAnZ2lkJyB0byB0aGUgdGFyZ2V0IHVzZXIgTlMuCi0rCQkgKgotKwkJICogQW55IHNjZW5h cmlvIHRoYXQgaW52b2x2ZXMgdW5tYXBwZWQgVUlEcyBvciBwcmltYXJ5IEdJRHMgaXMgbm90IHN1 cHBvcnRlZCAtLSB3ZQotKwkJICogZG9uJ3QgaGF2ZSwgYW5kIGNhbid0IGZpbmQsIGFsbCB0aGUg aW5mbyB0aGF0IHdvdWxkIGJlIG5lY2Vzc2FyeSB0byBmaW5kIGEKLSsJCSAqIFVJRC9HSUQgd2l0 aGluIGFsbCB0aGUgcG9zc2libGUgTlMgY29tYmluYXRpb25zLgotKwkJICovCi0rCQlpZiAoIWlu X3NhbWVfdXNlcl9ucyhhcmctPnBpZCwgZ2V0cGlkKCkpKSB7Ci0rCQkJcmMgPSBtYXBfdWlkZ2lk KGFyZy0+cGlkLCAmdWlkLCAmZ2lkKTsKLSsJCQlpZiAocmMpCi0rCQkJCWdvdG8gb3V0OwotKwkJ fQotIAkJc3lzbG9nKExPR19JTkZPLCAidXBjYWxsX3RhcmdldD1hcHAsIHN3aXRjaGluZyBuYW1l c3BhY2VzIHRvIGFwcGxpY2F0aW9uIHRocmVhZCIpOwotIAkJYXJnLT51cGNhbGxfdGFyZ2V0ID0g VVBUQVJHRVRfQVBQOwotIAkJcmMgPSBzd2l0Y2hfdG9fcHJvY2Vzc19ucyhhcmctPnBpZCk7Ci1A QCAtMTcwMCwyNSArMTc5NCw2IEBAIGludCBtYWluKGNvbnN0IGludCBhcmdjLCBjaGFyICpjb25z dCBhcmd2W10pCi0gCQlzeXNsb2coTE9HX0lORk8sICJ1cGNhbGxfdGFyZ2V0PW1vdW50LCBub3Qg c3dpdGNoaW5nIG5hbWVzcGFjZXMgdG8gYXBwbGljYXRpb24gdGhyZWFkIik7Ci0gCX0KLSAKLS0J LyoKLS0JICogV2UgY2FuJ3QgcmVhc29uYWJseSBkbyB0aGlzIGZvciByb290LiBXaGVuIG1vdW50 aW5nIGEgREZTIHNoYXJlLAotLQkgKiBmb3IgaW5zdGFuY2Ugd2UgY2FuIGVuZCB1cCB3aXRoIGNy ZWRzIGJlaW5nIG92ZXJyaWRkZW4sIGJ1dCB0aGUgZW52Ci0tCSAqIHZhcmlhYmxlIGxlZnQgaW50 YWN0LgotLQkgKi8KLS0JaWYgKHVpZCA9PSAwKQotLQkJZW52X3Byb2JlID0gZmFsc2U7Ci0tCi0t CS8qCi0tCSAqIEZJWE1FOiB0aGlzIG9ubHkgd29ya3MgaWYgd2UgaGF2ZW4ndCBzd2l0Y2hlZCBQ SUQgbmFtZXNwYWNlcy4KLS0JICogSWYgd2UgZGlkLCAvcHJvYy9hcmctPnBpZC8gbWlnaHQgbm90 IGV4aXN0LCBvciB3b3JzZSwgcG9pbnQgdG8gc29tZXRoaW5nIGVsc2UuCi0tCSAqLwotLQlyYyA9 IGdldF91aWRnaWQoYXJnLT5waWQsICZ1aWQsICZnaWQpOwotLQlpZiAocmMpIHsKLS0JCXN5c2xv ZyhMT0dfRVJSLCAiZ2V0X3VpZGdpZCAoTlMpOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Ci0tCQly YyA9IDE7Ci0tCQlnb3RvIG91dDsKLS0JfQotLQotIAlyYyA9IHNldGdpZChnaWQpOwotIAlpZiAo cmMpIHsKLSAJCXN5c2xvZyhMT0dfRVJSLCAic2V0Z2lkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7 Ci0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZjA5 Y2UwYS4uZDI1Zjc3NiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsx IEBACi1TSEE1MTIgKGNpZnMtdXRpbHMtNy42LnRhci5iejIpID0gMDAwYmNhOWViMDI0MmM4YzA0 ZGMxMTEwMjQ0YWQyNmNkMzlmMTE1NDFjYzAzOGUzNmExYjM2YzJlNjgzZmRlMTlkNjFhNTkyMzRl MGU1OTJiZjhkODNlYmViYWZiNGQ0NmE3ZTY5NzhjNzQ1YmJhNWUzZTE1NWUwNTkwOGRjYmMKK1NI QTUxMiAoY2lmcy11dGlscy03LjcudGFyLmJ6MikgPSBjYzk0MTA1YTFmZjYzOWQyMjU3YTNlNjQ0 ZTNiNzY2MjU5ZWY3YTgzNzI1YzlkZGRiNDY1ZThhOGM3MTI2ZjA2YTBhMDM2YTFjOGNmYjQ5NTk0 M2I0ZDFlMzcwYWFlOGRmMGJiNTFmODVmZjM2ZTU0YjQ4OTRlMjdkOGRkY2UyOQo=