Name: series-workflow87fs6 Phase: Failed StartedAt: 2026-09-10 07:33:10 +0000 UTC FinishedAt: 2026-09-10 07:58:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow87fs6[0] Phase: Succeeded StartedAt: 2026-09-10 07:33:10 +0000 UTC FinishedAt: 2026-09-10 07:58:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow87fs6[0].run-triage Phase: Succeeded StartedAt: 2026-09-10 07:33:10 +0000 UTC FinishedAt: 2026-09-10 07:58:22 +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+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI3MzI1OGM5ZTUwMTI2Mzk1YjAyNjQ4NGM3NzYwMzQyMTVlNDM2OGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAxMCAwNzo1Nzo0NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbmluZGV4IGVmMWI0YzgxODQzYTMuLjg4ZWMyZmZkOWYwMGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY1xuQEAgLTE2LDEwICYjNDM7MTYsMTIgQEAgc3RhdGljIGludCBhdGgxMWtfZndfcmVxdWVzdF9maXJtd2FyZV9hcGlfbihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuIFx0c3RydWN0IGF0aDExa19md19pZSAqaGRyO1xuIFx0Y29uc3QgdTggKmRhdGE7XG4gXHRfX2xlMzIgKnRpbWVzdGFtcDtcbiYjNDM7XHRjaGFyIHBhdGhbMTAwXTtcbiBcbi1cdGFiLVx1MDAzZWZ3LmZ3ID0gYXRoMTFrX2NvcmVfZmlybXdhcmVfcmVxdWVzdChhYiwgbmFtZSk7XG4tXHRpZiAoSVNfRVJSKGFiLVx1MDAzZWZ3LmZ3KSkge1xuLVx0XHRyZXQgPSBQVFJfRVJSKGFiLVx1MDAzZWZ3LmZ3KTtcbiYjNDM7XHRhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aChhYiwgbmFtZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKTtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QoXHUwMDI2YWItXHUwMDNlZncuZncsIHBhdGgsIGFiLVx1MDAzZWRldik7XG4mIzQzO1x0aWYgKHJldCkge1xuIFx0XHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0JPT1QsIFwmIzM0O2ZhaWxlZCB0byBsb2FkICVzOiAlZFxcblwmIzM0OywgbmFtZSwgcmV0KTtcbiBcdFx0YWItXHUwMDNlZncuZncgPSBOVUxMO1xuIFx0XHRyZXR1cm4gcmV0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uIGluIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYywgd2hpY2ggYmVsb25ncyB0byB0aGUgUXVhbGNvbW0gODAyLjExYXggKGF0aDExaykgd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBRdWFsY29tbSBQQ0llL0FIQiBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNzMyNThjOWU1MDEyNjM5NWIwMjY0ODRjNzc2MDM0MjE1ZTQzNjhjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBTZXAgMTAgMDc6NTc6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMKaW5kZXggZWYxYjRjODE4NDNhMy4uODhlYzJmZmQ5ZjAwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYwpAQCAtMTYsMTAgJiM0MzsxNiwxMiBAQCBzdGF0aWMgaW50IGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsCiAJc3RydWN0IGF0aDExa19md19pZSAqaGRyOwogCWNvbnN0IHU4ICpkYXRhOwogCV9fbGUzMiAqdGltZXN0YW1wOwomIzQzOwljaGFyIHBhdGhbMTAwXTsKIAotCWFiLSZndDtmdy5mdyA9IGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3QoYWIsIG5hbWUpOwotCWlmIChJU19FUlIoYWItJmd0O2Z3LmZ3KSkgewotCQlyZXQgPSBQVFJfRVJSKGFiLSZndDtmdy5mdyk7CiYjNDM7CWF0aDExa19jb3JlX2NyZWF0ZV9maXJtd2FyZV9wYXRoKGFiLCBuYW1lLCBwYXRoLCBzaXplb2YocGF0aCkpOwomIzQzOwomIzQzOwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCgmYW1wO2FiLSZndDtmdy5mdywgcGF0aCwgYWItJmd0O2Rldik7CiYjNDM7CWlmIChyZXQpIHsKIAkJYXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19CT09ULCAmIzM0O2ZhaWxlZCB0byBsb2FkICVzOiAlZFxuJiMzNDssIG5hbWUsIHJldCk7CiAJCWFiLSZndDtmdy5mdyA9IE5VTEw7CiAJCXJldHVybiByZXQ7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMzgKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUXVhbGNvbW0gV2lyZWxlc3MgRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gSXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgY2hhbmdpbmcgc29tZXRoaW5nIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNgLiBTcGVjaWZpY2FsbHksIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgZnVuY3Rpb24gY2FsbGVkIGBhdGgxMWtfZndfcmVxdWVzdF9maXJtd2FyZV9hcGlfbmAuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBvbGQgY29kZSB1c2VkIGBhdGgxMWtfY29yZV9maXJtd2FyZV9yZXF1ZXN0YCB0byBmZXRjaCB0aGUgZmlybXdhcmUgZGlyZWN0bHksIGFuZCBub3cgd2UmIzM5O3JlIHJlcGxhY2luZyB0aGF0IHdpdGggYSBjYWxsIHRvIGBhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aGAgYW5kIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAuIEludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGJ1aWxkaW5nIGEgcGF0aCwgYW5kIHRoZW4gdXNpbmcgYSBkaXJlY3QgcmVxdWVzdC4gVGhlIG9sZGVyIG1ldGhvZCBtaWdodCBoYXZlIGhhZCBzb21lIGlzc3Vlcywgb3IgcGVyaGFwcyB0aGlzIG5ldyBhcHByb2FjaCBvZmZlcnMgc29tZSBhZHZhbnRhZ2VzIGluIHRlcm1zIG9mIGNvbnRyb2wgb3IgZXJyb3IgaGFuZGxpbmcsIGdpdmVuIHRoZSBjaGFuZ2UgZnJvbSBhIGRpcmVjdCBhc3NpZ25tZW50IHRvIGEgcmV0dXJuIGNvZGUgY2hlY2suCgpOb3csIGEgcXVpY2sgcmVtaW5kZXI6IGBhdGgxMWtgLi4uIHJpZ2h0LCB0aGF0JiMzOTtzIFF1YWxjb21tJiMzOTtzIElFRUUgODAyLjExYXggd2lyZWxlc3MgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBydW5uaW5nIGluIGEgdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCBvciBpZiB0aGlzIGlzIHRhcmdldGluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYmUgaXQgUENJZSwgQUhCLCBTRElPLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseS4gVGhlIGNvbnRleHQgYXJvdW5kIHRoZSBmaXJtd2FyZSByZXF1ZXN0IGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucy4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGJ1cyBhbmQgS2NvbmZpZyBzZXR0aW5ncyB3aXRoaW4gdGhlIGBhdGgxMWtgIGRpcmVjdG9yeSB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudCBhbmQgcG90ZW50aWFsIGxpbWl0YXRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGhvdyB0aGUgZmlybXdhcmUgcGF0aCBpcyBhY3R1YWxseSBidWlsdCBhbmQgd2hlcmUgaXQmIzM5O3MgbG9va2luZyBmb3IgdGhlIGZpbGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0FUSDExSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDkzMTAgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjI6Y29uZmlnIEFUSDExS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSA4MDIuMTFheCBjaGlwc2V0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTM6Y29uZmlnIEFUSDExS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xNC1cdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTU6XHRkZXBlbmRzIG9uIEFUSDExS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE2LVx0ZGVwZW5kcyBvbiBSRU1PVEVQUk9DXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIwOmNvbmZpZyBBVEgxMUtfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIyOlx0ZGVwZW5kcyBvbiBBVEgxMUsgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIzLVx0c2VsZWN0IE1ISV9CVVNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MzA6Y29uZmlnIEFUSDExS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMyOlx0ZGVwZW5kcyBvbiBBVEgxMUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zMy1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzg6Y29uZmlnIEFUSDExS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzktXHRib29sIFwmIzM0O1FDQSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDA6XHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgREVCVUdfRlMgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00MS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDctXHRib29sIFwmIzM0O2F0aDExayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0ODpcdGRlcGVuZHMgb24gQVRIMTFLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDktXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUyOmNvbmZpZyBBVEgxMUtfU1BFQ1RSQUxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01My1cdGJvb2wgXCYjMzQ7UUNBIGF0aDExayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NDpcdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01NS1cdGRlcGVuZHMgb24gUkVMQVlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NjE6Y29uZmlnIEFUSDExS19DRlJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02Mi1cdGJvb2wgXCYjMzQ7YXRoMTFrIGNoYW5uZWwgZnJlcXVlbmN5IHJlc3BvbnNlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2MzpcdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02NC1cdGRlcGVuZHMgb24gUkVMQVlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgJiM0Mzs9IGF0aDExay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTMtYXRoMTFrLXkgJiM0Mzs9IGNvcmUubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI0OmF0aDExay0kKENPTkZJR19BVEgxMUtfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjUtYXRoMTFrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI2OmF0aDExay0kKENPTkZJR19BVEgxMUtfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjctYXRoMTFrLSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSB0aGVybWFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjg6YXRoMTFrLSQoQ09ORklHX0FUSDExS19TUEVDVFJBTCkgJiM0Mzs9IHNwZWN0cmFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjktYXRoMTFrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU9MzA9YXRoMTFrLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzE6YXRoMTFrLSQoQ09ORklHX0FUSDExS19DRlIpICYjNDM7PSBjZnIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0FUSDExS19BSEIpICYjNDM7PSBhdGgxMWtfYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzQtYXRoMTFrX2FoYi15ICYjNDM7PSBhaGIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICYjNDM7PSBhdGgxMWtfcGNpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzctYXRoMTFrX3BjaS15ICYjNDM7PSBtaGkubyBwY2kub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRoMTFrX2FoYl9vZl9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjgtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxpcHE4MDc0LXdpZmlcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5Olx0ICAuZGF0YSA9ICh2b2lkICopQVRIMTFLX0hXX0lQUTgwNzQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwLVx0fSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxpcHE2MDE4LXdpZmlcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMyOlx0ICAuZGF0YSA9ICh2b2lkICopQVRIMTFLX0hXX0lQUTYwMThfSFcxMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMtXHR9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHdjbjY3NTAtd2lmaVwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU6XHQgIC5kYXRhID0gKHZvaWQgKilBVEgxMUtfSFdfV0NONjc1MF9IVzEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNi1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3LVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O3Fjb20saXBxNTAxOC13aWZpXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODpcdCAgLmRhdGEgPSAodm9pZCAqKUFUSDExS19IV19JUFE1MDE4X0hXMTAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTQzPU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDU6I2RlZmluZSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgNFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc6c3RhdGljIGNvbnN0IGNoYXIgKmlycV9uYW1lW0FUSDExS19JUlFfTlVNX01BWF0gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ4LVx0XCYjMzQ7bWlzYy1wdWxzZTFcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTE9YXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1NS1cdC8qIElmIG9mZnNldCBsaWVzIHdpdGhpbiBEUCByZWdpc3RlciByYW5nZSwgdXNlIDFzdCB3aW5kb3cgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTU2Olx0aWYgKChvZmZzZXQgXiBIQUxfU0VRX1dDU1NfVU1BQ19PRkZTRVQpIFx1MDAzYyBBVEgxMUtfUENJX1dJTkRPV19SQU5HRV9NQVNLKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNTc6XHRcdHdpbmRvd19zdGFydCA9IEFUSDExS19QQ0lfV0lORE9XX1NUQVJUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNTgtXHQvKiBJZiBvZmZzZXQgbGllcyB3aXRoaW4gQ0UgcmVnaXN0ZXIgcmFuZ2UsIHVzZSAybmQgd2luZG93ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1OS1cdGVsc2UgaWYgKChvZmZzZXQgXiBIQUxfU0VRX1dDU1NfVU1BQ19DRTBfU1JDX1JFRyhhYikpIFx1MDAzY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjA6XHRcdCBBVEgxMUtfUENJX1dJTkRPV19SQU5HRV9NQVNLKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjE6XHRcdHdpbmRvd19zdGFydCA9IDIgKiBBVEgxMUtfUENJX1dJTkRPV19TVEFSVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTYyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTY3PWF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0LCB1MzIgdmFsdWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzQtXHRpb3dyaXRlMzIodmFsdWUsIGFiLVx1MDAzZW1lbSAmIzQzOyB3aW5kb3dfc3RhcnQgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTc1Olx0XHQgIChvZmZzZXQgXHUwMDI2IEFUSDExS19QQ0lfV0lORE9XX1JBTkdFX01BU0spKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE3OD1zdGF0aWMgdTMyIGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xODYtXHR2YWwgPSBpb3JlYWQzMihhYi1cdTAwM2VtZW0gJiM0Mzsgd2luZG93X3N0YXJ0ICYjNDM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE4NzpcdFx0ICAgICAgIChvZmZzZXQgXHUwMDI2IEFUSDExS19QQ0lfV0lORE9XX1JBTkdFX01BU0spKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg4LVx0cmV0dXJuIHZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTIzMT1zdGF0aWMgdm9pZCBfX2F0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzNTpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzYtXHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTI3Mj1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTE2IGNlX2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNzg6XHRpZTFfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVx1MDAzZWllMV9yZWdfYWRkciAmIzQzOyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjc5Olx0aWUyX3JlZ19hZGRyID0gY2VfaWVfYWRkci1cdTAwM2VpZTJfcmVnX2FkZHIgJiM0MzsgQVRIMTFLX0NFX09GRlNFVChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI4MDpcdGllM19yZWdfYWRkciA9IGNlX2llX2FkZHItXHUwMDNlaWUzX3JlZ19hZGRyICYjNDM7IEFUSDExS19DRV9PRkZTRVQoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0yOTM9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yOTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5OTpcdGllMV9yZWdfYWRkciA9IGNlX2llX2FkZHItXHUwMDNlaWUxX3JlZ19hZGRyICYjNDM7IEFUSDExS19DRV9PRkZTRVQoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMDA6XHRpZTJfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVx1MDAzZWllMl9yZWdfYWRkciAmIzQzOyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzAxOlx0aWUzX3JlZ19hZGRyID0gY2VfaWVfYWRkci1cdTAwM2VpZTNfcmVnX2FkZHIgJiM0MzsgQVRIMTFLX0NFX09GRlNFVChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTMxND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3N5bmNfY2VfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMjM6XHRcdGlycV9pZHggPSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgJiM0MzsgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI0LVx0XHRzeW5jaHJvbml6ZV9pcnEoYWItXHUwMDNlaXJxX251bVtpcnFfaWR4XSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0zMjg9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMzMzpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzQtXHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTM3Mz1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM3NzpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzgtXHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTM5ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3N0b3Aoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk2Olx0aWYgKCF0ZXN0X2JpdChBVEgxMUtfRkxBR19DUkFTSF9GTFVTSCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk3LVx0XHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz00NDY9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDUwOlx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTEtXHRcdGF0aDExa19haGJfZnJlZV9leHRfaXJxX2dycChhYiwgXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NDU0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIGludCBtYXhfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYwLVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NjE6XHRcdGlycV9pZHggPSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgJiM0MzsgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYyLVx0XHRmcmVlX2lycShhYi1cdTAwM2VpcnFfbnVtW2lycV9pZHhdLCBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTUzMj1zdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTQwOlx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU0MS1cdFx0dTMyIG51bV9pcnEgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NTg6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFUSDExS19FWFRfSVJRX05VTV9NQVg7IGomIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU1OS1cdFx0XHRpZiAoYWItXHUwMDNlaHdfcGFyYW1zLnJpbmdfbWFzay1cdTAwM2V0eFtpXSBcdTAwMjYgQklUKGopKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz02MzM9c3RhdGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjQ4Olx0XHRpcnFfaWR4ID0gQVRIMTFLX0lSUV9DRTBfT0ZGU0VUICYjNDM7IGk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTcxOD1zdGF0aWMgaW50IGF0aDExa19haGJfaGlmX3N1c3BlbmQoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzI4Olx0d2FrZV9pcnEgPSBhYi1cdTAwM2VpcnFfbnVtW0FUSDExS19QQ0lfSVJRX0NFMF9PRkZTRVQgJiM0MzsgQVRIMTFLX1BDSV9DRV9XQUtFX0lSUV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNi1cdHZhbHVlID0gdTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cdTAwM2VzbXAycF9pbmZvLnNlcV9ubyYjNDM7JiM0MzssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjczNzpcdFx0XHRcdEFUSDExS19BSEJfU01QMlBfU01FTV9TRVFfTk8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Mzg6XHR2YWx1ZSB8PSB1MzJfZW5jb2RlX2JpdHMoQVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VOVEVSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Mzk6XHRcdFx0XHQgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX01TRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQxLVx0cmV0ID0gcWNvbV9zbWVtX3N0YXRlX3VwZGF0ZV9iaXRzKGFiX2FoYi1cdTAwM2VzbXAycF9pbmZvLnNtZW1fc3RhdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc0MjpcdFx0XHRcdFx0ICBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTSywgdmFsdWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc0ODpcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQUhCLCBcJiMzNDtkZXZpY2Ugc3VzcGVuZGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQ5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NzUzPXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfcmVzdW1lKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MzpcdHdha2VfaXJxID0gYWItXHUwMDNlaXJxX251bVtBVEgxMUtfUENJX0lSUV9DRTBfT0ZGU0VUICYjNDM7IEFUSDExS19QQ0lfQ0VfV0FLRV9JUlFdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzMtXHR2YWx1ZSA9IHUzMl9lbmNvZGVfYml0cyhhYl9haGItXHUwMDNlc21wMnBfaW5mby5zZXFfbm8mIzQzOyYjNDM7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzQ6XHRcdFx0XHRBVEgxMUtfQUhCX1NNUDJQX1NNRU1fU0VRX05PKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc1Olx0dmFsdWUgfD0gdTMyX2VuY29kZV9iaXRzKEFUSDExS19BSEJfUE9XRVJfU0FWRV9FWElULFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzY6XHRcdFx0XHQgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX01TRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc4LVx0cmV0ID0gcWNvbV9zbWVtX3N0YXRlX3VwZGF0ZV9iaXRzKGFiX2FoYi1cdTAwM2VzbXAycF9pbmZvLnNtZW1fc3RhdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcdFx0XHRcdFx0ICBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTSywgdmFsdWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODAtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MTpcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQUhCLCBcJiMzNDtkZXZpY2UgcmVzdW1lZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTg0OD1zdGF0aWMgaW50IGF0aDExa19haGJfc2V0dXBfbXNpX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4OTM6XHRzZXRfYml0KEFUSDExS19GTEFHX01VTFRJX01TSV9WRUNUT1JTLCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04OTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMTM5PXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE0OS1cdHN3aXRjaCAoaHdfcmV2KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExNTA6XHRjYXNlIEFUSDExS19IV19JUFE4MDc0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUxOlx0Y2FzZSBBVEgxMUtfSFdfSVBRNjAxOF9IVzEwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUyOlx0Y2FzZSBBVEgxMUtfSFdfSVBRNTAxOF9IVzEwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTUzLVx0XHRoaWZfb3BzID0gXHUwMDI2YXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTU1LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE1NjpcdGNhc2UgQVRIMTFLX0hXX1dDTjY3NTBfSFcxMDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE1Ny1cdFx0aGlmX29wcyA9IFx1MDAyNmF0aDExa19haGJfaGlmX29wc193Y242NzUwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE3MS1cdGFiID0gYXRoMTFrX2NvcmVfYWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZihzdHJ1Y3QgYXRoMTFrX2FoYiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExNzI6XHRcdFx0ICAgICAgIEFUSDExS19CVVNfQUhCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE3My1cdGlmICghYWIpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExODAtXHRhYi1cdTAwM2Vod19yZXYgPSBod19yZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExODE6XHRhYi1cdTAwM2Vmd19tb2RlID0gQVRIMTFLX0ZJUk1XQVJFX01PREVfTk9STUFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTgyLVx0cGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgYWIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTI2ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3JlbW92ZV9wcmVwYXJlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjY4Olx0aWYgKHRlc3RfYml0KEFUSDExS19GTEFHX1JFQ09WRVJZLCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNjktXHRcdGxlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2YWItXHUwMDNlZHJpdmVyX3JlY292ZXJ5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjcwOlx0XHRcdFx0XHRcdCAgIEFUSDExS19BSEJfUkVDT1ZFUllfVElNRU9VVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNzEtXHRcdGlmICghbGVmdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEyNzU6XHRzZXRfYml0KEFUSDExS19GTEFHX1VOUkVHSVNURVJJTkcsIFx1MDAyNmFiLVx1MDAzZWRldl9mbGFncyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNzYtXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNmFiLVx1MDAzZXJlc3RhcnRfd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMjk1PXN0YXRpYyB2b2lkIGF0aDExa19haGJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjk5Olx0aWYgKHRlc3RfYml0KEFUSDExS19GTEFHX1FNSV9GQUlMLCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMDAtXHRcdGF0aDExa19haGJfcG93ZXJfZG93bihhYiwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTMxND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMzIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMzI0Olx0aWYgKCEodGVzdF9iaXQoQVRIMTFLX0ZMQUdfUkVHSVNURVJFRCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMjUtXHRcdGdvdG8gZnJlZV9yZXNvdXJjZXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC01LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaDo2OiNpZm5kZWYgQVRIMTFLX0FIQl9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjc6I2RlZmluZSBBVEgxMUtfQUhCX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmgtOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaDoxMTojZGVmaW5lIEFUSDExS19BSEJfUkVDT1ZFUllfVElNRU9VVCAoMyAqIEhaKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTM6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fTVNHXHRcdEdFTk1BU0soMTUsIDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjE0OiNkZWZpbmUgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX1NFUV9OT1x0XHRHRU5NQVNLKDMxLCAxNilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTU6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTS1x0MHhGRkZGRkZGRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg9MTc9ZW51bSBhdGgxMWtfYWhiX3NtcDJwX21zZ19pZCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjE4Olx0QVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VOVEVSID0gMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTk6XHRBVEgxMUtfQUhCX1BPV0VSX1NBVkVfRVhJVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmgtMjAtfTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9MzIxPXN0YXRpYyBpbnQgYXRoMTFrX2NlX3J4X3Bvc3RfcGlwZShzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTM1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzozNTE6XHRcdEFUSDExS19TS0JfUlhDQihza2IpLVx1MDAzZXBhZGRyID0gcGFkZHI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtMzUyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTUtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzozNTY6XHRcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRSwgXCYjMzQ7ZmFpbGVkIHRvIGVucXVldWUgcnggYnVmOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTctXHRcdFx0XHQgICByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz00MTc9c3RhdGljIHZvaWQgYXRoMTFrX2NlX3JlY3ZfcHJvY2Vzc19jYihzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQyNy1cdFx0bWF4X25ieXRlcyA9IHNrYi1cdTAwM2VsZW4gJiM0Mzsgc2tiX3RhaWxyb29tKHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NDI4Olx0XHRkbWFfdW5tYXBfc2luZ2xlKGFiLVx1MDAzZWRldiwgQVRIMTFLX1NLQl9SWENCKHNrYiktXHUwMDNlcGFkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDI5LVx0XHRcdFx0IG1heF9uYnl0ZXMsIERNQV9GUk9NX0RFVklDRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQ0Mi1cdHdoaWxlICgoc2tiID0gX19za2JfZGVxdWV1ZShcdTAwMjZsaXN0KSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo0NDM6XHRcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFwmIzM0O3J4IGNlIHBpcGUgJWQgbGVuICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQ0NC1cdFx0XHQgICBwaXBlLVx1MDAzZXBpcGVfbnVtLCBza2ItXHUwMDNlbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDUyLVx0XHRtb2RfdGltZXIoXHUwMDI2YWItXHUwMDNlcnhfcmVwbGVuaXNoX3JldHJ5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jOjQ1MzpcdFx0XHQgIGppZmZpZXMgJiM0MzsgQVRIMTFLX0NFX1JYX1BPU1RfUkVUUllfSklGRklFUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDU0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz00OTg9c3RhdGljIHZvaWQgYXRoMTFrX2NlX3R4X3Byb2Nlc3NfY2Ioc3RydWN0IGF0aDExa19jZV9waXBlICpwaXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy01MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NTA5Olx0XHRkbWFfdW5tYXBfc2luZ2xlKGFiLVx1MDAzZWRldiwgQVRIMTFLX1NLQl9DQihza2IpLVx1MDAzZXBhZGRyLCBza2ItXHUwMDNlbGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTUxMC1cdFx0XHRcdCBETUFfVE9fREVWSUNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTIwLVx0d2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKFx1MDAyNmxpc3QpKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jOjUyMTpcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRSwgXCYjMzQ7dHggY2UgcGlwZSAlZCBsZW4gJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTIyLVx0XHRcdCAgIHBpcGUtXHUwMDNlcGlwZV9udW0sIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz01NTM9c3RhdGljIGludCBhdGgxMWtfY2VfaW5pdF9yaW5nKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTYwNC1cdFx0YXRoMTFrX2RwX3NoYWRvd19pbml0X3RpbWVyKGFiLCBcdTAwMjZhYi1cdTAwM2VjZS5ocF90aW1lcltjZV9pZF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NjA1Olx0XHRcdFx0XHQgICAgQVRIMTFLX1NIQURPV19DVFJMX1RJTUVSX0lOVEVSVkFMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTYwNi1cdFx0XHRcdFx0ICAgIGNlX3JpbmctXHUwMDNlaGFsX3JpbmdfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz03MDk9aW50IGF0aDExa19jZV9zZW5kKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBza19idWZmICpza2IsIHU4IHBpcGVfaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTczOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo3Mzk6XHRcdGlmIChudW1fdXNlZCBcdTAwM2UgQVRIMTFLX0NFX1VTQUdFX1RIUkVTSE9MRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy03NDAtXHRcdFx0YXRoMTFrX2NlX3BvbGxfc2VuZF9jb21wbGV0ZWQoYWIsIHBpcGUtXHUwMDNlcGlwZV9udW0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy03NDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NzQzOlx0aWYgKHRlc3RfYml0KEFUSDExS19GTEFHX0NSQVNIX0ZMVVNILCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc0NC1cdFx0cmV0dXJuIC1FU0hVVERPV047XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo3NzM6XHRhdGgxMWtfaGFsX2NlX3NyY19zZXRfZGVzYyhkZXNjLCBBVEgxMUtfU0tCX0NCKHNrYiktXHUwMDNlcGFkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNzc0LVx0XHRcdFx0ICAgc2tiLVx1MDAzZWxlbiwgdHJhbnNmZXJfaWQsIGJ5dGVfc3dhcF9kYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9Nzk5PXN0YXRpYyB2b2lkIGF0aDExa19jZV9yeF9waXBlX2NsZWFudXAoc3RydWN0IGF0aDExa19jZV9waXBlICpwaXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTQtXHRcdHJpbmctXHUwMDNlc2tiW2ldID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo4MTU6XHRcdGRtYV91bm1hcF9zaW5nbGUoYWItXHUwMDNlZGV2LCBBVEgxMUtfU0tCX1JYQ0Ioc2tiKS1cdTAwM2VwYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTYtXHRcdFx0XHQgc2tiLVx1MDAzZWxlbiAmIzQzOyBza2JfdGFpbHJvb20oc2tiKSwgRE1BX0ZST01fREVWSUNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9ODgzPXZvaWQgYXRoMTFrX2NlX3J4X3Bvc3RfYnVmKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTg5OC1cdFx0XHRtb2RfdGltZXIoXHUwMDI2YWItXHUwMDNlcnhfcmVwbGVuaXNoX3JldHJ5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jOjg5OTpcdFx0XHRcdCAgamlmZmllcyAmIzQzOyBBVEgxMUtfQ0VfUlhfUE9TVF9SRVRSWV9KSUZGSUVTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy05MDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NzojaWZuZGVmIEFUSDExS19DRV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6ODojZGVmaW5lIEFUSDExS19DRV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtMjUtLyogVGhyZXNob2xkIHRvIHBvbGwgZm9yIHR4IGNvbXBsZXRpb24gaW4gY2FzZSBvZiBJbnRlcnJ1cHQgZGlzYWJsZWQgQ0UmIzM5O3MgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaDoyNjojZGVmaW5lIEFUSDExS19DRV9VU0FHRV9USFJFU0hPTEQgMzJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaC0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaD0yOD12b2lkIGF0aDExa19jZV9ieXRlX3N3YXAodm9pZCAqbWVtLCB1MzIgbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NjI6I2RlZmluZSBBVEgxMUtfQ0VfUlhfUE9TVF9SRVRSWV9KSUZGSUVTIDUwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtNjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz0xOT1zdGF0aWMgaW50IGF0aDExa19jZnJfY2FsY3VsYXRlX3RvbmVzX2Zyb21fZG1hX2hkcihzdHJ1Y3QgYXRoMTFrX2Nmcl9kbWFfaGRyICpoZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNC1cdHN3aXRjaCAocHJlYW1ibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjU6XHRjYXNlIEFUSDExS19DRlJfUFJFQU1CTEVfVFlQRV9MRUdBQ1k6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2LVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mjc6XHRjYXNlIEFUSDExS19DRlJfUFJFQU1CTEVfVFlQRV9WSFQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4LVx0XHRzd2l0Y2ggKGJ3KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zOS1cdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MDpcdGNhc2UgQVRIMTFLX0NGUl9QUkVBTUJMRV9UWVBFX0hUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00MS1cdFx0c3dpdGNoIChidykge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTE0PWF0aDExa19jZnJfY29ycmVsYXRlX2FuZF9yZWxheShzdHJ1Y3QgYXRoMTFrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MTIyOlx0aWYgKGV2ZW50X3R5cGUgPT0gQVRIMTFLX0NPUlJFTEFURV9UWF9FVkVOVCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xMjMtXHRcdGlmIChsdXQtXHUwMDNldHhfcmVjdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyNi1cdFx0bHV0LVx1MDAzZXR4X3JlY3YgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxMjc6XHR9IGVsc2UgaWYgKGV2ZW50X3R5cGUgPT0gQVRIMTFLX0NPUlJFTEFURV9EQlJfRVZFTlQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTI4LVx0XHRjZnItXHUwMDNlZGJyX2V2dF9jbnQmIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTQwLVx0XHRcdFx0ZGlmZiA9IGx1dC1cdTAwM2VkYnJfdHN0YW1wIC0gbHV0LVx1MDAzZXR4cnhfdHN0YW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNDE6XHRcdFx0XHRhdGgxMWtfZGJnKGFyLVx1MDAzZWFiLCBBVEgxMUtfREJHX0NGUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTQyLVx0XHRcdFx0XHQgICBcJiMzNDt0eHJ4IGV2ZW50IC1cdTAwM2UgZGJyIGV2ZW50IGRlbGF5ID0gJXUgbXNcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDUtXHRcdFx0XHRkaWZmID0gbHV0LVx1MDAzZXR4cnhfdHN0YW1wIC0gbHV0LVx1MDAzZWRicl90c3RhbXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE0NjpcdFx0XHRcdGF0aDExa19kYmcoYXItXHUwMDNlYWIsIEFUSDExS19EQkdfQ0ZSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDctXHRcdFx0XHRcdCAgIFwmIzM0O2RiciBldmVudCAtXHUwMDNlIHR4cnggZXZlbnQgZGVsYXkgPSAldSBtc1wmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE1My1cdFx0XHRjZnItXHUwMDNlcmVsZWFzZV9jbnQmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNTQ6XHRcdFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfUkVMRUFTRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTU1LVx0XHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNjE6XHRcdFx0YXRoMTFrX2RiZyhhci1cdTAwM2VhYiwgQVRIMTFLX0RCR19DRlIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2Mi1cdFx0XHRcdCAgIFwmIzM0O1JlY2VpdmVkIGRiciBldmVudCB0d2ljZSBmb3IgdGhlIHNhbWUgbHV0IGVudHJ5XCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2Ni1cdFx0XHRjZnItXHUwMDNlY2ZyX2RtYV9hYm9ydHMmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNjc6XHRcdFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTY4LVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2OS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE3MDpcdFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTcxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTc2PXN0YXRpYyBpbnQgYXRoMTFrX2Nmcl9wcm9jZXNzX2RhdGEoc3RydWN0IGF0aDExayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNzgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNzk6XHR1MzIgZW5kX21hZ2ljID0gQVRIMTFLX0NGUl9FTkRfTUFHSUM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE4MC1cdHN0cnVjdCBhdGgxMWtfY3NpX2Nmcl9oZWFkZXIgKmhlYWRlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTIxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjE5Olx0YXRoMTFrX2RiZ19kdW1wKGFiLCBBVEgxMUtfREJHX0NGUl9EVU1QLCBcJiMzNDtkYXRhX2Zyb21fYnVmX3JlbDpcJiMzNDssIFwmIzM0O1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjIwLVx0XHRcdGRhdGEsIGxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yMzUtXHRzdGF0dXMgPSBhdGgxMWtfY2ZyX2NvcnJlbGF0ZV9hbmRfcmVsYXkoYXIsIGx1dCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjM2Olx0XHRcdFx0XHRcdEFUSDExS19DT1JSRUxBVEVfREJSX0VWRU5UKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjM3Olx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjIzODpcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTIzOS1cdFx0XHQgICBcJiMzNDtyZWxlYXNpbmcgQ0ZSIGRhdGEgdG8gdXNlciBzcGFjZVwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNDQtXHRcdGF0aDExa19jZnJfcmVsZWFzZV9sdXRfZW50cnkobHV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjQ1Olx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNDY6XHRcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNDctXHRcdFx0ICAgXCYjMzQ7dHggZXZlbnQgaXMgbm90IHlldCByZWNlaXZlZCBob2xkaW5nIHRoZSBidWZcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MjU1PXN0YXRpYyB2b2lkIGF0aDExa19jZnJfZmlsbF9oZHJfaW5mbyhzdHJ1Y3QgYXRoMTFrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2MS1cdGNmciA9IFx1MDAyNmFyLVx1MDAzZWNmcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjYyOlx0aGVhZGVyLVx1MDAzZWNmcl9tZXRhZGF0YV92ZXJzaW9uID0gQVRIMTFLX0NGUl9NRVRBX1ZFUlNJT05fNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjYzOlx0aGVhZGVyLVx1MDAzZWNmcl9kYXRhX3ZlcnNpb24gPSBBVEgxMUtfQ0ZSX0RBVEFfVkVSU0lPTl8xO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNjQtXHRoZWFkZXItXHUwMDNlY2ZyX21ldGFkYXRhX2xlbiA9IHNpemVvZihzdHJ1Y3QgY2ZyX21ldGFkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4NS1cdGhlYWRlci1cdTAwM2VtZXRhX2RhdGEuY2FwdHVyZV9tb2RlID0gcGFyYW1zLVx1MDAzZWJhbmR3aWR0aCA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjI4NjpcdFx0QVRIMTFLX0NGUl9DQVBUVVJFX0RVUF9MRUdBQ1lfQUNLIDogQVRIMTFLX0NGUl9DQVBUVVJFX0xFR0FDWV9BQ0s7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4Ny1cdGhlYWRlci1cdTAwM2VtZXRhX2RhdGEuY2FwdHVyZV90eXBlID0gcGFyYW1zLVx1MDAzZWNhcHR1cmVfbWV0aG9kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MzAwPWludCBhdGgxMWtfcHJvY2Vzc19jZnJfY2FwdHVyZV9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMzAzLVx0c3RydWN0IGF0aDExa19sb29rX3VwX3RhYmxlICpsdXQgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozMDQ6XHR1MzIgZW5kX21hZ2ljID0gQVRIMTFLX0NGUl9FTkRfTUFHSUM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTMwNS1cdHN0cnVjdCBhdGgxMWtfY3NpX2Nmcl9oZWFkZXIgKmhlYWRlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM3OC1cdGhlYWRlciA9IFx1MDAyNmx1dC1cdTAwM2VoZWFkZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjM3OTpcdGhlYWRlci1cdTAwM2VzdGFydF9tYWdpY19udW0gPSBBVEgxMUtfQ0ZSX1NUQVJUX01BR0lDO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zODAtXHRoZWFkZXItXHUwMDNldmVuZG9yaWQgPSBWRU5ET1JfUUNBO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMzg1LVx0c3RhdHVzID0gYXRoMTFrX2Nmcl9jb3JyZWxhdGVfYW5kX3JlbGF5KGFyLCBsdXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjM4NjpcdFx0XHRcdFx0XHRBVEgxMUtfQ09SUkVMQVRFX1RYX0VWRU5UKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mzg3Olx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjM4ODpcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM4OS1cdFx0XHQgICBcJiMzNDtSZWxlYXNpbmcgQ0ZSIGRhdGEgdG8gdXNlciBzcGFjZVwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zOTgtXHRcdFx0XHRcdCAgICAgV01JX0RJUkVDVF9CVUZfQ0ZSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mzk5Olx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MDA6XHRcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00MDEtXHRcdFx0ICAgXCYjMzQ7ZGJyIGV2ZW50IGlzIG5vdCB5ZXQgcmVjZWl2ZWQgaG9sZGluZyBidWZcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDEyPWJvb2wgYXRoMTFrX2Nmcl9wZWVyX2lzX2luX2Nmcl91bmFzc29jX3Bvb2woc3RydWN0IGF0aDExayAqYXIsIGNvbnN0IHU4ICpwZWVyX21hYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQyMS1cdHNwaW5fbG9ja19iaChcdTAwMjZjZnItXHUwMDNlbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQyMjpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19NQVhfQ0ZSX0VOQUJMRURfQ0xJRU5UUzsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDIzLVx0XHRlbnRyeSA9IFx1MDAyNmNmci1cdTAwM2V1bmFzc29jX3Bvb2xbaV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz00Mzg9dm9pZCBhdGgxMWtfY2ZyX3VwZGF0ZV91bmFzc29jX3Bvb2xfZW50cnkoc3RydWN0IGF0aDExayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00NDUtXHRzcGluX2xvY2tfYmgoXHUwMDI2Y2ZyLVx1MDAzZWxvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0NDY6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfTUFYX0NGUl9FTkFCTEVEX0NMSUVOVFM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ0Ny1cdFx0ZW50cnkgPSBcdTAwMjZjZnItXHUwMDNldW5hc3NvY19wb29sW2ldO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDc3PWF0aDExa19jZnJfYndfdG9fZndfY2ZyX2J3KGVudW0gYXRoMTFrX2Nmcl9jYXB0dXJlX2J3IGJ3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDc5LVx0c3dpdGNoIChidykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0ODA6XHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9CV18yMDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDgxLVx0XHRyZXR1cm4gV01JX1BFRVJfQ0ZSX0NBUFRVUkVfQldfMjA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ4MjpcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX0JXXzQwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00ODMtXHRcdHJldHVybiBXTUlfUEVFUl9DRlJfQ0FQVFVSRV9CV180MDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDg0Olx0Y2FzZSBBVEgxMUtfQ0ZSX0NBUFRVUkVfQldfODA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ4NS1cdFx0cmV0dXJuIFdNSV9QRUVSX0NGUl9DQVBUVVJFX0JXXzgwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDkyPWF0aDExa19jZnJfbWV0aG9kX3RvX2Z3X2Nmcl9tZXRob2QoZW51bSBhdGgxMWtfY2ZyX2NhcHR1cmVfbWV0aG9kIG1ldGhvZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ5NC1cdHN3aXRjaCAobWV0aG9kKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ5NTpcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00OTYtXHRcdHJldHVybiBXTUlfQ0ZSX0NBUFRVUkVfTUVUSE9EX05VTExfRlJBTUU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ5NzpcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FX1dJVEhfUEhBU0U6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ5OC1cdFx0cmV0dXJuIFdNSV9DRlJfQ0FQVFVSRV9NRVRIT0RfTlVMTF9GUkFNRV9XSVRIX1BIQVNFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0OTk6XHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9NRVRIT0RfUFJPQkVfUkVTUDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNTAwLVx0XHRyZXR1cm4gV01JX0NGUl9DQVBUVVJFX01FVEhPRF9QUk9CRV9SRVNQO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NTA2PWludCBhdGgxMWtfY2ZyX3NlbmRfcGVlcl9jZnJfY2FwdHVyZV9jbWQoc3RydWN0IGF0aDExayAqYXIsXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODE3MAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgYXRoMTFrIFBDSSBEZXZpY2UgU3VwcG9ydCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGF0aDExa2AgYW5kIGltbWVkaWF0ZWx5IEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaXRzIGhhcmR3YXJlIHN1cHBvcnQuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBkaWZmZXJlbnQgYnVzIGludGVyZmFjZXMuIFJpZ2h0LCByaWdodCwgaXQmIzM5O3MgcHJldHR5IGNsZWFyOiBgYXRoMTFrYCBpcyBidWlsdCBmb3IgZWl0aGVyIHRoZSBBSEIgYnVzIChgQVRIMTFLX0FIQmApIG9yIFBDSSAoYEFUSDExS19QQ0lgKS4gTm93LCB0aGUgcXVlc3Rpb24gaXMsICp3aGljaCogUENJIGRldmljZXMgYXJlIGFjdHVhbGx5IHJlY29nbml6ZWQgYW5kIGhhbmRsZWQgYnkgdGhpcyBkcml2ZXI/IFRoYXQmIzM5O3Mgd2hhdCBJIHJlYWxseSBuZWVkIHRvIGRyaWxsIGRvd24gb24uIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgYGF0aDExa19wY2kuY2Agc291cmNlIGNvZGUsIG9yIHBvdGVudGlhbGx5IHRoZSByZWxldmFudCBQQ0kgaW5mcmFzdHJ1Y3R1cmUgY29kZSAoYHBjaS5jYCkgdG8gdW5kZXJzdGFuZCB0aGUgc3BlY2lmaWMgUENJIGRldmljZSBJRHMgdGhhdCBhcmUgd2l0aGluIHRoZSBwdXJ2aWV3IG9mIHRoZSBkcml2ZXIuIExldCYjMzk7cyBzZWUgd2hhdCBkZXZpY2UgSURzIGl0JiMzOTtzIGFjdHVhbGx5IG1hdGNoaW5nLiBUaGF0IHNob3VsZCB0ZWxsIHRoZSB3aG9sZSBzdG9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZGV2aWNlX2lkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzozNjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRoMTFrX3BjaV9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0zNy1cdHsgUENJX1ZERVZJQ0UoUUNPTSwgUUNBNjM5MF9ERVZJQ0VfSUQpIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDk9c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NTA6XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NTEte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NzE4CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyBEcml2ZXIgLSBQQ0kgSUQgVGFibGUqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBpbnRvIHRoZSBBdGhlcm9zIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGBhdGgxMWtgIG1vZHVsZSwgYW5kIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIFBDSSBpbnRlcmZhY2UuIFRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQgaXMgdGhlIGRldmljZSBJRCB0YWJsZS4gSXQmIzM5O3MgdXN1YWxseSB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRyaXZlciBhc3NvY2lhdGVzIGl0c2VsZiB3aXRoIHNwZWNpZmljIGhhcmR3YXJlLiBTbywgSSYjMzk7bSBnb2luZyB0byBuYXZpZ2F0ZSBvdmVyIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIGBhdGgxMWtfcGNpX2lkX3RhYmxlYC4gVGhhdCB0YWJsZSBzaG91bGQgaG9sZCB0aGUgUENJIGRldmljZSBJRHMsIHZlbmRvciBJRHMsIGFuZCBob3BlZnVsbHkgc29tZSBhc3NvY2lhdGVkIGRyaXZlci1zcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMgb3IgaW5pdGlhbGl6YXRpb24gaW5mb3JtYXRpb24gdGhhdCB0aGUgZHJpdmVyIG5lZWRzIHRvIHdvcmsuIFVuZGVyc3RhbmRpbmcgdGhpcyB0YWJsZSB3aWxsIHRlbGwgbWUgcHJlY2lzZWx5IHdoaWNoIGRldmljZXMgdGhpcyBzcGVjaWZpYyBBdGhlcm9zIGRyaXZlciBzdXBwb3J0cyB0aHJvdWdoIHRoZSBQQ0kgaW50ZXJmYWNlLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQmIzM5O3MgaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAzNTpcdFxuICAzNjpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBhdGgxMWtfcGNpX2lkX3RhYmxlW10gPSB7XG4gIDM3Olx0XHR7IFBDSV9WREVWSUNFKFFDT00sIFFDQTYzOTBfREVWSUNFX0lEKSB9LFxuICAzODpcdFx0eyBQQ0lfVkRFVklDRShRQ09NLCBXQ042ODU1X0RFVklDRV9JRCkgfSxcbiAgMzk6XHRcdHsgUENJX1ZERVZJQ0UoUUNPTSwgUUNOOTA3NF9ERVZJQ0VfSUQpIH0sXG4gIDQwOlx0XHR7fVxuICA0MTpcdH07XG4gIDQyOlx0XG4gIDQzOlx0TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGF0aDExa19wY2lfaWRfdGFibGUpO1xuICA0NDpcdFxuICA0NTpcdHN0YXRpYyBpbnQgYXRoMTFrX3BjaV9idXNfd2FrZV91cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuICA0NjpcdHtcbiAgNDc6XHRcdHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2kgPSBhdGgxMWtfcGNpX3ByaXYoYWIpO1xuICA0ODpcdFxuICA0OTpcdFx0cmV0dXJuIG1oaV9kZXZpY2VfZ2V0X3N5bmMoYWJfcGNpLVx1MDAzZW1oaV9jdHJsLVx1MDAzZW1oaV9kZXYpO1xuICA1MDpcdH1cbiAgNTE6XHRcbiAgNTI6XHRzdGF0aWMgdm9pZCBhdGgxMWtfcGNpX2J1c19yZWxlYXNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4gIDUzOlx0e1xuICA1NDpcdFx0c3RydWN0IGF0aDExa19wY2kgKmFiX3BjaSA9IGF0aDExa19wY2lfcHJpdihhYik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkzNzMKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBhdGgxMWsmIzM5O3MgQnVzIFN1cHBvcnQqKgoKT2theSwgc28gYXRoMTFrLCB0aGUgUXVhbGNvbW0gV2ktRmkgZHJpdmVyLCBoYXMgYSBwcmV0dHkgc29saWQgaGFuZGxlIG9uIHRoZSB1c3VhbCBzdXNwZWN0cyDigJMgdGhlIFBDSSBhbmQgQUhCIGJhc2VkIFF1YWxjb21tIGRldmljZXM6IFFDQTYzOTAsIFdDTjY4NTUsIFFDTjkwNzQsIElQUTgwNzQsIElQUTYwMTgsIFdDTjY3NTAsIGFuZCBJUFE1MDE4LiBCdXQgSSYjMzk7bSBjdXJpb3VzLCBkb2VzIHRoZSBkcml2ZXIgaGF2ZSBhbnkgZmxleGliaWxpdHkgYmV5b25kIHRoaXM/IERvZXMgaXQgZXh0ZW5kIHRvIGhhbmRsaW5nIHZpcnR1YWwgb3IgZW11bGF0ZWQgYnVzZXMsIG9yIGV2ZW4gVVNCIGdhZGdldHM/IE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0IHByaW1hcmlseSBkZWFscyB3aXRoIHRoZXNlIGhhcmR3YXJlIHBsYXRmb3JtcywgYnV0IEkgY2FuJiMzOTt0IGJlIHN1cmUgd2l0aG91dCBkaWdnaW5nIGRlZXBlci4KCkkgbmVlZCB0byBjb25maXJtIHRoZSBleHRlbnQgb2YgaXRzIHN1cHBvcnRlZCBidXMgdHlwZXMuIFRvIGNsYXJpZnkgdGhpcywgSSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgaXQmIzM5O3Mgc29sZWx5IHRpZWQgdG8gcGh5c2ljYWwgUENJIGFuZCBBSEIgaW50ZXJmYWNlcywgb3IgaWYgaXQgb2ZmZXJzIHdpZGVyIGNvbXBhdGliaWxpdHkuIFRoZSBtb3N0IGRpcmVjdCBhcHByb2FjaCBpcyB0byBleGFtaW5lIHRoZSBzb3VyY2UgY29kZS4gTGV0JiMzOTtzIGRlbHZlIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrYCBkaXJlY3RvcnksIGFuZCBzY3J1dGluaXplIGFsbCB0aGUgZmlsZXMgdGhlcmVpbi4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYmVzdCBpbnNpZ2h0IGludG8gaXRzIGJ1cyBzdXBwb3J0IGNhcGFiaWxpdGllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2FoYi5jJiMzNDssCiAgICAmIzM0O2FoYi5oJiMzNDssCiAgICAmIzM0O2NlLmMmIzM0OywKICAgICYjMzQ7Y2UuaCYjMzQ7LAogICAgJiMzNDtjZnIuYyYjMzQ7LAogICAgJiMzNDtjZnIuaCYjMzQ7LAogICAgJiMzNDtjb3JlLmMmIzM0OywKICAgICYjMzQ7Y29yZS5oJiMzNDssCiAgICAmIzM0O2NvcmVkdW1wLmMmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuaCYjMzQ7LAogICAgJiMzNDtkYnJpbmcuYyYjMzQ7LAogICAgJiMzNDtkYnJpbmcuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX2h0dF9zdGF0cy5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfaHR0X3N0YXRzLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmc19zdGEuYyYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX3N0YS5oJiMzNDssCiAgICAmIzM0O2RwLmMmIzM0OywKICAgICYjMzQ7ZHAuaCYjMzQ7LAogICAgJiMzNDtkcF9yeC5jJiMzNDssCiAgICAmIzM0O2RwX3J4LmgmIzM0OywKICAgICYjMzQ7ZHBfdHguYyYjMzQ7LAogICAgJiMzNDtkcF90eC5oJiMzNDssCiAgICAmIzM0O2Z3LmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtoYWwuYyYjMzQ7LAogICAgJiMzNDtoYWwuaCYjMzQ7LAogICAgJiMzNDtoYWxfZGVzYy5oJiMzNDssCiAgICAmIzM0O2hhbF9yeC5jJiMzNDssCiAgICAmIzM0O2hhbF9yeC5oJiMzNDssCiAgICAmIzM0O2hhbF90eC5jJiMzNDssCiAgICAmIzM0O2hhbF90eC5oJiMzNDssCiAgICAmIzM0O2hpZi5oJiMzNDssCiAgICAmIzM0O2h0Yy5jJiMzNDssCiAgICAmIzM0O2h0Yy5oJiMzNDssCiAgICAmIzM0O2h3LmMmIzM0OywKICAgICYjMzQ7aHcuaCYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttaGkuYyYjMzQ7LAogICAgJiMzNDttaGkuaCYjMzQ7LAogICAgJiMzNDtwMnAuYyYjMzQ7LAogICAgJiMzNDtwMnAuaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtwY2kuaCYjMzQ7LAogICAgJiMzNDtwY2ljLmMmIzM0OywKICAgICYjMzQ7cGNpYy5oJiMzNDssCiAgICAmIzM0O3BlZXIuYyYjMzQ7LAogICAgJiMzNDtwZWVyLmgmIzM0OywKICAgICYjMzQ7cW1pLmMmIzM0OywKICAgICYjMzQ7cW1pLmgmIzM0OywKICAgICYjMzQ7cmVnLmMmIzM0OywKICAgICYjMzQ7cmVnLmgmIzM0OywKICAgICYjMzQ7cnhfZGVzYy5oJiMzNDssCiAgICAmIzM0O3NwZWN0cmFsLmMmIzM0OywKICAgICYjMzQ7c3BlY3RyYWwuaCYjMzQ7LAogICAgJiMzNDt0ZXN0bW9kZS5jJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmgmIzM0OywKICAgICYjMzQ7dGhlcm1hbC5jJiMzNDssCiAgICAmIzM0O3RoZXJtYWwuaCYjMzQ7LAogICAgJiMzNDt0cmFjZS5jJiMzNDssCiAgICAmIzM0O3RyYWNlLmgmIzM0OywKICAgICYjMzQ7d21pLmMmIzM0OywKICAgICYjMzQ7d21pLmgmIzM0OywKICAgICYjMzQ7d293LmMmIzM0OywKICAgICYjMzQ7d293LmgmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI3NAoJCQkJCQkJb3V0cHV0OiAxMjkKCQkJCQkJCXRob3VnaHRzOiA0NzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgYXRoMTFrIERyaXZlciBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGZ1enppbmcgdGhlIGBhdGgxMWtgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24oKWAsIGlzbiYjMzk7dCBnb2luZyB0byBiZSBmcnVpdGZ1bCBpbiBzdGFuZGFyZCBmdXp6aW5nIHNldHVwcy4gVGhlIGRyaXZlciwgYXMgSSB1bmRlcnN0YW5kIGl0LCBwcmltYXJpbHkgZGVhbHMgd2l0aCBRdWFsY29tbSA4MDIuMTFheCBoYXJkd2FyZSDigJMgdGhpbmdzIGxpa2UgdGhlIFFDQTYzOTAsIFdDTjY4NTUsIGFuZCBvdGhlciBzaWxpY29uLWJhc2VkIGRldmljZXMgY29tbXVuaWNhdGluZyB2aWEgUENJZSBvciBBSEIuIFRoZSBrZXkgaGVyZSBpcyB0aGUgKnBoeXNpY2FsKiBuYXR1cmUgb2YgdGhlIGhhcmR3YXJlLgoKVGhlIGlzc3VlLCBhcyBJIHNlZSBpdCwgYm9pbHMgZG93biB0byBlbXVsYXRpb24uIFN0YW5kYXJkIFFFTVUgYW5kIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBlbnZpcm9ubWVudHMgc2ltcGx5IGRvbiYjMzk7dCBlbXVsYXRlIHRoZXNlIHNwZWNpZmljIFF1YWxjb21tIFdpRmkgY29tcG9uZW50cy4gVGhlIGxvZ2ljIEkmIzM5O20gZm9sbG93aW5nIGFsaWducyB3aXRoIHRoZSAmIzM0O3N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IG5lZ2F0aXZlIGNyaXRlcmlvbi4gVGhlIHBhdGNoIGhpdHMgdGhlIGBhdGgxMWtfZndfcmVxdWVzdF9maXJtd2FyZV9hcGlfbmAgZnVuY3Rpb24gaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY2Agd2hpY2ggaGFuZGxlcyByZXF1ZXN0cyB0byBsb2FkIGZpcm13YXJlIGludG8gdGhlIGhhcmR3YXJlLCBhbmQgdGhlIGhhcmR3YXJlIGl0c2VsZiBpc24mIzM5O3QgcHJlc2VudCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuCgpHaXZlbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIHZlbmRvci1zcGVjaWZpYywgcmVxdWlyaW5nIHBoeXNpY2FsIFF1YWxjb21tIFdpRmkgc2lsaWNvbiBjb25uZWN0ZWQgb3ZlciB0aGUgUENJZS9BSEIgYnVzLCBhbmQgdGhhdCBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudHMgZG9uJiMzOTt0IHByb3ZpZGUgdGhpcywgZnV6emluZyB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIFRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaXMgdW5lcXVpdm9jYWxseSBgZmFsc2VgLiBDb25zZXF1ZW50bHksIG15IGBGb2N1c1N5bWJvbHNgIGFuZCBgRW5hYmxlQ29uZmlnc2AgYXJlIGVtcHR5IGFzIEkgbmVlZCB0byBzcGVjaWZ5IHdoYXQgdGFyZ2V0cyB0aGUgZnV6emVyIGNhbiBhdHRlbXB0IHRvIHJlYWNoLiBJdOKAmXMgaW1wb3J0YW50IHRvIG1ha2UgdGhpcyBkZWNpc2lvbiBiYXNlZCBvbiB3aGF0IGlzIHByYWN0aWNhbGx5IGFjaGlldmFibGUgaW4gc3RhbmRhcmQgZnV6emluZyBzZXR1cHMuCgpFdmVyeXRoaW5nIHNlZW1zIHRvIGNoZWNrIG91dC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjQ3LjE5MTY2NTc1M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDgwNTI5OTIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NDcuMTkxNjcwMzEzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDY2MDQ3NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyNzMyNThjOWU1MDEyNjM5NWIwMjY0ODRjNzc2MDM0MjE1ZTQzNjhjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgU2VwIDEwIDA3OjU3OjQ2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY1xcbmluZGV4IGVmMWI0YzgxODQzYTMuLjg4ZWMyZmZkOWYwMGUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jXFxuQEAgLTE2LDEwICsxNiwxMiBAQCBzdGF0aWMgaW50IGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuIFxcdHN0cnVjdCBhdGgxMWtfZndfaWUgKmhkcjtcXG4gXFx0Y29uc3QgdTggKmRhdGE7XFxuIFxcdF9fbGUzMiAqdGltZXN0YW1wO1xcbitcXHRjaGFyIHBhdGhbMTAwXTtcXG4gXFxuLVxcdGFiLVxcdTAwM2Vmdy5mdyA9IGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3QoYWIsIG5hbWUpO1xcbi1cXHRpZiAoSVNfRVJSKGFiLVxcdTAwM2Vmdy5mdykpIHtcXG4tXFx0XFx0cmV0ID0gUFRSX0VSUihhYi1cXHUwMDNlZncuZncpO1xcbitcXHRhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aChhYiwgbmFtZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKTtcXG4rXFxuK1xcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFxcdTAwMjZhYi1cXHUwMDNlZncuZncsIHBhdGgsIGFiLVxcdTAwM2VkZXYpO1xcbitcXHRpZiAocmV0KSB7XFxuIFxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQk9PVCwgXFxcImZhaWxlZCB0byBsb2FkICVzOiAlZFxcXFxuXFxcIiwgbmFtZSwgcmV0KTtcXG4gXFx0XFx0YWItXFx1MDAzZWZ3LmZ3ID0gTlVMTDtcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NDcuOTM4ODkzNjgxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoyMjMzMzI4MzIyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNzMyNThjOWU1MDEyNjM5NWIwMjY0ODRjNzc2MDM0MjE1ZTQzNjhjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBTZXAgMTAgMDc6NTc6NDYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbmluZGV4IGVmMWI0YzgxODQzYTMuLjg4ZWMyZmZkOWYwMGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY1xuQEAgLTE2LDEwICsxNiwxMiBAQCBzdGF0aWMgaW50IGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXG4gXHRzdHJ1Y3QgYXRoMTFrX2Z3X2llICpoZHI7XG4gXHRjb25zdCB1OCAqZGF0YTtcbiBcdF9fbGUzMiAqdGltZXN0YW1wO1xuK1x0Y2hhciBwYXRoWzEwMF07XG4gXG4tXHRhYi1cdTAwM2Vmdy5mdyA9IGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3QoYWIsIG5hbWUpO1xuLVx0aWYgKElTX0VSUihhYi1cdTAwM2Vmdy5mdykpIHtcbi1cdFx0cmV0ID0gUFRSX0VSUihhYi1cdTAwM2Vmdy5mdyk7XG4rXHRhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aChhYiwgbmFtZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKTtcbitcbitcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFx1MDAyNmFiLVx1MDAzZWZ3LmZ3LCBwYXRoLCBhYi1cdTAwM2VkZXYpO1xuK1x0aWYgKHJldCkge1xuIFx0XHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0JPT1QsIFwiZmFpbGVkIHRvIGxvYWQgJXM6ICVkXFxuXCIsIG5hbWUsIHJldCk7XG4gXHRcdGFiLVx1MDAzZWZ3LmZ3ID0gTlVMTDtcbiBcdFx0cmV0dXJuIHJldDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjQ3LjkzODg5NTIyMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY2NTE3Mzg2MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUXVhbGNvbW0gV2lyZWxlc3MgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIEl0IGxvb2tzIGxpa2Ugd2UncmUgY2hhbmdpbmcgc29tZXRoaW5nIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNgLiBTcGVjaWZpY2FsbHksIHdlJ3JlIGxvb2tpbmcgYXQgYSBmdW5jdGlvbiBjYWxsZWQgYGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhlIG9sZCBjb2RlIHVzZWQgYGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3RgIHRvIGZldGNoIHRoZSBmaXJtd2FyZSBkaXJlY3RseSwgYW5kIG5vdyB3ZSdyZSByZXBsYWNpbmcgdGhhdCB3aXRoIGEgY2FsbCB0byBgYXRoMTFrX2NvcmVfY3JlYXRlX2Zpcm13YXJlX3BhdGhgIGFuZCBgcmVxdWVzdF9maXJtd2FyZV9kaXJlY3RgLiBJbnRlcmVzdGluZy4gSXQgbG9va3MgbGlrZSBpdCdzIGJ1aWxkaW5nIGEgcGF0aCwgYW5kIHRoZW4gdXNpbmcgYSBkaXJlY3QgcmVxdWVzdC4gVGhlIG9sZGVyIG1ldGhvZCBtaWdodCBoYXZlIGhhZCBzb21lIGlzc3Vlcywgb3IgcGVyaGFwcyB0aGlzIG5ldyBhcHByb2FjaCBvZmZlcnMgc29tZSBhZHZhbnRhZ2VzIGluIHRlcm1zIG9mIGNvbnRyb2wgb3IgZXJyb3IgaGFuZGxpbmcsIGdpdmVuIHRoZSBjaGFuZ2UgZnJvbSBhIGRpcmVjdCBhc3NpZ25tZW50IHRvIGEgcmV0dXJuIGNvZGUgY2hlY2suXG5cbk5vdywgYSBxdWljayByZW1pbmRlcjogYGF0aDExa2AuLi4gcmlnaHQsIHRoYXQncyBRdWFsY29tbSdzIElFRUUgODAyLjExYXggd2lyZWxlc3MgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBydW5uaW5nIGluIGEgdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCBvciBpZiB0aGlzIGlzIHRhcmdldGluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYmUgaXQgUENJZSwgQUhCLCBTRElPLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseS4gVGhlIGNvbnRleHQgYXJvdW5kIHRoZSBmaXJtd2FyZSByZXF1ZXN0IGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucy4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgYnVzIGFuZCBLY29uZmlnIHNldHRpbmdzIHdpdGhpbiB0aGUgYGF0aDExa2AgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50IGFuZCBwb3RlbnRpYWwgbGltaXRhdGlvbnMuIEknbGwgbmVlZCB0byBjaGVjayBob3cgdGhlIGZpcm13YXJlIHBhdGggaXMgYWN0dWFsbHkgYnVpbHQgYW5kIHdoZXJlIGl0J3MgbG9va2luZyBmb3IgdGhlIGZpbGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDM4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NTQuNTkwNjQwNjA5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MzcyMzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkFUSDExS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTMxMCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjI6Y29uZmlnIEFUSDExS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSA4MDIuMTFheCBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjEzOmNvbmZpZyBBVEgxMUtfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE0LVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTU6XFx0ZGVwZW5kcyBvbiBBVEgxMUtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTYtXFx0ZGVwZW5kcyBvbiBSRU1PVEVQUk9DXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIwOmNvbmZpZyBBVEgxMUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MjI6XFx0ZGVwZW5kcyBvbiBBVEgxMUsgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIzLVxcdHNlbGVjdCBNSElfQlVTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMwOmNvbmZpZyBBVEgxMUtfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2dpbmdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMyOlxcdGRlcGVuZHMgb24gQVRIMTFLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzg6Y29uZmlnIEFUSDExS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTM5LVxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MDpcXHRkZXBlbmRzIG9uIEFUSDExSyBcXHUwMDI2XFx1MDAyNiBERUJVR19GUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ3LVxcdGJvb2wgXFxcImF0aDExayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjQ4OlxcdGRlcGVuZHMgb24gQVRIMTFLIFxcdTAwMjZcXHUwMDI2IEVWRU5UX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1Mjpjb25maWcgQVRIMTFLX1NQRUNUUkFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUzLVxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NDpcXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU1LVxcdGRlcGVuZHMgb24gUkVMQVlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NjE6Y29uZmlnIEFUSDExS19DRlJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjItXFx0Ym9vbCBcXFwiYXRoMTFrIGNoYW5uZWwgZnJlcXVlbmN5IHJlc3BvbnNlIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYzOlxcdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjQtXFx0ZGVwZW5kcyBvbiBSRUxBWVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQVRIMTFLKSArPSBhdGgxMWsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMy1hdGgxMWsteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI0OmF0aDExay0kKENPTkZJR19BVEgxMUtfREVCVUdGUykgKz0gZGVidWdmcy5vIGRlYnVnZnNfaHR0X3N0YXRzLm8gZGVidWdmc19zdGEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjUtYXRoMTFrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICs9IHRlc3Rtb2RlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI2OmF0aDExay0kKENPTkZJR19BVEgxMUtfVFJBQ0lORykgKz0gdHJhY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjctYXRoMTFrLSQoQ09ORklHX1RIRVJNQUwpICs9IHRoZXJtYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjg6YXRoMTFrLSQoQ09ORklHX0FUSDExS19TUEVDVFJBTCkgKz0gc3BlY3RyYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjktYXRoMTFrLSQoQ09ORklHX1BNKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU9MzA9YXRoMTFrLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzE6YXRoMTFrLSQoQ09ORklHX0FUSDExS19DRlIpICs9IGNmci5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMzOm9iai0kKENPTkZJR19BVEgxMUtfQUhCKSArPSBhdGgxMWtfYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM0LWF0aDExa19haGIteSArPSBhaGIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQVRIMTFLX1BDSSkgKz0gYXRoMTFrX3BjaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zNy1hdGgxMWtfcGNpLXkgKz0gbWhpLm8gcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRoMTFrX2FoYl9vZl9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yOC1cXHR7IC5jb21wYXRpYmxlID0gXFxcInFjb20saXBxODA3NC13aWZpXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5OlxcdCAgLmRhdGEgPSAodm9pZCAqKUFUSDExS19IV19JUFE4MDc0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzAtXFx0fSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwicWNvbSxpcHE2MDE4LXdpZmlcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI6XFx0ICAuZGF0YSA9ICh2b2lkICopQVRIMTFLX0hXX0lQUTYwMThfSFcxMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMzLVxcdH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNC1cXHR7IC5jb21wYXRpYmxlID0gXFxcInFjb20sd2NuNjc1MC13aWZpXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1OlxcdCAgLmRhdGEgPSAodm9pZCAqKUFUSDExS19IV19XQ042NzUwX0hXMTAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNi1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzctXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY29tLGlwcTUwMTgtd2lmaVxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODpcXHQgIC5kYXRhID0gKHZvaWQgKilBVEgxMUtfSFdfSVBRNTAxOF9IVzEwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzktXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NDM9TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYXRoMTFrX2FoYl9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1OiNkZWZpbmUgQVRIMTFLX0lSUV9DRTBfT0ZGU0VUIDRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc6c3RhdGljIGNvbnN0IGNoYXIgKmlycV9uYW1lW0FUSDExS19JUlFfTlVNX01BWF0gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OC1cXHRcXFwibWlzYy1wdWxzZTFcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTE9YXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTU1LVxcdC8qIElmIG9mZnNldCBsaWVzIHdpdGhpbiBEUCByZWdpc3RlciByYW5nZSwgdXNlIDFzdCB3aW5kb3cgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE1NjpcXHRpZiAoKG9mZnNldCBeIEhBTF9TRVFfV0NTU19VTUFDX09GRlNFVCkgXFx1MDAzYyBBVEgxMUtfUENJX1dJTkRPV19SQU5HRV9NQVNLKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTU3OlxcdFxcdHdpbmRvd19zdGFydCA9IEFUSDExS19QQ0lfV0lORE9XX1NUQVJUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTU4LVxcdC8qIElmIG9mZnNldCBsaWVzIHdpdGhpbiBDRSByZWdpc3RlciByYW5nZSwgdXNlIDJuZCB3aW5kb3cgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1OS1cXHRlbHNlIGlmICgob2Zmc2V0IF4gSEFMX1NFUV9XQ1NTX1VNQUNfQ0UwX1NSQ19SRUcoYWIpKSBcXHUwMDNjXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjA6XFx0XFx0IEFUSDExS19QQ0lfV0lORE9XX1JBTkdFX01BU0spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjE6XFx0XFx0d2luZG93X3N0YXJ0ID0gMiAqIEFUSDExS19QQ0lfV0lORE9XX1NUQVJUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNjc9YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc0LVxcdGlvd3JpdGUzMih2YWx1ZSwgYWItXFx1MDAzZW1lbSArIHdpbmRvd19zdGFydCArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzU6XFx0XFx0ICAob2Zmc2V0IFxcdTAwMjYgQVRIMTFLX1BDSV9XSU5ET1dfUkFOR0VfTUFTSykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTc4PXN0YXRpYyB1MzIgYXRoMTFrX2FoYl93aW5kb3dfcmVhZDMyX3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg2LVxcdHZhbCA9IGlvcmVhZDMyKGFiLVxcdTAwM2VtZW0gKyB3aW5kb3dfc3RhcnQgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg3OlxcdFxcdCAgICAgICAob2Zmc2V0IFxcdTAwMjYgQVRIMTFLX1BDSV9XSU5ET1dfUkFOR0VfTUFTSykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg4LVxcdHJldHVybiB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTIzMT1zdGF0aWMgdm9pZCBfX2F0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzNTpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM2LVxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0yNzI9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjc4OlxcdGllMV9yZWdfYWRkciA9IGNlX2llX2FkZHItXFx1MDAzZWllMV9yZWdfYWRkciArIEFUSDExS19DRV9PRkZTRVQoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjc5OlxcdGllMl9yZWdfYWRkciA9IGNlX2llX2FkZHItXFx1MDAzZWllMl9yZWdfYWRkciArIEFUSDExS19DRV9PRkZTRVQoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjgwOlxcdGllM19yZWdfYWRkciA9IGNlX2llX2FkZHItXFx1MDAzZWllM19yZWdfYWRkciArIEFUSDExS19DRV9PRkZTRVQoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjgxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0yOTM9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5OTpcXHRpZTFfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVxcdTAwM2VpZTFfcmVnX2FkZHIgKyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwMDpcXHRpZTJfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVxcdTAwM2VpZTJfcmVnX2FkZHIgKyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwMTpcXHRpZTNfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVxcdTAwM2VpZTNfcmVnX2FkZHIgKyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MzE0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMyMzpcXHRcXHRpcnFfaWR4ID0gQVRIMTFLX0lSUV9DRTBfT0ZGU0VUICsgaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyNC1cXHRcXHRzeW5jaHJvbml6ZV9pcnEoYWItXFx1MDAzZWlycV9udW1baXJxX2lkeF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0zMjg9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMzMzpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzM0LVxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0zNzM9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNzc6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3OC1cXHRcXHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9Mzk0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfc3RvcChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NjpcXHRpZiAoIXRlc3RfYml0KEFUSDExS19GTEFHX0NSQVNIX0ZMVVNILCBcXHUwMDI2YWItXFx1MDAzZWRldl9mbGFncykpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTctXFx0XFx0YXRoMTFrX2FoYl9jZV9pcnFzX2Rpc2FibGUoYWIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz00NDY9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDUwOlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUxLVxcdFxcdGF0aDExa19haGJfZnJlZV9leHRfaXJxX2dycChhYiwgXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTQ1ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2ZyZWVfY2VfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBpbnQgbWF4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDYxOlxcdFxcdGlycV9pZHggPSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgKyBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYyLVxcdFxcdGZyZWVfaXJxKGFiLVxcdTAwM2VpcnFfbnVtW2lycV9pZHhdLCBcXHUwMDI2YWItXFx1MDAzZWNlLmNlX3BpcGVbaV0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz01MzI9c3RhdGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU0MDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQxLVxcdFxcdHUzMiBudW1faXJxID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTU4OlxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9OVU1fTUFYOyBqKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU1OS1cXHRcXHRcXHRpZiAoYWItXFx1MDAzZWh3X3BhcmFtcy5yaW5nX21hc2stXFx1MDAzZXR4W2ldIFxcdTAwMjYgQklUKGopKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTYzMz1zdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2NDg6XFx0XFx0aXJxX2lkeCA9IEFUSDExS19JUlFfQ0UwX09GRlNFVCArIGk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTcxOD1zdGF0aWMgaW50IGF0aDExa19haGJfaGlmX3N1c3BlbmQoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzI4OlxcdHdha2VfaXJxID0gYWItXFx1MDAzZWlycV9udW1bQVRIMTFLX1BDSV9JUlFfQ0UwX09GRlNFVCArIEFUSDExS19QQ0lfQ0VfV0FLRV9JUlFdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzI5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzYtXFx0dmFsdWUgPSB1MzJfZW5jb2RlX2JpdHMoYWJfYWhiLVxcdTAwM2VzbXAycF9pbmZvLnNlcV9ubysrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM3OlxcdFxcdFxcdFxcdEFUSDExS19BSEJfU01QMlBfU01FTV9TRVFfTk8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM4OlxcdHZhbHVlIHw9IHUzMl9lbmNvZGVfYml0cyhBVEgxMUtfQUhCX1BPV0VSX1NBVkVfRU5URVIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Mzk6XFx0XFx0XFx0XFx0IEFUSDExS19BSEJfU01QMlBfU01FTV9NU0cpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQxLVxcdHJldCA9IHFjb21fc21lbV9zdGF0ZV91cGRhdGVfYml0cyhhYl9haGItXFx1MDAzZXNtcDJwX2luZm8uc21lbV9zdGF0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc0MjpcXHRcXHRcXHRcXHRcXHQgIEFUSDExS19BSEJfU01QMlBfU01FTV9WQUxVRV9NQVNLLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NDg6XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFxcXCJkZXZpY2Ugc3VzcGVuZGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc0OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NzUzPXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfcmVzdW1lKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MzpcXHR3YWtlX2lycSA9IGFiLVxcdTAwM2VpcnFfbnVtW0FUSDExS19QQ0lfSVJRX0NFMF9PRkZTRVQgKyBBVEgxMUtfUENJX0NFX1dBS0VfSVJRXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzczLVxcdHZhbHVlID0gdTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cXHUwMDNlc21wMnBfaW5mby5zZXFfbm8rKyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcXHRcXHRcXHRcXHRBVEgxMUtfQUhCX1NNUDJQX1NNRU1fU0VRX05PKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NTpcXHR2YWx1ZSB8PSB1MzJfZW5jb2RlX2JpdHMoQVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VYSVQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzY6XFx0XFx0XFx0XFx0IEFUSDExS19BSEJfU01QMlBfU01FTV9NU0cpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc4LVxcdHJldCA9IHFjb21fc21lbV9zdGF0ZV91cGRhdGVfYml0cyhhYl9haGItXFx1MDAzZXNtcDJwX2luZm8uc21lbV9zdGF0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcXHRcXHRcXHRcXHRcXHQgIEFUSDExS19BSEJfU01QMlBfU01FTV9WQUxVRV9NQVNLLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODAtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFxcXCJkZXZpY2UgcmVzdW1lZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTg0OD1zdGF0aWMgaW50IGF0aDExa19haGJfc2V0dXBfbXNpX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4OTM6XFx0c2V0X2JpdChBVEgxMUtfRkxBR19NVUxUSV9NU0lfVkVDVE9SUywgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODk0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMTM5PXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTQ5LVxcdHN3aXRjaCAoaHdfcmV2KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUwOlxcdGNhc2UgQVRIMTFLX0hXX0lQUTgwNzQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUxOlxcdGNhc2UgQVRIMTFLX0hXX0lQUTYwMThfSFcxMDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExNTI6XFx0Y2FzZSBBVEgxMUtfSFdfSVBRNTAxOF9IVzEwOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE1My1cXHRcXHRoaWZfb3BzID0gXFx1MDAyNmF0aDExa19haGJfaGlmX29wc19pcHE4MDc0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTU1LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE1NjpcXHRjYXNlIEFUSDExS19IV19XQ042NzUwX0hXMTA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTU3LVxcdFxcdGhpZl9vcHMgPSBcXHUwMDI2YXRoMTFrX2FoYl9oaWZfb3BzX3djbjY3NTA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExNzEtXFx0YWIgPSBhdGgxMWtfY29yZV9hbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2Yoc3RydWN0IGF0aDExa19haGIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE3MjpcXHRcXHRcXHQgICAgICAgQVRIMTFLX0JVU19BSEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE3My1cXHRpZiAoIWFiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExODAtXFx0YWItXFx1MDAzZWh3X3JldiA9IGh3X3JldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExODE6XFx0YWItXFx1MDAzZWZ3X21vZGUgPSBBVEgxMUtfRklSTVdBUkVfTU9ERV9OT1JNQUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTgyLVxcdHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGFiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTI2ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3JlbW92ZV9wcmVwYXJlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjY4OlxcdGlmICh0ZXN0X2JpdChBVEgxMUtfRkxBR19SRUNPVkVSWSwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjY5LVxcdFxcdGxlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXFx1MDAyNmFiLVxcdTAwM2Vkcml2ZXJfcmVjb3ZlcnksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjcwOlxcdFxcdFxcdFxcdFxcdFxcdCAgIEFUSDExS19BSEJfUkVDT1ZFUllfVElNRU9VVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjcxLVxcdFxcdGlmICghbGVmdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTI3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEyNzU6XFx0c2V0X2JpdChBVEgxMUtfRkxBR19VTlJFR0lTVEVSSU5HLCBcXHUwMDI2YWItXFx1MDAzZWRldl9mbGFncyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjc2LVxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNmFiLVxcdTAwM2VyZXN0YXJ0X3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMjk1PXN0YXRpYyB2b2lkIGF0aDExa19haGJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjk5OlxcdGlmICh0ZXN0X2JpdChBVEgxMUtfRkxBR19RTUlfRkFJTCwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMzAwLVxcdFxcdGF0aDExa19haGJfcG93ZXJfZG93bihhYiwgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMzE0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTMyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEzMjQ6XFx0aWYgKCEodGVzdF9iaXQoQVRIMTFLX0ZMQUdfUkVHSVNURVJFRCwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMjUtXFx0XFx0Z290byBmcmVlX3Jlc291cmNlcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmgtNS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjY6I2lmbmRlZiBBVEgxMUtfQUhCX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjc6I2RlZmluZSBBVEgxMUtfQUhCX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTE6I2RlZmluZSBBVEgxMUtfQUhCX1JFQ09WRVJZX1RJTUVPVVQgKDMgKiBIWilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTM6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fTVNHXFx0XFx0R0VOTUFTSygxNSwgMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjE0OiNkZWZpbmUgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX1NFUV9OT1xcdFxcdEdFTk1BU0soMzEsIDE2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTU6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTS1xcdDB4RkZGRkZGRkZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg9MTc9ZW51bSBhdGgxMWtfYWhiX3NtcDJwX21zZ19pZCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaDoxODpcXHRBVEgxMUtfQUhCX1BPV0VSX1NBVkVfRU5URVIgPSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTk6XFx0QVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VYSVQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC0yMC19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jPTMyMT1zdGF0aWMgaW50IGF0aDExa19jZV9yeF9wb3N0X3BpcGUoc3RydWN0IGF0aDExa19jZV9waXBlICpwaXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTM1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6MzUxOlxcdFxcdEFUSDExS19TS0JfUlhDQihza2IpLVxcdTAwM2VwYWRkciA9IHBhZGRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtMzU1LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6MzU2OlxcdFxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFxcXCJmYWlsZWQgdG8gZW5xdWV1ZSByeCBidWY6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTctXFx0XFx0XFx0XFx0ICAgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz00MTc9c3RhdGljIHZvaWQgYXRoMTFrX2NlX3JlY3ZfcHJvY2Vzc19jYihzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDI3LVxcdFxcdG1heF9uYnl0ZXMgPSBza2ItXFx1MDAzZWxlbiArIHNrYl90YWlscm9vbShza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo0Mjg6XFx0XFx0ZG1hX3VubWFwX3NpbmdsZShhYi1cXHUwMDNlZGV2LCBBVEgxMUtfU0tCX1JYQ0Ioc2tiKS1cXHUwMDNlcGFkZHIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQyOS1cXHRcXHRcXHRcXHQgbWF4X25ieXRlcywgRE1BX0ZST01fREVWSUNFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy00NDItXFx0d2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKFxcdTAwMjZsaXN0KSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NDQzOlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFxcXCJyeCBjZSBwaXBlICVkIGxlbiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDQ0LVxcdFxcdFxcdCAgIHBpcGUtXFx1MDAzZXBpcGVfbnVtLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDUyLVxcdFxcdG1vZF90aW1lcihcXHUwMDI2YWItXFx1MDAzZXJ4X3JlcGxlbmlzaF9yZXRyeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NDUzOlxcdFxcdFxcdCAgamlmZmllcyArIEFUSDExS19DRV9SWF9QT1NUX1JFVFJZX0pJRkZJRVMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy00NTQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jPTQ5OD1zdGF0aWMgdm9pZCBhdGgxMWtfY2VfdHhfcHJvY2Vzc19jYihzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo1MDk6XFx0XFx0ZG1hX3VubWFwX3NpbmdsZShhYi1cXHUwMDNlZGV2LCBBVEgxMUtfU0tCX0NCKHNrYiktXFx1MDAzZXBhZGRyLCBza2ItXFx1MDAzZWxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTEwLVxcdFxcdFxcdFxcdCBETUFfVE9fREVWSUNFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy01MjAtXFx0d2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKFxcdTAwMjZsaXN0KSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NTIxOlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFxcXCJ0eCBjZSBwaXBlICVkIGxlbiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTIyLVxcdFxcdFxcdCAgIHBpcGUtXFx1MDAzZXBpcGVfbnVtLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9NTUzPXN0YXRpYyBpbnQgYXRoMTFrX2NlX2luaXRfcmluZyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTYwNC1cXHRcXHRhdGgxMWtfZHBfc2hhZG93X2luaXRfdGltZXIoYWIsIFxcdTAwMjZhYi1cXHUwMDNlY2UuaHBfdGltZXJbY2VfaWRdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo2MDU6XFx0XFx0XFx0XFx0XFx0ICAgIEFUSDExS19TSEFET1dfQ1RSTF9USU1FUl9JTlRFUlZBTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNjA2LVxcdFxcdFxcdFxcdFxcdCAgICBjZV9yaW5nLVxcdTAwM2VoYWxfcmluZ19pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9NzA5PWludCBhdGgxMWtfY2Vfc2VuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCBwaXBlX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTczOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NzM5OlxcdFxcdGlmIChudW1fdXNlZCBcXHUwMDNlIEFUSDExS19DRV9VU0FHRV9USFJFU0hPTEQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc0MC1cXHRcXHRcXHRhdGgxMWtfY2VfcG9sbF9zZW5kX2NvbXBsZXRlZChhYiwgcGlwZS1cXHUwMDNlcGlwZV9udW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NzQzOlxcdGlmICh0ZXN0X2JpdChBVEgxMUtfRkxBR19DUkFTSF9GTFVTSCwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy03NDQtXFx0XFx0cmV0dXJuIC1FU0hVVERPV047XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNzcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo3NzM6XFx0YXRoMTFrX2hhbF9jZV9zcmNfc2V0X2Rlc2MoZGVzYywgQVRIMTFLX1NLQl9DQihza2IpLVxcdTAwM2VwYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNzc0LVxcdFxcdFxcdFxcdCAgIHNrYi1cXHUwMDNlbGVuLCB0cmFuc2Zlcl9pZCwgYnl0ZV9zd2FwX2RhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jPTc5OT1zdGF0aWMgdm9pZCBhdGgxMWtfY2VfcnhfcGlwZV9jbGVhbnVwKHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTQtXFx0XFx0cmluZy1cXHUwMDNlc2tiW2ldID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6ODE1OlxcdFxcdGRtYV91bm1hcF9zaW5nbGUoYWItXFx1MDAzZWRldiwgQVRIMTFLX1NLQl9SWENCKHNrYiktXFx1MDAzZXBhZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTYtXFx0XFx0XFx0XFx0IHNrYi1cXHUwMDNlbGVuICsgc2tiX3RhaWxyb29tKHNrYiksIERNQV9GUk9NX0RFVklDRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9ODgzPXZvaWQgYXRoMTFrX2NlX3J4X3Bvc3RfYnVmKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtODk4LVxcdFxcdFxcdG1vZF90aW1lcihcXHUwMDI2YWItXFx1MDAzZXJ4X3JlcGxlbmlzaF9yZXRyeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6ODk5OlxcdFxcdFxcdFxcdCAgamlmZmllcyArIEFUSDExS19DRV9SWF9QT1NUX1JFVFJZX0pJRkZJRVMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy05MDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NzojaWZuZGVmIEFUSDExS19DRV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oOjg6I2RlZmluZSBBVEgxMUtfQ0VfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaC05LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTI1LS8qIFRocmVzaG9sZCB0byBwb2xsIGZvciB0eCBjb21wbGV0aW9uIGluIGNhc2Ugb2YgSW50ZXJydXB0IGRpc2FibGVkIENFJ3MgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6MjY6I2RlZmluZSBBVEgxMUtfQ0VfVVNBR0VfVEhSRVNIT0xEIDMyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaD0yOD12b2lkIGF0aDExa19jZV9ieXRlX3N3YXAodm9pZCAqbWVtLCB1MzIgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaC02MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NjI6I2RlZmluZSBBVEgxMUtfQ0VfUlhfUE9TVF9SRVRSWV9KSUZGSUVTIDUwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTYzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz0xOT1zdGF0aWMgaW50IGF0aDExa19jZnJfY2FsY3VsYXRlX3RvbmVzX2Zyb21fZG1hX2hkcihzdHJ1Y3QgYXRoMTFrX2Nmcl9kbWFfaGRyICpoZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI0LVxcdHN3aXRjaCAocHJlYW1ibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjI1OlxcdGNhc2UgQVRIMTFLX0NGUl9QUkVBTUJMRV9UWVBFX0xFR0FDWTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2LVxcdFxcdGZhbGx0aHJvdWdoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mjc6XFx0Y2FzZSBBVEgxMUtfQ0ZSX1BSRUFNQkxFX1RZUEVfVkhUOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjgtXFx0XFx0c3dpdGNoIChidykge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zOS1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MDpcXHRjYXNlIEFUSDExS19DRlJfUFJFQU1CTEVfVFlQRV9IVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQxLVxcdFxcdHN3aXRjaCAoYncpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTE0PWF0aDExa19jZnJfY29ycmVsYXRlX2FuZF9yZWxheShzdHJ1Y3QgYXRoMTFrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MTIyOlxcdGlmIChldmVudF90eXBlID09IEFUSDExS19DT1JSRUxBVEVfVFhfRVZFTlQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyMy1cXHRcXHRpZiAobHV0LVxcdTAwM2V0eF9yZWN2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xMjYtXFx0XFx0bHV0LVxcdTAwM2V0eF9yZWN2ID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjEyNzpcXHR9IGVsc2UgaWYgKGV2ZW50X3R5cGUgPT0gQVRIMTFLX0NPUlJFTEFURV9EQlJfRVZFTlQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyOC1cXHRcXHRjZnItXFx1MDAzZWRicl9ldnRfY250Kys7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE0MC1cXHRcXHRcXHRcXHRkaWZmID0gbHV0LVxcdTAwM2VkYnJfdHN0YW1wIC0gbHV0LVxcdTAwM2V0eHJ4X3RzdGFtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE0MTpcXHRcXHRcXHRcXHRhdGgxMWtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDItXFx0XFx0XFx0XFx0XFx0ICAgXFxcInR4cnggZXZlbnQgLVxcdTAwM2UgZGJyIGV2ZW50IGRlbGF5ID0gJXUgbXNcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDUtXFx0XFx0XFx0XFx0ZGlmZiA9IGx1dC1cXHUwMDNldHhyeF90c3RhbXAgLSBsdXQtXFx1MDAzZWRicl90c3RhbXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNDY6XFx0XFx0XFx0XFx0YXRoMTFrX2RiZyhhci1cXHUwMDNlYWIsIEFUSDExS19EQkdfQ0ZSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTQ3LVxcdFxcdFxcdFxcdFxcdCAgIFxcXCJkYnIgZXZlbnQgLVxcdTAwM2UgdHhyeCBldmVudCBkZWxheSA9ICV1IG1zXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTUzLVxcdFxcdFxcdGNmci1cXHUwMDNlcmVsZWFzZV9jbnQrKztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE1NDpcXHRcXHRcXHRzdGF0dXMgPSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTU1LVxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE2MTpcXHRcXHRcXHRhdGgxMWtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNjItXFx0XFx0XFx0XFx0ICAgXFxcIlJlY2VpdmVkIGRiciBldmVudCB0d2ljZSBmb3IgdGhlIHNhbWUgbHV0IGVudHJ5XFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2Ni1cXHRcXHRcXHRjZnItXFx1MDAzZWNmcl9kbWFfYWJvcnRzKys7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNjc6XFx0XFx0XFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2OC1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNjktXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE3MDpcXHRcXHRzdGF0dXMgPSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19IT0xEO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTcxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTc2PXN0YXRpYyBpbnQgYXRoMTFrX2Nmcl9wcm9jZXNzX2RhdGEoc3RydWN0IGF0aDExayAqYXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNzk6XFx0dTMyIGVuZF9tYWdpYyA9IEFUSDExS19DRlJfRU5EX01BR0lDO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTgwLVxcdHN0cnVjdCBhdGgxMWtfY3NpX2Nmcl9oZWFkZXIgKmhlYWRlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjE5OlxcdGF0aDExa19kYmdfZHVtcChhYiwgQVRIMTFLX0RCR19DRlJfRFVNUCwgXFxcImRhdGFfZnJvbV9idWZfcmVsOlxcXCIsIFxcXCJcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjIwLVxcdFxcdFxcdGRhdGEsIGxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTIzNS1cXHRzdGF0dXMgPSBhdGgxMWtfY2ZyX2NvcnJlbGF0ZV9hbmRfcmVsYXkoYXIsIGx1dCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjIzNjpcXHRcXHRcXHRcXHRcXHRcXHRBVEgxMUtfQ09SUkVMQVRFX0RCUl9FVkVOVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyMzc6XFx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyMzg6XFx0XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yMzktXFx0XFx0XFx0ICAgXFxcInJlbGVhc2luZyBDRlIgZGF0YSB0byB1c2VyIHNwYWNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI0NC1cXHRcXHRhdGgxMWtfY2ZyX3JlbGVhc2VfbHV0X2VudHJ5KGx1dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNDU6XFx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjQ2OlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjQ3LVxcdFxcdFxcdCAgIFxcXCJ0eCBldmVudCBpcyBub3QgeWV0IHJlY2VpdmVkIGhvbGRpbmcgdGhlIGJ1ZlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz0yNTU9c3RhdGljIHZvaWQgYXRoMTFrX2Nmcl9maWxsX2hkcl9pbmZvKHN0cnVjdCBhdGgxMWsgKmFyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNjEtXFx0Y2ZyID0gXFx1MDAyNmFyLVxcdTAwM2VjZnI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNjI6XFx0aGVhZGVyLVxcdTAwM2VjZnJfbWV0YWRhdGFfdmVyc2lvbiA9IEFUSDExS19DRlJfTUVUQV9WRVJTSU9OXzQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNjM6XFx0aGVhZGVyLVxcdTAwM2VjZnJfZGF0YV92ZXJzaW9uID0gQVRIMTFLX0NGUl9EQVRBX1ZFUlNJT05fMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2NC1cXHRoZWFkZXItXFx1MDAzZWNmcl9tZXRhZGF0YV9sZW4gPSBzaXplb2Yoc3RydWN0IGNmcl9tZXRhZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4NS1cXHRoZWFkZXItXFx1MDAzZW1ldGFfZGF0YS5jYXB0dXJlX21vZGUgPSBwYXJhbXMtXFx1MDAzZWJhbmR3aWR0aCA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyODY6XFx0XFx0QVRIMTFLX0NGUl9DQVBUVVJFX0RVUF9MRUdBQ1lfQUNLIDogQVRIMTFLX0NGUl9DQVBUVVJFX0xFR0FDWV9BQ0s7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yODctXFx0aGVhZGVyLVxcdTAwM2VtZXRhX2RhdGEuY2FwdHVyZV90eXBlID0gcGFyYW1zLVxcdTAwM2VjYXB0dXJlX21ldGhvZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MzAwPWludCBhdGgxMWtfcHJvY2Vzc19jZnJfY2FwdHVyZV9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zMDMtXFx0c3RydWN0IGF0aDExa19sb29rX3VwX3RhYmxlICpsdXQgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MzA0OlxcdHUzMiBlbmRfbWFnaWMgPSBBVEgxMUtfQ0ZSX0VORF9NQUdJQztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTMwNS1cXHRzdHJ1Y3QgYXRoMTFrX2NzaV9jZnJfaGVhZGVyICpoZWFkZXI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM3OC1cXHRoZWFkZXIgPSBcXHUwMDI2bHV0LVxcdTAwM2VoZWFkZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozNzk6XFx0aGVhZGVyLVxcdTAwM2VzdGFydF9tYWdpY19udW0gPSBBVEgxMUtfQ0ZSX1NUQVJUX01BR0lDO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMzgwLVxcdGhlYWRlci1cXHUwMDNldmVuZG9yaWQgPSBWRU5ET1JfUUNBO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zODUtXFx0c3RhdHVzID0gYXRoMTFrX2Nmcl9jb3JyZWxhdGVfYW5kX3JlbGF5KGFyLCBsdXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozODY6XFx0XFx0XFx0XFx0XFx0XFx0QVRIMTFLX0NPUlJFTEFURV9UWF9FVkVOVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozODc6XFx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozODg6XFx0XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zODktXFx0XFx0XFx0ICAgXFxcIlJlbGVhc2luZyBDRlIgZGF0YSB0byB1c2VyIHNwYWNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM5OC1cXHRcXHRcXHRcXHRcXHQgICAgIFdNSV9ESVJFQ1RfQlVGX0NGUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozOTk6XFx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDAwOlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDAxLVxcdFxcdFxcdCAgIFxcXCJkYnIgZXZlbnQgaXMgbm90IHlldCByZWNlaXZlZCBob2xkaW5nIGJ1ZlxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jPTQxMj1ib29sIGF0aDExa19jZnJfcGVlcl9pc19pbl9jZnJfdW5hc3NvY19wb29sKHN0cnVjdCBhdGgxMWsgKmFyLCBjb25zdCB1OCAqcGVlcl9tYWMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQyMS1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmNmci1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MjI6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDExS19NQVhfQ0ZSX0VOQUJMRURfQ0xJRU5UUzsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00MjMtXFx0XFx0ZW50cnkgPSBcXHUwMDI2Y2ZyLVxcdTAwM2V1bmFzc29jX3Bvb2xbaV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jPTQzOD12b2lkIGF0aDExa19jZnJfdXBkYXRlX3VuYXNzb2NfcG9vbF9lbnRyeShzdHJ1Y3QgYXRoMTFrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDQ1LVxcdHNwaW5fbG9ja19iaChcXHUwMDI2Y2ZyLVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ0NjpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX01BWF9DRlJfRU5BQkxFRF9DTElFTlRTOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ0Ny1cXHRcXHRlbnRyeSA9IFxcdTAwMjZjZnItXFx1MDAzZXVuYXNzb2NfcG9vbFtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDc3PWF0aDExa19jZnJfYndfdG9fZndfY2ZyX2J3KGVudW0gYXRoMTFrX2Nmcl9jYXB0dXJlX2J3IGJ3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00NzktXFx0c3dpdGNoIChidykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDgwOlxcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX0JXXzIwOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDgxLVxcdFxcdHJldHVybiBXTUlfUEVFUl9DRlJfQ0FQVFVSRV9CV18yMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ4MjpcXHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9CV180MDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ4My1cXHRcXHRyZXR1cm4gV01JX1BFRVJfQ0ZSX0NBUFRVUkVfQldfNDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0ODQ6XFx0Y2FzZSBBVEgxMUtfQ0ZSX0NBUFRVUkVfQldfODA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00ODUtXFx0XFx0cmV0dXJuIFdNSV9QRUVSX0NGUl9DQVBUVVJFX0JXXzgwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz00OTI9YXRoMTFrX2Nmcl9tZXRob2RfdG9fZndfY2ZyX21ldGhvZChlbnVtIGF0aDExa19jZnJfY2FwdHVyZV9tZXRob2QgbWV0aG9kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00OTQtXFx0c3dpdGNoIChtZXRob2QpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ5NTpcXHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9NRVRIT0RfTlVMTF9GUkFNRTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ5Ni1cXHRcXHRyZXR1cm4gV01JX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDk3OlxcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FX1dJVEhfUEhBU0U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00OTgtXFx0XFx0cmV0dXJuIFdNSV9DRlJfQ0FQVFVSRV9NRVRIT0RfTlVMTF9GUkFNRV9XSVRIX1BIQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDk5OlxcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9QUk9CRV9SRVNQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNTAwLVxcdFxcdHJldHVybiBXTUlfQ0ZSX0NBUFRVUkVfTUVUSE9EX1BST0JFX1JFU1A7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jPTUwNj1pbnQgYXRoMTFrX2Nmcl9zZW5kX3BlZXJfY2ZyX2NhcHR1cmVfY21kKHN0cnVjdCBhdGgxMWsgKmFyLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1Nzo1NC42NTAwMTgzNDhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNTUzMzY5NTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIGF0aDExayBQQ0kgRGV2aWNlIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYXRoMTFrYCBhbmQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nIGFib3V0IGl0cyBoYXJkd2FyZSBzdXBwb3J0LiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGRlYWxpbmcgd2l0aCBkaWZmZXJlbnQgYnVzIGludGVyZmFjZXMuIFJpZ2h0LCByaWdodCwgaXQncyBwcmV0dHkgY2xlYXI6IGBhdGgxMWtgIGlzIGJ1aWx0IGZvciBlaXRoZXIgdGhlIEFIQiBidXMgKGBBVEgxMUtfQUhCYCkgb3IgUENJIChgQVRIMTFLX1BDSWApLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgKndoaWNoKiBQQ0kgZGV2aWNlcyBhcmUgYWN0dWFsbHkgcmVjb2duaXplZCBhbmQgaGFuZGxlZCBieSB0aGlzIGRyaXZlcj8gVGhhdCdzIHdoYXQgSSByZWFsbHkgbmVlZCB0byBkcmlsbCBkb3duIG9uLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIGBhdGgxMWtfcGNpLmNgIHNvdXJjZSBjb2RlLCBvciBwb3RlbnRpYWxseSB0aGUgcmVsZXZhbnQgUENJIGluZnJhc3RydWN0dXJlIGNvZGUgKGBwY2kuY2ApIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljIFBDSSBkZXZpY2UgSURzIHRoYXQgYXJlIHdpdGhpbiB0aGUgcHVydmlldyBvZiB0aGUgZHJpdmVyLiBMZXQncyBzZWUgd2hhdCBkZXZpY2UgSURzIGl0J3MgYWN0dWFsbHkgbWF0Y2hpbmcuIFRoYXQgc2hvdWxkIHRlbGwgdGhlIHdob2xlIHN0b3J5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODE3MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjU3LjIwMzQ0MjYxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDc1Mjk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kZXZpY2VfaWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExa1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6MzY6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGF0aDExa19wY2lfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTM3LVxcdHsgUENJX1ZERVZJQ0UoUUNPTSwgUUNBNjM5MF9ERVZJQ0VfSUQpIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTk0OT1zdGF0aWMgaW50IGF0aDExa19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NTA6XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTUxLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NTcuMjUyNTI1MDU5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjU1MDk3MTUyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyBEcml2ZXIgLSBQQ0kgSUQgVGFibGUqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGludG8gdGhlIEF0aGVyb3MgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgYGF0aDExa2AgbW9kdWxlLCBhbmQgSSdtIGZvY3VzaW5nIG9uIHRoZSBQQ0kgaW50ZXJmYWNlLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBjb21lcyB0byBtaW5kIGlzIHRoZSBkZXZpY2UgSUQgdGFibGUuIEl0J3MgdXN1YWxseSB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRyaXZlciBhc3NvY2lhdGVzIGl0c2VsZiB3aXRoIHNwZWNpZmljIGhhcmR3YXJlLiBTbywgSSdtIGdvaW5nIHRvIG5hdmlnYXRlIG92ZXIgdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmNgIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgYGF0aDExa19wY2lfaWRfdGFibGVgLiBUaGF0IHRhYmxlIHNob3VsZCBob2xkIHRoZSBQQ0kgZGV2aWNlIElEcywgdmVuZG9yIElEcywgYW5kIGhvcGVmdWxseSBzb21lIGFzc29jaWF0ZWQgZHJpdmVyLXNwZWNpZmljIGRhdGEgc3RydWN0dXJlcyBvciBpbml0aWFsaXphdGlvbiBpbmZvcm1hdGlvbiB0aGF0IHRoZSBkcml2ZXIgbmVlZHMgdG8gd29yay4gVW5kZXJzdGFuZGluZyB0aGlzIHRhYmxlIHdpbGwgdGVsbCBtZSBwcmVjaXNlbHkgd2hpY2ggZGV2aWNlcyB0aGlzIHNwZWNpZmljIEF0aGVyb3MgZHJpdmVyIHN1cHBvcnRzIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UuIFRpbWUgdG8gZGlnIGluIGFuZCBzZWUgd2hhdCdzIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODcxOCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjU5LjgwMzQ5OTYwMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkxMzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMzU6XFx0XFxuICAzNjpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRoMTFrX3BjaV9pZF90YWJsZVtdID0ge1xcbiAgMzc6XFx0XFx0eyBQQ0lfVkRFVklDRShRQ09NLCBRQ0E2MzkwX0RFVklDRV9JRCkgfSxcXG4gIDM4OlxcdFxcdHsgUENJX1ZERVZJQ0UoUUNPTSwgV0NONjg1NV9ERVZJQ0VfSUQpIH0sXFxuICAzOTpcXHRcXHR7IFBDSV9WREVWSUNFKFFDT00sIFFDTjkwNzRfREVWSUNFX0lEKSB9LFxcbiAgNDA6XFx0XFx0e31cXG4gIDQxOlxcdH07XFxuICA0MjpcXHRcXG4gIDQzOlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhdGgxMWtfcGNpX2lkX3RhYmxlKTtcXG4gIDQ0OlxcdFxcbiAgNDU6XFx0c3RhdGljIGludCBhdGgxMWtfcGNpX2J1c193YWtlX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuICA0NjpcXHR7XFxuICA0NzpcXHRcXHRzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpID0gYXRoMTFrX3BjaV9wcml2KGFiKTtcXG4gIDQ4OlxcdFxcbiAgNDk6XFx0XFx0cmV0dXJuIG1oaV9kZXZpY2VfZ2V0X3N5bmMoYWJfcGNpLVxcdTAwM2VtaGlfY3RybC1cXHUwMDNlbWhpX2Rldik7XFxuICA1MDpcXHR9XFxuICA1MTpcXHRcXG4gIDUyOlxcdHN0YXRpYyB2b2lkIGF0aDExa19wY2lfYnVzX3JlbGVhc2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4gIDUzOlxcdHtcXG4gIDU0OlxcdFxcdHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2kgPSBhdGgxMWtfcGNpX3ByaXYoYWIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1Nzo1OS44MDM1OTIzNTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMzA3NzczNjAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgYXRoMTFrJ3MgQnVzIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBhdGgxMWssIHRoZSBRdWFsY29tbSBXaS1GaSBkcml2ZXIsIGhhcyBhIHByZXR0eSBzb2xpZCBoYW5kbGUgb24gdGhlIHVzdWFsIHN1c3BlY3RzIOKAkyB0aGUgUENJIGFuZCBBSEIgYmFzZWQgUXVhbGNvbW0gZGV2aWNlczogUUNBNjM5MCwgV0NONjg1NSwgUUNOOTA3NCwgSVBRODA3NCwgSVBRNjAxOCwgV0NONjc1MCwgYW5kIElQUTUwMTguIEJ1dCBJJ20gY3VyaW91cywgZG9lcyB0aGUgZHJpdmVyIGhhdmUgYW55IGZsZXhpYmlsaXR5IGJleW9uZCB0aGlzPyBEb2VzIGl0IGV4dGVuZCB0byBoYW5kbGluZyB2aXJ0dWFsIG9yIGVtdWxhdGVkIGJ1c2VzLCBvciBldmVuIFVTQiBnYWRnZXRzPyBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCBpdCBwcmltYXJpbHkgZGVhbHMgd2l0aCB0aGVzZSBoYXJkd2FyZSBwbGF0Zm9ybXMsIGJ1dCBJIGNhbid0IGJlIHN1cmUgd2l0aG91dCBkaWdnaW5nIGRlZXBlci5cblxuSSBuZWVkIHRvIGNvbmZpcm0gdGhlIGV4dGVudCBvZiBpdHMgc3VwcG9ydGVkIGJ1cyB0eXBlcy4gVG8gY2xhcmlmeSB0aGlzLCBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciBpdCdzIHNvbGVseSB0aWVkIHRvIHBoeXNpY2FsIFBDSSBhbmQgQUhCIGludGVyZmFjZXMsIG9yIGlmIGl0IG9mZmVycyB3aWRlciBjb21wYXRpYmlsaXR5LiBUaGUgbW9zdCBkaXJlY3QgYXBwcm9hY2ggaXMgdG8gZXhhbWluZSB0aGUgc291cmNlIGNvZGUuIExldCdzIGRlbHZlIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrYCBkaXJlY3RvcnksIGFuZCBzY3J1dGluaXplIGFsbCB0aGUgZmlsZXMgdGhlcmVpbi4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYmVzdCBpbnNpZ2h0IGludG8gaXRzIGJ1cyBzdXBwb3J0IGNhcGFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkzNzMsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1ODowMy4xMTEzNjgzMzJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTg4MDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImFoYi5jXCIsXG4gICAgXCJhaGIuaFwiLFxuICAgIFwiY2UuY1wiLFxuICAgIFwiY2UuaFwiLFxuICAgIFwiY2ZyLmNcIixcbiAgICBcImNmci5oXCIsXG4gICAgXCJjb3JlLmNcIixcbiAgICBcImNvcmUuaFwiLFxuICAgIFwiY29yZWR1bXAuY1wiLFxuICAgIFwiY29yZWR1bXAuaFwiLFxuICAgIFwiZGJyaW5nLmNcIixcbiAgICBcImRicmluZy5oXCIsXG4gICAgXCJkZWJ1Zy5jXCIsXG4gICAgXCJkZWJ1Zy5oXCIsXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImRlYnVnZnMuaFwiLFxuICAgIFwiZGVidWdmc19odHRfc3RhdHMuY1wiLFxuICAgIFwiZGVidWdmc19odHRfc3RhdHMuaFwiLFxuICAgIFwiZGVidWdmc19zdGEuY1wiLFxuICAgIFwiZGVidWdmc19zdGEuaFwiLFxuICAgIFwiZHAuY1wiLFxuICAgIFwiZHAuaFwiLFxuICAgIFwiZHBfcnguY1wiLFxuICAgIFwiZHBfcnguaFwiLFxuICAgIFwiZHBfdHguY1wiLFxuICAgIFwiZHBfdHguaFwiLFxuICAgIFwiZncuY1wiLFxuICAgIFwiZncuaFwiLFxuICAgIFwiaGFsLmNcIixcbiAgICBcImhhbC5oXCIsXG4gICAgXCJoYWxfZGVzYy5oXCIsXG4gICAgXCJoYWxfcnguY1wiLFxuICAgIFwiaGFsX3J4LmhcIixcbiAgICBcImhhbF90eC5jXCIsXG4gICAgXCJoYWxfdHguaFwiLFxuICAgIFwiaGlmLmhcIixcbiAgICBcImh0Yy5jXCIsXG4gICAgXCJodGMuaFwiLFxuICAgIFwiaHcuY1wiLFxuICAgIFwiaHcuaFwiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtaGkuY1wiLFxuICAgIFwibWhpLmhcIixcbiAgICBcInAycC5jXCIsXG4gICAgXCJwMnAuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBjaS5oXCIsXG4gICAgXCJwY2ljLmNcIixcbiAgICBcInBjaWMuaFwiLFxuICAgIFwicGVlci5jXCIsXG4gICAgXCJwZWVyLmhcIixcbiAgICBcInFtaS5jXCIsXG4gICAgXCJxbWkuaFwiLFxuICAgIFwicmVnLmNcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJyeF9kZXNjLmhcIixcbiAgICBcInNwZWN0cmFsLmNcIixcbiAgICBcInNwZWN0cmFsLmhcIixcbiAgICBcInRlc3Rtb2RlLmNcIixcbiAgICBcInRlc3Rtb2RlLmhcIixcbiAgICBcInRoZXJtYWwuY1wiLFxuICAgIFwidGhlcm1hbC5oXCIsXG4gICAgXCJ0cmFjZS5jXCIsXG4gICAgXCJ0cmFjZS5oXCIsXG4gICAgXCJ3bWkuY1wiLFxuICAgIFwid21pLmhcIixcbiAgICBcIndvdy5jXCIsXG4gICAgXCJ3b3cuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1ODowMy4xMTE0ODg4NzJaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NzE2MDY2MjYyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBhdGgxMWsgRHJpdmVyIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGZ1enppbmcgdGhlIGBhdGgxMWtgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24oKWAsIGlzbid0IGdvaW5nIHRvIGJlIGZydWl0ZnVsIGluIHN0YW5kYXJkIGZ1enppbmcgc2V0dXBzLiBUaGUgZHJpdmVyLCBhcyBJIHVuZGVyc3RhbmQgaXQsIHByaW1hcmlseSBkZWFscyB3aXRoIFF1YWxjb21tIDgwMi4xMWF4IGhhcmR3YXJlIOKAkyB0aGluZ3MgbGlrZSB0aGUgUUNBNjM5MCwgV0NONjg1NSwgYW5kIG90aGVyIHNpbGljb24tYmFzZWQgZGV2aWNlcyBjb21tdW5pY2F0aW5nIHZpYSBQQ0llIG9yIEFIQi4gVGhlIGtleSBoZXJlIGlzIHRoZSAqcGh5c2ljYWwqIG5hdHVyZSBvZiB0aGUgaGFyZHdhcmUuXG5cblRoZSBpc3N1ZSwgYXMgSSBzZWUgaXQsIGJvaWxzIGRvd24gdG8gZW11bGF0aW9uLiBTdGFuZGFyZCBRRU1VIGFuZCBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgZW52aXJvbm1lbnRzIHNpbXBseSBkb24ndCBlbXVsYXRlIHRoZXNlIHNwZWNpZmljIFF1YWxjb21tIFdpRmkgY29tcG9uZW50cy4gVGhlIGxvZ2ljIEknbSBmb2xsb3dpbmcgYWxpZ25zIHdpdGggdGhlIFwic3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlXCIgbmVnYXRpdmUgY3JpdGVyaW9uLiBUaGUgcGF0Y2ggaGl0cyB0aGUgYGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uYCBmdW5jdGlvbiBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jYCB3aGljaCBoYW5kbGVzIHJlcXVlc3RzIHRvIGxvYWQgZmlybXdhcmUgaW50byB0aGUgaGFyZHdhcmUsIGFuZCB0aGUgaGFyZHdhcmUgaXRzZWxmIGlzbid0IHByZXNlbnQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LlxuXG5HaXZlbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIHZlbmRvci1zcGVjaWZpYywgcmVxdWlyaW5nIHBoeXNpY2FsIFF1YWxjb21tIFdpRmkgc2lsaWNvbiBjb25uZWN0ZWQgb3ZlciB0aGUgUENJZS9BSEIgYnVzLCBhbmQgdGhhdCBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudHMgZG9uJ3QgcHJvdmlkZSB0aGlzLCBmdXp6aW5nIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4gVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBpcyB1bmVxdWl2b2NhbGx5IGBmYWxzZWAuIENvbnNlcXVlbnRseSwgbXkgYEZvY3VzU3ltYm9sc2AgYW5kIGBFbmFibGVDb25maWdzYCBhcmUgZW1wdHkgYXMgSSBuZWVkIHRvIHNwZWNpZnkgd2hhdCB0YXJnZXRzIHRoZSBmdXp6ZXIgY2FuIGF0dGVtcHQgdG8gcmVhY2guIEl04oCZcyBpbXBvcnRhbnQgdG8gbWFrZSB0aGlzIGRlY2lzaW9uIGJhc2VkIG9uIHdoYXQgaXMgcHJhY3RpY2FsbHkgYWNoaWV2YWJsZSBpbiBzdGFuZGFyZCBmdXp6aW5nIHNldHVwcy5cblxuRXZlcnl0aGluZyBzZWVtcyB0byBjaGVjayBvdXQuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDI3NCwiT3V0cHV0VG9rZW5zIjoxMjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NzAsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU4OjEwLjI3MjE1NDgwNFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwODUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uIGluIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYywgd2hpY2ggYmVsb25ncyB0byB0aGUgUXVhbGNvbW0gODAyLjExYXggKGF0aDExaykgd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBRdWFsY29tbSBQQ0llL0FIQiBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uIGluIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYywgd2hpY2ggYmVsb25ncyB0byB0aGUgUXVhbGNvbW0gODAyLjExYXggKGF0aDExaykgd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBRdWFsY29tbSBQQ0llL0FIQiBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU4OjEwLjI3MjE3ODYxNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow87fs6[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-10 07:33:10 +0000 UTC FinishedAt: 2026-09-10 07:58:12 +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+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI3MzI1OGM5ZTUwMTI2Mzk1YjAyNjQ4NGM3NzYwMzQyMTVlNDM2OGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAxMCAwNzo1Nzo0NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbmluZGV4IGVmMWI0YzgxODQzYTMuLjg4ZWMyZmZkOWYwMGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY1xuQEAgLTE2LDEwICYjNDM7MTYsMTIgQEAgc3RhdGljIGludCBhdGgxMWtfZndfcmVxdWVzdF9maXJtd2FyZV9hcGlfbihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuIFx0c3RydWN0IGF0aDExa19md19pZSAqaGRyO1xuIFx0Y29uc3QgdTggKmRhdGE7XG4gXHRfX2xlMzIgKnRpbWVzdGFtcDtcbiYjNDM7XHRjaGFyIHBhdGhbMTAwXTtcbiBcbi1cdGFiLVx1MDAzZWZ3LmZ3ID0gYXRoMTFrX2NvcmVfZmlybXdhcmVfcmVxdWVzdChhYiwgbmFtZSk7XG4tXHRpZiAoSVNfRVJSKGFiLVx1MDAzZWZ3LmZ3KSkge1xuLVx0XHRyZXQgPSBQVFJfRVJSKGFiLVx1MDAzZWZ3LmZ3KTtcbiYjNDM7XHRhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aChhYiwgbmFtZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKTtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QoXHUwMDI2YWItXHUwMDNlZncuZncsIHBhdGgsIGFiLVx1MDAzZWRldik7XG4mIzQzO1x0aWYgKHJldCkge1xuIFx0XHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0JPT1QsIFwmIzM0O2ZhaWxlZCB0byBsb2FkICVzOiAlZFxcblwmIzM0OywgbmFtZSwgcmV0KTtcbiBcdFx0YWItXHUwMDNlZncuZncgPSBOVUxMO1xuIFx0XHRyZXR1cm4gcmV0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uIGluIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYywgd2hpY2ggYmVsb25ncyB0byB0aGUgUXVhbGNvbW0gODAyLjExYXggKGF0aDExaykgd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBRdWFsY29tbSBQQ0llL0FIQiBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNzMyNThjOWU1MDEyNjM5NWIwMjY0ODRjNzc2MDM0MjE1ZTQzNjhjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBTZXAgMTAgMDc6NTc6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMKaW5kZXggZWYxYjRjODE4NDNhMy4uODhlYzJmZmQ5ZjAwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYwpAQCAtMTYsMTAgJiM0MzsxNiwxMiBAQCBzdGF0aWMgaW50IGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsCiAJc3RydWN0IGF0aDExa19md19pZSAqaGRyOwogCWNvbnN0IHU4ICpkYXRhOwogCV9fbGUzMiAqdGltZXN0YW1wOwomIzQzOwljaGFyIHBhdGhbMTAwXTsKIAotCWFiLSZndDtmdy5mdyA9IGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3QoYWIsIG5hbWUpOwotCWlmIChJU19FUlIoYWItJmd0O2Z3LmZ3KSkgewotCQlyZXQgPSBQVFJfRVJSKGFiLSZndDtmdy5mdyk7CiYjNDM7CWF0aDExa19jb3JlX2NyZWF0ZV9maXJtd2FyZV9wYXRoKGFiLCBuYW1lLCBwYXRoLCBzaXplb2YocGF0aCkpOwomIzQzOwomIzQzOwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCgmYW1wO2FiLSZndDtmdy5mdywgcGF0aCwgYWItJmd0O2Rldik7CiYjNDM7CWlmIChyZXQpIHsKIAkJYXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19CT09ULCAmIzM0O2ZhaWxlZCB0byBsb2FkICVzOiAlZFxuJiMzNDssIG5hbWUsIHJldCk7CiAJCWFiLSZndDtmdy5mdyA9IE5VTEw7CiAJCXJldHVybiByZXQ7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMzgKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUXVhbGNvbW0gV2lyZWxlc3MgRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gSXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgY2hhbmdpbmcgc29tZXRoaW5nIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNgLiBTcGVjaWZpY2FsbHksIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgZnVuY3Rpb24gY2FsbGVkIGBhdGgxMWtfZndfcmVxdWVzdF9maXJtd2FyZV9hcGlfbmAuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBvbGQgY29kZSB1c2VkIGBhdGgxMWtfY29yZV9maXJtd2FyZV9yZXF1ZXN0YCB0byBmZXRjaCB0aGUgZmlybXdhcmUgZGlyZWN0bHksIGFuZCBub3cgd2UmIzM5O3JlIHJlcGxhY2luZyB0aGF0IHdpdGggYSBjYWxsIHRvIGBhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aGAgYW5kIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAuIEludGVyZXN0aW5nLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGJ1aWxkaW5nIGEgcGF0aCwgYW5kIHRoZW4gdXNpbmcgYSBkaXJlY3QgcmVxdWVzdC4gVGhlIG9sZGVyIG1ldGhvZCBtaWdodCBoYXZlIGhhZCBzb21lIGlzc3Vlcywgb3IgcGVyaGFwcyB0aGlzIG5ldyBhcHByb2FjaCBvZmZlcnMgc29tZSBhZHZhbnRhZ2VzIGluIHRlcm1zIG9mIGNvbnRyb2wgb3IgZXJyb3IgaGFuZGxpbmcsIGdpdmVuIHRoZSBjaGFuZ2UgZnJvbSBhIGRpcmVjdCBhc3NpZ25tZW50IHRvIGEgcmV0dXJuIGNvZGUgY2hlY2suCgpOb3csIGEgcXVpY2sgcmVtaW5kZXI6IGBhdGgxMWtgLi4uIHJpZ2h0LCB0aGF0JiMzOTtzIFF1YWxjb21tJiMzOTtzIElFRUUgODAyLjExYXggd2lyZWxlc3MgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBydW5uaW5nIGluIGEgdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCBvciBpZiB0aGlzIGlzIHRhcmdldGluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYmUgaXQgUENJZSwgQUhCLCBTRElPLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseS4gVGhlIGNvbnRleHQgYXJvdW5kIHRoZSBmaXJtd2FyZSByZXF1ZXN0IGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucy4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGJ1cyBhbmQgS2NvbmZpZyBzZXR0aW5ncyB3aXRoaW4gdGhlIGBhdGgxMWtgIGRpcmVjdG9yeSB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudCBhbmQgcG90ZW50aWFsIGxpbWl0YXRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGhvdyB0aGUgZmlybXdhcmUgcGF0aCBpcyBhY3R1YWxseSBidWlsdCBhbmQgd2hlcmUgaXQmIzM5O3MgbG9va2luZyBmb3IgdGhlIGZpbGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0FUSDExSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDkzMTAgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjI6Y29uZmlnIEFUSDExS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSA4MDIuMTFheCBjaGlwc2V0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTM6Y29uZmlnIEFUSDExS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xNC1cdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTU6XHRkZXBlbmRzIG9uIEFUSDExS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE2LVx0ZGVwZW5kcyBvbiBSRU1PVEVQUk9DXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIwOmNvbmZpZyBBVEgxMUtfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIyOlx0ZGVwZW5kcyBvbiBBVEgxMUsgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIzLVx0c2VsZWN0IE1ISV9CVVNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MzA6Y29uZmlnIEFUSDExS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMyOlx0ZGVwZW5kcyBvbiBBVEgxMUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zMy1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzg6Y29uZmlnIEFUSDExS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzktXHRib29sIFwmIzM0O1FDQSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDA6XHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgREVCVUdfRlMgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00MS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDctXHRib29sIFwmIzM0O2F0aDExayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0ODpcdGRlcGVuZHMgb24gQVRIMTFLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDktXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUyOmNvbmZpZyBBVEgxMUtfU1BFQ1RSQUxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01My1cdGJvb2wgXCYjMzQ7UUNBIGF0aDExayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NDpcdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01NS1cdGRlcGVuZHMgb24gUkVMQVlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NjE6Y29uZmlnIEFUSDExS19DRlJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02Mi1cdGJvb2wgXCYjMzQ7YXRoMTFrIGNoYW5uZWwgZnJlcXVlbmN5IHJlc3BvbnNlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2MzpcdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02NC1cdGRlcGVuZHMgb24gUkVMQVlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgJiM0Mzs9IGF0aDExay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTMtYXRoMTFrLXkgJiM0Mzs9IGNvcmUubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI0OmF0aDExay0kKENPTkZJR19BVEgxMUtfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjUtYXRoMTFrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI2OmF0aDExay0kKENPTkZJR19BVEgxMUtfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjctYXRoMTFrLSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSB0aGVybWFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjg6YXRoMTFrLSQoQ09ORklHX0FUSDExS19TUEVDVFJBTCkgJiM0Mzs9IHNwZWN0cmFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjktYXRoMTFrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU9MzA9YXRoMTFrLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzE6YXRoMTFrLSQoQ09ORklHX0FUSDExS19DRlIpICYjNDM7PSBjZnIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0FUSDExS19BSEIpICYjNDM7PSBhdGgxMWtfYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzQtYXRoMTFrX2FoYi15ICYjNDM7PSBhaGIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICYjNDM7PSBhdGgxMWtfcGNpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzctYXRoMTFrX3BjaS15ICYjNDM7PSBtaGkubyBwY2kub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRoMTFrX2FoYl9vZl9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjgtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxpcHE4MDc0LXdpZmlcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5Olx0ICAuZGF0YSA9ICh2b2lkICopQVRIMTFLX0hXX0lQUTgwNzQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwLVx0fSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxpcHE2MDE4LXdpZmlcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMyOlx0ICAuZGF0YSA9ICh2b2lkICopQVRIMTFLX0hXX0lQUTYwMThfSFcxMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMtXHR9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHdjbjY3NTAtd2lmaVwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU6XHQgIC5kYXRhID0gKHZvaWQgKilBVEgxMUtfSFdfV0NONjc1MF9IVzEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNi1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3LVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O3Fjb20saXBxNTAxOC13aWZpXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODpcdCAgLmRhdGEgPSAodm9pZCAqKUFUSDExS19IV19JUFE1MDE4X0hXMTAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTQzPU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDU6I2RlZmluZSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgNFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc6c3RhdGljIGNvbnN0IGNoYXIgKmlycV9uYW1lW0FUSDExS19JUlFfTlVNX01BWF0gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ4LVx0XCYjMzQ7bWlzYy1wdWxzZTFcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTE9YXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1NS1cdC8qIElmIG9mZnNldCBsaWVzIHdpdGhpbiBEUCByZWdpc3RlciByYW5nZSwgdXNlIDFzdCB3aW5kb3cgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTU2Olx0aWYgKChvZmZzZXQgXiBIQUxfU0VRX1dDU1NfVU1BQ19PRkZTRVQpIFx1MDAzYyBBVEgxMUtfUENJX1dJTkRPV19SQU5HRV9NQVNLKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNTc6XHRcdHdpbmRvd19zdGFydCA9IEFUSDExS19QQ0lfV0lORE9XX1NUQVJUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNTgtXHQvKiBJZiBvZmZzZXQgbGllcyB3aXRoaW4gQ0UgcmVnaXN0ZXIgcmFuZ2UsIHVzZSAybmQgd2luZG93ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1OS1cdGVsc2UgaWYgKChvZmZzZXQgXiBIQUxfU0VRX1dDU1NfVU1BQ19DRTBfU1JDX1JFRyhhYikpIFx1MDAzY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjA6XHRcdCBBVEgxMUtfUENJX1dJTkRPV19SQU5HRV9NQVNLKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjE6XHRcdHdpbmRvd19zdGFydCA9IDIgKiBBVEgxMUtfUENJX1dJTkRPV19TVEFSVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTYyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTY3PWF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0LCB1MzIgdmFsdWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzQtXHRpb3dyaXRlMzIodmFsdWUsIGFiLVx1MDAzZW1lbSAmIzQzOyB3aW5kb3dfc3RhcnQgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTc1Olx0XHQgIChvZmZzZXQgXHUwMDI2IEFUSDExS19QQ0lfV0lORE9XX1JBTkdFX01BU0spKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE3OD1zdGF0aWMgdTMyIGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xODYtXHR2YWwgPSBpb3JlYWQzMihhYi1cdTAwM2VtZW0gJiM0Mzsgd2luZG93X3N0YXJ0ICYjNDM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE4NzpcdFx0ICAgICAgIChvZmZzZXQgXHUwMDI2IEFUSDExS19QQ0lfV0lORE9XX1JBTkdFX01BU0spKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg4LVx0cmV0dXJuIHZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTIzMT1zdGF0aWMgdm9pZCBfX2F0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzNTpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzYtXHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTI3Mj1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTE2IGNlX2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNzg6XHRpZTFfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVx1MDAzZWllMV9yZWdfYWRkciAmIzQzOyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjc5Olx0aWUyX3JlZ19hZGRyID0gY2VfaWVfYWRkci1cdTAwM2VpZTJfcmVnX2FkZHIgJiM0MzsgQVRIMTFLX0NFX09GRlNFVChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI4MDpcdGllM19yZWdfYWRkciA9IGNlX2llX2FkZHItXHUwMDNlaWUzX3JlZ19hZGRyICYjNDM7IEFUSDExS19DRV9PRkZTRVQoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0yOTM9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yOTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5OTpcdGllMV9yZWdfYWRkciA9IGNlX2llX2FkZHItXHUwMDNlaWUxX3JlZ19hZGRyICYjNDM7IEFUSDExS19DRV9PRkZTRVQoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMDA6XHRpZTJfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVx1MDAzZWllMl9yZWdfYWRkciAmIzQzOyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzAxOlx0aWUzX3JlZ19hZGRyID0gY2VfaWVfYWRkci1cdTAwM2VpZTNfcmVnX2FkZHIgJiM0MzsgQVRIMTFLX0NFX09GRlNFVChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTMxND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3N5bmNfY2VfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMjM6XHRcdGlycV9pZHggPSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgJiM0MzsgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI0LVx0XHRzeW5jaHJvbml6ZV9pcnEoYWItXHUwMDNlaXJxX251bVtpcnFfaWR4XSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0zMjg9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMzMzpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzQtXHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTM3Mz1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM3NzpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzgtXHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTM5ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3N0b3Aoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk2Olx0aWYgKCF0ZXN0X2JpdChBVEgxMUtfRkxBR19DUkFTSF9GTFVTSCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk3LVx0XHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz00NDY9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDUwOlx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTEtXHRcdGF0aDExa19haGJfZnJlZV9leHRfaXJxX2dycChhYiwgXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NDU0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIGludCBtYXhfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYwLVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NjE6XHRcdGlycV9pZHggPSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgJiM0MzsgaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYyLVx0XHRmcmVlX2lycShhYi1cdTAwM2VpcnFfbnVtW2lycV9pZHhdLCBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTUzMj1zdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTQwOlx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU0MS1cdFx0dTMyIG51bV9pcnEgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NTg6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFUSDExS19FWFRfSVJRX05VTV9NQVg7IGomIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU1OS1cdFx0XHRpZiAoYWItXHUwMDNlaHdfcGFyYW1zLnJpbmdfbWFzay1cdTAwM2V0eFtpXSBcdTAwMjYgQklUKGopKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz02MzM9c3RhdGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjQ4Olx0XHRpcnFfaWR4ID0gQVRIMTFLX0lSUV9DRTBfT0ZGU0VUICYjNDM7IGk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTcxOD1zdGF0aWMgaW50IGF0aDExa19haGJfaGlmX3N1c3BlbmQoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzI4Olx0d2FrZV9pcnEgPSBhYi1cdTAwM2VpcnFfbnVtW0FUSDExS19QQ0lfSVJRX0NFMF9PRkZTRVQgJiM0MzsgQVRIMTFLX1BDSV9DRV9XQUtFX0lSUV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNi1cdHZhbHVlID0gdTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cdTAwM2VzbXAycF9pbmZvLnNlcV9ubyYjNDM7JiM0MzssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjczNzpcdFx0XHRcdEFUSDExS19BSEJfU01QMlBfU01FTV9TRVFfTk8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Mzg6XHR2YWx1ZSB8PSB1MzJfZW5jb2RlX2JpdHMoQVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VOVEVSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Mzk6XHRcdFx0XHQgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX01TRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQxLVx0cmV0ID0gcWNvbV9zbWVtX3N0YXRlX3VwZGF0ZV9iaXRzKGFiX2FoYi1cdTAwM2VzbXAycF9pbmZvLnNtZW1fc3RhdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc0MjpcdFx0XHRcdFx0ICBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTSywgdmFsdWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc0ODpcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQUhCLCBcJiMzNDtkZXZpY2Ugc3VzcGVuZGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQ5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NzUzPXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfcmVzdW1lKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MzpcdHdha2VfaXJxID0gYWItXHUwMDNlaXJxX251bVtBVEgxMUtfUENJX0lSUV9DRTBfT0ZGU0VUICYjNDM7IEFUSDExS19QQ0lfQ0VfV0FLRV9JUlFdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzMtXHR2YWx1ZSA9IHUzMl9lbmNvZGVfYml0cyhhYl9haGItXHUwMDNlc21wMnBfaW5mby5zZXFfbm8mIzQzOyYjNDM7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzQ6XHRcdFx0XHRBVEgxMUtfQUhCX1NNUDJQX1NNRU1fU0VRX05PKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc1Olx0dmFsdWUgfD0gdTMyX2VuY29kZV9iaXRzKEFUSDExS19BSEJfUE9XRVJfU0FWRV9FWElULFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzY6XHRcdFx0XHQgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX01TRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc4LVx0cmV0ID0gcWNvbV9zbWVtX3N0YXRlX3VwZGF0ZV9iaXRzKGFiX2FoYi1cdTAwM2VzbXAycF9pbmZvLnNtZW1fc3RhdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcdFx0XHRcdFx0ICBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTSywgdmFsdWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODAtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MTpcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQUhCLCBcJiMzNDtkZXZpY2UgcmVzdW1lZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTg0OD1zdGF0aWMgaW50IGF0aDExa19haGJfc2V0dXBfbXNpX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4OTM6XHRzZXRfYml0KEFUSDExS19GTEFHX01VTFRJX01TSV9WRUNUT1JTLCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04OTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMTM5PXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE0OS1cdHN3aXRjaCAoaHdfcmV2KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExNTA6XHRjYXNlIEFUSDExS19IV19JUFE4MDc0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUxOlx0Y2FzZSBBVEgxMUtfSFdfSVBRNjAxOF9IVzEwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUyOlx0Y2FzZSBBVEgxMUtfSFdfSVBRNTAxOF9IVzEwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTUzLVx0XHRoaWZfb3BzID0gXHUwMDI2YXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTU1LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE1NjpcdGNhc2UgQVRIMTFLX0hXX1dDTjY3NTBfSFcxMDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE1Ny1cdFx0aGlmX29wcyA9IFx1MDAyNmF0aDExa19haGJfaGlmX29wc193Y242NzUwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE3MS1cdGFiID0gYXRoMTFrX2NvcmVfYWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZihzdHJ1Y3QgYXRoMTFrX2FoYiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExNzI6XHRcdFx0ICAgICAgIEFUSDExS19CVVNfQUhCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE3My1cdGlmICghYWIpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExODAtXHRhYi1cdTAwM2Vod19yZXYgPSBod19yZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExODE6XHRhYi1cdTAwM2Vmd19tb2RlID0gQVRIMTFLX0ZJUk1XQVJFX01PREVfTk9STUFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTgyLVx0cGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgYWIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTI2ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3JlbW92ZV9wcmVwYXJlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjY4Olx0aWYgKHRlc3RfYml0KEFUSDExS19GTEFHX1JFQ09WRVJZLCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNjktXHRcdGxlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2YWItXHUwMDNlZHJpdmVyX3JlY292ZXJ5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjcwOlx0XHRcdFx0XHRcdCAgIEFUSDExS19BSEJfUkVDT1ZFUllfVElNRU9VVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNzEtXHRcdGlmICghbGVmdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEyNzU6XHRzZXRfYml0KEFUSDExS19GTEFHX1VOUkVHSVNURVJJTkcsIFx1MDAyNmFiLVx1MDAzZWRldl9mbGFncyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNzYtXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNmFiLVx1MDAzZXJlc3RhcnRfd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMjk1PXN0YXRpYyB2b2lkIGF0aDExa19haGJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjk5Olx0aWYgKHRlc3RfYml0KEFUSDExS19GTEFHX1FNSV9GQUlMLCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMDAtXHRcdGF0aDExa19haGJfcG93ZXJfZG93bihhYiwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTMxND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMzIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMzI0Olx0aWYgKCEodGVzdF9iaXQoQVRIMTFLX0ZMQUdfUkVHSVNURVJFRCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMjUtXHRcdGdvdG8gZnJlZV9yZXNvdXJjZXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC01LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaDo2OiNpZm5kZWYgQVRIMTFLX0FIQl9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjc6I2RlZmluZSBBVEgxMUtfQUhCX0hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmgtOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaDoxMTojZGVmaW5lIEFUSDExS19BSEJfUkVDT1ZFUllfVElNRU9VVCAoMyAqIEhaKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTM6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fTVNHXHRcdEdFTk1BU0soMTUsIDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjE0OiNkZWZpbmUgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX1NFUV9OT1x0XHRHRU5NQVNLKDMxLCAxNilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTU6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTS1x0MHhGRkZGRkZGRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg9MTc9ZW51bSBhdGgxMWtfYWhiX3NtcDJwX21zZ19pZCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjE4Olx0QVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VOVEVSID0gMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTk6XHRBVEgxMUtfQUhCX1BPV0VSX1NBVkVfRVhJVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmgtMjAtfTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9MzIxPXN0YXRpYyBpbnQgYXRoMTFrX2NlX3J4X3Bvc3RfcGlwZShzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTM1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzozNTE6XHRcdEFUSDExS19TS0JfUlhDQihza2IpLVx1MDAzZXBhZGRyID0gcGFkZHI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtMzUyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTUtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzozNTY6XHRcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRSwgXCYjMzQ7ZmFpbGVkIHRvIGVucXVldWUgcnggYnVmOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTctXHRcdFx0XHQgICByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz00MTc9c3RhdGljIHZvaWQgYXRoMTFrX2NlX3JlY3ZfcHJvY2Vzc19jYihzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQyNy1cdFx0bWF4X25ieXRlcyA9IHNrYi1cdTAwM2VsZW4gJiM0Mzsgc2tiX3RhaWxyb29tKHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NDI4Olx0XHRkbWFfdW5tYXBfc2luZ2xlKGFiLVx1MDAzZWRldiwgQVRIMTFLX1NLQl9SWENCKHNrYiktXHUwMDNlcGFkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDI5LVx0XHRcdFx0IG1heF9uYnl0ZXMsIERNQV9GUk9NX0RFVklDRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQ0Mi1cdHdoaWxlICgoc2tiID0gX19za2JfZGVxdWV1ZShcdTAwMjZsaXN0KSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo0NDM6XHRcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFwmIzM0O3J4IGNlIHBpcGUgJWQgbGVuICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQ0NC1cdFx0XHQgICBwaXBlLVx1MDAzZXBpcGVfbnVtLCBza2ItXHUwMDNlbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDUyLVx0XHRtb2RfdGltZXIoXHUwMDI2YWItXHUwMDNlcnhfcmVwbGVuaXNoX3JldHJ5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jOjQ1MzpcdFx0XHQgIGppZmZpZXMgJiM0MzsgQVRIMTFLX0NFX1JYX1BPU1RfUkVUUllfSklGRklFUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDU0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz00OTg9c3RhdGljIHZvaWQgYXRoMTFrX2NlX3R4X3Byb2Nlc3NfY2Ioc3RydWN0IGF0aDExa19jZV9waXBlICpwaXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy01MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NTA5Olx0XHRkbWFfdW5tYXBfc2luZ2xlKGFiLVx1MDAzZWRldiwgQVRIMTFLX1NLQl9DQihza2IpLVx1MDAzZXBhZGRyLCBza2ItXHUwMDNlbGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTUxMC1cdFx0XHRcdCBETUFfVE9fREVWSUNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTIwLVx0d2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKFx1MDAyNmxpc3QpKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jOjUyMTpcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRSwgXCYjMzQ7dHggY2UgcGlwZSAlZCBsZW4gJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTIyLVx0XHRcdCAgIHBpcGUtXHUwMDNlcGlwZV9udW0sIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz01NTM9c3RhdGljIGludCBhdGgxMWtfY2VfaW5pdF9yaW5nKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTYwNC1cdFx0YXRoMTFrX2RwX3NoYWRvd19pbml0X3RpbWVyKGFiLCBcdTAwMjZhYi1cdTAwM2VjZS5ocF90aW1lcltjZV9pZF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NjA1Olx0XHRcdFx0XHQgICAgQVRIMTFLX1NIQURPV19DVFJMX1RJTUVSX0lOVEVSVkFMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTYwNi1cdFx0XHRcdFx0ICAgIGNlX3JpbmctXHUwMDNlaGFsX3JpbmdfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz03MDk9aW50IGF0aDExa19jZV9zZW5kKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBza19idWZmICpza2IsIHU4IHBpcGVfaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTczOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo3Mzk6XHRcdGlmIChudW1fdXNlZCBcdTAwM2UgQVRIMTFLX0NFX1VTQUdFX1RIUkVTSE9MRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy03NDAtXHRcdFx0YXRoMTFrX2NlX3BvbGxfc2VuZF9jb21wbGV0ZWQoYWIsIHBpcGUtXHUwMDNlcGlwZV9udW0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy03NDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NzQzOlx0aWYgKHRlc3RfYml0KEFUSDExS19GTEFHX0NSQVNIX0ZMVVNILCBcdTAwMjZhYi1cdTAwM2VkZXZfZmxhZ3MpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc0NC1cdFx0cmV0dXJuIC1FU0hVVERPV047XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo3NzM6XHRhdGgxMWtfaGFsX2NlX3NyY19zZXRfZGVzYyhkZXNjLCBBVEgxMUtfU0tCX0NCKHNrYiktXHUwMDNlcGFkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNzc0LVx0XHRcdFx0ICAgc2tiLVx1MDAzZWxlbiwgdHJhbnNmZXJfaWQsIGJ5dGVfc3dhcF9kYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9Nzk5PXN0YXRpYyB2b2lkIGF0aDExa19jZV9yeF9waXBlX2NsZWFudXAoc3RydWN0IGF0aDExa19jZV9waXBlICpwaXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTQtXHRcdHJpbmctXHUwMDNlc2tiW2ldID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo4MTU6XHRcdGRtYV91bm1hcF9zaW5nbGUoYWItXHUwMDNlZGV2LCBBVEgxMUtfU0tCX1JYQ0Ioc2tiKS1cdTAwM2VwYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTYtXHRcdFx0XHQgc2tiLVx1MDAzZWxlbiAmIzQzOyBza2JfdGFpbHJvb20oc2tiKSwgRE1BX0ZST01fREVWSUNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9ODgzPXZvaWQgYXRoMTFrX2NlX3J4X3Bvc3RfYnVmKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTg5OC1cdFx0XHRtb2RfdGltZXIoXHUwMDI2YWItXHUwMDNlcnhfcmVwbGVuaXNoX3JldHJ5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jOjg5OTpcdFx0XHRcdCAgamlmZmllcyAmIzQzOyBBVEgxMUtfQ0VfUlhfUE9TVF9SRVRSWV9KSUZGSUVTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy05MDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NzojaWZuZGVmIEFUSDExS19DRV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6ODojZGVmaW5lIEFUSDExS19DRV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtMjUtLyogVGhyZXNob2xkIHRvIHBvbGwgZm9yIHR4IGNvbXBsZXRpb24gaW4gY2FzZSBvZiBJbnRlcnJ1cHQgZGlzYWJsZWQgQ0UmIzM5O3MgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaDoyNjojZGVmaW5lIEFUSDExS19DRV9VU0FHRV9USFJFU0hPTEQgMzJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaC0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaD0yOD12b2lkIGF0aDExa19jZV9ieXRlX3N3YXAodm9pZCAqbWVtLCB1MzIgbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NjI6I2RlZmluZSBBVEgxMUtfQ0VfUlhfUE9TVF9SRVRSWV9KSUZGSUVTIDUwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtNjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz0xOT1zdGF0aWMgaW50IGF0aDExa19jZnJfY2FsY3VsYXRlX3RvbmVzX2Zyb21fZG1hX2hkcihzdHJ1Y3QgYXRoMTFrX2Nmcl9kbWFfaGRyICpoZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNC1cdHN3aXRjaCAocHJlYW1ibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjU6XHRjYXNlIEFUSDExS19DRlJfUFJFQU1CTEVfVFlQRV9MRUdBQ1k6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2LVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mjc6XHRjYXNlIEFUSDExS19DRlJfUFJFQU1CTEVfVFlQRV9WSFQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4LVx0XHRzd2l0Y2ggKGJ3KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zOS1cdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MDpcdGNhc2UgQVRIMTFLX0NGUl9QUkVBTUJMRV9UWVBFX0hUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00MS1cdFx0c3dpdGNoIChidykge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTE0PWF0aDExa19jZnJfY29ycmVsYXRlX2FuZF9yZWxheShzdHJ1Y3QgYXRoMTFrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MTIyOlx0aWYgKGV2ZW50X3R5cGUgPT0gQVRIMTFLX0NPUlJFTEFURV9UWF9FVkVOVCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xMjMtXHRcdGlmIChsdXQtXHUwMDNldHhfcmVjdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyNi1cdFx0bHV0LVx1MDAzZXR4X3JlY3YgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxMjc6XHR9IGVsc2UgaWYgKGV2ZW50X3R5cGUgPT0gQVRIMTFLX0NPUlJFTEFURV9EQlJfRVZFTlQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTI4LVx0XHRjZnItXHUwMDNlZGJyX2V2dF9jbnQmIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTQwLVx0XHRcdFx0ZGlmZiA9IGx1dC1cdTAwM2VkYnJfdHN0YW1wIC0gbHV0LVx1MDAzZXR4cnhfdHN0YW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNDE6XHRcdFx0XHRhdGgxMWtfZGJnKGFyLVx1MDAzZWFiLCBBVEgxMUtfREJHX0NGUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTQyLVx0XHRcdFx0XHQgICBcJiMzNDt0eHJ4IGV2ZW50IC1cdTAwM2UgZGJyIGV2ZW50IGRlbGF5ID0gJXUgbXNcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDUtXHRcdFx0XHRkaWZmID0gbHV0LVx1MDAzZXR4cnhfdHN0YW1wIC0gbHV0LVx1MDAzZWRicl90c3RhbXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE0NjpcdFx0XHRcdGF0aDExa19kYmcoYXItXHUwMDNlYWIsIEFUSDExS19EQkdfQ0ZSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDctXHRcdFx0XHRcdCAgIFwmIzM0O2RiciBldmVudCAtXHUwMDNlIHR4cnggZXZlbnQgZGVsYXkgPSAldSBtc1wmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE1My1cdFx0XHRjZnItXHUwMDNlcmVsZWFzZV9jbnQmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNTQ6XHRcdFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfUkVMRUFTRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTU1LVx0XHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNjE6XHRcdFx0YXRoMTFrX2RiZyhhci1cdTAwM2VhYiwgQVRIMTFLX0RCR19DRlIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2Mi1cdFx0XHRcdCAgIFwmIzM0O1JlY2VpdmVkIGRiciBldmVudCB0d2ljZSBmb3IgdGhlIHNhbWUgbHV0IGVudHJ5XCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2Ni1cdFx0XHRjZnItXHUwMDNlY2ZyX2RtYV9hYm9ydHMmIzQzOyYjNDM7O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNjc6XHRcdFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTY4LVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2OS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE3MDpcdFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTcxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTc2PXN0YXRpYyBpbnQgYXRoMTFrX2Nmcl9wcm9jZXNzX2RhdGEoc3RydWN0IGF0aDExayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNzgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNzk6XHR1MzIgZW5kX21hZ2ljID0gQVRIMTFLX0NGUl9FTkRfTUFHSUM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE4MC1cdHN0cnVjdCBhdGgxMWtfY3NpX2Nmcl9oZWFkZXIgKmhlYWRlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTIxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjE5Olx0YXRoMTFrX2RiZ19kdW1wKGFiLCBBVEgxMUtfREJHX0NGUl9EVU1QLCBcJiMzNDtkYXRhX2Zyb21fYnVmX3JlbDpcJiMzNDssIFwmIzM0O1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjIwLVx0XHRcdGRhdGEsIGxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yMzUtXHRzdGF0dXMgPSBhdGgxMWtfY2ZyX2NvcnJlbGF0ZV9hbmRfcmVsYXkoYXIsIGx1dCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjM2Olx0XHRcdFx0XHRcdEFUSDExS19DT1JSRUxBVEVfREJSX0VWRU5UKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjM3Olx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjIzODpcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTIzOS1cdFx0XHQgICBcJiMzNDtyZWxlYXNpbmcgQ0ZSIGRhdGEgdG8gdXNlciBzcGFjZVwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNDQtXHRcdGF0aDExa19jZnJfcmVsZWFzZV9sdXRfZW50cnkobHV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjQ1Olx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNDY6XHRcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNDctXHRcdFx0ICAgXCYjMzQ7dHggZXZlbnQgaXMgbm90IHlldCByZWNlaXZlZCBob2xkaW5nIHRoZSBidWZcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MjU1PXN0YXRpYyB2b2lkIGF0aDExa19jZnJfZmlsbF9oZHJfaW5mbyhzdHJ1Y3QgYXRoMTFrICphcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2MS1cdGNmciA9IFx1MDAyNmFyLVx1MDAzZWNmcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjYyOlx0aGVhZGVyLVx1MDAzZWNmcl9tZXRhZGF0YV92ZXJzaW9uID0gQVRIMTFLX0NGUl9NRVRBX1ZFUlNJT05fNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjYzOlx0aGVhZGVyLVx1MDAzZWNmcl9kYXRhX3ZlcnNpb24gPSBBVEgxMUtfQ0ZSX0RBVEFfVkVSU0lPTl8xO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNjQtXHRoZWFkZXItXHUwMDNlY2ZyX21ldGFkYXRhX2xlbiA9IHNpemVvZihzdHJ1Y3QgY2ZyX21ldGFkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4NS1cdGhlYWRlci1cdTAwM2VtZXRhX2RhdGEuY2FwdHVyZV9tb2RlID0gcGFyYW1zLVx1MDAzZWJhbmR3aWR0aCA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjI4NjpcdFx0QVRIMTFLX0NGUl9DQVBUVVJFX0RVUF9MRUdBQ1lfQUNLIDogQVRIMTFLX0NGUl9DQVBUVVJFX0xFR0FDWV9BQ0s7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4Ny1cdGhlYWRlci1cdTAwM2VtZXRhX2RhdGEuY2FwdHVyZV90eXBlID0gcGFyYW1zLVx1MDAzZWNhcHR1cmVfbWV0aG9kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MzAwPWludCBhdGgxMWtfcHJvY2Vzc19jZnJfY2FwdHVyZV9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMzAzLVx0c3RydWN0IGF0aDExa19sb29rX3VwX3RhYmxlICpsdXQgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozMDQ6XHR1MzIgZW5kX21hZ2ljID0gQVRIMTFLX0NGUl9FTkRfTUFHSUM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTMwNS1cdHN0cnVjdCBhdGgxMWtfY3NpX2Nmcl9oZWFkZXIgKmhlYWRlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM3OC1cdGhlYWRlciA9IFx1MDAyNmx1dC1cdTAwM2VoZWFkZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjM3OTpcdGhlYWRlci1cdTAwM2VzdGFydF9tYWdpY19udW0gPSBBVEgxMUtfQ0ZSX1NUQVJUX01BR0lDO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zODAtXHRoZWFkZXItXHUwMDNldmVuZG9yaWQgPSBWRU5ET1JfUUNBO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMzg1LVx0c3RhdHVzID0gYXRoMTFrX2Nmcl9jb3JyZWxhdGVfYW5kX3JlbGF5KGFyLCBsdXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjM4NjpcdFx0XHRcdFx0XHRBVEgxMUtfQ09SUkVMQVRFX1RYX0VWRU5UKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mzg3Olx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjM4ODpcdFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM4OS1cdFx0XHQgICBcJiMzNDtSZWxlYXNpbmcgQ0ZSIGRhdGEgdG8gdXNlciBzcGFjZVwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zOTgtXHRcdFx0XHRcdCAgICAgV01JX0RJUkVDVF9CVUZfQ0ZSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mzk5Olx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MDA6XHRcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00MDEtXHRcdFx0ICAgXCYjMzQ7ZGJyIGV2ZW50IGlzIG5vdCB5ZXQgcmVjZWl2ZWQgaG9sZGluZyBidWZcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDEyPWJvb2wgYXRoMTFrX2Nmcl9wZWVyX2lzX2luX2Nmcl91bmFzc29jX3Bvb2woc3RydWN0IGF0aDExayAqYXIsIGNvbnN0IHU4ICpwZWVyX21hYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQyMS1cdHNwaW5fbG9ja19iaChcdTAwMjZjZnItXHUwMDNlbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQyMjpcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19NQVhfQ0ZSX0VOQUJMRURfQ0xJRU5UUzsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDIzLVx0XHRlbnRyeSA9IFx1MDAyNmNmci1cdTAwM2V1bmFzc29jX3Bvb2xbaV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz00Mzg9dm9pZCBhdGgxMWtfY2ZyX3VwZGF0ZV91bmFzc29jX3Bvb2xfZW50cnkoc3RydWN0IGF0aDExayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00NDUtXHRzcGluX2xvY2tfYmgoXHUwMDI2Y2ZyLVx1MDAzZWxvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0NDY6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfTUFYX0NGUl9FTkFCTEVEX0NMSUVOVFM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ0Ny1cdFx0ZW50cnkgPSBcdTAwMjZjZnItXHUwMDNldW5hc3NvY19wb29sW2ldO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDc3PWF0aDExa19jZnJfYndfdG9fZndfY2ZyX2J3KGVudW0gYXRoMTFrX2Nmcl9jYXB0dXJlX2J3IGJ3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDc5LVx0c3dpdGNoIChidykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0ODA6XHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9CV18yMDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDgxLVx0XHRyZXR1cm4gV01JX1BFRVJfQ0ZSX0NBUFRVUkVfQldfMjA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ4MjpcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX0JXXzQwOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00ODMtXHRcdHJldHVybiBXTUlfUEVFUl9DRlJfQ0FQVFVSRV9CV180MDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDg0Olx0Y2FzZSBBVEgxMUtfQ0ZSX0NBUFRVUkVfQldfODA6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ4NS1cdFx0cmV0dXJuIFdNSV9QRUVSX0NGUl9DQVBUVVJFX0JXXzgwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDkyPWF0aDExa19jZnJfbWV0aG9kX3RvX2Z3X2Nmcl9tZXRob2QoZW51bSBhdGgxMWtfY2ZyX2NhcHR1cmVfbWV0aG9kIG1ldGhvZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ5NC1cdHN3aXRjaCAobWV0aG9kKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ5NTpcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00OTYtXHRcdHJldHVybiBXTUlfQ0ZSX0NBUFRVUkVfTUVUSE9EX05VTExfRlJBTUU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ5NzpcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FX1dJVEhfUEhBU0U6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ5OC1cdFx0cmV0dXJuIFdNSV9DRlJfQ0FQVFVSRV9NRVRIT0RfTlVMTF9GUkFNRV9XSVRIX1BIQVNFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0OTk6XHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9NRVRIT0RfUFJPQkVfUkVTUDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNTAwLVx0XHRyZXR1cm4gV01JX0NGUl9DQVBUVVJFX01FVEhPRF9QUk9CRV9SRVNQO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NTA2PWludCBhdGgxMWtfY2ZyX3NlbmRfcGVlcl9jZnJfY2FwdHVyZV9jbWQoc3RydWN0IGF0aDExayAqYXIsXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODE3MAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgYXRoMTFrIFBDSSBEZXZpY2UgU3VwcG9ydCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGF0aDExa2AgYW5kIGltbWVkaWF0ZWx5IEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaXRzIGhhcmR3YXJlIHN1cHBvcnQuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBkaWZmZXJlbnQgYnVzIGludGVyZmFjZXMuIFJpZ2h0LCByaWdodCwgaXQmIzM5O3MgcHJldHR5IGNsZWFyOiBgYXRoMTFrYCBpcyBidWlsdCBmb3IgZWl0aGVyIHRoZSBBSEIgYnVzIChgQVRIMTFLX0FIQmApIG9yIFBDSSAoYEFUSDExS19QQ0lgKS4gTm93LCB0aGUgcXVlc3Rpb24gaXMsICp3aGljaCogUENJIGRldmljZXMgYXJlIGFjdHVhbGx5IHJlY29nbml6ZWQgYW5kIGhhbmRsZWQgYnkgdGhpcyBkcml2ZXI/IFRoYXQmIzM5O3Mgd2hhdCBJIHJlYWxseSBuZWVkIHRvIGRyaWxsIGRvd24gb24uIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgYGF0aDExa19wY2kuY2Agc291cmNlIGNvZGUsIG9yIHBvdGVudGlhbGx5IHRoZSByZWxldmFudCBQQ0kgaW5mcmFzdHJ1Y3R1cmUgY29kZSAoYHBjaS5jYCkgdG8gdW5kZXJzdGFuZCB0aGUgc3BlY2lmaWMgUENJIGRldmljZSBJRHMgdGhhdCBhcmUgd2l0aGluIHRoZSBwdXJ2aWV3IG9mIHRoZSBkcml2ZXIuIExldCYjMzk7cyBzZWUgd2hhdCBkZXZpY2UgSURzIGl0JiMzOTtzIGFjdHVhbGx5IG1hdGNoaW5nLiBUaGF0IHNob3VsZCB0ZWxsIHRoZSB3aG9sZSBzdG9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZGV2aWNlX2lkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzozNjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRoMTFrX3BjaV9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0zNy1cdHsgUENJX1ZERVZJQ0UoUUNPTSwgUUNBNjM5MF9ERVZJQ0VfSUQpIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDk9c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NTA6XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NTEte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NzE4CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyBEcml2ZXIgLSBQQ0kgSUQgVGFibGUqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBpbnRvIHRoZSBBdGhlcm9zIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGBhdGgxMWtgIG1vZHVsZSwgYW5kIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIFBDSSBpbnRlcmZhY2UuIFRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQgaXMgdGhlIGRldmljZSBJRCB0YWJsZS4gSXQmIzM5O3MgdXN1YWxseSB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRyaXZlciBhc3NvY2lhdGVzIGl0c2VsZiB3aXRoIHNwZWNpZmljIGhhcmR3YXJlLiBTbywgSSYjMzk7bSBnb2luZyB0byBuYXZpZ2F0ZSBvdmVyIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIGBhdGgxMWtfcGNpX2lkX3RhYmxlYC4gVGhhdCB0YWJsZSBzaG91bGQgaG9sZCB0aGUgUENJIGRldmljZSBJRHMsIHZlbmRvciBJRHMsIGFuZCBob3BlZnVsbHkgc29tZSBhc3NvY2lhdGVkIGRyaXZlci1zcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMgb3IgaW5pdGlhbGl6YXRpb24gaW5mb3JtYXRpb24gdGhhdCB0aGUgZHJpdmVyIG5lZWRzIHRvIHdvcmsuIFVuZGVyc3RhbmRpbmcgdGhpcyB0YWJsZSB3aWxsIHRlbGwgbWUgcHJlY2lzZWx5IHdoaWNoIGRldmljZXMgdGhpcyBzcGVjaWZpYyBBdGhlcm9zIGRyaXZlciBzdXBwb3J0cyB0aHJvdWdoIHRoZSBQQ0kgaW50ZXJmYWNlLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQmIzM5O3MgaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAzNTpcdFxuICAzNjpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBhdGgxMWtfcGNpX2lkX3RhYmxlW10gPSB7XG4gIDM3Olx0XHR7IFBDSV9WREVWSUNFKFFDT00sIFFDQTYzOTBfREVWSUNFX0lEKSB9LFxuICAzODpcdFx0eyBQQ0lfVkRFVklDRShRQ09NLCBXQ042ODU1X0RFVklDRV9JRCkgfSxcbiAgMzk6XHRcdHsgUENJX1ZERVZJQ0UoUUNPTSwgUUNOOTA3NF9ERVZJQ0VfSUQpIH0sXG4gIDQwOlx0XHR7fVxuICA0MTpcdH07XG4gIDQyOlx0XG4gIDQzOlx0TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGF0aDExa19wY2lfaWRfdGFibGUpO1xuICA0NDpcdFxuICA0NTpcdHN0YXRpYyBpbnQgYXRoMTFrX3BjaV9idXNfd2FrZV91cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuICA0NjpcdHtcbiAgNDc6XHRcdHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2kgPSBhdGgxMWtfcGNpX3ByaXYoYWIpO1xuICA0ODpcdFxuICA0OTpcdFx0cmV0dXJuIG1oaV9kZXZpY2VfZ2V0X3N5bmMoYWJfcGNpLVx1MDAzZW1oaV9jdHJsLVx1MDAzZW1oaV9kZXYpO1xuICA1MDpcdH1cbiAgNTE6XHRcbiAgNTI6XHRzdGF0aWMgdm9pZCBhdGgxMWtfcGNpX2J1c19yZWxlYXNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4gIDUzOlx0e1xuICA1NDpcdFx0c3RydWN0IGF0aDExa19wY2kgKmFiX3BjaSA9IGF0aDExa19wY2lfcHJpdihhYik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkzNzMKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBhdGgxMWsmIzM5O3MgQnVzIFN1cHBvcnQqKgoKT2theSwgc28gYXRoMTFrLCB0aGUgUXVhbGNvbW0gV2ktRmkgZHJpdmVyLCBoYXMgYSBwcmV0dHkgc29saWQgaGFuZGxlIG9uIHRoZSB1c3VhbCBzdXNwZWN0cyDigJMgdGhlIFBDSSBhbmQgQUhCIGJhc2VkIFF1YWxjb21tIGRldmljZXM6IFFDQTYzOTAsIFdDTjY4NTUsIFFDTjkwNzQsIElQUTgwNzQsIElQUTYwMTgsIFdDTjY3NTAsIGFuZCBJUFE1MDE4LiBCdXQgSSYjMzk7bSBjdXJpb3VzLCBkb2VzIHRoZSBkcml2ZXIgaGF2ZSBhbnkgZmxleGliaWxpdHkgYmV5b25kIHRoaXM/IERvZXMgaXQgZXh0ZW5kIHRvIGhhbmRsaW5nIHZpcnR1YWwgb3IgZW11bGF0ZWQgYnVzZXMsIG9yIGV2ZW4gVVNCIGdhZGdldHM/IE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0IHByaW1hcmlseSBkZWFscyB3aXRoIHRoZXNlIGhhcmR3YXJlIHBsYXRmb3JtcywgYnV0IEkgY2FuJiMzOTt0IGJlIHN1cmUgd2l0aG91dCBkaWdnaW5nIGRlZXBlci4KCkkgbmVlZCB0byBjb25maXJtIHRoZSBleHRlbnQgb2YgaXRzIHN1cHBvcnRlZCBidXMgdHlwZXMuIFRvIGNsYXJpZnkgdGhpcywgSSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgaXQmIzM5O3Mgc29sZWx5IHRpZWQgdG8gcGh5c2ljYWwgUENJIGFuZCBBSEIgaW50ZXJmYWNlcywgb3IgaWYgaXQgb2ZmZXJzIHdpZGVyIGNvbXBhdGliaWxpdHkuIFRoZSBtb3N0IGRpcmVjdCBhcHByb2FjaCBpcyB0byBleGFtaW5lIHRoZSBzb3VyY2UgY29kZS4gTGV0JiMzOTtzIGRlbHZlIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrYCBkaXJlY3RvcnksIGFuZCBzY3J1dGluaXplIGFsbCB0aGUgZmlsZXMgdGhlcmVpbi4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYmVzdCBpbnNpZ2h0IGludG8gaXRzIGJ1cyBzdXBwb3J0IGNhcGFiaWxpdGllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2FoYi5jJiMzNDssCiAgICAmIzM0O2FoYi5oJiMzNDssCiAgICAmIzM0O2NlLmMmIzM0OywKICAgICYjMzQ7Y2UuaCYjMzQ7LAogICAgJiMzNDtjZnIuYyYjMzQ7LAogICAgJiMzNDtjZnIuaCYjMzQ7LAogICAgJiMzNDtjb3JlLmMmIzM0OywKICAgICYjMzQ7Y29yZS5oJiMzNDssCiAgICAmIzM0O2NvcmVkdW1wLmMmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuaCYjMzQ7LAogICAgJiMzNDtkYnJpbmcuYyYjMzQ7LAogICAgJiMzNDtkYnJpbmcuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX2h0dF9zdGF0cy5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnNfaHR0X3N0YXRzLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmc19zdGEuYyYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzX3N0YS5oJiMzNDssCiAgICAmIzM0O2RwLmMmIzM0OywKICAgICYjMzQ7ZHAuaCYjMzQ7LAogICAgJiMzNDtkcF9yeC5jJiMzNDssCiAgICAmIzM0O2RwX3J4LmgmIzM0OywKICAgICYjMzQ7ZHBfdHguYyYjMzQ7LAogICAgJiMzNDtkcF90eC5oJiMzNDssCiAgICAmIzM0O2Z3LmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtoYWwuYyYjMzQ7LAogICAgJiMzNDtoYWwuaCYjMzQ7LAogICAgJiMzNDtoYWxfZGVzYy5oJiMzNDssCiAgICAmIzM0O2hhbF9yeC5jJiMzNDssCiAgICAmIzM0O2hhbF9yeC5oJiMzNDssCiAgICAmIzM0O2hhbF90eC5jJiMzNDssCiAgICAmIzM0O2hhbF90eC5oJiMzNDssCiAgICAmIzM0O2hpZi5oJiMzNDssCiAgICAmIzM0O2h0Yy5jJiMzNDssCiAgICAmIzM0O2h0Yy5oJiMzNDssCiAgICAmIzM0O2h3LmMmIzM0OywKICAgICYjMzQ7aHcuaCYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttaGkuYyYjMzQ7LAogICAgJiMzNDttaGkuaCYjMzQ7LAogICAgJiMzNDtwMnAuYyYjMzQ7LAogICAgJiMzNDtwMnAuaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtwY2kuaCYjMzQ7LAogICAgJiMzNDtwY2ljLmMmIzM0OywKICAgICYjMzQ7cGNpYy5oJiMzNDssCiAgICAmIzM0O3BlZXIuYyYjMzQ7LAogICAgJiMzNDtwZWVyLmgmIzM0OywKICAgICYjMzQ7cW1pLmMmIzM0OywKICAgICYjMzQ7cW1pLmgmIzM0OywKICAgICYjMzQ7cmVnLmMmIzM0OywKICAgICYjMzQ7cmVnLmgmIzM0OywKICAgICYjMzQ7cnhfZGVzYy5oJiMzNDssCiAgICAmIzM0O3NwZWN0cmFsLmMmIzM0OywKICAgICYjMzQ7c3BlY3RyYWwuaCYjMzQ7LAogICAgJiMzNDt0ZXN0bW9kZS5jJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmgmIzM0OywKICAgICYjMzQ7dGhlcm1hbC5jJiMzNDssCiAgICAmIzM0O3RoZXJtYWwuaCYjMzQ7LAogICAgJiMzNDt0cmFjZS5jJiMzNDssCiAgICAmIzM0O3RyYWNlLmgmIzM0OywKICAgICYjMzQ7d21pLmMmIzM0OywKICAgICYjMzQ7d21pLmgmIzM0OywKICAgICYjMzQ7d293LmMmIzM0OywKICAgICYjMzQ7d293LmgmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAwNzo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI3NAoJCQkJCQkJb3V0cHV0OiAxMjkKCQkJCQkJCXRob3VnaHRzOiA0NzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgYXRoMTFrIERyaXZlciBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGZ1enppbmcgdGhlIGBhdGgxMWtgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24oKWAsIGlzbiYjMzk7dCBnb2luZyB0byBiZSBmcnVpdGZ1bCBpbiBzdGFuZGFyZCBmdXp6aW5nIHNldHVwcy4gVGhlIGRyaXZlciwgYXMgSSB1bmRlcnN0YW5kIGl0LCBwcmltYXJpbHkgZGVhbHMgd2l0aCBRdWFsY29tbSA4MDIuMTFheCBoYXJkd2FyZSDigJMgdGhpbmdzIGxpa2UgdGhlIFFDQTYzOTAsIFdDTjY4NTUsIGFuZCBvdGhlciBzaWxpY29uLWJhc2VkIGRldmljZXMgY29tbXVuaWNhdGluZyB2aWEgUENJZSBvciBBSEIuIFRoZSBrZXkgaGVyZSBpcyB0aGUgKnBoeXNpY2FsKiBuYXR1cmUgb2YgdGhlIGhhcmR3YXJlLgoKVGhlIGlzc3VlLCBhcyBJIHNlZSBpdCwgYm9pbHMgZG93biB0byBlbXVsYXRpb24uIFN0YW5kYXJkIFFFTVUgYW5kIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBlbnZpcm9ubWVudHMgc2ltcGx5IGRvbiYjMzk7dCBlbXVsYXRlIHRoZXNlIHNwZWNpZmljIFF1YWxjb21tIFdpRmkgY29tcG9uZW50cy4gVGhlIGxvZ2ljIEkmIzM5O20gZm9sbG93aW5nIGFsaWducyB3aXRoIHRoZSAmIzM0O3N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IG5lZ2F0aXZlIGNyaXRlcmlvbi4gVGhlIHBhdGNoIGhpdHMgdGhlIGBhdGgxMWtfZndfcmVxdWVzdF9maXJtd2FyZV9hcGlfbmAgZnVuY3Rpb24gaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY2Agd2hpY2ggaGFuZGxlcyByZXF1ZXN0cyB0byBsb2FkIGZpcm13YXJlIGludG8gdGhlIGhhcmR3YXJlLCBhbmQgdGhlIGhhcmR3YXJlIGl0c2VsZiBpc24mIzM5O3QgcHJlc2VudCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuCgpHaXZlbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIHZlbmRvci1zcGVjaWZpYywgcmVxdWlyaW5nIHBoeXNpY2FsIFF1YWxjb21tIFdpRmkgc2lsaWNvbiBjb25uZWN0ZWQgb3ZlciB0aGUgUENJZS9BSEIgYnVzLCBhbmQgdGhhdCBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudHMgZG9uJiMzOTt0IHByb3ZpZGUgdGhpcywgZnV6emluZyB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIFRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaXMgdW5lcXVpdm9jYWxseSBgZmFsc2VgLiBDb25zZXF1ZW50bHksIG15IGBGb2N1c1N5bWJvbHNgIGFuZCBgRW5hYmxlQ29uZmlnc2AgYXJlIGVtcHR5IGFzIEkgbmVlZCB0byBzcGVjaWZ5IHdoYXQgdGFyZ2V0cyB0aGUgZnV6emVyIGNhbiBhdHRlbXB0IHRvIHJlYWNoLiBJdOKAmXMgaW1wb3J0YW50IHRvIG1ha2UgdGhpcyBkZWNpc2lvbiBiYXNlZCBvbiB3aGF0IGlzIHByYWN0aWNhbGx5IGFjaGlldmFibGUgaW4gc3RhbmRhcmQgZnV6emluZyBzZXR1cHMuCgpFdmVyeXRoaW5nIHNlZW1zIHRvIGNoZWNrIG91dC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDA3OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMDc6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjQ3LjE5MTY2NTc1M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDgwNTI5OTIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NDcuMTkxNjcwMzEzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDY2MDQ3NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyNzMyNThjOWU1MDEyNjM5NWIwMjY0ODRjNzc2MDM0MjE1ZTQzNjhjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgU2VwIDEwIDA3OjU3OjQ2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY1xcbmluZGV4IGVmMWI0YzgxODQzYTMuLjg4ZWMyZmZkOWYwMGUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jXFxuQEAgLTE2LDEwICsxNiwxMiBAQCBzdGF0aWMgaW50IGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuIFxcdHN0cnVjdCBhdGgxMWtfZndfaWUgKmhkcjtcXG4gXFx0Y29uc3QgdTggKmRhdGE7XFxuIFxcdF9fbGUzMiAqdGltZXN0YW1wO1xcbitcXHRjaGFyIHBhdGhbMTAwXTtcXG4gXFxuLVxcdGFiLVxcdTAwM2Vmdy5mdyA9IGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3QoYWIsIG5hbWUpO1xcbi1cXHRpZiAoSVNfRVJSKGFiLVxcdTAwM2Vmdy5mdykpIHtcXG4tXFx0XFx0cmV0ID0gUFRSX0VSUihhYi1cXHUwMDNlZncuZncpO1xcbitcXHRhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aChhYiwgbmFtZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKTtcXG4rXFxuK1xcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFxcdTAwMjZhYi1cXHUwMDNlZncuZncsIHBhdGgsIGFiLVxcdTAwM2VkZXYpO1xcbitcXHRpZiAocmV0KSB7XFxuIFxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQk9PVCwgXFxcImZhaWxlZCB0byBsb2FkICVzOiAlZFxcXFxuXFxcIiwgbmFtZSwgcmV0KTtcXG4gXFx0XFx0YWItXFx1MDAzZWZ3LmZ3ID0gTlVMTDtcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NDcuOTM4ODkzNjgxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoyMjMzMzI4MzIyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24gaW4gZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBRdWFsY29tbSA4MDIuMTFheCAoYXRoMTFrKSB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIFF1YWxjb21tIFBDSWUvQUhCIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNzMyNThjOWU1MDEyNjM5NWIwMjY0ODRjNzc2MDM0MjE1ZTQzNjhjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBTZXAgMTAgMDc6NTc6NDYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbmluZGV4IGVmMWI0YzgxODQzYTMuLjg4ZWMyZmZkOWYwMGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuY1xuQEAgLTE2LDEwICsxNiwxMiBAQCBzdGF0aWMgaW50IGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXG4gXHRzdHJ1Y3QgYXRoMTFrX2Z3X2llICpoZHI7XG4gXHRjb25zdCB1OCAqZGF0YTtcbiBcdF9fbGUzMiAqdGltZXN0YW1wO1xuK1x0Y2hhciBwYXRoWzEwMF07XG4gXG4tXHRhYi1cdTAwM2Vmdy5mdyA9IGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3QoYWIsIG5hbWUpO1xuLVx0aWYgKElTX0VSUihhYi1cdTAwM2Vmdy5mdykpIHtcbi1cdFx0cmV0ID0gUFRSX0VSUihhYi1cdTAwM2Vmdy5mdyk7XG4rXHRhdGgxMWtfY29yZV9jcmVhdGVfZmlybXdhcmVfcGF0aChhYiwgbmFtZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKTtcbitcbitcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFx1MDAyNmFiLVx1MDAzZWZ3LmZ3LCBwYXRoLCBhYi1cdTAwM2VkZXYpO1xuK1x0aWYgKHJldCkge1xuIFx0XHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0JPT1QsIFwiZmFpbGVkIHRvIGxvYWQgJXM6ICVkXFxuXCIsIG5hbWUsIHJldCk7XG4gXHRcdGFiLVx1MDAzZWZ3LmZ3ID0gTlVMTDtcbiBcdFx0cmV0dXJuIHJldDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjQ3LjkzODg5NTIyMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY2NTE3Mzg2MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUXVhbGNvbW0gV2lyZWxlc3MgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIEl0IGxvb2tzIGxpa2Ugd2UncmUgY2hhbmdpbmcgc29tZXRoaW5nIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Z3LmNgLiBTcGVjaWZpY2FsbHksIHdlJ3JlIGxvb2tpbmcgYXQgYSBmdW5jdGlvbiBjYWxsZWQgYGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhlIG9sZCBjb2RlIHVzZWQgYGF0aDExa19jb3JlX2Zpcm13YXJlX3JlcXVlc3RgIHRvIGZldGNoIHRoZSBmaXJtd2FyZSBkaXJlY3RseSwgYW5kIG5vdyB3ZSdyZSByZXBsYWNpbmcgdGhhdCB3aXRoIGEgY2FsbCB0byBgYXRoMTFrX2NvcmVfY3JlYXRlX2Zpcm13YXJlX3BhdGhgIGFuZCBgcmVxdWVzdF9maXJtd2FyZV9kaXJlY3RgLiBJbnRlcmVzdGluZy4gSXQgbG9va3MgbGlrZSBpdCdzIGJ1aWxkaW5nIGEgcGF0aCwgYW5kIHRoZW4gdXNpbmcgYSBkaXJlY3QgcmVxdWVzdC4gVGhlIG9sZGVyIG1ldGhvZCBtaWdodCBoYXZlIGhhZCBzb21lIGlzc3Vlcywgb3IgcGVyaGFwcyB0aGlzIG5ldyBhcHByb2FjaCBvZmZlcnMgc29tZSBhZHZhbnRhZ2VzIGluIHRlcm1zIG9mIGNvbnRyb2wgb3IgZXJyb3IgaGFuZGxpbmcsIGdpdmVuIHRoZSBjaGFuZ2UgZnJvbSBhIGRpcmVjdCBhc3NpZ25tZW50IHRvIGEgcmV0dXJuIGNvZGUgY2hlY2suXG5cbk5vdywgYSBxdWljayByZW1pbmRlcjogYGF0aDExa2AuLi4gcmlnaHQsIHRoYXQncyBRdWFsY29tbSdzIElFRUUgODAyLjExYXggd2lyZWxlc3MgZHJpdmVyLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBpcyBydW5uaW5nIGluIGEgdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCBvciBpZiB0aGlzIGlzIHRhcmdldGluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYmUgaXQgUENJZSwgQUhCLCBTRElPLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseS4gVGhlIGNvbnRleHQgYXJvdW5kIHRoZSBmaXJtd2FyZSByZXF1ZXN0IGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucy4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgYnVzIGFuZCBLY29uZmlnIHNldHRpbmdzIHdpdGhpbiB0aGUgYGF0aDExa2AgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50IGFuZCBwb3RlbnRpYWwgbGltaXRhdGlvbnMuIEknbGwgbmVlZCB0byBjaGVjayBob3cgdGhlIGZpcm13YXJlIHBhdGggaXMgYWN0dWFsbHkgYnVpbHQgYW5kIHdoZXJlIGl0J3MgbG9va2luZyBmb3IgdGhlIGZpbGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDM4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NTQuNTkwNjQwNjA5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MzcyMzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkFUSDExS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTMxMCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjI6Y29uZmlnIEFUSDExS1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSA4MDIuMTFheCBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjEzOmNvbmZpZyBBVEgxMUtfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE0LVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTU6XFx0ZGVwZW5kcyBvbiBBVEgxMUtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTYtXFx0ZGVwZW5kcyBvbiBSRU1PVEVQUk9DXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIwOmNvbmZpZyBBVEgxMUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MjI6XFx0ZGVwZW5kcyBvbiBBVEgxMUsgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIzLVxcdHNlbGVjdCBNSElfQlVTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMwOmNvbmZpZyBBVEgxMUtfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2dpbmdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMyOlxcdGRlcGVuZHMgb24gQVRIMTFLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzg6Y29uZmlnIEFUSDExS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTM5LVxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MDpcXHRkZXBlbmRzIG9uIEFUSDExSyBcXHUwMDI2XFx1MDAyNiBERUJVR19GUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ3LVxcdGJvb2wgXFxcImF0aDExayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjQ4OlxcdGRlcGVuZHMgb24gQVRIMTFLIFxcdTAwMjZcXHUwMDI2IEVWRU5UX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1Mjpjb25maWcgQVRIMTFLX1NQRUNUUkFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUzLVxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NDpcXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU1LVxcdGRlcGVuZHMgb24gUkVMQVlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NjE6Y29uZmlnIEFUSDExS19DRlJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjItXFx0Ym9vbCBcXFwiYXRoMTFrIGNoYW5uZWwgZnJlcXVlbmN5IHJlc3BvbnNlIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYzOlxcdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjQtXFx0ZGVwZW5kcyBvbiBSRUxBWVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQVRIMTFLKSArPSBhdGgxMWsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMy1hdGgxMWsteSArPSBjb3JlLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI0OmF0aDExay0kKENPTkZJR19BVEgxMUtfREVCVUdGUykgKz0gZGVidWdmcy5vIGRlYnVnZnNfaHR0X3N0YXRzLm8gZGVidWdmc19zdGEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjUtYXRoMTFrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICs9IHRlc3Rtb2RlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI2OmF0aDExay0kKENPTkZJR19BVEgxMUtfVFJBQ0lORykgKz0gdHJhY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjctYXRoMTFrLSQoQ09ORklHX1RIRVJNQUwpICs9IHRoZXJtYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjg6YXRoMTFrLSQoQ09ORklHX0FUSDExS19TUEVDVFJBTCkgKz0gc3BlY3RyYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjktYXRoMTFrLSQoQ09ORklHX1BNKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU9MzA9YXRoMTFrLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzE6YXRoMTFrLSQoQ09ORklHX0FUSDExS19DRlIpICs9IGNmci5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMzOm9iai0kKENPTkZJR19BVEgxMUtfQUhCKSArPSBhdGgxMWtfYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM0LWF0aDExa19haGIteSArPSBhaGIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQVRIMTFLX1BDSSkgKz0gYXRoMTFrX3BjaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zNy1hdGgxMWtfcGNpLXkgKz0gbWhpLm8gcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRoMTFrX2FoYl9vZl9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yOC1cXHR7IC5jb21wYXRpYmxlID0gXFxcInFjb20saXBxODA3NC13aWZpXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5OlxcdCAgLmRhdGEgPSAodm9pZCAqKUFUSDExS19IV19JUFE4MDc0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzAtXFx0fSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwicWNvbSxpcHE2MDE4LXdpZmlcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI6XFx0ICAuZGF0YSA9ICh2b2lkICopQVRIMTFLX0hXX0lQUTYwMThfSFcxMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMzLVxcdH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNC1cXHR7IC5jb21wYXRpYmxlID0gXFxcInFjb20sd2NuNjc1MC13aWZpXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1OlxcdCAgLmRhdGEgPSAodm9pZCAqKUFUSDExS19IV19XQ042NzUwX0hXMTAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNi1cXHR9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzctXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY29tLGlwcTUwMTgtd2lmaVxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODpcXHQgIC5kYXRhID0gKHZvaWQgKilBVEgxMUtfSFdfSVBRNTAxOF9IVzEwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzktXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NDM9TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYXRoMTFrX2FoYl9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1OiNkZWZpbmUgQVRIMTFLX0lSUV9DRTBfT0ZGU0VUIDRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc6c3RhdGljIGNvbnN0IGNoYXIgKmlycV9uYW1lW0FUSDExS19JUlFfTlVNX01BWF0gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OC1cXHRcXFwibWlzYy1wdWxzZTFcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTE9YXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTU1LVxcdC8qIElmIG9mZnNldCBsaWVzIHdpdGhpbiBEUCByZWdpc3RlciByYW5nZSwgdXNlIDFzdCB3aW5kb3cgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE1NjpcXHRpZiAoKG9mZnNldCBeIEhBTF9TRVFfV0NTU19VTUFDX09GRlNFVCkgXFx1MDAzYyBBVEgxMUtfUENJX1dJTkRPV19SQU5HRV9NQVNLKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTU3OlxcdFxcdHdpbmRvd19zdGFydCA9IEFUSDExS19QQ0lfV0lORE9XX1NUQVJUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTU4LVxcdC8qIElmIG9mZnNldCBsaWVzIHdpdGhpbiBDRSByZWdpc3RlciByYW5nZSwgdXNlIDJuZCB3aW5kb3cgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1OS1cXHRlbHNlIGlmICgob2Zmc2V0IF4gSEFMX1NFUV9XQ1NTX1VNQUNfQ0UwX1NSQ19SRUcoYWIpKSBcXHUwMDNjXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjA6XFx0XFx0IEFUSDExS19QQ0lfV0lORE9XX1JBTkdFX01BU0spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjE6XFx0XFx0d2luZG93X3N0YXJ0ID0gMiAqIEFUSDExS19QQ0lfV0lORE9XX1NUQVJUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNjc9YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc0LVxcdGlvd3JpdGUzMih2YWx1ZSwgYWItXFx1MDAzZW1lbSArIHdpbmRvd19zdGFydCArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzU6XFx0XFx0ICAob2Zmc2V0IFxcdTAwMjYgQVRIMTFLX1BDSV9XSU5ET1dfUkFOR0VfTUFTSykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTc4PXN0YXRpYyB1MzIgYXRoMTFrX2FoYl93aW5kb3dfcmVhZDMyX3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg2LVxcdHZhbCA9IGlvcmVhZDMyKGFiLVxcdTAwM2VtZW0gKyB3aW5kb3dfc3RhcnQgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg3OlxcdFxcdCAgICAgICAob2Zmc2V0IFxcdTAwMjYgQVRIMTFLX1BDSV9XSU5ET1dfUkFOR0VfTUFTSykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg4LVxcdHJldHVybiB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTIzMT1zdGF0aWMgdm9pZCBfX2F0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzNTpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM2LVxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0yNzI9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjc4OlxcdGllMV9yZWdfYWRkciA9IGNlX2llX2FkZHItXFx1MDAzZWllMV9yZWdfYWRkciArIEFUSDExS19DRV9PRkZTRVQoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjc5OlxcdGllMl9yZWdfYWRkciA9IGNlX2llX2FkZHItXFx1MDAzZWllMl9yZWdfYWRkciArIEFUSDExS19DRV9PRkZTRVQoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjgwOlxcdGllM19yZWdfYWRkciA9IGNlX2llX2FkZHItXFx1MDAzZWllM19yZWdfYWRkciArIEFUSDExS19DRV9PRkZTRVQoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjgxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0yOTM9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5OTpcXHRpZTFfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVxcdTAwM2VpZTFfcmVnX2FkZHIgKyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwMDpcXHRpZTJfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVxcdTAwM2VpZTJfcmVnX2FkZHIgKyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwMTpcXHRpZTNfcmVnX2FkZHIgPSBjZV9pZV9hZGRyLVxcdTAwM2VpZTNfcmVnX2FkZHIgKyBBVEgxMUtfQ0VfT0ZGU0VUKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MzE0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMyMzpcXHRcXHRpcnFfaWR4ID0gQVRIMTFLX0lSUV9DRTBfT0ZGU0VUICsgaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyNC1cXHRcXHRzeW5jaHJvbml6ZV9pcnEoYWItXFx1MDAzZWlycV9udW1baXJxX2lkeF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0zMjg9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMzMzpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzM0LVxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0zNzM9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNzc6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3OC1cXHRcXHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9Mzk0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfc3RvcChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NjpcXHRpZiAoIXRlc3RfYml0KEFUSDExS19GTEFHX0NSQVNIX0ZMVVNILCBcXHUwMDI2YWItXFx1MDAzZWRldl9mbGFncykpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTctXFx0XFx0YXRoMTFrX2FoYl9jZV9pcnFzX2Rpc2FibGUoYWIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz00NDY9c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDUwOlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUxLVxcdFxcdGF0aDExa19haGJfZnJlZV9leHRfaXJxX2dycChhYiwgXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTQ1ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2ZyZWVfY2VfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBpbnQgbWF4X2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDYxOlxcdFxcdGlycV9pZHggPSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgKyBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDYyLVxcdFxcdGZyZWVfaXJxKGFiLVxcdTAwM2VpcnFfbnVtW2lycV9pZHhdLCBcXHUwMDI2YWItXFx1MDAzZWNlLmNlX3BpcGVbaV0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz01MzI9c3RhdGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU0MDpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQxLVxcdFxcdHUzMiBudW1faXJxID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTU4OlxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9OVU1fTUFYOyBqKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU1OS1cXHRcXHRcXHRpZiAoYWItXFx1MDAzZWh3X3BhcmFtcy5yaW5nX21hc2stXFx1MDAzZXR4W2ldIFxcdTAwMjYgQklUKGopKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTYzMz1zdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2NDg6XFx0XFx0aXJxX2lkeCA9IEFUSDExS19JUlFfQ0UwX09GRlNFVCArIGk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTcxOD1zdGF0aWMgaW50IGF0aDExa19haGJfaGlmX3N1c3BlbmQoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzI4OlxcdHdha2VfaXJxID0gYWItXFx1MDAzZWlycV9udW1bQVRIMTFLX1BDSV9JUlFfQ0UwX09GRlNFVCArIEFUSDExS19QQ0lfQ0VfV0FLRV9JUlFdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzI5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzYtXFx0dmFsdWUgPSB1MzJfZW5jb2RlX2JpdHMoYWJfYWhiLVxcdTAwM2VzbXAycF9pbmZvLnNlcV9ubysrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM3OlxcdFxcdFxcdFxcdEFUSDExS19BSEJfU01QMlBfU01FTV9TRVFfTk8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM4OlxcdHZhbHVlIHw9IHUzMl9lbmNvZGVfYml0cyhBVEgxMUtfQUhCX1BPV0VSX1NBVkVfRU5URVIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Mzk6XFx0XFx0XFx0XFx0IEFUSDExS19BSEJfU01QMlBfU01FTV9NU0cpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzQxLVxcdHJldCA9IHFjb21fc21lbV9zdGF0ZV91cGRhdGVfYml0cyhhYl9haGItXFx1MDAzZXNtcDJwX2luZm8uc21lbV9zdGF0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc0MjpcXHRcXHRcXHRcXHRcXHQgIEFUSDExS19BSEJfU01QMlBfU01FTV9WQUxVRV9NQVNLLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NDg6XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFxcXCJkZXZpY2Ugc3VzcGVuZGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc0OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9NzUzPXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfcmVzdW1lKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MzpcXHR3YWtlX2lycSA9IGFiLVxcdTAwM2VpcnFfbnVtW0FUSDExS19QQ0lfSVJRX0NFMF9PRkZTRVQgKyBBVEgxMUtfUENJX0NFX1dBS0VfSVJRXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzczLVxcdHZhbHVlID0gdTMyX2VuY29kZV9iaXRzKGFiX2FoYi1cXHUwMDNlc21wMnBfaW5mby5zZXFfbm8rKyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcXHRcXHRcXHRcXHRBVEgxMUtfQUhCX1NNUDJQX1NNRU1fU0VRX05PKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NTpcXHR2YWx1ZSB8PSB1MzJfZW5jb2RlX2JpdHMoQVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VYSVQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzY6XFx0XFx0XFx0XFx0IEFUSDExS19BSEJfU01QMlBfU01FTV9NU0cpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc4LVxcdHJldCA9IHFjb21fc21lbV9zdGF0ZV91cGRhdGVfYml0cyhhYl9haGItXFx1MDAzZXNtcDJwX2luZm8uc21lbV9zdGF0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcXHRcXHRcXHRcXHRcXHQgIEFUSDExS19BSEJfU01QMlBfU01FTV9WQUxVRV9NQVNLLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODAtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFxcXCJkZXZpY2UgcmVzdW1lZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTg0OD1zdGF0aWMgaW50IGF0aDExa19haGJfc2V0dXBfbXNpX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4OTM6XFx0c2V0X2JpdChBVEgxMUtfRkxBR19NVUxUSV9NU0lfVkVDVE9SUywgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODk0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMTM5PXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTQ5LVxcdHN3aXRjaCAoaHdfcmV2KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUwOlxcdGNhc2UgQVRIMTFLX0hXX0lQUTgwNzQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTUxOlxcdGNhc2UgQVRIMTFLX0hXX0lQUTYwMThfSFcxMDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExNTI6XFx0Y2FzZSBBVEgxMUtfSFdfSVBRNTAxOF9IVzEwOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE1My1cXHRcXHRoaWZfb3BzID0gXFx1MDAyNmF0aDExa19haGJfaGlmX29wc19pcHE4MDc0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTU1LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE1NjpcXHRjYXNlIEFUSDExS19IV19XQ042NzUwX0hXMTA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTU3LVxcdFxcdGhpZl9vcHMgPSBcXHUwMDI2YXRoMTFrX2FoYl9oaWZfb3BzX3djbjY3NTA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExNzEtXFx0YWIgPSBhdGgxMWtfY29yZV9hbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2Yoc3RydWN0IGF0aDExa19haGIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE3MjpcXHRcXHRcXHQgICAgICAgQVRIMTFLX0JVU19BSEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE3My1cXHRpZiAoIWFiKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExODAtXFx0YWItXFx1MDAzZWh3X3JldiA9IGh3X3JldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjExODE6XFx0YWItXFx1MDAzZWZ3X21vZGUgPSBBVEgxMUtfRklSTVdBUkVfTU9ERV9OT1JNQUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTgyLVxcdHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGFiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTI2ND1zdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3JlbW92ZV9wcmVwYXJlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjY4OlxcdGlmICh0ZXN0X2JpdChBVEgxMUtfRkxBR19SRUNPVkVSWSwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjY5LVxcdFxcdGxlZnQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXFx1MDAyNmFiLVxcdTAwM2Vkcml2ZXJfcmVjb3ZlcnksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjcwOlxcdFxcdFxcdFxcdFxcdFxcdCAgIEFUSDExS19BSEJfUkVDT1ZFUllfVElNRU9VVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjcxLVxcdFxcdGlmICghbGVmdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTI3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEyNzU6XFx0c2V0X2JpdChBVEgxMUtfRkxBR19VTlJFR0lTVEVSSU5HLCBcXHUwMDI2YWItXFx1MDAzZWRldl9mbGFncyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMjc2LVxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNmFiLVxcdTAwM2VyZXN0YXJ0X3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMjk1PXN0YXRpYyB2b2lkIGF0aDExa19haGJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEyOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMjk5OlxcdGlmICh0ZXN0X2JpdChBVEgxMUtfRkxBR19RTUlfRkFJTCwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMzAwLVxcdFxcdGF0aDExa19haGJfcG93ZXJfZG93bihhYiwgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMzE0PXN0YXRpYyB2b2lkIGF0aDExa19haGJfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTMyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEzMjQ6XFx0aWYgKCEodGVzdF9iaXQoQVRIMTFLX0ZMQUdfUkVHSVNURVJFRCwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMjUtXFx0XFx0Z290byBmcmVlX3Jlc291cmNlcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmgtNS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjY6I2lmbmRlZiBBVEgxMUtfQUhCX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjc6I2RlZmluZSBBVEgxMUtfQUhCX0hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTE6I2RlZmluZSBBVEgxMUtfQUhCX1JFQ09WRVJZX1RJTUVPVVQgKDMgKiBIWilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTM6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fTVNHXFx0XFx0R0VOTUFTSygxNSwgMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oOjE0OiNkZWZpbmUgQVRIMTFLX0FIQl9TTVAyUF9TTUVNX1NFUV9OT1xcdFxcdEdFTk1BU0soMzEsIDE2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTU6I2RlZmluZSBBVEgxMUtfQUhCX1NNUDJQX1NNRU1fVkFMVUVfTUFTS1xcdDB4RkZGRkZGRkZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5oLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg9MTc9ZW51bSBhdGgxMWtfYWhiX3NtcDJwX21zZ19pZCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaDoxODpcXHRBVEgxMUtfQUhCX1BPV0VSX1NBVkVfRU5URVIgPSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmg6MTk6XFx0QVRIMTFLX0FIQl9QT1dFUl9TQVZFX0VYSVQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuaC0yMC19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jPTMyMT1zdGF0aWMgaW50IGF0aDExa19jZV9yeF9wb3N0X3BpcGUoc3RydWN0IGF0aDExa19jZV9waXBlICpwaXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTM1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6MzUxOlxcdFxcdEFUSDExS19TS0JfUlhDQihza2IpLVxcdTAwM2VwYWRkciA9IHBhZGRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtMzU1LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6MzU2OlxcdFxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFxcXCJmYWlsZWQgdG8gZW5xdWV1ZSByeCBidWY6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy0zNTctXFx0XFx0XFx0XFx0ICAgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYz00MTc9c3RhdGljIHZvaWQgYXRoMTFrX2NlX3JlY3ZfcHJvY2Vzc19jYihzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDI3LVxcdFxcdG1heF9uYnl0ZXMgPSBza2ItXFx1MDAzZWxlbiArIHNrYl90YWlscm9vbShza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo0Mjg6XFx0XFx0ZG1hX3VubWFwX3NpbmdsZShhYi1cXHUwMDNlZGV2LCBBVEgxMUtfU0tCX1JYQ0Ioc2tiKS1cXHUwMDNlcGFkZHIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTQyOS1cXHRcXHRcXHRcXHQgbWF4X25ieXRlcywgRE1BX0ZST01fREVWSUNFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy00NDItXFx0d2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKFxcdTAwMjZsaXN0KSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NDQzOlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFxcXCJyeCBjZSBwaXBlICVkIGxlbiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDQ0LVxcdFxcdFxcdCAgIHBpcGUtXFx1MDAzZXBpcGVfbnVtLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNDUyLVxcdFxcdG1vZF90aW1lcihcXHUwMDI2YWItXFx1MDAzZXJ4X3JlcGxlbmlzaF9yZXRyeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NDUzOlxcdFxcdFxcdCAgamlmZmllcyArIEFUSDExS19DRV9SWF9QT1NUX1JFVFJZX0pJRkZJRVMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy00NTQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jPTQ5OD1zdGF0aWMgdm9pZCBhdGgxMWtfY2VfdHhfcHJvY2Vzc19jYihzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKnBpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo1MDk6XFx0XFx0ZG1hX3VubWFwX3NpbmdsZShhYi1cXHUwMDNlZGV2LCBBVEgxMUtfU0tCX0NCKHNrYiktXFx1MDAzZXBhZGRyLCBza2ItXFx1MDAzZWxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTEwLVxcdFxcdFxcdFxcdCBETUFfVE9fREVWSUNFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy01MjAtXFx0d2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKFxcdTAwMjZsaXN0KSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NTIxOlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0UsIFxcXCJ0eCBjZSBwaXBlICVkIGxlbiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNTIyLVxcdFxcdFxcdCAgIHBpcGUtXFx1MDAzZXBpcGVfbnVtLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9NTUzPXN0YXRpYyBpbnQgYXRoMTFrX2NlX2luaXRfcmluZyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTYwNC1cXHRcXHRhdGgxMWtfZHBfc2hhZG93X2luaXRfdGltZXIoYWIsIFxcdTAwMjZhYi1cXHUwMDNlY2UuaHBfdGltZXJbY2VfaWRdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo2MDU6XFx0XFx0XFx0XFx0XFx0ICAgIEFUSDExS19TSEFET1dfQ1RSTF9USU1FUl9JTlRFUlZBTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNjA2LVxcdFxcdFxcdFxcdFxcdCAgICBjZV9yaW5nLVxcdTAwM2VoYWxfcmluZ19pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9NzA5PWludCBhdGgxMWtfY2Vfc2VuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCBwaXBlX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTczOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NzM5OlxcdFxcdGlmIChudW1fdXNlZCBcXHUwMDNlIEFUSDExS19DRV9VU0FHRV9USFJFU0hPTEQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc0MC1cXHRcXHRcXHRhdGgxMWtfY2VfcG9sbF9zZW5kX2NvbXBsZXRlZChhYiwgcGlwZS1cXHUwMDNlcGlwZV9udW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jLTc0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6NzQzOlxcdGlmICh0ZXN0X2JpdChBVEgxMUtfRkxBR19DUkFTSF9GTFVTSCwgXFx1MDAyNmFiLVxcdTAwM2VkZXZfZmxhZ3MpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy03NDQtXFx0XFx0cmV0dXJuIC1FU0hVVERPV047XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNzcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYzo3NzM6XFx0YXRoMTFrX2hhbF9jZV9zcmNfc2V0X2Rlc2MoZGVzYywgQVRIMTFLX1NLQl9DQihza2IpLVxcdTAwM2VwYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtNzc0LVxcdFxcdFxcdFxcdCAgIHNrYi1cXHUwMDNlbGVuLCB0cmFuc2Zlcl9pZCwgYnl0ZV9zd2FwX2RhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5jPTc5OT1zdGF0aWMgdm9pZCBhdGgxMWtfY2VfcnhfcGlwZV9jbGVhbnVwKHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTQtXFx0XFx0cmluZy1cXHUwMDNlc2tiW2ldID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6ODE1OlxcdFxcdGRtYV91bm1hcF9zaW5nbGUoYWItXFx1MDAzZWRldiwgQVRIMTFLX1NLQl9SWENCKHNrYiktXFx1MDAzZXBhZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy04MTYtXFx0XFx0XFx0XFx0IHNrYi1cXHUwMDNlbGVuICsgc2tiX3RhaWxyb29tKHNrYiksIERNQV9GUk9NX0RFVklDRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM9ODgzPXZvaWQgYXRoMTFrX2NlX3J4X3Bvc3RfYnVmKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmMtODk4LVxcdFxcdFxcdG1vZF90aW1lcihcXHUwMDI2YWItXFx1MDAzZXJ4X3JlcGxlbmlzaF9yZXRyeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmM6ODk5OlxcdFxcdFxcdFxcdCAgamlmZmllcyArIEFUSDExS19DRV9SWF9QT1NUX1JFVFJZX0pJRkZJRVMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuYy05MDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmgtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NzojaWZuZGVmIEFUSDExS19DRV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oOjg6I2RlZmluZSBBVEgxMUtfQ0VfSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaC05LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTI1LS8qIFRocmVzaG9sZCB0byBwb2xsIGZvciB0eCBjb21wbGV0aW9uIGluIGNhc2Ugb2YgSW50ZXJydXB0IGRpc2FibGVkIENFJ3MgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6MjY6I2RlZmluZSBBVEgxMUtfQ0VfVVNBR0VfVEhSRVNIT0xEIDMyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaD0yOD12b2lkIGF0aDExa19jZV9ieXRlX3N3YXAodm9pZCAqbWVtLCB1MzIgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2UuaC02MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NlLmg6NjI6I2RlZmluZSBBVEgxMUtfQ0VfUlhfUE9TVF9SRVRSWV9KSUZGSUVTIDUwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZS5oLTYzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz0xOT1zdGF0aWMgaW50IGF0aDExa19jZnJfY2FsY3VsYXRlX3RvbmVzX2Zyb21fZG1hX2hkcihzdHJ1Y3QgYXRoMTFrX2Nmcl9kbWFfaGRyICpoZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI0LVxcdHN3aXRjaCAocHJlYW1ibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjI1OlxcdGNhc2UgQVRIMTFLX0NGUl9QUkVBTUJMRV9UWVBFX0xFR0FDWTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2LVxcdFxcdGZhbGx0aHJvdWdoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6Mjc6XFx0Y2FzZSBBVEgxMUtfQ0ZSX1BSRUFNQkxFX1RZUEVfVkhUOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjgtXFx0XFx0c3dpdGNoIChidykge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zOS1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MDpcXHRjYXNlIEFUSDExS19DRlJfUFJFQU1CTEVfVFlQRV9IVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQxLVxcdFxcdHN3aXRjaCAoYncpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTE0PWF0aDExa19jZnJfY29ycmVsYXRlX2FuZF9yZWxheShzdHJ1Y3QgYXRoMTFrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MTIyOlxcdGlmIChldmVudF90eXBlID09IEFUSDExS19DT1JSRUxBVEVfVFhfRVZFTlQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyMy1cXHRcXHRpZiAobHV0LVxcdTAwM2V0eF9yZWN2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xMjYtXFx0XFx0bHV0LVxcdTAwM2V0eF9yZWN2ID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjEyNzpcXHR9IGVsc2UgaWYgKGV2ZW50X3R5cGUgPT0gQVRIMTFLX0NPUlJFTEFURV9EQlJfRVZFTlQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTEyOC1cXHRcXHRjZnItXFx1MDAzZWRicl9ldnRfY250Kys7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE0MC1cXHRcXHRcXHRcXHRkaWZmID0gbHV0LVxcdTAwM2VkYnJfdHN0YW1wIC0gbHV0LVxcdTAwM2V0eHJ4X3RzdGFtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE0MTpcXHRcXHRcXHRcXHRhdGgxMWtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDItXFx0XFx0XFx0XFx0XFx0ICAgXFxcInR4cnggZXZlbnQgLVxcdTAwM2UgZGJyIGV2ZW50IGRlbGF5ID0gJXUgbXNcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNDUtXFx0XFx0XFx0XFx0ZGlmZiA9IGx1dC1cXHUwMDNldHhyeF90c3RhbXAgLSBsdXQtXFx1MDAzZWRicl90c3RhbXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNDY6XFx0XFx0XFx0XFx0YXRoMTFrX2RiZyhhci1cXHUwMDNlYWIsIEFUSDExS19EQkdfQ0ZSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTQ3LVxcdFxcdFxcdFxcdFxcdCAgIFxcXCJkYnIgZXZlbnQgLVxcdTAwM2UgdHhyeCBldmVudCBkZWxheSA9ICV1IG1zXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTUzLVxcdFxcdFxcdGNmci1cXHUwMDNlcmVsZWFzZV9jbnQrKztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE1NDpcXHRcXHRcXHRzdGF0dXMgPSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTU1LVxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE2MTpcXHRcXHRcXHRhdGgxMWtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNjItXFx0XFx0XFx0XFx0ICAgXFxcIlJlY2VpdmVkIGRiciBldmVudCB0d2ljZSBmb3IgdGhlIHNhbWUgbHV0IGVudHJ5XFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2Ni1cXHRcXHRcXHRjZnItXFx1MDAzZWNmcl9kbWFfYWJvcnRzKys7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNjc6XFx0XFx0XFx0c3RhdHVzID0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE2OC1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0xNjktXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjE3MDpcXHRcXHRzdGF0dXMgPSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19IT0xEO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTcxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MTc2PXN0YXRpYyBpbnQgYXRoMTFrX2Nmcl9wcm9jZXNzX2RhdGEoc3RydWN0IGF0aDExayAqYXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTE3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoxNzk6XFx0dTMyIGVuZF9tYWdpYyA9IEFUSDExS19DRlJfRU5EX01BR0lDO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMTgwLVxcdHN0cnVjdCBhdGgxMWtfY3NpX2Nmcl9oZWFkZXIgKmhlYWRlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjE5OlxcdGF0aDExa19kYmdfZHVtcChhYiwgQVRIMTFLX0RCR19DRlJfRFVNUCwgXFxcImRhdGFfZnJvbV9idWZfcmVsOlxcXCIsIFxcXCJcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjIwLVxcdFxcdFxcdGRhdGEsIGxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTIzNS1cXHRzdGF0dXMgPSBhdGgxMWtfY2ZyX2NvcnJlbGF0ZV9hbmRfcmVsYXkoYXIsIGx1dCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjIzNjpcXHRcXHRcXHRcXHRcXHRcXHRBVEgxMUtfQ09SUkVMQVRFX0RCUl9FVkVOVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyMzc6XFx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyMzg6XFx0XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yMzktXFx0XFx0XFx0ICAgXFxcInJlbGVhc2luZyBDRlIgZGF0YSB0byB1c2VyIHNwYWNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI0NC1cXHRcXHRhdGgxMWtfY2ZyX3JlbGVhc2VfbHV0X2VudHJ5KGx1dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNDU6XFx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MjQ2OlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMjQ3LVxcdFxcdFxcdCAgIFxcXCJ0eCBldmVudCBpcyBub3QgeWV0IHJlY2VpdmVkIGhvbGRpbmcgdGhlIGJ1ZlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz0yNTU9c3RhdGljIHZvaWQgYXRoMTFrX2Nmcl9maWxsX2hkcl9pbmZvKHN0cnVjdCBhdGgxMWsgKmFyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yNjEtXFx0Y2ZyID0gXFx1MDAyNmFyLVxcdTAwM2VjZnI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNjI6XFx0aGVhZGVyLVxcdTAwM2VjZnJfbWV0YWRhdGFfdmVyc2lvbiA9IEFUSDExS19DRlJfTUVUQV9WRVJTSU9OXzQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyNjM6XFx0aGVhZGVyLVxcdTAwM2VjZnJfZGF0YV92ZXJzaW9uID0gQVRIMTFLX0NGUl9EQVRBX1ZFUlNJT05fMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI2NC1cXHRoZWFkZXItXFx1MDAzZWNmcl9tZXRhZGF0YV9sZW4gPSBzaXplb2Yoc3RydWN0IGNmcl9tZXRhZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTI4NS1cXHRoZWFkZXItXFx1MDAzZW1ldGFfZGF0YS5jYXB0dXJlX21vZGUgPSBwYXJhbXMtXFx1MDAzZWJhbmR3aWR0aCA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzoyODY6XFx0XFx0QVRIMTFLX0NGUl9DQVBUVVJFX0RVUF9MRUdBQ1lfQUNLIDogQVRIMTFLX0NGUl9DQVBUVVJFX0xFR0FDWV9BQ0s7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0yODctXFx0aGVhZGVyLVxcdTAwM2VtZXRhX2RhdGEuY2FwdHVyZV90eXBlID0gcGFyYW1zLVxcdTAwM2VjYXB0dXJlX21ldGhvZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9MzAwPWludCBhdGgxMWtfcHJvY2Vzc19jZnJfY2FwdHVyZV9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zMDMtXFx0c3RydWN0IGF0aDExa19sb29rX3VwX3RhYmxlICpsdXQgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6MzA0OlxcdHUzMiBlbmRfbWFnaWMgPSBBVEgxMUtfQ0ZSX0VORF9NQUdJQztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTMwNS1cXHRzdHJ1Y3QgYXRoMTFrX2NzaV9jZnJfaGVhZGVyICpoZWFkZXI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM3OC1cXHRoZWFkZXIgPSBcXHUwMDI2bHV0LVxcdTAwM2VoZWFkZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozNzk6XFx0aGVhZGVyLVxcdTAwM2VzdGFydF9tYWdpY19udW0gPSBBVEgxMUtfQ0ZSX1NUQVJUX01BR0lDO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtMzgwLVxcdGhlYWRlci1cXHUwMDNldmVuZG9yaWQgPSBWRU5ET1JfUUNBO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zODUtXFx0c3RhdHVzID0gYXRoMTFrX2Nmcl9jb3JyZWxhdGVfYW5kX3JlbGF5KGFyLCBsdXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozODY6XFx0XFx0XFx0XFx0XFx0XFx0QVRIMTFLX0NPUlJFTEFURV9UWF9FVkVOVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozODc6XFx0aWYgKHN0YXR1cyA9PSBBVEgxMUtfQ09SUkVMQVRFX1NUQVRVU19SRUxFQVNFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozODg6XFx0XFx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19DRlIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy0zODktXFx0XFx0XFx0ICAgXFxcIlJlbGVhc2luZyBDRlIgZGF0YSB0byB1c2VyIHNwYWNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTM5OC1cXHRcXHRcXHRcXHRcXHQgICAgIFdNSV9ESVJFQ1RfQlVGX0NGUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzozOTk6XFx0fSBlbHNlIGlmIChzdGF0dXMgPT0gQVRIMTFLX0NPUlJFTEFURV9TVEFUVVNfSE9MRCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDAwOlxcdFxcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQ0ZSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDAxLVxcdFxcdFxcdCAgIFxcXCJkYnIgZXZlbnQgaXMgbm90IHlldCByZWNlaXZlZCBob2xkaW5nIGJ1ZlxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jPTQxMj1ib29sIGF0aDExa19jZnJfcGVlcl9pc19pbl9jZnJfdW5hc3NvY19wb29sKHN0cnVjdCBhdGgxMWsgKmFyLCBjb25zdCB1OCAqcGVlcl9tYWMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQyMS1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmNmci1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0MjI6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDExS19NQVhfQ0ZSX0VOQUJMRURfQ0xJRU5UUzsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00MjMtXFx0XFx0ZW50cnkgPSBcXHUwMDI2Y2ZyLVxcdTAwM2V1bmFzc29jX3Bvb2xbaV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jPTQzOD12b2lkIGF0aDExa19jZnJfdXBkYXRlX3VuYXNzb2NfcG9vbF9lbnRyeShzdHJ1Y3QgYXRoMTFrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDQ1LVxcdHNwaW5fbG9ja19iaChcXHUwMDI2Y2ZyLVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ0NjpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX01BWF9DRlJfRU5BQkxFRF9DTElFTlRTOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ0Ny1cXHRcXHRlbnRyeSA9IFxcdTAwMjZjZnItXFx1MDAzZXVuYXNzb2NfcG9vbFtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM9NDc3PWF0aDExa19jZnJfYndfdG9fZndfY2ZyX2J3KGVudW0gYXRoMTFrX2Nmcl9jYXB0dXJlX2J3IGJ3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00NzktXFx0c3dpdGNoIChidykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDgwOlxcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX0JXXzIwOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNDgxLVxcdFxcdHJldHVybiBXTUlfUEVFUl9DRlJfQ0FQVFVSRV9CV18yMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ4MjpcXHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9CV180MDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ4My1cXHRcXHRyZXR1cm4gV01JX1BFRVJfQ0ZSX0NBUFRVUkVfQldfNDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYzo0ODQ6XFx0Y2FzZSBBVEgxMUtfQ0ZSX0NBUFRVUkVfQldfODA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00ODUtXFx0XFx0cmV0dXJuIFdNSV9QRUVSX0NGUl9DQVBUVVJFX0JXXzgwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYz00OTI9YXRoMTFrX2Nmcl9tZXRob2RfdG9fZndfY2ZyX21ldGhvZChlbnVtIGF0aDExa19jZnJfY2FwdHVyZV9tZXRob2QgbWV0aG9kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00OTQtXFx0c3dpdGNoIChtZXRob2QpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jOjQ5NTpcXHRjYXNlIEFUSDExS19DRlJfQ0FQVFVSRV9NRVRIT0RfTlVMTF9GUkFNRTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jLTQ5Ni1cXHRcXHRyZXR1cm4gV01JX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDk3OlxcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9OVUxMX0ZSQU1FX1dJVEhfUEhBU0U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jZnIuYy00OTgtXFx0XFx0cmV0dXJuIFdNSV9DRlJfQ0FQVFVSRV9NRVRIT0RfTlVMTF9GUkFNRV9XSVRIX1BIQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmM6NDk5OlxcdGNhc2UgQVRIMTFLX0NGUl9DQVBUVVJFX01FVEhPRF9QUk9CRV9SRVNQOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY2ZyLmMtNTAwLVxcdFxcdHJldHVybiBXTUlfQ0ZSX0NBUFRVUkVfTUVUSE9EX1BST0JFX1JFU1A7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2Nmci5jPTUwNj1pbnQgYXRoMTFrX2Nmcl9zZW5kX3BlZXJfY2ZyX2NhcHR1cmVfY21kKHN0cnVjdCBhdGgxMWsgKmFyLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1Nzo1NC42NTAwMTgzNDhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNTUzMzY5NTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIGF0aDExayBQQ0kgRGV2aWNlIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYXRoMTFrYCBhbmQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nIGFib3V0IGl0cyBoYXJkd2FyZSBzdXBwb3J0LiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGRlYWxpbmcgd2l0aCBkaWZmZXJlbnQgYnVzIGludGVyZmFjZXMuIFJpZ2h0LCByaWdodCwgaXQncyBwcmV0dHkgY2xlYXI6IGBhdGgxMWtgIGlzIGJ1aWx0IGZvciBlaXRoZXIgdGhlIEFIQiBidXMgKGBBVEgxMUtfQUhCYCkgb3IgUENJIChgQVRIMTFLX1BDSWApLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgKndoaWNoKiBQQ0kgZGV2aWNlcyBhcmUgYWN0dWFsbHkgcmVjb2duaXplZCBhbmQgaGFuZGxlZCBieSB0aGlzIGRyaXZlcj8gVGhhdCdzIHdoYXQgSSByZWFsbHkgbmVlZCB0byBkcmlsbCBkb3duIG9uLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIGBhdGgxMWtfcGNpLmNgIHNvdXJjZSBjb2RlLCBvciBwb3RlbnRpYWxseSB0aGUgcmVsZXZhbnQgUENJIGluZnJhc3RydWN0dXJlIGNvZGUgKGBwY2kuY2ApIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljIFBDSSBkZXZpY2UgSURzIHRoYXQgYXJlIHdpdGhpbiB0aGUgcHVydmlldyBvZiB0aGUgZHJpdmVyLiBMZXQncyBzZWUgd2hhdCBkZXZpY2UgSURzIGl0J3MgYWN0dWFsbHkgbWF0Y2hpbmcuIFRoYXQgc2hvdWxkIHRlbGwgdGhlIHdob2xlIHN0b3J5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODE3MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjU3LjIwMzQ0MjYxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDc1Mjk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kZXZpY2VfaWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExa1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6MzY6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGF0aDExa19wY2lfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTM3LVxcdHsgUENJX1ZERVZJQ0UoUUNPTSwgUUNBNjM5MF9ERVZJQ0VfSUQpIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTk0OT1zdGF0aWMgaW50IGF0aDExa19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NTA6XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTUxLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMDc6NTc6NTcuMjUyNTI1MDU5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjU1MDk3MTUyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyBEcml2ZXIgLSBQQ0kgSUQgVGFibGUqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGludG8gdGhlIEF0aGVyb3MgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgYGF0aDExa2AgbW9kdWxlLCBhbmQgSSdtIGZvY3VzaW5nIG9uIHRoZSBQQ0kgaW50ZXJmYWNlLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBjb21lcyB0byBtaW5kIGlzIHRoZSBkZXZpY2UgSUQgdGFibGUuIEl0J3MgdXN1YWxseSB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRyaXZlciBhc3NvY2lhdGVzIGl0c2VsZiB3aXRoIHNwZWNpZmljIGhhcmR3YXJlLiBTbywgSSdtIGdvaW5nIHRvIG5hdmlnYXRlIG92ZXIgdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmNgIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgYGF0aDExa19wY2lfaWRfdGFibGVgLiBUaGF0IHRhYmxlIHNob3VsZCBob2xkIHRoZSBQQ0kgZGV2aWNlIElEcywgdmVuZG9yIElEcywgYW5kIGhvcGVmdWxseSBzb21lIGFzc29jaWF0ZWQgZHJpdmVyLXNwZWNpZmljIGRhdGEgc3RydWN0dXJlcyBvciBpbml0aWFsaXphdGlvbiBpbmZvcm1hdGlvbiB0aGF0IHRoZSBkcml2ZXIgbmVlZHMgdG8gd29yay4gVW5kZXJzdGFuZGluZyB0aGlzIHRhYmxlIHdpbGwgdGVsbCBtZSBwcmVjaXNlbHkgd2hpY2ggZGV2aWNlcyB0aGlzIHNwZWNpZmljIEF0aGVyb3MgZHJpdmVyIHN1cHBvcnRzIHRocm91Z2ggdGhlIFBDSSBpbnRlcmZhY2UuIFRpbWUgdG8gZGlnIGluIGFuZCBzZWUgd2hhdCdzIGluIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODcxOCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU3OjU5LjgwMzQ5OTYwMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkxMzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMzU6XFx0XFxuICAzNjpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRoMTFrX3BjaV9pZF90YWJsZVtdID0ge1xcbiAgMzc6XFx0XFx0eyBQQ0lfVkRFVklDRShRQ09NLCBRQ0E2MzkwX0RFVklDRV9JRCkgfSxcXG4gIDM4OlxcdFxcdHsgUENJX1ZERVZJQ0UoUUNPTSwgV0NONjg1NV9ERVZJQ0VfSUQpIH0sXFxuICAzOTpcXHRcXHR7IFBDSV9WREVWSUNFKFFDT00sIFFDTjkwNzRfREVWSUNFX0lEKSB9LFxcbiAgNDA6XFx0XFx0e31cXG4gIDQxOlxcdH07XFxuICA0MjpcXHRcXG4gIDQzOlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhdGgxMWtfcGNpX2lkX3RhYmxlKTtcXG4gIDQ0OlxcdFxcbiAgNDU6XFx0c3RhdGljIGludCBhdGgxMWtfcGNpX2J1c193YWtlX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuICA0NjpcXHR7XFxuICA0NzpcXHRcXHRzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpID0gYXRoMTFrX3BjaV9wcml2KGFiKTtcXG4gIDQ4OlxcdFxcbiAgNDk6XFx0XFx0cmV0dXJuIG1oaV9kZXZpY2VfZ2V0X3N5bmMoYWJfcGNpLVxcdTAwM2VtaGlfY3RybC1cXHUwMDNlbWhpX2Rldik7XFxuICA1MDpcXHR9XFxuICA1MTpcXHRcXG4gIDUyOlxcdHN0YXRpYyB2b2lkIGF0aDExa19wY2lfYnVzX3JlbGVhc2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4gIDUzOlxcdHtcXG4gIDU0OlxcdFxcdHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2kgPSBhdGgxMWtfcGNpX3ByaXYoYWIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1Nzo1OS44MDM1OTIzNTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMzA3NzczNjAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgYXRoMTFrJ3MgQnVzIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBhdGgxMWssIHRoZSBRdWFsY29tbSBXaS1GaSBkcml2ZXIsIGhhcyBhIHByZXR0eSBzb2xpZCBoYW5kbGUgb24gdGhlIHVzdWFsIHN1c3BlY3RzIOKAkyB0aGUgUENJIGFuZCBBSEIgYmFzZWQgUXVhbGNvbW0gZGV2aWNlczogUUNBNjM5MCwgV0NONjg1NSwgUUNOOTA3NCwgSVBRODA3NCwgSVBRNjAxOCwgV0NONjc1MCwgYW5kIElQUTUwMTguIEJ1dCBJJ20gY3VyaW91cywgZG9lcyB0aGUgZHJpdmVyIGhhdmUgYW55IGZsZXhpYmlsaXR5IGJleW9uZCB0aGlzPyBEb2VzIGl0IGV4dGVuZCB0byBoYW5kbGluZyB2aXJ0dWFsIG9yIGVtdWxhdGVkIGJ1c2VzLCBvciBldmVuIFVTQiBnYWRnZXRzPyBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCBpdCBwcmltYXJpbHkgZGVhbHMgd2l0aCB0aGVzZSBoYXJkd2FyZSBwbGF0Zm9ybXMsIGJ1dCBJIGNhbid0IGJlIHN1cmUgd2l0aG91dCBkaWdnaW5nIGRlZXBlci5cblxuSSBuZWVkIHRvIGNvbmZpcm0gdGhlIGV4dGVudCBvZiBpdHMgc3VwcG9ydGVkIGJ1cyB0eXBlcy4gVG8gY2xhcmlmeSB0aGlzLCBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciBpdCdzIHNvbGVseSB0aWVkIHRvIHBoeXNpY2FsIFBDSSBhbmQgQUhCIGludGVyZmFjZXMsIG9yIGlmIGl0IG9mZmVycyB3aWRlciBjb21wYXRpYmlsaXR5LiBUaGUgbW9zdCBkaXJlY3QgYXBwcm9hY2ggaXMgdG8gZXhhbWluZSB0aGUgc291cmNlIGNvZGUuIExldCdzIGRlbHZlIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrYCBkaXJlY3RvcnksIGFuZCBzY3J1dGluaXplIGFsbCB0aGUgZmlsZXMgdGhlcmVpbi4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYmVzdCBpbnNpZ2h0IGludG8gaXRzIGJ1cyBzdXBwb3J0IGNhcGFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkzNzMsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1ODowMy4xMTEzNjgzMzJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTg4MDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImFoYi5jXCIsXG4gICAgXCJhaGIuaFwiLFxuICAgIFwiY2UuY1wiLFxuICAgIFwiY2UuaFwiLFxuICAgIFwiY2ZyLmNcIixcbiAgICBcImNmci5oXCIsXG4gICAgXCJjb3JlLmNcIixcbiAgICBcImNvcmUuaFwiLFxuICAgIFwiY29yZWR1bXAuY1wiLFxuICAgIFwiY29yZWR1bXAuaFwiLFxuICAgIFwiZGJyaW5nLmNcIixcbiAgICBcImRicmluZy5oXCIsXG4gICAgXCJkZWJ1Zy5jXCIsXG4gICAgXCJkZWJ1Zy5oXCIsXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImRlYnVnZnMuaFwiLFxuICAgIFwiZGVidWdmc19odHRfc3RhdHMuY1wiLFxuICAgIFwiZGVidWdmc19odHRfc3RhdHMuaFwiLFxuICAgIFwiZGVidWdmc19zdGEuY1wiLFxuICAgIFwiZGVidWdmc19zdGEuaFwiLFxuICAgIFwiZHAuY1wiLFxuICAgIFwiZHAuaFwiLFxuICAgIFwiZHBfcnguY1wiLFxuICAgIFwiZHBfcnguaFwiLFxuICAgIFwiZHBfdHguY1wiLFxuICAgIFwiZHBfdHguaFwiLFxuICAgIFwiZncuY1wiLFxuICAgIFwiZncuaFwiLFxuICAgIFwiaGFsLmNcIixcbiAgICBcImhhbC5oXCIsXG4gICAgXCJoYWxfZGVzYy5oXCIsXG4gICAgXCJoYWxfcnguY1wiLFxuICAgIFwiaGFsX3J4LmhcIixcbiAgICBcImhhbF90eC5jXCIsXG4gICAgXCJoYWxfdHguaFwiLFxuICAgIFwiaGlmLmhcIixcbiAgICBcImh0Yy5jXCIsXG4gICAgXCJodGMuaFwiLFxuICAgIFwiaHcuY1wiLFxuICAgIFwiaHcuaFwiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtaGkuY1wiLFxuICAgIFwibWhpLmhcIixcbiAgICBcInAycC5jXCIsXG4gICAgXCJwMnAuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBjaS5oXCIsXG4gICAgXCJwY2ljLmNcIixcbiAgICBcInBjaWMuaFwiLFxuICAgIFwicGVlci5jXCIsXG4gICAgXCJwZWVyLmhcIixcbiAgICBcInFtaS5jXCIsXG4gICAgXCJxbWkuaFwiLFxuICAgIFwicmVnLmNcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJyeF9kZXNjLmhcIixcbiAgICBcInNwZWN0cmFsLmNcIixcbiAgICBcInNwZWN0cmFsLmhcIixcbiAgICBcInRlc3Rtb2RlLmNcIixcbiAgICBcInRlc3Rtb2RlLmhcIixcbiAgICBcInRoZXJtYWwuY1wiLFxuICAgIFwidGhlcm1hbC5oXCIsXG4gICAgXCJ0cmFjZS5jXCIsXG4gICAgXCJ0cmFjZS5oXCIsXG4gICAgXCJ3bWkuY1wiLFxuICAgIFwid21pLmhcIixcbiAgICBcIndvdy5jXCIsXG4gICAgXCJ3b3cuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQwNzo1ODowMy4xMTE0ODg4NzJaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NzE2MDY2MjYyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBhdGgxMWsgRHJpdmVyIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGZ1enppbmcgdGhlIGBhdGgxMWtgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgYXRoMTFrX2Z3X3JlcXVlc3RfZmlybXdhcmVfYXBpX24oKWAsIGlzbid0IGdvaW5nIHRvIGJlIGZydWl0ZnVsIGluIHN0YW5kYXJkIGZ1enppbmcgc2V0dXBzLiBUaGUgZHJpdmVyLCBhcyBJIHVuZGVyc3RhbmQgaXQsIHByaW1hcmlseSBkZWFscyB3aXRoIFF1YWxjb21tIDgwMi4xMWF4IGhhcmR3YXJlIOKAkyB0aGluZ3MgbGlrZSB0aGUgUUNBNjM5MCwgV0NONjg1NSwgYW5kIG90aGVyIHNpbGljb24tYmFzZWQgZGV2aWNlcyBjb21tdW5pY2F0aW5nIHZpYSBQQ0llIG9yIEFIQi4gVGhlIGtleSBoZXJlIGlzIHRoZSAqcGh5c2ljYWwqIG5hdHVyZSBvZiB0aGUgaGFyZHdhcmUuXG5cblRoZSBpc3N1ZSwgYXMgSSBzZWUgaXQsIGJvaWxzIGRvd24gdG8gZW11bGF0aW9uLiBTdGFuZGFyZCBRRU1VIGFuZCBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgZW52aXJvbm1lbnRzIHNpbXBseSBkb24ndCBlbXVsYXRlIHRoZXNlIHNwZWNpZmljIFF1YWxjb21tIFdpRmkgY29tcG9uZW50cy4gVGhlIGxvZ2ljIEknbSBmb2xsb3dpbmcgYWxpZ25zIHdpdGggdGhlIFwic3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlXCIgbmVnYXRpdmUgY3JpdGVyaW9uLiBUaGUgcGF0Y2ggaGl0cyB0aGUgYGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uYCBmdW5jdGlvbiBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9mdy5jYCB3aGljaCBoYW5kbGVzIHJlcXVlc3RzIHRvIGxvYWQgZmlybXdhcmUgaW50byB0aGUgaGFyZHdhcmUsIGFuZCB0aGUgaGFyZHdhcmUgaXRzZWxmIGlzbid0IHByZXNlbnQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LlxuXG5HaXZlbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIHZlbmRvci1zcGVjaWZpYywgcmVxdWlyaW5nIHBoeXNpY2FsIFF1YWxjb21tIFdpRmkgc2lsaWNvbiBjb25uZWN0ZWQgb3ZlciB0aGUgUENJZS9BSEIgYnVzLCBhbmQgdGhhdCBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudHMgZG9uJ3QgcHJvdmlkZSB0aGlzLCBmdXp6aW5nIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4gVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBpcyB1bmVxdWl2b2NhbGx5IGBmYWxzZWAuIENvbnNlcXVlbnRseSwgbXkgYEZvY3VzU3ltYm9sc2AgYW5kIGBFbmFibGVDb25maWdzYCBhcmUgZW1wdHkgYXMgSSBuZWVkIHRvIHNwZWNpZnkgd2hhdCB0YXJnZXRzIHRoZSBmdXp6ZXIgY2FuIGF0dGVtcHQgdG8gcmVhY2guIEl04oCZcyBpbXBvcnRhbnQgdG8gbWFrZSB0aGlzIGRlY2lzaW9uIGJhc2VkIG9uIHdoYXQgaXMgcHJhY3RpY2FsbHkgYWNoaWV2YWJsZSBpbiBzdGFuZGFyZCBmdXp6aW5nIHNldHVwcy5cblxuRXZlcnl0aGluZyBzZWVtcyB0byBjaGVjayBvdXQuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDI3NCwiT3V0cHV0VG9rZW5zIjoxMjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NzAsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU4OjEwLjI3MjE1NDgwNFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwODUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uIGluIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYywgd2hpY2ggYmVsb25ncyB0byB0aGUgUXVhbGNvbW0gODAyLjExYXggKGF0aDExaykgd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBRdWFsY29tbSBQQ0llL0FIQiBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExa19md19yZXF1ZXN0X2Zpcm13YXJlX2FwaV9uIGluIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZncuYywgd2hpY2ggYmVsb25ncyB0byB0aGUgUXVhbGNvbW0gODAyLjExYXggKGF0aDExaykgd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBRdWFsY29tbSBQQ0llL0FIQiBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDA3OjU4OjEwLjI3MjE3ODYxNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow87fs6[1] Phase: Running StartedAt: 2026-09-10 07:58:22 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow87fs6[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-10 07:58:22 +0000 UTC FinishedAt: 2026-09-10 07:58:26 +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,}