ZGlmZiAtLWdpdCBhL2F1dG8vbGliL2NvbmYgYi9hdXRvL2xpYi9jb25mCmluZGV4IDZlMDA1OTIuLjcwMDUzYjUgMTAwNjQ0Ci0tLSBhL2F1dG8vbGliL2NvbmYKKysrIGIvYXV0by9saWIvY29uZgpAQCAtMiw3ICsyLDcgQEAKICMgQ29weXJpZ2h0IChDKSBJZ29yIFN5c29ldgogCiAKLWlmIFsgJFVTRV9QQ1JFID0gWUVTIF07IHRoZW4KK2lmIFsgJFVTRV9QQ1JFID0gWUVTIC1vICRQQ1JFICE9IE5PTkUgXTsgdGhlbgogICAgIC4gYXV0by9saWIvcGNyZS9jb25mCiBmaQogCmRpZmYgLS1naXQgYS9jb25mL25naW54LmNvbmYgYi9jb25mL25naW54LmNvbmYKaW5kZXggYjQyNDhiOC4uZDQ4MjU1MCAxMDA2NDQKLS0tIGEvY29uZi9uZ2lueC5jb25mCisrKyBiL2NvbmYvbmdpbnguY29uZgpAQCAtMzIsNiArMzIsMTAgQEAKICAgICAgICAgICAgIGluZGV4ICBpbmRleC5odG1sIGluZGV4Lmh0bTsKICAgICAgICAgfQogCisgICAgICAgICMgZGVueSBhY2Nlc3MgdG8gLmh0YWNjZXNzIGZpbGVzCisgICAgICAgICMKKyAgICAgICAgI2xvY2F0aW9uIH4gXC5odCB7CisgICAgICAgICMgICAgZGVueSAgYWxsOworICAgICAgICAjfQogICAgIH0KLQogfQpkaWZmIC0tZ2l0IGEvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwgYi9kb2NzL3htbC9uZ2lueC9jaGFuZ2VzLnhtbAppbmRleCA1MTQ0YTViLi4xYTljNDgwIDEwMDY0NAotLS0gYS9kb2NzL3htbC9uZ2lueC9jaGFuZ2VzLnhtbAorKysgYi9kb2NzL3htbC9uZ2lueC9jaGFuZ2VzLnhtbApAQCAtNiw2ICs2LDk0IEBACiAgICAgICAgICAgICB0aXRsZT0ibmdpbngiPgogCiAKKzxjaGFuZ2VzIHZlcj0iMC4xLjE1IiBkYXRlPSIxOS4wMS4yMDA1Ij4KKworPGNoYW5nZSB0eXBlPSJidWdmaXgiPgorPHBhcmEgbGFuZz0icnUiPgorz9vJwsvBINPPxcTJzsXOydEg0yBGYXN0Q0dJLdPF0tfF0s/NINfZ2tnXwczBIHNlZ21lbnRhdGlvbiBmYXVsdC4KKzwvcGFyYT4KKzxwYXJhIGxhbmc9ImVuIj4KK3RoZSBlcnJvciB3aGlsZSB0aGUgY29ubmVjdGluZyB0byB0aGUgRmFzdENHSSBzZXJ2ZXIgY2F1c2VkCitzZWdtZW50YXRpb24gZmF1bHQuCis8L3BhcmE+Cis8L2NoYW5nZT4KKworPGNoYW5nZSB0eXBlPSJidWdmaXgiPgorPHBhcmEgbGFuZz0icnUiPgory8/S0sXL1M7B0SDPwtLBws/Uy8Eg0sXH1czR0s7Px88g19nSwdbFzsnRLCDXIMvP1M/Sz80g3snTzM8KK9fZxMXMxc7O2cgg3sHT1MXKIM7FINPP19DBxMHF1CDTIN7J08zPzSDQz8TT1MHOz9fPyy4KKzwvcGFyYT4KKzxwYXJhIGxhbmc9ImVuIj4KK3RoZSBjb3JyZWN0IGhhbmRsaW5nIG9mIHRoZSByZWd1bGFyIGV4cG9yZXNzaW9uLCB0aGF0CitoYXMgZGlmZmVyZW50IG51bWJlciBvZiB0aGUgY2FwdHVyZXMgYW5kIHN1YnN0aXR1dGlvbnMuCis8L3BhcmE+Cis8L2NoYW5nZT4KKworPGNoYW5nZSB0eXBlPSJmZWF0dXJlIj4KKzxwYXJhIGxhbmc9InJ1Ij4KK2xvY2F0aW9uLCDLz9TP0tnKINDF0sXEwaPU09EgRmFzdENHSS3TxdLXxdLVLCDNz9bF1CDC2dTYINrBxMHOCivTINDPzc/d2MAg0sXH1czR0s7Px88g19nSwdbFzsnRLgorPC9wYXJhPgorPHBhcmEgbGFuZz0iZW4iPgordGhlIGxvY2F0aW9uLCB0aGF0IGlzIHBhc3NlZCB0byB0aGUgRmFzdENHSSBzZXJ2ZXIsIGNhbiBiZQorcmVndWFsYXIgZXhwcmVzc2lvbi4KKzwvcGFyYT4KKzwvY2hhbmdlPgorCis8Y2hhbmdlIHR5cGU9ImJ1Z2ZpeCI+Cis8cGFyYSBsYW5nPSJydSI+CivQwdLBzcXU0iBGYXN0Q0dJIFJFUVVFU1RfVVJJINTF0MXS2CDQxdLFxMGj1NPRINfNxdPUxSDTIMHSx9XNxc7Uwc3JCivJINcg1M/NINfJxMUsINcgy8/Uz9LPzSDC2cwg0M/M1d7FziDP1CDLzMnFztTBLgorPC9wYXJhPgorPHBhcmEgbGFuZz0iZW4iPgordGhlIEZhc3RDR0kncyBwYXJhbWV0ZXIgUkVRVUVTVF9VUkkgaXMgbm93IHBhc3NlZCB3aXRoIHRoZSBhcmd1bWVudHMKK2FuZCBpbiB0aGUgb3JpZ2luYWwgc3RhdGUuCis8L3BhcmE+Cis8L2NoYW5nZT4KKworPGNoYW5nZSB0eXBlPSJidWdmaXgiPgorPHBhcmEgbGFuZz0icnUiPgorxMzRIMnT0M/M2NrP18HOydEg0sXH1czR0s7ZyCDX2dLB1sXOycog1yBsb2NhdGlvbiDO1dbOzyDC2czPCivTz8LJ0sHU2CBuZ2lueCDXzcXT1MUg0yBuZ3hfaHR0cF9yZXdyaXRlX21vZHVsZS4KKzwvcGFyYT4KKzxwYXJhIGxhbmc9ImVuIj4KK3RoZSBuZ3hfaHR0cF9yZXdyaXRlX21vZHVsZSBtb2R1bGUgd2FzIHJlcXVpcmVkIHRvIGJlIGJ1aWx0IHRvIHVzZQordGhlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaW4gbG9jYXRpb25zLgorPC9wYXJhPgorPC9jaGFuZ2U+CisKKzxjaGFuZ2UgdHlwZT0iYnVnZml4Ij4KKzxwYXJhIGxhbmc9InJ1Ij4KK8XTzMkgwtzLxc7EINPM1dvBzCDOwSA4MC3PzSDQz9LU1Swg1M8g0NLJIMnT0M/M2NrP18HOyckgxMnSxcvUydfZCis8bm9icj4icHJveHlfcHJlc2VydmVfaG9zdCAgb24iPC9ub2JyPiDXINrBx8/Mz9fLxSAiSG9zdCIg1cvB2tnXwczT0Qor1MHL1sUg0M/S1CA4MDsKK8/bycLLwSDQz9HXyczB09gg1yAwLjEuMTQuCis8L3BhcmE+Cis8cGFyYSBsYW5nPSJlbiI+Cit0aGUgZGlyZWN0aXZlIDxub2JyPiJwcm94eV9wcmVzZXJ2ZV9ob3N0ICBvbiI8L25vYnI+IGFkZHMgcG9ydCA4MAordG8gdGhlICJIb3N0IiBoZWFkZXJzLCBpZiB1cHN0cmVhbSBsaXN0ZW4gb24gcG9ydCA4MDsKK2J1ZyBhcHBlYXJlZCBpbiAwLjEuMTQuCis8L3BhcmE+Cis8L2NoYW5nZT4KKworPGNoYW5nZSB0eXBlPSJidWdmaXgiPgorPHBhcmEgbGFuZz0icnUiPgorxdPMySDawcTB1Nggz8TJzsHLz9fZxSDQ1dTJINcg0MHSwc3F1NLByCDB19TPy8/OxsnH1dLBw8nJCistLWh0dHAtY2xpZW50LWJvZHktdGVtcC1wYXRoPVBBVEggySAtLWh0dHAtcHJveHktdGVtcC1wYXRoPVBBVEgKK8nMySAtLWh0dHAtY2xpZW50LWJvZHktdGVtcC1wYXRoPVBBVEggySAtLWh0dHAtZmFzdGNnaS10ZW1wLXBhdGg9UEFUSCwKK9TPINDSz8nTyM/Eycwgc2VnbWVudGF0aW9uIGZhdWx0LgorPC9wYXJhPgorPHBhcmEgbGFuZz0iZW4iPgordGhlIHNhbWUgcGF0aGVzIGluIGF1dG9jb25maWd1cmF0aW9uIHBhcmFtdGVycworLS1odHRwLWNsaWVudC1ib2R5LXRlbXAtcGF0aD1QQVRIIGFuZCAtLWh0dHAtcHJveHktdGVtcC1wYXRoPVBBVEgsCitvciAtLWh0dHAtY2xpZW50LWJvZHktdGVtcC1wYXRoPVBBVEggbmFkIC0taHR0cC1mYXN0Y2dpLXRlbXAtcGF0aD1QQVRICitjYXVzZWQgc2VnbWVudGF0aW9uIGZhdWx0LgorPC9wYXJhPgorPC9jaGFuZ2U+CisKKzwvY2hhbmdlcz4KKworCiA8Y2hhbmdlcyB2ZXI9IjAuMS4xNCIgZGF0ZT0iMTguMDEuMjAwNSI+CiAKIDxjaGFuZ2UgdHlwZT0iZmVhdHVyZSI+CmRpZmYgLS1naXQgYS9zcmMvY29yZS9uZ2lueC5oIGIvc3JjL2NvcmUvbmdpbnguaAppbmRleCA0Yjk4Y2RhLi4yZDE4YmM5IDEwMDY0NAotLS0gYS9zcmMvY29yZS9uZ2lueC5oCisrKyBiL3NyYy9jb3JlL25naW54LmgKQEAgLTgsNyArOCw3IEBACiAjZGVmaW5lIF9OR0lOWF9IX0lOQ0xVREVEXwogCiAKLSNkZWZpbmUgTkdJTlhfVkVSICAgICAgICAgICJuZ2lueC8wLjEuMTQiCisjZGVmaW5lIE5HSU5YX1ZFUiAgICAgICAgICAibmdpbngvMC4xLjE1IgogCiAjZGVmaW5lIE5HSU5YX1ZBUiAgICAgICAgICAiTkdJTlgiCiAjZGVmaW5lIE5HWF9ORVdQSURfRVhUICAgICAiLm5ld2JpbiIKZGlmZiAtLWdpdCBhL3NyYy9jb3JlL25neF9maWxlLmMgYi9zcmMvY29yZS9uZ3hfZmlsZS5jCmluZGV4IDM3OTgzZmUuLmNjMDNkNzkgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL25neF9maWxlLmMKKysrIGIvc3JjL2NvcmUvbmd4X2ZpbGUuYwpAQCAtMjUyLDkgKzI1MiwxOSBAQAogICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IDM7IG4rKykgewogICAgICAgICAgICAgICAgIGlmIChwW2ldLT5sZXZlbFtuXSAhPSBwYXRoLT5sZXZlbFtuXSkgewogICAgICAgICAgICAgICAgICAgICBpZiAocGF0aC0+Y29uZl9maWxlID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwW2ldLT5jb25mX2ZpbGUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19FTUVSRywgY2YtPmxvZywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRoZSBkZWZhdWx0IHBhdGggbmFtZSBcIiVWXCIgaGFzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRoZSBzYW1lIG5hbWUgYXMgYW5vdGhlciBkZWZhdWx0IHBhdGgsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1dCB0aGUgZGlmZmVyZW50IGxldmVscywgeW91IG5lZWQgdG8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVkZWZpbmUgb25lIG9mIHRoZW0gaW4gaHR0cCBzZWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBbaV0tPm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOR1hfRVJST1I7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19FTUVSRywgY2YtPmxvZywgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRoZSBwYXRoIG5hbWUgXCIlVlwiIGluICVzOiV1aSBoYXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIHNhbWUgbmFtZSBhcyBkZWZhdWx0IHBhdGggYnV0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRoZSBzYW1lIG5hbWUgYXMgZGVmYXVsdCBwYXRoLCBidXQgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIGRpZmZlcmVudCBsZXZlbHMsIHlvdSBuZWVkIHRvICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlZmluZSBkZWZhdWx0IHBhdGggaW4gaHR0cCBzZWN0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBbaV0tPm5hbWUsIHBbaV0tPmNvbmZfZmlsZSwgcFtpXS0+bGluZSk7CmRpZmYgLS1naXQgYS9zcmMvY29yZS9uZ3hfcmVnZXguYyBiL3NyYy9jb3JlL25neF9yZWdleC5jCmluZGV4IDliMGM3NGUuLjVhMGY3OTMgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL25neF9yZWdleC5jCisrKyBiL3NyYy9jb3JlL25neF9yZWdleC5jCkBAIC03OSwxNiArNzksMjggQEAKIH0KIAogCituZ3hfdWludF90IG5neF9yZWdleF9jYXB0dXJlX2NvdW50KG5neF9yZWdleF90ICpyZSkKK3sKKyAgICBpbnQgIHJjLCBuOworCisgICAgbiA9IDA7CisKKyAgICByYyA9IHBjcmVfZnVsbGluZm8ocmUsIE5VTEwsIFBDUkVfSU5GT19DQVBUVVJFQ09VTlQsICZuKTsKKworICAgIHJldHVybiAobmd4X3VpbnRfdCkgbjsKK30KKworCiBuZ3hfaW50X3Qgbmd4X3JlZ2V4X2V4ZWMobmd4X3JlZ2V4X3QgKnJlLCBuZ3hfc3RyX3QgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW50ICptYXRjaGVzLCBuZ3hfaW50X3Qgc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmNhcHR1cmVzLCBuZ3hfaW50X3Qgc2l6ZSkKIHsKICAgICBpbnQgIHJjOwogCiAgICAgcmMgPSBwY3JlX2V4ZWMocmUsIE5VTEwsIChjb25zdCBjaGFyICopIHMtPmRhdGEsIHMtPmxlbiwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICBtYXRjaGVzLCBzaXplKTsKKyAgICAgICAgICAgICAgICAgICBjYXB0dXJlcywgc2l6ZSk7CiAKICAgICBpZiAocmMgPT0gLTEpIHsKLSAgICAgICAgcmV0dXJuIE5HWF9ERUNMSU5FRDsKKyAgICAgICAgcmV0dXJuIE5HWF9SRUdFWF9OT19NQVRDSEVEOwogICAgIH0KIAogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBhL3NyYy9jb3JlL25neF9yZWdleC5oIGIvc3JjL2NvcmUvbmd4X3JlZ2V4LmgKaW5kZXggZjliZjg1OC4uZmI5ODU2NyAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvbmd4X3JlZ2V4LmgKKysrIGIvc3JjL2NvcmUvbmd4X3JlZ2V4LmgKQEAgLTE0LDE1ICsxNCwxOCBAQAogI2luY2x1ZGUgPHBjcmUuaD4KIAogCi0jZGVmaW5lIE5HWF9SRUdFWF9DQVNFTEVTUyAgUENSRV9DQVNFTEVTUworI2RlZmluZSBOR1hfUkVHRVhfTk9fTUFUQ0hFRCAgLTEwMDAKKworI2RlZmluZSBOR1hfUkVHRVhfQ0FTRUxFU1MgICAgUENSRV9DQVNFTEVTUwogCiB0eXBlZGVmIHBjcmUgIG5neF9yZWdleF90OwogCiB2b2lkIG5neF9yZWdleF9pbml0KCk7CiBuZ3hfcmVnZXhfdCAqbmd4X3JlZ2V4X2NvbXBpbGUobmd4X3N0cl90ICpwYXR0ZXJuLCBuZ3hfaW50X3Qgb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ3hfcG9vbF90ICpwb29sLCBuZ3hfc3RyX3QgKmVycik7CituZ3hfdWludF90IG5neF9yZWdleF9jYXB0dXJlX2NvdW50KG5neF9yZWdleF90ICpyZSk7CiBuZ3hfaW50X3Qgbmd4X3JlZ2V4X2V4ZWMobmd4X3JlZ2V4X3QgKnJlLCBuZ3hfc3RyX3QgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW50ICptYXRjaGVzLCBuZ3hfaW50X3Qgc2l6ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpjYXB0dXJlcywgbmd4X2ludF90IHNpemUpOwogCiAjZGVmaW5lIG5neF9yZWdleF9leGVjX24gICJwY3JlX2V4ZWMoKSIKIApkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2Vwb2xsX21vZHVsZS5jIGIvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2Vwb2xsX21vZHVsZS5jCmluZGV4IGEyZWVhYjAuLjkwN2Q2YWUgMTAwNjQ0Ci0tLSBhL3NyYy9ldmVudC9tb2R1bGVzL25neF9lcG9sbF9tb2R1bGUuYworKysgYi9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfZXBvbGxfbW9kdWxlLmMKQEAgLTIyOSw3ICsyMjksNyBAQAogICAgIH0KIAogICAgIGVlLmV2ZW50cyA9IGV2ZW50IHwgZmxhZ3M7Ci0gICAgZWUuZGF0YS5wdHIgPSAodm9pZCAqKSAoKHVpbnRwdHJfdCkgYyB8IGV2LT5pbnN0YW5jZSk7CisgICAgZWUuZGF0YS51NjQgPSAodWludHB0cl90KSBjIHwgZXYtPmluc3RhbmNlOwogCiAgICAgbmd4X2xvZ19kZWJ1ZzMoTkdYX0xPR19ERUJVR19FVkVOVCwgZXYtPmxvZywgMCwKICAgICAgICAgICAgICAgICAgICAiZXBvbGwgYWRkIGV2ZW50OiBmZDolZCBvcDolZCBldjolMDhYRCIsCkBAIC0yODIsNyArMjgyLDcgQEAKICAgICBpZiAoZS0+YWN0aXZlKSB7CiAgICAgICAgIG9wID0gRVBPTExfQ1RMX01PRDsKICAgICAgICAgZWUuZXZlbnRzID0gcHJldiB8IGZsYWdzOwotICAgICAgICBlZS5kYXRhLnB0ciA9ICh2b2lkICopICgodWludHB0cl90KSBjIHwgZXYtPmluc3RhbmNlKTsKKyAgICAgICAgZWUuZGF0YS51NjQgPSAodWludHB0cl90KSBjIHwgZXYtPmluc3RhbmNlOwogCiAgICAgfSBlbHNlIHsKICAgICAgICAgb3AgPSBFUE9MTF9DVExfREVMOwpAQCAtMzExLDcgKzMxMSw3IEBACiAgICAgc3RydWN0IGVwb2xsX2V2ZW50ICBlZTsKIAogICAgIGVlLmV2ZW50cyA9IEVQT0xMSU58RVBPTExPVVR8RVBPTExFVDsKLSAgICBlZS5kYXRhLnB0ciA9ICh2b2lkICopICgodWludHB0cl90KSBjIHwgYy0+cmVhZC0+aW5zdGFuY2UpOworICAgIGVlLmRhdGEudTY0ID0gKHVpbnRwdHJfdCkgYyB8IGMtPnJlYWQtPmluc3RhbmNlOwogCiAgICAgbmd4X2xvZ19kZWJ1ZzIoTkdYX0xPR19ERUJVR19FVkVOVCwgYy0+bG9nLCAwLAogICAgICAgICAgICAgICAgICAgICJlcG9sbCBhZGQgY29ubmVjdGlvbjogZmQ6JWQgZXY6JTA4WEQiLCBjLT5mZCwgZWUuZXZlbnRzKTsKQEAgLTM1MSw3ICszNTEsNyBAQAogCiAgICAgb3AgPSBFUE9MTF9DVExfREVMOwogICAgIGVlLmV2ZW50cyA9IDA7Ci0gICAgZWUuZGF0YS5wdHIgPSBOVUxMOworICAgIGVlLmRhdGEudTY0ID0gMDsKIAogICAgIGlmIChlcG9sbF9jdGwoZXAsIG9wLCBjLT5mZCwgJmVlKSA9PSAtMSkgewogICAgICAgICBuZ3hfbG9nX2Vycm9yKE5HWF9MT0dfQUxFUlQsIGMtPmxvZywgbmd4X2Vycm5vLApkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L25neF9ldmVudC5jIGIvc3JjL2V2ZW50L25neF9ldmVudC5jCmluZGV4IGVmMjVmZmMuLjk5NjAyMjUgMTAwNjQ0Ci0tLSBhL3NyYy9ldmVudC9uZ3hfZXZlbnQuYworKysgYi9zcmMvZXZlbnQvbmd4X2V2ZW50LmMKQEAgLTMxOCw2ICszMTgsNyBAQAogICAgIHJldiA9IGN5Y2xlLT5yZWFkX2V2ZW50czsKICAgICBmb3IgKGkgPSAwOyBpIDwgY3ljbGUtPmNvbm5lY3Rpb25fbjsgaSsrKSB7CiAgICAgICAgIHJldltpXS5jbG9zZWQgPSAxOworICAgICAgICByZXZbaV0uaW5zdGFuY2UgPSAxOwogI2lmIChOR1hfVEhSRUFEUykKICAgICAgICAgcmV2W2ldLmxvY2sgPSAmY1tpXS5sb2NrOwogICAgICAgICByZXZbaV0ub3duX2xvY2sgPSAmY1tpXS5sb2NrOwpAQCAtMzI1LDcgKzMyNiw3IEBACiAgICAgfQogCiAgICAgY3ljbGUtPndyaXRlX2V2ZW50cyA9IG5neF9hbGxvYyhzaXplb2Yobmd4X2V2ZW50X3QpICogZWNmLT5jb25uZWN0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3ljbGUtPmxvZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeWNsZS0+bG9nKTsKICAgICBpZiAoY3ljbGUtPndyaXRlX2V2ZW50cyA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBOR1hfRVJST1I7CiAgICAgfQpAQCAtMzYxLDYgKzM2Miw3IEBACiAKICAgICAgICAgbmd4X21lbXplcm8oYywgc2l6ZW9mKG5neF9jb25uZWN0aW9uX3QpKTsKICAgICAgICAgbmd4X21lbXplcm8ocmV2LCBzaXplb2Yobmd4X2V2ZW50X3QpKTsKKyAgICAgICAgbmd4X21lbXplcm8od2V2LCBzaXplb2Yobmd4X2V2ZW50X3QpKTsKIAogICAgICAgICBjLT5mZCA9IHNbaV0uZmQ7CiAgICAgICAgIGMtPmxpc3RlbmluZyA9ICZzW2ldOwpkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9mYXN0Y2dpX2hhbmRsZXIuYyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfZmFzdGNnaV9oYW5kbGVyLmMKaW5kZXggZjM4NjQ2YS4uNDFlZmEwYiAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9mYXN0Y2dpX2hhbmRsZXIuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2Zhc3RjZ2lfaGFuZGxlci5jCkBAIC0xNDQsNiArMTQ0LDkgQEAKIH07CiAKIAorc3RhdGljIG5neF9zdHJfdCBuZ3hfaHR0cF9mYXN0Y2dpX3VyaSA9IG5neF9zdHJpbmcoIi8iKTsKKworCiBzdGF0aWMgbmd4X2h0dHBfaGVhZGVyX3Qgbmd4X2h0dHBfZmFzdGNnaV9oZWFkZXJzX2luW10gPSB7CiAgICAgeyBuZ3hfc3RyaW5nKCJTdGF0dXMiKSwgb2Zmc2V0b2Yobmd4X2h0dHBfZmFzdGNnaV9oZWFkZXJzX2luX3QsIHN0YXR1cykgfSwKIApAQCAtNDc0LDggKzQ3Nyw4IEBACiAgICAgfQogCiAgICAgaWYgKGZsY2YtPnBhcmFtcyAmIE5HWF9IVFRQX0ZBU1RDR0lfUkVRVUVTVF9VUkkpIHsKLSAgICAgICAgbGVuICs9IDEgKyAoKHItPnVyaS5sZW4gPiAxMjcpID8gNCA6IDEpCi0gICAgICAgICAgICAgICAgICsgc2l6ZW9mKCJSRVFVRVNUX1VSSSIpIC0gMSArIHItPnVyaS5sZW47CisgICAgICAgIGxlbiArPSAxICsgKChyLT51bnBhcnNlZF91cmkubGVuID4gMTI3KSA/IDQgOiAxKQorICAgICAgICAgICAgICAgICArIHNpemVvZigiUkVRVUVTVF9VUkkiKSAtIDEgKyByLT51bnBhcnNlZF91cmkubGVuOwogICAgIH0KIAogICAgIGlmIChmbGNmLT5wYXJhbXMgJiBOR1hfSFRUUF9GQVNUQ0dJX1NDUklQVF9OQU1FKSB7CkBAIC03MzQsNyArNzM3LDcgQEAKICAgICBpZiAoZmxjZi0+cGFyYW1zICYgTkdYX0hUVFBfRkFTVENHSV9SRVFVRVNUX1VSSSkgewogICAgICAgICAqYi0+bGFzdCsrID0gc2l6ZW9mKCJSRVFVRVNUX1VSSSIpIC0gMTsKIAotICAgICAgICBsZW4gPSByLT51cmkubGVuOworICAgICAgICBsZW4gPSByLT51bnBhcnNlZF91cmkubGVuOwogICAgICAgICBpZiAobGVuID4gMTI3KSB7CiAgICAgICAgICAgICAqYi0+bGFzdCsrID0gKHVfY2hhcikgKCgobGVuID4+IDI0KSAmIDB4N2YpIHwgMHg4MCk7CiAgICAgICAgICAgICAqYi0+bGFzdCsrID0gKHVfY2hhcikgKChsZW4gPj4gMTYpICYgMHhmZik7CkBAIC03NDYsNyArNzQ5LDcgQEAKICAgICAgICAgfQogCiAgICAgICAgIGItPmxhc3QgPSBuZ3hfY3B5bWVtKGItPmxhc3QsICJSRVFVRVNUX1VSSSIsIHNpemVvZigiUkVRVUVTVF9VUkkiKSAtIDEpOwotICAgICAgICBiLT5sYXN0ID0gbmd4X2NweW1lbShiLT5sYXN0LCByLT51cmkuZGF0YSwgbGVuKTsKKyAgICAgICAgYi0+bGFzdCA9IG5neF9jcHltZW0oYi0+bGFzdCwgci0+dW5wYXJzZWRfdXJpLmRhdGEsIGxlbik7CiAgICAgfQogCiAKQEAgLTE3MTgsNyArMTcyMSw2IEBACiAgICAgICAgIHVuaXhfdXBzdHJlYW0ubmFtZSA9IHZhbHVlWzFdOwogICAgICAgICB1bml4X3Vwc3RyZWFtLnVybCA9IHZhbHVlWzFdOwogCi0KICAgICAgICAgaWYgKCEobGNmLT5wZWVycyA9IG5neF91bml4X3Vwc3RyZWFtX3BhcnNlKGNmLCAmdW5peF91cHN0cmVhbSkpKSB7CiAgICAgICAgICAgICByZXR1cm4gTkdYX0NPTkZfRVJST1I7CiAgICAgICAgIH0KQEAgLTE3NDQsOSArMTc0NiwxMCBAQAogCiAgICAgY2xjZiA9IG5neF9odHRwX2NvbmZfZ2V0X21vZHVsZV9sb2NfY29uZihjZiwgbmd4X2h0dHBfY29yZV9tb2R1bGUpOwogCi0gICAgbGNmLT5sb2NhdGlvbiA9ICZjbGNmLT5uYW1lOwogICAgIGNsY2YtPmhhbmRsZXIgPSBuZ3hfaHR0cF9mYXN0Y2dpX2hhbmRsZXI7CiAKKyAgICBsY2YtPmxvY2F0aW9uID0gY2xjZi0+cmVnZXggPyAmbmd4X2h0dHBfZmFzdGNnaV91cmk6ICZjbGNmLT5uYW1lOworCiAgICAgaWYgKGNsY2YtPm5hbWUuZGF0YVtjbGNmLT5uYW1lLmxlbiAtIDFdID09ICcvJykgewogICAgICAgICBjbGNmLT5hdXRvX3JlZGlyZWN0ID0gMTsKICAgICB9CmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3Jld3JpdGVfaGFuZGxlci5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9yZXdyaXRlX2hhbmRsZXIuYwppbmRleCAwOTczZWYwLi4wMDJlZGI4IDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3Jld3JpdGVfaGFuZGxlci5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfcmV3cml0ZV9oYW5kbGVyLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIG5neF9yZWdleF90ICAqcmVnZXg7Ci0gICAgbmd4X3VpbnRfdCAgICBtc2l6ZTsKKyAgICBuZ3hfdWludF90ICAgIG5jYXB0dXJlczsKIAogICAgIG5neF9hcnJheV90ICAgb3BzOwogICAgIG5neF91aW50X3QgICAgc2l6ZTsKQEAgLTExMyw3ICsxMTMsNyBAQAogCiBzdGF0aWMgbmd4X2ludF90IG5neF9odHRwX3Jld3JpdGVfaGFuZGxlcihuZ3hfaHR0cF9yZXF1ZXN0X3QgKnIpCiB7Ci0gICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAqbWF0Y2hlczsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICpjYXB0dXJlczsKICAgICB1X2NoYXIgICAgICAgICAgICAgICAgICAgICAgICpwOwogICAgIHNpemVfdCAgICAgICAgICAgICAgICAgICAgICAgIGxlbjsKICAgICB1aW50cHRyX3QgICAgICAgICAgICAgICAgICAgICBkYXRhOwpAQCAtMTMyLDE4ICsxMzIsMjAgQEAKICAgICBydWxlID0gc2NmLT5ydWxlcy5lbHRzOwogICAgIGZvciAoaSA9IDA7IGkgPCBzY2YtPnJ1bGVzLm5lbHRzOyBpKyspIHsKIAotICAgICAgICBpZiAocnVsZVtpXS5tc2l6ZSkgewotICAgICAgICAgICAgaWYgKCEobWF0Y2hlcyA9IG5neF9wYWxsb2Moci0+cG9vbCwgcnVsZVtpXS5tc2l6ZSAqIHNpemVvZihpbnQpKSkpIHsKKyAgICAgICAgaWYgKHJ1bGVbaV0ubmNhcHR1cmVzKSB7CisgICAgICAgICAgICBjYXB0dXJlcyA9IG5neF9wYWxsb2Moci0+cG9vbCwgcnVsZVtpXS5uY2FwdHVyZXMgKiBzaXplb2YoaW50KSk7CisgICAgICAgICAgICBpZiAoY2FwdHVyZXMgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgIHJldHVybiBOR1hfSFRUUF9JTlRFUk5BTF9TRVJWRVJfRVJST1I7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1hdGNoZXMgPSBOVUxMOworICAgICAgICAgICAgY2FwdHVyZXMgPSBOVUxMOwogICAgICAgICB9CiAKLSAgICAgICAgcmMgPSBuZ3hfcmVnZXhfZXhlYyhydWxlW2ldLnJlZ2V4LCAmci0+dXJpLCBtYXRjaGVzLCBydWxlW2ldLm1zaXplKTsKKyAgICAgICAgcmMgPSBuZ3hfcmVnZXhfZXhlYyhydWxlW2ldLnJlZ2V4LCAmci0+dXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVzLCBydWxlW2ldLm5jYXB0dXJlcyk7CiAKLSAgICAgICAgaWYgKHJjID09IE5HWF9ERUNMSU5FRCkgeworICAgICAgICBpZiAocmMgPT0gTkdYX1JFR0VYX05PX01BVENIRUQpIHsKICAgICAgICAgICAgIGlmIChzY2YtPmxvZykgewogICAgICAgICAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19OT1RJQ0UsIHItPmNvbm5lY3Rpb24tPmxvZywgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiVWXCIgZG9lcyBub3QgbWF0Y2ggXCIlVlwiIiwKQEAgLTE3NCw3ICsxNzYsNyBAQAogICAgICAgICB1cmkubGVuID0gcnVsZVtpXS5zaXplOwogCiAgICAgICAgIGZvciAobiA9IDE7IG4gPCAobmd4X3VpbnRfdCkgcmM7IG4rKykgewotICAgICAgICAgICB1cmkubGVuICs9IG1hdGNoZXNbMiAqIG4gKyAxXSAtIG1hdGNoZXNbMiAqIG5dOworICAgICAgICAgICB1cmkubGVuICs9IGNhcHR1cmVzWzIgKiBuICsgMV0gLSBjYXB0dXJlc1syICogbl07CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoISh1cmkuZGF0YSA9IG5neF9wYWxsb2Moci0+cG9vbCwgdXJpLmxlbikpKSB7CkBAIC0xOTgsMTEgKzIwMCwxMyBAQAogCiAgICAgICAgICAgICB9IGVsc2UgeyAvKiBOR1hfSFRUUF9SRVdSSVRFX0NPUFlfTUFUQ0ggKi8KICAgICAgICAgICAgICAgICBtID0gMiAqIG9wW25dLmRhdGE7Ci0gICAgICAgICAgICAgICAgcCA9IG5neF9jcHltZW0ocCwgJnItPnVyaS5kYXRhW21hdGNoZXNbbV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXNbbSArIDFdIC0gbWF0Y2hlc1ttXSk7CisgICAgICAgICAgICAgICAgcCA9IG5neF9jcHltZW0ocCwgJnItPnVyaS5kYXRhW2NhcHR1cmVzW21dXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlc1ttICsgMV0gLSBjYXB0dXJlc1ttXSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICB1cmkubGVuID0gcCAtIHVyaS5kYXRhOworCiAgICAgICAgIGlmIChzY2YtPmxvZykgewogICAgICAgICAgICAgbmd4X2xvZ19lcnJvcihOR1hfTE9HX05PVElDRSwgci0+Y29ubmVjdGlvbi0+bG9nLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicmV3cml0dGVuIHVyaTogXCIlVlwiIiwgJnVyaSk7CkBAIC0zMDksNyArMzEzLDcgQEAKICAgICB1X2NoYXIgICAgICAgICAgICAgICAgICAgKmRhdGEsICpwOwogICAgIHNpemVfdCAgICAgICAgICAgICAgICAgICAgbGVuOwogICAgIG5neF9zdHJfdCAgICAgICAgICAgICAgICAqdmFsdWUsIGVycjsKLSAgICBuZ3hfdWludF90ICAgICAgICAgICAgICAgIGk7CisgICAgbmd4X3VpbnRfdCAgICAgICAgICAgICAgICBpLCBuOwogICAgIG5neF9odHRwX3Jld3JpdGVfb3BfdCAgICAqb3A7CiAgICAgbmd4X2h0dHBfcmV3cml0ZV9ydWxlX3QgICpydWxlOwogICAgIHVfY2hhciAgICAgICAgICAgICAgICAgICAgZXJyc3RyW05HWF9NQVhfQ09ORl9FUlJTVFJdOwpAQCAtMzIxLDcgKzMyNSw3IEBACiAgICAgbmd4X2luaXRfYXJyYXkocnVsZS0+b3BzLCBjZi0+cG9vbCwgNSwgc2l6ZW9mKG5neF9odHRwX3Jld3JpdGVfb3BfdCksCiAgICAgICAgICAgICAgICAgICAgTkdYX0NPTkZfRVJST1IpOwogCi0gICAgcnVsZS0+bXNpemUgPSAwOworICAgIHJ1bGUtPm5jYXB0dXJlcyA9IDA7CiAgICAgcnVsZS0+c2l6ZSA9IDA7CiAgICAgcnVsZS0+c3RhdHVzID0gMDsKICAgICBydWxlLT5sYXN0ID0gMDsKQEAgLTM3MSw4ICszNzUsOCBAQAogICAgICAgICAgICAgICAgIG9wLT5vcCA9IE5HWF9IVFRQX1JFV1JJVEVfQ09QWV9NQVRDSDsgCiAgICAgICAgICAgICAgICAgb3AtPmRhdGEgPSB2YWx1ZVsyXS5kYXRhWysraV0gLSAnMCc7CiAKLSAgICAgICAgICAgICAgICBpZiAocnVsZS0+bXNpemUgPCBvcC0+ZGF0YSkgewotICAgICAgICAgICAgICAgICAgICBydWxlLT5tc2l6ZSA9IG9wLT5kYXRhOworICAgICAgICAgICAgICAgIGlmIChydWxlLT5uY2FwdHVyZXMgPCBvcC0+ZGF0YSkgeworICAgICAgICAgICAgICAgICAgICBydWxlLT5uY2FwdHVyZXMgPSBvcC0+ZGF0YTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpKys7CkBAIC00MTQsOSArNDE4LDIyIEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAocnVsZS0+bXNpemUpIHsKLSAgICAgICAgICAgIHJ1bGUtPm1zaXplKys7Ci0gICAgICAgICAgICBydWxlLT5tc2l6ZSAqPSAzOworICAgICAgICBuID0gbmd4X3JlZ2V4X2NhcHR1cmVfY291bnQocnVsZS0+cmVnZXgpOworCisgICAgICAgIGlmIChydWxlLT5uY2FwdHVyZXMgPiBuKSB7CisgICAgICAgICAgICBuZ3hfY29uZl9sb2dfZXJyb3IoTkdYX0xPR19FTUVSRywgY2YsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdHRlcm4gXCIlVlwiIGhhcyBsZXNzIGNhcHR1cmVzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhhbiByZWZlcnJlbmNlZCBpbiBzdWJzdGl0dXRpb24gXCIlVlwiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmFsdWVbMV0sICZ2YWx1ZVsyXSk7CisgICAgICAgICAgICByZXR1cm4gTkdYX0NPTkZfRVJST1I7CisgICAgICAgIH0KKworICAgICAgICBpZiAocnVsZS0+bmNhcHR1cmVzIDwgbikgeworICAgICAgICAgICAgcnVsZS0+bmNhcHR1cmVzID0gbjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChydWxlLT5uY2FwdHVyZXMpIHsKKyAgICAgICAgICAgIHJ1bGUtPm5jYXB0dXJlcyA9IChydWxlLT5uY2FwdHVyZXMgKyAxKSAqIDM7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoY2YtPmFyZ3MtPm5lbHRzID4gMykgewpkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9wcm94eS9uZ3hfaHR0cF9wcm94eV9oYW5kbGVyLmMgYi9zcmMvaHR0cC9tb2R1bGVzL3Byb3h5L25neF9odHRwX3Byb3h5X2hhbmRsZXIuYwppbmRleCA3YTFjMDNjLi4zZTkzODNlIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL3Byb3h5L25neF9odHRwX3Byb3h5X2hhbmRsZXIuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL3Byb3h5L25neF9odHRwX3Byb3h5X2hhbmRsZXIuYwpAQCAtMTM1MSw2ICsxMzUxLDcgQEAKICAgICAgICAgbGNmLT51cHN0cmVhbS0+cG9ydF90ZXh0ID0gaW5ldF91cHN0cmVhbS5wb3J0X3RleHQ7CiAgICAgICAgIGxjZi0+dXBzdHJlYW0tPnVyaSA9IGluZXRfdXBzdHJlYW0udXJpOwogICAgICAgICBsY2YtPnVwc3RyZWFtLT51cmlfc2VwYXJhdG9yID0gIiI7CisgICAgICAgIGxjZi0+dXBzdHJlYW0tPmRlZmF1bHRfcG9ydCA9IGluZXRfdXBzdHJlYW0uZGVmYXVsdF9wb3J0OwogICAgIH0KIAogICAgIGNsY2YgPSBuZ3hfaHR0cF9jb25mX2dldF9tb2R1bGVfbG9jX2NvbmYoY2YsIG5neF9odHRwX2NvcmVfbW9kdWxlKTsKZGlmZiAtLWdpdCBhL3NyYy9odHRwL25neF9odHRwX2NvcmVfbW9kdWxlLmMgYi9zcmMvaHR0cC9uZ3hfaHR0cF9jb3JlX21vZHVsZS5jCmluZGV4IDk0MjllYTYuLmYyZjY5ZjQgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL25neF9odHRwX2NvcmVfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbmd4X2h0dHBfY29yZV9tb2R1bGUuYwpAQCAtNjc4LDcgKzY3OCw3IEBACiAKICAgICAgICAgbiA9IG5neF9yZWdleF9leGVjKGNsY2ZwW2ldLT5yZWdleCwgJnItPnVyaSwgTlVMTCwgMCk7CiAKLSAgICAgICAgaWYgKG4gPT0gTkdYX0RFQ0xJTkVEKSB7CisgICAgICAgIGlmIChuID09IE5HWF9SRUdFWF9OT19NQVRDSEVEKSB7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF91cHN0cmVhbS5jIGIvc3JjL2h0dHAvbmd4X2h0dHBfdXBzdHJlYW0uYwppbmRleCA5YWFmOWJmLi4yZTU0NTlkIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9uZ3hfaHR0cF91cHN0cmVhbS5jCisrKyBiL3NyYy9odHRwL25neF9odHRwX3Vwc3RyZWFtLmMKQEAgLTEwMzQsNyArMTAzNCw3IEBACiAgICAgICAgIHItPmNvbm5lY3Rpb24tPmxvZy0+aGFuZGxlciA9IHUtPnNhdmVkX2hhbmRsZXI7CiAgICAgfQogCi0gICAgaWYgKHUtPnBpcGUudGVtcF9maWxlLT5maWxlLmZkKSB7CisgICAgaWYgKHUtPnBpcGUudGVtcF9maWxlKSB7CiAgICAgICAgIG5neF9sb2dfZGVidWcxKE5HWF9MT0dfREVCVUdfSFRUUCwgci0+Y29ubmVjdGlvbi0+bG9nLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAiaHR0cCB1cHN0cmVhbSB0ZW1wIGZkOiAlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHUtPnBpcGUudGVtcF9maWxlLT5maWxlLmZkKTsKQEAgLTEwNDgsNyArMTA0OCw3IEBACiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAodS0+cGlwZS50ZW1wX2ZpbGUtPmZpbGUuZmQpIHsKKyAgICBpZiAodS0+cGlwZS50ZW1wX2ZpbGUpIHsKICAgICAgICAgci0+ZmlsZS5mZCA9IHUtPnBpcGUudGVtcF9maWxlLT5maWxlLmZkOwogCiAjaWYgMApkaWZmIC0tZ2l0IGEvc3JjL29zL3VuaXgvbmd4X2NoYW5uZWwuYyBiL3NyYy9vcy91bml4L25neF9jaGFubmVsLmMKaW5kZXggYjFiMzZjNS4uMWZkNWNiNCAxMDA2NDQKLS0tIGEvc3JjL29zL3VuaXgvbmd4X2NoYW5uZWwuYworKysgYi9zcmMvb3MvdW5peC9uZ3hfY2hhbm5lbC5jCkBAIC01OCw2ICs1OCw3IEBACiAgICAgbXNnLm1zZ19uYW1lbGVuID0gMDsKICAgICBtc2cubXNnX2lvdiA9IGlvdjsKICAgICBtc2cubXNnX2lvdmxlbiA9IDE7CisgICAgbXNnLm1zZ19mbGFncyA9IDA7CiAKICAgICBuID0gc2VuZG1zZyhzLCAmbXNnLCAwKTsKIAo=