Name: series-workflowdb7jf Phase: Failed StartedAt: 2026-08-27 20:49:21 +0000 UTC FinishedAt: 2026-08-27 21:42:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdb7jf[0] Phase: Succeeded StartedAt: 2026-08-27 20:49:21 +0000 UTC FinishedAt: 2026-08-27 21:42:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdb7jf[0].run-triage Phase: Succeeded StartedAt: 2026-08-27 20:49:21 +0000 UTC FinishedAt: 2026-08-27 21:42:36 +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+CgkJCTx0ZD4yMDI2LzA4LzI3IDIwOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NTFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7JiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyB0ZXN0IHNjcmlwdHMgdW5kZXIgdGVzdHMvc2hlbGwvIGFuZCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBvciBmdW5jdGlvbmFsIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMjA6NTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjcgMjA6NTA6NDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2sgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9va1xubmV3IGZpbGUgbW9kZSAxMDA3NTVcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjEzODFmNGJlMmE1ZjFcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rXG5AQCAtMCwwICYjNDM7MSw0NSBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MztcbiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcbiYjNDM7XG4mIzQzO1JDPTBcbiYjNDM7XG4mIzQzO2RpZSgpIHtcbiYjNDM7XHRlY2hvIFwmIzM0O0ZBSUw6ICRAXCYjMzQ7XG4mIzQzO1x0KChSQyYjNDM7JiM0MzspKVxuJiM0MztcdCRORlQgbGlzdCBydWxlc2V0XG4mIzQzO31cbiYjNDM7XG4mIzQzOyRORlQgYWRkIHRhYmxlIG5ldGRldiB0IHx8IGRpZSBcJiMzNDthZGQgdGFibGUgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbigpIHsgIyAoY21kLCBkZXZzcGVjLCB0aHApXG4mIzQzO1x0JE5GVCAkMSBjaGFpbiBuZXRkZXYgdCBjIFwmIzM0O3sgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzt0aHA9JiMzOTt0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsmIzM5O1xuJiM0MztcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogXCYjMzQ7JHRocFwmIzM0OyB8fCBkaWUgXCYjMzQ7aW5pdGlhbCBhZGQgY2hhaW4gZmFpbGVkXCYjMzQ7XG4mIzQzO2RvX2NoYWluIGNyZWF0ZSBmb28qIFwmIzM0OyR0aHBcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGVkIGNyZWF0ZSBpbml0aWFsIGNoYWluIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBhZGQgXCYjMzQ7YmFyKiwgYmFyKlwmIzM0OyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2R1cGxpY2F0ZSB3aWxkY2FyZCBhZGQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19jaGFpbiBhZGQgXCYjMzQ7YmFyLCBiYXJcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBhZGQgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7dXBkYXRlIHdpdGggbm9uLXdpbGRjYXJkIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19jaGFpbiBhZGQgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDt1cGRhdGUgd2l0aCBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0MztcbiYjNDM7IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdFxuJiM0MztcbiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvbyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2RlbGV0ZSBub24td2lsZGNhcmQgaG9vayBhbGxvd2VkXCYjMzQ7XG4mIzQzO2RvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwmIzM0O1xuJiM0MztcbiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2RlbGV0ZSBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBkZWxldGUgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkZWxldGUgbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBkZWxldGUgZm9vKiB8fCBkaWUgXCYjMzQ7ZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2V4aXQgJFJDXG5kaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9vayBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9mbG93dGFibGUvdXBkYXRlX3dpbGRjYXJkX2hvb2tcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5hNjdjOGJmZmUwNjg3XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rXG5AQCAtMCwwICYjNDM7MSw0NSBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MztcbiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcbiYjNDM7XG4mIzQzO1JDPTBcbiYjNDM7XG4mIzQzO2RpZSgpIHtcbiYjNDM7XHRlY2hvIFwmIzM0O0ZBSUw6ICRAXCYjMzQ7XG4mIzQzO1x0KChSQyYjNDM7JiM0MzspKVxuJiM0MztcdCRORlQgbGlzdCBydWxlc2V0XG4mIzQzO31cbiYjNDM7XG4mIzQzOyRORlQgYWRkIHRhYmxlIHQgfHwgZGllIFwmIzM0O2FkZCB0YWJsZSBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0KCkgeyAjIChjbWQsIGRldnNwZWMsIHRocClcbiYjNDM7XHQkTkZUICQxIGZsb3d0YWJsZSB0IGZ0IFwmIzM0O3sgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzt0aHA9JiMzOTtob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsmIzM5O1xuJiM0MztcbiYjNDM7ZG9fZnQgYWRkIGZvbyogXCYjMzQ7JHRocFwmIzM0OyB8fCBkaWUgXCYjMzQ7aW5pdGlhbCBhZGQgZmxvd3RhYmxlIGZhaWxlZFwmIzM0O1xuJiM0Mztkb19mdCBjcmVhdGUgZm9vKiBcJiMzNDskdGhwXCYjMzQ7IFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBmbG93dGFibGUgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGFkZCBcJiMzNDtiYXIqLCBiYXIqXCYjMzQ7IFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZHVwbGljYXRlIHdpbGRjYXJkIGFkZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO2RvX2Z0IGFkZCBcJiMzNDtiYXIsIGJhclwmIzM0OyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2R1cGxpY2F0ZSBkZXZpY2UgYWRkIGFsbG93ZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGFkZCBmb28gXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDt1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7dXBkYXRlIHdpdGggc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO2RvX2Z0IGFkZCBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO1xuJiM0MzsjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XG4mIzQzO1xuJiM0Mztkb19mdCBkZWxldGUgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fZnQgYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19mdCBkZWxldGUgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGRlbGV0ZSBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2RlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGRlbGV0ZSBmb28qIHx8IGRpZSBcJiMzNDtkZWxldGUgaW5pdGlhbCBmbG93dGFibGUgaG9vayBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2V4aXQgJFJDXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMjA6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NTFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyB0ZXN0IHNjcmlwdHMgdW5kZXIgdGVzdHMvc2hlbGwvIGFuZCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBvciBmdW5jdGlvbmFsIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgMjcgMjA6NTA6NDkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9vayBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAuLjEzODFmNGJlMmE1ZjEKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9vawpAQCAtMCwwICYjNDM7MSw0NSBAQAomIzQzOyMhL2Jpbi9iYXNoCiYjNDM7CiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcykKJiM0MzsKJiM0MztSQz0wCiYjNDM7CiYjNDM7ZGllKCkgewomIzQzOwllY2hvICYjMzQ7RkFJTDogJEAmIzM0OwomIzQzOwkoKFJDJiM0MzsmIzQzOykpCiYjNDM7CSRORlQgbGlzdCBydWxlc2V0CiYjNDM7fQomIzQzOwomIzQzOyRORlQgYWRkIHRhYmxlIG5ldGRldiB0IHx8IGRpZSAmIzM0O2FkZCB0YWJsZSBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2RvX2NoYWluKCkgeyAjIChjbWQsIGRldnNwZWMsIHRocCkKJiM0MzsJJE5GVCAkMSBjaGFpbiBuZXRkZXYgdCBjICYjMzQ7eyAkMyBkZXZpY2VzID0geyAkMiB9OyB9JiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGhwPSYjMzk7dHlwZSBmaWx0ZXIgaG9vayBpbmdyZXNzIHByaW9yaXR5IDA7JiMzOTsKJiM0MzsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiAmIzM0OyR0aHAmIzM0OyB8fCBkaWUgJiMzNDtpbml0aWFsIGFkZCBjaGFpbiBmYWlsZWQmIzM0OwomIzQzO2RvX2NoYWluIGNyZWF0ZSBmb28qICYjMzQ7JHRocCYjMzQ7ICZhbXA7JmFtcDsgZGllICYjMzQ7ZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBjaGFpbiBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gYWRkICYjMzQ7YmFyKiwgYmFyKiYjMzQ7ICZhbXA7JmFtcDsgZGllICYjMzQ7ZHVwbGljYXRlIHdpbGRjYXJkIGFkZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgJiMzNDtiYXIsIGJhciYjMzQ7ICZhbXA7JmFtcDsgZGllICYjMzQ7ZHVwbGljYXRlIGRldmljZSBhZGQgYWxsb3dlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyAmYW1wOyZhbXA7IGRpZSAmIzM0O3VwZGF0ZSB3aXRoIG5vbi13aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm8qICZhbXA7JmFtcDsgZGllICYjMzQ7dXBkYXRlIHdpdGggc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vbyogJmFtcDsmYW1wOyBkaWUgJiMzNDt1cGRhdGUgd2l0aCBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZCYjMzQ7CiYjNDM7CiYjNDM7IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdAomIzQzOwomIzQzO2RvX2NoYWluIGRlbGV0ZSBmb28gJmFtcDsmYW1wOyBkaWUgJiMzNDtkZWxldGUgbm9uLXdpbGRjYXJkIGhvb2sgYWxsb3dlZCYjMzQ7CiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllICYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2RvX2NoYWluIGRlbGV0ZSBmbyogJmFtcDsmYW1wOyBkaWUgJiMzNDtkZWxldGUgc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvb28qICZhbXA7JmFtcDsgZGllICYjMzQ7ZGVsZXRlIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvbyogfHwgZGllICYjMzQ7ZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2V4aXQgJFJDCmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9vawpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwLi5hNjdjOGJmZmUwNjg3Ci0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9vawpAQCAtMCwwICYjNDM7MSw0NSBAQAomIzQzOyMhL2Jpbi9iYXNoCiYjNDM7CiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcykKJiM0MzsKJiM0MztSQz0wCiYjNDM7CiYjNDM7ZGllKCkgewomIzQzOwllY2hvICYjMzQ7RkFJTDogJEAmIzM0OwomIzQzOwkoKFJDJiM0MzsmIzQzOykpCiYjNDM7CSRORlQgbGlzdCBydWxlc2V0CiYjNDM7fQomIzQzOwomIzQzOyRORlQgYWRkIHRhYmxlIHQgfHwgZGllICYjMzQ7YWRkIHRhYmxlIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fZnQoKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKQomIzQzOwkkTkZUICQxIGZsb3d0YWJsZSB0IGZ0ICYjMzQ7eyAkMyBkZXZpY2VzID0geyAkMiB9OyB9JiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGhwPSYjMzk7aG9vayBpbmdyZXNzIHByaW9yaXR5IDA7JiMzOTsKJiM0MzsKJiM0Mztkb19mdCBhZGQgZm9vKiAmIzM0OyR0aHAmIzM0OyB8fCBkaWUgJiMzNDtpbml0aWFsIGFkZCBmbG93dGFibGUgZmFpbGVkJiMzNDsKJiM0Mztkb19mdCBjcmVhdGUgZm9vKiAmIzM0OyR0aHAmIzM0OyAmYW1wOyZhbXA7IGRpZSAmIzM0O2R1cGxpY2F0ZWQgY3JlYXRlIGluaXRpYWwgZmxvd3RhYmxlIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb28qIHx8IGRpZSAmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBhZGQgJiMzNDtiYXIqLCBiYXIqJiMzNDsgJmFtcDsmYW1wOyBkaWUgJiMzNDtkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCAmIzM0O2JhciwgYmFyJiMzNDsgJmFtcDsmYW1wOyBkaWUgJiMzNDtkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBhZGQgZm9vICZhbXA7JmFtcDsgZGllICYjMzQ7dXBkYXRlIHdpdGggbm9uLXdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmbyogJmFtcDsmYW1wOyBkaWUgJiMzNDt1cGRhdGUgd2l0aCBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb29vKiAmYW1wOyZhbXA7IGRpZSAmIzM0O3VwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0MzsKJiM0MzsjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90CiYjNDM7CiYjNDM7ZG9fZnQgZGVsZXRlIGZvbyAmYW1wOyZhbXA7IGRpZSAmIzM0O2RlbGV0ZSBub24td2lsZGNhcmQgaG9vayBhbGxvd2VkJiMzNDsKJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fZnQgZGVsZXRlIGZvKiAmYW1wOyZhbXA7IGRpZSAmIzM0O2RlbGV0ZSBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb28qIHx8IGRpZSAmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBkZWxldGUgZm9vbyogJmFtcDsmYW1wOyBkaWUgJiMzNDtkZWxldGUgbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb28qIHx8IGRpZSAmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBkZWxldGUgZm9vKiB8fCBkaWUgJiMzNDtkZWxldGUgaW5pdGlhbCBmbG93dGFibGUgaG9vayBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2V4aXQgJFJDCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIwOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT40N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDExCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogOTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogUHJlbGltaW5hcnkgVGhvdWdodHMqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgaXQgc2VlbXMgdG8gYmUgdG91Y2hpbmcgYSBjb3VwbGUgb2YgdGVzdCBzY3JpcHRzOiBzcGVjaWZpY2FsbHksIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9va2AgYW5kIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rYC4gSnVzdCBsb29raW5nIGF0IHRoZSBmaWxlIHBhdGhzLCBteSBndWVzcyBpcyB0aGF0IHRoZXNlIGFyZSB1c2Vyc3BhY2UgdGVzdCBzY3JpcHRzLCBwb3NzaWJseSByZWxhdGVkIHRvIHRoZSBuZnRhYmxlcyB0ZXN0IHN1aXRlIG9yIGEgc2ltaWxhciBmcmFtZXdvcmsgd2l0aGluIGEgbGFyZ2VyIHJlcG9zaXRvcnkuIFRvIGNvbmZpcm0gdGhhdCBpbnR1aXRpb24gYW5kIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb250ZXh0LCBJJiMzOTtsbCBuZWVkIHRvIHVzZSBzb21lIHRvb2xpbmcgdG8gZXhwbG9yZSB0aGUgc3Vycm91bmRpbmcgY29kZSBhbmQgdGhlIHJlcG9zaXRvcnkgc3RydWN0dXJlLiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQgb3V0IHdpdGggYSBxdWljayBzY2FuLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O3Rlc3RzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IG51bGwsCiAgJiMzNDtTdWJkaXJzJiMzNDs6IFsKICAgICYjMzQ7c2hlbGwmIzM0OwogIF0KfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMDUKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBOYXZpZ2F0aW5nIHRoZSBUb3AgTGV2ZWwqKgoKQWxyaWdodCwgSSYjMzk7bSBzdGFydGluZyBhdCB0aGUgdG9wLiBCZWZvcmUgZGl2aW5nIGluLCBJIG5lZWQgdG8gZ2V0IGEgbGF5IG9mIHRoZSBsYW5kLiBTbywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIHJvb3QgZGlyZWN0b3J5LiBXaGF0JiMzOTtzIHRoZSBpbml0aWFsIHN0cnVjdHVyZT8gV2hhdCBjcml0aWNhbCBmaWxlcyBvciBmb2xkZXJzIGFyZSBpbW1lZGlhdGVseSBwcmVzZW50PyBBcmUgdGhlcmUgYW55IG9idmlvdXMgaW5kaWNhdG9ycyBvZiB0aGUgc3lzdGVtJiMzOTtzIHB1cnBvc2Ugb3IgYXJjaGl0ZWN0dXJlIHRoYXQganVtcCBvdXQ/IFRoaXMgaXMgcHVyZWx5IGFib3V0IGdldHRpbmcgYSBoaWdoLWxldmVsLCBxdWljayBzY2FuLiBObyBuZWVkIHRvIGdvIGRlZXAgeWV0LCBqdXN0IGlkZW50aWZ5IHRoZSBwcm9taW5lbnQgZWxlbWVudHMuIFRoaXMgaW5pdGlhbCBpbnZlbnRvcnkgd2lsbCBpbmZsdWVuY2UgbXkgZGlyZWN0aW9uIGFzIEkgZm9ybXVsYXRlIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBudWxsLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O0RvY3VtZW50YXRpb24mIzM0OywKICAgICYjMzQ7TElDRU5TRVMmIzM0OywKICAgICYjMzQ7YXJjaCYjMzQ7LAogICAgJiMzNDtibG9jayYjMzQ7LAogICAgJiMzNDtjZXJ0cyYjMzQ7LAogICAgJiMzNDtjcnlwdG8mIzM0OywKICAgICYjMzQ7ZHJpdmVycyYjMzQ7LAogICAgJiMzNDtmcyYjMzQ7LAogICAgJiMzNDtpbmNsdWRlJiMzNDssCiAgICAmIzM0O2luaXQmIzM0OywKICAgICYjMzQ7aW9fdXJpbmcmIzM0OywKICAgICYjMzQ7aXBjJiMzNDssCiAgICAmIzM0O2tlcm5lbCYjMzQ7LAogICAgJiMzNDtsaWImIzM0OywKICAgICYjMzQ7bW0mIzM0OywKICAgICYjMzQ7bmV0JiMzNDssCiAgICAmIzM0O3J1c3QmIzM0OywKICAgICYjMzQ7c2FtcGxlcyYjMzQ7LAogICAgJiMzNDtzY3JpcHRzJiMzNDssCiAgICAmIzM0O3NlY3VyaXR5JiMzNDssCiAgICAmIzM0O3NvdW5kJiMzNDssCiAgICAmIzM0O3Rlc3RzJiMzNDssCiAgICAmIzM0O3Rvb2xzJiMzNDssCiAgICAmIzM0O3VzciYjMzQ7LAogICAgJiMzNDt2aXJ0JiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAyMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTk4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIFJlY2VudCBDaGFuZ2VzKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlc2UgbW9kaWZpY2F0aW9ucy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGV4YW1pbmUgdGhlIGB0ZXN0cy9gIGRpcmVjdG9yeSDigJMgc2VlIHdoYXQmIzM5O3MgY2hhbmdlZCB0aGVyZSwgb3IgaWYgdGhlIGtlcm5lbCBpdHNlbGYgaGFzIGJlZW4gYWZmZWN0ZWQuIEJ1dCBob2xkIG9uLCBiZWZvcmUgSSBkaXZlIGludG8gdGhlIGZpbGUgc3lzdGVtLCBhIHF1aWNrIGNoZWNrIG9mIHRoZSBHaXQgbG9nIG9yIHRoZSBgZGlmZmAgb2YgdGhlIEhFQUQgY29tbWl0IGlzIHByb2JhYmx5IGEgYmV0dGVyIHN0YXJ0aW5nIHBvaW50IGZvciBhIGhpZ2gtbGV2ZWwgb3ZlcnZpZXcuIFRoYXQgd2lsbCBnaXZlIG1lIGEgZmlyc3QgY2x1ZS4KClJpZ2h0LCBsZXQmIzM5O3MgbG9vayBhdCBgdGVzdHMvc2hlbGxgLCBvciBtYXliZSB0aGVyZSBhcmUgb3RoZXIgZmlsZXMgaW4gdGhlIEhFQUQgY29tbWl0IHRoYXQgd2VyZSB0b3VjaGVkLiBJIG5lZWQgdG8gZ2V0IHRoZSBzY29wZSBvZiB0aGlzIHVwZGF0ZS4KCkhvbGQgb24sIEkgdGhpbmsgSSYjMzk7bGwgdXNlIGBncmVwcGVyYCBvciBgcmVhZC1maWxlYCBvbiBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tgLCBqdXN0IHRvIG1ha2Ugc3VyZSBJJiMzOTttIHplcm9pbmcgaW4gb24gdGhlIHJpZ2h0IHNlY3Rpb25zLiBUaGF0IHdpbGwgZ2l2ZSBtZSB0aGUgcXVpY2tlc3QgYW5zd2VyIHRvIGdldCBhIGdvb2QgdW5kZXJzdGFuZGluZyBvZiB0aGUgY2hhbmdlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAyMTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyEvYmluL2Jhc2hcbiAgIDI6XHRcbiAgIDM6XHQjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfaWZuYW1lX2Jhc2VkX2hvb2tzKVxuICAgNDpcdFxuICAgNTpcdFJDPTBcbiAgIDY6XHRcbiAgIDc6XHRkaWUoKSB7XG4gICA4Olx0XHRlY2hvIFwmIzM0O0ZBSUw6ICRAXCYjMzQ7XG4gICA5Olx0XHQoKFJDJiM0MzsmIzQzOykpXG4gIDEwOlx0XHQkTkZUIGxpc3QgcnVsZXNldFxuICAxMTpcdH1cbiAgMTI6XHRcbiAgMTM6XHQkTkZUIGFkZCB0YWJsZSBuZXRkZXYgdCB8fCBkaWUgXCYjMzQ7YWRkIHRhYmxlIGZhaWxlZFwmIzM0O1xuICAxNDpcdFxuICAxNTpcdGRvX2NoYWluKCkgeyAjIChjbWQsIGRldnNwZWMsIHRocClcbiAgMTY6XHRcdCRORlQgJDEgY2hhaW4gbmV0ZGV2IHQgYyBcJiMzNDt7ICQzIGRldmljZXMgPSB7ICQyIH07IH1cJiMzNDtcbiAgMTc6XHR9XG4gIDE4Olx0XG4gIDE5Olx0dGhwPSYjMzk7dHlwZSBmaWx0ZXIgaG9vayBpbmdyZXNzIHByaW9yaXR5IDA7JiMzOTtcbiAgMjA6XHRcbiAgMjE6XHRkb19jaGFpbiBhZGQgZm9vKiBcJiMzNDskdGhwXCYjMzQ7IHx8IGRpZSBcJiMzNDtpbml0aWFsIGFkZCBjaGFpbiBmYWlsZWRcJiMzNDtcbiAgMjI6XHRkb19jaGFpbiBjcmVhdGUgZm9vKiBcJiMzNDskdGhwXCYjMzQ7IFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBjaGFpbiBhbGxvd2VkXCYjMzQ7XG4gIDIzOlx0ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4gIDI0Olx0XG4gIDI1Olx0ZG9fY2hhaW4gYWRkIFwmIzM0O2JhciosIGJhcipcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcJiMzNDtcbiAgMjY6XHRkb19jaGFpbiBhZGQgXCYjMzQ7YmFyLCBiYXJcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkXCYjMzQ7XG4gIDI3Olx0XG4gIDI4Olx0ZG9fY2hhaW4gYWRkIGZvbyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIG5vbi13aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDI5Olx0ZG9fY2hhaW4gYWRkIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuICAzMDpcdGRvX2NoYWluIGFkZCBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDMxOlx0XG4gIDMyOlx0IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdFxuICAzMzpcdFxuICAzNDpcdGRvX2NoYWluIGRlbGV0ZSBmb28gXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkZWxldGUgbm9uLXdpbGRjYXJkIGhvb2sgYWxsb3dlZFwmIzM0O1xuICAzNTpcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwmIzM0O1xuICAzNjpcdFxuICAzNzpcdGRvX2NoYWluIGRlbGV0ZSBmbyogXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkZWxldGUgc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDM4Olx0ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4gIDM5Olx0XG4gIDQwOlx0ZG9fY2hhaW4gZGVsZXRlIGZvb28qIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZGVsZXRlIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDQxOlx0ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4gIDQyOlx0XG4gIDQzOlx0ZG9fY2hhaW4gZGVsZXRlIGZvbyogfHwgZGllIFwmIzM0O2RlbGV0ZSBpbml0aWFsIGNoYWluIGhvb2sgZmFpbGVkXCYjMzQ7XG4gIDQ0Olx0XG4gIDQ1Olx0ZXhpdCAkUkNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAyMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTk1CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogMjIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBBc3Nlc3NtZW50KioKCk9rYXksIHNvIHRoaXMgY29tbWl0IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkmIzM5O3ZlIHRha2VuIGEgbG9vaywgYW5kIHRoZSBlbnRpcmUgY2hhbmdlIGlzIGNvbmZpbmVkIHRvIHRoZSBhZGRpdGlvbiBvZiB0d28gdGVzdCBmaWxlcyB3aXRoaW4gYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9gLiBObyBtb2RpZmljYXRpb25zIHRvIGFueSBDIGZpbGVzIG9yIGtlcm5lbCBjb2RlIOKAkyB0aGF0JiMzOTtzIHRoZSBrZXkgaGVyZS4KCk5vdywgbGV0JiMzOTtzIHJ1biB0aGlzIHRocm91Z2ggdGhlIGBXb3J0aEZ1enppbmdgIGNyaXRlcmlhLiBUaGUgZG9jdW1lbnRhdGlvbiBzcGVjaWZpZXMgdGhhdCBpdCBzaG91bGQgcmV0dXJuIGBmYWxzZWAgaWYgYSBwYXRjaCAqb25seSogaW5jbHVkZXMgY2hhbmdlcyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLiBBbmQgaW1wb3J0YW50bHk6IGl0IGFsc28gcmV0dXJucyBmYWxzZSBpZiBpdCBpbmNsdWRlcyB0ZXN0Y2FzZXMhIElmIGl0IHRvdWNoZXMgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMgdGhlbiB0aGUgc2VhcmNoIHRvb2xzIGNvbWUgb3V0IHRvIGVuc3VyZSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQuCgpHaXZlbiB0aGF0IHRoaXMgcGF0Y2ggKmV4Y2x1c2l2ZWx5KiBtb2RpZmllcyB0aGVzZSB0ZXN0IHNjcmlwdHMgdW5kZXIgYHRlc3RzL3NoZWxsL2AsIGFuZCBkb2VzbiYjMzk7dCB0b3VjaCBhbnkga2VybmVsIGxvZ2ljIG9yIGNvZGUgaXRzZWxmLCB0aGUgYW5zd2VyIGlzIGNsZWFyOiBgV29ydGhGdXp6aW5nYCBpcyB1bmVxdWl2b2NhbGx5IGBmYWxzZWAuCgpBbHJpZ2h0LCB0aW1lIHRvIHByZXBhcmUgdGhlIGBzZXQtcmVzdWx0c2AgY2FsbC4gSSBuZWVkIHRvIHBvcHVsYXRlIHRoZSBmb2xsb3dpbmc6CgoqICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWAKKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gIChlbXB0eSBsaXN0LCBhcyB0aGVyZSYjMzk7cyBubyBmb2N1cyBoZXJlKQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChhbHNvIGVtcHR5LCBzYW1lIHJlYXNvbmluZykKKiAgIGBSZWFzb25pbmdgOiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgc2hlbGwgdGVzdGNhc2VzIHVuZGVyIHRlc3RzL3NoZWxsLyBhbmQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUuJiMzNDsKCldpdGggdGhhdCBpbmZvcm1hdGlvbiBzZXQsIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwgaXMgcmVhZHkgdG8gZ28uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMjE6NDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDIwOjUwOjUxLjEyODIwNjQzM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwOTQxOTgyMTMwMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgdGVzdCBzY3JpcHRzIHVuZGVyIHRlc3RzL3NoZWxsLyBhbmQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgb3IgZnVuY3Rpb25hbCBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMDo1MDo1MS4xMjgyMTEzMDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NTU3ODQ1MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDI3IDIwOjUwOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tcXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjEzODFmNGJlMmE1ZjFcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tcXG5AQCAtMCwwICsxLDQ1IEBAXFxuKyMhL2Jpbi9iYXNoXFxuK1xcbisjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfaWZuYW1lX2Jhc2VkX2hvb2tzKVxcbitcXG4rUkM9MFxcbitcXG4rZGllKCkge1xcbitcXHRlY2hvIFxcXCJGQUlMOiAkQFxcXCJcXG4rXFx0KChSQysrKSlcXG4rXFx0JE5GVCBsaXN0IHJ1bGVzZXRcXG4rfVxcbitcXG4rJE5GVCBhZGQgdGFibGUgbmV0ZGV2IHQgfHwgZGllIFxcXCJhZGQgdGFibGUgZmFpbGVkXFxcIlxcbitcXG4rZG9fY2hhaW4oKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKVxcbitcXHQkTkZUICQxIGNoYWluIG5ldGRldiB0IGMgXFxcInsgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVxcXCJcXG4rfVxcbitcXG4rdGhwPSd0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsnXFxuK1xcbitkb19jaGFpbiBhZGQgZm9vKiBcXFwiJHRocFxcXCIgfHwgZGllIFxcXCJpbml0aWFsIGFkZCBjaGFpbiBmYWlsZWRcXFwiXFxuK2RvX2NoYWluIGNyZWF0ZSBmb28qIFxcXCIkdGhwXFxcIiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImR1cGxpY2F0ZWQgY3JlYXRlIGluaXRpYWwgY2hhaW4gYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGFkZCBcXFwiYmFyKiwgYmFyKlxcXCIgXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcXFwiXFxuK2RvX2NoYWluIGFkZCBcXFwiYmFyLCBiYXJcXFwiIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZHVwbGljYXRlIGRldmljZSBhZGQgYWxsb3dlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGFkZCBmb28gXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcInVwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvb28qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwidXBkYXRlIHdpdGggbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcXFwiXFxuK1xcbisjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XFxuK1xcbitkb19jaGFpbiBkZWxldGUgZm9vIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcXFwiXFxuK2RvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuK1xcbitkb19jaGFpbiBkZWxldGUgZm8qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGRlbGV0ZSBmb29vKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGRlbGV0ZSBmb28qIHx8IGRpZSBcXFwiZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWRcXFwiXFxuK1xcbitleGl0ICRSQ1xcbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9va1xcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYTY3YzhiZmZlMDY4N1xcbi0tLSAvZGV2L251bGxcXG4rKysgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rXFxuQEAgLTAsMCArMSw0NSBAQFxcbisjIS9iaW4vYmFzaFxcbitcXG4rIyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcXG4rXFxuK1JDPTBcXG4rXFxuK2RpZSgpIHtcXG4rXFx0ZWNobyBcXFwiRkFJTDogJEBcXFwiXFxuK1xcdCgoUkMrKykpXFxuK1xcdCRORlQgbGlzdCBydWxlc2V0XFxuK31cXG4rXFxuKyRORlQgYWRkIHRhYmxlIHQgfHwgZGllIFxcXCJhZGQgdGFibGUgZmFpbGVkXFxcIlxcbitcXG4rZG9fZnQoKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKVxcbitcXHQkTkZUICQxIGZsb3d0YWJsZSB0IGZ0IFxcXCJ7ICQzIGRldmljZXMgPSB7ICQyIH07IH1cXFwiXFxuK31cXG4rXFxuK3RocD0naG9vayBpbmdyZXNzIHByaW9yaXR5IDA7J1xcbitcXG4rZG9fZnQgYWRkIGZvbyogXFxcIiR0aHBcXFwiIHx8IGRpZSBcXFwiaW5pdGlhbCBhZGQgZmxvd3RhYmxlIGZhaWxlZFxcXCJcXG4rZG9fZnQgY3JlYXRlIGZvbyogXFxcIiR0aHBcXFwiIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBmbG93dGFibGUgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2Z0IGFkZCBcXFwiYmFyKiwgYmFyKlxcXCIgXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcXFwiXFxuK2RvX2Z0IGFkZCBcXFwiYmFyLCBiYXJcXFwiIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZHVwbGljYXRlIGRldmljZSBhZGQgYWxsb3dlZFxcXCJcXG4rXFxuK2RvX2Z0IGFkZCBmb28gXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcInVwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvb28qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwidXBkYXRlIHdpdGggbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcXFwiXFxuK1xcbisjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XFxuK1xcbitkb19mdCBkZWxldGUgZm9vIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcXFwiXFxuK2RvX2Z0IGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuK1xcbitkb19mdCBkZWxldGUgZm8qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2Z0IGRlbGV0ZSBmb29vKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2Z0IGRlbGV0ZSBmb28qIHx8IGRpZSBcXFwiZGVsZXRlIGluaXRpYWwgZmxvd3RhYmxlIGhvb2sgZmFpbGVkXFxcIlxcbitcXG4rZXhpdCAkUkNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjA6NTA6NTIuNTg0NzE3OTUxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozMDkyNzQxNjg0NzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgdGVzdCBzY3JpcHRzIHVuZGVyIHRlc3RzL3NoZWxsLyBhbmQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgb3IgZnVuY3Rpb25hbCBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjcgMjA6NTA6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9vayBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uMTM4MWY0YmUyYTVmMVxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tcbkBAIC0wLDAgKzEsNDUgQEBcbisjIS9iaW4vYmFzaFxuK1xuKyMgTkZUX1RFU1RfUkVRVUlSRVMoTkZUX1RFU1RfSEFWRV9pZm5hbWVfYmFzZWRfaG9va3MpXG4rXG4rUkM9MFxuK1xuK2RpZSgpIHtcbitcdGVjaG8gXCJGQUlMOiAkQFwiXG4rXHQoKFJDKyspKVxuK1x0JE5GVCBsaXN0IHJ1bGVzZXRcbit9XG4rXG4rJE5GVCBhZGQgdGFibGUgbmV0ZGV2IHQgfHwgZGllIFwiYWRkIHRhYmxlIGZhaWxlZFwiXG4rXG4rZG9fY2hhaW4oKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKVxuK1x0JE5GVCAkMSBjaGFpbiBuZXRkZXYgdCBjIFwieyAkMyBkZXZpY2VzID0geyAkMiB9OyB9XCJcbit9XG4rXG4rdGhwPSd0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsnXG4rXG4rZG9fY2hhaW4gYWRkIGZvbyogXCIkdGhwXCIgfHwgZGllIFwiaW5pdGlhbCBhZGQgY2hhaW4gZmFpbGVkXCJcbitkb19jaGFpbiBjcmVhdGUgZm9vKiBcIiR0aHBcIiBcdTAwMjZcdTAwMjYgZGllIFwiZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBjaGFpbiBhbGxvd2VkXCJcbitkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwiXG4rXG4rZG9fY2hhaW4gYWRkIFwiYmFyKiwgYmFyKlwiIFx1MDAyNlx1MDAyNiBkaWUgXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcIlxuK2RvX2NoYWluIGFkZCBcImJhciwgYmFyXCIgXHUwMDI2XHUwMDI2IGRpZSBcImR1cGxpY2F0ZSBkZXZpY2UgYWRkIGFsbG93ZWRcIlxuK1xuK2RvX2NoYWluIGFkZCBmb28gXHUwMDI2XHUwMDI2IGRpZSBcInVwZGF0ZSB3aXRoIG5vbi13aWxkY2FyZCBhbGxvd2VkXCJcbitkb19jaGFpbiBhZGQgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCJ1cGRhdGUgd2l0aCBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK2RvX2NoYWluIGFkZCBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwidXBkYXRlIHdpdGggbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK1xuKyMgYWRkIGFmdGVyIHRlc3RpbmcgZGVsZXRlIGluIGNhc2UgZGVsZXRpb24gaXMgYWxsb3dlZCB3aGVuIGl0IHNob3VsZCBub3Rcbitcbitkb19jaGFpbiBkZWxldGUgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCJkZWxldGUgbm9uLXdpbGRjYXJkIGhvb2sgYWxsb3dlZFwiXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcIlxuK1xuK2RvX2NoYWluIGRlbGV0ZSBmbyogXHUwMDI2XHUwMDI2IGRpZSBcImRlbGV0ZSBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK2RvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCJcbitcbitkb19jaGFpbiBkZWxldGUgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFwiXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcIlxuK1xuK2RvX2NoYWluIGRlbGV0ZSBmb28qIHx8IGRpZSBcImRlbGV0ZSBpbml0aWFsIGNoYWluIGhvb2sgZmFpbGVkXCJcbitcbitleGl0ICRSQ1xuZGlmZiAtLWdpdCBhL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9mbG93dGFibGUvdXBkYXRlX3dpbGRjYXJkX2hvb2sgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYTY3YzhiZmZlMDY4N1xuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9va1xuQEAgLTAsMCArMSw0NSBAQFxuKyMhL2Jpbi9iYXNoXG4rXG4rIyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcbitcbitSQz0wXG4rXG4rZGllKCkge1xuK1x0ZWNobyBcIkZBSUw6ICRAXCJcbitcdCgoUkMrKykpXG4rXHQkTkZUIGxpc3QgcnVsZXNldFxuK31cbitcbiskTkZUIGFkZCB0YWJsZSB0IHx8IGRpZSBcImFkZCB0YWJsZSBmYWlsZWRcIlxuK1xuK2RvX2Z0KCkgeyAjIChjbWQsIGRldnNwZWMsIHRocClcbitcdCRORlQgJDEgZmxvd3RhYmxlIHQgZnQgXCJ7ICQzIGRldmljZXMgPSB7ICQyIH07IH1cIlxuK31cbitcbit0aHA9J2hvb2sgaW5ncmVzcyBwcmlvcml0eSAwOydcbitcbitkb19mdCBhZGQgZm9vKiBcIiR0aHBcIiB8fCBkaWUgXCJpbml0aWFsIGFkZCBmbG93dGFibGUgZmFpbGVkXCJcbitkb19mdCBjcmVhdGUgZm9vKiBcIiR0aHBcIiBcdTAwMjZcdTAwMjYgZGllIFwiZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBmbG93dGFibGUgYWxsb3dlZFwiXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcIlxuK1xuK2RvX2Z0IGFkZCBcImJhciosIGJhcipcIiBcdTAwMjZcdTAwMjYgZGllIFwiZHVwbGljYXRlIHdpbGRjYXJkIGFkZCBhbGxvd2VkXCJcbitkb19mdCBhZGQgXCJiYXIsIGJhclwiIFx1MDAyNlx1MDAyNiBkaWUgXCJkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkXCJcbitcbitkb19mdCBhZGQgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFwiXG4rZG9fZnQgYWRkIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwidXBkYXRlIHdpdGggc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCJcbitkb19mdCBhZGQgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcInVwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCJcbitcbisjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XG4rXG4rZG9fZnQgZGVsZXRlIGZvbyBcdTAwMjZcdTAwMjYgZGllIFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcIlxuK2RvX2Z0IGFkZCBmb28qIHx8IGRpZSBcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCJcbitcbitkb19mdCBkZWxldGUgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCJkZWxldGUgc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCJcbitkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwiXG4rXG4rZG9fZnQgZGVsZXRlIGZvb28qIFx1MDAyNlx1MDAyNiBkaWUgXCJkZWxldGUgbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK2RvX2Z0IGFkZCBmb28qIHx8IGRpZSBcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCJcbitcbitkb19mdCBkZWxldGUgZm9vKiB8fCBkaWUgXCJkZWxldGUgaW5pdGlhbCBmbG93dGFibGUgaG9vayBmYWlsZWRcIlxuK1xuK2V4aXQgJFJDXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMDo1MDo1Mi41ODQ3MTkwOTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyODI1MzUyNjA0OTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IFByZWxpbWluYXJ5IFRob3VnaHRzKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBpdCBzZWVtcyB0byBiZSB0b3VjaGluZyBhIGNvdXBsZSBvZiB0ZXN0IHNjcmlwdHM6IHNwZWNpZmljYWxseSwgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rYCBhbmQgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9mbG93dGFibGUvdXBkYXRlX3dpbGRjYXJkX2hvb2tgLiBKdXN0IGxvb2tpbmcgYXQgdGhlIGZpbGUgcGF0aHMsIG15IGd1ZXNzIGlzIHRoYXQgdGhlc2UgYXJlIHVzZXJzcGFjZSB0ZXN0IHNjcmlwdHMsIHBvc3NpYmx5IHJlbGF0ZWQgdG8gdGhlIG5mdGFibGVzIHRlc3Qgc3VpdGUgb3IgYSBzaW1pbGFyIGZyYW1ld29yayB3aXRoaW4gYSBsYXJnZXIgcmVwb3NpdG9yeS4gVG8gY29uZmlybSB0aGF0IGludHVpdGlvbiBhbmQgZ2V0IGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvbnRleHQsIEknbGwgbmVlZCB0byB1c2Ugc29tZSB0b29saW5nIHRvIGV4cGxvcmUgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSByZXBvc2l0b3J5IHN0cnVjdHVyZS4gTGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQgb3V0IHdpdGggYSBxdWljayBzY2FuLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDExLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMTozNzo1Ny45MzczMjY0MjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5OTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwidGVzdHNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogbnVsbCxcbiAgXCJTdWJkaXJzXCI6IFtcbiAgICBcInNoZWxsXCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6Mzc6NTcuOTM3MzY3ODQzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzgxMzc2MzIxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyB0aGUgVG9wIExldmVsKipcblxuQWxyaWdodCwgSSdtIHN0YXJ0aW5nIGF0IHRoZSB0b3AuIEJlZm9yZSBkaXZpbmcgaW4sIEkgbmVlZCB0byBnZXQgYSBsYXkgb2YgdGhlIGxhbmQuIFNvLCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayB0aGUgcm9vdCBkaXJlY3RvcnkuIFdoYXQncyB0aGUgaW5pdGlhbCBzdHJ1Y3R1cmU/IFdoYXQgY3JpdGljYWwgZmlsZXMgb3IgZm9sZGVycyBhcmUgaW1tZWRpYXRlbHkgcHJlc2VudD8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGluZGljYXRvcnMgb2YgdGhlIHN5c3RlbSdzIHB1cnBvc2Ugb3IgYXJjaGl0ZWN0dXJlIHRoYXQganVtcCBvdXQ/IFRoaXMgaXMgcHVyZWx5IGFib3V0IGdldHRpbmcgYSBoaWdoLWxldmVsLCBxdWljayBzY2FuLiBObyBuZWVkIHRvIGdvIGRlZXAgeWV0LCBqdXN0IGlkZW50aWZ5IHRoZSBwcm9taW5lbnQgZWxlbWVudHMuIFRoaXMgaW5pdGlhbCBpbnZlbnRvcnkgd2lsbCBpbmZsdWVuY2UgbXkgZGlyZWN0aW9uIGFzIEkgZm9ybXVsYXRlIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzA1LCJPdXRwdXRUb2tlbnMiOjE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDIxOjM4OjAxLjc1MTEzMzM5MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzgzNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogbnVsbCxcbiAgXCJTdWJkaXJzXCI6IFtcbiAgICBcIkRvY3VtZW50YXRpb25cIixcbiAgICBcIkxJQ0VOU0VTXCIsXG4gICAgXCJhcmNoXCIsXG4gICAgXCJibG9ja1wiLFxuICAgIFwiY2VydHNcIixcbiAgICBcImNyeXB0b1wiLFxuICAgIFwiZHJpdmVyc1wiLFxuICAgIFwiZnNcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluaXRcIixcbiAgICBcImlvX3VyaW5nXCIsXG4gICAgXCJpcGNcIixcbiAgICBcImtlcm5lbFwiLFxuICAgIFwibGliXCIsXG4gICAgXCJtbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJydXN0XCIsXG4gICAgXCJzYW1wbGVzXCIsXG4gICAgXCJzY3JpcHRzXCIsXG4gICAgXCJzZWN1cml0eVwiLFxuICAgIFwic291bmRcIixcbiAgICBcInRlc3RzXCIsXG4gICAgXCJ0b29sc1wiLFxuICAgIFwidXNyXCIsXG4gICAgXCJ2aXJ0XCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6Mzg6MDEuNzUxMjEzMjkxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjIwNDQ5OTI5OTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIFJlY2VudCBDaGFuZ2VzKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBtb2RpZmljYXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZXhhbWluZSB0aGUgYHRlc3RzL2AgZGlyZWN0b3J5IOKAkyBzZWUgd2hhdCdzIGNoYW5nZWQgdGhlcmUsIG9yIGlmIHRoZSBrZXJuZWwgaXRzZWxmIGhhcyBiZWVuIGFmZmVjdGVkLiBCdXQgaG9sZCBvbiwgYmVmb3JlIEkgZGl2ZSBpbnRvIHRoZSBmaWxlIHN5c3RlbSwgYSBxdWljayBjaGVjayBvZiB0aGUgR2l0IGxvZyBvciB0aGUgYGRpZmZgIG9mIHRoZSBIRUFEIGNvbW1pdCBpcyBwcm9iYWJseSBhIGJldHRlciBzdGFydGluZyBwb2ludCBmb3IgYSBoaWdoLWxldmVsIG92ZXJ2aWV3LiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGZpcnN0IGNsdWUuXG5cblJpZ2h0LCBsZXQncyBsb29rIGF0IGB0ZXN0cy9zaGVsbGAsIG9yIG1heWJlIHRoZXJlIGFyZSBvdGhlciBmaWxlcyBpbiB0aGUgSEVBRCBjb21taXQgdGhhdCB3ZXJlIHRvdWNoZWQuIEkgbmVlZCB0byBnZXQgdGhlIHNjb3BlIG9mIHRoaXMgdXBkYXRlLlxuXG5Ib2xkIG9uLCBJIHRoaW5rIEknbGwgdXNlIGBncmVwcGVyYCBvciBgcmVhZC1maWxlYCBvbiBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tgLCBqdXN0IHRvIG1ha2Ugc3VyZSBJJ20gemVyb2luZyBpbiBvbiB0aGUgcmlnaHQgc2VjdGlvbnMuIFRoYXQgd2lsbCBnaXZlIG1lIHRoZSBxdWlja2VzdCBhbnN3ZXIgdG8gZ2V0IGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjaGFuZ2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTk4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA2LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMTo0MTo0Mi4yMDExNDU5OTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mjk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJ0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9va1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMhL2Jpbi9iYXNoXFxuICAgMjpcXHRcXG4gICAzOlxcdCMgTkZUX1RFU1RfUkVRVUlSRVMoTkZUX1RFU1RfSEFWRV9pZm5hbWVfYmFzZWRfaG9va3MpXFxuICAgNDpcXHRcXG4gICA1OlxcdFJDPTBcXG4gICA2OlxcdFxcbiAgIDc6XFx0ZGllKCkge1xcbiAgIDg6XFx0XFx0ZWNobyBcXFwiRkFJTDogJEBcXFwiXFxuICAgOTpcXHRcXHQoKFJDKyspKVxcbiAgMTA6XFx0XFx0JE5GVCBsaXN0IHJ1bGVzZXRcXG4gIDExOlxcdH1cXG4gIDEyOlxcdFxcbiAgMTM6XFx0JE5GVCBhZGQgdGFibGUgbmV0ZGV2IHQgfHwgZGllIFxcXCJhZGQgdGFibGUgZmFpbGVkXFxcIlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRkb19jaGFpbigpIHsgIyAoY21kLCBkZXZzcGVjLCB0aHApXFxuICAxNjpcXHRcXHQkTkZUICQxIGNoYWluIG5ldGRldiB0IGMgXFxcInsgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVxcXCJcXG4gIDE3OlxcdH1cXG4gIDE4OlxcdFxcbiAgMTk6XFx0dGhwPSd0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsnXFxuICAyMDpcXHRcXG4gIDIxOlxcdGRvX2NoYWluIGFkZCBmb28qIFxcXCIkdGhwXFxcIiB8fCBkaWUgXFxcImluaXRpYWwgYWRkIGNoYWluIGZhaWxlZFxcXCJcXG4gIDIyOlxcdGRvX2NoYWluIGNyZWF0ZSBmb28qIFxcXCIkdGhwXFxcIiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImR1cGxpY2F0ZWQgY3JlYXRlIGluaXRpYWwgY2hhaW4gYWxsb3dlZFxcXCJcXG4gIDIzOlxcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuICAyNDpcXHRcXG4gIDI1OlxcdGRvX2NoYWluIGFkZCBcXFwiYmFyKiwgYmFyKlxcXCIgXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcXFwiXFxuICAyNjpcXHRkb19jaGFpbiBhZGQgXFxcImJhciwgYmFyXFxcIiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImR1cGxpY2F0ZSBkZXZpY2UgYWRkIGFsbG93ZWRcXFwiXFxuICAyNzpcXHRcXG4gIDI4OlxcdGRvX2NoYWluIGFkZCBmb28gXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDI5OlxcdGRvX2NoYWluIGFkZCBmbyogXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcXFwiXFxuICAzMDpcXHRkb19jaGFpbiBhZGQgZm9vbyogXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDMxOlxcdFxcbiAgMzI6XFx0IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdFxcbiAgMzM6XFx0XFxuICAzNDpcXHRkb19jaGFpbiBkZWxldGUgZm9vIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcXFwiXFxuICAzNTpcXHRkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgXFxcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXFxcIlxcbiAgMzY6XFx0XFxuICAzNzpcXHRkb19jaGFpbiBkZWxldGUgZm8qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDM4OlxcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuICAzOTpcXHRcXG4gIDQwOlxcdGRvX2NoYWluIGRlbGV0ZSBmb29vKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDQxOlxcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuICA0MjpcXHRcXG4gIDQzOlxcdGRvX2NoYWluIGRlbGV0ZSBmb28qIHx8IGRpZSBcXFwiZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWRcXFwiXFxuICA0NDpcXHRcXG4gIDQ1OlxcdGV4aXQgJFJDXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDIxOjQxOjQyLjIwMTIxMDIxM1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQzMTI1MTYyOTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBBc3Nlc3NtZW50KipcblxuT2theSwgc28gdGhpcyBjb21taXQgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSSd2ZSB0YWtlbiBhIGxvb2ssIGFuZCB0aGUgZW50aXJlIGNoYW5nZSBpcyBjb25maW5lZCB0byB0aGUgYWRkaXRpb24gb2YgdHdvIHRlc3QgZmlsZXMgd2l0aGluIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvYC4gTm8gbW9kaWZpY2F0aW9ucyB0byBhbnkgQyBmaWxlcyBvciBrZXJuZWwgY29kZSDigJMgdGhhdCdzIHRoZSBrZXkgaGVyZS5cblxuTm93LCBsZXQncyBydW4gdGhpcyB0aHJvdWdoIHRoZSBgV29ydGhGdXp6aW5nYCBjcml0ZXJpYS4gVGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWVzIHRoYXQgaXQgc2hvdWxkIHJldHVybiBgZmFsc2VgIGlmIGEgcGF0Y2ggKm9ubHkqIGluY2x1ZGVzIGNoYW5nZXMgdG8gZG9jdW1lbnRhdGlvbiwgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4gQW5kIGltcG9ydGFudGx5OiBpdCBhbHNvIHJldHVybnMgZmFsc2UgaWYgaXQgaW5jbHVkZXMgdGVzdGNhc2VzISBJZiBpdCB0b3VjaGVzIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzIHRoZW4gdGhlIHNlYXJjaCB0b29scyBjb21lIG91dCB0byBlbnN1cmUgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLlxuXG5HaXZlbiB0aGF0IHRoaXMgcGF0Y2ggKmV4Y2x1c2l2ZWx5KiBtb2RpZmllcyB0aGVzZSB0ZXN0IHNjcmlwdHMgdW5kZXIgYHRlc3RzL3NoZWxsL2AsIGFuZCBkb2Vzbid0IHRvdWNoIGFueSBrZXJuZWwgbG9naWMgb3IgY29kZSBpdHNlbGYsIHRoZSBhbnN3ZXIgaXMgY2xlYXI6IGBXb3J0aEZ1enppbmdgIGlzIHVuZXF1aXZvY2FsbHkgYGZhbHNlYC5cblxuQWxyaWdodCwgdGltZSB0byBwcmVwYXJlIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwuIEkgbmVlZCB0byBwb3B1bGF0ZSB0aGUgZm9sbG93aW5nOlxuXG4qICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWBcbiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAoZW1wdHkgbGlzdCwgYXMgdGhlcmUncyBubyBmb2N1cyBoZXJlKVxuKiAgIGBFbmFibGVDb25maWdzYDogYFtdYCAoYWxzbyBlbXB0eSwgc2FtZSByZWFzb25pbmcpXG4qICAgYFJlYXNvbmluZ2A6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBzaGVsbCB0ZXN0Y2FzZXMgdW5kZXIgdGVzdHMvc2hlbGwvIGFuZCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZS5cIlxuXG5XaXRoIHRoYXQgaW5mb3JtYXRpb24gc2V0LCB0aGUgYHNldC1yZXN1bHRzYCBjYWxsIGlzIHJlYWR5IHRvIGdvLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTk1LCJPdXRwdXRUb2tlbnMiOjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6NDI6MjUuMzI2Mzc1NzE3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6NDI6MjUuMzI2NDA1MDA3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdb7jf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-27 20:49:21 +0000 UTC FinishedAt: 2026-08-27 21:42:26 +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+CgkJCTx0ZD4yMDI2LzA4LzI3IDIwOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NTFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7JiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyB0ZXN0IHNjcmlwdHMgdW5kZXIgdGVzdHMvc2hlbGwvIGFuZCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBvciBmdW5jdGlvbmFsIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMjA6NTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjcgMjA6NTA6NDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2sgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9va1xubmV3IGZpbGUgbW9kZSAxMDA3NTVcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjEzODFmNGJlMmE1ZjFcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rXG5AQCAtMCwwICYjNDM7MSw0NSBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MztcbiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcbiYjNDM7XG4mIzQzO1JDPTBcbiYjNDM7XG4mIzQzO2RpZSgpIHtcbiYjNDM7XHRlY2hvIFwmIzM0O0ZBSUw6ICRAXCYjMzQ7XG4mIzQzO1x0KChSQyYjNDM7JiM0MzspKVxuJiM0MztcdCRORlQgbGlzdCBydWxlc2V0XG4mIzQzO31cbiYjNDM7XG4mIzQzOyRORlQgYWRkIHRhYmxlIG5ldGRldiB0IHx8IGRpZSBcJiMzNDthZGQgdGFibGUgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbigpIHsgIyAoY21kLCBkZXZzcGVjLCB0aHApXG4mIzQzO1x0JE5GVCAkMSBjaGFpbiBuZXRkZXYgdCBjIFwmIzM0O3sgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzt0aHA9JiMzOTt0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsmIzM5O1xuJiM0MztcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogXCYjMzQ7JHRocFwmIzM0OyB8fCBkaWUgXCYjMzQ7aW5pdGlhbCBhZGQgY2hhaW4gZmFpbGVkXCYjMzQ7XG4mIzQzO2RvX2NoYWluIGNyZWF0ZSBmb28qIFwmIzM0OyR0aHBcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGVkIGNyZWF0ZSBpbml0aWFsIGNoYWluIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBhZGQgXCYjMzQ7YmFyKiwgYmFyKlwmIzM0OyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2R1cGxpY2F0ZSB3aWxkY2FyZCBhZGQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19jaGFpbiBhZGQgXCYjMzQ7YmFyLCBiYXJcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBhZGQgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7dXBkYXRlIHdpdGggbm9uLXdpbGRjYXJkIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19jaGFpbiBhZGQgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDt1cGRhdGUgd2l0aCBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0MztcbiYjNDM7IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdFxuJiM0MztcbiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvbyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2RlbGV0ZSBub24td2lsZGNhcmQgaG9vayBhbGxvd2VkXCYjMzQ7XG4mIzQzO2RvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwmIzM0O1xuJiM0MztcbiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2RlbGV0ZSBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBkZWxldGUgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkZWxldGUgbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19jaGFpbiBkZWxldGUgZm9vKiB8fCBkaWUgXCYjMzQ7ZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2V4aXQgJFJDXG5kaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9vayBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9mbG93dGFibGUvdXBkYXRlX3dpbGRjYXJkX2hvb2tcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5hNjdjOGJmZmUwNjg3XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rXG5AQCAtMCwwICYjNDM7MSw0NSBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MztcbiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcbiYjNDM7XG4mIzQzO1JDPTBcbiYjNDM7XG4mIzQzO2RpZSgpIHtcbiYjNDM7XHRlY2hvIFwmIzM0O0ZBSUw6ICRAXCYjMzQ7XG4mIzQzO1x0KChSQyYjNDM7JiM0MzspKVxuJiM0MztcdCRORlQgbGlzdCBydWxlc2V0XG4mIzQzO31cbiYjNDM7XG4mIzQzOyRORlQgYWRkIHRhYmxlIHQgfHwgZGllIFwmIzM0O2FkZCB0YWJsZSBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0KCkgeyAjIChjbWQsIGRldnNwZWMsIHRocClcbiYjNDM7XHQkTkZUICQxIGZsb3d0YWJsZSB0IGZ0IFwmIzM0O3sgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzt0aHA9JiMzOTtob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsmIzM5O1xuJiM0MztcbiYjNDM7ZG9fZnQgYWRkIGZvbyogXCYjMzQ7JHRocFwmIzM0OyB8fCBkaWUgXCYjMzQ7aW5pdGlhbCBhZGQgZmxvd3RhYmxlIGZhaWxlZFwmIzM0O1xuJiM0Mztkb19mdCBjcmVhdGUgZm9vKiBcJiMzNDskdGhwXCYjMzQ7IFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBmbG93dGFibGUgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGFkZCBcJiMzNDtiYXIqLCBiYXIqXCYjMzQ7IFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZHVwbGljYXRlIHdpbGRjYXJkIGFkZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO2RvX2Z0IGFkZCBcJiMzNDtiYXIsIGJhclwmIzM0OyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2R1cGxpY2F0ZSBkZXZpY2UgYWRkIGFsbG93ZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGFkZCBmb28gXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDt1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7dXBkYXRlIHdpdGggc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO2RvX2Z0IGFkZCBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4mIzQzO1xuJiM0MzsjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XG4mIzQzO1xuJiM0Mztkb19mdCBkZWxldGUgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcJiMzNDtcbiYjNDM7ZG9fZnQgYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4mIzQzO1xuJiM0Mztkb19mdCBkZWxldGUgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGRlbGV0ZSBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O2RlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2RvX2Z0IGRlbGV0ZSBmb28qIHx8IGRpZSBcJiMzNDtkZWxldGUgaW5pdGlhbCBmbG93dGFibGUgaG9vayBmYWlsZWRcJiMzNDtcbiYjNDM7XG4mIzQzO2V4aXQgJFJDXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMjA6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NTFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyB0ZXN0IHNjcmlwdHMgdW5kZXIgdGVzdHMvc2hlbGwvIGFuZCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBvciBmdW5jdGlvbmFsIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgMjcgMjA6NTA6NDkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9vayBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAuLjEzODFmNGJlMmE1ZjEKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9vawpAQCAtMCwwICYjNDM7MSw0NSBAQAomIzQzOyMhL2Jpbi9iYXNoCiYjNDM7CiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcykKJiM0MzsKJiM0MztSQz0wCiYjNDM7CiYjNDM7ZGllKCkgewomIzQzOwllY2hvICYjMzQ7RkFJTDogJEAmIzM0OwomIzQzOwkoKFJDJiM0MzsmIzQzOykpCiYjNDM7CSRORlQgbGlzdCBydWxlc2V0CiYjNDM7fQomIzQzOwomIzQzOyRORlQgYWRkIHRhYmxlIG5ldGRldiB0IHx8IGRpZSAmIzM0O2FkZCB0YWJsZSBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2RvX2NoYWluKCkgeyAjIChjbWQsIGRldnNwZWMsIHRocCkKJiM0MzsJJE5GVCAkMSBjaGFpbiBuZXRkZXYgdCBjICYjMzQ7eyAkMyBkZXZpY2VzID0geyAkMiB9OyB9JiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGhwPSYjMzk7dHlwZSBmaWx0ZXIgaG9vayBpbmdyZXNzIHByaW9yaXR5IDA7JiMzOTsKJiM0MzsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiAmIzM0OyR0aHAmIzM0OyB8fCBkaWUgJiMzNDtpbml0aWFsIGFkZCBjaGFpbiBmYWlsZWQmIzM0OwomIzQzO2RvX2NoYWluIGNyZWF0ZSBmb28qICYjMzQ7JHRocCYjMzQ7ICZhbXA7JmFtcDsgZGllICYjMzQ7ZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBjaGFpbiBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gYWRkICYjMzQ7YmFyKiwgYmFyKiYjMzQ7ICZhbXA7JmFtcDsgZGllICYjMzQ7ZHVwbGljYXRlIHdpbGRjYXJkIGFkZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgJiMzNDtiYXIsIGJhciYjMzQ7ICZhbXA7JmFtcDsgZGllICYjMzQ7ZHVwbGljYXRlIGRldmljZSBhZGQgYWxsb3dlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyAmYW1wOyZhbXA7IGRpZSAmIzM0O3VwZGF0ZSB3aXRoIG5vbi13aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm8qICZhbXA7JmFtcDsgZGllICYjMzQ7dXBkYXRlIHdpdGggc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vbyogJmFtcDsmYW1wOyBkaWUgJiMzNDt1cGRhdGUgd2l0aCBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZCYjMzQ7CiYjNDM7CiYjNDM7IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdAomIzQzOwomIzQzO2RvX2NoYWluIGRlbGV0ZSBmb28gJmFtcDsmYW1wOyBkaWUgJiMzNDtkZWxldGUgbm9uLXdpbGRjYXJkIGhvb2sgYWxsb3dlZCYjMzQ7CiYjNDM7ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllICYjMzQ7ZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2RvX2NoYWluIGRlbGV0ZSBmbyogJmFtcDsmYW1wOyBkaWUgJiMzNDtkZWxldGUgc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvb28qICZhbXA7JmFtcDsgZGllICYjMzQ7ZGVsZXRlIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0Mztkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fY2hhaW4gZGVsZXRlIGZvbyogfHwgZGllICYjMzQ7ZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2V4aXQgJFJDCmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9vawpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwLi5hNjdjOGJmZmUwNjg3Ci0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9vawpAQCAtMCwwICYjNDM7MSw0NSBAQAomIzQzOyMhL2Jpbi9iYXNoCiYjNDM7CiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcykKJiM0MzsKJiM0MztSQz0wCiYjNDM7CiYjNDM7ZGllKCkgewomIzQzOwllY2hvICYjMzQ7RkFJTDogJEAmIzM0OwomIzQzOwkoKFJDJiM0MzsmIzQzOykpCiYjNDM7CSRORlQgbGlzdCBydWxlc2V0CiYjNDM7fQomIzQzOwomIzQzOyRORlQgYWRkIHRhYmxlIHQgfHwgZGllICYjMzQ7YWRkIHRhYmxlIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fZnQoKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKQomIzQzOwkkTkZUICQxIGZsb3d0YWJsZSB0IGZ0ICYjMzQ7eyAkMyBkZXZpY2VzID0geyAkMiB9OyB9JiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGhwPSYjMzk7aG9vayBpbmdyZXNzIHByaW9yaXR5IDA7JiMzOTsKJiM0MzsKJiM0Mztkb19mdCBhZGQgZm9vKiAmIzM0OyR0aHAmIzM0OyB8fCBkaWUgJiMzNDtpbml0aWFsIGFkZCBmbG93dGFibGUgZmFpbGVkJiMzNDsKJiM0Mztkb19mdCBjcmVhdGUgZm9vKiAmIzM0OyR0aHAmIzM0OyAmYW1wOyZhbXA7IGRpZSAmIzM0O2R1cGxpY2F0ZWQgY3JlYXRlIGluaXRpYWwgZmxvd3RhYmxlIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb28qIHx8IGRpZSAmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBhZGQgJiMzNDtiYXIqLCBiYXIqJiMzNDsgJmFtcDsmYW1wOyBkaWUgJiMzNDtkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCAmIzM0O2JhciwgYmFyJiMzNDsgJmFtcDsmYW1wOyBkaWUgJiMzNDtkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBhZGQgZm9vICZhbXA7JmFtcDsgZGllICYjMzQ7dXBkYXRlIHdpdGggbm9uLXdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmbyogJmFtcDsmYW1wOyBkaWUgJiMzNDt1cGRhdGUgd2l0aCBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb29vKiAmYW1wOyZhbXA7IGRpZSAmIzM0O3VwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkJiMzNDsKJiM0MzsKJiM0MzsjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90CiYjNDM7CiYjNDM7ZG9fZnQgZGVsZXRlIGZvbyAmYW1wOyZhbXA7IGRpZSAmIzM0O2RlbGV0ZSBub24td2lsZGNhcmQgaG9vayBhbGxvd2VkJiMzNDsKJiM0Mztkb19mdCBhZGQgZm9vKiB8fCBkaWUgJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZCYjMzQ7CiYjNDM7CiYjNDM7ZG9fZnQgZGVsZXRlIGZvKiAmYW1wOyZhbXA7IGRpZSAmIzM0O2RlbGV0ZSBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb28qIHx8IGRpZSAmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBkZWxldGUgZm9vbyogJmFtcDsmYW1wOyBkaWUgJiMzNDtkZWxldGUgbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWQmIzM0OwomIzQzO2RvX2Z0IGFkZCBmb28qIHx8IGRpZSAmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkJiMzNDsKJiM0MzsKJiM0Mztkb19mdCBkZWxldGUgZm9vKiB8fCBkaWUgJiMzNDtkZWxldGUgaW5pdGlhbCBmbG93dGFibGUgaG9vayBmYWlsZWQmIzM0OwomIzQzOwomIzQzO2V4aXQgJFJDCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIwOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT40N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDExCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogOTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogUHJlbGltaW5hcnkgVGhvdWdodHMqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgaXQgc2VlbXMgdG8gYmUgdG91Y2hpbmcgYSBjb3VwbGUgb2YgdGVzdCBzY3JpcHRzOiBzcGVjaWZpY2FsbHksIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9va2AgYW5kIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rYC4gSnVzdCBsb29raW5nIGF0IHRoZSBmaWxlIHBhdGhzLCBteSBndWVzcyBpcyB0aGF0IHRoZXNlIGFyZSB1c2Vyc3BhY2UgdGVzdCBzY3JpcHRzLCBwb3NzaWJseSByZWxhdGVkIHRvIHRoZSBuZnRhYmxlcyB0ZXN0IHN1aXRlIG9yIGEgc2ltaWxhciBmcmFtZXdvcmsgd2l0aGluIGEgbGFyZ2VyIHJlcG9zaXRvcnkuIFRvIGNvbmZpcm0gdGhhdCBpbnR1aXRpb24gYW5kIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb250ZXh0LCBJJiMzOTtsbCBuZWVkIHRvIHVzZSBzb21lIHRvb2xpbmcgdG8gZXhwbG9yZSB0aGUgc3Vycm91bmRpbmcgY29kZSBhbmQgdGhlIHJlcG9zaXRvcnkgc3RydWN0dXJlLiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQgb3V0IHdpdGggYSBxdWljayBzY2FuLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O3Rlc3RzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IG51bGwsCiAgJiMzNDtTdWJkaXJzJiMzNDs6IFsKICAgICYjMzQ7c2hlbGwmIzM0OwogIF0KfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMDUKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBOYXZpZ2F0aW5nIHRoZSBUb3AgTGV2ZWwqKgoKQWxyaWdodCwgSSYjMzk7bSBzdGFydGluZyBhdCB0aGUgdG9wLiBCZWZvcmUgZGl2aW5nIGluLCBJIG5lZWQgdG8gZ2V0IGEgbGF5IG9mIHRoZSBsYW5kLiBTbywgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIHJvb3QgZGlyZWN0b3J5LiBXaGF0JiMzOTtzIHRoZSBpbml0aWFsIHN0cnVjdHVyZT8gV2hhdCBjcml0aWNhbCBmaWxlcyBvciBmb2xkZXJzIGFyZSBpbW1lZGlhdGVseSBwcmVzZW50PyBBcmUgdGhlcmUgYW55IG9idmlvdXMgaW5kaWNhdG9ycyBvZiB0aGUgc3lzdGVtJiMzOTtzIHB1cnBvc2Ugb3IgYXJjaGl0ZWN0dXJlIHRoYXQganVtcCBvdXQ/IFRoaXMgaXMgcHVyZWx5IGFib3V0IGdldHRpbmcgYSBoaWdoLWxldmVsLCBxdWljayBzY2FuLiBObyBuZWVkIHRvIGdvIGRlZXAgeWV0LCBqdXN0IGlkZW50aWZ5IHRoZSBwcm9taW5lbnQgZWxlbWVudHMuIFRoaXMgaW5pdGlhbCBpbnZlbnRvcnkgd2lsbCBpbmZsdWVuY2UgbXkgZGlyZWN0aW9uIGFzIEkgZm9ybXVsYXRlIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBudWxsLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O0RvY3VtZW50YXRpb24mIzM0OywKICAgICYjMzQ7TElDRU5TRVMmIzM0OywKICAgICYjMzQ7YXJjaCYjMzQ7LAogICAgJiMzNDtibG9jayYjMzQ7LAogICAgJiMzNDtjZXJ0cyYjMzQ7LAogICAgJiMzNDtjcnlwdG8mIzM0OywKICAgICYjMzQ7ZHJpdmVycyYjMzQ7LAogICAgJiMzNDtmcyYjMzQ7LAogICAgJiMzNDtpbmNsdWRlJiMzNDssCiAgICAmIzM0O2luaXQmIzM0OywKICAgICYjMzQ7aW9fdXJpbmcmIzM0OywKICAgICYjMzQ7aXBjJiMzNDssCiAgICAmIzM0O2tlcm5lbCYjMzQ7LAogICAgJiMzNDtsaWImIzM0OywKICAgICYjMzQ7bW0mIzM0OywKICAgICYjMzQ7bmV0JiMzNDssCiAgICAmIzM0O3J1c3QmIzM0OywKICAgICYjMzQ7c2FtcGxlcyYjMzQ7LAogICAgJiMzNDtzY3JpcHRzJiMzNDssCiAgICAmIzM0O3NlY3VyaXR5JiMzNDssCiAgICAmIzM0O3NvdW5kJiMzNDssCiAgICAmIzM0O3Rlc3RzJiMzNDssCiAgICAmIzM0O3Rvb2xzJiMzNDssCiAgICAmIzM0O3VzciYjMzQ7LAogICAgJiMzNDt2aXJ0JiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAyMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTk4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIFJlY2VudCBDaGFuZ2VzKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlc2UgbW9kaWZpY2F0aW9ucy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGV4YW1pbmUgdGhlIGB0ZXN0cy9gIGRpcmVjdG9yeSDigJMgc2VlIHdoYXQmIzM5O3MgY2hhbmdlZCB0aGVyZSwgb3IgaWYgdGhlIGtlcm5lbCBpdHNlbGYgaGFzIGJlZW4gYWZmZWN0ZWQuIEJ1dCBob2xkIG9uLCBiZWZvcmUgSSBkaXZlIGludG8gdGhlIGZpbGUgc3lzdGVtLCBhIHF1aWNrIGNoZWNrIG9mIHRoZSBHaXQgbG9nIG9yIHRoZSBgZGlmZmAgb2YgdGhlIEhFQUQgY29tbWl0IGlzIHByb2JhYmx5IGEgYmV0dGVyIHN0YXJ0aW5nIHBvaW50IGZvciBhIGhpZ2gtbGV2ZWwgb3ZlcnZpZXcuIFRoYXQgd2lsbCBnaXZlIG1lIGEgZmlyc3QgY2x1ZS4KClJpZ2h0LCBsZXQmIzM5O3MgbG9vayBhdCBgdGVzdHMvc2hlbGxgLCBvciBtYXliZSB0aGVyZSBhcmUgb3RoZXIgZmlsZXMgaW4gdGhlIEhFQUQgY29tbWl0IHRoYXQgd2VyZSB0b3VjaGVkLiBJIG5lZWQgdG8gZ2V0IHRoZSBzY29wZSBvZiB0aGlzIHVwZGF0ZS4KCkhvbGQgb24sIEkgdGhpbmsgSSYjMzk7bGwgdXNlIGBncmVwcGVyYCBvciBgcmVhZC1maWxlYCBvbiBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tgLCBqdXN0IHRvIG1ha2Ugc3VyZSBJJiMzOTttIHplcm9pbmcgaW4gb24gdGhlIHJpZ2h0IHNlY3Rpb25zLiBUaGF0IHdpbGwgZ2l2ZSBtZSB0aGUgcXVpY2tlc3QgYW5zd2VyIHRvIGdldCBhIGdvb2QgdW5kZXJzdGFuZGluZyBvZiB0aGUgY2hhbmdlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAyMTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyEvYmluL2Jhc2hcbiAgIDI6XHRcbiAgIDM6XHQjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfaWZuYW1lX2Jhc2VkX2hvb2tzKVxuICAgNDpcdFxuICAgNTpcdFJDPTBcbiAgIDY6XHRcbiAgIDc6XHRkaWUoKSB7XG4gICA4Olx0XHRlY2hvIFwmIzM0O0ZBSUw6ICRAXCYjMzQ7XG4gICA5Olx0XHQoKFJDJiM0MzsmIzQzOykpXG4gIDEwOlx0XHQkTkZUIGxpc3QgcnVsZXNldFxuICAxMTpcdH1cbiAgMTI6XHRcbiAgMTM6XHQkTkZUIGFkZCB0YWJsZSBuZXRkZXYgdCB8fCBkaWUgXCYjMzQ7YWRkIHRhYmxlIGZhaWxlZFwmIzM0O1xuICAxNDpcdFxuICAxNTpcdGRvX2NoYWluKCkgeyAjIChjbWQsIGRldnNwZWMsIHRocClcbiAgMTY6XHRcdCRORlQgJDEgY2hhaW4gbmV0ZGV2IHQgYyBcJiMzNDt7ICQzIGRldmljZXMgPSB7ICQyIH07IH1cJiMzNDtcbiAgMTc6XHR9XG4gIDE4Olx0XG4gIDE5Olx0dGhwPSYjMzk7dHlwZSBmaWx0ZXIgaG9vayBpbmdyZXNzIHByaW9yaXR5IDA7JiMzOTtcbiAgMjA6XHRcbiAgMjE6XHRkb19jaGFpbiBhZGQgZm9vKiBcJiMzNDskdGhwXCYjMzQ7IHx8IGRpZSBcJiMzNDtpbml0aWFsIGFkZCBjaGFpbiBmYWlsZWRcJiMzNDtcbiAgMjI6XHRkb19jaGFpbiBjcmVhdGUgZm9vKiBcJiMzNDskdGhwXCYjMzQ7IFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBjaGFpbiBhbGxvd2VkXCYjMzQ7XG4gIDIzOlx0ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4gIDI0Olx0XG4gIDI1Olx0ZG9fY2hhaW4gYWRkIFwmIzM0O2JhciosIGJhcipcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcJiMzNDtcbiAgMjY6XHRkb19jaGFpbiBhZGQgXCYjMzQ7YmFyLCBiYXJcJiMzNDsgXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkXCYjMzQ7XG4gIDI3Olx0XG4gIDI4Olx0ZG9fY2hhaW4gYWRkIGZvbyBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIG5vbi13aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDI5Olx0ZG9fY2hhaW4gYWRkIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFwmIzM0O1xuICAzMDpcdGRvX2NoYWluIGFkZCBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwmIzM0O3VwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDMxOlx0XG4gIDMyOlx0IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdFxuICAzMzpcdFxuICAzNDpcdGRvX2NoYWluIGRlbGV0ZSBmb28gXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkZWxldGUgbm9uLXdpbGRjYXJkIGhvb2sgYWxsb3dlZFwmIzM0O1xuICAzNTpcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcJiMzNDtkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwmIzM0O1xuICAzNjpcdFxuICAzNzpcdGRvX2NoYWluIGRlbGV0ZSBmbyogXHUwMDI2XHUwMDI2IGRpZSBcJiMzNDtkZWxldGUgc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDM4Olx0ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4gIDM5Olx0XG4gIDQwOlx0ZG9fY2hhaW4gZGVsZXRlIGZvb28qIFx1MDAyNlx1MDAyNiBkaWUgXCYjMzQ7ZGVsZXRlIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCYjMzQ7XG4gIDQxOlx0ZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwmIzM0O2R1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCYjMzQ7XG4gIDQyOlx0XG4gIDQzOlx0ZG9fY2hhaW4gZGVsZXRlIGZvbyogfHwgZGllIFwmIzM0O2RlbGV0ZSBpbml0aWFsIGNoYWluIGhvb2sgZmFpbGVkXCYjMzQ7XG4gIDQ0Olx0XG4gIDQ1Olx0ZXhpdCAkUkNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAyMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTk1CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogMjIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBBc3Nlc3NtZW50KioKCk9rYXksIHNvIHRoaXMgY29tbWl0IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkmIzM5O3ZlIHRha2VuIGEgbG9vaywgYW5kIHRoZSBlbnRpcmUgY2hhbmdlIGlzIGNvbmZpbmVkIHRvIHRoZSBhZGRpdGlvbiBvZiB0d28gdGVzdCBmaWxlcyB3aXRoaW4gYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9gLiBObyBtb2RpZmljYXRpb25zIHRvIGFueSBDIGZpbGVzIG9yIGtlcm5lbCBjb2RlIOKAkyB0aGF0JiMzOTtzIHRoZSBrZXkgaGVyZS4KCk5vdywgbGV0JiMzOTtzIHJ1biB0aGlzIHRocm91Z2ggdGhlIGBXb3J0aEZ1enppbmdgIGNyaXRlcmlhLiBUaGUgZG9jdW1lbnRhdGlvbiBzcGVjaWZpZXMgdGhhdCBpdCBzaG91bGQgcmV0dXJuIGBmYWxzZWAgaWYgYSBwYXRjaCAqb25seSogaW5jbHVkZXMgY2hhbmdlcyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLiBBbmQgaW1wb3J0YW50bHk6IGl0IGFsc28gcmV0dXJucyBmYWxzZSBpZiBpdCBpbmNsdWRlcyB0ZXN0Y2FzZXMhIElmIGl0IHRvdWNoZXMgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMgdGhlbiB0aGUgc2VhcmNoIHRvb2xzIGNvbWUgb3V0IHRvIGVuc3VyZSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQuCgpHaXZlbiB0aGF0IHRoaXMgcGF0Y2ggKmV4Y2x1c2l2ZWx5KiBtb2RpZmllcyB0aGVzZSB0ZXN0IHNjcmlwdHMgdW5kZXIgYHRlc3RzL3NoZWxsL2AsIGFuZCBkb2VzbiYjMzk7dCB0b3VjaCBhbnkga2VybmVsIGxvZ2ljIG9yIGNvZGUgaXRzZWxmLCB0aGUgYW5zd2VyIGlzIGNsZWFyOiBgV29ydGhGdXp6aW5nYCBpcyB1bmVxdWl2b2NhbGx5IGBmYWxzZWAuCgpBbHJpZ2h0LCB0aW1lIHRvIHByZXBhcmUgdGhlIGBzZXQtcmVzdWx0c2AgY2FsbC4gSSBuZWVkIHRvIHBvcHVsYXRlIHRoZSBmb2xsb3dpbmc6CgoqICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWAKKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gIChlbXB0eSBsaXN0LCBhcyB0aGVyZSYjMzk7cyBubyBmb2N1cyBoZXJlKQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChhbHNvIGVtcHR5LCBzYW1lIHJlYXNvbmluZykKKiAgIGBSZWFzb25pbmdgOiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgc2hlbGwgdGVzdGNhc2VzIHVuZGVyIHRlc3RzL3NoZWxsLyBhbmQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUuJiMzNDsKCldpdGggdGhhdCBpbmZvcm1hdGlvbiBzZXQsIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwgaXMgcmVhZHkgdG8gZ28uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDIxOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMjE6NDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDIwOjUwOjUxLjEyODIwNjQzM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwOTQxOTgyMTMwMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgdGVzdCBzY3JpcHRzIHVuZGVyIHRlc3RzL3NoZWxsLyBhbmQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgb3IgZnVuY3Rpb25hbCBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMDo1MDo1MS4xMjgyMTEzMDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NTU3ODQ1MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDI3IDIwOjUwOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tcXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjEzODFmNGJlMmE1ZjFcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tcXG5AQCAtMCwwICsxLDQ1IEBAXFxuKyMhL2Jpbi9iYXNoXFxuK1xcbisjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfaWZuYW1lX2Jhc2VkX2hvb2tzKVxcbitcXG4rUkM9MFxcbitcXG4rZGllKCkge1xcbitcXHRlY2hvIFxcXCJGQUlMOiAkQFxcXCJcXG4rXFx0KChSQysrKSlcXG4rXFx0JE5GVCBsaXN0IHJ1bGVzZXRcXG4rfVxcbitcXG4rJE5GVCBhZGQgdGFibGUgbmV0ZGV2IHQgfHwgZGllIFxcXCJhZGQgdGFibGUgZmFpbGVkXFxcIlxcbitcXG4rZG9fY2hhaW4oKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKVxcbitcXHQkTkZUICQxIGNoYWluIG5ldGRldiB0IGMgXFxcInsgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVxcXCJcXG4rfVxcbitcXG4rdGhwPSd0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsnXFxuK1xcbitkb19jaGFpbiBhZGQgZm9vKiBcXFwiJHRocFxcXCIgfHwgZGllIFxcXCJpbml0aWFsIGFkZCBjaGFpbiBmYWlsZWRcXFwiXFxuK2RvX2NoYWluIGNyZWF0ZSBmb28qIFxcXCIkdGhwXFxcIiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImR1cGxpY2F0ZWQgY3JlYXRlIGluaXRpYWwgY2hhaW4gYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGFkZCBcXFwiYmFyKiwgYmFyKlxcXCIgXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcXFwiXFxuK2RvX2NoYWluIGFkZCBcXFwiYmFyLCBiYXJcXFwiIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZHVwbGljYXRlIGRldmljZSBhZGQgYWxsb3dlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGFkZCBmb28gXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcInVwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvb28qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwidXBkYXRlIHdpdGggbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcXFwiXFxuK1xcbisjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XFxuK1xcbitkb19jaGFpbiBkZWxldGUgZm9vIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcXFwiXFxuK2RvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuK1xcbitkb19jaGFpbiBkZWxldGUgZm8qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGRlbGV0ZSBmb29vKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2NoYWluIGRlbGV0ZSBmb28qIHx8IGRpZSBcXFwiZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWRcXFwiXFxuK1xcbitleGl0ICRSQ1xcbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9va1xcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYTY3YzhiZmZlMDY4N1xcbi0tLSAvZGV2L251bGxcXG4rKysgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rXFxuQEAgLTAsMCArMSw0NSBAQFxcbisjIS9iaW4vYmFzaFxcbitcXG4rIyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcXG4rXFxuK1JDPTBcXG4rXFxuK2RpZSgpIHtcXG4rXFx0ZWNobyBcXFwiRkFJTDogJEBcXFwiXFxuK1xcdCgoUkMrKykpXFxuK1xcdCRORlQgbGlzdCBydWxlc2V0XFxuK31cXG4rXFxuKyRORlQgYWRkIHRhYmxlIHQgfHwgZGllIFxcXCJhZGQgdGFibGUgZmFpbGVkXFxcIlxcbitcXG4rZG9fZnQoKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKVxcbitcXHQkTkZUICQxIGZsb3d0YWJsZSB0IGZ0IFxcXCJ7ICQzIGRldmljZXMgPSB7ICQyIH07IH1cXFwiXFxuK31cXG4rXFxuK3RocD0naG9vayBpbmdyZXNzIHByaW9yaXR5IDA7J1xcbitcXG4rZG9fZnQgYWRkIGZvbyogXFxcIiR0aHBcXFwiIHx8IGRpZSBcXFwiaW5pdGlhbCBhZGQgZmxvd3RhYmxlIGZhaWxlZFxcXCJcXG4rZG9fZnQgY3JlYXRlIGZvbyogXFxcIiR0aHBcXFwiIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBmbG93dGFibGUgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2Z0IGFkZCBcXFwiYmFyKiwgYmFyKlxcXCIgXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcXFwiXFxuK2RvX2Z0IGFkZCBcXFwiYmFyLCBiYXJcXFwiIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZHVwbGljYXRlIGRldmljZSBhZGQgYWxsb3dlZFxcXCJcXG4rXFxuK2RvX2Z0IGFkZCBmb28gXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcInVwZGF0ZSB3aXRoIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvb28qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwidXBkYXRlIHdpdGggbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcXFwiXFxuK1xcbisjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XFxuK1xcbitkb19mdCBkZWxldGUgZm9vIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcXFwiXFxuK2RvX2Z0IGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuK1xcbitkb19mdCBkZWxldGUgZm8qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2Z0IGRlbGV0ZSBmb29vKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFxcXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFxcXCJcXG4rXFxuK2RvX2Z0IGRlbGV0ZSBmb28qIHx8IGRpZSBcXFwiZGVsZXRlIGluaXRpYWwgZmxvd3RhYmxlIGhvb2sgZmFpbGVkXFxcIlxcbitcXG4rZXhpdCAkUkNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjA6NTA6NTIuNTg0NzE3OTUxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozMDkyNzQxNjg0NzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgdGVzdCBzY3JpcHRzIHVuZGVyIHRlc3RzL3NoZWxsLyBhbmQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgb3IgZnVuY3Rpb25hbCBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1YmQyMzlmNWNjNTdjOWQxZmM5ZTQxZThmOTU2YzVmZDUxYTIwMzU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjcgMjA6NTA6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9vayBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uMTM4MWY0YmUyYTVmMVxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tcbkBAIC0wLDAgKzEsNDUgQEBcbisjIS9iaW4vYmFzaFxuK1xuKyMgTkZUX1RFU1RfUkVRVUlSRVMoTkZUX1RFU1RfSEFWRV9pZm5hbWVfYmFzZWRfaG9va3MpXG4rXG4rUkM9MFxuK1xuK2RpZSgpIHtcbitcdGVjaG8gXCJGQUlMOiAkQFwiXG4rXHQoKFJDKyspKVxuK1x0JE5GVCBsaXN0IHJ1bGVzZXRcbit9XG4rXG4rJE5GVCBhZGQgdGFibGUgbmV0ZGV2IHQgfHwgZGllIFwiYWRkIHRhYmxlIGZhaWxlZFwiXG4rXG4rZG9fY2hhaW4oKSB7ICMgKGNtZCwgZGV2c3BlYywgdGhwKVxuK1x0JE5GVCAkMSBjaGFpbiBuZXRkZXYgdCBjIFwieyAkMyBkZXZpY2VzID0geyAkMiB9OyB9XCJcbit9XG4rXG4rdGhwPSd0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsnXG4rXG4rZG9fY2hhaW4gYWRkIGZvbyogXCIkdGhwXCIgfHwgZGllIFwiaW5pdGlhbCBhZGQgY2hhaW4gZmFpbGVkXCJcbitkb19jaGFpbiBjcmVhdGUgZm9vKiBcIiR0aHBcIiBcdTAwMjZcdTAwMjYgZGllIFwiZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBjaGFpbiBhbGxvd2VkXCJcbitkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwiXG4rXG4rZG9fY2hhaW4gYWRkIFwiYmFyKiwgYmFyKlwiIFx1MDAyNlx1MDAyNiBkaWUgXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcIlxuK2RvX2NoYWluIGFkZCBcImJhciwgYmFyXCIgXHUwMDI2XHUwMDI2IGRpZSBcImR1cGxpY2F0ZSBkZXZpY2UgYWRkIGFsbG93ZWRcIlxuK1xuK2RvX2NoYWluIGFkZCBmb28gXHUwMDI2XHUwMDI2IGRpZSBcInVwZGF0ZSB3aXRoIG5vbi13aWxkY2FyZCBhbGxvd2VkXCJcbitkb19jaGFpbiBhZGQgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCJ1cGRhdGUgd2l0aCBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK2RvX2NoYWluIGFkZCBmb29vKiBcdTAwMjZcdTAwMjYgZGllIFwidXBkYXRlIHdpdGggbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK1xuKyMgYWRkIGFmdGVyIHRlc3RpbmcgZGVsZXRlIGluIGNhc2UgZGVsZXRpb24gaXMgYWxsb3dlZCB3aGVuIGl0IHNob3VsZCBub3Rcbitcbitkb19jaGFpbiBkZWxldGUgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCJkZWxldGUgbm9uLXdpbGRjYXJkIGhvb2sgYWxsb3dlZFwiXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcIlxuK1xuK2RvX2NoYWluIGRlbGV0ZSBmbyogXHUwMDI2XHUwMDI2IGRpZSBcImRlbGV0ZSBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK2RvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCJcbitcbitkb19jaGFpbiBkZWxldGUgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFwiXG4rZG9fY2hhaW4gYWRkIGZvbyogfHwgZGllIFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcIlxuK1xuK2RvX2NoYWluIGRlbGV0ZSBmb28qIHx8IGRpZSBcImRlbGV0ZSBpbml0aWFsIGNoYWluIGhvb2sgZmFpbGVkXCJcbitcbitleGl0ICRSQ1xuZGlmZiAtLWdpdCBhL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9mbG93dGFibGUvdXBkYXRlX3dpbGRjYXJkX2hvb2sgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvZmxvd3RhYmxlL3VwZGF0ZV93aWxkY2FyZF9ob29rXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYTY3YzhiZmZlMDY4N1xuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2Zsb3d0YWJsZS91cGRhdGVfd2lsZGNhcmRfaG9va1xuQEAgLTAsMCArMSw0NSBAQFxuKyMhL2Jpbi9iYXNoXG4rXG4rIyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX2lmbmFtZV9iYXNlZF9ob29rcylcbitcbitSQz0wXG4rXG4rZGllKCkge1xuK1x0ZWNobyBcIkZBSUw6ICRAXCJcbitcdCgoUkMrKykpXG4rXHQkTkZUIGxpc3QgcnVsZXNldFxuK31cbitcbiskTkZUIGFkZCB0YWJsZSB0IHx8IGRpZSBcImFkZCB0YWJsZSBmYWlsZWRcIlxuK1xuK2RvX2Z0KCkgeyAjIChjbWQsIGRldnNwZWMsIHRocClcbitcdCRORlQgJDEgZmxvd3RhYmxlIHQgZnQgXCJ7ICQzIGRldmljZXMgPSB7ICQyIH07IH1cIlxuK31cbitcbit0aHA9J2hvb2sgaW5ncmVzcyBwcmlvcml0eSAwOydcbitcbitkb19mdCBhZGQgZm9vKiBcIiR0aHBcIiB8fCBkaWUgXCJpbml0aWFsIGFkZCBmbG93dGFibGUgZmFpbGVkXCJcbitkb19mdCBjcmVhdGUgZm9vKiBcIiR0aHBcIiBcdTAwMjZcdTAwMjYgZGllIFwiZHVwbGljYXRlZCBjcmVhdGUgaW5pdGlhbCBmbG93dGFibGUgYWxsb3dlZFwiXG4rZG9fZnQgYWRkIGZvbyogfHwgZGllIFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcIlxuK1xuK2RvX2Z0IGFkZCBcImJhciosIGJhcipcIiBcdTAwMjZcdTAwMjYgZGllIFwiZHVwbGljYXRlIHdpbGRjYXJkIGFkZCBhbGxvd2VkXCJcbitkb19mdCBhZGQgXCJiYXIsIGJhclwiIFx1MDAyNlx1MDAyNiBkaWUgXCJkdXBsaWNhdGUgZGV2aWNlIGFkZCBhbGxvd2VkXCJcbitcbitkb19mdCBhZGQgZm9vIFx1MDAyNlx1MDAyNiBkaWUgXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFwiXG4rZG9fZnQgYWRkIGZvKiBcdTAwMjZcdTAwMjYgZGllIFwidXBkYXRlIHdpdGggc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCJcbitkb19mdCBhZGQgZm9vbyogXHUwMDI2XHUwMDI2IGRpZSBcInVwZGF0ZSB3aXRoIGxvbmdlciB3aWxkY2FyZCBhbGxvd2VkXCJcbitcbisjIGFkZCBhZnRlciB0ZXN0aW5nIGRlbGV0ZSBpbiBjYXNlIGRlbGV0aW9uIGlzIGFsbG93ZWQgd2hlbiBpdCBzaG91bGQgbm90XG4rXG4rZG9fZnQgZGVsZXRlIGZvbyBcdTAwMjZcdTAwMjYgZGllIFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcIlxuK2RvX2Z0IGFkZCBmb28qIHx8IGRpZSBcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCJcbitcbitkb19mdCBkZWxldGUgZm8qIFx1MDAyNlx1MDAyNiBkaWUgXCJkZWxldGUgc2hvcnRlciB3aWxkY2FyZCBhbGxvd2VkXCJcbitkb19mdCBhZGQgZm9vKiB8fCBkaWUgXCJkdXBsaWNhdGVkIGhvb2sgYWRkIGZhaWxlZFwiXG4rXG4rZG9fZnQgZGVsZXRlIGZvb28qIFx1MDAyNlx1MDAyNiBkaWUgXCJkZWxldGUgbG9uZ2VyIHdpbGRjYXJkIGFsbG93ZWRcIlxuK2RvX2Z0IGFkZCBmb28qIHx8IGRpZSBcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXCJcbitcbitkb19mdCBkZWxldGUgZm9vKiB8fCBkaWUgXCJkZWxldGUgaW5pdGlhbCBmbG93dGFibGUgaG9vayBmYWlsZWRcIlxuK1xuK2V4aXQgJFJDXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMDo1MDo1Mi41ODQ3MTkwOTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyODI1MzUyNjA0OTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IFByZWxpbWluYXJ5IFRob3VnaHRzKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBpdCBzZWVtcyB0byBiZSB0b3VjaGluZyBhIGNvdXBsZSBvZiB0ZXN0IHNjcmlwdHM6IHNwZWNpZmljYWxseSwgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9jaGFpbnMvbmV0ZGV2X2NoYWluX3VwZGF0ZV93aWxkY2FyZF9ob29rYCBhbmQgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9mbG93dGFibGUvdXBkYXRlX3dpbGRjYXJkX2hvb2tgLiBKdXN0IGxvb2tpbmcgYXQgdGhlIGZpbGUgcGF0aHMsIG15IGd1ZXNzIGlzIHRoYXQgdGhlc2UgYXJlIHVzZXJzcGFjZSB0ZXN0IHNjcmlwdHMsIHBvc3NpYmx5IHJlbGF0ZWQgdG8gdGhlIG5mdGFibGVzIHRlc3Qgc3VpdGUgb3IgYSBzaW1pbGFyIGZyYW1ld29yayB3aXRoaW4gYSBsYXJnZXIgcmVwb3NpdG9yeS4gVG8gY29uZmlybSB0aGF0IGludHVpdGlvbiBhbmQgZ2V0IGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvbnRleHQsIEknbGwgbmVlZCB0byB1c2Ugc29tZSB0b29saW5nIHRvIGV4cGxvcmUgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSByZXBvc2l0b3J5IHN0cnVjdHVyZS4gTGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQgb3V0IHdpdGggYSBxdWljayBzY2FuLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDExLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMTozNzo1Ny45MzczMjY0MjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5OTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwidGVzdHNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogbnVsbCxcbiAgXCJTdWJkaXJzXCI6IFtcbiAgICBcInNoZWxsXCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6Mzc6NTcuOTM3MzY3ODQzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzgxMzc2MzIxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyB0aGUgVG9wIExldmVsKipcblxuQWxyaWdodCwgSSdtIHN0YXJ0aW5nIGF0IHRoZSB0b3AuIEJlZm9yZSBkaXZpbmcgaW4sIEkgbmVlZCB0byBnZXQgYSBsYXkgb2YgdGhlIGxhbmQuIFNvLCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayB0aGUgcm9vdCBkaXJlY3RvcnkuIFdoYXQncyB0aGUgaW5pdGlhbCBzdHJ1Y3R1cmU/IFdoYXQgY3JpdGljYWwgZmlsZXMgb3IgZm9sZGVycyBhcmUgaW1tZWRpYXRlbHkgcHJlc2VudD8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGluZGljYXRvcnMgb2YgdGhlIHN5c3RlbSdzIHB1cnBvc2Ugb3IgYXJjaGl0ZWN0dXJlIHRoYXQganVtcCBvdXQ/IFRoaXMgaXMgcHVyZWx5IGFib3V0IGdldHRpbmcgYSBoaWdoLWxldmVsLCBxdWljayBzY2FuLiBObyBuZWVkIHRvIGdvIGRlZXAgeWV0LCBqdXN0IGlkZW50aWZ5IHRoZSBwcm9taW5lbnQgZWxlbWVudHMuIFRoaXMgaW5pdGlhbCBpbnZlbnRvcnkgd2lsbCBpbmZsdWVuY2UgbXkgZGlyZWN0aW9uIGFzIEkgZm9ybXVsYXRlIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzA1LCJPdXRwdXRUb2tlbnMiOjE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDIxOjM4OjAxLjc1MTEzMzM5MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzgzNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogbnVsbCxcbiAgXCJTdWJkaXJzXCI6IFtcbiAgICBcIkRvY3VtZW50YXRpb25cIixcbiAgICBcIkxJQ0VOU0VTXCIsXG4gICAgXCJhcmNoXCIsXG4gICAgXCJibG9ja1wiLFxuICAgIFwiY2VydHNcIixcbiAgICBcImNyeXB0b1wiLFxuICAgIFwiZHJpdmVyc1wiLFxuICAgIFwiZnNcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluaXRcIixcbiAgICBcImlvX3VyaW5nXCIsXG4gICAgXCJpcGNcIixcbiAgICBcImtlcm5lbFwiLFxuICAgIFwibGliXCIsXG4gICAgXCJtbVwiLFxuICAgIFwibmV0XCIsXG4gICAgXCJydXN0XCIsXG4gICAgXCJzYW1wbGVzXCIsXG4gICAgXCJzY3JpcHRzXCIsXG4gICAgXCJzZWN1cml0eVwiLFxuICAgIFwic291bmRcIixcbiAgICBcInRlc3RzXCIsXG4gICAgXCJ0b29sc1wiLFxuICAgIFwidXNyXCIsXG4gICAgXCJ2aXJ0XCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6Mzg6MDEuNzUxMjEzMjkxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjIwNDQ5OTI5OTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIFJlY2VudCBDaGFuZ2VzKipcblxuT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBtb2RpZmljYXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZXhhbWluZSB0aGUgYHRlc3RzL2AgZGlyZWN0b3J5IOKAkyBzZWUgd2hhdCdzIGNoYW5nZWQgdGhlcmUsIG9yIGlmIHRoZSBrZXJuZWwgaXRzZWxmIGhhcyBiZWVuIGFmZmVjdGVkLiBCdXQgaG9sZCBvbiwgYmVmb3JlIEkgZGl2ZSBpbnRvIHRoZSBmaWxlIHN5c3RlbSwgYSBxdWljayBjaGVjayBvZiB0aGUgR2l0IGxvZyBvciB0aGUgYGRpZmZgIG9mIHRoZSBIRUFEIGNvbW1pdCBpcyBwcm9iYWJseSBhIGJldHRlciBzdGFydGluZyBwb2ludCBmb3IgYSBoaWdoLWxldmVsIG92ZXJ2aWV3LiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGZpcnN0IGNsdWUuXG5cblJpZ2h0LCBsZXQncyBsb29rIGF0IGB0ZXN0cy9zaGVsbGAsIG9yIG1heWJlIHRoZXJlIGFyZSBvdGhlciBmaWxlcyBpbiB0aGUgSEVBRCBjb21taXQgdGhhdCB3ZXJlIHRvdWNoZWQuIEkgbmVlZCB0byBnZXQgdGhlIHNjb3BlIG9mIHRoaXMgdXBkYXRlLlxuXG5Ib2xkIG9uLCBJIHRoaW5rIEknbGwgdXNlIGBncmVwcGVyYCBvciBgcmVhZC1maWxlYCBvbiBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL2NoYWlucy9uZXRkZXZfY2hhaW5fdXBkYXRlX3dpbGRjYXJkX2hvb2tgLCBqdXN0IHRvIG1ha2Ugc3VyZSBJJ20gemVyb2luZyBpbiBvbiB0aGUgcmlnaHQgc2VjdGlvbnMuIFRoYXQgd2lsbCBnaXZlIG1lIHRoZSBxdWlja2VzdCBhbnN3ZXIgdG8gZ2V0IGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjaGFuZ2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTk4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA2LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yN1QyMTo0MTo0Mi4yMDExNDU5OTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mjk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJ0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvY2hhaW5zL25ldGRldl9jaGFpbl91cGRhdGVfd2lsZGNhcmRfaG9va1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMhL2Jpbi9iYXNoXFxuICAgMjpcXHRcXG4gICAzOlxcdCMgTkZUX1RFU1RfUkVRVUlSRVMoTkZUX1RFU1RfSEFWRV9pZm5hbWVfYmFzZWRfaG9va3MpXFxuICAgNDpcXHRcXG4gICA1OlxcdFJDPTBcXG4gICA2OlxcdFxcbiAgIDc6XFx0ZGllKCkge1xcbiAgIDg6XFx0XFx0ZWNobyBcXFwiRkFJTDogJEBcXFwiXFxuICAgOTpcXHRcXHQoKFJDKyspKVxcbiAgMTA6XFx0XFx0JE5GVCBsaXN0IHJ1bGVzZXRcXG4gIDExOlxcdH1cXG4gIDEyOlxcdFxcbiAgMTM6XFx0JE5GVCBhZGQgdGFibGUgbmV0ZGV2IHQgfHwgZGllIFxcXCJhZGQgdGFibGUgZmFpbGVkXFxcIlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRkb19jaGFpbigpIHsgIyAoY21kLCBkZXZzcGVjLCB0aHApXFxuICAxNjpcXHRcXHQkTkZUICQxIGNoYWluIG5ldGRldiB0IGMgXFxcInsgJDMgZGV2aWNlcyA9IHsgJDIgfTsgfVxcXCJcXG4gIDE3OlxcdH1cXG4gIDE4OlxcdFxcbiAgMTk6XFx0dGhwPSd0eXBlIGZpbHRlciBob29rIGluZ3Jlc3MgcHJpb3JpdHkgMDsnXFxuICAyMDpcXHRcXG4gIDIxOlxcdGRvX2NoYWluIGFkZCBmb28qIFxcXCIkdGhwXFxcIiB8fCBkaWUgXFxcImluaXRpYWwgYWRkIGNoYWluIGZhaWxlZFxcXCJcXG4gIDIyOlxcdGRvX2NoYWluIGNyZWF0ZSBmb28qIFxcXCIkdGhwXFxcIiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImR1cGxpY2F0ZWQgY3JlYXRlIGluaXRpYWwgY2hhaW4gYWxsb3dlZFxcXCJcXG4gIDIzOlxcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuICAyNDpcXHRcXG4gIDI1OlxcdGRvX2NoYWluIGFkZCBcXFwiYmFyKiwgYmFyKlxcXCIgXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJkdXBsaWNhdGUgd2lsZGNhcmQgYWRkIGFsbG93ZWRcXFwiXFxuICAyNjpcXHRkb19jaGFpbiBhZGQgXFxcImJhciwgYmFyXFxcIiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImR1cGxpY2F0ZSBkZXZpY2UgYWRkIGFsbG93ZWRcXFwiXFxuICAyNzpcXHRcXG4gIDI4OlxcdGRvX2NoYWluIGFkZCBmb28gXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBub24td2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDI5OlxcdGRvX2NoYWluIGFkZCBmbyogXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBzaG9ydGVyIHdpbGRjYXJkIGFsbG93ZWRcXFwiXFxuICAzMDpcXHRkb19jaGFpbiBhZGQgZm9vbyogXFx1MDAyNlxcdTAwMjYgZGllIFxcXCJ1cGRhdGUgd2l0aCBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDMxOlxcdFxcbiAgMzI6XFx0IyBhZGQgYWZ0ZXIgdGVzdGluZyBkZWxldGUgaW4gY2FzZSBkZWxldGlvbiBpcyBhbGxvd2VkIHdoZW4gaXQgc2hvdWxkIG5vdFxcbiAgMzM6XFx0XFxuICAzNDpcXHRkb19jaGFpbiBkZWxldGUgZm9vIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIG5vbi13aWxkY2FyZCBob29rIGFsbG93ZWRcXFwiXFxuICAzNTpcXHRkb19jaGFpbiBhZGQgZm9vKiB8fCBkaWUgXFxcImR1cGxpY2F0ZWQgaG9vayBhZGQgZmFpbGVkXFxcIlxcbiAgMzY6XFx0XFxuICAzNzpcXHRkb19jaGFpbiBkZWxldGUgZm8qIFxcdTAwMjZcXHUwMDI2IGRpZSBcXFwiZGVsZXRlIHNob3J0ZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDM4OlxcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuICAzOTpcXHRcXG4gIDQwOlxcdGRvX2NoYWluIGRlbGV0ZSBmb29vKiBcXHUwMDI2XFx1MDAyNiBkaWUgXFxcImRlbGV0ZSBsb25nZXIgd2lsZGNhcmQgYWxsb3dlZFxcXCJcXG4gIDQxOlxcdGRvX2NoYWluIGFkZCBmb28qIHx8IGRpZSBcXFwiZHVwbGljYXRlZCBob29rIGFkZCBmYWlsZWRcXFwiXFxuICA0MjpcXHRcXG4gIDQzOlxcdGRvX2NoYWluIGRlbGV0ZSBmb28qIHx8IGRpZSBcXFwiZGVsZXRlIGluaXRpYWwgY2hhaW4gaG9vayBmYWlsZWRcXFwiXFxuICA0NDpcXHRcXG4gIDQ1OlxcdGV4aXQgJFJDXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDIxOjQxOjQyLjIwMTIxMDIxM1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQzMTI1MTYyOTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBBc3Nlc3NtZW50KipcblxuT2theSwgc28gdGhpcyBjb21taXQgaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSSd2ZSB0YWtlbiBhIGxvb2ssIGFuZCB0aGUgZW50aXJlIGNoYW5nZSBpcyBjb25maW5lZCB0byB0aGUgYWRkaXRpb24gb2YgdHdvIHRlc3QgZmlsZXMgd2l0aGluIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvYC4gTm8gbW9kaWZpY2F0aW9ucyB0byBhbnkgQyBmaWxlcyBvciBrZXJuZWwgY29kZSDigJMgdGhhdCdzIHRoZSBrZXkgaGVyZS5cblxuTm93LCBsZXQncyBydW4gdGhpcyB0aHJvdWdoIHRoZSBgV29ydGhGdXp6aW5nYCBjcml0ZXJpYS4gVGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWVzIHRoYXQgaXQgc2hvdWxkIHJldHVybiBgZmFsc2VgIGlmIGEgcGF0Y2ggKm9ubHkqIGluY2x1ZGVzIGNoYW5nZXMgdG8gZG9jdW1lbnRhdGlvbiwgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4gQW5kIGltcG9ydGFudGx5OiBpdCBhbHNvIHJldHVybnMgZmFsc2UgaWYgaXQgaW5jbHVkZXMgdGVzdGNhc2VzISBJZiBpdCB0b3VjaGVzIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzIHRoZW4gdGhlIHNlYXJjaCB0b29scyBjb21lIG91dCB0byBlbnN1cmUgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLlxuXG5HaXZlbiB0aGF0IHRoaXMgcGF0Y2ggKmV4Y2x1c2l2ZWx5KiBtb2RpZmllcyB0aGVzZSB0ZXN0IHNjcmlwdHMgdW5kZXIgYHRlc3RzL3NoZWxsL2AsIGFuZCBkb2Vzbid0IHRvdWNoIGFueSBrZXJuZWwgbG9naWMgb3IgY29kZSBpdHNlbGYsIHRoZSBhbnN3ZXIgaXMgY2xlYXI6IGBXb3J0aEZ1enppbmdgIGlzIHVuZXF1aXZvY2FsbHkgYGZhbHNlYC5cblxuQWxyaWdodCwgdGltZSB0byBwcmVwYXJlIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwuIEkgbmVlZCB0byBwb3B1bGF0ZSB0aGUgZm9sbG93aW5nOlxuXG4qICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWBcbiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAoZW1wdHkgbGlzdCwgYXMgdGhlcmUncyBubyBmb2N1cyBoZXJlKVxuKiAgIGBFbmFibGVDb25maWdzYDogYFtdYCAoYWxzbyBlbXB0eSwgc2FtZSByZWFzb25pbmcpXG4qICAgYFJlYXNvbmluZ2A6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBzaGVsbCB0ZXN0Y2FzZXMgdW5kZXIgdGVzdHMvc2hlbGwvIGFuZCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZS5cIlxuXG5XaXRoIHRoYXQgaW5mb3JtYXRpb24gc2V0LCB0aGUgYHNldC1yZXN1bHRzYCBjYWxsIGlzIHJlYWR5IHRvIGdvLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTk1LCJPdXRwdXRUb2tlbnMiOjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6NDI6MjUuMzI2Mzc1NzE3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIHRlc3Qgc2NyaXB0cyB1bmRlciB0ZXN0cy9zaGVsbC8gYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIG9yIGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMjE6NDI6MjUuMzI2NDA1MDA3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdb7jf[1] Phase: Running StartedAt: 2026-08-27 21:42:36 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdb7jf[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-27 21:42:36 +0000 UTC FinishedAt: 2026-08-27 21:42:40 +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,}