Name: series-workflowzjv4j Phase: Failed StartedAt: 2026-08-03 21:24:13 +0000 UTC FinishedAt: 2026-08-03 21:26:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzjv4j[0] Phase: Succeeded StartedAt: 2026-08-03 21:24:13 +0000 UTC FinishedAt: 2026-08-03 21:26:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzjv4j[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 21:24:13 +0000 UTC FinishedAt: 2026-08-03 21:26:23 +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+CgkJCTx0ZD4yMDI2LzA4LzAzIDIxOjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRyaXZpYWwgYm9vdC10aW1lIGNoZWNrIHRvIGRpc2FibGUgS2V4ZWMgSGFuZE92ZXIgKEtITykgaWYgdGhlIGtlcm5lbCBpcyBib290aW5nIGFzIGEga2R1bXAga2VybmVsLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1c2Vyc3BhY2UtcmVhY2hhYmxlIGxvZ2ljLCBzeXNjYWxscywgb3IgY29tcGxleCBzdGF0ZSBtYWNoaW5lcyB0aGF0IHdvdWxkIGJlbmVmaXQgZnJvbSBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGFuIF9faW5pdCBmdW5jdGlvbiBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIGVhcmx5IGJvb3QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDIxOjI1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOGJlODA2ZTAzODAyZTUzZGUwMzI5YzJhMTBlM2VjZDU5ZGY1OTVkN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMjE6MjU6NTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYyBiL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmNcbmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG5AQCAtMTIsNiAmIzQzOzEyLDcgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9jbGVhbnVwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9jbWEuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9jcmFzaF9kdW1wLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rbWVtbGVhay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY291bnRfemVyb3MuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2thc2FuLmhcdTAwM2VcbkBAIC0xNjM2LDYgJiM0MzsxNjM3LDkgQEAgdm9pZCBfX2luaXQga2hvX21lbW9yeV9pbml0KHZvaWQpXG4gXG4gXHRcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxuIFx0XHRcdGtob19pbi5mZHRfcGh5cyA9IDA7XG4mIzQzO1x0fSBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSkge1xuJiM0MztcdFx0a2hvX2VuYWJsZSA9IGZhbHNlO1xuJiM0MztcdFx0cHJfaW5mbyhcJiMzNDtkaXNhYmxlZCBpbiB0aGUga2R1bXAga2VybmVsXFxuXCYjMzQ7KTtcbiBcdH0gZWxzZSB7XG4gXHRcdGtob19yZXNlcnZlX3NjcmF0Y2goKTtcbiBcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4YmU4MDZlMDM4MDJlNTNkZTAzMjljMmExMGUzZWNkNTlkZjU5NWQ3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAyMToyNTo1MSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmMgYi9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jCmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYwpAQCAtMTIsNiAmIzQzOzEyLDcgQEAKIAogI2luY2x1ZGUgJmx0O2xpbnV4L2NsZWFudXAuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9jbWEuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvY3Jhc2hfZHVtcC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2ttZW1sZWFrLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvY291bnRfemVyb3MuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rYXNhbi5oJmd0OwpAQCAtMTYzNiw2ICYjNDM7MTYzNyw5IEBAIHZvaWQgX19pbml0IGtob19tZW1vcnlfaW5pdCh2b2lkKQogCiAJCWlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKQogCQkJa2hvX2luLmZkdF9waHlzID0gMDsKJiM0MzsJfSBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSkgewomIzQzOwkJa2hvX2VuYWJsZSA9IGZhbHNlOwomIzQzOwkJcHJfaW5mbygmIzM0O2Rpc2FibGVkIGluIHRoZSBrZHVtcCBrZXJuZWxcbiYjMzQ7KTsKIAl9IGVsc2UgewogCQlraG9fcmVzZXJ2ZV9zY3JhdGNoKCk7CiAJfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ3CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtleGVjIEhhbmRvdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBrZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jYC4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDogaXQmIzM5O3MgYWRkaW5nIGFuIGBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSlgIGNoZWNrIHdpdGhpbiBga2hvX21lbW9yeV9pbml0KClgLiBJZiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEga2R1bXAga2VybmVsLCBpdCBkaXNhYmxlcyBga2hvX2VuYWJsZWAgYW5kIHByaW50cyBhIG1lc3NhZ2UuIExldCYjMzk7cyBzZWUuLi4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGtob19tZW1vcnlfaW5pdGAgYWN0dWFsbHkgKmRvZXMqIGFuZCB3aGF0IGBpc19rZHVtcF9rZXJuZWwoKWAgaXMgYWJvdXQuCgpBbHJpZ2h0LCBgaXNfa2R1bXBfa2VybmVsYCBpcyBkZWZpbmVkIGluIGBsaW51eC9jcmFzaF9kdW1wLmhgLiBOb3csIHRoaXMgaXMgaW4gYGtleGVjX2hhbmRvdmVyLmNgLCBzbyB0aGUgc2NvcGUgaXMgZGVmaW5lZC4gSG1tbS4uLiBpcyB0aGlzIHdvcnRoIHNwZW5kaW5nIHRpbWUgZnV6emluZz8KClJlYWxseSwgYWxsIHRoaXMgcGF0Y2ggZG9lcyBpcyBkaXNhYmxlIGBraG9fZW5hYmxlYCBpZiBgaXNfa2R1bXBfa2VybmVsKClgIHJldHVybnMgdHJ1ZS4gVGhlIHF1ZXN0aW9uIGlzOiBpcyBga2hvX21lbW9yeV9pbml0YCBldmVuICpyZWFjaGFibGUqIGluIGEgbm9ybWFsIGJvb3Qgc2NlbmFyaW8/IEFoLCB5ZXMsIGl04oCZcyBtYXJrZWQgYXMgYF9faW5pdGAsIHNvIGl0JiMzOTtzIGNhbGxlZCBkdXJpbmcgYm9vdCBpbml0aWFsaXphdGlvbi4gU28sIGNhbiB3ZSBmdXp6IGBpc19rZHVtcF9rZXJuZWwoKWAgaXRzZWxmPyBUaGF0IHNlZW1zIGxpa2UgdGhlIG1haW4gcG90ZW50aWFsIHRhcmdldC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBwcmltYXJpbHkgZGV0ZXJtaW5lZCBieSBib290IHBhcmFtZXRlcnMgb3Iga2V4ZWMgc2V0dXAuIFNlZW1zIGxpa2UgdGhpcyBpcyBhICp2ZXJ5KiBzbWFsbCBpbml0aWFsaXphdGlvbiBjaGFuZ2UuIEkgbmVlZCB0byBjaGVjayBob3cgYW5kIHdoZW4gYGtob19tZW1vcnlfaW5pdGAgZ2V0cyBjYWxsZWQgZHVyaW5nIHRoZSBib290IHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMjE6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a2hvX21lbW9yeV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgva2V4ZWNfaGFuZG92ZXIuaD0zNz1pbnQga2hvX3JldHJpZXZlX3N1YnRyZWUoY29uc3QgY2hhciAqbmFtZSwgcGh5c19hZGRyX3QgKnBoeXMsIHNpemVfdCAqc2l6ZSk7XG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtMzgtXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmg6Mzk6dm9pZCBraG9fbWVtb3J5X2luaXQodm9pZCk7XG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtNDAtXG4tLVxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oPTEwNz1zdGF0aWMgaW5saW5lIGludCBraG9fcmV0cmlldmVfc3VidHJlZShjb25zdCBjaGFyICpuYW1lLCBwaHlzX2FkZHJfdCAqcGh5cyxcbi0tXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtMTEyLVxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oOjExMzpzdGF0aWMgaW5saW5lIHZvaWQga2hvX21lbW9yeV9pbml0KHZvaWQpIHsgfVxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTExNC1cbi0tXG5rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jPTE2MzE9ZnNfaW5pdGNhbGwoa2hvX2luaXQpO1xua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYy0xNjMyLVxua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYzoxNjMzOnZvaWQgX19pbml0IGtob19tZW1vcnlfaW5pdCh2b2lkKVxua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYy0xNjM0LXtcbi0tXG5tbS9tbV9pbml0LmM9MjY5OT12b2lkIF9faW5pdCBtbV9jb3JlX2luaXQodm9pZClcbi0tXG5tbS9tbV9pbml0LmMtMjcyMy1cdCAqL1xubW0vbW1faW5pdC5jOjI3MjQ6XHRraG9fbWVtb3J5X2luaXQoKTtcbm1tL21tX2luaXQuYy0yNzI1LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDIxOjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMjgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhIEJvb3QtVGltZSBJbml0aWFsaXphdGlvbiBDaGFuZ2UqKgoKT2theSwgc28gYGtob19tZW1vcnlfaW5pdGAgaXMgY2FsbGVkIHByZXR0eSBlYXJseSDigJMgcmlnaHQgYWZ0ZXIgdGhlIG1lbW9yeSBtYW5hZ2VyIGlzIGluaXRpYWxpemVkLCB3aGljaCBpcyBpdHNlbGYgZWFybHkgaW4gdGhlIGJvb3QgcHJvY2Vzcy4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY29uZGl0aW9uYWwgY2hlY2sgdXNpbmcgYGlzX2tkdW1wX2tlcm5lbCgpYCB0byBkaXNhYmxlIGBraG9fZW5hYmxlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIGV2ZW4gd29ydGggZnV6emluZz8gSXQmIzM5O3MgYSBzaW5nbGUsIGJvb3QtdGltZSBpbml0aWFsaXphdGlvbi4gSXQgYmFzaWNhbGx5IHNheXMsICYjMzQ7SWYgdGhpcyBpcyBhIGtkdW1wIGtlcm5lbCwgZG9uJiMzOTt0IGVuYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKS4mIzM0OwoKTXkgZmlyc3QgaW5zdGluY3QgaXMsIG5vLCBpdCYjMzk7cyBub3Qgd29ydGggdGhlIGVmZm9ydC4gRnV6emluZyB0aGlzICpkaXJlY3RseSogd291bGQgYW1vdW50IHRvIGJvb3RpbmcgYSBrZHVtcCBrZXJuZWwgcmVwZWF0ZWRseSBhbmQgb2JzZXJ2aW5nIGZvciBjcmFzaGVzLCB3aGljaCBpc24mIzM5O3QgU3l6a2FsbGVyJiMzOTtzIHR5cGljYWwgYXBwcm9hY2guIFN5emthbGxlciBwcmltYXJpbHkgdGVzdHMgc3lzY2FsbHMgYW5kIHVzZXItc3BhY2UgaW50ZXJhY3Rpb25zLCBub3QgYm9vdC10aW1lIG51YW5jZXMgbGlrZSBrZXhlYyBoYW5kb3ZlcnMgdGhyb3VnaCBpdHMgdHlwaWNhbCBtZWNoYW5pc21zLiBCdXQgd2FpdCwgSSByZWNhbGwgU3l6a2FsbGVyICpkb2VzKiB0ZXN0IGtleGVjIGl0c2VsZi4gSG93ZXZlciwgdGhpcyBpcyBldmVuICplYXJsaWVyKiB0aGFuIHRoZSBrZXhlYyBwcm9jZXNzLCBhbmQgdmVyeSBkaWZmZXJlbnQgdGhhbiB0aGUgdXN1YWwgc3lzY2FsbCBiYXNlZCBmdXp6ZXIgaW50ZXJhY3Rpb25zLgoKU28sIGlzIHRoZXJlIGFueSBzeXNjYWxsLXJlYWNoYWJsZSBjb2RlIG1vZGlmaWVkIGhlcmU/IE5vLCBpdCYjMzk7cyBqdXN0IGEgYm9vdC10aW1lIGNoZWNrLiBUaGlua2luZyBtb3JlIGFib3V0IGl0LCBJJiMzOTttIGxlYW5pbmcgdG93YXJkcyAmIzM0O3Byb2JhYmx5IG5vdCB3b3J0aCBpdC4mIzM0OyBJdCBzZWVtcyBsaWtlIGEgdHJpdmlhbCBjaGVjay4gR2l2ZW4gdGhhdCBpdCYjMzk7cyBhIHNpbXBsZSBib290LXRpbWUgY29uZGl0aW9uYWwsIGZ1enppbmcgdGhpcyBzZWVtcyByZWR1bmRhbnQuIEJ1dCBiZWZvcmUgSSBjb21wbGV0ZWx5IGRpc21pc3MgaXQsIGxldCYjMzk7cyB0YWtlIGEgcXVpY2sgbG9vayBhdCB3aGF0IGBraG9fbWVtb3J5X2luaXRgICphY3R1YWxseSogZG9lcy4gVW5kZXJzdGFuZGluZyB0aGUgaW5pdGlhbGl6YXRpb24gcm91dGluZSBpdHNlbGYgbWlnaHQgcHJvdmlkZSBhIGNsZWFyZXIgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE2MzA6XHR9XG4xNjMxOlx0ZnNfaW5pdGNhbGwoa2hvX2luaXQpO1xuMTYzMjpcdFxuMTYzMzpcdHZvaWQgX19pbml0IGtob19tZW1vcnlfaW5pdCh2b2lkKVxuMTYzNDpcdHtcbjE2MzU6XHRcdGlmIChraG9faW4uc2NyYXRjaF9waHlzKSB7XG4xNjM2Olx0XHRcdGtob19zY3JhdGNoID0gcGh5c190b192aXJ0KGtob19pbi5zY3JhdGNoX3BoeXMpO1xuMTYzNzpcdFxuMTYzODpcdFx0XHRpZiAoa2hvX21lbV9yZXRyaWV2ZShraG9fZ2V0X2ZkdCgpKSlcbjE2Mzk6XHRcdFx0XHRraG9faW4uZmR0X3BoeXMgPSAwO1xuMTY0MDpcdFx0fSBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSkge1xuMTY0MTpcdFx0XHRraG9fZW5hYmxlID0gZmFsc2U7XG4xNjQyOlx0XHRcdHByX2luZm8oXCYjMzQ7ZGlzYWJsZWQgaW4gdGhlIGtkdW1wIGtlcm5lbFxcblwmIzM0Oyk7XG4xNjQzOlx0XHR9IGVsc2Uge1xuMTY0NDpcdFx0XHRraG9fcmVzZXJ2ZV9zY3JhdGNoKCk7XG4xNjQ1Olx0XHR9XG4xNjQ2Olx0fVxuMTY0NzpcdFxuMTY0ODpcdHZvaWQgX19pbml0IGtob19wb3B1bGF0ZShwaHlzX2FkZHJfdCBmZHRfcGh5cywgdTY0IGZkdF9sZW4sXG4xNjQ5Olx0XHRcdFx0IHBoeXNfYWRkcl90IHNjcmF0Y2hfcGh5cywgdTY0IHNjcmF0Y2hfbGVuKVxuMTY1MDpcdHtcbjE2NTE6XHRcdHVuc2lnbmVkIGludCBzY3JhdGNoX2NudCA9IHNjcmF0Y2hfbGVuIC8gc2l6ZW9mKCpraG9fc2NyYXRjaCk7XG4xNjUyOlx0XHRzdHJ1Y3Qga2hvX3NjcmF0Y2ggKnNjcmF0Y2ggPSBOVUxMO1xuMTY1MzpcdFx0cGh5c19hZGRyX3QgbWVtX21hcF9waHlzO1xuMTY1NDpcdFx0dm9pZCAqZmR0ID0gTlVMTDtcbjE2NTU6XHRcdGJvb2wgcG9wdWxhdGVkID0gZmFsc2U7XG4xNjU2Olx0XHRpbnQgZXJyO1xuMTY1NzpcdFxuMTY1ODpcdFx0LyogVmFsaWRhdGUgdGhlIGlucHV0IEZEVCAqL1xuMTY1OTpcdFx0ZmR0ID0gZWFybHlfbWVtcmVtYXAoZmR0X3BoeXMsIGZkdF9sZW4pO1xuMTY2MDpcdFx0aWYgKCFmZHQpIHtcbjE2NjE6XHRcdFx0cHJfd2FybihcJiMzNDtzZXR1cDogZmFpbGVkIHRvIG1lbXJlbWFwIEZEVCAoMHglbGx4KVxcblwmIzM0OywgZmR0X3BoeXMpO1xuMTY2MjpcdFx0XHRnb3RvIHJlcG9ydDtcbjE2NjM6XHRcdH1cbjE2NjQ6XHRcdGVyciA9IGZkdF9jaGVja19oZWFkZXIoZmR0KTtcbjE2NjU6XHRcdGlmIChlcnIpIHtcbjE2NjY6XHRcdFx0cHJfd2FybihcJiMzNDtzZXR1cDogaGFuZG92ZXIgRkRUICgweCVsbHgpIGlzIGludmFsaWQ6ICVkXFxuXCYjMzQ7LFxuMTY2NzpcdFx0XHRcdGZkdF9waHlzLCBlcnIpO1xuMTY2ODpcdFx0XHRnb3RvIHVubWFwX2ZkdDtcbjE2Njk6XHRcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzY1CgkJCQkJCQlvdXRwdXQ6IDEwNQoJCQkJCQkJdGhvdWdodHM6IDU0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIHNpbXBsZSBjaGVjazogaWYgdGhlIGtlcm5lbCBpcyBhIGtkdW1wIGtlcm5lbCwgYSBmZWF0dXJlIGlzIGRpc2FibGVkIGF0IGJvb3QuIE5vIG5ldyBzeXNjYWxscywgbm8gY29tcGxleCBsb2dpYywgcHVyZWx5IGEgYm9vdC10aW1lIGRlY2lzaW9uLiBNeSBpbml0aWFsIGluc3RpbmN0IHdhcyB0byBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0IGZlbHQgbGlrZSBhIHRyaXZpYWwgY2hhbmdlLCBqdXN0IGEgYm9vbGVhbiBhc3NpZ25tZW50IGFuZCBhIGBwcl9pbmZvYCBjYWxsLiBJdCYjMzk7cyBub3QgZXhwb3NpbmcgbmV3IGF0dGFjayBzdXJmYWNlIGZyb20gdXNlciBzcGFjZS4KCkJ1dCB0aGVuIEkgaGFkIHRvIGdvIHRocm91Z2ggdGhlIGd1aWRlbGluZXMsIHNwZWNpZmljYWxseSBjaGVja2luZyBpZiB0aGUgcGF0Y2ggJiMzNDtmdW5jdGlvbmFsbHkgYWx0ZXJzIGV4ZWN1dGlvbiBmbG93LiYjMzQ7IFdlbGwsIHllcywgaXQgKmRvZXMqIGFsdGVyIHRoZSBmbG93IOKAkyBpdCBzZXRzIGBraG9fZW5hYmxlYCB0byBmYWxzZSwgc2tpcHBpbmcgYGtob19yZXNlcnZlX3NjcmF0Y2goKWAuIFRoYXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZXZlbiBpZiBpdCYjMzk7cyB2ZXJ5IHRhcmdldGVkLiBJdCBpcywgaG93ZXZlciwgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBiZWNhdXNlIHN5emthbGxlciBmdXp6ZXMga2V4ZWMsIHdoaWNoIGNhbiBsZWFkIHRvIGEga2R1bXAga2VybmVsLgoKVGhlIG5leHQgcXVlc3Rpb246IElzIGl0ICp3b3J0aCogZnV6emluZz8gRXZlbiB3aXRoIHRoZSBmdW5jdGlvbmFsIGNoYW5nZSwgaXQmIzM5O3MganVzdCBhIHNpbmdsZSBib29sZWFuIGFuZCBhIHByaW50LCBhIHZlcnkgY29uc3RyYWluZWQgY29kZSBwYXRoLiBPa2F5LCBidXQgaWYgSSBzYWlkIGl0ICp3YXMqIHdvcnRoIGZ1enppbmcsIHdoYXQgZm9jdXMgc3ltYm9scyB3b3VsZCBJIHN1Z2dlc3Q/IEkgdGhvdWdodCBvZiBga2hvX21lbW9yeV9pbml0YCwgYnV0IHRoYXQmIzM5O3MgYW4gYF9faW5pdGAgZnVuY3Rpb24sIGFuZCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZm9jdXMgb24gdGhvc2UuIFRoZSBzaW1wbGUgZmFjdCB0aGF0IGtkdW1wIGtlcm5lbHMgYXJlIHNvIGhlYXZpbHkgY29uc3RyYWluZWQgYWxzbyBjb21lcyBpbnRvIHBsYXkuCgpTbywgdGFraW5nIGV2ZXJ5dGhpbmcgaW50byBhY2NvdW50LCBhbmQgY29uc2lkZXJpbmcgdGhlIGxpbWl0ZWQgaW1wYWN0LCBpdCYjMzk7cyBzdGlsbCBiZXN0IHRvIHNheSBgV29ydGhGdXp6aW5nPWZhbHNlYCBmb3IgdGhpcy4gVGhpcyBpc24mIzM5O3QgYSB2YWx1YWJsZSB0YXJnZXQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMjE6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSB0cml2aWFsIGJvb3QtdGltZSBjaGVjayB0byBkaXNhYmxlIEtleGVjIEhhbmRPdmVyIChLSE8pIGlmIHRoZSBrZXJuZWwgaXMgYm9vdGluZyBhcyBhIGtkdW1wIGtlcm5lbC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdXNlcnNwYWNlLXJlYWNoYWJsZSBsb2dpYywgc3lzY2FsbHMsIG9yIGNvbXBsZXggc3RhdGUgbWFjaGluZXMgdGhhdCB3b3VsZCBiZW5lZml0IGZyb20gZnV6emluZy4gRnVydGhlcm1vcmUsIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyBhbiBfX2luaXQgZnVuY3Rpb24gZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBlYXJseSBib290LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNTo1My4xNDkzMTUzMTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDU3OTI1ODUwMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDIxOjI1OjUzLjE0OTMyMzI4N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1NDI2ODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDhiZTgwNmUwMzgwMmU1M2RlMDMyOWMyYTEwZTNlY2Q1OWRmNTk1ZDdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMyAyMToyNTo1MSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jIGIva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY1xcbmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY1xcbisrKyBiL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmNcXG5AQCAtMTIsNiArMTIsNyBAQFxcbiBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2NsZWFudXAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2NtYS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgva21lbWxlYWsuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2NvdW50X3plcm9zLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rYXNhbi5oXFx1MDAzZVxcbkBAIC0xNjM2LDYgKzE2MzcsOSBAQCB2b2lkIF9faW5pdCBraG9fbWVtb3J5X2luaXQodm9pZClcXG4gXFxuIFxcdFxcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxcbiBcXHRcXHRcXHRraG9faW4uZmR0X3BoeXMgPSAwO1xcbitcXHR9IGVsc2UgaWYgKGlzX2tkdW1wX2tlcm5lbCgpKSB7XFxuK1xcdFxcdGtob19lbmFibGUgPSBmYWxzZTtcXG4rXFx0XFx0cHJfaW5mbyhcXFwiZGlzYWJsZWQgaW4gdGhlIGtkdW1wIGtlcm5lbFxcXFxuXFxcIik7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdGtob19yZXNlcnZlX3NjcmF0Y2goKTtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNTo1NC40MDQ1NzA3MjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMzMyMzk5NTM0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDhiZTgwNmUwMzgwMmU1M2RlMDMyOWMyYTEwZTNlY2Q1OWRmNTk1ZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDIxOjI1OjUxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYyBiL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmNcbmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG4rKysgYi9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG5AQCAtMTIsNiArMTIsNyBAQFxuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NsZWFudXAuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NtYS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva21lbWxlYWsuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NvdW50X3plcm9zLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rYXNhbi5oXHUwMDNlXG5AQCAtMTYzNiw2ICsxNjM3LDkgQEAgdm9pZCBfX2luaXQga2hvX21lbW9yeV9pbml0KHZvaWQpXG4gXG4gXHRcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxuIFx0XHRcdGtob19pbi5mZHRfcGh5cyA9IDA7XG4rXHR9IGVsc2UgaWYgKGlzX2tkdW1wX2tlcm5lbCgpKSB7XG4rXHRcdGtob19lbmFibGUgPSBmYWxzZTtcbitcdFx0cHJfaW5mbyhcImRpc2FibGVkIGluIHRoZSBrZHVtcCBrZXJuZWxcXG5cIik7XG4gXHR9IGVsc2Uge1xuIFx0XHRraG9fcmVzZXJ2ZV9zY3JhdGNoKCk7XG4gXHR9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNTo1NC40MDQ1NzIzNzdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDMxNTA0MTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtleGVjIEhhbmRvdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBga2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY2AuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g6IGl0J3MgYWRkaW5nIGFuIGBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSlgIGNoZWNrIHdpdGhpbiBga2hvX21lbW9yeV9pbml0KClgLiBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrZHVtcCBrZXJuZWwsIGl0IGRpc2FibGVzIGBraG9fZW5hYmxlYCBhbmQgcHJpbnRzIGEgbWVzc2FnZS4gTGV0J3Mgc2VlLi4uIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBraG9fbWVtb3J5X2luaXRgIGFjdHVhbGx5ICpkb2VzKiBhbmQgd2hhdCBgaXNfa2R1bXBfa2VybmVsKClgIGlzIGFib3V0LlxuXG5BbHJpZ2h0LCBgaXNfa2R1bXBfa2VybmVsYCBpcyBkZWZpbmVkIGluIGBsaW51eC9jcmFzaF9kdW1wLmhgLiBOb3csIHRoaXMgaXMgaW4gYGtleGVjX2hhbmRvdmVyLmNgLCBzbyB0aGUgc2NvcGUgaXMgZGVmaW5lZC4gSG1tbS4uLiBpcyB0aGlzIHdvcnRoIHNwZW5kaW5nIHRpbWUgZnV6emluZz9cblxuUmVhbGx5LCBhbGwgdGhpcyBwYXRjaCBkb2VzIGlzIGRpc2FibGUgYGtob19lbmFibGVgIGlmIGBpc19rZHVtcF9rZXJuZWwoKWAgcmV0dXJucyB0cnVlLiBUaGUgcXVlc3Rpb24gaXM6IGlzIGBraG9fbWVtb3J5X2luaXRgIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSBub3JtYWwgYm9vdCBzY2VuYXJpbz8gQWgsIHllcywgaXTigJlzIG1hcmtlZCBhcyBgX19pbml0YCwgc28gaXQncyBjYWxsZWQgZHVyaW5nIGJvb3QgaW5pdGlhbGl6YXRpb24uIFNvLCBjYW4gd2UgZnV6eiBgaXNfa2R1bXBfa2VybmVsKClgIGl0c2VsZj8gVGhhdCBzZWVtcyBsaWtlIHRoZSBtYWluIHBvdGVudGlhbCB0YXJnZXQuIEl0IGxvb2tzIGxpa2UgaXQncyBwcmltYXJpbHkgZGV0ZXJtaW5lZCBieSBib290IHBhcmFtZXRlcnMgb3Iga2V4ZWMgc2V0dXAuIFNlZW1zIGxpa2UgdGhpcyBpcyBhICp2ZXJ5KiBzbWFsbCBpbml0aWFsaXphdGlvbiBjaGFuZ2UuIEkgbmVlZCB0byBjaGVjayBob3cgYW5kIHdoZW4gYGtob19tZW1vcnlfaW5pdGAgZ2V0cyBjYWxsZWQgZHVyaW5nIHRoZSBib290IHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNDcsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNjowMC40MzYwODA5NzVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzODI4MzIzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJraG9fbWVtb3J5X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgva2V4ZWNfaGFuZG92ZXIuaD0zNz1pbnQga2hvX3JldHJpZXZlX3N1YnRyZWUoY29uc3QgY2hhciAqbmFtZSwgcGh5c19hZGRyX3QgKnBoeXMsIHNpemVfdCAqc2l6ZSk7XFxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTM4LVxcbmluY2x1ZGUvbGludXgva2V4ZWNfaGFuZG92ZXIuaDozOTp2b2lkIGtob19tZW1vcnlfaW5pdCh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtNDAtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmg9MTA3PXN0YXRpYyBpbmxpbmUgaW50IGtob19yZXRyaWV2ZV9zdWJ0cmVlKGNvbnN0IGNoYXIgKm5hbWUsIHBoeXNfYWRkcl90ICpwaHlzLFxcbi0tXFxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTExMi1cXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmg6MTEzOnN0YXRpYyBpbmxpbmUgdm9pZCBraG9fbWVtb3J5X2luaXQodm9pZCkgeyB9XFxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTExNC1cXG4tLVxcbmtlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmM9MTYzMT1mc19pbml0Y2FsbChraG9faW5pdCk7XFxua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYy0xNjMyLVxcbmtlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmM6MTYzMzp2b2lkIF9faW5pdCBraG9fbWVtb3J5X2luaXQodm9pZClcXG5rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jLTE2MzQte1xcbi0tXFxubW0vbW1faW5pdC5jPTI2OTk9dm9pZCBfX2luaXQgbW1fY29yZV9pbml0KHZvaWQpXFxuLS1cXG5tbS9tbV9pbml0LmMtMjcyMy1cXHQgKi9cXG5tbS9tbV9pbml0LmM6MjcyNDpcXHRraG9fbWVtb3J5X2luaXQoKTtcXG5tbS9tbV9pbml0LmMtMjcyNS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMjE6MjY6MDIuODc0MzY4NTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzM5MzgzOTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgYSBCb290LVRpbWUgSW5pdGlhbGl6YXRpb24gQ2hhbmdlKipcblxuT2theSwgc28gYGtob19tZW1vcnlfaW5pdGAgaXMgY2FsbGVkIHByZXR0eSBlYXJseSDigJMgcmlnaHQgYWZ0ZXIgdGhlIG1lbW9yeSBtYW5hZ2VyIGlzIGluaXRpYWxpemVkLCB3aGljaCBpcyBpdHNlbGYgZWFybHkgaW4gdGhlIGJvb3QgcHJvY2Vzcy4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY29uZGl0aW9uYWwgY2hlY2sgdXNpbmcgYGlzX2tkdW1wX2tlcm5lbCgpYCB0byBkaXNhYmxlIGBraG9fZW5hYmxlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIGV2ZW4gd29ydGggZnV6emluZz8gSXQncyBhIHNpbmdsZSwgYm9vdC10aW1lIGluaXRpYWxpemF0aW9uLiBJdCBiYXNpY2FsbHkgc2F5cywgXCJJZiB0aGlzIGlzIGEga2R1bXAga2VybmVsLCBkb24ndCBlbmFibGUgS2V4ZWMgSGFuZE92ZXIgKEtITykuXCJcblxuTXkgZmlyc3QgaW5zdGluY3QgaXMsIG5vLCBpdCdzIG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBGdXp6aW5nIHRoaXMgKmRpcmVjdGx5KiB3b3VsZCBhbW91bnQgdG8gYm9vdGluZyBhIGtkdW1wIGtlcm5lbCByZXBlYXRlZGx5IGFuZCBvYnNlcnZpbmcgZm9yIGNyYXNoZXMsIHdoaWNoIGlzbid0IFN5emthbGxlcidzIHR5cGljYWwgYXBwcm9hY2guIFN5emthbGxlciBwcmltYXJpbHkgdGVzdHMgc3lzY2FsbHMgYW5kIHVzZXItc3BhY2UgaW50ZXJhY3Rpb25zLCBub3QgYm9vdC10aW1lIG51YW5jZXMgbGlrZSBrZXhlYyBoYW5kb3ZlcnMgdGhyb3VnaCBpdHMgdHlwaWNhbCBtZWNoYW5pc21zLiBCdXQgd2FpdCwgSSByZWNhbGwgU3l6a2FsbGVyICpkb2VzKiB0ZXN0IGtleGVjIGl0c2VsZi4gSG93ZXZlciwgdGhpcyBpcyBldmVuICplYXJsaWVyKiB0aGFuIHRoZSBrZXhlYyBwcm9jZXNzLCBhbmQgdmVyeSBkaWZmZXJlbnQgdGhhbiB0aGUgdXN1YWwgc3lzY2FsbCBiYXNlZCBmdXp6ZXIgaW50ZXJhY3Rpb25zLlxuXG5TbywgaXMgdGhlcmUgYW55IHN5c2NhbGwtcmVhY2hhYmxlIGNvZGUgbW9kaWZpZWQgaGVyZT8gTm8sIGl0J3MganVzdCBhIGJvb3QtdGltZSBjaGVjay4gVGhpbmtpbmcgbW9yZSBhYm91dCBpdCwgSSdtIGxlYW5pbmcgdG93YXJkcyBcInByb2JhYmx5IG5vdCB3b3J0aCBpdC5cIiBJdCBzZWVtcyBsaWtlIGEgdHJpdmlhbCBjaGVjay4gR2l2ZW4gdGhhdCBpdCdzIGEgc2ltcGxlIGJvb3QtdGltZSBjb25kaXRpb25hbCwgZnV6emluZyB0aGlzIHNlZW1zIHJlZHVuZGFudC4gQnV0IGJlZm9yZSBJIGNvbXBsZXRlbHkgZGlzbWlzcyBpdCwgbGV0J3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgd2hhdCBga2hvX21lbW9yeV9pbml0YCAqYWN0dWFsbHkqIGRvZXMuIFVuZGVyc3RhbmRpbmcgdGhlIGluaXRpYWxpemF0aW9uIHJvdXRpbmUgaXRzZWxmIG1pZ2h0IHByb3ZpZGUgYSBjbGVhcmVyIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMjgsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMjE6MjY6MDkuMjEzNzU2NDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDMwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwia2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNjMwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNjMwOlxcdH1cXG4xNjMxOlxcdGZzX2luaXRjYWxsKGtob19pbml0KTtcXG4xNjMyOlxcdFxcbjE2MzM6XFx0dm9pZCBfX2luaXQga2hvX21lbW9yeV9pbml0KHZvaWQpXFxuMTYzNDpcXHR7XFxuMTYzNTpcXHRcXHRpZiAoa2hvX2luLnNjcmF0Y2hfcGh5cykge1xcbjE2MzY6XFx0XFx0XFx0a2hvX3NjcmF0Y2ggPSBwaHlzX3RvX3ZpcnQoa2hvX2luLnNjcmF0Y2hfcGh5cyk7XFxuMTYzNzpcXHRcXG4xNjM4OlxcdFxcdFxcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxcbjE2Mzk6XFx0XFx0XFx0XFx0a2hvX2luLmZkdF9waHlzID0gMDtcXG4xNjQwOlxcdFxcdH0gZWxzZSBpZiAoaXNfa2R1bXBfa2VybmVsKCkpIHtcXG4xNjQxOlxcdFxcdFxcdGtob19lbmFibGUgPSBmYWxzZTtcXG4xNjQyOlxcdFxcdFxcdHByX2luZm8oXFxcImRpc2FibGVkIGluIHRoZSBrZHVtcCBrZXJuZWxcXFxcblxcXCIpO1xcbjE2NDM6XFx0XFx0fSBlbHNlIHtcXG4xNjQ0OlxcdFxcdFxcdGtob19yZXNlcnZlX3NjcmF0Y2goKTtcXG4xNjQ1OlxcdFxcdH1cXG4xNjQ2OlxcdH1cXG4xNjQ3OlxcdFxcbjE2NDg6XFx0dm9pZCBfX2luaXQga2hvX3BvcHVsYXRlKHBoeXNfYWRkcl90IGZkdF9waHlzLCB1NjQgZmR0X2xlbixcXG4xNjQ5OlxcdFxcdFxcdFxcdCBwaHlzX2FkZHJfdCBzY3JhdGNoX3BoeXMsIHU2NCBzY3JhdGNoX2xlbilcXG4xNjUwOlxcdHtcXG4xNjUxOlxcdFxcdHVuc2lnbmVkIGludCBzY3JhdGNoX2NudCA9IHNjcmF0Y2hfbGVuIC8gc2l6ZW9mKCpraG9fc2NyYXRjaCk7XFxuMTY1MjpcXHRcXHRzdHJ1Y3Qga2hvX3NjcmF0Y2ggKnNjcmF0Y2ggPSBOVUxMO1xcbjE2NTM6XFx0XFx0cGh5c19hZGRyX3QgbWVtX21hcF9waHlzO1xcbjE2NTQ6XFx0XFx0dm9pZCAqZmR0ID0gTlVMTDtcXG4xNjU1OlxcdFxcdGJvb2wgcG9wdWxhdGVkID0gZmFsc2U7XFxuMTY1NjpcXHRcXHRpbnQgZXJyO1xcbjE2NTc6XFx0XFxuMTY1ODpcXHRcXHQvKiBWYWxpZGF0ZSB0aGUgaW5wdXQgRkRUICovXFxuMTY1OTpcXHRcXHRmZHQgPSBlYXJseV9tZW1yZW1hcChmZHRfcGh5cywgZmR0X2xlbik7XFxuMTY2MDpcXHRcXHRpZiAoIWZkdCkge1xcbjE2NjE6XFx0XFx0XFx0cHJfd2FybihcXFwic2V0dXA6IGZhaWxlZCB0byBtZW1yZW1hcCBGRFQgKDB4JWxseClcXFxcblxcXCIsIGZkdF9waHlzKTtcXG4xNjYyOlxcdFxcdFxcdGdvdG8gcmVwb3J0O1xcbjE2NjM6XFx0XFx0fVxcbjE2NjQ6XFx0XFx0ZXJyID0gZmR0X2NoZWNrX2hlYWRlcihmZHQpO1xcbjE2NjU6XFx0XFx0aWYgKGVycikge1xcbjE2NjY6XFx0XFx0XFx0cHJfd2FybihcXFwic2V0dXA6IGhhbmRvdmVyIEZEVCAoMHglbGx4KSBpcyBpbnZhbGlkOiAlZFxcXFxuXFxcIixcXG4xNjY3OlxcdFxcdFxcdFxcdGZkdF9waHlzLCBlcnIpO1xcbjE2Njg6XFx0XFx0XFx0Z290byB1bm1hcF9mZHQ7XFxuMTY2OTpcXHRcXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDIxOjI2OjA5LjIxNDAwMzI4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODUxNDUyMzk4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIHNpbXBsZSBjaGVjazogaWYgdGhlIGtlcm5lbCBpcyBhIGtkdW1wIGtlcm5lbCwgYSBmZWF0dXJlIGlzIGRpc2FibGVkIGF0IGJvb3QuIE5vIG5ldyBzeXNjYWxscywgbm8gY29tcGxleCBsb2dpYywgcHVyZWx5IGEgYm9vdC10aW1lIGRlY2lzaW9uLiBNeSBpbml0aWFsIGluc3RpbmN0IHdhcyB0byBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0IGZlbHQgbGlrZSBhIHRyaXZpYWwgY2hhbmdlLCBqdXN0IGEgYm9vbGVhbiBhc3NpZ25tZW50IGFuZCBhIGBwcl9pbmZvYCBjYWxsLiBJdCdzIG5vdCBleHBvc2luZyBuZXcgYXR0YWNrIHN1cmZhY2UgZnJvbSB1c2VyIHNwYWNlLlxuXG5CdXQgdGhlbiBJIGhhZCB0byBnbyB0aHJvdWdoIHRoZSBndWlkZWxpbmVzLCBzcGVjaWZpY2FsbHkgY2hlY2tpbmcgaWYgdGhlIHBhdGNoIFwiZnVuY3Rpb25hbGx5IGFsdGVycyBleGVjdXRpb24gZmxvdy5cIiBXZWxsLCB5ZXMsIGl0ICpkb2VzKiBhbHRlciB0aGUgZmxvdyDigJMgaXQgc2V0cyBga2hvX2VuYWJsZWAgdG8gZmFsc2UsIHNraXBwaW5nIGBraG9fcmVzZXJ2ZV9zY3JhdGNoKClgLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZXZlbiBpZiBpdCdzIHZlcnkgdGFyZ2V0ZWQuIEl0IGlzLCBob3dldmVyLCByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGJlY2F1c2Ugc3l6a2FsbGVyIGZ1enplcyBrZXhlYywgd2hpY2ggY2FuIGxlYWQgdG8gYSBrZHVtcCBrZXJuZWwuXG5cblRoZSBuZXh0IHF1ZXN0aW9uOiBJcyBpdCAqd29ydGgqIGZ1enppbmc/IEV2ZW4gd2l0aCB0aGUgZnVuY3Rpb25hbCBjaGFuZ2UsIGl0J3MganVzdCBhIHNpbmdsZSBib29sZWFuIGFuZCBhIHByaW50LCBhIHZlcnkgY29uc3RyYWluZWQgY29kZSBwYXRoLiBPa2F5LCBidXQgaWYgSSBzYWlkIGl0ICp3YXMqIHdvcnRoIGZ1enppbmcsIHdoYXQgZm9jdXMgc3ltYm9scyB3b3VsZCBJIHN1Z2dlc3Q/IEkgdGhvdWdodCBvZiBga2hvX21lbW9yeV9pbml0YCwgYnV0IHRoYXQncyBhbiBgX19pbml0YCBmdW5jdGlvbiwgYW5kIHN5emthbGxlciBkb2Vzbid0IGZvY3VzIG9uIHRob3NlLiBUaGUgc2ltcGxlIGZhY3QgdGhhdCBrZHVtcCBrZXJuZWxzIGFyZSBzbyBoZWF2aWx5IGNvbnN0cmFpbmVkIGFsc28gY29tZXMgaW50byBwbGF5LlxuXG5TbywgdGFraW5nIGV2ZXJ5dGhpbmcgaW50byBhY2NvdW50LCBhbmQgY29uc2lkZXJpbmcgdGhlIGxpbWl0ZWQgaW1wYWN0LCBpdCdzIHN0aWxsIGJlc3QgdG8gc2F5IGBXb3J0aEZ1enppbmc9ZmFsc2VgIGZvciB0aGlzLiBUaGlzIGlzbid0IGEgdmFsdWFibGUgdGFyZ2V0IGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MzY1LCJPdXRwdXRUb2tlbnMiOjEwNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU0NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDIxOjI2OjE3LjcyODUzMDk2MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM0MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRyaXZpYWwgYm9vdC10aW1lIGNoZWNrIHRvIGRpc2FibGUgS2V4ZWMgSGFuZE92ZXIgKEtITykgaWYgdGhlIGtlcm5lbCBpcyBib290aW5nIGFzIGEga2R1bXAga2VybmVsLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1c2Vyc3BhY2UtcmVhY2hhYmxlIGxvZ2ljLCBzeXNjYWxscywgb3IgY29tcGxleCBzdGF0ZSBtYWNoaW5lcyB0aGF0IHdvdWxkIGJlbmVmaXQgZnJvbSBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGFuIF9faW5pdCBmdW5jdGlvbiBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIGVhcmx5IGJvb3QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowzjv4j[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 21:24:13 +0000 UTC FinishedAt: 2026-08-03 21:26: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+CgkJCTx0ZD4yMDI2LzA4LzAzIDIxOjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRyaXZpYWwgYm9vdC10aW1lIGNoZWNrIHRvIGRpc2FibGUgS2V4ZWMgSGFuZE92ZXIgKEtITykgaWYgdGhlIGtlcm5lbCBpcyBib290aW5nIGFzIGEga2R1bXAga2VybmVsLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1c2Vyc3BhY2UtcmVhY2hhYmxlIGxvZ2ljLCBzeXNjYWxscywgb3IgY29tcGxleCBzdGF0ZSBtYWNoaW5lcyB0aGF0IHdvdWxkIGJlbmVmaXQgZnJvbSBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGFuIF9faW5pdCBmdW5jdGlvbiBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIGVhcmx5IGJvb3QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDIxOjI1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOGJlODA2ZTAzODAyZTUzZGUwMzI5YzJhMTBlM2VjZDU5ZGY1OTVkN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMjE6MjU6NTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYyBiL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmNcbmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG5AQCAtMTIsNiAmIzQzOzEyLDcgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9jbGVhbnVwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9jbWEuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9jcmFzaF9kdW1wLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rbWVtbGVhay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY291bnRfemVyb3MuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2thc2FuLmhcdTAwM2VcbkBAIC0xNjM2LDYgJiM0MzsxNjM3LDkgQEAgdm9pZCBfX2luaXQga2hvX21lbW9yeV9pbml0KHZvaWQpXG4gXG4gXHRcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxuIFx0XHRcdGtob19pbi5mZHRfcGh5cyA9IDA7XG4mIzQzO1x0fSBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSkge1xuJiM0MztcdFx0a2hvX2VuYWJsZSA9IGZhbHNlO1xuJiM0MztcdFx0cHJfaW5mbyhcJiMzNDtkaXNhYmxlZCBpbiB0aGUga2R1bXAga2VybmVsXFxuXCYjMzQ7KTtcbiBcdH0gZWxzZSB7XG4gXHRcdGtob19yZXNlcnZlX3NjcmF0Y2goKTtcbiBcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4YmU4MDZlMDM4MDJlNTNkZTAzMjljMmExMGUzZWNkNTlkZjU5NWQ3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAyMToyNTo1MSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmMgYi9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jCmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYwpAQCAtMTIsNiAmIzQzOzEyLDcgQEAKIAogI2luY2x1ZGUgJmx0O2xpbnV4L2NsZWFudXAuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9jbWEuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvY3Jhc2hfZHVtcC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2ttZW1sZWFrLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvY291bnRfemVyb3MuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rYXNhbi5oJmd0OwpAQCAtMTYzNiw2ICYjNDM7MTYzNyw5IEBAIHZvaWQgX19pbml0IGtob19tZW1vcnlfaW5pdCh2b2lkKQogCiAJCWlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKQogCQkJa2hvX2luLmZkdF9waHlzID0gMDsKJiM0MzsJfSBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSkgewomIzQzOwkJa2hvX2VuYWJsZSA9IGZhbHNlOwomIzQzOwkJcHJfaW5mbygmIzM0O2Rpc2FibGVkIGluIHRoZSBrZHVtcCBrZXJuZWxcbiYjMzQ7KTsKIAl9IGVsc2UgewogCQlraG9fcmVzZXJ2ZV9zY3JhdGNoKCk7CiAJfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ3CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtleGVjIEhhbmRvdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBrZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jYC4gU2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDogaXQmIzM5O3MgYWRkaW5nIGFuIGBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSlgIGNoZWNrIHdpdGhpbiBga2hvX21lbW9yeV9pbml0KClgLiBJZiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEga2R1bXAga2VybmVsLCBpdCBkaXNhYmxlcyBga2hvX2VuYWJsZWAgYW5kIHByaW50cyBhIG1lc3NhZ2UuIExldCYjMzk7cyBzZWUuLi4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGtob19tZW1vcnlfaW5pdGAgYWN0dWFsbHkgKmRvZXMqIGFuZCB3aGF0IGBpc19rZHVtcF9rZXJuZWwoKWAgaXMgYWJvdXQuCgpBbHJpZ2h0LCBgaXNfa2R1bXBfa2VybmVsYCBpcyBkZWZpbmVkIGluIGBsaW51eC9jcmFzaF9kdW1wLmhgLiBOb3csIHRoaXMgaXMgaW4gYGtleGVjX2hhbmRvdmVyLmNgLCBzbyB0aGUgc2NvcGUgaXMgZGVmaW5lZC4gSG1tbS4uLiBpcyB0aGlzIHdvcnRoIHNwZW5kaW5nIHRpbWUgZnV6emluZz8KClJlYWxseSwgYWxsIHRoaXMgcGF0Y2ggZG9lcyBpcyBkaXNhYmxlIGBraG9fZW5hYmxlYCBpZiBgaXNfa2R1bXBfa2VybmVsKClgIHJldHVybnMgdHJ1ZS4gVGhlIHF1ZXN0aW9uIGlzOiBpcyBga2hvX21lbW9yeV9pbml0YCBldmVuICpyZWFjaGFibGUqIGluIGEgbm9ybWFsIGJvb3Qgc2NlbmFyaW8/IEFoLCB5ZXMsIGl04oCZcyBtYXJrZWQgYXMgYF9faW5pdGAsIHNvIGl0JiMzOTtzIGNhbGxlZCBkdXJpbmcgYm9vdCBpbml0aWFsaXphdGlvbi4gU28sIGNhbiB3ZSBmdXp6IGBpc19rZHVtcF9rZXJuZWwoKWAgaXRzZWxmPyBUaGF0IHNlZW1zIGxpa2UgdGhlIG1haW4gcG90ZW50aWFsIHRhcmdldC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBwcmltYXJpbHkgZGV0ZXJtaW5lZCBieSBib290IHBhcmFtZXRlcnMgb3Iga2V4ZWMgc2V0dXAuIFNlZW1zIGxpa2UgdGhpcyBpcyBhICp2ZXJ5KiBzbWFsbCBpbml0aWFsaXphdGlvbiBjaGFuZ2UuIEkgbmVlZCB0byBjaGVjayBob3cgYW5kIHdoZW4gYGtob19tZW1vcnlfaW5pdGAgZ2V0cyBjYWxsZWQgZHVyaW5nIHRoZSBib290IHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMjE6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a2hvX21lbW9yeV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbGludXgva2V4ZWNfaGFuZG92ZXIuaD0zNz1pbnQga2hvX3JldHJpZXZlX3N1YnRyZWUoY29uc3QgY2hhciAqbmFtZSwgcGh5c19hZGRyX3QgKnBoeXMsIHNpemVfdCAqc2l6ZSk7XG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtMzgtXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmg6Mzk6dm9pZCBraG9fbWVtb3J5X2luaXQodm9pZCk7XG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtNDAtXG4tLVxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oPTEwNz1zdGF0aWMgaW5saW5lIGludCBraG9fcmV0cmlldmVfc3VidHJlZShjb25zdCBjaGFyICpuYW1lLCBwaHlzX2FkZHJfdCAqcGh5cyxcbi0tXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtMTEyLVxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oOjExMzpzdGF0aWMgaW5saW5lIHZvaWQga2hvX21lbW9yeV9pbml0KHZvaWQpIHsgfVxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTExNC1cbi0tXG5rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jPTE2MzE9ZnNfaW5pdGNhbGwoa2hvX2luaXQpO1xua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYy0xNjMyLVxua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYzoxNjMzOnZvaWQgX19pbml0IGtob19tZW1vcnlfaW5pdCh2b2lkKVxua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYy0xNjM0LXtcbi0tXG5tbS9tbV9pbml0LmM9MjY5OT12b2lkIF9faW5pdCBtbV9jb3JlX2luaXQodm9pZClcbi0tXG5tbS9tbV9pbml0LmMtMjcyMy1cdCAqL1xubW0vbW1faW5pdC5jOjI3MjQ6XHRraG9fbWVtb3J5X2luaXQoKTtcbm1tL21tX2luaXQuYy0yNzI1LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDIxOjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMjgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhIEJvb3QtVGltZSBJbml0aWFsaXphdGlvbiBDaGFuZ2UqKgoKT2theSwgc28gYGtob19tZW1vcnlfaW5pdGAgaXMgY2FsbGVkIHByZXR0eSBlYXJseSDigJMgcmlnaHQgYWZ0ZXIgdGhlIG1lbW9yeSBtYW5hZ2VyIGlzIGluaXRpYWxpemVkLCB3aGljaCBpcyBpdHNlbGYgZWFybHkgaW4gdGhlIGJvb3QgcHJvY2Vzcy4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY29uZGl0aW9uYWwgY2hlY2sgdXNpbmcgYGlzX2tkdW1wX2tlcm5lbCgpYCB0byBkaXNhYmxlIGBraG9fZW5hYmxlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIGV2ZW4gd29ydGggZnV6emluZz8gSXQmIzM5O3MgYSBzaW5nbGUsIGJvb3QtdGltZSBpbml0aWFsaXphdGlvbi4gSXQgYmFzaWNhbGx5IHNheXMsICYjMzQ7SWYgdGhpcyBpcyBhIGtkdW1wIGtlcm5lbCwgZG9uJiMzOTt0IGVuYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKS4mIzM0OwoKTXkgZmlyc3QgaW5zdGluY3QgaXMsIG5vLCBpdCYjMzk7cyBub3Qgd29ydGggdGhlIGVmZm9ydC4gRnV6emluZyB0aGlzICpkaXJlY3RseSogd291bGQgYW1vdW50IHRvIGJvb3RpbmcgYSBrZHVtcCBrZXJuZWwgcmVwZWF0ZWRseSBhbmQgb2JzZXJ2aW5nIGZvciBjcmFzaGVzLCB3aGljaCBpc24mIzM5O3QgU3l6a2FsbGVyJiMzOTtzIHR5cGljYWwgYXBwcm9hY2guIFN5emthbGxlciBwcmltYXJpbHkgdGVzdHMgc3lzY2FsbHMgYW5kIHVzZXItc3BhY2UgaW50ZXJhY3Rpb25zLCBub3QgYm9vdC10aW1lIG51YW5jZXMgbGlrZSBrZXhlYyBoYW5kb3ZlcnMgdGhyb3VnaCBpdHMgdHlwaWNhbCBtZWNoYW5pc21zLiBCdXQgd2FpdCwgSSByZWNhbGwgU3l6a2FsbGVyICpkb2VzKiB0ZXN0IGtleGVjIGl0c2VsZi4gSG93ZXZlciwgdGhpcyBpcyBldmVuICplYXJsaWVyKiB0aGFuIHRoZSBrZXhlYyBwcm9jZXNzLCBhbmQgdmVyeSBkaWZmZXJlbnQgdGhhbiB0aGUgdXN1YWwgc3lzY2FsbCBiYXNlZCBmdXp6ZXIgaW50ZXJhY3Rpb25zLgoKU28sIGlzIHRoZXJlIGFueSBzeXNjYWxsLXJlYWNoYWJsZSBjb2RlIG1vZGlmaWVkIGhlcmU/IE5vLCBpdCYjMzk7cyBqdXN0IGEgYm9vdC10aW1lIGNoZWNrLiBUaGlua2luZyBtb3JlIGFib3V0IGl0LCBJJiMzOTttIGxlYW5pbmcgdG93YXJkcyAmIzM0O3Byb2JhYmx5IG5vdCB3b3J0aCBpdC4mIzM0OyBJdCBzZWVtcyBsaWtlIGEgdHJpdmlhbCBjaGVjay4gR2l2ZW4gdGhhdCBpdCYjMzk7cyBhIHNpbXBsZSBib290LXRpbWUgY29uZGl0aW9uYWwsIGZ1enppbmcgdGhpcyBzZWVtcyByZWR1bmRhbnQuIEJ1dCBiZWZvcmUgSSBjb21wbGV0ZWx5IGRpc21pc3MgaXQsIGxldCYjMzk7cyB0YWtlIGEgcXVpY2sgbG9vayBhdCB3aGF0IGBraG9fbWVtb3J5X2luaXRgICphY3R1YWxseSogZG9lcy4gVW5kZXJzdGFuZGluZyB0aGUgaW5pdGlhbGl6YXRpb24gcm91dGluZSBpdHNlbGYgbWlnaHQgcHJvdmlkZSBhIGNsZWFyZXIgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE2MzA6XHR9XG4xNjMxOlx0ZnNfaW5pdGNhbGwoa2hvX2luaXQpO1xuMTYzMjpcdFxuMTYzMzpcdHZvaWQgX19pbml0IGtob19tZW1vcnlfaW5pdCh2b2lkKVxuMTYzNDpcdHtcbjE2MzU6XHRcdGlmIChraG9faW4uc2NyYXRjaF9waHlzKSB7XG4xNjM2Olx0XHRcdGtob19zY3JhdGNoID0gcGh5c190b192aXJ0KGtob19pbi5zY3JhdGNoX3BoeXMpO1xuMTYzNzpcdFxuMTYzODpcdFx0XHRpZiAoa2hvX21lbV9yZXRyaWV2ZShraG9fZ2V0X2ZkdCgpKSlcbjE2Mzk6XHRcdFx0XHRraG9faW4uZmR0X3BoeXMgPSAwO1xuMTY0MDpcdFx0fSBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSkge1xuMTY0MTpcdFx0XHRraG9fZW5hYmxlID0gZmFsc2U7XG4xNjQyOlx0XHRcdHByX2luZm8oXCYjMzQ7ZGlzYWJsZWQgaW4gdGhlIGtkdW1wIGtlcm5lbFxcblwmIzM0Oyk7XG4xNjQzOlx0XHR9IGVsc2Uge1xuMTY0NDpcdFx0XHRraG9fcmVzZXJ2ZV9zY3JhdGNoKCk7XG4xNjQ1Olx0XHR9XG4xNjQ2Olx0fVxuMTY0NzpcdFxuMTY0ODpcdHZvaWQgX19pbml0IGtob19wb3B1bGF0ZShwaHlzX2FkZHJfdCBmZHRfcGh5cywgdTY0IGZkdF9sZW4sXG4xNjQ5Olx0XHRcdFx0IHBoeXNfYWRkcl90IHNjcmF0Y2hfcGh5cywgdTY0IHNjcmF0Y2hfbGVuKVxuMTY1MDpcdHtcbjE2NTE6XHRcdHVuc2lnbmVkIGludCBzY3JhdGNoX2NudCA9IHNjcmF0Y2hfbGVuIC8gc2l6ZW9mKCpraG9fc2NyYXRjaCk7XG4xNjUyOlx0XHRzdHJ1Y3Qga2hvX3NjcmF0Y2ggKnNjcmF0Y2ggPSBOVUxMO1xuMTY1MzpcdFx0cGh5c19hZGRyX3QgbWVtX21hcF9waHlzO1xuMTY1NDpcdFx0dm9pZCAqZmR0ID0gTlVMTDtcbjE2NTU6XHRcdGJvb2wgcG9wdWxhdGVkID0gZmFsc2U7XG4xNjU2Olx0XHRpbnQgZXJyO1xuMTY1NzpcdFxuMTY1ODpcdFx0LyogVmFsaWRhdGUgdGhlIGlucHV0IEZEVCAqL1xuMTY1OTpcdFx0ZmR0ID0gZWFybHlfbWVtcmVtYXAoZmR0X3BoeXMsIGZkdF9sZW4pO1xuMTY2MDpcdFx0aWYgKCFmZHQpIHtcbjE2NjE6XHRcdFx0cHJfd2FybihcJiMzNDtzZXR1cDogZmFpbGVkIHRvIG1lbXJlbWFwIEZEVCAoMHglbGx4KVxcblwmIzM0OywgZmR0X3BoeXMpO1xuMTY2MjpcdFx0XHRnb3RvIHJlcG9ydDtcbjE2NjM6XHRcdH1cbjE2NjQ6XHRcdGVyciA9IGZkdF9jaGVja19oZWFkZXIoZmR0KTtcbjE2NjU6XHRcdGlmIChlcnIpIHtcbjE2NjY6XHRcdFx0cHJfd2FybihcJiMzNDtzZXR1cDogaGFuZG92ZXIgRkRUICgweCVsbHgpIGlzIGludmFsaWQ6ICVkXFxuXCYjMzQ7LFxuMTY2NzpcdFx0XHRcdGZkdF9waHlzLCBlcnIpO1xuMTY2ODpcdFx0XHRnb3RvIHVubWFwX2ZkdDtcbjE2Njk6XHRcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAyMToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzY1CgkJCQkJCQlvdXRwdXQ6IDEwNQoJCQkJCQkJdGhvdWdodHM6IDU0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIHNpbXBsZSBjaGVjazogaWYgdGhlIGtlcm5lbCBpcyBhIGtkdW1wIGtlcm5lbCwgYSBmZWF0dXJlIGlzIGRpc2FibGVkIGF0IGJvb3QuIE5vIG5ldyBzeXNjYWxscywgbm8gY29tcGxleCBsb2dpYywgcHVyZWx5IGEgYm9vdC10aW1lIGRlY2lzaW9uLiBNeSBpbml0aWFsIGluc3RpbmN0IHdhcyB0byBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0IGZlbHQgbGlrZSBhIHRyaXZpYWwgY2hhbmdlLCBqdXN0IGEgYm9vbGVhbiBhc3NpZ25tZW50IGFuZCBhIGBwcl9pbmZvYCBjYWxsLiBJdCYjMzk7cyBub3QgZXhwb3NpbmcgbmV3IGF0dGFjayBzdXJmYWNlIGZyb20gdXNlciBzcGFjZS4KCkJ1dCB0aGVuIEkgaGFkIHRvIGdvIHRocm91Z2ggdGhlIGd1aWRlbGluZXMsIHNwZWNpZmljYWxseSBjaGVja2luZyBpZiB0aGUgcGF0Y2ggJiMzNDtmdW5jdGlvbmFsbHkgYWx0ZXJzIGV4ZWN1dGlvbiBmbG93LiYjMzQ7IFdlbGwsIHllcywgaXQgKmRvZXMqIGFsdGVyIHRoZSBmbG93IOKAkyBpdCBzZXRzIGBraG9fZW5hYmxlYCB0byBmYWxzZSwgc2tpcHBpbmcgYGtob19yZXNlcnZlX3NjcmF0Y2goKWAuIFRoYXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZXZlbiBpZiBpdCYjMzk7cyB2ZXJ5IHRhcmdldGVkLiBJdCBpcywgaG93ZXZlciwgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBiZWNhdXNlIHN5emthbGxlciBmdXp6ZXMga2V4ZWMsIHdoaWNoIGNhbiBsZWFkIHRvIGEga2R1bXAga2VybmVsLgoKVGhlIG5leHQgcXVlc3Rpb246IElzIGl0ICp3b3J0aCogZnV6emluZz8gRXZlbiB3aXRoIHRoZSBmdW5jdGlvbmFsIGNoYW5nZSwgaXQmIzM5O3MganVzdCBhIHNpbmdsZSBib29sZWFuIGFuZCBhIHByaW50LCBhIHZlcnkgY29uc3RyYWluZWQgY29kZSBwYXRoLiBPa2F5LCBidXQgaWYgSSBzYWlkIGl0ICp3YXMqIHdvcnRoIGZ1enppbmcsIHdoYXQgZm9jdXMgc3ltYm9scyB3b3VsZCBJIHN1Z2dlc3Q/IEkgdGhvdWdodCBvZiBga2hvX21lbW9yeV9pbml0YCwgYnV0IHRoYXQmIzM5O3MgYW4gYF9faW5pdGAgZnVuY3Rpb24sIGFuZCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZm9jdXMgb24gdGhvc2UuIFRoZSBzaW1wbGUgZmFjdCB0aGF0IGtkdW1wIGtlcm5lbHMgYXJlIHNvIGhlYXZpbHkgY29uc3RyYWluZWQgYWxzbyBjb21lcyBpbnRvIHBsYXkuCgpTbywgdGFraW5nIGV2ZXJ5dGhpbmcgaW50byBhY2NvdW50LCBhbmQgY29uc2lkZXJpbmcgdGhlIGxpbWl0ZWQgaW1wYWN0LCBpdCYjMzk7cyBzdGlsbCBiZXN0IHRvIHNheSBgV29ydGhGdXp6aW5nPWZhbHNlYCBmb3IgdGhpcy4gVGhpcyBpc24mIzM5O3QgYSB2YWx1YWJsZSB0YXJnZXQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMjE6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSB0cml2aWFsIGJvb3QtdGltZSBjaGVjayB0byBkaXNhYmxlIEtleGVjIEhhbmRPdmVyIChLSE8pIGlmIHRoZSBrZXJuZWwgaXMgYm9vdGluZyBhcyBhIGtkdW1wIGtlcm5lbC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdXNlcnNwYWNlLXJlYWNoYWJsZSBsb2dpYywgc3lzY2FsbHMsIG9yIGNvbXBsZXggc3RhdGUgbWFjaGluZXMgdGhhdCB3b3VsZCBiZW5lZml0IGZyb20gZnV6emluZy4gRnVydGhlcm1vcmUsIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyBhbiBfX2luaXQgZnVuY3Rpb24gZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBlYXJseSBib290LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNTo1My4xNDkzMTUzMTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDU3OTI1ODUwMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDIxOjI1OjUzLjE0OTMyMzI4N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1NDI2ODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDhiZTgwNmUwMzgwMmU1M2RlMDMyOWMyYTEwZTNlY2Q1OWRmNTk1ZDdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBBdWcgMyAyMToyNTo1MSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jIGIva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY1xcbmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY1xcbisrKyBiL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmNcXG5AQCAtMTIsNiArMTIsNyBAQFxcbiBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2NsZWFudXAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2NtYS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgva21lbWxlYWsuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2NvdW50X3plcm9zLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rYXNhbi5oXFx1MDAzZVxcbkBAIC0xNjM2LDYgKzE2MzcsOSBAQCB2b2lkIF9faW5pdCBraG9fbWVtb3J5X2luaXQodm9pZClcXG4gXFxuIFxcdFxcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxcbiBcXHRcXHRcXHRraG9faW4uZmR0X3BoeXMgPSAwO1xcbitcXHR9IGVsc2UgaWYgKGlzX2tkdW1wX2tlcm5lbCgpKSB7XFxuK1xcdFxcdGtob19lbmFibGUgPSBmYWxzZTtcXG4rXFx0XFx0cHJfaW5mbyhcXFwiZGlzYWJsZWQgaW4gdGhlIGtkdW1wIGtlcm5lbFxcXFxuXFxcIik7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdGtob19yZXNlcnZlX3NjcmF0Y2goKTtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNTo1NC40MDQ1NzA3MjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMzMyMzk5NTM0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDhiZTgwNmUwMzgwMmU1M2RlMDMyOWMyYTEwZTNlY2Q1OWRmNTk1ZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDIxOjI1OjUxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYyBiL2tlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmNcbmluZGV4IDZmYWQ5MTUyMzg3YTkuLjUzYjU5ZWRiNWIzNjEgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG4rKysgYi9rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jXG5AQCAtMTIsNiArMTIsNyBAQFxuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NsZWFudXAuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NtYS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva21lbWxlYWsuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NvdW50X3plcm9zLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rYXNhbi5oXHUwMDNlXG5AQCAtMTYzNiw2ICsxNjM3LDkgQEAgdm9pZCBfX2luaXQga2hvX21lbW9yeV9pbml0KHZvaWQpXG4gXG4gXHRcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxuIFx0XHRcdGtob19pbi5mZHRfcGh5cyA9IDA7XG4rXHR9IGVsc2UgaWYgKGlzX2tkdW1wX2tlcm5lbCgpKSB7XG4rXHRcdGtob19lbmFibGUgPSBmYWxzZTtcbitcdFx0cHJfaW5mbyhcImRpc2FibGVkIGluIHRoZSBrZHVtcCBrZXJuZWxcXG5cIik7XG4gXHR9IGVsc2Uge1xuIFx0XHRraG9fcmVzZXJ2ZV9zY3JhdGNoKCk7XG4gXHR9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNTo1NC40MDQ1NzIzNzdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDMxNTA0MTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtleGVjIEhhbmRvdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBga2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY2AuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g6IGl0J3MgYWRkaW5nIGFuIGBlbHNlIGlmIChpc19rZHVtcF9rZXJuZWwoKSlgIGNoZWNrIHdpdGhpbiBga2hvX21lbW9yeV9pbml0KClgLiBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrZHVtcCBrZXJuZWwsIGl0IGRpc2FibGVzIGBraG9fZW5hYmxlYCBhbmQgcHJpbnRzIGEgbWVzc2FnZS4gTGV0J3Mgc2VlLi4uIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBraG9fbWVtb3J5X2luaXRgIGFjdHVhbGx5ICpkb2VzKiBhbmQgd2hhdCBgaXNfa2R1bXBfa2VybmVsKClgIGlzIGFib3V0LlxuXG5BbHJpZ2h0LCBgaXNfa2R1bXBfa2VybmVsYCBpcyBkZWZpbmVkIGluIGBsaW51eC9jcmFzaF9kdW1wLmhgLiBOb3csIHRoaXMgaXMgaW4gYGtleGVjX2hhbmRvdmVyLmNgLCBzbyB0aGUgc2NvcGUgaXMgZGVmaW5lZC4gSG1tbS4uLiBpcyB0aGlzIHdvcnRoIHNwZW5kaW5nIHRpbWUgZnV6emluZz9cblxuUmVhbGx5LCBhbGwgdGhpcyBwYXRjaCBkb2VzIGlzIGRpc2FibGUgYGtob19lbmFibGVgIGlmIGBpc19rZHVtcF9rZXJuZWwoKWAgcmV0dXJucyB0cnVlLiBUaGUgcXVlc3Rpb24gaXM6IGlzIGBraG9fbWVtb3J5X2luaXRgIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSBub3JtYWwgYm9vdCBzY2VuYXJpbz8gQWgsIHllcywgaXTigJlzIG1hcmtlZCBhcyBgX19pbml0YCwgc28gaXQncyBjYWxsZWQgZHVyaW5nIGJvb3QgaW5pdGlhbGl6YXRpb24uIFNvLCBjYW4gd2UgZnV6eiBgaXNfa2R1bXBfa2VybmVsKClgIGl0c2VsZj8gVGhhdCBzZWVtcyBsaWtlIHRoZSBtYWluIHBvdGVudGlhbCB0YXJnZXQuIEl0IGxvb2tzIGxpa2UgaXQncyBwcmltYXJpbHkgZGV0ZXJtaW5lZCBieSBib290IHBhcmFtZXRlcnMgb3Iga2V4ZWMgc2V0dXAuIFNlZW1zIGxpa2UgdGhpcyBpcyBhICp2ZXJ5KiBzbWFsbCBpbml0aWFsaXphdGlvbiBjaGFuZ2UuIEkgbmVlZCB0byBjaGVjayBob3cgYW5kIHdoZW4gYGtob19tZW1vcnlfaW5pdGAgZ2V0cyBjYWxsZWQgZHVyaW5nIHRoZSBib290IHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNDcsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QyMToyNjowMC40MzYwODA5NzVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzODI4MzIzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJraG9fbWVtb3J5X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgva2V4ZWNfaGFuZG92ZXIuaD0zNz1pbnQga2hvX3JldHJpZXZlX3N1YnRyZWUoY29uc3QgY2hhciAqbmFtZSwgcGh5c19hZGRyX3QgKnBoeXMsIHNpemVfdCAqc2l6ZSk7XFxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTM4LVxcbmluY2x1ZGUvbGludXgva2V4ZWNfaGFuZG92ZXIuaDozOTp2b2lkIGtob19tZW1vcnlfaW5pdCh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmgtNDAtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmg9MTA3PXN0YXRpYyBpbmxpbmUgaW50IGtob19yZXRyaWV2ZV9zdWJ0cmVlKGNvbnN0IGNoYXIgKm5hbWUsIHBoeXNfYWRkcl90ICpwaHlzLFxcbi0tXFxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTExMi1cXG5pbmNsdWRlL2xpbnV4L2tleGVjX2hhbmRvdmVyLmg6MTEzOnN0YXRpYyBpbmxpbmUgdm9pZCBraG9fbWVtb3J5X2luaXQodm9pZCkgeyB9XFxuaW5jbHVkZS9saW51eC9rZXhlY19oYW5kb3Zlci5oLTExNC1cXG4tLVxcbmtlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmM9MTYzMT1mc19pbml0Y2FsbChraG9faW5pdCk7XFxua2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuYy0xNjMyLVxcbmtlcm5lbC9saXZldXBkYXRlL2tleGVjX2hhbmRvdmVyLmM6MTYzMzp2b2lkIF9faW5pdCBraG9fbWVtb3J5X2luaXQodm9pZClcXG5rZXJuZWwvbGl2ZXVwZGF0ZS9rZXhlY19oYW5kb3Zlci5jLTE2MzQte1xcbi0tXFxubW0vbW1faW5pdC5jPTI2OTk9dm9pZCBfX2luaXQgbW1fY29yZV9pbml0KHZvaWQpXFxuLS1cXG5tbS9tbV9pbml0LmMtMjcyMy1cXHQgKi9cXG5tbS9tbV9pbml0LmM6MjcyNDpcXHRraG9fbWVtb3J5X2luaXQoKTtcXG5tbS9tbV9pbml0LmMtMjcyNS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMjE6MjY6MDIuODc0MzY4NTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzM5MzgzOTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgYSBCb290LVRpbWUgSW5pdGlhbGl6YXRpb24gQ2hhbmdlKipcblxuT2theSwgc28gYGtob19tZW1vcnlfaW5pdGAgaXMgY2FsbGVkIHByZXR0eSBlYXJseSDigJMgcmlnaHQgYWZ0ZXIgdGhlIG1lbW9yeSBtYW5hZ2VyIGlzIGluaXRpYWxpemVkLCB3aGljaCBpcyBpdHNlbGYgZWFybHkgaW4gdGhlIGJvb3QgcHJvY2Vzcy4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY29uZGl0aW9uYWwgY2hlY2sgdXNpbmcgYGlzX2tkdW1wX2tlcm5lbCgpYCB0byBkaXNhYmxlIGBraG9fZW5hYmxlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIGV2ZW4gd29ydGggZnV6emluZz8gSXQncyBhIHNpbmdsZSwgYm9vdC10aW1lIGluaXRpYWxpemF0aW9uLiBJdCBiYXNpY2FsbHkgc2F5cywgXCJJZiB0aGlzIGlzIGEga2R1bXAga2VybmVsLCBkb24ndCBlbmFibGUgS2V4ZWMgSGFuZE92ZXIgKEtITykuXCJcblxuTXkgZmlyc3QgaW5zdGluY3QgaXMsIG5vLCBpdCdzIG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBGdXp6aW5nIHRoaXMgKmRpcmVjdGx5KiB3b3VsZCBhbW91bnQgdG8gYm9vdGluZyBhIGtkdW1wIGtlcm5lbCByZXBlYXRlZGx5IGFuZCBvYnNlcnZpbmcgZm9yIGNyYXNoZXMsIHdoaWNoIGlzbid0IFN5emthbGxlcidzIHR5cGljYWwgYXBwcm9hY2guIFN5emthbGxlciBwcmltYXJpbHkgdGVzdHMgc3lzY2FsbHMgYW5kIHVzZXItc3BhY2UgaW50ZXJhY3Rpb25zLCBub3QgYm9vdC10aW1lIG51YW5jZXMgbGlrZSBrZXhlYyBoYW5kb3ZlcnMgdGhyb3VnaCBpdHMgdHlwaWNhbCBtZWNoYW5pc21zLiBCdXQgd2FpdCwgSSByZWNhbGwgU3l6a2FsbGVyICpkb2VzKiB0ZXN0IGtleGVjIGl0c2VsZi4gSG93ZXZlciwgdGhpcyBpcyBldmVuICplYXJsaWVyKiB0aGFuIHRoZSBrZXhlYyBwcm9jZXNzLCBhbmQgdmVyeSBkaWZmZXJlbnQgdGhhbiB0aGUgdXN1YWwgc3lzY2FsbCBiYXNlZCBmdXp6ZXIgaW50ZXJhY3Rpb25zLlxuXG5TbywgaXMgdGhlcmUgYW55IHN5c2NhbGwtcmVhY2hhYmxlIGNvZGUgbW9kaWZpZWQgaGVyZT8gTm8sIGl0J3MganVzdCBhIGJvb3QtdGltZSBjaGVjay4gVGhpbmtpbmcgbW9yZSBhYm91dCBpdCwgSSdtIGxlYW5pbmcgdG93YXJkcyBcInByb2JhYmx5IG5vdCB3b3J0aCBpdC5cIiBJdCBzZWVtcyBsaWtlIGEgdHJpdmlhbCBjaGVjay4gR2l2ZW4gdGhhdCBpdCdzIGEgc2ltcGxlIGJvb3QtdGltZSBjb25kaXRpb25hbCwgZnV6emluZyB0aGlzIHNlZW1zIHJlZHVuZGFudC4gQnV0IGJlZm9yZSBJIGNvbXBsZXRlbHkgZGlzbWlzcyBpdCwgbGV0J3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgd2hhdCBga2hvX21lbW9yeV9pbml0YCAqYWN0dWFsbHkqIGRvZXMuIFVuZGVyc3RhbmRpbmcgdGhlIGluaXRpYWxpemF0aW9uIHJvdXRpbmUgaXRzZWxmIG1pZ2h0IHByb3ZpZGUgYSBjbGVhcmVyIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMjgsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMjE6MjY6MDkuMjEzNzU2NDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDMwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwia2VybmVsL2xpdmV1cGRhdGUva2V4ZWNfaGFuZG92ZXIuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNjMwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNjMwOlxcdH1cXG4xNjMxOlxcdGZzX2luaXRjYWxsKGtob19pbml0KTtcXG4xNjMyOlxcdFxcbjE2MzM6XFx0dm9pZCBfX2luaXQga2hvX21lbW9yeV9pbml0KHZvaWQpXFxuMTYzNDpcXHR7XFxuMTYzNTpcXHRcXHRpZiAoa2hvX2luLnNjcmF0Y2hfcGh5cykge1xcbjE2MzY6XFx0XFx0XFx0a2hvX3NjcmF0Y2ggPSBwaHlzX3RvX3ZpcnQoa2hvX2luLnNjcmF0Y2hfcGh5cyk7XFxuMTYzNzpcXHRcXG4xNjM4OlxcdFxcdFxcdGlmIChraG9fbWVtX3JldHJpZXZlKGtob19nZXRfZmR0KCkpKVxcbjE2Mzk6XFx0XFx0XFx0XFx0a2hvX2luLmZkdF9waHlzID0gMDtcXG4xNjQwOlxcdFxcdH0gZWxzZSBpZiAoaXNfa2R1bXBfa2VybmVsKCkpIHtcXG4xNjQxOlxcdFxcdFxcdGtob19lbmFibGUgPSBmYWxzZTtcXG4xNjQyOlxcdFxcdFxcdHByX2luZm8oXFxcImRpc2FibGVkIGluIHRoZSBrZHVtcCBrZXJuZWxcXFxcblxcXCIpO1xcbjE2NDM6XFx0XFx0fSBlbHNlIHtcXG4xNjQ0OlxcdFxcdFxcdGtob19yZXNlcnZlX3NjcmF0Y2goKTtcXG4xNjQ1OlxcdFxcdH1cXG4xNjQ2OlxcdH1cXG4xNjQ3OlxcdFxcbjE2NDg6XFx0dm9pZCBfX2luaXQga2hvX3BvcHVsYXRlKHBoeXNfYWRkcl90IGZkdF9waHlzLCB1NjQgZmR0X2xlbixcXG4xNjQ5OlxcdFxcdFxcdFxcdCBwaHlzX2FkZHJfdCBzY3JhdGNoX3BoeXMsIHU2NCBzY3JhdGNoX2xlbilcXG4xNjUwOlxcdHtcXG4xNjUxOlxcdFxcdHVuc2lnbmVkIGludCBzY3JhdGNoX2NudCA9IHNjcmF0Y2hfbGVuIC8gc2l6ZW9mKCpraG9fc2NyYXRjaCk7XFxuMTY1MjpcXHRcXHRzdHJ1Y3Qga2hvX3NjcmF0Y2ggKnNjcmF0Y2ggPSBOVUxMO1xcbjE2NTM6XFx0XFx0cGh5c19hZGRyX3QgbWVtX21hcF9waHlzO1xcbjE2NTQ6XFx0XFx0dm9pZCAqZmR0ID0gTlVMTDtcXG4xNjU1OlxcdFxcdGJvb2wgcG9wdWxhdGVkID0gZmFsc2U7XFxuMTY1NjpcXHRcXHRpbnQgZXJyO1xcbjE2NTc6XFx0XFxuMTY1ODpcXHRcXHQvKiBWYWxpZGF0ZSB0aGUgaW5wdXQgRkRUICovXFxuMTY1OTpcXHRcXHRmZHQgPSBlYXJseV9tZW1yZW1hcChmZHRfcGh5cywgZmR0X2xlbik7XFxuMTY2MDpcXHRcXHRpZiAoIWZkdCkge1xcbjE2NjE6XFx0XFx0XFx0cHJfd2FybihcXFwic2V0dXA6IGZhaWxlZCB0byBtZW1yZW1hcCBGRFQgKDB4JWxseClcXFxcblxcXCIsIGZkdF9waHlzKTtcXG4xNjYyOlxcdFxcdFxcdGdvdG8gcmVwb3J0O1xcbjE2NjM6XFx0XFx0fVxcbjE2NjQ6XFx0XFx0ZXJyID0gZmR0X2NoZWNrX2hlYWRlcihmZHQpO1xcbjE2NjU6XFx0XFx0aWYgKGVycikge1xcbjE2NjY6XFx0XFx0XFx0cHJfd2FybihcXFwic2V0dXA6IGhhbmRvdmVyIEZEVCAoMHglbGx4KSBpcyBpbnZhbGlkOiAlZFxcXFxuXFxcIixcXG4xNjY3OlxcdFxcdFxcdFxcdGZkdF9waHlzLCBlcnIpO1xcbjE2Njg6XFx0XFx0XFx0Z290byB1bm1hcF9mZHQ7XFxuMTY2OTpcXHRcXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDIxOjI2OjA5LjIxNDAwMzI4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODUxNDUyMzk4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIHNpbXBsZSBjaGVjazogaWYgdGhlIGtlcm5lbCBpcyBhIGtkdW1wIGtlcm5lbCwgYSBmZWF0dXJlIGlzIGRpc2FibGVkIGF0IGJvb3QuIE5vIG5ldyBzeXNjYWxscywgbm8gY29tcGxleCBsb2dpYywgcHVyZWx5IGEgYm9vdC10aW1lIGRlY2lzaW9uLiBNeSBpbml0aWFsIGluc3RpbmN0IHdhcyB0byBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0IGZlbHQgbGlrZSBhIHRyaXZpYWwgY2hhbmdlLCBqdXN0IGEgYm9vbGVhbiBhc3NpZ25tZW50IGFuZCBhIGBwcl9pbmZvYCBjYWxsLiBJdCdzIG5vdCBleHBvc2luZyBuZXcgYXR0YWNrIHN1cmZhY2UgZnJvbSB1c2VyIHNwYWNlLlxuXG5CdXQgdGhlbiBJIGhhZCB0byBnbyB0aHJvdWdoIHRoZSBndWlkZWxpbmVzLCBzcGVjaWZpY2FsbHkgY2hlY2tpbmcgaWYgdGhlIHBhdGNoIFwiZnVuY3Rpb25hbGx5IGFsdGVycyBleGVjdXRpb24gZmxvdy5cIiBXZWxsLCB5ZXMsIGl0ICpkb2VzKiBhbHRlciB0aGUgZmxvdyDigJMgaXQgc2V0cyBga2hvX2VuYWJsZWAgdG8gZmFsc2UsIHNraXBwaW5nIGBraG9fcmVzZXJ2ZV9zY3JhdGNoKClgLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZXZlbiBpZiBpdCdzIHZlcnkgdGFyZ2V0ZWQuIEl0IGlzLCBob3dldmVyLCByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGJlY2F1c2Ugc3l6a2FsbGVyIGZ1enplcyBrZXhlYywgd2hpY2ggY2FuIGxlYWQgdG8gYSBrZHVtcCBrZXJuZWwuXG5cblRoZSBuZXh0IHF1ZXN0aW9uOiBJcyBpdCAqd29ydGgqIGZ1enppbmc/IEV2ZW4gd2l0aCB0aGUgZnVuY3Rpb25hbCBjaGFuZ2UsIGl0J3MganVzdCBhIHNpbmdsZSBib29sZWFuIGFuZCBhIHByaW50LCBhIHZlcnkgY29uc3RyYWluZWQgY29kZSBwYXRoLiBPa2F5LCBidXQgaWYgSSBzYWlkIGl0ICp3YXMqIHdvcnRoIGZ1enppbmcsIHdoYXQgZm9jdXMgc3ltYm9scyB3b3VsZCBJIHN1Z2dlc3Q/IEkgdGhvdWdodCBvZiBga2hvX21lbW9yeV9pbml0YCwgYnV0IHRoYXQncyBhbiBgX19pbml0YCBmdW5jdGlvbiwgYW5kIHN5emthbGxlciBkb2Vzbid0IGZvY3VzIG9uIHRob3NlLiBUaGUgc2ltcGxlIGZhY3QgdGhhdCBrZHVtcCBrZXJuZWxzIGFyZSBzbyBoZWF2aWx5IGNvbnN0cmFpbmVkIGFsc28gY29tZXMgaW50byBwbGF5LlxuXG5TbywgdGFraW5nIGV2ZXJ5dGhpbmcgaW50byBhY2NvdW50LCBhbmQgY29uc2lkZXJpbmcgdGhlIGxpbWl0ZWQgaW1wYWN0LCBpdCdzIHN0aWxsIGJlc3QgdG8gc2F5IGBXb3J0aEZ1enppbmc9ZmFsc2VgIGZvciB0aGlzLiBUaGlzIGlzbid0IGEgdmFsdWFibGUgdGFyZ2V0IGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MzY1LCJPdXRwdXRUb2tlbnMiOjEwNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU0NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDIxOjI2OjE3LjcyODUzMDk2MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM0MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdHJpdmlhbCBib290LXRpbWUgY2hlY2sgdG8gZGlzYWJsZSBLZXhlYyBIYW5kT3ZlciAoS0hPKSBpZiB0aGUga2VybmVsIGlzIGJvb3RpbmcgYXMgYSBrZHVtcCBrZXJuZWwuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVzZXJzcGFjZS1yZWFjaGFibGUgbG9naWMsIHN5c2NhbGxzLCBvciBjb21wbGV4IHN0YXRlIG1hY2hpbmVzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIEZ1cnRoZXJtb3JlLCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgYW4gX19pbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgZWFybHkgYm9vdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRyaXZpYWwgYm9vdC10aW1lIGNoZWNrIHRvIGRpc2FibGUgS2V4ZWMgSGFuZE92ZXIgKEtITykgaWYgdGhlIGtlcm5lbCBpcyBib290aW5nIGFzIGEga2R1bXAga2VybmVsLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1c2Vyc3BhY2UtcmVhY2hhYmxlIGxvZ2ljLCBzeXNjYWxscywgb3IgY29tcGxleCBzdGF0ZSBtYWNoaW5lcyB0aGF0IHdvdWxkIGJlbmVmaXQgZnJvbSBmdXp6aW5nLiBGdXJ0aGVybW9yZSwgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGFuIF9faW5pdCBmdW5jdGlvbiBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIGVhcmx5IGJvb3QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowzjv4j[1] Phase: Running StartedAt: 2026-08-03 21:26:23 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzjv4j[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-03 21:26:23 +0000 UTC FinishedAt: 2026-08-03 21:26:27 +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,}