ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggYjRmNTg2OS4uMzQ1ZDg4ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDE5CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDIwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEwMywyOSArMTAzLDI2IEBACiAtICAgQWRkIFNQRUxMQ0hFQ0tFUiwgd2l0aCBzdXBwb3J0IGZvciBtYW55IGxhbmd1YWdlcy4KICAgICAtIFVzZSAiZW5nc3BjaGsiIGZyb20gQ2hhcmxlcyBDYW1wYmVsbCBmb3IgaWRlYXMuCiAgICAgLSBTcGVsbCBjaGVja2luZyBjb2RlIHRvZG8nczoKLQktIENhbiBoYXZlIHByZWZpeGVzIHdpdGggYWRkc3RyaW5nIGFuZCBzdWZmaXhlcyB3aXRoIGxlYWRzdHJpbmcuICBVc2UKLQkgIHNlcGFyYXRlIGJhc2ljIHdvcmQgZm9yIHRoaXMsIGxpa2UgZm9yIGRpZmZlcmVudCBjYXBzPwogCS0gVmVyaWZ5IEZyZW5jaCBzcGVsbCBjaGVja2luZyB3b3JrcyBlZmZpY2llbnRseS4KLQktIHVzZSBCV0ZfQUREUyBhbmQgQldGX0FERFNNIGZvciBtb3JlIHRoYW4gMjU2LCBvbmx5IG9uZSBieXRlIGZvciBjb3VudC4KIAktIEltcGxlbWVudCB1c2VyIGFuZCBwcm9qZWN0IHdvcmQgbGlzdHMuICBDb21tYW5kcyB0byBhZGQgd29yZHMgYW5kIHRvCiAJICBtYXJrIHdvcmRzIGFzIHdyb25nLgogCS0gQ2FzZSBmb2xkaW5nIG9ubHkgd29ya3Mgd2hlbiBsb2NhbGUgaXMgc2V0IHByb3Blcmx5LgogCSAgRS5nLiwgd2hlbiBDIGxvY2FsZSBpcyBhY3RpdmUgdGhlbiAnZW5jJyBpcyAibGF0aW4xIiBidXQgxW5nc3Ry9m0KIAkgIGlzbid0IHNlZW4gYXMgYSBPTkVDQVAuCiAJICBVc2Ugb3VyIG93biBjaGFyYWN0ZXIgdGFibGVzIGZvciBlbmNvZGluZ3MgdXNlZCBpbiBzcGVsbCBmaWxlcz8KLQkgIFVzZSBpc3d1cHBlcigpIGlmIHBvc3NpYmxlPworCSAgVXNlIGlzd3VwcGVyKCkgaWYgcG9zc2libGU/ICBTYW1lIGxvY2FsZS8nZW5jb2RpbmcnIHByb2JsZW1zLgogCSAgUHV0IHRoZSBjaGFyYWN0ZXIgdGFibGVzIGluIHRoZSAuYWZmIGZpbGU/CiAJLSBJbXBsZW1lbnQgPSBmbGFnIGluIC5kaWM6IEtFRVBDQVNFIGZvciBsb3dlciBjYXNlIHdvcmQuCiAJICAgICdzIG1vcmdlbnMvPSAgZG9lcyBub3QgbWF0Y2ggJ1MgbW9yZ2VucwogCS0gSW1wbGVtZW50IGNvbXBvdW5kIHdvcmRzPwotCS0gcmVtb3ZlIGZ3X3ByZWZpeCBhbmQgZndfc3VmZml4LCB1c2UgZndfbGVuICh3b3JkIGxlbmd0aCkgYW5kIHB1dAotCSAgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzIHJpZ2h0IGFmdGVyIGl0LgogCS0gTWFrZSAiZW4tcmFyZSIgc3BlbGwgZmlsZS4KIAkgIENvbnZlbnRpb246IHVzZSBlbl9VUyAobGFuZ3VhZ2VfcmVnaW9uKSBhbmQgZW4tcmFyZSAobGFuZ3VhZ2UtZmllbGQpCiAgICAgICAgICAgQWRkIGhsIGdyb3VwcyB0byAnc3BlbGxsYW5nJz8KIAkgICAgOnNldCBzcGVsbGxhbmc9ZW5fdXMsZW4tcmFyZS9TcGVsbFJhcmUsZW4tbWF0aC9TcGVsbE1hdGgKLQktIFBvbGlzaDogQW5pbyBhbmQgSGFuaW8gYXJlIHdyb25nIHdvcmRzLCBldmVuIHRob3VnaCBNeXNwZWxsIGFsbG93cwotCSAgdGhlbS4gIFByb2JsZW0gd2l0aCBub3QgaWdub3JpbmcgY2FzZSBpbiBjb25kaXRpb25zLgorCS0gSG93IGFib3V0IG1ha2luZyBzdWdnZXN0aW9ucz8gIFVzZSBhbiBleHRlcm5hbCBwcm9ncmFtIGxpa2UgYXNwZWxsPworCSAgT3IgaW5jbHVkZSB0aGUgbXlzcGVsbCBzdWdnZXN0aW9uIGNvZGUgaW4gVmltPworCS0gU29tZSB3b3JkIGxpc3RzIGFyZSBpbmVmZmljaWVudC4gIFJlbW92ZSBhZmZpeGVzIGZyb20gYSB3b3JkIHdoZW4gaXQKKwkgIHJlc3VsdHMgaW4gYW5vdGhlciBiYXNpYyB3b3JkLgogICAgIC0gUmVmZXJlbmNlcyBNeVNwZWxsIGxpYnJhcnkgKGluIE9wZW5PZmZpY2Uub3JnKS4KIAlodHRwOi8vc3BlbGxjaGVja2VyLm1vemRldi5vcmcvc291cmNlLmh0bWwKIAlodHRwOi8vd2hpdGVib2FyZC5vcGVub2ZmaWNlLm9yZy9zb3VyY2UvYnJvd3NlL3doaXRlYm9hcmQvbGluZ3Vjb21wb25lbnQvc291cmNlL3NwZWxsY2hlY2svbXlzcGVsbC8KQEAgLTEzOCwxNyArMTM1LDEyIEBACiAJYWRkIHdvcmQgdG8gcHJpdmF0ZSBkaWN0OiB3cm9uZyBhbmQgT0sgKGluIHBvcHVwIG1lbnUgZm9yIGV2aW0pCiAJICAgIDpzcGVsbCBnb29kIDx3b3JkPgkgICAgemcKIAkgICAgOnNwZWxsIHdyb25nIDx3b3JkPgkgICAgencKLQlbcyAgbW92ZSB0byBwcmV2aW91cyBzcGVsbCBlcnJvciAgW1MgYWxzbyByYXJlIHdvcmQKLQldcyAgbW92ZSB0byBuZXh0IHNwZWxsIGVycm9yICAgICAgXVMgYWxzbyByYXJlIHdvcmQKLQkgICAgKG9ubHkgIl1zIiBpcyBjdXJyZW50bHkgaW1wbGVtZW50ZWQpCi0JICAgIE1ha2UgdGhpcyB3b3JrIGxpa2UgZGlzcGxheWluZywgY2hlY2sgQFNwZWxsIGluIHN5bnRheC4KLQkgICAgU3VwcG9ydCBhIGNvdW50LgogICAgIC0gVXBkYXRlIG9wdGlvbiB3aW5kb3cgZm9yICdzcGVsbCcgYW5kICdzcGVsbGxhbmcnLgotICAgIC0gVXNlIGFuIGV4dGVybmFsIHByb2dyYW0gbGlrZSBhc3BlbGwgZm9yIHN1Z2dlc3Rpb25zIHRvIGNvcnJlY3QgdGhlCi0gICAgICBzcGVsbGluZz8gIE9yIGluY2x1ZGUgdGhlIG15c3BlbGwgc3VnZ2VzdGlvbiBjb2RlIGluIFZpbT8KICAgICAtIERpc3RyaWJ1dGlvbjogTmVlZCB3b3JkbGlzdHMgZm9yIG1hbnkgbGFuZ3VhZ2VzOyAibGFuZ3VhZ2UgcGFjayIKKyAgICAgIFB1dCB0aGVtIG9uIHRoZSBmdHAgc2l0ZSwgcmVhZHkgdG8gZG93bmxvYWQuICBJbmNsdWRlIFJFQURNRSBmb3IKKyAgICAgIGNvcHlyaWdodHMuCiAgICAgLSBXb3JrIHRvZ2V0aGVyIHdpdGggT3Blbk9mZmljZS5vcmcgdG8gdXBkYXRlIHRoZSB3b3JkbGlzdHMuICAoQWRyaQotICAgICAgVmVyaG9lZiwgQWFkIE5hbGVzKQorICAgICAgVmVyaG9lZiwgQWFkIE5hbGVzKSAgU2V0dXAgdmltLXNwZWxsIG1haWxsaXN0PwogICAgIC0gU3VwcG9ydCBmb3IgYXBwcm94aW1hdGUtcmVnZXhwcyB3aWxsIGhlbHAgd2l0aCBmaW5kaW5nIHNpbWlsYXIgd29yZHMKICAgICAgIChhZ3JlcCBodHRwOi8vd3d3LnRncmllcy5kZS9hZ3JlcC8pLgogICAgIC0gQ2hhcmxlcyBDYW1wYmVsbCBhc2tzIGZvciBtZXRob2QgdG8gYWRkICJjb250YWluZWQiIGdyb3VwcyB0bwpkaWZmIC0tZ2l0IGEvc3JjL2V2YWwuYyBiL3NyYy9ldmFsLmMKaW5kZXggNTMxMWU4ZS4uZWRjYjJmYSAxMDA2NDQKLS0tIGEvc3JjL2V2YWwuYworKysgYi9zcmMvZXZhbC5jCkBAIC0xMjk5Niw3ICsxMjk5Niw3IEBACiB9CiAKIC8qCi0gKiAic3luSUQobGluZSwgY29sLCB0cmFucykiIGZ1bmN0aW9uCisgKiAic3luSUQobG51bSwgY29sLCB0cmFucykiIGZ1bmN0aW9uCiAgKi8KIC8qQVJHU1VTRUQqLwogICAgIHN0YXRpYyB2b2lkCkBAIC0xMzAwNiwxNyArMTMwMDYsMTcgQEAKIHsKICAgICBpbnQJCWlkID0gMDsKICNpZmRlZiBGRUFUX1NZTl9ITAotICAgIGxvbmcJbGluZTsKKyAgICBsb25nCWxudW07CiAgICAgbG9uZwljb2w7CiAgICAgaW50CQl0cmFuczsKIAotICAgIGxpbmUgPSBnZXRfdHZfbG51bShhcmd2YXJzKTsKKyAgICBsbnVtID0gZ2V0X3R2X2xudW0oYXJndmFycyk7CiAgICAgY29sID0gZ2V0X3R2X251bWJlcigmYXJndmFyc1sxXSkgLSAxOwogICAgIHRyYW5zID0gZ2V0X3R2X251bWJlcigmYXJndmFyc1syXSk7CiAKLSAgICBpZiAobGluZSA+PSAxICYmIGxpbmUgPD0gY3VyYnVmLT5iX21sLm1sX2xpbmVfY291bnQKLQkgICAgJiYgY29sID49IDAgJiYgY29sIDwgKGxvbmcpU1RSTEVOKG1sX2dldChsaW5lKSkpCi0JaWQgPSBzeW5fZ2V0X2lkKGxpbmUsIGNvbCwgdHJhbnMpOworICAgIGlmIChsbnVtID49IDEgJiYgbG51bSA8PSBjdXJidWYtPmJfbWwubWxfbGluZV9jb3VudAorCSAgICAmJiBjb2wgPj0gMCAmJiBjb2wgPCAobG9uZylTVFJMRU4obWxfZ2V0KGxudW0pKSkKKwlpZCA9IHN5bl9nZXRfaWQobG51bSwgKGNvbG5yX1QpY29sLCB0cmFucywgTlVMTCk7CiAjZW5kaWYKIAogICAgIHJldHR2LT52dmFsLnZfbnVtYmVyID0gaWQ7Cg==