Name: series-workflowzqklc Phase: Failed StartedAt: 2026-08-19 08:29:14 +0000 UTC FinishedAt: 2026-08-19 08:31:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzqklc[0] Phase: Succeeded StartedAt: 2026-08-19 08:29:14 +0000 UTC FinishedAt: 2026-08-19 08:31:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzqklc[0].run-triage Phase: Succeeded StartedAt: 2026-08-19 08:29:14 +0000 UTC FinishedAt: 2026-08-19 08:31:41 +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+CgkJCTx0ZD4yMDI2LzA4LzE5IDA4OjMxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgbWVjaGFuaWNhbCByZWZhY3RvcmluZyB0aGF0IG1pZ3JhdGVzIHRoZSBzdGF0aWMga2V5IEFQSSBmcm9tIHRoZSBvbGRlciBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBgc3RhdGljX2tleV9zbG93X2luY2AgdG8gdGhlIG5ld2VyIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgc3RhdGljX2JyYW5jaF9pbmNgIG1hY3Jvcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3csIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDg6MzE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzZmQ2OWU0NTY5MmNlOWI3ZTRkMGNkNDU0ZjQwMWNiNzMzZGNkNjJlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMTkgMDg6MzE6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuYyBiL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmNcbmluZGV4IDU3MmVmYjk2YjIzZmUuLjMwYmY2MWQwMzFlYjcgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXG5AQCAtMTU3LDkgJiM0MzsxNTcsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4mIzQzO1x0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuJiM0MztcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXG4gXHRwcl9pbmZvKFwmIzM0O3VzaW5nIHN0b2xlbiB0aW1lIFBWXFxuXCYjMzQ7KTtcbiBcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYyBiL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wYXJhdmlydC5jXG5pbmRleCAxMDgyMWNjZTU1NGMwLi5lODk2NWEzZjgwODI0IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wYXJhdmlydC5jXG5AQCAtMzA4LDEwICYjNDM7MzA4LDEwIEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpXG4gXG4gXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHBhcmF2dF9zdGVhbF9jbG9jayk7XG4gXG4tXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuJiM0MztcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4gXHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuJiM0MztcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXG4gXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNnZpcnRfcHJlZW1wdF9rZXkpKVxuZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmNcbmluZGV4IDEyMjNkYzk2MTI0MjkuLjhkY2JjNGJiNzAyNTYgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmNcbkBAIC04NTIsOSAmIzQzOzg1Miw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwU2VyaWVzX3NldHVwX2FyY2godm9pZClcbiBcdFx0XHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcdTAwMjZzaGFyZWRfcHJvY2Vzc29yKTtcbiBcdFx0XHRwdl9zcGlubG9ja3NfaW5pdCgpO1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4tXHRcdFx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7XHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRcdFx0aWYgKHN0ZWFsX2FjYylcbi1cdFx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXHRcdH1cbiBcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xuaW5kZXggNWY1NmJlNzljZDA2Mi4uOWMxM2E2ZjFlYTJhZiAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmNcbkBAIC0xMTYsOSAmIzQzOzExNiw5IEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpXG4gXG4gXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHB2X3RpbWVfc3RlYWxfY2xvY2spO1xuIFxuLVx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmIChzdGVhbF9hY2MpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiBcbiBcdHByX2luZm8oXCYjMzQ7Q29tcHV0aW5nIHBhcmF2aXJ0IHN0ZWFsLXRpbWVcXG5cJiMzNDspO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXG5pbmRleCAzNGI3MzU3M2IxMDhkLi5mN2FiOWU3OTAyY2ZlIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuQEAgLTMyOCw5ICYjNDM7MzI4LDkgQEAgc3RhdGljIGludCB2bXdhcmVfY3B1X2Rvd25fcHJlcGFyZSh1bnNpZ25lZCBpbnQgY3B1KVxuIHN0YXRpYyBfX2luaXQgaW50IGFjdGl2YXRlX2p1bXBfbGFiZWxzKHZvaWQpXG4ge1xuIFx0aWYgKGhhc19zdGVhbF9jbG9jaykge1xuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuJiM0MztcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRcdGlmIChzdGVhbF9hY2MpXG4tXHRcdFx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiYjNDM7XHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXHR9XG4gXG4gXHRyZXR1cm4gMDtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMgYi9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2tlcm5lbC9rdm0uY1xuQEAgLTEwNTIsOSAmIzQzOzEwNTIsOSBAQCBjb25zdCBfX2luaXRjb25zdCBzdHJ1Y3QgaHlwZXJ2aXNvcl94ODYgeDg2X2h5cGVyX2t2bSA9IHtcbiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKVxuIHtcbiBcdGlmIChoYXNfc3RlYWxfY2xvY2spIHtcbi1cdFx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7XHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuIFx0XHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vdGltZS5jIGIvZHJpdmVycy94ZW4vdGltZS5jXG5pbmRleCBhMmJlMGE0ZDQ1YjBiLi5hMDJkNDhhMmFhNjg0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3hlbi90aW1lLmNcbkBAIC0xNjksNyAmIzQzOzE2OSw3IEBAIHZvaWQgX19pbml0IHhlbl90aW1lX3NldHVwX2d1ZXN0KHZvaWQpXG4gXG4gXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHhlbl9zdGVhbF9jbG9jayk7XG4gXG4tXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuJiM0MztcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuIFx0aWYgKHhlbl9ydW5zdGF0ZV9yZW1vdGUpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiB9XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuaW5kZXggZTkwZWZhZjZkMjZlOS4uNjk0MTI2NDExZGZlYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc2NoZWQvY3B1dGltZS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuQEAgLTE4Miw5ICYjNDM7MTgyLDkgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZ1xuIHRhc2tfc2NoZWRfcnVudGltZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spO1xuIFxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRcbi1zdHJ1Y3Qgc3RhdGljX2tleTtcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvanVtcF9sYWJlbC5oXHUwMDNlXG4mIzQzO0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7REVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFxuICNpZmRlZiBDT05GSUdfSEFWRV9QVl9TVEVBTF9DTE9DS19HRU5cbiB1NjQgZHVtbXlfc3RlYWxfY2xvY2soaW50IGNwdSk7XG5kaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmNcbmluZGV4IDk2MjI2NzA3YzJmNjEuLjc4Njk3NWQ0Y2ExZWIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvc2NoZWQvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvc2NoZWQvY29yZS5jXG5AQCAtNzk1LDcgJiM0Mzs3OTUsNyBAQCBzdHJ1Y3QgcnEgKl90YXNrX3JxX2xvY2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgcnFfZmxhZ3MgKnJmKVxuIFxuIC8qIFVzZSBDT05GSUdfUEFSQVZJUlQgYXMgdGhpcyB3aWxsIGF2b2lkIG1vcmUgI2lmZGVmIGluIGFyY2ggY29kZS4gKi9cbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcbiYjNDM7REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXG4gc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKVxuQEAgLTgzNCw3ICYjNDM7ODM0LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKVxuIFx0fVxuICNlbmRpZlxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4tXHRpZiAoc3RhdGljX2tleV9mYWxzZSgoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpKSB7XG4mIzQzO1x0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpIHtcbiBcdFx0dTY0IHByZXZfc3RlYWw7XG4gXG4gXHRcdHN0ZWFsID0gcHJldl9zdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKGNwdV9vZihycSkpO1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMgYi9rZXJuZWwvc2NoZWQvY3B1dGltZS5jXG5pbmRleCAwNmJkZGFhNzM4ZTUyLi5mMTY5NzBjYTgxZDA4IDEwMDY0NFxuLS0tIGEva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xuQEAgLTI1NSw3ICYjNDM7MjU1LDcgQEAgdm9pZCBfX2FjY291bnRfZm9yY2VpZGxlX3RpbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1NjQgZGVsdGEpXG4gICogb2NjYXNpb24gYWNjb3VudCBtb3JlIHRpbWUgdGhhbiB0aGUgY2FsbGluZyBmdW5jdGlvbnMgdGhpbmsgZWxhcHNlZC5cbiAgKi9cbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbiYjNDM7REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXG4gI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTlxuIHN0YXRpYyB1NjQgbmF0aXZlX3N0ZWFsX2Nsb2NrKGludCBjcHUpXG5AQCAtMjcwLDcgJiM0MzsyNzAsNyBAQCBERUZJTkVfU1RBVElDX0NBTEwocHZfc3RlYWxfY2xvY2ssIG5hdGl2ZV9zdGVhbF9jbG9jayk7XG4gc3RhdGljIF9fYWx3YXlzX2lubGluZSB1NjQgc3RlYWxfYWNjb3VudF9wcm9jZXNzX3RpbWUodTY0IG1heHRpbWUpXG4ge1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRcbi1cdGlmIChzdGF0aWNfa2V5X2ZhbHNlKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpKSB7XG4mIzQzO1x0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCkpIHtcbiBcdFx0dTY0IHN0ZWFsO1xuIFxuIFx0XHRzdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKHNtcF9wcm9jZXNzb3JfaWQoKSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDg6MzE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcmVmYWN0b3JpbmcgdGhhdCBtaWdyYXRlcyB0aGUgc3RhdGljIGtleSBBUEkgZnJvbSB0aGUgb2xkZXIgYHN0cnVjdCBzdGF0aWNfa2V5YCBhbmQgYHN0YXRpY19rZXlfc2xvd19pbmNgIHRvIHRoZSBuZXdlciBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYHN0YXRpY19icmFuY2hfaW5jYCBtYWNyb3MuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93LCBzbyBpdCBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2ZkNjllNDU2OTJjZTliN2U0ZDBjZDQ1NGY0MDFjYjczM2RjZDYyZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDE5IDA4OjMxOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuYyBiL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmMKaW5kZXggNTcyZWZiOTZiMjNmZS4uMzBiZjYxZDAzMWViNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jCkBAIC0xNTcsOSAmIzQzOzE1Nyw5IEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpCiAKIAlzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHBhcmFfc3RlYWxfY2xvY2spOwogCi0Jc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwogCWlmIChzdGVhbF9hY2MpCi0JCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAKIAlwcl9pbmZvKCYjMzQ7dXNpbmcgc3RvbGVuIHRpbWUgUFZcbiYjMzQ7KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYwppbmRleCAxMDgyMWNjZTU1NGMwLi5lODk2NWEzZjgwODI0IDEwMDY0NAotLS0gYS9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYwpAQCAtMzA4LDEwICYjNDM7MzA4LDEwIEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpCiAKIAlzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHBhcmF2dF9zdGVhbF9jbG9jayk7CiAKLQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiYjNDM7CXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElORwogCWlmIChzdGVhbF9hY2MpCi0JCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAjZW5kaWYKIAogCWlmIChzdGF0aWNfa2V5X2VuYWJsZWQoJmFtcDt2aXJ0X3ByZWVtcHRfa2V5KSkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMKaW5kZXggMTIyM2RjOTYxMjQyOS4uOGRjYmM0YmI3MDI1NiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMKQEAgLTg1Miw5ICYjNDM7ODUyLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IHBTZXJpZXNfc2V0dXBfYXJjaCh2b2lkKQogCQkJc3RhdGljX2JyYW5jaF9lbmFibGUoJmFtcDtzaGFyZWRfcHJvY2Vzc29yKTsKIAkJCXB2X3NwaW5sb2Nrc19pbml0KCk7CiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElORwotCQkJc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwkJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiAJCQlpZiAoc3RlYWxfYWNjKQotCQkJCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCQkJc3RhdGljX2JyYW5jaF9pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKICNlbmRpZgogCQl9CiAKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jCmluZGV4IDVmNTZiZTc5Y2QwNjIuLjljMTNhNmYxZWEyYWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuYwpAQCAtMTE2LDkgJiM0MzsxMTYsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKQogCiAJc3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwdl90aW1lX3N0ZWFsX2Nsb2NrKTsKIAotCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKJiM0MzsJc3RhdGljX2JyYW5jaF9pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKIAlpZiAoc3RlYWxfYWNjKQotCQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiYjNDM7CQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwogCiAJcHJfaW5mbygmIzM0O0NvbXB1dGluZyBwYXJhdmlydCBzdGVhbC10aW1lXG4mIzM0Oyk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jCmluZGV4IDM0YjczNTczYjEwOGQuLmY3YWI5ZTc5MDJjZmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuYwpAQCAtMzI4LDkgJiM0MzszMjgsOSBAQCBzdGF0aWMgaW50IHZtd2FyZV9jcHVfZG93bl9wcmVwYXJlKHVuc2lnbmVkIGludCBjcHUpCiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKQogewogCWlmIChoYXNfc3RlYWxfY2xvY2spIHsKLQkJc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwkJc3RhdGljX2JyYW5jaF9pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKIAkJaWYgKHN0ZWFsX2FjYykKLQkJCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2t2bS5jIGIvYXJjaC94ODYva2VybmVsL2t2bS5jCmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9rdm0uYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMKQEAgLTEwNTIsOSAmIzQzOzEwNTIsOSBAQCBjb25zdCBfX2luaXRjb25zdCBzdHJ1Y3QgaHlwZXJ2aXNvcl94ODYgeDg2X2h5cGVyX2t2bSA9IHsKIHN0YXRpYyBfX2luaXQgaW50IGFjdGl2YXRlX2p1bXBfbGFiZWxzKHZvaWQpCiB7CiAJaWYgKGhhc19zdGVhbF9jbG9jaykgewotCQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiYjNDM7CQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwogCQlpZiAoc3RlYWxfYWNjKQotCQkJc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwomIzQzOwkJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi90aW1lLmMgYi9kcml2ZXJzL3hlbi90aW1lLmMKaW5kZXggYTJiZTBhNGQ0NWIwYi4uYTAyZDQ4YTJhYTY4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMveGVuL3RpbWUuYwpAQCAtMTY5LDcgJiM0MzsxNjksNyBAQCB2b2lkIF9faW5pdCB4ZW5fdGltZV9zZXR1cF9ndWVzdCh2b2lkKQogCiAJc3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCB4ZW5fc3RlYWxfY2xvY2spOwogCi0Jc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwogCWlmICh4ZW5fcnVuc3RhdGVfcmVtb3RlKQotCQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiYjNDM7CQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaAppbmRleCBlOTBlZmFmNmQyNmU5Li42OTQxMjY0MTFkZmVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaApAQCAtMTgyLDkgJiM0MzsxODIsOSBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nCiB0YXNrX3NjaGVkX3J1bnRpbWUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKIAogI2lmZGVmIENPTkZJR19QQVJBVklSVAotc3RydWN0IHN0YXRpY19rZXk7Ci1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDsKLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkOwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9qdW1wX2xhYmVsLmgmZ3Q7CiYjNDM7REVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzO0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKIAogI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTgogdTY0IGR1bW15X3N0ZWFsX2Nsb2NrKGludCBjcHUpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmMKaW5kZXggOTYyMjY3MDdjMmY2MS4uNzg2OTc1ZDRjYTFlYiAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvc2NoZWQvY29yZS5jCkBAIC03OTUsNyAmIzQzOzc5NSw3IEBAIHN0cnVjdCBycSAqX3Rhc2tfcnFfbG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBycV9mbGFncyAqcmYpCiAKIC8qIFVzZSBDT05GSUdfUEFSQVZJUlQgYXMgdGhpcyB3aWxsIGF2b2lkIG1vcmUgI2lmZGVmIGluIGFyY2ggY29kZS4gKi8KICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQ7CiYjNDM7REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAjZW5kaWYKIAogc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKQpAQCAtODM0LDcgJiM0Mzs4MzQsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcnFfY2xvY2tfdGFzayhzdHJ1Y3QgcnEgKnJxLCBzNjQgZGVsdGEpCiAJfQogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElORwotCWlmIChzdGF0aWNfa2V5X2ZhbHNlKCgmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSkgewomIzQzOwlpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseSgmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7CiAJCXU2NCBwcmV2X3N0ZWFsOwogCiAJCXN0ZWFsID0gcHJldl9zdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKGNwdV9vZihycSkpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NwdXRpbWUuYyBiL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMKaW5kZXggMDZiZGRhYTczOGU1Mi4uZjE2OTcwY2E4MWQwOCAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL2NwdXRpbWUuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvc2NoZWQvY3B1dGltZS5jCkBAIC0yNTUsNyAmIzQzOzI1NSw3IEBAIHZvaWQgX19hY2NvdW50X2ZvcmNlaWRsZV90aW1lKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdTY0IGRlbHRhKQogICogb2NjYXNpb24gYWNjb3VudCBtb3JlIHRpbWUgdGhhbiB0aGUgY2FsbGluZyBmdW5jdGlvbnMgdGhpbmsgZWxhcHNlZC4KICAqLwogI2lmZGVmIENPTkZJR19QQVJBVklSVAotc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDsKJiM0MztERUZJTkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKIAogI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTgogc3RhdGljIHU2NCBuYXRpdmVfc3RlYWxfY2xvY2soaW50IGNwdSkKQEAgLTI3MCw3ICYjNDM7MjcwLDcgQEAgREVGSU5FX1NUQVRJQ19DQUxMKHB2X3N0ZWFsX2Nsb2NrLCBuYXRpdmVfc3RlYWxfY2xvY2spOwogc3RhdGljIF9fYWx3YXlzX2lubGluZSB1NjQgc3RlYWxfYWNjb3VudF9wcm9jZXNzX3RpbWUodTY0IG1heHRpbWUpCiB7CiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCi0JaWYgKHN0YXRpY19rZXlfZmFsc2UoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKSkgewomIzQzOwlpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseSgmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpKSB7CiAJCXU2NCBzdGVhbDsKIAogCQlzdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKHNtcF9wcm9jZXNzb3JfaWQoKSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDA4OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MTgKCQkJCQkJCW91dHB1dDogMTA5CgkJCQkJCQl0aG91Z2h0czogNTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIFN0YXRpYyBLZXlzIGZvciBQYXJhdmlydCBTdGVhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgYmFzaWNhbGx5IGEgc3RyYWlnaHRmb3J3YXJkIEFQSSBtaWdyYXRpb24gZm9yIHN0YXRpYyBrZXlzLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGBwYXJhdmlydF9zdGVhbF9lbmFibGVkYCBhbmQgYHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWRgLiBUaGUgY2hhbmdlcyBhcmU6IHN3YXBwaW5nIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCBmb3IgYHN0YXRpY19icmFuY2hfaW5jYCBhbmQgYHN0YXRpY19rZXlfZmFsc2VgIGZvciBgc3RhdGljX2JyYW5jaF91bmxpa2VseWAuIFdlJiMzOTtyZSBhbHNvIHNlZWluZyB0aGUgYHN0cnVjdCBzdGF0aWNfa2V5YCBkZWNsYXJhdGlvbnMgYmVpbmcgcmVwbGFjZWQgd2l0aCBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYERFRklORV9TVEFUSUNfS0VZX0ZBTFNFYC4gVGhpcyBhbGwgc2NyZWFtcyAmIzM0O21lY2hhbmljYWwgcmVmYWN0b3JpbmcsJiMzNDsgd2hpY2ggaXMgd2hhdCBJIHN1c3BlY3RlZC4KCkkgaW5pdGlhbGx5IGhhZCBhIGZsZWV0aW5nIG1vbWVudCBvZiwgJiMzNDtXYWl0LCBgc3RhdGljX2JyYW5jaF9pbmNgIHdpdGggYHN0YXRpY19rZXlgPyBIbW0sIGdvdHRhIHZlcmlmeS4mIzM0OyBCdXQgYSBxdWljayBjaGVjayBvZiBgaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmhgIGNvbmZpcm1zIHRoYXQgdGhpcyBpcyBpbmRlZWQgaG93IHRoZSBuZXcgQVBJIHdvcmtzIHdpdGggdGhlIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgREVGSU5FX1NUQVRJQ19LRVlfRkFMU0VgIG1hY3Jvcy4gVGhlIG9sZCBBUEkgdXNlZCB0aGUgYHN0cnVjdCBzdGF0aWNfa2V5YCBhbmQgZnVuY3Rpb25zIGxpa2UgYHN0YXRpY19rZXlfc2xvd19pbmNgLCBhbmQgdGhpcyBwYXRjaCBpcyBqdXN0IGJyaW5naW5nIHVzIHVwIHRvIHNwZWVkLgoKVG8gYmUgZXh0cmEgY2VydGFpbiwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IHRoZXJlJiMzOTtzIGFic29sdXRlbHkgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4gTGV0JiMzOTtzIGNvbXBhcmUgdGhlIGJlaGF2aW9yczogYHN0YXRpY19rZXlfc2xvd19pbmNgIGluY3JlbWVudHMsIGBzdGF0aWNfYnJhbmNoX2luY2AgaW5jcmVtZW50cy4gR29vZC4gYHN0YXRpY19rZXlfZmFsc2VgIGNoZWNrcywgYHN0YXRpY19icmFuY2hfdW5saWtlbHlgIGFsc28gY2hlY2tzLiBTZWVtcyBpZGVudGljYWwgZnJvbSBhIGZ1bmN0aW9uYWwgcGVyc3BlY3RpdmUuCgpMb29raW5nIGF0IHRoZSBkaWZmIGRpcmVjdGx5IHJlaW5mb3JjZXMgdGhpcy4gV2UmIzM5O3JlIHNlZWluZyBkaXJlY3Qgc3Vic3RpdHV0aW9ucy4gTm8gYWx0ZXJlZCBsb2dpYyBvciBjb250cm9sIGZsb3cuCgpgYGBjCi0Jc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwpgYGAKCmBgYGMKLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQ7Ci1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvanVtcF9sYWJlbC5oJmd0OwomIzQzO0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKJiM0MztERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CmBgYAoKYGBgYwotc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDsKJiM0MztERUZJTkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKYGBgCgpgYGBjCi0JaWYgKHN0YXRpY19rZXlfZmFsc2UoKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpKSB7CiYjNDM7CWlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpIHsKYGBgCgpTbywgcHVyZWx5IGEgbWVjaGFuaWNhbCByZWZhY3RvcmluZy4gVGhpcyBoYXMgemVybyBpbXBhY3Qgb24gaG93IHRoZSBjb2RlICpleGVjdXRlcyouIFRoZXJlZm9yZSwgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRpbWUgdG8gY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwODozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcmVmYWN0b3JpbmcgdGhhdCBtaWdyYXRlcyB0aGUgc3RhdGljIGtleSBBUEkgZnJvbSB0aGUgb2xkZXIgYHN0cnVjdCBzdGF0aWNfa2V5YCBhbmQgYHN0YXRpY19rZXlfc2xvd19pbmNgIHRvIHRoZSBuZXdlciBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYHN0YXRpY19icmFuY2hfaW5jYCBtYWNyb3MuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93LCBzbyBpdCBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmVseSBtZWNoYW5pY2FsIHJlZmFjdG9yaW5nIHRoYXQgbWlncmF0ZXMgdGhlIHN0YXRpYyBrZXkgQVBJIGZyb20gdGhlIG9sZGVyIGBzdHJ1Y3Qgc3RhdGljX2tleWAgYW5kIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCB0byB0aGUgbmV3ZXIgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBzdGF0aWNfYnJhbmNoX2luY2AgbWFjcm9zLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgc28gaXQgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwODozMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDg6MzE6MTkuNzk5OTcxMjU1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTExMzUyMDU5MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmVseSBtZWNoYW5pY2FsIHJlZmFjdG9yaW5nIHRoYXQgbWlncmF0ZXMgdGhlIHN0YXRpYyBrZXkgQVBJIGZyb20gdGhlIG9sZGVyIGBzdHJ1Y3Qgc3RhdGljX2tleWAgYW5kIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCB0byB0aGUgbmV3ZXIgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBzdGF0aWNfYnJhbmNoX2luY2AgbWFjcm9zLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgc28gaXQgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDg6MzE6MTkuNzk5OTc3NTI1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDYwODUxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzZmQ2OWU0NTY5MmNlOWI3ZTRkMGNkNDU0ZjQwMWNiNzMzZGNkNjJlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDE5IDA4OjMxOjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXFxuaW5kZXggNTcyZWZiOTZiMjNmZS4uMzBiZjYxZDAzMWViNyAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXFxuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuY1xcbkBAIC0xNTcsOSArMTU3LDkgQEAgaW50IF9faW5pdCBwdl90aW1lX2luaXQodm9pZClcXG4gXFxuIFxcdHN0YXRpY19jYWxsX3VwZGF0ZShwdl9zdGVhbF9jbG9jaywgcGFyYV9zdGVhbF9jbG9jayk7XFxuIFxcbi1cXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4rXFx0c3RhdGljX2JyYW5jaF9pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbiBcXHRpZiAoc3RlYWxfYWNjKVxcbi1cXHRcXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4rXFx0XFx0c3RhdGljX2JyYW5jaF9pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbiBcXG4gXFx0cHJfaW5mbyhcXFwidXNpbmcgc3RvbGVuIHRpbWUgUFZcXFxcblxcXCIpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuY1xcbmluZGV4IDEwODIxY2NlNTU0YzAuLmU4OTY1YTNmODA4MjQgMTAwNjQ0XFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuY1xcbkBAIC0zMDgsMTAgKzMwOCwxMCBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxcbiBcXG4gXFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhdnRfc3RlYWxfY2xvY2spO1xcbiBcXG4tXFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVF9USU1FX0FDQ09VTlRJTkdcXG4gXFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gI2VuZGlmXFxuIFxcbiBcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZ2aXJ0X3ByZWVtcHRfa2V5KSlcXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xcbmluZGV4IDEyMjNkYzk2MTI0MjkuLjhkY2JjNGJiNzAyNTYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmNcXG4rKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xcbkBAIC04NTIsOSArODUyLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IHBTZXJpZXNfc2V0dXBfYXJjaCh2b2lkKVxcbiBcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcXHUwMDI2c2hhcmVkX3Byb2Nlc3Nvcik7XFxuIFxcdFxcdFxcdHB2X3NwaW5sb2Nrc19pbml0KCk7XFxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXFxuLVxcdFxcdFxcdHN0YXRpY19rZXlfc2xvd19pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbitcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuIFxcdFxcdFxcdGlmIChzdGVhbF9hY2MpXFxuLVxcdFxcdFxcdFxcdHN0YXRpY19rZXlfc2xvd19pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbitcXHRcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuICNlbmRpZlxcbiBcXHRcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xcbmluZGV4IDVmNTZiZTc5Y2QwNjIuLjljMTNhNmYxZWEyYWYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xcbisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmNcXG5AQCAtMTE2LDkgKzExNiw5IEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpXFxuIFxcbiBcXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHB2X3RpbWVfc3RlYWxfY2xvY2spO1xcbiBcXG4tXFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gXFxuIFxcdHByX2luZm8oXFxcIkNvbXB1dGluZyBwYXJhdmlydCBzdGVhbC10aW1lXFxcXG5cXFwiKTtcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXFxuaW5kZXggMzRiNzM1NzNiMTA4ZC4uZjdhYjllNzkwMmNmZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXFxuKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xcbkBAIC0zMjgsOSArMzI4LDkgQEAgc3RhdGljIGludCB2bXdhcmVfY3B1X2Rvd25fcHJlcGFyZSh1bnNpZ25lZCBpbnQgY3B1KVxcbiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKVxcbiB7XFxuIFxcdGlmIChoYXNfc3RlYWxfY2xvY2spIHtcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0XFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIDA7XFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9rdm0uYyBiL2FyY2gveDg2L2tlcm5lbC9rdm0uY1xcbmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva2VybmVsL2t2bS5jXFxuKysrIGIvYXJjaC94ODYva2VybmVsL2t2bS5jXFxuQEAgLTEwNTIsOSArMTA1Miw5IEBAIGNvbnN0IF9faW5pdGNvbnN0IHN0cnVjdCBoeXBlcnZpc29yX3g4NiB4ODZfaHlwZXJfa3ZtID0ge1xcbiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKVxcbiB7XFxuIFxcdGlmIChoYXNfc3RlYWxfY2xvY2spIHtcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0XFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIDA7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3RpbWUuYyBiL2RyaXZlcnMveGVuL3RpbWUuY1xcbmluZGV4IGEyYmUwYTRkNDViMGIuLmEwMmQ0OGEyYWE2ODQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jXFxuKysrIGIvZHJpdmVycy94ZW4vdGltZS5jXFxuQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIF9faW5pdCB4ZW5fdGltZV9zZXR1cF9ndWVzdCh2b2lkKVxcbiBcXG4gXFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCB4ZW5fc3RlYWxfY2xvY2spO1xcbiBcXG4tXFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0aWYgKHhlbl9ydW5zdGF0ZV9yZW1vdGUpXFxuLVxcdFxcdHN0YXRpY19rZXlfc2xvd19pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbitcXHRcXHRzdGF0aWNfYnJhbmNoX2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxcbmluZGV4IGU5MGVmYWY2ZDI2ZTkuLjY5NDEyNjQxMWRmZWEgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxcbkBAIC0xODIsOSArMTgyLDkgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZ1xcbiB0YXNrX3NjaGVkX3J1bnRpbWUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTtcXG4gXFxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRcXG4tc3RydWN0IHN0YXRpY19rZXk7XFxuLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9lbmFibGVkO1xcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2p1bXBfbGFiZWwuaFxcdTAwM2VcXG4rREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuIFxcbiAjaWZkZWYgQ09ORklHX0hBVkVfUFZfU1RFQUxfQ0xPQ0tfR0VOXFxuIHU2NCBkdW1teV9zdGVhbF9jbG9jayhpbnQgY3B1KTtcXG5kaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmNcXG5pbmRleCA5NjIyNjcwN2MyZjYxLi43ODY5NzVkNGNhMWViIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9zY2hlZC9jb3JlLmNcXG4rKysgYi9rZXJuZWwvc2NoZWQvY29yZS5jXFxuQEAgLTc5NSw3ICs3OTUsNyBAQCBzdHJ1Y3QgcnEgKl90YXNrX3JxX2xvY2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgcnFfZmxhZ3MgKnJmKVxcbiBcXG4gLyogVXNlIENPTkZJR19QQVJBVklSVCBhcyB0aGlzIHdpbGwgYXZvaWQgbW9yZSAjaWZkZWYgaW4gYXJjaCBjb2RlLiAqL1xcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXFxuLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQ7XFxuK0RFRklORV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbiAjZW5kaWZcXG4gXFxuIHN0YXRpYyB2b2lkIHVwZGF0ZV9ycV9jbG9ja190YXNrKHN0cnVjdCBycSAqcnEsIHM2NCBkZWx0YSlcXG5AQCAtODM0LDcgKzgzNCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9ycV9jbG9ja190YXNrKHN0cnVjdCBycSAqcnEsIHM2NCBkZWx0YSlcXG4gXFx0fVxcbiAjZW5kaWZcXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVF9USU1FX0FDQ09VTlRJTkdcXG4tXFx0aWYgKHN0YXRpY19rZXlfZmFsc2UoKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKSkpIHtcXG4rXFx0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7XFxuIFxcdFxcdHU2NCBwcmV2X3N0ZWFsO1xcbiBcXG4gXFx0XFx0c3RlYWwgPSBwcmV2X3N0ZWFsID0gcGFyYXZpcnRfc3RlYWxfY2xvY2soY3B1X29mKHJxKSk7XFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMgYi9rZXJuZWwvc2NoZWQvY3B1dGltZS5jXFxuaW5kZXggMDZiZGRhYTczOGU1Mi4uZjE2OTcwY2E4MWQwOCAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvc2NoZWQvY3B1dGltZS5jXFxuKysrIGIva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xcbkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBfX2FjY291bnRfZm9yY2VpZGxlX3RpbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1NjQgZGVsdGEpXFxuICAqIG9jY2FzaW9uIGFjY291bnQgbW9yZSB0aW1lIHRoYW4gdGhlIGNhbGxpbmcgZnVuY3Rpb25zIHRoaW5rIGVsYXBzZWQuXFxuICAqL1xcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXFxuLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQ7XFxuK0RFRklORV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbiBcXG4gI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTlxcbiBzdGF0aWMgdTY0IG5hdGl2ZV9zdGVhbF9jbG9jayhpbnQgY3B1KVxcbkBAIC0yNzAsNyArMjcwLDcgQEAgREVGSU5FX1NUQVRJQ19DQUxMKHB2X3N0ZWFsX2Nsb2NrLCBuYXRpdmVfc3RlYWxfY2xvY2spO1xcbiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHU2NCBzdGVhbF9hY2NvdW50X3Byb2Nlc3NfdGltZSh1NjQgbWF4dGltZSlcXG4ge1xcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXFxuLVxcdGlmIChzdGF0aWNfa2V5X2ZhbHNlKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKSkge1xcbitcXHRpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseShcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCkpIHtcXG4gXFx0XFx0dTY0IHN0ZWFsO1xcbiBcXG4gXFx0XFx0c3RlYWwgPSBwYXJhdmlydF9zdGVhbF9jbG9jayhzbXBfcHJvY2Vzc29yX2lkKCkpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwODozMToyMC4zMDY5MjgyMjJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMDYyODIzNzMyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgbWVjaGFuaWNhbCByZWZhY3RvcmluZyB0aGF0IG1pZ3JhdGVzIHRoZSBzdGF0aWMga2V5IEFQSSBmcm9tIHRoZSBvbGRlciBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBgc3RhdGljX2tleV9zbG93X2luY2AgdG8gdGhlIG5ld2VyIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgc3RhdGljX2JyYW5jaF9pbmNgIG1hY3Jvcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3csIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDNmZDY5ZTQ1NjkyY2U5YjdlNGQwY2Q0NTRmNDAxY2I3MzNkY2Q2MmVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxOSAwODozMToxOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXG5pbmRleCA1NzJlZmI5NmIyM2ZlLi4zMGJmNjFkMDMxZWI3IDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuY1xuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuY1xuQEAgLTE1Nyw5ICsxNTcsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmIChzdGVhbF9hY2MpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFxuIFx0cHJfaW5mbyhcInVzaW5nIHN0b2xlbiB0aW1lIFBWXFxuXCIpO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcbmluZGV4IDEwODIxY2NlNTU0YzAuLmU4OTY1YTNmODA4MjQgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuY1xuKysrIGIvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcbkBAIC0zMDgsMTAgKzMwOCwxMCBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhdnRfc3RlYWxfY2xvY2spO1xuIFxuLVx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbitcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4gXHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuK1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiAjZW5kaWZcbiBcbiBcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2dmlydF9wcmVlbXB0X2tleSkpXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xuaW5kZXggMTIyM2RjOTYxMjQyOS4uOGRjYmM0YmI3MDI1NiAxMDA2NDRcbi0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jXG4rKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xuQEAgLTg1Miw5ICs4NTIsOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcFNlcmllc19zZXR1cF9hcmNoKHZvaWQpXG4gXHRcdFx0c3RhdGljX2JyYW5jaF9lbmFibGUoXHUwMDI2c2hhcmVkX3Byb2Nlc3Nvcik7XG4gXHRcdFx0cHZfc3BpbmxvY2tzX2luaXQoKTtcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElOR1xuLVx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRcdFx0aWYgKHN0ZWFsX2FjYylcbi1cdFx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdFx0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiAjZW5kaWZcbiBcdFx0fVxuIFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jXG5pbmRleCA1ZjU2YmU3OWNkMDYyLi45YzEzYTZmMWVhMmFmIDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xuKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xuQEAgLTExNiw5ICsxMTYsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwdl90aW1lX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmIChzdGVhbF9hY2MpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFxuIFx0cHJfaW5mbyhcIkNvbXB1dGluZyBwYXJhdmlydCBzdGVhbC10aW1lXFxuXCIpO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXG5pbmRleCAzNGI3MzU3M2IxMDhkLi5mN2FiOWU3OTAyY2ZlIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuQEAgLTMyOCw5ICszMjgsOSBAQCBzdGF0aWMgaW50IHZtd2FyZV9jcHVfZG93bl9wcmVwYXJlKHVuc2lnbmVkIGludCBjcHUpXG4gc3RhdGljIF9faW5pdCBpbnQgYWN0aXZhdGVfanVtcF9sYWJlbHModm9pZClcbiB7XG4gXHRpZiAoaGFzX3N0ZWFsX2Nsb2NrKSB7XG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuIFx0XHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXHR9XG4gXG4gXHRyZXR1cm4gMDtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMgYi9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbisrKyBiL2FyY2gveDg2L2tlcm5lbC9rdm0uY1xuQEAgLTEwNTIsOSArMTA1Miw5IEBAIGNvbnN0IF9faW5pdGNvbnN0IHN0cnVjdCBoeXBlcnZpc29yX3g4NiB4ODZfaHlwZXJfa3ZtID0ge1xuIHN0YXRpYyBfX2luaXQgaW50IGFjdGl2YXRlX2p1bXBfbGFiZWxzKHZvaWQpXG4ge1xuIFx0aWYgKGhhc19zdGVhbF9jbG9jaykge1xuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuK1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdFx0aWYgKHN0ZWFsX2FjYylcbi1cdFx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuK1x0XHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vdGltZS5jIGIvZHJpdmVycy94ZW4vdGltZS5jXG5pbmRleCBhMmJlMGE0ZDQ1YjBiLi5hMDJkNDhhMmFhNjg0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jXG4rKysgYi9kcml2ZXJzL3hlbi90aW1lLmNcbkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBfX2luaXQgeGVuX3RpbWVfc2V0dXBfZ3Vlc3Qodm9pZClcbiBcbiBcdHN0YXRpY19jYWxsX3VwZGF0ZShwdl9zdGVhbF9jbG9jaywgeGVuX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmICh4ZW5fcnVuc3RhdGVfcmVtb3RlKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuK1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiB9XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuaW5kZXggZTkwZWZhZjZkMjZlOS4uNjk0MTI2NDExZGZlYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc2NoZWQvY3B1dGltZS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuQEAgLTE4Miw5ICsxODIsOSBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nXG4gdGFza19zY2hlZF9ydW50aW1lKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7XG4gXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVFxuLXN0cnVjdCBzdGF0aWNfa2V5O1xuLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9lbmFibGVkO1xuLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkO1xuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2p1bXBfbGFiZWwuaFx1MDAzZVxuK0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXG4gI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTlxuIHU2NCBkdW1teV9zdGVhbF9jbG9jayhpbnQgY3B1KTtcbmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvY29yZS5jIGIva2VybmVsL3NjaGVkL2NvcmUuY1xuaW5kZXggOTYyMjY3MDdjMmY2MS4uNzg2OTc1ZDRjYTFlYiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9zY2hlZC9jb3JlLmNcbisrKyBiL2tlcm5lbC9zY2hlZC9jb3JlLmNcbkBAIC03OTUsNyArNzk1LDcgQEAgc3RydWN0IHJxICpfdGFza19ycV9sb2NrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHJxX2ZsYWdzICpyZilcbiBcbiAvKiBVc2UgQ09ORklHX1BBUkFWSVJUIGFzIHRoaXMgd2lsbCBhdm9pZCBtb3JlICNpZmRlZiBpbiBhcmNoIGNvZGUuICovXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVFxuLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQ7XG4rREVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXG4gc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKVxuQEAgLTgzNCw3ICs4MzQsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcnFfY2xvY2tfdGFzayhzdHJ1Y3QgcnEgKnJxLCBzNjQgZGVsdGEpXG4gXHR9XG4gI2VuZGlmXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVF9USU1FX0FDQ09VTlRJTkdcbi1cdGlmIChzdGF0aWNfa2V5X2ZhbHNlKChcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKSkpIHtcbitcdGlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7XG4gXHRcdHU2NCBwcmV2X3N0ZWFsO1xuIFxuIFx0XHRzdGVhbCA9IHByZXZfc3RlYWwgPSBwYXJhdmlydF9zdGVhbF9jbG9jayhjcHVfb2YocnEpKTtcbmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvY3B1dGltZS5jIGIva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xuaW5kZXggMDZiZGRhYTczOGU1Mi4uZjE2OTcwY2E4MWQwOCAxMDA2NDRcbi0tLSBhL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmNcbisrKyBiL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmNcbkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBfX2FjY291bnRfZm9yY2VpZGxlX3RpbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1NjQgZGVsdGEpXG4gICogb2NjYXNpb24gYWNjb3VudCBtb3JlIHRpbWUgdGhhbiB0aGUgY2FsbGluZyBmdW5jdGlvbnMgdGhpbmsgZWxhcHNlZC5cbiAgKi9cbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbitERUZJTkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcbiAjaWZkZWYgQ09ORklHX0hBVkVfUFZfU1RFQUxfQ0xPQ0tfR0VOXG4gc3RhdGljIHU2NCBuYXRpdmVfc3RlYWxfY2xvY2soaW50IGNwdSlcbkBAIC0yNzAsNyArMjcwLDcgQEAgREVGSU5FX1NUQVRJQ19DQUxMKHB2X3N0ZWFsX2Nsb2NrLCBuYXRpdmVfc3RlYWxfY2xvY2spO1xuIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdTY0IHN0ZWFsX2FjY291bnRfcHJvY2Vzc190aW1lKHU2NCBtYXh0aW1lKVxuIHtcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tXHRpZiAoc3RhdGljX2tleV9mYWxzZShcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKSkge1xuK1x0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCkpIHtcbiBcdFx0dTY0IHN0ZWFsO1xuIFxuIFx0XHRzdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKHNtcF9wcm9jZXNzb3JfaWQoKSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwODozMToyMC4zMDY5Mjk4NDJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDYyODIxMDAxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZhY3RvcmluZyBTdGF0aWMgS2V5cyBmb3IgUGFyYXZpcnQgU3RlYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGJhc2ljYWxseSBhIHN0cmFpZ2h0Zm9yd2FyZCBBUEkgbWlncmF0aW9uIGZvciBzdGF0aWMga2V5cywgc3BlY2lmaWNhbGx5IGFyb3VuZCBgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZGAgYW5kIGBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkYC4gVGhlIGNoYW5nZXMgYXJlOiBzd2FwcGluZyBgc3RhdGljX2tleV9zbG93X2luY2AgZm9yIGBzdGF0aWNfYnJhbmNoX2luY2AgYW5kIGBzdGF0aWNfa2V5X2ZhbHNlYCBmb3IgYHN0YXRpY19icmFuY2hfdW5saWtlbHlgLiBXZSdyZSBhbHNvIHNlZWluZyB0aGUgYHN0cnVjdCBzdGF0aWNfa2V5YCBkZWNsYXJhdGlvbnMgYmVpbmcgcmVwbGFjZWQgd2l0aCBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYERFRklORV9TVEFUSUNfS0VZX0ZBTFNFYC4gVGhpcyBhbGwgc2NyZWFtcyBcIm1lY2hhbmljYWwgcmVmYWN0b3JpbmcsXCIgd2hpY2ggaXMgd2hhdCBJIHN1c3BlY3RlZC5cblxuSSBpbml0aWFsbHkgaGFkIGEgZmxlZXRpbmcgbW9tZW50IG9mLCBcIldhaXQsIGBzdGF0aWNfYnJhbmNoX2luY2Agd2l0aCBgc3RhdGljX2tleWA/IEhtbSwgZ290dGEgdmVyaWZ5LlwiIEJ1dCBhIHF1aWNrIGNoZWNrIG9mIGBpbmNsdWRlL2xpbnV4L2p1bXBfbGFiZWwuaGAgY29uZmlybXMgdGhhdCB0aGlzIGlzIGluZGVlZCBob3cgdGhlIG5ldyBBUEkgd29ya3Mgd2l0aCB0aGUgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBERUZJTkVfU1RBVElDX0tFWV9GQUxTRWAgbWFjcm9zLiBUaGUgb2xkIEFQSSB1c2VkIHRoZSBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBmdW5jdGlvbnMgbGlrZSBgc3RhdGljX2tleV9zbG93X2luY2AsIGFuZCB0aGlzIHBhdGNoIGlzIGp1c3QgYnJpbmdpbmcgdXMgdXAgdG8gc3BlZWQuXG5cblRvIGJlIGV4dHJhIGNlcnRhaW4sIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGVyZSdzIGFic29sdXRlbHkgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4gTGV0J3MgY29tcGFyZSB0aGUgYmVoYXZpb3JzOiBgc3RhdGljX2tleV9zbG93X2luY2AgaW5jcmVtZW50cywgYHN0YXRpY19icmFuY2hfaW5jYCBpbmNyZW1lbnRzLiBHb29kLiBgc3RhdGljX2tleV9mYWxzZWAgY2hlY2tzLCBgc3RhdGljX2JyYW5jaF91bmxpa2VseWAgYWxzbyBjaGVja3MuIFNlZW1zIGlkZW50aWNhbCBmcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZS5cblxuTG9va2luZyBhdCB0aGUgZGlmZiBkaXJlY3RseSByZWluZm9yY2VzIHRoaXMuIFdlJ3JlIHNlZWluZyBkaXJlY3Qgc3Vic3RpdHV0aW9ucy4gTm8gYWx0ZXJlZCBsb2dpYyBvciBjb250cm9sIGZsb3cuXG5cbmBgYGNcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbmBgYFxuXG5gYGBjXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9qdW1wX2xhYmVsLmhcdTAwM2VcbitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuYGBgXG5cbmBgYGNcbi1zdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkO1xuK0RFRklORV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuYGBgXG5cbmBgYGNcbi1cdGlmIChzdGF0aWNfa2V5X2ZhbHNlKChcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKSkpIHtcbitcdGlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7XG5gYGBcblxuU28sIHB1cmVseSBhIG1lY2hhbmljYWwgcmVmYWN0b3JpbmcuIFRoaXMgaGFzIHplcm8gaW1wYWN0IG9uIGhvdyB0aGUgY29kZSAqZXhlY3V0ZXMqLiBUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaW1lIHRvIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MTgsIk91dHB1dFRva2VucyI6MTA5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTczLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDg6MzE6MzAuOTM1MTQyMjg4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmVseSBtZWNoYW5pY2FsIHJlZmFjdG9yaW5nIHRoYXQgbWlncmF0ZXMgdGhlIHN0YXRpYyBrZXkgQVBJIGZyb20gdGhlIG9sZGVyIGBzdHJ1Y3Qgc3RhdGljX2tleWAgYW5kIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCB0byB0aGUgbmV3ZXIgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBzdGF0aWNfYnJhbmNoX2luY2AgbWFjcm9zLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgc28gaXQgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgbWVjaGFuaWNhbCByZWZhY3RvcmluZyB0aGF0IG1pZ3JhdGVzIHRoZSBzdGF0aWMga2V5IEFQSSBmcm9tIHRoZSBvbGRlciBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBgc3RhdGljX2tleV9zbG93X2luY2AgdG8gdGhlIG5ld2VyIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgc3RhdGljX2JyYW5jaF9pbmNgIG1hY3Jvcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3csIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDA4OjMxOjMwLjkzNTE2NzczOFoiLCJTZXEiOjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowzqklc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-19 08:29:14 +0000 UTC FinishedAt: 2026-08-19 08:31:31 +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+CgkJCTx0ZD4yMDI2LzA4LzE5IDA4OjMxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgbWVjaGFuaWNhbCByZWZhY3RvcmluZyB0aGF0IG1pZ3JhdGVzIHRoZSBzdGF0aWMga2V5IEFQSSBmcm9tIHRoZSBvbGRlciBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBgc3RhdGljX2tleV9zbG93X2luY2AgdG8gdGhlIG5ld2VyIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgc3RhdGljX2JyYW5jaF9pbmNgIG1hY3Jvcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3csIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDg6MzE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzZmQ2OWU0NTY5MmNlOWI3ZTRkMGNkNDU0ZjQwMWNiNzMzZGNkNjJlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMTkgMDg6MzE6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuYyBiL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmNcbmluZGV4IDU3MmVmYjk2YjIzZmUuLjMwYmY2MWQwMzFlYjcgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXG5AQCAtMTU3LDkgJiM0MzsxNTcsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4mIzQzO1x0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuJiM0MztcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXG4gXHRwcl9pbmZvKFwmIzM0O3VzaW5nIHN0b2xlbiB0aW1lIFBWXFxuXCYjMzQ7KTtcbiBcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYyBiL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wYXJhdmlydC5jXG5pbmRleCAxMDgyMWNjZTU1NGMwLi5lODk2NWEzZjgwODI0IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wYXJhdmlydC5jXG5AQCAtMzA4LDEwICYjNDM7MzA4LDEwIEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpXG4gXG4gXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHBhcmF2dF9zdGVhbF9jbG9jayk7XG4gXG4tXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuJiM0MztcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4gXHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuJiM0MztcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXG4gXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNnZpcnRfcHJlZW1wdF9rZXkpKVxuZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmNcbmluZGV4IDEyMjNkYzk2MTI0MjkuLjhkY2JjNGJiNzAyNTYgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmNcbkBAIC04NTIsOSAmIzQzOzg1Miw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwU2VyaWVzX3NldHVwX2FyY2godm9pZClcbiBcdFx0XHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcdTAwMjZzaGFyZWRfcHJvY2Vzc29yKTtcbiBcdFx0XHRwdl9zcGlubG9ja3NfaW5pdCgpO1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4tXHRcdFx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7XHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRcdFx0aWYgKHN0ZWFsX2FjYylcbi1cdFx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXHRcdH1cbiBcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xuaW5kZXggNWY1NmJlNzljZDA2Mi4uOWMxM2E2ZjFlYTJhZiAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmNcbkBAIC0xMTYsOSAmIzQzOzExNiw5IEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpXG4gXG4gXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHB2X3RpbWVfc3RlYWxfY2xvY2spO1xuIFxuLVx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmIChzdGVhbF9hY2MpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiBcbiBcdHByX2luZm8oXCYjMzQ7Q29tcHV0aW5nIHBhcmF2aXJ0IHN0ZWFsLXRpbWVcXG5cJiMzNDspO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXG5pbmRleCAzNGI3MzU3M2IxMDhkLi5mN2FiOWU3OTAyY2ZlIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuQEAgLTMyOCw5ICYjNDM7MzI4LDkgQEAgc3RhdGljIGludCB2bXdhcmVfY3B1X2Rvd25fcHJlcGFyZSh1bnNpZ25lZCBpbnQgY3B1KVxuIHN0YXRpYyBfX2luaXQgaW50IGFjdGl2YXRlX2p1bXBfbGFiZWxzKHZvaWQpXG4ge1xuIFx0aWYgKGhhc19zdGVhbF9jbG9jaykge1xuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuJiM0MztcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRcdGlmIChzdGVhbF9hY2MpXG4tXHRcdFx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiYjNDM7XHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXHR9XG4gXG4gXHRyZXR1cm4gMDtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMgYi9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2tlcm5lbC9rdm0uY1xuQEAgLTEwNTIsOSAmIzQzOzEwNTIsOSBAQCBjb25zdCBfX2luaXRjb25zdCBzdHJ1Y3QgaHlwZXJ2aXNvcl94ODYgeDg2X2h5cGVyX2t2bSA9IHtcbiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKVxuIHtcbiBcdGlmIChoYXNfc3RlYWxfY2xvY2spIHtcbi1cdFx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7XHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuIFx0XHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vdGltZS5jIGIvZHJpdmVycy94ZW4vdGltZS5jXG5pbmRleCBhMmJlMGE0ZDQ1YjBiLi5hMDJkNDhhMmFhNjg0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3hlbi90aW1lLmNcbkBAIC0xNjksNyAmIzQzOzE2OSw3IEBAIHZvaWQgX19pbml0IHhlbl90aW1lX3NldHVwX2d1ZXN0KHZvaWQpXG4gXG4gXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHhlbl9zdGVhbF9jbG9jayk7XG4gXG4tXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuJiM0MztcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuIFx0aWYgKHhlbl9ydW5zdGF0ZV9yZW1vdGUpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4mIzQzO1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiB9XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuaW5kZXggZTkwZWZhZjZkMjZlOS4uNjk0MTI2NDExZGZlYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc2NoZWQvY3B1dGltZS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuQEAgLTE4Miw5ICYjNDM7MTgyLDkgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZ1xuIHRhc2tfc2NoZWRfcnVudGltZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spO1xuIFxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRcbi1zdHJ1Y3Qgc3RhdGljX2tleTtcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvanVtcF9sYWJlbC5oXHUwMDNlXG4mIzQzO0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiYjNDM7REVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFxuICNpZmRlZiBDT05GSUdfSEFWRV9QVl9TVEVBTF9DTE9DS19HRU5cbiB1NjQgZHVtbXlfc3RlYWxfY2xvY2soaW50IGNwdSk7XG5kaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmNcbmluZGV4IDk2MjI2NzA3YzJmNjEuLjc4Njk3NWQ0Y2ExZWIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvc2NoZWQvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvc2NoZWQvY29yZS5jXG5AQCAtNzk1LDcgJiM0Mzs3OTUsNyBAQCBzdHJ1Y3QgcnEgKl90YXNrX3JxX2xvY2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgcnFfZmxhZ3MgKnJmKVxuIFxuIC8qIFVzZSBDT05GSUdfUEFSQVZJUlQgYXMgdGhpcyB3aWxsIGF2b2lkIG1vcmUgI2lmZGVmIGluIGFyY2ggY29kZS4gKi9cbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcbiYjNDM7REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXG4gc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKVxuQEAgLTgzNCw3ICYjNDM7ODM0LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKVxuIFx0fVxuICNlbmRpZlxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4tXHRpZiAoc3RhdGljX2tleV9mYWxzZSgoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpKSB7XG4mIzQzO1x0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpIHtcbiBcdFx0dTY0IHByZXZfc3RlYWw7XG4gXG4gXHRcdHN0ZWFsID0gcHJldl9zdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKGNwdV9vZihycSkpO1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMgYi9rZXJuZWwvc2NoZWQvY3B1dGltZS5jXG5pbmRleCAwNmJkZGFhNzM4ZTUyLi5mMTY5NzBjYTgxZDA4IDEwMDY0NFxuLS0tIGEva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xuQEAgLTI1NSw3ICYjNDM7MjU1LDcgQEAgdm9pZCBfX2FjY291bnRfZm9yY2VpZGxlX3RpbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1NjQgZGVsdGEpXG4gICogb2NjYXNpb24gYWNjb3VudCBtb3JlIHRpbWUgdGhhbiB0aGUgY2FsbGluZyBmdW5jdGlvbnMgdGhpbmsgZWxhcHNlZC5cbiAgKi9cbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbiYjNDM7REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXG4gI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTlxuIHN0YXRpYyB1NjQgbmF0aXZlX3N0ZWFsX2Nsb2NrKGludCBjcHUpXG5AQCAtMjcwLDcgJiM0MzsyNzAsNyBAQCBERUZJTkVfU1RBVElDX0NBTEwocHZfc3RlYWxfY2xvY2ssIG5hdGl2ZV9zdGVhbF9jbG9jayk7XG4gc3RhdGljIF9fYWx3YXlzX2lubGluZSB1NjQgc3RlYWxfYWNjb3VudF9wcm9jZXNzX3RpbWUodTY0IG1heHRpbWUpXG4ge1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRcbi1cdGlmIChzdGF0aWNfa2V5X2ZhbHNlKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpKSB7XG4mIzQzO1x0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCkpIHtcbiBcdFx0dTY0IHN0ZWFsO1xuIFxuIFx0XHRzdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKHNtcF9wcm9jZXNzb3JfaWQoKSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDg6MzE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcmVmYWN0b3JpbmcgdGhhdCBtaWdyYXRlcyB0aGUgc3RhdGljIGtleSBBUEkgZnJvbSB0aGUgb2xkZXIgYHN0cnVjdCBzdGF0aWNfa2V5YCBhbmQgYHN0YXRpY19rZXlfc2xvd19pbmNgIHRvIHRoZSBuZXdlciBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYHN0YXRpY19icmFuY2hfaW5jYCBtYWNyb3MuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93LCBzbyBpdCBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2ZkNjllNDU2OTJjZTliN2U0ZDBjZDQ1NGY0MDFjYjczM2RjZDYyZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDE5IDA4OjMxOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuYyBiL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmMKaW5kZXggNTcyZWZiOTZiMjNmZS4uMzBiZjYxZDAzMWViNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jCkBAIC0xNTcsOSAmIzQzOzE1Nyw5IEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpCiAKIAlzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHBhcmFfc3RlYWxfY2xvY2spOwogCi0Jc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwogCWlmIChzdGVhbF9hY2MpCi0JCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAKIAlwcl9pbmZvKCYjMzQ7dXNpbmcgc3RvbGVuIHRpbWUgUFZcbiYjMzQ7KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYwppbmRleCAxMDgyMWNjZTU1NGMwLi5lODk2NWEzZjgwODI0IDEwMDY0NAotLS0gYS9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuYwpAQCAtMzA4LDEwICYjNDM7MzA4LDEwIEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpCiAKIAlzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHBhcmF2dF9zdGVhbF9jbG9jayk7CiAKLQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiYjNDM7CXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElORwogCWlmIChzdGVhbF9hY2MpCi0JCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAjZW5kaWYKIAogCWlmIChzdGF0aWNfa2V5X2VuYWJsZWQoJmFtcDt2aXJ0X3ByZWVtcHRfa2V5KSkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMKaW5kZXggMTIyM2RjOTYxMjQyOS4uOGRjYmM0YmI3MDI1NiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMKQEAgLTg1Miw5ICYjNDM7ODUyLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IHBTZXJpZXNfc2V0dXBfYXJjaCh2b2lkKQogCQkJc3RhdGljX2JyYW5jaF9lbmFibGUoJmFtcDtzaGFyZWRfcHJvY2Vzc29yKTsKIAkJCXB2X3NwaW5sb2Nrc19pbml0KCk7CiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElORwotCQkJc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwkJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiAJCQlpZiAoc3RlYWxfYWNjKQotCQkJCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCQkJc3RhdGljX2JyYW5jaF9pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKICNlbmRpZgogCQl9CiAKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jCmluZGV4IDVmNTZiZTc5Y2QwNjIuLjljMTNhNmYxZWEyYWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuYwpAQCAtMTE2LDkgJiM0MzsxMTYsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKQogCiAJc3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwdl90aW1lX3N0ZWFsX2Nsb2NrKTsKIAotCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKJiM0MzsJc3RhdGljX2JyYW5jaF9pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKIAlpZiAoc3RlYWxfYWNjKQotCQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiYjNDM7CQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwogCiAJcHJfaW5mbygmIzM0O0NvbXB1dGluZyBwYXJhdmlydCBzdGVhbC10aW1lXG4mIzM0Oyk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jCmluZGV4IDM0YjczNTczYjEwOGQuLmY3YWI5ZTc5MDJjZmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuYwpAQCAtMzI4LDkgJiM0MzszMjgsOSBAQCBzdGF0aWMgaW50IHZtd2FyZV9jcHVfZG93bl9wcmVwYXJlKHVuc2lnbmVkIGludCBjcHUpCiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKQogewogCWlmIChoYXNfc3RlYWxfY2xvY2spIHsKLQkJc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwkJc3RhdGljX2JyYW5jaF9pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKIAkJaWYgKHN0ZWFsX2FjYykKLQkJCXN0YXRpY19rZXlfc2xvd19pbmMoJmFtcDtwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKJiM0MzsJCQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2t2bS5jIGIvYXJjaC94ODYva2VybmVsL2t2bS5jCmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9rdm0uYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMKQEAgLTEwNTIsOSAmIzQzOzEwNTIsOSBAQCBjb25zdCBfX2luaXRjb25zdCBzdHJ1Y3QgaHlwZXJ2aXNvcl94ODYgeDg2X2h5cGVyX2t2bSA9IHsKIHN0YXRpYyBfX2luaXQgaW50IGFjdGl2YXRlX2p1bXBfbGFiZWxzKHZvaWQpCiB7CiAJaWYgKGhhc19zdGVhbF9jbG9jaykgewotCQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CiYjNDM7CQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwogCQlpZiAoc3RlYWxfYWNjKQotCQkJc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwomIzQzOwkJCXN0YXRpY19icmFuY2hfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi90aW1lLmMgYi9kcml2ZXJzL3hlbi90aW1lLmMKaW5kZXggYTJiZTBhNGQ0NWIwYi4uYTAyZDQ4YTJhYTY4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMveGVuL3RpbWUuYwpAQCAtMTY5LDcgJiM0MzsxNjksNyBAQCB2b2lkIF9faW5pdCB4ZW5fdGltZV9zZXR1cF9ndWVzdCh2b2lkKQogCiAJc3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCB4ZW5fc3RlYWxfY2xvY2spOwogCi0Jc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwogCWlmICh4ZW5fcnVuc3RhdGVfcmVtb3RlKQotCQlzdGF0aWNfa2V5X3Nsb3dfaW5jKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiYjNDM7CQlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaAppbmRleCBlOTBlZmFmNmQyNmU5Li42OTQxMjY0MTFkZmVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaApAQCAtMTgyLDkgJiM0MzsxODIsOSBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nCiB0YXNrX3NjaGVkX3J1bnRpbWUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKIAogI2lmZGVmIENPTkZJR19QQVJBVklSVAotc3RydWN0IHN0YXRpY19rZXk7Ci1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDsKLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkOwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9qdW1wX2xhYmVsLmgmZ3Q7CiYjNDM7REVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzO0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKIAogI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTgogdTY0IGR1bW15X3N0ZWFsX2Nsb2NrKGludCBjcHUpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmMKaW5kZXggOTYyMjY3MDdjMmY2MS4uNzg2OTc1ZDRjYTFlYiAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvc2NoZWQvY29yZS5jCkBAIC03OTUsNyAmIzQzOzc5NSw3IEBAIHN0cnVjdCBycSAqX3Rhc2tfcnFfbG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBycV9mbGFncyAqcmYpCiAKIC8qIFVzZSBDT05GSUdfUEFSQVZJUlQgYXMgdGhpcyB3aWxsIGF2b2lkIG1vcmUgI2lmZGVmIGluIGFyY2ggY29kZS4gKi8KICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQ7CiYjNDM7REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CiAjZW5kaWYKIAogc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKQpAQCAtODM0LDcgJiM0Mzs4MzQsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcnFfY2xvY2tfdGFzayhzdHJ1Y3QgcnEgKnJxLCBzNjQgZGVsdGEpCiAJfQogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElORwotCWlmIChzdGF0aWNfa2V5X2ZhbHNlKCgmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSkgewomIzQzOwlpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseSgmYW1wO3BhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7CiAJCXU2NCBwcmV2X3N0ZWFsOwogCiAJCXN0ZWFsID0gcHJldl9zdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKGNwdV9vZihycSkpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NwdXRpbWUuYyBiL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMKaW5kZXggMDZiZGRhYTczOGU1Mi4uZjE2OTcwY2E4MWQwOCAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL2NwdXRpbWUuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvc2NoZWQvY3B1dGltZS5jCkBAIC0yNTUsNyAmIzQzOzI1NSw3IEBAIHZvaWQgX19hY2NvdW50X2ZvcmNlaWRsZV90aW1lKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdTY0IGRlbHRhKQogICogb2NjYXNpb24gYWNjb3VudCBtb3JlIHRpbWUgdGhhbiB0aGUgY2FsbGluZyBmdW5jdGlvbnMgdGhpbmsgZWxhcHNlZC4KICAqLwogI2lmZGVmIENPTkZJR19QQVJBVklSVAotc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDsKJiM0MztERUZJTkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKIAogI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTgogc3RhdGljIHU2NCBuYXRpdmVfc3RlYWxfY2xvY2soaW50IGNwdSkKQEAgLTI3MCw3ICYjNDM7MjcwLDcgQEAgREVGSU5FX1NUQVRJQ19DQUxMKHB2X3N0ZWFsX2Nsb2NrLCBuYXRpdmVfc3RlYWxfY2xvY2spOwogc3RhdGljIF9fYWx3YXlzX2lubGluZSB1NjQgc3RlYWxfYWNjb3VudF9wcm9jZXNzX3RpbWUodTY0IG1heHRpbWUpCiB7CiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCi0JaWYgKHN0YXRpY19rZXlfZmFsc2UoJmFtcDtwYXJhdmlydF9zdGVhbF9lbmFibGVkKSkgewomIzQzOwlpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseSgmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpKSB7CiAJCXU2NCBzdGVhbDsKIAogCQlzdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKHNtcF9wcm9jZXNzb3JfaWQoKSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDA4OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MTgKCQkJCQkJCW91dHB1dDogMTA5CgkJCQkJCQl0aG91Z2h0czogNTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIFN0YXRpYyBLZXlzIGZvciBQYXJhdmlydCBTdGVhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgYmFzaWNhbGx5IGEgc3RyYWlnaHRmb3J3YXJkIEFQSSBtaWdyYXRpb24gZm9yIHN0YXRpYyBrZXlzLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGBwYXJhdmlydF9zdGVhbF9lbmFibGVkYCBhbmQgYHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWRgLiBUaGUgY2hhbmdlcyBhcmU6IHN3YXBwaW5nIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCBmb3IgYHN0YXRpY19icmFuY2hfaW5jYCBhbmQgYHN0YXRpY19rZXlfZmFsc2VgIGZvciBgc3RhdGljX2JyYW5jaF91bmxpa2VseWAuIFdlJiMzOTtyZSBhbHNvIHNlZWluZyB0aGUgYHN0cnVjdCBzdGF0aWNfa2V5YCBkZWNsYXJhdGlvbnMgYmVpbmcgcmVwbGFjZWQgd2l0aCBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYERFRklORV9TVEFUSUNfS0VZX0ZBTFNFYC4gVGhpcyBhbGwgc2NyZWFtcyAmIzM0O21lY2hhbmljYWwgcmVmYWN0b3JpbmcsJiMzNDsgd2hpY2ggaXMgd2hhdCBJIHN1c3BlY3RlZC4KCkkgaW5pdGlhbGx5IGhhZCBhIGZsZWV0aW5nIG1vbWVudCBvZiwgJiMzNDtXYWl0LCBgc3RhdGljX2JyYW5jaF9pbmNgIHdpdGggYHN0YXRpY19rZXlgPyBIbW0sIGdvdHRhIHZlcmlmeS4mIzM0OyBCdXQgYSBxdWljayBjaGVjayBvZiBgaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmhgIGNvbmZpcm1zIHRoYXQgdGhpcyBpcyBpbmRlZWQgaG93IHRoZSBuZXcgQVBJIHdvcmtzIHdpdGggdGhlIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgREVGSU5FX1NUQVRJQ19LRVlfRkFMU0VgIG1hY3Jvcy4gVGhlIG9sZCBBUEkgdXNlZCB0aGUgYHN0cnVjdCBzdGF0aWNfa2V5YCBhbmQgZnVuY3Rpb25zIGxpa2UgYHN0YXRpY19rZXlfc2xvd19pbmNgLCBhbmQgdGhpcyBwYXRjaCBpcyBqdXN0IGJyaW5naW5nIHVzIHVwIHRvIHNwZWVkLgoKVG8gYmUgZXh0cmEgY2VydGFpbiwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IHRoZXJlJiMzOTtzIGFic29sdXRlbHkgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4gTGV0JiMzOTtzIGNvbXBhcmUgdGhlIGJlaGF2aW9yczogYHN0YXRpY19rZXlfc2xvd19pbmNgIGluY3JlbWVudHMsIGBzdGF0aWNfYnJhbmNoX2luY2AgaW5jcmVtZW50cy4gR29vZC4gYHN0YXRpY19rZXlfZmFsc2VgIGNoZWNrcywgYHN0YXRpY19icmFuY2hfdW5saWtlbHlgIGFsc28gY2hlY2tzLiBTZWVtcyBpZGVudGljYWwgZnJvbSBhIGZ1bmN0aW9uYWwgcGVyc3BlY3RpdmUuCgpMb29raW5nIGF0IHRoZSBkaWZmIGRpcmVjdGx5IHJlaW5mb3JjZXMgdGhpcy4gV2UmIzM5O3JlIHNlZWluZyBkaXJlY3Qgc3Vic3RpdHV0aW9ucy4gTm8gYWx0ZXJlZCBsb2dpYyBvciBjb250cm9sIGZsb3cuCgpgYGBjCi0Jc3RhdGljX2tleV9zbG93X2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwomIzQzOwlzdGF0aWNfYnJhbmNoX2luYygmYW1wO3BhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpOwpgYGAKCmBgYGMKLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQ7Ci1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvanVtcF9sYWJlbC5oJmd0OwomIzQzO0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKJiM0MztERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7CmBgYAoKYGBgYwotc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDsKJiM0MztERUZJTkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTsKYGBgCgpgYGBjCi0JaWYgKHN0YXRpY19rZXlfZmFsc2UoKCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpKSB7CiYjNDM7CWlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZhbXA7cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCkpIHsKYGBgCgpTbywgcHVyZWx5IGEgbWVjaGFuaWNhbCByZWZhY3RvcmluZy4gVGhpcyBoYXMgemVybyBpbXBhY3Qgb24gaG93IHRoZSBjb2RlICpleGVjdXRlcyouIFRoZXJlZm9yZSwgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRpbWUgdG8gY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwODozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcmVmYWN0b3JpbmcgdGhhdCBtaWdyYXRlcyB0aGUgc3RhdGljIGtleSBBUEkgZnJvbSB0aGUgb2xkZXIgYHN0cnVjdCBzdGF0aWNfa2V5YCBhbmQgYHN0YXRpY19rZXlfc2xvd19pbmNgIHRvIHRoZSBuZXdlciBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYHN0YXRpY19icmFuY2hfaW5jYCBtYWNyb3MuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93LCBzbyBpdCBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmVseSBtZWNoYW5pY2FsIHJlZmFjdG9yaW5nIHRoYXQgbWlncmF0ZXMgdGhlIHN0YXRpYyBrZXkgQVBJIGZyb20gdGhlIG9sZGVyIGBzdHJ1Y3Qgc3RhdGljX2tleWAgYW5kIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCB0byB0aGUgbmV3ZXIgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBzdGF0aWNfYnJhbmNoX2luY2AgbWFjcm9zLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgc28gaXQgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwODozMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDg6MzE6MTkuNzk5OTcxMjU1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTExMzUyMDU5MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmVseSBtZWNoYW5pY2FsIHJlZmFjdG9yaW5nIHRoYXQgbWlncmF0ZXMgdGhlIHN0YXRpYyBrZXkgQVBJIGZyb20gdGhlIG9sZGVyIGBzdHJ1Y3Qgc3RhdGljX2tleWAgYW5kIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCB0byB0aGUgbmV3ZXIgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBzdGF0aWNfYnJhbmNoX2luY2AgbWFjcm9zLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgc28gaXQgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDg6MzE6MTkuNzk5OTc3NTI1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDYwODUxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzZmQ2OWU0NTY5MmNlOWI3ZTRkMGNkNDU0ZjQwMWNiNzMzZGNkNjJlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDE5IDA4OjMxOjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXFxuaW5kZXggNTcyZWZiOTZiMjNmZS4uMzBiZjYxZDAzMWViNyAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXFxuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuY1xcbkBAIC0xNTcsOSArMTU3LDkgQEAgaW50IF9faW5pdCBwdl90aW1lX2luaXQodm9pZClcXG4gXFxuIFxcdHN0YXRpY19jYWxsX3VwZGF0ZShwdl9zdGVhbF9jbG9jaywgcGFyYV9zdGVhbF9jbG9jayk7XFxuIFxcbi1cXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4rXFx0c3RhdGljX2JyYW5jaF9pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbiBcXHRpZiAoc3RlYWxfYWNjKVxcbi1cXHRcXHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4rXFx0XFx0c3RhdGljX2JyYW5jaF9pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbiBcXG4gXFx0cHJfaW5mbyhcXFwidXNpbmcgc3RvbGVuIHRpbWUgUFZcXFxcblxcXCIpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuY1xcbmluZGV4IDEwODIxY2NlNTU0YzAuLmU4OTY1YTNmODA4MjQgMTAwNjQ0XFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuY1xcbkBAIC0zMDgsMTAgKzMwOCwxMCBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxcbiBcXG4gXFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhdnRfc3RlYWxfY2xvY2spO1xcbiBcXG4tXFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVF9USU1FX0FDQ09VTlRJTkdcXG4gXFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gI2VuZGlmXFxuIFxcbiBcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZ2aXJ0X3ByZWVtcHRfa2V5KSlcXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xcbmluZGV4IDEyMjNkYzk2MTI0MjkuLjhkY2JjNGJiNzAyNTYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmNcXG4rKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xcbkBAIC04NTIsOSArODUyLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IHBTZXJpZXNfc2V0dXBfYXJjaCh2b2lkKVxcbiBcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcXHUwMDI2c2hhcmVkX3Byb2Nlc3Nvcik7XFxuIFxcdFxcdFxcdHB2X3NwaW5sb2Nrc19pbml0KCk7XFxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXFxuLVxcdFxcdFxcdHN0YXRpY19rZXlfc2xvd19pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbitcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuIFxcdFxcdFxcdGlmIChzdGVhbF9hY2MpXFxuLVxcdFxcdFxcdFxcdHN0YXRpY19rZXlfc2xvd19pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbitcXHRcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuICNlbmRpZlxcbiBcXHRcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xcbmluZGV4IDVmNTZiZTc5Y2QwNjIuLjljMTNhNmYxZWEyYWYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xcbisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmNcXG5AQCAtMTE2LDkgKzExNiw5IEBAIGludCBfX2luaXQgcHZfdGltZV9pbml0KHZvaWQpXFxuIFxcbiBcXHRzdGF0aWNfY2FsbF91cGRhdGUocHZfc3RlYWxfY2xvY2ssIHB2X3RpbWVfc3RlYWxfY2xvY2spO1xcbiBcXG4tXFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gXFxuIFxcdHByX2luZm8oXFxcIkNvbXB1dGluZyBwYXJhdmlydCBzdGVhbC10aW1lXFxcXG5cXFwiKTtcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXFxuaW5kZXggMzRiNzM1NzNiMTA4ZC4uZjdhYjllNzkwMmNmZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXFxuKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xcbkBAIC0zMjgsOSArMzI4LDkgQEAgc3RhdGljIGludCB2bXdhcmVfY3B1X2Rvd25fcHJlcGFyZSh1bnNpZ25lZCBpbnQgY3B1KVxcbiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKVxcbiB7XFxuIFxcdGlmIChoYXNfc3RlYWxfY2xvY2spIHtcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0XFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIDA7XFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9rdm0uYyBiL2FyY2gveDg2L2tlcm5lbC9rdm0uY1xcbmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva2VybmVsL2t2bS5jXFxuKysrIGIvYXJjaC94ODYva2VybmVsL2t2bS5jXFxuQEAgLTEwNTIsOSArMTA1Miw5IEBAIGNvbnN0IF9faW5pdGNvbnN0IHN0cnVjdCBoeXBlcnZpc29yX3g4NiB4ODZfaHlwZXJfa3ZtID0ge1xcbiBzdGF0aWMgX19pbml0IGludCBhY3RpdmF0ZV9qdW1wX2xhYmVscyh2b2lkKVxcbiB7XFxuIFxcdGlmIChoYXNfc3RlYWxfY2xvY2spIHtcXG4tXFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0XFx0aWYgKHN0ZWFsX2FjYylcXG4tXFx0XFx0XFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuK1xcdFxcdFxcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIDA7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3RpbWUuYyBiL2RyaXZlcnMveGVuL3RpbWUuY1xcbmluZGV4IGEyYmUwYTRkNDViMGIuLmEwMmQ0OGEyYWE2ODQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jXFxuKysrIGIvZHJpdmVycy94ZW4vdGltZS5jXFxuQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIF9faW5pdCB4ZW5fdGltZV9zZXR1cF9ndWVzdCh2b2lkKVxcbiBcXG4gXFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCB4ZW5fc3RlYWxfY2xvY2spO1xcbiBcXG4tXFx0c3RhdGljX2tleV9zbG93X2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XFxuK1xcdHN0YXRpY19icmFuY2hfaW5jKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcXG4gXFx0aWYgKHhlbl9ydW5zdGF0ZV9yZW1vdGUpXFxuLVxcdFxcdHN0YXRpY19rZXlfc2xvd19pbmMoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbitcXHRcXHRzdGF0aWNfYnJhbmNoX2luYyhcXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxcbmluZGV4IGU5MGVmYWY2ZDI2ZTkuLjY5NDEyNjQxMWRmZWEgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxcbkBAIC0xODIsOSArMTgyLDkgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZ1xcbiB0YXNrX3NjaGVkX3J1bnRpbWUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTtcXG4gXFxuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRcXG4tc3RydWN0IHN0YXRpY19rZXk7XFxuLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9lbmFibGVkO1xcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2p1bXBfbGFiZWwuaFxcdTAwM2VcXG4rREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XFxuIFxcbiAjaWZkZWYgQ09ORklHX0hBVkVfUFZfU1RFQUxfQ0xPQ0tfR0VOXFxuIHU2NCBkdW1teV9zdGVhbF9jbG9jayhpbnQgY3B1KTtcXG5kaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmNcXG5pbmRleCA5NjIyNjcwN2MyZjYxLi43ODY5NzVkNGNhMWViIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9zY2hlZC9jb3JlLmNcXG4rKysgYi9rZXJuZWwvc2NoZWQvY29yZS5jXFxuQEAgLTc5NSw3ICs3OTUsNyBAQCBzdHJ1Y3QgcnEgKl90YXNrX3JxX2xvY2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgcnFfZmxhZ3MgKnJmKVxcbiBcXG4gLyogVXNlIENPTkZJR19QQVJBVklSVCBhcyB0aGlzIHdpbGwgYXZvaWQgbW9yZSAjaWZkZWYgaW4gYXJjaCBjb2RlLiAqL1xcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXFxuLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQ7XFxuK0RFRklORV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xcbiAjZW5kaWZcXG4gXFxuIHN0YXRpYyB2b2lkIHVwZGF0ZV9ycV9jbG9ja190YXNrKHN0cnVjdCBycSAqcnEsIHM2NCBkZWx0YSlcXG5AQCAtODM0LDcgKzgzNCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9ycV9jbG9ja190YXNrKHN0cnVjdCBycSAqcnEsIHM2NCBkZWx0YSlcXG4gXFx0fVxcbiAjZW5kaWZcXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVF9USU1FX0FDQ09VTlRJTkdcXG4tXFx0aWYgKHN0YXRpY19rZXlfZmFsc2UoKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKSkpIHtcXG4rXFx0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7XFxuIFxcdFxcdHU2NCBwcmV2X3N0ZWFsO1xcbiBcXG4gXFx0XFx0c3RlYWwgPSBwcmV2X3N0ZWFsID0gcGFyYXZpcnRfc3RlYWxfY2xvY2soY3B1X29mKHJxKSk7XFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMgYi9rZXJuZWwvc2NoZWQvY3B1dGltZS5jXFxuaW5kZXggMDZiZGRhYTczOGU1Mi4uZjE2OTcwY2E4MWQwOCAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvc2NoZWQvY3B1dGltZS5jXFxuKysrIGIva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xcbkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBfX2FjY291bnRfZm9yY2VpZGxlX3RpbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1NjQgZGVsdGEpXFxuICAqIG9jY2FzaW9uIGFjY291bnQgbW9yZSB0aW1lIHRoYW4gdGhlIGNhbGxpbmcgZnVuY3Rpb25zIHRoaW5rIGVsYXBzZWQuXFxuICAqL1xcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXFxuLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQ7XFxuK0RFRklORV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xcbiBcXG4gI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTlxcbiBzdGF0aWMgdTY0IG5hdGl2ZV9zdGVhbF9jbG9jayhpbnQgY3B1KVxcbkBAIC0yNzAsNyArMjcwLDcgQEAgREVGSU5FX1NUQVRJQ19DQUxMKHB2X3N0ZWFsX2Nsb2NrLCBuYXRpdmVfc3RlYWxfY2xvY2spO1xcbiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHU2NCBzdGVhbF9hY2NvdW50X3Byb2Nlc3NfdGltZSh1NjQgbWF4dGltZSlcXG4ge1xcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXFxuLVxcdGlmIChzdGF0aWNfa2V5X2ZhbHNlKFxcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKSkge1xcbitcXHRpZiAoc3RhdGljX2JyYW5jaF91bmxpa2VseShcXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCkpIHtcXG4gXFx0XFx0dTY0IHN0ZWFsO1xcbiBcXG4gXFx0XFx0c3RlYWwgPSBwYXJhdmlydF9zdGVhbF9jbG9jayhzbXBfcHJvY2Vzc29yX2lkKCkpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwODozMToyMC4zMDY5MjgyMjJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMDYyODIzNzMyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgbWVjaGFuaWNhbCByZWZhY3RvcmluZyB0aGF0IG1pZ3JhdGVzIHRoZSBzdGF0aWMga2V5IEFQSSBmcm9tIHRoZSBvbGRlciBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBgc3RhdGljX2tleV9zbG93X2luY2AgdG8gdGhlIG5ld2VyIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgc3RhdGljX2JyYW5jaF9pbmNgIG1hY3Jvcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3csIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDNmZDY5ZTQ1NjkyY2U5YjdlNGQwY2Q0NTRmNDAxY2I3MzNkY2Q2MmVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxOSAwODozMToxOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL2FybTY0L2tlcm5lbC9wYXJhdmlydC5jXG5pbmRleCA1NzJlZmI5NmIyM2ZlLi4zMGJmNjFkMDMxZWI3IDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuY1xuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuY1xuQEAgLTE1Nyw5ICsxNTcsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmIChzdGVhbF9hY2MpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFxuIFx0cHJfaW5mbyhcInVzaW5nIHN0b2xlbiB0aW1lIFBWXFxuXCIpO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcbmluZGV4IDEwODIxY2NlNTU0YzAuLmU4OTY1YTNmODA4MjQgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9rZXJuZWwvcGFyYXZpcnQuY1xuKysrIGIvYXJjaC9sb29uZ2FyY2gva2VybmVsL3BhcmF2aXJ0LmNcbkBAIC0zMDgsMTAgKzMwOCwxMCBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwYXJhdnRfc3RlYWxfY2xvY2spO1xuIFxuLVx0c3RhdGljX2tleV9zbG93X2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbitcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuICNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HXG4gXHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuK1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiAjZW5kaWZcbiBcbiBcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2dmlydF9wcmVlbXB0X2tleSkpXG5kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xuaW5kZXggMTIyM2RjOTYxMjQyOS4uOGRjYmM0YmI3MDI1NiAxMDA2NDRcbi0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jXG4rKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc2V0dXAuY1xuQEAgLTg1Miw5ICs4NTIsOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcFNlcmllc19zZXR1cF9hcmNoKHZvaWQpXG4gXHRcdFx0c3RhdGljX2JyYW5jaF9lbmFibGUoXHUwMDI2c2hhcmVkX3Byb2Nlc3Nvcik7XG4gXHRcdFx0cHZfc3BpbmxvY2tzX2luaXQoKTtcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUX1RJTUVfQUNDT1VOVElOR1xuLVx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4gXHRcdFx0aWYgKHN0ZWFsX2FjYylcbi1cdFx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdFx0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiAjZW5kaWZcbiBcdFx0fVxuIFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9wYXJhdmlydC5jXG5pbmRleCA1ZjU2YmU3OWNkMDYyLi45YzEzYTZmMWVhMmFmIDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xuKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGFyYXZpcnQuY1xuQEAgLTExNiw5ICsxMTYsOSBAQCBpbnQgX19pbml0IHB2X3RpbWVfaW5pdCh2b2lkKVxuIFxuIFx0c3RhdGljX2NhbGxfdXBkYXRlKHB2X3N0ZWFsX2Nsb2NrLCBwdl90aW1lX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmIChzdGVhbF9hY2MpXG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFxuIFx0cHJfaW5mbyhcIkNvbXB1dGluZyBwYXJhdmlydCBzdGVhbC10aW1lXFxuXCIpO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Ztd2FyZS5jXG5pbmRleCAzNGI3MzU3M2IxMDhkLi5mN2FiOWU3OTAyY2ZlIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS92bXdhcmUuY1xuQEAgLTMyOCw5ICszMjgsOSBAQCBzdGF0aWMgaW50IHZtd2FyZV9jcHVfZG93bl9wcmVwYXJlKHVuc2lnbmVkIGludCBjcHUpXG4gc3RhdGljIF9faW5pdCBpbnQgYWN0aXZhdGVfanVtcF9sYWJlbHModm9pZClcbiB7XG4gXHRpZiAoaGFzX3N0ZWFsX2Nsb2NrKSB7XG4tXHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuIFx0XHRpZiAoc3RlYWxfYWNjKVxuLVx0XHRcdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4rXHRcdFx0c3RhdGljX2JyYW5jaF9pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXHR9XG4gXG4gXHRyZXR1cm4gMDtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMgYi9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbmluZGV4IGRjZWY4NGRhMzA0YjguLmQzZGNkNjRmMjJjMjIgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmNcbisrKyBiL2FyY2gveDg2L2tlcm5lbC9rdm0uY1xuQEAgLTEwNTIsOSArMTA1Miw5IEBAIGNvbnN0IF9faW5pdGNvbnN0IHN0cnVjdCBoeXBlcnZpc29yX3g4NiB4ODZfaHlwZXJfa3ZtID0ge1xuIHN0YXRpYyBfX2luaXQgaW50IGFjdGl2YXRlX2p1bXBfbGFiZWxzKHZvaWQpXG4ge1xuIFx0aWYgKGhhc19zdGVhbF9jbG9jaykge1xuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpO1xuK1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdFx0aWYgKHN0ZWFsX2FjYylcbi1cdFx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuK1x0XHRcdHN0YXRpY19icmFuY2hfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vdGltZS5jIGIvZHJpdmVycy94ZW4vdGltZS5jXG5pbmRleCBhMmJlMGE0ZDQ1YjBiLi5hMDJkNDhhMmFhNjg0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jXG4rKysgYi9kcml2ZXJzL3hlbi90aW1lLmNcbkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBfX2luaXQgeGVuX3RpbWVfc2V0dXBfZ3Vlc3Qodm9pZClcbiBcbiBcdHN0YXRpY19jYWxsX3VwZGF0ZShwdl9zdGVhbF9jbG9jaywgeGVuX3N0ZWFsX2Nsb2NrKTtcbiBcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcdGlmICh4ZW5fcnVuc3RhdGVfcmVtb3RlKVxuLVx0XHRzdGF0aWNfa2V5X3Nsb3dfaW5jKFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuK1x0XHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKTtcbiB9XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC9jcHV0aW1lLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuaW5kZXggZTkwZWZhZjZkMjZlOS4uNjk0MTI2NDExZGZlYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc2NoZWQvY3B1dGltZS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkL2NwdXRpbWUuaFxuQEAgLTE4Miw5ICsxODIsOSBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nXG4gdGFza19zY2hlZF9ydW50aW1lKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7XG4gXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVFxuLXN0cnVjdCBzdGF0aWNfa2V5O1xuLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9lbmFibGVkO1xuLWV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkO1xuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2p1bXBfbGFiZWwuaFx1MDAzZVxuK0RFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gXG4gI2lmZGVmIENPTkZJR19IQVZFX1BWX1NURUFMX0NMT0NLX0dFTlxuIHU2NCBkdW1teV9zdGVhbF9jbG9jayhpbnQgY3B1KTtcbmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvY29yZS5jIGIva2VybmVsL3NjaGVkL2NvcmUuY1xuaW5kZXggOTYyMjY3MDdjMmY2MS4uNzg2OTc1ZDRjYTFlYiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9zY2hlZC9jb3JlLmNcbisrKyBiL2tlcm5lbC9zY2hlZC9jb3JlLmNcbkBAIC03OTUsNyArNzk1LDcgQEAgc3RydWN0IHJxICpfdGFza19ycV9sb2NrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHJxX2ZsYWdzICpyZilcbiBcbiAvKiBVc2UgQ09ORklHX1BBUkFWSVJUIGFzIHRoaXMgd2lsbCBhdm9pZCBtb3JlICNpZmRlZiBpbiBhcmNoIGNvZGUuICovXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVFxuLXN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQ7XG4rREVGSU5FX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCk7XG4gI2VuZGlmXG4gXG4gc3RhdGljIHZvaWQgdXBkYXRlX3JxX2Nsb2NrX3Rhc2soc3RydWN0IHJxICpycSwgczY0IGRlbHRhKVxuQEAgLTgzNCw3ICs4MzQsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcnFfY2xvY2tfdGFzayhzdHJ1Y3QgcnEgKnJxLCBzNjQgZGVsdGEpXG4gXHR9XG4gI2VuZGlmXG4gI2lmZGVmIENPTkZJR19QQVJBVklSVF9USU1FX0FDQ09VTlRJTkdcbi1cdGlmIChzdGF0aWNfa2V5X2ZhbHNlKChcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKSkpIHtcbitcdGlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7XG4gXHRcdHU2NCBwcmV2X3N0ZWFsO1xuIFxuIFx0XHRzdGVhbCA9IHByZXZfc3RlYWwgPSBwYXJhdmlydF9zdGVhbF9jbG9jayhjcHVfb2YocnEpKTtcbmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvY3B1dGltZS5jIGIva2VybmVsL3NjaGVkL2NwdXRpbWUuY1xuaW5kZXggMDZiZGRhYTczOGU1Mi4uZjE2OTcwY2E4MWQwOCAxMDA2NDRcbi0tLSBhL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmNcbisrKyBiL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmNcbkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBfX2FjY291bnRfZm9yY2VpZGxlX3RpbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1NjQgZGVsdGEpXG4gICogb2NjYXNpb24gYWNjb3VudCBtb3JlIHRpbWUgdGhhbiB0aGUgY2FsbGluZyBmdW5jdGlvbnMgdGhpbmsgZWxhcHNlZC5cbiAgKi9cbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbitERUZJTkVfU1RBVElDX0tFWV9GQUxTRShwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbiBcbiAjaWZkZWYgQ09ORklHX0hBVkVfUFZfU1RFQUxfQ0xPQ0tfR0VOXG4gc3RhdGljIHU2NCBuYXRpdmVfc3RlYWxfY2xvY2soaW50IGNwdSlcbkBAIC0yNzAsNyArMjcwLDcgQEAgREVGSU5FX1NUQVRJQ19DQUxMKHB2X3N0ZWFsX2Nsb2NrLCBuYXRpdmVfc3RlYWxfY2xvY2spO1xuIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdTY0IHN0ZWFsX2FjY291bnRfcHJvY2Vzc190aW1lKHU2NCBtYXh0aW1lKVxuIHtcbiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUXG4tXHRpZiAoc3RhdGljX2tleV9mYWxzZShcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKSkge1xuK1x0aWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHkoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCkpIHtcbiBcdFx0dTY0IHN0ZWFsO1xuIFxuIFx0XHRzdGVhbCA9IHBhcmF2aXJ0X3N0ZWFsX2Nsb2NrKHNtcF9wcm9jZXNzb3JfaWQoKSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwODozMToyMC4zMDY5Mjk4NDJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDYyODIxMDAxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZhY3RvcmluZyBTdGF0aWMgS2V5cyBmb3IgUGFyYXZpcnQgU3RlYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGJhc2ljYWxseSBhIHN0cmFpZ2h0Zm9yd2FyZCBBUEkgbWlncmF0aW9uIGZvciBzdGF0aWMga2V5cywgc3BlY2lmaWNhbGx5IGFyb3VuZCBgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZGAgYW5kIGBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkYC4gVGhlIGNoYW5nZXMgYXJlOiBzd2FwcGluZyBgc3RhdGljX2tleV9zbG93X2luY2AgZm9yIGBzdGF0aWNfYnJhbmNoX2luY2AgYW5kIGBzdGF0aWNfa2V5X2ZhbHNlYCBmb3IgYHN0YXRpY19icmFuY2hfdW5saWtlbHlgLiBXZSdyZSBhbHNvIHNlZWluZyB0aGUgYHN0cnVjdCBzdGF0aWNfa2V5YCBkZWNsYXJhdGlvbnMgYmVpbmcgcmVwbGFjZWQgd2l0aCBgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFYCBhbmQgYERFRklORV9TVEFUSUNfS0VZX0ZBTFNFYC4gVGhpcyBhbGwgc2NyZWFtcyBcIm1lY2hhbmljYWwgcmVmYWN0b3JpbmcsXCIgd2hpY2ggaXMgd2hhdCBJIHN1c3BlY3RlZC5cblxuSSBpbml0aWFsbHkgaGFkIGEgZmxlZXRpbmcgbW9tZW50IG9mLCBcIldhaXQsIGBzdGF0aWNfYnJhbmNoX2luY2Agd2l0aCBgc3RhdGljX2tleWA/IEhtbSwgZ290dGEgdmVyaWZ5LlwiIEJ1dCBhIHF1aWNrIGNoZWNrIG9mIGBpbmNsdWRlL2xpbnV4L2p1bXBfbGFiZWwuaGAgY29uZmlybXMgdGhhdCB0aGlzIGlzIGluZGVlZCBob3cgdGhlIG5ldyBBUEkgd29ya3Mgd2l0aCB0aGUgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBERUZJTkVfU1RBVElDX0tFWV9GQUxTRWAgbWFjcm9zLiBUaGUgb2xkIEFQSSB1c2VkIHRoZSBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBmdW5jdGlvbnMgbGlrZSBgc3RhdGljX2tleV9zbG93X2luY2AsIGFuZCB0aGlzIHBhdGNoIGlzIGp1c3QgYnJpbmdpbmcgdXMgdXAgdG8gc3BlZWQuXG5cblRvIGJlIGV4dHJhIGNlcnRhaW4sIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGVyZSdzIGFic29sdXRlbHkgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4gTGV0J3MgY29tcGFyZSB0aGUgYmVoYXZpb3JzOiBgc3RhdGljX2tleV9zbG93X2luY2AgaW5jcmVtZW50cywgYHN0YXRpY19icmFuY2hfaW5jYCBpbmNyZW1lbnRzLiBHb29kLiBgc3RhdGljX2tleV9mYWxzZWAgY2hlY2tzLCBgc3RhdGljX2JyYW5jaF91bmxpa2VseWAgYWxzbyBjaGVja3MuIFNlZW1zIGlkZW50aWNhbCBmcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZS5cblxuTG9va2luZyBhdCB0aGUgZGlmZiBkaXJlY3RseSByZWluZm9yY2VzIHRoaXMuIFdlJ3JlIHNlZWluZyBkaXJlY3Qgc3Vic3RpdHV0aW9ucy4gTm8gYWx0ZXJlZCBsb2dpYyBvciBjb250cm9sIGZsb3cuXG5cbmBgYGNcbi1cdHN0YXRpY19rZXlfc2xvd19pbmMoXHUwMDI2cGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rXHRzdGF0aWNfYnJhbmNoX2luYyhcdTAwMjZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTtcbmBgYFxuXG5gYGBjXG4tc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfZW5hYmxlZDtcbi1leHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZDtcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9qdW1wX2xhYmVsLmhcdTAwM2VcbitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UocGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7XG4rREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuYGBgXG5cbmBgYGNcbi1zdHJ1Y3Qgc3RhdGljX2tleSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkO1xuK0RFRklORV9TVEFUSUNfS0VZX0ZBTFNFKHBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpO1xuYGBgXG5cbmBgYGNcbi1cdGlmIChzdGF0aWNfa2V5X2ZhbHNlKChcdTAwMjZwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkKSkpIHtcbitcdGlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KFx1MDAyNnBhcmF2aXJ0X3N0ZWFsX3JxX2VuYWJsZWQpKSB7XG5gYGBcblxuU28sIHB1cmVseSBhIG1lY2hhbmljYWwgcmVmYWN0b3JpbmcuIFRoaXMgaGFzIHplcm8gaW1wYWN0IG9uIGhvdyB0aGUgY29kZSAqZXhlY3V0ZXMqLiBUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaW1lIHRvIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MTgsIk91dHB1dFRva2VucyI6MTA5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTczLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDg6MzE6MzAuOTM1MTQyMjg4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmVseSBtZWNoYW5pY2FsIHJlZmFjdG9yaW5nIHRoYXQgbWlncmF0ZXMgdGhlIHN0YXRpYyBrZXkgQVBJIGZyb20gdGhlIG9sZGVyIGBzdHJ1Y3Qgc3RhdGljX2tleWAgYW5kIGBzdGF0aWNfa2V5X3Nsb3dfaW5jYCB0byB0aGUgbmV3ZXIgYERFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRWAgYW5kIGBzdGF0aWNfYnJhbmNoX2luY2AgbWFjcm9zLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgc28gaXQgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgbWVjaGFuaWNhbCByZWZhY3RvcmluZyB0aGF0IG1pZ3JhdGVzIHRoZSBzdGF0aWMga2V5IEFQSSBmcm9tIHRoZSBvbGRlciBgc3RydWN0IHN0YXRpY19rZXlgIGFuZCBgc3RhdGljX2tleV9zbG93X2luY2AgdG8gdGhlIG5ld2VyIGBERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0VgIGFuZCBgc3RhdGljX2JyYW5jaF9pbmNgIG1hY3Jvcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3csIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDA4OjMxOjMwLjkzNTE2NzczOFoiLCJTZXEiOjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowzqklc[1] Phase: Running StartedAt: 2026-08-19 08:31:41 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzqklc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-19 08:31:41 +0000 UTC FinishedAt: 2026-08-19 08:31:46 +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,}