Name: series-workflowjbbf5 Phase: Failed StartedAt: 2026-07-09 10:46:57 +0000 UTC FinishedAt: 2026-07-09 11:29:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjbbf5[0] Phase: Succeeded StartedAt: 2026-07-09 10:46:57 +0000 UTC FinishedAt: 2026-07-09 11:29:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjbbf5[0].run-triage Phase: Succeeded StartedAt: 2026-07-09 10:46:57 +0000 UTC FinishedAt: 2026-07-09 11:29:04 +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+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZSByZWZhY3RvcmluZy9jbGVhbnVwLiBJdCByZW1vdmVzIHJlZHVuZGFudCBgX19sYXRlX3NldF9maXhtYXBgIGFuZCBgX19sYXRlX2NsZWFyX2ZpeG1hcGAgbWFjcm9zIG9uIEFSTTY0IGFuZCBSSVNDLVYsIGFuZCByZW1vdmVzIHRoZSBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIG9uIEFSTTY0LiBTaW5jZSBib3RoIGFyY2hpdGVjdHVyZXMgZGVmaW5lIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBpZGVudGljYWxseSAoYXMgYF9fc2V0X2ZpeG1hcGApLCBza2lwcGluZyB0aGUgc3RhdGUgdG9nZ2xlIChgYWZ0ZXJfcGFnaW5nX2luaXQgPSAxYCkgcmVzdWx0cyBpbiB0aGUgZXhhY3Qgc2FtZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQuIFRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNWFhNGNkMzg4ZmY0NDJhNGRkNzQ5YjY2YWNmMTY5ODFiMjFlYjYwM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDkgMTE6MjY6MzUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbmluZGV4IDY1NTU1Mjg0NDQ2ZTczLi5hYmQ5ODAwYWFiZjc2ZCAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbkBAIC0xMTAsOSAmIzQzOzExMCw2IEBAIHZvaWQgX19pbml0IGVhcmx5X2ZpeG1hcF9pbml0KHZvaWQpO1xuIFxuICNkZWZpbmUgX19lYXJseV9zZXRfZml4bWFwIF9fc2V0X2ZpeG1hcFxuIFxuLSNkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgX19zZXRfZml4bWFwXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcbi1cbiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTtcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20tZ2VuZXJpYy9maXhtYXAuaFx1MDAzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmMgYi9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXG5pbmRleCAyM2MwNWRjN2E4ZjJhYy4uMjljNjEwMGYwYzUwYjIgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXG5AQCAtMzQ3LDggJiM0MzszNDcsNiBAQCB2b2lkIF9faW5pdCBfX25vX3Nhbml0aXplX2FkZHJlc3Mgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9wKVxuIFxuIFx0cmVxdWVzdF9zdGFuZGFyZF9yZXNvdXJjZXMoKTtcbiBcbi1cdGVhcmx5X2lvcmVtYXBfcmVzZXQoKTtcbi1cbiBcdGlmIChhY3BpX2Rpc2FibGVkKVxuIFx0XHRwc2NpX2R0X2luaXQoKTtcbiBcdGVsc2VcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxuaW5kZXggMGE1NTA5OWJiNzM0OWQuLmE4MTgyM2M1ZWU0YWY1IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxuQEAgLTU1LDkgJiM0Mzs1NSw2IEBAIGVudW0gZml4ZWRfYWRkcmVzc2VzIHtcbiBcbiAjZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4gXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcbi1cbiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LFxuIFx0XHRcdCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTtcbiBcbmRpZmYgLS1naXQgYS9tbS9lYXJseV9pb3JlbWFwLmMgYi9tbS9lYXJseV9pb3JlbWFwLmNcbmluZGV4IDk2YzI5YjlkYzg1ZDk1Li42MjE1YjkwZGZlZjNiNCAxMDA2NDRcbi0tLSBhL21tL2Vhcmx5X2lvcmVtYXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZWFybHlfaW9yZW1hcC5jXG5AQCAtNDcsMTUgJiM0Mzs0NywxOSBAQCBwZ3Byb3RfdCBfX2luaXQgX193ZWFrIGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkcixcbiBcdHJldHVybiBwcm90O1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogT25seSBhcmNoaXRlY3R1cmVzIHdob3NlIGVhcmx5X2lvcmVtYXAoKSBtdXN0IHN0b3AgdXNpbmcgX19lYXJseV9zZXRfZml4bWFwKClcbiYjNDM7ICogYWZ0ZXIgcGFnaW5nX2luaXQoKSBuZWVkIHRvIGNhbGwgdGhpcy5cbiYjNDM7ICovXG4gdm9pZCBfX2luaXQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKVxuIHtcbiBcdGFmdGVyX3BhZ2luZ19pbml0ID0gMTtcbiB9XG4gXG4gLypcbi0gKiBHZW5lcmFsbHksIGlvcmVtYXAoKSBpcyBhdmFpbGFibGUgYWZ0ZXIgcGFnaW5nX2luaXQoKSBoYXMgYmVlbiBjYWxsZWQuXG4tICogQXJjaGl0ZWN0dXJlcyB3YW50aW5nIHRvIGFsbG93IGVhcmx5X2lvcmVtYXAgYWZ0ZXIgcGFnaW5nX2luaXQoKSBjYW5cbi0gKiBkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgYW5kIF9fbGF0ZV9jbGVhcl9maXhtYXAgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nLlxuJiM0MzsgKiBPbmx5IGFyY2hpdGVjdHVyZXMgdGhhdCBjYWxsIGVhcmx5X2lvcmVtYXBfcmVzZXQoKSBuZWVkIHRvIGRlZmluZVxuJiM0MzsgKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzXG4mIzQzOyAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0LlxuICAqL1xuICNpZm5kZWYgX19sYXRlX3NldF9maXhtYXBcbiBzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IF9fbGF0ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmUgcmVmYWN0b3JpbmcvY2xlYW51cC4gSXQgcmVtb3ZlcyByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9jbGVhcl9maXhtYXBgIG1hY3JvcyBvbiBBUk02NCBhbmQgUklTQy1WLCBhbmQgcmVtb3ZlcyB0aGUgY2FsbCB0byBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBvbiBBUk02NC4gU2luY2UgYm90aCBhcmNoaXRlY3R1cmVzIGRlZmluZSB0aGUgZWFybHkgYW5kIGxhdGUgZml4bWFwIG9wZXJhdGlvbnMgaWRlbnRpY2FsbHkgKGFzIGBfX3NldF9maXhtYXBgKSwgc2tpcHBpbmcgdGhlIHN0YXRlIHRvZ2dsZSAoYGFmdGVyX3BhZ2luZ19pbml0ID0gMWApIHJlc3VsdHMgaW4gdGhlIGV4YWN0IHNhbWUgdW5kZXJseWluZyBmdW5jdGlvbnMgYmVpbmcgY2FsbGVkLiBUaGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWFhNGNkMzg4ZmY0NDJhNGRkNzQ5YjY2YWNmMTY5ODFiMjFlYjYwMwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMTE6MjY6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaAppbmRleCA2NTU1NTI4NDQ0NmU3My4uYWJkOTgwMGFhYmY3NmQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaApAQCAtMTEwLDkgJiM0MzsxMTAsNiBAQCB2b2lkIF9faW5pdCBlYXJseV9maXhtYXBfaW5pdCh2b2lkKTsKIAogI2RlZmluZSBfX2Vhcmx5X3NldF9maXhtYXAgX19zZXRfZml4bWFwCiAKLSNkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgX19zZXRfZml4bWFwCi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKQotCiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTsKIAogI2luY2x1ZGUgJmx0O2FzbS1nZW5lcmljL2ZpeG1hcC5oJmd0OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmMKaW5kZXggMjNjMDVkYzdhOGYyYWMuLjI5YzYxMDBmMGM1MGIyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmMKQEAgLTM0Nyw4ICYjNDM7MzQ3LDYgQEAgdm9pZCBfX2luaXQgX19ub19zYW5pdGl6ZV9hZGRyZXNzIHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkKIAogCXJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKCk7CiAKLQllYXJseV9pb3JlbWFwX3Jlc2V0KCk7Ci0KIAlpZiAoYWNwaV9kaXNhYmxlZCkKIAkJcHNjaV9kdF9pbml0KCk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmgKaW5kZXggMGE1NTA5OWJiNzM0OWQuLmE4MTgyM2M1ZWU0YWY1IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmgKQEAgLTU1LDkgJiM0Mzs1NSw2IEBAIGVudW0gZml4ZWRfYWRkcmVzc2VzIHsKIAogI2RlZmluZSBfX2Vhcmx5X3NldF9maXhtYXAJX19zZXRfZml4bWFwCiAKLSNkZWZpbmUgX19sYXRlX3NldF9maXhtYXAJX19zZXRfZml4bWFwCi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKQotCiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAogCQkJIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpOwogCmRpZmYgLS1naXQgYS9tbS9lYXJseV9pb3JlbWFwLmMgYi9tbS9lYXJseV9pb3JlbWFwLmMKaW5kZXggOTZjMjliOWRjODVkOTUuLjYyMTViOTBkZmVmM2I0IDEwMDY0NAotLS0gYS9tbS9lYXJseV9pb3JlbWFwLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vZWFybHlfaW9yZW1hcC5jCkBAIC00NywxNSAmIzQzOzQ3LDE5IEBAIHBncHJvdF90IF9faW5pdCBfX3dlYWsgZWFybHlfbWVtcmVtYXBfcGdwcm90X2FkanVzdChyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLAogCXJldHVybiBwcm90OwogfQogCiYjNDM7LyoKJiM0MzsgKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKQomIzQzOyAqIGFmdGVyIHBhZ2luZ19pbml0KCkgbmVlZCB0byBjYWxsIHRoaXMuCiYjNDM7ICovCiB2b2lkIF9faW5pdCBlYXJseV9pb3JlbWFwX3Jlc2V0KHZvaWQpCiB7CiAJYWZ0ZXJfcGFnaW5nX2luaXQgPSAxOwogfQogCiAvKgotICogR2VuZXJhbGx5LCBpb3JlbWFwKCkgaXMgYXZhaWxhYmxlIGFmdGVyIHBhZ2luZ19pbml0KCkgaGFzIGJlZW4gY2FsbGVkLgotICogQXJjaGl0ZWN0dXJlcyB3YW50aW5nIHRvIGFsbG93IGVhcmx5X2lvcmVtYXAgYWZ0ZXIgcGFnaW5nX2luaXQoKSBjYW4KLSAqIGRlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcCBhbmQgX19sYXRlX2NsZWFyX2ZpeG1hcCB0byBkbyB0aGUgcmlnaHQgdGhpbmcuCiYjNDM7ICogT25seSBhcmNoaXRlY3R1cmVzIHRoYXQgY2FsbCBlYXJseV9pb3JlbWFwX3Jlc2V0KCkgbmVlZCB0byBkZWZpbmUKJiM0MzsgKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzCiYjNDM7ICogaW5zdGVhZCBvZiBfX2Vhcmx5X3NldF9maXhtYXAoKSBhZnRlciB0aGUgcmVzZXQuCiAgKi8KICNpZm5kZWYgX19sYXRlX3NldF9maXhtYXAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgX19sYXRlX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjM4CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIFRoaXMgRml4bWFwIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhgLCBgYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuY2AsIGBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oYCwgYW5kIGBtbS9lYXJseV9pb3JlbWFwLmNgLiBJbW1lZGlhdGVseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgcG90ZW50aWFsIGZvciBmdW5jdGlvbmFsIGltcGFjdCB0aGF0IG1pZ2h0IGJlIGV4cGxvaXRhYmxlIHRocm91Z2ggZnV6emluZy4gTXkgaW5pdGlhbCBzY2FuIHRlbGxzIG1lIGl0JiMzOTtzIHJlbW92aW5nIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBmcm9tIGJvdGggYXJtNjQgYW5kIHJpc2N2LCBhbmQgYWxzbyByZW1vdmluZyB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbCBmcm9tIGFybTY0JiMzOTtzIGBzZXR1cF9hcmNoKClgLgoKTGV0JiMzOTtzIGRpZyBpbi4gSSBzZWUgdGhhdCB0aGUgcmVtb3ZlZCBtYWNyb3MgaW4gdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoZWFkZXJzIHdlcmUganVzdCBkZWZpbmVkIGFzIGNhbGxzIHRvIGBfX3NldF9maXhtYXBgIGFuZCB2YXJpYW50cyBvZiBjbGVhcmluZyB0aGUgZml4bWFwIGVudHJpZXMuIExvb2tpbmcgYXQgYG1tL2Vhcmx5X2lvcmVtYXAuY2AsIEkgc2VlIHRoYXQgaXQgaW5jbHVkZXMgZGVmaW5pdGlvbnMgZm9yIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCB1c2luZyBgQlVHKClgIGlmIHRoZXkmIzM5O3JlIG5vdCBhbHJlYWR5IGRlZmluZWQuIAoKTm93LCBoZXJlJiMzOTtzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIElmIGBfX2xhdGVfc2V0X2ZpeG1hcGAgaXMgcmVtb3ZlZCBmcm9tIGJvdGggYXJjaGl0ZWN0dXJlcywgdGhlIGRlZmF1bHQgYEJVRygpYCBkZWZpbml0aW9ucyBpbiBgbW0vZWFybHlfaW9yZW1hcC5jYCB3aWxsIGJlIHVzZWQuIEJ1dCwgdGhlIHJlbW92YWwgb2YgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnJvbSBhcm02NCBpcyBjcnVjaWFsIGhlcmUuIFRoYXQgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgYGFmdGVyX3BhZ2luZ19pbml0YCB0byAxLiBJZiBpdCYjMzk7cyBub3QgY2FsbGVkLCBgYWZ0ZXJfcGFnaW5nX2luaXRgIHJlbWFpbnMgMC4gQW5kIGlmIGBhZnRlcl9wYWdpbmdfaW5pdGAgaXMgMCwgdGhlIGNvZGUgaW4gYGVhcmx5X2lvcmVtYXAoKWAgd2lsbCB1c2UgYF9fZWFybHlfc2V0X2ZpeG1hcCgpYCBpbnN0ZWFkIG9mIHRoZSBub3ctdW5kZWZpbmVkIGBfX2xhdGVfc2V0X2ZpeG1hcCgpYC4gVGhlcmVmb3JlLCBgX19sYXRlX3NldF9maXhtYXAoKWAgd2lsbCBuZXZlciBiZSBjYWxsZWQuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGhvdyBgbW0vZWFybHlfaW9yZW1hcC5jYCBoYW5kbGVzIHRoYXQgY29uZGl0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FmdGVyX3BhZ2luZ19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZWFybHlfaW9yZW1hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2Vhcmx5X2lvcmVtYXAuYz0zMT1lYXJseV9wYXJhbShcJiMzNDtlYXJseV9pb3JlbWFwX2RlYnVnXCYjMzQ7LCBlYXJseV9pb3JlbWFwX2RlYnVnX3NldHVwKTtcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtNDAtXG5tbS9lYXJseV9pb3JlbWFwLmM6NDE6c3RhdGljIGludCBhZnRlcl9wYWdpbmdfaW5pdCBfX2luaXRkYXRhO1xubW0vZWFybHlfaW9yZW1hcC5jLTQyLVxuLS1cbm1tL2Vhcmx5X2lvcmVtYXAuYz01ND12b2lkIF9faW5pdCBlYXJseV9pb3JlbWFwX3Jlc2V0KHZvaWQpXG5tbS9lYXJseV9pb3JlbWFwLmMtNTUte1xubW0vZWFybHlfaW9yZW1hcC5jOjU2Olx0YWZ0ZXJfcGFnaW5nX2luaXQgPSAxO1xubW0vZWFybHlfaW9yZW1hcC5jLTU3LX1cbi0tXG5tbS9lYXJseV9pb3JlbWFwLmM9MTEyPV9fZWFybHlfaW9yZW1hcChyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHByb3QpXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jLTE2MS1cdHdoaWxlIChucnBhZ2VzIFx1MDAzZSAwKSB7XG5tbS9lYXJseV9pb3JlbWFwLmM6MTYyOlx0XHRpZiAoYWZ0ZXJfcGFnaW5nX2luaXQpXG5tbS9lYXJseV9pb3JlbWFwLmMtMTYzLVx0XHRcdF9fbGF0ZV9zZXRfZml4bWFwKGlkeCwgcGh5c19hZGRyLCBwcm90KTtcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmM9MTc1PXZvaWQgX19pbml0IGVhcmx5X2lvdW5tYXAodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jLTIxMC1cdHdoaWxlIChucnBhZ2VzIFx1MDAzZSAwKSB7XG5tbS9lYXJseV9pb3JlbWFwLmM6MjExOlx0XHRpZiAoYWZ0ZXJfcGFnaW5nX2luaXQpXG5tbS9lYXJseV9pb3JlbWFwLmMtMjEyLVx0XHRcdF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTk5CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMTU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIHRoZSBFYXJseSBGaXhtYXAgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSXQgc2VlbXMgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlYXJseSBmaXhtYXAgaW5pdGlhbGl6YXRpb24sIHNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGlzIHplcm8uIFRoYXQgY29uZGl0aW9uIHRyaWdnZXJzIGBfX2Vhcmx5X3NldF9maXhtYXBgLiBSaWdodCwgc28gZmFyLCBzbyBnb29kLiBUaGVuIEkgc2VlIHRoYXQgaXQgY2FsbHMgYF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAuCgpBaGEhIE5vdyB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBMb29raW5nIGNsb3NlciBhdCB0aGUgYXJtNjQgaW1wbGVtZW50YXRpb24sIEkgcmVhbGl6ZSBgX19lYXJseV9zZXRfZml4bWFwYCAqaXMqIGFjdHVhbGx5IGp1c3QgYSBtYWNybyBhbGlhc2luZyBgX19zZXRfZml4bWFwYC4gQW5kIGxvb2tpbmcgYXQgdGhlIGhpc3Rvcnkgb2YgdGhlIGNvZGViYXNlIEkgY2FuIHNlZSB0aGF0IGBfX2xhdGVfc2V0X2ZpeG1hcGAgd2FzICphbHNvKiBkZWZpbmVkIGFzIGBfX3NldF9maXhtYXBgLgoKU28sIGlmIG15IHVuZGVyc3RhbmRpbmcgaXMgcmlnaHQsIHdlJiMzOTtyZSBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBlYXJseSBvbiB0aGF0IHdlIHdlcmUgcHJldmlvdXNseSBkb2luZyBsYXRlLCBvbmx5IHdlJiMzOTtyZSBlbGltaW5hdGluZyB0aGUgcmVkdW5kYW50IGBfX2xhdGVfc2V0X2ZpeG1hcGAgZGVmaW5pdGlvbiBhbmQsIGNvbnNlcXVlbnRseSwgdGhhdCBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgLgoKVGhpcyBzaW1wbGlmaWVzIHRoZSBvdmVyYWxsIHByb2Nlc3MuIFRoaXMgcmVtb3ZlcyBhIGxvdCBvZiBjcnVmdC4gQnV0IGhvbGQgb24sIHdoYXQgYWJvdXQgUklTQy1WPyBEaWQgUklTQy1WIG5lZWQgdGhhdCBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBjYWxsPyBJIG5lZWQgdG8gY2hlY2sgdGhlIFJJU0MtViBpbXBsZW1lbnRhdGlvbiBub3cuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBjaGFuZ2UgaXMgc2FmZSBhY3Jvc3MgYWxsIGFyY2hpdGVjdHVyZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYXJseV9pb3JlbWFwX3Jlc2V0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUwMQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDMxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJJU0MtViBhbmQgQVJNNjQgRml4bWFwIENoYW5nZXMqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGNsZWFudXAsIGJ1dCBsZXQgbWUgYnJlYWsgZG93biBteSB1bmRlcnN0YW5kaW5nLiBGaXJzdCwgSSBub3RpY2VkIHRoYXQgb24gUklTQy1WLCB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnVuY3Rpb24gd2FzIG5ldmVyIGFjdHVhbGx5IGNhbGxlZC4gVGhpcyBpcyBjcml0aWNhbCBiZWNhdXNlIHRoYXQgZnVuY3Rpb24gaXMgd2hhdCBzZXRzIHRoZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGZsYWcuIFNvLCB0aGlzIG1lYW5zIGBhZnRlcl9wYWdpbmdfaW5pdGAgd2FzIGFsd2F5cyB6ZXJvIG9uIFJJU0MtViwgd2hpY2ggZWZmZWN0aXZlbHkgcmVuZGVyZWQgdGhlIGRlZmluaXRpb24gb2YgYF9fbGF0ZV9zZXRfZml4bWFwYCBhcyBkZWFkIGNvZGUgaW4gdGhhdCBhcmNoaXRlY3R1cmUuCgpOb3csIG9uIEFSTTY0LCB0aGUgcHJvY2VzcyB3YXMgaW5pdGlhbGx5IGRpZmZlcmVudC4gVGhlIGNvZGUgKmRpZCogY2FsbCBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCwgd2hpY2ggZmxpcHBlZCBgYWZ0ZXJfcGFnaW5nX2luaXRgIHRvIDEuIENvbnNlcXVlbnRseSwgZWFybHkgYGlvcmVtYXBgIGNhbGxzIHdvdWxkIHVzZSBgX19sYXRlX3NldF9maXhtYXBgLiBCdXQgbm93LCB0aGlzIHBhdGNoIHJlbW92ZXMgdGhlIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIGNhbGwuIEFzIGEgcmVzdWx0LCBgYWZ0ZXJfcGFnaW5nX2luaXRgIGlzIHN0dWNrIGF0IHplcm8uIFRoaXMgY2F1c2VzIGBlYXJseV9pb3JlbWFwYCB0byBub3cgdXNlIGBfX2Vhcmx5X3NldF9maXhtYXBgLgoKVGhlIGNydWNpYWwgdGhpbmcgaGVyZSBpcyB0aGF0IGJvdGggYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fZWFybHlfc2V0X2ZpeG1hcGAgYXJlIHVsdGltYXRlbHkgZGVmaW5lZCBhcyB0aGUgZXhhY3Qgc2FtZSBmdW5jdGlvbiwgYF9fc2V0X2ZpeG1hcGAuIFNvIGZ1bmN0aW9uYWxseSwgdGhlIGNvZGUgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkLiBUaGUgKm9ubHkqIGRpZmZlcmVuY2UgaXMgdGhhdCBgYWZ0ZXJfcGFnaW5nX2luaXRgIHJlbWFpbnMgYXQgMCwgdGh1cyBgZWFybHlfaW9yZW1hcGAgYW5kIGBlYXJseV9pb3VubWFwYCB0YWtlIHRoZSBgZWxzZWAgYnJhbmNoLCBpbnZva2luZyBgX19lYXJseV9zZXRfZml4bWFwYCBpbnN0ZWFkIG9mIGBfX2xhdGVfc2V0X2ZpeG1hcGAuIFNpbmNlIHRoZXkmIzM5O3JlIGJvdGggbWFwcGVkIHRvIGBfX3NldF9maXhtYXBgLCB0aGVyZSYjMzk7cyBubyBmdW5jdGlvbmFsIGRpZmZlcmVuY2UuIEl0JiMzOTtzIGEgY2xlYW4sIG5vLW9wIHJlZmFjdG9yLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkmIzM5O2xsIGdvIGJhY2sgYW5kIGRvdWJsZS1jaGVjayB0aG9zZSBgX19lYXJseV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9zZXRfZml4bWFwYCBkZWZpbml0aW9ucyBpbiB0aGUgQVJNNjQgY29kZSwganVzdCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX2Vhcmx5X3NldF9maXhtYXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL2FybTY0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmg9MTA5PXZvaWQgX19pbml0IGVhcmx5X2ZpeG1hcF9pbml0KHZvaWQpO1xuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaC0xMTAtXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oOjExMTojZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcCBfX3NldF9maXhtYXBcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgtMTEyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0MDYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4KCioqRml4bWFwIE1lbW9yeSBNYW5hZ2VtZW50IENvbnNpZGVyYXRpb25zKioKClNvLCBgX19sYXRlX3NldF9maXhtYXBgIGlzLCBpbiBlc3NlbmNlLCB0aGUgc2FtZSBmdW5jdGlvbiBhcyBgX19zZXRfZml4bWFwYC4gVGhhdCBtdWNoIGlzIGNsZWFyLiBOb3csIGxldCBtZSByZS1leGFtaW5lIHRoaXMgY2xlYXJpbmcgbWFjcm86IGAjZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAuIFJpZ2h0LCBpdCYjMzk7cyBqdXN0IHNldHRpbmcgdGhlIGZpeG1hcCBlbnRyeSB0byB6ZXJvIHdpdGggdGhlIGBGSVhNQVBfUEFHRV9DTEVBUmAgZmxhZywgZWZmZWN0aXZlbHkgdW5tYXBwaW5nIGl0LiBPa2F5LCB0aGF0IG1ha2VzIHNlbnNlLgoKQnV0IHRoZSByZWFsIHF1ZXN0aW9uIGFyaXNpbmcgaGVyZSBpcyB3aGF0IGBlYXJseV9pb3VubWFwYCBpcyBkb2luZyB3aGVuIGBhZnRlcl9wYWdpbmdfaW5pdGAgaGFzbiYjMzk7dCBiZWVuIHNldCB5ZXQuIFRoYXQgaXMgYW4gYXNwZWN0IG5lZWRpbmcgY2xhcmlmaWNhdGlvbi4gV2hhdCBzdGF0ZSBpcyB0aGUgc3lzdGVtIGluIGFuZCB3aGF0IGltcGxpY2F0aW9ucyBhcmUgdGhlcmUgZm9yIG1lbW9yeSBhY2Nlc3Mgb3IgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbj8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCB0cmFuc2l0aW9uIHBoYXNlIGJldHRlciB0byBlbnN1cmUgcHJvcGVyIG9wZXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19lYXJseV9zZXRfZml4bWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZWFybHlfaW9yZW1hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2Vhcmx5X2lvcmVtYXAuYz00Mz1wZ3Byb3RfdCBfX2luaXQgX193ZWFrIGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkcixcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtNTAtLypcbm1tL2Vhcmx5X2lvcmVtYXAuYzo1MTogKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKVxubW0vZWFybHlfaW9yZW1hcC5jLTUyLSAqIGFmdGVyIHBhZ2luZ19pbml0KCkgbmVlZCB0byBjYWxsIHRoaXMuXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jPTU0PXZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZClcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtNjEtICogX19sYXRlX3NldF9maXhtYXAoKSBhbmQgX19sYXRlX2NsZWFyX2ZpeG1hcCgpLCB3aGljaCBlYXJseV9pb3JlbWFwKCkgdXNlc1xubW0vZWFybHlfaW9yZW1hcC5jOjYyOiAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0LlxubW0vZWFybHlfaW9yZW1hcC5jLTYzLSAqL1xuLS1cbm1tL2Vhcmx5X2lvcmVtYXAuYz0xMTI9X19lYXJseV9pb3JlbWFwKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdClcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtMTY0LVx0XHRlbHNlXG5tbS9lYXJseV9pb3JlbWFwLmM6MTY1Olx0XHRcdF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIHBoeXNfYWRkciwgcHJvdCk7XG5tbS9lYXJseV9pb3JlbWFwLmMtMTY2LVx0XHRwaHlzX2FkZHIgJiM0Mzs9IFBBR0VfU0laRTtcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmM9MTc1PXZvaWQgX19pbml0IGVhcmx5X2lvdW5tYXAodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jLTIxMy1cdFx0ZWxzZVxubW0vZWFybHlfaW9yZW1hcC5jOjIxNDpcdFx0XHRfX2Vhcmx5X3NldF9maXhtYXAoaWR4LCAwLCBGSVhNQVBfUEFHRV9DTEVBUik7XG5tbS9lYXJseV9pb3JlbWFwLmMtMjE1LVx0XHQtLWlkeDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjE3OAoJCQkJCQkJb3V0cHV0OiAxNDgKCQkJCQkJCXRob3VnaHRzOiAxMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVmYWN0b3JpbmcgRml4bWFwIE9wZXJhdGlvbnMqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIGl0JiMzOTtzIGltbWVkaWF0ZWx5IGNsZWFyLiBgX19lYXJseV9zZXRfZml4bWFwKGlkeCwgMCwgRklYTUFQX1BBR0VfQ0xFQVIpYCBpcywgZnVuZGFtZW50YWxseSwgdGhlIHNhbWUgdGhpbmcgYXMgd2hhdCBgX19sYXRlX2NsZWFyX2ZpeG1hcChpZHgpYCB3YXMgZGVmaW5lZCBhcy4gTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGhlcmUgd2hhdHNvZXZlci4gVGhpcyBwYXRjaCBqdXN0IHN0cmVhbWxpbmVzIHRoaW5ncy4gSXQgcmVtb3ZlcyB0aG9zZSByZWR1bmRhbnQgbWFjcm9zIGFuZCB0aGUgcmVkdW5kYW50IHN0YXRlIHRvZ2dsZSBzcGVjaWZpY2FsbHkgZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUgdGhlIGVhcmx5IGFuZCBsYXRlIGZpeG1hcCBvcGVyYXRpb25zIGFyZSwgZm9yIGFsbCBpbnRlbnRzIGFuZCBwdXJwb3NlcywgaWRlbnRpY2FsLiBQdXJlIHJlZmFjdG9yaW5nLiBObyBuZXcgZnVuY3Rpb25hbGl0eSwgbm8gcG90ZW50aWFsIGZvciBuZXcgYnVncyBhcmlzaW5nIGZyb20gYXJjaGl0ZWN0dXJhbCB2YXJpYXRpb25zLiBTbywgYmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgY29kZSwgYW5kIGNvbnNpZGVyaW5nIGl0cyBpbXBhY3QsICoqV29ydGhGdXp6aW5nPWZhbHNlKiogaXMgdGhlIG9ubHkgbG9naWNhbCBjb25jbHVzaW9uLiBJJiMzOTtsbCBtYWtlIHRoYXQgZGVjbGFyYXRpb24gYW5kIGVuc3VyZSB0aGUgcmVhc29uaW5nIGlzIGNsZWFyIGZvciByZXZpZXdlcnMgYW5kIG1haW50YWluZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZSByZWZhY3RvcmluZy9jbGVhbnVwLiBJdCByZW1vdmVzIHJlZHVuZGFudCBgX19sYXRlX3NldF9maXhtYXBgIGFuZCBgX19sYXRlX2NsZWFyX2ZpeG1hcGAgbWFjcm9zIG9uIEFSTTY0IGFuZCBSSVNDLVYsIGFuZCByZW1vdmVzIHRoZSBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIG9uIEFSTTY0LiBTaW5jZSBib3RoIGFyY2hpdGVjdHVyZXMgZGVmaW5lIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBpZGVudGljYWxseSAoYXMgYF9fc2V0X2ZpeG1hcGApLCBza2lwcGluZyB0aGUgc3RhdGUgdG9nZ2xlIChgYWZ0ZXJfcGFnaW5nX2luaXQgPSAxYCkgcmVzdWx0cyBpbiB0aGUgZXhhY3Qgc2FtZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQuIFRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmUgcmVmYWN0b3JpbmcvY2xlYW51cC4gSXQgcmVtb3ZlcyByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9jbGVhcl9maXhtYXBgIG1hY3JvcyBvbiBBUk02NCBhbmQgUklTQy1WLCBhbmQgcmVtb3ZlcyB0aGUgY2FsbCB0byBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBvbiBBUk02NC4gU2luY2UgYm90aCBhcmNoaXRlY3R1cmVzIGRlZmluZSB0aGUgZWFybHkgYW5kIGxhdGUgZml4bWFwIG9wZXJhdGlvbnMgaWRlbnRpY2FsbHkgKGFzIGBfX3NldF9maXhtYXBgKSwgc2tpcHBpbmcgdGhlIHN0YXRlIHRvZ2dsZSAoYGFmdGVyX3BhZ2luZ19pbml0ID0gMWApIHJlc3VsdHMgaW4gdGhlIGV4YWN0IHNhbWUgdW5kZXJseWluZyBmdW5jdGlvbnMgYmVpbmcgY2FsbGVkLiBUaGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjM2LjgzMDYxODMwNVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNjA0NjY1ODMwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlIHJlZmFjdG9yaW5nL2NsZWFudXAuIEl0IHJlbW92ZXMgcmVkdW5kYW50IGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBtYWNyb3Mgb24gQVJNNjQgYW5kIFJJU0MtViwgYW5kIHJlbW92ZXMgdGhlIGNhbGwgdG8gYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgb24gQVJNNjQuIFNpbmNlIGJvdGggYXJjaGl0ZWN0dXJlcyBkZWZpbmUgdGhlIGVhcmx5IGFuZCBsYXRlIGZpeG1hcCBvcGVyYXRpb25zIGlkZW50aWNhbGx5IChhcyBgX19zZXRfZml4bWFwYCksIHNraXBwaW5nIHRoZSBzdGF0ZSB0b2dnbGUgKGBhZnRlcl9wYWdpbmdfaW5pdCA9IDFgKSByZXN1bHRzIGluIHRoZSBleGFjdCBzYW1lIHVuZGVybHlpbmcgZnVuY3Rpb25zIGJlaW5nIGNhbGxlZC4gVGhlcmUgaXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjM2LjgzMDYyMzc0NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTI4MTY0MzM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNWFhNGNkMzg4ZmY0NDJhNGRkNzQ5YjY2YWNmMTY5ODFiMjFlYjYwM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCA5IDExOjI2OjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oXFxuaW5kZXggNjU1NTUyODQ0NDZlNzMuLmFiZDk4MDBhYWJmNzZkIDEwMDY0NFxcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcXG4rKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oXFxuQEAgLTExMCw5ICsxMTAsNiBAQCB2b2lkIF9faW5pdCBlYXJseV9maXhtYXBfaW5pdCh2b2lkKTtcXG4gXFxuICNkZWZpbmUgX19lYXJseV9zZXRfZml4bWFwIF9fc2V0X2ZpeG1hcFxcbiBcXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcCBfX3NldF9maXhtYXBcXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcXG4tXFxuIGV4dGVybiB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpO1xcbiBcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS1nZW5lcmljL2ZpeG1hcC5oXFx1MDAzZVxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuY1xcbmluZGV4IDIzYzA1ZGM3YThmMmFjLi4yOWM2MTAwZjBjNTBiMiAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXFxuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuY1xcbkBAIC0zNDcsOCArMzQ3LDYgQEAgdm9pZCBfX2luaXQgX19ub19zYW5pdGl6ZV9hZGRyZXNzIHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcClcXG4gXFxuIFxcdHJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKCk7XFxuIFxcbi1cXHRlYXJseV9pb3JlbWFwX3Jlc2V0KCk7XFxuLVxcbiBcXHRpZiAoYWNwaV9kaXNhYmxlZClcXG4gXFx0XFx0cHNjaV9kdF9pbml0KCk7XFxuIFxcdGVsc2VcXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcXG5pbmRleCAwYTU1MDk5YmI3MzQ5ZC4uYTgxODIzYzVlZTRhZjUgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxcbisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcXG5AQCAtNTUsOSArNTUsNiBAQCBlbnVtIGZpeGVkX2FkZHJlc3NlcyB7XFxuIFxcbiAjZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcFxcdF9fc2V0X2ZpeG1hcFxcbiBcXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcFxcdF9fc2V0X2ZpeG1hcFxcbi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKVxcbi1cXG4gZXh0ZXJuIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCxcXG4gXFx0XFx0XFx0IHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvbW0vZWFybHlfaW9yZW1hcC5jIGIvbW0vZWFybHlfaW9yZW1hcC5jXFxuaW5kZXggOTZjMjliOWRjODVkOTUuLjYyMTViOTBkZmVmM2I0IDEwMDY0NFxcbi0tLSBhL21tL2Vhcmx5X2lvcmVtYXAuY1xcbisrKyBiL21tL2Vhcmx5X2lvcmVtYXAuY1xcbkBAIC00NywxNSArNDcsMTkgQEAgcGdwcm90X3QgX19pbml0IF9fd2VhayBlYXJseV9tZW1yZW1hcF9wZ3Byb3RfYWRqdXN0KHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsXFxuIFxcdHJldHVybiBwcm90O1xcbiB9XFxuIFxcbisvKlxcbisgKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKVxcbisgKiBhZnRlciBwYWdpbmdfaW5pdCgpIG5lZWQgdG8gY2FsbCB0aGlzLlxcbisgKi9cXG4gdm9pZCBfX2luaXQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKVxcbiB7XFxuIFxcdGFmdGVyX3BhZ2luZ19pbml0ID0gMTtcXG4gfVxcbiBcXG4gLypcXG4tICogR2VuZXJhbGx5LCBpb3JlbWFwKCkgaXMgYXZhaWxhYmxlIGFmdGVyIHBhZ2luZ19pbml0KCkgaGFzIGJlZW4gY2FsbGVkLlxcbi0gKiBBcmNoaXRlY3R1cmVzIHdhbnRpbmcgdG8gYWxsb3cgZWFybHlfaW9yZW1hcCBhZnRlciBwYWdpbmdfaW5pdCgpIGNhblxcbi0gKiBkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgYW5kIF9fbGF0ZV9jbGVhcl9maXhtYXAgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nLlxcbisgKiBPbmx5IGFyY2hpdGVjdHVyZXMgdGhhdCBjYWxsIGVhcmx5X2lvcmVtYXBfcmVzZXQoKSBuZWVkIHRvIGRlZmluZVxcbisgKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzXFxuKyAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0LlxcbiAgKi9cXG4gI2lmbmRlZiBfX2xhdGVfc2V0X2ZpeG1hcFxcbiBzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IF9fbGF0ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTE6MjY6MzcuMzU5NDM4NTQzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzU1MTc4MzExMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZSByZWZhY3RvcmluZy9jbGVhbnVwLiBJdCByZW1vdmVzIHJlZHVuZGFudCBgX19sYXRlX3NldF9maXhtYXBgIGFuZCBgX19sYXRlX2NsZWFyX2ZpeG1hcGAgbWFjcm9zIG9uIEFSTTY0IGFuZCBSSVNDLVYsIGFuZCByZW1vdmVzIHRoZSBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIG9uIEFSTTY0LiBTaW5jZSBib3RoIGFyY2hpdGVjdHVyZXMgZGVmaW5lIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBpZGVudGljYWxseSAoYXMgYF9fc2V0X2ZpeG1hcGApLCBza2lwcGluZyB0aGUgc3RhdGUgdG9nZ2xlIChgYWZ0ZXJfcGFnaW5nX2luaXQgPSAxYCkgcmVzdWx0cyBpbiB0aGUgZXhhY3Qgc2FtZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQuIFRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDVhYTRjZDM4OGZmNDQyYTRkZDc0OWI2NmFjZjE2OTgxYjIxZWI2MDNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDExOjI2OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbmluZGV4IDY1NTU1Mjg0NDQ2ZTczLi5hYmQ5ODAwYWFiZjc2ZCAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbkBAIC0xMTAsOSArMTEwLDYgQEAgdm9pZCBfX2luaXQgZWFybHlfZml4bWFwX2luaXQodm9pZCk7XG4gXG4gI2RlZmluZSBfX2Vhcmx5X3NldF9maXhtYXAgX19zZXRfZml4bWFwXG4gXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcCBfX3NldF9maXhtYXBcbi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKVxuLVxuIGV4dGVybiB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpO1xuIFxuICNpbmNsdWRlIFx1MDAzY2FzbS1nZW5lcmljL2ZpeG1hcC5oXHUwMDNlXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmNcbmluZGV4IDIzYzA1ZGM3YThmMmFjLi4yOWM2MTAwZjBjNTBiMiAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmNcbisrKyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmNcbkBAIC0zNDcsOCArMzQ3LDYgQEAgdm9pZCBfX2luaXQgX19ub19zYW5pdGl6ZV9hZGRyZXNzIHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcClcbiBcbiBcdHJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKCk7XG4gXG4tXHRlYXJseV9pb3JlbWFwX3Jlc2V0KCk7XG4tXG4gXHRpZiAoYWNwaV9kaXNhYmxlZClcbiBcdFx0cHNjaV9kdF9pbml0KCk7XG4gXHRlbHNlXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcbmluZGV4IDBhNTUwOTliYjczNDlkLi5hODE4MjNjNWVlNGFmNSAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcbisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcbkBAIC01NSw5ICs1NSw2IEBAIGVudW0gZml4ZWRfYWRkcmVzc2VzIHtcbiBcbiAjZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4gXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcbi1cbiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LFxuIFx0XHRcdCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTtcbiBcbmRpZmYgLS1naXQgYS9tbS9lYXJseV9pb3JlbWFwLmMgYi9tbS9lYXJseV9pb3JlbWFwLmNcbmluZGV4IDk2YzI5YjlkYzg1ZDk1Li42MjE1YjkwZGZlZjNiNCAxMDA2NDRcbi0tLSBhL21tL2Vhcmx5X2lvcmVtYXAuY1xuKysrIGIvbW0vZWFybHlfaW9yZW1hcC5jXG5AQCAtNDcsMTUgKzQ3LDE5IEBAIHBncHJvdF90IF9faW5pdCBfX3dlYWsgZWFybHlfbWVtcmVtYXBfcGdwcm90X2FkanVzdChyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLFxuIFx0cmV0dXJuIHByb3Q7XG4gfVxuIFxuKy8qXG4rICogT25seSBhcmNoaXRlY3R1cmVzIHdob3NlIGVhcmx5X2lvcmVtYXAoKSBtdXN0IHN0b3AgdXNpbmcgX19lYXJseV9zZXRfZml4bWFwKClcbisgKiBhZnRlciBwYWdpbmdfaW5pdCgpIG5lZWQgdG8gY2FsbCB0aGlzLlxuKyAqL1xuIHZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZClcbiB7XG4gXHRhZnRlcl9wYWdpbmdfaW5pdCA9IDE7XG4gfVxuIFxuIC8qXG4tICogR2VuZXJhbGx5LCBpb3JlbWFwKCkgaXMgYXZhaWxhYmxlIGFmdGVyIHBhZ2luZ19pbml0KCkgaGFzIGJlZW4gY2FsbGVkLlxuLSAqIEFyY2hpdGVjdHVyZXMgd2FudGluZyB0byBhbGxvdyBlYXJseV9pb3JlbWFwIGFmdGVyIHBhZ2luZ19pbml0KCkgY2FuXG4tICogZGVmaW5lIF9fbGF0ZV9zZXRfZml4bWFwIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwIHRvIGRvIHRoZSByaWdodCB0aGluZy5cbisgKiBPbmx5IGFyY2hpdGVjdHVyZXMgdGhhdCBjYWxsIGVhcmx5X2lvcmVtYXBfcmVzZXQoKSBuZWVkIHRvIGRlZmluZVxuKyAqIF9fbGF0ZV9zZXRfZml4bWFwKCkgYW5kIF9fbGF0ZV9jbGVhcl9maXhtYXAoKSwgd2hpY2ggZWFybHlfaW9yZW1hcCgpIHVzZXNcbisgKiBpbnN0ZWFkIG9mIF9fZWFybHlfc2V0X2ZpeG1hcCgpIGFmdGVyIHRoZSByZXNldC5cbiAgKi9cbiAjaWZuZGVmIF9fbGF0ZV9zZXRfZml4bWFwXG4gc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBfX2xhdGVfc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyNjozNy4zNTk0NDA0MzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTUwNjE5Njc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIFRoaXMgRml4bWFwIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaGAsIGBhcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jYCwgYGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhgLCBhbmQgYG1tL2Vhcmx5X2lvcmVtYXAuY2AuIEltbWVkaWF0ZWx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIHBvdGVudGlhbCBmb3IgZnVuY3Rpb25hbCBpbXBhY3QgdGhhdCBtaWdodCBiZSBleHBsb2l0YWJsZSB0aHJvdWdoIGZ1enppbmcuIE15IGluaXRpYWwgc2NhbiB0ZWxscyBtZSBpdCdzIHJlbW92aW5nIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBmcm9tIGJvdGggYXJtNjQgYW5kIHJpc2N2LCBhbmQgYWxzbyByZW1vdmluZyB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbCBmcm9tIGFybTY0J3MgYHNldHVwX2FyY2goKWAuXG5cbkxldCdzIGRpZyBpbi4gSSBzZWUgdGhhdCB0aGUgcmVtb3ZlZCBtYWNyb3MgaW4gdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoZWFkZXJzIHdlcmUganVzdCBkZWZpbmVkIGFzIGNhbGxzIHRvIGBfX3NldF9maXhtYXBgIGFuZCB2YXJpYW50cyBvZiBjbGVhcmluZyB0aGUgZml4bWFwIGVudHJpZXMuIExvb2tpbmcgYXQgYG1tL2Vhcmx5X2lvcmVtYXAuY2AsIEkgc2VlIHRoYXQgaXQgaW5jbHVkZXMgZGVmaW5pdGlvbnMgZm9yIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCB1c2luZyBgQlVHKClgIGlmIHRoZXkncmUgbm90IGFscmVhZHkgZGVmaW5lZC4gXG5cbk5vdywgaGVyZSdzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIElmIGBfX2xhdGVfc2V0X2ZpeG1hcGAgaXMgcmVtb3ZlZCBmcm9tIGJvdGggYXJjaGl0ZWN0dXJlcywgdGhlIGRlZmF1bHQgYEJVRygpYCBkZWZpbml0aW9ucyBpbiBgbW0vZWFybHlfaW9yZW1hcC5jYCB3aWxsIGJlIHVzZWQuIEJ1dCwgdGhlIHJlbW92YWwgb2YgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnJvbSBhcm02NCBpcyBjcnVjaWFsIGhlcmUuIFRoYXQgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgYGFmdGVyX3BhZ2luZ19pbml0YCB0byAxLiBJZiBpdCdzIG5vdCBjYWxsZWQsIGBhZnRlcl9wYWdpbmdfaW5pdGAgcmVtYWlucyAwLiBBbmQgaWYgYGFmdGVyX3BhZ2luZ19pbml0YCBpcyAwLCB0aGUgY29kZSBpbiBgZWFybHlfaW9yZW1hcCgpYCB3aWxsIHVzZSBgX19lYXJseV9zZXRfZml4bWFwKClgIGluc3RlYWQgb2YgdGhlIG5vdy11bmRlZmluZWQgYF9fbGF0ZV9zZXRfZml4bWFwKClgLiBUaGVyZWZvcmUsIGBfX2xhdGVfc2V0X2ZpeG1hcCgpYCB3aWxsIG5ldmVyIGJlIGNhbGxlZC4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBob3cgYG1tL2Vhcmx5X2lvcmVtYXAuY2AgaGFuZGxlcyB0aGF0IGNvbmRpdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYzOCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjQ0LjMxMDA2MzI2MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTE2MDI1MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhZnRlcl9wYWdpbmdfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9lYXJseV9pb3JlbWFwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZWFybHlfaW9yZW1hcC5jPTMxPWVhcmx5X3BhcmFtKFxcXCJlYXJseV9pb3JlbWFwX2RlYnVnXFxcIiwgZWFybHlfaW9yZW1hcF9kZWJ1Z19zZXR1cCk7XFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmMtNDAtXFxubW0vZWFybHlfaW9yZW1hcC5jOjQxOnN0YXRpYyBpbnQgYWZ0ZXJfcGFnaW5nX2luaXQgX19pbml0ZGF0YTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtNDItXFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmM9NTQ9dm9pZCBfX2luaXQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy01NS17XFxubW0vZWFybHlfaW9yZW1hcC5jOjU2OlxcdGFmdGVyX3BhZ2luZ19pbml0ID0gMTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtNTctfVxcbi0tXFxubW0vZWFybHlfaW9yZW1hcC5jPTExMj1fX2Vhcmx5X2lvcmVtYXAocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCBwZ3Byb3RfdCBwcm90KVxcbi0tXFxubW0vZWFybHlfaW9yZW1hcC5jLTE2MS1cXHR3aGlsZSAobnJwYWdlcyBcXHUwMDNlIDApIHtcXG5tbS9lYXJseV9pb3JlbWFwLmM6MTYyOlxcdFxcdGlmIChhZnRlcl9wYWdpbmdfaW5pdClcXG5tbS9lYXJseV9pb3JlbWFwLmMtMTYzLVxcdFxcdFxcdF9fbGF0ZV9zZXRfZml4bWFwKGlkeCwgcGh5c19hZGRyLCBwcm90KTtcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYz0xNzU9dm9pZCBfX2luaXQgZWFybHlfaW91bm1hcCh2b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSlcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy0yMTAtXFx0d2hpbGUgKG5ycGFnZXMgXFx1MDAzZSAwKSB7XFxubW0vZWFybHlfaW9yZW1hcC5jOjIxMTpcXHRcXHRpZiAoYWZ0ZXJfcGFnaW5nX2luaXQpXFxubW0vZWFybHlfaW9yZW1hcC5jLTIxMi1cXHRcXHRcXHRfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjQ0LjM3OTIzMDE1NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2NzMyNjMxNjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlZmFjdG9yaW5nIHRoZSBFYXJseSBGaXhtYXAgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHdlJ3JlIGRlYWxpbmcgd2l0aCBlYXJseSBmaXhtYXAgaW5pdGlhbGl6YXRpb24sIHNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGlzIHplcm8uIFRoYXQgY29uZGl0aW9uIHRyaWdnZXJzIGBfX2Vhcmx5X3NldF9maXhtYXBgLiBSaWdodCwgc28gZmFyLCBzbyBnb29kLiBUaGVuIEkgc2VlIHRoYXQgaXQgY2FsbHMgYF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAuXG5cbkFoYSEgTm93IHRoaW5ncyBnZXQgaW50ZXJlc3RpbmcuIExvb2tpbmcgY2xvc2VyIGF0IHRoZSBhcm02NCBpbXBsZW1lbnRhdGlvbiwgSSByZWFsaXplIGBfX2Vhcmx5X3NldF9maXhtYXBgICppcyogYWN0dWFsbHkganVzdCBhIG1hY3JvIGFsaWFzaW5nIGBfX3NldF9maXhtYXBgLiBBbmQgbG9va2luZyBhdCB0aGUgaGlzdG9yeSBvZiB0aGUgY29kZWJhc2UgSSBjYW4gc2VlIHRoYXQgYF9fbGF0ZV9zZXRfZml4bWFwYCB3YXMgKmFsc28qIGRlZmluZWQgYXMgYF9fc2V0X2ZpeG1hcGAuXG5cblNvLCBpZiBteSB1bmRlcnN0YW5kaW5nIGlzIHJpZ2h0LCB3ZSdyZSBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBlYXJseSBvbiB0aGF0IHdlIHdlcmUgcHJldmlvdXNseSBkb2luZyBsYXRlLCBvbmx5IHdlJ3JlIGVsaW1pbmF0aW5nIHRoZSByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBkZWZpbml0aW9uIGFuZCwgY29uc2VxdWVudGx5LCB0aGF0IGNhbGwgdG8gYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAuXG5cblRoaXMgc2ltcGxpZmllcyB0aGUgb3ZlcmFsbCBwcm9jZXNzLiBUaGlzIHJlbW92ZXMgYSBsb3Qgb2YgY3J1ZnQuIEJ1dCBob2xkIG9uLCB3aGF0IGFib3V0IFJJU0MtVj8gRGlkIFJJU0MtViBuZWVkIHRoYXQgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBSSVNDLVYgaW1wbGVtZW50YXRpb24gbm93LiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgY2hhbmdlIGlzIHNhZmUgYWNyb3NzIGFsbCBhcmNoaXRlY3R1cmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTk5LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI3OjAxLjExMTg2NjE0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NDg0Mjg5MTEsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImVhcmx5X2lvcmVtYXBfcmVzZXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTE6Mjc6MDIuNTYwMzA1MTMxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODE5NDYyMDM1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSSVNDLVYgYW5kIEFSTTY0IEZpeG1hcCBDaGFuZ2VzKipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGNsZWFudXAsIGJ1dCBsZXQgbWUgYnJlYWsgZG93biBteSB1bmRlcnN0YW5kaW5nLiBGaXJzdCwgSSBub3RpY2VkIHRoYXQgb24gUklTQy1WLCB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnVuY3Rpb24gd2FzIG5ldmVyIGFjdHVhbGx5IGNhbGxlZC4gVGhpcyBpcyBjcml0aWNhbCBiZWNhdXNlIHRoYXQgZnVuY3Rpb24gaXMgd2hhdCBzZXRzIHRoZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGZsYWcuIFNvLCB0aGlzIG1lYW5zIGBhZnRlcl9wYWdpbmdfaW5pdGAgd2FzIGFsd2F5cyB6ZXJvIG9uIFJJU0MtViwgd2hpY2ggZWZmZWN0aXZlbHkgcmVuZGVyZWQgdGhlIGRlZmluaXRpb24gb2YgYF9fbGF0ZV9zZXRfZml4bWFwYCBhcyBkZWFkIGNvZGUgaW4gdGhhdCBhcmNoaXRlY3R1cmUuXG5cbk5vdywgb24gQVJNNjQsIHRoZSBwcm9jZXNzIHdhcyBpbml0aWFsbHkgZGlmZmVyZW50LiBUaGUgY29kZSAqZGlkKiBjYWxsIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgLCB3aGljaCBmbGlwcGVkIGBhZnRlcl9wYWdpbmdfaW5pdGAgdG8gMS4gQ29uc2VxdWVudGx5LCBlYXJseSBgaW9yZW1hcGAgY2FsbHMgd291bGQgdXNlIGBfX2xhdGVfc2V0X2ZpeG1hcGAuIEJ1dCBub3csIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbC4gQXMgYSByZXN1bHQsIGBhZnRlcl9wYWdpbmdfaW5pdGAgaXMgc3R1Y2sgYXQgemVyby4gVGhpcyBjYXVzZXMgYGVhcmx5X2lvcmVtYXBgIHRvIG5vdyB1c2UgYF9fZWFybHlfc2V0X2ZpeG1hcGAuXG5cblRoZSBjcnVjaWFsIHRoaW5nIGhlcmUgaXMgdGhhdCBib3RoIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2Vhcmx5X3NldF9maXhtYXBgIGFyZSB1bHRpbWF0ZWx5IGRlZmluZWQgYXMgdGhlIGV4YWN0IHNhbWUgZnVuY3Rpb24sIGBfX3NldF9maXhtYXBgLiBTbyBmdW5jdGlvbmFsbHksIHRoZSBjb2RlIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4gVGhlICpvbmx5KiBkaWZmZXJlbmNlIGlzIHRoYXQgYGFmdGVyX3BhZ2luZ19pbml0YCByZW1haW5zIGF0IDAsIHRodXMgYGVhcmx5X2lvcmVtYXBgIGFuZCBgZWFybHlfaW91bm1hcGAgdGFrZSB0aGUgYGVsc2VgIGJyYW5jaCwgaW52b2tpbmcgYF9fZWFybHlfc2V0X2ZpeG1hcGAgaW5zdGVhZCBvZiBgX19sYXRlX3NldF9maXhtYXBgLiBTaW5jZSB0aGV5J3JlIGJvdGggbWFwcGVkIHRvIGBfX3NldF9maXhtYXBgLCB0aGVyZSdzIG5vIGZ1bmN0aW9uYWwgZGlmZmVyZW5jZS4gSXQncyBhIGNsZWFuLCBuby1vcCByZWZhY3Rvci5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgZ28gYmFjayBhbmQgZG91YmxlLWNoZWNrIHRob3NlIGBfX2Vhcmx5X3NldF9maXhtYXBgIGFuZCBgX19sYXRlX3NldF9maXhtYXBgIGRlZmluaXRpb25zIGluIHRoZSBBUk02NCBjb2RlLCBqdXN0IHRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZyBpcyBjb3JyZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTAxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI4OjI0LjUwNjUxMTIyNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzYwMTE4MTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fZWFybHlfc2V0X2ZpeG1hcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2FybTY0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmg9MTA5PXZvaWQgX19pbml0IGVhcmx5X2ZpeG1hcF9pbml0KHZvaWQpO1xcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgtMTEwLVxcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmg6MTExOiNkZWZpbmUgX19lYXJseV9zZXRfZml4bWFwIF9fc2V0X2ZpeG1hcFxcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgtMTEyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODoyNS44NjY2MzU2NDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzA0MTYwNjMzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi5cblxuKipGaXhtYXAgTWVtb3J5IE1hbmFnZW1lbnQgQ29uc2lkZXJhdGlvbnMqKlxuXG5TbywgYF9fbGF0ZV9zZXRfZml4bWFwYCBpcywgaW4gZXNzZW5jZSwgdGhlIHNhbWUgZnVuY3Rpb24gYXMgYF9fc2V0X2ZpeG1hcGAuIFRoYXQgbXVjaCBpcyBjbGVhci4gTm93LCBsZXQgbWUgcmUtZXhhbWluZSB0aGlzIGNsZWFyaW5nIG1hY3JvOiBgI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilgLiBSaWdodCwgaXQncyBqdXN0IHNldHRpbmcgdGhlIGZpeG1hcCBlbnRyeSB0byB6ZXJvIHdpdGggdGhlIGBGSVhNQVBfUEFHRV9DTEVBUmAgZmxhZywgZWZmZWN0aXZlbHkgdW5tYXBwaW5nIGl0LiBPa2F5LCB0aGF0IG1ha2VzIHNlbnNlLlxuXG5CdXQgdGhlIHJlYWwgcXVlc3Rpb24gYXJpc2luZyBoZXJlIGlzIHdoYXQgYGVhcmx5X2lvdW5tYXBgIGlzIGRvaW5nIHdoZW4gYGFmdGVyX3BhZ2luZ19pbml0YCBoYXNuJ3QgYmVlbiBzZXQgeWV0LiBUaGF0IGlzIGFuIGFzcGVjdCBuZWVkaW5nIGNsYXJpZmljYXRpb24uIFdoYXQgc3RhdGUgaXMgdGhlIHN5c3RlbSBpbiBhbmQgd2hhdCBpbXBsaWNhdGlvbnMgYXJlIHRoZXJlIGZvciBtZW1vcnkgYWNjZXNzIG9yIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQgdHJhbnNpdGlvbiBwaGFzZSBiZXR0ZXIgdG8gZW5zdXJlIHByb3BlciBvcGVyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0MDYsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODozOC45MDgyNDM4NjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2OTI2MzgzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX2Vhcmx5X3NldF9maXhtYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZWFybHlfaW9yZW1hcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2Vhcmx5X2lvcmVtYXAuYz00Mz1wZ3Byb3RfdCBfX2luaXQgX193ZWFrIGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkcixcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy01MC0vKlxcbm1tL2Vhcmx5X2lvcmVtYXAuYzo1MTogKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy01Mi0gKiBhZnRlciBwYWdpbmdfaW5pdCgpIG5lZWQgdG8gY2FsbCB0aGlzLlxcbi0tXFxubW0vZWFybHlfaW9yZW1hcC5jPTU0PXZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZClcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy02MS0gKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzXFxubW0vZWFybHlfaW9yZW1hcC5jOjYyOiAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0Llxcbm1tL2Vhcmx5X2lvcmVtYXAuYy02My0gKi9cXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYz0xMTI9X19lYXJseV9pb3JlbWFwKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdClcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy0xNjQtXFx0XFx0ZWxzZVxcbm1tL2Vhcmx5X2lvcmVtYXAuYzoxNjU6XFx0XFx0XFx0X19lYXJseV9zZXRfZml4bWFwKGlkeCwgcGh5c19hZGRyLCBwcm90KTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtMTY2LVxcdFxcdHBoeXNfYWRkciArPSBQQUdFX1NJWkU7XFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmM9MTc1PXZvaWQgX19pbml0IGVhcmx5X2lvdW5tYXAodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpXFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmMtMjEzLVxcdFxcdGVsc2VcXG5tbS9lYXJseV9pb3JlbWFwLmM6MjE0OlxcdFxcdFxcdF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtMjE1LVxcdFxcdC0taWR4O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODozOS4yNzc1MTcyNjZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTM1OTk3MTk5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVmYWN0b3JpbmcgRml4bWFwIE9wZXJhdGlvbnMqKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgY29kZSwgaXQncyBpbW1lZGlhdGVseSBjbGVhci4gYF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAgaXMsIGZ1bmRhbWVudGFsbHksIHRoZSBzYW1lIHRoaW5nIGFzIHdoYXQgYF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KWAgd2FzIGRlZmluZWQgYXMuIE5vIGZ1bmN0aW9uYWwgY2hhbmdlcyBoZXJlIHdoYXRzb2V2ZXIuIFRoaXMgcGF0Y2gganVzdCBzdHJlYW1saW5lcyB0aGluZ3MuIEl0IHJlbW92ZXMgdGhvc2UgcmVkdW5kYW50IG1hY3JvcyBhbmQgdGhlIHJlZHVuZGFudCBzdGF0ZSB0b2dnbGUgc3BlY2lmaWNhbGx5IGZvciBhcmNoaXRlY3R1cmVzIHdoZXJlIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBhcmUsIGZvciBhbGwgaW50ZW50cyBhbmQgcHVycG9zZXMsIGlkZW50aWNhbC4gUHVyZSByZWZhY3RvcmluZy4gTm8gbmV3IGZ1bmN0aW9uYWxpdHksIG5vIHBvdGVudGlhbCBmb3IgbmV3IGJ1Z3MgYXJpc2luZyBmcm9tIGFyY2hpdGVjdHVyYWwgdmFyaWF0aW9ucy4gU28sIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvZGUsIGFuZCBjb25zaWRlcmluZyBpdHMgaW1wYWN0LCAqKldvcnRoRnV6emluZz1mYWxzZSoqIGlzIHRoZSBvbmx5IGxvZ2ljYWwgY29uY2x1c2lvbi4gSSdsbCBtYWtlIHRoYXQgZGVjbGFyYXRpb24gYW5kIGVuc3VyZSB0aGUgcmVhc29uaW5nIGlzIGNsZWFyIGZvciByZXZpZXdlcnMgYW5kIG1haW50YWluZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTc4LCJPdXRwdXRUb2tlbnMiOjE0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODo1Mi44NzcyNDAwMzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODA1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmUgcmVmYWN0b3JpbmcvY2xlYW51cC4gSXQgcmVtb3ZlcyByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9jbGVhcl9maXhtYXBgIG1hY3JvcyBvbiBBUk02NCBhbmQgUklTQy1WLCBhbmQgcmVtb3ZlcyB0aGUgY2FsbCB0byBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBvbiBBUk02NC4gU2luY2UgYm90aCBhcmNoaXRlY3R1cmVzIGRlZmluZSB0aGUgZWFybHkgYW5kIGxhdGUgZml4bWFwIG9wZXJhdGlvbnMgaWRlbnRpY2FsbHkgKGFzIGBfX3NldF9maXhtYXBgKSwgc2tpcHBpbmcgdGhlIHN0YXRlIHRvZ2dsZSAoYGFmdGVyX3BhZ2luZ19pbml0ID0gMWApIHJlc3VsdHMgaW4gdGhlIGV4YWN0IHNhbWUgdW5kZXJseWluZyBmdW5jdGlvbnMgYmVpbmcgY2FsbGVkLiBUaGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlIHJlZmFjdG9yaW5nL2NsZWFudXAuIEl0IHJlbW92ZXMgcmVkdW5kYW50IGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBtYWNyb3Mgb24gQVJNNjQgYW5kIFJJU0MtViwgYW5kIHJlbW92ZXMgdGhlIGNhbGwgdG8gYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgb24gQVJNNjQuIFNpbmNlIGJvdGggYXJjaGl0ZWN0dXJlcyBkZWZpbmUgdGhlIGVhcmx5IGFuZCBsYXRlIGZpeG1hcCBvcGVyYXRpb25zIGlkZW50aWNhbGx5IChhcyBgX19zZXRfZml4bWFwYCksIHNraXBwaW5nIHRoZSBzdGF0ZSB0b2dnbGUgKGBhZnRlcl9wYWdpbmdfaW5pdCA9IDFgKSByZXN1bHRzIGluIHRoZSBleGFjdCBzYW1lIHVuZGVybHlpbmcgZnVuY3Rpb25zIGJlaW5nIGNhbGxlZC4gVGhlcmUgaXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjbbf5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-09 10:46:57 +0000 UTC FinishedAt: 2026-07-09 11:28:54 +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+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZSByZWZhY3RvcmluZy9jbGVhbnVwLiBJdCByZW1vdmVzIHJlZHVuZGFudCBgX19sYXRlX3NldF9maXhtYXBgIGFuZCBgX19sYXRlX2NsZWFyX2ZpeG1hcGAgbWFjcm9zIG9uIEFSTTY0IGFuZCBSSVNDLVYsIGFuZCByZW1vdmVzIHRoZSBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIG9uIEFSTTY0LiBTaW5jZSBib3RoIGFyY2hpdGVjdHVyZXMgZGVmaW5lIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBpZGVudGljYWxseSAoYXMgYF9fc2V0X2ZpeG1hcGApLCBza2lwcGluZyB0aGUgc3RhdGUgdG9nZ2xlIChgYWZ0ZXJfcGFnaW5nX2luaXQgPSAxYCkgcmVzdWx0cyBpbiB0aGUgZXhhY3Qgc2FtZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQuIFRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNWFhNGNkMzg4ZmY0NDJhNGRkNzQ5YjY2YWNmMTY5ODFiMjFlYjYwM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDkgMTE6MjY6MzUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbmluZGV4IDY1NTU1Mjg0NDQ2ZTczLi5hYmQ5ODAwYWFiZjc2ZCAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbkBAIC0xMTAsOSAmIzQzOzExMCw2IEBAIHZvaWQgX19pbml0IGVhcmx5X2ZpeG1hcF9pbml0KHZvaWQpO1xuIFxuICNkZWZpbmUgX19lYXJseV9zZXRfZml4bWFwIF9fc2V0X2ZpeG1hcFxuIFxuLSNkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgX19zZXRfZml4bWFwXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcbi1cbiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTtcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20tZ2VuZXJpYy9maXhtYXAuaFx1MDAzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmMgYi9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXG5pbmRleCAyM2MwNWRjN2E4ZjJhYy4uMjljNjEwMGYwYzUwYjIgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXG5AQCAtMzQ3LDggJiM0MzszNDcsNiBAQCB2b2lkIF9faW5pdCBfX25vX3Nhbml0aXplX2FkZHJlc3Mgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9wKVxuIFxuIFx0cmVxdWVzdF9zdGFuZGFyZF9yZXNvdXJjZXMoKTtcbiBcbi1cdGVhcmx5X2lvcmVtYXBfcmVzZXQoKTtcbi1cbiBcdGlmIChhY3BpX2Rpc2FibGVkKVxuIFx0XHRwc2NpX2R0X2luaXQoKTtcbiBcdGVsc2VcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxuaW5kZXggMGE1NTA5OWJiNzM0OWQuLmE4MTgyM2M1ZWU0YWY1IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxuQEAgLTU1LDkgJiM0Mzs1NSw2IEBAIGVudW0gZml4ZWRfYWRkcmVzc2VzIHtcbiBcbiAjZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4gXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcbi1cbiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LFxuIFx0XHRcdCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTtcbiBcbmRpZmYgLS1naXQgYS9tbS9lYXJseV9pb3JlbWFwLmMgYi9tbS9lYXJseV9pb3JlbWFwLmNcbmluZGV4IDk2YzI5YjlkYzg1ZDk1Li42MjE1YjkwZGZlZjNiNCAxMDA2NDRcbi0tLSBhL21tL2Vhcmx5X2lvcmVtYXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZWFybHlfaW9yZW1hcC5jXG5AQCAtNDcsMTUgJiM0Mzs0NywxOSBAQCBwZ3Byb3RfdCBfX2luaXQgX193ZWFrIGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkcixcbiBcdHJldHVybiBwcm90O1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogT25seSBhcmNoaXRlY3R1cmVzIHdob3NlIGVhcmx5X2lvcmVtYXAoKSBtdXN0IHN0b3AgdXNpbmcgX19lYXJseV9zZXRfZml4bWFwKClcbiYjNDM7ICogYWZ0ZXIgcGFnaW5nX2luaXQoKSBuZWVkIHRvIGNhbGwgdGhpcy5cbiYjNDM7ICovXG4gdm9pZCBfX2luaXQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKVxuIHtcbiBcdGFmdGVyX3BhZ2luZ19pbml0ID0gMTtcbiB9XG4gXG4gLypcbi0gKiBHZW5lcmFsbHksIGlvcmVtYXAoKSBpcyBhdmFpbGFibGUgYWZ0ZXIgcGFnaW5nX2luaXQoKSBoYXMgYmVlbiBjYWxsZWQuXG4tICogQXJjaGl0ZWN0dXJlcyB3YW50aW5nIHRvIGFsbG93IGVhcmx5X2lvcmVtYXAgYWZ0ZXIgcGFnaW5nX2luaXQoKSBjYW5cbi0gKiBkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgYW5kIF9fbGF0ZV9jbGVhcl9maXhtYXAgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nLlxuJiM0MzsgKiBPbmx5IGFyY2hpdGVjdHVyZXMgdGhhdCBjYWxsIGVhcmx5X2lvcmVtYXBfcmVzZXQoKSBuZWVkIHRvIGRlZmluZVxuJiM0MzsgKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzXG4mIzQzOyAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0LlxuICAqL1xuICNpZm5kZWYgX19sYXRlX3NldF9maXhtYXBcbiBzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IF9fbGF0ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmUgcmVmYWN0b3JpbmcvY2xlYW51cC4gSXQgcmVtb3ZlcyByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9jbGVhcl9maXhtYXBgIG1hY3JvcyBvbiBBUk02NCBhbmQgUklTQy1WLCBhbmQgcmVtb3ZlcyB0aGUgY2FsbCB0byBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBvbiBBUk02NC4gU2luY2UgYm90aCBhcmNoaXRlY3R1cmVzIGRlZmluZSB0aGUgZWFybHkgYW5kIGxhdGUgZml4bWFwIG9wZXJhdGlvbnMgaWRlbnRpY2FsbHkgKGFzIGBfX3NldF9maXhtYXBgKSwgc2tpcHBpbmcgdGhlIHN0YXRlIHRvZ2dsZSAoYGFmdGVyX3BhZ2luZ19pbml0ID0gMWApIHJlc3VsdHMgaW4gdGhlIGV4YWN0IHNhbWUgdW5kZXJseWluZyBmdW5jdGlvbnMgYmVpbmcgY2FsbGVkLiBUaGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWFhNGNkMzg4ZmY0NDJhNGRkNzQ5YjY2YWNmMTY5ODFiMjFlYjYwMwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMTE6MjY6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaAppbmRleCA2NTU1NTI4NDQ0NmU3My4uYWJkOTgwMGFhYmY3NmQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaApAQCAtMTEwLDkgJiM0MzsxMTAsNiBAQCB2b2lkIF9faW5pdCBlYXJseV9maXhtYXBfaW5pdCh2b2lkKTsKIAogI2RlZmluZSBfX2Vhcmx5X3NldF9maXhtYXAgX19zZXRfZml4bWFwCiAKLSNkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgX19zZXRfZml4bWFwCi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKQotCiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTsKIAogI2luY2x1ZGUgJmx0O2FzbS1nZW5lcmljL2ZpeG1hcC5oJmd0OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmMKaW5kZXggMjNjMDVkYzdhOGYyYWMuLjI5YzYxMDBmMGM1MGIyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmMKQEAgLTM0Nyw4ICYjNDM7MzQ3LDYgQEAgdm9pZCBfX2luaXQgX19ub19zYW5pdGl6ZV9hZGRyZXNzIHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkKIAogCXJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKCk7CiAKLQllYXJseV9pb3JlbWFwX3Jlc2V0KCk7Ci0KIAlpZiAoYWNwaV9kaXNhYmxlZCkKIAkJcHNjaV9kdF9pbml0KCk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmgKaW5kZXggMGE1NTA5OWJiNzM0OWQuLmE4MTgyM2M1ZWU0YWY1IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmgKQEAgLTU1LDkgJiM0Mzs1NSw2IEBAIGVudW0gZml4ZWRfYWRkcmVzc2VzIHsKIAogI2RlZmluZSBfX2Vhcmx5X3NldF9maXhtYXAJX19zZXRfZml4bWFwCiAKLSNkZWZpbmUgX19sYXRlX3NldF9maXhtYXAJX19zZXRfZml4bWFwCi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKQotCiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAogCQkJIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpOwogCmRpZmYgLS1naXQgYS9tbS9lYXJseV9pb3JlbWFwLmMgYi9tbS9lYXJseV9pb3JlbWFwLmMKaW5kZXggOTZjMjliOWRjODVkOTUuLjYyMTViOTBkZmVmM2I0IDEwMDY0NAotLS0gYS9tbS9lYXJseV9pb3JlbWFwLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vZWFybHlfaW9yZW1hcC5jCkBAIC00NywxNSAmIzQzOzQ3LDE5IEBAIHBncHJvdF90IF9faW5pdCBfX3dlYWsgZWFybHlfbWVtcmVtYXBfcGdwcm90X2FkanVzdChyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLAogCXJldHVybiBwcm90OwogfQogCiYjNDM7LyoKJiM0MzsgKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKQomIzQzOyAqIGFmdGVyIHBhZ2luZ19pbml0KCkgbmVlZCB0byBjYWxsIHRoaXMuCiYjNDM7ICovCiB2b2lkIF9faW5pdCBlYXJseV9pb3JlbWFwX3Jlc2V0KHZvaWQpCiB7CiAJYWZ0ZXJfcGFnaW5nX2luaXQgPSAxOwogfQogCiAvKgotICogR2VuZXJhbGx5LCBpb3JlbWFwKCkgaXMgYXZhaWxhYmxlIGFmdGVyIHBhZ2luZ19pbml0KCkgaGFzIGJlZW4gY2FsbGVkLgotICogQXJjaGl0ZWN0dXJlcyB3YW50aW5nIHRvIGFsbG93IGVhcmx5X2lvcmVtYXAgYWZ0ZXIgcGFnaW5nX2luaXQoKSBjYW4KLSAqIGRlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcCBhbmQgX19sYXRlX2NsZWFyX2ZpeG1hcCB0byBkbyB0aGUgcmlnaHQgdGhpbmcuCiYjNDM7ICogT25seSBhcmNoaXRlY3R1cmVzIHRoYXQgY2FsbCBlYXJseV9pb3JlbWFwX3Jlc2V0KCkgbmVlZCB0byBkZWZpbmUKJiM0MzsgKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzCiYjNDM7ICogaW5zdGVhZCBvZiBfX2Vhcmx5X3NldF9maXhtYXAoKSBhZnRlciB0aGUgcmVzZXQuCiAgKi8KICNpZm5kZWYgX19sYXRlX3NldF9maXhtYXAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgX19sYXRlX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjM4CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIFRoaXMgRml4bWFwIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhgLCBgYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuY2AsIGBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oYCwgYW5kIGBtbS9lYXJseV9pb3JlbWFwLmNgLiBJbW1lZGlhdGVseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgcG90ZW50aWFsIGZvciBmdW5jdGlvbmFsIGltcGFjdCB0aGF0IG1pZ2h0IGJlIGV4cGxvaXRhYmxlIHRocm91Z2ggZnV6emluZy4gTXkgaW5pdGlhbCBzY2FuIHRlbGxzIG1lIGl0JiMzOTtzIHJlbW92aW5nIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBmcm9tIGJvdGggYXJtNjQgYW5kIHJpc2N2LCBhbmQgYWxzbyByZW1vdmluZyB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbCBmcm9tIGFybTY0JiMzOTtzIGBzZXR1cF9hcmNoKClgLgoKTGV0JiMzOTtzIGRpZyBpbi4gSSBzZWUgdGhhdCB0aGUgcmVtb3ZlZCBtYWNyb3MgaW4gdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoZWFkZXJzIHdlcmUganVzdCBkZWZpbmVkIGFzIGNhbGxzIHRvIGBfX3NldF9maXhtYXBgIGFuZCB2YXJpYW50cyBvZiBjbGVhcmluZyB0aGUgZml4bWFwIGVudHJpZXMuIExvb2tpbmcgYXQgYG1tL2Vhcmx5X2lvcmVtYXAuY2AsIEkgc2VlIHRoYXQgaXQgaW5jbHVkZXMgZGVmaW5pdGlvbnMgZm9yIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCB1c2luZyBgQlVHKClgIGlmIHRoZXkmIzM5O3JlIG5vdCBhbHJlYWR5IGRlZmluZWQuIAoKTm93LCBoZXJlJiMzOTtzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIElmIGBfX2xhdGVfc2V0X2ZpeG1hcGAgaXMgcmVtb3ZlZCBmcm9tIGJvdGggYXJjaGl0ZWN0dXJlcywgdGhlIGRlZmF1bHQgYEJVRygpYCBkZWZpbml0aW9ucyBpbiBgbW0vZWFybHlfaW9yZW1hcC5jYCB3aWxsIGJlIHVzZWQuIEJ1dCwgdGhlIHJlbW92YWwgb2YgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnJvbSBhcm02NCBpcyBjcnVjaWFsIGhlcmUuIFRoYXQgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgYGFmdGVyX3BhZ2luZ19pbml0YCB0byAxLiBJZiBpdCYjMzk7cyBub3QgY2FsbGVkLCBgYWZ0ZXJfcGFnaW5nX2luaXRgIHJlbWFpbnMgMC4gQW5kIGlmIGBhZnRlcl9wYWdpbmdfaW5pdGAgaXMgMCwgdGhlIGNvZGUgaW4gYGVhcmx5X2lvcmVtYXAoKWAgd2lsbCB1c2UgYF9fZWFybHlfc2V0X2ZpeG1hcCgpYCBpbnN0ZWFkIG9mIHRoZSBub3ctdW5kZWZpbmVkIGBfX2xhdGVfc2V0X2ZpeG1hcCgpYC4gVGhlcmVmb3JlLCBgX19sYXRlX3NldF9maXhtYXAoKWAgd2lsbCBuZXZlciBiZSBjYWxsZWQuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGhvdyBgbW0vZWFybHlfaW9yZW1hcC5jYCBoYW5kbGVzIHRoYXQgY29uZGl0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FmdGVyX3BhZ2luZ19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZWFybHlfaW9yZW1hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2Vhcmx5X2lvcmVtYXAuYz0zMT1lYXJseV9wYXJhbShcJiMzNDtlYXJseV9pb3JlbWFwX2RlYnVnXCYjMzQ7LCBlYXJseV9pb3JlbWFwX2RlYnVnX3NldHVwKTtcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtNDAtXG5tbS9lYXJseV9pb3JlbWFwLmM6NDE6c3RhdGljIGludCBhZnRlcl9wYWdpbmdfaW5pdCBfX2luaXRkYXRhO1xubW0vZWFybHlfaW9yZW1hcC5jLTQyLVxuLS1cbm1tL2Vhcmx5X2lvcmVtYXAuYz01ND12b2lkIF9faW5pdCBlYXJseV9pb3JlbWFwX3Jlc2V0KHZvaWQpXG5tbS9lYXJseV9pb3JlbWFwLmMtNTUte1xubW0vZWFybHlfaW9yZW1hcC5jOjU2Olx0YWZ0ZXJfcGFnaW5nX2luaXQgPSAxO1xubW0vZWFybHlfaW9yZW1hcC5jLTU3LX1cbi0tXG5tbS9lYXJseV9pb3JlbWFwLmM9MTEyPV9fZWFybHlfaW9yZW1hcChyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHByb3QpXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jLTE2MS1cdHdoaWxlIChucnBhZ2VzIFx1MDAzZSAwKSB7XG5tbS9lYXJseV9pb3JlbWFwLmM6MTYyOlx0XHRpZiAoYWZ0ZXJfcGFnaW5nX2luaXQpXG5tbS9lYXJseV9pb3JlbWFwLmMtMTYzLVx0XHRcdF9fbGF0ZV9zZXRfZml4bWFwKGlkeCwgcGh5c19hZGRyLCBwcm90KTtcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmM9MTc1PXZvaWQgX19pbml0IGVhcmx5X2lvdW5tYXAodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jLTIxMC1cdHdoaWxlIChucnBhZ2VzIFx1MDAzZSAwKSB7XG5tbS9lYXJseV9pb3JlbWFwLmM6MjExOlx0XHRpZiAoYWZ0ZXJfcGFnaW5nX2luaXQpXG5tbS9lYXJseV9pb3JlbWFwLmMtMjEyLVx0XHRcdF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTk5CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMTU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIHRoZSBFYXJseSBGaXhtYXAgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSXQgc2VlbXMgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlYXJseSBmaXhtYXAgaW5pdGlhbGl6YXRpb24sIHNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGlzIHplcm8uIFRoYXQgY29uZGl0aW9uIHRyaWdnZXJzIGBfX2Vhcmx5X3NldF9maXhtYXBgLiBSaWdodCwgc28gZmFyLCBzbyBnb29kLiBUaGVuIEkgc2VlIHRoYXQgaXQgY2FsbHMgYF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAuCgpBaGEhIE5vdyB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBMb29raW5nIGNsb3NlciBhdCB0aGUgYXJtNjQgaW1wbGVtZW50YXRpb24sIEkgcmVhbGl6ZSBgX19lYXJseV9zZXRfZml4bWFwYCAqaXMqIGFjdHVhbGx5IGp1c3QgYSBtYWNybyBhbGlhc2luZyBgX19zZXRfZml4bWFwYC4gQW5kIGxvb2tpbmcgYXQgdGhlIGhpc3Rvcnkgb2YgdGhlIGNvZGViYXNlIEkgY2FuIHNlZSB0aGF0IGBfX2xhdGVfc2V0X2ZpeG1hcGAgd2FzICphbHNvKiBkZWZpbmVkIGFzIGBfX3NldF9maXhtYXBgLgoKU28sIGlmIG15IHVuZGVyc3RhbmRpbmcgaXMgcmlnaHQsIHdlJiMzOTtyZSBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBlYXJseSBvbiB0aGF0IHdlIHdlcmUgcHJldmlvdXNseSBkb2luZyBsYXRlLCBvbmx5IHdlJiMzOTtyZSBlbGltaW5hdGluZyB0aGUgcmVkdW5kYW50IGBfX2xhdGVfc2V0X2ZpeG1hcGAgZGVmaW5pdGlvbiBhbmQsIGNvbnNlcXVlbnRseSwgdGhhdCBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgLgoKVGhpcyBzaW1wbGlmaWVzIHRoZSBvdmVyYWxsIHByb2Nlc3MuIFRoaXMgcmVtb3ZlcyBhIGxvdCBvZiBjcnVmdC4gQnV0IGhvbGQgb24sIHdoYXQgYWJvdXQgUklTQy1WPyBEaWQgUklTQy1WIG5lZWQgdGhhdCBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBjYWxsPyBJIG5lZWQgdG8gY2hlY2sgdGhlIFJJU0MtViBpbXBsZW1lbnRhdGlvbiBub3cuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBjaGFuZ2UgaXMgc2FmZSBhY3Jvc3MgYWxsIGFyY2hpdGVjdHVyZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYXJseV9pb3JlbWFwX3Jlc2V0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUwMQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDMxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJJU0MtViBhbmQgQVJNNjQgRml4bWFwIENoYW5nZXMqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGNsZWFudXAsIGJ1dCBsZXQgbWUgYnJlYWsgZG93biBteSB1bmRlcnN0YW5kaW5nLiBGaXJzdCwgSSBub3RpY2VkIHRoYXQgb24gUklTQy1WLCB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnVuY3Rpb24gd2FzIG5ldmVyIGFjdHVhbGx5IGNhbGxlZC4gVGhpcyBpcyBjcml0aWNhbCBiZWNhdXNlIHRoYXQgZnVuY3Rpb24gaXMgd2hhdCBzZXRzIHRoZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGZsYWcuIFNvLCB0aGlzIG1lYW5zIGBhZnRlcl9wYWdpbmdfaW5pdGAgd2FzIGFsd2F5cyB6ZXJvIG9uIFJJU0MtViwgd2hpY2ggZWZmZWN0aXZlbHkgcmVuZGVyZWQgdGhlIGRlZmluaXRpb24gb2YgYF9fbGF0ZV9zZXRfZml4bWFwYCBhcyBkZWFkIGNvZGUgaW4gdGhhdCBhcmNoaXRlY3R1cmUuCgpOb3csIG9uIEFSTTY0LCB0aGUgcHJvY2VzcyB3YXMgaW5pdGlhbGx5IGRpZmZlcmVudC4gVGhlIGNvZGUgKmRpZCogY2FsbCBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCwgd2hpY2ggZmxpcHBlZCBgYWZ0ZXJfcGFnaW5nX2luaXRgIHRvIDEuIENvbnNlcXVlbnRseSwgZWFybHkgYGlvcmVtYXBgIGNhbGxzIHdvdWxkIHVzZSBgX19sYXRlX3NldF9maXhtYXBgLiBCdXQgbm93LCB0aGlzIHBhdGNoIHJlbW92ZXMgdGhlIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIGNhbGwuIEFzIGEgcmVzdWx0LCBgYWZ0ZXJfcGFnaW5nX2luaXRgIGlzIHN0dWNrIGF0IHplcm8uIFRoaXMgY2F1c2VzIGBlYXJseV9pb3JlbWFwYCB0byBub3cgdXNlIGBfX2Vhcmx5X3NldF9maXhtYXBgLgoKVGhlIGNydWNpYWwgdGhpbmcgaGVyZSBpcyB0aGF0IGJvdGggYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fZWFybHlfc2V0X2ZpeG1hcGAgYXJlIHVsdGltYXRlbHkgZGVmaW5lZCBhcyB0aGUgZXhhY3Qgc2FtZSBmdW5jdGlvbiwgYF9fc2V0X2ZpeG1hcGAuIFNvIGZ1bmN0aW9uYWxseSwgdGhlIGNvZGUgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkLiBUaGUgKm9ubHkqIGRpZmZlcmVuY2UgaXMgdGhhdCBgYWZ0ZXJfcGFnaW5nX2luaXRgIHJlbWFpbnMgYXQgMCwgdGh1cyBgZWFybHlfaW9yZW1hcGAgYW5kIGBlYXJseV9pb3VubWFwYCB0YWtlIHRoZSBgZWxzZWAgYnJhbmNoLCBpbnZva2luZyBgX19lYXJseV9zZXRfZml4bWFwYCBpbnN0ZWFkIG9mIGBfX2xhdGVfc2V0X2ZpeG1hcGAuIFNpbmNlIHRoZXkmIzM5O3JlIGJvdGggbWFwcGVkIHRvIGBfX3NldF9maXhtYXBgLCB0aGVyZSYjMzk7cyBubyBmdW5jdGlvbmFsIGRpZmZlcmVuY2UuIEl0JiMzOTtzIGEgY2xlYW4sIG5vLW9wIHJlZmFjdG9yLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkmIzM5O2xsIGdvIGJhY2sgYW5kIGRvdWJsZS1jaGVjayB0aG9zZSBgX19lYXJseV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9zZXRfZml4bWFwYCBkZWZpbml0aW9ucyBpbiB0aGUgQVJNNjQgY29kZSwganVzdCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX2Vhcmx5X3NldF9maXhtYXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL2FybTY0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmg9MTA5PXZvaWQgX19pbml0IGVhcmx5X2ZpeG1hcF9pbml0KHZvaWQpO1xuYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaC0xMTAtXG5hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oOjExMTojZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcCBfX3NldF9maXhtYXBcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgtMTEyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDExOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0MDYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4KCioqRml4bWFwIE1lbW9yeSBNYW5hZ2VtZW50IENvbnNpZGVyYXRpb25zKioKClNvLCBgX19sYXRlX3NldF9maXhtYXBgIGlzLCBpbiBlc3NlbmNlLCB0aGUgc2FtZSBmdW5jdGlvbiBhcyBgX19zZXRfZml4bWFwYC4gVGhhdCBtdWNoIGlzIGNsZWFyLiBOb3csIGxldCBtZSByZS1leGFtaW5lIHRoaXMgY2xlYXJpbmcgbWFjcm86IGAjZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAuIFJpZ2h0LCBpdCYjMzk7cyBqdXN0IHNldHRpbmcgdGhlIGZpeG1hcCBlbnRyeSB0byB6ZXJvIHdpdGggdGhlIGBGSVhNQVBfUEFHRV9DTEVBUmAgZmxhZywgZWZmZWN0aXZlbHkgdW5tYXBwaW5nIGl0LiBPa2F5LCB0aGF0IG1ha2VzIHNlbnNlLgoKQnV0IHRoZSByZWFsIHF1ZXN0aW9uIGFyaXNpbmcgaGVyZSBpcyB3aGF0IGBlYXJseV9pb3VubWFwYCBpcyBkb2luZyB3aGVuIGBhZnRlcl9wYWdpbmdfaW5pdGAgaGFzbiYjMzk7dCBiZWVuIHNldCB5ZXQuIFRoYXQgaXMgYW4gYXNwZWN0IG5lZWRpbmcgY2xhcmlmaWNhdGlvbi4gV2hhdCBzdGF0ZSBpcyB0aGUgc3lzdGVtIGluIGFuZCB3aGF0IGltcGxpY2F0aW9ucyBhcmUgdGhlcmUgZm9yIG1lbW9yeSBhY2Nlc3Mgb3IgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbj8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCB0cmFuc2l0aW9uIHBoYXNlIGJldHRlciB0byBlbnN1cmUgcHJvcGVyIG9wZXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19lYXJseV9zZXRfZml4bWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZWFybHlfaW9yZW1hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2Vhcmx5X2lvcmVtYXAuYz00Mz1wZ3Byb3RfdCBfX2luaXQgX193ZWFrIGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkcixcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtNTAtLypcbm1tL2Vhcmx5X2lvcmVtYXAuYzo1MTogKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKVxubW0vZWFybHlfaW9yZW1hcC5jLTUyLSAqIGFmdGVyIHBhZ2luZ19pbml0KCkgbmVlZCB0byBjYWxsIHRoaXMuXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jPTU0PXZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZClcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtNjEtICogX19sYXRlX3NldF9maXhtYXAoKSBhbmQgX19sYXRlX2NsZWFyX2ZpeG1hcCgpLCB3aGljaCBlYXJseV9pb3JlbWFwKCkgdXNlc1xubW0vZWFybHlfaW9yZW1hcC5jOjYyOiAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0LlxubW0vZWFybHlfaW9yZW1hcC5jLTYzLSAqL1xuLS1cbm1tL2Vhcmx5X2lvcmVtYXAuYz0xMTI9X19lYXJseV9pb3JlbWFwKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdClcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmMtMTY0LVx0XHRlbHNlXG5tbS9lYXJseV9pb3JlbWFwLmM6MTY1Olx0XHRcdF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIHBoeXNfYWRkciwgcHJvdCk7XG5tbS9lYXJseV9pb3JlbWFwLmMtMTY2LVx0XHRwaHlzX2FkZHIgJiM0Mzs9IFBBR0VfU0laRTtcbi0tXG5tbS9lYXJseV9pb3JlbWFwLmM9MTc1PXZvaWQgX19pbml0IGVhcmx5X2lvdW5tYXAodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpXG4tLVxubW0vZWFybHlfaW9yZW1hcC5jLTIxMy1cdFx0ZWxzZVxubW0vZWFybHlfaW9yZW1hcC5jOjIxNDpcdFx0XHRfX2Vhcmx5X3NldF9maXhtYXAoaWR4LCAwLCBGSVhNQVBfUEFHRV9DTEVBUik7XG5tbS9lYXJseV9pb3JlbWFwLmMtMjE1LVx0XHQtLWlkeDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTE6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjE3OAoJCQkJCQkJb3V0cHV0OiAxNDgKCQkJCQkJCXRob3VnaHRzOiAxMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVmYWN0b3JpbmcgRml4bWFwIE9wZXJhdGlvbnMqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIGl0JiMzOTtzIGltbWVkaWF0ZWx5IGNsZWFyLiBgX19lYXJseV9zZXRfZml4bWFwKGlkeCwgMCwgRklYTUFQX1BBR0VfQ0xFQVIpYCBpcywgZnVuZGFtZW50YWxseSwgdGhlIHNhbWUgdGhpbmcgYXMgd2hhdCBgX19sYXRlX2NsZWFyX2ZpeG1hcChpZHgpYCB3YXMgZGVmaW5lZCBhcy4gTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGhlcmUgd2hhdHNvZXZlci4gVGhpcyBwYXRjaCBqdXN0IHN0cmVhbWxpbmVzIHRoaW5ncy4gSXQgcmVtb3ZlcyB0aG9zZSByZWR1bmRhbnQgbWFjcm9zIGFuZCB0aGUgcmVkdW5kYW50IHN0YXRlIHRvZ2dsZSBzcGVjaWZpY2FsbHkgZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUgdGhlIGVhcmx5IGFuZCBsYXRlIGZpeG1hcCBvcGVyYXRpb25zIGFyZSwgZm9yIGFsbCBpbnRlbnRzIGFuZCBwdXJwb3NlcywgaWRlbnRpY2FsLiBQdXJlIHJlZmFjdG9yaW5nLiBObyBuZXcgZnVuY3Rpb25hbGl0eSwgbm8gcG90ZW50aWFsIGZvciBuZXcgYnVncyBhcmlzaW5nIGZyb20gYXJjaGl0ZWN0dXJhbCB2YXJpYXRpb25zLiBTbywgYmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgY29kZSwgYW5kIGNvbnNpZGVyaW5nIGl0cyBpbXBhY3QsICoqV29ydGhGdXp6aW5nPWZhbHNlKiogaXMgdGhlIG9ubHkgbG9naWNhbCBjb25jbHVzaW9uLiBJJiMzOTtsbCBtYWtlIHRoYXQgZGVjbGFyYXRpb24gYW5kIGVuc3VyZSB0aGUgcmVhc29uaW5nIGlzIGNsZWFyIGZvciByZXZpZXdlcnMgYW5kIG1haW50YWluZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZSByZWZhY3RvcmluZy9jbGVhbnVwLiBJdCByZW1vdmVzIHJlZHVuZGFudCBgX19sYXRlX3NldF9maXhtYXBgIGFuZCBgX19sYXRlX2NsZWFyX2ZpeG1hcGAgbWFjcm9zIG9uIEFSTTY0IGFuZCBSSVNDLVYsIGFuZCByZW1vdmVzIHRoZSBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIG9uIEFSTTY0LiBTaW5jZSBib3RoIGFyY2hpdGVjdHVyZXMgZGVmaW5lIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBpZGVudGljYWxseSAoYXMgYF9fc2V0X2ZpeG1hcGApLCBza2lwcGluZyB0aGUgc3RhdGUgdG9nZ2xlIChgYWZ0ZXJfcGFnaW5nX2luaXQgPSAxYCkgcmVzdWx0cyBpbiB0aGUgZXhhY3Qgc2FtZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQuIFRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmUgcmVmYWN0b3JpbmcvY2xlYW51cC4gSXQgcmVtb3ZlcyByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9jbGVhcl9maXhtYXBgIG1hY3JvcyBvbiBBUk02NCBhbmQgUklTQy1WLCBhbmQgcmVtb3ZlcyB0aGUgY2FsbCB0byBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBvbiBBUk02NC4gU2luY2UgYm90aCBhcmNoaXRlY3R1cmVzIGRlZmluZSB0aGUgZWFybHkgYW5kIGxhdGUgZml4bWFwIG9wZXJhdGlvbnMgaWRlbnRpY2FsbHkgKGFzIGBfX3NldF9maXhtYXBgKSwgc2tpcHBpbmcgdGhlIHN0YXRlIHRvZ2dsZSAoYGFmdGVyX3BhZ2luZ19pbml0ID0gMWApIHJlc3VsdHMgaW4gdGhlIGV4YWN0IHNhbWUgdW5kZXJseWluZyBmdW5jdGlvbnMgYmVpbmcgY2FsbGVkLiBUaGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjM2LjgzMDYxODMwNVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNjA0NjY1ODMwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlIHJlZmFjdG9yaW5nL2NsZWFudXAuIEl0IHJlbW92ZXMgcmVkdW5kYW50IGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBtYWNyb3Mgb24gQVJNNjQgYW5kIFJJU0MtViwgYW5kIHJlbW92ZXMgdGhlIGNhbGwgdG8gYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgb24gQVJNNjQuIFNpbmNlIGJvdGggYXJjaGl0ZWN0dXJlcyBkZWZpbmUgdGhlIGVhcmx5IGFuZCBsYXRlIGZpeG1hcCBvcGVyYXRpb25zIGlkZW50aWNhbGx5IChhcyBgX19zZXRfZml4bWFwYCksIHNraXBwaW5nIHRoZSBzdGF0ZSB0b2dnbGUgKGBhZnRlcl9wYWdpbmdfaW5pdCA9IDFgKSByZXN1bHRzIGluIHRoZSBleGFjdCBzYW1lIHVuZGVybHlpbmcgZnVuY3Rpb25zIGJlaW5nIGNhbGxlZC4gVGhlcmUgaXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjM2LjgzMDYyMzc0NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTI4MTY0MzM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNWFhNGNkMzg4ZmY0NDJhNGRkNzQ5YjY2YWNmMTY5ODFiMjFlYjYwM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCA5IDExOjI2OjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oXFxuaW5kZXggNjU1NTUyODQ0NDZlNzMuLmFiZDk4MDBhYWJmNzZkIDEwMDY0NFxcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcXG4rKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oXFxuQEAgLTExMCw5ICsxMTAsNiBAQCB2b2lkIF9faW5pdCBlYXJseV9maXhtYXBfaW5pdCh2b2lkKTtcXG4gXFxuICNkZWZpbmUgX19lYXJseV9zZXRfZml4bWFwIF9fc2V0X2ZpeG1hcFxcbiBcXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcCBfX3NldF9maXhtYXBcXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcXG4tXFxuIGV4dGVybiB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpO1xcbiBcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS1nZW5lcmljL2ZpeG1hcC5oXFx1MDAzZVxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuY1xcbmluZGV4IDIzYzA1ZGM3YThmMmFjLi4yOWM2MTAwZjBjNTBiMiAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jXFxuKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuY1xcbkBAIC0zNDcsOCArMzQ3LDYgQEAgdm9pZCBfX2luaXQgX19ub19zYW5pdGl6ZV9hZGRyZXNzIHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcClcXG4gXFxuIFxcdHJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKCk7XFxuIFxcbi1cXHRlYXJseV9pb3JlbWFwX3Jlc2V0KCk7XFxuLVxcbiBcXHRpZiAoYWNwaV9kaXNhYmxlZClcXG4gXFx0XFx0cHNjaV9kdF9pbml0KCk7XFxuIFxcdGVsc2VcXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcXG5pbmRleCAwYTU1MDk5YmI3MzQ5ZC4uYTgxODIzYzVlZTRhZjUgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaFxcbisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcXG5AQCAtNTUsOSArNTUsNiBAQCBlbnVtIGZpeGVkX2FkZHJlc3NlcyB7XFxuIFxcbiAjZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcFxcdF9fc2V0X2ZpeG1hcFxcbiBcXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcFxcdF9fc2V0X2ZpeG1hcFxcbi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKVxcbi1cXG4gZXh0ZXJuIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCxcXG4gXFx0XFx0XFx0IHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvbW0vZWFybHlfaW9yZW1hcC5jIGIvbW0vZWFybHlfaW9yZW1hcC5jXFxuaW5kZXggOTZjMjliOWRjODVkOTUuLjYyMTViOTBkZmVmM2I0IDEwMDY0NFxcbi0tLSBhL21tL2Vhcmx5X2lvcmVtYXAuY1xcbisrKyBiL21tL2Vhcmx5X2lvcmVtYXAuY1xcbkBAIC00NywxNSArNDcsMTkgQEAgcGdwcm90X3QgX19pbml0IF9fd2VhayBlYXJseV9tZW1yZW1hcF9wZ3Byb3RfYWRqdXN0KHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsXFxuIFxcdHJldHVybiBwcm90O1xcbiB9XFxuIFxcbisvKlxcbisgKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKVxcbisgKiBhZnRlciBwYWdpbmdfaW5pdCgpIG5lZWQgdG8gY2FsbCB0aGlzLlxcbisgKi9cXG4gdm9pZCBfX2luaXQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKVxcbiB7XFxuIFxcdGFmdGVyX3BhZ2luZ19pbml0ID0gMTtcXG4gfVxcbiBcXG4gLypcXG4tICogR2VuZXJhbGx5LCBpb3JlbWFwKCkgaXMgYXZhaWxhYmxlIGFmdGVyIHBhZ2luZ19pbml0KCkgaGFzIGJlZW4gY2FsbGVkLlxcbi0gKiBBcmNoaXRlY3R1cmVzIHdhbnRpbmcgdG8gYWxsb3cgZWFybHlfaW9yZW1hcCBhZnRlciBwYWdpbmdfaW5pdCgpIGNhblxcbi0gKiBkZWZpbmUgX19sYXRlX3NldF9maXhtYXAgYW5kIF9fbGF0ZV9jbGVhcl9maXhtYXAgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nLlxcbisgKiBPbmx5IGFyY2hpdGVjdHVyZXMgdGhhdCBjYWxsIGVhcmx5X2lvcmVtYXBfcmVzZXQoKSBuZWVkIHRvIGRlZmluZVxcbisgKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzXFxuKyAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0LlxcbiAgKi9cXG4gI2lmbmRlZiBfX2xhdGVfc2V0X2ZpeG1hcFxcbiBzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IF9fbGF0ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTE6MjY6MzcuMzU5NDM4NTQzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzU1MTc4MzExMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZSByZWZhY3RvcmluZy9jbGVhbnVwLiBJdCByZW1vdmVzIHJlZHVuZGFudCBgX19sYXRlX3NldF9maXhtYXBgIGFuZCBgX19sYXRlX2NsZWFyX2ZpeG1hcGAgbWFjcm9zIG9uIEFSTTY0IGFuZCBSSVNDLVYsIGFuZCByZW1vdmVzIHRoZSBjYWxsIHRvIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgIG9uIEFSTTY0LiBTaW5jZSBib3RoIGFyY2hpdGVjdHVyZXMgZGVmaW5lIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBpZGVudGljYWxseSAoYXMgYF9fc2V0X2ZpeG1hcGApLCBza2lwcGluZyB0aGUgc3RhdGUgdG9nZ2xlIChgYWZ0ZXJfcGFnaW5nX2luaXQgPSAxYCkgcmVzdWx0cyBpbiB0aGUgZXhhY3Qgc2FtZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQuIFRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBrZXJuZWwgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDVhYTRjZDM4OGZmNDQyYTRkZDc0OWI2NmFjZjE2OTgxYjIxZWI2MDNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDExOjI2OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbmluZGV4IDY1NTU1Mjg0NDQ2ZTczLi5hYmQ5ODAwYWFiZjc2ZCAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmhcbkBAIC0xMTAsOSArMTEwLDYgQEAgdm9pZCBfX2luaXQgZWFybHlfZml4bWFwX2luaXQodm9pZCk7XG4gXG4gI2RlZmluZSBfX2Vhcmx5X3NldF9maXhtYXAgX19zZXRfZml4bWFwXG4gXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcCBfX3NldF9maXhtYXBcbi0jZGVmaW5lIF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KSBfX3NldF9maXhtYXAoKGlkeCksIDAsIEZJWE1BUF9QQUdFX0NMRUFSKVxuLVxuIGV4dGVybiB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IHByb3QpO1xuIFxuICNpbmNsdWRlIFx1MDAzY2FzbS1nZW5lcmljL2ZpeG1hcC5oXHUwMDNlXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmNcbmluZGV4IDIzYzA1ZGM3YThmMmFjLi4yOWM2MTAwZjBjNTBiMiAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmNcbisrKyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmNcbkBAIC0zNDcsOCArMzQ3LDYgQEAgdm9pZCBfX2luaXQgX19ub19zYW5pdGl6ZV9hZGRyZXNzIHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcClcbiBcbiBcdHJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKCk7XG4gXG4tXHRlYXJseV9pb3JlbWFwX3Jlc2V0KCk7XG4tXG4gXHRpZiAoYWNwaV9kaXNhYmxlZClcbiBcdFx0cHNjaV9kdF9pbml0KCk7XG4gXHRlbHNlXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcbmluZGV4IDBhNTUwOTliYjczNDlkLi5hODE4MjNjNWVlNGFmNSAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcbisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhcbkBAIC01NSw5ICs1NSw2IEBAIGVudW0gZml4ZWRfYWRkcmVzc2VzIHtcbiBcbiAjZGVmaW5lIF9fZWFybHlfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4gXG4tI2RlZmluZSBfX2xhdGVfc2V0X2ZpeG1hcFx0X19zZXRfZml4bWFwXG4tI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilcbi1cbiBleHRlcm4gdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LFxuIFx0XHRcdCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3RfdCBwcm90KTtcbiBcbmRpZmYgLS1naXQgYS9tbS9lYXJseV9pb3JlbWFwLmMgYi9tbS9lYXJseV9pb3JlbWFwLmNcbmluZGV4IDk2YzI5YjlkYzg1ZDk1Li42MjE1YjkwZGZlZjNiNCAxMDA2NDRcbi0tLSBhL21tL2Vhcmx5X2lvcmVtYXAuY1xuKysrIGIvbW0vZWFybHlfaW9yZW1hcC5jXG5AQCAtNDcsMTUgKzQ3LDE5IEBAIHBncHJvdF90IF9faW5pdCBfX3dlYWsgZWFybHlfbWVtcmVtYXBfcGdwcm90X2FkanVzdChyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLFxuIFx0cmV0dXJuIHByb3Q7XG4gfVxuIFxuKy8qXG4rICogT25seSBhcmNoaXRlY3R1cmVzIHdob3NlIGVhcmx5X2lvcmVtYXAoKSBtdXN0IHN0b3AgdXNpbmcgX19lYXJseV9zZXRfZml4bWFwKClcbisgKiBhZnRlciBwYWdpbmdfaW5pdCgpIG5lZWQgdG8gY2FsbCB0aGlzLlxuKyAqL1xuIHZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZClcbiB7XG4gXHRhZnRlcl9wYWdpbmdfaW5pdCA9IDE7XG4gfVxuIFxuIC8qXG4tICogR2VuZXJhbGx5LCBpb3JlbWFwKCkgaXMgYXZhaWxhYmxlIGFmdGVyIHBhZ2luZ19pbml0KCkgaGFzIGJlZW4gY2FsbGVkLlxuLSAqIEFyY2hpdGVjdHVyZXMgd2FudGluZyB0byBhbGxvdyBlYXJseV9pb3JlbWFwIGFmdGVyIHBhZ2luZ19pbml0KCkgY2FuXG4tICogZGVmaW5lIF9fbGF0ZV9zZXRfZml4bWFwIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwIHRvIGRvIHRoZSByaWdodCB0aGluZy5cbisgKiBPbmx5IGFyY2hpdGVjdHVyZXMgdGhhdCBjYWxsIGVhcmx5X2lvcmVtYXBfcmVzZXQoKSBuZWVkIHRvIGRlZmluZVxuKyAqIF9fbGF0ZV9zZXRfZml4bWFwKCkgYW5kIF9fbGF0ZV9jbGVhcl9maXhtYXAoKSwgd2hpY2ggZWFybHlfaW9yZW1hcCgpIHVzZXNcbisgKiBpbnN0ZWFkIG9mIF9fZWFybHlfc2V0X2ZpeG1hcCgpIGFmdGVyIHRoZSByZXNldC5cbiAgKi9cbiAjaWZuZGVmIF9fbGF0ZV9zZXRfZml4bWFwXG4gc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBfX2xhdGVfc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyNjozNy4zNTk0NDA0MzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTUwNjE5Njc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIFRoaXMgRml4bWFwIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9maXhtYXAuaGAsIGBhcmNoL2FybTY0L2tlcm5lbC9zZXR1cC5jYCwgYGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vZml4bWFwLmhgLCBhbmQgYG1tL2Vhcmx5X2lvcmVtYXAuY2AuIEltbWVkaWF0ZWx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIHBvdGVudGlhbCBmb3IgZnVuY3Rpb25hbCBpbXBhY3QgdGhhdCBtaWdodCBiZSBleHBsb2l0YWJsZSB0aHJvdWdoIGZ1enppbmcuIE15IGluaXRpYWwgc2NhbiB0ZWxscyBtZSBpdCdzIHJlbW92aW5nIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBmcm9tIGJvdGggYXJtNjQgYW5kIHJpc2N2LCBhbmQgYWxzbyByZW1vdmluZyB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbCBmcm9tIGFybTY0J3MgYHNldHVwX2FyY2goKWAuXG5cbkxldCdzIGRpZyBpbi4gSSBzZWUgdGhhdCB0aGUgcmVtb3ZlZCBtYWNyb3MgaW4gdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoZWFkZXJzIHdlcmUganVzdCBkZWZpbmVkIGFzIGNhbGxzIHRvIGBfX3NldF9maXhtYXBgIGFuZCB2YXJpYW50cyBvZiBjbGVhcmluZyB0aGUgZml4bWFwIGVudHJpZXMuIExvb2tpbmcgYXQgYG1tL2Vhcmx5X2lvcmVtYXAuY2AsIEkgc2VlIHRoYXQgaXQgaW5jbHVkZXMgZGVmaW5pdGlvbnMgZm9yIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCB1c2luZyBgQlVHKClgIGlmIHRoZXkncmUgbm90IGFscmVhZHkgZGVmaW5lZC4gXG5cbk5vdywgaGVyZSdzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIElmIGBfX2xhdGVfc2V0X2ZpeG1hcGAgaXMgcmVtb3ZlZCBmcm9tIGJvdGggYXJjaGl0ZWN0dXJlcywgdGhlIGRlZmF1bHQgYEJVRygpYCBkZWZpbml0aW9ucyBpbiBgbW0vZWFybHlfaW9yZW1hcC5jYCB3aWxsIGJlIHVzZWQuIEJ1dCwgdGhlIHJlbW92YWwgb2YgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnJvbSBhcm02NCBpcyBjcnVjaWFsIGhlcmUuIFRoYXQgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgYGFmdGVyX3BhZ2luZ19pbml0YCB0byAxLiBJZiBpdCdzIG5vdCBjYWxsZWQsIGBhZnRlcl9wYWdpbmdfaW5pdGAgcmVtYWlucyAwLiBBbmQgaWYgYGFmdGVyX3BhZ2luZ19pbml0YCBpcyAwLCB0aGUgY29kZSBpbiBgZWFybHlfaW9yZW1hcCgpYCB3aWxsIHVzZSBgX19lYXJseV9zZXRfZml4bWFwKClgIGluc3RlYWQgb2YgdGhlIG5vdy11bmRlZmluZWQgYF9fbGF0ZV9zZXRfZml4bWFwKClgLiBUaGVyZWZvcmUsIGBfX2xhdGVfc2V0X2ZpeG1hcCgpYCB3aWxsIG5ldmVyIGJlIGNhbGxlZC4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBob3cgYG1tL2Vhcmx5X2lvcmVtYXAuY2AgaGFuZGxlcyB0aGF0IGNvbmRpdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYzOCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjQ0LjMxMDA2MzI2MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTE2MDI1MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhZnRlcl9wYWdpbmdfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9lYXJseV9pb3JlbWFwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZWFybHlfaW9yZW1hcC5jPTMxPWVhcmx5X3BhcmFtKFxcXCJlYXJseV9pb3JlbWFwX2RlYnVnXFxcIiwgZWFybHlfaW9yZW1hcF9kZWJ1Z19zZXR1cCk7XFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmMtNDAtXFxubW0vZWFybHlfaW9yZW1hcC5jOjQxOnN0YXRpYyBpbnQgYWZ0ZXJfcGFnaW5nX2luaXQgX19pbml0ZGF0YTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtNDItXFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmM9NTQ9dm9pZCBfX2luaXQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy01NS17XFxubW0vZWFybHlfaW9yZW1hcC5jOjU2OlxcdGFmdGVyX3BhZ2luZ19pbml0ID0gMTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtNTctfVxcbi0tXFxubW0vZWFybHlfaW9yZW1hcC5jPTExMj1fX2Vhcmx5X2lvcmVtYXAocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCBwZ3Byb3RfdCBwcm90KVxcbi0tXFxubW0vZWFybHlfaW9yZW1hcC5jLTE2MS1cXHR3aGlsZSAobnJwYWdlcyBcXHUwMDNlIDApIHtcXG5tbS9lYXJseV9pb3JlbWFwLmM6MTYyOlxcdFxcdGlmIChhZnRlcl9wYWdpbmdfaW5pdClcXG5tbS9lYXJseV9pb3JlbWFwLmMtMTYzLVxcdFxcdFxcdF9fbGF0ZV9zZXRfZml4bWFwKGlkeCwgcGh5c19hZGRyLCBwcm90KTtcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYz0xNzU9dm9pZCBfX2luaXQgZWFybHlfaW91bm1hcCh2b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSlcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy0yMTAtXFx0d2hpbGUgKG5ycGFnZXMgXFx1MDAzZSAwKSB7XFxubW0vZWFybHlfaW9yZW1hcC5jOjIxMTpcXHRcXHRpZiAoYWZ0ZXJfcGFnaW5nX2luaXQpXFxubW0vZWFybHlfaW9yZW1hcC5jLTIxMi1cXHRcXHRcXHRfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI2OjQ0LjM3OTIzMDE1NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2NzMyNjMxNjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlZmFjdG9yaW5nIHRoZSBFYXJseSBGaXhtYXAgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHdlJ3JlIGRlYWxpbmcgd2l0aCBlYXJseSBmaXhtYXAgaW5pdGlhbGl6YXRpb24sIHNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGlzIHplcm8uIFRoYXQgY29uZGl0aW9uIHRyaWdnZXJzIGBfX2Vhcmx5X3NldF9maXhtYXBgLiBSaWdodCwgc28gZmFyLCBzbyBnb29kLiBUaGVuIEkgc2VlIHRoYXQgaXQgY2FsbHMgYF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAuXG5cbkFoYSEgTm93IHRoaW5ncyBnZXQgaW50ZXJlc3RpbmcuIExvb2tpbmcgY2xvc2VyIGF0IHRoZSBhcm02NCBpbXBsZW1lbnRhdGlvbiwgSSByZWFsaXplIGBfX2Vhcmx5X3NldF9maXhtYXBgICppcyogYWN0dWFsbHkganVzdCBhIG1hY3JvIGFsaWFzaW5nIGBfX3NldF9maXhtYXBgLiBBbmQgbG9va2luZyBhdCB0aGUgaGlzdG9yeSBvZiB0aGUgY29kZWJhc2UgSSBjYW4gc2VlIHRoYXQgYF9fbGF0ZV9zZXRfZml4bWFwYCB3YXMgKmFsc28qIGRlZmluZWQgYXMgYF9fc2V0X2ZpeG1hcGAuXG5cblNvLCBpZiBteSB1bmRlcnN0YW5kaW5nIGlzIHJpZ2h0LCB3ZSdyZSBlc3NlbnRpYWxseSBkb2luZyB0aGUgc2FtZSB0aGluZyBlYXJseSBvbiB0aGF0IHdlIHdlcmUgcHJldmlvdXNseSBkb2luZyBsYXRlLCBvbmx5IHdlJ3JlIGVsaW1pbmF0aW5nIHRoZSByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBkZWZpbml0aW9uIGFuZCwgY29uc2VxdWVudGx5LCB0aGF0IGNhbGwgdG8gYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAuXG5cblRoaXMgc2ltcGxpZmllcyB0aGUgb3ZlcmFsbCBwcm9jZXNzLiBUaGlzIHJlbW92ZXMgYSBsb3Qgb2YgY3J1ZnQuIEJ1dCBob2xkIG9uLCB3aGF0IGFib3V0IFJJU0MtVj8gRGlkIFJJU0MtViBuZWVkIHRoYXQgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBSSVNDLVYgaW1wbGVtZW50YXRpb24gbm93LiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgY2hhbmdlIGlzIHNhZmUgYWNyb3NzIGFsbCBhcmNoaXRlY3R1cmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTk5LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI3OjAxLjExMTg2NjE0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NDg0Mjg5MTEsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImVhcmx5X2lvcmVtYXBfcmVzZXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTE6Mjc6MDIuNTYwMzA1MTMxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODE5NDYyMDM1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSSVNDLVYgYW5kIEFSTTY0IEZpeG1hcCBDaGFuZ2VzKipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGNsZWFudXAsIGJ1dCBsZXQgbWUgYnJlYWsgZG93biBteSB1bmRlcnN0YW5kaW5nLiBGaXJzdCwgSSBub3RpY2VkIHRoYXQgb24gUklTQy1WLCB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgZnVuY3Rpb24gd2FzIG5ldmVyIGFjdHVhbGx5IGNhbGxlZC4gVGhpcyBpcyBjcml0aWNhbCBiZWNhdXNlIHRoYXQgZnVuY3Rpb24gaXMgd2hhdCBzZXRzIHRoZSBgYWZ0ZXJfcGFnaW5nX2luaXRgIGZsYWcuIFNvLCB0aGlzIG1lYW5zIGBhZnRlcl9wYWdpbmdfaW5pdGAgd2FzIGFsd2F5cyB6ZXJvIG9uIFJJU0MtViwgd2hpY2ggZWZmZWN0aXZlbHkgcmVuZGVyZWQgdGhlIGRlZmluaXRpb24gb2YgYF9fbGF0ZV9zZXRfZml4bWFwYCBhcyBkZWFkIGNvZGUgaW4gdGhhdCBhcmNoaXRlY3R1cmUuXG5cbk5vdywgb24gQVJNNjQsIHRoZSBwcm9jZXNzIHdhcyBpbml0aWFsbHkgZGlmZmVyZW50LiBUaGUgY29kZSAqZGlkKiBjYWxsIGBlYXJseV9pb3JlbWFwX3Jlc2V0KClgLCB3aGljaCBmbGlwcGVkIGBhZnRlcl9wYWdpbmdfaW5pdGAgdG8gMS4gQ29uc2VxdWVudGx5LCBlYXJseSBgaW9yZW1hcGAgY2FsbHMgd291bGQgdXNlIGBfX2xhdGVfc2V0X2ZpeG1hcGAuIEJ1dCBub3csIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgY2FsbC4gQXMgYSByZXN1bHQsIGBhZnRlcl9wYWdpbmdfaW5pdGAgaXMgc3R1Y2sgYXQgemVyby4gVGhpcyBjYXVzZXMgYGVhcmx5X2lvcmVtYXBgIHRvIG5vdyB1c2UgYF9fZWFybHlfc2V0X2ZpeG1hcGAuXG5cblRoZSBjcnVjaWFsIHRoaW5nIGhlcmUgaXMgdGhhdCBib3RoIGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2Vhcmx5X3NldF9maXhtYXBgIGFyZSB1bHRpbWF0ZWx5IGRlZmluZWQgYXMgdGhlIGV4YWN0IHNhbWUgZnVuY3Rpb24sIGBfX3NldF9maXhtYXBgLiBTbyBmdW5jdGlvbmFsbHksIHRoZSBjb2RlIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4gVGhlICpvbmx5KiBkaWZmZXJlbmNlIGlzIHRoYXQgYGFmdGVyX3BhZ2luZ19pbml0YCByZW1haW5zIGF0IDAsIHRodXMgYGVhcmx5X2lvcmVtYXBgIGFuZCBgZWFybHlfaW91bm1hcGAgdGFrZSB0aGUgYGVsc2VgIGJyYW5jaCwgaW52b2tpbmcgYF9fZWFybHlfc2V0X2ZpeG1hcGAgaW5zdGVhZCBvZiBgX19sYXRlX3NldF9maXhtYXBgLiBTaW5jZSB0aGV5J3JlIGJvdGggbWFwcGVkIHRvIGBfX3NldF9maXhtYXBgLCB0aGVyZSdzIG5vIGZ1bmN0aW9uYWwgZGlmZmVyZW5jZS4gSXQncyBhIGNsZWFuLCBuby1vcCByZWZhY3Rvci5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEknbGwgZ28gYmFjayBhbmQgZG91YmxlLWNoZWNrIHRob3NlIGBfX2Vhcmx5X3NldF9maXhtYXBgIGFuZCBgX19sYXRlX3NldF9maXhtYXBgIGRlZmluaXRpb25zIGluIHRoZSBBUk02NCBjb2RlLCBqdXN0IHRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZyBpcyBjb3JyZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTAxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDExOjI4OjI0LjUwNjUxMTIyNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzYwMTE4MTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fZWFybHlfc2V0X2ZpeG1hcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2FybTY0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmg9MTA5PXZvaWQgX19pbml0IGVhcmx5X2ZpeG1hcF9pbml0KHZvaWQpO1xcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgtMTEwLVxcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmg6MTExOiNkZWZpbmUgX19lYXJseV9zZXRfZml4bWFwIF9fc2V0X2ZpeG1hcFxcbmFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZml4bWFwLmgtMTEyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODoyNS44NjY2MzU2NDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzA0MTYwNjMzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi5cblxuKipGaXhtYXAgTWVtb3J5IE1hbmFnZW1lbnQgQ29uc2lkZXJhdGlvbnMqKlxuXG5TbywgYF9fbGF0ZV9zZXRfZml4bWFwYCBpcywgaW4gZXNzZW5jZSwgdGhlIHNhbWUgZnVuY3Rpb24gYXMgYF9fc2V0X2ZpeG1hcGAuIFRoYXQgbXVjaCBpcyBjbGVhci4gTm93LCBsZXQgbWUgcmUtZXhhbWluZSB0aGlzIGNsZWFyaW5nIG1hY3JvOiBgI2RlZmluZSBfX2xhdGVfY2xlYXJfZml4bWFwKGlkeCkgX19zZXRfZml4bWFwKChpZHgpLCAwLCBGSVhNQVBfUEFHRV9DTEVBUilgLiBSaWdodCwgaXQncyBqdXN0IHNldHRpbmcgdGhlIGZpeG1hcCBlbnRyeSB0byB6ZXJvIHdpdGggdGhlIGBGSVhNQVBfUEFHRV9DTEVBUmAgZmxhZywgZWZmZWN0aXZlbHkgdW5tYXBwaW5nIGl0LiBPa2F5LCB0aGF0IG1ha2VzIHNlbnNlLlxuXG5CdXQgdGhlIHJlYWwgcXVlc3Rpb24gYXJpc2luZyBoZXJlIGlzIHdoYXQgYGVhcmx5X2lvdW5tYXBgIGlzIGRvaW5nIHdoZW4gYGFmdGVyX3BhZ2luZ19pbml0YCBoYXNuJ3QgYmVlbiBzZXQgeWV0LiBUaGF0IGlzIGFuIGFzcGVjdCBuZWVkaW5nIGNsYXJpZmljYXRpb24uIFdoYXQgc3RhdGUgaXMgdGhlIHN5c3RlbSBpbiBhbmQgd2hhdCBpbXBsaWNhdGlvbnMgYXJlIHRoZXJlIGZvciBtZW1vcnkgYWNjZXNzIG9yIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQgdHJhbnNpdGlvbiBwaGFzZSBiZXR0ZXIgdG8gZW5zdXJlIHByb3BlciBvcGVyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0MDYsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODozOC45MDgyNDM4NjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2OTI2MzgzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX2Vhcmx5X3NldF9maXhtYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZWFybHlfaW9yZW1hcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2Vhcmx5X2lvcmVtYXAuYz00Mz1wZ3Byb3RfdCBfX2luaXQgX193ZWFrIGVhcmx5X21lbXJlbWFwX3BncHJvdF9hZGp1c3QocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkcixcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy01MC0vKlxcbm1tL2Vhcmx5X2lvcmVtYXAuYzo1MTogKiBPbmx5IGFyY2hpdGVjdHVyZXMgd2hvc2UgZWFybHlfaW9yZW1hcCgpIG11c3Qgc3RvcCB1c2luZyBfX2Vhcmx5X3NldF9maXhtYXAoKVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy01Mi0gKiBhZnRlciBwYWdpbmdfaW5pdCgpIG5lZWQgdG8gY2FsbCB0aGlzLlxcbi0tXFxubW0vZWFybHlfaW9yZW1hcC5jPTU0PXZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZClcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy02MS0gKiBfX2xhdGVfc2V0X2ZpeG1hcCgpIGFuZCBfX2xhdGVfY2xlYXJfZml4bWFwKCksIHdoaWNoIGVhcmx5X2lvcmVtYXAoKSB1c2VzXFxubW0vZWFybHlfaW9yZW1hcC5jOjYyOiAqIGluc3RlYWQgb2YgX19lYXJseV9zZXRfZml4bWFwKCkgYWZ0ZXIgdGhlIHJlc2V0Llxcbm1tL2Vhcmx5X2lvcmVtYXAuYy02My0gKi9cXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYz0xMTI9X19lYXJseV9pb3JlbWFwKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgcHJvdClcXG4tLVxcbm1tL2Vhcmx5X2lvcmVtYXAuYy0xNjQtXFx0XFx0ZWxzZVxcbm1tL2Vhcmx5X2lvcmVtYXAuYzoxNjU6XFx0XFx0XFx0X19lYXJseV9zZXRfZml4bWFwKGlkeCwgcGh5c19hZGRyLCBwcm90KTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtMTY2LVxcdFxcdHBoeXNfYWRkciArPSBQQUdFX1NJWkU7XFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmM9MTc1PXZvaWQgX19pbml0IGVhcmx5X2lvdW5tYXAodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpXFxuLS1cXG5tbS9lYXJseV9pb3JlbWFwLmMtMjEzLVxcdFxcdGVsc2VcXG5tbS9lYXJseV9pb3JlbWFwLmM6MjE0OlxcdFxcdFxcdF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKTtcXG5tbS9lYXJseV9pb3JlbWFwLmMtMjE1LVxcdFxcdC0taWR4O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODozOS4yNzc1MTcyNjZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTM1OTk3MTk5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVmYWN0b3JpbmcgRml4bWFwIE9wZXJhdGlvbnMqKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgY29kZSwgaXQncyBpbW1lZGlhdGVseSBjbGVhci4gYF9fZWFybHlfc2V0X2ZpeG1hcChpZHgsIDAsIEZJWE1BUF9QQUdFX0NMRUFSKWAgaXMsIGZ1bmRhbWVudGFsbHksIHRoZSBzYW1lIHRoaW5nIGFzIHdoYXQgYF9fbGF0ZV9jbGVhcl9maXhtYXAoaWR4KWAgd2FzIGRlZmluZWQgYXMuIE5vIGZ1bmN0aW9uYWwgY2hhbmdlcyBoZXJlIHdoYXRzb2V2ZXIuIFRoaXMgcGF0Y2gganVzdCBzdHJlYW1saW5lcyB0aGluZ3MuIEl0IHJlbW92ZXMgdGhvc2UgcmVkdW5kYW50IG1hY3JvcyBhbmQgdGhlIHJlZHVuZGFudCBzdGF0ZSB0b2dnbGUgc3BlY2lmaWNhbGx5IGZvciBhcmNoaXRlY3R1cmVzIHdoZXJlIHRoZSBlYXJseSBhbmQgbGF0ZSBmaXhtYXAgb3BlcmF0aW9ucyBhcmUsIGZvciBhbGwgaW50ZW50cyBhbmQgcHVycG9zZXMsIGlkZW50aWNhbC4gUHVyZSByZWZhY3RvcmluZy4gTm8gbmV3IGZ1bmN0aW9uYWxpdHksIG5vIHBvdGVudGlhbCBmb3IgbmV3IGJ1Z3MgYXJpc2luZyBmcm9tIGFyY2hpdGVjdHVyYWwgdmFyaWF0aW9ucy4gU28sIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvZGUsIGFuZCBjb25zaWRlcmluZyBpdHMgaW1wYWN0LCAqKldvcnRoRnV6emluZz1mYWxzZSoqIGlzIHRoZSBvbmx5IGxvZ2ljYWwgY29uY2x1c2lvbi4gSSdsbCBtYWtlIHRoYXQgZGVjbGFyYXRpb24gYW5kIGVuc3VyZSB0aGUgcmVhc29uaW5nIGlzIGNsZWFyIGZvciByZXZpZXdlcnMgYW5kIG1haW50YWluZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTc4LCJPdXRwdXRUb2tlbnMiOjE0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMToyODo1Mi44NzcyNDAwMzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODA1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmUgcmVmYWN0b3JpbmcvY2xlYW51cC4gSXQgcmVtb3ZlcyByZWR1bmRhbnQgYF9fbGF0ZV9zZXRfZml4bWFwYCBhbmQgYF9fbGF0ZV9jbGVhcl9maXhtYXBgIG1hY3JvcyBvbiBBUk02NCBhbmQgUklTQy1WLCBhbmQgcmVtb3ZlcyB0aGUgY2FsbCB0byBgZWFybHlfaW9yZW1hcF9yZXNldCgpYCBvbiBBUk02NC4gU2luY2UgYm90aCBhcmNoaXRlY3R1cmVzIGRlZmluZSB0aGUgZWFybHkgYW5kIGxhdGUgZml4bWFwIG9wZXJhdGlvbnMgaWRlbnRpY2FsbHkgKGFzIGBfX3NldF9maXhtYXBgKSwgc2tpcHBpbmcgdGhlIHN0YXRlIHRvZ2dsZSAoYGFmdGVyX3BhZ2luZ19pbml0ID0gMWApIHJlc3VsdHMgaW4gdGhlIGV4YWN0IHNhbWUgdW5kZXJseWluZyBmdW5jdGlvbnMgYmVpbmcgY2FsbGVkLiBUaGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUga2VybmVsIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaXMgYSBwdXJlIHJlZmFjdG9yaW5nL2NsZWFudXAuIEl0IHJlbW92ZXMgcmVkdW5kYW50IGBfX2xhdGVfc2V0X2ZpeG1hcGAgYW5kIGBfX2xhdGVfY2xlYXJfZml4bWFwYCBtYWNyb3Mgb24gQVJNNjQgYW5kIFJJU0MtViwgYW5kIHJlbW92ZXMgdGhlIGNhbGwgdG8gYGVhcmx5X2lvcmVtYXBfcmVzZXQoKWAgb24gQVJNNjQuIFNpbmNlIGJvdGggYXJjaGl0ZWN0dXJlcyBkZWZpbmUgdGhlIGVhcmx5IGFuZCBsYXRlIGZpeG1hcCBvcGVyYXRpb25zIGlkZW50aWNhbGx5IChhcyBgX19zZXRfZml4bWFwYCksIHNraXBwaW5nIHRoZSBzdGF0ZSB0b2dnbGUgKGBhZnRlcl9wYWdpbmdfaW5pdCA9IDFgKSByZXN1bHRzIGluIHRoZSBleGFjdCBzYW1lIHVuZGVybHlpbmcgZnVuY3Rpb25zIGJlaW5nIGNhbGxlZC4gVGhlcmUgaXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGtlcm5lbCBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjbbf5[1] Phase: Running StartedAt: 2026-07-09 11:29:04 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjbbf5[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-09 11:29:04 +0000 UTC FinishedAt: 2026-07-09 11:29:26 +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,}