Name: series-workflowjnbbf Phase: Failed StartedAt: 2026-09-05 18:05:49 +0000 UTC FinishedAt: 2026-09-05 18:24:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjnbbf[0] Phase: Succeeded StartedAt: 2026-09-05 18:05:49 +0000 UTC FinishedAt: 2026-09-05 18:23:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjnbbf[0].run-triage Phase: Succeeded StartedAt: 2026-09-05 18:05:49 +0000 UTC FinishedAt: 2026-09-05 18:23:50 +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+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTVkNmYyMzhiYjE3ZjA4YWQ4ODYzMTNlYjZkYmI2MDJlZGI3NWM1OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgU2VwIDUgMTg6MjM6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcbmluZGV4IDI0YjkxYmUyNTY3NjIuLjg2ZGVkZjVjMWMwOTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG5AQCAtNDA2MywxMiAmIzQzOzQwNjMsMTcgQEAgc3RhdGljIGludCBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycShzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQsXG4gXG4gXHRcdG5hbWUgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgXCYjMzQ7JXMtJXMtJXMtJWRcJiMzNDssIGRydl9uYW1lLCBpZl9uYW1lLFxuIFx0XHRcdFx0IHZlY19uYW1lLCB2ZWN0b3IpO1xuJiM0MztcdFx0aWYgKCFuYW1lKSB7XG4mIzQzO1x0XHRcdGVyciA9IC1FTk9NRU07XG4mIzQzO1x0XHRcdGdvdG8gZnJlZV9xX2lycXM7XG4mIzQzO1x0XHR9XG4gXG4gXHRcdGVyciA9IHJlcXVlc3RfaXJxKGlycV9udW0sIGlkcGZfdnBvcnRfaW50cl9jbGVhbl9xdWV1ZXMsIDAsXG4gXHRcdFx0XHQgIG5hbWUsIHFfdmVjdG9yKTtcbiBcdFx0aWYgKGVycikge1xuIFx0XHRcdG5ldGRldl9lcnIodnBvcnQtXHUwMDNlbmV0ZGV2LFxuIFx0XHRcdFx0ICAgXCYjMzQ7UmVxdWVzdF9pcnEgZmFpbGVkLCBlcnJvcjogJWRcXG5cJiMzNDssIGVycik7XG4mIzQzO1x0XHRcdGtmcmVlKG5hbWUpO1xuIFx0XHRcdGdvdG8gZnJlZV9xX2lycXM7XG4gXHRcdH1cbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxODoyMzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jIChoYW5kbGluZyBhbGxvY2F0aW9uIGZhaWx1cmUgYW5kIGNsZWFudXAgZm9yIGthc3ByaW50ZiBpbiBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycSkuIFRoZSBpZHBmIGRyaXZlciBpcyBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgSW50ZWwgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIChJUFUvU21hcnROSUMpIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCB0aHVzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhNWQ2ZjIzOGJiMTdmMDhhZDg4NjMxM2ViNmRiYjYwMmVkYjc1YzU4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBTZXAgNSAxODoyMzoxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jCmluZGV4IDI0YjkxYmUyNTY3NjIuLjg2ZGVkZjVjMWMwOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYwpAQCAtNDA2MywxMiAmIzQzOzQwNjMsMTcgQEAgc3RhdGljIGludCBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycShzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQsCiAKIAkJbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAmIzM0OyVzLSVzLSVzLSVkJiMzNDssIGRydl9uYW1lLCBpZl9uYW1lLAogCQkJCSB2ZWNfbmFtZSwgdmVjdG9yKTsKJiM0MzsJCWlmICghbmFtZSkgewomIzQzOwkJCWVyciA9IC1FTk9NRU07CiYjNDM7CQkJZ290byBmcmVlX3FfaXJxczsKJiM0MzsJCX0KIAogCQllcnIgPSByZXF1ZXN0X2lycShpcnFfbnVtLCBpZHBmX3Zwb3J0X2ludHJfY2xlYW5fcXVldWVzLCAwLAogCQkJCSAgbmFtZSwgcV92ZWN0b3IpOwogCQlpZiAoZXJyKSB7CiAJCQluZXRkZXZfZXJyKHZwb3J0LSZndDtuZXRkZXYsCiAJCQkJICAgJiMzNDtSZXF1ZXN0X2lycSBmYWlsZWQsIGVycm9yOiAlZFxuJiMzNDssIGVycik7CiYjNDM7CQkJa2ZyZWUobmFtZSk7CiAJCQlnb3RvIGZyZWVfcV9pcnFzOwogCQl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxMwoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDExNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoOiBJbnRlbCBJRFBGIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgcGF0Y2ggaXMgYWN0dWFsbHkgY2hhbmdpbmcsIHNvIEkmIzM5O2xsIHN0YXJ0IGJ5IHRha2luZyBhIGNsb3NlIGxvb2sgYXQgdGhlIHBhdGNoIGl0c2VsZiBhbmQgcGlucG9pbnQgdGhlIHNwZWNpZmljIGZpbGVzIGludm9sdmVkLiBJdCBzZWVtcyB0aGUgbW9kaWZpY2F0aW9uIGlzIGNlbnRlcmVkIGFyb3VuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguY2AuIFJpZ2h0LCBzbyB0aGlzIGlzIGFib3V0IHRoZSBgaWRwZmAgZHJpdmVyLgoKTm93LCBhIHF1aWNrIG1lbW9yeSByZWZyZXNoIGlzIGluIG9yZGVyLiBXaGF0IGV4YWN0bHkgKmlzKiB0aGlzIGBpZHBmYCBkcml2ZXIgYWdhaW4/IEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiwgcmlnaHQ/IE9rYXksIHRoYXQgaGVscHMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyBpcyBsaWtlbHkgcmVsYXRlZCB0byBwaHlzaWNhbCBoYXJkd2FyZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgc3VzcGljaW9uLCBzbyBsZXQmIzM5O3MgY3Jvc3MtcmVmZXJlbmNlIGFuZCBjaGVjayB0aGUgYEtjb25maWdgIGZpbGVzIOKAkyBwcm9iYWJseSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnYCBvciBldmVuIHRoZSBicm9hZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnYCBkaXJlY3Rvcnkg4oCTIHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiB3aGV0aGVyIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IEludGVsIElQVXMsIFNtYXJ0TklDcywgRlBHQXMsIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBDb25maXJtaW5nIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIGNydWNpYWwgZm9yIHByb3Blcmx5IGFzc2Vzc2luZyB0aGUgaW1wYWN0IGFuZCBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7SURQRiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMDg3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfSUNFKSAmIzQzOz0gaWNlL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0lEUEYpICYjNDM7PSBpZHBmL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGUtMjItb2JqLSQoQ09ORklHX0lYRCkgJiM0Mzs9IGl4ZC9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZzo0OmNvbmZpZyBJRFBGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctNS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsKFIpIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjE4OmlmIElEUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZzoyMDpjb25maWcgSURQRl9TSU5HTEVRXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMjEtXHRib29sIFwmIzM0O2lkcGYgc2luZ2xlcSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjI4OmVuZGlmICMgSURQRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfSURQRikgJiM0Mzs9IGlkcGYub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZT04PWlkcGYteSA6PSBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGUtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL01ha2VmaWxlOjE4OmlkcGYtJChDT05GSUdfSURQRl9TSU5HTEVRKVx0JiM0Mzs9IGlkcGZfc2luZ2xlcV90eHJ4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGUtMTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ6I2lmbmRlZiBfSURQRl9IX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTojZGVmaW5lIF9JRFBGX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTEyPXN0cnVjdCBpZHBmX3Jzc19kYXRhO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MzM6I2RlZmluZSBJRFBGX05PX0ZSRUVfU0xPVFx0XHQweGZmZmZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzUtLyogRGVmYXVsdCBNYWlsYm94IHNldHRpbmdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozNjojZGVmaW5lIElEUEZfTlVNX0ZJTFRFUlNfUEVSX01TR1x0MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM3OiNkZWZpbmUgSURQRl9OVU1fREZMVF9NQlhfUVx0XHQyXHQvKiBpbmNsdWRlcyBib3RoIFRYIGFuZCBSWCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Mzg6I2RlZmluZSBJRFBGX0RGTFRfTUJYX1FfTEVOXHRcdDY0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zOS0vKiBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyB0byB0cnkgYmVmb3JlIHJlc2V0dGluZyBtYWlsYm94ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MDojZGVmaW5lIElEUEZfTUJfTUFYX0VSUlx0XHRcdDIwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MTojZGVmaW5lIElEUEZfTlVNX0NIVU5LU19QRVJfTVNHKHN0cnVjdF9zeiwgY2h1bmtfc3opXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDItXHQoKExJQklFX0NUTFFfTUFYX0JVRl9MRU4gLSAoc3RydWN0X3N6KSkgLyAoY2h1bmtfc3opKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0NDojZGVmaW5lIElEUEZfV0FJVF9GT1JfTUFSS0VSX1RJTUVPXHQ1MDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ1OiNkZWZpbmUgSURQRl9NQVhfV0FJVFx0XHRcdDUwMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00Ny0vKiBhdmFpbGFibGUgbWVzc2FnZSBsZXZlbHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ4OiNkZWZpbmUgSURQRl9BVkFJTF9ORVRJRl9NIChORVRJRl9NU0dfRFJWIHwgTkVUSUZfTVNHX1BST0JFIHwgTkVUSUZfTVNHX0xJTkspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjUwOiNkZWZpbmUgSURQRl9ESU1fUFJPRklMRV9TTE9UUyAgNVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MjojZGVmaW5lIElEUEZfVklSVENITkxfVkVSU0lPTl9NQUpPUiBWSVJUQ0hOTDJfVkVSU0lPTl9NQUpPUl8yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MzojZGVmaW5lIElEUEZfVklSVENITkxfVkVSU0lPTl9NSU5PUiBWSVJUQ0hOTDJfVkVSU0lPTl9NSU5PUl8wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD02Mj1zdHJ1Y3QgaWRwZl9tYWNfZmlsdGVyIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03MC0gKiBlbnVtIGlkcGZfc3RhdGUgLSBTdGF0ZSBtYWNoaW5lIHRvIGhhbmRsZSBicmluZyB1cFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NzE6ICogQF9fSURQRl9WRVJfQ0hFQ0s6IE5lZ290aWF0ZSB2aXJ0Y2hubCB2ZXJzaW9uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MjogKiBAX19JRFBGX0dFVF9DQVBTOiBOZWdvdGlhdGUgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MzogKiBAX19JRFBGX0lOSVRfU1c6IEluaXQgYmFzZWQgb24gZ2l2ZW4gY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NDogKiBAX19JRFBGX1NUQVRFX0xBU1Q6IE11c3QgYmUgbGFzdCwgdXNlZCB0byBkZXRlcm1pbmUgc2l6ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzUtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD03Nj1lbnVtIGlkcGZfc3RhdGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzc6XHRfX0lEUEZfVkVSX0NIRUNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzg6XHRfX0lEUEZfR0VUX0NBUFMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3OTpcdF9fSURQRl9JTklUX1NXLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODA6XHRfX0lEUEZfU1RBVEVfTEFTVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODQtICogZW51bSBpZHBmX2ZsYWdzIC0gSGFyZCByZXNldCBjYXVzZXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NTogKiBASURQRl9IUl9GVU5DX1JFU0VUOiBIYXJkIHJlc2V0IHdoZW4gVHhSeCB0aW1lb3V0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NjogKiBASURQRl9IUl9EUlZfTE9BRDogU2V0IG9uIGRyaXZlciBsb2FkIGZvciBhIGNsZWFuIEhXXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NzogKiBASURQRl9IUl9SRVNFVF9JTl9QUk9HOiBSZXNldCBpbiBwcm9ncmVzc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODg6ICogQElEUEZfUkVNT1ZFX0lOX1BST0c6IERyaXZlciByZW1vdmUgaW4gcHJvZ3Jlc3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg5OiAqIEBJRFBGX01CX0lOVFJfTU9ERTogTWFpbGJveCBpbiBpbnRlcnJ1cHQgbW9kZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTA6ICogQElEUEZfVkNfQ09SRV9JTklUOiB2aXJ0Y2hubCBjb3JlIGhhcyBiZWVuIGluaXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjkxOiAqIEBJRFBGX0ZMQUdTX05CSVRTOiBNdXN0IGJlIGxhc3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTkyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9OTM9ZW51bSBpZHBmX2ZsYWdzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjk0Olx0SURQRl9IUl9GVU5DX1JFU0VULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTU6XHRJRFBGX0hSX0RSVl9MT0FELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTY6XHRJRFBGX0hSX1JFU0VUX0lOX1BST0csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5NzpcdElEUEZfUkVNT1ZFX0lOX1BST0csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5ODpcdElEUEZfTUJfSU5UUl9NT0RFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTk6XHRJRFBGX1ZDX0NPUkVfSU5JVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEwMDpcdElEUEZfRkxBR1NfTkJJVFMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMDEtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMDQtICogZW51bSBpZHBmX2NhcF9maWVsZCAtIE9mZnNldHMgaW50byBjYXBhYmlsaXRpZXMgc3RydWN0IGZvciBzcGVjaWZpYyBjYXBzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDU6ICogQElEUEZfQkFTRV9DQVBTOiBnZW5lcmljIGJhc2UgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDY6ICogQElEUEZfQ1NVTV9DQVBTOiBjaGVja3N1bSBvZmZsb2FkIGNhcGFiaWxpdGllc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTA3OiAqIEBJRFBGX1NFR19DQVBTOiBzZWdtZW50YXRpb24gb2ZmbG9hZCBjYXBhYmlsaXRpZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEwODogKiBASURQRl9SU1NfQ0FQUzogUlNTIG9mZmxvYWQgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDk6ICogQElEUEZfSFNQTElUX0NBUFM6IEhlYWRlciBzcGxpdCBjYXBhYmlsaXRpZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjExMDogKiBASURQRl9SU0NfQ0FQUzogUlNDIG9mZmxvYWQgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMTE6ICogQElEUEZfT1RIRVJfQ0FQUzogbWlzY2VsbGFuZW91cyBvZmZsb2Fkc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTEyLSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTE3PWVudW0gaWRwZl9jYXBfZmllbGQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTE4Olx0SURQRl9CQVNFX0NBUFNcdFx0PSAtMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjExOTpcdElEUEZfQ1NVTV9DQVBTXHRcdD0gb2Zmc2V0b2Yoc3RydWN0IHZpcnRjaG5sMl9nZXRfY2FwYWJpbGl0aWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTIwLVx0XHRcdFx0XHQgICBjc3VtX2NhcHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTIxOlx0SURQRl9TRUdfQ0FQU1x0XHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEyMi1cdFx0XHRcdFx0ICAgc2VnX2NhcHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTIzOlx0SURQRl9SU1NfQ0FQU1x0XHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEyNC1cdFx0XHRcdFx0ICAgcnNzX2NhcHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTI1Olx0SURQRl9IU1BMSVRfQ0FQU1x0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjYtXHRcdFx0XHRcdCAgIGhzcGxpdF9jYXBzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyNzpcdElEUEZfUlNDX0NBUFNcdFx0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjgtXHRcdFx0XHRcdCAgIHJzY19jYXBzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyOTpcdElEUEZfT1RIRVJfQ0FQU1x0XHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEzMC1cdFx0XHRcdFx0ICAgb3RoZXJfY2FwcyksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTM0LSAqIGVudW0gaWRwZl92cG9ydF9zdGF0ZSAtIEN1cnJlbnQgdnBvcnQgc3RhdGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzNTogKiBASURQRl9WUE9SVF9VUDogVnBvcnQgaXMgdXBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzNjogKiBASURQRl9WUE9SVF9TVEFURV9OQklUUzogTXVzdCBiZSBsYXN0LCBudW1iZXIgb2Ygc3RhdGVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMzctICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xMzg9ZW51bSBpZHBmX3Zwb3J0X3N0YXRlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzOTpcdElEUEZfVlBPUlRfVVAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxNDA6XHRJRFBGX1ZQT1JUX1NUQVRFX05CSVRTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xNDEtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xNTY9c3RydWN0IGlkcGZfbmV0ZGV2X3ByaXYge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE2My1cdHUxNiB0eF9tYXhfYnVmcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjE2NDpcdERFQ0xBUkVfQklUTUFQKHN0YXRlLCBJRFBGX1ZQT1JUX1NUQVRFX05CSVRTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE2NS1cdHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCBuZXRzdGF0cztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yMDI9c3RydWN0IGlkcGZfcmVnX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE0OiNkZWZpbmUgSURQRl9NTUlPX1JFR19OVU1fU1RBVElDXHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTU6I2RlZmluZSBJRFBGX1BGX01CWF9SRUdJT05fU1pcdFx0NDA5NlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE2OiNkZWZpbmUgSURQRl9QRl9SU1RBVF9SRUdJT05fU1pcdFx0MjA0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE3OiNkZWZpbmUgSURQRl9WRl9NQlhfUkVHSU9OX1NaXHRcdDEwMjQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTg6I2RlZmluZSBJRFBGX1ZGX1JTVEFUX1JFR0lPTl9TWlx0XHQyMDQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MjI2PXN0cnVjdCBpZHBmX2Rldl9vcHMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTIzMS1cdC8qIHN0YXRpY19yZWdfaW5mb1swXSBpcyBtYWlsYm94IHJlZ2lvbiwgc3RhdGljX3JlZ19pbmZvWzFdIGlzIHJzdGF0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMzI6XHRzdHJ1Y3QgcmVzb3VyY2Ugc3RhdGljX3JlZ19pbmZvW0lEUEZfTU1JT19SRUdfTlVNX1NUQVRJQ107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMzMtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMzYtICogZW51bSBpZHBmX3Zwb3J0X3Jlc2V0X2NhdXNlIC0gVnBvcnQgc29mdCByZXNldCBjYXVzZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIzNzogKiBASURQRl9TUl9RX0NIQU5HRTogU29mdCByZXNldCBxdWV1ZSBjaGFuZ2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIzODogKiBASURQRl9TUl9RX0RFU0NfQ0hBTkdFOiBTb2Z0IHJlc2V0IGRlc2NyaXB0b3IgY2hhbmdlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMzk6ICogQElEUEZfU1JfTVRVX0NIQU5HRTogU29mdCByZXNldCBNVFUgY2hhbmdlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDA6ICogQElEUEZfU1JfUlNDX0NIQU5HRTogU29mdCByZXNldCBSU0MgY2hhbmdlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNDEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yNDI9ZW51bSBpZHBmX3Zwb3J0X3Jlc2V0X2NhdXNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI0MzpcdElEUEZfU1JfUV9DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDQ6XHRJRFBGX1NSX1FfREVTQ19DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDU6XHRJRFBGX1NSX01UVV9DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDY6XHRJRFBGX1NSX1JTQ19DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNDctfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNTAtICogZW51bSBpZHBmX3Zwb3J0X2ZsYWdzIC0gVnBvcnQgZmxhZ3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI1MTogKiBASURQRl9WUE9SVF9ERUxfUVVFVUVTOiBUbyBzZW5kIGRlbGV0ZSBxdWV1ZXMgbWVzc2FnZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjUyOiAqIEBJRFBGX1ZQT1JUX0ZMQUdTX05CSVRTOiBNdXN0IGJlIGxhc3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1My0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTI1ND1lbnVtIGlkcGZfdnBvcnRfZmxhZ3Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjU1Olx0SURQRl9WUE9SVF9ERUxfUVVFVUVTLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjU2Olx0SURQRl9WUE9SVF9GTEFHU19OQklUUyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1Ny19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTMyMj1zdHJ1Y3QgaWRwZl9xX3ZlY19yc3JjIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zNDUtXHR1MzJcdFx0XHRyeHFfZGVzY19jb3VudDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM0NjpcdHUzMlx0XHRcdGJ1ZnFfZGVzY19jb3VudFtJRFBGX01BWF9CVUZRU19QRVJfUlhRX0dSUF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zNDctXHR1OFx0XHRcdG51bV9idWZxc19wZXJfcWdycDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0zODE9c3RydWN0IGlkcGZfdnBvcnQge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM5Mi1cdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozOTM6XHRERUNMQVJFX0JJVE1BUChmbGFncywgSURQRl9WUE9SVF9GTEFHU19OQklUUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zOTQtXHR1MzIgY29tcGxuX2NsZWFuX2J1ZGdldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MDAtXHR1OCBkZWZhdWx0X21hY19hZGRyW0VUSF9BTEVOXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwMTpcdHUxNiByeF9pdHJfcHJvZmlsZVtJRFBGX0RJTV9QUk9GSUxFX1NMT1RTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwMjpcdHUxNiB0eF9pdHJfcHJvZmlsZVtJRFBGX0RJTV9QUk9GSUxFX1NMT1RTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQwMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MTYtICogZW51bSBpZHBmX3VzZXJfZmxhZ3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQxNzogKiBAX19JRFBGX1VTRVJfRkxBR19IU1BMSVQ6IGhlYWRlciBzcGxpdCBzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE4OiAqIEBfX0lEUEZfUFJPTUlTQ19VQzogVW5pY2FzdCBwcm9taXNjdW91cyBtb2RlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MTk6ICogQF9fSURQRl9QUk9NSVNDX01DOiBNdWx0aWNhc3QgcHJvbWlzY3VvdXMgbW9kZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDIwOiAqIEBfX0lEUEZfVVNFUl9GTEFHU19OQklUUzogTXVzdCBiZSBsYXN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MjEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD00MjI9ZW51bSBpZHBmX3VzZXJfZmxhZ3Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDIzOlx0X19JRFBGX1VTRVJfRkxBR19IU1BMSVQgPSAwVSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQyNDpcdF9fSURQRl9QUk9NSVNDX1VDID0gMzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjU6XHRfX0lEUEZfUFJPTUlTQ19NQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQyNzpcdF9fSURQRl9VU0VSX0ZMQUdTX05CSVRTLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDI4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NDgwPXN0cnVjdCBpZHBmX3Zwb3J0X3VzZXJfY29uZmlnX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ4Ny1cdHN0cnVjdCBicGZfcHJvZyAqeGRwX3Byb2c7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0ODg6XHRERUNMQVJFX0JJVE1BUCh1c2VyX2ZsYWdzLCBfX0lEUEZfVVNFUl9GTEFHU19OQklUUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00ODktXHRzdHJ1Y3QgbGlzdF9oZWFkIG1hY19maWx0ZXJfbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00OTUtICogZW51bSBpZHBmX3Zwb3J0X2NvbmZpZ19mbGFncyAtIFZwb3J0IGNvbmZpZyBmbGFnc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk2OiAqIEBJRFBGX1ZQT1JUX1JFR19ORVRERVY6IFJlZ2lzdGVyIG5ldGRldlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk3OiAqIEBJRFBGX1ZQT1JUX1VQX1JFUVVFU1RFRDogU2V0IGlmIGludGVyZmFjZSB1cCBpcyByZXF1ZXN0ZWQgb24gY29yZSByZXNldFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk4OiAqIEBJRFBGX1ZQT1JUX0NPTkZJR19GTEFHU19OQklUUzogTXVzdCBiZSBsYXN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00OTktICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01MDA9ZW51bSBpZHBmX3Zwb3J0X2NvbmZpZ19mbGFncyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MDE6XHRJRFBGX1ZQT1JUX1JFR19ORVRERVYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MDI6XHRJRFBGX1ZQT1JUX1VQX1JFUVVFU1RFRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjUwMzpcdElEUEZfVlBPUlRfQ09ORklHX0ZMQUdTX05CSVRTLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNTA0LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NTMxPXN0cnVjdCBpZHBmX3ZlY3Rvcl9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NDgtICogcG9vbCYjMzk7IGFuZCBvdGhlciBvbmUgaXMgY2FsbGVkICYjMzk7ZnJlZSBwb29sJiMzOTsuICBWZWN0b3IgZGlzdHJpYnV0aW9uIGFsZ29yaXRobVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTQ5OiAqIGdpdmVzIHByaW9yaXR5IHRvIGRlZmF1bHQgdnBvcnRzIGluIGEgd2F5IHRoYXQgYXQgbGVhc3QgSURQRl9NSU5fUV9WRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTU1MC0gKiB2ZWN0b3JzIGFyZSBhbGxvY2F0ZWQgcGVyIGRlZmF1bHQgdnBvcnQgYW5kIHRoZSByZWxhdGl2ZSB2ZWN0b3IgaW5kZXhlcyBmb3Jcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01OTg9c3RydWN0IGlkcGZfdnBvcnRfY29uZmlnIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02MDMtXHRzcGlubG9ja190IGZsb3dfc3RlZXJfbGlzdF9sb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NjA0Olx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIElEUEZfVlBPUlRfQ09ORklHX0ZMQUdTX05CSVRTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTYwNS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTY3Mz1zdHJ1Y3QgaWRwZl9hZGFwdGVyIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02ODAtXHRlbnVtIGlkcGZfc3RhdGUgc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo2ODE6XHRERUNMQVJFX0JJVE1BUChmbGFncywgSURQRl9GTEFHU19OQklUUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02ODItXHRzdHJ1Y3QgaWRwZl9yZXNldF9yZWcgcmVzZXRfcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTc0NT1zdGF0aWMgaW5saW5lIGludCBpZHBmX2lzX3F1ZXVlX21vZGVsX3NwbGl0KHUxNiBxX21vZGVsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc0NzpcdHJldHVybiAhSVNfRU5BQkxFRChDT05GSUdfSURQRl9TSU5HTEVRKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ4LVx0ICAgICAgIHFfbW9kZWwgPT0gVklSVENITkwyX1FVRVVFX01PREVMX1NQTElUO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTc3MD1zdGF0aWMgaW5saW5lIGJvb2wgaWRwZl9pc19yZG1hX2NhcF9lbmEoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc3MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzI6XHRyZXR1cm4gaWRwZl9pc19jYXBfZW5hKGFkYXB0ZXIsIElEUEZfT1RIRVJfQ0FQUywgVklSVENITkwyX0NBUF9SRE1BKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc3My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzU6I2RlZmluZSBJRFBGX0NBUF9SU1MgKFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzYtXHRWSVJUQ0hOTDJfRkxPV19JUFY0X1RDUFx0XHR8XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3ODU6I2RlZmluZSBJRFBGX0NBUF9SU0MgKFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03ODYtXHRWSVJUQ0hOTDJfQ0FQX1JTQ19JUFY0X1RDUFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzg5OiNkZWZpbmUgSURQRl9DQVBfSFNQTElUXHQoXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc5MC1cdFZJUlRDSE5MMl9DQVBfUlhfSFNQTElUX0FUX0w0VjRcdHxcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc5MzojZGVmaW5lIElEUEZfQ0FQX1RYX0NTVU1fTDRWNCAoXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc5NC1cdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY0X1RDUFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzk3OiNkZWZpbmUgSURQRl9DQVBfVFhfQ1NVTV9MNFY2IChcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk4LVx0VklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0lQVjZfVENQXHR8XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4MDE6I2RlZmluZSBJRFBGX0NBUF9SWF9DU1VNIChcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODAyLVx0VklSVENITkwyX0NBUF9SWF9DU1VNX0wzX0lQVjRcdFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODA4OiNkZWZpbmUgSURQRl9DQVBfVFhfU0NUUF9DU1VNIChcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODA5LVx0VklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0lQVjRfU0NUUFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODEyOiNkZWZpbmUgSURQRl9DQVBfVFVOTkVMX1RYX0NTVU0gKFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MTMtXHRWSVJUQ0hOTDJfQ0FQX1RYX0NTVU1fTDNfU0lOR0xFX1RVTk5FTFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9ODY3PXN0YXRpYyBpbmxpbmUgdTggaWRwZl9nZXRfbWluX3R4X3BrdF9sZW4oc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NzE6XHRyZXR1cm4gcGt0X2xlbiA/IHBrdF9sZW4gOiBJRFBGX1RYX01JTl9QS1RfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODcyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD04OTY9c3RhdGljIGlubGluZSBib29sIGlkcGZfaXNfcmVzZXRfaW5fcHJvZyhzdHJ1Y3QgaWRwZl9hZGFwdGVyICphZGFwdGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg5ODpcdHJldHVybiAodGVzdF9iaXQoSURQRl9IUl9SRVNFVF9JTl9QUk9HLCBhZGFwdGVyLVx1MDAzZWZsYWdzKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODk5Olx0XHR0ZXN0X2JpdChJRFBGX0hSX0ZVTkNfUkVTRVQsIGFkYXB0ZXItXHUwMDNlZmxhZ3MpIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5MDA6XHRcdHRlc3RfYml0KElEUEZfSFJfRFJWX0xPQUQsIGFkYXB0ZXItXHUwMDNlZmxhZ3MpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTkwMS19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTAxMj1pbnQgaWRwZl9hZGRfZGVsX2ZzdGVlcl9maWx0ZXJzKHN0cnVjdCBpZHBmX2FkYXB0ZXIgKmFkYXB0ZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTAxNC1cdFx0XHRcdGVudW0gdmlydGNobmwyX29wIG9wY29kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDE1OiNlbmRpZiAvKiAhX0lEUEZfSF8gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzo5OiNkZWZpbmUgSURQRl9QRl9JVFJfSURYX1NQQUNJTkdcdFx0MHg0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jPTYzPXN0YXRpYyBpbnQgaWRwZl9pbnRyX3JlZ19pbml0KHN0cnVjdCBpZHBmX3Zwb3J0ICp2cG9ydCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtODgtXHRcdHN0cnVjdCBpZHBmX3FfdmVjdG9yICpxX3ZlY3RvciA9IFx1MDAyNnJzcmMtXHUwMDNlcV92ZWN0b3JzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjg5Olx0XHR1MTYgdmVjX2lkID0gcnNyYy1cdTAwM2VxX3ZlY3Rvcl9pZHhzW2ldIC0gSURQRl9NQlhfUV9WRUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtOTAtXHRcdHN0cnVjdCBpZHBmX2ludHJfcmVnICppbnRyID0gXHUwMDI2cV92ZWN0b3ItXHUwMDNlaW50cl9yZWc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTEwNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoxMDU6XHRcdHNwYWNpbmcgPSBJRFBGX0lUUl9JRFhfU1BBQ0lORyhyZWctXHUwMDNlaXRybl9pbmRleF9zcGFjaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEwNjpcdFx0XHRcdFx0ICAgICAgIElEUEZfUEZfSVRSX0lEWF9TUEFDSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMDctXHRcdHJ4X2l0ciA9IFBGX0dMSU5UX0lUUl9BRERSKFZJUlRDSE5MMl9JVFJfSURYXzAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTExNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoxMTc6XHR2YWwgPSByZWdfdmFsc1tyc3JjLVx1MDAzZXFfdmVjdG9yX2lkeHNbaV0gLSBJRFBGX01CWF9RX1ZFQ10uZHluX2N0bF9yZWc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTE4LVx0cnNyYy1cdTAwM2Vub2lycV9keW5fY3RsID1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTIxLVx0dmFsID0gUEZfR0xJTlRfRFlOX0NUTF9XQl9PTl9JVFJfTSB8IFBGX0dMSU5UX0RZTl9DVExfSU5URU5BX01TS19NIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoxMjI6XHQgICAgICBGSUVMRF9QUkVQKFBGX0dMSU5UX0RZTl9DVExfSVRSX0lORFhfTSwgSURQRl9OT19JVFJfVVBEQVRFX0lEWCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTIzLVx0cnNyYy1cdTAwM2Vub2lycV9keW5fY3RsX2VuYSA9IHZhbDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM9MTk5PXZvaWQgaWRwZl9kZXZfb3BzX2luaXQoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA1LVx0cmVzb3VyY2Vfc2V0X3JhbmdlKFx1MDAyNmFkYXB0ZXItXHUwMDNlZGV2X29wcy5zdGF0aWNfcmVnX2luZm9bMF0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM6MjA2Olx0XHRcdCAgIFBGX0ZXX0JBU0UsIElEUEZfUEZfTUJYX1JFR0lPTl9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA3LVx0cmVzb3VyY2Vfc2V0X3JhbmdlKFx1MDAyNmFkYXB0ZXItXHUwMDNlZGV2X29wcy5zdGF0aWNfcmVnX2luZm9bMV0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM6MjA4Olx0XHRcdCAgIFBGR0VOX1JUUklHLCBJRFBGX1BGX1JTVEFUX1JFR0lPTl9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA5LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmgtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaDo0OiNpZm5kZWYgX0lEUEZfREVWSURTX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6NTojZGVmaW5lIF9JRFBGX0RFVklEU19IX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6NzojZGVmaW5lIElEUEZfREVWX0lEX1BGXHRcdFx0MHgxNDUyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6ODojZGVmaW5lIElEUEZfREVWX0lEX1ZGXHRcdFx0MHgxNDVDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmgtOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaDoxMDojZW5kaWYgLyogX0lEUEZfREVWSURTX0hfICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0zNjY9c3RhdGljIHUzMiBpZHBmX2dldF9yeGZoX2tleV9zaXplKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjM3MTpcdGlmICghaWRwZl9pc19jYXBfZW5hX2FsbChucC1cdTAwM2VhZGFwdGVyLCBJRFBGX1JTU19DQVBTLCBJRFBGX0NBUF9SU1MpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zNzItXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Mzg1PXN0YXRpYyB1MzIgaWRwZl9nZXRfcnhmaF9pbmRpcl9zaXplKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjM5MDpcdGlmICghaWRwZl9pc19jYXBfZW5hX2FsbChucC1cdTAwM2VhZGFwdGVyLCBJRFBGX1JTU19DQVBTLCBJRFBGX0NBUF9SU1MpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zOTEtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDA4PXN0YXRpYyBpbnQgaWRwZl9nZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0MjQ6XHRpZiAoIWlkcGZfaXNfY2FwX2VuYV9hbGwoYWRhcHRlciwgSURQRl9SU1NfQ0FQUywgSURQRl9DQVBfUlNTKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00MjUtXHRcdGVyciA9IC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDU3PXN0YXRpYyBpbnQgaWRwZl9zZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0NzM6XHRpZiAoIWlkcGZfaXNfY2FwX2VuYV9hbGwoYWRhcHRlciwgSURQRl9SU1NfQ0FQUywgSURQRl9DQVBfUlNTKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00NzQtXHRcdGVyciA9IC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0OTQ6XHRpZiAodGVzdF9iaXQoSURQRl9WUE9SVF9VUCwgbnAtXHUwMDNlc3RhdGUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00OTUtXHRcdGVyciA9IGlkcGZfY29uZmlnX3Jzcyh2cG9ydCwgcnNzX2RhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NTExPXN0YXRpYyB2b2lkIGlkcGZfZ2V0X2NoYW5uZWxzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy01MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjUzMjpcdGNoLVx1MDAzZW1heF9vdGhlciA9IElEUEZfTUFYX01CWFE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjUzMzpcdGNoLVx1MDAzZW90aGVyX2NvdW50ID0gSURQRl9NQVhfTUJYUTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NTQ4PXN0YXRpYyBpbnQgaWRwZl9zZXRfY2hhbm5lbHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTYwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjAxOlx0ZXJyID0gaWRwZl9pbml0aWF0ZV9zb2Z0X3Jlc2V0KHZwb3J0LCBJRFBGX1NSX1FfQ0hBTkdFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjAyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NjI0PXN0YXRpYyB2b2lkIGlkcGZfZ2V0X3JpbmdwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2MzQ6XHRyaW5nLVx1MDAzZXJ4X21heF9wZW5kaW5nID0gSURQRl9NQVhfUlhRX0RFU0M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjYzNTpcdHJpbmctXHUwMDNldHhfbWF4X3BlbmRpbmcgPSBJRFBGX01BWF9UWFFfREVTQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjM2LVx0cmluZy1cdTAwM2VyeF9wZW5kaW5nID0gdnBvcnQtXHUwMDNlZGZsdF9xdl9yc3JjLnJ4cV9kZXNjX2NvdW50O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NjU0PXN0YXRpYyBpbnQgaWRwZl9zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY3MTpcdGlmIChyaW5nLVx1MDAzZXR4X3BlbmRpbmcgXHUwMDNjIElEUEZfTUlOX1RYUV9ERVNDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY3Mi1cdFx0bmV0ZGV2X2VycihuZXRkZXYsIFwmIzM0O0Rlc2NyaXB0b3JzIHJlcXVlc3RlZCAoVHg6ICV1KSBpcyBsZXNzIHRoYW4gbWluIHN1cHBvcnRlZCAoJXUpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzMtXHRcdFx0ICAgcmluZy1cdTAwM2V0eF9wZW5kaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2NzQ6XHRcdFx0ICAgSURQRl9NSU5fVFhRX0RFU0MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzUtXHRcdGVyciA9IC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY3OTpcdGlmIChyaW5nLVx1MDAzZXJ4X3BlbmRpbmcgXHUwMDNjIElEUEZfTUlOX1JYUV9ERVNDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY4MC1cdFx0bmV0ZGV2X2VycihuZXRkZXYsIFwmIzM0O0Rlc2NyaXB0b3JzIHJlcXVlc3RlZCAoUng6ICV1KSBpcyBsZXNzIHRoYW4gbWluIHN1cHBvcnRlZCAoJXUpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODEtXHRcdFx0ICAgcmluZy1cdTAwM2VyeF9wZW5kaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2ODI6XHRcdFx0ICAgSURQRl9NSU5fUlhRX0RFU0MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODMtXHRcdGVyciA9IC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY4NzpcdG5ld19yeF9jb3VudCA9IEFMSUdOKHJpbmctXHUwMDNlcnhfcGVuZGluZywgSURQRl9SRVFfUlhRX0RFU0NfTVVMVElQTEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODgtXHRpZiAobmV3X3J4X2NvdW50ICE9IHJpbmctXHUwMDNlcnhfcGVuZGluZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjkyOlx0bmV3X3R4X2NvdW50ID0gQUxJR04ocmluZy1cdTAwM2V0eF9wZW5kaW5nLCBJRFBGX1JFUV9ERVNDX01VTFRJUExFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjkzLVx0aWYgKG5ld190eF9jb3VudCAhPSByaW5nLVx1MDAzZXR4X3BlbmRpbmcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03MTktXHRcdHJzcmMtXHUwMDNlYnVmcV9kZXNjX2NvdW50W2ldID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzIwOlx0XHRcdElEUEZfUlhfQlVGUV9ERVNDX0NPVU5UKG5ld19yeF9jb3VudCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzIxLVx0XHRcdFx0XHRcdHJzcmMtXHUwMDNlbnVtX2J1ZnFzX3Blcl9xZ3JwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3MjM6XHRlcnIgPSBpZHBmX2luaXRpYXRlX3NvZnRfcmVzZXQodnBvcnQsIElEUEZfU1JfUV9ERVNDX0NIQU5HRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTcyNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTczOC0gKiBJdCBkZWZpbmVzIGEgc3RhdGlzdGljIGFzIG9mZnNldCBmcm9tIGEgY29tbW9uIGJhc2UgcG9pbnRlci4gU3RhdHMgc2hvdWxkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjczOTogKiBiZSBkZWZpbmVkIGluIGNvbnN0YW50IGFycmF5cyB1c2luZyB0aGUgSURQRl9TVEFUIG1hY3JvLCB3aXRoIGV2ZXJ5IGVsZW1lbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzQwLSAqIG9mIHRoZSBhcnJheSB1c2luZyB0aGUgc2FtZSBfdHlwZSBmb3IgY2FsY3VsYXRpbmcgdGhlIHNpemVvZl9zdGF0IGFuZFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NzUzPXN0cnVjdCBpZHBmX3N0YXRzIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc2Mi0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzYzOiNkZWZpbmUgSURQRl9TVEFUKF90eXBlLCBfbmFtZSwgX3N0YXQpIHsgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzY0LVx0LnN0YXRfc3RyaW5nID0gX25hbWUsIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03NjktLyogSGVscGVyIG1hY3JvcyBmb3IgZGVmaW5pbmcgc29tZSBzdGF0aXN0aWNzIHJlbGF0ZWQgdG8gcXVldWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3MDojZGVmaW5lIElEUEZfUlhfUVVFVUVfU1RBVChfbmFtZSwgX3N0YXQpIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3MTpcdElEUEZfU1RBVChzdHJ1Y3QgaWRwZl9yeF9xdWV1ZSwgX25hbWUsIF9zdGF0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3NzI6I2RlZmluZSBJRFBGX1RYX1FVRVVFX1NUQVQoX25hbWUsIF9zdGF0KSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3NzM6XHRJRFBGX1NUQVQoc3RydWN0IGlkcGZfdHhfcXVldWUsIF9uYW1lLCBfc3RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Nzc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3R4X3F1ZXVlX3N0YXRzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3NzpcdElEUEZfVFhfUVVFVUVfU1RBVChcJiMzNDtwa3RzXCYjMzQ7LCBxX3N0YXRzLnBhY2tldHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3Nzg6XHRJRFBGX1RYX1FVRVVFX1NUQVQoXCYjMzQ7Ynl0ZXNcJiMzNDssIHFfc3RhdHMuYnl0ZXMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3Nzk6XHRJRFBGX1RYX1FVRVVFX1NUQVQoXCYjMzQ7bHNvX3BrdHNcJiMzNDssIHFfc3RhdHMubHNvX3BrdHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03ODAtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTc4Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGlkcGZfc3RhdHMgaWRwZl9nc3RyaW5nc19yeF9xdWV1ZV9zdGF0c1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODQ6XHRJRFBGX1JYX1FVRVVFX1NUQVQoXCYjMzQ7cGt0c1wmIzM0OywgcV9zdGF0cy5wYWNrZXRzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzg1Olx0SURQRl9SWF9RVUVVRV9TVEFUKFwmIzM0O2J5dGVzXCYjMzQ7LCBxX3N0YXRzLmJ5dGVzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzg2Olx0SURQRl9SWF9RVUVVRV9TVEFUKFwmIzM0O3J4X2dyb19od19wa3RzXCYjMzQ7LCBxX3N0YXRzLnJzY19wa3RzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzg3LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzg5OiNkZWZpbmUgSURQRl9UWF9RVUVVRV9TVEFUU19MRU5cdFx0QVJSQVlfU0laRShpZHBmX2dzdHJpbmdzX3R4X3F1ZXVlX3N0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTA6I2RlZmluZSBJRFBGX1JYX1FVRVVFX1NUQVRTX0xFTlx0XHRBUlJBWV9TSVpFKGlkcGZfZ3N0cmluZ3NfcnhfcXVldWVfc3RhdHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzkyOiNkZWZpbmUgSURQRl9QT1JUX1NUQVQoX25hbWUsIF9zdGF0KSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTM6XHRJRFBGX1NUQVQoc3RydWN0IGlkcGZfdnBvcnQsICBfbmFtZSwgX3N0YXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3BvcnRfc3RhdHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk2Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtY3N1bV9lcnJvcnNcJiMzNDssIHBvcnRfc3RhdHMucnhfaHdfY3N1bV9lcnIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTc6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDtyeC1oc3BsaXRcJiMzNDssIHBvcnRfc3RhdHMucnhfaHNwbGl0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk4Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtaHNwbGl0X2hib1wmIzM0OywgcG9ydF9zdGF0cy5yeF9oc3BsaXRfaGJvKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk5Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtYmFkX2Rlc2NzXCYjMzQ7LCBwb3J0X3N0YXRzLnJ4X2JhZF9kZXNjcyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwMDpcdElEUEZfUE9SVF9TVEFUKFwmIzM0O3R4LXNrYl9kcm9wc1wmIzM0OywgcG9ydF9zdGF0cy50eF9kcm9wcyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwMTpcdElEUEZfUE9SVF9TVEFUKFwmIzM0O3R4LWRtYV9tYXBfZXJyc1wmIzM0OywgcG9ydF9zdGF0cy50eF9kbWFfbWFwX2VycnMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDI6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDt0eC1saW5lYXJpemVkX3BrdHNcJiMzNDssIHBvcnRfc3RhdHMudHhfbGluZWFyaXplKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODAzOlx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7dHgtYnVzeV9ldmVudHNcJiMzNDssIHBvcnRfc3RhdHMudHhfYnVzeSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwNDpcdElEUEZfUE9SVF9TVEFUKFwmIzM0O3J4LXVuaWNhc3RfcGt0c1wmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmljYXN0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA1Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtbXVsdGljYXN0X3BrdHNcJiMzNDssIHBvcnRfc3RhdHMudnBvcnRfc3RhdHMucnhfbXVsdGljYXN0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA2Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtYnJvYWRjYXN0X3BrdHNcJiMzNDssIHBvcnRfc3RhdHMudnBvcnRfc3RhdHMucnhfYnJvYWRjYXN0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA3Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtdW5rbm93bl9wcm90b2NvbFwmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmtub3duX3Byb3RvY29sKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA4Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7dHgtdW5pY2FzdF9wa3RzXCYjMzQ7LCBwb3J0X3N0YXRzLnZwb3J0X3N0YXRzLnR4X3VuaWNhc3QpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDk6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDt0eC1tdWx0aWNhc3RfcGt0c1wmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF9tdWx0aWNhc3QpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTA6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDt0eC1icm9hZGNhc3RfcGt0c1wmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF9icm9hZGNhc3QpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04MTEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTM6I2RlZmluZSBJRFBGX1BPUlRfU1RBVFNfTEVOIEFSUkFZX1NJWkUoaWRwZl9nc3RyaW5nc19wb3J0X3N0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04MTQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz04NzY9c3RhdGljIHZvaWQgaWRwZl9nZXRfc3RhdF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHU4ICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODgyLVx0aWRwZl9hZGRfc3RhdF9zdHJpbmdzKFx1MDAyNmRhdGEsIGlkcGZfZ3N0cmluZ3NfcG9ydF9zdGF0cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODgzOlx0XHRcdCAgICAgIElEUEZfUE9SVF9TVEFUU19MRU4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04ODQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz05MjU9c3RhdGljIGludCBpZHBmX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBzc2V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtOTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo5NDg6XHRyZXR1cm4gSURQRl9QT1JUX1NUQVRTX0xFTiAmIzQzOyAoSURQRl9UWF9RVUVVRV9TVEFUU19MRU4gKiBtYXhfdHhxKSAmIzQzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo5NDk6XHQgICAgICAgKElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOICogbWF4X3J4cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTk1MC19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0xMDEwPXN0YXRpYyB2b2lkIGlkcGZfYWRkX3F1ZXVlX3N0YXRzKHU2NCAqKmRhdGEsIGNvbnN0IHZvaWQgKnEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDE5LVx0aWYgKHR5cGUgPT0gVklSVENITkwyX1FVRVVFX1RZUEVfUlgpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6MTAyMDpcdFx0c2l6ZSA9IElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDIxLVx0XHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfcnhfcXVldWVfc3RhdHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDIzLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6MTAyNDpcdFx0c2l6ZSA9IElEUEZfVFhfUVVFVUVfU1RBVFNfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDI1LVx0XHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfdHhfcXVldWVfc3RhdHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0xMDU0PXN0YXRpYyB2b2lkIGlkcGZfYWRkX2VtcHR5X3F1ZXVlX3N0YXRzKHU2NCAqKmRhdGEsIHUxNiBxdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTEwNTktXHRpZiAocXR5cGUgPT0gVklSVENITkwyX1FVRVVFX1RZUEVfUlgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwNjA6XHRcdHN0YXRzX2xlbiA9IElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDYxLVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzoxMDYyOlx0XHRzdGF0c19sZW4gPSBJRFBGX1RYX1FVRVVFX1NUQVRTX0xFTjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMTA2My1cbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxODoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODE1OAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkludmVzdGlnYXRpbmcgdGhlIElEUEYgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCk9rYXksIEkgbmVlZCB0byB1bmRlcnN0YW5kIHNvbWV0aGluZyBhYm91dCB0aGUgaW5pdGlhbGl6YXRpb24gZmxvdyBmb3IgdGhlIEludGVsIElEUEYgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIGRpcmVjdGx5IHRvIHRoZSBjb3JlIGZpbGVzLiBJJiMzOTtsbCBzdGFydCB3aXRoIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jYC4gVGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtkIGV4cGVjdCB0byBmaW5kIHRoZSBkcml2ZXImIzM5O3MgZW50cnkgcG9pbnRzLCB0aGUgYG1vZHVsZV9pbml0YCBvciBgZHJpdmVyX2luaXRgIGZ1bmN0aW9uLCBhbmQgdGhlIG92ZXJhbGwgc2V0dXAgcm91dGluZS4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgcHJpbWFyeSBpbml0aWFsaXphdGlvbiBsb2dpYzogaG93IHRoZSBkZXZpY2UgaXMgcHJvYmVkLCByZXNvdXJjZXMgYXJlIGFsbG9jYXRlZCwgYW5kIHRoZSBuZXR3b3JraW5nIHN0YWNrIGlzIGludGVncmF0ZWQuCgpGb2xsb3dpbmcgdGhhdCwgSSYjMzk7bGwgZGVmaW5pdGVseSB3YW50IHRvIGNyb3NzLXJlZmVyZW5jZSB3aXRoIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnksIHdoaWNoIGlzIGxvY2F0ZWQgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZ2AuIFRoYXQgY29uZmlndXJhdGlvbiBmaWxlIHdpbGwgc2hvdyBtZSBob3cgdGhpcyBkcml2ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkIHByb2Nlc3MuIElzIGl0IG1vZHVsYXI/IEJ1aWx0LWluPyBXaGF0IGRlcGVuZGVuY2llcyBhcmUgY29udHJvbGxlZCB0aHJvdWdoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucz8gVW5kZXJzdGFuZGluZyB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgd2lsbCBnaXZlIG1lIGEgYnJvYWRlciBwaWN0dXJlIG9mIHdoZW4gYW5kIHdoeSB0aGUgZHJpdmVyIGlzIGFjdHVhbGx5IGNvbXBpbGVkIGFuZCBsb2FkZWQsIGFuZCBob3cgaXQmIzM5O3MgaW50ZWdyYXRlZCB3aXRoIG90aGVyIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhlc2UgZmlsZXMgYXJlIGVzc2VudGlhbCBzdGFydGluZyBwb2ludHMgZm9yIGFueSBkZWVwZXIgZGl2ZSBpbnRvIHRoZSBkcml2ZXImIzM5O3MgaW5uZXIgd29ya2luZ3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjIENvcHlyaWdodCAoQykgMjAyNCBJbnRlbCBDb3Jwb3JhdGlvblxuICAgMzpcdFxuICAgNDpcdGNvbmZpZyBJRFBGXG4gICA1Olx0XHR0cmlzdGF0ZSBcJiMzNDtJbnRlbChSKSBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24gU3VwcG9ydFwmIzM0O1xuICAgNjpcdFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4gICA3Olx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gICA4Olx0XHRzZWxlY3QgRElNTElCXG4gICA5Olx0XHRzZWxlY3QgTElCSUVfQ1BcbiAgMTA6XHRcdHNlbGVjdCBMSUJFVEhfWERQXG4gIDExOlx0XHRoZWxwXG4gIDEyOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIEludGVsKFIpIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvblxuICAxMzpcdFx0ICBkZXZpY2VzLlxuICAxNDpcdFxuICAxNTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXG4gIDE2Olx0XHQgIHdpbGwgYmUgY2FsbGVkIGlkcGYuXG4gIDE3Olx0XG4gIDE4Olx0aWYgSURQRlxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBJRFBGX1NJTkdMRVFcbiAgMjE6XHRcdGJvb2wgXCYjMzQ7aWRwZiBzaW5nbGVxIHN1cHBvcnRcJiMzNDtcbiAgMjI6XHRcdGhlbHBcbiAgMjM6XHRcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBsZWdhY3kgc2luZ2xlIFJ4L1R4IHF1ZXVlcyB3L25vXG4gIDI0Olx0XHQgIGNvbXBsZXRpb24gYW5kIGZpbGwgcXVldWVzLiBPbmx5IGVuYWJsZSBpZiB5b3UgaGF2ZSBoYXJkd2FyZSB3aGljaFxuICAyNTpcdFx0ICB3YW50cyB0byB3b3JrIGluIHRoaXMgbW9kZSBhcyBpdCBpbmNyZWFzZXMgdGhlIGRyaXZlciBzaXplIGFuZCBhZGRzXG4gIDI2Olx0XHQgIHJ1bnRtZSBjaGVja3Mgb24gaG90cGF0aC5cbiAgMjc6XHRcbiAgMjg6XHRlbmRpZiAjIElEUEZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxODoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODg3OAoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipEcml2ZXIgUmVnaXN0cmF0aW9uIERlZXAgRGl2ZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGlzIGRyaXZlciBpbnRlZ3JhdGVzIHdpdGggdGhlIHN5c3RlbS4gTGV0JiMzOTtzIHN0YXJ0IGF0IHRoZSB2ZXJ5IGJlZ2lubmluZywgdHJhY2luZyB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuIEkmIzM5O20gZ29pbmcgdG8gZGlnIGludG8gYGlkcGZfbWFpbi5jYC4gVGhhdCBzaG91bGQgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LCB3aGVyZSB0aGUgZHJpdmVyJiMzOTtzIGNvcmUgaW5pdGlhbGl6YXRpb24gYW5kIHNldHVwIHJvdXRpbmVzIGFyZSBsaWtlbHkgbG9jYXRlZC4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCB0aGUgc3RhbmRhcmQgYG1vZHVsZV9pbml0YCBtYWNybyBvciBzaW1pbGFyLCBwb2ludGluZyBtZSB0b3dhcmRzIHRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIGRyaXZlciB3aXRoIHRoZSByZWxldmFudCBzdWJzeXN0ZW0uIEZyb20gdGhlcmUsIEkmIzM5O2xsIGJlIGFibGUgdG8gZm9sbG93IHRoZSBjYWxscyB0byBzZWUgaG93IHRoZSB2YXJpb3VzIGRldmljZSBzdHJ1Y3R1cmVzIGFyZSBpbml0aWFsaXplZCwgYWxsb2NhdGVkLCBhbmQgdWx0aW1hdGVseSwgaG93IHRoZSBkcml2ZXImIzM5O3Mgb3BlcmF0aW9uYWwgZW50cnkgcG9pbnRzIGFyZSBob29rZWQgaW50byB0aGUgc3lzdGVtLiBLbm93aW5nIHRoZSByZWdpc3RyYXRpb24gZGV0YWlscyBpcyBjcnVjaWFsIHRvIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSBhbmQgb3RoZXIga2VybmVsIGNvbXBvbmVudHMuIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9wY2lfZHJpdmVyfHBjaV9yZWdpc3Rlcl9kcml2ZXJ8aWRwZl9wY2kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM9Mjk9c3RhdGljIGludCBpZHBmX2dldF9kZXZpY2VfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTUzLSAqIEBhZGFwdGVyOiBhZGFwdGVyIHRvIGluaXRpYWxpemVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6NTQ6ICogQGVudDogZW50cnkgaW4gaWRwZl9wY2lfdGJsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTU1LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0yMDc9c3RhdGljIGludCBpZHBmX2NmZ19kZXZpY2Uoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTI0Ni0gKiBAcGRldjogUENJIGRldmljZSBpbmZvcm1hdGlvbiBzdHJ1Y3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6MjQ3OiAqIEBlbnQ6IGVudHJ5IGluIGlkcGZfcGNpX3RibFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0yNDgtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jPTI1MT1zdGF0aWMgaW50IGlkcGZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM2NTovKiBpZHBmX3BjaV90YmwgLSBQQ0kgRGV2IGlkcGYgSUQgVGFibGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzY2LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYzozNjc6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkcGZfcGNpX3RibFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNjgtXHR7IFBDSV9WREVWSUNFKElOVEVMLCBJRFBGX0RFVl9JRF9QRil9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzcyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM3MzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaWRwZl9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0zNzU9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGlkcGZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNzYtXHQubmFtZVx0XHRcdD0gS0JVSUxEX01PRE5BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM3NzpcdC5pZF90YWJsZVx0XHQ9IGlkcGZfcGNpX3RibCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzc4LVx0LnByb2JlXHRcdFx0PSBpZHBmX3Byb2JlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzgyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM4Mzptb2R1bGVfcGNpX2RyaXZlcihpZHBmX2RyaXZlcik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NTkKCQkJCQkJCW91dHB1dDogMTI1CgkJCQkJCQl0aG91Z2h0czogNzY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBpZHBmYCBEcml2ZXImIzM5O3MgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIGBpZHBmYCBkcml2ZXIsIHdoaWNoIGlzIEludGVsJiMzOTtzIFBDSSBkcml2ZXIgZm9yIHRoZWlyIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSAobGlrZSB0aGUgRTIwMDAgb3IgTW91bnQgRXZhbnMpLCBpc24mIzM5O3QgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSGVyZSYjMzk7cyB3aHk6CgpGaXJzdCwgSSYjMzk7dmUgaWRlbnRpZmllZCB0aGUgbW9kaWZpZWQgY29kZTogaXQmIzM5O3Mgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jYCwgc3BlY2lmaWNhbGx5IGluIHRoZSBgaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEoKWAgZnVuY3Rpb24uIFRoZSBtb2RpZmljYXRpb24gSSYjMzk7bSBzZWVpbmcgYWRkcyBjaGVja3MgZm9yIGBrYXNwcmludGZgIGFuZCBmcmVlcyBgbmFtZWAgb24gYHJlcXVlc3RfaXJxYCBmYWlsdXJlLiBUaGlzIGlzIGludm9sdmVkIGluIHZwb3J0IG9wZW4gYW5kIGludGVycnVwdCBhbGxvY2F0aW9uIGZvciB0aGUgYGlkcGZgIGRldmljZS4KCk5vdywgdGhlIGNydWNpYWwgcG9pbnQ6IHRoaXMgYGlkcGZgIGRyaXZlciBpcyBmb3IgKnJlYWwqIGhhcmR3YXJlIOKAkyBhIFNtYXJ0TklDIG9yIElQVS4gSXQmIzM5O3Mgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gSSYjMzk7dmUgdmVyaWZpZWQgdGhpczogaXQmIzM5O3MgcmVnaXN0ZXJlZCBhcyBhIFBDSSBkcml2ZXIgd2l0aCBzcGVjaWZpYyBkZXZpY2UgSURzIChgSURQRl9ERVZfSURfUEZgICgweDE0NTIpIGFuZCBgSURQRl9ERVZfSURfVkZgICgweDE0NWMpKS4gVGhlc2UgYXJlIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBpZGVudGlmaWVycywgd2hpY2ggY29uZmlybXMgaXQuCgpUaGVyZWZvcmUsIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgSSYjMzk7bSB1c2luZywgc2luY2UgdGhlIG1vZGlmaWVkIGNvZGUgaW50ZXJhY3RzIHdpdGggc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIChzcGVjaWZpY2FsbHksIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcyksIGl0IGZhbGxzIHVuZGVyIHRoZSAmIzM0O25vdCB3b3J0aCBmdXp6aW5nJiMzNDsgY2F0ZWdvcnkuIFRoaXMgaXMgZXhwbGljaXRseSBzdGF0ZWQgaW4gc2VjdGlvbiAyIG9mIG15IGd1aWRlbGluZXMuCgpUaGVyZWZvcmUsIG15IGNvbmNsdXNpb25zIGFyZToKCiogICBgV29ydGhGdXp6aW5nID0gZmFsc2VgCiogICBgRm9jdXNTeW1ib2xzID0gW11gCiogICBgRW5hYmxlQ29uZmlncyA9IFtdYAoKVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jIChoYW5kbGluZyBhbGxvY2F0aW9uIGZhaWx1cmUgYW5kIGNsZWFudXAgZm9yIGthc3ByaW50ZiBpbiBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycSkuIFRoZSBpZHBmIGRyaXZlciBpcyBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgSW50ZWwgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIChJUFUvU21hcnROSUMpIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCB0aHVzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzoxOS4zNTk5ODM5NjdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTQxNTQ5NzgxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMgKGhhbmRsaW5nIGFsbG9jYXRpb24gZmFpbHVyZSBhbmQgY2xlYW51cCBmb3Iga2FzcHJpbnRmIGluIGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKS4gVGhlIGlkcGYgZHJpdmVyIGlzIGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBJbnRlbCBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24gKElQVS9TbWFydE5JQykgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIHRodXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MTkuMzU5OTg5ODM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTQ4NTExNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNWQ2ZjIzOGJiMTdmMDhhZDg4NjMxM2ViNmRiYjYwMmVkYjc1YzU4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgU2VwIDUgMTg6MjM6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcXG5pbmRleCAyNGI5MWJlMjU2NzYyLi44NmRlZGY1YzFjMDkzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXFxuQEAgLTQwNjMsMTIgKzQwNjMsMTcgQEAgc3RhdGljIGludCBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycShzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQsXFxuIFxcbiBcXHRcXHRuYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsIFxcXCIlcy0lcy0lcy0lZFxcXCIsIGRydl9uYW1lLCBpZl9uYW1lLFxcbiBcXHRcXHRcXHRcXHQgdmVjX25hbWUsIHZlY3Rvcik7XFxuK1xcdFxcdGlmICghbmFtZSkge1xcbitcXHRcXHRcXHRlcnIgPSAtRU5PTUVNO1xcbitcXHRcXHRcXHRnb3RvIGZyZWVfcV9pcnFzO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRlcnIgPSByZXF1ZXN0X2lycShpcnFfbnVtLCBpZHBmX3Zwb3J0X2ludHJfY2xlYW5fcXVldWVzLCAwLFxcbiBcXHRcXHRcXHRcXHQgIG5hbWUsIHFfdmVjdG9yKTtcXG4gXFx0XFx0aWYgKGVycikge1xcbiBcXHRcXHRcXHRuZXRkZXZfZXJyKHZwb3J0LVxcdTAwM2VuZXRkZXYsXFxuIFxcdFxcdFxcdFxcdCAgIFxcXCJSZXF1ZXN0X2lycSBmYWlsZWQsIGVycm9yOiAlZFxcXFxuXFxcIiwgZXJyKTtcXG4rXFx0XFx0XFx0a2ZyZWUobmFtZSk7XFxuIFxcdFxcdFxcdGdvdG8gZnJlZV9xX2lycXM7XFxuIFxcdFxcdH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDE4OjIzOjE5Ljc1NTU5NDA4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxOTAxOTg2NjYxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE1ZDZmMjM4YmIxN2YwOGFkODg2MzEzZWI2ZGJiNjAyZWRiNzVjNThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IFNlcCA1IDE4OjIzOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcbmluZGV4IDI0YjkxYmUyNTY3NjIuLjg2ZGVkZjVjMWMwOTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG5AQCAtNDA2MywxMiArNDA2MywxNyBAQCBzdGF0aWMgaW50IGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKHN0cnVjdCBpZHBmX3Zwb3J0ICp2cG9ydCxcbiBcbiBcdFx0bmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCBcIiVzLSVzLSVzLSVkXCIsIGRydl9uYW1lLCBpZl9uYW1lLFxuIFx0XHRcdFx0IHZlY19uYW1lLCB2ZWN0b3IpO1xuK1x0XHRpZiAoIW5hbWUpIHtcbitcdFx0XHRlcnIgPSAtRU5PTUVNO1xuK1x0XHRcdGdvdG8gZnJlZV9xX2lycXM7XG4rXHRcdH1cbiBcbiBcdFx0ZXJyID0gcmVxdWVzdF9pcnEoaXJxX251bSwgaWRwZl92cG9ydF9pbnRyX2NsZWFuX3F1ZXVlcywgMCxcbiBcdFx0XHRcdCAgbmFtZSwgcV92ZWN0b3IpO1xuIFx0XHRpZiAoZXJyKSB7XG4gXHRcdFx0bmV0ZGV2X2Vycih2cG9ydC1cdTAwM2VuZXRkZXYsXG4gXHRcdFx0XHQgICBcIlJlcXVlc3RfaXJxIGZhaWxlZCwgZXJyb3I6ICVkXFxuXCIsIGVycik7XG4rXHRcdFx0a2ZyZWUobmFtZSk7XG4gXHRcdFx0Z290byBmcmVlX3FfaXJxcztcbiBcdFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MTkuNzU1NTk2NTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NjAyNTU4OTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEludGVsIElEUEYgRHJpdmVyKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgcGF0Y2ggaXMgYWN0dWFsbHkgY2hhbmdpbmcsIHNvIEknbGwgc3RhcnQgYnkgdGFraW5nIGEgY2xvc2UgbG9vayBhdCB0aGUgcGF0Y2ggaXRzZWxmIGFuZCBwaW5wb2ludCB0aGUgc3BlY2lmaWMgZmlsZXMgaW52b2x2ZWQuIEl0IHNlZW1zIHRoZSBtb2RpZmljYXRpb24gaXMgY2VudGVyZWQgYXJvdW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jYC4gUmlnaHQsIHNvIHRoaXMgaXMgYWJvdXQgdGhlIGBpZHBmYCBkcml2ZXIuXG5cbk5vdywgYSBxdWljayBtZW1vcnkgcmVmcmVzaCBpcyBpbiBvcmRlci4gV2hhdCBleGFjdGx5ICppcyogdGhpcyBgaWRwZmAgZHJpdmVyIGFnYWluPyBJbnRlbCBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24sIHJpZ2h0PyBPa2F5LCB0aGF0IGhlbHBzLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoaXMgaXMgbGlrZWx5IHJlbGF0ZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgc3VzcGljaW9uLCBzbyBsZXQncyBjcm9zcy1yZWZlcmVuY2UgYW5kIGNoZWNrIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHByb2JhYmx5IGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWdgIG9yIGV2ZW4gdGhlIGJyb2FkZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWdgIGRpcmVjdG9yeSDigJMgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIHdoZXRoZXIgd2UncmUgdGFsa2luZyBhYm91dCBJbnRlbCBJUFVzLCBTbWFydE5JQ3MsIEZQR0FzLCBvciBzb21ldGhpbmcgc2ltaWxhci4gQ29uZmlybWluZyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBpcyBjcnVjaWFsIGZvciBwcm9wZXJseSBhc3Nlc3NpbmcgdGhlIGltcGFjdCBhbmQgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB0aGlzIHBhdGNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDEzLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MjYuMzU4MTU5MTU1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2MDIwOTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIklEUEZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWxcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMDg3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfSUNFKSArPSBpY2UvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0lEUEYpICs9IGlkcGYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGUtMjItb2JqLSQoQ09ORklHX0lYRCkgKz0gaXhkL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnLTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjQ6Y29uZmlnIElEUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctNS1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjE4OmlmIElEUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjIwOmNvbmZpZyBJRFBGX1NJTkdMRVFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiaWRwZiBzaW5nbGVxIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjI4OmVuZGlmICMgSURQRlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfSURQRikgKz0gaWRwZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGU9OD1pZHBmLXkgOj0gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL01ha2VmaWxlOjE4OmlkcGYtJChDT05GSUdfSURQRl9TSU5HTEVRKVxcdCs9IGlkcGZfc2luZ2xlcV90eHJ4Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL01ha2VmaWxlLTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0OiNpZm5kZWYgX0lEUEZfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1OiNkZWZpbmUgX0lEUEZfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTI9c3RydWN0IGlkcGZfcnNzX2RhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozMzojZGVmaW5lIElEUEZfTk9fRlJFRV9TTE9UXFx0XFx0MHhmZmZmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzUtLyogRGVmYXVsdCBNYWlsYm94IHNldHRpbmdzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MzY6I2RlZmluZSBJRFBGX05VTV9GSUxURVJTX1BFUl9NU0dcXHQyMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM3OiNkZWZpbmUgSURQRl9OVU1fREZMVF9NQlhfUVxcdFxcdDJcXHQvKiBpbmNsdWRlcyBib3RoIFRYIGFuZCBSWCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM4OiNkZWZpbmUgSURQRl9ERkxUX01CWF9RX0xFTlxcdFxcdDY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzktLyogbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gdHJ5IGJlZm9yZSByZXNldHRpbmcgbWFpbGJveCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwOiNkZWZpbmUgSURQRl9NQl9NQVhfRVJSXFx0XFx0XFx0MjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MTojZGVmaW5lIElEUEZfTlVNX0NIVU5LU19QRVJfTVNHKHN0cnVjdF9zeiwgY2h1bmtfc3opXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQyLVxcdCgoTElCSUVfQ1RMUV9NQVhfQlVGX0xFTiAtIChzdHJ1Y3Rfc3opKSAvIChjaHVua19zeikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDQ6I2RlZmluZSBJRFBGX1dBSVRfRk9SX01BUktFUl9USU1FT1xcdDUwMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ1OiNkZWZpbmUgSURQRl9NQVhfV0FJVFxcdFxcdFxcdDUwMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ3LS8qIGF2YWlsYWJsZSBtZXNzYWdlIGxldmVscyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ4OiNkZWZpbmUgSURQRl9BVkFJTF9ORVRJRl9NIChORVRJRl9NU0dfRFJWIHwgTkVUSUZfTVNHX1BST0JFIHwgTkVUSUZfTVNHX0xJTkspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTA6I2RlZmluZSBJRFBGX0RJTV9QUk9GSUxFX1NMT1RTICA1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTI6I2RlZmluZSBJRFBGX1ZJUlRDSE5MX1ZFUlNJT05fTUFKT1IgVklSVENITkwyX1ZFUlNJT05fTUFKT1JfMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjUzOiNkZWZpbmUgSURQRl9WSVJUQ0hOTF9WRVJTSU9OX01JTk9SIFZJUlRDSE5MMl9WRVJTSU9OX01JTk9SXzBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTYyPXN0cnVjdCBpZHBmX21hY19maWx0ZXIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzAtICogZW51bSBpZHBmX3N0YXRlIC0gU3RhdGUgbWFjaGluZSB0byBoYW5kbGUgYnJpbmcgdXBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MTogKiBAX19JRFBGX1ZFUl9DSEVDSzogTmVnb3RpYXRlIHZpcnRjaG5sIHZlcnNpb25cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MjogKiBAX19JRFBGX0dFVF9DQVBTOiBOZWdvdGlhdGUgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NzM6ICogQF9fSURQRl9JTklUX1NXOiBJbml0IGJhc2VkIG9uIGdpdmVuIGNhcGFiaWxpdGllc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc0OiAqIEBfX0lEUEZfU1RBVEVfTEFTVDogTXVzdCBiZSBsYXN0LCB1c2VkIHRvIGRldGVybWluZSBzaXplXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzUtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NzY9ZW51bSBpZHBmX3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzpcXHRfX0lEUEZfVkVSX0NIRUNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc4OlxcdF9fSURQRl9HRVRfQ0FQUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3OTpcXHRfX0lEUEZfSU5JVF9TVyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4MDpcXHRfX0lEUEZfU1RBVEVfTEFTVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODQtICogZW51bSBpZHBmX2ZsYWdzIC0gSGFyZCByZXNldCBjYXVzZXMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODU6ICogQElEUEZfSFJfRlVOQ19SRVNFVDogSGFyZCByZXNldCB3aGVuIFR4UnggdGltZW91dFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg2OiAqIEBJRFBGX0hSX0RSVl9MT0FEOiBTZXQgb24gZHJpdmVyIGxvYWQgZm9yIGEgY2xlYW4gSFdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NzogKiBASURQRl9IUl9SRVNFVF9JTl9QUk9HOiBSZXNldCBpbiBwcm9ncmVzc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg4OiAqIEBJRFBGX1JFTU9WRV9JTl9QUk9HOiBEcml2ZXIgcmVtb3ZlIGluIHByb2dyZXNzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODk6ICogQElEUEZfTUJfSU5UUl9NT0RFOiBNYWlsYm94IGluIGludGVycnVwdCBtb2RlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTA6ICogQElEUEZfVkNfQ09SRV9JTklUOiB2aXJ0Y2hubCBjb3JlIGhhcyBiZWVuIGluaXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5MTogKiBASURQRl9GTEFHU19OQklUUzogTXVzdCBiZSBsYXN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtOTItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9OTM9ZW51bSBpZHBmX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5NDpcXHRJRFBGX0hSX0ZVTkNfUkVTRVQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTU6XFx0SURQRl9IUl9EUlZfTE9BRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5NjpcXHRJRFBGX0hSX1JFU0VUX0lOX1BST0csXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTc6XFx0SURQRl9SRU1PVkVfSU5fUFJPRyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5ODpcXHRJRFBGX01CX0lOVFJfTU9ERSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5OTpcXHRJRFBGX1ZDX0NPUkVfSU5JVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDA6XFx0SURQRl9GTEFHU19OQklUUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMDEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEwNC0gKiBlbnVtIGlkcGZfY2FwX2ZpZWxkIC0gT2Zmc2V0cyBpbnRvIGNhcGFiaWxpdGllcyBzdHJ1Y3QgZm9yIHNwZWNpZmljIGNhcHNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDU6ICogQElEUEZfQkFTRV9DQVBTOiBnZW5lcmljIGJhc2UgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTA2OiAqIEBJRFBGX0NTVU1fQ0FQUzogY2hlY2tzdW0gb2ZmbG9hZCBjYXBhYmlsaXRpZXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDc6ICogQElEUEZfU0VHX0NBUFM6IHNlZ21lbnRhdGlvbiBvZmZsb2FkIGNhcGFiaWxpdGllc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEwODogKiBASURQRl9SU1NfQ0FQUzogUlNTIG9mZmxvYWQgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTA5OiAqIEBJRFBGX0hTUExJVF9DQVBTOiBIZWFkZXIgc3BsaXQgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTEwOiAqIEBJRFBGX1JTQ19DQVBTOiBSU0Mgb2ZmbG9hZCBjYXBhYmlsaXRpZXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMTE6ICogQElEUEZfT1RIRVJfQ0FQUzogbWlzY2VsbGFuZW91cyBvZmZsb2Fkc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTExMi0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTE3PWVudW0gaWRwZl9jYXBfZmllbGQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjExODpcXHRJRFBGX0JBU0VfQ0FQU1xcdFxcdD0gLTEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTE5OlxcdElEUEZfQ1NVTV9DQVBTXFx0XFx0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTIwLVxcdFxcdFxcdFxcdFxcdCAgIGNzdW1fY2FwcyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTIxOlxcdElEUEZfU0VHX0NBUFNcXHRcXHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjItXFx0XFx0XFx0XFx0XFx0ICAgc2VnX2NhcHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyMzpcXHRJRFBGX1JTU19DQVBTXFx0XFx0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTI0LVxcdFxcdFxcdFxcdFxcdCAgIHJzc19jYXBzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMjU6XFx0SURQRl9IU1BMSVRfQ0FQU1xcdD0gb2Zmc2V0b2Yoc3RydWN0IHZpcnRjaG5sMl9nZXRfY2FwYWJpbGl0aWVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEyNi1cXHRcXHRcXHRcXHRcXHQgICBoc3BsaXRfY2FwcyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTI3OlxcdElEUEZfUlNDX0NBUFNcXHRcXHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjgtXFx0XFx0XFx0XFx0XFx0ICAgcnNjX2NhcHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyOTpcXHRJRFBGX09USEVSX0NBUFNcXHRcXHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMzAtXFx0XFx0XFx0XFx0XFx0ICAgb3RoZXJfY2FwcyksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMzQtICogZW51bSBpZHBmX3Zwb3J0X3N0YXRlIC0gQ3VycmVudCB2cG9ydCBzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzNTogKiBASURQRl9WUE9SVF9VUDogVnBvcnQgaXMgdXBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMzY6ICogQElEUEZfVlBPUlRfU1RBVEVfTkJJVFM6IE11c3QgYmUgbGFzdCwgbnVtYmVyIG9mIHN0YXRlc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEzNy0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xMzg9ZW51bSBpZHBmX3Zwb3J0X3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMzk6XFx0SURQRl9WUE9SVF9VUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxNDA6XFx0SURQRl9WUE9SVF9TVEFURV9OQklUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE0MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTU2PXN0cnVjdCBpZHBmX25ldGRldl9wcml2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE2My1cXHR1MTYgdHhfbWF4X2J1ZnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTY0OlxcdERFQ0xBUkVfQklUTUFQKHN0YXRlLCBJRFBGX1ZQT1JUX1NUQVRFX05CSVRTKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xNjUtXFx0c3RydWN0IHJ0bmxfbGlua19zdGF0czY0IG5ldHN0YXRzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MjAyPXN0cnVjdCBpZHBmX3JlZ19vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIxNDojZGVmaW5lIElEUEZfTU1JT19SRUdfTlVNX1NUQVRJQ1xcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTU6I2RlZmluZSBJRFBGX1BGX01CWF9SRUdJT05fU1pcXHRcXHQ0MDk2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE2OiNkZWZpbmUgSURQRl9QRl9SU1RBVF9SRUdJT05fU1pcXHRcXHQyMDQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE3OiNkZWZpbmUgSURQRl9WRl9NQlhfUkVHSU9OX1NaXFx0XFx0MTAyNDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTg6I2RlZmluZSBJRFBGX1ZGX1JTVEFUX1JFR0lPTl9TWlxcdFxcdDIwNDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yMjY9c3RydWN0IGlkcGZfZGV2X29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMzEtXFx0Lyogc3RhdGljX3JlZ19pbmZvWzBdIGlzIG1haWxib3ggcmVnaW9uLCBzdGF0aWNfcmVnX2luZm9bMV0gaXMgcnN0YXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMzI6XFx0c3RydWN0IHJlc291cmNlIHN0YXRpY19yZWdfaW5mb1tJRFBGX01NSU9fUkVHX05VTV9TVEFUSUNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTIzMy19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjM2LSAqIGVudW0gaWRwZl92cG9ydF9yZXNldF9jYXVzZSAtIFZwb3J0IHNvZnQgcmVzZXQgY2F1c2VzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjM3OiAqIEBJRFBGX1NSX1FfQ0hBTkdFOiBTb2Z0IHJlc2V0IHF1ZXVlIGNoYW5nZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIzODogKiBASURQRl9TUl9RX0RFU0NfQ0hBTkdFOiBTb2Z0IHJlc2V0IGRlc2NyaXB0b3IgY2hhbmdlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjM5OiAqIEBJRFBGX1NSX01UVV9DSEFOR0U6IFNvZnQgcmVzZXQgTVRVIGNoYW5nZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI0MDogKiBASURQRl9TUl9SU0NfQ0hBTkdFOiBTb2Z0IHJlc2V0IFJTQyBjaGFuZ2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNDEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MjQyPWVudW0gaWRwZl92cG9ydF9yZXNldF9jYXVzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjQzOlxcdElEUEZfU1JfUV9DSEFOR0UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjQ0OlxcdElEUEZfU1JfUV9ERVNDX0NIQU5HRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDU6XFx0SURQRl9TUl9NVFVfQ0hBTkdFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI0NjpcXHRJRFBGX1NSX1JTQ19DSEFOR0UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjQ3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNTAtICogZW51bSBpZHBmX3Zwb3J0X2ZsYWdzIC0gVnBvcnQgZmxhZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNTE6ICogQElEUEZfVlBPUlRfREVMX1FVRVVFUzogVG8gc2VuZCBkZWxldGUgcXVldWVzIG1lc3NhZ2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNTI6ICogQElEUEZfVlBPUlRfRkxBR1NfTkJJVFM6IE11c3QgYmUgbGFzdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1My0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yNTQ9ZW51bSBpZHBmX3Zwb3J0X2ZsYWdzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNTU6XFx0SURQRl9WUE9SVF9ERUxfUVVFVUVTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI1NjpcXHRJRFBGX1ZQT1JUX0ZMQUdTX05CSVRTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1Ny19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MzIyPXN0cnVjdCBpZHBmX3FfdmVjX3JzcmMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzQ1LVxcdHUzMlxcdFxcdFxcdHJ4cV9kZXNjX2NvdW50O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM0NjpcXHR1MzJcXHRcXHRcXHRidWZxX2Rlc2NfY291bnRbSURQRl9NQVhfQlVGUVNfUEVSX1JYUV9HUlBdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM0Ny1cXHR1OFxcdFxcdFxcdG51bV9idWZxc19wZXJfcWdycDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTM4MT1zdHJ1Y3QgaWRwZl92cG9ydCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zOTItXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozOTM6XFx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIElEUEZfVlBPUlRfRkxBR1NfTkJJVFMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM5NC1cXHR1MzIgY29tcGxuX2NsZWFuX2J1ZGdldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQwMC1cXHR1OCBkZWZhdWx0X21hY19hZGRyW0VUSF9BTEVOXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MDE6XFx0dTE2IHJ4X2l0cl9wcm9maWxlW0lEUEZfRElNX1BST0ZJTEVfU0xPVFNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwMjpcXHR1MTYgdHhfaXRyX3Byb2ZpbGVbSURQRl9ESU1fUFJPRklMRV9TTE9UU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDAzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDE2LSAqIGVudW0gaWRwZl91c2VyX2ZsYWdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE3OiAqIEBfX0lEUEZfVVNFUl9GTEFHX0hTUExJVDogaGVhZGVyIHNwbGl0IHN0YXRlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE4OiAqIEBfX0lEUEZfUFJPTUlTQ19VQzogVW5pY2FzdCBwcm9taXNjdW91cyBtb2RlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE5OiAqIEBfX0lEUEZfUFJPTUlTQ19NQzogTXVsdGljYXN0IHByb21pc2N1b3VzIG1vZGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjA6ICogQF9fSURQRl9VU0VSX0ZMQUdTX05CSVRTOiBNdXN0IGJlIGxhc3RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MjEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NDIyPWVudW0gaWRwZl91c2VyX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjM6XFx0X19JRFBGX1VTRVJfRkxBR19IU1BMSVQgPSAwVSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjQ6XFx0X19JRFBGX1BST01JU0NfVUMgPSAzMixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjU6XFx0X19JRFBGX1BST01JU0NfTUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQyNzpcXHRfX0lEUEZfVVNFUl9GTEFHU19OQklUUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MjgtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTQ4MD1zdHJ1Y3QgaWRwZl92cG9ydF91c2VyX2NvbmZpZ19kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ4Ny1cXHRzdHJ1Y3QgYnBmX3Byb2cgKnhkcF9wcm9nO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ4ODpcXHRERUNMQVJFX0JJVE1BUCh1c2VyX2ZsYWdzLCBfX0lEUEZfVVNFUl9GTEFHU19OQklUUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDg5LVxcdHN0cnVjdCBsaXN0X2hlYWQgbWFjX2ZpbHRlcl9saXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDk1LSAqIGVudW0gaWRwZl92cG9ydF9jb25maWdfZmxhZ3MgLSBWcG9ydCBjb25maWcgZmxhZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0OTY6ICogQElEUEZfVlBPUlRfUkVHX05FVERFVjogUmVnaXN0ZXIgbmV0ZGV2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk3OiAqIEBJRFBGX1ZQT1JUX1VQX1JFUVVFU1RFRDogU2V0IGlmIGludGVyZmFjZSB1cCBpcyByZXF1ZXN0ZWQgb24gY29yZSByZXNldFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ5ODogKiBASURQRl9WUE9SVF9DT05GSUdfRkxBR1NfTkJJVFM6IE11c3QgYmUgbGFzdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ5OS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01MDA9ZW51bSBpZHBmX3Zwb3J0X2NvbmZpZ19mbGFncyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTAxOlxcdElEUEZfVlBPUlRfUkVHX05FVERFVixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MDI6XFx0SURQRl9WUE9SVF9VUF9SRVFVRVNURUQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTAzOlxcdElEUEZfVlBPUlRfQ09ORklHX0ZMQUdTX05CSVRTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTUwNC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NTMxPXN0cnVjdCBpZHBmX3ZlY3Rvcl9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTU0OC0gKiBwb29sJyBhbmQgb3RoZXIgb25lIGlzIGNhbGxlZCAnZnJlZSBwb29sJy4gIFZlY3RvciBkaXN0cmlidXRpb24gYWxnb3JpdGhtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTQ5OiAqIGdpdmVzIHByaW9yaXR5IHRvIGRlZmF1bHQgdnBvcnRzIGluIGEgd2F5IHRoYXQgYXQgbGVhc3QgSURQRl9NSU5fUV9WRUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NTAtICogdmVjdG9ycyBhcmUgYWxsb2NhdGVkIHBlciBkZWZhdWx0IHZwb3J0IGFuZCB0aGUgcmVsYXRpdmUgdmVjdG9yIGluZGV4ZXMgZm9yXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01OTg9c3RydWN0IGlkcGZfdnBvcnRfY29uZmlnIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTYwMy1cXHRzcGlubG9ja190IGZsb3dfc3RlZXJfbGlzdF9sb2NrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjYwNDpcXHRERUNMQVJFX0JJVE1BUChmbGFncywgSURQRl9WUE9SVF9DT05GSUdfRkxBR1NfTkJJVFMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTYwNS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NjczPXN0cnVjdCBpZHBmX2FkYXB0ZXIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNjgwLVxcdGVudW0gaWRwZl9zdGF0ZSBzdGF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo2ODE6XFx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIElEUEZfRkxBR1NfTkJJVFMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTY4Mi1cXHRzdHJ1Y3QgaWRwZl9yZXNldF9yZWcgcmVzZXRfcmVnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NzQ1PXN0YXRpYyBpbmxpbmUgaW50IGlkcGZfaXNfcXVldWVfbW9kZWxfc3BsaXQodTE2IHFfbW9kZWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NDc6XFx0cmV0dXJuICFJU19FTkFCTEVEKENPTkZJR19JRFBGX1NJTkdMRVEpIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ4LVxcdCAgICAgICBxX21vZGVsID09IFZJUlRDSE5MMl9RVUVVRV9NT0RFTF9TUExJVDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTc3MD1zdGF0aWMgaW5saW5lIGJvb2wgaWRwZl9pc19yZG1hX2NhcF9lbmEoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc3MjpcXHRyZXR1cm4gaWRwZl9pc19jYXBfZW5hKGFkYXB0ZXIsIElEUEZfT1RIRVJfQ0FQUywgVklSVENITkwyX0NBUF9SRE1BKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzU6I2RlZmluZSBJRFBGX0NBUF9SU1MgKFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzYtXFx0VklSVENITkwyX0ZMT1dfSVBWNF9UQ1BcXHRcXHR8XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc4NTojZGVmaW5lIElEUEZfQ0FQX1JTQyAoXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc4Ni1cXHRWSVJUQ0hOTDJfQ0FQX1JTQ19JUFY0X1RDUFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzg5OiNkZWZpbmUgSURQRl9DQVBfSFNQTElUXFx0KFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03OTAtXFx0VklSVENITkwyX0NBUF9SWF9IU1BMSVRfQVRfTDRWNFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NzkzOiNkZWZpbmUgSURQRl9DQVBfVFhfQ1NVTV9MNFY0IChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk0LVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY0X1RDUFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03OTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzk3OiNkZWZpbmUgSURQRl9DQVBfVFhfQ1NVTV9MNFY2IChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk4LVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY2X1RDUFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODAxOiNkZWZpbmUgSURQRl9DQVBfUlhfQ1NVTSAoXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTgwMi1cXHRWSVJUQ0hOTDJfQ0FQX1JYX0NTVU1fTDNfSVBWNFxcdFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODA4OiNkZWZpbmUgSURQRl9DQVBfVFhfU0NUUF9DU1VNIChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODA5LVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY0X1NDVFBcXHR8XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjgxMjojZGVmaW5lIElEUEZfQ0FQX1RVTk5FTF9UWF9DU1VNIChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODEzLVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MM19TSU5HTEVfVFVOTkVMXFx0fFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTg2Nz1zdGF0aWMgaW5saW5lIHU4IGlkcGZfZ2V0X21pbl90eF9wa3RfbGVuKHN0cnVjdCBpZHBmX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODcxOlxcdHJldHVybiBwa3RfbGVuID8gcGt0X2xlbiA6IElEUEZfVFhfTUlOX1BLVF9MRU47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODcyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTg5Nj1zdGF0aWMgaW5saW5lIGJvb2wgaWRwZl9pc19yZXNldF9pbl9wcm9nKHN0cnVjdCBpZHBmX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4OTg6XFx0cmV0dXJuICh0ZXN0X2JpdChJRFBGX0hSX1JFU0VUX0lOX1BST0csIGFkYXB0ZXItXFx1MDAzZWZsYWdzKSB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg5OTpcXHRcXHR0ZXN0X2JpdChJRFBGX0hSX0ZVTkNfUkVTRVQsIGFkYXB0ZXItXFx1MDAzZWZsYWdzKSB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjkwMDpcXHRcXHR0ZXN0X2JpdChJRFBGX0hSX0RSVl9MT0FELCBhZGFwdGVyLVxcdTAwM2VmbGFncykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTkwMS19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xMDEyPWludCBpZHBmX2FkZF9kZWxfZnN0ZWVyX2ZpbHRlcnMoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEwMTQtXFx0XFx0XFx0XFx0ZW51bSB2aXJ0Y2hubDJfb3Agb3Bjb2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDE1OiNlbmRpZiAvKiAhX0lEUEZfSF8gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzo5OiNkZWZpbmUgSURQRl9QRl9JVFJfSURYX1NQQUNJTkdcXHRcXHQweDRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM9NjM9c3RhdGljIGludCBpZHBmX2ludHJfcmVnX2luaXQoc3RydWN0IGlkcGZfdnBvcnQgKnZwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTg4LVxcdFxcdHN0cnVjdCBpZHBmX3FfdmVjdG9yICpxX3ZlY3RvciA9IFxcdTAwMjZyc3JjLVxcdTAwM2VxX3ZlY3RvcnNbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjg5OlxcdFxcdHUxNiB2ZWNfaWQgPSByc3JjLVxcdTAwM2VxX3ZlY3Rvcl9pZHhzW2ldIC0gSURQRl9NQlhfUV9WRUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTkwLVxcdFxcdHN0cnVjdCBpZHBmX2ludHJfcmVnICppbnRyID0gXFx1MDAyNnFfdmVjdG9yLVxcdTAwM2VpbnRyX3JlZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEwNTpcXHRcXHRzcGFjaW5nID0gSURQRl9JVFJfSURYX1NQQUNJTkcocmVnLVxcdTAwM2VpdHJuX2luZGV4X3NwYWNpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEwNjpcXHRcXHRcXHRcXHRcXHQgICAgICAgSURQRl9QRl9JVFJfSURYX1NQQUNJTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMDctXFx0XFx0cnhfaXRyID0gUEZfR0xJTlRfSVRSX0FERFIoVklSVENITkwyX0lUUl9JRFhfMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjExNzpcXHR2YWwgPSByZWdfdmFsc1tyc3JjLVxcdTAwM2VxX3ZlY3Rvcl9pZHhzW2ldIC0gSURQRl9NQlhfUV9WRUNdLmR5bl9jdGxfcmVnO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMTgtXFx0cnNyYy1cXHUwMDNlbm9pcnFfZHluX2N0bCA9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTIxLVxcdHZhbCA9IFBGX0dMSU5UX0RZTl9DVExfV0JfT05fSVRSX00gfCBQRl9HTElOVF9EWU5fQ1RMX0lOVEVOQV9NU0tfTSB8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEyMjpcXHQgICAgICBGSUVMRF9QUkVQKFBGX0dMSU5UX0RZTl9DVExfSVRSX0lORFhfTSwgSURQRl9OT19JVFJfVVBEQVRFX0lEWCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTEyMy1cXHRyc3JjLVxcdTAwM2Vub2lycV9keW5fY3RsX2VuYSA9IHZhbDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYz0xOTk9dm9pZCBpZHBmX2Rldl9vcHNfaW5pdChzdHJ1Y3QgaWRwZl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTIwNS1cXHRyZXNvdXJjZV9zZXRfcmFuZ2UoXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWRldl9vcHMuc3RhdGljX3JlZ19pbmZvWzBdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoyMDY6XFx0XFx0XFx0ICAgUEZfRldfQkFTRSwgSURQRl9QRl9NQlhfUkVHSU9OX1NaKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA3LVxcdHJlc291cmNlX3NldF9yYW5nZShcXHUwMDI2YWRhcHRlci1cXHUwMDNlZGV2X29wcy5zdGF0aWNfcmVnX2luZm9bMV0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjIwODpcXHRcXHRcXHQgICBQRkdFTl9SVFJJRywgSURQRl9QRl9SU1RBVF9SRUdJT05fU1opO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0yMDktfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oLTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oOjQ6I2lmbmRlZiBfSURQRl9ERVZJRFNfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6NTojZGVmaW5lIF9JRFBGX0RFVklEU19IX1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaC02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaDo3OiNkZWZpbmUgSURQRl9ERVZfSURfUEZcXHRcXHRcXHQweDE0NTJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6ODojZGVmaW5lIElEUEZfREVWX0lEX1ZGXFx0XFx0XFx0MHgxNDVDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oOjEwOiNlbmRpZiAvKiBfSURQRl9ERVZJRFNfSF8gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9MzY2PXN0YXRpYyB1MzIgaWRwZl9nZXRfcnhmaF9rZXlfc2l6ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzozNzE6XFx0aWYgKCFpZHBmX2lzX2NhcF9lbmFfYWxsKG5wLVxcdTAwM2VhZGFwdGVyLCBJRFBGX1JTU19DQVBTLCBJRFBGX0NBUF9SU1MpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMzcyLVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0zODU9c3RhdGljIHUzMiBpZHBmX2dldF9yeGZoX2luZGlyX3NpemUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMzg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6MzkwOlxcdGlmICghaWRwZl9pc19jYXBfZW5hX2FsbChucC1cXHUwMDNlYWRhcHRlciwgSURQRl9SU1NfQ0FQUywgSURQRl9DQVBfUlNTKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTM5MS1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDA4PXN0YXRpYyBpbnQgaWRwZl9nZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0MjQ6XFx0aWYgKCFpZHBmX2lzX2NhcF9lbmFfYWxsKGFkYXB0ZXIsIElEUEZfUlNTX0NBUFMsIElEUEZfQ0FQX1JTUykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTQyNS1cXHRcXHRlcnIgPSAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDU3PXN0YXRpYyBpbnQgaWRwZl9zZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0NzM6XFx0aWYgKCFpZHBmX2lzX2NhcF9lbmFfYWxsKGFkYXB0ZXIsIElEUEZfUlNTX0NBUFMsIElEUEZfQ0FQX1JTUykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTQ3NC1cXHRcXHRlcnIgPSAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NDk0OlxcdGlmICh0ZXN0X2JpdChJRFBGX1ZQT1JUX1VQLCBucC1cXHUwMDNlc3RhdGUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDk1LVxcdFxcdGVyciA9IGlkcGZfY29uZmlnX3Jzcyh2cG9ydCwgcnNzX2RhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz01MTE9c3RhdGljIHZvaWQgaWRwZl9nZXRfY2hhbm5lbHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNTMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NTMyOlxcdGNoLVxcdTAwM2VtYXhfb3RoZXIgPSBJRFBGX01BWF9NQlhRO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NTMzOlxcdGNoLVxcdTAwM2VvdGhlcl9jb3VudCA9IElEUEZfTUFYX01CWFE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy01MzQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTU0OD1zdGF0aWMgaW50IGlkcGZfc2V0X2NoYW5uZWxzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTYwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjYwMTpcXHRlcnIgPSBpZHBmX2luaXRpYXRlX3NvZnRfcmVzZXQodnBvcnQsIElEUEZfU1JfUV9DSEFOR0UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjAyLVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NjI0PXN0YXRpYyB2b2lkIGlkcGZfZ2V0X3JpbmdwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2MzQ6XFx0cmluZy1cXHUwMDNlcnhfbWF4X3BlbmRpbmcgPSBJRFBGX01BWF9SWFFfREVTQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjYzNTpcXHRyaW5nLVxcdTAwM2V0eF9tYXhfcGVuZGluZyA9IElEUEZfTUFYX1RYUV9ERVNDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjM2LVxcdHJpbmctXFx1MDAzZXJ4X3BlbmRpbmcgPSB2cG9ydC1cXHUwMDNlZGZsdF9xdl9yc3JjLnJ4cV9kZXNjX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz02NTQ9c3RhdGljIGludCBpZHBmX3NldF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjcxOlxcdGlmIChyaW5nLVxcdTAwM2V0eF9wZW5kaW5nIFxcdTAwM2MgSURQRl9NSU5fVFhRX0RFU0MpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY3Mi1cXHRcXHRuZXRkZXZfZXJyKG5ldGRldiwgXFxcIkRlc2NyaXB0b3JzIHJlcXVlc3RlZCAoVHg6ICV1KSBpcyBsZXNzIHRoYW4gbWluIHN1cHBvcnRlZCAoJXUpXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjczLVxcdFxcdFxcdCAgIHJpbmctXFx1MDAzZXR4X3BlbmRpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2NzQ6XFx0XFx0XFx0ICAgSURQRl9NSU5fVFhRX0RFU0MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjc1LVxcdFxcdGVyciA9IC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY3OTpcXHRpZiAocmluZy1cXHUwMDNlcnhfcGVuZGluZyBcXHUwMDNjIElEUEZfTUlOX1JYUV9ERVNDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODAtXFx0XFx0bmV0ZGV2X2VycihuZXRkZXYsIFxcXCJEZXNjcmlwdG9ycyByZXF1ZXN0ZWQgKFJ4OiAldSkgaXMgbGVzcyB0aGFuIG1pbiBzdXBwb3J0ZWQgKCV1KVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY4MS1cXHRcXHRcXHQgICByaW5nLVxcdTAwM2VyeF9wZW5kaW5nLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjgyOlxcdFxcdFxcdCAgIElEUEZfTUlOX1JYUV9ERVNDKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY4My1cXHRcXHRlcnIgPSAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2ODc6XFx0bmV3X3J4X2NvdW50ID0gQUxJR04ocmluZy1cXHUwMDNlcnhfcGVuZGluZywgSURQRl9SRVFfUlhRX0RFU0NfTVVMVElQTEUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjg4LVxcdGlmIChuZXdfcnhfY291bnQgIT0gcmluZy1cXHUwMDNlcnhfcGVuZGluZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjkyOlxcdG5ld190eF9jb3VudCA9IEFMSUdOKHJpbmctXFx1MDAzZXR4X3BlbmRpbmcsIElEUEZfUkVRX0RFU0NfTVVMVElQTEUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjkzLVxcdGlmIChuZXdfdHhfY291bnQgIT0gcmluZy1cXHUwMDNldHhfcGVuZGluZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzE5LVxcdFxcdHJzcmMtXFx1MDAzZWJ1ZnFfZGVzY19jb3VudFtpXSA9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3MjA6XFx0XFx0XFx0SURQRl9SWF9CVUZRX0RFU0NfQ09VTlQobmV3X3J4X2NvdW50LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzIxLVxcdFxcdFxcdFxcdFxcdFxcdHJzcmMtXFx1MDAzZW51bV9idWZxc19wZXJfcWdycCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03MjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3MjM6XFx0ZXJyID0gaWRwZl9pbml0aWF0ZV9zb2Z0X3Jlc2V0KHZwb3J0LCBJRFBGX1NSX1FfREVTQ19DSEFOR0UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzI0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03MzgtICogSXQgZGVmaW5lcyBhIHN0YXRpc3RpYyBhcyBvZmZzZXQgZnJvbSBhIGNvbW1vbiBiYXNlIHBvaW50ZXIuIFN0YXRzIHNob3VsZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzM5OiAqIGJlIGRlZmluZWQgaW4gY29uc3RhbnQgYXJyYXlzIHVzaW5nIHRoZSBJRFBGX1NUQVQgbWFjcm8sIHdpdGggZXZlcnkgZWxlbWVudFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzQwLSAqIG9mIHRoZSBhcnJheSB1c2luZyB0aGUgc2FtZSBfdHlwZSBmb3IgY2FsY3VsYXRpbmcgdGhlIHNpemVvZl9zdGF0IGFuZFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz03NTM9c3RydWN0IGlkcGZfc3RhdHMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03NjItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3NjM6I2RlZmluZSBJRFBGX1NUQVQoX3R5cGUsIF9uYW1lLCBfc3RhdCkgeyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03NjQtXFx0LnN0YXRfc3RyaW5nID0gX25hbWUsIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzY5LS8qIEhlbHBlciBtYWNyb3MgZm9yIGRlZmluaW5nIHNvbWUgc3RhdGlzdGljcyByZWxhdGVkIHRvIHF1ZXVlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzcwOiNkZWZpbmUgSURQRl9SWF9RVUVVRV9TVEFUKF9uYW1lLCBfc3RhdCkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzcxOlxcdElEUEZfU1RBVChzdHJ1Y3QgaWRwZl9yeF9xdWV1ZSwgX25hbWUsIF9zdGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzcyOiNkZWZpbmUgSURQRl9UWF9RVUVVRV9TVEFUKF9uYW1lLCBfc3RhdCkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzczOlxcdElEUEZfU1RBVChzdHJ1Y3QgaWRwZl90eF9xdWV1ZSwgX25hbWUsIF9zdGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzc0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz03NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZHBmX3N0YXRzIGlkcGZfZ3N0cmluZ3NfdHhfcXVldWVfc3RhdHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3NzpcXHRJRFBGX1RYX1FVRVVFX1NUQVQoXFxcInBrdHNcXFwiLCBxX3N0YXRzLnBhY2tldHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzc4OlxcdElEUEZfVFhfUVVFVUVfU1RBVChcXFwiYnl0ZXNcXFwiLCBxX3N0YXRzLmJ5dGVzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3OTpcXHRJRFBGX1RYX1FVRVVFX1NUQVQoXFxcImxzb19wa3RzXFxcIiwgcV9zdGF0cy5sc29fcGt0cyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03ODAtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NzgzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3J4X3F1ZXVlX3N0YXRzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODQ6XFx0SURQRl9SWF9RVUVVRV9TVEFUKFxcXCJwa3RzXFxcIiwgcV9zdGF0cy5wYWNrZXRzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc4NTpcXHRJRFBGX1JYX1FVRVVFX1NUQVQoXFxcImJ5dGVzXFxcIiwgcV9zdGF0cy5ieXRlcyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODY6XFx0SURQRl9SWF9RVUVVRV9TVEFUKFxcXCJyeF9ncm9faHdfcGt0c1xcXCIsIHFfc3RhdHMucnNjX3BrdHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzg3LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODk6I2RlZmluZSBJRFBGX1RYX1FVRVVFX1NUQVRTX0xFTlxcdFxcdEFSUkFZX1NJWkUoaWRwZl9nc3RyaW5nc190eF9xdWV1ZV9zdGF0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5MDojZGVmaW5lIElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOXFx0XFx0QVJSQVlfU0laRShpZHBmX2dzdHJpbmdzX3J4X3F1ZXVlX3N0YXRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzkyOiNkZWZpbmUgSURQRl9QT1JUX1NUQVQoX25hbWUsIF9zdGF0KSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTM6XFx0SURQRl9TVEFUKHN0cnVjdCBpZHBmX3Zwb3J0LCAgX25hbWUsIF9zdGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3BvcnRfc3RhdHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5NjpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtY3N1bV9lcnJvcnNcXFwiLCBwb3J0X3N0YXRzLnJ4X2h3X2NzdW1fZXJyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5NzpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtaHNwbGl0XFxcIiwgcG9ydF9zdGF0cy5yeF9oc3BsaXQpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk4OlxcdElEUEZfUE9SVF9TVEFUKFxcXCJyeC1oc3BsaXRfaGJvXFxcIiwgcG9ydF9zdGF0cy5yeF9oc3BsaXRfaGJvKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5OTpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtYmFkX2Rlc2NzXFxcIiwgcG9ydF9zdGF0cy5yeF9iYWRfZGVzY3MpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODAwOlxcdElEUEZfUE9SVF9TVEFUKFxcXCJ0eC1za2JfZHJvcHNcXFwiLCBwb3J0X3N0YXRzLnR4X2Ryb3BzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwMTpcXHRJRFBGX1BPUlRfU1RBVChcXFwidHgtZG1hX21hcF9lcnJzXFxcIiwgcG9ydF9zdGF0cy50eF9kbWFfbWFwX2VycnMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODAyOlxcdElEUEZfUE9SVF9TVEFUKFxcXCJ0eC1saW5lYXJpemVkX3BrdHNcXFwiLCBwb3J0X3N0YXRzLnR4X2xpbmVhcml6ZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDM6XFx0SURQRl9QT1JUX1NUQVQoXFxcInR4LWJ1c3lfZXZlbnRzXFxcIiwgcG9ydF9zdGF0cy50eF9idXN5KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwNDpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtdW5pY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmljYXN0KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwNTpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtbXVsdGljYXN0X3BrdHNcXFwiLCBwb3J0X3N0YXRzLnZwb3J0X3N0YXRzLnJ4X211bHRpY2FzdCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDY6XFx0SURQRl9QT1JUX1NUQVQoXFxcInJ4LWJyb2FkY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF9icm9hZGNhc3QpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA3OlxcdElEUEZfUE9SVF9TVEFUKFxcXCJyeC11bmtub3duX3Byb3RvY29sXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmtub3duX3Byb3RvY29sKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwODpcXHRJRFBGX1BPUlRfU1RBVChcXFwidHgtdW5pY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF91bmljYXN0KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwOTpcXHRJRFBGX1BPUlRfU1RBVChcXFwidHgtbXVsdGljYXN0X3BrdHNcXFwiLCBwb3J0X3N0YXRzLnZwb3J0X3N0YXRzLnR4X211bHRpY2FzdCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTA6XFx0SURQRl9QT1JUX1NUQVQoXFxcInR4LWJyb2FkY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF9icm9hZGNhc3QpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODExLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTM6I2RlZmluZSBJRFBGX1BPUlRfU1RBVFNfTEVOIEFSUkFZX1NJWkUoaWRwZl9nc3RyaW5nc19wb3J0X3N0YXRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODE0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz04NzY9c3RhdGljIHZvaWQgaWRwZl9nZXRfc3RhdF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHU4ICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04ODItXFx0aWRwZl9hZGRfc3RhdF9zdHJpbmdzKFxcdTAwMjZkYXRhLCBpZHBmX2dzdHJpbmdzX3BvcnRfc3RhdHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4ODM6XFx0XFx0XFx0ICAgICAgSURQRl9QT1JUX1NUQVRTX0xFTik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04ODQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTkyNT1zdGF0aWMgaW50IGlkcGZfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IHNzZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTk0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjk0ODpcXHRyZXR1cm4gSURQRl9QT1JUX1NUQVRTX0xFTiArIChJRFBGX1RYX1FVRVVFX1NUQVRTX0xFTiAqIG1heF90eHEpICtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjk0OTpcXHQgICAgICAgKElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOICogbWF4X3J4cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy05NTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0xMDEwPXN0YXRpYyB2b2lkIGlkcGZfYWRkX3F1ZXVlX3N0YXRzKHU2NCAqKmRhdGEsIGNvbnN0IHZvaWQgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTEwMTktXFx0aWYgKHR5cGUgPT0gVklSVENITkwyX1FVRVVFX1RZUEVfUlgpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwMjA6XFx0XFx0c2l6ZSA9IElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMTAyMS1cXHRcXHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfcnhfcXVldWVfc3RhdHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTEwMjMtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwMjQ6XFx0XFx0c2l6ZSA9IElEUEZfVFhfUVVFVUVfU1RBVFNfTEVOO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMTAyNS1cXHRcXHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfdHhfcXVldWVfc3RhdHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTEwNTQ9c3RhdGljIHZvaWQgaWRwZl9hZGRfZW1wdHlfcXVldWVfc3RhdHModTY0ICoqZGF0YSwgdTE2IHF0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDU5LVxcdGlmIChxdHlwZSA9PSBWSVJUQ0hOTDJfUVVFVUVfVFlQRV9SWClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwNjA6XFx0XFx0c3RhdHNfbGVuID0gSURQRl9SWF9RVUVVRV9TVEFUU19MRU47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDYxLVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwNjI6XFx0XFx0c3RhdHNfbGVuID0gSURQRl9UWF9RVUVVRV9TVEFUU19MRU47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDYzLVxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDE4OjIzOjI2LjQyNDE4NjM4MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIxOTM4MzYzOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIElEUEYgRHJpdmVyIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgc29tZXRoaW5nIGFib3V0IHRoZSBpbml0aWFsaXphdGlvbiBmbG93IGZvciB0aGUgSW50ZWwgSURQRiBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gZGlyZWN0bHkgdG8gdGhlIGNvcmUgZmlsZXMuIEknbGwgc3RhcnQgd2l0aCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uY2AuIFRoYXQncyB3aGVyZSBJJ2QgZXhwZWN0IHRvIGZpbmQgdGhlIGRyaXZlcidzIGVudHJ5IHBvaW50cywgdGhlIGBtb2R1bGVfaW5pdGAgb3IgYGRyaXZlcl9pbml0YCBmdW5jdGlvbiwgYW5kIHRoZSBvdmVyYWxsIHNldHVwIHJvdXRpbmUuIEknbSBsb29raW5nIGZvciB0aGUgcHJpbWFyeSBpbml0aWFsaXphdGlvbiBsb2dpYzogaG93IHRoZSBkZXZpY2UgaXMgcHJvYmVkLCByZXNvdXJjZXMgYXJlIGFsbG9jYXRlZCwgYW5kIHRoZSBuZXR3b3JraW5nIHN0YWNrIGlzIGludGVncmF0ZWQuXG5cbkZvbGxvd2luZyB0aGF0LCBJJ2xsIGRlZmluaXRlbHkgd2FudCB0byBjcm9zcy1yZWZlcmVuY2Ugd2l0aCB0aGUgYEtjb25maWdgIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LCB3aGljaCBpcyBsb2NhdGVkIGF0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWdgLiBUaGF0IGNvbmZpZ3VyYXRpb24gZmlsZSB3aWxsIHNob3cgbWUgaG93IHRoaXMgZHJpdmVyIGlzIGluY2x1ZGVkIGluIHRoZSBidWlsZCBwcm9jZXNzLiBJcyBpdCBtb2R1bGFyPyBCdWlsdC1pbj8gV2hhdCBkZXBlbmRlbmNpZXMgYXJlIGNvbnRyb2xsZWQgdGhyb3VnaCBjb25maWd1cmF0aW9uIG9wdGlvbnM/IFVuZGVyc3RhbmRpbmcgdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIHdpbGwgZ2l2ZSBtZSBhIGJyb2FkZXIgcGljdHVyZSBvZiB3aGVuIGFuZCB3aHkgdGhlIGRyaXZlciBpcyBhY3R1YWxseSBjb21waWxlZCBhbmQgbG9hZGVkLCBhbmQgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoIG90aGVyIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhlc2UgZmlsZXMgYXJlIGVzc2VudGlhbCBzdGFydGluZyBwb2ludHMgZm9yIGFueSBkZWVwZXIgZGl2ZSBpbnRvIHRoZSBkcml2ZXIncyBpbm5lciB3b3JraW5ncy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTgxNTgsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzoyOC42MTgwMjU4ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDM5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdCMgQ29weXJpZ2h0IChDKSAyMDI0IEludGVsIENvcnBvcmF0aW9uXFxuICAgMzpcXHRcXG4gICA0OlxcdGNvbmZpZyBJRFBGXFxuICAgNTpcXHRcXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIFN1cHBvcnRcXFwiXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIFBDSV9NU0lcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gICA4OlxcdFxcdHNlbGVjdCBESU1MSUJcXG4gICA5OlxcdFxcdHNlbGVjdCBMSUJJRV9DUFxcbiAgMTA6XFx0XFx0c2VsZWN0IExJQkVUSF9YRFBcXG4gIDExOlxcdFxcdGhlbHBcXG4gIDEyOlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgSW50ZWwoUikgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uXFxuICAxMzpcXHRcXHQgIGRldmljZXMuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4gVGhlIG1vZHVsZVxcbiAgMTY6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBpZHBmLlxcbiAgMTc6XFx0XFxuICAxODpcXHRpZiBJRFBGXFxuICAxOTpcXHRcXG4gIDIwOlxcdGNvbmZpZyBJRFBGX1NJTkdMRVFcXG4gIDIxOlxcdFxcdGJvb2wgXFxcImlkcGYgc2luZ2xlcSBzdXBwb3J0XFxcIlxcbiAgMjI6XFx0XFx0aGVscFxcbiAgMjM6XFx0XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIGxlZ2FjeSBzaW5nbGUgUngvVHggcXVldWVzIHcvbm9cXG4gIDI0OlxcdFxcdCAgY29tcGxldGlvbiBhbmQgZmlsbCBxdWV1ZXMuIE9ubHkgZW5hYmxlIGlmIHlvdSBoYXZlIGhhcmR3YXJlIHdoaWNoXFxuICAyNTpcXHRcXHQgIHdhbnRzIHRvIHdvcmsgaW4gdGhpcyBtb2RlIGFzIGl0IGluY3JlYXNlcyB0aGUgZHJpdmVyIHNpemUgYW5kIGFkZHNcXG4gIDI2OlxcdFxcdCAgcnVudG1lIGNoZWNrcyBvbiBob3RwYXRoLlxcbiAgMjc6XFx0XFxuICAyODpcXHRlbmRpZiAjIElEUEZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MjguNjE4MDkyNzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMTc1Nzk5MzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipEcml2ZXIgUmVnaXN0cmF0aW9uIERlZXAgRGl2ZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgaG93IHRoaXMgZHJpdmVyIGludGVncmF0ZXMgd2l0aCB0aGUgc3lzdGVtLiBMZXQncyBzdGFydCBhdCB0aGUgdmVyeSBiZWdpbm5pbmcsIHRyYWNpbmcgdGhlIHJlZ2lzdHJhdGlvbiBwcm9jZXNzLiBJJ20gZ29pbmcgdG8gZGlnIGludG8gYGlkcGZfbWFpbi5jYC4gVGhhdCBzaG91bGQgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LCB3aGVyZSB0aGUgZHJpdmVyJ3MgY29yZSBpbml0aWFsaXphdGlvbiBhbmQgc2V0dXAgcm91dGluZXMgYXJlIGxpa2VseSBsb2NhdGVkLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgdGhlIHN0YW5kYXJkIGBtb2R1bGVfaW5pdGAgbWFjcm8gb3Igc2ltaWxhciwgcG9pbnRpbmcgbWUgdG93YXJkcyB0aGUgZnVuY3Rpb24gcmVzcG9uc2libGUgZm9yIHJlZ2lzdGVyaW5nIHRoZSBkcml2ZXIgd2l0aCB0aGUgcmVsZXZhbnQgc3Vic3lzdGVtLiBGcm9tIHRoZXJlLCBJJ2xsIGJlIGFibGUgdG8gZm9sbG93IHRoZSBjYWxscyB0byBzZWUgaG93IHRoZSB2YXJpb3VzIGRldmljZSBzdHJ1Y3R1cmVzIGFyZSBpbml0aWFsaXplZCwgYWxsb2NhdGVkLCBhbmQgdWx0aW1hdGVseSwgaG93IHRoZSBkcml2ZXIncyBvcGVyYXRpb25hbCBlbnRyeSBwb2ludHMgYXJlIGhvb2tlZCBpbnRvIHRoZSBzeXN0ZW0uIEtub3dpbmcgdGhlIHJlZ2lzdHJhdGlvbiBkZXRhaWxzIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhpcyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlIGFuZCBvdGhlciBrZXJuZWwgY29tcG9uZW50cy4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODc4LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzozMC43OTM4OTYzOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQzNDgyNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlcnxpZHBmX3BjaVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM9Mjk9c3RhdGljIGludCBpZHBmX2dldF9kZXZpY2VfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtNTMtICogQGFkYXB0ZXI6IGFkYXB0ZXIgdG8gaW5pdGlhbGl6ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6NTQ6ICogQGVudDogZW50cnkgaW4gaWRwZl9wY2lfdGJsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy01NS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0yMDc9c3RhdGljIGludCBpZHBmX2NmZ19kZXZpY2Uoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMjQ2LSAqIEBwZGV2OiBQQ0kgZGV2aWNlIGluZm9ybWF0aW9uIHN0cnVjdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6MjQ3OiAqIEBlbnQ6IGVudHJ5IGluIGlkcGZfcGNpX3RibFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMjQ4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jPTI1MT1zdGF0aWMgaW50IGlkcGZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM2NTovKiBpZHBmX3BjaV90YmwgLSBQQ0kgRGV2IGlkcGYgSUQgVGFibGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM2Ni0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM2NzpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaWRwZl9wY2lfdGJsW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNjgtXFx0eyBQQ0lfVkRFVklDRShJTlRFTCwgSURQRl9ERVZfSURfUEYpfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzcyLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYzozNzM6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGlkcGZfcGNpX3RibCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0zNzU9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGlkcGZfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzc2LVxcdC5uYW1lXFx0XFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM3NzpcXHQuaWRfdGFibGVcXHRcXHQ9IGlkcGZfcGNpX3RibCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM3OC1cXHQucHJvYmVcXHRcXHRcXHQ9IGlkcGZfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM4Mi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6MzgzOm1vZHVsZV9wY2lfZHJpdmVyKGlkcGZfZHJpdmVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MzAuODk4MjUwNDU1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Nzg3NzE2NDE5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgaWRwZmAgRHJpdmVyJ3MgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBgaWRwZmAgZHJpdmVyLCB3aGljaCBpcyBJbnRlbCdzIFBDSSBkcml2ZXIgZm9yIHRoZWlyIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSAobGlrZSB0aGUgRTIwMDAgb3IgTW91bnQgRXZhbnMpLCBpc24ndCBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBIZXJlJ3Mgd2h5OlxuXG5GaXJzdCwgSSd2ZSBpZGVudGlmaWVkIHRoZSBtb2RpZmllZCBjb2RlOiBpdCdzIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguY2AsIHNwZWNpZmljYWxseSBpbiB0aGUgYGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKClgIGZ1bmN0aW9uLiBUaGUgbW9kaWZpY2F0aW9uIEknbSBzZWVpbmcgYWRkcyBjaGVja3MgZm9yIGBrYXNwcmludGZgIGFuZCBmcmVlcyBgbmFtZWAgb24gYHJlcXVlc3RfaXJxYCBmYWlsdXJlLiBUaGlzIGlzIGludm9sdmVkIGluIHZwb3J0IG9wZW4gYW5kIGludGVycnVwdCBhbGxvY2F0aW9uIGZvciB0aGUgYGlkcGZgIGRldmljZS5cblxuTm93LCB0aGUgY3J1Y2lhbCBwb2ludDogdGhpcyBgaWRwZmAgZHJpdmVyIGlzIGZvciAqcmVhbCogaGFyZHdhcmUg4oCTIGEgU21hcnROSUMgb3IgSVBVLiBJdCdzIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEkndmUgdmVyaWZpZWQgdGhpczogaXQncyByZWdpc3RlcmVkIGFzIGEgUENJIGRyaXZlciB3aXRoIHNwZWNpZmljIGRldmljZSBJRHMgKGBJRFBGX0RFVl9JRF9QRmAgKDB4MTQ1MikgYW5kIGBJRFBGX0RFVl9JRF9WRmAgKDB4MTQ1YykpLiBUaGVzZSBhcmUgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGlkZW50aWZpZXJzLCB3aGljaCBjb25maXJtcyBpdC5cblxuVGhlcmVmb3JlLCBhY2NvcmRpbmcgdG8gdGhlIGNyaXRlcmlhIEknbSB1c2luZywgc2luY2UgdGhlIG1vZGlmaWVkIGNvZGUgaW50ZXJhY3RzIHdpdGggc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIChzcGVjaWZpY2FsbHksIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcyksIGl0IGZhbGxzIHVuZGVyIHRoZSBcIm5vdCB3b3J0aCBmdXp6aW5nXCIgY2F0ZWdvcnkuIFRoaXMgaXMgZXhwbGljaXRseSBzdGF0ZWQgaW4gc2VjdGlvbiAyIG9mIG15IGd1aWRlbGluZXMuXG5cblRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbnMgYXJlOlxuXG4qICAgYFdvcnRoRnV6emluZyA9IGZhbHNlYFxuKiAgIGBGb2N1c1N5bWJvbHMgPSBbXWBcbiogICBgRW5hYmxlQ29uZmlncyA9IFtdYFxuXG5UaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk5NTksIk91dHB1dFRva2VucyI6MTI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDE4OjIzOjM4Ljc3NTQyMjgxN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMgKGhhbmRsaW5nIGFsbG9jYXRpb24gZmFpbHVyZSBhbmQgY2xlYW51cCBmb3Iga2FzcHJpbnRmIGluIGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKS4gVGhlIGlkcGYgZHJpdmVyIGlzIGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBJbnRlbCBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24gKElQVS9TbWFydE5JQykgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIHRodXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzozOC43NzU0NjM0OTdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowjnbbf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-05 18:05:49 +0000 UTC FinishedAt: 2026-09-05 18:23:40 +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+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTVkNmYyMzhiYjE3ZjA4YWQ4ODYzMTNlYjZkYmI2MDJlZGI3NWM1OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgU2VwIDUgMTg6MjM6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcbmluZGV4IDI0YjkxYmUyNTY3NjIuLjg2ZGVkZjVjMWMwOTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG5AQCAtNDA2MywxMiAmIzQzOzQwNjMsMTcgQEAgc3RhdGljIGludCBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycShzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQsXG4gXG4gXHRcdG5hbWUgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgXCYjMzQ7JXMtJXMtJXMtJWRcJiMzNDssIGRydl9uYW1lLCBpZl9uYW1lLFxuIFx0XHRcdFx0IHZlY19uYW1lLCB2ZWN0b3IpO1xuJiM0MztcdFx0aWYgKCFuYW1lKSB7XG4mIzQzO1x0XHRcdGVyciA9IC1FTk9NRU07XG4mIzQzO1x0XHRcdGdvdG8gZnJlZV9xX2lycXM7XG4mIzQzO1x0XHR9XG4gXG4gXHRcdGVyciA9IHJlcXVlc3RfaXJxKGlycV9udW0sIGlkcGZfdnBvcnRfaW50cl9jbGVhbl9xdWV1ZXMsIDAsXG4gXHRcdFx0XHQgIG5hbWUsIHFfdmVjdG9yKTtcbiBcdFx0aWYgKGVycikge1xuIFx0XHRcdG5ldGRldl9lcnIodnBvcnQtXHUwMDNlbmV0ZGV2LFxuIFx0XHRcdFx0ICAgXCYjMzQ7UmVxdWVzdF9pcnEgZmFpbGVkLCBlcnJvcjogJWRcXG5cJiMzNDssIGVycik7XG4mIzQzO1x0XHRcdGtmcmVlKG5hbWUpO1xuIFx0XHRcdGdvdG8gZnJlZV9xX2lycXM7XG4gXHRcdH1cbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxODoyMzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jIChoYW5kbGluZyBhbGxvY2F0aW9uIGZhaWx1cmUgYW5kIGNsZWFudXAgZm9yIGthc3ByaW50ZiBpbiBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycSkuIFRoZSBpZHBmIGRyaXZlciBpcyBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgSW50ZWwgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIChJUFUvU21hcnROSUMpIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCB0aHVzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhNWQ2ZjIzOGJiMTdmMDhhZDg4NjMxM2ViNmRiYjYwMmVkYjc1YzU4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBTZXAgNSAxODoyMzoxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jCmluZGV4IDI0YjkxYmUyNTY3NjIuLjg2ZGVkZjVjMWMwOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYwpAQCAtNDA2MywxMiAmIzQzOzQwNjMsMTcgQEAgc3RhdGljIGludCBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycShzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQsCiAKIAkJbmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAmIzM0OyVzLSVzLSVzLSVkJiMzNDssIGRydl9uYW1lLCBpZl9uYW1lLAogCQkJCSB2ZWNfbmFtZSwgdmVjdG9yKTsKJiM0MzsJCWlmICghbmFtZSkgewomIzQzOwkJCWVyciA9IC1FTk9NRU07CiYjNDM7CQkJZ290byBmcmVlX3FfaXJxczsKJiM0MzsJCX0KIAogCQllcnIgPSByZXF1ZXN0X2lycShpcnFfbnVtLCBpZHBmX3Zwb3J0X2ludHJfY2xlYW5fcXVldWVzLCAwLAogCQkJCSAgbmFtZSwgcV92ZWN0b3IpOwogCQlpZiAoZXJyKSB7CiAJCQluZXRkZXZfZXJyKHZwb3J0LSZndDtuZXRkZXYsCiAJCQkJICAgJiMzNDtSZXF1ZXN0X2lycSBmYWlsZWQsIGVycm9yOiAlZFxuJiMzNDssIGVycik7CiYjNDM7CQkJa2ZyZWUobmFtZSk7CiAJCQlnb3RvIGZyZWVfcV9pcnFzOwogCQl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxMwoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDExNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoOiBJbnRlbCBJRFBGIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgcGF0Y2ggaXMgYWN0dWFsbHkgY2hhbmdpbmcsIHNvIEkmIzM5O2xsIHN0YXJ0IGJ5IHRha2luZyBhIGNsb3NlIGxvb2sgYXQgdGhlIHBhdGNoIGl0c2VsZiBhbmQgcGlucG9pbnQgdGhlIHNwZWNpZmljIGZpbGVzIGludm9sdmVkLiBJdCBzZWVtcyB0aGUgbW9kaWZpY2F0aW9uIGlzIGNlbnRlcmVkIGFyb3VuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguY2AuIFJpZ2h0LCBzbyB0aGlzIGlzIGFib3V0IHRoZSBgaWRwZmAgZHJpdmVyLgoKTm93LCBhIHF1aWNrIG1lbW9yeSByZWZyZXNoIGlzIGluIG9yZGVyLiBXaGF0IGV4YWN0bHkgKmlzKiB0aGlzIGBpZHBmYCBkcml2ZXIgYWdhaW4/IEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiwgcmlnaHQ/IE9rYXksIHRoYXQgaGVscHMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyBpcyBsaWtlbHkgcmVsYXRlZCB0byBwaHlzaWNhbCBoYXJkd2FyZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgc3VzcGljaW9uLCBzbyBsZXQmIzM5O3MgY3Jvc3MtcmVmZXJlbmNlIGFuZCBjaGVjayB0aGUgYEtjb25maWdgIGZpbGVzIOKAkyBwcm9iYWJseSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnYCBvciBldmVuIHRoZSBicm9hZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnYCBkaXJlY3Rvcnkg4oCTIHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiB3aGV0aGVyIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IEludGVsIElQVXMsIFNtYXJ0TklDcywgRlBHQXMsIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBDb25maXJtaW5nIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIGNydWNpYWwgZm9yIHByb3Blcmx5IGFzc2Vzc2luZyB0aGUgaW1wYWN0IGFuZCBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7SURQRiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMDg3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfSUNFKSAmIzQzOz0gaWNlL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0lEUEYpICYjNDM7PSBpZHBmL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGUtMjItb2JqLSQoQ09ORklHX0lYRCkgJiM0Mzs9IGl4ZC9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZzo0OmNvbmZpZyBJRFBGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctNS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsKFIpIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjE4OmlmIElEUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZzoyMDpjb25maWcgSURQRl9TSU5HTEVRXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMjEtXHRib29sIFwmIzM0O2lkcGYgc2luZ2xlcSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjI4OmVuZGlmICMgSURQRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfSURQRikgJiM0Mzs9IGlkcGYub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZT04PWlkcGYteSA6PSBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGUtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL01ha2VmaWxlOjE4OmlkcGYtJChDT05GSUdfSURQRl9TSU5HTEVRKVx0JiM0Mzs9IGlkcGZfc2luZ2xlcV90eHJ4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGUtMTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ6I2lmbmRlZiBfSURQRl9IX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTojZGVmaW5lIF9JRFBGX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTEyPXN0cnVjdCBpZHBmX3Jzc19kYXRhO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MzM6I2RlZmluZSBJRFBGX05PX0ZSRUVfU0xPVFx0XHQweGZmZmZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzUtLyogRGVmYXVsdCBNYWlsYm94IHNldHRpbmdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozNjojZGVmaW5lIElEUEZfTlVNX0ZJTFRFUlNfUEVSX01TR1x0MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM3OiNkZWZpbmUgSURQRl9OVU1fREZMVF9NQlhfUVx0XHQyXHQvKiBpbmNsdWRlcyBib3RoIFRYIGFuZCBSWCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Mzg6I2RlZmluZSBJRFBGX0RGTFRfTUJYX1FfTEVOXHRcdDY0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zOS0vKiBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyB0byB0cnkgYmVmb3JlIHJlc2V0dGluZyBtYWlsYm94ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MDojZGVmaW5lIElEUEZfTUJfTUFYX0VSUlx0XHRcdDIwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MTojZGVmaW5lIElEUEZfTlVNX0NIVU5LU19QRVJfTVNHKHN0cnVjdF9zeiwgY2h1bmtfc3opXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDItXHQoKExJQklFX0NUTFFfTUFYX0JVRl9MRU4gLSAoc3RydWN0X3N6KSkgLyAoY2h1bmtfc3opKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0NDojZGVmaW5lIElEUEZfV0FJVF9GT1JfTUFSS0VSX1RJTUVPXHQ1MDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ1OiNkZWZpbmUgSURQRl9NQVhfV0FJVFx0XHRcdDUwMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00Ny0vKiBhdmFpbGFibGUgbWVzc2FnZSBsZXZlbHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ4OiNkZWZpbmUgSURQRl9BVkFJTF9ORVRJRl9NIChORVRJRl9NU0dfRFJWIHwgTkVUSUZfTVNHX1BST0JFIHwgTkVUSUZfTVNHX0xJTkspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjUwOiNkZWZpbmUgSURQRl9ESU1fUFJPRklMRV9TTE9UUyAgNVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MjojZGVmaW5lIElEUEZfVklSVENITkxfVkVSU0lPTl9NQUpPUiBWSVJUQ0hOTDJfVkVSU0lPTl9NQUpPUl8yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MzojZGVmaW5lIElEUEZfVklSVENITkxfVkVSU0lPTl9NSU5PUiBWSVJUQ0hOTDJfVkVSU0lPTl9NSU5PUl8wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD02Mj1zdHJ1Y3QgaWRwZl9tYWNfZmlsdGVyIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03MC0gKiBlbnVtIGlkcGZfc3RhdGUgLSBTdGF0ZSBtYWNoaW5lIHRvIGhhbmRsZSBicmluZyB1cFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NzE6ICogQF9fSURQRl9WRVJfQ0hFQ0s6IE5lZ290aWF0ZSB2aXJ0Y2hubCB2ZXJzaW9uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MjogKiBAX19JRFBGX0dFVF9DQVBTOiBOZWdvdGlhdGUgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MzogKiBAX19JRFBGX0lOSVRfU1c6IEluaXQgYmFzZWQgb24gZ2l2ZW4gY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NDogKiBAX19JRFBGX1NUQVRFX0xBU1Q6IE11c3QgYmUgbGFzdCwgdXNlZCB0byBkZXRlcm1pbmUgc2l6ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzUtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD03Nj1lbnVtIGlkcGZfc3RhdGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzc6XHRfX0lEUEZfVkVSX0NIRUNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzg6XHRfX0lEUEZfR0VUX0NBUFMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3OTpcdF9fSURQRl9JTklUX1NXLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODA6XHRfX0lEUEZfU1RBVEVfTEFTVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODQtICogZW51bSBpZHBmX2ZsYWdzIC0gSGFyZCByZXNldCBjYXVzZXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NTogKiBASURQRl9IUl9GVU5DX1JFU0VUOiBIYXJkIHJlc2V0IHdoZW4gVHhSeCB0aW1lb3V0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NjogKiBASURQRl9IUl9EUlZfTE9BRDogU2V0IG9uIGRyaXZlciBsb2FkIGZvciBhIGNsZWFuIEhXXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NzogKiBASURQRl9IUl9SRVNFVF9JTl9QUk9HOiBSZXNldCBpbiBwcm9ncmVzc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODg6ICogQElEUEZfUkVNT1ZFX0lOX1BST0c6IERyaXZlciByZW1vdmUgaW4gcHJvZ3Jlc3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg5OiAqIEBJRFBGX01CX0lOVFJfTU9ERTogTWFpbGJveCBpbiBpbnRlcnJ1cHQgbW9kZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTA6ICogQElEUEZfVkNfQ09SRV9JTklUOiB2aXJ0Y2hubCBjb3JlIGhhcyBiZWVuIGluaXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjkxOiAqIEBJRFBGX0ZMQUdTX05CSVRTOiBNdXN0IGJlIGxhc3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTkyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9OTM9ZW51bSBpZHBmX2ZsYWdzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjk0Olx0SURQRl9IUl9GVU5DX1JFU0VULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTU6XHRJRFBGX0hSX0RSVl9MT0FELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTY6XHRJRFBGX0hSX1JFU0VUX0lOX1BST0csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5NzpcdElEUEZfUkVNT1ZFX0lOX1BST0csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5ODpcdElEUEZfTUJfSU5UUl9NT0RFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTk6XHRJRFBGX1ZDX0NPUkVfSU5JVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEwMDpcdElEUEZfRkxBR1NfTkJJVFMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMDEtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMDQtICogZW51bSBpZHBmX2NhcF9maWVsZCAtIE9mZnNldHMgaW50byBjYXBhYmlsaXRpZXMgc3RydWN0IGZvciBzcGVjaWZpYyBjYXBzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDU6ICogQElEUEZfQkFTRV9DQVBTOiBnZW5lcmljIGJhc2UgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDY6ICogQElEUEZfQ1NVTV9DQVBTOiBjaGVja3N1bSBvZmZsb2FkIGNhcGFiaWxpdGllc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTA3OiAqIEBJRFBGX1NFR19DQVBTOiBzZWdtZW50YXRpb24gb2ZmbG9hZCBjYXBhYmlsaXRpZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEwODogKiBASURQRl9SU1NfQ0FQUzogUlNTIG9mZmxvYWQgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDk6ICogQElEUEZfSFNQTElUX0NBUFM6IEhlYWRlciBzcGxpdCBjYXBhYmlsaXRpZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjExMDogKiBASURQRl9SU0NfQ0FQUzogUlNDIG9mZmxvYWQgY2FwYWJpbGl0aWVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMTE6ICogQElEUEZfT1RIRVJfQ0FQUzogbWlzY2VsbGFuZW91cyBvZmZsb2Fkc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTEyLSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTE3PWVudW0gaWRwZl9jYXBfZmllbGQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTE4Olx0SURQRl9CQVNFX0NBUFNcdFx0PSAtMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjExOTpcdElEUEZfQ1NVTV9DQVBTXHRcdD0gb2Zmc2V0b2Yoc3RydWN0IHZpcnRjaG5sMl9nZXRfY2FwYWJpbGl0aWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTIwLVx0XHRcdFx0XHQgICBjc3VtX2NhcHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTIxOlx0SURQRl9TRUdfQ0FQU1x0XHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEyMi1cdFx0XHRcdFx0ICAgc2VnX2NhcHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTIzOlx0SURQRl9SU1NfQ0FQU1x0XHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEyNC1cdFx0XHRcdFx0ICAgcnNzX2NhcHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTI1Olx0SURQRl9IU1BMSVRfQ0FQU1x0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjYtXHRcdFx0XHRcdCAgIGhzcGxpdF9jYXBzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyNzpcdElEUEZfUlNDX0NBUFNcdFx0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjgtXHRcdFx0XHRcdCAgIHJzY19jYXBzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyOTpcdElEUEZfT1RIRVJfQ0FQU1x0XHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEzMC1cdFx0XHRcdFx0ICAgb3RoZXJfY2FwcyksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTM0LSAqIGVudW0gaWRwZl92cG9ydF9zdGF0ZSAtIEN1cnJlbnQgdnBvcnQgc3RhdGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzNTogKiBASURQRl9WUE9SVF9VUDogVnBvcnQgaXMgdXBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzNjogKiBASURQRl9WUE9SVF9TVEFURV9OQklUUzogTXVzdCBiZSBsYXN0LCBudW1iZXIgb2Ygc3RhdGVzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMzctICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xMzg9ZW51bSBpZHBmX3Zwb3J0X3N0YXRlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzOTpcdElEUEZfVlBPUlRfVVAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxNDA6XHRJRFBGX1ZQT1JUX1NUQVRFX05CSVRTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xNDEtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xNTY9c3RydWN0IGlkcGZfbmV0ZGV2X3ByaXYge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE2My1cdHUxNiB0eF9tYXhfYnVmcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjE2NDpcdERFQ0xBUkVfQklUTUFQKHN0YXRlLCBJRFBGX1ZQT1JUX1NUQVRFX05CSVRTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE2NS1cdHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCBuZXRzdGF0cztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yMDI9c3RydWN0IGlkcGZfcmVnX29wcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE0OiNkZWZpbmUgSURQRl9NTUlPX1JFR19OVU1fU1RBVElDXHQyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTU6I2RlZmluZSBJRFBGX1BGX01CWF9SRUdJT05fU1pcdFx0NDA5NlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE2OiNkZWZpbmUgSURQRl9QRl9SU1RBVF9SRUdJT05fU1pcdFx0MjA0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE3OiNkZWZpbmUgSURQRl9WRl9NQlhfUkVHSU9OX1NaXHRcdDEwMjQwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTg6I2RlZmluZSBJRFBGX1ZGX1JTVEFUX1JFR0lPTl9TWlx0XHQyMDQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MjI2PXN0cnVjdCBpZHBmX2Rldl9vcHMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTIzMS1cdC8qIHN0YXRpY19yZWdfaW5mb1swXSBpcyBtYWlsYm94IHJlZ2lvbiwgc3RhdGljX3JlZ19pbmZvWzFdIGlzIHJzdGF0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMzI6XHRzdHJ1Y3QgcmVzb3VyY2Ugc3RhdGljX3JlZ19pbmZvW0lEUEZfTU1JT19SRUdfTlVNX1NUQVRJQ107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMzMtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMzYtICogZW51bSBpZHBmX3Zwb3J0X3Jlc2V0X2NhdXNlIC0gVnBvcnQgc29mdCByZXNldCBjYXVzZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIzNzogKiBASURQRl9TUl9RX0NIQU5HRTogU29mdCByZXNldCBxdWV1ZSBjaGFuZ2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIzODogKiBASURQRl9TUl9RX0RFU0NfQ0hBTkdFOiBTb2Z0IHJlc2V0IGRlc2NyaXB0b3IgY2hhbmdlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMzk6ICogQElEUEZfU1JfTVRVX0NIQU5HRTogU29mdCByZXNldCBNVFUgY2hhbmdlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDA6ICogQElEUEZfU1JfUlNDX0NIQU5HRTogU29mdCByZXNldCBSU0MgY2hhbmdlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNDEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yNDI9ZW51bSBpZHBmX3Zwb3J0X3Jlc2V0X2NhdXNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI0MzpcdElEUEZfU1JfUV9DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDQ6XHRJRFBGX1NSX1FfREVTQ19DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDU6XHRJRFBGX1NSX01UVV9DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDY6XHRJRFBGX1NSX1JTQ19DSEFOR0UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNDctfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNTAtICogZW51bSBpZHBmX3Zwb3J0X2ZsYWdzIC0gVnBvcnQgZmxhZ3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI1MTogKiBASURQRl9WUE9SVF9ERUxfUVVFVUVTOiBUbyBzZW5kIGRlbGV0ZSBxdWV1ZXMgbWVzc2FnZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjUyOiAqIEBJRFBGX1ZQT1JUX0ZMQUdTX05CSVRTOiBNdXN0IGJlIGxhc3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1My0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTI1ND1lbnVtIGlkcGZfdnBvcnRfZmxhZ3Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjU1Olx0SURQRl9WUE9SVF9ERUxfUVVFVUVTLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjU2Olx0SURQRl9WUE9SVF9GTEFHU19OQklUUyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1Ny19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTMyMj1zdHJ1Y3QgaWRwZl9xX3ZlY19yc3JjIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zNDUtXHR1MzJcdFx0XHRyeHFfZGVzY19jb3VudDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM0NjpcdHUzMlx0XHRcdGJ1ZnFfZGVzY19jb3VudFtJRFBGX01BWF9CVUZRU19QRVJfUlhRX0dSUF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zNDctXHR1OFx0XHRcdG51bV9idWZxc19wZXJfcWdycDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0zODE9c3RydWN0IGlkcGZfdnBvcnQge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM5Mi1cdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozOTM6XHRERUNMQVJFX0JJVE1BUChmbGFncywgSURQRl9WUE9SVF9GTEFHU19OQklUUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zOTQtXHR1MzIgY29tcGxuX2NsZWFuX2J1ZGdldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MDAtXHR1OCBkZWZhdWx0X21hY19hZGRyW0VUSF9BTEVOXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwMTpcdHUxNiByeF9pdHJfcHJvZmlsZVtJRFBGX0RJTV9QUk9GSUxFX1NMT1RTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwMjpcdHUxNiB0eF9pdHJfcHJvZmlsZVtJRFBGX0RJTV9QUk9GSUxFX1NMT1RTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQwMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MTYtICogZW51bSBpZHBmX3VzZXJfZmxhZ3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQxNzogKiBAX19JRFBGX1VTRVJfRkxBR19IU1BMSVQ6IGhlYWRlciBzcGxpdCBzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE4OiAqIEBfX0lEUEZfUFJPTUlTQ19VQzogVW5pY2FzdCBwcm9taXNjdW91cyBtb2RlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MTk6ICogQF9fSURQRl9QUk9NSVNDX01DOiBNdWx0aWNhc3QgcHJvbWlzY3VvdXMgbW9kZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDIwOiAqIEBfX0lEUEZfVVNFUl9GTEFHU19OQklUUzogTXVzdCBiZSBsYXN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MjEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD00MjI9ZW51bSBpZHBmX3VzZXJfZmxhZ3Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDIzOlx0X19JRFBGX1VTRVJfRkxBR19IU1BMSVQgPSAwVSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQyNDpcdF9fSURQRl9QUk9NSVNDX1VDID0gMzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjU6XHRfX0lEUEZfUFJPTUlTQ19NQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQyNzpcdF9fSURQRl9VU0VSX0ZMQUdTX05CSVRTLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDI4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NDgwPXN0cnVjdCBpZHBmX3Zwb3J0X3VzZXJfY29uZmlnX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ4Ny1cdHN0cnVjdCBicGZfcHJvZyAqeGRwX3Byb2c7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0ODg6XHRERUNMQVJFX0JJVE1BUCh1c2VyX2ZsYWdzLCBfX0lEUEZfVVNFUl9GTEFHU19OQklUUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00ODktXHRzdHJ1Y3QgbGlzdF9oZWFkIG1hY19maWx0ZXJfbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00OTUtICogZW51bSBpZHBmX3Zwb3J0X2NvbmZpZ19mbGFncyAtIFZwb3J0IGNvbmZpZyBmbGFnc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk2OiAqIEBJRFBGX1ZQT1JUX1JFR19ORVRERVY6IFJlZ2lzdGVyIG5ldGRldlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk3OiAqIEBJRFBGX1ZQT1JUX1VQX1JFUVVFU1RFRDogU2V0IGlmIGludGVyZmFjZSB1cCBpcyByZXF1ZXN0ZWQgb24gY29yZSByZXNldFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk4OiAqIEBJRFBGX1ZQT1JUX0NPTkZJR19GTEFHU19OQklUUzogTXVzdCBiZSBsYXN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00OTktICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01MDA9ZW51bSBpZHBmX3Zwb3J0X2NvbmZpZ19mbGFncyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MDE6XHRJRFBGX1ZQT1JUX1JFR19ORVRERVYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MDI6XHRJRFBGX1ZQT1JUX1VQX1JFUVVFU1RFRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjUwMzpcdElEUEZfVlBPUlRfQ09ORklHX0ZMQUdTX05CSVRTLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNTA0LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NTMxPXN0cnVjdCBpZHBmX3ZlY3Rvcl9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NDgtICogcG9vbCYjMzk7IGFuZCBvdGhlciBvbmUgaXMgY2FsbGVkICYjMzk7ZnJlZSBwb29sJiMzOTsuICBWZWN0b3IgZGlzdHJpYnV0aW9uIGFsZ29yaXRobVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTQ5OiAqIGdpdmVzIHByaW9yaXR5IHRvIGRlZmF1bHQgdnBvcnRzIGluIGEgd2F5IHRoYXQgYXQgbGVhc3QgSURQRl9NSU5fUV9WRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTU1MC0gKiB2ZWN0b3JzIGFyZSBhbGxvY2F0ZWQgcGVyIGRlZmF1bHQgdnBvcnQgYW5kIHRoZSByZWxhdGl2ZSB2ZWN0b3IgaW5kZXhlcyBmb3Jcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01OTg9c3RydWN0IGlkcGZfdnBvcnRfY29uZmlnIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02MDMtXHRzcGlubG9ja190IGZsb3dfc3RlZXJfbGlzdF9sb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NjA0Olx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIElEUEZfVlBPUlRfQ09ORklHX0ZMQUdTX05CSVRTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTYwNS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTY3Mz1zdHJ1Y3QgaWRwZl9hZGFwdGVyIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02ODAtXHRlbnVtIGlkcGZfc3RhdGUgc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo2ODE6XHRERUNMQVJFX0JJVE1BUChmbGFncywgSURQRl9GTEFHU19OQklUUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02ODItXHRzdHJ1Y3QgaWRwZl9yZXNldF9yZWcgcmVzZXRfcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTc0NT1zdGF0aWMgaW5saW5lIGludCBpZHBmX2lzX3F1ZXVlX21vZGVsX3NwbGl0KHUxNiBxX21vZGVsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc0NzpcdHJldHVybiAhSVNfRU5BQkxFRChDT05GSUdfSURQRl9TSU5HTEVRKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ4LVx0ICAgICAgIHFfbW9kZWwgPT0gVklSVENITkwyX1FVRVVFX01PREVMX1NQTElUO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTc3MD1zdGF0aWMgaW5saW5lIGJvb2wgaWRwZl9pc19yZG1hX2NhcF9lbmEoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc3MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzI6XHRyZXR1cm4gaWRwZl9pc19jYXBfZW5hKGFkYXB0ZXIsIElEUEZfT1RIRVJfQ0FQUywgVklSVENITkwyX0NBUF9SRE1BKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc3My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzU6I2RlZmluZSBJRFBGX0NBUF9SU1MgKFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzYtXHRWSVJUQ0hOTDJfRkxPV19JUFY0X1RDUFx0XHR8XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3ODU6I2RlZmluZSBJRFBGX0NBUF9SU0MgKFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03ODYtXHRWSVJUQ0hOTDJfQ0FQX1JTQ19JUFY0X1RDUFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzg5OiNkZWZpbmUgSURQRl9DQVBfSFNQTElUXHQoXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc5MC1cdFZJUlRDSE5MMl9DQVBfUlhfSFNQTElUX0FUX0w0VjRcdHxcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc5MzojZGVmaW5lIElEUEZfQ0FQX1RYX0NTVU1fTDRWNCAoXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc5NC1cdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY0X1RDUFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzk3OiNkZWZpbmUgSURQRl9DQVBfVFhfQ1NVTV9MNFY2IChcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk4LVx0VklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0lQVjZfVENQXHR8XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4MDE6I2RlZmluZSBJRFBGX0NBUF9SWF9DU1VNIChcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODAyLVx0VklSVENITkwyX0NBUF9SWF9DU1VNX0wzX0lQVjRcdFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODA4OiNkZWZpbmUgSURQRl9DQVBfVFhfU0NUUF9DU1VNIChcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODA5LVx0VklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0lQVjRfU0NUUFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODEyOiNkZWZpbmUgSURQRl9DQVBfVFVOTkVMX1RYX0NTVU0gKFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MTMtXHRWSVJUQ0hOTDJfQ0FQX1RYX0NTVU1fTDNfU0lOR0xFX1RVTk5FTFx0fFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9ODY3PXN0YXRpYyBpbmxpbmUgdTggaWRwZl9nZXRfbWluX3R4X3BrdF9sZW4oc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NzE6XHRyZXR1cm4gcGt0X2xlbiA/IHBrdF9sZW4gOiBJRFBGX1RYX01JTl9QS1RfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODcyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD04OTY9c3RhdGljIGlubGluZSBib29sIGlkcGZfaXNfcmVzZXRfaW5fcHJvZyhzdHJ1Y3QgaWRwZl9hZGFwdGVyICphZGFwdGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg5ODpcdHJldHVybiAodGVzdF9iaXQoSURQRl9IUl9SRVNFVF9JTl9QUk9HLCBhZGFwdGVyLVx1MDAzZWZsYWdzKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODk5Olx0XHR0ZXN0X2JpdChJRFBGX0hSX0ZVTkNfUkVTRVQsIGFkYXB0ZXItXHUwMDNlZmxhZ3MpIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5MDA6XHRcdHRlc3RfYml0KElEUEZfSFJfRFJWX0xPQUQsIGFkYXB0ZXItXHUwMDNlZmxhZ3MpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTkwMS19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTAxMj1pbnQgaWRwZl9hZGRfZGVsX2ZzdGVlcl9maWx0ZXJzKHN0cnVjdCBpZHBmX2FkYXB0ZXIgKmFkYXB0ZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTAxNC1cdFx0XHRcdGVudW0gdmlydGNobmwyX29wIG9wY29kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDE1OiNlbmRpZiAvKiAhX0lEUEZfSF8gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzo5OiNkZWZpbmUgSURQRl9QRl9JVFJfSURYX1NQQUNJTkdcdFx0MHg0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jPTYzPXN0YXRpYyBpbnQgaWRwZl9pbnRyX3JlZ19pbml0KHN0cnVjdCBpZHBmX3Zwb3J0ICp2cG9ydCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtODgtXHRcdHN0cnVjdCBpZHBmX3FfdmVjdG9yICpxX3ZlY3RvciA9IFx1MDAyNnJzcmMtXHUwMDNlcV92ZWN0b3JzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjg5Olx0XHR1MTYgdmVjX2lkID0gcnNyYy1cdTAwM2VxX3ZlY3Rvcl9pZHhzW2ldIC0gSURQRl9NQlhfUV9WRUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtOTAtXHRcdHN0cnVjdCBpZHBmX2ludHJfcmVnICppbnRyID0gXHUwMDI2cV92ZWN0b3ItXHUwMDNlaW50cl9yZWc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTEwNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoxMDU6XHRcdHNwYWNpbmcgPSBJRFBGX0lUUl9JRFhfU1BBQ0lORyhyZWctXHUwMDNlaXRybl9pbmRleF9zcGFjaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEwNjpcdFx0XHRcdFx0ICAgICAgIElEUEZfUEZfSVRSX0lEWF9TUEFDSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMDctXHRcdHJ4X2l0ciA9IFBGX0dMSU5UX0lUUl9BRERSKFZJUlRDSE5MMl9JVFJfSURYXzAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTExNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoxMTc6XHR2YWwgPSByZWdfdmFsc1tyc3JjLVx1MDAzZXFfdmVjdG9yX2lkeHNbaV0gLSBJRFBGX01CWF9RX1ZFQ10uZHluX2N0bF9yZWc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTE4LVx0cnNyYy1cdTAwM2Vub2lycV9keW5fY3RsID1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTIxLVx0dmFsID0gUEZfR0xJTlRfRFlOX0NUTF9XQl9PTl9JVFJfTSB8IFBGX0dMSU5UX0RZTl9DVExfSU5URU5BX01TS19NIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoxMjI6XHQgICAgICBGSUVMRF9QUkVQKFBGX0dMSU5UX0RZTl9DVExfSVRSX0lORFhfTSwgSURQRl9OT19JVFJfVVBEQVRFX0lEWCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTIzLVx0cnNyYy1cdTAwM2Vub2lycV9keW5fY3RsX2VuYSA9IHZhbDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM9MTk5PXZvaWQgaWRwZl9kZXZfb3BzX2luaXQoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA1LVx0cmVzb3VyY2Vfc2V0X3JhbmdlKFx1MDAyNmFkYXB0ZXItXHUwMDNlZGV2X29wcy5zdGF0aWNfcmVnX2luZm9bMF0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM6MjA2Olx0XHRcdCAgIFBGX0ZXX0JBU0UsIElEUEZfUEZfTUJYX1JFR0lPTl9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA3LVx0cmVzb3VyY2Vfc2V0X3JhbmdlKFx1MDAyNmFkYXB0ZXItXHUwMDNlZGV2X29wcy5zdGF0aWNfcmVnX2luZm9bMV0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM6MjA4Olx0XHRcdCAgIFBGR0VOX1JUUklHLCBJRFBGX1BGX1JTVEFUX1JFR0lPTl9TWik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA5LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmgtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaDo0OiNpZm5kZWYgX0lEUEZfREVWSURTX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6NTojZGVmaW5lIF9JRFBGX0RFVklEU19IX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6NzojZGVmaW5lIElEUEZfREVWX0lEX1BGXHRcdFx0MHgxNDUyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6ODojZGVmaW5lIElEUEZfREVWX0lEX1ZGXHRcdFx0MHgxNDVDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmgtOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaDoxMDojZW5kaWYgLyogX0lEUEZfREVWSURTX0hfICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0zNjY9c3RhdGljIHUzMiBpZHBmX2dldF9yeGZoX2tleV9zaXplKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjM3MTpcdGlmICghaWRwZl9pc19jYXBfZW5hX2FsbChucC1cdTAwM2VhZGFwdGVyLCBJRFBGX1JTU19DQVBTLCBJRFBGX0NBUF9SU1MpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zNzItXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Mzg1PXN0YXRpYyB1MzIgaWRwZl9nZXRfcnhmaF9pbmRpcl9zaXplKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjM5MDpcdGlmICghaWRwZl9pc19jYXBfZW5hX2FsbChucC1cdTAwM2VhZGFwdGVyLCBJRFBGX1JTU19DQVBTLCBJRFBGX0NBUF9SU1MpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zOTEtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDA4PXN0YXRpYyBpbnQgaWRwZl9nZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0MjQ6XHRpZiAoIWlkcGZfaXNfY2FwX2VuYV9hbGwoYWRhcHRlciwgSURQRl9SU1NfQ0FQUywgSURQRl9DQVBfUlNTKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00MjUtXHRcdGVyciA9IC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDU3PXN0YXRpYyBpbnQgaWRwZl9zZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0NzM6XHRpZiAoIWlkcGZfaXNfY2FwX2VuYV9hbGwoYWRhcHRlciwgSURQRl9SU1NfQ0FQUywgSURQRl9DQVBfUlNTKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00NzQtXHRcdGVyciA9IC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0OTQ6XHRpZiAodGVzdF9iaXQoSURQRl9WUE9SVF9VUCwgbnAtXHUwMDNlc3RhdGUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00OTUtXHRcdGVyciA9IGlkcGZfY29uZmlnX3Jzcyh2cG9ydCwgcnNzX2RhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NTExPXN0YXRpYyB2b2lkIGlkcGZfZ2V0X2NoYW5uZWxzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy01MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjUzMjpcdGNoLVx1MDAzZW1heF9vdGhlciA9IElEUEZfTUFYX01CWFE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjUzMzpcdGNoLVx1MDAzZW90aGVyX2NvdW50ID0gSURQRl9NQVhfTUJYUTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NTQ4PXN0YXRpYyBpbnQgaWRwZl9zZXRfY2hhbm5lbHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTYwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjAxOlx0ZXJyID0gaWRwZl9pbml0aWF0ZV9zb2Z0X3Jlc2V0KHZwb3J0LCBJRFBGX1NSX1FfQ0hBTkdFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjAyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NjI0PXN0YXRpYyB2b2lkIGlkcGZfZ2V0X3JpbmdwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2MzQ6XHRyaW5nLVx1MDAzZXJ4X21heF9wZW5kaW5nID0gSURQRl9NQVhfUlhRX0RFU0M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjYzNTpcdHJpbmctXHUwMDNldHhfbWF4X3BlbmRpbmcgPSBJRFBGX01BWF9UWFFfREVTQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjM2LVx0cmluZy1cdTAwM2VyeF9wZW5kaW5nID0gdnBvcnQtXHUwMDNlZGZsdF9xdl9yc3JjLnJ4cV9kZXNjX2NvdW50O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NjU0PXN0YXRpYyBpbnQgaWRwZl9zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY3MTpcdGlmIChyaW5nLVx1MDAzZXR4X3BlbmRpbmcgXHUwMDNjIElEUEZfTUlOX1RYUV9ERVNDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY3Mi1cdFx0bmV0ZGV2X2VycihuZXRkZXYsIFwmIzM0O0Rlc2NyaXB0b3JzIHJlcXVlc3RlZCAoVHg6ICV1KSBpcyBsZXNzIHRoYW4gbWluIHN1cHBvcnRlZCAoJXUpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzMtXHRcdFx0ICAgcmluZy1cdTAwM2V0eF9wZW5kaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2NzQ6XHRcdFx0ICAgSURQRl9NSU5fVFhRX0RFU0MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzUtXHRcdGVyciA9IC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02NzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY3OTpcdGlmIChyaW5nLVx1MDAzZXJ4X3BlbmRpbmcgXHUwMDNjIElEUEZfTUlOX1JYUV9ERVNDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY4MC1cdFx0bmV0ZGV2X2VycihuZXRkZXYsIFwmIzM0O0Rlc2NyaXB0b3JzIHJlcXVlc3RlZCAoUng6ICV1KSBpcyBsZXNzIHRoYW4gbWluIHN1cHBvcnRlZCAoJXUpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODEtXHRcdFx0ICAgcmluZy1cdTAwM2VyeF9wZW5kaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2ODI6XHRcdFx0ICAgSURQRl9NSU5fUlhRX0RFU0MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODMtXHRcdGVyciA9IC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY4NzpcdG5ld19yeF9jb3VudCA9IEFMSUdOKHJpbmctXHUwMDNlcnhfcGVuZGluZywgSURQRl9SRVFfUlhRX0RFU0NfTVVMVElQTEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODgtXHRpZiAobmV3X3J4X2NvdW50ICE9IHJpbmctXHUwMDNlcnhfcGVuZGluZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjkyOlx0bmV3X3R4X2NvdW50ID0gQUxJR04ocmluZy1cdTAwM2V0eF9wZW5kaW5nLCBJRFBGX1JFUV9ERVNDX01VTFRJUExFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjkzLVx0aWYgKG5ld190eF9jb3VudCAhPSByaW5nLVx1MDAzZXR4X3BlbmRpbmcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03MTktXHRcdHJzcmMtXHUwMDNlYnVmcV9kZXNjX2NvdW50W2ldID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzIwOlx0XHRcdElEUEZfUlhfQlVGUV9ERVNDX0NPVU5UKG5ld19yeF9jb3VudCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzIxLVx0XHRcdFx0XHRcdHJzcmMtXHUwMDNlbnVtX2J1ZnFzX3Blcl9xZ3JwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3MjM6XHRlcnIgPSBpZHBmX2luaXRpYXRlX3NvZnRfcmVzZXQodnBvcnQsIElEUEZfU1JfUV9ERVNDX0NIQU5HRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTcyNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTczOC0gKiBJdCBkZWZpbmVzIGEgc3RhdGlzdGljIGFzIG9mZnNldCBmcm9tIGEgY29tbW9uIGJhc2UgcG9pbnRlci4gU3RhdHMgc2hvdWxkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjczOTogKiBiZSBkZWZpbmVkIGluIGNvbnN0YW50IGFycmF5cyB1c2luZyB0aGUgSURQRl9TVEFUIG1hY3JvLCB3aXRoIGV2ZXJ5IGVsZW1lbnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzQwLSAqIG9mIHRoZSBhcnJheSB1c2luZyB0aGUgc2FtZSBfdHlwZSBmb3IgY2FsY3VsYXRpbmcgdGhlIHNpemVvZl9zdGF0IGFuZFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NzUzPXN0cnVjdCBpZHBmX3N0YXRzIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc2Mi0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzYzOiNkZWZpbmUgSURQRl9TVEFUKF90eXBlLCBfbmFtZSwgX3N0YXQpIHsgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzY0LVx0LnN0YXRfc3RyaW5nID0gX25hbWUsIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03NjktLyogSGVscGVyIG1hY3JvcyBmb3IgZGVmaW5pbmcgc29tZSBzdGF0aXN0aWNzIHJlbGF0ZWQgdG8gcXVldWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3MDojZGVmaW5lIElEUEZfUlhfUVVFVUVfU1RBVChfbmFtZSwgX3N0YXQpIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3MTpcdElEUEZfU1RBVChzdHJ1Y3QgaWRwZl9yeF9xdWV1ZSwgX25hbWUsIF9zdGF0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3NzI6I2RlZmluZSBJRFBGX1RYX1FVRVVFX1NUQVQoX25hbWUsIF9zdGF0KSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3NzM6XHRJRFBGX1NUQVQoc3RydWN0IGlkcGZfdHhfcXVldWUsIF9uYW1lLCBfc3RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Nzc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3R4X3F1ZXVlX3N0YXRzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3NzpcdElEUEZfVFhfUVVFVUVfU1RBVChcJiMzNDtwa3RzXCYjMzQ7LCBxX3N0YXRzLnBhY2tldHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3Nzg6XHRJRFBGX1RYX1FVRVVFX1NUQVQoXCYjMzQ7Ynl0ZXNcJiMzNDssIHFfc3RhdHMuYnl0ZXMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3Nzk6XHRJRFBGX1RYX1FVRVVFX1NUQVQoXCYjMzQ7bHNvX3BrdHNcJiMzNDssIHFfc3RhdHMubHNvX3BrdHMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03ODAtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTc4Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGlkcGZfc3RhdHMgaWRwZl9nc3RyaW5nc19yeF9xdWV1ZV9zdGF0c1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODQ6XHRJRFBGX1JYX1FVRVVFX1NUQVQoXCYjMzQ7cGt0c1wmIzM0OywgcV9zdGF0cy5wYWNrZXRzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzg1Olx0SURQRl9SWF9RVUVVRV9TVEFUKFwmIzM0O2J5dGVzXCYjMzQ7LCBxX3N0YXRzLmJ5dGVzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzg2Olx0SURQRl9SWF9RVUVVRV9TVEFUKFwmIzM0O3J4X2dyb19od19wa3RzXCYjMzQ7LCBxX3N0YXRzLnJzY19wa3RzKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzg3LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzg5OiNkZWZpbmUgSURQRl9UWF9RVUVVRV9TVEFUU19MRU5cdFx0QVJSQVlfU0laRShpZHBmX2dzdHJpbmdzX3R4X3F1ZXVlX3N0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTA6I2RlZmluZSBJRFBGX1JYX1FVRVVFX1NUQVRTX0xFTlx0XHRBUlJBWV9TSVpFKGlkcGZfZ3N0cmluZ3NfcnhfcXVldWVfc3RhdHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzkyOiNkZWZpbmUgSURQRl9QT1JUX1NUQVQoX25hbWUsIF9zdGF0KSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTM6XHRJRFBGX1NUQVQoc3RydWN0IGlkcGZfdnBvcnQsICBfbmFtZSwgX3N0YXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTc5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3BvcnRfc3RhdHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk2Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtY3N1bV9lcnJvcnNcJiMzNDssIHBvcnRfc3RhdHMucnhfaHdfY3N1bV9lcnIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTc6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDtyeC1oc3BsaXRcJiMzNDssIHBvcnRfc3RhdHMucnhfaHNwbGl0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk4Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtaHNwbGl0X2hib1wmIzM0OywgcG9ydF9zdGF0cy5yeF9oc3BsaXRfaGJvKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk5Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtYmFkX2Rlc2NzXCYjMzQ7LCBwb3J0X3N0YXRzLnJ4X2JhZF9kZXNjcyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwMDpcdElEUEZfUE9SVF9TVEFUKFwmIzM0O3R4LXNrYl9kcm9wc1wmIzM0OywgcG9ydF9zdGF0cy50eF9kcm9wcyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwMTpcdElEUEZfUE9SVF9TVEFUKFwmIzM0O3R4LWRtYV9tYXBfZXJyc1wmIzM0OywgcG9ydF9zdGF0cy50eF9kbWFfbWFwX2VycnMpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDI6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDt0eC1saW5lYXJpemVkX3BrdHNcJiMzNDssIHBvcnRfc3RhdHMudHhfbGluZWFyaXplKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODAzOlx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7dHgtYnVzeV9ldmVudHNcJiMzNDssIHBvcnRfc3RhdHMudHhfYnVzeSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwNDpcdElEUEZfUE9SVF9TVEFUKFwmIzM0O3J4LXVuaWNhc3RfcGt0c1wmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmljYXN0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA1Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtbXVsdGljYXN0X3BrdHNcJiMzNDssIHBvcnRfc3RhdHMudnBvcnRfc3RhdHMucnhfbXVsdGljYXN0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA2Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtYnJvYWRjYXN0X3BrdHNcJiMzNDssIHBvcnRfc3RhdHMudnBvcnRfc3RhdHMucnhfYnJvYWRjYXN0KSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA3Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7cngtdW5rbm93bl9wcm90b2NvbFwmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmtub3duX3Byb3RvY29sKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA4Olx0SURQRl9QT1JUX1NUQVQoXCYjMzQ7dHgtdW5pY2FzdF9wa3RzXCYjMzQ7LCBwb3J0X3N0YXRzLnZwb3J0X3N0YXRzLnR4X3VuaWNhc3QpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDk6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDt0eC1tdWx0aWNhc3RfcGt0c1wmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF9tdWx0aWNhc3QpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTA6XHRJRFBGX1BPUlRfU1RBVChcJiMzNDt0eC1icm9hZGNhc3RfcGt0c1wmIzM0OywgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF9icm9hZGNhc3QpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04MTEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTM6I2RlZmluZSBJRFBGX1BPUlRfU1RBVFNfTEVOIEFSUkFZX1NJWkUoaWRwZl9nc3RyaW5nc19wb3J0X3N0YXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04MTQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz04NzY9c3RhdGljIHZvaWQgaWRwZl9nZXRfc3RhdF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHU4ICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODgyLVx0aWRwZl9hZGRfc3RhdF9zdHJpbmdzKFx1MDAyNmRhdGEsIGlkcGZfZ3N0cmluZ3NfcG9ydF9zdGF0cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODgzOlx0XHRcdCAgICAgIElEUEZfUE9SVF9TVEFUU19MRU4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04ODQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz05MjU9c3RhdGljIGludCBpZHBmX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBzc2V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtOTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo5NDg6XHRyZXR1cm4gSURQRl9QT1JUX1NUQVRTX0xFTiAmIzQzOyAoSURQRl9UWF9RVUVVRV9TVEFUU19MRU4gKiBtYXhfdHhxKSAmIzQzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo5NDk6XHQgICAgICAgKElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOICogbWF4X3J4cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTk1MC19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0xMDEwPXN0YXRpYyB2b2lkIGlkcGZfYWRkX3F1ZXVlX3N0YXRzKHU2NCAqKmRhdGEsIGNvbnN0IHZvaWQgKnEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDE5LVx0aWYgKHR5cGUgPT0gVklSVENITkwyX1FVRVVFX1RZUEVfUlgpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6MTAyMDpcdFx0c2l6ZSA9IElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDIxLVx0XHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfcnhfcXVldWVfc3RhdHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDIzLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6MTAyNDpcdFx0c2l6ZSA9IElEUEZfVFhfUVVFVUVfU1RBVFNfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDI1LVx0XHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfdHhfcXVldWVfc3RhdHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0xMDU0PXN0YXRpYyB2b2lkIGlkcGZfYWRkX2VtcHR5X3F1ZXVlX3N0YXRzKHU2NCAqKmRhdGEsIHUxNiBxdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTEwNTktXHRpZiAocXR5cGUgPT0gVklSVENITkwyX1FVRVVFX1RZUEVfUlgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwNjA6XHRcdHN0YXRzX2xlbiA9IElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDYxLVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzoxMDYyOlx0XHRzdGF0c19sZW4gPSBJRFBGX1RYX1FVRVVFX1NUQVRTX0xFTjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMTA2My1cbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxODoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODE1OAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkludmVzdGlnYXRpbmcgdGhlIElEUEYgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCk9rYXksIEkgbmVlZCB0byB1bmRlcnN0YW5kIHNvbWV0aGluZyBhYm91dCB0aGUgaW5pdGlhbGl6YXRpb24gZmxvdyBmb3IgdGhlIEludGVsIElEUEYgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIGRpcmVjdGx5IHRvIHRoZSBjb3JlIGZpbGVzLiBJJiMzOTtsbCBzdGFydCB3aXRoIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jYC4gVGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtkIGV4cGVjdCB0byBmaW5kIHRoZSBkcml2ZXImIzM5O3MgZW50cnkgcG9pbnRzLCB0aGUgYG1vZHVsZV9pbml0YCBvciBgZHJpdmVyX2luaXRgIGZ1bmN0aW9uLCBhbmQgdGhlIG92ZXJhbGwgc2V0dXAgcm91dGluZS4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgcHJpbWFyeSBpbml0aWFsaXphdGlvbiBsb2dpYzogaG93IHRoZSBkZXZpY2UgaXMgcHJvYmVkLCByZXNvdXJjZXMgYXJlIGFsbG9jYXRlZCwgYW5kIHRoZSBuZXR3b3JraW5nIHN0YWNrIGlzIGludGVncmF0ZWQuCgpGb2xsb3dpbmcgdGhhdCwgSSYjMzk7bGwgZGVmaW5pdGVseSB3YW50IHRvIGNyb3NzLXJlZmVyZW5jZSB3aXRoIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnksIHdoaWNoIGlzIGxvY2F0ZWQgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvS2NvbmZpZ2AuIFRoYXQgY29uZmlndXJhdGlvbiBmaWxlIHdpbGwgc2hvdyBtZSBob3cgdGhpcyBkcml2ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkIHByb2Nlc3MuIElzIGl0IG1vZHVsYXI/IEJ1aWx0LWluPyBXaGF0IGRlcGVuZGVuY2llcyBhcmUgY29udHJvbGxlZCB0aHJvdWdoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucz8gVW5kZXJzdGFuZGluZyB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgd2lsbCBnaXZlIG1lIGEgYnJvYWRlciBwaWN0dXJlIG9mIHdoZW4gYW5kIHdoeSB0aGUgZHJpdmVyIGlzIGFjdHVhbGx5IGNvbXBpbGVkIGFuZCBsb2FkZWQsIGFuZCBob3cgaXQmIzM5O3MgaW50ZWdyYXRlZCB3aXRoIG90aGVyIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhlc2UgZmlsZXMgYXJlIGVzc2VudGlhbCBzdGFydGluZyBwb2ludHMgZm9yIGFueSBkZWVwZXIgZGl2ZSBpbnRvIHRoZSBkcml2ZXImIzM5O3MgaW5uZXIgd29ya2luZ3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjIENvcHlyaWdodCAoQykgMjAyNCBJbnRlbCBDb3Jwb3JhdGlvblxuICAgMzpcdFxuICAgNDpcdGNvbmZpZyBJRFBGXG4gICA1Olx0XHR0cmlzdGF0ZSBcJiMzNDtJbnRlbChSKSBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24gU3VwcG9ydFwmIzM0O1xuICAgNjpcdFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4gICA3Olx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gICA4Olx0XHRzZWxlY3QgRElNTElCXG4gICA5Olx0XHRzZWxlY3QgTElCSUVfQ1BcbiAgMTA6XHRcdHNlbGVjdCBMSUJFVEhfWERQXG4gIDExOlx0XHRoZWxwXG4gIDEyOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIEludGVsKFIpIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvblxuICAxMzpcdFx0ICBkZXZpY2VzLlxuICAxNDpcdFxuICAxNTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXG4gIDE2Olx0XHQgIHdpbGwgYmUgY2FsbGVkIGlkcGYuXG4gIDE3Olx0XG4gIDE4Olx0aWYgSURQRlxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBJRFBGX1NJTkdMRVFcbiAgMjE6XHRcdGJvb2wgXCYjMzQ7aWRwZiBzaW5nbGVxIHN1cHBvcnRcJiMzNDtcbiAgMjI6XHRcdGhlbHBcbiAgMjM6XHRcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBsZWdhY3kgc2luZ2xlIFJ4L1R4IHF1ZXVlcyB3L25vXG4gIDI0Olx0XHQgIGNvbXBsZXRpb24gYW5kIGZpbGwgcXVldWVzLiBPbmx5IGVuYWJsZSBpZiB5b3UgaGF2ZSBoYXJkd2FyZSB3aGljaFxuICAyNTpcdFx0ICB3YW50cyB0byB3b3JrIGluIHRoaXMgbW9kZSBhcyBpdCBpbmNyZWFzZXMgdGhlIGRyaXZlciBzaXplIGFuZCBhZGRzXG4gIDI2Olx0XHQgIHJ1bnRtZSBjaGVja3Mgb24gaG90cGF0aC5cbiAgMjc6XHRcbiAgMjg6XHRlbmRpZiAjIElEUEZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxODoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODg3OAoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJiMzOTttIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOgoKKipEcml2ZXIgUmVnaXN0cmF0aW9uIERlZXAgRGl2ZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGlzIGRyaXZlciBpbnRlZ3JhdGVzIHdpdGggdGhlIHN5c3RlbS4gTGV0JiMzOTtzIHN0YXJ0IGF0IHRoZSB2ZXJ5IGJlZ2lubmluZywgdHJhY2luZyB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuIEkmIzM5O20gZ29pbmcgdG8gZGlnIGludG8gYGlkcGZfbWFpbi5jYC4gVGhhdCBzaG91bGQgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LCB3aGVyZSB0aGUgZHJpdmVyJiMzOTtzIGNvcmUgaW5pdGlhbGl6YXRpb24gYW5kIHNldHVwIHJvdXRpbmVzIGFyZSBsaWtlbHkgbG9jYXRlZC4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCB0aGUgc3RhbmRhcmQgYG1vZHVsZV9pbml0YCBtYWNybyBvciBzaW1pbGFyLCBwb2ludGluZyBtZSB0b3dhcmRzIHRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIGRyaXZlciB3aXRoIHRoZSByZWxldmFudCBzdWJzeXN0ZW0uIEZyb20gdGhlcmUsIEkmIzM5O2xsIGJlIGFibGUgdG8gZm9sbG93IHRoZSBjYWxscyB0byBzZWUgaG93IHRoZSB2YXJpb3VzIGRldmljZSBzdHJ1Y3R1cmVzIGFyZSBpbml0aWFsaXplZCwgYWxsb2NhdGVkLCBhbmQgdWx0aW1hdGVseSwgaG93IHRoZSBkcml2ZXImIzM5O3Mgb3BlcmF0aW9uYWwgZW50cnkgcG9pbnRzIGFyZSBob29rZWQgaW50byB0aGUgc3lzdGVtLiBLbm93aW5nIHRoZSByZWdpc3RyYXRpb24gZGV0YWlscyBpcyBjcnVjaWFsIHRvIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSBhbmQgb3RoZXIga2VybmVsIGNvbXBvbmVudHMuIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9wY2lfZHJpdmVyfHBjaV9yZWdpc3Rlcl9kcml2ZXJ8aWRwZl9wY2kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM9Mjk9c3RhdGljIGludCBpZHBmX2dldF9kZXZpY2VfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTUzLSAqIEBhZGFwdGVyOiBhZGFwdGVyIHRvIGluaXRpYWxpemVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6NTQ6ICogQGVudDogZW50cnkgaW4gaWRwZl9wY2lfdGJsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTU1LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0yMDc9c3RhdGljIGludCBpZHBmX2NmZ19kZXZpY2Uoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTI0Ni0gKiBAcGRldjogUENJIGRldmljZSBpbmZvcm1hdGlvbiBzdHJ1Y3RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6MjQ3OiAqIEBlbnQ6IGVudHJ5IGluIGlkcGZfcGNpX3RibFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0yNDgtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jPTI1MT1zdGF0aWMgaW50IGlkcGZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM2NTovKiBpZHBmX3BjaV90YmwgLSBQQ0kgRGV2IGlkcGYgSUQgVGFibGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzY2LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYzozNjc6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkcGZfcGNpX3RibFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNjgtXHR7IFBDSV9WREVWSUNFKElOVEVMLCBJRFBGX0RFVl9JRF9QRil9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzcyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM3MzpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaWRwZl9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0zNzU9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGlkcGZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNzYtXHQubmFtZVx0XHRcdD0gS0JVSUxEX01PRE5BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM3NzpcdC5pZF90YWJsZVx0XHQ9IGlkcGZfcGNpX3RibCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzc4LVx0LnByb2JlXHRcdFx0PSBpZHBmX3Byb2JlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzgyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM4Mzptb2R1bGVfcGNpX2RyaXZlcihpZHBmX2RyaXZlcik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTg6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NTkKCQkJCQkJCW91dHB1dDogMTI1CgkJCQkJCQl0aG91Z2h0czogNzY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBpZHBmYCBEcml2ZXImIzM5O3MgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIGBpZHBmYCBkcml2ZXIsIHdoaWNoIGlzIEludGVsJiMzOTtzIFBDSSBkcml2ZXIgZm9yIHRoZWlyIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSAobGlrZSB0aGUgRTIwMDAgb3IgTW91bnQgRXZhbnMpLCBpc24mIzM5O3QgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSGVyZSYjMzk7cyB3aHk6CgpGaXJzdCwgSSYjMzk7dmUgaWRlbnRpZmllZCB0aGUgbW9kaWZpZWQgY29kZTogaXQmIzM5O3Mgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jYCwgc3BlY2lmaWNhbGx5IGluIHRoZSBgaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEoKWAgZnVuY3Rpb24uIFRoZSBtb2RpZmljYXRpb24gSSYjMzk7bSBzZWVpbmcgYWRkcyBjaGVja3MgZm9yIGBrYXNwcmludGZgIGFuZCBmcmVlcyBgbmFtZWAgb24gYHJlcXVlc3RfaXJxYCBmYWlsdXJlLiBUaGlzIGlzIGludm9sdmVkIGluIHZwb3J0IG9wZW4gYW5kIGludGVycnVwdCBhbGxvY2F0aW9uIGZvciB0aGUgYGlkcGZgIGRldmljZS4KCk5vdywgdGhlIGNydWNpYWwgcG9pbnQ6IHRoaXMgYGlkcGZgIGRyaXZlciBpcyBmb3IgKnJlYWwqIGhhcmR3YXJlIOKAkyBhIFNtYXJ0TklDIG9yIElQVS4gSXQmIzM5O3Mgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gSSYjMzk7dmUgdmVyaWZpZWQgdGhpczogaXQmIzM5O3MgcmVnaXN0ZXJlZCBhcyBhIFBDSSBkcml2ZXIgd2l0aCBzcGVjaWZpYyBkZXZpY2UgSURzIChgSURQRl9ERVZfSURfUEZgICgweDE0NTIpIGFuZCBgSURQRl9ERVZfSURfVkZgICgweDE0NWMpKS4gVGhlc2UgYXJlIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBpZGVudGlmaWVycywgd2hpY2ggY29uZmlybXMgaXQuCgpUaGVyZWZvcmUsIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgSSYjMzk7bSB1c2luZywgc2luY2UgdGhlIG1vZGlmaWVkIGNvZGUgaW50ZXJhY3RzIHdpdGggc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIChzcGVjaWZpY2FsbHksIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcyksIGl0IGZhbGxzIHVuZGVyIHRoZSAmIzM0O25vdCB3b3J0aCBmdXp6aW5nJiMzNDsgY2F0ZWdvcnkuIFRoaXMgaXMgZXhwbGljaXRseSBzdGF0ZWQgaW4gc2VjdGlvbiAyIG9mIG15IGd1aWRlbGluZXMuCgpUaGVyZWZvcmUsIG15IGNvbmNsdXNpb25zIGFyZToKCiogICBgV29ydGhGdXp6aW5nID0gZmFsc2VgCiogICBgRm9jdXNTeW1ib2xzID0gW11gCiogICBgRW5hYmxlQ29uZmlncyA9IFtdYAoKVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlcnJvciBoYW5kbGluZyBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jIChoYW5kbGluZyBhbGxvY2F0aW9uIGZhaWx1cmUgYW5kIGNsZWFudXAgZm9yIGthc3ByaW50ZiBpbiBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycSkuIFRoZSBpZHBmIGRyaXZlciBpcyBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgSW50ZWwgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIChJUFUvU21hcnROSUMpIGhhcmR3YXJlIGRldmljZXMsIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCB0aHVzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDE4OjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzoxOS4zNTk5ODM5NjdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTQxNTQ5NzgxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMgKGhhbmRsaW5nIGFsbG9jYXRpb24gZmFpbHVyZSBhbmQgY2xlYW51cCBmb3Iga2FzcHJpbnRmIGluIGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKS4gVGhlIGlkcGYgZHJpdmVyIGlzIGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBJbnRlbCBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24gKElQVS9TbWFydE5JQykgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIHRodXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MTkuMzU5OTg5ODM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTQ4NTExNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNWQ2ZjIzOGJiMTdmMDhhZDg4NjMxM2ViNmRiYjYwMmVkYjc1YzU4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgU2VwIDUgMTg6MjM6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcXG5pbmRleCAyNGI5MWJlMjU2NzYyLi44NmRlZGY1YzFjMDkzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXFxuQEAgLTQwNjMsMTIgKzQwNjMsMTcgQEAgc3RhdGljIGludCBpZHBmX3Zwb3J0X2ludHJfcmVxX2lycShzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQsXFxuIFxcbiBcXHRcXHRuYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsIFxcXCIlcy0lcy0lcy0lZFxcXCIsIGRydl9uYW1lLCBpZl9uYW1lLFxcbiBcXHRcXHRcXHRcXHQgdmVjX25hbWUsIHZlY3Rvcik7XFxuK1xcdFxcdGlmICghbmFtZSkge1xcbitcXHRcXHRcXHRlcnIgPSAtRU5PTUVNO1xcbitcXHRcXHRcXHRnb3RvIGZyZWVfcV9pcnFzO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRlcnIgPSByZXF1ZXN0X2lycShpcnFfbnVtLCBpZHBmX3Zwb3J0X2ludHJfY2xlYW5fcXVldWVzLCAwLFxcbiBcXHRcXHRcXHRcXHQgIG5hbWUsIHFfdmVjdG9yKTtcXG4gXFx0XFx0aWYgKGVycikge1xcbiBcXHRcXHRcXHRuZXRkZXZfZXJyKHZwb3J0LVxcdTAwM2VuZXRkZXYsXFxuIFxcdFxcdFxcdFxcdCAgIFxcXCJSZXF1ZXN0X2lycSBmYWlsZWQsIGVycm9yOiAlZFxcXFxuXFxcIiwgZXJyKTtcXG4rXFx0XFx0XFx0a2ZyZWUobmFtZSk7XFxuIFxcdFxcdFxcdGdvdG8gZnJlZV9xX2lycXM7XFxuIFxcdFxcdH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDE4OjIzOjE5Ljc1NTU5NDA4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxOTAxOTg2NjYxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE1ZDZmMjM4YmIxN2YwOGFkODg2MzEzZWI2ZGJiNjAyZWRiNzVjNThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IFNlcCA1IDE4OjIzOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmNcbmluZGV4IDI0YjkxYmUyNTY3NjIuLjg2ZGVkZjVjMWMwOTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jXG5AQCAtNDA2MywxMiArNDA2MywxNyBAQCBzdGF0aWMgaW50IGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKHN0cnVjdCBpZHBmX3Zwb3J0ICp2cG9ydCxcbiBcbiBcdFx0bmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCBcIiVzLSVzLSVzLSVkXCIsIGRydl9uYW1lLCBpZl9uYW1lLFxuIFx0XHRcdFx0IHZlY19uYW1lLCB2ZWN0b3IpO1xuK1x0XHRpZiAoIW5hbWUpIHtcbitcdFx0XHRlcnIgPSAtRU5PTUVNO1xuK1x0XHRcdGdvdG8gZnJlZV9xX2lycXM7XG4rXHRcdH1cbiBcbiBcdFx0ZXJyID0gcmVxdWVzdF9pcnEoaXJxX251bSwgaWRwZl92cG9ydF9pbnRyX2NsZWFuX3F1ZXVlcywgMCxcbiBcdFx0XHRcdCAgbmFtZSwgcV92ZWN0b3IpO1xuIFx0XHRpZiAoZXJyKSB7XG4gXHRcdFx0bmV0ZGV2X2Vycih2cG9ydC1cdTAwM2VuZXRkZXYsXG4gXHRcdFx0XHQgICBcIlJlcXVlc3RfaXJxIGZhaWxlZCwgZXJyb3I6ICVkXFxuXCIsIGVycik7XG4rXHRcdFx0a2ZyZWUobmFtZSk7XG4gXHRcdFx0Z290byBmcmVlX3FfaXJxcztcbiBcdFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MTkuNzU1NTk2NTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NjAyNTU4OTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEludGVsIElEUEYgRHJpdmVyKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgcGF0Y2ggaXMgYWN0dWFsbHkgY2hhbmdpbmcsIHNvIEknbGwgc3RhcnQgYnkgdGFraW5nIGEgY2xvc2UgbG9vayBhdCB0aGUgcGF0Y2ggaXRzZWxmIGFuZCBwaW5wb2ludCB0aGUgc3BlY2lmaWMgZmlsZXMgaW52b2x2ZWQuIEl0IHNlZW1zIHRoZSBtb2RpZmljYXRpb24gaXMgY2VudGVyZWQgYXJvdW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfdHhyeC5jYC4gUmlnaHQsIHNvIHRoaXMgaXMgYWJvdXQgdGhlIGBpZHBmYCBkcml2ZXIuXG5cbk5vdywgYSBxdWljayBtZW1vcnkgcmVmcmVzaCBpcyBpbiBvcmRlci4gV2hhdCBleGFjdGx5ICppcyogdGhpcyBgaWRwZmAgZHJpdmVyIGFnYWluPyBJbnRlbCBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24sIHJpZ2h0PyBPa2F5LCB0aGF0IGhlbHBzLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoaXMgaXMgbGlrZWx5IHJlbGF0ZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgc3VzcGljaW9uLCBzbyBsZXQncyBjcm9zcy1yZWZlcmVuY2UgYW5kIGNoZWNrIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHByb2JhYmx5IGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWdgIG9yIGV2ZW4gdGhlIGJyb2FkZXIgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWdgIGRpcmVjdG9yeSDigJMgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIHdoZXRoZXIgd2UncmUgdGFsa2luZyBhYm91dCBJbnRlbCBJUFVzLCBTbWFydE5JQ3MsIEZQR0FzLCBvciBzb21ldGhpbmcgc2ltaWxhci4gQ29uZmlybWluZyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBpcyBjcnVjaWFsIGZvciBwcm9wZXJseSBhc3Nlc3NpbmcgdGhlIGltcGFjdCBhbmQgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB0aGlzIHBhdGNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDEzLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MjYuMzU4MTU5MTU1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2MDIwOTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIklEUEZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWxcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzMDg3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfSUNFKSArPSBpY2UvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0lEUEYpICs9IGlkcGYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvTWFrZWZpbGUtMjItb2JqLSQoQ09ORklHX0lYRCkgKz0gaXhkL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnLTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjQ6Y29uZmlnIElEUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctNS1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjE4OmlmIElEUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjIwOmNvbmZpZyBJRFBGX1NJTkdMRVFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiaWRwZiBzaW5nbGVxIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWctMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9LY29uZmlnOjI4OmVuZGlmICMgSURQRlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfSURQRikgKz0gaWRwZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvTWFrZWZpbGU9OD1pZHBmLXkgOj0gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9NYWtlZmlsZS0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL01ha2VmaWxlOjE4OmlkcGYtJChDT05GSUdfSURQRl9TSU5HTEVRKVxcdCs9IGlkcGZfc2luZ2xlcV90eHJ4Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL01ha2VmaWxlLTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0OiNpZm5kZWYgX0lEUEZfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1OiNkZWZpbmUgX0lEUEZfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTI9c3RydWN0IGlkcGZfcnNzX2RhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozMzojZGVmaW5lIElEUEZfTk9fRlJFRV9TTE9UXFx0XFx0MHhmZmZmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzUtLyogRGVmYXVsdCBNYWlsYm94IHNldHRpbmdzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MzY6I2RlZmluZSBJRFBGX05VTV9GSUxURVJTX1BFUl9NU0dcXHQyMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM3OiNkZWZpbmUgSURQRl9OVU1fREZMVF9NQlhfUVxcdFxcdDJcXHQvKiBpbmNsdWRlcyBib3RoIFRYIGFuZCBSWCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM4OiNkZWZpbmUgSURQRl9ERkxUX01CWF9RX0xFTlxcdFxcdDY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzktLyogbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gdHJ5IGJlZm9yZSByZXNldHRpbmcgbWFpbGJveCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwOiNkZWZpbmUgSURQRl9NQl9NQVhfRVJSXFx0XFx0XFx0MjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MTojZGVmaW5lIElEUEZfTlVNX0NIVU5LU19QRVJfTVNHKHN0cnVjdF9zeiwgY2h1bmtfc3opXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQyLVxcdCgoTElCSUVfQ1RMUV9NQVhfQlVGX0xFTiAtIChzdHJ1Y3Rfc3opKSAvIChjaHVua19zeikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDQ6I2RlZmluZSBJRFBGX1dBSVRfRk9SX01BUktFUl9USU1FT1xcdDUwMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ1OiNkZWZpbmUgSURQRl9NQVhfV0FJVFxcdFxcdFxcdDUwMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ3LS8qIGF2YWlsYWJsZSBtZXNzYWdlIGxldmVscyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ4OiNkZWZpbmUgSURQRl9BVkFJTF9ORVRJRl9NIChORVRJRl9NU0dfRFJWIHwgTkVUSUZfTVNHX1BST0JFIHwgTkVUSUZfTVNHX0xJTkspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTA6I2RlZmluZSBJRFBGX0RJTV9QUk9GSUxFX1NMT1RTICA1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTI6I2RlZmluZSBJRFBGX1ZJUlRDSE5MX1ZFUlNJT05fTUFKT1IgVklSVENITkwyX1ZFUlNJT05fTUFKT1JfMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjUzOiNkZWZpbmUgSURQRl9WSVJUQ0hOTF9WRVJTSU9OX01JTk9SIFZJUlRDSE5MMl9WRVJTSU9OX01JTk9SXzBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTYyPXN0cnVjdCBpZHBmX21hY19maWx0ZXIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzAtICogZW51bSBpZHBmX3N0YXRlIC0gU3RhdGUgbWFjaGluZSB0byBoYW5kbGUgYnJpbmcgdXBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MTogKiBAX19JRFBGX1ZFUl9DSEVDSzogTmVnb3RpYXRlIHZpcnRjaG5sIHZlcnNpb25cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3MjogKiBAX19JRFBGX0dFVF9DQVBTOiBOZWdvdGlhdGUgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NzM6ICogQF9fSURQRl9JTklUX1NXOiBJbml0IGJhc2VkIG9uIGdpdmVuIGNhcGFiaWxpdGllc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc0OiAqIEBfX0lEUEZfU1RBVEVfTEFTVDogTXVzdCBiZSBsYXN0LCB1c2VkIHRvIGRldGVybWluZSBzaXplXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzUtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NzY9ZW51bSBpZHBmX3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzpcXHRfX0lEUEZfVkVSX0NIRUNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc4OlxcdF9fSURQRl9HRVRfQ0FQUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3OTpcXHRfX0lEUEZfSU5JVF9TVyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4MDpcXHRfX0lEUEZfU1RBVEVfTEFTVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODQtICogZW51bSBpZHBmX2ZsYWdzIC0gSGFyZCByZXNldCBjYXVzZXMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODU6ICogQElEUEZfSFJfRlVOQ19SRVNFVDogSGFyZCByZXNldCB3aGVuIFR4UnggdGltZW91dFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg2OiAqIEBJRFBGX0hSX0RSVl9MT0FEOiBTZXQgb24gZHJpdmVyIGxvYWQgZm9yIGEgY2xlYW4gSFdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4NzogKiBASURQRl9IUl9SRVNFVF9JTl9QUk9HOiBSZXNldCBpbiBwcm9ncmVzc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg4OiAqIEBJRFBGX1JFTU9WRV9JTl9QUk9HOiBEcml2ZXIgcmVtb3ZlIGluIHByb2dyZXNzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODk6ICogQElEUEZfTUJfSU5UUl9NT0RFOiBNYWlsYm94IGluIGludGVycnVwdCBtb2RlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTA6ICogQElEUEZfVkNfQ09SRV9JTklUOiB2aXJ0Y2hubCBjb3JlIGhhcyBiZWVuIGluaXRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5MTogKiBASURQRl9GTEFHU19OQklUUzogTXVzdCBiZSBsYXN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtOTItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9OTM9ZW51bSBpZHBmX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5NDpcXHRJRFBGX0hSX0ZVTkNfUkVTRVQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTU6XFx0SURQRl9IUl9EUlZfTE9BRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5NjpcXHRJRFBGX0hSX1JFU0VUX0lOX1BST0csXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6OTc6XFx0SURQRl9SRU1PVkVfSU5fUFJPRyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5ODpcXHRJRFBGX01CX0lOVFJfTU9ERSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo5OTpcXHRJRFBGX1ZDX0NPUkVfSU5JVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDA6XFx0SURQRl9GTEFHU19OQklUUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMDEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEwNC0gKiBlbnVtIGlkcGZfY2FwX2ZpZWxkIC0gT2Zmc2V0cyBpbnRvIGNhcGFiaWxpdGllcyBzdHJ1Y3QgZm9yIHNwZWNpZmljIGNhcHNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDU6ICogQElEUEZfQkFTRV9DQVBTOiBnZW5lcmljIGJhc2UgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTA2OiAqIEBJRFBGX0NTVU1fQ0FQUzogY2hlY2tzdW0gb2ZmbG9hZCBjYXBhYmlsaXRpZXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDc6ICogQElEUEZfU0VHX0NBUFM6IHNlZ21lbnRhdGlvbiBvZmZsb2FkIGNhcGFiaWxpdGllc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEwODogKiBASURQRl9SU1NfQ0FQUzogUlNTIG9mZmxvYWQgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTA5OiAqIEBJRFBGX0hTUExJVF9DQVBTOiBIZWFkZXIgc3BsaXQgY2FwYWJpbGl0aWVzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTEwOiAqIEBJRFBGX1JTQ19DQVBTOiBSU0Mgb2ZmbG9hZCBjYXBhYmlsaXRpZXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMTE6ICogQElEUEZfT1RIRVJfQ0FQUzogbWlzY2VsbGFuZW91cyBvZmZsb2Fkc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTExMi0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTE3PWVudW0gaWRwZl9jYXBfZmllbGQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjExODpcXHRJRFBGX0JBU0VfQ0FQU1xcdFxcdD0gLTEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTE5OlxcdElEUEZfQ1NVTV9DQVBTXFx0XFx0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTIwLVxcdFxcdFxcdFxcdFxcdCAgIGNzdW1fY2FwcyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTIxOlxcdElEUEZfU0VHX0NBUFNcXHRcXHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjItXFx0XFx0XFx0XFx0XFx0ICAgc2VnX2NhcHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyMzpcXHRJRFBGX1JTU19DQVBTXFx0XFx0PSBvZmZzZXRvZihzdHJ1Y3QgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMTI0LVxcdFxcdFxcdFxcdFxcdCAgIHJzc19jYXBzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMjU6XFx0SURQRl9IU1BMSVRfQ0FQU1xcdD0gb2Zmc2V0b2Yoc3RydWN0IHZpcnRjaG5sMl9nZXRfY2FwYWJpbGl0aWVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEyNi1cXHRcXHRcXHRcXHRcXHQgICBoc3BsaXRfY2FwcyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTI3OlxcdElEUEZfUlNDX0NBUFNcXHRcXHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMjgtXFx0XFx0XFx0XFx0XFx0ICAgcnNjX2NhcHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEyOTpcXHRJRFBGX09USEVSX0NBUFNcXHRcXHQ9IG9mZnNldG9mKHN0cnVjdCB2aXJ0Y2hubDJfZ2V0X2NhcGFiaWxpdGllcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMzAtXFx0XFx0XFx0XFx0XFx0ICAgb3RoZXJfY2FwcyksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xMzQtICogZW51bSBpZHBmX3Zwb3J0X3N0YXRlIC0gQ3VycmVudCB2cG9ydCBzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjEzNTogKiBASURQRl9WUE9SVF9VUDogVnBvcnQgaXMgdXBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMzY6ICogQElEUEZfVlBPUlRfU1RBVEVfTkJJVFM6IE11c3QgYmUgbGFzdCwgbnVtYmVyIG9mIHN0YXRlc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEzNy0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xMzg9ZW51bSBpZHBmX3Zwb3J0X3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMzk6XFx0SURQRl9WUE9SVF9VUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxNDA6XFx0SURQRl9WUE9SVF9TVEFURV9OQklUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE0MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MTU2PXN0cnVjdCBpZHBmX25ldGRldl9wcml2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTE2My1cXHR1MTYgdHhfbWF4X2J1ZnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MTY0OlxcdERFQ0xBUkVfQklUTUFQKHN0YXRlLCBJRFBGX1ZQT1JUX1NUQVRFX05CSVRTKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0xNjUtXFx0c3RydWN0IHJ0bmxfbGlua19zdGF0czY0IG5ldHN0YXRzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MjAyPXN0cnVjdCBpZHBmX3JlZ19vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIxNDojZGVmaW5lIElEUEZfTU1JT19SRUdfTlVNX1NUQVRJQ1xcdDJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTU6I2RlZmluZSBJRFBGX1BGX01CWF9SRUdJT05fU1pcXHRcXHQ0MDk2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE2OiNkZWZpbmUgSURQRl9QRl9SU1RBVF9SRUdJT05fU1pcXHRcXHQyMDQ4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjE3OiNkZWZpbmUgSURQRl9WRl9NQlhfUkVHSU9OX1NaXFx0XFx0MTAyNDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMTg6I2RlZmluZSBJRFBGX1ZGX1JTVEFUX1JFR0lPTl9TWlxcdFxcdDIwNDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yMjY9c3RydWN0IGlkcGZfZGV2X29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yMzEtXFx0Lyogc3RhdGljX3JlZ19pbmZvWzBdIGlzIG1haWxib3ggcmVnaW9uLCBzdGF0aWNfcmVnX2luZm9bMV0gaXMgcnN0YXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyMzI6XFx0c3RydWN0IHJlc291cmNlIHN0YXRpY19yZWdfaW5mb1tJRFBGX01NSU9fUkVHX05VTV9TVEFUSUNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTIzMy19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjM2LSAqIGVudW0gaWRwZl92cG9ydF9yZXNldF9jYXVzZSAtIFZwb3J0IHNvZnQgcmVzZXQgY2F1c2VzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjM3OiAqIEBJRFBGX1NSX1FfQ0hBTkdFOiBTb2Z0IHJlc2V0IHF1ZXVlIGNoYW5nZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjIzODogKiBASURQRl9TUl9RX0RFU0NfQ0hBTkdFOiBTb2Z0IHJlc2V0IGRlc2NyaXB0b3IgY2hhbmdlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjM5OiAqIEBJRFBGX1NSX01UVV9DSEFOR0U6IFNvZnQgcmVzZXQgTVRVIGNoYW5nZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI0MDogKiBASURQRl9TUl9SU0NfQ0hBTkdFOiBTb2Z0IHJlc2V0IFJTQyBjaGFuZ2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNDEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MjQyPWVudW0gaWRwZl92cG9ydF9yZXNldF9jYXVzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjQzOlxcdElEUEZfU1JfUV9DSEFOR0UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6MjQ0OlxcdElEUEZfU1JfUV9ERVNDX0NIQU5HRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNDU6XFx0SURQRl9TUl9NVFVfQ0hBTkdFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI0NjpcXHRJRFBGX1NSX1JTQ19DSEFOR0UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMjQ3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0yNTAtICogZW51bSBpZHBmX3Zwb3J0X2ZsYWdzIC0gVnBvcnQgZmxhZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNTE6ICogQElEUEZfVlBPUlRfREVMX1FVRVVFUzogVG8gc2VuZCBkZWxldGUgcXVldWVzIG1lc3NhZ2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNTI6ICogQElEUEZfVlBPUlRfRkxBR1NfTkJJVFM6IE11c3QgYmUgbGFzdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1My0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0yNTQ9ZW51bSBpZHBmX3Zwb3J0X2ZsYWdzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoyNTU6XFx0SURQRl9WUE9SVF9ERUxfUVVFVUVTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjI1NjpcXHRJRFBGX1ZQT1JUX0ZMQUdTX05CSVRTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTI1Ny19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9MzIyPXN0cnVjdCBpZHBmX3FfdmVjX3JzcmMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtMzQ1LVxcdHUzMlxcdFxcdFxcdHJ4cV9kZXNjX2NvdW50O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjM0NjpcXHR1MzJcXHRcXHRcXHRidWZxX2Rlc2NfY291bnRbSURQRl9NQVhfQlVGUVNfUEVSX1JYUV9HUlBdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM0Ny1cXHR1OFxcdFxcdFxcdG51bV9idWZxc19wZXJfcWdycDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTM4MT1zdHJ1Y3QgaWRwZl92cG9ydCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC0zOTItXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDozOTM6XFx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIElEUEZfVlBPUlRfRkxBR1NfTkJJVFMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTM5NC1cXHR1MzIgY29tcGxuX2NsZWFuX2J1ZGdldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQwMC1cXHR1OCBkZWZhdWx0X21hY19hZGRyW0VUSF9BTEVOXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MDE6XFx0dTE2IHJ4X2l0cl9wcm9maWxlW0lEUEZfRElNX1BST0ZJTEVfU0xPVFNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQwMjpcXHR1MTYgdHhfaXRyX3Byb2ZpbGVbSURQRl9ESU1fUFJPRklMRV9TTE9UU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDAzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDE2LSAqIGVudW0gaWRwZl91c2VyX2ZsYWdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE3OiAqIEBfX0lEUEZfVVNFUl9GTEFHX0hTUExJVDogaGVhZGVyIHNwbGl0IHN0YXRlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE4OiAqIEBfX0lEUEZfUFJPTUlTQ19VQzogVW5pY2FzdCBwcm9taXNjdW91cyBtb2RlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDE5OiAqIEBfX0lEUEZfUFJPTUlTQ19NQzogTXVsdGljYXN0IHByb21pc2N1b3VzIG1vZGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjA6ICogQF9fSURQRl9VU0VSX0ZMQUdTX05CSVRTOiBNdXN0IGJlIGxhc3RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MjEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NDIyPWVudW0gaWRwZl91c2VyX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjM6XFx0X19JRFBGX1VTRVJfRkxBR19IU1BMSVQgPSAwVSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjQ6XFx0X19JRFBGX1BST01JU0NfVUMgPSAzMixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0MjU6XFx0X19JRFBGX1BST01JU0NfTUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQyNzpcXHRfX0lEUEZfVVNFUl9GTEFHU19OQklUUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC00MjgtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTQ4MD1zdHJ1Y3QgaWRwZl92cG9ydF91c2VyX2NvbmZpZ19kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ4Ny1cXHRzdHJ1Y3QgYnBmX3Byb2cgKnhkcF9wcm9nO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ4ODpcXHRERUNMQVJFX0JJVE1BUCh1c2VyX2ZsYWdzLCBfX0lEUEZfVVNFUl9GTEFHU19OQklUUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDg5LVxcdHN0cnVjdCBsaXN0X2hlYWQgbWFjX2ZpbHRlcl9saXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNDk1LSAqIGVudW0gaWRwZl92cG9ydF9jb25maWdfZmxhZ3MgLSBWcG9ydCBjb25maWcgZmxhZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo0OTY6ICogQElEUEZfVlBPUlRfUkVHX05FVERFVjogUmVnaXN0ZXIgbmV0ZGV2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NDk3OiAqIEBJRFBGX1ZQT1JUX1VQX1JFUVVFU1RFRDogU2V0IGlmIGludGVyZmFjZSB1cCBpcyByZXF1ZXN0ZWQgb24gY29yZSByZXNldFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjQ5ODogKiBASURQRl9WUE9SVF9DT05GSUdfRkxBR1NfTkJJVFM6IE11c3QgYmUgbGFzdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTQ5OS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01MDA9ZW51bSBpZHBmX3Zwb3J0X2NvbmZpZ19mbGFncyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTAxOlxcdElEUEZfVlBPUlRfUkVHX05FVERFVixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo1MDI6XFx0SURQRl9WUE9SVF9VUF9SRVFVRVNURUQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTAzOlxcdElEUEZfVlBPUlRfQ09ORklHX0ZMQUdTX05CSVRTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTUwNC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NTMxPXN0cnVjdCBpZHBmX3ZlY3Rvcl9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTU0OC0gKiBwb29sJyBhbmQgb3RoZXIgb25lIGlzIGNhbGxlZCAnZnJlZSBwb29sJy4gIFZlY3RvciBkaXN0cmlidXRpb24gYWxnb3JpdGhtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NTQ5OiAqIGdpdmVzIHByaW9yaXR5IHRvIGRlZmF1bHQgdnBvcnRzIGluIGEgd2F5IHRoYXQgYXQgbGVhc3QgSURQRl9NSU5fUV9WRUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC01NTAtICogdmVjdG9ycyBhcmUgYWxsb2NhdGVkIHBlciBkZWZhdWx0IHZwb3J0IGFuZCB0aGUgcmVsYXRpdmUgdmVjdG9yIGluZGV4ZXMgZm9yXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD01OTg9c3RydWN0IGlkcGZfdnBvcnRfY29uZmlnIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTYwMy1cXHRzcGlubG9ja190IGZsb3dfc3RlZXJfbGlzdF9sb2NrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjYwNDpcXHRERUNMQVJFX0JJVE1BUChmbGFncywgSURQRl9WUE9SVF9DT05GSUdfRkxBR1NfTkJJVFMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTYwNS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NjczPXN0cnVjdCBpZHBmX2FkYXB0ZXIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNjgwLVxcdGVudW0gaWRwZl9zdGF0ZSBzdGF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo2ODE6XFx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIElEUEZfRkxBR1NfTkJJVFMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTY4Mi1cXHRzdHJ1Y3QgaWRwZl9yZXNldF9yZWcgcmVzZXRfcmVnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg9NzQ1PXN0YXRpYyBpbmxpbmUgaW50IGlkcGZfaXNfcXVldWVfbW9kZWxfc3BsaXQodTE2IHFfbW9kZWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NDc6XFx0cmV0dXJuICFJU19FTkFCTEVEKENPTkZJR19JRFBGX1NJTkdMRVEpIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzQ4LVxcdCAgICAgICBxX21vZGVsID09IFZJUlRDSE5MMl9RVUVVRV9NT0RFTF9TUExJVDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTc3MD1zdGF0aWMgaW5saW5lIGJvb2wgaWRwZl9pc19yZG1hX2NhcF9lbmEoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc3MjpcXHRyZXR1cm4gaWRwZl9pc19jYXBfZW5hKGFkYXB0ZXIsIElEUEZfT1RIRVJfQ0FQUywgVklSVENITkwyX0NBUF9SRE1BKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo3NzU6I2RlZmluZSBJRFBGX0NBUF9SU1MgKFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03NzYtXFx0VklSVENITkwyX0ZMT1dfSVBWNF9UQ1BcXHRcXHR8XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjc4NTojZGVmaW5lIElEUEZfQ0FQX1JTQyAoXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTc4Ni1cXHRWSVJUQ0hOTDJfQ0FQX1JTQ19JUFY0X1RDUFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzg5OiNkZWZpbmUgSURQRl9DQVBfSFNQTElUXFx0KFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03OTAtXFx0VklSVENITkwyX0NBUF9SWF9IU1BMSVRfQVRfTDRWNFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6NzkzOiNkZWZpbmUgSURQRl9DQVBfVFhfQ1NVTV9MNFY0IChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk0LVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY0X1RDUFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC03OTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6Nzk3OiNkZWZpbmUgSURQRl9DQVBfVFhfQ1NVTV9MNFY2IChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtNzk4LVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY2X1RDUFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODAxOiNkZWZpbmUgSURQRl9DQVBfUlhfQ1NVTSAoXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTgwMi1cXHRWSVJUQ0hOTDJfQ0FQX1JYX0NTVU1fTDNfSVBWNFxcdFxcdHxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODA4OiNkZWZpbmUgSURQRl9DQVBfVFhfU0NUUF9DU1VNIChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODA5LVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9JUFY0X1NDVFBcXHR8XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjgxMjojZGVmaW5lIElEUEZfQ0FQX1RVTk5FTF9UWF9DU1VNIChcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODEzLVxcdFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MM19TSU5HTEVfVFVOTkVMXFx0fFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTg2Nz1zdGF0aWMgaW5saW5lIHU4IGlkcGZfZ2V0X21pbl90eF9wa3RfbGVuKHN0cnVjdCBpZHBmX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaC04NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmg6ODcxOlxcdHJldHVybiBwa3RfbGVuID8gcGt0X2xlbiA6IElEUEZfVFhfTUlOX1BLVF9MRU47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODcyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oPTg5Nj1zdGF0aWMgaW5saW5lIGJvb2wgaWRwZl9pc19yZXNldF9pbl9wcm9nKHN0cnVjdCBpZHBmX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmLmgtODk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDo4OTg6XFx0cmV0dXJuICh0ZXN0X2JpdChJRFBGX0hSX1JFU0VUX0lOX1BST0csIGFkYXB0ZXItXFx1MDAzZWZsYWdzKSB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjg5OTpcXHRcXHR0ZXN0X2JpdChJRFBGX0hSX0ZVTkNfUkVTRVQsIGFkYXB0ZXItXFx1MDAzZWZsYWdzKSB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oOjkwMDpcXHRcXHR0ZXN0X2JpdChJRFBGX0hSX0RSVl9MT0FELCBhZGFwdGVyLVxcdTAwM2VmbGFncykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTkwMS19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaD0xMDEyPWludCBpZHBmX2FkZF9kZWxfZnN0ZWVyX2ZpbHRlcnMoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZi5oLTEwMTQtXFx0XFx0XFx0XFx0ZW51bSB2aXJ0Y2hubDJfb3Agb3Bjb2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGYuaDoxMDE1OiNlbmRpZiAvKiAhX0lEUEZfSF8gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzo5OiNkZWZpbmUgSURQRl9QRl9JVFJfSURYX1NQQUNJTkdcXHRcXHQweDRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmM9NjM9c3RhdGljIGludCBpZHBmX2ludHJfcmVnX2luaXQoc3RydWN0IGlkcGZfdnBvcnQgKnZwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTg4LVxcdFxcdHN0cnVjdCBpZHBmX3FfdmVjdG9yICpxX3ZlY3RvciA9IFxcdTAwMjZyc3JjLVxcdTAwM2VxX3ZlY3RvcnNbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjg5OlxcdFxcdHUxNiB2ZWNfaWQgPSByc3JjLVxcdTAwM2VxX3ZlY3Rvcl9pZHhzW2ldIC0gSURQRl9NQlhfUV9WRUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTkwLVxcdFxcdHN0cnVjdCBpZHBmX2ludHJfcmVnICppbnRyID0gXFx1MDAyNnFfdmVjdG9yLVxcdTAwM2VpbnRyX3JlZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEwNTpcXHRcXHRzcGFjaW5nID0gSURQRl9JVFJfSURYX1NQQUNJTkcocmVnLVxcdTAwM2VpdHJuX2luZGV4X3NwYWNpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEwNjpcXHRcXHRcXHRcXHRcXHQgICAgICAgSURQRl9QRl9JVFJfSURYX1NQQUNJTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMDctXFx0XFx0cnhfaXRyID0gUEZfR0xJTlRfSVRSX0FERFIoVklSVENITkwyX0lUUl9JRFhfMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjExNzpcXHR2YWwgPSByZWdfdmFsc1tyc3JjLVxcdTAwM2VxX3ZlY3Rvcl9pZHhzW2ldIC0gSURQRl9NQlhfUV9WRUNdLmR5bl9jdGxfcmVnO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0xMTgtXFx0cnNyYy1cXHUwMDNlbm9pcnFfZHluX2N0bCA9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMTIxLVxcdHZhbCA9IFBGX0dMSU5UX0RZTl9DVExfV0JfT05fSVRSX00gfCBQRl9HTElOVF9EWU5fQ1RMX0lOVEVOQV9NU0tfTSB8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjEyMjpcXHQgICAgICBGSUVMRF9QUkVQKFBGX0dMSU5UX0RZTl9DVExfSVRSX0lORFhfTSwgSURQRl9OT19JVFJfVVBEQVRFX0lEWCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTEyMy1cXHRyc3JjLVxcdTAwM2Vub2lycV9keW5fY3RsX2VuYSA9IHZhbDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYz0xOTk9dm9pZCBpZHBmX2Rldl9vcHNfaW5pdChzdHJ1Y3QgaWRwZl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jLTIwNS1cXHRyZXNvdXJjZV9zZXRfcmFuZ2UoXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWRldl9vcHMuc3RhdGljX3JlZ19pbmZvWzBdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYzoyMDY6XFx0XFx0XFx0ICAgUEZfRldfQkFTRSwgSURQRl9QRl9NQlhfUkVHSU9OX1NaKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2LmMtMjA3LVxcdHJlc291cmNlX3NldF9yYW5nZShcXHUwMDI2YWRhcHRlci1cXHUwMDNlZGV2X29wcy5zdGF0aWNfcmVnX2luZm9bMV0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldi5jOjIwODpcXHRcXHRcXHQgICBQRkdFTl9SVFJJRywgSURQRl9QRl9SU1RBVF9SRUdJT05fU1opO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXYuYy0yMDktfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oLTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oOjQ6I2lmbmRlZiBfSURQRl9ERVZJRFNfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6NTojZGVmaW5lIF9JRFBGX0RFVklEU19IX1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaC02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9kZXZpZHMuaDo3OiNkZWZpbmUgSURQRl9ERVZfSURfUEZcXHRcXHRcXHQweDE0NTJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZGV2aWRzLmg6ODojZGVmaW5lIElEUEZfREVWX0lEX1ZGXFx0XFx0XFx0MHgxNDVDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2Rldmlkcy5oOjEwOiNlbmRpZiAvKiBfSURQRl9ERVZJRFNfSF8gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9MzY2PXN0YXRpYyB1MzIgaWRwZl9nZXRfcnhmaF9rZXlfc2l6ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0zNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzozNzE6XFx0aWYgKCFpZHBmX2lzX2NhcF9lbmFfYWxsKG5wLVxcdTAwM2VhZGFwdGVyLCBJRFBGX1JTU19DQVBTLCBJRFBGX0NBUF9SU1MpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMzcyLVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0zODU9c3RhdGljIHUzMiBpZHBmX2dldF9yeGZoX2luZGlyX3NpemUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMzg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6MzkwOlxcdGlmICghaWRwZl9pc19jYXBfZW5hX2FsbChucC1cXHUwMDNlYWRhcHRlciwgSURQRl9SU1NfQ0FQUywgSURQRl9DQVBfUlNTKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTM5MS1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDA4PXN0YXRpYyBpbnQgaWRwZl9nZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0MjQ6XFx0aWYgKCFpZHBmX2lzX2NhcF9lbmFfYWxsKGFkYXB0ZXIsIElEUEZfUlNTX0NBUFMsIElEUEZfQ0FQX1JTUykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTQyNS1cXHRcXHRlcnIgPSAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NDU3PXN0YXRpYyBpbnQgaWRwZl9zZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy00NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo0NzM6XFx0aWYgKCFpZHBmX2lzX2NhcF9lbmFfYWxsKGFkYXB0ZXIsIElEUEZfUlNTX0NBUFMsIElEUEZfQ0FQX1JTUykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTQ3NC1cXHRcXHRlcnIgPSAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NDk0OlxcdGlmICh0ZXN0X2JpdChJRFBGX1ZQT1JUX1VQLCBucC1cXHUwMDNlc3RhdGUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNDk1LVxcdFxcdGVyciA9IGlkcGZfY29uZmlnX3Jzcyh2cG9ydCwgcnNzX2RhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz01MTE9c3RhdGljIHZvaWQgaWRwZl9nZXRfY2hhbm5lbHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNTMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NTMyOlxcdGNoLVxcdTAwM2VtYXhfb3RoZXIgPSBJRFBGX01BWF9NQlhRO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NTMzOlxcdGNoLVxcdTAwM2VvdGhlcl9jb3VudCA9IElEUEZfTUFYX01CWFE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy01MzQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTU0OD1zdGF0aWMgaW50IGlkcGZfc2V0X2NoYW5uZWxzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTYwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjYwMTpcXHRlcnIgPSBpZHBmX2luaXRpYXRlX3NvZnRfcmVzZXQodnBvcnQsIElEUEZfU1JfUV9DSEFOR0UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjAyLVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NjI0PXN0YXRpYyB2b2lkIGlkcGZfZ2V0X3JpbmdwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2MzQ6XFx0cmluZy1cXHUwMDNlcnhfbWF4X3BlbmRpbmcgPSBJRFBGX01BWF9SWFFfREVTQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjYzNTpcXHRyaW5nLVxcdTAwM2V0eF9tYXhfcGVuZGluZyA9IElEUEZfTUFYX1RYUV9ERVNDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjM2LVxcdHJpbmctXFx1MDAzZXJ4X3BlbmRpbmcgPSB2cG9ydC1cXHUwMDNlZGZsdF9xdl9yc3JjLnJ4cV9kZXNjX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz02NTQ9c3RhdGljIGludCBpZHBmX3NldF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjcxOlxcdGlmIChyaW5nLVxcdTAwM2V0eF9wZW5kaW5nIFxcdTAwM2MgSURQRl9NSU5fVFhRX0RFU0MpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY3Mi1cXHRcXHRuZXRkZXZfZXJyKG5ldGRldiwgXFxcIkRlc2NyaXB0b3JzIHJlcXVlc3RlZCAoVHg6ICV1KSBpcyBsZXNzIHRoYW4gbWluIHN1cHBvcnRlZCAoJXUpXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjczLVxcdFxcdFxcdCAgIHJpbmctXFx1MDAzZXR4X3BlbmRpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2NzQ6XFx0XFx0XFx0ICAgSURQRl9NSU5fVFhRX0RFU0MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjc1LVxcdFxcdGVyciA9IC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjY3OTpcXHRpZiAocmluZy1cXHUwMDNlcnhfcGVuZGluZyBcXHUwMDNjIElEUEZfTUlOX1JYUV9ERVNDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODAtXFx0XFx0bmV0ZGV2X2VycihuZXRkZXYsIFxcXCJEZXNjcmlwdG9ycyByZXF1ZXN0ZWQgKFJ4OiAldSkgaXMgbGVzcyB0aGFuIG1pbiBzdXBwb3J0ZWQgKCV1KVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY4MS1cXHRcXHRcXHQgICByaW5nLVxcdTAwM2VyeF9wZW5kaW5nLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjgyOlxcdFxcdFxcdCAgIElEUEZfTUlOX1JYUV9ERVNDKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTY4My1cXHRcXHRlcnIgPSAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy02ODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo2ODc6XFx0bmV3X3J4X2NvdW50ID0gQUxJR04ocmluZy1cXHUwMDNlcnhfcGVuZGluZywgSURQRl9SRVFfUlhRX0RFU0NfTVVMVElQTEUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjg4LVxcdGlmIChuZXdfcnhfY291bnQgIT0gcmluZy1cXHUwMDNlcnhfcGVuZGluZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NjkyOlxcdG5ld190eF9jb3VudCA9IEFMSUdOKHJpbmctXFx1MDAzZXR4X3BlbmRpbmcsIElEUEZfUkVRX0RFU0NfTVVMVElQTEUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNjkzLVxcdGlmIChuZXdfdHhfY291bnQgIT0gcmluZy1cXHUwMDNldHhfcGVuZGluZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzE5LVxcdFxcdHJzcmMtXFx1MDAzZWJ1ZnFfZGVzY19jb3VudFtpXSA9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3MjA6XFx0XFx0XFx0SURQRl9SWF9CVUZRX0RFU0NfQ09VTlQobmV3X3J4X2NvdW50LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzIxLVxcdFxcdFxcdFxcdFxcdFxcdHJzcmMtXFx1MDAzZW51bV9idWZxc19wZXJfcWdycCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03MjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3MjM6XFx0ZXJyID0gaWRwZl9pbml0aWF0ZV9zb2Z0X3Jlc2V0KHZwb3J0LCBJRFBGX1NSX1FfREVTQ19DSEFOR0UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzI0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03MzgtICogSXQgZGVmaW5lcyBhIHN0YXRpc3RpYyBhcyBvZmZzZXQgZnJvbSBhIGNvbW1vbiBiYXNlIHBvaW50ZXIuIFN0YXRzIHNob3VsZFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzM5OiAqIGJlIGRlZmluZWQgaW4gY29uc3RhbnQgYXJyYXlzIHVzaW5nIHRoZSBJRFBGX1NUQVQgbWFjcm8sIHdpdGggZXZlcnkgZWxlbWVudFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzQwLSAqIG9mIHRoZSBhcnJheSB1c2luZyB0aGUgc2FtZSBfdHlwZSBmb3IgY2FsY3VsYXRpbmcgdGhlIHNpemVvZl9zdGF0IGFuZFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz03NTM9c3RydWN0IGlkcGZfc3RhdHMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03NjItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3NjM6I2RlZmluZSBJRFBGX1NUQVQoX3R5cGUsIF9uYW1lLCBfc3RhdCkgeyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03NjQtXFx0LnN0YXRfc3RyaW5nID0gX25hbWUsIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzY5LS8qIEhlbHBlciBtYWNyb3MgZm9yIGRlZmluaW5nIHNvbWUgc3RhdGlzdGljcyByZWxhdGVkIHRvIHF1ZXVlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzcwOiNkZWZpbmUgSURQRl9SWF9RVUVVRV9TVEFUKF9uYW1lLCBfc3RhdCkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzcxOlxcdElEUEZfU1RBVChzdHJ1Y3QgaWRwZl9yeF9xdWV1ZSwgX25hbWUsIF9zdGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzcyOiNkZWZpbmUgSURQRl9UWF9RVUVVRV9TVEFUKF9uYW1lLCBfc3RhdCkgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzczOlxcdElEUEZfU1RBVChzdHJ1Y3QgaWRwZl90eF9xdWV1ZSwgX25hbWUsIF9zdGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzc0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz03NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZHBmX3N0YXRzIGlkcGZfZ3N0cmluZ3NfdHhfcXVldWVfc3RhdHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3NzpcXHRJRFBGX1RYX1FVRVVFX1NUQVQoXFxcInBrdHNcXFwiLCBxX3N0YXRzLnBhY2tldHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzc4OlxcdElEUEZfVFhfUVVFVUVfU1RBVChcXFwiYnl0ZXNcXFwiLCBxX3N0YXRzLmJ5dGVzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc3OTpcXHRJRFBGX1RYX1FVRVVFX1NUQVQoXFxcImxzb19wa3RzXFxcIiwgcV9zdGF0cy5sc29fcGt0cyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03ODAtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9NzgzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3J4X3F1ZXVlX3N0YXRzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODQ6XFx0SURQRl9SWF9RVUVVRV9TVEFUKFxcXCJwa3RzXFxcIiwgcV9zdGF0cy5wYWNrZXRzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc4NTpcXHRJRFBGX1JYX1FVRVVFX1NUQVQoXFxcImJ5dGVzXFxcIiwgcV9zdGF0cy5ieXRlcyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODY6XFx0SURQRl9SWF9RVUVVRV9TVEFUKFxcXCJyeF9ncm9faHdfcGt0c1xcXCIsIHFfc3RhdHMucnNjX3BrdHMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzg3LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy03ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3ODk6I2RlZmluZSBJRFBGX1RYX1FVRVVFX1NUQVRTX0xFTlxcdFxcdEFSUkFZX1NJWkUoaWRwZl9nc3RyaW5nc190eF9xdWV1ZV9zdGF0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5MDojZGVmaW5lIElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOXFx0XFx0QVJSQVlfU0laRShpZHBmX2dzdHJpbmdzX3J4X3F1ZXVlX3N0YXRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6NzkyOiNkZWZpbmUgSURQRl9QT1JUX1NUQVQoX25hbWUsIF9zdGF0KSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo3OTM6XFx0SURQRl9TVEFUKHN0cnVjdCBpZHBmX3Zwb3J0LCAgX25hbWUsIF9zdGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtNzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM9Nzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWRwZl9zdGF0cyBpZHBmX2dzdHJpbmdzX3BvcnRfc3RhdHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5NjpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtY3N1bV9lcnJvcnNcXFwiLCBwb3J0X3N0YXRzLnJ4X2h3X2NzdW1fZXJyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5NzpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtaHNwbGl0XFxcIiwgcG9ydF9zdGF0cy5yeF9oc3BsaXQpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6Nzk4OlxcdElEUEZfUE9SVF9TVEFUKFxcXCJyeC1oc3BsaXRfaGJvXFxcIiwgcG9ydF9zdGF0cy5yeF9oc3BsaXRfaGJvKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjc5OTpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtYmFkX2Rlc2NzXFxcIiwgcG9ydF9zdGF0cy5yeF9iYWRfZGVzY3MpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODAwOlxcdElEUEZfUE9SVF9TVEFUKFxcXCJ0eC1za2JfZHJvcHNcXFwiLCBwb3J0X3N0YXRzLnR4X2Ryb3BzKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwMTpcXHRJRFBGX1BPUlRfU1RBVChcXFwidHgtZG1hX21hcF9lcnJzXFxcIiwgcG9ydF9zdGF0cy50eF9kbWFfbWFwX2VycnMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODAyOlxcdElEUEZfUE9SVF9TVEFUKFxcXCJ0eC1saW5lYXJpemVkX3BrdHNcXFwiLCBwb3J0X3N0YXRzLnR4X2xpbmVhcml6ZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDM6XFx0SURQRl9QT1JUX1NUQVQoXFxcInR4LWJ1c3lfZXZlbnRzXFxcIiwgcG9ydF9zdGF0cy50eF9idXN5KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwNDpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtdW5pY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmljYXN0KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwNTpcXHRJRFBGX1BPUlRfU1RBVChcXFwicngtbXVsdGljYXN0X3BrdHNcXFwiLCBwb3J0X3N0YXRzLnZwb3J0X3N0YXRzLnJ4X211bHRpY2FzdCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MDY6XFx0SURQRl9QT1JUX1NUQVQoXFxcInJ4LWJyb2FkY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF9icm9hZGNhc3QpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmM6ODA3OlxcdElEUEZfUE9SVF9TVEFUKFxcXCJyeC11bmtub3duX3Byb3RvY29sXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy5yeF91bmtub3duX3Byb3RvY29sKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwODpcXHRJRFBGX1BPUlRfU1RBVChcXFwidHgtdW5pY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF91bmljYXN0KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjgwOTpcXHRJRFBGX1BPUlRfU1RBVChcXFwidHgtbXVsdGljYXN0X3BrdHNcXFwiLCBwb3J0X3N0YXRzLnZwb3J0X3N0YXRzLnR4X211bHRpY2FzdCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTA6XFx0SURQRl9QT1JUX1NUQVQoXFxcInR4LWJyb2FkY2FzdF9wa3RzXFxcIiwgcG9ydF9zdGF0cy52cG9ydF9zdGF0cy50eF9icm9hZGNhc3QpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODExLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4MTM6I2RlZmluZSBJRFBGX1BPUlRfU1RBVFNfTEVOIEFSUkFZX1NJWkUoaWRwZl9nc3RyaW5nc19wb3J0X3N0YXRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtODE0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz04NzY9c3RhdGljIHZvaWQgaWRwZl9nZXRfc3RhdF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHU4ICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04ODItXFx0aWRwZl9hZGRfc3RhdF9zdHJpbmdzKFxcdTAwMjZkYXRhLCBpZHBmX2dzdHJpbmdzX3BvcnRfc3RhdHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYzo4ODM6XFx0XFx0XFx0ICAgICAgSURQRl9QT1JUX1NUQVRTX0xFTik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy04ODQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTkyNT1zdGF0aWMgaW50IGlkcGZfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IHNzZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTk0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjk0ODpcXHRyZXR1cm4gSURQRl9QT1JUX1NUQVRTX0xFTiArIChJRFBGX1RYX1FVRVVFX1NUQVRTX0xFTiAqIG1heF90eHEpICtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjk0OTpcXHQgICAgICAgKElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOICogbWF4X3J4cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy05NTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYz0xMDEwPXN0YXRpYyB2b2lkIGlkcGZfYWRkX3F1ZXVlX3N0YXRzKHU2NCAqKmRhdGEsIGNvbnN0IHZvaWQgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTEwMTktXFx0aWYgKHR5cGUgPT0gVklSVENITkwyX1FVRVVFX1RZUEVfUlgpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwMjA6XFx0XFx0c2l6ZSA9IElEUEZfUlhfUVVFVUVfU1RBVFNfTEVOO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMTAyMS1cXHRcXHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfcnhfcXVldWVfc3RhdHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jLTEwMjMtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwMjQ6XFx0XFx0c2l6ZSA9IElEUEZfVFhfUVVFVUVfU1RBVFNfTEVOO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9ldGh0b29sLmMtMTAyNS1cXHRcXHRzdGF0cyA9IGlkcGZfZ3N0cmluZ3NfdHhfcXVldWVfc3RhdHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jPTEwNTQ9c3RhdGljIHZvaWQgaWRwZl9hZGRfZW1wdHlfcXVldWVfc3RhdHModTY0ICoqZGF0YSwgdTE2IHF0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDU5LVxcdGlmIChxdHlwZSA9PSBWSVJUQ0hOTDJfUVVFVUVfVFlQRV9SWClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwNjA6XFx0XFx0c3RhdHNfbGVuID0gSURQRl9SWF9RVUVVRV9TVEFUU19MRU47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDYxLVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfZXRodG9vbC5jOjEwNjI6XFx0XFx0c3RhdHNfbGVuID0gSURQRl9UWF9RVUVVRV9TVEFUU19MRU47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX2V0aHRvb2wuYy0xMDYzLVxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDE4OjIzOjI2LjQyNDE4NjM4MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIxOTM4MzYzOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIElEUEYgRHJpdmVyIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgc29tZXRoaW5nIGFib3V0IHRoZSBpbml0aWFsaXphdGlvbiBmbG93IGZvciB0aGUgSW50ZWwgSURQRiBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gZGlyZWN0bHkgdG8gdGhlIGNvcmUgZmlsZXMuIEknbGwgc3RhcnQgd2l0aCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uY2AuIFRoYXQncyB3aGVyZSBJJ2QgZXhwZWN0IHRvIGZpbmQgdGhlIGRyaXZlcidzIGVudHJ5IHBvaW50cywgdGhlIGBtb2R1bGVfaW5pdGAgb3IgYGRyaXZlcl9pbml0YCBmdW5jdGlvbiwgYW5kIHRoZSBvdmVyYWxsIHNldHVwIHJvdXRpbmUuIEknbSBsb29raW5nIGZvciB0aGUgcHJpbWFyeSBpbml0aWFsaXphdGlvbiBsb2dpYzogaG93IHRoZSBkZXZpY2UgaXMgcHJvYmVkLCByZXNvdXJjZXMgYXJlIGFsbG9jYXRlZCwgYW5kIHRoZSBuZXR3b3JraW5nIHN0YWNrIGlzIGludGVncmF0ZWQuXG5cbkZvbGxvd2luZyB0aGF0LCBJJ2xsIGRlZmluaXRlbHkgd2FudCB0byBjcm9zcy1yZWZlcmVuY2Ugd2l0aCB0aGUgYEtjb25maWdgIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LCB3aGljaCBpcyBsb2NhdGVkIGF0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWdgLiBUaGF0IGNvbmZpZ3VyYXRpb24gZmlsZSB3aWxsIHNob3cgbWUgaG93IHRoaXMgZHJpdmVyIGlzIGluY2x1ZGVkIGluIHRoZSBidWlsZCBwcm9jZXNzLiBJcyBpdCBtb2R1bGFyPyBCdWlsdC1pbj8gV2hhdCBkZXBlbmRlbmNpZXMgYXJlIGNvbnRyb2xsZWQgdGhyb3VnaCBjb25maWd1cmF0aW9uIG9wdGlvbnM/IFVuZGVyc3RhbmRpbmcgdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIHdpbGwgZ2l2ZSBtZSBhIGJyb2FkZXIgcGljdHVyZSBvZiB3aGVuIGFuZCB3aHkgdGhlIGRyaXZlciBpcyBhY3R1YWxseSBjb21waWxlZCBhbmQgbG9hZGVkLCBhbmQgaG93IGl0J3MgaW50ZWdyYXRlZCB3aXRoIG90aGVyIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhlc2UgZmlsZXMgYXJlIGVzc2VudGlhbCBzdGFydGluZyBwb2ludHMgZm9yIGFueSBkZWVwZXIgZGl2ZSBpbnRvIHRoZSBkcml2ZXIncyBpbm5lciB3b3JraW5ncy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTgxNTgsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzoyOC42MTgwMjU4ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDM5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdCMgQ29weXJpZ2h0IChDKSAyMDI0IEludGVsIENvcnBvcmF0aW9uXFxuICAgMzpcXHRcXG4gICA0OlxcdGNvbmZpZyBJRFBGXFxuICAgNTpcXHRcXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uIFN1cHBvcnRcXFwiXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIFBDSV9NU0lcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gICA4OlxcdFxcdHNlbGVjdCBESU1MSUJcXG4gICA5OlxcdFxcdHNlbGVjdCBMSUJJRV9DUFxcbiAgMTA6XFx0XFx0c2VsZWN0IExJQkVUSF9YRFBcXG4gIDExOlxcdFxcdGhlbHBcXG4gIDEyOlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgSW50ZWwoUikgSW5mcmFzdHJ1Y3R1cmUgRGF0YSBQYXRoIEZ1bmN0aW9uXFxuICAxMzpcXHRcXHQgIGRldmljZXMuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4gVGhlIG1vZHVsZVxcbiAgMTY6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBpZHBmLlxcbiAgMTc6XFx0XFxuICAxODpcXHRpZiBJRFBGXFxuICAxOTpcXHRcXG4gIDIwOlxcdGNvbmZpZyBJRFBGX1NJTkdMRVFcXG4gIDIxOlxcdFxcdGJvb2wgXFxcImlkcGYgc2luZ2xlcSBzdXBwb3J0XFxcIlxcbiAgMjI6XFx0XFx0aGVscFxcbiAgMjM6XFx0XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIGxlZ2FjeSBzaW5nbGUgUngvVHggcXVldWVzIHcvbm9cXG4gIDI0OlxcdFxcdCAgY29tcGxldGlvbiBhbmQgZmlsbCBxdWV1ZXMuIE9ubHkgZW5hYmxlIGlmIHlvdSBoYXZlIGhhcmR3YXJlIHdoaWNoXFxuICAyNTpcXHRcXHQgIHdhbnRzIHRvIHdvcmsgaW4gdGhpcyBtb2RlIGFzIGl0IGluY3JlYXNlcyB0aGUgZHJpdmVyIHNpemUgYW5kIGFkZHNcXG4gIDI2OlxcdFxcdCAgcnVudG1lIGNoZWNrcyBvbiBob3RwYXRoLlxcbiAgMjc6XFx0XFxuICAyODpcXHRlbmRpZiAjIElEUEZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MjguNjE4MDkyNzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMTc1Nzk5MzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipEcml2ZXIgUmVnaXN0cmF0aW9uIERlZXAgRGl2ZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgaG93IHRoaXMgZHJpdmVyIGludGVncmF0ZXMgd2l0aCB0aGUgc3lzdGVtLiBMZXQncyBzdGFydCBhdCB0aGUgdmVyeSBiZWdpbm5pbmcsIHRyYWNpbmcgdGhlIHJlZ2lzdHJhdGlvbiBwcm9jZXNzLiBJJ20gZ29pbmcgdG8gZGlnIGludG8gYGlkcGZfbWFpbi5jYC4gVGhhdCBzaG91bGQgYmUgdGhlIHN0YXJ0aW5nIHBvaW50LCB3aGVyZSB0aGUgZHJpdmVyJ3MgY29yZSBpbml0aWFsaXphdGlvbiBhbmQgc2V0dXAgcm91dGluZXMgYXJlIGxpa2VseSBsb2NhdGVkLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgdGhlIHN0YW5kYXJkIGBtb2R1bGVfaW5pdGAgbWFjcm8gb3Igc2ltaWxhciwgcG9pbnRpbmcgbWUgdG93YXJkcyB0aGUgZnVuY3Rpb24gcmVzcG9uc2libGUgZm9yIHJlZ2lzdGVyaW5nIHRoZSBkcml2ZXIgd2l0aCB0aGUgcmVsZXZhbnQgc3Vic3lzdGVtLiBGcm9tIHRoZXJlLCBJJ2xsIGJlIGFibGUgdG8gZm9sbG93IHRoZSBjYWxscyB0byBzZWUgaG93IHRoZSB2YXJpb3VzIGRldmljZSBzdHJ1Y3R1cmVzIGFyZSBpbml0aWFsaXplZCwgYWxsb2NhdGVkLCBhbmQgdWx0aW1hdGVseSwgaG93IHRoZSBkcml2ZXIncyBvcGVyYXRpb25hbCBlbnRyeSBwb2ludHMgYXJlIGhvb2tlZCBpbnRvIHRoZSBzeXN0ZW0uIEtub3dpbmcgdGhlIHJlZ2lzdHJhdGlvbiBkZXRhaWxzIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhpcyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlIGFuZCBvdGhlciBrZXJuZWwgY29tcG9uZW50cy4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODc4LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzozMC43OTM4OTYzOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQzNDgyNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlcnxpZHBmX3BjaVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM9Mjk9c3RhdGljIGludCBpZHBmX2dldF9kZXZpY2VfdHlwZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtNTMtICogQGFkYXB0ZXI6IGFkYXB0ZXIgdG8gaW5pdGlhbGl6ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6NTQ6ICogQGVudDogZW50cnkgaW4gaWRwZl9wY2lfdGJsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy01NS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0yMDc9c3RhdGljIGludCBpZHBmX2NmZ19kZXZpY2Uoc3RydWN0IGlkcGZfYWRhcHRlciAqYWRhcHRlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMjQ2LSAqIEBwZGV2OiBQQ0kgZGV2aWNlIGluZm9ybWF0aW9uIHN0cnVjdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6MjQ3OiAqIEBlbnQ6IGVudHJ5IGluIGlkcGZfcGNpX3RibFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMjQ4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jPTI1MT1zdGF0aWMgaW50IGlkcGZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM2NTovKiBpZHBmX3BjaV90YmwgLSBQQ0kgRGV2IGlkcGYgSUQgVGFibGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM2Ni0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM2NzpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaWRwZl9wY2lfdGJsW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNjgtXFx0eyBQQ0lfVkRFVklDRShJTlRFTCwgSURQRl9ERVZfSURfUEYpfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzcyLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYzozNzM6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGlkcGZfcGNpX3RibCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYy0zNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX21haW4uYz0zNzU9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGlkcGZfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmMtMzc2LVxcdC5uYW1lXFx0XFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jOjM3NzpcXHQuaWRfdGFibGVcXHRcXHQ9IGlkcGZfcGNpX3RibCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM3OC1cXHQucHJvYmVcXHRcXHRcXHQ9IGlkcGZfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZHBmL2lkcGZfbWFpbi5jLTM4Mi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9tYWluLmM6MzgzOm1vZHVsZV9wY2lfZHJpdmVyKGlkcGZfZHJpdmVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTg6MjM6MzAuODk4MjUwNDU1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Nzg3NzE2NDE5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgaWRwZmAgRHJpdmVyJ3MgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBgaWRwZmAgZHJpdmVyLCB3aGljaCBpcyBJbnRlbCdzIFBDSSBkcml2ZXIgZm9yIHRoZWlyIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSAobGlrZSB0aGUgRTIwMDAgb3IgTW91bnQgRXZhbnMpLCBpc24ndCBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBIZXJlJ3Mgd2h5OlxuXG5GaXJzdCwgSSd2ZSBpZGVudGlmaWVkIHRoZSBtb2RpZmllZCBjb2RlOiBpdCdzIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguY2AsIHNwZWNpZmljYWxseSBpbiB0aGUgYGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKClgIGZ1bmN0aW9uLiBUaGUgbW9kaWZpY2F0aW9uIEknbSBzZWVpbmcgYWRkcyBjaGVja3MgZm9yIGBrYXNwcmludGZgIGFuZCBmcmVlcyBgbmFtZWAgb24gYHJlcXVlc3RfaXJxYCBmYWlsdXJlLiBUaGlzIGlzIGludm9sdmVkIGluIHZwb3J0IG9wZW4gYW5kIGludGVycnVwdCBhbGxvY2F0aW9uIGZvciB0aGUgYGlkcGZgIGRldmljZS5cblxuTm93LCB0aGUgY3J1Y2lhbCBwb2ludDogdGhpcyBgaWRwZmAgZHJpdmVyIGlzIGZvciAqcmVhbCogaGFyZHdhcmUg4oCTIGEgU21hcnROSUMgb3IgSVBVLiBJdCdzIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEkndmUgdmVyaWZpZWQgdGhpczogaXQncyByZWdpc3RlcmVkIGFzIGEgUENJIGRyaXZlciB3aXRoIHNwZWNpZmljIGRldmljZSBJRHMgKGBJRFBGX0RFVl9JRF9QRmAgKDB4MTQ1MikgYW5kIGBJRFBGX0RFVl9JRF9WRmAgKDB4MTQ1YykpLiBUaGVzZSBhcmUgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGlkZW50aWZpZXJzLCB3aGljaCBjb25maXJtcyBpdC5cblxuVGhlcmVmb3JlLCBhY2NvcmRpbmcgdG8gdGhlIGNyaXRlcmlhIEknbSB1c2luZywgc2luY2UgdGhlIG1vZGlmaWVkIGNvZGUgaW50ZXJhY3RzIHdpdGggc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIChzcGVjaWZpY2FsbHksIFNtYXJ0TklDL0lQVSBoYXJkd2FyZSByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcyksIGl0IGZhbGxzIHVuZGVyIHRoZSBcIm5vdCB3b3J0aCBmdXp6aW5nXCIgY2F0ZWdvcnkuIFRoaXMgaXMgZXhwbGljaXRseSBzdGF0ZWQgaW4gc2VjdGlvbiAyIG9mIG15IGd1aWRlbGluZXMuXG5cblRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbnMgYXJlOlxuXG4qICAgYFdvcnRoRnV6emluZyA9IGZhbHNlYFxuKiAgIGBGb2N1c1N5bWJvbHMgPSBbXWBcbiogICBgRW5hYmxlQ29uZmlncyA9IFtdYFxuXG5UaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk5NTksIk91dHB1dFRva2VucyI6MTI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDE4OjIzOjM4Ljc3NTQyMjgxN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVycm9yIGhhbmRsaW5nIGluIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl90eHJ4LmMgKGhhbmRsaW5nIGFsbG9jYXRpb24gZmFpbHVyZSBhbmQgY2xlYW51cCBmb3Iga2FzcHJpbnRmIGluIGlkcGZfdnBvcnRfaW50cl9yZXFfaXJxKS4gVGhlIGlkcGYgZHJpdmVyIGlzIGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBJbnRlbCBJbmZyYXN0cnVjdHVyZSBEYXRhIFBhdGggRnVuY3Rpb24gKElQVS9TbWFydE5JQykgaGFyZHdhcmUgZGV2aWNlcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VL0dDRSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIHRodXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxpbmcgaW4gZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi9pZHBmX3R4cnguYyAoaGFuZGxpbmcgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBjbGVhbnVwIGZvciBrYXNwcmludGYgaW4gaWRwZl92cG9ydF9pbnRyX3JlcV9pcnEpLiBUaGUgaWRwZiBkcml2ZXIgaXMgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIEludGVsIEluZnJhc3RydWN0dXJlIERhdGEgUGF0aCBGdW5jdGlvbiAoSVBVL1NtYXJ0TklDKSBoYXJkd2FyZSBkZXZpY2VzLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgdGh1cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxODoyMzozOC43NzU0NjM0OTdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowjnbbf[1] Phase: Running StartedAt: 2026-09-05 18:23:50 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjnbbf[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-05 18:23:50 +0000 UTC FinishedAt: 2026-09-05 18:23:54 +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,}