Name: series-workflowbs697 Phase: Failed StartedAt: 2026-07-30 12:31:45 +0000 UTC FinishedAt: 2026-07-30 12:48:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbs697[0] Phase: Succeeded StartedAt: 2026-07-30 12:31:45 +0000 UTC FinishedAt: 2026-07-30 12:47:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbs697[0].run-triage Phase: Succeeded StartedAt: 2026-07-30 12:31:45 +0000 UTC FinishedAt: 2026-07-30 12:47:51 +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+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSB1c2Vyc3BhY2UgdG9vbCAodG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMpIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMTI6NDc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZGJlYzljZjgyY2I5YzJhMGJlN2I2ZDU5OWI5ZWNhM2M0OWRmNjQ4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMzAgMTI6NDc6MzIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xuaW5kZXggMzVkM2QyNTQ5NDFjOS4uNjAyZjU0MWQ4NWRlMyAxMDA2NDRcbi0tLSBhL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xuQEAgLTcxMyw3ICYjNDM7NzEzLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0RklMRSAqZmluLCAqZm91dDtcbiBcdGNoYXIgKmJ1ZiwgKmV4dF9idWY7XG4gXHRpbnQgaSwgY291bnQsIGNvbXBhcmVfZmxhZztcbi1cdHN0cnVjdCBzdGF0IHN0O1xuJiM0MztcdGludCBmb3V0X2ZkO1xuJiM0MztcdHN0cnVjdCBzdGF0IHN0LCBvdXRwdXRfc3Q7XG4gXHRpbnQgb3B0O1xuIFx0c3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0ge1xuIFx0XHR7IFwmIzM0O3BpZFwmIzM0OywgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDEgfSxcbkBAIC04MzYsMTMgJiM0Mzs4MzcsNDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0fVxuIFxuIFx0ZmluID0gZm9wZW4oYXJndltvcHRpbmRdLCBcJiMzNDtyXCYjMzQ7KTtcbi1cdGZvdXQgPSBmb3Blbihhcmd2W29wdGluZCAmIzQzOyAxXSwgXCYjMzQ7d1wmIzM0Oyk7XG4tXHRpZiAoIWZpbiB8fCAhZm91dCkge1xuJiM0MztcdGlmICghZmluKSB7XG4gXHRcdHVzYWdlKCk7XG4gXHRcdHBlcnJvcihcJiMzNDtvcGVuOiBcJiMzNDspO1xuIFx0XHRleGl0KDEpO1xuIFx0fVxuIFxuJiM0MztcdGlmIChmc3RhdChmaWxlbm8oZmluKSwgXHUwMDI2c3QpKSB7XG4mIzQzO1x0XHRwZXJyb3IoXCYjMzQ7ZnN0YXQgaW5wdXRcJiMzNDspO1xuJiM0MztcdFx0ZXhpdCgxKTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRG8gbm90IHRydW5jYXRlIHRoZSBvdXRwdXQgdW50aWwgYWZ0ZXIgY2hlY2tpbmcgd2hldGhlciBpdCByZWZlcnNcbiYjNDM7XHQgKiB0byB0aGUgaW5wdXQgZmlsZS4gIENvbXBhcmluZyB0aGUgb3BlbmVkIGZpbGVzIGFsc28gY2F0Y2hlcyBhbGlhc2VzXG4mIzQzO1x0ICogY3JlYXRlZCB3aXRoIGhhcmQgbGlua3Mgb3Igc3ltYm9saWMgbGlua3MuXG4mIzQzO1x0ICovXG4mIzQzO1x0Zm91dF9mZCA9IG9wZW4oYXJndltvcHRpbmQgJiM0MzsgMV0sIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY2Nik7XG4mIzQzO1x0aWYgKGZvdXRfZmQgXHUwMDNjIDApIHtcbiYjNDM7XHRcdHBlcnJvcihcJiMzNDtvcGVuIG91dHB1dFwmIzM0Oyk7XG4mIzQzO1x0XHRleGl0KDEpO1xuJiM0MztcdH1cbiYjNDM7XHRpZiAoZnN0YXQoZm91dF9mZCwgXHUwMDI2b3V0cHV0X3N0KSkge1xuJiM0MztcdFx0cGVycm9yKFwmIzM0O2ZzdGF0IG91dHB1dFwmIzM0Oyk7XG4mIzQzO1x0XHRleGl0KDEpO1xuJiM0MztcdH1cbiYjNDM7XHRpZiAoU19JU1JFRyhzdC5zdF9tb2RlKSBcdTAwMjZcdTAwMjYgU19JU1JFRyhvdXRwdXRfc3Quc3RfbW9kZSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIHN0LnN0X2RldiA9PSBvdXRwdXRfc3Quc3RfZGV2IFx1MDAyNlx1MDAyNiBzdC5zdF9pbm8gPT0gb3V0cHV0X3N0LnN0X2lubykge1xuJiM0MztcdFx0ZnByaW50ZihzdGRlcnIsIFwmIzM0O0lucHV0IGFuZCBvdXRwdXQgZmlsZXMgbXVzdCBiZSBkaWZmZXJlbnRcXG5cJiMzNDspO1xuJiM0MztcdFx0ZXhpdCgxKTtcbiYjNDM7XHR9XG4mIzQzO1x0aWYgKFNfSVNSRUcob3V0cHV0X3N0LnN0X21vZGUpIFx1MDAyNlx1MDAyNiBmdHJ1bmNhdGUoZm91dF9mZCwgMCkpIHtcbiYjNDM7XHRcdHBlcnJvcihcJiMzNDt0cnVuY2F0ZSBvdXRwdXRcJiMzNDspO1xuJiM0MztcdFx0ZXhpdCgxKTtcbiYjNDM7XHR9XG4mIzQzO1x0Zm91dCA9IGZkb3Blbihmb3V0X2ZkLCBcJiMzNDt3XCYjMzQ7KTtcbiYjNDM7XHRpZiAoIWZvdXQpIHtcbiYjNDM7XHRcdHBlcnJvcihcJiMzNDtmZG9wZW4gb3V0cHV0XCYjMzQ7KTtcbiYjNDM7XHRcdGV4aXQoMSk7XG4mIzQzO1x0fVxuJiM0MztcbiBcdGlmICghY2hlY2tfcmVnY29tcChcdTAwMjZvcmRlcl9wYXR0ZXJuLCBcJiMzNDtvcmRlclxcXFxzKihbMC05XSopLFwmIzM0OykpXG4gXHRcdGdvdG8gb3V0X29yZGVyO1xuIFx0aWYgKCFjaGVja19yZWdjb21wKFx1MDAyNnBpZF9wYXR0ZXJuLCBcJiMzNDtwaWRcXFxccyooWzAtOV0qKSxcJiMzNDspKVxuQEAgLTg1NCw3ICYjNDM7ODg4LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0aWYgKCFjaGVja19yZWdjb21wKFx1MDAyNnRzX25zZWNfcGF0dGVybiwgXCYjMzQ7dHNcXFxccyooWzAtOV0qKVxcXFxzKm5zXCYjMzQ7KSlcbiBcdFx0Z290byBvdXRfdHM7XG4gXG4tXHRmc3RhdChmaWxlbm8oZmluKSwgXHUwMDI2c3QpO1xuIFx0bWF4X3NpemUgPSBzdC5zdF9zaXplIC8gMTAwOyAvKiBoYWNrIC4uLiAqL1xuIFxuIFx0bGlzdCA9IG1hbGxvYyhtYXhfc2l6ZSAqIHNpemVvZigqbGlzdCkpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgdXNlcnNwYWNlIHRvb2wgKHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMWRiZWM5Y2Y4MmNiOWMyYTBiZTdiNmQ1OTliOWVjYTNjNDlkZjY0OApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDMwIDEyOjQ3OjMyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYwppbmRleCAzNWQzZDI1NDk0MWM5Li42MDJmNTQxZDg1ZGUzIDEwMDY0NAotLS0gYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYwpAQCAtNzEzLDcgJiM0Mzs3MTMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJRklMRSAqZmluLCAqZm91dDsKIAljaGFyICpidWYsICpleHRfYnVmOwogCWludCBpLCBjb3VudCwgY29tcGFyZV9mbGFnOwotCXN0cnVjdCBzdGF0IHN0OwomIzQzOwlpbnQgZm91dF9mZDsKJiM0MzsJc3RydWN0IHN0YXQgc3QsIG91dHB1dF9zdDsKIAlpbnQgb3B0OwogCXN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKIAkJeyAmIzM0O3BpZCYjMzQ7LCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgMSB9LApAQCAtODM2LDEzICYjNDM7ODM3LDQ2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAl9CiAKIAlmaW4gPSBmb3Blbihhcmd2W29wdGluZF0sICYjMzQ7ciYjMzQ7KTsKLQlmb3V0ID0gZm9wZW4oYXJndltvcHRpbmQgJiM0MzsgMV0sICYjMzQ7dyYjMzQ7KTsKLQlpZiAoIWZpbiB8fCAhZm91dCkgewomIzQzOwlpZiAoIWZpbikgewogCQl1c2FnZSgpOwogCQlwZXJyb3IoJiMzNDtvcGVuOiAmIzM0Oyk7CiAJCWV4aXQoMSk7CiAJfQogCiYjNDM7CWlmIChmc3RhdChmaWxlbm8oZmluKSwgJmFtcDtzdCkpIHsKJiM0MzsJCXBlcnJvcigmIzM0O2ZzdGF0IGlucHV0JiMzNDspOwomIzQzOwkJZXhpdCgxKTsKJiM0MzsJfQomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBEbyBub3QgdHJ1bmNhdGUgdGhlIG91dHB1dCB1bnRpbCBhZnRlciBjaGVja2luZyB3aGV0aGVyIGl0IHJlZmVycwomIzQzOwkgKiB0byB0aGUgaW5wdXQgZmlsZS4gIENvbXBhcmluZyB0aGUgb3BlbmVkIGZpbGVzIGFsc28gY2F0Y2hlcyBhbGlhc2VzCiYjNDM7CSAqIGNyZWF0ZWQgd2l0aCBoYXJkIGxpbmtzIG9yIHN5bWJvbGljIGxpbmtzLgomIzQzOwkgKi8KJiM0MzsJZm91dF9mZCA9IG9wZW4oYXJndltvcHRpbmQgJiM0MzsgMV0sIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY2Nik7CiYjNDM7CWlmIChmb3V0X2ZkICZsdDsgMCkgewomIzQzOwkJcGVycm9yKCYjMzQ7b3BlbiBvdXRwdXQmIzM0Oyk7CiYjNDM7CQlleGl0KDEpOwomIzQzOwl9CiYjNDM7CWlmIChmc3RhdChmb3V0X2ZkLCAmYW1wO291dHB1dF9zdCkpIHsKJiM0MzsJCXBlcnJvcigmIzM0O2ZzdGF0IG91dHB1dCYjMzQ7KTsKJiM0MzsJCWV4aXQoMSk7CiYjNDM7CX0KJiM0MzsJaWYgKFNfSVNSRUcoc3Quc3RfbW9kZSkgJmFtcDsmYW1wOyBTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSAmYW1wOyZhbXA7CiYjNDM7CSAgICBzdC5zdF9kZXYgPT0gb3V0cHV0X3N0LnN0X2RldiAmYW1wOyZhbXA7IHN0LnN0X2lubyA9PSBvdXRwdXRfc3Quc3RfaW5vKSB7CiYjNDM7CQlmcHJpbnRmKHN0ZGVyciwgJiMzNDtJbnB1dCBhbmQgb3V0cHV0IGZpbGVzIG11c3QgYmUgZGlmZmVyZW50XG4mIzM0Oyk7CiYjNDM7CQlleGl0KDEpOwomIzQzOwl9CiYjNDM7CWlmIChTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSAmYW1wOyZhbXA7IGZ0cnVuY2F0ZShmb3V0X2ZkLCAwKSkgewomIzQzOwkJcGVycm9yKCYjMzQ7dHJ1bmNhdGUgb3V0cHV0JiMzNDspOwomIzQzOwkJZXhpdCgxKTsKJiM0MzsJfQomIzQzOwlmb3V0ID0gZmRvcGVuKGZvdXRfZmQsICYjMzQ7dyYjMzQ7KTsKJiM0MzsJaWYgKCFmb3V0KSB7CiYjNDM7CQlwZXJyb3IoJiMzNDtmZG9wZW4gb3V0cHV0JiMzNDspOwomIzQzOwkJZXhpdCgxKTsKJiM0MzsJfQomIzQzOwogCWlmICghY2hlY2tfcmVnY29tcCgmYW1wO29yZGVyX3BhdHRlcm4sICYjMzQ7b3JkZXJcXHMqKFswLTldKiksJiMzNDspKQogCQlnb3RvIG91dF9vcmRlcjsKIAlpZiAoIWNoZWNrX3JlZ2NvbXAoJmFtcDtwaWRfcGF0dGVybiwgJiMzNDtwaWRcXHMqKFswLTldKiksJiMzNDspKQpAQCAtODU0LDcgJiM0Mzs4ODgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJaWYgKCFjaGVja19yZWdjb21wKCZhbXA7dHNfbnNlY19wYXR0ZXJuLCAmIzM0O3RzXFxzKihbMC05XSopXFxzKm5zJiMzNDspKQogCQlnb3RvIG91dF90czsKIAotCWZzdGF0KGZpbGVubyhmaW4pLCAmYW1wO3N0KTsKIAltYXhfc2l6ZSA9IHN0LnN0X3NpemUgLyAxMDA7IC8qIGhhY2sgLi4uICovCiAKIAlsaXN0ID0gbWFsbG9jKG1heF9zaXplICogc2l6ZW9mKCpsaXN0KSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MzAKCQkJCQkJCW91dHB1dDogNjUKCQkJCQkJCXRob3VnaHRzOiAyMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuYyoqCgpPa2F5LCBzbyB0aGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IG1vZGlmaWVzIGB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuY2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgYSAqdXNlcnNwYWNlKiB0b29sLiBUaGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIC4uLiBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzIC4uLiBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIC4uLiBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCAuLi4gRHJpdmVyIC5yZW1vdmUgLi4uJiMzNDsuIE5vdywgdGhlIGluc3RydWN0aW9ucyBkb24mIzM5O3QgKmV4cGxpY2l0bHkqIGNhbGwgb3V0IHVzZXJzcGFjZSB0b29scywgYnV0IGNvbWUgb24sIHRoaXMgaXNuJiMzOTt0IGtlcm5lbCBjb2RlLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBTeXprYWxsZXIgaGVyZSwgYW5kIGl0JiMzOTtzIGJ1aWx0IHRvIGZ1enogdGhlIGtlcm5lbCwgbm90IHVzZXJzcGFjZSB0b29scyB1bmxlc3MgdGhlcmUmIzM5O3MgYSB2ZXJ5IHNwZWNpZmljLCByYXJlIHNldHVwIGludm9sdmVkLCBhbmQgSSYjMzk7bSBub3Qgc2VlaW5nIGFueSBpbmRpY2F0aW9uIG9mIHRoYXQgaGVyZS4gCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgbWFrZSBzdXJlIHRoZXJlIGFyZSAqbm8qIG90aGVyIGNoYW5nZXMgaGlkaW5nIGFueXdoZXJlLiBOb3BlLCBqdXN0IGB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuY2AuIFNvLCB0aGUgdmVyZGljdCBpcyBwcmV0dHkgY2xlYXI6ICoqV29ydGhGdXp6aW5nPWZhbHNlKiouIFRoZSByYXRpb25hbGUgaXMgc3RyYWlnaHRmb3J3YXJkOiBpdCYjMzk7cyBhIHVzZXJzcGFjZSB0b29sLCBvdXRzaWRlIHRoZSBzY29wZSBvZiBvdXIga2VybmVsIGZ1enppbmcgZWZmb3J0cy4gSSYjMzk7bGwgc2V0IHRoZSBmbGFnIGFuZCBnZXQgdGhlIFJlYXNvbmluZyB3cml0dGVuLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHVzZXJzcGFjZSB0b29sICh0b29scy9tbS9wYWdlX293bmVyX3NvcnQuYykgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHVzZXJzcGFjZSB0b29sICh0b29scy9tbS9wYWdlX293bmVyX3NvcnQuYykgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDEyOjQ3OjMzLjgwMDY3MzQ3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3ODEyODcxNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSB1c2Vyc3BhY2UgdG9vbCAodG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMpIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDEyOjQ3OjMzLjgwMDY4MTcwOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU4OTkyOTEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMWRiZWM5Y2Y4MmNiOWMyYTBiZTdiNmQ1OTliOWVjYTNjNDlkZjY0OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAzMCAxMjo0NzozMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYyBiL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jXFxuaW5kZXggMzVkM2QyNTQ5NDFjOS4uNjAyZjU0MWQ4NWRlMyAxMDA2NDRcXG4tLS0gYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xcbisrKyBiL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jXFxuQEAgLTcxMyw3ICs3MTMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpXFxuIFxcdEZJTEUgKmZpbiwgKmZvdXQ7XFxuIFxcdGNoYXIgKmJ1ZiwgKmV4dF9idWY7XFxuIFxcdGludCBpLCBjb3VudCwgY29tcGFyZV9mbGFnO1xcbi1cXHRzdHJ1Y3Qgc3RhdCBzdDtcXG4rXFx0aW50IGZvdXRfZmQ7XFxuK1xcdHN0cnVjdCBzdGF0IHN0LCBvdXRwdXRfc3Q7XFxuIFxcdGludCBvcHQ7XFxuIFxcdHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHtcXG4gXFx0XFx0eyBcXFwicGlkXFxcIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDEgfSxcXG5AQCAtODM2LDEzICs4MzcsNDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxcbiBcXHR9XFxuIFxcbiBcXHRmaW4gPSBmb3Blbihhcmd2W29wdGluZF0sIFxcXCJyXFxcIik7XFxuLVxcdGZvdXQgPSBmb3Blbihhcmd2W29wdGluZCArIDFdLCBcXFwid1xcXCIpO1xcbi1cXHRpZiAoIWZpbiB8fCAhZm91dCkge1xcbitcXHRpZiAoIWZpbikge1xcbiBcXHRcXHR1c2FnZSgpO1xcbiBcXHRcXHRwZXJyb3IoXFxcIm9wZW46IFxcXCIpO1xcbiBcXHRcXHRleGl0KDEpO1xcbiBcXHR9XFxuIFxcbitcXHRpZiAoZnN0YXQoZmlsZW5vKGZpbiksIFxcdTAwMjZzdCkpIHtcXG4rXFx0XFx0cGVycm9yKFxcXCJmc3RhdCBpbnB1dFxcXCIpO1xcbitcXHRcXHRleGl0KDEpO1xcbitcXHR9XFxuK1xcbitcXHQvKlxcbitcXHQgKiBEbyBub3QgdHJ1bmNhdGUgdGhlIG91dHB1dCB1bnRpbCBhZnRlciBjaGVja2luZyB3aGV0aGVyIGl0IHJlZmVyc1xcbitcXHQgKiB0byB0aGUgaW5wdXQgZmlsZS4gIENvbXBhcmluZyB0aGUgb3BlbmVkIGZpbGVzIGFsc28gY2F0Y2hlcyBhbGlhc2VzXFxuK1xcdCAqIGNyZWF0ZWQgd2l0aCBoYXJkIGxpbmtzIG9yIHN5bWJvbGljIGxpbmtzLlxcbitcXHQgKi9cXG4rXFx0Zm91dF9mZCA9IG9wZW4oYXJndltvcHRpbmQgKyAxXSwgT19XUk9OTFkgfCBPX0NSRUFULCAwNjY2KTtcXG4rXFx0aWYgKGZvdXRfZmQgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdHBlcnJvcihcXFwib3BlbiBvdXRwdXRcXFwiKTtcXG4rXFx0XFx0ZXhpdCgxKTtcXG4rXFx0fVxcbitcXHRpZiAoZnN0YXQoZm91dF9mZCwgXFx1MDAyNm91dHB1dF9zdCkpIHtcXG4rXFx0XFx0cGVycm9yKFxcXCJmc3RhdCBvdXRwdXRcXFwiKTtcXG4rXFx0XFx0ZXhpdCgxKTtcXG4rXFx0fVxcbitcXHRpZiAoU19JU1JFRyhzdC5zdF9tb2RlKSBcXHUwMDI2XFx1MDAyNiBTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgc3Quc3RfZGV2ID09IG91dHB1dF9zdC5zdF9kZXYgXFx1MDAyNlxcdTAwMjYgc3Quc3RfaW5vID09IG91dHB1dF9zdC5zdF9pbm8pIHtcXG4rXFx0XFx0ZnByaW50ZihzdGRlcnIsIFxcXCJJbnB1dCBhbmQgb3V0cHV0IGZpbGVzIG11c3QgYmUgZGlmZmVyZW50XFxcXG5cXFwiKTtcXG4rXFx0XFx0ZXhpdCgxKTtcXG4rXFx0fVxcbitcXHRpZiAoU19JU1JFRyhvdXRwdXRfc3Quc3RfbW9kZSkgXFx1MDAyNlxcdTAwMjYgZnRydW5jYXRlKGZvdXRfZmQsIDApKSB7XFxuK1xcdFxcdHBlcnJvcihcXFwidHJ1bmNhdGUgb3V0cHV0XFxcIik7XFxuK1xcdFxcdGV4aXQoMSk7XFxuK1xcdH1cXG4rXFx0Zm91dCA9IGZkb3Blbihmb3V0X2ZkLCBcXFwid1xcXCIpO1xcbitcXHRpZiAoIWZvdXQpIHtcXG4rXFx0XFx0cGVycm9yKFxcXCJmZG9wZW4gb3V0cHV0XFxcIik7XFxuK1xcdFxcdGV4aXQoMSk7XFxuK1xcdH1cXG4rXFxuIFxcdGlmICghY2hlY2tfcmVnY29tcChcXHUwMDI2b3JkZXJfcGF0dGVybiwgXFxcIm9yZGVyXFxcXFxcXFxzKihbMC05XSopLFxcXCIpKVxcbiBcXHRcXHRnb3RvIG91dF9vcmRlcjtcXG4gXFx0aWYgKCFjaGVja19yZWdjb21wKFxcdTAwMjZwaWRfcGF0dGVybiwgXFxcInBpZFxcXFxcXFxccyooWzAtOV0qKSxcXFwiKSlcXG5AQCAtODU0LDcgKzg4OCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndilcXG4gXFx0aWYgKCFjaGVja19yZWdjb21wKFxcdTAwMjZ0c19uc2VjX3BhdHRlcm4sIFxcXCJ0c1xcXFxcXFxccyooWzAtOV0qKVxcXFxcXFxccypuc1xcXCIpKVxcbiBcXHRcXHRnb3RvIG91dF90cztcXG4gXFxuLVxcdGZzdGF0KGZpbGVubyhmaW4pLCBcXHUwMDI2c3QpO1xcbiBcXHRtYXhfc2l6ZSA9IHN0LnN0X3NpemUgLyAxMDA7IC8qIGhhY2sgLi4uICovXFxuIFxcbiBcXHRsaXN0ID0gbWFsbG9jKG1heF9zaXplICogc2l6ZW9mKCpsaXN0KSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDEyOjQ3OjM0LjI2MDMxNzE0MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjYzMjE2MzU3MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSB1c2Vyc3BhY2UgdG9vbCAodG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMpIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFkYmVjOWNmODJjYjljMmEwYmU3YjZkNTk5YjllY2EzYzQ5ZGY2NDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAxMjo0NzozMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jIGIvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmNcbmluZGV4IDM1ZDNkMjU0OTQxYzkuLjYwMmY1NDFkODVkZTMgMTAwNjQ0XG4tLS0gYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xuKysrIGIvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmNcbkBAIC03MTMsNyArNzEzLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0RklMRSAqZmluLCAqZm91dDtcbiBcdGNoYXIgKmJ1ZiwgKmV4dF9idWY7XG4gXHRpbnQgaSwgY291bnQsIGNvbXBhcmVfZmxhZztcbi1cdHN0cnVjdCBzdGF0IHN0O1xuK1x0aW50IGZvdXRfZmQ7XG4rXHRzdHJ1Y3Qgc3RhdCBzdCwgb3V0cHV0X3N0O1xuIFx0aW50IG9wdDtcbiBcdHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHtcbiBcdFx0eyBcInBpZFwiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgMSB9LFxuQEAgLTgzNiwxMyArODM3LDQ2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndilcbiBcdH1cbiBcbiBcdGZpbiA9IGZvcGVuKGFyZ3Zbb3B0aW5kXSwgXCJyXCIpO1xuLVx0Zm91dCA9IGZvcGVuKGFyZ3Zbb3B0aW5kICsgMV0sIFwid1wiKTtcbi1cdGlmICghZmluIHx8ICFmb3V0KSB7XG4rXHRpZiAoIWZpbikge1xuIFx0XHR1c2FnZSgpO1xuIFx0XHRwZXJyb3IoXCJvcGVuOiBcIik7XG4gXHRcdGV4aXQoMSk7XG4gXHR9XG4gXG4rXHRpZiAoZnN0YXQoZmlsZW5vKGZpbiksIFx1MDAyNnN0KSkge1xuK1x0XHRwZXJyb3IoXCJmc3RhdCBpbnB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcbitcdC8qXG4rXHQgKiBEbyBub3QgdHJ1bmNhdGUgdGhlIG91dHB1dCB1bnRpbCBhZnRlciBjaGVja2luZyB3aGV0aGVyIGl0IHJlZmVyc1xuK1x0ICogdG8gdGhlIGlucHV0IGZpbGUuICBDb21wYXJpbmcgdGhlIG9wZW5lZCBmaWxlcyBhbHNvIGNhdGNoZXMgYWxpYXNlc1xuK1x0ICogY3JlYXRlZCB3aXRoIGhhcmQgbGlua3Mgb3Igc3ltYm9saWMgbGlua3MuXG4rXHQgKi9cbitcdGZvdXRfZmQgPSBvcGVuKGFyZ3Zbb3B0aW5kICsgMV0sIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY2Nik7XG4rXHRpZiAoZm91dF9mZCBcdTAwM2MgMCkge1xuK1x0XHRwZXJyb3IoXCJvcGVuIG91dHB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGlmIChmc3RhdChmb3V0X2ZkLCBcdTAwMjZvdXRwdXRfc3QpKSB7XG4rXHRcdHBlcnJvcihcImZzdGF0IG91dHB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGlmIChTX0lTUkVHKHN0LnN0X21vZGUpIFx1MDAyNlx1MDAyNiBTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSBcdTAwMjZcdTAwMjZcbitcdCAgICBzdC5zdF9kZXYgPT0gb3V0cHV0X3N0LnN0X2RldiBcdTAwMjZcdTAwMjYgc3Quc3RfaW5vID09IG91dHB1dF9zdC5zdF9pbm8pIHtcbitcdFx0ZnByaW50ZihzdGRlcnIsIFwiSW5wdXQgYW5kIG91dHB1dCBmaWxlcyBtdXN0IGJlIGRpZmZlcmVudFxcblwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGlmIChTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSBcdTAwMjZcdTAwMjYgZnRydW5jYXRlKGZvdXRfZmQsIDApKSB7XG4rXHRcdHBlcnJvcihcInRydW5jYXRlIG91dHB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGZvdXQgPSBmZG9wZW4oZm91dF9mZCwgXCJ3XCIpO1xuK1x0aWYgKCFmb3V0KSB7XG4rXHRcdHBlcnJvcihcImZkb3BlbiBvdXRwdXRcIik7XG4rXHRcdGV4aXQoMSk7XG4rXHR9XG4rXG4gXHRpZiAoIWNoZWNrX3JlZ2NvbXAoXHUwMDI2b3JkZXJfcGF0dGVybiwgXCJvcmRlclxcXFxzKihbMC05XSopLFwiKSlcbiBcdFx0Z290byBvdXRfb3JkZXI7XG4gXHRpZiAoIWNoZWNrX3JlZ2NvbXAoXHUwMDI2cGlkX3BhdHRlcm4sIFwicGlkXFxcXHMqKFswLTldKiksXCIpKVxuQEAgLTg1NCw3ICs4ODgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpXG4gXHRpZiAoIWNoZWNrX3JlZ2NvbXAoXHUwMDI2dHNfbnNlY19wYXR0ZXJuLCBcInRzXFxcXHMqKFswLTldKilcXFxccypuc1wiKSlcbiBcdFx0Z290byBvdXRfdHM7XG4gXG4tXHRmc3RhdChmaWxlbm8oZmluKSwgXHUwMDI2c3QpO1xuIFx0bWF4X3NpemUgPSBzdC5zdF9zaXplIC8gMTAwOyAvKiBoYWNrIC4uLiAqL1xuIFxuIFx0bGlzdCA9IG1hbGxvYyhtYXhfc2l6ZSAqIHNpemVvZigqbGlzdCkpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMTI6NDc6MzQuMjYwMzE4NjYxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMyMTYwMDUzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKipcblxuT2theSwgc28gdGhlIHBhdGNoIEknbSBsb29raW5nIGF0IG1vZGlmaWVzIGB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuY2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgYSAqdXNlcnNwYWNlKiB0b29sLiBUaGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIC4uLiBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzIC4uLiBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIC4uLiBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCAuLi4gRHJpdmVyIC5yZW1vdmUgLi4uXCIuIE5vdywgdGhlIGluc3RydWN0aW9ucyBkb24ndCAqZXhwbGljaXRseSogY2FsbCBvdXQgdXNlcnNwYWNlIHRvb2xzLCBidXQgY29tZSBvbiwgdGhpcyBpc24ndCBrZXJuZWwgY29kZS4gV2UncmUgdGFsa2luZyBhYm91dCBTeXprYWxsZXIgaGVyZSwgYW5kIGl0J3MgYnVpbHQgdG8gZnV6eiB0aGUga2VybmVsLCBub3QgdXNlcnNwYWNlIHRvb2xzIHVubGVzcyB0aGVyZSdzIGEgdmVyeSBzcGVjaWZpYywgcmFyZSBzZXR1cCBpbnZvbHZlZCwgYW5kIEknbSBub3Qgc2VlaW5nIGFueSBpbmRpY2F0aW9uIG9mIHRoYXQgaGVyZS4gXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgdGhvdWdoLCBtYWtlIHN1cmUgdGhlcmUgYXJlICpubyogb3RoZXIgY2hhbmdlcyBoaWRpbmcgYW55d2hlcmUuIE5vcGUsIGp1c3QgYHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jYC4gU28sIHRoZSB2ZXJkaWN0IGlzIHByZXR0eSBjbGVhcjogKipXb3J0aEZ1enppbmc9ZmFsc2UqKi4gVGhlIHJhdGlvbmFsZSBpcyBzdHJhaWdodGZvcndhcmQ6IGl0J3MgYSB1c2Vyc3BhY2UgdG9vbCwgb3V0c2lkZSB0aGUgc2NvcGUgb2Ygb3VyIGtlcm5lbCBmdXp6aW5nIGVmZm9ydHMuIEknbGwgc2V0IHRoZSBmbGFnIGFuZCBnZXQgdGhlIFJlYXNvbmluZyB3cml0dGVuLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzMwLCJPdXRwdXRUb2tlbnMiOjY1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMTI6NDc6NDAuNTgxOTIxNjg5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODY3MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgdXNlcnNwYWNlIHRvb2wgKHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgdXNlcnNwYWNlIHRvb2wgKHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbs697[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-30 12:31:45 +0000 UTC FinishedAt: 2026-07-30 12:47: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+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSB1c2Vyc3BhY2UgdG9vbCAodG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMpIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMTI6NDc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZGJlYzljZjgyY2I5YzJhMGJlN2I2ZDU5OWI5ZWNhM2M0OWRmNjQ4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMzAgMTI6NDc6MzIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xuaW5kZXggMzVkM2QyNTQ5NDFjOS4uNjAyZjU0MWQ4NWRlMyAxMDA2NDRcbi0tLSBhL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xuQEAgLTcxMyw3ICYjNDM7NzEzLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0RklMRSAqZmluLCAqZm91dDtcbiBcdGNoYXIgKmJ1ZiwgKmV4dF9idWY7XG4gXHRpbnQgaSwgY291bnQsIGNvbXBhcmVfZmxhZztcbi1cdHN0cnVjdCBzdGF0IHN0O1xuJiM0MztcdGludCBmb3V0X2ZkO1xuJiM0MztcdHN0cnVjdCBzdGF0IHN0LCBvdXRwdXRfc3Q7XG4gXHRpbnQgb3B0O1xuIFx0c3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0ge1xuIFx0XHR7IFwmIzM0O3BpZFwmIzM0OywgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDEgfSxcbkBAIC04MzYsMTMgJiM0Mzs4MzcsNDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0fVxuIFxuIFx0ZmluID0gZm9wZW4oYXJndltvcHRpbmRdLCBcJiMzNDtyXCYjMzQ7KTtcbi1cdGZvdXQgPSBmb3Blbihhcmd2W29wdGluZCAmIzQzOyAxXSwgXCYjMzQ7d1wmIzM0Oyk7XG4tXHRpZiAoIWZpbiB8fCAhZm91dCkge1xuJiM0MztcdGlmICghZmluKSB7XG4gXHRcdHVzYWdlKCk7XG4gXHRcdHBlcnJvcihcJiMzNDtvcGVuOiBcJiMzNDspO1xuIFx0XHRleGl0KDEpO1xuIFx0fVxuIFxuJiM0MztcdGlmIChmc3RhdChmaWxlbm8oZmluKSwgXHUwMDI2c3QpKSB7XG4mIzQzO1x0XHRwZXJyb3IoXCYjMzQ7ZnN0YXQgaW5wdXRcJiMzNDspO1xuJiM0MztcdFx0ZXhpdCgxKTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRG8gbm90IHRydW5jYXRlIHRoZSBvdXRwdXQgdW50aWwgYWZ0ZXIgY2hlY2tpbmcgd2hldGhlciBpdCByZWZlcnNcbiYjNDM7XHQgKiB0byB0aGUgaW5wdXQgZmlsZS4gIENvbXBhcmluZyB0aGUgb3BlbmVkIGZpbGVzIGFsc28gY2F0Y2hlcyBhbGlhc2VzXG4mIzQzO1x0ICogY3JlYXRlZCB3aXRoIGhhcmQgbGlua3Mgb3Igc3ltYm9saWMgbGlua3MuXG4mIzQzO1x0ICovXG4mIzQzO1x0Zm91dF9mZCA9IG9wZW4oYXJndltvcHRpbmQgJiM0MzsgMV0sIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY2Nik7XG4mIzQzO1x0aWYgKGZvdXRfZmQgXHUwMDNjIDApIHtcbiYjNDM7XHRcdHBlcnJvcihcJiMzNDtvcGVuIG91dHB1dFwmIzM0Oyk7XG4mIzQzO1x0XHRleGl0KDEpO1xuJiM0MztcdH1cbiYjNDM7XHRpZiAoZnN0YXQoZm91dF9mZCwgXHUwMDI2b3V0cHV0X3N0KSkge1xuJiM0MztcdFx0cGVycm9yKFwmIzM0O2ZzdGF0IG91dHB1dFwmIzM0Oyk7XG4mIzQzO1x0XHRleGl0KDEpO1xuJiM0MztcdH1cbiYjNDM7XHRpZiAoU19JU1JFRyhzdC5zdF9tb2RlKSBcdTAwMjZcdTAwMjYgU19JU1JFRyhvdXRwdXRfc3Quc3RfbW9kZSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIHN0LnN0X2RldiA9PSBvdXRwdXRfc3Quc3RfZGV2IFx1MDAyNlx1MDAyNiBzdC5zdF9pbm8gPT0gb3V0cHV0X3N0LnN0X2lubykge1xuJiM0MztcdFx0ZnByaW50ZihzdGRlcnIsIFwmIzM0O0lucHV0IGFuZCBvdXRwdXQgZmlsZXMgbXVzdCBiZSBkaWZmZXJlbnRcXG5cJiMzNDspO1xuJiM0MztcdFx0ZXhpdCgxKTtcbiYjNDM7XHR9XG4mIzQzO1x0aWYgKFNfSVNSRUcob3V0cHV0X3N0LnN0X21vZGUpIFx1MDAyNlx1MDAyNiBmdHJ1bmNhdGUoZm91dF9mZCwgMCkpIHtcbiYjNDM7XHRcdHBlcnJvcihcJiMzNDt0cnVuY2F0ZSBvdXRwdXRcJiMzNDspO1xuJiM0MztcdFx0ZXhpdCgxKTtcbiYjNDM7XHR9XG4mIzQzO1x0Zm91dCA9IGZkb3Blbihmb3V0X2ZkLCBcJiMzNDt3XCYjMzQ7KTtcbiYjNDM7XHRpZiAoIWZvdXQpIHtcbiYjNDM7XHRcdHBlcnJvcihcJiMzNDtmZG9wZW4gb3V0cHV0XCYjMzQ7KTtcbiYjNDM7XHRcdGV4aXQoMSk7XG4mIzQzO1x0fVxuJiM0MztcbiBcdGlmICghY2hlY2tfcmVnY29tcChcdTAwMjZvcmRlcl9wYXR0ZXJuLCBcJiMzNDtvcmRlclxcXFxzKihbMC05XSopLFwmIzM0OykpXG4gXHRcdGdvdG8gb3V0X29yZGVyO1xuIFx0aWYgKCFjaGVja19yZWdjb21wKFx1MDAyNnBpZF9wYXR0ZXJuLCBcJiMzNDtwaWRcXFxccyooWzAtOV0qKSxcJiMzNDspKVxuQEAgLTg1NCw3ICYjNDM7ODg4LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0aWYgKCFjaGVja19yZWdjb21wKFx1MDAyNnRzX25zZWNfcGF0dGVybiwgXCYjMzQ7dHNcXFxccyooWzAtOV0qKVxcXFxzKm5zXCYjMzQ7KSlcbiBcdFx0Z290byBvdXRfdHM7XG4gXG4tXHRmc3RhdChmaWxlbm8oZmluKSwgXHUwMDI2c3QpO1xuIFx0bWF4X3NpemUgPSBzdC5zdF9zaXplIC8gMTAwOyAvKiBoYWNrIC4uLiAqL1xuIFxuIFx0bGlzdCA9IG1hbGxvYyhtYXhfc2l6ZSAqIHNpemVvZigqbGlzdCkpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgdXNlcnNwYWNlIHRvb2wgKHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMWRiZWM5Y2Y4MmNiOWMyYTBiZTdiNmQ1OTliOWVjYTNjNDlkZjY0OApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDMwIDEyOjQ3OjMyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYwppbmRleCAzNWQzZDI1NDk0MWM5Li42MDJmNTQxZDg1ZGUzIDEwMDY0NAotLS0gYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYwpAQCAtNzEzLDcgJiM0Mzs3MTMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJRklMRSAqZmluLCAqZm91dDsKIAljaGFyICpidWYsICpleHRfYnVmOwogCWludCBpLCBjb3VudCwgY29tcGFyZV9mbGFnOwotCXN0cnVjdCBzdGF0IHN0OwomIzQzOwlpbnQgZm91dF9mZDsKJiM0MzsJc3RydWN0IHN0YXQgc3QsIG91dHB1dF9zdDsKIAlpbnQgb3B0OwogCXN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKIAkJeyAmIzM0O3BpZCYjMzQ7LCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgMSB9LApAQCAtODM2LDEzICYjNDM7ODM3LDQ2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAl9CiAKIAlmaW4gPSBmb3Blbihhcmd2W29wdGluZF0sICYjMzQ7ciYjMzQ7KTsKLQlmb3V0ID0gZm9wZW4oYXJndltvcHRpbmQgJiM0MzsgMV0sICYjMzQ7dyYjMzQ7KTsKLQlpZiAoIWZpbiB8fCAhZm91dCkgewomIzQzOwlpZiAoIWZpbikgewogCQl1c2FnZSgpOwogCQlwZXJyb3IoJiMzNDtvcGVuOiAmIzM0Oyk7CiAJCWV4aXQoMSk7CiAJfQogCiYjNDM7CWlmIChmc3RhdChmaWxlbm8oZmluKSwgJmFtcDtzdCkpIHsKJiM0MzsJCXBlcnJvcigmIzM0O2ZzdGF0IGlucHV0JiMzNDspOwomIzQzOwkJZXhpdCgxKTsKJiM0MzsJfQomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBEbyBub3QgdHJ1bmNhdGUgdGhlIG91dHB1dCB1bnRpbCBhZnRlciBjaGVja2luZyB3aGV0aGVyIGl0IHJlZmVycwomIzQzOwkgKiB0byB0aGUgaW5wdXQgZmlsZS4gIENvbXBhcmluZyB0aGUgb3BlbmVkIGZpbGVzIGFsc28gY2F0Y2hlcyBhbGlhc2VzCiYjNDM7CSAqIGNyZWF0ZWQgd2l0aCBoYXJkIGxpbmtzIG9yIHN5bWJvbGljIGxpbmtzLgomIzQzOwkgKi8KJiM0MzsJZm91dF9mZCA9IG9wZW4oYXJndltvcHRpbmQgJiM0MzsgMV0sIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY2Nik7CiYjNDM7CWlmIChmb3V0X2ZkICZsdDsgMCkgewomIzQzOwkJcGVycm9yKCYjMzQ7b3BlbiBvdXRwdXQmIzM0Oyk7CiYjNDM7CQlleGl0KDEpOwomIzQzOwl9CiYjNDM7CWlmIChmc3RhdChmb3V0X2ZkLCAmYW1wO291dHB1dF9zdCkpIHsKJiM0MzsJCXBlcnJvcigmIzM0O2ZzdGF0IG91dHB1dCYjMzQ7KTsKJiM0MzsJCWV4aXQoMSk7CiYjNDM7CX0KJiM0MzsJaWYgKFNfSVNSRUcoc3Quc3RfbW9kZSkgJmFtcDsmYW1wOyBTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSAmYW1wOyZhbXA7CiYjNDM7CSAgICBzdC5zdF9kZXYgPT0gb3V0cHV0X3N0LnN0X2RldiAmYW1wOyZhbXA7IHN0LnN0X2lubyA9PSBvdXRwdXRfc3Quc3RfaW5vKSB7CiYjNDM7CQlmcHJpbnRmKHN0ZGVyciwgJiMzNDtJbnB1dCBhbmQgb3V0cHV0IGZpbGVzIG11c3QgYmUgZGlmZmVyZW50XG4mIzM0Oyk7CiYjNDM7CQlleGl0KDEpOwomIzQzOwl9CiYjNDM7CWlmIChTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSAmYW1wOyZhbXA7IGZ0cnVuY2F0ZShmb3V0X2ZkLCAwKSkgewomIzQzOwkJcGVycm9yKCYjMzQ7dHJ1bmNhdGUgb3V0cHV0JiMzNDspOwomIzQzOwkJZXhpdCgxKTsKJiM0MzsJfQomIzQzOwlmb3V0ID0gZmRvcGVuKGZvdXRfZmQsICYjMzQ7dyYjMzQ7KTsKJiM0MzsJaWYgKCFmb3V0KSB7CiYjNDM7CQlwZXJyb3IoJiMzNDtmZG9wZW4gb3V0cHV0JiMzNDspOwomIzQzOwkJZXhpdCgxKTsKJiM0MzsJfQomIzQzOwogCWlmICghY2hlY2tfcmVnY29tcCgmYW1wO29yZGVyX3BhdHRlcm4sICYjMzQ7b3JkZXJcXHMqKFswLTldKiksJiMzNDspKQogCQlnb3RvIG91dF9vcmRlcjsKIAlpZiAoIWNoZWNrX3JlZ2NvbXAoJmFtcDtwaWRfcGF0dGVybiwgJiMzNDtwaWRcXHMqKFswLTldKiksJiMzNDspKQpAQCAtODU0LDcgJiM0Mzs4ODgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJaWYgKCFjaGVja19yZWdjb21wKCZhbXA7dHNfbnNlY19wYXR0ZXJuLCAmIzM0O3RzXFxzKihbMC05XSopXFxzKm5zJiMzNDspKQogCQlnb3RvIG91dF90czsKIAotCWZzdGF0KGZpbGVubyhmaW4pLCAmYW1wO3N0KTsKIAltYXhfc2l6ZSA9IHN0LnN0X3NpemUgLyAxMDA7IC8qIGhhY2sgLi4uICovCiAKIAlsaXN0ID0gbWFsbG9jKG1heF9zaXplICogc2l6ZW9mKCpsaXN0KSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MzAKCQkJCQkJCW91dHB1dDogNjUKCQkJCQkJCXRob3VnaHRzOiAyMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuYyoqCgpPa2F5LCBzbyB0aGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IG1vZGlmaWVzIGB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuY2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgYSAqdXNlcnNwYWNlKiB0b29sLiBUaGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIC4uLiBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzIC4uLiBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIC4uLiBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCAuLi4gRHJpdmVyIC5yZW1vdmUgLi4uJiMzNDsuIE5vdywgdGhlIGluc3RydWN0aW9ucyBkb24mIzM5O3QgKmV4cGxpY2l0bHkqIGNhbGwgb3V0IHVzZXJzcGFjZSB0b29scywgYnV0IGNvbWUgb24sIHRoaXMgaXNuJiMzOTt0IGtlcm5lbCBjb2RlLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBTeXprYWxsZXIgaGVyZSwgYW5kIGl0JiMzOTtzIGJ1aWx0IHRvIGZ1enogdGhlIGtlcm5lbCwgbm90IHVzZXJzcGFjZSB0b29scyB1bmxlc3MgdGhlcmUmIzM5O3MgYSB2ZXJ5IHNwZWNpZmljLCByYXJlIHNldHVwIGludm9sdmVkLCBhbmQgSSYjMzk7bSBub3Qgc2VlaW5nIGFueSBpbmRpY2F0aW9uIG9mIHRoYXQgaGVyZS4gCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgbWFrZSBzdXJlIHRoZXJlIGFyZSAqbm8qIG90aGVyIGNoYW5nZXMgaGlkaW5nIGFueXdoZXJlLiBOb3BlLCBqdXN0IGB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuY2AuIFNvLCB0aGUgdmVyZGljdCBpcyBwcmV0dHkgY2xlYXI6ICoqV29ydGhGdXp6aW5nPWZhbHNlKiouIFRoZSByYXRpb25hbGUgaXMgc3RyYWlnaHRmb3J3YXJkOiBpdCYjMzk7cyBhIHVzZXJzcGFjZSB0b29sLCBvdXRzaWRlIHRoZSBzY29wZSBvZiBvdXIga2VybmVsIGZ1enppbmcgZWZmb3J0cy4gSSYjMzk7bGwgc2V0IHRoZSBmbGFnIGFuZCBnZXQgdGhlIFJlYXNvbmluZyB3cml0dGVuLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDEyOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHVzZXJzcGFjZSB0b29sICh0b29scy9tbS9wYWdlX293bmVyX3NvcnQuYykgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHVzZXJzcGFjZSB0b29sICh0b29scy9tbS9wYWdlX293bmVyX3NvcnQuYykgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDEyOjQ3OjMzLjgwMDY3MzQ3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3ODEyODcxNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSB1c2Vyc3BhY2UgdG9vbCAodG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMpIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDEyOjQ3OjMzLjgwMDY4MTcwOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU4OTkyOTEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMWRiZWM5Y2Y4MmNiOWMyYTBiZTdiNmQ1OTliOWVjYTNjNDlkZjY0OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAzMCAxMjo0NzozMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuYyBiL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jXFxuaW5kZXggMzVkM2QyNTQ5NDFjOS4uNjAyZjU0MWQ4NWRlMyAxMDA2NDRcXG4tLS0gYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xcbisrKyBiL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jXFxuQEAgLTcxMyw3ICs3MTMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpXFxuIFxcdEZJTEUgKmZpbiwgKmZvdXQ7XFxuIFxcdGNoYXIgKmJ1ZiwgKmV4dF9idWY7XFxuIFxcdGludCBpLCBjb3VudCwgY29tcGFyZV9mbGFnO1xcbi1cXHRzdHJ1Y3Qgc3RhdCBzdDtcXG4rXFx0aW50IGZvdXRfZmQ7XFxuK1xcdHN0cnVjdCBzdGF0IHN0LCBvdXRwdXRfc3Q7XFxuIFxcdGludCBvcHQ7XFxuIFxcdHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHtcXG4gXFx0XFx0eyBcXFwicGlkXFxcIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDEgfSxcXG5AQCAtODM2LDEzICs4MzcsNDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxcbiBcXHR9XFxuIFxcbiBcXHRmaW4gPSBmb3Blbihhcmd2W29wdGluZF0sIFxcXCJyXFxcIik7XFxuLVxcdGZvdXQgPSBmb3Blbihhcmd2W29wdGluZCArIDFdLCBcXFwid1xcXCIpO1xcbi1cXHRpZiAoIWZpbiB8fCAhZm91dCkge1xcbitcXHRpZiAoIWZpbikge1xcbiBcXHRcXHR1c2FnZSgpO1xcbiBcXHRcXHRwZXJyb3IoXFxcIm9wZW46IFxcXCIpO1xcbiBcXHRcXHRleGl0KDEpO1xcbiBcXHR9XFxuIFxcbitcXHRpZiAoZnN0YXQoZmlsZW5vKGZpbiksIFxcdTAwMjZzdCkpIHtcXG4rXFx0XFx0cGVycm9yKFxcXCJmc3RhdCBpbnB1dFxcXCIpO1xcbitcXHRcXHRleGl0KDEpO1xcbitcXHR9XFxuK1xcbitcXHQvKlxcbitcXHQgKiBEbyBub3QgdHJ1bmNhdGUgdGhlIG91dHB1dCB1bnRpbCBhZnRlciBjaGVja2luZyB3aGV0aGVyIGl0IHJlZmVyc1xcbitcXHQgKiB0byB0aGUgaW5wdXQgZmlsZS4gIENvbXBhcmluZyB0aGUgb3BlbmVkIGZpbGVzIGFsc28gY2F0Y2hlcyBhbGlhc2VzXFxuK1xcdCAqIGNyZWF0ZWQgd2l0aCBoYXJkIGxpbmtzIG9yIHN5bWJvbGljIGxpbmtzLlxcbitcXHQgKi9cXG4rXFx0Zm91dF9mZCA9IG9wZW4oYXJndltvcHRpbmQgKyAxXSwgT19XUk9OTFkgfCBPX0NSRUFULCAwNjY2KTtcXG4rXFx0aWYgKGZvdXRfZmQgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdHBlcnJvcihcXFwib3BlbiBvdXRwdXRcXFwiKTtcXG4rXFx0XFx0ZXhpdCgxKTtcXG4rXFx0fVxcbitcXHRpZiAoZnN0YXQoZm91dF9mZCwgXFx1MDAyNm91dHB1dF9zdCkpIHtcXG4rXFx0XFx0cGVycm9yKFxcXCJmc3RhdCBvdXRwdXRcXFwiKTtcXG4rXFx0XFx0ZXhpdCgxKTtcXG4rXFx0fVxcbitcXHRpZiAoU19JU1JFRyhzdC5zdF9tb2RlKSBcXHUwMDI2XFx1MDAyNiBTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgc3Quc3RfZGV2ID09IG91dHB1dF9zdC5zdF9kZXYgXFx1MDAyNlxcdTAwMjYgc3Quc3RfaW5vID09IG91dHB1dF9zdC5zdF9pbm8pIHtcXG4rXFx0XFx0ZnByaW50ZihzdGRlcnIsIFxcXCJJbnB1dCBhbmQgb3V0cHV0IGZpbGVzIG11c3QgYmUgZGlmZmVyZW50XFxcXG5cXFwiKTtcXG4rXFx0XFx0ZXhpdCgxKTtcXG4rXFx0fVxcbitcXHRpZiAoU19JU1JFRyhvdXRwdXRfc3Quc3RfbW9kZSkgXFx1MDAyNlxcdTAwMjYgZnRydW5jYXRlKGZvdXRfZmQsIDApKSB7XFxuK1xcdFxcdHBlcnJvcihcXFwidHJ1bmNhdGUgb3V0cHV0XFxcIik7XFxuK1xcdFxcdGV4aXQoMSk7XFxuK1xcdH1cXG4rXFx0Zm91dCA9IGZkb3Blbihmb3V0X2ZkLCBcXFwid1xcXCIpO1xcbitcXHRpZiAoIWZvdXQpIHtcXG4rXFx0XFx0cGVycm9yKFxcXCJmZG9wZW4gb3V0cHV0XFxcIik7XFxuK1xcdFxcdGV4aXQoMSk7XFxuK1xcdH1cXG4rXFxuIFxcdGlmICghY2hlY2tfcmVnY29tcChcXHUwMDI2b3JkZXJfcGF0dGVybiwgXFxcIm9yZGVyXFxcXFxcXFxzKihbMC05XSopLFxcXCIpKVxcbiBcXHRcXHRnb3RvIG91dF9vcmRlcjtcXG4gXFx0aWYgKCFjaGVja19yZWdjb21wKFxcdTAwMjZwaWRfcGF0dGVybiwgXFxcInBpZFxcXFxcXFxccyooWzAtOV0qKSxcXFwiKSlcXG5AQCAtODU0LDcgKzg4OCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndilcXG4gXFx0aWYgKCFjaGVja19yZWdjb21wKFxcdTAwMjZ0c19uc2VjX3BhdHRlcm4sIFxcXCJ0c1xcXFxcXFxccyooWzAtOV0qKVxcXFxcXFxccypuc1xcXCIpKVxcbiBcXHRcXHRnb3RvIG91dF90cztcXG4gXFxuLVxcdGZzdGF0KGZpbGVubyhmaW4pLCBcXHUwMDI2c3QpO1xcbiBcXHRtYXhfc2l6ZSA9IHN0LnN0X3NpemUgLyAxMDA7IC8qIGhhY2sgLi4uICovXFxuIFxcbiBcXHRsaXN0ID0gbWFsbG9jKG1heF9zaXplICogc2l6ZW9mKCpsaXN0KSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDEyOjQ3OjM0LjI2MDMxNzE0MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjYzMjE2MzU3MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSB1c2Vyc3BhY2UgdG9vbCAodG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmMpIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFkYmVjOWNmODJjYjljMmEwYmU3YjZkNTk5YjllY2EzYzQ5ZGY2NDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAxMjo0NzozMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jIGIvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmNcbmluZGV4IDM1ZDNkMjU0OTQxYzkuLjYwMmY1NDFkODVkZTMgMTAwNjQ0XG4tLS0gYS90b29scy9tbS9wYWdlX293bmVyX3NvcnQuY1xuKysrIGIvdG9vbHMvbW0vcGFnZV9vd25lcl9zb3J0LmNcbkBAIC03MTMsNyArNzEzLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KVxuIFx0RklMRSAqZmluLCAqZm91dDtcbiBcdGNoYXIgKmJ1ZiwgKmV4dF9idWY7XG4gXHRpbnQgaSwgY291bnQsIGNvbXBhcmVfZmxhZztcbi1cdHN0cnVjdCBzdGF0IHN0O1xuK1x0aW50IGZvdXRfZmQ7XG4rXHRzdHJ1Y3Qgc3RhdCBzdCwgb3V0cHV0X3N0O1xuIFx0aW50IG9wdDtcbiBcdHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHtcbiBcdFx0eyBcInBpZFwiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgMSB9LFxuQEAgLTgzNiwxMyArODM3LDQ2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndilcbiBcdH1cbiBcbiBcdGZpbiA9IGZvcGVuKGFyZ3Zbb3B0aW5kXSwgXCJyXCIpO1xuLVx0Zm91dCA9IGZvcGVuKGFyZ3Zbb3B0aW5kICsgMV0sIFwid1wiKTtcbi1cdGlmICghZmluIHx8ICFmb3V0KSB7XG4rXHRpZiAoIWZpbikge1xuIFx0XHR1c2FnZSgpO1xuIFx0XHRwZXJyb3IoXCJvcGVuOiBcIik7XG4gXHRcdGV4aXQoMSk7XG4gXHR9XG4gXG4rXHRpZiAoZnN0YXQoZmlsZW5vKGZpbiksIFx1MDAyNnN0KSkge1xuK1x0XHRwZXJyb3IoXCJmc3RhdCBpbnB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcbitcdC8qXG4rXHQgKiBEbyBub3QgdHJ1bmNhdGUgdGhlIG91dHB1dCB1bnRpbCBhZnRlciBjaGVja2luZyB3aGV0aGVyIGl0IHJlZmVyc1xuK1x0ICogdG8gdGhlIGlucHV0IGZpbGUuICBDb21wYXJpbmcgdGhlIG9wZW5lZCBmaWxlcyBhbHNvIGNhdGNoZXMgYWxpYXNlc1xuK1x0ICogY3JlYXRlZCB3aXRoIGhhcmQgbGlua3Mgb3Igc3ltYm9saWMgbGlua3MuXG4rXHQgKi9cbitcdGZvdXRfZmQgPSBvcGVuKGFyZ3Zbb3B0aW5kICsgMV0sIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY2Nik7XG4rXHRpZiAoZm91dF9mZCBcdTAwM2MgMCkge1xuK1x0XHRwZXJyb3IoXCJvcGVuIG91dHB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGlmIChmc3RhdChmb3V0X2ZkLCBcdTAwMjZvdXRwdXRfc3QpKSB7XG4rXHRcdHBlcnJvcihcImZzdGF0IG91dHB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGlmIChTX0lTUkVHKHN0LnN0X21vZGUpIFx1MDAyNlx1MDAyNiBTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSBcdTAwMjZcdTAwMjZcbitcdCAgICBzdC5zdF9kZXYgPT0gb3V0cHV0X3N0LnN0X2RldiBcdTAwMjZcdTAwMjYgc3Quc3RfaW5vID09IG91dHB1dF9zdC5zdF9pbm8pIHtcbitcdFx0ZnByaW50ZihzdGRlcnIsIFwiSW5wdXQgYW5kIG91dHB1dCBmaWxlcyBtdXN0IGJlIGRpZmZlcmVudFxcblwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGlmIChTX0lTUkVHKG91dHB1dF9zdC5zdF9tb2RlKSBcdTAwMjZcdTAwMjYgZnRydW5jYXRlKGZvdXRfZmQsIDApKSB7XG4rXHRcdHBlcnJvcihcInRydW5jYXRlIG91dHB1dFwiKTtcbitcdFx0ZXhpdCgxKTtcbitcdH1cbitcdGZvdXQgPSBmZG9wZW4oZm91dF9mZCwgXCJ3XCIpO1xuK1x0aWYgKCFmb3V0KSB7XG4rXHRcdHBlcnJvcihcImZkb3BlbiBvdXRwdXRcIik7XG4rXHRcdGV4aXQoMSk7XG4rXHR9XG4rXG4gXHRpZiAoIWNoZWNrX3JlZ2NvbXAoXHUwMDI2b3JkZXJfcGF0dGVybiwgXCJvcmRlclxcXFxzKihbMC05XSopLFwiKSlcbiBcdFx0Z290byBvdXRfb3JkZXI7XG4gXHRpZiAoIWNoZWNrX3JlZ2NvbXAoXHUwMDI2cGlkX3BhdHRlcm4sIFwicGlkXFxcXHMqKFswLTldKiksXCIpKVxuQEAgLTg1NCw3ICs4ODgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpXG4gXHRpZiAoIWNoZWNrX3JlZ2NvbXAoXHUwMDI2dHNfbnNlY19wYXR0ZXJuLCBcInRzXFxcXHMqKFswLTldKilcXFxccypuc1wiKSlcbiBcdFx0Z290byBvdXRfdHM7XG4gXG4tXHRmc3RhdChmaWxlbm8oZmluKSwgXHUwMDI2c3QpO1xuIFx0bWF4X3NpemUgPSBzdC5zdF9zaXplIC8gMTAwOyAvKiBoYWNrIC4uLiAqL1xuIFxuIFx0bGlzdCA9IG1hbGxvYyhtYXhfc2l6ZSAqIHNpemVvZigqbGlzdCkpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMTI6NDc6MzQuMjYwMzE4NjYxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMyMTYwMDUzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKipcblxuT2theSwgc28gdGhlIHBhdGNoIEknbSBsb29raW5nIGF0IG1vZGlmaWVzIGB0b29scy9tbS9wYWdlX293bmVyX3NvcnQuY2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgYSAqdXNlcnNwYWNlKiB0b29sLiBUaGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuIC4uLiBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzIC4uLiBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIC4uLiBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCAuLi4gRHJpdmVyIC5yZW1vdmUgLi4uXCIuIE5vdywgdGhlIGluc3RydWN0aW9ucyBkb24ndCAqZXhwbGljaXRseSogY2FsbCBvdXQgdXNlcnNwYWNlIHRvb2xzLCBidXQgY29tZSBvbiwgdGhpcyBpc24ndCBrZXJuZWwgY29kZS4gV2UncmUgdGFsa2luZyBhYm91dCBTeXprYWxsZXIgaGVyZSwgYW5kIGl0J3MgYnVpbHQgdG8gZnV6eiB0aGUga2VybmVsLCBub3QgdXNlcnNwYWNlIHRvb2xzIHVubGVzcyB0aGVyZSdzIGEgdmVyeSBzcGVjaWZpYywgcmFyZSBzZXR1cCBpbnZvbHZlZCwgYW5kIEknbSBub3Qgc2VlaW5nIGFueSBpbmRpY2F0aW9uIG9mIHRoYXQgaGVyZS4gXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgdGhvdWdoLCBtYWtlIHN1cmUgdGhlcmUgYXJlICpubyogb3RoZXIgY2hhbmdlcyBoaWRpbmcgYW55d2hlcmUuIE5vcGUsIGp1c3QgYHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jYC4gU28sIHRoZSB2ZXJkaWN0IGlzIHByZXR0eSBjbGVhcjogKipXb3J0aEZ1enppbmc9ZmFsc2UqKi4gVGhlIHJhdGlvbmFsZSBpcyBzdHJhaWdodGZvcndhcmQ6IGl0J3MgYSB1c2Vyc3BhY2UgdG9vbCwgb3V0c2lkZSB0aGUgc2NvcGUgb2Ygb3VyIGtlcm5lbCBmdXp6aW5nIGVmZm9ydHMuIEknbGwgc2V0IHRoZSBmbGFnIGFuZCBnZXQgdGhlIFJlYXNvbmluZyB3cml0dGVuLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzMwLCJPdXRwdXRUb2tlbnMiOjY1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMTI6NDc6NDAuNTgxOTIxNjg5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODY3MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgdXNlcnNwYWNlIHRvb2wgKHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgdXNlcnNwYWNlIHRvb2wgKHRvb2xzL21tL3BhZ2Vfb3duZXJfc29ydC5jKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbs697[1] Phase: Running StartedAt: 2026-07-30 12:47:51 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbs697[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-30 12:47:51 +0000 UTC FinishedAt: 2026-07-30 12:47:56 +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,}