Name: series-workflow25dwv Phase: Failed StartedAt: 2026-08-02 15:51:52 +0000 UTC FinishedAt: 2026-08-02 15:54:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow25dwv[0] Phase: Succeeded StartedAt: 2026-08-02 15:51:52 +0000 UTC FinishedAt: 2026-08-02 15:53:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow25dwv[0].run-triage Phase: Succeeded StartedAt: 2026-08-02 15:51:52 +0000 UTC FinishedAt: 2026-08-02 15:53:52 +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+CgkJCTx0ZD4yMDI2LzA4LzAyIDE1OjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE1OjUzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMTU6NTM6MTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCA4ZDA2MzVlZTQ4YzdlLi41MWFjMGE5YWUzMzk0IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC0xODcwMywxMCAmIzQzOzE4NzAzLDE4IEBAIHN0YXRpYyB2b2lkIHByaW50X3ZlcmlmaWNhdGlvbl9zdGF0cyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxuIFx0aWYgKGVudi1cdTAwM2Vsb2cubGV2ZWwgXHUwMDI2IEJQRl9MT0dfU1RBVFMpIHtcbiBcdFx0dmVyYm9zZShlbnYsIFwmIzM0O3ZlcmlmaWNhdGlvbiB0aW1lICVsbGQgdXNlY1xcblwmIzM0OyxcbiBcdFx0XHRkaXZfdTY0KGVudi1cdTAwM2V2ZXJpZmljYXRpb25fdGltZSwgMTAwMCkpO1xuLVx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7c3RhY2sgZGVwdGggJWRcJiMzNDssIGVudi1cdTAwM2VzdWJwcm9nX2luZm9bMF0uc3RhY2tfZGVwdGgpO1xuLVx0XHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBzdWJwcm9nX2NudDsgaSYjNDM7JiM0MzspXG4tXHRcdFx0dmVyYm9zZShlbnYsIFwmIzM0OyYjNDM7JWRcJiMzNDssIGVudi1cdTAwM2VzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpO1xuLVx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7IG1heCAlZFxcblwmIzM0OywgZW52LVx1MDAzZW1heF9zdGFja19kZXB0aCk7XG4mIzQzO1x0XHR2ZXJib3NlKGVudiwgXCYjMzQ7c3RhY2sgZGVwdGhcJiMzNDspO1xuJiM0MztcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgc3VicHJvZ19jbnQ7IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHRcdGNvbnN0IGNoYXIgKm5hbWUgPSBlbnYtXHUwMDNlc3VicHJvZ19pbmZvW2ldLm5hbWU7XG4mIzQzO1xuJiM0MztcdFx0XHRpZiAobmFtZSBcdTAwMjZcdTAwMjYgbmFtZVswXSlcbiYjNDM7XHRcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7ICVzPSVkXCYjMzQ7LCBuYW1lLFxuJiM0MztcdFx0XHRcdFx0ZW52LVx1MDAzZXN1YnByb2dfaW5mb1tpXS5zdGFja19kZXB0aCk7XG4mIzQzO1x0XHRcdGVsc2VcbiYjNDM7XHRcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7IHN1YnByb2dbJWRdPSVkXCYjMzQ7LCBpLFxuJiM0MztcdFx0XHRcdFx0ZW52LVx1MDAzZXN1YnByb2dfaW5mb1tpXS5zdGFja19kZXB0aCk7XG4mIzQzO1x0XHR9XG4mIzQzO1x0XHR2ZXJib3NlKGVudiwgXCYjMzQ7IG1heD0lZFxcblwmIzM0OywgZW52LVx1MDAzZW1heF9zdGFja19kZXB0aCk7XG4gXHRcdHZlcmJvc2UoZW52LCBcJiMzNDtpbnNucyBwcm9jZXNzZWQgJWRcJiMzNDssIGVudi1cdTAwM2VzdWJwcm9nX2luZm9bMF0uaW5zbl9wcm9jZXNzZWQpO1xuIFx0XHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBzdWJwcm9nX2NudDsgaSYjNDM7JiM0MzspXG4gXHRcdFx0aWYgKGJwZl9zdWJwcm9nX2lzX2dsb2JhbChlbnYsIGkpKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbmluZGV4IGZiNjJlMDlmMjExNDYuLmYxMzVjNGI5MzQ0YmMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbkBAIC0yNyw3ICYjNDM7MjcsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfb3V0X29mX2JvdW5kcyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDt1bmluaXRpYWxpemVkIHN0YWNrMVwmIzM0Oylcbi1fX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggOFwmIzM0OylcbiYjNDM7X19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2sxPThcJiMzNDspXG4gX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoXCYjMzQ7aW52YWxpZCByZWFkIGZyb20gc3RhY2tcJiMzNDspXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXG4ge1xuQEAgLTQ1LDcgJiM0Mzs0NSw3IEBAIF9fbmFrZWQgdm9pZCB1bmluaXRpYWxpemVkX3N0YWNrMSh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDt1bmluaXRpYWxpemVkIHN0YWNrMlwmIzM0Oylcbi1fX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggOFwmIzM0OylcbiYjNDM7X19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2syPThcJiMzNDspXG4gX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoXCYjMzQ7aW52YWxpZCByZWFkIGZyb20gc3RhY2tcJiMzNDspXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2syKHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuaW5kZXggODM3MDdmYWVhMDQ5OS4uMGI0ODE1NjkyMGRmOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG5AQCAtMTAsNyAmIzQzOzEwLDcgQEBcbiBcbiBTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA4XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBzaW1wbGU9OFwmIzM0OylcbiBfX3hsYXRlZChcJiMzNDs0OiByNSA9IDVcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7NTogcjAgPSBcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7NjogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG5AQCAtOTYsNyAmIzQzOzk2LDcgQEAgX19uYWtlZCB2b2lkIGNhbmFyeV96ZXJvX3NwaWxscyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDE2XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCB3cm9uZ19yZWdfaW5fcGF0dGVybjE9MTZcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MTogKih1NjQgKikocjEwIC0xNikgPSByMVwmIzM0OylcbiBfX3hsYXRlZChcJiMzNDsuLi5cJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MzogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG5AQCAtNTk4LDcgJiM0Mzs1OTgsNyBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIHN1YnByb2dzX3VzZV9pbmRlcGVuZGVudF9vZmZzZXRzX2F1eCh2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDhcJiMzNDspXG4mIzQzO19fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsPThcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MjogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG4gX19zdWNjZXNzXG4gX19uYWtlZCB2b2lkIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsKHZvaWQpXG5AQCAtNjIwLDcgJiM0Mzs2MjAsNyBAQCBfX25ha2VkIHZvaWQgaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGwodm9pZClcbiBcbiBTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCAyNFwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggbWF5X2dvdG9faW50ZXJhY3Rpb25feDg2XzY0PTI0XCYjMzQ7KVxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXG4gX194bGF0ZWQoXCYjMzQ7MDogKih1NjQgKikocjEwIC0yNCkgPVwmIzM0OylcbiAvKiBtYXlfZ290byB0aW1lc3RhbXAgYXQgLTE2ICovXG5AQCAtNjYxLDcgJiM0Mzs2NjEsNyBAQCBfX25ha2VkIHZvaWQgbWF5X2dvdG9faW50ZXJhY3Rpb25feDg2XzY0KHZvaWQpXG4gU0VDKFwmIzM0O3Jhd190cFwmIzM0OylcbiBfX2FyY2hfYXJtNjRcbiBfX2FyY2hfcmlzY3Y2NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDI0XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBtYXlfZ290b19pbnRlcmFjdGlvbj0yNFwmIzM0OylcbiAvKiBtYXlfZ290byBjb3VudGVyIGF0IC0yNCAqL1xuIF9feGxhdGVkKFwmIzM0OzA6ICoodTY0ICopKHIxMCAtMjQpID1cJiMzNDspXG4gLyogbWF5X2dvdG8gdGltZXN0YW1wIGF0IC0xNiAqL1xuQEAgLTcwOCw3ICYjNDM7NzA4LDggQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBkdW1teV9sb29wX2NhbGxiYWNrKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3Jhd190cFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggMzImIzQzOzBcJiMzNDspXG4mIzQzO19fbG9nX2xldmVsKDQpXG4mIzQzO19fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMT0zMiBkdW1teV9sb29wX2NhbGxiYWNrPTBcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MjogcjEgPSAxXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzM6IHIwID1cJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7NDogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG5AQCAtNzU2LDcgJiM0Mzs3NTcsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjEodm9pZClcbiBcbiBTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA0MCYjNDM7MFwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggYnBmX2xvb3BfaW50ZXJhY3Rpb24yPTQwIGR1bW15X2xvb3BfY2FsbGJhY2s9MFwmIzM0OylcbiAvKiBjYWxsIGJwZl9nZXRfc21wX3Byb2Nlc3Nvcl9pZCAqL1xuIF9feGxhdGVkKFwmIzM0OzI6IHIxID0gNDJcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MzogcjAgPVwmIzM0OylcbkBAIC04MDAsNyAmIzQzOzgwMiw4IEBAIF9fbmFrZWQgaW50IGJwZl9sb29wX2ludGVyYWN0aW9uMih2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MCBtYXggNTEyXCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KVxuJiM0MztfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBjdW11bGF0aXZlX3N0YWNrX2RlcHRoPTUxMiBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2c9MCBtYXg9NTEyXCYjMzQ7KVxuIC8qIGp1c3QgdG8gcHJpbnQgeGxhdGVkIHZlcnNpb24gd2hlbiBkZWJ1Z2dpbmcgKi9cbiBfX3hsYXRlZChcJiMzNDtyMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwmIzM0OylcbiBfX3N1Y2Nlc3NcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuaW5kZXggYmI4MjA2ZTEwODgwYy4uNGE0YTVhODkxZjYyZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbkBAIC04Niw3ICYjNDM7ODYsOCBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZyh2b2lkKVxuIFNFQyhcJiMzNDtrcHJvYmVcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtQcml2YXRlIHN0YWNrLCBzdWJ0cmVlIFx1MDAzZSBNQVhfQlBGX1NUQUNLXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MzIgbWF4IDUxMlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19uZXN0ZWRfMT01MTIgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nPTMyIG1heD01MTJcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuIC8qIHByaXZhdGUgc3RhY2sgZnAgZm9yIHRoZSBtYWluIHByb2cgKi9cbiBfX2ppdGVkKFwmIzM0O1x0bW92YWJzcVx0JDB4e3suKn19LCAlcjlcJiMzNDspXG5AQCAtMzMxLDcgJiM0MzszMzIsOCBAQCBTRUMoXCYjMzQ7ZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtQcml2YXRlIHN0YWNrLCBhc3luYyBjYWxsYmFjaywgcG90ZW50aWFsIG5lc3RpbmdcJiMzNDspXG4gX19zdWNjZXNzIF9fcmV0dmFsKDApXG4gX19sb2FkX2lmX0pJVGVkKClcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA4JiM0MzswJiM0MzsyNTYmIzQzOzAgbWF4IDI3MlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19hc3luY19jYWxsYmFja18yPTggdGltZXJfY2IxPTAgc3VicHJvZzE9MjU2IHN1YnByb2cyPTAgbWF4PTI3MlwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19qaXRlZChcJiMzNDtcdHN1YnFcdCQweDEwMCwgJXJzcFwmIzM0OylcbiBfX2FyY2hfYXJtNjRcbkBAIC0zNTUsNyAmIzQzOzM1Nyw4IEBAIGludCBwcml2YXRlX3N0YWNrX2FzeW5jX2NhbGxiYWNrXzIodm9pZClcbiBTRUMoXCYjMzQ7ZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtwcml2YXRlIHN0YWNrLCBtYXggc3RhY2sgZGVwdGggaXMgcHJpdmF0ZSBzdGFja1wmIzM0OylcbiBfX3N1Y2Nlc3Ncbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA4JiM0MzsyNTYmIzQzOzAgbWF4IDI1NlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19tYXhfZGVwdGg9OCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjU2XCYjMzQ7KVxuIGludCBwcml2YXRlX3N0YWNrX21heF9kZXB0aCh2b2lkKVxuIHtcbiBcdGludCB4ID0gMDtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuY1xuaW5kZXggMjRjZDBhNzYzNjczMC4uN2ZiODFhOTU0ZWIxZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcbkBAIC0xOTgsNyAmIzQzOzE5OCw3IEBAIF9fc3VjY2Vzc1xuIC8qIENoZWNrIHRoYXQgdGhlIG1heGltdW0gc3RhY2sgZGVwdGggaXMgY29ycmVjdGx5IG1haW50YWluZWQgYWNjb3JkaW5nIHRvIHRoZVxuICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LlxuICAqL1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDE2XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBzdGFja193cml0ZV9wcml2X3ZzX3VucHJpdj0xNlwmIzM0OylcbiBfX2ZhaWx1cmVfdW5wcml2XG4gLyogVmFyaWFibGUgc3RhY2sgYWNjZXNzIGlzIHJlamVjdGVkIGZvciB1bnByaXZpbGVnZWQuXG4gICovXG5AQCAtMjM4LDcgJiM0MzsyMzgsNyBAQCBfX3N1Y2Nlc3NcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcbiAgKiBtYXhpbXVtIHBvc3NpYmxlIHZhcmlhYmxlIG9mZnNldC5cbiAgKi9cbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCAxNlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggc3RhY2tfd3JpdGVfZm9sbG93ZWRfYnlfcmVhZD0xNlwmIzM0OylcbiBfX2ZhaWx1cmVfdW5wcml2XG4gX19tc2dfdW5wcml2KFwmIzM0O1IyIHZhcmlhYmxlIHN0YWNrIGFjY2VzcyBwcm9oaWJpdGVkIGZvciAhcm9vdFwmIzM0OylcbiBfX3JldHZhbCgwKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jXG5pbmRleCBhOGFlMDNjNTdiYmFlLi42MWYwYjI5NTFiY2RhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xuQEAgLTEzMyw2ICYjNDM7MTMzLDcgQEAgc3RydWN0IGJwZl90ZXN0IHtcbiBcdGNvbnN0IGNoYXIgKmVycnN0cjtcbiBcdGNvbnN0IGNoYXIgKmVycnN0cl91bnByaXY7XG4gXHR1aW50MzJfdCBpbnNuX3Byb2Nlc3NlZDtcbiYjNDM7XHR1aW50MzJfdCBsb2dfbGV2ZWw7XG4gXHRpbnQgcHJvZ19sZW47XG4gXHRlbnVtIHtcbiBcdFx0VU5ERUYsXG5AQCAtMTU1OSw3ICYjNDM7MTU2MCw5IEBAIHN0YXRpYyB2b2lkIGRvX3Rlc3Rfc2luZ2xlKHN0cnVjdCBicGZfdGVzdCAqdGVzdCwgYm9vbCB1bnByaXYsXG4gXHRcdCAgICAgICB0ZXN0LVx1MDAzZWVycnN0cl91bnByaXYgOiB0ZXN0LVx1MDAzZWVycnN0cjtcbiBcbiBcdG9wdHMuZXhwZWN0ZWRfYXR0YWNoX3R5cGUgPSB0ZXN0LVx1MDAzZWV4cGVjdGVkX2F0dGFjaF90eXBlO1xuLVx0aWYgKGV4cGVjdGVkX3JldCA9PSBWRVJCT1NFX0FDQ0VQVClcbiYjNDM7XHRpZiAodGVzdC1cdTAwM2Vsb2dfbGV2ZWwpXG4mIzQzO1x0XHRvcHRzLmxvZ19sZXZlbCA9IHRlc3QtXHUwMDNlbG9nX2xldmVsO1xuJiM0MztcdGVsc2UgaWYgKGV4cGVjdGVkX3JldCA9PSBWRVJCT1NFX0FDQ0VQVClcbiBcdFx0b3B0cy5sb2dfbGV2ZWwgPSAyO1xuIFx0ZWxzZSBpZiAodmVyYm9zZSlcbiBcdFx0b3B0cy5sb2dfbGV2ZWwgPSB2ZXJpZl9sb2dfbGV2ZWwgfCA0OyAvKiBmb3JjZSBzdGF0cyAqL1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmNcbmluZGV4IDMwMmQ3MTJlMGQ3ZWQuLjFmN2NhMjcxZTA3YWYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmNcbkBAIC0xMDkxLDcgJiM0MzsxMDkxLDkgQEBcbiBcdC8qIHN0YWNrX21haW49MzIsIHN0YWNrX0E9MjU2LCBzdGFja19CPTY0XG4gXHQgKiBhbmQgbWF4KG1haW4mIzQzO0EsIG1haW4mIzQzO0EmIzQzO0IpIFx1MDAzYyA1MTJcbiBcdCAqL1xuLVx0LnJlc3VsdCA9IEFDQ0VQVCxcbiYjNDM7XHQucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsXG4mIzQzO1x0LmVycnN0ciA9IFwmIzM0O3N0YWNrIGRlcHRoIHN1YnByb2dbMF09MzIgc3VicHJvZ1sxXT0yNTYgc3VicHJvZ1syXT02NCBtYXg9MzUyXCYjMzQ7LFxuJiM0MztcdC5sb2dfbGV2ZWwgPSBERUZBVUxUX0xJQkJQRl9MT0dfTEVWRUwsXG4gfSxcbiB7XG4gXHRcJiMzNDtjYWxsczogc3RhY2sgZGVwdGggY2hlY2sgdXNpbmcgdGhyZWUgZnJhbWVzLiB0ZXN0MlwmIzM0OyxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaXN0YXQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5pbmRleCBjOWMyNTc3ODRlZTNkLi5mNDcwZTYzZGY0NDBlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5AQCAtOTk3LDkgJiM0Mzs5OTcsMTAgQEAgc3RhdGljIGNoYXIgdmVyaWZfbG9nX2J1Zls2NCAqIDEwMjRdO1xuIFxuIHN0YXRpYyBpbnQgcGFyc2VfdmVyaWZfbG9nKGNoYXIgKiBjb25zdCBidWYsIHNpemVfdCBidWZfc3osIHN0cnVjdCB2ZXJpZl9zdGF0cyAqcylcbiB7XG4tXHRjb25zdCBjaGFyICpjdXI7XG4tXHRpbnQgcG9zLCBsaW5lcywgc3ViX3N0YWNrLCBjbnQgPSAwO1xuLVx0Y2hhciAqc3RhdGUgPSBOVUxMLCAqdG9rZW4sIHN0YWNrWzUxMl07XG4mIzQzO1x0bG9uZyBzdGFja190b3RhbCwgc3ViX3N0YWNrO1xuJiM0MztcdGNvbnN0IGNoYXIgKmN1ciwgKnA7XG4mIzQzO1x0aW50IHBvcywgbGluZXM7XG4mIzQzO1x0Y2hhciAqZW5kO1xuIFxuIFx0YnVmW2J1Zl9zeiAtIDFdID0gJiMzOTtcXDAmIzM5OztcbiBcbkBAIC0xMDI1LDEzICYjNDM7MTAyNiwxOSBAQCBzdGF0aWMgaW50IHBhcnNlX3ZlcmlmX2xvZyhjaGFyICogY29uc3QgYnVmLCBzaXplX3QgYnVmX3N6LCBzdHJ1Y3QgdmVyaWZfc3RhdHMgKlxuIFx0XHRcdFx0XHUwMDI2cy1cdTAwM2VzdGF0c1tNQVJLX1JFQURfTUFYX0xFTl0pKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFxuLVx0XHRpZiAoMiA9PSBzc2NhbmYoY3VyLCBcJiMzNDtzdGFjayBkZXB0aCAlNTExcyBtYXggJWxkXCYjMzQ7LCBzdGFjaywgXHUwMDI2cy1cdTAwM2VzdGF0c1tNQVhfU1RBQ0tdKSlcbiYjNDM7XHRcdGlmIChzdHJuY21wKGN1ciwgXCYjMzQ7c3RhY2sgZGVwdGggXCYjMzQ7LCBzaXplb2YoXCYjMzQ7c3RhY2sgZGVwdGggXCYjMzQ7KSAtIDEpKVxuIFx0XHRcdGNvbnRpbnVlO1xuLVx0fVxuLVx0d2hpbGUgKCh0b2tlbiA9IHN0cnRva19yKGNudCYjNDM7JiM0MzsgPyBOVUxMIDogc3RhY2ssIFwmIzM0OyYjNDM7XCYjMzQ7LCBcdTAwMjZzdGF0ZSkpKSB7XG4tXHRcdGlmIChzc2NhbmYodG9rZW4sIFwmIzM0OyVkXCYjMzQ7LCBcdTAwMjZzdWJfc3RhY2spID09IDApXG4tXHRcdFx0YnJlYWs7XG4tXHRcdHMtXHUwMDNlc3RhdHNbU1RBQ0tdICYjNDM7PSBzdWJfc3RhY2s7XG4mIzQzO1xuJiM0MztcdFx0c3RhY2tfdG90YWwgPSAwO1xuJiM0MztcdFx0Zm9yIChwID0gY3VyICYjNDM7IHNpemVvZihcJiMzNDtzdGFjayBkZXB0aCBcJiMzNDspIC0gMTsgKHAgPSBzdHJjaHIocCwgJiMzOTs9JiMzOTspKTsgcCA9IGVuZCkge1xuJiM0MztcdFx0XHRzdWJfc3RhY2sgPSBzdHJ0b2wocCAmIzQzOyAxLCBcdTAwMjZlbmQsIDEwKTtcbiYjNDM7XHRcdFx0aWYgKCplbmQgPT0gJiMzOTtcXG4mIzM5Oykge1xuJiM0MztcdFx0XHRcdHMtXHUwMDNlc3RhdHNbU1RBQ0tdID0gc3RhY2tfdG90YWw7XG4mIzQzO1x0XHRcdFx0cy1cdTAwM2VzdGF0c1tNQVhfU1RBQ0tdID0gc3ViX3N0YWNrO1xuJiM0MztcdFx0XHRcdGJyZWFrO1xuJiM0MztcdFx0XHR9XG4mIzQzO1x0XHRcdHN0YWNrX3RvdGFsICYjNDM7PSBzdWJfc3RhY2s7XG4mIzQzO1x0XHR9XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTU6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gQXVnIDIgMTU6NTM6MTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKaW5kZXggOGQwNjM1ZWU0OGM3ZS4uNTFhYzBhOWFlMzM5NCAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtMTg3MDMsMTAgJiM0MzsxODcwMywxOCBAQCBzdGF0aWMgdm9pZCBwcmludF92ZXJpZmljYXRpb25fc3RhdHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudikKIAlpZiAoZW52LSZndDtsb2cubGV2ZWwgJmFtcDsgQlBGX0xPR19TVEFUUykgewogCQl2ZXJib3NlKGVudiwgJiMzNDt2ZXJpZmljYXRpb24gdGltZSAlbGxkIHVzZWNcbiYjMzQ7LAogCQkJZGl2X3U2NChlbnYtJmd0O3ZlcmlmaWNhdGlvbl90aW1lLCAxMDAwKSk7Ci0JCXZlcmJvc2UoZW52LCAmIzM0O3N0YWNrIGRlcHRoICVkJiMzNDssIGVudi0mZ3Q7c3VicHJvZ19pbmZvWzBdLnN0YWNrX2RlcHRoKTsKLQkJZm9yIChpID0gMTsgaSAmbHQ7IHN1YnByb2dfY250OyBpJiM0MzsmIzQzOykKLQkJCXZlcmJvc2UoZW52LCAmIzM0OyYjNDM7JWQmIzM0OywgZW52LSZndDtzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpOwotCQl2ZXJib3NlKGVudiwgJiMzNDsgbWF4ICVkXG4mIzM0OywgZW52LSZndDttYXhfc3RhY2tfZGVwdGgpOwomIzQzOwkJdmVyYm9zZShlbnYsICYjMzQ7c3RhY2sgZGVwdGgmIzM0Oyk7CiYjNDM7CQlmb3IgKGkgPSAwOyBpICZsdDsgc3VicHJvZ19jbnQ7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQkJY29uc3QgY2hhciAqbmFtZSA9IGVudi0mZ3Q7c3VicHJvZ19pbmZvW2ldLm5hbWU7CiYjNDM7CiYjNDM7CQkJaWYgKG5hbWUgJmFtcDsmYW1wOyBuYW1lWzBdKQomIzQzOwkJCQl2ZXJib3NlKGVudiwgJiMzNDsgJXM9JWQmIzM0OywgbmFtZSwKJiM0MzsJCQkJCWVudi0mZ3Q7c3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTsKJiM0MzsJCQllbHNlCiYjNDM7CQkJCXZlcmJvc2UoZW52LCAmIzM0OyBzdWJwcm9nWyVkXT0lZCYjMzQ7LCBpLAomIzQzOwkJCQkJZW52LSZndDtzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpOwomIzQzOwkJfQomIzQzOwkJdmVyYm9zZShlbnYsICYjMzQ7IG1heD0lZFxuJiMzNDssIGVudi0mZ3Q7bWF4X3N0YWNrX2RlcHRoKTsKIAkJdmVyYm9zZShlbnYsICYjMzQ7aW5zbnMgcHJvY2Vzc2VkICVkJiMzNDssIGVudi0mZ3Q7c3VicHJvZ19pbmZvWzBdLmluc25fcHJvY2Vzc2VkKTsKIAkJZm9yIChpID0gMTsgaSAmbHQ7IHN1YnByb2dfY250OyBpJiM0MzsmIzQzOykKIAkJCWlmIChicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpKSkKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKaW5kZXggZmI2MmUwOWYyMTE0Ni4uZjEzNWM0YjkzNDRiYyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKQEAgLTI3LDcgJiM0MzsyNyw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19vdXRfb2ZfYm91bmRzKHZvaWQpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3VuaW5pdGlhbGl6ZWQgc3RhY2sxJiMzNDspCi1fX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCA4JiMzNDspCiYjNDM7X19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggdW5pbml0aWFsaXplZF9zdGFjazE9OCYjMzQ7KQogX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoJiMzNDtpbnZhbGlkIHJlYWQgZnJvbSBzdGFjayYjMzQ7KQogX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpCiB7CkBAIC00NSw3ICYjNDM7NDUsNyBAQCBfX25ha2VkIHZvaWQgdW5pbml0aWFsaXplZF9zdGFjazEodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7dW5pbml0aWFsaXplZCBzdGFjazImIzM0OykKLV9fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDgmIzM0OykKJiM0MztfX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCB1bmluaXRpYWxpemVkX3N0YWNrMj04JiMzNDspCiBfX2ZhaWx1cmVfdW5wcml2IF9fbXNnX3VucHJpdigmIzM0O2ludmFsaWQgcmVhZCBmcm9tIHN0YWNrJiMzNDspCiBfX25ha2VkIHZvaWQgdW5pbml0aWFsaXplZF9zdGFjazIodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYwppbmRleCA4MzcwN2ZhZWEwNDk5Li4wYjQ4MTU2OTIwZGY4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jCkBAIC0xMCw3ICYjNDM7MTAsNyBAQAogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fYXJjaF94ODZfNjQKLV9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggOCYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggc2ltcGxlPTgmIzM0OykKIF9feGxhdGVkKCYjMzQ7NDogcjUgPSA1JiMzNDspCiBfX3hsYXRlZCgmIzM0OzU6IHIwID0gJiMzNDspCiBfX3hsYXRlZCgmIzM0OzY6IHIwID0gJmFtcDsodm9pZCBfX3BlcmNwdSAqKShyMCkmIzM0OykKQEAgLTk2LDcgJiM0Mzs5Niw3IEBAIF9fbmFrZWQgdm9pZCBjYW5hcnlfemVyb19zcGlsbHModm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDE2JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCB3cm9uZ19yZWdfaW5fcGF0dGVybjE9MTYmIzM0OykKIF9feGxhdGVkKCYjMzQ7MTogKih1NjQgKikocjEwIC0xNikgPSByMSYjMzQ7KQogX194bGF0ZWQoJiMzNDsuLi4mIzM0OykKIF9feGxhdGVkKCYjMzQ7MzogcjAgPSAmYW1wOyh2b2lkIF9fcGVyY3B1ICopKHIwKSYjMzQ7KQpAQCAtNTk4LDcgJiM0Mzs1OTgsNyBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIHN1YnByb2dzX3VzZV9pbmRlcGVuZGVudF9vZmZzZXRzX2F1eCh2b2lkKQogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fYXJjaF94ODZfNjQKLV9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggOCYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGw9OCYjMzQ7KQogX194bGF0ZWQoJiMzNDsyOiByMCA9ICZhbXA7KHZvaWQgX19wZXJjcHUgKikocjApJiMzNDspCiBfX3N1Y2Nlc3MKIF9fbmFrZWQgdm9pZCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbCh2b2lkKQpAQCAtNjIwLDcgJiM0Mzs2MjAsNyBAQCBfX25ha2VkIHZvaWQgaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGwodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDI0JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBtYXlfZ290b19pbnRlcmFjdGlvbl94ODZfNjQ9MjQmIzM0OykKIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovCiBfX3hsYXRlZCgmIzM0OzA6ICoodTY0ICopKHIxMCAtMjQpID0mIzM0OykKIC8qIG1heV9nb3RvIHRpbWVzdGFtcCBhdCAtMTYgKi8KQEAgLTY2MSw3ICYjNDM7NjYxLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKQogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfYXJtNjQKIF9fYXJjaF9yaXNjdjY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDI0JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBtYXlfZ290b19pbnRlcmFjdGlvbj0yNCYjMzQ7KQogLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi8KIF9feGxhdGVkKCYjMzQ7MDogKih1NjQgKikocjEwIC0yNCkgPSYjMzQ7KQogLyogbWF5X2dvdG8gdGltZXN0YW1wIGF0IC0xNiAqLwpAQCAtNzA4LDcgJiM0Mzs3MDgsOCBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIGR1bW15X2xvb3BfY2FsbGJhY2sodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDMyJiM0MzswJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMT0zMiBkdW1teV9sb29wX2NhbGxiYWNrPTAmIzM0OykKIF9feGxhdGVkKCYjMzQ7MjogcjEgPSAxJiMzNDspCiBfX3hsYXRlZCgmIzM0OzM6IHIwID0mIzM0OykKIF9feGxhdGVkKCYjMzQ7NDogcjAgPSAmYW1wOyh2b2lkIF9fcGVyY3B1ICopKHIwKSYjMzQ7KQpAQCAtNzU2LDcgJiM0Mzs3NTcsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjEodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDQwJiM0MzswJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMj00MCBkdW1teV9sb29wX2NhbGxiYWNrPTAmIzM0OykKIC8qIGNhbGwgYnBmX2dldF9zbXBfcHJvY2Vzc29yX2lkICovCiBfX3hsYXRlZCgmIzM0OzI6IHIxID0gNDImIzM0OykKIF9feGxhdGVkKCYjMzQ7MzogcjAgPSYjMzQ7KQpAQCAtODAwLDcgJiM0Mzs4MDIsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjIodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MCBtYXggNTEyJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGg9NTEyIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZz0wIG1heD01MTImIzM0OykKIC8qIGp1c3QgdG8gcHJpbnQgeGxhdGVkIHZlcnNpb24gd2hlbiBkZWJ1Z2dpbmcgKi8KIF9feGxhdGVkKCYjMzQ7cjAgPSAmYW1wOyh2b2lkIF9fcGVyY3B1ICopKHIwKSYjMzQ7KQogX19zdWNjZXNzCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYwppbmRleCBiYjgyMDZlMTA4ODBjLi40YTRhNWE4OTFmNjJmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMKQEAgLTg2LDcgJiM0Mzs4Niw4IEBAIF9fbmFrZWQgc3RhdGljIHZvaWQgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nKHZvaWQpCiBTRUMoJiMzNDtrcHJvYmUmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtQcml2YXRlIHN0YWNrLCBzdWJ0cmVlICZndDsgTUFYX0JQRl9TVEFDSyYjMzQ7KQogX19zdWNjZXNzCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MzIgbWF4IDUxMiYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDQpCiYjNDM7X19tc2coJiMzNDtzdGFjayBkZXB0aCBwcml2YXRlX3N0YWNrX25lc3RlZF8xPTUxMiBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2c9MzIgbWF4PTUxMiYjMzQ7KQogX19hcmNoX3g4Nl82NAogLyogcHJpdmF0ZSBzdGFjayBmcCBmb3IgdGhlIG1haW4gcHJvZyAqLwogX19qaXRlZCgmIzM0Owltb3ZhYnNxCSQweHt7Lip9fSwgJXI5JiMzNDspCkBAIC0zMzEsNyAmIzQzOzMzMiw4IEBAIFNFQygmIzM0O2ZlbnRyeS9icGZfZmVudHJ5X3Rlc3Q5JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7UHJpdmF0ZSBzdGFjaywgYXN5bmMgY2FsbGJhY2ssIHBvdGVudGlhbCBuZXN0aW5nJiMzNDspCiBfX3N1Y2Nlc3MgX19yZXR2YWwoMCkKIF9fbG9hZF9pZl9KSVRlZCgpCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDgmIzQzOzAmIzQzOzI1NiYjNDM7MCBtYXggMjcyJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIHByaXZhdGVfc3RhY2tfYXN5bmNfY2FsbGJhY2tfMj04IHRpbWVyX2NiMT0wIHN1YnByb2cxPTI1NiBzdWJwcm9nMj0wIG1heD0yNzImIzM0OykKIF9fYXJjaF94ODZfNjQKIF9faml0ZWQoJiMzNDsJc3VicQkkMHgxMDAsICVyc3AmIzM0OykKIF9fYXJjaF9hcm02NApAQCAtMzU1LDcgJiM0MzszNTcsOCBAQCBpbnQgcHJpdmF0ZV9zdGFja19hc3luY19jYWxsYmFja18yKHZvaWQpCiBTRUMoJiMzNDtmZW50cnkvYnBmX2ZlbnRyeV90ZXN0OSYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3ByaXZhdGUgc3RhY2ssIG1heCBzdGFjayBkZXB0aCBpcyBwcml2YXRlIHN0YWNrJiMzNDspCiBfX3N1Y2Nlc3MKLV9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggOCYjNDM7MjU2JiM0MzswIG1heCAyNTYmIzM0OykKJiM0MztfX2xvZ19sZXZlbCg0KQomIzQzO19fbXNnKCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19tYXhfZGVwdGg9OCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjU2JiMzNDspCiBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZCkKIHsKIAlpbnQgeCA9IDA7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuYwppbmRleCAyNGNkMGE3NjM2NzMwLi43ZmI4MWE5NTRlYjFmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmMKQEAgLTE5OCw3ICYjNDM7MTk4LDcgQEAgX19zdWNjZXNzCiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGUKICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LgogICovCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDE2JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBzdGFja193cml0ZV9wcml2X3ZzX3VucHJpdj0xNiYjMzQ7KQogX19mYWlsdXJlX3VucHJpdgogLyogVmFyaWFibGUgc3RhY2sgYWNjZXNzIGlzIHJlamVjdGVkIGZvciB1bnByaXZpbGVnZWQuCiAgKi8KQEAgLTIzOCw3ICYjNDM7MjM4LDcgQEAgX19zdWNjZXNzCiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGUKICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LgogICovCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDE2JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBzdGFja193cml0ZV9mb2xsb3dlZF9ieV9yZWFkPTE2JiMzNDspCiBfX2ZhaWx1cmVfdW5wcml2CiBfX21zZ191bnByaXYoJiMzNDtSMiB2YXJpYWJsZSBzdGFjayBhY2Nlc3MgcHJvaGliaXRlZCBmb3IgIXJvb3QmIzM0OykKIF9fcmV0dmFsKDApCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuYwppbmRleCBhOGFlMDNjNTdiYmFlLi42MWYwYjI5NTFiY2RhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMKQEAgLTEzMyw2ICYjNDM7MTMzLDcgQEAgc3RydWN0IGJwZl90ZXN0IHsKIAljb25zdCBjaGFyICplcnJzdHI7CiAJY29uc3QgY2hhciAqZXJyc3RyX3VucHJpdjsKIAl1aW50MzJfdCBpbnNuX3Byb2Nlc3NlZDsKJiM0MzsJdWludDMyX3QgbG9nX2xldmVsOwogCWludCBwcm9nX2xlbjsKIAllbnVtIHsKIAkJVU5ERUYsCkBAIC0xNTU5LDcgJiM0MzsxNTYwLDkgQEAgc3RhdGljIHZvaWQgZG9fdGVzdF9zaW5nbGUoc3RydWN0IGJwZl90ZXN0ICp0ZXN0LCBib29sIHVucHJpdiwKIAkJICAgICAgIHRlc3QtJmd0O2VycnN0cl91bnByaXYgOiB0ZXN0LSZndDtlcnJzdHI7CiAKIAlvcHRzLmV4cGVjdGVkX2F0dGFjaF90eXBlID0gdGVzdC0mZ3Q7ZXhwZWN0ZWRfYXR0YWNoX3R5cGU7Ci0JaWYgKGV4cGVjdGVkX3JldCA9PSBWRVJCT1NFX0FDQ0VQVCkKJiM0MzsJaWYgKHRlc3QtJmd0O2xvZ19sZXZlbCkKJiM0MzsJCW9wdHMubG9nX2xldmVsID0gdGVzdC0mZ3Q7bG9nX2xldmVsOwomIzQzOwllbHNlIGlmIChleHBlY3RlZF9yZXQgPT0gVkVSQk9TRV9BQ0NFUFQpCiAJCW9wdHMubG9nX2xldmVsID0gMjsKIAllbHNlIGlmICh2ZXJib3NlKQogCQlvcHRzLmxvZ19sZXZlbCA9IHZlcmlmX2xvZ19sZXZlbCB8IDQ7IC8qIGZvcmNlIHN0YXRzICovCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jCmluZGV4IDMwMmQ3MTJlMGQ3ZWQuLjFmN2NhMjcxZTA3YWYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jCkBAIC0xMDkxLDcgJiM0MzsxMDkxLDkgQEAKIAkvKiBzdGFja19tYWluPTMyLCBzdGFja19BPTI1Niwgc3RhY2tfQj02NAogCSAqIGFuZCBtYXgobWFpbiYjNDM7QSwgbWFpbiYjNDM7QSYjNDM7QikgJmx0OyA1MTIKIAkgKi8KLQkucmVzdWx0ID0gQUNDRVBULAomIzQzOwkucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsCiYjNDM7CS5lcnJzdHIgPSAmIzM0O3N0YWNrIGRlcHRoIHN1YnByb2dbMF09MzIgc3VicHJvZ1sxXT0yNTYgc3VicHJvZ1syXT02NCBtYXg9MzUyJiMzNDssCiYjNDM7CS5sb2dfbGV2ZWwgPSBERUZBVUxUX0xJQkJQRl9MT0dfTEVWRUwsCiB9LAogewogCSYjMzQ7Y2FsbHM6IHN0YWNrIGRlcHRoIGNoZWNrIHVzaW5nIHRocmVlIGZyYW1lcy4gdGVzdDImIzM0OywKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmMKaW5kZXggYzljMjU3Nzg0ZWUzZC4uZjQ3MGU2M2RmNDQwZSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmMKQEAgLTk5Nyw5ICYjNDM7OTk3LDEwIEBAIHN0YXRpYyBjaGFyIHZlcmlmX2xvZ19idWZbNjQgKiAxMDI0XTsKIAogc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpzKQogewotCWNvbnN0IGNoYXIgKmN1cjsKLQlpbnQgcG9zLCBsaW5lcywgc3ViX3N0YWNrLCBjbnQgPSAwOwotCWNoYXIgKnN0YXRlID0gTlVMTCwgKnRva2VuLCBzdGFja1s1MTJdOwomIzQzOwlsb25nIHN0YWNrX3RvdGFsLCBzdWJfc3RhY2s7CiYjNDM7CWNvbnN0IGNoYXIgKmN1ciwgKnA7CiYjNDM7CWludCBwb3MsIGxpbmVzOwomIzQzOwljaGFyICplbmQ7CiAKIAlidWZbYnVmX3N6IC0gMV0gPSAmIzM5O1wwJiMzOTs7CiAKQEAgLTEwMjUsMTMgJiM0MzsxMDI2LDE5IEBAIHN0YXRpYyBpbnQgcGFyc2VfdmVyaWZfbG9nKGNoYXIgKiBjb25zdCBidWYsIHNpemVfdCBidWZfc3osIHN0cnVjdCB2ZXJpZl9zdGF0cyAqCiAJCQkJJmFtcDtzLSZndDtzdGF0c1tNQVJLX1JFQURfTUFYX0xFTl0pKQogCQkJY29udGludWU7CiAKLQkJaWYgKDIgPT0gc3NjYW5mKGN1ciwgJiMzNDtzdGFjayBkZXB0aCAlNTExcyBtYXggJWxkJiMzNDssIHN0YWNrLCAmYW1wO3MtJmd0O3N0YXRzW01BWF9TVEFDS10pKQomIzQzOwkJaWYgKHN0cm5jbXAoY3VyLCAmIzM0O3N0YWNrIGRlcHRoICYjMzQ7LCBzaXplb2YoJiMzNDtzdGFjayBkZXB0aCAmIzM0OykgLSAxKSkKIAkJCWNvbnRpbnVlOwotCX0KLQl3aGlsZSAoKHRva2VuID0gc3RydG9rX3IoY250JiM0MzsmIzQzOyA/IE5VTEwgOiBzdGFjaywgJiMzNDsmIzQzOyYjMzQ7LCAmYW1wO3N0YXRlKSkpIHsKLQkJaWYgKHNzY2FuZih0b2tlbiwgJiMzNDslZCYjMzQ7LCAmYW1wO3N1Yl9zdGFjaykgPT0gMCkKLQkJCWJyZWFrOwotCQlzLSZndDtzdGF0c1tTVEFDS10gJiM0Mzs9IHN1Yl9zdGFjazsKJiM0MzsKJiM0MzsJCXN0YWNrX3RvdGFsID0gMDsKJiM0MzsJCWZvciAocCA9IGN1ciAmIzQzOyBzaXplb2YoJiMzNDtzdGFjayBkZXB0aCAmIzM0OykgLSAxOyAocCA9IHN0cmNocihwLCAmIzM5Oz0mIzM5OykpOyBwID0gZW5kKSB7CiYjNDM7CQkJc3ViX3N0YWNrID0gc3RydG9sKHAgJiM0MzsgMSwgJmFtcDtlbmQsIDEwKTsKJiM0MzsJCQlpZiAoKmVuZCA9PSAmIzM5O1xuJiMzOTspIHsKJiM0MzsJCQkJcy0mZ3Q7c3RhdHNbU1RBQ0tdID0gc3RhY2tfdG90YWw7CiYjNDM7CQkJCXMtJmd0O3N0YXRzW01BWF9TVEFDS10gPSBzdWJfc3RhY2s7CiYjNDM7CQkJCWJyZWFrOwomIzQzOwkJCX0KJiM0MzsJCQlzdGFja190b3RhbCAmIzQzOz0gc3ViX3N0YWNrOwomIzQzOwkJfQogCX0KIAlyZXR1cm4gMDsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTU6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjE4NwoJCQkJCQkJb3V0cHV0OiA4NQoJCQkJCQkJdGhvdWdodHM6IDY4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBWZXJpZmllciBMb2dnaW5nIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCBpdCYjMzk7cyBhIHN0cmFpZ2h0Zm9yd2FyZCBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBCUEYgdmVyaWZpZXIgcHJpbnRzIHZlcmlmaWNhdGlvbiBzdGF0cywgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gdGhlIHN0YWNrIGRlcHRoLiBJdCYjMzk7cyB0YXJnZXRpbmcgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyB0byBpbmNsdWRlIHN1YnByb2dyYW0gbmFtZXMgaW4gdGhlIG91dHB1dCBhbG9uZ3NpZGUgdGhlIHN0YWNrIGRlcHRoLCBpbnN0ZWFkIG9mIGp1c3QgYSBnZW5lcmljICYjMzQ7JiM0MzslZCYjMzQ7LiBUaGlzIHNlZW1zIGxpa2UgYSBwdXJlbHkgY29zbWV0aWMgZW5oYW5jZW1lbnQgdG8gdGhlIGxvZ2dpbmcuCgpJIGNhbiBzZWUgdGhhdCB0aGUgY2hhbmdlcyBpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYCBhcmUgY2xlYXJseSBmb2N1c2VkIG9uIHRoZSBgdmVyYm9zZSgpYCBvdXRwdXQuIEl0JiMzOTtzIG5vdyBnb2luZyB0byBwcmludCB0aGUgc3VicHJvZ3JhbSBuYW1lIGFuZCBpdHMgc3RhY2sgZGVwdGgsIGlmIGEgbmFtZSBleGlzdHMuIE90aGVyd2lzZSwgaXQgd2lsbCBwcmludCBzdWJwcm9nIGluZGV4LiBUaGUgY2hhbmdlIGlzIHNpbXBseSB0aGUgd2F5IHRoZSBkZXB0aCBpcyBwcmludGVkLgoKTm93LCBiYXNlZCBvbiB0aGUgaW5zdHJ1Y3Rpb25zLCBpZiB0aGUgcGF0Y2ggb25seSBpbmNsdWRlcyBkb2N1bWVudGF0aW9uLCBLY29uZmlnIG1vZGlmaWNhdGlvbnMsIGNvZGUgY29tbWVudCB1cGRhdGVzLCBvciB0aGVzZSBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIGNoYW5nZXMgKGxpa2UgYHByX2VycmAsIGBwcmludGtgLCBgdmVyYm9zZWApLCB0aGVuIGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4gVGhpcywgZnJvbSB0aGUgbG9vayBvZiB0aGUgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgY2hhbmdlLCBhcHBlYXJzIHRvIGJlIHRoZSBjYXNlLiBUaGUgYWN0dWFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSB2ZXJpZmllciBpc24mIzM5O3QgYWx0ZXJlZC4gVGhlIHBhdGNoIGp1c3QgbWFrZXMgdGhlIGxvZ3MgbW9yZSByZWFkYWJsZSBhbmQgaW5mb3JtYXRpdmUuCgpJJiMzOTttIGRvdWJsZS1jaGVja2luZyB0byBjb25maXJtIHRoYXQgdGhlcmUgYXJlICpubyogZnVuY3Rpb25hbCBjaGFuZ2VzIGhpZGRlbiBpbiB0aGUgcmVsYXRlZCBmaWxlcy4gSXQgc2VlbXMgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGFkYXB0cyB2YXJpb3VzIHNlbGZ0ZXN0czogVGhlIHNlbGZ0ZXN0cyBhbmQgYHZlcmlzdGF0LmNgIGFyZSBhbHNvIGJlaW5nIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgbmV3IGxvZyBmb3JtYXQuIEl0IGxvb2tzIGxpa2UgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmNgIGdldHMgc29tZSBgbG9nX2xldmVsYCBzZXR0aW5nIGFiaWxpdGllcyBhbmQgY2FsbHMuIEhvd2V2ZXIsIHRoYXQgc2VlbXMgcHVyZWx5IGZvciB0ZXN0IGNvbmZpZ3VyYXRpb24gYW5kIGRvZXNuJiMzOTt0IGNoYW5nZSBrZXJuZWwgZXhlY3V0aW9uLgoKVGhlIG1vZGlmaWNhdGlvbnMgaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy8qYCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jYCBhcmUgc2ltcGx5IHVwZGF0aW5nIGNoZWNrcyBhbmQgdXNpbmcgdGhlIG5ldyBsZXZlbCBzZXR0aW5ncy4gVGhpcyBmdXJ0aGVyIHJlaW5mb3JjZXMgdGhlIHBvaW50IHRoYXQgYWxsIHRoZSBjaGFuZ2VzIGFyZSBnZWFyZWQgdG93YXJkcyB0aGUgbmV3IGxvZyBmb3JtYXQgYW5kIHRlc3QgY29uZmlndXJhdGlvbiwgcmF0aGVyIHRoYW4gYW55IGNoYW5nZSB0byBob3cgQlBGIGNvZGUgaXMgYWN0dWFsbHkgKnZlcmlmaWVkKiBvciAqZXhlY3V0ZWQqLgoKU28sIGJhc2VkIG9uIHRoaXMgdGhvcm91Z2ggZXhhbWluYXRpb24sIEkmIzM5O20gY29uZmlkZW50IGluIGNvbmNsdWRpbmcgdGhhdCB0aGlzIHBhdGNoIGlzIGluZGVlZCBhIGRlY29yYXRpdmUgbG9nZ2luZyBjaGFuZ2UsIGFuZCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE1OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgbG9nZ2luZyBvdXRwdXQgZm9ybWF0IG9mIHRoZSBCUEYgdmVyaWZpZXIgc3RhdHMgKHNwZWNpZmljYWxseSBob3cgc3RhY2sgZGVwdGggaXMgcHJpbnRlZCkgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgc2VsZnRlc3RzIGFuZCB2ZXJpc3RhdCB0b29sIHRvIHBhcnNlIHRoZSBuZXcgZm9ybWF0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTU6NTM6MjAuODMxMDczODI1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTYyNzMyNTMxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgbG9nZ2luZyBvdXRwdXQgZm9ybWF0IG9mIHRoZSBCUEYgdmVyaWZpZXIgc3RhdHMgKHNwZWNpZmljYWxseSBob3cgc3RhY2sgZGVwdGggaXMgcHJpbnRlZCkgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgc2VsZnRlc3RzIGFuZCB2ZXJpc3RhdCB0b29sIHRvIHBhcnNlIHRoZSBuZXcgZm9ybWF0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE1OjUzOjIwLjgzMTA4NTUwNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY1NjUyMjUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDE1OjUzOjE5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDhkMDYzNWVlNDhjN2UuLjUxYWMwYTlhZTMzOTQgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTE4NzAzLDEwICsxODcwMywxOCBAQCBzdGF0aWMgdm9pZCBwcmludF92ZXJpZmljYXRpb25fc3RhdHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4gXFx0aWYgKGVudi1cXHUwMDNlbG9nLmxldmVsIFxcdTAwMjYgQlBGX0xPR19TVEFUUykge1xcbiBcXHRcXHR2ZXJib3NlKGVudiwgXFxcInZlcmlmaWNhdGlvbiB0aW1lICVsbGQgdXNlY1xcXFxuXFxcIixcXG4gXFx0XFx0XFx0ZGl2X3U2NChlbnYtXFx1MDAzZXZlcmlmaWNhdGlvbl90aW1lLCAxMDAwKSk7XFxuLVxcdFxcdHZlcmJvc2UoZW52LCBcXFwic3RhY2sgZGVwdGggJWRcXFwiLCBlbnYtXFx1MDAzZXN1YnByb2dfaW5mb1swXS5zdGFja19kZXB0aCk7XFxuLVxcdFxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBzdWJwcm9nX2NudDsgaSsrKVxcbi1cXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcIislZFxcXCIsIGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcXG4tXFx0XFx0dmVyYm9zZShlbnYsIFxcXCIgbWF4ICVkXFxcXG5cXFwiLCBlbnYtXFx1MDAzZW1heF9zdGFja19kZXB0aCk7XFxuK1xcdFxcdHZlcmJvc2UoZW52LCBcXFwic3RhY2sgZGVwdGhcXFwiKTtcXG4rXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHN1YnByb2dfY250OyBpKyspIHtcXG4rXFx0XFx0XFx0Y29uc3QgY2hhciAqbmFtZSA9IGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLm5hbWU7XFxuK1xcbitcXHRcXHRcXHRpZiAobmFtZSBcXHUwMDI2XFx1MDAyNiBuYW1lWzBdKVxcbitcXHRcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcIiAlcz0lZFxcXCIsIG5hbWUsXFxuK1xcdFxcdFxcdFxcdFxcdGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcXG4rXFx0XFx0XFx0ZWxzZVxcbitcXHRcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcIiBzdWJwcm9nWyVkXT0lZFxcXCIsIGksXFxuK1xcdFxcdFxcdFxcdFxcdGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcXG4rXFx0XFx0fVxcbitcXHRcXHR2ZXJib3NlKGVudiwgXFxcIiBtYXg9JWRcXFxcblxcXCIsIGVudi1cXHUwMDNlbWF4X3N0YWNrX2RlcHRoKTtcXG4gXFx0XFx0dmVyYm9zZShlbnYsIFxcXCJpbnNucyBwcm9jZXNzZWQgJWRcXFwiLCBlbnYtXFx1MDAzZXN1YnByb2dfaW5mb1swXS5pbnNuX3Byb2Nlc3NlZCk7XFxuIFxcdFxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBzdWJwcm9nX2NudDsgaSsrKVxcbiBcXHRcXHRcXHRpZiAoYnBmX3N1YnByb2dfaXNfZ2xvYmFsKGVudiwgaSkpXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcXG5pbmRleCBmYjYyZTA5ZjIxMTQ2Li5mMTM1YzRiOTM0NGJjIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcXG5AQCAtMjcsNyArMjcsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfb3V0X29mX2JvdW5kcyh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJ1bmluaXRpYWxpemVkIHN0YWNrMVxcXCIpXFxuLV9fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggOFxcXCIpXFxuK19fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggdW5pbml0aWFsaXplZF9zdGFjazE9OFxcXCIpXFxuIF9fZmFpbHVyZV91bnByaXYgX19tc2dfdW5wcml2KFxcXCJpbnZhbGlkIHJlYWQgZnJvbSBzdGFja1xcXCIpXFxuIF9fbmFrZWQgdm9pZCB1bmluaXRpYWxpemVkX3N0YWNrMSh2b2lkKVxcbiB7XFxuQEAgLTQ1LDcgKzQ1LDcgQEAgX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInVuaW5pdGlhbGl6ZWQgc3RhY2syXFxcIilcXG4tX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4XFxcIilcXG4rX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCB1bmluaXRpYWxpemVkX3N0YWNrMj04XFxcIilcXG4gX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoXFxcImludmFsaWQgcmVhZCBmcm9tIHN0YWNrXFxcIilcXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2syKHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXFxuaW5kZXggODM3MDdmYWVhMDQ5OS4uMGI0ODE1NjkyMGRmOCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG5AQCAtMTAsNyArMTAsNyBAQFxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4XFxcIilcXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIHNpbXBsZT04XFxcIilcXG4gX194bGF0ZWQoXFxcIjQ6IHI1ID0gNVxcXCIpXFxuIF9feGxhdGVkKFxcXCI1OiByMCA9IFxcXCIpXFxuIF9feGxhdGVkKFxcXCI2OiByMCA9IFxcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcXFwiKVxcbkBAIC05Niw3ICs5Niw3IEBAIF9fbmFrZWQgdm9pZCBjYW5hcnlfemVyb19zcGlsbHModm9pZClcXG4gXFxuIFNFQyhcXFwicmF3X3RwXFxcIilcXG4gX19hcmNoX3g4Nl82NFxcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggd3JvbmdfcmVnX2luX3BhdHRlcm4xPTE2XFxcIilcXG4gX194bGF0ZWQoXFxcIjE6ICoodTY0ICopKHIxMCAtMTYpID0gcjFcXFwiKVxcbiBfX3hsYXRlZChcXFwiLi4uXFxcIilcXG4gX194bGF0ZWQoXFxcIjM6IHIwID0gXFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVxcXCIpXFxuQEAgLTU5OCw3ICs1OTgsNyBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIHN1YnByb2dzX3VzZV9pbmRlcGVuZGVudF9vZmZzZXRzX2F1eCh2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4XFxcIilcXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsPThcXFwiKVxcbiBfX3hsYXRlZChcXFwiMjogcjAgPSBcXHUwMDI2KHZvaWQgX19wZXJjcHUgKikocjApXFxcIilcXG4gX19zdWNjZXNzXFxuIF9fbmFrZWQgdm9pZCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbCh2b2lkKVxcbkBAIC02MjAsNyArNjIwLDcgQEAgX19uYWtlZCB2b2lkIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsKHZvaWQpXFxuIFxcbiBTRUMoXFxcInJhd190cFxcXCIpXFxuIF9fYXJjaF94ODZfNjRcXG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIDI0XFxcIilcXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82ND0yNFxcXCIpXFxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXFxuIF9feGxhdGVkKFxcXCIwOiAqKHU2NCAqKShyMTAgLTI0KSA9XFxcIilcXG4gLyogbWF5X2dvdG8gdGltZXN0YW1wIGF0IC0xNiAqL1xcbkBAIC02NjEsNyArNjYxLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKVxcbiBTRUMoXFxcInJhd190cFxcXCIpXFxuIF9fYXJjaF9hcm02NFxcbiBfX2FyY2hfcmlzY3Y2NFxcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMjRcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggbWF5X2dvdG9faW50ZXJhY3Rpb249MjRcXFwiKVxcbiAvKiBtYXlfZ290byBjb3VudGVyIGF0IC0yNCAqL1xcbiBfX3hsYXRlZChcXFwiMDogKih1NjQgKikocjEwIC0yNCkgPVxcXCIpXFxuIC8qIG1heV9nb3RvIHRpbWVzdGFtcCBhdCAtMTYgKi9cXG5AQCAtNzA4LDcgKzcwOCw4IEBAIF9fbmFrZWQgc3RhdGljIHZvaWQgZHVtbXlfbG9vcF9jYWxsYmFjayh2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCAzMiswXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMT0zMiBkdW1teV9sb29wX2NhbGxiYWNrPTBcXFwiKVxcbiBfX3hsYXRlZChcXFwiMjogcjEgPSAxXFxcIilcXG4gX194bGF0ZWQoXFxcIjM6IHIwID1cXFwiKVxcbiBfX3hsYXRlZChcXFwiNDogcjAgPSBcXHUwMDI2KHZvaWQgX19wZXJjcHUgKikocjApXFxcIilcXG5AQCAtNzU2LDcgKzc1Nyw4IEBAIF9fbmFrZWQgaW50IGJwZl9sb29wX2ludGVyYWN0aW9uMSh2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA0MCswXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMj00MCBkdW1teV9sb29wX2NhbGxiYWNrPTBcXFwiKVxcbiAvKiBjYWxsIGJwZl9nZXRfc21wX3Byb2Nlc3Nvcl9pZCAqL1xcbiBfX3hsYXRlZChcXFwiMjogcjEgPSA0MlxcXCIpXFxuIF9feGxhdGVkKFxcXCIzOiByMCA9XFxcIilcXG5AQCAtODAwLDcgKzgwMiw4IEBAIF9fbmFrZWQgaW50IGJwZl9sb29wX2ludGVyYWN0aW9uMih2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA1MTIrMCBtYXggNTEyXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGg9NTEyIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZz0wIG1heD01MTJcXFwiKVxcbiAvKiBqdXN0IHRvIHByaW50IHhsYXRlZCB2ZXJzaW9uIHdoZW4gZGVidWdnaW5nICovXFxuIF9feGxhdGVkKFxcXCJyMCA9IFxcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcXFwiKVxcbiBfX3N1Y2Nlc3NcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcXG5pbmRleCBiYjgyMDZlMTA4ODBjLi40YTRhNWE4OTFmNjJmIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXFxuQEAgLTg2LDcgKzg2LDggQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2codm9pZClcXG4gU0VDKFxcXCJrcHJvYmVcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJQcml2YXRlIHN0YWNrLCBzdWJ0cmVlIFxcdTAwM2UgTUFYX0JQRl9TVEFDS1xcXCIpXFxuIF9fc3VjY2Vzc1xcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggNTEyKzMyIG1heCA1MTJcXFwiKVxcbitfX2xvZ19sZXZlbCg0KVxcbitfX21zZyhcXFwic3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19uZXN0ZWRfMT01MTIgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nPTMyIG1heD01MTJcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIC8qIHByaXZhdGUgc3RhY2sgZnAgZm9yIHRoZSBtYWluIHByb2cgKi9cXG4gX19qaXRlZChcXFwiXFx0bW92YWJzcVxcdCQweHt7Lip9fSwgJXI5XFxcIilcXG5AQCAtMzMxLDcgKzMzMiw4IEBAIFNFQyhcXFwiZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJQcml2YXRlIHN0YWNrLCBhc3luYyBjYWxsYmFjaywgcG90ZW50aWFsIG5lc3RpbmdcXFwiKVxcbiBfX3N1Y2Nlc3MgX19yZXR2YWwoMClcXG4gX19sb2FkX2lmX0pJVGVkKClcXG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIDgrMCsyNTYrMCBtYXggMjcyXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIHByaXZhdGVfc3RhY2tfYXN5bmNfY2FsbGJhY2tfMj04IHRpbWVyX2NiMT0wIHN1YnByb2cxPTI1NiBzdWJwcm9nMj0wIG1heD0yNzJcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9faml0ZWQoXFxcIlxcdHN1YnFcXHQkMHgxMDAsICVyc3BcXFwiKVxcbiBfX2FyY2hfYXJtNjRcXG5AQCAtMzU1LDcgKzM1Nyw4IEBAIGludCBwcml2YXRlX3N0YWNrX2FzeW5jX2NhbGxiYWNrXzIodm9pZClcXG4gU0VDKFxcXCJmZW50cnkvYnBmX2ZlbnRyeV90ZXN0OVxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInByaXZhdGUgc3RhY2ssIG1heCBzdGFjayBkZXB0aCBpcyBwcml2YXRlIHN0YWNrXFxcIilcXG4gX19zdWNjZXNzXFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4KzI1NiswIG1heCAyNTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KVxcbitfX21zZyhcXFwic3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19tYXhfZGVwdGg9OCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjU2XFxcIilcXG4gaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXFxuIHtcXG4gXFx0aW50IHggPSAwO1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuY1xcbmluZGV4IDI0Y2QwYTc2MzY3MzAuLjdmYjgxYTk1NGViMWYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcXG5AQCAtMTk4LDcgKzE5OCw3IEBAIF9fc3VjY2Vzc1xcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcXG4gICogbWF4aW11bSBwb3NzaWJsZSB2YXJpYWJsZSBvZmZzZXQuXFxuICAqL1xcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggc3RhY2tfd3JpdGVfcHJpdl92c191bnByaXY9MTZcXFwiKVxcbiBfX2ZhaWx1cmVfdW5wcml2XFxuIC8qIFZhcmlhYmxlIHN0YWNrIGFjY2VzcyBpcyByZWplY3RlZCBmb3IgdW5wcml2aWxlZ2VkLlxcbiAgKi9cXG5AQCAtMjM4LDcgKzIzOCw3IEBAIF9fc3VjY2Vzc1xcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcXG4gICogbWF4aW11bSBwb3NzaWJsZSB2YXJpYWJsZSBvZmZzZXQuXFxuICAqL1xcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggc3RhY2tfd3JpdGVfZm9sbG93ZWRfYnlfcmVhZD0xNlxcXCIpXFxuIF9fZmFpbHVyZV91bnByaXZcXG4gX19tc2dfdW5wcml2KFxcXCJSMiB2YXJpYWJsZSBzdGFjayBhY2Nlc3MgcHJvaGliaXRlZCBmb3IgIXJvb3RcXFwiKVxcbiBfX3JldHZhbCgwKVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xcbmluZGV4IGE4YWUwM2M1N2JiYWUuLjYxZjBiMjk1MWJjZGEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmNcXG5AQCAtMTMzLDYgKzEzMyw3IEBAIHN0cnVjdCBicGZfdGVzdCB7XFxuIFxcdGNvbnN0IGNoYXIgKmVycnN0cjtcXG4gXFx0Y29uc3QgY2hhciAqZXJyc3RyX3VucHJpdjtcXG4gXFx0dWludDMyX3QgaW5zbl9wcm9jZXNzZWQ7XFxuK1xcdHVpbnQzMl90IGxvZ19sZXZlbDtcXG4gXFx0aW50IHByb2dfbGVuO1xcbiBcXHRlbnVtIHtcXG4gXFx0XFx0VU5ERUYsXFxuQEAgLTE1NTksNyArMTU2MCw5IEBAIHN0YXRpYyB2b2lkIGRvX3Rlc3Rfc2luZ2xlKHN0cnVjdCBicGZfdGVzdCAqdGVzdCwgYm9vbCB1bnByaXYsXFxuIFxcdFxcdCAgICAgICB0ZXN0LVxcdTAwM2VlcnJzdHJfdW5wcml2IDogdGVzdC1cXHUwMDNlZXJyc3RyO1xcbiBcXG4gXFx0b3B0cy5leHBlY3RlZF9hdHRhY2hfdHlwZSA9IHRlc3QtXFx1MDAzZWV4cGVjdGVkX2F0dGFjaF90eXBlO1xcbi1cXHRpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxcbitcXHRpZiAodGVzdC1cXHUwMDNlbG9nX2xldmVsKVxcbitcXHRcXHRvcHRzLmxvZ19sZXZlbCA9IHRlc3QtXFx1MDAzZWxvZ19sZXZlbDtcXG4rXFx0ZWxzZSBpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxcbiBcXHRcXHRvcHRzLmxvZ19sZXZlbCA9IDI7XFxuIFxcdGVsc2UgaWYgKHZlcmJvc2UpXFxuIFxcdFxcdG9wdHMubG9nX2xldmVsID0gdmVyaWZfbG9nX2xldmVsIHwgNDsgLyogZm9yY2Ugc3RhdHMgKi9cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xcbmluZGV4IDMwMmQ3MTJlMGQ3ZWQuLjFmN2NhMjcxZTA3YWYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xcbkBAIC0xMDkxLDcgKzEwOTEsOSBAQFxcbiBcXHQvKiBzdGFja19tYWluPTMyLCBzdGFja19BPTI1Niwgc3RhY2tfQj02NFxcbiBcXHQgKiBhbmQgbWF4KG1haW4rQSwgbWFpbitBK0IpIFxcdTAwM2MgNTEyXFxuIFxcdCAqL1xcbi1cXHQucmVzdWx0ID0gQUNDRVBULFxcbitcXHQucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsXFxuK1xcdC5lcnJzdHIgPSBcXFwic3RhY2sgZGVwdGggc3VicHJvZ1swXT0zMiBzdWJwcm9nWzFdPTI1NiBzdWJwcm9nWzJdPTY0IG1heD0zNTJcXFwiLFxcbitcXHQubG9nX2xldmVsID0gREVGQVVMVF9MSUJCUEZfTE9HX0xFVkVMLFxcbiB9LFxcbiB7XFxuIFxcdFxcXCJjYWxsczogc3RhY2sgZGVwdGggY2hlY2sgdXNpbmcgdGhyZWUgZnJhbWVzLiB0ZXN0MlxcXCIsXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcXG5pbmRleCBjOWMyNTc3ODRlZTNkLi5mNDcwZTYzZGY0NDBlIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcXG5AQCAtOTk3LDkgKzk5NywxMCBAQCBzdGF0aWMgY2hhciB2ZXJpZl9sb2dfYnVmWzY0ICogMTAyNF07XFxuIFxcbiBzdGF0aWMgaW50IHBhcnNlX3ZlcmlmX2xvZyhjaGFyICogY29uc3QgYnVmLCBzaXplX3QgYnVmX3N6LCBzdHJ1Y3QgdmVyaWZfc3RhdHMgKnMpXFxuIHtcXG4tXFx0Y29uc3QgY2hhciAqY3VyO1xcbi1cXHRpbnQgcG9zLCBsaW5lcywgc3ViX3N0YWNrLCBjbnQgPSAwO1xcbi1cXHRjaGFyICpzdGF0ZSA9IE5VTEwsICp0b2tlbiwgc3RhY2tbNTEyXTtcXG4rXFx0bG9uZyBzdGFja190b3RhbCwgc3ViX3N0YWNrO1xcbitcXHRjb25zdCBjaGFyICpjdXIsICpwO1xcbitcXHRpbnQgcG9zLCBsaW5lcztcXG4rXFx0Y2hhciAqZW5kO1xcbiBcXG4gXFx0YnVmW2J1Zl9zeiAtIDFdID0gJ1xcXFwwJztcXG4gXFxuQEAgLTEwMjUsMTMgKzEwMjYsMTkgQEAgc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpcXG4gXFx0XFx0XFx0XFx0XFx1MDAyNnMtXFx1MDAzZXN0YXRzW01BUktfUkVBRF9NQVhfTEVOXSkpXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXG4tXFx0XFx0aWYgKDIgPT0gc3NjYW5mKGN1ciwgXFxcInN0YWNrIGRlcHRoICU1MTFzIG1heCAlbGRcXFwiLCBzdGFjaywgXFx1MDAyNnMtXFx1MDAzZXN0YXRzW01BWF9TVEFDS10pKVxcbitcXHRcXHRpZiAoc3RybmNtcChjdXIsIFxcXCJzdGFjayBkZXB0aCBcXFwiLCBzaXplb2YoXFxcInN0YWNrIGRlcHRoIFxcXCIpIC0gMSkpXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbi1cXHR9XFxuLVxcdHdoaWxlICgodG9rZW4gPSBzdHJ0b2tfcihjbnQrKyA/IE5VTEwgOiBzdGFjaywgXFxcIitcXFwiLCBcXHUwMDI2c3RhdGUpKSkge1xcbi1cXHRcXHRpZiAoc3NjYW5mKHRva2VuLCBcXFwiJWRcXFwiLCBcXHUwMDI2c3ViX3N0YWNrKSA9PSAwKVxcbi1cXHRcXHRcXHRicmVhaztcXG4tXFx0XFx0cy1cXHUwMDNlc3RhdHNbU1RBQ0tdICs9IHN1Yl9zdGFjaztcXG4rXFxuK1xcdFxcdHN0YWNrX3RvdGFsID0gMDtcXG4rXFx0XFx0Zm9yIChwID0gY3VyICsgc2l6ZW9mKFxcXCJzdGFjayBkZXB0aCBcXFwiKSAtIDE7IChwID0gc3RyY2hyKHAsICc9JykpOyBwID0gZW5kKSB7XFxuK1xcdFxcdFxcdHN1Yl9zdGFjayA9IHN0cnRvbChwICsgMSwgXFx1MDAyNmVuZCwgMTApO1xcbitcXHRcXHRcXHRpZiAoKmVuZCA9PSAnXFxcXG4nKSB7XFxuK1xcdFxcdFxcdFxcdHMtXFx1MDAzZXN0YXRzW1NUQUNLXSA9IHN0YWNrX3RvdGFsO1xcbitcXHRcXHRcXHRcXHRzLVxcdTAwM2VzdGF0c1tNQVhfU1RBQ0tdID0gc3ViX3N0YWNrO1xcbitcXHRcXHRcXHRcXHRicmVhaztcXG4rXFx0XFx0XFx0fVxcbitcXHRcXHRcXHRzdGFja190b3RhbCArPSBzdWJfc3RhY2s7XFxuK1xcdFxcdH1cXG4gXFx0fVxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxNTo1MzoyMS4yOTcyOTU1NjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo5MTYxMDk1NDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBsb2dnaW5nIG91dHB1dCBmb3JtYXQgb2YgdGhlIEJQRiB2ZXJpZmllciBzdGF0cyAoc3BlY2lmaWNhbGx5IGhvdyBzdGFjayBkZXB0aCBpcyBwcmludGVkKSBhbmQgdXBkYXRlcyB0aGUgY29ycmVzcG9uZGluZyBzZWxmdGVzdHMgYW5kIHZlcmlzdGF0IHRvb2wgdG8gcGFyc2UgdGhlIG5ldyBmb3JtYXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMTU6NTM6MTkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDhkMDYzNWVlNDhjN2UuLjUxYWMwYTlhZTMzOTQgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTE4NzAzLDEwICsxODcwMywxOCBAQCBzdGF0aWMgdm9pZCBwcmludF92ZXJpZmljYXRpb25fc3RhdHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbiBcdGlmIChlbnYtXHUwMDNlbG9nLmxldmVsIFx1MDAyNiBCUEZfTE9HX1NUQVRTKSB7XG4gXHRcdHZlcmJvc2UoZW52LCBcInZlcmlmaWNhdGlvbiB0aW1lICVsbGQgdXNlY1xcblwiLFxuIFx0XHRcdGRpdl91NjQoZW52LVx1MDAzZXZlcmlmaWNhdGlvbl90aW1lLCAxMDAwKSk7XG4tXHRcdHZlcmJvc2UoZW52LCBcInN0YWNrIGRlcHRoICVkXCIsIGVudi1cdTAwM2VzdWJwcm9nX2luZm9bMF0uc3RhY2tfZGVwdGgpO1xuLVx0XHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBzdWJwcm9nX2NudDsgaSsrKVxuLVx0XHRcdHZlcmJvc2UoZW52LCBcIislZFwiLCBlbnYtXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcbi1cdFx0dmVyYm9zZShlbnYsIFwiIG1heCAlZFxcblwiLCBlbnYtXHUwMDNlbWF4X3N0YWNrX2RlcHRoKTtcbitcdFx0dmVyYm9zZShlbnYsIFwic3RhY2sgZGVwdGhcIik7XG4rXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHN1YnByb2dfY250OyBpKyspIHtcbitcdFx0XHRjb25zdCBjaGFyICpuYW1lID0gZW52LVx1MDAzZXN1YnByb2dfaW5mb1tpXS5uYW1lO1xuK1xuK1x0XHRcdGlmIChuYW1lIFx1MDAyNlx1MDAyNiBuYW1lWzBdKVxuK1x0XHRcdFx0dmVyYm9zZShlbnYsIFwiICVzPSVkXCIsIG5hbWUsXG4rXHRcdFx0XHRcdGVudi1cdTAwM2VzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpO1xuK1x0XHRcdGVsc2VcbitcdFx0XHRcdHZlcmJvc2UoZW52LCBcIiBzdWJwcm9nWyVkXT0lZFwiLCBpLFxuK1x0XHRcdFx0XHRlbnYtXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcbitcdFx0fVxuK1x0XHR2ZXJib3NlKGVudiwgXCIgbWF4PSVkXFxuXCIsIGVudi1cdTAwM2VtYXhfc3RhY2tfZGVwdGgpO1xuIFx0XHR2ZXJib3NlKGVudiwgXCJpbnNucyBwcm9jZXNzZWQgJWRcIiwgZW52LVx1MDAzZXN1YnByb2dfaW5mb1swXS5pbnNuX3Byb2Nlc3NlZCk7XG4gXHRcdGZvciAoaSA9IDE7IGkgXHUwMDNjIHN1YnByb2dfY250OyBpKyspXG4gXHRcdFx0aWYgKGJwZl9zdWJwcm9nX2lzX2dsb2JhbChlbnYsIGkpKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbmluZGV4IGZiNjJlMDlmMjExNDYuLmYxMzVjNGI5MzQ0YmMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbkBAIC0yNyw3ICsyNyw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19vdXRfb2ZfYm91bmRzKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInVuaW5pdGlhbGl6ZWQgc3RhY2sxXCIpXG4tX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggOFwiKVxuK19fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2sxPThcIilcbiBfX2ZhaWx1cmVfdW5wcml2IF9fbXNnX3VucHJpdihcImludmFsaWQgcmVhZCBmcm9tIHN0YWNrXCIpXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXG4ge1xuQEAgLTQ1LDcgKzQ1LDcgQEAgX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInVuaW5pdGlhbGl6ZWQgc3RhY2syXCIpXG4tX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggOFwiKVxuK19fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2syPThcIilcbiBfX2ZhaWx1cmVfdW5wcml2IF9fbXNnX3VucHJpdihcImludmFsaWQgcmVhZCBmcm9tIHN0YWNrXCIpXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2syKHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuaW5kZXggODM3MDdmYWVhMDQ5OS4uMGI0ODE1NjkyMGRmOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG5AQCAtMTAsNyArMTAsNyBAQFxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDhcIilcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHNpbXBsZT04XCIpXG4gX194bGF0ZWQoXCI0OiByNSA9IDVcIilcbiBfX3hsYXRlZChcIjU6IHIwID0gXCIpXG4gX194bGF0ZWQoXCI2OiByMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuQEAgLTk2LDcgKzk2LDcgQEAgX19uYWtlZCB2b2lkIGNhbmFyeV96ZXJvX3NwaWxscyh2b2lkKVxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDE2XCIpXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCB3cm9uZ19yZWdfaW5fcGF0dGVybjE9MTZcIilcbiBfX3hsYXRlZChcIjE6ICoodTY0ICopKHIxMCAtMTYpID0gcjFcIilcbiBfX3hsYXRlZChcIi4uLlwiKVxuIF9feGxhdGVkKFwiMzogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcIilcbkBAIC01OTgsNyArNTk4LDcgQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBzdWJwcm9nc191c2VfaW5kZXBlbmRlbnRfb2Zmc2V0c19hdXgodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA4XCIpXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbD04XCIpXG4gX194bGF0ZWQoXCIyOiByMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuIF9fc3VjY2Vzc1xuIF9fbmFrZWQgdm9pZCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbCh2b2lkKVxuQEAgLTYyMCw3ICs2MjAsNyBAQCBfX25ha2VkIHZvaWQgaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGwodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCAyNFwiKVxuK19fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggbWF5X2dvdG9faW50ZXJhY3Rpb25feDg2XzY0PTI0XCIpXG4gLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi9cbiBfX3hsYXRlZChcIjA6ICoodTY0ICopKHIxMCAtMjQpID1cIilcbiAvKiBtYXlfZ290byB0aW1lc3RhbXAgYXQgLTE2ICovXG5AQCAtNjYxLDcgKzY2MSw3IEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbl94ODZfNjQodm9pZClcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfYXJtNjRcbiBfX2FyY2hfcmlzY3Y2NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggMjRcIilcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIG1heV9nb3RvX2ludGVyYWN0aW9uPTI0XCIpXG4gLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi9cbiBfX3hsYXRlZChcIjA6ICoodTY0ICopKHIxMCAtMjQpID1cIilcbiAvKiBtYXlfZ290byB0aW1lc3RhbXAgYXQgLTE2ICovXG5AQCAtNzA4LDcgKzcwOCw4IEBAIF9fbmFrZWQgc3RhdGljIHZvaWQgZHVtbXlfbG9vcF9jYWxsYmFjayh2b2lkKVxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDMyKzBcIilcbitfX2xvZ19sZXZlbCg0KVxuK19fbXNnKFwic3RhY2sgZGVwdGggYnBmX2xvb3BfaW50ZXJhY3Rpb24xPTMyIGR1bW15X2xvb3BfY2FsbGJhY2s9MFwiKVxuIF9feGxhdGVkKFwiMjogcjEgPSAxXCIpXG4gX194bGF0ZWQoXCIzOiByMCA9XCIpXG4gX194bGF0ZWQoXCI0OiByMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuQEAgLTc1Niw3ICs3NTcsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjEodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA0MCswXCIpXG4rX19sb2dfbGV2ZWwoNClcbitfX21zZyhcInN0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMj00MCBkdW1teV9sb29wX2NhbGxiYWNrPTBcIilcbiAvKiBjYWxsIGJwZl9nZXRfc21wX3Byb2Nlc3Nvcl9pZCAqL1xuIF9feGxhdGVkKFwiMjogcjEgPSA0MlwiKVxuIF9feGxhdGVkKFwiMzogcjAgPVwiKVxuQEAgLTgwMCw3ICs4MDIsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjIodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA1MTIrMCBtYXggNTEyXCIpXG4rX19sb2dfbGV2ZWwoNClcbitfX21zZyhcInN0YWNrIGRlcHRoIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGg9NTEyIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZz0wIG1heD01MTJcIilcbiAvKiBqdXN0IHRvIHByaW50IHhsYXRlZCB2ZXJzaW9uIHdoZW4gZGVidWdnaW5nICovXG4gX194bGF0ZWQoXCJyMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuIF9fc3VjY2Vzc1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG5pbmRleCBiYjgyMDZlMTA4ODBjLi40YTRhNWE4OTFmNjJmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuQEAgLTg2LDcgKzg2LDggQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2codm9pZClcbiBTRUMoXCJrcHJvYmVcIilcbiBfX2Rlc2NyaXB0aW9uKFwiUHJpdmF0ZSBzdGFjaywgc3VidHJlZSBcdTAwM2UgTUFYX0JQRl9TVEFDS1wiKVxuIF9fc3VjY2Vzc1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggNTEyKzMyIG1heCA1MTJcIilcbitfX2xvZ19sZXZlbCg0KVxuK19fbXNnKFwic3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19uZXN0ZWRfMT01MTIgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nPTMyIG1heD01MTJcIilcbiBfX2FyY2hfeDg2XzY0XG4gLyogcHJpdmF0ZSBzdGFjayBmcCBmb3IgdGhlIG1haW4gcHJvZyAqL1xuIF9faml0ZWQoXCJcdG1vdmFic3FcdCQweHt7Lip9fSwgJXI5XCIpXG5AQCAtMzMxLDcgKzMzMiw4IEBAIFNFQyhcImZlbnRyeS9icGZfZmVudHJ5X3Rlc3Q5XCIpXG4gX19kZXNjcmlwdGlvbihcIlByaXZhdGUgc3RhY2ssIGFzeW5jIGNhbGxiYWNrLCBwb3RlbnRpYWwgbmVzdGluZ1wiKVxuIF9fc3VjY2VzcyBfX3JldHZhbCgwKVxuIF9fbG9hZF9pZl9KSVRlZCgpXG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA4KzArMjU2KzAgbWF4IDI3MlwiKVxuK19fbG9nX2xldmVsKDQpXG4rX19tc2coXCJzdGFjayBkZXB0aCBwcml2YXRlX3N0YWNrX2FzeW5jX2NhbGxiYWNrXzI9OCB0aW1lcl9jYjE9MCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjcyXCIpXG4gX19hcmNoX3g4Nl82NFxuIF9faml0ZWQoXCJcdHN1YnFcdCQweDEwMCwgJXJzcFwiKVxuIF9fYXJjaF9hcm02NFxuQEAgLTM1NSw3ICszNTcsOCBAQCBpbnQgcHJpdmF0ZV9zdGFja19hc3luY19jYWxsYmFja18yKHZvaWQpXG4gU0VDKFwiZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcIilcbiBfX2Rlc2NyaXB0aW9uKFwicHJpdmF0ZSBzdGFjaywgbWF4IHN0YWNrIGRlcHRoIGlzIHByaXZhdGUgc3RhY2tcIilcbiBfX3N1Y2Nlc3Ncbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDgrMjU2KzAgbWF4IDI1NlwiKVxuK19fbG9nX2xldmVsKDQpXG4rX19tc2coXCJzdGFjayBkZXB0aCBwcml2YXRlX3N0YWNrX21heF9kZXB0aD04IHN1YnByb2cxPTI1NiBzdWJwcm9nMj0wIG1heD0yNTZcIilcbiBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZClcbiB7XG4gXHRpbnQgeCA9IDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcbmluZGV4IDI0Y2QwYTc2MzY3MzAuLjdmYjgxYTk1NGViMWYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jXG5AQCAtMTk4LDcgKzE5OCw3IEBAIF9fc3VjY2Vzc1xuIC8qIENoZWNrIHRoYXQgdGhlIG1heGltdW0gc3RhY2sgZGVwdGggaXMgY29ycmVjdGx5IG1haW50YWluZWQgYWNjb3JkaW5nIHRvIHRoZVxuICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LlxuICAqL1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggMTZcIilcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHN0YWNrX3dyaXRlX3ByaXZfdnNfdW5wcml2PTE2XCIpXG4gX19mYWlsdXJlX3VucHJpdlxuIC8qIFZhcmlhYmxlIHN0YWNrIGFjY2VzcyBpcyByZWplY3RlZCBmb3IgdW5wcml2aWxlZ2VkLlxuICAqL1xuQEAgLTIzOCw3ICsyMzgsNyBAQCBfX3N1Y2Nlc3NcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcbiAgKiBtYXhpbXVtIHBvc3NpYmxlIHZhcmlhYmxlIG9mZnNldC5cbiAgKi9cbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDE2XCIpXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCBzdGFja193cml0ZV9mb2xsb3dlZF9ieV9yZWFkPTE2XCIpXG4gX19mYWlsdXJlX3VucHJpdlxuIF9fbXNnX3VucHJpdihcIlIyIHZhcmlhYmxlIHN0YWNrIGFjY2VzcyBwcm9oaWJpdGVkIGZvciAhcm9vdFwiKVxuIF9fcmV0dmFsKDApXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmNcbmluZGV4IGE4YWUwM2M1N2JiYWUuLjYxZjBiMjk1MWJjZGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jXG5AQCAtMTMzLDYgKzEzMyw3IEBAIHN0cnVjdCBicGZfdGVzdCB7XG4gXHRjb25zdCBjaGFyICplcnJzdHI7XG4gXHRjb25zdCBjaGFyICplcnJzdHJfdW5wcml2O1xuIFx0dWludDMyX3QgaW5zbl9wcm9jZXNzZWQ7XG4rXHR1aW50MzJfdCBsb2dfbGV2ZWw7XG4gXHRpbnQgcHJvZ19sZW47XG4gXHRlbnVtIHtcbiBcdFx0VU5ERUYsXG5AQCAtMTU1OSw3ICsxNTYwLDkgQEAgc3RhdGljIHZvaWQgZG9fdGVzdF9zaW5nbGUoc3RydWN0IGJwZl90ZXN0ICp0ZXN0LCBib29sIHVucHJpdixcbiBcdFx0ICAgICAgIHRlc3QtXHUwMDNlZXJyc3RyX3VucHJpdiA6IHRlc3QtXHUwMDNlZXJyc3RyO1xuIFxuIFx0b3B0cy5leHBlY3RlZF9hdHRhY2hfdHlwZSA9IHRlc3QtXHUwMDNlZXhwZWN0ZWRfYXR0YWNoX3R5cGU7XG4tXHRpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxuK1x0aWYgKHRlc3QtXHUwMDNlbG9nX2xldmVsKVxuK1x0XHRvcHRzLmxvZ19sZXZlbCA9IHRlc3QtXHUwMDNlbG9nX2xldmVsO1xuK1x0ZWxzZSBpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxuIFx0XHRvcHRzLmxvZ19sZXZlbCA9IDI7XG4gXHRlbHNlIGlmICh2ZXJib3NlKVxuIFx0XHRvcHRzLmxvZ19sZXZlbCA9IHZlcmlmX2xvZ19sZXZlbCB8IDQ7IC8qIGZvcmNlIHN0YXRzICovXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xuaW5kZXggMzAyZDcxMmUwZDdlZC4uMWY3Y2EyNzFlMDdhZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xuQEAgLTEwOTEsNyArMTA5MSw5IEBAXG4gXHQvKiBzdGFja19tYWluPTMyLCBzdGFja19BPTI1Niwgc3RhY2tfQj02NFxuIFx0ICogYW5kIG1heChtYWluK0EsIG1haW4rQStCKSBcdTAwM2MgNTEyXG4gXHQgKi9cbi1cdC5yZXN1bHQgPSBBQ0NFUFQsXG4rXHQucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsXG4rXHQuZXJyc3RyID0gXCJzdGFjayBkZXB0aCBzdWJwcm9nWzBdPTMyIHN1YnByb2dbMV09MjU2IHN1YnByb2dbMl09NjQgbWF4PTM1MlwiLFxuK1x0LmxvZ19sZXZlbCA9IERFRkFVTFRfTElCQlBGX0xPR19MRVZFTCxcbiB9LFxuIHtcbiBcdFwiY2FsbHM6IHN0YWNrIGRlcHRoIGNoZWNrIHVzaW5nIHRocmVlIGZyYW1lcy4gdGVzdDJcIixcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaXN0YXQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5pbmRleCBjOWMyNTc3ODRlZTNkLi5mNDcwZTYzZGY0NDBlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5AQCAtOTk3LDkgKzk5NywxMCBAQCBzdGF0aWMgY2hhciB2ZXJpZl9sb2dfYnVmWzY0ICogMTAyNF07XG4gXG4gc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpzKVxuIHtcbi1cdGNvbnN0IGNoYXIgKmN1cjtcbi1cdGludCBwb3MsIGxpbmVzLCBzdWJfc3RhY2ssIGNudCA9IDA7XG4tXHRjaGFyICpzdGF0ZSA9IE5VTEwsICp0b2tlbiwgc3RhY2tbNTEyXTtcbitcdGxvbmcgc3RhY2tfdG90YWwsIHN1Yl9zdGFjaztcbitcdGNvbnN0IGNoYXIgKmN1ciwgKnA7XG4rXHRpbnQgcG9zLCBsaW5lcztcbitcdGNoYXIgKmVuZDtcbiBcbiBcdGJ1ZltidWZfc3ogLSAxXSA9ICdcXDAnO1xuIFxuQEAgLTEwMjUsMTMgKzEwMjYsMTkgQEAgc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpcbiBcdFx0XHRcdFx1MDAyNnMtXHUwMDNlc3RhdHNbTUFSS19SRUFEX01BWF9MRU5dKSlcbiBcdFx0XHRjb250aW51ZTtcbiBcbi1cdFx0aWYgKDIgPT0gc3NjYW5mKGN1ciwgXCJzdGFjayBkZXB0aCAlNTExcyBtYXggJWxkXCIsIHN0YWNrLCBcdTAwMjZzLVx1MDAzZXN0YXRzW01BWF9TVEFDS10pKVxuK1x0XHRpZiAoc3RybmNtcChjdXIsIFwic3RhY2sgZGVwdGggXCIsIHNpemVvZihcInN0YWNrIGRlcHRoIFwiKSAtIDEpKVxuIFx0XHRcdGNvbnRpbnVlO1xuLVx0fVxuLVx0d2hpbGUgKCh0b2tlbiA9IHN0cnRva19yKGNudCsrID8gTlVMTCA6IHN0YWNrLCBcIitcIiwgXHUwMDI2c3RhdGUpKSkge1xuLVx0XHRpZiAoc3NjYW5mKHRva2VuLCBcIiVkXCIsIFx1MDAyNnN1Yl9zdGFjaykgPT0gMClcbi1cdFx0XHRicmVhaztcbi1cdFx0cy1cdTAwM2VzdGF0c1tTVEFDS10gKz0gc3ViX3N0YWNrO1xuK1xuK1x0XHRzdGFja190b3RhbCA9IDA7XG4rXHRcdGZvciAocCA9IGN1ciArIHNpemVvZihcInN0YWNrIGRlcHRoIFwiKSAtIDE7IChwID0gc3RyY2hyKHAsICc9JykpOyBwID0gZW5kKSB7XG4rXHRcdFx0c3ViX3N0YWNrID0gc3RydG9sKHAgKyAxLCBcdTAwMjZlbmQsIDEwKTtcbitcdFx0XHRpZiAoKmVuZCA9PSAnXFxuJykge1xuK1x0XHRcdFx0cy1cdTAwM2VzdGF0c1tTVEFDS10gPSBzdGFja190b3RhbDtcbitcdFx0XHRcdHMtXHUwMDNlc3RhdHNbTUFYX1NUQUNLXSA9IHN1Yl9zdGFjaztcbitcdFx0XHRcdGJyZWFrO1xuK1x0XHRcdH1cbitcdFx0XHRzdGFja190b3RhbCArPSBzdWJfc3RhY2s7XG4rXHRcdH1cbiBcdH1cbiBcdHJldHVybiAwO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE1OjUzOjIxLjI5NzI5Nzg2N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkxNjEwMjM2MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgVmVyaWZpZXIgTG9nZ2luZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0J3MgYSBzdHJhaWdodGZvcndhcmQgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgQlBGIHZlcmlmaWVyIHByaW50cyB2ZXJpZmljYXRpb24gc3RhdHMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIHRoZSBzdGFjayBkZXB0aC4gSXQncyB0YXJnZXRpbmcgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyB0byBpbmNsdWRlIHN1YnByb2dyYW0gbmFtZXMgaW4gdGhlIG91dHB1dCBhbG9uZ3NpZGUgdGhlIHN0YWNrIGRlcHRoLCBpbnN0ZWFkIG9mIGp1c3QgYSBnZW5lcmljIFwiKyVkXCIuIFRoaXMgc2VlbXMgbGlrZSBhIHB1cmVseSBjb3NtZXRpYyBlbmhhbmNlbWVudCB0byB0aGUgbG9nZ2luZy5cblxuSSBjYW4gc2VlIHRoYXQgdGhlIGNoYW5nZXMgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgYXJlIGNsZWFybHkgZm9jdXNlZCBvbiB0aGUgYHZlcmJvc2UoKWAgb3V0cHV0LiBJdCdzIG5vdyBnb2luZyB0byBwcmludCB0aGUgc3VicHJvZ3JhbSBuYW1lIGFuZCBpdHMgc3RhY2sgZGVwdGgsIGlmIGEgbmFtZSBleGlzdHMuIE90aGVyd2lzZSwgaXQgd2lsbCBwcmludCBzdWJwcm9nIGluZGV4LiBUaGUgY2hhbmdlIGlzIHNpbXBseSB0aGUgd2F5IHRoZSBkZXB0aCBpcyBwcmludGVkLlxuXG5Ob3csIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbnMsIGlmIHRoZSBwYXRjaCBvbmx5IGluY2x1ZGVzIGRvY3VtZW50YXRpb24sIEtjb25maWcgbW9kaWZpY2F0aW9ucywgY29kZSBjb21tZW50IHVwZGF0ZXMsIG9yIHRoZXNlIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgY2hhbmdlcyAobGlrZSBgcHJfZXJyYCwgYHByaW50a2AsIGB2ZXJib3NlYCksIHRoZW4gYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLiBUaGlzLCBmcm9tIHRoZSBsb29rIG9mIHRoZSBga2VybmVsL2JwZi92ZXJpZmllci5jYCBjaGFuZ2UsIGFwcGVhcnMgdG8gYmUgdGhlIGNhc2UuIFRoZSBhY3R1YWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIHZlcmlmaWVyIGlzbid0IGFsdGVyZWQuIFRoZSBwYXRjaCBqdXN0IG1ha2VzIHRoZSBsb2dzIG1vcmUgcmVhZGFibGUgYW5kIGluZm9ybWF0aXZlLlxuXG5JJ20gZG91YmxlLWNoZWNraW5nIHRvIGNvbmZpcm0gdGhhdCB0aGVyZSBhcmUgKm5vKiBmdW5jdGlvbmFsIGNoYW5nZXMgaGlkZGVuIGluIHRoZSByZWxhdGVkIGZpbGVzLiBJdCBzZWVtcyB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggYWRhcHRzIHZhcmlvdXMgc2VsZnRlc3RzOiBUaGUgc2VsZnRlc3RzIGFuZCBgdmVyaXN0YXQuY2AgYXJlIGFsc28gYmVpbmcgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBuZXcgbG9nIGZvcm1hdC4gSXQgbG9va3MgbGlrZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY2AgZ2V0cyBzb21lIGBsb2dfbGV2ZWxgIHNldHRpbmcgYWJpbGl0aWVzIGFuZCBjYWxscy4gSG93ZXZlciwgdGhhdCBzZWVtcyBwdXJlbHkgZm9yIHRlc3QgY29uZmlndXJhdGlvbiBhbmQgZG9lc24ndCBjaGFuZ2Uga2VybmVsIGV4ZWN1dGlvbi5cblxuVGhlIG1vZGlmaWNhdGlvbnMgaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy8qYCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jYCBhcmUgc2ltcGx5IHVwZGF0aW5nIGNoZWNrcyBhbmQgdXNpbmcgdGhlIG5ldyBsZXZlbCBzZXR0aW5ncy4gVGhpcyBmdXJ0aGVyIHJlaW5mb3JjZXMgdGhlIHBvaW50IHRoYXQgYWxsIHRoZSBjaGFuZ2VzIGFyZSBnZWFyZWQgdG93YXJkcyB0aGUgbmV3IGxvZyBmb3JtYXQgYW5kIHRlc3QgY29uZmlndXJhdGlvbiwgcmF0aGVyIHRoYW4gYW55IGNoYW5nZSB0byBob3cgQlBGIGNvZGUgaXMgYWN0dWFsbHkgKnZlcmlmaWVkKiBvciAqZXhlY3V0ZWQqLlxuXG5TbywgYmFzZWQgb24gdGhpcyB0aG9yb3VnaCBleGFtaW5hdGlvbiwgSSdtIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpcyBpbmRlZWQgYSBkZWNvcmF0aXZlIGxvZ2dpbmcgY2hhbmdlLCBhbmQgSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjE4NywiT3V0cHV0VG9rZW5zIjo4NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE1OjUzOjMwLjQ1ODMyNTMyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM0OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgbG9nZ2luZyBvdXRwdXQgZm9ybWF0IG9mIHRoZSBCUEYgdmVyaWZpZXIgc3RhdHMgKHNwZWNpZmljYWxseSBob3cgc3RhY2sgZGVwdGggaXMgcHJpbnRlZCkgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgc2VsZnRlc3RzIGFuZCB2ZXJpc3RhdCB0b29sIHRvIHBhcnNlIHRoZSBuZXcgZm9ybWF0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow25dwv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-02 15:51:52 +0000 UTC FinishedAt: 2026-08-02 15:53:32 +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+CgkJCTx0ZD4yMDI2LzA4LzAyIDE1OjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE1OjUzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMTU6NTM6MTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCA4ZDA2MzVlZTQ4YzdlLi41MWFjMGE5YWUzMzk0IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC0xODcwMywxMCAmIzQzOzE4NzAzLDE4IEBAIHN0YXRpYyB2b2lkIHByaW50X3ZlcmlmaWNhdGlvbl9zdGF0cyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxuIFx0aWYgKGVudi1cdTAwM2Vsb2cubGV2ZWwgXHUwMDI2IEJQRl9MT0dfU1RBVFMpIHtcbiBcdFx0dmVyYm9zZShlbnYsIFwmIzM0O3ZlcmlmaWNhdGlvbiB0aW1lICVsbGQgdXNlY1xcblwmIzM0OyxcbiBcdFx0XHRkaXZfdTY0KGVudi1cdTAwM2V2ZXJpZmljYXRpb25fdGltZSwgMTAwMCkpO1xuLVx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7c3RhY2sgZGVwdGggJWRcJiMzNDssIGVudi1cdTAwM2VzdWJwcm9nX2luZm9bMF0uc3RhY2tfZGVwdGgpO1xuLVx0XHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBzdWJwcm9nX2NudDsgaSYjNDM7JiM0MzspXG4tXHRcdFx0dmVyYm9zZShlbnYsIFwmIzM0OyYjNDM7JWRcJiMzNDssIGVudi1cdTAwM2VzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpO1xuLVx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7IG1heCAlZFxcblwmIzM0OywgZW52LVx1MDAzZW1heF9zdGFja19kZXB0aCk7XG4mIzQzO1x0XHR2ZXJib3NlKGVudiwgXCYjMzQ7c3RhY2sgZGVwdGhcJiMzNDspO1xuJiM0MztcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgc3VicHJvZ19jbnQ7IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHRcdGNvbnN0IGNoYXIgKm5hbWUgPSBlbnYtXHUwMDNlc3VicHJvZ19pbmZvW2ldLm5hbWU7XG4mIzQzO1xuJiM0MztcdFx0XHRpZiAobmFtZSBcdTAwMjZcdTAwMjYgbmFtZVswXSlcbiYjNDM7XHRcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7ICVzPSVkXCYjMzQ7LCBuYW1lLFxuJiM0MztcdFx0XHRcdFx0ZW52LVx1MDAzZXN1YnByb2dfaW5mb1tpXS5zdGFja19kZXB0aCk7XG4mIzQzO1x0XHRcdGVsc2VcbiYjNDM7XHRcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7IHN1YnByb2dbJWRdPSVkXCYjMzQ7LCBpLFxuJiM0MztcdFx0XHRcdFx0ZW52LVx1MDAzZXN1YnByb2dfaW5mb1tpXS5zdGFja19kZXB0aCk7XG4mIzQzO1x0XHR9XG4mIzQzO1x0XHR2ZXJib3NlKGVudiwgXCYjMzQ7IG1heD0lZFxcblwmIzM0OywgZW52LVx1MDAzZW1heF9zdGFja19kZXB0aCk7XG4gXHRcdHZlcmJvc2UoZW52LCBcJiMzNDtpbnNucyBwcm9jZXNzZWQgJWRcJiMzNDssIGVudi1cdTAwM2VzdWJwcm9nX2luZm9bMF0uaW5zbl9wcm9jZXNzZWQpO1xuIFx0XHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBzdWJwcm9nX2NudDsgaSYjNDM7JiM0MzspXG4gXHRcdFx0aWYgKGJwZl9zdWJwcm9nX2lzX2dsb2JhbChlbnYsIGkpKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbmluZGV4IGZiNjJlMDlmMjExNDYuLmYxMzVjNGI5MzQ0YmMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbkBAIC0yNyw3ICYjNDM7MjcsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfb3V0X29mX2JvdW5kcyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDt1bmluaXRpYWxpemVkIHN0YWNrMVwmIzM0Oylcbi1fX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggOFwmIzM0OylcbiYjNDM7X19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2sxPThcJiMzNDspXG4gX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoXCYjMzQ7aW52YWxpZCByZWFkIGZyb20gc3RhY2tcJiMzNDspXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXG4ge1xuQEAgLTQ1LDcgJiM0Mzs0NSw3IEBAIF9fbmFrZWQgdm9pZCB1bmluaXRpYWxpemVkX3N0YWNrMSh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDt1bmluaXRpYWxpemVkIHN0YWNrMlwmIzM0Oylcbi1fX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggOFwmIzM0OylcbiYjNDM7X19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2syPThcJiMzNDspXG4gX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoXCYjMzQ7aW52YWxpZCByZWFkIGZyb20gc3RhY2tcJiMzNDspXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2syKHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuaW5kZXggODM3MDdmYWVhMDQ5OS4uMGI0ODE1NjkyMGRmOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG5AQCAtMTAsNyAmIzQzOzEwLDcgQEBcbiBcbiBTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA4XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBzaW1wbGU9OFwmIzM0OylcbiBfX3hsYXRlZChcJiMzNDs0OiByNSA9IDVcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7NTogcjAgPSBcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7NjogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG5AQCAtOTYsNyAmIzQzOzk2LDcgQEAgX19uYWtlZCB2b2lkIGNhbmFyeV96ZXJvX3NwaWxscyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDE2XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCB3cm9uZ19yZWdfaW5fcGF0dGVybjE9MTZcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MTogKih1NjQgKikocjEwIC0xNikgPSByMVwmIzM0OylcbiBfX3hsYXRlZChcJiMzNDsuLi5cJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MzogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG5AQCAtNTk4LDcgJiM0Mzs1OTgsNyBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIHN1YnByb2dzX3VzZV9pbmRlcGVuZGVudF9vZmZzZXRzX2F1eCh2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDhcJiMzNDspXG4mIzQzO19fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsPThcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MjogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG4gX19zdWNjZXNzXG4gX19uYWtlZCB2b2lkIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsKHZvaWQpXG5AQCAtNjIwLDcgJiM0Mzs2MjAsNyBAQCBfX25ha2VkIHZvaWQgaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGwodm9pZClcbiBcbiBTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCAyNFwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggbWF5X2dvdG9faW50ZXJhY3Rpb25feDg2XzY0PTI0XCYjMzQ7KVxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXG4gX194bGF0ZWQoXCYjMzQ7MDogKih1NjQgKikocjEwIC0yNCkgPVwmIzM0OylcbiAvKiBtYXlfZ290byB0aW1lc3RhbXAgYXQgLTE2ICovXG5AQCAtNjYxLDcgJiM0Mzs2NjEsNyBAQCBfX25ha2VkIHZvaWQgbWF5X2dvdG9faW50ZXJhY3Rpb25feDg2XzY0KHZvaWQpXG4gU0VDKFwmIzM0O3Jhd190cFwmIzM0OylcbiBfX2FyY2hfYXJtNjRcbiBfX2FyY2hfcmlzY3Y2NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDI0XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBtYXlfZ290b19pbnRlcmFjdGlvbj0yNFwmIzM0OylcbiAvKiBtYXlfZ290byBjb3VudGVyIGF0IC0yNCAqL1xuIF9feGxhdGVkKFwmIzM0OzA6ICoodTY0ICopKHIxMCAtMjQpID1cJiMzNDspXG4gLyogbWF5X2dvdG8gdGltZXN0YW1wIGF0IC0xNiAqL1xuQEAgLTcwOCw3ICYjNDM7NzA4LDggQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBkdW1teV9sb29wX2NhbGxiYWNrKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3Jhd190cFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggMzImIzQzOzBcJiMzNDspXG4mIzQzO19fbG9nX2xldmVsKDQpXG4mIzQzO19fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMT0zMiBkdW1teV9sb29wX2NhbGxiYWNrPTBcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MjogcjEgPSAxXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzM6IHIwID1cJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7NDogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcJiMzNDspXG5AQCAtNzU2LDcgJiM0Mzs3NTcsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjEodm9pZClcbiBcbiBTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA0MCYjNDM7MFwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggYnBmX2xvb3BfaW50ZXJhY3Rpb24yPTQwIGR1bW15X2xvb3BfY2FsbGJhY2s9MFwmIzM0OylcbiAvKiBjYWxsIGJwZl9nZXRfc21wX3Byb2Nlc3Nvcl9pZCAqL1xuIF9feGxhdGVkKFwmIzM0OzI6IHIxID0gNDJcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MzogcjAgPVwmIzM0OylcbkBAIC04MDAsNyAmIzQzOzgwMiw4IEBAIF9fbmFrZWQgaW50IGJwZl9sb29wX2ludGVyYWN0aW9uMih2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MCBtYXggNTEyXCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KVxuJiM0MztfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBjdW11bGF0aXZlX3N0YWNrX2RlcHRoPTUxMiBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2c9MCBtYXg9NTEyXCYjMzQ7KVxuIC8qIGp1c3QgdG8gcHJpbnQgeGxhdGVkIHZlcnNpb24gd2hlbiBkZWJ1Z2dpbmcgKi9cbiBfX3hsYXRlZChcJiMzNDtyMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwmIzM0OylcbiBfX3N1Y2Nlc3NcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuaW5kZXggYmI4MjA2ZTEwODgwYy4uNGE0YTVhODkxZjYyZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbkBAIC04Niw3ICYjNDM7ODYsOCBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZyh2b2lkKVxuIFNFQyhcJiMzNDtrcHJvYmVcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtQcml2YXRlIHN0YWNrLCBzdWJ0cmVlIFx1MDAzZSBNQVhfQlBGX1NUQUNLXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MzIgbWF4IDUxMlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19uZXN0ZWRfMT01MTIgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nPTMyIG1heD01MTJcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuIC8qIHByaXZhdGUgc3RhY2sgZnAgZm9yIHRoZSBtYWluIHByb2cgKi9cbiBfX2ppdGVkKFwmIzM0O1x0bW92YWJzcVx0JDB4e3suKn19LCAlcjlcJiMzNDspXG5AQCAtMzMxLDcgJiM0MzszMzIsOCBAQCBTRUMoXCYjMzQ7ZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtQcml2YXRlIHN0YWNrLCBhc3luYyBjYWxsYmFjaywgcG90ZW50aWFsIG5lc3RpbmdcJiMzNDspXG4gX19zdWNjZXNzIF9fcmV0dmFsKDApXG4gX19sb2FkX2lmX0pJVGVkKClcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA4JiM0MzswJiM0MzsyNTYmIzQzOzAgbWF4IDI3MlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19hc3luY19jYWxsYmFja18yPTggdGltZXJfY2IxPTAgc3VicHJvZzE9MjU2IHN1YnByb2cyPTAgbWF4PTI3MlwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19qaXRlZChcJiMzNDtcdHN1YnFcdCQweDEwMCwgJXJzcFwmIzM0OylcbiBfX2FyY2hfYXJtNjRcbkBAIC0zNTUsNyAmIzQzOzM1Nyw4IEBAIGludCBwcml2YXRlX3N0YWNrX2FzeW5jX2NhbGxiYWNrXzIodm9pZClcbiBTRUMoXCYjMzQ7ZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtwcml2YXRlIHN0YWNrLCBtYXggc3RhY2sgZGVwdGggaXMgcHJpdmF0ZSBzdGFja1wmIzM0OylcbiBfX3N1Y2Nlc3Ncbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCA4JiM0MzsyNTYmIzQzOzAgbWF4IDI1NlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNClcbiYjNDM7X19tc2coXCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19tYXhfZGVwdGg9OCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjU2XCYjMzQ7KVxuIGludCBwcml2YXRlX3N0YWNrX21heF9kZXB0aCh2b2lkKVxuIHtcbiBcdGludCB4ID0gMDtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuY1xuaW5kZXggMjRjZDBhNzYzNjczMC4uN2ZiODFhOTU0ZWIxZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcbkBAIC0xOTgsNyAmIzQzOzE5OCw3IEBAIF9fc3VjY2Vzc1xuIC8qIENoZWNrIHRoYXQgdGhlIG1heGltdW0gc3RhY2sgZGVwdGggaXMgY29ycmVjdGx5IG1haW50YWluZWQgYWNjb3JkaW5nIHRvIHRoZVxuICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LlxuICAqL1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwmIzM0O3N0YWNrIGRlcHRoIDE2XCYjMzQ7KVxuJiM0MztfX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCBzdGFja193cml0ZV9wcml2X3ZzX3VucHJpdj0xNlwmIzM0OylcbiBfX2ZhaWx1cmVfdW5wcml2XG4gLyogVmFyaWFibGUgc3RhY2sgYWNjZXNzIGlzIHJlamVjdGVkIGZvciB1bnByaXZpbGVnZWQuXG4gICovXG5AQCAtMjM4LDcgJiM0MzsyMzgsNyBAQCBfX3N1Y2Nlc3NcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcbiAgKiBtYXhpbXVtIHBvc3NpYmxlIHZhcmlhYmxlIG9mZnNldC5cbiAgKi9cbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcJiMzNDtzdGFjayBkZXB0aCAxNlwmIzM0OylcbiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggc3RhY2tfd3JpdGVfZm9sbG93ZWRfYnlfcmVhZD0xNlwmIzM0OylcbiBfX2ZhaWx1cmVfdW5wcml2XG4gX19tc2dfdW5wcml2KFwmIzM0O1IyIHZhcmlhYmxlIHN0YWNrIGFjY2VzcyBwcm9oaWJpdGVkIGZvciAhcm9vdFwmIzM0OylcbiBfX3JldHZhbCgwKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jXG5pbmRleCBhOGFlMDNjNTdiYmFlLi42MWYwYjI5NTFiY2RhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xuQEAgLTEzMyw2ICYjNDM7MTMzLDcgQEAgc3RydWN0IGJwZl90ZXN0IHtcbiBcdGNvbnN0IGNoYXIgKmVycnN0cjtcbiBcdGNvbnN0IGNoYXIgKmVycnN0cl91bnByaXY7XG4gXHR1aW50MzJfdCBpbnNuX3Byb2Nlc3NlZDtcbiYjNDM7XHR1aW50MzJfdCBsb2dfbGV2ZWw7XG4gXHRpbnQgcHJvZ19sZW47XG4gXHRlbnVtIHtcbiBcdFx0VU5ERUYsXG5AQCAtMTU1OSw3ICYjNDM7MTU2MCw5IEBAIHN0YXRpYyB2b2lkIGRvX3Rlc3Rfc2luZ2xlKHN0cnVjdCBicGZfdGVzdCAqdGVzdCwgYm9vbCB1bnByaXYsXG4gXHRcdCAgICAgICB0ZXN0LVx1MDAzZWVycnN0cl91bnByaXYgOiB0ZXN0LVx1MDAzZWVycnN0cjtcbiBcbiBcdG9wdHMuZXhwZWN0ZWRfYXR0YWNoX3R5cGUgPSB0ZXN0LVx1MDAzZWV4cGVjdGVkX2F0dGFjaF90eXBlO1xuLVx0aWYgKGV4cGVjdGVkX3JldCA9PSBWRVJCT1NFX0FDQ0VQVClcbiYjNDM7XHRpZiAodGVzdC1cdTAwM2Vsb2dfbGV2ZWwpXG4mIzQzO1x0XHRvcHRzLmxvZ19sZXZlbCA9IHRlc3QtXHUwMDNlbG9nX2xldmVsO1xuJiM0MztcdGVsc2UgaWYgKGV4cGVjdGVkX3JldCA9PSBWRVJCT1NFX0FDQ0VQVClcbiBcdFx0b3B0cy5sb2dfbGV2ZWwgPSAyO1xuIFx0ZWxzZSBpZiAodmVyYm9zZSlcbiBcdFx0b3B0cy5sb2dfbGV2ZWwgPSB2ZXJpZl9sb2dfbGV2ZWwgfCA0OyAvKiBmb3JjZSBzdGF0cyAqL1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmNcbmluZGV4IDMwMmQ3MTJlMGQ3ZWQuLjFmN2NhMjcxZTA3YWYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmNcbkBAIC0xMDkxLDcgJiM0MzsxMDkxLDkgQEBcbiBcdC8qIHN0YWNrX21haW49MzIsIHN0YWNrX0E9MjU2LCBzdGFja19CPTY0XG4gXHQgKiBhbmQgbWF4KG1haW4mIzQzO0EsIG1haW4mIzQzO0EmIzQzO0IpIFx1MDAzYyA1MTJcbiBcdCAqL1xuLVx0LnJlc3VsdCA9IEFDQ0VQVCxcbiYjNDM7XHQucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsXG4mIzQzO1x0LmVycnN0ciA9IFwmIzM0O3N0YWNrIGRlcHRoIHN1YnByb2dbMF09MzIgc3VicHJvZ1sxXT0yNTYgc3VicHJvZ1syXT02NCBtYXg9MzUyXCYjMzQ7LFxuJiM0MztcdC5sb2dfbGV2ZWwgPSBERUZBVUxUX0xJQkJQRl9MT0dfTEVWRUwsXG4gfSxcbiB7XG4gXHRcJiMzNDtjYWxsczogc3RhY2sgZGVwdGggY2hlY2sgdXNpbmcgdGhyZWUgZnJhbWVzLiB0ZXN0MlwmIzM0OyxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaXN0YXQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5pbmRleCBjOWMyNTc3ODRlZTNkLi5mNDcwZTYzZGY0NDBlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5AQCAtOTk3LDkgJiM0Mzs5OTcsMTAgQEAgc3RhdGljIGNoYXIgdmVyaWZfbG9nX2J1Zls2NCAqIDEwMjRdO1xuIFxuIHN0YXRpYyBpbnQgcGFyc2VfdmVyaWZfbG9nKGNoYXIgKiBjb25zdCBidWYsIHNpemVfdCBidWZfc3osIHN0cnVjdCB2ZXJpZl9zdGF0cyAqcylcbiB7XG4tXHRjb25zdCBjaGFyICpjdXI7XG4tXHRpbnQgcG9zLCBsaW5lcywgc3ViX3N0YWNrLCBjbnQgPSAwO1xuLVx0Y2hhciAqc3RhdGUgPSBOVUxMLCAqdG9rZW4sIHN0YWNrWzUxMl07XG4mIzQzO1x0bG9uZyBzdGFja190b3RhbCwgc3ViX3N0YWNrO1xuJiM0MztcdGNvbnN0IGNoYXIgKmN1ciwgKnA7XG4mIzQzO1x0aW50IHBvcywgbGluZXM7XG4mIzQzO1x0Y2hhciAqZW5kO1xuIFxuIFx0YnVmW2J1Zl9zeiAtIDFdID0gJiMzOTtcXDAmIzM5OztcbiBcbkBAIC0xMDI1LDEzICYjNDM7MTAyNiwxOSBAQCBzdGF0aWMgaW50IHBhcnNlX3ZlcmlmX2xvZyhjaGFyICogY29uc3QgYnVmLCBzaXplX3QgYnVmX3N6LCBzdHJ1Y3QgdmVyaWZfc3RhdHMgKlxuIFx0XHRcdFx0XHUwMDI2cy1cdTAwM2VzdGF0c1tNQVJLX1JFQURfTUFYX0xFTl0pKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFxuLVx0XHRpZiAoMiA9PSBzc2NhbmYoY3VyLCBcJiMzNDtzdGFjayBkZXB0aCAlNTExcyBtYXggJWxkXCYjMzQ7LCBzdGFjaywgXHUwMDI2cy1cdTAwM2VzdGF0c1tNQVhfU1RBQ0tdKSlcbiYjNDM7XHRcdGlmIChzdHJuY21wKGN1ciwgXCYjMzQ7c3RhY2sgZGVwdGggXCYjMzQ7LCBzaXplb2YoXCYjMzQ7c3RhY2sgZGVwdGggXCYjMzQ7KSAtIDEpKVxuIFx0XHRcdGNvbnRpbnVlO1xuLVx0fVxuLVx0d2hpbGUgKCh0b2tlbiA9IHN0cnRva19yKGNudCYjNDM7JiM0MzsgPyBOVUxMIDogc3RhY2ssIFwmIzM0OyYjNDM7XCYjMzQ7LCBcdTAwMjZzdGF0ZSkpKSB7XG4tXHRcdGlmIChzc2NhbmYodG9rZW4sIFwmIzM0OyVkXCYjMzQ7LCBcdTAwMjZzdWJfc3RhY2spID09IDApXG4tXHRcdFx0YnJlYWs7XG4tXHRcdHMtXHUwMDNlc3RhdHNbU1RBQ0tdICYjNDM7PSBzdWJfc3RhY2s7XG4mIzQzO1xuJiM0MztcdFx0c3RhY2tfdG90YWwgPSAwO1xuJiM0MztcdFx0Zm9yIChwID0gY3VyICYjNDM7IHNpemVvZihcJiMzNDtzdGFjayBkZXB0aCBcJiMzNDspIC0gMTsgKHAgPSBzdHJjaHIocCwgJiMzOTs9JiMzOTspKTsgcCA9IGVuZCkge1xuJiM0MztcdFx0XHRzdWJfc3RhY2sgPSBzdHJ0b2wocCAmIzQzOyAxLCBcdTAwMjZlbmQsIDEwKTtcbiYjNDM7XHRcdFx0aWYgKCplbmQgPT0gJiMzOTtcXG4mIzM5Oykge1xuJiM0MztcdFx0XHRcdHMtXHUwMDNlc3RhdHNbU1RBQ0tdID0gc3RhY2tfdG90YWw7XG4mIzQzO1x0XHRcdFx0cy1cdTAwM2VzdGF0c1tNQVhfU1RBQ0tdID0gc3ViX3N0YWNrO1xuJiM0MztcdFx0XHRcdGJyZWFrO1xuJiM0MztcdFx0XHR9XG4mIzQzO1x0XHRcdHN0YWNrX3RvdGFsICYjNDM7PSBzdWJfc3RhY2s7XG4mIzQzO1x0XHR9XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTU6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gQXVnIDIgMTU6NTM6MTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKaW5kZXggOGQwNjM1ZWU0OGM3ZS4uNTFhYzBhOWFlMzM5NCAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtMTg3MDMsMTAgJiM0MzsxODcwMywxOCBAQCBzdGF0aWMgdm9pZCBwcmludF92ZXJpZmljYXRpb25fc3RhdHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudikKIAlpZiAoZW52LSZndDtsb2cubGV2ZWwgJmFtcDsgQlBGX0xPR19TVEFUUykgewogCQl2ZXJib3NlKGVudiwgJiMzNDt2ZXJpZmljYXRpb24gdGltZSAlbGxkIHVzZWNcbiYjMzQ7LAogCQkJZGl2X3U2NChlbnYtJmd0O3ZlcmlmaWNhdGlvbl90aW1lLCAxMDAwKSk7Ci0JCXZlcmJvc2UoZW52LCAmIzM0O3N0YWNrIGRlcHRoICVkJiMzNDssIGVudi0mZ3Q7c3VicHJvZ19pbmZvWzBdLnN0YWNrX2RlcHRoKTsKLQkJZm9yIChpID0gMTsgaSAmbHQ7IHN1YnByb2dfY250OyBpJiM0MzsmIzQzOykKLQkJCXZlcmJvc2UoZW52LCAmIzM0OyYjNDM7JWQmIzM0OywgZW52LSZndDtzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpOwotCQl2ZXJib3NlKGVudiwgJiMzNDsgbWF4ICVkXG4mIzM0OywgZW52LSZndDttYXhfc3RhY2tfZGVwdGgpOwomIzQzOwkJdmVyYm9zZShlbnYsICYjMzQ7c3RhY2sgZGVwdGgmIzM0Oyk7CiYjNDM7CQlmb3IgKGkgPSAwOyBpICZsdDsgc3VicHJvZ19jbnQ7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQkJY29uc3QgY2hhciAqbmFtZSA9IGVudi0mZ3Q7c3VicHJvZ19pbmZvW2ldLm5hbWU7CiYjNDM7CiYjNDM7CQkJaWYgKG5hbWUgJmFtcDsmYW1wOyBuYW1lWzBdKQomIzQzOwkJCQl2ZXJib3NlKGVudiwgJiMzNDsgJXM9JWQmIzM0OywgbmFtZSwKJiM0MzsJCQkJCWVudi0mZ3Q7c3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTsKJiM0MzsJCQllbHNlCiYjNDM7CQkJCXZlcmJvc2UoZW52LCAmIzM0OyBzdWJwcm9nWyVkXT0lZCYjMzQ7LCBpLAomIzQzOwkJCQkJZW52LSZndDtzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpOwomIzQzOwkJfQomIzQzOwkJdmVyYm9zZShlbnYsICYjMzQ7IG1heD0lZFxuJiMzNDssIGVudi0mZ3Q7bWF4X3N0YWNrX2RlcHRoKTsKIAkJdmVyYm9zZShlbnYsICYjMzQ7aW5zbnMgcHJvY2Vzc2VkICVkJiMzNDssIGVudi0mZ3Q7c3VicHJvZ19pbmZvWzBdLmluc25fcHJvY2Vzc2VkKTsKIAkJZm9yIChpID0gMTsgaSAmbHQ7IHN1YnByb2dfY250OyBpJiM0MzsmIzQzOykKIAkJCWlmIChicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpKSkKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKaW5kZXggZmI2MmUwOWYyMTE0Ni4uZjEzNWM0YjkzNDRiYyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKQEAgLTI3LDcgJiM0MzsyNyw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19vdXRfb2ZfYm91bmRzKHZvaWQpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3VuaW5pdGlhbGl6ZWQgc3RhY2sxJiMzNDspCi1fX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCA4JiMzNDspCiYjNDM7X19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggdW5pbml0aWFsaXplZF9zdGFjazE9OCYjMzQ7KQogX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoJiMzNDtpbnZhbGlkIHJlYWQgZnJvbSBzdGFjayYjMzQ7KQogX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpCiB7CkBAIC00NSw3ICYjNDM7NDUsNyBAQCBfX25ha2VkIHZvaWQgdW5pbml0aWFsaXplZF9zdGFjazEodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7dW5pbml0aWFsaXplZCBzdGFjazImIzM0OykKLV9fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDgmIzM0OykKJiM0MztfX3N1Y2Nlc3MgX19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCB1bmluaXRpYWxpemVkX3N0YWNrMj04JiMzNDspCiBfX2ZhaWx1cmVfdW5wcml2IF9fbXNnX3VucHJpdigmIzM0O2ludmFsaWQgcmVhZCBmcm9tIHN0YWNrJiMzNDspCiBfX25ha2VkIHZvaWQgdW5pbml0aWFsaXplZF9zdGFjazIodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYwppbmRleCA4MzcwN2ZhZWEwNDk5Li4wYjQ4MTU2OTIwZGY4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jCkBAIC0xMCw3ICYjNDM7MTAsNyBAQAogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fYXJjaF94ODZfNjQKLV9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggOCYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggc2ltcGxlPTgmIzM0OykKIF9feGxhdGVkKCYjMzQ7NDogcjUgPSA1JiMzNDspCiBfX3hsYXRlZCgmIzM0OzU6IHIwID0gJiMzNDspCiBfX3hsYXRlZCgmIzM0OzY6IHIwID0gJmFtcDsodm9pZCBfX3BlcmNwdSAqKShyMCkmIzM0OykKQEAgLTk2LDcgJiM0Mzs5Niw3IEBAIF9fbmFrZWQgdm9pZCBjYW5hcnlfemVyb19zcGlsbHModm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDE2JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCB3cm9uZ19yZWdfaW5fcGF0dGVybjE9MTYmIzM0OykKIF9feGxhdGVkKCYjMzQ7MTogKih1NjQgKikocjEwIC0xNikgPSByMSYjMzQ7KQogX194bGF0ZWQoJiMzNDsuLi4mIzM0OykKIF9feGxhdGVkKCYjMzQ7MzogcjAgPSAmYW1wOyh2b2lkIF9fcGVyY3B1ICopKHIwKSYjMzQ7KQpAQCAtNTk4LDcgJiM0Mzs1OTgsNyBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIHN1YnByb2dzX3VzZV9pbmRlcGVuZGVudF9vZmZzZXRzX2F1eCh2b2lkKQogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fYXJjaF94ODZfNjQKLV9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggOCYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGw9OCYjMzQ7KQogX194bGF0ZWQoJiMzNDsyOiByMCA9ICZhbXA7KHZvaWQgX19wZXJjcHUgKikocjApJiMzNDspCiBfX3N1Y2Nlc3MKIF9fbmFrZWQgdm9pZCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbCh2b2lkKQpAQCAtNjIwLDcgJiM0Mzs2MjAsNyBAQCBfX25ha2VkIHZvaWQgaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGwodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDI0JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBtYXlfZ290b19pbnRlcmFjdGlvbl94ODZfNjQ9MjQmIzM0OykKIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovCiBfX3hsYXRlZCgmIzM0OzA6ICoodTY0ICopKHIxMCAtMjQpID0mIzM0OykKIC8qIG1heV9nb3RvIHRpbWVzdGFtcCBhdCAtMTYgKi8KQEAgLTY2MSw3ICYjNDM7NjYxLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKQogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfYXJtNjQKIF9fYXJjaF9yaXNjdjY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDI0JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBtYXlfZ290b19pbnRlcmFjdGlvbj0yNCYjMzQ7KQogLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi8KIF9feGxhdGVkKCYjMzQ7MDogKih1NjQgKikocjEwIC0yNCkgPSYjMzQ7KQogLyogbWF5X2dvdG8gdGltZXN0YW1wIGF0IC0xNiAqLwpAQCAtNzA4LDcgJiM0Mzs3MDgsOCBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIGR1bW15X2xvb3BfY2FsbGJhY2sodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDMyJiM0MzswJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMT0zMiBkdW1teV9sb29wX2NhbGxiYWNrPTAmIzM0OykKIF9feGxhdGVkKCYjMzQ7MjogcjEgPSAxJiMzNDspCiBfX3hsYXRlZCgmIzM0OzM6IHIwID0mIzM0OykKIF9feGxhdGVkKCYjMzQ7NDogcjAgPSAmYW1wOyh2b2lkIF9fcGVyY3B1ICopKHIwKSYjMzQ7KQpAQCAtNzU2LDcgJiM0Mzs3NTcsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjEodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDQwJiM0MzswJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMj00MCBkdW1teV9sb29wX2NhbGxiYWNrPTAmIzM0OykKIC8qIGNhbGwgYnBmX2dldF9zbXBfcHJvY2Vzc29yX2lkICovCiBfX3hsYXRlZCgmIzM0OzI6IHIxID0gNDImIzM0OykKIF9feGxhdGVkKCYjMzQ7MzogcjAgPSYjMzQ7KQpAQCAtODAwLDcgJiM0Mzs4MDIsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjIodm9pZCkKIAogU0VDKCYjMzQ7cmF3X3RwJiMzNDspCiBfX2FyY2hfeDg2XzY0Ci1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MCBtYXggNTEyJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGg9NTEyIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZz0wIG1heD01MTImIzM0OykKIC8qIGp1c3QgdG8gcHJpbnQgeGxhdGVkIHZlcnNpb24gd2hlbiBkZWJ1Z2dpbmcgKi8KIF9feGxhdGVkKCYjMzQ7cjAgPSAmYW1wOyh2b2lkIF9fcGVyY3B1ICopKHIwKSYjMzQ7KQogX19zdWNjZXNzCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYwppbmRleCBiYjgyMDZlMTA4ODBjLi40YTRhNWE4OTFmNjJmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMKQEAgLTg2LDcgJiM0Mzs4Niw4IEBAIF9fbmFrZWQgc3RhdGljIHZvaWQgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nKHZvaWQpCiBTRUMoJiMzNDtrcHJvYmUmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtQcml2YXRlIHN0YWNrLCBzdWJ0cmVlICZndDsgTUFYX0JQRl9TVEFDSyYjMzQ7KQogX19zdWNjZXNzCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDUxMiYjNDM7MzIgbWF4IDUxMiYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDQpCiYjNDM7X19tc2coJiMzNDtzdGFjayBkZXB0aCBwcml2YXRlX3N0YWNrX25lc3RlZF8xPTUxMiBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2c9MzIgbWF4PTUxMiYjMzQ7KQogX19hcmNoX3g4Nl82NAogLyogcHJpdmF0ZSBzdGFjayBmcCBmb3IgdGhlIG1haW4gcHJvZyAqLwogX19qaXRlZCgmIzM0Owltb3ZhYnNxCSQweHt7Lip9fSwgJXI5JiMzNDspCkBAIC0zMzEsNyAmIzQzOzMzMiw4IEBAIFNFQygmIzM0O2ZlbnRyeS9icGZfZmVudHJ5X3Rlc3Q5JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7UHJpdmF0ZSBzdGFjaywgYXN5bmMgY2FsbGJhY2ssIHBvdGVudGlhbCBuZXN0aW5nJiMzNDspCiBfX3N1Y2Nlc3MgX19yZXR2YWwoMCkKIF9fbG9hZF9pZl9KSVRlZCgpCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDgmIzQzOzAmIzQzOzI1NiYjNDM7MCBtYXggMjcyJiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkKJiM0MztfX21zZygmIzM0O3N0YWNrIGRlcHRoIHByaXZhdGVfc3RhY2tfYXN5bmNfY2FsbGJhY2tfMj04IHRpbWVyX2NiMT0wIHN1YnByb2cxPTI1NiBzdWJwcm9nMj0wIG1heD0yNzImIzM0OykKIF9fYXJjaF94ODZfNjQKIF9faml0ZWQoJiMzNDsJc3VicQkkMHgxMDAsICVyc3AmIzM0OykKIF9fYXJjaF9hcm02NApAQCAtMzU1LDcgJiM0MzszNTcsOCBAQCBpbnQgcHJpdmF0ZV9zdGFja19hc3luY19jYWxsYmFja18yKHZvaWQpCiBTRUMoJiMzNDtmZW50cnkvYnBmX2ZlbnRyeV90ZXN0OSYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3ByaXZhdGUgc3RhY2ssIG1heCBzdGFjayBkZXB0aCBpcyBwcml2YXRlIHN0YWNrJiMzNDspCiBfX3N1Y2Nlc3MKLV9fbG9nX2xldmVsKDQpIF9fbXNnKCYjMzQ7c3RhY2sgZGVwdGggOCYjNDM7MjU2JiM0MzswIG1heCAyNTYmIzM0OykKJiM0MztfX2xvZ19sZXZlbCg0KQomIzQzO19fbXNnKCYjMzQ7c3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19tYXhfZGVwdGg9OCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjU2JiMzNDspCiBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZCkKIHsKIAlpbnQgeCA9IDA7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuYwppbmRleCAyNGNkMGE3NjM2NzMwLi43ZmI4MWE5NTRlYjFmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmMKQEAgLTE5OCw3ICYjNDM7MTk4LDcgQEAgX19zdWNjZXNzCiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGUKICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LgogICovCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDE2JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBzdGFja193cml0ZV9wcml2X3ZzX3VucHJpdj0xNiYjMzQ7KQogX19mYWlsdXJlX3VucHJpdgogLyogVmFyaWFibGUgc3RhY2sgYWNjZXNzIGlzIHJlamVjdGVkIGZvciB1bnByaXZpbGVnZWQuCiAgKi8KQEAgLTIzOCw3ICYjNDM7MjM4LDcgQEAgX19zdWNjZXNzCiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGUKICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LgogICovCi1fX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDE2JiMzNDspCiYjNDM7X19sb2dfbGV2ZWwoNCkgX19tc2coJiMzNDtzdGFjayBkZXB0aCBzdGFja193cml0ZV9mb2xsb3dlZF9ieV9yZWFkPTE2JiMzNDspCiBfX2ZhaWx1cmVfdW5wcml2CiBfX21zZ191bnByaXYoJiMzNDtSMiB2YXJpYWJsZSBzdGFjayBhY2Nlc3MgcHJvaGliaXRlZCBmb3IgIXJvb3QmIzM0OykKIF9fcmV0dmFsKDApCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuYwppbmRleCBhOGFlMDNjNTdiYmFlLi42MWYwYjI5NTFiY2RhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMKQEAgLTEzMyw2ICYjNDM7MTMzLDcgQEAgc3RydWN0IGJwZl90ZXN0IHsKIAljb25zdCBjaGFyICplcnJzdHI7CiAJY29uc3QgY2hhciAqZXJyc3RyX3VucHJpdjsKIAl1aW50MzJfdCBpbnNuX3Byb2Nlc3NlZDsKJiM0MzsJdWludDMyX3QgbG9nX2xldmVsOwogCWludCBwcm9nX2xlbjsKIAllbnVtIHsKIAkJVU5ERUYsCkBAIC0xNTU5LDcgJiM0MzsxNTYwLDkgQEAgc3RhdGljIHZvaWQgZG9fdGVzdF9zaW5nbGUoc3RydWN0IGJwZl90ZXN0ICp0ZXN0LCBib29sIHVucHJpdiwKIAkJICAgICAgIHRlc3QtJmd0O2VycnN0cl91bnByaXYgOiB0ZXN0LSZndDtlcnJzdHI7CiAKIAlvcHRzLmV4cGVjdGVkX2F0dGFjaF90eXBlID0gdGVzdC0mZ3Q7ZXhwZWN0ZWRfYXR0YWNoX3R5cGU7Ci0JaWYgKGV4cGVjdGVkX3JldCA9PSBWRVJCT1NFX0FDQ0VQVCkKJiM0MzsJaWYgKHRlc3QtJmd0O2xvZ19sZXZlbCkKJiM0MzsJCW9wdHMubG9nX2xldmVsID0gdGVzdC0mZ3Q7bG9nX2xldmVsOwomIzQzOwllbHNlIGlmIChleHBlY3RlZF9yZXQgPT0gVkVSQk9TRV9BQ0NFUFQpCiAJCW9wdHMubG9nX2xldmVsID0gMjsKIAllbHNlIGlmICh2ZXJib3NlKQogCQlvcHRzLmxvZ19sZXZlbCA9IHZlcmlmX2xvZ19sZXZlbCB8IDQ7IC8qIGZvcmNlIHN0YXRzICovCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jCmluZGV4IDMwMmQ3MTJlMGQ3ZWQuLjFmN2NhMjcxZTA3YWYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jCkBAIC0xMDkxLDcgJiM0MzsxMDkxLDkgQEAKIAkvKiBzdGFja19tYWluPTMyLCBzdGFja19BPTI1Niwgc3RhY2tfQj02NAogCSAqIGFuZCBtYXgobWFpbiYjNDM7QSwgbWFpbiYjNDM7QSYjNDM7QikgJmx0OyA1MTIKIAkgKi8KLQkucmVzdWx0ID0gQUNDRVBULAomIzQzOwkucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsCiYjNDM7CS5lcnJzdHIgPSAmIzM0O3N0YWNrIGRlcHRoIHN1YnByb2dbMF09MzIgc3VicHJvZ1sxXT0yNTYgc3VicHJvZ1syXT02NCBtYXg9MzUyJiMzNDssCiYjNDM7CS5sb2dfbGV2ZWwgPSBERUZBVUxUX0xJQkJQRl9MT0dfTEVWRUwsCiB9LAogewogCSYjMzQ7Y2FsbHM6IHN0YWNrIGRlcHRoIGNoZWNrIHVzaW5nIHRocmVlIGZyYW1lcy4gdGVzdDImIzM0OywKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmMKaW5kZXggYzljMjU3Nzg0ZWUzZC4uZjQ3MGU2M2RmNDQwZSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmMKQEAgLTk5Nyw5ICYjNDM7OTk3LDEwIEBAIHN0YXRpYyBjaGFyIHZlcmlmX2xvZ19idWZbNjQgKiAxMDI0XTsKIAogc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpzKQogewotCWNvbnN0IGNoYXIgKmN1cjsKLQlpbnQgcG9zLCBsaW5lcywgc3ViX3N0YWNrLCBjbnQgPSAwOwotCWNoYXIgKnN0YXRlID0gTlVMTCwgKnRva2VuLCBzdGFja1s1MTJdOwomIzQzOwlsb25nIHN0YWNrX3RvdGFsLCBzdWJfc3RhY2s7CiYjNDM7CWNvbnN0IGNoYXIgKmN1ciwgKnA7CiYjNDM7CWludCBwb3MsIGxpbmVzOwomIzQzOwljaGFyICplbmQ7CiAKIAlidWZbYnVmX3N6IC0gMV0gPSAmIzM5O1wwJiMzOTs7CiAKQEAgLTEwMjUsMTMgJiM0MzsxMDI2LDE5IEBAIHN0YXRpYyBpbnQgcGFyc2VfdmVyaWZfbG9nKGNoYXIgKiBjb25zdCBidWYsIHNpemVfdCBidWZfc3osIHN0cnVjdCB2ZXJpZl9zdGF0cyAqCiAJCQkJJmFtcDtzLSZndDtzdGF0c1tNQVJLX1JFQURfTUFYX0xFTl0pKQogCQkJY29udGludWU7CiAKLQkJaWYgKDIgPT0gc3NjYW5mKGN1ciwgJiMzNDtzdGFjayBkZXB0aCAlNTExcyBtYXggJWxkJiMzNDssIHN0YWNrLCAmYW1wO3MtJmd0O3N0YXRzW01BWF9TVEFDS10pKQomIzQzOwkJaWYgKHN0cm5jbXAoY3VyLCAmIzM0O3N0YWNrIGRlcHRoICYjMzQ7LCBzaXplb2YoJiMzNDtzdGFjayBkZXB0aCAmIzM0OykgLSAxKSkKIAkJCWNvbnRpbnVlOwotCX0KLQl3aGlsZSAoKHRva2VuID0gc3RydG9rX3IoY250JiM0MzsmIzQzOyA/IE5VTEwgOiBzdGFjaywgJiMzNDsmIzQzOyYjMzQ7LCAmYW1wO3N0YXRlKSkpIHsKLQkJaWYgKHNzY2FuZih0b2tlbiwgJiMzNDslZCYjMzQ7LCAmYW1wO3N1Yl9zdGFjaykgPT0gMCkKLQkJCWJyZWFrOwotCQlzLSZndDtzdGF0c1tTVEFDS10gJiM0Mzs9IHN1Yl9zdGFjazsKJiM0MzsKJiM0MzsJCXN0YWNrX3RvdGFsID0gMDsKJiM0MzsJCWZvciAocCA9IGN1ciAmIzQzOyBzaXplb2YoJiMzNDtzdGFjayBkZXB0aCAmIzM0OykgLSAxOyAocCA9IHN0cmNocihwLCAmIzM5Oz0mIzM5OykpOyBwID0gZW5kKSB7CiYjNDM7CQkJc3ViX3N0YWNrID0gc3RydG9sKHAgJiM0MzsgMSwgJmFtcDtlbmQsIDEwKTsKJiM0MzsJCQlpZiAoKmVuZCA9PSAmIzM5O1xuJiMzOTspIHsKJiM0MzsJCQkJcy0mZ3Q7c3RhdHNbU1RBQ0tdID0gc3RhY2tfdG90YWw7CiYjNDM7CQkJCXMtJmd0O3N0YXRzW01BWF9TVEFDS10gPSBzdWJfc3RhY2s7CiYjNDM7CQkJCWJyZWFrOwomIzQzOwkJCX0KJiM0MzsJCQlzdGFja190b3RhbCAmIzQzOz0gc3ViX3N0YWNrOwomIzQzOwkJfQogCX0KIAlyZXR1cm4gMDsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTU6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjE4NwoJCQkJCQkJb3V0cHV0OiA4NQoJCQkJCQkJdGhvdWdodHM6IDY4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBWZXJpZmllciBMb2dnaW5nIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCBpdCYjMzk7cyBhIHN0cmFpZ2h0Zm9yd2FyZCBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBCUEYgdmVyaWZpZXIgcHJpbnRzIHZlcmlmaWNhdGlvbiBzdGF0cywgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gdGhlIHN0YWNrIGRlcHRoLiBJdCYjMzk7cyB0YXJnZXRpbmcgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyB0byBpbmNsdWRlIHN1YnByb2dyYW0gbmFtZXMgaW4gdGhlIG91dHB1dCBhbG9uZ3NpZGUgdGhlIHN0YWNrIGRlcHRoLCBpbnN0ZWFkIG9mIGp1c3QgYSBnZW5lcmljICYjMzQ7JiM0MzslZCYjMzQ7LiBUaGlzIHNlZW1zIGxpa2UgYSBwdXJlbHkgY29zbWV0aWMgZW5oYW5jZW1lbnQgdG8gdGhlIGxvZ2dpbmcuCgpJIGNhbiBzZWUgdGhhdCB0aGUgY2hhbmdlcyBpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYCBhcmUgY2xlYXJseSBmb2N1c2VkIG9uIHRoZSBgdmVyYm9zZSgpYCBvdXRwdXQuIEl0JiMzOTtzIG5vdyBnb2luZyB0byBwcmludCB0aGUgc3VicHJvZ3JhbSBuYW1lIGFuZCBpdHMgc3RhY2sgZGVwdGgsIGlmIGEgbmFtZSBleGlzdHMuIE90aGVyd2lzZSwgaXQgd2lsbCBwcmludCBzdWJwcm9nIGluZGV4LiBUaGUgY2hhbmdlIGlzIHNpbXBseSB0aGUgd2F5IHRoZSBkZXB0aCBpcyBwcmludGVkLgoKTm93LCBiYXNlZCBvbiB0aGUgaW5zdHJ1Y3Rpb25zLCBpZiB0aGUgcGF0Y2ggb25seSBpbmNsdWRlcyBkb2N1bWVudGF0aW9uLCBLY29uZmlnIG1vZGlmaWNhdGlvbnMsIGNvZGUgY29tbWVudCB1cGRhdGVzLCBvciB0aGVzZSBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIGNoYW5nZXMgKGxpa2UgYHByX2VycmAsIGBwcmludGtgLCBgdmVyYm9zZWApLCB0aGVuIGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4gVGhpcywgZnJvbSB0aGUgbG9vayBvZiB0aGUgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgY2hhbmdlLCBhcHBlYXJzIHRvIGJlIHRoZSBjYXNlLiBUaGUgYWN0dWFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSB2ZXJpZmllciBpc24mIzM5O3QgYWx0ZXJlZC4gVGhlIHBhdGNoIGp1c3QgbWFrZXMgdGhlIGxvZ3MgbW9yZSByZWFkYWJsZSBhbmQgaW5mb3JtYXRpdmUuCgpJJiMzOTttIGRvdWJsZS1jaGVja2luZyB0byBjb25maXJtIHRoYXQgdGhlcmUgYXJlICpubyogZnVuY3Rpb25hbCBjaGFuZ2VzIGhpZGRlbiBpbiB0aGUgcmVsYXRlZCBmaWxlcy4gSXQgc2VlbXMgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGFkYXB0cyB2YXJpb3VzIHNlbGZ0ZXN0czogVGhlIHNlbGZ0ZXN0cyBhbmQgYHZlcmlzdGF0LmNgIGFyZSBhbHNvIGJlaW5nIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgbmV3IGxvZyBmb3JtYXQuIEl0IGxvb2tzIGxpa2UgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmNgIGdldHMgc29tZSBgbG9nX2xldmVsYCBzZXR0aW5nIGFiaWxpdGllcyBhbmQgY2FsbHMuIEhvd2V2ZXIsIHRoYXQgc2VlbXMgcHVyZWx5IGZvciB0ZXN0IGNvbmZpZ3VyYXRpb24gYW5kIGRvZXNuJiMzOTt0IGNoYW5nZSBrZXJuZWwgZXhlY3V0aW9uLgoKVGhlIG1vZGlmaWNhdGlvbnMgaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy8qYCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jYCBhcmUgc2ltcGx5IHVwZGF0aW5nIGNoZWNrcyBhbmQgdXNpbmcgdGhlIG5ldyBsZXZlbCBzZXR0aW5ncy4gVGhpcyBmdXJ0aGVyIHJlaW5mb3JjZXMgdGhlIHBvaW50IHRoYXQgYWxsIHRoZSBjaGFuZ2VzIGFyZSBnZWFyZWQgdG93YXJkcyB0aGUgbmV3IGxvZyBmb3JtYXQgYW5kIHRlc3QgY29uZmlndXJhdGlvbiwgcmF0aGVyIHRoYW4gYW55IGNoYW5nZSB0byBob3cgQlBGIGNvZGUgaXMgYWN0dWFsbHkgKnZlcmlmaWVkKiBvciAqZXhlY3V0ZWQqLgoKU28sIGJhc2VkIG9uIHRoaXMgdGhvcm91Z2ggZXhhbWluYXRpb24sIEkmIzM5O20gY29uZmlkZW50IGluIGNvbmNsdWRpbmcgdGhhdCB0aGlzIHBhdGNoIGlzIGluZGVlZCBhIGRlY29yYXRpdmUgbG9nZ2luZyBjaGFuZ2UsIGFuZCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE1OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgbG9nZ2luZyBvdXRwdXQgZm9ybWF0IG9mIHRoZSBCUEYgdmVyaWZpZXIgc3RhdHMgKHNwZWNpZmljYWxseSBob3cgc3RhY2sgZGVwdGggaXMgcHJpbnRlZCkgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgc2VsZnRlc3RzIGFuZCB2ZXJpc3RhdCB0b29sIHRvIHBhcnNlIHRoZSBuZXcgZm9ybWF0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTU6NTM6MjAuODMxMDczODI1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTYyNzMyNTMxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgbG9nZ2luZyBvdXRwdXQgZm9ybWF0IG9mIHRoZSBCUEYgdmVyaWZpZXIgc3RhdHMgKHNwZWNpZmljYWxseSBob3cgc3RhY2sgZGVwdGggaXMgcHJpbnRlZCkgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgc2VsZnRlc3RzIGFuZCB2ZXJpc3RhdCB0b29sIHRvIHBhcnNlIHRoZSBuZXcgZm9ybWF0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE1OjUzOjIwLjgzMTA4NTUwNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY1NjUyMjUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDE1OjUzOjE5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDhkMDYzNWVlNDhjN2UuLjUxYWMwYTlhZTMzOTQgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTE4NzAzLDEwICsxODcwMywxOCBAQCBzdGF0aWMgdm9pZCBwcmludF92ZXJpZmljYXRpb25fc3RhdHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4gXFx0aWYgKGVudi1cXHUwMDNlbG9nLmxldmVsIFxcdTAwMjYgQlBGX0xPR19TVEFUUykge1xcbiBcXHRcXHR2ZXJib3NlKGVudiwgXFxcInZlcmlmaWNhdGlvbiB0aW1lICVsbGQgdXNlY1xcXFxuXFxcIixcXG4gXFx0XFx0XFx0ZGl2X3U2NChlbnYtXFx1MDAzZXZlcmlmaWNhdGlvbl90aW1lLCAxMDAwKSk7XFxuLVxcdFxcdHZlcmJvc2UoZW52LCBcXFwic3RhY2sgZGVwdGggJWRcXFwiLCBlbnYtXFx1MDAzZXN1YnByb2dfaW5mb1swXS5zdGFja19kZXB0aCk7XFxuLVxcdFxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBzdWJwcm9nX2NudDsgaSsrKVxcbi1cXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcIislZFxcXCIsIGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcXG4tXFx0XFx0dmVyYm9zZShlbnYsIFxcXCIgbWF4ICVkXFxcXG5cXFwiLCBlbnYtXFx1MDAzZW1heF9zdGFja19kZXB0aCk7XFxuK1xcdFxcdHZlcmJvc2UoZW52LCBcXFwic3RhY2sgZGVwdGhcXFwiKTtcXG4rXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHN1YnByb2dfY250OyBpKyspIHtcXG4rXFx0XFx0XFx0Y29uc3QgY2hhciAqbmFtZSA9IGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLm5hbWU7XFxuK1xcbitcXHRcXHRcXHRpZiAobmFtZSBcXHUwMDI2XFx1MDAyNiBuYW1lWzBdKVxcbitcXHRcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcIiAlcz0lZFxcXCIsIG5hbWUsXFxuK1xcdFxcdFxcdFxcdFxcdGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcXG4rXFx0XFx0XFx0ZWxzZVxcbitcXHRcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcIiBzdWJwcm9nWyVkXT0lZFxcXCIsIGksXFxuK1xcdFxcdFxcdFxcdFxcdGVudi1cXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcXG4rXFx0XFx0fVxcbitcXHRcXHR2ZXJib3NlKGVudiwgXFxcIiBtYXg9JWRcXFxcblxcXCIsIGVudi1cXHUwMDNlbWF4X3N0YWNrX2RlcHRoKTtcXG4gXFx0XFx0dmVyYm9zZShlbnYsIFxcXCJpbnNucyBwcm9jZXNzZWQgJWRcXFwiLCBlbnYtXFx1MDAzZXN1YnByb2dfaW5mb1swXS5pbnNuX3Byb2Nlc3NlZCk7XFxuIFxcdFxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBzdWJwcm9nX2NudDsgaSsrKVxcbiBcXHRcXHRcXHRpZiAoYnBmX3N1YnByb2dfaXNfZ2xvYmFsKGVudiwgaSkpXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcXG5pbmRleCBmYjYyZTA5ZjIxMTQ2Li5mMTM1YzRiOTM0NGJjIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcXG5AQCAtMjcsNyArMjcsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfb3V0X29mX2JvdW5kcyh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJ1bmluaXRpYWxpemVkIHN0YWNrMVxcXCIpXFxuLV9fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggOFxcXCIpXFxuK19fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggdW5pbml0aWFsaXplZF9zdGFjazE9OFxcXCIpXFxuIF9fZmFpbHVyZV91bnByaXYgX19tc2dfdW5wcml2KFxcXCJpbnZhbGlkIHJlYWQgZnJvbSBzdGFja1xcXCIpXFxuIF9fbmFrZWQgdm9pZCB1bmluaXRpYWxpemVkX3N0YWNrMSh2b2lkKVxcbiB7XFxuQEAgLTQ1LDcgKzQ1LDcgQEAgX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInVuaW5pdGlhbGl6ZWQgc3RhY2syXFxcIilcXG4tX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4XFxcIilcXG4rX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCB1bmluaXRpYWxpemVkX3N0YWNrMj04XFxcIilcXG4gX19mYWlsdXJlX3VucHJpdiBfX21zZ191bnByaXYoXFxcImludmFsaWQgcmVhZCBmcm9tIHN0YWNrXFxcIilcXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2syKHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXFxuaW5kZXggODM3MDdmYWVhMDQ5OS4uMGI0ODE1NjkyMGRmOCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG5AQCAtMTAsNyArMTAsNyBAQFxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4XFxcIilcXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIHNpbXBsZT04XFxcIilcXG4gX194bGF0ZWQoXFxcIjQ6IHI1ID0gNVxcXCIpXFxuIF9feGxhdGVkKFxcXCI1OiByMCA9IFxcXCIpXFxuIF9feGxhdGVkKFxcXCI2OiByMCA9IFxcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcXFwiKVxcbkBAIC05Niw3ICs5Niw3IEBAIF9fbmFrZWQgdm9pZCBjYW5hcnlfemVyb19zcGlsbHModm9pZClcXG4gXFxuIFNFQyhcXFwicmF3X3RwXFxcIilcXG4gX19hcmNoX3g4Nl82NFxcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggd3JvbmdfcmVnX2luX3BhdHRlcm4xPTE2XFxcIilcXG4gX194bGF0ZWQoXFxcIjE6ICoodTY0ICopKHIxMCAtMTYpID0gcjFcXFwiKVxcbiBfX3hsYXRlZChcXFwiLi4uXFxcIilcXG4gX194bGF0ZWQoXFxcIjM6IHIwID0gXFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVxcXCIpXFxuQEAgLTU5OCw3ICs1OTgsNyBAQCBfX25ha2VkIHN0YXRpYyB2b2lkIHN1YnByb2dzX3VzZV9pbmRlcGVuZGVudF9vZmZzZXRzX2F1eCh2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4XFxcIilcXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsPThcXFwiKVxcbiBfX3hsYXRlZChcXFwiMjogcjAgPSBcXHUwMDI2KHZvaWQgX19wZXJjcHUgKikocjApXFxcIilcXG4gX19zdWNjZXNzXFxuIF9fbmFrZWQgdm9pZCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbCh2b2lkKVxcbkBAIC02MjAsNyArNjIwLDcgQEAgX19uYWtlZCB2b2lkIGhlbHBlcl9jYWxsX2RvZXNfbm90X3ByZXZlbnRfYnBmX2Zhc3RjYWxsKHZvaWQpXFxuIFxcbiBTRUMoXFxcInJhd190cFxcXCIpXFxuIF9fYXJjaF94ODZfNjRcXG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIDI0XFxcIilcXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82ND0yNFxcXCIpXFxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXFxuIF9feGxhdGVkKFxcXCIwOiAqKHU2NCAqKShyMTAgLTI0KSA9XFxcIilcXG4gLyogbWF5X2dvdG8gdGltZXN0YW1wIGF0IC0xNiAqL1xcbkBAIC02NjEsNyArNjYxLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKVxcbiBTRUMoXFxcInJhd190cFxcXCIpXFxuIF9fYXJjaF9hcm02NFxcbiBfX2FyY2hfcmlzY3Y2NFxcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMjRcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggbWF5X2dvdG9faW50ZXJhY3Rpb249MjRcXFwiKVxcbiAvKiBtYXlfZ290byBjb3VudGVyIGF0IC0yNCAqL1xcbiBfX3hsYXRlZChcXFwiMDogKih1NjQgKikocjEwIC0yNCkgPVxcXCIpXFxuIC8qIG1heV9nb3RvIHRpbWVzdGFtcCBhdCAtMTYgKi9cXG5AQCAtNzA4LDcgKzcwOCw4IEBAIF9fbmFrZWQgc3RhdGljIHZvaWQgZHVtbXlfbG9vcF9jYWxsYmFjayh2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCAzMiswXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMT0zMiBkdW1teV9sb29wX2NhbGxiYWNrPTBcXFwiKVxcbiBfX3hsYXRlZChcXFwiMjogcjEgPSAxXFxcIilcXG4gX194bGF0ZWQoXFxcIjM6IHIwID1cXFwiKVxcbiBfX3hsYXRlZChcXFwiNDogcjAgPSBcXHUwMDI2KHZvaWQgX19wZXJjcHUgKikocjApXFxcIilcXG5AQCAtNzU2LDcgKzc1Nyw4IEBAIF9fbmFrZWQgaW50IGJwZl9sb29wX2ludGVyYWN0aW9uMSh2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA0MCswXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMj00MCBkdW1teV9sb29wX2NhbGxiYWNrPTBcXFwiKVxcbiAvKiBjYWxsIGJwZl9nZXRfc21wX3Byb2Nlc3Nvcl9pZCAqL1xcbiBfX3hsYXRlZChcXFwiMjogcjEgPSA0MlxcXCIpXFxuIF9feGxhdGVkKFxcXCIzOiByMCA9XFxcIilcXG5AQCAtODAwLDcgKzgwMiw4IEBAIF9fbmFrZWQgaW50IGJwZl9sb29wX2ludGVyYWN0aW9uMih2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA1MTIrMCBtYXggNTEyXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGg9NTEyIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZz0wIG1heD01MTJcXFwiKVxcbiAvKiBqdXN0IHRvIHByaW50IHhsYXRlZCB2ZXJzaW9uIHdoZW4gZGVidWdnaW5nICovXFxuIF9feGxhdGVkKFxcXCJyMCA9IFxcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcXFwiKVxcbiBfX3N1Y2Nlc3NcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcXG5pbmRleCBiYjgyMDZlMTA4ODBjLi40YTRhNWE4OTFmNjJmIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXFxuQEAgLTg2LDcgKzg2LDggQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2codm9pZClcXG4gU0VDKFxcXCJrcHJvYmVcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJQcml2YXRlIHN0YWNrLCBzdWJ0cmVlIFxcdTAwM2UgTUFYX0JQRl9TVEFDS1xcXCIpXFxuIF9fc3VjY2Vzc1xcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggNTEyKzMyIG1heCA1MTJcXFwiKVxcbitfX2xvZ19sZXZlbCg0KVxcbitfX21zZyhcXFwic3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19uZXN0ZWRfMT01MTIgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nPTMyIG1heD01MTJcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIC8qIHByaXZhdGUgc3RhY2sgZnAgZm9yIHRoZSBtYWluIHByb2cgKi9cXG4gX19qaXRlZChcXFwiXFx0bW92YWJzcVxcdCQweHt7Lip9fSwgJXI5XFxcIilcXG5AQCAtMzMxLDcgKzMzMiw4IEBAIFNFQyhcXFwiZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJQcml2YXRlIHN0YWNrLCBhc3luYyBjYWxsYmFjaywgcG90ZW50aWFsIG5lc3RpbmdcXFwiKVxcbiBfX3N1Y2Nlc3MgX19yZXR2YWwoMClcXG4gX19sb2FkX2lmX0pJVGVkKClcXG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXFxcInN0YWNrIGRlcHRoIDgrMCsyNTYrMCBtYXggMjcyXFxcIilcXG4rX19sb2dfbGV2ZWwoNClcXG4rX19tc2coXFxcInN0YWNrIGRlcHRoIHByaXZhdGVfc3RhY2tfYXN5bmNfY2FsbGJhY2tfMj04IHRpbWVyX2NiMT0wIHN1YnByb2cxPTI1NiBzdWJwcm9nMj0wIG1heD0yNzJcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9faml0ZWQoXFxcIlxcdHN1YnFcXHQkMHgxMDAsICVyc3BcXFwiKVxcbiBfX2FyY2hfYXJtNjRcXG5AQCAtMzU1LDcgKzM1Nyw4IEBAIGludCBwcml2YXRlX3N0YWNrX2FzeW5jX2NhbGxiYWNrXzIodm9pZClcXG4gU0VDKFxcXCJmZW50cnkvYnBmX2ZlbnRyeV90ZXN0OVxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInByaXZhdGUgc3RhY2ssIG1heCBzdGFjayBkZXB0aCBpcyBwcml2YXRlIHN0YWNrXFxcIilcXG4gX19zdWNjZXNzXFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCA4KzI1NiswIG1heCAyNTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KVxcbitfX21zZyhcXFwic3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19tYXhfZGVwdGg9OCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjU2XFxcIilcXG4gaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXFxuIHtcXG4gXFx0aW50IHggPSAwO1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuY1xcbmluZGV4IDI0Y2QwYTc2MzY3MzAuLjdmYjgxYTk1NGViMWYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcXG5AQCAtMTk4LDcgKzE5OCw3IEBAIF9fc3VjY2Vzc1xcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcXG4gICogbWF4aW11bSBwb3NzaWJsZSB2YXJpYWJsZSBvZmZzZXQuXFxuICAqL1xcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggc3RhY2tfd3JpdGVfcHJpdl92c191bnByaXY9MTZcXFwiKVxcbiBfX2ZhaWx1cmVfdW5wcml2XFxuIC8qIFZhcmlhYmxlIHN0YWNrIGFjY2VzcyBpcyByZWplY3RlZCBmb3IgdW5wcml2aWxlZ2VkLlxcbiAgKi9cXG5AQCAtMjM4LDcgKzIzOCw3IEBAIF9fc3VjY2Vzc1xcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcXG4gICogbWF4aW11bSBwb3NzaWJsZSB2YXJpYWJsZSBvZmZzZXQuXFxuICAqL1xcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggMTZcXFwiKVxcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcXFwic3RhY2sgZGVwdGggc3RhY2tfd3JpdGVfZm9sbG93ZWRfYnlfcmVhZD0xNlxcXCIpXFxuIF9fZmFpbHVyZV91bnByaXZcXG4gX19tc2dfdW5wcml2KFxcXCJSMiB2YXJpYWJsZSBzdGFjayBhY2Nlc3MgcHJvaGliaXRlZCBmb3IgIXJvb3RcXFwiKVxcbiBfX3JldHZhbCgwKVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xcbmluZGV4IGE4YWUwM2M1N2JiYWUuLjYxZjBiMjk1MWJjZGEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmNcXG5AQCAtMTMzLDYgKzEzMyw3IEBAIHN0cnVjdCBicGZfdGVzdCB7XFxuIFxcdGNvbnN0IGNoYXIgKmVycnN0cjtcXG4gXFx0Y29uc3QgY2hhciAqZXJyc3RyX3VucHJpdjtcXG4gXFx0dWludDMyX3QgaW5zbl9wcm9jZXNzZWQ7XFxuK1xcdHVpbnQzMl90IGxvZ19sZXZlbDtcXG4gXFx0aW50IHByb2dfbGVuO1xcbiBcXHRlbnVtIHtcXG4gXFx0XFx0VU5ERUYsXFxuQEAgLTE1NTksNyArMTU2MCw5IEBAIHN0YXRpYyB2b2lkIGRvX3Rlc3Rfc2luZ2xlKHN0cnVjdCBicGZfdGVzdCAqdGVzdCwgYm9vbCB1bnByaXYsXFxuIFxcdFxcdCAgICAgICB0ZXN0LVxcdTAwM2VlcnJzdHJfdW5wcml2IDogdGVzdC1cXHUwMDNlZXJyc3RyO1xcbiBcXG4gXFx0b3B0cy5leHBlY3RlZF9hdHRhY2hfdHlwZSA9IHRlc3QtXFx1MDAzZWV4cGVjdGVkX2F0dGFjaF90eXBlO1xcbi1cXHRpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxcbitcXHRpZiAodGVzdC1cXHUwMDNlbG9nX2xldmVsKVxcbitcXHRcXHRvcHRzLmxvZ19sZXZlbCA9IHRlc3QtXFx1MDAzZWxvZ19sZXZlbDtcXG4rXFx0ZWxzZSBpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxcbiBcXHRcXHRvcHRzLmxvZ19sZXZlbCA9IDI7XFxuIFxcdGVsc2UgaWYgKHZlcmJvc2UpXFxuIFxcdFxcdG9wdHMubG9nX2xldmVsID0gdmVyaWZfbG9nX2xldmVsIHwgNDsgLyogZm9yY2Ugc3RhdHMgKi9cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xcbmluZGV4IDMwMmQ3MTJlMGQ3ZWQuLjFmN2NhMjcxZTA3YWYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xcbkBAIC0xMDkxLDcgKzEwOTEsOSBAQFxcbiBcXHQvKiBzdGFja19tYWluPTMyLCBzdGFja19BPTI1Niwgc3RhY2tfQj02NFxcbiBcXHQgKiBhbmQgbWF4KG1haW4rQSwgbWFpbitBK0IpIFxcdTAwM2MgNTEyXFxuIFxcdCAqL1xcbi1cXHQucmVzdWx0ID0gQUNDRVBULFxcbitcXHQucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsXFxuK1xcdC5lcnJzdHIgPSBcXFwic3RhY2sgZGVwdGggc3VicHJvZ1swXT0zMiBzdWJwcm9nWzFdPTI1NiBzdWJwcm9nWzJdPTY0IG1heD0zNTJcXFwiLFxcbitcXHQubG9nX2xldmVsID0gREVGQVVMVF9MSUJCUEZfTE9HX0xFVkVMLFxcbiB9LFxcbiB7XFxuIFxcdFxcXCJjYWxsczogc3RhY2sgZGVwdGggY2hlY2sgdXNpbmcgdGhyZWUgZnJhbWVzLiB0ZXN0MlxcXCIsXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcXG5pbmRleCBjOWMyNTc3ODRlZTNkLi5mNDcwZTYzZGY0NDBlIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcXG5AQCAtOTk3LDkgKzk5NywxMCBAQCBzdGF0aWMgY2hhciB2ZXJpZl9sb2dfYnVmWzY0ICogMTAyNF07XFxuIFxcbiBzdGF0aWMgaW50IHBhcnNlX3ZlcmlmX2xvZyhjaGFyICogY29uc3QgYnVmLCBzaXplX3QgYnVmX3N6LCBzdHJ1Y3QgdmVyaWZfc3RhdHMgKnMpXFxuIHtcXG4tXFx0Y29uc3QgY2hhciAqY3VyO1xcbi1cXHRpbnQgcG9zLCBsaW5lcywgc3ViX3N0YWNrLCBjbnQgPSAwO1xcbi1cXHRjaGFyICpzdGF0ZSA9IE5VTEwsICp0b2tlbiwgc3RhY2tbNTEyXTtcXG4rXFx0bG9uZyBzdGFja190b3RhbCwgc3ViX3N0YWNrO1xcbitcXHRjb25zdCBjaGFyICpjdXIsICpwO1xcbitcXHRpbnQgcG9zLCBsaW5lcztcXG4rXFx0Y2hhciAqZW5kO1xcbiBcXG4gXFx0YnVmW2J1Zl9zeiAtIDFdID0gJ1xcXFwwJztcXG4gXFxuQEAgLTEwMjUsMTMgKzEwMjYsMTkgQEAgc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpcXG4gXFx0XFx0XFx0XFx0XFx1MDAyNnMtXFx1MDAzZXN0YXRzW01BUktfUkVBRF9NQVhfTEVOXSkpXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXG4tXFx0XFx0aWYgKDIgPT0gc3NjYW5mKGN1ciwgXFxcInN0YWNrIGRlcHRoICU1MTFzIG1heCAlbGRcXFwiLCBzdGFjaywgXFx1MDAyNnMtXFx1MDAzZXN0YXRzW01BWF9TVEFDS10pKVxcbitcXHRcXHRpZiAoc3RybmNtcChjdXIsIFxcXCJzdGFjayBkZXB0aCBcXFwiLCBzaXplb2YoXFxcInN0YWNrIGRlcHRoIFxcXCIpIC0gMSkpXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbi1cXHR9XFxuLVxcdHdoaWxlICgodG9rZW4gPSBzdHJ0b2tfcihjbnQrKyA/IE5VTEwgOiBzdGFjaywgXFxcIitcXFwiLCBcXHUwMDI2c3RhdGUpKSkge1xcbi1cXHRcXHRpZiAoc3NjYW5mKHRva2VuLCBcXFwiJWRcXFwiLCBcXHUwMDI2c3ViX3N0YWNrKSA9PSAwKVxcbi1cXHRcXHRcXHRicmVhaztcXG4tXFx0XFx0cy1cXHUwMDNlc3RhdHNbU1RBQ0tdICs9IHN1Yl9zdGFjaztcXG4rXFxuK1xcdFxcdHN0YWNrX3RvdGFsID0gMDtcXG4rXFx0XFx0Zm9yIChwID0gY3VyICsgc2l6ZW9mKFxcXCJzdGFjayBkZXB0aCBcXFwiKSAtIDE7IChwID0gc3RyY2hyKHAsICc9JykpOyBwID0gZW5kKSB7XFxuK1xcdFxcdFxcdHN1Yl9zdGFjayA9IHN0cnRvbChwICsgMSwgXFx1MDAyNmVuZCwgMTApO1xcbitcXHRcXHRcXHRpZiAoKmVuZCA9PSAnXFxcXG4nKSB7XFxuK1xcdFxcdFxcdFxcdHMtXFx1MDAzZXN0YXRzW1NUQUNLXSA9IHN0YWNrX3RvdGFsO1xcbitcXHRcXHRcXHRcXHRzLVxcdTAwM2VzdGF0c1tNQVhfU1RBQ0tdID0gc3ViX3N0YWNrO1xcbitcXHRcXHRcXHRcXHRicmVhaztcXG4rXFx0XFx0XFx0fVxcbitcXHRcXHRcXHRzdGFja190b3RhbCArPSBzdWJfc3RhY2s7XFxuK1xcdFxcdH1cXG4gXFx0fVxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxNTo1MzoyMS4yOTcyOTU1NjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo5MTYxMDk1NDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBsb2dnaW5nIG91dHB1dCBmb3JtYXQgb2YgdGhlIEJQRiB2ZXJpZmllciBzdGF0cyAoc3BlY2lmaWNhbGx5IGhvdyBzdGFjayBkZXB0aCBpcyBwcmludGVkKSBhbmQgdXBkYXRlcyB0aGUgY29ycmVzcG9uZGluZyBzZWxmdGVzdHMgYW5kIHZlcmlzdGF0IHRvb2wgdG8gcGFyc2UgdGhlIG5ldyBmb3JtYXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDVkYmRlNzNmMjExN2Y0NmYyZjZiZmE1YjNjZmNhNWEyNjQxMTM2ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMTU6NTM6MTkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDhkMDYzNWVlNDhjN2UuLjUxYWMwYTlhZTMzOTQgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTE4NzAzLDEwICsxODcwMywxOCBAQCBzdGF0aWMgdm9pZCBwcmludF92ZXJpZmljYXRpb25fc3RhdHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbiBcdGlmIChlbnYtXHUwMDNlbG9nLmxldmVsIFx1MDAyNiBCUEZfTE9HX1NUQVRTKSB7XG4gXHRcdHZlcmJvc2UoZW52LCBcInZlcmlmaWNhdGlvbiB0aW1lICVsbGQgdXNlY1xcblwiLFxuIFx0XHRcdGRpdl91NjQoZW52LVx1MDAzZXZlcmlmaWNhdGlvbl90aW1lLCAxMDAwKSk7XG4tXHRcdHZlcmJvc2UoZW52LCBcInN0YWNrIGRlcHRoICVkXCIsIGVudi1cdTAwM2VzdWJwcm9nX2luZm9bMF0uc3RhY2tfZGVwdGgpO1xuLVx0XHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBzdWJwcm9nX2NudDsgaSsrKVxuLVx0XHRcdHZlcmJvc2UoZW52LCBcIislZFwiLCBlbnYtXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcbi1cdFx0dmVyYm9zZShlbnYsIFwiIG1heCAlZFxcblwiLCBlbnYtXHUwMDNlbWF4X3N0YWNrX2RlcHRoKTtcbitcdFx0dmVyYm9zZShlbnYsIFwic3RhY2sgZGVwdGhcIik7XG4rXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHN1YnByb2dfY250OyBpKyspIHtcbitcdFx0XHRjb25zdCBjaGFyICpuYW1lID0gZW52LVx1MDAzZXN1YnByb2dfaW5mb1tpXS5uYW1lO1xuK1xuK1x0XHRcdGlmIChuYW1lIFx1MDAyNlx1MDAyNiBuYW1lWzBdKVxuK1x0XHRcdFx0dmVyYm9zZShlbnYsIFwiICVzPSVkXCIsIG5hbWUsXG4rXHRcdFx0XHRcdGVudi1cdTAwM2VzdWJwcm9nX2luZm9baV0uc3RhY2tfZGVwdGgpO1xuK1x0XHRcdGVsc2VcbitcdFx0XHRcdHZlcmJvc2UoZW52LCBcIiBzdWJwcm9nWyVkXT0lZFwiLCBpLFxuK1x0XHRcdFx0XHRlbnYtXHUwMDNlc3VicHJvZ19pbmZvW2ldLnN0YWNrX2RlcHRoKTtcbitcdFx0fVxuK1x0XHR2ZXJib3NlKGVudiwgXCIgbWF4PSVkXFxuXCIsIGVudi1cdTAwM2VtYXhfc3RhY2tfZGVwdGgpO1xuIFx0XHR2ZXJib3NlKGVudiwgXCJpbnNucyBwcm9jZXNzZWQgJWRcIiwgZW52LVx1MDAzZXN1YnByb2dfaW5mb1swXS5pbnNuX3Byb2Nlc3NlZCk7XG4gXHRcdGZvciAoaSA9IDE7IGkgXHUwMDNjIHN1YnByb2dfY250OyBpKyspXG4gXHRcdFx0aWYgKGJwZl9zdWJwcm9nX2lzX2dsb2JhbChlbnYsIGkpKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbmluZGV4IGZiNjJlMDlmMjExNDYuLmYxMzVjNGI5MzQ0YmMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbkBAIC0yNyw3ICsyNyw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19vdXRfb2ZfYm91bmRzKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInVuaW5pdGlhbGl6ZWQgc3RhY2sxXCIpXG4tX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggOFwiKVxuK19fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2sxPThcIilcbiBfX2ZhaWx1cmVfdW5wcml2IF9fbXNnX3VucHJpdihcImludmFsaWQgcmVhZCBmcm9tIHN0YWNrXCIpXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXG4ge1xuQEAgLTQ1LDcgKzQ1LDcgQEAgX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2sxKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInVuaW5pdGlhbGl6ZWQgc3RhY2syXCIpXG4tX19zdWNjZXNzIF9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggOFwiKVxuK19fc3VjY2VzcyBfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHVuaW5pdGlhbGl6ZWRfc3RhY2syPThcIilcbiBfX2ZhaWx1cmVfdW5wcml2IF9fbXNnX3VucHJpdihcImludmFsaWQgcmVhZCBmcm9tIHN0YWNrXCIpXG4gX19uYWtlZCB2b2lkIHVuaW5pdGlhbGl6ZWRfc3RhY2syKHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuaW5kZXggODM3MDdmYWVhMDQ5OS4uMGI0ODE1NjkyMGRmOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG5AQCAtMTAsNyArMTAsNyBAQFxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDhcIilcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHNpbXBsZT04XCIpXG4gX194bGF0ZWQoXCI0OiByNSA9IDVcIilcbiBfX3hsYXRlZChcIjU6IHIwID0gXCIpXG4gX194bGF0ZWQoXCI2OiByMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuQEAgLTk2LDcgKzk2LDcgQEAgX19uYWtlZCB2b2lkIGNhbmFyeV96ZXJvX3NwaWxscyh2b2lkKVxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDE2XCIpXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCB3cm9uZ19yZWdfaW5fcGF0dGVybjE9MTZcIilcbiBfX3hsYXRlZChcIjE6ICoodTY0ICopKHIxMCAtMTYpID0gcjFcIilcbiBfX3hsYXRlZChcIi4uLlwiKVxuIF9feGxhdGVkKFwiMzogcjAgPSBcdTAwMjYodm9pZCBfX3BlcmNwdSAqKShyMClcIilcbkBAIC01OTgsNyArNTk4LDcgQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBzdWJwcm9nc191c2VfaW5kZXBlbmRlbnRfb2Zmc2V0c19hdXgodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA4XCIpXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbD04XCIpXG4gX194bGF0ZWQoXCIyOiByMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuIF9fc3VjY2Vzc1xuIF9fbmFrZWQgdm9pZCBoZWxwZXJfY2FsbF9kb2VzX25vdF9wcmV2ZW50X2JwZl9mYXN0Y2FsbCh2b2lkKVxuQEAgLTYyMCw3ICs2MjAsNyBAQCBfX25ha2VkIHZvaWQgaGVscGVyX2NhbGxfZG9lc19ub3RfcHJldmVudF9icGZfZmFzdGNhbGwodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCAyNFwiKVxuK19fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggbWF5X2dvdG9faW50ZXJhY3Rpb25feDg2XzY0PTI0XCIpXG4gLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi9cbiBfX3hsYXRlZChcIjA6ICoodTY0ICopKHIxMCAtMjQpID1cIilcbiAvKiBtYXlfZ290byB0aW1lc3RhbXAgYXQgLTE2ICovXG5AQCAtNjYxLDcgKzY2MSw3IEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbl94ODZfNjQodm9pZClcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfYXJtNjRcbiBfX2FyY2hfcmlzY3Y2NFxuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggMjRcIilcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIG1heV9nb3RvX2ludGVyYWN0aW9uPTI0XCIpXG4gLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi9cbiBfX3hsYXRlZChcIjA6ICoodTY0ICopKHIxMCAtMjQpID1cIilcbiAvKiBtYXlfZ290byB0aW1lc3RhbXAgYXQgLTE2ICovXG5AQCAtNzA4LDcgKzcwOCw4IEBAIF9fbmFrZWQgc3RhdGljIHZvaWQgZHVtbXlfbG9vcF9jYWxsYmFjayh2b2lkKVxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF94ODZfNjRcbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDMyKzBcIilcbitfX2xvZ19sZXZlbCg0KVxuK19fbXNnKFwic3RhY2sgZGVwdGggYnBmX2xvb3BfaW50ZXJhY3Rpb24xPTMyIGR1bW15X2xvb3BfY2FsbGJhY2s9MFwiKVxuIF9feGxhdGVkKFwiMjogcjEgPSAxXCIpXG4gX194bGF0ZWQoXCIzOiByMCA9XCIpXG4gX194bGF0ZWQoXCI0OiByMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuQEAgLTc1Niw3ICs3NTcsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjEodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA0MCswXCIpXG4rX19sb2dfbGV2ZWwoNClcbitfX21zZyhcInN0YWNrIGRlcHRoIGJwZl9sb29wX2ludGVyYWN0aW9uMj00MCBkdW1teV9sb29wX2NhbGxiYWNrPTBcIilcbiAvKiBjYWxsIGJwZl9nZXRfc21wX3Byb2Nlc3Nvcl9pZCAqL1xuIF9feGxhdGVkKFwiMjogcjEgPSA0MlwiKVxuIF9feGxhdGVkKFwiMzogcjAgPVwiKVxuQEAgLTgwMCw3ICs4MDIsOCBAQCBfX25ha2VkIGludCBicGZfbG9vcF9pbnRlcmFjdGlvbjIodm9pZClcbiBcbiBTRUMoXCJyYXdfdHBcIilcbiBfX2FyY2hfeDg2XzY0XG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA1MTIrMCBtYXggNTEyXCIpXG4rX19sb2dfbGV2ZWwoNClcbitfX21zZyhcInN0YWNrIGRlcHRoIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGg9NTEyIGN1bXVsYXRpdmVfc3RhY2tfZGVwdGhfc3VicHJvZz0wIG1heD01MTJcIilcbiAvKiBqdXN0IHRvIHByaW50IHhsYXRlZCB2ZXJzaW9uIHdoZW4gZGVidWdnaW5nICovXG4gX194bGF0ZWQoXCJyMCA9IFx1MDAyNih2b2lkIF9fcGVyY3B1ICopKHIwKVwiKVxuIF9fc3VjY2Vzc1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG5pbmRleCBiYjgyMDZlMTA4ODBjLi40YTRhNWE4OTFmNjJmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuQEAgLTg2LDcgKzg2LDggQEAgX19uYWtlZCBzdGF0aWMgdm9pZCBjdW11bGF0aXZlX3N0YWNrX2RlcHRoX3N1YnByb2codm9pZClcbiBTRUMoXCJrcHJvYmVcIilcbiBfX2Rlc2NyaXB0aW9uKFwiUHJpdmF0ZSBzdGFjaywgc3VidHJlZSBcdTAwM2UgTUFYX0JQRl9TVEFDS1wiKVxuIF9fc3VjY2Vzc1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggNTEyKzMyIG1heCA1MTJcIilcbitfX2xvZ19sZXZlbCg0KVxuK19fbXNnKFwic3RhY2sgZGVwdGggcHJpdmF0ZV9zdGFja19uZXN0ZWRfMT01MTIgY3VtdWxhdGl2ZV9zdGFja19kZXB0aF9zdWJwcm9nPTMyIG1heD01MTJcIilcbiBfX2FyY2hfeDg2XzY0XG4gLyogcHJpdmF0ZSBzdGFjayBmcCBmb3IgdGhlIG1haW4gcHJvZyAqL1xuIF9faml0ZWQoXCJcdG1vdmFic3FcdCQweHt7Lip9fSwgJXI5XCIpXG5AQCAtMzMxLDcgKzMzMiw4IEBAIFNFQyhcImZlbnRyeS9icGZfZmVudHJ5X3Rlc3Q5XCIpXG4gX19kZXNjcmlwdGlvbihcIlByaXZhdGUgc3RhY2ssIGFzeW5jIGNhbGxiYWNrLCBwb3RlbnRpYWwgbmVzdGluZ1wiKVxuIF9fc3VjY2VzcyBfX3JldHZhbCgwKVxuIF9fbG9hZF9pZl9KSVRlZCgpXG4tX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCA4KzArMjU2KzAgbWF4IDI3MlwiKVxuK19fbG9nX2xldmVsKDQpXG4rX19tc2coXCJzdGFjayBkZXB0aCBwcml2YXRlX3N0YWNrX2FzeW5jX2NhbGxiYWNrXzI9OCB0aW1lcl9jYjE9MCBzdWJwcm9nMT0yNTYgc3VicHJvZzI9MCBtYXg9MjcyXCIpXG4gX19hcmNoX3g4Nl82NFxuIF9faml0ZWQoXCJcdHN1YnFcdCQweDEwMCwgJXJzcFwiKVxuIF9fYXJjaF9hcm02NFxuQEAgLTM1NSw3ICszNTcsOCBAQCBpbnQgcHJpdmF0ZV9zdGFja19hc3luY19jYWxsYmFja18yKHZvaWQpXG4gU0VDKFwiZmVudHJ5L2JwZl9mZW50cnlfdGVzdDlcIilcbiBfX2Rlc2NyaXB0aW9uKFwicHJpdmF0ZSBzdGFjaywgbWF4IHN0YWNrIGRlcHRoIGlzIHByaXZhdGUgc3RhY2tcIilcbiBfX3N1Y2Nlc3Ncbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDgrMjU2KzAgbWF4IDI1NlwiKVxuK19fbG9nX2xldmVsKDQpXG4rX19tc2coXCJzdGFjayBkZXB0aCBwcml2YXRlX3N0YWNrX21heF9kZXB0aD04IHN1YnByb2cxPTI1NiBzdWJwcm9nMj0wIG1heD0yNTZcIilcbiBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZClcbiB7XG4gXHRpbnQgeCA9IDA7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3Zhcl9vZmYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl92YXJfb2ZmLmNcbmluZGV4IDI0Y2QwYTc2MzY3MzAuLjdmYjgxYTk1NGViMWYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfdmFyX29mZi5jXG5AQCAtMTk4LDcgKzE5OCw3IEBAIF9fc3VjY2Vzc1xuIC8qIENoZWNrIHRoYXQgdGhlIG1heGltdW0gc3RhY2sgZGVwdGggaXMgY29ycmVjdGx5IG1haW50YWluZWQgYWNjb3JkaW5nIHRvIHRoZVxuICAqIG1heGltdW0gcG9zc2libGUgdmFyaWFibGUgb2Zmc2V0LlxuICAqL1xuLV9fbG9nX2xldmVsKDQpIF9fbXNnKFwic3RhY2sgZGVwdGggMTZcIilcbitfX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIHN0YWNrX3dyaXRlX3ByaXZfdnNfdW5wcml2PTE2XCIpXG4gX19mYWlsdXJlX3VucHJpdlxuIC8qIFZhcmlhYmxlIHN0YWNrIGFjY2VzcyBpcyByZWplY3RlZCBmb3IgdW5wcml2aWxlZ2VkLlxuICAqL1xuQEAgLTIzOCw3ICsyMzgsNyBAQCBfX3N1Y2Nlc3NcbiAvKiBDaGVjayB0aGF0IHRoZSBtYXhpbXVtIHN0YWNrIGRlcHRoIGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGFjY29yZGluZyB0byB0aGVcbiAgKiBtYXhpbXVtIHBvc3NpYmxlIHZhcmlhYmxlIG9mZnNldC5cbiAgKi9cbi1fX2xvZ19sZXZlbCg0KSBfX21zZyhcInN0YWNrIGRlcHRoIDE2XCIpXG4rX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCBzdGFja193cml0ZV9mb2xsb3dlZF9ieV9yZWFkPTE2XCIpXG4gX19mYWlsdXJlX3VucHJpdlxuIF9fbXNnX3VucHJpdihcIlIyIHZhcmlhYmxlIHN0YWNrIGFjY2VzcyBwcm9oaWJpdGVkIGZvciAhcm9vdFwiKVxuIF9fcmV0dmFsKDApXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmNcbmluZGV4IGE4YWUwM2M1N2JiYWUuLjYxZjBiMjk1MWJjZGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jXG5AQCAtMTMzLDYgKzEzMyw3IEBAIHN0cnVjdCBicGZfdGVzdCB7XG4gXHRjb25zdCBjaGFyICplcnJzdHI7XG4gXHRjb25zdCBjaGFyICplcnJzdHJfdW5wcml2O1xuIFx0dWludDMyX3QgaW5zbl9wcm9jZXNzZWQ7XG4rXHR1aW50MzJfdCBsb2dfbGV2ZWw7XG4gXHRpbnQgcHJvZ19sZW47XG4gXHRlbnVtIHtcbiBcdFx0VU5ERUYsXG5AQCAtMTU1OSw3ICsxNTYwLDkgQEAgc3RhdGljIHZvaWQgZG9fdGVzdF9zaW5nbGUoc3RydWN0IGJwZl90ZXN0ICp0ZXN0LCBib29sIHVucHJpdixcbiBcdFx0ICAgICAgIHRlc3QtXHUwMDNlZXJyc3RyX3VucHJpdiA6IHRlc3QtXHUwMDNlZXJyc3RyO1xuIFxuIFx0b3B0cy5leHBlY3RlZF9hdHRhY2hfdHlwZSA9IHRlc3QtXHUwMDNlZXhwZWN0ZWRfYXR0YWNoX3R5cGU7XG4tXHRpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxuK1x0aWYgKHRlc3QtXHUwMDNlbG9nX2xldmVsKVxuK1x0XHRvcHRzLmxvZ19sZXZlbCA9IHRlc3QtXHUwMDNlbG9nX2xldmVsO1xuK1x0ZWxzZSBpZiAoZXhwZWN0ZWRfcmV0ID09IFZFUkJPU0VfQUNDRVBUKVxuIFx0XHRvcHRzLmxvZ19sZXZlbCA9IDI7XG4gXHRlbHNlIGlmICh2ZXJib3NlKVxuIFx0XHRvcHRzLmxvZ19sZXZlbCA9IHZlcmlmX2xvZ19sZXZlbCB8IDQ7IC8qIGZvcmNlIHN0YXRzICovXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL2NhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xuaW5kZXggMzAyZDcxMmUwZDdlZC4uMWY3Y2EyNzFlMDdhZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvY2FsbHMuY1xuQEAgLTEwOTEsNyArMTA5MSw5IEBAXG4gXHQvKiBzdGFja19tYWluPTMyLCBzdGFja19BPTI1Niwgc3RhY2tfQj02NFxuIFx0ICogYW5kIG1heChtYWluK0EsIG1haW4rQStCKSBcdTAwM2MgNTEyXG4gXHQgKi9cbi1cdC5yZXN1bHQgPSBBQ0NFUFQsXG4rXHQucmVzdWx0ID0gVkVSQk9TRV9BQ0NFUFQsXG4rXHQuZXJyc3RyID0gXCJzdGFjayBkZXB0aCBzdWJwcm9nWzBdPTMyIHN1YnByb2dbMV09MjU2IHN1YnByb2dbMl09NjQgbWF4PTM1MlwiLFxuK1x0LmxvZ19sZXZlbCA9IERFRkFVTFRfTElCQlBGX0xPR19MRVZFTCxcbiB9LFxuIHtcbiBcdFwiY2FsbHM6IHN0YWNrIGRlcHRoIGNoZWNrIHVzaW5nIHRocmVlIGZyYW1lcy4gdGVzdDJcIixcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaXN0YXQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5pbmRleCBjOWMyNTc3ODRlZTNkLi5mNDcwZTYzZGY0NDBlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlzdGF0LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpc3RhdC5jXG5AQCAtOTk3LDkgKzk5NywxMCBAQCBzdGF0aWMgY2hhciB2ZXJpZl9sb2dfYnVmWzY0ICogMTAyNF07XG4gXG4gc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpzKVxuIHtcbi1cdGNvbnN0IGNoYXIgKmN1cjtcbi1cdGludCBwb3MsIGxpbmVzLCBzdWJfc3RhY2ssIGNudCA9IDA7XG4tXHRjaGFyICpzdGF0ZSA9IE5VTEwsICp0b2tlbiwgc3RhY2tbNTEyXTtcbitcdGxvbmcgc3RhY2tfdG90YWwsIHN1Yl9zdGFjaztcbitcdGNvbnN0IGNoYXIgKmN1ciwgKnA7XG4rXHRpbnQgcG9zLCBsaW5lcztcbitcdGNoYXIgKmVuZDtcbiBcbiBcdGJ1ZltidWZfc3ogLSAxXSA9ICdcXDAnO1xuIFxuQEAgLTEwMjUsMTMgKzEwMjYsMTkgQEAgc3RhdGljIGludCBwYXJzZV92ZXJpZl9sb2coY2hhciAqIGNvbnN0IGJ1Ziwgc2l6ZV90IGJ1Zl9zeiwgc3RydWN0IHZlcmlmX3N0YXRzICpcbiBcdFx0XHRcdFx1MDAyNnMtXHUwMDNlc3RhdHNbTUFSS19SRUFEX01BWF9MRU5dKSlcbiBcdFx0XHRjb250aW51ZTtcbiBcbi1cdFx0aWYgKDIgPT0gc3NjYW5mKGN1ciwgXCJzdGFjayBkZXB0aCAlNTExcyBtYXggJWxkXCIsIHN0YWNrLCBcdTAwMjZzLVx1MDAzZXN0YXRzW01BWF9TVEFDS10pKVxuK1x0XHRpZiAoc3RybmNtcChjdXIsIFwic3RhY2sgZGVwdGggXCIsIHNpemVvZihcInN0YWNrIGRlcHRoIFwiKSAtIDEpKVxuIFx0XHRcdGNvbnRpbnVlO1xuLVx0fVxuLVx0d2hpbGUgKCh0b2tlbiA9IHN0cnRva19yKGNudCsrID8gTlVMTCA6IHN0YWNrLCBcIitcIiwgXHUwMDI2c3RhdGUpKSkge1xuLVx0XHRpZiAoc3NjYW5mKHRva2VuLCBcIiVkXCIsIFx1MDAyNnN1Yl9zdGFjaykgPT0gMClcbi1cdFx0XHRicmVhaztcbi1cdFx0cy1cdTAwM2VzdGF0c1tTVEFDS10gKz0gc3ViX3N0YWNrO1xuK1xuK1x0XHRzdGFja190b3RhbCA9IDA7XG4rXHRcdGZvciAocCA9IGN1ciArIHNpemVvZihcInN0YWNrIGRlcHRoIFwiKSAtIDE7IChwID0gc3RyY2hyKHAsICc9JykpOyBwID0gZW5kKSB7XG4rXHRcdFx0c3ViX3N0YWNrID0gc3RydG9sKHAgKyAxLCBcdTAwMjZlbmQsIDEwKTtcbitcdFx0XHRpZiAoKmVuZCA9PSAnXFxuJykge1xuK1x0XHRcdFx0cy1cdTAwM2VzdGF0c1tTVEFDS10gPSBzdGFja190b3RhbDtcbitcdFx0XHRcdHMtXHUwMDNlc3RhdHNbTUFYX1NUQUNLXSA9IHN1Yl9zdGFjaztcbitcdFx0XHRcdGJyZWFrO1xuK1x0XHRcdH1cbitcdFx0XHRzdGFja190b3RhbCArPSBzdWJfc3RhY2s7XG4rXHRcdH1cbiBcdH1cbiBcdHJldHVybiAwO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE1OjUzOjIxLjI5NzI5Nzg2N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkxNjEwMjM2MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCUEYgVmVyaWZpZXIgTG9nZ2luZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0J3MgYSBzdHJhaWdodGZvcndhcmQgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgQlBGIHZlcmlmaWVyIHByaW50cyB2ZXJpZmljYXRpb24gc3RhdHMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIHRoZSBzdGFjayBkZXB0aC4gSXQncyB0YXJnZXRpbmcgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyB0byBpbmNsdWRlIHN1YnByb2dyYW0gbmFtZXMgaW4gdGhlIG91dHB1dCBhbG9uZ3NpZGUgdGhlIHN0YWNrIGRlcHRoLCBpbnN0ZWFkIG9mIGp1c3QgYSBnZW5lcmljIFwiKyVkXCIuIFRoaXMgc2VlbXMgbGlrZSBhIHB1cmVseSBjb3NtZXRpYyBlbmhhbmNlbWVudCB0byB0aGUgbG9nZ2luZy5cblxuSSBjYW4gc2VlIHRoYXQgdGhlIGNoYW5nZXMgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgYXJlIGNsZWFybHkgZm9jdXNlZCBvbiB0aGUgYHZlcmJvc2UoKWAgb3V0cHV0LiBJdCdzIG5vdyBnb2luZyB0byBwcmludCB0aGUgc3VicHJvZ3JhbSBuYW1lIGFuZCBpdHMgc3RhY2sgZGVwdGgsIGlmIGEgbmFtZSBleGlzdHMuIE90aGVyd2lzZSwgaXQgd2lsbCBwcmludCBzdWJwcm9nIGluZGV4LiBUaGUgY2hhbmdlIGlzIHNpbXBseSB0aGUgd2F5IHRoZSBkZXB0aCBpcyBwcmludGVkLlxuXG5Ob3csIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbnMsIGlmIHRoZSBwYXRjaCBvbmx5IGluY2x1ZGVzIGRvY3VtZW50YXRpb24sIEtjb25maWcgbW9kaWZpY2F0aW9ucywgY29kZSBjb21tZW50IHVwZGF0ZXMsIG9yIHRoZXNlIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgY2hhbmdlcyAobGlrZSBgcHJfZXJyYCwgYHByaW50a2AsIGB2ZXJib3NlYCksIHRoZW4gYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLiBUaGlzLCBmcm9tIHRoZSBsb29rIG9mIHRoZSBga2VybmVsL2JwZi92ZXJpZmllci5jYCBjaGFuZ2UsIGFwcGVhcnMgdG8gYmUgdGhlIGNhc2UuIFRoZSBhY3R1YWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIHZlcmlmaWVyIGlzbid0IGFsdGVyZWQuIFRoZSBwYXRjaCBqdXN0IG1ha2VzIHRoZSBsb2dzIG1vcmUgcmVhZGFibGUgYW5kIGluZm9ybWF0aXZlLlxuXG5JJ20gZG91YmxlLWNoZWNraW5nIHRvIGNvbmZpcm0gdGhhdCB0aGVyZSBhcmUgKm5vKiBmdW5jdGlvbmFsIGNoYW5nZXMgaGlkZGVuIGluIHRoZSByZWxhdGVkIGZpbGVzLiBJdCBzZWVtcyB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggYWRhcHRzIHZhcmlvdXMgc2VsZnRlc3RzOiBUaGUgc2VsZnRlc3RzIGFuZCBgdmVyaXN0YXQuY2AgYXJlIGFsc28gYmVpbmcgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBuZXcgbG9nIGZvcm1hdC4gSXQgbG9va3MgbGlrZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuY2AgZ2V0cyBzb21lIGBsb2dfbGV2ZWxgIHNldHRpbmcgYWJpbGl0aWVzIGFuZCBjYWxscy4gSG93ZXZlciwgdGhhdCBzZWVtcyBwdXJlbHkgZm9yIHRlc3QgY29uZmlndXJhdGlvbiBhbmQgZG9lc24ndCBjaGFuZ2Uga2VybmVsIGV4ZWN1dGlvbi5cblxuVGhlIG1vZGlmaWNhdGlvbnMgaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy8qYCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9jYWxscy5jYCBhcmUgc2ltcGx5IHVwZGF0aW5nIGNoZWNrcyBhbmQgdXNpbmcgdGhlIG5ldyBsZXZlbCBzZXR0aW5ncy4gVGhpcyBmdXJ0aGVyIHJlaW5mb3JjZXMgdGhlIHBvaW50IHRoYXQgYWxsIHRoZSBjaGFuZ2VzIGFyZSBnZWFyZWQgdG93YXJkcyB0aGUgbmV3IGxvZyBmb3JtYXQgYW5kIHRlc3QgY29uZmlndXJhdGlvbiwgcmF0aGVyIHRoYW4gYW55IGNoYW5nZSB0byBob3cgQlBGIGNvZGUgaXMgYWN0dWFsbHkgKnZlcmlmaWVkKiBvciAqZXhlY3V0ZWQqLlxuXG5TbywgYmFzZWQgb24gdGhpcyB0aG9yb3VnaCBleGFtaW5hdGlvbiwgSSdtIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpcyBpbmRlZWQgYSBkZWNvcmF0aXZlIGxvZ2dpbmcgY2hhbmdlLCBhbmQgSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjE4NywiT3V0cHV0VG9rZW5zIjo4NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE1OjUzOjMwLjQ1ODMyNTMyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM0OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgbG9nZ2luZyBvdXRwdXQgZm9ybWF0IG9mIHRoZSBCUEYgdmVyaWZpZXIgc3RhdHMgKHNwZWNpZmljYWxseSBob3cgc3RhY2sgZGVwdGggaXMgcHJpbnRlZCkgYW5kIHVwZGF0ZXMgdGhlIGNvcnJlc3BvbmRpbmcgc2VsZnRlc3RzIGFuZCB2ZXJpc3RhdCB0b29sIHRvIHBhcnNlIHRoZSBuZXcgZm9ybWF0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIGxvZ2dpbmcgb3V0cHV0IGZvcm1hdCBvZiB0aGUgQlBGIHZlcmlmaWVyIHN0YXRzIChzcGVjaWZpY2FsbHkgaG93IHN0YWNrIGRlcHRoIGlzIHByaW50ZWQpIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nIHNlbGZ0ZXN0cyBhbmQgdmVyaXN0YXQgdG9vbCB0byBwYXJzZSB0aGUgbmV3IGZvcm1hdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow25dwv[1] Phase: Running StartedAt: 2026-08-02 15:53:52 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow25dwv[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-02 15:53:52 +0000 UTC FinishedAt: 2026-08-02 15:53:58 +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,}