Name: series-workflowm8trg Phase: Failed StartedAt: 2026-08-21 01:48:15 +0000 UTC FinishedAt: 2026-08-21 02:07:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm8trg[0] Phase: Succeeded StartedAt: 2026-08-21 01:48:15 +0000 UTC FinishedAt: 2026-08-21 02:07:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm8trg[0].run-triage Phase: Succeeded StartedAt: 2026-08-21 01:48:15 +0000 UTC FinishedAt: 2026-08-21 02:07:04 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDAyOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2ltcGx5IHBhcmFtZXRlcml6ZXMgdGhlIGNvbW1hbmQgc3RyaW5nIGluIG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygpLCBjaGFuZ2luZyBpdCB0byBhY2NlcHQgYSBzdHJpbmcgYXJndW1lbnQgaW5zdGVhZCBvZiBoYXJkY29kaW5nIFwmIzM0O2Fzc2VydFwmIzM0Oy4gQWxsIGV4aXN0aW5nIGNhbGxlcnMgaW4gZGVidWdmcyBhcmUgdXBkYXRlZCB0byBwYXNzIFwmIzM0O2Fzc2VydFwmIzM0OywgcmVzdWx0aW5nIGluIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMTdlZmJjMzBjMDAyNmQ5MGI2YjJhNTM1YjBjYWJhYzRmMTkzYTY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMjEgMDI6MDY6MTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jXG5pbmRleCA2YTE0NzVlM2M4OTk5Li44M2NmZmE5NGJjMGVkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcbkBAIC01NCw3ICYjNDM7NTQsNyBAQCBzdGF0aWMgaW50IG10NzYxNV9jb25maWcodm9pZCAqZGF0YSwgdTY0IHZhbClcbiBcdGludCByZXQ7XG4gXG4gXHRtdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpO1xuLVx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiYjNDM7XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFwmIzM0O2Fzc2VydFwmIzM0Oyk7XG4gXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xuIFxuIFx0cmV0dXJuIHJldDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuY1xuaW5kZXggMmY5MjVkMjJiOWFhNy4uZGU4M2Q0MWNhOWM5YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcbkBAIC0yMDQ0LDEzICYjNDM7MjA0NCwxMyBAQCBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpO1xuIFxuLWludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4mIzQzO2ludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmNtZClcbiB7XG4gXHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfY29uZmlnIHJlcSA9IHtcbiBcdFx0LnJlc3BfdHlwZSA9IDAsXG4gXHR9O1xuIFxuLVx0c3Ryc2NweShyZXEuZGF0YSwgXCYjMzQ7YXNzZXJ0XCYjMzQ7KTtcbiYjNDM7XHRzdHJzY3B5KHJlcS5kYXRhLCBjbWQpO1xuIFxuIFx0cmV0dXJuIG10NzZfbWN1X3NlbmRfbXNnKGRldiwgTUNVX0NFX0NNRChDSElQX0NPTkZJRyksXG4gXHRcdFx0XHQgXHUwMDI2cmVxLCBzaXplb2YocmVxKSwgZmFsc2UpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXG5pbmRleCAwZWRlZGE1NjllOWE1Li40NWY3N2M4MGU4NzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaFxuQEAgLTIwOTgsNyAmIzQzOzIwOTgsNyBAQCB2b2lkIG10NzZfY29ubmFjX21jdV9zZXRfc3VzcGVuZF9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4gaW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcbiBcdFx0XHQgICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBvbGRfc3RhdGUsXG4gXHRcdFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgbmV3X3N0YXRlKTtcbi1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbiYjNDM7aW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKTtcbiBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9kZWVwX3NsZWVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGVuYWJsZSk7XG4gdm9pZCBtdDc2X2Nvbm5hY19tY3VfY29yZWR1bXBfZXZlbnQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdFx0XHQgICAgc3RydWN0IG10NzZfY29ubmFjX2NvcmVkdW1wICpjb3JlZHVtcCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG5pbmRleCBhNWE3MGQ4ZTg1NDRhLi42MmJmMzMzNDdlOWUyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNcbkBAIC0yMzcsNyAmIzQzOzIzNyw3IEBAIHN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbiBcdGRlZmF1bHQ6XG4gXHRcdC8qIENvbGxlY3QgdGhlIGNvcmUgZHVtcCBiZWZvcmUgcmVzZXQgd2lmaXN5cy4gKi9cbiBcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbi1cdFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiYjNDM7XHRcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgXCYjMzQ7YXNzZXJ0XCYjMzQ7KTtcbiBcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbiBcdFx0YnJlYWs7XG4gXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSBwYXJhbWV0ZXJpemVzIHRoZSBjb21tYW5kIHN0cmluZyBpbiBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoKSwgY2hhbmdpbmcgaXQgdG8gYWNjZXB0IGEgc3RyaW5nIGFyZ3VtZW50IGluc3RlYWQgb2YgaGFyZGNvZGluZyBcJiMzNDthc3NlcnRcJiMzNDsuIEFsbCBleGlzdGluZyBjYWxsZXJzIGluIGRlYnVnZnMgYXJlIHVwZGF0ZWQgdG8gcGFzcyBcJiMzNDthc3NlcnRcJiMzNDssIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMjE3ZWZiYzMwYzAwMjZkOTBiNmIyYTUzNWIwY2FiYWM0ZjE5M2E2NQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDIxIDAyOjA2OjExIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jCmluZGV4IDZhMTQ3NWUzYzg5OTkuLjgzY2ZmYTk0YmMwZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMKQEAgLTU0LDcgJiM0Mzs1NCw3IEBAIHN0YXRpYyBpbnQgbXQ3NjE1X2NvbmZpZyh2b2lkICpkYXRhLCB1NjQgdmFsKQogCWludCByZXQ7CiAKIAltdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpOwotCXJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygmYW1wO2Rldi0mZ3Q7bXQ3Nik7CiYjNDM7CXJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygmYW1wO2Rldi0mZ3Q7bXQ3NiwgJiMzNDthc3NlcnQmIzM0Oyk7CiAJbXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYwppbmRleCAyZjkyNWQyMmI5YWE3Li5kZTgzZDQxY2E5YzlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMKQEAgLTIwNDQsMTMgJiM0MzsyMDQ0LDEzIEBAIGludCBtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUoc3RydWN0IG10NzZfcGh5ICpwaHksCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpOwogCi1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KQomIzQzO2ludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmNtZCkKIHsKIAlzdHJ1Y3QgbXQ3Nl9jb25uYWNfY29uZmlnIHJlcSA9IHsKIAkJLnJlc3BfdHlwZSA9IDAsCiAJfTsKIAotCXN0cnNjcHkocmVxLmRhdGEsICYjMzQ7YXNzZXJ0JiMzNDspOwomIzQzOwlzdHJzY3B5KHJlcS5kYXRhLCBjbWQpOwogCiAJcmV0dXJuIG10NzZfbWN1X3NlbmRfbXNnKGRldiwgTUNVX0NFX0NNRChDSElQX0NPTkZJRyksCiAJCQkJICZhbXA7cmVxLCBzaXplb2YocmVxKSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmgKaW5kZXggMGVkZWRhNTY5ZTlhNS4uNDVmNzdjODBlODc5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oCkBAIC0yMDk4LDcgJiM0MzsyMDk4LDcgQEAgdm9pZCBtdDc2X2Nvbm5hY19tY3Vfc2V0X3N1c3BlbmRfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLAogaW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwKIAkJCSAgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG9sZF9zdGF0ZSwKIAkJCSAgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG5ld19zdGF0ZSk7Ci1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KTsKJiM0MztpbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpOwogaW50IG10NzZfY29ubmFjX21jdV9zZXRfZGVlcF9zbGVlcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBlbmFibGUpOwogdm9pZCBtdDc2X2Nvbm5hY19tY3VfY29yZWR1bXBfZXZlbnQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJICAgIHN0cnVjdCBtdDc2X2Nvbm5hY19jb3JlZHVtcCAqY29yZWR1bXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jCmluZGV4IGE1YTcwZDhlODU0NGEuLjYyYmYzMzM0N2U5ZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMKQEAgLTIzNyw3ICYjNDM7MjM3LDcgQEAgc3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCWRlZmF1bHQ6CiAJCS8qIENvbGxlY3QgdGhlIGNvcmUgZHVtcCBiZWZvcmUgcmVzZXQgd2lmaXN5cy4gKi8KIAkJbXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTsKLQkJcmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKCZhbXA7ZGV2LSZndDttdDc2KTsKJiM0MzsJCXJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygmYW1wO2Rldi0mZ3Q7bXQ3NiwgJiMzNDthc3NlcnQmIzM0Oyk7CiAJCW10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7CiAJCWJyZWFrOwogCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzExNgoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDIxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lZGlhdGVrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIGF0IHRoZSBNZWRpYXRlayBkcml2ZXIsIHNwZWNpZmljYWxseSBtb2RpZnlpbmcgYG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZ2AgaW4gYG10NzZfY29ubmFjX21jdS5jYC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBtYWtpbmcgaXQgbW9yZSBmbGV4aWJsZSBieSBpbnRyb2R1Y2luZyBhIGBjbWRgIHBhcmFtZXRlciBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IGhhcmRjb2RlZCAmIzM0O2Fzc2VydCYjMzQ7LiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBjaGFuZ2U7IHBhcmFtZXRlcml6aW5nIGEgY29tbWFuZCBhbGxvd3MgZm9yIG1vcmUgdmVyc2F0aWxpdHkgYW5kIHBvdGVudGlhbGx5IHJlbW92ZXMgdGhlIG5lZWQgZm9yIG11bHRpcGxlLCBzbGlnaHRseSBkaWZmZXJlbnQgZnVuY3Rpb25zLgoKTm93LCB0aGUgcGF0Y2ggdXBkYXRlcyB0aGUgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCB0byBwYXNzICYjMzQ7YXNzZXJ0JiMzNDsuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGhlIGNvbnRleHQgb2YgZGVidWdnaW5nIGFuZCwgbGlrZWx5LCBjb250cm9sbGluZyB0aGUgY2hpcCYjMzk7cyBiZWhhdmlvciB0aHJvdWdoIGRlYnVnIGludGVyZmFjZXMuIEhvd2V2ZXIsIHRoZSB1c2Ugb2YgYGRlYnVnZnMuY2AgYXMgdGhlIGNhbGxpbmcgZmlsZXMgcmFpc2VzIGEgZmxhZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGNoYW5nZSBpcyBsb2NhbGl6ZWQuCgpMZXQgbWUgdGhpbmvigKYgdGhlIGNhbGxlcnMgYXJlIGluIGBkZWJ1Z2ZzLmNgLCB0aGF0IGlzIGxpa2VseS4gSXMgYG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZ2AgYW4gZXhwb3J0ZWQgc3ltYm9sPyBJdCBzZWVtcyBub3QuIEl0JiMzOTtzIGluIGBtdDc2X2Nvbm5hY19tY3UuY2AgZGlyZWN0bHksIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoYXQuIE9rYXksIGhvbGQgb24uIEFoLCByaWdodCBhYm92ZSBpdCwgSSBzZWUgYEVYUE9SVF9TWU1CT0xfR1BMKG10NzZfY29ubmFjX21jdV9zY2hlZF9zY2FuX2VuYWJsZSk7YC4gU2luY2UgSSYjMzk7bSBoZXJlLCBJIHNob3VsZCBwcm9iYWJseSBhbHNvIGNoZWNrIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSBvZiBgbXQ3Nl9jb25uYWNfbWN1LmNgLiBUaGlzIGNvdWxkIGJlIGltcG9ydGFudCB0byB0aGUgc3RhYmlsaXR5IG9mIHRoZSBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYz01MT1zdGF0aWMgaW50IG10NzYxNV9jb25maWcodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMtNTYtXHRtdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jOjU3Olx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTU4LVx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jPTIwNDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjA0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MjA0NzppbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjA1Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjIwNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjA1OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oPTIwOTg9aW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oLTIxMDAtXHRcdFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgbmV3X3N0YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1Lmg6MjEwMTppbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaC0yMTAyLWludCBtdDc2X2Nvbm5hY19tY3Vfc2V0X2RlZXBfc2xlZXAoc3RydWN0IG10NzZfZGV2ICpkZXYsIGJvb2wgZW5hYmxlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI3PXN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjM5LVx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI0MDpcdFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0MS1cdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDA0CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogNDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3NiBQYXRjaCBmb3IgRGVidWdmcyBGdW5jdGlvbmFsaXR5KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbiYjMzk7cyBzaWduYXR1cmUgaW4gYG10NzZfY29ubmFjX21jdS5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBjaGFuZ2luZyB0aGUgJiMzNDthc3NlcnQmIzM0OyBoYXJkY29kZWQgc3RyaW5nIHRvIGFjY2VwdCBhIGBjb25zdCBjaGFyICpjbWRgIGFyZ3VtZW50LiBUaGUgcGF0Y2ggYWxzbyB1cGRhdGVzIHRoZSBjYWxsZXJzIHdpdGhpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYC4gVGhlc2UgYXJlLCBvZiBjb3Vyc2UsIGRlYnVnZnMgZnVuY3Rpb25zLCBzbyBteSBpbml0aWFsIHRob3VnaHQgaXMgdG8gc2VlIGlmIGFueSBvdGhlciBjb2RlIHBhdGhzIGNhbGwgdGhpcy4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgZ3JlcHBlciBjb25maXJtcyB0aGlzIGlzIHRoZSBvbmx5IGNhbGwuIFllcCwganVzdCBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYC4KCk5vdywgZGVidWdmcyBmdW5jdGlvbnMgYXJlIHR5cGljYWxseSBhY2Nlc3NpYmxlIGlmIHRoZSBkZWJ1Z2ZzIGZpbGVzeXN0ZW0gaXMgbW91bnRlZCBhbmQgdGhlIGRyaXZlciBpcyBsb2FkZWQuIFRoZSBpbnRlcmVzdGluZyBhc3BlY3QgaGVyZSBpcyB0aGF0IG10NzYgaXMgYSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIG1lYW5zIGl0IGRlYWxzIHdpdGggcGh5c2ljYWwgaGFyZHdhcmUgbGlrZSBQQ0llLCBVU0IsIGFuZCBTRElPIGludGVyZmFjZXMuIEkgbmVlZCB0byBjb25zaWRlciBob3cgdGhpcyBjb3VsZCBiZSB0cmlnZ2VyZWQgaW4gYSB0ZXN0aW5nIGVudmlyb25tZW50LgoKV2FpdCwgbXQ3NjE1IGlzIFBDSWUsIG10NzkyMSBjb3ZlcnMgUENJZSwgVVNCLCBhbmQgU0RJTy4gQ2FuIHRoZXNlIGRyaXZlcnMgZXZlbiBiZSBsb2FkZWQgYW5kIHByb2JlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSB3aXRob3V0IGFjdHVhbCBoYXJkd2FyZT8gVXN1YWxseSwgbm8uIFVubGVzcyB3ZSBoYXZlIGEgaGFyZHdhcmUgZW11bGF0b3IuIEJ1dCwgd2UgZG9uJiMzOTt0IGhhdmUgTWVkaWF0ZWsgV2ktRmkgaGFyZHdhcmUgZW11bGF0b3JzIGluIHN0YW5kYXJkIFFFTVUuIFRoZW4sIEkgcmVtZW1iZXIgbWFjODAyMTFfaHdzaW0uIEl0JiMzOTtzIGEgc29mdHdhcmUgZW11bGF0b3IgZm9yIG1hYzgwMjExLCBidXQgaXQgZG9lc24mIzM5O3QgZW11bGF0ZSBtdDc2IGhhcmR3YXJlLgoKQWgsIGJ1dCB3YWl0ISBtdDc5MjF1IGlzIGEgVVNCIGRyaXZlciEgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGEgVVNCIGdhZGdldCBvciBhIGR1bW15X2hjZCwgb3IgZXZlbiBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enplciAodXNpbmcgdmhjaSkuIFNvLCBtdDc5MjF1ICptaWdodCogYmUgcmVhY2hhYmxlIHZpYSBVU0IgZnV6emluZyEgSSBuZWVkIHRvIGNoZWNrIGlmIGBtdDc5MjFfY2hpcF9yZXNldGAgKGZvdW5kIGluIGBtdDc5MjEvZGVidWdmcy5jYCkgaXMgdXNlZCBieSBgbXQ3OTIxdWAuIExldCBtZSB0YWtlIGEgbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MjFfY2hpcF9yZXNldCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI0PURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjc6c3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNDg6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmVzZXQsIE5VTEwsIG10NzkyMV9jaGlwX3Jlc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDktXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTIzMwoJCQkJCQkJb3V0cHV0OiA5MQoJCQkJCQkJdGhvdWdodHM6IDQ0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWZhY3RvcmluZyBhIERlYnVnZnMgQ29tbWFuZCAtIFdvcnRoRnV6emluZz1mYWxzZSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0JiMzOTtzIGEgcmVmYWN0b3JpbmcgZWZmb3J0LCBhbmQgSSYjMzk7bSBsZWFuaW5nIHRvd2FyZHMgYFdvcnRoRnV6emluZz1mYWxzZWAuIExldCBtZSBicmVhayBpdCBkb3duLgoKRXNzZW50aWFsbHksIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbiBpcyBiZWluZyBtb2RpZmllZC4gUHJldmlvdXNseSwgaXQgaGFyZGNvZGVkIHRoZSBjb21tYW5kIHN0cmluZyBgJiMzNDthc3NlcnQmIzM0O2AuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNvbnN0IGNoYXIgKmNtZGAgYXJndW1lbnQsIHNvIHdlIGNhbiBwYXNzIGluIGEgY29tbWFuZC4gTm93LCB0aGUgY2FsbGVycyBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCAoc3BlY2lmaWNhbGx5LCBgbXQ3NjE1X2NvbmZpZ2AgYW5kIGBtdDc5MjFfY2hpcF9yZXNldGApIG5vdyBwYXNzIHRoZSBzdHJpbmcgYCYjMzQ7YXNzZXJ0JiMzNDtgIGFzIHRoZSBhcmd1bWVudC4KCkkgbmVlZCB0byBjb25maXJtIGlmIHRoZXJlIGlzIGFueSBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KCkxvb2tpbmcgYXQgdGhlIGJlZm9yZSBhbmQgYWZ0ZXIgY29kZSwgaXQgYmVjb21lcyBjbGVhciB0aGVyZSBpcyAqYWJzb2x1dGVseSogbm8gZnVuY3Rpb25hbCBjaGFuZ2UgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgaG93IGV4aXN0aW5nIGNhbGxzIGFyZSBoYW5kbGVkLiBUaGUgb3JpZ2luYWwgY29kZSBwYXNzZWQgYCYjMzQ7YXNzZXJ0JiMzNDtgIGltcGxpY2l0bHksIGFuZCBub3cgaXQgcGFzc2VzIGAmIzM0O2Fzc2VydCYjMzQ7YCBleHBsaWNpdGx5LiBJJiMzOTttIHNhdGlzZmllZCB0aGF0IHRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgbW9kaWZpY2F0aW9uIGluIHRlcm1zIG9mIHdoYXQgZGF0YSBpcyBzZW50LgoKVGhlIGNvbnRleHQgaXMgZGVidWdmcyBvcGVyYXRpb25zLCB3aGljaCwgd2hpbGUgbm90IHRvdGFsbHkgYmV5b25kIHRoZSByZWFsbSBvZiBmdXp6aW5nLCBhcmUgZ2VuZXJhbGx5IG5vdCB0aGUgcHJpbWFyeSBmb2N1cywgZXNwZWNpYWxseSB3aGVuIHRoZSBtb2RpZmljYXRpb24gaXMgc28gbG9jYWxpemVkIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IG5ldyBsb2dpYy4gU28gaXQmIzM5O3Mgc3RpbGwgYSAmIzM0O25vJiMzNDsgZm9yIG1lLiBJdCBzaW1wbHkgcGFyYW1ldGVyaXplcyBhIHN0cmluZyB0aGF0IHdhcyBhbHJlYWR5IGhhcmRjb2RlZCwgd2l0aG91dCBhbHRlcmluZyBhbnkgZGF0YSBmbG93IGZvciB0aGUgZXhpc3RpbmcgY2FsbHMuIFRoZSBleGlzdGluZyBkZWJ1Z2ZzIGZ1bmN0aW9uYWxpdHkgcmVtYWlucyB0aGUgc2FtZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSBwYXJhbWV0ZXJpemVzIHRoZSBjb21tYW5kIHN0cmluZyBpbiBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoKSwgY2hhbmdpbmcgaXQgdG8gYWNjZXB0IGEgc3RyaW5nIGFyZ3VtZW50IGluc3RlYWQgb2YgaGFyZGNvZGluZyBcJiMzNDthc3NlcnRcJiMzNDsuIEFsbCBleGlzdGluZyBjYWxsZXJzIGluIGRlYnVnZnMgYXJlIHVwZGF0ZWQgdG8gcGFzcyBcJiMzNDthc3NlcnRcJiMzNDssIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzaW1wbHkgcGFyYW1ldGVyaXplcyB0aGUgY29tbWFuZCBzdHJpbmcgaW4gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKCksIGNoYW5naW5nIGl0IHRvIGFjY2VwdCBhIHN0cmluZyBhcmd1bWVudCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgXCYjMzQ7YXNzZXJ0XCYjMzQ7LiBBbGwgZXhpc3RpbmcgY2FsbGVycyBpbiBkZWJ1Z2ZzIGFyZSB1cGRhdGVkIHRvIHBhc3MgXCYjMzQ7YXNzZXJ0XCYjMzQ7LCByZXN1bHRpbmcgaW4gbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6MTIuMTMwMTU1Nzk4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE3NDc5ODIzMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzaW1wbHkgcGFyYW1ldGVyaXplcyB0aGUgY29tbWFuZCBzdHJpbmcgaW4gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKCksIGNoYW5naW5nIGl0IHRvIGFjY2VwdCBhIHN0cmluZyBhcmd1bWVudCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgXFxcImFzc2VydFxcXCIuIEFsbCBleGlzdGluZyBjYWxsZXJzIGluIGRlYnVnZnMgYXJlIHVwZGF0ZWQgdG8gcGFzcyBcXFwiYXNzZXJ0XFxcIiwgcmVzdWx0aW5nIGluIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAyOjA2OjEyLjEzMDE2MTYzOFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY0NzY4MzAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjE3ZWZiYzMwYzAwMjZkOTBiNmIyYTUzNWIwY2FiYWM0ZjE5M2E2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMjowNjoxMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcXG5pbmRleCA2YTE0NzVlM2M4OTk5Li44M2NmZmE5NGJjMGVkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuY1xcbkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBpbnQgbXQ3NjE1X2NvbmZpZyh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbiBcXHRpbnQgcmV0O1xcbiBcXG4gXFx0bXQ3NjE1X211dGV4X2FjcXVpcmUoZGV2KTtcXG4tXFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbitcXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFxcImFzc2VydFxcXCIpO1xcbiBcXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbiBcXG4gXFx0cmV0dXJuIHJldDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcXG5pbmRleCAyZjkyNWQyMmI5YWE3Li5kZTgzZDQxY2E5YzlhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jXFxuQEAgLTIwNDQsMTMgKzIwNDQsMTMgQEAgaW50IG10NzZfY29ubmFjX21jdV9zY2hlZF9zY2FuX2VuYWJsZShzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcXG4gfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpO1xcbiBcXG4taW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKVxcbiB7XFxuIFxcdHN0cnVjdCBtdDc2X2Nvbm5hY19jb25maWcgcmVxID0ge1xcbiBcXHRcXHQucmVzcF90eXBlID0gMCxcXG4gXFx0fTtcXG4gXFxuLVxcdHN0cnNjcHkocmVxLmRhdGEsIFxcXCJhc3NlcnRcXFwiKTtcXG4rXFx0c3Ryc2NweShyZXEuZGF0YSwgY21kKTtcXG4gXFxuIFxcdHJldHVybiBtdDc2X21jdV9zZW5kX21zZyhkZXYsIE1DVV9DRV9DTUQoQ0hJUF9DT05GSUcpLFxcbiBcXHRcXHRcXHRcXHQgXFx1MDAyNnJlcSwgc2l6ZW9mKHJlcSksIGZhbHNlKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmhcXG5pbmRleCAwZWRlZGE1NjllOWE1Li40NWY3N2M4MGU4NzljIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXFxuQEAgLTIwOTgsNyArMjA5OCw3IEBAIHZvaWQgbXQ3Nl9jb25uYWNfbWN1X3NldF9zdXNwZW5kX2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYyxcXG4gaW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4gXFx0XFx0XFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgb2xkX3N0YXRlLFxcbiBcXHRcXHRcXHQgICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBuZXdfc3RhdGUpO1xcbi1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKTtcXG4gaW50IG10NzZfY29ubmFjX21jdV9zZXRfZGVlcF9zbGVlcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBlbmFibGUpO1xcbiB2b2lkIG10NzZfY29ubmFjX21jdV9jb3JlZHVtcF9ldmVudChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtdDc2X2Nvbm5hY19jb3JlZHVtcCAqY29yZWR1bXApO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNcXG5pbmRleCBhNWE3MGQ4ZTg1NDRhLi42MmJmMzMzNDdlOWUyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuY1xcbkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbiBcXHRkZWZhdWx0OlxcbiBcXHRcXHQvKiBDb2xsZWN0IHRoZSBjb3JlIGR1bXAgYmVmb3JlIHJlc2V0IHdpZmlzeXMuICovXFxuIFxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuLVxcdFxcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4rXFx0XFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIFxcXCJhc3NlcnRcXFwiKTtcXG4gXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6MTIuNTk1NzY4NDdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MTI4MjM1MDgyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHBhcmFtZXRlcml6ZXMgdGhlIGNvbW1hbmQgc3RyaW5nIGluIG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygpLCBjaGFuZ2luZyBpdCB0byBhY2NlcHQgYSBzdHJpbmcgYXJndW1lbnQgaW5zdGVhZCBvZiBoYXJkY29kaW5nIFxcXCJhc3NlcnRcXFwiLiBBbGwgZXhpc3RpbmcgY2FsbGVycyBpbiBkZWJ1Z2ZzIGFyZSB1cGRhdGVkIHRvIHBhc3MgXFxcImFzc2VydFxcXCIsIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyMTdlZmJjMzBjMDAyNmQ5MGI2YjJhNTM1YjBjYWJhYzRmMTkzYTY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMjEgMDI6MDY6MTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcbmluZGV4IDZhMTQ3NWUzYzg5OTkuLjgzY2ZmYTk0YmMwZWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuY1xuQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGludCBtdDc2MTVfY29uZmlnKHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4gXHRpbnQgcmV0O1xuIFxuIFx0bXQ3NjE1X211dGV4X2FjcXVpcmUoZGV2KTtcbi1cdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4rXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFwiYXNzZXJ0XCIpO1xuIFx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcbiBcbiBcdHJldHVybiByZXQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcbmluZGV4IDJmOTI1ZDIyYjlhYTcuLmRlODNkNDFjYTljOWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jXG5AQCAtMjA0NCwxMyArMjA0NCwxMyBAQCBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpO1xuIFxuLWludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKVxuIHtcbiBcdHN0cnVjdCBtdDc2X2Nvbm5hY19jb25maWcgcmVxID0ge1xuIFx0XHQucmVzcF90eXBlID0gMCxcbiBcdH07XG4gXG4tXHRzdHJzY3B5KHJlcS5kYXRhLCBcImFzc2VydFwiKTtcbitcdHN0cnNjcHkocmVxLmRhdGEsIGNtZCk7XG4gXG4gXHRyZXR1cm4gbXQ3Nl9tY3Vfc2VuZF9tc2coZGV2LCBNQ1VfQ0VfQ01EKENISVBfQ09ORklHKSxcbiBcdFx0XHRcdCBcdTAwMjZyZXEsIHNpemVvZihyZXEpLCBmYWxzZSk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmhcbmluZGV4IDBlZGVkYTU2OWU5YTUuLjQ1Zjc3YzgwZTg3OWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXG5AQCAtMjA5OCw3ICsyMDk4LDcgQEAgdm9pZCBtdDc2X2Nvbm5hY19tY3Vfc2V0X3N1c3BlbmRfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxuIGludCBtdDc2X2Nvbm5hY19zdGFfc3RhdGVfZHAoc3RydWN0IG10NzZfZGV2ICpkZXYsXG4gXHRcdFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgb2xkX3N0YXRlLFxuIFx0XHRcdCAgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG5ld19zdGF0ZSk7XG4taW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKTtcbiBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9kZWVwX3NsZWVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGVuYWJsZSk7XG4gdm9pZCBtdDc2X2Nvbm5hY19tY3VfY29yZWR1bXBfZXZlbnQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdFx0XHQgICAgc3RydWN0IG10NzZfY29ubmFjX2NvcmVkdW1wICpjb3JlZHVtcCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG5pbmRleCBhNWE3MGQ4ZTg1NDRhLi42MmJmMzMzNDdlOWUyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNcbkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuIFx0ZGVmYXVsdDpcbiBcdFx0LyogQ29sbGVjdCB0aGUgY29yZSBkdW1wIGJlZm9yZSByZXNldCB3aWZpc3lzLiAqL1xuIFx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuLVx0XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuK1x0XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFwiYXNzZXJ0XCIpO1xuIFx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuIFx0XHRicmVhaztcbiBcdH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAyOjA2OjEyLjU5NTc3ODIzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA5OTgyNTc2ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWRpYXRlayBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIGF0IHRoZSBNZWRpYXRlayBkcml2ZXIsIHNwZWNpZmljYWxseSBtb2RpZnlpbmcgYG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZ2AgaW4gYG10NzZfY29ubmFjX21jdS5jYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIG1ha2luZyBpdCBtb3JlIGZsZXhpYmxlIGJ5IGludHJvZHVjaW5nIGEgYGNtZGAgcGFyYW1ldGVyIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgaGFyZGNvZGVkIFwiYXNzZXJ0XCIuIFRoYXQncyBhIHJlYXNvbmFibGUgY2hhbmdlOyBwYXJhbWV0ZXJpemluZyBhIGNvbW1hbmQgYWxsb3dzIGZvciBtb3JlIHZlcnNhdGlsaXR5IGFuZCBwb3RlbnRpYWxseSByZW1vdmVzIHRoZSBuZWVkIGZvciBtdWx0aXBsZSwgc2xpZ2h0bHkgZGlmZmVyZW50IGZ1bmN0aW9ucy5cblxuTm93LCB0aGUgcGF0Y2ggdXBkYXRlcyB0aGUgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCB0byBwYXNzIFwiYXNzZXJ0XCIuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGhlIGNvbnRleHQgb2YgZGVidWdnaW5nIGFuZCwgbGlrZWx5LCBjb250cm9sbGluZyB0aGUgY2hpcCdzIGJlaGF2aW9yIHRocm91Z2ggZGVidWcgaW50ZXJmYWNlcy4gSG93ZXZlciwgdGhlIHVzZSBvZiBgZGVidWdmcy5jYCBhcyB0aGUgY2FsbGluZyBmaWxlcyByYWlzZXMgYSBmbGFnLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgY2hhbmdlIGlzIGxvY2FsaXplZC5cblxuTGV0IG1lIHRoaW5r4oCmIHRoZSBjYWxsZXJzIGFyZSBpbiBgZGVidWdmcy5jYCwgdGhhdCBpcyBsaWtlbHkuIElzIGBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWdgIGFuIGV4cG9ydGVkIHN5bWJvbD8gSXQgc2VlbXMgbm90LiBJdCdzIGluIGBtdDc2X2Nvbm5hY19tY3UuY2AgZGlyZWN0bHksIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhhdC4gT2theSwgaG9sZCBvbi4gQWgsIHJpZ2h0IGFib3ZlIGl0LCBJIHNlZSBgRVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKTtgLiBTaW5jZSBJJ20gaGVyZSwgSSBzaG91bGQgcHJvYmFibHkgYWxzbyBjaGVjayB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2YgYG10NzZfY29ubmFjX21jdS5jYC4gVGhpcyBjb3VsZCBiZSBpbXBvcnRhbnQgdG8gdGhlIHN0YWJpbGl0eSBvZiB0aGUgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTE2LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6MjMuNTk0MDM3OTFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkyNTk4OTExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jPTUxPXN0YXRpYyBpbnQgbXQ3NjE1X2NvbmZpZyh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTU2LVxcdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jOjU3OlxcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBcXFwiYXNzZXJ0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTU4LVxcdG10NzYxNV9tdXRleF9yZWxlYXNlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jPTIwNDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoyMDQ3OmludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmNtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yMDU3LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjIwNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oPTIwOTg9aW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmgtMjEwMC1cXHRcXHRcXHQgICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBuZXdfc3RhdGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1Lmg6MjEwMTppbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmgtMjEwMi1pbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9kZWVwX3NsZWVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGVuYWJsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI3PXN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMzktXFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjQwOlxcdFxcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBcXFwiYXNzZXJ0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0MS1cXHRcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQwMjowNjoyNS41MjAwMzIwMTFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzMzNDkxMDA3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1UNzYgUGF0Y2ggZm9yIERlYnVnZnMgRnVuY3Rpb25hbGl0eSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbidzIHNpZ25hdHVyZSBpbiBgbXQ3Nl9jb25uYWNfbWN1LmNgLiBTcGVjaWZpY2FsbHksIGl0J3MgY2hhbmdpbmcgdGhlIFwiYXNzZXJ0XCIgaGFyZGNvZGVkIHN0cmluZyB0byBhY2NlcHQgYSBgY29uc3QgY2hhciAqY21kYCBhcmd1bWVudC4gVGhlIHBhdGNoIGFsc28gdXBkYXRlcyB0aGUgY2FsbGVycyB3aXRoaW4gYG10NzYxNS9kZWJ1Z2ZzLmNgIGFuZCBgbXQ3OTIxL2RlYnVnZnMuY2AuIFRoZXNlIGFyZSwgb2YgY291cnNlLCBkZWJ1Z2ZzIGZ1bmN0aW9ucywgc28gbXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHNlZSBpZiBhbnkgb3RoZXIgY29kZSBwYXRocyBjYWxsIHRoaXMuIExldCdzIHNlZSBpZiB0aGUgZ3JlcHBlciBjb25maXJtcyB0aGlzIGlzIHRoZSBvbmx5IGNhbGwuIFllcCwganVzdCBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYC5cblxuTm93LCBkZWJ1Z2ZzIGZ1bmN0aW9ucyBhcmUgdHlwaWNhbGx5IGFjY2Vzc2libGUgaWYgdGhlIGRlYnVnZnMgZmlsZXN5c3RlbSBpcyBtb3VudGVkIGFuZCB0aGUgZHJpdmVyIGlzIGxvYWRlZC4gVGhlIGludGVyZXN0aW5nIGFzcGVjdCBoZXJlIGlzIHRoYXQgbXQ3NiBpcyBhIE1lZGlhdGVrIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQgZGVhbHMgd2l0aCBwaHlzaWNhbCBoYXJkd2FyZSBsaWtlIFBDSWUsIFVTQiwgYW5kIFNESU8gaW50ZXJmYWNlcy4gSSBuZWVkIHRvIGNvbnNpZGVyIGhvdyB0aGlzIGNvdWxkIGJlIHRyaWdnZXJlZCBpbiBhIHRlc3RpbmcgZW52aXJvbm1lbnQuXG5cbldhaXQsIG10NzYxNSBpcyBQQ0llLCBtdDc5MjEgY292ZXJzIFBDSWUsIFVTQiwgYW5kIFNESU8uIENhbiB0aGVzZSBkcml2ZXJzIGV2ZW4gYmUgbG9hZGVkIGFuZCBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgd2l0aG91dCBhY3R1YWwgaGFyZHdhcmU/IFVzdWFsbHksIG5vLiBVbmxlc3Mgd2UgaGF2ZSBhIGhhcmR3YXJlIGVtdWxhdG9yLiBCdXQsIHdlIGRvbid0IGhhdmUgTWVkaWF0ZWsgV2ktRmkgaGFyZHdhcmUgZW11bGF0b3JzIGluIHN0YW5kYXJkIFFFTVUuIFRoZW4sIEkgcmVtZW1iZXIgbWFjODAyMTFfaHdzaW0uIEl0J3MgYSBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgbWFjODAyMTEsIGJ1dCBpdCBkb2Vzbid0IGVtdWxhdGUgbXQ3NiBoYXJkd2FyZS5cblxuQWgsIGJ1dCB3YWl0ISBtdDc5MjF1IGlzIGEgVVNCIGRyaXZlciEgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGEgVVNCIGdhZGdldCBvciBhIGR1bW15X2hjZCwgb3IgZXZlbiBzeXprYWxsZXIncyBVU0IgZnV6emVyICh1c2luZyB2aGNpKS4gU28sIG10NzkyMXUgKm1pZ2h0KiBiZSByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nISBJIG5lZWQgdG8gY2hlY2sgaWYgYG10NzkyMV9jaGlwX3Jlc2V0YCAoZm91bmQgaW4gYG10NzkyMS9kZWJ1Z2ZzLmNgKSBpcyB1c2VkIGJ5IGBtdDc5MjF1YC4gTGV0IG1lIHRha2UgYSBsb29rIGF0IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDA0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAyOjA2OjM4Ljg1NDk0NDMzOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODk4NTEzMTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyMV9jaGlwX3Jlc2V0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0yMjQ9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG1faWRsZV90aW1lb3V0LCBtdDc5MnhfcG1faWRsZV90aW1lb3V0X2dldCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIyNzpzdGF0aWMgaW50IG10NzkyMV9jaGlwX3Jlc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNDg6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmVzZXQsIE5VTEwsIG10NzkyMV9jaGlwX3Jlc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6NDAuNzUzNDYzMTgyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxMjQ2MDg2NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVmYWN0b3JpbmcgYSBEZWJ1Z2ZzIENvbW1hbmQgLSBXb3J0aEZ1enppbmc9ZmFsc2UqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0J3MgYSByZWZhY3RvcmluZyBlZmZvcnQsIGFuZCBJJ20gbGVhbmluZyB0b3dhcmRzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBMZXQgbWUgYnJlYWsgaXQgZG93bi5cblxuRXNzZW50aWFsbHksIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbiBpcyBiZWluZyBtb2RpZmllZC4gUHJldmlvdXNseSwgaXQgaGFyZGNvZGVkIHRoZSBjb21tYW5kIHN0cmluZyBgXCJhc3NlcnRcImAuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNvbnN0IGNoYXIgKmNtZGAgYXJndW1lbnQsIHNvIHdlIGNhbiBwYXNzIGluIGEgY29tbWFuZC4gTm93LCB0aGUgY2FsbGVycyBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCAoc3BlY2lmaWNhbGx5LCBgbXQ3NjE1X2NvbmZpZ2AgYW5kIGBtdDc5MjFfY2hpcF9yZXNldGApIG5vdyBwYXNzIHRoZSBzdHJpbmcgYFwiYXNzZXJ0XCJgIGFzIHRoZSBhcmd1bWVudC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgaXMgYW55IGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LlxuXG5Mb29raW5nIGF0IHRoZSBiZWZvcmUgYW5kIGFmdGVyIGNvZGUsIGl0IGJlY29tZXMgY2xlYXIgdGhlcmUgaXMgKmFic29sdXRlbHkqIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGhvdyBleGlzdGluZyBjYWxscyBhcmUgaGFuZGxlZC4gVGhlIG9yaWdpbmFsIGNvZGUgcGFzc2VkIGBcImFzc2VydFwiYCBpbXBsaWNpdGx5LCBhbmQgbm93IGl0IHBhc3NlcyBgXCJhc3NlcnRcImAgZXhwbGljaXRseS4gSSdtIHNhdGlzZmllZCB0aGF0IHRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgbW9kaWZpY2F0aW9uIGluIHRlcm1zIG9mIHdoYXQgZGF0YSBpcyBzZW50LlxuXG5UaGUgY29udGV4dCBpcyBkZWJ1Z2ZzIG9wZXJhdGlvbnMsIHdoaWNoLCB3aGlsZSBub3QgdG90YWxseSBiZXlvbmQgdGhlIHJlYWxtIG9mIGZ1enppbmcsIGFyZSBnZW5lcmFsbHkgbm90IHRoZSBwcmltYXJ5IGZvY3VzLCBlc3BlY2lhbGx5IHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpcyBzbyBsb2NhbGl6ZWQgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgbG9naWMuIFNvIGl0J3Mgc3RpbGwgYSBcIm5vXCIgZm9yIG1lLiBJdCBzaW1wbHkgcGFyYW1ldGVyaXplcyBhIHN0cmluZyB0aGF0IHdhcyBhbHJlYWR5IGhhcmRjb2RlZCwgd2l0aG91dCBhbHRlcmluZyBhbnkgZGF0YSBmbG93IGZvciB0aGUgZXhpc3RpbmcgY2FsbHMuIFRoZSBleGlzdGluZyBkZWJ1Z2ZzIGZ1bmN0aW9uYWxpdHkgcmVtYWlucyB0aGUgc2FtZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTIzMywiT3V0cHV0VG9rZW5zIjo5MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQwMjowNjo1My44NzgwNzkwNDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4ODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNpbXBseSBwYXJhbWV0ZXJpemVzIHRoZSBjb21tYW5kIHN0cmluZyBpbiBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoKSwgY2hhbmdpbmcgaXQgdG8gYWNjZXB0IGEgc3RyaW5nIGFyZ3VtZW50IGluc3RlYWQgb2YgaGFyZGNvZGluZyBcXFwiYXNzZXJ0XFxcIi4gQWxsIGV4aXN0aW5nIGNhbGxlcnMgaW4gZGVidWdmcyBhcmUgdXBkYXRlZCB0byBwYXNzIFxcXCJhc3NlcnRcXFwiLCByZXN1bHRpbmcgaW4gbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHBhcmFtZXRlcml6ZXMgdGhlIGNvbW1hbmQgc3RyaW5nIGluIG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygpLCBjaGFuZ2luZyBpdCB0byBhY2NlcHQgYSBzdHJpbmcgYXJndW1lbnQgaW5zdGVhZCBvZiBoYXJkY29kaW5nIFxcXCJhc3NlcnRcXFwiLiBBbGwgZXhpc3RpbmcgY2FsbGVycyBpbiBkZWJ1Z2ZzIGFyZSB1cGRhdGVkIHRvIHBhc3MgXFxcImFzc2VydFxcXCIsIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQwMjowNjo1My44NzgxMjE3ODhaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm8trg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-21 01:48:15 +0000 UTC FinishedAt: 2026-08-21 02:06:54 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDAyOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2ltcGx5IHBhcmFtZXRlcml6ZXMgdGhlIGNvbW1hbmQgc3RyaW5nIGluIG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygpLCBjaGFuZ2luZyBpdCB0byBhY2NlcHQgYSBzdHJpbmcgYXJndW1lbnQgaW5zdGVhZCBvZiBoYXJkY29kaW5nIFwmIzM0O2Fzc2VydFwmIzM0Oy4gQWxsIGV4aXN0aW5nIGNhbGxlcnMgaW4gZGVidWdmcyBhcmUgdXBkYXRlZCB0byBwYXNzIFwmIzM0O2Fzc2VydFwmIzM0OywgcmVzdWx0aW5nIGluIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMTdlZmJjMzBjMDAyNmQ5MGI2YjJhNTM1YjBjYWJhYzRmMTkzYTY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMjEgMDI6MDY6MTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jXG5pbmRleCA2YTE0NzVlM2M4OTk5Li44M2NmZmE5NGJjMGVkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcbkBAIC01NCw3ICYjNDM7NTQsNyBAQCBzdGF0aWMgaW50IG10NzYxNV9jb25maWcodm9pZCAqZGF0YSwgdTY0IHZhbClcbiBcdGludCByZXQ7XG4gXG4gXHRtdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpO1xuLVx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiYjNDM7XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFwmIzM0O2Fzc2VydFwmIzM0Oyk7XG4gXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xuIFxuIFx0cmV0dXJuIHJldDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuY1xuaW5kZXggMmY5MjVkMjJiOWFhNy4uZGU4M2Q0MWNhOWM5YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcbkBAIC0yMDQ0LDEzICYjNDM7MjA0NCwxMyBAQCBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpO1xuIFxuLWludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4mIzQzO2ludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmNtZClcbiB7XG4gXHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfY29uZmlnIHJlcSA9IHtcbiBcdFx0LnJlc3BfdHlwZSA9IDAsXG4gXHR9O1xuIFxuLVx0c3Ryc2NweShyZXEuZGF0YSwgXCYjMzQ7YXNzZXJ0XCYjMzQ7KTtcbiYjNDM7XHRzdHJzY3B5KHJlcS5kYXRhLCBjbWQpO1xuIFxuIFx0cmV0dXJuIG10NzZfbWN1X3NlbmRfbXNnKGRldiwgTUNVX0NFX0NNRChDSElQX0NPTkZJRyksXG4gXHRcdFx0XHQgXHUwMDI2cmVxLCBzaXplb2YocmVxKSwgZmFsc2UpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXG5pbmRleCAwZWRlZGE1NjllOWE1Li40NWY3N2M4MGU4NzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaFxuQEAgLTIwOTgsNyAmIzQzOzIwOTgsNyBAQCB2b2lkIG10NzZfY29ubmFjX21jdV9zZXRfc3VzcGVuZF9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4gaW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcbiBcdFx0XHQgICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBvbGRfc3RhdGUsXG4gXHRcdFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgbmV3X3N0YXRlKTtcbi1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbiYjNDM7aW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKTtcbiBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9kZWVwX3NsZWVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGVuYWJsZSk7XG4gdm9pZCBtdDc2X2Nvbm5hY19tY3VfY29yZWR1bXBfZXZlbnQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdFx0XHQgICAgc3RydWN0IG10NzZfY29ubmFjX2NvcmVkdW1wICpjb3JlZHVtcCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG5pbmRleCBhNWE3MGQ4ZTg1NDRhLi42MmJmMzMzNDdlOWUyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNcbkBAIC0yMzcsNyAmIzQzOzIzNyw3IEBAIHN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbiBcdGRlZmF1bHQ6XG4gXHRcdC8qIENvbGxlY3QgdGhlIGNvcmUgZHVtcCBiZWZvcmUgcmVzZXQgd2lmaXN5cy4gKi9cbiBcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbi1cdFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiYjNDM7XHRcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgXCYjMzQ7YXNzZXJ0XCYjMzQ7KTtcbiBcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbiBcdFx0YnJlYWs7XG4gXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSBwYXJhbWV0ZXJpemVzIHRoZSBjb21tYW5kIHN0cmluZyBpbiBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoKSwgY2hhbmdpbmcgaXQgdG8gYWNjZXB0IGEgc3RyaW5nIGFyZ3VtZW50IGluc3RlYWQgb2YgaGFyZGNvZGluZyBcJiMzNDthc3NlcnRcJiMzNDsuIEFsbCBleGlzdGluZyBjYWxsZXJzIGluIGRlYnVnZnMgYXJlIHVwZGF0ZWQgdG8gcGFzcyBcJiMzNDthc3NlcnRcJiMzNDssIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMjE3ZWZiYzMwYzAwMjZkOTBiNmIyYTUzNWIwY2FiYWM0ZjE5M2E2NQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDIxIDAyOjA2OjExIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jCmluZGV4IDZhMTQ3NWUzYzg5OTkuLjgzY2ZmYTk0YmMwZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMKQEAgLTU0LDcgJiM0Mzs1NCw3IEBAIHN0YXRpYyBpbnQgbXQ3NjE1X2NvbmZpZyh2b2lkICpkYXRhLCB1NjQgdmFsKQogCWludCByZXQ7CiAKIAltdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpOwotCXJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygmYW1wO2Rldi0mZ3Q7bXQ3Nik7CiYjNDM7CXJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygmYW1wO2Rldi0mZ3Q7bXQ3NiwgJiMzNDthc3NlcnQmIzM0Oyk7CiAJbXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYwppbmRleCAyZjkyNWQyMmI5YWE3Li5kZTgzZDQxY2E5YzlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMKQEAgLTIwNDQsMTMgJiM0MzsyMDQ0LDEzIEBAIGludCBtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUoc3RydWN0IG10NzZfcGh5ICpwaHksCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpOwogCi1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KQomIzQzO2ludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmNtZCkKIHsKIAlzdHJ1Y3QgbXQ3Nl9jb25uYWNfY29uZmlnIHJlcSA9IHsKIAkJLnJlc3BfdHlwZSA9IDAsCiAJfTsKIAotCXN0cnNjcHkocmVxLmRhdGEsICYjMzQ7YXNzZXJ0JiMzNDspOwomIzQzOwlzdHJzY3B5KHJlcS5kYXRhLCBjbWQpOwogCiAJcmV0dXJuIG10NzZfbWN1X3NlbmRfbXNnKGRldiwgTUNVX0NFX0NNRChDSElQX0NPTkZJRyksCiAJCQkJICZhbXA7cmVxLCBzaXplb2YocmVxKSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmgKaW5kZXggMGVkZWRhNTY5ZTlhNS4uNDVmNzdjODBlODc5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oCkBAIC0yMDk4LDcgJiM0MzsyMDk4LDcgQEAgdm9pZCBtdDc2X2Nvbm5hY19tY3Vfc2V0X3N1c3BlbmRfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLAogaW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwKIAkJCSAgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG9sZF9zdGF0ZSwKIAkJCSAgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG5ld19zdGF0ZSk7Ci1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KTsKJiM0MztpbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpOwogaW50IG10NzZfY29ubmFjX21jdV9zZXRfZGVlcF9zbGVlcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBlbmFibGUpOwogdm9pZCBtdDc2X2Nvbm5hY19tY3VfY29yZWR1bXBfZXZlbnQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJICAgIHN0cnVjdCBtdDc2X2Nvbm5hY19jb3JlZHVtcCAqY29yZWR1bXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jCmluZGV4IGE1YTcwZDhlODU0NGEuLjYyYmYzMzM0N2U5ZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMKQEAgLTIzNyw3ICYjNDM7MjM3LDcgQEAgc3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCWRlZmF1bHQ6CiAJCS8qIENvbGxlY3QgdGhlIGNvcmUgZHVtcCBiZWZvcmUgcmVzZXQgd2lmaXN5cy4gKi8KIAkJbXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTsKLQkJcmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKCZhbXA7ZGV2LSZndDttdDc2KTsKJiM0MzsJCXJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygmYW1wO2Rldi0mZ3Q7bXQ3NiwgJiMzNDthc3NlcnQmIzM0Oyk7CiAJCW10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7CiAJCWJyZWFrOwogCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzExNgoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDIxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lZGlhdGVrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIGF0IHRoZSBNZWRpYXRlayBkcml2ZXIsIHNwZWNpZmljYWxseSBtb2RpZnlpbmcgYG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZ2AgaW4gYG10NzZfY29ubmFjX21jdS5jYC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBtYWtpbmcgaXQgbW9yZSBmbGV4aWJsZSBieSBpbnRyb2R1Y2luZyBhIGBjbWRgIHBhcmFtZXRlciBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IGhhcmRjb2RlZCAmIzM0O2Fzc2VydCYjMzQ7LiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBjaGFuZ2U7IHBhcmFtZXRlcml6aW5nIGEgY29tbWFuZCBhbGxvd3MgZm9yIG1vcmUgdmVyc2F0aWxpdHkgYW5kIHBvdGVudGlhbGx5IHJlbW92ZXMgdGhlIG5lZWQgZm9yIG11bHRpcGxlLCBzbGlnaHRseSBkaWZmZXJlbnQgZnVuY3Rpb25zLgoKTm93LCB0aGUgcGF0Y2ggdXBkYXRlcyB0aGUgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCB0byBwYXNzICYjMzQ7YXNzZXJ0JiMzNDsuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGhlIGNvbnRleHQgb2YgZGVidWdnaW5nIGFuZCwgbGlrZWx5LCBjb250cm9sbGluZyB0aGUgY2hpcCYjMzk7cyBiZWhhdmlvciB0aHJvdWdoIGRlYnVnIGludGVyZmFjZXMuIEhvd2V2ZXIsIHRoZSB1c2Ugb2YgYGRlYnVnZnMuY2AgYXMgdGhlIGNhbGxpbmcgZmlsZXMgcmFpc2VzIGEgZmxhZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGNoYW5nZSBpcyBsb2NhbGl6ZWQuCgpMZXQgbWUgdGhpbmvigKYgdGhlIGNhbGxlcnMgYXJlIGluIGBkZWJ1Z2ZzLmNgLCB0aGF0IGlzIGxpa2VseS4gSXMgYG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZ2AgYW4gZXhwb3J0ZWQgc3ltYm9sPyBJdCBzZWVtcyBub3QuIEl0JiMzOTtzIGluIGBtdDc2X2Nvbm5hY19tY3UuY2AgZGlyZWN0bHksIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoYXQuIE9rYXksIGhvbGQgb24uIEFoLCByaWdodCBhYm92ZSBpdCwgSSBzZWUgYEVYUE9SVF9TWU1CT0xfR1BMKG10NzZfY29ubmFjX21jdV9zY2hlZF9zY2FuX2VuYWJsZSk7YC4gU2luY2UgSSYjMzk7bSBoZXJlLCBJIHNob3VsZCBwcm9iYWJseSBhbHNvIGNoZWNrIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSBvZiBgbXQ3Nl9jb25uYWNfbWN1LmNgLiBUaGlzIGNvdWxkIGJlIGltcG9ydGFudCB0byB0aGUgc3RhYmlsaXR5IG9mIHRoZSBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuYz01MT1zdGF0aWMgaW50IG10NzYxNV9jb25maWcodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMtNTYtXHRtdDc2MTVfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jOjU3Olx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTU4LVx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jPTIwNDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjA0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6MjA0NzppbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjA1Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjIwNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmMtMjA1OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oPTIwOTg9aW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oLTIxMDAtXHRcdFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgbmV3X3N0YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1Lmg6MjEwMTppbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaC0yMTAyLWludCBtdDc2X2Nvbm5hY19tY3Vfc2V0X2RlZXBfc2xlZXAoc3RydWN0IG10NzZfZGV2ICpkZXYsIGJvb2wgZW5hYmxlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI3PXN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjM5LVx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI0MDpcdFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFx1MDAyNmRldi1cdTAwM2VtdDc2LCBcJiMzNDthc3NlcnRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0MS1cdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDA0CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogNDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3NiBQYXRjaCBmb3IgRGVidWdmcyBGdW5jdGlvbmFsaXR5KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbiYjMzk7cyBzaWduYXR1cmUgaW4gYG10NzZfY29ubmFjX21jdS5jYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBjaGFuZ2luZyB0aGUgJiMzNDthc3NlcnQmIzM0OyBoYXJkY29kZWQgc3RyaW5nIHRvIGFjY2VwdCBhIGBjb25zdCBjaGFyICpjbWRgIGFyZ3VtZW50LiBUaGUgcGF0Y2ggYWxzbyB1cGRhdGVzIHRoZSBjYWxsZXJzIHdpdGhpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYC4gVGhlc2UgYXJlLCBvZiBjb3Vyc2UsIGRlYnVnZnMgZnVuY3Rpb25zLCBzbyBteSBpbml0aWFsIHRob3VnaHQgaXMgdG8gc2VlIGlmIGFueSBvdGhlciBjb2RlIHBhdGhzIGNhbGwgdGhpcy4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgZ3JlcHBlciBjb25maXJtcyB0aGlzIGlzIHRoZSBvbmx5IGNhbGwuIFllcCwganVzdCBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYC4KCk5vdywgZGVidWdmcyBmdW5jdGlvbnMgYXJlIHR5cGljYWxseSBhY2Nlc3NpYmxlIGlmIHRoZSBkZWJ1Z2ZzIGZpbGVzeXN0ZW0gaXMgbW91bnRlZCBhbmQgdGhlIGRyaXZlciBpcyBsb2FkZWQuIFRoZSBpbnRlcmVzdGluZyBhc3BlY3QgaGVyZSBpcyB0aGF0IG10NzYgaXMgYSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIG1lYW5zIGl0IGRlYWxzIHdpdGggcGh5c2ljYWwgaGFyZHdhcmUgbGlrZSBQQ0llLCBVU0IsIGFuZCBTRElPIGludGVyZmFjZXMuIEkgbmVlZCB0byBjb25zaWRlciBob3cgdGhpcyBjb3VsZCBiZSB0cmlnZ2VyZWQgaW4gYSB0ZXN0aW5nIGVudmlyb25tZW50LgoKV2FpdCwgbXQ3NjE1IGlzIFBDSWUsIG10NzkyMSBjb3ZlcnMgUENJZSwgVVNCLCBhbmQgU0RJTy4gQ2FuIHRoZXNlIGRyaXZlcnMgZXZlbiBiZSBsb2FkZWQgYW5kIHByb2JlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSB3aXRob3V0IGFjdHVhbCBoYXJkd2FyZT8gVXN1YWxseSwgbm8uIFVubGVzcyB3ZSBoYXZlIGEgaGFyZHdhcmUgZW11bGF0b3IuIEJ1dCwgd2UgZG9uJiMzOTt0IGhhdmUgTWVkaWF0ZWsgV2ktRmkgaGFyZHdhcmUgZW11bGF0b3JzIGluIHN0YW5kYXJkIFFFTVUuIFRoZW4sIEkgcmVtZW1iZXIgbWFjODAyMTFfaHdzaW0uIEl0JiMzOTtzIGEgc29mdHdhcmUgZW11bGF0b3IgZm9yIG1hYzgwMjExLCBidXQgaXQgZG9lc24mIzM5O3QgZW11bGF0ZSBtdDc2IGhhcmR3YXJlLgoKQWgsIGJ1dCB3YWl0ISBtdDc5MjF1IGlzIGEgVVNCIGRyaXZlciEgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGEgVVNCIGdhZGdldCBvciBhIGR1bW15X2hjZCwgb3IgZXZlbiBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enplciAodXNpbmcgdmhjaSkuIFNvLCBtdDc5MjF1ICptaWdodCogYmUgcmVhY2hhYmxlIHZpYSBVU0IgZnV6emluZyEgSSBuZWVkIHRvIGNoZWNrIGlmIGBtdDc5MjFfY2hpcF9yZXNldGAgKGZvdW5kIGluIGBtdDc5MjEvZGVidWdmcy5jYCkgaXMgdXNlZCBieSBgbXQ3OTIxdWAuIExldCBtZSB0YWtlIGEgbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MjFfY2hpcF9yZXNldCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI0PURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjc6c3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNDg6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmVzZXQsIE5VTEwsIG10NzkyMV9jaGlwX3Jlc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDktXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDI6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTIzMwoJCQkJCQkJb3V0cHV0OiA5MQoJCQkJCQkJdGhvdWdodHM6IDQ0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWZhY3RvcmluZyBhIERlYnVnZnMgQ29tbWFuZCAtIFdvcnRoRnV6emluZz1mYWxzZSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0JiMzOTtzIGEgcmVmYWN0b3JpbmcgZWZmb3J0LCBhbmQgSSYjMzk7bSBsZWFuaW5nIHRvd2FyZHMgYFdvcnRoRnV6emluZz1mYWxzZWAuIExldCBtZSBicmVhayBpdCBkb3duLgoKRXNzZW50aWFsbHksIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbiBpcyBiZWluZyBtb2RpZmllZC4gUHJldmlvdXNseSwgaXQgaGFyZGNvZGVkIHRoZSBjb21tYW5kIHN0cmluZyBgJiMzNDthc3NlcnQmIzM0O2AuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNvbnN0IGNoYXIgKmNtZGAgYXJndW1lbnQsIHNvIHdlIGNhbiBwYXNzIGluIGEgY29tbWFuZC4gTm93LCB0aGUgY2FsbGVycyBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCAoc3BlY2lmaWNhbGx5LCBgbXQ3NjE1X2NvbmZpZ2AgYW5kIGBtdDc5MjFfY2hpcF9yZXNldGApIG5vdyBwYXNzIHRoZSBzdHJpbmcgYCYjMzQ7YXNzZXJ0JiMzNDtgIGFzIHRoZSBhcmd1bWVudC4KCkkgbmVlZCB0byBjb25maXJtIGlmIHRoZXJlIGlzIGFueSBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KCkxvb2tpbmcgYXQgdGhlIGJlZm9yZSBhbmQgYWZ0ZXIgY29kZSwgaXQgYmVjb21lcyBjbGVhciB0aGVyZSBpcyAqYWJzb2x1dGVseSogbm8gZnVuY3Rpb25hbCBjaGFuZ2UgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgaG93IGV4aXN0aW5nIGNhbGxzIGFyZSBoYW5kbGVkLiBUaGUgb3JpZ2luYWwgY29kZSBwYXNzZWQgYCYjMzQ7YXNzZXJ0JiMzNDtgIGltcGxpY2l0bHksIGFuZCBub3cgaXQgcGFzc2VzIGAmIzM0O2Fzc2VydCYjMzQ7YCBleHBsaWNpdGx5LiBJJiMzOTttIHNhdGlzZmllZCB0aGF0IHRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgbW9kaWZpY2F0aW9uIGluIHRlcm1zIG9mIHdoYXQgZGF0YSBpcyBzZW50LgoKVGhlIGNvbnRleHQgaXMgZGVidWdmcyBvcGVyYXRpb25zLCB3aGljaCwgd2hpbGUgbm90IHRvdGFsbHkgYmV5b25kIHRoZSByZWFsbSBvZiBmdXp6aW5nLCBhcmUgZ2VuZXJhbGx5IG5vdCB0aGUgcHJpbWFyeSBmb2N1cywgZXNwZWNpYWxseSB3aGVuIHRoZSBtb2RpZmljYXRpb24gaXMgc28gbG9jYWxpemVkIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IG5ldyBsb2dpYy4gU28gaXQmIzM5O3Mgc3RpbGwgYSAmIzM0O25vJiMzNDsgZm9yIG1lLiBJdCBzaW1wbHkgcGFyYW1ldGVyaXplcyBhIHN0cmluZyB0aGF0IHdhcyBhbHJlYWR5IGhhcmRjb2RlZCwgd2l0aG91dCBhbHRlcmluZyBhbnkgZGF0YSBmbG93IGZvciB0aGUgZXhpc3RpbmcgY2FsbHMuIFRoZSBleGlzdGluZyBkZWJ1Z2ZzIGZ1bmN0aW9uYWxpdHkgcmVtYWlucyB0aGUgc2FtZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSBwYXJhbWV0ZXJpemVzIHRoZSBjb21tYW5kIHN0cmluZyBpbiBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoKSwgY2hhbmdpbmcgaXQgdG8gYWNjZXB0IGEgc3RyaW5nIGFyZ3VtZW50IGluc3RlYWQgb2YgaGFyZGNvZGluZyBcJiMzNDthc3NlcnRcJiMzNDsuIEFsbCBleGlzdGluZyBjYWxsZXJzIGluIGRlYnVnZnMgYXJlIHVwZGF0ZWQgdG8gcGFzcyBcJiMzNDthc3NlcnRcJiMzNDssIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzaW1wbHkgcGFyYW1ldGVyaXplcyB0aGUgY29tbWFuZCBzdHJpbmcgaW4gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKCksIGNoYW5naW5nIGl0IHRvIGFjY2VwdCBhIHN0cmluZyBhcmd1bWVudCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgXCYjMzQ7YXNzZXJ0XCYjMzQ7LiBBbGwgZXhpc3RpbmcgY2FsbGVycyBpbiBkZWJ1Z2ZzIGFyZSB1cGRhdGVkIHRvIHBhc3MgXCYjMzQ7YXNzZXJ0XCYjMzQ7LCByZXN1bHRpbmcgaW4gbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMjowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6MTIuMTMwMTU1Nzk4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE3NDc5ODIzMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzaW1wbHkgcGFyYW1ldGVyaXplcyB0aGUgY29tbWFuZCBzdHJpbmcgaW4gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKCksIGNoYW5naW5nIGl0IHRvIGFjY2VwdCBhIHN0cmluZyBhcmd1bWVudCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgXFxcImFzc2VydFxcXCIuIEFsbCBleGlzdGluZyBjYWxsZXJzIGluIGRlYnVnZnMgYXJlIHVwZGF0ZWQgdG8gcGFzcyBcXFwiYXNzZXJ0XFxcIiwgcmVzdWx0aW5nIGluIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAyOjA2OjEyLjEzMDE2MTYzOFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY0NzY4MzAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjE3ZWZiYzMwYzAwMjZkOTBiNmIyYTUzNWIwY2FiYWM0ZjE5M2E2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMjowNjoxMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcXG5pbmRleCA2YTE0NzVlM2M4OTk5Li44M2NmZmE5NGJjMGVkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuY1xcbkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBpbnQgbXQ3NjE1X2NvbmZpZyh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbiBcXHRpbnQgcmV0O1xcbiBcXG4gXFx0bXQ3NjE1X211dGV4X2FjcXVpcmUoZGV2KTtcXG4tXFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbitcXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFxcImFzc2VydFxcXCIpO1xcbiBcXHRtdDc2MTVfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbiBcXG4gXFx0cmV0dXJuIHJldDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcXG5pbmRleCAyZjkyNWQyMmI5YWE3Li5kZTgzZDQxY2E5YzlhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jXFxuQEAgLTIwNDQsMTMgKzIwNDQsMTMgQEAgaW50IG10NzZfY29ubmFjX21jdV9zY2hlZF9zY2FuX2VuYWJsZShzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcXG4gfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpO1xcbiBcXG4taW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKVxcbiB7XFxuIFxcdHN0cnVjdCBtdDc2X2Nvbm5hY19jb25maWcgcmVxID0ge1xcbiBcXHRcXHQucmVzcF90eXBlID0gMCxcXG4gXFx0fTtcXG4gXFxuLVxcdHN0cnNjcHkocmVxLmRhdGEsIFxcXCJhc3NlcnRcXFwiKTtcXG4rXFx0c3Ryc2NweShyZXEuZGF0YSwgY21kKTtcXG4gXFxuIFxcdHJldHVybiBtdDc2X21jdV9zZW5kX21zZyhkZXYsIE1DVV9DRV9DTUQoQ0hJUF9DT05GSUcpLFxcbiBcXHRcXHRcXHRcXHQgXFx1MDAyNnJlcSwgc2l6ZW9mKHJlcSksIGZhbHNlKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmhcXG5pbmRleCAwZWRlZGE1NjllOWE1Li40NWY3N2M4MGU4NzljIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXFxuQEAgLTIwOTgsNyArMjA5OCw3IEBAIHZvaWQgbXQ3Nl9jb25uYWNfbWN1X3NldF9zdXNwZW5kX2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYyxcXG4gaW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4gXFx0XFx0XFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgb2xkX3N0YXRlLFxcbiBcXHRcXHRcXHQgICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBuZXdfc3RhdGUpO1xcbi1pbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKTtcXG4gaW50IG10NzZfY29ubmFjX21jdV9zZXRfZGVlcF9zbGVlcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgYm9vbCBlbmFibGUpO1xcbiB2b2lkIG10NzZfY29ubmFjX21jdV9jb3JlZHVtcF9ldmVudChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBtdDc2X2Nvbm5hY19jb3JlZHVtcCAqY29yZWR1bXApO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNcXG5pbmRleCBhNWE3MGQ4ZTg1NDRhLi42MmJmMzMzNDdlOWUyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuY1xcbkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbiBcXHRkZWZhdWx0OlxcbiBcXHRcXHQvKiBDb2xsZWN0IHRoZSBjb3JlIGR1bXAgYmVmb3JlIHJlc2V0IHdpZmlzeXMuICovXFxuIFxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuLVxcdFxcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4rXFx0XFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIFxcXCJhc3NlcnRcXFwiKTtcXG4gXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6MTIuNTk1NzY4NDdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MTI4MjM1MDgyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHBhcmFtZXRlcml6ZXMgdGhlIGNvbW1hbmQgc3RyaW5nIGluIG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygpLCBjaGFuZ2luZyBpdCB0byBhY2NlcHQgYSBzdHJpbmcgYXJndW1lbnQgaW5zdGVhZCBvZiBoYXJkY29kaW5nIFxcXCJhc3NlcnRcXFwiLiBBbGwgZXhpc3RpbmcgY2FsbGVycyBpbiBkZWJ1Z2ZzIGFyZSB1cGRhdGVkIHRvIHBhc3MgXFxcImFzc2VydFxcXCIsIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyMTdlZmJjMzBjMDAyNmQ5MGI2YjJhNTM1YjBjYWJhYzRmMTkzYTY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMjEgMDI6MDY6MTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcbmluZGV4IDZhMTQ3NWUzYzg5OTkuLjgzY2ZmYTk0YmMwZWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RlYnVnZnMuY1xuQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGludCBtdDc2MTVfY29uZmlnKHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4gXHRpbnQgcmV0O1xuIFxuIFx0bXQ3NjE1X211dGV4X2FjcXVpcmUoZGV2KTtcbi1cdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4rXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFwiYXNzZXJ0XCIpO1xuIFx0bXQ3NjE1X211dGV4X3JlbGVhc2UoZGV2KTtcbiBcbiBcdHJldHVybiByZXQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmNcbmluZGV4IDJmOTI1ZDIyYjlhYTcuLmRlODNkNDFjYTljOWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jXG5AQCAtMjA0NCwxMyArMjA0NCwxMyBAQCBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19tY3Vfc2NoZWRfc2Nhbl9lbmFibGUpO1xuIFxuLWludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKVxuIHtcbiBcdHN0cnVjdCBtdDc2X2Nvbm5hY19jb25maWcgcmVxID0ge1xuIFx0XHQucmVzcF90eXBlID0gMCxcbiBcdH07XG4gXG4tXHRzdHJzY3B5KHJlcS5kYXRhLCBcImFzc2VydFwiKTtcbitcdHN0cnNjcHkocmVxLmRhdGEsIGNtZCk7XG4gXG4gXHRyZXR1cm4gbXQ3Nl9tY3Vfc2VuZF9tc2coZGV2LCBNQ1VfQ0VfQ01EKENISVBfQ09ORklHKSxcbiBcdFx0XHRcdCBcdTAwMjZyZXEsIHNpemVvZihyZXEpLCBmYWxzZSk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmhcbmluZGV4IDBlZGVkYTU2OWU5YTUuLjQ1Zjc3YzgwZTg3OWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oXG5AQCAtMjA5OCw3ICsyMDk4LDcgQEAgdm9pZCBtdDc2X2Nvbm5hY19tY3Vfc2V0X3N1c3BlbmRfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxuIGludCBtdDc2X2Nvbm5hY19zdGFfc3RhdGVfZHAoc3RydWN0IG10NzZfZGV2ICpkZXYsXG4gXHRcdFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgb2xkX3N0YXRlLFxuIFx0XHRcdCAgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG5ld19zdGF0ZSk7XG4taW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XG4raW50IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgY29uc3QgY2hhciAqY21kKTtcbiBpbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9kZWVwX3NsZWVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGVuYWJsZSk7XG4gdm9pZCBtdDc2X2Nvbm5hY19tY3VfY29yZWR1bXBfZXZlbnQoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdFx0XHQgICAgc3RydWN0IG10NzZfY29ubmFjX2NvcmVkdW1wICpjb3JlZHVtcCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG5pbmRleCBhNWE3MGQ4ZTg1NDRhLi42MmJmMzMzNDdlOWUyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNcbkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuIFx0ZGVmYXVsdDpcbiBcdFx0LyogQ29sbGVjdCB0aGUgY29yZSBkdW1wIGJlZm9yZSByZXNldCB3aWZpc3lzLiAqL1xuIFx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuLVx0XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuK1x0XHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFwiYXNzZXJ0XCIpO1xuIFx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuIFx0XHRicmVhaztcbiBcdH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAyOjA2OjEyLjU5NTc3ODIzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA5OTgyNTc2ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWRpYXRlayBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIGF0IHRoZSBNZWRpYXRlayBkcml2ZXIsIHNwZWNpZmljYWxseSBtb2RpZnlpbmcgYG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZ2AgaW4gYG10NzZfY29ubmFjX21jdS5jYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIG1ha2luZyBpdCBtb3JlIGZsZXhpYmxlIGJ5IGludHJvZHVjaW5nIGEgYGNtZGAgcGFyYW1ldGVyIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgaGFyZGNvZGVkIFwiYXNzZXJ0XCIuIFRoYXQncyBhIHJlYXNvbmFibGUgY2hhbmdlOyBwYXJhbWV0ZXJpemluZyBhIGNvbW1hbmQgYWxsb3dzIGZvciBtb3JlIHZlcnNhdGlsaXR5IGFuZCBwb3RlbnRpYWxseSByZW1vdmVzIHRoZSBuZWVkIGZvciBtdWx0aXBsZSwgc2xpZ2h0bHkgZGlmZmVyZW50IGZ1bmN0aW9ucy5cblxuTm93LCB0aGUgcGF0Y2ggdXBkYXRlcyB0aGUgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCB0byBwYXNzIFwiYXNzZXJ0XCIuIFRoYXQgbWFrZXMgc2Vuc2UgaW4gdGhlIGNvbnRleHQgb2YgZGVidWdnaW5nIGFuZCwgbGlrZWx5LCBjb250cm9sbGluZyB0aGUgY2hpcCdzIGJlaGF2aW9yIHRocm91Z2ggZGVidWcgaW50ZXJmYWNlcy4gSG93ZXZlciwgdGhlIHVzZSBvZiBgZGVidWdmcy5jYCBhcyB0aGUgY2FsbGluZyBmaWxlcyByYWlzZXMgYSBmbGFnLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgY2hhbmdlIGlzIGxvY2FsaXplZC5cblxuTGV0IG1lIHRoaW5r4oCmIHRoZSBjYWxsZXJzIGFyZSBpbiBgZGVidWdmcy5jYCwgdGhhdCBpcyBsaWtlbHkuIElzIGBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWdgIGFuIGV4cG9ydGVkIHN5bWJvbD8gSXQgc2VlbXMgbm90LiBJdCdzIGluIGBtdDc2X2Nvbm5hY19tY3UuY2AgZGlyZWN0bHksIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhhdC4gT2theSwgaG9sZCBvbi4gQWgsIHJpZ2h0IGFib3ZlIGl0LCBJIHNlZSBgRVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKTtgLiBTaW5jZSBJJ20gaGVyZSwgSSBzaG91bGQgcHJvYmFibHkgYWxzbyBjaGVjayB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2YgYG10NzZfY29ubmFjX21jdS5jYC4gVGhpcyBjb3VsZCBiZSBpbXBvcnRhbnQgdG8gdGhlIHN0YWJpbGl0eSBvZiB0aGUgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTE2LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6MjMuNTk0MDM3OTFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkyNTk4OTExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jPTUxPXN0YXRpYyBpbnQgbXQ3NjE1X2NvbmZpZyh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTU2LVxcdG10NzYxNV9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jOjU3OlxcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBcXFwiYXNzZXJ0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTU4LVxcdG10NzYxNV9tdXRleF9yZWxlYXNlKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jPTIwNDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYzoyMDQ3OmludCBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoc3RydWN0IG10NzZfZGV2ICpkZXYsIGNvbnN0IGNoYXIgKmNtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy0yMDU3LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjIwNTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTIwNTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5oPTIwOTg9aW50IG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmgtMjEwMC1cXHRcXHRcXHQgICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBuZXdfc3RhdGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1Lmg6MjEwMTppbnQgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBjb25zdCBjaGFyICpjbWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmgtMjEwMi1pbnQgbXQ3Nl9jb25uYWNfbWN1X3NldF9kZWVwX3NsZWVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBib29sIGVuYWJsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI3PXN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMzktXFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjQwOlxcdFxcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBcXFwiYXNzZXJ0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0MS1cXHRcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQwMjowNjoyNS41MjAwMzIwMTFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzMzNDkxMDA3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1UNzYgUGF0Y2ggZm9yIERlYnVnZnMgRnVuY3Rpb25hbGl0eSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbidzIHNpZ25hdHVyZSBpbiBgbXQ3Nl9jb25uYWNfbWN1LmNgLiBTcGVjaWZpY2FsbHksIGl0J3MgY2hhbmdpbmcgdGhlIFwiYXNzZXJ0XCIgaGFyZGNvZGVkIHN0cmluZyB0byBhY2NlcHQgYSBgY29uc3QgY2hhciAqY21kYCBhcmd1bWVudC4gVGhlIHBhdGNoIGFsc28gdXBkYXRlcyB0aGUgY2FsbGVycyB3aXRoaW4gYG10NzYxNS9kZWJ1Z2ZzLmNgIGFuZCBgbXQ3OTIxL2RlYnVnZnMuY2AuIFRoZXNlIGFyZSwgb2YgY291cnNlLCBkZWJ1Z2ZzIGZ1bmN0aW9ucywgc28gbXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHNlZSBpZiBhbnkgb3RoZXIgY29kZSBwYXRocyBjYWxsIHRoaXMuIExldCdzIHNlZSBpZiB0aGUgZ3JlcHBlciBjb25maXJtcyB0aGlzIGlzIHRoZSBvbmx5IGNhbGwuIFllcCwganVzdCBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYC5cblxuTm93LCBkZWJ1Z2ZzIGZ1bmN0aW9ucyBhcmUgdHlwaWNhbGx5IGFjY2Vzc2libGUgaWYgdGhlIGRlYnVnZnMgZmlsZXN5c3RlbSBpcyBtb3VudGVkIGFuZCB0aGUgZHJpdmVyIGlzIGxvYWRlZC4gVGhlIGludGVyZXN0aW5nIGFzcGVjdCBoZXJlIGlzIHRoYXQgbXQ3NiBpcyBhIE1lZGlhdGVrIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQgZGVhbHMgd2l0aCBwaHlzaWNhbCBoYXJkd2FyZSBsaWtlIFBDSWUsIFVTQiwgYW5kIFNESU8gaW50ZXJmYWNlcy4gSSBuZWVkIHRvIGNvbnNpZGVyIGhvdyB0aGlzIGNvdWxkIGJlIHRyaWdnZXJlZCBpbiBhIHRlc3RpbmcgZW52aXJvbm1lbnQuXG5cbldhaXQsIG10NzYxNSBpcyBQQ0llLCBtdDc5MjEgY292ZXJzIFBDSWUsIFVTQiwgYW5kIFNESU8uIENhbiB0aGVzZSBkcml2ZXJzIGV2ZW4gYmUgbG9hZGVkIGFuZCBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgd2l0aG91dCBhY3R1YWwgaGFyZHdhcmU/IFVzdWFsbHksIG5vLiBVbmxlc3Mgd2UgaGF2ZSBhIGhhcmR3YXJlIGVtdWxhdG9yLiBCdXQsIHdlIGRvbid0IGhhdmUgTWVkaWF0ZWsgV2ktRmkgaGFyZHdhcmUgZW11bGF0b3JzIGluIHN0YW5kYXJkIFFFTVUuIFRoZW4sIEkgcmVtZW1iZXIgbWFjODAyMTFfaHdzaW0uIEl0J3MgYSBzb2Z0d2FyZSBlbXVsYXRvciBmb3IgbWFjODAyMTEsIGJ1dCBpdCBkb2Vzbid0IGVtdWxhdGUgbXQ3NiBoYXJkd2FyZS5cblxuQWgsIGJ1dCB3YWl0ISBtdDc5MjF1IGlzIGEgVVNCIGRyaXZlciEgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGEgVVNCIGdhZGdldCBvciBhIGR1bW15X2hjZCwgb3IgZXZlbiBzeXprYWxsZXIncyBVU0IgZnV6emVyICh1c2luZyB2aGNpKS4gU28sIG10NzkyMXUgKm1pZ2h0KiBiZSByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nISBJIG5lZWQgdG8gY2hlY2sgaWYgYG10NzkyMV9jaGlwX3Jlc2V0YCAoZm91bmQgaW4gYG10NzkyMS9kZWJ1Z2ZzLmNgKSBpcyB1c2VkIGJ5IGBtdDc5MjF1YC4gTGV0IG1lIHRha2UgYSBsb29rIGF0IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDA0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAyOjA2OjM4Ljg1NDk0NDMzOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODk4NTEzMTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyMV9jaGlwX3Jlc2V0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0yMjQ9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG1faWRsZV90aW1lb3V0LCBtdDc5MnhfcG1faWRsZV90aW1lb3V0X2dldCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIyNzpzdGF0aWMgaW50IG10NzkyMV9jaGlwX3Jlc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNDg6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmVzZXQsIE5VTEwsIG10NzkyMV9jaGlwX3Jlc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDI6MDY6NDAuNzUzNDYzMTgyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxMjQ2MDg2NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVmYWN0b3JpbmcgYSBEZWJ1Z2ZzIENvbW1hbmQgLSBXb3J0aEZ1enppbmc9ZmFsc2UqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0J3MgYSByZWZhY3RvcmluZyBlZmZvcnQsIGFuZCBJJ20gbGVhbmluZyB0b3dhcmRzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBMZXQgbWUgYnJlYWsgaXQgZG93bi5cblxuRXNzZW50aWFsbHksIHRoZSBgbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnYCBmdW5jdGlvbiBpcyBiZWluZyBtb2RpZmllZC4gUHJldmlvdXNseSwgaXQgaGFyZGNvZGVkIHRoZSBjb21tYW5kIHN0cmluZyBgXCJhc3NlcnRcImAuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNvbnN0IGNoYXIgKmNtZGAgYXJndW1lbnQsIHNvIHdlIGNhbiBwYXNzIGluIGEgY29tbWFuZC4gTm93LCB0aGUgY2FsbGVycyBpbiBgbXQ3NjE1L2RlYnVnZnMuY2AgYW5kIGBtdDc5MjEvZGVidWdmcy5jYCAoc3BlY2lmaWNhbGx5LCBgbXQ3NjE1X2NvbmZpZ2AgYW5kIGBtdDc5MjFfY2hpcF9yZXNldGApIG5vdyBwYXNzIHRoZSBzdHJpbmcgYFwiYXNzZXJ0XCJgIGFzIHRoZSBhcmd1bWVudC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgaXMgYW55IGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LlxuXG5Mb29raW5nIGF0IHRoZSBiZWZvcmUgYW5kIGFmdGVyIGNvZGUsIGl0IGJlY29tZXMgY2xlYXIgdGhlcmUgaXMgKmFic29sdXRlbHkqIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGhvdyBleGlzdGluZyBjYWxscyBhcmUgaGFuZGxlZC4gVGhlIG9yaWdpbmFsIGNvZGUgcGFzc2VkIGBcImFzc2VydFwiYCBpbXBsaWNpdGx5LCBhbmQgbm93IGl0IHBhc3NlcyBgXCJhc3NlcnRcImAgZXhwbGljaXRseS4gSSdtIHNhdGlzZmllZCB0aGF0IHRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgbW9kaWZpY2F0aW9uIGluIHRlcm1zIG9mIHdoYXQgZGF0YSBpcyBzZW50LlxuXG5UaGUgY29udGV4dCBpcyBkZWJ1Z2ZzIG9wZXJhdGlvbnMsIHdoaWNoLCB3aGlsZSBub3QgdG90YWxseSBiZXlvbmQgdGhlIHJlYWxtIG9mIGZ1enppbmcsIGFyZSBnZW5lcmFsbHkgbm90IHRoZSBwcmltYXJ5IGZvY3VzLCBlc3BlY2lhbGx5IHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpcyBzbyBsb2NhbGl6ZWQgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgbG9naWMuIFNvIGl0J3Mgc3RpbGwgYSBcIm5vXCIgZm9yIG1lLiBJdCBzaW1wbHkgcGFyYW1ldGVyaXplcyBhIHN0cmluZyB0aGF0IHdhcyBhbHJlYWR5IGhhcmRjb2RlZCwgd2l0aG91dCBhbHRlcmluZyBhbnkgZGF0YSBmbG93IGZvciB0aGUgZXhpc3RpbmcgY2FsbHMuIFRoZSBleGlzdGluZyBkZWJ1Z2ZzIGZ1bmN0aW9uYWxpdHkgcmVtYWlucyB0aGUgc2FtZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTIzMywiT3V0cHV0VG9rZW5zIjo5MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQwMjowNjo1My44NzgwNzkwNDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4ODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNpbXBseSBwYXJhbWV0ZXJpemVzIHRoZSBjb21tYW5kIHN0cmluZyBpbiBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoKSwgY2hhbmdpbmcgaXQgdG8gYWNjZXB0IGEgc3RyaW5nIGFyZ3VtZW50IGluc3RlYWQgb2YgaGFyZGNvZGluZyBcXFwiYXNzZXJ0XFxcIi4gQWxsIGV4aXN0aW5nIGNhbGxlcnMgaW4gZGVidWdmcyBhcmUgdXBkYXRlZCB0byBwYXNzIFxcXCJhc3NlcnRcXFwiLCByZXN1bHRpbmcgaW4gbm8gZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHBhcmFtZXRlcml6ZXMgdGhlIGNvbW1hbmQgc3RyaW5nIGluIG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZygpLCBjaGFuZ2luZyBpdCB0byBhY2NlcHQgYSBzdHJpbmcgYXJndW1lbnQgaW5zdGVhZCBvZiBoYXJkY29kaW5nIFxcXCJhc3NlcnRcXFwiLiBBbGwgZXhpc3RpbmcgY2FsbGVycyBpbiBkZWJ1Z2ZzIGFyZSB1cGRhdGVkIHRvIHBhc3MgXFxcImFzc2VydFxcXCIsIHJlc3VsdGluZyBpbiBubyBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQwMjowNjo1My44NzgxMjE3ODhaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm8trg[1] Phase: Running StartedAt: 2026-08-21 02:07:04 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm8trg[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-21 02:07:04 +0000 UTC FinishedAt: 2026-08-21 02:07:09 +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,}