Name: series-workflowwwkr4 Phase: Failed StartedAt: 2026-08-22 12:17:02 +0000 UTC FinishedAt: 2026-08-22 12:33:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwwkr4[0] Phase: Succeeded StartedAt: 2026-08-22 12:17:02 +0000 UTC FinishedAt: 2026-08-22 12:33:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwwkr4[0].run-triage Phase: Succeeded StartedAt: 2026-08-22 12:17:02 +0000 UTC FinishedAt: 2026-08-22 12:33:47 +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+CgkJCTx0ZD4yMDI2LzA4LzIyIDEyOjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNlbGZ0ZXN0IHNjcmlwdCAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaCkgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxMjozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJiMjMyYzIyNWNhZDMwNDZiYmI5NjExOWJhOGY0ZmUyOTQ1YmE0NjZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyMiAxMjozMzoyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaFxuaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbkBAIC0zLDYgJiM0MzszLDggQEBcbiAjXG4gIyBUZXN0aW5nIGZvciBJUHY0IGFuZCBJUHY2IEJJRyBUQ1Agb3ZlciBWWExBTiBhbmQgR0VORVZFIHR1bm5lbHMuXG4gXG4mIzQzO3NvdXJjZSBcJiMzNDskKGRpcm5hbWUgXCYjMzQ7JDBcJiMzNDspL2xpYi5zaFwmIzM0O1xuJiM0MztcbiBTRVJWRVJfTlM9JChta3RlbXAgLXUgc2VydmVyLVhYWFhYWFhYKVxuIFNFUlZFUl9JUDQ9XCYjMzQ7MTkyLjE2OC4xLjFcJiMzNDtcbiBTRVJWRVJfSVA2PVwmIzM0OzIwMDE6ZGI4OjoxOjFcJiMzNDtcbkBAIC0xNSwxMSAmIzQzOzE3LDE4IEBAIENMSUVOVF9JUDY9XCYjMzQ7MjAwMTpkYjg6OjE6MlwmIzM0O1xuIENMSUVOVF9JUDRfVFVOPVwmIzM0OzE5Mi4xNjguMi4yXCYjMzQ7XG4gQ0xJRU5UX0lQNl9UVU49XCYjMzQ7MjAwMTpkYjg6OjI6MlwmIzM0O1xuIFxuLTogXCYjMzQ7JHtQQUNLRVRTX1RIUkVTSE9MRDo9MTAwMH1cJiMzNDtcbi1cbiAjIEtzZWxmdGVzdCBmcmFtZXdvcmsgcmVxdWlyZW1lbnQgLSBTS0lQIGNvZGUgaXMgNC5cbiBrc2Z0X3NraXA9NFxuIFxuJiM0MztpZiBbIC16IFwmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRFwmIzM0OyBdOyB0aGVuXG4mIzQzO1x0aWYgWyBcJiMzNDskS1NGVF9NQUNISU5FX1NMT1dcJiMzNDsgPSB5ZXMgXTsgdGhlblxuJiM0MztcdFx0ZWNobyAmIzM5O0RlYnVnIGtlcm5lbCBkZXRlY3RlZCwgbG93ZXJpbmcgdGhlIGRlZmF1bHQgdGhyZXNob2xkJiMzOTtcbiYjNDM7XHRcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMFxuJiM0MztcdGVsc2VcbiYjNDM7XHRcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMDBcbiYjNDM7XHRmaVxuJiM0MztmaVxuJiM0MztcbiBzZXR1cCgpIHtcbiBcdGlwIG5ldG5zIGFkZCBcJiMzNDskU0VSVkVSX05TXCYjMzQ7XG4gXHRpcCBuZXRucyBhZGQgXCYjMzQ7JENMSUVOVF9OU1wmIzM0O1xuQEAgLTM5LDYgJiM0Mzs0OCw5IEBAIHNldHVwKCkge1xuIFx0XHRncm9fbWF4X3NpemUgMTk2NjA4IGdyb19pcHY0X21heF9zaXplIDE5NjYwOFxuIFxuIFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskU0VSVkVSX05TXCYjMzQ7IG5ldHNlcnZlciBcdTAwM2UvZGV2L251bGxcbiYjNDM7XHR3YWl0X2xvY2FsX3BvcnRfbGlzdGVuIFwmIzM0OyRTRVJWRVJfTlNcJiMzNDsgMTI4NjUgdGNwXG4mIzQzO1xuJiM0MztcdERFRkFVTFRfVENQX01JTl9UU09fU0VHUz0kKGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JENMSUVOVF9OU1wmIzM0OyBzeXNjdGwgLW4gbmV0LmlwdjQudGNwX21pbl90c29fc2VncylcbiB9XG4gXG4gc2V0dXBfdHVubmVsKCkge1xuQEAgLTk3LDYgJiM0MzsxMDksOCBAQCBjbGVhbnVwKCkge1xuIH1cbiBcbiBkb190ZXN0KCkge1xuJiM0MztcdGxvY2FsIHBhY2tldHNfdGhyZXNob2xkPVwmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRFwmIzM0O1xuJiM0MztcbiBcdCMgV2hlbiB0eCBjc3VtIG9mZmxvYWQgaXMgb2ZmLCBzb2Z0d2FyZSBHU08gaXMgcGVyZm9ybWVkIGJlZm9yZSBwYXNzaW5nIHRoZVxuIFx0IyBwYWNrZXQgdG8gdmV0aC4gQ2hlY2sgQklHIFRDUCBwYWNrZXRzIGluc2lkZSB0aGUgVlhMQU4gdHVubmVsIHRvIHZlcmlmeVxuIFx0IyB0aGUgc29mdHdhcmUgY2hlY2tzdW0gcGF0aDogaWYgdGhlIGNoZWNrc3VtIGNvZGUgaXMgYnJva2VuLCB0aGVzZSBwYWNrZXRzXG5AQCAtMTE1LDYgJiM0MzsxMjksNyBAQCBkb190ZXN0KCkge1xuIFx0XHRlbHNlXG4gXHRcdFx0SVBUQUJMRVM9aXA2dGFibGVzXG4gXHRcdGZpXG4mIzQzO1x0XHRwYWNrZXRzX3RocmVzaG9sZD0kKCggUEFDS0VUU19USFJFU0hPTEQgLyAxMCApKVxuIFx0ZmlcbiBcdGlmIFsgXCYjMzQ7JDJcJiMzNDsgPSA0IF07IHRoZW5cbiBcdFx0SVBUQUJMRVNfU0FDSz1pcHRhYmxlc1xuQEAgLTEyMiw2ICYjNDM7MTM3LDIxIEBAIGRvX3Rlc3QoKSB7XG4gXHRcdElQVEFCTEVTX1NBQ0s9aXA2dGFibGVzXG4gXHRmaVxuIFxuJiM0MztcdGlmIFsgXCYjMzQ7JDNcJiMzNDsgIT0gJiMzOTtvbiYjMzk7IF0gXHUwMDI2XHUwMDI2IFsgXCYjMzQ7JEtTRlRfTUFDSElORV9TTE9XXCYjMzQ7ID0geWVzIF07IHRoZW5cbiYjNDM7XHRcdGVjaG8gJiMzOTtTbG93IGNvbmZpZ3VyYXRpb247IGluY3JlYXNpbmcgbmV0LmlwdjQudGNwX21pbl90c29fc2VncyBhbmQgaW5pdGN3bmQmIzM5O1xuJiM0MztcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskQ0xJRU5UX05TXCYjMzQ7IHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPTUyXG4mIzQzO1x0XHRpZiBbIFwmIzM0OyQyXCYjMzQ7ID0gNCBdOyB0aGVuXG4mIzQzO1x0XHRcdGlwIC1uZXRucyBcJiMzNDskQ0xJRU5UX05TXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdCAgICByb3V0ZSBjaGFuZ2UgMTkyLjE2OC4yLjAvMjQgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdGlwIC1uZXRucyBcJiMzNDskQ0xJRU5UX05TXCYjMzQ7IC02IFxcXG4mIzQzO1x0XHRcdCAgICByb3V0ZSBjaGFuZ2UgMjAwMTpkYjg6OjI6MC8xMTIgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXG4mIzQzO1x0XHRmaVxuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JENMSUVOVF9OU1wmIzM0OyBcXFxuJiM0MztcdFx0ICAgIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPVwmIzM0OyRERUZBVUxUX1RDUF9NSU5fVFNPX1NFR1NcJiMzNDtcbiYjNDM7XHRmaVxuJiM0MztcbiBcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JFNFUlZFUl9OU1wmIzM0OyBcJiMzNDskSVBUQUJMRVNcJiMzNDsgLXcgLXQgcmF3IC1JIFBSRVJPVVRJTkcgLWkgXCYjMzQ7JHtDQVBUVVJFX0lGQUNFfTFcJiMzNDsgLW0gbGVuZ3RoICEgLS1sZW5ndGggMDo2NTUzNSAtbSBjb21tZW50IC0tY29tbWVudCBcJiMzNDtiaWd0Y3BcJiMzNDtcbiBcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JENMSUVOVF9OU1wmIzM0OyBcJiMzNDskSVBUQUJMRVNcJiMzNDsgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyBcJiMzNDske0NBUFRVUkVfSUZBQ0V9MFwmIzM0OyAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwmIzM0O2JpZ3RjcFwmIzM0O1xuIFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskU0VSVkVSX05TXCYjMzQ7IFwmIzM0OyRJUFRBQkxFU19TQUNLXCYjMzQ7IC13IC10IHJhdyAtSSBPVVRQVVQgLW8gXCYjMzQ7dHVuMVwmIzM0OyAtcCB0Y3AgLW0gdGNwIC0tdGNwLWZsYWdzIEFDSyBBQ0sgLS10Y3Atb3B0aW9uIDUgLW0gY29tbWVudCAtLWNvbW1lbnQgXCYjMzQ7c2Fja1wmIzM0O1xuQEAgLTE0Nyw4ICYjNDM7MTc3LDggQEAgZG9fdGVzdCgpIHtcbiBcdGVjaG8gXCYjMzQ7Q2FwdHVyZWQgQklHIFRDUCBSWCBwYWNrZXRzOiAkUEFDS0VUU19TRVJWRVJcJiMzNDtcbiBcdGVjaG8gXCYjMzQ7Q2FwdHVyZWQgQklHIFRDUCBUWCBwYWNrZXRzOiAkUEFDS0VUU19DTElFTlRcJiMzNDtcbiBcdGVjaG8gXCYjMzQ7Q2FwdHVyZWQgVENQIFNBQ0sgcGFja2V0czogJFBBQ0tFVFNfU0FDS1wmIzM0O1xuLVx0WyBcJiMzNDskUEFDS0VUU19TRVJWRVJcJiMzNDsgLWd0IFwmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRFwmIzM0OyBdIHx8IHJldHVybiAxXG4tXHRbIFwmIzM0OyRQQUNLRVRTX0NMSUVOVFwmIzM0OyAtZ3QgXCYjMzQ7JFBBQ0tFVFNfVEhSRVNIT0xEXCYjMzQ7IF0gfHwgcmV0dXJuIDFcbiYjNDM7XHRbIFwmIzM0OyRQQUNLRVRTX1NFUlZFUlwmIzM0OyAtZ3QgXCYjMzQ7JHBhY2tldHNfdGhyZXNob2xkXCYjMzQ7IF0gfHwgcmV0dXJuIDFcbiYjNDM7XHRbIFwmIzM0OyRQQUNLRVRTX0NMSUVOVFwmIzM0OyAtZ3QgXCYjMzQ7JHBhY2tldHNfdGhyZXNob2xkXCYjMzQ7IF0gfHwgcmV0dXJuIDFcbiBcdFsgXCYjMzQ7JFBBQ0tFVFNfU0FDS1wmIzM0OyAtbHQgXCYjMzQ7JCgoIFBBQ0tFVFNfQ0xJRU5UIC8gMiApKVwmIzM0OyBdIHx8IHJldHVybiAxXG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDEyOjMzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYmIyMzJjMjI1Y2FkMzA0NmJiYjk2MTE5YmE4ZjRmZTI5NDViYTQ2NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDIyIDEyOjMzOjI2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2gKaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTUKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoCkBAIC0zLDYgJiM0MzszLDggQEAKICMKICMgVGVzdGluZyBmb3IgSVB2NCBhbmQgSVB2NiBCSUcgVENQIG92ZXIgVlhMQU4gYW5kIEdFTkVWRSB0dW5uZWxzLgogCiYjNDM7c291cmNlICYjMzQ7JChkaXJuYW1lICYjMzQ7JDAmIzM0OykvbGliLnNoJiMzNDsKJiM0MzsKIFNFUlZFUl9OUz0kKG1rdGVtcCAtdSBzZXJ2ZXItWFhYWFhYWFgpCiBTRVJWRVJfSVA0PSYjMzQ7MTkyLjE2OC4xLjEmIzM0OwogU0VSVkVSX0lQNj0mIzM0OzIwMDE6ZGI4OjoxOjEmIzM0OwpAQCAtMTUsMTEgJiM0MzsxNywxOCBAQCBDTElFTlRfSVA2PSYjMzQ7MjAwMTpkYjg6OjE6MiYjMzQ7CiBDTElFTlRfSVA0X1RVTj0mIzM0OzE5Mi4xNjguMi4yJiMzNDsKIENMSUVOVF9JUDZfVFVOPSYjMzQ7MjAwMTpkYjg6OjI6MiYjMzQ7CiAKLTogJiMzNDske1BBQ0tFVFNfVEhSRVNIT0xEOj0xMDAwfSYjMzQ7Ci0KICMgS3NlbGZ0ZXN0IGZyYW1ld29yayByZXF1aXJlbWVudCAtIFNLSVAgY29kZSBpcyA0Lgoga3NmdF9za2lwPTQKIAomIzQzO2lmIFsgLXogJiMzNDskUEFDS0VUU19USFJFU0hPTEQmIzM0OyBdOyB0aGVuCiYjNDM7CWlmIFsgJiMzNDskS1NGVF9NQUNISU5FX1NMT1cmIzM0OyA9IHllcyBdOyB0aGVuCiYjNDM7CQllY2hvICYjMzk7RGVidWcga2VybmVsIGRldGVjdGVkLCBsb3dlcmluZyB0aGUgZGVmYXVsdCB0aHJlc2hvbGQmIzM5OwomIzQzOwkJUEFDS0VUU19USFJFU0hPTEQ9MTAwCiYjNDM7CWVsc2UKJiM0MzsJCVBBQ0tFVFNfVEhSRVNIT0xEPTEwMDAKJiM0MzsJZmkKJiM0MztmaQomIzQzOwogc2V0dXAoKSB7CiAJaXAgbmV0bnMgYWRkICYjMzQ7JFNFUlZFUl9OUyYjMzQ7CiAJaXAgbmV0bnMgYWRkICYjMzQ7JENMSUVOVF9OUyYjMzQ7CkBAIC0zOSw2ICYjNDM7NDgsOSBAQCBzZXR1cCgpIHsKIAkJZ3JvX21heF9zaXplIDE5NjYwOCBncm9faXB2NF9tYXhfc2l6ZSAxOTY2MDgKIAogCWlwIG5ldG5zIGV4ZWMgJiMzNDskU0VSVkVSX05TJiMzNDsgbmV0c2VydmVyICZndDsvZGV2L251bGwKJiM0MzsJd2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAmIzM0OyRTRVJWRVJfTlMmIzM0OyAxMjg2NSB0Y3AKJiM0MzsKJiM0MzsJREVGQVVMVF9UQ1BfTUlOX1RTT19TRUdTPSQoaXAgbmV0bnMgZXhlYyAmIzM0OyRDTElFTlRfTlMmIzM0OyBzeXNjdGwgLW4gbmV0LmlwdjQudGNwX21pbl90c29fc2VncykKIH0KIAogc2V0dXBfdHVubmVsKCkgewpAQCAtOTcsNiAmIzQzOzEwOSw4IEBAIGNsZWFudXAoKSB7CiB9CiAKIGRvX3Rlc3QoKSB7CiYjNDM7CWxvY2FsIHBhY2tldHNfdGhyZXNob2xkPSYjMzQ7JFBBQ0tFVFNfVEhSRVNIT0xEJiMzNDsKJiM0MzsKIAkjIFdoZW4gdHggY3N1bSBvZmZsb2FkIGlzIG9mZiwgc29mdHdhcmUgR1NPIGlzIHBlcmZvcm1lZCBiZWZvcmUgcGFzc2luZyB0aGUKIAkjIHBhY2tldCB0byB2ZXRoLiBDaGVjayBCSUcgVENQIHBhY2tldHMgaW5zaWRlIHRoZSBWWExBTiB0dW5uZWwgdG8gdmVyaWZ5CiAJIyB0aGUgc29mdHdhcmUgY2hlY2tzdW0gcGF0aDogaWYgdGhlIGNoZWNrc3VtIGNvZGUgaXMgYnJva2VuLCB0aGVzZSBwYWNrZXRzCkBAIC0xMTUsNiAmIzQzOzEyOSw3IEBAIGRvX3Rlc3QoKSB7CiAJCWVsc2UKIAkJCUlQVEFCTEVTPWlwNnRhYmxlcwogCQlmaQomIzQzOwkJcGFja2V0c190aHJlc2hvbGQ9JCgoIFBBQ0tFVFNfVEhSRVNIT0xEIC8gMTAgKSkKIAlmaQogCWlmIFsgJiMzNDskMiYjMzQ7ID0gNCBdOyB0aGVuCiAJCUlQVEFCTEVTX1NBQ0s9aXB0YWJsZXMKQEAgLTEyMiw2ICYjNDM7MTM3LDIxIEBAIGRvX3Rlc3QoKSB7CiAJCUlQVEFCTEVTX1NBQ0s9aXA2dGFibGVzCiAJZmkKIAomIzQzOwlpZiBbICYjMzQ7JDMmIzM0OyAhPSAmIzM5O29uJiMzOTsgXSAmYW1wOyZhbXA7IFsgJiMzNDskS1NGVF9NQUNISU5FX1NMT1cmIzM0OyA9IHllcyBdOyB0aGVuCiYjNDM7CQllY2hvICYjMzk7U2xvdyBjb25maWd1cmF0aW9uOyBpbmNyZWFzaW5nIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MgYW5kIGluaXRjd25kJiMzOTsKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskQ0xJRU5UX05TJiMzNDsgc3lzY3RsIC13IG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3M9NTIKJiM0MzsJCWlmIFsgJiMzNDskMiYjMzQ7ID0gNCBdOyB0aGVuCiYjNDM7CQkJaXAgLW5ldG5zICYjMzQ7JENMSUVOVF9OUyYjMzQ7IFwKJiM0MzsJCQkgICAgcm91dGUgY2hhbmdlIDE5Mi4xNjguMi4wLzI0IGRldiB0dW4wIGluaXRjd25kIDEwMAomIzQzOwkJZWxzZQomIzQzOwkJCWlwIC1uZXRucyAmIzM0OyRDTElFTlRfTlMmIzM0OyAtNiBcCiYjNDM7CQkJICAgIHJvdXRlIGNoYW5nZSAyMDAxOmRiODo6MjowLzExMiBkZXYgdHVuMCBpbml0Y3duZCAxMDAKJiM0MzsJCWZpCiYjNDM7CWVsc2UKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskQ0xJRU5UX05TJiMzNDsgXAomIzQzOwkJICAgIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPSYjMzQ7JERFRkFVTFRfVENQX01JTl9UU09fU0VHUyYjMzQ7CiYjNDM7CWZpCiYjNDM7CiAJaXAgbmV0bnMgZXhlYyAmIzM0OyRTRVJWRVJfTlMmIzM0OyAmIzM0OyRJUFRBQkxFUyYjMzQ7IC13IC10IHJhdyAtSSBQUkVST1VUSU5HIC1pICYjMzQ7JHtDQVBUVVJFX0lGQUNFfTEmIzM0OyAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50ICYjMzQ7YmlndGNwJiMzNDsKIAlpcCBuZXRucyBleGVjICYjMzQ7JENMSUVOVF9OUyYjMzQ7ICYjMzQ7JElQVEFCTEVTJiMzNDsgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyAmIzM0OyR7Q0FQVFVSRV9JRkFDRX0wJiMzNDsgLW0gbGVuZ3RoICEgLS1sZW5ndGggMDo2NTUzNSAtbSBjb21tZW50IC0tY29tbWVudCAmIzM0O2JpZ3RjcCYjMzQ7CiAJaXAgbmV0bnMgZXhlYyAmIzM0OyRTRVJWRVJfTlMmIzM0OyAmIzM0OyRJUFRBQkxFU19TQUNLJiMzNDsgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyAmIzM0O3R1bjEmIzM0OyAtcCB0Y3AgLW0gdGNwIC0tdGNwLWZsYWdzIEFDSyBBQ0sgLS10Y3Atb3B0aW9uIDUgLW0gY29tbWVudCAtLWNvbW1lbnQgJiMzNDtzYWNrJiMzNDsKQEAgLTE0Nyw4ICYjNDM7MTc3LDggQEAgZG9fdGVzdCgpIHsKIAllY2hvICYjMzQ7Q2FwdHVyZWQgQklHIFRDUCBSWCBwYWNrZXRzOiAkUEFDS0VUU19TRVJWRVImIzM0OwogCWVjaG8gJiMzNDtDYXB0dXJlZCBCSUcgVENQIFRYIHBhY2tldHM6ICRQQUNLRVRTX0NMSUVOVCYjMzQ7CiAJZWNobyAmIzM0O0NhcHR1cmVkIFRDUCBTQUNLIHBhY2tldHM6ICRQQUNLRVRTX1NBQ0smIzM0OwotCVsgJiMzNDskUEFDS0VUU19TRVJWRVImIzM0OyAtZ3QgJiMzNDskUEFDS0VUU19USFJFU0hPTEQmIzM0OyBdIHx8IHJldHVybiAxCi0JWyAmIzM0OyRQQUNLRVRTX0NMSUVOVCYjMzQ7IC1ndCAmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRCYjMzQ7IF0gfHwgcmV0dXJuIDEKJiM0MzsJWyAmIzM0OyRQQUNLRVRTX1NFUlZFUiYjMzQ7IC1ndCAmIzM0OyRwYWNrZXRzX3RocmVzaG9sZCYjMzQ7IF0gfHwgcmV0dXJuIDEKJiM0MzsJWyAmIzM0OyRQQUNLRVRTX0NMSUVOVCYjMzQ7IC1ndCAmIzM0OyRwYWNrZXRzX3RocmVzaG9sZCYjMzQ7IF0gfHwgcmV0dXJuIDEKIAlbICYjMzQ7JFBBQ0tFVFNfU0FDSyYjMzQ7IC1sdCAmIzM0OyQoKCBQQUNLRVRTX0NMSUVOVCAvIDIgKSkmIzM0OyBdIHx8IHJldHVybiAxCiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIwOAoJCQkJCQkJb3V0cHV0OiA3MgoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1GYWxzZTogQSBRdWljayBFdmFsdWF0aW9uKioKCk9rYXksIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHdoZXJlIHdlIHN0YW5kLiBJJiMzOTt2ZSBnb3QgYSBtb2RpZmljYXRpb24gdG8gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hgIGhlcmUuIFRoYXQmIzM5O3MgYSBzZWxmdGVzdCBzY3JpcHQsIGFuZCBpdCYjMzk7cyBpbXBvcnRhbnQgdG8gcmVtZW1iZXIgd2hhdCBraW5kIG9mIGNoYW5nZXMgdGhvc2UgdXN1YWxseSByZXByZXNlbnQuIFRoZXkmIzM5O3JlIHR5cGljYWxseSBkZXNpZ25lZCB0byBleGVyY2lzZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5LCBmaW5kIGVkZ2UgY2FzZXMsIG9yIGVuc3VyZSByZWdyZXNzaW9ucyBkb24mIzM5O3QgY3JlZXAgaW4uCgpDcnVjaWFsbHksIHRoaXMgaXNuJiMzOTt0IHRvdWNoaW5nIGFueSBrZXJuZWwgY29kZSBkaXJlY3RseS4gSSYjMzk7bSBub3Qgc2VlaW5nIGFueSBtb2RpZmljYXRpb25zIHRvIGNvcmUgbmV0d29yayBzdGFjayBjb21wb25lbnRzLCBkYXRhIHN0cnVjdHVyZXMsIG9yIGFueXRoaW5nIHRoYXQgd291bGQgaW50cm9kdWNlIG5ldyBsb2dpYyBvciBmdW5jdGlvbmFsaXR5IHRoYXQgd291bGQgKm5lZWQqIGZ1enppbmcgZm9yIGNvcnJlY3RuZXNzLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIHRlc3Qgc2NyaXB0LCBhbmQgb25seSBhIHRlc3Qgc2NyaXB0LgoKVGhlcmVmb3JlLCBmb3IgbXkgcHVycG9zZXMgaGVyZSwgdGhpcyBwYXRjaCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGl0c2VsZiB0aGF0IGFyZSBzdWl0YWJsZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLiBJJiMzOTttIGdvaW5nIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCB3aXRob3V0IGEgc2Vjb25kIHRob3VnaHQuIEl0JiMzOTtzIGEgdmFsaWQgY2hhbmdlLCBsaWtlbHkgaW1wb3J0YW50IGZvciB0aGUgc2VsZiB0ZXN0cywgYnV0IG5vdCBvbmUgdG8gYmUgY29uc2lkZXJlZCB3aGVuIGRlY2lkaW5nIHdoZXJlIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTI6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDEyOjMzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxMjozMzoyNy4wMzA2NzI5MDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzM4NDExNTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNlbGZ0ZXN0IHNjcmlwdCAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaCkgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTI6MzM6MjcuMDMwNjgyMTc2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTY0MzEzOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiYjIzMmMyMjVjYWQzMDQ2YmJiOTYxMTliYThmNGZlMjk0NWJhNDY2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDIyIDEyOjMzOjI2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoXFxuaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTVcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaFxcbkBAIC0zLDYgKzMsOCBAQFxcbiAjXFxuICMgVGVzdGluZyBmb3IgSVB2NCBhbmQgSVB2NiBCSUcgVENQIG92ZXIgVlhMQU4gYW5kIEdFTkVWRSB0dW5uZWxzLlxcbiBcXG4rc291cmNlIFxcXCIkKGRpcm5hbWUgXFxcIiQwXFxcIikvbGliLnNoXFxcIlxcbitcXG4gU0VSVkVSX05TPSQobWt0ZW1wIC11IHNlcnZlci1YWFhYWFhYWClcXG4gU0VSVkVSX0lQND1cXFwiMTkyLjE2OC4xLjFcXFwiXFxuIFNFUlZFUl9JUDY9XFxcIjIwMDE6ZGI4OjoxOjFcXFwiXFxuQEAgLTE1LDExICsxNywxOCBAQCBDTElFTlRfSVA2PVxcXCIyMDAxOmRiODo6MToyXFxcIlxcbiBDTElFTlRfSVA0X1RVTj1cXFwiMTkyLjE2OC4yLjJcXFwiXFxuIENMSUVOVF9JUDZfVFVOPVxcXCIyMDAxOmRiODo6MjoyXFxcIlxcbiBcXG4tOiBcXFwiJHtQQUNLRVRTX1RIUkVTSE9MRDo9MTAwMH1cXFwiXFxuLVxcbiAjIEtzZWxmdGVzdCBmcmFtZXdvcmsgcmVxdWlyZW1lbnQgLSBTS0lQIGNvZGUgaXMgNC5cXG4ga3NmdF9za2lwPTRcXG4gXFxuK2lmIFsgLXogXFxcIiRQQUNLRVRTX1RIUkVTSE9MRFxcXCIgXTsgdGhlblxcbitcXHRpZiBbIFxcXCIkS1NGVF9NQUNISU5FX1NMT1dcXFwiID0geWVzIF07IHRoZW5cXG4rXFx0XFx0ZWNobyAnRGVidWcga2VybmVsIGRldGVjdGVkLCBsb3dlcmluZyB0aGUgZGVmYXVsdCB0aHJlc2hvbGQnXFxuK1xcdFxcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMFxcbitcXHRlbHNlXFxuK1xcdFxcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMDBcXG4rXFx0ZmlcXG4rZmlcXG4rXFxuIHNldHVwKCkge1xcbiBcXHRpcCBuZXRucyBhZGQgXFxcIiRTRVJWRVJfTlNcXFwiXFxuIFxcdGlwIG5ldG5zIGFkZCBcXFwiJENMSUVOVF9OU1xcXCJcXG5AQCAtMzksNiArNDgsOSBAQCBzZXR1cCgpIHtcXG4gXFx0XFx0Z3JvX21heF9zaXplIDE5NjYwOCBncm9faXB2NF9tYXhfc2l6ZSAxOTY2MDhcXG4gXFxuIFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRTRVJWRVJfTlNcXFwiIG5ldHNlcnZlciBcXHUwMDNlL2Rldi9udWxsXFxuK1xcdHdhaXRfbG9jYWxfcG9ydF9saXN0ZW4gXFxcIiRTRVJWRVJfTlNcXFwiIDEyODY1IHRjcFxcbitcXG4rXFx0REVGQVVMVF9UQ1BfTUlOX1RTT19TRUdTPSQoaXAgbmV0bnMgZXhlYyBcXFwiJENMSUVOVF9OU1xcXCIgc3lzY3RsIC1uIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MpXFxuIH1cXG4gXFxuIHNldHVwX3R1bm5lbCgpIHtcXG5AQCAtOTcsNiArMTA5LDggQEAgY2xlYW51cCgpIHtcXG4gfVxcbiBcXG4gZG9fdGVzdCgpIHtcXG4rXFx0bG9jYWwgcGFja2V0c190aHJlc2hvbGQ9XFxcIiRQQUNLRVRTX1RIUkVTSE9MRFxcXCJcXG4rXFxuIFxcdCMgV2hlbiB0eCBjc3VtIG9mZmxvYWQgaXMgb2ZmLCBzb2Z0d2FyZSBHU08gaXMgcGVyZm9ybWVkIGJlZm9yZSBwYXNzaW5nIHRoZVxcbiBcXHQjIHBhY2tldCB0byB2ZXRoLiBDaGVjayBCSUcgVENQIHBhY2tldHMgaW5zaWRlIHRoZSBWWExBTiB0dW5uZWwgdG8gdmVyaWZ5XFxuIFxcdCMgdGhlIHNvZnR3YXJlIGNoZWNrc3VtIHBhdGg6IGlmIHRoZSBjaGVja3N1bSBjb2RlIGlzIGJyb2tlbiwgdGhlc2UgcGFja2V0c1xcbkBAIC0xMTUsNiArMTI5LDcgQEAgZG9fdGVzdCgpIHtcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRJUFRBQkxFUz1pcDZ0YWJsZXNcXG4gXFx0XFx0ZmlcXG4rXFx0XFx0cGFja2V0c190aHJlc2hvbGQ9JCgoIFBBQ0tFVFNfVEhSRVNIT0xEIC8gMTAgKSlcXG4gXFx0ZmlcXG4gXFx0aWYgWyBcXFwiJDJcXFwiID0gNCBdOyB0aGVuXFxuIFxcdFxcdElQVEFCTEVTX1NBQ0s9aXB0YWJsZXNcXG5AQCAtMTIyLDYgKzEzNywyMSBAQCBkb190ZXN0KCkge1xcbiBcXHRcXHRJUFRBQkxFU19TQUNLPWlwNnRhYmxlc1xcbiBcXHRmaVxcbiBcXG4rXFx0aWYgWyBcXFwiJDNcXFwiICE9ICdvbicgXSBcXHUwMDI2XFx1MDAyNiBbIFxcXCIkS1NGVF9NQUNISU5FX1NMT1dcXFwiID0geWVzIF07IHRoZW5cXG4rXFx0XFx0ZWNobyAnU2xvdyBjb25maWd1cmF0aW9uOyBpbmNyZWFzaW5nIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MgYW5kIGluaXRjd25kJ1xcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkQ0xJRU5UX05TXFxcIiBzeXNjdGwgLXcgbmV0LmlwdjQudGNwX21pbl90c29fc2Vncz01MlxcbitcXHRcXHRpZiBbIFxcXCIkMlxcXCIgPSA0IF07IHRoZW5cXG4rXFx0XFx0XFx0aXAgLW5ldG5zIFxcXCIkQ0xJRU5UX05TXFxcIiBcXFxcXFxuK1xcdFxcdFxcdCAgICByb3V0ZSBjaGFuZ2UgMTkyLjE2OC4yLjAvMjQgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXFxuK1xcdFxcdGVsc2VcXG4rXFx0XFx0XFx0aXAgLW5ldG5zIFxcXCIkQ0xJRU5UX05TXFxcIiAtNiBcXFxcXFxuK1xcdFxcdFxcdCAgICByb3V0ZSBjaGFuZ2UgMjAwMTpkYjg6OjI6MC8xMTIgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXFxuK1xcdFxcdGZpXFxuK1xcdGVsc2VcXG4rXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJENMSUVOVF9OU1xcXCIgXFxcXFxcbitcXHRcXHQgICAgc3lzY3RsIC13IG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3M9XFxcIiRERUZBVUxUX1RDUF9NSU5fVFNPX1NFR1NcXFwiXFxuK1xcdGZpXFxuK1xcbiBcXHRpcCBuZXRucyBleGVjIFxcXCIkU0VSVkVSX05TXFxcIiBcXFwiJElQVEFCTEVTXFxcIiAtdyAtdCByYXcgLUkgUFJFUk9VVElORyAtaSBcXFwiJHtDQVBUVVJFX0lGQUNFfTFcXFwiIC1tIGxlbmd0aCAhIC0tbGVuZ3RoIDA6NjU1MzUgLW0gY29tbWVudCAtLWNvbW1lbnQgXFxcImJpZ3RjcFxcXCJcXG4gXFx0aXAgbmV0bnMgZXhlYyBcXFwiJENMSUVOVF9OU1xcXCIgXFxcIiRJUFRBQkxFU1xcXCIgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyBcXFwiJHtDQVBUVVJFX0lGQUNFfTBcXFwiIC1tIGxlbmd0aCAhIC0tbGVuZ3RoIDA6NjU1MzUgLW0gY29tbWVudCAtLWNvbW1lbnQgXFxcImJpZ3RjcFxcXCJcXG4gXFx0aXAgbmV0bnMgZXhlYyBcXFwiJFNFUlZFUl9OU1xcXCIgXFxcIiRJUFRBQkxFU19TQUNLXFxcIiAtdyAtdCByYXcgLUkgT1VUUFVUIC1vIFxcXCJ0dW4xXFxcIiAtcCB0Y3AgLW0gdGNwIC0tdGNwLWZsYWdzIEFDSyBBQ0sgLS10Y3Atb3B0aW9uIDUgLW0gY29tbWVudCAtLWNvbW1lbnQgXFxcInNhY2tcXFwiXFxuQEAgLTE0Nyw4ICsxNzcsOCBAQCBkb190ZXN0KCkge1xcbiBcXHRlY2hvIFxcXCJDYXB0dXJlZCBCSUcgVENQIFJYIHBhY2tldHM6ICRQQUNLRVRTX1NFUlZFUlxcXCJcXG4gXFx0ZWNobyBcXFwiQ2FwdHVyZWQgQklHIFRDUCBUWCBwYWNrZXRzOiAkUEFDS0VUU19DTElFTlRcXFwiXFxuIFxcdGVjaG8gXFxcIkNhcHR1cmVkIFRDUCBTQUNLIHBhY2tldHM6ICRQQUNLRVRTX1NBQ0tcXFwiXFxuLVxcdFsgXFxcIiRQQUNLRVRTX1NFUlZFUlxcXCIgLWd0IFxcXCIkUEFDS0VUU19USFJFU0hPTERcXFwiIF0gfHwgcmV0dXJuIDFcXG4tXFx0WyBcXFwiJFBBQ0tFVFNfQ0xJRU5UXFxcIiAtZ3QgXFxcIiRQQUNLRVRTX1RIUkVTSE9MRFxcXCIgXSB8fCByZXR1cm4gMVxcbitcXHRbIFxcXCIkUEFDS0VUU19TRVJWRVJcXFwiIC1ndCBcXFwiJHBhY2tldHNfdGhyZXNob2xkXFxcIiBdIHx8IHJldHVybiAxXFxuK1xcdFsgXFxcIiRQQUNLRVRTX0NMSUVOVFxcXCIgLWd0IFxcXCIkcGFja2V0c190aHJlc2hvbGRcXFwiIF0gfHwgcmV0dXJuIDFcXG4gXFx0WyBcXFwiJFBBQ0tFVFNfU0FDS1xcXCIgLWx0IFxcXCIkKCggUEFDS0VUU19DTElFTlQgLyAyICkpXFxcIiBdIHx8IHJldHVybiAxXFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDEyOjMzOjI3LjQ4NzkyNjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo3ODgxMTM3MDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBiYjIzMmMyMjVjYWQzMDQ2YmJiOTYxMTliYThmNGZlMjk0NWJhNDY2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjIgMTI6MzM6MjYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaFxuaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbkBAIC0zLDYgKzMsOCBAQFxuICNcbiAjIFRlc3RpbmcgZm9yIElQdjQgYW5kIElQdjYgQklHIFRDUCBvdmVyIFZYTEFOIGFuZCBHRU5FVkUgdHVubmVscy5cbiBcbitzb3VyY2UgXCIkKGRpcm5hbWUgXCIkMFwiKS9saWIuc2hcIlxuK1xuIFNFUlZFUl9OUz0kKG1rdGVtcCAtdSBzZXJ2ZXItWFhYWFhYWFgpXG4gU0VSVkVSX0lQND1cIjE5Mi4xNjguMS4xXCJcbiBTRVJWRVJfSVA2PVwiMjAwMTpkYjg6OjE6MVwiXG5AQCAtMTUsMTEgKzE3LDE4IEBAIENMSUVOVF9JUDY9XCIyMDAxOmRiODo6MToyXCJcbiBDTElFTlRfSVA0X1RVTj1cIjE5Mi4xNjguMi4yXCJcbiBDTElFTlRfSVA2X1RVTj1cIjIwMDE6ZGI4OjoyOjJcIlxuIFxuLTogXCIke1BBQ0tFVFNfVEhSRVNIT0xEOj0xMDAwfVwiXG4tXG4gIyBLc2VsZnRlc3QgZnJhbWV3b3JrIHJlcXVpcmVtZW50IC0gU0tJUCBjb2RlIGlzIDQuXG4ga3NmdF9za2lwPTRcbiBcbitpZiBbIC16IFwiJFBBQ0tFVFNfVEhSRVNIT0xEXCIgXTsgdGhlblxuK1x0aWYgWyBcIiRLU0ZUX01BQ0hJTkVfU0xPV1wiID0geWVzIF07IHRoZW5cbitcdFx0ZWNobyAnRGVidWcga2VybmVsIGRldGVjdGVkLCBsb3dlcmluZyB0aGUgZGVmYXVsdCB0aHJlc2hvbGQnXG4rXHRcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMFxuK1x0ZWxzZVxuK1x0XHRQQUNLRVRTX1RIUkVTSE9MRD0xMDAwXG4rXHRmaVxuK2ZpXG4rXG4gc2V0dXAoKSB7XG4gXHRpcCBuZXRucyBhZGQgXCIkU0VSVkVSX05TXCJcbiBcdGlwIG5ldG5zIGFkZCBcIiRDTElFTlRfTlNcIlxuQEAgLTM5LDYgKzQ4LDkgQEAgc2V0dXAoKSB7XG4gXHRcdGdyb19tYXhfc2l6ZSAxOTY2MDggZ3JvX2lwdjRfbWF4X3NpemUgMTk2NjA4XG4gXG4gXHRpcCBuZXRucyBleGVjIFwiJFNFUlZFUl9OU1wiIG5ldHNlcnZlciBcdTAwM2UvZGV2L251bGxcbitcdHdhaXRfbG9jYWxfcG9ydF9saXN0ZW4gXCIkU0VSVkVSX05TXCIgMTI4NjUgdGNwXG4rXG4rXHRERUZBVUxUX1RDUF9NSU5fVFNPX1NFR1M9JChpcCBuZXRucyBleGVjIFwiJENMSUVOVF9OU1wiIHN5c2N0bCAtbiBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzKVxuIH1cbiBcbiBzZXR1cF90dW5uZWwoKSB7XG5AQCAtOTcsNiArMTA5LDggQEAgY2xlYW51cCgpIHtcbiB9XG4gXG4gZG9fdGVzdCgpIHtcbitcdGxvY2FsIHBhY2tldHNfdGhyZXNob2xkPVwiJFBBQ0tFVFNfVEhSRVNIT0xEXCJcbitcbiBcdCMgV2hlbiB0eCBjc3VtIG9mZmxvYWQgaXMgb2ZmLCBzb2Z0d2FyZSBHU08gaXMgcGVyZm9ybWVkIGJlZm9yZSBwYXNzaW5nIHRoZVxuIFx0IyBwYWNrZXQgdG8gdmV0aC4gQ2hlY2sgQklHIFRDUCBwYWNrZXRzIGluc2lkZSB0aGUgVlhMQU4gdHVubmVsIHRvIHZlcmlmeVxuIFx0IyB0aGUgc29mdHdhcmUgY2hlY2tzdW0gcGF0aDogaWYgdGhlIGNoZWNrc3VtIGNvZGUgaXMgYnJva2VuLCB0aGVzZSBwYWNrZXRzXG5AQCAtMTE1LDYgKzEyOSw3IEBAIGRvX3Rlc3QoKSB7XG4gXHRcdGVsc2VcbiBcdFx0XHRJUFRBQkxFUz1pcDZ0YWJsZXNcbiBcdFx0ZmlcbitcdFx0cGFja2V0c190aHJlc2hvbGQ9JCgoIFBBQ0tFVFNfVEhSRVNIT0xEIC8gMTAgKSlcbiBcdGZpXG4gXHRpZiBbIFwiJDJcIiA9IDQgXTsgdGhlblxuIFx0XHRJUFRBQkxFU19TQUNLPWlwdGFibGVzXG5AQCAtMTIyLDYgKzEzNywyMSBAQCBkb190ZXN0KCkge1xuIFx0XHRJUFRBQkxFU19TQUNLPWlwNnRhYmxlc1xuIFx0ZmlcbiBcbitcdGlmIFsgXCIkM1wiICE9ICdvbicgXSBcdTAwMjZcdTAwMjYgWyBcIiRLU0ZUX01BQ0hJTkVfU0xPV1wiID0geWVzIF07IHRoZW5cbitcdFx0ZWNobyAnU2xvdyBjb25maWd1cmF0aW9uOyBpbmNyZWFzaW5nIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MgYW5kIGluaXRjd25kJ1xuK1x0XHRpcCBuZXRucyBleGVjIFwiJENMSUVOVF9OU1wiIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPTUyXG4rXHRcdGlmIFsgXCIkMlwiID0gNCBdOyB0aGVuXG4rXHRcdFx0aXAgLW5ldG5zIFwiJENMSUVOVF9OU1wiIFxcXG4rXHRcdFx0ICAgIHJvdXRlIGNoYW5nZSAxOTIuMTY4LjIuMC8yNCBkZXYgdHVuMCBpbml0Y3duZCAxMDBcbitcdFx0ZWxzZVxuK1x0XHRcdGlwIC1uZXRucyBcIiRDTElFTlRfTlNcIiAtNiBcXFxuK1x0XHRcdCAgICByb3V0ZSBjaGFuZ2UgMjAwMTpkYjg6OjI6MC8xMTIgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXG4rXHRcdGZpXG4rXHRlbHNlXG4rXHRcdGlwIG5ldG5zIGV4ZWMgXCIkQ0xJRU5UX05TXCIgXFxcbitcdFx0ICAgIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPVwiJERFRkFVTFRfVENQX01JTl9UU09fU0VHU1wiXG4rXHRmaVxuK1xuIFx0aXAgbmV0bnMgZXhlYyBcIiRTRVJWRVJfTlNcIiBcIiRJUFRBQkxFU1wiIC13IC10IHJhdyAtSSBQUkVST1VUSU5HIC1pIFwiJHtDQVBUVVJFX0lGQUNFfTFcIiAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwiYmlndGNwXCJcbiBcdGlwIG5ldG5zIGV4ZWMgXCIkQ0xJRU5UX05TXCIgXCIkSVBUQUJMRVNcIiAtdyAtdCByYXcgLUkgT1VUUFVUIC1vIFwiJHtDQVBUVVJFX0lGQUNFfTBcIiAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwiYmlndGNwXCJcbiBcdGlwIG5ldG5zIGV4ZWMgXCIkU0VSVkVSX05TXCIgXCIkSVBUQUJMRVNfU0FDS1wiIC13IC10IHJhdyAtSSBPVVRQVVQgLW8gXCJ0dW4xXCIgLXAgdGNwIC1tIHRjcCAtLXRjcC1mbGFncyBBQ0sgQUNLIC0tdGNwLW9wdGlvbiA1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwic2Fja1wiXG5AQCAtMTQ3LDggKzE3Nyw4IEBAIGRvX3Rlc3QoKSB7XG4gXHRlY2hvIFwiQ2FwdHVyZWQgQklHIFRDUCBSWCBwYWNrZXRzOiAkUEFDS0VUU19TRVJWRVJcIlxuIFx0ZWNobyBcIkNhcHR1cmVkIEJJRyBUQ1AgVFggcGFja2V0czogJFBBQ0tFVFNfQ0xJRU5UXCJcbiBcdGVjaG8gXCJDYXB0dXJlZCBUQ1AgU0FDSyBwYWNrZXRzOiAkUEFDS0VUU19TQUNLXCJcbi1cdFsgXCIkUEFDS0VUU19TRVJWRVJcIiAtZ3QgXCIkUEFDS0VUU19USFJFU0hPTERcIiBdIHx8IHJldHVybiAxXG4tXHRbIFwiJFBBQ0tFVFNfQ0xJRU5UXCIgLWd0IFwiJFBBQ0tFVFNfVEhSRVNIT0xEXCIgXSB8fCByZXR1cm4gMVxuK1x0WyBcIiRQQUNLRVRTX1NFUlZFUlwiIC1ndCBcIiRwYWNrZXRzX3RocmVzaG9sZFwiIF0gfHwgcmV0dXJuIDFcbitcdFsgXCIkUEFDS0VUU19DTElFTlRcIiAtZ3QgXCIkcGFja2V0c190aHJlc2hvbGRcIiBdIHx8IHJldHVybiAxXG4gXHRbIFwiJFBBQ0tFVFNfU0FDS1wiIC1sdCBcIiQoKCBQQUNLRVRTX0NMSUVOVCAvIDIgKSlcIiBdIHx8IHJldHVybiAxXG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTI6MzM6MjcuNDg3OTI3NzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODgxMTAwNDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1GYWxzZTogQSBRdWljayBFdmFsdWF0aW9uKipcblxuT2theSwgbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCdzIHByZXR0eSBjbGVhciB3aGVyZSB3ZSBzdGFuZC4gSSd2ZSBnb3QgYSBtb2RpZmljYXRpb24gdG8gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hgIGhlcmUuIFRoYXQncyBhIHNlbGZ0ZXN0IHNjcmlwdCwgYW5kIGl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHdoYXQga2luZCBvZiBjaGFuZ2VzIHRob3NlIHVzdWFsbHkgcmVwcmVzZW50LiBUaGV5J3JlIHR5cGljYWxseSBkZXNpZ25lZCB0byBleGVyY2lzZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5LCBmaW5kIGVkZ2UgY2FzZXMsIG9yIGVuc3VyZSByZWdyZXNzaW9ucyBkb24ndCBjcmVlcCBpbi5cblxuQ3J1Y2lhbGx5LCB0aGlzIGlzbid0IHRvdWNoaW5nIGFueSBrZXJuZWwgY29kZSBkaXJlY3RseS4gSSdtIG5vdCBzZWVpbmcgYW55IG1vZGlmaWNhdGlvbnMgdG8gY29yZSBuZXR3b3JrIHN0YWNrIGNvbXBvbmVudHMsIGRhdGEgc3RydWN0dXJlcywgb3IgYW55dGhpbmcgdGhhdCB3b3VsZCBpbnRyb2R1Y2UgbmV3IGxvZ2ljIG9yIGZ1bmN0aW9uYWxpdHkgdGhhdCB3b3VsZCAqbmVlZCogZnV6emluZyBmb3IgY29ycmVjdG5lc3MuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgYSB0ZXN0IHNjcmlwdCwgYW5kIG9ubHkgYSB0ZXN0IHNjcmlwdC5cblxuVGhlcmVmb3JlLCBmb3IgbXkgcHVycG9zZXMgaGVyZSwgdGhpcyBwYXRjaCBkb2Vzbid0IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgaXRzZWxmIHRoYXQgYXJlIHN1aXRhYmxlIGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcuIEknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgd2l0aG91dCBhIHNlY29uZCB0aG91Z2h0LiBJdCdzIGEgdmFsaWQgY2hhbmdlLCBsaWtlbHkgaW1wb3J0YW50IGZvciB0aGUgc2VsZiB0ZXN0cywgYnV0IG5vdCBvbmUgdG8gYmUgY29uc2lkZXJlZCB3aGVuIGRlY2lkaW5nIHdoZXJlIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyMDgsIk91dHB1dFRva2VucyI6NzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDEyOjMzOjM1LjM2OTAzMTk0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxMjozMzozNS4zNjkwNjY0MVoiLCJTZXEiOjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowwwkr4[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-22 12:17:02 +0000 UTC FinishedAt: 2026-08-22 12:33:37 +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+CgkJCTx0ZD4yMDI2LzA4LzIyIDEyOjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNlbGZ0ZXN0IHNjcmlwdCAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaCkgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAxMjozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJiMjMyYzIyNWNhZDMwNDZiYmI5NjExOWJhOGY0ZmUyOTQ1YmE0NjZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyMiAxMjozMzoyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaFxuaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbkBAIC0zLDYgJiM0MzszLDggQEBcbiAjXG4gIyBUZXN0aW5nIGZvciBJUHY0IGFuZCBJUHY2IEJJRyBUQ1Agb3ZlciBWWExBTiBhbmQgR0VORVZFIHR1bm5lbHMuXG4gXG4mIzQzO3NvdXJjZSBcJiMzNDskKGRpcm5hbWUgXCYjMzQ7JDBcJiMzNDspL2xpYi5zaFwmIzM0O1xuJiM0MztcbiBTRVJWRVJfTlM9JChta3RlbXAgLXUgc2VydmVyLVhYWFhYWFhYKVxuIFNFUlZFUl9JUDQ9XCYjMzQ7MTkyLjE2OC4xLjFcJiMzNDtcbiBTRVJWRVJfSVA2PVwmIzM0OzIwMDE6ZGI4OjoxOjFcJiMzNDtcbkBAIC0xNSwxMSAmIzQzOzE3LDE4IEBAIENMSUVOVF9JUDY9XCYjMzQ7MjAwMTpkYjg6OjE6MlwmIzM0O1xuIENMSUVOVF9JUDRfVFVOPVwmIzM0OzE5Mi4xNjguMi4yXCYjMzQ7XG4gQ0xJRU5UX0lQNl9UVU49XCYjMzQ7MjAwMTpkYjg6OjI6MlwmIzM0O1xuIFxuLTogXCYjMzQ7JHtQQUNLRVRTX1RIUkVTSE9MRDo9MTAwMH1cJiMzNDtcbi1cbiAjIEtzZWxmdGVzdCBmcmFtZXdvcmsgcmVxdWlyZW1lbnQgLSBTS0lQIGNvZGUgaXMgNC5cbiBrc2Z0X3NraXA9NFxuIFxuJiM0MztpZiBbIC16IFwmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRFwmIzM0OyBdOyB0aGVuXG4mIzQzO1x0aWYgWyBcJiMzNDskS1NGVF9NQUNISU5FX1NMT1dcJiMzNDsgPSB5ZXMgXTsgdGhlblxuJiM0MztcdFx0ZWNobyAmIzM5O0RlYnVnIGtlcm5lbCBkZXRlY3RlZCwgbG93ZXJpbmcgdGhlIGRlZmF1bHQgdGhyZXNob2xkJiMzOTtcbiYjNDM7XHRcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMFxuJiM0MztcdGVsc2VcbiYjNDM7XHRcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMDBcbiYjNDM7XHRmaVxuJiM0MztmaVxuJiM0MztcbiBzZXR1cCgpIHtcbiBcdGlwIG5ldG5zIGFkZCBcJiMzNDskU0VSVkVSX05TXCYjMzQ7XG4gXHRpcCBuZXRucyBhZGQgXCYjMzQ7JENMSUVOVF9OU1wmIzM0O1xuQEAgLTM5LDYgJiM0Mzs0OCw5IEBAIHNldHVwKCkge1xuIFx0XHRncm9fbWF4X3NpemUgMTk2NjA4IGdyb19pcHY0X21heF9zaXplIDE5NjYwOFxuIFxuIFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskU0VSVkVSX05TXCYjMzQ7IG5ldHNlcnZlciBcdTAwM2UvZGV2L251bGxcbiYjNDM7XHR3YWl0X2xvY2FsX3BvcnRfbGlzdGVuIFwmIzM0OyRTRVJWRVJfTlNcJiMzNDsgMTI4NjUgdGNwXG4mIzQzO1xuJiM0MztcdERFRkFVTFRfVENQX01JTl9UU09fU0VHUz0kKGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JENMSUVOVF9OU1wmIzM0OyBzeXNjdGwgLW4gbmV0LmlwdjQudGNwX21pbl90c29fc2VncylcbiB9XG4gXG4gc2V0dXBfdHVubmVsKCkge1xuQEAgLTk3LDYgJiM0MzsxMDksOCBAQCBjbGVhbnVwKCkge1xuIH1cbiBcbiBkb190ZXN0KCkge1xuJiM0MztcdGxvY2FsIHBhY2tldHNfdGhyZXNob2xkPVwmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRFwmIzM0O1xuJiM0MztcbiBcdCMgV2hlbiB0eCBjc3VtIG9mZmxvYWQgaXMgb2ZmLCBzb2Z0d2FyZSBHU08gaXMgcGVyZm9ybWVkIGJlZm9yZSBwYXNzaW5nIHRoZVxuIFx0IyBwYWNrZXQgdG8gdmV0aC4gQ2hlY2sgQklHIFRDUCBwYWNrZXRzIGluc2lkZSB0aGUgVlhMQU4gdHVubmVsIHRvIHZlcmlmeVxuIFx0IyB0aGUgc29mdHdhcmUgY2hlY2tzdW0gcGF0aDogaWYgdGhlIGNoZWNrc3VtIGNvZGUgaXMgYnJva2VuLCB0aGVzZSBwYWNrZXRzXG5AQCAtMTE1LDYgJiM0MzsxMjksNyBAQCBkb190ZXN0KCkge1xuIFx0XHRlbHNlXG4gXHRcdFx0SVBUQUJMRVM9aXA2dGFibGVzXG4gXHRcdGZpXG4mIzQzO1x0XHRwYWNrZXRzX3RocmVzaG9sZD0kKCggUEFDS0VUU19USFJFU0hPTEQgLyAxMCApKVxuIFx0ZmlcbiBcdGlmIFsgXCYjMzQ7JDJcJiMzNDsgPSA0IF07IHRoZW5cbiBcdFx0SVBUQUJMRVNfU0FDSz1pcHRhYmxlc1xuQEAgLTEyMiw2ICYjNDM7MTM3LDIxIEBAIGRvX3Rlc3QoKSB7XG4gXHRcdElQVEFCTEVTX1NBQ0s9aXA2dGFibGVzXG4gXHRmaVxuIFxuJiM0MztcdGlmIFsgXCYjMzQ7JDNcJiMzNDsgIT0gJiMzOTtvbiYjMzk7IF0gXHUwMDI2XHUwMDI2IFsgXCYjMzQ7JEtTRlRfTUFDSElORV9TTE9XXCYjMzQ7ID0geWVzIF07IHRoZW5cbiYjNDM7XHRcdGVjaG8gJiMzOTtTbG93IGNvbmZpZ3VyYXRpb247IGluY3JlYXNpbmcgbmV0LmlwdjQudGNwX21pbl90c29fc2VncyBhbmQgaW5pdGN3bmQmIzM5O1xuJiM0MztcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskQ0xJRU5UX05TXCYjMzQ7IHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPTUyXG4mIzQzO1x0XHRpZiBbIFwmIzM0OyQyXCYjMzQ7ID0gNCBdOyB0aGVuXG4mIzQzO1x0XHRcdGlwIC1uZXRucyBcJiMzNDskQ0xJRU5UX05TXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdCAgICByb3V0ZSBjaGFuZ2UgMTkyLjE2OC4yLjAvMjQgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdGlwIC1uZXRucyBcJiMzNDskQ0xJRU5UX05TXCYjMzQ7IC02IFxcXG4mIzQzO1x0XHRcdCAgICByb3V0ZSBjaGFuZ2UgMjAwMTpkYjg6OjI6MC8xMTIgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXG4mIzQzO1x0XHRmaVxuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JENMSUVOVF9OU1wmIzM0OyBcXFxuJiM0MztcdFx0ICAgIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPVwmIzM0OyRERUZBVUxUX1RDUF9NSU5fVFNPX1NFR1NcJiMzNDtcbiYjNDM7XHRmaVxuJiM0MztcbiBcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JFNFUlZFUl9OU1wmIzM0OyBcJiMzNDskSVBUQUJMRVNcJiMzNDsgLXcgLXQgcmF3IC1JIFBSRVJPVVRJTkcgLWkgXCYjMzQ7JHtDQVBUVVJFX0lGQUNFfTFcJiMzNDsgLW0gbGVuZ3RoICEgLS1sZW5ndGggMDo2NTUzNSAtbSBjb21tZW50IC0tY29tbWVudCBcJiMzNDtiaWd0Y3BcJiMzNDtcbiBcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JENMSUVOVF9OU1wmIzM0OyBcJiMzNDskSVBUQUJMRVNcJiMzNDsgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyBcJiMzNDske0NBUFRVUkVfSUZBQ0V9MFwmIzM0OyAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwmIzM0O2JpZ3RjcFwmIzM0O1xuIFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskU0VSVkVSX05TXCYjMzQ7IFwmIzM0OyRJUFRBQkxFU19TQUNLXCYjMzQ7IC13IC10IHJhdyAtSSBPVVRQVVQgLW8gXCYjMzQ7dHVuMVwmIzM0OyAtcCB0Y3AgLW0gdGNwIC0tdGNwLWZsYWdzIEFDSyBBQ0sgLS10Y3Atb3B0aW9uIDUgLW0gY29tbWVudCAtLWNvbW1lbnQgXCYjMzQ7c2Fja1wmIzM0O1xuQEAgLTE0Nyw4ICYjNDM7MTc3LDggQEAgZG9fdGVzdCgpIHtcbiBcdGVjaG8gXCYjMzQ7Q2FwdHVyZWQgQklHIFRDUCBSWCBwYWNrZXRzOiAkUEFDS0VUU19TRVJWRVJcJiMzNDtcbiBcdGVjaG8gXCYjMzQ7Q2FwdHVyZWQgQklHIFRDUCBUWCBwYWNrZXRzOiAkUEFDS0VUU19DTElFTlRcJiMzNDtcbiBcdGVjaG8gXCYjMzQ7Q2FwdHVyZWQgVENQIFNBQ0sgcGFja2V0czogJFBBQ0tFVFNfU0FDS1wmIzM0O1xuLVx0WyBcJiMzNDskUEFDS0VUU19TRVJWRVJcJiMzNDsgLWd0IFwmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRFwmIzM0OyBdIHx8IHJldHVybiAxXG4tXHRbIFwmIzM0OyRQQUNLRVRTX0NMSUVOVFwmIzM0OyAtZ3QgXCYjMzQ7JFBBQ0tFVFNfVEhSRVNIT0xEXCYjMzQ7IF0gfHwgcmV0dXJuIDFcbiYjNDM7XHRbIFwmIzM0OyRQQUNLRVRTX1NFUlZFUlwmIzM0OyAtZ3QgXCYjMzQ7JHBhY2tldHNfdGhyZXNob2xkXCYjMzQ7IF0gfHwgcmV0dXJuIDFcbiYjNDM7XHRbIFwmIzM0OyRQQUNLRVRTX0NMSUVOVFwmIzM0OyAtZ3QgXCYjMzQ7JHBhY2tldHNfdGhyZXNob2xkXCYjMzQ7IF0gfHwgcmV0dXJuIDFcbiBcdFsgXCYjMzQ7JFBBQ0tFVFNfU0FDS1wmIzM0OyAtbHQgXCYjMzQ7JCgoIFBBQ0tFVFNfQ0xJRU5UIC8gMiApKVwmIzM0OyBdIHx8IHJldHVybiAxXG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDEyOjMzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYmIyMzJjMjI1Y2FkMzA0NmJiYjk2MTE5YmE4ZjRmZTI5NDViYTQ2NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDIyIDEyOjMzOjI2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2gKaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTUKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoCkBAIC0zLDYgJiM0MzszLDggQEAKICMKICMgVGVzdGluZyBmb3IgSVB2NCBhbmQgSVB2NiBCSUcgVENQIG92ZXIgVlhMQU4gYW5kIEdFTkVWRSB0dW5uZWxzLgogCiYjNDM7c291cmNlICYjMzQ7JChkaXJuYW1lICYjMzQ7JDAmIzM0OykvbGliLnNoJiMzNDsKJiM0MzsKIFNFUlZFUl9OUz0kKG1rdGVtcCAtdSBzZXJ2ZXItWFhYWFhYWFgpCiBTRVJWRVJfSVA0PSYjMzQ7MTkyLjE2OC4xLjEmIzM0OwogU0VSVkVSX0lQNj0mIzM0OzIwMDE6ZGI4OjoxOjEmIzM0OwpAQCAtMTUsMTEgJiM0MzsxNywxOCBAQCBDTElFTlRfSVA2PSYjMzQ7MjAwMTpkYjg6OjE6MiYjMzQ7CiBDTElFTlRfSVA0X1RVTj0mIzM0OzE5Mi4xNjguMi4yJiMzNDsKIENMSUVOVF9JUDZfVFVOPSYjMzQ7MjAwMTpkYjg6OjI6MiYjMzQ7CiAKLTogJiMzNDske1BBQ0tFVFNfVEhSRVNIT0xEOj0xMDAwfSYjMzQ7Ci0KICMgS3NlbGZ0ZXN0IGZyYW1ld29yayByZXF1aXJlbWVudCAtIFNLSVAgY29kZSBpcyA0Lgoga3NmdF9za2lwPTQKIAomIzQzO2lmIFsgLXogJiMzNDskUEFDS0VUU19USFJFU0hPTEQmIzM0OyBdOyB0aGVuCiYjNDM7CWlmIFsgJiMzNDskS1NGVF9NQUNISU5FX1NMT1cmIzM0OyA9IHllcyBdOyB0aGVuCiYjNDM7CQllY2hvICYjMzk7RGVidWcga2VybmVsIGRldGVjdGVkLCBsb3dlcmluZyB0aGUgZGVmYXVsdCB0aHJlc2hvbGQmIzM5OwomIzQzOwkJUEFDS0VUU19USFJFU0hPTEQ9MTAwCiYjNDM7CWVsc2UKJiM0MzsJCVBBQ0tFVFNfVEhSRVNIT0xEPTEwMDAKJiM0MzsJZmkKJiM0MztmaQomIzQzOwogc2V0dXAoKSB7CiAJaXAgbmV0bnMgYWRkICYjMzQ7JFNFUlZFUl9OUyYjMzQ7CiAJaXAgbmV0bnMgYWRkICYjMzQ7JENMSUVOVF9OUyYjMzQ7CkBAIC0zOSw2ICYjNDM7NDgsOSBAQCBzZXR1cCgpIHsKIAkJZ3JvX21heF9zaXplIDE5NjYwOCBncm9faXB2NF9tYXhfc2l6ZSAxOTY2MDgKIAogCWlwIG5ldG5zIGV4ZWMgJiMzNDskU0VSVkVSX05TJiMzNDsgbmV0c2VydmVyICZndDsvZGV2L251bGwKJiM0MzsJd2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAmIzM0OyRTRVJWRVJfTlMmIzM0OyAxMjg2NSB0Y3AKJiM0MzsKJiM0MzsJREVGQVVMVF9UQ1BfTUlOX1RTT19TRUdTPSQoaXAgbmV0bnMgZXhlYyAmIzM0OyRDTElFTlRfTlMmIzM0OyBzeXNjdGwgLW4gbmV0LmlwdjQudGNwX21pbl90c29fc2VncykKIH0KIAogc2V0dXBfdHVubmVsKCkgewpAQCAtOTcsNiAmIzQzOzEwOSw4IEBAIGNsZWFudXAoKSB7CiB9CiAKIGRvX3Rlc3QoKSB7CiYjNDM7CWxvY2FsIHBhY2tldHNfdGhyZXNob2xkPSYjMzQ7JFBBQ0tFVFNfVEhSRVNIT0xEJiMzNDsKJiM0MzsKIAkjIFdoZW4gdHggY3N1bSBvZmZsb2FkIGlzIG9mZiwgc29mdHdhcmUgR1NPIGlzIHBlcmZvcm1lZCBiZWZvcmUgcGFzc2luZyB0aGUKIAkjIHBhY2tldCB0byB2ZXRoLiBDaGVjayBCSUcgVENQIHBhY2tldHMgaW5zaWRlIHRoZSBWWExBTiB0dW5uZWwgdG8gdmVyaWZ5CiAJIyB0aGUgc29mdHdhcmUgY2hlY2tzdW0gcGF0aDogaWYgdGhlIGNoZWNrc3VtIGNvZGUgaXMgYnJva2VuLCB0aGVzZSBwYWNrZXRzCkBAIC0xMTUsNiAmIzQzOzEyOSw3IEBAIGRvX3Rlc3QoKSB7CiAJCWVsc2UKIAkJCUlQVEFCTEVTPWlwNnRhYmxlcwogCQlmaQomIzQzOwkJcGFja2V0c190aHJlc2hvbGQ9JCgoIFBBQ0tFVFNfVEhSRVNIT0xEIC8gMTAgKSkKIAlmaQogCWlmIFsgJiMzNDskMiYjMzQ7ID0gNCBdOyB0aGVuCiAJCUlQVEFCTEVTX1NBQ0s9aXB0YWJsZXMKQEAgLTEyMiw2ICYjNDM7MTM3LDIxIEBAIGRvX3Rlc3QoKSB7CiAJCUlQVEFCTEVTX1NBQ0s9aXA2dGFibGVzCiAJZmkKIAomIzQzOwlpZiBbICYjMzQ7JDMmIzM0OyAhPSAmIzM5O29uJiMzOTsgXSAmYW1wOyZhbXA7IFsgJiMzNDskS1NGVF9NQUNISU5FX1NMT1cmIzM0OyA9IHllcyBdOyB0aGVuCiYjNDM7CQllY2hvICYjMzk7U2xvdyBjb25maWd1cmF0aW9uOyBpbmNyZWFzaW5nIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MgYW5kIGluaXRjd25kJiMzOTsKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskQ0xJRU5UX05TJiMzNDsgc3lzY3RsIC13IG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3M9NTIKJiM0MzsJCWlmIFsgJiMzNDskMiYjMzQ7ID0gNCBdOyB0aGVuCiYjNDM7CQkJaXAgLW5ldG5zICYjMzQ7JENMSUVOVF9OUyYjMzQ7IFwKJiM0MzsJCQkgICAgcm91dGUgY2hhbmdlIDE5Mi4xNjguMi4wLzI0IGRldiB0dW4wIGluaXRjd25kIDEwMAomIzQzOwkJZWxzZQomIzQzOwkJCWlwIC1uZXRucyAmIzM0OyRDTElFTlRfTlMmIzM0OyAtNiBcCiYjNDM7CQkJICAgIHJvdXRlIGNoYW5nZSAyMDAxOmRiODo6MjowLzExMiBkZXYgdHVuMCBpbml0Y3duZCAxMDAKJiM0MzsJCWZpCiYjNDM7CWVsc2UKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskQ0xJRU5UX05TJiMzNDsgXAomIzQzOwkJICAgIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPSYjMzQ7JERFRkFVTFRfVENQX01JTl9UU09fU0VHUyYjMzQ7CiYjNDM7CWZpCiYjNDM7CiAJaXAgbmV0bnMgZXhlYyAmIzM0OyRTRVJWRVJfTlMmIzM0OyAmIzM0OyRJUFRBQkxFUyYjMzQ7IC13IC10IHJhdyAtSSBQUkVST1VUSU5HIC1pICYjMzQ7JHtDQVBUVVJFX0lGQUNFfTEmIzM0OyAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50ICYjMzQ7YmlndGNwJiMzNDsKIAlpcCBuZXRucyBleGVjICYjMzQ7JENMSUVOVF9OUyYjMzQ7ICYjMzQ7JElQVEFCTEVTJiMzNDsgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyAmIzM0OyR7Q0FQVFVSRV9JRkFDRX0wJiMzNDsgLW0gbGVuZ3RoICEgLS1sZW5ndGggMDo2NTUzNSAtbSBjb21tZW50IC0tY29tbWVudCAmIzM0O2JpZ3RjcCYjMzQ7CiAJaXAgbmV0bnMgZXhlYyAmIzM0OyRTRVJWRVJfTlMmIzM0OyAmIzM0OyRJUFRBQkxFU19TQUNLJiMzNDsgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyAmIzM0O3R1bjEmIzM0OyAtcCB0Y3AgLW0gdGNwIC0tdGNwLWZsYWdzIEFDSyBBQ0sgLS10Y3Atb3B0aW9uIDUgLW0gY29tbWVudCAtLWNvbW1lbnQgJiMzNDtzYWNrJiMzNDsKQEAgLTE0Nyw4ICYjNDM7MTc3LDggQEAgZG9fdGVzdCgpIHsKIAllY2hvICYjMzQ7Q2FwdHVyZWQgQklHIFRDUCBSWCBwYWNrZXRzOiAkUEFDS0VUU19TRVJWRVImIzM0OwogCWVjaG8gJiMzNDtDYXB0dXJlZCBCSUcgVENQIFRYIHBhY2tldHM6ICRQQUNLRVRTX0NMSUVOVCYjMzQ7CiAJZWNobyAmIzM0O0NhcHR1cmVkIFRDUCBTQUNLIHBhY2tldHM6ICRQQUNLRVRTX1NBQ0smIzM0OwotCVsgJiMzNDskUEFDS0VUU19TRVJWRVImIzM0OyAtZ3QgJiMzNDskUEFDS0VUU19USFJFU0hPTEQmIzM0OyBdIHx8IHJldHVybiAxCi0JWyAmIzM0OyRQQUNLRVRTX0NMSUVOVCYjMzQ7IC1ndCAmIzM0OyRQQUNLRVRTX1RIUkVTSE9MRCYjMzQ7IF0gfHwgcmV0dXJuIDEKJiM0MzsJWyAmIzM0OyRQQUNLRVRTX1NFUlZFUiYjMzQ7IC1ndCAmIzM0OyRwYWNrZXRzX3RocmVzaG9sZCYjMzQ7IF0gfHwgcmV0dXJuIDEKJiM0MzsJWyAmIzM0OyRQQUNLRVRTX0NMSUVOVCYjMzQ7IC1ndCAmIzM0OyRwYWNrZXRzX3RocmVzaG9sZCYjMzQ7IF0gfHwgcmV0dXJuIDEKIAlbICYjMzQ7JFBBQ0tFVFNfU0FDSyYjMzQ7IC1sdCAmIzM0OyQoKCBQQUNLRVRTX0NMSUVOVCAvIDIgKSkmIzM0OyBdIHx8IHJldHVybiAxCiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIwOAoJCQkJCQkJb3V0cHV0OiA3MgoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1GYWxzZTogQSBRdWljayBFdmFsdWF0aW9uKioKCk9rYXksIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHdoZXJlIHdlIHN0YW5kLiBJJiMzOTt2ZSBnb3QgYSBtb2RpZmljYXRpb24gdG8gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hgIGhlcmUuIFRoYXQmIzM5O3MgYSBzZWxmdGVzdCBzY3JpcHQsIGFuZCBpdCYjMzk7cyBpbXBvcnRhbnQgdG8gcmVtZW1iZXIgd2hhdCBraW5kIG9mIGNoYW5nZXMgdGhvc2UgdXN1YWxseSByZXByZXNlbnQuIFRoZXkmIzM5O3JlIHR5cGljYWxseSBkZXNpZ25lZCB0byBleGVyY2lzZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5LCBmaW5kIGVkZ2UgY2FzZXMsIG9yIGVuc3VyZSByZWdyZXNzaW9ucyBkb24mIzM5O3QgY3JlZXAgaW4uCgpDcnVjaWFsbHksIHRoaXMgaXNuJiMzOTt0IHRvdWNoaW5nIGFueSBrZXJuZWwgY29kZSBkaXJlY3RseS4gSSYjMzk7bSBub3Qgc2VlaW5nIGFueSBtb2RpZmljYXRpb25zIHRvIGNvcmUgbmV0d29yayBzdGFjayBjb21wb25lbnRzLCBkYXRhIHN0cnVjdHVyZXMsIG9yIGFueXRoaW5nIHRoYXQgd291bGQgaW50cm9kdWNlIG5ldyBsb2dpYyBvciBmdW5jdGlvbmFsaXR5IHRoYXQgd291bGQgKm5lZWQqIGZ1enppbmcgZm9yIGNvcnJlY3RuZXNzLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIHRlc3Qgc2NyaXB0LCBhbmQgb25seSBhIHRlc3Qgc2NyaXB0LgoKVGhlcmVmb3JlLCBmb3IgbXkgcHVycG9zZXMgaGVyZSwgdGhpcyBwYXRjaCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGl0c2VsZiB0aGF0IGFyZSBzdWl0YWJsZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nLiBJJiMzOTttIGdvaW5nIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCB3aXRob3V0IGEgc2Vjb25kIHRob3VnaHQuIEl0JiMzOTtzIGEgdmFsaWQgY2hhbmdlLCBsaWtlbHkgaW1wb3J0YW50IGZvciB0aGUgc2VsZiB0ZXN0cywgYnV0IG5vdCBvbmUgdG8gYmUgY29uc2lkZXJlZCB3aGVuIGRlY2lkaW5nIHdoZXJlIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMTI6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDEyOjMzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxMjozMzoyNy4wMzA2NzI5MDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzM4NDExNTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNlbGZ0ZXN0IHNjcmlwdCAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaCkgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTI6MzM6MjcuMDMwNjgyMTc2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTY0MzEzOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiYjIzMmMyMjVjYWQzMDQ2YmJiOTYxMTliYThmNGZlMjk0NWJhNDY2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDIyIDEyOjMzOjI2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoXFxuaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTVcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaFxcbkBAIC0zLDYgKzMsOCBAQFxcbiAjXFxuICMgVGVzdGluZyBmb3IgSVB2NCBhbmQgSVB2NiBCSUcgVENQIG92ZXIgVlhMQU4gYW5kIEdFTkVWRSB0dW5uZWxzLlxcbiBcXG4rc291cmNlIFxcXCIkKGRpcm5hbWUgXFxcIiQwXFxcIikvbGliLnNoXFxcIlxcbitcXG4gU0VSVkVSX05TPSQobWt0ZW1wIC11IHNlcnZlci1YWFhYWFhYWClcXG4gU0VSVkVSX0lQND1cXFwiMTkyLjE2OC4xLjFcXFwiXFxuIFNFUlZFUl9JUDY9XFxcIjIwMDE6ZGI4OjoxOjFcXFwiXFxuQEAgLTE1LDExICsxNywxOCBAQCBDTElFTlRfSVA2PVxcXCIyMDAxOmRiODo6MToyXFxcIlxcbiBDTElFTlRfSVA0X1RVTj1cXFwiMTkyLjE2OC4yLjJcXFwiXFxuIENMSUVOVF9JUDZfVFVOPVxcXCIyMDAxOmRiODo6MjoyXFxcIlxcbiBcXG4tOiBcXFwiJHtQQUNLRVRTX1RIUkVTSE9MRDo9MTAwMH1cXFwiXFxuLVxcbiAjIEtzZWxmdGVzdCBmcmFtZXdvcmsgcmVxdWlyZW1lbnQgLSBTS0lQIGNvZGUgaXMgNC5cXG4ga3NmdF9za2lwPTRcXG4gXFxuK2lmIFsgLXogXFxcIiRQQUNLRVRTX1RIUkVTSE9MRFxcXCIgXTsgdGhlblxcbitcXHRpZiBbIFxcXCIkS1NGVF9NQUNISU5FX1NMT1dcXFwiID0geWVzIF07IHRoZW5cXG4rXFx0XFx0ZWNobyAnRGVidWcga2VybmVsIGRldGVjdGVkLCBsb3dlcmluZyB0aGUgZGVmYXVsdCB0aHJlc2hvbGQnXFxuK1xcdFxcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMFxcbitcXHRlbHNlXFxuK1xcdFxcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMDBcXG4rXFx0ZmlcXG4rZmlcXG4rXFxuIHNldHVwKCkge1xcbiBcXHRpcCBuZXRucyBhZGQgXFxcIiRTRVJWRVJfTlNcXFwiXFxuIFxcdGlwIG5ldG5zIGFkZCBcXFwiJENMSUVOVF9OU1xcXCJcXG5AQCAtMzksNiArNDgsOSBAQCBzZXR1cCgpIHtcXG4gXFx0XFx0Z3JvX21heF9zaXplIDE5NjYwOCBncm9faXB2NF9tYXhfc2l6ZSAxOTY2MDhcXG4gXFxuIFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRTRVJWRVJfTlNcXFwiIG5ldHNlcnZlciBcXHUwMDNlL2Rldi9udWxsXFxuK1xcdHdhaXRfbG9jYWxfcG9ydF9saXN0ZW4gXFxcIiRTRVJWRVJfTlNcXFwiIDEyODY1IHRjcFxcbitcXG4rXFx0REVGQVVMVF9UQ1BfTUlOX1RTT19TRUdTPSQoaXAgbmV0bnMgZXhlYyBcXFwiJENMSUVOVF9OU1xcXCIgc3lzY3RsIC1uIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MpXFxuIH1cXG4gXFxuIHNldHVwX3R1bm5lbCgpIHtcXG5AQCAtOTcsNiArMTA5LDggQEAgY2xlYW51cCgpIHtcXG4gfVxcbiBcXG4gZG9fdGVzdCgpIHtcXG4rXFx0bG9jYWwgcGFja2V0c190aHJlc2hvbGQ9XFxcIiRQQUNLRVRTX1RIUkVTSE9MRFxcXCJcXG4rXFxuIFxcdCMgV2hlbiB0eCBjc3VtIG9mZmxvYWQgaXMgb2ZmLCBzb2Z0d2FyZSBHU08gaXMgcGVyZm9ybWVkIGJlZm9yZSBwYXNzaW5nIHRoZVxcbiBcXHQjIHBhY2tldCB0byB2ZXRoLiBDaGVjayBCSUcgVENQIHBhY2tldHMgaW5zaWRlIHRoZSBWWExBTiB0dW5uZWwgdG8gdmVyaWZ5XFxuIFxcdCMgdGhlIHNvZnR3YXJlIGNoZWNrc3VtIHBhdGg6IGlmIHRoZSBjaGVja3N1bSBjb2RlIGlzIGJyb2tlbiwgdGhlc2UgcGFja2V0c1xcbkBAIC0xMTUsNiArMTI5LDcgQEAgZG9fdGVzdCgpIHtcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRJUFRBQkxFUz1pcDZ0YWJsZXNcXG4gXFx0XFx0ZmlcXG4rXFx0XFx0cGFja2V0c190aHJlc2hvbGQ9JCgoIFBBQ0tFVFNfVEhSRVNIT0xEIC8gMTAgKSlcXG4gXFx0ZmlcXG4gXFx0aWYgWyBcXFwiJDJcXFwiID0gNCBdOyB0aGVuXFxuIFxcdFxcdElQVEFCTEVTX1NBQ0s9aXB0YWJsZXNcXG5AQCAtMTIyLDYgKzEzNywyMSBAQCBkb190ZXN0KCkge1xcbiBcXHRcXHRJUFRBQkxFU19TQUNLPWlwNnRhYmxlc1xcbiBcXHRmaVxcbiBcXG4rXFx0aWYgWyBcXFwiJDNcXFwiICE9ICdvbicgXSBcXHUwMDI2XFx1MDAyNiBbIFxcXCIkS1NGVF9NQUNISU5FX1NMT1dcXFwiID0geWVzIF07IHRoZW5cXG4rXFx0XFx0ZWNobyAnU2xvdyBjb25maWd1cmF0aW9uOyBpbmNyZWFzaW5nIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MgYW5kIGluaXRjd25kJ1xcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkQ0xJRU5UX05TXFxcIiBzeXNjdGwgLXcgbmV0LmlwdjQudGNwX21pbl90c29fc2Vncz01MlxcbitcXHRcXHRpZiBbIFxcXCIkMlxcXCIgPSA0IF07IHRoZW5cXG4rXFx0XFx0XFx0aXAgLW5ldG5zIFxcXCIkQ0xJRU5UX05TXFxcIiBcXFxcXFxuK1xcdFxcdFxcdCAgICByb3V0ZSBjaGFuZ2UgMTkyLjE2OC4yLjAvMjQgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXFxuK1xcdFxcdGVsc2VcXG4rXFx0XFx0XFx0aXAgLW5ldG5zIFxcXCIkQ0xJRU5UX05TXFxcIiAtNiBcXFxcXFxuK1xcdFxcdFxcdCAgICByb3V0ZSBjaGFuZ2UgMjAwMTpkYjg6OjI6MC8xMTIgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXFxuK1xcdFxcdGZpXFxuK1xcdGVsc2VcXG4rXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJENMSUVOVF9OU1xcXCIgXFxcXFxcbitcXHRcXHQgICAgc3lzY3RsIC13IG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3M9XFxcIiRERUZBVUxUX1RDUF9NSU5fVFNPX1NFR1NcXFwiXFxuK1xcdGZpXFxuK1xcbiBcXHRpcCBuZXRucyBleGVjIFxcXCIkU0VSVkVSX05TXFxcIiBcXFwiJElQVEFCTEVTXFxcIiAtdyAtdCByYXcgLUkgUFJFUk9VVElORyAtaSBcXFwiJHtDQVBUVVJFX0lGQUNFfTFcXFwiIC1tIGxlbmd0aCAhIC0tbGVuZ3RoIDA6NjU1MzUgLW0gY29tbWVudCAtLWNvbW1lbnQgXFxcImJpZ3RjcFxcXCJcXG4gXFx0aXAgbmV0bnMgZXhlYyBcXFwiJENMSUVOVF9OU1xcXCIgXFxcIiRJUFRBQkxFU1xcXCIgLXcgLXQgcmF3IC1JIE9VVFBVVCAtbyBcXFwiJHtDQVBUVVJFX0lGQUNFfTBcXFwiIC1tIGxlbmd0aCAhIC0tbGVuZ3RoIDA6NjU1MzUgLW0gY29tbWVudCAtLWNvbW1lbnQgXFxcImJpZ3RjcFxcXCJcXG4gXFx0aXAgbmV0bnMgZXhlYyBcXFwiJFNFUlZFUl9OU1xcXCIgXFxcIiRJUFRBQkxFU19TQUNLXFxcIiAtdyAtdCByYXcgLUkgT1VUUFVUIC1vIFxcXCJ0dW4xXFxcIiAtcCB0Y3AgLW0gdGNwIC0tdGNwLWZsYWdzIEFDSyBBQ0sgLS10Y3Atb3B0aW9uIDUgLW0gY29tbWVudCAtLWNvbW1lbnQgXFxcInNhY2tcXFwiXFxuQEAgLTE0Nyw4ICsxNzcsOCBAQCBkb190ZXN0KCkge1xcbiBcXHRlY2hvIFxcXCJDYXB0dXJlZCBCSUcgVENQIFJYIHBhY2tldHM6ICRQQUNLRVRTX1NFUlZFUlxcXCJcXG4gXFx0ZWNobyBcXFwiQ2FwdHVyZWQgQklHIFRDUCBUWCBwYWNrZXRzOiAkUEFDS0VUU19DTElFTlRcXFwiXFxuIFxcdGVjaG8gXFxcIkNhcHR1cmVkIFRDUCBTQUNLIHBhY2tldHM6ICRQQUNLRVRTX1NBQ0tcXFwiXFxuLVxcdFsgXFxcIiRQQUNLRVRTX1NFUlZFUlxcXCIgLWd0IFxcXCIkUEFDS0VUU19USFJFU0hPTERcXFwiIF0gfHwgcmV0dXJuIDFcXG4tXFx0WyBcXFwiJFBBQ0tFVFNfQ0xJRU5UXFxcIiAtZ3QgXFxcIiRQQUNLRVRTX1RIUkVTSE9MRFxcXCIgXSB8fCByZXR1cm4gMVxcbitcXHRbIFxcXCIkUEFDS0VUU19TRVJWRVJcXFwiIC1ndCBcXFwiJHBhY2tldHNfdGhyZXNob2xkXFxcIiBdIHx8IHJldHVybiAxXFxuK1xcdFsgXFxcIiRQQUNLRVRTX0NMSUVOVFxcXCIgLWd0IFxcXCIkcGFja2V0c190aHJlc2hvbGRcXFwiIF0gfHwgcmV0dXJuIDFcXG4gXFx0WyBcXFwiJFBBQ0tFVFNfU0FDS1xcXCIgLWx0IFxcXCIkKCggUEFDS0VUU19DTElFTlQgLyAyICkpXFxcIiBdIHx8IHJldHVybiAxXFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDEyOjMzOjI3LjQ4NzkyNjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo3ODgxMTM3MDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBiYjIzMmMyMjVjYWQzMDQ2YmJiOTYxMTliYThmNGZlMjk0NWJhNDY2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjIgMTI6MzM6MjYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2JpZ190Y3BfdHVubmVscy5zaFxuaW5kZXggZDY1MTNlZDhkNGU4My4uY2MwODc1ZTUyZmI5NiAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hcbkBAIC0zLDYgKzMsOCBAQFxuICNcbiAjIFRlc3RpbmcgZm9yIElQdjQgYW5kIElQdjYgQklHIFRDUCBvdmVyIFZYTEFOIGFuZCBHRU5FVkUgdHVubmVscy5cbiBcbitzb3VyY2UgXCIkKGRpcm5hbWUgXCIkMFwiKS9saWIuc2hcIlxuK1xuIFNFUlZFUl9OUz0kKG1rdGVtcCAtdSBzZXJ2ZXItWFhYWFhYWFgpXG4gU0VSVkVSX0lQND1cIjE5Mi4xNjguMS4xXCJcbiBTRVJWRVJfSVA2PVwiMjAwMTpkYjg6OjE6MVwiXG5AQCAtMTUsMTEgKzE3LDE4IEBAIENMSUVOVF9JUDY9XCIyMDAxOmRiODo6MToyXCJcbiBDTElFTlRfSVA0X1RVTj1cIjE5Mi4xNjguMi4yXCJcbiBDTElFTlRfSVA2X1RVTj1cIjIwMDE6ZGI4OjoyOjJcIlxuIFxuLTogXCIke1BBQ0tFVFNfVEhSRVNIT0xEOj0xMDAwfVwiXG4tXG4gIyBLc2VsZnRlc3QgZnJhbWV3b3JrIHJlcXVpcmVtZW50IC0gU0tJUCBjb2RlIGlzIDQuXG4ga3NmdF9za2lwPTRcbiBcbitpZiBbIC16IFwiJFBBQ0tFVFNfVEhSRVNIT0xEXCIgXTsgdGhlblxuK1x0aWYgWyBcIiRLU0ZUX01BQ0hJTkVfU0xPV1wiID0geWVzIF07IHRoZW5cbitcdFx0ZWNobyAnRGVidWcga2VybmVsIGRldGVjdGVkLCBsb3dlcmluZyB0aGUgZGVmYXVsdCB0aHJlc2hvbGQnXG4rXHRcdFBBQ0tFVFNfVEhSRVNIT0xEPTEwMFxuK1x0ZWxzZVxuK1x0XHRQQUNLRVRTX1RIUkVTSE9MRD0xMDAwXG4rXHRmaVxuK2ZpXG4rXG4gc2V0dXAoKSB7XG4gXHRpcCBuZXRucyBhZGQgXCIkU0VSVkVSX05TXCJcbiBcdGlwIG5ldG5zIGFkZCBcIiRDTElFTlRfTlNcIlxuQEAgLTM5LDYgKzQ4LDkgQEAgc2V0dXAoKSB7XG4gXHRcdGdyb19tYXhfc2l6ZSAxOTY2MDggZ3JvX2lwdjRfbWF4X3NpemUgMTk2NjA4XG4gXG4gXHRpcCBuZXRucyBleGVjIFwiJFNFUlZFUl9OU1wiIG5ldHNlcnZlciBcdTAwM2UvZGV2L251bGxcbitcdHdhaXRfbG9jYWxfcG9ydF9saXN0ZW4gXCIkU0VSVkVSX05TXCIgMTI4NjUgdGNwXG4rXG4rXHRERUZBVUxUX1RDUF9NSU5fVFNPX1NFR1M9JChpcCBuZXRucyBleGVjIFwiJENMSUVOVF9OU1wiIHN5c2N0bCAtbiBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzKVxuIH1cbiBcbiBzZXR1cF90dW5uZWwoKSB7XG5AQCAtOTcsNiArMTA5LDggQEAgY2xlYW51cCgpIHtcbiB9XG4gXG4gZG9fdGVzdCgpIHtcbitcdGxvY2FsIHBhY2tldHNfdGhyZXNob2xkPVwiJFBBQ0tFVFNfVEhSRVNIT0xEXCJcbitcbiBcdCMgV2hlbiB0eCBjc3VtIG9mZmxvYWQgaXMgb2ZmLCBzb2Z0d2FyZSBHU08gaXMgcGVyZm9ybWVkIGJlZm9yZSBwYXNzaW5nIHRoZVxuIFx0IyBwYWNrZXQgdG8gdmV0aC4gQ2hlY2sgQklHIFRDUCBwYWNrZXRzIGluc2lkZSB0aGUgVlhMQU4gdHVubmVsIHRvIHZlcmlmeVxuIFx0IyB0aGUgc29mdHdhcmUgY2hlY2tzdW0gcGF0aDogaWYgdGhlIGNoZWNrc3VtIGNvZGUgaXMgYnJva2VuLCB0aGVzZSBwYWNrZXRzXG5AQCAtMTE1LDYgKzEyOSw3IEBAIGRvX3Rlc3QoKSB7XG4gXHRcdGVsc2VcbiBcdFx0XHRJUFRBQkxFUz1pcDZ0YWJsZXNcbiBcdFx0ZmlcbitcdFx0cGFja2V0c190aHJlc2hvbGQ9JCgoIFBBQ0tFVFNfVEhSRVNIT0xEIC8gMTAgKSlcbiBcdGZpXG4gXHRpZiBbIFwiJDJcIiA9IDQgXTsgdGhlblxuIFx0XHRJUFRBQkxFU19TQUNLPWlwdGFibGVzXG5AQCAtMTIyLDYgKzEzNywyMSBAQCBkb190ZXN0KCkge1xuIFx0XHRJUFRBQkxFU19TQUNLPWlwNnRhYmxlc1xuIFx0ZmlcbiBcbitcdGlmIFsgXCIkM1wiICE9ICdvbicgXSBcdTAwMjZcdTAwMjYgWyBcIiRLU0ZUX01BQ0hJTkVfU0xPV1wiID0geWVzIF07IHRoZW5cbitcdFx0ZWNobyAnU2xvdyBjb25maWd1cmF0aW9uOyBpbmNyZWFzaW5nIG5ldC5pcHY0LnRjcF9taW5fdHNvX3NlZ3MgYW5kIGluaXRjd25kJ1xuK1x0XHRpcCBuZXRucyBleGVjIFwiJENMSUVOVF9OU1wiIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPTUyXG4rXHRcdGlmIFsgXCIkMlwiID0gNCBdOyB0aGVuXG4rXHRcdFx0aXAgLW5ldG5zIFwiJENMSUVOVF9OU1wiIFxcXG4rXHRcdFx0ICAgIHJvdXRlIGNoYW5nZSAxOTIuMTY4LjIuMC8yNCBkZXYgdHVuMCBpbml0Y3duZCAxMDBcbitcdFx0ZWxzZVxuK1x0XHRcdGlwIC1uZXRucyBcIiRDTElFTlRfTlNcIiAtNiBcXFxuK1x0XHRcdCAgICByb3V0ZSBjaGFuZ2UgMjAwMTpkYjg6OjI6MC8xMTIgZGV2IHR1bjAgaW5pdGN3bmQgMTAwXG4rXHRcdGZpXG4rXHRlbHNlXG4rXHRcdGlwIG5ldG5zIGV4ZWMgXCIkQ0xJRU5UX05TXCIgXFxcbitcdFx0ICAgIHN5c2N0bCAtdyBuZXQuaXB2NC50Y3BfbWluX3Rzb19zZWdzPVwiJERFRkFVTFRfVENQX01JTl9UU09fU0VHU1wiXG4rXHRmaVxuK1xuIFx0aXAgbmV0bnMgZXhlYyBcIiRTRVJWRVJfTlNcIiBcIiRJUFRBQkxFU1wiIC13IC10IHJhdyAtSSBQUkVST1VUSU5HIC1pIFwiJHtDQVBUVVJFX0lGQUNFfTFcIiAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwiYmlndGNwXCJcbiBcdGlwIG5ldG5zIGV4ZWMgXCIkQ0xJRU5UX05TXCIgXCIkSVBUQUJMRVNcIiAtdyAtdCByYXcgLUkgT1VUUFVUIC1vIFwiJHtDQVBUVVJFX0lGQUNFfTBcIiAtbSBsZW5ndGggISAtLWxlbmd0aCAwOjY1NTM1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwiYmlndGNwXCJcbiBcdGlwIG5ldG5zIGV4ZWMgXCIkU0VSVkVSX05TXCIgXCIkSVBUQUJMRVNfU0FDS1wiIC13IC10IHJhdyAtSSBPVVRQVVQgLW8gXCJ0dW4xXCIgLXAgdGNwIC1tIHRjcCAtLXRjcC1mbGFncyBBQ0sgQUNLIC0tdGNwLW9wdGlvbiA1IC1tIGNvbW1lbnQgLS1jb21tZW50IFwic2Fja1wiXG5AQCAtMTQ3LDggKzE3Nyw4IEBAIGRvX3Rlc3QoKSB7XG4gXHRlY2hvIFwiQ2FwdHVyZWQgQklHIFRDUCBSWCBwYWNrZXRzOiAkUEFDS0VUU19TRVJWRVJcIlxuIFx0ZWNobyBcIkNhcHR1cmVkIEJJRyBUQ1AgVFggcGFja2V0czogJFBBQ0tFVFNfQ0xJRU5UXCJcbiBcdGVjaG8gXCJDYXB0dXJlZCBUQ1AgU0FDSyBwYWNrZXRzOiAkUEFDS0VUU19TQUNLXCJcbi1cdFsgXCIkUEFDS0VUU19TRVJWRVJcIiAtZ3QgXCIkUEFDS0VUU19USFJFU0hPTERcIiBdIHx8IHJldHVybiAxXG4tXHRbIFwiJFBBQ0tFVFNfQ0xJRU5UXCIgLWd0IFwiJFBBQ0tFVFNfVEhSRVNIT0xEXCIgXSB8fCByZXR1cm4gMVxuK1x0WyBcIiRQQUNLRVRTX1NFUlZFUlwiIC1ndCBcIiRwYWNrZXRzX3RocmVzaG9sZFwiIF0gfHwgcmV0dXJuIDFcbitcdFsgXCIkUEFDS0VUU19DTElFTlRcIiAtZ3QgXCIkcGFja2V0c190aHJlc2hvbGRcIiBdIHx8IHJldHVybiAxXG4gXHRbIFwiJFBBQ0tFVFNfU0FDS1wiIC1sdCBcIiQoKCBQQUNLRVRTX0NMSUVOVCAvIDIgKSlcIiBdIHx8IHJldHVybiAxXG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMTI6MzM6MjcuNDg3OTI3NzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODgxMTAwNDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1GYWxzZTogQSBRdWljayBFdmFsdWF0aW9uKipcblxuT2theSwgbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCdzIHByZXR0eSBjbGVhciB3aGVyZSB3ZSBzdGFuZC4gSSd2ZSBnb3QgYSBtb2RpZmljYXRpb24gdG8gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9iaWdfdGNwX3R1bm5lbHMuc2hgIGhlcmUuIFRoYXQncyBhIHNlbGZ0ZXN0IHNjcmlwdCwgYW5kIGl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHdoYXQga2luZCBvZiBjaGFuZ2VzIHRob3NlIHVzdWFsbHkgcmVwcmVzZW50LiBUaGV5J3JlIHR5cGljYWxseSBkZXNpZ25lZCB0byBleGVyY2lzZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5LCBmaW5kIGVkZ2UgY2FzZXMsIG9yIGVuc3VyZSByZWdyZXNzaW9ucyBkb24ndCBjcmVlcCBpbi5cblxuQ3J1Y2lhbGx5LCB0aGlzIGlzbid0IHRvdWNoaW5nIGFueSBrZXJuZWwgY29kZSBkaXJlY3RseS4gSSdtIG5vdCBzZWVpbmcgYW55IG1vZGlmaWNhdGlvbnMgdG8gY29yZSBuZXR3b3JrIHN0YWNrIGNvbXBvbmVudHMsIGRhdGEgc3RydWN0dXJlcywgb3IgYW55dGhpbmcgdGhhdCB3b3VsZCBpbnRyb2R1Y2UgbmV3IGxvZ2ljIG9yIGZ1bmN0aW9uYWxpdHkgdGhhdCB3b3VsZCAqbmVlZCogZnV6emluZyBmb3IgY29ycmVjdG5lc3MuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgYSB0ZXN0IHNjcmlwdCwgYW5kIG9ubHkgYSB0ZXN0IHNjcmlwdC5cblxuVGhlcmVmb3JlLCBmb3IgbXkgcHVycG9zZXMgaGVyZSwgdGhpcyBwYXRjaCBkb2Vzbid0IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgaXRzZWxmIHRoYXQgYXJlIHN1aXRhYmxlIGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcuIEknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgd2l0aG91dCBhIHNlY29uZCB0aG91Z2h0LiBJdCdzIGEgdmFsaWQgY2hhbmdlLCBsaWtlbHkgaW1wb3J0YW50IGZvciB0aGUgc2VsZiB0ZXN0cywgYnV0IG5vdCBvbmUgdG8gYmUgY29uc2lkZXJlZCB3aGVuIGRlY2lkaW5nIHdoZXJlIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyMDgsIk91dHB1dFRva2VucyI6NzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDEyOjMzOjM1LjM2OTAzMTk0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2VsZnRlc3Qgc2NyaXB0ICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvYmlnX3RjcF90dW5uZWxzLnNoKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQxMjozMzozNS4zNjkwNjY0MVoiLCJTZXEiOjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowwwkr4[1] Phase: Running StartedAt: 2026-08-22 12:33:47 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwwkr4[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-22 12:33:47 +0000 UTC FinishedAt: 2026-08-22 12:33:51 +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,}