Name: series-workflowm2jnb Phase: Failed StartedAt: 2026-09-04 00:57:56 +0000 UTC FinishedAt: 2026-09-04 01:00:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm2jnb[0] Phase: Succeeded StartedAt: 2026-09-04 00:57:56 +0000 UTC FinishedAt: 2026-09-04 01:00:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm2jnb[0].run-triage Phase: Succeeded StartedAt: 2026-09-04 00:57:56 +0000 UTC FinishedAt: 2026-09-04 01:00:19 +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+CgkJCTx0ZD4yMDI2LzA5LzA0IDAwOjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMDA6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YzRjY2JmNzBiNTE2NWYyZjMzZDE1ZDgyOGQzNDlmNzg1ZDliODFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgNCAwMDo1OTo1NyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xuaW5kZXggNTkwNTFlZTJhOTg2MC4uMGQwYTc0NGM0Y2E4OSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbkBAIC0zMCw2ICYjNDM7MzAsOSBAQCBDT05GSUdfTkVUX1NDSF9ORVRFTT1tXG4gQ09ORklHX05GX1RBQkxFUz1tXG4gQ09ORklHX05GX1RBQkxFU19JTkVUPXlcbiBDT05GSUdfTkZUX0NPTVBBVD1tXG4mIzQzO0NPTkZJR19ORlRfTlVNR0VOPXlcbiYjNDM7Q09ORklHX05GVF9SRUpFQ1Q9bVxuJiM0MztDT05GSUdfTkZUX1JFSkVDVF9JUFY0PW1cbiBDT05GSUdfTkZUX1NPQ0tFVD1tXG4gQ09ORklHX05GVF9UUFJPWFk9bVxuIENPTkZJR19TWU5fQ09PS0lFUz15XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfam9pbi5zaFxuaW5kZXggMThjZTcxMzZhMmIwZS4uN2M1NjY4MGNjNDIyMSAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfam9pbi5zaFxuQEAgLTI2LDggJiM0MzsyNiw2IEBAIGNhcG91dD1cJiMzNDtcJiMzNDtcbiBjYXBwaWQ9XCYjMzQ7XCYjMzQ7XG4gbnMxPVwmIzM0O1wmIzM0O1xuIG5zMj1cJiMzNDtcJiMzNDtcbi1pcHRhYmxlcz1cJiMzNDtpcHRhYmxlc1wmIzM0O1xuLWlwNnRhYmxlcz1cJiMzNDtpcDZ0YWJsZXNcJiMzNDtcbiB0aW1lb3V0X3BvbGw9MzBcbiB0aW1lb3V0X3Rlc3Q9JCgodGltZW91dF9wb2xsICogMiAmIzQzOyAxKSlcbiBjYXB0dXJlPWZhbHNlXG5AQCAtNTAsNiAmIzQzOzQ4LDcgQEAgZGVjbGFyZSAtQSBmYWlsZWRfdGVzdHNcbiBNUFRDUF9MSUJfVEVTVF9GT1JNQVQ9XCYjMzQ7JTAzdSAlc1xcblwmIzM0O1xuIFRFU1RfTkFNRT1cJiMzNDtcJiMzNDtcbiBucl9ibGFuaz02XG4mIzQzO25mdF9oYW5kbGU9XCYjMzQ7XCYjMzQ7XG4gXG4gIyBUaGVzZSB2YXIgYXJlIHVzZWQgb25seSBpbiBzb21lIHRlc3RzLCBtYWtlIHN1cmUgdGhleSBhcmUgbm90IGFscmVhZHkgc2V0XG4gdW5zZXQgRkFJTElOR19MSU5LU1xuQEAgLTk5LDQyICYjNDM7OTgsNiBAQCB1bnNldCBhZGRfYWRkcl90eF9uclxuIHVuc2V0IGFkZF9hZGRyX2VjaG9fdHhfbnJcbiB1bnNldCBhZGRfYWRkcl9kcm9wX3R4X25yXG4gXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCYjMzQ7bmZicGZfY29tcGlsZSAmIzM5OyhpcCBcdTAwMjZcdTAwMjYgKGlwWzU0XSBcdTAwMjYgMHhmMCkgPT0gMHgzMCkgfHxcbi0jXHRcdFx0XHQgIChpcDYgXHUwMDI2XHUwMDI2IChpcDZbNzRdIFx1MDAyNiAweGYwKSA9PSAweDMwKSYjMzk7XCYjMzQ7XG4tQ0JQRl9NUFRDUF9TVUJPUFRJT05fQUREX0FERFI9XCYjMzQ7MTQsXG4tXHRcdFx0ICAgICAgIDQ4IDAgMCAwLFxuLVx0XHRcdCAgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgICAyMSAwIDMgNjQsXG4tXHRcdFx0ICAgICAgIDQ4IDAgMCA1NCxcbi1cdFx0XHQgICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAgMjEgNiA3IDQ4LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgMCxcbi1cdFx0XHQgICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAgMjEgMCA0IDk2LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgNzQsXG4tXHRcdFx0ICAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgIDIxIDAgMSA0OCxcbi1cdFx0XHQgICAgICAgNiAwIDAgNjU1MzUsXG4tXHRcdFx0ICAgICAgIDYgMCAwIDBcJiMzNDtcbi1cbi0jIElQdjQ6IFRDUCBoZHIgb2YgNDhCLCBhIGZpcnN0IHN1Ym9wdGlvbiBvZiAxMkIgKERBQ0s4KSwgdGhlIFJNX0FERFIgc3Vib3B0aW9uXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCYjMzQ7bmZicGZfY29tcGlsZSAmIzM5OyhpcFszMl0gXHUwMDI2IDB4ZjApID09IDB4YzAgXHUwMDI2XHUwMDI2IGlwWzUzXSA9PSAweDBjIFx1MDAyNlx1MDAyNlxuLSNcdFx0XHRcdCAgKGlwWzY2XSBcdTAwMjYgMHhmMCkgPT0gMHg0MCYjMzk7XCYjMzQ7XG4tQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUj1cJiMzNDsxMyxcbi1cdFx0XHQgICAgICA0OCAwIDAgMCxcbi1cdFx0XHQgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgIDIxIDAgOSA2NCxcbi1cdFx0XHQgICAgICA0OCAwIDAgMzIsXG4tXHRcdFx0ICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAyMSAwIDYgMTkyLFxuLVx0XHRcdCAgICAgIDQ4IDAgMCA1Myxcbi1cdFx0XHQgICAgICAyMSAwIDQgMTIsXG4tXHRcdFx0ICAgICAgNDggMCAwIDY2LFxuLVx0XHRcdCAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgMjEgMCAxIDY0LFxuLVx0XHRcdCAgICAgIDYgMCAwIDY1NTM1LFxuLVx0XHRcdCAgICAgIDYgMCAwIDBcJiMzNDtcbi1cbiBpbml0X3BhcnRpYWwoKVxuIHtcbiBcdGNhcG91dD0kKG1rdGVtcClcbkBAIC0xNDcsNiAmIzQzOzExMCwxOCBAQCBpbml0X3BhcnRpYWwoKVxuIFx0XHRpZiAkY2hlY2tzdW07IHRoZW5cbiBcdFx0XHRpcCBuZXRucyBleGVjICRuZXRucyBzeXNjdGwgLXEgbmV0Lm1wdGNwLmNoZWNrc3VtX2VuYWJsZWQ9MVxuIFx0XHRmaVxuJiM0MztcbiYjNDM7XHRcdGZvciB0IGluIGlwIGlwNjsgZG9cbiYjNDM7XHRcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskbmV0bnNcJiMzNDsgbmZ0IGFkZCB0YWJsZSBcJiMzNDskdFwmIzM0OyBmaWx0ZXJcbiYjNDM7XHRcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskbmV0bnNcJiMzNDsgbmZ0IGFkZCBjaGFpbiBcJiMzNDskdFwmIzM0OyBmaWx0ZXIgSU5QVVQgXFxcbiYjNDM7XHRcdFx0XHQmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0mIzM5O1xuJiM0MztcdFx0XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuZXRuc1wmIzM0OyBuZnQgYWRkIGNoYWluIFwmIzM0OyR0XCYjMzQ7IGZpbHRlciBPVVRQVVQgXFxcbiYjNDM7XHRcdFx0XHQmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBvdXRwdXQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgYWNjZXB0OyB9JiMzOTtcbiYjNDM7XG4mIzQzO1x0XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5ldG5zXCYjMzQ7IG5mdCBhZGQgdGFibGUgXCYjMzQ7JHRcJiMzNDsgbWFuZ2xlXG4mIzQzO1x0XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5ldG5zXCYjMzQ7IG5mdCBhZGQgY2hhaW4gXCYjMzQ7JHRcJiMzNDsgbWFuZ2xlIE9VVFBVVCBcXFxuJiM0MztcdFx0XHRcdCYjMzk7eyB0eXBlIHJvdXRlIGhvb2sgb3V0cHV0IHByaW9yaXR5IG1hbmdsZTsgcG9saWN5IGFjY2VwdDsgfSYjMzk7XG4mIzQzO1x0XHRkb25lXG4gXHRkb25lXG4gXG4gXHRjaGVja19pbnZlcnQ9MFxuQEAgLTE5Niw3ICYjNDM7MTcxLDcgQEAgaW5pdCgpIHtcbiBcbiBcdG1wdGNwX2xpYl9jaGVja19tcHRjcFxuIFx0bXB0Y3BfbGliX2NoZWNrX2thbGxzeW1zXG4tXHRtcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgdGMgc3MgXCYjMzQ7JHtpcHRhYmxlc31cJiMzNDsgXCYjMzQ7JHtpcDZ0YWJsZXN9XCYjMzQ7XG4mIzQzO1x0bXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIHRjIHNzIG5mdFxuIFxuIFx0c2luPSQobWt0ZW1wKVxuIFx0c291dD0kKG1rdGVtcClcbkBAIC0zODAsMjQgJiM0MzszNTUsMTggQEAgcmVzZXRfd2l0aF9jb29raWVzKClcbiAjICQxOiB0ZXN0IG5hbWVcbiByZXNldF93aXRoX2FkZF9hZGRyX3RpbWVvdXQoKVxuIHtcbi1cdGxvY2FsIGlwPVwmIzM0OyR7MjotNH1cJiMzNDtcbi1cdGxvY2FsIHRhYmxlc1xuJiM0MztcdGxvY2FsIGlwPVwmIzM0OyR7MjotfVwmIzM0O1xuIFxuIFx0cmVzZXQgXCYjMzQ7JHsxfVwmIzM0OyB8fCByZXR1cm4gMVxuIFxuLVx0dGFibGVzPVwmIzM0OyR7aXB0YWJsZXN9XCYjMzQ7XG4tXHRpZiBbICRpcCAtZXEgNiBdOyB0aGVuXG4tXHRcdHRhYmxlcz1cJiMzNDske2lwNnRhYmxlc31cJiMzNDtcbi1cdGZpXG4tXG4gXHQjIHNldCBhIG1heGltdW0sIHRvIGF2b2lkIHRvbyBsb25nIHRpbWVvdXQgd2l0aCBleHBvbmVudGlhbCBiYWNrb2ZmXG4gXHRpcCBuZXRucyBleGVjICRuczEgc3lzY3RsIC1xIG5ldC5tcHRjcC5hZGRfYWRkcl90aW1lb3V0PTFcbiBcbi1cdGlmICEgaXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgLUEgT1VUUFVUIC1wIHRjcCBcXFxuLVx0XHRcdC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcbi1cdFx0XHQtbSBicGYgLS1ieXRlY29kZSBcXFxuLVx0XHRcdFwmIzM0OyRDQlBGX01QVENQX1NVQk9QVElPTl9BRERfQUREUlwmIzM0OyBcXFxuLVx0XHRcdC1qIERST1A7IHRoZW5cbiYjNDM7XHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcJiMzNDskbnMyXCYjMzQ7IG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxuJiM0MztcdFx0aXBcJiMzNDskaXBcJiMzNDsgZmlsdGVyIE9VVFBVVCBtZXRhIGw0cHJvdG8gdGNwIFxcXG4mIzQzO1x0XHR0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgYWRkLWFkZHIgXFxcbiYjNDM7XHRcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspXG4mIzQzO1x0aWYgWyAteiBcJiMzNDskbmZ0X2hhbmRsZVwmIzM0OyBdOyB0aGVuXG4gXHRcdG1hcmtfYXNfc2tpcHBlZCBcJiMzNDt1bmFibGUgdG8gc2V0IHRoZSAmIzM5O2FkZCBhZGRyJiMzOTsgcnVsZVwmIzM0O1xuIFx0XHRyZXR1cm4gMVxuIFx0ZmlcbkBAIC00NDksMjMgJiM0Mzs0MTgsMTcgQEAgc2V0dXBfZmFpbF9ydWxlcygpXG4gXHRjaGVja19pbnZlcnQ9MVxuIFx0dmFsaWRhdGVfY2hlY2tzdW09dHJ1ZVxuIFx0bG9jYWwgaT1cJiMzNDskMVwmIzM0O1xuLVx0bG9jYWwgaXA9XCYjMzQ7JHsyOi00fVwmIzM0O1xuLVx0bG9jYWwgdGFibGVzXG4mIzQzO1x0bG9jYWwgaXA9XCYjMzQ7JHsyOi19XCYjMzQ7XG4gXG4tXHR0YWJsZXM9XCYjMzQ7JHtpcHRhYmxlc31cJiMzNDtcbi1cdGlmIFsgJGlwIC1lcSA2IF07IHRoZW5cbi1cdFx0dGFibGVzPVwmIzM0OyR7aXA2dGFibGVzfVwmIzM0O1xuJiM0MztcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFwmIzM0OyRuczJcJiMzNDsgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFxcXG4mIzQzO1x0XHRpcFwmIzM0OyRpcFwmIzM0OyBtYW5nbGUgT1VUUFVUIG9pZm5hbWUgbnMyZXRoJGkgXFxcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgXFxcbiYjNDM7XHRcdG1ldGEgbGVuZ3RoIDE1MC05OTk5IG51bWdlbiBpbmMgbW9kIDk5OTk5IDEgXFxcbiYjNDM7XHRcdG1ldGEgbWFyayBzZXQgNDIgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspXG4mIzQzO1x0aWYgWyAteiBcJiMzNDskbmZ0X2hhbmRsZVwmIzM0OyBdOyB0aGVuXG4mIzQzO1x0XHRyZXR1cm4gJHtLU0ZUX1NLSVB9XG4gXHRmaVxuIFxuLVx0aXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgXFxcbi1cdFx0LXQgbWFuZ2xlIFxcXG4tXHRcdC1BIE9VVFBVVCBcXFxuLVx0XHQtbyBuczJldGgkaSBcXFxuLVx0XHQtcCB0Y3AgXFxcbi1cdFx0LW0gbGVuZ3RoIC0tbGVuZ3RoIDE1MDo5OTk5IFxcXG4tXHRcdC1tIHN0YXRpc3RpYyAtLW1vZGUgbnRoIC0tcGFja2V0IDEgLS1ldmVyeSA5OTk5OSBcXFxuLVx0XHQtaiBNQVJLIC0tc2V0LW1hcmsgNDIgfHwgcmV0dXJuICR7S1NGVF9TS0lQfVxuLVxuIFx0dGMgLW4gJG5zMiBxZGlzYyBhZGQgZGV2IG5zMmV0aCRpIGNsc2FjdCB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9XG4gXHR0YyAtbiAkbnMyIGZpbHRlciBhZGQgZGV2IG5zMmV0aCRpIGVncmVzcyBcXFxuIFx0XHRwcm90b2NvbCBpcCBwcmlvIDEwMDAgXFxcbkBAIC01MTUsMTEgJiM0Mzs0NzgsMTAgQEAgcmVzZXRfd2l0aF90Y3BfZmlsdGVyKClcbiBcdGxvY2FsIHRhcmdldD1cJiMzNDskezN9XCYjMzQ7XG4gXHRsb2NhbCBjaGFpbj1cJiMzNDskezQ6LUlOUFVUfVwmIzM0O1xuIFxuLVx0aWYgISBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnN9XCYjMzQ7ICR7aXB0YWJsZXN9IFxcXG4tXHRcdFx0LUEgXCYjMzQ7JHtjaGFpbn1cJiMzNDsgXFxcbi1cdFx0XHQtcyBcJiMzNDske3NyY31cJiMzNDsgXFxcbi1cdFx0XHQtcCB0Y3AgXFxcbi1cdFx0XHQtaiBcJiMzNDske3RhcmdldH1cJiMzNDs7IHRoZW5cbiYjNDM7XHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcJiMzNDskbnNcJiMzNDsgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFxcXG4mIzQzO1x0XHRpcCBmaWx0ZXIgXCYjMzQ7JHtjaGFpbn1cJiMzNDsgaXAgc2FkZHIgXCYjMzQ7eyAke3NyY30gfVwmIzM0OyBcXFxuJiM0MztcdFx0bWV0YSBsNHByb3RvIHRjcCBcJiMzNDske3RhcmdldCwsfVwmIzM0OyB8IGhlYWQgLW4xIHwgYXdrICYjMzk7e3ByaW50ICRORn0mIzM5OylcbiYjNDM7XHRpZiBbIC16IFwmIzM0OyRuZnRfaGFuZGxlXCYjMzQ7IF07IHRoZW5cbiBcdFx0bWFya19hc19za2lwcGVkIFwmIzM0O3VuYWJsZSB0byBzZXQgdGhlIGZpbHRlciBydWxlc1wmIzM0O1xuIFx0XHRyZXR1cm4gMVxuIFx0ZmlcbkBAIC00MzE1LDEwICYjNDM7NDI3NywxMiBAQCB1c2Vyc3BhY2VfdGVzdHMoKVxuIFxuIFx0XHQjIGZvcmNlIHF1aWNrIGxvc3NcbiBcdFx0aXAgbmV0bnMgZXhlYyAkbnMyIHN5c2N0bCAtcSBuZXQuaXB2NC50Y3Bfc3luX3JldHJpZXM9MVxuLVx0XHRpZiBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMxfVwmIzM0OyAke2lwdGFibGVzfSAtQSBJTlBVVCAtcyBcJiMzNDsxMC4wLjEuMlwmIzM0OyBcXFxuLVx0XHQgICAgICAtcCB0Y3AgLS10Y3Atb3B0aW9uIDMwIC1qIFJFSkVDVCAtLXJlamVjdC13aXRoIHRjcC1yZXNldCBcdTAwMjZcdTAwMjZcbi1cdFx0ICAgaXAgbmV0bnMgZXhlYyBcJiMzNDske25zMn1cJiMzNDsgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgXCYjMzQ7MTAuMC4xLjJcJiMzNDsgXFxcbi1cdFx0ICAgICAgLXAgdGNwIC0tdGNwLW9wdGlvbiAzMCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCB0Y3AtcmVzZXQ7IHRoZW5cbiYjNDM7XHRcdGlmIGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczF9XCYjMzQ7IG5mdCBhZGQgcnVsZSBpcCBmaWx0ZXIgSU5QVVQgXFxcbiYjNDM7XHRcdFx0aXAgc2FkZHIgXCYjMzQ7MTAuMC4xLjJcJiMzNDsgbWV0YSBsNHByb3RvIHRjcCBcXFxuJiM0MztcdFx0XHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFxcXG4mIzQzO1x0XHRcdGlwIGRhZGRyIFwmIzM0OzEwLjAuMS4yXCYjMzQ7IG1ldGEgbDRwcm90byB0Y3AgXFxcbiYjNDM7XHRcdFx0dGNwIG9wdGlvbiBtcHRjcCBleGlzdHMgcmVqZWN0IHdpdGggdGNwIHJlc2V0OyB0aGVuXG4gXHRcdFx0d2FpdF9ldmVudCBuczIgTVBUQ1BfTElCX0VWRU5UX1NVQl9DTE9TRUQgMVxuIFx0XHRcdHdhaXRfZXZlbnQgbnMxIE1QVENQX0xJQl9FVkVOVF9TVUJfQ0xPU0VEIDFcbiBcdFx0XHRjaGtfc3ViZmxvd3NfdG90YWwgMSAxXG5AQCAtNDM5Myw3ICYjNDM7NDM1Nyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0Y2hrX3N1YmZsb3dfbnIgXCYjMzQ7YWZ0ZXIgbmV3IHJlamVjdFwmIzM0OyAyXG4gXHRcdGNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDEgc3ViZmxvd3MgMVxuIFxuLVx0XHRpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgXCYjMzQ7MTAuMC4zLjJcJiMzNDsgLXAgdGNwIC1qIFJFSkVDVFxuJiM0MztcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDske25zMn1cJiMzNDsgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlIFwmIzM0OyRuZnRfaGFuZGxlXCYjMzQ7XG4gXHRcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDMgMTAuMC4zLjJcbiBcdFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93XG4gXHRcdHdhaXRfbXBqIDNcbkBAIC00NDAyLDEyICYjNDM7NDM2NiwxMCBAQCBlbmRwb2ludF90ZXN0cygpXG4gXG4gXHRcdCMgVG8gbWFrZSBzdXJlIFJNX0FERFIgYXJlIHNlbnQgb3ZlciBhIGRpZmZlcmVudCBzdWJmbG93LCBidXRcbiBcdFx0IyBhbGxvdyB0aGUgcmVzdCB0byBxdWlja2x5IGFuZCBjbGVhbmx5IGNsb3NlIHRoZSBzdWJmbG93XG4tXHRcdGxvY2FsIGlwdD0xXG4tXHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczJ9XCYjMzQ7ICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyBcJiMzNDsxMC4wLjEuMlwmIzM0OyBcXFxuLVx0XHRcdC1wIHRjcCAtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXG4tXHRcdFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcbi1cdFx0XHRcJiMzNDskQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUlwmIzM0OyBcXFxuLVx0XHRcdC1qIERST1AgfHwgaXB0PTBcbiYjNDM7XHRcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyBuZnQgLWUgLS1oYW5kbGUgaW5zZXJ0IHJ1bGUgXFxcbiYjNDM7XHRcdFx0aXAgZmlsdGVyIE9VVFBVVCBpcCBzYWRkciAxMC4wLjEuMiBtZXRhIGw0cHJvdG8gdGNwIFxcXG4mIzQzO1x0XHRcdHRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcXFxuJiM0MztcdFx0XHRkcm9wIHwgaGVhZCAtbjEgfCBhd2sgJiMzOTt7cHJpbnQgJE5GfSYjMzk7KVxuIFx0XHRsb2NhbCBpXG4gXHRcdGZvciBpIGluICQoc2VxIDMpOyBkb1xuIFx0XHRcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDEgMTAuMC4xLjJcbkBAIC00NDIwLDcgJiM0Mzs0MzgyLDggQEAgZW5kcG9pbnRfdGVzdHMoKVxuIFx0XHRcdGNoa19zdWJmbG93X25yIFwmIzM0O2FmdGVyIHJlLWFkZCBpZCAwICgkaSlcJiMzNDsgM1xuIFx0XHRcdGNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDMgc3ViZmxvd3MgM1xuIFx0XHRkb25lXG4tXHRcdFsgJHtpcHR9ID0gMSBdIFx1MDAyNlx1MDAyNiBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuJiM0MztcdFx0WyAtbiBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7IF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczJ9XCYjMzQ7IG5mdCBkZWxldGUgcnVsZSBcXFxuJiM0MztcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7XG4gXG4gXHRcdG1wdGNwX2xpYl9raWxsX2dyb3VwX3dhaXQgJHRlc3RzX3BpZFxuIFxuQEAgLTQ0ODIsMTggJiM0Mzs0NDQ1LDE3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcbiBcdFx0IyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dFxuIFx0XHQjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3dcbi1cdFx0bG9jYWwgaXB0PTFcbi1cdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDske25zMX1cJiMzNDsgJHtpcHRhYmxlc30gLUkgT1VUUFVUIC1zIFwmIzM0OzEwLjAuMS4xXCYjMzQ7IFxcXG4tXHRcdFx0LXAgdGNwIC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcbi1cdFx0XHQtbSBicGYgLS1ieXRlY29kZSBcXFxuLVx0XHRcdFwmIzM0OyRDQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSXCYjMzQ7IFxcXG4tXHRcdFx0LWogRFJPUCB8fCBpcHQ9MFxuJiM0MztcdFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczF9XCYjMzQ7IG5mdCAtZSAtLWhhbmRsZSBpbnNlcnQgcnVsZSBcXFxuJiM0MztcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGlwIHNhZGRyIDEwLjAuMS4xIG1ldGEgbDRwcm90byB0Y3AgXFxcbiYjNDM7XHRcdFx0dGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIHJlbW92ZS1hZGRyIFxcXG4mIzQzO1x0XHRcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspXG4gXHRcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMxIDQyIDEwLjAuMS4xXG4gXHRcdHNsZWVwIDAuNVxuIFx0XHRjaGtfc3ViZmxvd19uciBcJiMzNDthZnRlciBkZWxldGUgSUQgMFwmIzM0OyAyXG4gXHRcdGNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDIgc3ViZmxvd3MgMlxuIFx0XHRjaGtfbXB0Y3BfaW5mbyBhZGRfYWRkcl9zaWduYWwgMiBhZGRfYWRkcl9hY2NlcHRlZCAyXG4tXHRcdFsgJHtpcHR9ID0gMSBdIFx1MDAyNlx1MDAyNiBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMxfVwmIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuJiM0MztcdFx0WyAtbiBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7IF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczF9XCYjMzQ7IG5mdCBkZWxldGUgcnVsZSBcXFxuJiM0MztcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7XG4gXG4gXHRcdHBtX25sX2FkZF9lbmRwb2ludCAkbnMxIDEwLjAuMS4xIGlkIDQyIGZsYWdzIHNpZ25hbFxuIFx0XHR3YWl0X21waiA0XG5AQCAtNDU1NSw3ICYjNDM7NDUxNyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0cG1fbmxfZmx1c2hfZW5kcG9pbnQgJG5zMlxuIFx0XHRwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMxXG4gXHRcdHdhaXRfcm1fYWRkciAkbnMyIDBcbi1cdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDske25zMn1cJiMzNDsgJHtpcHRhYmxlc30gLUQgT1VUUFVUIC1zIFwmIzM0OzEwLjAuMy4yXCYjMzQ7IC1wIHRjcCAtaiBSRUpFQ1RcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczJ9XCYjMzQ7IG5mdCBkZWxldGUgcnVsZSBpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcJiMzNDskbmZ0X2hhbmRsZVwmIzM0O1xuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3dcbiBcdFx0d2FpdF9tcGogMVxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjMuMSBpZCAyIGZsYWdzIHNpZ25hbFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoXG5pbmRleCA1ZWY2MDMzNzc1Yzg2Li5lYmE2OTAzMjMzY2NmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuQEAgLTUyNCw3ICYjNDM7NTI0LDcgQEAgbXB0Y3BfbGliX2NoZWNrX3Rvb2xzKCkge1xuIFx0XHRcdFx0ZXhpdCAke0tTRlRfU0tJUH1cbiBcdFx0XHRmaVxuIFx0XHRcdDs7XG4tXHRcdFwmIzM0O2lwdGFibGVzXCYjMzQ7KiB8IFwmIzM0O2lwNnRhYmxlc1wmIzM0OyopXG4mIzQzO1x0XHRcJiMzNDtpcHRhYmxlc1wmIzM0OyogfCBcJiMzNDtpcDZ0YWJsZXNcJiMzNDsqIHwgXCYjMzQ7bmZ0XCYjMzQ7KilcbiBcdFx0XHRpZiAhIFwmIzM0OyR7dG9vbH1cJiMzNDsgLVYgXHUwMDI2XHUwMDNlIC9kZXYvbnVsbDsgdGhlblxuIFx0XHRcdFx0bXB0Y3BfbGliX3ByX3NraXAgXCYjMzQ7Q291bGQgbm90IHJ1biBhbGwgdGVzdHMgd2l0aG91dCAke3Rvb2x9XCYjMzQ7XG4gXHRcdFx0XHRleGl0ICR7S1NGVF9TS0lQfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcbmluZGV4IGU4NTBhODc0MjliNjEuLmEyYzIwNDgzOTg2ZGMgMTAwNzU1XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcbkBAIC0xNSw4ICYjNDM7MTUsNiBAQCBjaW49XCYjMzQ7XCYjMzQ7XG4gY291dD1cJiMzNDtcJiMzNDtcbiB0aW1lb3V0X3BvbGw9MzBcbiB0aW1lb3V0X3Rlc3Q9JCgodGltZW91dF9wb2xsICogMiAmIzQzOyAxKSlcbi1pcHRhYmxlcz1cJiMzNDtpcHRhYmxlc1wmIzM0O1xuLWlwNnRhYmxlcz1cJiMzNDtpcDZ0YWJsZXNcJiMzNDtcbiBcbiBuczE9XCYjMzQ7XCYjMzQ7XG4gbnMyPVwmIzM0O1wmIzM0O1xuQEAgLTUwLDE1ICYjNDM7NDgsMjUgQEAgYWRkX21hcmtfcnVsZXMoKVxuIFx0bG9jYWwgbT0kMlxuIFxuIFx0bG9jYWwgdFxuLVx0Zm9yIHQgaW4gJHtpcHRhYmxlc30gJHtpcDZ0YWJsZXN9OyBkb1xuJiM0MztcdGZvciB0IGluIGlwIGlwNjsgZG9cbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBhZGQgdGFibGUgXCYjMzQ7JHRcJiMzNDsgZmlsdGVyXG4mIzQzO1x0XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuc1wmIzM0OyBuZnQgYWRkIGNoYWluIFwmIzM0OyR0XCYjMzQ7IGZpbHRlciBPVVRQVVQgXFxcbiYjNDM7XHRcdFx0JiMzOTt7IHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IDA7IHBvbGljeSBhY2NlcHQ7IH0mIzM5O1xuJiM0MztcbiBcdFx0IyBqdXN0IHRvIGRlYnVnOiBjaGVjayB3ZSBoYXZlIG11bHRpcGxlIHN1YmZsb3dzIGNvbm5lY3Rpb24gcmVxdWVzdHNcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXN5biAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBhZGQgcnVsZSBcJiMzNDskdFwmIzM0OyBmaWx0ZXIgT1VUUFVUIFxcXG4mIzQzO1x0XHRcdHRjcCBmbGFncyBcXFx1MDAyNiBcXChmaW4gXFx8IHN5biBcXHwgcnN0IFxcfCBhY2tcXCkgPT0gc3luIFxcXG4mIzQzO1x0XHRcdG1ldGEgbWFyayBcJiMzNDskbVwmIzM0OyBhY2NlcHRcbiBcbiBcdFx0IyBSU1QgcGFja2V0cyBtaWdodCBiZSBoYW5kbGVkIGJ5IGEgaW50ZXJuYWwgZHVtbXkgc29ja2V0XG4tXHRcdGlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLS10Y3AtZmxhZ3MgUlNUIFJTVCAtbSBtYXJrIC0tbWFyayAwIC1qIEFDQ0VQVFxuJiM0MztcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskbnNcJiMzNDsgbmZ0IGFkZCBydWxlIFwmIzM0OyR0XCYjMzQ7IGZpbHRlciBPVVRQVVQgXFxcbiYjNDM7XHRcdFx0dGNwIGZsYWdzIFxcXHUwMDI2IHJzdCA9PSByc3QgbWV0YSBtYXJrIDB4MCBhY2NlcHRcbiYjNDM7XG4mIzQzO1x0XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuc1wmIzM0OyBuZnQgYWRkIHJ1bGUgXCYjMzQ7JHRcJiMzNDsgZmlsdGVyIE9VVFBVVCBcXFxuJiM0MztcdFx0XHRtZXRhIGw0cHJvdG8gdGNwIG1ldGEgbWFyayBcJiMzNDskbVwmIzM0OyBhY2NlcHRcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBhZGQgcnVsZSBcJiMzNDskdFwmIzM0OyBmaWx0ZXIgT1VUUFVUIFxcXG4mIzQzO1x0XHRcdG1ldGEgbDRwcm90byB0Y3AgbWV0YSBtYXJrIDAgY291bnRlciBkcm9wXG4gXG4tXHRcdGlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLW0gbWFyayAtLW1hcmsgJG0gLWogQUNDRVBUXG4tXHRcdGlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLW0gbWFyayAtLW1hcmsgMCAtaiBEUk9QXG4gXHRkb25lXG4gfVxuIFxuQEAgLTEwNSwzMiAmIzQzOzExMywyOSBAQCBjbGVhbnVwKClcbiBcbiBtcHRjcF9saWJfY2hlY2tfbXB0Y3BcbiBtcHRjcF9saWJfY2hlY2tfa2FsbHN5bXNcbi1tcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgXCYjMzQ7JHtpcHRhYmxlc31cJiMzNDsgXCYjMzQ7JHtpcDZ0YWJsZXN9XCYjMzQ7XG4mIzQzO21wdGNwX2xpYl9jaGVja190b29scyBpcCBuZnRcbiBcbiBjaGVja19tYXJrKClcbiB7XG4gXHRsb2NhbCBucz0kMVxuIFx0bG9jYWwgYWY9JDJcbiBcbi1cdGxvY2FsIHRhYmxlcz0ke2lwdGFibGVzfVxuJiM0MztcdGxvY2FsIHRhYmxlcz1cJiMzNDtpcFwmIzM0O1xuIFxuIFx0aWYgWyAkYWYgLWVxIDYgXTt0aGVuXG4tXHRcdHRhYmxlcz0ke2lwNnRhYmxlc31cbiYjNDM7XHRcdHRhYmxlcz1cJiMzNDtpcDZcJiMzNDtcbiBcdGZpXG4gXG4tXHRsb2NhbCBjb3VudGVycyB2YWx1ZXNcbi1cdGNvdW50ZXJzPSQoaXAgbmV0bnMgZXhlYyAkbnMgJHRhYmxlcyAtdiAtTCBPVVRQVVQgfCBncmVwIERST1ApXG4tXHR2YWx1ZXM9JHtjb3VudGVycyVEUk9QKn1cbi1cbi1cdGxvY2FsIHZcbi1cdGZvciB2IGluICR2YWx1ZXM7IGRvXG4tXHRcdGlmIFsgJHYgLW5lIDAgXTsgdGhlblxuLVx0XHRcdG1wdGNwX2xpYl9wcl9mYWlsIFwmIzM0O2dvdCAkdGFibGVzICR2YWx1ZXMgaW4gbnMgJG5zLFwmIzM0OyBcXFxuLVx0XHRcdFx0XHQgIFwmIzM0O25vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZFwmIzM0O1xuLVx0XHRcdHJldD0ke0tTRlRfRkFJTH1cbi1cdFx0XHRyZXR1cm4gMVxuLVx0XHRmaVxuLVx0ZG9uZVxuJiM0MztcdGxvY2FsIHZhbHVlc1xuJiM0MztcdHZhbHVlcz0kKGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBsaXN0IHRhYmxlIFwmIzM0OyR0YWJsZXNcJiMzNDsgZmlsdGVyIHwgXFxcbiYjNDM7XHRcdGdyZXAgLW8gXCYjMzQ7cGFja2V0cy4qZHJvcFwmIzM0OyB8IGF3ayAmIzM5O3twcmludCAkMn0mIzM5OylcbiYjNDM7XG4mIzQzO1x0aWYgW1sgISBcJiMzNDskdmFsdWVzXCYjMzQ7ID1+IF5bMC05XSYjNDM7JCBdXSB8fCBbIFwmIzM0OyR2YWx1ZXNcJiMzNDsgLW5lIDAgXTsgdGhlblxuJiM0MztcdFx0bXB0Y3BfbGliX3ByX2ZhaWwgXCYjMzQ7Z290ICR0YWJsZXMgJHZhbHVlcyBpbiBucyAkbnMsXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdFx0ICBcJiMzNDtub3QgMCAtIG5vdCBhbGwgZXhwZWN0ZWQgcGFja2V0cyBtYXJrZWRcJiMzNDtcbiYjNDM7XHRcdHJldD0ke0tTRlRfRkFJTH1cbiYjNDM7XHRcdHJldHVybiAxXG4mIzQzO1x0ZmlcbiBcbiBcdHJldHVybiAwXG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAwOjU5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWM0Y2NiZjcwYjUxNjVmMmYzM2QxNWQ4MjhkMzQ5Zjc4NWQ5YjgxZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgU2VwIDQgMDA6NTk6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZwppbmRleCA1OTA1MWVlMmE5ODYwLi4wZDBhNzQ0YzRjYTg5IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWcKQEAgLTMwLDYgJiM0MzszMCw5IEBAIENPTkZJR19ORVRfU0NIX05FVEVNPW0KIENPTkZJR19ORl9UQUJMRVM9bQogQ09ORklHX05GX1RBQkxFU19JTkVUPXkKIENPTkZJR19ORlRfQ09NUEFUPW0KJiM0MztDT05GSUdfTkZUX05VTUdFTj15CiYjNDM7Q09ORklHX05GVF9SRUpFQ1Q9bQomIzQzO0NPTkZJR19ORlRfUkVKRUNUX0lQVjQ9bQogQ09ORklHX05GVF9TT0NLRVQ9bQogQ09ORklHX05GVF9UUFJPWFk9bQogQ09ORklHX1NZTl9DT09LSUVTPXkKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2gKaW5kZXggMThjZTcxMzZhMmIwZS4uN2M1NjY4MGNjNDIyMSAxMDA3NTUKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2gKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2gKQEAgLTI2LDggJiM0MzsyNiw2IEBAIGNhcG91dD0mIzM0OyYjMzQ7CiBjYXBwaWQ9JiMzNDsmIzM0OwogbnMxPSYjMzQ7JiMzNDsKIG5zMj0mIzM0OyYjMzQ7Ci1pcHRhYmxlcz0mIzM0O2lwdGFibGVzJiMzNDsKLWlwNnRhYmxlcz0mIzM0O2lwNnRhYmxlcyYjMzQ7CiB0aW1lb3V0X3BvbGw9MzAKIHRpbWVvdXRfdGVzdD0kKCh0aW1lb3V0X3BvbGwgKiAyICYjNDM7IDEpKQogY2FwdHVyZT1mYWxzZQpAQCAtNTAsNiAmIzQzOzQ4LDcgQEAgZGVjbGFyZSAtQSBmYWlsZWRfdGVzdHMKIE1QVENQX0xJQl9URVNUX0ZPUk1BVD0mIzM0OyUwM3UgJXNcbiYjMzQ7CiBURVNUX05BTUU9JiMzNDsmIzM0OwogbnJfYmxhbms9NgomIzQzO25mdF9oYW5kbGU9JiMzNDsmIzM0OwogCiAjIFRoZXNlIHZhciBhcmUgdXNlZCBvbmx5IGluIHNvbWUgdGVzdHMsIG1ha2Ugc3VyZSB0aGV5IGFyZSBub3QgYWxyZWFkeSBzZXQKIHVuc2V0IEZBSUxJTkdfTElOS1MKQEAgLTk5LDQyICYjNDM7OTgsNiBAQCB1bnNldCBhZGRfYWRkcl90eF9ucgogdW5zZXQgYWRkX2FkZHJfZWNob190eF9ucgogdW5zZXQgYWRkX2FkZHJfZHJvcF90eF9ucgogCi0jIGdlbmVyYXRlZCB1c2luZyAmIzM0O25mYnBmX2NvbXBpbGUgJiMzOTsoaXAgJmFtcDsmYW1wOyAoaXBbNTRdICZhbXA7IDB4ZjApID09IDB4MzApIHx8Ci0jCQkJCSAgKGlwNiAmYW1wOyZhbXA7IChpcDZbNzRdICZhbXA7IDB4ZjApID09IDB4MzApJiMzOTsmIzM0OwotQ0JQRl9NUFRDUF9TVUJPUFRJT05fQUREX0FERFI9JiMzNDsxNCwKLQkJCSAgICAgICA0OCAwIDAgMCwKLQkJCSAgICAgICA4NCAwIDAgMjQwLAotCQkJICAgICAgIDIxIDAgMyA2NCwKLQkJCSAgICAgICA0OCAwIDAgNTQsCi0JCQkgICAgICAgODQgMCAwIDI0MCwKLQkJCSAgICAgICAyMSA2IDcgNDgsCi0JCQkgICAgICAgNDggMCAwIDAsCi0JCQkgICAgICAgODQgMCAwIDI0MCwKLQkJCSAgICAgICAyMSAwIDQgOTYsCi0JCQkgICAgICAgNDggMCAwIDc0LAotCQkJICAgICAgIDg0IDAgMCAyNDAsCi0JCQkgICAgICAgMjEgMCAxIDQ4LAotCQkJICAgICAgIDYgMCAwIDY1NTM1LAotCQkJICAgICAgIDYgMCAwIDAmIzM0OwotCi0jIElQdjQ6IFRDUCBoZHIgb2YgNDhCLCBhIGZpcnN0IHN1Ym9wdGlvbiBvZiAxMkIgKERBQ0s4KSwgdGhlIFJNX0FERFIgc3Vib3B0aW9uCi0jIGdlbmVyYXRlZCB1c2luZyAmIzM0O25mYnBmX2NvbXBpbGUgJiMzOTsoaXBbMzJdICZhbXA7IDB4ZjApID09IDB4YzAgJmFtcDsmYW1wOyBpcFs1M10gPT0gMHgwYyAmYW1wOyZhbXA7Ci0jCQkJCSAgKGlwWzY2XSAmYW1wOyAweGYwKSA9PSAweDQwJiMzOTsmIzM0OwotQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUj0mIzM0OzEzLAotCQkJICAgICAgNDggMCAwIDAsCi0JCQkgICAgICA4NCAwIDAgMjQwLAotCQkJICAgICAgMjEgMCA5IDY0LAotCQkJICAgICAgNDggMCAwIDMyLAotCQkJICAgICAgODQgMCAwIDI0MCwKLQkJCSAgICAgIDIxIDAgNiAxOTIsCi0JCQkgICAgICA0OCAwIDAgNTMsCi0JCQkgICAgICAyMSAwIDQgMTIsCi0JCQkgICAgICA0OCAwIDAgNjYsCi0JCQkgICAgICA4NCAwIDAgMjQwLAotCQkJICAgICAgMjEgMCAxIDY0LAotCQkJICAgICAgNiAwIDAgNjU1MzUsCi0JCQkgICAgICA2IDAgMCAwJiMzNDsKLQogaW5pdF9wYXJ0aWFsKCkKIHsKIAljYXBvdXQ9JChta3RlbXApCkBAIC0xNDcsNiAmIzQzOzExMCwxOCBAQCBpbml0X3BhcnRpYWwoKQogCQlpZiAkY2hlY2tzdW07IHRoZW4KIAkJCWlwIG5ldG5zIGV4ZWMgJG5ldG5zIHN5c2N0bCAtcSBuZXQubXB0Y3AuY2hlY2tzdW1fZW5hYmxlZD0xCiAJCWZpCiYjNDM7CiYjNDM7CQlmb3IgdCBpbiBpcCBpcDY7IGRvCiYjNDM7CQkJaXAgbmV0bnMgZXhlYyAmIzM0OyRuZXRucyYjMzQ7IG5mdCBhZGQgdGFibGUgJiMzNDskdCYjMzQ7IGZpbHRlcgomIzQzOwkJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbmV0bnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBmaWx0ZXIgSU5QVVQgXAomIzQzOwkJCQkmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0mIzM5OwomIzQzOwkJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbmV0bnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBmaWx0ZXIgT1VUUFVUIFwKJiM0MzsJCQkJJiMzOTt7IHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDsgfSYjMzk7CiYjNDM7CiYjNDM7CQkJaXAgbmV0bnMgZXhlYyAmIzM0OyRuZXRucyYjMzQ7IG5mdCBhZGQgdGFibGUgJiMzNDskdCYjMzQ7IG1hbmdsZQomIzQzOwkJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbmV0bnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBtYW5nbGUgT1VUUFVUIFwKJiM0MzsJCQkJJiMzOTt7IHR5cGUgcm91dGUgaG9vayBvdXRwdXQgcHJpb3JpdHkgbWFuZ2xlOyBwb2xpY3kgYWNjZXB0OyB9JiMzOTsKJiM0MzsJCWRvbmUKIAlkb25lCiAKIAljaGVja19pbnZlcnQ9MApAQCAtMTk2LDcgJiM0MzsxNzEsNyBAQCBpbml0KCkgewogCiAJbXB0Y3BfbGliX2NoZWNrX21wdGNwCiAJbXB0Y3BfbGliX2NoZWNrX2thbGxzeW1zCi0JbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIHRjIHNzICYjMzQ7JHtpcHRhYmxlc30mIzM0OyAmIzM0OyR7aXA2dGFibGVzfSYjMzQ7CiYjNDM7CW1wdGNwX2xpYl9jaGVja190b29scyBpcCB0YyBzcyBuZnQKIAogCXNpbj0kKG1rdGVtcCkKIAlzb3V0PSQobWt0ZW1wKQpAQCAtMzgwLDI0ICYjNDM7MzU1LDE4IEBAIHJlc2V0X3dpdGhfY29va2llcygpCiAjICQxOiB0ZXN0IG5hbWUKIHJlc2V0X3dpdGhfYWRkX2FkZHJfdGltZW91dCgpCiB7Ci0JbG9jYWwgaXA9JiMzNDskezI6LTR9JiMzNDsKLQlsb2NhbCB0YWJsZXMKJiM0MzsJbG9jYWwgaXA9JiMzNDskezI6LX0mIzM0OwogCiAJcmVzZXQgJiMzNDskezF9JiMzNDsgfHwgcmV0dXJuIDEKIAotCXRhYmxlcz0mIzM0OyR7aXB0YWJsZXN9JiMzNDsKLQlpZiBbICRpcCAtZXEgNiBdOyB0aGVuCi0JCXRhYmxlcz0mIzM0OyR7aXA2dGFibGVzfSYjMzQ7Ci0JZmkKLQogCSMgc2V0IGEgbWF4aW11bSwgdG8gYXZvaWQgdG9vIGxvbmcgdGltZW91dCB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmYKIAlpcCBuZXRucyBleGVjICRuczEgc3lzY3RsIC1xIG5ldC5tcHRjcC5hZGRfYWRkcl90aW1lb3V0PTEKIAotCWlmICEgaXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgLUEgT1VUUFVUIC1wIHRjcCBcCi0JCQktbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFwKLQkJCS1tIGJwZiAtLWJ5dGVjb2RlIFwKLQkJCSYjMzQ7JENCUEZfTVBUQ1BfU1VCT1BUSU9OX0FERF9BRERSJiMzNDsgXAotCQkJLWogRFJPUDsgdGhlbgomIzQzOwluZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyAmIzM0OyRuczImIzM0OyBuZnQgLWUgLS1oYW5kbGUgYWRkIHJ1bGUgXAomIzQzOwkJaXAmIzM0OyRpcCYjMzQ7IGZpbHRlciBPVVRQVVQgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQl0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgYWRkLWFkZHIgXAomIzQzOwkJZHJvcCB8IGhlYWQgLW4xIHwgYXdrICYjMzk7e3ByaW50ICRORn0mIzM5OykKJiM0MzsJaWYgWyAteiAmIzM0OyRuZnRfaGFuZGxlJiMzNDsgXTsgdGhlbgogCQltYXJrX2FzX3NraXBwZWQgJiMzNDt1bmFibGUgdG8gc2V0IHRoZSAmIzM5O2FkZCBhZGRyJiMzOTsgcnVsZSYjMzQ7CiAJCXJldHVybiAxCiAJZmkKQEAgLTQ0OSwyMyAmIzQzOzQxOCwxNyBAQCBzZXR1cF9mYWlsX3J1bGVzKCkKIAljaGVja19pbnZlcnQ9MQogCXZhbGlkYXRlX2NoZWNrc3VtPXRydWUKIAlsb2NhbCBpPSYjMzQ7JDEmIzM0OwotCWxvY2FsIGlwPSYjMzQ7JHsyOi00fSYjMzQ7Ci0JbG9jYWwgdGFibGVzCiYjNDM7CWxvY2FsIGlwPSYjMzQ7JHsyOi19JiMzNDsKIAotCXRhYmxlcz0mIzM0OyR7aXB0YWJsZXN9JiMzNDsKLQlpZiBbICRpcCAtZXEgNiBdOyB0aGVuCi0JCXRhYmxlcz0mIzM0OyR7aXA2dGFibGVzfSYjMzQ7CiYjNDM7CW5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjICYjMzQ7JG5zMiYjMzQ7IG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcCiYjNDM7CQlpcCYjMzQ7JGlwJiMzNDsgbWFuZ2xlIE9VVFBVVCBvaWZuYW1lIG5zMmV0aCRpIFwKJiM0MzsJCW1ldGEgbDRwcm90byB0Y3AgXAomIzQzOwkJbWV0YSBsZW5ndGggMTUwLTk5OTkgbnVtZ2VuIGluYyBtb2QgOTk5OTkgMSBcCiYjNDM7CQltZXRhIG1hcmsgc2V0IDQyIHwgaGVhZCAtbjEgfCBhd2sgJiMzOTt7cHJpbnQgJE5GfSYjMzk7KQomIzQzOwlpZiBbIC16ICYjMzQ7JG5mdF9oYW5kbGUmIzM0OyBdOyB0aGVuCiYjNDM7CQlyZXR1cm4gJHtLU0ZUX1NLSVB9CiAJZmkKIAotCWlwIG5ldG5zIGV4ZWMgJG5zMiAkdGFibGVzIFwKLQkJLXQgbWFuZ2xlIFwKLQkJLUEgT1VUUFVUIFwKLQkJLW8gbnMyZXRoJGkgXAotCQktcCB0Y3AgXAotCQktbSBsZW5ndGggLS1sZW5ndGggMTUwOjk5OTkgXAotCQktbSBzdGF0aXN0aWMgLS1tb2RlIG50aCAtLXBhY2tldCAxIC0tZXZlcnkgOTk5OTkgXAotCQktaiBNQVJLIC0tc2V0LW1hcmsgNDIgfHwgcmV0dXJuICR7S1NGVF9TS0lQfQotCiAJdGMgLW4gJG5zMiBxZGlzYyBhZGQgZGV2IG5zMmV0aCRpIGNsc2FjdCB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9CiAJdGMgLW4gJG5zMiBmaWx0ZXIgYWRkIGRldiBuczJldGgkaSBlZ3Jlc3MgXAogCQlwcm90b2NvbCBpcCBwcmlvIDEwMDAgXApAQCAtNTE1LDExICYjNDM7NDc4LDEwIEBAIHJlc2V0X3dpdGhfdGNwX2ZpbHRlcigpCiAJbG9jYWwgdGFyZ2V0PSYjMzQ7JHszfSYjMzQ7CiAJbG9jYWwgY2hhaW49JiMzNDskezQ6LUlOUFVUfSYjMzQ7CiAKLQlpZiAhIGlwIG5ldG5zIGV4ZWMgJiMzNDske25zfSYjMzQ7ICR7aXB0YWJsZXN9IFwKLQkJCS1BICYjMzQ7JHtjaGFpbn0mIzM0OyBcCi0JCQktcyAmIzM0OyR7c3JjfSYjMzQ7IFwKLQkJCS1wIHRjcCBcCi0JCQktaiAmIzM0OyR7dGFyZ2V0fSYjMzQ7OyB0aGVuCiYjNDM7CW5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjICYjMzQ7JG5zJiMzNDsgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFwKJiM0MzsJCWlwIGZpbHRlciAmIzM0OyR7Y2hhaW59JiMzNDsgaXAgc2FkZHIgJiMzNDt7ICR7c3JjfSB9JiMzNDsgXAomIzQzOwkJbWV0YSBsNHByb3RvIHRjcCAmIzM0OyR7dGFyZ2V0LCx9JiMzNDsgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspCiYjNDM7CWlmIFsgLXogJiMzNDskbmZ0X2hhbmRsZSYjMzQ7IF07IHRoZW4KIAkJbWFya19hc19za2lwcGVkICYjMzQ7dW5hYmxlIHRvIHNldCB0aGUgZmlsdGVyIHJ1bGVzJiMzNDsKIAkJcmV0dXJuIDEKIAlmaQpAQCAtNDMxNSwxMCAmIzQzOzQyNzcsMTIgQEAgdXNlcnNwYWNlX3Rlc3RzKCkKIAogCQkjIGZvcmNlIHF1aWNrIGxvc3MKIAkJaXAgbmV0bnMgZXhlYyAkbnMyIHN5c2N0bCAtcSBuZXQuaXB2NC50Y3Bfc3luX3JldHJpZXM9MQotCQlpZiBpcCBuZXRucyBleGVjICYjMzQ7JHtuczF9JiMzNDsgJHtpcHRhYmxlc30gLUEgSU5QVVQgLXMgJiMzNDsxMC4wLjEuMiYjMzQ7IFwKLQkJICAgICAgLXAgdGNwIC0tdGNwLW9wdGlvbiAzMCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCB0Y3AtcmVzZXQgJmFtcDsmYW1wOwotCQkgICBpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgJiMzNDsxMC4wLjEuMiYjMzQ7IFwKLQkJICAgICAgLXAgdGNwIC0tdGNwLW9wdGlvbiAzMCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCB0Y3AtcmVzZXQ7IHRoZW4KJiM0MzsJCWlmIGlwIG5ldG5zIGV4ZWMgJiMzNDske25zMX0mIzM0OyBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFwKJiM0MzsJCQlpcCBzYWRkciAmIzM0OzEwLjAuMS4yJiMzNDsgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQkJdGNwIG9wdGlvbiBtcHRjcCBleGlzdHMgcmVqZWN0IHdpdGggdGNwIHJlc2V0ICZhbXA7JmFtcDsKJiM0MzsJCSAgIGlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFwKJiM0MzsJCQlpcCBkYWRkciAmIzM0OzEwLjAuMS4yJiMzNDsgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQkJdGNwIG9wdGlvbiBtcHRjcCBleGlzdHMgcmVqZWN0IHdpdGggdGNwIHJlc2V0OyB0aGVuCiAJCQl3YWl0X2V2ZW50IG5zMiBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxCiAJCQl3YWl0X2V2ZW50IG5zMSBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxCiAJCQljaGtfc3ViZmxvd3NfdG90YWwgMSAxCkBAIC00MzkzLDcgJiM0Mzs0MzU3LDcgQEAgZW5kcG9pbnRfdGVzdHMoKQogCQljaGtfc3ViZmxvd19uciAmIzM0O2FmdGVyIG5ldyByZWplY3QmIzM0OyAyCiAJCWNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDEgc3ViZmxvd3MgMQogCi0JCWlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgJiMzNDsxMC4wLjMuMiYjMzQ7IC1wIHRjcCAtaiBSRUpFQ1QKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyBuZnQgZGVsZXRlIHJ1bGUgaXAgZmlsdGVyIE9VVFBVVCBoYW5kbGUgJiMzNDskbmZ0X2hhbmRsZSYjMzQ7CiAJCXBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDMgMTAuMC4zLjIKIAkJcG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93CiAJCXdhaXRfbXBqIDMKQEAgLTQ0MDIsMTIgJiM0Mzs0MzY2LDEwIEBAIGVuZHBvaW50X3Rlc3RzKCkKIAogCQkjIFRvIG1ha2Ugc3VyZSBSTV9BRERSIGFyZSBzZW50IG92ZXIgYSBkaWZmZXJlbnQgc3ViZmxvdywgYnV0CiAJCSMgYWxsb3cgdGhlIHJlc3QgdG8gcXVpY2tseSBhbmQgY2xlYW5seSBjbG9zZSB0aGUgc3ViZmxvdwotCQlsb2NhbCBpcHQ9MQotCQlpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgJHtpcHRhYmxlc30gLUkgT1VUUFVUIC1zICYjMzQ7MTAuMC4xLjImIzM0OyBcCi0JCQktcCB0Y3AgLW0gdGNwIC0tdGNwLW9wdGlvbiAzMCBcCi0JCQktbSBicGYgLS1ieXRlY29kZSBcCi0JCQkmIzM0OyRDQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSJiMzNDsgXAotCQkJLWogRFJPUCB8fCBpcHQ9MAomIzQzOwkJbmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyBuZnQgLWUgLS1oYW5kbGUgaW5zZXJ0IHJ1bGUgXAomIzQzOwkJCWlwIGZpbHRlciBPVVRQVVQgaXAgc2FkZHIgMTAuMC4xLjIgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQkJdGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIHJlbW92ZS1hZGRyIFwKJiM0MzsJCQlkcm9wIHwgaGVhZCAtbjEgfCBhd2sgJiMzOTt7cHJpbnQgJE5GfSYjMzk7KQogCQlsb2NhbCBpCiAJCWZvciBpIGluICQoc2VxIDMpOyBkbwogCQkJcG1fbmxfZGVsX2VuZHBvaW50ICRuczIgMSAxMC4wLjEuMgpAQCAtNDQyMCw3ICYjNDM7NDM4Miw4IEBAIGVuZHBvaW50X3Rlc3RzKCkKIAkJCWNoa19zdWJmbG93X25yICYjMzQ7YWZ0ZXIgcmUtYWRkIGlkIDAgKCRpKSYjMzQ7IDMKIAkJCWNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDMgc3ViZmxvd3MgMwogCQlkb25lCi0JCVsgJHtpcHR9ID0gMSBdICZhbXA7JmFtcDsgaXAgbmV0bnMgZXhlYyAmIzM0OyR7bnMyfSYjMzQ7ICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAxCiYjNDM7CQlbIC1uICYjMzQ7JHtuZnRfaGFuZGxlfSYjMzQ7IF0gJmFtcDsmYW1wOyBpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgbmZ0IGRlbGV0ZSBydWxlIFwKJiM0MzsJCQlpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSAmIzM0OyR7bmZ0X2hhbmRsZX0mIzM0OwogCiAJCW1wdGNwX2xpYl9raWxsX2dyb3VwX3dhaXQgJHRlc3RzX3BpZAogCkBAIC00NDgyLDE4ICYjNDM7NDQ0NSwxNyBAQCBlbmRwb2ludF90ZXN0cygpCiAKIAkJIyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dAogCQkjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3cKLQkJbG9jYWwgaXB0PTEKLQkJaXAgbmV0bnMgZXhlYyAmIzM0OyR7bnMxfSYjMzQ7ICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyAmIzM0OzEwLjAuMS4xJiMzNDsgXAotCQkJLXAgdGNwIC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXAotCQkJLW0gYnBmIC0tYnl0ZWNvZGUgXAotCQkJJiMzNDskQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUiYjMzQ7IFwKLQkJCS1qIERST1AgfHwgaXB0PTAKJiM0MzsJCW5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjICYjMzQ7JHtuczF9JiMzNDsgbmZ0IC1lIC0taGFuZGxlIGluc2VydCBydWxlIFwKJiM0MzsJCQlpcCBmaWx0ZXIgT1VUUFVUIGlwIHNhZGRyIDEwLjAuMS4xIG1ldGEgbDRwcm90byB0Y3AgXAomIzQzOwkJCXRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcCiYjNDM7CQkJZHJvcCB8IGhlYWQgLW4xIHwgYXdrICYjMzk7e3ByaW50ICRORn0mIzM5OykKIAkJcG1fbmxfZGVsX2VuZHBvaW50ICRuczEgNDIgMTAuMC4xLjEKIAkJc2xlZXAgMC41CiAJCWNoa19zdWJmbG93X25yICYjMzQ7YWZ0ZXIgZGVsZXRlIElEIDAmIzM0OyAyCiAJCWNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDIgc3ViZmxvd3MgMgogCQljaGtfbXB0Y3BfaW5mbyBhZGRfYWRkcl9zaWduYWwgMiBhZGRfYWRkcl9hY2NlcHRlZCAyCi0JCVsgJHtpcHR9ID0gMSBdICZhbXA7JmFtcDsgaXAgbmV0bnMgZXhlYyAmIzM0OyR7bnMxfSYjMzQ7ICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAxCiYjNDM7CQlbIC1uICYjMzQ7JHtuZnRfaGFuZGxlfSYjMzQ7IF0gJmFtcDsmYW1wOyBpcCBuZXRucyBleGVjICYjMzQ7JHtuczF9JiMzNDsgbmZ0IGRlbGV0ZSBydWxlIFwKJiM0MzsJCQlpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSAmIzM0OyR7bmZ0X2hhbmRsZX0mIzM0OwogCiAJCXBtX25sX2FkZF9lbmRwb2ludCAkbnMxIDEwLjAuMS4xIGlkIDQyIGZsYWdzIHNpZ25hbAogCQl3YWl0X21waiA0CkBAIC00NTU1LDcgJiM0Mzs0NTE3LDcgQEAgZW5kcG9pbnRfdGVzdHMoKQogCQlwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMyCiAJCXBtX25sX2ZsdXNoX2VuZHBvaW50ICRuczEKIAkJd2FpdF9ybV9hZGRyICRuczIgMAotCQlpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgJHtpcHRhYmxlc30gLUQgT1VUUFVUIC1zICYjMzQ7MTAuMC4zLjImIzM0OyAtcCB0Y3AgLWogUkVKRUNUCiYjNDM7CQlpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlICYjMzQ7JG5mdF9oYW5kbGUmIzM0OwogCQlwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3cKIAkJd2FpdF9tcGogMQogCQlwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjMuMSBpZCAyIGZsYWdzIHNpZ25hbApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2gKaW5kZXggNWVmNjAzMzc3NWM4Ni4uZWJhNjkwMzIzM2NjZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoCkBAIC01MjQsNyAmIzQzOzUyNCw3IEBAIG1wdGNwX2xpYl9jaGVja190b29scygpIHsKIAkJCQlleGl0ICR7S1NGVF9TS0lQfQogCQkJZmkKIAkJCTs7Ci0JCSYjMzQ7aXB0YWJsZXMmIzM0OyogfCAmIzM0O2lwNnRhYmxlcyYjMzQ7KikKJiM0MzsJCSYjMzQ7aXB0YWJsZXMmIzM0OyogfCAmIzM0O2lwNnRhYmxlcyYjMzQ7KiB8ICYjMzQ7bmZ0JiMzNDsqKQogCQkJaWYgISAmIzM0OyR7dG9vbH0mIzM0OyAtViAmYW1wOyZndDsgL2Rldi9udWxsOyB0aGVuCiAJCQkJbXB0Y3BfbGliX3ByX3NraXAgJiMzNDtDb3VsZCBub3QgcnVuIGFsbCB0ZXN0cyB3aXRob3V0ICR7dG9vbH0mIzM0OwogCQkJCWV4aXQgJHtLU0ZUX1NLSVB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoCmluZGV4IGU4NTBhODc0MjliNjEuLmEyYzIwNDgzOTg2ZGMgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoCkBAIC0xNSw4ICYjNDM7MTUsNiBAQCBjaW49JiMzNDsmIzM0OwogY291dD0mIzM0OyYjMzQ7CiB0aW1lb3V0X3BvbGw9MzAKIHRpbWVvdXRfdGVzdD0kKCh0aW1lb3V0X3BvbGwgKiAyICYjNDM7IDEpKQotaXB0YWJsZXM9JiMzNDtpcHRhYmxlcyYjMzQ7Ci1pcDZ0YWJsZXM9JiMzNDtpcDZ0YWJsZXMmIzM0OwogCiBuczE9JiMzNDsmIzM0OwogbnMyPSYjMzQ7JiMzNDsKQEAgLTUwLDE1ICYjNDM7NDgsMjUgQEAgYWRkX21hcmtfcnVsZXMoKQogCWxvY2FsIG09JDIKIAogCWxvY2FsIHQKLQlmb3IgdCBpbiAke2lwdGFibGVzfSAke2lwNnRhYmxlc307IGRvCiYjNDM7CWZvciB0IGluIGlwIGlwNjsgZG8KJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgYWRkIHRhYmxlICYjMzQ7JHQmIzM0OyBmaWx0ZXIKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBmaWx0ZXIgT1VUUFVUIFwKJiM0MzsJCQkmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBvdXRwdXQgcHJpb3JpdHkgMDsgcG9saWN5IGFjY2VwdDsgfSYjMzk7CiYjNDM7CiAJCSMganVzdCB0byBkZWJ1ZzogY2hlY2sgd2UgaGF2ZSBtdWx0aXBsZSBzdWJmbG93cyBjb25uZWN0aW9uIHJlcXVlc3RzCi0JCWlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLS1zeW4gLW0gbWFyayAtLW1hcmsgJG0gLWogQUNDRVBUCiYjNDM7CQlpcCBuZXRucyBleGVjICYjMzQ7JG5zJiMzNDsgbmZ0IGFkZCBydWxlICYjMzQ7JHQmIzM0OyBmaWx0ZXIgT1VUUFVUIFwKJiM0MzsJCQl0Y3AgZmxhZ3MgXCZhbXA7IFwoZmluIFx8IHN5biBcfCByc3QgXHwgYWNrXCkgPT0gc3luIFwKJiM0MzsJCQltZXRhIG1hcmsgJiMzNDskbSYjMzQ7IGFjY2VwdAogCiAJCSMgUlNUIHBhY2tldHMgbWlnaHQgYmUgaGFuZGxlZCBieSBhIGludGVybmFsIGR1bW15IHNvY2tldAotCQlpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC0tdGNwLWZsYWdzIFJTVCBSU1QgLW0gbWFyayAtLW1hcmsgMCAtaiBBQ0NFUFQKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgYWRkIHJ1bGUgJiMzNDskdCYjMzQ7IGZpbHRlciBPVVRQVVQgXAomIzQzOwkJCXRjcCBmbGFncyBcJmFtcDsgcnN0ID09IHJzdCBtZXRhIG1hcmsgMHgwIGFjY2VwdAomIzQzOwomIzQzOwkJaXAgbmV0bnMgZXhlYyAmIzM0OyRucyYjMzQ7IG5mdCBhZGQgcnVsZSAmIzM0OyR0JiMzNDsgZmlsdGVyIE9VVFBVVCBcCiYjNDM7CQkJbWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgJiMzNDskbSYjMzQ7IGFjY2VwdAomIzQzOwkJaXAgbmV0bnMgZXhlYyAmIzM0OyRucyYjMzQ7IG5mdCBhZGQgcnVsZSAmIzM0OyR0JiMzNDsgZmlsdGVyIE9VVFBVVCBcCiYjNDM7CQkJbWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgMCBjb3VudGVyIGRyb3AKIAotCQlpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC1tIG1hcmsgLS1tYXJrICRtIC1qIEFDQ0VQVAotCQlpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC1tIG1hcmsgLS1tYXJrIDAgLWogRFJPUAogCWRvbmUKIH0KIApAQCAtMTA1LDMyICYjNDM7MTEzLDI5IEBAIGNsZWFudXAoKQogCiBtcHRjcF9saWJfY2hlY2tfbXB0Y3AKIG1wdGNwX2xpYl9jaGVja19rYWxsc3ltcwotbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwICYjMzQ7JHtpcHRhYmxlc30mIzM0OyAmIzM0OyR7aXA2dGFibGVzfSYjMzQ7CiYjNDM7bXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIG5mdAogCiBjaGVja19tYXJrKCkKIHsKIAlsb2NhbCBucz0kMQogCWxvY2FsIGFmPSQyCiAKLQlsb2NhbCB0YWJsZXM9JHtpcHRhYmxlc30KJiM0MzsJbG9jYWwgdGFibGVzPSYjMzQ7aXAmIzM0OwogCiAJaWYgWyAkYWYgLWVxIDYgXTt0aGVuCi0JCXRhYmxlcz0ke2lwNnRhYmxlc30KJiM0MzsJCXRhYmxlcz0mIzM0O2lwNiYjMzQ7CiAJZmkKIAotCWxvY2FsIGNvdW50ZXJzIHZhbHVlcwotCWNvdW50ZXJzPSQoaXAgbmV0bnMgZXhlYyAkbnMgJHRhYmxlcyAtdiAtTCBPVVRQVVQgfCBncmVwIERST1ApCi0JdmFsdWVzPSR7Y291bnRlcnMlRFJPUCp9Ci0KLQlsb2NhbCB2Ci0JZm9yIHYgaW4gJHZhbHVlczsgZG8KLQkJaWYgWyAkdiAtbmUgMCBdOyB0aGVuCi0JCQltcHRjcF9saWJfcHJfZmFpbCAmIzM0O2dvdCAkdGFibGVzICR2YWx1ZXMgaW4gbnMgJG5zLCYjMzQ7IFwKLQkJCQkJICAmIzM0O25vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZCYjMzQ7Ci0JCQlyZXQ9JHtLU0ZUX0ZBSUx9Ci0JCQlyZXR1cm4gMQotCQlmaQotCWRvbmUKJiM0MzsJbG9jYWwgdmFsdWVzCiYjNDM7CXZhbHVlcz0kKGlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgbGlzdCB0YWJsZSAmIzM0OyR0YWJsZXMmIzM0OyBmaWx0ZXIgfCBcCiYjNDM7CQlncmVwIC1vICYjMzQ7cGFja2V0cy4qZHJvcCYjMzQ7IHwgYXdrICYjMzk7e3ByaW50ICQyfSYjMzk7KQomIzQzOwomIzQzOwlpZiBbWyAhICYjMzQ7JHZhbHVlcyYjMzQ7ID1+IF5bMC05XSYjNDM7JCBdXSB8fCBbICYjMzQ7JHZhbHVlcyYjMzQ7IC1uZSAwIF07IHRoZW4KJiM0MzsJCW1wdGNwX2xpYl9wcl9mYWlsICYjMzQ7Z290ICR0YWJsZXMgJHZhbHVlcyBpbiBucyAkbnMsJiMzNDsgXAomIzQzOwkJCQkgICYjMzQ7bm90IDAgLSBub3QgYWxsIGV4cGVjdGVkIHBhY2tldHMgbWFya2VkJiMzNDsKJiM0MzsJCXJldD0ke0tTRlRfRkFJTH0KJiM0MzsJCXJldHVybiAxCiYjNDM7CWZpCiAKIAlyZXR1cm4gMAogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTkyCgkJCQkJCQlvdXRwdXQ6IDc5CgkJCQkJCQl0aG91Z2h0czogNDA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgRWxpZ2liaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBwYXRjaCBhbmQgdGhlIGFzc29jaWF0ZWQgZGlmZi4gRmlyc3QsIEkgc2VlIHRoZSBjaGFuZ2VzIGFyZSBhbGwgY29uZmluZWQgdG8gdGhlIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgd2UmIzM5O3JlIGxvb2tpbmcgYXQgbW9kaWZpY2F0aW9ucyB0byBgY29uZmlnYCwgYG1wdGNwX2pvaW4uc2hgLCBgbXB0Y3BfbGliLnNoYCwgYW5kIGBtcHRjcF9zb2Nrb3B0LnNoYC4gQWxsIHZlcnkgY2xlYXJseSB3aXRoaW4gdGhlIHJlYWxtIG9mIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgc2NyaXB0cy4KCk5vdywgbGV0JiMzOTtzIGFwcGx5IFNlY3Rpb24gMiBvZiB0aGUgZnV6emluZyBlbGlnaWJpbGl0eSBydWxlcy4gVGhlIGtleSBxdWVzdGlvbiBpcywgJiMzNDtEb2VzIHRoaXMgdG91Y2ggYW55IGNvZGUgdGhhdCAqcmVhbGx5KiBtYXR0ZXJzIGZvciBmdXp6aW5nIHRoZSBrZXJuZWw/JiMzNDsgTG9va2luZyBhdCB0aGUgY3JpdGVyaWEgZm9yIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYCwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoaXMgZmFsbHMgc3F1YXJlbHkgaW50byB0aGUgJiMzNDt1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlJiMzNDsgY2F0ZWdvcnkuIFdlJiMzOTtyZSB0YWxraW5nIGJhc2ggc2NyaXB0cyBhbmQgYSBjb25maWd1cmF0aW9uIGZpbGUsIG5vdGhpbmcgdGhhdCYjMzk7cyBnb2luZyB0byBpbmZsdWVuY2UgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSBvciBrZXJuZWwgbW9kdWxlcy4gTm8gQyBjb2RlLCBubyBjb3JlIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMsIG5vdGhpbmcuCgpUaGVyZWZvcmUsIGdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIG1vZGlmaWNhdGlvbnMsIGl0JiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIGRldGVybWluYXRpb246IGBXb3J0aEZ1enppbmdgIGlzIGRlZmluaXRpdmVseSBgZmFsc2VgLiBCZWNhdXNlIHdlIGFyZSBkZWFsaW5nIHdpdGggc2NyaXB0cywgdGhlcmUgaXMgbm8gbmVlZCBmb3IgYEZvY3VzU3ltYm9sc2Agb3IgYEVuYWJsZUNvbmZpZ3NgLiBUaGVzZSBhcmUgaXJyZWxldmFudCBpbiB0aGlzIGNhc2UuCgpUaW1lIHRvIGV4ZWN1dGUgYHNldC1yZXN1bHRzYCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwYXJhbWV0ZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAxOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAxOjAwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMDo1OTo1OC41ODUwODUyMDRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYyNTAyMjU2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMDo1OTo1OC41ODUwOTAzMTRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NDgyNjk2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDVjNGNjYmY3MGI1MTY1ZjJmMzNkMTVkODI4ZDM0OWY3ODVkOWI4MWZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBTZXAgNCAwMDo1OTo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xcbmluZGV4IDU5MDUxZWUyYTk4NjAuLjBkMGE3NDRjNGNhODkgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcXG5AQCAtMzAsNiArMzAsOSBAQCBDT05GSUdfTkVUX1NDSF9ORVRFTT1tXFxuIENPTkZJR19ORl9UQUJMRVM9bVxcbiBDT05GSUdfTkZfVEFCTEVTX0lORVQ9eVxcbiBDT05GSUdfTkZUX0NPTVBBVD1tXFxuK0NPTkZJR19ORlRfTlVNR0VOPXlcXG4rQ09ORklHX05GVF9SRUpFQ1Q9bVxcbitDT05GSUdfTkZUX1JFSkVDVF9JUFY0PW1cXG4gQ09ORklHX05GVF9TT0NLRVQ9bVxcbiBDT05GSUdfTkZUX1RQUk9YWT1tXFxuIENPTkZJR19TWU5fQ09PS0lFUz15XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2hcXG5pbmRleCAxOGNlNzEzNmEyYjBlLi43YzU2NjgwY2M0MjIxIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2hcXG5AQCAtMjYsOCArMjYsNiBAQCBjYXBvdXQ9XFxcIlxcXCJcXG4gY2FwcGlkPVxcXCJcXFwiXFxuIG5zMT1cXFwiXFxcIlxcbiBuczI9XFxcIlxcXCJcXG4taXB0YWJsZXM9XFxcImlwdGFibGVzXFxcIlxcbi1pcDZ0YWJsZXM9XFxcImlwNnRhYmxlc1xcXCJcXG4gdGltZW91dF9wb2xsPTMwXFxuIHRpbWVvdXRfdGVzdD0kKCh0aW1lb3V0X3BvbGwgKiAyICsgMSkpXFxuIGNhcHR1cmU9ZmFsc2VcXG5AQCAtNTAsNiArNDgsNyBAQCBkZWNsYXJlIC1BIGZhaWxlZF90ZXN0c1xcbiBNUFRDUF9MSUJfVEVTVF9GT1JNQVQ9XFxcIiUwM3UgJXNcXFxcblxcXCJcXG4gVEVTVF9OQU1FPVxcXCJcXFwiXFxuIG5yX2JsYW5rPTZcXG4rbmZ0X2hhbmRsZT1cXFwiXFxcIlxcbiBcXG4gIyBUaGVzZSB2YXIgYXJlIHVzZWQgb25seSBpbiBzb21lIHRlc3RzLCBtYWtlIHN1cmUgdGhleSBhcmUgbm90IGFscmVhZHkgc2V0XFxuIHVuc2V0IEZBSUxJTkdfTElOS1NcXG5AQCAtOTksNDIgKzk4LDYgQEAgdW5zZXQgYWRkX2FkZHJfdHhfbnJcXG4gdW5zZXQgYWRkX2FkZHJfZWNob190eF9uclxcbiB1bnNldCBhZGRfYWRkcl9kcm9wX3R4X25yXFxuIFxcbi0jIGdlbmVyYXRlZCB1c2luZyBcXFwibmZicGZfY29tcGlsZSAnKGlwIFxcdTAwMjZcXHUwMDI2IChpcFs1NF0gXFx1MDAyNiAweGYwKSA9PSAweDMwKSB8fFxcbi0jXFx0XFx0XFx0XFx0ICAoaXA2IFxcdTAwMjZcXHUwMDI2IChpcDZbNzRdIFxcdTAwMjYgMHhmMCkgPT0gMHgzMCknXFxcIlxcbi1DQlBGX01QVENQX1NVQk9QVElPTl9BRERfQUREUj1cXFwiMTQsXFxuLVxcdFxcdFxcdCAgICAgICA0OCAwIDAgMCxcXG4tXFx0XFx0XFx0ICAgICAgIDg0IDAgMCAyNDAsXFxuLVxcdFxcdFxcdCAgICAgICAyMSAwIDMgNjQsXFxuLVxcdFxcdFxcdCAgICAgICA0OCAwIDAgNTQsXFxuLVxcdFxcdFxcdCAgICAgICA4NCAwIDAgMjQwLFxcbi1cXHRcXHRcXHQgICAgICAgMjEgNiA3IDQ4LFxcbi1cXHRcXHRcXHQgICAgICAgNDggMCAwIDAsXFxuLVxcdFxcdFxcdCAgICAgICA4NCAwIDAgMjQwLFxcbi1cXHRcXHRcXHQgICAgICAgMjEgMCA0IDk2LFxcbi1cXHRcXHRcXHQgICAgICAgNDggMCAwIDc0LFxcbi1cXHRcXHRcXHQgICAgICAgODQgMCAwIDI0MCxcXG4tXFx0XFx0XFx0ICAgICAgIDIxIDAgMSA0OCxcXG4tXFx0XFx0XFx0ICAgICAgIDYgMCAwIDY1NTM1LFxcbi1cXHRcXHRcXHQgICAgICAgNiAwIDAgMFxcXCJcXG4tXFxuLSMgSVB2NDogVENQIGhkciBvZiA0OEIsIGEgZmlyc3Qgc3Vib3B0aW9uIG9mIDEyQiAoREFDSzgpLCB0aGUgUk1fQUREUiBzdWJvcHRpb25cXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXFxcIm5mYnBmX2NvbXBpbGUgJyhpcFszMl0gXFx1MDAyNiAweGYwKSA9PSAweGMwIFxcdTAwMjZcXHUwMDI2IGlwWzUzXSA9PSAweDBjIFxcdTAwMjZcXHUwMDI2XFxuLSNcXHRcXHRcXHRcXHQgIChpcFs2Nl0gXFx1MDAyNiAweGYwKSA9PSAweDQwJ1xcXCJcXG4tQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUj1cXFwiMTMsXFxuLVxcdFxcdFxcdCAgICAgIDQ4IDAgMCAwLFxcbi1cXHRcXHRcXHQgICAgICA4NCAwIDAgMjQwLFxcbi1cXHRcXHRcXHQgICAgICAyMSAwIDkgNjQsXFxuLVxcdFxcdFxcdCAgICAgIDQ4IDAgMCAzMixcXG4tXFx0XFx0XFx0ICAgICAgODQgMCAwIDI0MCxcXG4tXFx0XFx0XFx0ICAgICAgMjEgMCA2IDE5MixcXG4tXFx0XFx0XFx0ICAgICAgNDggMCAwIDUzLFxcbi1cXHRcXHRcXHQgICAgICAyMSAwIDQgMTIsXFxuLVxcdFxcdFxcdCAgICAgIDQ4IDAgMCA2NixcXG4tXFx0XFx0XFx0ICAgICAgODQgMCAwIDI0MCxcXG4tXFx0XFx0XFx0ICAgICAgMjEgMCAxIDY0LFxcbi1cXHRcXHRcXHQgICAgICA2IDAgMCA2NTUzNSxcXG4tXFx0XFx0XFx0ICAgICAgNiAwIDAgMFxcXCJcXG4tXFxuIGluaXRfcGFydGlhbCgpXFxuIHtcXG4gXFx0Y2Fwb3V0PSQobWt0ZW1wKVxcbkBAIC0xNDcsNiArMTEwLDE4IEBAIGluaXRfcGFydGlhbCgpXFxuIFxcdFxcdGlmICRjaGVja3N1bTsgdGhlblxcbiBcXHRcXHRcXHRpcCBuZXRucyBleGVjICRuZXRucyBzeXNjdGwgLXEgbmV0Lm1wdGNwLmNoZWNrc3VtX2VuYWJsZWQ9MVxcbiBcXHRcXHRmaVxcbitcXG4rXFx0XFx0Zm9yIHQgaW4gaXAgaXA2OyBkb1xcbitcXHRcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbmV0bnNcXFwiIG5mdCBhZGQgdGFibGUgXFxcIiR0XFxcIiBmaWx0ZXJcXG4rXFx0XFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5ldG5zXFxcIiBuZnQgYWRkIGNoYWluIFxcXCIkdFxcXCIgZmlsdGVyIElOUFVUIFxcXFxcXG4rXFx0XFx0XFx0XFx0J3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0nXFxuK1xcdFxcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuZXRuc1xcXCIgbmZ0IGFkZCBjaGFpbiBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHRcXHQneyB0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0nXFxuK1xcbitcXHRcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbmV0bnNcXFwiIG5mdCBhZGQgdGFibGUgXFxcIiR0XFxcIiBtYW5nbGVcXG4rXFx0XFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5ldG5zXFxcIiBuZnQgYWRkIGNoYWluIFxcXCIkdFxcXCIgbWFuZ2xlIE9VVFBVVCBcXFxcXFxuK1xcdFxcdFxcdFxcdCd7IHR5cGUgcm91dGUgaG9vayBvdXRwdXQgcHJpb3JpdHkgbWFuZ2xlOyBwb2xpY3kgYWNjZXB0OyB9J1xcbitcXHRcXHRkb25lXFxuIFxcdGRvbmVcXG4gXFxuIFxcdGNoZWNrX2ludmVydD0wXFxuQEAgLTE5Niw3ICsxNzEsNyBAQCBpbml0KCkge1xcbiBcXG4gXFx0bXB0Y3BfbGliX2NoZWNrX21wdGNwXFxuIFxcdG1wdGNwX2xpYl9jaGVja19rYWxsc3ltc1xcbi1cXHRtcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgdGMgc3MgXFxcIiR7aXB0YWJsZXN9XFxcIiBcXFwiJHtpcDZ0YWJsZXN9XFxcIlxcbitcXHRtcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgdGMgc3MgbmZ0XFxuIFxcbiBcXHRzaW49JChta3RlbXApXFxuIFxcdHNvdXQ9JChta3RlbXApXFxuQEAgLTM4MCwyNCArMzU1LDE4IEBAIHJlc2V0X3dpdGhfY29va2llcygpXFxuICMgJDE6IHRlc3QgbmFtZVxcbiByZXNldF93aXRoX2FkZF9hZGRyX3RpbWVvdXQoKVxcbiB7XFxuLVxcdGxvY2FsIGlwPVxcXCIkezI6LTR9XFxcIlxcbi1cXHRsb2NhbCB0YWJsZXNcXG4rXFx0bG9jYWwgaXA9XFxcIiR7MjotfVxcXCJcXG4gXFxuIFxcdHJlc2V0IFxcXCIkezF9XFxcIiB8fCByZXR1cm4gMVxcbiBcXG4tXFx0dGFibGVzPVxcXCIke2lwdGFibGVzfVxcXCJcXG4tXFx0aWYgWyAkaXAgLWVxIDYgXTsgdGhlblxcbi1cXHRcXHR0YWJsZXM9XFxcIiR7aXA2dGFibGVzfVxcXCJcXG4tXFx0ZmlcXG4tXFxuIFxcdCMgc2V0IGEgbWF4aW11bSwgdG8gYXZvaWQgdG9vIGxvbmcgdGltZW91dCB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmZcXG4gXFx0aXAgbmV0bnMgZXhlYyAkbnMxIHN5c2N0bCAtcSBuZXQubXB0Y3AuYWRkX2FkZHJfdGltZW91dD0xXFxuIFxcbi1cXHRpZiAhIGlwIG5ldG5zIGV4ZWMgJG5zMiAkdGFibGVzIC1BIE9VVFBVVCAtcCB0Y3AgXFxcXFxcbi1cXHRcXHRcXHQtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXFxcXG4tXFx0XFx0XFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcXFxcbi1cXHRcXHRcXHRcXFwiJENCUEZfTVBUQ1BfU1VCT1BUSU9OX0FERF9BRERSXFxcIiBcXFxcXFxuLVxcdFxcdFxcdC1qIERST1A7IHRoZW5cXG4rXFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXFxcIiRuczJcXFwiIG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxcXFxuK1xcdFxcdGlwXFxcIiRpcFxcXCIgZmlsdGVyIE9VVFBVVCBtZXRhIGw0cHJvdG8gdGNwIFxcXFxcXG4rXFx0XFx0dGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIGFkZC1hZGRyIFxcXFxcXG4rXFx0XFx0ZHJvcCB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXFxuK1xcdGlmIFsgLXogXFxcIiRuZnRfaGFuZGxlXFxcIiBdOyB0aGVuXFxuIFxcdFxcdG1hcmtfYXNfc2tpcHBlZCBcXFwidW5hYmxlIHRvIHNldCB0aGUgJ2FkZCBhZGRyJyBydWxlXFxcIlxcbiBcXHRcXHRyZXR1cm4gMVxcbiBcXHRmaVxcbkBAIC00NDksMjMgKzQxOCwxNyBAQCBzZXR1cF9mYWlsX3J1bGVzKClcXG4gXFx0Y2hlY2tfaW52ZXJ0PTFcXG4gXFx0dmFsaWRhdGVfY2hlY2tzdW09dHJ1ZVxcbiBcXHRsb2NhbCBpPVxcXCIkMVxcXCJcXG4tXFx0bG9jYWwgaXA9XFxcIiR7MjotNH1cXFwiXFxuLVxcdGxvY2FsIHRhYmxlc1xcbitcXHRsb2NhbCBpcD1cXFwiJHsyOi19XFxcIlxcbiBcXG4tXFx0dGFibGVzPVxcXCIke2lwdGFibGVzfVxcXCJcXG4tXFx0aWYgWyAkaXAgLWVxIDYgXTsgdGhlblxcbi1cXHRcXHR0YWJsZXM9XFxcIiR7aXA2dGFibGVzfVxcXCJcXG4rXFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXFxcIiRuczJcXFwiIG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxcXFxuK1xcdFxcdGlwXFxcIiRpcFxcXCIgbWFuZ2xlIE9VVFBVVCBvaWZuYW1lIG5zMmV0aCRpIFxcXFxcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHRjcCBcXFxcXFxuK1xcdFxcdG1ldGEgbGVuZ3RoIDE1MC05OTk5IG51bWdlbiBpbmMgbW9kIDk5OTk5IDEgXFxcXFxcbitcXHRcXHRtZXRhIG1hcmsgc2V0IDQyIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcXG4rXFx0aWYgWyAteiBcXFwiJG5mdF9oYW5kbGVcXFwiIF07IHRoZW5cXG4rXFx0XFx0cmV0dXJuICR7S1NGVF9TS0lQfVxcbiBcXHRmaVxcbiBcXG4tXFx0aXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgXFxcXFxcbi1cXHRcXHQtdCBtYW5nbGUgXFxcXFxcbi1cXHRcXHQtQSBPVVRQVVQgXFxcXFxcbi1cXHRcXHQtbyBuczJldGgkaSBcXFxcXFxuLVxcdFxcdC1wIHRjcCBcXFxcXFxuLVxcdFxcdC1tIGxlbmd0aCAtLWxlbmd0aCAxNTA6OTk5OSBcXFxcXFxuLVxcdFxcdC1tIHN0YXRpc3RpYyAtLW1vZGUgbnRoIC0tcGFja2V0IDEgLS1ldmVyeSA5OTk5OSBcXFxcXFxuLVxcdFxcdC1qIE1BUksgLS1zZXQtbWFyayA0MiB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9XFxuLVxcbiBcXHR0YyAtbiAkbnMyIHFkaXNjIGFkZCBkZXYgbnMyZXRoJGkgY2xzYWN0IHx8IHJldHVybiAke0tTRlRfU0tJUH1cXG4gXFx0dGMgLW4gJG5zMiBmaWx0ZXIgYWRkIGRldiBuczJldGgkaSBlZ3Jlc3MgXFxcXFxcbiBcXHRcXHRwcm90b2NvbCBpcCBwcmlvIDEwMDAgXFxcXFxcbkBAIC01MTUsMTEgKzQ3OCwxMCBAQCByZXNldF93aXRoX3RjcF9maWx0ZXIoKVxcbiBcXHRsb2NhbCB0YXJnZXQ9XFxcIiR7M31cXFwiXFxuIFxcdGxvY2FsIGNoYWluPVxcXCIkezQ6LUlOUFVUfVxcXCJcXG4gXFxuLVxcdGlmICEgaXAgbmV0bnMgZXhlYyBcXFwiJHtuc31cXFwiICR7aXB0YWJsZXN9IFxcXFxcXG4tXFx0XFx0XFx0LUEgXFxcIiR7Y2hhaW59XFxcIiBcXFxcXFxuLVxcdFxcdFxcdC1zIFxcXCIke3NyY31cXFwiIFxcXFxcXG4tXFx0XFx0XFx0LXAgdGNwIFxcXFxcXG4tXFx0XFx0XFx0LWogXFxcIiR7dGFyZ2V0fVxcXCI7IHRoZW5cXG4rXFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXFxcIiRuc1xcXCIgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFxcXFxcXG4rXFx0XFx0aXAgZmlsdGVyIFxcXCIke2NoYWlufVxcXCIgaXAgc2FkZHIgXFxcInsgJHtzcmN9IH1cXFwiIFxcXFxcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHRjcCBcXFwiJHt0YXJnZXQsLH1cXFwiIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcXG4rXFx0aWYgWyAteiBcXFwiJG5mdF9oYW5kbGVcXFwiIF07IHRoZW5cXG4gXFx0XFx0bWFya19hc19za2lwcGVkIFxcXCJ1bmFibGUgdG8gc2V0IHRoZSBmaWx0ZXIgcnVsZXNcXFwiXFxuIFxcdFxcdHJldHVybiAxXFxuIFxcdGZpXFxuQEAgLTQzMTUsMTAgKzQyNzcsMTIgQEAgdXNlcnNwYWNlX3Rlc3RzKClcXG4gXFxuIFxcdFxcdCMgZm9yY2UgcXVpY2sgbG9zc1xcbiBcXHRcXHRpcCBuZXRucyBleGVjICRuczIgc3lzY3RsIC1xIG5ldC5pcHY0LnRjcF9zeW5fcmV0cmllcz0xXFxuLVxcdFxcdGlmIGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMxfVxcXCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLXMgXFxcIjEwLjAuMS4yXFxcIiBcXFxcXFxuLVxcdFxcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0IFxcdTAwMjZcXHUwMDI2XFxuLVxcdFxcdCAgIGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgXFxcIjEwLjAuMS4yXFxcIiBcXFxcXFxuLVxcdFxcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0OyB0aGVuXFxuK1xcdFxcdGlmIGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMxfVxcXCIgbmZ0IGFkZCBydWxlIGlwIGZpbHRlciBJTlBVVCBcXFxcXFxuK1xcdFxcdFxcdGlwIHNhZGRyIFxcXCIxMC4wLjEuMlxcXCIgbWV0YSBsNHByb3RvIHRjcCBcXFxcXFxuK1xcdFxcdFxcdHRjcCBvcHRpb24gbXB0Y3AgZXhpc3RzIHJlamVjdCB3aXRoIHRjcCByZXNldCBcXHUwMDI2XFx1MDAyNlxcbitcXHRcXHQgICBpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiIG5mdCBhZGQgcnVsZSBpcCBmaWx0ZXIgSU5QVVQgXFxcXFxcbitcXHRcXHRcXHRpcCBkYWRkciBcXFwiMTAuMC4xLjJcXFwiIG1ldGEgbDRwcm90byB0Y3AgXFxcXFxcbitcXHRcXHRcXHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQ7IHRoZW5cXG4gXFx0XFx0XFx0d2FpdF9ldmVudCBuczIgTVBUQ1BfTElCX0VWRU5UX1NVQl9DTE9TRUQgMVxcbiBcXHRcXHRcXHR3YWl0X2V2ZW50IG5zMSBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxXFxuIFxcdFxcdFxcdGNoa19zdWJmbG93c190b3RhbCAxIDFcXG5AQCAtNDM5Myw3ICs0MzU3LDcgQEAgZW5kcG9pbnRfdGVzdHMoKVxcbiBcXHRcXHRjaGtfc3ViZmxvd19uciBcXFwiYWZ0ZXIgbmV3IHJlamVjdFxcXCIgMlxcbiBcXHRcXHRjaGtfbXB0Y3BfaW5mbyBzdWJmbG93cyAxIHN1YmZsb3dzIDFcXG4gXFxuLVxcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgJHtpcHRhYmxlc30gLUQgT1VUUFVUIC1zIFxcXCIxMC4wLjMuMlxcXCIgLXAgdGNwIC1qIFJFSkVDVFxcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiIG5mdCBkZWxldGUgcnVsZSBpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcXFwiJG5mdF9oYW5kbGVcXFwiXFxuIFxcdFxcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDMgMTAuMC4zLjJcXG4gXFx0XFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93XFxuIFxcdFxcdHdhaXRfbXBqIDNcXG5AQCAtNDQwMiwxMiArNDM2NiwxMCBAQCBlbmRwb2ludF90ZXN0cygpXFxuIFxcbiBcXHRcXHQjIFRvIG1ha2Ugc3VyZSBSTV9BRERSIGFyZSBzZW50IG92ZXIgYSBkaWZmZXJlbnQgc3ViZmxvdywgYnV0XFxuIFxcdFxcdCMgYWxsb3cgdGhlIHJlc3QgdG8gcXVpY2tseSBhbmQgY2xlYW5seSBjbG9zZSB0aGUgc3ViZmxvd1xcbi1cXHRcXHRsb2NhbCBpcHQ9MVxcbi1cXHRcXHRpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyBcXFwiMTAuMC4xLjJcXFwiIFxcXFxcXG4tXFx0XFx0XFx0LXAgdGNwIC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcXFxcbi1cXHRcXHRcXHQtbSBicGYgLS1ieXRlY29kZSBcXFxcXFxuLVxcdFxcdFxcdFxcXCIkQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUlxcXCIgXFxcXFxcbi1cXHRcXHRcXHQtaiBEUk9QIHx8IGlwdD0wXFxuK1xcdFxcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiIG5mdCAtZSAtLWhhbmRsZSBpbnNlcnQgcnVsZSBcXFxcXFxuK1xcdFxcdFxcdGlwIGZpbHRlciBPVVRQVVQgaXAgc2FkZHIgMTAuMC4xLjIgbWV0YSBsNHByb3RvIHRjcCBcXFxcXFxuK1xcdFxcdFxcdHRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcXFxcXFxuK1xcdFxcdFxcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAne3ByaW50ICRORn0nKVxcbiBcXHRcXHRsb2NhbCBpXFxuIFxcdFxcdGZvciBpIGluICQoc2VxIDMpOyBkb1xcbiBcXHRcXHRcXHRwbV9ubF9kZWxfZW5kcG9pbnQgJG5zMiAxIDEwLjAuMS4yXFxuQEAgLTQ0MjAsNyArNDM4Miw4IEBAIGVuZHBvaW50X3Rlc3RzKClcXG4gXFx0XFx0XFx0Y2hrX3N1YmZsb3dfbnIgXFxcImFmdGVyIHJlLWFkZCBpZCAwICgkaSlcXFwiIDNcXG4gXFx0XFx0XFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMyBzdWJmbG93cyAzXFxuIFxcdFxcdGRvbmVcXG4tXFx0XFx0WyAke2lwdH0gPSAxIF0gXFx1MDAyNlxcdTAwMjYgaXAgbmV0bnMgZXhlYyBcXFwiJHtuczJ9XFxcIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxcbitcXHRcXHRbIC1uIFxcXCIke25mdF9oYW5kbGV9XFxcIiBdIFxcdTAwMjZcXHUwMDI2IGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgbmZ0IGRlbGV0ZSBydWxlIFxcXFxcXG4rXFx0XFx0XFx0aXAgZmlsdGVyIE9VVFBVVCBoYW5kbGUgXFxcIiR7bmZ0X2hhbmRsZX1cXFwiXFxuIFxcbiBcXHRcXHRtcHRjcF9saWJfa2lsbF9ncm91cF93YWl0ICR0ZXN0c19waWRcXG4gXFxuQEAgLTQ0ODIsMTggKzQ0NDUsMTcgQEAgZW5kcG9pbnRfdGVzdHMoKVxcbiBcXG4gXFx0XFx0IyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dFxcbiBcXHRcXHQjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3dcXG4tXFx0XFx0bG9jYWwgaXB0PTFcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJHtuczF9XFxcIiAke2lwdGFibGVzfSAtSSBPVVRQVVQgLXMgXFxcIjEwLjAuMS4xXFxcIiBcXFxcXFxuLVxcdFxcdFxcdC1wIHRjcCAtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXFxcXG4tXFx0XFx0XFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcXFxcbi1cXHRcXHRcXHRcXFwiJENCUEZfTVBUQ1BfU1VCT1BUSU9OX1JNX0FERFJcXFwiIFxcXFxcXG4tXFx0XFx0XFx0LWogRFJPUCB8fCBpcHQ9MFxcbitcXHRcXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcXFwiJHtuczF9XFxcIiBuZnQgLWUgLS1oYW5kbGUgaW5zZXJ0IHJ1bGUgXFxcXFxcbitcXHRcXHRcXHRpcCBmaWx0ZXIgT1VUUFVUIGlwIHNhZGRyIDEwLjAuMS4xIG1ldGEgbDRwcm90byB0Y3AgXFxcXFxcbitcXHRcXHRcXHR0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgcmVtb3ZlLWFkZHIgXFxcXFxcbitcXHRcXHRcXHRkcm9wIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcXG4gXFx0XFx0cG1fbmxfZGVsX2VuZHBvaW50ICRuczEgNDIgMTAuMC4xLjFcXG4gXFx0XFx0c2xlZXAgMC41XFxuIFxcdFxcdGNoa19zdWJmbG93X25yIFxcXCJhZnRlciBkZWxldGUgSUQgMFxcXCIgMlxcbiBcXHRcXHRjaGtfbXB0Y3BfaW5mbyBzdWJmbG93cyAyIHN1YmZsb3dzIDJcXG4gXFx0XFx0Y2hrX21wdGNwX2luZm8gYWRkX2FkZHJfc2lnbmFsIDIgYWRkX2FkZHJfYWNjZXB0ZWQgMlxcbi1cXHRcXHRbICR7aXB0fSA9IDEgXSBcXHUwMDI2XFx1MDAyNiBpcCBuZXRucyBleGVjIFxcXCIke25zMX1cXFwiICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAxXFxuK1xcdFxcdFsgLW4gXFxcIiR7bmZ0X2hhbmRsZX1cXFwiIF0gXFx1MDAyNlxcdTAwMjYgaXAgbmV0bnMgZXhlYyBcXFwiJHtuczF9XFxcIiBuZnQgZGVsZXRlIHJ1bGUgXFxcXFxcbitcXHRcXHRcXHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcXFwiJHtuZnRfaGFuZGxlfVxcXCJcXG4gXFxuIFxcdFxcdHBtX25sX2FkZF9lbmRwb2ludCAkbnMxIDEwLjAuMS4xIGlkIDQyIGZsYWdzIHNpZ25hbFxcbiBcXHRcXHR3YWl0X21waiA0XFxuQEAgLTQ1NTUsNyArNDUxNyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcXG4gXFx0XFx0cG1fbmxfZmx1c2hfZW5kcG9pbnQgJG5zMlxcbiBcXHRcXHRwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMxXFxuIFxcdFxcdHdhaXRfcm1fYWRkciAkbnMyIDBcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJHtuczJ9XFxcIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgXFxcIjEwLjAuMy4yXFxcIiAtcCB0Y3AgLWogUkVKRUNUXFxuK1xcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlIFxcXCIkbmZ0X2hhbmRsZVxcXCJcXG4gXFx0XFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93XFxuIFxcdFxcdHdhaXRfbXBqIDFcXG4gXFx0XFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczEgMTAuMC4zLjEgaWQgMiBmbGFncyBzaWduYWxcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2hcXG5pbmRleCA1ZWY2MDMzNzc1Yzg2Li5lYmE2OTAzMjMzY2NmIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2hcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoXFxuQEAgLTUyNCw3ICs1MjQsNyBAQCBtcHRjcF9saWJfY2hlY2tfdG9vbHMoKSB7XFxuIFxcdFxcdFxcdFxcdGV4aXQgJHtLU0ZUX1NLSVB9XFxuIFxcdFxcdFxcdGZpXFxuIFxcdFxcdFxcdDs7XFxuLVxcdFxcdFxcXCJpcHRhYmxlc1xcXCIqIHwgXFxcImlwNnRhYmxlc1xcXCIqKVxcbitcXHRcXHRcXFwiaXB0YWJsZXNcXFwiKiB8IFxcXCJpcDZ0YWJsZXNcXFwiKiB8IFxcXCJuZnRcXFwiKilcXG4gXFx0XFx0XFx0aWYgISBcXFwiJHt0b29sfVxcXCIgLVYgXFx1MDAyNlxcdTAwM2UgL2Rldi9udWxsOyB0aGVuXFxuIFxcdFxcdFxcdFxcdG1wdGNwX2xpYl9wcl9za2lwIFxcXCJDb3VsZCBub3QgcnVuIGFsbCB0ZXN0cyB3aXRob3V0ICR7dG9vbH1cXFwiXFxuIFxcdFxcdFxcdFxcdGV4aXQgJHtLU0ZUX1NLSVB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcXG5pbmRleCBlODUwYTg3NDI5YjYxLi5hMmMyMDQ4Mzk4NmRjIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcXG5AQCAtMTUsOCArMTUsNiBAQCBjaW49XFxcIlxcXCJcXG4gY291dD1cXFwiXFxcIlxcbiB0aW1lb3V0X3BvbGw9MzBcXG4gdGltZW91dF90ZXN0PSQoKHRpbWVvdXRfcG9sbCAqIDIgKyAxKSlcXG4taXB0YWJsZXM9XFxcImlwdGFibGVzXFxcIlxcbi1pcDZ0YWJsZXM9XFxcImlwNnRhYmxlc1xcXCJcXG4gXFxuIG5zMT1cXFwiXFxcIlxcbiBuczI9XFxcIlxcXCJcXG5AQCAtNTAsMTUgKzQ4LDI1IEBAIGFkZF9tYXJrX3J1bGVzKClcXG4gXFx0bG9jYWwgbT0kMlxcbiBcXG4gXFx0bG9jYWwgdFxcbi1cXHRmb3IgdCBpbiAke2lwdGFibGVzfSAke2lwNnRhYmxlc307IGRvXFxuK1xcdGZvciB0IGluIGlwIGlwNjsgZG9cXG4rXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zXFxcIiBuZnQgYWRkIHRhYmxlIFxcXCIkdFxcXCIgZmlsdGVyXFxuK1xcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuc1xcXCIgbmZ0IGFkZCBjaGFpbiBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHQneyB0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSAwOyBwb2xpY3kgYWNjZXB0OyB9J1xcbitcXG4gXFx0XFx0IyBqdXN0IHRvIGRlYnVnOiBjaGVjayB3ZSBoYXZlIG11bHRpcGxlIHN1YmZsb3dzIGNvbm5lY3Rpb24gcmVxdWVzdHNcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXN5biAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcXG4rXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zXFxcIiBuZnQgYWRkIHJ1bGUgXFxcIiR0XFxcIiBmaWx0ZXIgT1VUUFVUIFxcXFxcXG4rXFx0XFx0XFx0dGNwIGZsYWdzIFxcXFxcXHUwMDI2IFxcXFwoZmluIFxcXFx8IHN5biBcXFxcfCByc3QgXFxcXHwgYWNrXFxcXCkgPT0gc3luIFxcXFxcXG4rXFx0XFx0XFx0bWV0YSBtYXJrIFxcXCIkbVxcXCIgYWNjZXB0XFxuIFxcbiBcXHRcXHQjIFJTVCBwYWNrZXRzIG1pZ2h0IGJlIGhhbmRsZWQgYnkgYSBpbnRlcm5hbCBkdW1teSBzb2NrZXRcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXRjcC1mbGFncyBSU1QgUlNUIC1tIG1hcmsgLS1tYXJrIDAgLWogQUNDRVBUXFxuK1xcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuc1xcXCIgbmZ0IGFkZCBydWxlIFxcXCIkdFxcXCIgZmlsdGVyIE9VVFBVVCBcXFxcXFxuK1xcdFxcdFxcdHRjcCBmbGFncyBcXFxcXFx1MDAyNiByc3QgPT0gcnN0IG1ldGEgbWFyayAweDAgYWNjZXB0XFxuK1xcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbnNcXFwiIG5mdCBhZGQgcnVsZSBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHRtZXRhIGw0cHJvdG8gdGNwIG1ldGEgbWFyayBcXFwiJG1cXFwiIGFjY2VwdFxcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbnNcXFwiIG5mdCBhZGQgcnVsZSBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHRtZXRhIGw0cHJvdG8gdGNwIG1ldGEgbWFyayAwIGNvdW50ZXIgZHJvcFxcbiBcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAwIC1qIERST1BcXG4gXFx0ZG9uZVxcbiB9XFxuIFxcbkBAIC0xMDUsMzIgKzExMywyOSBAQCBjbGVhbnVwKClcXG4gXFxuIG1wdGNwX2xpYl9jaGVja19tcHRjcFxcbiBtcHRjcF9saWJfY2hlY2tfa2FsbHN5bXNcXG4tbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIFxcXCIke2lwdGFibGVzfVxcXCIgXFxcIiR7aXA2dGFibGVzfVxcXCJcXG4rbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIG5mdFxcbiBcXG4gY2hlY2tfbWFyaygpXFxuIHtcXG4gXFx0bG9jYWwgbnM9JDFcXG4gXFx0bG9jYWwgYWY9JDJcXG4gXFxuLVxcdGxvY2FsIHRhYmxlcz0ke2lwdGFibGVzfVxcbitcXHRsb2NhbCB0YWJsZXM9XFxcImlwXFxcIlxcbiBcXG4gXFx0aWYgWyAkYWYgLWVxIDYgXTt0aGVuXFxuLVxcdFxcdHRhYmxlcz0ke2lwNnRhYmxlc31cXG4rXFx0XFx0dGFibGVzPVxcXCJpcDZcXFwiXFxuIFxcdGZpXFxuIFxcbi1cXHRsb2NhbCBjb3VudGVycyB2YWx1ZXNcXG4tXFx0Y291bnRlcnM9JChpcCBuZXRucyBleGVjICRucyAkdGFibGVzIC12IC1MIE9VVFBVVCB8IGdyZXAgRFJPUClcXG4tXFx0dmFsdWVzPSR7Y291bnRlcnMlRFJPUCp9XFxuLVxcbi1cXHRsb2NhbCB2XFxuLVxcdGZvciB2IGluICR2YWx1ZXM7IGRvXFxuLVxcdFxcdGlmIFsgJHYgLW5lIDAgXTsgdGhlblxcbi1cXHRcXHRcXHRtcHRjcF9saWJfcHJfZmFpbCBcXFwiZ290ICR0YWJsZXMgJHZhbHVlcyBpbiBucyAkbnMsXFxcIiBcXFxcXFxuLVxcdFxcdFxcdFxcdFxcdCAgXFxcIm5vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZFxcXCJcXG4tXFx0XFx0XFx0cmV0PSR7S1NGVF9GQUlMfVxcbi1cXHRcXHRcXHRyZXR1cm4gMVxcbi1cXHRcXHRmaVxcbi1cXHRkb25lXFxuK1xcdGxvY2FsIHZhbHVlc1xcbitcXHR2YWx1ZXM9JChpcCBuZXRucyBleGVjIFxcXCIkbnNcXFwiIG5mdCBsaXN0IHRhYmxlIFxcXCIkdGFibGVzXFxcIiBmaWx0ZXIgfCBcXFxcXFxuK1xcdFxcdGdyZXAgLW8gXFxcInBhY2tldHMuKmRyb3BcXFwiIHwgYXdrICd7cHJpbnQgJDJ9JylcXG4rXFxuK1xcdGlmIFtbICEgXFxcIiR2YWx1ZXNcXFwiID1+IF5bMC05XSskIF1dIHx8IFsgXFxcIiR2YWx1ZXNcXFwiIC1uZSAwIF07IHRoZW5cXG4rXFx0XFx0bXB0Y3BfbGliX3ByX2ZhaWwgXFxcImdvdCAkdGFibGVzICR2YWx1ZXMgaW4gbnMgJG5zLFxcXCIgXFxcXFxcbitcXHRcXHRcXHRcXHQgIFxcXCJub3QgMCAtIG5vdCBhbGwgZXhwZWN0ZWQgcGFja2V0cyBtYXJrZWRcXFwiXFxuK1xcdFxcdHJldD0ke0tTRlRfRkFJTH1cXG4rXFx0XFx0cmV0dXJuIDFcXG4rXFx0ZmlcXG4gXFxuIFxcdHJldHVybiAwXFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDA6NTk6NTkuMTYwNjM2NDQ5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxMDA0OTQ1ODQzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWM0Y2NiZjcwYjUxNjVmMmYzM2QxNWQ4MjhkMzQ5Zjc4NWQ5YjgxZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDQgMDA6NTk6NTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xuaW5kZXggNTkwNTFlZTJhOTg2MC4uMGQwYTc0NGM0Y2E4OSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbkBAIC0zMCw2ICszMCw5IEBAIENPTkZJR19ORVRfU0NIX05FVEVNPW1cbiBDT05GSUdfTkZfVEFCTEVTPW1cbiBDT05GSUdfTkZfVEFCTEVTX0lORVQ9eVxuIENPTkZJR19ORlRfQ09NUEFUPW1cbitDT05GSUdfTkZUX05VTUdFTj15XG4rQ09ORklHX05GVF9SRUpFQ1Q9bVxuK0NPTkZJR19ORlRfUkVKRUNUX0lQVjQ9bVxuIENPTkZJR19ORlRfU09DS0VUPW1cbiBDT05GSUdfTkZUX1RQUk9YWT1tXG4gQ09ORklHX1NZTl9DT09LSUVTPXlcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfam9pbi5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXG5pbmRleCAxOGNlNzEzNmEyYjBlLi43YzU2NjgwY2M0MjIxIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2hcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXG5AQCAtMjYsOCArMjYsNiBAQCBjYXBvdXQ9XCJcIlxuIGNhcHBpZD1cIlwiXG4gbnMxPVwiXCJcbiBuczI9XCJcIlxuLWlwdGFibGVzPVwiaXB0YWJsZXNcIlxuLWlwNnRhYmxlcz1cImlwNnRhYmxlc1wiXG4gdGltZW91dF9wb2xsPTMwXG4gdGltZW91dF90ZXN0PSQoKHRpbWVvdXRfcG9sbCAqIDIgKyAxKSlcbiBjYXB0dXJlPWZhbHNlXG5AQCAtNTAsNiArNDgsNyBAQCBkZWNsYXJlIC1BIGZhaWxlZF90ZXN0c1xuIE1QVENQX0xJQl9URVNUX0ZPUk1BVD1cIiUwM3UgJXNcXG5cIlxuIFRFU1RfTkFNRT1cIlwiXG4gbnJfYmxhbms9NlxuK25mdF9oYW5kbGU9XCJcIlxuIFxuICMgVGhlc2UgdmFyIGFyZSB1c2VkIG9ubHkgaW4gc29tZSB0ZXN0cywgbWFrZSBzdXJlIHRoZXkgYXJlIG5vdCBhbHJlYWR5IHNldFxuIHVuc2V0IEZBSUxJTkdfTElOS1NcbkBAIC05OSw0MiArOTgsNiBAQCB1bnNldCBhZGRfYWRkcl90eF9uclxuIHVuc2V0IGFkZF9hZGRyX2VjaG9fdHhfbnJcbiB1bnNldCBhZGRfYWRkcl9kcm9wX3R4X25yXG4gXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCJuZmJwZl9jb21waWxlICcoaXAgXHUwMDI2XHUwMDI2IChpcFs1NF0gXHUwMDI2IDB4ZjApID09IDB4MzApIHx8XG4tI1x0XHRcdFx0ICAoaXA2IFx1MDAyNlx1MDAyNiAoaXA2Wzc0XSBcdTAwMjYgMHhmMCkgPT0gMHgzMCknXCJcbi1DQlBGX01QVENQX1NVQk9QVElPTl9BRERfQUREUj1cIjE0LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgMCxcbi1cdFx0XHQgICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAgMjEgMCAzIDY0LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgNTQsXG4tXHRcdFx0ICAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgIDIxIDYgNyA0OCxcbi1cdFx0XHQgICAgICAgNDggMCAwIDAsXG4tXHRcdFx0ICAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgIDIxIDAgNCA5Nixcbi1cdFx0XHQgICAgICAgNDggMCAwIDc0LFxuLVx0XHRcdCAgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgICAyMSAwIDEgNDgsXG4tXHRcdFx0ICAgICAgIDYgMCAwIDY1NTM1LFxuLVx0XHRcdCAgICAgICA2IDAgMCAwXCJcbi1cbi0jIElQdjQ6IFRDUCBoZHIgb2YgNDhCLCBhIGZpcnN0IHN1Ym9wdGlvbiBvZiAxMkIgKERBQ0s4KSwgdGhlIFJNX0FERFIgc3Vib3B0aW9uXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCJuZmJwZl9jb21waWxlICcoaXBbMzJdIFx1MDAyNiAweGYwKSA9PSAweGMwIFx1MDAyNlx1MDAyNiBpcFs1M10gPT0gMHgwYyBcdTAwMjZcdTAwMjZcbi0jXHRcdFx0XHQgIChpcFs2Nl0gXHUwMDI2IDB4ZjApID09IDB4NDAnXCJcbi1DQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSPVwiMTMsXG4tXHRcdFx0ICAgICAgNDggMCAwIDAsXG4tXHRcdFx0ICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAyMSAwIDkgNjQsXG4tXHRcdFx0ICAgICAgNDggMCAwIDMyLFxuLVx0XHRcdCAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgMjEgMCA2IDE5Mixcbi1cdFx0XHQgICAgICA0OCAwIDAgNTMsXG4tXHRcdFx0ICAgICAgMjEgMCA0IDEyLFxuLVx0XHRcdCAgICAgIDQ4IDAgMCA2Nixcbi1cdFx0XHQgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgIDIxIDAgMSA2NCxcbi1cdFx0XHQgICAgICA2IDAgMCA2NTUzNSxcbi1cdFx0XHQgICAgICA2IDAgMCAwXCJcbi1cbiBpbml0X3BhcnRpYWwoKVxuIHtcbiBcdGNhcG91dD0kKG1rdGVtcClcbkBAIC0xNDcsNiArMTEwLDE4IEBAIGluaXRfcGFydGlhbCgpXG4gXHRcdGlmICRjaGVja3N1bTsgdGhlblxuIFx0XHRcdGlwIG5ldG5zIGV4ZWMgJG5ldG5zIHN5c2N0bCAtcSBuZXQubXB0Y3AuY2hlY2tzdW1fZW5hYmxlZD0xXG4gXHRcdGZpXG4rXG4rXHRcdGZvciB0IGluIGlwIGlwNjsgZG9cbitcdFx0XHRpcCBuZXRucyBleGVjIFwiJG5ldG5zXCIgbmZ0IGFkZCB0YWJsZSBcIiR0XCIgZmlsdGVyXG4rXHRcdFx0aXAgbmV0bnMgZXhlYyBcIiRuZXRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIGZpbHRlciBJTlBVVCBcXFxuK1x0XHRcdFx0J3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0nXG4rXHRcdFx0aXAgbmV0bnMgZXhlYyBcIiRuZXRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIGZpbHRlciBPVVRQVVQgXFxcbitcdFx0XHRcdCd7IHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDsgfSdcbitcbitcdFx0XHRpcCBuZXRucyBleGVjIFwiJG5ldG5zXCIgbmZ0IGFkZCB0YWJsZSBcIiR0XCIgbWFuZ2xlXG4rXHRcdFx0aXAgbmV0bnMgZXhlYyBcIiRuZXRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIG1hbmdsZSBPVVRQVVQgXFxcbitcdFx0XHRcdCd7IHR5cGUgcm91dGUgaG9vayBvdXRwdXQgcHJpb3JpdHkgbWFuZ2xlOyBwb2xpY3kgYWNjZXB0OyB9J1xuK1x0XHRkb25lXG4gXHRkb25lXG4gXG4gXHRjaGVja19pbnZlcnQ9MFxuQEAgLTE5Niw3ICsxNzEsNyBAQCBpbml0KCkge1xuIFxuIFx0bXB0Y3BfbGliX2NoZWNrX21wdGNwXG4gXHRtcHRjcF9saWJfY2hlY2tfa2FsbHN5bXNcbi1cdG1wdGNwX2xpYl9jaGVja190b29scyBpcCB0YyBzcyBcIiR7aXB0YWJsZXN9XCIgXCIke2lwNnRhYmxlc31cIlxuK1x0bXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIHRjIHNzIG5mdFxuIFxuIFx0c2luPSQobWt0ZW1wKVxuIFx0c291dD0kKG1rdGVtcClcbkBAIC0zODAsMjQgKzM1NSwxOCBAQCByZXNldF93aXRoX2Nvb2tpZXMoKVxuICMgJDE6IHRlc3QgbmFtZVxuIHJlc2V0X3dpdGhfYWRkX2FkZHJfdGltZW91dCgpXG4ge1xuLVx0bG9jYWwgaXA9XCIkezI6LTR9XCJcbi1cdGxvY2FsIHRhYmxlc1xuK1x0bG9jYWwgaXA9XCIkezI6LX1cIlxuIFxuIFx0cmVzZXQgXCIkezF9XCIgfHwgcmV0dXJuIDFcbiBcbi1cdHRhYmxlcz1cIiR7aXB0YWJsZXN9XCJcbi1cdGlmIFsgJGlwIC1lcSA2IF07IHRoZW5cbi1cdFx0dGFibGVzPVwiJHtpcDZ0YWJsZXN9XCJcbi1cdGZpXG4tXG4gXHQjIHNldCBhIG1heGltdW0sIHRvIGF2b2lkIHRvbyBsb25nIHRpbWVvdXQgd2l0aCBleHBvbmVudGlhbCBiYWNrb2ZmXG4gXHRpcCBuZXRucyBleGVjICRuczEgc3lzY3RsIC1xIG5ldC5tcHRjcC5hZGRfYWRkcl90aW1lb3V0PTFcbiBcbi1cdGlmICEgaXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgLUEgT1VUUFVUIC1wIHRjcCBcXFxuLVx0XHRcdC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcbi1cdFx0XHQtbSBicGYgLS1ieXRlY29kZSBcXFxuLVx0XHRcdFwiJENCUEZfTVBUQ1BfU1VCT1BUSU9OX0FERF9BRERSXCIgXFxcbi1cdFx0XHQtaiBEUk9QOyB0aGVuXG4rXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiRuczJcIiBuZnQgLWUgLS1oYW5kbGUgYWRkIHJ1bGUgXFxcbitcdFx0aXBcIiRpcFwiIGZpbHRlciBPVVRQVVQgbWV0YSBsNHByb3RvIHRjcCBcXFxuK1x0XHR0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgYWRkLWFkZHIgXFxcbitcdFx0ZHJvcCB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXG4rXHRpZiBbIC16IFwiJG5mdF9oYW5kbGVcIiBdOyB0aGVuXG4gXHRcdG1hcmtfYXNfc2tpcHBlZCBcInVuYWJsZSB0byBzZXQgdGhlICdhZGQgYWRkcicgcnVsZVwiXG4gXHRcdHJldHVybiAxXG4gXHRmaVxuQEAgLTQ0OSwyMyArNDE4LDE3IEBAIHNldHVwX2ZhaWxfcnVsZXMoKVxuIFx0Y2hlY2tfaW52ZXJ0PTFcbiBcdHZhbGlkYXRlX2NoZWNrc3VtPXRydWVcbiBcdGxvY2FsIGk9XCIkMVwiXG4tXHRsb2NhbCBpcD1cIiR7MjotNH1cIlxuLVx0bG9jYWwgdGFibGVzXG4rXHRsb2NhbCBpcD1cIiR7MjotfVwiXG4gXG4tXHR0YWJsZXM9XCIke2lwdGFibGVzfVwiXG4tXHRpZiBbICRpcCAtZXEgNiBdOyB0aGVuXG4tXHRcdHRhYmxlcz1cIiR7aXA2dGFibGVzfVwiXG4rXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiRuczJcIiBuZnQgLWUgLS1oYW5kbGUgYWRkIHJ1bGUgXFxcbitcdFx0aXBcIiRpcFwiIG1hbmdsZSBPVVRQVVQgb2lmbmFtZSBuczJldGgkaSBcXFxuK1x0XHRtZXRhIGw0cHJvdG8gdGNwIFxcXG4rXHRcdG1ldGEgbGVuZ3RoIDE1MC05OTk5IG51bWdlbiBpbmMgbW9kIDk5OTk5IDEgXFxcbitcdFx0bWV0YSBtYXJrIHNldCA0MiB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXG4rXHRpZiBbIC16IFwiJG5mdF9oYW5kbGVcIiBdOyB0aGVuXG4rXHRcdHJldHVybiAke0tTRlRfU0tJUH1cbiBcdGZpXG4gXG4tXHRpcCBuZXRucyBleGVjICRuczIgJHRhYmxlcyBcXFxuLVx0XHQtdCBtYW5nbGUgXFxcbi1cdFx0LUEgT1VUUFVUIFxcXG4tXHRcdC1vIG5zMmV0aCRpIFxcXG4tXHRcdC1wIHRjcCBcXFxuLVx0XHQtbSBsZW5ndGggLS1sZW5ndGggMTUwOjk5OTkgXFxcbi1cdFx0LW0gc3RhdGlzdGljIC0tbW9kZSBudGggLS1wYWNrZXQgMSAtLWV2ZXJ5IDk5OTk5IFxcXG4tXHRcdC1qIE1BUksgLS1zZXQtbWFyayA0MiB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9XG4tXG4gXHR0YyAtbiAkbnMyIHFkaXNjIGFkZCBkZXYgbnMyZXRoJGkgY2xzYWN0IHx8IHJldHVybiAke0tTRlRfU0tJUH1cbiBcdHRjIC1uICRuczIgZmlsdGVyIGFkZCBkZXYgbnMyZXRoJGkgZWdyZXNzIFxcXG4gXHRcdHByb3RvY29sIGlwIHByaW8gMTAwMCBcXFxuQEAgLTUxNSwxMSArNDc4LDEwIEBAIHJlc2V0X3dpdGhfdGNwX2ZpbHRlcigpXG4gXHRsb2NhbCB0YXJnZXQ9XCIkezN9XCJcbiBcdGxvY2FsIGNoYWluPVwiJHs0Oi1JTlBVVH1cIlxuIFxuLVx0aWYgISBpcCBuZXRucyBleGVjIFwiJHtuc31cIiAke2lwdGFibGVzfSBcXFxuLVx0XHRcdC1BIFwiJHtjaGFpbn1cIiBcXFxuLVx0XHRcdC1zIFwiJHtzcmN9XCIgXFxcbi1cdFx0XHQtcCB0Y3AgXFxcbi1cdFx0XHQtaiBcIiR7dGFyZ2V0fVwiOyB0aGVuXG4rXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiRuc1wiIG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxuK1x0XHRpcCBmaWx0ZXIgXCIke2NoYWlufVwiIGlwIHNhZGRyIFwieyAke3NyY30gfVwiIFxcXG4rXHRcdG1ldGEgbDRwcm90byB0Y3AgXCIke3RhcmdldCwsfVwiIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcbitcdGlmIFsgLXogXCIkbmZ0X2hhbmRsZVwiIF07IHRoZW5cbiBcdFx0bWFya19hc19za2lwcGVkIFwidW5hYmxlIHRvIHNldCB0aGUgZmlsdGVyIHJ1bGVzXCJcbiBcdFx0cmV0dXJuIDFcbiBcdGZpXG5AQCAtNDMxNSwxMCArNDI3NywxMiBAQCB1c2Vyc3BhY2VfdGVzdHMoKVxuIFxuIFx0XHQjIGZvcmNlIHF1aWNrIGxvc3NcbiBcdFx0aXAgbmV0bnMgZXhlYyAkbnMyIHN5c2N0bCAtcSBuZXQuaXB2NC50Y3Bfc3luX3JldHJpZXM9MVxuLVx0XHRpZiBpcCBuZXRucyBleGVjIFwiJHtuczF9XCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLXMgXCIxMC4wLjEuMlwiIFxcXG4tXHRcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0IFx1MDAyNlx1MDAyNlxuLVx0XHQgICBpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgXCIxMC4wLjEuMlwiIFxcXG4tXHRcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0OyB0aGVuXG4rXHRcdGlmIGlwIG5ldG5zIGV4ZWMgXCIke25zMX1cIiBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFxcXG4rXHRcdFx0aXAgc2FkZHIgXCIxMC4wLjEuMlwiIG1ldGEgbDRwcm90byB0Y3AgXFxcbitcdFx0XHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQgXHUwMDI2XHUwMDI2XG4rXHRcdCAgIGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFxcXG4rXHRcdFx0aXAgZGFkZHIgXCIxMC4wLjEuMlwiIG1ldGEgbDRwcm90byB0Y3AgXFxcbitcdFx0XHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQ7IHRoZW5cbiBcdFx0XHR3YWl0X2V2ZW50IG5zMiBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxXG4gXHRcdFx0d2FpdF9ldmVudCBuczEgTVBUQ1BfTElCX0VWRU5UX1NVQl9DTE9TRUQgMVxuIFx0XHRcdGNoa19zdWJmbG93c190b3RhbCAxIDFcbkBAIC00MzkzLDcgKzQzNTcsNyBAQCBlbmRwb2ludF90ZXN0cygpXG4gXHRcdGNoa19zdWJmbG93X25yIFwiYWZ0ZXIgbmV3IHJlamVjdFwiIDJcbiBcdFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMSBzdWJmbG93cyAxXG4gXG4tXHRcdGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgXCIxMC4wLjMuMlwiIC1wIHRjcCAtaiBSRUpFQ1RcbitcdFx0aXAgbmV0bnMgZXhlYyBcIiR7bnMyfVwiIG5mdCBkZWxldGUgcnVsZSBpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcIiRuZnRfaGFuZGxlXCJcbiBcdFx0cG1fbmxfZGVsX2VuZHBvaW50ICRuczIgMyAxMC4wLjMuMlxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3dcbiBcdFx0d2FpdF9tcGogM1xuQEAgLTQ0MDIsMTIgKzQzNjYsMTAgQEAgZW5kcG9pbnRfdGVzdHMoKVxuIFxuIFx0XHQjIFRvIG1ha2Ugc3VyZSBSTV9BRERSIGFyZSBzZW50IG92ZXIgYSBkaWZmZXJlbnQgc3ViZmxvdywgYnV0XG4gXHRcdCMgYWxsb3cgdGhlIHJlc3QgdG8gcXVpY2tseSBhbmQgY2xlYW5seSBjbG9zZSB0aGUgc3ViZmxvd1xuLVx0XHRsb2NhbCBpcHQ9MVxuLVx0XHRpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgJHtpcHRhYmxlc30gLUkgT1VUUFVUIC1zIFwiMTAuMC4xLjJcIiBcXFxuLVx0XHRcdC1wIHRjcCAtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXG4tXHRcdFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcbi1cdFx0XHRcIiRDQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSXCIgXFxcbi1cdFx0XHQtaiBEUk9QIHx8IGlwdD0wXG4rXHRcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgbmZ0IC1lIC0taGFuZGxlIGluc2VydCBydWxlIFxcXG4rXHRcdFx0aXAgZmlsdGVyIE9VVFBVVCBpcCBzYWRkciAxMC4wLjEuMiBtZXRhIGw0cHJvdG8gdGNwIFxcXG4rXHRcdFx0dGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIHJlbW92ZS1hZGRyIFxcXG4rXHRcdFx0ZHJvcCB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXG4gXHRcdGxvY2FsIGlcbiBcdFx0Zm9yIGkgaW4gJChzZXEgMyk7IGRvXG4gXHRcdFx0cG1fbmxfZGVsX2VuZHBvaW50ICRuczIgMSAxMC4wLjEuMlxuQEAgLTQ0MjAsNyArNDM4Miw4IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0XHRjaGtfc3ViZmxvd19uciBcImFmdGVyIHJlLWFkZCBpZCAwICgkaSlcIiAzXG4gXHRcdFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMyBzdWJmbG93cyAzXG4gXHRcdGRvbmVcbi1cdFx0WyAke2lwdH0gPSAxIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuK1x0XHRbIC1uIFwiJHtuZnRfaGFuZGxlfVwiIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiBuZnQgZGVsZXRlIHJ1bGUgXFxcbitcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcIiR7bmZ0X2hhbmRsZX1cIlxuIFxuIFx0XHRtcHRjcF9saWJfa2lsbF9ncm91cF93YWl0ICR0ZXN0c19waWRcbiBcbkBAIC00NDgyLDE4ICs0NDQ1LDE3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcbiBcdFx0IyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dFxuIFx0XHQjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3dcbi1cdFx0bG9jYWwgaXB0PTFcbi1cdFx0aXAgbmV0bnMgZXhlYyBcIiR7bnMxfVwiICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyBcIjEwLjAuMS4xXCIgXFxcbi1cdFx0XHQtcCB0Y3AgLW0gdGNwIC0tdGNwLW9wdGlvbiAzMCBcXFxuLVx0XHRcdC1tIGJwZiAtLWJ5dGVjb2RlIFxcXG4tXHRcdFx0XCIkQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUlwiIFxcXG4tXHRcdFx0LWogRFJPUCB8fCBpcHQ9MFxuK1x0XHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiR7bnMxfVwiIG5mdCAtZSAtLWhhbmRsZSBpbnNlcnQgcnVsZSBcXFxuK1x0XHRcdGlwIGZpbHRlciBPVVRQVVQgaXAgc2FkZHIgMTAuMC4xLjEgbWV0YSBsNHByb3RvIHRjcCBcXFxuK1x0XHRcdHRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcXFxuK1x0XHRcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAne3ByaW50ICRORn0nKVxuIFx0XHRwbV9ubF9kZWxfZW5kcG9pbnQgJG5zMSA0MiAxMC4wLjEuMVxuIFx0XHRzbGVlcCAwLjVcbiBcdFx0Y2hrX3N1YmZsb3dfbnIgXCJhZnRlciBkZWxldGUgSUQgMFwiIDJcbiBcdFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMiBzdWJmbG93cyAyXG4gXHRcdGNoa19tcHRjcF9pbmZvIGFkZF9hZGRyX3NpZ25hbCAyIGFkZF9hZGRyX2FjY2VwdGVkIDJcbi1cdFx0WyAke2lwdH0gPSAxIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMX1cIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuK1x0XHRbIC1uIFwiJHtuZnRfaGFuZGxlfVwiIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMX1cIiBuZnQgZGVsZXRlIHJ1bGUgXFxcbitcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcIiR7bmZ0X2hhbmRsZX1cIlxuIFxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjEuMSBpZCA0MiBmbGFncyBzaWduYWxcbiBcdFx0d2FpdF9tcGogNFxuQEAgLTQ1NTUsNyArNDUxNyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0cG1fbmxfZmx1c2hfZW5kcG9pbnQgJG5zMlxuIFx0XHRwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMxXG4gXHRcdHdhaXRfcm1fYWRkciAkbnMyIDBcbi1cdFx0aXAgbmV0bnMgZXhlYyBcIiR7bnMyfVwiICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAtcyBcIjEwLjAuMy4yXCIgLXAgdGNwIC1qIFJFSkVDVFxuK1x0XHRpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlIFwiJG5mdF9oYW5kbGVcIlxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3dcbiBcdFx0d2FpdF9tcGogMVxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjMuMSBpZCAyIGZsYWdzIHNpZ25hbFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoXG5pbmRleCA1ZWY2MDMzNzc1Yzg2Li5lYmE2OTAzMjMzY2NmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuQEAgLTUyNCw3ICs1MjQsNyBAQCBtcHRjcF9saWJfY2hlY2tfdG9vbHMoKSB7XG4gXHRcdFx0XHRleGl0ICR7S1NGVF9TS0lQfVxuIFx0XHRcdGZpXG4gXHRcdFx0Oztcbi1cdFx0XCJpcHRhYmxlc1wiKiB8IFwiaXA2dGFibGVzXCIqKVxuK1x0XHRcImlwdGFibGVzXCIqIHwgXCJpcDZ0YWJsZXNcIiogfCBcIm5mdFwiKilcbiBcdFx0XHRpZiAhIFwiJHt0b29sfVwiIC1WIFx1MDAyNlx1MDAzZSAvZGV2L251bGw7IHRoZW5cbiBcdFx0XHRcdG1wdGNwX2xpYl9wcl9za2lwIFwiQ291bGQgbm90IHJ1biBhbGwgdGVzdHMgd2l0aG91dCAke3Rvb2x9XCJcbiBcdFx0XHRcdGV4aXQgJHtLU0ZUX1NLSVB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaFxuaW5kZXggZTg1MGE4NzQyOWI2MS4uYTJjMjA0ODM5ODZkYyAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaFxuQEAgLTE1LDggKzE1LDYgQEAgY2luPVwiXCJcbiBjb3V0PVwiXCJcbiB0aW1lb3V0X3BvbGw9MzBcbiB0aW1lb3V0X3Rlc3Q9JCgodGltZW91dF9wb2xsICogMiArIDEpKVxuLWlwdGFibGVzPVwiaXB0YWJsZXNcIlxuLWlwNnRhYmxlcz1cImlwNnRhYmxlc1wiXG4gXG4gbnMxPVwiXCJcbiBuczI9XCJcIlxuQEAgLTUwLDE1ICs0OCwyNSBAQCBhZGRfbWFya19ydWxlcygpXG4gXHRsb2NhbCBtPSQyXG4gXG4gXHRsb2NhbCB0XG4tXHRmb3IgdCBpbiAke2lwdGFibGVzfSAke2lwNnRhYmxlc307IGRvXG4rXHRmb3IgdCBpbiBpcCBpcDY7IGRvXG4rXHRcdGlwIG5ldG5zIGV4ZWMgXCIkbnNcIiBuZnQgYWRkIHRhYmxlIFwiJHRcIiBmaWx0ZXJcbitcdFx0aXAgbmV0bnMgZXhlYyBcIiRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIGZpbHRlciBPVVRQVVQgXFxcbitcdFx0XHQneyB0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSAwOyBwb2xpY3kgYWNjZXB0OyB9J1xuK1xuIFx0XHQjIGp1c3QgdG8gZGVidWc6IGNoZWNrIHdlIGhhdmUgbXVsdGlwbGUgc3ViZmxvd3MgY29ubmVjdGlvbiByZXF1ZXN0c1xuLVx0XHRpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC0tc3luIC1tIG1hcmsgLS1tYXJrICRtIC1qIEFDQ0VQVFxuK1x0XHRpcCBuZXRucyBleGVjIFwiJG5zXCIgbmZ0IGFkZCBydWxlIFwiJHRcIiBmaWx0ZXIgT1VUUFVUIFxcXG4rXHRcdFx0dGNwIGZsYWdzIFxcXHUwMDI2IFxcKGZpbiBcXHwgc3luIFxcfCByc3QgXFx8IGFja1xcKSA9PSBzeW4gXFxcbitcdFx0XHRtZXRhIG1hcmsgXCIkbVwiIGFjY2VwdFxuIFxuIFx0XHQjIFJTVCBwYWNrZXRzIG1pZ2h0IGJlIGhhbmRsZWQgYnkgYSBpbnRlcm5hbCBkdW1teSBzb2NrZXRcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXRjcC1mbGFncyBSU1QgUlNUIC1tIG1hcmsgLS1tYXJrIDAgLWogQUNDRVBUXG4rXHRcdGlwIG5ldG5zIGV4ZWMgXCIkbnNcIiBuZnQgYWRkIHJ1bGUgXCIkdFwiIGZpbHRlciBPVVRQVVQgXFxcbitcdFx0XHR0Y3AgZmxhZ3MgXFxcdTAwMjYgcnN0ID09IHJzdCBtZXRhIG1hcmsgMHgwIGFjY2VwdFxuK1xuK1x0XHRpcCBuZXRucyBleGVjIFwiJG5zXCIgbmZ0IGFkZCBydWxlIFwiJHRcIiBmaWx0ZXIgT1VUUFVUIFxcXG4rXHRcdFx0bWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgXCIkbVwiIGFjY2VwdFxuK1x0XHRpcCBuZXRucyBleGVjIFwiJG5zXCIgbmZ0IGFkZCBydWxlIFwiJHRcIiBmaWx0ZXIgT1VUUFVUIFxcXG4rXHRcdFx0bWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgMCBjb3VudGVyIGRyb3BcbiBcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAwIC1qIERST1BcbiBcdGRvbmVcbiB9XG4gXG5AQCAtMTA1LDMyICsxMTMsMjkgQEAgY2xlYW51cCgpXG4gXG4gbXB0Y3BfbGliX2NoZWNrX21wdGNwXG4gbXB0Y3BfbGliX2NoZWNrX2thbGxzeW1zXG4tbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIFwiJHtpcHRhYmxlc31cIiBcIiR7aXA2dGFibGVzfVwiXG4rbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIG5mdFxuIFxuIGNoZWNrX21hcmsoKVxuIHtcbiBcdGxvY2FsIG5zPSQxXG4gXHRsb2NhbCBhZj0kMlxuIFxuLVx0bG9jYWwgdGFibGVzPSR7aXB0YWJsZXN9XG4rXHRsb2NhbCB0YWJsZXM9XCJpcFwiXG4gXG4gXHRpZiBbICRhZiAtZXEgNiBdO3RoZW5cbi1cdFx0dGFibGVzPSR7aXA2dGFibGVzfVxuK1x0XHR0YWJsZXM9XCJpcDZcIlxuIFx0ZmlcbiBcbi1cdGxvY2FsIGNvdW50ZXJzIHZhbHVlc1xuLVx0Y291bnRlcnM9JChpcCBuZXRucyBleGVjICRucyAkdGFibGVzIC12IC1MIE9VVFBVVCB8IGdyZXAgRFJPUClcbi1cdHZhbHVlcz0ke2NvdW50ZXJzJURST1AqfVxuLVxuLVx0bG9jYWwgdlxuLVx0Zm9yIHYgaW4gJHZhbHVlczsgZG9cbi1cdFx0aWYgWyAkdiAtbmUgMCBdOyB0aGVuXG4tXHRcdFx0bXB0Y3BfbGliX3ByX2ZhaWwgXCJnb3QgJHRhYmxlcyAkdmFsdWVzIGluIG5zICRucyxcIiBcXFxuLVx0XHRcdFx0XHQgIFwibm90IDAgLSBub3QgYWxsIGV4cGVjdGVkIHBhY2tldHMgbWFya2VkXCJcbi1cdFx0XHRyZXQ9JHtLU0ZUX0ZBSUx9XG4tXHRcdFx0cmV0dXJuIDFcbi1cdFx0Zmlcbi1cdGRvbmVcbitcdGxvY2FsIHZhbHVlc1xuK1x0dmFsdWVzPSQoaXAgbmV0bnMgZXhlYyBcIiRuc1wiIG5mdCBsaXN0IHRhYmxlIFwiJHRhYmxlc1wiIGZpbHRlciB8IFxcXG4rXHRcdGdyZXAgLW8gXCJwYWNrZXRzLipkcm9wXCIgfCBhd2sgJ3twcmludCAkMn0nKVxuK1xuK1x0aWYgW1sgISBcIiR2YWx1ZXNcIiA9fiBeWzAtOV0rJCBdXSB8fCBbIFwiJHZhbHVlc1wiIC1uZSAwIF07IHRoZW5cbitcdFx0bXB0Y3BfbGliX3ByX2ZhaWwgXCJnb3QgJHRhYmxlcyAkdmFsdWVzIGluIG5zICRucyxcIiBcXFxuK1x0XHRcdFx0ICBcIm5vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZFwiXG4rXHRcdHJldD0ke0tTRlRfRkFJTH1cbitcdFx0cmV0dXJuIDFcbitcdGZpXG4gXG4gXHRyZXR1cm4gMFxuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDAwOjU5OjU5LjE2MDYzODAyOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwMDQ5NDI2MTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgRWxpZ2liaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayBkb3duIHRoaXMgcGF0Y2ggYW5kIHRoZSBhc3NvY2lhdGVkIGRpZmYuIEZpcnN0LCBJIHNlZSB0aGUgY2hhbmdlcyBhcmUgYWxsIGNvbmZpbmVkIHRvIHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2AgZGlyZWN0b3J5LiBTcGVjaWZpY2FsbHksIHdlJ3JlIGxvb2tpbmcgYXQgbW9kaWZpY2F0aW9ucyB0byBgY29uZmlnYCwgYG1wdGNwX2pvaW4uc2hgLCBgbXB0Y3BfbGliLnNoYCwgYW5kIGBtcHRjcF9zb2Nrb3B0LnNoYC4gQWxsIHZlcnkgY2xlYXJseSB3aXRoaW4gdGhlIHJlYWxtIG9mIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgc2NyaXB0cy5cblxuTm93LCBsZXQncyBhcHBseSBTZWN0aW9uIDIgb2YgdGhlIGZ1enppbmcgZWxpZ2liaWxpdHkgcnVsZXMuIFRoZSBrZXkgcXVlc3Rpb24gaXMsIFwiRG9lcyB0aGlzIHRvdWNoIGFueSBjb2RlIHRoYXQgKnJlYWxseSogbWF0dGVycyBmb3IgZnV6emluZyB0aGUga2VybmVsP1wiIExvb2tpbmcgYXQgdGhlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAsIGl0J3MgcHJldHR5IGNsZWFyIHRoaXMgZmFsbHMgc3F1YXJlbHkgaW50byB0aGUgXCJ1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlXCIgY2F0ZWdvcnkuIFdlJ3JlIHRhbGtpbmcgYmFzaCBzY3JpcHRzIGFuZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgbm90aGluZyB0aGF0J3MgZ29pbmcgdG8gaW5mbHVlbmNlIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2Ugb3Iga2VybmVsIG1vZHVsZXMuIE5vIEMgY29kZSwgbm8gY29yZSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLCBub3RoaW5nLlxuXG5UaGVyZWZvcmUsIGdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIG1vZGlmaWNhdGlvbnMsIGl0J3MgYSBzdHJhaWdodGZvcndhcmQgZGV0ZXJtaW5hdGlvbjogYFdvcnRoRnV6emluZ2AgaXMgZGVmaW5pdGl2ZWx5IGBmYWxzZWAuIEJlY2F1c2Ugd2UgYXJlIGRlYWxpbmcgd2l0aCBzY3JpcHRzLCB0aGVyZSBpcyBubyBuZWVkIGZvciBgRm9jdXNTeW1ib2xzYCBvciBgRW5hYmxlQ29uZmlnc2AuIFRoZXNlIGFyZSBpcnJlbGV2YW50IGluIHRoaXMgY2FzZS5cblxuVGltZSB0byBleGVjdXRlIGBzZXQtcmVzdWx0c2Agd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGFyYW1ldGVycy5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk5MiwiT3V0cHV0VG9rZW5zIjo3OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwOSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDAxOjAwOjA5LjIxMDA2NjYxMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY1NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMTowMDowOS4yMTAwOTY1NDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm2jnb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-04 00:57:56 +0000 UTC FinishedAt: 2026-09-04 01:00:09 +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+CgkJCTx0ZD4yMDI2LzA5LzA0IDAwOjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMDA6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YzRjY2JmNzBiNTE2NWYyZjMzZDE1ZDgyOGQzNDlmNzg1ZDliODFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgNCAwMDo1OTo1NyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xuaW5kZXggNTkwNTFlZTJhOTg2MC4uMGQwYTc0NGM0Y2E4OSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbkBAIC0zMCw2ICYjNDM7MzAsOSBAQCBDT05GSUdfTkVUX1NDSF9ORVRFTT1tXG4gQ09ORklHX05GX1RBQkxFUz1tXG4gQ09ORklHX05GX1RBQkxFU19JTkVUPXlcbiBDT05GSUdfTkZUX0NPTVBBVD1tXG4mIzQzO0NPTkZJR19ORlRfTlVNR0VOPXlcbiYjNDM7Q09ORklHX05GVF9SRUpFQ1Q9bVxuJiM0MztDT05GSUdfTkZUX1JFSkVDVF9JUFY0PW1cbiBDT05GSUdfTkZUX1NPQ0tFVD1tXG4gQ09ORklHX05GVF9UUFJPWFk9bVxuIENPTkZJR19TWU5fQ09PS0lFUz15XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfam9pbi5zaFxuaW5kZXggMThjZTcxMzZhMmIwZS4uN2M1NjY4MGNjNDIyMSAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfam9pbi5zaFxuQEAgLTI2LDggJiM0MzsyNiw2IEBAIGNhcG91dD1cJiMzNDtcJiMzNDtcbiBjYXBwaWQ9XCYjMzQ7XCYjMzQ7XG4gbnMxPVwmIzM0O1wmIzM0O1xuIG5zMj1cJiMzNDtcJiMzNDtcbi1pcHRhYmxlcz1cJiMzNDtpcHRhYmxlc1wmIzM0O1xuLWlwNnRhYmxlcz1cJiMzNDtpcDZ0YWJsZXNcJiMzNDtcbiB0aW1lb3V0X3BvbGw9MzBcbiB0aW1lb3V0X3Rlc3Q9JCgodGltZW91dF9wb2xsICogMiAmIzQzOyAxKSlcbiBjYXB0dXJlPWZhbHNlXG5AQCAtNTAsNiAmIzQzOzQ4LDcgQEAgZGVjbGFyZSAtQSBmYWlsZWRfdGVzdHNcbiBNUFRDUF9MSUJfVEVTVF9GT1JNQVQ9XCYjMzQ7JTAzdSAlc1xcblwmIzM0O1xuIFRFU1RfTkFNRT1cJiMzNDtcJiMzNDtcbiBucl9ibGFuaz02XG4mIzQzO25mdF9oYW5kbGU9XCYjMzQ7XCYjMzQ7XG4gXG4gIyBUaGVzZSB2YXIgYXJlIHVzZWQgb25seSBpbiBzb21lIHRlc3RzLCBtYWtlIHN1cmUgdGhleSBhcmUgbm90IGFscmVhZHkgc2V0XG4gdW5zZXQgRkFJTElOR19MSU5LU1xuQEAgLTk5LDQyICYjNDM7OTgsNiBAQCB1bnNldCBhZGRfYWRkcl90eF9uclxuIHVuc2V0IGFkZF9hZGRyX2VjaG9fdHhfbnJcbiB1bnNldCBhZGRfYWRkcl9kcm9wX3R4X25yXG4gXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCYjMzQ7bmZicGZfY29tcGlsZSAmIzM5OyhpcCBcdTAwMjZcdTAwMjYgKGlwWzU0XSBcdTAwMjYgMHhmMCkgPT0gMHgzMCkgfHxcbi0jXHRcdFx0XHQgIChpcDYgXHUwMDI2XHUwMDI2IChpcDZbNzRdIFx1MDAyNiAweGYwKSA9PSAweDMwKSYjMzk7XCYjMzQ7XG4tQ0JQRl9NUFRDUF9TVUJPUFRJT05fQUREX0FERFI9XCYjMzQ7MTQsXG4tXHRcdFx0ICAgICAgIDQ4IDAgMCAwLFxuLVx0XHRcdCAgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgICAyMSAwIDMgNjQsXG4tXHRcdFx0ICAgICAgIDQ4IDAgMCA1NCxcbi1cdFx0XHQgICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAgMjEgNiA3IDQ4LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgMCxcbi1cdFx0XHQgICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAgMjEgMCA0IDk2LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgNzQsXG4tXHRcdFx0ICAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgIDIxIDAgMSA0OCxcbi1cdFx0XHQgICAgICAgNiAwIDAgNjU1MzUsXG4tXHRcdFx0ICAgICAgIDYgMCAwIDBcJiMzNDtcbi1cbi0jIElQdjQ6IFRDUCBoZHIgb2YgNDhCLCBhIGZpcnN0IHN1Ym9wdGlvbiBvZiAxMkIgKERBQ0s4KSwgdGhlIFJNX0FERFIgc3Vib3B0aW9uXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCYjMzQ7bmZicGZfY29tcGlsZSAmIzM5OyhpcFszMl0gXHUwMDI2IDB4ZjApID09IDB4YzAgXHUwMDI2XHUwMDI2IGlwWzUzXSA9PSAweDBjIFx1MDAyNlx1MDAyNlxuLSNcdFx0XHRcdCAgKGlwWzY2XSBcdTAwMjYgMHhmMCkgPT0gMHg0MCYjMzk7XCYjMzQ7XG4tQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUj1cJiMzNDsxMyxcbi1cdFx0XHQgICAgICA0OCAwIDAgMCxcbi1cdFx0XHQgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgIDIxIDAgOSA2NCxcbi1cdFx0XHQgICAgICA0OCAwIDAgMzIsXG4tXHRcdFx0ICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAyMSAwIDYgMTkyLFxuLVx0XHRcdCAgICAgIDQ4IDAgMCA1Myxcbi1cdFx0XHQgICAgICAyMSAwIDQgMTIsXG4tXHRcdFx0ICAgICAgNDggMCAwIDY2LFxuLVx0XHRcdCAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgMjEgMCAxIDY0LFxuLVx0XHRcdCAgICAgIDYgMCAwIDY1NTM1LFxuLVx0XHRcdCAgICAgIDYgMCAwIDBcJiMzNDtcbi1cbiBpbml0X3BhcnRpYWwoKVxuIHtcbiBcdGNhcG91dD0kKG1rdGVtcClcbkBAIC0xNDcsNiAmIzQzOzExMCwxOCBAQCBpbml0X3BhcnRpYWwoKVxuIFx0XHRpZiAkY2hlY2tzdW07IHRoZW5cbiBcdFx0XHRpcCBuZXRucyBleGVjICRuZXRucyBzeXNjdGwgLXEgbmV0Lm1wdGNwLmNoZWNrc3VtX2VuYWJsZWQ9MVxuIFx0XHRmaVxuJiM0MztcbiYjNDM7XHRcdGZvciB0IGluIGlwIGlwNjsgZG9cbiYjNDM7XHRcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskbmV0bnNcJiMzNDsgbmZ0IGFkZCB0YWJsZSBcJiMzNDskdFwmIzM0OyBmaWx0ZXJcbiYjNDM7XHRcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskbmV0bnNcJiMzNDsgbmZ0IGFkZCBjaGFpbiBcJiMzNDskdFwmIzM0OyBmaWx0ZXIgSU5QVVQgXFxcbiYjNDM7XHRcdFx0XHQmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0mIzM5O1xuJiM0MztcdFx0XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuZXRuc1wmIzM0OyBuZnQgYWRkIGNoYWluIFwmIzM0OyR0XCYjMzQ7IGZpbHRlciBPVVRQVVQgXFxcbiYjNDM7XHRcdFx0XHQmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBvdXRwdXQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgYWNjZXB0OyB9JiMzOTtcbiYjNDM7XG4mIzQzO1x0XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5ldG5zXCYjMzQ7IG5mdCBhZGQgdGFibGUgXCYjMzQ7JHRcJiMzNDsgbWFuZ2xlXG4mIzQzO1x0XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5ldG5zXCYjMzQ7IG5mdCBhZGQgY2hhaW4gXCYjMzQ7JHRcJiMzNDsgbWFuZ2xlIE9VVFBVVCBcXFxuJiM0MztcdFx0XHRcdCYjMzk7eyB0eXBlIHJvdXRlIGhvb2sgb3V0cHV0IHByaW9yaXR5IG1hbmdsZTsgcG9saWN5IGFjY2VwdDsgfSYjMzk7XG4mIzQzO1x0XHRkb25lXG4gXHRkb25lXG4gXG4gXHRjaGVja19pbnZlcnQ9MFxuQEAgLTE5Niw3ICYjNDM7MTcxLDcgQEAgaW5pdCgpIHtcbiBcbiBcdG1wdGNwX2xpYl9jaGVja19tcHRjcFxuIFx0bXB0Y3BfbGliX2NoZWNrX2thbGxzeW1zXG4tXHRtcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgdGMgc3MgXCYjMzQ7JHtpcHRhYmxlc31cJiMzNDsgXCYjMzQ7JHtpcDZ0YWJsZXN9XCYjMzQ7XG4mIzQzO1x0bXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIHRjIHNzIG5mdFxuIFxuIFx0c2luPSQobWt0ZW1wKVxuIFx0c291dD0kKG1rdGVtcClcbkBAIC0zODAsMjQgJiM0MzszNTUsMTggQEAgcmVzZXRfd2l0aF9jb29raWVzKClcbiAjICQxOiB0ZXN0IG5hbWVcbiByZXNldF93aXRoX2FkZF9hZGRyX3RpbWVvdXQoKVxuIHtcbi1cdGxvY2FsIGlwPVwmIzM0OyR7MjotNH1cJiMzNDtcbi1cdGxvY2FsIHRhYmxlc1xuJiM0MztcdGxvY2FsIGlwPVwmIzM0OyR7MjotfVwmIzM0O1xuIFxuIFx0cmVzZXQgXCYjMzQ7JHsxfVwmIzM0OyB8fCByZXR1cm4gMVxuIFxuLVx0dGFibGVzPVwmIzM0OyR7aXB0YWJsZXN9XCYjMzQ7XG4tXHRpZiBbICRpcCAtZXEgNiBdOyB0aGVuXG4tXHRcdHRhYmxlcz1cJiMzNDske2lwNnRhYmxlc31cJiMzNDtcbi1cdGZpXG4tXG4gXHQjIHNldCBhIG1heGltdW0sIHRvIGF2b2lkIHRvbyBsb25nIHRpbWVvdXQgd2l0aCBleHBvbmVudGlhbCBiYWNrb2ZmXG4gXHRpcCBuZXRucyBleGVjICRuczEgc3lzY3RsIC1xIG5ldC5tcHRjcC5hZGRfYWRkcl90aW1lb3V0PTFcbiBcbi1cdGlmICEgaXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgLUEgT1VUUFVUIC1wIHRjcCBcXFxuLVx0XHRcdC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcbi1cdFx0XHQtbSBicGYgLS1ieXRlY29kZSBcXFxuLVx0XHRcdFwmIzM0OyRDQlBGX01QVENQX1NVQk9QVElPTl9BRERfQUREUlwmIzM0OyBcXFxuLVx0XHRcdC1qIERST1A7IHRoZW5cbiYjNDM7XHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcJiMzNDskbnMyXCYjMzQ7IG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxuJiM0MztcdFx0aXBcJiMzNDskaXBcJiMzNDsgZmlsdGVyIE9VVFBVVCBtZXRhIGw0cHJvdG8gdGNwIFxcXG4mIzQzO1x0XHR0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgYWRkLWFkZHIgXFxcbiYjNDM7XHRcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspXG4mIzQzO1x0aWYgWyAteiBcJiMzNDskbmZ0X2hhbmRsZVwmIzM0OyBdOyB0aGVuXG4gXHRcdG1hcmtfYXNfc2tpcHBlZCBcJiMzNDt1bmFibGUgdG8gc2V0IHRoZSAmIzM5O2FkZCBhZGRyJiMzOTsgcnVsZVwmIzM0O1xuIFx0XHRyZXR1cm4gMVxuIFx0ZmlcbkBAIC00NDksMjMgJiM0Mzs0MTgsMTcgQEAgc2V0dXBfZmFpbF9ydWxlcygpXG4gXHRjaGVja19pbnZlcnQ9MVxuIFx0dmFsaWRhdGVfY2hlY2tzdW09dHJ1ZVxuIFx0bG9jYWwgaT1cJiMzNDskMVwmIzM0O1xuLVx0bG9jYWwgaXA9XCYjMzQ7JHsyOi00fVwmIzM0O1xuLVx0bG9jYWwgdGFibGVzXG4mIzQzO1x0bG9jYWwgaXA9XCYjMzQ7JHsyOi19XCYjMzQ7XG4gXG4tXHR0YWJsZXM9XCYjMzQ7JHtpcHRhYmxlc31cJiMzNDtcbi1cdGlmIFsgJGlwIC1lcSA2IF07IHRoZW5cbi1cdFx0dGFibGVzPVwmIzM0OyR7aXA2dGFibGVzfVwmIzM0O1xuJiM0MztcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFwmIzM0OyRuczJcJiMzNDsgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFxcXG4mIzQzO1x0XHRpcFwmIzM0OyRpcFwmIzM0OyBtYW5nbGUgT1VUUFVUIG9pZm5hbWUgbnMyZXRoJGkgXFxcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgXFxcbiYjNDM7XHRcdG1ldGEgbGVuZ3RoIDE1MC05OTk5IG51bWdlbiBpbmMgbW9kIDk5OTk5IDEgXFxcbiYjNDM7XHRcdG1ldGEgbWFyayBzZXQgNDIgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspXG4mIzQzO1x0aWYgWyAteiBcJiMzNDskbmZ0X2hhbmRsZVwmIzM0OyBdOyB0aGVuXG4mIzQzO1x0XHRyZXR1cm4gJHtLU0ZUX1NLSVB9XG4gXHRmaVxuIFxuLVx0aXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgXFxcbi1cdFx0LXQgbWFuZ2xlIFxcXG4tXHRcdC1BIE9VVFBVVCBcXFxuLVx0XHQtbyBuczJldGgkaSBcXFxuLVx0XHQtcCB0Y3AgXFxcbi1cdFx0LW0gbGVuZ3RoIC0tbGVuZ3RoIDE1MDo5OTk5IFxcXG4tXHRcdC1tIHN0YXRpc3RpYyAtLW1vZGUgbnRoIC0tcGFja2V0IDEgLS1ldmVyeSA5OTk5OSBcXFxuLVx0XHQtaiBNQVJLIC0tc2V0LW1hcmsgNDIgfHwgcmV0dXJuICR7S1NGVF9TS0lQfVxuLVxuIFx0dGMgLW4gJG5zMiBxZGlzYyBhZGQgZGV2IG5zMmV0aCRpIGNsc2FjdCB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9XG4gXHR0YyAtbiAkbnMyIGZpbHRlciBhZGQgZGV2IG5zMmV0aCRpIGVncmVzcyBcXFxuIFx0XHRwcm90b2NvbCBpcCBwcmlvIDEwMDAgXFxcbkBAIC01MTUsMTEgJiM0Mzs0NzgsMTAgQEAgcmVzZXRfd2l0aF90Y3BfZmlsdGVyKClcbiBcdGxvY2FsIHRhcmdldD1cJiMzNDskezN9XCYjMzQ7XG4gXHRsb2NhbCBjaGFpbj1cJiMzNDskezQ6LUlOUFVUfVwmIzM0O1xuIFxuLVx0aWYgISBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnN9XCYjMzQ7ICR7aXB0YWJsZXN9IFxcXG4tXHRcdFx0LUEgXCYjMzQ7JHtjaGFpbn1cJiMzNDsgXFxcbi1cdFx0XHQtcyBcJiMzNDske3NyY31cJiMzNDsgXFxcbi1cdFx0XHQtcCB0Y3AgXFxcbi1cdFx0XHQtaiBcJiMzNDske3RhcmdldH1cJiMzNDs7IHRoZW5cbiYjNDM7XHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcJiMzNDskbnNcJiMzNDsgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFxcXG4mIzQzO1x0XHRpcCBmaWx0ZXIgXCYjMzQ7JHtjaGFpbn1cJiMzNDsgaXAgc2FkZHIgXCYjMzQ7eyAke3NyY30gfVwmIzM0OyBcXFxuJiM0MztcdFx0bWV0YSBsNHByb3RvIHRjcCBcJiMzNDske3RhcmdldCwsfVwmIzM0OyB8IGhlYWQgLW4xIHwgYXdrICYjMzk7e3ByaW50ICRORn0mIzM5OylcbiYjNDM7XHRpZiBbIC16IFwmIzM0OyRuZnRfaGFuZGxlXCYjMzQ7IF07IHRoZW5cbiBcdFx0bWFya19hc19za2lwcGVkIFwmIzM0O3VuYWJsZSB0byBzZXQgdGhlIGZpbHRlciBydWxlc1wmIzM0O1xuIFx0XHRyZXR1cm4gMVxuIFx0ZmlcbkBAIC00MzE1LDEwICYjNDM7NDI3NywxMiBAQCB1c2Vyc3BhY2VfdGVzdHMoKVxuIFxuIFx0XHQjIGZvcmNlIHF1aWNrIGxvc3NcbiBcdFx0aXAgbmV0bnMgZXhlYyAkbnMyIHN5c2N0bCAtcSBuZXQuaXB2NC50Y3Bfc3luX3JldHJpZXM9MVxuLVx0XHRpZiBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMxfVwmIzM0OyAke2lwdGFibGVzfSAtQSBJTlBVVCAtcyBcJiMzNDsxMC4wLjEuMlwmIzM0OyBcXFxuLVx0XHQgICAgICAtcCB0Y3AgLS10Y3Atb3B0aW9uIDMwIC1qIFJFSkVDVCAtLXJlamVjdC13aXRoIHRjcC1yZXNldCBcdTAwMjZcdTAwMjZcbi1cdFx0ICAgaXAgbmV0bnMgZXhlYyBcJiMzNDske25zMn1cJiMzNDsgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgXCYjMzQ7MTAuMC4xLjJcJiMzNDsgXFxcbi1cdFx0ICAgICAgLXAgdGNwIC0tdGNwLW9wdGlvbiAzMCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCB0Y3AtcmVzZXQ7IHRoZW5cbiYjNDM7XHRcdGlmIGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczF9XCYjMzQ7IG5mdCBhZGQgcnVsZSBpcCBmaWx0ZXIgSU5QVVQgXFxcbiYjNDM7XHRcdFx0aXAgc2FkZHIgXCYjMzQ7MTAuMC4xLjJcJiMzNDsgbWV0YSBsNHByb3RvIHRjcCBcXFxuJiM0MztcdFx0XHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFxcXG4mIzQzO1x0XHRcdGlwIGRhZGRyIFwmIzM0OzEwLjAuMS4yXCYjMzQ7IG1ldGEgbDRwcm90byB0Y3AgXFxcbiYjNDM7XHRcdFx0dGNwIG9wdGlvbiBtcHRjcCBleGlzdHMgcmVqZWN0IHdpdGggdGNwIHJlc2V0OyB0aGVuXG4gXHRcdFx0d2FpdF9ldmVudCBuczIgTVBUQ1BfTElCX0VWRU5UX1NVQl9DTE9TRUQgMVxuIFx0XHRcdHdhaXRfZXZlbnQgbnMxIE1QVENQX0xJQl9FVkVOVF9TVUJfQ0xPU0VEIDFcbiBcdFx0XHRjaGtfc3ViZmxvd3NfdG90YWwgMSAxXG5AQCAtNDM5Myw3ICYjNDM7NDM1Nyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0Y2hrX3N1YmZsb3dfbnIgXCYjMzQ7YWZ0ZXIgbmV3IHJlamVjdFwmIzM0OyAyXG4gXHRcdGNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDEgc3ViZmxvd3MgMVxuIFxuLVx0XHRpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgXCYjMzQ7MTAuMC4zLjJcJiMzNDsgLXAgdGNwIC1qIFJFSkVDVFxuJiM0MztcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDske25zMn1cJiMzNDsgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlIFwmIzM0OyRuZnRfaGFuZGxlXCYjMzQ7XG4gXHRcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDMgMTAuMC4zLjJcbiBcdFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93XG4gXHRcdHdhaXRfbXBqIDNcbkBAIC00NDAyLDEyICYjNDM7NDM2NiwxMCBAQCBlbmRwb2ludF90ZXN0cygpXG4gXG4gXHRcdCMgVG8gbWFrZSBzdXJlIFJNX0FERFIgYXJlIHNlbnQgb3ZlciBhIGRpZmZlcmVudCBzdWJmbG93LCBidXRcbiBcdFx0IyBhbGxvdyB0aGUgcmVzdCB0byBxdWlja2x5IGFuZCBjbGVhbmx5IGNsb3NlIHRoZSBzdWJmbG93XG4tXHRcdGxvY2FsIGlwdD0xXG4tXHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczJ9XCYjMzQ7ICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyBcJiMzNDsxMC4wLjEuMlwmIzM0OyBcXFxuLVx0XHRcdC1wIHRjcCAtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXG4tXHRcdFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcbi1cdFx0XHRcJiMzNDskQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUlwmIzM0OyBcXFxuLVx0XHRcdC1qIERST1AgfHwgaXB0PTBcbiYjNDM7XHRcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyBuZnQgLWUgLS1oYW5kbGUgaW5zZXJ0IHJ1bGUgXFxcbiYjNDM7XHRcdFx0aXAgZmlsdGVyIE9VVFBVVCBpcCBzYWRkciAxMC4wLjEuMiBtZXRhIGw0cHJvdG8gdGNwIFxcXG4mIzQzO1x0XHRcdHRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcXFxuJiM0MztcdFx0XHRkcm9wIHwgaGVhZCAtbjEgfCBhd2sgJiMzOTt7cHJpbnQgJE5GfSYjMzk7KVxuIFx0XHRsb2NhbCBpXG4gXHRcdGZvciBpIGluICQoc2VxIDMpOyBkb1xuIFx0XHRcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDEgMTAuMC4xLjJcbkBAIC00NDIwLDcgJiM0Mzs0MzgyLDggQEAgZW5kcG9pbnRfdGVzdHMoKVxuIFx0XHRcdGNoa19zdWJmbG93X25yIFwmIzM0O2FmdGVyIHJlLWFkZCBpZCAwICgkaSlcJiMzNDsgM1xuIFx0XHRcdGNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDMgc3ViZmxvd3MgM1xuIFx0XHRkb25lXG4tXHRcdFsgJHtpcHR9ID0gMSBdIFx1MDAyNlx1MDAyNiBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMyfVwmIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuJiM0MztcdFx0WyAtbiBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7IF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczJ9XCYjMzQ7IG5mdCBkZWxldGUgcnVsZSBcXFxuJiM0MztcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7XG4gXG4gXHRcdG1wdGNwX2xpYl9raWxsX2dyb3VwX3dhaXQgJHRlc3RzX3BpZFxuIFxuQEAgLTQ0ODIsMTggJiM0Mzs0NDQ1LDE3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcbiBcdFx0IyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dFxuIFx0XHQjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3dcbi1cdFx0bG9jYWwgaXB0PTFcbi1cdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDske25zMX1cJiMzNDsgJHtpcHRhYmxlc30gLUkgT1VUUFVUIC1zIFwmIzM0OzEwLjAuMS4xXCYjMzQ7IFxcXG4tXHRcdFx0LXAgdGNwIC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcbi1cdFx0XHQtbSBicGYgLS1ieXRlY29kZSBcXFxuLVx0XHRcdFwmIzM0OyRDQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSXCYjMzQ7IFxcXG4tXHRcdFx0LWogRFJPUCB8fCBpcHQ9MFxuJiM0MztcdFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczF9XCYjMzQ7IG5mdCAtZSAtLWhhbmRsZSBpbnNlcnQgcnVsZSBcXFxuJiM0MztcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGlwIHNhZGRyIDEwLjAuMS4xIG1ldGEgbDRwcm90byB0Y3AgXFxcbiYjNDM7XHRcdFx0dGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIHJlbW92ZS1hZGRyIFxcXG4mIzQzO1x0XHRcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspXG4gXHRcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMxIDQyIDEwLjAuMS4xXG4gXHRcdHNsZWVwIDAuNVxuIFx0XHRjaGtfc3ViZmxvd19uciBcJiMzNDthZnRlciBkZWxldGUgSUQgMFwmIzM0OyAyXG4gXHRcdGNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDIgc3ViZmxvd3MgMlxuIFx0XHRjaGtfbXB0Y3BfaW5mbyBhZGRfYWRkcl9zaWduYWwgMiBhZGRfYWRkcl9hY2NlcHRlZCAyXG4tXHRcdFsgJHtpcHR9ID0gMSBdIFx1MDAyNlx1MDAyNiBpcCBuZXRucyBleGVjIFwmIzM0OyR7bnMxfVwmIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuJiM0MztcdFx0WyAtbiBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7IF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczF9XCYjMzQ7IG5mdCBkZWxldGUgcnVsZSBcXFxuJiM0MztcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcJiMzNDske25mdF9oYW5kbGV9XCYjMzQ7XG4gXG4gXHRcdHBtX25sX2FkZF9lbmRwb2ludCAkbnMxIDEwLjAuMS4xIGlkIDQyIGZsYWdzIHNpZ25hbFxuIFx0XHR3YWl0X21waiA0XG5AQCAtNDU1NSw3ICYjNDM7NDUxNyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0cG1fbmxfZmx1c2hfZW5kcG9pbnQgJG5zMlxuIFx0XHRwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMxXG4gXHRcdHdhaXRfcm1fYWRkciAkbnMyIDBcbi1cdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDske25zMn1cJiMzNDsgJHtpcHRhYmxlc30gLUQgT1VUUFVUIC1zIFwmIzM0OzEwLjAuMy4yXCYjMzQ7IC1wIHRjcCAtaiBSRUpFQ1RcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JHtuczJ9XCYjMzQ7IG5mdCBkZWxldGUgcnVsZSBpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcJiMzNDskbmZ0X2hhbmRsZVwmIzM0O1xuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3dcbiBcdFx0d2FpdF9tcGogMVxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjMuMSBpZCAyIGZsYWdzIHNpZ25hbFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoXG5pbmRleCA1ZWY2MDMzNzc1Yzg2Li5lYmE2OTAzMjMzY2NmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuQEAgLTUyNCw3ICYjNDM7NTI0LDcgQEAgbXB0Y3BfbGliX2NoZWNrX3Rvb2xzKCkge1xuIFx0XHRcdFx0ZXhpdCAke0tTRlRfU0tJUH1cbiBcdFx0XHRmaVxuIFx0XHRcdDs7XG4tXHRcdFwmIzM0O2lwdGFibGVzXCYjMzQ7KiB8IFwmIzM0O2lwNnRhYmxlc1wmIzM0OyopXG4mIzQzO1x0XHRcJiMzNDtpcHRhYmxlc1wmIzM0OyogfCBcJiMzNDtpcDZ0YWJsZXNcJiMzNDsqIHwgXCYjMzQ7bmZ0XCYjMzQ7KilcbiBcdFx0XHRpZiAhIFwmIzM0OyR7dG9vbH1cJiMzNDsgLVYgXHUwMDI2XHUwMDNlIC9kZXYvbnVsbDsgdGhlblxuIFx0XHRcdFx0bXB0Y3BfbGliX3ByX3NraXAgXCYjMzQ7Q291bGQgbm90IHJ1biBhbGwgdGVzdHMgd2l0aG91dCAke3Rvb2x9XCYjMzQ7XG4gXHRcdFx0XHRleGl0ICR7S1NGVF9TS0lQfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcbmluZGV4IGU4NTBhODc0MjliNjEuLmEyYzIwNDgzOTg2ZGMgMTAwNzU1XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcbkBAIC0xNSw4ICYjNDM7MTUsNiBAQCBjaW49XCYjMzQ7XCYjMzQ7XG4gY291dD1cJiMzNDtcJiMzNDtcbiB0aW1lb3V0X3BvbGw9MzBcbiB0aW1lb3V0X3Rlc3Q9JCgodGltZW91dF9wb2xsICogMiAmIzQzOyAxKSlcbi1pcHRhYmxlcz1cJiMzNDtpcHRhYmxlc1wmIzM0O1xuLWlwNnRhYmxlcz1cJiMzNDtpcDZ0YWJsZXNcJiMzNDtcbiBcbiBuczE9XCYjMzQ7XCYjMzQ7XG4gbnMyPVwmIzM0O1wmIzM0O1xuQEAgLTUwLDE1ICYjNDM7NDgsMjUgQEAgYWRkX21hcmtfcnVsZXMoKVxuIFx0bG9jYWwgbT0kMlxuIFxuIFx0bG9jYWwgdFxuLVx0Zm9yIHQgaW4gJHtpcHRhYmxlc30gJHtpcDZ0YWJsZXN9OyBkb1xuJiM0MztcdGZvciB0IGluIGlwIGlwNjsgZG9cbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBhZGQgdGFibGUgXCYjMzQ7JHRcJiMzNDsgZmlsdGVyXG4mIzQzO1x0XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuc1wmIzM0OyBuZnQgYWRkIGNoYWluIFwmIzM0OyR0XCYjMzQ7IGZpbHRlciBPVVRQVVQgXFxcbiYjNDM7XHRcdFx0JiMzOTt7IHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IDA7IHBvbGljeSBhY2NlcHQ7IH0mIzM5O1xuJiM0MztcbiBcdFx0IyBqdXN0IHRvIGRlYnVnOiBjaGVjayB3ZSBoYXZlIG11bHRpcGxlIHN1YmZsb3dzIGNvbm5lY3Rpb24gcmVxdWVzdHNcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXN5biAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBhZGQgcnVsZSBcJiMzNDskdFwmIzM0OyBmaWx0ZXIgT1VUUFVUIFxcXG4mIzQzO1x0XHRcdHRjcCBmbGFncyBcXFx1MDAyNiBcXChmaW4gXFx8IHN5biBcXHwgcnN0IFxcfCBhY2tcXCkgPT0gc3luIFxcXG4mIzQzO1x0XHRcdG1ldGEgbWFyayBcJiMzNDskbVwmIzM0OyBhY2NlcHRcbiBcbiBcdFx0IyBSU1QgcGFja2V0cyBtaWdodCBiZSBoYW5kbGVkIGJ5IGEgaW50ZXJuYWwgZHVtbXkgc29ja2V0XG4tXHRcdGlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLS10Y3AtZmxhZ3MgUlNUIFJTVCAtbSBtYXJrIC0tbWFyayAwIC1qIEFDQ0VQVFxuJiM0MztcdFx0aXAgbmV0bnMgZXhlYyBcJiMzNDskbnNcJiMzNDsgbmZ0IGFkZCBydWxlIFwmIzM0OyR0XCYjMzQ7IGZpbHRlciBPVVRQVVQgXFxcbiYjNDM7XHRcdFx0dGNwIGZsYWdzIFxcXHUwMDI2IHJzdCA9PSByc3QgbWV0YSBtYXJrIDB4MCBhY2NlcHRcbiYjNDM7XG4mIzQzO1x0XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuc1wmIzM0OyBuZnQgYWRkIHJ1bGUgXCYjMzQ7JHRcJiMzNDsgZmlsdGVyIE9VVFBVVCBcXFxuJiM0MztcdFx0XHRtZXRhIGw0cHJvdG8gdGNwIG1ldGEgbWFyayBcJiMzNDskbVwmIzM0OyBhY2NlcHRcbiYjNDM7XHRcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBhZGQgcnVsZSBcJiMzNDskdFwmIzM0OyBmaWx0ZXIgT1VUUFVUIFxcXG4mIzQzO1x0XHRcdG1ldGEgbDRwcm90byB0Y3AgbWV0YSBtYXJrIDAgY291bnRlciBkcm9wXG4gXG4tXHRcdGlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLW0gbWFyayAtLW1hcmsgJG0gLWogQUNDRVBUXG4tXHRcdGlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLW0gbWFyayAtLW1hcmsgMCAtaiBEUk9QXG4gXHRkb25lXG4gfVxuIFxuQEAgLTEwNSwzMiAmIzQzOzExMywyOSBAQCBjbGVhbnVwKClcbiBcbiBtcHRjcF9saWJfY2hlY2tfbXB0Y3BcbiBtcHRjcF9saWJfY2hlY2tfa2FsbHN5bXNcbi1tcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgXCYjMzQ7JHtpcHRhYmxlc31cJiMzNDsgXCYjMzQ7JHtpcDZ0YWJsZXN9XCYjMzQ7XG4mIzQzO21wdGNwX2xpYl9jaGVja190b29scyBpcCBuZnRcbiBcbiBjaGVja19tYXJrKClcbiB7XG4gXHRsb2NhbCBucz0kMVxuIFx0bG9jYWwgYWY9JDJcbiBcbi1cdGxvY2FsIHRhYmxlcz0ke2lwdGFibGVzfVxuJiM0MztcdGxvY2FsIHRhYmxlcz1cJiMzNDtpcFwmIzM0O1xuIFxuIFx0aWYgWyAkYWYgLWVxIDYgXTt0aGVuXG4tXHRcdHRhYmxlcz0ke2lwNnRhYmxlc31cbiYjNDM7XHRcdHRhYmxlcz1cJiMzNDtpcDZcJiMzNDtcbiBcdGZpXG4gXG4tXHRsb2NhbCBjb3VudGVycyB2YWx1ZXNcbi1cdGNvdW50ZXJzPSQoaXAgbmV0bnMgZXhlYyAkbnMgJHRhYmxlcyAtdiAtTCBPVVRQVVQgfCBncmVwIERST1ApXG4tXHR2YWx1ZXM9JHtjb3VudGVycyVEUk9QKn1cbi1cbi1cdGxvY2FsIHZcbi1cdGZvciB2IGluICR2YWx1ZXM7IGRvXG4tXHRcdGlmIFsgJHYgLW5lIDAgXTsgdGhlblxuLVx0XHRcdG1wdGNwX2xpYl9wcl9mYWlsIFwmIzM0O2dvdCAkdGFibGVzICR2YWx1ZXMgaW4gbnMgJG5zLFwmIzM0OyBcXFxuLVx0XHRcdFx0XHQgIFwmIzM0O25vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZFwmIzM0O1xuLVx0XHRcdHJldD0ke0tTRlRfRkFJTH1cbi1cdFx0XHRyZXR1cm4gMVxuLVx0XHRmaVxuLVx0ZG9uZVxuJiM0MztcdGxvY2FsIHZhbHVlc1xuJiM0MztcdHZhbHVlcz0kKGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zXCYjMzQ7IG5mdCBsaXN0IHRhYmxlIFwmIzM0OyR0YWJsZXNcJiMzNDsgZmlsdGVyIHwgXFxcbiYjNDM7XHRcdGdyZXAgLW8gXCYjMzQ7cGFja2V0cy4qZHJvcFwmIzM0OyB8IGF3ayAmIzM5O3twcmludCAkMn0mIzM5OylcbiYjNDM7XG4mIzQzO1x0aWYgW1sgISBcJiMzNDskdmFsdWVzXCYjMzQ7ID1+IF5bMC05XSYjNDM7JCBdXSB8fCBbIFwmIzM0OyR2YWx1ZXNcJiMzNDsgLW5lIDAgXTsgdGhlblxuJiM0MztcdFx0bXB0Y3BfbGliX3ByX2ZhaWwgXCYjMzQ7Z290ICR0YWJsZXMgJHZhbHVlcyBpbiBucyAkbnMsXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdFx0ICBcJiMzNDtub3QgMCAtIG5vdCBhbGwgZXhwZWN0ZWQgcGFja2V0cyBtYXJrZWRcJiMzNDtcbiYjNDM7XHRcdHJldD0ke0tTRlRfRkFJTH1cbiYjNDM7XHRcdHJldHVybiAxXG4mIzQzO1x0ZmlcbiBcbiBcdHJldHVybiAwXG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAwOjU5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWM0Y2NiZjcwYjUxNjVmMmYzM2QxNWQ4MjhkMzQ5Zjc4NWQ5YjgxZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgU2VwIDQgMDA6NTk6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZwppbmRleCA1OTA1MWVlMmE5ODYwLi4wZDBhNzQ0YzRjYTg5IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWcKQEAgLTMwLDYgJiM0MzszMCw5IEBAIENPTkZJR19ORVRfU0NIX05FVEVNPW0KIENPTkZJR19ORl9UQUJMRVM9bQogQ09ORklHX05GX1RBQkxFU19JTkVUPXkKIENPTkZJR19ORlRfQ09NUEFUPW0KJiM0MztDT05GSUdfTkZUX05VTUdFTj15CiYjNDM7Q09ORklHX05GVF9SRUpFQ1Q9bQomIzQzO0NPTkZJR19ORlRfUkVKRUNUX0lQVjQ9bQogQ09ORklHX05GVF9TT0NLRVQ9bQogQ09ORklHX05GVF9UUFJPWFk9bQogQ09ORklHX1NZTl9DT09LSUVTPXkKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2gKaW5kZXggMThjZTcxMzZhMmIwZS4uN2M1NjY4MGNjNDIyMSAxMDA3NTUKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2gKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2gKQEAgLTI2LDggJiM0MzsyNiw2IEBAIGNhcG91dD0mIzM0OyYjMzQ7CiBjYXBwaWQ9JiMzNDsmIzM0OwogbnMxPSYjMzQ7JiMzNDsKIG5zMj0mIzM0OyYjMzQ7Ci1pcHRhYmxlcz0mIzM0O2lwdGFibGVzJiMzNDsKLWlwNnRhYmxlcz0mIzM0O2lwNnRhYmxlcyYjMzQ7CiB0aW1lb3V0X3BvbGw9MzAKIHRpbWVvdXRfdGVzdD0kKCh0aW1lb3V0X3BvbGwgKiAyICYjNDM7IDEpKQogY2FwdHVyZT1mYWxzZQpAQCAtNTAsNiAmIzQzOzQ4LDcgQEAgZGVjbGFyZSAtQSBmYWlsZWRfdGVzdHMKIE1QVENQX0xJQl9URVNUX0ZPUk1BVD0mIzM0OyUwM3UgJXNcbiYjMzQ7CiBURVNUX05BTUU9JiMzNDsmIzM0OwogbnJfYmxhbms9NgomIzQzO25mdF9oYW5kbGU9JiMzNDsmIzM0OwogCiAjIFRoZXNlIHZhciBhcmUgdXNlZCBvbmx5IGluIHNvbWUgdGVzdHMsIG1ha2Ugc3VyZSB0aGV5IGFyZSBub3QgYWxyZWFkeSBzZXQKIHVuc2V0IEZBSUxJTkdfTElOS1MKQEAgLTk5LDQyICYjNDM7OTgsNiBAQCB1bnNldCBhZGRfYWRkcl90eF9ucgogdW5zZXQgYWRkX2FkZHJfZWNob190eF9ucgogdW5zZXQgYWRkX2FkZHJfZHJvcF90eF9ucgogCi0jIGdlbmVyYXRlZCB1c2luZyAmIzM0O25mYnBmX2NvbXBpbGUgJiMzOTsoaXAgJmFtcDsmYW1wOyAoaXBbNTRdICZhbXA7IDB4ZjApID09IDB4MzApIHx8Ci0jCQkJCSAgKGlwNiAmYW1wOyZhbXA7IChpcDZbNzRdICZhbXA7IDB4ZjApID09IDB4MzApJiMzOTsmIzM0OwotQ0JQRl9NUFRDUF9TVUJPUFRJT05fQUREX0FERFI9JiMzNDsxNCwKLQkJCSAgICAgICA0OCAwIDAgMCwKLQkJCSAgICAgICA4NCAwIDAgMjQwLAotCQkJICAgICAgIDIxIDAgMyA2NCwKLQkJCSAgICAgICA0OCAwIDAgNTQsCi0JCQkgICAgICAgODQgMCAwIDI0MCwKLQkJCSAgICAgICAyMSA2IDcgNDgsCi0JCQkgICAgICAgNDggMCAwIDAsCi0JCQkgICAgICAgODQgMCAwIDI0MCwKLQkJCSAgICAgICAyMSAwIDQgOTYsCi0JCQkgICAgICAgNDggMCAwIDc0LAotCQkJICAgICAgIDg0IDAgMCAyNDAsCi0JCQkgICAgICAgMjEgMCAxIDQ4LAotCQkJICAgICAgIDYgMCAwIDY1NTM1LAotCQkJICAgICAgIDYgMCAwIDAmIzM0OwotCi0jIElQdjQ6IFRDUCBoZHIgb2YgNDhCLCBhIGZpcnN0IHN1Ym9wdGlvbiBvZiAxMkIgKERBQ0s4KSwgdGhlIFJNX0FERFIgc3Vib3B0aW9uCi0jIGdlbmVyYXRlZCB1c2luZyAmIzM0O25mYnBmX2NvbXBpbGUgJiMzOTsoaXBbMzJdICZhbXA7IDB4ZjApID09IDB4YzAgJmFtcDsmYW1wOyBpcFs1M10gPT0gMHgwYyAmYW1wOyZhbXA7Ci0jCQkJCSAgKGlwWzY2XSAmYW1wOyAweGYwKSA9PSAweDQwJiMzOTsmIzM0OwotQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUj0mIzM0OzEzLAotCQkJICAgICAgNDggMCAwIDAsCi0JCQkgICAgICA4NCAwIDAgMjQwLAotCQkJICAgICAgMjEgMCA5IDY0LAotCQkJICAgICAgNDggMCAwIDMyLAotCQkJICAgICAgODQgMCAwIDI0MCwKLQkJCSAgICAgIDIxIDAgNiAxOTIsCi0JCQkgICAgICA0OCAwIDAgNTMsCi0JCQkgICAgICAyMSAwIDQgMTIsCi0JCQkgICAgICA0OCAwIDAgNjYsCi0JCQkgICAgICA4NCAwIDAgMjQwLAotCQkJICAgICAgMjEgMCAxIDY0LAotCQkJICAgICAgNiAwIDAgNjU1MzUsCi0JCQkgICAgICA2IDAgMCAwJiMzNDsKLQogaW5pdF9wYXJ0aWFsKCkKIHsKIAljYXBvdXQ9JChta3RlbXApCkBAIC0xNDcsNiAmIzQzOzExMCwxOCBAQCBpbml0X3BhcnRpYWwoKQogCQlpZiAkY2hlY2tzdW07IHRoZW4KIAkJCWlwIG5ldG5zIGV4ZWMgJG5ldG5zIHN5c2N0bCAtcSBuZXQubXB0Y3AuY2hlY2tzdW1fZW5hYmxlZD0xCiAJCWZpCiYjNDM7CiYjNDM7CQlmb3IgdCBpbiBpcCBpcDY7IGRvCiYjNDM7CQkJaXAgbmV0bnMgZXhlYyAmIzM0OyRuZXRucyYjMzQ7IG5mdCBhZGQgdGFibGUgJiMzNDskdCYjMzQ7IGZpbHRlcgomIzQzOwkJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbmV0bnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBmaWx0ZXIgSU5QVVQgXAomIzQzOwkJCQkmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0mIzM5OwomIzQzOwkJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbmV0bnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBmaWx0ZXIgT1VUUFVUIFwKJiM0MzsJCQkJJiMzOTt7IHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDsgfSYjMzk7CiYjNDM7CiYjNDM7CQkJaXAgbmV0bnMgZXhlYyAmIzM0OyRuZXRucyYjMzQ7IG5mdCBhZGQgdGFibGUgJiMzNDskdCYjMzQ7IG1hbmdsZQomIzQzOwkJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbmV0bnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBtYW5nbGUgT1VUUFVUIFwKJiM0MzsJCQkJJiMzOTt7IHR5cGUgcm91dGUgaG9vayBvdXRwdXQgcHJpb3JpdHkgbWFuZ2xlOyBwb2xpY3kgYWNjZXB0OyB9JiMzOTsKJiM0MzsJCWRvbmUKIAlkb25lCiAKIAljaGVja19pbnZlcnQ9MApAQCAtMTk2LDcgJiM0MzsxNzEsNyBAQCBpbml0KCkgewogCiAJbXB0Y3BfbGliX2NoZWNrX21wdGNwCiAJbXB0Y3BfbGliX2NoZWNrX2thbGxzeW1zCi0JbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIHRjIHNzICYjMzQ7JHtpcHRhYmxlc30mIzM0OyAmIzM0OyR7aXA2dGFibGVzfSYjMzQ7CiYjNDM7CW1wdGNwX2xpYl9jaGVja190b29scyBpcCB0YyBzcyBuZnQKIAogCXNpbj0kKG1rdGVtcCkKIAlzb3V0PSQobWt0ZW1wKQpAQCAtMzgwLDI0ICYjNDM7MzU1LDE4IEBAIHJlc2V0X3dpdGhfY29va2llcygpCiAjICQxOiB0ZXN0IG5hbWUKIHJlc2V0X3dpdGhfYWRkX2FkZHJfdGltZW91dCgpCiB7Ci0JbG9jYWwgaXA9JiMzNDskezI6LTR9JiMzNDsKLQlsb2NhbCB0YWJsZXMKJiM0MzsJbG9jYWwgaXA9JiMzNDskezI6LX0mIzM0OwogCiAJcmVzZXQgJiMzNDskezF9JiMzNDsgfHwgcmV0dXJuIDEKIAotCXRhYmxlcz0mIzM0OyR7aXB0YWJsZXN9JiMzNDsKLQlpZiBbICRpcCAtZXEgNiBdOyB0aGVuCi0JCXRhYmxlcz0mIzM0OyR7aXA2dGFibGVzfSYjMzQ7Ci0JZmkKLQogCSMgc2V0IGEgbWF4aW11bSwgdG8gYXZvaWQgdG9vIGxvbmcgdGltZW91dCB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmYKIAlpcCBuZXRucyBleGVjICRuczEgc3lzY3RsIC1xIG5ldC5tcHRjcC5hZGRfYWRkcl90aW1lb3V0PTEKIAotCWlmICEgaXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgLUEgT1VUUFVUIC1wIHRjcCBcCi0JCQktbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFwKLQkJCS1tIGJwZiAtLWJ5dGVjb2RlIFwKLQkJCSYjMzQ7JENCUEZfTVBUQ1BfU1VCT1BUSU9OX0FERF9BRERSJiMzNDsgXAotCQkJLWogRFJPUDsgdGhlbgomIzQzOwluZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyAmIzM0OyRuczImIzM0OyBuZnQgLWUgLS1oYW5kbGUgYWRkIHJ1bGUgXAomIzQzOwkJaXAmIzM0OyRpcCYjMzQ7IGZpbHRlciBPVVRQVVQgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQl0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgYWRkLWFkZHIgXAomIzQzOwkJZHJvcCB8IGhlYWQgLW4xIHwgYXdrICYjMzk7e3ByaW50ICRORn0mIzM5OykKJiM0MzsJaWYgWyAteiAmIzM0OyRuZnRfaGFuZGxlJiMzNDsgXTsgdGhlbgogCQltYXJrX2FzX3NraXBwZWQgJiMzNDt1bmFibGUgdG8gc2V0IHRoZSAmIzM5O2FkZCBhZGRyJiMzOTsgcnVsZSYjMzQ7CiAJCXJldHVybiAxCiAJZmkKQEAgLTQ0OSwyMyAmIzQzOzQxOCwxNyBAQCBzZXR1cF9mYWlsX3J1bGVzKCkKIAljaGVja19pbnZlcnQ9MQogCXZhbGlkYXRlX2NoZWNrc3VtPXRydWUKIAlsb2NhbCBpPSYjMzQ7JDEmIzM0OwotCWxvY2FsIGlwPSYjMzQ7JHsyOi00fSYjMzQ7Ci0JbG9jYWwgdGFibGVzCiYjNDM7CWxvY2FsIGlwPSYjMzQ7JHsyOi19JiMzNDsKIAotCXRhYmxlcz0mIzM0OyR7aXB0YWJsZXN9JiMzNDsKLQlpZiBbICRpcCAtZXEgNiBdOyB0aGVuCi0JCXRhYmxlcz0mIzM0OyR7aXA2dGFibGVzfSYjMzQ7CiYjNDM7CW5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjICYjMzQ7JG5zMiYjMzQ7IG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcCiYjNDM7CQlpcCYjMzQ7JGlwJiMzNDsgbWFuZ2xlIE9VVFBVVCBvaWZuYW1lIG5zMmV0aCRpIFwKJiM0MzsJCW1ldGEgbDRwcm90byB0Y3AgXAomIzQzOwkJbWV0YSBsZW5ndGggMTUwLTk5OTkgbnVtZ2VuIGluYyBtb2QgOTk5OTkgMSBcCiYjNDM7CQltZXRhIG1hcmsgc2V0IDQyIHwgaGVhZCAtbjEgfCBhd2sgJiMzOTt7cHJpbnQgJE5GfSYjMzk7KQomIzQzOwlpZiBbIC16ICYjMzQ7JG5mdF9oYW5kbGUmIzM0OyBdOyB0aGVuCiYjNDM7CQlyZXR1cm4gJHtLU0ZUX1NLSVB9CiAJZmkKIAotCWlwIG5ldG5zIGV4ZWMgJG5zMiAkdGFibGVzIFwKLQkJLXQgbWFuZ2xlIFwKLQkJLUEgT1VUUFVUIFwKLQkJLW8gbnMyZXRoJGkgXAotCQktcCB0Y3AgXAotCQktbSBsZW5ndGggLS1sZW5ndGggMTUwOjk5OTkgXAotCQktbSBzdGF0aXN0aWMgLS1tb2RlIG50aCAtLXBhY2tldCAxIC0tZXZlcnkgOTk5OTkgXAotCQktaiBNQVJLIC0tc2V0LW1hcmsgNDIgfHwgcmV0dXJuICR7S1NGVF9TS0lQfQotCiAJdGMgLW4gJG5zMiBxZGlzYyBhZGQgZGV2IG5zMmV0aCRpIGNsc2FjdCB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9CiAJdGMgLW4gJG5zMiBmaWx0ZXIgYWRkIGRldiBuczJldGgkaSBlZ3Jlc3MgXAogCQlwcm90b2NvbCBpcCBwcmlvIDEwMDAgXApAQCAtNTE1LDExICYjNDM7NDc4LDEwIEBAIHJlc2V0X3dpdGhfdGNwX2ZpbHRlcigpCiAJbG9jYWwgdGFyZ2V0PSYjMzQ7JHszfSYjMzQ7CiAJbG9jYWwgY2hhaW49JiMzNDskezQ6LUlOUFVUfSYjMzQ7CiAKLQlpZiAhIGlwIG5ldG5zIGV4ZWMgJiMzNDske25zfSYjMzQ7ICR7aXB0YWJsZXN9IFwKLQkJCS1BICYjMzQ7JHtjaGFpbn0mIzM0OyBcCi0JCQktcyAmIzM0OyR7c3JjfSYjMzQ7IFwKLQkJCS1wIHRjcCBcCi0JCQktaiAmIzM0OyR7dGFyZ2V0fSYjMzQ7OyB0aGVuCiYjNDM7CW5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjICYjMzQ7JG5zJiMzNDsgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFwKJiM0MzsJCWlwIGZpbHRlciAmIzM0OyR7Y2hhaW59JiMzNDsgaXAgc2FkZHIgJiMzNDt7ICR7c3JjfSB9JiMzNDsgXAomIzQzOwkJbWV0YSBsNHByb3RvIHRjcCAmIzM0OyR7dGFyZ2V0LCx9JiMzNDsgfCBoZWFkIC1uMSB8IGF3ayAmIzM5O3twcmludCAkTkZ9JiMzOTspCiYjNDM7CWlmIFsgLXogJiMzNDskbmZ0X2hhbmRsZSYjMzQ7IF07IHRoZW4KIAkJbWFya19hc19za2lwcGVkICYjMzQ7dW5hYmxlIHRvIHNldCB0aGUgZmlsdGVyIHJ1bGVzJiMzNDsKIAkJcmV0dXJuIDEKIAlmaQpAQCAtNDMxNSwxMCAmIzQzOzQyNzcsMTIgQEAgdXNlcnNwYWNlX3Rlc3RzKCkKIAogCQkjIGZvcmNlIHF1aWNrIGxvc3MKIAkJaXAgbmV0bnMgZXhlYyAkbnMyIHN5c2N0bCAtcSBuZXQuaXB2NC50Y3Bfc3luX3JldHJpZXM9MQotCQlpZiBpcCBuZXRucyBleGVjICYjMzQ7JHtuczF9JiMzNDsgJHtpcHRhYmxlc30gLUEgSU5QVVQgLXMgJiMzNDsxMC4wLjEuMiYjMzQ7IFwKLQkJICAgICAgLXAgdGNwIC0tdGNwLW9wdGlvbiAzMCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCB0Y3AtcmVzZXQgJmFtcDsmYW1wOwotCQkgICBpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgJiMzNDsxMC4wLjEuMiYjMzQ7IFwKLQkJICAgICAgLXAgdGNwIC0tdGNwLW9wdGlvbiAzMCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCB0Y3AtcmVzZXQ7IHRoZW4KJiM0MzsJCWlmIGlwIG5ldG5zIGV4ZWMgJiMzNDske25zMX0mIzM0OyBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFwKJiM0MzsJCQlpcCBzYWRkciAmIzM0OzEwLjAuMS4yJiMzNDsgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQkJdGNwIG9wdGlvbiBtcHRjcCBleGlzdHMgcmVqZWN0IHdpdGggdGNwIHJlc2V0ICZhbXA7JmFtcDsKJiM0MzsJCSAgIGlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFwKJiM0MzsJCQlpcCBkYWRkciAmIzM0OzEwLjAuMS4yJiMzNDsgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQkJdGNwIG9wdGlvbiBtcHRjcCBleGlzdHMgcmVqZWN0IHdpdGggdGNwIHJlc2V0OyB0aGVuCiAJCQl3YWl0X2V2ZW50IG5zMiBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxCiAJCQl3YWl0X2V2ZW50IG5zMSBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxCiAJCQljaGtfc3ViZmxvd3NfdG90YWwgMSAxCkBAIC00MzkzLDcgJiM0Mzs0MzU3LDcgQEAgZW5kcG9pbnRfdGVzdHMoKQogCQljaGtfc3ViZmxvd19uciAmIzM0O2FmdGVyIG5ldyByZWplY3QmIzM0OyAyCiAJCWNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDEgc3ViZmxvd3MgMQogCi0JCWlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgJiMzNDsxMC4wLjMuMiYjMzQ7IC1wIHRjcCAtaiBSRUpFQ1QKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyBuZnQgZGVsZXRlIHJ1bGUgaXAgZmlsdGVyIE9VVFBVVCBoYW5kbGUgJiMzNDskbmZ0X2hhbmRsZSYjMzQ7CiAJCXBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDMgMTAuMC4zLjIKIAkJcG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93CiAJCXdhaXRfbXBqIDMKQEAgLTQ0MDIsMTIgJiM0Mzs0MzY2LDEwIEBAIGVuZHBvaW50X3Rlc3RzKCkKIAogCQkjIFRvIG1ha2Ugc3VyZSBSTV9BRERSIGFyZSBzZW50IG92ZXIgYSBkaWZmZXJlbnQgc3ViZmxvdywgYnV0CiAJCSMgYWxsb3cgdGhlIHJlc3QgdG8gcXVpY2tseSBhbmQgY2xlYW5seSBjbG9zZSB0aGUgc3ViZmxvdwotCQlsb2NhbCBpcHQ9MQotCQlpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgJHtpcHRhYmxlc30gLUkgT1VUUFVUIC1zICYjMzQ7MTAuMC4xLjImIzM0OyBcCi0JCQktcCB0Y3AgLW0gdGNwIC0tdGNwLW9wdGlvbiAzMCBcCi0JCQktbSBicGYgLS1ieXRlY29kZSBcCi0JCQkmIzM0OyRDQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSJiMzNDsgXAotCQkJLWogRFJPUCB8fCBpcHQ9MAomIzQzOwkJbmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgJiMzNDske25zMn0mIzM0OyBuZnQgLWUgLS1oYW5kbGUgaW5zZXJ0IHJ1bGUgXAomIzQzOwkJCWlwIGZpbHRlciBPVVRQVVQgaXAgc2FkZHIgMTAuMC4xLjIgbWV0YSBsNHByb3RvIHRjcCBcCiYjNDM7CQkJdGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIHJlbW92ZS1hZGRyIFwKJiM0MzsJCQlkcm9wIHwgaGVhZCAtbjEgfCBhd2sgJiMzOTt7cHJpbnQgJE5GfSYjMzk7KQogCQlsb2NhbCBpCiAJCWZvciBpIGluICQoc2VxIDMpOyBkbwogCQkJcG1fbmxfZGVsX2VuZHBvaW50ICRuczIgMSAxMC4wLjEuMgpAQCAtNDQyMCw3ICYjNDM7NDM4Miw4IEBAIGVuZHBvaW50X3Rlc3RzKCkKIAkJCWNoa19zdWJmbG93X25yICYjMzQ7YWZ0ZXIgcmUtYWRkIGlkIDAgKCRpKSYjMzQ7IDMKIAkJCWNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDMgc3ViZmxvd3MgMwogCQlkb25lCi0JCVsgJHtpcHR9ID0gMSBdICZhbXA7JmFtcDsgaXAgbmV0bnMgZXhlYyAmIzM0OyR7bnMyfSYjMzQ7ICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAxCiYjNDM7CQlbIC1uICYjMzQ7JHtuZnRfaGFuZGxlfSYjMzQ7IF0gJmFtcDsmYW1wOyBpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgbmZ0IGRlbGV0ZSBydWxlIFwKJiM0MzsJCQlpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSAmIzM0OyR7bmZ0X2hhbmRsZX0mIzM0OwogCiAJCW1wdGNwX2xpYl9raWxsX2dyb3VwX3dhaXQgJHRlc3RzX3BpZAogCkBAIC00NDgyLDE4ICYjNDM7NDQ0NSwxNyBAQCBlbmRwb2ludF90ZXN0cygpCiAKIAkJIyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dAogCQkjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3cKLQkJbG9jYWwgaXB0PTEKLQkJaXAgbmV0bnMgZXhlYyAmIzM0OyR7bnMxfSYjMzQ7ICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyAmIzM0OzEwLjAuMS4xJiMzNDsgXAotCQkJLXAgdGNwIC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXAotCQkJLW0gYnBmIC0tYnl0ZWNvZGUgXAotCQkJJiMzNDskQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUiYjMzQ7IFwKLQkJCS1qIERST1AgfHwgaXB0PTAKJiM0MzsJCW5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjICYjMzQ7JHtuczF9JiMzNDsgbmZ0IC1lIC0taGFuZGxlIGluc2VydCBydWxlIFwKJiM0MzsJCQlpcCBmaWx0ZXIgT1VUUFVUIGlwIHNhZGRyIDEwLjAuMS4xIG1ldGEgbDRwcm90byB0Y3AgXAomIzQzOwkJCXRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcCiYjNDM7CQkJZHJvcCB8IGhlYWQgLW4xIHwgYXdrICYjMzk7e3ByaW50ICRORn0mIzM5OykKIAkJcG1fbmxfZGVsX2VuZHBvaW50ICRuczEgNDIgMTAuMC4xLjEKIAkJc2xlZXAgMC41CiAJCWNoa19zdWJmbG93X25yICYjMzQ7YWZ0ZXIgZGVsZXRlIElEIDAmIzM0OyAyCiAJCWNoa19tcHRjcF9pbmZvIHN1YmZsb3dzIDIgc3ViZmxvd3MgMgogCQljaGtfbXB0Y3BfaW5mbyBhZGRfYWRkcl9zaWduYWwgMiBhZGRfYWRkcl9hY2NlcHRlZCAyCi0JCVsgJHtpcHR9ID0gMSBdICZhbXA7JmFtcDsgaXAgbmV0bnMgZXhlYyAmIzM0OyR7bnMxfSYjMzQ7ICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAxCiYjNDM7CQlbIC1uICYjMzQ7JHtuZnRfaGFuZGxlfSYjMzQ7IF0gJmFtcDsmYW1wOyBpcCBuZXRucyBleGVjICYjMzQ7JHtuczF9JiMzNDsgbmZ0IGRlbGV0ZSBydWxlIFwKJiM0MzsJCQlpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSAmIzM0OyR7bmZ0X2hhbmRsZX0mIzM0OwogCiAJCXBtX25sX2FkZF9lbmRwb2ludCAkbnMxIDEwLjAuMS4xIGlkIDQyIGZsYWdzIHNpZ25hbAogCQl3YWl0X21waiA0CkBAIC00NTU1LDcgJiM0Mzs0NTE3LDcgQEAgZW5kcG9pbnRfdGVzdHMoKQogCQlwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMyCiAJCXBtX25sX2ZsdXNoX2VuZHBvaW50ICRuczEKIAkJd2FpdF9ybV9hZGRyICRuczIgMAotCQlpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgJHtpcHRhYmxlc30gLUQgT1VUUFVUIC1zICYjMzQ7MTAuMC4zLjImIzM0OyAtcCB0Y3AgLWogUkVKRUNUCiYjNDM7CQlpcCBuZXRucyBleGVjICYjMzQ7JHtuczJ9JiMzNDsgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlICYjMzQ7JG5mdF9oYW5kbGUmIzM0OwogCQlwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3cKIAkJd2FpdF9tcGogMQogCQlwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjMuMSBpZCAyIGZsYWdzIHNpZ25hbApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2gKaW5kZXggNWVmNjAzMzc3NWM4Ni4uZWJhNjkwMzIzM2NjZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoCkBAIC01MjQsNyAmIzQzOzUyNCw3IEBAIG1wdGNwX2xpYl9jaGVja190b29scygpIHsKIAkJCQlleGl0ICR7S1NGVF9TS0lQfQogCQkJZmkKIAkJCTs7Ci0JCSYjMzQ7aXB0YWJsZXMmIzM0OyogfCAmIzM0O2lwNnRhYmxlcyYjMzQ7KikKJiM0MzsJCSYjMzQ7aXB0YWJsZXMmIzM0OyogfCAmIzM0O2lwNnRhYmxlcyYjMzQ7KiB8ICYjMzQ7bmZ0JiMzNDsqKQogCQkJaWYgISAmIzM0OyR7dG9vbH0mIzM0OyAtViAmYW1wOyZndDsgL2Rldi9udWxsOyB0aGVuCiAJCQkJbXB0Y3BfbGliX3ByX3NraXAgJiMzNDtDb3VsZCBub3QgcnVuIGFsbCB0ZXN0cyB3aXRob3V0ICR7dG9vbH0mIzM0OwogCQkJCWV4aXQgJHtLU0ZUX1NLSVB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoCmluZGV4IGU4NTBhODc0MjliNjEuLmEyYzIwNDgzOTg2ZGMgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoCkBAIC0xNSw4ICYjNDM7MTUsNiBAQCBjaW49JiMzNDsmIzM0OwogY291dD0mIzM0OyYjMzQ7CiB0aW1lb3V0X3BvbGw9MzAKIHRpbWVvdXRfdGVzdD0kKCh0aW1lb3V0X3BvbGwgKiAyICYjNDM7IDEpKQotaXB0YWJsZXM9JiMzNDtpcHRhYmxlcyYjMzQ7Ci1pcDZ0YWJsZXM9JiMzNDtpcDZ0YWJsZXMmIzM0OwogCiBuczE9JiMzNDsmIzM0OwogbnMyPSYjMzQ7JiMzNDsKQEAgLTUwLDE1ICYjNDM7NDgsMjUgQEAgYWRkX21hcmtfcnVsZXMoKQogCWxvY2FsIG09JDIKIAogCWxvY2FsIHQKLQlmb3IgdCBpbiAke2lwdGFibGVzfSAke2lwNnRhYmxlc307IGRvCiYjNDM7CWZvciB0IGluIGlwIGlwNjsgZG8KJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgYWRkIHRhYmxlICYjMzQ7JHQmIzM0OyBmaWx0ZXIKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgYWRkIGNoYWluICYjMzQ7JHQmIzM0OyBmaWx0ZXIgT1VUUFVUIFwKJiM0MzsJCQkmIzM5O3sgdHlwZSBmaWx0ZXIgaG9vayBvdXRwdXQgcHJpb3JpdHkgMDsgcG9saWN5IGFjY2VwdDsgfSYjMzk7CiYjNDM7CiAJCSMganVzdCB0byBkZWJ1ZzogY2hlY2sgd2UgaGF2ZSBtdWx0aXBsZSBzdWJmbG93cyBjb25uZWN0aW9uIHJlcXVlc3RzCi0JCWlwIG5ldG5zIGV4ZWMgJG5zICR0IC1BIE9VVFBVVCAtcCB0Y3AgLS1zeW4gLW0gbWFyayAtLW1hcmsgJG0gLWogQUNDRVBUCiYjNDM7CQlpcCBuZXRucyBleGVjICYjMzQ7JG5zJiMzNDsgbmZ0IGFkZCBydWxlICYjMzQ7JHQmIzM0OyBmaWx0ZXIgT1VUUFVUIFwKJiM0MzsJCQl0Y3AgZmxhZ3MgXCZhbXA7IFwoZmluIFx8IHN5biBcfCByc3QgXHwgYWNrXCkgPT0gc3luIFwKJiM0MzsJCQltZXRhIG1hcmsgJiMzNDskbSYjMzQ7IGFjY2VwdAogCiAJCSMgUlNUIHBhY2tldHMgbWlnaHQgYmUgaGFuZGxlZCBieSBhIGludGVybmFsIGR1bW15IHNvY2tldAotCQlpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC0tdGNwLWZsYWdzIFJTVCBSU1QgLW0gbWFyayAtLW1hcmsgMCAtaiBBQ0NFUFQKJiM0MzsJCWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgYWRkIHJ1bGUgJiMzNDskdCYjMzQ7IGZpbHRlciBPVVRQVVQgXAomIzQzOwkJCXRjcCBmbGFncyBcJmFtcDsgcnN0ID09IHJzdCBtZXRhIG1hcmsgMHgwIGFjY2VwdAomIzQzOwomIzQzOwkJaXAgbmV0bnMgZXhlYyAmIzM0OyRucyYjMzQ7IG5mdCBhZGQgcnVsZSAmIzM0OyR0JiMzNDsgZmlsdGVyIE9VVFBVVCBcCiYjNDM7CQkJbWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgJiMzNDskbSYjMzQ7IGFjY2VwdAomIzQzOwkJaXAgbmV0bnMgZXhlYyAmIzM0OyRucyYjMzQ7IG5mdCBhZGQgcnVsZSAmIzM0OyR0JiMzNDsgZmlsdGVyIE9VVFBVVCBcCiYjNDM7CQkJbWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgMCBjb3VudGVyIGRyb3AKIAotCQlpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC1tIG1hcmsgLS1tYXJrICRtIC1qIEFDQ0VQVAotCQlpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC1tIG1hcmsgLS1tYXJrIDAgLWogRFJPUAogCWRvbmUKIH0KIApAQCAtMTA1LDMyICYjNDM7MTEzLDI5IEBAIGNsZWFudXAoKQogCiBtcHRjcF9saWJfY2hlY2tfbXB0Y3AKIG1wdGNwX2xpYl9jaGVja19rYWxsc3ltcwotbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwICYjMzQ7JHtpcHRhYmxlc30mIzM0OyAmIzM0OyR7aXA2dGFibGVzfSYjMzQ7CiYjNDM7bXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIG5mdAogCiBjaGVja19tYXJrKCkKIHsKIAlsb2NhbCBucz0kMQogCWxvY2FsIGFmPSQyCiAKLQlsb2NhbCB0YWJsZXM9JHtpcHRhYmxlc30KJiM0MzsJbG9jYWwgdGFibGVzPSYjMzQ7aXAmIzM0OwogCiAJaWYgWyAkYWYgLWVxIDYgXTt0aGVuCi0JCXRhYmxlcz0ke2lwNnRhYmxlc30KJiM0MzsJCXRhYmxlcz0mIzM0O2lwNiYjMzQ7CiAJZmkKIAotCWxvY2FsIGNvdW50ZXJzIHZhbHVlcwotCWNvdW50ZXJzPSQoaXAgbmV0bnMgZXhlYyAkbnMgJHRhYmxlcyAtdiAtTCBPVVRQVVQgfCBncmVwIERST1ApCi0JdmFsdWVzPSR7Y291bnRlcnMlRFJPUCp9Ci0KLQlsb2NhbCB2Ci0JZm9yIHYgaW4gJHZhbHVlczsgZG8KLQkJaWYgWyAkdiAtbmUgMCBdOyB0aGVuCi0JCQltcHRjcF9saWJfcHJfZmFpbCAmIzM0O2dvdCAkdGFibGVzICR2YWx1ZXMgaW4gbnMgJG5zLCYjMzQ7IFwKLQkJCQkJICAmIzM0O25vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZCYjMzQ7Ci0JCQlyZXQ9JHtLU0ZUX0ZBSUx9Ci0JCQlyZXR1cm4gMQotCQlmaQotCWRvbmUKJiM0MzsJbG9jYWwgdmFsdWVzCiYjNDM7CXZhbHVlcz0kKGlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBuZnQgbGlzdCB0YWJsZSAmIzM0OyR0YWJsZXMmIzM0OyBmaWx0ZXIgfCBcCiYjNDM7CQlncmVwIC1vICYjMzQ7cGFja2V0cy4qZHJvcCYjMzQ7IHwgYXdrICYjMzk7e3ByaW50ICQyfSYjMzk7KQomIzQzOwomIzQzOwlpZiBbWyAhICYjMzQ7JHZhbHVlcyYjMzQ7ID1+IF5bMC05XSYjNDM7JCBdXSB8fCBbICYjMzQ7JHZhbHVlcyYjMzQ7IC1uZSAwIF07IHRoZW4KJiM0MzsJCW1wdGNwX2xpYl9wcl9mYWlsICYjMzQ7Z290ICR0YWJsZXMgJHZhbHVlcyBpbiBucyAkbnMsJiMzNDsgXAomIzQzOwkJCQkgICYjMzQ7bm90IDAgLSBub3QgYWxsIGV4cGVjdGVkIHBhY2tldHMgbWFya2VkJiMzNDsKJiM0MzsJCXJldD0ke0tTRlRfRkFJTH0KJiM0MzsJCXJldHVybiAxCiYjNDM7CWZpCiAKIAlyZXR1cm4gMAogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNCAwMDo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTkyCgkJCQkJCQlvdXRwdXQ6IDc5CgkJCQkJCQl0aG91Z2h0czogNDA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgRWxpZ2liaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBwYXRjaCBhbmQgdGhlIGFzc29jaWF0ZWQgZGlmZi4gRmlyc3QsIEkgc2VlIHRoZSBjaGFuZ2VzIGFyZSBhbGwgY29uZmluZWQgdG8gdGhlIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgd2UmIzM5O3JlIGxvb2tpbmcgYXQgbW9kaWZpY2F0aW9ucyB0byBgY29uZmlnYCwgYG1wdGNwX2pvaW4uc2hgLCBgbXB0Y3BfbGliLnNoYCwgYW5kIGBtcHRjcF9zb2Nrb3B0LnNoYC4gQWxsIHZlcnkgY2xlYXJseSB3aXRoaW4gdGhlIHJlYWxtIG9mIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgc2NyaXB0cy4KCk5vdywgbGV0JiMzOTtzIGFwcGx5IFNlY3Rpb24gMiBvZiB0aGUgZnV6emluZyBlbGlnaWJpbGl0eSBydWxlcy4gVGhlIGtleSBxdWVzdGlvbiBpcywgJiMzNDtEb2VzIHRoaXMgdG91Y2ggYW55IGNvZGUgdGhhdCAqcmVhbGx5KiBtYXR0ZXJzIGZvciBmdXp6aW5nIHRoZSBrZXJuZWw/JiMzNDsgTG9va2luZyBhdCB0aGUgY3JpdGVyaWEgZm9yIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYCwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoaXMgZmFsbHMgc3F1YXJlbHkgaW50byB0aGUgJiMzNDt1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlJiMzNDsgY2F0ZWdvcnkuIFdlJiMzOTtyZSB0YWxraW5nIGJhc2ggc2NyaXB0cyBhbmQgYSBjb25maWd1cmF0aW9uIGZpbGUsIG5vdGhpbmcgdGhhdCYjMzk7cyBnb2luZyB0byBpbmZsdWVuY2UgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSBvciBrZXJuZWwgbW9kdWxlcy4gTm8gQyBjb2RlLCBubyBjb3JlIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMsIG5vdGhpbmcuCgpUaGVyZWZvcmUsIGdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIG1vZGlmaWNhdGlvbnMsIGl0JiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIGRldGVybWluYXRpb246IGBXb3J0aEZ1enppbmdgIGlzIGRlZmluaXRpdmVseSBgZmFsc2VgLiBCZWNhdXNlIHdlIGFyZSBkZWFsaW5nIHdpdGggc2NyaXB0cywgdGhlcmUgaXMgbm8gbmVlZCBmb3IgYEZvY3VzU3ltYm9sc2Agb3IgYEVuYWJsZUNvbmZpZ3NgLiBUaGVzZSBhcmUgaXJyZWxldmFudCBpbiB0aGlzIGNhc2UuCgpUaW1lIHRvIGV4ZWN1dGUgYHNldC1yZXN1bHRzYCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwYXJhbWV0ZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAxOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAxOjAwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMDo1OTo1OC41ODUwODUyMDRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYyNTAyMjU2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMDo1OTo1OC41ODUwOTAzMTRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NDgyNjk2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDVjNGNjYmY3MGI1MTY1ZjJmMzNkMTVkODI4ZDM0OWY3ODVkOWI4MWZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBTZXAgNCAwMDo1OTo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xcbmluZGV4IDU5MDUxZWUyYTk4NjAuLjBkMGE3NDRjNGNhODkgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcXG5AQCAtMzAsNiArMzAsOSBAQCBDT05GSUdfTkVUX1NDSF9ORVRFTT1tXFxuIENPTkZJR19ORl9UQUJMRVM9bVxcbiBDT05GSUdfTkZfVEFCTEVTX0lORVQ9eVxcbiBDT05GSUdfTkZUX0NPTVBBVD1tXFxuK0NPTkZJR19ORlRfTlVNR0VOPXlcXG4rQ09ORklHX05GVF9SRUpFQ1Q9bVxcbitDT05GSUdfTkZUX1JFSkVDVF9JUFY0PW1cXG4gQ09ORklHX05GVF9TT0NLRVQ9bVxcbiBDT05GSUdfTkZUX1RQUk9YWT1tXFxuIENPTkZJR19TWU5fQ09PS0lFUz15XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2hcXG5pbmRleCAxOGNlNzEzNmEyYjBlLi43YzU2NjgwY2M0MjIxIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2hcXG5AQCAtMjYsOCArMjYsNiBAQCBjYXBvdXQ9XFxcIlxcXCJcXG4gY2FwcGlkPVxcXCJcXFwiXFxuIG5zMT1cXFwiXFxcIlxcbiBuczI9XFxcIlxcXCJcXG4taXB0YWJsZXM9XFxcImlwdGFibGVzXFxcIlxcbi1pcDZ0YWJsZXM9XFxcImlwNnRhYmxlc1xcXCJcXG4gdGltZW91dF9wb2xsPTMwXFxuIHRpbWVvdXRfdGVzdD0kKCh0aW1lb3V0X3BvbGwgKiAyICsgMSkpXFxuIGNhcHR1cmU9ZmFsc2VcXG5AQCAtNTAsNiArNDgsNyBAQCBkZWNsYXJlIC1BIGZhaWxlZF90ZXN0c1xcbiBNUFRDUF9MSUJfVEVTVF9GT1JNQVQ9XFxcIiUwM3UgJXNcXFxcblxcXCJcXG4gVEVTVF9OQU1FPVxcXCJcXFwiXFxuIG5yX2JsYW5rPTZcXG4rbmZ0X2hhbmRsZT1cXFwiXFxcIlxcbiBcXG4gIyBUaGVzZSB2YXIgYXJlIHVzZWQgb25seSBpbiBzb21lIHRlc3RzLCBtYWtlIHN1cmUgdGhleSBhcmUgbm90IGFscmVhZHkgc2V0XFxuIHVuc2V0IEZBSUxJTkdfTElOS1NcXG5AQCAtOTksNDIgKzk4LDYgQEAgdW5zZXQgYWRkX2FkZHJfdHhfbnJcXG4gdW5zZXQgYWRkX2FkZHJfZWNob190eF9uclxcbiB1bnNldCBhZGRfYWRkcl9kcm9wX3R4X25yXFxuIFxcbi0jIGdlbmVyYXRlZCB1c2luZyBcXFwibmZicGZfY29tcGlsZSAnKGlwIFxcdTAwMjZcXHUwMDI2IChpcFs1NF0gXFx1MDAyNiAweGYwKSA9PSAweDMwKSB8fFxcbi0jXFx0XFx0XFx0XFx0ICAoaXA2IFxcdTAwMjZcXHUwMDI2IChpcDZbNzRdIFxcdTAwMjYgMHhmMCkgPT0gMHgzMCknXFxcIlxcbi1DQlBGX01QVENQX1NVQk9QVElPTl9BRERfQUREUj1cXFwiMTQsXFxuLVxcdFxcdFxcdCAgICAgICA0OCAwIDAgMCxcXG4tXFx0XFx0XFx0ICAgICAgIDg0IDAgMCAyNDAsXFxuLVxcdFxcdFxcdCAgICAgICAyMSAwIDMgNjQsXFxuLVxcdFxcdFxcdCAgICAgICA0OCAwIDAgNTQsXFxuLVxcdFxcdFxcdCAgICAgICA4NCAwIDAgMjQwLFxcbi1cXHRcXHRcXHQgICAgICAgMjEgNiA3IDQ4LFxcbi1cXHRcXHRcXHQgICAgICAgNDggMCAwIDAsXFxuLVxcdFxcdFxcdCAgICAgICA4NCAwIDAgMjQwLFxcbi1cXHRcXHRcXHQgICAgICAgMjEgMCA0IDk2LFxcbi1cXHRcXHRcXHQgICAgICAgNDggMCAwIDc0LFxcbi1cXHRcXHRcXHQgICAgICAgODQgMCAwIDI0MCxcXG4tXFx0XFx0XFx0ICAgICAgIDIxIDAgMSA0OCxcXG4tXFx0XFx0XFx0ICAgICAgIDYgMCAwIDY1NTM1LFxcbi1cXHRcXHRcXHQgICAgICAgNiAwIDAgMFxcXCJcXG4tXFxuLSMgSVB2NDogVENQIGhkciBvZiA0OEIsIGEgZmlyc3Qgc3Vib3B0aW9uIG9mIDEyQiAoREFDSzgpLCB0aGUgUk1fQUREUiBzdWJvcHRpb25cXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXFxcIm5mYnBmX2NvbXBpbGUgJyhpcFszMl0gXFx1MDAyNiAweGYwKSA9PSAweGMwIFxcdTAwMjZcXHUwMDI2IGlwWzUzXSA9PSAweDBjIFxcdTAwMjZcXHUwMDI2XFxuLSNcXHRcXHRcXHRcXHQgIChpcFs2Nl0gXFx1MDAyNiAweGYwKSA9PSAweDQwJ1xcXCJcXG4tQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUj1cXFwiMTMsXFxuLVxcdFxcdFxcdCAgICAgIDQ4IDAgMCAwLFxcbi1cXHRcXHRcXHQgICAgICA4NCAwIDAgMjQwLFxcbi1cXHRcXHRcXHQgICAgICAyMSAwIDkgNjQsXFxuLVxcdFxcdFxcdCAgICAgIDQ4IDAgMCAzMixcXG4tXFx0XFx0XFx0ICAgICAgODQgMCAwIDI0MCxcXG4tXFx0XFx0XFx0ICAgICAgMjEgMCA2IDE5MixcXG4tXFx0XFx0XFx0ICAgICAgNDggMCAwIDUzLFxcbi1cXHRcXHRcXHQgICAgICAyMSAwIDQgMTIsXFxuLVxcdFxcdFxcdCAgICAgIDQ4IDAgMCA2NixcXG4tXFx0XFx0XFx0ICAgICAgODQgMCAwIDI0MCxcXG4tXFx0XFx0XFx0ICAgICAgMjEgMCAxIDY0LFxcbi1cXHRcXHRcXHQgICAgICA2IDAgMCA2NTUzNSxcXG4tXFx0XFx0XFx0ICAgICAgNiAwIDAgMFxcXCJcXG4tXFxuIGluaXRfcGFydGlhbCgpXFxuIHtcXG4gXFx0Y2Fwb3V0PSQobWt0ZW1wKVxcbkBAIC0xNDcsNiArMTEwLDE4IEBAIGluaXRfcGFydGlhbCgpXFxuIFxcdFxcdGlmICRjaGVja3N1bTsgdGhlblxcbiBcXHRcXHRcXHRpcCBuZXRucyBleGVjICRuZXRucyBzeXNjdGwgLXEgbmV0Lm1wdGNwLmNoZWNrc3VtX2VuYWJsZWQ9MVxcbiBcXHRcXHRmaVxcbitcXG4rXFx0XFx0Zm9yIHQgaW4gaXAgaXA2OyBkb1xcbitcXHRcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbmV0bnNcXFwiIG5mdCBhZGQgdGFibGUgXFxcIiR0XFxcIiBmaWx0ZXJcXG4rXFx0XFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5ldG5zXFxcIiBuZnQgYWRkIGNoYWluIFxcXCIkdFxcXCIgZmlsdGVyIElOUFVUIFxcXFxcXG4rXFx0XFx0XFx0XFx0J3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0nXFxuK1xcdFxcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuZXRuc1xcXCIgbmZ0IGFkZCBjaGFpbiBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHRcXHQneyB0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0nXFxuK1xcbitcXHRcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbmV0bnNcXFwiIG5mdCBhZGQgdGFibGUgXFxcIiR0XFxcIiBtYW5nbGVcXG4rXFx0XFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5ldG5zXFxcIiBuZnQgYWRkIGNoYWluIFxcXCIkdFxcXCIgbWFuZ2xlIE9VVFBVVCBcXFxcXFxuK1xcdFxcdFxcdFxcdCd7IHR5cGUgcm91dGUgaG9vayBvdXRwdXQgcHJpb3JpdHkgbWFuZ2xlOyBwb2xpY3kgYWNjZXB0OyB9J1xcbitcXHRcXHRkb25lXFxuIFxcdGRvbmVcXG4gXFxuIFxcdGNoZWNrX2ludmVydD0wXFxuQEAgLTE5Niw3ICsxNzEsNyBAQCBpbml0KCkge1xcbiBcXG4gXFx0bXB0Y3BfbGliX2NoZWNrX21wdGNwXFxuIFxcdG1wdGNwX2xpYl9jaGVja19rYWxsc3ltc1xcbi1cXHRtcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgdGMgc3MgXFxcIiR7aXB0YWJsZXN9XFxcIiBcXFwiJHtpcDZ0YWJsZXN9XFxcIlxcbitcXHRtcHRjcF9saWJfY2hlY2tfdG9vbHMgaXAgdGMgc3MgbmZ0XFxuIFxcbiBcXHRzaW49JChta3RlbXApXFxuIFxcdHNvdXQ9JChta3RlbXApXFxuQEAgLTM4MCwyNCArMzU1LDE4IEBAIHJlc2V0X3dpdGhfY29va2llcygpXFxuICMgJDE6IHRlc3QgbmFtZVxcbiByZXNldF93aXRoX2FkZF9hZGRyX3RpbWVvdXQoKVxcbiB7XFxuLVxcdGxvY2FsIGlwPVxcXCIkezI6LTR9XFxcIlxcbi1cXHRsb2NhbCB0YWJsZXNcXG4rXFx0bG9jYWwgaXA9XFxcIiR7MjotfVxcXCJcXG4gXFxuIFxcdHJlc2V0IFxcXCIkezF9XFxcIiB8fCByZXR1cm4gMVxcbiBcXG4tXFx0dGFibGVzPVxcXCIke2lwdGFibGVzfVxcXCJcXG4tXFx0aWYgWyAkaXAgLWVxIDYgXTsgdGhlblxcbi1cXHRcXHR0YWJsZXM9XFxcIiR7aXA2dGFibGVzfVxcXCJcXG4tXFx0ZmlcXG4tXFxuIFxcdCMgc2V0IGEgbWF4aW11bSwgdG8gYXZvaWQgdG9vIGxvbmcgdGltZW91dCB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmZcXG4gXFx0aXAgbmV0bnMgZXhlYyAkbnMxIHN5c2N0bCAtcSBuZXQubXB0Y3AuYWRkX2FkZHJfdGltZW91dD0xXFxuIFxcbi1cXHRpZiAhIGlwIG5ldG5zIGV4ZWMgJG5zMiAkdGFibGVzIC1BIE9VVFBVVCAtcCB0Y3AgXFxcXFxcbi1cXHRcXHRcXHQtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXFxcXG4tXFx0XFx0XFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcXFxcbi1cXHRcXHRcXHRcXFwiJENCUEZfTVBUQ1BfU1VCT1BUSU9OX0FERF9BRERSXFxcIiBcXFxcXFxuLVxcdFxcdFxcdC1qIERST1A7IHRoZW5cXG4rXFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXFxcIiRuczJcXFwiIG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxcXFxuK1xcdFxcdGlwXFxcIiRpcFxcXCIgZmlsdGVyIE9VVFBVVCBtZXRhIGw0cHJvdG8gdGNwIFxcXFxcXG4rXFx0XFx0dGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIGFkZC1hZGRyIFxcXFxcXG4rXFx0XFx0ZHJvcCB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXFxuK1xcdGlmIFsgLXogXFxcIiRuZnRfaGFuZGxlXFxcIiBdOyB0aGVuXFxuIFxcdFxcdG1hcmtfYXNfc2tpcHBlZCBcXFwidW5hYmxlIHRvIHNldCB0aGUgJ2FkZCBhZGRyJyBydWxlXFxcIlxcbiBcXHRcXHRyZXR1cm4gMVxcbiBcXHRmaVxcbkBAIC00NDksMjMgKzQxOCwxNyBAQCBzZXR1cF9mYWlsX3J1bGVzKClcXG4gXFx0Y2hlY2tfaW52ZXJ0PTFcXG4gXFx0dmFsaWRhdGVfY2hlY2tzdW09dHJ1ZVxcbiBcXHRsb2NhbCBpPVxcXCIkMVxcXCJcXG4tXFx0bG9jYWwgaXA9XFxcIiR7MjotNH1cXFwiXFxuLVxcdGxvY2FsIHRhYmxlc1xcbitcXHRsb2NhbCBpcD1cXFwiJHsyOi19XFxcIlxcbiBcXG4tXFx0dGFibGVzPVxcXCIke2lwdGFibGVzfVxcXCJcXG4tXFx0aWYgWyAkaXAgLWVxIDYgXTsgdGhlblxcbi1cXHRcXHR0YWJsZXM9XFxcIiR7aXA2dGFibGVzfVxcXCJcXG4rXFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXFxcIiRuczJcXFwiIG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxcXFxuK1xcdFxcdGlwXFxcIiRpcFxcXCIgbWFuZ2xlIE9VVFBVVCBvaWZuYW1lIG5zMmV0aCRpIFxcXFxcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHRjcCBcXFxcXFxuK1xcdFxcdG1ldGEgbGVuZ3RoIDE1MC05OTk5IG51bWdlbiBpbmMgbW9kIDk5OTk5IDEgXFxcXFxcbitcXHRcXHRtZXRhIG1hcmsgc2V0IDQyIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcXG4rXFx0aWYgWyAteiBcXFwiJG5mdF9oYW5kbGVcXFwiIF07IHRoZW5cXG4rXFx0XFx0cmV0dXJuICR7S1NGVF9TS0lQfVxcbiBcXHRmaVxcbiBcXG4tXFx0aXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgXFxcXFxcbi1cXHRcXHQtdCBtYW5nbGUgXFxcXFxcbi1cXHRcXHQtQSBPVVRQVVQgXFxcXFxcbi1cXHRcXHQtbyBuczJldGgkaSBcXFxcXFxuLVxcdFxcdC1wIHRjcCBcXFxcXFxuLVxcdFxcdC1tIGxlbmd0aCAtLWxlbmd0aCAxNTA6OTk5OSBcXFxcXFxuLVxcdFxcdC1tIHN0YXRpc3RpYyAtLW1vZGUgbnRoIC0tcGFja2V0IDEgLS1ldmVyeSA5OTk5OSBcXFxcXFxuLVxcdFxcdC1qIE1BUksgLS1zZXQtbWFyayA0MiB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9XFxuLVxcbiBcXHR0YyAtbiAkbnMyIHFkaXNjIGFkZCBkZXYgbnMyZXRoJGkgY2xzYWN0IHx8IHJldHVybiAke0tTRlRfU0tJUH1cXG4gXFx0dGMgLW4gJG5zMiBmaWx0ZXIgYWRkIGRldiBuczJldGgkaSBlZ3Jlc3MgXFxcXFxcbiBcXHRcXHRwcm90b2NvbCBpcCBwcmlvIDEwMDAgXFxcXFxcbkBAIC01MTUsMTEgKzQ3OCwxMCBAQCByZXNldF93aXRoX3RjcF9maWx0ZXIoKVxcbiBcXHRsb2NhbCB0YXJnZXQ9XFxcIiR7M31cXFwiXFxuIFxcdGxvY2FsIGNoYWluPVxcXCIkezQ6LUlOUFVUfVxcXCJcXG4gXFxuLVxcdGlmICEgaXAgbmV0bnMgZXhlYyBcXFwiJHtuc31cXFwiICR7aXB0YWJsZXN9IFxcXFxcXG4tXFx0XFx0XFx0LUEgXFxcIiR7Y2hhaW59XFxcIiBcXFxcXFxuLVxcdFxcdFxcdC1zIFxcXCIke3NyY31cXFwiIFxcXFxcXG4tXFx0XFx0XFx0LXAgdGNwIFxcXFxcXG4tXFx0XFx0XFx0LWogXFxcIiR7dGFyZ2V0fVxcXCI7IHRoZW5cXG4rXFx0bmZ0X2hhbmRsZT0kKGlwIG5ldG5zIGV4ZWMgXFxcIiRuc1xcXCIgbmZ0IC1lIC0taGFuZGxlIGFkZCBydWxlIFxcXFxcXG4rXFx0XFx0aXAgZmlsdGVyIFxcXCIke2NoYWlufVxcXCIgaXAgc2FkZHIgXFxcInsgJHtzcmN9IH1cXFwiIFxcXFxcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHRjcCBcXFwiJHt0YXJnZXQsLH1cXFwiIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcXG4rXFx0aWYgWyAteiBcXFwiJG5mdF9oYW5kbGVcXFwiIF07IHRoZW5cXG4gXFx0XFx0bWFya19hc19za2lwcGVkIFxcXCJ1bmFibGUgdG8gc2V0IHRoZSBmaWx0ZXIgcnVsZXNcXFwiXFxuIFxcdFxcdHJldHVybiAxXFxuIFxcdGZpXFxuQEAgLTQzMTUsMTAgKzQyNzcsMTIgQEAgdXNlcnNwYWNlX3Rlc3RzKClcXG4gXFxuIFxcdFxcdCMgZm9yY2UgcXVpY2sgbG9zc1xcbiBcXHRcXHRpcCBuZXRucyBleGVjICRuczIgc3lzY3RsIC1xIG5ldC5pcHY0LnRjcF9zeW5fcmV0cmllcz0xXFxuLVxcdFxcdGlmIGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMxfVxcXCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLXMgXFxcIjEwLjAuMS4yXFxcIiBcXFxcXFxuLVxcdFxcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0IFxcdTAwMjZcXHUwMDI2XFxuLVxcdFxcdCAgIGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgXFxcIjEwLjAuMS4yXFxcIiBcXFxcXFxuLVxcdFxcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0OyB0aGVuXFxuK1xcdFxcdGlmIGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMxfVxcXCIgbmZ0IGFkZCBydWxlIGlwIGZpbHRlciBJTlBVVCBcXFxcXFxuK1xcdFxcdFxcdGlwIHNhZGRyIFxcXCIxMC4wLjEuMlxcXCIgbWV0YSBsNHByb3RvIHRjcCBcXFxcXFxuK1xcdFxcdFxcdHRjcCBvcHRpb24gbXB0Y3AgZXhpc3RzIHJlamVjdCB3aXRoIHRjcCByZXNldCBcXHUwMDI2XFx1MDAyNlxcbitcXHRcXHQgICBpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiIG5mdCBhZGQgcnVsZSBpcCBmaWx0ZXIgSU5QVVQgXFxcXFxcbitcXHRcXHRcXHRpcCBkYWRkciBcXFwiMTAuMC4xLjJcXFwiIG1ldGEgbDRwcm90byB0Y3AgXFxcXFxcbitcXHRcXHRcXHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQ7IHRoZW5cXG4gXFx0XFx0XFx0d2FpdF9ldmVudCBuczIgTVBUQ1BfTElCX0VWRU5UX1NVQl9DTE9TRUQgMVxcbiBcXHRcXHRcXHR3YWl0X2V2ZW50IG5zMSBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxXFxuIFxcdFxcdFxcdGNoa19zdWJmbG93c190b3RhbCAxIDFcXG5AQCAtNDM5Myw3ICs0MzU3LDcgQEAgZW5kcG9pbnRfdGVzdHMoKVxcbiBcXHRcXHRjaGtfc3ViZmxvd19uciBcXFwiYWZ0ZXIgbmV3IHJlamVjdFxcXCIgMlxcbiBcXHRcXHRjaGtfbXB0Y3BfaW5mbyBzdWJmbG93cyAxIHN1YmZsb3dzIDFcXG4gXFxuLVxcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgJHtpcHRhYmxlc30gLUQgT1VUUFVUIC1zIFxcXCIxMC4wLjMuMlxcXCIgLXAgdGNwIC1qIFJFSkVDVFxcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiIG5mdCBkZWxldGUgcnVsZSBpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcXFwiJG5mdF9oYW5kbGVcXFwiXFxuIFxcdFxcdHBtX25sX2RlbF9lbmRwb2ludCAkbnMyIDMgMTAuMC4zLjJcXG4gXFx0XFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93XFxuIFxcdFxcdHdhaXRfbXBqIDNcXG5AQCAtNDQwMiwxMiArNDM2NiwxMCBAQCBlbmRwb2ludF90ZXN0cygpXFxuIFxcbiBcXHRcXHQjIFRvIG1ha2Ugc3VyZSBSTV9BRERSIGFyZSBzZW50IG92ZXIgYSBkaWZmZXJlbnQgc3ViZmxvdywgYnV0XFxuIFxcdFxcdCMgYWxsb3cgdGhlIHJlc3QgdG8gcXVpY2tseSBhbmQgY2xlYW5seSBjbG9zZSB0aGUgc3ViZmxvd1xcbi1cXHRcXHRsb2NhbCBpcHQ9MVxcbi1cXHRcXHRpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyBcXFwiMTAuMC4xLjJcXFwiIFxcXFxcXG4tXFx0XFx0XFx0LXAgdGNwIC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcXFxcbi1cXHRcXHRcXHQtbSBicGYgLS1ieXRlY29kZSBcXFxcXFxuLVxcdFxcdFxcdFxcXCIkQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUlxcXCIgXFxcXFxcbi1cXHRcXHRcXHQtaiBEUk9QIHx8IGlwdD0wXFxuK1xcdFxcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFxcXCIke25zMn1cXFwiIG5mdCAtZSAtLWhhbmRsZSBpbnNlcnQgcnVsZSBcXFxcXFxuK1xcdFxcdFxcdGlwIGZpbHRlciBPVVRQVVQgaXAgc2FkZHIgMTAuMC4xLjIgbWV0YSBsNHByb3RvIHRjcCBcXFxcXFxuK1xcdFxcdFxcdHRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcXFxcXFxuK1xcdFxcdFxcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAne3ByaW50ICRORn0nKVxcbiBcXHRcXHRsb2NhbCBpXFxuIFxcdFxcdGZvciBpIGluICQoc2VxIDMpOyBkb1xcbiBcXHRcXHRcXHRwbV9ubF9kZWxfZW5kcG9pbnQgJG5zMiAxIDEwLjAuMS4yXFxuQEAgLTQ0MjAsNyArNDM4Miw4IEBAIGVuZHBvaW50X3Rlc3RzKClcXG4gXFx0XFx0XFx0Y2hrX3N1YmZsb3dfbnIgXFxcImFmdGVyIHJlLWFkZCBpZCAwICgkaSlcXFwiIDNcXG4gXFx0XFx0XFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMyBzdWJmbG93cyAzXFxuIFxcdFxcdGRvbmVcXG4tXFx0XFx0WyAke2lwdH0gPSAxIF0gXFx1MDAyNlxcdTAwMjYgaXAgbmV0bnMgZXhlYyBcXFwiJHtuczJ9XFxcIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxcbitcXHRcXHRbIC1uIFxcXCIke25mdF9oYW5kbGV9XFxcIiBdIFxcdTAwMjZcXHUwMDI2IGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgbmZ0IGRlbGV0ZSBydWxlIFxcXFxcXG4rXFx0XFx0XFx0aXAgZmlsdGVyIE9VVFBVVCBoYW5kbGUgXFxcIiR7bmZ0X2hhbmRsZX1cXFwiXFxuIFxcbiBcXHRcXHRtcHRjcF9saWJfa2lsbF9ncm91cF93YWl0ICR0ZXN0c19waWRcXG4gXFxuQEAgLTQ0ODIsMTggKzQ0NDUsMTcgQEAgZW5kcG9pbnRfdGVzdHMoKVxcbiBcXG4gXFx0XFx0IyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dFxcbiBcXHRcXHQjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3dcXG4tXFx0XFx0bG9jYWwgaXB0PTFcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJHtuczF9XFxcIiAke2lwdGFibGVzfSAtSSBPVVRQVVQgLXMgXFxcIjEwLjAuMS4xXFxcIiBcXFxcXFxuLVxcdFxcdFxcdC1wIHRjcCAtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXFxcXG4tXFx0XFx0XFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcXFxcbi1cXHRcXHRcXHRcXFwiJENCUEZfTVBUQ1BfU1VCT1BUSU9OX1JNX0FERFJcXFwiIFxcXFxcXG4tXFx0XFx0XFx0LWogRFJPUCB8fCBpcHQ9MFxcbitcXHRcXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcXFwiJHtuczF9XFxcIiBuZnQgLWUgLS1oYW5kbGUgaW5zZXJ0IHJ1bGUgXFxcXFxcbitcXHRcXHRcXHRpcCBmaWx0ZXIgT1VUUFVUIGlwIHNhZGRyIDEwLjAuMS4xIG1ldGEgbDRwcm90byB0Y3AgXFxcXFxcbitcXHRcXHRcXHR0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgcmVtb3ZlLWFkZHIgXFxcXFxcbitcXHRcXHRcXHRkcm9wIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcXG4gXFx0XFx0cG1fbmxfZGVsX2VuZHBvaW50ICRuczEgNDIgMTAuMC4xLjFcXG4gXFx0XFx0c2xlZXAgMC41XFxuIFxcdFxcdGNoa19zdWJmbG93X25yIFxcXCJhZnRlciBkZWxldGUgSUQgMFxcXCIgMlxcbiBcXHRcXHRjaGtfbXB0Y3BfaW5mbyBzdWJmbG93cyAyIHN1YmZsb3dzIDJcXG4gXFx0XFx0Y2hrX21wdGNwX2luZm8gYWRkX2FkZHJfc2lnbmFsIDIgYWRkX2FkZHJfYWNjZXB0ZWQgMlxcbi1cXHRcXHRbICR7aXB0fSA9IDEgXSBcXHUwMDI2XFx1MDAyNiBpcCBuZXRucyBleGVjIFxcXCIke25zMX1cXFwiICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAxXFxuK1xcdFxcdFsgLW4gXFxcIiR7bmZ0X2hhbmRsZX1cXFwiIF0gXFx1MDAyNlxcdTAwMjYgaXAgbmV0bnMgZXhlYyBcXFwiJHtuczF9XFxcIiBuZnQgZGVsZXRlIHJ1bGUgXFxcXFxcbitcXHRcXHRcXHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcXFwiJHtuZnRfaGFuZGxlfVxcXCJcXG4gXFxuIFxcdFxcdHBtX25sX2FkZF9lbmRwb2ludCAkbnMxIDEwLjAuMS4xIGlkIDQyIGZsYWdzIHNpZ25hbFxcbiBcXHRcXHR3YWl0X21waiA0XFxuQEAgLTQ1NTUsNyArNDUxNyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcXG4gXFx0XFx0cG1fbmxfZmx1c2hfZW5kcG9pbnQgJG5zMlxcbiBcXHRcXHRwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMxXFxuIFxcdFxcdHdhaXRfcm1fYWRkciAkbnMyIDBcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJHtuczJ9XFxcIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgXFxcIjEwLjAuMy4yXFxcIiAtcCB0Y3AgLWogUkVKRUNUXFxuK1xcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiR7bnMyfVxcXCIgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlIFxcXCIkbmZ0X2hhbmRsZVxcXCJcXG4gXFx0XFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczIgMTAuMC4zLjIgaWQgMyBmbGFncyBzdWJmbG93XFxuIFxcdFxcdHdhaXRfbXBqIDFcXG4gXFx0XFx0cG1fbmxfYWRkX2VuZHBvaW50ICRuczEgMTAuMC4zLjEgaWQgMiBmbGFncyBzaWduYWxcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2hcXG5pbmRleCA1ZWY2MDMzNzc1Yzg2Li5lYmE2OTAzMjMzY2NmIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2hcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoXFxuQEAgLTUyNCw3ICs1MjQsNyBAQCBtcHRjcF9saWJfY2hlY2tfdG9vbHMoKSB7XFxuIFxcdFxcdFxcdFxcdGV4aXQgJHtLU0ZUX1NLSVB9XFxuIFxcdFxcdFxcdGZpXFxuIFxcdFxcdFxcdDs7XFxuLVxcdFxcdFxcXCJpcHRhYmxlc1xcXCIqIHwgXFxcImlwNnRhYmxlc1xcXCIqKVxcbitcXHRcXHRcXFwiaXB0YWJsZXNcXFwiKiB8IFxcXCJpcDZ0YWJsZXNcXFwiKiB8IFxcXCJuZnRcXFwiKilcXG4gXFx0XFx0XFx0aWYgISBcXFwiJHt0b29sfVxcXCIgLVYgXFx1MDAyNlxcdTAwM2UgL2Rldi9udWxsOyB0aGVuXFxuIFxcdFxcdFxcdFxcdG1wdGNwX2xpYl9wcl9za2lwIFxcXCJDb3VsZCBub3QgcnVuIGFsbCB0ZXN0cyB3aXRob3V0ICR7dG9vbH1cXFwiXFxuIFxcdFxcdFxcdFxcdGV4aXQgJHtLU0ZUX1NLSVB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcXG5pbmRleCBlODUwYTg3NDI5YjYxLi5hMmMyMDQ4Mzk4NmRjIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2hcXG5AQCAtMTUsOCArMTUsNiBAQCBjaW49XFxcIlxcXCJcXG4gY291dD1cXFwiXFxcIlxcbiB0aW1lb3V0X3BvbGw9MzBcXG4gdGltZW91dF90ZXN0PSQoKHRpbWVvdXRfcG9sbCAqIDIgKyAxKSlcXG4taXB0YWJsZXM9XFxcImlwdGFibGVzXFxcIlxcbi1pcDZ0YWJsZXM9XFxcImlwNnRhYmxlc1xcXCJcXG4gXFxuIG5zMT1cXFwiXFxcIlxcbiBuczI9XFxcIlxcXCJcXG5AQCAtNTAsMTUgKzQ4LDI1IEBAIGFkZF9tYXJrX3J1bGVzKClcXG4gXFx0bG9jYWwgbT0kMlxcbiBcXG4gXFx0bG9jYWwgdFxcbi1cXHRmb3IgdCBpbiAke2lwdGFibGVzfSAke2lwNnRhYmxlc307IGRvXFxuK1xcdGZvciB0IGluIGlwIGlwNjsgZG9cXG4rXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zXFxcIiBuZnQgYWRkIHRhYmxlIFxcXCIkdFxcXCIgZmlsdGVyXFxuK1xcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuc1xcXCIgbmZ0IGFkZCBjaGFpbiBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHQneyB0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSAwOyBwb2xpY3kgYWNjZXB0OyB9J1xcbitcXG4gXFx0XFx0IyBqdXN0IHRvIGRlYnVnOiBjaGVjayB3ZSBoYXZlIG11bHRpcGxlIHN1YmZsb3dzIGNvbm5lY3Rpb24gcmVxdWVzdHNcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXN5biAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcXG4rXFx0XFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zXFxcIiBuZnQgYWRkIHJ1bGUgXFxcIiR0XFxcIiBmaWx0ZXIgT1VUUFVUIFxcXFxcXG4rXFx0XFx0XFx0dGNwIGZsYWdzIFxcXFxcXHUwMDI2IFxcXFwoZmluIFxcXFx8IHN5biBcXFxcfCByc3QgXFxcXHwgYWNrXFxcXCkgPT0gc3luIFxcXFxcXG4rXFx0XFx0XFx0bWV0YSBtYXJrIFxcXCIkbVxcXCIgYWNjZXB0XFxuIFxcbiBcXHRcXHQjIFJTVCBwYWNrZXRzIG1pZ2h0IGJlIGhhbmRsZWQgYnkgYSBpbnRlcm5hbCBkdW1teSBzb2NrZXRcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXRjcC1mbGFncyBSU1QgUlNUIC1tIG1hcmsgLS1tYXJrIDAgLWogQUNDRVBUXFxuK1xcdFxcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuc1xcXCIgbmZ0IGFkZCBydWxlIFxcXCIkdFxcXCIgZmlsdGVyIE9VVFBVVCBcXFxcXFxuK1xcdFxcdFxcdHRjcCBmbGFncyBcXFxcXFx1MDAyNiByc3QgPT0gcnN0IG1ldGEgbWFyayAweDAgYWNjZXB0XFxuK1xcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbnNcXFwiIG5mdCBhZGQgcnVsZSBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHRtZXRhIGw0cHJvdG8gdGNwIG1ldGEgbWFyayBcXFwiJG1cXFwiIGFjY2VwdFxcbitcXHRcXHRpcCBuZXRucyBleGVjIFxcXCIkbnNcXFwiIG5mdCBhZGQgcnVsZSBcXFwiJHRcXFwiIGZpbHRlciBPVVRQVVQgXFxcXFxcbitcXHRcXHRcXHRtZXRhIGw0cHJvdG8gdGNwIG1ldGEgbWFyayAwIGNvdW50ZXIgZHJvcFxcbiBcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcXG4tXFx0XFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAwIC1qIERST1BcXG4gXFx0ZG9uZVxcbiB9XFxuIFxcbkBAIC0xMDUsMzIgKzExMywyOSBAQCBjbGVhbnVwKClcXG4gXFxuIG1wdGNwX2xpYl9jaGVja19tcHRjcFxcbiBtcHRjcF9saWJfY2hlY2tfa2FsbHN5bXNcXG4tbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIFxcXCIke2lwdGFibGVzfVxcXCIgXFxcIiR7aXA2dGFibGVzfVxcXCJcXG4rbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIG5mdFxcbiBcXG4gY2hlY2tfbWFyaygpXFxuIHtcXG4gXFx0bG9jYWwgbnM9JDFcXG4gXFx0bG9jYWwgYWY9JDJcXG4gXFxuLVxcdGxvY2FsIHRhYmxlcz0ke2lwdGFibGVzfVxcbitcXHRsb2NhbCB0YWJsZXM9XFxcImlwXFxcIlxcbiBcXG4gXFx0aWYgWyAkYWYgLWVxIDYgXTt0aGVuXFxuLVxcdFxcdHRhYmxlcz0ke2lwNnRhYmxlc31cXG4rXFx0XFx0dGFibGVzPVxcXCJpcDZcXFwiXFxuIFxcdGZpXFxuIFxcbi1cXHRsb2NhbCBjb3VudGVycyB2YWx1ZXNcXG4tXFx0Y291bnRlcnM9JChpcCBuZXRucyBleGVjICRucyAkdGFibGVzIC12IC1MIE9VVFBVVCB8IGdyZXAgRFJPUClcXG4tXFx0dmFsdWVzPSR7Y291bnRlcnMlRFJPUCp9XFxuLVxcbi1cXHRsb2NhbCB2XFxuLVxcdGZvciB2IGluICR2YWx1ZXM7IGRvXFxuLVxcdFxcdGlmIFsgJHYgLW5lIDAgXTsgdGhlblxcbi1cXHRcXHRcXHRtcHRjcF9saWJfcHJfZmFpbCBcXFwiZ290ICR0YWJsZXMgJHZhbHVlcyBpbiBucyAkbnMsXFxcIiBcXFxcXFxuLVxcdFxcdFxcdFxcdFxcdCAgXFxcIm5vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZFxcXCJcXG4tXFx0XFx0XFx0cmV0PSR7S1NGVF9GQUlMfVxcbi1cXHRcXHRcXHRyZXR1cm4gMVxcbi1cXHRcXHRmaVxcbi1cXHRkb25lXFxuK1xcdGxvY2FsIHZhbHVlc1xcbitcXHR2YWx1ZXM9JChpcCBuZXRucyBleGVjIFxcXCIkbnNcXFwiIG5mdCBsaXN0IHRhYmxlIFxcXCIkdGFibGVzXFxcIiBmaWx0ZXIgfCBcXFxcXFxuK1xcdFxcdGdyZXAgLW8gXFxcInBhY2tldHMuKmRyb3BcXFwiIHwgYXdrICd7cHJpbnQgJDJ9JylcXG4rXFxuK1xcdGlmIFtbICEgXFxcIiR2YWx1ZXNcXFwiID1+IF5bMC05XSskIF1dIHx8IFsgXFxcIiR2YWx1ZXNcXFwiIC1uZSAwIF07IHRoZW5cXG4rXFx0XFx0bXB0Y3BfbGliX3ByX2ZhaWwgXFxcImdvdCAkdGFibGVzICR2YWx1ZXMgaW4gbnMgJG5zLFxcXCIgXFxcXFxcbitcXHRcXHRcXHRcXHQgIFxcXCJub3QgMCAtIG5vdCBhbGwgZXhwZWN0ZWQgcGFja2V0cyBtYXJrZWRcXFwiXFxuK1xcdFxcdHJldD0ke0tTRlRfRkFJTH1cXG4rXFx0XFx0cmV0dXJuIDFcXG4rXFx0ZmlcXG4gXFxuIFxcdHJldHVybiAwXFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDA6NTk6NTkuMTYwNjM2NDQ5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxMDA0OTQ1ODQzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWM0Y2NiZjcwYjUxNjVmMmYzM2QxNWQ4MjhkMzQ5Zjc4NWQ5YjgxZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDQgMDA6NTk6NTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2NvbmZpZ1xuaW5kZXggNTkwNTFlZTJhOTg2MC4uMGQwYTc0NGM0Y2E4OSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9jb25maWdcbkBAIC0zMCw2ICszMCw5IEBAIENPTkZJR19ORVRfU0NIX05FVEVNPW1cbiBDT05GSUdfTkZfVEFCTEVTPW1cbiBDT05GSUdfTkZfVEFCTEVTX0lORVQ9eVxuIENPTkZJR19ORlRfQ09NUEFUPW1cbitDT05GSUdfTkZUX05VTUdFTj15XG4rQ09ORklHX05GVF9SRUpFQ1Q9bVxuK0NPTkZJR19ORlRfUkVKRUNUX0lQVjQ9bVxuIENPTkZJR19ORlRfU09DS0VUPW1cbiBDT05GSUdfTkZUX1RQUk9YWT1tXG4gQ09ORklHX1NZTl9DT09LSUVTPXlcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfam9pbi5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXG5pbmRleCAxOGNlNzEzNmEyYjBlLi43YzU2NjgwY2M0MjIxIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2pvaW4uc2hcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9qb2luLnNoXG5AQCAtMjYsOCArMjYsNiBAQCBjYXBvdXQ9XCJcIlxuIGNhcHBpZD1cIlwiXG4gbnMxPVwiXCJcbiBuczI9XCJcIlxuLWlwdGFibGVzPVwiaXB0YWJsZXNcIlxuLWlwNnRhYmxlcz1cImlwNnRhYmxlc1wiXG4gdGltZW91dF9wb2xsPTMwXG4gdGltZW91dF90ZXN0PSQoKHRpbWVvdXRfcG9sbCAqIDIgKyAxKSlcbiBjYXB0dXJlPWZhbHNlXG5AQCAtNTAsNiArNDgsNyBAQCBkZWNsYXJlIC1BIGZhaWxlZF90ZXN0c1xuIE1QVENQX0xJQl9URVNUX0ZPUk1BVD1cIiUwM3UgJXNcXG5cIlxuIFRFU1RfTkFNRT1cIlwiXG4gbnJfYmxhbms9NlxuK25mdF9oYW5kbGU9XCJcIlxuIFxuICMgVGhlc2UgdmFyIGFyZSB1c2VkIG9ubHkgaW4gc29tZSB0ZXN0cywgbWFrZSBzdXJlIHRoZXkgYXJlIG5vdCBhbHJlYWR5IHNldFxuIHVuc2V0IEZBSUxJTkdfTElOS1NcbkBAIC05OSw0MiArOTgsNiBAQCB1bnNldCBhZGRfYWRkcl90eF9uclxuIHVuc2V0IGFkZF9hZGRyX2VjaG9fdHhfbnJcbiB1bnNldCBhZGRfYWRkcl9kcm9wX3R4X25yXG4gXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCJuZmJwZl9jb21waWxlICcoaXAgXHUwMDI2XHUwMDI2IChpcFs1NF0gXHUwMDI2IDB4ZjApID09IDB4MzApIHx8XG4tI1x0XHRcdFx0ICAoaXA2IFx1MDAyNlx1MDAyNiAoaXA2Wzc0XSBcdTAwMjYgMHhmMCkgPT0gMHgzMCknXCJcbi1DQlBGX01QVENQX1NVQk9QVElPTl9BRERfQUREUj1cIjE0LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgMCxcbi1cdFx0XHQgICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAgMjEgMCAzIDY0LFxuLVx0XHRcdCAgICAgICA0OCAwIDAgNTQsXG4tXHRcdFx0ICAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgIDIxIDYgNyA0OCxcbi1cdFx0XHQgICAgICAgNDggMCAwIDAsXG4tXHRcdFx0ICAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgIDIxIDAgNCA5Nixcbi1cdFx0XHQgICAgICAgNDggMCAwIDc0LFxuLVx0XHRcdCAgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgICAyMSAwIDEgNDgsXG4tXHRcdFx0ICAgICAgIDYgMCAwIDY1NTM1LFxuLVx0XHRcdCAgICAgICA2IDAgMCAwXCJcbi1cbi0jIElQdjQ6IFRDUCBoZHIgb2YgNDhCLCBhIGZpcnN0IHN1Ym9wdGlvbiBvZiAxMkIgKERBQ0s4KSwgdGhlIFJNX0FERFIgc3Vib3B0aW9uXG4tIyBnZW5lcmF0ZWQgdXNpbmcgXCJuZmJwZl9jb21waWxlICcoaXBbMzJdIFx1MDAyNiAweGYwKSA9PSAweGMwIFx1MDAyNlx1MDAyNiBpcFs1M10gPT0gMHgwYyBcdTAwMjZcdTAwMjZcbi0jXHRcdFx0XHQgIChpcFs2Nl0gXHUwMDI2IDB4ZjApID09IDB4NDAnXCJcbi1DQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSPVwiMTMsXG4tXHRcdFx0ICAgICAgNDggMCAwIDAsXG4tXHRcdFx0ICAgICAgODQgMCAwIDI0MCxcbi1cdFx0XHQgICAgICAyMSAwIDkgNjQsXG4tXHRcdFx0ICAgICAgNDggMCAwIDMyLFxuLVx0XHRcdCAgICAgIDg0IDAgMCAyNDAsXG4tXHRcdFx0ICAgICAgMjEgMCA2IDE5Mixcbi1cdFx0XHQgICAgICA0OCAwIDAgNTMsXG4tXHRcdFx0ICAgICAgMjEgMCA0IDEyLFxuLVx0XHRcdCAgICAgIDQ4IDAgMCA2Nixcbi1cdFx0XHQgICAgICA4NCAwIDAgMjQwLFxuLVx0XHRcdCAgICAgIDIxIDAgMSA2NCxcbi1cdFx0XHQgICAgICA2IDAgMCA2NTUzNSxcbi1cdFx0XHQgICAgICA2IDAgMCAwXCJcbi1cbiBpbml0X3BhcnRpYWwoKVxuIHtcbiBcdGNhcG91dD0kKG1rdGVtcClcbkBAIC0xNDcsNiArMTEwLDE4IEBAIGluaXRfcGFydGlhbCgpXG4gXHRcdGlmICRjaGVja3N1bTsgdGhlblxuIFx0XHRcdGlwIG5ldG5zIGV4ZWMgJG5ldG5zIHN5c2N0bCAtcSBuZXQubXB0Y3AuY2hlY2tzdW1fZW5hYmxlZD0xXG4gXHRcdGZpXG4rXG4rXHRcdGZvciB0IGluIGlwIGlwNjsgZG9cbitcdFx0XHRpcCBuZXRucyBleGVjIFwiJG5ldG5zXCIgbmZ0IGFkZCB0YWJsZSBcIiR0XCIgZmlsdGVyXG4rXHRcdFx0aXAgbmV0bnMgZXhlYyBcIiRuZXRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIGZpbHRlciBJTlBVVCBcXFxuK1x0XHRcdFx0J3sgdHlwZSBmaWx0ZXIgaG9vayBpbnB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7IH0nXG4rXHRcdFx0aXAgbmV0bnMgZXhlYyBcIiRuZXRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIGZpbHRlciBPVVRQVVQgXFxcbitcdFx0XHRcdCd7IHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDsgfSdcbitcbitcdFx0XHRpcCBuZXRucyBleGVjIFwiJG5ldG5zXCIgbmZ0IGFkZCB0YWJsZSBcIiR0XCIgbWFuZ2xlXG4rXHRcdFx0aXAgbmV0bnMgZXhlYyBcIiRuZXRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIG1hbmdsZSBPVVRQVVQgXFxcbitcdFx0XHRcdCd7IHR5cGUgcm91dGUgaG9vayBvdXRwdXQgcHJpb3JpdHkgbWFuZ2xlOyBwb2xpY3kgYWNjZXB0OyB9J1xuK1x0XHRkb25lXG4gXHRkb25lXG4gXG4gXHRjaGVja19pbnZlcnQ9MFxuQEAgLTE5Niw3ICsxNzEsNyBAQCBpbml0KCkge1xuIFxuIFx0bXB0Y3BfbGliX2NoZWNrX21wdGNwXG4gXHRtcHRjcF9saWJfY2hlY2tfa2FsbHN5bXNcbi1cdG1wdGNwX2xpYl9jaGVja190b29scyBpcCB0YyBzcyBcIiR7aXB0YWJsZXN9XCIgXCIke2lwNnRhYmxlc31cIlxuK1x0bXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIHRjIHNzIG5mdFxuIFxuIFx0c2luPSQobWt0ZW1wKVxuIFx0c291dD0kKG1rdGVtcClcbkBAIC0zODAsMjQgKzM1NSwxOCBAQCByZXNldF93aXRoX2Nvb2tpZXMoKVxuICMgJDE6IHRlc3QgbmFtZVxuIHJlc2V0X3dpdGhfYWRkX2FkZHJfdGltZW91dCgpXG4ge1xuLVx0bG9jYWwgaXA9XCIkezI6LTR9XCJcbi1cdGxvY2FsIHRhYmxlc1xuK1x0bG9jYWwgaXA9XCIkezI6LX1cIlxuIFxuIFx0cmVzZXQgXCIkezF9XCIgfHwgcmV0dXJuIDFcbiBcbi1cdHRhYmxlcz1cIiR7aXB0YWJsZXN9XCJcbi1cdGlmIFsgJGlwIC1lcSA2IF07IHRoZW5cbi1cdFx0dGFibGVzPVwiJHtpcDZ0YWJsZXN9XCJcbi1cdGZpXG4tXG4gXHQjIHNldCBhIG1heGltdW0sIHRvIGF2b2lkIHRvbyBsb25nIHRpbWVvdXQgd2l0aCBleHBvbmVudGlhbCBiYWNrb2ZmXG4gXHRpcCBuZXRucyBleGVjICRuczEgc3lzY3RsIC1xIG5ldC5tcHRjcC5hZGRfYWRkcl90aW1lb3V0PTFcbiBcbi1cdGlmICEgaXAgbmV0bnMgZXhlYyAkbnMyICR0YWJsZXMgLUEgT1VUUFVUIC1wIHRjcCBcXFxuLVx0XHRcdC1tIHRjcCAtLXRjcC1vcHRpb24gMzAgXFxcbi1cdFx0XHQtbSBicGYgLS1ieXRlY29kZSBcXFxuLVx0XHRcdFwiJENCUEZfTVBUQ1BfU1VCT1BUSU9OX0FERF9BRERSXCIgXFxcbi1cdFx0XHQtaiBEUk9QOyB0aGVuXG4rXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiRuczJcIiBuZnQgLWUgLS1oYW5kbGUgYWRkIHJ1bGUgXFxcbitcdFx0aXBcIiRpcFwiIGZpbHRlciBPVVRQVVQgbWV0YSBsNHByb3RvIHRjcCBcXFxuK1x0XHR0Y3Agb3B0aW9uIG1wdGNwIHN1YnR5cGUgYWRkLWFkZHIgXFxcbitcdFx0ZHJvcCB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXG4rXHRpZiBbIC16IFwiJG5mdF9oYW5kbGVcIiBdOyB0aGVuXG4gXHRcdG1hcmtfYXNfc2tpcHBlZCBcInVuYWJsZSB0byBzZXQgdGhlICdhZGQgYWRkcicgcnVsZVwiXG4gXHRcdHJldHVybiAxXG4gXHRmaVxuQEAgLTQ0OSwyMyArNDE4LDE3IEBAIHNldHVwX2ZhaWxfcnVsZXMoKVxuIFx0Y2hlY2tfaW52ZXJ0PTFcbiBcdHZhbGlkYXRlX2NoZWNrc3VtPXRydWVcbiBcdGxvY2FsIGk9XCIkMVwiXG4tXHRsb2NhbCBpcD1cIiR7MjotNH1cIlxuLVx0bG9jYWwgdGFibGVzXG4rXHRsb2NhbCBpcD1cIiR7MjotfVwiXG4gXG4tXHR0YWJsZXM9XCIke2lwdGFibGVzfVwiXG4tXHRpZiBbICRpcCAtZXEgNiBdOyB0aGVuXG4tXHRcdHRhYmxlcz1cIiR7aXA2dGFibGVzfVwiXG4rXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiRuczJcIiBuZnQgLWUgLS1oYW5kbGUgYWRkIHJ1bGUgXFxcbitcdFx0aXBcIiRpcFwiIG1hbmdsZSBPVVRQVVQgb2lmbmFtZSBuczJldGgkaSBcXFxuK1x0XHRtZXRhIGw0cHJvdG8gdGNwIFxcXG4rXHRcdG1ldGEgbGVuZ3RoIDE1MC05OTk5IG51bWdlbiBpbmMgbW9kIDk5OTk5IDEgXFxcbitcdFx0bWV0YSBtYXJrIHNldCA0MiB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXG4rXHRpZiBbIC16IFwiJG5mdF9oYW5kbGVcIiBdOyB0aGVuXG4rXHRcdHJldHVybiAke0tTRlRfU0tJUH1cbiBcdGZpXG4gXG4tXHRpcCBuZXRucyBleGVjICRuczIgJHRhYmxlcyBcXFxuLVx0XHQtdCBtYW5nbGUgXFxcbi1cdFx0LUEgT1VUUFVUIFxcXG4tXHRcdC1vIG5zMmV0aCRpIFxcXG4tXHRcdC1wIHRjcCBcXFxuLVx0XHQtbSBsZW5ndGggLS1sZW5ndGggMTUwOjk5OTkgXFxcbi1cdFx0LW0gc3RhdGlzdGljIC0tbW9kZSBudGggLS1wYWNrZXQgMSAtLWV2ZXJ5IDk5OTk5IFxcXG4tXHRcdC1qIE1BUksgLS1zZXQtbWFyayA0MiB8fCByZXR1cm4gJHtLU0ZUX1NLSVB9XG4tXG4gXHR0YyAtbiAkbnMyIHFkaXNjIGFkZCBkZXYgbnMyZXRoJGkgY2xzYWN0IHx8IHJldHVybiAke0tTRlRfU0tJUH1cbiBcdHRjIC1uICRuczIgZmlsdGVyIGFkZCBkZXYgbnMyZXRoJGkgZWdyZXNzIFxcXG4gXHRcdHByb3RvY29sIGlwIHByaW8gMTAwMCBcXFxuQEAgLTUxNSwxMSArNDc4LDEwIEBAIHJlc2V0X3dpdGhfdGNwX2ZpbHRlcigpXG4gXHRsb2NhbCB0YXJnZXQ9XCIkezN9XCJcbiBcdGxvY2FsIGNoYWluPVwiJHs0Oi1JTlBVVH1cIlxuIFxuLVx0aWYgISBpcCBuZXRucyBleGVjIFwiJHtuc31cIiAke2lwdGFibGVzfSBcXFxuLVx0XHRcdC1BIFwiJHtjaGFpbn1cIiBcXFxuLVx0XHRcdC1zIFwiJHtzcmN9XCIgXFxcbi1cdFx0XHQtcCB0Y3AgXFxcbi1cdFx0XHQtaiBcIiR7dGFyZ2V0fVwiOyB0aGVuXG4rXHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiRuc1wiIG5mdCAtZSAtLWhhbmRsZSBhZGQgcnVsZSBcXFxuK1x0XHRpcCBmaWx0ZXIgXCIke2NoYWlufVwiIGlwIHNhZGRyIFwieyAke3NyY30gfVwiIFxcXG4rXHRcdG1ldGEgbDRwcm90byB0Y3AgXCIke3RhcmdldCwsfVwiIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkTkZ9JylcbitcdGlmIFsgLXogXCIkbmZ0X2hhbmRsZVwiIF07IHRoZW5cbiBcdFx0bWFya19hc19za2lwcGVkIFwidW5hYmxlIHRvIHNldCB0aGUgZmlsdGVyIHJ1bGVzXCJcbiBcdFx0cmV0dXJuIDFcbiBcdGZpXG5AQCAtNDMxNSwxMCArNDI3NywxMiBAQCB1c2Vyc3BhY2VfdGVzdHMoKVxuIFxuIFx0XHQjIGZvcmNlIHF1aWNrIGxvc3NcbiBcdFx0aXAgbmV0bnMgZXhlYyAkbnMyIHN5c2N0bCAtcSBuZXQuaXB2NC50Y3Bfc3luX3JldHJpZXM9MVxuLVx0XHRpZiBpcCBuZXRucyBleGVjIFwiJHtuczF9XCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLXMgXCIxMC4wLjEuMlwiIFxcXG4tXHRcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0IFx1MDAyNlx1MDAyNlxuLVx0XHQgICBpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgJHtpcHRhYmxlc30gLUEgSU5QVVQgLWQgXCIxMC4wLjEuMlwiIFxcXG4tXHRcdCAgICAgIC1wIHRjcCAtLXRjcC1vcHRpb24gMzAgLWogUkVKRUNUIC0tcmVqZWN0LXdpdGggdGNwLXJlc2V0OyB0aGVuXG4rXHRcdGlmIGlwIG5ldG5zIGV4ZWMgXCIke25zMX1cIiBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFxcXG4rXHRcdFx0aXAgc2FkZHIgXCIxMC4wLjEuMlwiIG1ldGEgbDRwcm90byB0Y3AgXFxcbitcdFx0XHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQgXHUwMDI2XHUwMDI2XG4rXHRcdCAgIGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiBuZnQgYWRkIHJ1bGUgaXAgZmlsdGVyIElOUFVUIFxcXG4rXHRcdFx0aXAgZGFkZHIgXCIxMC4wLjEuMlwiIG1ldGEgbDRwcm90byB0Y3AgXFxcbitcdFx0XHR0Y3Agb3B0aW9uIG1wdGNwIGV4aXN0cyByZWplY3Qgd2l0aCB0Y3AgcmVzZXQ7IHRoZW5cbiBcdFx0XHR3YWl0X2V2ZW50IG5zMiBNUFRDUF9MSUJfRVZFTlRfU1VCX0NMT1NFRCAxXG4gXHRcdFx0d2FpdF9ldmVudCBuczEgTVBUQ1BfTElCX0VWRU5UX1NVQl9DTE9TRUQgMVxuIFx0XHRcdGNoa19zdWJmbG93c190b3RhbCAxIDFcbkBAIC00MzkzLDcgKzQzNTcsNyBAQCBlbmRwb2ludF90ZXN0cygpXG4gXHRcdGNoa19zdWJmbG93X25yIFwiYWZ0ZXIgbmV3IHJlamVjdFwiIDJcbiBcdFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMSBzdWJmbG93cyAxXG4gXG4tXHRcdGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgLXMgXCIxMC4wLjMuMlwiIC1wIHRjcCAtaiBSRUpFQ1RcbitcdFx0aXAgbmV0bnMgZXhlYyBcIiR7bnMyfVwiIG5mdCBkZWxldGUgcnVsZSBpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcIiRuZnRfaGFuZGxlXCJcbiBcdFx0cG1fbmxfZGVsX2VuZHBvaW50ICRuczIgMyAxMC4wLjMuMlxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3dcbiBcdFx0d2FpdF9tcGogM1xuQEAgLTQ0MDIsMTIgKzQzNjYsMTAgQEAgZW5kcG9pbnRfdGVzdHMoKVxuIFxuIFx0XHQjIFRvIG1ha2Ugc3VyZSBSTV9BRERSIGFyZSBzZW50IG92ZXIgYSBkaWZmZXJlbnQgc3ViZmxvdywgYnV0XG4gXHRcdCMgYWxsb3cgdGhlIHJlc3QgdG8gcXVpY2tseSBhbmQgY2xlYW5seSBjbG9zZSB0aGUgc3ViZmxvd1xuLVx0XHRsb2NhbCBpcHQ9MVxuLVx0XHRpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgJHtpcHRhYmxlc30gLUkgT1VUUFVUIC1zIFwiMTAuMC4xLjJcIiBcXFxuLVx0XHRcdC1wIHRjcCAtbSB0Y3AgLS10Y3Atb3B0aW9uIDMwIFxcXG4tXHRcdFx0LW0gYnBmIC0tYnl0ZWNvZGUgXFxcbi1cdFx0XHRcIiRDQlBGX01QVENQX1NVQk9QVElPTl9STV9BRERSXCIgXFxcbi1cdFx0XHQtaiBEUk9QIHx8IGlwdD0wXG4rXHRcdG5mdF9oYW5kbGU9JChpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgbmZ0IC1lIC0taGFuZGxlIGluc2VydCBydWxlIFxcXG4rXHRcdFx0aXAgZmlsdGVyIE9VVFBVVCBpcCBzYWRkciAxMC4wLjEuMiBtZXRhIGw0cHJvdG8gdGNwIFxcXG4rXHRcdFx0dGNwIG9wdGlvbiBtcHRjcCBzdWJ0eXBlIHJlbW92ZS1hZGRyIFxcXG4rXHRcdFx0ZHJvcCB8IGhlYWQgLW4xIHwgYXdrICd7cHJpbnQgJE5GfScpXG4gXHRcdGxvY2FsIGlcbiBcdFx0Zm9yIGkgaW4gJChzZXEgMyk7IGRvXG4gXHRcdFx0cG1fbmxfZGVsX2VuZHBvaW50ICRuczIgMSAxMC4wLjEuMlxuQEAgLTQ0MjAsNyArNDM4Miw4IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0XHRjaGtfc3ViZmxvd19uciBcImFmdGVyIHJlLWFkZCBpZCAwICgkaSlcIiAzXG4gXHRcdFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMyBzdWJmbG93cyAzXG4gXHRcdGRvbmVcbi1cdFx0WyAke2lwdH0gPSAxIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuK1x0XHRbIC1uIFwiJHtuZnRfaGFuZGxlfVwiIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMn1cIiBuZnQgZGVsZXRlIHJ1bGUgXFxcbitcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcIiR7bmZ0X2hhbmRsZX1cIlxuIFxuIFx0XHRtcHRjcF9saWJfa2lsbF9ncm91cF93YWl0ICR0ZXN0c19waWRcbiBcbkBAIC00NDgyLDE4ICs0NDQ1LDE3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcbiBcdFx0IyBUbyBtYWtlIHN1cmUgUk1fQUREUiBhcmUgc2VudCBvdmVyIGEgZGlmZmVyZW50IHN1YmZsb3csIGJ1dFxuIFx0XHQjIGFsbG93IHRoZSByZXN0IHRvIHF1aWNrbHkgYW5kIGNsZWFubHkgY2xvc2UgdGhlIHN1YmZsb3dcbi1cdFx0bG9jYWwgaXB0PTFcbi1cdFx0aXAgbmV0bnMgZXhlYyBcIiR7bnMxfVwiICR7aXB0YWJsZXN9IC1JIE9VVFBVVCAtcyBcIjEwLjAuMS4xXCIgXFxcbi1cdFx0XHQtcCB0Y3AgLW0gdGNwIC0tdGNwLW9wdGlvbiAzMCBcXFxuLVx0XHRcdC1tIGJwZiAtLWJ5dGVjb2RlIFxcXG4tXHRcdFx0XCIkQ0JQRl9NUFRDUF9TVUJPUFRJT05fUk1fQUREUlwiIFxcXG4tXHRcdFx0LWogRFJPUCB8fCBpcHQ9MFxuK1x0XHRuZnRfaGFuZGxlPSQoaXAgbmV0bnMgZXhlYyBcIiR7bnMxfVwiIG5mdCAtZSAtLWhhbmRsZSBpbnNlcnQgcnVsZSBcXFxuK1x0XHRcdGlwIGZpbHRlciBPVVRQVVQgaXAgc2FkZHIgMTAuMC4xLjEgbWV0YSBsNHByb3RvIHRjcCBcXFxuK1x0XHRcdHRjcCBvcHRpb24gbXB0Y3Agc3VidHlwZSByZW1vdmUtYWRkciBcXFxuK1x0XHRcdGRyb3AgfCBoZWFkIC1uMSB8IGF3ayAne3ByaW50ICRORn0nKVxuIFx0XHRwbV9ubF9kZWxfZW5kcG9pbnQgJG5zMSA0MiAxMC4wLjEuMVxuIFx0XHRzbGVlcCAwLjVcbiBcdFx0Y2hrX3N1YmZsb3dfbnIgXCJhZnRlciBkZWxldGUgSUQgMFwiIDJcbiBcdFx0Y2hrX21wdGNwX2luZm8gc3ViZmxvd3MgMiBzdWJmbG93cyAyXG4gXHRcdGNoa19tcHRjcF9pbmZvIGFkZF9hZGRyX3NpZ25hbCAyIGFkZF9hZGRyX2FjY2VwdGVkIDJcbi1cdFx0WyAke2lwdH0gPSAxIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMX1cIiAke2lwdGFibGVzfSAtRCBPVVRQVVQgMVxuK1x0XHRbIC1uIFwiJHtuZnRfaGFuZGxlfVwiIF0gXHUwMDI2XHUwMDI2IGlwIG5ldG5zIGV4ZWMgXCIke25zMX1cIiBuZnQgZGVsZXRlIHJ1bGUgXFxcbitcdFx0XHRpcCBmaWx0ZXIgT1VUUFVUIGhhbmRsZSBcIiR7bmZ0X2hhbmRsZX1cIlxuIFxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjEuMSBpZCA0MiBmbGFncyBzaWduYWxcbiBcdFx0d2FpdF9tcGogNFxuQEAgLTQ1NTUsNyArNDUxNyw3IEBAIGVuZHBvaW50X3Rlc3RzKClcbiBcdFx0cG1fbmxfZmx1c2hfZW5kcG9pbnQgJG5zMlxuIFx0XHRwbV9ubF9mbHVzaF9lbmRwb2ludCAkbnMxXG4gXHRcdHdhaXRfcm1fYWRkciAkbnMyIDBcbi1cdFx0aXAgbmV0bnMgZXhlYyBcIiR7bnMyfVwiICR7aXB0YWJsZXN9IC1EIE9VVFBVVCAtcyBcIjEwLjAuMy4yXCIgLXAgdGNwIC1qIFJFSkVDVFxuK1x0XHRpcCBuZXRucyBleGVjIFwiJHtuczJ9XCIgbmZ0IGRlbGV0ZSBydWxlIGlwIGZpbHRlciBPVVRQVVQgaGFuZGxlIFwiJG5mdF9oYW5kbGVcIlxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMiAxMC4wLjMuMiBpZCAzIGZsYWdzIHN1YmZsb3dcbiBcdFx0d2FpdF9tcGogMVxuIFx0XHRwbV9ubF9hZGRfZW5kcG9pbnQgJG5zMSAxMC4wLjMuMSBpZCAyIGZsYWdzIHNpZ25hbFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9saWIuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3BfbGliLnNoXG5pbmRleCA1ZWY2MDMzNzc1Yzg2Li5lYmE2OTAzMjMzY2NmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX2xpYi5zaFxuQEAgLTUyNCw3ICs1MjQsNyBAQCBtcHRjcF9saWJfY2hlY2tfdG9vbHMoKSB7XG4gXHRcdFx0XHRleGl0ICR7S1NGVF9TS0lQfVxuIFx0XHRcdGZpXG4gXHRcdFx0Oztcbi1cdFx0XCJpcHRhYmxlc1wiKiB8IFwiaXA2dGFibGVzXCIqKVxuK1x0XHRcImlwdGFibGVzXCIqIHwgXCJpcDZ0YWJsZXNcIiogfCBcIm5mdFwiKilcbiBcdFx0XHRpZiAhIFwiJHt0b29sfVwiIC1WIFx1MDAyNlx1MDAzZSAvZGV2L251bGw7IHRoZW5cbiBcdFx0XHRcdG1wdGNwX2xpYl9wcl9za2lwIFwiQ291bGQgbm90IHJ1biBhbGwgdGVzdHMgd2l0aG91dCAke3Rvb2x9XCJcbiBcdFx0XHRcdGV4aXQgJHtLU0ZUX1NLSVB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL21wdGNwX3NvY2tvcHQuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaFxuaW5kZXggZTg1MGE4NzQyOWI2MS4uYTJjMjA0ODM5ODZkYyAxMDA3NTVcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC9tcHRjcF9zb2Nrb3B0LnNoXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbXB0Y3AvbXB0Y3Bfc29ja29wdC5zaFxuQEAgLTE1LDggKzE1LDYgQEAgY2luPVwiXCJcbiBjb3V0PVwiXCJcbiB0aW1lb3V0X3BvbGw9MzBcbiB0aW1lb3V0X3Rlc3Q9JCgodGltZW91dF9wb2xsICogMiArIDEpKVxuLWlwdGFibGVzPVwiaXB0YWJsZXNcIlxuLWlwNnRhYmxlcz1cImlwNnRhYmxlc1wiXG4gXG4gbnMxPVwiXCJcbiBuczI9XCJcIlxuQEAgLTUwLDE1ICs0OCwyNSBAQCBhZGRfbWFya19ydWxlcygpXG4gXHRsb2NhbCBtPSQyXG4gXG4gXHRsb2NhbCB0XG4tXHRmb3IgdCBpbiAke2lwdGFibGVzfSAke2lwNnRhYmxlc307IGRvXG4rXHRmb3IgdCBpbiBpcCBpcDY7IGRvXG4rXHRcdGlwIG5ldG5zIGV4ZWMgXCIkbnNcIiBuZnQgYWRkIHRhYmxlIFwiJHRcIiBmaWx0ZXJcbitcdFx0aXAgbmV0bnMgZXhlYyBcIiRuc1wiIG5mdCBhZGQgY2hhaW4gXCIkdFwiIGZpbHRlciBPVVRQVVQgXFxcbitcdFx0XHQneyB0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSAwOyBwb2xpY3kgYWNjZXB0OyB9J1xuK1xuIFx0XHQjIGp1c3QgdG8gZGVidWc6IGNoZWNrIHdlIGhhdmUgbXVsdGlwbGUgc3ViZmxvd3MgY29ubmVjdGlvbiByZXF1ZXN0c1xuLVx0XHRpcCBuZXRucyBleGVjICRucyAkdCAtQSBPVVRQVVQgLXAgdGNwIC0tc3luIC1tIG1hcmsgLS1tYXJrICRtIC1qIEFDQ0VQVFxuK1x0XHRpcCBuZXRucyBleGVjIFwiJG5zXCIgbmZ0IGFkZCBydWxlIFwiJHRcIiBmaWx0ZXIgT1VUUFVUIFxcXG4rXHRcdFx0dGNwIGZsYWdzIFxcXHUwMDI2IFxcKGZpbiBcXHwgc3luIFxcfCByc3QgXFx8IGFja1xcKSA9PSBzeW4gXFxcbitcdFx0XHRtZXRhIG1hcmsgXCIkbVwiIGFjY2VwdFxuIFxuIFx0XHQjIFJTVCBwYWNrZXRzIG1pZ2h0IGJlIGhhbmRsZWQgYnkgYSBpbnRlcm5hbCBkdW1teSBzb2NrZXRcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtLXRjcC1mbGFncyBSU1QgUlNUIC1tIG1hcmsgLS1tYXJrIDAgLWogQUNDRVBUXG4rXHRcdGlwIG5ldG5zIGV4ZWMgXCIkbnNcIiBuZnQgYWRkIHJ1bGUgXCIkdFwiIGZpbHRlciBPVVRQVVQgXFxcbitcdFx0XHR0Y3AgZmxhZ3MgXFxcdTAwMjYgcnN0ID09IHJzdCBtZXRhIG1hcmsgMHgwIGFjY2VwdFxuK1xuK1x0XHRpcCBuZXRucyBleGVjIFwiJG5zXCIgbmZ0IGFkZCBydWxlIFwiJHRcIiBmaWx0ZXIgT1VUUFVUIFxcXG4rXHRcdFx0bWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgXCIkbVwiIGFjY2VwdFxuK1x0XHRpcCBuZXRucyBleGVjIFwiJG5zXCIgbmZ0IGFkZCBydWxlIFwiJHRcIiBmaWx0ZXIgT1VUUFVUIFxcXG4rXHRcdFx0bWV0YSBsNHByb3RvIHRjcCBtZXRhIG1hcmsgMCBjb3VudGVyIGRyb3BcbiBcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAkbSAtaiBBQ0NFUFRcbi1cdFx0aXAgbmV0bnMgZXhlYyAkbnMgJHQgLUEgT1VUUFVUIC1wIHRjcCAtbSBtYXJrIC0tbWFyayAwIC1qIERST1BcbiBcdGRvbmVcbiB9XG4gXG5AQCAtMTA1LDMyICsxMTMsMjkgQEAgY2xlYW51cCgpXG4gXG4gbXB0Y3BfbGliX2NoZWNrX21wdGNwXG4gbXB0Y3BfbGliX2NoZWNrX2thbGxzeW1zXG4tbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIFwiJHtpcHRhYmxlc31cIiBcIiR7aXA2dGFibGVzfVwiXG4rbXB0Y3BfbGliX2NoZWNrX3Rvb2xzIGlwIG5mdFxuIFxuIGNoZWNrX21hcmsoKVxuIHtcbiBcdGxvY2FsIG5zPSQxXG4gXHRsb2NhbCBhZj0kMlxuIFxuLVx0bG9jYWwgdGFibGVzPSR7aXB0YWJsZXN9XG4rXHRsb2NhbCB0YWJsZXM9XCJpcFwiXG4gXG4gXHRpZiBbICRhZiAtZXEgNiBdO3RoZW5cbi1cdFx0dGFibGVzPSR7aXA2dGFibGVzfVxuK1x0XHR0YWJsZXM9XCJpcDZcIlxuIFx0ZmlcbiBcbi1cdGxvY2FsIGNvdW50ZXJzIHZhbHVlc1xuLVx0Y291bnRlcnM9JChpcCBuZXRucyBleGVjICRucyAkdGFibGVzIC12IC1MIE9VVFBVVCB8IGdyZXAgRFJPUClcbi1cdHZhbHVlcz0ke2NvdW50ZXJzJURST1AqfVxuLVxuLVx0bG9jYWwgdlxuLVx0Zm9yIHYgaW4gJHZhbHVlczsgZG9cbi1cdFx0aWYgWyAkdiAtbmUgMCBdOyB0aGVuXG4tXHRcdFx0bXB0Y3BfbGliX3ByX2ZhaWwgXCJnb3QgJHRhYmxlcyAkdmFsdWVzIGluIG5zICRucyxcIiBcXFxuLVx0XHRcdFx0XHQgIFwibm90IDAgLSBub3QgYWxsIGV4cGVjdGVkIHBhY2tldHMgbWFya2VkXCJcbi1cdFx0XHRyZXQ9JHtLU0ZUX0ZBSUx9XG4tXHRcdFx0cmV0dXJuIDFcbi1cdFx0Zmlcbi1cdGRvbmVcbitcdGxvY2FsIHZhbHVlc1xuK1x0dmFsdWVzPSQoaXAgbmV0bnMgZXhlYyBcIiRuc1wiIG5mdCBsaXN0IHRhYmxlIFwiJHRhYmxlc1wiIGZpbHRlciB8IFxcXG4rXHRcdGdyZXAgLW8gXCJwYWNrZXRzLipkcm9wXCIgfCBhd2sgJ3twcmludCAkMn0nKVxuK1xuK1x0aWYgW1sgISBcIiR2YWx1ZXNcIiA9fiBeWzAtOV0rJCBdXSB8fCBbIFwiJHZhbHVlc1wiIC1uZSAwIF07IHRoZW5cbitcdFx0bXB0Y3BfbGliX3ByX2ZhaWwgXCJnb3QgJHRhYmxlcyAkdmFsdWVzIGluIG5zICRucyxcIiBcXFxuK1x0XHRcdFx0ICBcIm5vdCAwIC0gbm90IGFsbCBleHBlY3RlZCBwYWNrZXRzIG1hcmtlZFwiXG4rXHRcdHJldD0ke0tTRlRfRkFJTH1cbitcdFx0cmV0dXJuIDFcbitcdGZpXG4gXG4gXHRyZXR1cm4gMFxuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDAwOjU5OjU5LjE2MDYzODAyOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwMDQ5NDI2MTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgRWxpZ2liaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayBkb3duIHRoaXMgcGF0Y2ggYW5kIHRoZSBhc3NvY2lhdGVkIGRpZmYuIEZpcnN0LCBJIHNlZSB0aGUgY2hhbmdlcyBhcmUgYWxsIGNvbmZpbmVkIHRvIHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwL2AgZGlyZWN0b3J5LiBTcGVjaWZpY2FsbHksIHdlJ3JlIGxvb2tpbmcgYXQgbW9kaWZpY2F0aW9ucyB0byBgY29uZmlnYCwgYG1wdGNwX2pvaW4uc2hgLCBgbXB0Y3BfbGliLnNoYCwgYW5kIGBtcHRjcF9zb2Nrb3B0LnNoYC4gQWxsIHZlcnkgY2xlYXJseSB3aXRoaW4gdGhlIHJlYWxtIG9mIHNlbGYtdGVzdHMgYW5kIHJlbGF0ZWQgc2NyaXB0cy5cblxuTm93LCBsZXQncyBhcHBseSBTZWN0aW9uIDIgb2YgdGhlIGZ1enppbmcgZWxpZ2liaWxpdHkgcnVsZXMuIFRoZSBrZXkgcXVlc3Rpb24gaXMsIFwiRG9lcyB0aGlzIHRvdWNoIGFueSBjb2RlIHRoYXQgKnJlYWxseSogbWF0dGVycyBmb3IgZnV6emluZyB0aGUga2VybmVsP1wiIExvb2tpbmcgYXQgdGhlIGNyaXRlcmlhIGZvciByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAsIGl0J3MgcHJldHR5IGNsZWFyIHRoaXMgZmFsbHMgc3F1YXJlbHkgaW50byB0aGUgXCJ1c2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlXCIgY2F0ZWdvcnkuIFdlJ3JlIHRhbGtpbmcgYmFzaCBzY3JpcHRzIGFuZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgbm90aGluZyB0aGF0J3MgZ29pbmcgdG8gaW5mbHVlbmNlIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2Ugb3Iga2VybmVsIG1vZHVsZXMuIE5vIEMgY29kZSwgbm8gY29yZSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLCBub3RoaW5nLlxuXG5UaGVyZWZvcmUsIGdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIG1vZGlmaWNhdGlvbnMsIGl0J3MgYSBzdHJhaWdodGZvcndhcmQgZGV0ZXJtaW5hdGlvbjogYFdvcnRoRnV6emluZ2AgaXMgZGVmaW5pdGl2ZWx5IGBmYWxzZWAuIEJlY2F1c2Ugd2UgYXJlIGRlYWxpbmcgd2l0aCBzY3JpcHRzLCB0aGVyZSBpcyBubyBuZWVkIGZvciBgRm9jdXNTeW1ib2xzYCBvciBgRW5hYmxlQ29uZmlnc2AuIFRoZXNlIGFyZSBpcnJlbGV2YW50IGluIHRoaXMgY2FzZS5cblxuVGltZSB0byBleGVjdXRlIGBzZXQtcmVzdWx0c2Agd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGFyYW1ldGVycy5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk5MiwiT3V0cHV0VG9rZW5zIjo3OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwOSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDAxOjAwOjA5LjIxMDA2NjYxMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY1NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgb25seSBzZWxmdGVzdCBzY3JpcHRzIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZXMgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L21wdGNwLy4gTm8ga2VybmVsIEMgc291cmNlIGNvZGUgb3IgaGVhZGVycyBhZmZlY3RpbmcgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eC9tb2R1bGVzKSBhcmUgY2hhbmdlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG9ubHkgc2VsZnRlc3Qgc2NyaXB0cyBhbmQgdGVzdCBjb25maWd1cmF0aW9uIGZpbGVzIHVuZGVyIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9tcHRjcC8uIE5vIGtlcm5lbCBDIHNvdXJjZSBjb2RlIG9yIGhlYWRlcnMgYWZmZWN0aW5nIHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgvbW9kdWxlcykgYXJlIGNoYW5nZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMTowMDowOS4yMTAwOTY1NDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm2jnb[1] Phase: Running StartedAt: 2026-09-04 01:00:19 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm2jnb[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-04 01:00:19 +0000 UTC FinishedAt: 2026-09-04 01:00:24 +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,}