--------------Boundary-00=_IRG0OY53YBDGNWLY8S61 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit On Wednesday 28 March 2001 06:40, Waldo Bastian wrote: > * new kio-slave configuration third attempt, seems to work, but I made some changes to SimpleJob and to Scheduler::startJob* --------------Boundary-00=_IRG0OY53YBDGNWLY8S61 Content-Type: text/x-c++; charset="iso-8859-1"; name="slavemanager.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="slavemanager.h" LyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKCiAgIFRoaXMgbGlicmFy eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK ICAgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24uCgogICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICAgTGlicmFyeSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CiAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ ZiBub3QsIHdyaXRlIHRvCiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5 IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu CiovCiNpZm5kZWYgX19zbGF2ZW1hbmFnZXJfaF9fCiNkZWZpbmUgX19zbGF2ZW1hbmFnZXJfaF9f CgojaW5jbHVkZSA8cXN0cmluZy5oPgojaW5jbHVkZSA8a2NvbmZpZy5oPgojaW5jbHVkZSA8cWRp Y3QuaD4KI2luY2x1ZGUgPGtpby9nbG9iYWwuaD4KCgpuYW1lc3BhY2UgS0lPIHsKCiAgIGNsYXNz IFNsYXZlTWFuYWdlcjsKCiAgIC8qKgogICAgKiBGYWN0b3J5IGZvciBTbGF2ZU1hbmFnZXIgb2Jq ZWN0cy4KICAgICogUmVhZCBpdHMgc3RhdGUgZnJvbSBhIGRlc2t0b3Atd2lkZSBjb25maWcgZmls ZS4KICAgICogRm9yIGV2ZXJ5IHNsYXZlIHR5cGUgdGhlcmUgbXVzdCBiZSBhIGdyb3VwIG5hbWVk IGFzIHRoZSBzbGF2ZSdzIHByb3RvY29sLgogICAgKiBUaGUgZ3JvdXAgY2FuIGNvbnRhaW4gZGly ZWN0bHkgdGhlIGNvbmZpZyBlbnRyaWVzIGZvciB0aGUgc2xhdmUsIG9yIGFuCiAgICAqIGVudHJ5 IG5hbWVkICJjb25maWdGaWxlIiwgd2hpY2ggcG9pbnRzIHRvIGEgY29uZmlnIGZpbGUgZGVkaWNh dGVkIHRvIGEKICAgICogc2luZ2xlIHNsYXZlIHR5cGUuCiAgICAqIElmIGlzIGNyZWF0ZWQgd2l0 aCBudWxsIGFwcENvbmZpZyB0aGVuIGl0IGNyZWF0ZXMgImdsb2JhbCIgbWFuYWdlcnMsIAogICAg KiBpLmUuIG1hbmFnZXJzIHRoYXQgcmVhZC9tb2RpZnkgb25seSBkZXNrdG9wLXdpZGUgc2V0dGlu Z3MuCiAgICAqLwogICBjbGFzcyBTbGF2ZU1hbmFnZXJGYWN0b3J5CiAgIHsKICAgcHVibGljOgog ICAgICAvKioKICAgICAgICogY29uc3RydWN0b3IKICAgICAgICogQHBhcmFtIGdsb2JhbENvbmZp ZyBkZXNrdG9wLXdpZGUgY29uZmlndXJhdGlvbgogICAgICAgKiBAcGFyYW0gYXBwQ29uZmlnIGFw cGxpY2F0aW9uLXdpZGUgY29uZmlndXJhdGlvbgogICAgICAgKi8KICAgICAgU2xhdmVNYW5hZ2Vy RmFjdG9yeShLQ29uZmlnICpnbG9iYWxDb25maWcsIEtDb25maWcgKmFwcENvbmZpZyk7CgogICAg ICB+U2xhdmVNYW5hZ2VyRmFjdG9yeSgpOwoKICAgICAgLyoqCiAgICAgICAqIENyZWF0ZSBhIG5l dyBtYW5hZ2VyIGZvciBwcm90b2NvbC4KICAgICAgICogRm9yIGVpdGhlciBnbG9iYWwgYW5kIGFw cCBjb25maWcsIAogICAgICAgKiBwYXJzZSBncm91cCA8cHJvdG9jb2w+IGluIGNvbmZpZywgaWYg YW4gZW50cnkgImNvbmZpZ0ZpbGUgZmlsZSIKICAgICAgICogaXMgZm91bmQsIHRoZW4gb3BlbiBh IG5ldyBLQ29uZmlnIG9iamVjdCBwb2ludGluZyBhdCAiZmlsZSIsIG90aGVyd2lzZQogICAgICAg KiBwYXNzIGN1cnJlbnQgS0NvbmZpZyBpbnN0YW5jZXMKICAgICAgICovCiAgICAgIFNsYXZlTWFu YWdlciAqIG1hbmFnZXIoY29uc3QgUVN0cmluZyAmcHJvdG9jb2wpOwoKICAgcHJvdGVjdGVkOgog ICAgICAvKioKICAgICAgICogUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgS0NvbmZpZyBvYmplY3Qg YXNzb2NpYXRlZCB0byBwcm90bywgY3JlYXRpbmcKICAgICAgICogaXQgaWYgbmVjZXNzYXJ5Lgog ICAgICAgKi8KICAgICAgS0NvbmZpZyAqIGdldENvbmZpZyhLQ29uZmlnICpjZmcsIGNvbnN0IFFT dHJpbmcgJnByb3RvLCBib29sIGNyZWF0ZSk7CgogICBwcml2YXRlOgogICAgICBLQ29uZmlnICpf Z2xiQ2ZnOwogICAgICBLQ29uZmlnICpfYXBwQ2ZnOwogICB9OwoKCiAgIC8qKgogICAgKiBNYW5h Z2VyIGZvciBzbGF2ZSdzIGNvbmZpZ3VyYXRpb24uCiAgICAqIEFjdCBhcyBkZXNrdG9wLWxldmVs IG1hbmFnZXIgaWYgZ2xvYmFsIGlzIG51bGwuCiAgICAqIEFjdCBhcyBhcHBsaWNhdGlvbi1sZXZl bCBtYW5hZ2VyIGlmIGdsb2JhbCBhbmQgYXBwIGFyZSBkZWZpbmVkLgogICAgKiBFbnRyaWVzIGFy ZSBncm91cGVkLCBhIGdyb3VwIGlzIHRoZSBtaW5pbWFsIHNldCBvZiBkYXRhIHNlbnQgdG8gLyBy ZWNlaXZlZCAKICAgICogZnJvbSBzbGF2ZSwgdG8gcGVybWl0IHRvIGRpc3Rpbmd1aXNoIGJldHdl ZW4gZGlmZmVyZW50IGtpbmQgb2YgZW50cmllcy4KICAgICovCiAgIGNsYXNzIFNsYXZlTWFuYWdl cgogICB7CiAgICAgIGZyaWVuZCBjbGFzcyBTbGF2ZU1hbmFnZXJGYWN0b3J5OwoKICAgcHVibGlj OgogICAgICB+U2xhdmVNYW5hZ2VyKCk7CgogICAgICAvKioKICAgICAgICogcXVlcnksIGZvciBr ZXksIGFwcCBhbmQgKGlmIGRlZmluZWQpIGdsb2JhbCBjb25mcywgaW4gdGhpcyBvcmRlci4gCiAg ICAgICAqIElmIGtleSBpcyBmb3VuZCwgdGhlIGFzc29jaWF0ZWQgdmFsdWUgaXMgcmV0dXJuZWQK ICAgICAgICovCiAgICAgIFFTdHJpbmcgZW50cnkoY29uc3QgUVN0cmluZyAmZ3JvdXAsIGNvbnN0 IFFTdHJpbmcgJmtleSkgY29uc3Q7CgogICAgICAvKioKICAgICAgICogY3JlYXRlIChvciB1cGRh dGUpIGtleSwgdmFsdWUgcGFpciBpbiBhcHAgY29uZmlnCiAgICAgICAqLwogICAgICB2b2lkIHNl dEVudHJ5KGNvbnN0IFFTdHJpbmcgJmdyb3VwLCBjb25zdCBRU3RyaW5nICZrZXksIAoJCSAgICBj b25zdCBRU3RyaW5nICZ2YWx1ZSk7CgogICAgICAvKioKICAgICAgICogcmVtb3ZlIHRoZSBlbnRy eSBhc3NvY2lhdGVkIHdpdGgga2V5IGZyb20gYXBwIGNvbmZpZwogICAgICAgKi8KICAgICAgdm9p ZCByZW1vdmVFbnRyeShjb25zdCBRU3RyaW5nICZncm91cCwgY29uc3QgUVN0cmluZyAma2V5KTsK ICAgICAgCiAgICAgIC8qKgogICAgICAgKiBwYWNrIGVudHJpZXMgdG8gbWV0YWRhdGEKICAgICAg ICovCiAgICAgIE1ldGFEYXRhIGRhdGEoY29uc3QgUVN0cmluZyAmZ3JvdXApIGNvbnN0OwoKICAg ICAgLyoqCiAgICAgICAqIHVucGFjayBhbmQgbWVyZ2UgZW50cmllcyBmcm9tIG1ldGFkYXRhCiAg ICAgICAqLwogICAgICB2b2lkIHNldERhdGEoY29uc3QgUVN0cmluZyAmZ3JvdXAsIGNvbnN0IE1l dGFEYXRhICZkYXRhKTsKCiAgIHByb3RlY3RlZDoKICAgICAgLyoqCiAgICAgICAqIGNvbnN0cnVj dG9yCiAgICAgICAqIElmIGdyb3VwIGlzIG51bGwsIHRoZW4gYSBuZXcgS0NvbmZpZyBpcyBwYXNz ZWQgdG8gb2JqZWN0LCBmb3Igd2hpY2ggCiAgICAgICAqIHRoaXMgb2JqZWN0IGhhcyB0aGUgcmVz cG9uc2liaWxpdHkgdG8gZGVsZXRlIGl0LgogICAgICAgKiBJZiBncm91cCBpcyBub3QgbnVsbCwg dGhlIEtDb25maWcgb2JqZWN0IHBhc3NlZCBpcyBzaGFyZWQgYW1vbmdzCiAgICAgICAqIHNpYmxp bmcgbWFuYWdlcnMgYW5kIGZhY3RvcnkuCiAgICAgICAqIElmIGFwcCBjb25maWcgaXMgbnVsbCwg d29yayBpbiByZWFkL3dyaXRlIG1vZGUgb24gZ2xvYmFsIGNvbmZpZy4KICAgICAgICovCiAgICAg IFNsYXZlTWFuYWdlcihLQ29uZmlnICpnbG9iYWxDZmcsIGNvbnN0IFFTdHJpbmcgJmdsb2JhbEdy b3VwLCAKCQkgICBLQ29uZmlnICphcHBDZmcsIGNvbnN0IFFTdHJpbmcgJmFwcEdyb3VwKTsKCiAg ICAgIC8qKgogICAgICAgKiBidWlsZCByZWFsIGdyb3VwIG5hbWUgCiAgICAgICAqLwogICAgICBz dGF0aWMgUVN0cmluZyBncm91cChjb25zdCBRU3RyaW5nICZncm91cCwgY29uc3QgUVN0cmluZyAm c3ViR3JvdXApOwogICAgICAKICAgcHJpdmF0ZToKICAgICAgS0NvbmZpZyAqX2dsYkNmZywgKl9h cHBDZmc7CiAgICAgIFFTdHJpbmcgX2dsYkdycCwgX2FwcEdycDsKICAgfTsKCgogICAvKioKICAg ICogRmFjdG9yeSBmb3IgU2xhdmVNYW5hZ2VyIG9iamVjdHMuCiAgICAqIEhhbmRsZSBjcmVhdGVk IG1hbmFnZXJzIGluc3RhbmNlcyBpbnRlcm5hbGx5LCAKICAgICogZXh0ZW5kaW5nIHRoZSBzZXQv Z2V0IGludGVyZmFjZSB0byBtYW5hZ2VyJ3MgZW50cmllcyB3aXRoIGEgcGFyYW1ldGVyIHRvIAog ICAgKiBzcGVjaWZ5IHRoZSBwcm90b2NvbC4KICAgICovCiAgIGNsYXNzIFNsYXZlTWFuYWdlckds b2JhbCA6IHB1YmxpYyBTbGF2ZU1hbmFnZXJGYWN0b3J5CiAgIHsKICAgcHVibGljOgogICAgICAv KioKICAgICAgICogY29uc3RydWN0b3IKICAgICAgICogQHBhcmFtIGFwcENvbmZpZyBhcHBsaWNh dGlvbi13aWRlIGNvbmZpZ3VyYXRpb24KICAgICAgICogQHBhcmFtIGdsb2JhbENvbmZpZyBkZXNr dG9wLXdpZGUgY29uZmlndXJhdGlvbgogICAgICAgKi8KICAgICAgU2xhdmVNYW5hZ2VyR2xvYmFs KEtDb25maWcgKmdsb2JhbENvbmZpZywgS0NvbmZpZyAqYXBwQ29uZmlnKTsKCiAgICAgIH5TbGF2 ZU1hbmFnZXJHbG9iYWwoKTsKCiAgICAgIC8qKgogICAgICAgKiByZXRyaWV2ZSBvciBjcmVhdGUg aWYgbm90IGV4aXN0ZW50IGEgbmV3IG1hbmFnZXIgZm9yIHByb3RvY29sCiAgICAgICAqLwogICAg ICBTbGF2ZU1hbmFnZXIgKiBtYW5hZ2VyKGNvbnN0IFFTdHJpbmcgJnByb3RvY29sKTsKCiAgICAg IC8qKgogICAgICAgKiBRdWVyeSBtYW5hZ2VyIGFzc29jaWF0ZSB0byBwcm90b2NvbCwgY3JlYXRp bmcgaXQgaWYgaXQgaXMgbm90IGV4aXN0ZW50LgogICAgICAgKi8KICAgICAgUVN0cmluZyBlbnRy eShjb25zdCBRU3RyaW5nICZwcm90b2NvbCwgY29uc3QgUVN0cmluZyAmZ3JvdXAsIAoJCSAgICBj b25zdCBRU3RyaW5nICZrZXkpOwoKICAgICAgLyoqCiAgICAgICAqIFNldCBrZXksIHZhbHVlIHBh aXIgaW4gbWFuYWdlciBhc3NvY2lhdGUgdG8gcHJvdG9jb2wsIGNyZWF0aW5nIGl0IGlmIGl0CiAg ICAgICAqIGlzIG5vdCBleGlzdGVudC4KICAgICAgICovCiAgICAgIHZvaWQgc2V0RW50cnkoY29u c3QgUVN0cmluZyAmcHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcgJmdyb3VwLCAKCQkgICAgY29uc3Qg UVN0cmluZyAma2V5LCBjb25zdCBRU3RyaW5nICZ2YWx1ZSk7CiAgICAgIAogICAgICAvKioKICAg ICAgICogcmVtb3ZlIHRoZSBlbnRyeSBhc3NvY2lhdGVkIHdpdGgga2V5CiAgICAgICAqLwogICAg ICB2b2lkIHJlbW92ZUVudHJ5KGNvbnN0IFFTdHJpbmcgJnByb3RvY29sLCBjb25zdCBRU3RyaW5n ICZncm91cCwgCgkJICAgICAgIGNvbnN0IFFTdHJpbmcgJmtleSk7CgogICBwcml2YXRlOgogICAg ICBRRGljdDxTbGF2ZU1hbmFnZXI+IF9tYW5hZ2VyczsKICAgfTsKCn07IC8vIG5hbWVzcGFjZSBL SU8KCiNlbmRpZgo= --------------Boundary-00=_IRG0OY53YBDGNWLY8S61 Content-Type: text/x-c++; charset="iso-8859-1"; name="slavemanager.cpp" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="slavemanager.cpp" LyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKCiAgIFRoaXMgbGlicmFy eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK ICAgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24uCgogICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICAgTGlicmFyeSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CiAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ ZiBub3QsIHdyaXRlIHRvCiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5 IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu CiovCgojaW5jbHVkZSA8a2RlYnVnLmg+CiNpbmNsdWRlICJzbGF2ZW1hbmFnZXIuaCIKCi8vIGRl YnVnIGFyZWEKI2RlZmluZSBEQkEgNzAwNwoKdXNpbmcgbmFtZXNwYWNlIEtJTzsKClNsYXZlTWFu YWdlckZhY3Rvcnk6OlNsYXZlTWFuYWdlckZhY3RvcnkoS0NvbmZpZyAqZ2xvYmFsQ29uZmlnLCAK CQkJCQkgS0NvbmZpZyAqYXBwQ29uZmlnKQogICA6IF9nbGJDZmcoZ2xvYmFsQ29uZmlnKSwgX2Fw cENmZyhhcHBDb25maWcpCnsKICAga2REZWJ1ZyhEQkEpIDw8ICJTbGF2ZU1hbmFnZXJGYWN0b3J5 IDogY3JlYXRlICIgPDwgKF9hcHBDZmcgIT0gMCA/ICJhcHBsaWNhdGlvbiIgOiAiZ2xvYmFsIikg PDwgIiBmYWN0b3J5IiA8PCBlbmRsOwogICBrZEZhdGFsKF9nbGJDZmcgPT0gMCwgREJBKSA8PCAi U2xhdmVNYW5hZ2VyRmFjdG9yeSA6IGdsb2JhbCBjb25maWcgbnVsbCIgPDwgZW5kbDsKfQoKU2xh dmVNYW5hZ2VyRmFjdG9yeTo6flNsYXZlTWFuYWdlckZhY3RvcnkoKQp7CiAgIGRlbGV0ZSBfZ2xi Q2ZnOwogICBpZiAoX2FwcENmZykKICAgICAgZGVsZXRlIF9hcHBDZmc7Cn0KCktDb25maWcgKiBT bGF2ZU1hbmFnZXJGYWN0b3J5OjpnZXRDb25maWcoS0NvbmZpZyAqY2ZnLCBjb25zdCBRU3RyaW5n ICZwcm90bywgCgkJCQkJIGJvb2wgY3JlYXRlKQp7CiAgIGlmICghY2ZnLT5oYXNHcm91cChwcm90 bykgJiYgIWNyZWF0ZSkKICAgICAgcmV0dXJuIDA7CiAgIGNmZy0+c2V0R3JvdXAocHJvdG8pOwog ICBpZiAoY2ZnLT5oYXNLZXkoImNvbmZpZ0ZpbGUiKSkKICAgICAgcmV0dXJuIG5ldyBLQ29uZmln KGNmZy0+cmVhZEVudHJ5KCJjb25maWdGaWxlIikpOwogICByZXR1cm4gY2ZnOwp9CiAgIAoKU2xh dmVNYW5hZ2VyICogU2xhdmVNYW5hZ2VyRmFjdG9yeTo6bWFuYWdlcihjb25zdCBRU3RyaW5nICZw cm90bykKewogICBrZERlYnVnKERCQSkgPDwgIlNsYXZlTWFuYWdlckZhY3Rvcnk6Om1hbmFnZXIg OiBjcmVhdGUgbWFuYWdlciBmb3IgcHJvdG9jb2w6IiA8PCBwcm90byA8PCBlbmRsOwogICAvLyBy ZWZlcmVuY2VzIHRvIGNvbmZpZyBmb3IgcHJvdG9jb2wKICAgS0NvbmZpZyAqYXBwQ2ZnID0gKF9h cHBDZmcgIT0gMCA/IGdldENvbmZpZyhfYXBwQ2ZnLCBwcm90bywgdHJ1ZSkgOiAwKTsKICAgLy8g aWYgdGhpcyBpcyBhIGdsb2JhbCBmYWN0b3J5LCB0aGVuIGl0IGNyZWF0ZXMgbWFuYWdlcnMgd2l0 aCBwZXJtaXNzaW9uIHRvIAogICAvLyBjaGFuZ2UgZ2xvYmFsIGNvbmZpZwogICBLQ29uZmlnICpn bGJDZmcgPSBnZXRDb25maWcoX2dsYkNmZywgcHJvdG8sIF9hcHBDZmcgPT0gMCk7IAogICBRU3Ry aW5nIGFwcEdycCA9IChhcHBDZmcgPT0gX2FwcENmZyA/IHByb3RvIDogUVN0cmluZzo6bnVsbCk7 CiAgIFFTdHJpbmcgZ2xiR3JwID0gKGdsYkNmZyA9PSBfZ2xiQ2ZnID8gcHJvdG8gOiBRU3RyaW5n OjpudWxsKTsKICAga2RGYXRhbCgoKF9hcHBDZmcgIT0gMCAmJiBhcHBDZmcgPT0gMCkgfHwgZ2xi Q2ZnID09IDApLCBEQkEpIDw8ICJTbGF2ZU1hbmFnZXJGYWN0b3J5OjptYW5hZ2VyIDogZXJyb3Ig Y3JlYXRpbmcgY29uZmlnIGZvciBwcm90b2NvbDoiIDw8IHByb3RvIDw8IGVuZGw7CiAgIHJldHVy biBuZXcgU2xhdmVNYW5hZ2VyKGdsYkNmZywgZ2xiR3JwLCBhcHBDZmcsIGFwcEdycCk7Cn0KCi8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCgpTbGF2ZU1hbmFnZXI6OlNsYXZlTWFuYWdlcihLQ29uZmlnICpnbG9iYWxD ZmcsIGNvbnN0IFFTdHJpbmcgJmdsb2JhbEdycCwKCQkJICAgS0NvbmZpZyAqYXBwQ2ZnLCBjb25z dCBRU3RyaW5nICZhcHBHcnApCiAgIDogX2dsYkNmZyhnbG9iYWxDZmcpLCBfYXBwQ2ZnKGFwcENm ZyksIF9nbGJHcnAoZ2xvYmFsR3JwKSwgX2FwcEdycChhcHBHcnApCnsKfQoKU2xhdmVNYW5hZ2Vy Ojp+U2xhdmVNYW5hZ2VyKCkKewogICBpZiAoX2dsYkdycC5pc0VtcHR5KCkpCiAgICAgIGRlbGV0 ZSBfZ2xiQ2ZnOwogICBpZiAoX2FwcEdycC5pc0VtcHR5KCkgJiYgX2FwcENmZyAhPSAwKQogICAg ICBkZWxldGUgX2FwcENmZzsKfQoKUVN0cmluZyBTbGF2ZU1hbmFnZXI6Omdyb3VwKGNvbnN0IFFT dHJpbmcgJmdycCwgY29uc3QgUVN0cmluZyAmc3ViR3JwKQp7CiAgIGlmIChzdWJHcnAuaXNFbXB0 eSgpKQogICAgICByZXR1cm4gZ3JwOwogICBpZiAoZ3JwLmlzRW1wdHkoKSkKICAgICAgcmV0dXJu IHN1YkdycDsKICAgcmV0dXJuIFFTdHJpbmcoIiUxICUyIikuYXJnKGdycCkuYXJnKHN1YkdycCk7 Cn0KClFTdHJpbmcgU2xhdmVNYW5hZ2VyOjplbnRyeShjb25zdCBRU3RyaW5nICZncnAsIGNvbnN0 IFFTdHJpbmcgJmtleSkgY29uc3QKewoKICAgaWYgKF9hcHBDZmcpCiAgIHsKICAgICAgLy8gcmVh ZCBmcm9tIGFwcCBjb25maWcKICAgICAgUVN0cmluZyBnID0gZ3JvdXAoX2FwcEdycCwgZ3JwKTsK ICAgICAgX2FwcENmZy0+c2V0R3JvdXAoZyk7CiAgICAgIGlmIChfYXBwQ2ZnLT5oYXNLZXkoa2V5 KSkKCSByZXR1cm4gX2FwcENmZy0+cmVhZEVudHJ5KGtleSk7CiAgIH0KICAgLy8gaWYga2V5IGlz IG5vdCBmb3VuZCBpbiBhcHAsIHJlYWQgZnJvbSBnbG9iYWwgY29uZmlnCiAgIFFTdHJpbmcgZyA9 IGdyb3VwKF9nbGJHcnAsIGdycCk7CiAgIF9nbGJDZmctPnNldEdyb3VwKGcpOwogICBpZiAoX2ds YkNmZy0+aGFzS2V5KGtleSkpCiAgICAgIHJldHVybiBfZ2xiQ2ZnLT5yZWFkRW50cnkoa2V5KTsK ICAgCiAgIHJldHVybiBRU3RyaW5nOjpudWxsOwp9Cgp2b2lkIFNsYXZlTWFuYWdlcjo6c2V0RW50 cnkoY29uc3QgUVN0cmluZyAmZ3JwLCBjb25zdCBRU3RyaW5nICZrZXksIAoJCQkgICAgY29uc3Qg UVN0cmluZyAmdmFsdWUpCnsKICAgS0NvbmZpZyAqY2ZnID0gKF9hcHBDZmcgIT0gMCA/IF9hcHBD ZmcgOiBfZ2xiQ2ZnKTsKICAgUVN0cmluZyBnID0gKF9hcHBDZmcgIT0gMCA/IGdyb3VwKF9hcHBH cnAsIGdycCkgOiBncm91cChfZ2xiR3JwLCBncnApKTsKICAgY2ZnLT5zZXRHcm91cChnKTsKICAg Y2ZnLT53cml0ZUVudHJ5KGtleSwgdmFsdWUpOwp9Cgp2b2lkIFNsYXZlTWFuYWdlcjo6cmVtb3Zl RW50cnkoY29uc3QgUVN0cmluZyAmLCBjb25zdCBRU3RyaW5nICYpCnsKICAgLy8gd2h5IHRoZXJl IGlzbid0IGEgZGVsZXRlRW50cnkgbWV0aG9kIGluIEtDb25maWc/CiAgIC8vIHNvbWUgaGFjayB0 byBwZXJmb3JtIHRoaXMsIGFzIGlzIG5lZWRlZCB0byBwYXNzIGZyb20gbG9jYWwgdG8gZ2xvYmFs IAogICAvLyBtYXBwaW5nLgp9CgpNZXRhRGF0YSBTbGF2ZU1hbmFnZXI6OmRhdGEoY29uc3QgUVN0 cmluZyAmZ3JwKSBjb25zdAp7CiAgIEtDb25maWcgKmNmZyA9IChfYXBwQ2ZnICE9IDAgPyBfYXBw Q2ZnIDogX2dsYkNmZyk7CiAgIFFTdHJpbmcgZyA9IChfYXBwQ2ZnICE9IDAgPyBncm91cChfYXBw R3JwLCBncnApIDogZ3JvdXAoX2dsYkdycCwgZ3JwKSk7CiAgIE1ldGFEYXRhIG1ldGFkYXRhOwoK ICAgLy9NZXRhRGF0YSBtZXRhZGF0YSA9IF9hcHBDZmctPmVudHJ5TWFwKGcpOyBhZGQgYW4gb3Bl cmF0b3I9IHRvIE1ldGFEYXRhCiAgIFFNYXA8UVN0cmluZywgUVN0cmluZz4gbWFwID0gY2ZnLT5l bnRyeU1hcChnKTsKICAgZm9yIChRTWFwPFFTdHJpbmcsIFFTdHJpbmc+OjpDb25zdEl0ZXJhdG9y IGl0ID0gbWFwLmJlZ2luKCk7IAoJaXQgIT0gbWFwLmVuZCgpOyArK2l0KQogICAgICBtZXRhZGF0 YS5pbnNlcnQoaXQua2V5KCksIGl0LmRhdGEoKSk7CgogICBpZiAoX2FwcENmZykKICAgeyAKICAg ICAgLy8gYWRkIHRoZSBnbG9iYWwgZW50cmllcyBub3QgY29udGFpbmVkIGluIGFwcAogICAgICBn ID0gZ3JvdXAoX2dsYkdycCwgZ3JwKTsKICAgICAgbWFwID0gX2dsYkNmZy0+ZW50cnlNYXAoZyk7 CiAgICAgIGZvciAoUU1hcDxRU3RyaW5nLCBRU3RyaW5nPjo6Q29uc3RJdGVyYXRvciBpdCA9IG1h cC5iZWdpbigpOyAKCSAgIGl0ICE9IG1hcC5lbmQoKTsgKytpdCkKCSBpZiAoIW1ldGFkYXRhLmNv bnRhaW5zKGl0LmtleSgpKSkKCSAgICBtZXRhZGF0YS5pbnNlcnQoaXQua2V5KCksIGl0LmRhdGEo KSk7CiAgIH0KICAgcmV0dXJuIG1ldGFkYXRhOwp9Cgp2b2lkIFNsYXZlTWFuYWdlcjo6c2V0RGF0 YShjb25zdCBRU3RyaW5nICZncnAsIGNvbnN0IE1ldGFEYXRhICZkYXRhKQp7CiAgIEtDb25maWcg KmNmZyA9IChfYXBwQ2ZnICE9IDAgPyBfYXBwQ2ZnIDogX2dsYkNmZyk7CiAgIFFTdHJpbmcgZyA9 IChfYXBwQ2ZnICE9IDAgPyBncm91cChfYXBwR3JwLCBncnApIDogZ3JvdXAoX2dsYkdycCwgZ3Jw KSk7CiAgIGNmZy0+c2V0R3JvdXAoZyk7CiAgIGZvciAoUU1hcDxRU3RyaW5nLCBRU3RyaW5nPjo6 Q29uc3RJdGVyYXRvciBpdCA9IGRhdGEuYmVnaW4oKTsgCglpdCAhPSBkYXRhLmVuZCgpOyArK2l0 KQogICAgICBjZmctPndyaXRlRW50cnkoaXQua2V5KCksIGl0LmRhdGEoKSk7Cn0KCi8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8KClNsYXZlTWFuYWdlckdsb2JhbDo6U2xhdmVNYW5hZ2VyR2xvYmFsKEtDb25maWcg KmFwcENvbmZpZywgCgkJCQkgICAgICAgS0NvbmZpZyAqZ2xvYmFsQ29uZmlnKQogICA6IFNsYXZl TWFuYWdlckZhY3RvcnkoYXBwQ29uZmlnLCBnbG9iYWxDb25maWcpCnsKfQoKU2xhdmVNYW5hZ2Vy R2xvYmFsOjp+U2xhdmVNYW5hZ2VyR2xvYmFsKCkKewogICBfbWFuYWdlcnMuc2V0QXV0b0RlbGV0 ZSh0cnVlKTsKfQoKU2xhdmVNYW5hZ2VyICogU2xhdmVNYW5hZ2VyR2xvYmFsOjptYW5hZ2VyKGNv bnN0IFFTdHJpbmcgJnByb3RvY29sKQp7CiAgIFNsYXZlTWFuYWdlciAqbSA9IF9tYW5hZ2Vycy5m aW5kKHByb3RvY29sKTsKICAgaWYgKG0gPT0gMCkKICAgewogICAgICBtID0gU2xhdmVNYW5hZ2Vy RmFjdG9yeTo6bWFuYWdlcihwcm90b2NvbCk7CiAgICAgIF9tYW5hZ2Vycy5pbnNlcnQocHJvdG9j b2wsIG0pOwogICB9CiAgIHJldHVybiBtOwp9CgpRU3RyaW5nIFNsYXZlTWFuYWdlckdsb2JhbDo6 ZW50cnkoY29uc3QgUVN0cmluZyAmcHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcgJmdyb3VwLCAKCQkJ CSAgY29uc3QgUVN0cmluZyAma2V5KQp7CiAgIHJldHVybiBtYW5hZ2VyKHByb3RvY29sKS0+ZW50 cnkoZ3JvdXAsIGtleSk7Cn0KCnZvaWQgU2xhdmVNYW5hZ2VyR2xvYmFsOjpzZXRFbnRyeShjb25z dCBRU3RyaW5nICZwcm90b2NvbCwgY29uc3QgUVN0cmluZyAmZ3JvdXAsIAoJCQkJICBjb25zdCBR U3RyaW5nICZrZXksIGNvbnN0IFFTdHJpbmcgJnZhbHVlKQp7CiAgIG1hbmFnZXIocHJvdG9jb2wp LT5zZXRFbnRyeShncm91cCwga2V5LCB2YWx1ZSk7Cn0KICAgICAgCnZvaWQgU2xhdmVNYW5hZ2Vy R2xvYmFsOjpyZW1vdmVFbnRyeShjb25zdCBRU3RyaW5nICZwcm90b2NvbCwgCgkJCQkgICAgIGNv bnN0IFFTdHJpbmcgJmdyb3VwLCBjb25zdCBRU3RyaW5nICZrZXkpCnsKICAgbWFuYWdlcihwcm90 b2NvbCktPnJlbW92ZUVudHJ5KGdyb3VwLCBrZXkpOwp9Cg== --------------Boundary-00=_IRG0OY53YBDGNWLY8S61 Content-Type: text/plain; charset="iso-8859-1"; name="kiopatch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kiopatch" PyBzbGF2ZW1hbmFnZXIuaAo/IHNsYXZlbWFuYWdlci5jcHAKSW5kZXg6IE1ha2VmaWxlLmFtCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVsaWJzL2tpby9NYWtlZmlsZS5hbSx2CnJl dHJpZXZpbmcgcmV2aXNpb24gMS4xNDUKZGlmZiAtdSAtMyAtcCAtcjEuMTQ1IE1ha2VmaWxlLmFt Ci0tLSBNYWtlZmlsZS5hbQkyMDAxLzAzLzE0IDE0OjE2OjQ1CTEuMTQ1CisrKyBNYWtlZmlsZS5h bQkyMDAxLzAzLzMwIDEyOjQ0OjAyCkBAIC03OSw3ICs3OSw4IEBAIGxpYmtpb19sYV9TT1VSQ0VT ID0gXAogCXN0YXR1c2JhcnByb2dyZXNzLmNwcCBcCiAJa2Rpcm5vdGlmeS5jcHAga2Rpcm5vdGlm eS5za2VsIGtkaXJub3RpZnkuc3R1YiBcCiAJb2JzZXJ2ZXIuY3BwIHVpc2VydmVyLnN0dWIgb2Jz ZXJ2ZXIuc2tlbCBcCi0Ja2VtYWlsc2V0dGluZ3MuY3BwIGF1dGhpbmZvLmNwcAorCWtlbWFpbHNl dHRpbmdzLmNwcCBhdXRoaW5mby5jcHAgXAorCXNsYXZlbWFuYWdlci5jcHAKIAoga2lvX3Vpc2Vy dmVyX1NPVVJDRVMgPSBkdW1teS5jcHAKIGtpb191aXNlcnZlcl9MREFERCA9IGtpb191aXNlcnZl ci5sYQpAQCAtMTAxLDcgKzEwMiw4IEBAIGtpb2luY2x1ZGVfSEVBREVSUyA9IGNvbm5lY3Rpb24u aCBcCiAJc3RhdHVzYmFycHJvZ3Jlc3MuaCB1aXNlcnZlci5oIHVpc2VydmVyX3N0dWIuaCB0Y3Bz bGF2ZWJhc2UuaCBcCiAJcmVuYW1lZGxnLmggc2tpcGRsZy5oIHNsYXZlLmggXAogCW9ic2VydmVy LmggY2htb2Rqb2IuaCBcCi0gICAgICAgIGtwYWMuaCBrbWRiYXNlLmggYXV0aGluZm8uaAorICAg ICAgICBrcGFjLmgga21kYmFzZS5oIGF1dGhpbmZvLmggXAorCXNsYXZlbWFuYWdlci5oCiAKICMg SW50ZXJuYWwKIG5vaW5zdF9IRUFERVJTID0ga3N5Y29jYWZhY3RvcnkuaCBrc2VydmljZXR5cGVm YWN0b3J5Lmgga3NlcnZpY2VmYWN0b3J5LmggXApJbmRleDogam9iLmNwcAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD UyBmaWxlOiAvaG9tZS9rZGUva2RlbGlicy9raW8vam9iLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS4yNDYKZGlmZiAtdSAtMyAtcCAtcjEuMjQ2IGpvYi5jcHAKLS0tIGpvYi5jcHAJMjAwMS8w My8yOCAxMTowOTowOQkxLjI0NgorKysgam9iLmNwcAkyMDAxLzAzLzMwIDEyOjQ0OjA4CkBAIC01 OSw2ICs1OSw3IEBAIGV4dGVybiAiQyIgewogCiAjaW5jbHVkZSA8a2Rpcm5vdGlmeV9zdHViLmg+ CiAKKwogdXNpbmcgbmFtZXNwYWNlIEtJTzsKIHRlbXBsYXRlIGNsYXNzIFFMaXN0PEtJTzo6Sm9i PjsKIApAQCAtMTA2LDYgKzEwNyw5IEBAIHZvaWQgSm9iOjphZGRTdWJqb2IoSm9iICpqb2IpCiAg ICAgY29ubmVjdCggam9iLCBTSUdOQUwocmVzdWx0KEtJTzo6Sm9iKikpLAogICAgICAgICAgICAg IFNMT1Qoc2xvdFJlc3VsdChLSU86OkpvYiopKSApOwogCisgICAgY29ubmVjdCggam9iLCBTSUdO QUwobmVlZENvbmZpZ3VyYXRpb24oS0lPOjpKb2IqLCBjb25zdCBLSU86Ok1ldGFEYXRhJikpLAor ICAgICAgICAgICAgIFNMT1Qoc2xvdE5lZWRDb25maWd1cmF0aW9uKEtJTzo6Sm9iKiwgY29uc3Qg S0lPOjpNZXRhRGF0YSYpKSApOworCiAgICAgLy8gRm9yd2FyZCBpbmZvcm1hdGlvbiBmcm9tIHRo YXQgc3Viam9iLgogICAgIGNvbm5lY3QoIGpvYiwgU0lHTkFMKHNwZWVkKCBLSU86OkpvYiosIHVu c2lnbmVkIGxvbmcgKSksCiAgICAgICAgICAgICAgU0xPVChzbG90U3BlZWQoS0lPOjpKb2IqLCB1 bnNpZ25lZCBsb25nKSkgKTsKQEAgLTE3OSw2ICsxODMsMTEgQEAgdm9pZCBKb2I6OmtpbGwoIGJv b2wgcXVpZXRseSApCiAgIH0KIH0KIAordm9pZCBKb2I6OnNsb3ROZWVkQ29uZmlndXJhdGlvbigg Sm9iICosIGNvbnN0IE1ldGFEYXRhICZkYXRhICkKK3sKKyAgIGVtaXQgbmVlZENvbmZpZ3VyYXRp b24odGhpcywgZGF0YSk7Cit9CisKIHZvaWQgSm9iOjpzbG90UmVzdWx0KCBKb2IgKmpvYiApCiB7 CiAgICAgLy8gRGlkIGpvYiBoYXZlIGFuIGVycm9yID8KQEAgLTIzNSwxMCArMjQ0LDI5IEBAIFFX aWRnZXQgKkpvYjo6d2luZG93KCkgY29uc3QKICAgcmV0dXJuIG1fd2luZG93OwogfQogCisKK1Ns YXZlTWFuYWdlckdsb2JhbCAqIFNpbXBsZUpvYjo6bV9tYW5hZ2VyRmFjdG9yeSA9IDA7CisKK1Ns YXZlTWFuYWdlckdsb2JhbCAqIFNpbXBsZUpvYjo6ZmFjdG9yeUluc3RhbmNlKCkKK3sKKyAgIGlm IChtX21hbmFnZXJGYWN0b3J5ID09IDApCisgICB7CisgICAgICBLQ29uZmlnICpnbG9iYWxDb25m aWcgPSBuZXcgS0NvbmZpZygiL3RtcC9raW9jb25maWciKTsgLy8gZGVmaW5lIGhlcmUgdGhlIGxv Y2F0aW9uIGZvciBnbG9iYWwgY29uZmlnCisgICAgICBtX21hbmFnZXJGYWN0b3J5ID0gbmV3IFNs YXZlTWFuYWdlckdsb2JhbChnbG9iYWxDb25maWcsIDApOworICAgICAgcUFkZFBvc3RSb3V0aW5l KFNpbXBsZUpvYjo6Y2xlYW5NYW5hZ2VySW5zdGFuY2UpOworICAgfQorICAgcmV0dXJuIG1fbWFu YWdlckZhY3Rvcnk7Cit9CisKK3ZvaWQgU2ltcGxlSm9iOjpjbGVhbk1hbmFnZXJJbnN0YW5jZSgp Cit7CisgICBkZWxldGUgbV9tYW5hZ2VyRmFjdG9yeTsKK30KKwogU2ltcGxlSm9iOjpTaW1wbGVK b2IoY29uc3QgS1VSTCYgdXJsLCBpbnQgY29tbWFuZCwgY29uc3QgUUJ5dGVBcnJheSAmcGFja2Vk QXJncywKICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvd1Byb2dyZXNzSW5mbyApCiAgIDog Sm9iKHNob3dQcm9ncmVzc0luZm8pLCBtX3NsYXZlKDApLCBtX3BhY2tlZEFyZ3MocGFja2VkQXJn cyksCi0gICAgbV91cmwodXJsKSwgbV9jb21tYW5kKGNvbW1hbmQpLCBtX3RvdGFsU2l6ZSgwKQor ICAgIG1fdXJsKHVybCksIG1fY29tbWFuZChjb21tYW5kKSwgbV90b3RhbFNpemUoMCksIG1fY29u ZmlndXJhdGlvblNlbnQoZmFsc2UpCiB7CiAgICAgaWYgKG1fdXJsLmlzTWFsZm9ybWVkKCkpCiAg ICAgewpAQCAtMjk2LDM3ICszMjQsOCBAQCBTaW1wbGVKb2I6On5TaW1wbGVKb2IoKQogICAgIH0K IH0KIAotdm9pZCBTaW1wbGVKb2I6OnN0YXJ0KFNsYXZlICpzbGF2ZSkKK3ZvaWQgU2ltcGxlSm9i OjpzdGFydChTbGF2ZSAqKQogewotICAgIG1fc2xhdmUgPSBzbGF2ZTsKLQotICAgIGNvbm5lY3Qo IG1fc2xhdmUsIFNJR05BTCggZXJyb3IoIGludCAsIGNvbnN0IFFTdHJpbmcgJiApICksCi0gICAg ICAgICAgICAgU0xPVCggc2xvdEVycm9yKCBpbnQgLCBjb25zdCBRU3RyaW5nICYgKSApICk7Ci0K LSAgICBjb25uZWN0KCBtX3NsYXZlLCBTSUdOQUwoIHdhcm5pbmcoIGNvbnN0IFFTdHJpbmcgJiAp ICksCi0gICAgICAgICAgICAgU0xPVCggc2xvdFdhcm5pbmcoIGNvbnN0IFFTdHJpbmcgJiApICkg KTsKLQotICAgIGNvbm5lY3QoIG1fc2xhdmUsIFNJR05BTCggaW5mb01lc3NhZ2UoIGNvbnN0IFFT dHJpbmcgJiApICksCi0gICAgICAgICAgICAgU0xPVCggc2xvdEluZm9NZXNzYWdlKCBjb25zdCBR U3RyaW5nICYgKSApICk7Ci0KLSAgICBjb25uZWN0KCBtX3NsYXZlLCBTSUdOQUwoIGNvbm5lY3Rl ZCgpICksCi0gICAgICAgICAgICAgU0xPVCggc2xvdENvbm5lY3RlZCgpICkgKTsKLQotICAgIGNv bm5lY3QoIG1fc2xhdmUsIFNJR05BTCggZmluaXNoZWQoKSApLAotICAgICAgICAgICAgIFNMT1Qo IHNsb3RGaW5pc2hlZCgpICkgKTsKLQotICAgIGNvbm5lY3QoIG1fc2xhdmUsIFNJR05BTCggdG90 YWxTaXplKCB1bnNpZ25lZCBsb25nICkgKSwKLSAgICAgICAgICAgICBTTE9UKCBzbG90VG90YWxT aXplKCB1bnNpZ25lZCBsb25nICkgKSApOwotCi0gICAgY29ubmVjdCggbV9zbGF2ZSwgU0lHTkFM KCBwcm9jZXNzZWRTaXplKCB1bnNpZ25lZCBsb25nICkgKSwKLSAgICAgICAgICAgICBTTE9UKCBz bG90UHJvY2Vzc2VkU2l6ZSggdW5zaWduZWQgbG9uZyApICkgKTsKLQotICAgIGNvbm5lY3QoIG1f c2xhdmUsIFNJR05BTCggc3BlZWQoIHVuc2lnbmVkIGxvbmcgKSApLAotICAgICAgICAgICAgIFNM T1QoIHNsb3RTcGVlZCggdW5zaWduZWQgbG9uZyApICkgKTsKLQotICAgIGNvbm5lY3QoIHNsYXZl LCBTSUdOQUwoIG5lZWRQcm9ncmVzc0lkKCkgKSwKLSAgICAgICAgICAgICBTTE9UKCBzbG90TmVl ZFByb2dyZXNzSWQoKSApICk7Ci0KICAgICBpZiAoIW1fc3ViVXJsLmlzRW1wdHkoKSkKICAgICB7 CiAgICAgICAgS0lPX0FSR1MgPDwgbV9zdWJVcmw7CkBAIC0zNDIsNiArMzQxLDczIEBAIHZvaWQg U2ltcGxlSm9iOjpzbGF2ZURvbmUoKQogICAgZGlzY29ubmVjdChtX3NsYXZlKTsgLy8gUmVtb3Zl IGFsbCBzaWduYWxzIGJldHdlZW4gc2xhdmUgYW5kIGpvYgogICAgU2NoZWR1bGVyOjpqb2JGaW5p c2hlZCggdGhpcywgbV9zbGF2ZSApOwogICAgbV9zbGF2ZSA9IDA7Cit9CisKK3ZvaWQgU2ltcGxl Sm9iOjpjb25uZWN0VG9TbGF2ZShTbGF2ZSAqc2xhdmUpCit7CisgICAvL0ZJWE1FIHdoZW4gdGhp cyBmdW5jdGlvbiB3aWxsIGJlY29tZSB2aXJ0dWFsLCBtb3ZlIGFsbCBjb25uZWN0IG9wcyAKKyAg IC8vIG9mIGRlcml2ZWQgY2xhc3NlcyBmcm9tIHN0YXJ0IG1ldGhvZHMgdG8gY29ubmVjdFRvU2xh dmUuCisgICAvLyBGb3Igbm93IHRoaXMgaXMgYW4gaGFjaywgYmVjYXVzZSBhZnRlciBhIGNvbm5l Y3RUb1NsYXZlLCB0aGUgam9iLXNsYXZlCisgICAvLyBjb25uZWN0aW9uIGlzbid0IGNvbXBsZXRl LgorICAgbV9zbGF2ZSA9IHNsYXZlOworICAgCisgICBjb25uZWN0KCBtX3NsYXZlLCBTSUdOQUwo IGVycm9yKCBpbnQgLCBjb25zdCBRU3RyaW5nICYgKSApLAorCSAgICBTTE9UKCBzbG90RXJyb3Io IGludCAsIGNvbnN0IFFTdHJpbmcgJiApICkgKTsKKyAgIAorICAgY29ubmVjdCggbV9zbGF2ZSwg U0lHTkFMKCB3YXJuaW5nKCBjb25zdCBRU3RyaW5nICYgKSApLAorCSAgICBTTE9UKCBzbG90V2Fy bmluZyggY29uc3QgUVN0cmluZyAmICkgKSApOworICAgCisgICBjb25uZWN0KCBtX3NsYXZlLCBT SUdOQUwoIGluZm9NZXNzYWdlKCBjb25zdCBRU3RyaW5nICYgKSApLAorCSAgICBTTE9UKCBzbG90 SW5mb01lc3NhZ2UoIGNvbnN0IFFTdHJpbmcgJiApICkgKTsKKworICAgY29ubmVjdCggbV9zbGF2 ZSwgU0lHTkFMKCBjb25uZWN0ZWQoKSApLAorCSAgICBTTE9UKCBzbG90Q29ubmVjdGVkKCkgKSAp OworCisgICBjb25uZWN0KCBtX3NsYXZlLCBTSUdOQUwoIGZpbmlzaGVkKCkgKSwKKwkgICAgU0xP VCggc2xvdEZpbmlzaGVkKCkgKSApOworICAgCisgICBjb25uZWN0KCBtX3NsYXZlLCBTSUdOQUwo IHRvdGFsU2l6ZSggdW5zaWduZWQgbG9uZyApICksCisJICAgIFNMT1QoIHNsb3RUb3RhbFNpemUo IHVuc2lnbmVkIGxvbmcgKSApICk7CisKKyAgIGNvbm5lY3QoIG1fc2xhdmUsIFNJR05BTCggcHJv Y2Vzc2VkU2l6ZSggdW5zaWduZWQgbG9uZyApICksCisJICAgIFNMT1QoIHNsb3RQcm9jZXNzZWRT aXplKCB1bnNpZ25lZCBsb25nICkgKSApOworCisgICBjb25uZWN0KCBtX3NsYXZlLCBTSUdOQUwo IHNwZWVkKCB1bnNpZ25lZCBsb25nICkgKSwKKwkgICAgU0xPVCggc2xvdFNwZWVkKCB1bnNpZ25l ZCBsb25nICkgKSApOworCisgICBjb25uZWN0KCBzbGF2ZSwgU0lHTkFMKCBuZWVkUHJvZ3Jlc3NJ ZCgpICksCisJICAgIFNMT1QoIHNsb3ROZWVkUHJvZ3Jlc3NJZCgpICkgKTsKKworICAgY29ubmVj dCggc2xhdmUsIFNJR05BTCggbmVlZENvbmZpZ3VyYXRpb24oIGNvbnN0IEtJTzo6TWV0YURhdGEm ICkgKSwKKwkgICAgU0xPVCggc2xvdFNsYXZlTmVlZENvbmZpZ3VyYXRpb24oIGNvbnN0IEtJTzo6 TWV0YURhdGEmICkgKSApOworfQorCit2b2lkIFNpbXBsZUpvYjo6c2VuZENvbmZpZ3VyYXRpb24o IGNvbnN0IE1ldGFEYXRhICZtZXRhZGF0YSApCit7CisgICBrZERlYnVnKDcwMDcpIDw8ICJTaW1w bGVKb2I6IHNlbmQgY29uZmlndXJhdGlvbiB0byAiIDw8IG1fc2xhdmUgPDwgZW5kbDsKKyAgIG1f Y29uZmlndXJhdGlvblNlbnQgPSB0cnVlOworICAgS0lPX0FSR1MgPDwgbWV0YWRhdGE7CisgICBt X3NsYXZlLT5jb25uZWN0aW9uKCktPnNlbmQoIENNRF9DT05GSUcsIHBhY2tlZEFyZ3MgKTsKK30K Kwordm9pZCBTaW1wbGVKb2I6OnNsb3RTbGF2ZU5lZWRDb25maWd1cmF0aW9uKCBjb25zdCBNZXRh RGF0YSAmZGF0YSApCit7CisgICBrZERlYnVnKDcwMDcpIDw8ICJTaW1wbGVKb2I6OnNsb3RTbGF2 ZU5lZWRDb25maWd1cmF0aW9uOiBzbGF2ZSAiIDw8IG1fc2xhdmUgPDwgIiBncm91cCAiIDw8IGRh dGFbIkdyb3VwIl0gPDwgZW5kbDsKKyAgIG1fY29uZmlndXJhdGlvblNlbnQgPSBmYWxzZTsKKyAg IGVtaXQgbmVlZENvbmZpZ3VyYXRpb24odGhpcywgZGF0YSk7CisgICAvL0ZJWE1FIHdhaXRpbmcg Zm9yIHNvbWUgdmlydHVhbCBtZXRob2RzCisgICAvLyBpZiB0aGUgYXBwIGRvbid0IGhhbmRsZSBj b25maWd1cmF0aW9uLCB3ZSBoYXZlIHRvIGRvIGl0IGhlcmUKKyAgIC8vIHRoaXMgd2F5IGlzIHZh bGlkIG9ubHkgaWYgdGhlIHNlbmRDb25maWd1cmF0aW9uIG1ldGhvZCBpcyBjYWxsZWQgaW4gdGhl IAorICAgLy8gc2xvdCBjb25uZWN0ZWQgdG8gbmVlZENvbmZpZ3VyYXRpb24gc2lnbmFsLgorICAg aWYgKCFtX2NvbmZpZ3VyYXRpb25TZW50KQorICAgeworICAgICAgUVN0cmluZyBwcm90byA9IHVy bCgpLnByb3RvY29sKCk7CisgICAgICBTbGF2ZU1hbmFnZXIgKm1uZ3IgPSBmYWN0b3J5SW5zdGFu Y2UoKS0+bWFuYWdlcihwcm90byk7CisgICAgICBRU3RyaW5nIGdycCA9IGRhdGFbIkdyb3VwIl07 CisgICAgICBtbmdyLT5zZXRFbnRyeShncnAsICJkdW1teTEiLCBRU3RyaW5nOjpudW1iZXIoKGlu dCl0aGlzKSk7CisgICAgICBtbmdyLT5zZXRFbnRyeShncnAsICJkdW1teTIiLCBuYW1lKCkpOwor ICAgICAgc2VuZENvbmZpZ3VyYXRpb24obW5nci0+ZGF0YShncnApKTsKKyAgIH0KIH0KIAogdm9p ZCBTaW1wbGVKb2I6OnNsb3RGaW5pc2hlZCggKQpJbmRleDogam9iY2xhc3Nlcy5oCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVsaWJzL2tpby9qb2JjbGFzc2VzLmgsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuNzUKZGlmZiAtdSAtMyAtcCAtcjEuNzUgam9iY2xhc3Nlcy5oCi0tLSBq b2JjbGFzc2VzLmgJMjAwMS8wMi8wNyAwMDowNjo0OAkxLjc1CisrKyBqb2JjbGFzc2VzLmgJMjAw MS8wMy8zMCAxMjo0NDoxMQpAQCAtMzUsNiArMzUsOCBAQAogCiAjaW5jbHVkZSA8a2lvL2dsb2Jh bC5oPgogCisjaW5jbHVkZSA8a2lvL3NsYXZlbWFuYWdlci5oPgorCiBjbGFzcyBPYnNlcnZlcjsK IGNsYXNzIFFUaW1lcjsKIApAQCAtMTg3LDYgKzE4OSwxMSBAQCBuYW1lc3BhY2UgS0lPIHsKICAg ICAgICAgICovCiAgICAgICAgIHZvaWQgc3BlZWQoIEtJTzo6Sm9iICosIHVuc2lnbmVkIGxvbmcg Ynl0ZXNfcGVyX3NlY29uZCApOwogCisgICAgICAgIC8qKgorCSAqIEVtaXR0ZWQgb24gc2xhdmUn cyBjb25maWd1cmF0aW9uIHJlcXVlc3QKKwkgKi8KKyAgICAgICAgdm9pZCBuZWVkQ29uZmlndXJh dGlvbiggS0lPOjpKb2IgKiwgY29uc3QgS0lPOjpNZXRhRGF0YSAmICk7CisKICAgICBwcm90ZWN0 ZWQgc2xvdHM6CiAgICAgICAgIC8qKgogICAgICAgICAgKiBDYWxsZWQgd2hlbmV2ZXIgYSBzdWJq b2IgZmluaXNoZXMuCkBAIC0xOTcsNiArMjA0LDEyIEBAIG5hbWVzcGFjZSBLSU8gewogICAgICAg ICB2aXJ0dWFsIHZvaWQgc2xvdFJlc3VsdCggS0lPOjpKb2IgKmpvYiApOwogCiAgICAgICAgIC8q KgorCSAqIENhbGxlZCB3aGVuZXZlciBhIHNsYXZlIGNvbm5lY3RlZCB0byBhIHN1YmpvYiBzZW5k IGEgCisJICogY29uZmlndXJhdGlvbidzIHJlcXVlc3QKKwkgKi8KKyAgICAgICAgdm9pZCBzbG90 TmVlZENvbmZpZ3VyYXRpb24oS0lPOjpKb2IgKmpvYiwgY29uc3QgTWV0YURhdGEgJmRhdGEpOwor CisgICAgICAgIC8qKgogICAgICAgICAgKiBGb3J3YXJkIHNpZ25hbCBmcm9tIHN1YmpvYgogICAg ICAgICAgKi8KICAgICAgICAgdm9pZCBzbG90U3BlZWQoIEtJTzo6Sm9iKiwgdW5zaWduZWQgbG9u ZyBieXRlc19wZXJfc2Vjb25kICk7CkBAIC0zMTUsNiArMzI4LDMyIEBAIG5hbWVzcGFjZSBLSU8g ewogICAgICAgICAgKi8KICAgICAgICAgaW50IGNvbW1hbmQoKSB7IHJldHVybiBtX2NvbW1hbmQ7 IH0KIAorICAgICAgICAvKioKKwkgKiBTZW5kIGNvbmZpZ3VyYXRpb24gdG8gc2xhdmUuCisJICog WW91IGhhdmUgdG8gdXNlIHRoaXMgbWV0aG9kIGZyb20gdGhlIHNsb3QgY29ubmVjdGVkIHRvIG5l ZWRDb25uZWN0aW9uIAorCSAqIHNpZ25hbCwgYmVjYXVzZSBhZnRlciB0aGUgc2xhdmUgaGFzIGVt aXR0ZWQgbmVlZENvbmZpZ3VyYXRpb24sIGl0IAorCSAqIGV4cGVjdHMgdGhhdCBpdHMgY29uZmln dXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkLCBhbmQgdGhlIGpvYi1zdWJqb2IgCisJICogc3RydWN0 dXJlIG5lZWRzIHRoaXMgdG9vLgorCSAqLworICAgICAgICB2b2lkIHNlbmRDb25maWd1cmF0aW9u KGNvbnN0IE1ldGFEYXRhICYpOworCisgICAgICAgLyoqCisJKiBDb25uZWN0IGpvYiB0byBzbGF2 ZS4KKwkqIFRoZXJlJ3MgYSBuZWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gc3RhcnQgb3AgYW5k IGNvbm5lY3Qgb3AsIHNpbmNlIAorCSogc29tZSBvcGVyYXRpb25zIGhhdmUgdG8gYmUgZG9uZSBh ZnRlciBhIHNsYXZlLWpvYiBjb25uZWN0aW9uIGhhcyBiZWVuCisJKiBlc3RhYmxpc2hlZCwgYnV0 IGJlZm9yZSB0aGUgam9iIGlzIHN0YXJ0ZWQKKwkqLworICAgICAgIHZvaWQgY29ubmVjdFRvU2xh dmUoU2xhdmUgKnNsYXZlKTsKKworICAgICAgICAvKioKKwkgKiBHbG9iYWwgZmFjdG9yeSBpbnN0 YW5jZSBmb3IgbWFuYWdlcidzIG1hbmFnZW1lbnRzCisJICovCisgICAgICAgIHN0YXRpYyBTbGF2 ZU1hbmFnZXJHbG9iYWwgKiBmYWN0b3J5SW5zdGFuY2UoKTsKKyAgICAgICAgLyoqCisJICogUm91 dGluZSB0byBjbGVhbiBmYWN0b3J5J3MgaW5zdGFuY2UKKwkgKi8KKyAgICAgICAgc3RhdGljIHZv aWQgY2xlYW5NYW5hZ2VySW5zdGFuY2UoKTsKKwogICAgIHByb3RlY3RlZCBzbG90czoKICAgICAg ICAgLyoqCiAgICAgICAgICAqIENhbGxlZCB3aGVuIHRoZSBzbGF2ZSBtYXJrcyB0aGUgam9iCkBA IC0zNTEsNiArMzkwLDE1IEBAIG5hbWVzcGFjZSBLSU8gewogICAgICAgICAgKi8KICAgICAgICAg dm9pZCBzbG90U3BlZWQoIHVuc2lnbmVkIGxvbmcgYnl0ZXNfcGVyX3NlY29uZCApOwogCisgICAg ICAgIC8qKgorCSAqIENhbGxlZCB3aGVuIHRoZSBzbGF2ZSBuZWVkcyBjb25maWd1cmF0aW9uIGRh dGEuIEVtaXQgCisJICogbmVlZENvbmZpZ3VyYXRpb24gc2lnbmFsLCBhbmQgc2VuZCBnbG9iYWwg Y29uZmlnIGlmIG5vIGRhdGEgaGFzIGJlZW4KKwkgKiBzZW50IChpLmUuIGlmIG5lZWRDb25maWd1 cmF0aW9uIHNpZ25hbCBvZiBtYWluIGpvYiBpcyBub3QgaGFuZGxlZCkuCisJICogVG8gc2VsZWN0 IHRoZSAiZ3JvdXAiIG9mIGVudHJpZXMgbmVlZGVkLCB0aGUgc2xhdmUgdXNlIHRoZSBrZXkgCisJ ICogIkdyb3VwIi4KKwkgKi8KKyAgICAgICAgdm9pZCBzbG90U2xhdmVOZWVkQ29uZmlndXJhdGlv biggY29uc3QgS0lPOjpNZXRhRGF0YSAmZGF0YSApOworCiAgICAgcHVibGljIHNsb3RzOgogICAg ICAgICAvKioKICAgICAgICAgICogQGludGVybmFsCkBAIC0zNzIsNiArNDIwLDEwIEBAIG5hbWVz cGFjZSBLSU8gewogICAgICAgICBLVVJMIG1fc3ViVXJsOwogICAgICAgICBpbnQgbV9jb21tYW5k OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fdG90YWxTaXplOworICAgICAgICBib29sIG1fY29u ZmlndXJhdGlvblNlbnQ7CisKKyAgICBwcml2YXRlOgorICAgICAgIHN0YXRpYyBTbGF2ZU1hbmFn ZXJHbG9iYWwgKm1fbWFuYWdlckZhY3Rvcnk7CiAgICAgfTsKIAogICAgIC8vIFN0YXQgSm9iCklu ZGV4OiBzY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVsaWJz L2tpby9zY2hlZHVsZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU0CmRpZmYgLXUgLTMg LXAgLXIxLjU0IHNjaGVkdWxlci5jcHAKLS0tIHNjaGVkdWxlci5jcHAJMjAwMS8wMy8yNSAyMTow ODoxMAkxLjU0CisrKyBzY2hlZHVsZXIuY3BwCTIwMDEvMDMvMzAgMTI6NDQ6MTMKQEAgLTI5NCw2 ICsyOTQsMjEgQEAgYm9vbCBTY2hlZHVsZXI6OnN0YXJ0Sm9iU2NoZWR1bGVkKFByb3RvYwogICAg IHByb3RJbmZvLT5qb2JsaXN0LnJlbW92ZVJlZihqb2IpOwogLy8gICAgICAga2REZWJ1Zyg3MDA2 KSA8PCAic2NoZWR1bGVyOiBqb2Igc3RhcnRlZCAiIDw8IGpvYiA8PCBlbmRsOwogCisgICAgam9i LT5jb25uZWN0VG9TbGF2ZShzbGF2ZSk7CisKKyAgICBpZiAobmV3U2xhdmUpCisgICAgeworICAg ICAgIC8vIHJldHJpZXZlICJpbml0IiBncm91cCBjb25maWcKKyAgICAgICBNZXRhRGF0YSBtOwor ICAgICAgIG0uaW5zZXJ0KCJHcm91cCIsICJpbml0Iik7CisgICAgICAgc2xhdmUtPmVtaXROZWVk Q29uZmlndXJhdGlvbihtKTsKKyAgICB9CisKKyAgICAvLyByZXRyaWV2ZSAic3RhcnQiIGdyb3Vw IGNvbmZpZworICAgIE1ldGFEYXRhIG07CisgICAgbS5pbnNlcnQoIkdyb3VwIiwgInN0YXJ0Iik7 CisgICAgc2xhdmUtPmVtaXROZWVkQ29uZmlndXJhdGlvbihtKTsKKwogICAgIEtVUkwgdXJsID1q b2ItPnVybCgpOwogICAgIFFTdHJpbmcgaG9zdCA9IHVybC5ob3N0KCk7CiAgICAgaW50IHBvcnQg PSB1cmwucG9ydCgpOwpAQCAtMzM4LDYgKzM1MywyMSBAQCBib29sIFNjaGVkdWxlcjo6c3RhcnRK b2JEaXJlY3QoKQogCiAgICAgaWRsZVNsYXZlcy0+cmVtb3ZlUmVmKHNsYXZlKTsKIC8vICAgICAg IGtkRGVidWcoNzAwNikgPDwgInNjaGVkdWxlcjogam9iIHN0YXJ0ZWQgIiA8PCBqb2IgPDwgZW5k bDsKKworICAgIGpvYi0+Y29ubmVjdFRvU2xhdmUoc2xhdmUpOworCisgICAgaWYgKG5ld1NsYXZl KQorICAgIHsKKyAgICAgICAvLyByZXRyaWV2ZSAiaW5pdCIgZ3JvdXAgY29uZmlnCisgICAgICAg TWV0YURhdGEgbTsKKyAgICAgICBtLmluc2VydCgiR3JvdXAiLCAiaW5pdCIpOworICAgICAgIHNs YXZlLT5lbWl0TmVlZENvbmZpZ3VyYXRpb24obSk7CisgICAgfQorCisgICAgLy8gcmV0cmlldmUg InN0YXJ0IiBncm91cCBjb25maWcKKyAgICBNZXRhRGF0YSBtOworICAgIG0uaW5zZXJ0KCJHcm91 cCIsICJzdGFydCIpOworICAgIHNsYXZlLT5lbWl0TmVlZENvbmZpZ3VyYXRpb24obSk7CiAKICAg ICBLVVJMIHVybCA9am9iLT51cmwoKTsKICAgICBRU3RyaW5nIGhvc3QgPSB1cmwuaG9zdCgpOwpJ bmRleDogc2xhdmViYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9rZGUva2RlbGli cy9raW8vc2xhdmViYXNlLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43MwpkaWZmIC11IC0z IC1wIC1yMS43MyBzbGF2ZWJhc2UuY3BwCi0tLSBzbGF2ZWJhc2UuY3BwCTIwMDEvMDMvMjMgMTE6 MzU6NTkJMS43MworKysgc2xhdmViYXNlLmNwcAkyMDAxLzAzLzMwIDEyOjQ0OjE1CkBAIC01OSw2 ICs1OSw3IEBAIG5hbWVzcGFjZSBLSU8gewogY2xhc3MgU2xhdmVCYXNlUHJpdmF0ZSB7CiBwdWJs aWM6CiAgICAgUVN0cmluZyBzbGF2ZWlkOworICAgIE1ldGFEYXRhIGNvbmZpZ3VyYXRpb247CiAg ICAgYm9vbCByZXN1bWU6MTsKICAgICBib29sIG5lZWRTZW5kQ2FuUmVzdW1lOjE7CiB9OwpAQCAt OTMsNiArOTQsOCBAQCBTbGF2ZUJhc2U6OlNsYXZlQmFzZSggY29uc3QgUUNTdHJpbmcgJnByCiAg ICAgZC0+c2xhdmVpZCArPSBRU3RyaW5nOjpudW1iZXIoZ2V0cGlkKCkpOwogICAgIGQtPnJlc3Vt ZSA9IGZhbHNlOwogICAgIGQtPm5lZWRTZW5kQ2FuUmVzdW1lID0gZmFsc2U7CisgICAgLy8gc2V0 IGluaXRpYWwgY29uZmlndXJhdGlvbgorICAgIC8vZC0+Y29uZmlndXJhdGlvbiA9ID8/PzsKIH0K IAogU2xhdmVCYXNlOjp+U2xhdmVCYXNlKCkKQEAgLTI0Niw2ICsyNDksMTMgQEAgdm9pZCBTbGF2 ZUJhc2U6Om5lZWRTdWJVUkxEYXRhKCkKICAgICBtX3BDb25uZWN0aW9uLT5zZW5kKCBNU0dfTkVF RF9TVUJVUkxfREFUQSApOwogfQogCit2b2lkIFNsYXZlQmFzZTo6bmVlZENvbmZpZ3VyYXRpb24o Y29uc3QgTWV0YURhdGEgJm1ldGFfZGF0YSkKK3sKKyAgIGtkRGVidWcoNzAxOSkgPDwgInNsYXZl QmFzZTogc2VuZCBuZWVkQ29uZmlndXJhdGlvbiByZXF1ZXN0IiA8PCBlbmRsOworICAgS0lPX0RB VEEgPDwgbWV0YV9kYXRhOworICAgbV9wQ29ubmVjdGlvbi0+c2VuZCggTVNHX05FRURfQ09ORklH LCBkYXRhICk7Cit9CisKIHZvaWQgU2xhdmVCYXNlOjpzbGF2ZVN0YXR1cyggY29uc3QgUVN0cmlu ZyAmaG9zdCwgYm9vbCBjb25uZWN0ZWQgKQogewogICAgIHBpZF90IHBpZCA9IGdldHBpZCgpOwpA QCAtMzEwLDYgKzMyMCw3IEBAIHZvaWQgU2xhdmVCYXNlOjptaW1lVHlwZSggY29uc3QgUVN0cmlu ZyAKICAgICAgICB9CiAgICAgICAgaWYgKCAoY21kID09IENNRF9SRVBBUlNFQ09ORklHVVJBVElP TikgfHwKICAgICAgICAgICAgIChjbWQgPT0gQ01EX01FVEFfREFUQSkgfHwKKwkgICAgKGNtZCA9 PSBDTURfQ09ORklHKSB8fCAvL0ZJWE1FIGlzIHRoaXMgY29ycmVjdD8KICAgICAgICAgICAgIChj bWQgPT0gQ01EX1NVQlVSTCkgKQogICAgICAgIHsKICAgICAgICAgICBkaXNwYXRjaCggY21kLCBk YXRhICk7CkBAIC00NTgsNiArNDY5LDIyIEBAIHZvaWQgU2xhdmVCYXNlOjpzZXRIb3N0KFFTdHJp bmcgY29uc3QgJmgKICAgICBrZERlYnVnKCA3MDE5ICkgPDwgInNldEhvc3QoIGhvc3QgPSAiIDw8 IGhvc3QgPDwgIikiIDw8IGVuZGw7CiB9CiAKK3ZvaWQgU2xhdmVCYXNlOjpzZXRDb25maWd1cmF0 aW9uKGNvbnN0IE1ldGFEYXRhICZtZXRhZGF0YSkKK3sKKyAgIGtkRGVidWcoNzAxOSkgPDwgInNl dENvbmZpZ3VyYXRpb24iIDw8IGVuZGw7CisgICAvLyBzYXZlIG1ldGFkYXRhIHRvIGxvY2FsCisg ICBkLT5jb25maWd1cmF0aW9uID0gbWV0YWRhdGE7CisgICBRU3RyaW5nIG1zZzsKKyAgIGZvciAo TWV0YURhdGE6OkNvbnN0SXRlcmF0b3IgaXQgPSBkLT5jb25maWd1cmF0aW9uLmJlZ2luKCk7IGl0 ICE9IGQtPmNvbmZpZ3VyYXRpb24uZW5kKCk7ICsraXQpCisgICAgICBtc2cgKz0gaXQua2V5KCkg KyAiOiAiICsgaXQuZGF0YSgpICsgIiwgIjsKKyAgIGtkRGVidWcoNzAxOSkgPDwgIkNmZyA9ICIg PDwgbXNnIDw8IGVuZGw7Cit9CisKK2NvbnN0IE1ldGFEYXRhICYgU2xhdmVCYXNlOjpjb25maWd1 cmF0aW9uKCkgY29uc3QKK3sKKyAgIHJldHVybiBkLT5jb25maWd1cmF0aW9uOworfQorCiB2b2lk IFNsYXZlQmFzZTo6b3BlbkNvbm5lY3Rpb24odm9pZCkKIHsgZXJyb3IoICBFUlJfVU5TVVBQT1JU RURfQUNUSU9OLCAib3BlbiIgKTsgfQogdm9pZCBTbGF2ZUJhc2U6OmNsb3NlQ29ubmVjdGlvbih2 b2lkKQpAQCAtNDk0LDYgKzUyMSw5IEBAIHZvaWQgU2xhdmVCYXNlOjpzbGF2ZV9zdGF0dXMoKQog CiB2b2lkIFNsYXZlQmFzZTo6cmVwYXJzZUNvbmZpZ3VyYXRpb24oKQogeworICAgIC8vIGZpbGwg d2l0aCBpbmZvcyBmb3Igam9iCisgICAgTWV0YURhdGEgZGF0YTsKKyAgICBuZWVkQ29uZmlndXJh dGlvbihkYXRhKTsKIH0KIAogYm9vbCBTbGF2ZUJhc2U6OmRpc3BhdGNoKCkKQEAgLTY0MCw5ICs2 NzAsMTYgQEAgdm9pZCBTbGF2ZUJhc2U6OmRpc3BhdGNoKCBpbnQgY29tbWFuZCwgYwogICAgICAg ICBzbGF2ZV9zdGF0dXMoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDTURfUkVQQVJTRUNP TkZJR1VSQVRJT046Ci0gICAgICAgIEtQcm90b2NvbE1hbmFnZXI6OnJlcGFyc2VDb25maWd1cmF0 aW9uKCk7CisgICAgICAgIEtQcm90b2NvbE1hbmFnZXI6OnJlcGFyc2VDb25maWd1cmF0aW9uKCk7 Ly9GSVhNRSB0byByZW1vdmUKICAgICAgICAgcmVwYXJzZUNvbmZpZ3VyYXRpb24oKTsKIAlicmVh azsKKyAgICBjYXNlIENNRF9DT05GSUc6IHsKKyAgICAgICAga2REZWJ1Zyg3MDE5KSA8PCAicmVj ZWl2ZWQgQ01EX0NPTkZJRyIgPDwgZW5kbDsKKyAgICAgICAgTWV0YURhdGEgbWV0YV9kYXRhOwor ICAgICAgICBzdHJlYW0gPj4gbWV0YV9kYXRhOworCXNldENvbmZpZ3VyYXRpb24obWV0YV9kYXRh KTsKKwlicmVhazsKKyAgICB9CiAgICAgY2FzZSBDTURfR0VUOiB7CiAgICAgICAgIHN0cmVhbSA+ PiB1cmw7CiAJZ2V0KCB1cmwgKTsKSW5kZXg6IHNsYXZlYmFzZS5oCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9ob21lL2tkZS9rZGVsaWJzL2tpby9zbGF2ZWJhc2UuaCx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS41MgpkaWZmIC11IC0zIC1wIC1yMS41MiBzbGF2ZWJhc2UuaAotLS0gc2xhdmViYXNlLmgJ MjAwMS8wMy8yMyAxMTozNTo1OQkxLjUyCisrKyBzbGF2ZWJhc2UuaAkyMDAxLzAzLzMwIDEyOjQ0 OjE3CkBAIC01OSw2ICs1OSwxMiBAQCBwdWJsaWM6CiAgICAgQ29ubmVjdGlvbiAqY29ubmVjdGlv bigpIGNvbnN0IHsgcmV0dXJuIG1fcENvbm5lY3Rpb247IH0KIAogCisgICAgLyoqCisgICAgICog Z2V0IHNsYXZlJ3MgY29uZmlndXJhdGlvbgorICAgICAqIEZJWE1FIG1heWJlIGl0J3MgYmV0dGVy IHRvIGRlZmluZSB0aGlzIGFzIHByb3RlY3RlZAorICAgICAqLworICAgIGNvbnN0IE1ldGFEYXRh ICYgY29uZmlndXJhdGlvbigpIGNvbnN0OworCiAgICAgLy8vLy8vLy8vLy8KICAgICAvLyBNZXNz YWdlIFNpZ25hbHMgdG8gc2VuZCB0byB0aGUgam9iCiAgICAgLy8vLy8vLy8vLy8KQEAgLTEwMCw2 ICsxMDYsMTMgQEAgcHVibGljOgogICAgIHZvaWQgbmVlZFN1YlVSTERhdGEoKTsKIAogICAgIC8q KgorICAgICAqIENhbGwgdG8gc2lnbmFsIGEgcmVxdWVzdCBmb3Igc2xhdmUgY29uZmlndXJhdGlv biBkYXRhCisgICAgICogQHBhcmFtIGRhdGEgaW5mb3JtYXRpb25zIGZvciBqb2IgdG8ga25vdyB0 aGUgc2xhdmUncyBzdGF0ZQorICAgICAqIHRvIHNlbGVjdCB0aGUgImdyb3VwIiBvZiBlbnRyaWVz IG5lZWRlZCwgdXNlIHRoZSBrZXkgIkdyb3VwIi4KKyAgICAgKi8KKyAgICB2b2lkIG5lZWRDb25m aWd1cmF0aW9uKGNvbnN0IE1ldGFEYXRhICZkYXRhKTsKKworICAgIC8qKgogICAgICAqIFVzZWQg dG8gcmVwb3J0IHRoZSBzdGF0dXMgb2YgdGhlIHNsYXZlLgogICAgICAqIEBwYXJhbSBob3N0IHRo ZSBzbGF2ZSBpcyBjdXJyZW50bHkgY29ubmVjdGVkIHRvLiAoU2hvdWxkIGJlCiAgICAgICogICAg ICAgIGVtcHR5IGlmIG5vdCBjb25uZWN0ZWQpCkBAIC0yMzAsNiArMjQzLDExIEBAIHB1YmxpYzoK ICAgICAvLyBDb21tYW5kcyBzZW50IGJ5IHRoZSBqb2IsIHRoZSBzbGF2ZSBoYXMgdG8gb3ZlcnJp ZGUgd2hhdCBpdCB3YW50cyB0byBpbXBsZW1lbnQKICAgICAvLy8vLy8vLy8vLwogCisgICAgLyoq CisgICAgICogU2V0IHRoZSBzbGF2ZSBjb25maWcKKyAgICAgKi8KKyAgICB2b2lkIHNldENvbmZp Z3VyYXRpb24oY29uc3QgTWV0YURhdGEgJmRhdGEpOworICAgIAogICAgIC8qKgogICAgICAqIFNl dCB0aGUgaG9zdAogICAgICAqIEBwYXJhbSBob3N0CkluZGV4OiBzbGF2ZWludGVyZmFjZS5jcHAK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUva2RlL2tkZWxpYnMva2lvL3NsYXZlaW50ZXJmYWNl LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41MApkaWZmIC11IC0zIC1wIC1yMS41MCBzbGF2 ZWludGVyZmFjZS5jcHAKLS0tIHNsYXZlaW50ZXJmYWNlLmNwcAkyMDAxLzAzLzIzIDExOjM1OjU5 CTEuNTAKKysrIHNsYXZlaW50ZXJmYWNlLmNwcAkyMDAxLzAzLzMwIDEyOjQ0OjE4CkBAIC0xMjUs NyArMTI1LDYgQEAgYm9vbCBTbGF2ZUludGVyZmFjZTo6ZGlzcGF0Y2goIGludCBfY21kLAogICAg IGNhc2UgTVNHX0NPTk5FQ1RFRDoKIAllbWl0IGNvbm5lY3RlZCgpOwogCWJyZWFrOwotCiAgICAg Y2FzZSBJTkZfVE9UQUxfU0laRToKIAlzdHJlYW0gPj4gdWw7CiAJZW1pdCB0b3RhbFNpemUoIHVs ICk7CkBAIC0yMTIsNiArMjExLDEzIEBAIGJvb2wgU2xhdmVJbnRlcmZhY2U6OmRpc3BhdGNoKCBp bnQgX2NtZCwKICAgICAgICAgZW1pdCBuZWVkU3ViVVJMRGF0YSgpOwogICAgICAgICBicmVhazsK ICAgICB9CisgICAgY2FzZSBNU0dfTkVFRF9DT05GSUc6IHsKKyAgICAgICAgTWV0YURhdGEgbWV0 YV9kYXRhOworICAgICAgICBzdHJlYW0gPj4gbWV0YV9kYXRhOworCWtkRGVidWcoNzAwNykgPDwg ImVtaXQgbmVlZENvbmZpZ3VyYXRpb24gZm9yIGdyb3VwICIgPDwgbWV0YV9kYXRhWyJHcm91cCJd IDw8IGVuZGw7CisgICAgICAgIGVtaXQgbmVlZENvbmZpZ3VyYXRpb24obWV0YV9kYXRhKTsKKyAg ICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgTVNHX0FVVEhfS0VZOiB7CiAgICAgICAgIGJv b2wga2VlcDsKICAgICAgICAgUUNTdHJpbmcga2V5LCBncm91cDsKQEAgLTI1NCw2ICsyNjAsMTUg QEAgdm9pZCBTbGF2ZUludGVyZmFjZTo6c2VuZFJlc3VtZUFuc3dlciggYgogewogICAgIGtkRGVi dWcoNzAwNykgPDwgIlNsYXZlSW50ZXJmYWNlOjpzZW5kUmVzdW1lQW5zd2VyIG9rIGZvciByZXN1 bWluZyA6IiA8PCByZXN1bWUgPDwgZW5kbDsKICAgICBtX3BDb25uZWN0aW9uLT5zZW5kbm93KCBy ZXN1bWUgPyBDTURfUkVTVU1FQU5TV0VSIDogQ01EX05PTkUsIFFCeXRlQXJyYXkoKSApOworfQor Cit2b2lkIFNsYXZlSW50ZXJmYWNlOjpzZW5kQ29uZmlndXJhdGlvbiggY29uc3QgTWV0YURhdGEg JmRhdGEgKQoreworICAga2REZWJ1Zyg3MDA3KSA8PCAiU2xhdmVJbnRlcmZhY2U6OnNlbmRDb25m aWd1cmF0aW9uIiA8PCBlbmRsOworICAgIFFCeXRlQXJyYXkgcGFja2VkQXJnczsKKyAgICBRRGF0 YVN0cmVhbSBzdHJlYW0oIHBhY2tlZEFyZ3MsIElPX1dyaXRlT25seSApOworICAgIHN0cmVhbSA8 PCBkYXRhOworICAgIG1fcENvbm5lY3Rpb24tPnNlbmRub3coQ01EX0NPTkZJRywgcGFja2VkQXJn cyk7CiB9CiAKIHZvaWQgU2xhdmVJbnRlcmZhY2U6Om9wZW5QYXNzRGxnKCBjb25zdCBRU3RyaW5n JiBwcm9tcHQsIGNvbnN0IFFTdHJpbmcmIHVzZXIsIGJvb2wgcmVhZE9ubHkgKQpJbmRleDogc2xh dmVpbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9rZGUva2RlbGlicy9raW8v c2xhdmVpbnRlcmZhY2UuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NwpkaWZmIC11IC0zIC1w IC1yMS40NyBzbGF2ZWludGVyZmFjZS5oCi0tLSBzbGF2ZWludGVyZmFjZS5oCTIwMDEvMDMvMjMg MTE6MzU6NTkJMS40NworKysgc2xhdmVpbnRlcmZhY2UuaAkyMDAxLzAzLzMwIDEyOjQ0OjE4CkBA IC02NSw3ICs2NSw4IEBAIGNsYXNzIFNsYXZlSW50ZXJmYWNlUHJpdmF0ZTsKICAgIENNRF9TWU1M SU5LID0gJ1EnLCAvLyA4MQogICAgQ01EX1NVQlVSTCA9ICdSJywgLy8gODIgIEluZm9ybSB0aGUg c2xhdmUgYWJvdXQgdGhlIHVybCBpdCBpcyBzdHJlYW1pbmcgb24uCiAgICBDTURfTUVTU0FHRUJP WEFOU1dFUiA9ICdTJywgLy8gODMKLSAgIENNRF9SRVNVTUVBTlNXRVIgPSAnVCcgLy8gODQKKyAg IENNRF9SRVNVTUVBTlNXRVIgPSAnVCcsIC8vIDg0CisgICBDTURfQ09ORklHID0gJ1UnIC8vIDg1 CiAgICAvLyBBZGQgbmV3IG9uZXMgaGVyZSBvbmNlIGEgcmVsZWFzZSBpcyBkb25lLCB0byBhdm9p ZCBicmVha2luZyBiaW5hcnkgY29tcGF0aWJpbGl0eS4KICAgIC8vIE5vdGUgdGhhdCBwcm90b2Nv bC1zcGVjaWZpYyBjb21tYW5kcyBzaG91bGRuJ3QgYmUgYWRkZWQgaGVyZSwgYnV0IHNob3VsZCB1 c2Ugc3BlY2lhbC4KICB9OwpAQCAtMTEwLDcgKzExMSw4IEBAIGNsYXNzIFNsYXZlSW50ZXJmYWNl UHJpdmF0ZTsKICAgIE1TR19ORUVEX1NVQlVSTF9EQVRBLAogICAgTVNHX0NBTlJFU1VNRSwKICAg IE1TR19BVVRIX0tFWSwKLSAgIE1TR19ERUxfQVVUSF9LRVkKKyAgIE1TR19ERUxfQVVUSF9LRVks CisgICBNU0dfTkVFRF9DT05GSUcKICAgIC8vIGFkZCBuZXcgb25lcyBoZXJlIG9uY2UgYSByZWxl YXNlIGlzIGRvbmUsIHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyeSBjb21wYXRpYmlsaXR5CiAgfTsK IApAQCAtMTM5LDYgKzE0MSwxNyBAQCBwdWJsaWM6CiAgICAgLy8gKHRvIHRlbGwgdGhlICJwdXQi IGpvYiB3aGV0aGVyIHRvIHJlc3VtZSBvciBub3QpCiAgICAgdm9pZCBzZW5kUmVzdW1lQW5zd2Vy KCBib29sIHJlc3VtZSApOwogCisgICAgLyoqCisgICAgICogU2VuZCBjb25maWd1cmF0aW9uIHRv IHNsYXZlCisgICAgICovCisgICB2b2lkIHNlbmRDb25maWd1cmF0aW9uKGNvbnN0IE1ldGFEYXRh ICYpOworCisgICAvKioKKyAgICAqIEVtaXQgYSBuZWVkQ29uZmlndXJhdGlvbiBzaWduYWwsIGNh bGxlZCBmcm9tIHNjaGVkdWxlciBmb3IgImluaXQiIAorICAgICogYW5kICJzdGFydCIgZ3JvdXBz LgorICAgICovCisgICB2b2lkIGVtaXROZWVkQ29uZmlndXJhdGlvbihjb25zdCBNZXRhRGF0YSAm ZCkgeyBlbWl0IG5lZWRDb25maWd1cmF0aW9uKGQpOyB9CisKIHNpZ25hbHM6CiAgICAgLy8vLy8v Ly8vLy8KICAgICAvLyBNZXNzYWdlcyBzZW50IGJ5IHRoZSBzbGF2ZQpAQCAtMTU0LDYgKzE2Nyw3 IEBAIHNpZ25hbHM6CiAgICAgdm9pZCBzdGF0RW50cnkoIGNvbnN0IEtJTzo6VURTRW50cnkmICk7 CiAgICAgdm9pZCBuZWVkU3ViVVJMRGF0YSgpOwogICAgIHZvaWQgbmVlZFByb2dyZXNzSWQoKTsK KyAgICB2b2lkIG5lZWRDb25maWd1cmF0aW9uKGNvbnN0IEtJTzo6TWV0YURhdGEgJik7CiAKICAg ICB2b2lkIGNhblJlc3VtZSggdW5zaWduZWQgbG9uZyApIDsKIAo= --------------Boundary-00=_IRG0OY53YBDGNWLY8S61-- >> Visit http://master.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<