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: Leigh Scott To: git-commits@fedoraproject.org Subject: [rpms/cinnamon-session] f45: Add shutdown patch Date: Tue, 22 Sep 2026 12:43:19 GMT Message-ID: <179008099991.1.709509688294082596.rpms-cinnamon-session-e05b49691547@fedoraproject.org> List-ID: X-Git-Repo: rpms/cinnamon-session X-Git-Branch: f45 X-Git-Rev: e05b496915476ee2f922656f3af921485e101cfe QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2lubmFtb24tc2Vz c2lvbgpCcmFuY2ggOiBmNDUKQ29tbWl0IDogZTA1YjQ5NjkxNTQ3NmVlMmY5MjI2NTZmM2FmOTIx NDg1ZTEwMWNmZQpBdXRob3IgOiBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+ CkRhdGUgICA6IDIwMjYtMDktMThUMjI6NTE6MDMrMDE6MDAKU3RhdHMgIDogKzEwMTAvLTExNiBp biAyIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9j aW5uYW1vbi1zZXNzaW9uL2MvZTA1YjQ5NjkxNTQ3NmVlMmY5MjI2NTZmM2FmOTIxNDg1ZTEwMWNm ZT9icmFuY2g9ZjQ1CgpMb2c6CkFkZCBzaHV0ZG93biBwYXRjaAoKLS0tCmRpZmYgLS1naXQgYS8y MTUucGF0Y2ggYi8yMTUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MmQyMWUyZgotLS0gL2Rldi9udWxsCisrKyBiLzIxNS5wYXRjaApAQCAtMCwwICsxLDk5NCBAQAor RnJvbSAxZTM4NzAyY2Y4NGJjZGQxOGYzY2NiNmEzM2E3Yzc2MTBkNzhlNGJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29t PgorRGF0ZTogVHVlLCA4IFNlcCAyMDI2IDIzOjE0OjQ5ICswMTAwCitTdWJqZWN0OiBbUEFUQ0gg MS8yXSBjc20tbWFuYWdlci5jOiBSZW1vdmUgTURNIHN1cHBvcnQKKworLS0tCisgY2lubmFtb24t c2Vzc2lvbi9jc20tbWFuYWdlci5jIHwgIDU0ICstLS0KKyBjaW5uYW1vbi1zZXNzaW9uL21kbS5j ICAgICAgICAgfCA0NzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgY2lubmFt b24tc2Vzc2lvbi9tZG0uaCAgICAgICAgIHwgIDU0IC0tLS0KKyBjaW5uYW1vbi1zZXNzaW9uL21l c29uLmJ1aWxkICAgfCAgIDEgLQorIDQgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA1 NzYgZGVsZXRpb25zKC0pCisgZGVsZXRlIG1vZGUgMTAwNjQ0IGNpbm5hbW9uLXNlc3Npb24vbWRt LmMKKyBkZWxldGUgbW9kZSAxMDA2NDQgY2lubmFtb24tc2Vzc2lvbi9tZG0uaAorCitkaWZmIC0t Z2l0IGEvY2lubmFtb24tc2Vzc2lvbi9jc20tbWFuYWdlci5jIGIvY2lubmFtb24tc2Vzc2lvbi9j c20tbWFuYWdlci5jCitpbmRleCA0OGMzM2RiLi5lNzY1NjhiIDEwMDY0NAorLS0tIGEvY2lubmFt b24tc2Vzc2lvbi9jc20tbWFuYWdlci5jCisrKysgYi9jaW5uYW1vbi1zZXNzaW9uL2NzbS1tYW5h Z2VyLmMKK0BAIC01Myw3ICs1Myw2IEBACisgI2luY2x1ZGUgImNzbS1hdXRvc3RhcnQtYXBwLmgi CisgCisgI2luY2x1ZGUgImNzbS11dGlsLmgiCistI2luY2x1ZGUgIm1kbS5oIgorICNpbmNsdWRl ICJjc20tc3lzdGVtLmgiCisgI2luY2x1ZGUgImNzbS1zZXNzaW9uLXNhdmUuaCIKKyAjaW5jbHVk ZSAiaW5oaWJpdC1kaWFsb2ctaW5mby5oIgorQEAgLTczLDkgKzcyLDYgQEAKKyAgKi8KKyAjZGVm aW5lIENTTV9NQU5BR0VSX1BIQVNFX1RJTUVPVVQgMzAgLyogc2Vjb25kcyAqLworIAorLSNkZWZp bmUgTURNX0ZMRVhJU0VSVkVSX0NPTU1BTkQgIm1kbWZsZXhpc2VydmVyIgorLSNkZWZpbmUgTURN X0ZMRVhJU0VSVkVSX0FSR1MgICAgIi0tc3RhcnRuZXcgU3RhbmRhcmQiCistCisgI2RlZmluZSBH RE1fRkxFWElTRVJWRVJfQ09NTUFORCAiZ2RtZmxleGlzZXJ2ZXIiCisgI2RlZmluZSBHRE1fRkxF WElTRVJWRVJfQVJHUyAgICAiLS1zdGFydG5ldyBTdGFuZGFyZCIKKyAKK0BAIC0xMTEsMTAgKzEw Nyw4IEBAIHR5cGVkZWYgZW51bQorICAgICAgICAgQ1NNX01BTkFHRVJfTE9HT1VUX0xPR09VVCwK KyAgICAgICAgIENTTV9NQU5BR0VSX0xPR09VVF9SRUJPT1QsCisgICAgICAgICBDU01fTUFOQUdF Ul9MT0dPVVRfUkVCT09UX0lOVEVSQUNULAorLSAgICAgICAgQ1NNX01BTkFHRVJfTE9HT1VUX1JF Qk9PVF9NRE0sCisgICAgICAgICBDU01fTUFOQUdFUl9MT0dPVVRfU0hVVERPV04sCistICAgICAg ICBDU01fTUFOQUdFUl9MT0dPVVRfU0hVVERPV05fSU5URVJBQ1QsCistICAgICAgICBDU01fTUFO QUdFUl9MT0dPVVRfU0hVVERPV05fTURNCisrICAgICAgICBDU01fTUFOQUdFUl9MT0dPVVRfU0hV VERPV05fSU5URVJBQ1QKKyB9IENzbU1hbmFnZXJMb2dvdXRUeXBlOworIAorIHN0cnVjdCBDc21N YW5hZ2VyUHJpdmF0ZQorQEAgLTQ3MiwxNyArNDY2LDYgQEAgcGhhc2VfbnVtX3RvX25hbWUgKGd1 aW50IHBoYXNlKQorIAorIHN0YXRpYyB2b2lkIHN0YXJ0X3BoYXNlIChDc21NYW5hZ2VyICptYW5h Z2VyKTsKKyAKKy1zdGF0aWMgdm9pZAorLXF1aXRfcmVxdWVzdF9mYWlsZWQgKENzbVN5c3RlbSAq c3lzdGVtLAorLSAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAqZXJyb3IsCistICAg ICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICB1c2VyX2RhdGEpCisteworLSAgICAgICAg Z193YXJuaW5nICgiVXNpbmcgYW4gTURNIGxvZ291dCBhY3Rpb24gdG8gc2h1dGRvd24vcmVib290 IHRoZSBzeXN0ZW0uIik7CistICAgICAgICBNZG1Mb2dvdXRBY3Rpb24gZmFsbGJhY2tfYWN0aW9u ID0gR1BPSU5URVJfVE9fSU5UICh1c2VyX2RhdGEpOworLSAgICAgICAgbWRtX3NldF9sb2dvdXRf YWN0aW9uIChmYWxsYmFja19hY3Rpb24pOworLSAgICAgICAgY3NtX3F1aXQgKCk7CistfQorLQor IHN0YXRpYyB2b2lkCisgY3NtX21hbmFnZXJfcXVpdCAoQ3NtTWFuYWdlciAqbWFuYWdlcikKKyB7 CitAQCAtNDk4LDMxICs0ODEsMTMgQEAgY3NtX21hbmFnZXJfcXVpdCAoQ3NtTWFuYWdlciAqbWFu YWdlcikKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1JFQk9PVDoKKyAgICAgICAg IGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1JFQk9PVF9JTlRFUkFDVDoKKyAgICAgICAgICAgICAg ICAgZ193YXJuaW5nICgiUmVxdWVzdGluZyBzeXN0ZW0gcmVzdGFydC4uLiIpOworLSAgICAgICAg ICAgICAgICBtZG1fc2V0X2xvZ291dF9hY3Rpb24gKE1ETV9MT0dPVVRfQUNUSU9OX05PTkUpOwor LSAgICAgICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0IChtYW5hZ2VyLT5wcml2LT5zeXN0ZW0s CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0LWZhaWxlZCIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHF1aXRfcmVxdWVz dF9mYWlsZWQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSU5UX1RPX1BP SU5URVIgKE1ETV9MT0dPVVRfQUNUSU9OX1JFQk9PVCkpOworICAgICAgICAgICAgICAgICBjc21f c3lzdGVtX2F0dGVtcHRfcmVzdGFydCAobWFuYWdlci0+cHJpdi0+c3lzdGVtKTsKKyAgICAgICAg ICAgICAgICAgYnJlYWs7CistICAgICAgICBjYXNlIENTTV9NQU5BR0VSX0xPR09VVF9SRUJPT1Rf TURNOgorLSAgICAgICAgICAgICAgICBtZG1fc2V0X2xvZ291dF9hY3Rpb24gKE1ETV9MT0dPVVRf QUNUSU9OX1JFQk9PVCk7CistICAgICAgICAgICAgICAgIGNzbV9xdWl0ICgpOworLSAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1NIVVRET1dO OgorLSAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfU0hVVERPV05fSU5URVJBQ1Q6ICAK KysgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1NIVVRET1dOX0lOVEVSQUNUOgorICAg ICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJSZXF1ZXN0aW5nIHN5c3RlbSBzaHV0ZG93bi4uLiIp OworLSAgICAgICAgICAgICAgICBtZG1fc2V0X2xvZ291dF9hY3Rpb24gKE1ETV9MT0dPVVRfQUNU SU9OX05PTkUpOworLSAgICAgICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0IChtYW5hZ2VyLT5w cml2LT5zeXN0ZW0sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0 LWZhaWxlZCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sg KHF1aXRfcmVxdWVzdF9mYWlsZWQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHSU5UX1RPX1BPSU5URVIgKE1ETV9MT0dPVVRfQUNUSU9OX1NIVVRET1dOKSk7CisgICAgICAg ICAgICAgICAgIGNzbV9zeXN0ZW1fYXR0ZW1wdF9zdG9wIChtYW5hZ2VyLT5wcml2LT5zeXN0ZW0p OworICAgICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9H T1VUX1NIVVRET1dOX01ETToKKy0gICAgICAgICAgICAgICAgbWRtX3NldF9sb2dvdXRfYWN0aW9u IChNRE1fTE9HT1VUX0FDVElPTl9TSFVURE9XTik7CistICAgICAgICAgICAgICAgIGNzbV9xdWl0 ICgpOworLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg ICAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkICgpOworICAgICAgICAgICAgICAgICBicmVh azsKK0BAIC0xMTIxLDcgKzEwODYsNiBAQCBjYW5jZWxfZW5kX3Nlc3Npb24gKENzbU1hbmFnZXIg Km1hbmFnZXIpCisgICAgICAgICBtYW5hZ2VyLT5wcml2LT5sb2dvdXRfbW9kZSA9IENTTV9NQU5B R0VSX0xPR09VVF9NT0RFX05PUk1BTDsKKyAKKyAgICAgICAgIG1hbmFnZXItPnByaXYtPmxvZ291 dF90eXBlID0gQ1NNX01BTkFHRVJfTE9HT1VUX05PTkU7CistICAgICAgICBtZG1fc2V0X2xvZ291 dF9hY3Rpb24gKE1ETV9MT0dPVVRfQUNUSU9OX05PTkUpOworIAorICAgICAgICAgbWFuYWdlci0+ cHJpdi0+ZGlhbG9nX2FjdGlvbiA9IENTTV9MT0dPVVRfQUNUSU9OX1VOREVGSU5FRDsKKyAKK0BA IC0xMTg2LDcgKzExNTAsNyBAQCBmbGV4aXNlcnZlcl9sYXVuY2ggKGNvbnN0IGdjaGFyICoqYXJn dikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmVycm9yKSkgeworICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBnX2RlYnVnICgiQ3NtTWFuYWdlcjogVW5hYmxlIHRvIHN0 YXJ0IE1ETSBncmVldGVyOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICBnX2RlYnVnICgiQ3NtTWFuYWdlcjogVW5hYmxlIHRvIHN0YXJ0IGdyZWV0ZXI6ICVz IiwgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJl ZSAoZXJyb3IpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICB9CitAQCAtMTIwNSwxNSAr MTE2OSw3IEBAIG1hbmFnZXJfc3dpdGNoX3VzZXIgKENzbU1hbmFnZXIgKm1hbmFnZXIpCisgICAg ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGlmIChwcm9jZXNz X2lzX3J1bm5pbmcgKCJtZG0iKSkgeworLSAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqY29t bWFuZFtdID0geworLSAgICAgICAgICAgICAgICAgICAgIE1ETV9GTEVYSVNFUlZFUl9DT01NQU5E LAorLSAgICAgICAgICAgICAgICAgICAgIE1ETV9GTEVYSVNFUlZFUl9BUkdTLAorLSAgICAgICAg ICAgICAgICAgICAgIE5VTEwKKy0gICAgICAgICAgICAgICAgfTsKKy0KKy0gICAgICAgICAgICAg ICAgZmxleGlzZXJ2ZXJfbGF1bmNoIChjb21tYW5kKTsKKy0gICAgICAgIH0gZWxzZSBpZiAocHJv Y2Vzc19pc19ydW5uaW5nKCJnZG0iKSB8fCBwcm9jZXNzX2lzX3J1bm5pbmcoImdkbTMiKSkgewor KyAgICAgICAgaWYgKHByb2Nlc3NfaXNfcnVubmluZygiZ2RtIikgfHwgcHJvY2Vzc19pc19ydW5u aW5nKCJnZG0zIikpIHsKKyAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmNvbW1hbmRbXSA9 IHsKKyAgICAgICAgICAgICAgICAgICAgICBHRE1fRkxFWElTRVJWRVJfQ09NTUFORCwKKyAgICAg ICAgICAgICAgICAgICAgICBHRE1fRkxFWElTRVJWRVJfQVJHUywKK0BAIC0xMzQ5LDEyICsxMzA1 LDEwIEBAIGVuZF9zZXNzaW9uX29yX3JlcG9ydF9pbmhpYml0b3JzIChDc21NYW5hZ2VyICptYW5h Z2VyKQorICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJf TE9HT1VUX1JFQk9PVDoKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1JFQk9PVF9J TlRFUkFDVDoKKy0gICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1JFQk9PVF9NRE06Cisg ICAgICAgICAgICAgICAgIGFjdGlvbiA9IENTTV9MT0dPVVRfQUNUSU9OX1JFQk9PVDsKKyAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIENTTV9NQU5BR0VSX0xPR09VVF9TSFVU RE9XTjoKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1NIVVRET1dOX0lOVEVSQUNU OgorLSAgICAgICAgY2FzZSBDU01fTUFOQUdFUl9MT0dPVVRfU0hVVERPV05fTURNOgorICAgICAg ICAgICAgICAgICBhY3Rpb24gPSBDU01fTE9HT1VUX0FDVElPTl9TSFVURE9XTjsKKyAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICBkZWZhdWx0OgorZGlmZiAtLWdpdCBhL2Npbm5hbW9u LXNlc3Npb24vbWRtLmMgYi9jaW5uYW1vbi1zZXNzaW9uL21kbS5jCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDNhZWVlZWIuLjAwMDAwMDAKKy0tLSBhL2Npbm5hbW9uLXNlc3Npb24v bWRtLmMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ3MSArMCwwIEBACistLyogLSotIE1vZGU6IEM7 IHRhYi13aWR0aDogODsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjLWJhc2ljLW9mZnNldDogOCAt Ki0KKy0gKgorLSAqIENvcHlyaWdodCAoQykgMjAwNSBSYWZmYWVsZSBTYW5kcmluaQorLSAqIENv cHlyaWdodCAoQykgMjAwNSBSZWQgSGF0LCBJbmMuCistICogQ29weXJpZ2h0IChDKSAyMDAyLCAy MDAzIEdlb3JnZSBMZWJsCistICogQ29weXJpZ2h0IChDKSAyMDAxIFF1ZWVuIG9mIEVuZ2xhbmQs CistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCistICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKy0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKy0gKiBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLSAqCistICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1 dAorLSAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKy0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorLSAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKy0gKgorLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistICogYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKy0gKiBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBTdWl0ZSA1MDAsIEJvc3RvbiwgTUEKKy0gKiAwMjEx MC0xMzM1LCBVU0EuCistICoKKy0gKiBBdXRob3JzOgorLSAqICAgICAgUmFmZmFlbGUgU2FuZHJp bmkgPHJhc2FAZ214LmNoPgorLSAqICAgICAgR2VvcmdlIExlYmwgPGppcmthQDV6LmNvbT4KKy0g KiAgICAgIE1hcmsgTWNMb3VnaGxpbiA8bWFya0Bza3luZXQuaWU+CistICovCistCistI2lmZGVm IEhBVkVfQ09ORklHX0gKKy0jaW5jbHVkZSA8Y29uZmlnLmg+CistI2VuZGlmCistCistI2luY2x1 ZGUgPHN0cmluZy5oPgorLSNpbmNsdWRlIDxlcnJuby5oPgorLSNpbmNsdWRlIDx1bmlzdGQuaD4K Ky0jaW5jbHVkZSA8dGltZS5oPgorLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CistI2luY2x1ZGUg PHN5cy91bi5oPgorLQorLSNpbmNsdWRlIDxYMTEvWGF1dGguaD4KKy0jaW5jbHVkZSA8Z2RrL2dk ay5oPgorLQorLSNpbmNsdWRlICJtZG0uaCIKKy0KKy0jZGVmaW5lIE1ETV9QUk9UT0NPTF9VUERB VEVfSU5URVJWQUwgMSAvKiBzZWNvbmRzICovCistCistI2RlZmluZSBNRE1fUFJPVE9DT0xfU09D S0VUX1BBVEggIi92YXIvcnVuL2dkbV9zb2NrZXQiCistCistI2RlZmluZSBNRE1fUFJPVE9DT0xf TVNHX0NMT1NFICAgICAgICAgIkNMT1NFIgorLSNkZWZpbmUgTURNX1BST1RPQ09MX01TR19WRVJT SU9OICAgICAgICJWRVJTSU9OIgorLSNkZWZpbmUgTURNX1BST1RPQ09MX01TR19BVVRIRU5USUNB VEUgICJBVVRIX0xPQ0FMIgorLSNkZWZpbmUgTURNX1BST1RPQ09MX01TR19RVUVSWV9BQ1RJT04g ICJRVUVSWV9MT0dPVVRfQUNUSU9OIgorLSNkZWZpbmUgTURNX1BST1RPQ09MX01TR19TRVRfQUNU SU9OICAgICJTRVRfU0FGRV9MT0dPVVRfQUNUSU9OIgorLSNkZWZpbmUgTURNX1BST1RPQ09MX01T R19GTEVYSV9YU0VSVkVSICJGTEVYSV9YU0VSVkVSIgorLQorLSNkZWZpbmUgTURNX0FDVElPTl9T VFJfTk9ORSAgICAgIk5PTkUiCistI2RlZmluZSBNRE1fQUNUSU9OX1NUUl9TSFVURE9XTiAiSEFM VCIKKy0jZGVmaW5lIE1ETV9BQ1RJT05fU1RSX1JFQk9PVCAgICJSRUJPT1QiCistI2RlZmluZSBN RE1fQUNUSU9OX1NUUl9TVVNQRU5EICAiU1VTUEVORCIKKy0KKy10eXBlZGVmIHN0cnVjdCB7Cist ICAgICAgICBpbnQgICAgICAgICAgICAgZmQ7CistICAgICAgICBjaGFyICAgICAgICAgICAqYXV0 aF9jb29raWU7CistCistICAgICAgICBNZG1Mb2dvdXRBY3Rpb24gYXZhaWxhYmxlX2FjdGlvbnM7 CistICAgICAgICBNZG1Mb2dvdXRBY3Rpb24gY3VycmVudF9hY3Rpb25zOworLQorLSAgICAgICAg dGltZV90ICAgICAgICAgIGxhc3RfdXBkYXRlOworLX0gTWRtUHJvdG9jb2xEYXRhOworLQorLXN0 YXRpYyBNZG1Qcm90b2NvbERhdGEgbWRtX3Byb3RvY29sX2RhdGEgPSB7CistICAgICAgICAwLAor LSAgICAgICAgTlVMTCwKKy0gICAgICAgIE1ETV9MT0dPVVRfQUNUSU9OX05PTkUsCistICAgICAg ICBNRE1fTE9HT1VUX0FDVElPTl9OT05FLAorLSAgICAgICAgMAorLX07CistCistc3RhdGljIGNo YXIgKgorLW1kbV9zZW5kX3Byb3RvY29sX21zZyAoTWRtUHJvdG9jb2xEYXRhICpkYXRhLAorLSAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICptc2cpCisteworLSAgICAgICAg R1N0cmluZyAqcmV0dmFsOworLSAgICAgICAgY2hhciBidWZbMjU2XTsKKy0gICAgICAgIGNoYXIg KnA7CistICAgICAgICBpbnQgbGVuOworLQorLSAgICAgICAgcCA9IGdfc3RyY29uY2F0IChtc2cs ICJcbiIsIE5VTEwpOworLQorLSAgICAgICAgaWYgKHdyaXRlIChkYXRhLT5mZCwgcCwgc3RybGVu IChwKSkgPCAwKSB7CistICAgICAgICAgICAgICAgIGdfZnJlZSAocCk7CistCistICAgICAgICAg ICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gTURNOiAlcyIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19zdHJlcnJvciAoZXJybm8pKTsKKy0KKy0gICAg ICAgICAgICAgICAgcmV0dXJuIE5VTEw7CistICAgICAgICB9CistCistICAgICAgICBnX2ZyZWUg KHApOworLQorLSAgICAgICAgcCA9IE5VTEw7CistICAgICAgICByZXR2YWwgPSBOVUxMOworLQor LSAgICAgICAgd2hpbGUgKChsZW4gPSByZWFkIChkYXRhLT5mZCwgYnVmLCBzaXplb2YgKGJ1Zikg LSAxKSkgPiAwKSB7CistICAgICAgICAgICAgICAgIGJ1ZltsZW5dID0gJ1wwJzsKKy0KKy0gICAg ICAgICAgICAgICAgaWYgKCFyZXR2YWwpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICByZXR2 YWwgPSBnX3N0cmluZ19uZXcgKGJ1Zik7CistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gZ19zdHJpbmdfYXBwZW5kIChyZXR2YWwsIGJ1 Zik7CistICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgaWYgKChwID0gc3Ry Y2hyIChyZXR2YWwtPnN0ciwgJ1xuJykpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmIChwKSB7 CistICAgICAgICAgICAgICAgICpwID0gJ1wwJzsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHJl dHVybiByZXR2YWwgPyBnX3N0cmluZ19mcmVlIChyZXR2YWwsIEZBTFNFKSA6IE5VTEw7CistfQor LQorLXN0YXRpYyBjaGFyICoKKy1nZXRfZGlzcGxheV9udW1iZXIgKHZvaWQpCisteworLSAgICAg ICAgY29uc3QgY2hhciAqZGlzcGxheV9uYW1lOworLSAgICAgICAgY2hhciAgICAgICAqcmV0dmFs OworLSAgICAgICAgY2hhciAgICAgICAqcDsKKy0KKy0gICAgICAgIGRpc3BsYXlfbmFtZSA9IGdk a19kaXNwbGF5X2dldF9uYW1lIChnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCAoKSk7CistCistICAg ICAgICBwID0gc3RyY2hyIChkaXNwbGF5X25hbWUsICc6Jyk7CistCistICAgICAgICBpZiAoIXAp IHsKKy0gICAgICAgICAgICAgICAgcmV0dXJuIGdfc3RyZHVwICgiMCIpOworLSAgICAgICAgfQor LQorLSAgICAgICAgd2hpbGUgKCpwID09ICc6JykgeworLSAgICAgICAgICAgICAgICBwKys7Cist ICAgICAgICB9CistCistICAgICAgICByZXR2YWwgPSBnX3N0cmR1cCAocCk7CistCistICAgICAg ICBwID0gc3RyY2hyIChyZXR2YWwsICcuJyk7CistCistICAgICAgICBpZiAocCAhPSBOVUxMKSB7 CistICAgICAgICAgICAgICAgICpwID0gJ1wwJzsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHJl dHVybiByZXR2YWw7CistfQorLQorLXN0YXRpYyBnYm9vbGVhbgorLW1kbV9hdXRoZW50aWNhdGVf Y29ubmVjdGlvbiAoTWRtUHJvdG9jb2xEYXRhICpkYXRhKQorLXsKKy0jZGVmaW5lIE1ETV9NSVRf TUFHSUNfQ09PS0lFX0xFTiAxNgorLQorLSAgICAgICAgY29uc3QgY2hhciAqeGF1X3BhdGg7Cist ICAgICAgICBGSUxFICpmOworLSAgICAgICAgWGF1dGggKnhhdTsKKy0gICAgICAgIGNoYXIgKmRp c3BsYXlfbnVtYmVyOworLSAgICAgICAgZ2Jvb2xlYW4gcmV0dmFsOworLQorLSAgICAgICAgaWYg KGRhdGEtPmF1dGhfY29va2llKSB7CistICAgICAgICAgICAgICAgIGNoYXIgKm1zZzsKKy0gICAg ICAgICAgICAgICAgY2hhciAqcmVzcG9uc2U7CistCistICAgICAgICAgICAgICAgIG1zZyA9IGdf c3RyZHVwX3ByaW50ZiAoTURNX1BST1RPQ09MX01TR19BVVRIRU5USUNBVEUgIiAlcyIsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+YXV0aF9jb29raWUpOwor LSAgICAgICAgICAgICAgICByZXNwb25zZSA9IG1kbV9zZW5kX3Byb3RvY29sX21zZyAoZGF0YSwg bXNnKTsKKy0gICAgICAgICAgICAgICAgZ19mcmVlIChtc2cpOworLQorLSAgICAgICAgICAgICAg ICBpZiAocmVzcG9uc2UgJiYgIXN0cmNtcCAocmVzcG9uc2UsICJPSyIpKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgZ19mcmVlIChyZXNwb25zZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFRSVUU7CistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgZ19mcmVlIChyZXNwb25zZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg Z19mcmVlIChkYXRhLT5hdXRoX2Nvb2tpZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YS0+YXV0aF9jb29raWUgPSBOVUxMOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICB9Cist CistICAgICAgICBpZiAoISh4YXVfcGF0aCA9IFhhdUZpbGVOYW1lICgpKSkgeworLSAgICAgICAg ICAgICAgICByZXR1cm4gRkFMU0U7CistICAgICAgICB9CistCistICAgICAgICBpZiAoIShmID0g Zm9wZW4gKHhhdV9wYXRoLCAiciIpKSkgeworLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7 CistICAgICAgICB9CistCistICAgICAgICByZXR2YWwgPSBGQUxTRTsKKy0gICAgICAgIGRpc3Bs YXlfbnVtYmVyID0gZ2V0X2Rpc3BsYXlfbnVtYmVyICgpOworLQorLSAgICAgICAgd2hpbGUgKCh4 YXUgPSBYYXVSZWFkQXV0aCAoZikpKSB7CistICAgICAgICAgICAgICAgIGNoYXIgYnVmZmVyWzQw XTsgLyogMioxNiA9PSAzMiwgc28gNDAgaXMgZW5vdWdoICovCistICAgICAgICAgICAgICAgIGNo YXIgKm1zZzsKKy0gICAgICAgICAgICAgICAgY2hhciAqcmVzcG9uc2U7CistICAgICAgICAgICAg ICAgIGludCAgIGk7CistCistICAgICAgICAgICAgICAgIGlmICh4YXUtPmZhbWlseSAhPSBGYW1p bHlMb2NhbCB8fAorLSAgICAgICAgICAgICAgICAgICAgc3RybmNtcCAoeGF1LT5udW1iZXIsIGRp c3BsYXlfbnVtYmVyLCB4YXUtPm51bWJlcl9sZW5ndGgpIHx8CistICAgICAgICAgICAgICAgICAg ICBzdHJuY21wICh4YXUtPm5hbWUsICJNSVQtTUFHSUMtQ09PS0lFLTEiLCB4YXUtPm5hbWVfbGVu Z3RoKSB8fAorLSAgICAgICAgICAgICAgICAgICAgeGF1LT5kYXRhX2xlbmd0aCAhPSBNRE1fTUlU X01BR0lDX0NPT0tJRV9MRU4pIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBYYXVEaXNwb3Nl QXV0aCAoeGF1KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgTURNX01JVF9N QUdJQ19DT09LSUVfTEVOOyBpKyspIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBnX3NucHJp bnRmIChidWZmZXIgKyAyKmksIDMsICIlMDJ4IiwgKGd1aW50KShndWNoYXIpeGF1LT5kYXRhW2ld KTsKKy0gICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICBYYXVEaXNwb3NlQXV0 aCAoeGF1KTsKKy0KKy0gICAgICAgICAgICAgICAgbXNnID0gZ19zdHJkdXBfcHJpbnRmIChNRE1f UFJPVE9DT0xfTVNHX0FVVEhFTlRJQ0FURSAiICVzIiwgYnVmZmVyKTsKKy0gICAgICAgICAgICAg ICAgcmVzcG9uc2UgPSBtZG1fc2VuZF9wcm90b2NvbF9tc2cgKGRhdGEsIG1zZyk7CistICAgICAg ICAgICAgICAgIGdfZnJlZSAobXNnKTsKKy0KKy0gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNl ICYmICFzdHJjbXAgKHJlc3BvbnNlLCAiT0siKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IGRhdGEtPmF1dGhfY29va2llID0gZ19zdHJkdXAgKGJ1ZmZlcik7CistICAgICAgICAgICAgICAg ICAgICAgICAgZ19mcmVlIChyZXNwb25zZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dmFsID0gVFJVRTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgICAgICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGdfZnJlZSAoZGlzcGxheV9udW1iZXIpOworLQorLSAgICAgICAgZmNs b3NlIChmKTsKKy0KKy0gICAgICAgIHJldHVybiByZXR2YWw7CistCistI3VuZGVmIE1ETV9NSVRf TUFHSUNfQ09PS0lFX0xFTgorLX0KKy0KKy1zdGF0aWMgdm9pZAorLW1kbV9zaHV0ZG93bl9wcm90 b2NvbF9jb25uZWN0aW9uIChNZG1Qcm90b2NvbERhdGEgKmRhdGEpCisteworLSAgICAgICAgaWYg KGRhdGEtPmZkKSB7CistICAgICAgICAgICAgICAgIGNsb3NlIChkYXRhLT5mZCk7CistICAgICAg ICB9CistCistICAgICAgICBkYXRhLT5mZCA9IDA7CistfQorLQorLXN0YXRpYyBnYm9vbGVhbgor LW1kbV9pbml0X3Byb3RvY29sX2Nvbm5lY3Rpb24gKE1kbVByb3RvY29sRGF0YSAqZGF0YSkKKy17 CistICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfdW4gYWRkcjsKKy0gICAgICAgIGNoYXIgICAgICAg ICAgICAgICpyZXNwb25zZTsKKy0KKy0gICAgICAgIGdfYXNzZXJ0IChkYXRhLT5mZCA8PSAwKTsK Ky0KKy0gICAgICAgIGlmIChnX2ZpbGVfdGVzdCAoTURNX1BST1RPQ09MX1NPQ0tFVF9QQVRILCBH X0ZJTEVfVEVTVF9FWElTVFMpKSB7CistICAgICAgICAgICAgICAgIHN0cmNweSAoYWRkci5zdW5f cGF0aCwgTURNX1BST1RPQ09MX1NPQ0tFVF9QQVRIKTsKKy0gICAgICAgIH0gZWxzZSBpZiAoZ19m aWxlX3Rlc3QgKCIvdG1wLy5tZG1fc29ja2V0IiwgR19GSUxFX1RFU1RfRVhJU1RTKSkgeworLSAg ICAgICAgICAgICAgICBzdHJjcHkgKGFkZHIuc3VuX3BhdGgsICIvdG1wLy5tZG1fc29ja2V0Iik7 CistICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CistICAg ICAgICB9CistCistICAgICAgICBkYXRhLT5mZCA9IHNvY2tldCAoQUZfVU5JWCwgU09DS19TVFJF QU0sIDApOworLQorLSAgICAgICAgaWYgKGRhdGEtPmZkIDwgMCkgeworLSAgICAgICAgICAgICAg ICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gY3JlYXRlIE1ETSBzb2NrZXQ6ICVzIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICBnX3N0cmVycm9yIChlcnJubykpOworLQorLSAgICAgICAgICAg ICAgICBtZG1fc2h1dGRvd25fcHJvdG9jb2xfY29ubmVjdGlvbiAoZGF0YSk7CistCistICAgICAg ICAgICAgICAgIHJldHVybiBGQUxTRTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGFkZHIuc3Vu X2ZhbWlseSA9IEFGX1VOSVg7CistCistICAgICAgICBpZiAoY29ubmVjdCAoZGF0YS0+ZmQsIChz dHJ1Y3Qgc29ja2FkZHIgKikgJmFkZHIsIHNpemVvZiAoYWRkcikpIDwgMCkgeworLSAgICAgICAg ICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB3aXRo IE1ETTogJXMiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfc3RyZXJyb3IgKGVycm5v KSk7CistCistICAgICAgICAgICAgICAgIG1kbV9zaHV0ZG93bl9wcm90b2NvbF9jb25uZWN0aW9u IChkYXRhKTsKKy0KKy0gICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworLSAgICAgICAgfQor LQorLSAgICAgICAgcmVzcG9uc2UgPSBtZG1fc2VuZF9wcm90b2NvbF9tc2cgKGRhdGEsIE1ETV9Q Uk9UT0NPTF9NU0dfVkVSU0lPTik7CistCistICAgICAgICBpZiAoIXJlc3BvbnNlIHx8IHN0cm5j bXAgKHJlc3BvbnNlLCAiTURNICIsIHN0cmxlbiAoIk1ETSAiKSkgIT0gMCkgeworLSAgICAgICAg ICAgICAgICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0KKy0gICAgICAgICAgICAgICAgZ193YXJuaW5n ICgiRmFpbGVkIHRvIGdldCBwcm90b2NvbCB2ZXJzaW9uIGZyb20gTURNIik7CistICAgICAgICAg ICAgICAgIG1kbV9zaHV0ZG93bl9wcm90b2NvbF9jb25uZWN0aW9uIChkYXRhKTsKKy0KKy0gICAg ICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworLSAgICAgICAgfQorLQorLSAgICAgICAgZ19mcmVl IChyZXNwb25zZSk7CistCistICAgICAgICBpZiAoIW1kbV9hdXRoZW50aWNhdGVfY29ubmVjdGlv biAoZGF0YSkpIHsKKy0gICAgICAgICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIGF1dGhl bnRpY2F0ZSB3aXRoIE1ETSIpOworLSAgICAgICAgICAgICAgICBtZG1fc2h1dGRvd25fcHJvdG9j b2xfY29ubmVjdGlvbiAoZGF0YSk7CistICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIHJldHVybiBUUlVFOworLX0KKy0KKy1zdGF0aWMgdm9pZAor LW1kbV9wYXJzZV9xdWVyeV9yZXNwb25zZSAoTWRtUHJvdG9jb2xEYXRhICpkYXRhLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICpyZXNwb25zZSkKKy17CistICAg ICAgICBjaGFyICoqYWN0aW9uczsKKy0gICAgICAgIGludCBpOworLQorLSAgICAgICAgZGF0YS0+ YXZhaWxhYmxlX2FjdGlvbnMgPSBNRE1fTE9HT1VUX0FDVElPTl9OT05FOworLSAgICAgICAgZGF0 YS0+Y3VycmVudF9hY3Rpb25zICAgPSBNRE1fTE9HT1VUX0FDVElPTl9OT05FOworLQorLSAgICAg ICAgaWYgKHN0cm5jbXAgKHJlc3BvbnNlLCAiT0sgIiwgMykgIT0gMCkgeworLSAgICAgICAgICAg ICAgICByZXR1cm47CistICAgICAgICB9CistCistICAgICAgICByZXNwb25zZSArPSAzOworLQor LSAgICAgICAgYWN0aW9ucyA9IGdfc3Ryc3BsaXQgKHJlc3BvbnNlLCAiOyIsIC0xKTsKKy0KKy0g ICAgICAgIGZvciAoaSA9IDA7IGFjdGlvbnNbaV07IGkrKykgeworLSAgICAgICAgICAgICAgICBN ZG1Mb2dvdXRBY3Rpb24gYWN0aW9uID0gTURNX0xPR09VVF9BQ1RJT05fTk9ORTsKKy0gICAgICAg ICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIHNlbGVjdGVkID0gRkFMU0U7CistICAgICAgICAgICAg ICAgIGNoYXIgICAgICAgICAgICpzdHIgPSBhY3Rpb25zIFtpXTsKKy0gICAgICAgICAgICAgICAg aW50ICAgICAgICAgICAgIGxlbjsKKy0KKy0gICAgICAgICAgICAgICAgbGVuID0gc3RybGVuIChz dHIpOworLQorLSAgICAgICAgICAgICAgICBpZiAoIWxlbikgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOworLSAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg IGlmIChzdHJbbGVuIC0gMV0gPT0gJyEnKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgc2Vs ZWN0ZWQgPSBUUlVFOworLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cltsZW4gLSAxXSA9ICdc MCc7CistICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgaWYgKCFzdHJjbXAg KHN0ciwgTURNX0FDVElPTl9TVFJfU0hVVERPV04pKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgYWN0aW9uID0gTURNX0xPR09VVF9BQ1RJT05fU0hVVERPV047CistICAgICAgICAgICAgICAg IH0gZWxzZSBpZiAoIXN0cmNtcCAoc3RyLCBNRE1fQUNUSU9OX1NUUl9SRUJPT1QpKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gTURNX0xPR09VVF9BQ1RJT05fUkVCT09UOwor LSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAgKHN0ciwgTURNX0FDVElPTl9TVFJf U1VTUEVORCkpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSBNRE1fTE9HT1VU X0FDVElPTl9TVVNQRU5EOworLSAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg IGRhdGEtPmF2YWlsYWJsZV9hY3Rpb25zIHw9IGFjdGlvbjsKKy0KKy0gICAgICAgICAgICAgICAg aWYgKHNlbGVjdGVkKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y3VycmVudF9h Y3Rpb25zIHw9IGFjdGlvbjsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAg ICAgICAgZ19zdHJmcmVldiAoYWN0aW9ucyk7CistfQorLQorLXN0YXRpYyB2b2lkCistbWRtX3Vw ZGF0ZV9sb2dvdXRfYWN0aW9ucyAoTWRtUHJvdG9jb2xEYXRhICpkYXRhKQorLXsKKy0gICAgICAg IHRpbWVfdCBjdXJyZW50X3RpbWU7CistICAgICAgICBjaGFyICAqcmVzcG9uc2U7CistCistICAg ICAgICBjdXJyZW50X3RpbWUgPSB0aW1lIChOVUxMKTsKKy0KKy0gICAgICAgIGlmIChjdXJyZW50 X3RpbWUgPD0gKGRhdGEtPmxhc3RfdXBkYXRlICsgTURNX1BST1RPQ09MX1VQREFURV9JTlRFUlZB TCkpIHsKKy0gICAgICAgICAgICAgICAgcmV0dXJuOworLSAgICAgICAgfQorLQorLSAgICAgICAg ZGF0YS0+bGFzdF91cGRhdGUgPSBjdXJyZW50X3RpbWU7CistCistICAgICAgICBpZiAoIW1kbV9p bml0X3Byb3RvY29sX2Nvbm5lY3Rpb24gKGRhdGEpKSB7CistICAgICAgICAgICAgICAgIHJldHVy bjsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmICgocmVzcG9uc2UgPSBtZG1fc2VuZF9wcm90 b2NvbF9tc2cgKGRhdGEsIE1ETV9QUk9UT0NPTF9NU0dfUVVFUllfQUNUSU9OKSkpIHsKKy0gICAg ICAgICAgICAgICAgbWRtX3BhcnNlX3F1ZXJ5X3Jlc3BvbnNlIChkYXRhLCByZXNwb25zZSk7Cist ICAgICAgICAgICAgICAgIGdfZnJlZSAocmVzcG9uc2UpOworLSAgICAgICAgfQorLQorLSAgICAg ICAgbWRtX3NodXRkb3duX3Byb3RvY29sX2Nvbm5lY3Rpb24gKGRhdGEpOworLX0KKy0KKy1nYm9v bGVhbgorLW1kbV9pc19hdmFpbGFibGUgKHZvaWQpCisteworLSAgICAgICAgaWYgKCFtZG1faW5p dF9wcm90b2NvbF9jb25uZWN0aW9uICgmbWRtX3Byb3RvY29sX2RhdGEpKSB7CistICAgICAgICAg ICAgICAgIHJldHVybiBGQUxTRTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIG1kbV9zaHV0ZG93 bl9wcm90b2NvbF9jb25uZWN0aW9uICgmbWRtX3Byb3RvY29sX2RhdGEpOworLQorLSAgICAgICAg cmV0dXJuIFRSVUU7CistfQorLQorLWdib29sZWFuCistbWRtX3N1cHBvcnRzX2xvZ291dF9hY3Rp b24gKE1kbUxvZ291dEFjdGlvbiBhY3Rpb24pCisteworLSAgICAgICAgbWRtX3VwZGF0ZV9sb2dv dXRfYWN0aW9ucyAoJm1kbV9wcm90b2NvbF9kYXRhKTsKKy0KKy0gICAgICAgIHJldHVybiAobWRt X3Byb3RvY29sX2RhdGEuYXZhaWxhYmxlX2FjdGlvbnMgJiBhY3Rpb24pICE9IDA7CistfQorLQor LU1kbUxvZ291dEFjdGlvbgorLW1kbV9nZXRfbG9nb3V0X2FjdGlvbiAodm9pZCkKKy17CistICAg ICAgICBtZG1fdXBkYXRlX2xvZ291dF9hY3Rpb25zICgmbWRtX3Byb3RvY29sX2RhdGEpOworLQor LSAgICAgICAgcmV0dXJuIG1kbV9wcm90b2NvbF9kYXRhLmN1cnJlbnRfYWN0aW9uczsKKy19Cist Cistdm9pZAorLW1kbV9zZXRfbG9nb3V0X2FjdGlvbiAoTWRtTG9nb3V0QWN0aW9uIGFjdGlvbikK Ky17CistICAgICAgICBjaGFyICphY3Rpb25fc3RyID0gTlVMTDsKKy0gICAgICAgIGNoYXIgKm1z ZzsKKy0gICAgICAgIGNoYXIgKnJlc3BvbnNlOworLQorLSAgICAgICAgaWYgKCFtZG1faW5pdF9w cm90b2NvbF9jb25uZWN0aW9uICgmbWRtX3Byb3RvY29sX2RhdGEpKSB7CistICAgICAgICAgICAg ICAgIHJldHVybjsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Cist ICAgICAgICBjYXNlIE1ETV9MT0dPVVRfQUNUSU9OX05PTkU6CistICAgICAgICAgICAgICAgIGFj dGlvbl9zdHIgPSBNRE1fQUNUSU9OX1NUUl9OT05FOworLSAgICAgICAgICAgICAgICBicmVhazsK Ky0gICAgICAgIGNhc2UgTURNX0xPR09VVF9BQ1RJT05fU0hVVERPV046CistICAgICAgICAgICAg ICAgIGFjdGlvbl9zdHIgPSBNRE1fQUNUSU9OX1NUUl9TSFVURE9XTjsKKy0gICAgICAgICAgICAg ICAgYnJlYWs7CistICAgICAgICBjYXNlIE1ETV9MT0dPVVRfQUNUSU9OX1JFQk9PVDoKKy0gICAg ICAgICAgICAgICAgYWN0aW9uX3N0ciA9IE1ETV9BQ1RJT05fU1RSX1JFQk9PVDsKKy0gICAgICAg ICAgICAgICAgYnJlYWs7CistICAgICAgICBjYXNlIE1ETV9MT0dPVVRfQUNUSU9OX1NVU1BFTkQ6 CistICAgICAgICAgICAgICAgIGFjdGlvbl9zdHIgPSBNRE1fQUNUSU9OX1NUUl9TVVNQRU5EOwor LSAgICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIG1zZyA9IGdf c3RyZHVwX3ByaW50ZiAoTURNX1BST1RPQ09MX01TR19TRVRfQUNUSU9OICIgJXMiLCBhY3Rpb25f c3RyKTsKKy0KKy0gICAgICAgIHJlc3BvbnNlID0gbWRtX3NlbmRfcHJvdG9jb2xfbXNnICgmbWRt X3Byb3RvY29sX2RhdGEsIG1zZyk7CistCistICAgICAgICBnX2ZyZWUgKG1zZyk7CistICAgICAg ICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0KKy0gICAgICAgIG1kbV9wcm90b2NvbF9kYXRhLmxhc3Rf dXBkYXRlID0gMDsKKy0KKy0gICAgICAgIG1kbV9zaHV0ZG93bl9wcm90b2NvbF9jb25uZWN0aW9u ICgmbWRtX3Byb3RvY29sX2RhdGEpOworLX0KKy0KKy12b2lkCistbWRtX25ld19sb2dpbiAodm9p ZCkKKy17CistICAgICAgICBjaGFyICpyZXNwb25zZTsKKy0KKy0gICAgICAgIGlmICghbWRtX2lu aXRfcHJvdG9jb2xfY29ubmVjdGlvbiAoJm1kbV9wcm90b2NvbF9kYXRhKSkgeworLSAgICAgICAg ICAgICAgICByZXR1cm47CistICAgICAgICB9CistCistICAgICAgICByZXNwb25zZSA9IG1kbV9z ZW5kX3Byb3RvY29sX21zZyAoJm1kbV9wcm90b2NvbF9kYXRhLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1ETV9QUk9UT0NPTF9NU0dfRkxFWElfWFNFUlZFUik7 CistCistICAgICAgICBnX2ZyZWUgKHJlc3BvbnNlKTsKKy0KKy0gICAgICAgIG1kbV9wcm90b2Nv bF9kYXRhLmxhc3RfdXBkYXRlID0gMDsKKy0KKy0gICAgICAgIG1kbV9zaHV0ZG93bl9wcm90b2Nv bF9jb25uZWN0aW9uICgmbWRtX3Byb3RvY29sX2RhdGEpOworLX0KK2RpZmYgLS1naXQgYS9jaW5u YW1vbi1zZXNzaW9uL21kbS5oIGIvY2lubmFtb24tc2Vzc2lvbi9tZG0uaAorZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAyYmRiNWYzLi4wMDAwMDAwCistLS0gYS9jaW5uYW1vbi1zZXNz aW9uL21kbS5oCisrKysgL2Rldi9udWxsCitAQCAtMSw1NCArMCwwIEBACistLyogbWRtLmgKKy0g KiBDb3B5cmlnaHQgKEMpIDIwMDUgUmFmZmFlbGUgU2FuZHJpbmkKKy0gKiBDb3B5cmlnaHQgKEMp IDIwMDUgUmVkIEhhdCwgSW5jLgorLSAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMyBHZW9yZ2Ug TGVibAorLSAqIENvcHlyaWdodCAoQykgMjAwMSBRdWVlbiBvZiBFbmdsYW5kLCAKKy0gKgorLSAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKy0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorLSAqIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CistICogV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor LSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCistICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorLSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCAtIFN1aXRlIDUwMCwgQm9zdG9uLCBNQQorLSAqIDAyMTEwLTEzMzUsIFVT QS4KKy0gKgorLSAqIEF1dGhvcnM6CistICogICAgICBSYWZmYWVsZSBTYW5kcmluaSA8cmFzYUBn bXguY2g+CistICogICAgICBHZW9yZ2UgTGVibCA8amlya2FANXouY29tPgorLSAqICAgICAgTWFy ayBNY0xvdWdobGluIDxtYXJrQHNreW5ldC5pZT4KKy0gKi8KKy0KKy0jaWZuZGVmIF9fTURNX0xP R09VVF9BQ1RJT05fSF9fCistI2RlZmluZSBfX01ETV9MT0dPVVRfQUNUSU9OX0hfXworLQorLSNp bmNsdWRlIDxnbGliLmg+CistCistR19CRUdJTl9ERUNMUworLQorLXR5cGVkZWYgZW51bSB7Cist ICBNRE1fTE9HT1VUX0FDVElPTl9OT05FICAgICA9IDAsCistICBNRE1fTE9HT1VUX0FDVElPTl9T SFVURE9XTiA9IDEgPDwgMCwKKy0gIE1ETV9MT0dPVVRfQUNUSU9OX1JFQk9PVCAgID0gMSA8PCAx LAorLSAgTURNX0xPR09VVF9BQ1RJT05fU1VTUEVORCAgPSAxIDw8IDIKKy19IE1kbUxvZ291dEFj dGlvbjsKKy0KKy1nYm9vbGVhbiAgICAgICAgIG1kbV9pc19hdmFpbGFibGUgICAgICAgICAgICAo dm9pZCk7CistCistdm9pZCAgICAgICAgICAgICBtZG1fbmV3X2xvZ2luICAgICAgICAgICAgICAg KHZvaWQpOworLQorLXZvaWQgICAgICAgICAgICAgbWRtX3NldF9sb2dvdXRfYWN0aW9uICAgICAg IChNZG1Mb2dvdXRBY3Rpb24gYWN0aW9uKTsKKy0KKy1NZG1Mb2dvdXRBY3Rpb24gIG1kbV9nZXRf bG9nb3V0X2FjdGlvbiAgICAgICAodm9pZCk7CistCistZ2Jvb2xlYW4gICAgICAgICBtZG1fc3Vw cG9ydHNfbG9nb3V0X2FjdGlvbiAgKE1kbUxvZ291dEFjdGlvbiBhY3Rpb24pOworLQorLUdfRU5E X0RFQ0xTCistCistI2VuZGlmIC8qIF9fTURNX0xPR09VVF9BQ1RJT05fSF9fICovCitkaWZmIC0t Z2l0IGEvY2lubmFtb24tc2Vzc2lvbi9tZXNvbi5idWlsZCBiL2Npbm5hbW9uLXNlc3Npb24vbWVz b24uYnVpbGQKK2luZGV4IDA3Mzc1NWQuLjYxYjQ3MzcgMTAwNjQ0CistLS0gYS9jaW5uYW1vbi1z ZXNzaW9uL21lc29uLmJ1aWxkCisrKysgYi9jaW5uYW1vbi1zZXNzaW9uL21lc29uLmJ1aWxkCitA QCAtNDksNyArNDksNiBAQCBjaW5uYW1vbl9zZXNzaW9uX3NvdXJjZXMgPSBbCisgICAnbWFpbi5j JywKKyAgICdtZG0tbG9nLmMnLAorICAgJ21kbS1zaWduYWwtaGFuZGxlci5jJywKKy0gICdtZG0u YycsCisgICBjc21fbWFyc2hhbF9zb3VyY2VzLAorICAgZ2RidXNfc291cmNlcywKKyBdCisKK0Zy b20gZDYxNWNmZTViNGZkNGQyOGQ4ZDZjMDRiMjNkZjkzNGYzNjkwNTQ0MSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IExlaWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4K K0RhdGU6IFR1ZSwgOCBTZXAgMjAyNiAyMzoxNjoyOCArMDEwMAorU3ViamVjdDogW1BBVENIIDIv Ml0gY3NtLXN5c3RlbWQ6IHdhaXQgZm9yIGxvZ2luZCdzIFByZXBhcmVGb3JTaHV0ZG93biBiZWZv cmUKKyBxdWl0dGluZworCistLS0KKyBjaW5uYW1vbi1zZXNzaW9uL2NzbS1tYW5hZ2VyLmMgfCAg MjIgKysrKysrCisgY2lubmFtb24tc2Vzc2lvbi9jc20tc3lzdGVtLmMgIHwgIDEyICsrKworIGNp bm5hbW9uLXNlc3Npb24vY3NtLXN5c3RlbWQuYyB8IDEyOSArKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCAzMSBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2Npbm5hbW9uLXNlc3Npb24vY3NtLW1hbmFnZXIuYyBi L2Npbm5hbW9uLXNlc3Npb24vY3NtLW1hbmFnZXIuYworaW5kZXggZTc2NTY4Yi4uMTdiYTE1ZiAx MDA2NDQKKy0tLSBhL2Npbm5hbW9uLXNlc3Npb24vY3NtLW1hbmFnZXIuYworKysrIGIvY2lubmFt b24tc2Vzc2lvbi9jc20tbWFuYWdlci5jCitAQCAtNDY2LDYgKzQ2NiwyMCBAQCBwaGFzZV9udW1f dG9fbmFtZSAoZ3VpbnQgcGhhc2UpCisgCisgc3RhdGljIHZvaWQgc3RhcnRfcGhhc2UgKENzbU1h bmFnZXIgKm1hbmFnZXIpOworIAorK3N0YXRpYyB2b2lkCisrb25fc2h1dGRvd25fcHJlcGFyZWQg KENzbVN5c3RlbSAqc3lzdGVtLAorKyAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgIHN1 Y2Nlc3MsCisrICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgdXNlcl9kYXRhKQorK3sK KysgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyAoc3lzdGVtLCBv bl9zaHV0ZG93bl9wcmVwYXJlZCwgdXNlcl9kYXRhKTsKKysKKysgICAgICAgIGlmICghc3VjY2Vz cykgeworKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJTaHV0ZG93bi9yZXN0YXJ0IHdhcyBu b3QgY29uZmlybWVkIGJ5IGxvZ2luZCIpOworKyAgICAgICAgfQorKworKyAgICAgICAgY3NtX3F1 aXQgKCk7CisrfQorKworIHN0YXRpYyB2b2lkCisgY3NtX21hbmFnZXJfcXVpdCAoQ3NtTWFuYWdl ciAqbWFuYWdlcikKKyB7CitAQCAtNDgxLDExICs0OTUsMTkgQEAgY3NtX21hbmFnZXJfcXVpdCAo Q3NtTWFuYWdlciAqbWFuYWdlcikKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1JF Qk9PVDoKKyAgICAgICAgIGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1JFQk9PVF9JTlRFUkFDVDoK KyAgICAgICAgICAgICAgICAgZ193YXJuaW5nICgiUmVxdWVzdGluZyBzeXN0ZW0gcmVzdGFydC4u LiIpOworKyAgICAgICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0IChtYW5hZ2VyLT5wcml2LT5z eXN0ZW0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaHV0ZG93bi1wcmVw YXJlZCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKG9u X3NodXRkb3duX3ByZXBhcmVkKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWFuYWdlcik7CisgICAgICAgICAgICAgICAgIGNzbV9zeXN0ZW1fYXR0ZW1wdF9yZXN0YXJ0ICht YW5hZ2VyLT5wcml2LT5zeXN0ZW0pOworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg IGNhc2UgQ1NNX01BTkFHRVJfTE9HT1VUX1NIVVRET1dOOgorICAgICAgICAgY2FzZSBDU01fTUFO QUdFUl9MT0dPVVRfU0hVVERPV05fSU5URVJBQ1Q6CisgICAgICAgICAgICAgICAgIGdfd2Fybmlu ZyAoIlJlcXVlc3Rpbmcgc3lzdGVtIHNodXRkb3duLi4uIik7CisrICAgICAgICAgICAgICAgIGdf c2lnbmFsX2Nvbm5lY3QgKG1hbmFnZXItPnByaXYtPnN5c3RlbSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInNodXRkb3duLXByZXBhcmVkIiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAob25fc2h1dGRvd25fcHJlcGFyZWQpLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyKTsKKyAgICAgICAgICAgICAg ICAgY3NtX3N5c3RlbV9hdHRlbXB0X3N0b3AgKG1hbmFnZXItPnByaXYtPnN5c3RlbSk7CisgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgZGVmYXVsdDoKK2RpZmYgLS1naXQgYS9jaW5u YW1vbi1zZXNzaW9uL2NzbS1zeXN0ZW0uYyBiL2Npbm5hbW9uLXNlc3Npb24vY3NtLXN5c3RlbS5j CitpbmRleCBjNmJlN2I1Li5jNGZhODg2IDEwMDY0NAorLS0tIGEvY2lubmFtb24tc2Vzc2lvbi9j c20tc3lzdGVtLmMKKysrKyBiL2Npbm5hbW9uLXNlc3Npb24vY3NtLXN5c3RlbS5jCitAQCAtMzAs NiArMzAsNyBAQAorIAorIGVudW0geworICAgICAgICAgUkVRVUVTVF9GQUlMRUQgPSAwLAorKyAg ICAgICAgU0hVVERPV05fUFJFUEFSRUQsCisgICAgICAgICBMQVNUX1NJR05BTAorIH07CisgCitA QCAtNTAsNiArNTEsMTcgQEAgY3NtX3N5c3RlbV9kZWZhdWx0X2luaXQgKENzbVN5c3RlbUludGVy ZmFjZSAqaWZhY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19jY2xvc3VyZV9t YXJzaGFsX1ZPSURfX1BPSU5URVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19U WVBFX05PTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgR19UWVBFX1BPSU5U RVIpOworKworKyAgICAgICAgc2lnbmFscyBbU0hVVERPV05fUFJFUEFSRURdID0KKysgICAgICAg ICAgICAgICAgZ19zaWduYWxfbmV3ICgic2h1dGRvd24tcHJlcGFyZWQiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENTTV9UWVBFX1NZU1RFTSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fQk9PTEVBTiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHX1RZUEVfTk9ORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx LCBHX1RZUEVfQk9PTEVBTik7CisgfQorIAorIEdRdWFyaworZGlmZiAtLWdpdCBhL2Npbm5hbW9u LXNlc3Npb24vY3NtLXN5c3RlbWQuYyBiL2Npbm5hbW9uLXNlc3Npb24vY3NtLXN5c3RlbWQuYwor aW5kZXggZGIzZmU4NC4uYmQ2YTcwYiAxMDA2NDQKKy0tLSBhL2Npbm5hbW9uLXNlc3Npb24vY3Nt LXN5c3RlbWQuYworKysrIGIvY2lubmFtb24tc2Vzc2lvbi9jc20tc3lzdGVtZC5jCitAQCAtNjEs MTAgKzYxLDE4IEBAIHN0cnVjdCBfQ3NtU3lzdGVtZFByaXZhdGUKKyAKKyAgICAgICAgIEdTTGlz dCAgICAgICAgICAqaW5oaWJpdG9yczsKKyAgICAgICAgIGdpbnQgICAgICAgICAgICAgaW5oaWJp dF9mZDsKKysgICAgICAgIGdpbnQgICAgICAgICAgICAgc2h1dGRvd25faW5oaWJpdF9mZDsKKysg ICAgICAgIGdib29sZWFuICAgICAgICAgcHJlcGFyZV9mb3Jfc2h1dGRvd25fZXhwZWN0ZWQ7Cisg fTsKKyAKKyBzdGF0aWMgdm9pZCBjc21fc3lzdGVtZF9zeXN0ZW1faW5pdCAoQ3NtU3lzdGVtSW50 ZXJmYWNlICppZmFjZSk7CisgCisrc3RhdGljIHZvaWQgc2RfcHJveHlfc2lnbmFsX2NiIChHREJ1 c1Byb3h5ICAqcHJveHksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAqc2VuZGVyX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBnY2hhciAqc2lnbmFsX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH VmFyaWFudCAgICAqcGFyYW1ldGVycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdwb2ludGVyICAgICB1c2VyX2RhdGEpOworKworIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RFIChD c21TeXN0ZW1kLCBjc21fc3lzdGVtZCwgR19UWVBFX09CSkVDVCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFIChDU01fVFlQRV9TWVNURU0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NtX3N5c3RlbWRfc3lz dGVtX2luaXQpKQorQEAgLTkyLDYgKzEwMCw5IEBAIGNzbV9zeXN0ZW1kX2ZpbmFsaXplIChHT2Jq ZWN0ICpvYmplY3QpCisgICAgICAgICAgICAgICAgIGdfc2xpc3RfZnJlZV9mdWxsIChzeXN0ZW1k LT5wcml2LT5pbmhpYml0b3JzLCBnX2ZyZWUpOworICAgICAgICAgfQorICAgICAgICAgZHJvcF9z eXN0ZW1faW5oaWJpdG9yIChzeXN0ZW1kKTsKKysgICAgICAgIGlmIChzeXN0ZW1kLT5wcml2LT5z aHV0ZG93bl9pbmhpYml0X2ZkICE9IC0xKSB7CisrICAgICAgICAgICAgICAgIGNsb3NlIChzeXN0 ZW1kLT5wcml2LT5zaHV0ZG93bl9pbmhpYml0X2ZkKTsKKysgICAgICAgIH0KKyAKKyAgICAgICAg IEdfT0JKRUNUX0NMQVNTIChjc21fc3lzdGVtZF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2Jq ZWN0KTsKKyB9CitAQCAtMTIwLDYgKzEzMSw3IEBAIGNzbV9zeXN0ZW1kX2luaXQgKENzbVN5c3Rl bWQgKm1hbmFnZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDc21TeXN0ZW1kUHJpdmF0ZSk7CisgCisgICAgICAgICBtYW5hZ2VyLT5wcml2 LT5pbmhpYml0X2ZkID0gLTE7CisrICAgICAgICBtYW5hZ2VyLT5wcml2LT5zaHV0ZG93bl9pbmhp Yml0X2ZkID0gLTE7CisgCisgICAgICAgICBlcnJvciA9IE5VTEw7CisgCitAQCAtMTQzLDYgKzE1 NSw5IEBAIGNzbV9zeXN0ZW1kX2luaXQgKENzbVN5c3RlbWQgKm1hbmFnZXIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIGNvbm5lY3QgdG8gc3lzdGVtZDog JXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3ItPm1lc3NhZ2Up OworICAgICAgICAgICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworKyAgICAg ICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nv bm5lY3QgKG1hbmFnZXItPnByaXYtPnNkX3Byb3h5LCAiZy1zaWduYWwiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHNkX3Byb3h5X3NpZ25h bF9jYiksIG1hbmFnZXIpOworICAgICAgICAgICAgICAgICB9CisgCisgICAgICAgICAgICAgICAg IGdfb2JqZWN0X3VucmVmIChidXMpOworQEAgLTE3NCwyMSArMTg5LDYyIEBAIGNzbV9zeXN0ZW1k X2luaXQgKENzbVN5c3RlbWQgKm1hbmFnZXIpCisgfQorIAorIHN0YXRpYyB2b2lkCistcmVzdGFy dF9kb25lIChHT2JqZWN0ICAgICAgKnNvdXJjZSwKKy0gICAgICAgICAgICAgIEdBc3luY1Jlc3Vs dCAqcmVzdWx0LAorLSAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICB1c2VyX2RhdGEpCisrdGFr ZV9zaHV0ZG93bl9pbmhpYml0b3IgKENzbVN5c3RlbWQgKm1hbmFnZXIpCisreworKyAgICAgICAg R1ZhcmlhbnQgKnJlczsKKysgICAgICAgIEdVbml4RkRMaXN0ICpmZF9saXN0ID0gTlVMTDsKKysg ICAgICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAgICAgICAgZ2ludCBpZHg7CisrCisrICAg ICAgICBpZiAobWFuYWdlci0+cHJpdi0+c2h1dGRvd25faW5oaWJpdF9mZCAhPSAtMSkKKysgICAg ICAgICAgICAgICAgcmV0dXJuOworKworKyAgICAgICAgcmVzID0gZ19kYnVzX3Byb3h5X2NhbGxf d2l0aF91bml4X2ZkX2xpc3Rfc3luYyAobWFuYWdlci0+cHJpdi0+c2RfcHJveHksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5oaWJp dCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzc3MpIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaHV0ZG93biIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnX2dldF91c2VyX25hbWUgKCksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW5z dXJpbmcgc2Vzc2lvbiBleGl0cyBjbGVhbmx5IGJlZm9yZSBzaHV0ZG93biIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZGVsYXkiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX01BWElOVCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmRfbGlzdCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm ZXJyb3IpOworKyAgICAgICAgaWYgKHJlcyA9PSBOVUxMKSB7CisrICAgICAgICAgICAgICAgIGdf d2FybmluZyAoIlVuYWJsZSB0byBpbmhpYml0IHNodXRkb3duOiAlcyIsIGVycm9yLT5tZXNzYWdl KTsKKysgICAgICAgICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7CisrICAgICAgICAgICAg ICAgIHJldHVybjsKKysgICAgICAgIH0KKysKKysgICAgICAgIGdfdmFyaWFudF9nZXQgKHJlcywg IihoKSIsICZpZHgpOworKyAgICAgICAgbWFuYWdlci0+cHJpdi0+c2h1dGRvd25faW5oaWJpdF9m ZCA9IGdfdW5peF9mZF9saXN0X2dldCAoZmRfbGlzdCwgaWR4LCAmZXJyb3IpOworKyAgICAgICAg aWYgKG1hbmFnZXItPnByaXYtPnNodXRkb3duX2luaGliaXRfZmQgPT0gLTEpIHsKKysgICAgICAg ICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIHJlY2VpdmUgc2h1dGRvd24gaW5oaWJpdG9y IGZkOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgICAgICAgICAgZ19lcnJvcl9mcmVl IChlcnJvcik7CisrICAgICAgICB9CisrCisrICAgICAgICBnX29iamVjdF91bnJlZiAoZmRfbGlz dCk7CisrICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHJlcyk7CisrfQorKworK3N0YXRpYyB2b2lk CisrcmVib290X29yX3Bvd2Vyb2ZmX2RvbmUgKEdPYmplY3QgICAgICAqc291cmNlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJlc3VsdCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgZ3BvaW50ZXIgICAgICB1c2VyX2RhdGEpCisgeworLSAgICAgICAgR0RCdXNQ cm94eSAqcHJveHkgPSBHX0RCVVNfUFJPWFkgKHNvdXJjZSk7CisgICAgICAgICBDc21TeXN0ZW1k ICptYW5hZ2VyID0gdXNlcl9kYXRhOworICAgICAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7Cisg ICAgICAgICBHVmFyaWFudCAqcmVzOworIAorLSAgICAgICAgcmVzID0gZ19kYnVzX3Byb3h5X2Nh bGxfZmluaXNoIChwcm94eSwgcmVzdWx0LCAmZXJyb3IpOworKyAgICAgICAgcmVzID0gZ19kYnVz X3Byb3h5X2NhbGxfZmluaXNoIChHX0RCVVNfUFJPWFkgKHNvdXJjZSksIHJlc3VsdCwgJmVycm9y KTsKKyAKKy0gICAgICAgIGlmICghcmVzKSB7CistICAgICAgICAgICAgICAgIGdfd2FybmluZyAo IlVuYWJsZSB0byByZXN0YXJ0IHN5c3RlbSB2aWEgc3lzdGVtZDogJXMiLCBlcnJvci0+bWVzc2Fn ZSk7CistICAgICAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSAoR19PQkpFQ1QgKG1h bmFnZXIpLCAicmVxdWVzdC1mYWlsZWQiLCBOVUxMKTsKKysgICAgICAgIGlmIChyZXMgPT0gTlVM TCkgeworKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gc2h1dGRvd24vcmVz dGFydCBzeXN0ZW0gdmlhIHN5c3RlbWQ6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICAg ICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKKysgICAgICAgICAgICAgICAgbWFuYWdlci0+ cHJpdi0+cHJlcGFyZV9mb3Jfc2h1dGRvd25fZXhwZWN0ZWQgPSBGQUxTRTsKKysgICAgICAgICAg ICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lIChtYW5hZ2VyLCAic2h1dGRvd24tcHJlcGFyZWQi LCBGQUxTRSk7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRf dW5yZWYgKHJlcyk7CisgICAgICAgICB9CitAQCAtMjAxLDM3ICsyNTcsMjAgQEAgY3NtX3N5c3Rl bWRfYXR0ZW1wdF9yZXN0YXJ0IChDc21TeXN0ZW0gKnN5c3RlbSkKKyAKKyAgICAgICAgIENzbVN5 c3RlbWQgKm1hbmFnZXIgPSBDU01fU1lTVEVNRCAoc3lzdGVtKTsKKyAKKysgICAgICAgIGRyb3Bf c3lzdGVtX2luaGliaXRvciAobWFuYWdlcik7CisrICAgICAgICB0YWtlX3NodXRkb3duX2luaGli aXRvciAobWFuYWdlcik7CisrICAgICAgICBtYW5hZ2VyLT5wcml2LT5wcmVwYXJlX2Zvcl9zaHV0 ZG93bl9leHBlY3RlZCA9IFRSVUU7CisrCisgICAgICAgICBnX2RidXNfcHJveHlfY2FsbCAobWFu YWdlci0+cHJpdi0+c2RfcHJveHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlYm9v dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIihiKSIsIFRS VUUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19NQVhJTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0YXJ0X2RvbmUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVib290X29yX3Bvd2Vyb2ZmX2RvbmUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWFuYWdlcik7CisgfQorIAorLXN0YXRpYyB2b2lkCistc3RvcF9kb25lIChHT2Jq ZWN0ICAgICAgKnNvdXJjZSwKKy0gICAgICAgICAgIEdBc3luY1Jlc3VsdCAqcmVzdWx0LAorLSAg ICAgICAgICAgZ3BvaW50ZXIgICAgICB1c2VyX2RhdGEpCisteworLSAgICAgICAgR0RCdXNQcm94 eSAqcHJveHkgPSBHX0RCVVNfUFJPWFkgKHNvdXJjZSk7CistICAgICAgICBDc21TeXN0ZW1kICpt YW5hZ2VyID0gdXNlcl9kYXRhOworLSAgICAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7CistICAg ICAgICBHVmFyaWFudCAqcmVzOworLQorLSAgICAgICAgcmVzID0gZ19kYnVzX3Byb3h5X2NhbGxf ZmluaXNoIChwcm94eSwgcmVzdWx0LCAmZXJyb3IpOworLQorLSAgICAgICAgaWYgKCFyZXMpIHsK Ky0gICAgICAgICAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIHN0b3Agc3lzdGVtIHZpYSBz eXN0ZW1kOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0gICAgICAgICAgICAgICAgZ19zaWduYWxf ZW1pdF9ieV9uYW1lIChHX09CSkVDVCAobWFuYWdlciksICJyZXF1ZXN0LWZhaWxlZCIsIE5VTEwp OyAgICAgICAgICAgICAgICAKKy0gICAgICAgICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7 CistICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAKKy0gICAgICAgICAgICAgICAgZ192 YXJpYW50X3VucmVmIChyZXMpOworLSAgICAgICAgfQorLX0KKy0KKyBzdGF0aWMgdm9pZAorIGNz bV9zeXN0ZW1kX2F0dGVtcHRfc3RvcCAoQ3NtU3lzdGVtICpzeXN0ZW0pCisgeworQEAgLTIzOSwx NiArMjc4LDQ0IEBAIGNzbV9zeXN0ZW1kX2F0dGVtcHRfc3RvcCAoQ3NtU3lzdGVtICpzeXN0ZW0p CisgCisgICAgICAgICBDc21TeXN0ZW1kICptYW5hZ2VyID0gQ1NNX1NZU1RFTUQgKHN5c3RlbSk7 CisgCisrICAgICAgICBkcm9wX3N5c3RlbV9pbmhpYml0b3IgKG1hbmFnZXIpOworKyAgICAgICAg dGFrZV9zaHV0ZG93bl9pbmhpYml0b3IgKG1hbmFnZXIpOworKyAgICAgICAgbWFuYWdlci0+cHJp di0+cHJlcGFyZV9mb3Jfc2h1dGRvd25fZXhwZWN0ZWQgPSBUUlVFOworKworICAgICAgICAgZ19k YnVzX3Byb3h5X2NhbGwgKG1hbmFnZXItPnByaXYtPnNkX3Byb3h5LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJQb3dlck9mZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192 YXJpYW50X25ldyAoIihiKSIsIFRSVUUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NQVhJTlQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wX2RvbmUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVib290X29yX3Bvd2Vyb2ZmX2RvbmUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlcik7CisgfQorIAorK3N0YXRpYyB2b2lk Cisrc2RfcHJveHlfc2lnbmFsX2NiIChHREJ1c1Byb3h5ICAqcHJveHksCisrICAgICAgICAgICAg ICAgICAgICBjb25zdCBnY2hhciAqc2VuZGVyX25hbWUsCisrICAgICAgICAgICAgICAgICAgICBj b25zdCBnY2hhciAqc2lnbmFsX25hbWUsCisrICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAg ICAqcGFyYW1ldGVycywKKysgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICB1c2VyX2Rh dGEpCisreworKyAgICAgICAgQ3NtU3lzdGVtZCAqbWFuYWdlciA9IHVzZXJfZGF0YTsKKysgICAg ICAgIGdib29sZWFuIGlzX2Fib3V0X3RvX3NodXRkb3duOworKworKyAgICAgICAgaWYgKGdfc3Ry Y21wMCAoc2lnbmFsX25hbWUsICJQcmVwYXJlRm9yU2h1dGRvd24iKSAhPSAwKQorKyAgICAgICAg ICAgICAgICByZXR1cm47CisrCisrICAgICAgICBnX3ZhcmlhbnRfZ2V0IChwYXJhbWV0ZXJzLCAi KGIpIiwgJmlzX2Fib3V0X3RvX3NodXRkb3duKTsKKysgICAgICAgIGlmICghaXNfYWJvdXRfdG9f c2h1dGRvd24pCisrICAgICAgICAgICAgICAgIHJldHVybjsKKysKKysgICAgICAgIGlmIChtYW5h Z2VyLT5wcml2LT5wcmVwYXJlX2Zvcl9zaHV0ZG93bl9leHBlY3RlZCkgeworKyAgICAgICAgICAg ICAgICBnX2RlYnVnICgiU2h1dGRvd24gc3VjY2Vzc2Z1bGx5IHByZXBhcmVkIik7CisrICAgICAg ICAgICAgICAgIG1hbmFnZXItPnByaXYtPnByZXBhcmVfZm9yX3NodXRkb3duX2V4cGVjdGVkID0g RkFMU0U7CisrICAgICAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSAobWFuYWdlciwg InNodXRkb3duLXByZXBhcmVkIiwgVFJVRSk7CisrICAgICAgICB9CisrfQorKworIHN0YXRpYyB2 b2lkCisgY3NtX3N5c3RlbWRfc2V0X3Nlc3Npb25faWRsZSAoQ3NtU3lzdGVtICpzeXN0ZW0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICBpc19pZGxlKQoKZGlmZiAt LWdpdCBhL2Npbm5hbW9uLXNlc3Npb24uc3BlYyBiL2Npbm5hbW9uLXNlc3Npb24uc3BlYwppbmRl eCA2ZTliM2MyLi40OWNiYjkxIDEwMDY0NAotLS0gYS9jaW5uYW1vbi1zZXNzaW9uLnNwZWMKKysr IGIvY2lubmFtb24tc2Vzc2lvbi5zcGVjCkBAIC01LDI1ICs1LDE1IEBACiBTdW1tYXJ5OiBDaW5u YW1vbiBzZXNzaW9uIG1hbmFnZXIKIE5hbWU6ICAgIGNpbm5hbW9uLXNlc3Npb24KIFZlcnNpb246 IDYuNy40XnVuc3RhYmxlCi1SZWxlYXNlOiAxJXs/ZGlzdH0KK1JlbGVhc2U6ICVhdXRvcmVsZWFz ZQogTGljZW5zZTogR1BMLTIuMC1vci1sYXRlciBBTkQgTEdQTC0yLjAtb3ItbGF0ZXIKIFVSTDog ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9saW51eG1pbnQvJXtuYW1lfQogU291cmNlMDogJXVybC9h cmNoaXZlLyV7dXBzdHJlYW1fdmVyc2lvbn0vJXtuYW1lfS0le3Vwc3RyZWFtX3ZlcnNpb259LnRh ci5negorUGF0Y2gwOiAgJXVybC9wdWxsLzIxNS5wYXRjaAogCiBFeGNsdWRlQXJjaDogJXtpeDg2 fQogCi1SZXF1aXJlczogc3lzdGVtLWxvZ29zCi0jIE5lZWRlZCBmb3IgY2lubmFtb24tc2V0dGlu Z3MtZGFlbW9uCi1SZXF1aXJlczogY2lubmFtb24tY29udHJvbC1jZW50ZXItZmlsZXN5c3RlbQot Ci0jIHB1bGwgaW4gZGJ1cy14MTEsIHNlZSBidWcgMjA5OTI0Ci1SZXF1aXJlczogZGJ1cy14MTEK LQotIyBhbiBhcnRpZmljaWFsIHJlcXVpcmVzIHRvIG1ha2Ugc3VyZSB3ZSBnZXQgZGNvbmYsIGZv ciBub3cKLVJlcXVpcmVzOiBkY29uZgotCi1SZXF1aXJlczogY2lubmFtb24tZGVza3RvcCA+PSAl e2Npbm5hbW9uX2Rlc2t0b3BfdmVyc2lvbn0KLQorQnVpbGRTeXN0ZW06ICAgbWVzb24KIEJ1aWxk UmVxdWlyZXM6IHBrZ2NvbmZpZyhndGsrLTMuMCkgPj0gMy4wLjAKIEJ1aWxkUmVxdWlyZXM6IHBr Z2NvbmZpZyhnaW8tMi4wKQogQnVpbGRSZXF1aXJlczogcGtnY29uZmlnKGdsaWItMi4wKSA+PSAy LjM3LjMKQEAgLTQyLDEwICszMiwyMSBAQCBCdWlsZFJlcXVpcmVzOiBwa2djb25maWcoY2lubmFt b24tZGVza3RvcCkgPj0gJXtjaW5uYW1vbl9kZXNrdG9wX3ZlcnNpb259CiBCdWlsZFJlcXVpcmVz OiBwa2djb25maWcoZ2lvLXVuaXgtMi4wKQogQnVpbGRSZXF1aXJlczogcGtnY29uZmlnKGxpYnN5 c3RlbWQpCiBCdWlsZFJlcXVpcmVzOiBwa2djb25maWcoc3lzdGVtZCkKLUJ1aWxkUmVxdWlyZXM6 IG1lc29uCiBCdWlsZFJlcXVpcmVzOiBnY2MKIEJ1aWxkUmVxdWlyZXM6IHB5dGhvbjMtcGFja2Fn aW5nCiAKK1JlcXVpcmVzOiBzeXN0ZW0tbG9nb3MKKyMgTmVlZGVkIGZvciBjaW5uYW1vbi1zZXR0 aW5ncy1kYWVtb24KK1JlcXVpcmVzOiBjaW5uYW1vbi1jb250cm9sLWNlbnRlci1maWxlc3lzdGVt CisKKyMgcHVsbCBpbiBkYnVzLXgxMSwgc2VlIGJ1ZyAyMDk5MjQKK1JlcXVpcmVzOiBkYnVzLXgx MQorCisjIGFuIGFydGlmaWNpYWwgcmVxdWlyZXMgdG8gbWFrZSBzdXJlIHdlIGdldCBkY29uZiwg Zm9yIG5vdworUmVxdWlyZXM6IGRjb25mCisKK1JlcXVpcmVzOiBjaW5uYW1vbi1kZXNrdG9wID49 ICV7Y2lubmFtb25fZGVza3RvcF92ZXJzaW9ufQorCiAlZGVzY3JpcHRpb24KIENpbm5hbW9uLXNl c3Npb24gbWFuYWdlcyBhIENpbm5hbW9uIGRlc2t0b3Agb3IgR0RNIGxvZ2luIHNlc3Npb24uIEl0 IHN0YXJ0cyB1cAogdGhlIG90aGVyIGNvcmUgY29tcG9uZW50cyBhbmQgaGFuZGxlcyBsb2dvdXQg YW5kIHNhdmluZyB0aGUgc2Vzc2lvbi4KQEAgLTUzLDEzICs1NCw2IEBAIHRoZSBvdGhlciBjb3Jl IGNvbXBvbmVudHMgYW5kIGhhbmRsZXMgbG9nb3V0IGFuZCBzYXZpbmcgdGhlIHNlc3Npb24uCiAl cHJlcAogJWF1dG9zZXR1cCAtcDEgLW4gJXtuYW1lfS0le3Vwc3RyZWFtX3ZlcnNpb259CiAKLSVi dWlsZAotJW1lc29uCi0lbWVzb25fYnVpbGQKLQotJWluc3RhbGwKLSVtZXNvbl9pbnN0YWxsCi0K ICVmaWxlcwogJWRvYyBBVVRIT1JTIFJFQURNRQogJWRvYyAle19tYW5kaXJ9L21hbiovKgpAQCAt NzUsOTggKzY5LDQgQEAgdGhlIG90aGVyIGNvcmUgY29tcG9uZW50cyBhbmQgaGFuZGxlcyBsb2dv dXQgYW5kIHNhdmluZyB0aGUgc2Vzc2lvbi4KICV7X3VzZXJ1bml0ZGlyfS8qLnRhcmdldAogCiAl Y2hhbmdlbG9nCi0qIFNhdCBBdWcgMTUgMjAyNiBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBn bWFpbC5jb20+IC0gNi43LjRedW5zdGFibGUtMQotLSBVcGRhdGUgdG8gNi43LjQtdW5zdGFibGUK LQotKiBXZWQgSnVsIDE1IDIwMjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0Bm ZWRvcmFwcm9qZWN0Lm9yZz4gLSA2LjcuM151bnN0YWJsZS0yCi0tIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDVfTWFzc19SZWJ1aWxkCi0KLSogU2F0 IEp1biAyMCAyMDI2IExlaWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2Ljcu M151bnN0YWJsZS0xCi0tIFVwZGF0ZSB0byA2LjcuMy11bnN0YWJsZQotCi0qIFR1ZSBKdW4gMTYg MjAyNiBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi43LjJedW5zdGFi bGUtMQotLSBVcGRhdGUgdG8gNi43LjItdW5zdGFibGUKLQotKiBXZWQgTWF5IDI3IDIwMjYgTGVp Z2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuNy4xXnVuc3RhYmxlLTIKLS0g QWRkIHBhdGNoIHRvIHJ1biBncmFwaGljYWwtc2Vzc2lvbiB0YXJnZXQKLQotKiBTYXQgTWF5IDIz IDIwMjYgTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuNy4xXnVuc3Rh YmxlLTEKLS0gVXBkYXRlIHRvIDYuNy4xLXVuc3RhYmxlCi0KLSogTW9uIEFwciAxMyAyMDI2IExl aWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjcuMF51bnN0YWJsZS0xCi0t IFVwZGF0ZSB0byA2LjcuMC11bnN0YWJsZQotCi0qIFdlZCBGZWIgMTEgMjAyNiBMZWlnaCBTY290 dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi42LjMtMQotLSBVcGRhdGUgdG8gNi42LjMK LQotKiBXZWQgRmViIDExIDIwMjYgTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29t PiAtIDYuNi4yLTEKLS0gVXBkYXRlIHRvIDYuNi4yCi0KLSogRnJpIEphbiAxNiAyMDI2IEZlZG9y YSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gNi42LjEt MwotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQ0 X01hc3NfUmVidWlsZAotCi0qIEZyaSBKYW4gMTYgMjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVl cmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDYuNi4xLTIKLS0gUmVidWlsdCBmb3Ig aHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80NF9NYXNzX1JlYnVpbGQKLQot KiBUaHUgRGVjIDExIDIwMjUgTGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAt IDYuNi4xLTEKLS0gVXBkYXRlIHRvIDYuNi4xCi0KLSogVGh1IE5vdiAyNyAyMDI1IExlaWdoIFNj b3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjYuMC0xCi0tIFVwZGF0ZSB0byA2LjYu MAotCi0qIFdlZCBTZXAgMDMgMjAyNSBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5j b20+IC0gNi40LjAtNAotLSBGaXggc3lzdGVtZCBpbmhpYml0b3IgaXNzdWUKLQotKiBXZWQgSnVs IDIzIDIwMjUgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0 Lm9yZz4gLSA2LjQuMC0zCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcv d2lraS9GZWRvcmFfNDNfTWFzc19SZWJ1aWxkCi0KLSogVGh1IEphbiAxNiAyMDI1IEZlZG9yYSBS ZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gNi40LjAtMgot LSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQyX01h c3NfUmVidWlsZAotCi0qIFdlZCBOb3YgMjcgMjAyNCBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51 eEBnbWFpbC5jb20+IC0gNi40LjAtMQotLSBVcGRhdGUgdG8gNi40LjAKLQotKiBXZWQgQXVnIDI4 IDIwMjQgTWlyb3NsYXYgU3VjaMO9IDxtc3VjaHlAcmVkaGF0LmNvbT4gLSA2LjIuMS0yCi0tIGNv bnZlcnQgbGljZW5zZSB0byBTUERYCi0KLSogRnJpIEp1bCAxOSAyMDI0IExlaWdoIFNjb3R0IDxs ZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2LjIuMS0xCi0tIFVwZGF0ZSB0byA2LjIuMQotCi0q IFdlZCBKdWwgMTcgMjAyNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9y YXByb2plY3Qub3JnPiAtIDYuMi4wLTQKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9q ZWN0Lm9yZy93aWtpL0ZlZG9yYV80MV9NYXNzX1JlYnVpbGQKLQotKiBTYXQgSnVuIDE1IDIwMjQg TGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuMi4wLTMKLS0gUmVtb3Zl IHBvbGtpdC1nbm9tZSByZXF1aXJlcwotCi0qIFRodSBKdW4gMTMgMjAyNCBMZWlnaCBTY290dCA8 bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4yLjAtMgotLSBGaXggcmVzdGFydC9zaHV0ZG93 bgotCi0qIFdlZCBKdW4gMTIgMjAyNCBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5j b20+IC0gNi4yLjAtMQotLSBVcGRhdGUgdG8gNi4yLjAKLQotKiBTYXQgTWF5IDA0IDIwMjQgTGVp Z2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuMC40LTEKLS0gVXBkYXRlIHRv IDYuMC40IHJlbGVhc2UKLQotKiBUdWUgSmFuIDIzIDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA2LjAuMS01Ci0tIFJlYnVpbHQgZm9y IGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDBfTWFzc19SZWJ1aWxkCi0K LSogRnJpIEphbiAxOSAyMDI0IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVk b3JhcHJvamVjdC5vcmc+IC0gNi4wLjEtNAotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXBy b2plY3Qub3JnL3dpa2kvRmVkb3JhXzQwX01hc3NfUmVidWlsZAotCi0qIEZyaSBKYW4gMTIgMjAy NCBMZWlnaCBTY290dCA8bGVpZ2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4wLjEtMwotLSBBQWRk IGJ1aWxkcmVxdWlyZXMgcHl0aG9uMy1wYWNrYWdpbmcKLQotKiBTYXQgSmFuIDA2IDIwMjQgTGVp Z2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuMC4xLTIKLS0gTWFrZSBzdXJl IHdheWxhbmQgc2Vzc2lvbnMgZ2V0IGEgbG9naW4gc2hlbGwKLQotKiBUdWUgTm92IDI4IDIwMjMg TGVpZ2ggU2NvdHQgPGxlaWdoMTIzbGludXhAZ21haWwuY29tPiAtIDYuMC4xLTEKLS0gVXBkYXRl IHRvIDYuMC4xIHJlbGVhc2UKLQotKiBUdWUgTm92IDI4IDIwMjMgTGVpZ2ggU2NvdHQgPGxlaWdo MTIzbGludXhAZ21haWwuY29tPiAtIDYuMC4wLTMKLS0gVW5zZXQgc29tZSBlbnZpcm9ubWVudCB2 YXJpYWJsZXMgb24gc3lzdGVtZAotCi0qIFdlZCBOb3YgMjIgMjAyMyBMZWlnaCBTY290dCA8bGVp Z2gxMjNsaW51eEBnbWFpbC5jb20+IC0gNi4wLjAtMgotLSBGaXggZ2xpYiB3YXJuaW5nCi0KLSog U3VuIE5vdiAxOSAyMDIzIExlaWdoIFNjb3R0IDxsZWlnaDEyM2xpbnV4QGdtYWlsLmNvbT4gLSA2 LjAuMC0xCi0tIFVwZGF0ZSB0byA2LjAuMCByZWxlYXNlCislYXV0b2NoYW5nZWxvZwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUK