Name: series-workflowbvk5q Phase: Failed StartedAt: 2026-08-26 08:47:09 +0000 UTC FinishedAt: 2026-08-26 09:09:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbvk5q[0] Phase: Succeeded StartedAt: 2026-08-26 08:47:09 +0000 UTC FinishedAt: 2026-08-26 09:09:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbvk5q[0].run-triage Phase: Succeeded StartedAt: 2026-08-26 08:47:09 +0000 UTC FinishedAt: 2026-08-26 09:09:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCYjMzk7b3ZlcnJpZGVuJiMzOTsgdG8gJiMzOTtvdmVycmlkZGVuJiMzOTspIGluIGNvZGUgY29tbWVudHMgYWNyb3NzIHZhcmlvdXMgZHJpdmVycy4gVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDQyMGFlYzQ0MWQ5ODVhMThkMjM3ODY5Mzg0ZDVjN2RkODgzOTQ5ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgQXVnIDI2IDA5OjA4OjIyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbmluZGV4IDMzYjUxMzZmN2NlMzkuLjc1YmRhZDIyYmY2OTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMwL2Rpc3BsYXlfbW9kZV92YmFfMzAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbkBAIC0xODA1LDcgJiM0MzsxODA1LDcgQEAgc3RhdGljIHZvaWQgRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5cbiBcdHYtXHUwMDNlRElTUENMS1dpdGhSYW1waW5nID0gMDtcbiBcdHYtXHUwMDNlRElTUENMS1dpdGhvdXRSYW1waW5nID0gMDtcbiBcdHYtXHUwMDNlR2xvYmFsRFBQQ0xLID0gMC4wO1xuLVx0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGVuICovXG4mIzQzO1x0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xuIFx0di1cdTAwM2VJZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVt2LVx1MDAzZVZvbHRhZ2VMZXZlbF1bdi1cdTAwM2VtYXhNcGNDb21iXSA9IGRtbF9taW4zKFxuIFx0XHRcdHYtXHUwMDNlUmV0dXJuQnVzV2lkdGggKiB2LVx1MDAzZURDRkNMSyxcbiBcdFx0XHR2LVx1MDAzZURSQU1TcGVlZFBlclN0YXRlW3YtXHUwMDNlVm9sdGFnZUxldmVsXSAqIHYtXHUwMDNlTnVtYmVyT2ZDaGFubmVscyAqIHYtXHUwMDNlRFJBTUNoYW5uZWxXaWR0aCxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMxL2Rpc3BsYXlfbW9kZV92YmFfMzEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXG5pbmRleCA4MDY0YzRiM2ZkMjU5Li4zZjYyZWE0OTM3ODczIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXG5AQCAtMjA0NSw3ICYjNDM7MjA0NSw3IEBAIHN0YXRpYyB2b2lkIERJU1BDTEtEUFBDTEtEQ0ZDTEtEZWVwU2xlZXBQcmVmZXRjaFBhcmFtZXRlcnNXYXRlcm1hcmtzQW5kUGVyZm9ybWFuXG4gXHR2LVx1MDAzZURJU1BDTEtXaXRoUmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZURJU1BDTEtXaXRob3V0UmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZUdsb2JhbERQUENMSyA9IDAuMDtcbi1cdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRlbiAqL1xuJiM0MztcdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi9cbiBcdHtcbiBcdGRvdWJsZSBJZGVhbEZhYnJpY0FuZFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZSA9IGRtbF9taW4oXG4gXHRcdFx0di1cdTAwM2VSZXR1cm5CdXNXaWR0aCAqIHYtXHUwMDNlRENGQ0xLU3RhdGVbdi1cdTAwM2VWb2x0YWdlTGV2ZWxdW3YtXHUwMDNlbWF4TXBjQ29tYl0sXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcbmluZGV4IDE2OTUxYTk1NTBmMjUuLmQzZmU2ZTAyNDg5MTggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jXG5AQCAtMTA4LDcgJiM0MzsxMDgsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspXG4gXHRcdFx0LyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgVHJhdmlzXG4gXHRcdFx0ICogZm9yIHRoZSBjYXNlIHdoZW4gZXh0ZXJuYWwgY2hpcCBkb2VzIG5vdFxuIFx0XHRcdCAqIHByb3ZpZGUgc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXJcbi1cdFx0XHQgKiBzY2hlbWUgd2lsbCAgYmUgb3ZlcnJpZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nXG4mIzQzO1x0XHRcdCAqIHNjaGVtZSB3aWxsICBiZSBvdmVycmlkZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nXG4gXHRcdFx0ICogRW5jb2RlciBmZWF0dXJlc1xuIFx0XHRcdCAqL1xuIFx0XHRcdGlmIChzdHJuY21wKFxuQEAgLTEyNCw3ICYjNDM7MTI0LDcgQEAgZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKVxuIFx0XHRcdC8qIGFsdGVybmF0ZSBzY3JhbWJsZXIgcmVzZXQgaXMgcmVxdWlyZWQgZm9yIE5VVE1FR1xuIFx0XHRcdCAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3QgcHJvdmlkZVxuIFx0XHRcdCAqIHNpbmsgZGV2aWNlIGlkLCBhbHRlcm5hdGUgc2NyYW1ibGVyIHNjaGVtZSB3aWxsXG4tXHRcdFx0ICogYmUgb3ZlcnJpZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nIEVuY29kZXIgZmVhdHVyZVxuJiM0MztcdFx0XHQgKiBiZSBvdmVycmlkZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nIEVuY29kZXIgZmVhdHVyZVxuIFx0XHRcdCAqL1xuIFx0XHRcdGlmIChzdHJuY21wKGxpbmstXHUwMDNlZHBjZF9jYXBzLmJyYW5jaF9kZXZfbmFtZSxcbiBcdFx0XHRcdERQX1ZHQV9MVkRTX0NPTlZFUlRFUl9JRF8zLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcbmluZGV4IDIwNDM3NWYxZWZmODYuLjU4N2QyNmM3NDJjZDUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcbkBAIC01ODQsNyAmIzQzOzU4NCw3IEBAIHN0YXRpYyBib29sIGRtdWJfc3J2X2h3X3NldHVwKHN0cnVjdCBkbXViX3NydiAqZG11YiwgZW51bSBkbXViX2FzaWMgYXNpYylcbiBcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0Lyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGVuICovXG4mIzQzO1x0Lyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGRlbiAqL1xuIFx0aWYgKGRtdWItXHUwMDNlaW5ib3hfdHlwZSA9PSBETVVCX0NNRF9JTlRFUkZBQ0VfREVGQVVMVCkge1xuIFx0XHRpZiAoZGVmYXVsdF9pbmJveF90eXBlICE9IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7XG4gXHRcdFx0LyogdXNlIGRlZmF1bHQgaW5ib3ggdHlwZSBhcyBzcGVjaWZpZWQgYnkgRENOIHJldiAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHkgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5XG5pbmRleCBkM2I1NmE5ZDg0ZmI3Li5kNmJmYjdiN2Q3YjM5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxuQEAgLTU3Niw3ICYjNDM7NTc2LDcgQEAgY2xhc3MgUGFyc2VyKG9iamVjdCk6XG4gICAgICAgICAgICAgcmFpc2Ugc2VsZi5lcnJvcihlKVxuIFxuICAgICBkZWYgcGFyc2VfdmFyc2V0KHNlbGYsIGF0dHJzKTpcbi0gICAgICAgICMgSW5oZXJpdCB0aGUgdmFyc2V0IGZyb20gdGhlIGVuY2xvc2luZyBkb21haW4gaWYgbm90IG92ZXJyaWRlbjpcbiYjNDM7ICAgICAgICAjIEluaGVyaXQgdGhlIHZhcnNldCBmcm9tIHRoZSBlbmNsb3NpbmcgZG9tYWluIGlmIG5vdCBvdmVycmlkZGVuOlxuICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldFxuICAgICAgICAgaWYgXCYjMzQ7dmFyc2V0XCYjMzQ7IGluIGF0dHJzOlxuICAgICAgICAgICAgIHZhcnNldCA9IHNlbGYuZW51bXNbYXR0cnNbXCYjMzQ7dmFyc2V0XCYjMzQ7XV1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jXG5pbmRleCAzODAzMmJiOTU4MjYyLi4xMGNkNjA2ZDAxYjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jXG5AQCAtMzIzLDcgJiM0MzszMjMsNyBAQCBnZXRfZnBfc3RyYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IG52YmlvcyAqYmlvcylcbiBcdC8qXG4gXHQgKiBUaGUgZnAgc3RyYXAgaXMgbm9ybWFsbHkgZGljdGF0ZWQgYnkgdGhlIFwmIzM0O1VzZXIgU3RyYXBcJiMzNDsgaW5cbiBcdCAqIFBFWFRERVZfQk9PVF8wWzIwOjE2XSwgYnV0IG9uIEJNUCBjYXJkcyB3aGVuIGJpdCAyIG9mIHRoZVxuLVx0ICogSW50ZXJuYWxfRmxhZ3Mgc3RydWN0IGF0IDB4NDggaXMgc2V0LCB0aGUgdXNlciBzdHJhcCBnZXRzIG92ZXJyaWRlblxuJiM0MztcdCAqIEludGVybmFsX0ZsYWdzIHN0cnVjdCBhdCAweDQ4IGlzIHNldCwgdGhlIHVzZXIgc3RyYXAgZ2V0cyBvdmVycmlkZGVuXG4gXHQgKiBieSB0aGUgUENJIHN1YnN5c3RlbSBJRCBkdXJpbmcgUE9TVCwgYnV0IG5vdCBiZWZvcmUgdGhlIHByZXZpb3VzIHVzZXJcbiBcdCAqIHN0cmFwIGhhcyBiZWVuIGNvbW1pdHRlZCB0byBDUjU4IGZvciBDUjU3PTB4ZiBvbiBoZWFkIEEsIHdoaWNoIG1heSBiZVxuIFx0ICogcmVhZCBhbmQgdXNlZCBpbnN0ZWFkXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuYyBiL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmNcbmluZGV4IGJhOGM2OGFlNDU5NTMuLjVhY2NkNDYzNTk5Y2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXG5AQCAtNDc1LDcgJiM0Mzs0NzUsNyBAQCBhYml0dWd1cnVfZGV0ZWN0X2JhbmsxX3NlbnNvcl90eXBlKHN0cnVjdCBhYml0dWd1cnVfZGF0YSAqZGF0YSxcbiBcdHU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107XG4gXHRpbnQgaSwgcmV0ID0gLUVOT0RFVjsgLyogZXJyb3IgaXMgdGhlIG1vc3QgY29tbW9uIHVzZWQgcmV0dmFsIDp8ICovXG4gXG4tXHQvKiBJZiBvdmVycmlkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi9cbiYjNDM7XHQvKiBJZiBvdmVycmlkZGVuIGJ5IHRoZSB1c2VyIHJldHVybiB0aGUgdXNlciBzZWxlY3RlZCB0eXBlICovXG4gXHRpZiAoYmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdIFx1MDAzZT0gQUJJVF9VR1VSVV9JTl9TRU5TT1IgXHUwMDI2XHUwMDI2XG4gXHRcdFx0YmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdIFx1MDAzYz0gQUJJVF9VR1VSVV9OQykge1xuIFx0XHRBQklUX1VHVVJVX0RFQlVHKDIsIFwmIzM0O2Fzc3VtaW5nIHNlbnNvciB0eXBlICVkIGZvciBiYW5rMSBzZW5zb3IgXCYjMzQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG5pbmRleCBlNzYwZDEzZWUzMjVlLi5hMDJiYjJmZWU4NzQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmNcbkBAIC04Niw3ICYjNDM7ODYsNyBAQCBNT0RVTEVfQUxJQVMoXCYjMzQ7bW1jOmJsb2NrXCYjMzQ7KTtcbiBzdGF0aWMgREVGSU5FX01VVEVYKGJsb2NrX211dGV4KTtcbiBcbiAvKlxuLSAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZW4gYnkgbW9kdWxlXG4mIzQzOyAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IG1vZHVsZVxuICAqIG9yIGJvb3Rhcmcgb3B0aW9ucy5cbiAgKi9cbiBzdGF0aWMgaW50IHBlcmRldl9taW5vcnMgPSBDT05GSUdfTU1DX0JMT0NLX01JTk9SUztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmNcbmluZGV4IGVhMzEwMDU3ZmUzYWYuLmJjMzZkNzU3OGNlMjAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xuQEAgLTM3NDMsNyAmIzQzOzM3NDMsNyBAQCBzdGF0aWMgdm9pZCBibngyeF93YXJwY29yZV9lbmFibGVfQU5fS1Ioc3RydWN0IGJueDJ4X3BoeSAqcGh5LFxuIFx0XHR7TURJT19XQ19ERVZBRCwgTURJT19XQ19SRUdfQ0w3Ml9VU0VSQjBfQ0w3Ml9UWF9GSVJfVEFQLCAwfSxcbiBcdH07XG4gXHREUChORVRJRl9NU0dfTElOSywgXCYjMzQ7RW5hYmxlIEF1dG8gTmVnb3RpYXRpb24gZm9yIEtSXFxuXCYjMzQ7KTtcbi1cdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZW4gYnkgMTBHIGZvcmNlICovXG4mIzQzO1x0LyogU2V0IHRvIGRlZmF1bHQgcmVnaXN0ZXJzIHRoYXQgbWF5IGJlIG92ZXJyaWRkZW4gYnkgMTBHIGZvcmNlICovXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHJlZ19zZXQpOyBpJiM0MzsmIzQzOylcbiBcdFx0Ym54MnhfY2w0NV93cml0ZShicCwgcGh5LCByZWdfc2V0W2ldLmRldmFkLCByZWdfc2V0W2ldLnJlZyxcbiBcdFx0XHRcdCByZWdfc2V0W2ldLnZhbCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jXG5pbmRleCAzMWZhYjI0MTU3NDMyLi5iNDM3NGNhMWQ2NTMwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcbkBAIC0yMTk0LDcgJiM0MzsyMTk0LDcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqYmFyMl9hZGRyZXNzKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLFxuICAqXHRAcnNwcTogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSYjMzk7cyBSZXNwb25zZSBRdWV1ZSB0byBiZSBmaWxsZWQgaW5cbiAgKlx0QGlxYXN5bmNoOiBpZiAwLCBhIG5vcm1hbCByc3BxOyBpZiAxLCBhbiBhc3luY2hyb25vdXMgZXZlbnQgcXVldWVcbiAgKlx0QGRldjogdGhlIG5ldHdvcmsgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3IHJzcHFcbi0gKlx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZW4gaW4gTVNJIG1vZGUpXG4mIzQzOyAqXHRAaW50cl9kZXN0OiBNU0ktWCB2ZWN0b3IgaW5kZXggKG92ZXJyaWRkZW4gaW4gTVNJIG1vZGUpXG4gICpcdEBmbDogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSYjMzk7cyBGcmVlIExpc3QgdG8gYmUgZmlsbGVkIGluXG4gICpcdEBobmQ6IHRoZSBpbnRlcnJ1cHQgaGFuZGxlciB0byBpbnZva2UgZm9yIHRoZSByc3BxXG4gICovXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXG5pbmRleCBlMmQ4YzU4ZGVlZjAzLi5jMWQ1ODgzMzc3NTE2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmNcbkBAIC0xMzExLDcgJiM0MzsxMzExLDcgQEAgaW50IG1lbWFjX2luaXRpYWxpemF0aW9uKHN0cnVjdCBtYWNfZGV2aWNlICptYWNfZGV2LFxuIFxuIFx0LyogTW9zdCBib2FyZHMgc2hvdWxkIHVzZSBNTE9fQU5fSU5CQU5ELCBidXQgZXhpc3RpbmcgYm9hcmRzIGRvbiYjMzk7dCBoYXZlXG4gXHQgKiBhIG1hbmFnZWQgcHJvcGVydHkuIERlZmF1bHQgdG8gTUxPX0FOX0lOQkFORCByYXRoZXIgdGhhbiBNTE9fQU5fUEhZLlxuLVx0ICogUGh5bGluayB3aWxsIGFsbG93IHRoaXMgdG8gYmUgb3ZlcnJpZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xuJiM0MztcdCAqIFBoeWxpbmsgd2lsbCBhbGxvdyB0aGlzIHRvIGJlIG92ZXJyaWRkZW4gYnkgYSBmaXhlZCBsaW5rLiBXZSBuZWVkIHRvXG4gXHQgKiBiZSBjYXJlZnVsIGFuZCBub3QgZW5hYmxlIHRoaXMgaWYgd2UgYXJlIHVzaW5nIE1JSSBvciBSR01JSSwgc2luY2VcbiBcdCAqIHRob3NlIGNvbmZpZ3VyYXRpb25zIG1vZGVzIGRvbiYjMzk7dCB1c2UgaW4tYmFuZCBhdXRvbmVnb3RpYXRpb24uXG4gXHQgKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbmluZGV4IGI5ODY2ZTM4OWU2ZDIuLjlhZGZhMDU4NTEyZjMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX3Bjb2wuaFxuQEAgLTEzNTQ3LDcgJiM0MzsxMzU0Nyw3IEBAXG4gICogYW4gYW5jZXN0b3Igb2YgdGhlIGN1cnJlbnQgdXNlciAoc2VlIE1DX0NNRF9TRVRfVklfVVNFUikuIE5vdGUgdGhhdCBMTFxuICAqIHF1ZXVlcyByZXF1aXJlIHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVyIGFsbG9jYXRpb24gYnV0IGJlZm9yZSBpbml0aWFsaXNhdGlvblxuICAqIG9mIHRoZSBxdWV1ZS4gVExQIG9wdGlvbnMgb2YgYSBxdWV1ZSBhcmUgZml4ZWQgYWZ0ZXIgcXVldWUgaXMgaW5pdGlhbGlzZWQsXG4tICogd2l0aCB0aGUgdmFsdWVzIHNldCB0byBjdXJyZW50IGdsb2JhbCB2YWx1ZSBvciB0aGV5IGNhbiBiZSBvdmVycmlkZW4gdXNpbmdcbiYjNDM7ICogd2l0aCB0aGUgdmFsdWVzIHNldCB0byBjdXJyZW50IGdsb2JhbCB2YWx1ZSBvciB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIHVzaW5nXG4gICogdGhpcyBjb21tYW5kLiBBdCBMTCBxdWV1ZSBhbGxvY2F0aW9uLCBhbGwgb3ZlcnJpZGVzIGFyZSBjbGVhcmVkLlxuICAqL1xuICNkZWZpbmUgTUNfQ01EX1NFVF9WSV9UTFBfUFJPQ0VTU0lORyAweGIxXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uYyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmNcbmluZGV4IGZlYjE3MDdmZWI3ZTIuLmM5NDcwZjgwNjI2YjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXG5AQCAtMTczLDcgJiM0MzsxNzMsNyBAQCBzdGF0aWMgYWRhcHRlcl90YWdfaW5mb190IGFpYzc5eHhfdGFnX2luZm9bXSA9XG4gXG4gLypcbiAgKiBUaGUgSS9PIGNlbGwgb24gdGhlIGNoaXAgaXMgdmVyeSBjb25maWd1cmFibGUgaW4gcmVzcGVjdCB0byBpdHMgYW5hbG9nXG4tICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZW4gd2l0aFxuJiM0MzsgKiBjaGFyYWN0ZXJpc3RpY3MuICBTZXQgdGhlIGRlZmF1bHRzIGhlcmU7IHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aFxuICAqIHRoZSBwcm9wZXIgaW5zbW9kIHBhcmFtZXRlcnMuXG4gICovXG4gc3RydWN0IGFoZF9saW51eF9pb2NlbGxfb3B0c1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaCBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaFxuaW5kZXggMTFmNWRjMjlhYTU5Ny4uODc5MGYxMzE1Zjc1NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXG5AQCAtMTI4LDcgJiM0MzsxMjgsNyBAQCBzdHJ1Y3Qgc3ltX2RyaXZlcl9zZXR1cCB7XG4gLypcbiAgKiAgSW5pdGlhbCBzZXR1cC5cbiAgKlxuLSAqICBDYW4gYmUgb3ZlcnJpZGVuIGF0IHN0YXJ0dXAgYnkgYSBjb21tYW5kIGxpbmUuXG4mIzQzOyAqICBDYW4gYmUgb3ZlcnJpZGRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxuICAqL1xuICNkZWZpbmUgU1lNX0xJTlVYX0RSSVZFUl9TRVRVUFx0e1x0XHRcdFx0XFxcbiBcdC5tYXhfdGFnXHQ9IENPTkZJR19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1MsXHRcXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jIGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbmluZGV4IGEzMzU1MTQ3ZjVkZTUuLjkwZjM5OTBlMDA2MGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbkBAIC0xMjQ0LDcgJiM0MzsxMjQ0LDcgQEAgc3RhdGljIGludCBvbWFwMl9tY3NwaV90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLFxuIFx0XHRvbWFwMl9tY3NwaV9zZXRfZmlmbyhzcGksIHQsIDApO1xuIFxuIG91dDpcbi1cdC8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRlbiAqL1xuJiM0MztcdC8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRkZW4gKi9cbiBcdGlmIChwYXJfb3ZlcnJpZGUpIHtcbiBcdFx0cGFyX292ZXJyaWRlID0gMDtcbiBcdFx0c3RhdHVzID0gb21hcDJfbWNzcGlfc2V0dXBfdHJhbnNmZXIoc3BpLCBOVUxMKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuY1xuaW5kZXggOWYwNTViYTc3NmM4MS4uNjUwMWY2ZTI2MTVhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcbkBAIC01OCw3ICYjNDM7NTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7XG4gXHQuYWNjZWwgPSBGQl9BQ0NFTF9OT05FLFxuIH07XG4gXG4tLyogZGVmYXVsdHMgd2hpY2ggYXJlIG5vcm1hbGx5IG92ZXJyaWRlbiBieSB1c2VyIHZhbHVlcyAqL1xuJiM0MzsvKiBkZWZhdWx0cyB3aGljaCBhcmUgbm9ybWFsbHkgb3ZlcnJpZGRlbiBieSB1c2VyIHZhbHVlcyAqL1xuIFxuIC8qIHZpZGVvIG1vZGUgKi9cbiBzdGF0aWMgY2hhciAqbW9kZV9vcHRpb247XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6MDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgZml4ZXMgYSB0eXBvICgmIzM5O292ZXJyaWRlbiYjMzk7IHRvICYjMzk7b3ZlcnJpZGRlbiYjMzk7KSBpbiBjb2RlIGNvbW1lbnRzIGFjcm9zcyB2YXJpb3VzIGRyaXZlcnMuIFRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQ0MjBhZWM0NDFkOTg1YTE4ZDIzNzg2OTM4NGQ1YzdkZDg4Mzk0OWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyAyNiAwOTowODoyMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmMKaW5kZXggMzNiNTEzNmY3Y2UzOS4uNzViZGFkMjJiZjY5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmMKQEAgLTE4MDUsNyAmIzQzOzE4MDUsNyBAQCBzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbgogCXYtJmd0O0RJU1BDTEtXaXRoUmFtcGluZyA9IDA7CiAJdi0mZ3Q7RElTUENMS1dpdGhvdXRSYW1waW5nID0gMDsKIAl2LSZndDtHbG9iYWxEUFBDTEsgPSAwLjA7Ci0JLyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGVuICovCiYjNDM7CS8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi8KIAl2LSZndDtJZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVt2LSZndDtWb2x0YWdlTGV2ZWxdW3YtJmd0O21heE1wY0NvbWJdID0gZG1sX21pbjMoCiAJCQl2LSZndDtSZXR1cm5CdXNXaWR0aCAqIHYtJmd0O0RDRkNMSywKIAkJCXYtJmd0O0RSQU1TcGVlZFBlclN0YXRlW3YtJmd0O1ZvbHRhZ2VMZXZlbF0gKiB2LSZndDtOdW1iZXJPZkNoYW5uZWxzICogdi0mZ3Q7RFJBTUNoYW5uZWxXaWR0aCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMKaW5kZXggODA2NGM0YjNmZDI1OS4uM2Y2MmVhNDkzNzg3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMKQEAgLTIwNDUsNyAmIzQzOzIwNDUsNyBAQCBzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbgogCXYtJmd0O0RJU1BDTEtXaXRoUmFtcGluZyA9IDA7CiAJdi0mZ3Q7RElTUENMS1dpdGhvdXRSYW1waW5nID0gMDsKIAl2LSZndDtHbG9iYWxEUFBDTEsgPSAwLjA7Ci0JLyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGVuICovCiYjNDM7CS8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi8KIAl7CiAJZG91YmxlIElkZWFsRmFicmljQW5kU0RQUG9ydEJhbmR3aWR0aFBlclN0YXRlID0gZG1sX21pbigKIAkJCXYtJmd0O1JldHVybkJ1c1dpZHRoICogdi0mZ3Q7RENGQ0xLU3RhdGVbdi0mZ3Q7Vm9sdGFnZUxldmVsXVt2LSZndDttYXhNcGNDb21iXSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jCmluZGV4IDE2OTUxYTk1NTBmMjUuLmQzZmU2ZTAyNDg5MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuYwpAQCAtMTA4LDcgJiM0MzsxMDgsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspCiAJCQkvKiBhbHRlcm5hdGUgc2NyYW1ibGVyIHJlc2V0IGlzIHJlcXVpcmVkIGZvciBUcmF2aXMKIAkJCSAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3QKIAkJCSAqIHByb3ZpZGUgc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXIKLQkJCSAqIHNjaGVtZSB3aWxsICBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcKJiM0MzsJCQkgKiBzY2hlbWUgd2lsbCAgYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZwogCQkJICogRW5jb2RlciBmZWF0dXJlcwogCQkJICovCiAJCQlpZiAoc3RybmNtcCgKQEAgLTEyNCw3ICYjNDM7MTI0LDcgQEAgZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKQogCQkJLyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgTlVUTUVHCiAJCQkgKiBmb3IgdGhlIGNhc2Ugd2hlbiBleHRlcm5hbCBjaGlwIGRvZXMgbm90IHByb3ZpZGUKIAkJCSAqIHNpbmsgZGV2aWNlIGlkLCBhbHRlcm5hdGUgc2NyYW1ibGVyIHNjaGVtZSB3aWxsCi0JCQkgKiBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlCiYjNDM7CQkJICogYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZyBFbmNvZGVyIGZlYXR1cmUKIAkJCSAqLwogCQkJaWYgKHN0cm5jbXAobGluay0mZ3Q7ZHBjZF9jYXBzLmJyYW5jaF9kZXZfbmFtZSwKIAkJCQlEUF9WR0FfTFZEU19DT05WRVJURVJfSURfMywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMKaW5kZXggMjA0Mzc1ZjFlZmY4Ni4uNTg3ZDI2Yzc0MmNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMKQEAgLTU4NCw3ICYjNDM7NTg0LDcgQEAgc3RhdGljIGJvb2wgZG11Yl9zcnZfaHdfc2V0dXAoc3RydWN0IGRtdWJfc3J2ICpkbXViLCBlbnVtIGRtdWJfYXNpYyBhc2ljKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JLyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGVuICovCiYjNDM7CS8qIHNldCBkZWZhdWx0IGluYm94IHR5cGUgaWYgbm90IG92ZXJyaWRkZW4gKi8KIAlpZiAoZG11Yi0mZ3Q7aW5ib3hfdHlwZSA9PSBETVVCX0NNRF9JTlRFUkZBQ0VfREVGQVVMVCkgewogCQlpZiAoZGVmYXVsdF9pbmJveF90eXBlICE9IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7CiAJCQkvKiB1c2UgZGVmYXVsdCBpbmJveCB0eXBlIGFzIHNwZWNpZmllZCBieSBEQ04gcmV2ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5IGIvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weQppbmRleCBkM2I1NmE5ZDg0ZmI3Li5kNmJmYjdiN2Q3YjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5CiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHkKQEAgLTU3Niw3ICYjNDM7NTc2LDcgQEAgY2xhc3MgUGFyc2VyKG9iamVjdCk6CiAgICAgICAgICAgICByYWlzZSBzZWxmLmVycm9yKGUpCiAKICAgICBkZWYgcGFyc2VfdmFyc2V0KHNlbGYsIGF0dHJzKToKLSAgICAgICAgIyBJbmhlcml0IHRoZSB2YXJzZXQgZnJvbSB0aGUgZW5jbG9zaW5nIGRvbWFpbiBpZiBub3Qgb3ZlcnJpZGVuOgomIzQzOyAgICAgICAgIyBJbmhlcml0IHRoZSB2YXJzZXQgZnJvbSB0aGUgZW5jbG9zaW5nIGRvbWFpbiBpZiBub3Qgb3ZlcnJpZGRlbjoKICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldAogICAgICAgICBpZiAmIzM0O3ZhcnNldCYjMzQ7IGluIGF0dHJzOgogICAgICAgICAgICAgdmFyc2V0ID0gc2VsZi5lbnVtc1thdHRyc1smIzM0O3ZhcnNldCYjMzQ7XV0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMKaW5kZXggMzgwMzJiYjk1ODI2Mi4uMTBjZDYwNmQwMWI5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMKQEAgLTMyMyw3ICYjNDM7MzIzLDcgQEAgZ2V0X2ZwX3N0cmFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBudmJpb3MgKmJpb3MpCiAJLyoKIAkgKiBUaGUgZnAgc3RyYXAgaXMgbm9ybWFsbHkgZGljdGF0ZWQgYnkgdGhlICYjMzQ7VXNlciBTdHJhcCYjMzQ7IGluCiAJICogUEVYVERFVl9CT09UXzBbMjA6MTZdLCBidXQgb24gQk1QIGNhcmRzIHdoZW4gYml0IDIgb2YgdGhlCi0JICogSW50ZXJuYWxfRmxhZ3Mgc3RydWN0IGF0IDB4NDggaXMgc2V0LCB0aGUgdXNlciBzdHJhcCBnZXRzIG92ZXJyaWRlbgomIzQzOwkgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGRlbgogCSAqIGJ5IHRoZSBQQ0kgc3Vic3lzdGVtIElEIGR1cmluZyBQT1NULCBidXQgbm90IGJlZm9yZSB0aGUgcHJldmlvdXMgdXNlcgogCSAqIHN0cmFwIGhhcyBiZWVuIGNvbW1pdHRlZCB0byBDUjU4IGZvciBDUjU3PTB4ZiBvbiBoZWFkIEEsIHdoaWNoIG1heSBiZQogCSAqIHJlYWQgYW5kIHVzZWQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuYyBiL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMKaW5kZXggYmE4YzY4YWU0NTk1My4uNWFjY2Q0NjM1OTljYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jCkBAIC00NzUsNyAmIzQzOzQ3NSw3IEBAIGFiaXR1Z3VydV9kZXRlY3RfYmFuazFfc2Vuc29yX3R5cGUoc3RydWN0IGFiaXR1Z3VydV9kYXRhICpkYXRhLAogCXU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107CiAJaW50IGksIHJldCA9IC1FTk9ERVY7IC8qIGVycm9yIGlzIHRoZSBtb3N0IGNvbW1vbiB1c2VkIHJldHZhbCA6fCAqLwogCi0JLyogSWYgb3ZlcnJpZGVuIGJ5IHRoZSB1c2VyIHJldHVybiB0aGUgdXNlciBzZWxlY3RlZCB0eXBlICovCiYjNDM7CS8qIElmIG92ZXJyaWRkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi8KIAlpZiAoYmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdICZndDs9IEFCSVRfVUdVUlVfSU5fU0VOU09SICZhbXA7JmFtcDsKIAkJCWJhbmsxX3R5cGVzW3NlbnNvcl9hZGRyXSAmbHQ7PSBBQklUX1VHVVJVX05DKSB7CiAJCUFCSVRfVUdVUlVfREVCVUcoMiwgJiMzNDthc3N1bWluZyBzZW5zb3IgdHlwZSAlZCBmb3IgYmFuazEgc2Vuc29yICYjMzQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMKaW5kZXggZTc2MGQxM2VlMzI1ZS4uYTAyYmIyZmVlODc0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suYwpAQCAtODYsNyAmIzQzOzg2LDcgQEAgTU9EVUxFX0FMSUFTKCYjMzQ7bW1jOmJsb2NrJiMzNDspOwogc3RhdGljIERFRklORV9NVVRFWChibG9ja19tdXRleCk7CiAKIC8qCi0gKiBUaGUgZGVmYXVsdHMgY29tZSBmcm9tIGNvbmZpZyBvcHRpb25zIGJ1dCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IG1vZHVsZQomIzQzOyAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IG1vZHVsZQogICogb3IgYm9vdGFyZyBvcHRpb25zLgogICovCiBzdGF0aWMgaW50IHBlcmRldl9taW5vcnMgPSBDT05GSUdfTU1DX0JMT0NLX01JTk9SUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYwppbmRleCBlYTMxMDA1N2ZlM2FmLi5iYzM2ZDc1NzhjZTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jCkBAIC0zNzQzLDcgJiM0MzszNzQzLDcgQEAgc3RhdGljIHZvaWQgYm54Mnhfd2FycGNvcmVfZW5hYmxlX0FOX0tSKHN0cnVjdCBibngyeF9waHkgKnBoeSwKIAkJe01ESU9fV0NfREVWQUQsIE1ESU9fV0NfUkVHX0NMNzJfVVNFUkIwX0NMNzJfVFhfRklSX1RBUCwgMH0sCiAJfTsKIAlEUChORVRJRl9NU0dfTElOSywgJiMzNDtFbmFibGUgQXV0byBOZWdvdGlhdGlvbiBmb3IgS1JcbiYjMzQ7KTsKLQkvKiBTZXQgdG8gZGVmYXVsdCByZWdpc3RlcnMgdGhhdCBtYXkgYmUgb3ZlcnJpZGVuIGJ5IDEwRyBmb3JjZSAqLwomIzQzOwkvKiBTZXQgdG8gZGVmYXVsdCByZWdpc3RlcnMgdGhhdCBtYXkgYmUgb3ZlcnJpZGRlbiBieSAxMEcgZm9yY2UgKi8KIAlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRShyZWdfc2V0KTsgaSYjNDM7JiM0MzspCiAJCWJueDJ4X2NsNDVfd3JpdGUoYnAsIHBoeSwgcmVnX3NldFtpXS5kZXZhZCwgcmVnX3NldFtpXS5yZWcsCiAJCQkJIHJlZ19zZXRbaV0udmFsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuYwppbmRleCAzMWZhYjI0MTU3NDMyLi5iNDM3NGNhMWQ2NTMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jCkBAIC0yMTk0LDcgJiM0MzsyMTk0LDcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqYmFyMl9hZGRyZXNzKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLAogICoJQHJzcHE6IHBvaW50ZXIgdG8gdGhlIG5ldyByeHEmIzM5O3MgUmVzcG9uc2UgUXVldWUgdG8gYmUgZmlsbGVkIGluCiAgKglAaXFhc3luY2g6IGlmIDAsIGEgbm9ybWFsIHJzcHE7IGlmIDEsIGFuIGFzeW5jaHJvbm91cyBldmVudCBxdWV1ZQogICoJQGRldjogdGhlIG5ldHdvcmsgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3IHJzcHEKLSAqCUBpbnRyX2Rlc3Q6IE1TSS1YIHZlY3RvciBpbmRleCAob3ZlcnJpZGVuIGluIE1TSSBtb2RlKQomIzQzOyAqCUBpbnRyX2Rlc3Q6IE1TSS1YIHZlY3RvciBpbmRleCAob3ZlcnJpZGRlbiBpbiBNU0kgbW9kZSkKICAqCUBmbDogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSYjMzk7cyBGcmVlIExpc3QgdG8gYmUgZmlsbGVkIGluCiAgKglAaG5kOiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgdG8gaW52b2tlIGZvciB0aGUgcnNwcQogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmMKaW5kZXggZTJkOGM1OGRlZWYwMy4uYzFkNTg4MzM3NzUxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuYwpAQCAtMTMxMSw3ICYjNDM7MTMxMSw3IEBAIGludCBtZW1hY19pbml0aWFsaXphdGlvbihzdHJ1Y3QgbWFjX2RldmljZSAqbWFjX2RldiwKIAogCS8qIE1vc3QgYm9hcmRzIHNob3VsZCB1c2UgTUxPX0FOX0lOQkFORCwgYnV0IGV4aXN0aW5nIGJvYXJkcyBkb24mIzM5O3QgaGF2ZQogCSAqIGEgbWFuYWdlZCBwcm9wZXJ0eS4gRGVmYXVsdCB0byBNTE9fQU5fSU5CQU5EIHJhdGhlciB0aGFuIE1MT19BTl9QSFkuCi0JICogUGh5bGluayB3aWxsIGFsbG93IHRoaXMgdG8gYmUgb3ZlcnJpZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0bwomIzQzOwkgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0bwogCSAqIGJlIGNhcmVmdWwgYW5kIG5vdCBlbmFibGUgdGhpcyBpZiB3ZSBhcmUgdXNpbmcgTUlJIG9yIFJHTUlJLCBzaW5jZQogCSAqIHRob3NlIGNvbmZpZ3VyYXRpb25zIG1vZGVzIGRvbiYjMzk7dCB1c2UgaW4tYmFuZCBhdXRvbmVnb3RpYXRpb24uCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmgKaW5kZXggYjk4NjZlMzg5ZTZkMi4uOWFkZmEwNTg1MTJmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfcGNvbC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX3Bjb2wuaApAQCAtMTM1NDcsNyAmIzQzOzEzNTQ3LDcgQEAKICAqIGFuIGFuY2VzdG9yIG9mIHRoZSBjdXJyZW50IHVzZXIgKHNlZSBNQ19DTURfU0VUX1ZJX1VTRVIpLiBOb3RlIHRoYXQgTEwKICAqIHF1ZXVlcyByZXF1aXJlIHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVyIGFsbG9jYXRpb24gYnV0IGJlZm9yZSBpbml0aWFsaXNhdGlvbgogICogb2YgdGhlIHF1ZXVlLiBUTFAgb3B0aW9ucyBvZiBhIHF1ZXVlIGFyZSBmaXhlZCBhZnRlciBxdWV1ZSBpcyBpbml0aWFsaXNlZCwKLSAqIHdpdGggdGhlIHZhbHVlcyBzZXQgdG8gY3VycmVudCBnbG9iYWwgdmFsdWUgb3IgdGhleSBjYW4gYmUgb3ZlcnJpZGVuIHVzaW5nCiYjNDM7ICogd2l0aCB0aGUgdmFsdWVzIHNldCB0byBjdXJyZW50IGdsb2JhbCB2YWx1ZSBvciB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIHVzaW5nCiAgKiB0aGlzIGNvbW1hbmQuIEF0IExMIHF1ZXVlIGFsbG9jYXRpb24sIGFsbCBvdmVycmlkZXMgYXJlIGNsZWFyZWQuCiAgKi8KICNkZWZpbmUgTUNfQ01EX1NFVF9WSV9UTFBfUFJPQ0VTU0lORyAweGIxCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uYwppbmRleCBmZWIxNzA3ZmViN2UyLi5jOTQ3MGY4MDYyNmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmMKQEAgLTE3Myw3ICYjNDM7MTczLDcgQEAgc3RhdGljIGFkYXB0ZXJfdGFnX2luZm9fdCBhaWM3OXh4X3RhZ19pbmZvW10gPQogCiAvKgogICogVGhlIEkvTyBjZWxsIG9uIHRoZSBjaGlwIGlzIHZlcnkgY29uZmlndXJhYmxlIGluIHJlc3BlY3QgdG8gaXRzIGFuYWxvZwotICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZW4gd2l0aAomIzQzOyAqIGNoYXJhY3RlcmlzdGljcy4gIFNldCB0aGUgZGVmYXVsdHMgaGVyZTsgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoCiAgKiB0aGUgcHJvcGVyIGluc21vZCBwYXJhbWV0ZXJzLgogICovCiBzdHJ1Y3QgYWhkX2xpbnV4X2lvY2VsbF9vcHRzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmggYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmgKaW5kZXggMTFmNWRjMjlhYTU5Ny4uODc5MGYxMzE1Zjc1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaApAQCAtMTI4LDcgJiM0MzsxMjgsNyBAQCBzdHJ1Y3Qgc3ltX2RyaXZlcl9zZXR1cCB7CiAvKgogICogIEluaXRpYWwgc2V0dXAuCiAgKgotICogIENhbiBiZSBvdmVycmlkZW4gYXQgc3RhcnR1cCBieSBhIGNvbW1hbmQgbGluZS4KJiM0MzsgKiAgQ2FuIGJlIG92ZXJyaWRkZW4gYXQgc3RhcnR1cCBieSBhIGNvbW1hbmQgbGluZS4KICAqLwogI2RlZmluZSBTWU1fTElOVVhfRFJJVkVSX1NFVFVQCXsJCQkJXAogCS5tYXhfdGFnCT0gQ09ORklHX1NDU0lfU1lNNTNDOFhYX0RFRkFVTFRfVEFHUywJXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwppbmRleCBhMzM1NTE0N2Y1ZGU1Li45MGYzOTkwZTAwNjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwpAQCAtMTI0NCw3ICYjNDM7MTI0NCw3IEBAIHN0YXRpYyBpbnQgb21hcDJfbWNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RsciwKIAkJb21hcDJfbWNzcGlfc2V0X2ZpZm8oc3BpLCB0LCAwKTsKIAogb3V0OgotCS8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRlbiAqLwomIzQzOwkvKiBSZXN0b3JlIGRlZmF1bHRzIGlmIHRoZXkgd2VyZSBvdmVycmlkZGVuICovCiAJaWYgKHBhcl9vdmVycmlkZSkgewogCQlwYXJfb3ZlcnJpZGUgPSAwOwogCQlzdGF0dXMgPSBvbWFwMl9tY3NwaV9zZXR1cF90cmFuc2ZlcihzcGksIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmMKaW5kZXggOWYwNTViYTc3NmM4MS4uNjUwMWY2ZTI2MTVhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jCkBAIC01OCw3ICYjNDM7NTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7CiAJLmFjY2VsID0gRkJfQUNDRUxfTk9ORSwKIH07CiAKLS8qIGRlZmF1bHRzIHdoaWNoIGFyZSBub3JtYWxseSBvdmVycmlkZW4gYnkgdXNlciB2YWx1ZXMgKi8KJiM0MzsvKiBkZWZhdWx0cyB3aGljaCBhcmUgbm9ybWFsbHkgb3ZlcnJpZGRlbiBieSB1c2VyIHZhbHVlcyAqLwogCiAvKiB2aWRlbyBtb2RlICovCiBzdGF0aWMgY2hhciAqbW9kZV9vcHRpb247CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzMTgKCQkJCQkJCW91dHB1dDogNjQKCQkJCQkJCXRob3VnaHRzOiAzOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVHlwbyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQmIzM5O3MganVzdCBhIHR5cG8gZml4LCBjaGFuZ2luZyAmIzM0O292ZXJyaWRlbiYjMzQ7IHRvICYjMzQ7b3ZlcnJpZGRlbi4mIzM0OyBJIHNlZSBpdCYjMzk7cyBzcHJlYWQgYWNyb3NzIGEgYnVuY2ggb2YgZGlmZmVyZW50IGRyaXZlcnMgYW5kIGZpbGVzLCBjb3ZlcmluZyBhIGRlY2VudCByYW5nZSBvZiB0aGUga2VybmVsLCBmcm9tIEdQVSBhbmQgZGlzcGxheSBzdHVmZiAoQU1ELCBNU00sIE5vdXZlYXUpIHRvIG5ldHdvcmsgZHJpdmVycyAoQnJvYWRjb20sIENoZWxzaW8sIEZyZWVzY2FsZSwgZXRjLiksIHN0b3JhZ2UgKE1NQywgU0NTSSksIGFuZCBzb21lIG90aGVycyBsaWtlIFNQSSBhbmQgZXZlbiBhIHZpZGVvIGZyYW1lYnVmZmVyLiBUaGUgbGlzdCBzZWVtcyBwcmV0dHkgY29tcHJlaGVuc2l2ZS4KClRoZSBrZXkgdGhpbmcgaXMsIGl0JiMzOTtzIGFsbCBpbiBjb21tZW50cy4gVGhlcmUmIzM5O3MgemVybyBjb2RlIG1vZGlmaWNhdGlvbiwgc3RyaWN0bHkgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLiBUaGlzIG1lYW5zIGl0IGhhcyBhYnNvbHV0ZWx5IG5vIGltcGFjdCBvbiBmdW5jdGlvbmFsaXR5LiBJdCYjMzk7cyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdG8gaW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgY29ycmVjdG5lc3MuCgpHaXZlbiB0aGlzLCB0aGVyZSYjMzk7cyBubyB3YXkgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFueSBuZXcgaXNzdWVzLiBJdCBpcyBhIHZlcnkgbG93IHJpc2sgY2hhbmdlLiBUaGVyZWZvcmUsIEkmIzM5O20gbWFya2luZyBpdCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIFRoZXJlJiMzOTtzIG5vdGhpbmcgaGVyZSB0aGF0JiMzOTtzIGdvaW5nIHRvIHRyaWdnZXIgYW55IGludGVyZXN0aW5nIGZ1enppbmcgcmVzdWx0cy4gSXQgaXMgc2ltcGx5IGEgaGVscGZ1bCBlZGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCYjMzk7b3ZlcnJpZGVuJiMzOTsgdG8gJiMzOTtvdmVycmlkZGVuJiMzOTspIGluIGNvZGUgY29tbWVudHMgYWNyb3NzIHZhcmlvdXMgZHJpdmVycy4gVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGZpeGVzIGEgdHlwbyAoJiMzOTtvdmVycmlkZW4mIzM5OyB0byAmIzM5O292ZXJyaWRkZW4mIzM5OykgaW4gY29kZSBjb21tZW50cyBhY3Jvc3MgdmFyaW91cyBkcml2ZXJzLiBUaGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6MDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjA4OjIzLjMzMTIzMTc1M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0ODczNTc0NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGZpeGVzIGEgdHlwbyAoJ292ZXJyaWRlbicgdG8gJ292ZXJyaWRkZW4nKSBpbiBjb2RlIGNvbW1lbnRzIGFjcm9zcyB2YXJpb3VzIGRyaXZlcnMuIFRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6MDg6MjMuMzMxMjM2OTEzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjUwMzA0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0NDIwYWVjNDQxZDk4NWExOGQyMzc4NjkzODRkNWM3ZGQ4ODM5NDlkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDI2IDA5OjA4OjIyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcXG5pbmRleCAzM2I1MTM2ZjdjZTM5Li43NWJkYWQyMmJmNjkyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcXG5AQCAtMTgwNSw3ICsxODA1LDcgQEAgc3RhdGljIHZvaWQgRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5cXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhvdXRSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlR2xvYmFsRFBQQ0xLID0gMC4wO1xcbi1cXHQvKiBEQUwgY3VzdG9tIGNvZGU6IG5lZWQgdG8gdXBkYXRlIFJldHVybkJXIGluIGNhc2UgbWluIGRjZmNsayBpcyBvdmVycmlkZW4gKi9cXG4rXFx0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xcbiBcXHR2LVxcdTAwM2VJZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVt2LVxcdTAwM2VWb2x0YWdlTGV2ZWxdW3YtXFx1MDAzZW1heE1wY0NvbWJdID0gZG1sX21pbjMoXFxuIFxcdFxcdFxcdHYtXFx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cXHUwMDNlRENGQ0xLLFxcbiBcXHRcXHRcXHR2LVxcdTAwM2VEUkFNU3BlZWRQZXJTdGF0ZVt2LVxcdTAwM2VWb2x0YWdlTGV2ZWxdICogdi1cXHUwMDNlTnVtYmVyT2ZDaGFubmVscyAqIHYtXFx1MDAzZURSQU1DaGFubmVsV2lkdGgsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmNcXG5pbmRleCA4MDY0YzRiM2ZkMjU5Li4zZjYyZWE0OTM3ODczIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmNcXG5AQCAtMjA0NSw3ICsyMDQ1LDcgQEAgc3RhdGljIHZvaWQgRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5cXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhvdXRSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlR2xvYmFsRFBQQ0xLID0gMC4wO1xcbi1cXHQvKiBEQUwgY3VzdG9tIGNvZGU6IG5lZWQgdG8gdXBkYXRlIFJldHVybkJXIGluIGNhc2UgbWluIGRjZmNsayBpcyBvdmVycmlkZW4gKi9cXG4rXFx0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xcbiBcXHR7XFxuIFxcdGRvdWJsZSBJZGVhbEZhYnJpY0FuZFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZSA9IGRtbF9taW4oXFxuIFxcdFxcdFxcdHYtXFx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cXHUwMDNlRENGQ0xLU3RhdGVbdi1cXHUwMDNlVm9sdGFnZUxldmVsXVt2LVxcdTAwM2VtYXhNcGNDb21iXSxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcXG5pbmRleCAxNjk1MWE5NTUwZjI1Li5kM2ZlNmUwMjQ4OTE4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jXFxuQEAgLTEwOCw3ICsxMDgsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspXFxuIFxcdFxcdFxcdC8qIGFsdGVybmF0ZSBzY3JhbWJsZXIgcmVzZXQgaXMgcmVxdWlyZWQgZm9yIFRyYXZpc1xcbiBcXHRcXHRcXHQgKiBmb3IgdGhlIGNhc2Ugd2hlbiBleHRlcm5hbCBjaGlwIGRvZXMgbm90XFxuIFxcdFxcdFxcdCAqIHByb3ZpZGUgc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXJcXG4tXFx0XFx0XFx0ICogc2NoZW1lIHdpbGwgIGJlIG92ZXJyaWRlbiBsYXRlciBieSBxdWVyeWluZ1xcbitcXHRcXHRcXHQgKiBzY2hlbWUgd2lsbCAgYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZ1xcbiBcXHRcXHRcXHQgKiBFbmNvZGVyIGZlYXR1cmVzXFxuIFxcdFxcdFxcdCAqL1xcbiBcXHRcXHRcXHRpZiAoc3RybmNtcChcXG5AQCAtMTI0LDcgKzEyNCw3IEBAIGVudW0gZHBfcGFuZWxfbW9kZSBkcF9nZXRfcGFuZWxfbW9kZShzdHJ1Y3QgZGNfbGluayAqbGluaylcXG4gXFx0XFx0XFx0LyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgTlVUTUVHXFxuIFxcdFxcdFxcdCAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3QgcHJvdmlkZVxcbiBcXHRcXHRcXHQgKiBzaW5rIGRldmljZSBpZCwgYWx0ZXJuYXRlIHNjcmFtYmxlciBzY2hlbWUgd2lsbFxcbi1cXHRcXHRcXHQgKiBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlXFxuK1xcdFxcdFxcdCAqIGJlIG92ZXJyaWRkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlXFxuIFxcdFxcdFxcdCAqL1xcbiBcXHRcXHRcXHRpZiAoc3RybmNtcChsaW5rLVxcdTAwM2VkcGNkX2NhcHMuYnJhbmNoX2Rldl9uYW1lLFxcbiBcXHRcXHRcXHRcXHREUF9WR0FfTFZEU19DT05WRVJURVJfSURfMyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuY1xcbmluZGV4IDIwNDM3NWYxZWZmODYuLjU4N2QyNmM3NDJjZDUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuY1xcbkBAIC01ODQsNyArNTg0LDcgQEAgc3RhdGljIGJvb2wgZG11Yl9zcnZfaHdfc2V0dXAoc3RydWN0IGRtdWJfc3J2ICpkbXViLCBlbnVtIGRtdWJfYXNpYyBhc2ljKVxcbiBcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcdH1cXG4gXFxuLVxcdC8qIHNldCBkZWZhdWx0IGluYm94IHR5cGUgaWYgbm90IG92ZXJyaWRlbiAqL1xcbitcXHQvKiBzZXQgZGVmYXVsdCBpbmJveCB0eXBlIGlmIG5vdCBvdmVycmlkZGVuICovXFxuIFxcdGlmIChkbXViLVxcdTAwM2VpbmJveF90eXBlID09IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7XFxuIFxcdFxcdGlmIChkZWZhdWx0X2luYm94X3R5cGUgIT0gRE1VQl9DTURfSU5URVJGQUNFX0RFRkFVTFQpIHtcXG4gXFx0XFx0XFx0LyogdXNlIGRlZmF1bHQgaW5ib3ggdHlwZSBhcyBzcGVjaWZpZWQgYnkgRENOIHJldiAqL1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5IGIvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxcbmluZGV4IGQzYjU2YTlkODRmYjcuLmQ2YmZiN2I3ZDdiMzkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHlcXG5AQCAtNTc2LDcgKzU3Niw3IEBAIGNsYXNzIFBhcnNlcihvYmplY3QpOlxcbiAgICAgICAgICAgICByYWlzZSBzZWxmLmVycm9yKGUpXFxuIFxcbiAgICAgZGVmIHBhcnNlX3ZhcnNldChzZWxmLCBhdHRycyk6XFxuLSAgICAgICAgIyBJbmhlcml0IHRoZSB2YXJzZXQgZnJvbSB0aGUgZW5jbG9zaW5nIGRvbWFpbiBpZiBub3Qgb3ZlcnJpZGVuOlxcbisgICAgICAgICMgSW5oZXJpdCB0aGUgdmFyc2V0IGZyb20gdGhlIGVuY2xvc2luZyBkb21haW4gaWYgbm90IG92ZXJyaWRkZW46XFxuICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldFxcbiAgICAgICAgIGlmIFxcXCJ2YXJzZXRcXFwiIGluIGF0dHJzOlxcbiAgICAgICAgICAgICB2YXJzZXQgPSBzZWxmLmVudW1zW2F0dHJzW1xcXCJ2YXJzZXRcXFwiXV1cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuY1xcbmluZGV4IDM4MDMyYmI5NTgyNjIuLjEwY2Q2MDZkMDFiOTMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuY1xcbkBAIC0zMjMsNyArMzIzLDcgQEAgZ2V0X2ZwX3N0cmFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBudmJpb3MgKmJpb3MpXFxuIFxcdC8qXFxuIFxcdCAqIFRoZSBmcCBzdHJhcCBpcyBub3JtYWxseSBkaWN0YXRlZCBieSB0aGUgXFxcIlVzZXIgU3RyYXBcXFwiIGluXFxuIFxcdCAqIFBFWFRERVZfQk9PVF8wWzIwOjE2XSwgYnV0IG9uIEJNUCBjYXJkcyB3aGVuIGJpdCAyIG9mIHRoZVxcbi1cXHQgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGVuXFxuK1xcdCAqIEludGVybmFsX0ZsYWdzIHN0cnVjdCBhdCAweDQ4IGlzIHNldCwgdGhlIHVzZXIgc3RyYXAgZ2V0cyBvdmVycmlkZGVuXFxuIFxcdCAqIGJ5IHRoZSBQQ0kgc3Vic3lzdGVtIElEIGR1cmluZyBQT1NULCBidXQgbm90IGJlZm9yZSB0aGUgcHJldmlvdXMgdXNlclxcbiBcXHQgKiBzdHJhcCBoYXMgYmVlbiBjb21taXR0ZWQgdG8gQ1I1OCBmb3IgQ1I1Nz0weGYgb24gaGVhZCBBLCB3aGljaCBtYXkgYmVcXG4gXFx0ICogcmVhZCBhbmQgdXNlZCBpbnN0ZWFkXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXFxuaW5kZXggYmE4YzY4YWU0NTk1My4uNWFjY2Q0NjM1OTljYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXFxuKysrIGIvZHJpdmVycy9od21vbi9hYml0dWd1cnUuY1xcbkBAIC00NzUsNyArNDc1LDcgQEAgYWJpdHVndXJ1X2RldGVjdF9iYW5rMV9zZW5zb3JfdHlwZShzdHJ1Y3QgYWJpdHVndXJ1X2RhdGEgKmRhdGEsXFxuIFxcdHU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107XFxuIFxcdGludCBpLCByZXQgPSAtRU5PREVWOyAvKiBlcnJvciBpcyB0aGUgbW9zdCBjb21tb24gdXNlZCByZXR2YWwgOnwgKi9cXG4gXFxuLVxcdC8qIElmIG92ZXJyaWRlbiBieSB0aGUgdXNlciByZXR1cm4gdGhlIHVzZXIgc2VsZWN0ZWQgdHlwZSAqL1xcbitcXHQvKiBJZiBvdmVycmlkZGVuIGJ5IHRoZSB1c2VyIHJldHVybiB0aGUgdXNlciBzZWxlY3RlZCB0eXBlICovXFxuIFxcdGlmIChiYW5rMV90eXBlc1tzZW5zb3JfYWRkcl0gXFx1MDAzZT0gQUJJVF9VR1VSVV9JTl9TRU5TT1IgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0XFx0YmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdIFxcdTAwM2M9IEFCSVRfVUdVUlVfTkMpIHtcXG4gXFx0XFx0QUJJVF9VR1VSVV9ERUJVRygyLCBcXFwiYXNzdW1pbmcgc2Vuc29yIHR5cGUgJWQgZm9yIGJhbmsxIHNlbnNvciBcXFwiXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suYyBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suY1xcbmluZGV4IGU3NjBkMTNlZTMyNWUuLmEwMmJiMmZlZTg3NDUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXFxuKysrIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXFxuQEAgLTg2LDcgKzg2LDcgQEAgTU9EVUxFX0FMSUFTKFxcXCJtbWM6YmxvY2tcXFwiKTtcXG4gc3RhdGljIERFRklORV9NVVRFWChibG9ja19tdXRleCk7XFxuIFxcbiAvKlxcbi0gKiBUaGUgZGVmYXVsdHMgY29tZSBmcm9tIGNvbmZpZyBvcHRpb25zIGJ1dCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IG1vZHVsZVxcbisgKiBUaGUgZGVmYXVsdHMgY29tZSBmcm9tIGNvbmZpZyBvcHRpb25zIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBtb2R1bGVcXG4gICogb3IgYm9vdGFyZyBvcHRpb25zLlxcbiAgKi9cXG4gc3RhdGljIGludCBwZXJkZXZfbWlub3JzID0gQ09ORklHX01NQ19CTE9DS19NSU5PUlM7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xcbmluZGV4IGVhMzEwMDU3ZmUzYWYuLmJjMzZkNzU3OGNlMjAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jXFxuQEAgLTM3NDMsNyArMzc0Myw3IEBAIHN0YXRpYyB2b2lkIGJueDJ4X3dhcnBjb3JlX2VuYWJsZV9BTl9LUihzdHJ1Y3QgYm54MnhfcGh5ICpwaHksXFxuIFxcdFxcdHtNRElPX1dDX0RFVkFELCBNRElPX1dDX1JFR19DTDcyX1VTRVJCMF9DTDcyX1RYX0ZJUl9UQVAsIDB9LFxcbiBcXHR9O1xcbiBcXHREUChORVRJRl9NU0dfTElOSywgXFxcIkVuYWJsZSBBdXRvIE5lZ290aWF0aW9uIGZvciBLUlxcXFxuXFxcIik7XFxuLVxcdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZW4gYnkgMTBHIGZvcmNlICovXFxuK1xcdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZGVuIGJ5IDEwRyBmb3JjZSAqL1xcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShyZWdfc2V0KTsgaSsrKVxcbiBcXHRcXHRibngyeF9jbDQ1X3dyaXRlKGJwLCBwaHksIHJlZ19zZXRbaV0uZGV2YWQsIHJlZ19zZXRbaV0ucmVnLFxcbiBcXHRcXHRcXHRcXHQgcmVnX3NldFtpXS52YWwpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcXG5pbmRleCAzMWZhYjI0MTU3NDMyLi5iNDM3NGNhMWQ2NTMwIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuY1xcbkBAIC0yMTk0LDcgKzIxOTQsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICpiYXIyX2FkZHJlc3Moc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsXFxuICAqXFx0QHJzcHE6IHBvaW50ZXIgdG8gdGhlIG5ldyByeHEncyBSZXNwb25zZSBRdWV1ZSB0byBiZSBmaWxsZWQgaW5cXG4gICpcXHRAaXFhc3luY2g6IGlmIDAsIGEgbm9ybWFsIHJzcHE7IGlmIDEsIGFuIGFzeW5jaHJvbm91cyBldmVudCBxdWV1ZVxcbiAgKlxcdEBkZXY6IHRoZSBuZXR3b3JrIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5ldyByc3BxXFxuLSAqXFx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZW4gaW4gTVNJIG1vZGUpXFxuKyAqXFx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZGVuIGluIE1TSSBtb2RlKVxcbiAgKlxcdEBmbDogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSdzIEZyZWUgTGlzdCB0byBiZSBmaWxsZWQgaW5cXG4gICpcXHRAaG5kOiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgdG8gaW52b2tlIGZvciB0aGUgcnNwcVxcbiAgKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXFxuaW5kZXggZTJkOGM1OGRlZWYwMy4uYzFkNTg4MzM3NzUxNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmNcXG5AQCAtMTMxMSw3ICsxMzExLDcgQEAgaW50IG1lbWFjX2luaXRpYWxpemF0aW9uKHN0cnVjdCBtYWNfZGV2aWNlICptYWNfZGV2LFxcbiBcXG4gXFx0LyogTW9zdCBib2FyZHMgc2hvdWxkIHVzZSBNTE9fQU5fSU5CQU5ELCBidXQgZXhpc3RpbmcgYm9hcmRzIGRvbid0IGhhdmVcXG4gXFx0ICogYSBtYW5hZ2VkIHByb3BlcnR5LiBEZWZhdWx0IHRvIE1MT19BTl9JTkJBTkQgcmF0aGVyIHRoYW4gTUxPX0FOX1BIWS5cXG4tXFx0ICogUGh5bGluayB3aWxsIGFsbG93IHRoaXMgdG8gYmUgb3ZlcnJpZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xcbitcXHQgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xcbiBcXHQgKiBiZSBjYXJlZnVsIGFuZCBub3QgZW5hYmxlIHRoaXMgaWYgd2UgYXJlIHVzaW5nIE1JSSBvciBSR01JSSwgc2luY2VcXG4gXFx0ICogdGhvc2UgY29uZmlndXJhdGlvbnMgbW9kZXMgZG9uJ3QgdXNlIGluLWJhbmQgYXV0b25lZ290aWF0aW9uLlxcbiBcXHQgKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfcGNvbC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfcGNvbC5oXFxuaW5kZXggYjk4NjZlMzg5ZTZkMi4uOWFkZmEwNTg1MTJmMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcXG5AQCAtMTM1NDcsNyArMTM1NDcsNyBAQFxcbiAgKiBhbiBhbmNlc3RvciBvZiB0aGUgY3VycmVudCB1c2VyIChzZWUgTUNfQ01EX1NFVF9WSV9VU0VSKS4gTm90ZSB0aGF0IExMXFxuICAqIHF1ZXVlcyByZXF1aXJlIHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVyIGFsbG9jYXRpb24gYnV0IGJlZm9yZSBpbml0aWFsaXNhdGlvblxcbiAgKiBvZiB0aGUgcXVldWUuIFRMUCBvcHRpb25zIG9mIGEgcXVldWUgYXJlIGZpeGVkIGFmdGVyIHF1ZXVlIGlzIGluaXRpYWxpc2VkLFxcbi0gKiB3aXRoIHRoZSB2YWx1ZXMgc2V0IHRvIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9yIHRoZXkgY2FuIGJlIG92ZXJyaWRlbiB1c2luZ1xcbisgKiB3aXRoIHRoZSB2YWx1ZXMgc2V0IHRvIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9yIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmdcXG4gICogdGhpcyBjb21tYW5kLiBBdCBMTCBxdWV1ZSBhbGxvY2F0aW9uLCBhbGwgb3ZlcnJpZGVzIGFyZSBjbGVhcmVkLlxcbiAgKi9cXG4gI2RlZmluZSBNQ19DTURfU0VUX1ZJX1RMUF9QUk9DRVNTSU5HIDB4YjFcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uYyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmNcXG5pbmRleCBmZWIxNzA3ZmViN2UyLi5jOTQ3MGY4MDYyNmI4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXFxuQEAgLTE3Myw3ICsxNzMsNyBAQCBzdGF0aWMgYWRhcHRlcl90YWdfaW5mb190IGFpYzc5eHhfdGFnX2luZm9bXSA9XFxuIFxcbiAvKlxcbiAgKiBUaGUgSS9PIGNlbGwgb24gdGhlIGNoaXAgaXMgdmVyeSBjb25maWd1cmFibGUgaW4gcmVzcGVjdCB0byBpdHMgYW5hbG9nXFxuLSAqIGNoYXJhY3RlcmlzdGljcy4gIFNldCB0aGUgZGVmYXVsdHMgaGVyZTsgdGhleSBjYW4gYmUgb3ZlcnJpZGVuIHdpdGhcXG4rICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIHdpdGhcXG4gICogdGhlIHByb3BlciBpbnNtb2QgcGFyYW1ldGVycy5cXG4gICovXFxuIHN0cnVjdCBhaGRfbGludXhfaW9jZWxsX29wdHNcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oIGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXFxuaW5kZXggMTFmNWRjMjlhYTU5Ny4uODc5MGYxMzE1Zjc1NyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmhcXG4rKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmhcXG5AQCAtMTI4LDcgKzEyOCw3IEBAIHN0cnVjdCBzeW1fZHJpdmVyX3NldHVwIHtcXG4gLypcXG4gICogIEluaXRpYWwgc2V0dXAuXFxuICAqXFxuLSAqICBDYW4gYmUgb3ZlcnJpZGVuIGF0IHN0YXJ0dXAgYnkgYSBjb21tYW5kIGxpbmUuXFxuKyAqICBDYW4gYmUgb3ZlcnJpZGRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxcbiAgKi9cXG4gI2RlZmluZSBTWU1fTElOVVhfRFJJVkVSX1NFVFVQXFx0e1xcdFxcdFxcdFxcdFxcXFxcXG4gXFx0Lm1heF90YWdcXHQ9IENPTkZJR19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1MsXFx0XFxcXFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jXFxuaW5kZXggYTMzNTUxNDdmNWRlNS4uOTBmMzk5MGUwMDYwZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuY1xcbisrKyBiL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jXFxuQEAgLTEyNDQsNyArMTI0NCw3IEBAIHN0YXRpYyBpbnQgb21hcDJfbWNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RscixcXG4gXFx0XFx0b21hcDJfbWNzcGlfc2V0X2ZpZm8oc3BpLCB0LCAwKTtcXG4gXFxuIG91dDpcXG4tXFx0LyogUmVzdG9yZSBkZWZhdWx0cyBpZiB0aGV5IHdlcmUgb3ZlcnJpZGVuICovXFxuK1xcdC8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRkZW4gKi9cXG4gXFx0aWYgKHBhcl9vdmVycmlkZSkge1xcbiBcXHRcXHRwYXJfb3ZlcnJpZGUgPSAwO1xcbiBcXHRcXHRzdGF0dXMgPSBvbWFwMl9tY3NwaV9zZXR1cF90cmFuc2ZlcihzcGksIE5VTEwpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuY1xcbmluZGV4IDlmMDU1YmE3NzZjODEuLjY1MDFmNmUyNjE1YTQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuY1xcbisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcXG5AQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7XFxuIFxcdC5hY2NlbCA9IEZCX0FDQ0VMX05PTkUsXFxuIH07XFxuIFxcbi0vKiBkZWZhdWx0cyB3aGljaCBhcmUgbm9ybWFsbHkgb3ZlcnJpZGVuIGJ5IHVzZXIgdmFsdWVzICovXFxuKy8qIGRlZmF1bHRzIHdoaWNoIGFyZSBub3JtYWxseSBvdmVycmlkZGVuIGJ5IHVzZXIgdmFsdWVzICovXFxuIFxcbiAvKiB2aWRlbyBtb2RlICovXFxuIHN0YXRpYyBjaGFyICptb2RlX29wdGlvbjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6MDg6MjMuODk3MDYyMjQ5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NzkyMTUxNDE0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCdvdmVycmlkZW4nIHRvICdvdmVycmlkZGVuJykgaW4gY29kZSBjb21tZW50cyBhY3Jvc3MgdmFyaW91cyBkcml2ZXJzLiBUaGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ0MjBhZWM0NDFkOTg1YTE4ZDIzNzg2OTM4NGQ1YzdkZDg4Mzk0OWRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAyNiAwOTowODoyMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbmluZGV4IDMzYjUxMzZmN2NlMzkuLjc1YmRhZDIyYmY2OTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMwL2Rpc3BsYXlfbW9kZV92YmFfMzAuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbkBAIC0xODA1LDcgKzE4MDUsNyBAQCBzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hblxuIFx0di1cdTAwM2VESVNQQ0xLV2l0aFJhbXBpbmcgPSAwO1xuIFx0di1cdTAwM2VESVNQQ0xLV2l0aG91dFJhbXBpbmcgPSAwO1xuIFx0di1cdTAwM2VHbG9iYWxEUFBDTEsgPSAwLjA7XG4tXHQvKiBEQUwgY3VzdG9tIGNvZGU6IG5lZWQgdG8gdXBkYXRlIFJldHVybkJXIGluIGNhc2UgbWluIGRjZmNsayBpcyBvdmVycmlkZW4gKi9cbitcdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi9cbiBcdHYtXHUwMDNlSWRlYWxTRFBQb3J0QmFuZHdpZHRoUGVyU3RhdGVbdi1cdTAwM2VWb2x0YWdlTGV2ZWxdW3YtXHUwMDNlbWF4TXBjQ29tYl0gPSBkbWxfbWluMyhcbiBcdFx0XHR2LVx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cdTAwM2VEQ0ZDTEssXG4gXHRcdFx0di1cdTAwM2VEUkFNU3BlZWRQZXJTdGF0ZVt2LVx1MDAzZVZvbHRhZ2VMZXZlbF0gKiB2LVx1MDAzZU51bWJlck9mQ2hhbm5lbHMgKiB2LVx1MDAzZURSQU1DaGFubmVsV2lkdGgsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMxL2Rpc3BsYXlfbW9kZV92YmFfMzEuY1xuaW5kZXggODA2NGM0YjNmZDI1OS4uM2Y2MmVhNDkzNzg3MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMxL2Rpc3BsYXlfbW9kZV92YmFfMzEuY1xuQEAgLTIwNDUsNyArMjA0NSw3IEBAIHN0YXRpYyB2b2lkIERJU1BDTEtEUFBDTEtEQ0ZDTEtEZWVwU2xlZXBQcmVmZXRjaFBhcmFtZXRlcnNXYXRlcm1hcmtzQW5kUGVyZm9ybWFuXG4gXHR2LVx1MDAzZURJU1BDTEtXaXRoUmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZURJU1BDTEtXaXRob3V0UmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZUdsb2JhbERQUENMSyA9IDAuMDtcbi1cdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRlbiAqL1xuK1x0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xuIFx0e1xuIFx0ZG91YmxlIElkZWFsRmFicmljQW5kU0RQUG9ydEJhbmR3aWR0aFBlclN0YXRlID0gZG1sX21pbihcbiBcdFx0XHR2LVx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cdTAwM2VEQ0ZDTEtTdGF0ZVt2LVx1MDAzZVZvbHRhZ2VMZXZlbF1bdi1cdTAwM2VtYXhNcGNDb21iXSxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuY1xuaW5kZXggMTY5NTFhOTU1MGYyNS4uZDNmZTZlMDI0ODkxOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcbkBAIC0xMDgsNyArMTA4LDcgQEAgZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKVxuIFx0XHRcdC8qIGFsdGVybmF0ZSBzY3JhbWJsZXIgcmVzZXQgaXMgcmVxdWlyZWQgZm9yIFRyYXZpc1xuIFx0XHRcdCAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3RcbiBcdFx0XHQgKiBwcm92aWRlIHNpbmsgZGV2aWNlIGlkLCBhbHRlcm5hdGUgc2NyYW1ibGVyXG4tXHRcdFx0ICogc2NoZW1lIHdpbGwgIGJlIG92ZXJyaWRlbiBsYXRlciBieSBxdWVyeWluZ1xuK1x0XHRcdCAqIHNjaGVtZSB3aWxsICBiZSBvdmVycmlkZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nXG4gXHRcdFx0ICogRW5jb2RlciBmZWF0dXJlc1xuIFx0XHRcdCAqL1xuIFx0XHRcdGlmIChzdHJuY21wKFxuQEAgLTEyNCw3ICsxMjQsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspXG4gXHRcdFx0LyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgTlVUTUVHXG4gXHRcdFx0ICogZm9yIHRoZSBjYXNlIHdoZW4gZXh0ZXJuYWwgY2hpcCBkb2VzIG5vdCBwcm92aWRlXG4gXHRcdFx0ICogc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXIgc2NoZW1lIHdpbGxcbi1cdFx0XHQgKiBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlXG4rXHRcdFx0ICogYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZyBFbmNvZGVyIGZlYXR1cmVcbiBcdFx0XHQgKi9cbiBcdFx0XHRpZiAoc3RybmNtcChsaW5rLVx1MDAzZWRwY2RfY2Fwcy5icmFuY2hfZGV2X25hbWUsXG4gXHRcdFx0XHREUF9WR0FfTFZEU19DT05WRVJURVJfSURfMyxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jXG5pbmRleCAyMDQzNzVmMWVmZjg2Li41ODdkMjZjNzQyY2Q1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jXG5AQCAtNTg0LDcgKzU4NCw3IEBAIHN0YXRpYyBib29sIGRtdWJfc3J2X2h3X3NldHVwKHN0cnVjdCBkbXViX3NydiAqZG11YiwgZW51bSBkbXViX2FzaWMgYXNpYylcbiBcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0Lyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGVuICovXG4rXHQvKiBzZXQgZGVmYXVsdCBpbmJveCB0eXBlIGlmIG5vdCBvdmVycmlkZGVuICovXG4gXHRpZiAoZG11Yi1cdTAwM2VpbmJveF90eXBlID09IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7XG4gXHRcdGlmIChkZWZhdWx0X2luYm94X3R5cGUgIT0gRE1VQl9DTURfSU5URVJGQUNFX0RFRkFVTFQpIHtcbiBcdFx0XHQvKiB1c2UgZGVmYXVsdCBpbmJveCB0eXBlIGFzIHNwZWNpZmllZCBieSBEQ04gcmV2ICovXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weSBiL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHlcbmluZGV4IGQzYjU2YTlkODRmYjcuLmQ2YmZiN2I3ZDdiMzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5XG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5XG5AQCAtNTc2LDcgKzU3Niw3IEBAIGNsYXNzIFBhcnNlcihvYmplY3QpOlxuICAgICAgICAgICAgIHJhaXNlIHNlbGYuZXJyb3IoZSlcbiBcbiAgICAgZGVmIHBhcnNlX3ZhcnNldChzZWxmLCBhdHRycyk6XG4tICAgICAgICAjIEluaGVyaXQgdGhlIHZhcnNldCBmcm9tIHRoZSBlbmNsb3NpbmcgZG9tYWluIGlmIG5vdCBvdmVycmlkZW46XG4rICAgICAgICAjIEluaGVyaXQgdGhlIHZhcnNldCBmcm9tIHRoZSBlbmNsb3NpbmcgZG9tYWluIGlmIG5vdCBvdmVycmlkZGVuOlxuICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldFxuICAgICAgICAgaWYgXCJ2YXJzZXRcIiBpbiBhdHRyczpcbiAgICAgICAgICAgICB2YXJzZXQgPSBzZWxmLmVudW1zW2F0dHJzW1widmFyc2V0XCJdXVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcbmluZGV4IDM4MDMyYmI5NTgyNjIuLjEwY2Q2MDZkMDFiOTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcbkBAIC0zMjMsNyArMzIzLDcgQEAgZ2V0X2ZwX3N0cmFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBudmJpb3MgKmJpb3MpXG4gXHQvKlxuIFx0ICogVGhlIGZwIHN0cmFwIGlzIG5vcm1hbGx5IGRpY3RhdGVkIGJ5IHRoZSBcIlVzZXIgU3RyYXBcIiBpblxuIFx0ICogUEVYVERFVl9CT09UXzBbMjA6MTZdLCBidXQgb24gQk1QIGNhcmRzIHdoZW4gYml0IDIgb2YgdGhlXG4tXHQgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGVuXG4rXHQgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGRlblxuIFx0ICogYnkgdGhlIFBDSSBzdWJzeXN0ZW0gSUQgZHVyaW5nIFBPU1QsIGJ1dCBub3QgYmVmb3JlIHRoZSBwcmV2aW91cyB1c2VyXG4gXHQgKiBzdHJhcCBoYXMgYmVlbiBjb21taXR0ZWQgdG8gQ1I1OCBmb3IgQ1I1Nz0weGYgb24gaGVhZCBBLCB3aGljaCBtYXkgYmVcbiBcdCAqIHJlYWQgYW5kIHVzZWQgaW5zdGVhZFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXG5pbmRleCBiYThjNjhhZTQ1OTUzLi41YWNjZDQ2MzU5OWNiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuY1xuKysrIGIvZHJpdmVycy9od21vbi9hYml0dWd1cnUuY1xuQEAgLTQ3NSw3ICs0NzUsNyBAQCBhYml0dWd1cnVfZGV0ZWN0X2JhbmsxX3NlbnNvcl90eXBlKHN0cnVjdCBhYml0dWd1cnVfZGF0YSAqZGF0YSxcbiBcdHU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107XG4gXHRpbnQgaSwgcmV0ID0gLUVOT0RFVjsgLyogZXJyb3IgaXMgdGhlIG1vc3QgY29tbW9uIHVzZWQgcmV0dmFsIDp8ICovXG4gXG4tXHQvKiBJZiBvdmVycmlkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi9cbitcdC8qIElmIG92ZXJyaWRkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi9cbiBcdGlmIChiYW5rMV90eXBlc1tzZW5zb3JfYWRkcl0gXHUwMDNlPSBBQklUX1VHVVJVX0lOX1NFTlNPUiBcdTAwMjZcdTAwMjZcbiBcdFx0XHRiYW5rMV90eXBlc1tzZW5zb3JfYWRkcl0gXHUwMDNjPSBBQklUX1VHVVJVX05DKSB7XG4gXHRcdEFCSVRfVUdVUlVfREVCVUcoMiwgXCJhc3N1bWluZyBzZW5zb3IgdHlwZSAlZCBmb3IgYmFuazEgc2Vuc29yIFwiXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG5pbmRleCBlNzYwZDEzZWUzMjVlLi5hMDJiYjJmZWU4NzQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG4rKysgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmNcbkBAIC04Niw3ICs4Niw3IEBAIE1PRFVMRV9BTElBUyhcIm1tYzpibG9ja1wiKTtcbiBzdGF0aWMgREVGSU5FX01VVEVYKGJsb2NrX211dGV4KTtcbiBcbiAvKlxuLSAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZW4gYnkgbW9kdWxlXG4rICogVGhlIGRlZmF1bHRzIGNvbWUgZnJvbSBjb25maWcgb3B0aW9ucyBidXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgbW9kdWxlXG4gICogb3IgYm9vdGFyZyBvcHRpb25zLlxuICAqL1xuIHN0YXRpYyBpbnQgcGVyZGV2X21pbm9ycyA9IENPTkZJR19NTUNfQkxPQ0tfTUlOT1JTO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xuaW5kZXggZWEzMTAwNTdmZTNhZi4uYmMzNmQ3NTc4Y2UyMCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jXG5AQCAtMzc0Myw3ICszNzQzLDcgQEAgc3RhdGljIHZvaWQgYm54Mnhfd2FycGNvcmVfZW5hYmxlX0FOX0tSKHN0cnVjdCBibngyeF9waHkgKnBoeSxcbiBcdFx0e01ESU9fV0NfREVWQUQsIE1ESU9fV0NfUkVHX0NMNzJfVVNFUkIwX0NMNzJfVFhfRklSX1RBUCwgMH0sXG4gXHR9O1xuIFx0RFAoTkVUSUZfTVNHX0xJTkssIFwiRW5hYmxlIEF1dG8gTmVnb3RpYXRpb24gZm9yIEtSXFxuXCIpO1xuLVx0LyogU2V0IHRvIGRlZmF1bHQgcmVnaXN0ZXJzIHRoYXQgbWF5IGJlIG92ZXJyaWRlbiBieSAxMEcgZm9yY2UgKi9cbitcdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZGVuIGJ5IDEwRyBmb3JjZSAqL1xuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShyZWdfc2V0KTsgaSsrKVxuIFx0XHRibngyeF9jbDQ1X3dyaXRlKGJwLCBwaHksIHJlZ19zZXRbaV0uZGV2YWQsIHJlZ19zZXRbaV0ucmVnLFxuIFx0XHRcdFx0IHJlZ19zZXRbaV0udmFsKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcbmluZGV4IDMxZmFiMjQxNTc0MzIuLmI0Mzc0Y2ExZDY1MzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuY1xuQEAgLTIxOTQsNyArMjE5NCw3IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKmJhcjJfYWRkcmVzcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcixcbiAgKlx0QHJzcHE6IHBvaW50ZXIgdG8gdGhlIG5ldyByeHEncyBSZXNwb25zZSBRdWV1ZSB0byBiZSBmaWxsZWQgaW5cbiAgKlx0QGlxYXN5bmNoOiBpZiAwLCBhIG5vcm1hbCByc3BxOyBpZiAxLCBhbiBhc3luY2hyb25vdXMgZXZlbnQgcXVldWVcbiAgKlx0QGRldjogdGhlIG5ldHdvcmsgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3IHJzcHFcbi0gKlx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZW4gaW4gTVNJIG1vZGUpXG4rICpcdEBpbnRyX2Rlc3Q6IE1TSS1YIHZlY3RvciBpbmRleCAob3ZlcnJpZGRlbiBpbiBNU0kgbW9kZSlcbiAgKlx0QGZsOiBwb2ludGVyIHRvIHRoZSBuZXcgcnhxJ3MgRnJlZSBMaXN0IHRvIGJlIGZpbGxlZCBpblxuICAqXHRAaG5kOiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgdG8gaW52b2tlIGZvciB0aGUgcnNwcVxuICAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuY1xuaW5kZXggZTJkOGM1OGRlZWYwMy4uYzFkNTg4MzM3NzUxNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXG5AQCAtMTMxMSw3ICsxMzExLDcgQEAgaW50IG1lbWFjX2luaXRpYWxpemF0aW9uKHN0cnVjdCBtYWNfZGV2aWNlICptYWNfZGV2LFxuIFxuIFx0LyogTW9zdCBib2FyZHMgc2hvdWxkIHVzZSBNTE9fQU5fSU5CQU5ELCBidXQgZXhpc3RpbmcgYm9hcmRzIGRvbid0IGhhdmVcbiBcdCAqIGEgbWFuYWdlZCBwcm9wZXJ0eS4gRGVmYXVsdCB0byBNTE9fQU5fSU5CQU5EIHJhdGhlciB0aGFuIE1MT19BTl9QSFkuXG4tXHQgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZW4gYnkgYSBmaXhlZCBsaW5rLiBXZSBuZWVkIHRvXG4rXHQgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xuIFx0ICogYmUgY2FyZWZ1bCBhbmQgbm90IGVuYWJsZSB0aGlzIGlmIHdlIGFyZSB1c2luZyBNSUkgb3IgUkdNSUksIHNpbmNlXG4gXHQgKiB0aG9zZSBjb25maWd1cmF0aW9ucyBtb2RlcyBkb24ndCB1c2UgaW4tYmFuZCBhdXRvbmVnb3RpYXRpb24uXG4gXHQgKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbmluZGV4IGI5ODY2ZTM4OWU2ZDIuLjlhZGZhMDU4NTEyZjMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX3Bjb2wuaFxuQEAgLTEzNTQ3LDcgKzEzNTQ3LDcgQEBcbiAgKiBhbiBhbmNlc3RvciBvZiB0aGUgY3VycmVudCB1c2VyIChzZWUgTUNfQ01EX1NFVF9WSV9VU0VSKS4gTm90ZSB0aGF0IExMXG4gICogcXVldWVzIHJlcXVpcmUgdGhpcyB0byBiZSBjYWxsZWQgYWZ0ZXIgYWxsb2NhdGlvbiBidXQgYmVmb3JlIGluaXRpYWxpc2F0aW9uXG4gICogb2YgdGhlIHF1ZXVlLiBUTFAgb3B0aW9ucyBvZiBhIHF1ZXVlIGFyZSBmaXhlZCBhZnRlciBxdWV1ZSBpcyBpbml0aWFsaXNlZCxcbi0gKiB3aXRoIHRoZSB2YWx1ZXMgc2V0IHRvIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9yIHRoZXkgY2FuIGJlIG92ZXJyaWRlbiB1c2luZ1xuKyAqIHdpdGggdGhlIHZhbHVlcyBzZXQgdG8gY3VycmVudCBnbG9iYWwgdmFsdWUgb3IgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZ1xuICAqIHRoaXMgY29tbWFuZC4gQXQgTEwgcXVldWUgYWxsb2NhdGlvbiwgYWxsIG92ZXJyaWRlcyBhcmUgY2xlYXJlZC5cbiAgKi9cbiAjZGVmaW5lIE1DX0NNRF9TRVRfVklfVExQX1BST0NFU1NJTkcgMHhiMVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmMgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXG5pbmRleCBmZWIxNzA3ZmViN2UyLi5jOTQ3MGY4MDYyNmI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uY1xuKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uY1xuQEAgLTE3Myw3ICsxNzMsNyBAQCBzdGF0aWMgYWRhcHRlcl90YWdfaW5mb190IGFpYzc5eHhfdGFnX2luZm9bXSA9XG4gXG4gLypcbiAgKiBUaGUgSS9PIGNlbGwgb24gdGhlIGNoaXAgaXMgdmVyeSBjb25maWd1cmFibGUgaW4gcmVzcGVjdCB0byBpdHMgYW5hbG9nXG4tICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZW4gd2l0aFxuKyAqIGNoYXJhY3RlcmlzdGljcy4gIFNldCB0aGUgZGVmYXVsdHMgaGVyZTsgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoXG4gICogdGhlIHByb3BlciBpbnNtb2QgcGFyYW1ldGVycy5cbiAgKi9cbiBzdHJ1Y3QgYWhkX2xpbnV4X2lvY2VsbF9vcHRzXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oIGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXG5pbmRleCAxMWY1ZGMyOWFhNTk3Li44NzkwZjEzMTVmNzU3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXG4rKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmhcbkBAIC0xMjgsNyArMTI4LDcgQEAgc3RydWN0IHN5bV9kcml2ZXJfc2V0dXAge1xuIC8qXG4gICogIEluaXRpYWwgc2V0dXAuXG4gICpcbi0gKiAgQ2FuIGJlIG92ZXJyaWRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxuKyAqICBDYW4gYmUgb3ZlcnJpZGRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxuICAqL1xuICNkZWZpbmUgU1lNX0xJTlVYX0RSSVZFUl9TRVRVUFx0e1x0XHRcdFx0XFxcbiBcdC5tYXhfdGFnXHQ9IENPTkZJR19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1MsXHRcXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jIGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbmluZGV4IGEzMzU1MTQ3ZjVkZTUuLjkwZjM5OTBlMDA2MGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuY1xuKysrIGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbkBAIC0xMjQ0LDcgKzEyNDQsNyBAQCBzdGF0aWMgaW50IG9tYXAyX21jc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsXG4gXHRcdG9tYXAyX21jc3BpX3NldF9maWZvKHNwaSwgdCwgMCk7XG4gXG4gb3V0OlxuLVx0LyogUmVzdG9yZSBkZWZhdWx0cyBpZiB0aGV5IHdlcmUgb3ZlcnJpZGVuICovXG4rXHQvKiBSZXN0b3JlIGRlZmF1bHRzIGlmIHRoZXkgd2VyZSBvdmVycmlkZGVuICovXG4gXHRpZiAocGFyX292ZXJyaWRlKSB7XG4gXHRcdHBhcl9vdmVycmlkZSA9IDA7XG4gXHRcdHN0YXR1cyA9IG9tYXAyX21jc3BpX3NldHVwX3RyYW5zZmVyKHNwaSwgTlVMTCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcbmluZGV4IDlmMDU1YmE3NzZjODEuLjY1MDFmNmUyNjE1YTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jXG4rKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jXG5AQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7XG4gXHQuYWNjZWwgPSBGQl9BQ0NFTF9OT05FLFxuIH07XG4gXG4tLyogZGVmYXVsdHMgd2hpY2ggYXJlIG5vcm1hbGx5IG92ZXJyaWRlbiBieSB1c2VyIHZhbHVlcyAqL1xuKy8qIGRlZmF1bHRzIHdoaWNoIGFyZSBub3JtYWxseSBvdmVycmlkZGVuIGJ5IHVzZXIgdmFsdWVzICovXG4gXG4gLyogdmlkZW8gbW9kZSAqL1xuIHN0YXRpYyBjaGFyICptb2RlX29wdGlvbjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjA4OjIzLjg5NzA2Mzg0OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5MjE0OTA2NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVHlwbyBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQncyBqdXN0IGEgdHlwbyBmaXgsIGNoYW5naW5nIFwib3ZlcnJpZGVuXCIgdG8gXCJvdmVycmlkZGVuLlwiIEkgc2VlIGl0J3Mgc3ByZWFkIGFjcm9zcyBhIGJ1bmNoIG9mIGRpZmZlcmVudCBkcml2ZXJzIGFuZCBmaWxlcywgY292ZXJpbmcgYSBkZWNlbnQgcmFuZ2Ugb2YgdGhlIGtlcm5lbCwgZnJvbSBHUFUgYW5kIGRpc3BsYXkgc3R1ZmYgKEFNRCwgTVNNLCBOb3V2ZWF1KSB0byBuZXR3b3JrIGRyaXZlcnMgKEJyb2FkY29tLCBDaGVsc2lvLCBGcmVlc2NhbGUsIGV0Yy4pLCBzdG9yYWdlIChNTUMsIFNDU0kpLCBhbmQgc29tZSBvdGhlcnMgbGlrZSBTUEkgYW5kIGV2ZW4gYSB2aWRlbyBmcmFtZWJ1ZmZlci4gVGhlIGxpc3Qgc2VlbXMgcHJldHR5IGNvbXByZWhlbnNpdmUuXG5cblRoZSBrZXkgdGhpbmcgaXMsIGl0J3MgYWxsIGluIGNvbW1lbnRzLiBUaGVyZSdzIHplcm8gY29kZSBtb2RpZmljYXRpb24sIHN0cmljdGx5IGRvY3VtZW50YXRpb24gdXBkYXRlcy4gVGhpcyBtZWFucyBpdCBoYXMgYWJzb2x1dGVseSBubyBpbXBhY3Qgb24gZnVuY3Rpb25hbGl0eS4gSXQncyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdG8gaW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgY29ycmVjdG5lc3MuXG5cbkdpdmVuIHRoaXMsIHRoZXJlJ3Mgbm8gd2F5IHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgbmV3IGlzc3Vlcy4gSXQgaXMgYSB2ZXJ5IGxvdyByaXNrIGNoYW5nZS4gVGhlcmVmb3JlLCBJJ20gbWFya2luZyBpdCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIFRoZXJlJ3Mgbm90aGluZyBoZXJlIHRoYXQncyBnb2luZyB0byB0cmlnZ2VyIGFueSBpbnRlcmVzdGluZyBmdXp6aW5nIHJlc3VsdHMuIEl0IGlzIHNpbXBseSBhIGhlbHBmdWwgZWRpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjMxOCwiT3V0cHV0VG9rZW5zIjo2NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjA4OjMxLjgxODU1NjUxNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCdvdmVycmlkZW4nIHRvICdvdmVycmlkZGVuJykgaW4gY29kZSBjb21tZW50cyBhY3Jvc3MgdmFyaW91cyBkcml2ZXJzLiBUaGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgZml4ZXMgYSB0eXBvICgnb3ZlcnJpZGVuJyB0byAnb3ZlcnJpZGRlbicpIGluIGNvZGUgY29tbWVudHMgYWNyb3NzIHZhcmlvdXMgZHJpdmVycy4gVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTowODozMS44MTg1NzgxMzVaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbvk5q[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-26 08:47:09 +0000 UTC FinishedAt: 2026-08-26 09:08:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCYjMzk7b3ZlcnJpZGVuJiMzOTsgdG8gJiMzOTtvdmVycmlkZGVuJiMzOTspIGluIGNvZGUgY29tbWVudHMgYWNyb3NzIHZhcmlvdXMgZHJpdmVycy4gVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDQyMGFlYzQ0MWQ5ODVhMThkMjM3ODY5Mzg0ZDVjN2RkODgzOTQ5ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgQXVnIDI2IDA5OjA4OjIyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbmluZGV4IDMzYjUxMzZmN2NlMzkuLjc1YmRhZDIyYmY2OTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMwL2Rpc3BsYXlfbW9kZV92YmFfMzAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbkBAIC0xODA1LDcgJiM0MzsxODA1LDcgQEAgc3RhdGljIHZvaWQgRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5cbiBcdHYtXHUwMDNlRElTUENMS1dpdGhSYW1waW5nID0gMDtcbiBcdHYtXHUwMDNlRElTUENMS1dpdGhvdXRSYW1waW5nID0gMDtcbiBcdHYtXHUwMDNlR2xvYmFsRFBQQ0xLID0gMC4wO1xuLVx0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGVuICovXG4mIzQzO1x0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xuIFx0di1cdTAwM2VJZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVt2LVx1MDAzZVZvbHRhZ2VMZXZlbF1bdi1cdTAwM2VtYXhNcGNDb21iXSA9IGRtbF9taW4zKFxuIFx0XHRcdHYtXHUwMDNlUmV0dXJuQnVzV2lkdGggKiB2LVx1MDAzZURDRkNMSyxcbiBcdFx0XHR2LVx1MDAzZURSQU1TcGVlZFBlclN0YXRlW3YtXHUwMDNlVm9sdGFnZUxldmVsXSAqIHYtXHUwMDNlTnVtYmVyT2ZDaGFubmVscyAqIHYtXHUwMDNlRFJBTUNoYW5uZWxXaWR0aCxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMxL2Rpc3BsYXlfbW9kZV92YmFfMzEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXG5pbmRleCA4MDY0YzRiM2ZkMjU5Li4zZjYyZWE0OTM3ODczIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXG5AQCAtMjA0NSw3ICYjNDM7MjA0NSw3IEBAIHN0YXRpYyB2b2lkIERJU1BDTEtEUFBDTEtEQ0ZDTEtEZWVwU2xlZXBQcmVmZXRjaFBhcmFtZXRlcnNXYXRlcm1hcmtzQW5kUGVyZm9ybWFuXG4gXHR2LVx1MDAzZURJU1BDTEtXaXRoUmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZURJU1BDTEtXaXRob3V0UmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZUdsb2JhbERQUENMSyA9IDAuMDtcbi1cdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRlbiAqL1xuJiM0MztcdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi9cbiBcdHtcbiBcdGRvdWJsZSBJZGVhbEZhYnJpY0FuZFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZSA9IGRtbF9taW4oXG4gXHRcdFx0di1cdTAwM2VSZXR1cm5CdXNXaWR0aCAqIHYtXHUwMDNlRENGQ0xLU3RhdGVbdi1cdTAwM2VWb2x0YWdlTGV2ZWxdW3YtXHUwMDNlbWF4TXBjQ29tYl0sXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcbmluZGV4IDE2OTUxYTk1NTBmMjUuLmQzZmU2ZTAyNDg5MTggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jXG5AQCAtMTA4LDcgJiM0MzsxMDgsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspXG4gXHRcdFx0LyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgVHJhdmlzXG4gXHRcdFx0ICogZm9yIHRoZSBjYXNlIHdoZW4gZXh0ZXJuYWwgY2hpcCBkb2VzIG5vdFxuIFx0XHRcdCAqIHByb3ZpZGUgc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXJcbi1cdFx0XHQgKiBzY2hlbWUgd2lsbCAgYmUgb3ZlcnJpZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nXG4mIzQzO1x0XHRcdCAqIHNjaGVtZSB3aWxsICBiZSBvdmVycmlkZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nXG4gXHRcdFx0ICogRW5jb2RlciBmZWF0dXJlc1xuIFx0XHRcdCAqL1xuIFx0XHRcdGlmIChzdHJuY21wKFxuQEAgLTEyNCw3ICYjNDM7MTI0LDcgQEAgZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKVxuIFx0XHRcdC8qIGFsdGVybmF0ZSBzY3JhbWJsZXIgcmVzZXQgaXMgcmVxdWlyZWQgZm9yIE5VVE1FR1xuIFx0XHRcdCAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3QgcHJvdmlkZVxuIFx0XHRcdCAqIHNpbmsgZGV2aWNlIGlkLCBhbHRlcm5hdGUgc2NyYW1ibGVyIHNjaGVtZSB3aWxsXG4tXHRcdFx0ICogYmUgb3ZlcnJpZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nIEVuY29kZXIgZmVhdHVyZVxuJiM0MztcdFx0XHQgKiBiZSBvdmVycmlkZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nIEVuY29kZXIgZmVhdHVyZVxuIFx0XHRcdCAqL1xuIFx0XHRcdGlmIChzdHJuY21wKGxpbmstXHUwMDNlZHBjZF9jYXBzLmJyYW5jaF9kZXZfbmFtZSxcbiBcdFx0XHRcdERQX1ZHQV9MVkRTX0NPTlZFUlRFUl9JRF8zLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcbmluZGV4IDIwNDM3NWYxZWZmODYuLjU4N2QyNmM3NDJjZDUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcbkBAIC01ODQsNyAmIzQzOzU4NCw3IEBAIHN0YXRpYyBib29sIGRtdWJfc3J2X2h3X3NldHVwKHN0cnVjdCBkbXViX3NydiAqZG11YiwgZW51bSBkbXViX2FzaWMgYXNpYylcbiBcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0Lyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGVuICovXG4mIzQzO1x0Lyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGRlbiAqL1xuIFx0aWYgKGRtdWItXHUwMDNlaW5ib3hfdHlwZSA9PSBETVVCX0NNRF9JTlRFUkZBQ0VfREVGQVVMVCkge1xuIFx0XHRpZiAoZGVmYXVsdF9pbmJveF90eXBlICE9IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7XG4gXHRcdFx0LyogdXNlIGRlZmF1bHQgaW5ib3ggdHlwZSBhcyBzcGVjaWZpZWQgYnkgRENOIHJldiAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHkgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5XG5pbmRleCBkM2I1NmE5ZDg0ZmI3Li5kNmJmYjdiN2Q3YjM5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxuQEAgLTU3Niw3ICYjNDM7NTc2LDcgQEAgY2xhc3MgUGFyc2VyKG9iamVjdCk6XG4gICAgICAgICAgICAgcmFpc2Ugc2VsZi5lcnJvcihlKVxuIFxuICAgICBkZWYgcGFyc2VfdmFyc2V0KHNlbGYsIGF0dHJzKTpcbi0gICAgICAgICMgSW5oZXJpdCB0aGUgdmFyc2V0IGZyb20gdGhlIGVuY2xvc2luZyBkb21haW4gaWYgbm90IG92ZXJyaWRlbjpcbiYjNDM7ICAgICAgICAjIEluaGVyaXQgdGhlIHZhcnNldCBmcm9tIHRoZSBlbmNsb3NpbmcgZG9tYWluIGlmIG5vdCBvdmVycmlkZGVuOlxuICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldFxuICAgICAgICAgaWYgXCYjMzQ7dmFyc2V0XCYjMzQ7IGluIGF0dHJzOlxuICAgICAgICAgICAgIHZhcnNldCA9IHNlbGYuZW51bXNbYXR0cnNbXCYjMzQ7dmFyc2V0XCYjMzQ7XV1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jXG5pbmRleCAzODAzMmJiOTU4MjYyLi4xMGNkNjA2ZDAxYjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jXG5AQCAtMzIzLDcgJiM0MzszMjMsNyBAQCBnZXRfZnBfc3RyYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IG52YmlvcyAqYmlvcylcbiBcdC8qXG4gXHQgKiBUaGUgZnAgc3RyYXAgaXMgbm9ybWFsbHkgZGljdGF0ZWQgYnkgdGhlIFwmIzM0O1VzZXIgU3RyYXBcJiMzNDsgaW5cbiBcdCAqIFBFWFRERVZfQk9PVF8wWzIwOjE2XSwgYnV0IG9uIEJNUCBjYXJkcyB3aGVuIGJpdCAyIG9mIHRoZVxuLVx0ICogSW50ZXJuYWxfRmxhZ3Mgc3RydWN0IGF0IDB4NDggaXMgc2V0LCB0aGUgdXNlciBzdHJhcCBnZXRzIG92ZXJyaWRlblxuJiM0MztcdCAqIEludGVybmFsX0ZsYWdzIHN0cnVjdCBhdCAweDQ4IGlzIHNldCwgdGhlIHVzZXIgc3RyYXAgZ2V0cyBvdmVycmlkZGVuXG4gXHQgKiBieSB0aGUgUENJIHN1YnN5c3RlbSBJRCBkdXJpbmcgUE9TVCwgYnV0IG5vdCBiZWZvcmUgdGhlIHByZXZpb3VzIHVzZXJcbiBcdCAqIHN0cmFwIGhhcyBiZWVuIGNvbW1pdHRlZCB0byBDUjU4IGZvciBDUjU3PTB4ZiBvbiBoZWFkIEEsIHdoaWNoIG1heSBiZVxuIFx0ICogcmVhZCBhbmQgdXNlZCBpbnN0ZWFkXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuYyBiL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmNcbmluZGV4IGJhOGM2OGFlNDU5NTMuLjVhY2NkNDYzNTk5Y2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXG5AQCAtNDc1LDcgJiM0Mzs0NzUsNyBAQCBhYml0dWd1cnVfZGV0ZWN0X2JhbmsxX3NlbnNvcl90eXBlKHN0cnVjdCBhYml0dWd1cnVfZGF0YSAqZGF0YSxcbiBcdHU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107XG4gXHRpbnQgaSwgcmV0ID0gLUVOT0RFVjsgLyogZXJyb3IgaXMgdGhlIG1vc3QgY29tbW9uIHVzZWQgcmV0dmFsIDp8ICovXG4gXG4tXHQvKiBJZiBvdmVycmlkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi9cbiYjNDM7XHQvKiBJZiBvdmVycmlkZGVuIGJ5IHRoZSB1c2VyIHJldHVybiB0aGUgdXNlciBzZWxlY3RlZCB0eXBlICovXG4gXHRpZiAoYmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdIFx1MDAzZT0gQUJJVF9VR1VSVV9JTl9TRU5TT1IgXHUwMDI2XHUwMDI2XG4gXHRcdFx0YmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdIFx1MDAzYz0gQUJJVF9VR1VSVV9OQykge1xuIFx0XHRBQklUX1VHVVJVX0RFQlVHKDIsIFwmIzM0O2Fzc3VtaW5nIHNlbnNvciB0eXBlICVkIGZvciBiYW5rMSBzZW5zb3IgXCYjMzQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG5pbmRleCBlNzYwZDEzZWUzMjVlLi5hMDJiYjJmZWU4NzQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmNcbkBAIC04Niw3ICYjNDM7ODYsNyBAQCBNT0RVTEVfQUxJQVMoXCYjMzQ7bW1jOmJsb2NrXCYjMzQ7KTtcbiBzdGF0aWMgREVGSU5FX01VVEVYKGJsb2NrX211dGV4KTtcbiBcbiAvKlxuLSAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZW4gYnkgbW9kdWxlXG4mIzQzOyAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IG1vZHVsZVxuICAqIG9yIGJvb3Rhcmcgb3B0aW9ucy5cbiAgKi9cbiBzdGF0aWMgaW50IHBlcmRldl9taW5vcnMgPSBDT05GSUdfTU1DX0JMT0NLX01JTk9SUztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmNcbmluZGV4IGVhMzEwMDU3ZmUzYWYuLmJjMzZkNzU3OGNlMjAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xuQEAgLTM3NDMsNyAmIzQzOzM3NDMsNyBAQCBzdGF0aWMgdm9pZCBibngyeF93YXJwY29yZV9lbmFibGVfQU5fS1Ioc3RydWN0IGJueDJ4X3BoeSAqcGh5LFxuIFx0XHR7TURJT19XQ19ERVZBRCwgTURJT19XQ19SRUdfQ0w3Ml9VU0VSQjBfQ0w3Ml9UWF9GSVJfVEFQLCAwfSxcbiBcdH07XG4gXHREUChORVRJRl9NU0dfTElOSywgXCYjMzQ7RW5hYmxlIEF1dG8gTmVnb3RpYXRpb24gZm9yIEtSXFxuXCYjMzQ7KTtcbi1cdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZW4gYnkgMTBHIGZvcmNlICovXG4mIzQzO1x0LyogU2V0IHRvIGRlZmF1bHQgcmVnaXN0ZXJzIHRoYXQgbWF5IGJlIG92ZXJyaWRkZW4gYnkgMTBHIGZvcmNlICovXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHJlZ19zZXQpOyBpJiM0MzsmIzQzOylcbiBcdFx0Ym54MnhfY2w0NV93cml0ZShicCwgcGh5LCByZWdfc2V0W2ldLmRldmFkLCByZWdfc2V0W2ldLnJlZyxcbiBcdFx0XHRcdCByZWdfc2V0W2ldLnZhbCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jXG5pbmRleCAzMWZhYjI0MTU3NDMyLi5iNDM3NGNhMWQ2NTMwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcbkBAIC0yMTk0LDcgJiM0MzsyMTk0LDcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqYmFyMl9hZGRyZXNzKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLFxuICAqXHRAcnNwcTogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSYjMzk7cyBSZXNwb25zZSBRdWV1ZSB0byBiZSBmaWxsZWQgaW5cbiAgKlx0QGlxYXN5bmNoOiBpZiAwLCBhIG5vcm1hbCByc3BxOyBpZiAxLCBhbiBhc3luY2hyb25vdXMgZXZlbnQgcXVldWVcbiAgKlx0QGRldjogdGhlIG5ldHdvcmsgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3IHJzcHFcbi0gKlx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZW4gaW4gTVNJIG1vZGUpXG4mIzQzOyAqXHRAaW50cl9kZXN0OiBNU0ktWCB2ZWN0b3IgaW5kZXggKG92ZXJyaWRkZW4gaW4gTVNJIG1vZGUpXG4gICpcdEBmbDogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSYjMzk7cyBGcmVlIExpc3QgdG8gYmUgZmlsbGVkIGluXG4gICpcdEBobmQ6IHRoZSBpbnRlcnJ1cHQgaGFuZGxlciB0byBpbnZva2UgZm9yIHRoZSByc3BxXG4gICovXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXG5pbmRleCBlMmQ4YzU4ZGVlZjAzLi5jMWQ1ODgzMzc3NTE2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmNcbkBAIC0xMzExLDcgJiM0MzsxMzExLDcgQEAgaW50IG1lbWFjX2luaXRpYWxpemF0aW9uKHN0cnVjdCBtYWNfZGV2aWNlICptYWNfZGV2LFxuIFxuIFx0LyogTW9zdCBib2FyZHMgc2hvdWxkIHVzZSBNTE9fQU5fSU5CQU5ELCBidXQgZXhpc3RpbmcgYm9hcmRzIGRvbiYjMzk7dCBoYXZlXG4gXHQgKiBhIG1hbmFnZWQgcHJvcGVydHkuIERlZmF1bHQgdG8gTUxPX0FOX0lOQkFORCByYXRoZXIgdGhhbiBNTE9fQU5fUEhZLlxuLVx0ICogUGh5bGluayB3aWxsIGFsbG93IHRoaXMgdG8gYmUgb3ZlcnJpZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xuJiM0MztcdCAqIFBoeWxpbmsgd2lsbCBhbGxvdyB0aGlzIHRvIGJlIG92ZXJyaWRkZW4gYnkgYSBmaXhlZCBsaW5rLiBXZSBuZWVkIHRvXG4gXHQgKiBiZSBjYXJlZnVsIGFuZCBub3QgZW5hYmxlIHRoaXMgaWYgd2UgYXJlIHVzaW5nIE1JSSBvciBSR01JSSwgc2luY2VcbiBcdCAqIHRob3NlIGNvbmZpZ3VyYXRpb25zIG1vZGVzIGRvbiYjMzk7dCB1c2UgaW4tYmFuZCBhdXRvbmVnb3RpYXRpb24uXG4gXHQgKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbmluZGV4IGI5ODY2ZTM4OWU2ZDIuLjlhZGZhMDU4NTEyZjMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX3Bjb2wuaFxuQEAgLTEzNTQ3LDcgJiM0MzsxMzU0Nyw3IEBAXG4gICogYW4gYW5jZXN0b3Igb2YgdGhlIGN1cnJlbnQgdXNlciAoc2VlIE1DX0NNRF9TRVRfVklfVVNFUikuIE5vdGUgdGhhdCBMTFxuICAqIHF1ZXVlcyByZXF1aXJlIHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVyIGFsbG9jYXRpb24gYnV0IGJlZm9yZSBpbml0aWFsaXNhdGlvblxuICAqIG9mIHRoZSBxdWV1ZS4gVExQIG9wdGlvbnMgb2YgYSBxdWV1ZSBhcmUgZml4ZWQgYWZ0ZXIgcXVldWUgaXMgaW5pdGlhbGlzZWQsXG4tICogd2l0aCB0aGUgdmFsdWVzIHNldCB0byBjdXJyZW50IGdsb2JhbCB2YWx1ZSBvciB0aGV5IGNhbiBiZSBvdmVycmlkZW4gdXNpbmdcbiYjNDM7ICogd2l0aCB0aGUgdmFsdWVzIHNldCB0byBjdXJyZW50IGdsb2JhbCB2YWx1ZSBvciB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIHVzaW5nXG4gICogdGhpcyBjb21tYW5kLiBBdCBMTCBxdWV1ZSBhbGxvY2F0aW9uLCBhbGwgb3ZlcnJpZGVzIGFyZSBjbGVhcmVkLlxuICAqL1xuICNkZWZpbmUgTUNfQ01EX1NFVF9WSV9UTFBfUFJPQ0VTU0lORyAweGIxXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uYyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmNcbmluZGV4IGZlYjE3MDdmZWI3ZTIuLmM5NDcwZjgwNjI2YjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXG5AQCAtMTczLDcgJiM0MzsxNzMsNyBAQCBzdGF0aWMgYWRhcHRlcl90YWdfaW5mb190IGFpYzc5eHhfdGFnX2luZm9bXSA9XG4gXG4gLypcbiAgKiBUaGUgSS9PIGNlbGwgb24gdGhlIGNoaXAgaXMgdmVyeSBjb25maWd1cmFibGUgaW4gcmVzcGVjdCB0byBpdHMgYW5hbG9nXG4tICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZW4gd2l0aFxuJiM0MzsgKiBjaGFyYWN0ZXJpc3RpY3MuICBTZXQgdGhlIGRlZmF1bHRzIGhlcmU7IHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aFxuICAqIHRoZSBwcm9wZXIgaW5zbW9kIHBhcmFtZXRlcnMuXG4gICovXG4gc3RydWN0IGFoZF9saW51eF9pb2NlbGxfb3B0c1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaCBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaFxuaW5kZXggMTFmNWRjMjlhYTU5Ny4uODc5MGYxMzE1Zjc1NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXG5AQCAtMTI4LDcgJiM0MzsxMjgsNyBAQCBzdHJ1Y3Qgc3ltX2RyaXZlcl9zZXR1cCB7XG4gLypcbiAgKiAgSW5pdGlhbCBzZXR1cC5cbiAgKlxuLSAqICBDYW4gYmUgb3ZlcnJpZGVuIGF0IHN0YXJ0dXAgYnkgYSBjb21tYW5kIGxpbmUuXG4mIzQzOyAqICBDYW4gYmUgb3ZlcnJpZGRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxuICAqL1xuICNkZWZpbmUgU1lNX0xJTlVYX0RSSVZFUl9TRVRVUFx0e1x0XHRcdFx0XFxcbiBcdC5tYXhfdGFnXHQ9IENPTkZJR19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1MsXHRcXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jIGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbmluZGV4IGEzMzU1MTQ3ZjVkZTUuLjkwZjM5OTBlMDA2MGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbkBAIC0xMjQ0LDcgJiM0MzsxMjQ0LDcgQEAgc3RhdGljIGludCBvbWFwMl9tY3NwaV90cmFuc2Zlcl9vbmUoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLFxuIFx0XHRvbWFwMl9tY3NwaV9zZXRfZmlmbyhzcGksIHQsIDApO1xuIFxuIG91dDpcbi1cdC8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRlbiAqL1xuJiM0MztcdC8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRkZW4gKi9cbiBcdGlmIChwYXJfb3ZlcnJpZGUpIHtcbiBcdFx0cGFyX292ZXJyaWRlID0gMDtcbiBcdFx0c3RhdHVzID0gb21hcDJfbWNzcGlfc2V0dXBfdHJhbnNmZXIoc3BpLCBOVUxMKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuY1xuaW5kZXggOWYwNTViYTc3NmM4MS4uNjUwMWY2ZTI2MTVhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcbkBAIC01OCw3ICYjNDM7NTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7XG4gXHQuYWNjZWwgPSBGQl9BQ0NFTF9OT05FLFxuIH07XG4gXG4tLyogZGVmYXVsdHMgd2hpY2ggYXJlIG5vcm1hbGx5IG92ZXJyaWRlbiBieSB1c2VyIHZhbHVlcyAqL1xuJiM0MzsvKiBkZWZhdWx0cyB3aGljaCBhcmUgbm9ybWFsbHkgb3ZlcnJpZGRlbiBieSB1c2VyIHZhbHVlcyAqL1xuIFxuIC8qIHZpZGVvIG1vZGUgKi9cbiBzdGF0aWMgY2hhciAqbW9kZV9vcHRpb247XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6MDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgZml4ZXMgYSB0eXBvICgmIzM5O292ZXJyaWRlbiYjMzk7IHRvICYjMzk7b3ZlcnJpZGRlbiYjMzk7KSBpbiBjb2RlIGNvbW1lbnRzIGFjcm9zcyB2YXJpb3VzIGRyaXZlcnMuIFRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQ0MjBhZWM0NDFkOTg1YTE4ZDIzNzg2OTM4NGQ1YzdkZDg4Mzk0OWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyAyNiAwOTowODoyMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmMKaW5kZXggMzNiNTEzNmY3Y2UzOS4uNzViZGFkMjJiZjY5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmMKQEAgLTE4MDUsNyAmIzQzOzE4MDUsNyBAQCBzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbgogCXYtJmd0O0RJU1BDTEtXaXRoUmFtcGluZyA9IDA7CiAJdi0mZ3Q7RElTUENMS1dpdGhvdXRSYW1waW5nID0gMDsKIAl2LSZndDtHbG9iYWxEUFBDTEsgPSAwLjA7Ci0JLyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGVuICovCiYjNDM7CS8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi8KIAl2LSZndDtJZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVt2LSZndDtWb2x0YWdlTGV2ZWxdW3YtJmd0O21heE1wY0NvbWJdID0gZG1sX21pbjMoCiAJCQl2LSZndDtSZXR1cm5CdXNXaWR0aCAqIHYtJmd0O0RDRkNMSywKIAkJCXYtJmd0O0RSQU1TcGVlZFBlclN0YXRlW3YtJmd0O1ZvbHRhZ2VMZXZlbF0gKiB2LSZndDtOdW1iZXJPZkNoYW5uZWxzICogdi0mZ3Q7RFJBTUNoYW5uZWxXaWR0aCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMKaW5kZXggODA2NGM0YjNmZDI1OS4uM2Y2MmVhNDkzNzg3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMKQEAgLTIwNDUsNyAmIzQzOzIwNDUsNyBAQCBzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbgogCXYtJmd0O0RJU1BDTEtXaXRoUmFtcGluZyA9IDA7CiAJdi0mZ3Q7RElTUENMS1dpdGhvdXRSYW1waW5nID0gMDsKIAl2LSZndDtHbG9iYWxEUFBDTEsgPSAwLjA7Ci0JLyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGVuICovCiYjNDM7CS8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi8KIAl7CiAJZG91YmxlIElkZWFsRmFicmljQW5kU0RQUG9ydEJhbmR3aWR0aFBlclN0YXRlID0gZG1sX21pbigKIAkJCXYtJmd0O1JldHVybkJ1c1dpZHRoICogdi0mZ3Q7RENGQ0xLU3RhdGVbdi0mZ3Q7Vm9sdGFnZUxldmVsXVt2LSZndDttYXhNcGNDb21iXSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jCmluZGV4IDE2OTUxYTk1NTBmMjUuLmQzZmU2ZTAyNDg5MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuYwpAQCAtMTA4LDcgJiM0MzsxMDgsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspCiAJCQkvKiBhbHRlcm5hdGUgc2NyYW1ibGVyIHJlc2V0IGlzIHJlcXVpcmVkIGZvciBUcmF2aXMKIAkJCSAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3QKIAkJCSAqIHByb3ZpZGUgc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXIKLQkJCSAqIHNjaGVtZSB3aWxsICBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcKJiM0MzsJCQkgKiBzY2hlbWUgd2lsbCAgYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZwogCQkJICogRW5jb2RlciBmZWF0dXJlcwogCQkJICovCiAJCQlpZiAoc3RybmNtcCgKQEAgLTEyNCw3ICYjNDM7MTI0LDcgQEAgZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKQogCQkJLyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgTlVUTUVHCiAJCQkgKiBmb3IgdGhlIGNhc2Ugd2hlbiBleHRlcm5hbCBjaGlwIGRvZXMgbm90IHByb3ZpZGUKIAkJCSAqIHNpbmsgZGV2aWNlIGlkLCBhbHRlcm5hdGUgc2NyYW1ibGVyIHNjaGVtZSB3aWxsCi0JCQkgKiBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlCiYjNDM7CQkJICogYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZyBFbmNvZGVyIGZlYXR1cmUKIAkJCSAqLwogCQkJaWYgKHN0cm5jbXAobGluay0mZ3Q7ZHBjZF9jYXBzLmJyYW5jaF9kZXZfbmFtZSwKIAkJCQlEUF9WR0FfTFZEU19DT05WRVJURVJfSURfMywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMKaW5kZXggMjA0Mzc1ZjFlZmY4Ni4uNTg3ZDI2Yzc0MmNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMKQEAgLTU4NCw3ICYjNDM7NTg0LDcgQEAgc3RhdGljIGJvb2wgZG11Yl9zcnZfaHdfc2V0dXAoc3RydWN0IGRtdWJfc3J2ICpkbXViLCBlbnVtIGRtdWJfYXNpYyBhc2ljKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JLyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGVuICovCiYjNDM7CS8qIHNldCBkZWZhdWx0IGluYm94IHR5cGUgaWYgbm90IG92ZXJyaWRkZW4gKi8KIAlpZiAoZG11Yi0mZ3Q7aW5ib3hfdHlwZSA9PSBETVVCX0NNRF9JTlRFUkZBQ0VfREVGQVVMVCkgewogCQlpZiAoZGVmYXVsdF9pbmJveF90eXBlICE9IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7CiAJCQkvKiB1c2UgZGVmYXVsdCBpbmJveCB0eXBlIGFzIHNwZWNpZmllZCBieSBEQ04gcmV2ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5IGIvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weQppbmRleCBkM2I1NmE5ZDg0ZmI3Li5kNmJmYjdiN2Q3YjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5CiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHkKQEAgLTU3Niw3ICYjNDM7NTc2LDcgQEAgY2xhc3MgUGFyc2VyKG9iamVjdCk6CiAgICAgICAgICAgICByYWlzZSBzZWxmLmVycm9yKGUpCiAKICAgICBkZWYgcGFyc2VfdmFyc2V0KHNlbGYsIGF0dHJzKToKLSAgICAgICAgIyBJbmhlcml0IHRoZSB2YXJzZXQgZnJvbSB0aGUgZW5jbG9zaW5nIGRvbWFpbiBpZiBub3Qgb3ZlcnJpZGVuOgomIzQzOyAgICAgICAgIyBJbmhlcml0IHRoZSB2YXJzZXQgZnJvbSB0aGUgZW5jbG9zaW5nIGRvbWFpbiBpZiBub3Qgb3ZlcnJpZGRlbjoKICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldAogICAgICAgICBpZiAmIzM0O3ZhcnNldCYjMzQ7IGluIGF0dHJzOgogICAgICAgICAgICAgdmFyc2V0ID0gc2VsZi5lbnVtc1thdHRyc1smIzM0O3ZhcnNldCYjMzQ7XV0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMKaW5kZXggMzgwMzJiYjk1ODI2Mi4uMTBjZDYwNmQwMWI5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMKQEAgLTMyMyw3ICYjNDM7MzIzLDcgQEAgZ2V0X2ZwX3N0cmFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBudmJpb3MgKmJpb3MpCiAJLyoKIAkgKiBUaGUgZnAgc3RyYXAgaXMgbm9ybWFsbHkgZGljdGF0ZWQgYnkgdGhlICYjMzQ7VXNlciBTdHJhcCYjMzQ7IGluCiAJICogUEVYVERFVl9CT09UXzBbMjA6MTZdLCBidXQgb24gQk1QIGNhcmRzIHdoZW4gYml0IDIgb2YgdGhlCi0JICogSW50ZXJuYWxfRmxhZ3Mgc3RydWN0IGF0IDB4NDggaXMgc2V0LCB0aGUgdXNlciBzdHJhcCBnZXRzIG92ZXJyaWRlbgomIzQzOwkgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGRlbgogCSAqIGJ5IHRoZSBQQ0kgc3Vic3lzdGVtIElEIGR1cmluZyBQT1NULCBidXQgbm90IGJlZm9yZSB0aGUgcHJldmlvdXMgdXNlcgogCSAqIHN0cmFwIGhhcyBiZWVuIGNvbW1pdHRlZCB0byBDUjU4IGZvciBDUjU3PTB4ZiBvbiBoZWFkIEEsIHdoaWNoIG1heSBiZQogCSAqIHJlYWQgYW5kIHVzZWQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuYyBiL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMKaW5kZXggYmE4YzY4YWU0NTk1My4uNWFjY2Q0NjM1OTljYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jCkBAIC00NzUsNyAmIzQzOzQ3NSw3IEBAIGFiaXR1Z3VydV9kZXRlY3RfYmFuazFfc2Vuc29yX3R5cGUoc3RydWN0IGFiaXR1Z3VydV9kYXRhICpkYXRhLAogCXU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107CiAJaW50IGksIHJldCA9IC1FTk9ERVY7IC8qIGVycm9yIGlzIHRoZSBtb3N0IGNvbW1vbiB1c2VkIHJldHZhbCA6fCAqLwogCi0JLyogSWYgb3ZlcnJpZGVuIGJ5IHRoZSB1c2VyIHJldHVybiB0aGUgdXNlciBzZWxlY3RlZCB0eXBlICovCiYjNDM7CS8qIElmIG92ZXJyaWRkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi8KIAlpZiAoYmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdICZndDs9IEFCSVRfVUdVUlVfSU5fU0VOU09SICZhbXA7JmFtcDsKIAkJCWJhbmsxX3R5cGVzW3NlbnNvcl9hZGRyXSAmbHQ7PSBBQklUX1VHVVJVX05DKSB7CiAJCUFCSVRfVUdVUlVfREVCVUcoMiwgJiMzNDthc3N1bWluZyBzZW5zb3IgdHlwZSAlZCBmb3IgYmFuazEgc2Vuc29yICYjMzQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMKaW5kZXggZTc2MGQxM2VlMzI1ZS4uYTAyYmIyZmVlODc0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suYwpAQCAtODYsNyAmIzQzOzg2LDcgQEAgTU9EVUxFX0FMSUFTKCYjMzQ7bW1jOmJsb2NrJiMzNDspOwogc3RhdGljIERFRklORV9NVVRFWChibG9ja19tdXRleCk7CiAKIC8qCi0gKiBUaGUgZGVmYXVsdHMgY29tZSBmcm9tIGNvbmZpZyBvcHRpb25zIGJ1dCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IG1vZHVsZQomIzQzOyAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IG1vZHVsZQogICogb3IgYm9vdGFyZyBvcHRpb25zLgogICovCiBzdGF0aWMgaW50IHBlcmRldl9taW5vcnMgPSBDT05GSUdfTU1DX0JMT0NLX01JTk9SUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYwppbmRleCBlYTMxMDA1N2ZlM2FmLi5iYzM2ZDc1NzhjZTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9saW5rLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jCkBAIC0zNzQzLDcgJiM0MzszNzQzLDcgQEAgc3RhdGljIHZvaWQgYm54Mnhfd2FycGNvcmVfZW5hYmxlX0FOX0tSKHN0cnVjdCBibngyeF9waHkgKnBoeSwKIAkJe01ESU9fV0NfREVWQUQsIE1ESU9fV0NfUkVHX0NMNzJfVVNFUkIwX0NMNzJfVFhfRklSX1RBUCwgMH0sCiAJfTsKIAlEUChORVRJRl9NU0dfTElOSywgJiMzNDtFbmFibGUgQXV0byBOZWdvdGlhdGlvbiBmb3IgS1JcbiYjMzQ7KTsKLQkvKiBTZXQgdG8gZGVmYXVsdCByZWdpc3RlcnMgdGhhdCBtYXkgYmUgb3ZlcnJpZGVuIGJ5IDEwRyBmb3JjZSAqLwomIzQzOwkvKiBTZXQgdG8gZGVmYXVsdCByZWdpc3RlcnMgdGhhdCBtYXkgYmUgb3ZlcnJpZGRlbiBieSAxMEcgZm9yY2UgKi8KIAlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRShyZWdfc2V0KTsgaSYjNDM7JiM0MzspCiAJCWJueDJ4X2NsNDVfd3JpdGUoYnAsIHBoeSwgcmVnX3NldFtpXS5kZXZhZCwgcmVnX3NldFtpXS5yZWcsCiAJCQkJIHJlZ19zZXRbaV0udmFsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuYwppbmRleCAzMWZhYjI0MTU3NDMyLi5iNDM3NGNhMWQ2NTMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3NnZS5jCkBAIC0yMTk0LDcgJiM0MzsyMTk0LDcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqYmFyMl9hZGRyZXNzKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLAogICoJQHJzcHE6IHBvaW50ZXIgdG8gdGhlIG5ldyByeHEmIzM5O3MgUmVzcG9uc2UgUXVldWUgdG8gYmUgZmlsbGVkIGluCiAgKglAaXFhc3luY2g6IGlmIDAsIGEgbm9ybWFsIHJzcHE7IGlmIDEsIGFuIGFzeW5jaHJvbm91cyBldmVudCBxdWV1ZQogICoJQGRldjogdGhlIG5ldHdvcmsgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3IHJzcHEKLSAqCUBpbnRyX2Rlc3Q6IE1TSS1YIHZlY3RvciBpbmRleCAob3ZlcnJpZGVuIGluIE1TSSBtb2RlKQomIzQzOyAqCUBpbnRyX2Rlc3Q6IE1TSS1YIHZlY3RvciBpbmRleCAob3ZlcnJpZGRlbiBpbiBNU0kgbW9kZSkKICAqCUBmbDogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSYjMzk7cyBGcmVlIExpc3QgdG8gYmUgZmlsbGVkIGluCiAgKglAaG5kOiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgdG8gaW52b2tlIGZvciB0aGUgcnNwcQogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmMKaW5kZXggZTJkOGM1OGRlZWYwMy4uYzFkNTg4MzM3NzUxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuYwpAQCAtMTMxMSw3ICYjNDM7MTMxMSw3IEBAIGludCBtZW1hY19pbml0aWFsaXphdGlvbihzdHJ1Y3QgbWFjX2RldmljZSAqbWFjX2RldiwKIAogCS8qIE1vc3QgYm9hcmRzIHNob3VsZCB1c2UgTUxPX0FOX0lOQkFORCwgYnV0IGV4aXN0aW5nIGJvYXJkcyBkb24mIzM5O3QgaGF2ZQogCSAqIGEgbWFuYWdlZCBwcm9wZXJ0eS4gRGVmYXVsdCB0byBNTE9fQU5fSU5CQU5EIHJhdGhlciB0aGFuIE1MT19BTl9QSFkuCi0JICogUGh5bGluayB3aWxsIGFsbG93IHRoaXMgdG8gYmUgb3ZlcnJpZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0bwomIzQzOwkgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0bwogCSAqIGJlIGNhcmVmdWwgYW5kIG5vdCBlbmFibGUgdGhpcyBpZiB3ZSBhcmUgdXNpbmcgTUlJIG9yIFJHTUlJLCBzaW5jZQogCSAqIHRob3NlIGNvbmZpZ3VyYXRpb25zIG1vZGVzIGRvbiYjMzk7dCB1c2UgaW4tYmFuZCBhdXRvbmVnb3RpYXRpb24uCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmgKaW5kZXggYjk4NjZlMzg5ZTZkMi4uOWFkZmEwNTg1MTJmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfcGNvbC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX3Bjb2wuaApAQCAtMTM1NDcsNyAmIzQzOzEzNTQ3LDcgQEAKICAqIGFuIGFuY2VzdG9yIG9mIHRoZSBjdXJyZW50IHVzZXIgKHNlZSBNQ19DTURfU0VUX1ZJX1VTRVIpLiBOb3RlIHRoYXQgTEwKICAqIHF1ZXVlcyByZXF1aXJlIHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVyIGFsbG9jYXRpb24gYnV0IGJlZm9yZSBpbml0aWFsaXNhdGlvbgogICogb2YgdGhlIHF1ZXVlLiBUTFAgb3B0aW9ucyBvZiBhIHF1ZXVlIGFyZSBmaXhlZCBhZnRlciBxdWV1ZSBpcyBpbml0aWFsaXNlZCwKLSAqIHdpdGggdGhlIHZhbHVlcyBzZXQgdG8gY3VycmVudCBnbG9iYWwgdmFsdWUgb3IgdGhleSBjYW4gYmUgb3ZlcnJpZGVuIHVzaW5nCiYjNDM7ICogd2l0aCB0aGUgdmFsdWVzIHNldCB0byBjdXJyZW50IGdsb2JhbCB2YWx1ZSBvciB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIHVzaW5nCiAgKiB0aGlzIGNvbW1hbmQuIEF0IExMIHF1ZXVlIGFsbG9jYXRpb24sIGFsbCBvdmVycmlkZXMgYXJlIGNsZWFyZWQuCiAgKi8KICNkZWZpbmUgTUNfQ01EX1NFVF9WSV9UTFBfUFJPQ0VTU0lORyAweGIxCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uYwppbmRleCBmZWIxNzA3ZmViN2UyLi5jOTQ3MGY4MDYyNmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmMKQEAgLTE3Myw3ICYjNDM7MTczLDcgQEAgc3RhdGljIGFkYXB0ZXJfdGFnX2luZm9fdCBhaWM3OXh4X3RhZ19pbmZvW10gPQogCiAvKgogICogVGhlIEkvTyBjZWxsIG9uIHRoZSBjaGlwIGlzIHZlcnkgY29uZmlndXJhYmxlIGluIHJlc3BlY3QgdG8gaXRzIGFuYWxvZwotICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZW4gd2l0aAomIzQzOyAqIGNoYXJhY3RlcmlzdGljcy4gIFNldCB0aGUgZGVmYXVsdHMgaGVyZTsgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoCiAgKiB0aGUgcHJvcGVyIGluc21vZCBwYXJhbWV0ZXJzLgogICovCiBzdHJ1Y3QgYWhkX2xpbnV4X2lvY2VsbF9vcHRzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmggYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmgKaW5kZXggMTFmNWRjMjlhYTU5Ny4uODc5MGYxMzE1Zjc1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9zeW01M2M4eHguaApAQCAtMTI4LDcgJiM0MzsxMjgsNyBAQCBzdHJ1Y3Qgc3ltX2RyaXZlcl9zZXR1cCB7CiAvKgogICogIEluaXRpYWwgc2V0dXAuCiAgKgotICogIENhbiBiZSBvdmVycmlkZW4gYXQgc3RhcnR1cCBieSBhIGNvbW1hbmQgbGluZS4KJiM0MzsgKiAgQ2FuIGJlIG92ZXJyaWRkZW4gYXQgc3RhcnR1cCBieSBhIGNvbW1hbmQgbGluZS4KICAqLwogI2RlZmluZSBTWU1fTElOVVhfRFJJVkVSX1NFVFVQCXsJCQkJXAogCS5tYXhfdGFnCT0gQ09ORklHX1NDU0lfU1lNNTNDOFhYX0RFRkFVTFRfVEFHUywJXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwppbmRleCBhMzM1NTE0N2Y1ZGU1Li45MGYzOTkwZTAwNjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYwpAQCAtMTI0NCw3ICYjNDM7MTI0NCw3IEBAIHN0YXRpYyBpbnQgb21hcDJfbWNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RsciwKIAkJb21hcDJfbWNzcGlfc2V0X2ZpZm8oc3BpLCB0LCAwKTsKIAogb3V0OgotCS8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRlbiAqLwomIzQzOwkvKiBSZXN0b3JlIGRlZmF1bHRzIGlmIHRoZXkgd2VyZSBvdmVycmlkZGVuICovCiAJaWYgKHBhcl9vdmVycmlkZSkgewogCQlwYXJfb3ZlcnJpZGUgPSAwOwogCQlzdGF0dXMgPSBvbWFwMl9tY3NwaV9zZXR1cF90cmFuc2ZlcihzcGksIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmMKaW5kZXggOWYwNTViYTc3NmM4MS4uNjUwMWY2ZTI2MTVhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jCkBAIC01OCw3ICYjNDM7NTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7CiAJLmFjY2VsID0gRkJfQUNDRUxfTk9ORSwKIH07CiAKLS8qIGRlZmF1bHRzIHdoaWNoIGFyZSBub3JtYWxseSBvdmVycmlkZW4gYnkgdXNlciB2YWx1ZXMgKi8KJiM0MzsvKiBkZWZhdWx0cyB3aGljaCBhcmUgbm9ybWFsbHkgb3ZlcnJpZGRlbiBieSB1c2VyIHZhbHVlcyAqLwogCiAvKiB2aWRlbyBtb2RlICovCiBzdGF0aWMgY2hhciAqbW9kZV9vcHRpb247CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzMTgKCQkJCQkJCW91dHB1dDogNjQKCQkJCQkJCXRob3VnaHRzOiAzOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVHlwbyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQmIzM5O3MganVzdCBhIHR5cG8gZml4LCBjaGFuZ2luZyAmIzM0O292ZXJyaWRlbiYjMzQ7IHRvICYjMzQ7b3ZlcnJpZGRlbi4mIzM0OyBJIHNlZSBpdCYjMzk7cyBzcHJlYWQgYWNyb3NzIGEgYnVuY2ggb2YgZGlmZmVyZW50IGRyaXZlcnMgYW5kIGZpbGVzLCBjb3ZlcmluZyBhIGRlY2VudCByYW5nZSBvZiB0aGUga2VybmVsLCBmcm9tIEdQVSBhbmQgZGlzcGxheSBzdHVmZiAoQU1ELCBNU00sIE5vdXZlYXUpIHRvIG5ldHdvcmsgZHJpdmVycyAoQnJvYWRjb20sIENoZWxzaW8sIEZyZWVzY2FsZSwgZXRjLiksIHN0b3JhZ2UgKE1NQywgU0NTSSksIGFuZCBzb21lIG90aGVycyBsaWtlIFNQSSBhbmQgZXZlbiBhIHZpZGVvIGZyYW1lYnVmZmVyLiBUaGUgbGlzdCBzZWVtcyBwcmV0dHkgY29tcHJlaGVuc2l2ZS4KClRoZSBrZXkgdGhpbmcgaXMsIGl0JiMzOTtzIGFsbCBpbiBjb21tZW50cy4gVGhlcmUmIzM5O3MgemVybyBjb2RlIG1vZGlmaWNhdGlvbiwgc3RyaWN0bHkgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLiBUaGlzIG1lYW5zIGl0IGhhcyBhYnNvbHV0ZWx5IG5vIGltcGFjdCBvbiBmdW5jdGlvbmFsaXR5LiBJdCYjMzk7cyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdG8gaW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgY29ycmVjdG5lc3MuCgpHaXZlbiB0aGlzLCB0aGVyZSYjMzk7cyBubyB3YXkgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFueSBuZXcgaXNzdWVzLiBJdCBpcyBhIHZlcnkgbG93IHJpc2sgY2hhbmdlLiBUaGVyZWZvcmUsIEkmIzM5O20gbWFya2luZyBpdCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIFRoZXJlJiMzOTtzIG5vdGhpbmcgaGVyZSB0aGF0JiMzOTtzIGdvaW5nIHRvIHRyaWdnZXIgYW55IGludGVyZXN0aW5nIGZ1enppbmcgcmVzdWx0cy4gSXQgaXMgc2ltcGx5IGEgaGVscGZ1bCBlZGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI2IDA5OjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCYjMzk7b3ZlcnJpZGVuJiMzOTsgdG8gJiMzOTtvdmVycmlkZGVuJiMzOTspIGluIGNvZGUgY29tbWVudHMgYWNyb3NzIHZhcmlvdXMgZHJpdmVycy4gVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGZpeGVzIGEgdHlwbyAoJiMzOTtvdmVycmlkZW4mIzM5OyB0byAmIzM5O292ZXJyaWRkZW4mIzM5OykgaW4gY29kZSBjb21tZW50cyBhY3Jvc3MgdmFyaW91cyBkcml2ZXJzLiBUaGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjYgMDk6MDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjA4OjIzLjMzMTIzMTc1M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0ODczNTc0NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGZpeGVzIGEgdHlwbyAoJ292ZXJyaWRlbicgdG8gJ292ZXJyaWRkZW4nKSBpbiBjb2RlIGNvbW1lbnRzIGFjcm9zcyB2YXJpb3VzIGRyaXZlcnMuIFRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6MDg6MjMuMzMxMjM2OTEzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjUwMzA0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0NDIwYWVjNDQxZDk4NWExOGQyMzc4NjkzODRkNWM3ZGQ4ODM5NDlkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDI2IDA5OjA4OjIyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcXG5pbmRleCAzM2I1MTM2ZjdjZTM5Li43NWJkYWQyMmJmNjkyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcXG5AQCAtMTgwNSw3ICsxODA1LDcgQEAgc3RhdGljIHZvaWQgRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5cXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhvdXRSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlR2xvYmFsRFBQQ0xLID0gMC4wO1xcbi1cXHQvKiBEQUwgY3VzdG9tIGNvZGU6IG5lZWQgdG8gdXBkYXRlIFJldHVybkJXIGluIGNhc2UgbWluIGRjZmNsayBpcyBvdmVycmlkZW4gKi9cXG4rXFx0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xcbiBcXHR2LVxcdTAwM2VJZGVhbFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZVt2LVxcdTAwM2VWb2x0YWdlTGV2ZWxdW3YtXFx1MDAzZW1heE1wY0NvbWJdID0gZG1sX21pbjMoXFxuIFxcdFxcdFxcdHYtXFx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cXHUwMDNlRENGQ0xLLFxcbiBcXHRcXHRcXHR2LVxcdTAwM2VEUkFNU3BlZWRQZXJTdGF0ZVt2LVxcdTAwM2VWb2x0YWdlTGV2ZWxdICogdi1cXHUwMDNlTnVtYmVyT2ZDaGFubmVscyAqIHYtXFx1MDAzZURSQU1DaGFubmVsV2lkdGgsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmNcXG5pbmRleCA4MDY0YzRiM2ZkMjU5Li4zZjYyZWE0OTM3ODczIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmNcXG5AQCAtMjA0NSw3ICsyMDQ1LDcgQEAgc3RhdGljIHZvaWQgRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5cXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlRElTUENMS1dpdGhvdXRSYW1waW5nID0gMDtcXG4gXFx0di1cXHUwMDNlR2xvYmFsRFBQQ0xLID0gMC4wO1xcbi1cXHQvKiBEQUwgY3VzdG9tIGNvZGU6IG5lZWQgdG8gdXBkYXRlIFJldHVybkJXIGluIGNhc2UgbWluIGRjZmNsayBpcyBvdmVycmlkZW4gKi9cXG4rXFx0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xcbiBcXHR7XFxuIFxcdGRvdWJsZSBJZGVhbEZhYnJpY0FuZFNEUFBvcnRCYW5kd2lkdGhQZXJTdGF0ZSA9IGRtbF9taW4oXFxuIFxcdFxcdFxcdHYtXFx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cXHUwMDNlRENGQ0xLU3RhdGVbdi1cXHUwMDNlVm9sdGFnZUxldmVsXVt2LVxcdTAwM2VtYXhNcGNDb21iXSxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcXG5pbmRleCAxNjk1MWE5NTUwZjI1Li5kM2ZlNmUwMjQ4OTE4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jXFxuQEAgLTEwOCw3ICsxMDgsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspXFxuIFxcdFxcdFxcdC8qIGFsdGVybmF0ZSBzY3JhbWJsZXIgcmVzZXQgaXMgcmVxdWlyZWQgZm9yIFRyYXZpc1xcbiBcXHRcXHRcXHQgKiBmb3IgdGhlIGNhc2Ugd2hlbiBleHRlcm5hbCBjaGlwIGRvZXMgbm90XFxuIFxcdFxcdFxcdCAqIHByb3ZpZGUgc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXJcXG4tXFx0XFx0XFx0ICogc2NoZW1lIHdpbGwgIGJlIG92ZXJyaWRlbiBsYXRlciBieSBxdWVyeWluZ1xcbitcXHRcXHRcXHQgKiBzY2hlbWUgd2lsbCAgYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZ1xcbiBcXHRcXHRcXHQgKiBFbmNvZGVyIGZlYXR1cmVzXFxuIFxcdFxcdFxcdCAqL1xcbiBcXHRcXHRcXHRpZiAoc3RybmNtcChcXG5AQCAtMTI0LDcgKzEyNCw3IEBAIGVudW0gZHBfcGFuZWxfbW9kZSBkcF9nZXRfcGFuZWxfbW9kZShzdHJ1Y3QgZGNfbGluayAqbGluaylcXG4gXFx0XFx0XFx0LyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgTlVUTUVHXFxuIFxcdFxcdFxcdCAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3QgcHJvdmlkZVxcbiBcXHRcXHRcXHQgKiBzaW5rIGRldmljZSBpZCwgYWx0ZXJuYXRlIHNjcmFtYmxlciBzY2hlbWUgd2lsbFxcbi1cXHRcXHRcXHQgKiBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlXFxuK1xcdFxcdFxcdCAqIGJlIG92ZXJyaWRkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlXFxuIFxcdFxcdFxcdCAqL1xcbiBcXHRcXHRcXHRpZiAoc3RybmNtcChsaW5rLVxcdTAwM2VkcGNkX2NhcHMuYnJhbmNoX2Rldl9uYW1lLFxcbiBcXHRcXHRcXHRcXHREUF9WR0FfTFZEU19DT05WRVJURVJfSURfMyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuY1xcbmluZGV4IDIwNDM3NWYxZWZmODYuLjU4N2QyNmM3NDJjZDUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuY1xcbkBAIC01ODQsNyArNTg0LDcgQEAgc3RhdGljIGJvb2wgZG11Yl9zcnZfaHdfc2V0dXAoc3RydWN0IGRtdWJfc3J2ICpkbXViLCBlbnVtIGRtdWJfYXNpYyBhc2ljKVxcbiBcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcdH1cXG4gXFxuLVxcdC8qIHNldCBkZWZhdWx0IGluYm94IHR5cGUgaWYgbm90IG92ZXJyaWRlbiAqL1xcbitcXHQvKiBzZXQgZGVmYXVsdCBpbmJveCB0eXBlIGlmIG5vdCBvdmVycmlkZGVuICovXFxuIFxcdGlmIChkbXViLVxcdTAwM2VpbmJveF90eXBlID09IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7XFxuIFxcdFxcdGlmIChkZWZhdWx0X2luYm94X3R5cGUgIT0gRE1VQl9DTURfSU5URVJGQUNFX0RFRkFVTFQpIHtcXG4gXFx0XFx0XFx0LyogdXNlIGRlZmF1bHQgaW5ib3ggdHlwZSBhcyBzcGVjaWZpZWQgYnkgRENOIHJldiAqL1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5IGIvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxcbmluZGV4IGQzYjU2YTlkODRmYjcuLmQ2YmZiN2I3ZDdiMzkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weVxcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHlcXG5AQCAtNTc2LDcgKzU3Niw3IEBAIGNsYXNzIFBhcnNlcihvYmplY3QpOlxcbiAgICAgICAgICAgICByYWlzZSBzZWxmLmVycm9yKGUpXFxuIFxcbiAgICAgZGVmIHBhcnNlX3ZhcnNldChzZWxmLCBhdHRycyk6XFxuLSAgICAgICAgIyBJbmhlcml0IHRoZSB2YXJzZXQgZnJvbSB0aGUgZW5jbG9zaW5nIGRvbWFpbiBpZiBub3Qgb3ZlcnJpZGVuOlxcbisgICAgICAgICMgSW5oZXJpdCB0aGUgdmFyc2V0IGZyb20gdGhlIGVuY2xvc2luZyBkb21haW4gaWYgbm90IG92ZXJyaWRkZW46XFxuICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldFxcbiAgICAgICAgIGlmIFxcXCJ2YXJzZXRcXFwiIGluIGF0dHJzOlxcbiAgICAgICAgICAgICB2YXJzZXQgPSBzZWxmLmVudW1zW2F0dHJzW1xcXCJ2YXJzZXRcXFwiXV1cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuY1xcbmluZGV4IDM4MDMyYmI5NTgyNjIuLjEwY2Q2MDZkMDFiOTMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuY1xcbkBAIC0zMjMsNyArMzIzLDcgQEAgZ2V0X2ZwX3N0cmFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBudmJpb3MgKmJpb3MpXFxuIFxcdC8qXFxuIFxcdCAqIFRoZSBmcCBzdHJhcCBpcyBub3JtYWxseSBkaWN0YXRlZCBieSB0aGUgXFxcIlVzZXIgU3RyYXBcXFwiIGluXFxuIFxcdCAqIFBFWFRERVZfQk9PVF8wWzIwOjE2XSwgYnV0IG9uIEJNUCBjYXJkcyB3aGVuIGJpdCAyIG9mIHRoZVxcbi1cXHQgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGVuXFxuK1xcdCAqIEludGVybmFsX0ZsYWdzIHN0cnVjdCBhdCAweDQ4IGlzIHNldCwgdGhlIHVzZXIgc3RyYXAgZ2V0cyBvdmVycmlkZGVuXFxuIFxcdCAqIGJ5IHRoZSBQQ0kgc3Vic3lzdGVtIElEIGR1cmluZyBQT1NULCBidXQgbm90IGJlZm9yZSB0aGUgcHJldmlvdXMgdXNlclxcbiBcXHQgKiBzdHJhcCBoYXMgYmVlbiBjb21taXR0ZWQgdG8gQ1I1OCBmb3IgQ1I1Nz0weGYgb24gaGVhZCBBLCB3aGljaCBtYXkgYmVcXG4gXFx0ICogcmVhZCBhbmQgdXNlZCBpbnN0ZWFkXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXFxuaW5kZXggYmE4YzY4YWU0NTk1My4uNWFjY2Q0NjM1OTljYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXFxuKysrIGIvZHJpdmVycy9od21vbi9hYml0dWd1cnUuY1xcbkBAIC00NzUsNyArNDc1LDcgQEAgYWJpdHVndXJ1X2RldGVjdF9iYW5rMV9zZW5zb3JfdHlwZShzdHJ1Y3QgYWJpdHVndXJ1X2RhdGEgKmRhdGEsXFxuIFxcdHU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107XFxuIFxcdGludCBpLCByZXQgPSAtRU5PREVWOyAvKiBlcnJvciBpcyB0aGUgbW9zdCBjb21tb24gdXNlZCByZXR2YWwgOnwgKi9cXG4gXFxuLVxcdC8qIElmIG92ZXJyaWRlbiBieSB0aGUgdXNlciByZXR1cm4gdGhlIHVzZXIgc2VsZWN0ZWQgdHlwZSAqL1xcbitcXHQvKiBJZiBvdmVycmlkZGVuIGJ5IHRoZSB1c2VyIHJldHVybiB0aGUgdXNlciBzZWxlY3RlZCB0eXBlICovXFxuIFxcdGlmIChiYW5rMV90eXBlc1tzZW5zb3JfYWRkcl0gXFx1MDAzZT0gQUJJVF9VR1VSVV9JTl9TRU5TT1IgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0XFx0YmFuazFfdHlwZXNbc2Vuc29yX2FkZHJdIFxcdTAwM2M9IEFCSVRfVUdVUlVfTkMpIHtcXG4gXFx0XFx0QUJJVF9VR1VSVV9ERUJVRygyLCBcXFwiYXNzdW1pbmcgc2Vuc29yIHR5cGUgJWQgZm9yIGJhbmsxIHNlbnNvciBcXFwiXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suYyBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suY1xcbmluZGV4IGU3NjBkMTNlZTMyNWUuLmEwMmJiMmZlZTg3NDUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXFxuKysrIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXFxuQEAgLTg2LDcgKzg2LDcgQEAgTU9EVUxFX0FMSUFTKFxcXCJtbWM6YmxvY2tcXFwiKTtcXG4gc3RhdGljIERFRklORV9NVVRFWChibG9ja19tdXRleCk7XFxuIFxcbiAvKlxcbi0gKiBUaGUgZGVmYXVsdHMgY29tZSBmcm9tIGNvbmZpZyBvcHRpb25zIGJ1dCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IG1vZHVsZVxcbisgKiBUaGUgZGVmYXVsdHMgY29tZSBmcm9tIGNvbmZpZyBvcHRpb25zIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBtb2R1bGVcXG4gICogb3IgYm9vdGFyZyBvcHRpb25zLlxcbiAgKi9cXG4gc3RhdGljIGludCBwZXJkZXZfbWlub3JzID0gQ09ORklHX01NQ19CTE9DS19NSU5PUlM7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xcbmluZGV4IGVhMzEwMDU3ZmUzYWYuLmJjMzZkNzU3OGNlMjAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jXFxuQEAgLTM3NDMsNyArMzc0Myw3IEBAIHN0YXRpYyB2b2lkIGJueDJ4X3dhcnBjb3JlX2VuYWJsZV9BTl9LUihzdHJ1Y3QgYm54MnhfcGh5ICpwaHksXFxuIFxcdFxcdHtNRElPX1dDX0RFVkFELCBNRElPX1dDX1JFR19DTDcyX1VTRVJCMF9DTDcyX1RYX0ZJUl9UQVAsIDB9LFxcbiBcXHR9O1xcbiBcXHREUChORVRJRl9NU0dfTElOSywgXFxcIkVuYWJsZSBBdXRvIE5lZ290aWF0aW9uIGZvciBLUlxcXFxuXFxcIik7XFxuLVxcdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZW4gYnkgMTBHIGZvcmNlICovXFxuK1xcdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZGVuIGJ5IDEwRyBmb3JjZSAqL1xcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShyZWdfc2V0KTsgaSsrKVxcbiBcXHRcXHRibngyeF9jbDQ1X3dyaXRlKGJwLCBwaHksIHJlZ19zZXRbaV0uZGV2YWQsIHJlZ19zZXRbaV0ucmVnLFxcbiBcXHRcXHRcXHRcXHQgcmVnX3NldFtpXS52YWwpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcXG5pbmRleCAzMWZhYjI0MTU3NDMyLi5iNDM3NGNhMWQ2NTMwIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuY1xcbkBAIC0yMTk0LDcgKzIxOTQsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICpiYXIyX2FkZHJlc3Moc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsXFxuICAqXFx0QHJzcHE6IHBvaW50ZXIgdG8gdGhlIG5ldyByeHEncyBSZXNwb25zZSBRdWV1ZSB0byBiZSBmaWxsZWQgaW5cXG4gICpcXHRAaXFhc3luY2g6IGlmIDAsIGEgbm9ybWFsIHJzcHE7IGlmIDEsIGFuIGFzeW5jaHJvbm91cyBldmVudCBxdWV1ZVxcbiAgKlxcdEBkZXY6IHRoZSBuZXR3b3JrIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5ldyByc3BxXFxuLSAqXFx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZW4gaW4gTVNJIG1vZGUpXFxuKyAqXFx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZGVuIGluIE1TSSBtb2RlKVxcbiAgKlxcdEBmbDogcG9pbnRlciB0byB0aGUgbmV3IHJ4cSdzIEZyZWUgTGlzdCB0byBiZSBmaWxsZWQgaW5cXG4gICpcXHRAaG5kOiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgdG8gaW52b2tlIGZvciB0aGUgcnNwcVxcbiAgKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXFxuaW5kZXggZTJkOGM1OGRlZWYwMy4uYzFkNTg4MzM3NzUxNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuX21lbWFjLmNcXG5AQCAtMTMxMSw3ICsxMzExLDcgQEAgaW50IG1lbWFjX2luaXRpYWxpemF0aW9uKHN0cnVjdCBtYWNfZGV2aWNlICptYWNfZGV2LFxcbiBcXG4gXFx0LyogTW9zdCBib2FyZHMgc2hvdWxkIHVzZSBNTE9fQU5fSU5CQU5ELCBidXQgZXhpc3RpbmcgYm9hcmRzIGRvbid0IGhhdmVcXG4gXFx0ICogYSBtYW5hZ2VkIHByb3BlcnR5LiBEZWZhdWx0IHRvIE1MT19BTl9JTkJBTkQgcmF0aGVyIHRoYW4gTUxPX0FOX1BIWS5cXG4tXFx0ICogUGh5bGluayB3aWxsIGFsbG93IHRoaXMgdG8gYmUgb3ZlcnJpZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xcbitcXHQgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xcbiBcXHQgKiBiZSBjYXJlZnVsIGFuZCBub3QgZW5hYmxlIHRoaXMgaWYgd2UgYXJlIHVzaW5nIE1JSSBvciBSR01JSSwgc2luY2VcXG4gXFx0ICogdGhvc2UgY29uZmlndXJhdGlvbnMgbW9kZXMgZG9uJ3QgdXNlIGluLWJhbmQgYXV0b25lZ290aWF0aW9uLlxcbiBcXHQgKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfcGNvbC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfcGNvbC5oXFxuaW5kZXggYjk4NjZlMzg5ZTZkMi4uOWFkZmEwNTg1MTJmMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcXG5AQCAtMTM1NDcsNyArMTM1NDcsNyBAQFxcbiAgKiBhbiBhbmNlc3RvciBvZiB0aGUgY3VycmVudCB1c2VyIChzZWUgTUNfQ01EX1NFVF9WSV9VU0VSKS4gTm90ZSB0aGF0IExMXFxuICAqIHF1ZXVlcyByZXF1aXJlIHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVyIGFsbG9jYXRpb24gYnV0IGJlZm9yZSBpbml0aWFsaXNhdGlvblxcbiAgKiBvZiB0aGUgcXVldWUuIFRMUCBvcHRpb25zIG9mIGEgcXVldWUgYXJlIGZpeGVkIGFmdGVyIHF1ZXVlIGlzIGluaXRpYWxpc2VkLFxcbi0gKiB3aXRoIHRoZSB2YWx1ZXMgc2V0IHRvIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9yIHRoZXkgY2FuIGJlIG92ZXJyaWRlbiB1c2luZ1xcbisgKiB3aXRoIHRoZSB2YWx1ZXMgc2V0IHRvIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9yIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmdcXG4gICogdGhpcyBjb21tYW5kLiBBdCBMTCBxdWV1ZSBhbGxvY2F0aW9uLCBhbGwgb3ZlcnJpZGVzIGFyZSBjbGVhcmVkLlxcbiAgKi9cXG4gI2RlZmluZSBNQ19DTURfU0VUX1ZJX1RMUF9QUk9DRVNTSU5HIDB4YjFcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uYyBiL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmNcXG5pbmRleCBmZWIxNzA3ZmViN2UyLi5jOTQ3MGY4MDYyNmI4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmNcXG4rKysgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXFxuQEAgLTE3Myw3ICsxNzMsNyBAQCBzdGF0aWMgYWRhcHRlcl90YWdfaW5mb190IGFpYzc5eHhfdGFnX2luZm9bXSA9XFxuIFxcbiAvKlxcbiAgKiBUaGUgSS9PIGNlbGwgb24gdGhlIGNoaXAgaXMgdmVyeSBjb25maWd1cmFibGUgaW4gcmVzcGVjdCB0byBpdHMgYW5hbG9nXFxuLSAqIGNoYXJhY3RlcmlzdGljcy4gIFNldCB0aGUgZGVmYXVsdHMgaGVyZTsgdGhleSBjYW4gYmUgb3ZlcnJpZGVuIHdpdGhcXG4rICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIHdpdGhcXG4gICogdGhlIHByb3BlciBpbnNtb2QgcGFyYW1ldGVycy5cXG4gICovXFxuIHN0cnVjdCBhaGRfbGludXhfaW9jZWxsX29wdHNcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oIGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXFxuaW5kZXggMTFmNWRjMjlhYTU5Ny4uODc5MGYxMzE1Zjc1NyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmhcXG4rKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmhcXG5AQCAtMTI4LDcgKzEyOCw3IEBAIHN0cnVjdCBzeW1fZHJpdmVyX3NldHVwIHtcXG4gLypcXG4gICogIEluaXRpYWwgc2V0dXAuXFxuICAqXFxuLSAqICBDYW4gYmUgb3ZlcnJpZGVuIGF0IHN0YXJ0dXAgYnkgYSBjb21tYW5kIGxpbmUuXFxuKyAqICBDYW4gYmUgb3ZlcnJpZGRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxcbiAgKi9cXG4gI2RlZmluZSBTWU1fTElOVVhfRFJJVkVSX1NFVFVQXFx0e1xcdFxcdFxcdFxcdFxcXFxcXG4gXFx0Lm1heF90YWdcXHQ9IENPTkZJR19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1MsXFx0XFxcXFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jXFxuaW5kZXggYTMzNTUxNDdmNWRlNS4uOTBmMzk5MGUwMDYwZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuY1xcbisrKyBiL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jXFxuQEAgLTEyNDQsNyArMTI0NCw3IEBAIHN0YXRpYyBpbnQgb21hcDJfbWNzcGlfdHJhbnNmZXJfb25lKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RscixcXG4gXFx0XFx0b21hcDJfbWNzcGlfc2V0X2ZpZm8oc3BpLCB0LCAwKTtcXG4gXFxuIG91dDpcXG4tXFx0LyogUmVzdG9yZSBkZWZhdWx0cyBpZiB0aGV5IHdlcmUgb3ZlcnJpZGVuICovXFxuK1xcdC8qIFJlc3RvcmUgZGVmYXVsdHMgaWYgdGhleSB3ZXJlIG92ZXJyaWRkZW4gKi9cXG4gXFx0aWYgKHBhcl9vdmVycmlkZSkge1xcbiBcXHRcXHRwYXJfb3ZlcnJpZGUgPSAwO1xcbiBcXHRcXHRzdGF0dXMgPSBvbWFwMl9tY3NwaV9zZXR1cF90cmFuc2ZlcihzcGksIE5VTEwpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuY1xcbmluZGV4IDlmMDU1YmE3NzZjODEuLjY1MDFmNmUyNjE1YTQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuY1xcbisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcXG5AQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7XFxuIFxcdC5hY2NlbCA9IEZCX0FDQ0VMX05PTkUsXFxuIH07XFxuIFxcbi0vKiBkZWZhdWx0cyB3aGljaCBhcmUgbm9ybWFsbHkgb3ZlcnJpZGVuIGJ5IHVzZXIgdmFsdWVzICovXFxuKy8qIGRlZmF1bHRzIHdoaWNoIGFyZSBub3JtYWxseSBvdmVycmlkZGVuIGJ5IHVzZXIgdmFsdWVzICovXFxuIFxcbiAvKiB2aWRlbyBtb2RlICovXFxuIHN0YXRpYyBjaGFyICptb2RlX29wdGlvbjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjZUMDk6MDg6MjMuODk3MDYyMjQ5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NzkyMTUxNDE0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCdvdmVycmlkZW4nIHRvICdvdmVycmlkZGVuJykgaW4gY29kZSBjb21tZW50cyBhY3Jvc3MgdmFyaW91cyBkcml2ZXJzLiBUaGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ0MjBhZWM0NDFkOTg1YTE4ZDIzNzg2OTM4NGQ1YzdkZDg4Mzk0OWRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAyNiAwOTowODoyMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3ZiYV8zMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbmluZGV4IDMzYjUxMzZmN2NlMzkuLjc1YmRhZDIyYmY2OTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMwL2Rpc3BsYXlfbW9kZV92YmFfMzAuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMC9kaXNwbGF5X21vZGVfdmJhXzMwLmNcbkBAIC0xODA1LDcgKzE4MDUsNyBAQCBzdGF0aWMgdm9pZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hblxuIFx0di1cdTAwM2VESVNQQ0xLV2l0aFJhbXBpbmcgPSAwO1xuIFx0di1cdTAwM2VESVNQQ0xLV2l0aG91dFJhbXBpbmcgPSAwO1xuIFx0di1cdTAwM2VHbG9iYWxEUFBDTEsgPSAwLjA7XG4tXHQvKiBEQUwgY3VzdG9tIGNvZGU6IG5lZWQgdG8gdXBkYXRlIFJldHVybkJXIGluIGNhc2UgbWluIGRjZmNsayBpcyBvdmVycmlkZW4gKi9cbitcdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRkZW4gKi9cbiBcdHYtXHUwMDNlSWRlYWxTRFBQb3J0QmFuZHdpZHRoUGVyU3RhdGVbdi1cdTAwM2VWb2x0YWdlTGV2ZWxdW3YtXHUwMDNlbWF4TXBjQ29tYl0gPSBkbWxfbWluMyhcbiBcdFx0XHR2LVx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cdTAwM2VEQ0ZDTEssXG4gXHRcdFx0di1cdTAwM2VEUkFNU3BlZWRQZXJTdGF0ZVt2LVx1MDAzZVZvbHRhZ2VMZXZlbF0gKiB2LVx1MDAzZU51bWJlck9mQ2hhbm5lbHMgKiB2LVx1MDAzZURSQU1DaGFubmVsV2lkdGgsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9kY24zMS9kaXNwbGF5X21vZGVfdmJhXzMxLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMxL2Rpc3BsYXlfbW9kZV92YmFfMzEuY1xuaW5kZXggODA2NGM0YjNmZDI1OS4uM2Y2MmVhNDkzNzg3MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvZGNuMzEvZGlzcGxheV9tb2RlX3ZiYV8zMS5jXG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZG1sL2RjbjMxL2Rpc3BsYXlfbW9kZV92YmFfMzEuY1xuQEAgLTIwNDUsNyArMjA0NSw3IEBAIHN0YXRpYyB2b2lkIERJU1BDTEtEUFBDTEtEQ0ZDTEtEZWVwU2xlZXBQcmVmZXRjaFBhcmFtZXRlcnNXYXRlcm1hcmtzQW5kUGVyZm9ybWFuXG4gXHR2LVx1MDAzZURJU1BDTEtXaXRoUmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZURJU1BDTEtXaXRob3V0UmFtcGluZyA9IDA7XG4gXHR2LVx1MDAzZUdsb2JhbERQUENMSyA9IDAuMDtcbi1cdC8qIERBTCBjdXN0b20gY29kZTogbmVlZCB0byB1cGRhdGUgUmV0dXJuQlcgaW4gY2FzZSBtaW4gZGNmY2xrIGlzIG92ZXJyaWRlbiAqL1xuK1x0LyogREFMIGN1c3RvbSBjb2RlOiBuZWVkIHRvIHVwZGF0ZSBSZXR1cm5CVyBpbiBjYXNlIG1pbiBkY2ZjbGsgaXMgb3ZlcnJpZGRlbiAqL1xuIFx0e1xuIFx0ZG91YmxlIElkZWFsRmFicmljQW5kU0RQUG9ydEJhbmR3aWR0aFBlclN0YXRlID0gZG1sX21pbihcbiBcdFx0XHR2LVx1MDAzZVJldHVybkJ1c1dpZHRoICogdi1cdTAwM2VEQ0ZDTEtTdGF0ZVt2LVx1MDAzZVZvbHRhZ2VMZXZlbF1bdi1cdTAwM2VtYXhNcGNDb21iXSxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvbGluay9wcm90b2NvbHMvbGlua19lZHBfcGFuZWxfY29udHJvbC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2xpbmsvcHJvdG9jb2xzL2xpbmtfZWRwX3BhbmVsX2NvbnRyb2wuY1xuaW5kZXggMTY5NTFhOTU1MGYyNS4uZDNmZTZlMDI0ODkxOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9saW5rL3Byb3RvY29scy9saW5rX2VkcF9wYW5lbF9jb250cm9sLmNcbkBAIC0xMDgsNyArMTA4LDcgQEAgZW51bSBkcF9wYW5lbF9tb2RlIGRwX2dldF9wYW5lbF9tb2RlKHN0cnVjdCBkY19saW5rICpsaW5rKVxuIFx0XHRcdC8qIGFsdGVybmF0ZSBzY3JhbWJsZXIgcmVzZXQgaXMgcmVxdWlyZWQgZm9yIFRyYXZpc1xuIFx0XHRcdCAqIGZvciB0aGUgY2FzZSB3aGVuIGV4dGVybmFsIGNoaXAgZG9lcyBub3RcbiBcdFx0XHQgKiBwcm92aWRlIHNpbmsgZGV2aWNlIGlkLCBhbHRlcm5hdGUgc2NyYW1ibGVyXG4tXHRcdFx0ICogc2NoZW1lIHdpbGwgIGJlIG92ZXJyaWRlbiBsYXRlciBieSBxdWVyeWluZ1xuK1x0XHRcdCAqIHNjaGVtZSB3aWxsICBiZSBvdmVycmlkZGVuIGxhdGVyIGJ5IHF1ZXJ5aW5nXG4gXHRcdFx0ICogRW5jb2RlciBmZWF0dXJlc1xuIFx0XHRcdCAqL1xuIFx0XHRcdGlmIChzdHJuY21wKFxuQEAgLTEyNCw3ICsxMjQsNyBAQCBlbnVtIGRwX3BhbmVsX21vZGUgZHBfZ2V0X3BhbmVsX21vZGUoc3RydWN0IGRjX2xpbmsgKmxpbmspXG4gXHRcdFx0LyogYWx0ZXJuYXRlIHNjcmFtYmxlciByZXNldCBpcyByZXF1aXJlZCBmb3IgTlVUTUVHXG4gXHRcdFx0ICogZm9yIHRoZSBjYXNlIHdoZW4gZXh0ZXJuYWwgY2hpcCBkb2VzIG5vdCBwcm92aWRlXG4gXHRcdFx0ICogc2luayBkZXZpY2UgaWQsIGFsdGVybmF0ZSBzY3JhbWJsZXIgc2NoZW1lIHdpbGxcbi1cdFx0XHQgKiBiZSBvdmVycmlkZW4gbGF0ZXIgYnkgcXVlcnlpbmcgRW5jb2RlciBmZWF0dXJlXG4rXHRcdFx0ICogYmUgb3ZlcnJpZGRlbiBsYXRlciBieSBxdWVyeWluZyBFbmNvZGVyIGZlYXR1cmVcbiBcdFx0XHQgKi9cbiBcdFx0XHRpZiAoc3RybmNtcChsaW5rLVx1MDAzZWRwY2RfY2Fwcy5icmFuY2hfZGV2X25hbWUsXG4gXHRcdFx0XHREUF9WR0FfTFZEU19DT05WRVJURVJfSURfMyxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZG11Yi9zcmMvZG11Yl9zcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jXG5pbmRleCAyMDQzNzVmMWVmZjg2Li41ODdkMjZjNzQyY2Q1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RtdWIvc3JjL2RtdWJfc3J2LmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kbXViL3NyYy9kbXViX3Nydi5jXG5AQCAtNTg0LDcgKzU4NCw3IEBAIHN0YXRpYyBib29sIGRtdWJfc3J2X2h3X3NldHVwKHN0cnVjdCBkbXViX3NydiAqZG11YiwgZW51bSBkbXViX2FzaWMgYXNpYylcbiBcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0Lyogc2V0IGRlZmF1bHQgaW5ib3ggdHlwZSBpZiBub3Qgb3ZlcnJpZGVuICovXG4rXHQvKiBzZXQgZGVmYXVsdCBpbmJveCB0eXBlIGlmIG5vdCBvdmVycmlkZGVuICovXG4gXHRpZiAoZG11Yi1cdTAwM2VpbmJveF90eXBlID09IERNVUJfQ01EX0lOVEVSRkFDRV9ERUZBVUxUKSB7XG4gXHRcdGlmIChkZWZhdWx0X2luYm94X3R5cGUgIT0gRE1VQl9DTURfSU5URVJGQUNFX0RFRkFVTFQpIHtcbiBcdFx0XHQvKiB1c2UgZGVmYXVsdCBpbmJveCB0eXBlIGFzIHNwZWNpZmllZCBieSBEQ04gcmV2ICovXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9yZWdpc3RlcnMvZ2VuX2hlYWRlci5weSBiL2RyaXZlcnMvZ3B1L2RybS9tc20vcmVnaXN0ZXJzL2dlbl9oZWFkZXIucHlcbmluZGV4IGQzYjU2YTlkODRmYjcuLmQ2YmZiN2I3ZDdiMzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5XG4rKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL3JlZ2lzdGVycy9nZW5faGVhZGVyLnB5XG5AQCAtNTc2LDcgKzU3Niw3IEBAIGNsYXNzIFBhcnNlcihvYmplY3QpOlxuICAgICAgICAgICAgIHJhaXNlIHNlbGYuZXJyb3IoZSlcbiBcbiAgICAgZGVmIHBhcnNlX3ZhcnNldChzZWxmLCBhdHRycyk6XG4tICAgICAgICAjIEluaGVyaXQgdGhlIHZhcnNldCBmcm9tIHRoZSBlbmNsb3NpbmcgZG9tYWluIGlmIG5vdCBvdmVycmlkZW46XG4rICAgICAgICAjIEluaGVyaXQgdGhlIHZhcnNldCBmcm9tIHRoZSBlbmNsb3NpbmcgZG9tYWluIGlmIG5vdCBvdmVycmlkZGVuOlxuICAgICAgICAgdmFyc2V0ID0gc2VsZi5jdXJyZW50X3ZhcnNldFxuICAgICAgICAgaWYgXCJ2YXJzZXRcIiBpbiBhdHRyczpcbiAgICAgICAgICAgICB2YXJzZXQgPSBzZWxmLmVudW1zW2F0dHJzW1widmFyc2V0XCJdXVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcbmluZGV4IDM4MDMyYmI5NTgyNjIuLjEwY2Q2MDZkMDFiOTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jpb3MuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iaW9zLmNcbkBAIC0zMjMsNyArMzIzLDcgQEAgZ2V0X2ZwX3N0cmFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBudmJpb3MgKmJpb3MpXG4gXHQvKlxuIFx0ICogVGhlIGZwIHN0cmFwIGlzIG5vcm1hbGx5IGRpY3RhdGVkIGJ5IHRoZSBcIlVzZXIgU3RyYXBcIiBpblxuIFx0ICogUEVYVERFVl9CT09UXzBbMjA6MTZdLCBidXQgb24gQk1QIGNhcmRzIHdoZW4gYml0IDIgb2YgdGhlXG4tXHQgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGVuXG4rXHQgKiBJbnRlcm5hbF9GbGFncyBzdHJ1Y3QgYXQgMHg0OCBpcyBzZXQsIHRoZSB1c2VyIHN0cmFwIGdldHMgb3ZlcnJpZGRlblxuIFx0ICogYnkgdGhlIFBDSSBzdWJzeXN0ZW0gSUQgZHVyaW5nIFBPU1QsIGJ1dCBub3QgYmVmb3JlIHRoZSBwcmV2aW91cyB1c2VyXG4gXHQgKiBzdHJhcCBoYXMgYmVlbiBjb21taXR0ZWQgdG8gQ1I1OCBmb3IgQ1I1Nz0weGYgb24gaGVhZCBBLCB3aGljaCBtYXkgYmVcbiBcdCAqIHJlYWQgYW5kIHVzZWQgaW5zdGVhZFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydS5jXG5pbmRleCBiYThjNjhhZTQ1OTUzLi41YWNjZDQ2MzU5OWNiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUuY1xuKysrIGIvZHJpdmVycy9od21vbi9hYml0dWd1cnUuY1xuQEAgLTQ3NSw3ICs0NzUsNyBAQCBhYml0dWd1cnVfZGV0ZWN0X2JhbmsxX3NlbnNvcl90eXBlKHN0cnVjdCBhYml0dWd1cnVfZGF0YSAqZGF0YSxcbiBcdHU4IHZhbCwgdGVzdF9mbGFnLCBidWZbM107XG4gXHRpbnQgaSwgcmV0ID0gLUVOT0RFVjsgLyogZXJyb3IgaXMgdGhlIG1vc3QgY29tbW9uIHVzZWQgcmV0dmFsIDp8ICovXG4gXG4tXHQvKiBJZiBvdmVycmlkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi9cbitcdC8qIElmIG92ZXJyaWRkZW4gYnkgdGhlIHVzZXIgcmV0dXJuIHRoZSB1c2VyIHNlbGVjdGVkIHR5cGUgKi9cbiBcdGlmIChiYW5rMV90eXBlc1tzZW5zb3JfYWRkcl0gXHUwMDNlPSBBQklUX1VHVVJVX0lOX1NFTlNPUiBcdTAwMjZcdTAwMjZcbiBcdFx0XHRiYW5rMV90eXBlc1tzZW5zb3JfYWRkcl0gXHUwMDNjPSBBQklUX1VHVVJVX05DKSB7XG4gXHRcdEFCSVRfVUdVUlVfREVCVUcoMiwgXCJhc3N1bWluZyBzZW5zb3IgdHlwZSAlZCBmb3IgYmFuazEgc2Vuc29yIFwiXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jIGIvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG5pbmRleCBlNzYwZDEzZWUzMjVlLi5hMDJiYjJmZWU4NzQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ibG9jay5jXG4rKysgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmNcbkBAIC04Niw3ICs4Niw3IEBAIE1PRFVMRV9BTElBUyhcIm1tYzpibG9ja1wiKTtcbiBzdGF0aWMgREVGSU5FX01VVEVYKGJsb2NrX211dGV4KTtcbiBcbiAvKlxuLSAqIFRoZSBkZWZhdWx0cyBjb21lIGZyb20gY29uZmlnIG9wdGlvbnMgYnV0IGNhbiBiZSBvdmVycmlkZW4gYnkgbW9kdWxlXG4rICogVGhlIGRlZmF1bHRzIGNvbWUgZnJvbSBjb25maWcgb3B0aW9ucyBidXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgbW9kdWxlXG4gICogb3IgYm9vdGFyZyBvcHRpb25zLlxuICAqL1xuIHN0YXRpYyBpbnQgcGVyZGV2X21pbm9ycyA9IENPTkZJR19NTUNfQkxPQ0tfTUlOT1JTO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xuaW5kZXggZWEzMTAwNTdmZTNhZi4uYmMzNmQ3NTc4Y2UyMCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2xpbmsuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbGluay5jXG5AQCAtMzc0Myw3ICszNzQzLDcgQEAgc3RhdGljIHZvaWQgYm54Mnhfd2FycGNvcmVfZW5hYmxlX0FOX0tSKHN0cnVjdCBibngyeF9waHkgKnBoeSxcbiBcdFx0e01ESU9fV0NfREVWQUQsIE1ESU9fV0NfUkVHX0NMNzJfVVNFUkIwX0NMNzJfVFhfRklSX1RBUCwgMH0sXG4gXHR9O1xuIFx0RFAoTkVUSUZfTVNHX0xJTkssIFwiRW5hYmxlIEF1dG8gTmVnb3RpYXRpb24gZm9yIEtSXFxuXCIpO1xuLVx0LyogU2V0IHRvIGRlZmF1bHQgcmVnaXN0ZXJzIHRoYXQgbWF5IGJlIG92ZXJyaWRlbiBieSAxMEcgZm9yY2UgKi9cbitcdC8qIFNldCB0byBkZWZhdWx0IHJlZ2lzdGVycyB0aGF0IG1heSBiZSBvdmVycmlkZGVuIGJ5IDEwRyBmb3JjZSAqL1xuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShyZWdfc2V0KTsgaSsrKVxuIFx0XHRibngyeF9jbDQ1X3dyaXRlKGJwLCBwaHksIHJlZ19zZXRbaV0uZGV2YWQsIHJlZ19zZXRbaV0ucmVnLFxuIFx0XHRcdFx0IHJlZ19zZXRbaV0udmFsKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcbmluZGV4IDMxZmFiMjQxNTc0MzIuLmI0Mzc0Y2ExZDY1MzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvc2dlLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9zZ2UuY1xuQEAgLTIxOTQsNyArMjE5NCw3IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKmJhcjJfYWRkcmVzcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcixcbiAgKlx0QHJzcHE6IHBvaW50ZXIgdG8gdGhlIG5ldyByeHEncyBSZXNwb25zZSBRdWV1ZSB0byBiZSBmaWxsZWQgaW5cbiAgKlx0QGlxYXN5bmNoOiBpZiAwLCBhIG5vcm1hbCByc3BxOyBpZiAxLCBhbiBhc3luY2hyb25vdXMgZXZlbnQgcXVldWVcbiAgKlx0QGRldjogdGhlIG5ldHdvcmsgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3IHJzcHFcbi0gKlx0QGludHJfZGVzdDogTVNJLVggdmVjdG9yIGluZGV4IChvdmVycmlkZW4gaW4gTVNJIG1vZGUpXG4rICpcdEBpbnRyX2Rlc3Q6IE1TSS1YIHZlY3RvciBpbmRleCAob3ZlcnJpZGRlbiBpbiBNU0kgbW9kZSlcbiAgKlx0QGZsOiBwb2ludGVyIHRvIHRoZSBuZXcgcnhxJ3MgRnJlZSBMaXN0IHRvIGJlIGZpbGxlZCBpblxuICAqXHRAaG5kOiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgdG8gaW52b2tlIGZvciB0aGUgcnNwcVxuICAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuY1xuaW5kZXggZTJkOGM1OGRlZWYwMy4uYzFkNTg4MzM3NzUxNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW5fbWVtYWMuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vZm1hbl9tZW1hYy5jXG5AQCAtMTMxMSw3ICsxMzExLDcgQEAgaW50IG1lbWFjX2luaXRpYWxpemF0aW9uKHN0cnVjdCBtYWNfZGV2aWNlICptYWNfZGV2LFxuIFxuIFx0LyogTW9zdCBib2FyZHMgc2hvdWxkIHVzZSBNTE9fQU5fSU5CQU5ELCBidXQgZXhpc3RpbmcgYm9hcmRzIGRvbid0IGhhdmVcbiBcdCAqIGEgbWFuYWdlZCBwcm9wZXJ0eS4gRGVmYXVsdCB0byBNTE9fQU5fSU5CQU5EIHJhdGhlciB0aGFuIE1MT19BTl9QSFkuXG4tXHQgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZW4gYnkgYSBmaXhlZCBsaW5rLiBXZSBuZWVkIHRvXG4rXHQgKiBQaHlsaW5rIHdpbGwgYWxsb3cgdGhpcyB0byBiZSBvdmVycmlkZGVuIGJ5IGEgZml4ZWQgbGluay4gV2UgbmVlZCB0b1xuIFx0ICogYmUgY2FyZWZ1bCBhbmQgbm90IGVuYWJsZSB0aGlzIGlmIHdlIGFyZSB1c2luZyBNSUkgb3IgUkdNSUksIHNpbmNlXG4gXHQgKiB0aG9zZSBjb25maWd1cmF0aW9ucyBtb2RlcyBkb24ndCB1c2UgaW4tYmFuZCBhdXRvbmVnb3RpYXRpb24uXG4gXHQgKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbmluZGV4IGI5ODY2ZTM4OWU2ZDIuLjlhZGZhMDU4NTEyZjMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9wY29sLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX3Bjb2wuaFxuQEAgLTEzNTQ3LDcgKzEzNTQ3LDcgQEBcbiAgKiBhbiBhbmNlc3RvciBvZiB0aGUgY3VycmVudCB1c2VyIChzZWUgTUNfQ01EX1NFVF9WSV9VU0VSKS4gTm90ZSB0aGF0IExMXG4gICogcXVldWVzIHJlcXVpcmUgdGhpcyB0byBiZSBjYWxsZWQgYWZ0ZXIgYWxsb2NhdGlvbiBidXQgYmVmb3JlIGluaXRpYWxpc2F0aW9uXG4gICogb2YgdGhlIHF1ZXVlLiBUTFAgb3B0aW9ucyBvZiBhIHF1ZXVlIGFyZSBmaXhlZCBhZnRlciBxdWV1ZSBpcyBpbml0aWFsaXNlZCxcbi0gKiB3aXRoIHRoZSB2YWx1ZXMgc2V0IHRvIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9yIHRoZXkgY2FuIGJlIG92ZXJyaWRlbiB1c2luZ1xuKyAqIHdpdGggdGhlIHZhbHVlcyBzZXQgdG8gY3VycmVudCBnbG9iYWwgdmFsdWUgb3IgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZ1xuICAqIHRoaXMgY29tbWFuZC4gQXQgTEwgcXVldWUgYWxsb2NhdGlvbiwgYWxsIG92ZXJyaWRlcyBhcmUgY2xlYXJlZC5cbiAgKi9cbiAjZGVmaW5lIE1DX0NNRF9TRVRfVklfVExQX1BST0NFU1NJTkcgMHhiMVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM3eHh4L2FpYzc5eHhfb3NtLmMgYi9kcml2ZXJzL3Njc2kvYWljN3h4eC9haWM3OXh4X29zbS5jXG5pbmRleCBmZWIxNzA3ZmViN2UyLi5jOTQ3MGY4MDYyNmI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uY1xuKysrIGIvZHJpdmVycy9zY3NpL2FpYzd4eHgvYWljNzl4eF9vc20uY1xuQEAgLTE3Myw3ICsxNzMsNyBAQCBzdGF0aWMgYWRhcHRlcl90YWdfaW5mb190IGFpYzc5eHhfdGFnX2luZm9bXSA9XG4gXG4gLypcbiAgKiBUaGUgSS9PIGNlbGwgb24gdGhlIGNoaXAgaXMgdmVyeSBjb25maWd1cmFibGUgaW4gcmVzcGVjdCB0byBpdHMgYW5hbG9nXG4tICogY2hhcmFjdGVyaXN0aWNzLiAgU2V0IHRoZSBkZWZhdWx0cyBoZXJlOyB0aGV5IGNhbiBiZSBvdmVycmlkZW4gd2l0aFxuKyAqIGNoYXJhY3RlcmlzdGljcy4gIFNldCB0aGUgZGVmYXVsdHMgaGVyZTsgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoXG4gICogdGhlIHByb3BlciBpbnNtb2QgcGFyYW1ldGVycy5cbiAgKi9cbiBzdHJ1Y3QgYWhkX2xpbnV4X2lvY2VsbF9vcHRzXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oIGIvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXG5pbmRleCAxMWY1ZGMyOWFhNTk3Li44NzkwZjEzMTVmNzU3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bTUzYzh4eC5oXG4rKysgYi9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltNTNjOHh4LmhcbkBAIC0xMjgsNyArMTI4LDcgQEAgc3RydWN0IHN5bV9kcml2ZXJfc2V0dXAge1xuIC8qXG4gICogIEluaXRpYWwgc2V0dXAuXG4gICpcbi0gKiAgQ2FuIGJlIG92ZXJyaWRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxuKyAqICBDYW4gYmUgb3ZlcnJpZGRlbiBhdCBzdGFydHVwIGJ5IGEgY29tbWFuZCBsaW5lLlxuICAqL1xuICNkZWZpbmUgU1lNX0xJTlVYX0RSSVZFUl9TRVRVUFx0e1x0XHRcdFx0XFxcbiBcdC5tYXhfdGFnXHQ9IENPTkZJR19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1MsXHRcXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1vbWFwMi1tY3NwaS5jIGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbmluZGV4IGEzMzU1MTQ3ZjVkZTUuLjkwZjM5OTBlMDA2MGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3NwaS9zcGktb21hcDItbWNzcGkuY1xuKysrIGIvZHJpdmVycy9zcGkvc3BpLW9tYXAyLW1jc3BpLmNcbkBAIC0xMjQ0LDcgKzEyNDQsNyBAQCBzdGF0aWMgaW50IG9tYXAyX21jc3BpX3RyYW5zZmVyX29uZShzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsXG4gXHRcdG9tYXAyX21jc3BpX3NldF9maWZvKHNwaSwgdCwgMCk7XG4gXG4gb3V0OlxuLVx0LyogUmVzdG9yZSBkZWZhdWx0cyBpZiB0aGV5IHdlcmUgb3ZlcnJpZGVuICovXG4rXHQvKiBSZXN0b3JlIGRlZmF1bHRzIGlmIHRoZXkgd2VyZSBvdmVycmlkZGVuICovXG4gXHRpZiAocGFyX292ZXJyaWRlKSB7XG4gXHRcdHBhcl9vdmVycmlkZSA9IDA7XG4gXHRcdHN0YXR1cyA9IG9tYXAyX21jc3BpX3NldHVwX3RyYW5zZmVyKHNwaSwgTlVMTCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi90cmlkZW50ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmNcbmluZGV4IDlmMDU1YmE3NzZjODEuLjY1MDFmNmUyNjE1YTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jXG4rKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jXG5AQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvIHRyaWRlbnRmYl9maXggPSB7XG4gXHQuYWNjZWwgPSBGQl9BQ0NFTF9OT05FLFxuIH07XG4gXG4tLyogZGVmYXVsdHMgd2hpY2ggYXJlIG5vcm1hbGx5IG92ZXJyaWRlbiBieSB1c2VyIHZhbHVlcyAqL1xuKy8qIGRlZmF1bHRzIHdoaWNoIGFyZSBub3JtYWxseSBvdmVycmlkZGVuIGJ5IHVzZXIgdmFsdWVzICovXG4gXG4gLyogdmlkZW8gbW9kZSAqL1xuIHN0YXRpYyBjaGFyICptb2RlX29wdGlvbjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjA4OjIzLjg5NzA2Mzg0OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5MjE0OTA2NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVHlwbyBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQncyBqdXN0IGEgdHlwbyBmaXgsIGNoYW5naW5nIFwib3ZlcnJpZGVuXCIgdG8gXCJvdmVycmlkZGVuLlwiIEkgc2VlIGl0J3Mgc3ByZWFkIGFjcm9zcyBhIGJ1bmNoIG9mIGRpZmZlcmVudCBkcml2ZXJzIGFuZCBmaWxlcywgY292ZXJpbmcgYSBkZWNlbnQgcmFuZ2Ugb2YgdGhlIGtlcm5lbCwgZnJvbSBHUFUgYW5kIGRpc3BsYXkgc3R1ZmYgKEFNRCwgTVNNLCBOb3V2ZWF1KSB0byBuZXR3b3JrIGRyaXZlcnMgKEJyb2FkY29tLCBDaGVsc2lvLCBGcmVlc2NhbGUsIGV0Yy4pLCBzdG9yYWdlIChNTUMsIFNDU0kpLCBhbmQgc29tZSBvdGhlcnMgbGlrZSBTUEkgYW5kIGV2ZW4gYSB2aWRlbyBmcmFtZWJ1ZmZlci4gVGhlIGxpc3Qgc2VlbXMgcHJldHR5IGNvbXByZWhlbnNpdmUuXG5cblRoZSBrZXkgdGhpbmcgaXMsIGl0J3MgYWxsIGluIGNvbW1lbnRzLiBUaGVyZSdzIHplcm8gY29kZSBtb2RpZmljYXRpb24sIHN0cmljdGx5IGRvY3VtZW50YXRpb24gdXBkYXRlcy4gVGhpcyBtZWFucyBpdCBoYXMgYWJzb2x1dGVseSBubyBpbXBhY3Qgb24gZnVuY3Rpb25hbGl0eS4gSXQncyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdG8gaW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgY29ycmVjdG5lc3MuXG5cbkdpdmVuIHRoaXMsIHRoZXJlJ3Mgbm8gd2F5IHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgbmV3IGlzc3Vlcy4gSXQgaXMgYSB2ZXJ5IGxvdyByaXNrIGNoYW5nZS4gVGhlcmVmb3JlLCBJJ20gbWFya2luZyBpdCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIFRoZXJlJ3Mgbm90aGluZyBoZXJlIHRoYXQncyBnb2luZyB0byB0cmlnZ2VyIGFueSBpbnRlcmVzdGluZyBmdXp6aW5nIHJlc3VsdHMuIEl0IGlzIHNpbXBseSBhIGhlbHBmdWwgZWRpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjMxOCwiT3V0cHV0VG9rZW5zIjo2NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI2VDA5OjA4OjMxLjgxODU1NjUxNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBmaXhlcyBhIHR5cG8gKCdvdmVycmlkZW4nIHRvICdvdmVycmlkZGVuJykgaW4gY29kZSBjb21tZW50cyBhY3Jvc3MgdmFyaW91cyBkcml2ZXJzLiBUaGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgZml4ZXMgYSB0eXBvICgnb3ZlcnJpZGVuJyB0byAnb3ZlcnJpZGRlbicpIGluIGNvZGUgY29tbWVudHMgYWNyb3NzIHZhcmlvdXMgZHJpdmVycy4gVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNlQwOTowODozMS44MTg1NzgxMzVaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbvk5q[1] Phase: Running StartedAt: 2026-08-26 09:09:02 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbvk5q[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-26 09:09:02 +0000 UTC FinishedAt: 2026-08-26 09:09:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}